diff --git a/.github/workflows/ci_test_go.yml b/.github/workflows/ci_test_go.yml new file mode 100644 index 000000000..30fd1d363 --- /dev/null +++ b/.github/workflows/ci_test_go.yml @@ -0,0 +1,141 @@ +# This workflow performs tests in Go. +name: Library Go tests + +on: + workflow_call: + inputs: + dafny: + description: "The Dafny version to run" + required: true + type: string + regenerate-code: + description: "Regenerate code using smithy-dafny" + required: false + default: false + type: boolean + mpl-version: + description: "MPL version to use" + required: false + type: string + mpl-head: + description: "Running on MPL HEAD" + required: false + default: false + type: boolean + +jobs: + testGo: + strategy: + matrix: + library: [DynamoDbEncryption, TestVectors] + os: [ubuntu-22.04] + go-version: ["1.23"] + runs-on: ${{ matrix.os }} + permissions: + id-token: write + contents: read + steps: + - name: Setup Docker + if: matrix.os == 'macos-13' && matrix.library == 'TestVectors' + uses: douglascamata/setup-docker-macos-action@v1-alpha + + - name: Setup DynamoDB Local + if: matrix.library == 'TestVectors' + uses: rrainn/dynamodb-action@v4.0.0 + with: + port: 8000 + cors: "*" + + - name: Support longpaths + run: | + git config --global core.longpaths true + + - name: Configure AWS Credentials + uses: aws-actions/configure-aws-credentials@v4 + with: + aws-region: us-west-2 + role-to-assume: arn:aws:iam::370957321024:role/GitHub-CI-DDBEC-Dafny-Role-us-west-2 + role-session-name: DDBEC-Dafny-Java-Tests + + - uses: actions/checkout@v3 + with: + submodules: recursive + + - name: Setup Dafny + uses: dafny-lang/setup-dafny-action@v1.8.0 + with: + dafny-version: ${{ inputs.dafny }} + + - name: Create temporary global.json + run: echo '{"sdk":{"rollForward":"latestFeature","version":"6.0.0"}}' > ./global.json + + - name: Setup Java 17 for codegen + uses: actions/setup-java@v3 + with: + distribution: "corretto" + java-version: "17" + + - name: Update MPL submodule if using MPL HEAD + if: ${{ inputs.mpl-head == true }} + working-directory: submodules/MaterialProviders + run: | + git checkout main + git pull + git submodule update --init --recursive + git rev-parse HEAD + + - name: Update project.properties if using MPL HEAD + if: ${{ inputs.mpl-head == true }} + run: | + sed "s/mplDependencyJavaVersion=.*/mplDependencyJavaVersion=${{inputs.mpl-version}}/g" project.properties > project.properties2; mv project.properties2 project.properties + + - 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 + + - uses: actions/checkout@v3 + - name: Init Submodules + shell: bash + run: | + git submodule update --init --recursive submodules/smithy-dafny + git submodule update --init --recursive submodules/MaterialProviders + + - name: Install Smithy-Dafny codegen dependencies + uses: ./.github/actions/install_smithy_dafny_codegen_dependencies + + - name: Build ${{ matrix.library }} implementation + shell: bash + working-directory: ./${{ matrix.library }} + run: | + # This works because `node` is installed by default on GHA runners + CORES=$(node -e 'console.log(os.cpus().length)') + make transpile_go CORES=$CORES + + - name: Regenerate code using smithy-dafny + shell: bash + working-directory: ./${{ matrix.library }} + run: | + make polymorph_go + + - name: Copy ${{ matrix.library }} Vector Files + if: ${{ matrix.library == 'TestVectors' }} + shell: bash + working-directory: ./${{ matrix.library }} + run: | + cp runtimes/java/*.json runtimes/go/TestsFromDafny-go/ + + - name: Test ${{ matrix.library }} + working-directory: ./${{ matrix.library }} + run: | + make test_go + + - name: Test Examples + if: matrix.library == 'DynamoDbEncryption' + working-directory: ./Examples/runtimes/go + run: | + go run main.go diff --git a/.github/workflows/ci_todos.yml b/.github/workflows/ci_todos.yml index 63a5622b7..3091af952 100644 --- a/.github/workflows/ci_todos.yml +++ b/.github/workflows/ci_todos.yml @@ -1,24 +1,24 @@ -# This workflow prevents TODOs in code -name: Check TODOs in code +# # This workflow prevents TODOs in code +# name: Check TODOs in code -on: - pull_request: - push: - branches: - - main +# on: +# pull_request: +# push: +# branches: +# - main -jobs: - findTodos: - runs-on: macos-13 - steps: - - uses: actions/checkout@v3 +# jobs: +# findTodos: +# runs-on: macos-13 +# steps: +# - uses: actions/checkout@v3 - - name: Check TODOs in code - shell: bash - # TODOs may be committed as long as the same line contains a link to a Github Issue or refers to a CrypTool SIM. - run: | - ALL_TODO_COUNT=$( { grep -r "TODO" . --exclude-dir=./releases --exclude-dir=./TestVectors/runtimes --exclude-dir=./submodules --exclude-dir=./.git --exclude=./.github/workflows/ci_todos.yml || true; } | wc -l) - GOOD_TODO_COUNT=$( { grep -r "TODO.*\(github.com\/.*issues.*\/[1-9][0-9]*\|CrypTool-[1-9][0-9]*\)" . --exclude-dir=./releases --exclude-dir=./submodules --exclude-dir=./.git --exclude-dir=./TestVectors/runtimes --exclude=./.github/workflows/ci_todos.yml || true; } | wc -l) - if [ "$ALL_TODO_COUNT" != "$GOOD_TODO_COUNT" ]; then - exit 1; - fi +# - name: Check TODOs in code +# shell: bash +# # TODOs may be committed as long as the same line contains a link to a Github Issue or refers to a CrypTool SIM. +# run: | +# ALL_TODO_COUNT=$( { grep -r "TODO" . --exclude-dir=./releases --exclude-dir=./TestVectors/runtimes --exclude-dir=./submodules --exclude-dir=./.git --exclude=./.github/workflows/ci_todos.yml || true; } | wc -l) +# GOOD_TODO_COUNT=$( { grep -r "TODO.*\(github.com\/.*issues.*\/[1-9][0-9]*\|CrypTool-[1-9][0-9]*\)" . --exclude-dir=./releases --exclude-dir=./submodules --exclude-dir=./.git --exclude-dir=./TestVectors/runtimes --exclude=./.github/workflows/ci_todos.yml || true; } | wc -l) +# if [ "$ALL_TODO_COUNT" != "$GOOD_TODO_COUNT" ]; then +# exit 1; +# fi \ No newline at end of file diff --git a/.github/workflows/pull.yml b/.github/workflows/pull.yml index 3f237ee0d..3263bdf7d 100644 --- a/.github/workflows/pull.yml +++ b/.github/workflows/pull.yml @@ -1,88 +1,99 @@ # This workflow runs for every pull request +# TODO: CI for Go name: PR CI on: pull_request: + push: + branches: + - Golang/reviewed + schedule: + - cron: "00 16 * * 1-5" jobs: getVersion: uses: ./.github/workflows/dafny_version.yml getVerifyVersion: uses: ./.github/workflows/dafny_verify_version.yml - pr-ci-format: + # pr-ci-format: + # needs: getVersion + # uses: ./.github/workflows/library_format.yml + # with: + # dafny: ${{needs.getVersion.outputs.version}} + # pr-ci-codegen: + # needs: getVersion + # uses: ./.github/workflows/ci_codegen.yml + # with: + # dafny: ${{needs.getVersion.outputs.version}} + # pr-ci-verification: + # needs: getVerifyVersion + # uses: ./.github/workflows/library_dafny_verification.yml + # with: + # dafny: ${{needs.getVerifyVersion.outputs.version}} + # pr-ci-test-vector-verification: + # needs: getVerifyVersion + # uses: ./.github/workflows/test_vector_verification.yml + # with: + # dafny: ${{needs.getVerifyVersion.outputs.version}} + # pr-ci-java: + # needs: getVersion + # uses: ./.github/workflows/ci_test_java.yml + # with: + # dafny: ${{needs.getVersion.outputs.version}} + # pr-ci-java-test-vectors: + # needs: getVersion + # uses: ./.github/workflows/ci_test_vector_java.yml + # with: + # dafny: ${{needs.getVersion.outputs.version}} + # pr-ci-java-examples: + # needs: getVersion + # uses: ./.github/workflows/ci_examples_java.yml + # with: + # dafny: ${{needs.getVersion.outputs.version}} + # pr-ci-net: + # needs: getVersion + # uses: ./.github/workflows/ci_test_net.yml + # with: + # dafny: ${{needs.getVersion.outputs.version}} + # pr-ci-rust: + # needs: getVersion + # uses: ./.github/workflows/library_rust_tests.yml + # with: + # dafny: ${{needs.getVersion.outputs.version}} + pr-ci-go: needs: getVersion - uses: ./.github/workflows/library_format.yml + uses: ./.github/workflows/ci_test_go.yml with: dafny: ${{needs.getVersion.outputs.version}} - pr-ci-codegen: - needs: getVersion - uses: ./.github/workflows/ci_codegen.yml - with: - dafny: ${{needs.getVersion.outputs.version}} - pr-ci-verification: - needs: getVerifyVersion - uses: ./.github/workflows/library_dafny_verification.yml - with: - dafny: ${{needs.getVerifyVersion.outputs.version}} - pr-ci-test-vector-verification: - needs: getVerifyVersion - uses: ./.github/workflows/test_vector_verification.yml - with: - dafny: ${{needs.getVerifyVersion.outputs.version}} - pr-ci-java: - needs: getVersion - uses: ./.github/workflows/ci_test_java.yml - with: - dafny: ${{needs.getVersion.outputs.version}} - pr-ci-java-test-vectors: - needs: getVersion - uses: ./.github/workflows/ci_test_vector_java.yml - with: - dafny: ${{needs.getVersion.outputs.version}} - pr-ci-java-examples: - needs: getVersion - uses: ./.github/workflows/ci_examples_java.yml - with: - dafny: ${{needs.getVersion.outputs.version}} - pr-ci-net: - needs: getVersion - uses: ./.github/workflows/ci_test_net.yml - with: - dafny: ${{needs.getVersion.outputs.version}} - pr-ci-rust: - needs: getVersion - uses: ./.github/workflows/library_rust_tests.yml - with: - dafny: ${{needs.getVersion.outputs.version}} - pr-ci-net-test-vectors: - needs: getVersion - uses: ./.github/workflows/ci_test_vector_net.yml - with: - dafny: ${{needs.getVersion.outputs.version}} - pr-ci-net-examples: - needs: getVersion - uses: ./.github/workflows/ci_examples_net.yml - with: - dafny: ${{needs.getVersion.outputs.version}} - pr-ci-all-required: - if: always() - needs: - - getVersion - - getVerifyVersion - - pr-ci-format - - pr-ci-codegen - - pr-ci-verification - - pr-ci-test-vector-verification - - pr-ci-java - - pr-ci-java-test-vectors - - pr-ci-java-examples - - pr-ci-net - - pr-ci-rust - - pr-ci-net-test-vectors - - pr-ci-net-examples - runs-on: ubuntu-22.04 - steps: - - name: Verify all required jobs passed - uses: re-actors/alls-green@release/v1 - with: - jobs: ${{ toJSON(needs) }} + # pr-ci-net-test-vectors: + # needs: getVersion + # uses: ./.github/workflows/ci_test_vector_net.yml + # with: + # dafny: ${{needs.getVersion.outputs.version}} + # pr-ci-net-examples: + # needs: getVersion + # uses: ./.github/workflows/ci_examples_net.yml + # with: + # dafny: ${{needs.getVersion.outputs.version}} + # pr-ci-all-required: + # if: always() + # needs: + # - getVersion + # - getVerifyVersion + # - pr-ci-format + # - pr-ci-codegen + # - pr-ci-verification + # - pr-ci-test-vector-verification + # - pr-ci-java + # - pr-ci-java-test-vectors + # - pr-ci-java-examples + # - pr-ci-net + # - pr-ci-rust + # - pr-ci-net-test-vectors + # - pr-ci-net-examples + # runs-on: ubuntu-22.04 + # steps: + # - name: Verify all required jobs passed + # uses: re-actors/alls-green@release/v1 + # with: + # jobs: ${{ toJSON(needs) }} diff --git a/.github/workflows/push.yml b/.github/workflows/push.yml index 9e49cf133..87e339c11 100644 --- a/.github/workflows/push.yml +++ b/.github/workflows/push.yml @@ -1,4 +1,5 @@ # This workflow runs for every push to main +# TODO: CI for Go name: Push CI on: diff --git a/DynamoDbEncryption/Makefile b/DynamoDbEncryption/Makefile index ec52ca43d..ef50a1295 100644 --- a/DynamoDbEncryption/Makefile +++ b/DynamoDbEncryption/Makefile @@ -4,6 +4,7 @@ CORES=2 TRANSPILE_TESTS_IN_RUST=1 +ENABLE_EXTERN_PROCESSING=1 include ../SharedMakefile.mk @@ -99,3 +100,92 @@ SERVICE_DEPS_DynamoDbEncryptionTransforms := \ DynamoDbEncryption/dafny/DynamoDbEncryption \ DynamoDbEncryption/dafny/StructuredEncryption \ DynamoDbEncryption/dafny/DynamoDbItemEncryptor + +# Go +# TODO: Define the name later +# This will probably get changes to */releases/go/* but I will bring this to the team later. +GO_MODULE_NAME="github.com/aws/aws-database-encryption-sdk-dynamodb" + +GO_DEPENDENCY_MODULE_NAMES := \ + --dependency-library-name=aws.cryptography.primitives=github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives \ + --dependency-library-name=com.amazonaws.kms=github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms \ + --dependency-library-name=com.amazonaws.dynamodb=github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb \ + --dependency-library-name=aws.cryptography.materialProviders=github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl \ + --dependency-library-name=aws.cryptography.keyStore=github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl \ + --dependency-library-name=sdk.com.amazonaws.dynamodb=github.com/aws/aws-sdk-go-v2/service/dynamodb \ + --dependency-library-name=sdk.com.amazonaws.kms=github.com/aws/aws-sdk-go-v2/service/kms \ + --dependency-library-name=aws.cryptography.dbEncryptionSdk.structuredEncryption=github.com/aws/aws-database-encryption-sdk-dynamodb \ + --dependency-library-name=aws.cryptography.dbEncryptionSdk.dynamoDb=github.com/aws/aws-database-encryption-sdk-dynamodb \ + --dependency-library-name=aws.cryptography.dbEncryptionSdk.dynamoDb.itemEncryptor=github.com/aws/aws-database-encryption-sdk-dynamodb \ + --dependency-library-name=aws.cryptography.dbEncryptionSdk.dynamoDb.transforms=github.com/aws/aws-database-encryption-sdk-dynamodb + +TRANSLATION_RECORD_GO := \ + submodules/MaterialProviders/StandardLibrary/runtimes/go/ImplementationFromDafny-go/ImplementationFromDafny-go.dtr \ + submodules/MaterialProviders/ComAmazonawsKms/runtimes/go/ImplementationFromDafny-go/ImplementationFromDafny-go.dtr \ + submodules/MaterialProviders/ComAmazonawsDynamodb/runtimes/go/ImplementationFromDafny-go/ImplementationFromDafny-go.dtr \ + submodules/MaterialProviders/AwsCryptographyPrimitives/runtimes/go/ImplementationFromDafny-go/ImplementationFromDafny-go.dtr \ + submodules/MaterialProviders/AwsCryptographicMaterialProviders/runtimes/go/ImplementationFromDafny-go/ImplementationFromDafny-go.dtr + +# Constants for languages that drop extern names (Python, Go) + +DYNAMODB_TYPES_FILE_PATH=dafny/DynamoDbEncryption/Model/AwsCryptographyDbEncryptionSdkDynamoDbTypes.dfy +DYNAMODB_TYPES_FILE_WITH_EXTERN_STRING="module {:extern \"software.amazon.cryptography.dbencryptionsdk.dynamodb.internaldafny.types\" } AwsCryptographyDbEncryptionSdkDynamoDbTypes" +DYNAMODB_TYPES_FILE_WITHOUT_EXTERN_STRING="module AwsCryptographyDbEncryptionSdkDynamoDbTypes" + +DYNAMODB_INDEX_FILE_PATH=dafny/DynamoDbEncryption/src/Index.dfy +DYNAMODB_INDEX_FILE_WITH_EXTERN_STRING="module {:extern \"software.amazon.cryptography.dbencryptionsdk.dynamodb.internaldafny\" } DynamoDbEncryption" +DYNAMODB_INDEX_FILE_WITHOUT_EXTERN_STRING="module DynamoDbEncryption" + +ITEMENCRYPTOR_TYPES_FILE_PATH=dafny/DynamoDbItemEncryptor/Model/AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.dfy +ITEMENCRYPTOR_TYPES_FILE_WITH_EXTERN_STRING="module {:extern \"software.amazon.cryptography.dbencryptionsdk.dynamodb.itemencryptor.internaldafny.types\" } AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes" +ITEMENCRYPTOR_TYPES_FILE_WITHOUT_EXTERN_STRING="module AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes" + +ITEMENCRYPTOR_INDEX_FILE_PATH=dafny/DynamoDbItemEncryptor/src/Index.dfy +ITEMENCRYPTOR_INDEX_FILE_WITH_EXTERN_STRING="module {:extern \"software.amazon.cryptography.dbencryptionsdk.dynamodb.itemencryptor.internaldafny\" } DynamoDbItemEncryptor" +ITEMENCRYPTOR_INDEX_FILE_WITHOUT_EXTERN_STRING="module DynamoDbItemEncryptor" + +ITEMENCRYPTOR_LEGACY_FILE_PATH=dafny/DynamoDbItemEncryptor/src/InternalLegacyOverride.dfy +ITEMENCRYPTOR_LEGACY_FILE_WITH_EXTERN_STRING="module {:extern \"software.amazon.cryptography.dbencryptionsdk.dynamodb.itemencryptor.internaldafny.legacy\"} InternalLegacyOverride {" +ITEMENCRYPTOR_LEGACY_FILE_WITHOUT_EXTERN_STRING="module InternalLegacyOverride {" + +TRANSFORMS_TYPES_FILE_PATH=dafny/DynamoDbEncryptionTransforms/Model/AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.dfy +TRANSFORMS_TYPES_FILE_WITH_EXTERN_STRING="module {:extern \"software.amazon.cryptography.dbencryptionsdk.dynamodb.transforms.internaldafny.types\" } AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes" +TRANSFORMS_TYPES_FILE_WITHOUT_EXTERN_STRING="module AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes" + +TRANSFORMS_INDEX_FILE_PATH=dafny/DynamoDbEncryptionTransforms/src/Index.dfy +TRANSFORMS_INDEX_FILE_WITH_EXTERN_STRING="module {:extern \"software.amazon.cryptography.dbencryptionsdk.dynamodb.transforms.internaldafny\" } DynamoDbEncryptionTransforms" +TRANSFORMS_INDEX_FILE_WITHOUT_EXTERN_STRING="module DynamoDbEncryptionTransforms" + +STRUCTUREDENCRYPTION_TYPES_FILE_PATH=dafny/StructuredEncryption/Model/AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.dfy +STRUCTUREDENCRYPTION_TYPES_FILE_WITH_EXTERN_STRING="module {:extern \"software.amazon.cryptography.dbencryptionsdk.structuredencryption.internaldafny.types\" } AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes" +STRUCTUREDENCRYPTION_TYPES_FILE_WITHOUT_EXTERN_STRING="module AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes" + +STRUCTUREDENCRYPTION_INDEX_FILE_PATH=dafny/StructuredEncryption/src/Index.dfy +STRUCTUREDENCRYPTION_INDEX_FILE_WITH_EXTERN_STRING="module {:extern \"software.amazon.cryptography.dbencryptionsdk.structuredencryption.internaldafny\" } StructuredEncryption" +STRUCTUREDENCRYPTION_INDEX_FILE_WITHOUT_EXTERN_STRING="module StructuredEncryption" + +_sed_types_file_remove_extern: + $(MAKE) _sed_file SED_FILE_PATH=$(DYNAMODB_TYPES_FILE_PATH) SED_BEFORE_STRING=$(DYNAMODB_TYPES_FILE_WITH_EXTERN_STRING) SED_AFTER_STRING=$(DYNAMODB_TYPES_FILE_WITHOUT_EXTERN_STRING) + $(MAKE) _sed_file SED_FILE_PATH=$(ITEMENCRYPTOR_TYPES_FILE_PATH) SED_BEFORE_STRING=$(ITEMENCRYPTOR_TYPES_FILE_WITH_EXTERN_STRING) SED_AFTER_STRING=$(ITEMENCRYPTOR_TYPES_FILE_WITHOUT_EXTERN_STRING) + $(MAKE) _sed_file SED_FILE_PATH=$(TRANSFORMS_TYPES_FILE_PATH) SED_BEFORE_STRING=$(TRANSFORMS_TYPES_FILE_WITH_EXTERN_STRING) SED_AFTER_STRING=$(TRANSFORMS_TYPES_FILE_WITHOUT_EXTERN_STRING) + $(MAKE) _sed_file SED_FILE_PATH=$(STRUCTUREDENCRYPTION_TYPES_FILE_PATH) SED_BEFORE_STRING=$(STRUCTUREDENCRYPTION_TYPES_FILE_WITH_EXTERN_STRING) SED_AFTER_STRING=$(STRUCTUREDENCRYPTION_TYPES_FILE_WITHOUT_EXTERN_STRING) + +_sed_index_file_remove_extern: + $(MAKE) _sed_file SED_FILE_PATH=$(DYNAMODB_INDEX_FILE_PATH) SED_BEFORE_STRING=$(DYNAMODB_INDEX_FILE_WITH_EXTERN_STRING) SED_AFTER_STRING=$(DYNAMODB_INDEX_FILE_WITHOUT_EXTERN_STRING) + $(MAKE) _sed_file SED_FILE_PATH=$(ITEMENCRYPTOR_INDEX_FILE_PATH) SED_BEFORE_STRING=$(ITEMENCRYPTOR_INDEX_FILE_WITH_EXTERN_STRING) SED_AFTER_STRING=$(ITEMENCRYPTOR_INDEX_FILE_WITHOUT_EXTERN_STRING) + $(MAKE) _sed_file SED_FILE_PATH=$(ITEMENCRYPTOR_LEGACY_FILE_PATH) SED_BEFORE_STRING=$(ITEMENCRYPTOR_LEGACY_FILE_WITH_EXTERN_STRING) SED_AFTER_STRING=$(ITEMENCRYPTOR_LEGACY_FILE_WITHOUT_EXTERN_STRING) + $(MAKE) _sed_file SED_FILE_PATH=$(TRANSFORMS_INDEX_FILE_PATH) SED_BEFORE_STRING=$(TRANSFORMS_INDEX_FILE_WITH_EXTERN_STRING) SED_AFTER_STRING=$(TRANSFORMS_INDEX_FILE_WITHOUT_EXTERN_STRING) + $(MAKE) _sed_file SED_FILE_PATH=$(STRUCTUREDENCRYPTION_INDEX_FILE_PATH) SED_BEFORE_STRING=$(STRUCTUREDENCRYPTION_INDEX_FILE_WITH_EXTERN_STRING) SED_AFTER_STRING=$(STRUCTUREDENCRYPTION_INDEX_FILE_WITHOUT_EXTERN_STRING) + +_sed_types_file_add_extern: + $(MAKE) _sed_file SED_FILE_PATH=$(DYNAMODB_TYPES_FILE_PATH) SED_BEFORE_STRING=$(DYNAMODB_TYPES_FILE_WITHOUT_EXTERN_STRING) SED_AFTER_STRING=$(DYNAMODB_TYPES_FILE_WITH_EXTERN_STRING) + $(MAKE) _sed_file SED_FILE_PATH=$(ITEMENCRYPTOR_TYPES_FILE_PATH) SED_BEFORE_STRING=$(ITEMENCRYPTOR_TYPES_FILE_WITHOUT_EXTERN_STRING) SED_AFTER_STRING=$(ITEMENCRYPTOR_TYPES_FILE_WITH_EXTERN_STRING) + $(MAKE) _sed_file SED_FILE_PATH=$(TRANSFORMS_TYPES_FILE_PATH) SED_BEFORE_STRING=$(TRANSFORMS_TYPES_FILE_WITHOUT_EXTERN_STRING) SED_AFTER_STRING=$(TRANSFORMS_TYPES_FILE_WITH_EXTERN_STRING) + $(MAKE) _sed_file SED_FILE_PATH=$(STRUCTUREDENCRYPTION_TYPES_FILE_PATH) SED_BEFORE_STRING=$(STRUCTUREDENCRYPTION_TYPES_FILE_WITHOUT_EXTERN_STRING) SED_AFTER_STRING=$(STRUCTUREDENCRYPTION_TYPES_FILE_WITH_EXTERN_STRING) + +_sed_index_file_add_extern: + $(MAKE) _sed_file SED_FILE_PATH=$(DYNAMODB_INDEX_FILE_PATH) SED_BEFORE_STRING=$(DYNAMODB_INDEX_FILE_WITHOUT_EXTERN_STRING) SED_AFTER_STRING=$(DYNAMODB_INDEX_FILE_WITH_EXTERN_STRING) + $(MAKE) _sed_file SED_FILE_PATH=$(ITEMENCRYPTOR_INDEX_FILE_PATH) SED_BEFORE_STRING=$(ITEMENCRYPTOR_INDEX_FILE_WITHOUT_EXTERN_STRING) SED_AFTER_STRING=$(ITEMENCRYPTOR_INDEX_FILE_WITH_EXTERN_STRING) + $(MAKE) _sed_file SED_FILE_PATH=$(ITEMENCRYPTOR_LEGACY_FILE_PATH) SED_BEFORE_STRING=$(ITEMENCRYPTOR_LEGACY_FILE_WITHOUT_EXTERN_STRING) SED_AFTER_STRING=$(ITEMENCRYPTOR_LEGACY_FILE_WITH_EXTERN_STRING) + $(MAKE) _sed_file SED_FILE_PATH=$(TRANSFORMS_INDEX_FILE_PATH) SED_BEFORE_STRING=$(TRANSFORMS_INDEX_FILE_WITHOUT_EXTERN_STRING) SED_AFTER_STRING=$(TRANSFORMS_INDEX_FILE_WITH_EXTERN_STRING) + $(MAKE) _sed_file SED_FILE_PATH=$(STRUCTUREDENCRYPTION_INDEX_FILE_PATH) SED_BEFORE_STRING=$(STRUCTUREDENCRYPTION_INDEX_FILE_WITHOUT_EXTERN_STRING) SED_AFTER_STRING=$(STRUCTUREDENCRYPTION_INDEX_FILE_WITH_EXTERN_STRING) diff --git a/DynamoDbEncryption/dafny/DynamoDbEncryption/src/Index.dfy b/DynamoDbEncryption/dafny/DynamoDbEncryption/src/Index.dfy index 8faa05326..d4dc6e5ff 100644 --- a/DynamoDbEncryption/dafny/DynamoDbEncryption/src/Index.dfy +++ b/DynamoDbEncryption/dafny/DynamoDbEncryption/src/Index.dfy @@ -16,9 +16,8 @@ include "UpdateExpr.dfy" include "Util.dfy" include "Virtual.dfy" -module - {:extern "software.amazon.cryptography.dbencryptionsdk.dynamodb.internaldafny" } - DynamoDbEncryption refines AbstractAwsCryptographyDbEncryptionSdkDynamoDbService +module {:extern "software.amazon.cryptography.dbencryptionsdk.dynamodb.internaldafny" } DynamoDbEncryption + refines AbstractAwsCryptographyDbEncryptionSdkDynamoDbService { import Operations = AwsCryptographyDbEncryptionSdkDynamoDbOperations diff --git a/DynamoDbEncryption/dafny/DynamoDbEncryptionTransforms/src/Index.dfy b/DynamoDbEncryption/dafny/DynamoDbEncryptionTransforms/src/Index.dfy index 56ba4ea1f..90effd956 100644 --- a/DynamoDbEncryption/dafny/DynamoDbEncryptionTransforms/src/Index.dfy +++ b/DynamoDbEncryption/dafny/DynamoDbEncryptionTransforms/src/Index.dfy @@ -5,9 +5,8 @@ include "DdbMiddlewareConfig.dfy" include "AwsCryptographyDbEncryptionSdkDynamoDbTransformsOperations.dfy" include "../../DynamoDbEncryption/src/ConfigToInfo.dfy" -module - {:extern "software.amazon.cryptography.dbencryptionsdk.dynamodb.transforms.internaldafny" } - DynamoDbEncryptionTransforms refines AbstractAwsCryptographyDbEncryptionSdkDynamoDbTransformsService +module {:extern "software.amazon.cryptography.dbencryptionsdk.dynamodb.transforms.internaldafny" } DynamoDbEncryptionTransforms + refines AbstractAwsCryptographyDbEncryptionSdkDynamoDbTransformsService { import opened DdbMiddlewareConfig import opened StandardLibrary @@ -130,7 +129,6 @@ module (if tableConfig.keyring.Some? then tableConfig.keyring.value.Modifies else {}) + (if tableConfig.cmm.Some? then tableConfig.cmm.value.Modifies else {}) + (if tableConfig.legacyOverride.Some? then tableConfig.legacyOverride.value.encryptor.Modifies else {}) - + (if tableConfig.search.Some? then tableConfig.search.value.versions[0].keyStore.Modifies else {}) ) {:nowarn} :: o; // ignore warning for missing trigger on quantifier @@ -151,11 +149,10 @@ module var tableName: string := tableNamesSeq[i]; var inputConfig := config.tableEncryptionConfigs[tableName]; - :- Need(inputConfig.logicalTableName !in allLogicalTableNames, E("Duplicate logical table mapped to multiple physical tables: " + inputConfig.logicalTableName)); + :- Need(inputConfig.logicalTableName !in allLogicalTableNames, E("Duplicate logical table maped to multipule physical tables: " + inputConfig.logicalTableName)); assert SearchConfigToInfo.ValidSearchConfig(inputConfig.search); SearchInModifies(config, tableName); - reveal SearchConfigToInfo.ValidSharedCache(); var searchR := SearchConfigToInfo.Convert(inputConfig); var search :- searchR.MapFailure(e => AwsCryptographyDbEncryptionSdkDynamoDb(e)); assert search.None? || search.value.ValidState(); diff --git a/DynamoDbEncryption/dafny/DynamoDbItemEncryptor/src/Index.dfy b/DynamoDbEncryption/dafny/DynamoDbItemEncryptor/src/Index.dfy index 1ee469bab..e6a6c53da 100644 --- a/DynamoDbEncryption/dafny/DynamoDbItemEncryptor/src/Index.dfy +++ b/DynamoDbEncryption/dafny/DynamoDbItemEncryptor/src/Index.dfy @@ -4,9 +4,8 @@ include "AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorOperations.dfy" include "Util.dfy" -module - {:extern "software.amazon.cryptography.dbencryptionsdk.dynamodb.itemencryptor.internaldafny" } - DynamoDbItemEncryptor refines AbstractAwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorService +module {:extern "software.amazon.cryptography.dbencryptionsdk.dynamodb.itemencryptor.internaldafny" } DynamoDbItemEncryptor + refines AbstractAwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorService { import opened DynamoDbItemEncryptorUtil import StructuredEncryption diff --git a/DynamoDbEncryption/dafny/StructuredEncryption/src/Index.dfy b/DynamoDbEncryption/dafny/StructuredEncryption/src/Index.dfy index 19533014a..2279441ea 100644 --- a/DynamoDbEncryption/dafny/StructuredEncryption/src/Index.dfy +++ b/DynamoDbEncryption/dafny/StructuredEncryption/src/Index.dfy @@ -3,9 +3,8 @@ include "AwsCryptographyDbEncryptionSdkStructuredEncryptionOperations.dfy" -module - {:extern "software.amazon.cryptography.dbencryptionsdk.structuredencryption.internaldafny" } - StructuredEncryption refines AbstractAwsCryptographyDbEncryptionSdkStructuredEncryptionService +module {:extern "software.amazon.cryptography.dbencryptionsdk.structuredencryption.internaldafny" } StructuredEncryption + refines AbstractAwsCryptographyDbEncryptionSdkStructuredEncryptionService { import Operations = AwsCryptographyDbEncryptionSdkStructuredEncryptionOperations diff --git a/DynamoDbEncryption/runtimes/go/ImplementationFromDafny-go/InternalLegacyOverride/extern.go b/DynamoDbEncryption/runtimes/go/ImplementationFromDafny-go/InternalLegacyOverride/extern.go new file mode 100644 index 000000000..487b1145a --- /dev/null +++ b/DynamoDbEncryption/runtimes/go/ImplementationFromDafny-go/InternalLegacyOverride/extern.go @@ -0,0 +1,51 @@ +package InternalLegacyOverride + +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/awscryptographydbencryptionsdkdynamodbitemencryptorsmithygeneratedtypes" +) + +var policy = AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_LegacyPolicy_.Create_FORBID__LEGACY__ENCRYPT__FORBID__LEGACY__DECRYPT_() + +func (InternalLegacyOverride) Policy() AwsCryptographyDbEncryptionSdkDynamoDbTypes.LegacyPolicy { + return policy +} + +func (CompanionStruct_InternalLegacyOverride_) Build(config interface{}) Wrappers.Result { + // Go does not support the Legacy DDB-EC + if policy.Is_FORBID__LEGACY__ENCRYPT__FORBID__LEGACY__DECRYPT() { + return Wrappers.Companion_Result_.Create_Success_(Wrappers.Companion_Option_.Create_None_()) + } + err := &awscryptographydbencryptionsdkdynamodbitemencryptorsmithygeneratedtypes.DynamoDbItemEncryptorException{ + Message: "Legacy configuration unsupported.", + } + return Wrappers.Companion_Result_.Create_Failure_(err) +} + +func (InternalLegacyOverride) EncryptItem(config interface{}) Wrappers.Result { + // Go does not support the Legacy DDB-EC + if policy.Is_FORBID__LEGACY__ENCRYPT__FORBID__LEGACY__DECRYPT() { + return Wrappers.Companion_Result_.Create_Success_(Wrappers.Companion_Option_.Create_None_()) + } + err := &awscryptographydbencryptionsdkdynamodbitemencryptorsmithygeneratedtypes.DynamoDbItemEncryptorException{ + Message: "Legacy configuration unsupported.", + } + return Wrappers.Companion_Result_.Create_Failure_(err) +} + +func (InternalLegacyOverride) DecryptItem(config interface{}) Wrappers.Result { + // Go does not support the Legacy DDB-EC + if policy.Is_FORBID__LEGACY__ENCRYPT__FORBID__LEGACY__DECRYPT() { + return Wrappers.Companion_Result_.Create_Success_(Wrappers.Companion_Option_.Create_None_()) + } + err := &awscryptographydbencryptionsdkdynamodbitemencryptorsmithygeneratedtypes.DynamoDbItemEncryptorException{ + Message: "Legacy configuration unsupported.", + } + return Wrappers.Companion_Result_.Create_Failure_(err) +} + +func (InternalLegacyOverride) IsLegacyInput(config interface{}) bool { + // Go does not support the Legacy DDB-EC + return false +} diff --git a/DynamoDbEncryption/runtimes/go/ImplementationFromDafny-go/dbesdkmiddleware/middleware.go b/DynamoDbEncryption/runtimes/go/ImplementationFromDafny-go/dbesdkmiddleware/middleware.go new file mode 100644 index 000000000..e5c6ae268 --- /dev/null +++ b/DynamoDbEncryption/runtimes/go/ImplementationFromDafny-go/dbesdkmiddleware/middleware.go @@ -0,0 +1,319 @@ +package dbesdkmiddleware + +import ( + "context" + + "github.com/aws/aws-database-encryption-sdk-dynamodb/awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes" + "github.com/aws/aws-database-encryption-sdk-dynamodb/awscryptographydbencryptionsdkdynamodbtransformssmithygenerated" + "github.com/aws/aws-database-encryption-sdk-dynamodb/awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes" + "github.com/aws/aws-sdk-go-v2/service/dynamodb" + "github.com/aws/smithy-go/middleware" +) + +type DBEsdkMiddleware struct { + client *awscryptographydbencryptionsdkdynamodbtransformssmithygenerated.Client +} + +func NewDBEsdkMiddleware(config awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.DynamoDbTablesEncryptionConfig) (*DBEsdkMiddleware, error) { + client, err := awscryptographydbencryptionsdkdynamodbtransformssmithygenerated.NewClient(config) + if err != nil { + return nil, err + } + return &DBEsdkMiddleware{ + client: client, + }, nil +} + +func (m DBEsdkMiddleware) CreateMiddleware() func(options *dynamodb.Options) { + return func(options *dynamodb.Options) { + options.APIOptions = append(options.APIOptions, func(stack *middleware.Stack) error { + // Add request interceptor at the beginning of Initialize step + requestIntercetor := m.createRequestInterceptor() + if err := stack.Initialize.Add(requestIntercetor, middleware.Before); err != nil { + return err + } + // Add response interceptor at the end of Finalize step + return stack.Finalize.Add(m.createResponseInterceptor(), middleware.After) + }) + } +} + +func (m DBEsdkMiddleware) createRequestInterceptor() middleware.InitializeMiddleware { + return middleware.InitializeMiddlewareFunc("RequestInterceptor", func( + ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler, + ) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, + ) { + ctx, err = m.handleRequestInterception(ctx, in.Parameters) + if err != nil { + return middleware.InitializeOutput{}, middleware.Metadata{}, err + } + return next.HandleInitialize(ctx, in) + }) +} + +// handleRequestInterception handles the interception logic before the DynamoDB operation +func (m DBEsdkMiddleware) handleRequestInterception(ctx context.Context, request interface{}) (context.Context, error) { + switch v := request.(type) { + case *dynamodb.PutItemInput: + ctx = middleware.WithStackValue(ctx, "originalInput", *v) + transformedRequest, err := m.client.PutItemInputTransform(context.TODO(), awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.PutItemInputTransformInput{ + SdkInput: *v, + }) + if err != nil { + return nil, err + } + *v = transformedRequest.TransformedInput + case *dynamodb.GetItemInput: + ctx = middleware.WithStackValue(ctx, "originalInput", *v) + transformedRequest, err := m.client.GetItemInputTransform(context.TODO(), awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.GetItemInputTransformInput{ + SdkInput: *v, + }) + if err != nil { + return nil, err + } + *v = transformedRequest.TransformedInput + case *dynamodb.BatchGetItemInput: + ctx = middleware.WithStackValue(ctx, "originalInput", *v) + transformedRequest, err := m.client.BatchGetItemInputTransform(context.TODO(), awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.BatchGetItemInputTransformInput{ + SdkInput: *v, + }) + if err != nil { + return nil, err + } + *v = transformedRequest.TransformedInput + case *dynamodb.BatchWriteItemInput: + ctx = middleware.WithStackValue(ctx, "originalInput", *v) + transformedRequest, err := m.client.BatchWriteItemInputTransform(context.TODO(), awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.BatchWriteItemInputTransformInput{ + SdkInput: *v, + }) + if err != nil { + return nil, err + } + *v = transformedRequest.TransformedInput + case *dynamodb.BatchExecuteStatementInput: + ctx = middleware.WithStackValue(ctx, "originalInput", *v) + transformedRequest, err := m.client.BatchExecuteStatementInputTransform(context.TODO(), awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.BatchExecuteStatementInputTransformInput{ + SdkInput: *v, + }) + if err != nil { + return nil, err + } + *v = transformedRequest.TransformedInput + case *dynamodb.DeleteItemInput: + ctx = middleware.WithStackValue(ctx, "originalInput", *v) + transformedRequest, err := m.client.DeleteItemInputTransform(context.TODO(), awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.DeleteItemInputTransformInput{ + SdkInput: *v, + }) + if err != nil { + return nil, err + } + *v = transformedRequest.TransformedInput + case *dynamodb.ExecuteStatementInput: + ctx = middleware.WithStackValue(ctx, "originalInput", *v) + transformedRequest, err := m.client.ExecuteStatementInputTransform(context.TODO(), awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.ExecuteStatementInputTransformInput{ + SdkInput: *v, + }) + if err != nil { + return nil, err + } + *v = transformedRequest.TransformedInput + case *dynamodb.ExecuteTransactionInput: + ctx = middleware.WithStackValue(ctx, "originalInput", *v) + transformedRequest, err := m.client.ExecuteTransactionInputTransform(context.TODO(), awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.ExecuteTransactionInputTransformInput{ + SdkInput: *v, + }) + if err != nil { + return nil, err + } + *v = transformedRequest.TransformedInput + case *dynamodb.QueryInput: + ctx = middleware.WithStackValue(ctx, "originalInput", *v) + transformedRequest, err := m.client.QueryInputTransform(context.TODO(), awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.QueryInputTransformInput{ + SdkInput: *v, + }) + if err != nil { + return nil, err + } + *v = transformedRequest.TransformedInput + case *dynamodb.ScanInput: + ctx = middleware.WithStackValue(ctx, "originalInput", *v) + transformedRequest, err := m.client.ScanInputTransform(context.TODO(), awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.ScanInputTransformInput{ + SdkInput: *v, + }) + if err != nil { + return nil, err + } + *v = transformedRequest.TransformedInput + case *dynamodb.TransactGetItemsInput: + ctx = middleware.WithStackValue(ctx, "originalInput", *v) + transformedRequest, err := m.client.TransactGetItemsInputTransform(context.TODO(), awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.TransactGetItemsInputTransformInput{ + SdkInput: *v, + }) + if err != nil { + return nil, err + } + *v = transformedRequest.TransformedInput + case *dynamodb.TransactWriteItemsInput: + ctx = middleware.WithStackValue(ctx, "originalInput", *v) + transformedRequest, err := m.client.TransactWriteItemsInputTransform(context.TODO(), awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.TransactWriteItemsInputTransformInput{ + SdkInput: *v, + }) + if err != nil { + return nil, err + } + *v = transformedRequest.TransformedInput + case *dynamodb.UpdateItemInput: + ctx = middleware.WithStackValue(ctx, "originalInput", *v) + transformedRequest, err := m.client.UpdateItemInputTransform(context.TODO(), awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.UpdateItemInputTransformInput{ + SdkInput: *v, + }) + if err != nil { + return nil, err + } + *v = transformedRequest.TransformedInput + } + return ctx, nil +} + +// createResponseInterceptor creates and returns the middleware interceptor for responses +func (m DBEsdkMiddleware) createResponseInterceptor() middleware.FinalizeMiddleware { + return middleware.FinalizeMiddlewareFunc("ResponseInterceptor", func( + ctx context.Context, in middleware.FinalizeInput, next middleware.FinalizeHandler, + ) ( + out middleware.FinalizeOutput, metadata middleware.Metadata, err error, + ) { + // First let the request complete + result, metadata, err := next.HandleFinalize(ctx, in) + if err != nil { + return result, metadata, err + } + // Then intercept the response + err = m.handleResponseInterception(ctx, result.Result) + return result, metadata, err + }) +} + +// handleResponseInterception handles the interception logic after the DynamoDB operation +func (m DBEsdkMiddleware) handleResponseInterception(ctx context.Context, response interface{}) error { + switch v := response.(type) { + case *dynamodb.PutItemOutput: + transformedRequest, err := m.client.PutItemOutputTransform(context.TODO(), awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.PutItemOutputTransformInput{ + OriginalInput: middleware.GetStackValue(ctx, "originalInput").(dynamodb.PutItemInput), + SdkOutput: *v, + }) + if err != nil { + return err + } + *v = transformedRequest.TransformedOutput + case *dynamodb.GetItemOutput: + transformedRequest, err := m.client.GetItemOutputTransform(context.TODO(), awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.GetItemOutputTransformInput{ + OriginalInput: middleware.GetStackValue(ctx, "originalInput").(dynamodb.GetItemInput), + SdkOutput: *v, + }) + if err != nil { + return err + } + *v = transformedRequest.TransformedOutput + case *dynamodb.BatchGetItemOutput: + transformedRequest, err := m.client.BatchGetItemOutputTransform(context.TODO(), awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.BatchGetItemOutputTransformInput{ + OriginalInput: middleware.GetStackValue(ctx, "originalInput").(dynamodb.BatchGetItemInput), + SdkOutput: *v, + }) + if err != nil { + return err + } + *v = transformedRequest.TransformedOutput + case *dynamodb.BatchWriteItemOutput: + transformedRequest, err := m.client.BatchWriteItemOutputTransform(context.TODO(), awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.BatchWriteItemOutputTransformInput{ + OriginalInput: middleware.GetStackValue(ctx, "originalInput").(dynamodb.BatchWriteItemInput), + SdkOutput: *v, + }) + if err != nil { + return err + } + *v = transformedRequest.TransformedOutput + case *dynamodb.BatchExecuteStatementOutput: + transformedRequest, err := m.client.BatchExecuteStatementOutputTransform(context.TODO(), awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.BatchExecuteStatementOutputTransformInput{ + OriginalInput: middleware.GetStackValue(ctx, "originalInput").(dynamodb.BatchExecuteStatementInput), + SdkOutput: *v, + }) + if err != nil { + return err + } + *v = transformedRequest.TransformedOutput + case *dynamodb.DeleteItemOutput: + transformedRequest, err := m.client.DeleteItemOutputTransform(context.TODO(), awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.DeleteItemOutputTransformInput{ + OriginalInput: middleware.GetStackValue(ctx, "originalInput").(dynamodb.DeleteItemInput), + SdkOutput: *v, + }) + if err != nil { + return err + } + *v = transformedRequest.TransformedOutput + case *dynamodb.ExecuteStatementOutput: + transformedRequest, err := m.client.ExecuteStatementOutputTransform(context.TODO(), awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.ExecuteStatementOutputTransformInput{ + OriginalInput: middleware.GetStackValue(ctx, "originalInput").(dynamodb.ExecuteStatementInput), + SdkOutput: *v, + }) + if err != nil { + return err + } + *v = transformedRequest.TransformedOutput + case *dynamodb.ExecuteTransactionOutput: + transformedRequest, err := m.client.ExecuteTransactionOutputTransform(context.TODO(), awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.ExecuteTransactionOutputTransformInput{ + OriginalInput: middleware.GetStackValue(ctx, "originalInput").(dynamodb.ExecuteTransactionInput), + SdkOutput: *v, + }) + if err != nil { + return err + } + *v = transformedRequest.TransformedOutput + case *dynamodb.QueryOutput: + transformedRequest, err := m.client.QueryOutputTransform(context.TODO(), awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.QueryOutputTransformInput{ + OriginalInput: middleware.GetStackValue(ctx, "originalInput").(dynamodb.QueryInput), + SdkOutput: *v, + }) + if err != nil { + return err + } + *v = transformedRequest.TransformedOutput + case *dynamodb.ScanOutput: + transformedRequest, err := m.client.ScanOutputTransform(context.TODO(), awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.ScanOutputTransformInput{ + OriginalInput: middleware.GetStackValue(ctx, "originalInput").(dynamodb.ScanInput), + SdkOutput: *v, + }) + if err != nil { + return err + } + *v = transformedRequest.TransformedOutput + case *dynamodb.TransactGetItemsOutput: + transformedRequest, err := m.client.TransactGetItemsOutputTransform(context.TODO(), awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.TransactGetItemsOutputTransformInput{ + OriginalInput: middleware.GetStackValue(ctx, "originalInput").(dynamodb.TransactGetItemsInput), + SdkOutput: *v, + }) + if err != nil { + return err + } + *v = transformedRequest.TransformedOutput + case *dynamodb.TransactWriteItemsOutput: + transformedRequest, err := m.client.TransactWriteItemsOutputTransform(context.TODO(), awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.TransactWriteItemsOutputTransformInput{ + OriginalInput: middleware.GetStackValue(ctx, "originalInput").(dynamodb.TransactWriteItemsInput), + SdkOutput: *v, + }) + if err != nil { + return err + } + *v = transformedRequest.TransformedOutput + case *dynamodb.UpdateItemOutput: + transformedRequest, err := m.client.UpdateItemOutputTransform(context.TODO(), awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.UpdateItemOutputTransformInput{ + OriginalInput: middleware.GetStackValue(ctx, "originalInput").(dynamodb.UpdateItemInput), + SdkOutput: *v, + }) + if err != nil { + return err + } + *v = transformedRequest.TransformedOutput + } + return nil +} diff --git a/DynamoDbEncryption/runtimes/go/ImplementationFromDafny-go/go.mod b/DynamoDbEncryption/runtimes/go/ImplementationFromDafny-go/go.mod new file mode 100644 index 000000000..f73332235 --- /dev/null +++ b/DynamoDbEncryption/runtimes/go/ImplementationFromDafny-go/go.mod @@ -0,0 +1,41 @@ +module github.com/aws/aws-database-encryption-sdk-dynamodb + +go 1.23.2 + +replace ( + github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb => ../../../../submodules/MaterialProviders/ComAmazonawsDynamodb/runtimes/go/ImplementationFromDafny-go/ + github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms => ../../../../submodules/MaterialProviders/ComAmazonawsKms/runtimes/go/ImplementationFromDafny-go/ + github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl => ../../../../submodules/MaterialProviders/AwsCryptographicMaterialProviders/runtimes/go/ImplementationFromDafny-go/ + github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives => ../../../../submodules/MaterialProviders/AwsCryptographyPrimitives/runtimes/go/ImplementationFromDafny-go/ + github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library => ../../../../submodules/MaterialProviders/StandardLibrary/runtimes/go/ImplementationFromDafny-go/ +) + +require ( + github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb v0.0.0 + github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms v0.0.0 + github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl v0.0.0 + github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives v0.0.0 + github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library v0.0.0 + github.com/aws/aws-sdk-go-v2/service/dynamodb v1.39.2 + github.com/aws/smithy-go v1.22.1 + github.com/dafny-lang/DafnyRuntimeGo/v4 v4.9.2 +) + +require ( + github.com/aws/aws-sdk-go-v2 v1.32.8 // indirect + github.com/aws/aws-sdk-go-v2/config v1.28.10 // indirect + github.com/aws/aws-sdk-go-v2/credentials v1.17.51 // indirect + github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.23 // indirect + github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.27 // indirect + github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.27 // indirect + github.com/aws/aws-sdk-go-v2/internal/ini v1.8.1 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.1 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/endpoint-discovery v1.10.8 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.8 // indirect + github.com/aws/aws-sdk-go-v2/service/kms v1.36.0 // indirect + github.com/aws/aws-sdk-go-v2/service/sso v1.24.9 // indirect + github.com/aws/aws-sdk-go-v2/service/ssooidc v1.28.8 // indirect + github.com/aws/aws-sdk-go-v2/service/sts v1.33.6 // indirect + github.com/google/uuid v1.6.0 // indirect + github.com/jmespath/go-jmespath v0.4.0 // indirect +) diff --git a/DynamoDbEncryption/runtimes/go/ImplementationFromDafny-go/go.sum b/DynamoDbEncryption/runtimes/go/ImplementationFromDafny-go/go.sum new file mode 100644 index 000000000..e1dec03ac --- /dev/null +++ b/DynamoDbEncryption/runtimes/go/ImplementationFromDafny-go/go.sum @@ -0,0 +1,48 @@ +github.com/aws/aws-sdk-go-v2 v1.32.8 h1:cZV+NUS/eGxKXMtmyhtYPJ7Z4YLoI/V8bkTdRZfYhGo= +github.com/aws/aws-sdk-go-v2 v1.32.8/go.mod h1:P5WJBrYqqbWVaOxgH0X/FYYD47/nooaPOZPlQdmiN2U= +github.com/aws/aws-sdk-go-v2/config v1.28.10 h1:fKODZHfqQu06pCzR69KJ3GuttraRJkhlC8g80RZ0Dfg= +github.com/aws/aws-sdk-go-v2/config v1.28.10/go.mod h1:PvdxRYZ5Um9QMq9PQ0zHHNdtKK+he2NHtFCUFMXWXeg= +github.com/aws/aws-sdk-go-v2/credentials v1.17.51 h1:F/9Sm6Y6k4LqDesZDPJCLxQGXNNHd/ZtJiWd0lCZKRk= +github.com/aws/aws-sdk-go-v2/credentials v1.17.51/go.mod h1:TKbzCHm43AoPyA+iLGGcruXd4AFhF8tOmLex2R9jWNQ= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.23 h1:IBAoD/1d8A8/1aA8g4MBVtTRHhXRiNAgwdbo/xRM2DI= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.23/go.mod h1:vfENuCM7dofkgKpYzuzf1VT1UKkA/YL3qanfBn7HCaA= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.27 h1:jSJjSBzw8VDIbWv+mmvBSP8ezsztMYJGH+eKqi9AmNs= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.27/go.mod h1:/DAhLbFRgwhmvJdOfSm+WwikZrCuUJiA4WgJG0fTNSw= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.27 h1:l+X4K77Dui85pIj5foXDhPlnqcNRG2QUyvca300lXh8= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.27/go.mod h1:KvZXSFEXm6x84yE8qffKvT3x8J5clWnVFXphpohhzJ8= +github.com/aws/aws-sdk-go-v2/internal/ini v1.8.1 h1:VaRN3TlFdd6KxX1x3ILT5ynH6HvKgqdiXoTxAF4HQcQ= +github.com/aws/aws-sdk-go-v2/internal/ini v1.8.1/go.mod h1:FbtygfRFze9usAadmnGJNc8KsP346kEe+y2/oyhGAGc= +github.com/aws/aws-sdk-go-v2/service/dynamodb v1.39.2 h1:XcdIh35yg1J8bAiUOLtL/PoPMSGsD72Zanwmim8jEXc= +github.com/aws/aws-sdk-go-v2/service/dynamodb v1.39.2/go.mod h1:516U/KQM3zdcahNBjHUZKGWNfNnIYyt7sxLeqOx78b0= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.1 h1:iXtILhvDxB6kPvEXgsDhGaZCSC6LQET5ZHSdJozeI0Y= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.1/go.mod h1:9nu0fVANtYiAePIBh2/pFUSwtJ402hLnp854CNoDOeE= +github.com/aws/aws-sdk-go-v2/service/internal/endpoint-discovery v1.10.8 h1:h56mLNgpqWIL7RZOIQO634Xr569bXGTlIE83t/a0LSE= +github.com/aws/aws-sdk-go-v2/service/internal/endpoint-discovery v1.10.8/go.mod h1:kK04550Xx95KI0sNmwoB7ciS9QkRwt9TojhoTMXyJdo= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.8 h1:cWno7lefSH6Pp+mSznagKCgfDGeZRin66UvYUqAkyeA= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.8/go.mod h1:tPD+VjU3ABTBoEJ3nctu5Nyg4P4yjqSH5bJGGkY4+XE= +github.com/aws/aws-sdk-go-v2/service/kms v1.36.0 h1:jwWMpQ/1obJRdHaix9k10zWSnSMZGdDTZIDiS5CGzq8= +github.com/aws/aws-sdk-go-v2/service/kms v1.36.0/go.mod h1:OHmlX4+o0XIlJAQGAHPIy0N9yZcYS/vNG+T7geSNcFw= +github.com/aws/aws-sdk-go-v2/service/sso v1.24.9 h1:YqtxripbjWb2QLyzRK9pByfEDvgg95gpC2AyDq4hFE8= +github.com/aws/aws-sdk-go-v2/service/sso v1.24.9/go.mod h1:lV8iQpg6OLOfBnqbGMBKYjilBlf633qwHnBEiMSPoHY= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.28.8 h1:6dBT1Lz8fK11m22R+AqfRsFn8320K0T5DTGxxOQBSMw= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.28.8/go.mod h1:/kiBvRQXBc6xeJTYzhSdGvJ5vm1tjaDEjH+MSeRJnlY= +github.com/aws/aws-sdk-go-v2/service/sts v1.33.6 h1:VwhTrsTuVn52an4mXx29PqRzs2Dvu921NpGk7y43tAM= +github.com/aws/aws-sdk-go-v2/service/sts v1.33.6/go.mod h1:+8h7PZb3yY5ftmVLD7ocEoE98hdc8PoKS0H3wfx1dlc= +github.com/aws/smithy-go v1.22.1 h1:/HPHZQ0g7f4eUeK6HKglFz8uwVfZKgoI25rb/J+dnro= +github.com/aws/smithy-go v1.22.1/go.mod h1:irrKGvNn1InZwb2d7fkIRNucdfwR8R+Ts3wxYa/cJHg= +github.com/dafny-lang/DafnyRuntimeGo/v4 v4.9.2 h1:g/xAj4F7Zt9wXJ6QjfbfocVi/ZYlAFpNddHCFyfzRDg= +github.com/dafny-lang/DafnyRuntimeGo/v4 v4.9.2/go.mod h1:l2Tm4N2DKuq3ljONC2vOATeM9PUpXbIc8SgXdwwqEto= +github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8= +github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= +github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/jmespath/go-jmespath v0.4.0 h1:BEgLn5cpjn8UN1mAw4NjwDrS35OdebyEtFe+9YPoQUg= +github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo= +github.com/jmespath/go-jmespath/internal/testify v1.5.1 h1:shLQSRRSCCPj3f2gpwzGwWFoC7ycTf1rcQZHOlsJ6N8= +github.com/jmespath/go-jmespath/internal/testify v1.5.1/go.mod h1:L3OGu8Wl2/fWfCI6z80xFu9LTZmf1ZRjMHUOPmWr69U= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/yaml.v2 v2.2.8 h1:obN1ZagJSUGI0Ek/LBmuj4SNLPfIny3KsKFopxRdj10= +gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= diff --git a/DynamoDbEncryption/runtimes/go/TestsFromDafny-go/go.mod b/DynamoDbEncryption/runtimes/go/TestsFromDafny-go/go.mod new file mode 100644 index 000000000..3434ed68e --- /dev/null +++ b/DynamoDbEncryption/runtimes/go/TestsFromDafny-go/go.mod @@ -0,0 +1,43 @@ +module github.com/aws/aws-database-encryption-sdk-dynamodb/test + +go 1.23.2 + +replace ( + github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb v0.0.0 => ../../../../submodules/MaterialProviders/ComAmazonawsDynamodb/runtimes/go/ImplementationFromDafny-go/ + github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms v0.0.0 => ../../../../submodules/MaterialProviders/ComAmazonawsKms/runtimes/go/ImplementationFromDafny-go/ + github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl v0.0.0 => ../../../../submodules/MaterialProviders/AwsCryptographicMaterialProviders/runtimes/go/ImplementationFromDafny-go/ + github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives v0.0.0 => ../../../../submodules/MaterialProviders/AwsCryptographyPrimitives/runtimes/go/ImplementationFromDafny-go/ + github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library => ../../../../submodules/MaterialProviders/StandardLibrary/runtimes/go/ImplementationFromDafny-go/ + github.com/aws/aws-database-encryption-sdk-dynamodb => ../ImplementationFromDafny-go +) + +require ( + github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb v0.0.0 + github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl v0.0.0 + github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives v0.0.0 + github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library v0.0.0 + github.com/aws/aws-database-encryption-sdk-dynamodb v0.0.0 + github.com/aws/aws-sdk-go-v2/service/dynamodb v1.39.2 + github.com/aws/smithy-go v1.22.1 + github.com/dafny-lang/DafnyRuntimeGo/v4 v4.9.2 +) + +require ( + github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms v0.0.1 // indirect + github.com/aws/aws-sdk-go-v2 v1.32.8 // indirect + github.com/aws/aws-sdk-go-v2/config v1.28.10 // indirect + github.com/aws/aws-sdk-go-v2/credentials v1.17.51 // indirect + github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.23 // indirect + github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.27 // indirect + github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.27 // indirect + github.com/aws/aws-sdk-go-v2/internal/ini v1.8.1 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.1 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/endpoint-discovery v1.10.8 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.8 // indirect + github.com/aws/aws-sdk-go-v2/service/kms v1.36.0 // indirect + github.com/aws/aws-sdk-go-v2/service/sso v1.24.9 // indirect + github.com/aws/aws-sdk-go-v2/service/ssooidc v1.28.8 // indirect + github.com/aws/aws-sdk-go-v2/service/sts v1.33.6 // indirect + github.com/google/uuid v1.6.0 // indirect + github.com/jmespath/go-jmespath v0.4.0 // indirect +) diff --git a/DynamoDbEncryption/runtimes/go/TestsFromDafny-go/go.sum b/DynamoDbEncryption/runtimes/go/TestsFromDafny-go/go.sum new file mode 100644 index 000000000..ab437b3f2 --- /dev/null +++ b/DynamoDbEncryption/runtimes/go/TestsFromDafny-go/go.sum @@ -0,0 +1,56 @@ +github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb v0.1.0 h1:IG/0PJjc5lIgy4J+eiFK05hzCGRTDVEfgHNn0YhNUqk= +github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb v0.1.0/go.mod h1:8mHZUqK00Oga2z7H6Kp8LZGkEBKSWUUT/nkeoIR8GiM= +github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms v0.0.1 h1:jvMM4fgVZ116L8VPfdEa3GxJiU7ic/krHCAIyeIcPJY= +github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms v0.0.1/go.mod h1:6QCmXRQJNf1XId129cnFqpWK9DHamyyqmC7GKxHmcEE= +github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl v0.1.0 h1:Xop0OVxbrkbcGZnyy/QbNduzZxvij34IStEYowN8IlA= +github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl v0.1.0/go.mod h1:+QLHsXYeIZqA4WDjQBXNDm5r5T3zyIxE0q/k2l76apc= +github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives v0.0.1 h1:Iy8Va/0Aa43JQkzGKlTjOvBlecTyZCIOg1JqRRyWH9g= +github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives v0.0.1/go.mod h1:aPCFt/cDDuUlg6aWLSTPW6ZPqivNt3pNzDWCsBFRQtE= +github.com/aws/aws-sdk-go-v2 v1.32.8 h1:cZV+NUS/eGxKXMtmyhtYPJ7Z4YLoI/V8bkTdRZfYhGo= +github.com/aws/aws-sdk-go-v2 v1.32.8/go.mod h1:P5WJBrYqqbWVaOxgH0X/FYYD47/nooaPOZPlQdmiN2U= +github.com/aws/aws-sdk-go-v2/config v1.28.10 h1:fKODZHfqQu06pCzR69KJ3GuttraRJkhlC8g80RZ0Dfg= +github.com/aws/aws-sdk-go-v2/config v1.28.10/go.mod h1:PvdxRYZ5Um9QMq9PQ0zHHNdtKK+he2NHtFCUFMXWXeg= +github.com/aws/aws-sdk-go-v2/credentials v1.17.51 h1:F/9Sm6Y6k4LqDesZDPJCLxQGXNNHd/ZtJiWd0lCZKRk= +github.com/aws/aws-sdk-go-v2/credentials v1.17.51/go.mod h1:TKbzCHm43AoPyA+iLGGcruXd4AFhF8tOmLex2R9jWNQ= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.23 h1:IBAoD/1d8A8/1aA8g4MBVtTRHhXRiNAgwdbo/xRM2DI= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.23/go.mod h1:vfENuCM7dofkgKpYzuzf1VT1UKkA/YL3qanfBn7HCaA= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.27 h1:jSJjSBzw8VDIbWv+mmvBSP8ezsztMYJGH+eKqi9AmNs= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.27/go.mod h1:/DAhLbFRgwhmvJdOfSm+WwikZrCuUJiA4WgJG0fTNSw= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.27 h1:l+X4K77Dui85pIj5foXDhPlnqcNRG2QUyvca300lXh8= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.27/go.mod h1:KvZXSFEXm6x84yE8qffKvT3x8J5clWnVFXphpohhzJ8= +github.com/aws/aws-sdk-go-v2/internal/ini v1.8.1 h1:VaRN3TlFdd6KxX1x3ILT5ynH6HvKgqdiXoTxAF4HQcQ= +github.com/aws/aws-sdk-go-v2/internal/ini v1.8.1/go.mod h1:FbtygfRFze9usAadmnGJNc8KsP346kEe+y2/oyhGAGc= +github.com/aws/aws-sdk-go-v2/service/dynamodb v1.39.2 h1:XcdIh35yg1J8bAiUOLtL/PoPMSGsD72Zanwmim8jEXc= +github.com/aws/aws-sdk-go-v2/service/dynamodb v1.39.2/go.mod h1:516U/KQM3zdcahNBjHUZKGWNfNnIYyt7sxLeqOx78b0= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.1 h1:iXtILhvDxB6kPvEXgsDhGaZCSC6LQET5ZHSdJozeI0Y= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.1/go.mod h1:9nu0fVANtYiAePIBh2/pFUSwtJ402hLnp854CNoDOeE= +github.com/aws/aws-sdk-go-v2/service/internal/endpoint-discovery v1.10.8 h1:h56mLNgpqWIL7RZOIQO634Xr569bXGTlIE83t/a0LSE= +github.com/aws/aws-sdk-go-v2/service/internal/endpoint-discovery v1.10.8/go.mod h1:kK04550Xx95KI0sNmwoB7ciS9QkRwt9TojhoTMXyJdo= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.8 h1:cWno7lefSH6Pp+mSznagKCgfDGeZRin66UvYUqAkyeA= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.8/go.mod h1:tPD+VjU3ABTBoEJ3nctu5Nyg4P4yjqSH5bJGGkY4+XE= +github.com/aws/aws-sdk-go-v2/service/kms v1.36.0 h1:jwWMpQ/1obJRdHaix9k10zWSnSMZGdDTZIDiS5CGzq8= +github.com/aws/aws-sdk-go-v2/service/kms v1.36.0/go.mod h1:OHmlX4+o0XIlJAQGAHPIy0N9yZcYS/vNG+T7geSNcFw= +github.com/aws/aws-sdk-go-v2/service/sso v1.24.9 h1:YqtxripbjWb2QLyzRK9pByfEDvgg95gpC2AyDq4hFE8= +github.com/aws/aws-sdk-go-v2/service/sso v1.24.9/go.mod h1:lV8iQpg6OLOfBnqbGMBKYjilBlf633qwHnBEiMSPoHY= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.28.8 h1:6dBT1Lz8fK11m22R+AqfRsFn8320K0T5DTGxxOQBSMw= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.28.8/go.mod h1:/kiBvRQXBc6xeJTYzhSdGvJ5vm1tjaDEjH+MSeRJnlY= +github.com/aws/aws-sdk-go-v2/service/sts v1.33.6 h1:VwhTrsTuVn52an4mXx29PqRzs2Dvu921NpGk7y43tAM= +github.com/aws/aws-sdk-go-v2/service/sts v1.33.6/go.mod h1:+8h7PZb3yY5ftmVLD7ocEoE98hdc8PoKS0H3wfx1dlc= +github.com/aws/smithy-go v1.22.1 h1:/HPHZQ0g7f4eUeK6HKglFz8uwVfZKgoI25rb/J+dnro= +github.com/aws/smithy-go v1.22.1/go.mod h1:irrKGvNn1InZwb2d7fkIRNucdfwR8R+Ts3wxYa/cJHg= +github.com/dafny-lang/DafnyRuntimeGo/v4 v4.9.2 h1:g/xAj4F7Zt9wXJ6QjfbfocVi/ZYlAFpNddHCFyfzRDg= +github.com/dafny-lang/DafnyRuntimeGo/v4 v4.9.2/go.mod h1:l2Tm4N2DKuq3ljONC2vOATeM9PUpXbIc8SgXdwwqEto= +github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8= +github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= +github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/jmespath/go-jmespath v0.4.0 h1:BEgLn5cpjn8UN1mAw4NjwDrS35OdebyEtFe+9YPoQUg= +github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo= +github.com/jmespath/go-jmespath/internal/testify v1.5.1 h1:shLQSRRSCCPj3f2gpwzGwWFoC7ycTf1rcQZHOlsJ6N8= +github.com/jmespath/go-jmespath/internal/testify v1.5.1/go.mod h1:L3OGu8Wl2/fWfCI6z80xFu9LTZmf1ZRjMHUOPmWr69U= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/yaml.v2 v2.2.8 h1:obN1ZagJSUGI0Ek/LBmuj4SNLPfIny3KsKFopxRdj10= +gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= diff --git a/Examples/runtimes/go/go.mod b/Examples/runtimes/go/go.mod new file mode 100644 index 000000000..24293647c --- /dev/null +++ b/Examples/runtimes/go/go.mod @@ -0,0 +1,46 @@ +module github.com/aws/aws-database-encryption-sdk-dynamodb/examples + +go 1.23.2 + +replace github.com/aws/aws-database-encryption-sdk-dynamodb => ../../../DynamoDbEncryption/runtimes/go/ImplementationFromDafny-go + +replace github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl => ../../../submodules/MaterialProviders/AwsCryptographicMaterialProviders/runtimes/go/ImplementationFromDafny-go/ + +replace github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives => ../../../submodules/MaterialProviders/AwsCryptographyPrimitives/runtimes/go/ImplementationFromDafny-go/ + +replace github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb => ../../../submodules/MaterialProviders/ComAmazonawsDynamodb/runtimes/go/ImplementationFromDafny-go/ + +replace github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms => ../../../submodules/MaterialProviders/ComAmazonawsKms/runtimes/go/ImplementationFromDafny-go/ + +replace github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library => ../../../submodules/MaterialProviders/StandardLibrary/runtimes/go/ImplementationFromDafny-go/ + +require ( + github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl v0.0.0 + github.com/aws/aws-database-encryption-sdk-dynamodb v0.0.0 + github.com/aws/aws-sdk-go-v2 v1.32.8 + github.com/aws/aws-sdk-go-v2/config v1.28.10 + github.com/aws/aws-sdk-go-v2/service/dynamodb v1.39.2 + github.com/aws/aws-sdk-go-v2/service/kms v1.36.0 +) + +require ( + github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb v0.1.0 // indirect + github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms v0.0.1 // indirect + github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives v0.0.1 // indirect + github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library v0.2.0 // indirect + github.com/aws/aws-sdk-go-v2/credentials v1.17.51 // indirect + github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.23 // indirect + github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.27 // indirect + github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.27 // indirect + github.com/aws/aws-sdk-go-v2/internal/ini v1.8.1 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.1 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/endpoint-discovery v1.10.8 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.8 // indirect + github.com/aws/aws-sdk-go-v2/service/sso v1.24.9 // indirect + github.com/aws/aws-sdk-go-v2/service/ssooidc v1.28.8 // indirect + github.com/aws/aws-sdk-go-v2/service/sts v1.33.6 // indirect + github.com/aws/smithy-go v1.22.1 // indirect + github.com/dafny-lang/DafnyRuntimeGo/v4 v4.9.2 // indirect + github.com/google/uuid v1.6.0 // indirect + github.com/jmespath/go-jmespath v0.4.0 // indirect +) diff --git a/Examples/runtimes/go/go.sum b/Examples/runtimes/go/go.sum new file mode 100644 index 000000000..e1dec03ac --- /dev/null +++ b/Examples/runtimes/go/go.sum @@ -0,0 +1,48 @@ +github.com/aws/aws-sdk-go-v2 v1.32.8 h1:cZV+NUS/eGxKXMtmyhtYPJ7Z4YLoI/V8bkTdRZfYhGo= +github.com/aws/aws-sdk-go-v2 v1.32.8/go.mod h1:P5WJBrYqqbWVaOxgH0X/FYYD47/nooaPOZPlQdmiN2U= +github.com/aws/aws-sdk-go-v2/config v1.28.10 h1:fKODZHfqQu06pCzR69KJ3GuttraRJkhlC8g80RZ0Dfg= +github.com/aws/aws-sdk-go-v2/config v1.28.10/go.mod h1:PvdxRYZ5Um9QMq9PQ0zHHNdtKK+he2NHtFCUFMXWXeg= +github.com/aws/aws-sdk-go-v2/credentials v1.17.51 h1:F/9Sm6Y6k4LqDesZDPJCLxQGXNNHd/ZtJiWd0lCZKRk= +github.com/aws/aws-sdk-go-v2/credentials v1.17.51/go.mod h1:TKbzCHm43AoPyA+iLGGcruXd4AFhF8tOmLex2R9jWNQ= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.23 h1:IBAoD/1d8A8/1aA8g4MBVtTRHhXRiNAgwdbo/xRM2DI= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.23/go.mod h1:vfENuCM7dofkgKpYzuzf1VT1UKkA/YL3qanfBn7HCaA= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.27 h1:jSJjSBzw8VDIbWv+mmvBSP8ezsztMYJGH+eKqi9AmNs= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.27/go.mod h1:/DAhLbFRgwhmvJdOfSm+WwikZrCuUJiA4WgJG0fTNSw= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.27 h1:l+X4K77Dui85pIj5foXDhPlnqcNRG2QUyvca300lXh8= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.27/go.mod h1:KvZXSFEXm6x84yE8qffKvT3x8J5clWnVFXphpohhzJ8= +github.com/aws/aws-sdk-go-v2/internal/ini v1.8.1 h1:VaRN3TlFdd6KxX1x3ILT5ynH6HvKgqdiXoTxAF4HQcQ= +github.com/aws/aws-sdk-go-v2/internal/ini v1.8.1/go.mod h1:FbtygfRFze9usAadmnGJNc8KsP346kEe+y2/oyhGAGc= +github.com/aws/aws-sdk-go-v2/service/dynamodb v1.39.2 h1:XcdIh35yg1J8bAiUOLtL/PoPMSGsD72Zanwmim8jEXc= +github.com/aws/aws-sdk-go-v2/service/dynamodb v1.39.2/go.mod h1:516U/KQM3zdcahNBjHUZKGWNfNnIYyt7sxLeqOx78b0= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.1 h1:iXtILhvDxB6kPvEXgsDhGaZCSC6LQET5ZHSdJozeI0Y= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.1/go.mod h1:9nu0fVANtYiAePIBh2/pFUSwtJ402hLnp854CNoDOeE= +github.com/aws/aws-sdk-go-v2/service/internal/endpoint-discovery v1.10.8 h1:h56mLNgpqWIL7RZOIQO634Xr569bXGTlIE83t/a0LSE= +github.com/aws/aws-sdk-go-v2/service/internal/endpoint-discovery v1.10.8/go.mod h1:kK04550Xx95KI0sNmwoB7ciS9QkRwt9TojhoTMXyJdo= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.8 h1:cWno7lefSH6Pp+mSznagKCgfDGeZRin66UvYUqAkyeA= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.8/go.mod h1:tPD+VjU3ABTBoEJ3nctu5Nyg4P4yjqSH5bJGGkY4+XE= +github.com/aws/aws-sdk-go-v2/service/kms v1.36.0 h1:jwWMpQ/1obJRdHaix9k10zWSnSMZGdDTZIDiS5CGzq8= +github.com/aws/aws-sdk-go-v2/service/kms v1.36.0/go.mod h1:OHmlX4+o0XIlJAQGAHPIy0N9yZcYS/vNG+T7geSNcFw= +github.com/aws/aws-sdk-go-v2/service/sso v1.24.9 h1:YqtxripbjWb2QLyzRK9pByfEDvgg95gpC2AyDq4hFE8= +github.com/aws/aws-sdk-go-v2/service/sso v1.24.9/go.mod h1:lV8iQpg6OLOfBnqbGMBKYjilBlf633qwHnBEiMSPoHY= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.28.8 h1:6dBT1Lz8fK11m22R+AqfRsFn8320K0T5DTGxxOQBSMw= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.28.8/go.mod h1:/kiBvRQXBc6xeJTYzhSdGvJ5vm1tjaDEjH+MSeRJnlY= +github.com/aws/aws-sdk-go-v2/service/sts v1.33.6 h1:VwhTrsTuVn52an4mXx29PqRzs2Dvu921NpGk7y43tAM= +github.com/aws/aws-sdk-go-v2/service/sts v1.33.6/go.mod h1:+8h7PZb3yY5ftmVLD7ocEoE98hdc8PoKS0H3wfx1dlc= +github.com/aws/smithy-go v1.22.1 h1:/HPHZQ0g7f4eUeK6HKglFz8uwVfZKgoI25rb/J+dnro= +github.com/aws/smithy-go v1.22.1/go.mod h1:irrKGvNn1InZwb2d7fkIRNucdfwR8R+Ts3wxYa/cJHg= +github.com/dafny-lang/DafnyRuntimeGo/v4 v4.9.2 h1:g/xAj4F7Zt9wXJ6QjfbfocVi/ZYlAFpNddHCFyfzRDg= +github.com/dafny-lang/DafnyRuntimeGo/v4 v4.9.2/go.mod h1:l2Tm4N2DKuq3ljONC2vOATeM9PUpXbIc8SgXdwwqEto= +github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8= +github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= +github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/jmespath/go-jmespath v0.4.0 h1:BEgLn5cpjn8UN1mAw4NjwDrS35OdebyEtFe+9YPoQUg= +github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo= +github.com/jmespath/go-jmespath/internal/testify v1.5.1 h1:shLQSRRSCCPj3f2gpwzGwWFoC7ycTf1rcQZHOlsJ6N8= +github.com/jmespath/go-jmespath/internal/testify v1.5.1/go.mod h1:L3OGu8Wl2/fWfCI6z80xFu9LTZmf1ZRjMHUOPmWr69U= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/yaml.v2 v2.2.8 h1:obN1ZagJSUGI0Ek/LBmuj4SNLPfIny3KsKFopxRdj10= +gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= diff --git a/Examples/runtimes/go/itemencryptor/itemencryptdecrypt.go b/Examples/runtimes/go/itemencryptor/itemencryptdecrypt.go new file mode 100644 index 000000000..6bc9c0ebe --- /dev/null +++ b/Examples/runtimes/go/itemencryptor/itemencryptdecrypt.go @@ -0,0 +1,180 @@ +// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +package itemencryptor + +import ( + "context" + "fmt" + "reflect" + + mpl "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/awscryptographymaterialproviderssmithygenerated" + mpltypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/awscryptographymaterialproviderssmithygeneratedtypes" + itemencryptor "github.com/aws/aws-database-encryption-sdk-dynamodb/awscryptographydbencryptionsdkdynamodbitemencryptorsmithygenerated" + dbesdkitemencryptortypes "github.com/aws/aws-database-encryption-sdk-dynamodb/awscryptographydbencryptionsdkdynamodbitemencryptorsmithygeneratedtypes" + dbesdkstructuredencryptiontypes "github.com/aws/aws-database-encryption-sdk-dynamodb/awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes" + "github.com/aws/aws-database-encryption-sdk-dynamodb/examples/utils" + "github.com/aws/aws-sdk-go-v2/config" + "github.com/aws/aws-sdk-go-v2/service/dynamodb/types" + "github.com/aws/aws-sdk-go-v2/service/kms" +) + +/* +This example sets up a DynamoDb Item Encryptor and uses +the EncryptItem and DecryptItem APIs to directly encrypt and +decrypt an existing DynamoDb item. +You should use the DynamoDb Item Encryptor +if you already have a DynamoDb Item to encrypt or decrypt, +and do not need to make a Put or Get call to DynamoDb. +For example, if you are using DynamoDb Streams, +you may already be working with an encrypted item obtained from +DynamoDb, and want to directly decrypt the item. + +Running this example requires access to the DDB Table whose name +is provided in CLI arguments. +This table must be configured with the following +primary key configuration: +- Partition key is named "partition_key" with type (S) +- Sort key is named "sort_key" with type (S) +*/ + +func ItemEncryptDecryptExample(kmsKeyID, ddbTableName string) { + // 1. Create a Keyring. This Keyring will be responsible for protecting the data keys that protect your data. + // For this example, we will create a AWS KMS Keyring with the AWS KMS Key we want to use. + // We will use the `CreateMrkMultiKeyring` method to create this keyring, + // as it will correctly handle both single region and Multi-Region KMS Keys. + + cfg, err := config.LoadDefaultConfig(context.TODO()) + utils.HandleError(err) + // Create KMS client + kmsClient := kms.NewFromConfig(cfg) + // Initialize the mpl client + matProv, err := mpl.NewClient(mpltypes.MaterialProvidersConfig{}) + utils.HandleError(err) + // Create the Aws Kms Keyring + awsKmsKeyringInput := mpltypes.CreateAwsKmsKeyringInput{ + KmsClient: kmsClient, + KmsKeyId: kmsKeyID, + } + keyring, err := matProv.CreateAwsKmsKeyring(context.Background(), awsKmsKeyringInput) + utils.HandleError(err) + + // 2. Configure which attributes are encrypted and/or signed when writing new items. + // For each attribute that may exist on the items we plan to write to our DynamoDbTable, + // we must explicitly configure how they should be treated during item encryption: + // - ENCRYPT_AND_SIGN: The attribute is encrypted and included in the signature + // - SIGN_ONLY: The attribute not encrypted, but is still included in the signature + // - DO_NOTHING: The attribute is not encrypted and not included in the signature + attributeActions := map[string]dbesdkstructuredencryptiontypes.CryptoAction{ + "partition_key": dbesdkstructuredencryptiontypes.CryptoActionSignOnly, // Partition key must be SIGN_ONLY + "sort_key": dbesdkstructuredencryptiontypes.CryptoActionSignOnly, // Sort key must be SIGN_ONLY + "attribute1": dbesdkstructuredencryptiontypes.CryptoActionEncryptAndSign, + "attribute2": dbesdkstructuredencryptiontypes.CryptoActionSignOnly, + ":attribute3": dbesdkstructuredencryptiontypes.CryptoActionDoNothing, + } + + // 3. Configure which attributes we expect to be included in the signature + // when reading items. There are two options for configuring this: + // + // - (Recommended) Configure `allowedUnsignedAttributesPrefix`: + // When defining your DynamoDb schema and deciding on attribute names, + // choose a distinguishing prefix (such as ":") for all attributes that + // you do not want to include in the signature. + // This has two main benefits: + // - It is easier to reason about the security and authenticity of data within your item + // when all unauthenticated data is easily distinguishable by their attribute name. + // - If you need to add new unauthenticated attributes in the future, + // you can easily make the corresponding update to your `attributeActionsOnEncrypt` + // and immediately start writing to that new attribute, without + // any other configuration update needed. + // Once you configure this field, it is not safe to update it. + // + // - Configure `allowedUnsignedAttributes`: You may also explicitly list + // a set of attributes that should be considered unauthenticated when encountered + // on read. Be careful if you use this configuration. Do not remove an attribute + // name from this configuration, even if you are no longer writing with that attribute, + // as old items may still include this attribute, and our configuration needs to know + // to continue to exclude this attribute from the signature scope. + // If you add new attribute names to this field, you must first deploy the update to this + // field to all readers in your host fleet before deploying the update to start writing + // with that new attribute. + // + // For this example, we have designed our DynamoDb table such that any attribute name with + // the ":" prefix should be considered unauthenticated. + allowedUnsignedAttributePrefix := ":" + + // 4. Create the DynamoDb Encryption configuration for the table we will be writing to. + partitionKey := "partition_key" + sortKeyName := "sort_key" + algorithmSuiteID := mpltypes.DBEAlgorithmSuiteIdAlgAes256GcmHkdfSha512CommitKeyEcdsaP384SymsigHmacSha384 + itemEncryptorConfig := dbesdkitemencryptortypes.DynamoDbItemEncryptorConfig{ + LogicalTableName: ddbTableName, + PartitionKeyName: partitionKey, + SortKeyName: &sortKeyName, + AttributeActionsOnEncrypt: attributeActions, + Keyring: keyring, + AllowedUnsignedAttributePrefix: &allowedUnsignedAttributePrefix, + // Specifying an algorithm suite is not required, + // but is done here to demonstrate how to do so. + // We suggest using the + // `ALG_AES_256_GCM_HKDF_SHA512_COMMIT_KEY_ECDSA_P384_SYMSIG_HMAC_SHA384` suite, + // which includes AES-GCM with key derivation, signing, and key commitment. + // This is also the default algorithm suite if one is not specified in this config. + // For more information on supported algorithm suites, see: + // https://docs.aws.amazon.com/database-encryption-sdk/latest/devguide/supported-algorithms.html + AlgorithmSuiteId: &algorithmSuiteID, + } + + // 5. Create the DynamoDb Item Encryptor + itemEncryptorClient, err := itemencryptor.NewClient(itemEncryptorConfig) + utils.HandleError(err) + + // 6. Directly encrypt a DynamoDb item using the DynamoDb Item Encryptor + item := map[string]types.AttributeValue{ + "partition_key": &types.AttributeValueMemberS{Value: "ItemEncryptDecryptExample"}, + "sort_key": &types.AttributeValueMemberS{Value: "0"}, + "attribute1": &types.AttributeValueMemberS{Value: "encrypt and sign me!"}, + "attribute2": &types.AttributeValueMemberS{Value: "sign me!"}, + ":attribute3": &types.AttributeValueMemberS{Value: "ignore me!"}, + } + encryptItemInput := &dbesdkitemencryptortypes.EncryptItemInput{ + PlaintextItem: item, + } + encryptItemOutput, err := itemEncryptorClient.EncryptItem(context.Background(), *encryptItemInput) + utils.HandleError(err) + + // Demonstrate that the item has been encrypted + encryptedItem := encryptItemOutput.EncryptedItem + // Check partition_key is still a string and equals "ItemEncryptDecryptExample" + if partitionKeyAttr, ok := encryptedItem["partition_key"].(*types.AttributeValueMemberS); ok { + if partitionKeyAttr.Value != "ItemEncryptDecryptExample" { + panic("Partition key is not 'ItemEncryptDecryptExample'") + } + } else { + panic("Partition key is not a string attribute or doesn't exist") + } + // Check sort_key is a string and equals "0" + if sortKeyAttr, ok := encryptedItem["sort_key"].(*types.AttributeValueMemberS); ok { + if sortKeyAttr.Value != "0" { + panic("Sort key is not '0'") + } + } else { + panic("Sort key is not a string attribute or doesn't exist") + } + // Check attribute1 is binary (encrypted) and not a string anymore + if _, ok := encryptedItem["attribute1"].(*types.AttributeValueMemberB); !ok { + panic("attribute1 is not binary. It might not be encrypted.") + } + + // 7. Directly decrypt the encrypted item using the DynamoDb Item Encryptor + decryptItemInput := &dbesdkitemencryptortypes.DecryptItemInput{ + EncryptedItem: encryptedItem, + } + decryptedItem, err := itemEncryptorClient.DecryptItem(context.Background(), *decryptItemInput) + utils.HandleError(err) + + if !reflect.DeepEqual(item, decryptedItem.PlaintextItem) { + panic("Decrypted item does not match original item") + } + fmt.Println("Item Encryptor example successful") +} diff --git a/Examples/runtimes/go/keyring/awskmskeyring.go b/Examples/runtimes/go/keyring/awskmskeyring.go new file mode 100644 index 000000000..c4a49b6e2 --- /dev/null +++ b/Examples/runtimes/go/keyring/awskmskeyring.go @@ -0,0 +1,168 @@ +// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +package keyring + +import ( + "context" + "fmt" + "reflect" + + mpl "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/awscryptographymaterialproviderssmithygenerated" + mpltypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/awscryptographymaterialproviderssmithygeneratedtypes" + dbesdkdynamodbencryptiontypes "github.com/aws/aws-database-encryption-sdk-dynamodb/awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes" + dbesdkstructuredencryptiontypes "github.com/aws/aws-database-encryption-sdk-dynamodb/awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes" + "github.com/aws/aws-database-encryption-sdk-dynamodb/dbesdkmiddleware" + "github.com/aws/aws-database-encryption-sdk-dynamodb/examples/utils" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/config" + "github.com/aws/aws-sdk-go-v2/service/dynamodb" + "github.com/aws/aws-sdk-go-v2/service/dynamodb/types" + "github.com/aws/aws-sdk-go-v2/service/kms" +) + +/* +This example sets up DynamoDb Encryption for the AWS SDK client +and uses the low level PutItem and GetItem DDB APIs to demonstrate +putting a client-side encrypted item into DynamoDb +and then retrieving and decrypting that item from DynamoDb. + +Running this example requires access to the DDB Table whose name +is provided in CLI arguments. +This table must be configured with the following +primary key configuration: + - Partition key is named "partition_key" with type (S) + - Sort key is named "sort_key" with type (N) +*/ +func AwsKmsKeyringExample(kmsKeyID, ddbTableName string) { + // 1. Create a Keyring. This Keyring will be responsible for protecting the data keys that protect your data. + // For this example, we will create a AWS KMS Keyring with the AWS KMS Key we want to use. + // We will use the `CreateMrkMultiKeyring` method to create this keyring, + // as it will correctly handle both single region and Multi-Region KMS Keys. + cfg, err := config.LoadDefaultConfig(context.TODO()) + utils.HandleError(err) + // Create KMS client + kmsClient := kms.NewFromConfig(cfg, func(o *kms.Options) { + o.Region = "us-west-2" + }) + // Initialize the mpl client + matProv, err := mpl.NewClient(mpltypes.MaterialProvidersConfig{}) + utils.HandleError(err) + // Create the Aws Kms Keyring + awsKmsKeyringInput := mpltypes.CreateAwsKmsKeyringInput{ + KmsClient: kmsClient, + KmsKeyId: kmsKeyID, + } + keyring, err := matProv.CreateAwsKmsKeyring(context.Background(), awsKmsKeyringInput) + utils.HandleError(err) + + // 2. Configure which attributes are encrypted and/or signed when writing new items. + // For each attribute that may exist on the items we plan to write to our DynamoDbTable, + // we must explicitly configure how they should be treated during item encryption: + // - ENCRYPT_AND_SIGN: The attribute is encrypted and included in the signature + // - SIGN_ONLY: The attribute not encrypted, but is still included in the signature + // - DO_NOTHING: The attribute is not encrypted and not included in the signature + attributeActions := map[string]dbesdkstructuredencryptiontypes.CryptoAction{ + "partition_key": dbesdkstructuredencryptiontypes.CryptoActionSignOnly, // Partition key must be SIGN_ONLY + "sort_key": dbesdkstructuredencryptiontypes.CryptoActionSignOnly, // Sort key must be SIGN_ONLY + "attribute1": dbesdkstructuredencryptiontypes.CryptoActionEncryptAndSign, + "attribute2": dbesdkstructuredencryptiontypes.CryptoActionSignOnly, + ":attribute3": dbesdkstructuredencryptiontypes.CryptoActionDoNothing, + } + + // 3. Configure which attributes we expect to be included in the signature + // when reading items. There are two options for configuring this: + // + // - (Recommended) Configure `allowedUnsignedAttributesPrefix`: + // When defining your DynamoDb schema and deciding on attribute names, + // choose a distinguishing prefix (such as ":") for all attributes that + // you do not want to include in the signature. + // This has two main benefits: + // - It is easier to reason about the security and authenticity of data within your item + // when all unauthenticated data is easily distinguishable by their attribute name. + // - If you need to add new unauthenticated attributes in the future, + // you can easily make the corresponding update to your `attributeActionsOnEncrypt` + // and immediately start writing to that new attribute, without + // any other configuration update needed. + // Once you configure this field, it is not safe to update it. + // + // - Configure `allowedUnsignedAttributes`: You may also explicitly list + // a set of attributes that should be considered unauthenticated when encountered + // on read. Be careful if you use this configuration. Do not remove an attribute + // name from this configuration, even if you are no longer writing with that attribute, + // as old items may still include this attribute, and our configuration needs to know + // to continue to exclude this attribute from the signature scope. + // If you add new attribute names to this field, you must first deploy the update to this + // field to all readers in your host fleet before deploying the update to start writing + // with that new attribute. + // + // For this example, we have designed our DynamoDb table such that any attribute name with + // the ":" prefix should be considered unauthenticated. + allowedUnsignedAttributePrefix := ":" + + // 4. Create the DynamoDb Encryption configuration for the table we will be writing to. + partitionKey := "partition_key" + sortKeyName := "sort_key" + algorithmSuiteID := mpltypes.DBEAlgorithmSuiteIdAlgAes256GcmHkdfSha512CommitKeyEcdsaP384SymsigHmacSha384 + tableConfig := dbesdkdynamodbencryptiontypes.DynamoDbTableEncryptionConfig{ + LogicalTableName: ddbTableName, + PartitionKeyName: partitionKey, + SortKeyName: &sortKeyName, + AttributeActionsOnEncrypt: attributeActions, + Keyring: keyring, + AllowedUnsignedAttributePrefix: &allowedUnsignedAttributePrefix, + AlgorithmSuiteId: &algorithmSuiteID, + } + tableConfigsMap := make(map[string]dbesdkdynamodbencryptiontypes.DynamoDbTableEncryptionConfig) + tableConfigsMap[ddbTableName] = tableConfig + listOfTableConfigs := dbesdkdynamodbencryptiontypes.DynamoDbTablesEncryptionConfig{ + TableEncryptionConfigs: tableConfigsMap, + } + // 5. Create a new AWS SDK DynamoDb client using the TableEncryptionConfigs + dbEsdkMiddleware, err := dbesdkmiddleware.NewDBEsdkMiddleware(listOfTableConfigs) + utils.HandleError(err) + ddb := dynamodb.NewFromConfig(cfg, dbEsdkMiddleware.CreateMiddleware()) + + // 6. Put an item into our table using the above client. + // Before the item gets sent to DynamoDb, it will be encrypted + // client-side, according to our configuration. + item := map[string]types.AttributeValue{ + "partition_key": &types.AttributeValueMemberS{Value: "BasicPutGetExample"}, + "sort_key": &types.AttributeValueMemberN{Value: "0"}, + "attribute1": &types.AttributeValueMemberS{Value: "encrypt and sign me!"}, + "attribute2": &types.AttributeValueMemberS{Value: "sign me!"}, + ":attribute3": &types.AttributeValueMemberS{Value: "ignore me!"}, + } + putInput := &dynamodb.PutItemInput{ + TableName: aws.String(ddbTableName), + Item: item, + } + _, err = ddb.PutItem(context.TODO(), putInput) + utils.HandleError(err) + + // 7. Get the item back from our table using the same client. + // The client will decrypt the item client-side, and return + // back the original item. + key := map[string]types.AttributeValue{ + "partition_key": &types.AttributeValueMemberS{Value: "BasicPutGetExample"}, + "sort_key": &types.AttributeValueMemberN{Value: "0"}, + } + getInput := &dynamodb.GetItemInput{ + TableName: aws.String(ddbTableName), + Key: key, + // In this example we configure a strongly consistent read + // because we perform a read immediately after a write (for demonstrative purposes). + // By default, reads are only eventually consistent. + // Read our docs to determine which read consistency to use for your application: + // https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ReadConsistency.html + ConsistentRead: aws.Bool(true), + } + result, err := ddb.GetItem(context.TODO(), getInput) + utils.HandleError(err) + // Verify the decrypted item + if !reflect.DeepEqual(item, result.Item) { + panic("Decrypted item does not match original item") + } + fmt.Println("Aws Kms Keyring Example successful.") +} diff --git a/Examples/runtimes/go/keyring/rawaeskeyring.go b/Examples/runtimes/go/keyring/rawaeskeyring.go new file mode 100644 index 000000000..96f400135 --- /dev/null +++ b/Examples/runtimes/go/keyring/rawaeskeyring.go @@ -0,0 +1,170 @@ +// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +package keyring + +import ( + "context" + "fmt" + "reflect" + + mpl "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/awscryptographymaterialproviderssmithygenerated" + mpltypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/awscryptographymaterialproviderssmithygeneratedtypes" + dbesdkdynamodbencryptiontypes "github.com/aws/aws-database-encryption-sdk-dynamodb/awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes" + dbesdkstructuredencryptiontypes "github.com/aws/aws-database-encryption-sdk-dynamodb/awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes" + "github.com/aws/aws-database-encryption-sdk-dynamodb/dbesdkmiddleware" + "github.com/aws/aws-database-encryption-sdk-dynamodb/examples/utils" + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/config" + "github.com/aws/aws-sdk-go-v2/service/dynamodb" + "github.com/aws/aws-sdk-go-v2/service/dynamodb/types" +) + +/* + This example sets up DynamoDb Encryption for the AWS SDK client + using the raw AES Keyring. This keyring takes in an AES key + and uses that key to protect the data keys that encrypt and + decrypt DynamoDb table items. + + This example takes in an `aesKeyBytes` parameter. This parameter + should be a ByteBuffer representing a 256-bit AES key. If this example + is run through the class' main method, it will create a new key. + In practice, users of this library should not randomly generate a key, + and should instead retrieve an existing key from a secure key + management system (e.g. an HSM). + + This example encrypts a test item using the provided AES key and puts the + encrypted item to the provided DynamoDb table. Then, it gets the + item from the table and decrypts it. + + Running this example requires access to the DDB Table whose name + is provided in CLI arguments. + This table must be configured with the following + primary key configuration: + - Partition key is named "partition_key" with type (S) + - Sort key is named "sort_key" with type (S) +*/ + +func RawAesExample(ddbTableName, keyNamespace, keyName string, aesKeyBytes []byte) { + // Initialize the mpl client + matProv, err := mpl.NewClient(mpltypes.MaterialProvidersConfig{}) + utils.HandleError(err) + + // 1. Create the keyring. + // The DynamoDb encryption client uses this to encrypt and decrypt items. + + // Create the Raw Aes Keyring + rawAesKeyRingInput := mpltypes.CreateRawAesKeyringInput{ + KeyName: keyName, + KeyNamespace: keyNamespace, + WrappingKey: aesKeyBytes, + WrappingAlg: mpltypes.AesWrappingAlgAlgAes256GcmIv12Tag16, + } + rawAesKeyring, err := matProv.CreateRawAesKeyring(context.Background(), rawAesKeyRingInput) + utils.HandleError(err) + // 2. Configure which attributes are encrypted and/or signed when writing new items. + // For each attribute that may exist on the items we plan to write to our DynamoDbTable, + // we must explicitly configure how they should be treated during item encryption: + // - ENCRYPT_AND_SIGN: The attribute is encrypted and included in the signature + // - SIGN_ONLY: The attribute not encrypted, but is still included in the signature + // - DO_NOTHING: The attribute is not encrypted and not included in the signature + attributeActionsOnEncrypt := map[string]dbesdkstructuredencryptiontypes.CryptoAction{ + "partition_key": dbesdkstructuredencryptiontypes.CryptoActionSignOnly, // Partition key must be SIGN_ONLY + "sort_key": dbesdkstructuredencryptiontypes.CryptoActionSignOnly, // Sort key must be SIGN_ONLY + "sensitive_data": dbesdkstructuredencryptiontypes.CryptoActionEncryptAndSign, + } + // 3. Configure which attributes we expect to be included in the signature + // when reading items. There are two options for configuring this: + // + // - (Recommended) Configure `allowedUnsignedAttributesPrefix`: + // When defining your DynamoDb schema and deciding on attribute names, + // choose a distinguishing prefix (such as ":") for all attributes that + // you do not want to include in the signature. + // This has two main benefits: + // - It is easier to reason about the security and authenticity of data within your item + // when all unauthenticated data is easily distinguishable by their attribute name. + // - If you need to add new unauthenticated attributes in the future, + // you can easily make the corresponding update to your `attributeActionsOnEncrypt` + // and immediately start writing to that new attribute, without + // any other configuration update needed. + // Once you configure this field, it is not safe to update it. + // + // - Configure `allowedUnsignedAttributes`: You may also explicitly list + // a set of attributes that should be considered unauthenticated when encountered + // on read. Be careful if you use this configuration. Do not remove an attribute + // name from this configuration, even if you are no longer writing with that attribute, + // as old items may still include this attribute, and our configuration needs to know + // to continue to exclude this attribute from the signature scope. + // If you add new attribute names to this field, you must first deploy the update to this + // field to all readers in your host fleet before deploying the update to start writing + // with that new attribute. + // + // For this example, we currently authenticate all attributes. To make it easier to + // add unauthenticated attributes in the future, we define a prefix ":" for such attributes. + unsignedAttrPrefix := ":" + + // 4. Create the DynamoDb Encryption configuration for the table we will be writing to. + partitionKey := "partition_key" + sortKeyName := "sort_key" + tableConfig := dbesdkdynamodbencryptiontypes.DynamoDbTableEncryptionConfig{ + LogicalTableName: ddbTableName, + PartitionKeyName: partitionKey, + SortKeyName: &sortKeyName, + AttributeActionsOnEncrypt: attributeActionsOnEncrypt, + Keyring: rawAesKeyring, + AllowedUnsignedAttributePrefix: &unsignedAttrPrefix, + } + tableConfigsMap := make(map[string]dbesdkdynamodbencryptiontypes.DynamoDbTableEncryptionConfig) + tableConfigsMap[ddbTableName] = tableConfig + listOfTableConfigs := dbesdkdynamodbencryptiontypes.DynamoDbTablesEncryptionConfig{ + TableEncryptionConfigs: tableConfigsMap, + } + // 5. Create a new AWS SDK DynamoDb client using the Config above + + // Create DBESDK middleware + dbEsdkMiddleware, err := dbesdkmiddleware.NewDBEsdkMiddleware(listOfTableConfigs) + utils.HandleError(err) + // Create aws config + cfg, err := config.LoadDefaultConfig(context.TODO()) + utils.HandleError(err) + ddb := dynamodb.NewFromConfig(cfg, dbEsdkMiddleware.CreateMiddleware()) + + // 6. Put an item into our table using the above client. + // Before the item gets sent to DynamoDb, it will be encrypted + // client-side, according to our configuration. + item := map[string]types.AttributeValue{ + "partition_key": &types.AttributeValueMemberS{Value: "rawAesKeyringItem"}, + "sort_key": &types.AttributeValueMemberN{Value: "0"}, + "sensitive_data": &types.AttributeValueMemberS{Value: "encrypt and sign me!"}, + } + putInput := &dynamodb.PutItemInput{ + TableName: aws.String(ddbTableName), + Item: item, + } + _, err = ddb.PutItem(context.TODO(), putInput) + utils.HandleError(err) + // 7. Get the item back from our table using the same client. + // The client will decrypt the item client-side, and return + // back the original item. + key := map[string]types.AttributeValue{ + "partition_key": &types.AttributeValueMemberS{Value: "rawAesKeyringItem"}, + "sort_key": &types.AttributeValueMemberN{Value: "0"}, + } + getInput := &dynamodb.GetItemInput{ + TableName: aws.String(ddbTableName), + Key: key, + // In this example we configure a strongly consistent read + // because we perform a read immediately after a write (for demonstrative purposes). + // By default, reads are only eventually consistent. + // Read our docs to determine which read consistency to use for your application: + // https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ReadConsistency.html + ConsistentRead: aws.Bool(true), + } + result, err := ddb.GetItem(context.TODO(), getInput) + utils.HandleError(err) + // Verify the decrypted item + if !reflect.DeepEqual(item, result.Item) { + panic("Decrypted item does not match original item") + } + fmt.Println("Raw Aes Example successful.") +} diff --git a/Examples/runtimes/go/keyring/rawrsakeyring.go b/Examples/runtimes/go/keyring/rawrsakeyring.go new file mode 100644 index 000000000..bb7f5634e --- /dev/null +++ b/Examples/runtimes/go/keyring/rawrsakeyring.go @@ -0,0 +1,149 @@ +package keyring + +import ( + "context" + "encoding/pem" + "fmt" + "reflect" + + mpl "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/awscryptographymaterialproviderssmithygenerated" + mpltypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/awscryptographymaterialproviderssmithygeneratedtypes" + dbesdkdynamodbencryptiontypes "github.com/aws/aws-database-encryption-sdk-dynamodb/awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes" + dbesdkstructuredencryptiontypes "github.com/aws/aws-database-encryption-sdk-dynamodb/awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes" + "github.com/aws/aws-database-encryption-sdk-dynamodb/dbesdkmiddleware" + "github.com/aws/aws-database-encryption-sdk-dynamodb/examples/utils" + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/config" + "github.com/aws/aws-sdk-go-v2/service/dynamodb" + "github.com/aws/aws-sdk-go-v2/service/dynamodb/types" +) + +func RawRsaExample(ddbTableName string, keyNamespace, keyName string, publicKeyBlock *pem.Block, privateKeyBlock *pem.Block) { + // Initialize the mpl client + matProv, err := mpl.NewClient(mpltypes.MaterialProvidersConfig{}) + if err != nil { + panic(err) + } + // 1. Create the keyring + // The key namespace and key name are defined by you + // and are used by the raw RSA keyring to determine + // whether it should attempt to decrypt an encrypted data key. + // + // https://docs.aws.amazon.com/encryption-sdk/latest/developer-guide/choose-keyring.html#use-raw-rsa-keyring + rsaKeyRingInput := mpltypes.CreateRawRsaKeyringInput{ + KeyName: keyName, + KeyNamespace: keyNamespace, + PaddingScheme: mpltypes.PaddingSchemeOaepSha512Mgf1, + PublicKey: pem.EncodeToMemory(publicKeyBlock), + PrivateKey: pem.EncodeToMemory(privateKeyBlock), + } + keyring, err := matProv.CreateRawRsaKeyring(context.Background(), rsaKeyRingInput) + if err != nil { + panic(err) + } + // 2. Configure which attributes are encrypted and/or signed when writing new items. + // For each attribute that may exist on the items we plan to write to our DynamoDbTable, + // we must explicitly configure how they should be treated during item encryption: + // - ENCRYPT_AND_SIGN: The attribute is encrypted and included in the signature + // - SIGN_ONLY: The attribute not encrypted, but is still included in the signature + // - DO_NOTHING: The attribute is not encrypted and not included in the signature + attributeActionsOnEncrypt := map[string]dbesdkstructuredencryptiontypes.CryptoAction{ + "partition_key": dbesdkstructuredencryptiontypes.CryptoActionSignOnly, // Partition key must be SIGN_ONLY + "sort_key": dbesdkstructuredencryptiontypes.CryptoActionSignOnly, // Sort key must be SIGN_ONLY + "sensitive_data": dbesdkstructuredencryptiontypes.CryptoActionEncryptAndSign, + } + // 3. Configure which attributes we expect to be included in the signature + // when reading items. There are two options for configuring this: + // + // - (Recommended) Configure `allowedUnsignedAttributesPrefix`: + // When defining your DynamoDb schema and deciding on attribute names, + // choose a distinguishing prefix (such as ":") for all attributes that + // you do not want to include in the signature. + // This has two main benefits: + // - It is easier to reason about the security and authenticity of data within your item + // when all unauthenticated data is easily distinguishable by their attribute name. + // - If you need to add new unauthenticated attributes in the future, + // you can easily make the corresponding update to your `attributeActionsOnEncrypt` + // and immediately start writing to that new attribute, without + // any other configuration update needed. + // Once you configure this field, it is not safe to update it. + // + // - Configure `allowedUnsignedAttributes`: You may also explicitly list + // a set of attributes that should be considered unauthenticated when encountered + // on read. Be careful if you use this configuration. Do not remove an attribute + // name from this configuration, even if you are no longer writing with that attribute, + // as old items may still include this attribute, and our configuration needs to know + // to continue to exclude this attribute from the signature scope. + // If you add new attribute names to this field, you must first deploy the update to this + // field to all readers in your host fleet before deploying the update to start writing + // with that new attribute. + // + // For this example, we currently authenticate all attributes. To make it easier to + // add unauthenticated attributes in the future, we define a prefix ":" for such attributes. + unsignedAttrPrefix := ":" + + // 4. Create the DynamoDb Encryption configuration for the table we will be writing to. + partitionKey := "partition_key" + sortKeyName := "sort_key" + tableConfig := dbesdkdynamodbencryptiontypes.DynamoDbTableEncryptionConfig{ + LogicalTableName: ddbTableName, + PartitionKeyName: partitionKey, + SortKeyName: &sortKeyName, + AttributeActionsOnEncrypt: attributeActionsOnEncrypt, + Keyring: keyring, + AllowedUnsignedAttributePrefix: &unsignedAttrPrefix, + } + tableConfigsMap := make(map[string]dbesdkdynamodbencryptiontypes.DynamoDbTableEncryptionConfig) + tableConfigsMap[ddbTableName] = tableConfig + listOfTableConfigs := dbesdkdynamodbencryptiontypes.DynamoDbTablesEncryptionConfig{ + TableEncryptionConfigs: tableConfigsMap, + } + // 5. Create a new AWS SDK DynamoDb client using the Config above + + // Create DBESDK middleware + dbEsdkMiddleware, err := dbesdkmiddleware.NewDBEsdkMiddleware(listOfTableConfigs) + utils.HandleError(err) + // Create aws config + cfg, err := config.LoadDefaultConfig(context.TODO()) + utils.HandleError(err) + ddb := dynamodb.NewFromConfig(cfg, dbEsdkMiddleware.CreateMiddleware()) + + // 6. Put an item into our table using the above client. + // Before the item gets sent to DynamoDb, it will be encrypted + // client-side, according to our configuration. + item := map[string]types.AttributeValue{ + "partition_key": &types.AttributeValueMemberS{Value: "rawRSAKeyringItem"}, + "sort_key": &types.AttributeValueMemberN{Value: "0"}, + "sensitive_data": &types.AttributeValueMemberS{Value: "encrypt and sign me!"}, + } + putInput := &dynamodb.PutItemInput{ + TableName: aws.String(ddbTableName), + Item: item, + } + _, err = ddb.PutItem(context.TODO(), putInput) + utils.HandleError(err) + // 7. Get the item back from our table using the same client. + // The client will decrypt the item client-side, and return + // back the original item. + key := map[string]types.AttributeValue{ + "partition_key": &types.AttributeValueMemberS{Value: "rawRSAKeyringItem"}, + "sort_key": &types.AttributeValueMemberN{Value: "0"}, + } + getInput := &dynamodb.GetItemInput{ + TableName: aws.String(ddbTableName), + Key: key, + // In this example we configure a strongly consistent read + // because we perform a read immediately after a write (for demonstrative purposes). + // By default, reads are only eventually consistent. + // Read our docs to determine which read consistency to use for your application: + // https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ReadConsistency.html + ConsistentRead: aws.Bool(true), + } + result, err := ddb.GetItem(context.TODO(), getInput) + utils.HandleError(err) + // Verify the decrypted item + if !reflect.DeepEqual(item, result.Item) { + panic("Decrypted item does not match original item") + } + fmt.Println("Raw Aes Example successful.") +} diff --git a/Examples/runtimes/go/main.go b/Examples/runtimes/go/main.go new file mode 100644 index 000000000..506d55fd9 --- /dev/null +++ b/Examples/runtimes/go/main.go @@ -0,0 +1,19 @@ +package main + +import ( + "github.com/aws/aws-database-encryption-sdk-dynamodb/examples/itemencryptor" + "github.com/aws/aws-database-encryption-sdk-dynamodb/examples/keyring" + "github.com/aws/aws-database-encryption-sdk-dynamodb/examples/misc" + "github.com/aws/aws-database-encryption-sdk-dynamodb/examples/utils" +) + +func main() { + keyring.AwsKmsKeyringExample(utils.KmsKeyID(), utils.DdbTableName()) + keyring.RawAesExample(utils.DdbTableName(), utils.KeyNamespace(), utils.KeyName(), utils.GenerateAes256KeyBytes()) + publicKeyBlock, privateKeyBlock := utils.GenerateKeyPair() + keyring.RawRsaExample(utils.DdbTableName(), utils.KeyNamespace(), utils.KeyName(), publicKeyBlock, privateKeyBlock) + itemencryptor.ItemEncryptDecryptExample(utils.KmsKeyID(), utils.DdbTableName()) + misc.GetEncryptedDataKeyDescriptionExample(utils.KmsKeyID(), utils.DdbTableName()) + misc.MultiPutGetExample(utils.KmsKeyID(), utils.DdbTableName()) + misc.CreateBranchKeyIDExample(utils.TestKeystoreName(), utils.TestLogicalKeystoreName(), utils.TestKeystoreKmsKeyId()) +} diff --git a/Examples/runtimes/go/misc/createBranchKeyID.go b/Examples/runtimes/go/misc/createBranchKeyID.go new file mode 100644 index 000000000..f05103291 --- /dev/null +++ b/Examples/runtimes/go/misc/createBranchKeyID.go @@ -0,0 +1,64 @@ +// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +package misc + +import ( + "context" + "fmt" + + keystore "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/awscryptographykeystoresmithygenerated" + keystoretypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/awscryptographykeystoresmithygeneratedtypes" + "github.com/aws/aws-database-encryption-sdk-dynamodb/examples/utils" + "github.com/aws/aws-sdk-go-v2/config" + "github.com/aws/aws-sdk-go-v2/service/dynamodb" + "github.com/aws/aws-sdk-go-v2/service/kms" +) + +/* + The Hierarchical Keyring Example and Searchable Encryption Examples + rely on the existence of a DDB-backed key store with pre-existing + branch key material or beacon key material. + + See the "Create KeyStore Table Example" for how to first set up + the DDB Table that will back this KeyStore. + + This example demonstrates configuring a KeyStore and then + using a helper method to create a branch key and beacon key + that share the same Id, then return that Id. + We will always create a new beacon key alongside a new branch key, + even if you are not using searchable encryption. + + This key creation should occur within your control plane. +*/ + +func CreateBranchKeyIDExample( + keyStoreTableName, + logicalKeyStoreName, + kmsKeyArn string) { + cfg, err := config.LoadDefaultConfig(context.TODO()) + utils.HandleError(err) + ddbClient := dynamodb.NewFromConfig(cfg) + kmsClient := kms.NewFromConfig(cfg) + // 1. Configure your KeyStore resource. + // This SHOULD be the same configuration that was used to create the DDB table + // in the "Create KeyStore Table Example". + kmsConfig := keystoretypes.KMSConfigurationMemberkmsKeyArn{ + Value: kmsKeyArn, + } + keyStore, err := keystore.NewClient(keystoretypes.KeyStoreConfig{ + DdbTableName: keyStoreTableName, + KmsConfiguration: &kmsConfig, + LogicalKeyStoreName: logicalKeyStoreName, + DdbClient: ddbClient, + KmsClient: kmsClient, + }) + utils.HandleError(err) + // 2. Create a new branch key and beacon key in our KeyStore. + // Both the branch key and the beacon key will share an Id. + // This creation is eventually consistent. + branchKey, err := keyStore.CreateKey(context.Background(), keystoretypes.CreateKeyInput{}) + utils.HandleError(err) + + fmt.Println("Branch Key ID " + branchKey.BranchKeyIdentifier + " created in Create Branch Key ID Example.") +} diff --git a/Examples/runtimes/go/misc/getEncryptedDataKeyDescription.go b/Examples/runtimes/go/misc/getEncryptedDataKeyDescription.go new file mode 100644 index 000000000..3dbf85414 --- /dev/null +++ b/Examples/runtimes/go/misc/getEncryptedDataKeyDescription.go @@ -0,0 +1,75 @@ +// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 +package misc + +import ( + "context" + "fmt" + + dbesdkdynamodbencryption "github.com/aws/aws-database-encryption-sdk-dynamodb/awscryptographydbencryptionsdkdynamodbsmithygenerated" + dbesdkdynamodbencryptiontypes "github.com/aws/aws-database-encryption-sdk-dynamodb/awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes" + "github.com/aws/aws-database-encryption-sdk-dynamodb/examples/utils" + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/config" + "github.com/aws/aws-sdk-go-v2/service/dynamodb" + "github.com/aws/aws-sdk-go-v2/service/dynamodb/types" +) + +func GetEncryptedDataKeyDescriptionExample(kmsKeyID, ddbTableName string) { + cfg, err := config.LoadDefaultConfig(context.TODO()) + utils.HandleError(err) + ddbec, err := dbesdkdynamodbencryption.NewClient(dbesdkdynamodbencryptiontypes.DynamoDbEncryptionConfig{}) + utils.HandleError(err) + // 1. Define keys that will be used to retrieve item from the DynamoDB table. + keyToGet := map[string]types.AttributeValue{ + "partition_key": &types.AttributeValueMemberS{Value: "BasicPutGetExample"}, + "sort_key": &types.AttributeValueMemberN{Value: "0"}, + } + + // 2. Create a Amazon DynamoDB Client and retrieve item from DynamoDB table + ddb := dynamodb.NewFromConfig(cfg) + + // 3. Extract the item from the dynamoDB table and prepare input for the GetEncryptedDataKeyDescription method. + // Here, we are sending dynamodb item but you can also input the header itself by extracting the header from + // "aws_dbe_head" attribute in the dynamoDB item. The part of the code where we send input as the header is commented. + getInput := &dynamodb.GetItemInput{ + TableName: aws.String(ddbTableName), + Key: keyToGet, + // In this example we configure a strongly consistent read + // because we perform a read immediately after a write (for demonstrative purposes). + // By default, reads are only eventually consistent. + // Read our docs to determine which read consistency to use for your application: + // https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ReadConsistency.html + ConsistentRead: aws.Bool(true), + } + returnedItem, err := ddb.GetItem(context.TODO(), getInput) + utils.HandleError(err) + inputUnion := dbesdkdynamodbencryptiontypes.GetEncryptedDataKeyDescriptionUnionMemberitem{ + Value: returnedItem.Item, + } + + // The code below shows how we can send header as the input to the DynamoDB. This code is written to demo the + // alternative approach. So, it is commented. + // headerAttribute := "aws_dbe_head" + // headerBytes, ok := returnedItem.Item[headerAttribute].(*types.AttributeValueMemberB) + // if !ok { + // panic("attribute1 is not binary. It might not be encrypted.") + // } + // inputUnion := dbesdkdynamodbencryptiontypes.GetEncryptedDataKeyDescriptionUnionMemberheader{ + // Value: headerBytes.Value, + // } + + encryptedDataKeyDescriptionInput := dbesdkdynamodbencryptiontypes.GetEncryptedDataKeyDescriptionInput{ + Input: &inputUnion, + } + encryptedDataKeyDescription, err := ddbec.GetEncryptedDataKeyDescription(context.TODO(), encryptedDataKeyDescriptionInput) + utils.HandleError(err) + + if encryptedDataKeyDescription.EncryptedDataKeyDescriptionOutput[0].KeyProviderId != "aws-kms" { + panic("Key provider should have been aws-kms") + } + if *encryptedDataKeyDescription.EncryptedDataKeyDescriptionOutput[0].KeyProviderInfo != kmsKeyID { + panic("Key provider info should have been " + kmsKeyID) + } + fmt.Println("Get encrypted data Key description example successful.") +} diff --git a/Examples/runtimes/go/misc/multiPutGet.go b/Examples/runtimes/go/misc/multiPutGet.go new file mode 100644 index 000000000..91cf4579b --- /dev/null +++ b/Examples/runtimes/go/misc/multiPutGet.go @@ -0,0 +1,196 @@ +// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +package misc + +import ( + "context" + "fmt" + "reflect" + + mpl "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/awscryptographymaterialproviderssmithygenerated" + mpltypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/awscryptographymaterialproviderssmithygeneratedtypes" + dbesdkdynamodbencryptiontypes "github.com/aws/aws-database-encryption-sdk-dynamodb/awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes" + dbesdkstructuredencryptiontypes "github.com/aws/aws-database-encryption-sdk-dynamodb/awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes" + "github.com/aws/aws-database-encryption-sdk-dynamodb/dbesdkmiddleware" + "github.com/aws/aws-database-encryption-sdk-dynamodb/examples/utils" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/config" + "github.com/aws/aws-sdk-go-v2/service/dynamodb" + "github.com/aws/aws-sdk-go-v2/service/dynamodb/types" +) + +/* +This example sets up DynamoDb Encryption for the AWS SDK client +and uses the low level PutItem and GetItem DDB APIs to demonstrate +putting a client-side encrypted item into DynamoDb +and then retrieving and decrypting that item from DynamoDb. + +Running this example requires access to the DDB Table whose name +is provided in CLI arguments. +This table must be configured with the following +primary key configuration: + - Partition key is named "partition_key" with type (S) + - Sort key is named "sort_key" with type (N) +*/ +func MultiPutGetExample(kmsKeyID, ddbTableName string) { + cfg, err := config.LoadDefaultConfig(context.TODO()) + utils.HandleError(err) + // Initialize the mpl client + matProv, err := mpl.NewClient(mpltypes.MaterialProvidersConfig{}) + utils.HandleError(err) + // 1. Create a Keyring. This Keyring will be responsible for protecting the data keys that protect your data. + // For this example, we will create a AWS KMS Keyring with the AWS KMS Key we want to use. + // We will use the `CreateAwsKmsMultiKeyring` method to create this keyring, + // as it will correctly handle both single region and Multi-Region KMS Keys. + generatorKeyID := kmsKeyID + awsKmsMultiKeyringInput := mpltypes.CreateAwsKmsMultiKeyringInput{ + Generator: &generatorKeyID, + } + keyring, err := matProv.CreateAwsKmsMultiKeyring(context.Background(), awsKmsMultiKeyringInput) + utils.HandleError(err) + + // 2. Configure which attributes are encrypted and/or signed when writing new items. + // For each attribute that may exist on the items we plan to write to our DynamoDbTable, + // we must explicitly configure how they should be treated during item encryption: + // - ENCRYPT_AND_SIGN: The attribute is encrypted and included in the signature + // - SIGN_ONLY: The attribute not encrypted, but is still included in the signature + // - DO_NOTHING: The attribute is not encrypted and not included in the signature + attributeActions := map[string]dbesdkstructuredencryptiontypes.CryptoAction{ + "partition_key": dbesdkstructuredencryptiontypes.CryptoActionSignOnly, // Partition key must be SIGN_ONLY + "sort_key": dbesdkstructuredencryptiontypes.CryptoActionSignOnly, // Sort key must be SIGN_ONLY + "attribute1": dbesdkstructuredencryptiontypes.CryptoActionEncryptAndSign, + "attribute2": dbesdkstructuredencryptiontypes.CryptoActionSignOnly, + ":attribute3": dbesdkstructuredencryptiontypes.CryptoActionDoNothing, + } + + // 3. Configure which attributes we expect to be included in the signature + // when reading items. There are two options for configuring this: + // + // - (Recommended) Configure `allowedUnsignedAttributesPrefix`: + // When defining your DynamoDb schema and deciding on attribute names, + // choose a distinguishing prefix (such as ":") for all attributes that + // you do not want to include in the signature. + // This has two main benefits: + // - It is easier to reason about the security and authenticity of data within your item + // when all unauthenticated data is easily distinguishable by their attribute name. + // - If you need to add new unauthenticated attributes in the future, + // you can easily make the corresponding update to your `attributeActionsOnEncrypt` + // and immediately start writing to that new attribute, without + // any other configuration update needed. + // Once you configure this field, it is not safe to update it. + // + // - Configure `allowedUnsignedAttributes`: You may also explicitly list + // a set of attributes that should be considered unauthenticated when encountered + // on read. Be careful if you use this configuration. Do not remove an attribute + // name from this configuration, even if you are no longer writing with that attribute, + // as old items may still include this attribute, and our configuration needs to know + // to continue to exclude this attribute from the signature scope. + // If you add new attribute names to this field, you must first deploy the update to this + // field to all readers in your host fleet before deploying the update to start writing + // with that new attribute. + // + // For this example, we have designed our DynamoDb table such that any attribute name with + // the ":" prefix should be considered unauthenticated. + allowedUnsignedAttributePrefix := ":" + + // 4. Create the DynamoDb Encryption configuration for the table we will be writing to. + partitionKey := "partition_key" + sortKeyName := "sort_key" + algorithmSuiteID := mpltypes.DBEAlgorithmSuiteIdAlgAes256GcmHkdfSha512CommitKeyEcdsaP384SymsigHmacSha384 + tableConfig := dbesdkdynamodbencryptiontypes.DynamoDbTableEncryptionConfig{ + LogicalTableName: ddbTableName, + PartitionKeyName: partitionKey, + SortKeyName: &sortKeyName, + AttributeActionsOnEncrypt: attributeActions, + Keyring: keyring, + AllowedUnsignedAttributePrefix: &allowedUnsignedAttributePrefix, + // Specifying an algorithm suite is not required, + // but is done here to demonstrate how to do so. + // We suggest using the + // `ALG_AES_256_GCM_HKDF_SHA512_COMMIT_KEY_ECDSA_P384_SYMSIG_HMAC_SHA384` suite, + // which includes AES-GCM with key derivation, signing, and key commitment. + // This is also the default algorithm suite if one is not specified in this config. + // For more information on supported algorithm suites, see: + // https://docs.aws.amazon.com/database-encryption-sdk/latest/devguide/supported-algorithms.html + AlgorithmSuiteId: &algorithmSuiteID, + } + tableConfigsMap := make(map[string]dbesdkdynamodbencryptiontypes.DynamoDbTableEncryptionConfig) + tableConfigsMap[ddbTableName] = tableConfig + listOfTableConfigs := dbesdkdynamodbencryptiontypes.DynamoDbTablesEncryptionConfig{ + TableEncryptionConfigs: tableConfigsMap, + } + // 5. Create a new AWS SDK DynamoDb client using the TableEncryptionConfigs + dbEsdkMiddleware, err := dbesdkmiddleware.NewDBEsdkMiddleware(listOfTableConfigs) + utils.HandleError(err) + ddb := dynamodb.NewFromConfig(cfg, dbEsdkMiddleware.CreateMiddleware()) + + // 6. Put an item into our table using the above client. + // Before the item gets sent to DynamoDb, it will be encrypted + // client-side, according to our configuration. + item := map[string]types.AttributeValue{ + "partition_key": &types.AttributeValueMemberS{Value: "WriteItemExample"}, + "sort_key": &types.AttributeValueMemberN{Value: "0"}, + "attribute1": &types.AttributeValueMemberS{Value: "encrypt and sign me!"}, + "attribute2": &types.AttributeValueMemberS{Value: "sign me!"}, + ":attribute3": &types.AttributeValueMemberS{Value: "ignore me!"}, + } + putbatchWriteItemInput := &dynamodb.PutItemInput{ + TableName: aws.String(ddbTableName), + Item: item, + } + _, err = ddb.PutItem(context.TODO(), putbatchWriteItemInput) + utils.HandleError(err) + + transactWriteItemsInput := &dynamodb.TransactWriteItemsInput{ + TransactItems: []types.TransactWriteItem{ + { + Put: &types.Put{ + TableName: aws.String(ddbTableName), + Item: item, + }, + }, + }, + } + _, err = ddb.TransactWriteItems(context.TODO(), transactWriteItemsInput) + utils.HandleError(err) + + // 7. Get the item back from our table using the same client. + // The client will decrypt the item client-side, and return + // back the original item. + key := map[string]types.AttributeValue{ + "partition_key": &types.AttributeValueMemberS{Value: "WriteItemExample"}, + "sort_key": &types.AttributeValueMemberN{Value: "0"}, + } + getInput := &dynamodb.GetItemInput{ + TableName: aws.String(ddbTableName), + Key: key, + // In this example we configure a strongly consistent read + // because we perform a read immediately after a write (for demonstrative purposes). + // By default, reads are only eventually consistent. + // Read our docs to determine which read consistency to use for your application: + // https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ReadConsistency.html + ConsistentRead: aws.Bool(true), + } + result, err := ddb.GetItem(context.TODO(), getInput) + utils.HandleError(err) + // Verify the decrypted item + if !reflect.DeepEqual(item, result.Item) { + panic("Decrypted item does not match original item") + } + + transactGetItemsInput := &dynamodb.TransactGetItemsInput{ + TransactItems: []types.TransactGetItem{ + { + Get: &types.Get{ + Key: key, + TableName: aws.String(ddbTableName), + }, + }, + }, + } + _, err = ddb.TransactGetItems(context.TODO(), transactGetItemsInput) + utils.HandleError(err) + fmt.Println("MultiPutGetExample successful") +} diff --git a/Examples/runtimes/go/utils/exampleUtils.go b/Examples/runtimes/go/utils/exampleUtils.go new file mode 100644 index 000000000..bd3994efa --- /dev/null +++ b/Examples/runtimes/go/utils/exampleUtils.go @@ -0,0 +1,103 @@ +// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +package utils + +import ( + "crypto/rand" + "crypto/rsa" + "crypto/x509" + "encoding/pem" +) + +const ( + kmsKeyID = "arn:aws:kms:us-west-2:658956600833:key/b3537ef1-d8dc-4780-9f5a-55776cbb2f7f" + ddbTableName = "DynamoDbEncryptionInterceptorTestTableCS" + keyNamespace = "my-key-namespace" + keyName = "my-key-name" + aesKeyBytes = 32 // 256 bits = 32 bytes + testKeystoreName = "KeyStoreDdbTable" + testLogicalKeystoreName = "KeyStoreDdbTable" + testKeystoreKmsKeyId = "arn:aws:kms:us-west-2:370957321024:key/9d989aa2-2f9c-438c-a745-cc57d3ad0126" +) + +func TestKeystoreName() string { + return testKeystoreName +} + +func TestLogicalKeystoreName() string { + return testLogicalKeystoreName +} + +func TestKeystoreKmsKeyId() string { + return testKeystoreKmsKeyId +} + +func KmsKeyID() string { + return kmsKeyID +} + +func DdbTableName() string { + return ddbTableName +} + +func KeyNamespace() string { + return keyNamespace +} + +func KeyName() string { + return keyName +} + +func AreMapsEqual(map1, map2 map[string]string) bool { + if len(map1) != len(map2) { + return false + } + + for key, value1 := range map1 { + value2, exists := map2[key] + if !exists || value1 != value2 { + return false + } + } + return true +} + +func HandleError(err error) { + // Error handling is limited to panic for demonstration purposes only. + // In your code, errors should be properly handled. + if err != nil { + panic(err) + } +} + +func GenerateAes256KeyBytes() []byte { + key := make([]byte, aesKeyBytes) + // crypto/rand is used here for demonstration. + // In your code, you should implement a key generation strategy that meets your security needs. + _, err := rand.Read(key) + HandleError(err) + return key +} + +func GenerateKeyPair() (publicKeyBlock, privateKeyBlock *pem.Block) { + privateKey, err := rsa.GenerateKey(rand.Reader, 2048) + HandleError(err) + // Extract public key from the private key + publicKey := &privateKey.PublicKey + // Encode public key to PKCS1 DER format + publicKeyDER, err := x509.MarshalPKIXPublicKey(publicKey) + HandleError(err) + privateKeyDer, err := x509.MarshalPKCS8PrivateKey(privateKey) + HandleError(err) + // Encode to PEM format + publicKeyBlock = &pem.Block{ + Type: "RSA PUBLIC KEY", + Bytes: publicKeyDER, + } + privateKeyBlock = &pem.Block{ + Type: "PRIVATE KEY", + Bytes: privateKeyDer, + } + return publicKeyBlock, privateKeyBlock +} diff --git a/TestVectors/Makefile b/TestVectors/Makefile index 467c1947e..8934f5793 100644 --- a/TestVectors/Makefile +++ b/TestVectors/Makefile @@ -2,6 +2,7 @@ # SPDX-License-Identifier: Apache-2.0 CORES=2 +ENABLE_EXTERN_PROCESSING=1 TRANSPILE_TESTS_IN_RUST=1 include ../SharedMakefile.mk @@ -90,3 +91,55 @@ transpile_implementation_rust: _remove_wrapped_client_rust _remove_wrapped_client_rust: $(MAKE) _sed_file SED_FILE_PATH="runtimes/rust/src/deps/aws_cryptography_materialProviders.rs" \ SED_BEFORE_STRING=' \#\[cfg(feature = "wrapped-client")\]' SED_AFTER_STRING='\/\/ Removed cfg(feature = "wrapped-client")' + +# Go +GO_MODULE_NAME="github.com/aws/aws-database-encryption-sdk-dynamodb/testvectors" + +GO_DEPENDENCY_MODULE_NAMES := \ + --dependency-library-name=aws.cryptography.primitives=github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives \ + --dependency-library-name=com.amazonaws.kms=github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms \ + --dependency-library-name=com.amazonaws.dynamodb=github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb \ + --dependency-library-name=aws.cryptography.materialProviders=github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl \ + --dependency-library-name=aws.cryptography.keyStore=github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl \ + --dependency-library-name=sdk.com.amazonaws.dynamodb=github.com/aws/aws-sdk-go-v2/service/dynamodb \ + --dependency-library-name=sdk.com.amazonaws.kms=github.com/aws/aws-sdk-go-v2/service/kms \ + --dependency-library-name=aws.cryptography.dbEncryptionSdk.structuredEncryption=github.com/aws/aws-database-encryption-sdk-dynamodb \ + --dependency-library-name=aws.cryptography.dbEncryptionSdk.dynamoDb=github.com/aws/aws-database-encryption-sdk-dynamodb \ + --dependency-library-name=aws.cryptography.dbEncryptionSdk.dynamoDb.itemEncryptor=github.com/aws/aws-database-encryption-sdk-dynamodb \ + --dependency-library-name=aws.cryptography.dbEncryptionSdk.dynamoDb.transforms=github.com/aws/aws-database-encryption-sdk-dynamodb + +TRANSLATION_RECORD_GO := \ + DynamoDbEncryption/runtimes/go/ImplementationFromDafny-go/ImplementationFromDafny-go.dtr \ + submodules/MaterialProviders/StandardLibrary/runtimes/go/ImplementationFromDafny-go/ImplementationFromDafny-go.dtr \ + submodules/MaterialProviders/ComAmazonawsKms/runtimes/go/ImplementationFromDafny-go/ImplementationFromDafny-go.dtr \ + submodules/MaterialProviders/ComAmazonawsDynamodb/runtimes/go/ImplementationFromDafny-go/ImplementationFromDafny-go.dtr \ + submodules/MaterialProviders/AwsCryptographyPrimitives/runtimes/go/ImplementationFromDafny-go/ImplementationFromDafny-go.dtr \ + submodules/MaterialProviders/AwsCryptographicMaterialProviders/runtimes/go/ImplementationFromDafny-go/ImplementationFromDafny-go.dtr \ + submodules/MaterialProviders/TestVectorsAwsCryptographicMaterialProviders/runtimes/go/ImplementationFromDafny-go/ImplementationFromDafny-go.dtr + +# Constants for languages that drop extern names (Python, Go) + +INDEX_FILE_PATH=dafny/DDBEncryption/src/LibraryIndex.dfy +INDEX_FILE_WITH_EXTERN_STRING="module {:extern \"software.amazon.cryptography.dbencryptionsdk.dynamodb.internaldafny.wrapped\"} WrappedDynamoDbEncryption refines WrappedAbstractAwsCryptographyDynamoDbEncryptionService" +INDEX_FILE_WITHOUT_EXTERN_STRING="module WrappedDynamoDbEncryption refines WrappedAbstractAwsCryptographyDynamoDbEncryptionService" + +_sed_types_file_remove_extern: + echo "no types file" + +_sed_types_file_add_extern: + echo "no types file" + +_polymorph_go: purge_polymorph_code + +# Smithy-dafny generated shim needs a long term fix. +# TODO: Remove this commands once smithy-dafny is fixed +# This commands does not work on windows +# https://taskei.amazon.dev/tasks/CrypTool-5283 +purge_polymorph_code: + find .. -name "shim.go" | xargs sed -i $(SED_PARAMETER) 's/(_static \*CompanionStruct_Default___)//g' + rm -rf runtimes/go/ImplementationFromDafny-go/awscryptographydbencryptionsdkdynamodbsmithygenerated \ + runtimes/go/ImplementationFromDafny-go/awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes \ + runtimes/go/ImplementationFromDafny-go/WrappedAwsCryptographyDbEncryptionSdkDynamoDbService \ + runtimes/go/TestsFromDafny-go/awscryptographydbencryptionsdkdynamodbsmithygenerated \ + runtimes/go/TestsFromDafny-go/awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes \ + runtimes/go/TestsFromDafny-go/WrappedAwsCryptographyDbEncryptionSdkDynamoDbService diff --git a/TestVectors/dafny/DDBEncryption/src/Index.dfy b/TestVectors/dafny/DDBEncryption/src/Index.dfy index 03fa4492a..c75012113 100644 --- a/TestVectors/dafny/DDBEncryption/src/Index.dfy +++ b/TestVectors/dafny/DDBEncryption/src/Index.dfy @@ -17,8 +17,8 @@ module WrappedDDBEncryptionMain { import KeyVectors import KeyVectorsTypes = AwsCryptographyMaterialProvidersTestVectorKeysTypes - - const DEFAULT_KEYS : string := "../../../submodules/MaterialProviders/TestVectorsAwsCryptographicMaterialProviders/dafny/TestVectorsAwsCryptographicMaterialProviders/test/keys.json" + // TODO: Add extern for DEFAULT_KEYS + const DEFAULT_KEYS : string := "../../../../submodules/MaterialProviders/TestVectorsAwsCryptographicMaterialProviders/dafny/TestVectorsAwsCryptographicMaterialProviders/test/keys.json" method AddJson(prev : TestVectorConfig, file : string, keyVectors: KeyVectors.KeyVectorsClient) returns (output : Result) diff --git a/TestVectors/runtimes/go/ImplementationFromDafny-go/CreateInterceptedDDBClient/extern.go b/TestVectors/runtimes/go/ImplementationFromDafny-go/CreateInterceptedDDBClient/extern.go new file mode 100644 index 000000000..f2bea8ce6 --- /dev/null +++ b/TestVectors/runtimes/go/ImplementationFromDafny-go/CreateInterceptedDDBClient/extern.go @@ -0,0 +1,61 @@ +package CreateInterceptedDDBClient + +import ( + "context" + "net/url" + + "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/DynamoDBwrapped" + "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" + "github.com/aws/aws-database-encryption-sdk-dynamodb/dbesdkmiddleware" + "github.com/aws/aws-sdk-go-v2/config" + "github.com/aws/aws-sdk-go-v2/service/dynamodb" + smithyendpoints "github.com/aws/smithy-go/endpoints" +) + +type resolverV2 struct { +} + +func (*resolverV2) ResolveEndpoint(ctx context.Context, params dynamodb.EndpointParameters) ( + smithyendpoints.Endpoint, error, +) { + u, err := url.Parse("http://localhost:8000") + if err != nil { + return smithyendpoints.Endpoint{}, err + } + return smithyendpoints.Endpoint{ + URI: *u, + }, nil +} + +func CreateVanillaDDBClient() Wrappers.Result { + cfg, err := config.LoadDefaultConfig(context.TODO()) + if err != nil { + panic(err) + } + ddbClient := dynamodb.NewFromConfig(cfg, func(o *dynamodb.Options) { + o.EndpointResolverV2 = &resolverV2{} + }) + return Wrappers.Companion_Result_.Create_Success_(&DynamoDBwrapped.Shim{ + Client: ddbClient, + }) +} + +func CreateInterceptedDDBClient(ddbEncryptionConfig AwsCryptographyDbEncryptionSdkDynamoDbTypes.DynamoDbTablesEncryptionConfig) Wrappers.Result { + cfg, err := config.LoadDefaultConfig(context.TODO()) + if err != nil { + panic(err) + } + nativeConfig := awscryptographydbencryptionsdkdynamodbsmithygenerated.DynamoDbTablesEncryptionConfig_FromDafny(ddbEncryptionConfig) + dbEsdkMiddleware, err := dbesdkmiddleware.NewDBEsdkMiddleware(nativeConfig) + if err != nil { + panic(err) + } + ddbClient := dynamodb.NewFromConfig(cfg, dbEsdkMiddleware.CreateMiddleware(), func(o *dynamodb.Options) { + o.EndpointResolverV2 = &resolverV2{} + }) + return Wrappers.Companion_Result_.Create_Success_(&DynamoDBwrapped.Shim{ + Client: ddbClient, + }) +} diff --git a/TestVectors/runtimes/go/ImplementationFromDafny-go/go.mod b/TestVectors/runtimes/go/ImplementationFromDafny-go/go.mod new file mode 100644 index 000000000..444e60a99 --- /dev/null +++ b/TestVectors/runtimes/go/ImplementationFromDafny-go/go.mod @@ -0,0 +1,45 @@ +module github.com/aws/aws-database-encryption-sdk-dynamodb/testvectors + +go 1.23.2 + +replace ( + github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb => ../../../../submodules/MaterialProviders/ComAmazonawsDynamodb/runtimes/go/ImplementationFromDafny-go/ + github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms => ../../../../submodules/MaterialProviders/ComAmazonawsKms/runtimes/go/ImplementationFromDafny-go/ + github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl => ../../../../submodules/MaterialProviders/AwsCryptographicMaterialProviders/runtimes/go/ImplementationFromDafny-go/ + github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives => ../../../../submodules/MaterialProviders/AwsCryptographyPrimitives/runtimes/go/ImplementationFromDafny-go/ + github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library => ../../../../submodules/MaterialProviders/StandardLibrary/runtimes/go/ImplementationFromDafny-go/ + github.com/aws/aws-cryptographic-material-providers-library/testvectors => ../../../../submodules/MaterialProviders/TestVectorsAwsCryptographicMaterialProviders/runtimes/go/ImplementationFromDafny-go/ + github.com/aws/aws-database-encryption-sdk-dynamodb => ../../../../DynamoDbEncryption/runtimes/go/ImplementationFromDafny-go/ +) + +require ( + github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb v0.0.0 + github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms v0.0.0 + github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl v0.0.0 + github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives v0.0.0 + github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library v0.0.0 + github.com/aws/aws-cryptographic-material-providers-library/testvectors v0.0.0 + github.com/aws/aws-database-encryption-sdk-dynamodb v0.0.0 + github.com/dafny-lang/DafnyRuntimeGo/v4 v4.9.2 +) + +require ( + github.com/aws/aws-sdk-go-v2 v1.32.8 // indirect + github.com/aws/aws-sdk-go-v2/config v1.28.10 // indirect + github.com/aws/aws-sdk-go-v2/credentials v1.17.51 // indirect + github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.23 // indirect + github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.27 // indirect + github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.27 // indirect + github.com/aws/aws-sdk-go-v2/internal/ini v1.8.1 // indirect + github.com/aws/aws-sdk-go-v2/service/dynamodb v1.39.2 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.1 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/endpoint-discovery v1.10.8 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.8 // indirect + github.com/aws/aws-sdk-go-v2/service/kms v1.37.10 // indirect + github.com/aws/aws-sdk-go-v2/service/sso v1.24.9 // indirect + github.com/aws/aws-sdk-go-v2/service/ssooidc v1.28.8 // indirect + github.com/aws/aws-sdk-go-v2/service/sts v1.33.6 // indirect + github.com/aws/smithy-go v1.22.1 // indirect + github.com/google/uuid v1.6.0 // indirect + github.com/jmespath/go-jmespath v0.4.0 // indirect +) \ No newline at end of file diff --git a/TestVectors/runtimes/go/ImplementationFromDafny-go/go.sum b/TestVectors/runtimes/go/ImplementationFromDafny-go/go.sum new file mode 100644 index 000000000..0e726f608 --- /dev/null +++ b/TestVectors/runtimes/go/ImplementationFromDafny-go/go.sum @@ -0,0 +1,48 @@ +github.com/aws/aws-sdk-go-v2 v1.32.8 h1:cZV+NUS/eGxKXMtmyhtYPJ7Z4YLoI/V8bkTdRZfYhGo= +github.com/aws/aws-sdk-go-v2 v1.32.8/go.mod h1:P5WJBrYqqbWVaOxgH0X/FYYD47/nooaPOZPlQdmiN2U= +github.com/aws/aws-sdk-go-v2/config v1.28.10 h1:fKODZHfqQu06pCzR69KJ3GuttraRJkhlC8g80RZ0Dfg= +github.com/aws/aws-sdk-go-v2/config v1.28.10/go.mod h1:PvdxRYZ5Um9QMq9PQ0zHHNdtKK+he2NHtFCUFMXWXeg= +github.com/aws/aws-sdk-go-v2/credentials v1.17.51 h1:F/9Sm6Y6k4LqDesZDPJCLxQGXNNHd/ZtJiWd0lCZKRk= +github.com/aws/aws-sdk-go-v2/credentials v1.17.51/go.mod h1:TKbzCHm43AoPyA+iLGGcruXd4AFhF8tOmLex2R9jWNQ= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.23 h1:IBAoD/1d8A8/1aA8g4MBVtTRHhXRiNAgwdbo/xRM2DI= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.23/go.mod h1:vfENuCM7dofkgKpYzuzf1VT1UKkA/YL3qanfBn7HCaA= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.27 h1:jSJjSBzw8VDIbWv+mmvBSP8ezsztMYJGH+eKqi9AmNs= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.27/go.mod h1:/DAhLbFRgwhmvJdOfSm+WwikZrCuUJiA4WgJG0fTNSw= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.27 h1:l+X4K77Dui85pIj5foXDhPlnqcNRG2QUyvca300lXh8= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.27/go.mod h1:KvZXSFEXm6x84yE8qffKvT3x8J5clWnVFXphpohhzJ8= +github.com/aws/aws-sdk-go-v2/internal/ini v1.8.1 h1:VaRN3TlFdd6KxX1x3ILT5ynH6HvKgqdiXoTxAF4HQcQ= +github.com/aws/aws-sdk-go-v2/internal/ini v1.8.1/go.mod h1:FbtygfRFze9usAadmnGJNc8KsP346kEe+y2/oyhGAGc= +github.com/aws/aws-sdk-go-v2/service/dynamodb v1.39.2 h1:XcdIh35yg1J8bAiUOLtL/PoPMSGsD72Zanwmim8jEXc= +github.com/aws/aws-sdk-go-v2/service/dynamodb v1.39.2/go.mod h1:516U/KQM3zdcahNBjHUZKGWNfNnIYyt7sxLeqOx78b0= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.1 h1:iXtILhvDxB6kPvEXgsDhGaZCSC6LQET5ZHSdJozeI0Y= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.1/go.mod h1:9nu0fVANtYiAePIBh2/pFUSwtJ402hLnp854CNoDOeE= +github.com/aws/aws-sdk-go-v2/service/internal/endpoint-discovery v1.10.8 h1:h56mLNgpqWIL7RZOIQO634Xr569bXGTlIE83t/a0LSE= +github.com/aws/aws-sdk-go-v2/service/internal/endpoint-discovery v1.10.8/go.mod h1:kK04550Xx95KI0sNmwoB7ciS9QkRwt9TojhoTMXyJdo= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.8 h1:cWno7lefSH6Pp+mSznagKCgfDGeZRin66UvYUqAkyeA= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.8/go.mod h1:tPD+VjU3ABTBoEJ3nctu5Nyg4P4yjqSH5bJGGkY4+XE= +github.com/aws/aws-sdk-go-v2/service/kms v1.37.10 h1:nqYgJ+twjn6hrhTS97j3tlpNXrw4E9N2zQBgw2FAQMg= +github.com/aws/aws-sdk-go-v2/service/kms v1.37.10/go.mod h1:wHYtyttsH+A6d2MzXYl8cIf4O2Kw1Kg0qzromSX/wOs= +github.com/aws/aws-sdk-go-v2/service/sso v1.24.9 h1:YqtxripbjWb2QLyzRK9pByfEDvgg95gpC2AyDq4hFE8= +github.com/aws/aws-sdk-go-v2/service/sso v1.24.9/go.mod h1:lV8iQpg6OLOfBnqbGMBKYjilBlf633qwHnBEiMSPoHY= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.28.8 h1:6dBT1Lz8fK11m22R+AqfRsFn8320K0T5DTGxxOQBSMw= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.28.8/go.mod h1:/kiBvRQXBc6xeJTYzhSdGvJ5vm1tjaDEjH+MSeRJnlY= +github.com/aws/aws-sdk-go-v2/service/sts v1.33.6 h1:VwhTrsTuVn52an4mXx29PqRzs2Dvu921NpGk7y43tAM= +github.com/aws/aws-sdk-go-v2/service/sts v1.33.6/go.mod h1:+8h7PZb3yY5ftmVLD7ocEoE98hdc8PoKS0H3wfx1dlc= +github.com/aws/smithy-go v1.22.1 h1:/HPHZQ0g7f4eUeK6HKglFz8uwVfZKgoI25rb/J+dnro= +github.com/aws/smithy-go v1.22.1/go.mod h1:irrKGvNn1InZwb2d7fkIRNucdfwR8R+Ts3wxYa/cJHg= +github.com/dafny-lang/DafnyRuntimeGo/v4 v4.9.2 h1:g/xAj4F7Zt9wXJ6QjfbfocVi/ZYlAFpNddHCFyfzRDg= +github.com/dafny-lang/DafnyRuntimeGo/v4 v4.9.2/go.mod h1:l2Tm4N2DKuq3ljONC2vOATeM9PUpXbIc8SgXdwwqEto= +github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8= +github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= +github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/jmespath/go-jmespath v0.4.0 h1:BEgLn5cpjn8UN1mAw4NjwDrS35OdebyEtFe+9YPoQUg= +github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo= +github.com/jmespath/go-jmespath/internal/testify v1.5.1 h1:shLQSRRSCCPj3f2gpwzGwWFoC7ycTf1rcQZHOlsJ6N8= +github.com/jmespath/go-jmespath/internal/testify v1.5.1/go.mod h1:L3OGu8Wl2/fWfCI6z80xFu9LTZmf1ZRjMHUOPmWr69U= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/yaml.v2 v2.2.8 h1:obN1ZagJSUGI0Ek/LBmuj4SNLPfIny3KsKFopxRdj10= +gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= diff --git a/TestVectors/runtimes/go/TestsFromDafny-go/go.mod b/TestVectors/runtimes/go/TestsFromDafny-go/go.mod new file mode 100644 index 000000000..fef55bd7d --- /dev/null +++ b/TestVectors/runtimes/go/TestsFromDafny-go/go.mod @@ -0,0 +1,47 @@ +module github.com/aws/aws-database-encryption-sdk-dynamodb/testvectors/test + +go 1.23.2 + +replace ( + github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb => ../../../../submodules/MaterialProviders/ComAmazonawsDynamodb/runtimes/go/ImplementationFromDafny-go/ + github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms => ../../../../submodules/MaterialProviders/ComAmazonawsKms/runtimes/go/ImplementationFromDafny-go/ + github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl => ../../../../submodules/MaterialProviders/AwsCryptographicMaterialProviders/runtimes/go/ImplementationFromDafny-go/ + github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives => ../../../../submodules/MaterialProviders/AwsCryptographyPrimitives/runtimes/go/ImplementationFromDafny-go/ + github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library => ../../../../submodules/MaterialProviders/StandardLibrary/runtimes/go/ImplementationFromDafny-go/ + github.com/aws/aws-cryptographic-material-providers-library/testvectors => ../../../../submodules/MaterialProviders/TestVectorsAwsCryptographicMaterialProviders/runtimes/go/ImplementationFromDafny-go/ + github.com/aws/aws-database-encryption-sdk-dynamodb => ../../../../DynamoDbEncryption/runtimes/go/ImplementationFromDafny-go/ + github.com/aws/aws-database-encryption-sdk-dynamodb/testvectors => ../ImplementationFromDafny-go/ +) + +require ( + github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb v0.0.0 + github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms v0.0.0 + github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl v0.0.0 + github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives v0.0.0 + github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library v0.0.0 + github.com/aws/aws-cryptographic-material-providers-library/testvectors v0.0.0 + github.com/aws/aws-database-encryption-sdk-dynamodb v0.0.0 + github.com/aws/aws-database-encryption-sdk-dynamodb/testvectors v0.0.0 + github.com/dafny-lang/DafnyRuntimeGo/v4 v4.9.2 +) + +require ( + github.com/aws/aws-sdk-go-v2 v1.32.8 // indirect + github.com/aws/aws-sdk-go-v2/config v1.28.10 // indirect + github.com/aws/aws-sdk-go-v2/credentials v1.17.51 // indirect + github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.23 // indirect + github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.27 // indirect + github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.27 // indirect + github.com/aws/aws-sdk-go-v2/internal/ini v1.8.1 // indirect + github.com/aws/aws-sdk-go-v2/service/dynamodb v1.39.2 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.1 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/endpoint-discovery v1.10.8 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.8 // indirect + github.com/aws/aws-sdk-go-v2/service/kms v1.37.10 // indirect + github.com/aws/aws-sdk-go-v2/service/sso v1.24.9 // indirect + github.com/aws/aws-sdk-go-v2/service/ssooidc v1.28.8 // indirect + github.com/aws/aws-sdk-go-v2/service/sts v1.33.6 // indirect + github.com/aws/smithy-go v1.22.1 // indirect + github.com/google/uuid v1.6.0 // indirect + github.com/jmespath/go-jmespath v0.4.0 // indirect +) diff --git a/TestVectors/runtimes/go/TestsFromDafny-go/go.sum b/TestVectors/runtimes/go/TestsFromDafny-go/go.sum new file mode 100644 index 000000000..0e726f608 --- /dev/null +++ b/TestVectors/runtimes/go/TestsFromDafny-go/go.sum @@ -0,0 +1,48 @@ +github.com/aws/aws-sdk-go-v2 v1.32.8 h1:cZV+NUS/eGxKXMtmyhtYPJ7Z4YLoI/V8bkTdRZfYhGo= +github.com/aws/aws-sdk-go-v2 v1.32.8/go.mod h1:P5WJBrYqqbWVaOxgH0X/FYYD47/nooaPOZPlQdmiN2U= +github.com/aws/aws-sdk-go-v2/config v1.28.10 h1:fKODZHfqQu06pCzR69KJ3GuttraRJkhlC8g80RZ0Dfg= +github.com/aws/aws-sdk-go-v2/config v1.28.10/go.mod h1:PvdxRYZ5Um9QMq9PQ0zHHNdtKK+he2NHtFCUFMXWXeg= +github.com/aws/aws-sdk-go-v2/credentials v1.17.51 h1:F/9Sm6Y6k4LqDesZDPJCLxQGXNNHd/ZtJiWd0lCZKRk= +github.com/aws/aws-sdk-go-v2/credentials v1.17.51/go.mod h1:TKbzCHm43AoPyA+iLGGcruXd4AFhF8tOmLex2R9jWNQ= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.23 h1:IBAoD/1d8A8/1aA8g4MBVtTRHhXRiNAgwdbo/xRM2DI= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.23/go.mod h1:vfENuCM7dofkgKpYzuzf1VT1UKkA/YL3qanfBn7HCaA= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.27 h1:jSJjSBzw8VDIbWv+mmvBSP8ezsztMYJGH+eKqi9AmNs= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.27/go.mod h1:/DAhLbFRgwhmvJdOfSm+WwikZrCuUJiA4WgJG0fTNSw= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.27 h1:l+X4K77Dui85pIj5foXDhPlnqcNRG2QUyvca300lXh8= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.27/go.mod h1:KvZXSFEXm6x84yE8qffKvT3x8J5clWnVFXphpohhzJ8= +github.com/aws/aws-sdk-go-v2/internal/ini v1.8.1 h1:VaRN3TlFdd6KxX1x3ILT5ynH6HvKgqdiXoTxAF4HQcQ= +github.com/aws/aws-sdk-go-v2/internal/ini v1.8.1/go.mod h1:FbtygfRFze9usAadmnGJNc8KsP346kEe+y2/oyhGAGc= +github.com/aws/aws-sdk-go-v2/service/dynamodb v1.39.2 h1:XcdIh35yg1J8bAiUOLtL/PoPMSGsD72Zanwmim8jEXc= +github.com/aws/aws-sdk-go-v2/service/dynamodb v1.39.2/go.mod h1:516U/KQM3zdcahNBjHUZKGWNfNnIYyt7sxLeqOx78b0= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.1 h1:iXtILhvDxB6kPvEXgsDhGaZCSC6LQET5ZHSdJozeI0Y= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.1/go.mod h1:9nu0fVANtYiAePIBh2/pFUSwtJ402hLnp854CNoDOeE= +github.com/aws/aws-sdk-go-v2/service/internal/endpoint-discovery v1.10.8 h1:h56mLNgpqWIL7RZOIQO634Xr569bXGTlIE83t/a0LSE= +github.com/aws/aws-sdk-go-v2/service/internal/endpoint-discovery v1.10.8/go.mod h1:kK04550Xx95KI0sNmwoB7ciS9QkRwt9TojhoTMXyJdo= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.8 h1:cWno7lefSH6Pp+mSznagKCgfDGeZRin66UvYUqAkyeA= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.8/go.mod h1:tPD+VjU3ABTBoEJ3nctu5Nyg4P4yjqSH5bJGGkY4+XE= +github.com/aws/aws-sdk-go-v2/service/kms v1.37.10 h1:nqYgJ+twjn6hrhTS97j3tlpNXrw4E9N2zQBgw2FAQMg= +github.com/aws/aws-sdk-go-v2/service/kms v1.37.10/go.mod h1:wHYtyttsH+A6d2MzXYl8cIf4O2Kw1Kg0qzromSX/wOs= +github.com/aws/aws-sdk-go-v2/service/sso v1.24.9 h1:YqtxripbjWb2QLyzRK9pByfEDvgg95gpC2AyDq4hFE8= +github.com/aws/aws-sdk-go-v2/service/sso v1.24.9/go.mod h1:lV8iQpg6OLOfBnqbGMBKYjilBlf633qwHnBEiMSPoHY= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.28.8 h1:6dBT1Lz8fK11m22R+AqfRsFn8320K0T5DTGxxOQBSMw= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.28.8/go.mod h1:/kiBvRQXBc6xeJTYzhSdGvJ5vm1tjaDEjH+MSeRJnlY= +github.com/aws/aws-sdk-go-v2/service/sts v1.33.6 h1:VwhTrsTuVn52an4mXx29PqRzs2Dvu921NpGk7y43tAM= +github.com/aws/aws-sdk-go-v2/service/sts v1.33.6/go.mod h1:+8h7PZb3yY5ftmVLD7ocEoE98hdc8PoKS0H3wfx1dlc= +github.com/aws/smithy-go v1.22.1 h1:/HPHZQ0g7f4eUeK6HKglFz8uwVfZKgoI25rb/J+dnro= +github.com/aws/smithy-go v1.22.1/go.mod h1:irrKGvNn1InZwb2d7fkIRNucdfwR8R+Ts3wxYa/cJHg= +github.com/dafny-lang/DafnyRuntimeGo/v4 v4.9.2 h1:g/xAj4F7Zt9wXJ6QjfbfocVi/ZYlAFpNddHCFyfzRDg= +github.com/dafny-lang/DafnyRuntimeGo/v4 v4.9.2/go.mod h1:l2Tm4N2DKuq3ljONC2vOATeM9PUpXbIc8SgXdwwqEto= +github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8= +github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= +github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/jmespath/go-jmespath v0.4.0 h1:BEgLn5cpjn8UN1mAw4NjwDrS35OdebyEtFe+9YPoQUg= +github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo= +github.com/jmespath/go-jmespath/internal/testify v1.5.1 h1:shLQSRRSCCPj3f2gpwzGwWFoC7ycTf1rcQZHOlsJ6N8= +github.com/jmespath/go-jmespath/internal/testify v1.5.1/go.mod h1:L3OGu8Wl2/fWfCI6z80xFu9LTZmf1ZRjMHUOPmWr69U= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/yaml.v2 v2.2.8 h1:obN1ZagJSUGI0Ek/LBmuj4SNLPfIny3KsKFopxRdj10= +gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= diff --git a/customer-preview/ddb-esdk/AttributeResolver/AttributeResolver.go b/customer-preview/ddb-esdk/AttributeResolver/AttributeResolver.go new file mode 100644 index 000000000..5ae3f0f19 --- /dev/null +++ b/customer-preview/ddb-esdk/AttributeResolver/AttributeResolver.go @@ -0,0 +1,403 @@ +// Package AttributeResolver +// Dafny module AttributeResolver compiled into Go + +package AttributeResolver + +import ( + os "os" + + m_ComAmazonawsDynamodbTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/ComAmazonawsDynamodbTypes" + m_Com_Amazonaws_Dynamodb "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/Com_Amazonaws_Dynamodb" + m_ComAmazonawsKmsTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/ComAmazonawsKmsTypes" + m_Com_Amazonaws_Kms "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/Com_Amazonaws_Kms" + m_AlgorithmSuites "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AlgorithmSuites" + m_AwsArnParsing "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsArnParsing" + m_AwsCryptographyKeyStoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreOperations" + m_AwsCryptographyKeyStoreTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreTypes" + m_AwsCryptographyMaterialProvidersOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersOperations" + m_AwsCryptographyMaterialProvidersTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersTypes" + m_AwsKmsDiscoveryKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsDiscoveryKeyring" + m_AwsKmsEcdhKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsEcdhKeyring" + m_AwsKmsHierarchicalKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsHierarchicalKeyring" + m_AwsKmsKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsKeyring" + m_AwsKmsMrkAreUnique "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkAreUnique" + m_AwsKmsMrkDiscoveryKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkDiscoveryKeyring" + m_AwsKmsMrkKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkKeyring" + m_AwsKmsMrkMatchForDecrypt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkMatchForDecrypt" + m_AwsKmsRsaKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsRsaKeyring" + m_AwsKmsUtils "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsUtils" + m_CMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CMM" + m_CacheConstants "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CacheConstants" + m_CanonicalEncryptionContext "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CanonicalEncryptionContext" + m_Commitment "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Commitment" + m_Constants "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Constants" + m_CreateKeyStoreTable "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeyStoreTable" + m_CreateKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeys" + m_DDBKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DDBKeystoreOperations" + m_DefaultCMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DefaultCMM" + m_DefaultClientSupplier "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DefaultClientSupplier" + m_Defaults "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Defaults" + m_DiscoveryMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DiscoveryMultiKeyring" + m_EcdhEdkWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/EcdhEdkWrapping" + m_EdkWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/EdkWrapping" + m_ErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/ErrorMessages" + m_GetKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/GetKeys" + m_IntermediateKeyWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/IntermediateKeyWrapping" + m_KMSKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KMSKeystoreOperations" + m_KeyStore "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStore" + m_KeyStoreErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStoreErrorMessages" + m_Keyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Keyring" + m_KmsArn "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KmsArn" + m_LocalCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/LocalCMC" + m_MaterialProviders "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MaterialProviders" + m_MaterialWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MaterialWrapping" + m_Materials "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Materials" + m_MrkAwareDiscoveryMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MrkAwareDiscoveryMultiKeyring" + m_MrkAwareStrictMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MrkAwareStrictMultiKeyring" + m_MultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MultiKeyring" + m_RawAESKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawAESKeyring" + m_RawECDHKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawECDHKeyring" + m_RawRSAKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawRSAKeyring" + m_RequiredEncryptionContextCMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RequiredEncryptionContextCMM" + m_StormTracker "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StormTracker" + m_StormTrackingCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StormTrackingCMC" + m_StrictMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StrictMultiKeyring" + m_Structure "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Structure" + m_SynchronizedLocalCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/SynchronizedLocalCMC" + m_Utils "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Utils" + m_AtomicPrimitives "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AtomicPrimitives" + m_AwsCryptographyPrimitivesOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesOperations" + m_AwsCryptographyPrimitivesTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesTypes" + m_Digest "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Digest" + m_HKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/HKDF" + m_KdfCtr "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/KdfCtr" + m_Random "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Random" + m_WrappedHKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHKDF" + m_WrappedHMAC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHMAC" + m_Actions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Actions" + m_Base64 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64" + m_Base64Lemmas "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64Lemmas" + m_BoundedInts "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/BoundedInts" + m_DivInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternals" + m_DivInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternalsNonlinear" + m_DivMod "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivMod" + m_FileIO "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FileIO" + m_FloatCompare "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FloatCompare" + m_Functions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Functions" + m_GeneralInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GeneralInternals" + m_GetOpt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GetOpt" + m_HexStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/HexStrings" + m_Logarithm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Logarithm" + m__Math "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Math_" + m_ModInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternals" + m_ModInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternalsNonlinear" + m_Mul "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Mul" + m_MulInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternals" + m_MulInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternalsNonlinear" + m_Power "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Power" + m_Relations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Relations" + m_Seq "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq" + m_Seq_MergeSort "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq_MergeSort" + m_Sorting "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Sorting" + m_StandardLibrary "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary" + m_StandardLibraryInterop "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibraryInterop" + m_StandardLibrary_Sequence "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_Sequence" + m_StandardLibrary_String "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_String" + m_StandardLibrary_UInt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_UInt" + m_Streams "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Streams" + m_UnicodeStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UnicodeStrings" + m__Unicode "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Unicode_" + m_Utf16EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf16EncodingForm" + m_Utf8EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf8EncodingForm" + m_Wrappers "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers" + m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorOperations "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorOperations" + m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes" + m_AwsCryptographyDbEncryptionSdkDynamoDbOperations "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbOperations" + m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes" + m_AwsCryptographyDbEncryptionSdkDynamoDbTypes "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbTypes" + m_AwsCryptographyDbEncryptionSdkStructuredEncryptionOperations "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkStructuredEncryptionOperations" + m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes" + m_BaseBeacon "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/BaseBeacon" + m_BatchExecuteStatementTransform "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/BatchExecuteStatementTransform" + m_BatchGetItemTransform "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/BatchGetItemTransform" + m_BatchWriteItemTransform "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/BatchWriteItemTransform" + m_Canonize "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/Canonize" + m_CompoundBeacon "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/CompoundBeacon" + m_DdbMiddlewareConfig "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DdbMiddlewareConfig" + m_DdbStatement "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DdbStatement" + m_DdbVirtualFields "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DdbVirtualFields" + m_DeleteItemTransform "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DeleteItemTransform" + m_DynamoDBFilterExpr "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDBFilterExpr" + m_DynamoDBSupport "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDBSupport" + m_DynamoDbEncryption "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbEncryption" + m_DynamoDbEncryptionBranchKeyIdSupplier "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbEncryptionBranchKeyIdSupplier" + m_DynamoDbEncryptionUtil "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbEncryptionUtil" + m_DynamoDbItemEncryptor "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbItemEncryptor" + m_DynamoDbItemEncryptorUtil "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbItemEncryptorUtil" + m_DynamoDbMiddlewareSupport "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbMiddlewareSupport" + m_DynamoDbNormalizeNumber "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbNormalizeNumber" + m_DynamoDbUpdateExpr "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbUpdateExpr" + m_DynamoToStruct "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoToStruct" + m_ExecuteStatementTransform "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/ExecuteStatementTransform" + m_ExecuteTransactionTransform "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/ExecuteTransactionTransform" + m_GetItemTransform "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/GetItemTransform" + m_InternalLegacyOverride "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/InternalLegacyOverride" + m__Maps "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/Maps_" + m_PutItemTransform "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/PutItemTransform" + m_QueryTransform "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/QueryTransform" + m_ScanTransform "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/ScanTransform" + m_SearchConfigToInfo "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/SearchConfigToInfo" + m_SearchableEncryptionInfo "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/SearchableEncryptionInfo" + m_Sets "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/Sets" + m_SortCanon "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/SortCanon" + m_StructuredEncryption "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryption" + m_StructuredEncryptionCrypt "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionCrypt" + m_StructuredEncryptionFooter "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionFooter" + m_StructuredEncryptionHeader "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionHeader" + m_StructuredEncryptionPaths "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionPaths" + m_StructuredEncryptionUtil "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionUtil" + m_TermLoc "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/TermLoc" + m_TransactGetItemsTransform "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/TransactGetItemsTransform" + m_TransactWriteItemsTransform "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/TransactWriteItemsTransform" + m_UpdateItemTransform "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/UpdateItemTransform" + m__System "github.com/dafny-lang/DafnyRuntimeGo/v4/System_" + _dafny "github.com/dafny-lang/DafnyRuntimeGo/v4/dafny" +) + +var _ = os.Args +var _ _dafny.Dummy__ +var _ m__System.Dummy__ +var _ m_Wrappers.Dummy__ +var _ m_BoundedInts.Dummy__ +var _ m_StandardLibrary_UInt.Dummy__ +var _ m_StandardLibrary_Sequence.Dummy__ +var _ m_StandardLibrary_String.Dummy__ +var _ m_StandardLibrary.Dummy__ +var _ m_AwsCryptographyPrimitivesTypes.Dummy__ +var _ m_Random.Dummy__ +var _ m_Digest.Dummy__ +var _ m_WrappedHMAC.Dummy__ +var _ m_HKDF.Dummy__ +var _ m_WrappedHKDF.Dummy__ +var _ m_KdfCtr.Dummy__ +var _ m_AwsCryptographyPrimitivesOperations.Dummy__ +var _ m_AtomicPrimitives.Dummy__ +var _ m_ComAmazonawsDynamodbTypes.Dummy__ +var _ m_ComAmazonawsKmsTypes.Dummy__ +var _ m_AwsCryptographyKeyStoreTypes.Dummy__ +var _ m_AwsCryptographyMaterialProvidersTypes.Dummy__ +var _ m_Base64.Dummy__ +var _ m_AlgorithmSuites.Dummy__ +var _ m_Materials.Dummy__ +var _ m_Keyring.Dummy__ +var _ m_Relations.Dummy__ +var _ m_Seq_MergeSort.Dummy__ +var _ m__Math.Dummy__ +var _ m_Seq.Dummy__ +var _ m_MultiKeyring.Dummy__ +var _ m_AwsArnParsing.Dummy__ +var _ m_AwsKmsMrkAreUnique.Dummy__ +var _ m_Actions.Dummy__ +var _ m_AwsKmsMrkMatchForDecrypt.Dummy__ +var _ m_AwsKmsUtils.Dummy__ +var _ m_Constants.Dummy__ +var _ m_MaterialWrapping.Dummy__ +var _ m_CanonicalEncryptionContext.Dummy__ +var _ m_IntermediateKeyWrapping.Dummy__ +var _ m_EdkWrapping.Dummy__ +var _ m_ErrorMessages.Dummy__ +var _ m_AwsKmsKeyring.Dummy__ +var _ m_StrictMultiKeyring.Dummy__ +var _ m_AwsKmsDiscoveryKeyring.Dummy__ +var _ m_Com_Amazonaws_Kms.Dummy__ +var _ m_Com_Amazonaws_Dynamodb.Dummy__ +var _ m_DiscoveryMultiKeyring.Dummy__ +var _ m_AwsKmsMrkDiscoveryKeyring.Dummy__ +var _ m_MrkAwareDiscoveryMultiKeyring.Dummy__ +var _ m_AwsKmsMrkKeyring.Dummy__ +var _ m_MrkAwareStrictMultiKeyring.Dummy__ +var _ m_LocalCMC.Dummy__ +var _ m_SynchronizedLocalCMC.Dummy__ +var _ m_StormTracker.Dummy__ +var _ m_StormTrackingCMC.Dummy__ +var _ m_CacheConstants.Dummy__ +var _ m_AwsKmsHierarchicalKeyring.Dummy__ +var _ m_AwsKmsRsaKeyring.Dummy__ +var _ m_EcdhEdkWrapping.Dummy__ +var _ m_RawECDHKeyring.Dummy__ +var _ m_AwsKmsEcdhKeyring.Dummy__ +var _ m_RawAESKeyring.Dummy__ +var _ m_RawRSAKeyring.Dummy__ +var _ m_CMM.Dummy__ +var _ m_Defaults.Dummy__ +var _ m_Commitment.Dummy__ +var _ m_DefaultCMM.Dummy__ +var _ m_DefaultClientSupplier.Dummy__ +var _ m_Utils.Dummy__ +var _ m_RequiredEncryptionContextCMM.Dummy__ +var _ m_AwsCryptographyMaterialProvidersOperations.Dummy__ +var _ m_MaterialProviders.Dummy__ +var _ m_KeyStoreErrorMessages.Dummy__ +var _ m_KmsArn.Dummy__ +var _ m_Structure.Dummy__ +var _ m_KMSKeystoreOperations.Dummy__ +var _ m_DDBKeystoreOperations.Dummy__ +var _ m_CreateKeys.Dummy__ +var _ m_CreateKeyStoreTable.Dummy__ +var _ m_GetKeys.Dummy__ +var _ m_AwsCryptographyKeyStoreOperations.Dummy__ +var _ m_KeyStore.Dummy__ +var _ m__Unicode.Dummy__ +var _ m_Functions.Dummy__ +var _ m_Utf8EncodingForm.Dummy__ +var _ m_Utf16EncodingForm.Dummy__ +var _ m_UnicodeStrings.Dummy__ +var _ m_FileIO.Dummy__ +var _ m_GeneralInternals.Dummy__ +var _ m_MulInternalsNonlinear.Dummy__ +var _ m_MulInternals.Dummy__ +var _ m_Mul.Dummy__ +var _ m_ModInternalsNonlinear.Dummy__ +var _ m_DivInternalsNonlinear.Dummy__ +var _ m_ModInternals.Dummy__ +var _ m_DivInternals.Dummy__ +var _ m_DivMod.Dummy__ +var _ m_Power.Dummy__ +var _ m_Logarithm.Dummy__ +var _ m_StandardLibraryInterop.Dummy__ +var _ m_Streams.Dummy__ +var _ m_Sorting.Dummy__ +var _ m_HexStrings.Dummy__ +var _ m_GetOpt.Dummy__ +var _ m_FloatCompare.Dummy__ +var _ m_Base64Lemmas.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Dummy__ +var _ m_StructuredEncryptionUtil.Dummy__ +var _ m_Sets.Dummy__ +var _ m_StructuredEncryptionPaths.Dummy__ +var _ m_StructuredEncryptionHeader.Dummy__ +var _ m_StructuredEncryptionFooter.Dummy__ +var _ m_SortCanon.Dummy__ +var _ m_Canonize.Dummy__ +var _ m_StructuredEncryptionCrypt.Dummy__ +var _ m__Maps.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkStructuredEncryptionOperations.Dummy__ +var _ m_StructuredEncryption.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Dummy__ +var _ m_DynamoDbEncryptionUtil.Dummy__ +var _ m_DynamoDbNormalizeNumber.Dummy__ +var _ m_DynamoToStruct.Dummy__ +var _ m_DynamoDbItemEncryptorUtil.Dummy__ +var _ m_InternalLegacyOverride.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorOperations.Dummy__ +var _ m_DynamoDbItemEncryptor.Dummy__ +var _ m_DynamoDbEncryptionBranchKeyIdSupplier.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkDynamoDbOperations.Dummy__ +var _ m_DynamoDbEncryption.Dummy__ +var _ m_TermLoc.Dummy__ +var _ m_DdbVirtualFields.Dummy__ +var _ m_DynamoDbUpdateExpr.Dummy__ +var _ m_BaseBeacon.Dummy__ +var _ m_CompoundBeacon.Dummy__ +var _ m_SearchableEncryptionInfo.Dummy__ +var _ m_DynamoDBFilterExpr.Dummy__ +var _ m_DynamoDBSupport.Dummy__ +var _ m_SearchConfigToInfo.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Dummy__ +var _ m_DdbMiddlewareConfig.Dummy__ +var _ m_DdbStatement.Dummy__ +var _ m_DynamoDbMiddlewareSupport.Dummy__ +var _ m_PutItemTransform.Dummy__ +var _ m_GetItemTransform.Dummy__ +var _ m_UpdateItemTransform.Dummy__ +var _ m_BatchWriteItemTransform.Dummy__ +var _ m_TransactWriteItemsTransform.Dummy__ +var _ m_BatchGetItemTransform.Dummy__ +var _ m_ScanTransform.Dummy__ +var _ m_QueryTransform.Dummy__ +var _ m_TransactGetItemsTransform.Dummy__ +var _ m_DeleteItemTransform.Dummy__ +var _ m_ExecuteStatementTransform.Dummy__ +var _ m_BatchExecuteStatementTransform.Dummy__ +var _ m_ExecuteTransactionTransform.Dummy__ + +type Dummy__ struct{} + +// Definition of class Default__ +type Default__ struct { + dummy byte +} + +func New_Default___() *Default__ { + _this := Default__{} + + return &_this +} + +type CompanionStruct_Default___ struct { +} + +var Companion_Default___ = CompanionStruct_Default___{} + +func (_this *Default__) Equals(other *Default__) bool { + return _this == other +} + +func (_this *Default__) EqualsGeneric(x interface{}) bool { + other, ok := x.(*Default__) + return ok && _this.Equals(other) +} + +func (*Default__) String() string { + return "AttributeResolver.Default__" +} +func (_this *Default__) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = &Default__{} + +func (_static *CompanionStruct_Default___) Resolve(config m_DdbMiddlewareConfig.Config, input m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.ResolveAttributesInput) m_Wrappers.Result { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_ResolveAttributesOutput_.Default()) + _ = output + if (!((config).Dtor_tableEncryptionConfigs()).Contains((input).Dtor_TableName())) || (((((config).Dtor_tableEncryptionConfigs()).Get((input).Dtor_TableName()).(m_DdbMiddlewareConfig.TableConfig)).Dtor_search()).Is_None()) { + output = m_Wrappers.Companion_Result_.Create_Success_(m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_ResolveAttributesOutput_.Create_ResolveAttributesOutput_(_dafny.NewMapBuilder().ToMap(), _dafny.NewMapBuilder().ToMap())) + return output + } else { + var _0_tableConfig m_DdbMiddlewareConfig.TableConfig + _ = _0_tableConfig + _0_tableConfig = ((config).Dtor_tableEncryptionConfigs()).Get((input).Dtor_TableName()).(m_DdbMiddlewareConfig.TableConfig) + var _1_valueOrError0 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptyMap) + _ = _1_valueOrError0 + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_DynamoDbMiddlewareSupport.Companion_Default___.GetVirtualFields(((_0_tableConfig).Dtor_search()).Dtor_value().(m_SearchableEncryptionInfo.SearchInfo), (input).Dtor_Item(), (input).Dtor_Version()) + _1_valueOrError0 = _out0 + if (_1_valueOrError0).IsFailure() { + output = (_1_valueOrError0).PropagateFailure() + return output + } + var _2_vf _dafny.Map + _ = _2_vf + _2_vf = (_1_valueOrError0).Extract().(_dafny.Map) + var _3_valueOrError1 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptyMap) + _ = _3_valueOrError1 + var _out1 m_Wrappers.Result + _ = _out1 + _out1 = m_DynamoDbMiddlewareSupport.Companion_Default___.GetCompoundBeacons(((_0_tableConfig).Dtor_search()).Dtor_value().(m_SearchableEncryptionInfo.SearchInfo), (input).Dtor_Item(), (input).Dtor_Version()) + _3_valueOrError1 = _out1 + if (_3_valueOrError1).IsFailure() { + output = (_3_valueOrError1).PropagateFailure() + return output + } + var _4_cb _dafny.Map + _ = _4_cb + _4_cb = (_3_valueOrError1).Extract().(_dafny.Map) + output = m_Wrappers.Companion_Result_.Create_Success_(m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_ResolveAttributesOutput_.Create_ResolveAttributesOutput_(_2_vf, _4_cb)) + return output + } + return output +} + +// End of class Default__ diff --git a/customer-preview/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorOperations/AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorOperations.go b/customer-preview/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorOperations/AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorOperations.go new file mode 100644 index 000000000..b95ce8775 --- /dev/null +++ b/customer-preview/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorOperations/AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorOperations.go @@ -0,0 +1,1349 @@ +// Package AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorOperations +// Dafny module AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorOperations compiled into Go + +package AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorOperations + +import ( + os "os" + + m_ComAmazonawsDynamodbTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/ComAmazonawsDynamodbTypes" + m_Com_Amazonaws_Dynamodb "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/Com_Amazonaws_Dynamodb" + m_ComAmazonawsKmsTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/ComAmazonawsKmsTypes" + m_Com_Amazonaws_Kms "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/Com_Amazonaws_Kms" + m_AlgorithmSuites "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AlgorithmSuites" + m_AwsArnParsing "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsArnParsing" + m_AwsCryptographyKeyStoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreOperations" + m_AwsCryptographyKeyStoreTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreTypes" + m_AwsCryptographyMaterialProvidersOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersOperations" + m_AwsCryptographyMaterialProvidersTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersTypes" + m_AwsKmsDiscoveryKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsDiscoveryKeyring" + m_AwsKmsEcdhKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsEcdhKeyring" + m_AwsKmsHierarchicalKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsHierarchicalKeyring" + m_AwsKmsKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsKeyring" + m_AwsKmsMrkAreUnique "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkAreUnique" + m_AwsKmsMrkDiscoveryKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkDiscoveryKeyring" + m_AwsKmsMrkKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkKeyring" + m_AwsKmsMrkMatchForDecrypt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkMatchForDecrypt" + m_AwsKmsRsaKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsRsaKeyring" + m_AwsKmsUtils "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsUtils" + m_CMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CMM" + m_CacheConstants "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CacheConstants" + m_CanonicalEncryptionContext "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CanonicalEncryptionContext" + m_Commitment "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Commitment" + m_Constants "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Constants" + m_CreateKeyStoreTable "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeyStoreTable" + m_CreateKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeys" + m_DDBKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DDBKeystoreOperations" + m_DefaultCMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DefaultCMM" + m_DefaultClientSupplier "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DefaultClientSupplier" + m_Defaults "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Defaults" + m_DiscoveryMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DiscoveryMultiKeyring" + m_EcdhEdkWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/EcdhEdkWrapping" + m_EdkWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/EdkWrapping" + m_ErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/ErrorMessages" + m_GetKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/GetKeys" + m_IntermediateKeyWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/IntermediateKeyWrapping" + m_KMSKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KMSKeystoreOperations" + m_KeyStore "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStore" + m_KeyStoreErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStoreErrorMessages" + m_Keyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Keyring" + m_KmsArn "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KmsArn" + m_LocalCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/LocalCMC" + m_MaterialProviders "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MaterialProviders" + m_MaterialWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MaterialWrapping" + m_Materials "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Materials" + m_MrkAwareDiscoveryMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MrkAwareDiscoveryMultiKeyring" + m_MrkAwareStrictMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MrkAwareStrictMultiKeyring" + m_MultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MultiKeyring" + m_RawAESKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawAESKeyring" + m_RawECDHKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawECDHKeyring" + m_RawRSAKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawRSAKeyring" + m_RequiredEncryptionContextCMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RequiredEncryptionContextCMM" + m_StormTracker "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StormTracker" + m_StormTrackingCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StormTrackingCMC" + m_StrictMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StrictMultiKeyring" + m_Structure "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Structure" + m_SynchronizedLocalCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/SynchronizedLocalCMC" + m_Utils "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Utils" + m_AtomicPrimitives "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AtomicPrimitives" + m_AwsCryptographyPrimitivesOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesOperations" + m_AwsCryptographyPrimitivesTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesTypes" + m_Digest "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Digest" + m_HKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/HKDF" + m_KdfCtr "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/KdfCtr" + m_Random "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Random" + m_WrappedHKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHKDF" + m_WrappedHMAC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHMAC" + m_Actions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Actions" + m_Base64 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64" + m_Base64Lemmas "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64Lemmas" + m_BoundedInts "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/BoundedInts" + m_DivInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternals" + m_DivInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternalsNonlinear" + m_DivMod "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivMod" + m_FileIO "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FileIO" + m_FloatCompare "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FloatCompare" + m_Functions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Functions" + m_GeneralInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GeneralInternals" + m_GetOpt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GetOpt" + m_HexStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/HexStrings" + m_Logarithm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Logarithm" + m__Math "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Math_" + m_ModInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternals" + m_ModInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternalsNonlinear" + m_Mul "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Mul" + m_MulInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternals" + m_MulInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternalsNonlinear" + m_Power "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Power" + m_Relations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Relations" + m_Seq "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq" + m_Seq_MergeSort "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq_MergeSort" + m_SortedSets "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/SortedSets" + m_Sorting "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Sorting" + m_StandardLibrary "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary" + m_StandardLibraryInterop "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibraryInterop" + m_StandardLibrary_Sequence "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_Sequence" + m_StandardLibrary_String "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_String" + m_StandardLibrary_UInt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_UInt" + m_Streams "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Streams" + m_UTF8 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UTF8" + m_UnicodeStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UnicodeStrings" + m__Unicode "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Unicode_" + m_Utf16EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf16EncodingForm" + m_Utf8EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf8EncodingForm" + m_Wrappers "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers" + m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes" + m_AwsCryptographyDbEncryptionSdkDynamoDbTypes "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbTypes" + m_AwsCryptographyDbEncryptionSdkStructuredEncryptionOperations "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkStructuredEncryptionOperations" + m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes" + m_Canonize "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/Canonize" + m_DynamoDbEncryptionUtil "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbEncryptionUtil" + m_DynamoDbItemEncryptorUtil "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbItemEncryptorUtil" + m_DynamoDbNormalizeNumber "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbNormalizeNumber" + m_DynamoToStruct "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoToStruct" + m_InternalLegacyOverride "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/InternalLegacyOverride" + m__Maps "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/Maps_" + m_Sets "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/Sets" + m_SortCanon "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/SortCanon" + m_StructuredEncryption "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryption" + m_StructuredEncryptionCrypt "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionCrypt" + m_StructuredEncryptionFooter "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionFooter" + m_StructuredEncryptionHeader "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionHeader" + m_StructuredEncryptionPaths "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionPaths" + m_StructuredEncryptionUtil "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionUtil" + m__System "github.com/dafny-lang/DafnyRuntimeGo/v4/System_" + _dafny "github.com/dafny-lang/DafnyRuntimeGo/v4/dafny" +) + +var _ = os.Args +var _ _dafny.Dummy__ +var _ m__System.Dummy__ +var _ m_Wrappers.Dummy__ +var _ m_BoundedInts.Dummy__ +var _ m_StandardLibrary_UInt.Dummy__ +var _ m_StandardLibrary_Sequence.Dummy__ +var _ m_StandardLibrary_String.Dummy__ +var _ m_StandardLibrary.Dummy__ +var _ m_AwsCryptographyPrimitivesTypes.Dummy__ +var _ m_Random.Dummy__ +var _ m_Digest.Dummy__ +var _ m_WrappedHMAC.Dummy__ +var _ m_HKDF.Dummy__ +var _ m_WrappedHKDF.Dummy__ +var _ m_KdfCtr.Dummy__ +var _ m_AwsCryptographyPrimitivesOperations.Dummy__ +var _ m_AtomicPrimitives.Dummy__ +var _ m_ComAmazonawsDynamodbTypes.Dummy__ +var _ m_ComAmazonawsKmsTypes.Dummy__ +var _ m_AwsCryptographyKeyStoreTypes.Dummy__ +var _ m_AwsCryptographyMaterialProvidersTypes.Dummy__ +var _ m_Base64.Dummy__ +var _ m_AlgorithmSuites.Dummy__ +var _ m_Materials.Dummy__ +var _ m_Keyring.Dummy__ +var _ m_Relations.Dummy__ +var _ m_Seq_MergeSort.Dummy__ +var _ m__Math.Dummy__ +var _ m_Seq.Dummy__ +var _ m_MultiKeyring.Dummy__ +var _ m_AwsArnParsing.Dummy__ +var _ m_AwsKmsMrkAreUnique.Dummy__ +var _ m_Actions.Dummy__ +var _ m_AwsKmsMrkMatchForDecrypt.Dummy__ +var _ m_AwsKmsUtils.Dummy__ +var _ m_Constants.Dummy__ +var _ m_MaterialWrapping.Dummy__ +var _ m_CanonicalEncryptionContext.Dummy__ +var _ m_IntermediateKeyWrapping.Dummy__ +var _ m_EdkWrapping.Dummy__ +var _ m_ErrorMessages.Dummy__ +var _ m_AwsKmsKeyring.Dummy__ +var _ m_StrictMultiKeyring.Dummy__ +var _ m_AwsKmsDiscoveryKeyring.Dummy__ +var _ m_Com_Amazonaws_Kms.Dummy__ +var _ m_Com_Amazonaws_Dynamodb.Dummy__ +var _ m_DiscoveryMultiKeyring.Dummy__ +var _ m_AwsKmsMrkDiscoveryKeyring.Dummy__ +var _ m_MrkAwareDiscoveryMultiKeyring.Dummy__ +var _ m_AwsKmsMrkKeyring.Dummy__ +var _ m_MrkAwareStrictMultiKeyring.Dummy__ +var _ m_LocalCMC.Dummy__ +var _ m_SynchronizedLocalCMC.Dummy__ +var _ m_StormTracker.Dummy__ +var _ m_StormTrackingCMC.Dummy__ +var _ m_CacheConstants.Dummy__ +var _ m_AwsKmsHierarchicalKeyring.Dummy__ +var _ m_AwsKmsRsaKeyring.Dummy__ +var _ m_EcdhEdkWrapping.Dummy__ +var _ m_RawECDHKeyring.Dummy__ +var _ m_AwsKmsEcdhKeyring.Dummy__ +var _ m_RawAESKeyring.Dummy__ +var _ m_RawRSAKeyring.Dummy__ +var _ m_CMM.Dummy__ +var _ m_Defaults.Dummy__ +var _ m_Commitment.Dummy__ +var _ m_DefaultCMM.Dummy__ +var _ m_DefaultClientSupplier.Dummy__ +var _ m_Utils.Dummy__ +var _ m_RequiredEncryptionContextCMM.Dummy__ +var _ m_AwsCryptographyMaterialProvidersOperations.Dummy__ +var _ m_MaterialProviders.Dummy__ +var _ m_KeyStoreErrorMessages.Dummy__ +var _ m_KmsArn.Dummy__ +var _ m_Structure.Dummy__ +var _ m_KMSKeystoreOperations.Dummy__ +var _ m_DDBKeystoreOperations.Dummy__ +var _ m_CreateKeys.Dummy__ +var _ m_CreateKeyStoreTable.Dummy__ +var _ m_GetKeys.Dummy__ +var _ m_AwsCryptographyKeyStoreOperations.Dummy__ +var _ m_KeyStore.Dummy__ +var _ m__Unicode.Dummy__ +var _ m_Functions.Dummy__ +var _ m_Utf8EncodingForm.Dummy__ +var _ m_Utf16EncodingForm.Dummy__ +var _ m_UnicodeStrings.Dummy__ +var _ m_FileIO.Dummy__ +var _ m_GeneralInternals.Dummy__ +var _ m_MulInternalsNonlinear.Dummy__ +var _ m_MulInternals.Dummy__ +var _ m_Mul.Dummy__ +var _ m_ModInternalsNonlinear.Dummy__ +var _ m_DivInternalsNonlinear.Dummy__ +var _ m_ModInternals.Dummy__ +var _ m_DivInternals.Dummy__ +var _ m_DivMod.Dummy__ +var _ m_Power.Dummy__ +var _ m_Logarithm.Dummy__ +var _ m_StandardLibraryInterop.Dummy__ +var _ m_Streams.Dummy__ +var _ m_Sorting.Dummy__ +var _ m_HexStrings.Dummy__ +var _ m_GetOpt.Dummy__ +var _ m_FloatCompare.Dummy__ +var _ m_Base64Lemmas.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Dummy__ +var _ m_StructuredEncryptionUtil.Dummy__ +var _ m_Sets.Dummy__ +var _ m_StructuredEncryptionPaths.Dummy__ +var _ m_StructuredEncryptionHeader.Dummy__ +var _ m_StructuredEncryptionFooter.Dummy__ +var _ m_SortCanon.Dummy__ +var _ m_Canonize.Dummy__ +var _ m_StructuredEncryptionCrypt.Dummy__ +var _ m__Maps.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkStructuredEncryptionOperations.Dummy__ +var _ m_StructuredEncryption.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Dummy__ +var _ m_DynamoDbEncryptionUtil.Dummy__ +var _ m_DynamoDbNormalizeNumber.Dummy__ +var _ m_DynamoToStruct.Dummy__ +var _ m_DynamoDbItemEncryptorUtil.Dummy__ +var _ m_InternalLegacyOverride.Dummy__ + +type Dummy__ struct{} + +// Definition of class Default__ +type Default__ struct { + dummy byte +} + +func New_Default___() *Default__ { + _this := Default__{} + + return &_this +} + +type CompanionStruct_Default___ struct { +} + +var Companion_Default___ = CompanionStruct_Default___{} + +func (_this *Default__) Equals(other *Default__) bool { + return _this == other +} + +func (_this *Default__) EqualsGeneric(x interface{}) bool { + other, ok := x.(*Default__) + return ok && _this.Equals(other) +} + +func (*Default__) String() string { + return "AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorOperations.Default__" +} +func (_this *Default__) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = &Default__{} + +func (_static *CompanionStruct_Default___) AllowedUnsigned(unauthenticatedAttributes m_Wrappers.Option, unauthenticatedPrefix m_Wrappers.Option, attr _dafny.Sequence) bool { + return ((((unauthenticatedAttributes).Is_Some()) && (_dafny.Companion_Sequence_.Contains((unauthenticatedAttributes).Dtor_value().(_dafny.Sequence), attr))) || (((unauthenticatedPrefix).Is_Some()) && (_dafny.Companion_Sequence_.IsPrefixOf((unauthenticatedPrefix).Dtor_value().(_dafny.Sequence), attr)))) || (_dafny.Companion_Sequence_.IsPrefixOf(m_DynamoDbItemEncryptorUtil.Companion_Default___.ReservedPrefix(), attr)) +} +func (_static *CompanionStruct_Default___) ForwardCompatibleAttributeAction(attribute _dafny.Sequence, action m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.CryptoAction, unauthenticatedAttributes m_Wrappers.Option, unauthenticatedPrefix m_Wrappers.Option) bool { + if (action).Equals(m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Companion_CryptoAction_.Create_DO__NOTHING_()) { + return Companion_Default___.AllowedUnsigned(unauthenticatedAttributes, unauthenticatedPrefix, attribute) + } else { + return !(Companion_Default___.AllowedUnsigned(unauthenticatedAttributes, unauthenticatedPrefix, attribute)) + } +} +func (_static *CompanionStruct_Default___) CryptoActionString(action m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.CryptoAction) _dafny.Sequence { + if (action).Equals(m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Companion_CryptoAction_.Create_DO__NOTHING_()) { + return _dafny.SeqOfString("DO_NOTHING") + } else if (action).Equals(m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Companion_CryptoAction_.Create_SIGN__ONLY_()) { + return _dafny.SeqOfString("SIGN_ONLY") + } else if (action).Equals(m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Companion_CryptoAction_.Create_SIGN__AND__INCLUDE__IN__ENCRYPTION__CONTEXT_()) { + return _dafny.SeqOfString("SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT") + } else if (action).Equals(m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Companion_CryptoAction_.Create_ENCRYPT__AND__SIGN_()) { + return _dafny.SeqOfString("ENCRYPT_AND_SIGN") + } else { + return _dafny.SeqOfString("internal error") + } +} +func (_static *CompanionStruct_Default___) ExplainNotForwardCompatible(attr _dafny.Sequence, action m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.CryptoAction, unauthenticatedAttributes m_Wrappers.Option, unauthenticatedPrefix m_Wrappers.Option) _dafny.Sequence { + return _dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.SeqOfString("Attribute "), attr), _dafny.SeqOfString(" is configured as ")), Companion_Default___.CryptoActionString(action)), _dafny.SeqOfString(" but ")), (func() _dafny.Sequence { + if (action).Equals(m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Companion_CryptoAction_.Create_DO__NOTHING_()) { + return _dafny.SeqOfString("it must also be in unauthenticatedAttributes or begin with the unauthenticatedPrefix.") + } + return (func() _dafny.Sequence { + if ((unauthenticatedAttributes).Is_Some()) && (_dafny.Companion_Sequence_.Contains((unauthenticatedAttributes).Dtor_value().(_dafny.Sequence), attr)) { + return _dafny.SeqOfString("it is also in unauthenticatedAttributes.") + } + return (func() _dafny.Sequence { + if ((unauthenticatedPrefix).Is_Some()) && (_dafny.Companion_Sequence_.IsPrefixOf((unauthenticatedPrefix).Dtor_value().(_dafny.Sequence), attr)) { + return _dafny.SeqOfString("it also begins with the unauthenticatedPrefix.") + } + return _dafny.SeqOfString("it also begins with the reserved prefix.") + })() + })() + })()) +} +func (_static *CompanionStruct_Default___) UnknownAttribute(config Config, attr _dafny.Sequence) bool { + return (Companion_Default___.InSignatureScope(config, attr)) && (!((config).Dtor_attributeActionsOnEncrypt()).Contains(attr)) +} +func (_static *CompanionStruct_Default___) InSignatureScope(config Config, attr _dafny.Sequence) bool { + return !(Companion_Default___.AllowedUnsigned((config).Dtor_allowedUnsignedAttributes(), (config).Dtor_allowedUnsignedAttributePrefix(), attr)) +} +func (_static *CompanionStruct_Default___) EncodeName(k _dafny.Sequence) m_Wrappers.Result { + return Companion_Default___.DDBEncode(_dafny.Companion_Sequence_.Concatenate(m_StructuredEncryptionUtil.Companion_Default___.ATTR__PREFIX(), k)) +} +func (_static *CompanionStruct_Default___) MakeEncryptionContextForEncrypt(config Config, item _dafny.Map) m_Wrappers.Result { + if ((config).Dtor_version()) == (uint8(2)) { + return Companion_Default___.MakeEncryptionContextV2(config, item) + } else { + return Companion_Default___.MakeEncryptionContextV1(config, item) + } +} +func (_static *CompanionStruct_Default___) MakeEncryptionContextForDecrypt(config Config, header _dafny.Sequence, item _dafny.Map) m_Wrappers.Result { + if ((header).Select(0).(uint8)) == (uint8(2)) { + return Companion_Default___.MakeEncryptionContextV2(config, item) + } else if ((header).Select(0).(uint8)) == (uint8(1)) { + return Companion_Default___.MakeEncryptionContextV1(config, item) + } else { + return m_Wrappers.Companion_Result_.Create_Failure_(m_DynamoDbItemEncryptorUtil.Companion_Default___.E(_dafny.SeqOfString("Header attribute has unexpected version number"))) + } +} +func (_static *CompanionStruct_Default___) MakeEncryptionContextV1(config Config, item _dafny.Map) m_Wrappers.Result { + var _0_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need((item).Contains((config).Dtor_partitionKeyName()), Companion_Default___.DDBError(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.SeqOfString("Partition key "), (config).Dtor_partitionKeyName()), _dafny.SeqOfString(" not found in Item to be encrypted or decrypted")))) + _ = _0_valueOrError0 + if (_0_valueOrError0).IsFailure() { + return (_0_valueOrError0).PropagateFailure() + } else { + var _1_valueOrError1 m_Wrappers.Result = Companion_Default___.DDBEncode((config).Dtor_logicalTableName()) + _ = _1_valueOrError1 + if (_1_valueOrError1).IsFailure() { + return (_1_valueOrError1).PropagateFailure() + } else { + var _2_logicalTableName _dafny.Sequence = (_1_valueOrError1).Extract().(_dafny.Sequence) + _ = _2_logicalTableName + var _3_valueOrError2 m_Wrappers.Result = Companion_Default___.DDBEncode((config).Dtor_partitionKeyName()) + _ = _3_valueOrError2 + if (_3_valueOrError2).IsFailure() { + return (_3_valueOrError2).PropagateFailure() + } else { + var _4_partitionName _dafny.Sequence = (_3_valueOrError2).Extract().(_dafny.Sequence) + _ = _4_partitionName + var _5_valueOrError3 m_Wrappers.Result = Companion_Default___.EncodeName((config).Dtor_partitionKeyName()) + _ = _5_valueOrError3 + if (_5_valueOrError3).IsFailure() { + return (_5_valueOrError3).PropagateFailure() + } else { + var _6_partitionKeyName _dafny.Sequence = (_5_valueOrError3).Extract().(_dafny.Sequence) + _ = _6_partitionKeyName + var _7_partitionKeyValue _dafny.Sequence = m_StructuredEncryptionUtil.Companion_Default___.EncodeTerminal((item).Get((config).Dtor_partitionKeyName()).(m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.StructuredDataTerminal)) + _ = _7_partitionKeyValue + if ((config).Dtor_sortKeyName()).Is_None() { + var _8_valueOrError4 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need(((_dafny.SetOf(m_DynamoDbItemEncryptorUtil.Companion_Default___.TABLE__NAME(), m_DynamoDbItemEncryptorUtil.Companion_Default___.PARTITION__NAME(), m_DynamoDbItemEncryptorUtil.Companion_Default___.SORT__NAME(), _6_partitionKeyName)).Cardinality()).Cmp(_dafny.IntOfInt64(4)) == 0, m_DynamoDbItemEncryptorUtil.Companion_Default___.E(_dafny.SeqOfString("Internal Error"))) + _ = _8_valueOrError4 + if (_8_valueOrError4).IsFailure() { + return (_8_valueOrError4).PropagateFailure() + } else { + var _9_ec _dafny.Map = _dafny.NewMapBuilder().ToMap().UpdateUnsafe(m_DynamoDbItemEncryptorUtil.Companion_Default___.TABLE__NAME(), _2_logicalTableName).UpdateUnsafe(m_DynamoDbItemEncryptorUtil.Companion_Default___.PARTITION__NAME(), _4_partitionName).UpdateUnsafe(_6_partitionKeyName, _7_partitionKeyValue) + _ = _9_ec + return m_Wrappers.Companion_Result_.Create_Success_(_9_ec) + } + } else { + var _10_valueOrError5 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need((item).Contains(((config).Dtor_sortKeyName()).Dtor_value().(_dafny.Sequence)), Companion_Default___.DDBError(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.SeqOfString("Sort key "), ((config).Dtor_sortKeyName()).Dtor_value().(_dafny.Sequence)), _dafny.SeqOfString(" not found in Item to be encrypted or decrypted")))) + _ = _10_valueOrError5 + if (_10_valueOrError5).IsFailure() { + return (_10_valueOrError5).PropagateFailure() + } else { + var _11_valueOrError6 m_Wrappers.Result = Companion_Default___.DDBEncode(((config).Dtor_sortKeyName()).Dtor_value().(_dafny.Sequence)) + _ = _11_valueOrError6 + if (_11_valueOrError6).IsFailure() { + return (_11_valueOrError6).PropagateFailure() + } else { + var _12_sortName _dafny.Sequence = (_11_valueOrError6).Extract().(_dafny.Sequence) + _ = _12_sortName + var _13_valueOrError7 m_Wrappers.Result = Companion_Default___.EncodeName(((config).Dtor_sortKeyName()).Dtor_value().(_dafny.Sequence)) + _ = _13_valueOrError7 + if (_13_valueOrError7).IsFailure() { + return (_13_valueOrError7).PropagateFailure() + } else { + var _14_sortKeyName _dafny.Sequence = (_13_valueOrError7).Extract().(_dafny.Sequence) + _ = _14_sortKeyName + var _15_sortKeyValue _dafny.Sequence = m_StructuredEncryptionUtil.Companion_Default___.EncodeTerminal((item).Get(((config).Dtor_sortKeyName()).Dtor_value().(_dafny.Sequence)).(m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.StructuredDataTerminal)) + _ = _15_sortKeyValue + var _16_valueOrError8 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need(((_dafny.SetOf(m_DynamoDbItemEncryptorUtil.Companion_Default___.TABLE__NAME(), m_DynamoDbItemEncryptorUtil.Companion_Default___.PARTITION__NAME(), _6_partitionKeyName, m_DynamoDbItemEncryptorUtil.Companion_Default___.SORT__NAME(), _14_sortKeyName)).Cardinality()).Cmp(_dafny.IntOfInt64(5)) == 0, m_DynamoDbItemEncryptorUtil.Companion_Default___.E(_dafny.SeqOfString("Internal Error"))) + _ = _16_valueOrError8 + if (_16_valueOrError8).IsFailure() { + return (_16_valueOrError8).PropagateFailure() + } else { + var _17_ec _dafny.Map = _dafny.NewMapBuilder().ToMap().UpdateUnsafe(m_DynamoDbItemEncryptorUtil.Companion_Default___.TABLE__NAME(), _2_logicalTableName).UpdateUnsafe(m_DynamoDbItemEncryptorUtil.Companion_Default___.PARTITION__NAME(), _4_partitionName).UpdateUnsafe(_6_partitionKeyName, _7_partitionKeyValue).UpdateUnsafe(m_DynamoDbItemEncryptorUtil.Companion_Default___.SORT__NAME(), _12_sortName).UpdateUnsafe(_14_sortKeyName, _15_sortKeyValue) + _ = _17_ec + return m_Wrappers.Companion_Result_.Create_Success_(_17_ec) + } + } + } + } + } + } + } + } + } +} +func (_static *CompanionStruct_Default___) MakeEncryptionContextV2(config Config, item _dafny.Map) m_Wrappers.Result { + var _0_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need((item).Contains((config).Dtor_partitionKeyName()), Companion_Default___.DDBError(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.SeqOfString("Partition key "), (config).Dtor_partitionKeyName()), _dafny.SeqOfString(" not found in Item to be encrypted or decrypted")))) + _ = _0_valueOrError0 + if (_0_valueOrError0).IsFailure() { + return (_0_valueOrError0).PropagateFailure() + } else { + var _1_valueOrError1 m_Wrappers.Result = Companion_Default___.DDBEncode((config).Dtor_logicalTableName()) + _ = _1_valueOrError1 + if (_1_valueOrError1).IsFailure() { + return (_1_valueOrError1).PropagateFailure() + } else { + var _2_logicalTableName _dafny.Sequence = (_1_valueOrError1).Extract().(_dafny.Sequence) + _ = _2_logicalTableName + var _3_valueOrError2 m_Wrappers.Result = Companion_Default___.DDBEncode((config).Dtor_partitionKeyName()) + _ = _3_valueOrError2 + if (_3_valueOrError2).IsFailure() { + return (_3_valueOrError2).PropagateFailure() + } else { + var _4_partitionName _dafny.Sequence = (_3_valueOrError2).Extract().(_dafny.Sequence) + _ = _4_partitionName + var _5_valueOrError3 m_Wrappers.Result = Companion_Default___.EncodeName((config).Dtor_partitionKeyName()) + _ = _5_valueOrError3 + if (_5_valueOrError3).IsFailure() { + return (_5_valueOrError3).PropagateFailure() + } else { + var _6_partitionKeyName _dafny.Sequence = (_5_valueOrError3).Extract().(_dafny.Sequence) + _ = _6_partitionKeyName + if ((config).Dtor_sortKeyName()).Is_None() { + var _7_ec _dafny.Map = _dafny.NewMapBuilder().ToMap().UpdateUnsafe(m_DynamoDbItemEncryptorUtil.Companion_Default___.TABLE__NAME(), _2_logicalTableName).UpdateUnsafe(m_DynamoDbItemEncryptorUtil.Companion_Default___.PARTITION__NAME(), _4_partitionName) + _ = _7_ec + return m_Wrappers.Companion_Result_.Create_Success_(_7_ec) + } else { + var _8_valueOrError4 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need((item).Contains(((config).Dtor_sortKeyName()).Dtor_value().(_dafny.Sequence)), Companion_Default___.DDBError(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.SeqOfString("Sort key "), ((config).Dtor_sortKeyName()).Dtor_value().(_dafny.Sequence)), _dafny.SeqOfString(" not found in Item to be encrypted or decrypted")))) + _ = _8_valueOrError4 + if (_8_valueOrError4).IsFailure() { + return (_8_valueOrError4).PropagateFailure() + } else { + var _9_valueOrError5 m_Wrappers.Result = Companion_Default___.DDBEncode(((config).Dtor_sortKeyName()).Dtor_value().(_dafny.Sequence)) + _ = _9_valueOrError5 + if (_9_valueOrError5).IsFailure() { + return (_9_valueOrError5).PropagateFailure() + } else { + var _10_sortName _dafny.Sequence = (_9_valueOrError5).Extract().(_dafny.Sequence) + _ = _10_sortName + var _11_valueOrError6 m_Wrappers.Result = Companion_Default___.EncodeName(((config).Dtor_sortKeyName()).Dtor_value().(_dafny.Sequence)) + _ = _11_valueOrError6 + if (_11_valueOrError6).IsFailure() { + return (_11_valueOrError6).PropagateFailure() + } else { + var _12_sortKeyName _dafny.Sequence = (_11_valueOrError6).Extract().(_dafny.Sequence) + _ = _12_sortKeyName + var _13_ec _dafny.Map = _dafny.NewMapBuilder().ToMap().UpdateUnsafe(m_DynamoDbItemEncryptorUtil.Companion_Default___.TABLE__NAME(), _2_logicalTableName).UpdateUnsafe(m_DynamoDbItemEncryptorUtil.Companion_Default___.PARTITION__NAME(), _4_partitionName).UpdateUnsafe(m_DynamoDbItemEncryptorUtil.Companion_Default___.SORT__NAME(), _10_sortName) + _ = _13_ec + return m_Wrappers.Companion_Result_.Create_Success_(_13_ec) + } + } + } + } + } + } + } + } +} +func (_static *CompanionStruct_Default___) DDBError(s _dafny.Sequence) m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Error { + return m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Companion_Error_.Create_DynamoDbItemEncryptorException_(s) +} +func (_static *CompanionStruct_Default___) DDBEncode(s _dafny.Sequence) m_Wrappers.Result { + return (m_UTF8.Encode(s)).MapFailure(func(coer48 func(_dafny.Sequence) m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Error) func(interface{}) interface{} { + return func(arg67 interface{}) interface{} { + return coer48(arg67.(_dafny.Sequence)) + } + }(func(_0_e _dafny.Sequence) m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Error { + return Companion_Default___.DDBError(_0_e) + })) +} +func (_static *CompanionStruct_Default___) IsVersion2Schema(actions _dafny.Map) bool { + return _dafny.Quantifier((actions).Keys().Elements(), false, func(_exists_var_0 _dafny.Sequence) bool { + var _0_x _dafny.Sequence + _0_x = interface{}(_exists_var_0).(_dafny.Sequence) + return ((actions).Contains(_0_x)) && (((actions).Get(_0_x).(m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.CryptoAction)).Equals(m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Companion_CryptoAction_.Create_SIGN__AND__INCLUDE__IN__ENCRYPTION__CONTEXT_())) + }) +} +func (_static *CompanionStruct_Default___) VersionFromActions(actions _dafny.Map) uint8 { + if Companion_Default___.IsVersion2Schema(actions) { + return uint8(2) + } else { + return uint8(1) + } +} +func (_static *CompanionStruct_Default___) KeyActionFromVersion(version uint8) m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.CryptoAction { + if (version) == (uint8(2)) { + return m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Companion_CryptoAction_.Create_SIGN__AND__INCLUDE__IN__ENCRYPTION__CONTEXT_() + } else { + return m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Companion_CryptoAction_.Create_SIGN__ONLY_() + } +} +func (_static *CompanionStruct_Default___) KeyActionStringFromVersion(version uint8) _dafny.Sequence { + if (version) == (uint8(2)) { + return _dafny.SeqOfString("SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT") + } else { + return _dafny.SeqOfString("SIGN_ONLY") + } +} +func (_static *CompanionStruct_Default___) GetCryptoSchemaActionInner(config Config, attr _dafny.Sequence) m_Wrappers.Result { + if ((config).Dtor_attributeActionsOnEncrypt()).Contains(attr) { + return m_Wrappers.Companion_Result_.Create_Success_(((config).Dtor_attributeActionsOnEncrypt()).Get(attr).(m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.CryptoAction)) + } else if !(Companion_Default___.InSignatureScope(config, attr)) { + return m_Wrappers.Companion_Result_.Create_Success_(m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Companion_CryptoAction_.Create_DO__NOTHING_()) + } else { + return m_Wrappers.Companion_Result_.Create_Failure_(_dafny.Companion_Sequence_.Concatenate(_dafny.SeqOfString("No Crypto Action configured for attribute "), attr)) + } +} +func (_static *CompanionStruct_Default___) GetCryptoSchemaAction(config Config, attr _dafny.Sequence) m_Wrappers.Result { + return Companion_Default___.GetCryptoSchemaActionInner(config, attr) +} +func (_static *CompanionStruct_Default___) GetAuthenticateSchemaAction(config Config, attr _dafny.Sequence) m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.AuthenticateAction { + if Companion_Default___.InSignatureScope(config, attr) { + return m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Companion_AuthenticateAction_.Create_SIGN_() + } else { + return m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Companion_AuthenticateAction_.Create_DO__NOT__SIGN_() + } +} +func (_static *CompanionStruct_Default___) ConfigToCryptoSchema(config Config, item _dafny.Map) m_Wrappers.Result { + var _0_schema _dafny.Map = func() _dafny.Map { + var _coll0 = _dafny.NewMapBuilder() + _ = _coll0 + for _iter18 := _dafny.Iterate((item).Keys().Elements()); ; { + _compr_0, _ok18 := _iter18() + if !_ok18 { + break + } + var _1_k _dafny.Sequence + _1_k = interface{}(_compr_0).(_dafny.Sequence) + if (item).Contains(_1_k) { + _coll0.Add(_1_k, Companion_Default___.GetCryptoSchemaAction(config, _1_k)) + } + } + return _coll0.ToMap() + }() + _ = _0_schema + var _2_actionMapRes m_Wrappers.Result = m_DynamoToStruct.Companion_Default___.SimplifyMapValue(_0_schema) + _ = _2_actionMapRes + return m_DynamoToStruct.Companion_Default___.MapError(_2_actionMapRes) +} +func (_static *CompanionStruct_Default___) ConfigToAuthenticateSchema(config Config, item _dafny.Map) _dafny.Map { + return func() _dafny.Map { + var _coll0 = _dafny.NewMapBuilder() + _ = _coll0 + for _iter19 := _dafny.Iterate((item).Keys().Elements()); ; { + _compr_0, _ok19 := _iter19() + if !_ok19 { + break + } + var _0_k _dafny.Sequence + _0_k = interface{}(_compr_0).(_dafny.Sequence) + if m_ComAmazonawsDynamodbTypes.Companion_AttributeName_.Is_(_0_k) { + if (item).Contains(_0_k) { + _coll0.Add(_0_k, Companion_Default___.GetAuthenticateSchemaAction(config, _0_k)) + } + } + } + return _coll0.ToMap() + }() +} +func (_static *CompanionStruct_Default___) IsPlaintextItem(ddbItem _dafny.Map) bool { + return (!(ddbItem).Contains(m_StructuredEncryptionUtil.Companion_Default___.HeaderField())) && (!(ddbItem).Contains(m_StructuredEncryptionUtil.Companion_Default___.FooterField())) +} +func (_static *CompanionStruct_Default___) ConvertCryptoSchemaToAttributeActions(config Config, schema _dafny.Map) m_Wrappers.Result { + var _0_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need(_dafny.Quantifier((schema).Keys().Elements(), true, func(_forall_var_0 _dafny.Sequence) bool { + var _1_k _dafny.Sequence + _1_k = interface{}(_forall_var_0).(_dafny.Sequence) + if m_ComAmazonawsDynamodbTypes.Companion_AttributeName_.Is_(_1_k) { + return !((schema).Contains(_1_k)) || (Companion_Default___.InSignatureScope(config, _1_k)) + } else { + return true + } + }), m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Companion_Error_.Create_DynamoDbItemEncryptorException_(_dafny.SeqOfString("Received unexpected Crypto Schema: mismatch with signature scope"))) + _ = _0_valueOrError0 + if (_0_valueOrError0).IsFailure() { + return (_0_valueOrError0).PropagateFailure() + } else { + var _2_valueOrError1 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need(_dafny.Quantifier((schema).Keys().Elements(), true, func(_forall_var_1 _dafny.Sequence) bool { + var _3_k _dafny.Sequence + _3_k = interface{}(_forall_var_1).(_dafny.Sequence) + return !((schema).Contains(_3_k)) || (m_ComAmazonawsDynamodbTypes.Companion_Default___.IsValid__AttributeName(_3_k)) + }), m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Companion_Error_.Create_DynamoDbItemEncryptorException_(_dafny.SeqOfString("Received unexpected Crypto Schema: Invalid attribute names"))) + _ = _2_valueOrError1 + if (_2_valueOrError1).IsFailure() { + return (_2_valueOrError1).PropagateFailure() + } else { + return m_Wrappers.Companion_Result_.Create_Success_(schema) + } + } +} +func (_static *CompanionStruct_Default___) GetItemNames(item _dafny.Map) _dafny.Sequence { + var _0_keys _dafny.Sequence = m_SortedSets.SetToOrderedSequence2((item).Keys(), func(coer49 func(_dafny.Char, _dafny.Char) bool) func(interface{}, interface{}) bool { + return func(arg68 interface{}, arg69 interface{}) bool { + return coer49(arg68.(_dafny.Char), arg69.(_dafny.Char)) + } + }(m_DynamoDbItemEncryptorUtil.Companion_Default___.CharLess)) + _ = _0_keys + if (_dafny.IntOfUint32((_0_keys).Cardinality())).Sign() == 0 { + return _dafny.SeqOfString("item is empty") + } else { + return m_StandardLibrary.Companion_Default___.Join(_0_keys, _dafny.SeqOfString(" ")) + } +} +func (_static *CompanionStruct_Default___) KeyMissingMsg(config Config, item _dafny.Map, tag _dafny.Sequence) _dafny.Sequence { + return _dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.SeqOfString("On "), tag), _dafny.SeqOfString(" : ")), (func() _dafny.Sequence { + if !(item).Contains((config).Dtor_partitionKeyName()) { + return _dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.SeqOfString("Partition key '"), (config).Dtor_partitionKeyName()), _dafny.SeqOfString("' does not exist in item. ")) + } + return _dafny.SeqOfString("") + })()), (func() _dafny.Sequence { + if (((config).Dtor_sortKeyName()).Is_Some()) && (!(item).Contains(((config).Dtor_sortKeyName()).Dtor_value().(_dafny.Sequence))) { + return _dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.SeqOfString("Sort key '"), ((config).Dtor_sortKeyName()).Dtor_value().(_dafny.Sequence)), _dafny.SeqOfString("' does not exist in item. ")) + } + return _dafny.SeqOfString("") + })()), _dafny.SeqOfString("Item contains these attributes : ")), Companion_Default___.GetItemNames(item)), _dafny.SeqOfString(".")) +} +func (_static *CompanionStruct_Default___) ContextAttrsExist(actions _dafny.Map, item _dafny.Map) bool { + return _dafny.Quantifier((actions).Keys().Elements(), true, func(_forall_var_0 _dafny.Sequence) bool { + var _0_k _dafny.Sequence + _0_k = interface{}(_forall_var_0).(_dafny.Sequence) + return !((actions).Contains(_0_k)) || (!(((actions).Get(_0_k).(m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.CryptoAction)).Equals(m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Companion_CryptoAction_.Create_SIGN__AND__INCLUDE__IN__ENCRYPTION__CONTEXT_())) || ((item).Contains(_0_k))) + }) +} +func (_static *CompanionStruct_Default___) ContextMissingMsg(actions _dafny.Map, item _dafny.Map) _dafny.Sequence { + var _0_s _dafny.Set = func() _dafny.Set { + var _coll0 = _dafny.NewBuilder() + _ = _coll0 + for _iter20 := _dafny.Iterate((actions).Keys().Elements()); ; { + _compr_0, _ok20 := _iter20() + if !_ok20 { + break + } + var _1_k _dafny.Sequence + _1_k = interface{}(_compr_0).(_dafny.Sequence) + if (((actions).Contains(_1_k)) && (((actions).Get(_1_k).(m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.CryptoAction)).Equals(m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Companion_CryptoAction_.Create_SIGN__AND__INCLUDE__IN__ENCRYPTION__CONTEXT_()))) && (!(item).Contains(_1_k)) { + _coll0.Add(_1_k) + } + } + return _coll0.ToSet() + }() + _ = _0_s + var _2_missing _dafny.Sequence = m_SortedSets.SetToOrderedSequence2(_0_s, func(coer50 func(_dafny.Char, _dafny.Char) bool) func(interface{}, interface{}) bool { + return func(arg70 interface{}, arg71 interface{}) bool { + return coer50(arg70.(_dafny.Char), arg71.(_dafny.Char)) + } + }(m_DynamoDbItemEncryptorUtil.Companion_Default___.CharLess)) + _ = _2_missing + if (_dafny.IntOfUint32((_2_missing).Cardinality())).Sign() == 0 { + return _dafny.SeqOfString("No missing SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT attributes.") + } else if (_dafny.IntOfUint32((_2_missing).Cardinality())).Cmp(_dafny.One) == 0 { + return _dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.SeqOfString("Attribute "), (_2_missing).Select(0).(_dafny.Sequence)), _dafny.SeqOfString(" was configured with SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT but was not present in item to be encrypted.")) + } else { + return _dafny.Companion_Sequence_.Concatenate(_dafny.SeqOfString("These attributes were configured with SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT but were not present in item to be encrypted."), m_StandardLibrary.Companion_Default___.Join(_2_missing, _dafny.SeqOfString(","))) + } +} +func (_static *CompanionStruct_Default___) EncryptItem(config Config, input m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.EncryptItemInput) m_Wrappers.Result { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Companion_EncryptItemOutput_.Default()) + _ = output + var _0_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _0_valueOrError0 + _0_valueOrError0 = m_Wrappers.Companion_Default___.Need((((input).Dtor_plaintextItem()).Contains((config).Dtor_partitionKeyName())) && ((((config).Dtor_sortKeyName()).Is_None()) || (((input).Dtor_plaintextItem()).Contains(((config).Dtor_sortKeyName()).Dtor_value().(_dafny.Sequence)))), m_DynamoDbItemEncryptorUtil.Companion_Default___.E(Companion_Default___.KeyMissingMsg(config, (input).Dtor_plaintextItem(), _dafny.SeqOfString("Encrypt")))) + if (_0_valueOrError0).IsFailure() { + output = (_0_valueOrError0).PropagateFailure() + return output + } + var _1_valueOrError1 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _1_valueOrError1 + _1_valueOrError1 = m_Wrappers.Companion_Default___.Need(Companion_Default___.ContextAttrsExist((config).Dtor_attributeActionsOnEncrypt(), (input).Dtor_plaintextItem()), m_DynamoDbItemEncryptorUtil.Companion_Default___.E(Companion_Default___.ContextMissingMsg((config).Dtor_attributeActionsOnEncrypt(), (input).Dtor_plaintextItem()))) + if (_1_valueOrError1).IsFailure() { + output = (_1_valueOrError1).PropagateFailure() + return output + } + if (((input).Dtor_plaintextItem()).Cardinality()).Cmp(m_DynamoDbItemEncryptorUtil.Companion_Default___.MAX__ATTRIBUTE__COUNT()) > 0 { + var _2_actCount _dafny.Sequence + _ = _2_actCount + _2_actCount = m_StandardLibrary_String.Companion_Default___.Base10Int2String(((input).Dtor_plaintextItem()).Cardinality()) + var _3_maxCount _dafny.Sequence + _ = _3_maxCount + _3_maxCount = m_StandardLibrary_String.Companion_Default___.Base10Int2String(m_DynamoDbItemEncryptorUtil.Companion_Default___.MAX__ATTRIBUTE__COUNT()) + output = m_Wrappers.Companion_Result_.Create_Failure_(m_DynamoDbItemEncryptorUtil.Companion_Default___.E(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.SeqOfString("Item to encrypt had "), _2_actCount), _dafny.SeqOfString(" attributes, but maximum allowed is ")), _3_maxCount))) + return output + } + if (((config).Dtor_internalLegacyOverride()).Is_Some()) && (((((config).Dtor_internalLegacyOverride()).Dtor_value().(*m_InternalLegacyOverride.InternalLegacyOverride)).Policy()).Is_FORCE__LEGACY__ENCRYPT__ALLOW__LEGACY__DECRYPT()) { + var _4_valueOrError2 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Companion_EncryptItemOutput_.Default()) + _ = _4_valueOrError2 + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = (((config).Dtor_internalLegacyOverride()).Dtor_value().(*m_InternalLegacyOverride.InternalLegacyOverride)).EncryptItem(input) + _4_valueOrError2 = _out0 + if (_4_valueOrError2).IsFailure() { + output = (_4_valueOrError2).PropagateFailure() + return output + } + var _5_encryptItemOutput m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.EncryptItemOutput + _ = _5_encryptItemOutput + _5_encryptItemOutput = (_4_valueOrError2).Extract().(m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.EncryptItemOutput) + output = m_Wrappers.Companion_Result_.Create_Success_(_5_encryptItemOutput) + return output + } + if ((config).Dtor_plaintextOverride()).Is_FORCE__PLAINTEXT__WRITE__ALLOW__PLAINTEXT__READ() { + var _6_passthroughOutput m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.EncryptItemOutput + _ = _6_passthroughOutput + _6_passthroughOutput = m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Companion_EncryptItemOutput_.Create_EncryptItemOutput_((input).Dtor_plaintextItem(), m_Wrappers.Companion_Option_.Create_None_()) + output = m_Wrappers.Companion_Result_.Create_Success_(_6_passthroughOutput) + return output + } + var _7_valueOrError3 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptyMap) + _ = _7_valueOrError3 + _7_valueOrError3 = (m_DynamoToStruct.Companion_Default___.ItemToStructured((input).Dtor_plaintextItem())).MapFailure(func(coer51 func(m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Error) m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Error) func(interface{}) interface{} { + return func(arg72 interface{}) interface{} { + return coer51(arg72.(m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Error)) + } + }(func(_8_e m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Error) m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Error { + return m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Companion_Error_.Create_AwsCryptographyDbEncryptionSdkDynamoDb_(_8_e) + })) + if (_7_valueOrError3).IsFailure() { + output = (_7_valueOrError3).PropagateFailure() + return output + } + var _9_plaintextStructure _dafny.Map + _ = _9_plaintextStructure + _9_plaintextStructure = (_7_valueOrError3).Extract().(_dafny.Map) + var _10_valueOrError4 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptyMap) + _ = _10_valueOrError4 + _10_valueOrError4 = Companion_Default___.MakeEncryptionContextForEncrypt(config, _9_plaintextStructure) + if (_10_valueOrError4).IsFailure() { + output = (_10_valueOrError4).PropagateFailure() + return output + } + var _11_context _dafny.Map + _ = _11_context + _11_context = (_10_valueOrError4).Extract().(_dafny.Map) + var _12_valueOrError5 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptyMap) + _ = _12_valueOrError5 + _12_valueOrError5 = (Companion_Default___.ConfigToCryptoSchema(config, (input).Dtor_plaintextItem())).MapFailure(func(coer52 func(m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Error) m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Error) func(interface{}) interface{} { + return func(arg73 interface{}) interface{} { + return coer52(arg73.(m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Error)) + } + }(func(_13_e m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Error) m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Error { + return m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Companion_Error_.Create_AwsCryptographyDbEncryptionSdkDynamoDb_(_13_e) + })) + if (_12_valueOrError5).IsFailure() { + output = (_12_valueOrError5).PropagateFailure() + return output + } + var _14_cryptoSchema _dafny.Map + _ = _14_cryptoSchema + _14_cryptoSchema = (_12_valueOrError5).Extract().(_dafny.Map) + var _15_contextKeysX _dafny.Sequence + _ = _15_contextKeysX + _15_contextKeysX = m_SortedSets.SetToOrderedSequence2((_11_context).Keys(), func(coer53 func(uint8, uint8) bool) func(interface{}, interface{}) bool { + return func(arg74 interface{}, arg75 interface{}) bool { + return coer53(arg74.(uint8), arg75.(uint8)) + } + }(m_DynamoDbItemEncryptorUtil.Companion_Default___.ByteLess)) + var _16_contextKeys _dafny.Sequence + _ = _16_contextKeys + _16_contextKeys = _15_contextKeysX + var _17_reqCMMR m_Wrappers.Result + _ = _17_reqCMMR + var _out1 m_Wrappers.Result + _ = _out1 + _out1 = ((config).Dtor_cmpClient()).CreateRequiredEncryptionContextCMM(m_AwsCryptographyMaterialProvidersTypes.Companion_CreateRequiredEncryptionContextCMMInput_.Create_CreateRequiredEncryptionContextCMMInput_(m_Wrappers.Companion_Option_.Create_Some_((config).Dtor_cmm()), m_Wrappers.Companion_Option_.Create_None_(), _16_contextKeys)) + _17_reqCMMR = _out1 + var _18_valueOrError6 m_Wrappers.Result = m_Wrappers.Result{} + _ = _18_valueOrError6 + _18_valueOrError6 = (_17_reqCMMR).MapFailure(func(coer54 func(m_AwsCryptographyMaterialProvidersTypes.Error) m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Error) func(interface{}) interface{} { + return func(arg76 interface{}) interface{} { + return coer54(arg76.(m_AwsCryptographyMaterialProvidersTypes.Error)) + } + }(func(_19_e m_AwsCryptographyMaterialProvidersTypes.Error) m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Error { + return m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Companion_Error_.Create_AwsCryptographyMaterialProviders_(_19_e) + })) + if (_18_valueOrError6).IsFailure() { + output = (_18_valueOrError6).PropagateFailure() + return output + } + var _20_reqCMM m_AwsCryptographyMaterialProvidersTypes.ICryptographicMaterialsManager + _ = _20_reqCMM + _20_reqCMM = m_AwsCryptographyMaterialProvidersTypes.Companion_ICryptographicMaterialsManager_.CastTo_((_18_valueOrError6).Extract()) + var _21_encryptRes m_Wrappers.Result + _ = _21_encryptRes + var _out2 m_Wrappers.Result + _ = _out2 + _out2 = ((config).Dtor_structuredEncryption()).EncryptStructure(m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Companion_EncryptStructureInput_.Create_EncryptStructureInput_((config).Dtor_logicalTableName(), _9_plaintextStructure, _14_cryptoSchema, _20_reqCMM, (config).Dtor_algorithmSuiteId(), m_Wrappers.Companion_Option_.Create_Some_(_11_context))) + _21_encryptRes = _out2 + var _22_valueOrError7 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Companion_EncryptStructureOutput_.Default()) + _ = _22_valueOrError7 + _22_valueOrError7 = (_21_encryptRes).MapFailure(func(coer55 func(m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Error) m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Error) func(interface{}) interface{} { + return func(arg77 interface{}) interface{} { + return coer55(arg77.(m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Error)) + } + }(func(_23_e m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Error) m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Error { + return m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Companion_Error_.Create_AwsCryptographyDbEncryptionSdkDynamoDb_(m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_Error_.Create_AwsCryptographyDbEncryptionSdkStructuredEncryption_(_23_e)) + })) + if (_22_valueOrError7).IsFailure() { + output = (_22_valueOrError7).PropagateFailure() + return output + } + var _24_encryptVal m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.EncryptStructureOutput + _ = _24_encryptVal + _24_encryptVal = (_22_valueOrError7).Extract().(m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.EncryptStructureOutput) + var _25_encryptedData _dafny.Map + _ = _25_encryptedData + _25_encryptedData = (_24_encryptVal).Dtor_encryptedStructure() + var _26_valueOrError8 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _26_valueOrError8 + _26_valueOrError8 = m_Wrappers.Companion_Default___.Need(_dafny.Quantifier((_25_encryptedData).Keys().Elements(), true, func(_forall_var_0 _dafny.Sequence) bool { + var _27_k _dafny.Sequence + _27_k = interface{}(_forall_var_0).(_dafny.Sequence) + return !((_25_encryptedData).Contains(_27_k)) || (m_ComAmazonawsDynamodbTypes.Companion_Default___.IsValid__AttributeName(_27_k)) + }), m_DynamoDbItemEncryptorUtil.Companion_Default___.E(_dafny.SeqOfString(""))) + if (_26_valueOrError8).IsFailure() { + output = (_26_valueOrError8).PropagateFailure() + return output + } + var _28_valueOrError9 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptyMap) + _ = _28_valueOrError9 + _28_valueOrError9 = (m_DynamoToStruct.Companion_Default___.StructuredToItem(_25_encryptedData)).MapFailure(func(coer56 func(m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Error) m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Error) func(interface{}) interface{} { + return func(arg78 interface{}) interface{} { + return coer56(arg78.(m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Error)) + } + }(func(_29_e m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Error) m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Error { + return m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Companion_Error_.Create_AwsCryptographyDbEncryptionSdkDynamoDb_(_29_e) + })) + if (_28_valueOrError9).IsFailure() { + output = (_28_valueOrError9).PropagateFailure() + return output + } + var _30_ddbKey _dafny.Map + _ = _30_ddbKey + _30_ddbKey = (_28_valueOrError9).Extract().(_dafny.Map) + var _31_valueOrError10 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptyMap) + _ = _31_valueOrError10 + _31_valueOrError10 = Companion_Default___.ConvertCryptoSchemaToAttributeActions(config, (_24_encryptVal).Dtor_cryptoSchema()) + if (_31_valueOrError10).IsFailure() { + output = (_31_valueOrError10).PropagateFailure() + return output + } + var _32_parsedActions _dafny.Map + _ = _32_parsedActions + _32_parsedActions = (_31_valueOrError10).Extract().(_dafny.Map) + var _33_selectorContextR m_Wrappers.Result + _ = _33_selectorContextR + _33_selectorContextR = m_DynamoDbItemEncryptorUtil.Companion_Default___.ConvertContextForSelector(((_24_encryptVal).Dtor_parsedHeader()).Dtor_encryptionContext()) + var _34_valueOrError11 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptyMap) + _ = _34_valueOrError11 + _34_valueOrError11 = (_33_selectorContextR).MapFailure(func(coer57 func(_dafny.Sequence) m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Error) func(interface{}) interface{} { + return func(arg79 interface{}) interface{} { + return coer57(arg79.(_dafny.Sequence)) + } + }(func(_35_e _dafny.Sequence) m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Error { + return m_DynamoDbItemEncryptorUtil.Companion_Default___.E(_35_e) + })) + if (_34_valueOrError11).IsFailure() { + output = (_34_valueOrError11).PropagateFailure() + return output + } + var _36_selectorContext _dafny.Map + _ = _36_selectorContext + _36_selectorContext = (_34_valueOrError11).Extract().(_dafny.Map) + var _37_parsedHeader m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.ParsedHeader + _ = _37_parsedHeader + _37_parsedHeader = m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Companion_ParsedHeader_.Create_ParsedHeader_(_32_parsedActions, ((_24_encryptVal).Dtor_parsedHeader()).Dtor_algorithmSuiteId(), ((_24_encryptVal).Dtor_parsedHeader()).Dtor_encryptedDataKeys(), ((_24_encryptVal).Dtor_parsedHeader()).Dtor_storedEncryptionContext(), ((_24_encryptVal).Dtor_parsedHeader()).Dtor_encryptionContext(), _36_selectorContext) + output = m_Wrappers.Companion_Result_.Create_Success_(m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Companion_EncryptItemOutput_.Create_EncryptItemOutput_(_30_ddbKey, m_Wrappers.Companion_Option_.Create_Some_(_37_parsedHeader))) + return output +} +func (_static *CompanionStruct_Default___) DecryptItem(config Config, input m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.DecryptItemInput) m_Wrappers.Result { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Companion_DecryptItemOutput_.Default()) + _ = output + var _0_realCount _dafny.Int + _ = _0_realCount + _0_realCount = (func() _dafny.Set { + var _coll0 = _dafny.NewBuilder() + _ = _coll0 + for _iter21 := _dafny.Iterate(((input).Dtor_encryptedItem()).Keys().Elements()); ; { + _compr_0, _ok21 := _iter21() + if !_ok21 { + break + } + var _1_k _dafny.Sequence + _1_k = interface{}(_compr_0).(_dafny.Sequence) + if (((input).Dtor_encryptedItem()).Contains(_1_k)) && (!(_dafny.Companion_Sequence_.IsPrefixOf(m_DynamoDbItemEncryptorUtil.Companion_Default___.ReservedPrefix(), _1_k))) { + _coll0.Add(_1_k) + } + } + return _coll0.ToSet() + }()).Cardinality() + if (_0_realCount).Cmp(m_DynamoDbItemEncryptorUtil.Companion_Default___.MAX__ATTRIBUTE__COUNT()) > 0 { + var _2_actCount _dafny.Sequence + _ = _2_actCount + _2_actCount = m_StandardLibrary_String.Companion_Default___.Base10Int2String(_0_realCount) + var _3_maxCount _dafny.Sequence + _ = _3_maxCount + _3_maxCount = m_StandardLibrary_String.Companion_Default___.Base10Int2String(m_DynamoDbItemEncryptorUtil.Companion_Default___.MAX__ATTRIBUTE__COUNT()) + output = m_Wrappers.Companion_Result_.Create_Failure_(m_DynamoDbItemEncryptorUtil.Companion_Default___.E(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.SeqOfString("Item to decrypt had "), _2_actCount), _dafny.SeqOfString(" attributes, but maximum allowed is ")), _3_maxCount))) + return output + } + var _4_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _4_valueOrError0 + _4_valueOrError0 = m_Wrappers.Companion_Default___.Need((((input).Dtor_encryptedItem()).Contains((config).Dtor_partitionKeyName())) && ((((config).Dtor_sortKeyName()).Is_None()) || (((input).Dtor_encryptedItem()).Contains(((config).Dtor_sortKeyName()).Dtor_value().(_dafny.Sequence)))), m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Companion_Error_.Create_DynamoDbItemEncryptorException_(Companion_Default___.KeyMissingMsg(config, (input).Dtor_encryptedItem(), _dafny.SeqOfString("Decrypt")))) + if (_4_valueOrError0).IsFailure() { + output = (_4_valueOrError0).PropagateFailure() + return output + } + if (((config).Dtor_internalLegacyOverride()).Is_Some()) && ((((config).Dtor_internalLegacyOverride()).Dtor_value().(*m_InternalLegacyOverride.InternalLegacyOverride)).IsLegacyInput(input)) { + var _5_valueOrError1 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Companion_DecryptItemOutput_.Default()) + _ = _5_valueOrError1 + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = (((config).Dtor_internalLegacyOverride()).Dtor_value().(*m_InternalLegacyOverride.InternalLegacyOverride)).DecryptItem(input) + _5_valueOrError1 = _out0 + if (_5_valueOrError1).IsFailure() { + output = (_5_valueOrError1).PropagateFailure() + return output + } + var _6_decryptItemOutput m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.DecryptItemOutput + _ = _6_decryptItemOutput + _6_decryptItemOutput = (_5_valueOrError1).Extract().(m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.DecryptItemOutput) + output = m_Wrappers.Companion_Result_.Create_Success_(_6_decryptItemOutput) + return output + } + if ((((config).Dtor_plaintextOverride()).Is_FORCE__PLAINTEXT__WRITE__ALLOW__PLAINTEXT__READ()) || (((config).Dtor_plaintextOverride()).Is_FORBID__PLAINTEXT__WRITE__ALLOW__PLAINTEXT__READ())) && (Companion_Default___.IsPlaintextItem((input).Dtor_encryptedItem())) { + var _7_passthroughOutput m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.DecryptItemOutput + _ = _7_passthroughOutput + _7_passthroughOutput = m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Companion_DecryptItemOutput_.Create_DecryptItemOutput_((input).Dtor_encryptedItem(), m_Wrappers.Companion_Option_.Create_None_()) + output = m_Wrappers.Companion_Result_.Create_Success_(_7_passthroughOutput) + return output + } + var _8_valueOrError2 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _8_valueOrError2 + _8_valueOrError2 = m_Wrappers.Companion_Default___.Need(!(Companion_Default___.IsPlaintextItem((input).Dtor_encryptedItem())), m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Companion_Error_.Create_DynamoDbItemEncryptorException_(_dafny.SeqOfString("Encrypted item missing expected header and footer attributes"))) + if (_8_valueOrError2).IsFailure() { + output = (_8_valueOrError2).PropagateFailure() + return output + } + var _9_valueOrError3 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptyMap) + _ = _9_valueOrError3 + _9_valueOrError3 = (m_DynamoToStruct.Companion_Default___.ItemToStructured((input).Dtor_encryptedItem())).MapFailure(func(coer58 func(m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Error) m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Error) func(interface{}) interface{} { + return func(arg80 interface{}) interface{} { + return coer58(arg80.(m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Error)) + } + }(func(_10_e m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Error) m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Error { + return m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Companion_Error_.Create_AwsCryptographyDbEncryptionSdkDynamoDb_(_10_e) + })) + if (_9_valueOrError3).IsFailure() { + output = (_9_valueOrError3).PropagateFailure() + return output + } + var _11_encryptedStructure _dafny.Map + _ = _11_encryptedStructure + _11_encryptedStructure = (_9_valueOrError3).Extract().(_dafny.Map) + var _12_valueOrError4 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _12_valueOrError4 + _12_valueOrError4 = m_Wrappers.Companion_Default___.Need(((input).Dtor_encryptedItem()).Contains(m_StructuredEncryptionUtil.Companion_Default___.HeaderField()), m_DynamoDbItemEncryptorUtil.Companion_Default___.E(_dafny.SeqOfString("Header field, \"aws_dbe_head\", not in item."))) + if (_12_valueOrError4).IsFailure() { + output = (_12_valueOrError4).PropagateFailure() + return output + } + var _13_header m_ComAmazonawsDynamodbTypes.AttributeValue + _ = _13_header + _13_header = ((input).Dtor_encryptedItem()).Get(m_StructuredEncryptionUtil.Companion_Default___.HeaderField()).(m_ComAmazonawsDynamodbTypes.AttributeValue) + var _14_valueOrError5 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _14_valueOrError5 + _14_valueOrError5 = m_Wrappers.Companion_Default___.Need((_13_header).Is_B(), m_DynamoDbItemEncryptorUtil.Companion_Default___.E(_dafny.SeqOfString("Header field, \"aws_dbe_head\", not binary"))) + if (_14_valueOrError5).IsFailure() { + output = (_14_valueOrError5).PropagateFailure() + return output + } + var _15_valueOrError6 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _15_valueOrError6 + _15_valueOrError6 = m_Wrappers.Companion_Default___.Need((_dafny.IntOfUint32(((_13_header).Dtor_B()).Cardinality())).Sign() == 1, m_DynamoDbItemEncryptorUtil.Companion_Default___.E(_dafny.SeqOfString("Unexpected empty header field."))) + if (_15_valueOrError6).IsFailure() { + output = (_15_valueOrError6).PropagateFailure() + return output + } + var _16_valueOrError7 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptyMap) + _ = _16_valueOrError7 + _16_valueOrError7 = Companion_Default___.MakeEncryptionContextForDecrypt(config, (_13_header).Dtor_B(), _11_encryptedStructure) + if (_16_valueOrError7).IsFailure() { + output = (_16_valueOrError7).PropagateFailure() + return output + } + var _17_context _dafny.Map + _ = _17_context + _17_context = (_16_valueOrError7).Extract().(_dafny.Map) + var _18_authenticateSchema _dafny.Map + _ = _18_authenticateSchema + _18_authenticateSchema = Companion_Default___.ConfigToAuthenticateSchema(config, (input).Dtor_encryptedItem()) + var _19_reqCMMR m_Wrappers.Result + _ = _19_reqCMMR + var _out1 m_Wrappers.Result + _ = _out1 + _out1 = ((config).Dtor_cmpClient()).CreateRequiredEncryptionContextCMM(m_AwsCryptographyMaterialProvidersTypes.Companion_CreateRequiredEncryptionContextCMMInput_.Create_CreateRequiredEncryptionContextCMMInput_(m_Wrappers.Companion_Option_.Create_Some_((config).Dtor_cmm()), m_Wrappers.Companion_Option_.Create_None_(), m_SortedSets.SetToOrderedSequence2((_17_context).Keys(), func(coer59 func(uint8, uint8) bool) func(interface{}, interface{}) bool { + return func(arg81 interface{}, arg82 interface{}) bool { + return coer59(arg81.(uint8), arg82.(uint8)) + } + }(m_DynamoDbItemEncryptorUtil.Companion_Default___.ByteLess)))) + _19_reqCMMR = _out1 + var _20_valueOrError8 m_Wrappers.Result = m_Wrappers.Result{} + _ = _20_valueOrError8 + _20_valueOrError8 = (_19_reqCMMR).MapFailure(func(coer60 func(m_AwsCryptographyMaterialProvidersTypes.Error) m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Error) func(interface{}) interface{} { + return func(arg83 interface{}) interface{} { + return coer60(arg83.(m_AwsCryptographyMaterialProvidersTypes.Error)) + } + }(func(_21_e m_AwsCryptographyMaterialProvidersTypes.Error) m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Error { + return m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Companion_Error_.Create_AwsCryptographyMaterialProviders_(_21_e) + })) + if (_20_valueOrError8).IsFailure() { + output = (_20_valueOrError8).PropagateFailure() + return output + } + var _22_reqCMM m_AwsCryptographyMaterialProvidersTypes.ICryptographicMaterialsManager + _ = _22_reqCMM + _22_reqCMM = m_AwsCryptographyMaterialProvidersTypes.Companion_ICryptographicMaterialsManager_.CastTo_((_20_valueOrError8).Extract()) + var _23_decryptRes m_Wrappers.Result + _ = _23_decryptRes + var _out2 m_Wrappers.Result + _ = _out2 + _out2 = ((config).Dtor_structuredEncryption()).DecryptStructure(m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Companion_DecryptStructureInput_.Create_DecryptStructureInput_((config).Dtor_logicalTableName(), _11_encryptedStructure, _18_authenticateSchema, _22_reqCMM, m_Wrappers.Companion_Option_.Create_Some_(_17_context))) + _23_decryptRes = _out2 + var _24_valueOrError9 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Companion_DecryptStructureOutput_.Default()) + _ = _24_valueOrError9 + _24_valueOrError9 = (_23_decryptRes).MapFailure(func(coer61 func(m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Error) m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Error) func(interface{}) interface{} { + return func(arg84 interface{}) interface{} { + return coer61(arg84.(m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Error)) + } + }(func(_25_e m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Error) m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Error { + return m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Companion_Error_.Create_AwsCryptographyDbEncryptionSdkDynamoDb_(m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_Error_.Create_AwsCryptographyDbEncryptionSdkStructuredEncryption_(_25_e)) + })) + if (_24_valueOrError9).IsFailure() { + output = (_24_valueOrError9).PropagateFailure() + return output + } + var _26_decryptVal m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.DecryptStructureOutput + _ = _26_decryptVal + _26_decryptVal = (_24_valueOrError9).Extract().(m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.DecryptStructureOutput) + var _27_decryptedData _dafny.Map + _ = _27_decryptedData + _27_decryptedData = (_26_decryptVal).Dtor_plaintextStructure() + var _28_valueOrError10 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _28_valueOrError10 + _28_valueOrError10 = m_Wrappers.Companion_Default___.Need(_dafny.Quantifier((_27_decryptedData).Keys().Elements(), true, func(_forall_var_0 _dafny.Sequence) bool { + var _29_k _dafny.Sequence + _29_k = interface{}(_forall_var_0).(_dafny.Sequence) + return !((_27_decryptedData).Contains(_29_k)) || (m_ComAmazonawsDynamodbTypes.Companion_Default___.IsValid__AttributeName(_29_k)) + }), m_DynamoDbItemEncryptorUtil.Companion_Default___.E(_dafny.SeqOfString(""))) + if (_28_valueOrError10).IsFailure() { + output = (_28_valueOrError10).PropagateFailure() + return output + } + var _30_valueOrError11 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptyMap) + _ = _30_valueOrError11 + _30_valueOrError11 = (m_DynamoToStruct.Companion_Default___.StructuredToItem(_27_decryptedData)).MapFailure(func(coer62 func(m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Error) m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Error) func(interface{}) interface{} { + return func(arg85 interface{}) interface{} { + return coer62(arg85.(m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Error)) + } + }(func(_31_e m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Error) m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Error { + return m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Companion_Error_.Create_AwsCryptographyDbEncryptionSdkDynamoDb_(_31_e) + })) + if (_30_valueOrError11).IsFailure() { + output = (_30_valueOrError11).PropagateFailure() + return output + } + var _32_ddbItem _dafny.Map + _ = _32_ddbItem + _32_ddbItem = (_30_valueOrError11).Extract().(_dafny.Map) + var _33_schemaToConvert _dafny.Map + _ = _33_schemaToConvert + _33_schemaToConvert = (_26_decryptVal).Dtor_cryptoSchema() + var _34_valueOrError12 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptyMap) + _ = _34_valueOrError12 + _34_valueOrError12 = Companion_Default___.ConvertCryptoSchemaToAttributeActions(config, _33_schemaToConvert) + if (_34_valueOrError12).IsFailure() { + output = (_34_valueOrError12).PropagateFailure() + return output + } + var _35_parsedAuthActions _dafny.Map + _ = _35_parsedAuthActions + _35_parsedAuthActions = (_34_valueOrError12).Extract().(_dafny.Map) + var _36_selectorContextR m_Wrappers.Result + _ = _36_selectorContextR + _36_selectorContextR = m_DynamoDbItemEncryptorUtil.Companion_Default___.ConvertContextForSelector(((_26_decryptVal).Dtor_parsedHeader()).Dtor_encryptionContext()) + var _37_valueOrError13 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptyMap) + _ = _37_valueOrError13 + _37_valueOrError13 = (_36_selectorContextR).MapFailure(func(coer63 func(_dafny.Sequence) m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Error) func(interface{}) interface{} { + return func(arg86 interface{}) interface{} { + return coer63(arg86.(_dafny.Sequence)) + } + }(func(_38_e _dafny.Sequence) m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Error { + return m_DynamoDbItemEncryptorUtil.Companion_Default___.E(_38_e) + })) + if (_37_valueOrError13).IsFailure() { + output = (_37_valueOrError13).PropagateFailure() + return output + } + var _39_selectorContext _dafny.Map + _ = _39_selectorContext + _39_selectorContext = (_37_valueOrError13).Extract().(_dafny.Map) + var _40_parsedHeader m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.ParsedHeader + _ = _40_parsedHeader + _40_parsedHeader = m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Companion_ParsedHeader_.Create_ParsedHeader_(_35_parsedAuthActions, ((_26_decryptVal).Dtor_parsedHeader()).Dtor_algorithmSuiteId(), ((_26_decryptVal).Dtor_parsedHeader()).Dtor_encryptedDataKeys(), ((_26_decryptVal).Dtor_parsedHeader()).Dtor_storedEncryptionContext(), ((_26_decryptVal).Dtor_parsedHeader()).Dtor_encryptionContext(), _39_selectorContext) + output = m_Wrappers.Companion_Result_.Create_Success_(m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Companion_DecryptItemOutput_.Create_DecryptItemOutput_(_32_ddbItem, m_Wrappers.Companion_Option_.Create_Some_(_40_parsedHeader))) + return output +} + +// End of class Default__ + +// Definition of datatype Config +type Config struct { + Data_Config_ +} + +func (_this Config) Get_() Data_Config_ { + return _this.Data_Config_ +} + +type Data_Config_ interface { + isConfig() +} + +type CompanionStruct_Config_ struct { +} + +var Companion_Config_ = CompanionStruct_Config_{} + +type Config_Config struct { + Version uint8 + CmpClient *m_MaterialProviders.MaterialProvidersClient + LogicalTableName _dafny.Sequence + PartitionKeyName _dafny.Sequence + SortKeyName m_Wrappers.Option + Cmm m_AwsCryptographyMaterialProvidersTypes.ICryptographicMaterialsManager + AttributeActionsOnEncrypt _dafny.Map + AllowedUnsignedAttributes m_Wrappers.Option + AllowedUnsignedAttributePrefix m_Wrappers.Option + AlgorithmSuiteId m_Wrappers.Option + StructuredEncryption *m_StructuredEncryption.StructuredEncryptionClient + PlaintextOverride m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.PlaintextOverride + InternalLegacyOverride m_Wrappers.Option +} + +func (Config_Config) isConfig() {} + +func (CompanionStruct_Config_) Create_Config_(Version uint8, CmpClient *m_MaterialProviders.MaterialProvidersClient, LogicalTableName _dafny.Sequence, PartitionKeyName _dafny.Sequence, SortKeyName m_Wrappers.Option, Cmm m_AwsCryptographyMaterialProvidersTypes.ICryptographicMaterialsManager, AttributeActionsOnEncrypt _dafny.Map, AllowedUnsignedAttributes m_Wrappers.Option, AllowedUnsignedAttributePrefix m_Wrappers.Option, AlgorithmSuiteId m_Wrappers.Option, StructuredEncryption *m_StructuredEncryption.StructuredEncryptionClient, PlaintextOverride m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.PlaintextOverride, InternalLegacyOverride m_Wrappers.Option) Config { + return Config{Config_Config{Version, CmpClient, LogicalTableName, PartitionKeyName, SortKeyName, Cmm, AttributeActionsOnEncrypt, AllowedUnsignedAttributes, AllowedUnsignedAttributePrefix, AlgorithmSuiteId, StructuredEncryption, PlaintextOverride, InternalLegacyOverride}} +} + +func (_this Config) Is_Config() bool { + _, ok := _this.Get_().(Config_Config) + return ok +} + +func (CompanionStruct_Config_) Default() Config { + return Companion_Config_.Create_Config_(m_StructuredEncryptionHeader.Companion_Version_.Witness(), (*m_MaterialProviders.MaterialProvidersClient)(nil), _dafny.EmptySeq.SetString(), _dafny.EmptySeq.SetString(), m_Wrappers.Companion_Option_.Default(), (m_AwsCryptographyMaterialProvidersTypes.ICryptographicMaterialsManager)(nil), _dafny.EmptyMap, m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), (*m_StructuredEncryption.StructuredEncryptionClient)(nil), m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_PlaintextOverride_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this Config) Dtor_version() uint8 { + return _this.Get_().(Config_Config).Version +} + +func (_this Config) Dtor_cmpClient() *m_MaterialProviders.MaterialProvidersClient { + return _this.Get_().(Config_Config).CmpClient +} + +func (_this Config) Dtor_logicalTableName() _dafny.Sequence { + return _this.Get_().(Config_Config).LogicalTableName +} + +func (_this Config) Dtor_partitionKeyName() _dafny.Sequence { + return _this.Get_().(Config_Config).PartitionKeyName +} + +func (_this Config) Dtor_sortKeyName() m_Wrappers.Option { + return _this.Get_().(Config_Config).SortKeyName +} + +func (_this Config) Dtor_cmm() m_AwsCryptographyMaterialProvidersTypes.ICryptographicMaterialsManager { + return _this.Get_().(Config_Config).Cmm +} + +func (_this Config) Dtor_attributeActionsOnEncrypt() _dafny.Map { + return _this.Get_().(Config_Config).AttributeActionsOnEncrypt +} + +func (_this Config) Dtor_allowedUnsignedAttributes() m_Wrappers.Option { + return _this.Get_().(Config_Config).AllowedUnsignedAttributes +} + +func (_this Config) Dtor_allowedUnsignedAttributePrefix() m_Wrappers.Option { + return _this.Get_().(Config_Config).AllowedUnsignedAttributePrefix +} + +func (_this Config) Dtor_algorithmSuiteId() m_Wrappers.Option { + return _this.Get_().(Config_Config).AlgorithmSuiteId +} + +func (_this Config) Dtor_structuredEncryption() *m_StructuredEncryption.StructuredEncryptionClient { + return _this.Get_().(Config_Config).StructuredEncryption +} + +func (_this Config) Dtor_plaintextOverride() m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.PlaintextOverride { + return _this.Get_().(Config_Config).PlaintextOverride +} + +func (_this Config) Dtor_internalLegacyOverride() m_Wrappers.Option { + return _this.Get_().(Config_Config).InternalLegacyOverride +} + +func (_this Config) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case Config_Config: + { + return "AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorOperations.Config.Config" + "(" + _dafny.String(data.Version) + ", " + _dafny.String(data.CmpClient) + ", " + _dafny.String(data.LogicalTableName) + ", " + _dafny.String(data.PartitionKeyName) + ", " + _dafny.String(data.SortKeyName) + ", " + _dafny.String(data.Cmm) + ", " + _dafny.String(data.AttributeActionsOnEncrypt) + ", " + _dafny.String(data.AllowedUnsignedAttributes) + ", " + _dafny.String(data.AllowedUnsignedAttributePrefix) + ", " + _dafny.String(data.AlgorithmSuiteId) + ", " + _dafny.String(data.StructuredEncryption) + ", " + _dafny.String(data.PlaintextOverride) + ", " + _dafny.String(data.InternalLegacyOverride) + ")" + } + default: + { + return "" + } + } +} + +func (_this Config) Equals(other Config) bool { + switch data1 := _this.Get_().(type) { + case Config_Config: + { + data2, ok := other.Get_().(Config_Config) + return ok && data1.Version == data2.Version && data1.CmpClient == data2.CmpClient && data1.LogicalTableName.Equals(data2.LogicalTableName) && data1.PartitionKeyName.Equals(data2.PartitionKeyName) && data1.SortKeyName.Equals(data2.SortKeyName) && _dafny.AreEqual(data1.Cmm, data2.Cmm) && data1.AttributeActionsOnEncrypt.Equals(data2.AttributeActionsOnEncrypt) && data1.AllowedUnsignedAttributes.Equals(data2.AllowedUnsignedAttributes) && data1.AllowedUnsignedAttributePrefix.Equals(data2.AllowedUnsignedAttributePrefix) && data1.AlgorithmSuiteId.Equals(data2.AlgorithmSuiteId) && data1.StructuredEncryption == data2.StructuredEncryption && data1.PlaintextOverride.Equals(data2.PlaintextOverride) && data1.InternalLegacyOverride.Equals(data2.InternalLegacyOverride) + } + default: + { + return false // unexpected + } + } +} + +func (_this Config) EqualsGeneric(other interface{}) bool { + typed, ok := other.(Config) + return ok && _this.Equals(typed) +} + +func Type_Config_() _dafny.TypeDescriptor { + return type_Config_{} +} + +type type_Config_ struct { +} + +func (_this type_Config_) Default() interface{} { + return Companion_Config_.Default() +} + +func (_this type_Config_) String() string { + return "AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorOperations.Config" +} +func (_this Config) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = Config{} + +// End of datatype Config + +// Definition of class ValidConfig +type ValidConfig struct { +} + +func New_ValidConfig_() *ValidConfig { + _this := ValidConfig{} + + return &_this +} + +type CompanionStruct_ValidConfig_ struct { +} + +var Companion_ValidConfig_ = CompanionStruct_ValidConfig_{} + +func (*ValidConfig) String() string { + return "AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorOperations.ValidConfig" +} + +// End of class ValidConfig + +func Type_ValidConfig_() _dafny.TypeDescriptor { + return type_ValidConfig_{} +} + +type type_ValidConfig_ struct { +} + +func (_this type_ValidConfig_) Default() interface{} { + return Companion_Config_.Default() +} + +func (_this type_ValidConfig_) String() string { + return "AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorOperations.ValidConfig" +} diff --git a/customer-preview/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes/AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.go b/customer-preview/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes/AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.go new file mode 100644 index 000000000..e7881419c --- /dev/null +++ b/customer-preview/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes/AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.go @@ -0,0 +1,1557 @@ +// Package AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes +// Dafny module AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes compiled into Go + +package AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes + +import ( + os "os" + + m_ComAmazonawsDynamodbTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/ComAmazonawsDynamodbTypes" + m_Com_Amazonaws_Dynamodb "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/Com_Amazonaws_Dynamodb" + m_ComAmazonawsKmsTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/ComAmazonawsKmsTypes" + m_Com_Amazonaws_Kms "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/Com_Amazonaws_Kms" + m_AlgorithmSuites "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AlgorithmSuites" + m_AwsArnParsing "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsArnParsing" + m_AwsCryptographyKeyStoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreOperations" + m_AwsCryptographyKeyStoreTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreTypes" + m_AwsCryptographyMaterialProvidersOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersOperations" + m_AwsCryptographyMaterialProvidersTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersTypes" + m_AwsKmsDiscoveryKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsDiscoveryKeyring" + m_AwsKmsEcdhKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsEcdhKeyring" + m_AwsKmsHierarchicalKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsHierarchicalKeyring" + m_AwsKmsKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsKeyring" + m_AwsKmsMrkAreUnique "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkAreUnique" + m_AwsKmsMrkDiscoveryKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkDiscoveryKeyring" + m_AwsKmsMrkKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkKeyring" + m_AwsKmsMrkMatchForDecrypt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkMatchForDecrypt" + m_AwsKmsRsaKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsRsaKeyring" + m_AwsKmsUtils "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsUtils" + m_CMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CMM" + m_CacheConstants "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CacheConstants" + m_CanonicalEncryptionContext "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CanonicalEncryptionContext" + m_Commitment "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Commitment" + m_Constants "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Constants" + m_CreateKeyStoreTable "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeyStoreTable" + m_CreateKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeys" + m_DDBKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DDBKeystoreOperations" + m_DefaultCMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DefaultCMM" + m_DefaultClientSupplier "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DefaultClientSupplier" + m_Defaults "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Defaults" + m_DiscoveryMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DiscoveryMultiKeyring" + m_EcdhEdkWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/EcdhEdkWrapping" + m_EdkWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/EdkWrapping" + m_ErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/ErrorMessages" + m_GetKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/GetKeys" + m_IntermediateKeyWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/IntermediateKeyWrapping" + m_KMSKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KMSKeystoreOperations" + m_KeyStore "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStore" + m_KeyStoreErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStoreErrorMessages" + m_Keyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Keyring" + m_KmsArn "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KmsArn" + m_LocalCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/LocalCMC" + m_MaterialProviders "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MaterialProviders" + m_MaterialWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MaterialWrapping" + m_Materials "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Materials" + m_MrkAwareDiscoveryMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MrkAwareDiscoveryMultiKeyring" + m_MrkAwareStrictMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MrkAwareStrictMultiKeyring" + m_MultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MultiKeyring" + m_RawAESKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawAESKeyring" + m_RawECDHKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawECDHKeyring" + m_RawRSAKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawRSAKeyring" + m_RequiredEncryptionContextCMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RequiredEncryptionContextCMM" + m_StormTracker "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StormTracker" + m_StormTrackingCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StormTrackingCMC" + m_StrictMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StrictMultiKeyring" + m_Structure "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Structure" + m_SynchronizedLocalCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/SynchronizedLocalCMC" + m_Utils "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Utils" + m_AtomicPrimitives "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AtomicPrimitives" + m_AwsCryptographyPrimitivesOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesOperations" + m_AwsCryptographyPrimitivesTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesTypes" + m_Digest "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Digest" + m_HKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/HKDF" + m_KdfCtr "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/KdfCtr" + m_Random "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Random" + m_WrappedHKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHKDF" + m_WrappedHMAC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHMAC" + m_Actions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Actions" + m_Base64 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64" + m_Base64Lemmas "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64Lemmas" + m_BoundedInts "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/BoundedInts" + m_DivInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternals" + m_DivInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternalsNonlinear" + m_DivMod "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivMod" + m_FileIO "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FileIO" + m_FloatCompare "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FloatCompare" + m_Functions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Functions" + m_GeneralInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GeneralInternals" + m_GetOpt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GetOpt" + m_HexStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/HexStrings" + m_Logarithm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Logarithm" + m__Math "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Math_" + m_ModInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternals" + m_ModInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternalsNonlinear" + m_Mul "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Mul" + m_MulInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternals" + m_MulInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternalsNonlinear" + m_Power "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Power" + m_Relations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Relations" + m_Seq "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq" + m_Seq_MergeSort "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq_MergeSort" + m_Sorting "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Sorting" + m_StandardLibrary "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary" + m_StandardLibraryInterop "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibraryInterop" + m_StandardLibrary_Sequence "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_Sequence" + m_StandardLibrary_String "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_String" + m_StandardLibrary_UInt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_UInt" + m_Streams "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Streams" + m_UnicodeStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UnicodeStrings" + m__Unicode "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Unicode_" + m_Utf16EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf16EncodingForm" + m_Utf8EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf8EncodingForm" + m_Wrappers "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers" + m_AwsCryptographyDbEncryptionSdkDynamoDbTypes "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbTypes" + m_AwsCryptographyDbEncryptionSdkStructuredEncryptionOperations "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkStructuredEncryptionOperations" + m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes" + m_Canonize "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/Canonize" + m__Maps "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/Maps_" + m_Sets "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/Sets" + m_SortCanon "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/SortCanon" + m_StructuredEncryption "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryption" + m_StructuredEncryptionCrypt "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionCrypt" + m_StructuredEncryptionFooter "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionFooter" + m_StructuredEncryptionHeader "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionHeader" + m_StructuredEncryptionPaths "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionPaths" + m_StructuredEncryptionUtil "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionUtil" + m__System "github.com/dafny-lang/DafnyRuntimeGo/v4/System_" + _dafny "github.com/dafny-lang/DafnyRuntimeGo/v4/dafny" +) + +var _ = os.Args +var _ _dafny.Dummy__ +var _ m__System.Dummy__ +var _ m_Wrappers.Dummy__ +var _ m_BoundedInts.Dummy__ +var _ m_StandardLibrary_UInt.Dummy__ +var _ m_StandardLibrary_Sequence.Dummy__ +var _ m_StandardLibrary_String.Dummy__ +var _ m_StandardLibrary.Dummy__ +var _ m_AwsCryptographyPrimitivesTypes.Dummy__ +var _ m_Random.Dummy__ +var _ m_Digest.Dummy__ +var _ m_WrappedHMAC.Dummy__ +var _ m_HKDF.Dummy__ +var _ m_WrappedHKDF.Dummy__ +var _ m_KdfCtr.Dummy__ +var _ m_AwsCryptographyPrimitivesOperations.Dummy__ +var _ m_AtomicPrimitives.Dummy__ +var _ m_ComAmazonawsDynamodbTypes.Dummy__ +var _ m_ComAmazonawsKmsTypes.Dummy__ +var _ m_AwsCryptographyKeyStoreTypes.Dummy__ +var _ m_AwsCryptographyMaterialProvidersTypes.Dummy__ +var _ m_Base64.Dummy__ +var _ m_AlgorithmSuites.Dummy__ +var _ m_Materials.Dummy__ +var _ m_Keyring.Dummy__ +var _ m_Relations.Dummy__ +var _ m_Seq_MergeSort.Dummy__ +var _ m__Math.Dummy__ +var _ m_Seq.Dummy__ +var _ m_MultiKeyring.Dummy__ +var _ m_AwsArnParsing.Dummy__ +var _ m_AwsKmsMrkAreUnique.Dummy__ +var _ m_Actions.Dummy__ +var _ m_AwsKmsMrkMatchForDecrypt.Dummy__ +var _ m_AwsKmsUtils.Dummy__ +var _ m_Constants.Dummy__ +var _ m_MaterialWrapping.Dummy__ +var _ m_CanonicalEncryptionContext.Dummy__ +var _ m_IntermediateKeyWrapping.Dummy__ +var _ m_EdkWrapping.Dummy__ +var _ m_ErrorMessages.Dummy__ +var _ m_AwsKmsKeyring.Dummy__ +var _ m_StrictMultiKeyring.Dummy__ +var _ m_AwsKmsDiscoveryKeyring.Dummy__ +var _ m_Com_Amazonaws_Kms.Dummy__ +var _ m_Com_Amazonaws_Dynamodb.Dummy__ +var _ m_DiscoveryMultiKeyring.Dummy__ +var _ m_AwsKmsMrkDiscoveryKeyring.Dummy__ +var _ m_MrkAwareDiscoveryMultiKeyring.Dummy__ +var _ m_AwsKmsMrkKeyring.Dummy__ +var _ m_MrkAwareStrictMultiKeyring.Dummy__ +var _ m_LocalCMC.Dummy__ +var _ m_SynchronizedLocalCMC.Dummy__ +var _ m_StormTracker.Dummy__ +var _ m_StormTrackingCMC.Dummy__ +var _ m_CacheConstants.Dummy__ +var _ m_AwsKmsHierarchicalKeyring.Dummy__ +var _ m_AwsKmsRsaKeyring.Dummy__ +var _ m_EcdhEdkWrapping.Dummy__ +var _ m_RawECDHKeyring.Dummy__ +var _ m_AwsKmsEcdhKeyring.Dummy__ +var _ m_RawAESKeyring.Dummy__ +var _ m_RawRSAKeyring.Dummy__ +var _ m_CMM.Dummy__ +var _ m_Defaults.Dummy__ +var _ m_Commitment.Dummy__ +var _ m_DefaultCMM.Dummy__ +var _ m_DefaultClientSupplier.Dummy__ +var _ m_Utils.Dummy__ +var _ m_RequiredEncryptionContextCMM.Dummy__ +var _ m_AwsCryptographyMaterialProvidersOperations.Dummy__ +var _ m_MaterialProviders.Dummy__ +var _ m_KeyStoreErrorMessages.Dummy__ +var _ m_KmsArn.Dummy__ +var _ m_Structure.Dummy__ +var _ m_KMSKeystoreOperations.Dummy__ +var _ m_DDBKeystoreOperations.Dummy__ +var _ m_CreateKeys.Dummy__ +var _ m_CreateKeyStoreTable.Dummy__ +var _ m_GetKeys.Dummy__ +var _ m_AwsCryptographyKeyStoreOperations.Dummy__ +var _ m_KeyStore.Dummy__ +var _ m__Unicode.Dummy__ +var _ m_Functions.Dummy__ +var _ m_Utf8EncodingForm.Dummy__ +var _ m_Utf16EncodingForm.Dummy__ +var _ m_UnicodeStrings.Dummy__ +var _ m_FileIO.Dummy__ +var _ m_GeneralInternals.Dummy__ +var _ m_MulInternalsNonlinear.Dummy__ +var _ m_MulInternals.Dummy__ +var _ m_Mul.Dummy__ +var _ m_ModInternalsNonlinear.Dummy__ +var _ m_DivInternalsNonlinear.Dummy__ +var _ m_ModInternals.Dummy__ +var _ m_DivInternals.Dummy__ +var _ m_DivMod.Dummy__ +var _ m_Power.Dummy__ +var _ m_Logarithm.Dummy__ +var _ m_StandardLibraryInterop.Dummy__ +var _ m_Streams.Dummy__ +var _ m_Sorting.Dummy__ +var _ m_HexStrings.Dummy__ +var _ m_GetOpt.Dummy__ +var _ m_FloatCompare.Dummy__ +var _ m_Base64Lemmas.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Dummy__ +var _ m_StructuredEncryptionUtil.Dummy__ +var _ m_Sets.Dummy__ +var _ m_StructuredEncryptionPaths.Dummy__ +var _ m_StructuredEncryptionHeader.Dummy__ +var _ m_StructuredEncryptionFooter.Dummy__ +var _ m_SortCanon.Dummy__ +var _ m_Canonize.Dummy__ +var _ m_StructuredEncryptionCrypt.Dummy__ +var _ m__Maps.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkStructuredEncryptionOperations.Dummy__ +var _ m_StructuredEncryption.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Dummy__ + +type Dummy__ struct{} + +// Definition of class Default__ +type Default__ struct { + dummy byte +} + +func New_Default___() *Default__ { + _this := Default__{} + + return &_this +} + +type CompanionStruct_Default___ struct { +} + +var Companion_Default___ = CompanionStruct_Default___{} + +func (_this *Default__) Equals(other *Default__) bool { + return _this == other +} + +func (_this *Default__) EqualsGeneric(x interface{}) bool { + other, ok := x.(*Default__) + return ok && _this.Equals(other) +} + +func (*Default__) String() string { + return "AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Default__" +} +func (_this *Default__) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = &Default__{} + +func (_static *CompanionStruct_Default___) IsDummySubsetType(x _dafny.Int) bool { + return (x).Sign() == 1 +} + +// End of class Default__ + +// Definition of datatype DafnyCallEvent +type DafnyCallEvent struct { + Data_DafnyCallEvent_ +} + +func (_this DafnyCallEvent) Get_() Data_DafnyCallEvent_ { + return _this.Data_DafnyCallEvent_ +} + +type Data_DafnyCallEvent_ interface { + isDafnyCallEvent() +} + +type CompanionStruct_DafnyCallEvent_ struct { +} + +var Companion_DafnyCallEvent_ = CompanionStruct_DafnyCallEvent_{} + +type DafnyCallEvent_DafnyCallEvent struct { + Input interface{} + Output interface{} +} + +func (DafnyCallEvent_DafnyCallEvent) isDafnyCallEvent() {} + +func (CompanionStruct_DafnyCallEvent_) Create_DafnyCallEvent_(Input interface{}, Output interface{}) DafnyCallEvent { + return DafnyCallEvent{DafnyCallEvent_DafnyCallEvent{Input, Output}} +} + +func (_this DafnyCallEvent) Is_DafnyCallEvent() bool { + _, ok := _this.Get_().(DafnyCallEvent_DafnyCallEvent) + return ok +} + +func (CompanionStruct_DafnyCallEvent_) Default(_default_I interface{}, _default_O interface{}) DafnyCallEvent { + return Companion_DafnyCallEvent_.Create_DafnyCallEvent_(_default_I, _default_O) +} + +func (_this DafnyCallEvent) Dtor_input() interface{} { + return _this.Get_().(DafnyCallEvent_DafnyCallEvent).Input +} + +func (_this DafnyCallEvent) Dtor_output() interface{} { + return _this.Get_().(DafnyCallEvent_DafnyCallEvent).Output +} + +func (_this DafnyCallEvent) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case DafnyCallEvent_DafnyCallEvent: + { + return "AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.DafnyCallEvent.DafnyCallEvent" + "(" + _dafny.String(data.Input) + ", " + _dafny.String(data.Output) + ")" + } + default: + { + return "" + } + } +} + +func (_this DafnyCallEvent) Equals(other DafnyCallEvent) bool { + switch data1 := _this.Get_().(type) { + case DafnyCallEvent_DafnyCallEvent: + { + data2, ok := other.Get_().(DafnyCallEvent_DafnyCallEvent) + return ok && _dafny.AreEqual(data1.Input, data2.Input) && _dafny.AreEqual(data1.Output, data2.Output) + } + default: + { + return false // unexpected + } + } +} + +func (_this DafnyCallEvent) EqualsGeneric(other interface{}) bool { + typed, ok := other.(DafnyCallEvent) + return ok && _this.Equals(typed) +} + +func Type_DafnyCallEvent_(Type_I_ _dafny.TypeDescriptor, Type_O_ _dafny.TypeDescriptor) _dafny.TypeDescriptor { + return type_DafnyCallEvent_{Type_I_, Type_O_} +} + +type type_DafnyCallEvent_ struct { + Type_I_ _dafny.TypeDescriptor + Type_O_ _dafny.TypeDescriptor +} + +func (_this type_DafnyCallEvent_) Default() interface{} { + Type_I_ := _this.Type_I_ + _ = Type_I_ + Type_O_ := _this.Type_O_ + _ = Type_O_ + return Companion_DafnyCallEvent_.Default(Type_I_.Default(), Type_O_.Default()) +} + +func (_this type_DafnyCallEvent_) String() string { + return "AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.DafnyCallEvent" +} +func (_this DafnyCallEvent) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = DafnyCallEvent{} + +// End of datatype DafnyCallEvent + +// Definition of datatype DecryptItemInput +type DecryptItemInput struct { + Data_DecryptItemInput_ +} + +func (_this DecryptItemInput) Get_() Data_DecryptItemInput_ { + return _this.Data_DecryptItemInput_ +} + +type Data_DecryptItemInput_ interface { + isDecryptItemInput() +} + +type CompanionStruct_DecryptItemInput_ struct { +} + +var Companion_DecryptItemInput_ = CompanionStruct_DecryptItemInput_{} + +type DecryptItemInput_DecryptItemInput struct { + EncryptedItem _dafny.Map +} + +func (DecryptItemInput_DecryptItemInput) isDecryptItemInput() {} + +func (CompanionStruct_DecryptItemInput_) Create_DecryptItemInput_(EncryptedItem _dafny.Map) DecryptItemInput { + return DecryptItemInput{DecryptItemInput_DecryptItemInput{EncryptedItem}} +} + +func (_this DecryptItemInput) Is_DecryptItemInput() bool { + _, ok := _this.Get_().(DecryptItemInput_DecryptItemInput) + return ok +} + +func (CompanionStruct_DecryptItemInput_) Default() DecryptItemInput { + return Companion_DecryptItemInput_.Create_DecryptItemInput_(_dafny.EmptyMap) +} + +func (_this DecryptItemInput) Dtor_encryptedItem() _dafny.Map { + return _this.Get_().(DecryptItemInput_DecryptItemInput).EncryptedItem +} + +func (_this DecryptItemInput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case DecryptItemInput_DecryptItemInput: + { + return "AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.DecryptItemInput.DecryptItemInput" + "(" + _dafny.String(data.EncryptedItem) + ")" + } + default: + { + return "" + } + } +} + +func (_this DecryptItemInput) Equals(other DecryptItemInput) bool { + switch data1 := _this.Get_().(type) { + case DecryptItemInput_DecryptItemInput: + { + data2, ok := other.Get_().(DecryptItemInput_DecryptItemInput) + return ok && data1.EncryptedItem.Equals(data2.EncryptedItem) + } + default: + { + return false // unexpected + } + } +} + +func (_this DecryptItemInput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(DecryptItemInput) + return ok && _this.Equals(typed) +} + +func Type_DecryptItemInput_() _dafny.TypeDescriptor { + return type_DecryptItemInput_{} +} + +type type_DecryptItemInput_ struct { +} + +func (_this type_DecryptItemInput_) Default() interface{} { + return Companion_DecryptItemInput_.Default() +} + +func (_this type_DecryptItemInput_) String() string { + return "AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.DecryptItemInput" +} +func (_this DecryptItemInput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = DecryptItemInput{} + +// End of datatype DecryptItemInput + +// Definition of datatype DecryptItemOutput +type DecryptItemOutput struct { + Data_DecryptItemOutput_ +} + +func (_this DecryptItemOutput) Get_() Data_DecryptItemOutput_ { + return _this.Data_DecryptItemOutput_ +} + +type Data_DecryptItemOutput_ interface { + isDecryptItemOutput() +} + +type CompanionStruct_DecryptItemOutput_ struct { +} + +var Companion_DecryptItemOutput_ = CompanionStruct_DecryptItemOutput_{} + +type DecryptItemOutput_DecryptItemOutput struct { + PlaintextItem _dafny.Map + ParsedHeader m_Wrappers.Option +} + +func (DecryptItemOutput_DecryptItemOutput) isDecryptItemOutput() {} + +func (CompanionStruct_DecryptItemOutput_) Create_DecryptItemOutput_(PlaintextItem _dafny.Map, ParsedHeader m_Wrappers.Option) DecryptItemOutput { + return DecryptItemOutput{DecryptItemOutput_DecryptItemOutput{PlaintextItem, ParsedHeader}} +} + +func (_this DecryptItemOutput) Is_DecryptItemOutput() bool { + _, ok := _this.Get_().(DecryptItemOutput_DecryptItemOutput) + return ok +} + +func (CompanionStruct_DecryptItemOutput_) Default() DecryptItemOutput { + return Companion_DecryptItemOutput_.Create_DecryptItemOutput_(_dafny.EmptyMap, m_Wrappers.Companion_Option_.Default()) +} + +func (_this DecryptItemOutput) Dtor_plaintextItem() _dafny.Map { + return _this.Get_().(DecryptItemOutput_DecryptItemOutput).PlaintextItem +} + +func (_this DecryptItemOutput) Dtor_parsedHeader() m_Wrappers.Option { + return _this.Get_().(DecryptItemOutput_DecryptItemOutput).ParsedHeader +} + +func (_this DecryptItemOutput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case DecryptItemOutput_DecryptItemOutput: + { + return "AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.DecryptItemOutput.DecryptItemOutput" + "(" + _dafny.String(data.PlaintextItem) + ", " + _dafny.String(data.ParsedHeader) + ")" + } + default: + { + return "" + } + } +} + +func (_this DecryptItemOutput) Equals(other DecryptItemOutput) bool { + switch data1 := _this.Get_().(type) { + case DecryptItemOutput_DecryptItemOutput: + { + data2, ok := other.Get_().(DecryptItemOutput_DecryptItemOutput) + return ok && data1.PlaintextItem.Equals(data2.PlaintextItem) && data1.ParsedHeader.Equals(data2.ParsedHeader) + } + default: + { + return false // unexpected + } + } +} + +func (_this DecryptItemOutput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(DecryptItemOutput) + return ok && _this.Equals(typed) +} + +func Type_DecryptItemOutput_() _dafny.TypeDescriptor { + return type_DecryptItemOutput_{} +} + +type type_DecryptItemOutput_ struct { +} + +func (_this type_DecryptItemOutput_) Default() interface{} { + return Companion_DecryptItemOutput_.Default() +} + +func (_this type_DecryptItemOutput_) String() string { + return "AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.DecryptItemOutput" +} +func (_this DecryptItemOutput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = DecryptItemOutput{} + +// End of datatype DecryptItemOutput + +// Definition of class IDynamoDbItemEncryptorClientCallHistory +type IDynamoDbItemEncryptorClientCallHistory struct { + dummy byte +} + +func New_IDynamoDbItemEncryptorClientCallHistory_() *IDynamoDbItemEncryptorClientCallHistory { + _this := IDynamoDbItemEncryptorClientCallHistory{} + + return &_this +} + +type CompanionStruct_IDynamoDbItemEncryptorClientCallHistory_ struct { +} + +var Companion_IDynamoDbItemEncryptorClientCallHistory_ = CompanionStruct_IDynamoDbItemEncryptorClientCallHistory_{} + +func (_this *IDynamoDbItemEncryptorClientCallHistory) Equals(other *IDynamoDbItemEncryptorClientCallHistory) bool { + return _this == other +} + +func (_this *IDynamoDbItemEncryptorClientCallHistory) EqualsGeneric(x interface{}) bool { + other, ok := x.(*IDynamoDbItemEncryptorClientCallHistory) + return ok && _this.Equals(other) +} + +func (*IDynamoDbItemEncryptorClientCallHistory) String() string { + return "AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.IDynamoDbItemEncryptorClientCallHistory" +} + +func Type_IDynamoDbItemEncryptorClientCallHistory_() _dafny.TypeDescriptor { + return type_IDynamoDbItemEncryptorClientCallHistory_{} +} + +type type_IDynamoDbItemEncryptorClientCallHistory_ struct { +} + +func (_this type_IDynamoDbItemEncryptorClientCallHistory_) Default() interface{} { + return (*IDynamoDbItemEncryptorClientCallHistory)(nil) +} + +func (_this type_IDynamoDbItemEncryptorClientCallHistory_) String() string { + return "AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.IDynamoDbItemEncryptorClientCallHistory" +} +func (_this *IDynamoDbItemEncryptorClientCallHistory) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = &IDynamoDbItemEncryptorClientCallHistory{} + +// End of class IDynamoDbItemEncryptorClientCallHistory + +// Definition of trait IDynamoDbItemEncryptorClient +type IDynamoDbItemEncryptorClient interface { + String() string + EncryptItem(input EncryptItemInput) m_Wrappers.Result + DecryptItem(input DecryptItemInput) m_Wrappers.Result +} +type CompanionStruct_IDynamoDbItemEncryptorClient_ struct { + TraitID_ *_dafny.TraitID +} + +var Companion_IDynamoDbItemEncryptorClient_ = CompanionStruct_IDynamoDbItemEncryptorClient_{ + TraitID_: &_dafny.TraitID{}, +} + +func (CompanionStruct_IDynamoDbItemEncryptorClient_) CastTo_(x interface{}) IDynamoDbItemEncryptorClient { + var t IDynamoDbItemEncryptorClient + t, _ = x.(IDynamoDbItemEncryptorClient) + return t +} + +// End of trait IDynamoDbItemEncryptorClient + +// Definition of datatype DynamoDbItemEncryptorConfig +type DynamoDbItemEncryptorConfig struct { + Data_DynamoDbItemEncryptorConfig_ +} + +func (_this DynamoDbItemEncryptorConfig) Get_() Data_DynamoDbItemEncryptorConfig_ { + return _this.Data_DynamoDbItemEncryptorConfig_ +} + +type Data_DynamoDbItemEncryptorConfig_ interface { + isDynamoDbItemEncryptorConfig() +} + +type CompanionStruct_DynamoDbItemEncryptorConfig_ struct { +} + +var Companion_DynamoDbItemEncryptorConfig_ = CompanionStruct_DynamoDbItemEncryptorConfig_{} + +type DynamoDbItemEncryptorConfig_DynamoDbItemEncryptorConfig struct { + LogicalTableName _dafny.Sequence + PartitionKeyName _dafny.Sequence + SortKeyName m_Wrappers.Option + AttributeActionsOnEncrypt _dafny.Map + AllowedUnsignedAttributes m_Wrappers.Option + AllowedUnsignedAttributePrefix m_Wrappers.Option + AlgorithmSuiteId m_Wrappers.Option + Keyring m_Wrappers.Option + Cmm m_Wrappers.Option + LegacyOverride m_Wrappers.Option + PlaintextOverride m_Wrappers.Option +} + +func (DynamoDbItemEncryptorConfig_DynamoDbItemEncryptorConfig) isDynamoDbItemEncryptorConfig() {} + +func (CompanionStruct_DynamoDbItemEncryptorConfig_) Create_DynamoDbItemEncryptorConfig_(LogicalTableName _dafny.Sequence, PartitionKeyName _dafny.Sequence, SortKeyName m_Wrappers.Option, AttributeActionsOnEncrypt _dafny.Map, AllowedUnsignedAttributes m_Wrappers.Option, AllowedUnsignedAttributePrefix m_Wrappers.Option, AlgorithmSuiteId m_Wrappers.Option, Keyring m_Wrappers.Option, Cmm m_Wrappers.Option, LegacyOverride m_Wrappers.Option, PlaintextOverride m_Wrappers.Option) DynamoDbItemEncryptorConfig { + return DynamoDbItemEncryptorConfig{DynamoDbItemEncryptorConfig_DynamoDbItemEncryptorConfig{LogicalTableName, PartitionKeyName, SortKeyName, AttributeActionsOnEncrypt, AllowedUnsignedAttributes, AllowedUnsignedAttributePrefix, AlgorithmSuiteId, Keyring, Cmm, LegacyOverride, PlaintextOverride}} +} + +func (_this DynamoDbItemEncryptorConfig) Is_DynamoDbItemEncryptorConfig() bool { + _, ok := _this.Get_().(DynamoDbItemEncryptorConfig_DynamoDbItemEncryptorConfig) + return ok +} + +func (CompanionStruct_DynamoDbItemEncryptorConfig_) Default() DynamoDbItemEncryptorConfig { + return Companion_DynamoDbItemEncryptorConfig_.Create_DynamoDbItemEncryptorConfig_(_dafny.EmptySeq.SetString(), _dafny.EmptySeq.SetString(), m_Wrappers.Companion_Option_.Default(), _dafny.EmptyMap, m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this DynamoDbItemEncryptorConfig) Dtor_logicalTableName() _dafny.Sequence { + return _this.Get_().(DynamoDbItemEncryptorConfig_DynamoDbItemEncryptorConfig).LogicalTableName +} + +func (_this DynamoDbItemEncryptorConfig) Dtor_partitionKeyName() _dafny.Sequence { + return _this.Get_().(DynamoDbItemEncryptorConfig_DynamoDbItemEncryptorConfig).PartitionKeyName +} + +func (_this DynamoDbItemEncryptorConfig) Dtor_sortKeyName() m_Wrappers.Option { + return _this.Get_().(DynamoDbItemEncryptorConfig_DynamoDbItemEncryptorConfig).SortKeyName +} + +func (_this DynamoDbItemEncryptorConfig) Dtor_attributeActionsOnEncrypt() _dafny.Map { + return _this.Get_().(DynamoDbItemEncryptorConfig_DynamoDbItemEncryptorConfig).AttributeActionsOnEncrypt +} + +func (_this DynamoDbItemEncryptorConfig) Dtor_allowedUnsignedAttributes() m_Wrappers.Option { + return _this.Get_().(DynamoDbItemEncryptorConfig_DynamoDbItemEncryptorConfig).AllowedUnsignedAttributes +} + +func (_this DynamoDbItemEncryptorConfig) Dtor_allowedUnsignedAttributePrefix() m_Wrappers.Option { + return _this.Get_().(DynamoDbItemEncryptorConfig_DynamoDbItemEncryptorConfig).AllowedUnsignedAttributePrefix +} + +func (_this DynamoDbItemEncryptorConfig) Dtor_algorithmSuiteId() m_Wrappers.Option { + return _this.Get_().(DynamoDbItemEncryptorConfig_DynamoDbItemEncryptorConfig).AlgorithmSuiteId +} + +func (_this DynamoDbItemEncryptorConfig) Dtor_keyring() m_Wrappers.Option { + return _this.Get_().(DynamoDbItemEncryptorConfig_DynamoDbItemEncryptorConfig).Keyring +} + +func (_this DynamoDbItemEncryptorConfig) Dtor_cmm() m_Wrappers.Option { + return _this.Get_().(DynamoDbItemEncryptorConfig_DynamoDbItemEncryptorConfig).Cmm +} + +func (_this DynamoDbItemEncryptorConfig) Dtor_legacyOverride() m_Wrappers.Option { + return _this.Get_().(DynamoDbItemEncryptorConfig_DynamoDbItemEncryptorConfig).LegacyOverride +} + +func (_this DynamoDbItemEncryptorConfig) Dtor_plaintextOverride() m_Wrappers.Option { + return _this.Get_().(DynamoDbItemEncryptorConfig_DynamoDbItemEncryptorConfig).PlaintextOverride +} + +func (_this DynamoDbItemEncryptorConfig) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case DynamoDbItemEncryptorConfig_DynamoDbItemEncryptorConfig: + { + return "AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.DynamoDbItemEncryptorConfig.DynamoDbItemEncryptorConfig" + "(" + _dafny.String(data.LogicalTableName) + ", " + _dafny.String(data.PartitionKeyName) + ", " + _dafny.String(data.SortKeyName) + ", " + _dafny.String(data.AttributeActionsOnEncrypt) + ", " + _dafny.String(data.AllowedUnsignedAttributes) + ", " + _dafny.String(data.AllowedUnsignedAttributePrefix) + ", " + _dafny.String(data.AlgorithmSuiteId) + ", " + _dafny.String(data.Keyring) + ", " + _dafny.String(data.Cmm) + ", " + _dafny.String(data.LegacyOverride) + ", " + _dafny.String(data.PlaintextOverride) + ")" + } + default: + { + return "" + } + } +} + +func (_this DynamoDbItemEncryptorConfig) Equals(other DynamoDbItemEncryptorConfig) bool { + switch data1 := _this.Get_().(type) { + case DynamoDbItemEncryptorConfig_DynamoDbItemEncryptorConfig: + { + data2, ok := other.Get_().(DynamoDbItemEncryptorConfig_DynamoDbItemEncryptorConfig) + return ok && data1.LogicalTableName.Equals(data2.LogicalTableName) && data1.PartitionKeyName.Equals(data2.PartitionKeyName) && data1.SortKeyName.Equals(data2.SortKeyName) && data1.AttributeActionsOnEncrypt.Equals(data2.AttributeActionsOnEncrypt) && data1.AllowedUnsignedAttributes.Equals(data2.AllowedUnsignedAttributes) && data1.AllowedUnsignedAttributePrefix.Equals(data2.AllowedUnsignedAttributePrefix) && data1.AlgorithmSuiteId.Equals(data2.AlgorithmSuiteId) && data1.Keyring.Equals(data2.Keyring) && data1.Cmm.Equals(data2.Cmm) && data1.LegacyOverride.Equals(data2.LegacyOverride) && data1.PlaintextOverride.Equals(data2.PlaintextOverride) + } + default: + { + return false // unexpected + } + } +} + +func (_this DynamoDbItemEncryptorConfig) EqualsGeneric(other interface{}) bool { + typed, ok := other.(DynamoDbItemEncryptorConfig) + return ok && _this.Equals(typed) +} + +func Type_DynamoDbItemEncryptorConfig_() _dafny.TypeDescriptor { + return type_DynamoDbItemEncryptorConfig_{} +} + +type type_DynamoDbItemEncryptorConfig_ struct { +} + +func (_this type_DynamoDbItemEncryptorConfig_) Default() interface{} { + return Companion_DynamoDbItemEncryptorConfig_.Default() +} + +func (_this type_DynamoDbItemEncryptorConfig_) String() string { + return "AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.DynamoDbItemEncryptorConfig" +} +func (_this DynamoDbItemEncryptorConfig) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = DynamoDbItemEncryptorConfig{} + +// End of datatype DynamoDbItemEncryptorConfig + +// Definition of datatype EncryptItemInput +type EncryptItemInput struct { + Data_EncryptItemInput_ +} + +func (_this EncryptItemInput) Get_() Data_EncryptItemInput_ { + return _this.Data_EncryptItemInput_ +} + +type Data_EncryptItemInput_ interface { + isEncryptItemInput() +} + +type CompanionStruct_EncryptItemInput_ struct { +} + +var Companion_EncryptItemInput_ = CompanionStruct_EncryptItemInput_{} + +type EncryptItemInput_EncryptItemInput struct { + PlaintextItem _dafny.Map +} + +func (EncryptItemInput_EncryptItemInput) isEncryptItemInput() {} + +func (CompanionStruct_EncryptItemInput_) Create_EncryptItemInput_(PlaintextItem _dafny.Map) EncryptItemInput { + return EncryptItemInput{EncryptItemInput_EncryptItemInput{PlaintextItem}} +} + +func (_this EncryptItemInput) Is_EncryptItemInput() bool { + _, ok := _this.Get_().(EncryptItemInput_EncryptItemInput) + return ok +} + +func (CompanionStruct_EncryptItemInput_) Default() EncryptItemInput { + return Companion_EncryptItemInput_.Create_EncryptItemInput_(_dafny.EmptyMap) +} + +func (_this EncryptItemInput) Dtor_plaintextItem() _dafny.Map { + return _this.Get_().(EncryptItemInput_EncryptItemInput).PlaintextItem +} + +func (_this EncryptItemInput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case EncryptItemInput_EncryptItemInput: + { + return "AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.EncryptItemInput.EncryptItemInput" + "(" + _dafny.String(data.PlaintextItem) + ")" + } + default: + { + return "" + } + } +} + +func (_this EncryptItemInput) Equals(other EncryptItemInput) bool { + switch data1 := _this.Get_().(type) { + case EncryptItemInput_EncryptItemInput: + { + data2, ok := other.Get_().(EncryptItemInput_EncryptItemInput) + return ok && data1.PlaintextItem.Equals(data2.PlaintextItem) + } + default: + { + return false // unexpected + } + } +} + +func (_this EncryptItemInput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(EncryptItemInput) + return ok && _this.Equals(typed) +} + +func Type_EncryptItemInput_() _dafny.TypeDescriptor { + return type_EncryptItemInput_{} +} + +type type_EncryptItemInput_ struct { +} + +func (_this type_EncryptItemInput_) Default() interface{} { + return Companion_EncryptItemInput_.Default() +} + +func (_this type_EncryptItemInput_) String() string { + return "AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.EncryptItemInput" +} +func (_this EncryptItemInput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = EncryptItemInput{} + +// End of datatype EncryptItemInput + +// Definition of datatype EncryptItemOutput +type EncryptItemOutput struct { + Data_EncryptItemOutput_ +} + +func (_this EncryptItemOutput) Get_() Data_EncryptItemOutput_ { + return _this.Data_EncryptItemOutput_ +} + +type Data_EncryptItemOutput_ interface { + isEncryptItemOutput() +} + +type CompanionStruct_EncryptItemOutput_ struct { +} + +var Companion_EncryptItemOutput_ = CompanionStruct_EncryptItemOutput_{} + +type EncryptItemOutput_EncryptItemOutput struct { + EncryptedItem _dafny.Map + ParsedHeader m_Wrappers.Option +} + +func (EncryptItemOutput_EncryptItemOutput) isEncryptItemOutput() {} + +func (CompanionStruct_EncryptItemOutput_) Create_EncryptItemOutput_(EncryptedItem _dafny.Map, ParsedHeader m_Wrappers.Option) EncryptItemOutput { + return EncryptItemOutput{EncryptItemOutput_EncryptItemOutput{EncryptedItem, ParsedHeader}} +} + +func (_this EncryptItemOutput) Is_EncryptItemOutput() bool { + _, ok := _this.Get_().(EncryptItemOutput_EncryptItemOutput) + return ok +} + +func (CompanionStruct_EncryptItemOutput_) Default() EncryptItemOutput { + return Companion_EncryptItemOutput_.Create_EncryptItemOutput_(_dafny.EmptyMap, m_Wrappers.Companion_Option_.Default()) +} + +func (_this EncryptItemOutput) Dtor_encryptedItem() _dafny.Map { + return _this.Get_().(EncryptItemOutput_EncryptItemOutput).EncryptedItem +} + +func (_this EncryptItemOutput) Dtor_parsedHeader() m_Wrappers.Option { + return _this.Get_().(EncryptItemOutput_EncryptItemOutput).ParsedHeader +} + +func (_this EncryptItemOutput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case EncryptItemOutput_EncryptItemOutput: + { + return "AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.EncryptItemOutput.EncryptItemOutput" + "(" + _dafny.String(data.EncryptedItem) + ", " + _dafny.String(data.ParsedHeader) + ")" + } + default: + { + return "" + } + } +} + +func (_this EncryptItemOutput) Equals(other EncryptItemOutput) bool { + switch data1 := _this.Get_().(type) { + case EncryptItemOutput_EncryptItemOutput: + { + data2, ok := other.Get_().(EncryptItemOutput_EncryptItemOutput) + return ok && data1.EncryptedItem.Equals(data2.EncryptedItem) && data1.ParsedHeader.Equals(data2.ParsedHeader) + } + default: + { + return false // unexpected + } + } +} + +func (_this EncryptItemOutput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(EncryptItemOutput) + return ok && _this.Equals(typed) +} + +func Type_EncryptItemOutput_() _dafny.TypeDescriptor { + return type_EncryptItemOutput_{} +} + +type type_EncryptItemOutput_ struct { +} + +func (_this type_EncryptItemOutput_) Default() interface{} { + return Companion_EncryptItemOutput_.Default() +} + +func (_this type_EncryptItemOutput_) String() string { + return "AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.EncryptItemOutput" +} +func (_this EncryptItemOutput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = EncryptItemOutput{} + +// End of datatype EncryptItemOutput + +// Definition of datatype ParsedHeader +type ParsedHeader struct { + Data_ParsedHeader_ +} + +func (_this ParsedHeader) Get_() Data_ParsedHeader_ { + return _this.Data_ParsedHeader_ +} + +type Data_ParsedHeader_ interface { + isParsedHeader() +} + +type CompanionStruct_ParsedHeader_ struct { +} + +var Companion_ParsedHeader_ = CompanionStruct_ParsedHeader_{} + +type ParsedHeader_ParsedHeader struct { + AttributeActionsOnEncrypt _dafny.Map + AlgorithmSuiteId m_AwsCryptographyMaterialProvidersTypes.DBEAlgorithmSuiteId + EncryptedDataKeys _dafny.Sequence + StoredEncryptionContext _dafny.Map + EncryptionContext _dafny.Map + SelectorContext _dafny.Map +} + +func (ParsedHeader_ParsedHeader) isParsedHeader() {} + +func (CompanionStruct_ParsedHeader_) Create_ParsedHeader_(AttributeActionsOnEncrypt _dafny.Map, AlgorithmSuiteId m_AwsCryptographyMaterialProvidersTypes.DBEAlgorithmSuiteId, EncryptedDataKeys _dafny.Sequence, StoredEncryptionContext _dafny.Map, EncryptionContext _dafny.Map, SelectorContext _dafny.Map) ParsedHeader { + return ParsedHeader{ParsedHeader_ParsedHeader{AttributeActionsOnEncrypt, AlgorithmSuiteId, EncryptedDataKeys, StoredEncryptionContext, EncryptionContext, SelectorContext}} +} + +func (_this ParsedHeader) Is_ParsedHeader() bool { + _, ok := _this.Get_().(ParsedHeader_ParsedHeader) + return ok +} + +func (CompanionStruct_ParsedHeader_) Default() ParsedHeader { + return Companion_ParsedHeader_.Create_ParsedHeader_(_dafny.EmptyMap, m_AwsCryptographyMaterialProvidersTypes.Companion_DBEAlgorithmSuiteId_.Default(), _dafny.EmptySeq, _dafny.EmptyMap, _dafny.EmptyMap, _dafny.EmptyMap) +} + +func (_this ParsedHeader) Dtor_attributeActionsOnEncrypt() _dafny.Map { + return _this.Get_().(ParsedHeader_ParsedHeader).AttributeActionsOnEncrypt +} + +func (_this ParsedHeader) Dtor_algorithmSuiteId() m_AwsCryptographyMaterialProvidersTypes.DBEAlgorithmSuiteId { + return _this.Get_().(ParsedHeader_ParsedHeader).AlgorithmSuiteId +} + +func (_this ParsedHeader) Dtor_encryptedDataKeys() _dafny.Sequence { + return _this.Get_().(ParsedHeader_ParsedHeader).EncryptedDataKeys +} + +func (_this ParsedHeader) Dtor_storedEncryptionContext() _dafny.Map { + return _this.Get_().(ParsedHeader_ParsedHeader).StoredEncryptionContext +} + +func (_this ParsedHeader) Dtor_encryptionContext() _dafny.Map { + return _this.Get_().(ParsedHeader_ParsedHeader).EncryptionContext +} + +func (_this ParsedHeader) Dtor_selectorContext() _dafny.Map { + return _this.Get_().(ParsedHeader_ParsedHeader).SelectorContext +} + +func (_this ParsedHeader) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case ParsedHeader_ParsedHeader: + { + return "AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.ParsedHeader.ParsedHeader" + "(" + _dafny.String(data.AttributeActionsOnEncrypt) + ", " + _dafny.String(data.AlgorithmSuiteId) + ", " + _dafny.String(data.EncryptedDataKeys) + ", " + _dafny.String(data.StoredEncryptionContext) + ", " + _dafny.String(data.EncryptionContext) + ", " + _dafny.String(data.SelectorContext) + ")" + } + default: + { + return "" + } + } +} + +func (_this ParsedHeader) Equals(other ParsedHeader) bool { + switch data1 := _this.Get_().(type) { + case ParsedHeader_ParsedHeader: + { + data2, ok := other.Get_().(ParsedHeader_ParsedHeader) + return ok && data1.AttributeActionsOnEncrypt.Equals(data2.AttributeActionsOnEncrypt) && data1.AlgorithmSuiteId.Equals(data2.AlgorithmSuiteId) && data1.EncryptedDataKeys.Equals(data2.EncryptedDataKeys) && data1.StoredEncryptionContext.Equals(data2.StoredEncryptionContext) && data1.EncryptionContext.Equals(data2.EncryptionContext) && data1.SelectorContext.Equals(data2.SelectorContext) + } + default: + { + return false // unexpected + } + } +} + +func (_this ParsedHeader) EqualsGeneric(other interface{}) bool { + typed, ok := other.(ParsedHeader) + return ok && _this.Equals(typed) +} + +func Type_ParsedHeader_() _dafny.TypeDescriptor { + return type_ParsedHeader_{} +} + +type type_ParsedHeader_ struct { +} + +func (_this type_ParsedHeader_) Default() interface{} { + return Companion_ParsedHeader_.Default() +} + +func (_this type_ParsedHeader_) String() string { + return "AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.ParsedHeader" +} +func (_this ParsedHeader) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = ParsedHeader{} + +// End of datatype ParsedHeader + +// Definition of datatype Error +type Error struct { + Data_Error_ +} + +func (_this Error) Get_() Data_Error_ { + return _this.Data_Error_ +} + +type Data_Error_ interface { + isError() +} + +type CompanionStruct_Error_ struct { +} + +var Companion_Error_ = CompanionStruct_Error_{} + +type Error_DynamoDbItemEncryptorException struct { + Message _dafny.Sequence +} + +func (Error_DynamoDbItemEncryptorException) isError() {} + +func (CompanionStruct_Error_) Create_DynamoDbItemEncryptorException_(Message _dafny.Sequence) Error { + return Error{Error_DynamoDbItemEncryptorException{Message}} +} + +func (_this Error) Is_DynamoDbItemEncryptorException() bool { + _, ok := _this.Get_().(Error_DynamoDbItemEncryptorException) + return ok +} + +type Error_AwsCryptographyDbEncryptionSdkDynamoDb struct { + AwsCryptographyDbEncryptionSdkDynamoDb m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Error +} + +func (Error_AwsCryptographyDbEncryptionSdkDynamoDb) isError() {} + +func (CompanionStruct_Error_) Create_AwsCryptographyDbEncryptionSdkDynamoDb_(AwsCryptographyDbEncryptionSdkDynamoDb m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Error) Error { + return Error{Error_AwsCryptographyDbEncryptionSdkDynamoDb{AwsCryptographyDbEncryptionSdkDynamoDb}} +} + +func (_this Error) Is_AwsCryptographyDbEncryptionSdkDynamoDb() bool { + _, ok := _this.Get_().(Error_AwsCryptographyDbEncryptionSdkDynamoDb) + return ok +} + +type Error_AwsCryptographyDbEncryptionSdkStructuredEncryption struct { + AwsCryptographyDbEncryptionSdkStructuredEncryption m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Error +} + +func (Error_AwsCryptographyDbEncryptionSdkStructuredEncryption) isError() {} + +func (CompanionStruct_Error_) Create_AwsCryptographyDbEncryptionSdkStructuredEncryption_(AwsCryptographyDbEncryptionSdkStructuredEncryption m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Error) Error { + return Error{Error_AwsCryptographyDbEncryptionSdkStructuredEncryption{AwsCryptographyDbEncryptionSdkStructuredEncryption}} +} + +func (_this Error) Is_AwsCryptographyDbEncryptionSdkStructuredEncryption() bool { + _, ok := _this.Get_().(Error_AwsCryptographyDbEncryptionSdkStructuredEncryption) + return ok +} + +type Error_AwsCryptographyMaterialProviders struct { + AwsCryptographyMaterialProviders m_AwsCryptographyMaterialProvidersTypes.Error +} + +func (Error_AwsCryptographyMaterialProviders) isError() {} + +func (CompanionStruct_Error_) Create_AwsCryptographyMaterialProviders_(AwsCryptographyMaterialProviders m_AwsCryptographyMaterialProvidersTypes.Error) Error { + return Error{Error_AwsCryptographyMaterialProviders{AwsCryptographyMaterialProviders}} +} + +func (_this Error) Is_AwsCryptographyMaterialProviders() bool { + _, ok := _this.Get_().(Error_AwsCryptographyMaterialProviders) + return ok +} + +type Error_AwsCryptographyPrimitives struct { + AwsCryptographyPrimitives m_AwsCryptographyPrimitivesTypes.Error +} + +func (Error_AwsCryptographyPrimitives) isError() {} + +func (CompanionStruct_Error_) Create_AwsCryptographyPrimitives_(AwsCryptographyPrimitives m_AwsCryptographyPrimitivesTypes.Error) Error { + return Error{Error_AwsCryptographyPrimitives{AwsCryptographyPrimitives}} +} + +func (_this Error) Is_AwsCryptographyPrimitives() bool { + _, ok := _this.Get_().(Error_AwsCryptographyPrimitives) + return ok +} + +type Error_ComAmazonawsDynamodb struct { + ComAmazonawsDynamodb m_ComAmazonawsDynamodbTypes.Error +} + +func (Error_ComAmazonawsDynamodb) isError() {} + +func (CompanionStruct_Error_) Create_ComAmazonawsDynamodb_(ComAmazonawsDynamodb m_ComAmazonawsDynamodbTypes.Error) Error { + return Error{Error_ComAmazonawsDynamodb{ComAmazonawsDynamodb}} +} + +func (_this Error) Is_ComAmazonawsDynamodb() bool { + _, ok := _this.Get_().(Error_ComAmazonawsDynamodb) + return ok +} + +type Error_CollectionOfErrors struct { + List _dafny.Sequence + Message _dafny.Sequence +} + +func (Error_CollectionOfErrors) isError() {} + +func (CompanionStruct_Error_) Create_CollectionOfErrors_(List _dafny.Sequence, Message _dafny.Sequence) Error { + return Error{Error_CollectionOfErrors{List, Message}} +} + +func (_this Error) Is_CollectionOfErrors() bool { + _, ok := _this.Get_().(Error_CollectionOfErrors) + return ok +} + +type Error_Opaque struct { + Obj interface{} +} + +func (Error_Opaque) isError() {} + +func (CompanionStruct_Error_) Create_Opaque_(Obj interface{}) Error { + return Error{Error_Opaque{Obj}} +} + +func (_this Error) Is_Opaque() bool { + _, ok := _this.Get_().(Error_Opaque) + return ok +} + +type Error_OpaqueWithText struct { + Obj interface{} + ObjMessage _dafny.Sequence +} + +func (Error_OpaqueWithText) isError() {} + +func (CompanionStruct_Error_) Create_OpaqueWithText_(Obj interface{}, ObjMessage _dafny.Sequence) Error { + return Error{Error_OpaqueWithText{Obj, ObjMessage}} +} + +func (_this Error) Is_OpaqueWithText() bool { + _, ok := _this.Get_().(Error_OpaqueWithText) + return ok +} + +func (CompanionStruct_Error_) Default() Error { + return Companion_Error_.Create_DynamoDbItemEncryptorException_(_dafny.EmptySeq.SetString()) +} + +func (_this Error) Dtor_message() _dafny.Sequence { + switch data := _this.Get_().(type) { + case Error_DynamoDbItemEncryptorException: + return data.Message + default: + return data.(Error_CollectionOfErrors).Message + } +} + +func (_this Error) Dtor_AwsCryptographyDbEncryptionSdkDynamoDb() m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Error { + return _this.Get_().(Error_AwsCryptographyDbEncryptionSdkDynamoDb).AwsCryptographyDbEncryptionSdkDynamoDb +} + +func (_this Error) Dtor_AwsCryptographyDbEncryptionSdkStructuredEncryption() m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Error { + return _this.Get_().(Error_AwsCryptographyDbEncryptionSdkStructuredEncryption).AwsCryptographyDbEncryptionSdkStructuredEncryption +} + +func (_this Error) Dtor_AwsCryptographyMaterialProviders() m_AwsCryptographyMaterialProvidersTypes.Error { + return _this.Get_().(Error_AwsCryptographyMaterialProviders).AwsCryptographyMaterialProviders +} + +func (_this Error) Dtor_AwsCryptographyPrimitives() m_AwsCryptographyPrimitivesTypes.Error { + return _this.Get_().(Error_AwsCryptographyPrimitives).AwsCryptographyPrimitives +} + +func (_this Error) Dtor_ComAmazonawsDynamodb() m_ComAmazonawsDynamodbTypes.Error { + return _this.Get_().(Error_ComAmazonawsDynamodb).ComAmazonawsDynamodb +} + +func (_this Error) Dtor_list() _dafny.Sequence { + return _this.Get_().(Error_CollectionOfErrors).List +} + +func (_this Error) Dtor_obj() interface{} { + switch data := _this.Get_().(type) { + case Error_Opaque: + return data.Obj + default: + return data.(Error_OpaqueWithText).Obj + } +} + +func (_this Error) Dtor_objMessage() _dafny.Sequence { + return _this.Get_().(Error_OpaqueWithText).ObjMessage +} + +func (_this Error) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case Error_DynamoDbItemEncryptorException: + { + return "AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Error.DynamoDbItemEncryptorException" + "(" + _dafny.String(data.Message) + ")" + } + case Error_AwsCryptographyDbEncryptionSdkDynamoDb: + { + return "AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Error.AwsCryptographyDbEncryptionSdkDynamoDb" + "(" + _dafny.String(data.AwsCryptographyDbEncryptionSdkDynamoDb) + ")" + } + case Error_AwsCryptographyDbEncryptionSdkStructuredEncryption: + { + return "AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Error.AwsCryptographyDbEncryptionSdkStructuredEncryption" + "(" + _dafny.String(data.AwsCryptographyDbEncryptionSdkStructuredEncryption) + ")" + } + case Error_AwsCryptographyMaterialProviders: + { + return "AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Error.AwsCryptographyMaterialProviders" + "(" + _dafny.String(data.AwsCryptographyMaterialProviders) + ")" + } + case Error_AwsCryptographyPrimitives: + { + return "AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Error.AwsCryptographyPrimitives" + "(" + _dafny.String(data.AwsCryptographyPrimitives) + ")" + } + case Error_ComAmazonawsDynamodb: + { + return "AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Error.ComAmazonawsDynamodb" + "(" + _dafny.String(data.ComAmazonawsDynamodb) + ")" + } + case Error_CollectionOfErrors: + { + return "AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Error.CollectionOfErrors" + "(" + _dafny.String(data.List) + ", " + _dafny.String(data.Message) + ")" + } + case Error_Opaque: + { + return "AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Error.Opaque" + "(" + _dafny.String(data.Obj) + ")" + } + case Error_OpaqueWithText: + { + return "AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Error.OpaqueWithText" + "(" + _dafny.String(data.Obj) + ", " + _dafny.String(data.ObjMessage) + ")" + } + default: + { + return "" + } + } +} + +func (_this Error) Equals(other Error) bool { + switch data1 := _this.Get_().(type) { + case Error_DynamoDbItemEncryptorException: + { + data2, ok := other.Get_().(Error_DynamoDbItemEncryptorException) + return ok && data1.Message.Equals(data2.Message) + } + case Error_AwsCryptographyDbEncryptionSdkDynamoDb: + { + data2, ok := other.Get_().(Error_AwsCryptographyDbEncryptionSdkDynamoDb) + return ok && data1.AwsCryptographyDbEncryptionSdkDynamoDb.Equals(data2.AwsCryptographyDbEncryptionSdkDynamoDb) + } + case Error_AwsCryptographyDbEncryptionSdkStructuredEncryption: + { + data2, ok := other.Get_().(Error_AwsCryptographyDbEncryptionSdkStructuredEncryption) + return ok && data1.AwsCryptographyDbEncryptionSdkStructuredEncryption.Equals(data2.AwsCryptographyDbEncryptionSdkStructuredEncryption) + } + case Error_AwsCryptographyMaterialProviders: + { + data2, ok := other.Get_().(Error_AwsCryptographyMaterialProviders) + return ok && data1.AwsCryptographyMaterialProviders.Equals(data2.AwsCryptographyMaterialProviders) + } + case Error_AwsCryptographyPrimitives: + { + data2, ok := other.Get_().(Error_AwsCryptographyPrimitives) + return ok && data1.AwsCryptographyPrimitives.Equals(data2.AwsCryptographyPrimitives) + } + case Error_ComAmazonawsDynamodb: + { + data2, ok := other.Get_().(Error_ComAmazonawsDynamodb) + return ok && data1.ComAmazonawsDynamodb.Equals(data2.ComAmazonawsDynamodb) + } + case Error_CollectionOfErrors: + { + data2, ok := other.Get_().(Error_CollectionOfErrors) + return ok && data1.List.Equals(data2.List) && data1.Message.Equals(data2.Message) + } + case Error_Opaque: + { + data2, ok := other.Get_().(Error_Opaque) + return ok && _dafny.AreEqual(data1.Obj, data2.Obj) + } + case Error_OpaqueWithText: + { + data2, ok := other.Get_().(Error_OpaqueWithText) + return ok && _dafny.AreEqual(data1.Obj, data2.Obj) && data1.ObjMessage.Equals(data2.ObjMessage) + } + default: + { + return false // unexpected + } + } +} + +func (_this Error) EqualsGeneric(other interface{}) bool { + typed, ok := other.(Error) + return ok && _this.Equals(typed) +} + +func Type_Error_() _dafny.TypeDescriptor { + return type_Error_{} +} + +type type_Error_ struct { +} + +func (_this type_Error_) Default() interface{} { + return Companion_Error_.Default() +} + +func (_this type_Error_) String() string { + return "AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Error" +} +func (_this Error) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = Error{} + +// End of datatype Error + +// Definition of class OpaqueError +type OpaqueError struct { +} + +func New_OpaqueError_() *OpaqueError { + _this := OpaqueError{} + + return &_this +} + +type CompanionStruct_OpaqueError_ struct { +} + +var Companion_OpaqueError_ = CompanionStruct_OpaqueError_{} + +func (*OpaqueError) String() string { + return "AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.OpaqueError" +} + +// End of class OpaqueError + +func Type_OpaqueError_() _dafny.TypeDescriptor { + return type_OpaqueError_{} +} + +type type_OpaqueError_ struct { +} + +func (_this type_OpaqueError_) Default() interface{} { + return Companion_Error_.Default() +} + +func (_this type_OpaqueError_) String() string { + return "AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.OpaqueError" +} +func (_this *CompanionStruct_OpaqueError_) Is_(__source Error) bool { + var _0_e Error = (__source) + _ = _0_e + return ((_0_e).Is_Opaque()) || ((_0_e).Is_OpaqueWithText()) +} + +// Definition of class DummySubsetType +type DummySubsetType struct { +} + +func New_DummySubsetType_() *DummySubsetType { + _this := DummySubsetType{} + + return &_this +} + +type CompanionStruct_DummySubsetType_ struct { +} + +var Companion_DummySubsetType_ = CompanionStruct_DummySubsetType_{} + +func (*DummySubsetType) String() string { + return "AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.DummySubsetType" +} +func (_this *CompanionStruct_DummySubsetType_) Witness() _dafny.Int { + return _dafny.One +} + +// End of class DummySubsetType + +func Type_DummySubsetType_() _dafny.TypeDescriptor { + return type_DummySubsetType_{} +} + +type type_DummySubsetType_ struct { +} + +func (_this type_DummySubsetType_) Default() interface{} { + return Companion_DummySubsetType_.Witness() +} + +func (_this type_DummySubsetType_) String() string { + return "AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.DummySubsetType" +} +func (_this *CompanionStruct_DummySubsetType_) Is_(__source _dafny.Int) bool { + var _1_x _dafny.Int = (__source) + _ = _1_x + return Companion_Default___.IsDummySubsetType(_1_x) +} diff --git a/customer-preview/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbOperations/AwsCryptographyDbEncryptionSdkDynamoDbOperations.go b/customer-preview/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbOperations/AwsCryptographyDbEncryptionSdkDynamoDbOperations.go new file mode 100644 index 000000000..41d15a6c9 --- /dev/null +++ b/customer-preview/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbOperations/AwsCryptographyDbEncryptionSdkDynamoDbOperations.go @@ -0,0 +1,614 @@ +// Package AwsCryptographyDbEncryptionSdkDynamoDbOperations +// Dafny module AwsCryptographyDbEncryptionSdkDynamoDbOperations compiled into Go + +package AwsCryptographyDbEncryptionSdkDynamoDbOperations + +import ( + os "os" + + m_ComAmazonawsDynamodbTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/ComAmazonawsDynamodbTypes" + m_Com_Amazonaws_Dynamodb "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/Com_Amazonaws_Dynamodb" + m_ComAmazonawsKmsTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/ComAmazonawsKmsTypes" + m_Com_Amazonaws_Kms "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/Com_Amazonaws_Kms" + m_AlgorithmSuites "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AlgorithmSuites" + m_AwsArnParsing "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsArnParsing" + m_AwsCryptographyKeyStoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreOperations" + m_AwsCryptographyKeyStoreTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreTypes" + m_AwsCryptographyMaterialProvidersOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersOperations" + m_AwsCryptographyMaterialProvidersTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersTypes" + m_AwsKmsDiscoveryKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsDiscoveryKeyring" + m_AwsKmsEcdhKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsEcdhKeyring" + m_AwsKmsHierarchicalKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsHierarchicalKeyring" + m_AwsKmsKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsKeyring" + m_AwsKmsMrkAreUnique "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkAreUnique" + m_AwsKmsMrkDiscoveryKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkDiscoveryKeyring" + m_AwsKmsMrkKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkKeyring" + m_AwsKmsMrkMatchForDecrypt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkMatchForDecrypt" + m_AwsKmsRsaKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsRsaKeyring" + m_AwsKmsUtils "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsUtils" + m_CMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CMM" + m_CacheConstants "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CacheConstants" + m_CanonicalEncryptionContext "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CanonicalEncryptionContext" + m_Commitment "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Commitment" + m_Constants "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Constants" + m_CreateKeyStoreTable "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeyStoreTable" + m_CreateKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeys" + m_DDBKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DDBKeystoreOperations" + m_DefaultCMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DefaultCMM" + m_DefaultClientSupplier "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DefaultClientSupplier" + m_Defaults "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Defaults" + m_DiscoveryMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DiscoveryMultiKeyring" + m_EcdhEdkWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/EcdhEdkWrapping" + m_EdkWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/EdkWrapping" + m_ErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/ErrorMessages" + m_GetKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/GetKeys" + m_IntermediateKeyWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/IntermediateKeyWrapping" + m_KMSKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KMSKeystoreOperations" + m_KeyStore "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStore" + m_KeyStoreErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStoreErrorMessages" + m_Keyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Keyring" + m_KmsArn "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KmsArn" + m_LocalCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/LocalCMC" + m_MaterialProviders "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MaterialProviders" + m_MaterialWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MaterialWrapping" + m_Materials "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Materials" + m_MrkAwareDiscoveryMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MrkAwareDiscoveryMultiKeyring" + m_MrkAwareStrictMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MrkAwareStrictMultiKeyring" + m_MultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MultiKeyring" + m_RawAESKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawAESKeyring" + m_RawECDHKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawECDHKeyring" + m_RawRSAKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawRSAKeyring" + m_RequiredEncryptionContextCMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RequiredEncryptionContextCMM" + m_StormTracker "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StormTracker" + m_StormTrackingCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StormTrackingCMC" + m_StrictMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StrictMultiKeyring" + m_Structure "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Structure" + m_SynchronizedLocalCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/SynchronizedLocalCMC" + m_Utils "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Utils" + m_AtomicPrimitives "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AtomicPrimitives" + m_AwsCryptographyPrimitivesOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesOperations" + m_AwsCryptographyPrimitivesTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesTypes" + m_Digest "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Digest" + m_HKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/HKDF" + m_KdfCtr "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/KdfCtr" + m_Random "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Random" + m_WrappedHKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHKDF" + m_WrappedHMAC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHMAC" + m_Actions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Actions" + m_Base64 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64" + m_Base64Lemmas "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64Lemmas" + m_BoundedInts "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/BoundedInts" + m_DivInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternals" + m_DivInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternalsNonlinear" + m_DivMod "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivMod" + m_FileIO "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FileIO" + m_FloatCompare "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FloatCompare" + m_Functions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Functions" + m_GeneralInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GeneralInternals" + m_GetOpt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GetOpt" + m_HexStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/HexStrings" + m_Logarithm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Logarithm" + m__Math "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Math_" + m_ModInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternals" + m_ModInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternalsNonlinear" + m_Mul "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Mul" + m_MulInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternals" + m_MulInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternalsNonlinear" + m_Power "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Power" + m_Relations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Relations" + m_Seq "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq" + m_Seq_MergeSort "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq_MergeSort" + m_Sorting "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Sorting" + m_StandardLibrary "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary" + m_StandardLibraryInterop "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibraryInterop" + m_StandardLibrary_Sequence "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_Sequence" + m_StandardLibrary_String "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_String" + m_StandardLibrary_UInt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_UInt" + m_Streams "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Streams" + m_UTF8 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UTF8" + m_UUID "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UUID" + m_UnicodeStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UnicodeStrings" + m__Unicode "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Unicode_" + m_Utf16EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf16EncodingForm" + m_Utf8EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf8EncodingForm" + m_Wrappers "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers" + m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorOperations "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorOperations" + m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes" + m_AwsCryptographyDbEncryptionSdkDynamoDbTypes "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbTypes" + m_AwsCryptographyDbEncryptionSdkStructuredEncryptionOperations "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkStructuredEncryptionOperations" + m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes" + m_Canonize "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/Canonize" + m_DynamoDbEncryptionBranchKeyIdSupplier "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbEncryptionBranchKeyIdSupplier" + m_DynamoDbEncryptionUtil "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbEncryptionUtil" + m_DynamoDbItemEncryptor "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbItemEncryptor" + m_DynamoDbItemEncryptorUtil "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbItemEncryptorUtil" + m_DynamoDbNormalizeNumber "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbNormalizeNumber" + m_DynamoToStruct "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoToStruct" + m_InternalLegacyOverride "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/InternalLegacyOverride" + m__Maps "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/Maps_" + m_Sets "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/Sets" + m_SortCanon "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/SortCanon" + m_StructuredEncryption "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryption" + m_StructuredEncryptionCrypt "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionCrypt" + m_StructuredEncryptionFooter "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionFooter" + m_StructuredEncryptionHeader "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionHeader" + m_StructuredEncryptionPaths "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionPaths" + m_StructuredEncryptionUtil "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionUtil" + m__System "github.com/dafny-lang/DafnyRuntimeGo/v4/System_" + _dafny "github.com/dafny-lang/DafnyRuntimeGo/v4/dafny" +) + +var _ = os.Args +var _ _dafny.Dummy__ +var _ m__System.Dummy__ +var _ m_Wrappers.Dummy__ +var _ m_BoundedInts.Dummy__ +var _ m_StandardLibrary_UInt.Dummy__ +var _ m_StandardLibrary_Sequence.Dummy__ +var _ m_StandardLibrary_String.Dummy__ +var _ m_StandardLibrary.Dummy__ +var _ m_AwsCryptographyPrimitivesTypes.Dummy__ +var _ m_Random.Dummy__ +var _ m_Digest.Dummy__ +var _ m_WrappedHMAC.Dummy__ +var _ m_HKDF.Dummy__ +var _ m_WrappedHKDF.Dummy__ +var _ m_KdfCtr.Dummy__ +var _ m_AwsCryptographyPrimitivesOperations.Dummy__ +var _ m_AtomicPrimitives.Dummy__ +var _ m_ComAmazonawsDynamodbTypes.Dummy__ +var _ m_ComAmazonawsKmsTypes.Dummy__ +var _ m_AwsCryptographyKeyStoreTypes.Dummy__ +var _ m_AwsCryptographyMaterialProvidersTypes.Dummy__ +var _ m_Base64.Dummy__ +var _ m_AlgorithmSuites.Dummy__ +var _ m_Materials.Dummy__ +var _ m_Keyring.Dummy__ +var _ m_Relations.Dummy__ +var _ m_Seq_MergeSort.Dummy__ +var _ m__Math.Dummy__ +var _ m_Seq.Dummy__ +var _ m_MultiKeyring.Dummy__ +var _ m_AwsArnParsing.Dummy__ +var _ m_AwsKmsMrkAreUnique.Dummy__ +var _ m_Actions.Dummy__ +var _ m_AwsKmsMrkMatchForDecrypt.Dummy__ +var _ m_AwsKmsUtils.Dummy__ +var _ m_Constants.Dummy__ +var _ m_MaterialWrapping.Dummy__ +var _ m_CanonicalEncryptionContext.Dummy__ +var _ m_IntermediateKeyWrapping.Dummy__ +var _ m_EdkWrapping.Dummy__ +var _ m_ErrorMessages.Dummy__ +var _ m_AwsKmsKeyring.Dummy__ +var _ m_StrictMultiKeyring.Dummy__ +var _ m_AwsKmsDiscoveryKeyring.Dummy__ +var _ m_Com_Amazonaws_Kms.Dummy__ +var _ m_Com_Amazonaws_Dynamodb.Dummy__ +var _ m_DiscoveryMultiKeyring.Dummy__ +var _ m_AwsKmsMrkDiscoveryKeyring.Dummy__ +var _ m_MrkAwareDiscoveryMultiKeyring.Dummy__ +var _ m_AwsKmsMrkKeyring.Dummy__ +var _ m_MrkAwareStrictMultiKeyring.Dummy__ +var _ m_LocalCMC.Dummy__ +var _ m_SynchronizedLocalCMC.Dummy__ +var _ m_StormTracker.Dummy__ +var _ m_StormTrackingCMC.Dummy__ +var _ m_CacheConstants.Dummy__ +var _ m_AwsKmsHierarchicalKeyring.Dummy__ +var _ m_AwsKmsRsaKeyring.Dummy__ +var _ m_EcdhEdkWrapping.Dummy__ +var _ m_RawECDHKeyring.Dummy__ +var _ m_AwsKmsEcdhKeyring.Dummy__ +var _ m_RawAESKeyring.Dummy__ +var _ m_RawRSAKeyring.Dummy__ +var _ m_CMM.Dummy__ +var _ m_Defaults.Dummy__ +var _ m_Commitment.Dummy__ +var _ m_DefaultCMM.Dummy__ +var _ m_DefaultClientSupplier.Dummy__ +var _ m_Utils.Dummy__ +var _ m_RequiredEncryptionContextCMM.Dummy__ +var _ m_AwsCryptographyMaterialProvidersOperations.Dummy__ +var _ m_MaterialProviders.Dummy__ +var _ m_KeyStoreErrorMessages.Dummy__ +var _ m_KmsArn.Dummy__ +var _ m_Structure.Dummy__ +var _ m_KMSKeystoreOperations.Dummy__ +var _ m_DDBKeystoreOperations.Dummy__ +var _ m_CreateKeys.Dummy__ +var _ m_CreateKeyStoreTable.Dummy__ +var _ m_GetKeys.Dummy__ +var _ m_AwsCryptographyKeyStoreOperations.Dummy__ +var _ m_KeyStore.Dummy__ +var _ m__Unicode.Dummy__ +var _ m_Functions.Dummy__ +var _ m_Utf8EncodingForm.Dummy__ +var _ m_Utf16EncodingForm.Dummy__ +var _ m_UnicodeStrings.Dummy__ +var _ m_FileIO.Dummy__ +var _ m_GeneralInternals.Dummy__ +var _ m_MulInternalsNonlinear.Dummy__ +var _ m_MulInternals.Dummy__ +var _ m_Mul.Dummy__ +var _ m_ModInternalsNonlinear.Dummy__ +var _ m_DivInternalsNonlinear.Dummy__ +var _ m_ModInternals.Dummy__ +var _ m_DivInternals.Dummy__ +var _ m_DivMod.Dummy__ +var _ m_Power.Dummy__ +var _ m_Logarithm.Dummy__ +var _ m_StandardLibraryInterop.Dummy__ +var _ m_Streams.Dummy__ +var _ m_Sorting.Dummy__ +var _ m_HexStrings.Dummy__ +var _ m_GetOpt.Dummy__ +var _ m_FloatCompare.Dummy__ +var _ m_Base64Lemmas.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Dummy__ +var _ m_StructuredEncryptionUtil.Dummy__ +var _ m_Sets.Dummy__ +var _ m_StructuredEncryptionPaths.Dummy__ +var _ m_StructuredEncryptionHeader.Dummy__ +var _ m_StructuredEncryptionFooter.Dummy__ +var _ m_SortCanon.Dummy__ +var _ m_Canonize.Dummy__ +var _ m_StructuredEncryptionCrypt.Dummy__ +var _ m__Maps.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkStructuredEncryptionOperations.Dummy__ +var _ m_StructuredEncryption.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Dummy__ +var _ m_DynamoDbEncryptionUtil.Dummy__ +var _ m_DynamoDbNormalizeNumber.Dummy__ +var _ m_DynamoToStruct.Dummy__ +var _ m_DynamoDbItemEncryptorUtil.Dummy__ +var _ m_InternalLegacyOverride.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorOperations.Dummy__ +var _ m_DynamoDbItemEncryptor.Dummy__ +var _ m_DynamoDbEncryptionBranchKeyIdSupplier.Dummy__ + +type Dummy__ struct{} + +// Definition of class Default__ +type Default__ struct { + dummy byte +} + +func New_Default___() *Default__ { + _this := Default__{} + + return &_this +} + +type CompanionStruct_Default___ struct { +} + +var Companion_Default___ = CompanionStruct_Default___{} + +func (_this *Default__) Equals(other *Default__) bool { + return _this == other +} + +func (_this *Default__) EqualsGeneric(x interface{}) bool { + other, ok := x.(*Default__) + return ok && _this.Equals(other) +} + +func (*Default__) String() string { + return "AwsCryptographyDbEncryptionSdkDynamoDbOperations.Default__" +} +func (_this *Default__) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = &Default__{} + +func (_static *CompanionStruct_Default___) CreateDynamoDbEncryptionBranchKeyIdSupplier(config Config, input m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.CreateDynamoDbEncryptionBranchKeyIdSupplierInput) m_Wrappers.Result { + var output m_Wrappers.Result = m_Wrappers.Result{} + _ = output + var _0_supplier *m_DynamoDbEncryptionBranchKeyIdSupplier.DynamoDbEncryptionBranchKeyIdSupplier + _ = _0_supplier + var _nw0 *m_DynamoDbEncryptionBranchKeyIdSupplier.DynamoDbEncryptionBranchKeyIdSupplier = m_DynamoDbEncryptionBranchKeyIdSupplier.New_DynamoDbEncryptionBranchKeyIdSupplier_() + _ = _nw0 + _nw0.Ctor__((input).Dtor_ddbKeyBranchKeyIdSupplier()) + _0_supplier = _nw0 + output = m_Wrappers.Companion_Result_.Create_Success_(m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_CreateDynamoDbEncryptionBranchKeyIdSupplierOutput_.Create_CreateDynamoDbEncryptionBranchKeyIdSupplierOutput_(_0_supplier)) + return output + return output +} +func (_static *CompanionStruct_Default___) GetEncryptedDataKeyDescription(config Config, input m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.GetEncryptedDataKeyDescriptionInput) m_Wrappers.Result { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_GetEncryptedDataKeyDescriptionOutput_.Default()) + _ = output + var _0_header _dafny.Sequence = _dafny.EmptySeq + _ = _0_header + var _source0 m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.GetEncryptedDataKeyDescriptionUnion = (input).Dtor_input() + _ = _source0 + { + { + if _source0.Is_item() { + var _1_item _dafny.Map = _source0.Get_().(m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.GetEncryptedDataKeyDescriptionUnion_item).Item + _ = _1_item + { + var _2_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _2_valueOrError0 + _2_valueOrError0 = m_Wrappers.Companion_Default___.Need(((_1_item).Contains(_dafny.SeqOfString("aws_dbe_head"))) && (((_1_item).Get(_dafny.SeqOfString("aws_dbe_head")).(m_ComAmazonawsDynamodbTypes.AttributeValue)).Is_B()), m_DynamoDbEncryptionUtil.Companion_Default___.E(_dafny.SeqOfString("Header not found in the DynamoDB item."))) + if (_2_valueOrError0).IsFailure() { + output = (_2_valueOrError0).PropagateFailure() + return output + } + _0_header = ((_1_item).Get(_dafny.SeqOfString("aws_dbe_head")).(m_ComAmazonawsDynamodbTypes.AttributeValue)).Dtor_B() + } + goto Lmatch0 + } + } + { + var _3_headerItem _dafny.Sequence = _source0.Get_().(m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.GetEncryptedDataKeyDescriptionUnion_header).Header + _ = _3_headerItem + _0_header = _3_headerItem + } + goto Lmatch0 + } +Lmatch0: + var _4_valueOrError1 m_Wrappers.Result = m_Wrappers.Result{} + _ = _4_valueOrError1 + _4_valueOrError1 = (m_StructuredEncryptionHeader.Companion_Default___.PartialDeserialize(_0_header)).MapFailure(func(coer70 func(m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Error) m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Error) func(interface{}) interface{} { + return func(arg94 interface{}) interface{} { + return coer70(arg94.(m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Error)) + } + }(func(_5_e m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Error) m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Error { + return m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_Error_.Create_AwsCryptographyDbEncryptionSdkStructuredEncryption_(_5_e) + })) + if (_4_valueOrError1).IsFailure() { + output = (_4_valueOrError1).PropagateFailure() + return output + } + var _6_deserializedHeader m_StructuredEncryptionHeader.PartialHeader + _ = _6_deserializedHeader + _6_deserializedHeader = (_4_valueOrError1).Extract().(m_StructuredEncryptionHeader.PartialHeader) + var _7_datakeys _dafny.Sequence + _ = _7_datakeys + _7_datakeys = (_6_deserializedHeader).Dtor_dataKeys() + var _8_list _dafny.Sequence + _ = _8_list + _8_list = _dafny.SeqOf() + var _hi0 _dafny.Int = _dafny.IntOfUint32((_7_datakeys).Cardinality()) + _ = _hi0 + for _9_i := _dafny.Zero; _9_i.Cmp(_hi0) < 0; _9_i = _9_i.Plus(_dafny.One) { + var _10_valueOrError2 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq.SetString()) + _ = _10_valueOrError2 + _10_valueOrError2 = (m_UTF8.Decode(((_7_datakeys).Select((_9_i).Uint32()).(m_AwsCryptographyMaterialProvidersTypes.EncryptedDataKey)).Dtor_keyProviderId())).MapFailure(func(coer71 func(_dafny.Sequence) m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Error) func(interface{}) interface{} { + return func(arg95 interface{}) interface{} { + return coer71(arg95.(_dafny.Sequence)) + } + }(func(_11_e _dafny.Sequence) m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Error { + return m_DynamoDbEncryptionUtil.Companion_Default___.E(_11_e) + })) + if (_10_valueOrError2).IsFailure() { + output = (_10_valueOrError2).PropagateFailure() + return output + } + var _12_extractedKeyProviderId _dafny.Sequence + _ = _12_extractedKeyProviderId + _12_extractedKeyProviderId = (_10_valueOrError2).Extract().(_dafny.Sequence) + var _13_extractedKeyProviderIdInfo m_Wrappers.Option + _ = _13_extractedKeyProviderIdInfo + _13_extractedKeyProviderIdInfo = m_Wrappers.Companion_Option_.Create_None_() + var _14_expectedBranchKeyVersion m_Wrappers.Option + _ = _14_expectedBranchKeyVersion + _14_expectedBranchKeyVersion = m_Wrappers.Companion_Option_.Create_None_() + if _dafny.Companion_Sequence_.IsPrefixOf(_dafny.SeqOfString("aws-kms"), _12_extractedKeyProviderId) { + var _15_valueOrError3 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _15_valueOrError3 + _15_valueOrError3 = m_Wrappers.Companion_Default___.Need((((_6_deserializedHeader).Dtor_flavor()) == (uint8(0))) || (((_6_deserializedHeader).Dtor_flavor()) == (uint8(1))), m_DynamoDbEncryptionUtil.Companion_Default___.E(_dafny.SeqOfString("Invalid format flavor."))) + if (_15_valueOrError3).IsFailure() { + output = (_15_valueOrError3).PropagateFailure() + return output + } + var _16_algorithmSuite m_AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo = m_AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo{} + _ = _16_algorithmSuite + if ((_6_deserializedHeader).Dtor_flavor()) == (uint8(0)) { + _16_algorithmSuite = m_AlgorithmSuites.Companion_Default___.DBE__ALG__AES__256__GCM__HKDF__SHA512__COMMIT__KEY__SYMSIG__HMAC__SHA384() + } else { + _16_algorithmSuite = m_AlgorithmSuites.Companion_Default___.DBE__ALG__AES__256__GCM__HKDF__SHA512__COMMIT__KEY__ECDSA__P384__SYMSIG__HMAC__SHA384() + } + var _17_valueOrError4 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq.SetString()) + _ = _17_valueOrError4 + _17_valueOrError4 = (m_UTF8.Decode(((_7_datakeys).Select((_9_i).Uint32()).(m_AwsCryptographyMaterialProvidersTypes.EncryptedDataKey)).Dtor_keyProviderInfo())).MapFailure(func(coer72 func(_dafny.Sequence) m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Error) func(interface{}) interface{} { + return func(arg96 interface{}) interface{} { + return coer72(arg96.(_dafny.Sequence)) + } + }(func(_18_e _dafny.Sequence) m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Error { + return m_DynamoDbEncryptionUtil.Companion_Default___.E(_18_e) + })) + if (_17_valueOrError4).IsFailure() { + output = (_17_valueOrError4).PropagateFailure() + return output + } + var _19_maybeKeyProviderIdInfo _dafny.Sequence + _ = _19_maybeKeyProviderIdInfo + _19_maybeKeyProviderIdInfo = (_17_valueOrError4).Extract().(_dafny.Sequence) + _13_extractedKeyProviderIdInfo = m_Wrappers.Companion_Option_.Create_Some_(_19_maybeKeyProviderIdInfo) + if _dafny.Companion_Sequence_.Equal(_12_extractedKeyProviderId, _dafny.SeqOfString("aws-kms-hierarchy")) { + var _20_valueOrError5 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = _20_valueOrError5 + _20_valueOrError5 = (m_EdkWrapping.Companion_Default___.GetProviderWrappedMaterial(((_7_datakeys).Select((_9_i).Uint32()).(m_AwsCryptographyMaterialProvidersTypes.EncryptedDataKey)).Dtor_ciphertext(), _16_algorithmSuite)).MapFailure(func(coer73 func(m_AwsCryptographyMaterialProvidersTypes.Error) m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Error) func(interface{}) interface{} { + return func(arg97 interface{}) interface{} { + return coer73(arg97.(m_AwsCryptographyMaterialProvidersTypes.Error)) + } + }(func(_21_e m_AwsCryptographyMaterialProvidersTypes.Error) m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Error { + return m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_Error_.Create_AwsCryptographyMaterialProviders_(_21_e) + })) + if (_20_valueOrError5).IsFailure() { + output = (_20_valueOrError5).PropagateFailure() + return output + } + var _22_providerWrappedMaterial _dafny.Sequence + _ = _22_providerWrappedMaterial + _22_providerWrappedMaterial = (_20_valueOrError5).Extract().(_dafny.Sequence) + var _23_EDK__CIPHERTEXT__BRANCH__KEY__VERSION__INDEX _dafny.Int + _ = _23_EDK__CIPHERTEXT__BRANCH__KEY__VERSION__INDEX + _23_EDK__CIPHERTEXT__BRANCH__KEY__VERSION__INDEX = (Companion_Default___.SALT__LENGTH()).Plus(Companion_Default___.IV__LENGTH()) + var _24_EDK__CIPHERTEXT__VERSION__INDEX _dafny.Int + _ = _24_EDK__CIPHERTEXT__VERSION__INDEX + _24_EDK__CIPHERTEXT__VERSION__INDEX = (_23_EDK__CIPHERTEXT__BRANCH__KEY__VERSION__INDEX).Plus(Companion_Default___.VERSION__LENGTH()) + var _25_valueOrError6 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _25_valueOrError6 + _25_valueOrError6 = m_Wrappers.Companion_Default___.Need((_23_EDK__CIPHERTEXT__BRANCH__KEY__VERSION__INDEX).Cmp(_24_EDK__CIPHERTEXT__VERSION__INDEX) < 0, m_DynamoDbEncryptionUtil.Companion_Default___.E(_dafny.SeqOfString("Wrong branch key version index."))) + if (_25_valueOrError6).IsFailure() { + output = (_25_valueOrError6).PropagateFailure() + return output + } + var _26_valueOrError7 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _26_valueOrError7 + _26_valueOrError7 = m_Wrappers.Companion_Default___.Need((_dafny.IntOfUint32((_22_providerWrappedMaterial).Cardinality())).Cmp(_24_EDK__CIPHERTEXT__VERSION__INDEX) >= 0, m_DynamoDbEncryptionUtil.Companion_Default___.E(_dafny.SeqOfString("Incorrect ciphertext structure length."))) + if (_26_valueOrError7).IsFailure() { + output = (_26_valueOrError7).PropagateFailure() + return output + } + var _27_branchKeyVersionUuid _dafny.Sequence + _ = _27_branchKeyVersionUuid + _27_branchKeyVersionUuid = (_22_providerWrappedMaterial).Subsequence((_23_EDK__CIPHERTEXT__BRANCH__KEY__VERSION__INDEX).Uint32(), (_24_EDK__CIPHERTEXT__VERSION__INDEX).Uint32()) + var _28_valueOrError8 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq.SetString()) + _ = _28_valueOrError8 + _28_valueOrError8 = (m_UUID.FromByteArray(_27_branchKeyVersionUuid)).MapFailure(func(coer74 func(_dafny.Sequence) m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Error) func(interface{}) interface{} { + return func(arg98 interface{}) interface{} { + return coer74(arg98.(_dafny.Sequence)) + } + }(func(_29_e _dafny.Sequence) m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Error { + return m_DynamoDbEncryptionUtil.Companion_Default___.E(_29_e) + })) + if (_28_valueOrError8).IsFailure() { + output = (_28_valueOrError8).PropagateFailure() + return output + } + var _30_maybeBranchKeyVersion _dafny.Sequence + _ = _30_maybeBranchKeyVersion + _30_maybeBranchKeyVersion = (_28_valueOrError8).Extract().(_dafny.Sequence) + _14_expectedBranchKeyVersion = m_Wrappers.Companion_Option_.Create_Some_(_30_maybeBranchKeyVersion) + } + } + var _31_singleDataKeyOutput m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.EncryptedDataKeyDescription + _ = _31_singleDataKeyOutput + _31_singleDataKeyOutput = m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_EncryptedDataKeyDescription_.Create_EncryptedDataKeyDescription_(_12_extractedKeyProviderId, _13_extractedKeyProviderIdInfo, _13_extractedKeyProviderIdInfo, _14_expectedBranchKeyVersion) + _8_list = _dafny.Companion_Sequence_.Concatenate(_8_list, _dafny.SeqOf(_31_singleDataKeyOutput)) + } + output = m_Wrappers.Companion_Result_.Create_Success_(m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_GetEncryptedDataKeyDescriptionOutput_.Create_GetEncryptedDataKeyDescriptionOutput_(_8_list)) + return output +} +func (_static *CompanionStruct_Default___) SALT__LENGTH() _dafny.Int { + return _dafny.IntOfInt64(16) +} +func (_static *CompanionStruct_Default___) IV__LENGTH() _dafny.Int { + return _dafny.IntOfInt64(12) +} +func (_static *CompanionStruct_Default___) VERSION__LENGTH() _dafny.Int { + return _dafny.IntOfInt64(16) +} + +// End of class Default__ + +// Definition of datatype Config +type Config struct { + Data_Config_ +} + +func (_this Config) Get_() Data_Config_ { + return _this.Data_Config_ +} + +type Data_Config_ interface { + isConfig() +} + +type CompanionStruct_Config_ struct { +} + +var Companion_Config_ = CompanionStruct_Config_{} + +type Config_Config struct { +} + +func (Config_Config) isConfig() {} + +func (CompanionStruct_Config_) Create_Config_() Config { + return Config{Config_Config{}} +} + +func (_this Config) Is_Config() bool { + _, ok := _this.Get_().(Config_Config) + return ok +} + +func (CompanionStruct_Config_) Default() Config { + return Companion_Config_.Create_Config_() +} + +func (_ CompanionStruct_Config_) AllSingletonConstructors() _dafny.Iterator { + i := -1 + return func() (interface{}, bool) { + i++ + switch i { + case 0: + return Companion_Config_.Create_Config_(), true + default: + return Config{}, false + } + } +} + +func (_this Config) String() string { + switch _this.Get_().(type) { + case nil: + return "null" + case Config_Config: + { + return "AwsCryptographyDbEncryptionSdkDynamoDbOperations.Config.Config" + } + default: + { + return "" + } + } +} + +func (_this Config) Equals(other Config) bool { + switch _this.Get_().(type) { + case Config_Config: + { + _, ok := other.Get_().(Config_Config) + return ok + } + default: + { + return false // unexpected + } + } +} + +func (_this Config) EqualsGeneric(other interface{}) bool { + typed, ok := other.(Config) + return ok && _this.Equals(typed) +} + +func Type_Config_() _dafny.TypeDescriptor { + return type_Config_{} +} + +type type_Config_ struct { +} + +func (_this type_Config_) Default() interface{} { + return Companion_Config_.Default() +} + +func (_this type_Config_) String() string { + return "AwsCryptographyDbEncryptionSdkDynamoDbOperations.Config" +} +func (_this Config) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = Config{} + +// End of datatype Config diff --git a/customer-preview/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbTransformsOperations/AwsCryptographyDbEncryptionSdkDynamoDbTransformsOperations.go b/customer-preview/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbTransformsOperations/AwsCryptographyDbEncryptionSdkDynamoDbTransformsOperations.go new file mode 100644 index 000000000..6a25d0ba1 --- /dev/null +++ b/customer-preview/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbTransformsOperations/AwsCryptographyDbEncryptionSdkDynamoDbTransformsOperations.go @@ -0,0 +1,607 @@ +// Package AwsCryptographyDbEncryptionSdkDynamoDbTransformsOperations +// Dafny module AwsCryptographyDbEncryptionSdkDynamoDbTransformsOperations compiled into Go + +package AwsCryptographyDbEncryptionSdkDynamoDbTransformsOperations + +import ( + os "os" + + m_ComAmazonawsDynamodbTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/ComAmazonawsDynamodbTypes" + m_Com_Amazonaws_Dynamodb "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/Com_Amazonaws_Dynamodb" + m_ComAmazonawsKmsTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/ComAmazonawsKmsTypes" + m_Com_Amazonaws_Kms "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/Com_Amazonaws_Kms" + m_AlgorithmSuites "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AlgorithmSuites" + m_AwsArnParsing "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsArnParsing" + m_AwsCryptographyKeyStoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreOperations" + m_AwsCryptographyKeyStoreTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreTypes" + m_AwsCryptographyMaterialProvidersOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersOperations" + m_AwsCryptographyMaterialProvidersTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersTypes" + m_AwsKmsDiscoveryKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsDiscoveryKeyring" + m_AwsKmsEcdhKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsEcdhKeyring" + m_AwsKmsHierarchicalKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsHierarchicalKeyring" + m_AwsKmsKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsKeyring" + m_AwsKmsMrkAreUnique "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkAreUnique" + m_AwsKmsMrkDiscoveryKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkDiscoveryKeyring" + m_AwsKmsMrkKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkKeyring" + m_AwsKmsMrkMatchForDecrypt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkMatchForDecrypt" + m_AwsKmsRsaKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsRsaKeyring" + m_AwsKmsUtils "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsUtils" + m_CMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CMM" + m_CacheConstants "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CacheConstants" + m_CanonicalEncryptionContext "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CanonicalEncryptionContext" + m_Commitment "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Commitment" + m_Constants "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Constants" + m_CreateKeyStoreTable "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeyStoreTable" + m_CreateKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeys" + m_DDBKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DDBKeystoreOperations" + m_DefaultCMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DefaultCMM" + m_DefaultClientSupplier "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DefaultClientSupplier" + m_Defaults "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Defaults" + m_DiscoveryMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DiscoveryMultiKeyring" + m_EcdhEdkWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/EcdhEdkWrapping" + m_EdkWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/EdkWrapping" + m_ErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/ErrorMessages" + m_GetKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/GetKeys" + m_IntermediateKeyWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/IntermediateKeyWrapping" + m_KMSKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KMSKeystoreOperations" + m_KeyStore "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStore" + m_KeyStoreErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStoreErrorMessages" + m_Keyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Keyring" + m_KmsArn "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KmsArn" + m_LocalCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/LocalCMC" + m_MaterialProviders "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MaterialProviders" + m_MaterialWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MaterialWrapping" + m_Materials "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Materials" + m_MrkAwareDiscoveryMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MrkAwareDiscoveryMultiKeyring" + m_MrkAwareStrictMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MrkAwareStrictMultiKeyring" + m_MultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MultiKeyring" + m_RawAESKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawAESKeyring" + m_RawECDHKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawECDHKeyring" + m_RawRSAKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawRSAKeyring" + m_RequiredEncryptionContextCMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RequiredEncryptionContextCMM" + m_StormTracker "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StormTracker" + m_StormTrackingCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StormTrackingCMC" + m_StrictMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StrictMultiKeyring" + m_Structure "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Structure" + m_SynchronizedLocalCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/SynchronizedLocalCMC" + m_Utils "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Utils" + m_AtomicPrimitives "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AtomicPrimitives" + m_AwsCryptographyPrimitivesOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesOperations" + m_AwsCryptographyPrimitivesTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesTypes" + m_Digest "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Digest" + m_HKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/HKDF" + m_KdfCtr "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/KdfCtr" + m_Random "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Random" + m_WrappedHKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHKDF" + m_WrappedHMAC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHMAC" + m_Actions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Actions" + m_Base64 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64" + m_Base64Lemmas "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64Lemmas" + m_BoundedInts "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/BoundedInts" + m_DivInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternals" + m_DivInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternalsNonlinear" + m_DivMod "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivMod" + m_FileIO "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FileIO" + m_FloatCompare "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FloatCompare" + m_Functions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Functions" + m_GeneralInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GeneralInternals" + m_GetOpt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GetOpt" + m_HexStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/HexStrings" + m_Logarithm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Logarithm" + m__Math "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Math_" + m_ModInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternals" + m_ModInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternalsNonlinear" + m_Mul "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Mul" + m_MulInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternals" + m_MulInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternalsNonlinear" + m_Power "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Power" + m_Relations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Relations" + m_Seq "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq" + m_Seq_MergeSort "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq_MergeSort" + m_Sorting "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Sorting" + m_StandardLibrary "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary" + m_StandardLibraryInterop "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibraryInterop" + m_StandardLibrary_Sequence "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_Sequence" + m_StandardLibrary_String "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_String" + m_StandardLibrary_UInt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_UInt" + m_Streams "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Streams" + m_UnicodeStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UnicodeStrings" + m__Unicode "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Unicode_" + m_Utf16EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf16EncodingForm" + m_Utf8EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf8EncodingForm" + m_Wrappers "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers" + m_AttributeResolver "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AttributeResolver" + m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorOperations "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorOperations" + m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes" + m_AwsCryptographyDbEncryptionSdkDynamoDbOperations "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbOperations" + m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes" + m_AwsCryptographyDbEncryptionSdkDynamoDbTypes "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbTypes" + m_AwsCryptographyDbEncryptionSdkStructuredEncryptionOperations "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkStructuredEncryptionOperations" + m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes" + m_BaseBeacon "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/BaseBeacon" + m_BatchExecuteStatementTransform "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/BatchExecuteStatementTransform" + m_BatchGetItemTransform "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/BatchGetItemTransform" + m_BatchWriteItemTransform "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/BatchWriteItemTransform" + m_Canonize "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/Canonize" + m_CompoundBeacon "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/CompoundBeacon" + m_DdbMiddlewareConfig "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DdbMiddlewareConfig" + m_DdbStatement "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DdbStatement" + m_DdbVirtualFields "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DdbVirtualFields" + m_DeleteItemTransform "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DeleteItemTransform" + m_DynamoDBFilterExpr "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDBFilterExpr" + m_DynamoDBSupport "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDBSupport" + m_DynamoDbEncryption "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbEncryption" + m_DynamoDbEncryptionBranchKeyIdSupplier "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbEncryptionBranchKeyIdSupplier" + m_DynamoDbEncryptionUtil "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbEncryptionUtil" + m_DynamoDbItemEncryptor "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbItemEncryptor" + m_DynamoDbItemEncryptorUtil "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbItemEncryptorUtil" + m_DynamoDbMiddlewareSupport "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbMiddlewareSupport" + m_DynamoDbNormalizeNumber "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbNormalizeNumber" + m_DynamoDbUpdateExpr "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbUpdateExpr" + m_DynamoToStruct "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoToStruct" + m_ExecuteStatementTransform "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/ExecuteStatementTransform" + m_ExecuteTransactionTransform "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/ExecuteTransactionTransform" + m_GetItemTransform "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/GetItemTransform" + m_InternalLegacyOverride "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/InternalLegacyOverride" + m__Maps "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/Maps_" + m_PutItemTransform "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/PutItemTransform" + m_QueryTransform "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/QueryTransform" + m_ScanTransform "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/ScanTransform" + m_SearchConfigToInfo "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/SearchConfigToInfo" + m_SearchableEncryptionInfo "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/SearchableEncryptionInfo" + m_Sets "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/Sets" + m_SortCanon "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/SortCanon" + m_StructuredEncryption "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryption" + m_StructuredEncryptionCrypt "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionCrypt" + m_StructuredEncryptionFooter "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionFooter" + m_StructuredEncryptionHeader "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionHeader" + m_StructuredEncryptionPaths "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionPaths" + m_StructuredEncryptionUtil "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionUtil" + m_TermLoc "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/TermLoc" + m_TransactGetItemsTransform "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/TransactGetItemsTransform" + m_TransactWriteItemsTransform "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/TransactWriteItemsTransform" + m_UpdateItemTransform "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/UpdateItemTransform" + m__System "github.com/dafny-lang/DafnyRuntimeGo/v4/System_" + _dafny "github.com/dafny-lang/DafnyRuntimeGo/v4/dafny" +) + +var _ = os.Args +var _ _dafny.Dummy__ +var _ m__System.Dummy__ +var _ m_Wrappers.Dummy__ +var _ m_BoundedInts.Dummy__ +var _ m_StandardLibrary_UInt.Dummy__ +var _ m_StandardLibrary_Sequence.Dummy__ +var _ m_StandardLibrary_String.Dummy__ +var _ m_StandardLibrary.Dummy__ +var _ m_AwsCryptographyPrimitivesTypes.Dummy__ +var _ m_Random.Dummy__ +var _ m_Digest.Dummy__ +var _ m_WrappedHMAC.Dummy__ +var _ m_HKDF.Dummy__ +var _ m_WrappedHKDF.Dummy__ +var _ m_KdfCtr.Dummy__ +var _ m_AwsCryptographyPrimitivesOperations.Dummy__ +var _ m_AtomicPrimitives.Dummy__ +var _ m_ComAmazonawsDynamodbTypes.Dummy__ +var _ m_ComAmazonawsKmsTypes.Dummy__ +var _ m_AwsCryptographyKeyStoreTypes.Dummy__ +var _ m_AwsCryptographyMaterialProvidersTypes.Dummy__ +var _ m_Base64.Dummy__ +var _ m_AlgorithmSuites.Dummy__ +var _ m_Materials.Dummy__ +var _ m_Keyring.Dummy__ +var _ m_Relations.Dummy__ +var _ m_Seq_MergeSort.Dummy__ +var _ m__Math.Dummy__ +var _ m_Seq.Dummy__ +var _ m_MultiKeyring.Dummy__ +var _ m_AwsArnParsing.Dummy__ +var _ m_AwsKmsMrkAreUnique.Dummy__ +var _ m_Actions.Dummy__ +var _ m_AwsKmsMrkMatchForDecrypt.Dummy__ +var _ m_AwsKmsUtils.Dummy__ +var _ m_Constants.Dummy__ +var _ m_MaterialWrapping.Dummy__ +var _ m_CanonicalEncryptionContext.Dummy__ +var _ m_IntermediateKeyWrapping.Dummy__ +var _ m_EdkWrapping.Dummy__ +var _ m_ErrorMessages.Dummy__ +var _ m_AwsKmsKeyring.Dummy__ +var _ m_StrictMultiKeyring.Dummy__ +var _ m_AwsKmsDiscoveryKeyring.Dummy__ +var _ m_Com_Amazonaws_Kms.Dummy__ +var _ m_Com_Amazonaws_Dynamodb.Dummy__ +var _ m_DiscoveryMultiKeyring.Dummy__ +var _ m_AwsKmsMrkDiscoveryKeyring.Dummy__ +var _ m_MrkAwareDiscoveryMultiKeyring.Dummy__ +var _ m_AwsKmsMrkKeyring.Dummy__ +var _ m_MrkAwareStrictMultiKeyring.Dummy__ +var _ m_LocalCMC.Dummy__ +var _ m_SynchronizedLocalCMC.Dummy__ +var _ m_StormTracker.Dummy__ +var _ m_StormTrackingCMC.Dummy__ +var _ m_CacheConstants.Dummy__ +var _ m_AwsKmsHierarchicalKeyring.Dummy__ +var _ m_AwsKmsRsaKeyring.Dummy__ +var _ m_EcdhEdkWrapping.Dummy__ +var _ m_RawECDHKeyring.Dummy__ +var _ m_AwsKmsEcdhKeyring.Dummy__ +var _ m_RawAESKeyring.Dummy__ +var _ m_RawRSAKeyring.Dummy__ +var _ m_CMM.Dummy__ +var _ m_Defaults.Dummy__ +var _ m_Commitment.Dummy__ +var _ m_DefaultCMM.Dummy__ +var _ m_DefaultClientSupplier.Dummy__ +var _ m_Utils.Dummy__ +var _ m_RequiredEncryptionContextCMM.Dummy__ +var _ m_AwsCryptographyMaterialProvidersOperations.Dummy__ +var _ m_MaterialProviders.Dummy__ +var _ m_KeyStoreErrorMessages.Dummy__ +var _ m_KmsArn.Dummy__ +var _ m_Structure.Dummy__ +var _ m_KMSKeystoreOperations.Dummy__ +var _ m_DDBKeystoreOperations.Dummy__ +var _ m_CreateKeys.Dummy__ +var _ m_CreateKeyStoreTable.Dummy__ +var _ m_GetKeys.Dummy__ +var _ m_AwsCryptographyKeyStoreOperations.Dummy__ +var _ m_KeyStore.Dummy__ +var _ m__Unicode.Dummy__ +var _ m_Functions.Dummy__ +var _ m_Utf8EncodingForm.Dummy__ +var _ m_Utf16EncodingForm.Dummy__ +var _ m_UnicodeStrings.Dummy__ +var _ m_FileIO.Dummy__ +var _ m_GeneralInternals.Dummy__ +var _ m_MulInternalsNonlinear.Dummy__ +var _ m_MulInternals.Dummy__ +var _ m_Mul.Dummy__ +var _ m_ModInternalsNonlinear.Dummy__ +var _ m_DivInternalsNonlinear.Dummy__ +var _ m_ModInternals.Dummy__ +var _ m_DivInternals.Dummy__ +var _ m_DivMod.Dummy__ +var _ m_Power.Dummy__ +var _ m_Logarithm.Dummy__ +var _ m_StandardLibraryInterop.Dummy__ +var _ m_Streams.Dummy__ +var _ m_Sorting.Dummy__ +var _ m_HexStrings.Dummy__ +var _ m_GetOpt.Dummy__ +var _ m_FloatCompare.Dummy__ +var _ m_Base64Lemmas.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Dummy__ +var _ m_StructuredEncryptionUtil.Dummy__ +var _ m_Sets.Dummy__ +var _ m_StructuredEncryptionPaths.Dummy__ +var _ m_StructuredEncryptionHeader.Dummy__ +var _ m_StructuredEncryptionFooter.Dummy__ +var _ m_SortCanon.Dummy__ +var _ m_Canonize.Dummy__ +var _ m_StructuredEncryptionCrypt.Dummy__ +var _ m__Maps.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkStructuredEncryptionOperations.Dummy__ +var _ m_StructuredEncryption.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Dummy__ +var _ m_DynamoDbEncryptionUtil.Dummy__ +var _ m_DynamoDbNormalizeNumber.Dummy__ +var _ m_DynamoToStruct.Dummy__ +var _ m_DynamoDbItemEncryptorUtil.Dummy__ +var _ m_InternalLegacyOverride.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorOperations.Dummy__ +var _ m_DynamoDbItemEncryptor.Dummy__ +var _ m_DynamoDbEncryptionBranchKeyIdSupplier.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkDynamoDbOperations.Dummy__ +var _ m_DynamoDbEncryption.Dummy__ +var _ m_TermLoc.Dummy__ +var _ m_DdbVirtualFields.Dummy__ +var _ m_DynamoDbUpdateExpr.Dummy__ +var _ m_BaseBeacon.Dummy__ +var _ m_CompoundBeacon.Dummy__ +var _ m_SearchableEncryptionInfo.Dummy__ +var _ m_DynamoDBFilterExpr.Dummy__ +var _ m_DynamoDBSupport.Dummy__ +var _ m_SearchConfigToInfo.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Dummy__ +var _ m_DdbMiddlewareConfig.Dummy__ +var _ m_DdbStatement.Dummy__ +var _ m_DynamoDbMiddlewareSupport.Dummy__ +var _ m_PutItemTransform.Dummy__ +var _ m_GetItemTransform.Dummy__ +var _ m_UpdateItemTransform.Dummy__ +var _ m_BatchWriteItemTransform.Dummy__ +var _ m_TransactWriteItemsTransform.Dummy__ +var _ m_BatchGetItemTransform.Dummy__ +var _ m_ScanTransform.Dummy__ +var _ m_QueryTransform.Dummy__ +var _ m_TransactGetItemsTransform.Dummy__ +var _ m_DeleteItemTransform.Dummy__ +var _ m_ExecuteStatementTransform.Dummy__ +var _ m_BatchExecuteStatementTransform.Dummy__ +var _ m_ExecuteTransactionTransform.Dummy__ +var _ m_AttributeResolver.Dummy__ + +type Dummy__ struct{} + +// Definition of class Default__ +type Default__ struct { + dummy byte +} + +func New_Default___() *Default__ { + _this := Default__{} + + return &_this +} + +type CompanionStruct_Default___ struct { +} + +var Companion_Default___ = CompanionStruct_Default___{} + +func (_this *Default__) Equals(other *Default__) bool { + return _this == other +} + +func (_this *Default__) EqualsGeneric(x interface{}) bool { + other, ok := x.(*Default__) + return ok && _this.Equals(other) +} + +func (*Default__) String() string { + return "AwsCryptographyDbEncryptionSdkDynamoDbTransformsOperations.Default__" +} +func (_this *Default__) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = &Default__{} + +func (_static *CompanionStruct_Default___) PutItemInputTransform(config m_DdbMiddlewareConfig.Config, input m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.PutItemInputTransformInput) m_Wrappers.Result { + var output m_Wrappers.Result = m_Wrappers.Result{} + _ = output + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_PutItemTransform.Companion_Default___.Input(config, input) + output = _out0 + return output +} +func (_static *CompanionStruct_Default___) PutItemOutputTransform(config m_DdbMiddlewareConfig.Config, input m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.PutItemOutputTransformInput) m_Wrappers.Result { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_PutItemOutputTransformOutput_.Default()) + _ = output + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_PutItemTransform.Companion_Default___.Output(config, input) + output = _out0 + return output +} +func (_static *CompanionStruct_Default___) GetItemInputTransform(config m_DdbMiddlewareConfig.Config, input m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.GetItemInputTransformInput) m_Wrappers.Result { + var output m_Wrappers.Result = m_Wrappers.Result{} + _ = output + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_GetItemTransform.Companion_Default___.Input(config, input) + output = _out0 + return output +} +func (_static *CompanionStruct_Default___) GetItemOutputTransform(config m_DdbMiddlewareConfig.Config, input m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.GetItemOutputTransformInput) m_Wrappers.Result { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_GetItemOutputTransformOutput_.Default()) + _ = output + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_GetItemTransform.Companion_Default___.Output(config, input) + output = _out0 + return output +} +func (_static *CompanionStruct_Default___) UpdateItemInputTransform(config m_DdbMiddlewareConfig.Config, input m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.UpdateItemInputTransformInput) m_Wrappers.Result { + var output m_Wrappers.Result = m_Wrappers.Result{} + _ = output + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_UpdateItemTransform.Companion_Default___.Input(config, input) + output = _out0 + return output +} +func (_static *CompanionStruct_Default___) UpdateItemOutputTransform(config m_DdbMiddlewareConfig.Config, input m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.UpdateItemOutputTransformInput) m_Wrappers.Result { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_UpdateItemOutputTransformOutput_.Default()) + _ = output + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_UpdateItemTransform.Companion_Default___.Output(config, input) + output = _out0 + return output +} +func (_static *CompanionStruct_Default___) BatchWriteItemInputTransform(config m_DdbMiddlewareConfig.Config, input m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.BatchWriteItemInputTransformInput) m_Wrappers.Result { + var output m_Wrappers.Result = m_Wrappers.Result{} + _ = output + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_BatchWriteItemTransform.Companion_Default___.Input(config, input) + output = _out0 + return output +} +func (_static *CompanionStruct_Default___) BatchWriteItemOutputTransform(config m_DdbMiddlewareConfig.Config, input m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.BatchWriteItemOutputTransformInput) m_Wrappers.Result { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_BatchWriteItemOutputTransformOutput_.Default()) + _ = output + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_BatchWriteItemTransform.Companion_Default___.Output(config, input) + output = _out0 + return output +} +func (_static *CompanionStruct_Default___) TransactWriteItemsInputTransform(config m_DdbMiddlewareConfig.Config, input m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.TransactWriteItemsInputTransformInput) m_Wrappers.Result { + var output m_Wrappers.Result = m_Wrappers.Result{} + _ = output + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_TransactWriteItemsTransform.Companion_Default___.Input(config, input) + output = _out0 + return output +} +func (_static *CompanionStruct_Default___) TransactWriteItemsOutputTransform(config m_DdbMiddlewareConfig.Config, input m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.TransactWriteItemsOutputTransformInput) m_Wrappers.Result { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_TransactWriteItemsOutputTransformOutput_.Default()) + _ = output + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_TransactWriteItemsTransform.Companion_Default___.Output(config, input) + output = _out0 + return output +} +func (_static *CompanionStruct_Default___) BatchGetItemInputTransform(config m_DdbMiddlewareConfig.Config, input m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.BatchGetItemInputTransformInput) m_Wrappers.Result { + var output m_Wrappers.Result = m_Wrappers.Result{} + _ = output + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_BatchGetItemTransform.Companion_Default___.Input(config, input) + output = _out0 + return output +} +func (_static *CompanionStruct_Default___) BatchGetItemOutputTransform(config m_DdbMiddlewareConfig.Config, input m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.BatchGetItemOutputTransformInput) m_Wrappers.Result { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_BatchGetItemOutputTransformOutput_.Default()) + _ = output + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_BatchGetItemTransform.Companion_Default___.Output(config, input) + output = _out0 + return output +} +func (_static *CompanionStruct_Default___) ScanInputTransform(config m_DdbMiddlewareConfig.Config, input m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.ScanInputTransformInput) m_Wrappers.Result { + var output m_Wrappers.Result = m_Wrappers.Result{} + _ = output + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_ScanTransform.Companion_Default___.Input(config, input) + output = _out0 + return output +} +func (_static *CompanionStruct_Default___) ScanOutputTransform(config m_DdbMiddlewareConfig.Config, input m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.ScanOutputTransformInput) m_Wrappers.Result { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_ScanOutputTransformOutput_.Default()) + _ = output + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_ScanTransform.Companion_Default___.Output(config, input) + output = _out0 + return output +} +func (_static *CompanionStruct_Default___) QueryInputTransform(config m_DdbMiddlewareConfig.Config, input m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.QueryInputTransformInput) m_Wrappers.Result { + var output m_Wrappers.Result = m_Wrappers.Result{} + _ = output + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_QueryTransform.Companion_Default___.Input(config, input) + output = _out0 + return output +} +func (_static *CompanionStruct_Default___) QueryOutputTransform(config m_DdbMiddlewareConfig.Config, input m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.QueryOutputTransformInput) m_Wrappers.Result { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_QueryOutputTransformOutput_.Default()) + _ = output + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_QueryTransform.Companion_Default___.Output(config, input) + output = _out0 + return output +} +func (_static *CompanionStruct_Default___) TransactGetItemsInputTransform(config m_DdbMiddlewareConfig.Config, input m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.TransactGetItemsInputTransformInput) m_Wrappers.Result { + var output m_Wrappers.Result = m_Wrappers.Result{} + _ = output + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_TransactGetItemsTransform.Companion_Default___.Input(config, input) + output = _out0 + return output +} +func (_static *CompanionStruct_Default___) TransactGetItemsOutputTransform(config m_DdbMiddlewareConfig.Config, input m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.TransactGetItemsOutputTransformInput) m_Wrappers.Result { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_TransactGetItemsOutputTransformOutput_.Default()) + _ = output + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_TransactGetItemsTransform.Companion_Default___.Output(config, input) + output = _out0 + return output +} +func (_static *CompanionStruct_Default___) DeleteItemInputTransform(config m_DdbMiddlewareConfig.Config, input m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.DeleteItemInputTransformInput) m_Wrappers.Result { + var output m_Wrappers.Result = m_Wrappers.Result{} + _ = output + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_DeleteItemTransform.Companion_Default___.Input(config, input) + output = _out0 + return output +} +func (_static *CompanionStruct_Default___) DeleteItemOutputTransform(config m_DdbMiddlewareConfig.Config, input m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.DeleteItemOutputTransformInput) m_Wrappers.Result { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_DeleteItemOutputTransformOutput_.Default()) + _ = output + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_DeleteItemTransform.Companion_Default___.Output(config, input) + output = _out0 + return output +} +func (_static *CompanionStruct_Default___) ExecuteStatementInputTransform(config m_DdbMiddlewareConfig.Config, input m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.ExecuteStatementInputTransformInput) m_Wrappers.Result { + var output m_Wrappers.Result = m_Wrappers.Result{} + _ = output + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_ExecuteStatementTransform.Companion_Default___.Input(config, input) + output = _out0 + return output +} +func (_static *CompanionStruct_Default___) ExecuteStatementOutputTransform(config m_DdbMiddlewareConfig.Config, input m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.ExecuteStatementOutputTransformInput) m_Wrappers.Result { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_ExecuteStatementOutputTransformOutput_.Default()) + _ = output + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_ExecuteStatementTransform.Companion_Default___.Output(config, input) + output = _out0 + return output +} +func (_static *CompanionStruct_Default___) BatchExecuteStatementInputTransform(config m_DdbMiddlewareConfig.Config, input m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.BatchExecuteStatementInputTransformInput) m_Wrappers.Result { + var output m_Wrappers.Result = m_Wrappers.Result{} + _ = output + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_BatchExecuteStatementTransform.Companion_Default___.Input(config, input) + output = _out0 + return output +} +func (_static *CompanionStruct_Default___) BatchExecuteStatementOutputTransform(config m_DdbMiddlewareConfig.Config, input m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.BatchExecuteStatementOutputTransformInput) m_Wrappers.Result { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_BatchExecuteStatementOutputTransformOutput_.Default()) + _ = output + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_BatchExecuteStatementTransform.Companion_Default___.Output(config, input) + output = _out0 + return output +} +func (_static *CompanionStruct_Default___) ExecuteTransactionInputTransform(config m_DdbMiddlewareConfig.Config, input m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.ExecuteTransactionInputTransformInput) m_Wrappers.Result { + var output m_Wrappers.Result = m_Wrappers.Result{} + _ = output + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_ExecuteTransactionTransform.Companion_Default___.Input(config, input) + output = _out0 + return output +} +func (_static *CompanionStruct_Default___) ExecuteTransactionOutputTransform(config m_DdbMiddlewareConfig.Config, input m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.ExecuteTransactionOutputTransformInput) m_Wrappers.Result { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_ExecuteTransactionOutputTransformOutput_.Default()) + _ = output + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_ExecuteTransactionTransform.Companion_Default___.Output(config, input) + output = _out0 + return output +} +func (_static *CompanionStruct_Default___) ResolveAttributes(config m_DdbMiddlewareConfig.Config, input m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.ResolveAttributesInput) m_Wrappers.Result { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_ResolveAttributesOutput_.Default()) + _ = output + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_AttributeResolver.Companion_Default___.Resolve(config, input) + output = _out0 + return output +} + +// End of class Default__ diff --git a/customer-preview/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes/AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.go b/customer-preview/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes/AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.go new file mode 100644 index 000000000..1840b007d --- /dev/null +++ b/customer-preview/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes/AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.go @@ -0,0 +1,6309 @@ +// Package AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes +// Dafny module AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes compiled into Go + +package AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes + +import ( + os "os" + + m_ComAmazonawsDynamodbTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/ComAmazonawsDynamodbTypes" + m_Com_Amazonaws_Dynamodb "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/Com_Amazonaws_Dynamodb" + m_ComAmazonawsKmsTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/ComAmazonawsKmsTypes" + m_Com_Amazonaws_Kms "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/Com_Amazonaws_Kms" + m_AlgorithmSuites "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AlgorithmSuites" + m_AwsArnParsing "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsArnParsing" + m_AwsCryptographyKeyStoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreOperations" + m_AwsCryptographyKeyStoreTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreTypes" + m_AwsCryptographyMaterialProvidersOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersOperations" + m_AwsCryptographyMaterialProvidersTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersTypes" + m_AwsKmsDiscoveryKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsDiscoveryKeyring" + m_AwsKmsEcdhKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsEcdhKeyring" + m_AwsKmsHierarchicalKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsHierarchicalKeyring" + m_AwsKmsKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsKeyring" + m_AwsKmsMrkAreUnique "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkAreUnique" + m_AwsKmsMrkDiscoveryKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkDiscoveryKeyring" + m_AwsKmsMrkKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkKeyring" + m_AwsKmsMrkMatchForDecrypt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkMatchForDecrypt" + m_AwsKmsRsaKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsRsaKeyring" + m_AwsKmsUtils "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsUtils" + m_CMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CMM" + m_CacheConstants "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CacheConstants" + m_CanonicalEncryptionContext "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CanonicalEncryptionContext" + m_Commitment "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Commitment" + m_Constants "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Constants" + m_CreateKeyStoreTable "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeyStoreTable" + m_CreateKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeys" + m_DDBKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DDBKeystoreOperations" + m_DefaultCMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DefaultCMM" + m_DefaultClientSupplier "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DefaultClientSupplier" + m_Defaults "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Defaults" + m_DiscoveryMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DiscoveryMultiKeyring" + m_EcdhEdkWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/EcdhEdkWrapping" + m_EdkWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/EdkWrapping" + m_ErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/ErrorMessages" + m_GetKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/GetKeys" + m_IntermediateKeyWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/IntermediateKeyWrapping" + m_KMSKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KMSKeystoreOperations" + m_KeyStore "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStore" + m_KeyStoreErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStoreErrorMessages" + m_Keyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Keyring" + m_KmsArn "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KmsArn" + m_LocalCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/LocalCMC" + m_MaterialProviders "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MaterialProviders" + m_MaterialWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MaterialWrapping" + m_Materials "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Materials" + m_MrkAwareDiscoveryMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MrkAwareDiscoveryMultiKeyring" + m_MrkAwareStrictMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MrkAwareStrictMultiKeyring" + m_MultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MultiKeyring" + m_RawAESKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawAESKeyring" + m_RawECDHKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawECDHKeyring" + m_RawRSAKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawRSAKeyring" + m_RequiredEncryptionContextCMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RequiredEncryptionContextCMM" + m_StormTracker "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StormTracker" + m_StormTrackingCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StormTrackingCMC" + m_StrictMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StrictMultiKeyring" + m_Structure "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Structure" + m_SynchronizedLocalCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/SynchronizedLocalCMC" + m_Utils "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Utils" + m_AtomicPrimitives "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AtomicPrimitives" + m_AwsCryptographyPrimitivesOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesOperations" + m_AwsCryptographyPrimitivesTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesTypes" + m_Digest "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Digest" + m_HKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/HKDF" + m_KdfCtr "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/KdfCtr" + m_Random "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Random" + m_WrappedHKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHKDF" + m_WrappedHMAC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHMAC" + m_Actions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Actions" + m_Base64 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64" + m_Base64Lemmas "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64Lemmas" + m_BoundedInts "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/BoundedInts" + m_DivInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternals" + m_DivInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternalsNonlinear" + m_DivMod "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivMod" + m_FileIO "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FileIO" + m_FloatCompare "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FloatCompare" + m_Functions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Functions" + m_GeneralInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GeneralInternals" + m_GetOpt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GetOpt" + m_HexStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/HexStrings" + m_Logarithm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Logarithm" + m__Math "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Math_" + m_ModInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternals" + m_ModInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternalsNonlinear" + m_Mul "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Mul" + m_MulInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternals" + m_MulInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternalsNonlinear" + m_Power "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Power" + m_Relations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Relations" + m_Seq "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq" + m_Seq_MergeSort "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq_MergeSort" + m_Sorting "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Sorting" + m_StandardLibrary "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary" + m_StandardLibraryInterop "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibraryInterop" + m_StandardLibrary_Sequence "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_Sequence" + m_StandardLibrary_String "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_String" + m_StandardLibrary_UInt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_UInt" + m_Streams "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Streams" + m_UnicodeStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UnicodeStrings" + m__Unicode "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Unicode_" + m_Utf16EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf16EncodingForm" + m_Utf8EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf8EncodingForm" + m_Wrappers "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers" + m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorOperations "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorOperations" + m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes" + m_AwsCryptographyDbEncryptionSdkDynamoDbOperations "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbOperations" + m_AwsCryptographyDbEncryptionSdkDynamoDbTypes "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbTypes" + m_AwsCryptographyDbEncryptionSdkStructuredEncryptionOperations "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkStructuredEncryptionOperations" + m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes" + m_BaseBeacon "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/BaseBeacon" + m_Canonize "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/Canonize" + m_CompoundBeacon "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/CompoundBeacon" + m_DdbVirtualFields "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DdbVirtualFields" + m_DynamoDBFilterExpr "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDBFilterExpr" + m_DynamoDBSupport "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDBSupport" + m_DynamoDbEncryption "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbEncryption" + m_DynamoDbEncryptionBranchKeyIdSupplier "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbEncryptionBranchKeyIdSupplier" + m_DynamoDbEncryptionUtil "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbEncryptionUtil" + m_DynamoDbItemEncryptor "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbItemEncryptor" + m_DynamoDbItemEncryptorUtil "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbItemEncryptorUtil" + m_DynamoDbNormalizeNumber "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbNormalizeNumber" + m_DynamoDbUpdateExpr "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbUpdateExpr" + m_DynamoToStruct "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoToStruct" + m_InternalLegacyOverride "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/InternalLegacyOverride" + m__Maps "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/Maps_" + m_SearchConfigToInfo "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/SearchConfigToInfo" + m_SearchableEncryptionInfo "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/SearchableEncryptionInfo" + m_Sets "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/Sets" + m_SortCanon "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/SortCanon" + m_StructuredEncryption "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryption" + m_StructuredEncryptionCrypt "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionCrypt" + m_StructuredEncryptionFooter "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionFooter" + m_StructuredEncryptionHeader "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionHeader" + m_StructuredEncryptionPaths "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionPaths" + m_StructuredEncryptionUtil "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionUtil" + m_TermLoc "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/TermLoc" + m__System "github.com/dafny-lang/DafnyRuntimeGo/v4/System_" + _dafny "github.com/dafny-lang/DafnyRuntimeGo/v4/dafny" +) + +var _ = os.Args +var _ _dafny.Dummy__ +var _ m__System.Dummy__ +var _ m_Wrappers.Dummy__ +var _ m_BoundedInts.Dummy__ +var _ m_StandardLibrary_UInt.Dummy__ +var _ m_StandardLibrary_Sequence.Dummy__ +var _ m_StandardLibrary_String.Dummy__ +var _ m_StandardLibrary.Dummy__ +var _ m_AwsCryptographyPrimitivesTypes.Dummy__ +var _ m_Random.Dummy__ +var _ m_Digest.Dummy__ +var _ m_WrappedHMAC.Dummy__ +var _ m_HKDF.Dummy__ +var _ m_WrappedHKDF.Dummy__ +var _ m_KdfCtr.Dummy__ +var _ m_AwsCryptographyPrimitivesOperations.Dummy__ +var _ m_AtomicPrimitives.Dummy__ +var _ m_ComAmazonawsDynamodbTypes.Dummy__ +var _ m_ComAmazonawsKmsTypes.Dummy__ +var _ m_AwsCryptographyKeyStoreTypes.Dummy__ +var _ m_AwsCryptographyMaterialProvidersTypes.Dummy__ +var _ m_Base64.Dummy__ +var _ m_AlgorithmSuites.Dummy__ +var _ m_Materials.Dummy__ +var _ m_Keyring.Dummy__ +var _ m_Relations.Dummy__ +var _ m_Seq_MergeSort.Dummy__ +var _ m__Math.Dummy__ +var _ m_Seq.Dummy__ +var _ m_MultiKeyring.Dummy__ +var _ m_AwsArnParsing.Dummy__ +var _ m_AwsKmsMrkAreUnique.Dummy__ +var _ m_Actions.Dummy__ +var _ m_AwsKmsMrkMatchForDecrypt.Dummy__ +var _ m_AwsKmsUtils.Dummy__ +var _ m_Constants.Dummy__ +var _ m_MaterialWrapping.Dummy__ +var _ m_CanonicalEncryptionContext.Dummy__ +var _ m_IntermediateKeyWrapping.Dummy__ +var _ m_EdkWrapping.Dummy__ +var _ m_ErrorMessages.Dummy__ +var _ m_AwsKmsKeyring.Dummy__ +var _ m_StrictMultiKeyring.Dummy__ +var _ m_AwsKmsDiscoveryKeyring.Dummy__ +var _ m_Com_Amazonaws_Kms.Dummy__ +var _ m_Com_Amazonaws_Dynamodb.Dummy__ +var _ m_DiscoveryMultiKeyring.Dummy__ +var _ m_AwsKmsMrkDiscoveryKeyring.Dummy__ +var _ m_MrkAwareDiscoveryMultiKeyring.Dummy__ +var _ m_AwsKmsMrkKeyring.Dummy__ +var _ m_MrkAwareStrictMultiKeyring.Dummy__ +var _ m_LocalCMC.Dummy__ +var _ m_SynchronizedLocalCMC.Dummy__ +var _ m_StormTracker.Dummy__ +var _ m_StormTrackingCMC.Dummy__ +var _ m_CacheConstants.Dummy__ +var _ m_AwsKmsHierarchicalKeyring.Dummy__ +var _ m_AwsKmsRsaKeyring.Dummy__ +var _ m_EcdhEdkWrapping.Dummy__ +var _ m_RawECDHKeyring.Dummy__ +var _ m_AwsKmsEcdhKeyring.Dummy__ +var _ m_RawAESKeyring.Dummy__ +var _ m_RawRSAKeyring.Dummy__ +var _ m_CMM.Dummy__ +var _ m_Defaults.Dummy__ +var _ m_Commitment.Dummy__ +var _ m_DefaultCMM.Dummy__ +var _ m_DefaultClientSupplier.Dummy__ +var _ m_Utils.Dummy__ +var _ m_RequiredEncryptionContextCMM.Dummy__ +var _ m_AwsCryptographyMaterialProvidersOperations.Dummy__ +var _ m_MaterialProviders.Dummy__ +var _ m_KeyStoreErrorMessages.Dummy__ +var _ m_KmsArn.Dummy__ +var _ m_Structure.Dummy__ +var _ m_KMSKeystoreOperations.Dummy__ +var _ m_DDBKeystoreOperations.Dummy__ +var _ m_CreateKeys.Dummy__ +var _ m_CreateKeyStoreTable.Dummy__ +var _ m_GetKeys.Dummy__ +var _ m_AwsCryptographyKeyStoreOperations.Dummy__ +var _ m_KeyStore.Dummy__ +var _ m__Unicode.Dummy__ +var _ m_Functions.Dummy__ +var _ m_Utf8EncodingForm.Dummy__ +var _ m_Utf16EncodingForm.Dummy__ +var _ m_UnicodeStrings.Dummy__ +var _ m_FileIO.Dummy__ +var _ m_GeneralInternals.Dummy__ +var _ m_MulInternalsNonlinear.Dummy__ +var _ m_MulInternals.Dummy__ +var _ m_Mul.Dummy__ +var _ m_ModInternalsNonlinear.Dummy__ +var _ m_DivInternalsNonlinear.Dummy__ +var _ m_ModInternals.Dummy__ +var _ m_DivInternals.Dummy__ +var _ m_DivMod.Dummy__ +var _ m_Power.Dummy__ +var _ m_Logarithm.Dummy__ +var _ m_StandardLibraryInterop.Dummy__ +var _ m_Streams.Dummy__ +var _ m_Sorting.Dummy__ +var _ m_HexStrings.Dummy__ +var _ m_GetOpt.Dummy__ +var _ m_FloatCompare.Dummy__ +var _ m_Base64Lemmas.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Dummy__ +var _ m_StructuredEncryptionUtil.Dummy__ +var _ m_Sets.Dummy__ +var _ m_StructuredEncryptionPaths.Dummy__ +var _ m_StructuredEncryptionHeader.Dummy__ +var _ m_StructuredEncryptionFooter.Dummy__ +var _ m_SortCanon.Dummy__ +var _ m_Canonize.Dummy__ +var _ m_StructuredEncryptionCrypt.Dummy__ +var _ m__Maps.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkStructuredEncryptionOperations.Dummy__ +var _ m_StructuredEncryption.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Dummy__ +var _ m_DynamoDbEncryptionUtil.Dummy__ +var _ m_DynamoDbNormalizeNumber.Dummy__ +var _ m_DynamoToStruct.Dummy__ +var _ m_DynamoDbItemEncryptorUtil.Dummy__ +var _ m_InternalLegacyOverride.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorOperations.Dummy__ +var _ m_DynamoDbItemEncryptor.Dummy__ +var _ m_DynamoDbEncryptionBranchKeyIdSupplier.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkDynamoDbOperations.Dummy__ +var _ m_DynamoDbEncryption.Dummy__ +var _ m_TermLoc.Dummy__ +var _ m_DdbVirtualFields.Dummy__ +var _ m_DynamoDbUpdateExpr.Dummy__ +var _ m_BaseBeacon.Dummy__ +var _ m_CompoundBeacon.Dummy__ +var _ m_SearchableEncryptionInfo.Dummy__ +var _ m_DynamoDBFilterExpr.Dummy__ +var _ m_DynamoDBSupport.Dummy__ +var _ m_SearchConfigToInfo.Dummy__ + +type Dummy__ struct{} + +// Definition of class Default__ +type Default__ struct { + dummy byte +} + +func New_Default___() *Default__ { + _this := Default__{} + + return &_this +} + +type CompanionStruct_Default___ struct { +} + +var Companion_Default___ = CompanionStruct_Default___{} + +func (_this *Default__) Equals(other *Default__) bool { + return _this == other +} + +func (_this *Default__) EqualsGeneric(x interface{}) bool { + other, ok := x.(*Default__) + return ok && _this.Equals(other) +} + +func (*Default__) String() string { + return "AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Default__" +} +func (_this *Default__) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = &Default__{} + +func (_static *CompanionStruct_Default___) IsDummySubsetType(x _dafny.Int) bool { + return (x).Sign() == 1 +} + +// End of class Default__ + +// Definition of datatype DafnyCallEvent +type DafnyCallEvent struct { + Data_DafnyCallEvent_ +} + +func (_this DafnyCallEvent) Get_() Data_DafnyCallEvent_ { + return _this.Data_DafnyCallEvent_ +} + +type Data_DafnyCallEvent_ interface { + isDafnyCallEvent() +} + +type CompanionStruct_DafnyCallEvent_ struct { +} + +var Companion_DafnyCallEvent_ = CompanionStruct_DafnyCallEvent_{} + +type DafnyCallEvent_DafnyCallEvent struct { + Input interface{} + Output interface{} +} + +func (DafnyCallEvent_DafnyCallEvent) isDafnyCallEvent() {} + +func (CompanionStruct_DafnyCallEvent_) Create_DafnyCallEvent_(Input interface{}, Output interface{}) DafnyCallEvent { + return DafnyCallEvent{DafnyCallEvent_DafnyCallEvent{Input, Output}} +} + +func (_this DafnyCallEvent) Is_DafnyCallEvent() bool { + _, ok := _this.Get_().(DafnyCallEvent_DafnyCallEvent) + return ok +} + +func (CompanionStruct_DafnyCallEvent_) Default(_default_I interface{}, _default_O interface{}) DafnyCallEvent { + return Companion_DafnyCallEvent_.Create_DafnyCallEvent_(_default_I, _default_O) +} + +func (_this DafnyCallEvent) Dtor_input() interface{} { + return _this.Get_().(DafnyCallEvent_DafnyCallEvent).Input +} + +func (_this DafnyCallEvent) Dtor_output() interface{} { + return _this.Get_().(DafnyCallEvent_DafnyCallEvent).Output +} + +func (_this DafnyCallEvent) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case DafnyCallEvent_DafnyCallEvent: + { + return "AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.DafnyCallEvent.DafnyCallEvent" + "(" + _dafny.String(data.Input) + ", " + _dafny.String(data.Output) + ")" + } + default: + { + return "" + } + } +} + +func (_this DafnyCallEvent) Equals(other DafnyCallEvent) bool { + switch data1 := _this.Get_().(type) { + case DafnyCallEvent_DafnyCallEvent: + { + data2, ok := other.Get_().(DafnyCallEvent_DafnyCallEvent) + return ok && _dafny.AreEqual(data1.Input, data2.Input) && _dafny.AreEqual(data1.Output, data2.Output) + } + default: + { + return false // unexpected + } + } +} + +func (_this DafnyCallEvent) EqualsGeneric(other interface{}) bool { + typed, ok := other.(DafnyCallEvent) + return ok && _this.Equals(typed) +} + +func Type_DafnyCallEvent_(Type_I_ _dafny.TypeDescriptor, Type_O_ _dafny.TypeDescriptor) _dafny.TypeDescriptor { + return type_DafnyCallEvent_{Type_I_, Type_O_} +} + +type type_DafnyCallEvent_ struct { + Type_I_ _dafny.TypeDescriptor + Type_O_ _dafny.TypeDescriptor +} + +func (_this type_DafnyCallEvent_) Default() interface{} { + Type_I_ := _this.Type_I_ + _ = Type_I_ + Type_O_ := _this.Type_O_ + _ = Type_O_ + return Companion_DafnyCallEvent_.Default(Type_I_.Default(), Type_O_.Default()) +} + +func (_this type_DafnyCallEvent_) String() string { + return "AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.DafnyCallEvent" +} +func (_this DafnyCallEvent) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = DafnyCallEvent{} + +// End of datatype DafnyCallEvent + +// Definition of datatype BatchExecuteStatementInputTransformInput +type BatchExecuteStatementInputTransformInput struct { + Data_BatchExecuteStatementInputTransformInput_ +} + +func (_this BatchExecuteStatementInputTransformInput) Get_() Data_BatchExecuteStatementInputTransformInput_ { + return _this.Data_BatchExecuteStatementInputTransformInput_ +} + +type Data_BatchExecuteStatementInputTransformInput_ interface { + isBatchExecuteStatementInputTransformInput() +} + +type CompanionStruct_BatchExecuteStatementInputTransformInput_ struct { +} + +var Companion_BatchExecuteStatementInputTransformInput_ = CompanionStruct_BatchExecuteStatementInputTransformInput_{} + +type BatchExecuteStatementInputTransformInput_BatchExecuteStatementInputTransformInput struct { + SdkInput m_ComAmazonawsDynamodbTypes.BatchExecuteStatementInput +} + +func (BatchExecuteStatementInputTransformInput_BatchExecuteStatementInputTransformInput) isBatchExecuteStatementInputTransformInput() { +} + +func (CompanionStruct_BatchExecuteStatementInputTransformInput_) Create_BatchExecuteStatementInputTransformInput_(SdkInput m_ComAmazonawsDynamodbTypes.BatchExecuteStatementInput) BatchExecuteStatementInputTransformInput { + return BatchExecuteStatementInputTransformInput{BatchExecuteStatementInputTransformInput_BatchExecuteStatementInputTransformInput{SdkInput}} +} + +func (_this BatchExecuteStatementInputTransformInput) Is_BatchExecuteStatementInputTransformInput() bool { + _, ok := _this.Get_().(BatchExecuteStatementInputTransformInput_BatchExecuteStatementInputTransformInput) + return ok +} + +func (CompanionStruct_BatchExecuteStatementInputTransformInput_) Default() BatchExecuteStatementInputTransformInput { + return Companion_BatchExecuteStatementInputTransformInput_.Create_BatchExecuteStatementInputTransformInput_(m_ComAmazonawsDynamodbTypes.Companion_BatchExecuteStatementInput_.Default()) +} + +func (_this BatchExecuteStatementInputTransformInput) Dtor_sdkInput() m_ComAmazonawsDynamodbTypes.BatchExecuteStatementInput { + return _this.Get_().(BatchExecuteStatementInputTransformInput_BatchExecuteStatementInputTransformInput).SdkInput +} + +func (_this BatchExecuteStatementInputTransformInput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case BatchExecuteStatementInputTransformInput_BatchExecuteStatementInputTransformInput: + { + return "AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.BatchExecuteStatementInputTransformInput.BatchExecuteStatementInputTransformInput" + "(" + _dafny.String(data.SdkInput) + ")" + } + default: + { + return "" + } + } +} + +func (_this BatchExecuteStatementInputTransformInput) Equals(other BatchExecuteStatementInputTransformInput) bool { + switch data1 := _this.Get_().(type) { + case BatchExecuteStatementInputTransformInput_BatchExecuteStatementInputTransformInput: + { + data2, ok := other.Get_().(BatchExecuteStatementInputTransformInput_BatchExecuteStatementInputTransformInput) + return ok && data1.SdkInput.Equals(data2.SdkInput) + } + default: + { + return false // unexpected + } + } +} + +func (_this BatchExecuteStatementInputTransformInput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(BatchExecuteStatementInputTransformInput) + return ok && _this.Equals(typed) +} + +func Type_BatchExecuteStatementInputTransformInput_() _dafny.TypeDescriptor { + return type_BatchExecuteStatementInputTransformInput_{} +} + +type type_BatchExecuteStatementInputTransformInput_ struct { +} + +func (_this type_BatchExecuteStatementInputTransformInput_) Default() interface{} { + return Companion_BatchExecuteStatementInputTransformInput_.Default() +} + +func (_this type_BatchExecuteStatementInputTransformInput_) String() string { + return "AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.BatchExecuteStatementInputTransformInput" +} +func (_this BatchExecuteStatementInputTransformInput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = BatchExecuteStatementInputTransformInput{} + +// End of datatype BatchExecuteStatementInputTransformInput + +// Definition of datatype BatchExecuteStatementInputTransformOutput +type BatchExecuteStatementInputTransformOutput struct { + Data_BatchExecuteStatementInputTransformOutput_ +} + +func (_this BatchExecuteStatementInputTransformOutput) Get_() Data_BatchExecuteStatementInputTransformOutput_ { + return _this.Data_BatchExecuteStatementInputTransformOutput_ +} + +type Data_BatchExecuteStatementInputTransformOutput_ interface { + isBatchExecuteStatementInputTransformOutput() +} + +type CompanionStruct_BatchExecuteStatementInputTransformOutput_ struct { +} + +var Companion_BatchExecuteStatementInputTransformOutput_ = CompanionStruct_BatchExecuteStatementInputTransformOutput_{} + +type BatchExecuteStatementInputTransformOutput_BatchExecuteStatementInputTransformOutput struct { + TransformedInput m_ComAmazonawsDynamodbTypes.BatchExecuteStatementInput +} + +func (BatchExecuteStatementInputTransformOutput_BatchExecuteStatementInputTransformOutput) isBatchExecuteStatementInputTransformOutput() { +} + +func (CompanionStruct_BatchExecuteStatementInputTransformOutput_) Create_BatchExecuteStatementInputTransformOutput_(TransformedInput m_ComAmazonawsDynamodbTypes.BatchExecuteStatementInput) BatchExecuteStatementInputTransformOutput { + return BatchExecuteStatementInputTransformOutput{BatchExecuteStatementInputTransformOutput_BatchExecuteStatementInputTransformOutput{TransformedInput}} +} + +func (_this BatchExecuteStatementInputTransformOutput) Is_BatchExecuteStatementInputTransformOutput() bool { + _, ok := _this.Get_().(BatchExecuteStatementInputTransformOutput_BatchExecuteStatementInputTransformOutput) + return ok +} + +func (CompanionStruct_BatchExecuteStatementInputTransformOutput_) Default() BatchExecuteStatementInputTransformOutput { + return Companion_BatchExecuteStatementInputTransformOutput_.Create_BatchExecuteStatementInputTransformOutput_(m_ComAmazonawsDynamodbTypes.Companion_BatchExecuteStatementInput_.Default()) +} + +func (_this BatchExecuteStatementInputTransformOutput) Dtor_transformedInput() m_ComAmazonawsDynamodbTypes.BatchExecuteStatementInput { + return _this.Get_().(BatchExecuteStatementInputTransformOutput_BatchExecuteStatementInputTransformOutput).TransformedInput +} + +func (_this BatchExecuteStatementInputTransformOutput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case BatchExecuteStatementInputTransformOutput_BatchExecuteStatementInputTransformOutput: + { + return "AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.BatchExecuteStatementInputTransformOutput.BatchExecuteStatementInputTransformOutput" + "(" + _dafny.String(data.TransformedInput) + ")" + } + default: + { + return "" + } + } +} + +func (_this BatchExecuteStatementInputTransformOutput) Equals(other BatchExecuteStatementInputTransformOutput) bool { + switch data1 := _this.Get_().(type) { + case BatchExecuteStatementInputTransformOutput_BatchExecuteStatementInputTransformOutput: + { + data2, ok := other.Get_().(BatchExecuteStatementInputTransformOutput_BatchExecuteStatementInputTransformOutput) + return ok && data1.TransformedInput.Equals(data2.TransformedInput) + } + default: + { + return false // unexpected + } + } +} + +func (_this BatchExecuteStatementInputTransformOutput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(BatchExecuteStatementInputTransformOutput) + return ok && _this.Equals(typed) +} + +func Type_BatchExecuteStatementInputTransformOutput_() _dafny.TypeDescriptor { + return type_BatchExecuteStatementInputTransformOutput_{} +} + +type type_BatchExecuteStatementInputTransformOutput_ struct { +} + +func (_this type_BatchExecuteStatementInputTransformOutput_) Default() interface{} { + return Companion_BatchExecuteStatementInputTransformOutput_.Default() +} + +func (_this type_BatchExecuteStatementInputTransformOutput_) String() string { + return "AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.BatchExecuteStatementInputTransformOutput" +} +func (_this BatchExecuteStatementInputTransformOutput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = BatchExecuteStatementInputTransformOutput{} + +// End of datatype BatchExecuteStatementInputTransformOutput + +// Definition of datatype BatchExecuteStatementOutputTransformInput +type BatchExecuteStatementOutputTransformInput struct { + Data_BatchExecuteStatementOutputTransformInput_ +} + +func (_this BatchExecuteStatementOutputTransformInput) Get_() Data_BatchExecuteStatementOutputTransformInput_ { + return _this.Data_BatchExecuteStatementOutputTransformInput_ +} + +type Data_BatchExecuteStatementOutputTransformInput_ interface { + isBatchExecuteStatementOutputTransformInput() +} + +type CompanionStruct_BatchExecuteStatementOutputTransformInput_ struct { +} + +var Companion_BatchExecuteStatementOutputTransformInput_ = CompanionStruct_BatchExecuteStatementOutputTransformInput_{} + +type BatchExecuteStatementOutputTransformInput_BatchExecuteStatementOutputTransformInput struct { + SdkOutput m_ComAmazonawsDynamodbTypes.BatchExecuteStatementOutput + OriginalInput m_ComAmazonawsDynamodbTypes.BatchExecuteStatementInput +} + +func (BatchExecuteStatementOutputTransformInput_BatchExecuteStatementOutputTransformInput) isBatchExecuteStatementOutputTransformInput() { +} + +func (CompanionStruct_BatchExecuteStatementOutputTransformInput_) Create_BatchExecuteStatementOutputTransformInput_(SdkOutput m_ComAmazonawsDynamodbTypes.BatchExecuteStatementOutput, OriginalInput m_ComAmazonawsDynamodbTypes.BatchExecuteStatementInput) BatchExecuteStatementOutputTransformInput { + return BatchExecuteStatementOutputTransformInput{BatchExecuteStatementOutputTransformInput_BatchExecuteStatementOutputTransformInput{SdkOutput, OriginalInput}} +} + +func (_this BatchExecuteStatementOutputTransformInput) Is_BatchExecuteStatementOutputTransformInput() bool { + _, ok := _this.Get_().(BatchExecuteStatementOutputTransformInput_BatchExecuteStatementOutputTransformInput) + return ok +} + +func (CompanionStruct_BatchExecuteStatementOutputTransformInput_) Default() BatchExecuteStatementOutputTransformInput { + return Companion_BatchExecuteStatementOutputTransformInput_.Create_BatchExecuteStatementOutputTransformInput_(m_ComAmazonawsDynamodbTypes.Companion_BatchExecuteStatementOutput_.Default(), m_ComAmazonawsDynamodbTypes.Companion_BatchExecuteStatementInput_.Default()) +} + +func (_this BatchExecuteStatementOutputTransformInput) Dtor_sdkOutput() m_ComAmazonawsDynamodbTypes.BatchExecuteStatementOutput { + return _this.Get_().(BatchExecuteStatementOutputTransformInput_BatchExecuteStatementOutputTransformInput).SdkOutput +} + +func (_this BatchExecuteStatementOutputTransformInput) Dtor_originalInput() m_ComAmazonawsDynamodbTypes.BatchExecuteStatementInput { + return _this.Get_().(BatchExecuteStatementOutputTransformInput_BatchExecuteStatementOutputTransformInput).OriginalInput +} + +func (_this BatchExecuteStatementOutputTransformInput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case BatchExecuteStatementOutputTransformInput_BatchExecuteStatementOutputTransformInput: + { + return "AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.BatchExecuteStatementOutputTransformInput.BatchExecuteStatementOutputTransformInput" + "(" + _dafny.String(data.SdkOutput) + ", " + _dafny.String(data.OriginalInput) + ")" + } + default: + { + return "" + } + } +} + +func (_this BatchExecuteStatementOutputTransformInput) Equals(other BatchExecuteStatementOutputTransformInput) bool { + switch data1 := _this.Get_().(type) { + case BatchExecuteStatementOutputTransformInput_BatchExecuteStatementOutputTransformInput: + { + data2, ok := other.Get_().(BatchExecuteStatementOutputTransformInput_BatchExecuteStatementOutputTransformInput) + return ok && data1.SdkOutput.Equals(data2.SdkOutput) && data1.OriginalInput.Equals(data2.OriginalInput) + } + default: + { + return false // unexpected + } + } +} + +func (_this BatchExecuteStatementOutputTransformInput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(BatchExecuteStatementOutputTransformInput) + return ok && _this.Equals(typed) +} + +func Type_BatchExecuteStatementOutputTransformInput_() _dafny.TypeDescriptor { + return type_BatchExecuteStatementOutputTransformInput_{} +} + +type type_BatchExecuteStatementOutputTransformInput_ struct { +} + +func (_this type_BatchExecuteStatementOutputTransformInput_) Default() interface{} { + return Companion_BatchExecuteStatementOutputTransformInput_.Default() +} + +func (_this type_BatchExecuteStatementOutputTransformInput_) String() string { + return "AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.BatchExecuteStatementOutputTransformInput" +} +func (_this BatchExecuteStatementOutputTransformInput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = BatchExecuteStatementOutputTransformInput{} + +// End of datatype BatchExecuteStatementOutputTransformInput + +// Definition of datatype BatchExecuteStatementOutputTransformOutput +type BatchExecuteStatementOutputTransformOutput struct { + Data_BatchExecuteStatementOutputTransformOutput_ +} + +func (_this BatchExecuteStatementOutputTransformOutput) Get_() Data_BatchExecuteStatementOutputTransformOutput_ { + return _this.Data_BatchExecuteStatementOutputTransformOutput_ +} + +type Data_BatchExecuteStatementOutputTransformOutput_ interface { + isBatchExecuteStatementOutputTransformOutput() +} + +type CompanionStruct_BatchExecuteStatementOutputTransformOutput_ struct { +} + +var Companion_BatchExecuteStatementOutputTransformOutput_ = CompanionStruct_BatchExecuteStatementOutputTransformOutput_{} + +type BatchExecuteStatementOutputTransformOutput_BatchExecuteStatementOutputTransformOutput struct { + TransformedOutput m_ComAmazonawsDynamodbTypes.BatchExecuteStatementOutput +} + +func (BatchExecuteStatementOutputTransformOutput_BatchExecuteStatementOutputTransformOutput) isBatchExecuteStatementOutputTransformOutput() { +} + +func (CompanionStruct_BatchExecuteStatementOutputTransformOutput_) Create_BatchExecuteStatementOutputTransformOutput_(TransformedOutput m_ComAmazonawsDynamodbTypes.BatchExecuteStatementOutput) BatchExecuteStatementOutputTransformOutput { + return BatchExecuteStatementOutputTransformOutput{BatchExecuteStatementOutputTransformOutput_BatchExecuteStatementOutputTransformOutput{TransformedOutput}} +} + +func (_this BatchExecuteStatementOutputTransformOutput) Is_BatchExecuteStatementOutputTransformOutput() bool { + _, ok := _this.Get_().(BatchExecuteStatementOutputTransformOutput_BatchExecuteStatementOutputTransformOutput) + return ok +} + +func (CompanionStruct_BatchExecuteStatementOutputTransformOutput_) Default() BatchExecuteStatementOutputTransformOutput { + return Companion_BatchExecuteStatementOutputTransformOutput_.Create_BatchExecuteStatementOutputTransformOutput_(m_ComAmazonawsDynamodbTypes.Companion_BatchExecuteStatementOutput_.Default()) +} + +func (_this BatchExecuteStatementOutputTransformOutput) Dtor_transformedOutput() m_ComAmazonawsDynamodbTypes.BatchExecuteStatementOutput { + return _this.Get_().(BatchExecuteStatementOutputTransformOutput_BatchExecuteStatementOutputTransformOutput).TransformedOutput +} + +func (_this BatchExecuteStatementOutputTransformOutput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case BatchExecuteStatementOutputTransformOutput_BatchExecuteStatementOutputTransformOutput: + { + return "AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.BatchExecuteStatementOutputTransformOutput.BatchExecuteStatementOutputTransformOutput" + "(" + _dafny.String(data.TransformedOutput) + ")" + } + default: + { + return "" + } + } +} + +func (_this BatchExecuteStatementOutputTransformOutput) Equals(other BatchExecuteStatementOutputTransformOutput) bool { + switch data1 := _this.Get_().(type) { + case BatchExecuteStatementOutputTransformOutput_BatchExecuteStatementOutputTransformOutput: + { + data2, ok := other.Get_().(BatchExecuteStatementOutputTransformOutput_BatchExecuteStatementOutputTransformOutput) + return ok && data1.TransformedOutput.Equals(data2.TransformedOutput) + } + default: + { + return false // unexpected + } + } +} + +func (_this BatchExecuteStatementOutputTransformOutput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(BatchExecuteStatementOutputTransformOutput) + return ok && _this.Equals(typed) +} + +func Type_BatchExecuteStatementOutputTransformOutput_() _dafny.TypeDescriptor { + return type_BatchExecuteStatementOutputTransformOutput_{} +} + +type type_BatchExecuteStatementOutputTransformOutput_ struct { +} + +func (_this type_BatchExecuteStatementOutputTransformOutput_) Default() interface{} { + return Companion_BatchExecuteStatementOutputTransformOutput_.Default() +} + +func (_this type_BatchExecuteStatementOutputTransformOutput_) String() string { + return "AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.BatchExecuteStatementOutputTransformOutput" +} +func (_this BatchExecuteStatementOutputTransformOutput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = BatchExecuteStatementOutputTransformOutput{} + +// End of datatype BatchExecuteStatementOutputTransformOutput + +// Definition of datatype BatchGetItemInputTransformInput +type BatchGetItemInputTransformInput struct { + Data_BatchGetItemInputTransformInput_ +} + +func (_this BatchGetItemInputTransformInput) Get_() Data_BatchGetItemInputTransformInput_ { + return _this.Data_BatchGetItemInputTransformInput_ +} + +type Data_BatchGetItemInputTransformInput_ interface { + isBatchGetItemInputTransformInput() +} + +type CompanionStruct_BatchGetItemInputTransformInput_ struct { +} + +var Companion_BatchGetItemInputTransformInput_ = CompanionStruct_BatchGetItemInputTransformInput_{} + +type BatchGetItemInputTransformInput_BatchGetItemInputTransformInput struct { + SdkInput m_ComAmazonawsDynamodbTypes.BatchGetItemInput +} + +func (BatchGetItemInputTransformInput_BatchGetItemInputTransformInput) isBatchGetItemInputTransformInput() { +} + +func (CompanionStruct_BatchGetItemInputTransformInput_) Create_BatchGetItemInputTransformInput_(SdkInput m_ComAmazonawsDynamodbTypes.BatchGetItemInput) BatchGetItemInputTransformInput { + return BatchGetItemInputTransformInput{BatchGetItemInputTransformInput_BatchGetItemInputTransformInput{SdkInput}} +} + +func (_this BatchGetItemInputTransformInput) Is_BatchGetItemInputTransformInput() bool { + _, ok := _this.Get_().(BatchGetItemInputTransformInput_BatchGetItemInputTransformInput) + return ok +} + +func (CompanionStruct_BatchGetItemInputTransformInput_) Default() BatchGetItemInputTransformInput { + return Companion_BatchGetItemInputTransformInput_.Create_BatchGetItemInputTransformInput_(m_ComAmazonawsDynamodbTypes.Companion_BatchGetItemInput_.Default()) +} + +func (_this BatchGetItemInputTransformInput) Dtor_sdkInput() m_ComAmazonawsDynamodbTypes.BatchGetItemInput { + return _this.Get_().(BatchGetItemInputTransformInput_BatchGetItemInputTransformInput).SdkInput +} + +func (_this BatchGetItemInputTransformInput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case BatchGetItemInputTransformInput_BatchGetItemInputTransformInput: + { + return "AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.BatchGetItemInputTransformInput.BatchGetItemInputTransformInput" + "(" + _dafny.String(data.SdkInput) + ")" + } + default: + { + return "" + } + } +} + +func (_this BatchGetItemInputTransformInput) Equals(other BatchGetItemInputTransformInput) bool { + switch data1 := _this.Get_().(type) { + case BatchGetItemInputTransformInput_BatchGetItemInputTransformInput: + { + data2, ok := other.Get_().(BatchGetItemInputTransformInput_BatchGetItemInputTransformInput) + return ok && data1.SdkInput.Equals(data2.SdkInput) + } + default: + { + return false // unexpected + } + } +} + +func (_this BatchGetItemInputTransformInput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(BatchGetItemInputTransformInput) + return ok && _this.Equals(typed) +} + +func Type_BatchGetItemInputTransformInput_() _dafny.TypeDescriptor { + return type_BatchGetItemInputTransformInput_{} +} + +type type_BatchGetItemInputTransformInput_ struct { +} + +func (_this type_BatchGetItemInputTransformInput_) Default() interface{} { + return Companion_BatchGetItemInputTransformInput_.Default() +} + +func (_this type_BatchGetItemInputTransformInput_) String() string { + return "AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.BatchGetItemInputTransformInput" +} +func (_this BatchGetItemInputTransformInput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = BatchGetItemInputTransformInput{} + +// End of datatype BatchGetItemInputTransformInput + +// Definition of datatype BatchGetItemInputTransformOutput +type BatchGetItemInputTransformOutput struct { + Data_BatchGetItemInputTransformOutput_ +} + +func (_this BatchGetItemInputTransformOutput) Get_() Data_BatchGetItemInputTransformOutput_ { + return _this.Data_BatchGetItemInputTransformOutput_ +} + +type Data_BatchGetItemInputTransformOutput_ interface { + isBatchGetItemInputTransformOutput() +} + +type CompanionStruct_BatchGetItemInputTransformOutput_ struct { +} + +var Companion_BatchGetItemInputTransformOutput_ = CompanionStruct_BatchGetItemInputTransformOutput_{} + +type BatchGetItemInputTransformOutput_BatchGetItemInputTransformOutput struct { + TransformedInput m_ComAmazonawsDynamodbTypes.BatchGetItemInput +} + +func (BatchGetItemInputTransformOutput_BatchGetItemInputTransformOutput) isBatchGetItemInputTransformOutput() { +} + +func (CompanionStruct_BatchGetItemInputTransformOutput_) Create_BatchGetItemInputTransformOutput_(TransformedInput m_ComAmazonawsDynamodbTypes.BatchGetItemInput) BatchGetItemInputTransformOutput { + return BatchGetItemInputTransformOutput{BatchGetItemInputTransformOutput_BatchGetItemInputTransformOutput{TransformedInput}} +} + +func (_this BatchGetItemInputTransformOutput) Is_BatchGetItemInputTransformOutput() bool { + _, ok := _this.Get_().(BatchGetItemInputTransformOutput_BatchGetItemInputTransformOutput) + return ok +} + +func (CompanionStruct_BatchGetItemInputTransformOutput_) Default() BatchGetItemInputTransformOutput { + return Companion_BatchGetItemInputTransformOutput_.Create_BatchGetItemInputTransformOutput_(m_ComAmazonawsDynamodbTypes.Companion_BatchGetItemInput_.Default()) +} + +func (_this BatchGetItemInputTransformOutput) Dtor_transformedInput() m_ComAmazonawsDynamodbTypes.BatchGetItemInput { + return _this.Get_().(BatchGetItemInputTransformOutput_BatchGetItemInputTransformOutput).TransformedInput +} + +func (_this BatchGetItemInputTransformOutput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case BatchGetItemInputTransformOutput_BatchGetItemInputTransformOutput: + { + return "AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.BatchGetItemInputTransformOutput.BatchGetItemInputTransformOutput" + "(" + _dafny.String(data.TransformedInput) + ")" + } + default: + { + return "" + } + } +} + +func (_this BatchGetItemInputTransformOutput) Equals(other BatchGetItemInputTransformOutput) bool { + switch data1 := _this.Get_().(type) { + case BatchGetItemInputTransformOutput_BatchGetItemInputTransformOutput: + { + data2, ok := other.Get_().(BatchGetItemInputTransformOutput_BatchGetItemInputTransformOutput) + return ok && data1.TransformedInput.Equals(data2.TransformedInput) + } + default: + { + return false // unexpected + } + } +} + +func (_this BatchGetItemInputTransformOutput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(BatchGetItemInputTransformOutput) + return ok && _this.Equals(typed) +} + +func Type_BatchGetItemInputTransformOutput_() _dafny.TypeDescriptor { + return type_BatchGetItemInputTransformOutput_{} +} + +type type_BatchGetItemInputTransformOutput_ struct { +} + +func (_this type_BatchGetItemInputTransformOutput_) Default() interface{} { + return Companion_BatchGetItemInputTransformOutput_.Default() +} + +func (_this type_BatchGetItemInputTransformOutput_) String() string { + return "AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.BatchGetItemInputTransformOutput" +} +func (_this BatchGetItemInputTransformOutput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = BatchGetItemInputTransformOutput{} + +// End of datatype BatchGetItemInputTransformOutput + +// Definition of datatype BatchGetItemOutputTransformInput +type BatchGetItemOutputTransformInput struct { + Data_BatchGetItemOutputTransformInput_ +} + +func (_this BatchGetItemOutputTransformInput) Get_() Data_BatchGetItemOutputTransformInput_ { + return _this.Data_BatchGetItemOutputTransformInput_ +} + +type Data_BatchGetItemOutputTransformInput_ interface { + isBatchGetItemOutputTransformInput() +} + +type CompanionStruct_BatchGetItemOutputTransformInput_ struct { +} + +var Companion_BatchGetItemOutputTransformInput_ = CompanionStruct_BatchGetItemOutputTransformInput_{} + +type BatchGetItemOutputTransformInput_BatchGetItemOutputTransformInput struct { + SdkOutput m_ComAmazonawsDynamodbTypes.BatchGetItemOutput + OriginalInput m_ComAmazonawsDynamodbTypes.BatchGetItemInput +} + +func (BatchGetItemOutputTransformInput_BatchGetItemOutputTransformInput) isBatchGetItemOutputTransformInput() { +} + +func (CompanionStruct_BatchGetItemOutputTransformInput_) Create_BatchGetItemOutputTransformInput_(SdkOutput m_ComAmazonawsDynamodbTypes.BatchGetItemOutput, OriginalInput m_ComAmazonawsDynamodbTypes.BatchGetItemInput) BatchGetItemOutputTransformInput { + return BatchGetItemOutputTransformInput{BatchGetItemOutputTransformInput_BatchGetItemOutputTransformInput{SdkOutput, OriginalInput}} +} + +func (_this BatchGetItemOutputTransformInput) Is_BatchGetItemOutputTransformInput() bool { + _, ok := _this.Get_().(BatchGetItemOutputTransformInput_BatchGetItemOutputTransformInput) + return ok +} + +func (CompanionStruct_BatchGetItemOutputTransformInput_) Default() BatchGetItemOutputTransformInput { + return Companion_BatchGetItemOutputTransformInput_.Create_BatchGetItemOutputTransformInput_(m_ComAmazonawsDynamodbTypes.Companion_BatchGetItemOutput_.Default(), m_ComAmazonawsDynamodbTypes.Companion_BatchGetItemInput_.Default()) +} + +func (_this BatchGetItemOutputTransformInput) Dtor_sdkOutput() m_ComAmazonawsDynamodbTypes.BatchGetItemOutput { + return _this.Get_().(BatchGetItemOutputTransformInput_BatchGetItemOutputTransformInput).SdkOutput +} + +func (_this BatchGetItemOutputTransformInput) Dtor_originalInput() m_ComAmazonawsDynamodbTypes.BatchGetItemInput { + return _this.Get_().(BatchGetItemOutputTransformInput_BatchGetItemOutputTransformInput).OriginalInput +} + +func (_this BatchGetItemOutputTransformInput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case BatchGetItemOutputTransformInput_BatchGetItemOutputTransformInput: + { + return "AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.BatchGetItemOutputTransformInput.BatchGetItemOutputTransformInput" + "(" + _dafny.String(data.SdkOutput) + ", " + _dafny.String(data.OriginalInput) + ")" + } + default: + { + return "" + } + } +} + +func (_this BatchGetItemOutputTransformInput) Equals(other BatchGetItemOutputTransformInput) bool { + switch data1 := _this.Get_().(type) { + case BatchGetItemOutputTransformInput_BatchGetItemOutputTransformInput: + { + data2, ok := other.Get_().(BatchGetItemOutputTransformInput_BatchGetItemOutputTransformInput) + return ok && data1.SdkOutput.Equals(data2.SdkOutput) && data1.OriginalInput.Equals(data2.OriginalInput) + } + default: + { + return false // unexpected + } + } +} + +func (_this BatchGetItemOutputTransformInput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(BatchGetItemOutputTransformInput) + return ok && _this.Equals(typed) +} + +func Type_BatchGetItemOutputTransformInput_() _dafny.TypeDescriptor { + return type_BatchGetItemOutputTransformInput_{} +} + +type type_BatchGetItemOutputTransformInput_ struct { +} + +func (_this type_BatchGetItemOutputTransformInput_) Default() interface{} { + return Companion_BatchGetItemOutputTransformInput_.Default() +} + +func (_this type_BatchGetItemOutputTransformInput_) String() string { + return "AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.BatchGetItemOutputTransformInput" +} +func (_this BatchGetItemOutputTransformInput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = BatchGetItemOutputTransformInput{} + +// End of datatype BatchGetItemOutputTransformInput + +// Definition of datatype BatchGetItemOutputTransformOutput +type BatchGetItemOutputTransformOutput struct { + Data_BatchGetItemOutputTransformOutput_ +} + +func (_this BatchGetItemOutputTransformOutput) Get_() Data_BatchGetItemOutputTransformOutput_ { + return _this.Data_BatchGetItemOutputTransformOutput_ +} + +type Data_BatchGetItemOutputTransformOutput_ interface { + isBatchGetItemOutputTransformOutput() +} + +type CompanionStruct_BatchGetItemOutputTransformOutput_ struct { +} + +var Companion_BatchGetItemOutputTransformOutput_ = CompanionStruct_BatchGetItemOutputTransformOutput_{} + +type BatchGetItemOutputTransformOutput_BatchGetItemOutputTransformOutput struct { + TransformedOutput m_ComAmazonawsDynamodbTypes.BatchGetItemOutput +} + +func (BatchGetItemOutputTransformOutput_BatchGetItemOutputTransformOutput) isBatchGetItemOutputTransformOutput() { +} + +func (CompanionStruct_BatchGetItemOutputTransformOutput_) Create_BatchGetItemOutputTransformOutput_(TransformedOutput m_ComAmazonawsDynamodbTypes.BatchGetItemOutput) BatchGetItemOutputTransformOutput { + return BatchGetItemOutputTransformOutput{BatchGetItemOutputTransformOutput_BatchGetItemOutputTransformOutput{TransformedOutput}} +} + +func (_this BatchGetItemOutputTransformOutput) Is_BatchGetItemOutputTransformOutput() bool { + _, ok := _this.Get_().(BatchGetItemOutputTransformOutput_BatchGetItemOutputTransformOutput) + return ok +} + +func (CompanionStruct_BatchGetItemOutputTransformOutput_) Default() BatchGetItemOutputTransformOutput { + return Companion_BatchGetItemOutputTransformOutput_.Create_BatchGetItemOutputTransformOutput_(m_ComAmazonawsDynamodbTypes.Companion_BatchGetItemOutput_.Default()) +} + +func (_this BatchGetItemOutputTransformOutput) Dtor_transformedOutput() m_ComAmazonawsDynamodbTypes.BatchGetItemOutput { + return _this.Get_().(BatchGetItemOutputTransformOutput_BatchGetItemOutputTransformOutput).TransformedOutput +} + +func (_this BatchGetItemOutputTransformOutput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case BatchGetItemOutputTransformOutput_BatchGetItemOutputTransformOutput: + { + return "AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.BatchGetItemOutputTransformOutput.BatchGetItemOutputTransformOutput" + "(" + _dafny.String(data.TransformedOutput) + ")" + } + default: + { + return "" + } + } +} + +func (_this BatchGetItemOutputTransformOutput) Equals(other BatchGetItemOutputTransformOutput) bool { + switch data1 := _this.Get_().(type) { + case BatchGetItemOutputTransformOutput_BatchGetItemOutputTransformOutput: + { + data2, ok := other.Get_().(BatchGetItemOutputTransformOutput_BatchGetItemOutputTransformOutput) + return ok && data1.TransformedOutput.Equals(data2.TransformedOutput) + } + default: + { + return false // unexpected + } + } +} + +func (_this BatchGetItemOutputTransformOutput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(BatchGetItemOutputTransformOutput) + return ok && _this.Equals(typed) +} + +func Type_BatchGetItemOutputTransformOutput_() _dafny.TypeDescriptor { + return type_BatchGetItemOutputTransformOutput_{} +} + +type type_BatchGetItemOutputTransformOutput_ struct { +} + +func (_this type_BatchGetItemOutputTransformOutput_) Default() interface{} { + return Companion_BatchGetItemOutputTransformOutput_.Default() +} + +func (_this type_BatchGetItemOutputTransformOutput_) String() string { + return "AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.BatchGetItemOutputTransformOutput" +} +func (_this BatchGetItemOutputTransformOutput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = BatchGetItemOutputTransformOutput{} + +// End of datatype BatchGetItemOutputTransformOutput + +// Definition of datatype BatchWriteItemInputTransformInput +type BatchWriteItemInputTransformInput struct { + Data_BatchWriteItemInputTransformInput_ +} + +func (_this BatchWriteItemInputTransformInput) Get_() Data_BatchWriteItemInputTransformInput_ { + return _this.Data_BatchWriteItemInputTransformInput_ +} + +type Data_BatchWriteItemInputTransformInput_ interface { + isBatchWriteItemInputTransformInput() +} + +type CompanionStruct_BatchWriteItemInputTransformInput_ struct { +} + +var Companion_BatchWriteItemInputTransformInput_ = CompanionStruct_BatchWriteItemInputTransformInput_{} + +type BatchWriteItemInputTransformInput_BatchWriteItemInputTransformInput struct { + SdkInput m_ComAmazonawsDynamodbTypes.BatchWriteItemInput +} + +func (BatchWriteItemInputTransformInput_BatchWriteItemInputTransformInput) isBatchWriteItemInputTransformInput() { +} + +func (CompanionStruct_BatchWriteItemInputTransformInput_) Create_BatchWriteItemInputTransformInput_(SdkInput m_ComAmazonawsDynamodbTypes.BatchWriteItemInput) BatchWriteItemInputTransformInput { + return BatchWriteItemInputTransformInput{BatchWriteItemInputTransformInput_BatchWriteItemInputTransformInput{SdkInput}} +} + +func (_this BatchWriteItemInputTransformInput) Is_BatchWriteItemInputTransformInput() bool { + _, ok := _this.Get_().(BatchWriteItemInputTransformInput_BatchWriteItemInputTransformInput) + return ok +} + +func (CompanionStruct_BatchWriteItemInputTransformInput_) Default() BatchWriteItemInputTransformInput { + return Companion_BatchWriteItemInputTransformInput_.Create_BatchWriteItemInputTransformInput_(m_ComAmazonawsDynamodbTypes.Companion_BatchWriteItemInput_.Default()) +} + +func (_this BatchWriteItemInputTransformInput) Dtor_sdkInput() m_ComAmazonawsDynamodbTypes.BatchWriteItemInput { + return _this.Get_().(BatchWriteItemInputTransformInput_BatchWriteItemInputTransformInput).SdkInput +} + +func (_this BatchWriteItemInputTransformInput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case BatchWriteItemInputTransformInput_BatchWriteItemInputTransformInput: + { + return "AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.BatchWriteItemInputTransformInput.BatchWriteItemInputTransformInput" + "(" + _dafny.String(data.SdkInput) + ")" + } + default: + { + return "" + } + } +} + +func (_this BatchWriteItemInputTransformInput) Equals(other BatchWriteItemInputTransformInput) bool { + switch data1 := _this.Get_().(type) { + case BatchWriteItemInputTransformInput_BatchWriteItemInputTransformInput: + { + data2, ok := other.Get_().(BatchWriteItemInputTransformInput_BatchWriteItemInputTransformInput) + return ok && data1.SdkInput.Equals(data2.SdkInput) + } + default: + { + return false // unexpected + } + } +} + +func (_this BatchWriteItemInputTransformInput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(BatchWriteItemInputTransformInput) + return ok && _this.Equals(typed) +} + +func Type_BatchWriteItemInputTransformInput_() _dafny.TypeDescriptor { + return type_BatchWriteItemInputTransformInput_{} +} + +type type_BatchWriteItemInputTransformInput_ struct { +} + +func (_this type_BatchWriteItemInputTransformInput_) Default() interface{} { + return Companion_BatchWriteItemInputTransformInput_.Default() +} + +func (_this type_BatchWriteItemInputTransformInput_) String() string { + return "AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.BatchWriteItemInputTransformInput" +} +func (_this BatchWriteItemInputTransformInput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = BatchWriteItemInputTransformInput{} + +// End of datatype BatchWriteItemInputTransformInput + +// Definition of datatype BatchWriteItemInputTransformOutput +type BatchWriteItemInputTransformOutput struct { + Data_BatchWriteItemInputTransformOutput_ +} + +func (_this BatchWriteItemInputTransformOutput) Get_() Data_BatchWriteItemInputTransformOutput_ { + return _this.Data_BatchWriteItemInputTransformOutput_ +} + +type Data_BatchWriteItemInputTransformOutput_ interface { + isBatchWriteItemInputTransformOutput() +} + +type CompanionStruct_BatchWriteItemInputTransformOutput_ struct { +} + +var Companion_BatchWriteItemInputTransformOutput_ = CompanionStruct_BatchWriteItemInputTransformOutput_{} + +type BatchWriteItemInputTransformOutput_BatchWriteItemInputTransformOutput struct { + TransformedInput m_ComAmazonawsDynamodbTypes.BatchWriteItemInput +} + +func (BatchWriteItemInputTransformOutput_BatchWriteItemInputTransformOutput) isBatchWriteItemInputTransformOutput() { +} + +func (CompanionStruct_BatchWriteItemInputTransformOutput_) Create_BatchWriteItemInputTransformOutput_(TransformedInput m_ComAmazonawsDynamodbTypes.BatchWriteItemInput) BatchWriteItemInputTransformOutput { + return BatchWriteItemInputTransformOutput{BatchWriteItemInputTransformOutput_BatchWriteItemInputTransformOutput{TransformedInput}} +} + +func (_this BatchWriteItemInputTransformOutput) Is_BatchWriteItemInputTransformOutput() bool { + _, ok := _this.Get_().(BatchWriteItemInputTransformOutput_BatchWriteItemInputTransformOutput) + return ok +} + +func (CompanionStruct_BatchWriteItemInputTransformOutput_) Default() BatchWriteItemInputTransformOutput { + return Companion_BatchWriteItemInputTransformOutput_.Create_BatchWriteItemInputTransformOutput_(m_ComAmazonawsDynamodbTypes.Companion_BatchWriteItemInput_.Default()) +} + +func (_this BatchWriteItemInputTransformOutput) Dtor_transformedInput() m_ComAmazonawsDynamodbTypes.BatchWriteItemInput { + return _this.Get_().(BatchWriteItemInputTransformOutput_BatchWriteItemInputTransformOutput).TransformedInput +} + +func (_this BatchWriteItemInputTransformOutput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case BatchWriteItemInputTransformOutput_BatchWriteItemInputTransformOutput: + { + return "AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.BatchWriteItemInputTransformOutput.BatchWriteItemInputTransformOutput" + "(" + _dafny.String(data.TransformedInput) + ")" + } + default: + { + return "" + } + } +} + +func (_this BatchWriteItemInputTransformOutput) Equals(other BatchWriteItemInputTransformOutput) bool { + switch data1 := _this.Get_().(type) { + case BatchWriteItemInputTransformOutput_BatchWriteItemInputTransformOutput: + { + data2, ok := other.Get_().(BatchWriteItemInputTransformOutput_BatchWriteItemInputTransformOutput) + return ok && data1.TransformedInput.Equals(data2.TransformedInput) + } + default: + { + return false // unexpected + } + } +} + +func (_this BatchWriteItemInputTransformOutput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(BatchWriteItemInputTransformOutput) + return ok && _this.Equals(typed) +} + +func Type_BatchWriteItemInputTransformOutput_() _dafny.TypeDescriptor { + return type_BatchWriteItemInputTransformOutput_{} +} + +type type_BatchWriteItemInputTransformOutput_ struct { +} + +func (_this type_BatchWriteItemInputTransformOutput_) Default() interface{} { + return Companion_BatchWriteItemInputTransformOutput_.Default() +} + +func (_this type_BatchWriteItemInputTransformOutput_) String() string { + return "AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.BatchWriteItemInputTransformOutput" +} +func (_this BatchWriteItemInputTransformOutput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = BatchWriteItemInputTransformOutput{} + +// End of datatype BatchWriteItemInputTransformOutput + +// Definition of datatype BatchWriteItemOutputTransformInput +type BatchWriteItemOutputTransformInput struct { + Data_BatchWriteItemOutputTransformInput_ +} + +func (_this BatchWriteItemOutputTransformInput) Get_() Data_BatchWriteItemOutputTransformInput_ { + return _this.Data_BatchWriteItemOutputTransformInput_ +} + +type Data_BatchWriteItemOutputTransformInput_ interface { + isBatchWriteItemOutputTransformInput() +} + +type CompanionStruct_BatchWriteItemOutputTransformInput_ struct { +} + +var Companion_BatchWriteItemOutputTransformInput_ = CompanionStruct_BatchWriteItemOutputTransformInput_{} + +type BatchWriteItemOutputTransformInput_BatchWriteItemOutputTransformInput struct { + SdkOutput m_ComAmazonawsDynamodbTypes.BatchWriteItemOutput + OriginalInput m_ComAmazonawsDynamodbTypes.BatchWriteItemInput +} + +func (BatchWriteItemOutputTransformInput_BatchWriteItemOutputTransformInput) isBatchWriteItemOutputTransformInput() { +} + +func (CompanionStruct_BatchWriteItemOutputTransformInput_) Create_BatchWriteItemOutputTransformInput_(SdkOutput m_ComAmazonawsDynamodbTypes.BatchWriteItemOutput, OriginalInput m_ComAmazonawsDynamodbTypes.BatchWriteItemInput) BatchWriteItemOutputTransformInput { + return BatchWriteItemOutputTransformInput{BatchWriteItemOutputTransformInput_BatchWriteItemOutputTransformInput{SdkOutput, OriginalInput}} +} + +func (_this BatchWriteItemOutputTransformInput) Is_BatchWriteItemOutputTransformInput() bool { + _, ok := _this.Get_().(BatchWriteItemOutputTransformInput_BatchWriteItemOutputTransformInput) + return ok +} + +func (CompanionStruct_BatchWriteItemOutputTransformInput_) Default() BatchWriteItemOutputTransformInput { + return Companion_BatchWriteItemOutputTransformInput_.Create_BatchWriteItemOutputTransformInput_(m_ComAmazonawsDynamodbTypes.Companion_BatchWriteItemOutput_.Default(), m_ComAmazonawsDynamodbTypes.Companion_BatchWriteItemInput_.Default()) +} + +func (_this BatchWriteItemOutputTransformInput) Dtor_sdkOutput() m_ComAmazonawsDynamodbTypes.BatchWriteItemOutput { + return _this.Get_().(BatchWriteItemOutputTransformInput_BatchWriteItemOutputTransformInput).SdkOutput +} + +func (_this BatchWriteItemOutputTransformInput) Dtor_originalInput() m_ComAmazonawsDynamodbTypes.BatchWriteItemInput { + return _this.Get_().(BatchWriteItemOutputTransformInput_BatchWriteItemOutputTransformInput).OriginalInput +} + +func (_this BatchWriteItemOutputTransformInput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case BatchWriteItemOutputTransformInput_BatchWriteItemOutputTransformInput: + { + return "AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.BatchWriteItemOutputTransformInput.BatchWriteItemOutputTransformInput" + "(" + _dafny.String(data.SdkOutput) + ", " + _dafny.String(data.OriginalInput) + ")" + } + default: + { + return "" + } + } +} + +func (_this BatchWriteItemOutputTransformInput) Equals(other BatchWriteItemOutputTransformInput) bool { + switch data1 := _this.Get_().(type) { + case BatchWriteItemOutputTransformInput_BatchWriteItemOutputTransformInput: + { + data2, ok := other.Get_().(BatchWriteItemOutputTransformInput_BatchWriteItemOutputTransformInput) + return ok && data1.SdkOutput.Equals(data2.SdkOutput) && data1.OriginalInput.Equals(data2.OriginalInput) + } + default: + { + return false // unexpected + } + } +} + +func (_this BatchWriteItemOutputTransformInput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(BatchWriteItemOutputTransformInput) + return ok && _this.Equals(typed) +} + +func Type_BatchWriteItemOutputTransformInput_() _dafny.TypeDescriptor { + return type_BatchWriteItemOutputTransformInput_{} +} + +type type_BatchWriteItemOutputTransformInput_ struct { +} + +func (_this type_BatchWriteItemOutputTransformInput_) Default() interface{} { + return Companion_BatchWriteItemOutputTransformInput_.Default() +} + +func (_this type_BatchWriteItemOutputTransformInput_) String() string { + return "AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.BatchWriteItemOutputTransformInput" +} +func (_this BatchWriteItemOutputTransformInput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = BatchWriteItemOutputTransformInput{} + +// End of datatype BatchWriteItemOutputTransformInput + +// Definition of datatype BatchWriteItemOutputTransformOutput +type BatchWriteItemOutputTransformOutput struct { + Data_BatchWriteItemOutputTransformOutput_ +} + +func (_this BatchWriteItemOutputTransformOutput) Get_() Data_BatchWriteItemOutputTransformOutput_ { + return _this.Data_BatchWriteItemOutputTransformOutput_ +} + +type Data_BatchWriteItemOutputTransformOutput_ interface { + isBatchWriteItemOutputTransformOutput() +} + +type CompanionStruct_BatchWriteItemOutputTransformOutput_ struct { +} + +var Companion_BatchWriteItemOutputTransformOutput_ = CompanionStruct_BatchWriteItemOutputTransformOutput_{} + +type BatchWriteItemOutputTransformOutput_BatchWriteItemOutputTransformOutput struct { + TransformedOutput m_ComAmazonawsDynamodbTypes.BatchWriteItemOutput +} + +func (BatchWriteItemOutputTransformOutput_BatchWriteItemOutputTransformOutput) isBatchWriteItemOutputTransformOutput() { +} + +func (CompanionStruct_BatchWriteItemOutputTransformOutput_) Create_BatchWriteItemOutputTransformOutput_(TransformedOutput m_ComAmazonawsDynamodbTypes.BatchWriteItemOutput) BatchWriteItemOutputTransformOutput { + return BatchWriteItemOutputTransformOutput{BatchWriteItemOutputTransformOutput_BatchWriteItemOutputTransformOutput{TransformedOutput}} +} + +func (_this BatchWriteItemOutputTransformOutput) Is_BatchWriteItemOutputTransformOutput() bool { + _, ok := _this.Get_().(BatchWriteItemOutputTransformOutput_BatchWriteItemOutputTransformOutput) + return ok +} + +func (CompanionStruct_BatchWriteItemOutputTransformOutput_) Default() BatchWriteItemOutputTransformOutput { + return Companion_BatchWriteItemOutputTransformOutput_.Create_BatchWriteItemOutputTransformOutput_(m_ComAmazonawsDynamodbTypes.Companion_BatchWriteItemOutput_.Default()) +} + +func (_this BatchWriteItemOutputTransformOutput) Dtor_transformedOutput() m_ComAmazonawsDynamodbTypes.BatchWriteItemOutput { + return _this.Get_().(BatchWriteItemOutputTransformOutput_BatchWriteItemOutputTransformOutput).TransformedOutput +} + +func (_this BatchWriteItemOutputTransformOutput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case BatchWriteItemOutputTransformOutput_BatchWriteItemOutputTransformOutput: + { + return "AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.BatchWriteItemOutputTransformOutput.BatchWriteItemOutputTransformOutput" + "(" + _dafny.String(data.TransformedOutput) + ")" + } + default: + { + return "" + } + } +} + +func (_this BatchWriteItemOutputTransformOutput) Equals(other BatchWriteItemOutputTransformOutput) bool { + switch data1 := _this.Get_().(type) { + case BatchWriteItemOutputTransformOutput_BatchWriteItemOutputTransformOutput: + { + data2, ok := other.Get_().(BatchWriteItemOutputTransformOutput_BatchWriteItemOutputTransformOutput) + return ok && data1.TransformedOutput.Equals(data2.TransformedOutput) + } + default: + { + return false // unexpected + } + } +} + +func (_this BatchWriteItemOutputTransformOutput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(BatchWriteItemOutputTransformOutput) + return ok && _this.Equals(typed) +} + +func Type_BatchWriteItemOutputTransformOutput_() _dafny.TypeDescriptor { + return type_BatchWriteItemOutputTransformOutput_{} +} + +type type_BatchWriteItemOutputTransformOutput_ struct { +} + +func (_this type_BatchWriteItemOutputTransformOutput_) Default() interface{} { + return Companion_BatchWriteItemOutputTransformOutput_.Default() +} + +func (_this type_BatchWriteItemOutputTransformOutput_) String() string { + return "AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.BatchWriteItemOutputTransformOutput" +} +func (_this BatchWriteItemOutputTransformOutput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = BatchWriteItemOutputTransformOutput{} + +// End of datatype BatchWriteItemOutputTransformOutput + +// Definition of datatype DeleteItemInputTransformInput +type DeleteItemInputTransformInput struct { + Data_DeleteItemInputTransformInput_ +} + +func (_this DeleteItemInputTransformInput) Get_() Data_DeleteItemInputTransformInput_ { + return _this.Data_DeleteItemInputTransformInput_ +} + +type Data_DeleteItemInputTransformInput_ interface { + isDeleteItemInputTransformInput() +} + +type CompanionStruct_DeleteItemInputTransformInput_ struct { +} + +var Companion_DeleteItemInputTransformInput_ = CompanionStruct_DeleteItemInputTransformInput_{} + +type DeleteItemInputTransformInput_DeleteItemInputTransformInput struct { + SdkInput m_ComAmazonawsDynamodbTypes.DeleteItemInput +} + +func (DeleteItemInputTransformInput_DeleteItemInputTransformInput) isDeleteItemInputTransformInput() { +} + +func (CompanionStruct_DeleteItemInputTransformInput_) Create_DeleteItemInputTransformInput_(SdkInput m_ComAmazonawsDynamodbTypes.DeleteItemInput) DeleteItemInputTransformInput { + return DeleteItemInputTransformInput{DeleteItemInputTransformInput_DeleteItemInputTransformInput{SdkInput}} +} + +func (_this DeleteItemInputTransformInput) Is_DeleteItemInputTransformInput() bool { + _, ok := _this.Get_().(DeleteItemInputTransformInput_DeleteItemInputTransformInput) + return ok +} + +func (CompanionStruct_DeleteItemInputTransformInput_) Default() DeleteItemInputTransformInput { + return Companion_DeleteItemInputTransformInput_.Create_DeleteItemInputTransformInput_(m_ComAmazonawsDynamodbTypes.Companion_DeleteItemInput_.Default()) +} + +func (_this DeleteItemInputTransformInput) Dtor_sdkInput() m_ComAmazonawsDynamodbTypes.DeleteItemInput { + return _this.Get_().(DeleteItemInputTransformInput_DeleteItemInputTransformInput).SdkInput +} + +func (_this DeleteItemInputTransformInput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case DeleteItemInputTransformInput_DeleteItemInputTransformInput: + { + return "AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.DeleteItemInputTransformInput.DeleteItemInputTransformInput" + "(" + _dafny.String(data.SdkInput) + ")" + } + default: + { + return "" + } + } +} + +func (_this DeleteItemInputTransformInput) Equals(other DeleteItemInputTransformInput) bool { + switch data1 := _this.Get_().(type) { + case DeleteItemInputTransformInput_DeleteItemInputTransformInput: + { + data2, ok := other.Get_().(DeleteItemInputTransformInput_DeleteItemInputTransformInput) + return ok && data1.SdkInput.Equals(data2.SdkInput) + } + default: + { + return false // unexpected + } + } +} + +func (_this DeleteItemInputTransformInput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(DeleteItemInputTransformInput) + return ok && _this.Equals(typed) +} + +func Type_DeleteItemInputTransformInput_() _dafny.TypeDescriptor { + return type_DeleteItemInputTransformInput_{} +} + +type type_DeleteItemInputTransformInput_ struct { +} + +func (_this type_DeleteItemInputTransformInput_) Default() interface{} { + return Companion_DeleteItemInputTransformInput_.Default() +} + +func (_this type_DeleteItemInputTransformInput_) String() string { + return "AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.DeleteItemInputTransformInput" +} +func (_this DeleteItemInputTransformInput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = DeleteItemInputTransformInput{} + +// End of datatype DeleteItemInputTransformInput + +// Definition of datatype DeleteItemInputTransformOutput +type DeleteItemInputTransformOutput struct { + Data_DeleteItemInputTransformOutput_ +} + +func (_this DeleteItemInputTransformOutput) Get_() Data_DeleteItemInputTransformOutput_ { + return _this.Data_DeleteItemInputTransformOutput_ +} + +type Data_DeleteItemInputTransformOutput_ interface { + isDeleteItemInputTransformOutput() +} + +type CompanionStruct_DeleteItemInputTransformOutput_ struct { +} + +var Companion_DeleteItemInputTransformOutput_ = CompanionStruct_DeleteItemInputTransformOutput_{} + +type DeleteItemInputTransformOutput_DeleteItemInputTransformOutput struct { + TransformedInput m_ComAmazonawsDynamodbTypes.DeleteItemInput +} + +func (DeleteItemInputTransformOutput_DeleteItemInputTransformOutput) isDeleteItemInputTransformOutput() { +} + +func (CompanionStruct_DeleteItemInputTransformOutput_) Create_DeleteItemInputTransformOutput_(TransformedInput m_ComAmazonawsDynamodbTypes.DeleteItemInput) DeleteItemInputTransformOutput { + return DeleteItemInputTransformOutput{DeleteItemInputTransformOutput_DeleteItemInputTransformOutput{TransformedInput}} +} + +func (_this DeleteItemInputTransformOutput) Is_DeleteItemInputTransformOutput() bool { + _, ok := _this.Get_().(DeleteItemInputTransformOutput_DeleteItemInputTransformOutput) + return ok +} + +func (CompanionStruct_DeleteItemInputTransformOutput_) Default() DeleteItemInputTransformOutput { + return Companion_DeleteItemInputTransformOutput_.Create_DeleteItemInputTransformOutput_(m_ComAmazonawsDynamodbTypes.Companion_DeleteItemInput_.Default()) +} + +func (_this DeleteItemInputTransformOutput) Dtor_transformedInput() m_ComAmazonawsDynamodbTypes.DeleteItemInput { + return _this.Get_().(DeleteItemInputTransformOutput_DeleteItemInputTransformOutput).TransformedInput +} + +func (_this DeleteItemInputTransformOutput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case DeleteItemInputTransformOutput_DeleteItemInputTransformOutput: + { + return "AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.DeleteItemInputTransformOutput.DeleteItemInputTransformOutput" + "(" + _dafny.String(data.TransformedInput) + ")" + } + default: + { + return "" + } + } +} + +func (_this DeleteItemInputTransformOutput) Equals(other DeleteItemInputTransformOutput) bool { + switch data1 := _this.Get_().(type) { + case DeleteItemInputTransformOutput_DeleteItemInputTransformOutput: + { + data2, ok := other.Get_().(DeleteItemInputTransformOutput_DeleteItemInputTransformOutput) + return ok && data1.TransformedInput.Equals(data2.TransformedInput) + } + default: + { + return false // unexpected + } + } +} + +func (_this DeleteItemInputTransformOutput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(DeleteItemInputTransformOutput) + return ok && _this.Equals(typed) +} + +func Type_DeleteItemInputTransformOutput_() _dafny.TypeDescriptor { + return type_DeleteItemInputTransformOutput_{} +} + +type type_DeleteItemInputTransformOutput_ struct { +} + +func (_this type_DeleteItemInputTransformOutput_) Default() interface{} { + return Companion_DeleteItemInputTransformOutput_.Default() +} + +func (_this type_DeleteItemInputTransformOutput_) String() string { + return "AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.DeleteItemInputTransformOutput" +} +func (_this DeleteItemInputTransformOutput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = DeleteItemInputTransformOutput{} + +// End of datatype DeleteItemInputTransformOutput + +// Definition of datatype DeleteItemOutputTransformInput +type DeleteItemOutputTransformInput struct { + Data_DeleteItemOutputTransformInput_ +} + +func (_this DeleteItemOutputTransformInput) Get_() Data_DeleteItemOutputTransformInput_ { + return _this.Data_DeleteItemOutputTransformInput_ +} + +type Data_DeleteItemOutputTransformInput_ interface { + isDeleteItemOutputTransformInput() +} + +type CompanionStruct_DeleteItemOutputTransformInput_ struct { +} + +var Companion_DeleteItemOutputTransformInput_ = CompanionStruct_DeleteItemOutputTransformInput_{} + +type DeleteItemOutputTransformInput_DeleteItemOutputTransformInput struct { + SdkOutput m_ComAmazonawsDynamodbTypes.DeleteItemOutput + OriginalInput m_ComAmazonawsDynamodbTypes.DeleteItemInput +} + +func (DeleteItemOutputTransformInput_DeleteItemOutputTransformInput) isDeleteItemOutputTransformInput() { +} + +func (CompanionStruct_DeleteItemOutputTransformInput_) Create_DeleteItemOutputTransformInput_(SdkOutput m_ComAmazonawsDynamodbTypes.DeleteItemOutput, OriginalInput m_ComAmazonawsDynamodbTypes.DeleteItemInput) DeleteItemOutputTransformInput { + return DeleteItemOutputTransformInput{DeleteItemOutputTransformInput_DeleteItemOutputTransformInput{SdkOutput, OriginalInput}} +} + +func (_this DeleteItemOutputTransformInput) Is_DeleteItemOutputTransformInput() bool { + _, ok := _this.Get_().(DeleteItemOutputTransformInput_DeleteItemOutputTransformInput) + return ok +} + +func (CompanionStruct_DeleteItemOutputTransformInput_) Default() DeleteItemOutputTransformInput { + return Companion_DeleteItemOutputTransformInput_.Create_DeleteItemOutputTransformInput_(m_ComAmazonawsDynamodbTypes.Companion_DeleteItemOutput_.Default(), m_ComAmazonawsDynamodbTypes.Companion_DeleteItemInput_.Default()) +} + +func (_this DeleteItemOutputTransformInput) Dtor_sdkOutput() m_ComAmazonawsDynamodbTypes.DeleteItemOutput { + return _this.Get_().(DeleteItemOutputTransformInput_DeleteItemOutputTransformInput).SdkOutput +} + +func (_this DeleteItemOutputTransformInput) Dtor_originalInput() m_ComAmazonawsDynamodbTypes.DeleteItemInput { + return _this.Get_().(DeleteItemOutputTransformInput_DeleteItemOutputTransformInput).OriginalInput +} + +func (_this DeleteItemOutputTransformInput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case DeleteItemOutputTransformInput_DeleteItemOutputTransformInput: + { + return "AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.DeleteItemOutputTransformInput.DeleteItemOutputTransformInput" + "(" + _dafny.String(data.SdkOutput) + ", " + _dafny.String(data.OriginalInput) + ")" + } + default: + { + return "" + } + } +} + +func (_this DeleteItemOutputTransformInput) Equals(other DeleteItemOutputTransformInput) bool { + switch data1 := _this.Get_().(type) { + case DeleteItemOutputTransformInput_DeleteItemOutputTransformInput: + { + data2, ok := other.Get_().(DeleteItemOutputTransformInput_DeleteItemOutputTransformInput) + return ok && data1.SdkOutput.Equals(data2.SdkOutput) && data1.OriginalInput.Equals(data2.OriginalInput) + } + default: + { + return false // unexpected + } + } +} + +func (_this DeleteItemOutputTransformInput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(DeleteItemOutputTransformInput) + return ok && _this.Equals(typed) +} + +func Type_DeleteItemOutputTransformInput_() _dafny.TypeDescriptor { + return type_DeleteItemOutputTransformInput_{} +} + +type type_DeleteItemOutputTransformInput_ struct { +} + +func (_this type_DeleteItemOutputTransformInput_) Default() interface{} { + return Companion_DeleteItemOutputTransformInput_.Default() +} + +func (_this type_DeleteItemOutputTransformInput_) String() string { + return "AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.DeleteItemOutputTransformInput" +} +func (_this DeleteItemOutputTransformInput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = DeleteItemOutputTransformInput{} + +// End of datatype DeleteItemOutputTransformInput + +// Definition of datatype DeleteItemOutputTransformOutput +type DeleteItemOutputTransformOutput struct { + Data_DeleteItemOutputTransformOutput_ +} + +func (_this DeleteItemOutputTransformOutput) Get_() Data_DeleteItemOutputTransformOutput_ { + return _this.Data_DeleteItemOutputTransformOutput_ +} + +type Data_DeleteItemOutputTransformOutput_ interface { + isDeleteItemOutputTransformOutput() +} + +type CompanionStruct_DeleteItemOutputTransformOutput_ struct { +} + +var Companion_DeleteItemOutputTransformOutput_ = CompanionStruct_DeleteItemOutputTransformOutput_{} + +type DeleteItemOutputTransformOutput_DeleteItemOutputTransformOutput struct { + TransformedOutput m_ComAmazonawsDynamodbTypes.DeleteItemOutput +} + +func (DeleteItemOutputTransformOutput_DeleteItemOutputTransformOutput) isDeleteItemOutputTransformOutput() { +} + +func (CompanionStruct_DeleteItemOutputTransformOutput_) Create_DeleteItemOutputTransformOutput_(TransformedOutput m_ComAmazonawsDynamodbTypes.DeleteItemOutput) DeleteItemOutputTransformOutput { + return DeleteItemOutputTransformOutput{DeleteItemOutputTransformOutput_DeleteItemOutputTransformOutput{TransformedOutput}} +} + +func (_this DeleteItemOutputTransformOutput) Is_DeleteItemOutputTransformOutput() bool { + _, ok := _this.Get_().(DeleteItemOutputTransformOutput_DeleteItemOutputTransformOutput) + return ok +} + +func (CompanionStruct_DeleteItemOutputTransformOutput_) Default() DeleteItemOutputTransformOutput { + return Companion_DeleteItemOutputTransformOutput_.Create_DeleteItemOutputTransformOutput_(m_ComAmazonawsDynamodbTypes.Companion_DeleteItemOutput_.Default()) +} + +func (_this DeleteItemOutputTransformOutput) Dtor_transformedOutput() m_ComAmazonawsDynamodbTypes.DeleteItemOutput { + return _this.Get_().(DeleteItemOutputTransformOutput_DeleteItemOutputTransformOutput).TransformedOutput +} + +func (_this DeleteItemOutputTransformOutput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case DeleteItemOutputTransformOutput_DeleteItemOutputTransformOutput: + { + return "AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.DeleteItemOutputTransformOutput.DeleteItemOutputTransformOutput" + "(" + _dafny.String(data.TransformedOutput) + ")" + } + default: + { + return "" + } + } +} + +func (_this DeleteItemOutputTransformOutput) Equals(other DeleteItemOutputTransformOutput) bool { + switch data1 := _this.Get_().(type) { + case DeleteItemOutputTransformOutput_DeleteItemOutputTransformOutput: + { + data2, ok := other.Get_().(DeleteItemOutputTransformOutput_DeleteItemOutputTransformOutput) + return ok && data1.TransformedOutput.Equals(data2.TransformedOutput) + } + default: + { + return false // unexpected + } + } +} + +func (_this DeleteItemOutputTransformOutput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(DeleteItemOutputTransformOutput) + return ok && _this.Equals(typed) +} + +func Type_DeleteItemOutputTransformOutput_() _dafny.TypeDescriptor { + return type_DeleteItemOutputTransformOutput_{} +} + +type type_DeleteItemOutputTransformOutput_ struct { +} + +func (_this type_DeleteItemOutputTransformOutput_) Default() interface{} { + return Companion_DeleteItemOutputTransformOutput_.Default() +} + +func (_this type_DeleteItemOutputTransformOutput_) String() string { + return "AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.DeleteItemOutputTransformOutput" +} +func (_this DeleteItemOutputTransformOutput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = DeleteItemOutputTransformOutput{} + +// End of datatype DeleteItemOutputTransformOutput + +// Definition of class IDynamoDbEncryptionTransformsClientCallHistory +type IDynamoDbEncryptionTransformsClientCallHistory struct { + dummy byte +} + +func New_IDynamoDbEncryptionTransformsClientCallHistory_() *IDynamoDbEncryptionTransformsClientCallHistory { + _this := IDynamoDbEncryptionTransformsClientCallHistory{} + + return &_this +} + +type CompanionStruct_IDynamoDbEncryptionTransformsClientCallHistory_ struct { +} + +var Companion_IDynamoDbEncryptionTransformsClientCallHistory_ = CompanionStruct_IDynamoDbEncryptionTransformsClientCallHistory_{} + +func (_this *IDynamoDbEncryptionTransformsClientCallHistory) Equals(other *IDynamoDbEncryptionTransformsClientCallHistory) bool { + return _this == other +} + +func (_this *IDynamoDbEncryptionTransformsClientCallHistory) EqualsGeneric(x interface{}) bool { + other, ok := x.(*IDynamoDbEncryptionTransformsClientCallHistory) + return ok && _this.Equals(other) +} + +func (*IDynamoDbEncryptionTransformsClientCallHistory) String() string { + return "AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.IDynamoDbEncryptionTransformsClientCallHistory" +} + +func Type_IDynamoDbEncryptionTransformsClientCallHistory_() _dafny.TypeDescriptor { + return type_IDynamoDbEncryptionTransformsClientCallHistory_{} +} + +type type_IDynamoDbEncryptionTransformsClientCallHistory_ struct { +} + +func (_this type_IDynamoDbEncryptionTransformsClientCallHistory_) Default() interface{} { + return (*IDynamoDbEncryptionTransformsClientCallHistory)(nil) +} + +func (_this type_IDynamoDbEncryptionTransformsClientCallHistory_) String() string { + return "AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.IDynamoDbEncryptionTransformsClientCallHistory" +} +func (_this *IDynamoDbEncryptionTransformsClientCallHistory) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = &IDynamoDbEncryptionTransformsClientCallHistory{} + +// End of class IDynamoDbEncryptionTransformsClientCallHistory + +// Definition of trait IDynamoDbEncryptionTransformsClient +type IDynamoDbEncryptionTransformsClient interface { + String() string + PutItemInputTransform(input PutItemInputTransformInput) m_Wrappers.Result + PutItemOutputTransform(input PutItemOutputTransformInput) m_Wrappers.Result + GetItemInputTransform(input GetItemInputTransformInput) m_Wrappers.Result + GetItemOutputTransform(input GetItemOutputTransformInput) m_Wrappers.Result + BatchWriteItemInputTransform(input BatchWriteItemInputTransformInput) m_Wrappers.Result + BatchWriteItemOutputTransform(input BatchWriteItemOutputTransformInput) m_Wrappers.Result + BatchGetItemInputTransform(input BatchGetItemInputTransformInput) m_Wrappers.Result + BatchGetItemOutputTransform(input BatchGetItemOutputTransformInput) m_Wrappers.Result + ScanInputTransform(input ScanInputTransformInput) m_Wrappers.Result + ScanOutputTransform(input ScanOutputTransformInput) m_Wrappers.Result + QueryInputTransform(input QueryInputTransformInput) m_Wrappers.Result + QueryOutputTransform(input QueryOutputTransformInput) m_Wrappers.Result + TransactWriteItemsInputTransform(input TransactWriteItemsInputTransformInput) m_Wrappers.Result + TransactWriteItemsOutputTransform(input TransactWriteItemsOutputTransformInput) m_Wrappers.Result + UpdateItemInputTransform(input UpdateItemInputTransformInput) m_Wrappers.Result + UpdateItemOutputTransform(input UpdateItemOutputTransformInput) m_Wrappers.Result + DeleteItemInputTransform(input DeleteItemInputTransformInput) m_Wrappers.Result + DeleteItemOutputTransform(input DeleteItemOutputTransformInput) m_Wrappers.Result + TransactGetItemsInputTransform(input TransactGetItemsInputTransformInput) m_Wrappers.Result + TransactGetItemsOutputTransform(input TransactGetItemsOutputTransformInput) m_Wrappers.Result + ExecuteStatementInputTransform(input ExecuteStatementInputTransformInput) m_Wrappers.Result + ExecuteStatementOutputTransform(input ExecuteStatementOutputTransformInput) m_Wrappers.Result + BatchExecuteStatementInputTransform(input BatchExecuteStatementInputTransformInput) m_Wrappers.Result + BatchExecuteStatementOutputTransform(input BatchExecuteStatementOutputTransformInput) m_Wrappers.Result + ExecuteTransactionInputTransform(input ExecuteTransactionInputTransformInput) m_Wrappers.Result + ExecuteTransactionOutputTransform(input ExecuteTransactionOutputTransformInput) m_Wrappers.Result + ResolveAttributes(input ResolveAttributesInput) m_Wrappers.Result +} +type CompanionStruct_IDynamoDbEncryptionTransformsClient_ struct { + TraitID_ *_dafny.TraitID +} + +var Companion_IDynamoDbEncryptionTransformsClient_ = CompanionStruct_IDynamoDbEncryptionTransformsClient_{ + TraitID_: &_dafny.TraitID{}, +} + +func (CompanionStruct_IDynamoDbEncryptionTransformsClient_) CastTo_(x interface{}) IDynamoDbEncryptionTransformsClient { + var t IDynamoDbEncryptionTransformsClient + t, _ = x.(IDynamoDbEncryptionTransformsClient) + return t +} + +// End of trait IDynamoDbEncryptionTransformsClient + +// Definition of datatype ExecuteStatementInputTransformInput +type ExecuteStatementInputTransformInput struct { + Data_ExecuteStatementInputTransformInput_ +} + +func (_this ExecuteStatementInputTransformInput) Get_() Data_ExecuteStatementInputTransformInput_ { + return _this.Data_ExecuteStatementInputTransformInput_ +} + +type Data_ExecuteStatementInputTransformInput_ interface { + isExecuteStatementInputTransformInput() +} + +type CompanionStruct_ExecuteStatementInputTransformInput_ struct { +} + +var Companion_ExecuteStatementInputTransformInput_ = CompanionStruct_ExecuteStatementInputTransformInput_{} + +type ExecuteStatementInputTransformInput_ExecuteStatementInputTransformInput struct { + SdkInput m_ComAmazonawsDynamodbTypes.ExecuteStatementInput +} + +func (ExecuteStatementInputTransformInput_ExecuteStatementInputTransformInput) isExecuteStatementInputTransformInput() { +} + +func (CompanionStruct_ExecuteStatementInputTransformInput_) Create_ExecuteStatementInputTransformInput_(SdkInput m_ComAmazonawsDynamodbTypes.ExecuteStatementInput) ExecuteStatementInputTransformInput { + return ExecuteStatementInputTransformInput{ExecuteStatementInputTransformInput_ExecuteStatementInputTransformInput{SdkInput}} +} + +func (_this ExecuteStatementInputTransformInput) Is_ExecuteStatementInputTransformInput() bool { + _, ok := _this.Get_().(ExecuteStatementInputTransformInput_ExecuteStatementInputTransformInput) + return ok +} + +func (CompanionStruct_ExecuteStatementInputTransformInput_) Default() ExecuteStatementInputTransformInput { + return Companion_ExecuteStatementInputTransformInput_.Create_ExecuteStatementInputTransformInput_(m_ComAmazonawsDynamodbTypes.Companion_ExecuteStatementInput_.Default()) +} + +func (_this ExecuteStatementInputTransformInput) Dtor_sdkInput() m_ComAmazonawsDynamodbTypes.ExecuteStatementInput { + return _this.Get_().(ExecuteStatementInputTransformInput_ExecuteStatementInputTransformInput).SdkInput +} + +func (_this ExecuteStatementInputTransformInput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case ExecuteStatementInputTransformInput_ExecuteStatementInputTransformInput: + { + return "AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.ExecuteStatementInputTransformInput.ExecuteStatementInputTransformInput" + "(" + _dafny.String(data.SdkInput) + ")" + } + default: + { + return "" + } + } +} + +func (_this ExecuteStatementInputTransformInput) Equals(other ExecuteStatementInputTransformInput) bool { + switch data1 := _this.Get_().(type) { + case ExecuteStatementInputTransformInput_ExecuteStatementInputTransformInput: + { + data2, ok := other.Get_().(ExecuteStatementInputTransformInput_ExecuteStatementInputTransformInput) + return ok && data1.SdkInput.Equals(data2.SdkInput) + } + default: + { + return false // unexpected + } + } +} + +func (_this ExecuteStatementInputTransformInput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(ExecuteStatementInputTransformInput) + return ok && _this.Equals(typed) +} + +func Type_ExecuteStatementInputTransformInput_() _dafny.TypeDescriptor { + return type_ExecuteStatementInputTransformInput_{} +} + +type type_ExecuteStatementInputTransformInput_ struct { +} + +func (_this type_ExecuteStatementInputTransformInput_) Default() interface{} { + return Companion_ExecuteStatementInputTransformInput_.Default() +} + +func (_this type_ExecuteStatementInputTransformInput_) String() string { + return "AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.ExecuteStatementInputTransformInput" +} +func (_this ExecuteStatementInputTransformInput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = ExecuteStatementInputTransformInput{} + +// End of datatype ExecuteStatementInputTransformInput + +// Definition of datatype ExecuteStatementInputTransformOutput +type ExecuteStatementInputTransformOutput struct { + Data_ExecuteStatementInputTransformOutput_ +} + +func (_this ExecuteStatementInputTransformOutput) Get_() Data_ExecuteStatementInputTransformOutput_ { + return _this.Data_ExecuteStatementInputTransformOutput_ +} + +type Data_ExecuteStatementInputTransformOutput_ interface { + isExecuteStatementInputTransformOutput() +} + +type CompanionStruct_ExecuteStatementInputTransformOutput_ struct { +} + +var Companion_ExecuteStatementInputTransformOutput_ = CompanionStruct_ExecuteStatementInputTransformOutput_{} + +type ExecuteStatementInputTransformOutput_ExecuteStatementInputTransformOutput struct { + TransformedInput m_ComAmazonawsDynamodbTypes.ExecuteStatementInput +} + +func (ExecuteStatementInputTransformOutput_ExecuteStatementInputTransformOutput) isExecuteStatementInputTransformOutput() { +} + +func (CompanionStruct_ExecuteStatementInputTransformOutput_) Create_ExecuteStatementInputTransformOutput_(TransformedInput m_ComAmazonawsDynamodbTypes.ExecuteStatementInput) ExecuteStatementInputTransformOutput { + return ExecuteStatementInputTransformOutput{ExecuteStatementInputTransformOutput_ExecuteStatementInputTransformOutput{TransformedInput}} +} + +func (_this ExecuteStatementInputTransformOutput) Is_ExecuteStatementInputTransformOutput() bool { + _, ok := _this.Get_().(ExecuteStatementInputTransformOutput_ExecuteStatementInputTransformOutput) + return ok +} + +func (CompanionStruct_ExecuteStatementInputTransformOutput_) Default() ExecuteStatementInputTransformOutput { + return Companion_ExecuteStatementInputTransformOutput_.Create_ExecuteStatementInputTransformOutput_(m_ComAmazonawsDynamodbTypes.Companion_ExecuteStatementInput_.Default()) +} + +func (_this ExecuteStatementInputTransformOutput) Dtor_transformedInput() m_ComAmazonawsDynamodbTypes.ExecuteStatementInput { + return _this.Get_().(ExecuteStatementInputTransformOutput_ExecuteStatementInputTransformOutput).TransformedInput +} + +func (_this ExecuteStatementInputTransformOutput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case ExecuteStatementInputTransformOutput_ExecuteStatementInputTransformOutput: + { + return "AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.ExecuteStatementInputTransformOutput.ExecuteStatementInputTransformOutput" + "(" + _dafny.String(data.TransformedInput) + ")" + } + default: + { + return "" + } + } +} + +func (_this ExecuteStatementInputTransformOutput) Equals(other ExecuteStatementInputTransformOutput) bool { + switch data1 := _this.Get_().(type) { + case ExecuteStatementInputTransformOutput_ExecuteStatementInputTransformOutput: + { + data2, ok := other.Get_().(ExecuteStatementInputTransformOutput_ExecuteStatementInputTransformOutput) + return ok && data1.TransformedInput.Equals(data2.TransformedInput) + } + default: + { + return false // unexpected + } + } +} + +func (_this ExecuteStatementInputTransformOutput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(ExecuteStatementInputTransformOutput) + return ok && _this.Equals(typed) +} + +func Type_ExecuteStatementInputTransformOutput_() _dafny.TypeDescriptor { + return type_ExecuteStatementInputTransformOutput_{} +} + +type type_ExecuteStatementInputTransformOutput_ struct { +} + +func (_this type_ExecuteStatementInputTransformOutput_) Default() interface{} { + return Companion_ExecuteStatementInputTransformOutput_.Default() +} + +func (_this type_ExecuteStatementInputTransformOutput_) String() string { + return "AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.ExecuteStatementInputTransformOutput" +} +func (_this ExecuteStatementInputTransformOutput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = ExecuteStatementInputTransformOutput{} + +// End of datatype ExecuteStatementInputTransformOutput + +// Definition of datatype ExecuteStatementOutputTransformInput +type ExecuteStatementOutputTransformInput struct { + Data_ExecuteStatementOutputTransformInput_ +} + +func (_this ExecuteStatementOutputTransformInput) Get_() Data_ExecuteStatementOutputTransformInput_ { + return _this.Data_ExecuteStatementOutputTransformInput_ +} + +type Data_ExecuteStatementOutputTransformInput_ interface { + isExecuteStatementOutputTransformInput() +} + +type CompanionStruct_ExecuteStatementOutputTransformInput_ struct { +} + +var Companion_ExecuteStatementOutputTransformInput_ = CompanionStruct_ExecuteStatementOutputTransformInput_{} + +type ExecuteStatementOutputTransformInput_ExecuteStatementOutputTransformInput struct { + SdkOutput m_ComAmazonawsDynamodbTypes.ExecuteStatementOutput + OriginalInput m_ComAmazonawsDynamodbTypes.ExecuteStatementInput +} + +func (ExecuteStatementOutputTransformInput_ExecuteStatementOutputTransformInput) isExecuteStatementOutputTransformInput() { +} + +func (CompanionStruct_ExecuteStatementOutputTransformInput_) Create_ExecuteStatementOutputTransformInput_(SdkOutput m_ComAmazonawsDynamodbTypes.ExecuteStatementOutput, OriginalInput m_ComAmazonawsDynamodbTypes.ExecuteStatementInput) ExecuteStatementOutputTransformInput { + return ExecuteStatementOutputTransformInput{ExecuteStatementOutputTransformInput_ExecuteStatementOutputTransformInput{SdkOutput, OriginalInput}} +} + +func (_this ExecuteStatementOutputTransformInput) Is_ExecuteStatementOutputTransformInput() bool { + _, ok := _this.Get_().(ExecuteStatementOutputTransformInput_ExecuteStatementOutputTransformInput) + return ok +} + +func (CompanionStruct_ExecuteStatementOutputTransformInput_) Default() ExecuteStatementOutputTransformInput { + return Companion_ExecuteStatementOutputTransformInput_.Create_ExecuteStatementOutputTransformInput_(m_ComAmazonawsDynamodbTypes.Companion_ExecuteStatementOutput_.Default(), m_ComAmazonawsDynamodbTypes.Companion_ExecuteStatementInput_.Default()) +} + +func (_this ExecuteStatementOutputTransformInput) Dtor_sdkOutput() m_ComAmazonawsDynamodbTypes.ExecuteStatementOutput { + return _this.Get_().(ExecuteStatementOutputTransformInput_ExecuteStatementOutputTransformInput).SdkOutput +} + +func (_this ExecuteStatementOutputTransformInput) Dtor_originalInput() m_ComAmazonawsDynamodbTypes.ExecuteStatementInput { + return _this.Get_().(ExecuteStatementOutputTransformInput_ExecuteStatementOutputTransformInput).OriginalInput +} + +func (_this ExecuteStatementOutputTransformInput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case ExecuteStatementOutputTransformInput_ExecuteStatementOutputTransformInput: + { + return "AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.ExecuteStatementOutputTransformInput.ExecuteStatementOutputTransformInput" + "(" + _dafny.String(data.SdkOutput) + ", " + _dafny.String(data.OriginalInput) + ")" + } + default: + { + return "" + } + } +} + +func (_this ExecuteStatementOutputTransformInput) Equals(other ExecuteStatementOutputTransformInput) bool { + switch data1 := _this.Get_().(type) { + case ExecuteStatementOutputTransformInput_ExecuteStatementOutputTransformInput: + { + data2, ok := other.Get_().(ExecuteStatementOutputTransformInput_ExecuteStatementOutputTransformInput) + return ok && data1.SdkOutput.Equals(data2.SdkOutput) && data1.OriginalInput.Equals(data2.OriginalInput) + } + default: + { + return false // unexpected + } + } +} + +func (_this ExecuteStatementOutputTransformInput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(ExecuteStatementOutputTransformInput) + return ok && _this.Equals(typed) +} + +func Type_ExecuteStatementOutputTransformInput_() _dafny.TypeDescriptor { + return type_ExecuteStatementOutputTransformInput_{} +} + +type type_ExecuteStatementOutputTransformInput_ struct { +} + +func (_this type_ExecuteStatementOutputTransformInput_) Default() interface{} { + return Companion_ExecuteStatementOutputTransformInput_.Default() +} + +func (_this type_ExecuteStatementOutputTransformInput_) String() string { + return "AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.ExecuteStatementOutputTransformInput" +} +func (_this ExecuteStatementOutputTransformInput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = ExecuteStatementOutputTransformInput{} + +// End of datatype ExecuteStatementOutputTransformInput + +// Definition of datatype ExecuteStatementOutputTransformOutput +type ExecuteStatementOutputTransformOutput struct { + Data_ExecuteStatementOutputTransformOutput_ +} + +func (_this ExecuteStatementOutputTransformOutput) Get_() Data_ExecuteStatementOutputTransformOutput_ { + return _this.Data_ExecuteStatementOutputTransformOutput_ +} + +type Data_ExecuteStatementOutputTransformOutput_ interface { + isExecuteStatementOutputTransformOutput() +} + +type CompanionStruct_ExecuteStatementOutputTransformOutput_ struct { +} + +var Companion_ExecuteStatementOutputTransformOutput_ = CompanionStruct_ExecuteStatementOutputTransformOutput_{} + +type ExecuteStatementOutputTransformOutput_ExecuteStatementOutputTransformOutput struct { + TransformedOutput m_ComAmazonawsDynamodbTypes.ExecuteStatementOutput +} + +func (ExecuteStatementOutputTransformOutput_ExecuteStatementOutputTransformOutput) isExecuteStatementOutputTransformOutput() { +} + +func (CompanionStruct_ExecuteStatementOutputTransformOutput_) Create_ExecuteStatementOutputTransformOutput_(TransformedOutput m_ComAmazonawsDynamodbTypes.ExecuteStatementOutput) ExecuteStatementOutputTransformOutput { + return ExecuteStatementOutputTransformOutput{ExecuteStatementOutputTransformOutput_ExecuteStatementOutputTransformOutput{TransformedOutput}} +} + +func (_this ExecuteStatementOutputTransformOutput) Is_ExecuteStatementOutputTransformOutput() bool { + _, ok := _this.Get_().(ExecuteStatementOutputTransformOutput_ExecuteStatementOutputTransformOutput) + return ok +} + +func (CompanionStruct_ExecuteStatementOutputTransformOutput_) Default() ExecuteStatementOutputTransformOutput { + return Companion_ExecuteStatementOutputTransformOutput_.Create_ExecuteStatementOutputTransformOutput_(m_ComAmazonawsDynamodbTypes.Companion_ExecuteStatementOutput_.Default()) +} + +func (_this ExecuteStatementOutputTransformOutput) Dtor_transformedOutput() m_ComAmazonawsDynamodbTypes.ExecuteStatementOutput { + return _this.Get_().(ExecuteStatementOutputTransformOutput_ExecuteStatementOutputTransformOutput).TransformedOutput +} + +func (_this ExecuteStatementOutputTransformOutput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case ExecuteStatementOutputTransformOutput_ExecuteStatementOutputTransformOutput: + { + return "AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.ExecuteStatementOutputTransformOutput.ExecuteStatementOutputTransformOutput" + "(" + _dafny.String(data.TransformedOutput) + ")" + } + default: + { + return "" + } + } +} + +func (_this ExecuteStatementOutputTransformOutput) Equals(other ExecuteStatementOutputTransformOutput) bool { + switch data1 := _this.Get_().(type) { + case ExecuteStatementOutputTransformOutput_ExecuteStatementOutputTransformOutput: + { + data2, ok := other.Get_().(ExecuteStatementOutputTransformOutput_ExecuteStatementOutputTransformOutput) + return ok && data1.TransformedOutput.Equals(data2.TransformedOutput) + } + default: + { + return false // unexpected + } + } +} + +func (_this ExecuteStatementOutputTransformOutput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(ExecuteStatementOutputTransformOutput) + return ok && _this.Equals(typed) +} + +func Type_ExecuteStatementOutputTransformOutput_() _dafny.TypeDescriptor { + return type_ExecuteStatementOutputTransformOutput_{} +} + +type type_ExecuteStatementOutputTransformOutput_ struct { +} + +func (_this type_ExecuteStatementOutputTransformOutput_) Default() interface{} { + return Companion_ExecuteStatementOutputTransformOutput_.Default() +} + +func (_this type_ExecuteStatementOutputTransformOutput_) String() string { + return "AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.ExecuteStatementOutputTransformOutput" +} +func (_this ExecuteStatementOutputTransformOutput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = ExecuteStatementOutputTransformOutput{} + +// End of datatype ExecuteStatementOutputTransformOutput + +// Definition of datatype ExecuteTransactionInputTransformInput +type ExecuteTransactionInputTransformInput struct { + Data_ExecuteTransactionInputTransformInput_ +} + +func (_this ExecuteTransactionInputTransformInput) Get_() Data_ExecuteTransactionInputTransformInput_ { + return _this.Data_ExecuteTransactionInputTransformInput_ +} + +type Data_ExecuteTransactionInputTransformInput_ interface { + isExecuteTransactionInputTransformInput() +} + +type CompanionStruct_ExecuteTransactionInputTransformInput_ struct { +} + +var Companion_ExecuteTransactionInputTransformInput_ = CompanionStruct_ExecuteTransactionInputTransformInput_{} + +type ExecuteTransactionInputTransformInput_ExecuteTransactionInputTransformInput struct { + SdkInput m_ComAmazonawsDynamodbTypes.ExecuteTransactionInput +} + +func (ExecuteTransactionInputTransformInput_ExecuteTransactionInputTransformInput) isExecuteTransactionInputTransformInput() { +} + +func (CompanionStruct_ExecuteTransactionInputTransformInput_) Create_ExecuteTransactionInputTransformInput_(SdkInput m_ComAmazonawsDynamodbTypes.ExecuteTransactionInput) ExecuteTransactionInputTransformInput { + return ExecuteTransactionInputTransformInput{ExecuteTransactionInputTransformInput_ExecuteTransactionInputTransformInput{SdkInput}} +} + +func (_this ExecuteTransactionInputTransformInput) Is_ExecuteTransactionInputTransformInput() bool { + _, ok := _this.Get_().(ExecuteTransactionInputTransformInput_ExecuteTransactionInputTransformInput) + return ok +} + +func (CompanionStruct_ExecuteTransactionInputTransformInput_) Default() ExecuteTransactionInputTransformInput { + return Companion_ExecuteTransactionInputTransformInput_.Create_ExecuteTransactionInputTransformInput_(m_ComAmazonawsDynamodbTypes.Companion_ExecuteTransactionInput_.Default()) +} + +func (_this ExecuteTransactionInputTransformInput) Dtor_sdkInput() m_ComAmazonawsDynamodbTypes.ExecuteTransactionInput { + return _this.Get_().(ExecuteTransactionInputTransformInput_ExecuteTransactionInputTransformInput).SdkInput +} + +func (_this ExecuteTransactionInputTransformInput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case ExecuteTransactionInputTransformInput_ExecuteTransactionInputTransformInput: + { + return "AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.ExecuteTransactionInputTransformInput.ExecuteTransactionInputTransformInput" + "(" + _dafny.String(data.SdkInput) + ")" + } + default: + { + return "" + } + } +} + +func (_this ExecuteTransactionInputTransformInput) Equals(other ExecuteTransactionInputTransformInput) bool { + switch data1 := _this.Get_().(type) { + case ExecuteTransactionInputTransformInput_ExecuteTransactionInputTransformInput: + { + data2, ok := other.Get_().(ExecuteTransactionInputTransformInput_ExecuteTransactionInputTransformInput) + return ok && data1.SdkInput.Equals(data2.SdkInput) + } + default: + { + return false // unexpected + } + } +} + +func (_this ExecuteTransactionInputTransformInput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(ExecuteTransactionInputTransformInput) + return ok && _this.Equals(typed) +} + +func Type_ExecuteTransactionInputTransformInput_() _dafny.TypeDescriptor { + return type_ExecuteTransactionInputTransformInput_{} +} + +type type_ExecuteTransactionInputTransformInput_ struct { +} + +func (_this type_ExecuteTransactionInputTransformInput_) Default() interface{} { + return Companion_ExecuteTransactionInputTransformInput_.Default() +} + +func (_this type_ExecuteTransactionInputTransformInput_) String() string { + return "AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.ExecuteTransactionInputTransformInput" +} +func (_this ExecuteTransactionInputTransformInput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = ExecuteTransactionInputTransformInput{} + +// End of datatype ExecuteTransactionInputTransformInput + +// Definition of datatype ExecuteTransactionInputTransformOutput +type ExecuteTransactionInputTransformOutput struct { + Data_ExecuteTransactionInputTransformOutput_ +} + +func (_this ExecuteTransactionInputTransformOutput) Get_() Data_ExecuteTransactionInputTransformOutput_ { + return _this.Data_ExecuteTransactionInputTransformOutput_ +} + +type Data_ExecuteTransactionInputTransformOutput_ interface { + isExecuteTransactionInputTransformOutput() +} + +type CompanionStruct_ExecuteTransactionInputTransformOutput_ struct { +} + +var Companion_ExecuteTransactionInputTransformOutput_ = CompanionStruct_ExecuteTransactionInputTransformOutput_{} + +type ExecuteTransactionInputTransformOutput_ExecuteTransactionInputTransformOutput struct { + TransformedInput m_ComAmazonawsDynamodbTypes.ExecuteTransactionInput +} + +func (ExecuteTransactionInputTransformOutput_ExecuteTransactionInputTransformOutput) isExecuteTransactionInputTransformOutput() { +} + +func (CompanionStruct_ExecuteTransactionInputTransformOutput_) Create_ExecuteTransactionInputTransformOutput_(TransformedInput m_ComAmazonawsDynamodbTypes.ExecuteTransactionInput) ExecuteTransactionInputTransformOutput { + return ExecuteTransactionInputTransformOutput{ExecuteTransactionInputTransformOutput_ExecuteTransactionInputTransformOutput{TransformedInput}} +} + +func (_this ExecuteTransactionInputTransformOutput) Is_ExecuteTransactionInputTransformOutput() bool { + _, ok := _this.Get_().(ExecuteTransactionInputTransformOutput_ExecuteTransactionInputTransformOutput) + return ok +} + +func (CompanionStruct_ExecuteTransactionInputTransformOutput_) Default() ExecuteTransactionInputTransformOutput { + return Companion_ExecuteTransactionInputTransformOutput_.Create_ExecuteTransactionInputTransformOutput_(m_ComAmazonawsDynamodbTypes.Companion_ExecuteTransactionInput_.Default()) +} + +func (_this ExecuteTransactionInputTransformOutput) Dtor_transformedInput() m_ComAmazonawsDynamodbTypes.ExecuteTransactionInput { + return _this.Get_().(ExecuteTransactionInputTransformOutput_ExecuteTransactionInputTransformOutput).TransformedInput +} + +func (_this ExecuteTransactionInputTransformOutput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case ExecuteTransactionInputTransformOutput_ExecuteTransactionInputTransformOutput: + { + return "AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.ExecuteTransactionInputTransformOutput.ExecuteTransactionInputTransformOutput" + "(" + _dafny.String(data.TransformedInput) + ")" + } + default: + { + return "" + } + } +} + +func (_this ExecuteTransactionInputTransformOutput) Equals(other ExecuteTransactionInputTransformOutput) bool { + switch data1 := _this.Get_().(type) { + case ExecuteTransactionInputTransformOutput_ExecuteTransactionInputTransformOutput: + { + data2, ok := other.Get_().(ExecuteTransactionInputTransformOutput_ExecuteTransactionInputTransformOutput) + return ok && data1.TransformedInput.Equals(data2.TransformedInput) + } + default: + { + return false // unexpected + } + } +} + +func (_this ExecuteTransactionInputTransformOutput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(ExecuteTransactionInputTransformOutput) + return ok && _this.Equals(typed) +} + +func Type_ExecuteTransactionInputTransformOutput_() _dafny.TypeDescriptor { + return type_ExecuteTransactionInputTransformOutput_{} +} + +type type_ExecuteTransactionInputTransformOutput_ struct { +} + +func (_this type_ExecuteTransactionInputTransformOutput_) Default() interface{} { + return Companion_ExecuteTransactionInputTransformOutput_.Default() +} + +func (_this type_ExecuteTransactionInputTransformOutput_) String() string { + return "AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.ExecuteTransactionInputTransformOutput" +} +func (_this ExecuteTransactionInputTransformOutput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = ExecuteTransactionInputTransformOutput{} + +// End of datatype ExecuteTransactionInputTransformOutput + +// Definition of datatype ExecuteTransactionOutputTransformInput +type ExecuteTransactionOutputTransformInput struct { + Data_ExecuteTransactionOutputTransformInput_ +} + +func (_this ExecuteTransactionOutputTransformInput) Get_() Data_ExecuteTransactionOutputTransformInput_ { + return _this.Data_ExecuteTransactionOutputTransformInput_ +} + +type Data_ExecuteTransactionOutputTransformInput_ interface { + isExecuteTransactionOutputTransformInput() +} + +type CompanionStruct_ExecuteTransactionOutputTransformInput_ struct { +} + +var Companion_ExecuteTransactionOutputTransformInput_ = CompanionStruct_ExecuteTransactionOutputTransformInput_{} + +type ExecuteTransactionOutputTransformInput_ExecuteTransactionOutputTransformInput struct { + SdkOutput m_ComAmazonawsDynamodbTypes.ExecuteTransactionOutput + OriginalInput m_ComAmazonawsDynamodbTypes.ExecuteTransactionInput +} + +func (ExecuteTransactionOutputTransformInput_ExecuteTransactionOutputTransformInput) isExecuteTransactionOutputTransformInput() { +} + +func (CompanionStruct_ExecuteTransactionOutputTransformInput_) Create_ExecuteTransactionOutputTransformInput_(SdkOutput m_ComAmazonawsDynamodbTypes.ExecuteTransactionOutput, OriginalInput m_ComAmazonawsDynamodbTypes.ExecuteTransactionInput) ExecuteTransactionOutputTransformInput { + return ExecuteTransactionOutputTransformInput{ExecuteTransactionOutputTransformInput_ExecuteTransactionOutputTransformInput{SdkOutput, OriginalInput}} +} + +func (_this ExecuteTransactionOutputTransformInput) Is_ExecuteTransactionOutputTransformInput() bool { + _, ok := _this.Get_().(ExecuteTransactionOutputTransformInput_ExecuteTransactionOutputTransformInput) + return ok +} + +func (CompanionStruct_ExecuteTransactionOutputTransformInput_) Default() ExecuteTransactionOutputTransformInput { + return Companion_ExecuteTransactionOutputTransformInput_.Create_ExecuteTransactionOutputTransformInput_(m_ComAmazonawsDynamodbTypes.Companion_ExecuteTransactionOutput_.Default(), m_ComAmazonawsDynamodbTypes.Companion_ExecuteTransactionInput_.Default()) +} + +func (_this ExecuteTransactionOutputTransformInput) Dtor_sdkOutput() m_ComAmazonawsDynamodbTypes.ExecuteTransactionOutput { + return _this.Get_().(ExecuteTransactionOutputTransformInput_ExecuteTransactionOutputTransformInput).SdkOutput +} + +func (_this ExecuteTransactionOutputTransformInput) Dtor_originalInput() m_ComAmazonawsDynamodbTypes.ExecuteTransactionInput { + return _this.Get_().(ExecuteTransactionOutputTransformInput_ExecuteTransactionOutputTransformInput).OriginalInput +} + +func (_this ExecuteTransactionOutputTransformInput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case ExecuteTransactionOutputTransformInput_ExecuteTransactionOutputTransformInput: + { + return "AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.ExecuteTransactionOutputTransformInput.ExecuteTransactionOutputTransformInput" + "(" + _dafny.String(data.SdkOutput) + ", " + _dafny.String(data.OriginalInput) + ")" + } + default: + { + return "" + } + } +} + +func (_this ExecuteTransactionOutputTransformInput) Equals(other ExecuteTransactionOutputTransformInput) bool { + switch data1 := _this.Get_().(type) { + case ExecuteTransactionOutputTransformInput_ExecuteTransactionOutputTransformInput: + { + data2, ok := other.Get_().(ExecuteTransactionOutputTransformInput_ExecuteTransactionOutputTransformInput) + return ok && data1.SdkOutput.Equals(data2.SdkOutput) && data1.OriginalInput.Equals(data2.OriginalInput) + } + default: + { + return false // unexpected + } + } +} + +func (_this ExecuteTransactionOutputTransformInput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(ExecuteTransactionOutputTransformInput) + return ok && _this.Equals(typed) +} + +func Type_ExecuteTransactionOutputTransformInput_() _dafny.TypeDescriptor { + return type_ExecuteTransactionOutputTransformInput_{} +} + +type type_ExecuteTransactionOutputTransformInput_ struct { +} + +func (_this type_ExecuteTransactionOutputTransformInput_) Default() interface{} { + return Companion_ExecuteTransactionOutputTransformInput_.Default() +} + +func (_this type_ExecuteTransactionOutputTransformInput_) String() string { + return "AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.ExecuteTransactionOutputTransformInput" +} +func (_this ExecuteTransactionOutputTransformInput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = ExecuteTransactionOutputTransformInput{} + +// End of datatype ExecuteTransactionOutputTransformInput + +// Definition of datatype ExecuteTransactionOutputTransformOutput +type ExecuteTransactionOutputTransformOutput struct { + Data_ExecuteTransactionOutputTransformOutput_ +} + +func (_this ExecuteTransactionOutputTransformOutput) Get_() Data_ExecuteTransactionOutputTransformOutput_ { + return _this.Data_ExecuteTransactionOutputTransformOutput_ +} + +type Data_ExecuteTransactionOutputTransformOutput_ interface { + isExecuteTransactionOutputTransformOutput() +} + +type CompanionStruct_ExecuteTransactionOutputTransformOutput_ struct { +} + +var Companion_ExecuteTransactionOutputTransformOutput_ = CompanionStruct_ExecuteTransactionOutputTransformOutput_{} + +type ExecuteTransactionOutputTransformOutput_ExecuteTransactionOutputTransformOutput struct { + TransformedOutput m_ComAmazonawsDynamodbTypes.ExecuteTransactionOutput +} + +func (ExecuteTransactionOutputTransformOutput_ExecuteTransactionOutputTransformOutput) isExecuteTransactionOutputTransformOutput() { +} + +func (CompanionStruct_ExecuteTransactionOutputTransformOutput_) Create_ExecuteTransactionOutputTransformOutput_(TransformedOutput m_ComAmazonawsDynamodbTypes.ExecuteTransactionOutput) ExecuteTransactionOutputTransformOutput { + return ExecuteTransactionOutputTransformOutput{ExecuteTransactionOutputTransformOutput_ExecuteTransactionOutputTransformOutput{TransformedOutput}} +} + +func (_this ExecuteTransactionOutputTransformOutput) Is_ExecuteTransactionOutputTransformOutput() bool { + _, ok := _this.Get_().(ExecuteTransactionOutputTransformOutput_ExecuteTransactionOutputTransformOutput) + return ok +} + +func (CompanionStruct_ExecuteTransactionOutputTransformOutput_) Default() ExecuteTransactionOutputTransformOutput { + return Companion_ExecuteTransactionOutputTransformOutput_.Create_ExecuteTransactionOutputTransformOutput_(m_ComAmazonawsDynamodbTypes.Companion_ExecuteTransactionOutput_.Default()) +} + +func (_this ExecuteTransactionOutputTransformOutput) Dtor_transformedOutput() m_ComAmazonawsDynamodbTypes.ExecuteTransactionOutput { + return _this.Get_().(ExecuteTransactionOutputTransformOutput_ExecuteTransactionOutputTransformOutput).TransformedOutput +} + +func (_this ExecuteTransactionOutputTransformOutput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case ExecuteTransactionOutputTransformOutput_ExecuteTransactionOutputTransformOutput: + { + return "AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.ExecuteTransactionOutputTransformOutput.ExecuteTransactionOutputTransformOutput" + "(" + _dafny.String(data.TransformedOutput) + ")" + } + default: + { + return "" + } + } +} + +func (_this ExecuteTransactionOutputTransformOutput) Equals(other ExecuteTransactionOutputTransformOutput) bool { + switch data1 := _this.Get_().(type) { + case ExecuteTransactionOutputTransformOutput_ExecuteTransactionOutputTransformOutput: + { + data2, ok := other.Get_().(ExecuteTransactionOutputTransformOutput_ExecuteTransactionOutputTransformOutput) + return ok && data1.TransformedOutput.Equals(data2.TransformedOutput) + } + default: + { + return false // unexpected + } + } +} + +func (_this ExecuteTransactionOutputTransformOutput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(ExecuteTransactionOutputTransformOutput) + return ok && _this.Equals(typed) +} + +func Type_ExecuteTransactionOutputTransformOutput_() _dafny.TypeDescriptor { + return type_ExecuteTransactionOutputTransformOutput_{} +} + +type type_ExecuteTransactionOutputTransformOutput_ struct { +} + +func (_this type_ExecuteTransactionOutputTransformOutput_) Default() interface{} { + return Companion_ExecuteTransactionOutputTransformOutput_.Default() +} + +func (_this type_ExecuteTransactionOutputTransformOutput_) String() string { + return "AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.ExecuteTransactionOutputTransformOutput" +} +func (_this ExecuteTransactionOutputTransformOutput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = ExecuteTransactionOutputTransformOutput{} + +// End of datatype ExecuteTransactionOutputTransformOutput + +// Definition of datatype GetItemInputTransformInput +type GetItemInputTransformInput struct { + Data_GetItemInputTransformInput_ +} + +func (_this GetItemInputTransformInput) Get_() Data_GetItemInputTransformInput_ { + return _this.Data_GetItemInputTransformInput_ +} + +type Data_GetItemInputTransformInput_ interface { + isGetItemInputTransformInput() +} + +type CompanionStruct_GetItemInputTransformInput_ struct { +} + +var Companion_GetItemInputTransformInput_ = CompanionStruct_GetItemInputTransformInput_{} + +type GetItemInputTransformInput_GetItemInputTransformInput struct { + SdkInput m_ComAmazonawsDynamodbTypes.GetItemInput +} + +func (GetItemInputTransformInput_GetItemInputTransformInput) isGetItemInputTransformInput() {} + +func (CompanionStruct_GetItemInputTransformInput_) Create_GetItemInputTransformInput_(SdkInput m_ComAmazonawsDynamodbTypes.GetItemInput) GetItemInputTransformInput { + return GetItemInputTransformInput{GetItemInputTransformInput_GetItemInputTransformInput{SdkInput}} +} + +func (_this GetItemInputTransformInput) Is_GetItemInputTransformInput() bool { + _, ok := _this.Get_().(GetItemInputTransformInput_GetItemInputTransformInput) + return ok +} + +func (CompanionStruct_GetItemInputTransformInput_) Default() GetItemInputTransformInput { + return Companion_GetItemInputTransformInput_.Create_GetItemInputTransformInput_(m_ComAmazonawsDynamodbTypes.Companion_GetItemInput_.Default()) +} + +func (_this GetItemInputTransformInput) Dtor_sdkInput() m_ComAmazonawsDynamodbTypes.GetItemInput { + return _this.Get_().(GetItemInputTransformInput_GetItemInputTransformInput).SdkInput +} + +func (_this GetItemInputTransformInput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case GetItemInputTransformInput_GetItemInputTransformInput: + { + return "AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.GetItemInputTransformInput.GetItemInputTransformInput" + "(" + _dafny.String(data.SdkInput) + ")" + } + default: + { + return "" + } + } +} + +func (_this GetItemInputTransformInput) Equals(other GetItemInputTransformInput) bool { + switch data1 := _this.Get_().(type) { + case GetItemInputTransformInput_GetItemInputTransformInput: + { + data2, ok := other.Get_().(GetItemInputTransformInput_GetItemInputTransformInput) + return ok && data1.SdkInput.Equals(data2.SdkInput) + } + default: + { + return false // unexpected + } + } +} + +func (_this GetItemInputTransformInput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(GetItemInputTransformInput) + return ok && _this.Equals(typed) +} + +func Type_GetItemInputTransformInput_() _dafny.TypeDescriptor { + return type_GetItemInputTransformInput_{} +} + +type type_GetItemInputTransformInput_ struct { +} + +func (_this type_GetItemInputTransformInput_) Default() interface{} { + return Companion_GetItemInputTransformInput_.Default() +} + +func (_this type_GetItemInputTransformInput_) String() string { + return "AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.GetItemInputTransformInput" +} +func (_this GetItemInputTransformInput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = GetItemInputTransformInput{} + +// End of datatype GetItemInputTransformInput + +// Definition of datatype GetItemInputTransformOutput +type GetItemInputTransformOutput struct { + Data_GetItemInputTransformOutput_ +} + +func (_this GetItemInputTransformOutput) Get_() Data_GetItemInputTransformOutput_ { + return _this.Data_GetItemInputTransformOutput_ +} + +type Data_GetItemInputTransformOutput_ interface { + isGetItemInputTransformOutput() +} + +type CompanionStruct_GetItemInputTransformOutput_ struct { +} + +var Companion_GetItemInputTransformOutput_ = CompanionStruct_GetItemInputTransformOutput_{} + +type GetItemInputTransformOutput_GetItemInputTransformOutput struct { + TransformedInput m_ComAmazonawsDynamodbTypes.GetItemInput +} + +func (GetItemInputTransformOutput_GetItemInputTransformOutput) isGetItemInputTransformOutput() {} + +func (CompanionStruct_GetItemInputTransformOutput_) Create_GetItemInputTransformOutput_(TransformedInput m_ComAmazonawsDynamodbTypes.GetItemInput) GetItemInputTransformOutput { + return GetItemInputTransformOutput{GetItemInputTransformOutput_GetItemInputTransformOutput{TransformedInput}} +} + +func (_this GetItemInputTransformOutput) Is_GetItemInputTransformOutput() bool { + _, ok := _this.Get_().(GetItemInputTransformOutput_GetItemInputTransformOutput) + return ok +} + +func (CompanionStruct_GetItemInputTransformOutput_) Default() GetItemInputTransformOutput { + return Companion_GetItemInputTransformOutput_.Create_GetItemInputTransformOutput_(m_ComAmazonawsDynamodbTypes.Companion_GetItemInput_.Default()) +} + +func (_this GetItemInputTransformOutput) Dtor_transformedInput() m_ComAmazonawsDynamodbTypes.GetItemInput { + return _this.Get_().(GetItemInputTransformOutput_GetItemInputTransformOutput).TransformedInput +} + +func (_this GetItemInputTransformOutput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case GetItemInputTransformOutput_GetItemInputTransformOutput: + { + return "AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.GetItemInputTransformOutput.GetItemInputTransformOutput" + "(" + _dafny.String(data.TransformedInput) + ")" + } + default: + { + return "" + } + } +} + +func (_this GetItemInputTransformOutput) Equals(other GetItemInputTransformOutput) bool { + switch data1 := _this.Get_().(type) { + case GetItemInputTransformOutput_GetItemInputTransformOutput: + { + data2, ok := other.Get_().(GetItemInputTransformOutput_GetItemInputTransformOutput) + return ok && data1.TransformedInput.Equals(data2.TransformedInput) + } + default: + { + return false // unexpected + } + } +} + +func (_this GetItemInputTransformOutput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(GetItemInputTransformOutput) + return ok && _this.Equals(typed) +} + +func Type_GetItemInputTransformOutput_() _dafny.TypeDescriptor { + return type_GetItemInputTransformOutput_{} +} + +type type_GetItemInputTransformOutput_ struct { +} + +func (_this type_GetItemInputTransformOutput_) Default() interface{} { + return Companion_GetItemInputTransformOutput_.Default() +} + +func (_this type_GetItemInputTransformOutput_) String() string { + return "AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.GetItemInputTransformOutput" +} +func (_this GetItemInputTransformOutput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = GetItemInputTransformOutput{} + +// End of datatype GetItemInputTransformOutput + +// Definition of datatype GetItemOutputTransformInput +type GetItemOutputTransformInput struct { + Data_GetItemOutputTransformInput_ +} + +func (_this GetItemOutputTransformInput) Get_() Data_GetItemOutputTransformInput_ { + return _this.Data_GetItemOutputTransformInput_ +} + +type Data_GetItemOutputTransformInput_ interface { + isGetItemOutputTransformInput() +} + +type CompanionStruct_GetItemOutputTransformInput_ struct { +} + +var Companion_GetItemOutputTransformInput_ = CompanionStruct_GetItemOutputTransformInput_{} + +type GetItemOutputTransformInput_GetItemOutputTransformInput struct { + SdkOutput m_ComAmazonawsDynamodbTypes.GetItemOutput + OriginalInput m_ComAmazonawsDynamodbTypes.GetItemInput +} + +func (GetItemOutputTransformInput_GetItemOutputTransformInput) isGetItemOutputTransformInput() {} + +func (CompanionStruct_GetItemOutputTransformInput_) Create_GetItemOutputTransformInput_(SdkOutput m_ComAmazonawsDynamodbTypes.GetItemOutput, OriginalInput m_ComAmazonawsDynamodbTypes.GetItemInput) GetItemOutputTransformInput { + return GetItemOutputTransformInput{GetItemOutputTransformInput_GetItemOutputTransformInput{SdkOutput, OriginalInput}} +} + +func (_this GetItemOutputTransformInput) Is_GetItemOutputTransformInput() bool { + _, ok := _this.Get_().(GetItemOutputTransformInput_GetItemOutputTransformInput) + return ok +} + +func (CompanionStruct_GetItemOutputTransformInput_) Default() GetItemOutputTransformInput { + return Companion_GetItemOutputTransformInput_.Create_GetItemOutputTransformInput_(m_ComAmazonawsDynamodbTypes.Companion_GetItemOutput_.Default(), m_ComAmazonawsDynamodbTypes.Companion_GetItemInput_.Default()) +} + +func (_this GetItemOutputTransformInput) Dtor_sdkOutput() m_ComAmazonawsDynamodbTypes.GetItemOutput { + return _this.Get_().(GetItemOutputTransformInput_GetItemOutputTransformInput).SdkOutput +} + +func (_this GetItemOutputTransformInput) Dtor_originalInput() m_ComAmazonawsDynamodbTypes.GetItemInput { + return _this.Get_().(GetItemOutputTransformInput_GetItemOutputTransformInput).OriginalInput +} + +func (_this GetItemOutputTransformInput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case GetItemOutputTransformInput_GetItemOutputTransformInput: + { + return "AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.GetItemOutputTransformInput.GetItemOutputTransformInput" + "(" + _dafny.String(data.SdkOutput) + ", " + _dafny.String(data.OriginalInput) + ")" + } + default: + { + return "" + } + } +} + +func (_this GetItemOutputTransformInput) Equals(other GetItemOutputTransformInput) bool { + switch data1 := _this.Get_().(type) { + case GetItemOutputTransformInput_GetItemOutputTransformInput: + { + data2, ok := other.Get_().(GetItemOutputTransformInput_GetItemOutputTransformInput) + return ok && data1.SdkOutput.Equals(data2.SdkOutput) && data1.OriginalInput.Equals(data2.OriginalInput) + } + default: + { + return false // unexpected + } + } +} + +func (_this GetItemOutputTransformInput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(GetItemOutputTransformInput) + return ok && _this.Equals(typed) +} + +func Type_GetItemOutputTransformInput_() _dafny.TypeDescriptor { + return type_GetItemOutputTransformInput_{} +} + +type type_GetItemOutputTransformInput_ struct { +} + +func (_this type_GetItemOutputTransformInput_) Default() interface{} { + return Companion_GetItemOutputTransformInput_.Default() +} + +func (_this type_GetItemOutputTransformInput_) String() string { + return "AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.GetItemOutputTransformInput" +} +func (_this GetItemOutputTransformInput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = GetItemOutputTransformInput{} + +// End of datatype GetItemOutputTransformInput + +// Definition of datatype GetItemOutputTransformOutput +type GetItemOutputTransformOutput struct { + Data_GetItemOutputTransformOutput_ +} + +func (_this GetItemOutputTransformOutput) Get_() Data_GetItemOutputTransformOutput_ { + return _this.Data_GetItemOutputTransformOutput_ +} + +type Data_GetItemOutputTransformOutput_ interface { + isGetItemOutputTransformOutput() +} + +type CompanionStruct_GetItemOutputTransformOutput_ struct { +} + +var Companion_GetItemOutputTransformOutput_ = CompanionStruct_GetItemOutputTransformOutput_{} + +type GetItemOutputTransformOutput_GetItemOutputTransformOutput struct { + TransformedOutput m_ComAmazonawsDynamodbTypes.GetItemOutput +} + +func (GetItemOutputTransformOutput_GetItemOutputTransformOutput) isGetItemOutputTransformOutput() {} + +func (CompanionStruct_GetItemOutputTransformOutput_) Create_GetItemOutputTransformOutput_(TransformedOutput m_ComAmazonawsDynamodbTypes.GetItemOutput) GetItemOutputTransformOutput { + return GetItemOutputTransformOutput{GetItemOutputTransformOutput_GetItemOutputTransformOutput{TransformedOutput}} +} + +func (_this GetItemOutputTransformOutput) Is_GetItemOutputTransformOutput() bool { + _, ok := _this.Get_().(GetItemOutputTransformOutput_GetItemOutputTransformOutput) + return ok +} + +func (CompanionStruct_GetItemOutputTransformOutput_) Default() GetItemOutputTransformOutput { + return Companion_GetItemOutputTransformOutput_.Create_GetItemOutputTransformOutput_(m_ComAmazonawsDynamodbTypes.Companion_GetItemOutput_.Default()) +} + +func (_this GetItemOutputTransformOutput) Dtor_transformedOutput() m_ComAmazonawsDynamodbTypes.GetItemOutput { + return _this.Get_().(GetItemOutputTransformOutput_GetItemOutputTransformOutput).TransformedOutput +} + +func (_this GetItemOutputTransformOutput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case GetItemOutputTransformOutput_GetItemOutputTransformOutput: + { + return "AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.GetItemOutputTransformOutput.GetItemOutputTransformOutput" + "(" + _dafny.String(data.TransformedOutput) + ")" + } + default: + { + return "" + } + } +} + +func (_this GetItemOutputTransformOutput) Equals(other GetItemOutputTransformOutput) bool { + switch data1 := _this.Get_().(type) { + case GetItemOutputTransformOutput_GetItemOutputTransformOutput: + { + data2, ok := other.Get_().(GetItemOutputTransformOutput_GetItemOutputTransformOutput) + return ok && data1.TransformedOutput.Equals(data2.TransformedOutput) + } + default: + { + return false // unexpected + } + } +} + +func (_this GetItemOutputTransformOutput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(GetItemOutputTransformOutput) + return ok && _this.Equals(typed) +} + +func Type_GetItemOutputTransformOutput_() _dafny.TypeDescriptor { + return type_GetItemOutputTransformOutput_{} +} + +type type_GetItemOutputTransformOutput_ struct { +} + +func (_this type_GetItemOutputTransformOutput_) Default() interface{} { + return Companion_GetItemOutputTransformOutput_.Default() +} + +func (_this type_GetItemOutputTransformOutput_) String() string { + return "AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.GetItemOutputTransformOutput" +} +func (_this GetItemOutputTransformOutput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = GetItemOutputTransformOutput{} + +// End of datatype GetItemOutputTransformOutput + +// Definition of datatype PutItemInputTransformInput +type PutItemInputTransformInput struct { + Data_PutItemInputTransformInput_ +} + +func (_this PutItemInputTransformInput) Get_() Data_PutItemInputTransformInput_ { + return _this.Data_PutItemInputTransformInput_ +} + +type Data_PutItemInputTransformInput_ interface { + isPutItemInputTransformInput() +} + +type CompanionStruct_PutItemInputTransformInput_ struct { +} + +var Companion_PutItemInputTransformInput_ = CompanionStruct_PutItemInputTransformInput_{} + +type PutItemInputTransformInput_PutItemInputTransformInput struct { + SdkInput m_ComAmazonawsDynamodbTypes.PutItemInput +} + +func (PutItemInputTransformInput_PutItemInputTransformInput) isPutItemInputTransformInput() {} + +func (CompanionStruct_PutItemInputTransformInput_) Create_PutItemInputTransformInput_(SdkInput m_ComAmazonawsDynamodbTypes.PutItemInput) PutItemInputTransformInput { + return PutItemInputTransformInput{PutItemInputTransformInput_PutItemInputTransformInput{SdkInput}} +} + +func (_this PutItemInputTransformInput) Is_PutItemInputTransformInput() bool { + _, ok := _this.Get_().(PutItemInputTransformInput_PutItemInputTransformInput) + return ok +} + +func (CompanionStruct_PutItemInputTransformInput_) Default() PutItemInputTransformInput { + return Companion_PutItemInputTransformInput_.Create_PutItemInputTransformInput_(m_ComAmazonawsDynamodbTypes.Companion_PutItemInput_.Default()) +} + +func (_this PutItemInputTransformInput) Dtor_sdkInput() m_ComAmazonawsDynamodbTypes.PutItemInput { + return _this.Get_().(PutItemInputTransformInput_PutItemInputTransformInput).SdkInput +} + +func (_this PutItemInputTransformInput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case PutItemInputTransformInput_PutItemInputTransformInput: + { + return "AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.PutItemInputTransformInput.PutItemInputTransformInput" + "(" + _dafny.String(data.SdkInput) + ")" + } + default: + { + return "" + } + } +} + +func (_this PutItemInputTransformInput) Equals(other PutItemInputTransformInput) bool { + switch data1 := _this.Get_().(type) { + case PutItemInputTransformInput_PutItemInputTransformInput: + { + data2, ok := other.Get_().(PutItemInputTransformInput_PutItemInputTransformInput) + return ok && data1.SdkInput.Equals(data2.SdkInput) + } + default: + { + return false // unexpected + } + } +} + +func (_this PutItemInputTransformInput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(PutItemInputTransformInput) + return ok && _this.Equals(typed) +} + +func Type_PutItemInputTransformInput_() _dafny.TypeDescriptor { + return type_PutItemInputTransformInput_{} +} + +type type_PutItemInputTransformInput_ struct { +} + +func (_this type_PutItemInputTransformInput_) Default() interface{} { + return Companion_PutItemInputTransformInput_.Default() +} + +func (_this type_PutItemInputTransformInput_) String() string { + return "AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.PutItemInputTransformInput" +} +func (_this PutItemInputTransformInput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = PutItemInputTransformInput{} + +// End of datatype PutItemInputTransformInput + +// Definition of datatype PutItemInputTransformOutput +type PutItemInputTransformOutput struct { + Data_PutItemInputTransformOutput_ +} + +func (_this PutItemInputTransformOutput) Get_() Data_PutItemInputTransformOutput_ { + return _this.Data_PutItemInputTransformOutput_ +} + +type Data_PutItemInputTransformOutput_ interface { + isPutItemInputTransformOutput() +} + +type CompanionStruct_PutItemInputTransformOutput_ struct { +} + +var Companion_PutItemInputTransformOutput_ = CompanionStruct_PutItemInputTransformOutput_{} + +type PutItemInputTransformOutput_PutItemInputTransformOutput struct { + TransformedInput m_ComAmazonawsDynamodbTypes.PutItemInput +} + +func (PutItemInputTransformOutput_PutItemInputTransformOutput) isPutItemInputTransformOutput() {} + +func (CompanionStruct_PutItemInputTransformOutput_) Create_PutItemInputTransformOutput_(TransformedInput m_ComAmazonawsDynamodbTypes.PutItemInput) PutItemInputTransformOutput { + return PutItemInputTransformOutput{PutItemInputTransformOutput_PutItemInputTransformOutput{TransformedInput}} +} + +func (_this PutItemInputTransformOutput) Is_PutItemInputTransformOutput() bool { + _, ok := _this.Get_().(PutItemInputTransformOutput_PutItemInputTransformOutput) + return ok +} + +func (CompanionStruct_PutItemInputTransformOutput_) Default() PutItemInputTransformOutput { + return Companion_PutItemInputTransformOutput_.Create_PutItemInputTransformOutput_(m_ComAmazonawsDynamodbTypes.Companion_PutItemInput_.Default()) +} + +func (_this PutItemInputTransformOutput) Dtor_transformedInput() m_ComAmazonawsDynamodbTypes.PutItemInput { + return _this.Get_().(PutItemInputTransformOutput_PutItemInputTransformOutput).TransformedInput +} + +func (_this PutItemInputTransformOutput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case PutItemInputTransformOutput_PutItemInputTransformOutput: + { + return "AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.PutItemInputTransformOutput.PutItemInputTransformOutput" + "(" + _dafny.String(data.TransformedInput) + ")" + } + default: + { + return "" + } + } +} + +func (_this PutItemInputTransformOutput) Equals(other PutItemInputTransformOutput) bool { + switch data1 := _this.Get_().(type) { + case PutItemInputTransformOutput_PutItemInputTransformOutput: + { + data2, ok := other.Get_().(PutItemInputTransformOutput_PutItemInputTransformOutput) + return ok && data1.TransformedInput.Equals(data2.TransformedInput) + } + default: + { + return false // unexpected + } + } +} + +func (_this PutItemInputTransformOutput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(PutItemInputTransformOutput) + return ok && _this.Equals(typed) +} + +func Type_PutItemInputTransformOutput_() _dafny.TypeDescriptor { + return type_PutItemInputTransformOutput_{} +} + +type type_PutItemInputTransformOutput_ struct { +} + +func (_this type_PutItemInputTransformOutput_) Default() interface{} { + return Companion_PutItemInputTransformOutput_.Default() +} + +func (_this type_PutItemInputTransformOutput_) String() string { + return "AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.PutItemInputTransformOutput" +} +func (_this PutItemInputTransformOutput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = PutItemInputTransformOutput{} + +// End of datatype PutItemInputTransformOutput + +// Definition of datatype PutItemOutputTransformInput +type PutItemOutputTransformInput struct { + Data_PutItemOutputTransformInput_ +} + +func (_this PutItemOutputTransformInput) Get_() Data_PutItemOutputTransformInput_ { + return _this.Data_PutItemOutputTransformInput_ +} + +type Data_PutItemOutputTransformInput_ interface { + isPutItemOutputTransformInput() +} + +type CompanionStruct_PutItemOutputTransformInput_ struct { +} + +var Companion_PutItemOutputTransformInput_ = CompanionStruct_PutItemOutputTransformInput_{} + +type PutItemOutputTransformInput_PutItemOutputTransformInput struct { + SdkOutput m_ComAmazonawsDynamodbTypes.PutItemOutput + OriginalInput m_ComAmazonawsDynamodbTypes.PutItemInput +} + +func (PutItemOutputTransformInput_PutItemOutputTransformInput) isPutItemOutputTransformInput() {} + +func (CompanionStruct_PutItemOutputTransformInput_) Create_PutItemOutputTransformInput_(SdkOutput m_ComAmazonawsDynamodbTypes.PutItemOutput, OriginalInput m_ComAmazonawsDynamodbTypes.PutItemInput) PutItemOutputTransformInput { + return PutItemOutputTransformInput{PutItemOutputTransformInput_PutItemOutputTransformInput{SdkOutput, OriginalInput}} +} + +func (_this PutItemOutputTransformInput) Is_PutItemOutputTransformInput() bool { + _, ok := _this.Get_().(PutItemOutputTransformInput_PutItemOutputTransformInput) + return ok +} + +func (CompanionStruct_PutItemOutputTransformInput_) Default() PutItemOutputTransformInput { + return Companion_PutItemOutputTransformInput_.Create_PutItemOutputTransformInput_(m_ComAmazonawsDynamodbTypes.Companion_PutItemOutput_.Default(), m_ComAmazonawsDynamodbTypes.Companion_PutItemInput_.Default()) +} + +func (_this PutItemOutputTransformInput) Dtor_sdkOutput() m_ComAmazonawsDynamodbTypes.PutItemOutput { + return _this.Get_().(PutItemOutputTransformInput_PutItemOutputTransformInput).SdkOutput +} + +func (_this PutItemOutputTransformInput) Dtor_originalInput() m_ComAmazonawsDynamodbTypes.PutItemInput { + return _this.Get_().(PutItemOutputTransformInput_PutItemOutputTransformInput).OriginalInput +} + +func (_this PutItemOutputTransformInput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case PutItemOutputTransformInput_PutItemOutputTransformInput: + { + return "AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.PutItemOutputTransformInput.PutItemOutputTransformInput" + "(" + _dafny.String(data.SdkOutput) + ", " + _dafny.String(data.OriginalInput) + ")" + } + default: + { + return "" + } + } +} + +func (_this PutItemOutputTransformInput) Equals(other PutItemOutputTransformInput) bool { + switch data1 := _this.Get_().(type) { + case PutItemOutputTransformInput_PutItemOutputTransformInput: + { + data2, ok := other.Get_().(PutItemOutputTransformInput_PutItemOutputTransformInput) + return ok && data1.SdkOutput.Equals(data2.SdkOutput) && data1.OriginalInput.Equals(data2.OriginalInput) + } + default: + { + return false // unexpected + } + } +} + +func (_this PutItemOutputTransformInput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(PutItemOutputTransformInput) + return ok && _this.Equals(typed) +} + +func Type_PutItemOutputTransformInput_() _dafny.TypeDescriptor { + return type_PutItemOutputTransformInput_{} +} + +type type_PutItemOutputTransformInput_ struct { +} + +func (_this type_PutItemOutputTransformInput_) Default() interface{} { + return Companion_PutItemOutputTransformInput_.Default() +} + +func (_this type_PutItemOutputTransformInput_) String() string { + return "AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.PutItemOutputTransformInput" +} +func (_this PutItemOutputTransformInput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = PutItemOutputTransformInput{} + +// End of datatype PutItemOutputTransformInput + +// Definition of datatype PutItemOutputTransformOutput +type PutItemOutputTransformOutput struct { + Data_PutItemOutputTransformOutput_ +} + +func (_this PutItemOutputTransformOutput) Get_() Data_PutItemOutputTransformOutput_ { + return _this.Data_PutItemOutputTransformOutput_ +} + +type Data_PutItemOutputTransformOutput_ interface { + isPutItemOutputTransformOutput() +} + +type CompanionStruct_PutItemOutputTransformOutput_ struct { +} + +var Companion_PutItemOutputTransformOutput_ = CompanionStruct_PutItemOutputTransformOutput_{} + +type PutItemOutputTransformOutput_PutItemOutputTransformOutput struct { + TransformedOutput m_ComAmazonawsDynamodbTypes.PutItemOutput +} + +func (PutItemOutputTransformOutput_PutItemOutputTransformOutput) isPutItemOutputTransformOutput() {} + +func (CompanionStruct_PutItemOutputTransformOutput_) Create_PutItemOutputTransformOutput_(TransformedOutput m_ComAmazonawsDynamodbTypes.PutItemOutput) PutItemOutputTransformOutput { + return PutItemOutputTransformOutput{PutItemOutputTransformOutput_PutItemOutputTransformOutput{TransformedOutput}} +} + +func (_this PutItemOutputTransformOutput) Is_PutItemOutputTransformOutput() bool { + _, ok := _this.Get_().(PutItemOutputTransformOutput_PutItemOutputTransformOutput) + return ok +} + +func (CompanionStruct_PutItemOutputTransformOutput_) Default() PutItemOutputTransformOutput { + return Companion_PutItemOutputTransformOutput_.Create_PutItemOutputTransformOutput_(m_ComAmazonawsDynamodbTypes.Companion_PutItemOutput_.Default()) +} + +func (_this PutItemOutputTransformOutput) Dtor_transformedOutput() m_ComAmazonawsDynamodbTypes.PutItemOutput { + return _this.Get_().(PutItemOutputTransformOutput_PutItemOutputTransformOutput).TransformedOutput +} + +func (_this PutItemOutputTransformOutput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case PutItemOutputTransformOutput_PutItemOutputTransformOutput: + { + return "AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.PutItemOutputTransformOutput.PutItemOutputTransformOutput" + "(" + _dafny.String(data.TransformedOutput) + ")" + } + default: + { + return "" + } + } +} + +func (_this PutItemOutputTransformOutput) Equals(other PutItemOutputTransformOutput) bool { + switch data1 := _this.Get_().(type) { + case PutItemOutputTransformOutput_PutItemOutputTransformOutput: + { + data2, ok := other.Get_().(PutItemOutputTransformOutput_PutItemOutputTransformOutput) + return ok && data1.TransformedOutput.Equals(data2.TransformedOutput) + } + default: + { + return false // unexpected + } + } +} + +func (_this PutItemOutputTransformOutput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(PutItemOutputTransformOutput) + return ok && _this.Equals(typed) +} + +func Type_PutItemOutputTransformOutput_() _dafny.TypeDescriptor { + return type_PutItemOutputTransformOutput_{} +} + +type type_PutItemOutputTransformOutput_ struct { +} + +func (_this type_PutItemOutputTransformOutput_) Default() interface{} { + return Companion_PutItemOutputTransformOutput_.Default() +} + +func (_this type_PutItemOutputTransformOutput_) String() string { + return "AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.PutItemOutputTransformOutput" +} +func (_this PutItemOutputTransformOutput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = PutItemOutputTransformOutput{} + +// End of datatype PutItemOutputTransformOutput + +// Definition of datatype QueryInputTransformInput +type QueryInputTransformInput struct { + Data_QueryInputTransformInput_ +} + +func (_this QueryInputTransformInput) Get_() Data_QueryInputTransformInput_ { + return _this.Data_QueryInputTransformInput_ +} + +type Data_QueryInputTransformInput_ interface { + isQueryInputTransformInput() +} + +type CompanionStruct_QueryInputTransformInput_ struct { +} + +var Companion_QueryInputTransformInput_ = CompanionStruct_QueryInputTransformInput_{} + +type QueryInputTransformInput_QueryInputTransformInput struct { + SdkInput m_ComAmazonawsDynamodbTypes.QueryInput +} + +func (QueryInputTransformInput_QueryInputTransformInput) isQueryInputTransformInput() {} + +func (CompanionStruct_QueryInputTransformInput_) Create_QueryInputTransformInput_(SdkInput m_ComAmazonawsDynamodbTypes.QueryInput) QueryInputTransformInput { + return QueryInputTransformInput{QueryInputTransformInput_QueryInputTransformInput{SdkInput}} +} + +func (_this QueryInputTransformInput) Is_QueryInputTransformInput() bool { + _, ok := _this.Get_().(QueryInputTransformInput_QueryInputTransformInput) + return ok +} + +func (CompanionStruct_QueryInputTransformInput_) Default() QueryInputTransformInput { + return Companion_QueryInputTransformInput_.Create_QueryInputTransformInput_(m_ComAmazonawsDynamodbTypes.Companion_QueryInput_.Default()) +} + +func (_this QueryInputTransformInput) Dtor_sdkInput() m_ComAmazonawsDynamodbTypes.QueryInput { + return _this.Get_().(QueryInputTransformInput_QueryInputTransformInput).SdkInput +} + +func (_this QueryInputTransformInput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case QueryInputTransformInput_QueryInputTransformInput: + { + return "AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.QueryInputTransformInput.QueryInputTransformInput" + "(" + _dafny.String(data.SdkInput) + ")" + } + default: + { + return "" + } + } +} + +func (_this QueryInputTransformInput) Equals(other QueryInputTransformInput) bool { + switch data1 := _this.Get_().(type) { + case QueryInputTransformInput_QueryInputTransformInput: + { + data2, ok := other.Get_().(QueryInputTransformInput_QueryInputTransformInput) + return ok && data1.SdkInput.Equals(data2.SdkInput) + } + default: + { + return false // unexpected + } + } +} + +func (_this QueryInputTransformInput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(QueryInputTransformInput) + return ok && _this.Equals(typed) +} + +func Type_QueryInputTransformInput_() _dafny.TypeDescriptor { + return type_QueryInputTransformInput_{} +} + +type type_QueryInputTransformInput_ struct { +} + +func (_this type_QueryInputTransformInput_) Default() interface{} { + return Companion_QueryInputTransformInput_.Default() +} + +func (_this type_QueryInputTransformInput_) String() string { + return "AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.QueryInputTransformInput" +} +func (_this QueryInputTransformInput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = QueryInputTransformInput{} + +// End of datatype QueryInputTransformInput + +// Definition of datatype QueryInputTransformOutput +type QueryInputTransformOutput struct { + Data_QueryInputTransformOutput_ +} + +func (_this QueryInputTransformOutput) Get_() Data_QueryInputTransformOutput_ { + return _this.Data_QueryInputTransformOutput_ +} + +type Data_QueryInputTransformOutput_ interface { + isQueryInputTransformOutput() +} + +type CompanionStruct_QueryInputTransformOutput_ struct { +} + +var Companion_QueryInputTransformOutput_ = CompanionStruct_QueryInputTransformOutput_{} + +type QueryInputTransformOutput_QueryInputTransformOutput struct { + TransformedInput m_ComAmazonawsDynamodbTypes.QueryInput +} + +func (QueryInputTransformOutput_QueryInputTransformOutput) isQueryInputTransformOutput() {} + +func (CompanionStruct_QueryInputTransformOutput_) Create_QueryInputTransformOutput_(TransformedInput m_ComAmazonawsDynamodbTypes.QueryInput) QueryInputTransformOutput { + return QueryInputTransformOutput{QueryInputTransformOutput_QueryInputTransformOutput{TransformedInput}} +} + +func (_this QueryInputTransformOutput) Is_QueryInputTransformOutput() bool { + _, ok := _this.Get_().(QueryInputTransformOutput_QueryInputTransformOutput) + return ok +} + +func (CompanionStruct_QueryInputTransformOutput_) Default() QueryInputTransformOutput { + return Companion_QueryInputTransformOutput_.Create_QueryInputTransformOutput_(m_ComAmazonawsDynamodbTypes.Companion_QueryInput_.Default()) +} + +func (_this QueryInputTransformOutput) Dtor_transformedInput() m_ComAmazonawsDynamodbTypes.QueryInput { + return _this.Get_().(QueryInputTransformOutput_QueryInputTransformOutput).TransformedInput +} + +func (_this QueryInputTransformOutput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case QueryInputTransformOutput_QueryInputTransformOutput: + { + return "AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.QueryInputTransformOutput.QueryInputTransformOutput" + "(" + _dafny.String(data.TransformedInput) + ")" + } + default: + { + return "" + } + } +} + +func (_this QueryInputTransformOutput) Equals(other QueryInputTransformOutput) bool { + switch data1 := _this.Get_().(type) { + case QueryInputTransformOutput_QueryInputTransformOutput: + { + data2, ok := other.Get_().(QueryInputTransformOutput_QueryInputTransformOutput) + return ok && data1.TransformedInput.Equals(data2.TransformedInput) + } + default: + { + return false // unexpected + } + } +} + +func (_this QueryInputTransformOutput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(QueryInputTransformOutput) + return ok && _this.Equals(typed) +} + +func Type_QueryInputTransformOutput_() _dafny.TypeDescriptor { + return type_QueryInputTransformOutput_{} +} + +type type_QueryInputTransformOutput_ struct { +} + +func (_this type_QueryInputTransformOutput_) Default() interface{} { + return Companion_QueryInputTransformOutput_.Default() +} + +func (_this type_QueryInputTransformOutput_) String() string { + return "AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.QueryInputTransformOutput" +} +func (_this QueryInputTransformOutput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = QueryInputTransformOutput{} + +// End of datatype QueryInputTransformOutput + +// Definition of datatype QueryOutputTransformInput +type QueryOutputTransformInput struct { + Data_QueryOutputTransformInput_ +} + +func (_this QueryOutputTransformInput) Get_() Data_QueryOutputTransformInput_ { + return _this.Data_QueryOutputTransformInput_ +} + +type Data_QueryOutputTransformInput_ interface { + isQueryOutputTransformInput() +} + +type CompanionStruct_QueryOutputTransformInput_ struct { +} + +var Companion_QueryOutputTransformInput_ = CompanionStruct_QueryOutputTransformInput_{} + +type QueryOutputTransformInput_QueryOutputTransformInput struct { + SdkOutput m_ComAmazonawsDynamodbTypes.QueryOutput + OriginalInput m_ComAmazonawsDynamodbTypes.QueryInput +} + +func (QueryOutputTransformInput_QueryOutputTransformInput) isQueryOutputTransformInput() {} + +func (CompanionStruct_QueryOutputTransformInput_) Create_QueryOutputTransformInput_(SdkOutput m_ComAmazonawsDynamodbTypes.QueryOutput, OriginalInput m_ComAmazonawsDynamodbTypes.QueryInput) QueryOutputTransformInput { + return QueryOutputTransformInput{QueryOutputTransformInput_QueryOutputTransformInput{SdkOutput, OriginalInput}} +} + +func (_this QueryOutputTransformInput) Is_QueryOutputTransformInput() bool { + _, ok := _this.Get_().(QueryOutputTransformInput_QueryOutputTransformInput) + return ok +} + +func (CompanionStruct_QueryOutputTransformInput_) Default() QueryOutputTransformInput { + return Companion_QueryOutputTransformInput_.Create_QueryOutputTransformInput_(m_ComAmazonawsDynamodbTypes.Companion_QueryOutput_.Default(), m_ComAmazonawsDynamodbTypes.Companion_QueryInput_.Default()) +} + +func (_this QueryOutputTransformInput) Dtor_sdkOutput() m_ComAmazonawsDynamodbTypes.QueryOutput { + return _this.Get_().(QueryOutputTransformInput_QueryOutputTransformInput).SdkOutput +} + +func (_this QueryOutputTransformInput) Dtor_originalInput() m_ComAmazonawsDynamodbTypes.QueryInput { + return _this.Get_().(QueryOutputTransformInput_QueryOutputTransformInput).OriginalInput +} + +func (_this QueryOutputTransformInput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case QueryOutputTransformInput_QueryOutputTransformInput: + { + return "AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.QueryOutputTransformInput.QueryOutputTransformInput" + "(" + _dafny.String(data.SdkOutput) + ", " + _dafny.String(data.OriginalInput) + ")" + } + default: + { + return "" + } + } +} + +func (_this QueryOutputTransformInput) Equals(other QueryOutputTransformInput) bool { + switch data1 := _this.Get_().(type) { + case QueryOutputTransformInput_QueryOutputTransformInput: + { + data2, ok := other.Get_().(QueryOutputTransformInput_QueryOutputTransformInput) + return ok && data1.SdkOutput.Equals(data2.SdkOutput) && data1.OriginalInput.Equals(data2.OriginalInput) + } + default: + { + return false // unexpected + } + } +} + +func (_this QueryOutputTransformInput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(QueryOutputTransformInput) + return ok && _this.Equals(typed) +} + +func Type_QueryOutputTransformInput_() _dafny.TypeDescriptor { + return type_QueryOutputTransformInput_{} +} + +type type_QueryOutputTransformInput_ struct { +} + +func (_this type_QueryOutputTransformInput_) Default() interface{} { + return Companion_QueryOutputTransformInput_.Default() +} + +func (_this type_QueryOutputTransformInput_) String() string { + return "AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.QueryOutputTransformInput" +} +func (_this QueryOutputTransformInput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = QueryOutputTransformInput{} + +// End of datatype QueryOutputTransformInput + +// Definition of datatype QueryOutputTransformOutput +type QueryOutputTransformOutput struct { + Data_QueryOutputTransformOutput_ +} + +func (_this QueryOutputTransformOutput) Get_() Data_QueryOutputTransformOutput_ { + return _this.Data_QueryOutputTransformOutput_ +} + +type Data_QueryOutputTransformOutput_ interface { + isQueryOutputTransformOutput() +} + +type CompanionStruct_QueryOutputTransformOutput_ struct { +} + +var Companion_QueryOutputTransformOutput_ = CompanionStruct_QueryOutputTransformOutput_{} + +type QueryOutputTransformOutput_QueryOutputTransformOutput struct { + TransformedOutput m_ComAmazonawsDynamodbTypes.QueryOutput +} + +func (QueryOutputTransformOutput_QueryOutputTransformOutput) isQueryOutputTransformOutput() {} + +func (CompanionStruct_QueryOutputTransformOutput_) Create_QueryOutputTransformOutput_(TransformedOutput m_ComAmazonawsDynamodbTypes.QueryOutput) QueryOutputTransformOutput { + return QueryOutputTransformOutput{QueryOutputTransformOutput_QueryOutputTransformOutput{TransformedOutput}} +} + +func (_this QueryOutputTransformOutput) Is_QueryOutputTransformOutput() bool { + _, ok := _this.Get_().(QueryOutputTransformOutput_QueryOutputTransformOutput) + return ok +} + +func (CompanionStruct_QueryOutputTransformOutput_) Default() QueryOutputTransformOutput { + return Companion_QueryOutputTransformOutput_.Create_QueryOutputTransformOutput_(m_ComAmazonawsDynamodbTypes.Companion_QueryOutput_.Default()) +} + +func (_this QueryOutputTransformOutput) Dtor_transformedOutput() m_ComAmazonawsDynamodbTypes.QueryOutput { + return _this.Get_().(QueryOutputTransformOutput_QueryOutputTransformOutput).TransformedOutput +} + +func (_this QueryOutputTransformOutput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case QueryOutputTransformOutput_QueryOutputTransformOutput: + { + return "AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.QueryOutputTransformOutput.QueryOutputTransformOutput" + "(" + _dafny.String(data.TransformedOutput) + ")" + } + default: + { + return "" + } + } +} + +func (_this QueryOutputTransformOutput) Equals(other QueryOutputTransformOutput) bool { + switch data1 := _this.Get_().(type) { + case QueryOutputTransformOutput_QueryOutputTransformOutput: + { + data2, ok := other.Get_().(QueryOutputTransformOutput_QueryOutputTransformOutput) + return ok && data1.TransformedOutput.Equals(data2.TransformedOutput) + } + default: + { + return false // unexpected + } + } +} + +func (_this QueryOutputTransformOutput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(QueryOutputTransformOutput) + return ok && _this.Equals(typed) +} + +func Type_QueryOutputTransformOutput_() _dafny.TypeDescriptor { + return type_QueryOutputTransformOutput_{} +} + +type type_QueryOutputTransformOutput_ struct { +} + +func (_this type_QueryOutputTransformOutput_) Default() interface{} { + return Companion_QueryOutputTransformOutput_.Default() +} + +func (_this type_QueryOutputTransformOutput_) String() string { + return "AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.QueryOutputTransformOutput" +} +func (_this QueryOutputTransformOutput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = QueryOutputTransformOutput{} + +// End of datatype QueryOutputTransformOutput + +// Definition of datatype ResolveAttributesInput +type ResolveAttributesInput struct { + Data_ResolveAttributesInput_ +} + +func (_this ResolveAttributesInput) Get_() Data_ResolveAttributesInput_ { + return _this.Data_ResolveAttributesInput_ +} + +type Data_ResolveAttributesInput_ interface { + isResolveAttributesInput() +} + +type CompanionStruct_ResolveAttributesInput_ struct { +} + +var Companion_ResolveAttributesInput_ = CompanionStruct_ResolveAttributesInput_{} + +type ResolveAttributesInput_ResolveAttributesInput struct { + TableName _dafny.Sequence + Item _dafny.Map + Version m_Wrappers.Option +} + +func (ResolveAttributesInput_ResolveAttributesInput) isResolveAttributesInput() {} + +func (CompanionStruct_ResolveAttributesInput_) Create_ResolveAttributesInput_(TableName _dafny.Sequence, Item _dafny.Map, Version m_Wrappers.Option) ResolveAttributesInput { + return ResolveAttributesInput{ResolveAttributesInput_ResolveAttributesInput{TableName, Item, Version}} +} + +func (_this ResolveAttributesInput) Is_ResolveAttributesInput() bool { + _, ok := _this.Get_().(ResolveAttributesInput_ResolveAttributesInput) + return ok +} + +func (CompanionStruct_ResolveAttributesInput_) Default() ResolveAttributesInput { + return Companion_ResolveAttributesInput_.Create_ResolveAttributesInput_(_dafny.EmptySeq.SetString(), _dafny.EmptyMap, m_Wrappers.Companion_Option_.Default()) +} + +func (_this ResolveAttributesInput) Dtor_TableName() _dafny.Sequence { + return _this.Get_().(ResolveAttributesInput_ResolveAttributesInput).TableName +} + +func (_this ResolveAttributesInput) Dtor_Item() _dafny.Map { + return _this.Get_().(ResolveAttributesInput_ResolveAttributesInput).Item +} + +func (_this ResolveAttributesInput) Dtor_Version() m_Wrappers.Option { + return _this.Get_().(ResolveAttributesInput_ResolveAttributesInput).Version +} + +func (_this ResolveAttributesInput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case ResolveAttributesInput_ResolveAttributesInput: + { + return "AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.ResolveAttributesInput.ResolveAttributesInput" + "(" + _dafny.String(data.TableName) + ", " + _dafny.String(data.Item) + ", " + _dafny.String(data.Version) + ")" + } + default: + { + return "" + } + } +} + +func (_this ResolveAttributesInput) Equals(other ResolveAttributesInput) bool { + switch data1 := _this.Get_().(type) { + case ResolveAttributesInput_ResolveAttributesInput: + { + data2, ok := other.Get_().(ResolveAttributesInput_ResolveAttributesInput) + return ok && data1.TableName.Equals(data2.TableName) && data1.Item.Equals(data2.Item) && data1.Version.Equals(data2.Version) + } + default: + { + return false // unexpected + } + } +} + +func (_this ResolveAttributesInput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(ResolveAttributesInput) + return ok && _this.Equals(typed) +} + +func Type_ResolveAttributesInput_() _dafny.TypeDescriptor { + return type_ResolveAttributesInput_{} +} + +type type_ResolveAttributesInput_ struct { +} + +func (_this type_ResolveAttributesInput_) Default() interface{} { + return Companion_ResolveAttributesInput_.Default() +} + +func (_this type_ResolveAttributesInput_) String() string { + return "AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.ResolveAttributesInput" +} +func (_this ResolveAttributesInput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = ResolveAttributesInput{} + +// End of datatype ResolveAttributesInput + +// Definition of datatype ResolveAttributesOutput +type ResolveAttributesOutput struct { + Data_ResolveAttributesOutput_ +} + +func (_this ResolveAttributesOutput) Get_() Data_ResolveAttributesOutput_ { + return _this.Data_ResolveAttributesOutput_ +} + +type Data_ResolveAttributesOutput_ interface { + isResolveAttributesOutput() +} + +type CompanionStruct_ResolveAttributesOutput_ struct { +} + +var Companion_ResolveAttributesOutput_ = CompanionStruct_ResolveAttributesOutput_{} + +type ResolveAttributesOutput_ResolveAttributesOutput struct { + VirtualFields _dafny.Map + CompoundBeacons _dafny.Map +} + +func (ResolveAttributesOutput_ResolveAttributesOutput) isResolveAttributesOutput() {} + +func (CompanionStruct_ResolveAttributesOutput_) Create_ResolveAttributesOutput_(VirtualFields _dafny.Map, CompoundBeacons _dafny.Map) ResolveAttributesOutput { + return ResolveAttributesOutput{ResolveAttributesOutput_ResolveAttributesOutput{VirtualFields, CompoundBeacons}} +} + +func (_this ResolveAttributesOutput) Is_ResolveAttributesOutput() bool { + _, ok := _this.Get_().(ResolveAttributesOutput_ResolveAttributesOutput) + return ok +} + +func (CompanionStruct_ResolveAttributesOutput_) Default() ResolveAttributesOutput { + return Companion_ResolveAttributesOutput_.Create_ResolveAttributesOutput_(_dafny.EmptyMap, _dafny.EmptyMap) +} + +func (_this ResolveAttributesOutput) Dtor_VirtualFields() _dafny.Map { + return _this.Get_().(ResolveAttributesOutput_ResolveAttributesOutput).VirtualFields +} + +func (_this ResolveAttributesOutput) Dtor_CompoundBeacons() _dafny.Map { + return _this.Get_().(ResolveAttributesOutput_ResolveAttributesOutput).CompoundBeacons +} + +func (_this ResolveAttributesOutput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case ResolveAttributesOutput_ResolveAttributesOutput: + { + return "AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.ResolveAttributesOutput.ResolveAttributesOutput" + "(" + _dafny.String(data.VirtualFields) + ", " + _dafny.String(data.CompoundBeacons) + ")" + } + default: + { + return "" + } + } +} + +func (_this ResolveAttributesOutput) Equals(other ResolveAttributesOutput) bool { + switch data1 := _this.Get_().(type) { + case ResolveAttributesOutput_ResolveAttributesOutput: + { + data2, ok := other.Get_().(ResolveAttributesOutput_ResolveAttributesOutput) + return ok && data1.VirtualFields.Equals(data2.VirtualFields) && data1.CompoundBeacons.Equals(data2.CompoundBeacons) + } + default: + { + return false // unexpected + } + } +} + +func (_this ResolveAttributesOutput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(ResolveAttributesOutput) + return ok && _this.Equals(typed) +} + +func Type_ResolveAttributesOutput_() _dafny.TypeDescriptor { + return type_ResolveAttributesOutput_{} +} + +type type_ResolveAttributesOutput_ struct { +} + +func (_this type_ResolveAttributesOutput_) Default() interface{} { + return Companion_ResolveAttributesOutput_.Default() +} + +func (_this type_ResolveAttributesOutput_) String() string { + return "AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.ResolveAttributesOutput" +} +func (_this ResolveAttributesOutput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = ResolveAttributesOutput{} + +// End of datatype ResolveAttributesOutput + +// Definition of datatype ScanInputTransformInput +type ScanInputTransformInput struct { + Data_ScanInputTransformInput_ +} + +func (_this ScanInputTransformInput) Get_() Data_ScanInputTransformInput_ { + return _this.Data_ScanInputTransformInput_ +} + +type Data_ScanInputTransformInput_ interface { + isScanInputTransformInput() +} + +type CompanionStruct_ScanInputTransformInput_ struct { +} + +var Companion_ScanInputTransformInput_ = CompanionStruct_ScanInputTransformInput_{} + +type ScanInputTransformInput_ScanInputTransformInput struct { + SdkInput m_ComAmazonawsDynamodbTypes.ScanInput +} + +func (ScanInputTransformInput_ScanInputTransformInput) isScanInputTransformInput() {} + +func (CompanionStruct_ScanInputTransformInput_) Create_ScanInputTransformInput_(SdkInput m_ComAmazonawsDynamodbTypes.ScanInput) ScanInputTransformInput { + return ScanInputTransformInput{ScanInputTransformInput_ScanInputTransformInput{SdkInput}} +} + +func (_this ScanInputTransformInput) Is_ScanInputTransformInput() bool { + _, ok := _this.Get_().(ScanInputTransformInput_ScanInputTransformInput) + return ok +} + +func (CompanionStruct_ScanInputTransformInput_) Default() ScanInputTransformInput { + return Companion_ScanInputTransformInput_.Create_ScanInputTransformInput_(m_ComAmazonawsDynamodbTypes.Companion_ScanInput_.Default()) +} + +func (_this ScanInputTransformInput) Dtor_sdkInput() m_ComAmazonawsDynamodbTypes.ScanInput { + return _this.Get_().(ScanInputTransformInput_ScanInputTransformInput).SdkInput +} + +func (_this ScanInputTransformInput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case ScanInputTransformInput_ScanInputTransformInput: + { + return "AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.ScanInputTransformInput.ScanInputTransformInput" + "(" + _dafny.String(data.SdkInput) + ")" + } + default: + { + return "" + } + } +} + +func (_this ScanInputTransformInput) Equals(other ScanInputTransformInput) bool { + switch data1 := _this.Get_().(type) { + case ScanInputTransformInput_ScanInputTransformInput: + { + data2, ok := other.Get_().(ScanInputTransformInput_ScanInputTransformInput) + return ok && data1.SdkInput.Equals(data2.SdkInput) + } + default: + { + return false // unexpected + } + } +} + +func (_this ScanInputTransformInput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(ScanInputTransformInput) + return ok && _this.Equals(typed) +} + +func Type_ScanInputTransformInput_() _dafny.TypeDescriptor { + return type_ScanInputTransformInput_{} +} + +type type_ScanInputTransformInput_ struct { +} + +func (_this type_ScanInputTransformInput_) Default() interface{} { + return Companion_ScanInputTransformInput_.Default() +} + +func (_this type_ScanInputTransformInput_) String() string { + return "AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.ScanInputTransformInput" +} +func (_this ScanInputTransformInput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = ScanInputTransformInput{} + +// End of datatype ScanInputTransformInput + +// Definition of datatype ScanInputTransformOutput +type ScanInputTransformOutput struct { + Data_ScanInputTransformOutput_ +} + +func (_this ScanInputTransformOutput) Get_() Data_ScanInputTransformOutput_ { + return _this.Data_ScanInputTransformOutput_ +} + +type Data_ScanInputTransformOutput_ interface { + isScanInputTransformOutput() +} + +type CompanionStruct_ScanInputTransformOutput_ struct { +} + +var Companion_ScanInputTransformOutput_ = CompanionStruct_ScanInputTransformOutput_{} + +type ScanInputTransformOutput_ScanInputTransformOutput struct { + TransformedInput m_ComAmazonawsDynamodbTypes.ScanInput +} + +func (ScanInputTransformOutput_ScanInputTransformOutput) isScanInputTransformOutput() {} + +func (CompanionStruct_ScanInputTransformOutput_) Create_ScanInputTransformOutput_(TransformedInput m_ComAmazonawsDynamodbTypes.ScanInput) ScanInputTransformOutput { + return ScanInputTransformOutput{ScanInputTransformOutput_ScanInputTransformOutput{TransformedInput}} +} + +func (_this ScanInputTransformOutput) Is_ScanInputTransformOutput() bool { + _, ok := _this.Get_().(ScanInputTransformOutput_ScanInputTransformOutput) + return ok +} + +func (CompanionStruct_ScanInputTransformOutput_) Default() ScanInputTransformOutput { + return Companion_ScanInputTransformOutput_.Create_ScanInputTransformOutput_(m_ComAmazonawsDynamodbTypes.Companion_ScanInput_.Default()) +} + +func (_this ScanInputTransformOutput) Dtor_transformedInput() m_ComAmazonawsDynamodbTypes.ScanInput { + return _this.Get_().(ScanInputTransformOutput_ScanInputTransformOutput).TransformedInput +} + +func (_this ScanInputTransformOutput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case ScanInputTransformOutput_ScanInputTransformOutput: + { + return "AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.ScanInputTransformOutput.ScanInputTransformOutput" + "(" + _dafny.String(data.TransformedInput) + ")" + } + default: + { + return "" + } + } +} + +func (_this ScanInputTransformOutput) Equals(other ScanInputTransformOutput) bool { + switch data1 := _this.Get_().(type) { + case ScanInputTransformOutput_ScanInputTransformOutput: + { + data2, ok := other.Get_().(ScanInputTransformOutput_ScanInputTransformOutput) + return ok && data1.TransformedInput.Equals(data2.TransformedInput) + } + default: + { + return false // unexpected + } + } +} + +func (_this ScanInputTransformOutput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(ScanInputTransformOutput) + return ok && _this.Equals(typed) +} + +func Type_ScanInputTransformOutput_() _dafny.TypeDescriptor { + return type_ScanInputTransformOutput_{} +} + +type type_ScanInputTransformOutput_ struct { +} + +func (_this type_ScanInputTransformOutput_) Default() interface{} { + return Companion_ScanInputTransformOutput_.Default() +} + +func (_this type_ScanInputTransformOutput_) String() string { + return "AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.ScanInputTransformOutput" +} +func (_this ScanInputTransformOutput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = ScanInputTransformOutput{} + +// End of datatype ScanInputTransformOutput + +// Definition of datatype ScanOutputTransformInput +type ScanOutputTransformInput struct { + Data_ScanOutputTransformInput_ +} + +func (_this ScanOutputTransformInput) Get_() Data_ScanOutputTransformInput_ { + return _this.Data_ScanOutputTransformInput_ +} + +type Data_ScanOutputTransformInput_ interface { + isScanOutputTransformInput() +} + +type CompanionStruct_ScanOutputTransformInput_ struct { +} + +var Companion_ScanOutputTransformInput_ = CompanionStruct_ScanOutputTransformInput_{} + +type ScanOutputTransformInput_ScanOutputTransformInput struct { + SdkOutput m_ComAmazonawsDynamodbTypes.ScanOutput + OriginalInput m_ComAmazonawsDynamodbTypes.ScanInput +} + +func (ScanOutputTransformInput_ScanOutputTransformInput) isScanOutputTransformInput() {} + +func (CompanionStruct_ScanOutputTransformInput_) Create_ScanOutputTransformInput_(SdkOutput m_ComAmazonawsDynamodbTypes.ScanOutput, OriginalInput m_ComAmazonawsDynamodbTypes.ScanInput) ScanOutputTransformInput { + return ScanOutputTransformInput{ScanOutputTransformInput_ScanOutputTransformInput{SdkOutput, OriginalInput}} +} + +func (_this ScanOutputTransformInput) Is_ScanOutputTransformInput() bool { + _, ok := _this.Get_().(ScanOutputTransformInput_ScanOutputTransformInput) + return ok +} + +func (CompanionStruct_ScanOutputTransformInput_) Default() ScanOutputTransformInput { + return Companion_ScanOutputTransformInput_.Create_ScanOutputTransformInput_(m_ComAmazonawsDynamodbTypes.Companion_ScanOutput_.Default(), m_ComAmazonawsDynamodbTypes.Companion_ScanInput_.Default()) +} + +func (_this ScanOutputTransformInput) Dtor_sdkOutput() m_ComAmazonawsDynamodbTypes.ScanOutput { + return _this.Get_().(ScanOutputTransformInput_ScanOutputTransformInput).SdkOutput +} + +func (_this ScanOutputTransformInput) Dtor_originalInput() m_ComAmazonawsDynamodbTypes.ScanInput { + return _this.Get_().(ScanOutputTransformInput_ScanOutputTransformInput).OriginalInput +} + +func (_this ScanOutputTransformInput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case ScanOutputTransformInput_ScanOutputTransformInput: + { + return "AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.ScanOutputTransformInput.ScanOutputTransformInput" + "(" + _dafny.String(data.SdkOutput) + ", " + _dafny.String(data.OriginalInput) + ")" + } + default: + { + return "" + } + } +} + +func (_this ScanOutputTransformInput) Equals(other ScanOutputTransformInput) bool { + switch data1 := _this.Get_().(type) { + case ScanOutputTransformInput_ScanOutputTransformInput: + { + data2, ok := other.Get_().(ScanOutputTransformInput_ScanOutputTransformInput) + return ok && data1.SdkOutput.Equals(data2.SdkOutput) && data1.OriginalInput.Equals(data2.OriginalInput) + } + default: + { + return false // unexpected + } + } +} + +func (_this ScanOutputTransformInput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(ScanOutputTransformInput) + return ok && _this.Equals(typed) +} + +func Type_ScanOutputTransformInput_() _dafny.TypeDescriptor { + return type_ScanOutputTransformInput_{} +} + +type type_ScanOutputTransformInput_ struct { +} + +func (_this type_ScanOutputTransformInput_) Default() interface{} { + return Companion_ScanOutputTransformInput_.Default() +} + +func (_this type_ScanOutputTransformInput_) String() string { + return "AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.ScanOutputTransformInput" +} +func (_this ScanOutputTransformInput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = ScanOutputTransformInput{} + +// End of datatype ScanOutputTransformInput + +// Definition of datatype ScanOutputTransformOutput +type ScanOutputTransformOutput struct { + Data_ScanOutputTransformOutput_ +} + +func (_this ScanOutputTransformOutput) Get_() Data_ScanOutputTransformOutput_ { + return _this.Data_ScanOutputTransformOutput_ +} + +type Data_ScanOutputTransformOutput_ interface { + isScanOutputTransformOutput() +} + +type CompanionStruct_ScanOutputTransformOutput_ struct { +} + +var Companion_ScanOutputTransformOutput_ = CompanionStruct_ScanOutputTransformOutput_{} + +type ScanOutputTransformOutput_ScanOutputTransformOutput struct { + TransformedOutput m_ComAmazonawsDynamodbTypes.ScanOutput +} + +func (ScanOutputTransformOutput_ScanOutputTransformOutput) isScanOutputTransformOutput() {} + +func (CompanionStruct_ScanOutputTransformOutput_) Create_ScanOutputTransformOutput_(TransformedOutput m_ComAmazonawsDynamodbTypes.ScanOutput) ScanOutputTransformOutput { + return ScanOutputTransformOutput{ScanOutputTransformOutput_ScanOutputTransformOutput{TransformedOutput}} +} + +func (_this ScanOutputTransformOutput) Is_ScanOutputTransformOutput() bool { + _, ok := _this.Get_().(ScanOutputTransformOutput_ScanOutputTransformOutput) + return ok +} + +func (CompanionStruct_ScanOutputTransformOutput_) Default() ScanOutputTransformOutput { + return Companion_ScanOutputTransformOutput_.Create_ScanOutputTransformOutput_(m_ComAmazonawsDynamodbTypes.Companion_ScanOutput_.Default()) +} + +func (_this ScanOutputTransformOutput) Dtor_transformedOutput() m_ComAmazonawsDynamodbTypes.ScanOutput { + return _this.Get_().(ScanOutputTransformOutput_ScanOutputTransformOutput).TransformedOutput +} + +func (_this ScanOutputTransformOutput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case ScanOutputTransformOutput_ScanOutputTransformOutput: + { + return "AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.ScanOutputTransformOutput.ScanOutputTransformOutput" + "(" + _dafny.String(data.TransformedOutput) + ")" + } + default: + { + return "" + } + } +} + +func (_this ScanOutputTransformOutput) Equals(other ScanOutputTransformOutput) bool { + switch data1 := _this.Get_().(type) { + case ScanOutputTransformOutput_ScanOutputTransformOutput: + { + data2, ok := other.Get_().(ScanOutputTransformOutput_ScanOutputTransformOutput) + return ok && data1.TransformedOutput.Equals(data2.TransformedOutput) + } + default: + { + return false // unexpected + } + } +} + +func (_this ScanOutputTransformOutput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(ScanOutputTransformOutput) + return ok && _this.Equals(typed) +} + +func Type_ScanOutputTransformOutput_() _dafny.TypeDescriptor { + return type_ScanOutputTransformOutput_{} +} + +type type_ScanOutputTransformOutput_ struct { +} + +func (_this type_ScanOutputTransformOutput_) Default() interface{} { + return Companion_ScanOutputTransformOutput_.Default() +} + +func (_this type_ScanOutputTransformOutput_) String() string { + return "AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.ScanOutputTransformOutput" +} +func (_this ScanOutputTransformOutput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = ScanOutputTransformOutput{} + +// End of datatype ScanOutputTransformOutput + +// Definition of datatype TransactGetItemsInputTransformInput +type TransactGetItemsInputTransformInput struct { + Data_TransactGetItemsInputTransformInput_ +} + +func (_this TransactGetItemsInputTransformInput) Get_() Data_TransactGetItemsInputTransformInput_ { + return _this.Data_TransactGetItemsInputTransformInput_ +} + +type Data_TransactGetItemsInputTransformInput_ interface { + isTransactGetItemsInputTransformInput() +} + +type CompanionStruct_TransactGetItemsInputTransformInput_ struct { +} + +var Companion_TransactGetItemsInputTransformInput_ = CompanionStruct_TransactGetItemsInputTransformInput_{} + +type TransactGetItemsInputTransformInput_TransactGetItemsInputTransformInput struct { + SdkInput m_ComAmazonawsDynamodbTypes.TransactGetItemsInput +} + +func (TransactGetItemsInputTransformInput_TransactGetItemsInputTransformInput) isTransactGetItemsInputTransformInput() { +} + +func (CompanionStruct_TransactGetItemsInputTransformInput_) Create_TransactGetItemsInputTransformInput_(SdkInput m_ComAmazonawsDynamodbTypes.TransactGetItemsInput) TransactGetItemsInputTransformInput { + return TransactGetItemsInputTransformInput{TransactGetItemsInputTransformInput_TransactGetItemsInputTransformInput{SdkInput}} +} + +func (_this TransactGetItemsInputTransformInput) Is_TransactGetItemsInputTransformInput() bool { + _, ok := _this.Get_().(TransactGetItemsInputTransformInput_TransactGetItemsInputTransformInput) + return ok +} + +func (CompanionStruct_TransactGetItemsInputTransformInput_) Default() TransactGetItemsInputTransformInput { + return Companion_TransactGetItemsInputTransformInput_.Create_TransactGetItemsInputTransformInput_(m_ComAmazonawsDynamodbTypes.Companion_TransactGetItemsInput_.Default()) +} + +func (_this TransactGetItemsInputTransformInput) Dtor_sdkInput() m_ComAmazonawsDynamodbTypes.TransactGetItemsInput { + return _this.Get_().(TransactGetItemsInputTransformInput_TransactGetItemsInputTransformInput).SdkInput +} + +func (_this TransactGetItemsInputTransformInput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case TransactGetItemsInputTransformInput_TransactGetItemsInputTransformInput: + { + return "AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.TransactGetItemsInputTransformInput.TransactGetItemsInputTransformInput" + "(" + _dafny.String(data.SdkInput) + ")" + } + default: + { + return "" + } + } +} + +func (_this TransactGetItemsInputTransformInput) Equals(other TransactGetItemsInputTransformInput) bool { + switch data1 := _this.Get_().(type) { + case TransactGetItemsInputTransformInput_TransactGetItemsInputTransformInput: + { + data2, ok := other.Get_().(TransactGetItemsInputTransformInput_TransactGetItemsInputTransformInput) + return ok && data1.SdkInput.Equals(data2.SdkInput) + } + default: + { + return false // unexpected + } + } +} + +func (_this TransactGetItemsInputTransformInput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(TransactGetItemsInputTransformInput) + return ok && _this.Equals(typed) +} + +func Type_TransactGetItemsInputTransformInput_() _dafny.TypeDescriptor { + return type_TransactGetItemsInputTransformInput_{} +} + +type type_TransactGetItemsInputTransformInput_ struct { +} + +func (_this type_TransactGetItemsInputTransformInput_) Default() interface{} { + return Companion_TransactGetItemsInputTransformInput_.Default() +} + +func (_this type_TransactGetItemsInputTransformInput_) String() string { + return "AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.TransactGetItemsInputTransformInput" +} +func (_this TransactGetItemsInputTransformInput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = TransactGetItemsInputTransformInput{} + +// End of datatype TransactGetItemsInputTransformInput + +// Definition of datatype TransactGetItemsInputTransformOutput +type TransactGetItemsInputTransformOutput struct { + Data_TransactGetItemsInputTransformOutput_ +} + +func (_this TransactGetItemsInputTransformOutput) Get_() Data_TransactGetItemsInputTransformOutput_ { + return _this.Data_TransactGetItemsInputTransformOutput_ +} + +type Data_TransactGetItemsInputTransformOutput_ interface { + isTransactGetItemsInputTransformOutput() +} + +type CompanionStruct_TransactGetItemsInputTransformOutput_ struct { +} + +var Companion_TransactGetItemsInputTransformOutput_ = CompanionStruct_TransactGetItemsInputTransformOutput_{} + +type TransactGetItemsInputTransformOutput_TransactGetItemsInputTransformOutput struct { + TransformedInput m_ComAmazonawsDynamodbTypes.TransactGetItemsInput +} + +func (TransactGetItemsInputTransformOutput_TransactGetItemsInputTransformOutput) isTransactGetItemsInputTransformOutput() { +} + +func (CompanionStruct_TransactGetItemsInputTransformOutput_) Create_TransactGetItemsInputTransformOutput_(TransformedInput m_ComAmazonawsDynamodbTypes.TransactGetItemsInput) TransactGetItemsInputTransformOutput { + return TransactGetItemsInputTransformOutput{TransactGetItemsInputTransformOutput_TransactGetItemsInputTransformOutput{TransformedInput}} +} + +func (_this TransactGetItemsInputTransformOutput) Is_TransactGetItemsInputTransformOutput() bool { + _, ok := _this.Get_().(TransactGetItemsInputTransformOutput_TransactGetItemsInputTransformOutput) + return ok +} + +func (CompanionStruct_TransactGetItemsInputTransformOutput_) Default() TransactGetItemsInputTransformOutput { + return Companion_TransactGetItemsInputTransformOutput_.Create_TransactGetItemsInputTransformOutput_(m_ComAmazonawsDynamodbTypes.Companion_TransactGetItemsInput_.Default()) +} + +func (_this TransactGetItemsInputTransformOutput) Dtor_transformedInput() m_ComAmazonawsDynamodbTypes.TransactGetItemsInput { + return _this.Get_().(TransactGetItemsInputTransformOutput_TransactGetItemsInputTransformOutput).TransformedInput +} + +func (_this TransactGetItemsInputTransformOutput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case TransactGetItemsInputTransformOutput_TransactGetItemsInputTransformOutput: + { + return "AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.TransactGetItemsInputTransformOutput.TransactGetItemsInputTransformOutput" + "(" + _dafny.String(data.TransformedInput) + ")" + } + default: + { + return "" + } + } +} + +func (_this TransactGetItemsInputTransformOutput) Equals(other TransactGetItemsInputTransformOutput) bool { + switch data1 := _this.Get_().(type) { + case TransactGetItemsInputTransformOutput_TransactGetItemsInputTransformOutput: + { + data2, ok := other.Get_().(TransactGetItemsInputTransformOutput_TransactGetItemsInputTransformOutput) + return ok && data1.TransformedInput.Equals(data2.TransformedInput) + } + default: + { + return false // unexpected + } + } +} + +func (_this TransactGetItemsInputTransformOutput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(TransactGetItemsInputTransformOutput) + return ok && _this.Equals(typed) +} + +func Type_TransactGetItemsInputTransformOutput_() _dafny.TypeDescriptor { + return type_TransactGetItemsInputTransformOutput_{} +} + +type type_TransactGetItemsInputTransformOutput_ struct { +} + +func (_this type_TransactGetItemsInputTransformOutput_) Default() interface{} { + return Companion_TransactGetItemsInputTransformOutput_.Default() +} + +func (_this type_TransactGetItemsInputTransformOutput_) String() string { + return "AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.TransactGetItemsInputTransformOutput" +} +func (_this TransactGetItemsInputTransformOutput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = TransactGetItemsInputTransformOutput{} + +// End of datatype TransactGetItemsInputTransformOutput + +// Definition of datatype TransactGetItemsOutputTransformInput +type TransactGetItemsOutputTransformInput struct { + Data_TransactGetItemsOutputTransformInput_ +} + +func (_this TransactGetItemsOutputTransformInput) Get_() Data_TransactGetItemsOutputTransformInput_ { + return _this.Data_TransactGetItemsOutputTransformInput_ +} + +type Data_TransactGetItemsOutputTransformInput_ interface { + isTransactGetItemsOutputTransformInput() +} + +type CompanionStruct_TransactGetItemsOutputTransformInput_ struct { +} + +var Companion_TransactGetItemsOutputTransformInput_ = CompanionStruct_TransactGetItemsOutputTransformInput_{} + +type TransactGetItemsOutputTransformInput_TransactGetItemsOutputTransformInput struct { + SdkOutput m_ComAmazonawsDynamodbTypes.TransactGetItemsOutput + OriginalInput m_ComAmazonawsDynamodbTypes.TransactGetItemsInput +} + +func (TransactGetItemsOutputTransformInput_TransactGetItemsOutputTransformInput) isTransactGetItemsOutputTransformInput() { +} + +func (CompanionStruct_TransactGetItemsOutputTransformInput_) Create_TransactGetItemsOutputTransformInput_(SdkOutput m_ComAmazonawsDynamodbTypes.TransactGetItemsOutput, OriginalInput m_ComAmazonawsDynamodbTypes.TransactGetItemsInput) TransactGetItemsOutputTransformInput { + return TransactGetItemsOutputTransformInput{TransactGetItemsOutputTransformInput_TransactGetItemsOutputTransformInput{SdkOutput, OriginalInput}} +} + +func (_this TransactGetItemsOutputTransformInput) Is_TransactGetItemsOutputTransformInput() bool { + _, ok := _this.Get_().(TransactGetItemsOutputTransformInput_TransactGetItemsOutputTransformInput) + return ok +} + +func (CompanionStruct_TransactGetItemsOutputTransformInput_) Default() TransactGetItemsOutputTransformInput { + return Companion_TransactGetItemsOutputTransformInput_.Create_TransactGetItemsOutputTransformInput_(m_ComAmazonawsDynamodbTypes.Companion_TransactGetItemsOutput_.Default(), m_ComAmazonawsDynamodbTypes.Companion_TransactGetItemsInput_.Default()) +} + +func (_this TransactGetItemsOutputTransformInput) Dtor_sdkOutput() m_ComAmazonawsDynamodbTypes.TransactGetItemsOutput { + return _this.Get_().(TransactGetItemsOutputTransformInput_TransactGetItemsOutputTransformInput).SdkOutput +} + +func (_this TransactGetItemsOutputTransformInput) Dtor_originalInput() m_ComAmazonawsDynamodbTypes.TransactGetItemsInput { + return _this.Get_().(TransactGetItemsOutputTransformInput_TransactGetItemsOutputTransformInput).OriginalInput +} + +func (_this TransactGetItemsOutputTransformInput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case TransactGetItemsOutputTransformInput_TransactGetItemsOutputTransformInput: + { + return "AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.TransactGetItemsOutputTransformInput.TransactGetItemsOutputTransformInput" + "(" + _dafny.String(data.SdkOutput) + ", " + _dafny.String(data.OriginalInput) + ")" + } + default: + { + return "" + } + } +} + +func (_this TransactGetItemsOutputTransformInput) Equals(other TransactGetItemsOutputTransformInput) bool { + switch data1 := _this.Get_().(type) { + case TransactGetItemsOutputTransformInput_TransactGetItemsOutputTransformInput: + { + data2, ok := other.Get_().(TransactGetItemsOutputTransformInput_TransactGetItemsOutputTransformInput) + return ok && data1.SdkOutput.Equals(data2.SdkOutput) && data1.OriginalInput.Equals(data2.OriginalInput) + } + default: + { + return false // unexpected + } + } +} + +func (_this TransactGetItemsOutputTransformInput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(TransactGetItemsOutputTransformInput) + return ok && _this.Equals(typed) +} + +func Type_TransactGetItemsOutputTransformInput_() _dafny.TypeDescriptor { + return type_TransactGetItemsOutputTransformInput_{} +} + +type type_TransactGetItemsOutputTransformInput_ struct { +} + +func (_this type_TransactGetItemsOutputTransformInput_) Default() interface{} { + return Companion_TransactGetItemsOutputTransformInput_.Default() +} + +func (_this type_TransactGetItemsOutputTransformInput_) String() string { + return "AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.TransactGetItemsOutputTransformInput" +} +func (_this TransactGetItemsOutputTransformInput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = TransactGetItemsOutputTransformInput{} + +// End of datatype TransactGetItemsOutputTransformInput + +// Definition of datatype TransactGetItemsOutputTransformOutput +type TransactGetItemsOutputTransformOutput struct { + Data_TransactGetItemsOutputTransformOutput_ +} + +func (_this TransactGetItemsOutputTransformOutput) Get_() Data_TransactGetItemsOutputTransformOutput_ { + return _this.Data_TransactGetItemsOutputTransformOutput_ +} + +type Data_TransactGetItemsOutputTransformOutput_ interface { + isTransactGetItemsOutputTransformOutput() +} + +type CompanionStruct_TransactGetItemsOutputTransformOutput_ struct { +} + +var Companion_TransactGetItemsOutputTransformOutput_ = CompanionStruct_TransactGetItemsOutputTransformOutput_{} + +type TransactGetItemsOutputTransformOutput_TransactGetItemsOutputTransformOutput struct { + TransformedOutput m_ComAmazonawsDynamodbTypes.TransactGetItemsOutput +} + +func (TransactGetItemsOutputTransformOutput_TransactGetItemsOutputTransformOutput) isTransactGetItemsOutputTransformOutput() { +} + +func (CompanionStruct_TransactGetItemsOutputTransformOutput_) Create_TransactGetItemsOutputTransformOutput_(TransformedOutput m_ComAmazonawsDynamodbTypes.TransactGetItemsOutput) TransactGetItemsOutputTransformOutput { + return TransactGetItemsOutputTransformOutput{TransactGetItemsOutputTransformOutput_TransactGetItemsOutputTransformOutput{TransformedOutput}} +} + +func (_this TransactGetItemsOutputTransformOutput) Is_TransactGetItemsOutputTransformOutput() bool { + _, ok := _this.Get_().(TransactGetItemsOutputTransformOutput_TransactGetItemsOutputTransformOutput) + return ok +} + +func (CompanionStruct_TransactGetItemsOutputTransformOutput_) Default() TransactGetItemsOutputTransformOutput { + return Companion_TransactGetItemsOutputTransformOutput_.Create_TransactGetItemsOutputTransformOutput_(m_ComAmazonawsDynamodbTypes.Companion_TransactGetItemsOutput_.Default()) +} + +func (_this TransactGetItemsOutputTransformOutput) Dtor_transformedOutput() m_ComAmazonawsDynamodbTypes.TransactGetItemsOutput { + return _this.Get_().(TransactGetItemsOutputTransformOutput_TransactGetItemsOutputTransformOutput).TransformedOutput +} + +func (_this TransactGetItemsOutputTransformOutput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case TransactGetItemsOutputTransformOutput_TransactGetItemsOutputTransformOutput: + { + return "AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.TransactGetItemsOutputTransformOutput.TransactGetItemsOutputTransformOutput" + "(" + _dafny.String(data.TransformedOutput) + ")" + } + default: + { + return "" + } + } +} + +func (_this TransactGetItemsOutputTransformOutput) Equals(other TransactGetItemsOutputTransformOutput) bool { + switch data1 := _this.Get_().(type) { + case TransactGetItemsOutputTransformOutput_TransactGetItemsOutputTransformOutput: + { + data2, ok := other.Get_().(TransactGetItemsOutputTransformOutput_TransactGetItemsOutputTransformOutput) + return ok && data1.TransformedOutput.Equals(data2.TransformedOutput) + } + default: + { + return false // unexpected + } + } +} + +func (_this TransactGetItemsOutputTransformOutput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(TransactGetItemsOutputTransformOutput) + return ok && _this.Equals(typed) +} + +func Type_TransactGetItemsOutputTransformOutput_() _dafny.TypeDescriptor { + return type_TransactGetItemsOutputTransformOutput_{} +} + +type type_TransactGetItemsOutputTransformOutput_ struct { +} + +func (_this type_TransactGetItemsOutputTransformOutput_) Default() interface{} { + return Companion_TransactGetItemsOutputTransformOutput_.Default() +} + +func (_this type_TransactGetItemsOutputTransformOutput_) String() string { + return "AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.TransactGetItemsOutputTransformOutput" +} +func (_this TransactGetItemsOutputTransformOutput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = TransactGetItemsOutputTransformOutput{} + +// End of datatype TransactGetItemsOutputTransformOutput + +// Definition of datatype TransactWriteItemsInputTransformInput +type TransactWriteItemsInputTransformInput struct { + Data_TransactWriteItemsInputTransformInput_ +} + +func (_this TransactWriteItemsInputTransformInput) Get_() Data_TransactWriteItemsInputTransformInput_ { + return _this.Data_TransactWriteItemsInputTransformInput_ +} + +type Data_TransactWriteItemsInputTransformInput_ interface { + isTransactWriteItemsInputTransformInput() +} + +type CompanionStruct_TransactWriteItemsInputTransformInput_ struct { +} + +var Companion_TransactWriteItemsInputTransformInput_ = CompanionStruct_TransactWriteItemsInputTransformInput_{} + +type TransactWriteItemsInputTransformInput_TransactWriteItemsInputTransformInput struct { + SdkInput m_ComAmazonawsDynamodbTypes.TransactWriteItemsInput +} + +func (TransactWriteItemsInputTransformInput_TransactWriteItemsInputTransformInput) isTransactWriteItemsInputTransformInput() { +} + +func (CompanionStruct_TransactWriteItemsInputTransformInput_) Create_TransactWriteItemsInputTransformInput_(SdkInput m_ComAmazonawsDynamodbTypes.TransactWriteItemsInput) TransactWriteItemsInputTransformInput { + return TransactWriteItemsInputTransformInput{TransactWriteItemsInputTransformInput_TransactWriteItemsInputTransformInput{SdkInput}} +} + +func (_this TransactWriteItemsInputTransformInput) Is_TransactWriteItemsInputTransformInput() bool { + _, ok := _this.Get_().(TransactWriteItemsInputTransformInput_TransactWriteItemsInputTransformInput) + return ok +} + +func (CompanionStruct_TransactWriteItemsInputTransformInput_) Default() TransactWriteItemsInputTransformInput { + return Companion_TransactWriteItemsInputTransformInput_.Create_TransactWriteItemsInputTransformInput_(m_ComAmazonawsDynamodbTypes.Companion_TransactWriteItemsInput_.Default()) +} + +func (_this TransactWriteItemsInputTransformInput) Dtor_sdkInput() m_ComAmazonawsDynamodbTypes.TransactWriteItemsInput { + return _this.Get_().(TransactWriteItemsInputTransformInput_TransactWriteItemsInputTransformInput).SdkInput +} + +func (_this TransactWriteItemsInputTransformInput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case TransactWriteItemsInputTransformInput_TransactWriteItemsInputTransformInput: + { + return "AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.TransactWriteItemsInputTransformInput.TransactWriteItemsInputTransformInput" + "(" + _dafny.String(data.SdkInput) + ")" + } + default: + { + return "" + } + } +} + +func (_this TransactWriteItemsInputTransformInput) Equals(other TransactWriteItemsInputTransformInput) bool { + switch data1 := _this.Get_().(type) { + case TransactWriteItemsInputTransformInput_TransactWriteItemsInputTransformInput: + { + data2, ok := other.Get_().(TransactWriteItemsInputTransformInput_TransactWriteItemsInputTransformInput) + return ok && data1.SdkInput.Equals(data2.SdkInput) + } + default: + { + return false // unexpected + } + } +} + +func (_this TransactWriteItemsInputTransformInput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(TransactWriteItemsInputTransformInput) + return ok && _this.Equals(typed) +} + +func Type_TransactWriteItemsInputTransformInput_() _dafny.TypeDescriptor { + return type_TransactWriteItemsInputTransformInput_{} +} + +type type_TransactWriteItemsInputTransformInput_ struct { +} + +func (_this type_TransactWriteItemsInputTransformInput_) Default() interface{} { + return Companion_TransactWriteItemsInputTransformInput_.Default() +} + +func (_this type_TransactWriteItemsInputTransformInput_) String() string { + return "AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.TransactWriteItemsInputTransformInput" +} +func (_this TransactWriteItemsInputTransformInput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = TransactWriteItemsInputTransformInput{} + +// End of datatype TransactWriteItemsInputTransformInput + +// Definition of datatype TransactWriteItemsInputTransformOutput +type TransactWriteItemsInputTransformOutput struct { + Data_TransactWriteItemsInputTransformOutput_ +} + +func (_this TransactWriteItemsInputTransformOutput) Get_() Data_TransactWriteItemsInputTransformOutput_ { + return _this.Data_TransactWriteItemsInputTransformOutput_ +} + +type Data_TransactWriteItemsInputTransformOutput_ interface { + isTransactWriteItemsInputTransformOutput() +} + +type CompanionStruct_TransactWriteItemsInputTransformOutput_ struct { +} + +var Companion_TransactWriteItemsInputTransformOutput_ = CompanionStruct_TransactWriteItemsInputTransformOutput_{} + +type TransactWriteItemsInputTransformOutput_TransactWriteItemsInputTransformOutput struct { + TransformedInput m_ComAmazonawsDynamodbTypes.TransactWriteItemsInput +} + +func (TransactWriteItemsInputTransformOutput_TransactWriteItemsInputTransformOutput) isTransactWriteItemsInputTransformOutput() { +} + +func (CompanionStruct_TransactWriteItemsInputTransformOutput_) Create_TransactWriteItemsInputTransformOutput_(TransformedInput m_ComAmazonawsDynamodbTypes.TransactWriteItemsInput) TransactWriteItemsInputTransformOutput { + return TransactWriteItemsInputTransformOutput{TransactWriteItemsInputTransformOutput_TransactWriteItemsInputTransformOutput{TransformedInput}} +} + +func (_this TransactWriteItemsInputTransformOutput) Is_TransactWriteItemsInputTransformOutput() bool { + _, ok := _this.Get_().(TransactWriteItemsInputTransformOutput_TransactWriteItemsInputTransformOutput) + return ok +} + +func (CompanionStruct_TransactWriteItemsInputTransformOutput_) Default() TransactWriteItemsInputTransformOutput { + return Companion_TransactWriteItemsInputTransformOutput_.Create_TransactWriteItemsInputTransformOutput_(m_ComAmazonawsDynamodbTypes.Companion_TransactWriteItemsInput_.Default()) +} + +func (_this TransactWriteItemsInputTransformOutput) Dtor_transformedInput() m_ComAmazonawsDynamodbTypes.TransactWriteItemsInput { + return _this.Get_().(TransactWriteItemsInputTransformOutput_TransactWriteItemsInputTransformOutput).TransformedInput +} + +func (_this TransactWriteItemsInputTransformOutput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case TransactWriteItemsInputTransformOutput_TransactWriteItemsInputTransformOutput: + { + return "AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.TransactWriteItemsInputTransformOutput.TransactWriteItemsInputTransformOutput" + "(" + _dafny.String(data.TransformedInput) + ")" + } + default: + { + return "" + } + } +} + +func (_this TransactWriteItemsInputTransformOutput) Equals(other TransactWriteItemsInputTransformOutput) bool { + switch data1 := _this.Get_().(type) { + case TransactWriteItemsInputTransformOutput_TransactWriteItemsInputTransformOutput: + { + data2, ok := other.Get_().(TransactWriteItemsInputTransformOutput_TransactWriteItemsInputTransformOutput) + return ok && data1.TransformedInput.Equals(data2.TransformedInput) + } + default: + { + return false // unexpected + } + } +} + +func (_this TransactWriteItemsInputTransformOutput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(TransactWriteItemsInputTransformOutput) + return ok && _this.Equals(typed) +} + +func Type_TransactWriteItemsInputTransformOutput_() _dafny.TypeDescriptor { + return type_TransactWriteItemsInputTransformOutput_{} +} + +type type_TransactWriteItemsInputTransformOutput_ struct { +} + +func (_this type_TransactWriteItemsInputTransformOutput_) Default() interface{} { + return Companion_TransactWriteItemsInputTransformOutput_.Default() +} + +func (_this type_TransactWriteItemsInputTransformOutput_) String() string { + return "AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.TransactWriteItemsInputTransformOutput" +} +func (_this TransactWriteItemsInputTransformOutput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = TransactWriteItemsInputTransformOutput{} + +// End of datatype TransactWriteItemsInputTransformOutput + +// Definition of datatype TransactWriteItemsOutputTransformInput +type TransactWriteItemsOutputTransformInput struct { + Data_TransactWriteItemsOutputTransformInput_ +} + +func (_this TransactWriteItemsOutputTransformInput) Get_() Data_TransactWriteItemsOutputTransformInput_ { + return _this.Data_TransactWriteItemsOutputTransformInput_ +} + +type Data_TransactWriteItemsOutputTransformInput_ interface { + isTransactWriteItemsOutputTransformInput() +} + +type CompanionStruct_TransactWriteItemsOutputTransformInput_ struct { +} + +var Companion_TransactWriteItemsOutputTransformInput_ = CompanionStruct_TransactWriteItemsOutputTransformInput_{} + +type TransactWriteItemsOutputTransformInput_TransactWriteItemsOutputTransformInput struct { + SdkOutput m_ComAmazonawsDynamodbTypes.TransactWriteItemsOutput + OriginalInput m_ComAmazonawsDynamodbTypes.TransactWriteItemsInput +} + +func (TransactWriteItemsOutputTransformInput_TransactWriteItemsOutputTransformInput) isTransactWriteItemsOutputTransformInput() { +} + +func (CompanionStruct_TransactWriteItemsOutputTransformInput_) Create_TransactWriteItemsOutputTransformInput_(SdkOutput m_ComAmazonawsDynamodbTypes.TransactWriteItemsOutput, OriginalInput m_ComAmazonawsDynamodbTypes.TransactWriteItemsInput) TransactWriteItemsOutputTransformInput { + return TransactWriteItemsOutputTransformInput{TransactWriteItemsOutputTransformInput_TransactWriteItemsOutputTransformInput{SdkOutput, OriginalInput}} +} + +func (_this TransactWriteItemsOutputTransformInput) Is_TransactWriteItemsOutputTransformInput() bool { + _, ok := _this.Get_().(TransactWriteItemsOutputTransformInput_TransactWriteItemsOutputTransformInput) + return ok +} + +func (CompanionStruct_TransactWriteItemsOutputTransformInput_) Default() TransactWriteItemsOutputTransformInput { + return Companion_TransactWriteItemsOutputTransformInput_.Create_TransactWriteItemsOutputTransformInput_(m_ComAmazonawsDynamodbTypes.Companion_TransactWriteItemsOutput_.Default(), m_ComAmazonawsDynamodbTypes.Companion_TransactWriteItemsInput_.Default()) +} + +func (_this TransactWriteItemsOutputTransformInput) Dtor_sdkOutput() m_ComAmazonawsDynamodbTypes.TransactWriteItemsOutput { + return _this.Get_().(TransactWriteItemsOutputTransformInput_TransactWriteItemsOutputTransformInput).SdkOutput +} + +func (_this TransactWriteItemsOutputTransformInput) Dtor_originalInput() m_ComAmazonawsDynamodbTypes.TransactWriteItemsInput { + return _this.Get_().(TransactWriteItemsOutputTransformInput_TransactWriteItemsOutputTransformInput).OriginalInput +} + +func (_this TransactWriteItemsOutputTransformInput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case TransactWriteItemsOutputTransformInput_TransactWriteItemsOutputTransformInput: + { + return "AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.TransactWriteItemsOutputTransformInput.TransactWriteItemsOutputTransformInput" + "(" + _dafny.String(data.SdkOutput) + ", " + _dafny.String(data.OriginalInput) + ")" + } + default: + { + return "" + } + } +} + +func (_this TransactWriteItemsOutputTransformInput) Equals(other TransactWriteItemsOutputTransformInput) bool { + switch data1 := _this.Get_().(type) { + case TransactWriteItemsOutputTransformInput_TransactWriteItemsOutputTransformInput: + { + data2, ok := other.Get_().(TransactWriteItemsOutputTransformInput_TransactWriteItemsOutputTransformInput) + return ok && data1.SdkOutput.Equals(data2.SdkOutput) && data1.OriginalInput.Equals(data2.OriginalInput) + } + default: + { + return false // unexpected + } + } +} + +func (_this TransactWriteItemsOutputTransformInput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(TransactWriteItemsOutputTransformInput) + return ok && _this.Equals(typed) +} + +func Type_TransactWriteItemsOutputTransformInput_() _dafny.TypeDescriptor { + return type_TransactWriteItemsOutputTransformInput_{} +} + +type type_TransactWriteItemsOutputTransformInput_ struct { +} + +func (_this type_TransactWriteItemsOutputTransformInput_) Default() interface{} { + return Companion_TransactWriteItemsOutputTransformInput_.Default() +} + +func (_this type_TransactWriteItemsOutputTransformInput_) String() string { + return "AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.TransactWriteItemsOutputTransformInput" +} +func (_this TransactWriteItemsOutputTransformInput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = TransactWriteItemsOutputTransformInput{} + +// End of datatype TransactWriteItemsOutputTransformInput + +// Definition of datatype TransactWriteItemsOutputTransformOutput +type TransactWriteItemsOutputTransformOutput struct { + Data_TransactWriteItemsOutputTransformOutput_ +} + +func (_this TransactWriteItemsOutputTransformOutput) Get_() Data_TransactWriteItemsOutputTransformOutput_ { + return _this.Data_TransactWriteItemsOutputTransformOutput_ +} + +type Data_TransactWriteItemsOutputTransformOutput_ interface { + isTransactWriteItemsOutputTransformOutput() +} + +type CompanionStruct_TransactWriteItemsOutputTransformOutput_ struct { +} + +var Companion_TransactWriteItemsOutputTransformOutput_ = CompanionStruct_TransactWriteItemsOutputTransformOutput_{} + +type TransactWriteItemsOutputTransformOutput_TransactWriteItemsOutputTransformOutput struct { + TransformedOutput m_ComAmazonawsDynamodbTypes.TransactWriteItemsOutput +} + +func (TransactWriteItemsOutputTransformOutput_TransactWriteItemsOutputTransformOutput) isTransactWriteItemsOutputTransformOutput() { +} + +func (CompanionStruct_TransactWriteItemsOutputTransformOutput_) Create_TransactWriteItemsOutputTransformOutput_(TransformedOutput m_ComAmazonawsDynamodbTypes.TransactWriteItemsOutput) TransactWriteItemsOutputTransformOutput { + return TransactWriteItemsOutputTransformOutput{TransactWriteItemsOutputTransformOutput_TransactWriteItemsOutputTransformOutput{TransformedOutput}} +} + +func (_this TransactWriteItemsOutputTransformOutput) Is_TransactWriteItemsOutputTransformOutput() bool { + _, ok := _this.Get_().(TransactWriteItemsOutputTransformOutput_TransactWriteItemsOutputTransformOutput) + return ok +} + +func (CompanionStruct_TransactWriteItemsOutputTransformOutput_) Default() TransactWriteItemsOutputTransformOutput { + return Companion_TransactWriteItemsOutputTransformOutput_.Create_TransactWriteItemsOutputTransformOutput_(m_ComAmazonawsDynamodbTypes.Companion_TransactWriteItemsOutput_.Default()) +} + +func (_this TransactWriteItemsOutputTransformOutput) Dtor_transformedOutput() m_ComAmazonawsDynamodbTypes.TransactWriteItemsOutput { + return _this.Get_().(TransactWriteItemsOutputTransformOutput_TransactWriteItemsOutputTransformOutput).TransformedOutput +} + +func (_this TransactWriteItemsOutputTransformOutput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case TransactWriteItemsOutputTransformOutput_TransactWriteItemsOutputTransformOutput: + { + return "AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.TransactWriteItemsOutputTransformOutput.TransactWriteItemsOutputTransformOutput" + "(" + _dafny.String(data.TransformedOutput) + ")" + } + default: + { + return "" + } + } +} + +func (_this TransactWriteItemsOutputTransformOutput) Equals(other TransactWriteItemsOutputTransformOutput) bool { + switch data1 := _this.Get_().(type) { + case TransactWriteItemsOutputTransformOutput_TransactWriteItemsOutputTransformOutput: + { + data2, ok := other.Get_().(TransactWriteItemsOutputTransformOutput_TransactWriteItemsOutputTransformOutput) + return ok && data1.TransformedOutput.Equals(data2.TransformedOutput) + } + default: + { + return false // unexpected + } + } +} + +func (_this TransactWriteItemsOutputTransformOutput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(TransactWriteItemsOutputTransformOutput) + return ok && _this.Equals(typed) +} + +func Type_TransactWriteItemsOutputTransformOutput_() _dafny.TypeDescriptor { + return type_TransactWriteItemsOutputTransformOutput_{} +} + +type type_TransactWriteItemsOutputTransformOutput_ struct { +} + +func (_this type_TransactWriteItemsOutputTransformOutput_) Default() interface{} { + return Companion_TransactWriteItemsOutputTransformOutput_.Default() +} + +func (_this type_TransactWriteItemsOutputTransformOutput_) String() string { + return "AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.TransactWriteItemsOutputTransformOutput" +} +func (_this TransactWriteItemsOutputTransformOutput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = TransactWriteItemsOutputTransformOutput{} + +// End of datatype TransactWriteItemsOutputTransformOutput + +// Definition of datatype UpdateItemInputTransformInput +type UpdateItemInputTransformInput struct { + Data_UpdateItemInputTransformInput_ +} + +func (_this UpdateItemInputTransformInput) Get_() Data_UpdateItemInputTransformInput_ { + return _this.Data_UpdateItemInputTransformInput_ +} + +type Data_UpdateItemInputTransformInput_ interface { + isUpdateItemInputTransformInput() +} + +type CompanionStruct_UpdateItemInputTransformInput_ struct { +} + +var Companion_UpdateItemInputTransformInput_ = CompanionStruct_UpdateItemInputTransformInput_{} + +type UpdateItemInputTransformInput_UpdateItemInputTransformInput struct { + SdkInput m_ComAmazonawsDynamodbTypes.UpdateItemInput +} + +func (UpdateItemInputTransformInput_UpdateItemInputTransformInput) isUpdateItemInputTransformInput() { +} + +func (CompanionStruct_UpdateItemInputTransformInput_) Create_UpdateItemInputTransformInput_(SdkInput m_ComAmazonawsDynamodbTypes.UpdateItemInput) UpdateItemInputTransformInput { + return UpdateItemInputTransformInput{UpdateItemInputTransformInput_UpdateItemInputTransformInput{SdkInput}} +} + +func (_this UpdateItemInputTransformInput) Is_UpdateItemInputTransformInput() bool { + _, ok := _this.Get_().(UpdateItemInputTransformInput_UpdateItemInputTransformInput) + return ok +} + +func (CompanionStruct_UpdateItemInputTransformInput_) Default() UpdateItemInputTransformInput { + return Companion_UpdateItemInputTransformInput_.Create_UpdateItemInputTransformInput_(m_ComAmazonawsDynamodbTypes.Companion_UpdateItemInput_.Default()) +} + +func (_this UpdateItemInputTransformInput) Dtor_sdkInput() m_ComAmazonawsDynamodbTypes.UpdateItemInput { + return _this.Get_().(UpdateItemInputTransformInput_UpdateItemInputTransformInput).SdkInput +} + +func (_this UpdateItemInputTransformInput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case UpdateItemInputTransformInput_UpdateItemInputTransformInput: + { + return "AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.UpdateItemInputTransformInput.UpdateItemInputTransformInput" + "(" + _dafny.String(data.SdkInput) + ")" + } + default: + { + return "" + } + } +} + +func (_this UpdateItemInputTransformInput) Equals(other UpdateItemInputTransformInput) bool { + switch data1 := _this.Get_().(type) { + case UpdateItemInputTransformInput_UpdateItemInputTransformInput: + { + data2, ok := other.Get_().(UpdateItemInputTransformInput_UpdateItemInputTransformInput) + return ok && data1.SdkInput.Equals(data2.SdkInput) + } + default: + { + return false // unexpected + } + } +} + +func (_this UpdateItemInputTransformInput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(UpdateItemInputTransformInput) + return ok && _this.Equals(typed) +} + +func Type_UpdateItemInputTransformInput_() _dafny.TypeDescriptor { + return type_UpdateItemInputTransformInput_{} +} + +type type_UpdateItemInputTransformInput_ struct { +} + +func (_this type_UpdateItemInputTransformInput_) Default() interface{} { + return Companion_UpdateItemInputTransformInput_.Default() +} + +func (_this type_UpdateItemInputTransformInput_) String() string { + return "AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.UpdateItemInputTransformInput" +} +func (_this UpdateItemInputTransformInput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = UpdateItemInputTransformInput{} + +// End of datatype UpdateItemInputTransformInput + +// Definition of datatype UpdateItemInputTransformOutput +type UpdateItemInputTransformOutput struct { + Data_UpdateItemInputTransformOutput_ +} + +func (_this UpdateItemInputTransformOutput) Get_() Data_UpdateItemInputTransformOutput_ { + return _this.Data_UpdateItemInputTransformOutput_ +} + +type Data_UpdateItemInputTransformOutput_ interface { + isUpdateItemInputTransformOutput() +} + +type CompanionStruct_UpdateItemInputTransformOutput_ struct { +} + +var Companion_UpdateItemInputTransformOutput_ = CompanionStruct_UpdateItemInputTransformOutput_{} + +type UpdateItemInputTransformOutput_UpdateItemInputTransformOutput struct { + TransformedInput m_ComAmazonawsDynamodbTypes.UpdateItemInput +} + +func (UpdateItemInputTransformOutput_UpdateItemInputTransformOutput) isUpdateItemInputTransformOutput() { +} + +func (CompanionStruct_UpdateItemInputTransformOutput_) Create_UpdateItemInputTransformOutput_(TransformedInput m_ComAmazonawsDynamodbTypes.UpdateItemInput) UpdateItemInputTransformOutput { + return UpdateItemInputTransformOutput{UpdateItemInputTransformOutput_UpdateItemInputTransformOutput{TransformedInput}} +} + +func (_this UpdateItemInputTransformOutput) Is_UpdateItemInputTransformOutput() bool { + _, ok := _this.Get_().(UpdateItemInputTransformOutput_UpdateItemInputTransformOutput) + return ok +} + +func (CompanionStruct_UpdateItemInputTransformOutput_) Default() UpdateItemInputTransformOutput { + return Companion_UpdateItemInputTransformOutput_.Create_UpdateItemInputTransformOutput_(m_ComAmazonawsDynamodbTypes.Companion_UpdateItemInput_.Default()) +} + +func (_this UpdateItemInputTransformOutput) Dtor_transformedInput() m_ComAmazonawsDynamodbTypes.UpdateItemInput { + return _this.Get_().(UpdateItemInputTransformOutput_UpdateItemInputTransformOutput).TransformedInput +} + +func (_this UpdateItemInputTransformOutput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case UpdateItemInputTransformOutput_UpdateItemInputTransformOutput: + { + return "AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.UpdateItemInputTransformOutput.UpdateItemInputTransformOutput" + "(" + _dafny.String(data.TransformedInput) + ")" + } + default: + { + return "" + } + } +} + +func (_this UpdateItemInputTransformOutput) Equals(other UpdateItemInputTransformOutput) bool { + switch data1 := _this.Get_().(type) { + case UpdateItemInputTransformOutput_UpdateItemInputTransformOutput: + { + data2, ok := other.Get_().(UpdateItemInputTransformOutput_UpdateItemInputTransformOutput) + return ok && data1.TransformedInput.Equals(data2.TransformedInput) + } + default: + { + return false // unexpected + } + } +} + +func (_this UpdateItemInputTransformOutput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(UpdateItemInputTransformOutput) + return ok && _this.Equals(typed) +} + +func Type_UpdateItemInputTransformOutput_() _dafny.TypeDescriptor { + return type_UpdateItemInputTransformOutput_{} +} + +type type_UpdateItemInputTransformOutput_ struct { +} + +func (_this type_UpdateItemInputTransformOutput_) Default() interface{} { + return Companion_UpdateItemInputTransformOutput_.Default() +} + +func (_this type_UpdateItemInputTransformOutput_) String() string { + return "AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.UpdateItemInputTransformOutput" +} +func (_this UpdateItemInputTransformOutput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = UpdateItemInputTransformOutput{} + +// End of datatype UpdateItemInputTransformOutput + +// Definition of datatype UpdateItemOutputTransformInput +type UpdateItemOutputTransformInput struct { + Data_UpdateItemOutputTransformInput_ +} + +func (_this UpdateItemOutputTransformInput) Get_() Data_UpdateItemOutputTransformInput_ { + return _this.Data_UpdateItemOutputTransformInput_ +} + +type Data_UpdateItemOutputTransformInput_ interface { + isUpdateItemOutputTransformInput() +} + +type CompanionStruct_UpdateItemOutputTransformInput_ struct { +} + +var Companion_UpdateItemOutputTransformInput_ = CompanionStruct_UpdateItemOutputTransformInput_{} + +type UpdateItemOutputTransformInput_UpdateItemOutputTransformInput struct { + SdkOutput m_ComAmazonawsDynamodbTypes.UpdateItemOutput + OriginalInput m_ComAmazonawsDynamodbTypes.UpdateItemInput +} + +func (UpdateItemOutputTransformInput_UpdateItemOutputTransformInput) isUpdateItemOutputTransformInput() { +} + +func (CompanionStruct_UpdateItemOutputTransformInput_) Create_UpdateItemOutputTransformInput_(SdkOutput m_ComAmazonawsDynamodbTypes.UpdateItemOutput, OriginalInput m_ComAmazonawsDynamodbTypes.UpdateItemInput) UpdateItemOutputTransformInput { + return UpdateItemOutputTransformInput{UpdateItemOutputTransformInput_UpdateItemOutputTransformInput{SdkOutput, OriginalInput}} +} + +func (_this UpdateItemOutputTransformInput) Is_UpdateItemOutputTransformInput() bool { + _, ok := _this.Get_().(UpdateItemOutputTransformInput_UpdateItemOutputTransformInput) + return ok +} + +func (CompanionStruct_UpdateItemOutputTransformInput_) Default() UpdateItemOutputTransformInput { + return Companion_UpdateItemOutputTransformInput_.Create_UpdateItemOutputTransformInput_(m_ComAmazonawsDynamodbTypes.Companion_UpdateItemOutput_.Default(), m_ComAmazonawsDynamodbTypes.Companion_UpdateItemInput_.Default()) +} + +func (_this UpdateItemOutputTransformInput) Dtor_sdkOutput() m_ComAmazonawsDynamodbTypes.UpdateItemOutput { + return _this.Get_().(UpdateItemOutputTransformInput_UpdateItemOutputTransformInput).SdkOutput +} + +func (_this UpdateItemOutputTransformInput) Dtor_originalInput() m_ComAmazonawsDynamodbTypes.UpdateItemInput { + return _this.Get_().(UpdateItemOutputTransformInput_UpdateItemOutputTransformInput).OriginalInput +} + +func (_this UpdateItemOutputTransformInput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case UpdateItemOutputTransformInput_UpdateItemOutputTransformInput: + { + return "AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.UpdateItemOutputTransformInput.UpdateItemOutputTransformInput" + "(" + _dafny.String(data.SdkOutput) + ", " + _dafny.String(data.OriginalInput) + ")" + } + default: + { + return "" + } + } +} + +func (_this UpdateItemOutputTransformInput) Equals(other UpdateItemOutputTransformInput) bool { + switch data1 := _this.Get_().(type) { + case UpdateItemOutputTransformInput_UpdateItemOutputTransformInput: + { + data2, ok := other.Get_().(UpdateItemOutputTransformInput_UpdateItemOutputTransformInput) + return ok && data1.SdkOutput.Equals(data2.SdkOutput) && data1.OriginalInput.Equals(data2.OriginalInput) + } + default: + { + return false // unexpected + } + } +} + +func (_this UpdateItemOutputTransformInput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(UpdateItemOutputTransformInput) + return ok && _this.Equals(typed) +} + +func Type_UpdateItemOutputTransformInput_() _dafny.TypeDescriptor { + return type_UpdateItemOutputTransformInput_{} +} + +type type_UpdateItemOutputTransformInput_ struct { +} + +func (_this type_UpdateItemOutputTransformInput_) Default() interface{} { + return Companion_UpdateItemOutputTransformInput_.Default() +} + +func (_this type_UpdateItemOutputTransformInput_) String() string { + return "AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.UpdateItemOutputTransformInput" +} +func (_this UpdateItemOutputTransformInput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = UpdateItemOutputTransformInput{} + +// End of datatype UpdateItemOutputTransformInput + +// Definition of datatype UpdateItemOutputTransformOutput +type UpdateItemOutputTransformOutput struct { + Data_UpdateItemOutputTransformOutput_ +} + +func (_this UpdateItemOutputTransformOutput) Get_() Data_UpdateItemOutputTransformOutput_ { + return _this.Data_UpdateItemOutputTransformOutput_ +} + +type Data_UpdateItemOutputTransformOutput_ interface { + isUpdateItemOutputTransformOutput() +} + +type CompanionStruct_UpdateItemOutputTransformOutput_ struct { +} + +var Companion_UpdateItemOutputTransformOutput_ = CompanionStruct_UpdateItemOutputTransformOutput_{} + +type UpdateItemOutputTransformOutput_UpdateItemOutputTransformOutput struct { + TransformedOutput m_ComAmazonawsDynamodbTypes.UpdateItemOutput +} + +func (UpdateItemOutputTransformOutput_UpdateItemOutputTransformOutput) isUpdateItemOutputTransformOutput() { +} + +func (CompanionStruct_UpdateItemOutputTransformOutput_) Create_UpdateItemOutputTransformOutput_(TransformedOutput m_ComAmazonawsDynamodbTypes.UpdateItemOutput) UpdateItemOutputTransformOutput { + return UpdateItemOutputTransformOutput{UpdateItemOutputTransformOutput_UpdateItemOutputTransformOutput{TransformedOutput}} +} + +func (_this UpdateItemOutputTransformOutput) Is_UpdateItemOutputTransformOutput() bool { + _, ok := _this.Get_().(UpdateItemOutputTransformOutput_UpdateItemOutputTransformOutput) + return ok +} + +func (CompanionStruct_UpdateItemOutputTransformOutput_) Default() UpdateItemOutputTransformOutput { + return Companion_UpdateItemOutputTransformOutput_.Create_UpdateItemOutputTransformOutput_(m_ComAmazonawsDynamodbTypes.Companion_UpdateItemOutput_.Default()) +} + +func (_this UpdateItemOutputTransformOutput) Dtor_transformedOutput() m_ComAmazonawsDynamodbTypes.UpdateItemOutput { + return _this.Get_().(UpdateItemOutputTransformOutput_UpdateItemOutputTransformOutput).TransformedOutput +} + +func (_this UpdateItemOutputTransformOutput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case UpdateItemOutputTransformOutput_UpdateItemOutputTransformOutput: + { + return "AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.UpdateItemOutputTransformOutput.UpdateItemOutputTransformOutput" + "(" + _dafny.String(data.TransformedOutput) + ")" + } + default: + { + return "" + } + } +} + +func (_this UpdateItemOutputTransformOutput) Equals(other UpdateItemOutputTransformOutput) bool { + switch data1 := _this.Get_().(type) { + case UpdateItemOutputTransformOutput_UpdateItemOutputTransformOutput: + { + data2, ok := other.Get_().(UpdateItemOutputTransformOutput_UpdateItemOutputTransformOutput) + return ok && data1.TransformedOutput.Equals(data2.TransformedOutput) + } + default: + { + return false // unexpected + } + } +} + +func (_this UpdateItemOutputTransformOutput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(UpdateItemOutputTransformOutput) + return ok && _this.Equals(typed) +} + +func Type_UpdateItemOutputTransformOutput_() _dafny.TypeDescriptor { + return type_UpdateItemOutputTransformOutput_{} +} + +type type_UpdateItemOutputTransformOutput_ struct { +} + +func (_this type_UpdateItemOutputTransformOutput_) Default() interface{} { + return Companion_UpdateItemOutputTransformOutput_.Default() +} + +func (_this type_UpdateItemOutputTransformOutput_) String() string { + return "AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.UpdateItemOutputTransformOutput" +} +func (_this UpdateItemOutputTransformOutput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = UpdateItemOutputTransformOutput{} + +// End of datatype UpdateItemOutputTransformOutput + +// Definition of datatype Error +type Error struct { + Data_Error_ +} + +func (_this Error) Get_() Data_Error_ { + return _this.Data_Error_ +} + +type Data_Error_ interface { + isError() +} + +type CompanionStruct_Error_ struct { +} + +var Companion_Error_ = CompanionStruct_Error_{} + +type Error_DynamoDbEncryptionTransformsException struct { + Message _dafny.Sequence +} + +func (Error_DynamoDbEncryptionTransformsException) isError() {} + +func (CompanionStruct_Error_) Create_DynamoDbEncryptionTransformsException_(Message _dafny.Sequence) Error { + return Error{Error_DynamoDbEncryptionTransformsException{Message}} +} + +func (_this Error) Is_DynamoDbEncryptionTransformsException() bool { + _, ok := _this.Get_().(Error_DynamoDbEncryptionTransformsException) + return ok +} + +type Error_AwsCryptographyDbEncryptionSdkDynamoDb struct { + AwsCryptographyDbEncryptionSdkDynamoDb m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Error +} + +func (Error_AwsCryptographyDbEncryptionSdkDynamoDb) isError() {} + +func (CompanionStruct_Error_) Create_AwsCryptographyDbEncryptionSdkDynamoDb_(AwsCryptographyDbEncryptionSdkDynamoDb m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Error) Error { + return Error{Error_AwsCryptographyDbEncryptionSdkDynamoDb{AwsCryptographyDbEncryptionSdkDynamoDb}} +} + +func (_this Error) Is_AwsCryptographyDbEncryptionSdkDynamoDb() bool { + _, ok := _this.Get_().(Error_AwsCryptographyDbEncryptionSdkDynamoDb) + return ok +} + +type Error_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptor struct { + AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptor m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Error +} + +func (Error_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptor) isError() {} + +func (CompanionStruct_Error_) Create_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptor_(AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptor m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Error) Error { + return Error{Error_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptor{AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptor}} +} + +func (_this Error) Is_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptor() bool { + _, ok := _this.Get_().(Error_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptor) + return ok +} + +type Error_AwsCryptographyDbEncryptionSdkStructuredEncryption struct { + AwsCryptographyDbEncryptionSdkStructuredEncryption m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Error +} + +func (Error_AwsCryptographyDbEncryptionSdkStructuredEncryption) isError() {} + +func (CompanionStruct_Error_) Create_AwsCryptographyDbEncryptionSdkStructuredEncryption_(AwsCryptographyDbEncryptionSdkStructuredEncryption m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Error) Error { + return Error{Error_AwsCryptographyDbEncryptionSdkStructuredEncryption{AwsCryptographyDbEncryptionSdkStructuredEncryption}} +} + +func (_this Error) Is_AwsCryptographyDbEncryptionSdkStructuredEncryption() bool { + _, ok := _this.Get_().(Error_AwsCryptographyDbEncryptionSdkStructuredEncryption) + return ok +} + +type Error_AwsCryptographyMaterialProviders struct { + AwsCryptographyMaterialProviders m_AwsCryptographyMaterialProvidersTypes.Error +} + +func (Error_AwsCryptographyMaterialProviders) isError() {} + +func (CompanionStruct_Error_) Create_AwsCryptographyMaterialProviders_(AwsCryptographyMaterialProviders m_AwsCryptographyMaterialProvidersTypes.Error) Error { + return Error{Error_AwsCryptographyMaterialProviders{AwsCryptographyMaterialProviders}} +} + +func (_this Error) Is_AwsCryptographyMaterialProviders() bool { + _, ok := _this.Get_().(Error_AwsCryptographyMaterialProviders) + return ok +} + +type Error_ComAmazonawsDynamodb struct { + ComAmazonawsDynamodb m_ComAmazonawsDynamodbTypes.Error +} + +func (Error_ComAmazonawsDynamodb) isError() {} + +func (CompanionStruct_Error_) Create_ComAmazonawsDynamodb_(ComAmazonawsDynamodb m_ComAmazonawsDynamodbTypes.Error) Error { + return Error{Error_ComAmazonawsDynamodb{ComAmazonawsDynamodb}} +} + +func (_this Error) Is_ComAmazonawsDynamodb() bool { + _, ok := _this.Get_().(Error_ComAmazonawsDynamodb) + return ok +} + +type Error_CollectionOfErrors struct { + List _dafny.Sequence + Message _dafny.Sequence +} + +func (Error_CollectionOfErrors) isError() {} + +func (CompanionStruct_Error_) Create_CollectionOfErrors_(List _dafny.Sequence, Message _dafny.Sequence) Error { + return Error{Error_CollectionOfErrors{List, Message}} +} + +func (_this Error) Is_CollectionOfErrors() bool { + _, ok := _this.Get_().(Error_CollectionOfErrors) + return ok +} + +type Error_Opaque struct { + Obj interface{} +} + +func (Error_Opaque) isError() {} + +func (CompanionStruct_Error_) Create_Opaque_(Obj interface{}) Error { + return Error{Error_Opaque{Obj}} +} + +func (_this Error) Is_Opaque() bool { + _, ok := _this.Get_().(Error_Opaque) + return ok +} + +type Error_OpaqueWithText struct { + Obj interface{} + ObjMessage _dafny.Sequence +} + +func (Error_OpaqueWithText) isError() {} + +func (CompanionStruct_Error_) Create_OpaqueWithText_(Obj interface{}, ObjMessage _dafny.Sequence) Error { + return Error{Error_OpaqueWithText{Obj, ObjMessage}} +} + +func (_this Error) Is_OpaqueWithText() bool { + _, ok := _this.Get_().(Error_OpaqueWithText) + return ok +} + +func (CompanionStruct_Error_) Default() Error { + return Companion_Error_.Create_DynamoDbEncryptionTransformsException_(_dafny.EmptySeq.SetString()) +} + +func (_this Error) Dtor_message() _dafny.Sequence { + switch data := _this.Get_().(type) { + case Error_DynamoDbEncryptionTransformsException: + return data.Message + default: + return data.(Error_CollectionOfErrors).Message + } +} + +func (_this Error) Dtor_AwsCryptographyDbEncryptionSdkDynamoDb() m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Error { + return _this.Get_().(Error_AwsCryptographyDbEncryptionSdkDynamoDb).AwsCryptographyDbEncryptionSdkDynamoDb +} + +func (_this Error) Dtor_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptor() m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Error { + return _this.Get_().(Error_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptor).AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptor +} + +func (_this Error) Dtor_AwsCryptographyDbEncryptionSdkStructuredEncryption() m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Error { + return _this.Get_().(Error_AwsCryptographyDbEncryptionSdkStructuredEncryption).AwsCryptographyDbEncryptionSdkStructuredEncryption +} + +func (_this Error) Dtor_AwsCryptographyMaterialProviders() m_AwsCryptographyMaterialProvidersTypes.Error { + return _this.Get_().(Error_AwsCryptographyMaterialProviders).AwsCryptographyMaterialProviders +} + +func (_this Error) Dtor_ComAmazonawsDynamodb() m_ComAmazonawsDynamodbTypes.Error { + return _this.Get_().(Error_ComAmazonawsDynamodb).ComAmazonawsDynamodb +} + +func (_this Error) Dtor_list() _dafny.Sequence { + return _this.Get_().(Error_CollectionOfErrors).List +} + +func (_this Error) Dtor_obj() interface{} { + switch data := _this.Get_().(type) { + case Error_Opaque: + return data.Obj + default: + return data.(Error_OpaqueWithText).Obj + } +} + +func (_this Error) Dtor_objMessage() _dafny.Sequence { + return _this.Get_().(Error_OpaqueWithText).ObjMessage +} + +func (_this Error) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case Error_DynamoDbEncryptionTransformsException: + { + return "AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Error.DynamoDbEncryptionTransformsException" + "(" + _dafny.String(data.Message) + ")" + } + case Error_AwsCryptographyDbEncryptionSdkDynamoDb: + { + return "AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Error.AwsCryptographyDbEncryptionSdkDynamoDb" + "(" + _dafny.String(data.AwsCryptographyDbEncryptionSdkDynamoDb) + ")" + } + case Error_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptor: + { + return "AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Error.AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptor" + "(" + _dafny.String(data.AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptor) + ")" + } + case Error_AwsCryptographyDbEncryptionSdkStructuredEncryption: + { + return "AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Error.AwsCryptographyDbEncryptionSdkStructuredEncryption" + "(" + _dafny.String(data.AwsCryptographyDbEncryptionSdkStructuredEncryption) + ")" + } + case Error_AwsCryptographyMaterialProviders: + { + return "AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Error.AwsCryptographyMaterialProviders" + "(" + _dafny.String(data.AwsCryptographyMaterialProviders) + ")" + } + case Error_ComAmazonawsDynamodb: + { + return "AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Error.ComAmazonawsDynamodb" + "(" + _dafny.String(data.ComAmazonawsDynamodb) + ")" + } + case Error_CollectionOfErrors: + { + return "AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Error.CollectionOfErrors" + "(" + _dafny.String(data.List) + ", " + _dafny.String(data.Message) + ")" + } + case Error_Opaque: + { + return "AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Error.Opaque" + "(" + _dafny.String(data.Obj) + ")" + } + case Error_OpaqueWithText: + { + return "AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Error.OpaqueWithText" + "(" + _dafny.String(data.Obj) + ", " + _dafny.String(data.ObjMessage) + ")" + } + default: + { + return "" + } + } +} + +func (_this Error) Equals(other Error) bool { + switch data1 := _this.Get_().(type) { + case Error_DynamoDbEncryptionTransformsException: + { + data2, ok := other.Get_().(Error_DynamoDbEncryptionTransformsException) + return ok && data1.Message.Equals(data2.Message) + } + case Error_AwsCryptographyDbEncryptionSdkDynamoDb: + { + data2, ok := other.Get_().(Error_AwsCryptographyDbEncryptionSdkDynamoDb) + return ok && data1.AwsCryptographyDbEncryptionSdkDynamoDb.Equals(data2.AwsCryptographyDbEncryptionSdkDynamoDb) + } + case Error_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptor: + { + data2, ok := other.Get_().(Error_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptor) + return ok && data1.AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptor.Equals(data2.AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptor) + } + case Error_AwsCryptographyDbEncryptionSdkStructuredEncryption: + { + data2, ok := other.Get_().(Error_AwsCryptographyDbEncryptionSdkStructuredEncryption) + return ok && data1.AwsCryptographyDbEncryptionSdkStructuredEncryption.Equals(data2.AwsCryptographyDbEncryptionSdkStructuredEncryption) + } + case Error_AwsCryptographyMaterialProviders: + { + data2, ok := other.Get_().(Error_AwsCryptographyMaterialProviders) + return ok && data1.AwsCryptographyMaterialProviders.Equals(data2.AwsCryptographyMaterialProviders) + } + case Error_ComAmazonawsDynamodb: + { + data2, ok := other.Get_().(Error_ComAmazonawsDynamodb) + return ok && data1.ComAmazonawsDynamodb.Equals(data2.ComAmazonawsDynamodb) + } + case Error_CollectionOfErrors: + { + data2, ok := other.Get_().(Error_CollectionOfErrors) + return ok && data1.List.Equals(data2.List) && data1.Message.Equals(data2.Message) + } + case Error_Opaque: + { + data2, ok := other.Get_().(Error_Opaque) + return ok && _dafny.AreEqual(data1.Obj, data2.Obj) + } + case Error_OpaqueWithText: + { + data2, ok := other.Get_().(Error_OpaqueWithText) + return ok && _dafny.AreEqual(data1.Obj, data2.Obj) && data1.ObjMessage.Equals(data2.ObjMessage) + } + default: + { + return false // unexpected + } + } +} + +func (_this Error) EqualsGeneric(other interface{}) bool { + typed, ok := other.(Error) + return ok && _this.Equals(typed) +} + +func Type_Error_() _dafny.TypeDescriptor { + return type_Error_{} +} + +type type_Error_ struct { +} + +func (_this type_Error_) Default() interface{} { + return Companion_Error_.Default() +} + +func (_this type_Error_) String() string { + return "AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Error" +} +func (_this Error) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = Error{} + +// End of datatype Error + +// Definition of class OpaqueError +type OpaqueError struct { +} + +func New_OpaqueError_() *OpaqueError { + _this := OpaqueError{} + + return &_this +} + +type CompanionStruct_OpaqueError_ struct { +} + +var Companion_OpaqueError_ = CompanionStruct_OpaqueError_{} + +func (*OpaqueError) String() string { + return "AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.OpaqueError" +} + +// End of class OpaqueError + +func Type_OpaqueError_() _dafny.TypeDescriptor { + return type_OpaqueError_{} +} + +type type_OpaqueError_ struct { +} + +func (_this type_OpaqueError_) Default() interface{} { + return Companion_Error_.Default() +} + +func (_this type_OpaqueError_) String() string { + return "AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.OpaqueError" +} +func (_this *CompanionStruct_OpaqueError_) Is_(__source Error) bool { + var _0_e Error = (__source) + _ = _0_e + return ((_0_e).Is_Opaque()) || ((_0_e).Is_OpaqueWithText()) +} + +// Definition of class DummySubsetType +type DummySubsetType struct { +} + +func New_DummySubsetType_() *DummySubsetType { + _this := DummySubsetType{} + + return &_this +} + +type CompanionStruct_DummySubsetType_ struct { +} + +var Companion_DummySubsetType_ = CompanionStruct_DummySubsetType_{} + +func (*DummySubsetType) String() string { + return "AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.DummySubsetType" +} +func (_this *CompanionStruct_DummySubsetType_) Witness() _dafny.Int { + return _dafny.One +} + +// End of class DummySubsetType + +func Type_DummySubsetType_() _dafny.TypeDescriptor { + return type_DummySubsetType_{} +} + +type type_DummySubsetType_ struct { +} + +func (_this type_DummySubsetType_) Default() interface{} { + return Companion_DummySubsetType_.Witness() +} + +func (_this type_DummySubsetType_) String() string { + return "AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.DummySubsetType" +} +func (_this *CompanionStruct_DummySubsetType_) Is_(__source _dafny.Int) bool { + var _1_x _dafny.Int = (__source) + _ = _1_x + return Companion_Default___.IsDummySubsetType(_1_x) +} diff --git a/customer-preview/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbTypes/AwsCryptographyDbEncryptionSdkDynamoDbTypes.go b/customer-preview/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbTypes/AwsCryptographyDbEncryptionSdkDynamoDbTypes.go new file mode 100644 index 000000000..c7af0bd14 --- /dev/null +++ b/customer-preview/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbTypes/AwsCryptographyDbEncryptionSdkDynamoDbTypes.go @@ -0,0 +1,6428 @@ +// Package AwsCryptographyDbEncryptionSdkDynamoDbTypes +// Dafny module AwsCryptographyDbEncryptionSdkDynamoDbTypes compiled into Go + +package AwsCryptographyDbEncryptionSdkDynamoDbTypes + +import ( + os "os" + + m_ComAmazonawsDynamodbTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/ComAmazonawsDynamodbTypes" + m_Com_Amazonaws_Dynamodb "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/Com_Amazonaws_Dynamodb" + m_ComAmazonawsKmsTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/ComAmazonawsKmsTypes" + m_Com_Amazonaws_Kms "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/Com_Amazonaws_Kms" + m_AlgorithmSuites "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AlgorithmSuites" + m_AwsArnParsing "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsArnParsing" + m_AwsCryptographyKeyStoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreOperations" + m_AwsCryptographyKeyStoreTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreTypes" + m_AwsCryptographyMaterialProvidersOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersOperations" + m_AwsCryptographyMaterialProvidersTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersTypes" + m_AwsKmsDiscoveryKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsDiscoveryKeyring" + m_AwsKmsEcdhKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsEcdhKeyring" + m_AwsKmsHierarchicalKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsHierarchicalKeyring" + m_AwsKmsKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsKeyring" + m_AwsKmsMrkAreUnique "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkAreUnique" + m_AwsKmsMrkDiscoveryKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkDiscoveryKeyring" + m_AwsKmsMrkKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkKeyring" + m_AwsKmsMrkMatchForDecrypt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkMatchForDecrypt" + m_AwsKmsRsaKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsRsaKeyring" + m_AwsKmsUtils "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsUtils" + m_CMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CMM" + m_CacheConstants "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CacheConstants" + m_CanonicalEncryptionContext "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CanonicalEncryptionContext" + m_Commitment "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Commitment" + m_Constants "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Constants" + m_CreateKeyStoreTable "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeyStoreTable" + m_CreateKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeys" + m_DDBKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DDBKeystoreOperations" + m_DefaultCMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DefaultCMM" + m_DefaultClientSupplier "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DefaultClientSupplier" + m_Defaults "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Defaults" + m_DiscoveryMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DiscoveryMultiKeyring" + m_EcdhEdkWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/EcdhEdkWrapping" + m_EdkWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/EdkWrapping" + m_ErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/ErrorMessages" + m_GetKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/GetKeys" + m_IntermediateKeyWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/IntermediateKeyWrapping" + m_KMSKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KMSKeystoreOperations" + m_KeyStore "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStore" + m_KeyStoreErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStoreErrorMessages" + m_Keyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Keyring" + m_KmsArn "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KmsArn" + m_LocalCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/LocalCMC" + m_MaterialProviders "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MaterialProviders" + m_MaterialWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MaterialWrapping" + m_Materials "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Materials" + m_MrkAwareDiscoveryMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MrkAwareDiscoveryMultiKeyring" + m_MrkAwareStrictMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MrkAwareStrictMultiKeyring" + m_MultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MultiKeyring" + m_RawAESKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawAESKeyring" + m_RawECDHKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawECDHKeyring" + m_RawRSAKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawRSAKeyring" + m_RequiredEncryptionContextCMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RequiredEncryptionContextCMM" + m_StormTracker "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StormTracker" + m_StormTrackingCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StormTrackingCMC" + m_StrictMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StrictMultiKeyring" + m_Structure "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Structure" + m_SynchronizedLocalCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/SynchronizedLocalCMC" + m_Utils "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Utils" + m_AtomicPrimitives "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AtomicPrimitives" + m_AwsCryptographyPrimitivesOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesOperations" + m_AwsCryptographyPrimitivesTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesTypes" + m_Digest "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Digest" + m_HKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/HKDF" + m_KdfCtr "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/KdfCtr" + m_Random "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Random" + m_WrappedHKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHKDF" + m_WrappedHMAC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHMAC" + m_Actions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Actions" + m_Base64 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64" + m_Base64Lemmas "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64Lemmas" + m_BoundedInts "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/BoundedInts" + m_DivInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternals" + m_DivInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternalsNonlinear" + m_DivMod "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivMod" + m_FileIO "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FileIO" + m_FloatCompare "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FloatCompare" + m_Functions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Functions" + m_GeneralInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GeneralInternals" + m_GetOpt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GetOpt" + m_HexStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/HexStrings" + m_Logarithm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Logarithm" + m__Math "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Math_" + m_ModInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternals" + m_ModInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternalsNonlinear" + m_Mul "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Mul" + m_MulInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternals" + m_MulInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternalsNonlinear" + m_Power "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Power" + m_Relations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Relations" + m_Seq "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq" + m_Seq_MergeSort "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq_MergeSort" + m_Sorting "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Sorting" + m_StandardLibrary "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary" + m_StandardLibraryInterop "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibraryInterop" + m_StandardLibrary_Sequence "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_Sequence" + m_StandardLibrary_String "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_String" + m_StandardLibrary_UInt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_UInt" + m_Streams "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Streams" + m_UnicodeStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UnicodeStrings" + m__Unicode "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Unicode_" + m_Utf16EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf16EncodingForm" + m_Utf8EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf8EncodingForm" + m_Wrappers "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers" + m_AwsCryptographyDbEncryptionSdkStructuredEncryptionOperations "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkStructuredEncryptionOperations" + m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes" + m_Canonize "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/Canonize" + m__Maps "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/Maps_" + m_Sets "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/Sets" + m_SortCanon "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/SortCanon" + m_StructuredEncryption "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryption" + m_StructuredEncryptionCrypt "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionCrypt" + m_StructuredEncryptionFooter "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionFooter" + m_StructuredEncryptionHeader "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionHeader" + m_StructuredEncryptionPaths "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionPaths" + m_StructuredEncryptionUtil "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionUtil" + m__System "github.com/dafny-lang/DafnyRuntimeGo/v4/System_" + _dafny "github.com/dafny-lang/DafnyRuntimeGo/v4/dafny" +) + +var _ = os.Args +var _ _dafny.Dummy__ +var _ m__System.Dummy__ +var _ m_Wrappers.Dummy__ +var _ m_BoundedInts.Dummy__ +var _ m_StandardLibrary_UInt.Dummy__ +var _ m_StandardLibrary_Sequence.Dummy__ +var _ m_StandardLibrary_String.Dummy__ +var _ m_StandardLibrary.Dummy__ +var _ m_AwsCryptographyPrimitivesTypes.Dummy__ +var _ m_Random.Dummy__ +var _ m_Digest.Dummy__ +var _ m_WrappedHMAC.Dummy__ +var _ m_HKDF.Dummy__ +var _ m_WrappedHKDF.Dummy__ +var _ m_KdfCtr.Dummy__ +var _ m_AwsCryptographyPrimitivesOperations.Dummy__ +var _ m_AtomicPrimitives.Dummy__ +var _ m_ComAmazonawsDynamodbTypes.Dummy__ +var _ m_ComAmazonawsKmsTypes.Dummy__ +var _ m_AwsCryptographyKeyStoreTypes.Dummy__ +var _ m_AwsCryptographyMaterialProvidersTypes.Dummy__ +var _ m_Base64.Dummy__ +var _ m_AlgorithmSuites.Dummy__ +var _ m_Materials.Dummy__ +var _ m_Keyring.Dummy__ +var _ m_Relations.Dummy__ +var _ m_Seq_MergeSort.Dummy__ +var _ m__Math.Dummy__ +var _ m_Seq.Dummy__ +var _ m_MultiKeyring.Dummy__ +var _ m_AwsArnParsing.Dummy__ +var _ m_AwsKmsMrkAreUnique.Dummy__ +var _ m_Actions.Dummy__ +var _ m_AwsKmsMrkMatchForDecrypt.Dummy__ +var _ m_AwsKmsUtils.Dummy__ +var _ m_Constants.Dummy__ +var _ m_MaterialWrapping.Dummy__ +var _ m_CanonicalEncryptionContext.Dummy__ +var _ m_IntermediateKeyWrapping.Dummy__ +var _ m_EdkWrapping.Dummy__ +var _ m_ErrorMessages.Dummy__ +var _ m_AwsKmsKeyring.Dummy__ +var _ m_StrictMultiKeyring.Dummy__ +var _ m_AwsKmsDiscoveryKeyring.Dummy__ +var _ m_Com_Amazonaws_Kms.Dummy__ +var _ m_Com_Amazonaws_Dynamodb.Dummy__ +var _ m_DiscoveryMultiKeyring.Dummy__ +var _ m_AwsKmsMrkDiscoveryKeyring.Dummy__ +var _ m_MrkAwareDiscoveryMultiKeyring.Dummy__ +var _ m_AwsKmsMrkKeyring.Dummy__ +var _ m_MrkAwareStrictMultiKeyring.Dummy__ +var _ m_LocalCMC.Dummy__ +var _ m_SynchronizedLocalCMC.Dummy__ +var _ m_StormTracker.Dummy__ +var _ m_StormTrackingCMC.Dummy__ +var _ m_CacheConstants.Dummy__ +var _ m_AwsKmsHierarchicalKeyring.Dummy__ +var _ m_AwsKmsRsaKeyring.Dummy__ +var _ m_EcdhEdkWrapping.Dummy__ +var _ m_RawECDHKeyring.Dummy__ +var _ m_AwsKmsEcdhKeyring.Dummy__ +var _ m_RawAESKeyring.Dummy__ +var _ m_RawRSAKeyring.Dummy__ +var _ m_CMM.Dummy__ +var _ m_Defaults.Dummy__ +var _ m_Commitment.Dummy__ +var _ m_DefaultCMM.Dummy__ +var _ m_DefaultClientSupplier.Dummy__ +var _ m_Utils.Dummy__ +var _ m_RequiredEncryptionContextCMM.Dummy__ +var _ m_AwsCryptographyMaterialProvidersOperations.Dummy__ +var _ m_MaterialProviders.Dummy__ +var _ m_KeyStoreErrorMessages.Dummy__ +var _ m_KmsArn.Dummy__ +var _ m_Structure.Dummy__ +var _ m_KMSKeystoreOperations.Dummy__ +var _ m_DDBKeystoreOperations.Dummy__ +var _ m_CreateKeys.Dummy__ +var _ m_CreateKeyStoreTable.Dummy__ +var _ m_GetKeys.Dummy__ +var _ m_AwsCryptographyKeyStoreOperations.Dummy__ +var _ m_KeyStore.Dummy__ +var _ m__Unicode.Dummy__ +var _ m_Functions.Dummy__ +var _ m_Utf8EncodingForm.Dummy__ +var _ m_Utf16EncodingForm.Dummy__ +var _ m_UnicodeStrings.Dummy__ +var _ m_FileIO.Dummy__ +var _ m_GeneralInternals.Dummy__ +var _ m_MulInternalsNonlinear.Dummy__ +var _ m_MulInternals.Dummy__ +var _ m_Mul.Dummy__ +var _ m_ModInternalsNonlinear.Dummy__ +var _ m_DivInternalsNonlinear.Dummy__ +var _ m_ModInternals.Dummy__ +var _ m_DivInternals.Dummy__ +var _ m_DivMod.Dummy__ +var _ m_Power.Dummy__ +var _ m_Logarithm.Dummy__ +var _ m_StandardLibraryInterop.Dummy__ +var _ m_Streams.Dummy__ +var _ m_Sorting.Dummy__ +var _ m_HexStrings.Dummy__ +var _ m_GetOpt.Dummy__ +var _ m_FloatCompare.Dummy__ +var _ m_Base64Lemmas.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Dummy__ +var _ m_StructuredEncryptionUtil.Dummy__ +var _ m_Sets.Dummy__ +var _ m_StructuredEncryptionPaths.Dummy__ +var _ m_StructuredEncryptionHeader.Dummy__ +var _ m_StructuredEncryptionFooter.Dummy__ +var _ m_SortCanon.Dummy__ +var _ m_Canonize.Dummy__ +var _ m_StructuredEncryptionCrypt.Dummy__ +var _ m__Maps.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkStructuredEncryptionOperations.Dummy__ +var _ m_StructuredEncryption.Dummy__ + +type Dummy__ struct{} + +// Definition of class Default__ +type Default__ struct { + dummy byte +} + +func New_Default___() *Default__ { + _this := Default__{} + + return &_this +} + +type CompanionStruct_Default___ struct { +} + +var Companion_Default___ = CompanionStruct_Default___{} + +func (_this *Default__) Equals(other *Default__) bool { + return _this == other +} + +func (_this *Default__) EqualsGeneric(x interface{}) bool { + other, ok := x.(*Default__) + return ok && _this.Equals(other) +} + +func (*Default__) String() string { + return "AwsCryptographyDbEncryptionSdkDynamoDbTypes.Default__" +} +func (_this *Default__) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = &Default__{} + +func (_static *CompanionStruct_Default___) IsValid__BeaconBitLength(x int32) bool { + return ((int32(1)) <= (x)) && ((x) <= (int32(63))) +} +func (_static *CompanionStruct_Default___) IsValid__BeaconVersionList(x _dafny.Sequence) bool { + return ((_dafny.One).Cmp(_dafny.IntOfUint32((x).Cardinality())) <= 0) && ((_dafny.IntOfUint32((x).Cardinality())).Cmp(_dafny.One) <= 0) +} +func (_static *CompanionStruct_Default___) IsValid__Char(x _dafny.Sequence) bool { + return ((_dafny.One).Cmp(_dafny.IntOfUint32((x).Cardinality())) <= 0) && ((_dafny.IntOfUint32((x).Cardinality())).Cmp(_dafny.One) <= 0) +} +func (_static *CompanionStruct_Default___) IsValid__CompoundBeaconList(x _dafny.Sequence) bool { + return (_dafny.One).Cmp(_dafny.IntOfUint32((x).Cardinality())) <= 0 +} +func (_static *CompanionStruct_Default___) IsValid__ConstructorList(x _dafny.Sequence) bool { + return (_dafny.One).Cmp(_dafny.IntOfUint32((x).Cardinality())) <= 0 +} +func (_static *CompanionStruct_Default___) IsValid__ConstructorPartList(x _dafny.Sequence) bool { + return (_dafny.One).Cmp(_dafny.IntOfUint32((x).Cardinality())) <= 0 +} +func (_static *CompanionStruct_Default___) IsValid__EncryptedPartsList(x _dafny.Sequence) bool { + return (_dafny.One).Cmp(_dafny.IntOfUint32((x).Cardinality())) <= 0 +} +func (_static *CompanionStruct_Default___) IsValid__Prefix(x _dafny.Sequence) bool { + return (_dafny.One).Cmp(_dafny.IntOfUint32((x).Cardinality())) <= 0 +} +func (_static *CompanionStruct_Default___) IsValid__SignedPartsList(x _dafny.Sequence) bool { + return (_dafny.One).Cmp(_dafny.IntOfUint32((x).Cardinality())) <= 0 +} +func (_static *CompanionStruct_Default___) IsValid__StandardBeaconList(x _dafny.Sequence) bool { + return (_dafny.One).Cmp(_dafny.IntOfUint32((x).Cardinality())) <= 0 +} +func (_static *CompanionStruct_Default___) IsValid__TerminalLocation(x _dafny.Sequence) bool { + return (_dafny.One).Cmp(_dafny.IntOfUint32((x).Cardinality())) <= 0 +} +func (_static *CompanionStruct_Default___) IsValid__VersionNumber(x int32) bool { + return (int32(1)) <= (x) +} +func (_static *CompanionStruct_Default___) IsValid__VirtualFieldList(x _dafny.Sequence) bool { + return (_dafny.One).Cmp(_dafny.IntOfUint32((x).Cardinality())) <= 0 +} +func (_static *CompanionStruct_Default___) IsValid__VirtualPartList(x _dafny.Sequence) bool { + return (_dafny.One).Cmp(_dafny.IntOfUint32((x).Cardinality())) <= 0 +} +func (_static *CompanionStruct_Default___) IsValid__VirtualTransformList(x _dafny.Sequence) bool { + return (_dafny.One).Cmp(_dafny.IntOfUint32((x).Cardinality())) <= 0 +} +func (_static *CompanionStruct_Default___) IsDummySubsetType(x _dafny.Int) bool { + return (x).Sign() == 1 +} + +// End of class Default__ + +// Definition of datatype DafnyCallEvent +type DafnyCallEvent struct { + Data_DafnyCallEvent_ +} + +func (_this DafnyCallEvent) Get_() Data_DafnyCallEvent_ { + return _this.Data_DafnyCallEvent_ +} + +type Data_DafnyCallEvent_ interface { + isDafnyCallEvent() +} + +type CompanionStruct_DafnyCallEvent_ struct { +} + +var Companion_DafnyCallEvent_ = CompanionStruct_DafnyCallEvent_{} + +type DafnyCallEvent_DafnyCallEvent struct { + Input interface{} + Output interface{} +} + +func (DafnyCallEvent_DafnyCallEvent) isDafnyCallEvent() {} + +func (CompanionStruct_DafnyCallEvent_) Create_DafnyCallEvent_(Input interface{}, Output interface{}) DafnyCallEvent { + return DafnyCallEvent{DafnyCallEvent_DafnyCallEvent{Input, Output}} +} + +func (_this DafnyCallEvent) Is_DafnyCallEvent() bool { + _, ok := _this.Get_().(DafnyCallEvent_DafnyCallEvent) + return ok +} + +func (CompanionStruct_DafnyCallEvent_) Default(_default_I interface{}, _default_O interface{}) DafnyCallEvent { + return Companion_DafnyCallEvent_.Create_DafnyCallEvent_(_default_I, _default_O) +} + +func (_this DafnyCallEvent) Dtor_input() interface{} { + return _this.Get_().(DafnyCallEvent_DafnyCallEvent).Input +} + +func (_this DafnyCallEvent) Dtor_output() interface{} { + return _this.Get_().(DafnyCallEvent_DafnyCallEvent).Output +} + +func (_this DafnyCallEvent) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case DafnyCallEvent_DafnyCallEvent: + { + return "AwsCryptographyDbEncryptionSdkDynamoDbTypes.DafnyCallEvent.DafnyCallEvent" + "(" + _dafny.String(data.Input) + ", " + _dafny.String(data.Output) + ")" + } + default: + { + return "" + } + } +} + +func (_this DafnyCallEvent) Equals(other DafnyCallEvent) bool { + switch data1 := _this.Get_().(type) { + case DafnyCallEvent_DafnyCallEvent: + { + data2, ok := other.Get_().(DafnyCallEvent_DafnyCallEvent) + return ok && _dafny.AreEqual(data1.Input, data2.Input) && _dafny.AreEqual(data1.Output, data2.Output) + } + default: + { + return false // unexpected + } + } +} + +func (_this DafnyCallEvent) EqualsGeneric(other interface{}) bool { + typed, ok := other.(DafnyCallEvent) + return ok && _this.Equals(typed) +} + +func Type_DafnyCallEvent_(Type_I_ _dafny.TypeDescriptor, Type_O_ _dafny.TypeDescriptor) _dafny.TypeDescriptor { + return type_DafnyCallEvent_{Type_I_, Type_O_} +} + +type type_DafnyCallEvent_ struct { + Type_I_ _dafny.TypeDescriptor + Type_O_ _dafny.TypeDescriptor +} + +func (_this type_DafnyCallEvent_) Default() interface{} { + Type_I_ := _this.Type_I_ + _ = Type_I_ + Type_O_ := _this.Type_O_ + _ = Type_O_ + return Companion_DafnyCallEvent_.Default(Type_I_.Default(), Type_O_.Default()) +} + +func (_this type_DafnyCallEvent_) String() string { + return "AwsCryptographyDbEncryptionSdkDynamoDbTypes.DafnyCallEvent" +} +func (_this DafnyCallEvent) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = DafnyCallEvent{} + +// End of datatype DafnyCallEvent + +// Definition of datatype AsSet +type AsSet struct { + Data_AsSet_ +} + +func (_this AsSet) Get_() Data_AsSet_ { + return _this.Data_AsSet_ +} + +type Data_AsSet_ interface { + isAsSet() +} + +type CompanionStruct_AsSet_ struct { +} + +var Companion_AsSet_ = CompanionStruct_AsSet_{} + +type AsSet_AsSet struct { +} + +func (AsSet_AsSet) isAsSet() {} + +func (CompanionStruct_AsSet_) Create_AsSet_() AsSet { + return AsSet{AsSet_AsSet{}} +} + +func (_this AsSet) Is_AsSet() bool { + _, ok := _this.Get_().(AsSet_AsSet) + return ok +} + +func (CompanionStruct_AsSet_) Default() AsSet { + return Companion_AsSet_.Create_AsSet_() +} + +func (_ CompanionStruct_AsSet_) AllSingletonConstructors() _dafny.Iterator { + i := -1 + return func() (interface{}, bool) { + i++ + switch i { + case 0: + return Companion_AsSet_.Create_AsSet_(), true + default: + return AsSet{}, false + } + } +} + +func (_this AsSet) String() string { + switch _this.Get_().(type) { + case nil: + return "null" + case AsSet_AsSet: + { + return "AwsCryptographyDbEncryptionSdkDynamoDbTypes.AsSet.AsSet" + } + default: + { + return "" + } + } +} + +func (_this AsSet) Equals(other AsSet) bool { + switch _this.Get_().(type) { + case AsSet_AsSet: + { + _, ok := other.Get_().(AsSet_AsSet) + return ok + } + default: + { + return false // unexpected + } + } +} + +func (_this AsSet) EqualsGeneric(other interface{}) bool { + typed, ok := other.(AsSet) + return ok && _this.Equals(typed) +} + +func Type_AsSet_() _dafny.TypeDescriptor { + return type_AsSet_{} +} + +type type_AsSet_ struct { +} + +func (_this type_AsSet_) Default() interface{} { + return Companion_AsSet_.Default() +} + +func (_this type_AsSet_) String() string { + return "AwsCryptographyDbEncryptionSdkDynamoDbTypes.AsSet" +} +func (_this AsSet) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = AsSet{} + +// End of datatype AsSet + +// Definition of class BeaconBitLength +type BeaconBitLength struct { +} + +func New_BeaconBitLength_() *BeaconBitLength { + _this := BeaconBitLength{} + + return &_this +} + +type CompanionStruct_BeaconBitLength_ struct { +} + +var Companion_BeaconBitLength_ = CompanionStruct_BeaconBitLength_{} + +func (*BeaconBitLength) String() string { + return "AwsCryptographyDbEncryptionSdkDynamoDbTypes.BeaconBitLength" +} + +// End of class BeaconBitLength + +func Type_BeaconBitLength_() _dafny.TypeDescriptor { + return type_BeaconBitLength_{} +} + +type type_BeaconBitLength_ struct { +} + +func (_this type_BeaconBitLength_) Default() interface{} { + return int32(0) +} + +func (_this type_BeaconBitLength_) String() string { + return "AwsCryptographyDbEncryptionSdkDynamoDbTypes.BeaconBitLength" +} +func (_this *CompanionStruct_BeaconBitLength_) Is_(__source int32) bool { + var _0_x int32 = (__source) + _ = _0_x + if true { + return Companion_Default___.IsValid__BeaconBitLength(_0_x) + } + return false +} + +// Definition of datatype BeaconKeySource +type BeaconKeySource struct { + Data_BeaconKeySource_ +} + +func (_this BeaconKeySource) Get_() Data_BeaconKeySource_ { + return _this.Data_BeaconKeySource_ +} + +type Data_BeaconKeySource_ interface { + isBeaconKeySource() +} + +type CompanionStruct_BeaconKeySource_ struct { +} + +var Companion_BeaconKeySource_ = CompanionStruct_BeaconKeySource_{} + +type BeaconKeySource_single struct { + Single SingleKeyStore +} + +func (BeaconKeySource_single) isBeaconKeySource() {} + +func (CompanionStruct_BeaconKeySource_) Create_single_(Single SingleKeyStore) BeaconKeySource { + return BeaconKeySource{BeaconKeySource_single{Single}} +} + +func (_this BeaconKeySource) Is_single() bool { + _, ok := _this.Get_().(BeaconKeySource_single) + return ok +} + +type BeaconKeySource_multi struct { + Multi MultiKeyStore +} + +func (BeaconKeySource_multi) isBeaconKeySource() {} + +func (CompanionStruct_BeaconKeySource_) Create_multi_(Multi MultiKeyStore) BeaconKeySource { + return BeaconKeySource{BeaconKeySource_multi{Multi}} +} + +func (_this BeaconKeySource) Is_multi() bool { + _, ok := _this.Get_().(BeaconKeySource_multi) + return ok +} + +func (CompanionStruct_BeaconKeySource_) Default() BeaconKeySource { + return Companion_BeaconKeySource_.Create_single_(Companion_SingleKeyStore_.Default()) +} + +func (_this BeaconKeySource) Dtor_single() SingleKeyStore { + return _this.Get_().(BeaconKeySource_single).Single +} + +func (_this BeaconKeySource) Dtor_multi() MultiKeyStore { + return _this.Get_().(BeaconKeySource_multi).Multi +} + +func (_this BeaconKeySource) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case BeaconKeySource_single: + { + return "AwsCryptographyDbEncryptionSdkDynamoDbTypes.BeaconKeySource.single" + "(" + _dafny.String(data.Single) + ")" + } + case BeaconKeySource_multi: + { + return "AwsCryptographyDbEncryptionSdkDynamoDbTypes.BeaconKeySource.multi" + "(" + _dafny.String(data.Multi) + ")" + } + default: + { + return "" + } + } +} + +func (_this BeaconKeySource) Equals(other BeaconKeySource) bool { + switch data1 := _this.Get_().(type) { + case BeaconKeySource_single: + { + data2, ok := other.Get_().(BeaconKeySource_single) + return ok && data1.Single.Equals(data2.Single) + } + case BeaconKeySource_multi: + { + data2, ok := other.Get_().(BeaconKeySource_multi) + return ok && data1.Multi.Equals(data2.Multi) + } + default: + { + return false // unexpected + } + } +} + +func (_this BeaconKeySource) EqualsGeneric(other interface{}) bool { + typed, ok := other.(BeaconKeySource) + return ok && _this.Equals(typed) +} + +func Type_BeaconKeySource_() _dafny.TypeDescriptor { + return type_BeaconKeySource_{} +} + +type type_BeaconKeySource_ struct { +} + +func (_this type_BeaconKeySource_) Default() interface{} { + return Companion_BeaconKeySource_.Default() +} + +func (_this type_BeaconKeySource_) String() string { + return "AwsCryptographyDbEncryptionSdkDynamoDbTypes.BeaconKeySource" +} +func (_this BeaconKeySource) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = BeaconKeySource{} + +// End of datatype BeaconKeySource + +// Definition of datatype BeaconStyle +type BeaconStyle struct { + Data_BeaconStyle_ +} + +func (_this BeaconStyle) Get_() Data_BeaconStyle_ { + return _this.Data_BeaconStyle_ +} + +type Data_BeaconStyle_ interface { + isBeaconStyle() +} + +type CompanionStruct_BeaconStyle_ struct { +} + +var Companion_BeaconStyle_ = CompanionStruct_BeaconStyle_{} + +type BeaconStyle_partOnly struct { + PartOnly PartOnly +} + +func (BeaconStyle_partOnly) isBeaconStyle() {} + +func (CompanionStruct_BeaconStyle_) Create_partOnly_(PartOnly PartOnly) BeaconStyle { + return BeaconStyle{BeaconStyle_partOnly{PartOnly}} +} + +func (_this BeaconStyle) Is_partOnly() bool { + _, ok := _this.Get_().(BeaconStyle_partOnly) + return ok +} + +type BeaconStyle_shared struct { + Shared Shared +} + +func (BeaconStyle_shared) isBeaconStyle() {} + +func (CompanionStruct_BeaconStyle_) Create_shared_(Shared Shared) BeaconStyle { + return BeaconStyle{BeaconStyle_shared{Shared}} +} + +func (_this BeaconStyle) Is_shared() bool { + _, ok := _this.Get_().(BeaconStyle_shared) + return ok +} + +type BeaconStyle_asSet struct { + AsSet AsSet +} + +func (BeaconStyle_asSet) isBeaconStyle() {} + +func (CompanionStruct_BeaconStyle_) Create_asSet_(AsSet AsSet) BeaconStyle { + return BeaconStyle{BeaconStyle_asSet{AsSet}} +} + +func (_this BeaconStyle) Is_asSet() bool { + _, ok := _this.Get_().(BeaconStyle_asSet) + return ok +} + +type BeaconStyle_sharedSet struct { + SharedSet SharedSet +} + +func (BeaconStyle_sharedSet) isBeaconStyle() {} + +func (CompanionStruct_BeaconStyle_) Create_sharedSet_(SharedSet SharedSet) BeaconStyle { + return BeaconStyle{BeaconStyle_sharedSet{SharedSet}} +} + +func (_this BeaconStyle) Is_sharedSet() bool { + _, ok := _this.Get_().(BeaconStyle_sharedSet) + return ok +} + +func (CompanionStruct_BeaconStyle_) Default() BeaconStyle { + return Companion_BeaconStyle_.Create_partOnly_(Companion_PartOnly_.Default()) +} + +func (_this BeaconStyle) Dtor_partOnly() PartOnly { + return _this.Get_().(BeaconStyle_partOnly).PartOnly +} + +func (_this BeaconStyle) Dtor_shared() Shared { + return _this.Get_().(BeaconStyle_shared).Shared +} + +func (_this BeaconStyle) Dtor_asSet() AsSet { + return _this.Get_().(BeaconStyle_asSet).AsSet +} + +func (_this BeaconStyle) Dtor_sharedSet() SharedSet { + return _this.Get_().(BeaconStyle_sharedSet).SharedSet +} + +func (_this BeaconStyle) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case BeaconStyle_partOnly: + { + return "AwsCryptographyDbEncryptionSdkDynamoDbTypes.BeaconStyle.partOnly" + "(" + _dafny.String(data.PartOnly) + ")" + } + case BeaconStyle_shared: + { + return "AwsCryptographyDbEncryptionSdkDynamoDbTypes.BeaconStyle.shared" + "(" + _dafny.String(data.Shared) + ")" + } + case BeaconStyle_asSet: + { + return "AwsCryptographyDbEncryptionSdkDynamoDbTypes.BeaconStyle.asSet" + "(" + _dafny.String(data.AsSet) + ")" + } + case BeaconStyle_sharedSet: + { + return "AwsCryptographyDbEncryptionSdkDynamoDbTypes.BeaconStyle.sharedSet" + "(" + _dafny.String(data.SharedSet) + ")" + } + default: + { + return "" + } + } +} + +func (_this BeaconStyle) Equals(other BeaconStyle) bool { + switch data1 := _this.Get_().(type) { + case BeaconStyle_partOnly: + { + data2, ok := other.Get_().(BeaconStyle_partOnly) + return ok && data1.PartOnly.Equals(data2.PartOnly) + } + case BeaconStyle_shared: + { + data2, ok := other.Get_().(BeaconStyle_shared) + return ok && data1.Shared.Equals(data2.Shared) + } + case BeaconStyle_asSet: + { + data2, ok := other.Get_().(BeaconStyle_asSet) + return ok && data1.AsSet.Equals(data2.AsSet) + } + case BeaconStyle_sharedSet: + { + data2, ok := other.Get_().(BeaconStyle_sharedSet) + return ok && data1.SharedSet.Equals(data2.SharedSet) + } + default: + { + return false // unexpected + } + } +} + +func (_this BeaconStyle) EqualsGeneric(other interface{}) bool { + typed, ok := other.(BeaconStyle) + return ok && _this.Equals(typed) +} + +func Type_BeaconStyle_() _dafny.TypeDescriptor { + return type_BeaconStyle_{} +} + +type type_BeaconStyle_ struct { +} + +func (_this type_BeaconStyle_) Default() interface{} { + return Companion_BeaconStyle_.Default() +} + +func (_this type_BeaconStyle_) String() string { + return "AwsCryptographyDbEncryptionSdkDynamoDbTypes.BeaconStyle" +} +func (_this BeaconStyle) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = BeaconStyle{} + +// End of datatype BeaconStyle + +// Definition of datatype BeaconVersion +type BeaconVersion struct { + Data_BeaconVersion_ +} + +func (_this BeaconVersion) Get_() Data_BeaconVersion_ { + return _this.Data_BeaconVersion_ +} + +type Data_BeaconVersion_ interface { + isBeaconVersion() +} + +type CompanionStruct_BeaconVersion_ struct { +} + +var Companion_BeaconVersion_ = CompanionStruct_BeaconVersion_{} + +type BeaconVersion_BeaconVersion struct { + Version int32 + KeyStore m_AwsCryptographyKeyStoreTypes.IKeyStoreClient + KeySource BeaconKeySource + StandardBeacons _dafny.Sequence + CompoundBeacons m_Wrappers.Option + VirtualFields m_Wrappers.Option + EncryptedParts m_Wrappers.Option + SignedParts m_Wrappers.Option +} + +func (BeaconVersion_BeaconVersion) isBeaconVersion() {} + +func (CompanionStruct_BeaconVersion_) Create_BeaconVersion_(Version int32, KeyStore m_AwsCryptographyKeyStoreTypes.IKeyStoreClient, KeySource BeaconKeySource, StandardBeacons _dafny.Sequence, CompoundBeacons m_Wrappers.Option, VirtualFields m_Wrappers.Option, EncryptedParts m_Wrappers.Option, SignedParts m_Wrappers.Option) BeaconVersion { + return BeaconVersion{BeaconVersion_BeaconVersion{Version, KeyStore, KeySource, StandardBeacons, CompoundBeacons, VirtualFields, EncryptedParts, SignedParts}} +} + +func (_this BeaconVersion) Is_BeaconVersion() bool { + _, ok := _this.Get_().(BeaconVersion_BeaconVersion) + return ok +} + +func (CompanionStruct_BeaconVersion_) Default() BeaconVersion { + return Companion_BeaconVersion_.Create_BeaconVersion_(int32(0), (m_AwsCryptographyKeyStoreTypes.IKeyStoreClient)(nil), Companion_BeaconKeySource_.Default(), _dafny.EmptySeq, m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this BeaconVersion) Dtor_version() int32 { + return _this.Get_().(BeaconVersion_BeaconVersion).Version +} + +func (_this BeaconVersion) Dtor_keyStore() m_AwsCryptographyKeyStoreTypes.IKeyStoreClient { + return _this.Get_().(BeaconVersion_BeaconVersion).KeyStore +} + +func (_this BeaconVersion) Dtor_keySource() BeaconKeySource { + return _this.Get_().(BeaconVersion_BeaconVersion).KeySource +} + +func (_this BeaconVersion) Dtor_standardBeacons() _dafny.Sequence { + return _this.Get_().(BeaconVersion_BeaconVersion).StandardBeacons +} + +func (_this BeaconVersion) Dtor_compoundBeacons() m_Wrappers.Option { + return _this.Get_().(BeaconVersion_BeaconVersion).CompoundBeacons +} + +func (_this BeaconVersion) Dtor_virtualFields() m_Wrappers.Option { + return _this.Get_().(BeaconVersion_BeaconVersion).VirtualFields +} + +func (_this BeaconVersion) Dtor_encryptedParts() m_Wrappers.Option { + return _this.Get_().(BeaconVersion_BeaconVersion).EncryptedParts +} + +func (_this BeaconVersion) Dtor_signedParts() m_Wrappers.Option { + return _this.Get_().(BeaconVersion_BeaconVersion).SignedParts +} + +func (_this BeaconVersion) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case BeaconVersion_BeaconVersion: + { + return "AwsCryptographyDbEncryptionSdkDynamoDbTypes.BeaconVersion.BeaconVersion" + "(" + _dafny.String(data.Version) + ", " + _dafny.String(data.KeyStore) + ", " + _dafny.String(data.KeySource) + ", " + _dafny.String(data.StandardBeacons) + ", " + _dafny.String(data.CompoundBeacons) + ", " + _dafny.String(data.VirtualFields) + ", " + _dafny.String(data.EncryptedParts) + ", " + _dafny.String(data.SignedParts) + ")" + } + default: + { + return "" + } + } +} + +func (_this BeaconVersion) Equals(other BeaconVersion) bool { + switch data1 := _this.Get_().(type) { + case BeaconVersion_BeaconVersion: + { + data2, ok := other.Get_().(BeaconVersion_BeaconVersion) + return ok && data1.Version == data2.Version && _dafny.AreEqual(data1.KeyStore, data2.KeyStore) && data1.KeySource.Equals(data2.KeySource) && data1.StandardBeacons.Equals(data2.StandardBeacons) && data1.CompoundBeacons.Equals(data2.CompoundBeacons) && data1.VirtualFields.Equals(data2.VirtualFields) && data1.EncryptedParts.Equals(data2.EncryptedParts) && data1.SignedParts.Equals(data2.SignedParts) + } + default: + { + return false // unexpected + } + } +} + +func (_this BeaconVersion) EqualsGeneric(other interface{}) bool { + typed, ok := other.(BeaconVersion) + return ok && _this.Equals(typed) +} + +func Type_BeaconVersion_() _dafny.TypeDescriptor { + return type_BeaconVersion_{} +} + +type type_BeaconVersion_ struct { +} + +func (_this type_BeaconVersion_) Default() interface{} { + return Companion_BeaconVersion_.Default() +} + +func (_this type_BeaconVersion_) String() string { + return "AwsCryptographyDbEncryptionSdkDynamoDbTypes.BeaconVersion" +} +func (_this BeaconVersion) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = BeaconVersion{} + +// End of datatype BeaconVersion + +// Definition of class BeaconVersionList +type BeaconVersionList struct { +} + +func New_BeaconVersionList_() *BeaconVersionList { + _this := BeaconVersionList{} + + return &_this +} + +type CompanionStruct_BeaconVersionList_ struct { +} + +var Companion_BeaconVersionList_ = CompanionStruct_BeaconVersionList_{} + +func (*BeaconVersionList) String() string { + return "AwsCryptographyDbEncryptionSdkDynamoDbTypes.BeaconVersionList" +} + +// End of class BeaconVersionList + +func Type_BeaconVersionList_() _dafny.TypeDescriptor { + return type_BeaconVersionList_{} +} + +type type_BeaconVersionList_ struct { +} + +func (_this type_BeaconVersionList_) Default() interface{} { + return _dafny.EmptySeq +} + +func (_this type_BeaconVersionList_) String() string { + return "AwsCryptographyDbEncryptionSdkDynamoDbTypes.BeaconVersionList" +} +func (_this *CompanionStruct_BeaconVersionList_) Is_(__source _dafny.Sequence) bool { + var _1_x _dafny.Sequence = (__source) + _ = _1_x + return Companion_Default___.IsValid__BeaconVersionList(_1_x) +} + +// Definition of class Char +type Char struct { +} + +func New_Char_() *Char { + _this := Char{} + + return &_this +} + +type CompanionStruct_Char_ struct { +} + +var Companion_Char_ = CompanionStruct_Char_{} + +func (*Char) String() string { + return "AwsCryptographyDbEncryptionSdkDynamoDbTypes.Char" +} + +// End of class Char + +func Type_Char_() _dafny.TypeDescriptor { + return type_Char_{} +} + +type type_Char_ struct { +} + +func (_this type_Char_) Default() interface{} { + return _dafny.EmptySeq.SetString() +} + +func (_this type_Char_) String() string { + return "AwsCryptographyDbEncryptionSdkDynamoDbTypes.Char" +} +func (_this *CompanionStruct_Char_) Is_(__source _dafny.Sequence) bool { + var _2_x _dafny.Sequence = (__source) + _ = _2_x + return Companion_Default___.IsValid__Char(_2_x) +} + +// Definition of datatype CompoundBeacon +type CompoundBeacon struct { + Data_CompoundBeacon_ +} + +func (_this CompoundBeacon) Get_() Data_CompoundBeacon_ { + return _this.Data_CompoundBeacon_ +} + +type Data_CompoundBeacon_ interface { + isCompoundBeacon() +} + +type CompanionStruct_CompoundBeacon_ struct { +} + +var Companion_CompoundBeacon_ = CompanionStruct_CompoundBeacon_{} + +type CompoundBeacon_CompoundBeacon struct { + Name _dafny.Sequence + Split _dafny.Sequence + Encrypted m_Wrappers.Option + Signed m_Wrappers.Option + Constructors m_Wrappers.Option +} + +func (CompoundBeacon_CompoundBeacon) isCompoundBeacon() {} + +func (CompanionStruct_CompoundBeacon_) Create_CompoundBeacon_(Name _dafny.Sequence, Split _dafny.Sequence, Encrypted m_Wrappers.Option, Signed m_Wrappers.Option, Constructors m_Wrappers.Option) CompoundBeacon { + return CompoundBeacon{CompoundBeacon_CompoundBeacon{Name, Split, Encrypted, Signed, Constructors}} +} + +func (_this CompoundBeacon) Is_CompoundBeacon() bool { + _, ok := _this.Get_().(CompoundBeacon_CompoundBeacon) + return ok +} + +func (CompanionStruct_CompoundBeacon_) Default() CompoundBeacon { + return Companion_CompoundBeacon_.Create_CompoundBeacon_(_dafny.EmptySeq.SetString(), _dafny.EmptySeq.SetString(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this CompoundBeacon) Dtor_name() _dafny.Sequence { + return _this.Get_().(CompoundBeacon_CompoundBeacon).Name +} + +func (_this CompoundBeacon) Dtor_split() _dafny.Sequence { + return _this.Get_().(CompoundBeacon_CompoundBeacon).Split +} + +func (_this CompoundBeacon) Dtor_encrypted() m_Wrappers.Option { + return _this.Get_().(CompoundBeacon_CompoundBeacon).Encrypted +} + +func (_this CompoundBeacon) Dtor_signed() m_Wrappers.Option { + return _this.Get_().(CompoundBeacon_CompoundBeacon).Signed +} + +func (_this CompoundBeacon) Dtor_constructors() m_Wrappers.Option { + return _this.Get_().(CompoundBeacon_CompoundBeacon).Constructors +} + +func (_this CompoundBeacon) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case CompoundBeacon_CompoundBeacon: + { + return "AwsCryptographyDbEncryptionSdkDynamoDbTypes.CompoundBeacon.CompoundBeacon" + "(" + _dafny.String(data.Name) + ", " + _dafny.String(data.Split) + ", " + _dafny.String(data.Encrypted) + ", " + _dafny.String(data.Signed) + ", " + _dafny.String(data.Constructors) + ")" + } + default: + { + return "" + } + } +} + +func (_this CompoundBeacon) Equals(other CompoundBeacon) bool { + switch data1 := _this.Get_().(type) { + case CompoundBeacon_CompoundBeacon: + { + data2, ok := other.Get_().(CompoundBeacon_CompoundBeacon) + return ok && data1.Name.Equals(data2.Name) && data1.Split.Equals(data2.Split) && data1.Encrypted.Equals(data2.Encrypted) && data1.Signed.Equals(data2.Signed) && data1.Constructors.Equals(data2.Constructors) + } + default: + { + return false // unexpected + } + } +} + +func (_this CompoundBeacon) EqualsGeneric(other interface{}) bool { + typed, ok := other.(CompoundBeacon) + return ok && _this.Equals(typed) +} + +func Type_CompoundBeacon_() _dafny.TypeDescriptor { + return type_CompoundBeacon_{} +} + +type type_CompoundBeacon_ struct { +} + +func (_this type_CompoundBeacon_) Default() interface{} { + return Companion_CompoundBeacon_.Default() +} + +func (_this type_CompoundBeacon_) String() string { + return "AwsCryptographyDbEncryptionSdkDynamoDbTypes.CompoundBeacon" +} +func (_this CompoundBeacon) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = CompoundBeacon{} + +// End of datatype CompoundBeacon + +// Definition of class CompoundBeaconList +type CompoundBeaconList struct { +} + +func New_CompoundBeaconList_() *CompoundBeaconList { + _this := CompoundBeaconList{} + + return &_this +} + +type CompanionStruct_CompoundBeaconList_ struct { +} + +var Companion_CompoundBeaconList_ = CompanionStruct_CompoundBeaconList_{} + +func (*CompoundBeaconList) String() string { + return "AwsCryptographyDbEncryptionSdkDynamoDbTypes.CompoundBeaconList" +} + +// End of class CompoundBeaconList + +func Type_CompoundBeaconList_() _dafny.TypeDescriptor { + return type_CompoundBeaconList_{} +} + +type type_CompoundBeaconList_ struct { +} + +func (_this type_CompoundBeaconList_) Default() interface{} { + return _dafny.EmptySeq +} + +func (_this type_CompoundBeaconList_) String() string { + return "AwsCryptographyDbEncryptionSdkDynamoDbTypes.CompoundBeaconList" +} +func (_this *CompanionStruct_CompoundBeaconList_) Is_(__source _dafny.Sequence) bool { + var _3_x _dafny.Sequence = (__source) + _ = _3_x + return Companion_Default___.IsValid__CompoundBeaconList(_3_x) +} + +// Definition of datatype Constructor +type Constructor struct { + Data_Constructor_ +} + +func (_this Constructor) Get_() Data_Constructor_ { + return _this.Data_Constructor_ +} + +type Data_Constructor_ interface { + isConstructor() +} + +type CompanionStruct_Constructor_ struct { +} + +var Companion_Constructor_ = CompanionStruct_Constructor_{} + +type Constructor_Constructor struct { + Parts _dafny.Sequence +} + +func (Constructor_Constructor) isConstructor() {} + +func (CompanionStruct_Constructor_) Create_Constructor_(Parts _dafny.Sequence) Constructor { + return Constructor{Constructor_Constructor{Parts}} +} + +func (_this Constructor) Is_Constructor() bool { + _, ok := _this.Get_().(Constructor_Constructor) + return ok +} + +func (CompanionStruct_Constructor_) Default() Constructor { + return Companion_Constructor_.Create_Constructor_(_dafny.EmptySeq) +} + +func (_this Constructor) Dtor_parts() _dafny.Sequence { + return _this.Get_().(Constructor_Constructor).Parts +} + +func (_this Constructor) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case Constructor_Constructor: + { + return "AwsCryptographyDbEncryptionSdkDynamoDbTypes.Constructor.Constructor" + "(" + _dafny.String(data.Parts) + ")" + } + default: + { + return "" + } + } +} + +func (_this Constructor) Equals(other Constructor) bool { + switch data1 := _this.Get_().(type) { + case Constructor_Constructor: + { + data2, ok := other.Get_().(Constructor_Constructor) + return ok && data1.Parts.Equals(data2.Parts) + } + default: + { + return false // unexpected + } + } +} + +func (_this Constructor) EqualsGeneric(other interface{}) bool { + typed, ok := other.(Constructor) + return ok && _this.Equals(typed) +} + +func Type_Constructor_() _dafny.TypeDescriptor { + return type_Constructor_{} +} + +type type_Constructor_ struct { +} + +func (_this type_Constructor_) Default() interface{} { + return Companion_Constructor_.Default() +} + +func (_this type_Constructor_) String() string { + return "AwsCryptographyDbEncryptionSdkDynamoDbTypes.Constructor" +} +func (_this Constructor) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = Constructor{} + +// End of datatype Constructor + +// Definition of class ConstructorList +type ConstructorList struct { +} + +func New_ConstructorList_() *ConstructorList { + _this := ConstructorList{} + + return &_this +} + +type CompanionStruct_ConstructorList_ struct { +} + +var Companion_ConstructorList_ = CompanionStruct_ConstructorList_{} + +func (*ConstructorList) String() string { + return "AwsCryptographyDbEncryptionSdkDynamoDbTypes.ConstructorList" +} + +// End of class ConstructorList + +func Type_ConstructorList_() _dafny.TypeDescriptor { + return type_ConstructorList_{} +} + +type type_ConstructorList_ struct { +} + +func (_this type_ConstructorList_) Default() interface{} { + return _dafny.EmptySeq +} + +func (_this type_ConstructorList_) String() string { + return "AwsCryptographyDbEncryptionSdkDynamoDbTypes.ConstructorList" +} +func (_this *CompanionStruct_ConstructorList_) Is_(__source _dafny.Sequence) bool { + var _4_x _dafny.Sequence = (__source) + _ = _4_x + return Companion_Default___.IsValid__ConstructorList(_4_x) +} + +// Definition of datatype ConstructorPart +type ConstructorPart struct { + Data_ConstructorPart_ +} + +func (_this ConstructorPart) Get_() Data_ConstructorPart_ { + return _this.Data_ConstructorPart_ +} + +type Data_ConstructorPart_ interface { + isConstructorPart() +} + +type CompanionStruct_ConstructorPart_ struct { +} + +var Companion_ConstructorPart_ = CompanionStruct_ConstructorPart_{} + +type ConstructorPart_ConstructorPart struct { + Name _dafny.Sequence + Required bool +} + +func (ConstructorPart_ConstructorPart) isConstructorPart() {} + +func (CompanionStruct_ConstructorPart_) Create_ConstructorPart_(Name _dafny.Sequence, Required bool) ConstructorPart { + return ConstructorPart{ConstructorPart_ConstructorPart{Name, Required}} +} + +func (_this ConstructorPart) Is_ConstructorPart() bool { + _, ok := _this.Get_().(ConstructorPart_ConstructorPart) + return ok +} + +func (CompanionStruct_ConstructorPart_) Default() ConstructorPart { + return Companion_ConstructorPart_.Create_ConstructorPart_(_dafny.EmptySeq.SetString(), false) +} + +func (_this ConstructorPart) Dtor_name() _dafny.Sequence { + return _this.Get_().(ConstructorPart_ConstructorPart).Name +} + +func (_this ConstructorPart) Dtor_required() bool { + return _this.Get_().(ConstructorPart_ConstructorPart).Required +} + +func (_this ConstructorPart) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case ConstructorPart_ConstructorPart: + { + return "AwsCryptographyDbEncryptionSdkDynamoDbTypes.ConstructorPart.ConstructorPart" + "(" + _dafny.String(data.Name) + ", " + _dafny.String(data.Required) + ")" + } + default: + { + return "" + } + } +} + +func (_this ConstructorPart) Equals(other ConstructorPart) bool { + switch data1 := _this.Get_().(type) { + case ConstructorPart_ConstructorPart: + { + data2, ok := other.Get_().(ConstructorPart_ConstructorPart) + return ok && data1.Name.Equals(data2.Name) && data1.Required == data2.Required + } + default: + { + return false // unexpected + } + } +} + +func (_this ConstructorPart) EqualsGeneric(other interface{}) bool { + typed, ok := other.(ConstructorPart) + return ok && _this.Equals(typed) +} + +func Type_ConstructorPart_() _dafny.TypeDescriptor { + return type_ConstructorPart_{} +} + +type type_ConstructorPart_ struct { +} + +func (_this type_ConstructorPart_) Default() interface{} { + return Companion_ConstructorPart_.Default() +} + +func (_this type_ConstructorPart_) String() string { + return "AwsCryptographyDbEncryptionSdkDynamoDbTypes.ConstructorPart" +} +func (_this ConstructorPart) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = ConstructorPart{} + +// End of datatype ConstructorPart + +// Definition of class ConstructorPartList +type ConstructorPartList struct { +} + +func New_ConstructorPartList_() *ConstructorPartList { + _this := ConstructorPartList{} + + return &_this +} + +type CompanionStruct_ConstructorPartList_ struct { +} + +var Companion_ConstructorPartList_ = CompanionStruct_ConstructorPartList_{} + +func (*ConstructorPartList) String() string { + return "AwsCryptographyDbEncryptionSdkDynamoDbTypes.ConstructorPartList" +} + +// End of class ConstructorPartList + +func Type_ConstructorPartList_() _dafny.TypeDescriptor { + return type_ConstructorPartList_{} +} + +type type_ConstructorPartList_ struct { +} + +func (_this type_ConstructorPartList_) Default() interface{} { + return _dafny.EmptySeq +} + +func (_this type_ConstructorPartList_) String() string { + return "AwsCryptographyDbEncryptionSdkDynamoDbTypes.ConstructorPartList" +} +func (_this *CompanionStruct_ConstructorPartList_) Is_(__source _dafny.Sequence) bool { + var _5_x _dafny.Sequence = (__source) + _ = _5_x + return Companion_Default___.IsValid__ConstructorPartList(_5_x) +} + +// Definition of datatype CreateDynamoDbEncryptionBranchKeyIdSupplierInput +type CreateDynamoDbEncryptionBranchKeyIdSupplierInput struct { + Data_CreateDynamoDbEncryptionBranchKeyIdSupplierInput_ +} + +func (_this CreateDynamoDbEncryptionBranchKeyIdSupplierInput) Get_() Data_CreateDynamoDbEncryptionBranchKeyIdSupplierInput_ { + return _this.Data_CreateDynamoDbEncryptionBranchKeyIdSupplierInput_ +} + +type Data_CreateDynamoDbEncryptionBranchKeyIdSupplierInput_ interface { + isCreateDynamoDbEncryptionBranchKeyIdSupplierInput() +} + +type CompanionStruct_CreateDynamoDbEncryptionBranchKeyIdSupplierInput_ struct { +} + +var Companion_CreateDynamoDbEncryptionBranchKeyIdSupplierInput_ = CompanionStruct_CreateDynamoDbEncryptionBranchKeyIdSupplierInput_{} + +type CreateDynamoDbEncryptionBranchKeyIdSupplierInput_CreateDynamoDbEncryptionBranchKeyIdSupplierInput struct { + DdbKeyBranchKeyIdSupplier IDynamoDbKeyBranchKeyIdSupplier +} + +func (CreateDynamoDbEncryptionBranchKeyIdSupplierInput_CreateDynamoDbEncryptionBranchKeyIdSupplierInput) isCreateDynamoDbEncryptionBranchKeyIdSupplierInput() { +} + +func (CompanionStruct_CreateDynamoDbEncryptionBranchKeyIdSupplierInput_) Create_CreateDynamoDbEncryptionBranchKeyIdSupplierInput_(DdbKeyBranchKeyIdSupplier IDynamoDbKeyBranchKeyIdSupplier) CreateDynamoDbEncryptionBranchKeyIdSupplierInput { + return CreateDynamoDbEncryptionBranchKeyIdSupplierInput{CreateDynamoDbEncryptionBranchKeyIdSupplierInput_CreateDynamoDbEncryptionBranchKeyIdSupplierInput{DdbKeyBranchKeyIdSupplier}} +} + +func (_this CreateDynamoDbEncryptionBranchKeyIdSupplierInput) Is_CreateDynamoDbEncryptionBranchKeyIdSupplierInput() bool { + _, ok := _this.Get_().(CreateDynamoDbEncryptionBranchKeyIdSupplierInput_CreateDynamoDbEncryptionBranchKeyIdSupplierInput) + return ok +} + +func (CompanionStruct_CreateDynamoDbEncryptionBranchKeyIdSupplierInput_) Default() CreateDynamoDbEncryptionBranchKeyIdSupplierInput { + return Companion_CreateDynamoDbEncryptionBranchKeyIdSupplierInput_.Create_CreateDynamoDbEncryptionBranchKeyIdSupplierInput_((IDynamoDbKeyBranchKeyIdSupplier)(nil)) +} + +func (_this CreateDynamoDbEncryptionBranchKeyIdSupplierInput) Dtor_ddbKeyBranchKeyIdSupplier() IDynamoDbKeyBranchKeyIdSupplier { + return _this.Get_().(CreateDynamoDbEncryptionBranchKeyIdSupplierInput_CreateDynamoDbEncryptionBranchKeyIdSupplierInput).DdbKeyBranchKeyIdSupplier +} + +func (_this CreateDynamoDbEncryptionBranchKeyIdSupplierInput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case CreateDynamoDbEncryptionBranchKeyIdSupplierInput_CreateDynamoDbEncryptionBranchKeyIdSupplierInput: + { + return "AwsCryptographyDbEncryptionSdkDynamoDbTypes.CreateDynamoDbEncryptionBranchKeyIdSupplierInput.CreateDynamoDbEncryptionBranchKeyIdSupplierInput" + "(" + _dafny.String(data.DdbKeyBranchKeyIdSupplier) + ")" + } + default: + { + return "" + } + } +} + +func (_this CreateDynamoDbEncryptionBranchKeyIdSupplierInput) Equals(other CreateDynamoDbEncryptionBranchKeyIdSupplierInput) bool { + switch data1 := _this.Get_().(type) { + case CreateDynamoDbEncryptionBranchKeyIdSupplierInput_CreateDynamoDbEncryptionBranchKeyIdSupplierInput: + { + data2, ok := other.Get_().(CreateDynamoDbEncryptionBranchKeyIdSupplierInput_CreateDynamoDbEncryptionBranchKeyIdSupplierInput) + return ok && _dafny.AreEqual(data1.DdbKeyBranchKeyIdSupplier, data2.DdbKeyBranchKeyIdSupplier) + } + default: + { + return false // unexpected + } + } +} + +func (_this CreateDynamoDbEncryptionBranchKeyIdSupplierInput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(CreateDynamoDbEncryptionBranchKeyIdSupplierInput) + return ok && _this.Equals(typed) +} + +func Type_CreateDynamoDbEncryptionBranchKeyIdSupplierInput_() _dafny.TypeDescriptor { + return type_CreateDynamoDbEncryptionBranchKeyIdSupplierInput_{} +} + +type type_CreateDynamoDbEncryptionBranchKeyIdSupplierInput_ struct { +} + +func (_this type_CreateDynamoDbEncryptionBranchKeyIdSupplierInput_) Default() interface{} { + return Companion_CreateDynamoDbEncryptionBranchKeyIdSupplierInput_.Default() +} + +func (_this type_CreateDynamoDbEncryptionBranchKeyIdSupplierInput_) String() string { + return "AwsCryptographyDbEncryptionSdkDynamoDbTypes.CreateDynamoDbEncryptionBranchKeyIdSupplierInput" +} +func (_this CreateDynamoDbEncryptionBranchKeyIdSupplierInput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = CreateDynamoDbEncryptionBranchKeyIdSupplierInput{} + +// End of datatype CreateDynamoDbEncryptionBranchKeyIdSupplierInput + +// Definition of datatype CreateDynamoDbEncryptionBranchKeyIdSupplierOutput +type CreateDynamoDbEncryptionBranchKeyIdSupplierOutput struct { + Data_CreateDynamoDbEncryptionBranchKeyIdSupplierOutput_ +} + +func (_this CreateDynamoDbEncryptionBranchKeyIdSupplierOutput) Get_() Data_CreateDynamoDbEncryptionBranchKeyIdSupplierOutput_ { + return _this.Data_CreateDynamoDbEncryptionBranchKeyIdSupplierOutput_ +} + +type Data_CreateDynamoDbEncryptionBranchKeyIdSupplierOutput_ interface { + isCreateDynamoDbEncryptionBranchKeyIdSupplierOutput() +} + +type CompanionStruct_CreateDynamoDbEncryptionBranchKeyIdSupplierOutput_ struct { +} + +var Companion_CreateDynamoDbEncryptionBranchKeyIdSupplierOutput_ = CompanionStruct_CreateDynamoDbEncryptionBranchKeyIdSupplierOutput_{} + +type CreateDynamoDbEncryptionBranchKeyIdSupplierOutput_CreateDynamoDbEncryptionBranchKeyIdSupplierOutput struct { + BranchKeyIdSupplier m_AwsCryptographyMaterialProvidersTypes.IBranchKeyIdSupplier +} + +func (CreateDynamoDbEncryptionBranchKeyIdSupplierOutput_CreateDynamoDbEncryptionBranchKeyIdSupplierOutput) isCreateDynamoDbEncryptionBranchKeyIdSupplierOutput() { +} + +func (CompanionStruct_CreateDynamoDbEncryptionBranchKeyIdSupplierOutput_) Create_CreateDynamoDbEncryptionBranchKeyIdSupplierOutput_(BranchKeyIdSupplier m_AwsCryptographyMaterialProvidersTypes.IBranchKeyIdSupplier) CreateDynamoDbEncryptionBranchKeyIdSupplierOutput { + return CreateDynamoDbEncryptionBranchKeyIdSupplierOutput{CreateDynamoDbEncryptionBranchKeyIdSupplierOutput_CreateDynamoDbEncryptionBranchKeyIdSupplierOutput{BranchKeyIdSupplier}} +} + +func (_this CreateDynamoDbEncryptionBranchKeyIdSupplierOutput) Is_CreateDynamoDbEncryptionBranchKeyIdSupplierOutput() bool { + _, ok := _this.Get_().(CreateDynamoDbEncryptionBranchKeyIdSupplierOutput_CreateDynamoDbEncryptionBranchKeyIdSupplierOutput) + return ok +} + +func (CompanionStruct_CreateDynamoDbEncryptionBranchKeyIdSupplierOutput_) Default() CreateDynamoDbEncryptionBranchKeyIdSupplierOutput { + return Companion_CreateDynamoDbEncryptionBranchKeyIdSupplierOutput_.Create_CreateDynamoDbEncryptionBranchKeyIdSupplierOutput_((m_AwsCryptographyMaterialProvidersTypes.IBranchKeyIdSupplier)(nil)) +} + +func (_this CreateDynamoDbEncryptionBranchKeyIdSupplierOutput) Dtor_branchKeyIdSupplier() m_AwsCryptographyMaterialProvidersTypes.IBranchKeyIdSupplier { + return _this.Get_().(CreateDynamoDbEncryptionBranchKeyIdSupplierOutput_CreateDynamoDbEncryptionBranchKeyIdSupplierOutput).BranchKeyIdSupplier +} + +func (_this CreateDynamoDbEncryptionBranchKeyIdSupplierOutput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case CreateDynamoDbEncryptionBranchKeyIdSupplierOutput_CreateDynamoDbEncryptionBranchKeyIdSupplierOutput: + { + return "AwsCryptographyDbEncryptionSdkDynamoDbTypes.CreateDynamoDbEncryptionBranchKeyIdSupplierOutput.CreateDynamoDbEncryptionBranchKeyIdSupplierOutput" + "(" + _dafny.String(data.BranchKeyIdSupplier) + ")" + } + default: + { + return "" + } + } +} + +func (_this CreateDynamoDbEncryptionBranchKeyIdSupplierOutput) Equals(other CreateDynamoDbEncryptionBranchKeyIdSupplierOutput) bool { + switch data1 := _this.Get_().(type) { + case CreateDynamoDbEncryptionBranchKeyIdSupplierOutput_CreateDynamoDbEncryptionBranchKeyIdSupplierOutput: + { + data2, ok := other.Get_().(CreateDynamoDbEncryptionBranchKeyIdSupplierOutput_CreateDynamoDbEncryptionBranchKeyIdSupplierOutput) + return ok && _dafny.AreEqual(data1.BranchKeyIdSupplier, data2.BranchKeyIdSupplier) + } + default: + { + return false // unexpected + } + } +} + +func (_this CreateDynamoDbEncryptionBranchKeyIdSupplierOutput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(CreateDynamoDbEncryptionBranchKeyIdSupplierOutput) + return ok && _this.Equals(typed) +} + +func Type_CreateDynamoDbEncryptionBranchKeyIdSupplierOutput_() _dafny.TypeDescriptor { + return type_CreateDynamoDbEncryptionBranchKeyIdSupplierOutput_{} +} + +type type_CreateDynamoDbEncryptionBranchKeyIdSupplierOutput_ struct { +} + +func (_this type_CreateDynamoDbEncryptionBranchKeyIdSupplierOutput_) Default() interface{} { + return Companion_CreateDynamoDbEncryptionBranchKeyIdSupplierOutput_.Default() +} + +func (_this type_CreateDynamoDbEncryptionBranchKeyIdSupplierOutput_) String() string { + return "AwsCryptographyDbEncryptionSdkDynamoDbTypes.CreateDynamoDbEncryptionBranchKeyIdSupplierOutput" +} +func (_this CreateDynamoDbEncryptionBranchKeyIdSupplierOutput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = CreateDynamoDbEncryptionBranchKeyIdSupplierOutput{} + +// End of datatype CreateDynamoDbEncryptionBranchKeyIdSupplierOutput + +// Definition of class IDynamoDbEncryptionClientCallHistory +type IDynamoDbEncryptionClientCallHistory struct { + dummy byte +} + +func New_IDynamoDbEncryptionClientCallHistory_() *IDynamoDbEncryptionClientCallHistory { + _this := IDynamoDbEncryptionClientCallHistory{} + + return &_this +} + +type CompanionStruct_IDynamoDbEncryptionClientCallHistory_ struct { +} + +var Companion_IDynamoDbEncryptionClientCallHistory_ = CompanionStruct_IDynamoDbEncryptionClientCallHistory_{} + +func (_this *IDynamoDbEncryptionClientCallHistory) Equals(other *IDynamoDbEncryptionClientCallHistory) bool { + return _this == other +} + +func (_this *IDynamoDbEncryptionClientCallHistory) EqualsGeneric(x interface{}) bool { + other, ok := x.(*IDynamoDbEncryptionClientCallHistory) + return ok && _this.Equals(other) +} + +func (*IDynamoDbEncryptionClientCallHistory) String() string { + return "AwsCryptographyDbEncryptionSdkDynamoDbTypes.IDynamoDbEncryptionClientCallHistory" +} + +func Type_IDynamoDbEncryptionClientCallHistory_() _dafny.TypeDescriptor { + return type_IDynamoDbEncryptionClientCallHistory_{} +} + +type type_IDynamoDbEncryptionClientCallHistory_ struct { +} + +func (_this type_IDynamoDbEncryptionClientCallHistory_) Default() interface{} { + return (*IDynamoDbEncryptionClientCallHistory)(nil) +} + +func (_this type_IDynamoDbEncryptionClientCallHistory_) String() string { + return "AwsCryptographyDbEncryptionSdkDynamoDbTypes.IDynamoDbEncryptionClientCallHistory" +} +func (_this *IDynamoDbEncryptionClientCallHistory) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = &IDynamoDbEncryptionClientCallHistory{} + +// End of class IDynamoDbEncryptionClientCallHistory + +// Definition of trait IDynamoDbEncryptionClient +type IDynamoDbEncryptionClient interface { + String() string + CreateDynamoDbEncryptionBranchKeyIdSupplier(input CreateDynamoDbEncryptionBranchKeyIdSupplierInput) m_Wrappers.Result + GetEncryptedDataKeyDescription(input GetEncryptedDataKeyDescriptionInput) m_Wrappers.Result +} +type CompanionStruct_IDynamoDbEncryptionClient_ struct { + TraitID_ *_dafny.TraitID +} + +var Companion_IDynamoDbEncryptionClient_ = CompanionStruct_IDynamoDbEncryptionClient_{ + TraitID_: &_dafny.TraitID{}, +} + +func (CompanionStruct_IDynamoDbEncryptionClient_) CastTo_(x interface{}) IDynamoDbEncryptionClient { + var t IDynamoDbEncryptionClient + t, _ = x.(IDynamoDbEncryptionClient) + return t +} + +// End of trait IDynamoDbEncryptionClient + +// Definition of datatype DynamoDbEncryptionConfig +type DynamoDbEncryptionConfig struct { + Data_DynamoDbEncryptionConfig_ +} + +func (_this DynamoDbEncryptionConfig) Get_() Data_DynamoDbEncryptionConfig_ { + return _this.Data_DynamoDbEncryptionConfig_ +} + +type Data_DynamoDbEncryptionConfig_ interface { + isDynamoDbEncryptionConfig() +} + +type CompanionStruct_DynamoDbEncryptionConfig_ struct { +} + +var Companion_DynamoDbEncryptionConfig_ = CompanionStruct_DynamoDbEncryptionConfig_{} + +type DynamoDbEncryptionConfig_DynamoDbEncryptionConfig struct { +} + +func (DynamoDbEncryptionConfig_DynamoDbEncryptionConfig) isDynamoDbEncryptionConfig() {} + +func (CompanionStruct_DynamoDbEncryptionConfig_) Create_DynamoDbEncryptionConfig_() DynamoDbEncryptionConfig { + return DynamoDbEncryptionConfig{DynamoDbEncryptionConfig_DynamoDbEncryptionConfig{}} +} + +func (_this DynamoDbEncryptionConfig) Is_DynamoDbEncryptionConfig() bool { + _, ok := _this.Get_().(DynamoDbEncryptionConfig_DynamoDbEncryptionConfig) + return ok +} + +func (CompanionStruct_DynamoDbEncryptionConfig_) Default() DynamoDbEncryptionConfig { + return Companion_DynamoDbEncryptionConfig_.Create_DynamoDbEncryptionConfig_() +} + +func (_ CompanionStruct_DynamoDbEncryptionConfig_) AllSingletonConstructors() _dafny.Iterator { + i := -1 + return func() (interface{}, bool) { + i++ + switch i { + case 0: + return Companion_DynamoDbEncryptionConfig_.Create_DynamoDbEncryptionConfig_(), true + default: + return DynamoDbEncryptionConfig{}, false + } + } +} + +func (_this DynamoDbEncryptionConfig) String() string { + switch _this.Get_().(type) { + case nil: + return "null" + case DynamoDbEncryptionConfig_DynamoDbEncryptionConfig: + { + return "AwsCryptographyDbEncryptionSdkDynamoDbTypes.DynamoDbEncryptionConfig.DynamoDbEncryptionConfig" + } + default: + { + return "" + } + } +} + +func (_this DynamoDbEncryptionConfig) Equals(other DynamoDbEncryptionConfig) bool { + switch _this.Get_().(type) { + case DynamoDbEncryptionConfig_DynamoDbEncryptionConfig: + { + _, ok := other.Get_().(DynamoDbEncryptionConfig_DynamoDbEncryptionConfig) + return ok + } + default: + { + return false // unexpected + } + } +} + +func (_this DynamoDbEncryptionConfig) EqualsGeneric(other interface{}) bool { + typed, ok := other.(DynamoDbEncryptionConfig) + return ok && _this.Equals(typed) +} + +func Type_DynamoDbEncryptionConfig_() _dafny.TypeDescriptor { + return type_DynamoDbEncryptionConfig_{} +} + +type type_DynamoDbEncryptionConfig_ struct { +} + +func (_this type_DynamoDbEncryptionConfig_) Default() interface{} { + return Companion_DynamoDbEncryptionConfig_.Default() +} + +func (_this type_DynamoDbEncryptionConfig_) String() string { + return "AwsCryptographyDbEncryptionSdkDynamoDbTypes.DynamoDbEncryptionConfig" +} +func (_this DynamoDbEncryptionConfig) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = DynamoDbEncryptionConfig{} + +// End of datatype DynamoDbEncryptionConfig + +// Definition of class IDynamoDbKeyBranchKeyIdSupplierCallHistory +type IDynamoDbKeyBranchKeyIdSupplierCallHistory struct { + dummy byte +} + +func New_IDynamoDbKeyBranchKeyIdSupplierCallHistory_() *IDynamoDbKeyBranchKeyIdSupplierCallHistory { + _this := IDynamoDbKeyBranchKeyIdSupplierCallHistory{} + + return &_this +} + +type CompanionStruct_IDynamoDbKeyBranchKeyIdSupplierCallHistory_ struct { +} + +var Companion_IDynamoDbKeyBranchKeyIdSupplierCallHistory_ = CompanionStruct_IDynamoDbKeyBranchKeyIdSupplierCallHistory_{} + +func (_this *IDynamoDbKeyBranchKeyIdSupplierCallHistory) Equals(other *IDynamoDbKeyBranchKeyIdSupplierCallHistory) bool { + return _this == other +} + +func (_this *IDynamoDbKeyBranchKeyIdSupplierCallHistory) EqualsGeneric(x interface{}) bool { + other, ok := x.(*IDynamoDbKeyBranchKeyIdSupplierCallHistory) + return ok && _this.Equals(other) +} + +func (*IDynamoDbKeyBranchKeyIdSupplierCallHistory) String() string { + return "AwsCryptographyDbEncryptionSdkDynamoDbTypes.IDynamoDbKeyBranchKeyIdSupplierCallHistory" +} + +func Type_IDynamoDbKeyBranchKeyIdSupplierCallHistory_() _dafny.TypeDescriptor { + return type_IDynamoDbKeyBranchKeyIdSupplierCallHistory_{} +} + +type type_IDynamoDbKeyBranchKeyIdSupplierCallHistory_ struct { +} + +func (_this type_IDynamoDbKeyBranchKeyIdSupplierCallHistory_) Default() interface{} { + return (*IDynamoDbKeyBranchKeyIdSupplierCallHistory)(nil) +} + +func (_this type_IDynamoDbKeyBranchKeyIdSupplierCallHistory_) String() string { + return "AwsCryptographyDbEncryptionSdkDynamoDbTypes.IDynamoDbKeyBranchKeyIdSupplierCallHistory" +} +func (_this *IDynamoDbKeyBranchKeyIdSupplierCallHistory) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = &IDynamoDbKeyBranchKeyIdSupplierCallHistory{} + +// End of class IDynamoDbKeyBranchKeyIdSupplierCallHistory + +// Definition of trait IDynamoDbKeyBranchKeyIdSupplier +type IDynamoDbKeyBranchKeyIdSupplier interface { + String() string + GetBranchKeyIdFromDdbKey(input GetBranchKeyIdFromDdbKeyInput) m_Wrappers.Result + GetBranchKeyIdFromDdbKey_k(input GetBranchKeyIdFromDdbKeyInput) m_Wrappers.Result +} + +func (_static *CompanionStruct_IDynamoDbKeyBranchKeyIdSupplier_) GetBranchKeyIdFromDdbKey(_this IDynamoDbKeyBranchKeyIdSupplier, input GetBranchKeyIdFromDdbKeyInput) m_Wrappers.Result { + { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(Companion_GetBranchKeyIdFromDdbKeyOutput_.Default()) + _ = output + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = (_this).GetBranchKeyIdFromDdbKey_k(input) + output = _out0 + return output + } +} + +type CompanionStruct_IDynamoDbKeyBranchKeyIdSupplier_ struct { + TraitID_ *_dafny.TraitID +} + +var Companion_IDynamoDbKeyBranchKeyIdSupplier_ = CompanionStruct_IDynamoDbKeyBranchKeyIdSupplier_{ + TraitID_: &_dafny.TraitID{}, +} + +func (CompanionStruct_IDynamoDbKeyBranchKeyIdSupplier_) CastTo_(x interface{}) IDynamoDbKeyBranchKeyIdSupplier { + var t IDynamoDbKeyBranchKeyIdSupplier + t, _ = x.(IDynamoDbKeyBranchKeyIdSupplier) + return t +} + +// End of trait IDynamoDbKeyBranchKeyIdSupplier + +// Definition of datatype DynamoDbTableEncryptionConfig +type DynamoDbTableEncryptionConfig struct { + Data_DynamoDbTableEncryptionConfig_ +} + +func (_this DynamoDbTableEncryptionConfig) Get_() Data_DynamoDbTableEncryptionConfig_ { + return _this.Data_DynamoDbTableEncryptionConfig_ +} + +type Data_DynamoDbTableEncryptionConfig_ interface { + isDynamoDbTableEncryptionConfig() +} + +type CompanionStruct_DynamoDbTableEncryptionConfig_ struct { +} + +var Companion_DynamoDbTableEncryptionConfig_ = CompanionStruct_DynamoDbTableEncryptionConfig_{} + +type DynamoDbTableEncryptionConfig_DynamoDbTableEncryptionConfig struct { + LogicalTableName _dafny.Sequence + PartitionKeyName _dafny.Sequence + SortKeyName m_Wrappers.Option + Search m_Wrappers.Option + AttributeActionsOnEncrypt _dafny.Map + AllowedUnsignedAttributes m_Wrappers.Option + AllowedUnsignedAttributePrefix m_Wrappers.Option + AlgorithmSuiteId m_Wrappers.Option + Keyring m_Wrappers.Option + Cmm m_Wrappers.Option + LegacyOverride m_Wrappers.Option + PlaintextOverride m_Wrappers.Option +} + +func (DynamoDbTableEncryptionConfig_DynamoDbTableEncryptionConfig) isDynamoDbTableEncryptionConfig() { +} + +func (CompanionStruct_DynamoDbTableEncryptionConfig_) Create_DynamoDbTableEncryptionConfig_(LogicalTableName _dafny.Sequence, PartitionKeyName _dafny.Sequence, SortKeyName m_Wrappers.Option, Search m_Wrappers.Option, AttributeActionsOnEncrypt _dafny.Map, AllowedUnsignedAttributes m_Wrappers.Option, AllowedUnsignedAttributePrefix m_Wrappers.Option, AlgorithmSuiteId m_Wrappers.Option, Keyring m_Wrappers.Option, Cmm m_Wrappers.Option, LegacyOverride m_Wrappers.Option, PlaintextOverride m_Wrappers.Option) DynamoDbTableEncryptionConfig { + return DynamoDbTableEncryptionConfig{DynamoDbTableEncryptionConfig_DynamoDbTableEncryptionConfig{LogicalTableName, PartitionKeyName, SortKeyName, Search, AttributeActionsOnEncrypt, AllowedUnsignedAttributes, AllowedUnsignedAttributePrefix, AlgorithmSuiteId, Keyring, Cmm, LegacyOverride, PlaintextOverride}} +} + +func (_this DynamoDbTableEncryptionConfig) Is_DynamoDbTableEncryptionConfig() bool { + _, ok := _this.Get_().(DynamoDbTableEncryptionConfig_DynamoDbTableEncryptionConfig) + return ok +} + +func (CompanionStruct_DynamoDbTableEncryptionConfig_) Default() DynamoDbTableEncryptionConfig { + return Companion_DynamoDbTableEncryptionConfig_.Create_DynamoDbTableEncryptionConfig_(_dafny.EmptySeq.SetString(), _dafny.EmptySeq.SetString(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), _dafny.EmptyMap, m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this DynamoDbTableEncryptionConfig) Dtor_logicalTableName() _dafny.Sequence { + return _this.Get_().(DynamoDbTableEncryptionConfig_DynamoDbTableEncryptionConfig).LogicalTableName +} + +func (_this DynamoDbTableEncryptionConfig) Dtor_partitionKeyName() _dafny.Sequence { + return _this.Get_().(DynamoDbTableEncryptionConfig_DynamoDbTableEncryptionConfig).PartitionKeyName +} + +func (_this DynamoDbTableEncryptionConfig) Dtor_sortKeyName() m_Wrappers.Option { + return _this.Get_().(DynamoDbTableEncryptionConfig_DynamoDbTableEncryptionConfig).SortKeyName +} + +func (_this DynamoDbTableEncryptionConfig) Dtor_search() m_Wrappers.Option { + return _this.Get_().(DynamoDbTableEncryptionConfig_DynamoDbTableEncryptionConfig).Search +} + +func (_this DynamoDbTableEncryptionConfig) Dtor_attributeActionsOnEncrypt() _dafny.Map { + return _this.Get_().(DynamoDbTableEncryptionConfig_DynamoDbTableEncryptionConfig).AttributeActionsOnEncrypt +} + +func (_this DynamoDbTableEncryptionConfig) Dtor_allowedUnsignedAttributes() m_Wrappers.Option { + return _this.Get_().(DynamoDbTableEncryptionConfig_DynamoDbTableEncryptionConfig).AllowedUnsignedAttributes +} + +func (_this DynamoDbTableEncryptionConfig) Dtor_allowedUnsignedAttributePrefix() m_Wrappers.Option { + return _this.Get_().(DynamoDbTableEncryptionConfig_DynamoDbTableEncryptionConfig).AllowedUnsignedAttributePrefix +} + +func (_this DynamoDbTableEncryptionConfig) Dtor_algorithmSuiteId() m_Wrappers.Option { + return _this.Get_().(DynamoDbTableEncryptionConfig_DynamoDbTableEncryptionConfig).AlgorithmSuiteId +} + +func (_this DynamoDbTableEncryptionConfig) Dtor_keyring() m_Wrappers.Option { + return _this.Get_().(DynamoDbTableEncryptionConfig_DynamoDbTableEncryptionConfig).Keyring +} + +func (_this DynamoDbTableEncryptionConfig) Dtor_cmm() m_Wrappers.Option { + return _this.Get_().(DynamoDbTableEncryptionConfig_DynamoDbTableEncryptionConfig).Cmm +} + +func (_this DynamoDbTableEncryptionConfig) Dtor_legacyOverride() m_Wrappers.Option { + return _this.Get_().(DynamoDbTableEncryptionConfig_DynamoDbTableEncryptionConfig).LegacyOverride +} + +func (_this DynamoDbTableEncryptionConfig) Dtor_plaintextOverride() m_Wrappers.Option { + return _this.Get_().(DynamoDbTableEncryptionConfig_DynamoDbTableEncryptionConfig).PlaintextOverride +} + +func (_this DynamoDbTableEncryptionConfig) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case DynamoDbTableEncryptionConfig_DynamoDbTableEncryptionConfig: + { + return "AwsCryptographyDbEncryptionSdkDynamoDbTypes.DynamoDbTableEncryptionConfig.DynamoDbTableEncryptionConfig" + "(" + _dafny.String(data.LogicalTableName) + ", " + _dafny.String(data.PartitionKeyName) + ", " + _dafny.String(data.SortKeyName) + ", " + _dafny.String(data.Search) + ", " + _dafny.String(data.AttributeActionsOnEncrypt) + ", " + _dafny.String(data.AllowedUnsignedAttributes) + ", " + _dafny.String(data.AllowedUnsignedAttributePrefix) + ", " + _dafny.String(data.AlgorithmSuiteId) + ", " + _dafny.String(data.Keyring) + ", " + _dafny.String(data.Cmm) + ", " + _dafny.String(data.LegacyOverride) + ", " + _dafny.String(data.PlaintextOverride) + ")" + } + default: + { + return "" + } + } +} + +func (_this DynamoDbTableEncryptionConfig) Equals(other DynamoDbTableEncryptionConfig) bool { + switch data1 := _this.Get_().(type) { + case DynamoDbTableEncryptionConfig_DynamoDbTableEncryptionConfig: + { + data2, ok := other.Get_().(DynamoDbTableEncryptionConfig_DynamoDbTableEncryptionConfig) + return ok && data1.LogicalTableName.Equals(data2.LogicalTableName) && data1.PartitionKeyName.Equals(data2.PartitionKeyName) && data1.SortKeyName.Equals(data2.SortKeyName) && data1.Search.Equals(data2.Search) && data1.AttributeActionsOnEncrypt.Equals(data2.AttributeActionsOnEncrypt) && data1.AllowedUnsignedAttributes.Equals(data2.AllowedUnsignedAttributes) && data1.AllowedUnsignedAttributePrefix.Equals(data2.AllowedUnsignedAttributePrefix) && data1.AlgorithmSuiteId.Equals(data2.AlgorithmSuiteId) && data1.Keyring.Equals(data2.Keyring) && data1.Cmm.Equals(data2.Cmm) && data1.LegacyOverride.Equals(data2.LegacyOverride) && data1.PlaintextOverride.Equals(data2.PlaintextOverride) + } + default: + { + return false // unexpected + } + } +} + +func (_this DynamoDbTableEncryptionConfig) EqualsGeneric(other interface{}) bool { + typed, ok := other.(DynamoDbTableEncryptionConfig) + return ok && _this.Equals(typed) +} + +func Type_DynamoDbTableEncryptionConfig_() _dafny.TypeDescriptor { + return type_DynamoDbTableEncryptionConfig_{} +} + +type type_DynamoDbTableEncryptionConfig_ struct { +} + +func (_this type_DynamoDbTableEncryptionConfig_) Default() interface{} { + return Companion_DynamoDbTableEncryptionConfig_.Default() +} + +func (_this type_DynamoDbTableEncryptionConfig_) String() string { + return "AwsCryptographyDbEncryptionSdkDynamoDbTypes.DynamoDbTableEncryptionConfig" +} +func (_this DynamoDbTableEncryptionConfig) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = DynamoDbTableEncryptionConfig{} + +// End of datatype DynamoDbTableEncryptionConfig + +// Definition of datatype DynamoDbTablesEncryptionConfig +type DynamoDbTablesEncryptionConfig struct { + Data_DynamoDbTablesEncryptionConfig_ +} + +func (_this DynamoDbTablesEncryptionConfig) Get_() Data_DynamoDbTablesEncryptionConfig_ { + return _this.Data_DynamoDbTablesEncryptionConfig_ +} + +type Data_DynamoDbTablesEncryptionConfig_ interface { + isDynamoDbTablesEncryptionConfig() +} + +type CompanionStruct_DynamoDbTablesEncryptionConfig_ struct { +} + +var Companion_DynamoDbTablesEncryptionConfig_ = CompanionStruct_DynamoDbTablesEncryptionConfig_{} + +type DynamoDbTablesEncryptionConfig_DynamoDbTablesEncryptionConfig struct { + TableEncryptionConfigs _dafny.Map +} + +func (DynamoDbTablesEncryptionConfig_DynamoDbTablesEncryptionConfig) isDynamoDbTablesEncryptionConfig() { +} + +func (CompanionStruct_DynamoDbTablesEncryptionConfig_) Create_DynamoDbTablesEncryptionConfig_(TableEncryptionConfigs _dafny.Map) DynamoDbTablesEncryptionConfig { + return DynamoDbTablesEncryptionConfig{DynamoDbTablesEncryptionConfig_DynamoDbTablesEncryptionConfig{TableEncryptionConfigs}} +} + +func (_this DynamoDbTablesEncryptionConfig) Is_DynamoDbTablesEncryptionConfig() bool { + _, ok := _this.Get_().(DynamoDbTablesEncryptionConfig_DynamoDbTablesEncryptionConfig) + return ok +} + +func (CompanionStruct_DynamoDbTablesEncryptionConfig_) Default() DynamoDbTablesEncryptionConfig { + return Companion_DynamoDbTablesEncryptionConfig_.Create_DynamoDbTablesEncryptionConfig_(_dafny.EmptyMap) +} + +func (_this DynamoDbTablesEncryptionConfig) Dtor_tableEncryptionConfigs() _dafny.Map { + return _this.Get_().(DynamoDbTablesEncryptionConfig_DynamoDbTablesEncryptionConfig).TableEncryptionConfigs +} + +func (_this DynamoDbTablesEncryptionConfig) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case DynamoDbTablesEncryptionConfig_DynamoDbTablesEncryptionConfig: + { + return "AwsCryptographyDbEncryptionSdkDynamoDbTypes.DynamoDbTablesEncryptionConfig.DynamoDbTablesEncryptionConfig" + "(" + _dafny.String(data.TableEncryptionConfigs) + ")" + } + default: + { + return "" + } + } +} + +func (_this DynamoDbTablesEncryptionConfig) Equals(other DynamoDbTablesEncryptionConfig) bool { + switch data1 := _this.Get_().(type) { + case DynamoDbTablesEncryptionConfig_DynamoDbTablesEncryptionConfig: + { + data2, ok := other.Get_().(DynamoDbTablesEncryptionConfig_DynamoDbTablesEncryptionConfig) + return ok && data1.TableEncryptionConfigs.Equals(data2.TableEncryptionConfigs) + } + default: + { + return false // unexpected + } + } +} + +func (_this DynamoDbTablesEncryptionConfig) EqualsGeneric(other interface{}) bool { + typed, ok := other.(DynamoDbTablesEncryptionConfig) + return ok && _this.Equals(typed) +} + +func Type_DynamoDbTablesEncryptionConfig_() _dafny.TypeDescriptor { + return type_DynamoDbTablesEncryptionConfig_{} +} + +type type_DynamoDbTablesEncryptionConfig_ struct { +} + +func (_this type_DynamoDbTablesEncryptionConfig_) Default() interface{} { + return Companion_DynamoDbTablesEncryptionConfig_.Default() +} + +func (_this type_DynamoDbTablesEncryptionConfig_) String() string { + return "AwsCryptographyDbEncryptionSdkDynamoDbTypes.DynamoDbTablesEncryptionConfig" +} +func (_this DynamoDbTablesEncryptionConfig) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = DynamoDbTablesEncryptionConfig{} + +// End of datatype DynamoDbTablesEncryptionConfig + +// Definition of datatype EncryptedDataKeyDescription +type EncryptedDataKeyDescription struct { + Data_EncryptedDataKeyDescription_ +} + +func (_this EncryptedDataKeyDescription) Get_() Data_EncryptedDataKeyDescription_ { + return _this.Data_EncryptedDataKeyDescription_ +} + +type Data_EncryptedDataKeyDescription_ interface { + isEncryptedDataKeyDescription() +} + +type CompanionStruct_EncryptedDataKeyDescription_ struct { +} + +var Companion_EncryptedDataKeyDescription_ = CompanionStruct_EncryptedDataKeyDescription_{} + +type EncryptedDataKeyDescription_EncryptedDataKeyDescription struct { + KeyProviderId _dafny.Sequence + KeyProviderInfo m_Wrappers.Option + BranchKeyId m_Wrappers.Option + BranchKeyVersion m_Wrappers.Option +} + +func (EncryptedDataKeyDescription_EncryptedDataKeyDescription) isEncryptedDataKeyDescription() {} + +func (CompanionStruct_EncryptedDataKeyDescription_) Create_EncryptedDataKeyDescription_(KeyProviderId _dafny.Sequence, KeyProviderInfo m_Wrappers.Option, BranchKeyId m_Wrappers.Option, BranchKeyVersion m_Wrappers.Option) EncryptedDataKeyDescription { + return EncryptedDataKeyDescription{EncryptedDataKeyDescription_EncryptedDataKeyDescription{KeyProviderId, KeyProviderInfo, BranchKeyId, BranchKeyVersion}} +} + +func (_this EncryptedDataKeyDescription) Is_EncryptedDataKeyDescription() bool { + _, ok := _this.Get_().(EncryptedDataKeyDescription_EncryptedDataKeyDescription) + return ok +} + +func (CompanionStruct_EncryptedDataKeyDescription_) Default() EncryptedDataKeyDescription { + return Companion_EncryptedDataKeyDescription_.Create_EncryptedDataKeyDescription_(_dafny.EmptySeq.SetString(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this EncryptedDataKeyDescription) Dtor_keyProviderId() _dafny.Sequence { + return _this.Get_().(EncryptedDataKeyDescription_EncryptedDataKeyDescription).KeyProviderId +} + +func (_this EncryptedDataKeyDescription) Dtor_keyProviderInfo() m_Wrappers.Option { + return _this.Get_().(EncryptedDataKeyDescription_EncryptedDataKeyDescription).KeyProviderInfo +} + +func (_this EncryptedDataKeyDescription) Dtor_branchKeyId() m_Wrappers.Option { + return _this.Get_().(EncryptedDataKeyDescription_EncryptedDataKeyDescription).BranchKeyId +} + +func (_this EncryptedDataKeyDescription) Dtor_branchKeyVersion() m_Wrappers.Option { + return _this.Get_().(EncryptedDataKeyDescription_EncryptedDataKeyDescription).BranchKeyVersion +} + +func (_this EncryptedDataKeyDescription) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case EncryptedDataKeyDescription_EncryptedDataKeyDescription: + { + return "AwsCryptographyDbEncryptionSdkDynamoDbTypes.EncryptedDataKeyDescription.EncryptedDataKeyDescription" + "(" + _dafny.String(data.KeyProviderId) + ", " + _dafny.String(data.KeyProviderInfo) + ", " + _dafny.String(data.BranchKeyId) + ", " + _dafny.String(data.BranchKeyVersion) + ")" + } + default: + { + return "" + } + } +} + +func (_this EncryptedDataKeyDescription) Equals(other EncryptedDataKeyDescription) bool { + switch data1 := _this.Get_().(type) { + case EncryptedDataKeyDescription_EncryptedDataKeyDescription: + { + data2, ok := other.Get_().(EncryptedDataKeyDescription_EncryptedDataKeyDescription) + return ok && data1.KeyProviderId.Equals(data2.KeyProviderId) && data1.KeyProviderInfo.Equals(data2.KeyProviderInfo) && data1.BranchKeyId.Equals(data2.BranchKeyId) && data1.BranchKeyVersion.Equals(data2.BranchKeyVersion) + } + default: + { + return false // unexpected + } + } +} + +func (_this EncryptedDataKeyDescription) EqualsGeneric(other interface{}) bool { + typed, ok := other.(EncryptedDataKeyDescription) + return ok && _this.Equals(typed) +} + +func Type_EncryptedDataKeyDescription_() _dafny.TypeDescriptor { + return type_EncryptedDataKeyDescription_{} +} + +type type_EncryptedDataKeyDescription_ struct { +} + +func (_this type_EncryptedDataKeyDescription_) Default() interface{} { + return Companion_EncryptedDataKeyDescription_.Default() +} + +func (_this type_EncryptedDataKeyDescription_) String() string { + return "AwsCryptographyDbEncryptionSdkDynamoDbTypes.EncryptedDataKeyDescription" +} +func (_this EncryptedDataKeyDescription) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = EncryptedDataKeyDescription{} + +// End of datatype EncryptedDataKeyDescription + +// Definition of datatype EncryptedPart +type EncryptedPart struct { + Data_EncryptedPart_ +} + +func (_this EncryptedPart) Get_() Data_EncryptedPart_ { + return _this.Data_EncryptedPart_ +} + +type Data_EncryptedPart_ interface { + isEncryptedPart() +} + +type CompanionStruct_EncryptedPart_ struct { +} + +var Companion_EncryptedPart_ = CompanionStruct_EncryptedPart_{} + +type EncryptedPart_EncryptedPart struct { + Name _dafny.Sequence + Prefix _dafny.Sequence +} + +func (EncryptedPart_EncryptedPart) isEncryptedPart() {} + +func (CompanionStruct_EncryptedPart_) Create_EncryptedPart_(Name _dafny.Sequence, Prefix _dafny.Sequence) EncryptedPart { + return EncryptedPart{EncryptedPart_EncryptedPart{Name, Prefix}} +} + +func (_this EncryptedPart) Is_EncryptedPart() bool { + _, ok := _this.Get_().(EncryptedPart_EncryptedPart) + return ok +} + +func (CompanionStruct_EncryptedPart_) Default() EncryptedPart { + return Companion_EncryptedPart_.Create_EncryptedPart_(_dafny.EmptySeq.SetString(), _dafny.EmptySeq.SetString()) +} + +func (_this EncryptedPart) Dtor_name() _dafny.Sequence { + return _this.Get_().(EncryptedPart_EncryptedPart).Name +} + +func (_this EncryptedPart) Dtor_prefix() _dafny.Sequence { + return _this.Get_().(EncryptedPart_EncryptedPart).Prefix +} + +func (_this EncryptedPart) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case EncryptedPart_EncryptedPart: + { + return "AwsCryptographyDbEncryptionSdkDynamoDbTypes.EncryptedPart.EncryptedPart" + "(" + _dafny.String(data.Name) + ", " + _dafny.String(data.Prefix) + ")" + } + default: + { + return "" + } + } +} + +func (_this EncryptedPart) Equals(other EncryptedPart) bool { + switch data1 := _this.Get_().(type) { + case EncryptedPart_EncryptedPart: + { + data2, ok := other.Get_().(EncryptedPart_EncryptedPart) + return ok && data1.Name.Equals(data2.Name) && data1.Prefix.Equals(data2.Prefix) + } + default: + { + return false // unexpected + } + } +} + +func (_this EncryptedPart) EqualsGeneric(other interface{}) bool { + typed, ok := other.(EncryptedPart) + return ok && _this.Equals(typed) +} + +func Type_EncryptedPart_() _dafny.TypeDescriptor { + return type_EncryptedPart_{} +} + +type type_EncryptedPart_ struct { +} + +func (_this type_EncryptedPart_) Default() interface{} { + return Companion_EncryptedPart_.Default() +} + +func (_this type_EncryptedPart_) String() string { + return "AwsCryptographyDbEncryptionSdkDynamoDbTypes.EncryptedPart" +} +func (_this EncryptedPart) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = EncryptedPart{} + +// End of datatype EncryptedPart + +// Definition of class EncryptedPartsList +type EncryptedPartsList struct { +} + +func New_EncryptedPartsList_() *EncryptedPartsList { + _this := EncryptedPartsList{} + + return &_this +} + +type CompanionStruct_EncryptedPartsList_ struct { +} + +var Companion_EncryptedPartsList_ = CompanionStruct_EncryptedPartsList_{} + +func (*EncryptedPartsList) String() string { + return "AwsCryptographyDbEncryptionSdkDynamoDbTypes.EncryptedPartsList" +} + +// End of class EncryptedPartsList + +func Type_EncryptedPartsList_() _dafny.TypeDescriptor { + return type_EncryptedPartsList_{} +} + +type type_EncryptedPartsList_ struct { +} + +func (_this type_EncryptedPartsList_) Default() interface{} { + return _dafny.EmptySeq +} + +func (_this type_EncryptedPartsList_) String() string { + return "AwsCryptographyDbEncryptionSdkDynamoDbTypes.EncryptedPartsList" +} +func (_this *CompanionStruct_EncryptedPartsList_) Is_(__source _dafny.Sequence) bool { + var _0_x _dafny.Sequence = (__source) + _ = _0_x + return Companion_Default___.IsValid__EncryptedPartsList(_0_x) +} + +// Definition of datatype GetBranchKeyIdFromDdbKeyInput +type GetBranchKeyIdFromDdbKeyInput struct { + Data_GetBranchKeyIdFromDdbKeyInput_ +} + +func (_this GetBranchKeyIdFromDdbKeyInput) Get_() Data_GetBranchKeyIdFromDdbKeyInput_ { + return _this.Data_GetBranchKeyIdFromDdbKeyInput_ +} + +type Data_GetBranchKeyIdFromDdbKeyInput_ interface { + isGetBranchKeyIdFromDdbKeyInput() +} + +type CompanionStruct_GetBranchKeyIdFromDdbKeyInput_ struct { +} + +var Companion_GetBranchKeyIdFromDdbKeyInput_ = CompanionStruct_GetBranchKeyIdFromDdbKeyInput_{} + +type GetBranchKeyIdFromDdbKeyInput_GetBranchKeyIdFromDdbKeyInput struct { + DdbKey _dafny.Map +} + +func (GetBranchKeyIdFromDdbKeyInput_GetBranchKeyIdFromDdbKeyInput) isGetBranchKeyIdFromDdbKeyInput() { +} + +func (CompanionStruct_GetBranchKeyIdFromDdbKeyInput_) Create_GetBranchKeyIdFromDdbKeyInput_(DdbKey _dafny.Map) GetBranchKeyIdFromDdbKeyInput { + return GetBranchKeyIdFromDdbKeyInput{GetBranchKeyIdFromDdbKeyInput_GetBranchKeyIdFromDdbKeyInput{DdbKey}} +} + +func (_this GetBranchKeyIdFromDdbKeyInput) Is_GetBranchKeyIdFromDdbKeyInput() bool { + _, ok := _this.Get_().(GetBranchKeyIdFromDdbKeyInput_GetBranchKeyIdFromDdbKeyInput) + return ok +} + +func (CompanionStruct_GetBranchKeyIdFromDdbKeyInput_) Default() GetBranchKeyIdFromDdbKeyInput { + return Companion_GetBranchKeyIdFromDdbKeyInput_.Create_GetBranchKeyIdFromDdbKeyInput_(_dafny.EmptyMap) +} + +func (_this GetBranchKeyIdFromDdbKeyInput) Dtor_ddbKey() _dafny.Map { + return _this.Get_().(GetBranchKeyIdFromDdbKeyInput_GetBranchKeyIdFromDdbKeyInput).DdbKey +} + +func (_this GetBranchKeyIdFromDdbKeyInput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case GetBranchKeyIdFromDdbKeyInput_GetBranchKeyIdFromDdbKeyInput: + { + return "AwsCryptographyDbEncryptionSdkDynamoDbTypes.GetBranchKeyIdFromDdbKeyInput.GetBranchKeyIdFromDdbKeyInput" + "(" + _dafny.String(data.DdbKey) + ")" + } + default: + { + return "" + } + } +} + +func (_this GetBranchKeyIdFromDdbKeyInput) Equals(other GetBranchKeyIdFromDdbKeyInput) bool { + switch data1 := _this.Get_().(type) { + case GetBranchKeyIdFromDdbKeyInput_GetBranchKeyIdFromDdbKeyInput: + { + data2, ok := other.Get_().(GetBranchKeyIdFromDdbKeyInput_GetBranchKeyIdFromDdbKeyInput) + return ok && data1.DdbKey.Equals(data2.DdbKey) + } + default: + { + return false // unexpected + } + } +} + +func (_this GetBranchKeyIdFromDdbKeyInput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(GetBranchKeyIdFromDdbKeyInput) + return ok && _this.Equals(typed) +} + +func Type_GetBranchKeyIdFromDdbKeyInput_() _dafny.TypeDescriptor { + return type_GetBranchKeyIdFromDdbKeyInput_{} +} + +type type_GetBranchKeyIdFromDdbKeyInput_ struct { +} + +func (_this type_GetBranchKeyIdFromDdbKeyInput_) Default() interface{} { + return Companion_GetBranchKeyIdFromDdbKeyInput_.Default() +} + +func (_this type_GetBranchKeyIdFromDdbKeyInput_) String() string { + return "AwsCryptographyDbEncryptionSdkDynamoDbTypes.GetBranchKeyIdFromDdbKeyInput" +} +func (_this GetBranchKeyIdFromDdbKeyInput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = GetBranchKeyIdFromDdbKeyInput{} + +// End of datatype GetBranchKeyIdFromDdbKeyInput + +// Definition of datatype GetBranchKeyIdFromDdbKeyOutput +type GetBranchKeyIdFromDdbKeyOutput struct { + Data_GetBranchKeyIdFromDdbKeyOutput_ +} + +func (_this GetBranchKeyIdFromDdbKeyOutput) Get_() Data_GetBranchKeyIdFromDdbKeyOutput_ { + return _this.Data_GetBranchKeyIdFromDdbKeyOutput_ +} + +type Data_GetBranchKeyIdFromDdbKeyOutput_ interface { + isGetBranchKeyIdFromDdbKeyOutput() +} + +type CompanionStruct_GetBranchKeyIdFromDdbKeyOutput_ struct { +} + +var Companion_GetBranchKeyIdFromDdbKeyOutput_ = CompanionStruct_GetBranchKeyIdFromDdbKeyOutput_{} + +type GetBranchKeyIdFromDdbKeyOutput_GetBranchKeyIdFromDdbKeyOutput struct { + BranchKeyId _dafny.Sequence +} + +func (GetBranchKeyIdFromDdbKeyOutput_GetBranchKeyIdFromDdbKeyOutput) isGetBranchKeyIdFromDdbKeyOutput() { +} + +func (CompanionStruct_GetBranchKeyIdFromDdbKeyOutput_) Create_GetBranchKeyIdFromDdbKeyOutput_(BranchKeyId _dafny.Sequence) GetBranchKeyIdFromDdbKeyOutput { + return GetBranchKeyIdFromDdbKeyOutput{GetBranchKeyIdFromDdbKeyOutput_GetBranchKeyIdFromDdbKeyOutput{BranchKeyId}} +} + +func (_this GetBranchKeyIdFromDdbKeyOutput) Is_GetBranchKeyIdFromDdbKeyOutput() bool { + _, ok := _this.Get_().(GetBranchKeyIdFromDdbKeyOutput_GetBranchKeyIdFromDdbKeyOutput) + return ok +} + +func (CompanionStruct_GetBranchKeyIdFromDdbKeyOutput_) Default() GetBranchKeyIdFromDdbKeyOutput { + return Companion_GetBranchKeyIdFromDdbKeyOutput_.Create_GetBranchKeyIdFromDdbKeyOutput_(_dafny.EmptySeq.SetString()) +} + +func (_this GetBranchKeyIdFromDdbKeyOutput) Dtor_branchKeyId() _dafny.Sequence { + return _this.Get_().(GetBranchKeyIdFromDdbKeyOutput_GetBranchKeyIdFromDdbKeyOutput).BranchKeyId +} + +func (_this GetBranchKeyIdFromDdbKeyOutput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case GetBranchKeyIdFromDdbKeyOutput_GetBranchKeyIdFromDdbKeyOutput: + { + return "AwsCryptographyDbEncryptionSdkDynamoDbTypes.GetBranchKeyIdFromDdbKeyOutput.GetBranchKeyIdFromDdbKeyOutput" + "(" + _dafny.String(data.BranchKeyId) + ")" + } + default: + { + return "" + } + } +} + +func (_this GetBranchKeyIdFromDdbKeyOutput) Equals(other GetBranchKeyIdFromDdbKeyOutput) bool { + switch data1 := _this.Get_().(type) { + case GetBranchKeyIdFromDdbKeyOutput_GetBranchKeyIdFromDdbKeyOutput: + { + data2, ok := other.Get_().(GetBranchKeyIdFromDdbKeyOutput_GetBranchKeyIdFromDdbKeyOutput) + return ok && data1.BranchKeyId.Equals(data2.BranchKeyId) + } + default: + { + return false // unexpected + } + } +} + +func (_this GetBranchKeyIdFromDdbKeyOutput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(GetBranchKeyIdFromDdbKeyOutput) + return ok && _this.Equals(typed) +} + +func Type_GetBranchKeyIdFromDdbKeyOutput_() _dafny.TypeDescriptor { + return type_GetBranchKeyIdFromDdbKeyOutput_{} +} + +type type_GetBranchKeyIdFromDdbKeyOutput_ struct { +} + +func (_this type_GetBranchKeyIdFromDdbKeyOutput_) Default() interface{} { + return Companion_GetBranchKeyIdFromDdbKeyOutput_.Default() +} + +func (_this type_GetBranchKeyIdFromDdbKeyOutput_) String() string { + return "AwsCryptographyDbEncryptionSdkDynamoDbTypes.GetBranchKeyIdFromDdbKeyOutput" +} +func (_this GetBranchKeyIdFromDdbKeyOutput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = GetBranchKeyIdFromDdbKeyOutput{} + +// End of datatype GetBranchKeyIdFromDdbKeyOutput + +// Definition of datatype GetEncryptedDataKeyDescriptionInput +type GetEncryptedDataKeyDescriptionInput struct { + Data_GetEncryptedDataKeyDescriptionInput_ +} + +func (_this GetEncryptedDataKeyDescriptionInput) Get_() Data_GetEncryptedDataKeyDescriptionInput_ { + return _this.Data_GetEncryptedDataKeyDescriptionInput_ +} + +type Data_GetEncryptedDataKeyDescriptionInput_ interface { + isGetEncryptedDataKeyDescriptionInput() +} + +type CompanionStruct_GetEncryptedDataKeyDescriptionInput_ struct { +} + +var Companion_GetEncryptedDataKeyDescriptionInput_ = CompanionStruct_GetEncryptedDataKeyDescriptionInput_{} + +type GetEncryptedDataKeyDescriptionInput_GetEncryptedDataKeyDescriptionInput struct { + Input GetEncryptedDataKeyDescriptionUnion +} + +func (GetEncryptedDataKeyDescriptionInput_GetEncryptedDataKeyDescriptionInput) isGetEncryptedDataKeyDescriptionInput() { +} + +func (CompanionStruct_GetEncryptedDataKeyDescriptionInput_) Create_GetEncryptedDataKeyDescriptionInput_(Input GetEncryptedDataKeyDescriptionUnion) GetEncryptedDataKeyDescriptionInput { + return GetEncryptedDataKeyDescriptionInput{GetEncryptedDataKeyDescriptionInput_GetEncryptedDataKeyDescriptionInput{Input}} +} + +func (_this GetEncryptedDataKeyDescriptionInput) Is_GetEncryptedDataKeyDescriptionInput() bool { + _, ok := _this.Get_().(GetEncryptedDataKeyDescriptionInput_GetEncryptedDataKeyDescriptionInput) + return ok +} + +func (CompanionStruct_GetEncryptedDataKeyDescriptionInput_) Default() GetEncryptedDataKeyDescriptionInput { + return Companion_GetEncryptedDataKeyDescriptionInput_.Create_GetEncryptedDataKeyDescriptionInput_(Companion_GetEncryptedDataKeyDescriptionUnion_.Default()) +} + +func (_this GetEncryptedDataKeyDescriptionInput) Dtor_input() GetEncryptedDataKeyDescriptionUnion { + return _this.Get_().(GetEncryptedDataKeyDescriptionInput_GetEncryptedDataKeyDescriptionInput).Input +} + +func (_this GetEncryptedDataKeyDescriptionInput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case GetEncryptedDataKeyDescriptionInput_GetEncryptedDataKeyDescriptionInput: + { + return "AwsCryptographyDbEncryptionSdkDynamoDbTypes.GetEncryptedDataKeyDescriptionInput.GetEncryptedDataKeyDescriptionInput" + "(" + _dafny.String(data.Input) + ")" + } + default: + { + return "" + } + } +} + +func (_this GetEncryptedDataKeyDescriptionInput) Equals(other GetEncryptedDataKeyDescriptionInput) bool { + switch data1 := _this.Get_().(type) { + case GetEncryptedDataKeyDescriptionInput_GetEncryptedDataKeyDescriptionInput: + { + data2, ok := other.Get_().(GetEncryptedDataKeyDescriptionInput_GetEncryptedDataKeyDescriptionInput) + return ok && data1.Input.Equals(data2.Input) + } + default: + { + return false // unexpected + } + } +} + +func (_this GetEncryptedDataKeyDescriptionInput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(GetEncryptedDataKeyDescriptionInput) + return ok && _this.Equals(typed) +} + +func Type_GetEncryptedDataKeyDescriptionInput_() _dafny.TypeDescriptor { + return type_GetEncryptedDataKeyDescriptionInput_{} +} + +type type_GetEncryptedDataKeyDescriptionInput_ struct { +} + +func (_this type_GetEncryptedDataKeyDescriptionInput_) Default() interface{} { + return Companion_GetEncryptedDataKeyDescriptionInput_.Default() +} + +func (_this type_GetEncryptedDataKeyDescriptionInput_) String() string { + return "AwsCryptographyDbEncryptionSdkDynamoDbTypes.GetEncryptedDataKeyDescriptionInput" +} +func (_this GetEncryptedDataKeyDescriptionInput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = GetEncryptedDataKeyDescriptionInput{} + +// End of datatype GetEncryptedDataKeyDescriptionInput + +// Definition of datatype GetEncryptedDataKeyDescriptionOutput +type GetEncryptedDataKeyDescriptionOutput struct { + Data_GetEncryptedDataKeyDescriptionOutput_ +} + +func (_this GetEncryptedDataKeyDescriptionOutput) Get_() Data_GetEncryptedDataKeyDescriptionOutput_ { + return _this.Data_GetEncryptedDataKeyDescriptionOutput_ +} + +type Data_GetEncryptedDataKeyDescriptionOutput_ interface { + isGetEncryptedDataKeyDescriptionOutput() +} + +type CompanionStruct_GetEncryptedDataKeyDescriptionOutput_ struct { +} + +var Companion_GetEncryptedDataKeyDescriptionOutput_ = CompanionStruct_GetEncryptedDataKeyDescriptionOutput_{} + +type GetEncryptedDataKeyDescriptionOutput_GetEncryptedDataKeyDescriptionOutput struct { + EncryptedDataKeyDescriptionOutput _dafny.Sequence +} + +func (GetEncryptedDataKeyDescriptionOutput_GetEncryptedDataKeyDescriptionOutput) isGetEncryptedDataKeyDescriptionOutput() { +} + +func (CompanionStruct_GetEncryptedDataKeyDescriptionOutput_) Create_GetEncryptedDataKeyDescriptionOutput_(EncryptedDataKeyDescriptionOutput _dafny.Sequence) GetEncryptedDataKeyDescriptionOutput { + return GetEncryptedDataKeyDescriptionOutput{GetEncryptedDataKeyDescriptionOutput_GetEncryptedDataKeyDescriptionOutput{EncryptedDataKeyDescriptionOutput}} +} + +func (_this GetEncryptedDataKeyDescriptionOutput) Is_GetEncryptedDataKeyDescriptionOutput() bool { + _, ok := _this.Get_().(GetEncryptedDataKeyDescriptionOutput_GetEncryptedDataKeyDescriptionOutput) + return ok +} + +func (CompanionStruct_GetEncryptedDataKeyDescriptionOutput_) Default() GetEncryptedDataKeyDescriptionOutput { + return Companion_GetEncryptedDataKeyDescriptionOutput_.Create_GetEncryptedDataKeyDescriptionOutput_(_dafny.EmptySeq) +} + +func (_this GetEncryptedDataKeyDescriptionOutput) Dtor_EncryptedDataKeyDescriptionOutput() _dafny.Sequence { + return _this.Get_().(GetEncryptedDataKeyDescriptionOutput_GetEncryptedDataKeyDescriptionOutput).EncryptedDataKeyDescriptionOutput +} + +func (_this GetEncryptedDataKeyDescriptionOutput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case GetEncryptedDataKeyDescriptionOutput_GetEncryptedDataKeyDescriptionOutput: + { + return "AwsCryptographyDbEncryptionSdkDynamoDbTypes.GetEncryptedDataKeyDescriptionOutput.GetEncryptedDataKeyDescriptionOutput" + "(" + _dafny.String(data.EncryptedDataKeyDescriptionOutput) + ")" + } + default: + { + return "" + } + } +} + +func (_this GetEncryptedDataKeyDescriptionOutput) Equals(other GetEncryptedDataKeyDescriptionOutput) bool { + switch data1 := _this.Get_().(type) { + case GetEncryptedDataKeyDescriptionOutput_GetEncryptedDataKeyDescriptionOutput: + { + data2, ok := other.Get_().(GetEncryptedDataKeyDescriptionOutput_GetEncryptedDataKeyDescriptionOutput) + return ok && data1.EncryptedDataKeyDescriptionOutput.Equals(data2.EncryptedDataKeyDescriptionOutput) + } + default: + { + return false // unexpected + } + } +} + +func (_this GetEncryptedDataKeyDescriptionOutput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(GetEncryptedDataKeyDescriptionOutput) + return ok && _this.Equals(typed) +} + +func Type_GetEncryptedDataKeyDescriptionOutput_() _dafny.TypeDescriptor { + return type_GetEncryptedDataKeyDescriptionOutput_{} +} + +type type_GetEncryptedDataKeyDescriptionOutput_ struct { +} + +func (_this type_GetEncryptedDataKeyDescriptionOutput_) Default() interface{} { + return Companion_GetEncryptedDataKeyDescriptionOutput_.Default() +} + +func (_this type_GetEncryptedDataKeyDescriptionOutput_) String() string { + return "AwsCryptographyDbEncryptionSdkDynamoDbTypes.GetEncryptedDataKeyDescriptionOutput" +} +func (_this GetEncryptedDataKeyDescriptionOutput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = GetEncryptedDataKeyDescriptionOutput{} + +// End of datatype GetEncryptedDataKeyDescriptionOutput + +// Definition of datatype GetEncryptedDataKeyDescriptionUnion +type GetEncryptedDataKeyDescriptionUnion struct { + Data_GetEncryptedDataKeyDescriptionUnion_ +} + +func (_this GetEncryptedDataKeyDescriptionUnion) Get_() Data_GetEncryptedDataKeyDescriptionUnion_ { + return _this.Data_GetEncryptedDataKeyDescriptionUnion_ +} + +type Data_GetEncryptedDataKeyDescriptionUnion_ interface { + isGetEncryptedDataKeyDescriptionUnion() +} + +type CompanionStruct_GetEncryptedDataKeyDescriptionUnion_ struct { +} + +var Companion_GetEncryptedDataKeyDescriptionUnion_ = CompanionStruct_GetEncryptedDataKeyDescriptionUnion_{} + +type GetEncryptedDataKeyDescriptionUnion_header struct { + Header _dafny.Sequence +} + +func (GetEncryptedDataKeyDescriptionUnion_header) isGetEncryptedDataKeyDescriptionUnion() {} + +func (CompanionStruct_GetEncryptedDataKeyDescriptionUnion_) Create_header_(Header _dafny.Sequence) GetEncryptedDataKeyDescriptionUnion { + return GetEncryptedDataKeyDescriptionUnion{GetEncryptedDataKeyDescriptionUnion_header{Header}} +} + +func (_this GetEncryptedDataKeyDescriptionUnion) Is_header() bool { + _, ok := _this.Get_().(GetEncryptedDataKeyDescriptionUnion_header) + return ok +} + +type GetEncryptedDataKeyDescriptionUnion_item struct { + Item _dafny.Map +} + +func (GetEncryptedDataKeyDescriptionUnion_item) isGetEncryptedDataKeyDescriptionUnion() {} + +func (CompanionStruct_GetEncryptedDataKeyDescriptionUnion_) Create_item_(Item _dafny.Map) GetEncryptedDataKeyDescriptionUnion { + return GetEncryptedDataKeyDescriptionUnion{GetEncryptedDataKeyDescriptionUnion_item{Item}} +} + +func (_this GetEncryptedDataKeyDescriptionUnion) Is_item() bool { + _, ok := _this.Get_().(GetEncryptedDataKeyDescriptionUnion_item) + return ok +} + +func (CompanionStruct_GetEncryptedDataKeyDescriptionUnion_) Default() GetEncryptedDataKeyDescriptionUnion { + return Companion_GetEncryptedDataKeyDescriptionUnion_.Create_header_(_dafny.EmptySeq) +} + +func (_this GetEncryptedDataKeyDescriptionUnion) Dtor_header() _dafny.Sequence { + return _this.Get_().(GetEncryptedDataKeyDescriptionUnion_header).Header +} + +func (_this GetEncryptedDataKeyDescriptionUnion) Dtor_item() _dafny.Map { + return _this.Get_().(GetEncryptedDataKeyDescriptionUnion_item).Item +} + +func (_this GetEncryptedDataKeyDescriptionUnion) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case GetEncryptedDataKeyDescriptionUnion_header: + { + return "AwsCryptographyDbEncryptionSdkDynamoDbTypes.GetEncryptedDataKeyDescriptionUnion.header" + "(" + _dafny.String(data.Header) + ")" + } + case GetEncryptedDataKeyDescriptionUnion_item: + { + return "AwsCryptographyDbEncryptionSdkDynamoDbTypes.GetEncryptedDataKeyDescriptionUnion.item" + "(" + _dafny.String(data.Item) + ")" + } + default: + { + return "" + } + } +} + +func (_this GetEncryptedDataKeyDescriptionUnion) Equals(other GetEncryptedDataKeyDescriptionUnion) bool { + switch data1 := _this.Get_().(type) { + case GetEncryptedDataKeyDescriptionUnion_header: + { + data2, ok := other.Get_().(GetEncryptedDataKeyDescriptionUnion_header) + return ok && data1.Header.Equals(data2.Header) + } + case GetEncryptedDataKeyDescriptionUnion_item: + { + data2, ok := other.Get_().(GetEncryptedDataKeyDescriptionUnion_item) + return ok && data1.Item.Equals(data2.Item) + } + default: + { + return false // unexpected + } + } +} + +func (_this GetEncryptedDataKeyDescriptionUnion) EqualsGeneric(other interface{}) bool { + typed, ok := other.(GetEncryptedDataKeyDescriptionUnion) + return ok && _this.Equals(typed) +} + +func Type_GetEncryptedDataKeyDescriptionUnion_() _dafny.TypeDescriptor { + return type_GetEncryptedDataKeyDescriptionUnion_{} +} + +type type_GetEncryptedDataKeyDescriptionUnion_ struct { +} + +func (_this type_GetEncryptedDataKeyDescriptionUnion_) Default() interface{} { + return Companion_GetEncryptedDataKeyDescriptionUnion_.Default() +} + +func (_this type_GetEncryptedDataKeyDescriptionUnion_) String() string { + return "AwsCryptographyDbEncryptionSdkDynamoDbTypes.GetEncryptedDataKeyDescriptionUnion" +} +func (_this GetEncryptedDataKeyDescriptionUnion) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = GetEncryptedDataKeyDescriptionUnion{} + +// End of datatype GetEncryptedDataKeyDescriptionUnion + +// Definition of datatype GetPrefix +type GetPrefix struct { + Data_GetPrefix_ +} + +func (_this GetPrefix) Get_() Data_GetPrefix_ { + return _this.Data_GetPrefix_ +} + +type Data_GetPrefix_ interface { + isGetPrefix() +} + +type CompanionStruct_GetPrefix_ struct { +} + +var Companion_GetPrefix_ = CompanionStruct_GetPrefix_{} + +type GetPrefix_GetPrefix struct { + Length int32 +} + +func (GetPrefix_GetPrefix) isGetPrefix() {} + +func (CompanionStruct_GetPrefix_) Create_GetPrefix_(Length int32) GetPrefix { + return GetPrefix{GetPrefix_GetPrefix{Length}} +} + +func (_this GetPrefix) Is_GetPrefix() bool { + _, ok := _this.Get_().(GetPrefix_GetPrefix) + return ok +} + +func (CompanionStruct_GetPrefix_) Default() GetPrefix { + return Companion_GetPrefix_.Create_GetPrefix_(int32(0)) +} + +func (_this GetPrefix) Dtor_length() int32 { + return _this.Get_().(GetPrefix_GetPrefix).Length +} + +func (_this GetPrefix) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case GetPrefix_GetPrefix: + { + return "AwsCryptographyDbEncryptionSdkDynamoDbTypes.GetPrefix.GetPrefix" + "(" + _dafny.String(data.Length) + ")" + } + default: + { + return "" + } + } +} + +func (_this GetPrefix) Equals(other GetPrefix) bool { + switch data1 := _this.Get_().(type) { + case GetPrefix_GetPrefix: + { + data2, ok := other.Get_().(GetPrefix_GetPrefix) + return ok && data1.Length == data2.Length + } + default: + { + return false // unexpected + } + } +} + +func (_this GetPrefix) EqualsGeneric(other interface{}) bool { + typed, ok := other.(GetPrefix) + return ok && _this.Equals(typed) +} + +func Type_GetPrefix_() _dafny.TypeDescriptor { + return type_GetPrefix_{} +} + +type type_GetPrefix_ struct { +} + +func (_this type_GetPrefix_) Default() interface{} { + return Companion_GetPrefix_.Default() +} + +func (_this type_GetPrefix_) String() string { + return "AwsCryptographyDbEncryptionSdkDynamoDbTypes.GetPrefix" +} +func (_this GetPrefix) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = GetPrefix{} + +// End of datatype GetPrefix + +// Definition of datatype GetSegment +type GetSegment struct { + Data_GetSegment_ +} + +func (_this GetSegment) Get_() Data_GetSegment_ { + return _this.Data_GetSegment_ +} + +type Data_GetSegment_ interface { + isGetSegment() +} + +type CompanionStruct_GetSegment_ struct { +} + +var Companion_GetSegment_ = CompanionStruct_GetSegment_{} + +type GetSegment_GetSegment struct { + Split _dafny.Sequence + Index int32 +} + +func (GetSegment_GetSegment) isGetSegment() {} + +func (CompanionStruct_GetSegment_) Create_GetSegment_(Split _dafny.Sequence, Index int32) GetSegment { + return GetSegment{GetSegment_GetSegment{Split, Index}} +} + +func (_this GetSegment) Is_GetSegment() bool { + _, ok := _this.Get_().(GetSegment_GetSegment) + return ok +} + +func (CompanionStruct_GetSegment_) Default() GetSegment { + return Companion_GetSegment_.Create_GetSegment_(_dafny.EmptySeq.SetString(), int32(0)) +} + +func (_this GetSegment) Dtor_split() _dafny.Sequence { + return _this.Get_().(GetSegment_GetSegment).Split +} + +func (_this GetSegment) Dtor_index() int32 { + return _this.Get_().(GetSegment_GetSegment).Index +} + +func (_this GetSegment) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case GetSegment_GetSegment: + { + return "AwsCryptographyDbEncryptionSdkDynamoDbTypes.GetSegment.GetSegment" + "(" + _dafny.String(data.Split) + ", " + _dafny.String(data.Index) + ")" + } + default: + { + return "" + } + } +} + +func (_this GetSegment) Equals(other GetSegment) bool { + switch data1 := _this.Get_().(type) { + case GetSegment_GetSegment: + { + data2, ok := other.Get_().(GetSegment_GetSegment) + return ok && data1.Split.Equals(data2.Split) && data1.Index == data2.Index + } + default: + { + return false // unexpected + } + } +} + +func (_this GetSegment) EqualsGeneric(other interface{}) bool { + typed, ok := other.(GetSegment) + return ok && _this.Equals(typed) +} + +func Type_GetSegment_() _dafny.TypeDescriptor { + return type_GetSegment_{} +} + +type type_GetSegment_ struct { +} + +func (_this type_GetSegment_) Default() interface{} { + return Companion_GetSegment_.Default() +} + +func (_this type_GetSegment_) String() string { + return "AwsCryptographyDbEncryptionSdkDynamoDbTypes.GetSegment" +} +func (_this GetSegment) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = GetSegment{} + +// End of datatype GetSegment + +// Definition of datatype GetSegments +type GetSegments struct { + Data_GetSegments_ +} + +func (_this GetSegments) Get_() Data_GetSegments_ { + return _this.Data_GetSegments_ +} + +type Data_GetSegments_ interface { + isGetSegments() +} + +type CompanionStruct_GetSegments_ struct { +} + +var Companion_GetSegments_ = CompanionStruct_GetSegments_{} + +type GetSegments_GetSegments struct { + Split _dafny.Sequence + Low int32 + High int32 +} + +func (GetSegments_GetSegments) isGetSegments() {} + +func (CompanionStruct_GetSegments_) Create_GetSegments_(Split _dafny.Sequence, Low int32, High int32) GetSegments { + return GetSegments{GetSegments_GetSegments{Split, Low, High}} +} + +func (_this GetSegments) Is_GetSegments() bool { + _, ok := _this.Get_().(GetSegments_GetSegments) + return ok +} + +func (CompanionStruct_GetSegments_) Default() GetSegments { + return Companion_GetSegments_.Create_GetSegments_(_dafny.EmptySeq.SetString(), int32(0), int32(0)) +} + +func (_this GetSegments) Dtor_split() _dafny.Sequence { + return _this.Get_().(GetSegments_GetSegments).Split +} + +func (_this GetSegments) Dtor_low() int32 { + return _this.Get_().(GetSegments_GetSegments).Low +} + +func (_this GetSegments) Dtor_high() int32 { + return _this.Get_().(GetSegments_GetSegments).High +} + +func (_this GetSegments) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case GetSegments_GetSegments: + { + return "AwsCryptographyDbEncryptionSdkDynamoDbTypes.GetSegments.GetSegments" + "(" + _dafny.String(data.Split) + ", " + _dafny.String(data.Low) + ", " + _dafny.String(data.High) + ")" + } + default: + { + return "" + } + } +} + +func (_this GetSegments) Equals(other GetSegments) bool { + switch data1 := _this.Get_().(type) { + case GetSegments_GetSegments: + { + data2, ok := other.Get_().(GetSegments_GetSegments) + return ok && data1.Split.Equals(data2.Split) && data1.Low == data2.Low && data1.High == data2.High + } + default: + { + return false // unexpected + } + } +} + +func (_this GetSegments) EqualsGeneric(other interface{}) bool { + typed, ok := other.(GetSegments) + return ok && _this.Equals(typed) +} + +func Type_GetSegments_() _dafny.TypeDescriptor { + return type_GetSegments_{} +} + +type type_GetSegments_ struct { +} + +func (_this type_GetSegments_) Default() interface{} { + return Companion_GetSegments_.Default() +} + +func (_this type_GetSegments_) String() string { + return "AwsCryptographyDbEncryptionSdkDynamoDbTypes.GetSegments" +} +func (_this GetSegments) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = GetSegments{} + +// End of datatype GetSegments + +// Definition of datatype GetSubstring +type GetSubstring struct { + Data_GetSubstring_ +} + +func (_this GetSubstring) Get_() Data_GetSubstring_ { + return _this.Data_GetSubstring_ +} + +type Data_GetSubstring_ interface { + isGetSubstring() +} + +type CompanionStruct_GetSubstring_ struct { +} + +var Companion_GetSubstring_ = CompanionStruct_GetSubstring_{} + +type GetSubstring_GetSubstring struct { + Low int32 + High int32 +} + +func (GetSubstring_GetSubstring) isGetSubstring() {} + +func (CompanionStruct_GetSubstring_) Create_GetSubstring_(Low int32, High int32) GetSubstring { + return GetSubstring{GetSubstring_GetSubstring{Low, High}} +} + +func (_this GetSubstring) Is_GetSubstring() bool { + _, ok := _this.Get_().(GetSubstring_GetSubstring) + return ok +} + +func (CompanionStruct_GetSubstring_) Default() GetSubstring { + return Companion_GetSubstring_.Create_GetSubstring_(int32(0), int32(0)) +} + +func (_this GetSubstring) Dtor_low() int32 { + return _this.Get_().(GetSubstring_GetSubstring).Low +} + +func (_this GetSubstring) Dtor_high() int32 { + return _this.Get_().(GetSubstring_GetSubstring).High +} + +func (_this GetSubstring) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case GetSubstring_GetSubstring: + { + return "AwsCryptographyDbEncryptionSdkDynamoDbTypes.GetSubstring.GetSubstring" + "(" + _dafny.String(data.Low) + ", " + _dafny.String(data.High) + ")" + } + default: + { + return "" + } + } +} + +func (_this GetSubstring) Equals(other GetSubstring) bool { + switch data1 := _this.Get_().(type) { + case GetSubstring_GetSubstring: + { + data2, ok := other.Get_().(GetSubstring_GetSubstring) + return ok && data1.Low == data2.Low && data1.High == data2.High + } + default: + { + return false // unexpected + } + } +} + +func (_this GetSubstring) EqualsGeneric(other interface{}) bool { + typed, ok := other.(GetSubstring) + return ok && _this.Equals(typed) +} + +func Type_GetSubstring_() _dafny.TypeDescriptor { + return type_GetSubstring_{} +} + +type type_GetSubstring_ struct { +} + +func (_this type_GetSubstring_) Default() interface{} { + return Companion_GetSubstring_.Default() +} + +func (_this type_GetSubstring_) String() string { + return "AwsCryptographyDbEncryptionSdkDynamoDbTypes.GetSubstring" +} +func (_this GetSubstring) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = GetSubstring{} + +// End of datatype GetSubstring + +// Definition of datatype GetSuffix +type GetSuffix struct { + Data_GetSuffix_ +} + +func (_this GetSuffix) Get_() Data_GetSuffix_ { + return _this.Data_GetSuffix_ +} + +type Data_GetSuffix_ interface { + isGetSuffix() +} + +type CompanionStruct_GetSuffix_ struct { +} + +var Companion_GetSuffix_ = CompanionStruct_GetSuffix_{} + +type GetSuffix_GetSuffix struct { + Length int32 +} + +func (GetSuffix_GetSuffix) isGetSuffix() {} + +func (CompanionStruct_GetSuffix_) Create_GetSuffix_(Length int32) GetSuffix { + return GetSuffix{GetSuffix_GetSuffix{Length}} +} + +func (_this GetSuffix) Is_GetSuffix() bool { + _, ok := _this.Get_().(GetSuffix_GetSuffix) + return ok +} + +func (CompanionStruct_GetSuffix_) Default() GetSuffix { + return Companion_GetSuffix_.Create_GetSuffix_(int32(0)) +} + +func (_this GetSuffix) Dtor_length() int32 { + return _this.Get_().(GetSuffix_GetSuffix).Length +} + +func (_this GetSuffix) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case GetSuffix_GetSuffix: + { + return "AwsCryptographyDbEncryptionSdkDynamoDbTypes.GetSuffix.GetSuffix" + "(" + _dafny.String(data.Length) + ")" + } + default: + { + return "" + } + } +} + +func (_this GetSuffix) Equals(other GetSuffix) bool { + switch data1 := _this.Get_().(type) { + case GetSuffix_GetSuffix: + { + data2, ok := other.Get_().(GetSuffix_GetSuffix) + return ok && data1.Length == data2.Length + } + default: + { + return false // unexpected + } + } +} + +func (_this GetSuffix) EqualsGeneric(other interface{}) bool { + typed, ok := other.(GetSuffix) + return ok && _this.Equals(typed) +} + +func Type_GetSuffix_() _dafny.TypeDescriptor { + return type_GetSuffix_{} +} + +type type_GetSuffix_ struct { +} + +func (_this type_GetSuffix_) Default() interface{} { + return Companion_GetSuffix_.Default() +} + +func (_this type_GetSuffix_) String() string { + return "AwsCryptographyDbEncryptionSdkDynamoDbTypes.GetSuffix" +} +func (_this GetSuffix) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = GetSuffix{} + +// End of datatype GetSuffix + +// Definition of datatype Insert +type Insert struct { + Data_Insert_ +} + +func (_this Insert) Get_() Data_Insert_ { + return _this.Data_Insert_ +} + +type Data_Insert_ interface { + isInsert() +} + +type CompanionStruct_Insert_ struct { +} + +var Companion_Insert_ = CompanionStruct_Insert_{} + +type Insert_Insert struct { + Literal _dafny.Sequence +} + +func (Insert_Insert) isInsert() {} + +func (CompanionStruct_Insert_) Create_Insert_(Literal _dafny.Sequence) Insert { + return Insert{Insert_Insert{Literal}} +} + +func (_this Insert) Is_Insert() bool { + _, ok := _this.Get_().(Insert_Insert) + return ok +} + +func (CompanionStruct_Insert_) Default() Insert { + return Companion_Insert_.Create_Insert_(_dafny.EmptySeq.SetString()) +} + +func (_this Insert) Dtor_literal() _dafny.Sequence { + return _this.Get_().(Insert_Insert).Literal +} + +func (_this Insert) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case Insert_Insert: + { + return "AwsCryptographyDbEncryptionSdkDynamoDbTypes.Insert.Insert" + "(" + _dafny.String(data.Literal) + ")" + } + default: + { + return "" + } + } +} + +func (_this Insert) Equals(other Insert) bool { + switch data1 := _this.Get_().(type) { + case Insert_Insert: + { + data2, ok := other.Get_().(Insert_Insert) + return ok && data1.Literal.Equals(data2.Literal) + } + default: + { + return false // unexpected + } + } +} + +func (_this Insert) EqualsGeneric(other interface{}) bool { + typed, ok := other.(Insert) + return ok && _this.Equals(typed) +} + +func Type_Insert_() _dafny.TypeDescriptor { + return type_Insert_{} +} + +type type_Insert_ struct { +} + +func (_this type_Insert_) Default() interface{} { + return Companion_Insert_.Default() +} + +func (_this type_Insert_) String() string { + return "AwsCryptographyDbEncryptionSdkDynamoDbTypes.Insert" +} +func (_this Insert) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = Insert{} + +// End of datatype Insert + +// Definition of class ILegacyDynamoDbEncryptorCallHistory +type ILegacyDynamoDbEncryptorCallHistory struct { + dummy byte +} + +func New_ILegacyDynamoDbEncryptorCallHistory_() *ILegacyDynamoDbEncryptorCallHistory { + _this := ILegacyDynamoDbEncryptorCallHistory{} + + return &_this +} + +type CompanionStruct_ILegacyDynamoDbEncryptorCallHistory_ struct { +} + +var Companion_ILegacyDynamoDbEncryptorCallHistory_ = CompanionStruct_ILegacyDynamoDbEncryptorCallHistory_{} + +func (_this *ILegacyDynamoDbEncryptorCallHistory) Equals(other *ILegacyDynamoDbEncryptorCallHistory) bool { + return _this == other +} + +func (_this *ILegacyDynamoDbEncryptorCallHistory) EqualsGeneric(x interface{}) bool { + other, ok := x.(*ILegacyDynamoDbEncryptorCallHistory) + return ok && _this.Equals(other) +} + +func (*ILegacyDynamoDbEncryptorCallHistory) String() string { + return "AwsCryptographyDbEncryptionSdkDynamoDbTypes.ILegacyDynamoDbEncryptorCallHistory" +} + +func Type_ILegacyDynamoDbEncryptorCallHistory_() _dafny.TypeDescriptor { + return type_ILegacyDynamoDbEncryptorCallHistory_{} +} + +type type_ILegacyDynamoDbEncryptorCallHistory_ struct { +} + +func (_this type_ILegacyDynamoDbEncryptorCallHistory_) Default() interface{} { + return (*ILegacyDynamoDbEncryptorCallHistory)(nil) +} + +func (_this type_ILegacyDynamoDbEncryptorCallHistory_) String() string { + return "AwsCryptographyDbEncryptionSdkDynamoDbTypes.ILegacyDynamoDbEncryptorCallHistory" +} +func (_this *ILegacyDynamoDbEncryptorCallHistory) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = &ILegacyDynamoDbEncryptorCallHistory{} + +// End of class ILegacyDynamoDbEncryptorCallHistory + +// Definition of trait ILegacyDynamoDbEncryptor +type ILegacyDynamoDbEncryptor interface { + String() string +} +type CompanionStruct_ILegacyDynamoDbEncryptor_ struct { + TraitID_ *_dafny.TraitID +} + +var Companion_ILegacyDynamoDbEncryptor_ = CompanionStruct_ILegacyDynamoDbEncryptor_{ + TraitID_: &_dafny.TraitID{}, +} + +func (CompanionStruct_ILegacyDynamoDbEncryptor_) CastTo_(x interface{}) ILegacyDynamoDbEncryptor { + var t ILegacyDynamoDbEncryptor + t, _ = x.(ILegacyDynamoDbEncryptor) + return t +} + +// End of trait ILegacyDynamoDbEncryptor + +// Definition of datatype LegacyOverride +type LegacyOverride struct { + Data_LegacyOverride_ +} + +func (_this LegacyOverride) Get_() Data_LegacyOverride_ { + return _this.Data_LegacyOverride_ +} + +type Data_LegacyOverride_ interface { + isLegacyOverride() +} + +type CompanionStruct_LegacyOverride_ struct { +} + +var Companion_LegacyOverride_ = CompanionStruct_LegacyOverride_{} + +type LegacyOverride_LegacyOverride struct { + Policy LegacyPolicy + Encryptor ILegacyDynamoDbEncryptor + AttributeActionsOnEncrypt _dafny.Map + DefaultAttributeFlag m_Wrappers.Option +} + +func (LegacyOverride_LegacyOverride) isLegacyOverride() {} + +func (CompanionStruct_LegacyOverride_) Create_LegacyOverride_(Policy LegacyPolicy, Encryptor ILegacyDynamoDbEncryptor, AttributeActionsOnEncrypt _dafny.Map, DefaultAttributeFlag m_Wrappers.Option) LegacyOverride { + return LegacyOverride{LegacyOverride_LegacyOverride{Policy, Encryptor, AttributeActionsOnEncrypt, DefaultAttributeFlag}} +} + +func (_this LegacyOverride) Is_LegacyOverride() bool { + _, ok := _this.Get_().(LegacyOverride_LegacyOverride) + return ok +} + +func (CompanionStruct_LegacyOverride_) Default() LegacyOverride { + return Companion_LegacyOverride_.Create_LegacyOverride_(Companion_LegacyPolicy_.Default(), (ILegacyDynamoDbEncryptor)(nil), _dafny.EmptyMap, m_Wrappers.Companion_Option_.Default()) +} + +func (_this LegacyOverride) Dtor_policy() LegacyPolicy { + return _this.Get_().(LegacyOverride_LegacyOverride).Policy +} + +func (_this LegacyOverride) Dtor_encryptor() ILegacyDynamoDbEncryptor { + return _this.Get_().(LegacyOverride_LegacyOverride).Encryptor +} + +func (_this LegacyOverride) Dtor_attributeActionsOnEncrypt() _dafny.Map { + return _this.Get_().(LegacyOverride_LegacyOverride).AttributeActionsOnEncrypt +} + +func (_this LegacyOverride) Dtor_defaultAttributeFlag() m_Wrappers.Option { + return _this.Get_().(LegacyOverride_LegacyOverride).DefaultAttributeFlag +} + +func (_this LegacyOverride) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case LegacyOverride_LegacyOverride: + { + return "AwsCryptographyDbEncryptionSdkDynamoDbTypes.LegacyOverride.LegacyOverride" + "(" + _dafny.String(data.Policy) + ", " + _dafny.String(data.Encryptor) + ", " + _dafny.String(data.AttributeActionsOnEncrypt) + ", " + _dafny.String(data.DefaultAttributeFlag) + ")" + } + default: + { + return "" + } + } +} + +func (_this LegacyOverride) Equals(other LegacyOverride) bool { + switch data1 := _this.Get_().(type) { + case LegacyOverride_LegacyOverride: + { + data2, ok := other.Get_().(LegacyOverride_LegacyOverride) + return ok && data1.Policy.Equals(data2.Policy) && _dafny.AreEqual(data1.Encryptor, data2.Encryptor) && data1.AttributeActionsOnEncrypt.Equals(data2.AttributeActionsOnEncrypt) && data1.DefaultAttributeFlag.Equals(data2.DefaultAttributeFlag) + } + default: + { + return false // unexpected + } + } +} + +func (_this LegacyOverride) EqualsGeneric(other interface{}) bool { + typed, ok := other.(LegacyOverride) + return ok && _this.Equals(typed) +} + +func Type_LegacyOverride_() _dafny.TypeDescriptor { + return type_LegacyOverride_{} +} + +type type_LegacyOverride_ struct { +} + +func (_this type_LegacyOverride_) Default() interface{} { + return Companion_LegacyOverride_.Default() +} + +func (_this type_LegacyOverride_) String() string { + return "AwsCryptographyDbEncryptionSdkDynamoDbTypes.LegacyOverride" +} +func (_this LegacyOverride) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = LegacyOverride{} + +// End of datatype LegacyOverride + +// Definition of datatype LegacyPolicy +type LegacyPolicy struct { + Data_LegacyPolicy_ +} + +func (_this LegacyPolicy) Get_() Data_LegacyPolicy_ { + return _this.Data_LegacyPolicy_ +} + +type Data_LegacyPolicy_ interface { + isLegacyPolicy() +} + +type CompanionStruct_LegacyPolicy_ struct { +} + +var Companion_LegacyPolicy_ = CompanionStruct_LegacyPolicy_{} + +type LegacyPolicy_FORCE__LEGACY__ENCRYPT__ALLOW__LEGACY__DECRYPT struct { +} + +func (LegacyPolicy_FORCE__LEGACY__ENCRYPT__ALLOW__LEGACY__DECRYPT) isLegacyPolicy() {} + +func (CompanionStruct_LegacyPolicy_) Create_FORCE__LEGACY__ENCRYPT__ALLOW__LEGACY__DECRYPT_() LegacyPolicy { + return LegacyPolicy{LegacyPolicy_FORCE__LEGACY__ENCRYPT__ALLOW__LEGACY__DECRYPT{}} +} + +func (_this LegacyPolicy) Is_FORCE__LEGACY__ENCRYPT__ALLOW__LEGACY__DECRYPT() bool { + _, ok := _this.Get_().(LegacyPolicy_FORCE__LEGACY__ENCRYPT__ALLOW__LEGACY__DECRYPT) + return ok +} + +type LegacyPolicy_FORBID__LEGACY__ENCRYPT__ALLOW__LEGACY__DECRYPT struct { +} + +func (LegacyPolicy_FORBID__LEGACY__ENCRYPT__ALLOW__LEGACY__DECRYPT) isLegacyPolicy() {} + +func (CompanionStruct_LegacyPolicy_) Create_FORBID__LEGACY__ENCRYPT__ALLOW__LEGACY__DECRYPT_() LegacyPolicy { + return LegacyPolicy{LegacyPolicy_FORBID__LEGACY__ENCRYPT__ALLOW__LEGACY__DECRYPT{}} +} + +func (_this LegacyPolicy) Is_FORBID__LEGACY__ENCRYPT__ALLOW__LEGACY__DECRYPT() bool { + _, ok := _this.Get_().(LegacyPolicy_FORBID__LEGACY__ENCRYPT__ALLOW__LEGACY__DECRYPT) + return ok +} + +type LegacyPolicy_FORBID__LEGACY__ENCRYPT__FORBID__LEGACY__DECRYPT struct { +} + +func (LegacyPolicy_FORBID__LEGACY__ENCRYPT__FORBID__LEGACY__DECRYPT) isLegacyPolicy() {} + +func (CompanionStruct_LegacyPolicy_) Create_FORBID__LEGACY__ENCRYPT__FORBID__LEGACY__DECRYPT_() LegacyPolicy { + return LegacyPolicy{LegacyPolicy_FORBID__LEGACY__ENCRYPT__FORBID__LEGACY__DECRYPT{}} +} + +func (_this LegacyPolicy) Is_FORBID__LEGACY__ENCRYPT__FORBID__LEGACY__DECRYPT() bool { + _, ok := _this.Get_().(LegacyPolicy_FORBID__LEGACY__ENCRYPT__FORBID__LEGACY__DECRYPT) + return ok +} + +func (CompanionStruct_LegacyPolicy_) Default() LegacyPolicy { + return Companion_LegacyPolicy_.Create_FORCE__LEGACY__ENCRYPT__ALLOW__LEGACY__DECRYPT_() +} + +func (_ CompanionStruct_LegacyPolicy_) AllSingletonConstructors() _dafny.Iterator { + i := -1 + return func() (interface{}, bool) { + i++ + switch i { + case 0: + return Companion_LegacyPolicy_.Create_FORCE__LEGACY__ENCRYPT__ALLOW__LEGACY__DECRYPT_(), true + case 1: + return Companion_LegacyPolicy_.Create_FORBID__LEGACY__ENCRYPT__ALLOW__LEGACY__DECRYPT_(), true + case 2: + return Companion_LegacyPolicy_.Create_FORBID__LEGACY__ENCRYPT__FORBID__LEGACY__DECRYPT_(), true + default: + return LegacyPolicy{}, false + } + } +} + +func (_this LegacyPolicy) String() string { + switch _this.Get_().(type) { + case nil: + return "null" + case LegacyPolicy_FORCE__LEGACY__ENCRYPT__ALLOW__LEGACY__DECRYPT: + { + return "AwsCryptographyDbEncryptionSdkDynamoDbTypes.LegacyPolicy.FORCE_LEGACY_ENCRYPT_ALLOW_LEGACY_DECRYPT" + } + case LegacyPolicy_FORBID__LEGACY__ENCRYPT__ALLOW__LEGACY__DECRYPT: + { + return "AwsCryptographyDbEncryptionSdkDynamoDbTypes.LegacyPolicy.FORBID_LEGACY_ENCRYPT_ALLOW_LEGACY_DECRYPT" + } + case LegacyPolicy_FORBID__LEGACY__ENCRYPT__FORBID__LEGACY__DECRYPT: + { + return "AwsCryptographyDbEncryptionSdkDynamoDbTypes.LegacyPolicy.FORBID_LEGACY_ENCRYPT_FORBID_LEGACY_DECRYPT" + } + default: + { + return "" + } + } +} + +func (_this LegacyPolicy) Equals(other LegacyPolicy) bool { + switch _this.Get_().(type) { + case LegacyPolicy_FORCE__LEGACY__ENCRYPT__ALLOW__LEGACY__DECRYPT: + { + _, ok := other.Get_().(LegacyPolicy_FORCE__LEGACY__ENCRYPT__ALLOW__LEGACY__DECRYPT) + return ok + } + case LegacyPolicy_FORBID__LEGACY__ENCRYPT__ALLOW__LEGACY__DECRYPT: + { + _, ok := other.Get_().(LegacyPolicy_FORBID__LEGACY__ENCRYPT__ALLOW__LEGACY__DECRYPT) + return ok + } + case LegacyPolicy_FORBID__LEGACY__ENCRYPT__FORBID__LEGACY__DECRYPT: + { + _, ok := other.Get_().(LegacyPolicy_FORBID__LEGACY__ENCRYPT__FORBID__LEGACY__DECRYPT) + return ok + } + default: + { + return false // unexpected + } + } +} + +func (_this LegacyPolicy) EqualsGeneric(other interface{}) bool { + typed, ok := other.(LegacyPolicy) + return ok && _this.Equals(typed) +} + +func Type_LegacyPolicy_() _dafny.TypeDescriptor { + return type_LegacyPolicy_{} +} + +type type_LegacyPolicy_ struct { +} + +func (_this type_LegacyPolicy_) Default() interface{} { + return Companion_LegacyPolicy_.Default() +} + +func (_this type_LegacyPolicy_) String() string { + return "AwsCryptographyDbEncryptionSdkDynamoDbTypes.LegacyPolicy" +} +func (_this LegacyPolicy) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = LegacyPolicy{} + +// End of datatype LegacyPolicy + +// Definition of datatype Lower +type Lower struct { + Data_Lower_ +} + +func (_this Lower) Get_() Data_Lower_ { + return _this.Data_Lower_ +} + +type Data_Lower_ interface { + isLower() +} + +type CompanionStruct_Lower_ struct { +} + +var Companion_Lower_ = CompanionStruct_Lower_{} + +type Lower_Lower struct { +} + +func (Lower_Lower) isLower() {} + +func (CompanionStruct_Lower_) Create_Lower_() Lower { + return Lower{Lower_Lower{}} +} + +func (_this Lower) Is_Lower() bool { + _, ok := _this.Get_().(Lower_Lower) + return ok +} + +func (CompanionStruct_Lower_) Default() Lower { + return Companion_Lower_.Create_Lower_() +} + +func (_ CompanionStruct_Lower_) AllSingletonConstructors() _dafny.Iterator { + i := -1 + return func() (interface{}, bool) { + i++ + switch i { + case 0: + return Companion_Lower_.Create_Lower_(), true + default: + return Lower{}, false + } + } +} + +func (_this Lower) String() string { + switch _this.Get_().(type) { + case nil: + return "null" + case Lower_Lower: + { + return "AwsCryptographyDbEncryptionSdkDynamoDbTypes.Lower.Lower" + } + default: + { + return "" + } + } +} + +func (_this Lower) Equals(other Lower) bool { + switch _this.Get_().(type) { + case Lower_Lower: + { + _, ok := other.Get_().(Lower_Lower) + return ok + } + default: + { + return false // unexpected + } + } +} + +func (_this Lower) EqualsGeneric(other interface{}) bool { + typed, ok := other.(Lower) + return ok && _this.Equals(typed) +} + +func Type_Lower_() _dafny.TypeDescriptor { + return type_Lower_{} +} + +type type_Lower_ struct { +} + +func (_this type_Lower_) Default() interface{} { + return Companion_Lower_.Default() +} + +func (_this type_Lower_) String() string { + return "AwsCryptographyDbEncryptionSdkDynamoDbTypes.Lower" +} +func (_this Lower) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = Lower{} + +// End of datatype Lower + +// Definition of datatype MultiKeyStore +type MultiKeyStore struct { + Data_MultiKeyStore_ +} + +func (_this MultiKeyStore) Get_() Data_MultiKeyStore_ { + return _this.Data_MultiKeyStore_ +} + +type Data_MultiKeyStore_ interface { + isMultiKeyStore() +} + +type CompanionStruct_MultiKeyStore_ struct { +} + +var Companion_MultiKeyStore_ = CompanionStruct_MultiKeyStore_{} + +type MultiKeyStore_MultiKeyStore struct { + KeyFieldName _dafny.Sequence + CacheTTL int32 + Cache m_Wrappers.Option + PartitionId m_Wrappers.Option +} + +func (MultiKeyStore_MultiKeyStore) isMultiKeyStore() {} + +func (CompanionStruct_MultiKeyStore_) Create_MultiKeyStore_(KeyFieldName _dafny.Sequence, CacheTTL int32, Cache m_Wrappers.Option, PartitionId m_Wrappers.Option) MultiKeyStore { + return MultiKeyStore{MultiKeyStore_MultiKeyStore{KeyFieldName, CacheTTL, Cache, PartitionId}} +} + +func (_this MultiKeyStore) Is_MultiKeyStore() bool { + _, ok := _this.Get_().(MultiKeyStore_MultiKeyStore) + return ok +} + +func (CompanionStruct_MultiKeyStore_) Default() MultiKeyStore { + return Companion_MultiKeyStore_.Create_MultiKeyStore_(_dafny.EmptySeq.SetString(), int32(0), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this MultiKeyStore) Dtor_keyFieldName() _dafny.Sequence { + return _this.Get_().(MultiKeyStore_MultiKeyStore).KeyFieldName +} + +func (_this MultiKeyStore) Dtor_cacheTTL() int32 { + return _this.Get_().(MultiKeyStore_MultiKeyStore).CacheTTL +} + +func (_this MultiKeyStore) Dtor_cache() m_Wrappers.Option { + return _this.Get_().(MultiKeyStore_MultiKeyStore).Cache +} + +func (_this MultiKeyStore) Dtor_partitionId() m_Wrappers.Option { + return _this.Get_().(MultiKeyStore_MultiKeyStore).PartitionId +} + +func (_this MultiKeyStore) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case MultiKeyStore_MultiKeyStore: + { + return "AwsCryptographyDbEncryptionSdkDynamoDbTypes.MultiKeyStore.MultiKeyStore" + "(" + _dafny.String(data.KeyFieldName) + ", " + _dafny.String(data.CacheTTL) + ", " + _dafny.String(data.Cache) + ", " + _dafny.String(data.PartitionId) + ")" + } + default: + { + return "" + } + } +} + +func (_this MultiKeyStore) Equals(other MultiKeyStore) bool { + switch data1 := _this.Get_().(type) { + case MultiKeyStore_MultiKeyStore: + { + data2, ok := other.Get_().(MultiKeyStore_MultiKeyStore) + return ok && data1.KeyFieldName.Equals(data2.KeyFieldName) && data1.CacheTTL == data2.CacheTTL && data1.Cache.Equals(data2.Cache) && data1.PartitionId.Equals(data2.PartitionId) + } + default: + { + return false // unexpected + } + } +} + +func (_this MultiKeyStore) EqualsGeneric(other interface{}) bool { + typed, ok := other.(MultiKeyStore) + return ok && _this.Equals(typed) +} + +func Type_MultiKeyStore_() _dafny.TypeDescriptor { + return type_MultiKeyStore_{} +} + +type type_MultiKeyStore_ struct { +} + +func (_this type_MultiKeyStore_) Default() interface{} { + return Companion_MultiKeyStore_.Default() +} + +func (_this type_MultiKeyStore_) String() string { + return "AwsCryptographyDbEncryptionSdkDynamoDbTypes.MultiKeyStore" +} +func (_this MultiKeyStore) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = MultiKeyStore{} + +// End of datatype MultiKeyStore + +// Definition of datatype PartOnly +type PartOnly struct { + Data_PartOnly_ +} + +func (_this PartOnly) Get_() Data_PartOnly_ { + return _this.Data_PartOnly_ +} + +type Data_PartOnly_ interface { + isPartOnly() +} + +type CompanionStruct_PartOnly_ struct { +} + +var Companion_PartOnly_ = CompanionStruct_PartOnly_{} + +type PartOnly_PartOnly struct { +} + +func (PartOnly_PartOnly) isPartOnly() {} + +func (CompanionStruct_PartOnly_) Create_PartOnly_() PartOnly { + return PartOnly{PartOnly_PartOnly{}} +} + +func (_this PartOnly) Is_PartOnly() bool { + _, ok := _this.Get_().(PartOnly_PartOnly) + return ok +} + +func (CompanionStruct_PartOnly_) Default() PartOnly { + return Companion_PartOnly_.Create_PartOnly_() +} + +func (_ CompanionStruct_PartOnly_) AllSingletonConstructors() _dafny.Iterator { + i := -1 + return func() (interface{}, bool) { + i++ + switch i { + case 0: + return Companion_PartOnly_.Create_PartOnly_(), true + default: + return PartOnly{}, false + } + } +} + +func (_this PartOnly) String() string { + switch _this.Get_().(type) { + case nil: + return "null" + case PartOnly_PartOnly: + { + return "AwsCryptographyDbEncryptionSdkDynamoDbTypes.PartOnly.PartOnly" + } + default: + { + return "" + } + } +} + +func (_this PartOnly) Equals(other PartOnly) bool { + switch _this.Get_().(type) { + case PartOnly_PartOnly: + { + _, ok := other.Get_().(PartOnly_PartOnly) + return ok + } + default: + { + return false // unexpected + } + } +} + +func (_this PartOnly) EqualsGeneric(other interface{}) bool { + typed, ok := other.(PartOnly) + return ok && _this.Equals(typed) +} + +func Type_PartOnly_() _dafny.TypeDescriptor { + return type_PartOnly_{} +} + +type type_PartOnly_ struct { +} + +func (_this type_PartOnly_) Default() interface{} { + return Companion_PartOnly_.Default() +} + +func (_this type_PartOnly_) String() string { + return "AwsCryptographyDbEncryptionSdkDynamoDbTypes.PartOnly" +} +func (_this PartOnly) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = PartOnly{} + +// End of datatype PartOnly + +// Definition of datatype PlaintextOverride +type PlaintextOverride struct { + Data_PlaintextOverride_ +} + +func (_this PlaintextOverride) Get_() Data_PlaintextOverride_ { + return _this.Data_PlaintextOverride_ +} + +type Data_PlaintextOverride_ interface { + isPlaintextOverride() +} + +type CompanionStruct_PlaintextOverride_ struct { +} + +var Companion_PlaintextOverride_ = CompanionStruct_PlaintextOverride_{} + +type PlaintextOverride_FORCE__PLAINTEXT__WRITE__ALLOW__PLAINTEXT__READ struct { +} + +func (PlaintextOverride_FORCE__PLAINTEXT__WRITE__ALLOW__PLAINTEXT__READ) isPlaintextOverride() {} + +func (CompanionStruct_PlaintextOverride_) Create_FORCE__PLAINTEXT__WRITE__ALLOW__PLAINTEXT__READ_() PlaintextOverride { + return PlaintextOverride{PlaintextOverride_FORCE__PLAINTEXT__WRITE__ALLOW__PLAINTEXT__READ{}} +} + +func (_this PlaintextOverride) Is_FORCE__PLAINTEXT__WRITE__ALLOW__PLAINTEXT__READ() bool { + _, ok := _this.Get_().(PlaintextOverride_FORCE__PLAINTEXT__WRITE__ALLOW__PLAINTEXT__READ) + return ok +} + +type PlaintextOverride_FORBID__PLAINTEXT__WRITE__ALLOW__PLAINTEXT__READ struct { +} + +func (PlaintextOverride_FORBID__PLAINTEXT__WRITE__ALLOW__PLAINTEXT__READ) isPlaintextOverride() {} + +func (CompanionStruct_PlaintextOverride_) Create_FORBID__PLAINTEXT__WRITE__ALLOW__PLAINTEXT__READ_() PlaintextOverride { + return PlaintextOverride{PlaintextOverride_FORBID__PLAINTEXT__WRITE__ALLOW__PLAINTEXT__READ{}} +} + +func (_this PlaintextOverride) Is_FORBID__PLAINTEXT__WRITE__ALLOW__PLAINTEXT__READ() bool { + _, ok := _this.Get_().(PlaintextOverride_FORBID__PLAINTEXT__WRITE__ALLOW__PLAINTEXT__READ) + return ok +} + +type PlaintextOverride_FORBID__PLAINTEXT__WRITE__FORBID__PLAINTEXT__READ struct { +} + +func (PlaintextOverride_FORBID__PLAINTEXT__WRITE__FORBID__PLAINTEXT__READ) isPlaintextOverride() {} + +func (CompanionStruct_PlaintextOverride_) Create_FORBID__PLAINTEXT__WRITE__FORBID__PLAINTEXT__READ_() PlaintextOverride { + return PlaintextOverride{PlaintextOverride_FORBID__PLAINTEXT__WRITE__FORBID__PLAINTEXT__READ{}} +} + +func (_this PlaintextOverride) Is_FORBID__PLAINTEXT__WRITE__FORBID__PLAINTEXT__READ() bool { + _, ok := _this.Get_().(PlaintextOverride_FORBID__PLAINTEXT__WRITE__FORBID__PLAINTEXT__READ) + return ok +} + +func (CompanionStruct_PlaintextOverride_) Default() PlaintextOverride { + return Companion_PlaintextOverride_.Create_FORCE__PLAINTEXT__WRITE__ALLOW__PLAINTEXT__READ_() +} + +func (_ CompanionStruct_PlaintextOverride_) AllSingletonConstructors() _dafny.Iterator { + i := -1 + return func() (interface{}, bool) { + i++ + switch i { + case 0: + return Companion_PlaintextOverride_.Create_FORCE__PLAINTEXT__WRITE__ALLOW__PLAINTEXT__READ_(), true + case 1: + return Companion_PlaintextOverride_.Create_FORBID__PLAINTEXT__WRITE__ALLOW__PLAINTEXT__READ_(), true + case 2: + return Companion_PlaintextOverride_.Create_FORBID__PLAINTEXT__WRITE__FORBID__PLAINTEXT__READ_(), true + default: + return PlaintextOverride{}, false + } + } +} + +func (_this PlaintextOverride) String() string { + switch _this.Get_().(type) { + case nil: + return "null" + case PlaintextOverride_FORCE__PLAINTEXT__WRITE__ALLOW__PLAINTEXT__READ: + { + return "AwsCryptographyDbEncryptionSdkDynamoDbTypes.PlaintextOverride.FORCE_PLAINTEXT_WRITE_ALLOW_PLAINTEXT_READ" + } + case PlaintextOverride_FORBID__PLAINTEXT__WRITE__ALLOW__PLAINTEXT__READ: + { + return "AwsCryptographyDbEncryptionSdkDynamoDbTypes.PlaintextOverride.FORBID_PLAINTEXT_WRITE_ALLOW_PLAINTEXT_READ" + } + case PlaintextOverride_FORBID__PLAINTEXT__WRITE__FORBID__PLAINTEXT__READ: + { + return "AwsCryptographyDbEncryptionSdkDynamoDbTypes.PlaintextOverride.FORBID_PLAINTEXT_WRITE_FORBID_PLAINTEXT_READ" + } + default: + { + return "" + } + } +} + +func (_this PlaintextOverride) Equals(other PlaintextOverride) bool { + switch _this.Get_().(type) { + case PlaintextOverride_FORCE__PLAINTEXT__WRITE__ALLOW__PLAINTEXT__READ: + { + _, ok := other.Get_().(PlaintextOverride_FORCE__PLAINTEXT__WRITE__ALLOW__PLAINTEXT__READ) + return ok + } + case PlaintextOverride_FORBID__PLAINTEXT__WRITE__ALLOW__PLAINTEXT__READ: + { + _, ok := other.Get_().(PlaintextOverride_FORBID__PLAINTEXT__WRITE__ALLOW__PLAINTEXT__READ) + return ok + } + case PlaintextOverride_FORBID__PLAINTEXT__WRITE__FORBID__PLAINTEXT__READ: + { + _, ok := other.Get_().(PlaintextOverride_FORBID__PLAINTEXT__WRITE__FORBID__PLAINTEXT__READ) + return ok + } + default: + { + return false // unexpected + } + } +} + +func (_this PlaintextOverride) EqualsGeneric(other interface{}) bool { + typed, ok := other.(PlaintextOverride) + return ok && _this.Equals(typed) +} + +func Type_PlaintextOverride_() _dafny.TypeDescriptor { + return type_PlaintextOverride_{} +} + +type type_PlaintextOverride_ struct { +} + +func (_this type_PlaintextOverride_) Default() interface{} { + return Companion_PlaintextOverride_.Default() +} + +func (_this type_PlaintextOverride_) String() string { + return "AwsCryptographyDbEncryptionSdkDynamoDbTypes.PlaintextOverride" +} +func (_this PlaintextOverride) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = PlaintextOverride{} + +// End of datatype PlaintextOverride + +// Definition of class Prefix +type Prefix struct { +} + +func New_Prefix_() *Prefix { + _this := Prefix{} + + return &_this +} + +type CompanionStruct_Prefix_ struct { +} + +var Companion_Prefix_ = CompanionStruct_Prefix_{} + +func (*Prefix) String() string { + return "AwsCryptographyDbEncryptionSdkDynamoDbTypes.Prefix" +} + +// End of class Prefix + +func Type_Prefix_() _dafny.TypeDescriptor { + return type_Prefix_{} +} + +type type_Prefix_ struct { +} + +func (_this type_Prefix_) Default() interface{} { + return _dafny.EmptySeq.SetString() +} + +func (_this type_Prefix_) String() string { + return "AwsCryptographyDbEncryptionSdkDynamoDbTypes.Prefix" +} +func (_this *CompanionStruct_Prefix_) Is_(__source _dafny.Sequence) bool { + var _0_x _dafny.Sequence = (__source) + _ = _0_x + return Companion_Default___.IsValid__Prefix(_0_x) +} + +// Definition of datatype SearchConfig +type SearchConfig struct { + Data_SearchConfig_ +} + +func (_this SearchConfig) Get_() Data_SearchConfig_ { + return _this.Data_SearchConfig_ +} + +type Data_SearchConfig_ interface { + isSearchConfig() +} + +type CompanionStruct_SearchConfig_ struct { +} + +var Companion_SearchConfig_ = CompanionStruct_SearchConfig_{} + +type SearchConfig_SearchConfig struct { + Versions _dafny.Sequence + WriteVersion int32 +} + +func (SearchConfig_SearchConfig) isSearchConfig() {} + +func (CompanionStruct_SearchConfig_) Create_SearchConfig_(Versions _dafny.Sequence, WriteVersion int32) SearchConfig { + return SearchConfig{SearchConfig_SearchConfig{Versions, WriteVersion}} +} + +func (_this SearchConfig) Is_SearchConfig() bool { + _, ok := _this.Get_().(SearchConfig_SearchConfig) + return ok +} + +func (CompanionStruct_SearchConfig_) Default() SearchConfig { + return Companion_SearchConfig_.Create_SearchConfig_(_dafny.EmptySeq, int32(0)) +} + +func (_this SearchConfig) Dtor_versions() _dafny.Sequence { + return _this.Get_().(SearchConfig_SearchConfig).Versions +} + +func (_this SearchConfig) Dtor_writeVersion() int32 { + return _this.Get_().(SearchConfig_SearchConfig).WriteVersion +} + +func (_this SearchConfig) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case SearchConfig_SearchConfig: + { + return "AwsCryptographyDbEncryptionSdkDynamoDbTypes.SearchConfig.SearchConfig" + "(" + _dafny.String(data.Versions) + ", " + _dafny.String(data.WriteVersion) + ")" + } + default: + { + return "" + } + } +} + +func (_this SearchConfig) Equals(other SearchConfig) bool { + switch data1 := _this.Get_().(type) { + case SearchConfig_SearchConfig: + { + data2, ok := other.Get_().(SearchConfig_SearchConfig) + return ok && data1.Versions.Equals(data2.Versions) && data1.WriteVersion == data2.WriteVersion + } + default: + { + return false // unexpected + } + } +} + +func (_this SearchConfig) EqualsGeneric(other interface{}) bool { + typed, ok := other.(SearchConfig) + return ok && _this.Equals(typed) +} + +func Type_SearchConfig_() _dafny.TypeDescriptor { + return type_SearchConfig_{} +} + +type type_SearchConfig_ struct { +} + +func (_this type_SearchConfig_) Default() interface{} { + return Companion_SearchConfig_.Default() +} + +func (_this type_SearchConfig_) String() string { + return "AwsCryptographyDbEncryptionSdkDynamoDbTypes.SearchConfig" +} +func (_this SearchConfig) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = SearchConfig{} + +// End of datatype SearchConfig + +// Definition of datatype Shared +type Shared struct { + Data_Shared_ +} + +func (_this Shared) Get_() Data_Shared_ { + return _this.Data_Shared_ +} + +type Data_Shared_ interface { + isShared() +} + +type CompanionStruct_Shared_ struct { +} + +var Companion_Shared_ = CompanionStruct_Shared_{} + +type Shared_Shared struct { + Other _dafny.Sequence +} + +func (Shared_Shared) isShared() {} + +func (CompanionStruct_Shared_) Create_Shared_(Other _dafny.Sequence) Shared { + return Shared{Shared_Shared{Other}} +} + +func (_this Shared) Is_Shared() bool { + _, ok := _this.Get_().(Shared_Shared) + return ok +} + +func (CompanionStruct_Shared_) Default() Shared { + return Companion_Shared_.Create_Shared_(_dafny.EmptySeq.SetString()) +} + +func (_this Shared) Dtor_other() _dafny.Sequence { + return _this.Get_().(Shared_Shared).Other +} + +func (_this Shared) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case Shared_Shared: + { + return "AwsCryptographyDbEncryptionSdkDynamoDbTypes.Shared.Shared" + "(" + _dafny.String(data.Other) + ")" + } + default: + { + return "" + } + } +} + +func (_this Shared) Equals(other Shared) bool { + switch data1 := _this.Get_().(type) { + case Shared_Shared: + { + data2, ok := other.Get_().(Shared_Shared) + return ok && data1.Other.Equals(data2.Other) + } + default: + { + return false // unexpected + } + } +} + +func (_this Shared) EqualsGeneric(other interface{}) bool { + typed, ok := other.(Shared) + return ok && _this.Equals(typed) +} + +func Type_Shared_() _dafny.TypeDescriptor { + return type_Shared_{} +} + +type type_Shared_ struct { +} + +func (_this type_Shared_) Default() interface{} { + return Companion_Shared_.Default() +} + +func (_this type_Shared_) String() string { + return "AwsCryptographyDbEncryptionSdkDynamoDbTypes.Shared" +} +func (_this Shared) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = Shared{} + +// End of datatype Shared + +// Definition of datatype SharedSet +type SharedSet struct { + Data_SharedSet_ +} + +func (_this SharedSet) Get_() Data_SharedSet_ { + return _this.Data_SharedSet_ +} + +type Data_SharedSet_ interface { + isSharedSet() +} + +type CompanionStruct_SharedSet_ struct { +} + +var Companion_SharedSet_ = CompanionStruct_SharedSet_{} + +type SharedSet_SharedSet struct { + Other _dafny.Sequence +} + +func (SharedSet_SharedSet) isSharedSet() {} + +func (CompanionStruct_SharedSet_) Create_SharedSet_(Other _dafny.Sequence) SharedSet { + return SharedSet{SharedSet_SharedSet{Other}} +} + +func (_this SharedSet) Is_SharedSet() bool { + _, ok := _this.Get_().(SharedSet_SharedSet) + return ok +} + +func (CompanionStruct_SharedSet_) Default() SharedSet { + return Companion_SharedSet_.Create_SharedSet_(_dafny.EmptySeq.SetString()) +} + +func (_this SharedSet) Dtor_other() _dafny.Sequence { + return _this.Get_().(SharedSet_SharedSet).Other +} + +func (_this SharedSet) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case SharedSet_SharedSet: + { + return "AwsCryptographyDbEncryptionSdkDynamoDbTypes.SharedSet.SharedSet" + "(" + _dafny.String(data.Other) + ")" + } + default: + { + return "" + } + } +} + +func (_this SharedSet) Equals(other SharedSet) bool { + switch data1 := _this.Get_().(type) { + case SharedSet_SharedSet: + { + data2, ok := other.Get_().(SharedSet_SharedSet) + return ok && data1.Other.Equals(data2.Other) + } + default: + { + return false // unexpected + } + } +} + +func (_this SharedSet) EqualsGeneric(other interface{}) bool { + typed, ok := other.(SharedSet) + return ok && _this.Equals(typed) +} + +func Type_SharedSet_() _dafny.TypeDescriptor { + return type_SharedSet_{} +} + +type type_SharedSet_ struct { +} + +func (_this type_SharedSet_) Default() interface{} { + return Companion_SharedSet_.Default() +} + +func (_this type_SharedSet_) String() string { + return "AwsCryptographyDbEncryptionSdkDynamoDbTypes.SharedSet" +} +func (_this SharedSet) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = SharedSet{} + +// End of datatype SharedSet + +// Definition of datatype SignedPart +type SignedPart struct { + Data_SignedPart_ +} + +func (_this SignedPart) Get_() Data_SignedPart_ { + return _this.Data_SignedPart_ +} + +type Data_SignedPart_ interface { + isSignedPart() +} + +type CompanionStruct_SignedPart_ struct { +} + +var Companion_SignedPart_ = CompanionStruct_SignedPart_{} + +type SignedPart_SignedPart struct { + Name _dafny.Sequence + Prefix _dafny.Sequence + Loc m_Wrappers.Option +} + +func (SignedPart_SignedPart) isSignedPart() {} + +func (CompanionStruct_SignedPart_) Create_SignedPart_(Name _dafny.Sequence, Prefix _dafny.Sequence, Loc m_Wrappers.Option) SignedPart { + return SignedPart{SignedPart_SignedPart{Name, Prefix, Loc}} +} + +func (_this SignedPart) Is_SignedPart() bool { + _, ok := _this.Get_().(SignedPart_SignedPart) + return ok +} + +func (CompanionStruct_SignedPart_) Default() SignedPart { + return Companion_SignedPart_.Create_SignedPart_(_dafny.EmptySeq.SetString(), _dafny.EmptySeq.SetString(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this SignedPart) Dtor_name() _dafny.Sequence { + return _this.Get_().(SignedPart_SignedPart).Name +} + +func (_this SignedPart) Dtor_prefix() _dafny.Sequence { + return _this.Get_().(SignedPart_SignedPart).Prefix +} + +func (_this SignedPart) Dtor_loc() m_Wrappers.Option { + return _this.Get_().(SignedPart_SignedPart).Loc +} + +func (_this SignedPart) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case SignedPart_SignedPart: + { + return "AwsCryptographyDbEncryptionSdkDynamoDbTypes.SignedPart.SignedPart" + "(" + _dafny.String(data.Name) + ", " + _dafny.String(data.Prefix) + ", " + _dafny.String(data.Loc) + ")" + } + default: + { + return "" + } + } +} + +func (_this SignedPart) Equals(other SignedPart) bool { + switch data1 := _this.Get_().(type) { + case SignedPart_SignedPart: + { + data2, ok := other.Get_().(SignedPart_SignedPart) + return ok && data1.Name.Equals(data2.Name) && data1.Prefix.Equals(data2.Prefix) && data1.Loc.Equals(data2.Loc) + } + default: + { + return false // unexpected + } + } +} + +func (_this SignedPart) EqualsGeneric(other interface{}) bool { + typed, ok := other.(SignedPart) + return ok && _this.Equals(typed) +} + +func Type_SignedPart_() _dafny.TypeDescriptor { + return type_SignedPart_{} +} + +type type_SignedPart_ struct { +} + +func (_this type_SignedPart_) Default() interface{} { + return Companion_SignedPart_.Default() +} + +func (_this type_SignedPart_) String() string { + return "AwsCryptographyDbEncryptionSdkDynamoDbTypes.SignedPart" +} +func (_this SignedPart) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = SignedPart{} + +// End of datatype SignedPart + +// Definition of class SignedPartsList +type SignedPartsList struct { +} + +func New_SignedPartsList_() *SignedPartsList { + _this := SignedPartsList{} + + return &_this +} + +type CompanionStruct_SignedPartsList_ struct { +} + +var Companion_SignedPartsList_ = CompanionStruct_SignedPartsList_{} + +func (*SignedPartsList) String() string { + return "AwsCryptographyDbEncryptionSdkDynamoDbTypes.SignedPartsList" +} + +// End of class SignedPartsList + +func Type_SignedPartsList_() _dafny.TypeDescriptor { + return type_SignedPartsList_{} +} + +type type_SignedPartsList_ struct { +} + +func (_this type_SignedPartsList_) Default() interface{} { + return _dafny.EmptySeq +} + +func (_this type_SignedPartsList_) String() string { + return "AwsCryptographyDbEncryptionSdkDynamoDbTypes.SignedPartsList" +} +func (_this *CompanionStruct_SignedPartsList_) Is_(__source _dafny.Sequence) bool { + var _1_x _dafny.Sequence = (__source) + _ = _1_x + return Companion_Default___.IsValid__SignedPartsList(_1_x) +} + +// Definition of datatype SingleKeyStore +type SingleKeyStore struct { + Data_SingleKeyStore_ +} + +func (_this SingleKeyStore) Get_() Data_SingleKeyStore_ { + return _this.Data_SingleKeyStore_ +} + +type Data_SingleKeyStore_ interface { + isSingleKeyStore() +} + +type CompanionStruct_SingleKeyStore_ struct { +} + +var Companion_SingleKeyStore_ = CompanionStruct_SingleKeyStore_{} + +type SingleKeyStore_SingleKeyStore struct { + KeyId _dafny.Sequence + CacheTTL int32 + Cache m_Wrappers.Option + PartitionId m_Wrappers.Option +} + +func (SingleKeyStore_SingleKeyStore) isSingleKeyStore() {} + +func (CompanionStruct_SingleKeyStore_) Create_SingleKeyStore_(KeyId _dafny.Sequence, CacheTTL int32, Cache m_Wrappers.Option, PartitionId m_Wrappers.Option) SingleKeyStore { + return SingleKeyStore{SingleKeyStore_SingleKeyStore{KeyId, CacheTTL, Cache, PartitionId}} +} + +func (_this SingleKeyStore) Is_SingleKeyStore() bool { + _, ok := _this.Get_().(SingleKeyStore_SingleKeyStore) + return ok +} + +func (CompanionStruct_SingleKeyStore_) Default() SingleKeyStore { + return Companion_SingleKeyStore_.Create_SingleKeyStore_(_dafny.EmptySeq.SetString(), int32(0), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this SingleKeyStore) Dtor_keyId() _dafny.Sequence { + return _this.Get_().(SingleKeyStore_SingleKeyStore).KeyId +} + +func (_this SingleKeyStore) Dtor_cacheTTL() int32 { + return _this.Get_().(SingleKeyStore_SingleKeyStore).CacheTTL +} + +func (_this SingleKeyStore) Dtor_cache() m_Wrappers.Option { + return _this.Get_().(SingleKeyStore_SingleKeyStore).Cache +} + +func (_this SingleKeyStore) Dtor_partitionId() m_Wrappers.Option { + return _this.Get_().(SingleKeyStore_SingleKeyStore).PartitionId +} + +func (_this SingleKeyStore) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case SingleKeyStore_SingleKeyStore: + { + return "AwsCryptographyDbEncryptionSdkDynamoDbTypes.SingleKeyStore.SingleKeyStore" + "(" + _dafny.String(data.KeyId) + ", " + _dafny.String(data.CacheTTL) + ", " + _dafny.String(data.Cache) + ", " + _dafny.String(data.PartitionId) + ")" + } + default: + { + return "" + } + } +} + +func (_this SingleKeyStore) Equals(other SingleKeyStore) bool { + switch data1 := _this.Get_().(type) { + case SingleKeyStore_SingleKeyStore: + { + data2, ok := other.Get_().(SingleKeyStore_SingleKeyStore) + return ok && data1.KeyId.Equals(data2.KeyId) && data1.CacheTTL == data2.CacheTTL && data1.Cache.Equals(data2.Cache) && data1.PartitionId.Equals(data2.PartitionId) + } + default: + { + return false // unexpected + } + } +} + +func (_this SingleKeyStore) EqualsGeneric(other interface{}) bool { + typed, ok := other.(SingleKeyStore) + return ok && _this.Equals(typed) +} + +func Type_SingleKeyStore_() _dafny.TypeDescriptor { + return type_SingleKeyStore_{} +} + +type type_SingleKeyStore_ struct { +} + +func (_this type_SingleKeyStore_) Default() interface{} { + return Companion_SingleKeyStore_.Default() +} + +func (_this type_SingleKeyStore_) String() string { + return "AwsCryptographyDbEncryptionSdkDynamoDbTypes.SingleKeyStore" +} +func (_this SingleKeyStore) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = SingleKeyStore{} + +// End of datatype SingleKeyStore + +// Definition of datatype StandardBeacon +type StandardBeacon struct { + Data_StandardBeacon_ +} + +func (_this StandardBeacon) Get_() Data_StandardBeacon_ { + return _this.Data_StandardBeacon_ +} + +type Data_StandardBeacon_ interface { + isStandardBeacon() +} + +type CompanionStruct_StandardBeacon_ struct { +} + +var Companion_StandardBeacon_ = CompanionStruct_StandardBeacon_{} + +type StandardBeacon_StandardBeacon struct { + Name _dafny.Sequence + Length int32 + Loc m_Wrappers.Option + Style m_Wrappers.Option +} + +func (StandardBeacon_StandardBeacon) isStandardBeacon() {} + +func (CompanionStruct_StandardBeacon_) Create_StandardBeacon_(Name _dafny.Sequence, Length int32, Loc m_Wrappers.Option, Style m_Wrappers.Option) StandardBeacon { + return StandardBeacon{StandardBeacon_StandardBeacon{Name, Length, Loc, Style}} +} + +func (_this StandardBeacon) Is_StandardBeacon() bool { + _, ok := _this.Get_().(StandardBeacon_StandardBeacon) + return ok +} + +func (CompanionStruct_StandardBeacon_) Default() StandardBeacon { + return Companion_StandardBeacon_.Create_StandardBeacon_(_dafny.EmptySeq.SetString(), int32(0), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this StandardBeacon) Dtor_name() _dafny.Sequence { + return _this.Get_().(StandardBeacon_StandardBeacon).Name +} + +func (_this StandardBeacon) Dtor_length() int32 { + return _this.Get_().(StandardBeacon_StandardBeacon).Length +} + +func (_this StandardBeacon) Dtor_loc() m_Wrappers.Option { + return _this.Get_().(StandardBeacon_StandardBeacon).Loc +} + +func (_this StandardBeacon) Dtor_style() m_Wrappers.Option { + return _this.Get_().(StandardBeacon_StandardBeacon).Style +} + +func (_this StandardBeacon) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case StandardBeacon_StandardBeacon: + { + return "AwsCryptographyDbEncryptionSdkDynamoDbTypes.StandardBeacon.StandardBeacon" + "(" + _dafny.String(data.Name) + ", " + _dafny.String(data.Length) + ", " + _dafny.String(data.Loc) + ", " + _dafny.String(data.Style) + ")" + } + default: + { + return "" + } + } +} + +func (_this StandardBeacon) Equals(other StandardBeacon) bool { + switch data1 := _this.Get_().(type) { + case StandardBeacon_StandardBeacon: + { + data2, ok := other.Get_().(StandardBeacon_StandardBeacon) + return ok && data1.Name.Equals(data2.Name) && data1.Length == data2.Length && data1.Loc.Equals(data2.Loc) && data1.Style.Equals(data2.Style) + } + default: + { + return false // unexpected + } + } +} + +func (_this StandardBeacon) EqualsGeneric(other interface{}) bool { + typed, ok := other.(StandardBeacon) + return ok && _this.Equals(typed) +} + +func Type_StandardBeacon_() _dafny.TypeDescriptor { + return type_StandardBeacon_{} +} + +type type_StandardBeacon_ struct { +} + +func (_this type_StandardBeacon_) Default() interface{} { + return Companion_StandardBeacon_.Default() +} + +func (_this type_StandardBeacon_) String() string { + return "AwsCryptographyDbEncryptionSdkDynamoDbTypes.StandardBeacon" +} +func (_this StandardBeacon) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = StandardBeacon{} + +// End of datatype StandardBeacon + +// Definition of class StandardBeaconList +type StandardBeaconList struct { +} + +func New_StandardBeaconList_() *StandardBeaconList { + _this := StandardBeaconList{} + + return &_this +} + +type CompanionStruct_StandardBeaconList_ struct { +} + +var Companion_StandardBeaconList_ = CompanionStruct_StandardBeaconList_{} + +func (*StandardBeaconList) String() string { + return "AwsCryptographyDbEncryptionSdkDynamoDbTypes.StandardBeaconList" +} + +// End of class StandardBeaconList + +func Type_StandardBeaconList_() _dafny.TypeDescriptor { + return type_StandardBeaconList_{} +} + +type type_StandardBeaconList_ struct { +} + +func (_this type_StandardBeaconList_) Default() interface{} { + return _dafny.EmptySeq +} + +func (_this type_StandardBeaconList_) String() string { + return "AwsCryptographyDbEncryptionSdkDynamoDbTypes.StandardBeaconList" +} +func (_this *CompanionStruct_StandardBeaconList_) Is_(__source _dafny.Sequence) bool { + var _2_x _dafny.Sequence = (__source) + _ = _2_x + return Companion_Default___.IsValid__StandardBeaconList(_2_x) +} + +// Definition of class TerminalLocation +type TerminalLocation struct { +} + +func New_TerminalLocation_() *TerminalLocation { + _this := TerminalLocation{} + + return &_this +} + +type CompanionStruct_TerminalLocation_ struct { +} + +var Companion_TerminalLocation_ = CompanionStruct_TerminalLocation_{} + +func (*TerminalLocation) String() string { + return "AwsCryptographyDbEncryptionSdkDynamoDbTypes.TerminalLocation" +} + +// End of class TerminalLocation + +func Type_TerminalLocation_() _dafny.TypeDescriptor { + return type_TerminalLocation_{} +} + +type type_TerminalLocation_ struct { +} + +func (_this type_TerminalLocation_) Default() interface{} { + return _dafny.EmptySeq.SetString() +} + +func (_this type_TerminalLocation_) String() string { + return "AwsCryptographyDbEncryptionSdkDynamoDbTypes.TerminalLocation" +} +func (_this *CompanionStruct_TerminalLocation_) Is_(__source _dafny.Sequence) bool { + var _3_x _dafny.Sequence = (__source) + _ = _3_x + return Companion_Default___.IsValid__TerminalLocation(_3_x) +} + +// Definition of datatype Upper +type Upper struct { + Data_Upper_ +} + +func (_this Upper) Get_() Data_Upper_ { + return _this.Data_Upper_ +} + +type Data_Upper_ interface { + isUpper() +} + +type CompanionStruct_Upper_ struct { +} + +var Companion_Upper_ = CompanionStruct_Upper_{} + +type Upper_Upper struct { +} + +func (Upper_Upper) isUpper() {} + +func (CompanionStruct_Upper_) Create_Upper_() Upper { + return Upper{Upper_Upper{}} +} + +func (_this Upper) Is_Upper() bool { + _, ok := _this.Get_().(Upper_Upper) + return ok +} + +func (CompanionStruct_Upper_) Default() Upper { + return Companion_Upper_.Create_Upper_() +} + +func (_ CompanionStruct_Upper_) AllSingletonConstructors() _dafny.Iterator { + i := -1 + return func() (interface{}, bool) { + i++ + switch i { + case 0: + return Companion_Upper_.Create_Upper_(), true + default: + return Upper{}, false + } + } +} + +func (_this Upper) String() string { + switch _this.Get_().(type) { + case nil: + return "null" + case Upper_Upper: + { + return "AwsCryptographyDbEncryptionSdkDynamoDbTypes.Upper.Upper" + } + default: + { + return "" + } + } +} + +func (_this Upper) Equals(other Upper) bool { + switch _this.Get_().(type) { + case Upper_Upper: + { + _, ok := other.Get_().(Upper_Upper) + return ok + } + default: + { + return false // unexpected + } + } +} + +func (_this Upper) EqualsGeneric(other interface{}) bool { + typed, ok := other.(Upper) + return ok && _this.Equals(typed) +} + +func Type_Upper_() _dafny.TypeDescriptor { + return type_Upper_{} +} + +type type_Upper_ struct { +} + +func (_this type_Upper_) Default() interface{} { + return Companion_Upper_.Default() +} + +func (_this type_Upper_) String() string { + return "AwsCryptographyDbEncryptionSdkDynamoDbTypes.Upper" +} +func (_this Upper) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = Upper{} + +// End of datatype Upper + +// Definition of class VersionNumber +type VersionNumber struct { +} + +func New_VersionNumber_() *VersionNumber { + _this := VersionNumber{} + + return &_this +} + +type CompanionStruct_VersionNumber_ struct { +} + +var Companion_VersionNumber_ = CompanionStruct_VersionNumber_{} + +func (*VersionNumber) String() string { + return "AwsCryptographyDbEncryptionSdkDynamoDbTypes.VersionNumber" +} + +// End of class VersionNumber + +func Type_VersionNumber_() _dafny.TypeDescriptor { + return type_VersionNumber_{} +} + +type type_VersionNumber_ struct { +} + +func (_this type_VersionNumber_) Default() interface{} { + return int32(0) +} + +func (_this type_VersionNumber_) String() string { + return "AwsCryptographyDbEncryptionSdkDynamoDbTypes.VersionNumber" +} +func (_this *CompanionStruct_VersionNumber_) Is_(__source int32) bool { + var _4_x int32 = (__source) + _ = _4_x + if true { + return Companion_Default___.IsValid__VersionNumber(_4_x) + } + return false +} + +// Definition of datatype VirtualField +type VirtualField struct { + Data_VirtualField_ +} + +func (_this VirtualField) Get_() Data_VirtualField_ { + return _this.Data_VirtualField_ +} + +type Data_VirtualField_ interface { + isVirtualField() +} + +type CompanionStruct_VirtualField_ struct { +} + +var Companion_VirtualField_ = CompanionStruct_VirtualField_{} + +type VirtualField_VirtualField struct { + Name _dafny.Sequence + Parts _dafny.Sequence +} + +func (VirtualField_VirtualField) isVirtualField() {} + +func (CompanionStruct_VirtualField_) Create_VirtualField_(Name _dafny.Sequence, Parts _dafny.Sequence) VirtualField { + return VirtualField{VirtualField_VirtualField{Name, Parts}} +} + +func (_this VirtualField) Is_VirtualField() bool { + _, ok := _this.Get_().(VirtualField_VirtualField) + return ok +} + +func (CompanionStruct_VirtualField_) Default() VirtualField { + return Companion_VirtualField_.Create_VirtualField_(_dafny.EmptySeq.SetString(), _dafny.EmptySeq) +} + +func (_this VirtualField) Dtor_name() _dafny.Sequence { + return _this.Get_().(VirtualField_VirtualField).Name +} + +func (_this VirtualField) Dtor_parts() _dafny.Sequence { + return _this.Get_().(VirtualField_VirtualField).Parts +} + +func (_this VirtualField) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case VirtualField_VirtualField: + { + return "AwsCryptographyDbEncryptionSdkDynamoDbTypes.VirtualField.VirtualField" + "(" + _dafny.String(data.Name) + ", " + _dafny.String(data.Parts) + ")" + } + default: + { + return "" + } + } +} + +func (_this VirtualField) Equals(other VirtualField) bool { + switch data1 := _this.Get_().(type) { + case VirtualField_VirtualField: + { + data2, ok := other.Get_().(VirtualField_VirtualField) + return ok && data1.Name.Equals(data2.Name) && data1.Parts.Equals(data2.Parts) + } + default: + { + return false // unexpected + } + } +} + +func (_this VirtualField) EqualsGeneric(other interface{}) bool { + typed, ok := other.(VirtualField) + return ok && _this.Equals(typed) +} + +func Type_VirtualField_() _dafny.TypeDescriptor { + return type_VirtualField_{} +} + +type type_VirtualField_ struct { +} + +func (_this type_VirtualField_) Default() interface{} { + return Companion_VirtualField_.Default() +} + +func (_this type_VirtualField_) String() string { + return "AwsCryptographyDbEncryptionSdkDynamoDbTypes.VirtualField" +} +func (_this VirtualField) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = VirtualField{} + +// End of datatype VirtualField + +// Definition of class VirtualFieldList +type VirtualFieldList struct { +} + +func New_VirtualFieldList_() *VirtualFieldList { + _this := VirtualFieldList{} + + return &_this +} + +type CompanionStruct_VirtualFieldList_ struct { +} + +var Companion_VirtualFieldList_ = CompanionStruct_VirtualFieldList_{} + +func (*VirtualFieldList) String() string { + return "AwsCryptographyDbEncryptionSdkDynamoDbTypes.VirtualFieldList" +} + +// End of class VirtualFieldList + +func Type_VirtualFieldList_() _dafny.TypeDescriptor { + return type_VirtualFieldList_{} +} + +type type_VirtualFieldList_ struct { +} + +func (_this type_VirtualFieldList_) Default() interface{} { + return _dafny.EmptySeq +} + +func (_this type_VirtualFieldList_) String() string { + return "AwsCryptographyDbEncryptionSdkDynamoDbTypes.VirtualFieldList" +} +func (_this *CompanionStruct_VirtualFieldList_) Is_(__source _dafny.Sequence) bool { + var _5_x _dafny.Sequence = (__source) + _ = _5_x + return Companion_Default___.IsValid__VirtualFieldList(_5_x) +} + +// Definition of datatype VirtualPart +type VirtualPart struct { + Data_VirtualPart_ +} + +func (_this VirtualPart) Get_() Data_VirtualPart_ { + return _this.Data_VirtualPart_ +} + +type Data_VirtualPart_ interface { + isVirtualPart() +} + +type CompanionStruct_VirtualPart_ struct { +} + +var Companion_VirtualPart_ = CompanionStruct_VirtualPart_{} + +type VirtualPart_VirtualPart struct { + Loc _dafny.Sequence + Trans m_Wrappers.Option +} + +func (VirtualPart_VirtualPart) isVirtualPart() {} + +func (CompanionStruct_VirtualPart_) Create_VirtualPart_(Loc _dafny.Sequence, Trans m_Wrappers.Option) VirtualPart { + return VirtualPart{VirtualPart_VirtualPart{Loc, Trans}} +} + +func (_this VirtualPart) Is_VirtualPart() bool { + _, ok := _this.Get_().(VirtualPart_VirtualPart) + return ok +} + +func (CompanionStruct_VirtualPart_) Default() VirtualPart { + return Companion_VirtualPart_.Create_VirtualPart_(_dafny.EmptySeq.SetString(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this VirtualPart) Dtor_loc() _dafny.Sequence { + return _this.Get_().(VirtualPart_VirtualPart).Loc +} + +func (_this VirtualPart) Dtor_trans() m_Wrappers.Option { + return _this.Get_().(VirtualPart_VirtualPart).Trans +} + +func (_this VirtualPart) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case VirtualPart_VirtualPart: + { + return "AwsCryptographyDbEncryptionSdkDynamoDbTypes.VirtualPart.VirtualPart" + "(" + _dafny.String(data.Loc) + ", " + _dafny.String(data.Trans) + ")" + } + default: + { + return "" + } + } +} + +func (_this VirtualPart) Equals(other VirtualPart) bool { + switch data1 := _this.Get_().(type) { + case VirtualPart_VirtualPart: + { + data2, ok := other.Get_().(VirtualPart_VirtualPart) + return ok && data1.Loc.Equals(data2.Loc) && data1.Trans.Equals(data2.Trans) + } + default: + { + return false // unexpected + } + } +} + +func (_this VirtualPart) EqualsGeneric(other interface{}) bool { + typed, ok := other.(VirtualPart) + return ok && _this.Equals(typed) +} + +func Type_VirtualPart_() _dafny.TypeDescriptor { + return type_VirtualPart_{} +} + +type type_VirtualPart_ struct { +} + +func (_this type_VirtualPart_) Default() interface{} { + return Companion_VirtualPart_.Default() +} + +func (_this type_VirtualPart_) String() string { + return "AwsCryptographyDbEncryptionSdkDynamoDbTypes.VirtualPart" +} +func (_this VirtualPart) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = VirtualPart{} + +// End of datatype VirtualPart + +// Definition of class VirtualPartList +type VirtualPartList struct { +} + +func New_VirtualPartList_() *VirtualPartList { + _this := VirtualPartList{} + + return &_this +} + +type CompanionStruct_VirtualPartList_ struct { +} + +var Companion_VirtualPartList_ = CompanionStruct_VirtualPartList_{} + +func (*VirtualPartList) String() string { + return "AwsCryptographyDbEncryptionSdkDynamoDbTypes.VirtualPartList" +} + +// End of class VirtualPartList + +func Type_VirtualPartList_() _dafny.TypeDescriptor { + return type_VirtualPartList_{} +} + +type type_VirtualPartList_ struct { +} + +func (_this type_VirtualPartList_) Default() interface{} { + return _dafny.EmptySeq +} + +func (_this type_VirtualPartList_) String() string { + return "AwsCryptographyDbEncryptionSdkDynamoDbTypes.VirtualPartList" +} +func (_this *CompanionStruct_VirtualPartList_) Is_(__source _dafny.Sequence) bool { + var _6_x _dafny.Sequence = (__source) + _ = _6_x + return Companion_Default___.IsValid__VirtualPartList(_6_x) +} + +// Definition of datatype VirtualTransform +type VirtualTransform struct { + Data_VirtualTransform_ +} + +func (_this VirtualTransform) Get_() Data_VirtualTransform_ { + return _this.Data_VirtualTransform_ +} + +type Data_VirtualTransform_ interface { + isVirtualTransform() +} + +type CompanionStruct_VirtualTransform_ struct { +} + +var Companion_VirtualTransform_ = CompanionStruct_VirtualTransform_{} + +type VirtualTransform_upper struct { + Upper Upper +} + +func (VirtualTransform_upper) isVirtualTransform() {} + +func (CompanionStruct_VirtualTransform_) Create_upper_(Upper Upper) VirtualTransform { + return VirtualTransform{VirtualTransform_upper{Upper}} +} + +func (_this VirtualTransform) Is_upper() bool { + _, ok := _this.Get_().(VirtualTransform_upper) + return ok +} + +type VirtualTransform_lower struct { + Lower Lower +} + +func (VirtualTransform_lower) isVirtualTransform() {} + +func (CompanionStruct_VirtualTransform_) Create_lower_(Lower Lower) VirtualTransform { + return VirtualTransform{VirtualTransform_lower{Lower}} +} + +func (_this VirtualTransform) Is_lower() bool { + _, ok := _this.Get_().(VirtualTransform_lower) + return ok +} + +type VirtualTransform_insert struct { + Insert Insert +} + +func (VirtualTransform_insert) isVirtualTransform() {} + +func (CompanionStruct_VirtualTransform_) Create_insert_(Insert Insert) VirtualTransform { + return VirtualTransform{VirtualTransform_insert{Insert}} +} + +func (_this VirtualTransform) Is_insert() bool { + _, ok := _this.Get_().(VirtualTransform_insert) + return ok +} + +type VirtualTransform_prefix struct { + Prefix GetPrefix +} + +func (VirtualTransform_prefix) isVirtualTransform() {} + +func (CompanionStruct_VirtualTransform_) Create_prefix_(Prefix GetPrefix) VirtualTransform { + return VirtualTransform{VirtualTransform_prefix{Prefix}} +} + +func (_this VirtualTransform) Is_prefix() bool { + _, ok := _this.Get_().(VirtualTransform_prefix) + return ok +} + +type VirtualTransform_suffix struct { + Suffix GetSuffix +} + +func (VirtualTransform_suffix) isVirtualTransform() {} + +func (CompanionStruct_VirtualTransform_) Create_suffix_(Suffix GetSuffix) VirtualTransform { + return VirtualTransform{VirtualTransform_suffix{Suffix}} +} + +func (_this VirtualTransform) Is_suffix() bool { + _, ok := _this.Get_().(VirtualTransform_suffix) + return ok +} + +type VirtualTransform_substring struct { + Substring GetSubstring +} + +func (VirtualTransform_substring) isVirtualTransform() {} + +func (CompanionStruct_VirtualTransform_) Create_substring_(Substring GetSubstring) VirtualTransform { + return VirtualTransform{VirtualTransform_substring{Substring}} +} + +func (_this VirtualTransform) Is_substring() bool { + _, ok := _this.Get_().(VirtualTransform_substring) + return ok +} + +type VirtualTransform_segment struct { + Segment GetSegment +} + +func (VirtualTransform_segment) isVirtualTransform() {} + +func (CompanionStruct_VirtualTransform_) Create_segment_(Segment GetSegment) VirtualTransform { + return VirtualTransform{VirtualTransform_segment{Segment}} +} + +func (_this VirtualTransform) Is_segment() bool { + _, ok := _this.Get_().(VirtualTransform_segment) + return ok +} + +type VirtualTransform_segments struct { + Segments GetSegments +} + +func (VirtualTransform_segments) isVirtualTransform() {} + +func (CompanionStruct_VirtualTransform_) Create_segments_(Segments GetSegments) VirtualTransform { + return VirtualTransform{VirtualTransform_segments{Segments}} +} + +func (_this VirtualTransform) Is_segments() bool { + _, ok := _this.Get_().(VirtualTransform_segments) + return ok +} + +func (CompanionStruct_VirtualTransform_) Default() VirtualTransform { + return Companion_VirtualTransform_.Create_upper_(Companion_Upper_.Default()) +} + +func (_this VirtualTransform) Dtor_upper() Upper { + return _this.Get_().(VirtualTransform_upper).Upper +} + +func (_this VirtualTransform) Dtor_lower() Lower { + return _this.Get_().(VirtualTransform_lower).Lower +} + +func (_this VirtualTransform) Dtor_insert() Insert { + return _this.Get_().(VirtualTransform_insert).Insert +} + +func (_this VirtualTransform) Dtor_prefix() GetPrefix { + return _this.Get_().(VirtualTransform_prefix).Prefix +} + +func (_this VirtualTransform) Dtor_suffix() GetSuffix { + return _this.Get_().(VirtualTransform_suffix).Suffix +} + +func (_this VirtualTransform) Dtor_substring() GetSubstring { + return _this.Get_().(VirtualTransform_substring).Substring +} + +func (_this VirtualTransform) Dtor_segment() GetSegment { + return _this.Get_().(VirtualTransform_segment).Segment +} + +func (_this VirtualTransform) Dtor_segments() GetSegments { + return _this.Get_().(VirtualTransform_segments).Segments +} + +func (_this VirtualTransform) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case VirtualTransform_upper: + { + return "AwsCryptographyDbEncryptionSdkDynamoDbTypes.VirtualTransform.upper" + "(" + _dafny.String(data.Upper) + ")" + } + case VirtualTransform_lower: + { + return "AwsCryptographyDbEncryptionSdkDynamoDbTypes.VirtualTransform.lower" + "(" + _dafny.String(data.Lower) + ")" + } + case VirtualTransform_insert: + { + return "AwsCryptographyDbEncryptionSdkDynamoDbTypes.VirtualTransform.insert" + "(" + _dafny.String(data.Insert) + ")" + } + case VirtualTransform_prefix: + { + return "AwsCryptographyDbEncryptionSdkDynamoDbTypes.VirtualTransform.prefix" + "(" + _dafny.String(data.Prefix) + ")" + } + case VirtualTransform_suffix: + { + return "AwsCryptographyDbEncryptionSdkDynamoDbTypes.VirtualTransform.suffix" + "(" + _dafny.String(data.Suffix) + ")" + } + case VirtualTransform_substring: + { + return "AwsCryptographyDbEncryptionSdkDynamoDbTypes.VirtualTransform.substring" + "(" + _dafny.String(data.Substring) + ")" + } + case VirtualTransform_segment: + { + return "AwsCryptographyDbEncryptionSdkDynamoDbTypes.VirtualTransform.segment" + "(" + _dafny.String(data.Segment) + ")" + } + case VirtualTransform_segments: + { + return "AwsCryptographyDbEncryptionSdkDynamoDbTypes.VirtualTransform.segments" + "(" + _dafny.String(data.Segments) + ")" + } + default: + { + return "" + } + } +} + +func (_this VirtualTransform) Equals(other VirtualTransform) bool { + switch data1 := _this.Get_().(type) { + case VirtualTransform_upper: + { + data2, ok := other.Get_().(VirtualTransform_upper) + return ok && data1.Upper.Equals(data2.Upper) + } + case VirtualTransform_lower: + { + data2, ok := other.Get_().(VirtualTransform_lower) + return ok && data1.Lower.Equals(data2.Lower) + } + case VirtualTransform_insert: + { + data2, ok := other.Get_().(VirtualTransform_insert) + return ok && data1.Insert.Equals(data2.Insert) + } + case VirtualTransform_prefix: + { + data2, ok := other.Get_().(VirtualTransform_prefix) + return ok && data1.Prefix.Equals(data2.Prefix) + } + case VirtualTransform_suffix: + { + data2, ok := other.Get_().(VirtualTransform_suffix) + return ok && data1.Suffix.Equals(data2.Suffix) + } + case VirtualTransform_substring: + { + data2, ok := other.Get_().(VirtualTransform_substring) + return ok && data1.Substring.Equals(data2.Substring) + } + case VirtualTransform_segment: + { + data2, ok := other.Get_().(VirtualTransform_segment) + return ok && data1.Segment.Equals(data2.Segment) + } + case VirtualTransform_segments: + { + data2, ok := other.Get_().(VirtualTransform_segments) + return ok && data1.Segments.Equals(data2.Segments) + } + default: + { + return false // unexpected + } + } +} + +func (_this VirtualTransform) EqualsGeneric(other interface{}) bool { + typed, ok := other.(VirtualTransform) + return ok && _this.Equals(typed) +} + +func Type_VirtualTransform_() _dafny.TypeDescriptor { + return type_VirtualTransform_{} +} + +type type_VirtualTransform_ struct { +} + +func (_this type_VirtualTransform_) Default() interface{} { + return Companion_VirtualTransform_.Default() +} + +func (_this type_VirtualTransform_) String() string { + return "AwsCryptographyDbEncryptionSdkDynamoDbTypes.VirtualTransform" +} +func (_this VirtualTransform) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = VirtualTransform{} + +// End of datatype VirtualTransform + +// Definition of class VirtualTransformList +type VirtualTransformList struct { +} + +func New_VirtualTransformList_() *VirtualTransformList { + _this := VirtualTransformList{} + + return &_this +} + +type CompanionStruct_VirtualTransformList_ struct { +} + +var Companion_VirtualTransformList_ = CompanionStruct_VirtualTransformList_{} + +func (*VirtualTransformList) String() string { + return "AwsCryptographyDbEncryptionSdkDynamoDbTypes.VirtualTransformList" +} + +// End of class VirtualTransformList + +func Type_VirtualTransformList_() _dafny.TypeDescriptor { + return type_VirtualTransformList_{} +} + +type type_VirtualTransformList_ struct { +} + +func (_this type_VirtualTransformList_) Default() interface{} { + return _dafny.EmptySeq +} + +func (_this type_VirtualTransformList_) String() string { + return "AwsCryptographyDbEncryptionSdkDynamoDbTypes.VirtualTransformList" +} +func (_this *CompanionStruct_VirtualTransformList_) Is_(__source _dafny.Sequence) bool { + var _7_x _dafny.Sequence = (__source) + _ = _7_x + return Companion_Default___.IsValid__VirtualTransformList(_7_x) +} + +// Definition of datatype Error +type Error struct { + Data_Error_ +} + +func (_this Error) Get_() Data_Error_ { + return _this.Data_Error_ +} + +type Data_Error_ interface { + isError() +} + +type CompanionStruct_Error_ struct { +} + +var Companion_Error_ = CompanionStruct_Error_{} + +type Error_DynamoDbEncryptionException struct { + Message _dafny.Sequence +} + +func (Error_DynamoDbEncryptionException) isError() {} + +func (CompanionStruct_Error_) Create_DynamoDbEncryptionException_(Message _dafny.Sequence) Error { + return Error{Error_DynamoDbEncryptionException{Message}} +} + +func (_this Error) Is_DynamoDbEncryptionException() bool { + _, ok := _this.Get_().(Error_DynamoDbEncryptionException) + return ok +} + +type Error_AwsCryptographyDbEncryptionSdkStructuredEncryption struct { + AwsCryptographyDbEncryptionSdkStructuredEncryption m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Error +} + +func (Error_AwsCryptographyDbEncryptionSdkStructuredEncryption) isError() {} + +func (CompanionStruct_Error_) Create_AwsCryptographyDbEncryptionSdkStructuredEncryption_(AwsCryptographyDbEncryptionSdkStructuredEncryption m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Error) Error { + return Error{Error_AwsCryptographyDbEncryptionSdkStructuredEncryption{AwsCryptographyDbEncryptionSdkStructuredEncryption}} +} + +func (_this Error) Is_AwsCryptographyDbEncryptionSdkStructuredEncryption() bool { + _, ok := _this.Get_().(Error_AwsCryptographyDbEncryptionSdkStructuredEncryption) + return ok +} + +type Error_AwsCryptographyMaterialProviders struct { + AwsCryptographyMaterialProviders m_AwsCryptographyMaterialProvidersTypes.Error +} + +func (Error_AwsCryptographyMaterialProviders) isError() {} + +func (CompanionStruct_Error_) Create_AwsCryptographyMaterialProviders_(AwsCryptographyMaterialProviders m_AwsCryptographyMaterialProvidersTypes.Error) Error { + return Error{Error_AwsCryptographyMaterialProviders{AwsCryptographyMaterialProviders}} +} + +func (_this Error) Is_AwsCryptographyMaterialProviders() bool { + _, ok := _this.Get_().(Error_AwsCryptographyMaterialProviders) + return ok +} + +type Error_AwsCryptographyKeyStore struct { + AwsCryptographyKeyStore m_AwsCryptographyKeyStoreTypes.Error +} + +func (Error_AwsCryptographyKeyStore) isError() {} + +func (CompanionStruct_Error_) Create_AwsCryptographyKeyStore_(AwsCryptographyKeyStore m_AwsCryptographyKeyStoreTypes.Error) Error { + return Error{Error_AwsCryptographyKeyStore{AwsCryptographyKeyStore}} +} + +func (_this Error) Is_AwsCryptographyKeyStore() bool { + _, ok := _this.Get_().(Error_AwsCryptographyKeyStore) + return ok +} + +type Error_AwsCryptographyPrimitives struct { + AwsCryptographyPrimitives m_AwsCryptographyPrimitivesTypes.Error +} + +func (Error_AwsCryptographyPrimitives) isError() {} + +func (CompanionStruct_Error_) Create_AwsCryptographyPrimitives_(AwsCryptographyPrimitives m_AwsCryptographyPrimitivesTypes.Error) Error { + return Error{Error_AwsCryptographyPrimitives{AwsCryptographyPrimitives}} +} + +func (_this Error) Is_AwsCryptographyPrimitives() bool { + _, ok := _this.Get_().(Error_AwsCryptographyPrimitives) + return ok +} + +type Error_ComAmazonawsDynamodb struct { + ComAmazonawsDynamodb m_ComAmazonawsDynamodbTypes.Error +} + +func (Error_ComAmazonawsDynamodb) isError() {} + +func (CompanionStruct_Error_) Create_ComAmazonawsDynamodb_(ComAmazonawsDynamodb m_ComAmazonawsDynamodbTypes.Error) Error { + return Error{Error_ComAmazonawsDynamodb{ComAmazonawsDynamodb}} +} + +func (_this Error) Is_ComAmazonawsDynamodb() bool { + _, ok := _this.Get_().(Error_ComAmazonawsDynamodb) + return ok +} + +type Error_CollectionOfErrors struct { + List _dafny.Sequence + Message _dafny.Sequence +} + +func (Error_CollectionOfErrors) isError() {} + +func (CompanionStruct_Error_) Create_CollectionOfErrors_(List _dafny.Sequence, Message _dafny.Sequence) Error { + return Error{Error_CollectionOfErrors{List, Message}} +} + +func (_this Error) Is_CollectionOfErrors() bool { + _, ok := _this.Get_().(Error_CollectionOfErrors) + return ok +} + +type Error_Opaque struct { + Obj interface{} +} + +func (Error_Opaque) isError() {} + +func (CompanionStruct_Error_) Create_Opaque_(Obj interface{}) Error { + return Error{Error_Opaque{Obj}} +} + +func (_this Error) Is_Opaque() bool { + _, ok := _this.Get_().(Error_Opaque) + return ok +} + +type Error_OpaqueWithText struct { + Obj interface{} + ObjMessage _dafny.Sequence +} + +func (Error_OpaqueWithText) isError() {} + +func (CompanionStruct_Error_) Create_OpaqueWithText_(Obj interface{}, ObjMessage _dafny.Sequence) Error { + return Error{Error_OpaqueWithText{Obj, ObjMessage}} +} + +func (_this Error) Is_OpaqueWithText() bool { + _, ok := _this.Get_().(Error_OpaqueWithText) + return ok +} + +func (CompanionStruct_Error_) Default() Error { + return Companion_Error_.Create_DynamoDbEncryptionException_(_dafny.EmptySeq.SetString()) +} + +func (_this Error) Dtor_message() _dafny.Sequence { + switch data := _this.Get_().(type) { + case Error_DynamoDbEncryptionException: + return data.Message + default: + return data.(Error_CollectionOfErrors).Message + } +} + +func (_this Error) Dtor_AwsCryptographyDbEncryptionSdkStructuredEncryption() m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Error { + return _this.Get_().(Error_AwsCryptographyDbEncryptionSdkStructuredEncryption).AwsCryptographyDbEncryptionSdkStructuredEncryption +} + +func (_this Error) Dtor_AwsCryptographyMaterialProviders() m_AwsCryptographyMaterialProvidersTypes.Error { + return _this.Get_().(Error_AwsCryptographyMaterialProviders).AwsCryptographyMaterialProviders +} + +func (_this Error) Dtor_AwsCryptographyKeyStore() m_AwsCryptographyKeyStoreTypes.Error { + return _this.Get_().(Error_AwsCryptographyKeyStore).AwsCryptographyKeyStore +} + +func (_this Error) Dtor_AwsCryptographyPrimitives() m_AwsCryptographyPrimitivesTypes.Error { + return _this.Get_().(Error_AwsCryptographyPrimitives).AwsCryptographyPrimitives +} + +func (_this Error) Dtor_ComAmazonawsDynamodb() m_ComAmazonawsDynamodbTypes.Error { + return _this.Get_().(Error_ComAmazonawsDynamodb).ComAmazonawsDynamodb +} + +func (_this Error) Dtor_list() _dafny.Sequence { + return _this.Get_().(Error_CollectionOfErrors).List +} + +func (_this Error) Dtor_obj() interface{} { + switch data := _this.Get_().(type) { + case Error_Opaque: + return data.Obj + default: + return data.(Error_OpaqueWithText).Obj + } +} + +func (_this Error) Dtor_objMessage() _dafny.Sequence { + return _this.Get_().(Error_OpaqueWithText).ObjMessage +} + +func (_this Error) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case Error_DynamoDbEncryptionException: + { + return "AwsCryptographyDbEncryptionSdkDynamoDbTypes.Error.DynamoDbEncryptionException" + "(" + _dafny.String(data.Message) + ")" + } + case Error_AwsCryptographyDbEncryptionSdkStructuredEncryption: + { + return "AwsCryptographyDbEncryptionSdkDynamoDbTypes.Error.AwsCryptographyDbEncryptionSdkStructuredEncryption" + "(" + _dafny.String(data.AwsCryptographyDbEncryptionSdkStructuredEncryption) + ")" + } + case Error_AwsCryptographyMaterialProviders: + { + return "AwsCryptographyDbEncryptionSdkDynamoDbTypes.Error.AwsCryptographyMaterialProviders" + "(" + _dafny.String(data.AwsCryptographyMaterialProviders) + ")" + } + case Error_AwsCryptographyKeyStore: + { + return "AwsCryptographyDbEncryptionSdkDynamoDbTypes.Error.AwsCryptographyKeyStore" + "(" + _dafny.String(data.AwsCryptographyKeyStore) + ")" + } + case Error_AwsCryptographyPrimitives: + { + return "AwsCryptographyDbEncryptionSdkDynamoDbTypes.Error.AwsCryptographyPrimitives" + "(" + _dafny.String(data.AwsCryptographyPrimitives) + ")" + } + case Error_ComAmazonawsDynamodb: + { + return "AwsCryptographyDbEncryptionSdkDynamoDbTypes.Error.ComAmazonawsDynamodb" + "(" + _dafny.String(data.ComAmazonawsDynamodb) + ")" + } + case Error_CollectionOfErrors: + { + return "AwsCryptographyDbEncryptionSdkDynamoDbTypes.Error.CollectionOfErrors" + "(" + _dafny.String(data.List) + ", " + _dafny.String(data.Message) + ")" + } + case Error_Opaque: + { + return "AwsCryptographyDbEncryptionSdkDynamoDbTypes.Error.Opaque" + "(" + _dafny.String(data.Obj) + ")" + } + case Error_OpaqueWithText: + { + return "AwsCryptographyDbEncryptionSdkDynamoDbTypes.Error.OpaqueWithText" + "(" + _dafny.String(data.Obj) + ", " + _dafny.String(data.ObjMessage) + ")" + } + default: + { + return "" + } + } +} + +func (_this Error) Equals(other Error) bool { + switch data1 := _this.Get_().(type) { + case Error_DynamoDbEncryptionException: + { + data2, ok := other.Get_().(Error_DynamoDbEncryptionException) + return ok && data1.Message.Equals(data2.Message) + } + case Error_AwsCryptographyDbEncryptionSdkStructuredEncryption: + { + data2, ok := other.Get_().(Error_AwsCryptographyDbEncryptionSdkStructuredEncryption) + return ok && data1.AwsCryptographyDbEncryptionSdkStructuredEncryption.Equals(data2.AwsCryptographyDbEncryptionSdkStructuredEncryption) + } + case Error_AwsCryptographyMaterialProviders: + { + data2, ok := other.Get_().(Error_AwsCryptographyMaterialProviders) + return ok && data1.AwsCryptographyMaterialProviders.Equals(data2.AwsCryptographyMaterialProviders) + } + case Error_AwsCryptographyKeyStore: + { + data2, ok := other.Get_().(Error_AwsCryptographyKeyStore) + return ok && data1.AwsCryptographyKeyStore.Equals(data2.AwsCryptographyKeyStore) + } + case Error_AwsCryptographyPrimitives: + { + data2, ok := other.Get_().(Error_AwsCryptographyPrimitives) + return ok && data1.AwsCryptographyPrimitives.Equals(data2.AwsCryptographyPrimitives) + } + case Error_ComAmazonawsDynamodb: + { + data2, ok := other.Get_().(Error_ComAmazonawsDynamodb) + return ok && data1.ComAmazonawsDynamodb.Equals(data2.ComAmazonawsDynamodb) + } + case Error_CollectionOfErrors: + { + data2, ok := other.Get_().(Error_CollectionOfErrors) + return ok && data1.List.Equals(data2.List) && data1.Message.Equals(data2.Message) + } + case Error_Opaque: + { + data2, ok := other.Get_().(Error_Opaque) + return ok && _dafny.AreEqual(data1.Obj, data2.Obj) + } + case Error_OpaqueWithText: + { + data2, ok := other.Get_().(Error_OpaqueWithText) + return ok && _dafny.AreEqual(data1.Obj, data2.Obj) && data1.ObjMessage.Equals(data2.ObjMessage) + } + default: + { + return false // unexpected + } + } +} + +func (_this Error) EqualsGeneric(other interface{}) bool { + typed, ok := other.(Error) + return ok && _this.Equals(typed) +} + +func Type_Error_() _dafny.TypeDescriptor { + return type_Error_{} +} + +type type_Error_ struct { +} + +func (_this type_Error_) Default() interface{} { + return Companion_Error_.Default() +} + +func (_this type_Error_) String() string { + return "AwsCryptographyDbEncryptionSdkDynamoDbTypes.Error" +} +func (_this Error) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = Error{} + +// End of datatype Error + +// Definition of class OpaqueError +type OpaqueError struct { +} + +func New_OpaqueError_() *OpaqueError { + _this := OpaqueError{} + + return &_this +} + +type CompanionStruct_OpaqueError_ struct { +} + +var Companion_OpaqueError_ = CompanionStruct_OpaqueError_{} + +func (*OpaqueError) String() string { + return "AwsCryptographyDbEncryptionSdkDynamoDbTypes.OpaqueError" +} + +// End of class OpaqueError + +func Type_OpaqueError_() _dafny.TypeDescriptor { + return type_OpaqueError_{} +} + +type type_OpaqueError_ struct { +} + +func (_this type_OpaqueError_) Default() interface{} { + return Companion_Error_.Default() +} + +func (_this type_OpaqueError_) String() string { + return "AwsCryptographyDbEncryptionSdkDynamoDbTypes.OpaqueError" +} +func (_this *CompanionStruct_OpaqueError_) Is_(__source Error) bool { + var _8_e Error = (__source) + _ = _8_e + return ((_8_e).Is_Opaque()) || ((_8_e).Is_OpaqueWithText()) +} + +// Definition of class DummySubsetType +type DummySubsetType struct { +} + +func New_DummySubsetType_() *DummySubsetType { + _this := DummySubsetType{} + + return &_this +} + +type CompanionStruct_DummySubsetType_ struct { +} + +var Companion_DummySubsetType_ = CompanionStruct_DummySubsetType_{} + +func (*DummySubsetType) String() string { + return "AwsCryptographyDbEncryptionSdkDynamoDbTypes.DummySubsetType" +} +func (_this *CompanionStruct_DummySubsetType_) Witness() _dafny.Int { + return _dafny.One +} + +// End of class DummySubsetType + +func Type_DummySubsetType_() _dafny.TypeDescriptor { + return type_DummySubsetType_{} +} + +type type_DummySubsetType_ struct { +} + +func (_this type_DummySubsetType_) Default() interface{} { + return Companion_DummySubsetType_.Witness() +} + +func (_this type_DummySubsetType_) String() string { + return "AwsCryptographyDbEncryptionSdkDynamoDbTypes.DummySubsetType" +} +func (_this *CompanionStruct_DummySubsetType_) Is_(__source _dafny.Int) bool { + var _9_x _dafny.Int = (__source) + _ = _9_x + return Companion_Default___.IsDummySubsetType(_9_x) +} diff --git a/customer-preview/ddb-esdk/AwsCryptographyDbEncryptionSdkStructuredEncryptionOperations/AwsCryptographyDbEncryptionSdkStructuredEncryptionOperations.go b/customer-preview/ddb-esdk/AwsCryptographyDbEncryptionSdkStructuredEncryptionOperations/AwsCryptographyDbEncryptionSdkStructuredEncryptionOperations.go new file mode 100644 index 000000000..0974ac495 --- /dev/null +++ b/customer-preview/ddb-esdk/AwsCryptographyDbEncryptionSdkStructuredEncryptionOperations/AwsCryptographyDbEncryptionSdkStructuredEncryptionOperations.go @@ -0,0 +1,1688 @@ +// Package AwsCryptographyDbEncryptionSdkStructuredEncryptionOperations +// Dafny module AwsCryptographyDbEncryptionSdkStructuredEncryptionOperations compiled into Go + +package AwsCryptographyDbEncryptionSdkStructuredEncryptionOperations + +import ( + os "os" + + m_ComAmazonawsDynamodbTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/ComAmazonawsDynamodbTypes" + m_Com_Amazonaws_Dynamodb "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/Com_Amazonaws_Dynamodb" + m_ComAmazonawsKmsTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/ComAmazonawsKmsTypes" + m_Com_Amazonaws_Kms "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/Com_Amazonaws_Kms" + m_AlgorithmSuites "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AlgorithmSuites" + m_AwsArnParsing "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsArnParsing" + m_AwsCryptographyKeyStoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreOperations" + m_AwsCryptographyKeyStoreTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreTypes" + m_AwsCryptographyMaterialProvidersOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersOperations" + m_AwsCryptographyMaterialProvidersTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersTypes" + m_AwsKmsDiscoveryKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsDiscoveryKeyring" + m_AwsKmsEcdhKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsEcdhKeyring" + m_AwsKmsHierarchicalKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsHierarchicalKeyring" + m_AwsKmsKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsKeyring" + m_AwsKmsMrkAreUnique "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkAreUnique" + m_AwsKmsMrkDiscoveryKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkDiscoveryKeyring" + m_AwsKmsMrkKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkKeyring" + m_AwsKmsMrkMatchForDecrypt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkMatchForDecrypt" + m_AwsKmsRsaKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsRsaKeyring" + m_AwsKmsUtils "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsUtils" + m_CMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CMM" + m_CacheConstants "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CacheConstants" + m_CanonicalEncryptionContext "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CanonicalEncryptionContext" + m_Commitment "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Commitment" + m_Constants "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Constants" + m_CreateKeyStoreTable "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeyStoreTable" + m_CreateKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeys" + m_DDBKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DDBKeystoreOperations" + m_DefaultCMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DefaultCMM" + m_DefaultClientSupplier "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DefaultClientSupplier" + m_Defaults "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Defaults" + m_DiscoveryMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DiscoveryMultiKeyring" + m_EcdhEdkWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/EcdhEdkWrapping" + m_EdkWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/EdkWrapping" + m_ErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/ErrorMessages" + m_GetKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/GetKeys" + m_IntermediateKeyWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/IntermediateKeyWrapping" + m_KMSKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KMSKeystoreOperations" + m_KeyStore "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStore" + m_KeyStoreErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStoreErrorMessages" + m_Keyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Keyring" + m_KmsArn "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KmsArn" + m_LocalCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/LocalCMC" + m_MaterialProviders "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MaterialProviders" + m_MaterialWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MaterialWrapping" + m_Materials "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Materials" + m_MrkAwareDiscoveryMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MrkAwareDiscoveryMultiKeyring" + m_MrkAwareStrictMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MrkAwareStrictMultiKeyring" + m_MultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MultiKeyring" + m_RawAESKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawAESKeyring" + m_RawECDHKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawECDHKeyring" + m_RawRSAKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawRSAKeyring" + m_RequiredEncryptionContextCMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RequiredEncryptionContextCMM" + m_StormTracker "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StormTracker" + m_StormTrackingCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StormTrackingCMC" + m_StrictMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StrictMultiKeyring" + m_Structure "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Structure" + m_SynchronizedLocalCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/SynchronizedLocalCMC" + m_Utils "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Utils" + m_AtomicPrimitives "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AtomicPrimitives" + m_AwsCryptographyPrimitivesOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesOperations" + m_AwsCryptographyPrimitivesTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesTypes" + m_Digest "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Digest" + m_HKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/HKDF" + m_KdfCtr "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/KdfCtr" + m_Random "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Random" + m_WrappedHKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHKDF" + m_WrappedHMAC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHMAC" + m_Actions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Actions" + m_Base64 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64" + m_Base64Lemmas "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64Lemmas" + m_BoundedInts "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/BoundedInts" + m_DivInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternals" + m_DivInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternalsNonlinear" + m_DivMod "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivMod" + m_FileIO "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FileIO" + m_FloatCompare "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FloatCompare" + m_Functions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Functions" + m_GeneralInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GeneralInternals" + m_GetOpt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GetOpt" + m_HexStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/HexStrings" + m_Logarithm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Logarithm" + m__Math "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Math_" + m_ModInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternals" + m_ModInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternalsNonlinear" + m_Mul "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Mul" + m_MulInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternals" + m_MulInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternalsNonlinear" + m_Power "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Power" + m_Relations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Relations" + m_Seq "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq" + m_Seq_MergeSort "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq_MergeSort" + m_SortedSets "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/SortedSets" + m_Sorting "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Sorting" + m_StandardLibrary "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary" + m_StandardLibraryInterop "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibraryInterop" + m_StandardLibrary_Sequence "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_Sequence" + m_StandardLibrary_String "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_String" + m_StandardLibrary_UInt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_UInt" + m_Streams "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Streams" + m_UTF8 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UTF8" + m_UnicodeStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UnicodeStrings" + m__Unicode "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Unicode_" + m_Utf16EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf16EncodingForm" + m_Utf8EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf8EncodingForm" + m_Wrappers "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers" + m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes" + m_Canonize "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/Canonize" + m__Maps "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/Maps_" + m_Sets "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/Sets" + m_SortCanon "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/SortCanon" + m_StructuredEncryptionCrypt "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionCrypt" + m_StructuredEncryptionFooter "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionFooter" + m_StructuredEncryptionHeader "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionHeader" + m_StructuredEncryptionPaths "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionPaths" + m_StructuredEncryptionUtil "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionUtil" + m__System "github.com/dafny-lang/DafnyRuntimeGo/v4/System_" + _dafny "github.com/dafny-lang/DafnyRuntimeGo/v4/dafny" +) + +var _ = os.Args +var _ _dafny.Dummy__ +var _ m__System.Dummy__ +var _ m_Wrappers.Dummy__ +var _ m_BoundedInts.Dummy__ +var _ m_StandardLibrary_UInt.Dummy__ +var _ m_StandardLibrary_Sequence.Dummy__ +var _ m_StandardLibrary_String.Dummy__ +var _ m_StandardLibrary.Dummy__ +var _ m_AwsCryptographyPrimitivesTypes.Dummy__ +var _ m_Random.Dummy__ +var _ m_Digest.Dummy__ +var _ m_WrappedHMAC.Dummy__ +var _ m_HKDF.Dummy__ +var _ m_WrappedHKDF.Dummy__ +var _ m_KdfCtr.Dummy__ +var _ m_AwsCryptographyPrimitivesOperations.Dummy__ +var _ m_AtomicPrimitives.Dummy__ +var _ m_ComAmazonawsDynamodbTypes.Dummy__ +var _ m_ComAmazonawsKmsTypes.Dummy__ +var _ m_AwsCryptographyKeyStoreTypes.Dummy__ +var _ m_AwsCryptographyMaterialProvidersTypes.Dummy__ +var _ m_Base64.Dummy__ +var _ m_AlgorithmSuites.Dummy__ +var _ m_Materials.Dummy__ +var _ m_Keyring.Dummy__ +var _ m_Relations.Dummy__ +var _ m_Seq_MergeSort.Dummy__ +var _ m__Math.Dummy__ +var _ m_Seq.Dummy__ +var _ m_MultiKeyring.Dummy__ +var _ m_AwsArnParsing.Dummy__ +var _ m_AwsKmsMrkAreUnique.Dummy__ +var _ m_Actions.Dummy__ +var _ m_AwsKmsMrkMatchForDecrypt.Dummy__ +var _ m_AwsKmsUtils.Dummy__ +var _ m_Constants.Dummy__ +var _ m_MaterialWrapping.Dummy__ +var _ m_CanonicalEncryptionContext.Dummy__ +var _ m_IntermediateKeyWrapping.Dummy__ +var _ m_EdkWrapping.Dummy__ +var _ m_ErrorMessages.Dummy__ +var _ m_AwsKmsKeyring.Dummy__ +var _ m_StrictMultiKeyring.Dummy__ +var _ m_AwsKmsDiscoveryKeyring.Dummy__ +var _ m_Com_Amazonaws_Kms.Dummy__ +var _ m_Com_Amazonaws_Dynamodb.Dummy__ +var _ m_DiscoveryMultiKeyring.Dummy__ +var _ m_AwsKmsMrkDiscoveryKeyring.Dummy__ +var _ m_MrkAwareDiscoveryMultiKeyring.Dummy__ +var _ m_AwsKmsMrkKeyring.Dummy__ +var _ m_MrkAwareStrictMultiKeyring.Dummy__ +var _ m_LocalCMC.Dummy__ +var _ m_SynchronizedLocalCMC.Dummy__ +var _ m_StormTracker.Dummy__ +var _ m_StormTrackingCMC.Dummy__ +var _ m_CacheConstants.Dummy__ +var _ m_AwsKmsHierarchicalKeyring.Dummy__ +var _ m_AwsKmsRsaKeyring.Dummy__ +var _ m_EcdhEdkWrapping.Dummy__ +var _ m_RawECDHKeyring.Dummy__ +var _ m_AwsKmsEcdhKeyring.Dummy__ +var _ m_RawAESKeyring.Dummy__ +var _ m_RawRSAKeyring.Dummy__ +var _ m_CMM.Dummy__ +var _ m_Defaults.Dummy__ +var _ m_Commitment.Dummy__ +var _ m_DefaultCMM.Dummy__ +var _ m_DefaultClientSupplier.Dummy__ +var _ m_Utils.Dummy__ +var _ m_RequiredEncryptionContextCMM.Dummy__ +var _ m_AwsCryptographyMaterialProvidersOperations.Dummy__ +var _ m_MaterialProviders.Dummy__ +var _ m_KeyStoreErrorMessages.Dummy__ +var _ m_KmsArn.Dummy__ +var _ m_Structure.Dummy__ +var _ m_KMSKeystoreOperations.Dummy__ +var _ m_DDBKeystoreOperations.Dummy__ +var _ m_CreateKeys.Dummy__ +var _ m_CreateKeyStoreTable.Dummy__ +var _ m_GetKeys.Dummy__ +var _ m_AwsCryptographyKeyStoreOperations.Dummy__ +var _ m_KeyStore.Dummy__ +var _ m__Unicode.Dummy__ +var _ m_Functions.Dummy__ +var _ m_Utf8EncodingForm.Dummy__ +var _ m_Utf16EncodingForm.Dummy__ +var _ m_UnicodeStrings.Dummy__ +var _ m_FileIO.Dummy__ +var _ m_GeneralInternals.Dummy__ +var _ m_MulInternalsNonlinear.Dummy__ +var _ m_MulInternals.Dummy__ +var _ m_Mul.Dummy__ +var _ m_ModInternalsNonlinear.Dummy__ +var _ m_DivInternalsNonlinear.Dummy__ +var _ m_ModInternals.Dummy__ +var _ m_DivInternals.Dummy__ +var _ m_DivMod.Dummy__ +var _ m_Power.Dummy__ +var _ m_Logarithm.Dummy__ +var _ m_StandardLibraryInterop.Dummy__ +var _ m_Streams.Dummy__ +var _ m_Sorting.Dummy__ +var _ m_HexStrings.Dummy__ +var _ m_GetOpt.Dummy__ +var _ m_FloatCompare.Dummy__ +var _ m_Base64Lemmas.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Dummy__ +var _ m_StructuredEncryptionUtil.Dummy__ +var _ m_Sets.Dummy__ +var _ m_StructuredEncryptionPaths.Dummy__ +var _ m_StructuredEncryptionHeader.Dummy__ +var _ m_StructuredEncryptionFooter.Dummy__ +var _ m_SortCanon.Dummy__ +var _ m_Canonize.Dummy__ +var _ m_StructuredEncryptionCrypt.Dummy__ +var _ m__Maps.Dummy__ + +type Dummy__ struct{} + +// Definition of class Default__ +type Default__ struct { + dummy byte +} + +func New_Default___() *Default__ { + _this := Default__{} + + return &_this +} + +type CompanionStruct_Default___ struct { +} + +var Companion_Default___ = CompanionStruct_Default___{} + +func (_this *Default__) Equals(other *Default__) bool { + return _this == other +} + +func (_this *Default__) EqualsGeneric(x interface{}) bool { + other, ok := x.(*Default__) + return ok && _this.Equals(other) +} + +func (*Default__) String() string { + return "AwsCryptographyDbEncryptionSdkStructuredEncryptionOperations.Default__" +} +func (_this *Default__) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = &Default__{} + +func (_static *CompanionStruct_Default___) ResolveAuthActions(config Config, input m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.ResolveAuthActionsInput) m_Wrappers.Result { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Companion_ResolveAuthActionsOutput_.Default()) + _ = output + var _0_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _0_valueOrError0 + _0_valueOrError0 = m_Wrappers.Companion_Default___.Need(m_StructuredEncryptionUtil.Companion_Default___.AuthListHasNoDuplicatesFromSet((input).Dtor_authActions()), m_StructuredEncryptionUtil.Companion_Default___.E(_dafny.SeqOfString("Duplicate Paths"))) + if (_0_valueOrError0).IsFailure() { + output = (_0_valueOrError0).PropagateFailure() + return output + } + var _1_valueOrError1 m_Wrappers.Result = m_Wrappers.Result{} + _ = _1_valueOrError1 + _1_valueOrError1 = m_StructuredEncryptionHeader.Companion_Default___.PartialDeserialize((input).Dtor_headerBytes()) + if (_1_valueOrError1).IsFailure() { + output = (_1_valueOrError1).PropagateFailure() + return output + } + var _2_head m_StructuredEncryptionHeader.PartialHeader + _ = _2_head + _2_head = (_1_valueOrError1).Extract().(m_StructuredEncryptionHeader.PartialHeader) + var _3_valueOrError2 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _3_valueOrError2 + _3_valueOrError2 = m_Wrappers.Companion_Default___.Need(m_StructuredEncryptionUtil.Companion_Default___.ValidString((input).Dtor_tableName()), m_StructuredEncryptionUtil.Companion_Default___.E(_dafny.SeqOfString("Bad Table Name"))) + if (_3_valueOrError2).IsFailure() { + output = (_3_valueOrError2).PropagateFailure() + return output + } + var _4_valueOrError3 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _4_valueOrError3 + _4_valueOrError3 = m_Wrappers.Companion_Default___.Need(_dafny.Quantifier(((input).Dtor_authActions()).UniqueElements(), false, func(_exists_var_0 m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.AuthItem) bool { + var _5_x m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.AuthItem + _5_x = interface{}(_exists_var_0).(m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.AuthItem) + return (_dafny.Companion_Sequence_.Contains((input).Dtor_authActions(), _5_x)) && (_dafny.Companion_Sequence_.Equal((_5_x).Dtor_key(), m_StructuredEncryptionUtil.Companion_Default___.HeaderPath())) + }), m_StructuredEncryptionUtil.Companion_Default___.E(_dafny.SeqOfString("Header Required"))) + if (_4_valueOrError3).IsFailure() { + output = (_4_valueOrError3).PropagateFailure() + return output + } + var _6_valueOrError4 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _6_valueOrError4 + _6_valueOrError4 = m_Wrappers.Companion_Default___.Need(_dafny.Quantifier(((input).Dtor_authActions()).UniqueElements(), false, func(_exists_var_1 m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.AuthItem) bool { + var _7_x m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.AuthItem + _7_x = interface{}(_exists_var_1).(m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.AuthItem) + return (_dafny.Companion_Sequence_.Contains((input).Dtor_authActions(), _7_x)) && (_dafny.Companion_Sequence_.Equal((_7_x).Dtor_key(), m_StructuredEncryptionUtil.Companion_Default___.FooterPath())) + }), m_StructuredEncryptionUtil.Companion_Default___.E(_dafny.SeqOfString("Footer Required"))) + if (_6_valueOrError4).IsFailure() { + output = (_6_valueOrError4).PropagateFailure() + return output + } + var _8_valueOrError5 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = _8_valueOrError5 + _8_valueOrError5 = m_Canonize.Companion_Default___.ForDecrypt((input).Dtor_tableName(), (input).Dtor_authActions(), (_2_head).Dtor_legend()) + if (_8_valueOrError5).IsFailure() { + output = (_8_valueOrError5).PropagateFailure() + return output + } + var _9_canonData _dafny.Sequence + _ = _9_canonData + _9_canonData = (_8_valueOrError5).Extract().(_dafny.Sequence) + output = m_Wrappers.Companion_Result_.Create_Success_(m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Companion_ResolveAuthActionsOutput_.Create_ResolveAuthActionsOutput_(m_Canonize.Companion_Default___.UnCanon(_9_canonData))) + return output + return output +} +func (_static *CompanionStruct_Default___) GetBinary(data _dafny.Sequence, path _dafny.Sequence) m_Wrappers.Result { + var _0_data m_Wrappers.Option = Companion_Default___.FindAuth(data, path) + _ = _0_data + if (_0_data).Is_None() { + return m_Wrappers.Companion_Result_.Create_Failure_(m_StructuredEncryptionUtil.Companion_Default___.E(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.SeqOfString("The field name "), m_StructuredEncryptionPaths.Companion_Default___.PathToString(path)), _dafny.SeqOfString(" is required.")))) + } else if !_dafny.Companion_Sequence_.Equal((((_0_data).Dtor_value().(m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.AuthItem)).Dtor_data()).Dtor_typeId(), m_StructuredEncryptionUtil.Companion_Default___.BYTES__TYPE__ID()) { + return m_Wrappers.Companion_Result_.Create_Failure_(m_StructuredEncryptionUtil.Companion_Default___.E(_dafny.Companion_Sequence_.Concatenate(m_StructuredEncryptionPaths.Companion_Default___.PathToString(path), _dafny.SeqOfString(" must be a binary Terminal.")))) + } else if !(((_0_data).Dtor_value().(m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.AuthItem)).Dtor_action()).Equals(m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Companion_AuthenticateAction_.Create_DO__NOT__SIGN_()) { + return m_Wrappers.Companion_Result_.Create_Failure_(m_StructuredEncryptionUtil.Companion_Default___.E(_dafny.Companion_Sequence_.Concatenate(m_StructuredEncryptionPaths.Companion_Default___.PathToString(path), _dafny.SeqOfString(" must be DO_NOT_SIGN.")))) + } else { + return m_Wrappers.Companion_Result_.Create_Success_(((_0_data).Dtor_value().(m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.AuthItem)).Dtor_data()) + } +} +func (_static *CompanionStruct_Default___) SumValueSize(fields _dafny.Sequence) _dafny.Int { + var _0___accumulator _dafny.Int = _dafny.Zero + _ = _0___accumulator + goto TAIL_CALL_START +TAIL_CALL_START: + if (_dafny.IntOfUint32((fields).Cardinality())).Sign() == 0 { + return (_dafny.Zero).Plus(_0___accumulator) + } else if (((fields).Select(0).(m_StructuredEncryptionUtil.CanonCryptoItem)).Dtor_action()).Equals(m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Companion_CryptoAction_.Create_ENCRYPT__AND__SIGN_()) { + _0___accumulator = (_0___accumulator).Plus(_dafny.IntOfUint32(((((fields).Select(0).(m_StructuredEncryptionUtil.CanonCryptoItem)).Dtor_data()).Dtor_value()).Cardinality())) + var _in0 _dafny.Sequence = (fields).Drop(1) + _ = _in0 + fields = _in0 + goto TAIL_CALL_START + } else { + var _in1 _dafny.Sequence = (fields).Drop(1) + _ = _in1 + fields = _in1 + goto TAIL_CALL_START + } +} +func (_static *CompanionStruct_Default___) GetAlgorithmSuiteId(alg m_Wrappers.Option) m_AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteId { + if (alg).Is_Some() { + return m_AwsCryptographyMaterialProvidersTypes.Companion_AlgorithmSuiteId_.Create_DBE_((alg).Dtor_value().(m_AwsCryptographyMaterialProvidersTypes.DBEAlgorithmSuiteId)) + } else { + return m_AwsCryptographyMaterialProvidersTypes.Companion_AlgorithmSuiteId_.Create_DBE_(m_AwsCryptographyMaterialProvidersTypes.Companion_DBEAlgorithmSuiteId_.Create_ALG__AES__256__GCM__HKDF__SHA512__COMMIT__KEY__ECDSA__P384__SYMSIG__HMAC__SHA384_()) + } +} +func (_static *CompanionStruct_Default___) GetStructuredEncryptionMaterials(cmm m_AwsCryptographyMaterialProvidersTypes.ICryptographicMaterialsManager, encryptionContext m_Wrappers.Option, algorithmSuiteId m_Wrappers.Option, encryptedTerminalDataNum _dafny.Int, totalEncryptedTerminalValuesSize _dafny.Int) m_Wrappers.Result { + var ret m_Wrappers.Result = m_Wrappers.Result{} + _ = ret + var _0_maxLength _dafny.Int + _ = _0_maxLength + _0_maxLength = ((encryptedTerminalDataNum).Times(_dafny.IntOfInt64(2))).Plus(totalEncryptedTerminalValuesSize) + var _1_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _1_valueOrError0 + _1_valueOrError0 = m_Wrappers.Companion_Default___.Need((_0_maxLength).Cmp(m_StandardLibrary_UInt.Companion_Default___.INT64__MAX__LIMIT()) < 0, m_StructuredEncryptionUtil.Companion_Default___.E(_dafny.SeqOfString("Encrypted Size too long."))) + if (_1_valueOrError0).IsFailure() { + ret = (_1_valueOrError0).PropagateFailure() + return ret + } + var _2_algId m_AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteId + _ = _2_algId + _2_algId = Companion_Default___.GetAlgorithmSuiteId(algorithmSuiteId) + var _3_matR m_Wrappers.Result + _ = _3_matR + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = (cmm).GetEncryptionMaterials(m_AwsCryptographyMaterialProvidersTypes.Companion_GetEncryptionMaterialsInput_.Create_GetEncryptionMaterialsInput_((encryptionContext).UnwrapOr(_dafny.NewMapBuilder().ToMap()).(_dafny.Map), Companion_Default___.DBE__COMMITMENT__POLICY(), m_Wrappers.Companion_Option_.Create_Some_(_2_algId), m_Wrappers.Companion_Option_.Create_Some_((_0_maxLength).Int64()), m_Wrappers.Companion_Option_.Create_None_())) + _3_matR = _out0 + var _4_valueOrError1 m_Wrappers.Result = m_Wrappers.Result{} + _ = _4_valueOrError1 + _4_valueOrError1 = (_3_matR).MapFailure(func(coer19 func(m_AwsCryptographyMaterialProvidersTypes.Error) m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Error) func(interface{}) interface{} { + return func(arg24 interface{}) interface{} { + return coer19(arg24.(m_AwsCryptographyMaterialProvidersTypes.Error)) + } + }(func(_5_e m_AwsCryptographyMaterialProvidersTypes.Error) m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Error { + return m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Companion_Error_.Create_AwsCryptographyMaterialProviders_(_5_e) + })) + if (_4_valueOrError1).IsFailure() { + ret = (_4_valueOrError1).PropagateFailure() + return ret + } + var _6_matOutput m_AwsCryptographyMaterialProvidersTypes.GetEncryptionMaterialsOutput + _ = _6_matOutput + _6_matOutput = (_4_valueOrError1).Extract().(m_AwsCryptographyMaterialProvidersTypes.GetEncryptionMaterialsOutput) + var _7_mat m_AwsCryptographyMaterialProvidersTypes.EncryptionMaterials + _ = _7_mat + _7_mat = (_6_matOutput).Dtor_encryptionMaterials() + var _8_valueOrError2 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _8_valueOrError2 + _8_valueOrError2 = m_Wrappers.Companion_Default___.Need(m_Materials.Companion_Default___.EncryptionMaterialsHasPlaintextDataKey(_7_mat), m_StructuredEncryptionUtil.Companion_Default___.E(_dafny.SeqOfString("Encryption material has no key"))) + if (_8_valueOrError2).IsFailure() { + ret = (_8_valueOrError2).PropagateFailure() + return ret + } + var _9_alg m_AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo + _ = _9_alg + _9_alg = (_7_mat).Dtor_algorithmSuite() + var _10_valueOrError3 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _10_valueOrError3 + _10_valueOrError3 = m_Wrappers.Companion_Default___.Need(m_StructuredEncryptionUtil.Companion_Default___.ValidSuite(_9_alg), m_StructuredEncryptionUtil.Companion_Default___.E(_dafny.SeqOfString("Invalid Algorithm Suite"))) + if (_10_valueOrError3).IsFailure() { + ret = (_10_valueOrError3).PropagateFailure() + return ret + } + var _11_key _dafny.Sequence + _ = _11_key + _11_key = ((_7_mat).Dtor_plaintextDataKey()).Dtor_value().(_dafny.Sequence) + ret = m_Wrappers.Companion_Result_.Create_Success_(_7_mat) + return ret + return ret +} +func (_static *CompanionStruct_Default___) GetV2EncryptionContextCanon(schema _dafny.Sequence) m_Wrappers.Result { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptyMap) + _ = output + var _0_canonAttrs _dafny.Sequence + _ = _0_canonAttrs + _0_canonAttrs = m_Seq.Companion_Default___.Filter(func(coer20 func(m_StructuredEncryptionUtil.CanonCryptoItem) bool) func(interface{}) bool { + return func(arg25 interface{}) bool { + return coer20(arg25.(m_StructuredEncryptionUtil.CanonCryptoItem)) + } + }(func(_1_s m_StructuredEncryptionUtil.CanonCryptoItem) bool { + return ((_1_s).Dtor_action()).Equals(m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Companion_CryptoAction_.Create_SIGN__AND__INCLUDE__IN__ENCRYPTION__CONTEXT_()) + }), schema) + var _2_contextAttrs _dafny.Sequence + _ = _2_contextAttrs + _2_contextAttrs = m_Seq.Companion_Default___.Map(func(coer21 func(m_StructuredEncryptionUtil.CanonCryptoItem) m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.CryptoItem) func(interface{}) interface{} { + return func(arg26 interface{}) interface{} { + return coer21(arg26.(m_StructuredEncryptionUtil.CanonCryptoItem)) + } + }(func(_3_s m_StructuredEncryptionUtil.CanonCryptoItem) m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.CryptoItem { + return m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Companion_CryptoItem_.Create_CryptoItem_((_3_s).Dtor_origKey(), (_3_s).Dtor_data(), (_3_s).Dtor_action()) + }), _0_canonAttrs) + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = Companion_Default___.GetV2EncryptionContext2(_2_contextAttrs) + output = _out0 + return output +} +func (_static *CompanionStruct_Default___) GetV2EncryptionContext(schema _dafny.Sequence) m_Wrappers.Result { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptyMap) + _ = output + var _0_contextAttrs _dafny.Sequence + _ = _0_contextAttrs + _0_contextAttrs = m_Seq.Companion_Default___.Filter(func(coer22 func(m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.CryptoItem) bool) func(interface{}) bool { + return func(arg27 interface{}) bool { + return coer22(arg27.(m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.CryptoItem)) + } + }(func(_1_s m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.CryptoItem) bool { + return ((_1_s).Dtor_action()).Equals(m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Companion_CryptoAction_.Create_SIGN__AND__INCLUDE__IN__ENCRYPTION__CONTEXT_()) + }), schema) + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = Companion_Default___.GetV2EncryptionContext2(_0_contextAttrs) + output = _out0 + return output +} +func (_static *CompanionStruct_Default___) Find(haystack _dafny.Sequence, needle _dafny.Sequence) m_Wrappers.Result { + goto TAIL_CALL_START +TAIL_CALL_START: + if (_dafny.IntOfUint32((haystack).Cardinality())).Sign() == 0 { + return m_Wrappers.Companion_Result_.Create_Failure_(m_StructuredEncryptionUtil.Companion_Default___.E(_dafny.SeqOfString("Not Found"))) + } else if _dafny.Companion_Sequence_.Equal(((haystack).Select(0).(m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.CryptoItem)).Dtor_key(), needle) { + return m_Wrappers.Companion_Result_.Create_Success_((haystack).Select(0).(m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.CryptoItem)) + } else { + var _in0 _dafny.Sequence = (haystack).Drop(1) + _ = _in0 + var _in1 _dafny.Sequence = needle + _ = _in1 + haystack = _in0 + needle = _in1 + goto TAIL_CALL_START + } +} +func (_static *CompanionStruct_Default___) FindAuth(haystack _dafny.Sequence, needle _dafny.Sequence) m_Wrappers.Option { + goto TAIL_CALL_START +TAIL_CALL_START: + if (_dafny.IntOfUint32((haystack).Cardinality())).Sign() == 0 { + return m_Wrappers.Companion_Option_.Create_None_() + } else if _dafny.Companion_Sequence_.Equal(((haystack).Select(0).(m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.AuthItem)).Dtor_key(), needle) { + return m_Wrappers.Companion_Option_.Create_Some_((haystack).Select(0).(m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.AuthItem)) + } else { + var _in0 _dafny.Sequence = (haystack).Drop(1) + _ = _in0 + var _in1 _dafny.Sequence = needle + _ = _in1 + haystack = _in0 + needle = _in1 + goto TAIL_CALL_START + } +} +func (_static *CompanionStruct_Default___) CountEncrypted(list _dafny.Sequence) _dafny.Int { + var _0___accumulator _dafny.Int = _dafny.Zero + _ = _0___accumulator + goto TAIL_CALL_START +TAIL_CALL_START: + if (_dafny.IntOfUint32((list).Cardinality())).Sign() == 0 { + return (_dafny.Zero).Plus(_0___accumulator) + } else if (((list).Select(0).(m_StructuredEncryptionUtil.CanonCryptoItem)).Dtor_action()).Equals(m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Companion_CryptoAction_.Create_ENCRYPT__AND__SIGN_()) { + _0___accumulator = (_0___accumulator).Plus(_dafny.One) + var _in0 _dafny.Sequence = (list).Drop(1) + _ = _in0 + list = _in0 + goto TAIL_CALL_START + } else { + var _in1 _dafny.Sequence = (list).Drop(1) + _ = _in1 + list = _in1 + goto TAIL_CALL_START + } +} +func (_static *CompanionStruct_Default___) GetV2EncryptionContext2(fields _dafny.Sequence) m_Wrappers.Result { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptyMap) + _ = output + var _0_fieldMap _dafny.Map + _ = _0_fieldMap + _0_fieldMap = _dafny.NewMapBuilder().ToMap() + var _hi0 _dafny.Int = _dafny.IntOfUint32((fields).Cardinality()) + _ = _hi0 + for _1_i := _dafny.Zero; _1_i.Cmp(_hi0) < 0; _1_i = _1_i.Plus(_dafny.One) { + var _2_keyVal _dafny.Sequence + _ = _2_keyVal + _2_keyVal = _dafny.Companion_Sequence_.Concatenate(m_StructuredEncryptionUtil.Companion_Default___.ATTR__PREFIX(), m_StructuredEncryptionPaths.Companion_Default___.PathToString(((fields).Select((_1_i).Uint32()).(m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.CryptoItem)).Dtor_key())) + var _3_valueOrError0 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_UTF8.Companion_ValidUTF8Bytes_.Witness()) + _ = _3_valueOrError0 + _3_valueOrError0 = (m_UTF8.Encode(_2_keyVal)).MapFailure(func(coer23 func(_dafny.Sequence) m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Error) func(interface{}) interface{} { + return func(arg28 interface{}) interface{} { + return coer23(arg28.(_dafny.Sequence)) + } + }(func(_4_e _dafny.Sequence) m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Error { + return m_StructuredEncryptionUtil.Companion_Default___.E(_4_e) + })) + if (_3_valueOrError0).IsFailure() { + output = (_3_valueOrError0).PropagateFailure() + return output + } + var _5_utf8Value _dafny.Sequence + _ = _5_utf8Value + _5_utf8Value = (_3_valueOrError0).Extract().(_dafny.Sequence) + if (_0_fieldMap).Contains(_5_utf8Value) { + output = m_Wrappers.Companion_Result_.Create_Failure_(m_StructuredEncryptionUtil.Companion_Default___.E(_dafny.Companion_Sequence_.Concatenate(_2_keyVal, _dafny.SeqOfString(" appears twice in encryption context.")))) + return output + } + _0_fieldMap = (_0_fieldMap).Update(_5_utf8Value, ((fields).Select((_1_i).Uint32()).(m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.CryptoItem)).Dtor_key()) + } + var _6_keys _dafny.Sequence + _ = _6_keys + _6_keys = m_SortedSets.SetToOrderedSequence2((_0_fieldMap).Keys(), func(coer24 func(uint8, uint8) bool) func(interface{}, interface{}) bool { + return func(arg29 interface{}, arg30 interface{}) bool { + return coer24(arg29.(uint8), arg30.(uint8)) + } + }(m_StructuredEncryptionUtil.Companion_Default___.ByteLess)) + var _7_newContext _dafny.Map + _ = _7_newContext + _7_newContext = _dafny.NewMapBuilder().ToMap() + var _8_legend _dafny.Sequence + _ = _8_legend + _8_legend = _dafny.SeqOfString("") + var _hi1 _dafny.Int = _dafny.IntOfUint32((_6_keys).Cardinality()) + _ = _hi1 + for _9_i := _dafny.Zero; _9_i.Cmp(_hi1) < 0; _9_i = _9_i.Plus(_dafny.One) { + var _10_fieldUtf8 _dafny.Sequence + _ = _10_fieldUtf8 + _10_fieldUtf8 = (_6_keys).Select((_9_i).Uint32()).(_dafny.Sequence) + var _11_fieldStr _dafny.Sequence + _ = _11_fieldStr + _11_fieldStr = (_0_fieldMap).Get(_10_fieldUtf8).(_dafny.Sequence) + var _12_valueOrError1 m_Wrappers.Result = m_Wrappers.Result{} + _ = _12_valueOrError1 + _12_valueOrError1 = Companion_Default___.Find(fields, (_0_fieldMap).Get(_10_fieldUtf8).(_dafny.Sequence)) + if (_12_valueOrError1).IsFailure() { + output = (_12_valueOrError1).PropagateFailure() + return output + } + var _13_item m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.CryptoItem + _ = _13_item + _13_item = (_12_valueOrError1).Extract().(m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.CryptoItem) + var _14_attr m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.StructuredDataTerminal + _ = _14_attr + _14_attr = (_13_item).Dtor_data() + var _15_attrStr _dafny.Sequence = m_UTF8.Companion_ValidUTF8Bytes_.Witness() + _ = _15_attrStr + var _16_legendChar _dafny.Char = _dafny.Char('D') + _ = _16_legendChar + if _dafny.Companion_Sequence_.Equal((_14_attr).Dtor_typeId(), m_StructuredEncryptionUtil.Companion_Default___.NULL()) { + _16_legendChar = m_StructuredEncryptionUtil.Companion_Default___.LEGEND__LITERAL() + _15_attrStr = m_StructuredEncryptionUtil.Companion_Default___.NULL__UTF8() + } else if _dafny.Companion_Sequence_.Equal((_14_attr).Dtor_typeId(), m_StructuredEncryptionUtil.Companion_Default___.STRING()) { + _16_legendChar = m_StructuredEncryptionUtil.Companion_Default___.LEGEND__STRING() + var _17_valueOrError2 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _17_valueOrError2 + _17_valueOrError2 = m_Wrappers.Companion_Default___.Need(m_UTF8.Companion_Default___.ValidUTF8Seq((_14_attr).Dtor_value()), m_StructuredEncryptionUtil.Companion_Default___.E(_dafny.SeqOfString("Internal Error : string was not UTF8."))) + if (_17_valueOrError2).IsFailure() { + output = (_17_valueOrError2).PropagateFailure() + return output + } + _15_attrStr = (_14_attr).Dtor_value() + var _18_valueOrError3 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq.SetString()) + _ = _18_valueOrError3 + _18_valueOrError3 = m_UTF8.Decode(_15_attrStr) + if !(!((_18_valueOrError3).IsFailure())) { + panic("dafny/StructuredEncryption/src/AwsCryptographyDbEncryptionSdkStructuredEncryptionOperations.dfy(357,18): " + (_18_valueOrError3).String()) + } + var _19_yy _dafny.Sequence + _ = _19_yy + _19_yy = (_18_valueOrError3).Extract().(_dafny.Sequence) + } else if _dafny.Companion_Sequence_.Equal((_14_attr).Dtor_typeId(), m_StructuredEncryptionUtil.Companion_Default___.NUMBER()) { + _16_legendChar = m_StructuredEncryptionUtil.Companion_Default___.LEGEND__NUMBER() + var _20_valueOrError4 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _20_valueOrError4 + _20_valueOrError4 = m_Wrappers.Companion_Default___.Need(m_UTF8.Companion_Default___.ValidUTF8Seq((_14_attr).Dtor_value()), m_StructuredEncryptionUtil.Companion_Default___.E(_dafny.SeqOfString("Internal Error : number was not UTF8."))) + if (_20_valueOrError4).IsFailure() { + output = (_20_valueOrError4).PropagateFailure() + return output + } + _15_attrStr = (_14_attr).Dtor_value() + } else if _dafny.Companion_Sequence_.Equal((_14_attr).Dtor_typeId(), m_StructuredEncryptionUtil.Companion_Default___.BOOLEAN()) { + _16_legendChar = m_StructuredEncryptionUtil.Companion_Default___.LEGEND__LITERAL() + var _21_valueOrError5 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _21_valueOrError5 + _21_valueOrError5 = m_Wrappers.Companion_Default___.Need((_dafny.IntOfUint32(((_14_attr).Dtor_value()).Cardinality())).Cmp(_dafny.One) == 0, m_StructuredEncryptionUtil.Companion_Default___.E(_dafny.SeqOfString("Internal Error : boolean was not of length 1."))) + if (_21_valueOrError5).IsFailure() { + output = (_21_valueOrError5).PropagateFailure() + return output + } + if (((_14_attr).Dtor_value()).Select(0).(uint8)) == (uint8(0)) { + _15_attrStr = m_StructuredEncryptionUtil.Companion_Default___.FALSE__UTF8() + } else { + _15_attrStr = m_StructuredEncryptionUtil.Companion_Default___.TRUE__UTF8() + } + } else { + _16_legendChar = m_StructuredEncryptionUtil.Companion_Default___.LEGEND__BINARY() + _15_attrStr = m_StructuredEncryptionUtil.Companion_Default___.EncodeTerminal(_14_attr) + } + _7_newContext = (_7_newContext).Update(_10_fieldUtf8, _15_attrStr) + _8_legend = _dafny.Companion_Sequence_.Concatenate(_8_legend, _dafny.SeqOfChars(_16_legendChar)) + } + var _22_valueOrError6 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_UTF8.Companion_ValidUTF8Bytes_.Witness()) + _ = _22_valueOrError6 + _22_valueOrError6 = (m_UTF8.Encode(_8_legend)).MapFailure(func(coer25 func(_dafny.Sequence) m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Error) func(interface{}) interface{} { + return func(arg31 interface{}) interface{} { + return coer25(arg31.(_dafny.Sequence)) + } + }(func(_23_e _dafny.Sequence) m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Error { + return m_StructuredEncryptionUtil.Companion_Default___.E(_23_e) + })) + if (_22_valueOrError6).IsFailure() { + output = (_22_valueOrError6).PropagateFailure() + return output + } + var _24_utf8Legend _dafny.Sequence + _ = _24_utf8Legend + _24_utf8Legend = (_22_valueOrError6).Extract().(_dafny.Sequence) + _7_newContext = (_7_newContext).Update(m_StructuredEncryptionUtil.Companion_Default___.LEGEND__UTF8(), _24_utf8Legend) + output = m_Wrappers.Companion_Result_.Create_Success_(_7_newContext) + return output + return output +} +func (_static *CompanionStruct_Default___) BuildCryptoMap2(keys _dafny.Sequence, plaintextStructure _dafny.Map, cryptoSchema _dafny.Map, acc _dafny.Sequence) m_Wrappers.Result { + goto TAIL_CALL_START +TAIL_CALL_START: + if (_dafny.IntOfUint32((keys).Cardinality())).Sign() == 0 { + return m_Wrappers.Companion_Result_.Create_Success_(acc) + } else { + var _0_key _dafny.Sequence = (keys).Select(0).(_dafny.Sequence) + _ = _0_key + var _1_path _dafny.Sequence = m_StructuredEncryptionPaths.Companion_Default___.StringToUniPath(_0_key) + _ = _1_path + var _2_item m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.CryptoItem = m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Companion_CryptoItem_.Create_CryptoItem_(_1_path, (plaintextStructure).Get(_0_key).(m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.StructuredDataTerminal), (cryptoSchema).Get(_0_key).(m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.CryptoAction)) + _ = _2_item + var _3_newAcc _dafny.Sequence = _dafny.Companion_Sequence_.Concatenate(acc, _dafny.SeqOf(_2_item)) + _ = _3_newAcc + var _in0 _dafny.Sequence = (keys).Drop(1) + _ = _in0 + var _in1 _dafny.Map = plaintextStructure + _ = _in1 + var _in2 _dafny.Map = cryptoSchema + _ = _in2 + var _in3 _dafny.Sequence = _3_newAcc + _ = _in3 + keys = _in0 + plaintextStructure = _in1 + cryptoSchema = _in2 + acc = _in3 + goto TAIL_CALL_START + } +} +func (_static *CompanionStruct_Default___) BuildCryptoMap(plaintextStructure _dafny.Map, cryptoSchema _dafny.Map) m_Wrappers.Result { + var _0_keys _dafny.Sequence = m_SortedSets.SetToOrderedSequence2((plaintextStructure).Keys(), func(coer26 func(_dafny.Char, _dafny.Char) bool) func(interface{}, interface{}) bool { + return func(arg32 interface{}, arg33 interface{}) bool { + return coer26(arg32.(_dafny.Char), arg33.(_dafny.Char)) + } + }(m_StructuredEncryptionUtil.Companion_Default___.CharLess)) + _ = _0_keys + return Companion_Default___.BuildCryptoMap2(_0_keys, plaintextStructure, cryptoSchema, _dafny.SeqOf()) +} +func (_static *CompanionStruct_Default___) BuildAuthMap2(keys _dafny.Sequence, plaintextStructure _dafny.Map, authSchema _dafny.Map, acc _dafny.Sequence) m_Wrappers.Result { + goto TAIL_CALL_START +TAIL_CALL_START: + if (_dafny.IntOfUint32((keys).Cardinality())).Sign() == 0 { + return m_Wrappers.Companion_Result_.Create_Success_(acc) + } else { + var _0_key _dafny.Sequence = (keys).Select(0).(_dafny.Sequence) + _ = _0_key + var _1_path _dafny.Sequence = m_StructuredEncryptionPaths.Companion_Default___.StringToUniPath(_0_key) + _ = _1_path + var _2_item m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.AuthItem = m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Companion_AuthItem_.Create_AuthItem_(_1_path, (plaintextStructure).Get(_0_key).(m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.StructuredDataTerminal), (authSchema).Get(_0_key).(m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.AuthenticateAction)) + _ = _2_item + var _3_newAcc _dafny.Sequence = _dafny.Companion_Sequence_.Concatenate(acc, _dafny.SeqOf(_2_item)) + _ = _3_newAcc + var _in0 _dafny.Sequence = (keys).Drop(1) + _ = _in0 + var _in1 _dafny.Map = plaintextStructure + _ = _in1 + var _in2 _dafny.Map = authSchema + _ = _in2 + var _in3 _dafny.Sequence = _3_newAcc + _ = _in3 + keys = _in0 + plaintextStructure = _in1 + authSchema = _in2 + acc = _in3 + goto TAIL_CALL_START + } +} +func (_static *CompanionStruct_Default___) BuildAuthMap(plaintextStructure _dafny.Map, authSchema _dafny.Map) m_Wrappers.Result { + var _0_keys _dafny.Sequence = m_SortedSets.SetToOrderedSequence2((plaintextStructure).Keys(), func(coer27 func(_dafny.Char, _dafny.Char) bool) func(interface{}, interface{}) bool { + return func(arg34 interface{}, arg35 interface{}) bool { + return coer27(arg34.(_dafny.Char), arg35.(_dafny.Char)) + } + }(m_StructuredEncryptionUtil.Companion_Default___.CharLess)) + _ = _0_keys + return Companion_Default___.BuildAuthMap2(_0_keys, plaintextStructure, authSchema, _dafny.SeqOf()) +} +func (_static *CompanionStruct_Default___) UnBuildCryptoMap(list _dafny.Sequence, dataSoFar _dafny.Map, actionsSoFar _dafny.Map) m_Wrappers.Result { + goto TAIL_CALL_START +TAIL_CALL_START: + if (_dafny.IntOfUint32((list).Cardinality())).Sign() == 0 { + return m_Wrappers.Companion_Result_.Create_Success_(_dafny.TupleOf(dataSoFar, actionsSoFar)) + } else { + var _0_valueOrError0 m_Wrappers.Result = m_StructuredEncryptionPaths.Companion_Default___.UniPathToString(((list).Select(0).(m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.CryptoItem)).Dtor_key()) + _ = _0_valueOrError0 + if (_0_valueOrError0).IsFailure() { + return (_0_valueOrError0).PropagateFailure() + } else { + var _1_key _dafny.Sequence = (_0_valueOrError0).Extract().(_dafny.Sequence) + _ = _1_key + var _2_valueOrError1 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need(!(dataSoFar).Contains(_1_key), m_StructuredEncryptionUtil.Companion_Default___.E(_dafny.Companion_Sequence_.Concatenate(_dafny.SeqOfString("Duplicate Key "), _1_key))) + _ = _2_valueOrError1 + if (_2_valueOrError1).IsFailure() { + return (_2_valueOrError1).PropagateFailure() + } else if m_StructuredEncryptionUtil.Companion_Default___.IsAuthAttr(((list).Select(0).(m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.CryptoItem)).Dtor_action()) { + var _in0 _dafny.Sequence = (list).Drop(1) + _ = _in0 + var _in1 _dafny.Map = (dataSoFar).Update(_1_key, ((list).Select(0).(m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.CryptoItem)).Dtor_data()) + _ = _in1 + var _in2 _dafny.Map = (actionsSoFar).Update(_1_key, ((list).Select(0).(m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.CryptoItem)).Dtor_action()) + _ = _in2 + list = _in0 + dataSoFar = _in1 + actionsSoFar = _in2 + goto TAIL_CALL_START + } else { + var _in3 _dafny.Sequence = (list).Drop(1) + _ = _in3 + var _in4 _dafny.Map = (dataSoFar).Update(_1_key, ((list).Select(0).(m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.CryptoItem)).Dtor_data()) + _ = _in4 + var _in5 _dafny.Map = actionsSoFar + _ = _in5 + list = _in3 + dataSoFar = _in4 + actionsSoFar = _in5 + goto TAIL_CALL_START + } + } + } +} +func (_static *CompanionStruct_Default___) EncryptStructure(config Config, input m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.EncryptStructureInput) m_Wrappers.Result { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Companion_EncryptStructureOutput_.Default()) + _ = output + var _0_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _0_valueOrError0 + _0_valueOrError0 = m_Wrappers.Companion_Default___.Need((((input).Dtor_plaintextStructure()).Keys()).Equals(((input).Dtor_cryptoSchema()).Keys()), m_StructuredEncryptionUtil.Companion_Default___.E(_dafny.SeqOfString("Crypto Keys don't match."))) + if (_0_valueOrError0).IsFailure() { + output = (_0_valueOrError0).PropagateFailure() + return output + } + var _1_valueOrError1 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = _1_valueOrError1 + _1_valueOrError1 = Companion_Default___.BuildCryptoMap((input).Dtor_plaintextStructure(), (input).Dtor_cryptoSchema()) + if (_1_valueOrError1).IsFailure() { + output = (_1_valueOrError1).PropagateFailure() + return output + } + var _2_cryptoMap _dafny.Sequence + _ = _2_cryptoMap + _2_cryptoMap = (_1_valueOrError1).Extract().(_dafny.Sequence) + var _3_pathInput m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.EncryptPathStructureInput + _ = _3_pathInput + _3_pathInput = m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Companion_EncryptPathStructureInput_.Create_EncryptPathStructureInput_((input).Dtor_tableName(), _2_cryptoMap, (input).Dtor_cmm(), (input).Dtor_algorithmSuiteId(), (input).Dtor_encryptionContext()) + var _4_valueOrError2 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Companion_EncryptPathStructureOutput_.Default()) + _ = _4_valueOrError2 + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = Companion_Default___.EncryptPathStructure(config, _3_pathInput) + _4_valueOrError2 = _out0 + if (_4_valueOrError2).IsFailure() { + output = (_4_valueOrError2).PropagateFailure() + return output + } + var _5_pathOutput m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.EncryptPathStructureOutput + _ = _5_pathOutput + _5_pathOutput = (_4_valueOrError2).Extract().(m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.EncryptPathStructureOutput) + var _6_valueOrError3 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _6_valueOrError3 + _6_valueOrError3 = m_Wrappers.Companion_Default___.Need(_dafny.Quantifier(((_5_pathOutput).Dtor_encryptedStructure()).UniqueElements(), true, func(_forall_var_0 m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.CryptoItem) bool { + var _7_k m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.CryptoItem + _7_k = interface{}(_forall_var_0).(m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.CryptoItem) + return !(_dafny.Companion_Sequence_.Contains((_5_pathOutput).Dtor_encryptedStructure(), _7_k)) || ((_dafny.IntOfUint32(((_7_k).Dtor_key()).Cardinality())).Cmp(_dafny.One) == 0) + }), m_StructuredEncryptionUtil.Companion_Default___.E(_dafny.SeqOfString("Internal Error"))) + if (_6_valueOrError3).IsFailure() { + output = (_6_valueOrError3).PropagateFailure() + return output + } + var _8_valueOrError4 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.TupleOf(_dafny.EmptyMap, _dafny.EmptyMap)) + _ = _8_valueOrError4 + _8_valueOrError4 = Companion_Default___.UnBuildCryptoMap((_5_pathOutput).Dtor_encryptedStructure(), _dafny.NewMapBuilder().ToMap(), _dafny.NewMapBuilder().ToMap()) + if (_8_valueOrError4).IsFailure() { + output = (_8_valueOrError4).PropagateFailure() + return output + } + var _9_parts _dafny.Tuple + _ = _9_parts + _9_parts = (_8_valueOrError4).Extract().(_dafny.Tuple) + var _10_plainOutput m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.EncryptStructureOutput + _ = _10_plainOutput + _10_plainOutput = m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Companion_EncryptStructureOutput_.Create_EncryptStructureOutput_((*(_9_parts).IndexInt(0)).(_dafny.Map), (*(_9_parts).IndexInt(1)).(_dafny.Map), (_5_pathOutput).Dtor_parsedHeader()) + output = m_Wrappers.Companion_Result_.Create_Success_(_10_plainOutput) + return output + return output +} +func (_static *CompanionStruct_Default___) EncryptPathStructure(config Config, input m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.EncryptPathStructureInput) m_Wrappers.Result { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Companion_EncryptPathStructureOutput_.Default()) + _ = output + var _0_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _0_valueOrError0 + _0_valueOrError0 = m_Wrappers.Companion_Default___.Need((((input).Dtor_encryptionContext()).Is_None()) || (!(_dafny.Quantifier((((input).Dtor_encryptionContext()).Dtor_value().(_dafny.Map)).Keys().Elements(), false, func(_exists_var_0 _dafny.Sequence) bool { + var _1_k _dafny.Sequence + _1_k = interface{}(_exists_var_0).(_dafny.Sequence) + return ((((input).Dtor_encryptionContext()).Dtor_value().(_dafny.Map)).Contains(_1_k)) && (_dafny.Companion_Sequence_.IsPrefixOf(m_StructuredEncryptionUtil.Companion_Default___.ReservedCryptoContextPrefixUTF8(), (((input).Dtor_encryptionContext()).Dtor_value().(_dafny.Map)).Get(_1_k).(_dafny.Sequence))) + }))), m_StructuredEncryptionUtil.Companion_Default___.E(_dafny.Companion_Sequence_.Concatenate(_dafny.SeqOfString("Encryption Context must not contain members beginning with "), m_StructuredEncryptionUtil.Companion_Default___.ReservedCryptoContextPrefixString()))) + if (_0_valueOrError0).IsFailure() { + output = (_0_valueOrError0).PropagateFailure() + return output + } + var _2_valueOrError1 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _2_valueOrError1 + _2_valueOrError1 = m_Wrappers.Companion_Default___.Need(_dafny.Quantifier(((input).Dtor_plaintextStructure()).UniqueElements(), false, func(_exists_var_1 m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.CryptoItem) bool { + var _3_k m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.CryptoItem + _3_k = interface{}(_exists_var_1).(m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.CryptoItem) + return (_dafny.Companion_Sequence_.Contains((input).Dtor_plaintextStructure(), _3_k)) && (m_StructuredEncryptionUtil.Companion_Default___.IsAuthAttr((_3_k).Dtor_action())) + }), m_StructuredEncryptionUtil.Companion_Default___.E(_dafny.SeqOfString("At least one field in the Crypto Schema must be ENCRYPT_AND_SIGN, SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT or SIGN_ONLY."))) + if (_2_valueOrError1).IsFailure() { + output = (_2_valueOrError1).PropagateFailure() + return output + } + var _4_valueOrError2 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _4_valueOrError2 + _4_valueOrError2 = m_Wrappers.Companion_Default___.Need(!(_dafny.Quantifier(((input).Dtor_plaintextStructure()).UniqueElements(), false, func(_exists_var_2 m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.CryptoItem) bool { + var _5_x m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.CryptoItem + _5_x = interface{}(_exists_var_2).(m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.CryptoItem) + return (_dafny.Companion_Sequence_.Contains((input).Dtor_plaintextStructure(), _5_x)) && (_dafny.Companion_Sequence_.Contains(m_StructuredEncryptionUtil.Companion_Default___.HeaderPaths(), (_5_x).Dtor_key())) + })), m_StructuredEncryptionUtil.Companion_Default___.E(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.SeqOfString("The paths "), m_StructuredEncryptionUtil.Companion_Default___.HeaderField()), _dafny.SeqOfString(" and ")), m_StructuredEncryptionUtil.Companion_Default___.FooterField()), _dafny.SeqOfString(" are reserved.")))) + if (_4_valueOrError2).IsFailure() { + output = (_4_valueOrError2).PropagateFailure() + return output + } + var _6_valueOrError3 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _6_valueOrError3 + _6_valueOrError3 = m_Wrappers.Companion_Default___.Need(m_StructuredEncryptionUtil.Companion_Default___.CryptoListHasNoDuplicatesFromSet((input).Dtor_plaintextStructure()), m_StructuredEncryptionUtil.Companion_Default___.E(_dafny.SeqOfString("Duplicate Paths"))) + if (_6_valueOrError3).IsFailure() { + output = (_6_valueOrError3).PropagateFailure() + return output + } + var _7_valueOrError4 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _7_valueOrError4 + _7_valueOrError4 = m_Wrappers.Companion_Default___.Need(m_StructuredEncryptionUtil.Companion_Default___.ValidString((input).Dtor_tableName()), m_StructuredEncryptionUtil.Companion_Default___.E(_dafny.SeqOfString("Bad Table Name"))) + if (_7_valueOrError4).IsFailure() { + output = (_7_valueOrError4).PropagateFailure() + return output + } + var _8_valueOrError5 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = _8_valueOrError5 + _8_valueOrError5 = m_Canonize.Companion_Default___.ForEncrypt((input).Dtor_tableName(), (input).Dtor_plaintextStructure()) + if (_8_valueOrError5).IsFailure() { + output = (_8_valueOrError5).PropagateFailure() + return output + } + var _9_canonData _dafny.Sequence + _ = _9_canonData + _9_canonData = (_8_valueOrError5).Extract().(_dafny.Sequence) + var _10_encryptionContext _dafny.Map + _ = _10_encryptionContext + _10_encryptionContext = ((input).Dtor_encryptionContext()).UnwrapOr(_dafny.NewMapBuilder().ToMap()).(_dafny.Map) + var _11_cmm m_AwsCryptographyMaterialProvidersTypes.ICryptographicMaterialsManager + _ = _11_cmm + _11_cmm = (input).Dtor_cmm() + if _dafny.Quantifier(((input).Dtor_plaintextStructure()).UniqueElements(), false, func(_exists_var_3 m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.CryptoItem) bool { + var _12_x m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.CryptoItem + _12_x = interface{}(_exists_var_3).(m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.CryptoItem) + return (_dafny.Companion_Sequence_.Contains((input).Dtor_plaintextStructure(), _12_x)) && (((_12_x).Dtor_action()).Equals(m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Companion_CryptoAction_.Create_SIGN__AND__INCLUDE__IN__ENCRYPTION__CONTEXT_())) + }) { + var _13_valueOrError6 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptyMap) + _ = _13_valueOrError6 + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = Companion_Default___.GetV2EncryptionContext((input).Dtor_plaintextStructure()) + _13_valueOrError6 = _out0 + if (_13_valueOrError6).IsFailure() { + output = (_13_valueOrError6).PropagateFailure() + return output + } + var _14_newEncryptionContext _dafny.Map + _ = _14_newEncryptionContext + _14_newEncryptionContext = (_13_valueOrError6).Extract().(_dafny.Map) + if ((_14_newEncryptionContext).Cardinality()).Sign() != 0 { + var _15_valueOrError7 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _15_valueOrError7 + _15_valueOrError7 = m_Wrappers.Companion_Default___.Need(((_10_encryptionContext).Keys()).IsDisjointFrom((_14_newEncryptionContext).Keys()), m_StructuredEncryptionUtil.Companion_Default___.E(_dafny.SeqOfString("Internal Error - Structured Encryption encryption context overlaps with Item Encryptor encryption context."))) + if (_15_valueOrError7).IsFailure() { + output = (_15_valueOrError7).PropagateFailure() + return output + } + _10_encryptionContext = (_10_encryptionContext).Merge(_14_newEncryptionContext) + var _16_contextKeysX _dafny.Sequence + _ = _16_contextKeysX + _16_contextKeysX = m_SortedSets.SetToOrderedSequence2((_14_newEncryptionContext).Keys(), func(coer28 func(uint8, uint8) bool) func(interface{}, interface{}) bool { + return func(arg36 interface{}, arg37 interface{}) bool { + return coer28(arg36.(uint8), arg37.(uint8)) + } + }(m_StructuredEncryptionUtil.Companion_Default___.ByteLess)) + var _17_contextKeys _dafny.Sequence + _ = _17_contextKeys + _17_contextKeys = _16_contextKeysX + var _18_cmmR m_Wrappers.Result + _ = _18_cmmR + var _out1 m_Wrappers.Result + _ = _out1 + _out1 = ((config).Dtor_materialProviders()).CreateRequiredEncryptionContextCMM(m_AwsCryptographyMaterialProvidersTypes.Companion_CreateRequiredEncryptionContextCMMInput_.Create_CreateRequiredEncryptionContextCMMInput_(m_Wrappers.Companion_Option_.Create_Some_((input).Dtor_cmm()), m_Wrappers.Companion_Option_.Create_None_(), _17_contextKeys)) + _18_cmmR = _out1 + var _19_valueOrError8 m_Wrappers.Result = m_Wrappers.Result{} + _ = _19_valueOrError8 + _19_valueOrError8 = (_18_cmmR).MapFailure(func(coer29 func(m_AwsCryptographyMaterialProvidersTypes.Error) m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Error) func(interface{}) interface{} { + return func(arg38 interface{}) interface{} { + return coer29(arg38.(m_AwsCryptographyMaterialProvidersTypes.Error)) + } + }(func(_20_e m_AwsCryptographyMaterialProvidersTypes.Error) m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Error { + return m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Companion_Error_.Create_AwsCryptographyMaterialProviders_(_20_e) + })) + if (_19_valueOrError8).IsFailure() { + output = (_19_valueOrError8).PropagateFailure() + return output + } + _11_cmm = m_AwsCryptographyMaterialProvidersTypes.Companion_ICryptographicMaterialsManager_.CastTo_((_19_valueOrError8).Extract()) + } + } + var _21_valueOrError9 m_Wrappers.Result = m_Wrappers.Result{} + _ = _21_valueOrError9 + var _out2 m_Wrappers.Result + _ = _out2 + _out2 = Companion_Default___.GetStructuredEncryptionMaterials(_11_cmm, m_Wrappers.Companion_Option_.Create_Some_(_10_encryptionContext), (input).Dtor_algorithmSuiteId(), Companion_Default___.CountEncrypted(_9_canonData), Companion_Default___.SumValueSize(_9_canonData)) + _21_valueOrError9 = _out2 + if (_21_valueOrError9).IsFailure() { + output = (_21_valueOrError9).PropagateFailure() + return output + } + var _22_mat m_AwsCryptographyMaterialProvidersTypes.EncryptionMaterials + _ = _22_mat + _22_mat = (_21_valueOrError9).Extract().(m_AwsCryptographyMaterialProvidersTypes.EncryptionMaterials) + var _23_key _dafny.Sequence + _ = _23_key + _23_key = ((_22_mat).Dtor_plaintextDataKey()).Dtor_value().(_dafny.Sequence) + var _24_alg m_AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo + _ = _24_alg + _24_alg = (_22_mat).Dtor_algorithmSuite() + var _25_valueOrError10 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _25_valueOrError10 + _25_valueOrError10 = m_Wrappers.Companion_Default___.Need(m_StructuredEncryptionHeader.Companion_Default___.ValidEncryptionContext((_22_mat).Dtor_encryptionContext()), m_StructuredEncryptionUtil.Companion_Default___.E(_dafny.SeqOfString("Bad encryption context"))) + if (_25_valueOrError10).IsFailure() { + output = (_25_valueOrError10).PropagateFailure() + return output + } + var _26_randBytes m_Wrappers.Result + _ = _26_randBytes + var _out3 m_Wrappers.Result + _ = _out3 + _out3 = m_Random.Companion_Default___.GenerateBytes((m_StructuredEncryptionUtil.Companion_Default___.MSGID__LEN()).Int32()) + _26_randBytes = _out3 + var _27_valueOrError11 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = _27_valueOrError11 + _27_valueOrError11 = (_26_randBytes).MapFailure(func(coer30 func(m_AwsCryptographyPrimitivesTypes.Error) m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Error) func(interface{}) interface{} { + return func(arg39 interface{}) interface{} { + return coer30(arg39.(m_AwsCryptographyPrimitivesTypes.Error)) + } + }(func(_28_e m_AwsCryptographyPrimitivesTypes.Error) m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Error { + return m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Companion_Error_.Create_AwsCryptographyPrimitives_(_28_e) + })) + if (_27_valueOrError11).IsFailure() { + output = (_27_valueOrError11).PropagateFailure() + return output + } + var _29_msgID _dafny.Sequence + _ = _29_msgID + _29_msgID = (_27_valueOrError11).Extract().(_dafny.Sequence) + var _30_valueOrError12 m_Wrappers.Result = m_Wrappers.Result{} + _ = _30_valueOrError12 + _30_valueOrError12 = m_StructuredEncryptionHeader.Companion_Default___.Create((input).Dtor_tableName(), _9_canonData, _29_msgID, _22_mat) + if (_30_valueOrError12).IsFailure() { + output = (_30_valueOrError12).PropagateFailure() + return output + } + var _31_head m_StructuredEncryptionHeader.PartialHeader + _ = _31_head + _31_head = (_30_valueOrError12).Extract().(m_StructuredEncryptionHeader.PartialHeader) + var _32_valueOrError13 m_Wrappers.Result = m_Wrappers.Result{} + _ = _32_valueOrError13 + var _out4 m_Wrappers.Result + _ = _out4 + _out4 = m_StructuredEncryptionCrypt.Companion_Default___.GetCommitKey((config).Dtor_primitives(), _24_alg, _23_key, (_31_head).Dtor_msgID()) + _32_valueOrError13 = _out4 + if (_32_valueOrError13).IsFailure() { + output = (_32_valueOrError13).PropagateFailure() + return output + } + var _33_commitKey _dafny.Sequence + _ = _33_commitKey + _33_commitKey = (_32_valueOrError13).Extract().(_dafny.Sequence) + var _34_valueOrError14 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = _34_valueOrError14 + _34_valueOrError14 = m_StructuredEncryptionHeader.Companion_Default___.Serialize((config).Dtor_primitives(), _24_alg, _33_commitKey, _31_head) + if (_34_valueOrError14).IsFailure() { + output = (_34_valueOrError14).PropagateFailure() + return output + } + var _35_headerSerialized _dafny.Sequence + _ = _35_headerSerialized + _35_headerSerialized = (_34_valueOrError14).Extract().(_dafny.Sequence) + var _36_headerAttribute m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.StructuredDataTerminal + _ = _36_headerAttribute + _36_headerAttribute = m_StructuredEncryptionUtil.Companion_Default___.ValueToData(_35_headerSerialized, m_StructuredEncryptionUtil.Companion_Default___.BYTES__TYPE__ID()) + var _37_valueOrError15 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _37_valueOrError15 + _37_valueOrError15 = m_Wrappers.Companion_Default___.Need((_dafny.IntOfUint32((_9_canonData).Cardinality())).Cmp((m_StandardLibrary_UInt.Companion_Default___.UINT32__LIMIT()).DivBy(_dafny.IntOfInt64(3))) < 0, m_StructuredEncryptionUtil.Companion_Default___.E(_dafny.SeqOfString("Too many encrypted fields"))) + if (_37_valueOrError15).IsFailure() { + output = (_37_valueOrError15).PropagateFailure() + return output + } + var _38_valueOrError16 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = _38_valueOrError16 + var _out5 m_Wrappers.Result + _ = _out5 + _out5 = m_StructuredEncryptionCrypt.Companion_Default___.Encrypt((config).Dtor_primitives(), _24_alg, _23_key, _31_head, _9_canonData) + _38_valueOrError16 = _out5 + if (_38_valueOrError16).IsFailure() { + output = (_38_valueOrError16).PropagateFailure() + return output + } + var _39_encryptedItems _dafny.Sequence + _ = _39_encryptedItems + _39_encryptedItems = (_38_valueOrError16).Extract().(_dafny.Sequence) + var _40_smallResult _dafny.Sequence + _ = _40_smallResult + _40_smallResult = m_Canonize.Companion_Default___.UnCanonEncrypt(_39_encryptedItems) + var _41_valueOrError17 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_StructuredEncryptionFooter.Companion_Footer_.Default()) + _ = _41_valueOrError17 + var _out6 m_Wrappers.Result + _ = _out6 + _out6 = m_StructuredEncryptionFooter.Companion_Default___.CreateFooter((config).Dtor_primitives(), _22_mat, _39_encryptedItems, _35_headerSerialized) + _41_valueOrError17 = _out6 + if (_41_valueOrError17).IsFailure() { + output = (_41_valueOrError17).PropagateFailure() + return output + } + var _42_footer m_StructuredEncryptionFooter.Footer + _ = _42_footer + _42_footer = (_41_valueOrError17).Extract().(m_StructuredEncryptionFooter.Footer) + var _43_footerAttribute m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.StructuredDataTerminal + _ = _43_footerAttribute + _43_footerAttribute = (_42_footer).MakeTerminal() + var _44_largeResult _dafny.Sequence + _ = _44_largeResult + _44_largeResult = m_Canonize.Companion_Default___.AddHeaders(_40_smallResult, _36_headerAttribute, _43_footerAttribute) + var _45_valueOrError18 m_Wrappers.Result = m_Wrappers.Result{} + _ = _45_valueOrError18 + var _out7 m_Wrappers.Result + _ = _out7 + _out7 = (_31_head).GetAlgorithmSuite((config).Dtor_materialProviders()) + _45_valueOrError18 = _out7 + if (_45_valueOrError18).IsFailure() { + output = (_45_valueOrError18).PropagateFailure() + return output + } + var _46_headerAlgorithmSuite m_AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo + _ = _46_headerAlgorithmSuite + _46_headerAlgorithmSuite = (_45_valueOrError18).Extract().(m_AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo) + var _47_parsedHeader m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.ParsedHeader + _ = _47_parsedHeader + _47_parsedHeader = m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Companion_ParsedHeader_.Create_ParsedHeader_(((_46_headerAlgorithmSuite).Dtor_id()).Dtor_DBE(), (_31_head).Dtor_dataKeys(), (_31_head).Dtor_encContext(), (_22_mat).Dtor_encryptionContext()) + var _48_encryptOutput m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.EncryptPathStructureOutput + _ = _48_encryptOutput + _48_encryptOutput = m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Companion_EncryptPathStructureOutput_.Create_EncryptPathStructureOutput_(_44_largeResult, _47_parsedHeader) + output = m_Wrappers.Companion_Result_.Create_Success_(_48_encryptOutput) + return output + return output +} +func (_static *CompanionStruct_Default___) SafeDecode(data _dafny.Sequence) _dafny.Sequence { + var _0_x m_Wrappers.Result = m_UTF8.Decode(data) + _ = _0_x + if (_0_x).Is_Success() { + return (_0_x).Dtor_value().(_dafny.Sequence) + } else { + return _dafny.SeqOfString("[corrupt value]") + } +} +func (_static *CompanionStruct_Default___) DescribeMismatch(inputFields _dafny.Sequence, inputContext _dafny.Map, headContext _dafny.Map) _dafny.Sequence { + var _0___accumulator _dafny.Sequence = _dafny.SeqOfChars() + _ = _0___accumulator + goto TAIL_CALL_START +TAIL_CALL_START: + if (_dafny.IntOfUint32((inputFields).Cardinality())).Sign() == 0 { + return _dafny.Companion_Sequence_.Concatenate(_0___accumulator, _dafny.SeqOfString("")) + } else { + var _1_key _dafny.Sequence = (inputFields).Select(0).(_dafny.Sequence) + _ = _1_key + if ((headContext).Contains(_1_key)) && (!_dafny.Companion_Sequence_.Equal((headContext).Get(_1_key).(_dafny.Sequence), (inputContext).Get(_1_key).(_dafny.Sequence))) { + var _2_keyStr _dafny.Sequence = Companion_Default___.SafeDecode(_1_key) + _ = _2_keyStr + var _3_headStr _dafny.Sequence = Companion_Default___.SafeDecode((headContext).Get(_1_key).(_dafny.Sequence)) + _ = _3_headStr + var _4_inputStr _dafny.Sequence = Companion_Default___.SafeDecode((inputContext).Get(_1_key).(_dafny.Sequence)) + _ = _4_inputStr + var _5_msg _dafny.Sequence = _dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.SeqOfString("input context for "), _2_keyStr), _dafny.SeqOfString(" was ")), _4_inputStr), _dafny.SeqOfString(" but stored context had ")), _3_headStr), _dafny.SeqOfString("\n")) + _ = _5_msg + _0___accumulator = _dafny.Companion_Sequence_.Concatenate(_0___accumulator, _5_msg) + var _in0 _dafny.Sequence = (inputFields).Drop(1) + _ = _in0 + var _in1 _dafny.Map = inputContext + _ = _in1 + var _in2 _dafny.Map = headContext + _ = _in2 + inputFields = _in0 + inputContext = _in1 + headContext = _in2 + goto TAIL_CALL_START + } else { + var _in3 _dafny.Sequence = (inputFields).Drop(1) + _ = _in3 + var _in4 _dafny.Map = inputContext + _ = _in4 + var _in5 _dafny.Map = headContext + _ = _in5 + inputFields = _in3 + inputContext = _in4 + headContext = _in5 + goto TAIL_CALL_START + } + } +} +func (_static *CompanionStruct_Default___) DetectMismatch(inputContext _dafny.Map, headContext _dafny.Map) m_Wrappers.Outcome { + var _0_inputFields _dafny.Sequence = m_SortedSets.SetToOrderedSequence2((inputContext).Keys(), func(coer31 func(uint8, uint8) bool) func(interface{}, interface{}) bool { + return func(arg40 interface{}, arg41 interface{}) bool { + return coer31(arg40.(uint8), arg41.(uint8)) + } + }(m_StructuredEncryptionUtil.Companion_Default___.ByteLess)) + _ = _0_inputFields + var _1_str _dafny.Sequence = Companion_Default___.DescribeMismatch(_0_inputFields, inputContext, headContext) + _ = _1_str + if (_dafny.IntOfUint32((_1_str).Cardinality())).Sign() == 0 { + return m_Wrappers.Companion_Outcome_.Create_Pass_() + } else { + return m_Wrappers.Companion_Outcome_.Create_Fail_(m_StructuredEncryptionUtil.Companion_Default___.E(_dafny.Companion_Sequence_.Concatenate(_dafny.SeqOfString("Encryption Context Mismatch\n"), _1_str))) + } +} +func (_static *CompanionStruct_Default___) NewCmm(config Config, cmm m_AwsCryptographyMaterialProvidersTypes.ICryptographicMaterialsManager, context _dafny.Map) m_Wrappers.Result { + var ret m_Wrappers.Result = m_Wrappers.Result{} + _ = ret + var _0_contextKeysX _dafny.Sequence + _ = _0_contextKeysX + _0_contextKeysX = m_SortedSets.SetToOrderedSequence2((context).Keys(), func(coer32 func(uint8, uint8) bool) func(interface{}, interface{}) bool { + return func(arg42 interface{}, arg43 interface{}) bool { + return coer32(arg42.(uint8), arg43.(uint8)) + } + }(m_StructuredEncryptionUtil.Companion_Default___.ByteLess)) + var _1_contextKeys _dafny.Sequence + _ = _1_contextKeys + _1_contextKeys = _0_contextKeysX + var _2_cmmR m_Wrappers.Result + _ = _2_cmmR + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = ((config).Dtor_materialProviders()).CreateRequiredEncryptionContextCMM(m_AwsCryptographyMaterialProvidersTypes.Companion_CreateRequiredEncryptionContextCMMInput_.Create_CreateRequiredEncryptionContextCMMInput_(m_Wrappers.Companion_Option_.Create_Some_(cmm), m_Wrappers.Companion_Option_.Create_None_(), _1_contextKeys)) + _2_cmmR = _out0 + var _3_valueOrError0 m_Wrappers.Result = m_Wrappers.Result{} + _ = _3_valueOrError0 + _3_valueOrError0 = (_2_cmmR).MapFailure(func(coer33 func(m_AwsCryptographyMaterialProvidersTypes.Error) m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Error) func(interface{}) interface{} { + return func(arg44 interface{}) interface{} { + return coer33(arg44.(m_AwsCryptographyMaterialProvidersTypes.Error)) + } + }(func(_4_e m_AwsCryptographyMaterialProvidersTypes.Error) m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Error { + return m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Companion_Error_.Create_AwsCryptographyMaterialProviders_(_4_e) + })) + if (_3_valueOrError0).IsFailure() { + ret = (_3_valueOrError0).PropagateFailure() + return ret + } + var _5_newCmm m_AwsCryptographyMaterialProvidersTypes.ICryptographicMaterialsManager + _ = _5_newCmm + _5_newCmm = m_AwsCryptographyMaterialProvidersTypes.Companion_ICryptographicMaterialsManager_.CastTo_((_3_valueOrError0).Extract()) + ret = m_Wrappers.Companion_Result_.Create_Success_(_5_newCmm) + return ret + return ret +} +func (_static *CompanionStruct_Default___) DecryptStructure(config Config, input m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.DecryptStructureInput) m_Wrappers.Result { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Companion_DecryptStructureOutput_.Default()) + _ = output + var _0_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _0_valueOrError0 + _0_valueOrError0 = m_Wrappers.Companion_Default___.Need((((input).Dtor_encryptedStructure()).Keys()).Equals(((input).Dtor_authenticateSchema()).Keys()), m_StructuredEncryptionUtil.Companion_Default___.E(_dafny.SeqOfString("DecryptStructure requires encryptedStructure and authenticateSchema have the same keys."))) + if (_0_valueOrError0).IsFailure() { + output = (_0_valueOrError0).PropagateFailure() + return output + } + var _1_valueOrError1 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = _1_valueOrError1 + _1_valueOrError1 = Companion_Default___.BuildAuthMap((input).Dtor_encryptedStructure(), (input).Dtor_authenticateSchema()) + if (_1_valueOrError1).IsFailure() { + output = (_1_valueOrError1).PropagateFailure() + return output + } + var _2_cryptoMap _dafny.Sequence + _ = _2_cryptoMap + _2_cryptoMap = (_1_valueOrError1).Extract().(_dafny.Sequence) + var _3_pathInput m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.DecryptPathStructureInput + _ = _3_pathInput + _3_pathInput = m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Companion_DecryptPathStructureInput_.Create_DecryptPathStructureInput_((input).Dtor_tableName(), _2_cryptoMap, (input).Dtor_cmm(), (input).Dtor_encryptionContext()) + var _4_valueOrError2 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Companion_DecryptPathStructureOutput_.Default()) + _ = _4_valueOrError2 + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = Companion_Default___.DecryptPathStructure(config, _3_pathInput) + _4_valueOrError2 = _out0 + if (_4_valueOrError2).IsFailure() { + output = (_4_valueOrError2).PropagateFailure() + return output + } + var _5_pathOutput m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.DecryptPathStructureOutput + _ = _5_pathOutput + _5_pathOutput = (_4_valueOrError2).Extract().(m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.DecryptPathStructureOutput) + var _6_valueOrError3 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.TupleOf(_dafny.EmptyMap, _dafny.EmptyMap)) + _ = _6_valueOrError3 + _6_valueOrError3 = Companion_Default___.UnBuildCryptoMap((_5_pathOutput).Dtor_plaintextStructure(), _dafny.NewMapBuilder().ToMap(), _dafny.NewMapBuilder().ToMap()) + if (_6_valueOrError3).IsFailure() { + output = (_6_valueOrError3).PropagateFailure() + return output + } + var _7_parts _dafny.Tuple + _ = _7_parts + _7_parts = (_6_valueOrError3).Extract().(_dafny.Tuple) + var _8_plainOutput m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.DecryptStructureOutput + _ = _8_plainOutput + _8_plainOutput = m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Companion_DecryptStructureOutput_.Create_DecryptStructureOutput_((*(_7_parts).IndexInt(0)).(_dafny.Map), (*(_7_parts).IndexInt(1)).(_dafny.Map), (_5_pathOutput).Dtor_parsedHeader()) + output = m_Wrappers.Companion_Result_.Create_Success_(_8_plainOutput) + return output + return output +} +func (_static *CompanionStruct_Default___) DecryptPathStructure(config Config, input m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.DecryptPathStructureInput) m_Wrappers.Result { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Companion_DecryptPathStructureOutput_.Default()) + _ = output + var _0_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _0_valueOrError0 + _0_valueOrError0 = m_Wrappers.Companion_Default___.Need(_dafny.Quantifier(((input).Dtor_encryptedStructure()).UniqueElements(), false, func(_exists_var_0 m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.AuthItem) bool { + var _1_x m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.AuthItem + _1_x = interface{}(_exists_var_0).(m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.AuthItem) + return (_dafny.Companion_Sequence_.Contains((input).Dtor_encryptedStructure(), _1_x)) && (((_1_x).Dtor_action()).Equals(m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Companion_AuthenticateAction_.Create_SIGN_())) + }), m_StructuredEncryptionUtil.Companion_Default___.E(_dafny.SeqOfString("At least one Authenticate Action must be SIGN"))) + if (_0_valueOrError0).IsFailure() { + output = (_0_valueOrError0).PropagateFailure() + return output + } + var _2_valueOrError1 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _2_valueOrError1 + _2_valueOrError1 = m_Wrappers.Companion_Default___.Need(m_StructuredEncryptionUtil.Companion_Default___.AuthListHasNoDuplicatesFromSet((input).Dtor_encryptedStructure()), m_StructuredEncryptionUtil.Companion_Default___.E(_dafny.SeqOfString("Duplicate Paths"))) + if (_2_valueOrError1).IsFailure() { + output = (_2_valueOrError1).PropagateFailure() + return output + } + var _3_valueOrError2 m_Wrappers.Result = m_Wrappers.Result{} + _ = _3_valueOrError2 + _3_valueOrError2 = Companion_Default___.GetBinary((input).Dtor_encryptedStructure(), m_StructuredEncryptionUtil.Companion_Default___.HeaderPath()) + if (_3_valueOrError2).IsFailure() { + output = (_3_valueOrError2).PropagateFailure() + return output + } + var _4_headerSerialized m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.StructuredDataTerminal + _ = _4_headerSerialized + _4_headerSerialized = (_3_valueOrError2).Extract().(m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.StructuredDataTerminal) + var _5_valueOrError3 m_Wrappers.Result = m_Wrappers.Result{} + _ = _5_valueOrError3 + _5_valueOrError3 = Companion_Default___.GetBinary((input).Dtor_encryptedStructure(), m_StructuredEncryptionUtil.Companion_Default___.FooterPath()) + if (_5_valueOrError3).IsFailure() { + output = (_5_valueOrError3).PropagateFailure() + return output + } + var _6_footerSerialized m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.StructuredDataTerminal + _ = _6_footerSerialized + _6_footerSerialized = (_5_valueOrError3).Extract().(m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.StructuredDataTerminal) + var _7_valueOrError4 m_Wrappers.Result = m_Wrappers.Result{} + _ = _7_valueOrError4 + _7_valueOrError4 = m_StructuredEncryptionHeader.Companion_Default___.PartialDeserialize((_4_headerSerialized).Dtor_value()) + if (_7_valueOrError4).IsFailure() { + output = (_7_valueOrError4).PropagateFailure() + return output + } + var _8_head m_StructuredEncryptionHeader.PartialHeader + _ = _8_head + _8_head = (_7_valueOrError4).Extract().(m_StructuredEncryptionHeader.PartialHeader) + var _9_valueOrError5 m_Wrappers.Result = m_Wrappers.Result{} + _ = _9_valueOrError5 + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = (_8_head).GetAlgorithmSuite((config).Dtor_materialProviders()) + _9_valueOrError5 = _out0 + if (_9_valueOrError5).IsFailure() { + output = (_9_valueOrError5).PropagateFailure() + return output + } + var _10_headerAlgorithmSuite m_AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo + _ = _10_headerAlgorithmSuite + _10_headerAlgorithmSuite = (_9_valueOrError5).Extract().(m_AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo) + var _11_valueOrError6 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _11_valueOrError6 + _11_valueOrError6 = m_Wrappers.Companion_Default___.Need(m_StructuredEncryptionUtil.Companion_Default___.ValidString((input).Dtor_tableName()), m_StructuredEncryptionUtil.Companion_Default___.E(_dafny.SeqOfString("Bad Table Name"))) + if (_11_valueOrError6).IsFailure() { + output = (_11_valueOrError6).PropagateFailure() + return output + } + var _12_valueOrError7 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = _12_valueOrError7 + _12_valueOrError7 = m_Canonize.Companion_Default___.ForDecrypt((input).Dtor_tableName(), (input).Dtor_encryptedStructure(), (_8_head).Dtor_legend()) + if (_12_valueOrError7).IsFailure() { + output = (_12_valueOrError7).PropagateFailure() + return output + } + var _13_canonData _dafny.Sequence + _ = _13_canonData + _13_canonData = (_12_valueOrError7).Extract().(_dafny.Sequence) + var _14_encryptionContext _dafny.Map + _ = _14_encryptionContext + _14_encryptionContext = ((input).Dtor_encryptionContext()).UnwrapOr(_dafny.NewMapBuilder().ToMap()).(_dafny.Map) + var _15_cmm m_AwsCryptographyMaterialProvidersTypes.ICryptographicMaterialsManager + _ = _15_cmm + _15_cmm = (input).Dtor_cmm() + if ((_8_head).Dtor_version()) == (uint8(2)) { + var _16_valueOrError8 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptyMap) + _ = _16_valueOrError8 + var _out1 m_Wrappers.Result + _ = _out1 + _out1 = Companion_Default___.GetV2EncryptionContext(m_Canonize.Companion_Default___.UnCanon(_13_canonData)) + _16_valueOrError8 = _out1 + if (_16_valueOrError8).IsFailure() { + output = (_16_valueOrError8).PropagateFailure() + return output + } + var _17_newEncryptionContext _dafny.Map + _ = _17_newEncryptionContext + _17_newEncryptionContext = (_16_valueOrError8).Extract().(_dafny.Map) + if ((_17_newEncryptionContext).Cardinality()).Sign() != 0 { + var _18_valueOrError9 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _18_valueOrError9 + _18_valueOrError9 = m_Wrappers.Companion_Default___.Need(((_14_encryptionContext).Keys()).IsDisjointFrom((_17_newEncryptionContext).Keys()), m_StructuredEncryptionUtil.Companion_Default___.E(_dafny.SeqOfString("Internal Error - Structured Encryption encryption context overlaps with Item Encryptor encryption context."))) + if (_18_valueOrError9).IsFailure() { + output = (_18_valueOrError9).PropagateFailure() + return output + } + _14_encryptionContext = (_14_encryptionContext).Merge(_17_newEncryptionContext) + var _19_contextKeysX _dafny.Sequence + _ = _19_contextKeysX + _19_contextKeysX = m_SortedSets.SetToOrderedSequence2((_17_newEncryptionContext).Keys(), func(coer34 func(uint8, uint8) bool) func(interface{}, interface{}) bool { + return func(arg45 interface{}, arg46 interface{}) bool { + return coer34(arg45.(uint8), arg46.(uint8)) + } + }(m_StructuredEncryptionUtil.Companion_Default___.ByteLess)) + var _20_contextKeys _dafny.Sequence + _ = _20_contextKeys + _20_contextKeys = _19_contextKeysX + var _21_cmmR m_Wrappers.Result + _ = _21_cmmR + var _out2 m_Wrappers.Result + _ = _out2 + _out2 = ((config).Dtor_materialProviders()).CreateRequiredEncryptionContextCMM(m_AwsCryptographyMaterialProvidersTypes.Companion_CreateRequiredEncryptionContextCMMInput_.Create_CreateRequiredEncryptionContextCMMInput_(m_Wrappers.Companion_Option_.Create_Some_((input).Dtor_cmm()), m_Wrappers.Companion_Option_.Create_None_(), _20_contextKeys)) + _21_cmmR = _out2 + var _22_valueOrError10 m_Wrappers.Result = m_Wrappers.Result{} + _ = _22_valueOrError10 + _22_valueOrError10 = (_21_cmmR).MapFailure(func(coer35 func(m_AwsCryptographyMaterialProvidersTypes.Error) m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Error) func(interface{}) interface{} { + return func(arg47 interface{}) interface{} { + return coer35(arg47.(m_AwsCryptographyMaterialProvidersTypes.Error)) + } + }(func(_23_e m_AwsCryptographyMaterialProvidersTypes.Error) m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Error { + return m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Companion_Error_.Create_AwsCryptographyMaterialProviders_(_23_e) + })) + if (_22_valueOrError10).IsFailure() { + output = (_22_valueOrError10).PropagateFailure() + return output + } + _15_cmm = m_AwsCryptographyMaterialProvidersTypes.Companion_ICryptographicMaterialsManager_.CastTo_((_22_valueOrError10).Extract()) + } + } + var _24_matR m_Wrappers.Result + _ = _24_matR + var _out3 m_Wrappers.Result + _ = _out3 + _out3 = (_15_cmm).DecryptMaterials(m_AwsCryptographyMaterialProvidersTypes.Companion_DecryptMaterialsInput_.Create_DecryptMaterialsInput_((_10_headerAlgorithmSuite).Dtor_id(), Companion_Default___.DBE__COMMITMENT__POLICY(), (_8_head).Dtor_dataKeys(), (_8_head).Dtor_encContext(), m_Wrappers.Companion_Option_.Create_Some_(_14_encryptionContext))) + _24_matR = _out3 + var _25_valueOrError11 m_Wrappers.Result = m_Wrappers.Result{} + _ = _25_valueOrError11 + _25_valueOrError11 = (_24_matR).MapFailure(func(coer36 func(m_AwsCryptographyMaterialProvidersTypes.Error) m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Error) func(interface{}) interface{} { + return func(arg48 interface{}) interface{} { + return coer36(arg48.(m_AwsCryptographyMaterialProvidersTypes.Error)) + } + }(func(_26_e m_AwsCryptographyMaterialProvidersTypes.Error) m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Error { + return m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Companion_Error_.Create_AwsCryptographyMaterialProviders_(_26_e) + })) + if (_25_valueOrError11).IsFailure() { + output = (_25_valueOrError11).PropagateFailure() + return output + } + var _27_matOutput m_AwsCryptographyMaterialProvidersTypes.DecryptMaterialsOutput + _ = _27_matOutput + _27_matOutput = (_25_valueOrError11).Extract().(m_AwsCryptographyMaterialProvidersTypes.DecryptMaterialsOutput) + var _28_mat m_AwsCryptographyMaterialProvidersTypes.DecryptionMaterials + _ = _28_mat + _28_mat = (_27_matOutput).Dtor_decryptionMaterials() + var _29_valueOrError12 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _29_valueOrError12 + _29_valueOrError12 = m_Wrappers.Companion_Default___.Need(m_StructuredEncryptionHeader.Companion_Default___.ValidEncryptionContext((_28_mat).Dtor_encryptionContext()), m_StructuredEncryptionUtil.Companion_Default___.E(_dafny.SeqOfString("Bad encryption context"))) + if (_29_valueOrError12).IsFailure() { + output = (_29_valueOrError12).PropagateFailure() + return output + } + var _30_valueOrError13 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _30_valueOrError13 + _30_valueOrError13 = m_Wrappers.Companion_Default___.Need(m_Materials.Companion_Default___.DecryptionMaterialsWithPlaintextDataKey(_28_mat), m_StructuredEncryptionUtil.Companion_Default___.E(_dafny.SeqOfString("Encryption material has no key"))) + if (_30_valueOrError13).IsFailure() { + output = (_30_valueOrError13).PropagateFailure() + return output + } + var _31_valueOrError14 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _31_valueOrError14 + _31_valueOrError14 = m_Wrappers.Companion_Default___.Need(m_StructuredEncryptionUtil.Companion_Default___.ValidSuite((_28_mat).Dtor_algorithmSuite()), m_StructuredEncryptionUtil.Companion_Default___.E(_dafny.SeqOfString("Invalid Algorithm Suite"))) + if (_31_valueOrError14).IsFailure() { + output = (_31_valueOrError14).PropagateFailure() + return output + } + var _32_postCMMAlg m_AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo + _ = _32_postCMMAlg + _32_postCMMAlg = (_28_mat).Dtor_algorithmSuite() + var _33_key _dafny.Sequence + _ = _33_key + _33_key = ((_28_mat).Dtor_plaintextDataKey()).Dtor_value().(_dafny.Sequence) + var _34_valueOrError15 m_Wrappers.Result = m_Wrappers.Result{} + _ = _34_valueOrError15 + var _out4 m_Wrappers.Result + _ = _out4 + _out4 = m_StructuredEncryptionCrypt.Companion_Default___.GetCommitKey((config).Dtor_primitives(), _32_postCMMAlg, _33_key, (_8_head).Dtor_msgID()) + _34_valueOrError15 = _out4 + if (_34_valueOrError15).IsFailure() { + output = (_34_valueOrError15).PropagateFailure() + return output + } + var _35_commitKey _dafny.Sequence + _ = _35_commitKey + _35_commitKey = (_34_valueOrError15).Extract().(_dafny.Sequence) + var _36_valueOrError16 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(false) + _ = _36_valueOrError16 + _36_valueOrError16 = (_8_head).VerifyCommitment((config).Dtor_primitives(), _32_postCMMAlg, _35_commitKey, (_4_headerSerialized).Dtor_value()) + if (_36_valueOrError16).IsFailure() { + output = (_36_valueOrError16).PropagateFailure() + return output + } + var _37_ok bool + _ = _37_ok + _37_ok = (_36_valueOrError16).Extract().(bool) + var _38_valueOrError17 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_StructuredEncryptionFooter.Companion_Footer_.Default()) + _ = _38_valueOrError17 + _38_valueOrError17 = m_StructuredEncryptionFooter.Companion_Default___.DeserializeFooter((_6_footerSerialized).Dtor_value(), ((_32_postCMMAlg).Dtor_signature()).Is_ECDSA()) + if (_38_valueOrError17).IsFailure() { + output = (_38_valueOrError17).PropagateFailure() + return output + } + var _39_footer m_StructuredEncryptionFooter.Footer + _ = _39_footer + _39_footer = (_38_valueOrError17).Extract().(m_StructuredEncryptionFooter.Footer) + var _40_valueOrError18 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(false) + _ = _40_valueOrError18 + var _out5 m_Wrappers.Result + _ = _out5 + _out5 = (_39_footer).Validate((config).Dtor_primitives(), _28_mat, (_8_head).Dtor_dataKeys(), _13_canonData, (_4_headerSerialized).Dtor_value()) + _40_valueOrError18 = _out5 + if (_40_valueOrError18).IsFailure() { + output = (_40_valueOrError18).PropagateFailure() + return output + } + var _41___v0 bool + _ = _41___v0 + _41___v0 = (_40_valueOrError18).Extract().(bool) + var _42_valueOrError19 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = _42_valueOrError19 + var _out6 m_Wrappers.Result + _ = _out6 + _out6 = m_StructuredEncryptionCrypt.Companion_Default___.Decrypt((config).Dtor_primitives(), _32_postCMMAlg, _33_key, _8_head, _13_canonData) + _42_valueOrError19 = _out6 + if (_42_valueOrError19).IsFailure() { + output = (_42_valueOrError19).PropagateFailure() + return output + } + var _43_decryptedItems _dafny.Sequence + _ = _43_decryptedItems + _43_decryptedItems = (_42_valueOrError19).Extract().(_dafny.Sequence) + var _44_largeResult _dafny.Sequence + _ = _44_largeResult + _44_largeResult = m_Canonize.Companion_Default___.UnCanonDecrypt(_43_decryptedItems) + var _45_smallResult _dafny.Sequence + _ = _45_smallResult + _45_smallResult = m_Canonize.Companion_Default___.RemoveHeaders(_44_largeResult) + var _46_parsedHeader m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.ParsedHeader + _ = _46_parsedHeader + _46_parsedHeader = m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Companion_ParsedHeader_.Create_ParsedHeader_(((_10_headerAlgorithmSuite).Dtor_id()).Dtor_DBE(), (_8_head).Dtor_dataKeys(), (_8_head).Dtor_encContext(), (_28_mat).Dtor_encryptionContext()) + var _47_decryptOutput m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.DecryptPathStructureOutput + _ = _47_decryptOutput + _47_decryptOutput = m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Companion_DecryptPathStructureOutput_.Create_DecryptPathStructureOutput_(_45_smallResult, _46_parsedHeader) + output = m_Wrappers.Companion_Result_.Create_Success_(_47_decryptOutput) + return output +} +func (_static *CompanionStruct_Default___) DBE__COMMITMENT__POLICY() m_AwsCryptographyMaterialProvidersTypes.CommitmentPolicy { + return m_AwsCryptographyMaterialProvidersTypes.Companion_CommitmentPolicy_.Create_DBE_(m_AwsCryptographyMaterialProvidersTypes.Companion_DBECommitmentPolicy_.Create_REQUIRE__ENCRYPT__REQUIRE__DECRYPT_()) +} + +// End of class Default__ + +// Definition of datatype Config +type Config struct { + Data_Config_ +} + +func (_this Config) Get_() Data_Config_ { + return _this.Data_Config_ +} + +type Data_Config_ interface { + isConfig() +} + +type CompanionStruct_Config_ struct { +} + +var Companion_Config_ = CompanionStruct_Config_{} + +type Config_Config struct { + Primitives *m_AtomicPrimitives.AtomicPrimitivesClient + MaterialProviders *m_MaterialProviders.MaterialProvidersClient +} + +func (Config_Config) isConfig() {} + +func (CompanionStruct_Config_) Create_Config_(Primitives *m_AtomicPrimitives.AtomicPrimitivesClient, MaterialProviders *m_MaterialProviders.MaterialProvidersClient) Config { + return Config{Config_Config{Primitives, MaterialProviders}} +} + +func (_this Config) Is_Config() bool { + _, ok := _this.Get_().(Config_Config) + return ok +} + +func (CompanionStruct_Config_) Default() Config { + return Companion_Config_.Create_Config_((*m_AtomicPrimitives.AtomicPrimitivesClient)(nil), (*m_MaterialProviders.MaterialProvidersClient)(nil)) +} + +func (_this Config) Dtor_primitives() *m_AtomicPrimitives.AtomicPrimitivesClient { + return _this.Get_().(Config_Config).Primitives +} + +func (_this Config) Dtor_materialProviders() *m_MaterialProviders.MaterialProvidersClient { + return _this.Get_().(Config_Config).MaterialProviders +} + +func (_this Config) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case Config_Config: + { + return "AwsCryptographyDbEncryptionSdkStructuredEncryptionOperations.Config.Config" + "(" + _dafny.String(data.Primitives) + ", " + _dafny.String(data.MaterialProviders) + ")" + } + default: + { + return "" + } + } +} + +func (_this Config) Equals(other Config) bool { + switch data1 := _this.Get_().(type) { + case Config_Config: + { + data2, ok := other.Get_().(Config_Config) + return ok && data1.Primitives == data2.Primitives && data1.MaterialProviders == data2.MaterialProviders + } + default: + { + return false // unexpected + } + } +} + +func (_this Config) EqualsGeneric(other interface{}) bool { + typed, ok := other.(Config) + return ok && _this.Equals(typed) +} + +func Type_Config_() _dafny.TypeDescriptor { + return type_Config_{} +} + +type type_Config_ struct { +} + +func (_this type_Config_) Default() interface{} { + return Companion_Config_.Default() +} + +func (_this type_Config_) String() string { + return "AwsCryptographyDbEncryptionSdkStructuredEncryptionOperations.Config" +} +func (_this Config) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = Config{} + +// End of datatype Config diff --git a/customer-preview/ddb-esdk/AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes/AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.go b/customer-preview/ddb-esdk/AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes/AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.go new file mode 100644 index 000000000..1c6045ab3 --- /dev/null +++ b/customer-preview/ddb-esdk/AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes/AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.go @@ -0,0 +1,2954 @@ +// Package AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes +// Dafny module AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes compiled into Go + +package AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes + +import ( + os "os" + + m_ComAmazonawsDynamodbTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/ComAmazonawsDynamodbTypes" + m_Com_Amazonaws_Dynamodb "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/Com_Amazonaws_Dynamodb" + m_ComAmazonawsKmsTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/ComAmazonawsKmsTypes" + m_Com_Amazonaws_Kms "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/Com_Amazonaws_Kms" + m_AlgorithmSuites "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AlgorithmSuites" + m_AwsArnParsing "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsArnParsing" + m_AwsCryptographyKeyStoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreOperations" + m_AwsCryptographyKeyStoreTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreTypes" + m_AwsCryptographyMaterialProvidersOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersOperations" + m_AwsCryptographyMaterialProvidersTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersTypes" + m_AwsKmsDiscoveryKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsDiscoveryKeyring" + m_AwsKmsEcdhKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsEcdhKeyring" + m_AwsKmsHierarchicalKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsHierarchicalKeyring" + m_AwsKmsKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsKeyring" + m_AwsKmsMrkAreUnique "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkAreUnique" + m_AwsKmsMrkDiscoveryKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkDiscoveryKeyring" + m_AwsKmsMrkKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkKeyring" + m_AwsKmsMrkMatchForDecrypt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkMatchForDecrypt" + m_AwsKmsRsaKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsRsaKeyring" + m_AwsKmsUtils "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsUtils" + m_CMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CMM" + m_CacheConstants "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CacheConstants" + m_CanonicalEncryptionContext "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CanonicalEncryptionContext" + m_Commitment "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Commitment" + m_Constants "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Constants" + m_CreateKeyStoreTable "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeyStoreTable" + m_CreateKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeys" + m_DDBKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DDBKeystoreOperations" + m_DefaultCMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DefaultCMM" + m_DefaultClientSupplier "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DefaultClientSupplier" + m_Defaults "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Defaults" + m_DiscoveryMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DiscoveryMultiKeyring" + m_EcdhEdkWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/EcdhEdkWrapping" + m_EdkWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/EdkWrapping" + m_ErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/ErrorMessages" + m_GetKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/GetKeys" + m_IntermediateKeyWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/IntermediateKeyWrapping" + m_KMSKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KMSKeystoreOperations" + m_KeyStore "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStore" + m_KeyStoreErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStoreErrorMessages" + m_Keyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Keyring" + m_KmsArn "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KmsArn" + m_LocalCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/LocalCMC" + m_MaterialProviders "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MaterialProviders" + m_MaterialWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MaterialWrapping" + m_Materials "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Materials" + m_MrkAwareDiscoveryMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MrkAwareDiscoveryMultiKeyring" + m_MrkAwareStrictMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MrkAwareStrictMultiKeyring" + m_MultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MultiKeyring" + m_RawAESKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawAESKeyring" + m_RawECDHKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawECDHKeyring" + m_RawRSAKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawRSAKeyring" + m_RequiredEncryptionContextCMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RequiredEncryptionContextCMM" + m_StormTracker "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StormTracker" + m_StormTrackingCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StormTrackingCMC" + m_StrictMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StrictMultiKeyring" + m_Structure "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Structure" + m_SynchronizedLocalCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/SynchronizedLocalCMC" + m_Utils "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Utils" + m_AtomicPrimitives "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AtomicPrimitives" + m_AwsCryptographyPrimitivesOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesOperations" + m_AwsCryptographyPrimitivesTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesTypes" + m_Digest "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Digest" + m_HKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/HKDF" + m_KdfCtr "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/KdfCtr" + m_Random "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Random" + m_WrappedHKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHKDF" + m_WrappedHMAC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHMAC" + m_Actions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Actions" + m_Base64 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64" + m_Base64Lemmas "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64Lemmas" + m_BoundedInts "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/BoundedInts" + m_DivInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternals" + m_DivInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternalsNonlinear" + m_DivMod "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivMod" + m_FileIO "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FileIO" + m_FloatCompare "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FloatCompare" + m_Functions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Functions" + m_GeneralInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GeneralInternals" + m_GetOpt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GetOpt" + m_HexStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/HexStrings" + m_Logarithm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Logarithm" + m__Math "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Math_" + m_ModInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternals" + m_ModInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternalsNonlinear" + m_Mul "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Mul" + m_MulInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternals" + m_MulInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternalsNonlinear" + m_Power "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Power" + m_Relations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Relations" + m_Seq "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq" + m_Seq_MergeSort "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq_MergeSort" + m_Sorting "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Sorting" + m_StandardLibrary "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary" + m_StandardLibraryInterop "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibraryInterop" + m_StandardLibrary_Sequence "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_Sequence" + m_StandardLibrary_String "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_String" + m_StandardLibrary_UInt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_UInt" + m_Streams "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Streams" + m_UnicodeStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UnicodeStrings" + m__Unicode "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Unicode_" + m_Utf16EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf16EncodingForm" + m_Utf8EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf8EncodingForm" + m_Wrappers "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers" + m__System "github.com/dafny-lang/DafnyRuntimeGo/v4/System_" + _dafny "github.com/dafny-lang/DafnyRuntimeGo/v4/dafny" +) + +var _ = os.Args +var _ _dafny.Dummy__ +var _ m__System.Dummy__ +var _ m_Wrappers.Dummy__ +var _ m_BoundedInts.Dummy__ +var _ m_StandardLibrary_UInt.Dummy__ +var _ m_StandardLibrary_Sequence.Dummy__ +var _ m_StandardLibrary_String.Dummy__ +var _ m_StandardLibrary.Dummy__ +var _ m_AwsCryptographyPrimitivesTypes.Dummy__ +var _ m_Random.Dummy__ +var _ m_Digest.Dummy__ +var _ m_WrappedHMAC.Dummy__ +var _ m_HKDF.Dummy__ +var _ m_WrappedHKDF.Dummy__ +var _ m_KdfCtr.Dummy__ +var _ m_AwsCryptographyPrimitivesOperations.Dummy__ +var _ m_AtomicPrimitives.Dummy__ +var _ m_ComAmazonawsDynamodbTypes.Dummy__ +var _ m_ComAmazonawsKmsTypes.Dummy__ +var _ m_AwsCryptographyKeyStoreTypes.Dummy__ +var _ m_AwsCryptographyMaterialProvidersTypes.Dummy__ +var _ m_Base64.Dummy__ +var _ m_AlgorithmSuites.Dummy__ +var _ m_Materials.Dummy__ +var _ m_Keyring.Dummy__ +var _ m_Relations.Dummy__ +var _ m_Seq_MergeSort.Dummy__ +var _ m__Math.Dummy__ +var _ m_Seq.Dummy__ +var _ m_MultiKeyring.Dummy__ +var _ m_AwsArnParsing.Dummy__ +var _ m_AwsKmsMrkAreUnique.Dummy__ +var _ m_Actions.Dummy__ +var _ m_AwsKmsMrkMatchForDecrypt.Dummy__ +var _ m_AwsKmsUtils.Dummy__ +var _ m_Constants.Dummy__ +var _ m_MaterialWrapping.Dummy__ +var _ m_CanonicalEncryptionContext.Dummy__ +var _ m_IntermediateKeyWrapping.Dummy__ +var _ m_EdkWrapping.Dummy__ +var _ m_ErrorMessages.Dummy__ +var _ m_AwsKmsKeyring.Dummy__ +var _ m_StrictMultiKeyring.Dummy__ +var _ m_AwsKmsDiscoveryKeyring.Dummy__ +var _ m_Com_Amazonaws_Kms.Dummy__ +var _ m_Com_Amazonaws_Dynamodb.Dummy__ +var _ m_DiscoveryMultiKeyring.Dummy__ +var _ m_AwsKmsMrkDiscoveryKeyring.Dummy__ +var _ m_MrkAwareDiscoveryMultiKeyring.Dummy__ +var _ m_AwsKmsMrkKeyring.Dummy__ +var _ m_MrkAwareStrictMultiKeyring.Dummy__ +var _ m_LocalCMC.Dummy__ +var _ m_SynchronizedLocalCMC.Dummy__ +var _ m_StormTracker.Dummy__ +var _ m_StormTrackingCMC.Dummy__ +var _ m_CacheConstants.Dummy__ +var _ m_AwsKmsHierarchicalKeyring.Dummy__ +var _ m_AwsKmsRsaKeyring.Dummy__ +var _ m_EcdhEdkWrapping.Dummy__ +var _ m_RawECDHKeyring.Dummy__ +var _ m_AwsKmsEcdhKeyring.Dummy__ +var _ m_RawAESKeyring.Dummy__ +var _ m_RawRSAKeyring.Dummy__ +var _ m_CMM.Dummy__ +var _ m_Defaults.Dummy__ +var _ m_Commitment.Dummy__ +var _ m_DefaultCMM.Dummy__ +var _ m_DefaultClientSupplier.Dummy__ +var _ m_Utils.Dummy__ +var _ m_RequiredEncryptionContextCMM.Dummy__ +var _ m_AwsCryptographyMaterialProvidersOperations.Dummy__ +var _ m_MaterialProviders.Dummy__ +var _ m_KeyStoreErrorMessages.Dummy__ +var _ m_KmsArn.Dummy__ +var _ m_Structure.Dummy__ +var _ m_KMSKeystoreOperations.Dummy__ +var _ m_DDBKeystoreOperations.Dummy__ +var _ m_CreateKeys.Dummy__ +var _ m_CreateKeyStoreTable.Dummy__ +var _ m_GetKeys.Dummy__ +var _ m_AwsCryptographyKeyStoreOperations.Dummy__ +var _ m_KeyStore.Dummy__ +var _ m__Unicode.Dummy__ +var _ m_Functions.Dummy__ +var _ m_Utf8EncodingForm.Dummy__ +var _ m_Utf16EncodingForm.Dummy__ +var _ m_UnicodeStrings.Dummy__ +var _ m_FileIO.Dummy__ +var _ m_GeneralInternals.Dummy__ +var _ m_MulInternalsNonlinear.Dummy__ +var _ m_MulInternals.Dummy__ +var _ m_Mul.Dummy__ +var _ m_ModInternalsNonlinear.Dummy__ +var _ m_DivInternalsNonlinear.Dummy__ +var _ m_ModInternals.Dummy__ +var _ m_DivInternals.Dummy__ +var _ m_DivMod.Dummy__ +var _ m_Power.Dummy__ +var _ m_Logarithm.Dummy__ +var _ m_StandardLibraryInterop.Dummy__ +var _ m_Streams.Dummy__ +var _ m_Sorting.Dummy__ +var _ m_HexStrings.Dummy__ +var _ m_GetOpt.Dummy__ +var _ m_FloatCompare.Dummy__ +var _ m_Base64Lemmas.Dummy__ + +type Dummy__ struct{} + +// Definition of class Default__ +type Default__ struct { + dummy byte +} + +func New_Default___() *Default__ { + _this := Default__{} + + return &_this +} + +type CompanionStruct_Default___ struct { +} + +var Companion_Default___ = CompanionStruct_Default___{} + +func (_this *Default__) Equals(other *Default__) bool { + return _this == other +} + +func (_this *Default__) EqualsGeneric(x interface{}) bool { + other, ok := x.(*Default__) + return ok && _this.Equals(other) +} + +func (*Default__) String() string { + return "AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Default__" +} +func (_this *Default__) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = &Default__{} + +func (_static *CompanionStruct_Default___) IsValid__TerminalTypeId(x _dafny.Sequence) bool { + return ((_dafny.IntOfInt64(2)).Cmp(_dafny.IntOfUint32((x).Cardinality())) <= 0) && ((_dafny.IntOfUint32((x).Cardinality())).Cmp(_dafny.IntOfInt64(2)) <= 0) +} +func (_static *CompanionStruct_Default___) IsDummySubsetType(x _dafny.Int) bool { + return (x).Sign() == 1 +} + +// End of class Default__ + +// Definition of datatype DafnyCallEvent +type DafnyCallEvent struct { + Data_DafnyCallEvent_ +} + +func (_this DafnyCallEvent) Get_() Data_DafnyCallEvent_ { + return _this.Data_DafnyCallEvent_ +} + +type Data_DafnyCallEvent_ interface { + isDafnyCallEvent() +} + +type CompanionStruct_DafnyCallEvent_ struct { +} + +var Companion_DafnyCallEvent_ = CompanionStruct_DafnyCallEvent_{} + +type DafnyCallEvent_DafnyCallEvent struct { + Input interface{} + Output interface{} +} + +func (DafnyCallEvent_DafnyCallEvent) isDafnyCallEvent() {} + +func (CompanionStruct_DafnyCallEvent_) Create_DafnyCallEvent_(Input interface{}, Output interface{}) DafnyCallEvent { + return DafnyCallEvent{DafnyCallEvent_DafnyCallEvent{Input, Output}} +} + +func (_this DafnyCallEvent) Is_DafnyCallEvent() bool { + _, ok := _this.Get_().(DafnyCallEvent_DafnyCallEvent) + return ok +} + +func (CompanionStruct_DafnyCallEvent_) Default(_default_I interface{}, _default_O interface{}) DafnyCallEvent { + return Companion_DafnyCallEvent_.Create_DafnyCallEvent_(_default_I, _default_O) +} + +func (_this DafnyCallEvent) Dtor_input() interface{} { + return _this.Get_().(DafnyCallEvent_DafnyCallEvent).Input +} + +func (_this DafnyCallEvent) Dtor_output() interface{} { + return _this.Get_().(DafnyCallEvent_DafnyCallEvent).Output +} + +func (_this DafnyCallEvent) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case DafnyCallEvent_DafnyCallEvent: + { + return "AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.DafnyCallEvent.DafnyCallEvent" + "(" + _dafny.String(data.Input) + ", " + _dafny.String(data.Output) + ")" + } + default: + { + return "" + } + } +} + +func (_this DafnyCallEvent) Equals(other DafnyCallEvent) bool { + switch data1 := _this.Get_().(type) { + case DafnyCallEvent_DafnyCallEvent: + { + data2, ok := other.Get_().(DafnyCallEvent_DafnyCallEvent) + return ok && _dafny.AreEqual(data1.Input, data2.Input) && _dafny.AreEqual(data1.Output, data2.Output) + } + default: + { + return false // unexpected + } + } +} + +func (_this DafnyCallEvent) EqualsGeneric(other interface{}) bool { + typed, ok := other.(DafnyCallEvent) + return ok && _this.Equals(typed) +} + +func Type_DafnyCallEvent_(Type_I_ _dafny.TypeDescriptor, Type_O_ _dafny.TypeDescriptor) _dafny.TypeDescriptor { + return type_DafnyCallEvent_{Type_I_, Type_O_} +} + +type type_DafnyCallEvent_ struct { + Type_I_ _dafny.TypeDescriptor + Type_O_ _dafny.TypeDescriptor +} + +func (_this type_DafnyCallEvent_) Default() interface{} { + Type_I_ := _this.Type_I_ + _ = Type_I_ + Type_O_ := _this.Type_O_ + _ = Type_O_ + return Companion_DafnyCallEvent_.Default(Type_I_.Default(), Type_O_.Default()) +} + +func (_this type_DafnyCallEvent_) String() string { + return "AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.DafnyCallEvent" +} +func (_this DafnyCallEvent) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = DafnyCallEvent{} + +// End of datatype DafnyCallEvent + +// Definition of datatype AuthenticateAction +type AuthenticateAction struct { + Data_AuthenticateAction_ +} + +func (_this AuthenticateAction) Get_() Data_AuthenticateAction_ { + return _this.Data_AuthenticateAction_ +} + +type Data_AuthenticateAction_ interface { + isAuthenticateAction() +} + +type CompanionStruct_AuthenticateAction_ struct { +} + +var Companion_AuthenticateAction_ = CompanionStruct_AuthenticateAction_{} + +type AuthenticateAction_SIGN struct { +} + +func (AuthenticateAction_SIGN) isAuthenticateAction() {} + +func (CompanionStruct_AuthenticateAction_) Create_SIGN_() AuthenticateAction { + return AuthenticateAction{AuthenticateAction_SIGN{}} +} + +func (_this AuthenticateAction) Is_SIGN() bool { + _, ok := _this.Get_().(AuthenticateAction_SIGN) + return ok +} + +type AuthenticateAction_DO__NOT__SIGN struct { +} + +func (AuthenticateAction_DO__NOT__SIGN) isAuthenticateAction() {} + +func (CompanionStruct_AuthenticateAction_) Create_DO__NOT__SIGN_() AuthenticateAction { + return AuthenticateAction{AuthenticateAction_DO__NOT__SIGN{}} +} + +func (_this AuthenticateAction) Is_DO__NOT__SIGN() bool { + _, ok := _this.Get_().(AuthenticateAction_DO__NOT__SIGN) + return ok +} + +func (CompanionStruct_AuthenticateAction_) Default() AuthenticateAction { + return Companion_AuthenticateAction_.Create_SIGN_() +} + +func (_ CompanionStruct_AuthenticateAction_) AllSingletonConstructors() _dafny.Iterator { + i := -1 + return func() (interface{}, bool) { + i++ + switch i { + case 0: + return Companion_AuthenticateAction_.Create_SIGN_(), true + case 1: + return Companion_AuthenticateAction_.Create_DO__NOT__SIGN_(), true + default: + return AuthenticateAction{}, false + } + } +} + +func (_this AuthenticateAction) String() string { + switch _this.Get_().(type) { + case nil: + return "null" + case AuthenticateAction_SIGN: + { + return "AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.AuthenticateAction.SIGN" + } + case AuthenticateAction_DO__NOT__SIGN: + { + return "AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.AuthenticateAction.DO_NOT_SIGN" + } + default: + { + return "" + } + } +} + +func (_this AuthenticateAction) Equals(other AuthenticateAction) bool { + switch _this.Get_().(type) { + case AuthenticateAction_SIGN: + { + _, ok := other.Get_().(AuthenticateAction_SIGN) + return ok + } + case AuthenticateAction_DO__NOT__SIGN: + { + _, ok := other.Get_().(AuthenticateAction_DO__NOT__SIGN) + return ok + } + default: + { + return false // unexpected + } + } +} + +func (_this AuthenticateAction) EqualsGeneric(other interface{}) bool { + typed, ok := other.(AuthenticateAction) + return ok && _this.Equals(typed) +} + +func Type_AuthenticateAction_() _dafny.TypeDescriptor { + return type_AuthenticateAction_{} +} + +type type_AuthenticateAction_ struct { +} + +func (_this type_AuthenticateAction_) Default() interface{} { + return Companion_AuthenticateAction_.Default() +} + +func (_this type_AuthenticateAction_) String() string { + return "AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.AuthenticateAction" +} +func (_this AuthenticateAction) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = AuthenticateAction{} + +// End of datatype AuthenticateAction + +// Definition of datatype AuthItem +type AuthItem struct { + Data_AuthItem_ +} + +func (_this AuthItem) Get_() Data_AuthItem_ { + return _this.Data_AuthItem_ +} + +type Data_AuthItem_ interface { + isAuthItem() +} + +type CompanionStruct_AuthItem_ struct { +} + +var Companion_AuthItem_ = CompanionStruct_AuthItem_{} + +type AuthItem_AuthItem struct { + Key _dafny.Sequence + Data StructuredDataTerminal + Action AuthenticateAction +} + +func (AuthItem_AuthItem) isAuthItem() {} + +func (CompanionStruct_AuthItem_) Create_AuthItem_(Key _dafny.Sequence, Data StructuredDataTerminal, Action AuthenticateAction) AuthItem { + return AuthItem{AuthItem_AuthItem{Key, Data, Action}} +} + +func (_this AuthItem) Is_AuthItem() bool { + _, ok := _this.Get_().(AuthItem_AuthItem) + return ok +} + +func (CompanionStruct_AuthItem_) Default() AuthItem { + return Companion_AuthItem_.Create_AuthItem_(_dafny.EmptySeq, Companion_StructuredDataTerminal_.Default(), Companion_AuthenticateAction_.Default()) +} + +func (_this AuthItem) Dtor_key() _dafny.Sequence { + return _this.Get_().(AuthItem_AuthItem).Key +} + +func (_this AuthItem) Dtor_data() StructuredDataTerminal { + return _this.Get_().(AuthItem_AuthItem).Data +} + +func (_this AuthItem) Dtor_action() AuthenticateAction { + return _this.Get_().(AuthItem_AuthItem).Action +} + +func (_this AuthItem) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case AuthItem_AuthItem: + { + return "AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.AuthItem.AuthItem" + "(" + _dafny.String(data.Key) + ", " + _dafny.String(data.Data) + ", " + _dafny.String(data.Action) + ")" + } + default: + { + return "" + } + } +} + +func (_this AuthItem) Equals(other AuthItem) bool { + switch data1 := _this.Get_().(type) { + case AuthItem_AuthItem: + { + data2, ok := other.Get_().(AuthItem_AuthItem) + return ok && data1.Key.Equals(data2.Key) && data1.Data.Equals(data2.Data) && data1.Action.Equals(data2.Action) + } + default: + { + return false // unexpected + } + } +} + +func (_this AuthItem) EqualsGeneric(other interface{}) bool { + typed, ok := other.(AuthItem) + return ok && _this.Equals(typed) +} + +func Type_AuthItem_() _dafny.TypeDescriptor { + return type_AuthItem_{} +} + +type type_AuthItem_ struct { +} + +func (_this type_AuthItem_) Default() interface{} { + return Companion_AuthItem_.Default() +} + +func (_this type_AuthItem_) String() string { + return "AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.AuthItem" +} +func (_this AuthItem) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = AuthItem{} + +// End of datatype AuthItem + +// Definition of datatype CryptoAction +type CryptoAction struct { + Data_CryptoAction_ +} + +func (_this CryptoAction) Get_() Data_CryptoAction_ { + return _this.Data_CryptoAction_ +} + +type Data_CryptoAction_ interface { + isCryptoAction() +} + +type CompanionStruct_CryptoAction_ struct { +} + +var Companion_CryptoAction_ = CompanionStruct_CryptoAction_{} + +type CryptoAction_ENCRYPT__AND__SIGN struct { +} + +func (CryptoAction_ENCRYPT__AND__SIGN) isCryptoAction() {} + +func (CompanionStruct_CryptoAction_) Create_ENCRYPT__AND__SIGN_() CryptoAction { + return CryptoAction{CryptoAction_ENCRYPT__AND__SIGN{}} +} + +func (_this CryptoAction) Is_ENCRYPT__AND__SIGN() bool { + _, ok := _this.Get_().(CryptoAction_ENCRYPT__AND__SIGN) + return ok +} + +type CryptoAction_SIGN__AND__INCLUDE__IN__ENCRYPTION__CONTEXT struct { +} + +func (CryptoAction_SIGN__AND__INCLUDE__IN__ENCRYPTION__CONTEXT) isCryptoAction() {} + +func (CompanionStruct_CryptoAction_) Create_SIGN__AND__INCLUDE__IN__ENCRYPTION__CONTEXT_() CryptoAction { + return CryptoAction{CryptoAction_SIGN__AND__INCLUDE__IN__ENCRYPTION__CONTEXT{}} +} + +func (_this CryptoAction) Is_SIGN__AND__INCLUDE__IN__ENCRYPTION__CONTEXT() bool { + _, ok := _this.Get_().(CryptoAction_SIGN__AND__INCLUDE__IN__ENCRYPTION__CONTEXT) + return ok +} + +type CryptoAction_SIGN__ONLY struct { +} + +func (CryptoAction_SIGN__ONLY) isCryptoAction() {} + +func (CompanionStruct_CryptoAction_) Create_SIGN__ONLY_() CryptoAction { + return CryptoAction{CryptoAction_SIGN__ONLY{}} +} + +func (_this CryptoAction) Is_SIGN__ONLY() bool { + _, ok := _this.Get_().(CryptoAction_SIGN__ONLY) + return ok +} + +type CryptoAction_DO__NOTHING struct { +} + +func (CryptoAction_DO__NOTHING) isCryptoAction() {} + +func (CompanionStruct_CryptoAction_) Create_DO__NOTHING_() CryptoAction { + return CryptoAction{CryptoAction_DO__NOTHING{}} +} + +func (_this CryptoAction) Is_DO__NOTHING() bool { + _, ok := _this.Get_().(CryptoAction_DO__NOTHING) + return ok +} + +func (CompanionStruct_CryptoAction_) Default() CryptoAction { + return Companion_CryptoAction_.Create_ENCRYPT__AND__SIGN_() +} + +func (_ CompanionStruct_CryptoAction_) AllSingletonConstructors() _dafny.Iterator { + i := -1 + return func() (interface{}, bool) { + i++ + switch i { + case 0: + return Companion_CryptoAction_.Create_ENCRYPT__AND__SIGN_(), true + case 1: + return Companion_CryptoAction_.Create_SIGN__AND__INCLUDE__IN__ENCRYPTION__CONTEXT_(), true + case 2: + return Companion_CryptoAction_.Create_SIGN__ONLY_(), true + case 3: + return Companion_CryptoAction_.Create_DO__NOTHING_(), true + default: + return CryptoAction{}, false + } + } +} + +func (_this CryptoAction) String() string { + switch _this.Get_().(type) { + case nil: + return "null" + case CryptoAction_ENCRYPT__AND__SIGN: + { + return "AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.CryptoAction.ENCRYPT_AND_SIGN" + } + case CryptoAction_SIGN__AND__INCLUDE__IN__ENCRYPTION__CONTEXT: + { + return "AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.CryptoAction.SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT" + } + case CryptoAction_SIGN__ONLY: + { + return "AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.CryptoAction.SIGN_ONLY" + } + case CryptoAction_DO__NOTHING: + { + return "AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.CryptoAction.DO_NOTHING" + } + default: + { + return "" + } + } +} + +func (_this CryptoAction) Equals(other CryptoAction) bool { + switch _this.Get_().(type) { + case CryptoAction_ENCRYPT__AND__SIGN: + { + _, ok := other.Get_().(CryptoAction_ENCRYPT__AND__SIGN) + return ok + } + case CryptoAction_SIGN__AND__INCLUDE__IN__ENCRYPTION__CONTEXT: + { + _, ok := other.Get_().(CryptoAction_SIGN__AND__INCLUDE__IN__ENCRYPTION__CONTEXT) + return ok + } + case CryptoAction_SIGN__ONLY: + { + _, ok := other.Get_().(CryptoAction_SIGN__ONLY) + return ok + } + case CryptoAction_DO__NOTHING: + { + _, ok := other.Get_().(CryptoAction_DO__NOTHING) + return ok + } + default: + { + return false // unexpected + } + } +} + +func (_this CryptoAction) EqualsGeneric(other interface{}) bool { + typed, ok := other.(CryptoAction) + return ok && _this.Equals(typed) +} + +func Type_CryptoAction_() _dafny.TypeDescriptor { + return type_CryptoAction_{} +} + +type type_CryptoAction_ struct { +} + +func (_this type_CryptoAction_) Default() interface{} { + return Companion_CryptoAction_.Default() +} + +func (_this type_CryptoAction_) String() string { + return "AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.CryptoAction" +} +func (_this CryptoAction) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = CryptoAction{} + +// End of datatype CryptoAction + +// Definition of datatype CryptoItem +type CryptoItem struct { + Data_CryptoItem_ +} + +func (_this CryptoItem) Get_() Data_CryptoItem_ { + return _this.Data_CryptoItem_ +} + +type Data_CryptoItem_ interface { + isCryptoItem() +} + +type CompanionStruct_CryptoItem_ struct { +} + +var Companion_CryptoItem_ = CompanionStruct_CryptoItem_{} + +type CryptoItem_CryptoItem struct { + Key _dafny.Sequence + Data StructuredDataTerminal + Action CryptoAction +} + +func (CryptoItem_CryptoItem) isCryptoItem() {} + +func (CompanionStruct_CryptoItem_) Create_CryptoItem_(Key _dafny.Sequence, Data StructuredDataTerminal, Action CryptoAction) CryptoItem { + return CryptoItem{CryptoItem_CryptoItem{Key, Data, Action}} +} + +func (_this CryptoItem) Is_CryptoItem() bool { + _, ok := _this.Get_().(CryptoItem_CryptoItem) + return ok +} + +func (CompanionStruct_CryptoItem_) Default() CryptoItem { + return Companion_CryptoItem_.Create_CryptoItem_(_dafny.EmptySeq, Companion_StructuredDataTerminal_.Default(), Companion_CryptoAction_.Default()) +} + +func (_this CryptoItem) Dtor_key() _dafny.Sequence { + return _this.Get_().(CryptoItem_CryptoItem).Key +} + +func (_this CryptoItem) Dtor_data() StructuredDataTerminal { + return _this.Get_().(CryptoItem_CryptoItem).Data +} + +func (_this CryptoItem) Dtor_action() CryptoAction { + return _this.Get_().(CryptoItem_CryptoItem).Action +} + +func (_this CryptoItem) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case CryptoItem_CryptoItem: + { + return "AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.CryptoItem.CryptoItem" + "(" + _dafny.String(data.Key) + ", " + _dafny.String(data.Data) + ", " + _dafny.String(data.Action) + ")" + } + default: + { + return "" + } + } +} + +func (_this CryptoItem) Equals(other CryptoItem) bool { + switch data1 := _this.Get_().(type) { + case CryptoItem_CryptoItem: + { + data2, ok := other.Get_().(CryptoItem_CryptoItem) + return ok && data1.Key.Equals(data2.Key) && data1.Data.Equals(data2.Data) && data1.Action.Equals(data2.Action) + } + default: + { + return false // unexpected + } + } +} + +func (_this CryptoItem) EqualsGeneric(other interface{}) bool { + typed, ok := other.(CryptoItem) + return ok && _this.Equals(typed) +} + +func Type_CryptoItem_() _dafny.TypeDescriptor { + return type_CryptoItem_{} +} + +type type_CryptoItem_ struct { +} + +func (_this type_CryptoItem_) Default() interface{} { + return Companion_CryptoItem_.Default() +} + +func (_this type_CryptoItem_) String() string { + return "AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.CryptoItem" +} +func (_this CryptoItem) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = CryptoItem{} + +// End of datatype CryptoItem + +// Definition of datatype DecryptPathStructureInput +type DecryptPathStructureInput struct { + Data_DecryptPathStructureInput_ +} + +func (_this DecryptPathStructureInput) Get_() Data_DecryptPathStructureInput_ { + return _this.Data_DecryptPathStructureInput_ +} + +type Data_DecryptPathStructureInput_ interface { + isDecryptPathStructureInput() +} + +type CompanionStruct_DecryptPathStructureInput_ struct { +} + +var Companion_DecryptPathStructureInput_ = CompanionStruct_DecryptPathStructureInput_{} + +type DecryptPathStructureInput_DecryptPathStructureInput struct { + TableName _dafny.Sequence + EncryptedStructure _dafny.Sequence + Cmm m_AwsCryptographyMaterialProvidersTypes.ICryptographicMaterialsManager + EncryptionContext m_Wrappers.Option +} + +func (DecryptPathStructureInput_DecryptPathStructureInput) isDecryptPathStructureInput() {} + +func (CompanionStruct_DecryptPathStructureInput_) Create_DecryptPathStructureInput_(TableName _dafny.Sequence, EncryptedStructure _dafny.Sequence, Cmm m_AwsCryptographyMaterialProvidersTypes.ICryptographicMaterialsManager, EncryptionContext m_Wrappers.Option) DecryptPathStructureInput { + return DecryptPathStructureInput{DecryptPathStructureInput_DecryptPathStructureInput{TableName, EncryptedStructure, Cmm, EncryptionContext}} +} + +func (_this DecryptPathStructureInput) Is_DecryptPathStructureInput() bool { + _, ok := _this.Get_().(DecryptPathStructureInput_DecryptPathStructureInput) + return ok +} + +func (CompanionStruct_DecryptPathStructureInput_) Default() DecryptPathStructureInput { + return Companion_DecryptPathStructureInput_.Create_DecryptPathStructureInput_(_dafny.EmptySeq.SetString(), _dafny.EmptySeq, (m_AwsCryptographyMaterialProvidersTypes.ICryptographicMaterialsManager)(nil), m_Wrappers.Companion_Option_.Default()) +} + +func (_this DecryptPathStructureInput) Dtor_tableName() _dafny.Sequence { + return _this.Get_().(DecryptPathStructureInput_DecryptPathStructureInput).TableName +} + +func (_this DecryptPathStructureInput) Dtor_encryptedStructure() _dafny.Sequence { + return _this.Get_().(DecryptPathStructureInput_DecryptPathStructureInput).EncryptedStructure +} + +func (_this DecryptPathStructureInput) Dtor_cmm() m_AwsCryptographyMaterialProvidersTypes.ICryptographicMaterialsManager { + return _this.Get_().(DecryptPathStructureInput_DecryptPathStructureInput).Cmm +} + +func (_this DecryptPathStructureInput) Dtor_encryptionContext() m_Wrappers.Option { + return _this.Get_().(DecryptPathStructureInput_DecryptPathStructureInput).EncryptionContext +} + +func (_this DecryptPathStructureInput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case DecryptPathStructureInput_DecryptPathStructureInput: + { + return "AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.DecryptPathStructureInput.DecryptPathStructureInput" + "(" + _dafny.String(data.TableName) + ", " + _dafny.String(data.EncryptedStructure) + ", " + _dafny.String(data.Cmm) + ", " + _dafny.String(data.EncryptionContext) + ")" + } + default: + { + return "" + } + } +} + +func (_this DecryptPathStructureInput) Equals(other DecryptPathStructureInput) bool { + switch data1 := _this.Get_().(type) { + case DecryptPathStructureInput_DecryptPathStructureInput: + { + data2, ok := other.Get_().(DecryptPathStructureInput_DecryptPathStructureInput) + return ok && data1.TableName.Equals(data2.TableName) && data1.EncryptedStructure.Equals(data2.EncryptedStructure) && _dafny.AreEqual(data1.Cmm, data2.Cmm) && data1.EncryptionContext.Equals(data2.EncryptionContext) + } + default: + { + return false // unexpected + } + } +} + +func (_this DecryptPathStructureInput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(DecryptPathStructureInput) + return ok && _this.Equals(typed) +} + +func Type_DecryptPathStructureInput_() _dafny.TypeDescriptor { + return type_DecryptPathStructureInput_{} +} + +type type_DecryptPathStructureInput_ struct { +} + +func (_this type_DecryptPathStructureInput_) Default() interface{} { + return Companion_DecryptPathStructureInput_.Default() +} + +func (_this type_DecryptPathStructureInput_) String() string { + return "AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.DecryptPathStructureInput" +} +func (_this DecryptPathStructureInput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = DecryptPathStructureInput{} + +// End of datatype DecryptPathStructureInput + +// Definition of datatype DecryptPathStructureOutput +type DecryptPathStructureOutput struct { + Data_DecryptPathStructureOutput_ +} + +func (_this DecryptPathStructureOutput) Get_() Data_DecryptPathStructureOutput_ { + return _this.Data_DecryptPathStructureOutput_ +} + +type Data_DecryptPathStructureOutput_ interface { + isDecryptPathStructureOutput() +} + +type CompanionStruct_DecryptPathStructureOutput_ struct { +} + +var Companion_DecryptPathStructureOutput_ = CompanionStruct_DecryptPathStructureOutput_{} + +type DecryptPathStructureOutput_DecryptPathStructureOutput struct { + PlaintextStructure _dafny.Sequence + ParsedHeader ParsedHeader +} + +func (DecryptPathStructureOutput_DecryptPathStructureOutput) isDecryptPathStructureOutput() {} + +func (CompanionStruct_DecryptPathStructureOutput_) Create_DecryptPathStructureOutput_(PlaintextStructure _dafny.Sequence, ParsedHeader ParsedHeader) DecryptPathStructureOutput { + return DecryptPathStructureOutput{DecryptPathStructureOutput_DecryptPathStructureOutput{PlaintextStructure, ParsedHeader}} +} + +func (_this DecryptPathStructureOutput) Is_DecryptPathStructureOutput() bool { + _, ok := _this.Get_().(DecryptPathStructureOutput_DecryptPathStructureOutput) + return ok +} + +func (CompanionStruct_DecryptPathStructureOutput_) Default() DecryptPathStructureOutput { + return Companion_DecryptPathStructureOutput_.Create_DecryptPathStructureOutput_(_dafny.EmptySeq, Companion_ParsedHeader_.Default()) +} + +func (_this DecryptPathStructureOutput) Dtor_plaintextStructure() _dafny.Sequence { + return _this.Get_().(DecryptPathStructureOutput_DecryptPathStructureOutput).PlaintextStructure +} + +func (_this DecryptPathStructureOutput) Dtor_parsedHeader() ParsedHeader { + return _this.Get_().(DecryptPathStructureOutput_DecryptPathStructureOutput).ParsedHeader +} + +func (_this DecryptPathStructureOutput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case DecryptPathStructureOutput_DecryptPathStructureOutput: + { + return "AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.DecryptPathStructureOutput.DecryptPathStructureOutput" + "(" + _dafny.String(data.PlaintextStructure) + ", " + _dafny.String(data.ParsedHeader) + ")" + } + default: + { + return "" + } + } +} + +func (_this DecryptPathStructureOutput) Equals(other DecryptPathStructureOutput) bool { + switch data1 := _this.Get_().(type) { + case DecryptPathStructureOutput_DecryptPathStructureOutput: + { + data2, ok := other.Get_().(DecryptPathStructureOutput_DecryptPathStructureOutput) + return ok && data1.PlaintextStructure.Equals(data2.PlaintextStructure) && data1.ParsedHeader.Equals(data2.ParsedHeader) + } + default: + { + return false // unexpected + } + } +} + +func (_this DecryptPathStructureOutput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(DecryptPathStructureOutput) + return ok && _this.Equals(typed) +} + +func Type_DecryptPathStructureOutput_() _dafny.TypeDescriptor { + return type_DecryptPathStructureOutput_{} +} + +type type_DecryptPathStructureOutput_ struct { +} + +func (_this type_DecryptPathStructureOutput_) Default() interface{} { + return Companion_DecryptPathStructureOutput_.Default() +} + +func (_this type_DecryptPathStructureOutput_) String() string { + return "AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.DecryptPathStructureOutput" +} +func (_this DecryptPathStructureOutput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = DecryptPathStructureOutput{} + +// End of datatype DecryptPathStructureOutput + +// Definition of datatype DecryptStructureInput +type DecryptStructureInput struct { + Data_DecryptStructureInput_ +} + +func (_this DecryptStructureInput) Get_() Data_DecryptStructureInput_ { + return _this.Data_DecryptStructureInput_ +} + +type Data_DecryptStructureInput_ interface { + isDecryptStructureInput() +} + +type CompanionStruct_DecryptStructureInput_ struct { +} + +var Companion_DecryptStructureInput_ = CompanionStruct_DecryptStructureInput_{} + +type DecryptStructureInput_DecryptStructureInput struct { + TableName _dafny.Sequence + EncryptedStructure _dafny.Map + AuthenticateSchema _dafny.Map + Cmm m_AwsCryptographyMaterialProvidersTypes.ICryptographicMaterialsManager + EncryptionContext m_Wrappers.Option +} + +func (DecryptStructureInput_DecryptStructureInput) isDecryptStructureInput() {} + +func (CompanionStruct_DecryptStructureInput_) Create_DecryptStructureInput_(TableName _dafny.Sequence, EncryptedStructure _dafny.Map, AuthenticateSchema _dafny.Map, Cmm m_AwsCryptographyMaterialProvidersTypes.ICryptographicMaterialsManager, EncryptionContext m_Wrappers.Option) DecryptStructureInput { + return DecryptStructureInput{DecryptStructureInput_DecryptStructureInput{TableName, EncryptedStructure, AuthenticateSchema, Cmm, EncryptionContext}} +} + +func (_this DecryptStructureInput) Is_DecryptStructureInput() bool { + _, ok := _this.Get_().(DecryptStructureInput_DecryptStructureInput) + return ok +} + +func (CompanionStruct_DecryptStructureInput_) Default() DecryptStructureInput { + return Companion_DecryptStructureInput_.Create_DecryptStructureInput_(_dafny.EmptySeq.SetString(), _dafny.EmptyMap, _dafny.EmptyMap, (m_AwsCryptographyMaterialProvidersTypes.ICryptographicMaterialsManager)(nil), m_Wrappers.Companion_Option_.Default()) +} + +func (_this DecryptStructureInput) Dtor_tableName() _dafny.Sequence { + return _this.Get_().(DecryptStructureInput_DecryptStructureInput).TableName +} + +func (_this DecryptStructureInput) Dtor_encryptedStructure() _dafny.Map { + return _this.Get_().(DecryptStructureInput_DecryptStructureInput).EncryptedStructure +} + +func (_this DecryptStructureInput) Dtor_authenticateSchema() _dafny.Map { + return _this.Get_().(DecryptStructureInput_DecryptStructureInput).AuthenticateSchema +} + +func (_this DecryptStructureInput) Dtor_cmm() m_AwsCryptographyMaterialProvidersTypes.ICryptographicMaterialsManager { + return _this.Get_().(DecryptStructureInput_DecryptStructureInput).Cmm +} + +func (_this DecryptStructureInput) Dtor_encryptionContext() m_Wrappers.Option { + return _this.Get_().(DecryptStructureInput_DecryptStructureInput).EncryptionContext +} + +func (_this DecryptStructureInput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case DecryptStructureInput_DecryptStructureInput: + { + return "AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.DecryptStructureInput.DecryptStructureInput" + "(" + _dafny.String(data.TableName) + ", " + _dafny.String(data.EncryptedStructure) + ", " + _dafny.String(data.AuthenticateSchema) + ", " + _dafny.String(data.Cmm) + ", " + _dafny.String(data.EncryptionContext) + ")" + } + default: + { + return "" + } + } +} + +func (_this DecryptStructureInput) Equals(other DecryptStructureInput) bool { + switch data1 := _this.Get_().(type) { + case DecryptStructureInput_DecryptStructureInput: + { + data2, ok := other.Get_().(DecryptStructureInput_DecryptStructureInput) + return ok && data1.TableName.Equals(data2.TableName) && data1.EncryptedStructure.Equals(data2.EncryptedStructure) && data1.AuthenticateSchema.Equals(data2.AuthenticateSchema) && _dafny.AreEqual(data1.Cmm, data2.Cmm) && data1.EncryptionContext.Equals(data2.EncryptionContext) + } + default: + { + return false // unexpected + } + } +} + +func (_this DecryptStructureInput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(DecryptStructureInput) + return ok && _this.Equals(typed) +} + +func Type_DecryptStructureInput_() _dafny.TypeDescriptor { + return type_DecryptStructureInput_{} +} + +type type_DecryptStructureInput_ struct { +} + +func (_this type_DecryptStructureInput_) Default() interface{} { + return Companion_DecryptStructureInput_.Default() +} + +func (_this type_DecryptStructureInput_) String() string { + return "AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.DecryptStructureInput" +} +func (_this DecryptStructureInput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = DecryptStructureInput{} + +// End of datatype DecryptStructureInput + +// Definition of datatype DecryptStructureOutput +type DecryptStructureOutput struct { + Data_DecryptStructureOutput_ +} + +func (_this DecryptStructureOutput) Get_() Data_DecryptStructureOutput_ { + return _this.Data_DecryptStructureOutput_ +} + +type Data_DecryptStructureOutput_ interface { + isDecryptStructureOutput() +} + +type CompanionStruct_DecryptStructureOutput_ struct { +} + +var Companion_DecryptStructureOutput_ = CompanionStruct_DecryptStructureOutput_{} + +type DecryptStructureOutput_DecryptStructureOutput struct { + PlaintextStructure _dafny.Map + CryptoSchema _dafny.Map + ParsedHeader ParsedHeader +} + +func (DecryptStructureOutput_DecryptStructureOutput) isDecryptStructureOutput() {} + +func (CompanionStruct_DecryptStructureOutput_) Create_DecryptStructureOutput_(PlaintextStructure _dafny.Map, CryptoSchema _dafny.Map, ParsedHeader ParsedHeader) DecryptStructureOutput { + return DecryptStructureOutput{DecryptStructureOutput_DecryptStructureOutput{PlaintextStructure, CryptoSchema, ParsedHeader}} +} + +func (_this DecryptStructureOutput) Is_DecryptStructureOutput() bool { + _, ok := _this.Get_().(DecryptStructureOutput_DecryptStructureOutput) + return ok +} + +func (CompanionStruct_DecryptStructureOutput_) Default() DecryptStructureOutput { + return Companion_DecryptStructureOutput_.Create_DecryptStructureOutput_(_dafny.EmptyMap, _dafny.EmptyMap, Companion_ParsedHeader_.Default()) +} + +func (_this DecryptStructureOutput) Dtor_plaintextStructure() _dafny.Map { + return _this.Get_().(DecryptStructureOutput_DecryptStructureOutput).PlaintextStructure +} + +func (_this DecryptStructureOutput) Dtor_cryptoSchema() _dafny.Map { + return _this.Get_().(DecryptStructureOutput_DecryptStructureOutput).CryptoSchema +} + +func (_this DecryptStructureOutput) Dtor_parsedHeader() ParsedHeader { + return _this.Get_().(DecryptStructureOutput_DecryptStructureOutput).ParsedHeader +} + +func (_this DecryptStructureOutput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case DecryptStructureOutput_DecryptStructureOutput: + { + return "AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.DecryptStructureOutput.DecryptStructureOutput" + "(" + _dafny.String(data.PlaintextStructure) + ", " + _dafny.String(data.CryptoSchema) + ", " + _dafny.String(data.ParsedHeader) + ")" + } + default: + { + return "" + } + } +} + +func (_this DecryptStructureOutput) Equals(other DecryptStructureOutput) bool { + switch data1 := _this.Get_().(type) { + case DecryptStructureOutput_DecryptStructureOutput: + { + data2, ok := other.Get_().(DecryptStructureOutput_DecryptStructureOutput) + return ok && data1.PlaintextStructure.Equals(data2.PlaintextStructure) && data1.CryptoSchema.Equals(data2.CryptoSchema) && data1.ParsedHeader.Equals(data2.ParsedHeader) + } + default: + { + return false // unexpected + } + } +} + +func (_this DecryptStructureOutput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(DecryptStructureOutput) + return ok && _this.Equals(typed) +} + +func Type_DecryptStructureOutput_() _dafny.TypeDescriptor { + return type_DecryptStructureOutput_{} +} + +type type_DecryptStructureOutput_ struct { +} + +func (_this type_DecryptStructureOutput_) Default() interface{} { + return Companion_DecryptStructureOutput_.Default() +} + +func (_this type_DecryptStructureOutput_) String() string { + return "AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.DecryptStructureOutput" +} +func (_this DecryptStructureOutput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = DecryptStructureOutput{} + +// End of datatype DecryptStructureOutput + +// Definition of datatype EncryptPathStructureInput +type EncryptPathStructureInput struct { + Data_EncryptPathStructureInput_ +} + +func (_this EncryptPathStructureInput) Get_() Data_EncryptPathStructureInput_ { + return _this.Data_EncryptPathStructureInput_ +} + +type Data_EncryptPathStructureInput_ interface { + isEncryptPathStructureInput() +} + +type CompanionStruct_EncryptPathStructureInput_ struct { +} + +var Companion_EncryptPathStructureInput_ = CompanionStruct_EncryptPathStructureInput_{} + +type EncryptPathStructureInput_EncryptPathStructureInput struct { + TableName _dafny.Sequence + PlaintextStructure _dafny.Sequence + Cmm m_AwsCryptographyMaterialProvidersTypes.ICryptographicMaterialsManager + AlgorithmSuiteId m_Wrappers.Option + EncryptionContext m_Wrappers.Option +} + +func (EncryptPathStructureInput_EncryptPathStructureInput) isEncryptPathStructureInput() {} + +func (CompanionStruct_EncryptPathStructureInput_) Create_EncryptPathStructureInput_(TableName _dafny.Sequence, PlaintextStructure _dafny.Sequence, Cmm m_AwsCryptographyMaterialProvidersTypes.ICryptographicMaterialsManager, AlgorithmSuiteId m_Wrappers.Option, EncryptionContext m_Wrappers.Option) EncryptPathStructureInput { + return EncryptPathStructureInput{EncryptPathStructureInput_EncryptPathStructureInput{TableName, PlaintextStructure, Cmm, AlgorithmSuiteId, EncryptionContext}} +} + +func (_this EncryptPathStructureInput) Is_EncryptPathStructureInput() bool { + _, ok := _this.Get_().(EncryptPathStructureInput_EncryptPathStructureInput) + return ok +} + +func (CompanionStruct_EncryptPathStructureInput_) Default() EncryptPathStructureInput { + return Companion_EncryptPathStructureInput_.Create_EncryptPathStructureInput_(_dafny.EmptySeq.SetString(), _dafny.EmptySeq, (m_AwsCryptographyMaterialProvidersTypes.ICryptographicMaterialsManager)(nil), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this EncryptPathStructureInput) Dtor_tableName() _dafny.Sequence { + return _this.Get_().(EncryptPathStructureInput_EncryptPathStructureInput).TableName +} + +func (_this EncryptPathStructureInput) Dtor_plaintextStructure() _dafny.Sequence { + return _this.Get_().(EncryptPathStructureInput_EncryptPathStructureInput).PlaintextStructure +} + +func (_this EncryptPathStructureInput) Dtor_cmm() m_AwsCryptographyMaterialProvidersTypes.ICryptographicMaterialsManager { + return _this.Get_().(EncryptPathStructureInput_EncryptPathStructureInput).Cmm +} + +func (_this EncryptPathStructureInput) Dtor_algorithmSuiteId() m_Wrappers.Option { + return _this.Get_().(EncryptPathStructureInput_EncryptPathStructureInput).AlgorithmSuiteId +} + +func (_this EncryptPathStructureInput) Dtor_encryptionContext() m_Wrappers.Option { + return _this.Get_().(EncryptPathStructureInput_EncryptPathStructureInput).EncryptionContext +} + +func (_this EncryptPathStructureInput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case EncryptPathStructureInput_EncryptPathStructureInput: + { + return "AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.EncryptPathStructureInput.EncryptPathStructureInput" + "(" + _dafny.String(data.TableName) + ", " + _dafny.String(data.PlaintextStructure) + ", " + _dafny.String(data.Cmm) + ", " + _dafny.String(data.AlgorithmSuiteId) + ", " + _dafny.String(data.EncryptionContext) + ")" + } + default: + { + return "" + } + } +} + +func (_this EncryptPathStructureInput) Equals(other EncryptPathStructureInput) bool { + switch data1 := _this.Get_().(type) { + case EncryptPathStructureInput_EncryptPathStructureInput: + { + data2, ok := other.Get_().(EncryptPathStructureInput_EncryptPathStructureInput) + return ok && data1.TableName.Equals(data2.TableName) && data1.PlaintextStructure.Equals(data2.PlaintextStructure) && _dafny.AreEqual(data1.Cmm, data2.Cmm) && data1.AlgorithmSuiteId.Equals(data2.AlgorithmSuiteId) && data1.EncryptionContext.Equals(data2.EncryptionContext) + } + default: + { + return false // unexpected + } + } +} + +func (_this EncryptPathStructureInput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(EncryptPathStructureInput) + return ok && _this.Equals(typed) +} + +func Type_EncryptPathStructureInput_() _dafny.TypeDescriptor { + return type_EncryptPathStructureInput_{} +} + +type type_EncryptPathStructureInput_ struct { +} + +func (_this type_EncryptPathStructureInput_) Default() interface{} { + return Companion_EncryptPathStructureInput_.Default() +} + +func (_this type_EncryptPathStructureInput_) String() string { + return "AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.EncryptPathStructureInput" +} +func (_this EncryptPathStructureInput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = EncryptPathStructureInput{} + +// End of datatype EncryptPathStructureInput + +// Definition of datatype EncryptPathStructureOutput +type EncryptPathStructureOutput struct { + Data_EncryptPathStructureOutput_ +} + +func (_this EncryptPathStructureOutput) Get_() Data_EncryptPathStructureOutput_ { + return _this.Data_EncryptPathStructureOutput_ +} + +type Data_EncryptPathStructureOutput_ interface { + isEncryptPathStructureOutput() +} + +type CompanionStruct_EncryptPathStructureOutput_ struct { +} + +var Companion_EncryptPathStructureOutput_ = CompanionStruct_EncryptPathStructureOutput_{} + +type EncryptPathStructureOutput_EncryptPathStructureOutput struct { + EncryptedStructure _dafny.Sequence + ParsedHeader ParsedHeader +} + +func (EncryptPathStructureOutput_EncryptPathStructureOutput) isEncryptPathStructureOutput() {} + +func (CompanionStruct_EncryptPathStructureOutput_) Create_EncryptPathStructureOutput_(EncryptedStructure _dafny.Sequence, ParsedHeader ParsedHeader) EncryptPathStructureOutput { + return EncryptPathStructureOutput{EncryptPathStructureOutput_EncryptPathStructureOutput{EncryptedStructure, ParsedHeader}} +} + +func (_this EncryptPathStructureOutput) Is_EncryptPathStructureOutput() bool { + _, ok := _this.Get_().(EncryptPathStructureOutput_EncryptPathStructureOutput) + return ok +} + +func (CompanionStruct_EncryptPathStructureOutput_) Default() EncryptPathStructureOutput { + return Companion_EncryptPathStructureOutput_.Create_EncryptPathStructureOutput_(_dafny.EmptySeq, Companion_ParsedHeader_.Default()) +} + +func (_this EncryptPathStructureOutput) Dtor_encryptedStructure() _dafny.Sequence { + return _this.Get_().(EncryptPathStructureOutput_EncryptPathStructureOutput).EncryptedStructure +} + +func (_this EncryptPathStructureOutput) Dtor_parsedHeader() ParsedHeader { + return _this.Get_().(EncryptPathStructureOutput_EncryptPathStructureOutput).ParsedHeader +} + +func (_this EncryptPathStructureOutput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case EncryptPathStructureOutput_EncryptPathStructureOutput: + { + return "AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.EncryptPathStructureOutput.EncryptPathStructureOutput" + "(" + _dafny.String(data.EncryptedStructure) + ", " + _dafny.String(data.ParsedHeader) + ")" + } + default: + { + return "" + } + } +} + +func (_this EncryptPathStructureOutput) Equals(other EncryptPathStructureOutput) bool { + switch data1 := _this.Get_().(type) { + case EncryptPathStructureOutput_EncryptPathStructureOutput: + { + data2, ok := other.Get_().(EncryptPathStructureOutput_EncryptPathStructureOutput) + return ok && data1.EncryptedStructure.Equals(data2.EncryptedStructure) && data1.ParsedHeader.Equals(data2.ParsedHeader) + } + default: + { + return false // unexpected + } + } +} + +func (_this EncryptPathStructureOutput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(EncryptPathStructureOutput) + return ok && _this.Equals(typed) +} + +func Type_EncryptPathStructureOutput_() _dafny.TypeDescriptor { + return type_EncryptPathStructureOutput_{} +} + +type type_EncryptPathStructureOutput_ struct { +} + +func (_this type_EncryptPathStructureOutput_) Default() interface{} { + return Companion_EncryptPathStructureOutput_.Default() +} + +func (_this type_EncryptPathStructureOutput_) String() string { + return "AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.EncryptPathStructureOutput" +} +func (_this EncryptPathStructureOutput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = EncryptPathStructureOutput{} + +// End of datatype EncryptPathStructureOutput + +// Definition of datatype EncryptStructureInput +type EncryptStructureInput struct { + Data_EncryptStructureInput_ +} + +func (_this EncryptStructureInput) Get_() Data_EncryptStructureInput_ { + return _this.Data_EncryptStructureInput_ +} + +type Data_EncryptStructureInput_ interface { + isEncryptStructureInput() +} + +type CompanionStruct_EncryptStructureInput_ struct { +} + +var Companion_EncryptStructureInput_ = CompanionStruct_EncryptStructureInput_{} + +type EncryptStructureInput_EncryptStructureInput struct { + TableName _dafny.Sequence + PlaintextStructure _dafny.Map + CryptoSchema _dafny.Map + Cmm m_AwsCryptographyMaterialProvidersTypes.ICryptographicMaterialsManager + AlgorithmSuiteId m_Wrappers.Option + EncryptionContext m_Wrappers.Option +} + +func (EncryptStructureInput_EncryptStructureInput) isEncryptStructureInput() {} + +func (CompanionStruct_EncryptStructureInput_) Create_EncryptStructureInput_(TableName _dafny.Sequence, PlaintextStructure _dafny.Map, CryptoSchema _dafny.Map, Cmm m_AwsCryptographyMaterialProvidersTypes.ICryptographicMaterialsManager, AlgorithmSuiteId m_Wrappers.Option, EncryptionContext m_Wrappers.Option) EncryptStructureInput { + return EncryptStructureInput{EncryptStructureInput_EncryptStructureInput{TableName, PlaintextStructure, CryptoSchema, Cmm, AlgorithmSuiteId, EncryptionContext}} +} + +func (_this EncryptStructureInput) Is_EncryptStructureInput() bool { + _, ok := _this.Get_().(EncryptStructureInput_EncryptStructureInput) + return ok +} + +func (CompanionStruct_EncryptStructureInput_) Default() EncryptStructureInput { + return Companion_EncryptStructureInput_.Create_EncryptStructureInput_(_dafny.EmptySeq.SetString(), _dafny.EmptyMap, _dafny.EmptyMap, (m_AwsCryptographyMaterialProvidersTypes.ICryptographicMaterialsManager)(nil), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this EncryptStructureInput) Dtor_tableName() _dafny.Sequence { + return _this.Get_().(EncryptStructureInput_EncryptStructureInput).TableName +} + +func (_this EncryptStructureInput) Dtor_plaintextStructure() _dafny.Map { + return _this.Get_().(EncryptStructureInput_EncryptStructureInput).PlaintextStructure +} + +func (_this EncryptStructureInput) Dtor_cryptoSchema() _dafny.Map { + return _this.Get_().(EncryptStructureInput_EncryptStructureInput).CryptoSchema +} + +func (_this EncryptStructureInput) Dtor_cmm() m_AwsCryptographyMaterialProvidersTypes.ICryptographicMaterialsManager { + return _this.Get_().(EncryptStructureInput_EncryptStructureInput).Cmm +} + +func (_this EncryptStructureInput) Dtor_algorithmSuiteId() m_Wrappers.Option { + return _this.Get_().(EncryptStructureInput_EncryptStructureInput).AlgorithmSuiteId +} + +func (_this EncryptStructureInput) Dtor_encryptionContext() m_Wrappers.Option { + return _this.Get_().(EncryptStructureInput_EncryptStructureInput).EncryptionContext +} + +func (_this EncryptStructureInput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case EncryptStructureInput_EncryptStructureInput: + { + return "AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.EncryptStructureInput.EncryptStructureInput" + "(" + _dafny.String(data.TableName) + ", " + _dafny.String(data.PlaintextStructure) + ", " + _dafny.String(data.CryptoSchema) + ", " + _dafny.String(data.Cmm) + ", " + _dafny.String(data.AlgorithmSuiteId) + ", " + _dafny.String(data.EncryptionContext) + ")" + } + default: + { + return "" + } + } +} + +func (_this EncryptStructureInput) Equals(other EncryptStructureInput) bool { + switch data1 := _this.Get_().(type) { + case EncryptStructureInput_EncryptStructureInput: + { + data2, ok := other.Get_().(EncryptStructureInput_EncryptStructureInput) + return ok && data1.TableName.Equals(data2.TableName) && data1.PlaintextStructure.Equals(data2.PlaintextStructure) && data1.CryptoSchema.Equals(data2.CryptoSchema) && _dafny.AreEqual(data1.Cmm, data2.Cmm) && data1.AlgorithmSuiteId.Equals(data2.AlgorithmSuiteId) && data1.EncryptionContext.Equals(data2.EncryptionContext) + } + default: + { + return false // unexpected + } + } +} + +func (_this EncryptStructureInput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(EncryptStructureInput) + return ok && _this.Equals(typed) +} + +func Type_EncryptStructureInput_() _dafny.TypeDescriptor { + return type_EncryptStructureInput_{} +} + +type type_EncryptStructureInput_ struct { +} + +func (_this type_EncryptStructureInput_) Default() interface{} { + return Companion_EncryptStructureInput_.Default() +} + +func (_this type_EncryptStructureInput_) String() string { + return "AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.EncryptStructureInput" +} +func (_this EncryptStructureInput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = EncryptStructureInput{} + +// End of datatype EncryptStructureInput + +// Definition of datatype EncryptStructureOutput +type EncryptStructureOutput struct { + Data_EncryptStructureOutput_ +} + +func (_this EncryptStructureOutput) Get_() Data_EncryptStructureOutput_ { + return _this.Data_EncryptStructureOutput_ +} + +type Data_EncryptStructureOutput_ interface { + isEncryptStructureOutput() +} + +type CompanionStruct_EncryptStructureOutput_ struct { +} + +var Companion_EncryptStructureOutput_ = CompanionStruct_EncryptStructureOutput_{} + +type EncryptStructureOutput_EncryptStructureOutput struct { + EncryptedStructure _dafny.Map + CryptoSchema _dafny.Map + ParsedHeader ParsedHeader +} + +func (EncryptStructureOutput_EncryptStructureOutput) isEncryptStructureOutput() {} + +func (CompanionStruct_EncryptStructureOutput_) Create_EncryptStructureOutput_(EncryptedStructure _dafny.Map, CryptoSchema _dafny.Map, ParsedHeader ParsedHeader) EncryptStructureOutput { + return EncryptStructureOutput{EncryptStructureOutput_EncryptStructureOutput{EncryptedStructure, CryptoSchema, ParsedHeader}} +} + +func (_this EncryptStructureOutput) Is_EncryptStructureOutput() bool { + _, ok := _this.Get_().(EncryptStructureOutput_EncryptStructureOutput) + return ok +} + +func (CompanionStruct_EncryptStructureOutput_) Default() EncryptStructureOutput { + return Companion_EncryptStructureOutput_.Create_EncryptStructureOutput_(_dafny.EmptyMap, _dafny.EmptyMap, Companion_ParsedHeader_.Default()) +} + +func (_this EncryptStructureOutput) Dtor_encryptedStructure() _dafny.Map { + return _this.Get_().(EncryptStructureOutput_EncryptStructureOutput).EncryptedStructure +} + +func (_this EncryptStructureOutput) Dtor_cryptoSchema() _dafny.Map { + return _this.Get_().(EncryptStructureOutput_EncryptStructureOutput).CryptoSchema +} + +func (_this EncryptStructureOutput) Dtor_parsedHeader() ParsedHeader { + return _this.Get_().(EncryptStructureOutput_EncryptStructureOutput).ParsedHeader +} + +func (_this EncryptStructureOutput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case EncryptStructureOutput_EncryptStructureOutput: + { + return "AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.EncryptStructureOutput.EncryptStructureOutput" + "(" + _dafny.String(data.EncryptedStructure) + ", " + _dafny.String(data.CryptoSchema) + ", " + _dafny.String(data.ParsedHeader) + ")" + } + default: + { + return "" + } + } +} + +func (_this EncryptStructureOutput) Equals(other EncryptStructureOutput) bool { + switch data1 := _this.Get_().(type) { + case EncryptStructureOutput_EncryptStructureOutput: + { + data2, ok := other.Get_().(EncryptStructureOutput_EncryptStructureOutput) + return ok && data1.EncryptedStructure.Equals(data2.EncryptedStructure) && data1.CryptoSchema.Equals(data2.CryptoSchema) && data1.ParsedHeader.Equals(data2.ParsedHeader) + } + default: + { + return false // unexpected + } + } +} + +func (_this EncryptStructureOutput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(EncryptStructureOutput) + return ok && _this.Equals(typed) +} + +func Type_EncryptStructureOutput_() _dafny.TypeDescriptor { + return type_EncryptStructureOutput_{} +} + +type type_EncryptStructureOutput_ struct { +} + +func (_this type_EncryptStructureOutput_) Default() interface{} { + return Companion_EncryptStructureOutput_.Default() +} + +func (_this type_EncryptStructureOutput_) String() string { + return "AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.EncryptStructureOutput" +} +func (_this EncryptStructureOutput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = EncryptStructureOutput{} + +// End of datatype EncryptStructureOutput + +// Definition of datatype ParsedHeader +type ParsedHeader struct { + Data_ParsedHeader_ +} + +func (_this ParsedHeader) Get_() Data_ParsedHeader_ { + return _this.Data_ParsedHeader_ +} + +type Data_ParsedHeader_ interface { + isParsedHeader() +} + +type CompanionStruct_ParsedHeader_ struct { +} + +var Companion_ParsedHeader_ = CompanionStruct_ParsedHeader_{} + +type ParsedHeader_ParsedHeader struct { + AlgorithmSuiteId m_AwsCryptographyMaterialProvidersTypes.DBEAlgorithmSuiteId + EncryptedDataKeys _dafny.Sequence + StoredEncryptionContext _dafny.Map + EncryptionContext _dafny.Map +} + +func (ParsedHeader_ParsedHeader) isParsedHeader() {} + +func (CompanionStruct_ParsedHeader_) Create_ParsedHeader_(AlgorithmSuiteId m_AwsCryptographyMaterialProvidersTypes.DBEAlgorithmSuiteId, EncryptedDataKeys _dafny.Sequence, StoredEncryptionContext _dafny.Map, EncryptionContext _dafny.Map) ParsedHeader { + return ParsedHeader{ParsedHeader_ParsedHeader{AlgorithmSuiteId, EncryptedDataKeys, StoredEncryptionContext, EncryptionContext}} +} + +func (_this ParsedHeader) Is_ParsedHeader() bool { + _, ok := _this.Get_().(ParsedHeader_ParsedHeader) + return ok +} + +func (CompanionStruct_ParsedHeader_) Default() ParsedHeader { + return Companion_ParsedHeader_.Create_ParsedHeader_(m_AwsCryptographyMaterialProvidersTypes.Companion_DBEAlgorithmSuiteId_.Default(), _dafny.EmptySeq, _dafny.EmptyMap, _dafny.EmptyMap) +} + +func (_this ParsedHeader) Dtor_algorithmSuiteId() m_AwsCryptographyMaterialProvidersTypes.DBEAlgorithmSuiteId { + return _this.Get_().(ParsedHeader_ParsedHeader).AlgorithmSuiteId +} + +func (_this ParsedHeader) Dtor_encryptedDataKeys() _dafny.Sequence { + return _this.Get_().(ParsedHeader_ParsedHeader).EncryptedDataKeys +} + +func (_this ParsedHeader) Dtor_storedEncryptionContext() _dafny.Map { + return _this.Get_().(ParsedHeader_ParsedHeader).StoredEncryptionContext +} + +func (_this ParsedHeader) Dtor_encryptionContext() _dafny.Map { + return _this.Get_().(ParsedHeader_ParsedHeader).EncryptionContext +} + +func (_this ParsedHeader) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case ParsedHeader_ParsedHeader: + { + return "AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.ParsedHeader.ParsedHeader" + "(" + _dafny.String(data.AlgorithmSuiteId) + ", " + _dafny.String(data.EncryptedDataKeys) + ", " + _dafny.String(data.StoredEncryptionContext) + ", " + _dafny.String(data.EncryptionContext) + ")" + } + default: + { + return "" + } + } +} + +func (_this ParsedHeader) Equals(other ParsedHeader) bool { + switch data1 := _this.Get_().(type) { + case ParsedHeader_ParsedHeader: + { + data2, ok := other.Get_().(ParsedHeader_ParsedHeader) + return ok && data1.AlgorithmSuiteId.Equals(data2.AlgorithmSuiteId) && data1.EncryptedDataKeys.Equals(data2.EncryptedDataKeys) && data1.StoredEncryptionContext.Equals(data2.StoredEncryptionContext) && data1.EncryptionContext.Equals(data2.EncryptionContext) + } + default: + { + return false // unexpected + } + } +} + +func (_this ParsedHeader) EqualsGeneric(other interface{}) bool { + typed, ok := other.(ParsedHeader) + return ok && _this.Equals(typed) +} + +func Type_ParsedHeader_() _dafny.TypeDescriptor { + return type_ParsedHeader_{} +} + +type type_ParsedHeader_ struct { +} + +func (_this type_ParsedHeader_) Default() interface{} { + return Companion_ParsedHeader_.Default() +} + +func (_this type_ParsedHeader_) String() string { + return "AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.ParsedHeader" +} +func (_this ParsedHeader) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = ParsedHeader{} + +// End of datatype ParsedHeader + +// Definition of datatype PathSegment +type PathSegment struct { + Data_PathSegment_ +} + +func (_this PathSegment) Get_() Data_PathSegment_ { + return _this.Data_PathSegment_ +} + +type Data_PathSegment_ interface { + isPathSegment() +} + +type CompanionStruct_PathSegment_ struct { +} + +var Companion_PathSegment_ = CompanionStruct_PathSegment_{} + +type PathSegment_member struct { + Member StructureSegment +} + +func (PathSegment_member) isPathSegment() {} + +func (CompanionStruct_PathSegment_) Create_member_(Member StructureSegment) PathSegment { + return PathSegment{PathSegment_member{Member}} +} + +func (_this PathSegment) Is_member() bool { + _, ok := _this.Get_().(PathSegment_member) + return ok +} + +func (CompanionStruct_PathSegment_) Default() PathSegment { + return Companion_PathSegment_.Create_member_(Companion_StructureSegment_.Default()) +} + +func (_this PathSegment) Dtor_member() StructureSegment { + return _this.Get_().(PathSegment_member).Member +} + +func (_this PathSegment) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case PathSegment_member: + { + return "AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.PathSegment.member" + "(" + _dafny.String(data.Member) + ")" + } + default: + { + return "" + } + } +} + +func (_this PathSegment) Equals(other PathSegment) bool { + switch data1 := _this.Get_().(type) { + case PathSegment_member: + { + data2, ok := other.Get_().(PathSegment_member) + return ok && data1.Member.Equals(data2.Member) + } + default: + { + return false // unexpected + } + } +} + +func (_this PathSegment) EqualsGeneric(other interface{}) bool { + typed, ok := other.(PathSegment) + return ok && _this.Equals(typed) +} + +func Type_PathSegment_() _dafny.TypeDescriptor { + return type_PathSegment_{} +} + +type type_PathSegment_ struct { +} + +func (_this type_PathSegment_) Default() interface{} { + return Companion_PathSegment_.Default() +} + +func (_this type_PathSegment_) String() string { + return "AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.PathSegment" +} +func (_this PathSegment) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = PathSegment{} + +// End of datatype PathSegment + +// Definition of datatype ResolveAuthActionsInput +type ResolveAuthActionsInput struct { + Data_ResolveAuthActionsInput_ +} + +func (_this ResolveAuthActionsInput) Get_() Data_ResolveAuthActionsInput_ { + return _this.Data_ResolveAuthActionsInput_ +} + +type Data_ResolveAuthActionsInput_ interface { + isResolveAuthActionsInput() +} + +type CompanionStruct_ResolveAuthActionsInput_ struct { +} + +var Companion_ResolveAuthActionsInput_ = CompanionStruct_ResolveAuthActionsInput_{} + +type ResolveAuthActionsInput_ResolveAuthActionsInput struct { + TableName _dafny.Sequence + AuthActions _dafny.Sequence + HeaderBytes _dafny.Sequence +} + +func (ResolveAuthActionsInput_ResolveAuthActionsInput) isResolveAuthActionsInput() {} + +func (CompanionStruct_ResolveAuthActionsInput_) Create_ResolveAuthActionsInput_(TableName _dafny.Sequence, AuthActions _dafny.Sequence, HeaderBytes _dafny.Sequence) ResolveAuthActionsInput { + return ResolveAuthActionsInput{ResolveAuthActionsInput_ResolveAuthActionsInput{TableName, AuthActions, HeaderBytes}} +} + +func (_this ResolveAuthActionsInput) Is_ResolveAuthActionsInput() bool { + _, ok := _this.Get_().(ResolveAuthActionsInput_ResolveAuthActionsInput) + return ok +} + +func (CompanionStruct_ResolveAuthActionsInput_) Default() ResolveAuthActionsInput { + return Companion_ResolveAuthActionsInput_.Create_ResolveAuthActionsInput_(_dafny.EmptySeq.SetString(), _dafny.EmptySeq, _dafny.EmptySeq) +} + +func (_this ResolveAuthActionsInput) Dtor_tableName() _dafny.Sequence { + return _this.Get_().(ResolveAuthActionsInput_ResolveAuthActionsInput).TableName +} + +func (_this ResolveAuthActionsInput) Dtor_authActions() _dafny.Sequence { + return _this.Get_().(ResolveAuthActionsInput_ResolveAuthActionsInput).AuthActions +} + +func (_this ResolveAuthActionsInput) Dtor_headerBytes() _dafny.Sequence { + return _this.Get_().(ResolveAuthActionsInput_ResolveAuthActionsInput).HeaderBytes +} + +func (_this ResolveAuthActionsInput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case ResolveAuthActionsInput_ResolveAuthActionsInput: + { + return "AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.ResolveAuthActionsInput.ResolveAuthActionsInput" + "(" + _dafny.String(data.TableName) + ", " + _dafny.String(data.AuthActions) + ", " + _dafny.String(data.HeaderBytes) + ")" + } + default: + { + return "" + } + } +} + +func (_this ResolveAuthActionsInput) Equals(other ResolveAuthActionsInput) bool { + switch data1 := _this.Get_().(type) { + case ResolveAuthActionsInput_ResolveAuthActionsInput: + { + data2, ok := other.Get_().(ResolveAuthActionsInput_ResolveAuthActionsInput) + return ok && data1.TableName.Equals(data2.TableName) && data1.AuthActions.Equals(data2.AuthActions) && data1.HeaderBytes.Equals(data2.HeaderBytes) + } + default: + { + return false // unexpected + } + } +} + +func (_this ResolveAuthActionsInput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(ResolveAuthActionsInput) + return ok && _this.Equals(typed) +} + +func Type_ResolveAuthActionsInput_() _dafny.TypeDescriptor { + return type_ResolveAuthActionsInput_{} +} + +type type_ResolveAuthActionsInput_ struct { +} + +func (_this type_ResolveAuthActionsInput_) Default() interface{} { + return Companion_ResolveAuthActionsInput_.Default() +} + +func (_this type_ResolveAuthActionsInput_) String() string { + return "AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.ResolveAuthActionsInput" +} +func (_this ResolveAuthActionsInput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = ResolveAuthActionsInput{} + +// End of datatype ResolveAuthActionsInput + +// Definition of datatype ResolveAuthActionsOutput +type ResolveAuthActionsOutput struct { + Data_ResolveAuthActionsOutput_ +} + +func (_this ResolveAuthActionsOutput) Get_() Data_ResolveAuthActionsOutput_ { + return _this.Data_ResolveAuthActionsOutput_ +} + +type Data_ResolveAuthActionsOutput_ interface { + isResolveAuthActionsOutput() +} + +type CompanionStruct_ResolveAuthActionsOutput_ struct { +} + +var Companion_ResolveAuthActionsOutput_ = CompanionStruct_ResolveAuthActionsOutput_{} + +type ResolveAuthActionsOutput_ResolveAuthActionsOutput struct { + CryptoActions _dafny.Sequence +} + +func (ResolveAuthActionsOutput_ResolveAuthActionsOutput) isResolveAuthActionsOutput() {} + +func (CompanionStruct_ResolveAuthActionsOutput_) Create_ResolveAuthActionsOutput_(CryptoActions _dafny.Sequence) ResolveAuthActionsOutput { + return ResolveAuthActionsOutput{ResolveAuthActionsOutput_ResolveAuthActionsOutput{CryptoActions}} +} + +func (_this ResolveAuthActionsOutput) Is_ResolveAuthActionsOutput() bool { + _, ok := _this.Get_().(ResolveAuthActionsOutput_ResolveAuthActionsOutput) + return ok +} + +func (CompanionStruct_ResolveAuthActionsOutput_) Default() ResolveAuthActionsOutput { + return Companion_ResolveAuthActionsOutput_.Create_ResolveAuthActionsOutput_(_dafny.EmptySeq) +} + +func (_this ResolveAuthActionsOutput) Dtor_cryptoActions() _dafny.Sequence { + return _this.Get_().(ResolveAuthActionsOutput_ResolveAuthActionsOutput).CryptoActions +} + +func (_this ResolveAuthActionsOutput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case ResolveAuthActionsOutput_ResolveAuthActionsOutput: + { + return "AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.ResolveAuthActionsOutput.ResolveAuthActionsOutput" + "(" + _dafny.String(data.CryptoActions) + ")" + } + default: + { + return "" + } + } +} + +func (_this ResolveAuthActionsOutput) Equals(other ResolveAuthActionsOutput) bool { + switch data1 := _this.Get_().(type) { + case ResolveAuthActionsOutput_ResolveAuthActionsOutput: + { + data2, ok := other.Get_().(ResolveAuthActionsOutput_ResolveAuthActionsOutput) + return ok && data1.CryptoActions.Equals(data2.CryptoActions) + } + default: + { + return false // unexpected + } + } +} + +func (_this ResolveAuthActionsOutput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(ResolveAuthActionsOutput) + return ok && _this.Equals(typed) +} + +func Type_ResolveAuthActionsOutput_() _dafny.TypeDescriptor { + return type_ResolveAuthActionsOutput_{} +} + +type type_ResolveAuthActionsOutput_ struct { +} + +func (_this type_ResolveAuthActionsOutput_) Default() interface{} { + return Companion_ResolveAuthActionsOutput_.Default() +} + +func (_this type_ResolveAuthActionsOutput_) String() string { + return "AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.ResolveAuthActionsOutput" +} +func (_this ResolveAuthActionsOutput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = ResolveAuthActionsOutput{} + +// End of datatype ResolveAuthActionsOutput + +// Definition of datatype StructuredDataTerminal +type StructuredDataTerminal struct { + Data_StructuredDataTerminal_ +} + +func (_this StructuredDataTerminal) Get_() Data_StructuredDataTerminal_ { + return _this.Data_StructuredDataTerminal_ +} + +type Data_StructuredDataTerminal_ interface { + isStructuredDataTerminal() +} + +type CompanionStruct_StructuredDataTerminal_ struct { +} + +var Companion_StructuredDataTerminal_ = CompanionStruct_StructuredDataTerminal_{} + +type StructuredDataTerminal_StructuredDataTerminal struct { + Value _dafny.Sequence + TypeId _dafny.Sequence +} + +func (StructuredDataTerminal_StructuredDataTerminal) isStructuredDataTerminal() {} + +func (CompanionStruct_StructuredDataTerminal_) Create_StructuredDataTerminal_(Value _dafny.Sequence, TypeId _dafny.Sequence) StructuredDataTerminal { + return StructuredDataTerminal{StructuredDataTerminal_StructuredDataTerminal{Value, TypeId}} +} + +func (_this StructuredDataTerminal) Is_StructuredDataTerminal() bool { + _, ok := _this.Get_().(StructuredDataTerminal_StructuredDataTerminal) + return ok +} + +func (CompanionStruct_StructuredDataTerminal_) Default() StructuredDataTerminal { + return Companion_StructuredDataTerminal_.Create_StructuredDataTerminal_(_dafny.EmptySeq, _dafny.EmptySeq) +} + +func (_this StructuredDataTerminal) Dtor_value() _dafny.Sequence { + return _this.Get_().(StructuredDataTerminal_StructuredDataTerminal).Value +} + +func (_this StructuredDataTerminal) Dtor_typeId() _dafny.Sequence { + return _this.Get_().(StructuredDataTerminal_StructuredDataTerminal).TypeId +} + +func (_this StructuredDataTerminal) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case StructuredDataTerminal_StructuredDataTerminal: + { + return "AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.StructuredDataTerminal.StructuredDataTerminal" + "(" + _dafny.String(data.Value) + ", " + _dafny.String(data.TypeId) + ")" + } + default: + { + return "" + } + } +} + +func (_this StructuredDataTerminal) Equals(other StructuredDataTerminal) bool { + switch data1 := _this.Get_().(type) { + case StructuredDataTerminal_StructuredDataTerminal: + { + data2, ok := other.Get_().(StructuredDataTerminal_StructuredDataTerminal) + return ok && data1.Value.Equals(data2.Value) && data1.TypeId.Equals(data2.TypeId) + } + default: + { + return false // unexpected + } + } +} + +func (_this StructuredDataTerminal) EqualsGeneric(other interface{}) bool { + typed, ok := other.(StructuredDataTerminal) + return ok && _this.Equals(typed) +} + +func Type_StructuredDataTerminal_() _dafny.TypeDescriptor { + return type_StructuredDataTerminal_{} +} + +type type_StructuredDataTerminal_ struct { +} + +func (_this type_StructuredDataTerminal_) Default() interface{} { + return Companion_StructuredDataTerminal_.Default() +} + +func (_this type_StructuredDataTerminal_) String() string { + return "AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.StructuredDataTerminal" +} +func (_this StructuredDataTerminal) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = StructuredDataTerminal{} + +// End of datatype StructuredDataTerminal + +// Definition of class IStructuredEncryptionClientCallHistory +type IStructuredEncryptionClientCallHistory struct { + dummy byte +} + +func New_IStructuredEncryptionClientCallHistory_() *IStructuredEncryptionClientCallHistory { + _this := IStructuredEncryptionClientCallHistory{} + + return &_this +} + +type CompanionStruct_IStructuredEncryptionClientCallHistory_ struct { +} + +var Companion_IStructuredEncryptionClientCallHistory_ = CompanionStruct_IStructuredEncryptionClientCallHistory_{} + +func (_this *IStructuredEncryptionClientCallHistory) Equals(other *IStructuredEncryptionClientCallHistory) bool { + return _this == other +} + +func (_this *IStructuredEncryptionClientCallHistory) EqualsGeneric(x interface{}) bool { + other, ok := x.(*IStructuredEncryptionClientCallHistory) + return ok && _this.Equals(other) +} + +func (*IStructuredEncryptionClientCallHistory) String() string { + return "AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.IStructuredEncryptionClientCallHistory" +} + +func Type_IStructuredEncryptionClientCallHistory_() _dafny.TypeDescriptor { + return type_IStructuredEncryptionClientCallHistory_{} +} + +type type_IStructuredEncryptionClientCallHistory_ struct { +} + +func (_this type_IStructuredEncryptionClientCallHistory_) Default() interface{} { + return (*IStructuredEncryptionClientCallHistory)(nil) +} + +func (_this type_IStructuredEncryptionClientCallHistory_) String() string { + return "AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.IStructuredEncryptionClientCallHistory" +} +func (_this *IStructuredEncryptionClientCallHistory) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = &IStructuredEncryptionClientCallHistory{} + +// End of class IStructuredEncryptionClientCallHistory + +// Definition of trait IStructuredEncryptionClient +type IStructuredEncryptionClient interface { + String() string + EncryptStructure(input EncryptStructureInput) m_Wrappers.Result + DecryptStructure(input DecryptStructureInput) m_Wrappers.Result + EncryptPathStructure(input EncryptPathStructureInput) m_Wrappers.Result + DecryptPathStructure(input DecryptPathStructureInput) m_Wrappers.Result + ResolveAuthActions(input ResolveAuthActionsInput) m_Wrappers.Result +} +type CompanionStruct_IStructuredEncryptionClient_ struct { + TraitID_ *_dafny.TraitID +} + +var Companion_IStructuredEncryptionClient_ = CompanionStruct_IStructuredEncryptionClient_{ + TraitID_: &_dafny.TraitID{}, +} + +func (CompanionStruct_IStructuredEncryptionClient_) CastTo_(x interface{}) IStructuredEncryptionClient { + var t IStructuredEncryptionClient + t, _ = x.(IStructuredEncryptionClient) + return t +} + +// End of trait IStructuredEncryptionClient + +// Definition of datatype StructuredEncryptionConfig +type StructuredEncryptionConfig struct { + Data_StructuredEncryptionConfig_ +} + +func (_this StructuredEncryptionConfig) Get_() Data_StructuredEncryptionConfig_ { + return _this.Data_StructuredEncryptionConfig_ +} + +type Data_StructuredEncryptionConfig_ interface { + isStructuredEncryptionConfig() +} + +type CompanionStruct_StructuredEncryptionConfig_ struct { +} + +var Companion_StructuredEncryptionConfig_ = CompanionStruct_StructuredEncryptionConfig_{} + +type StructuredEncryptionConfig_StructuredEncryptionConfig struct { +} + +func (StructuredEncryptionConfig_StructuredEncryptionConfig) isStructuredEncryptionConfig() {} + +func (CompanionStruct_StructuredEncryptionConfig_) Create_StructuredEncryptionConfig_() StructuredEncryptionConfig { + return StructuredEncryptionConfig{StructuredEncryptionConfig_StructuredEncryptionConfig{}} +} + +func (_this StructuredEncryptionConfig) Is_StructuredEncryptionConfig() bool { + _, ok := _this.Get_().(StructuredEncryptionConfig_StructuredEncryptionConfig) + return ok +} + +func (CompanionStruct_StructuredEncryptionConfig_) Default() StructuredEncryptionConfig { + return Companion_StructuredEncryptionConfig_.Create_StructuredEncryptionConfig_() +} + +func (_ CompanionStruct_StructuredEncryptionConfig_) AllSingletonConstructors() _dafny.Iterator { + i := -1 + return func() (interface{}, bool) { + i++ + switch i { + case 0: + return Companion_StructuredEncryptionConfig_.Create_StructuredEncryptionConfig_(), true + default: + return StructuredEncryptionConfig{}, false + } + } +} + +func (_this StructuredEncryptionConfig) String() string { + switch _this.Get_().(type) { + case nil: + return "null" + case StructuredEncryptionConfig_StructuredEncryptionConfig: + { + return "AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.StructuredEncryptionConfig.StructuredEncryptionConfig" + } + default: + { + return "" + } + } +} + +func (_this StructuredEncryptionConfig) Equals(other StructuredEncryptionConfig) bool { + switch _this.Get_().(type) { + case StructuredEncryptionConfig_StructuredEncryptionConfig: + { + _, ok := other.Get_().(StructuredEncryptionConfig_StructuredEncryptionConfig) + return ok + } + default: + { + return false // unexpected + } + } +} + +func (_this StructuredEncryptionConfig) EqualsGeneric(other interface{}) bool { + typed, ok := other.(StructuredEncryptionConfig) + return ok && _this.Equals(typed) +} + +func Type_StructuredEncryptionConfig_() _dafny.TypeDescriptor { + return type_StructuredEncryptionConfig_{} +} + +type type_StructuredEncryptionConfig_ struct { +} + +func (_this type_StructuredEncryptionConfig_) Default() interface{} { + return Companion_StructuredEncryptionConfig_.Default() +} + +func (_this type_StructuredEncryptionConfig_) String() string { + return "AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.StructuredEncryptionConfig" +} +func (_this StructuredEncryptionConfig) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = StructuredEncryptionConfig{} + +// End of datatype StructuredEncryptionConfig + +// Definition of datatype StructureSegment +type StructureSegment struct { + Data_StructureSegment_ +} + +func (_this StructureSegment) Get_() Data_StructureSegment_ { + return _this.Data_StructureSegment_ +} + +type Data_StructureSegment_ interface { + isStructureSegment() +} + +type CompanionStruct_StructureSegment_ struct { +} + +var Companion_StructureSegment_ = CompanionStruct_StructureSegment_{} + +type StructureSegment_StructureSegment struct { + Key _dafny.Sequence +} + +func (StructureSegment_StructureSegment) isStructureSegment() {} + +func (CompanionStruct_StructureSegment_) Create_StructureSegment_(Key _dafny.Sequence) StructureSegment { + return StructureSegment{StructureSegment_StructureSegment{Key}} +} + +func (_this StructureSegment) Is_StructureSegment() bool { + _, ok := _this.Get_().(StructureSegment_StructureSegment) + return ok +} + +func (CompanionStruct_StructureSegment_) Default() StructureSegment { + return Companion_StructureSegment_.Create_StructureSegment_(_dafny.EmptySeq.SetString()) +} + +func (_this StructureSegment) Dtor_key() _dafny.Sequence { + return _this.Get_().(StructureSegment_StructureSegment).Key +} + +func (_this StructureSegment) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case StructureSegment_StructureSegment: + { + return "AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.StructureSegment.StructureSegment" + "(" + _dafny.String(data.Key) + ")" + } + default: + { + return "" + } + } +} + +func (_this StructureSegment) Equals(other StructureSegment) bool { + switch data1 := _this.Get_().(type) { + case StructureSegment_StructureSegment: + { + data2, ok := other.Get_().(StructureSegment_StructureSegment) + return ok && data1.Key.Equals(data2.Key) + } + default: + { + return false // unexpected + } + } +} + +func (_this StructureSegment) EqualsGeneric(other interface{}) bool { + typed, ok := other.(StructureSegment) + return ok && _this.Equals(typed) +} + +func Type_StructureSegment_() _dafny.TypeDescriptor { + return type_StructureSegment_{} +} + +type type_StructureSegment_ struct { +} + +func (_this type_StructureSegment_) Default() interface{} { + return Companion_StructureSegment_.Default() +} + +func (_this type_StructureSegment_) String() string { + return "AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.StructureSegment" +} +func (_this StructureSegment) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = StructureSegment{} + +// End of datatype StructureSegment + +// Definition of class TerminalTypeId +type TerminalTypeId struct { +} + +func New_TerminalTypeId_() *TerminalTypeId { + _this := TerminalTypeId{} + + return &_this +} + +type CompanionStruct_TerminalTypeId_ struct { +} + +var Companion_TerminalTypeId_ = CompanionStruct_TerminalTypeId_{} + +func (*TerminalTypeId) String() string { + return "AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.TerminalTypeId" +} + +// End of class TerminalTypeId + +func Type_TerminalTypeId_() _dafny.TypeDescriptor { + return type_TerminalTypeId_{} +} + +type type_TerminalTypeId_ struct { +} + +func (_this type_TerminalTypeId_) Default() interface{} { + return _dafny.EmptySeq +} + +func (_this type_TerminalTypeId_) String() string { + return "AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.TerminalTypeId" +} +func (_this *CompanionStruct_TerminalTypeId_) Is_(__source _dafny.Sequence) bool { + var _0_x _dafny.Sequence = (__source) + _ = _0_x + return Companion_Default___.IsValid__TerminalTypeId(_0_x) +} + +// Definition of datatype Error +type Error struct { + Data_Error_ +} + +func (_this Error) Get_() Data_Error_ { + return _this.Data_Error_ +} + +type Data_Error_ interface { + isError() +} + +type CompanionStruct_Error_ struct { +} + +var Companion_Error_ = CompanionStruct_Error_{} + +type Error_StructuredEncryptionException struct { + Message _dafny.Sequence +} + +func (Error_StructuredEncryptionException) isError() {} + +func (CompanionStruct_Error_) Create_StructuredEncryptionException_(Message _dafny.Sequence) Error { + return Error{Error_StructuredEncryptionException{Message}} +} + +func (_this Error) Is_StructuredEncryptionException() bool { + _, ok := _this.Get_().(Error_StructuredEncryptionException) + return ok +} + +type Error_AwsCryptographyMaterialProviders struct { + AwsCryptographyMaterialProviders m_AwsCryptographyMaterialProvidersTypes.Error +} + +func (Error_AwsCryptographyMaterialProviders) isError() {} + +func (CompanionStruct_Error_) Create_AwsCryptographyMaterialProviders_(AwsCryptographyMaterialProviders m_AwsCryptographyMaterialProvidersTypes.Error) Error { + return Error{Error_AwsCryptographyMaterialProviders{AwsCryptographyMaterialProviders}} +} + +func (_this Error) Is_AwsCryptographyMaterialProviders() bool { + _, ok := _this.Get_().(Error_AwsCryptographyMaterialProviders) + return ok +} + +type Error_AwsCryptographyPrimitives struct { + AwsCryptographyPrimitives m_AwsCryptographyPrimitivesTypes.Error +} + +func (Error_AwsCryptographyPrimitives) isError() {} + +func (CompanionStruct_Error_) Create_AwsCryptographyPrimitives_(AwsCryptographyPrimitives m_AwsCryptographyPrimitivesTypes.Error) Error { + return Error{Error_AwsCryptographyPrimitives{AwsCryptographyPrimitives}} +} + +func (_this Error) Is_AwsCryptographyPrimitives() bool { + _, ok := _this.Get_().(Error_AwsCryptographyPrimitives) + return ok +} + +type Error_CollectionOfErrors struct { + List _dafny.Sequence + Message _dafny.Sequence +} + +func (Error_CollectionOfErrors) isError() {} + +func (CompanionStruct_Error_) Create_CollectionOfErrors_(List _dafny.Sequence, Message _dafny.Sequence) Error { + return Error{Error_CollectionOfErrors{List, Message}} +} + +func (_this Error) Is_CollectionOfErrors() bool { + _, ok := _this.Get_().(Error_CollectionOfErrors) + return ok +} + +type Error_Opaque struct { + Obj interface{} +} + +func (Error_Opaque) isError() {} + +func (CompanionStruct_Error_) Create_Opaque_(Obj interface{}) Error { + return Error{Error_Opaque{Obj}} +} + +func (_this Error) Is_Opaque() bool { + _, ok := _this.Get_().(Error_Opaque) + return ok +} + +type Error_OpaqueWithText struct { + Obj interface{} + ObjMessage _dafny.Sequence +} + +func (Error_OpaqueWithText) isError() {} + +func (CompanionStruct_Error_) Create_OpaqueWithText_(Obj interface{}, ObjMessage _dafny.Sequence) Error { + return Error{Error_OpaqueWithText{Obj, ObjMessage}} +} + +func (_this Error) Is_OpaqueWithText() bool { + _, ok := _this.Get_().(Error_OpaqueWithText) + return ok +} + +func (CompanionStruct_Error_) Default() Error { + return Companion_Error_.Create_StructuredEncryptionException_(_dafny.EmptySeq.SetString()) +} + +func (_this Error) Dtor_message() _dafny.Sequence { + switch data := _this.Get_().(type) { + case Error_StructuredEncryptionException: + return data.Message + default: + return data.(Error_CollectionOfErrors).Message + } +} + +func (_this Error) Dtor_AwsCryptographyMaterialProviders() m_AwsCryptographyMaterialProvidersTypes.Error { + return _this.Get_().(Error_AwsCryptographyMaterialProviders).AwsCryptographyMaterialProviders +} + +func (_this Error) Dtor_AwsCryptographyPrimitives() m_AwsCryptographyPrimitivesTypes.Error { + return _this.Get_().(Error_AwsCryptographyPrimitives).AwsCryptographyPrimitives +} + +func (_this Error) Dtor_list() _dafny.Sequence { + return _this.Get_().(Error_CollectionOfErrors).List +} + +func (_this Error) Dtor_obj() interface{} { + switch data := _this.Get_().(type) { + case Error_Opaque: + return data.Obj + default: + return data.(Error_OpaqueWithText).Obj + } +} + +func (_this Error) Dtor_objMessage() _dafny.Sequence { + return _this.Get_().(Error_OpaqueWithText).ObjMessage +} + +func (_this Error) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case Error_StructuredEncryptionException: + { + return "AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Error.StructuredEncryptionException" + "(" + _dafny.String(data.Message) + ")" + } + case Error_AwsCryptographyMaterialProviders: + { + return "AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Error.AwsCryptographyMaterialProviders" + "(" + _dafny.String(data.AwsCryptographyMaterialProviders) + ")" + } + case Error_AwsCryptographyPrimitives: + { + return "AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Error.AwsCryptographyPrimitives" + "(" + _dafny.String(data.AwsCryptographyPrimitives) + ")" + } + case Error_CollectionOfErrors: + { + return "AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Error.CollectionOfErrors" + "(" + _dafny.String(data.List) + ", " + _dafny.String(data.Message) + ")" + } + case Error_Opaque: + { + return "AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Error.Opaque" + "(" + _dafny.String(data.Obj) + ")" + } + case Error_OpaqueWithText: + { + return "AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Error.OpaqueWithText" + "(" + _dafny.String(data.Obj) + ", " + _dafny.String(data.ObjMessage) + ")" + } + default: + { + return "" + } + } +} + +func (_this Error) Equals(other Error) bool { + switch data1 := _this.Get_().(type) { + case Error_StructuredEncryptionException: + { + data2, ok := other.Get_().(Error_StructuredEncryptionException) + return ok && data1.Message.Equals(data2.Message) + } + case Error_AwsCryptographyMaterialProviders: + { + data2, ok := other.Get_().(Error_AwsCryptographyMaterialProviders) + return ok && data1.AwsCryptographyMaterialProviders.Equals(data2.AwsCryptographyMaterialProviders) + } + case Error_AwsCryptographyPrimitives: + { + data2, ok := other.Get_().(Error_AwsCryptographyPrimitives) + return ok && data1.AwsCryptographyPrimitives.Equals(data2.AwsCryptographyPrimitives) + } + case Error_CollectionOfErrors: + { + data2, ok := other.Get_().(Error_CollectionOfErrors) + return ok && data1.List.Equals(data2.List) && data1.Message.Equals(data2.Message) + } + case Error_Opaque: + { + data2, ok := other.Get_().(Error_Opaque) + return ok && _dafny.AreEqual(data1.Obj, data2.Obj) + } + case Error_OpaqueWithText: + { + data2, ok := other.Get_().(Error_OpaqueWithText) + return ok && _dafny.AreEqual(data1.Obj, data2.Obj) && data1.ObjMessage.Equals(data2.ObjMessage) + } + default: + { + return false // unexpected + } + } +} + +func (_this Error) EqualsGeneric(other interface{}) bool { + typed, ok := other.(Error) + return ok && _this.Equals(typed) +} + +func Type_Error_() _dafny.TypeDescriptor { + return type_Error_{} +} + +type type_Error_ struct { +} + +func (_this type_Error_) Default() interface{} { + return Companion_Error_.Default() +} + +func (_this type_Error_) String() string { + return "AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Error" +} +func (_this Error) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = Error{} + +// End of datatype Error + +// Definition of class OpaqueError +type OpaqueError struct { +} + +func New_OpaqueError_() *OpaqueError { + _this := OpaqueError{} + + return &_this +} + +type CompanionStruct_OpaqueError_ struct { +} + +var Companion_OpaqueError_ = CompanionStruct_OpaqueError_{} + +func (*OpaqueError) String() string { + return "AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.OpaqueError" +} + +// End of class OpaqueError + +func Type_OpaqueError_() _dafny.TypeDescriptor { + return type_OpaqueError_{} +} + +type type_OpaqueError_ struct { +} + +func (_this type_OpaqueError_) Default() interface{} { + return Companion_Error_.Default() +} + +func (_this type_OpaqueError_) String() string { + return "AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.OpaqueError" +} +func (_this *CompanionStruct_OpaqueError_) Is_(__source Error) bool { + var _1_e Error = (__source) + _ = _1_e + return ((_1_e).Is_Opaque()) || ((_1_e).Is_OpaqueWithText()) +} + +// Definition of class DummySubsetType +type DummySubsetType struct { +} + +func New_DummySubsetType_() *DummySubsetType { + _this := DummySubsetType{} + + return &_this +} + +type CompanionStruct_DummySubsetType_ struct { +} + +var Companion_DummySubsetType_ = CompanionStruct_DummySubsetType_{} + +func (*DummySubsetType) String() string { + return "AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.DummySubsetType" +} +func (_this *CompanionStruct_DummySubsetType_) Witness() _dafny.Int { + return _dafny.One +} + +// End of class DummySubsetType + +func Type_DummySubsetType_() _dafny.TypeDescriptor { + return type_DummySubsetType_{} +} + +type type_DummySubsetType_ struct { +} + +func (_this type_DummySubsetType_) Default() interface{} { + return Companion_DummySubsetType_.Witness() +} + +func (_this type_DummySubsetType_) String() string { + return "AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.DummySubsetType" +} +func (_this *CompanionStruct_DummySubsetType_) Is_(__source _dafny.Int) bool { + var _2_x _dafny.Int = (__source) + _ = _2_x + return Companion_Default___.IsDummySubsetType(_2_x) +} diff --git a/customer-preview/ddb-esdk/BaseBeacon/BaseBeacon.go b/customer-preview/ddb-esdk/BaseBeacon/BaseBeacon.go new file mode 100644 index 000000000..1d3389f67 --- /dev/null +++ b/customer-preview/ddb-esdk/BaseBeacon/BaseBeacon.go @@ -0,0 +1,1168 @@ +// Package BaseBeacon +// Dafny module BaseBeacon compiled into Go + +package BaseBeacon + +import ( + os "os" + + m_ComAmazonawsDynamodbTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/ComAmazonawsDynamodbTypes" + m_Com_Amazonaws_Dynamodb "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/Com_Amazonaws_Dynamodb" + m_ComAmazonawsKmsTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/ComAmazonawsKmsTypes" + m_Com_Amazonaws_Kms "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/Com_Amazonaws_Kms" + m_AlgorithmSuites "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AlgorithmSuites" + m_AwsArnParsing "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsArnParsing" + m_AwsCryptographyKeyStoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreOperations" + m_AwsCryptographyKeyStoreTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreTypes" + m_AwsCryptographyMaterialProvidersOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersOperations" + m_AwsCryptographyMaterialProvidersTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersTypes" + m_AwsKmsDiscoveryKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsDiscoveryKeyring" + m_AwsKmsEcdhKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsEcdhKeyring" + m_AwsKmsHierarchicalKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsHierarchicalKeyring" + m_AwsKmsKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsKeyring" + m_AwsKmsMrkAreUnique "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkAreUnique" + m_AwsKmsMrkDiscoveryKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkDiscoveryKeyring" + m_AwsKmsMrkKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkKeyring" + m_AwsKmsMrkMatchForDecrypt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkMatchForDecrypt" + m_AwsKmsRsaKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsRsaKeyring" + m_AwsKmsUtils "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsUtils" + m_CMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CMM" + m_CacheConstants "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CacheConstants" + m_CanonicalEncryptionContext "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CanonicalEncryptionContext" + m_Commitment "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Commitment" + m_Constants "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Constants" + m_CreateKeyStoreTable "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeyStoreTable" + m_CreateKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeys" + m_DDBKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DDBKeystoreOperations" + m_DefaultCMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DefaultCMM" + m_DefaultClientSupplier "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DefaultClientSupplier" + m_Defaults "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Defaults" + m_DiscoveryMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DiscoveryMultiKeyring" + m_EcdhEdkWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/EcdhEdkWrapping" + m_EdkWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/EdkWrapping" + m_ErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/ErrorMessages" + m_GetKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/GetKeys" + m_IntermediateKeyWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/IntermediateKeyWrapping" + m_KMSKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KMSKeystoreOperations" + m_KeyStore "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStore" + m_KeyStoreErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStoreErrorMessages" + m_Keyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Keyring" + m_KmsArn "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KmsArn" + m_LocalCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/LocalCMC" + m_MaterialProviders "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MaterialProviders" + m_MaterialWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MaterialWrapping" + m_Materials "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Materials" + m_MrkAwareDiscoveryMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MrkAwareDiscoveryMultiKeyring" + m_MrkAwareStrictMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MrkAwareStrictMultiKeyring" + m_MultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MultiKeyring" + m_RawAESKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawAESKeyring" + m_RawECDHKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawECDHKeyring" + m_RawRSAKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawRSAKeyring" + m_RequiredEncryptionContextCMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RequiredEncryptionContextCMM" + m_StormTracker "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StormTracker" + m_StormTrackingCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StormTrackingCMC" + m_StrictMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StrictMultiKeyring" + m_Structure "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Structure" + m_SynchronizedLocalCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/SynchronizedLocalCMC" + m_Utils "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Utils" + m_AtomicPrimitives "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AtomicPrimitives" + m_AwsCryptographyPrimitivesOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesOperations" + m_AwsCryptographyPrimitivesTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesTypes" + m_Digest "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Digest" + m_HKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/HKDF" + m_KdfCtr "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/KdfCtr" + m_Random "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Random" + m_WrappedHKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHKDF" + m_WrappedHMAC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHMAC" + m_Actions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Actions" + m_Base64 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64" + m_Base64Lemmas "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64Lemmas" + m_BoundedInts "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/BoundedInts" + m_DivInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternals" + m_DivInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternalsNonlinear" + m_DivMod "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivMod" + m_FileIO "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FileIO" + m_FloatCompare "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FloatCompare" + m_Functions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Functions" + m_GeneralInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GeneralInternals" + m_GetOpt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GetOpt" + m_HexStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/HexStrings" + m_Logarithm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Logarithm" + m__Math "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Math_" + m_ModInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternals" + m_ModInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternalsNonlinear" + m_Mul "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Mul" + m_MulInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternals" + m_MulInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternalsNonlinear" + m_Power "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Power" + m_Relations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Relations" + m_Seq "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq" + m_Seq_MergeSort "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq_MergeSort" + m_Sorting "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Sorting" + m_StandardLibrary "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary" + m_StandardLibraryInterop "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibraryInterop" + m_StandardLibrary_Sequence "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_Sequence" + m_StandardLibrary_String "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_String" + m_StandardLibrary_UInt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_UInt" + m_Streams "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Streams" + m_UTF8 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UTF8" + m_UnicodeStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UnicodeStrings" + m__Unicode "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Unicode_" + m_Utf16EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf16EncodingForm" + m_Utf8EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf8EncodingForm" + m_Wrappers "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers" + m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorOperations "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorOperations" + m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes" + m_AwsCryptographyDbEncryptionSdkDynamoDbOperations "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbOperations" + m_AwsCryptographyDbEncryptionSdkDynamoDbTypes "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbTypes" + m_AwsCryptographyDbEncryptionSdkStructuredEncryptionOperations "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkStructuredEncryptionOperations" + m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes" + m_Canonize "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/Canonize" + m_DdbVirtualFields "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DdbVirtualFields" + m_DynamoDbEncryption "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbEncryption" + m_DynamoDbEncryptionBranchKeyIdSupplier "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbEncryptionBranchKeyIdSupplier" + m_DynamoDbEncryptionUtil "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbEncryptionUtil" + m_DynamoDbItemEncryptor "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbItemEncryptor" + m_DynamoDbItemEncryptorUtil "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbItemEncryptorUtil" + m_DynamoDbNormalizeNumber "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbNormalizeNumber" + m_DynamoDbUpdateExpr "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbUpdateExpr" + m_DynamoToStruct "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoToStruct" + m_InternalLegacyOverride "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/InternalLegacyOverride" + m__Maps "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/Maps_" + m_Sets "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/Sets" + m_SortCanon "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/SortCanon" + m_StructuredEncryption "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryption" + m_StructuredEncryptionCrypt "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionCrypt" + m_StructuredEncryptionFooter "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionFooter" + m_StructuredEncryptionHeader "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionHeader" + m_StructuredEncryptionPaths "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionPaths" + m_StructuredEncryptionUtil "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionUtil" + m_TermLoc "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/TermLoc" + m__System "github.com/dafny-lang/DafnyRuntimeGo/v4/System_" + _dafny "github.com/dafny-lang/DafnyRuntimeGo/v4/dafny" +) + +var _ = os.Args +var _ _dafny.Dummy__ +var _ m__System.Dummy__ +var _ m_Wrappers.Dummy__ +var _ m_BoundedInts.Dummy__ +var _ m_StandardLibrary_UInt.Dummy__ +var _ m_StandardLibrary_Sequence.Dummy__ +var _ m_StandardLibrary_String.Dummy__ +var _ m_StandardLibrary.Dummy__ +var _ m_AwsCryptographyPrimitivesTypes.Dummy__ +var _ m_Random.Dummy__ +var _ m_Digest.Dummy__ +var _ m_WrappedHMAC.Dummy__ +var _ m_HKDF.Dummy__ +var _ m_WrappedHKDF.Dummy__ +var _ m_KdfCtr.Dummy__ +var _ m_AwsCryptographyPrimitivesOperations.Dummy__ +var _ m_AtomicPrimitives.Dummy__ +var _ m_ComAmazonawsDynamodbTypes.Dummy__ +var _ m_ComAmazonawsKmsTypes.Dummy__ +var _ m_AwsCryptographyKeyStoreTypes.Dummy__ +var _ m_AwsCryptographyMaterialProvidersTypes.Dummy__ +var _ m_Base64.Dummy__ +var _ m_AlgorithmSuites.Dummy__ +var _ m_Materials.Dummy__ +var _ m_Keyring.Dummy__ +var _ m_Relations.Dummy__ +var _ m_Seq_MergeSort.Dummy__ +var _ m__Math.Dummy__ +var _ m_Seq.Dummy__ +var _ m_MultiKeyring.Dummy__ +var _ m_AwsArnParsing.Dummy__ +var _ m_AwsKmsMrkAreUnique.Dummy__ +var _ m_Actions.Dummy__ +var _ m_AwsKmsMrkMatchForDecrypt.Dummy__ +var _ m_AwsKmsUtils.Dummy__ +var _ m_Constants.Dummy__ +var _ m_MaterialWrapping.Dummy__ +var _ m_CanonicalEncryptionContext.Dummy__ +var _ m_IntermediateKeyWrapping.Dummy__ +var _ m_EdkWrapping.Dummy__ +var _ m_ErrorMessages.Dummy__ +var _ m_AwsKmsKeyring.Dummy__ +var _ m_StrictMultiKeyring.Dummy__ +var _ m_AwsKmsDiscoveryKeyring.Dummy__ +var _ m_Com_Amazonaws_Kms.Dummy__ +var _ m_Com_Amazonaws_Dynamodb.Dummy__ +var _ m_DiscoveryMultiKeyring.Dummy__ +var _ m_AwsKmsMrkDiscoveryKeyring.Dummy__ +var _ m_MrkAwareDiscoveryMultiKeyring.Dummy__ +var _ m_AwsKmsMrkKeyring.Dummy__ +var _ m_MrkAwareStrictMultiKeyring.Dummy__ +var _ m_LocalCMC.Dummy__ +var _ m_SynchronizedLocalCMC.Dummy__ +var _ m_StormTracker.Dummy__ +var _ m_StormTrackingCMC.Dummy__ +var _ m_CacheConstants.Dummy__ +var _ m_AwsKmsHierarchicalKeyring.Dummy__ +var _ m_AwsKmsRsaKeyring.Dummy__ +var _ m_EcdhEdkWrapping.Dummy__ +var _ m_RawECDHKeyring.Dummy__ +var _ m_AwsKmsEcdhKeyring.Dummy__ +var _ m_RawAESKeyring.Dummy__ +var _ m_RawRSAKeyring.Dummy__ +var _ m_CMM.Dummy__ +var _ m_Defaults.Dummy__ +var _ m_Commitment.Dummy__ +var _ m_DefaultCMM.Dummy__ +var _ m_DefaultClientSupplier.Dummy__ +var _ m_Utils.Dummy__ +var _ m_RequiredEncryptionContextCMM.Dummy__ +var _ m_AwsCryptographyMaterialProvidersOperations.Dummy__ +var _ m_MaterialProviders.Dummy__ +var _ m_KeyStoreErrorMessages.Dummy__ +var _ m_KmsArn.Dummy__ +var _ m_Structure.Dummy__ +var _ m_KMSKeystoreOperations.Dummy__ +var _ m_DDBKeystoreOperations.Dummy__ +var _ m_CreateKeys.Dummy__ +var _ m_CreateKeyStoreTable.Dummy__ +var _ m_GetKeys.Dummy__ +var _ m_AwsCryptographyKeyStoreOperations.Dummy__ +var _ m_KeyStore.Dummy__ +var _ m__Unicode.Dummy__ +var _ m_Functions.Dummy__ +var _ m_Utf8EncodingForm.Dummy__ +var _ m_Utf16EncodingForm.Dummy__ +var _ m_UnicodeStrings.Dummy__ +var _ m_FileIO.Dummy__ +var _ m_GeneralInternals.Dummy__ +var _ m_MulInternalsNonlinear.Dummy__ +var _ m_MulInternals.Dummy__ +var _ m_Mul.Dummy__ +var _ m_ModInternalsNonlinear.Dummy__ +var _ m_DivInternalsNonlinear.Dummy__ +var _ m_ModInternals.Dummy__ +var _ m_DivInternals.Dummy__ +var _ m_DivMod.Dummy__ +var _ m_Power.Dummy__ +var _ m_Logarithm.Dummy__ +var _ m_StandardLibraryInterop.Dummy__ +var _ m_Streams.Dummy__ +var _ m_Sorting.Dummy__ +var _ m_HexStrings.Dummy__ +var _ m_GetOpt.Dummy__ +var _ m_FloatCompare.Dummy__ +var _ m_Base64Lemmas.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Dummy__ +var _ m_StructuredEncryptionUtil.Dummy__ +var _ m_Sets.Dummy__ +var _ m_StructuredEncryptionPaths.Dummy__ +var _ m_StructuredEncryptionHeader.Dummy__ +var _ m_StructuredEncryptionFooter.Dummy__ +var _ m_SortCanon.Dummy__ +var _ m_Canonize.Dummy__ +var _ m_StructuredEncryptionCrypt.Dummy__ +var _ m__Maps.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkStructuredEncryptionOperations.Dummy__ +var _ m_StructuredEncryption.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Dummy__ +var _ m_DynamoDbEncryptionUtil.Dummy__ +var _ m_DynamoDbNormalizeNumber.Dummy__ +var _ m_DynamoToStruct.Dummy__ +var _ m_DynamoDbItemEncryptorUtil.Dummy__ +var _ m_InternalLegacyOverride.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorOperations.Dummy__ +var _ m_DynamoDbItemEncryptor.Dummy__ +var _ m_DynamoDbEncryptionBranchKeyIdSupplier.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkDynamoDbOperations.Dummy__ +var _ m_DynamoDbEncryption.Dummy__ +var _ m_TermLoc.Dummy__ +var _ m_DdbVirtualFields.Dummy__ +var _ m_DynamoDbUpdateExpr.Dummy__ + +type Dummy__ struct{} + +// Definition of class Default__ +type Default__ struct { + dummy byte +} + +func New_Default___() *Default__ { + _this := Default__{} + + return &_this +} + +type CompanionStruct_Default___ struct { +} + +var Companion_Default___ = CompanionStruct_Default___{} + +func (_this *Default__) Equals(other *Default__) bool { + return _this == other +} + +func (_this *Default__) EqualsGeneric(x interface{}) bool { + other, ok := x.(*Default__) + return ok && _this.Equals(other) +} + +func (*Default__) String() string { + return "BaseBeacon.Default__" +} +func (_this *Default__) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = &Default__{} + +func (_static *CompanionStruct_Default___) MakeStandardBeacon(client *m_AtomicPrimitives.AtomicPrimitivesClient, name _dafny.Sequence, length uint8, loc _dafny.Sequence, partOnly bool, asSet bool, share m_Wrappers.Option) m_Wrappers.Result { + var _0_valueOrError0 m_Wrappers.Result = m_TermLoc.Companion_Default___.MakeTermLoc(loc) + _ = _0_valueOrError0 + if (_0_valueOrError0).IsFailure() { + return (_0_valueOrError0).PropagateFailure() + } else { + var _1_termLoc _dafny.Sequence = (_0_valueOrError0).Extract().(_dafny.Sequence) + _ = _1_termLoc + var _2_beaconName _dafny.Sequence = _dafny.Companion_Sequence_.Concatenate(m_DynamoDbEncryptionUtil.Companion_Default___.BeaconPrefix(), name) + _ = _2_beaconName + var _3_valueOrError1 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need(m_ComAmazonawsDynamodbTypes.Companion_Default___.IsValid__AttributeName(_2_beaconName), m_DynamoDbEncryptionUtil.Companion_Default___.E(_dafny.Companion_Sequence_.Concatenate(_2_beaconName, _dafny.SeqOfString(" is not a valid attribute name.")))) + _ = _3_valueOrError1 + if (_3_valueOrError1).IsFailure() { + return (_3_valueOrError1).PropagateFailure() + } else { + return m_Wrappers.Companion_Result_.Create_Success_(Companion_StandardBeacon_.Create_StandardBeacon_(Companion_BeaconBase_.Create_BeaconBase_(client, name, _2_beaconName), length, _1_termLoc, partOnly, asSet, share)) + } + } +} +func (_static *CompanionStruct_Default___) CharsFromBeaconLength(bits uint8) _dafny.Int { + return _dafny.IntOfUint8(((uint8(bits)) + (uint8(3))) / (uint8(4))) +} +func (_static *CompanionStruct_Default___) TopBits(bits uint8) uint8 { + var _0_x uint8 = (uint8(bits)) % (uint8(4)) + _ = _0_x + if (_0_x) == (uint8(0)) { + return uint8(4) + } else { + return _0_x + } +} +func (_static *CompanionStruct_Default___) BytesFromBeaconLength(bits uint8) _dafny.Int { + return _dafny.IntOfUint8(((uint8(bits)) + (uint8(7))) / (uint8(8))) +} +func (_static *CompanionStruct_Default___) TruncateNibble(nibble uint8, length uint8) uint8 { + if (length) == (uint8(4)) { + return nibble + } else if (length) == (uint8(3)) { + return (nibble) % (uint8(8)) + } else if (length) == (uint8(2)) { + return (nibble) % (uint8(4)) + } else { + return (nibble) % (uint8(2)) + } +} +func (_static *CompanionStruct_Default___) BytesToHex(bytes _dafny.Sequence, bits uint8) _dafny.Sequence { + var _0_numBytes _dafny.Int = Companion_Default___.BytesFromBeaconLength(bits) + _ = _0_numBytes + var _1_numChars _dafny.Int = Companion_Default___.CharsFromBeaconLength(bits) + _ = _1_numChars + var _2_topBits uint8 = Companion_Default___.TopBits(bits) + _ = _2_topBits + var _3_bytes _dafny.Sequence = (bytes).Drop(((_dafny.IntOfInt64(8)).Minus(_0_numBytes)).Uint32()) + _ = _3_bytes + if (_1_numChars).Cmp((_dafny.IntOfInt64(2)).Times(_0_numBytes)) == 0 { + var _4_topNibble uint8 = ((_3_bytes).Select(0).(uint8)) / (uint8(16)) + _ = _4_topNibble + var _5_bottomNibble uint8 = ((_3_bytes).Select(0).(uint8)) % (uint8(16)) + _ = _5_bottomNibble + return _dafny.Companion_Sequence_.Concatenate(_dafny.SeqOfChars(m_HexStrings.Companion_Default___.HexChar(Companion_Default___.TruncateNibble(_4_topNibble, _2_topBits)), m_HexStrings.Companion_Default___.HexChar(_5_bottomNibble)), m_HexStrings.Companion_Default___.ToHexString((_3_bytes).Drop(1))) + } else { + return _dafny.Companion_Sequence_.Concatenate(_dafny.SeqOfChars(m_HexStrings.Companion_Default___.HexChar(Companion_Default___.TruncateNibble(((_3_bytes).Select(0).(uint8))%(uint8(16)), _2_topBits))), m_HexStrings.Companion_Default___.ToHexString((_3_bytes).Drop(1))) + } +} + +// End of class Default__ + +// Definition of class BeaconLength +type BeaconLength struct { +} + +func New_BeaconLength_() *BeaconLength { + _this := BeaconLength{} + + return &_this +} + +type CompanionStruct_BeaconLength_ struct { +} + +var Companion_BeaconLength_ = CompanionStruct_BeaconLength_{} + +func (*BeaconLength) String() string { + return "BaseBeacon.BeaconLength" +} +func (_this *BeaconLength) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = &BeaconLength{} + +func (_this *CompanionStruct_BeaconLength_) IntegerRange(lo _dafny.Int, hi _dafny.Int) _dafny.Iterator { + iter := _dafny.IntegerRange(lo, hi) + return func() (interface{}, bool) { + next, ok := iter() + if !ok { + return uint8(0), false + } + return next.(_dafny.Int).Uint8(), true + } +} +func (_this *CompanionStruct_BeaconLength_) Witness() uint8 { + return (_dafny.One).Uint8() +} + +// End of class BeaconLength + +func Type_BeaconLength_() _dafny.TypeDescriptor { + return type_BeaconLength_{} +} + +type type_BeaconLength_ struct { +} + +func (_this type_BeaconLength_) Default() interface{} { + return Companion_BeaconLength_.Witness() +} + +func (_this type_BeaconLength_) String() string { + return "BaseBeacon.BeaconLength" +} +func (_this *CompanionStruct_BeaconLength_) Is_(__source uint8) bool { + var _6_x _dafny.Int = _dafny.IntOfUint8(__source) + _ = _6_x + return ((_dafny.One).Cmp(_6_x) <= 0) && ((_6_x).Cmp(_dafny.IntOfInt64(63)) <= 0) +} + +// Definition of class Nibble +type Nibble struct { +} + +func New_Nibble_() *Nibble { + _this := Nibble{} + + return &_this +} + +type CompanionStruct_Nibble_ struct { +} + +var Companion_Nibble_ = CompanionStruct_Nibble_{} + +func (*Nibble) String() string { + return "BaseBeacon.Nibble" +} + +// End of class Nibble + +func Type_Nibble_() _dafny.TypeDescriptor { + return type_Nibble_{} +} + +type type_Nibble_ struct { +} + +func (_this type_Nibble_) Default() interface{} { + return uint8(0) +} + +func (_this type_Nibble_) String() string { + return "BaseBeacon.Nibble" +} +func (_this *CompanionStruct_Nibble_) Is_(__source uint8) bool { + var _7_x uint8 = (__source) + _ = _7_x + if true { + return ((uint8(0)) <= (_7_x)) && ((_7_x) < (uint8(16))) + } + return false +} + +// Definition of datatype BeaconBase +type BeaconBase struct { + Data_BeaconBase_ +} + +func (_this BeaconBase) Get_() Data_BeaconBase_ { + return _this.Data_BeaconBase_ +} + +type Data_BeaconBase_ interface { + isBeaconBase() +} + +type CompanionStruct_BeaconBase_ struct { +} + +var Companion_BeaconBase_ = CompanionStruct_BeaconBase_{} + +type BeaconBase_BeaconBase struct { + Client *m_AtomicPrimitives.AtomicPrimitivesClient + Name _dafny.Sequence + BeaconName _dafny.Sequence +} + +func (BeaconBase_BeaconBase) isBeaconBase() {} + +func (CompanionStruct_BeaconBase_) Create_BeaconBase_(Client *m_AtomicPrimitives.AtomicPrimitivesClient, Name _dafny.Sequence, BeaconName _dafny.Sequence) BeaconBase { + return BeaconBase{BeaconBase_BeaconBase{Client, Name, BeaconName}} +} + +func (_this BeaconBase) Is_BeaconBase() bool { + _, ok := _this.Get_().(BeaconBase_BeaconBase) + return ok +} + +func (CompanionStruct_BeaconBase_) Default() BeaconBase { + return Companion_BeaconBase_.Create_BeaconBase_((*m_AtomicPrimitives.AtomicPrimitivesClient)(nil), _dafny.EmptySeq.SetString(), _dafny.EmptySeq.SetString()) +} + +func (_this BeaconBase) Dtor_client() *m_AtomicPrimitives.AtomicPrimitivesClient { + return _this.Get_().(BeaconBase_BeaconBase).Client +} + +func (_this BeaconBase) Dtor_name() _dafny.Sequence { + return _this.Get_().(BeaconBase_BeaconBase).Name +} + +func (_this BeaconBase) Dtor_beaconName() _dafny.Sequence { + return _this.Get_().(BeaconBase_BeaconBase).BeaconName +} + +func (_this BeaconBase) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case BeaconBase_BeaconBase: + { + return "BaseBeacon.BeaconBase.BeaconBase" + "(" + _dafny.String(data.Client) + ", " + _dafny.String(data.Name) + ", " + _dafny.String(data.BeaconName) + ")" + } + default: + { + return "" + } + } +} + +func (_this BeaconBase) Equals(other BeaconBase) bool { + switch data1 := _this.Get_().(type) { + case BeaconBase_BeaconBase: + { + data2, ok := other.Get_().(BeaconBase_BeaconBase) + return ok && data1.Client == data2.Client && data1.Name.Equals(data2.Name) && data1.BeaconName.Equals(data2.BeaconName) + } + default: + { + return false // unexpected + } + } +} + +func (_this BeaconBase) EqualsGeneric(other interface{}) bool { + typed, ok := other.(BeaconBase) + return ok && _this.Equals(typed) +} + +func Type_BeaconBase_() _dafny.TypeDescriptor { + return type_BeaconBase_{} +} + +type type_BeaconBase_ struct { +} + +func (_this type_BeaconBase_) Default() interface{} { + return Companion_BeaconBase_.Default() +} + +func (_this type_BeaconBase_) String() string { + return "BaseBeacon.BeaconBase" +} +func (_this BeaconBase) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = BeaconBase{} + +func (_this BeaconBase) Hash(val _dafny.Sequence, key _dafny.Sequence, length uint8) m_Wrappers.Result { + { + var _0_valueOrError0 m_Wrappers.Result = (_this).GetHmac(val, key) + _ = _0_valueOrError0 + if (_0_valueOrError0).IsFailure() { + return (_0_valueOrError0).PropagateFailure() + } else { + var _1_hash _dafny.Sequence = (_0_valueOrError0).Extract().(_dafny.Sequence) + _ = _1_hash + return m_Wrappers.Companion_Result_.Create_Success_(Companion_Default___.BytesToHex(_1_hash, length)) + } + } +} +func (_this BeaconBase) HashStr(val _dafny.Sequence, key _dafny.Sequence, length uint8) m_Wrappers.Result { + { + var _0_str m_Wrappers.Result = m_UTF8.Encode(val) + _ = _0_str + if (_0_str).Is_Failure() { + return m_Wrappers.Companion_Result_.Create_Failure_(m_DynamoDbEncryptionUtil.Companion_Default___.E((_0_str).Dtor_error().(_dafny.Sequence))) + } else { + return (_this).Hash((_0_str).Dtor_value().(_dafny.Sequence), key, length) + } + } +} +func (_this BeaconBase) GetHmac(data _dafny.Sequence, key _dafny.Sequence) m_Wrappers.Result { + { + var _0_input m_AwsCryptographyPrimitivesTypes.HMacInput = m_AwsCryptographyPrimitivesTypes.Companion_HMacInput_.Create_HMacInput_(m_AwsCryptographyPrimitivesTypes.Companion_DigestAlgorithm_.Create_SHA__384_(), key, data) + _ = _0_input + var _1_valueOrError0 m_Wrappers.Result = (((_this).Dtor_client()).HMac(_0_input)).MapFailure(func(coer81 func(m_AwsCryptographyPrimitivesTypes.Error) m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Error) func(interface{}) interface{} { + return func(arg105 interface{}) interface{} { + return coer81(arg105.(m_AwsCryptographyPrimitivesTypes.Error)) + } + }(func(_2_e m_AwsCryptographyPrimitivesTypes.Error) m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Error { + return m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_Error_.Create_AwsCryptographyPrimitives_(_2_e) + })) + _ = _1_valueOrError0 + if (_1_valueOrError0).IsFailure() { + return (_1_valueOrError0).PropagateFailure() + } else { + var _3_output _dafny.Sequence = (_1_valueOrError0).Extract().(_dafny.Sequence) + _ = _3_output + return m_Wrappers.Companion_Result_.Create_Success_((_3_output).Take(8)) + } + } +} + +// End of datatype BeaconBase + +// Definition of class ValidStandardBeacon +type ValidStandardBeacon struct { +} + +func New_ValidStandardBeacon_() *ValidStandardBeacon { + _this := ValidStandardBeacon{} + + return &_this +} + +type CompanionStruct_ValidStandardBeacon_ struct { +} + +var Companion_ValidStandardBeacon_ = CompanionStruct_ValidStandardBeacon_{} + +func (*ValidStandardBeacon) String() string { + return "BaseBeacon.ValidStandardBeacon" +} + +// End of class ValidStandardBeacon + +func Type_ValidStandardBeacon_() _dafny.TypeDescriptor { + return type_ValidStandardBeacon_{} +} + +type type_ValidStandardBeacon_ struct { +} + +func (_this type_ValidStandardBeacon_) Default() interface{} { + return Companion_StandardBeacon_.Default() +} + +func (_this type_ValidStandardBeacon_) String() string { + return "BaseBeacon.ValidStandardBeacon" +} + +// Definition of datatype StandardBeacon +type StandardBeacon struct { + Data_StandardBeacon_ +} + +func (_this StandardBeacon) Get_() Data_StandardBeacon_ { + return _this.Data_StandardBeacon_ +} + +type Data_StandardBeacon_ interface { + isStandardBeacon() +} + +type CompanionStruct_StandardBeacon_ struct { +} + +var Companion_StandardBeacon_ = CompanionStruct_StandardBeacon_{} + +type StandardBeacon_StandardBeacon struct { + Base BeaconBase + Length uint8 + Loc _dafny.Sequence + PartOnly bool + AsSet bool + Share m_Wrappers.Option +} + +func (StandardBeacon_StandardBeacon) isStandardBeacon() {} + +func (CompanionStruct_StandardBeacon_) Create_StandardBeacon_(Base BeaconBase, Length uint8, Loc _dafny.Sequence, PartOnly bool, AsSet bool, Share m_Wrappers.Option) StandardBeacon { + return StandardBeacon{StandardBeacon_StandardBeacon{Base, Length, Loc, PartOnly, AsSet, Share}} +} + +func (_this StandardBeacon) Is_StandardBeacon() bool { + _, ok := _this.Get_().(StandardBeacon_StandardBeacon) + return ok +} + +func (CompanionStruct_StandardBeacon_) Default() StandardBeacon { + return Companion_StandardBeacon_.Create_StandardBeacon_(Companion_BeaconBase_.Default(), Companion_BeaconLength_.Witness(), _dafny.EmptySeq, false, false, m_Wrappers.Companion_Option_.Default()) +} + +func (_this StandardBeacon) Dtor_base() BeaconBase { + return _this.Get_().(StandardBeacon_StandardBeacon).Base +} + +func (_this StandardBeacon) Dtor_length() uint8 { + return _this.Get_().(StandardBeacon_StandardBeacon).Length +} + +func (_this StandardBeacon) Dtor_loc() _dafny.Sequence { + return _this.Get_().(StandardBeacon_StandardBeacon).Loc +} + +func (_this StandardBeacon) Dtor_partOnly() bool { + return _this.Get_().(StandardBeacon_StandardBeacon).PartOnly +} + +func (_this StandardBeacon) Dtor_asSet() bool { + return _this.Get_().(StandardBeacon_StandardBeacon).AsSet +} + +func (_this StandardBeacon) Dtor_share() m_Wrappers.Option { + return _this.Get_().(StandardBeacon_StandardBeacon).Share +} + +func (_this StandardBeacon) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case StandardBeacon_StandardBeacon: + { + return "BaseBeacon.StandardBeacon.StandardBeacon" + "(" + _dafny.String(data.Base) + ", " + _dafny.String(data.Length) + ", " + _dafny.String(data.Loc) + ", " + _dafny.String(data.PartOnly) + ", " + _dafny.String(data.AsSet) + ", " + _dafny.String(data.Share) + ")" + } + default: + { + return "" + } + } +} + +func (_this StandardBeacon) Equals(other StandardBeacon) bool { + switch data1 := _this.Get_().(type) { + case StandardBeacon_StandardBeacon: + { + data2, ok := other.Get_().(StandardBeacon_StandardBeacon) + return ok && data1.Base.Equals(data2.Base) && data1.Length == data2.Length && data1.Loc.Equals(data2.Loc) && data1.PartOnly == data2.PartOnly && data1.AsSet == data2.AsSet && data1.Share.Equals(data2.Share) + } + default: + { + return false // unexpected + } + } +} + +func (_this StandardBeacon) EqualsGeneric(other interface{}) bool { + typed, ok := other.(StandardBeacon) + return ok && _this.Equals(typed) +} + +func Type_StandardBeacon_() _dafny.TypeDescriptor { + return type_StandardBeacon_{} +} + +type type_StandardBeacon_ struct { +} + +func (_this type_StandardBeacon_) Default() interface{} { + return Companion_StandardBeacon_.Default() +} + +func (_this type_StandardBeacon_) String() string { + return "BaseBeacon.StandardBeacon" +} +func (_this StandardBeacon) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = StandardBeacon{} + +func (_this StandardBeacon) Hash(val _dafny.Sequence, key _dafny.Sequence) m_Wrappers.Result { + { + return ((_this).Dtor_base()).Hash(val, key, (_this).Dtor_length()) + } +} +func (_this StandardBeacon) KeyName() _dafny.Sequence { + { + if ((_this).Dtor_share()).Is_Some() { + return ((_this).Dtor_share()).Dtor_value().(_dafny.Sequence) + } else { + return ((_this).Dtor_base()).Dtor_name() + } + } +} +func (_this StandardBeacon) HashStr(val _dafny.Sequence, keys _dafny.Map) m_Wrappers.Result { + { + var _0_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need((keys).Contains((_this).KeyName()), m_DynamoDbEncryptionUtil.Companion_Default___.E(_dafny.Companion_Sequence_.Concatenate(_dafny.SeqOfString("Internal Error, no key for "), (_this).KeyName()))) + _ = _0_valueOrError0 + if (_0_valueOrError0).IsFailure() { + return (_0_valueOrError0).PropagateFailure() + } else { + var _1_str m_Wrappers.Result = m_UTF8.Encode(val) + _ = _1_str + if (_1_str).Is_Failure() { + return m_Wrappers.Companion_Result_.Create_Failure_(m_DynamoDbEncryptionUtil.Companion_Default___.E((_1_str).Dtor_error().(_dafny.Sequence))) + } else { + return (_this).Hash((_1_str).Dtor_value().(_dafny.Sequence), (keys).Get((_this).KeyName()).(_dafny.Sequence)) + } + } + } +} +func (_this StandardBeacon) ValueToSet(value m_ComAmazonawsDynamodbTypes.AttributeValue, key _dafny.Sequence) m_Wrappers.Result { + { + var _0_valueOrError0 m_Wrappers.Result = func() m_Wrappers.Result { + var _source0 m_ComAmazonawsDynamodbTypes.AttributeValue = value + _ = _source0 + { + if _source0.Is_SS() { + var _1_n _dafny.Sequence = _source0.Get_().(m_ComAmazonawsDynamodbTypes.AttributeValue_SS).SS + _ = _1_n + return (_this).BeaconizeStringSet(_1_n, key, _dafny.SeqOf()) + } + } + { + if _source0.Is_NS() { + var _2_n _dafny.Sequence = _source0.Get_().(m_ComAmazonawsDynamodbTypes.AttributeValue_NS).NS + _ = _2_n + return (_this).BeaconizeNumberSet(_2_n, key, _dafny.SeqOf()) + } + } + { + if _source0.Is_BS() { + var _3_n _dafny.Sequence = _source0.Get_().(m_ComAmazonawsDynamodbTypes.AttributeValue_BS).BS + _ = _3_n + return (_this).BeaconizeBinarySet(_3_n, key, _dafny.SeqOf()) + } + } + { + return m_Wrappers.Companion_Result_.Create_Failure_(m_DynamoDbEncryptionUtil.Companion_Default___.E(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.SeqOfString("Beacon "), ((_this).Dtor_base()).Dtor_name()), _dafny.SeqOfString(" has style AsSet, but attribute has type ")), m_DynamoDbEncryptionUtil.Companion_Default___.AttrTypeToStr(value)), _dafny.SeqOfString(".")))) + } + }() + _ = _0_valueOrError0 + if (_0_valueOrError0).IsFailure() { + return (_0_valueOrError0).PropagateFailure() + } else { + var _4_beaconSeq _dafny.Sequence = (_0_valueOrError0).Extract().(_dafny.Sequence) + _ = _4_beaconSeq + return m_Wrappers.Companion_Result_.Create_Success_(m_ComAmazonawsDynamodbTypes.Companion_AttributeValue_.Create_SS_(_4_beaconSeq)) + } + } +} +func (_this StandardBeacon) GetHash(item _dafny.Map, vf _dafny.Map, key _dafny.Sequence) m_Wrappers.Result { + { + if (_this).Dtor_asSet() { + return (_this).GetHashSet(item, key) + } else { + return (_this).GetHashNonSet(item, vf, key) + } + } +} +func (_this StandardBeacon) GetHashSet(item _dafny.Map, key _dafny.Sequence) m_Wrappers.Result { + { + var _0_value m_Wrappers.Option = m_TermLoc.Companion_Default___.TermToAttr((_this).Dtor_loc(), item, m_Wrappers.Companion_Option_.Create_None_()) + _ = _0_value + if (_0_value).Is_None() { + return m_Wrappers.Companion_Result_.Create_Success_(m_Wrappers.Companion_Option_.Create_None_()) + } else { + var _1_valueOrError0 m_Wrappers.Result = (_this).ValueToSet((_0_value).Dtor_value().(m_ComAmazonawsDynamodbTypes.AttributeValue), key) + _ = _1_valueOrError0 + if (_1_valueOrError0).IsFailure() { + return (_1_valueOrError0).PropagateFailure() + } else { + var _2_setValue m_ComAmazonawsDynamodbTypes.AttributeValue = (_1_valueOrError0).Extract().(m_ComAmazonawsDynamodbTypes.AttributeValue) + _ = _2_setValue + return m_Wrappers.Companion_Result_.Create_Success_(m_Wrappers.Companion_Option_.Create_Some_(_2_setValue)) + } + } + } +} +func (_this StandardBeacon) GetHashNonSet(item _dafny.Map, vf _dafny.Map, key _dafny.Sequence) m_Wrappers.Result { + { + var _0_valueOrError0 m_Wrappers.Result = m_DdbVirtualFields.Companion_Default___.VirtToBytes((_this).Dtor_loc(), item, vf) + _ = _0_valueOrError0 + if (_0_valueOrError0).IsFailure() { + return (_0_valueOrError0).PropagateFailure() + } else { + var _1_bytes m_Wrappers.Option = (_0_valueOrError0).Extract().(m_Wrappers.Option) + _ = _1_bytes + if (_1_bytes).Is_None() { + return m_Wrappers.Companion_Result_.Create_Success_(m_Wrappers.Companion_Option_.Create_None_()) + } else { + var _2_valueOrError1 m_Wrappers.Result = (_this).Hash((_1_bytes).Dtor_value().(_dafny.Sequence), key) + _ = _2_valueOrError1 + if (_2_valueOrError1).IsFailure() { + return (_2_valueOrError1).PropagateFailure() + } else { + var _3_res _dafny.Sequence = (_2_valueOrError1).Extract().(_dafny.Sequence) + _ = _3_res + return m_Wrappers.Companion_Result_.Create_Success_(m_Wrappers.Companion_Option_.Create_Some_(m_ComAmazonawsDynamodbTypes.Companion_AttributeValue_.Create_S_(_3_res))) + } + } + } + } +} +func (_this StandardBeacon) GetNaked(item _dafny.Map, vf _dafny.Map) m_Wrappers.Result { + { + return m_DdbVirtualFields.Companion_Default___.VirtToAttr((_this).Dtor_loc(), item, vf) + } +} +func (_this StandardBeacon) GetFields(virtualFields _dafny.Map) _dafny.Sequence { + { + if (virtualFields).Contains((((_this).Dtor_loc()).Select(0).(m_TermLoc.Selector)).Dtor_key()) { + return ((virtualFields).Get((((_this).Dtor_loc()).Select(0).(m_TermLoc.Selector)).Dtor_key()).(m_DdbVirtualFields.VirtField)).GetFields() + } else { + return _dafny.SeqOf((((_this).Dtor_loc()).Select(0).(m_TermLoc.Selector)).Dtor_key()) + } + } +} +func (_this StandardBeacon) BeaconizeStringSet(value _dafny.Sequence, key _dafny.Sequence, converted _dafny.Sequence) m_Wrappers.Result { + { + goto TAIL_CALL_START + TAIL_CALL_START: + if (_dafny.IntOfUint32((value).Cardinality())).Sign() == 0 { + return m_Wrappers.Companion_Result_.Create_Success_(converted) + } else { + var _0_valueOrError0 m_Wrappers.Result = (m_DynamoToStruct.Companion_Default___.TopLevelAttributeToBytes(m_ComAmazonawsDynamodbTypes.Companion_AttributeValue_.Create_S_((value).Select(0).(_dafny.Sequence)))).MapFailure(func(coer82 func(_dafny.Sequence) m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Error) func(interface{}) interface{} { + return func(arg106 interface{}) interface{} { + return coer82(arg106.(_dafny.Sequence)) + } + }((func(_1___this0 StandardBeacon) func(_dafny.Sequence) m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Error { + return func(_2_e _dafny.Sequence) m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Error { + return m_DynamoDbEncryptionUtil.Companion_Default___.E(_2_e) + } + })(_this))) + _ = _0_valueOrError0 + if (_0_valueOrError0).IsFailure() { + return (_0_valueOrError0).PropagateFailure() + } else { + var _3_bytes _dafny.Sequence = (_0_valueOrError0).Extract().(_dafny.Sequence) + _ = _3_bytes + var _4_valueOrError1 m_Wrappers.Result = (_this).Hash(_3_bytes, key) + _ = _4_valueOrError1 + if (_4_valueOrError1).IsFailure() { + return (_4_valueOrError1).PropagateFailure() + } else { + var _5_h _dafny.Sequence = (_4_valueOrError1).Extract().(_dafny.Sequence) + _ = _5_h + if _dafny.Companion_Sequence_.Contains(converted, _5_h) { + var _in0 StandardBeacon = _this + _ = _in0 + var _in1 _dafny.Sequence = (value).Drop(1) + _ = _in1 + var _in2 _dafny.Sequence = key + _ = _in2 + var _in3 _dafny.Sequence = converted + _ = _in3 + _this = _in0 + + value = _in1 + key = _in2 + converted = _in3 + goto TAIL_CALL_START + } else { + var _in4 StandardBeacon = _this + _ = _in4 + var _in5 _dafny.Sequence = (value).Drop(1) + _ = _in5 + var _in6 _dafny.Sequence = key + _ = _in6 + var _in7 _dafny.Sequence = _dafny.Companion_Sequence_.Concatenate(converted, _dafny.SeqOf(_5_h)) + _ = _in7 + _this = _in4 + + value = _in5 + key = _in6 + converted = _in7 + goto TAIL_CALL_START + } + } + } + } + } +} +func (_this StandardBeacon) BeaconizeNumberSet(value _dafny.Sequence, key _dafny.Sequence, converted _dafny.Sequence) m_Wrappers.Result { + { + goto TAIL_CALL_START + TAIL_CALL_START: + if (_dafny.IntOfUint32((value).Cardinality())).Sign() == 0 { + return m_Wrappers.Companion_Result_.Create_Success_(converted) + } else { + var _0_valueOrError0 m_Wrappers.Result = (m_DynamoToStruct.Companion_Default___.TopLevelAttributeToBytes(m_ComAmazonawsDynamodbTypes.Companion_AttributeValue_.Create_N_((value).Select(0).(_dafny.Sequence)))).MapFailure(func(coer83 func(_dafny.Sequence) m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Error) func(interface{}) interface{} { + return func(arg107 interface{}) interface{} { + return coer83(arg107.(_dafny.Sequence)) + } + }((func(_1___this0 StandardBeacon) func(_dafny.Sequence) m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Error { + return func(_2_e _dafny.Sequence) m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Error { + return m_DynamoDbEncryptionUtil.Companion_Default___.E(_2_e) + } + })(_this))) + _ = _0_valueOrError0 + if (_0_valueOrError0).IsFailure() { + return (_0_valueOrError0).PropagateFailure() + } else { + var _3_bytes _dafny.Sequence = (_0_valueOrError0).Extract().(_dafny.Sequence) + _ = _3_bytes + var _4_valueOrError1 m_Wrappers.Result = (_this).Hash(_3_bytes, key) + _ = _4_valueOrError1 + if (_4_valueOrError1).IsFailure() { + return (_4_valueOrError1).PropagateFailure() + } else { + var _5_h _dafny.Sequence = (_4_valueOrError1).Extract().(_dafny.Sequence) + _ = _5_h + if _dafny.Companion_Sequence_.Contains(converted, _5_h) { + var _in0 StandardBeacon = _this + _ = _in0 + var _in1 _dafny.Sequence = (value).Drop(1) + _ = _in1 + var _in2 _dafny.Sequence = key + _ = _in2 + var _in3 _dafny.Sequence = converted + _ = _in3 + _this = _in0 + + value = _in1 + key = _in2 + converted = _in3 + goto TAIL_CALL_START + } else { + var _in4 StandardBeacon = _this + _ = _in4 + var _in5 _dafny.Sequence = (value).Drop(1) + _ = _in5 + var _in6 _dafny.Sequence = key + _ = _in6 + var _in7 _dafny.Sequence = _dafny.Companion_Sequence_.Concatenate(converted, _dafny.SeqOf(_5_h)) + _ = _in7 + _this = _in4 + + value = _in5 + key = _in6 + converted = _in7 + goto TAIL_CALL_START + } + } + } + } + } +} +func (_this StandardBeacon) BeaconizeBinarySet(value _dafny.Sequence, key _dafny.Sequence, converted _dafny.Sequence) m_Wrappers.Result { + { + goto TAIL_CALL_START + TAIL_CALL_START: + if (_dafny.IntOfUint32((value).Cardinality())).Sign() == 0 { + return m_Wrappers.Companion_Result_.Create_Success_(converted) + } else { + var _0_valueOrError0 m_Wrappers.Result = (m_DynamoToStruct.Companion_Default___.TopLevelAttributeToBytes(m_ComAmazonawsDynamodbTypes.Companion_AttributeValue_.Create_B_((value).Select(0).(_dafny.Sequence)))).MapFailure(func(coer84 func(_dafny.Sequence) m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Error) func(interface{}) interface{} { + return func(arg108 interface{}) interface{} { + return coer84(arg108.(_dafny.Sequence)) + } + }((func(_1___this0 StandardBeacon) func(_dafny.Sequence) m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Error { + return func(_2_e _dafny.Sequence) m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Error { + return m_DynamoDbEncryptionUtil.Companion_Default___.E(_2_e) + } + })(_this))) + _ = _0_valueOrError0 + if (_0_valueOrError0).IsFailure() { + return (_0_valueOrError0).PropagateFailure() + } else { + var _3_bytes _dafny.Sequence = (_0_valueOrError0).Extract().(_dafny.Sequence) + _ = _3_bytes + var _4_valueOrError1 m_Wrappers.Result = (_this).Hash(_3_bytes, key) + _ = _4_valueOrError1 + if (_4_valueOrError1).IsFailure() { + return (_4_valueOrError1).PropagateFailure() + } else { + var _5_h _dafny.Sequence = (_4_valueOrError1).Extract().(_dafny.Sequence) + _ = _5_h + if _dafny.Companion_Sequence_.Contains(converted, _5_h) { + var _in0 StandardBeacon = _this + _ = _in0 + var _in1 _dafny.Sequence = (value).Drop(1) + _ = _in1 + var _in2 _dafny.Sequence = key + _ = _in2 + var _in3 _dafny.Sequence = converted + _ = _in3 + _this = _in0 + + value = _in1 + key = _in2 + converted = _in3 + goto TAIL_CALL_START + } else { + var _in4 StandardBeacon = _this + _ = _in4 + var _in5 _dafny.Sequence = (value).Drop(1) + _ = _in5 + var _in6 _dafny.Sequence = key + _ = _in6 + var _in7 _dafny.Sequence = _dafny.Companion_Sequence_.Concatenate(converted, _dafny.SeqOf(_5_h)) + _ = _in7 + _this = _in4 + + value = _in5 + key = _in6 + converted = _in7 + goto TAIL_CALL_START + } + } + } + } + } +} +func (_this StandardBeacon) GetBeaconValue(value m_ComAmazonawsDynamodbTypes.AttributeValue, key _dafny.Sequence, forContains bool) m_Wrappers.Result { + { + if ((((_this).Dtor_asSet()) && (!((value).Is_S()))) && (!((value).Is_N()))) && (!((value).Is_B())) { + return (_this).ValueToSet(value, key) + } else if (forContains) && ((((value).Is_SS()) || ((value).Is_NS())) || ((value).Is_BS())) { + return (_this).ValueToSet(value, key) + } else { + var _0_valueOrError0 m_Wrappers.Result = (m_DynamoToStruct.Companion_Default___.TopLevelAttributeToBytes(value)).MapFailure(func(coer85 func(_dafny.Sequence) m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Error) func(interface{}) interface{} { + return func(arg109 interface{}) interface{} { + return coer85(arg109.(_dafny.Sequence)) + } + }(func(_1_e _dafny.Sequence) m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Error { + return m_DynamoDbEncryptionUtil.Companion_Default___.E(_1_e) + })) + _ = _0_valueOrError0 + if (_0_valueOrError0).IsFailure() { + return (_0_valueOrError0).PropagateFailure() + } else { + var _2_bytes _dafny.Sequence = (_0_valueOrError0).Extract().(_dafny.Sequence) + _ = _2_bytes + var _3_valueOrError1 m_Wrappers.Result = (_this).Hash(_2_bytes, key) + _ = _3_valueOrError1 + if (_3_valueOrError1).IsFailure() { + return (_3_valueOrError1).PropagateFailure() + } else { + var _4_h _dafny.Sequence = (_3_valueOrError1).Extract().(_dafny.Sequence) + _ = _4_h + return m_Wrappers.Companion_Result_.Create_Success_(m_ComAmazonawsDynamodbTypes.Companion_AttributeValue_.Create_S_(_4_h)) + } + } + } + } +} +func (_this StandardBeacon) GetPart(val _dafny.Sequence, key _dafny.Sequence) m_Wrappers.Result { + { + return ((_this).Dtor_base()).Hash(val, key, (_this).Dtor_length()) + } +} + +// End of datatype StandardBeacon diff --git a/customer-preview/ddb-esdk/BatchExecuteStatementTransform/BatchExecuteStatementTransform.go b/customer-preview/ddb-esdk/BatchExecuteStatementTransform/BatchExecuteStatementTransform.go new file mode 100644 index 000000000..f107400e5 --- /dev/null +++ b/customer-preview/ddb-esdk/BatchExecuteStatementTransform/BatchExecuteStatementTransform.go @@ -0,0 +1,393 @@ +// Package BatchExecuteStatementTransform +// Dafny module BatchExecuteStatementTransform compiled into Go + +package BatchExecuteStatementTransform + +import ( + os "os" + + m_ComAmazonawsDynamodbTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/ComAmazonawsDynamodbTypes" + m_Com_Amazonaws_Dynamodb "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/Com_Amazonaws_Dynamodb" + m_ComAmazonawsKmsTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/ComAmazonawsKmsTypes" + m_Com_Amazonaws_Kms "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/Com_Amazonaws_Kms" + m_AlgorithmSuites "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AlgorithmSuites" + m_AwsArnParsing "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsArnParsing" + m_AwsCryptographyKeyStoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreOperations" + m_AwsCryptographyKeyStoreTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreTypes" + m_AwsCryptographyMaterialProvidersOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersOperations" + m_AwsCryptographyMaterialProvidersTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersTypes" + m_AwsKmsDiscoveryKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsDiscoveryKeyring" + m_AwsKmsEcdhKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsEcdhKeyring" + m_AwsKmsHierarchicalKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsHierarchicalKeyring" + m_AwsKmsKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsKeyring" + m_AwsKmsMrkAreUnique "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkAreUnique" + m_AwsKmsMrkDiscoveryKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkDiscoveryKeyring" + m_AwsKmsMrkKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkKeyring" + m_AwsKmsMrkMatchForDecrypt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkMatchForDecrypt" + m_AwsKmsRsaKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsRsaKeyring" + m_AwsKmsUtils "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsUtils" + m_CMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CMM" + m_CacheConstants "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CacheConstants" + m_CanonicalEncryptionContext "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CanonicalEncryptionContext" + m_Commitment "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Commitment" + m_Constants "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Constants" + m_CreateKeyStoreTable "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeyStoreTable" + m_CreateKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeys" + m_DDBKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DDBKeystoreOperations" + m_DefaultCMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DefaultCMM" + m_DefaultClientSupplier "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DefaultClientSupplier" + m_Defaults "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Defaults" + m_DiscoveryMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DiscoveryMultiKeyring" + m_EcdhEdkWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/EcdhEdkWrapping" + m_EdkWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/EdkWrapping" + m_ErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/ErrorMessages" + m_GetKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/GetKeys" + m_IntermediateKeyWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/IntermediateKeyWrapping" + m_KMSKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KMSKeystoreOperations" + m_KeyStore "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStore" + m_KeyStoreErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStoreErrorMessages" + m_Keyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Keyring" + m_KmsArn "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KmsArn" + m_LocalCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/LocalCMC" + m_MaterialProviders "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MaterialProviders" + m_MaterialWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MaterialWrapping" + m_Materials "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Materials" + m_MrkAwareDiscoveryMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MrkAwareDiscoveryMultiKeyring" + m_MrkAwareStrictMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MrkAwareStrictMultiKeyring" + m_MultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MultiKeyring" + m_RawAESKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawAESKeyring" + m_RawECDHKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawECDHKeyring" + m_RawRSAKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawRSAKeyring" + m_RequiredEncryptionContextCMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RequiredEncryptionContextCMM" + m_StormTracker "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StormTracker" + m_StormTrackingCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StormTrackingCMC" + m_StrictMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StrictMultiKeyring" + m_Structure "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Structure" + m_SynchronizedLocalCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/SynchronizedLocalCMC" + m_Utils "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Utils" + m_AtomicPrimitives "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AtomicPrimitives" + m_AwsCryptographyPrimitivesOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesOperations" + m_AwsCryptographyPrimitivesTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesTypes" + m_Digest "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Digest" + m_HKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/HKDF" + m_KdfCtr "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/KdfCtr" + m_Random "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Random" + m_WrappedHKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHKDF" + m_WrappedHMAC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHMAC" + m_Actions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Actions" + m_Base64 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64" + m_Base64Lemmas "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64Lemmas" + m_BoundedInts "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/BoundedInts" + m_DivInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternals" + m_DivInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternalsNonlinear" + m_DivMod "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivMod" + m_FileIO "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FileIO" + m_FloatCompare "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FloatCompare" + m_Functions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Functions" + m_GeneralInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GeneralInternals" + m_GetOpt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GetOpt" + m_HexStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/HexStrings" + m_Logarithm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Logarithm" + m__Math "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Math_" + m_ModInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternals" + m_ModInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternalsNonlinear" + m_Mul "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Mul" + m_MulInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternals" + m_MulInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternalsNonlinear" + m_Power "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Power" + m_Relations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Relations" + m_Seq "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq" + m_Seq_MergeSort "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq_MergeSort" + m_Sorting "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Sorting" + m_StandardLibrary "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary" + m_StandardLibraryInterop "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibraryInterop" + m_StandardLibrary_Sequence "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_Sequence" + m_StandardLibrary_String "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_String" + m_StandardLibrary_UInt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_UInt" + m_Streams "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Streams" + m_UnicodeStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UnicodeStrings" + m__Unicode "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Unicode_" + m_Utf16EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf16EncodingForm" + m_Utf8EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf8EncodingForm" + m_Wrappers "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers" + m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorOperations "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorOperations" + m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes" + m_AwsCryptographyDbEncryptionSdkDynamoDbOperations "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbOperations" + m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes" + m_AwsCryptographyDbEncryptionSdkDynamoDbTypes "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbTypes" + m_AwsCryptographyDbEncryptionSdkStructuredEncryptionOperations "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkStructuredEncryptionOperations" + m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes" + m_BaseBeacon "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/BaseBeacon" + m_BatchGetItemTransform "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/BatchGetItemTransform" + m_BatchWriteItemTransform "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/BatchWriteItemTransform" + m_Canonize "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/Canonize" + m_CompoundBeacon "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/CompoundBeacon" + m_DdbMiddlewareConfig "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DdbMiddlewareConfig" + m_DdbStatement "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DdbStatement" + m_DdbVirtualFields "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DdbVirtualFields" + m_DeleteItemTransform "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DeleteItemTransform" + m_DynamoDBFilterExpr "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDBFilterExpr" + m_DynamoDBSupport "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDBSupport" + m_DynamoDbEncryption "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbEncryption" + m_DynamoDbEncryptionBranchKeyIdSupplier "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbEncryptionBranchKeyIdSupplier" + m_DynamoDbEncryptionUtil "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbEncryptionUtil" + m_DynamoDbItemEncryptor "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbItemEncryptor" + m_DynamoDbItemEncryptorUtil "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbItemEncryptorUtil" + m_DynamoDbMiddlewareSupport "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbMiddlewareSupport" + m_DynamoDbNormalizeNumber "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbNormalizeNumber" + m_DynamoDbUpdateExpr "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbUpdateExpr" + m_DynamoToStruct "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoToStruct" + m_ExecuteStatementTransform "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/ExecuteStatementTransform" + m_GetItemTransform "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/GetItemTransform" + m_InternalLegacyOverride "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/InternalLegacyOverride" + m__Maps "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/Maps_" + m_PutItemTransform "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/PutItemTransform" + m_QueryTransform "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/QueryTransform" + m_ScanTransform "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/ScanTransform" + m_SearchConfigToInfo "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/SearchConfigToInfo" + m_SearchableEncryptionInfo "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/SearchableEncryptionInfo" + m_Sets "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/Sets" + m_SortCanon "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/SortCanon" + m_StructuredEncryption "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryption" + m_StructuredEncryptionCrypt "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionCrypt" + m_StructuredEncryptionFooter "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionFooter" + m_StructuredEncryptionHeader "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionHeader" + m_StructuredEncryptionPaths "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionPaths" + m_StructuredEncryptionUtil "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionUtil" + m_TermLoc "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/TermLoc" + m_TransactGetItemsTransform "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/TransactGetItemsTransform" + m_TransactWriteItemsTransform "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/TransactWriteItemsTransform" + m_UpdateItemTransform "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/UpdateItemTransform" + m__System "github.com/dafny-lang/DafnyRuntimeGo/v4/System_" + _dafny "github.com/dafny-lang/DafnyRuntimeGo/v4/dafny" +) + +var _ = os.Args +var _ _dafny.Dummy__ +var _ m__System.Dummy__ +var _ m_Wrappers.Dummy__ +var _ m_BoundedInts.Dummy__ +var _ m_StandardLibrary_UInt.Dummy__ +var _ m_StandardLibrary_Sequence.Dummy__ +var _ m_StandardLibrary_String.Dummy__ +var _ m_StandardLibrary.Dummy__ +var _ m_AwsCryptographyPrimitivesTypes.Dummy__ +var _ m_Random.Dummy__ +var _ m_Digest.Dummy__ +var _ m_WrappedHMAC.Dummy__ +var _ m_HKDF.Dummy__ +var _ m_WrappedHKDF.Dummy__ +var _ m_KdfCtr.Dummy__ +var _ m_AwsCryptographyPrimitivesOperations.Dummy__ +var _ m_AtomicPrimitives.Dummy__ +var _ m_ComAmazonawsDynamodbTypes.Dummy__ +var _ m_ComAmazonawsKmsTypes.Dummy__ +var _ m_AwsCryptographyKeyStoreTypes.Dummy__ +var _ m_AwsCryptographyMaterialProvidersTypes.Dummy__ +var _ m_Base64.Dummy__ +var _ m_AlgorithmSuites.Dummy__ +var _ m_Materials.Dummy__ +var _ m_Keyring.Dummy__ +var _ m_Relations.Dummy__ +var _ m_Seq_MergeSort.Dummy__ +var _ m__Math.Dummy__ +var _ m_Seq.Dummy__ +var _ m_MultiKeyring.Dummy__ +var _ m_AwsArnParsing.Dummy__ +var _ m_AwsKmsMrkAreUnique.Dummy__ +var _ m_Actions.Dummy__ +var _ m_AwsKmsMrkMatchForDecrypt.Dummy__ +var _ m_AwsKmsUtils.Dummy__ +var _ m_Constants.Dummy__ +var _ m_MaterialWrapping.Dummy__ +var _ m_CanonicalEncryptionContext.Dummy__ +var _ m_IntermediateKeyWrapping.Dummy__ +var _ m_EdkWrapping.Dummy__ +var _ m_ErrorMessages.Dummy__ +var _ m_AwsKmsKeyring.Dummy__ +var _ m_StrictMultiKeyring.Dummy__ +var _ m_AwsKmsDiscoveryKeyring.Dummy__ +var _ m_Com_Amazonaws_Kms.Dummy__ +var _ m_Com_Amazonaws_Dynamodb.Dummy__ +var _ m_DiscoveryMultiKeyring.Dummy__ +var _ m_AwsKmsMrkDiscoveryKeyring.Dummy__ +var _ m_MrkAwareDiscoveryMultiKeyring.Dummy__ +var _ m_AwsKmsMrkKeyring.Dummy__ +var _ m_MrkAwareStrictMultiKeyring.Dummy__ +var _ m_LocalCMC.Dummy__ +var _ m_SynchronizedLocalCMC.Dummy__ +var _ m_StormTracker.Dummy__ +var _ m_StormTrackingCMC.Dummy__ +var _ m_CacheConstants.Dummy__ +var _ m_AwsKmsHierarchicalKeyring.Dummy__ +var _ m_AwsKmsRsaKeyring.Dummy__ +var _ m_EcdhEdkWrapping.Dummy__ +var _ m_RawECDHKeyring.Dummy__ +var _ m_AwsKmsEcdhKeyring.Dummy__ +var _ m_RawAESKeyring.Dummy__ +var _ m_RawRSAKeyring.Dummy__ +var _ m_CMM.Dummy__ +var _ m_Defaults.Dummy__ +var _ m_Commitment.Dummy__ +var _ m_DefaultCMM.Dummy__ +var _ m_DefaultClientSupplier.Dummy__ +var _ m_Utils.Dummy__ +var _ m_RequiredEncryptionContextCMM.Dummy__ +var _ m_AwsCryptographyMaterialProvidersOperations.Dummy__ +var _ m_MaterialProviders.Dummy__ +var _ m_KeyStoreErrorMessages.Dummy__ +var _ m_KmsArn.Dummy__ +var _ m_Structure.Dummy__ +var _ m_KMSKeystoreOperations.Dummy__ +var _ m_DDBKeystoreOperations.Dummy__ +var _ m_CreateKeys.Dummy__ +var _ m_CreateKeyStoreTable.Dummy__ +var _ m_GetKeys.Dummy__ +var _ m_AwsCryptographyKeyStoreOperations.Dummy__ +var _ m_KeyStore.Dummy__ +var _ m__Unicode.Dummy__ +var _ m_Functions.Dummy__ +var _ m_Utf8EncodingForm.Dummy__ +var _ m_Utf16EncodingForm.Dummy__ +var _ m_UnicodeStrings.Dummy__ +var _ m_FileIO.Dummy__ +var _ m_GeneralInternals.Dummy__ +var _ m_MulInternalsNonlinear.Dummy__ +var _ m_MulInternals.Dummy__ +var _ m_Mul.Dummy__ +var _ m_ModInternalsNonlinear.Dummy__ +var _ m_DivInternalsNonlinear.Dummy__ +var _ m_ModInternals.Dummy__ +var _ m_DivInternals.Dummy__ +var _ m_DivMod.Dummy__ +var _ m_Power.Dummy__ +var _ m_Logarithm.Dummy__ +var _ m_StandardLibraryInterop.Dummy__ +var _ m_Streams.Dummy__ +var _ m_Sorting.Dummy__ +var _ m_HexStrings.Dummy__ +var _ m_GetOpt.Dummy__ +var _ m_FloatCompare.Dummy__ +var _ m_Base64Lemmas.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Dummy__ +var _ m_StructuredEncryptionUtil.Dummy__ +var _ m_Sets.Dummy__ +var _ m_StructuredEncryptionPaths.Dummy__ +var _ m_StructuredEncryptionHeader.Dummy__ +var _ m_StructuredEncryptionFooter.Dummy__ +var _ m_SortCanon.Dummy__ +var _ m_Canonize.Dummy__ +var _ m_StructuredEncryptionCrypt.Dummy__ +var _ m__Maps.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkStructuredEncryptionOperations.Dummy__ +var _ m_StructuredEncryption.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Dummy__ +var _ m_DynamoDbEncryptionUtil.Dummy__ +var _ m_DynamoDbNormalizeNumber.Dummy__ +var _ m_DynamoToStruct.Dummy__ +var _ m_DynamoDbItemEncryptorUtil.Dummy__ +var _ m_InternalLegacyOverride.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorOperations.Dummy__ +var _ m_DynamoDbItemEncryptor.Dummy__ +var _ m_DynamoDbEncryptionBranchKeyIdSupplier.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkDynamoDbOperations.Dummy__ +var _ m_DynamoDbEncryption.Dummy__ +var _ m_TermLoc.Dummy__ +var _ m_DdbVirtualFields.Dummy__ +var _ m_DynamoDbUpdateExpr.Dummy__ +var _ m_BaseBeacon.Dummy__ +var _ m_CompoundBeacon.Dummy__ +var _ m_SearchableEncryptionInfo.Dummy__ +var _ m_DynamoDBFilterExpr.Dummy__ +var _ m_DynamoDBSupport.Dummy__ +var _ m_SearchConfigToInfo.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Dummy__ +var _ m_DdbMiddlewareConfig.Dummy__ +var _ m_DdbStatement.Dummy__ +var _ m_DynamoDbMiddlewareSupport.Dummy__ +var _ m_PutItemTransform.Dummy__ +var _ m_GetItemTransform.Dummy__ +var _ m_UpdateItemTransform.Dummy__ +var _ m_BatchWriteItemTransform.Dummy__ +var _ m_TransactWriteItemsTransform.Dummy__ +var _ m_BatchGetItemTransform.Dummy__ +var _ m_ScanTransform.Dummy__ +var _ m_QueryTransform.Dummy__ +var _ m_TransactGetItemsTransform.Dummy__ +var _ m_DeleteItemTransform.Dummy__ +var _ m_ExecuteStatementTransform.Dummy__ + +type Dummy__ struct{} + +// Definition of class Default__ +type Default__ struct { + dummy byte +} + +func New_Default___() *Default__ { + _this := Default__{} + + return &_this +} + +type CompanionStruct_Default___ struct { +} + +var Companion_Default___ = CompanionStruct_Default___{} + +func (_this *Default__) Equals(other *Default__) bool { + return _this == other +} + +func (_this *Default__) EqualsGeneric(x interface{}) bool { + other, ok := x.(*Default__) + return ok && _this.Equals(other) +} + +func (*Default__) String() string { + return "BatchExecuteStatementTransform.Default__" +} +func (_this *Default__) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = &Default__{} + +func (_static *CompanionStruct_Default___) Input(config m_DdbMiddlewareConfig.Config, input m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.BatchExecuteStatementInputTransformInput) m_Wrappers.Result { + var output m_Wrappers.Result = m_Wrappers.Result{} + _ = output + var _hi0 _dafny.Int = _dafny.IntOfUint32((((input).Dtor_sdkInput()).Dtor_Statements()).Cardinality()) + _ = _hi0 + for _0_i := _dafny.Zero; _0_i.Cmp(_hi0) < 0; _0_i = _0_i.Plus(_dafny.One) { + var _1_statement _dafny.Sequence + _ = _1_statement + _1_statement = ((((input).Dtor_sdkInput()).Dtor_Statements()).Select((_0_i).Uint32()).(m_ComAmazonawsDynamodbTypes.BatchStatementRequest)).Dtor_Statement() + var _2_valueOrError0 m_Wrappers.Result = m_Wrappers.Result{} + _ = _2_valueOrError0 + _2_valueOrError0 = m_DdbMiddlewareConfig.Companion_Default___.MapString(m_DdbStatement.Companion_Default___.TableFromStatement(_1_statement)) + if (_2_valueOrError0).IsFailure() { + output = (_2_valueOrError0).PropagateFailure() + return output + } + var _3_tableName _dafny.Sequence + _ = _3_tableName + _3_tableName = (_2_valueOrError0).Extract().(_dafny.Sequence) + if ((config).Dtor_tableEncryptionConfigs()).Contains(_3_tableName) { + output = m_DdbMiddlewareConfig.Companion_Default___.MakeError(_dafny.SeqOfString("BatchExecuteStatement not Supported on encrypted tables.")) + return output + } + } + output = m_Wrappers.Companion_Result_.Create_Success_(m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_BatchExecuteStatementInputTransformOutput_.Create_BatchExecuteStatementInputTransformOutput_((input).Dtor_sdkInput())) + return output + return output +} +func (_static *CompanionStruct_Default___) Output(config m_DdbMiddlewareConfig.Config, input m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.BatchExecuteStatementOutputTransformInput) m_Wrappers.Result { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_BatchExecuteStatementOutputTransformOutput_.Default()) + _ = output + output = m_Wrappers.Companion_Result_.Create_Success_(m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_BatchExecuteStatementOutputTransformOutput_.Create_BatchExecuteStatementOutputTransformOutput_((input).Dtor_sdkOutput())) + return output + return output +} + +// End of class Default__ diff --git a/customer-preview/ddb-esdk/BatchGetItemTransform/BatchGetItemTransform.go b/customer-preview/ddb-esdk/BatchGetItemTransform/BatchGetItemTransform.go new file mode 100644 index 000000000..a0247e663 --- /dev/null +++ b/customer-preview/ddb-esdk/BatchGetItemTransform/BatchGetItemTransform.go @@ -0,0 +1,441 @@ +// Package BatchGetItemTransform +// Dafny module BatchGetItemTransform compiled into Go + +package BatchGetItemTransform + +import ( + os "os" + + m_ComAmazonawsDynamodbTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/ComAmazonawsDynamodbTypes" + m_Com_Amazonaws_Dynamodb "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/Com_Amazonaws_Dynamodb" + m_ComAmazonawsKmsTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/ComAmazonawsKmsTypes" + m_Com_Amazonaws_Kms "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/Com_Amazonaws_Kms" + m_AlgorithmSuites "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AlgorithmSuites" + m_AwsArnParsing "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsArnParsing" + m_AwsCryptographyKeyStoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreOperations" + m_AwsCryptographyKeyStoreTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreTypes" + m_AwsCryptographyMaterialProvidersOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersOperations" + m_AwsCryptographyMaterialProvidersTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersTypes" + m_AwsKmsDiscoveryKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsDiscoveryKeyring" + m_AwsKmsEcdhKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsEcdhKeyring" + m_AwsKmsHierarchicalKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsHierarchicalKeyring" + m_AwsKmsKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsKeyring" + m_AwsKmsMrkAreUnique "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkAreUnique" + m_AwsKmsMrkDiscoveryKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkDiscoveryKeyring" + m_AwsKmsMrkKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkKeyring" + m_AwsKmsMrkMatchForDecrypt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkMatchForDecrypt" + m_AwsKmsRsaKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsRsaKeyring" + m_AwsKmsUtils "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsUtils" + m_CMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CMM" + m_CacheConstants "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CacheConstants" + m_CanonicalEncryptionContext "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CanonicalEncryptionContext" + m_Commitment "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Commitment" + m_Constants "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Constants" + m_CreateKeyStoreTable "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeyStoreTable" + m_CreateKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeys" + m_DDBKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DDBKeystoreOperations" + m_DefaultCMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DefaultCMM" + m_DefaultClientSupplier "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DefaultClientSupplier" + m_Defaults "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Defaults" + m_DiscoveryMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DiscoveryMultiKeyring" + m_EcdhEdkWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/EcdhEdkWrapping" + m_EdkWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/EdkWrapping" + m_ErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/ErrorMessages" + m_GetKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/GetKeys" + m_IntermediateKeyWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/IntermediateKeyWrapping" + m_KMSKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KMSKeystoreOperations" + m_KeyStore "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStore" + m_KeyStoreErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStoreErrorMessages" + m_Keyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Keyring" + m_KmsArn "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KmsArn" + m_LocalCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/LocalCMC" + m_MaterialProviders "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MaterialProviders" + m_MaterialWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MaterialWrapping" + m_Materials "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Materials" + m_MrkAwareDiscoveryMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MrkAwareDiscoveryMultiKeyring" + m_MrkAwareStrictMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MrkAwareStrictMultiKeyring" + m_MultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MultiKeyring" + m_RawAESKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawAESKeyring" + m_RawECDHKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawECDHKeyring" + m_RawRSAKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawRSAKeyring" + m_RequiredEncryptionContextCMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RequiredEncryptionContextCMM" + m_StormTracker "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StormTracker" + m_StormTrackingCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StormTrackingCMC" + m_StrictMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StrictMultiKeyring" + m_Structure "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Structure" + m_SynchronizedLocalCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/SynchronizedLocalCMC" + m_Utils "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Utils" + m_AtomicPrimitives "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AtomicPrimitives" + m_AwsCryptographyPrimitivesOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesOperations" + m_AwsCryptographyPrimitivesTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesTypes" + m_Digest "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Digest" + m_HKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/HKDF" + m_KdfCtr "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/KdfCtr" + m_Random "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Random" + m_WrappedHKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHKDF" + m_WrappedHMAC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHMAC" + m_Actions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Actions" + m_Base64 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64" + m_Base64Lemmas "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64Lemmas" + m_BoundedInts "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/BoundedInts" + m_DivInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternals" + m_DivInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternalsNonlinear" + m_DivMod "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivMod" + m_FileIO "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FileIO" + m_FloatCompare "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FloatCompare" + m_Functions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Functions" + m_GeneralInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GeneralInternals" + m_GetOpt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GetOpt" + m_HexStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/HexStrings" + m_Logarithm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Logarithm" + m__Math "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Math_" + m_ModInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternals" + m_ModInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternalsNonlinear" + m_Mul "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Mul" + m_MulInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternals" + m_MulInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternalsNonlinear" + m_Power "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Power" + m_Relations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Relations" + m_Seq "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq" + m_Seq_MergeSort "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq_MergeSort" + m_SortedSets "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/SortedSets" + m_Sorting "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Sorting" + m_StandardLibrary "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary" + m_StandardLibraryInterop "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibraryInterop" + m_StandardLibrary_Sequence "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_Sequence" + m_StandardLibrary_String "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_String" + m_StandardLibrary_UInt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_UInt" + m_Streams "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Streams" + m_UnicodeStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UnicodeStrings" + m__Unicode "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Unicode_" + m_Utf16EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf16EncodingForm" + m_Utf8EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf8EncodingForm" + m_Wrappers "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers" + m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorOperations "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorOperations" + m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes" + m_AwsCryptographyDbEncryptionSdkDynamoDbOperations "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbOperations" + m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes" + m_AwsCryptographyDbEncryptionSdkDynamoDbTypes "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbTypes" + m_AwsCryptographyDbEncryptionSdkStructuredEncryptionOperations "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkStructuredEncryptionOperations" + m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes" + m_BaseBeacon "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/BaseBeacon" + m_BatchWriteItemTransform "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/BatchWriteItemTransform" + m_Canonize "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/Canonize" + m_CompoundBeacon "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/CompoundBeacon" + m_DdbMiddlewareConfig "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DdbMiddlewareConfig" + m_DdbStatement "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DdbStatement" + m_DdbVirtualFields "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DdbVirtualFields" + m_DynamoDBFilterExpr "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDBFilterExpr" + m_DynamoDBSupport "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDBSupport" + m_DynamoDbEncryption "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbEncryption" + m_DynamoDbEncryptionBranchKeyIdSupplier "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbEncryptionBranchKeyIdSupplier" + m_DynamoDbEncryptionUtil "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbEncryptionUtil" + m_DynamoDbItemEncryptor "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbItemEncryptor" + m_DynamoDbItemEncryptorUtil "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbItemEncryptorUtil" + m_DynamoDbMiddlewareSupport "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbMiddlewareSupport" + m_DynamoDbNormalizeNumber "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbNormalizeNumber" + m_DynamoDbUpdateExpr "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbUpdateExpr" + m_DynamoToStruct "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoToStruct" + m_GetItemTransform "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/GetItemTransform" + m_InternalLegacyOverride "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/InternalLegacyOverride" + m__Maps "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/Maps_" + m_PutItemTransform "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/PutItemTransform" + m_SearchConfigToInfo "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/SearchConfigToInfo" + m_SearchableEncryptionInfo "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/SearchableEncryptionInfo" + m_Sets "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/Sets" + m_SortCanon "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/SortCanon" + m_StructuredEncryption "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryption" + m_StructuredEncryptionCrypt "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionCrypt" + m_StructuredEncryptionFooter "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionFooter" + m_StructuredEncryptionHeader "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionHeader" + m_StructuredEncryptionPaths "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionPaths" + m_StructuredEncryptionUtil "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionUtil" + m_TermLoc "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/TermLoc" + m_TransactWriteItemsTransform "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/TransactWriteItemsTransform" + m_UpdateItemTransform "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/UpdateItemTransform" + m__System "github.com/dafny-lang/DafnyRuntimeGo/v4/System_" + _dafny "github.com/dafny-lang/DafnyRuntimeGo/v4/dafny" +) + +var _ = os.Args +var _ _dafny.Dummy__ +var _ m__System.Dummy__ +var _ m_Wrappers.Dummy__ +var _ m_BoundedInts.Dummy__ +var _ m_StandardLibrary_UInt.Dummy__ +var _ m_StandardLibrary_Sequence.Dummy__ +var _ m_StandardLibrary_String.Dummy__ +var _ m_StandardLibrary.Dummy__ +var _ m_AwsCryptographyPrimitivesTypes.Dummy__ +var _ m_Random.Dummy__ +var _ m_Digest.Dummy__ +var _ m_WrappedHMAC.Dummy__ +var _ m_HKDF.Dummy__ +var _ m_WrappedHKDF.Dummy__ +var _ m_KdfCtr.Dummy__ +var _ m_AwsCryptographyPrimitivesOperations.Dummy__ +var _ m_AtomicPrimitives.Dummy__ +var _ m_ComAmazonawsDynamodbTypes.Dummy__ +var _ m_ComAmazonawsKmsTypes.Dummy__ +var _ m_AwsCryptographyKeyStoreTypes.Dummy__ +var _ m_AwsCryptographyMaterialProvidersTypes.Dummy__ +var _ m_Base64.Dummy__ +var _ m_AlgorithmSuites.Dummy__ +var _ m_Materials.Dummy__ +var _ m_Keyring.Dummy__ +var _ m_Relations.Dummy__ +var _ m_Seq_MergeSort.Dummy__ +var _ m__Math.Dummy__ +var _ m_Seq.Dummy__ +var _ m_MultiKeyring.Dummy__ +var _ m_AwsArnParsing.Dummy__ +var _ m_AwsKmsMrkAreUnique.Dummy__ +var _ m_Actions.Dummy__ +var _ m_AwsKmsMrkMatchForDecrypt.Dummy__ +var _ m_AwsKmsUtils.Dummy__ +var _ m_Constants.Dummy__ +var _ m_MaterialWrapping.Dummy__ +var _ m_CanonicalEncryptionContext.Dummy__ +var _ m_IntermediateKeyWrapping.Dummy__ +var _ m_EdkWrapping.Dummy__ +var _ m_ErrorMessages.Dummy__ +var _ m_AwsKmsKeyring.Dummy__ +var _ m_StrictMultiKeyring.Dummy__ +var _ m_AwsKmsDiscoveryKeyring.Dummy__ +var _ m_Com_Amazonaws_Kms.Dummy__ +var _ m_Com_Amazonaws_Dynamodb.Dummy__ +var _ m_DiscoveryMultiKeyring.Dummy__ +var _ m_AwsKmsMrkDiscoveryKeyring.Dummy__ +var _ m_MrkAwareDiscoveryMultiKeyring.Dummy__ +var _ m_AwsKmsMrkKeyring.Dummy__ +var _ m_MrkAwareStrictMultiKeyring.Dummy__ +var _ m_LocalCMC.Dummy__ +var _ m_SynchronizedLocalCMC.Dummy__ +var _ m_StormTracker.Dummy__ +var _ m_StormTrackingCMC.Dummy__ +var _ m_CacheConstants.Dummy__ +var _ m_AwsKmsHierarchicalKeyring.Dummy__ +var _ m_AwsKmsRsaKeyring.Dummy__ +var _ m_EcdhEdkWrapping.Dummy__ +var _ m_RawECDHKeyring.Dummy__ +var _ m_AwsKmsEcdhKeyring.Dummy__ +var _ m_RawAESKeyring.Dummy__ +var _ m_RawRSAKeyring.Dummy__ +var _ m_CMM.Dummy__ +var _ m_Defaults.Dummy__ +var _ m_Commitment.Dummy__ +var _ m_DefaultCMM.Dummy__ +var _ m_DefaultClientSupplier.Dummy__ +var _ m_Utils.Dummy__ +var _ m_RequiredEncryptionContextCMM.Dummy__ +var _ m_AwsCryptographyMaterialProvidersOperations.Dummy__ +var _ m_MaterialProviders.Dummy__ +var _ m_KeyStoreErrorMessages.Dummy__ +var _ m_KmsArn.Dummy__ +var _ m_Structure.Dummy__ +var _ m_KMSKeystoreOperations.Dummy__ +var _ m_DDBKeystoreOperations.Dummy__ +var _ m_CreateKeys.Dummy__ +var _ m_CreateKeyStoreTable.Dummy__ +var _ m_GetKeys.Dummy__ +var _ m_AwsCryptographyKeyStoreOperations.Dummy__ +var _ m_KeyStore.Dummy__ +var _ m__Unicode.Dummy__ +var _ m_Functions.Dummy__ +var _ m_Utf8EncodingForm.Dummy__ +var _ m_Utf16EncodingForm.Dummy__ +var _ m_UnicodeStrings.Dummy__ +var _ m_FileIO.Dummy__ +var _ m_GeneralInternals.Dummy__ +var _ m_MulInternalsNonlinear.Dummy__ +var _ m_MulInternals.Dummy__ +var _ m_Mul.Dummy__ +var _ m_ModInternalsNonlinear.Dummy__ +var _ m_DivInternalsNonlinear.Dummy__ +var _ m_ModInternals.Dummy__ +var _ m_DivInternals.Dummy__ +var _ m_DivMod.Dummy__ +var _ m_Power.Dummy__ +var _ m_Logarithm.Dummy__ +var _ m_StandardLibraryInterop.Dummy__ +var _ m_Streams.Dummy__ +var _ m_Sorting.Dummy__ +var _ m_HexStrings.Dummy__ +var _ m_GetOpt.Dummy__ +var _ m_FloatCompare.Dummy__ +var _ m_Base64Lemmas.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Dummy__ +var _ m_StructuredEncryptionUtil.Dummy__ +var _ m_Sets.Dummy__ +var _ m_StructuredEncryptionPaths.Dummy__ +var _ m_StructuredEncryptionHeader.Dummy__ +var _ m_StructuredEncryptionFooter.Dummy__ +var _ m_SortCanon.Dummy__ +var _ m_Canonize.Dummy__ +var _ m_StructuredEncryptionCrypt.Dummy__ +var _ m__Maps.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkStructuredEncryptionOperations.Dummy__ +var _ m_StructuredEncryption.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Dummy__ +var _ m_DynamoDbEncryptionUtil.Dummy__ +var _ m_DynamoDbNormalizeNumber.Dummy__ +var _ m_DynamoToStruct.Dummy__ +var _ m_DynamoDbItemEncryptorUtil.Dummy__ +var _ m_InternalLegacyOverride.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorOperations.Dummy__ +var _ m_DynamoDbItemEncryptor.Dummy__ +var _ m_DynamoDbEncryptionBranchKeyIdSupplier.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkDynamoDbOperations.Dummy__ +var _ m_DynamoDbEncryption.Dummy__ +var _ m_TermLoc.Dummy__ +var _ m_DdbVirtualFields.Dummy__ +var _ m_DynamoDbUpdateExpr.Dummy__ +var _ m_BaseBeacon.Dummy__ +var _ m_CompoundBeacon.Dummy__ +var _ m_SearchableEncryptionInfo.Dummy__ +var _ m_DynamoDBFilterExpr.Dummy__ +var _ m_DynamoDBSupport.Dummy__ +var _ m_SearchConfigToInfo.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Dummy__ +var _ m_DdbMiddlewareConfig.Dummy__ +var _ m_DdbStatement.Dummy__ +var _ m_DynamoDbMiddlewareSupport.Dummy__ +var _ m_PutItemTransform.Dummy__ +var _ m_GetItemTransform.Dummy__ +var _ m_UpdateItemTransform.Dummy__ +var _ m_BatchWriteItemTransform.Dummy__ +var _ m_TransactWriteItemsTransform.Dummy__ + +type Dummy__ struct{} + +// Definition of class Default__ +type Default__ struct { + dummy byte +} + +func New_Default___() *Default__ { + _this := Default__{} + + return &_this +} + +type CompanionStruct_Default___ struct { +} + +var Companion_Default___ = CompanionStruct_Default___{} + +func (_this *Default__) Equals(other *Default__) bool { + return _this == other +} + +func (_this *Default__) EqualsGeneric(x interface{}) bool { + other, ok := x.(*Default__) + return ok && _this.Equals(other) +} + +func (*Default__) String() string { + return "BatchGetItemTransform.Default__" +} +func (_this *Default__) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = &Default__{} + +func (_static *CompanionStruct_Default___) Input(config m_DdbMiddlewareConfig.Config, input m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.BatchGetItemInputTransformInput) m_Wrappers.Result { + var output m_Wrappers.Result = m_Wrappers.Result{} + _ = output + output = m_Wrappers.Companion_Result_.Create_Success_(m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_BatchGetItemInputTransformOutput_.Create_BatchGetItemInputTransformOutput_((input).Dtor_sdkInput())) + return output + return output +} +func (_static *CompanionStruct_Default___) Output(config m_DdbMiddlewareConfig.Config, input m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.BatchGetItemOutputTransformInput) m_Wrappers.Result { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_BatchGetItemOutputTransformOutput_.Default()) + _ = output + if m_DynamoDbMiddlewareSupport.Companion_Default___.NoMap(((input).Dtor_sdkOutput()).Dtor_Responses()) { + output = m_Wrappers.Companion_Result_.Create_Success_(m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_BatchGetItemOutputTransformOutput_.Create_BatchGetItemOutputTransformOutput_((input).Dtor_sdkOutput())) + return output + } + var _0_tableNames _dafny.Set + _ = _0_tableNames + _0_tableNames = ((((input).Dtor_sdkOutput()).Dtor_Responses()).Dtor_value().(_dafny.Map)).Keys() + var _1_tableNamesSeq _dafny.Sequence + _ = _1_tableNamesSeq + var _out0 _dafny.Sequence + _ = _out0 + _out0 = m_SortedSets.SetToSequence(_0_tableNames) + _1_tableNamesSeq = _out0 + var _2_i _dafny.Int + _ = _2_i + _2_i = _dafny.Zero + var _3_result _dafny.Map + _ = _3_result + _3_result = _dafny.NewMapBuilder().ToMap() + for (_2_i).Cmp(_dafny.IntOfUint32((_1_tableNamesSeq).Cardinality())) < 0 { + var _4_tableName _dafny.Sequence + _ = _4_tableName + _4_tableName = (_1_tableNamesSeq).Select((_2_i).Uint32()).(_dafny.Sequence) + var _5_responses _dafny.Sequence + _ = _5_responses + _5_responses = ((((input).Dtor_sdkOutput()).Dtor_Responses()).Dtor_value().(_dafny.Map)).Get(_4_tableName).(_dafny.Sequence) + if ((config).Dtor_tableEncryptionConfigs()).Contains(_4_tableName) { + var _6_tableConfig m_DdbMiddlewareConfig.TableConfig + _ = _6_tableConfig + _6_tableConfig = ((config).Dtor_tableEncryptionConfigs()).Get(_4_tableName).(m_DdbMiddlewareConfig.TableConfig) + var _7_decryptedItem _dafny.Sequence + _ = _7_decryptedItem + _7_decryptedItem = _dafny.SeqOf() + var _hi0 _dafny.Int = _dafny.IntOfUint32((_5_responses).Cardinality()) + _ = _hi0 + for _8_x := _dafny.Zero; _8_x.Cmp(_hi0) < 0; _8_x = _8_x.Plus(_dafny.One) { + var _9_decryptRes m_Wrappers.Result + _ = _9_decryptRes + var _out1 m_Wrappers.Result + _ = _out1 + _out1 = ((_6_tableConfig).Dtor_itemEncryptor()).DecryptItem(m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Companion_DecryptItemInput_.Create_DecryptItemInput_((_5_responses).Select((_8_x).Uint32()).(_dafny.Map))) + _9_decryptRes = _out1 + var _10_valueOrError0 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Companion_DecryptItemOutput_.Default()) + _ = _10_valueOrError0 + _10_valueOrError0 = m_DdbMiddlewareConfig.Companion_Default___.MapError(_9_decryptRes) + if (_10_valueOrError0).IsFailure() { + output = (_10_valueOrError0).PropagateFailure() + return output + } + var _11_decrypted m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.DecryptItemOutput + _ = _11_decrypted + _11_decrypted = (_10_valueOrError0).Extract().(m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.DecryptItemOutput) + var _12_valueOrError1 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptyMap) + _ = _12_valueOrError1 + _12_valueOrError1 = m_DynamoDbMiddlewareSupport.Companion_Default___.RemoveBeacons(_6_tableConfig, (_11_decrypted).Dtor_plaintextItem()) + if (_12_valueOrError1).IsFailure() { + output = (_12_valueOrError1).PropagateFailure() + return output + } + var _13_item _dafny.Map + _ = _13_item + _13_item = (_12_valueOrError1).Extract().(_dafny.Map) + _7_decryptedItem = _dafny.Companion_Sequence_.Concatenate(_7_decryptedItem, _dafny.SeqOf(_13_item)) + } + _3_result = (_3_result).Merge(_dafny.NewMapBuilder().ToMap().UpdateUnsafe(_4_tableName, _7_decryptedItem)) + } else { + _3_result = (_3_result).Merge(_dafny.NewMapBuilder().ToMap().UpdateUnsafe(_4_tableName, _5_responses)) + } + _2_i = (_2_i).Plus(_dafny.One) + } + var _pat_let_tv0 = _3_result + _ = _pat_let_tv0 + output = m_Wrappers.Companion_Result_.Create_Success_(m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_BatchGetItemOutputTransformOutput_.Create_BatchGetItemOutputTransformOutput_(func(_pat_let39_0 m_ComAmazonawsDynamodbTypes.BatchGetItemOutput) m_ComAmazonawsDynamodbTypes.BatchGetItemOutput { + return func(_14_dt__update__tmp_h0 m_ComAmazonawsDynamodbTypes.BatchGetItemOutput) m_ComAmazonawsDynamodbTypes.BatchGetItemOutput { + return func(_pat_let40_0 m_Wrappers.Option) m_ComAmazonawsDynamodbTypes.BatchGetItemOutput { + return func(_15_dt__update_hResponses_h0 m_Wrappers.Option) m_ComAmazonawsDynamodbTypes.BatchGetItemOutput { + return m_ComAmazonawsDynamodbTypes.Companion_BatchGetItemOutput_.Create_BatchGetItemOutput_(_15_dt__update_hResponses_h0, (_14_dt__update__tmp_h0).Dtor_UnprocessedKeys(), (_14_dt__update__tmp_h0).Dtor_ConsumedCapacity()) + }(_pat_let40_0) + }(m_Wrappers.Companion_Option_.Create_Some_(_pat_let_tv0)) + }(_pat_let39_0) + }((input).Dtor_sdkOutput()))) + return output + return output +} + +// End of class Default__ diff --git a/customer-preview/ddb-esdk/BatchWriteItemTransform/BatchWriteItemTransform.go b/customer-preview/ddb-esdk/BatchWriteItemTransform/BatchWriteItemTransform.go new file mode 100644 index 000000000..e1e3b4aa9 --- /dev/null +++ b/customer-preview/ddb-esdk/BatchWriteItemTransform/BatchWriteItemTransform.go @@ -0,0 +1,629 @@ +// Package BatchWriteItemTransform +// Dafny module BatchWriteItemTransform compiled into Go + +package BatchWriteItemTransform + +import ( + os "os" + + m_ComAmazonawsDynamodbTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/ComAmazonawsDynamodbTypes" + m_Com_Amazonaws_Dynamodb "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/Com_Amazonaws_Dynamodb" + m_ComAmazonawsKmsTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/ComAmazonawsKmsTypes" + m_Com_Amazonaws_Kms "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/Com_Amazonaws_Kms" + m_AlgorithmSuites "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AlgorithmSuites" + m_AwsArnParsing "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsArnParsing" + m_AwsCryptographyKeyStoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreOperations" + m_AwsCryptographyKeyStoreTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreTypes" + m_AwsCryptographyMaterialProvidersOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersOperations" + m_AwsCryptographyMaterialProvidersTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersTypes" + m_AwsKmsDiscoveryKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsDiscoveryKeyring" + m_AwsKmsEcdhKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsEcdhKeyring" + m_AwsKmsHierarchicalKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsHierarchicalKeyring" + m_AwsKmsKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsKeyring" + m_AwsKmsMrkAreUnique "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkAreUnique" + m_AwsKmsMrkDiscoveryKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkDiscoveryKeyring" + m_AwsKmsMrkKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkKeyring" + m_AwsKmsMrkMatchForDecrypt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkMatchForDecrypt" + m_AwsKmsRsaKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsRsaKeyring" + m_AwsKmsUtils "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsUtils" + m_CMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CMM" + m_CacheConstants "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CacheConstants" + m_CanonicalEncryptionContext "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CanonicalEncryptionContext" + m_Commitment "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Commitment" + m_Constants "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Constants" + m_CreateKeyStoreTable "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeyStoreTable" + m_CreateKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeys" + m_DDBKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DDBKeystoreOperations" + m_DefaultCMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DefaultCMM" + m_DefaultClientSupplier "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DefaultClientSupplier" + m_Defaults "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Defaults" + m_DiscoveryMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DiscoveryMultiKeyring" + m_EcdhEdkWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/EcdhEdkWrapping" + m_EdkWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/EdkWrapping" + m_ErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/ErrorMessages" + m_GetKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/GetKeys" + m_IntermediateKeyWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/IntermediateKeyWrapping" + m_KMSKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KMSKeystoreOperations" + m_KeyStore "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStore" + m_KeyStoreErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStoreErrorMessages" + m_Keyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Keyring" + m_KmsArn "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KmsArn" + m_LocalCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/LocalCMC" + m_MaterialProviders "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MaterialProviders" + m_MaterialWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MaterialWrapping" + m_Materials "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Materials" + m_MrkAwareDiscoveryMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MrkAwareDiscoveryMultiKeyring" + m_MrkAwareStrictMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MrkAwareStrictMultiKeyring" + m_MultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MultiKeyring" + m_RawAESKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawAESKeyring" + m_RawECDHKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawECDHKeyring" + m_RawRSAKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawRSAKeyring" + m_RequiredEncryptionContextCMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RequiredEncryptionContextCMM" + m_StormTracker "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StormTracker" + m_StormTrackingCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StormTrackingCMC" + m_StrictMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StrictMultiKeyring" + m_Structure "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Structure" + m_SynchronizedLocalCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/SynchronizedLocalCMC" + m_Utils "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Utils" + m_AtomicPrimitives "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AtomicPrimitives" + m_AwsCryptographyPrimitivesOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesOperations" + m_AwsCryptographyPrimitivesTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesTypes" + m_Digest "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Digest" + m_HKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/HKDF" + m_KdfCtr "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/KdfCtr" + m_Random "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Random" + m_WrappedHKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHKDF" + m_WrappedHMAC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHMAC" + m_Actions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Actions" + m_Base64 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64" + m_Base64Lemmas "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64Lemmas" + m_BoundedInts "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/BoundedInts" + m_DivInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternals" + m_DivInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternalsNonlinear" + m_DivMod "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivMod" + m_FileIO "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FileIO" + m_FloatCompare "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FloatCompare" + m_Functions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Functions" + m_GeneralInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GeneralInternals" + m_GetOpt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GetOpt" + m_HexStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/HexStrings" + m_Logarithm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Logarithm" + m__Math "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Math_" + m_ModInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternals" + m_ModInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternalsNonlinear" + m_Mul "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Mul" + m_MulInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternals" + m_MulInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternalsNonlinear" + m_Power "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Power" + m_Relations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Relations" + m_Seq "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq" + m_Seq_MergeSort "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq_MergeSort" + m_SortedSets "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/SortedSets" + m_Sorting "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Sorting" + m_StandardLibrary "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary" + m_StandardLibraryInterop "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibraryInterop" + m_StandardLibrary_Sequence "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_Sequence" + m_StandardLibrary_String "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_String" + m_StandardLibrary_UInt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_UInt" + m_Streams "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Streams" + m_UnicodeStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UnicodeStrings" + m__Unicode "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Unicode_" + m_Utf16EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf16EncodingForm" + m_Utf8EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf8EncodingForm" + m_Wrappers "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers" + m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorOperations "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorOperations" + m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes" + m_AwsCryptographyDbEncryptionSdkDynamoDbOperations "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbOperations" + m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes" + m_AwsCryptographyDbEncryptionSdkDynamoDbTypes "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbTypes" + m_AwsCryptographyDbEncryptionSdkStructuredEncryptionOperations "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkStructuredEncryptionOperations" + m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes" + m_BaseBeacon "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/BaseBeacon" + m_Canonize "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/Canonize" + m_CompoundBeacon "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/CompoundBeacon" + m_DdbMiddlewareConfig "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DdbMiddlewareConfig" + m_DdbStatement "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DdbStatement" + m_DdbVirtualFields "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DdbVirtualFields" + m_DynamoDBFilterExpr "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDBFilterExpr" + m_DynamoDBSupport "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDBSupport" + m_DynamoDbEncryption "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbEncryption" + m_DynamoDbEncryptionBranchKeyIdSupplier "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbEncryptionBranchKeyIdSupplier" + m_DynamoDbEncryptionUtil "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbEncryptionUtil" + m_DynamoDbItemEncryptor "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbItemEncryptor" + m_DynamoDbItemEncryptorUtil "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbItemEncryptorUtil" + m_DynamoDbMiddlewareSupport "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbMiddlewareSupport" + m_DynamoDbNormalizeNumber "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbNormalizeNumber" + m_DynamoDbUpdateExpr "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbUpdateExpr" + m_DynamoToStruct "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoToStruct" + m_GetItemTransform "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/GetItemTransform" + m_InternalLegacyOverride "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/InternalLegacyOverride" + m__Maps "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/Maps_" + m_PutItemTransform "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/PutItemTransform" + m_SearchConfigToInfo "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/SearchConfigToInfo" + m_SearchableEncryptionInfo "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/SearchableEncryptionInfo" + m_Sets "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/Sets" + m_SortCanon "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/SortCanon" + m_StructuredEncryption "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryption" + m_StructuredEncryptionCrypt "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionCrypt" + m_StructuredEncryptionFooter "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionFooter" + m_StructuredEncryptionHeader "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionHeader" + m_StructuredEncryptionPaths "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionPaths" + m_StructuredEncryptionUtil "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionUtil" + m_TermLoc "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/TermLoc" + m_UpdateItemTransform "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/UpdateItemTransform" + m__System "github.com/dafny-lang/DafnyRuntimeGo/v4/System_" + _dafny "github.com/dafny-lang/DafnyRuntimeGo/v4/dafny" +) + +var _ = os.Args +var _ _dafny.Dummy__ +var _ m__System.Dummy__ +var _ m_Wrappers.Dummy__ +var _ m_BoundedInts.Dummy__ +var _ m_StandardLibrary_UInt.Dummy__ +var _ m_StandardLibrary_Sequence.Dummy__ +var _ m_StandardLibrary_String.Dummy__ +var _ m_StandardLibrary.Dummy__ +var _ m_AwsCryptographyPrimitivesTypes.Dummy__ +var _ m_Random.Dummy__ +var _ m_Digest.Dummy__ +var _ m_WrappedHMAC.Dummy__ +var _ m_HKDF.Dummy__ +var _ m_WrappedHKDF.Dummy__ +var _ m_KdfCtr.Dummy__ +var _ m_AwsCryptographyPrimitivesOperations.Dummy__ +var _ m_AtomicPrimitives.Dummy__ +var _ m_ComAmazonawsDynamodbTypes.Dummy__ +var _ m_ComAmazonawsKmsTypes.Dummy__ +var _ m_AwsCryptographyKeyStoreTypes.Dummy__ +var _ m_AwsCryptographyMaterialProvidersTypes.Dummy__ +var _ m_Base64.Dummy__ +var _ m_AlgorithmSuites.Dummy__ +var _ m_Materials.Dummy__ +var _ m_Keyring.Dummy__ +var _ m_Relations.Dummy__ +var _ m_Seq_MergeSort.Dummy__ +var _ m__Math.Dummy__ +var _ m_Seq.Dummy__ +var _ m_MultiKeyring.Dummy__ +var _ m_AwsArnParsing.Dummy__ +var _ m_AwsKmsMrkAreUnique.Dummy__ +var _ m_Actions.Dummy__ +var _ m_AwsKmsMrkMatchForDecrypt.Dummy__ +var _ m_AwsKmsUtils.Dummy__ +var _ m_Constants.Dummy__ +var _ m_MaterialWrapping.Dummy__ +var _ m_CanonicalEncryptionContext.Dummy__ +var _ m_IntermediateKeyWrapping.Dummy__ +var _ m_EdkWrapping.Dummy__ +var _ m_ErrorMessages.Dummy__ +var _ m_AwsKmsKeyring.Dummy__ +var _ m_StrictMultiKeyring.Dummy__ +var _ m_AwsKmsDiscoveryKeyring.Dummy__ +var _ m_Com_Amazonaws_Kms.Dummy__ +var _ m_Com_Amazonaws_Dynamodb.Dummy__ +var _ m_DiscoveryMultiKeyring.Dummy__ +var _ m_AwsKmsMrkDiscoveryKeyring.Dummy__ +var _ m_MrkAwareDiscoveryMultiKeyring.Dummy__ +var _ m_AwsKmsMrkKeyring.Dummy__ +var _ m_MrkAwareStrictMultiKeyring.Dummy__ +var _ m_LocalCMC.Dummy__ +var _ m_SynchronizedLocalCMC.Dummy__ +var _ m_StormTracker.Dummy__ +var _ m_StormTrackingCMC.Dummy__ +var _ m_CacheConstants.Dummy__ +var _ m_AwsKmsHierarchicalKeyring.Dummy__ +var _ m_AwsKmsRsaKeyring.Dummy__ +var _ m_EcdhEdkWrapping.Dummy__ +var _ m_RawECDHKeyring.Dummy__ +var _ m_AwsKmsEcdhKeyring.Dummy__ +var _ m_RawAESKeyring.Dummy__ +var _ m_RawRSAKeyring.Dummy__ +var _ m_CMM.Dummy__ +var _ m_Defaults.Dummy__ +var _ m_Commitment.Dummy__ +var _ m_DefaultCMM.Dummy__ +var _ m_DefaultClientSupplier.Dummy__ +var _ m_Utils.Dummy__ +var _ m_RequiredEncryptionContextCMM.Dummy__ +var _ m_AwsCryptographyMaterialProvidersOperations.Dummy__ +var _ m_MaterialProviders.Dummy__ +var _ m_KeyStoreErrorMessages.Dummy__ +var _ m_KmsArn.Dummy__ +var _ m_Structure.Dummy__ +var _ m_KMSKeystoreOperations.Dummy__ +var _ m_DDBKeystoreOperations.Dummy__ +var _ m_CreateKeys.Dummy__ +var _ m_CreateKeyStoreTable.Dummy__ +var _ m_GetKeys.Dummy__ +var _ m_AwsCryptographyKeyStoreOperations.Dummy__ +var _ m_KeyStore.Dummy__ +var _ m__Unicode.Dummy__ +var _ m_Functions.Dummy__ +var _ m_Utf8EncodingForm.Dummy__ +var _ m_Utf16EncodingForm.Dummy__ +var _ m_UnicodeStrings.Dummy__ +var _ m_FileIO.Dummy__ +var _ m_GeneralInternals.Dummy__ +var _ m_MulInternalsNonlinear.Dummy__ +var _ m_MulInternals.Dummy__ +var _ m_Mul.Dummy__ +var _ m_ModInternalsNonlinear.Dummy__ +var _ m_DivInternalsNonlinear.Dummy__ +var _ m_ModInternals.Dummy__ +var _ m_DivInternals.Dummy__ +var _ m_DivMod.Dummy__ +var _ m_Power.Dummy__ +var _ m_Logarithm.Dummy__ +var _ m_StandardLibraryInterop.Dummy__ +var _ m_Streams.Dummy__ +var _ m_Sorting.Dummy__ +var _ m_HexStrings.Dummy__ +var _ m_GetOpt.Dummy__ +var _ m_FloatCompare.Dummy__ +var _ m_Base64Lemmas.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Dummy__ +var _ m_StructuredEncryptionUtil.Dummy__ +var _ m_Sets.Dummy__ +var _ m_StructuredEncryptionPaths.Dummy__ +var _ m_StructuredEncryptionHeader.Dummy__ +var _ m_StructuredEncryptionFooter.Dummy__ +var _ m_SortCanon.Dummy__ +var _ m_Canonize.Dummy__ +var _ m_StructuredEncryptionCrypt.Dummy__ +var _ m__Maps.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkStructuredEncryptionOperations.Dummy__ +var _ m_StructuredEncryption.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Dummy__ +var _ m_DynamoDbEncryptionUtil.Dummy__ +var _ m_DynamoDbNormalizeNumber.Dummy__ +var _ m_DynamoToStruct.Dummy__ +var _ m_DynamoDbItemEncryptorUtil.Dummy__ +var _ m_InternalLegacyOverride.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorOperations.Dummy__ +var _ m_DynamoDbItemEncryptor.Dummy__ +var _ m_DynamoDbEncryptionBranchKeyIdSupplier.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkDynamoDbOperations.Dummy__ +var _ m_DynamoDbEncryption.Dummy__ +var _ m_TermLoc.Dummy__ +var _ m_DdbVirtualFields.Dummy__ +var _ m_DynamoDbUpdateExpr.Dummy__ +var _ m_BaseBeacon.Dummy__ +var _ m_CompoundBeacon.Dummy__ +var _ m_SearchableEncryptionInfo.Dummy__ +var _ m_DynamoDBFilterExpr.Dummy__ +var _ m_DynamoDBSupport.Dummy__ +var _ m_SearchConfigToInfo.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Dummy__ +var _ m_DdbMiddlewareConfig.Dummy__ +var _ m_DdbStatement.Dummy__ +var _ m_DynamoDbMiddlewareSupport.Dummy__ +var _ m_PutItemTransform.Dummy__ +var _ m_GetItemTransform.Dummy__ +var _ m_UpdateItemTransform.Dummy__ + +type Dummy__ struct{} + +// Definition of class Default__ +type Default__ struct { + dummy byte +} + +func New_Default___() *Default__ { + _this := Default__{} + + return &_this +} + +type CompanionStruct_Default___ struct { +} + +var Companion_Default___ = CompanionStruct_Default___{} + +func (_this *Default__) Equals(other *Default__) bool { + return _this == other +} + +func (_this *Default__) EqualsGeneric(x interface{}) bool { + other, ok := x.(*Default__) + return ok && _this.Equals(other) +} + +func (*Default__) String() string { + return "BatchWriteItemTransform.Default__" +} +func (_this *Default__) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = &Default__{} + +func (_static *CompanionStruct_Default___) Input(config m_DdbMiddlewareConfig.Config, input m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.BatchWriteItemInputTransformInput) m_Wrappers.Result { + var output m_Wrappers.Result = m_Wrappers.Result{} + _ = output + var _0_tableNames _dafny.Set + _ = _0_tableNames + _0_tableNames = (((input).Dtor_sdkInput()).Dtor_RequestItems()).Keys() + var _1_result _dafny.Map + _ = _1_result + _1_result = _dafny.NewMapBuilder().ToMap() + var _2_tableNamesSeq _dafny.Sequence + _ = _2_tableNamesSeq + var _out0 _dafny.Sequence + _ = _out0 + _out0 = m_SortedSets.SetToSequence(_0_tableNames) + _2_tableNamesSeq = _out0 + var _3_i _dafny.Int + _ = _3_i + _3_i = _dafny.Zero + for (_3_i).Cmp(_dafny.IntOfUint32((_2_tableNamesSeq).Cardinality())) < 0 { + var _4_tableName _dafny.Sequence + _ = _4_tableName + _4_tableName = (_2_tableNamesSeq).Select((_3_i).Uint32()).(_dafny.Sequence) + var _5_writeRequests _dafny.Sequence + _ = _5_writeRequests + _5_writeRequests = (((input).Dtor_sdkInput()).Dtor_RequestItems()).Get(_4_tableName).(_dafny.Sequence) + if !(m_DdbMiddlewareConfig.Companion_Default___.IsPlainWrite(config, _4_tableName)) { + var _6_tableConfig m_DdbMiddlewareConfig.TableConfig + _ = _6_tableConfig + _6_tableConfig = ((config).Dtor_tableEncryptionConfigs()).Get(_4_tableName).(m_DdbMiddlewareConfig.TableConfig) + var _7_encryptedItems _dafny.Sequence + _ = _7_encryptedItems + _7_encryptedItems = _dafny.SeqOf() + var _hi0 _dafny.Int = _dafny.IntOfUint32((_5_writeRequests).Cardinality()) + _ = _hi0 + for _8_x := _dafny.Zero; _8_x.Cmp(_hi0) < 0; _8_x = _8_x.Plus(_dafny.One) { + var _9_req m_ComAmazonawsDynamodbTypes.WriteRequest + _ = _9_req + _9_req = (_5_writeRequests).Select((_8_x).Uint32()).(m_ComAmazonawsDynamodbTypes.WriteRequest) + if ((_9_req).Dtor_PutRequest()).Is_None() { + _7_encryptedItems = _dafny.Companion_Sequence_.Concatenate(_7_encryptedItems, _dafny.SeqOf(_9_req)) + } else { + var _10_valueOrError0 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(false) + _ = _10_valueOrError0 + _10_valueOrError0 = m_DynamoDbMiddlewareSupport.Companion_Default___.IsWriteable(_6_tableConfig, (((_9_req).Dtor_PutRequest()).Dtor_value().(m_ComAmazonawsDynamodbTypes.PutRequest)).Dtor_Item()) + if (_10_valueOrError0).IsFailure() { + output = (_10_valueOrError0).PropagateFailure() + return output + } + var _11___v0 bool + _ = _11___v0 + _11___v0 = (_10_valueOrError0).Extract().(bool) + var _12_valueOrError1 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptyMap) + _ = _12_valueOrError1 + var _out1 m_Wrappers.Result + _ = _out1 + _out1 = m_DynamoDbMiddlewareSupport.Companion_Default___.AddSignedBeacons(_6_tableConfig, (((_9_req).Dtor_PutRequest()).Dtor_value().(m_ComAmazonawsDynamodbTypes.PutRequest)).Dtor_Item()) + _12_valueOrError1 = _out1 + if (_12_valueOrError1).IsFailure() { + output = (_12_valueOrError1).PropagateFailure() + return output + } + var _13_item _dafny.Map + _ = _13_item + _13_item = (_12_valueOrError1).Extract().(_dafny.Map) + var _14_encryptRes m_Wrappers.Result + _ = _14_encryptRes + var _out2 m_Wrappers.Result + _ = _out2 + _out2 = ((_6_tableConfig).Dtor_itemEncryptor()).EncryptItem(m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Companion_EncryptItemInput_.Create_EncryptItemInput_(_13_item)) + _14_encryptRes = _out2 + var _15_valueOrError2 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Companion_EncryptItemOutput_.Default()) + _ = _15_valueOrError2 + _15_valueOrError2 = m_DdbMiddlewareConfig.Companion_Default___.MapError(_14_encryptRes) + if (_15_valueOrError2).IsFailure() { + output = (_15_valueOrError2).PropagateFailure() + return output + } + var _16_encrypted m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.EncryptItemOutput + _ = _16_encrypted + _16_encrypted = (_15_valueOrError2).Extract().(m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.EncryptItemOutput) + var _17_valueOrError3 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_Wrappers.Companion_Option_.Default()) + _ = _17_valueOrError3 + _17_valueOrError3 = m_DynamoDbMiddlewareSupport.Companion_Default___.GetKeyIdFromHeader(_6_tableConfig, _16_encrypted) + if (_17_valueOrError3).IsFailure() { + output = (_17_valueOrError3).PropagateFailure() + return output + } + var _18_keyId m_Wrappers.Option + _ = _18_keyId + _18_keyId = (_17_valueOrError3).Extract().(m_Wrappers.Option) + var _19_valueOrError4 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptyMap) + _ = _19_valueOrError4 + var _out3 m_Wrappers.Result + _ = _out3 + _out3 = m_DynamoDbMiddlewareSupport.Companion_Default___.GetEncryptedBeacons(_6_tableConfig, (((_9_req).Dtor_PutRequest()).Dtor_value().(m_ComAmazonawsDynamodbTypes.PutRequest)).Dtor_Item(), m_DynamoDbEncryptionUtil.Companion_Default___.MaybeFromOptionKeyId(_18_keyId)) + _19_valueOrError4 = _out3 + if (_19_valueOrError4).IsFailure() { + output = (_19_valueOrError4).PropagateFailure() + return output + } + var _20_beaconAttrs _dafny.Map + _ = _20_beaconAttrs + _20_beaconAttrs = (_19_valueOrError4).Extract().(_dafny.Map) + var _pat_let_tv0 = _16_encrypted + _ = _pat_let_tv0 + var _pat_let_tv1 = _20_beaconAttrs + _ = _pat_let_tv1 + _7_encryptedItems = _dafny.Companion_Sequence_.Concatenate(_7_encryptedItems, _dafny.SeqOf(func(_pat_let31_0 m_ComAmazonawsDynamodbTypes.WriteRequest) m_ComAmazonawsDynamodbTypes.WriteRequest { + return func(_21_dt__update__tmp_h0 m_ComAmazonawsDynamodbTypes.WriteRequest) m_ComAmazonawsDynamodbTypes.WriteRequest { + return func(_pat_let32_0 m_Wrappers.Option) m_ComAmazonawsDynamodbTypes.WriteRequest { + return func(_22_dt__update_hPutRequest_h0 m_Wrappers.Option) m_ComAmazonawsDynamodbTypes.WriteRequest { + return m_ComAmazonawsDynamodbTypes.Companion_WriteRequest_.Create_WriteRequest_(_22_dt__update_hPutRequest_h0, (_21_dt__update__tmp_h0).Dtor_DeleteRequest()) + }(_pat_let32_0) + }(m_Wrappers.Companion_Option_.Create_Some_(m_ComAmazonawsDynamodbTypes.Companion_PutRequest_.Create_PutRequest_(((_pat_let_tv0).Dtor_encryptedItem()).Merge(_pat_let_tv1)))) + }(_pat_let31_0) + }(_9_req))) + } + } + _5_writeRequests = _7_encryptedItems + } + _3_i = (_3_i).Plus(_dafny.One) + _1_result = (_1_result).Update(_4_tableName, _5_writeRequests) + } + var _23_valueOrError5 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _23_valueOrError5 + _23_valueOrError5 = m_Wrappers.Companion_Default___.Need(((_1_result).Cardinality()).Cmp((((input).Dtor_sdkInput()).Dtor_RequestItems()).Cardinality()) == 0, m_DdbMiddlewareConfig.Companion_Default___.E(_dafny.SeqOfString("Internal Error"))) + if (_23_valueOrError5).IsFailure() { + output = (_23_valueOrError5).PropagateFailure() + return output + } + var _pat_let_tv2 = _1_result + _ = _pat_let_tv2 + output = m_Wrappers.Companion_Result_.Create_Success_(m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_BatchWriteItemInputTransformOutput_.Create_BatchWriteItemInputTransformOutput_(func(_pat_let33_0 m_ComAmazonawsDynamodbTypes.BatchWriteItemInput) m_ComAmazonawsDynamodbTypes.BatchWriteItemInput { + return func(_24_dt__update__tmp_h1 m_ComAmazonawsDynamodbTypes.BatchWriteItemInput) m_ComAmazonawsDynamodbTypes.BatchWriteItemInput { + return func(_pat_let34_0 _dafny.Map) m_ComAmazonawsDynamodbTypes.BatchWriteItemInput { + return func(_25_dt__update_hRequestItems_h0 _dafny.Map) m_ComAmazonawsDynamodbTypes.BatchWriteItemInput { + return m_ComAmazonawsDynamodbTypes.Companion_BatchWriteItemInput_.Create_BatchWriteItemInput_(_25_dt__update_hRequestItems_h0, (_24_dt__update__tmp_h1).Dtor_ReturnConsumedCapacity(), (_24_dt__update__tmp_h1).Dtor_ReturnItemCollectionMetrics()) + }(_pat_let34_0) + }(_pat_let_tv2) + }(_pat_let33_0) + }((input).Dtor_sdkInput()))) + return output + return output +} +func (_static *CompanionStruct_Default___) GetOrigItem(tableConfig m_DdbMiddlewareConfig.TableConfig, srcRequests _dafny.Sequence, itemReq m_ComAmazonawsDynamodbTypes.WriteRequest) m_Wrappers.Result { + var ret m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_ComAmazonawsDynamodbTypes.Companion_WriteRequest_.Default()) + _ = ret + var _0_partKey _dafny.Sequence + _ = _0_partKey + _0_partKey = (tableConfig).Dtor_partitionKeyName() + var _1_sortKey m_Wrappers.Option + _ = _1_sortKey + _1_sortKey = (tableConfig).Dtor_sortKeyName() + var _2_item _dafny.Map + _ = _2_item + _2_item = (((itemReq).Dtor_PutRequest()).Dtor_value().(m_ComAmazonawsDynamodbTypes.PutRequest)).Dtor_Item() + var _3_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _3_valueOrError0 + _3_valueOrError0 = m_Wrappers.Companion_Default___.Need((_2_item).Contains(_0_partKey), m_DdbMiddlewareConfig.Companion_Default___.E(_dafny.SeqOfString("Required partition key not in unprocessed item"))) + if (_3_valueOrError0).IsFailure() { + ret = (_3_valueOrError0).PropagateFailure() + return ret + } + var _4_valueOrError1 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _4_valueOrError1 + _4_valueOrError1 = m_Wrappers.Companion_Default___.Need(((_1_sortKey).Is_None()) || ((_2_item).Contains((_1_sortKey).Dtor_value().(_dafny.Sequence))), m_DdbMiddlewareConfig.Companion_Default___.E(_dafny.SeqOfString("Required sort key not in unprocessed item"))) + if (_4_valueOrError1).IsFailure() { + ret = (_4_valueOrError1).PropagateFailure() + return ret + } + var _hi0 _dafny.Int = _dafny.IntOfUint32((srcRequests).Cardinality()) + _ = _hi0 + for _5_i := _dafny.Zero; _5_i.Cmp(_hi0) < 0; _5_i = _5_i.Plus(_dafny.One) { + if (((srcRequests).Select((_5_i).Uint32()).(m_ComAmazonawsDynamodbTypes.WriteRequest)).Dtor_PutRequest()).Is_Some() { + var _6_req _dafny.Map + _ = _6_req + _6_req = ((((srcRequests).Select((_5_i).Uint32()).(m_ComAmazonawsDynamodbTypes.WriteRequest)).Dtor_PutRequest()).Dtor_value().(m_ComAmazonawsDynamodbTypes.PutRequest)).Dtor_Item() + if ((_6_req).Contains(_0_partKey)) && (((_6_req).Get(_0_partKey).(m_ComAmazonawsDynamodbTypes.AttributeValue)).Equals((_2_item).Get(_0_partKey).(m_ComAmazonawsDynamodbTypes.AttributeValue))) { + if ((_1_sortKey).Is_None()) || (((_6_req).Contains((_1_sortKey).Dtor_value().(_dafny.Sequence))) && (((_6_req).Get((_1_sortKey).Dtor_value().(_dafny.Sequence)).(m_ComAmazonawsDynamodbTypes.AttributeValue)).Equals((_2_item).Get((_1_sortKey).Dtor_value().(_dafny.Sequence)).(m_ComAmazonawsDynamodbTypes.AttributeValue)))) { + ret = m_Wrappers.Companion_Result_.Create_Success_((srcRequests).Select((_5_i).Uint32()).(m_ComAmazonawsDynamodbTypes.WriteRequest)) + return ret + } + } + } + } + ret = m_Wrappers.Companion_Result_.Create_Failure_(m_DdbMiddlewareConfig.Companion_Default___.E(_dafny.SeqOfString("Item in UnprocessedItems not found in original request."))) + return ret + return ret +} +func (_static *CompanionStruct_Default___) Output(config m_DdbMiddlewareConfig.Config, input m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.BatchWriteItemOutputTransformInput) m_Wrappers.Result { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_BatchWriteItemOutputTransformOutput_.Default()) + _ = output + if (((input).Dtor_sdkOutput()).Dtor_UnprocessedItems()).Is_None() { + output = m_Wrappers.Companion_Result_.Create_Success_(m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_BatchWriteItemOutputTransformOutput_.Create_BatchWriteItemOutputTransformOutput_((input).Dtor_sdkOutput())) + return output + } + var _0_srcItems _dafny.Map + _ = _0_srcItems + _0_srcItems = ((input).Dtor_originalInput()).Dtor_RequestItems() + var _1_unprocessed _dafny.Map + _ = _1_unprocessed + _1_unprocessed = (((input).Dtor_sdkOutput()).Dtor_UnprocessedItems()).Dtor_value().(_dafny.Map) + var _2_tableNames _dafny.Set + _ = _2_tableNames + _2_tableNames = (_1_unprocessed).Keys() + var _3_result _dafny.Map + _ = _3_result + _3_result = _dafny.NewMapBuilder().ToMap() + var _4_tableNamesSeq _dafny.Sequence + _ = _4_tableNamesSeq + var _out0 _dafny.Sequence + _ = _out0 + _out0 = m_SortedSets.SetToSequence(_2_tableNames) + _4_tableNamesSeq = _out0 + var _5_i _dafny.Int + _ = _5_i + _5_i = _dafny.Zero + for (_5_i).Cmp(_dafny.IntOfUint32((_4_tableNamesSeq).Cardinality())) < 0 { + var _6_tableName _dafny.Sequence + _ = _6_tableName + _6_tableName = (_4_tableNamesSeq).Select((_5_i).Uint32()).(_dafny.Sequence) + var _7_writeRequests _dafny.Sequence + _ = _7_writeRequests + _7_writeRequests = (_1_unprocessed).Get(_6_tableName).(_dafny.Sequence) + if !(m_DdbMiddlewareConfig.Companion_Default___.IsPlainWrite(config, _6_tableName)) { + if !(_0_srcItems).Contains(_6_tableName) { + output = m_Wrappers.Companion_Result_.Create_Failure_(m_DdbMiddlewareConfig.Companion_Default___.E(_dafny.Companion_Sequence_.Concatenate(_6_tableName, _dafny.SeqOfString(" in UnprocessedItems for BatchWriteItem response, but not in original request.")))) + return output + } + var _8_srcRequests _dafny.Sequence + _ = _8_srcRequests + _8_srcRequests = (_0_srcItems).Get(_6_tableName).(_dafny.Sequence) + var _9_tableConfig m_DdbMiddlewareConfig.TableConfig + _ = _9_tableConfig + _9_tableConfig = ((config).Dtor_tableEncryptionConfigs()).Get(_6_tableName).(m_DdbMiddlewareConfig.TableConfig) + var _10_origItems _dafny.Sequence + _ = _10_origItems + _10_origItems = _dafny.SeqOf() + var _hi0 _dafny.Int = _dafny.IntOfUint32((_7_writeRequests).Cardinality()) + _ = _hi0 + for _11_x := _dafny.Zero; _11_x.Cmp(_hi0) < 0; _11_x = _11_x.Plus(_dafny.One) { + var _12_req m_ComAmazonawsDynamodbTypes.WriteRequest + _ = _12_req + _12_req = (_7_writeRequests).Select((_11_x).Uint32()).(m_ComAmazonawsDynamodbTypes.WriteRequest) + if ((_12_req).Dtor_PutRequest()).Is_None() { + _10_origItems = _dafny.Companion_Sequence_.Concatenate(_10_origItems, _dafny.SeqOf(_12_req)) + } else { + var _13_valueOrError0 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_ComAmazonawsDynamodbTypes.Companion_WriteRequest_.Default()) + _ = _13_valueOrError0 + var _out1 m_Wrappers.Result + _ = _out1 + _out1 = Companion_Default___.GetOrigItem(_9_tableConfig, _8_srcRequests, _12_req) + _13_valueOrError0 = _out1 + if (_13_valueOrError0).IsFailure() { + output = (_13_valueOrError0).PropagateFailure() + return output + } + var _14_orig__item m_ComAmazonawsDynamodbTypes.WriteRequest + _ = _14_orig__item + _14_orig__item = (_13_valueOrError0).Extract().(m_ComAmazonawsDynamodbTypes.WriteRequest) + _10_origItems = _dafny.Companion_Sequence_.Concatenate(_10_origItems, _dafny.SeqOf(_14_orig__item)) + } + } + _7_writeRequests = _10_origItems + } + _5_i = (_5_i).Plus(_dafny.One) + _3_result = (_3_result).Update(_6_tableName, _7_writeRequests) + } + var _15_valueOrError1 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _15_valueOrError1 + _15_valueOrError1 = m_Wrappers.Companion_Default___.Need(((_3_result).Cardinality()).Cmp((_1_unprocessed).Cardinality()) == 0, m_DdbMiddlewareConfig.Companion_Default___.E(_dafny.SeqOfString("Internal Error"))) + if (_15_valueOrError1).IsFailure() { + output = (_15_valueOrError1).PropagateFailure() + return output + } + var _16_new__output m_ComAmazonawsDynamodbTypes.BatchWriteItemOutput + _ = _16_new__output + var _17_dt__update__tmp_h0 m_ComAmazonawsDynamodbTypes.BatchWriteItemOutput = (input).Dtor_sdkOutput() + _ = _17_dt__update__tmp_h0 + var _18_dt__update_hUnprocessedItems_h0 m_Wrappers.Option = m_Wrappers.Companion_Option_.Create_Some_(_3_result) + _ = _18_dt__update_hUnprocessedItems_h0 + _16_new__output = m_ComAmazonawsDynamodbTypes.Companion_BatchWriteItemOutput_.Create_BatchWriteItemOutput_(_18_dt__update_hUnprocessedItems_h0, (_17_dt__update__tmp_h0).Dtor_ItemCollectionMetrics(), (_17_dt__update__tmp_h0).Dtor_ConsumedCapacity()) + output = m_Wrappers.Companion_Result_.Create_Success_(m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_BatchWriteItemOutputTransformOutput_.Create_BatchWriteItemOutputTransformOutput_(_16_new__output)) + return output + return output +} + +// End of class Default__ diff --git a/customer-preview/ddb-esdk/Canonize/Canonize.go b/customer-preview/ddb-esdk/Canonize/Canonize.go new file mode 100644 index 000000000..8e433713b --- /dev/null +++ b/customer-preview/ddb-esdk/Canonize/Canonize.go @@ -0,0 +1,614 @@ +// Package Canonize +// Dafny module Canonize compiled into Go + +package Canonize + +import ( + os "os" + + m_ComAmazonawsDynamodbTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/ComAmazonawsDynamodbTypes" + m_Com_Amazonaws_Dynamodb "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/Com_Amazonaws_Dynamodb" + m_ComAmazonawsKmsTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/ComAmazonawsKmsTypes" + m_Com_Amazonaws_Kms "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/Com_Amazonaws_Kms" + m_AlgorithmSuites "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AlgorithmSuites" + m_AwsArnParsing "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsArnParsing" + m_AwsCryptographyKeyStoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreOperations" + m_AwsCryptographyKeyStoreTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreTypes" + m_AwsCryptographyMaterialProvidersOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersOperations" + m_AwsCryptographyMaterialProvidersTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersTypes" + m_AwsKmsDiscoveryKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsDiscoveryKeyring" + m_AwsKmsEcdhKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsEcdhKeyring" + m_AwsKmsHierarchicalKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsHierarchicalKeyring" + m_AwsKmsKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsKeyring" + m_AwsKmsMrkAreUnique "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkAreUnique" + m_AwsKmsMrkDiscoveryKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkDiscoveryKeyring" + m_AwsKmsMrkKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkKeyring" + m_AwsKmsMrkMatchForDecrypt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkMatchForDecrypt" + m_AwsKmsRsaKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsRsaKeyring" + m_AwsKmsUtils "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsUtils" + m_CMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CMM" + m_CacheConstants "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CacheConstants" + m_CanonicalEncryptionContext "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CanonicalEncryptionContext" + m_Commitment "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Commitment" + m_Constants "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Constants" + m_CreateKeyStoreTable "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeyStoreTable" + m_CreateKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeys" + m_DDBKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DDBKeystoreOperations" + m_DefaultCMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DefaultCMM" + m_DefaultClientSupplier "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DefaultClientSupplier" + m_Defaults "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Defaults" + m_DiscoveryMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DiscoveryMultiKeyring" + m_EcdhEdkWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/EcdhEdkWrapping" + m_EdkWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/EdkWrapping" + m_ErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/ErrorMessages" + m_GetKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/GetKeys" + m_IntermediateKeyWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/IntermediateKeyWrapping" + m_KMSKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KMSKeystoreOperations" + m_KeyStore "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStore" + m_KeyStoreErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStoreErrorMessages" + m_Keyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Keyring" + m_KmsArn "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KmsArn" + m_LocalCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/LocalCMC" + m_MaterialProviders "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MaterialProviders" + m_MaterialWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MaterialWrapping" + m_Materials "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Materials" + m_MrkAwareDiscoveryMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MrkAwareDiscoveryMultiKeyring" + m_MrkAwareStrictMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MrkAwareStrictMultiKeyring" + m_MultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MultiKeyring" + m_RawAESKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawAESKeyring" + m_RawECDHKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawECDHKeyring" + m_RawRSAKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawRSAKeyring" + m_RequiredEncryptionContextCMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RequiredEncryptionContextCMM" + m_StormTracker "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StormTracker" + m_StormTrackingCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StormTrackingCMC" + m_StrictMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StrictMultiKeyring" + m_Structure "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Structure" + m_SynchronizedLocalCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/SynchronizedLocalCMC" + m_Utils "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Utils" + m_AtomicPrimitives "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AtomicPrimitives" + m_AwsCryptographyPrimitivesOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesOperations" + m_AwsCryptographyPrimitivesTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesTypes" + m_Digest "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Digest" + m_HKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/HKDF" + m_KdfCtr "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/KdfCtr" + m_Random "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Random" + m_WrappedHKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHKDF" + m_WrappedHMAC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHMAC" + m_Actions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Actions" + m_Base64 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64" + m_Base64Lemmas "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64Lemmas" + m_BoundedInts "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/BoundedInts" + m_DivInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternals" + m_DivInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternalsNonlinear" + m_DivMod "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivMod" + m_FileIO "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FileIO" + m_FloatCompare "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FloatCompare" + m_Functions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Functions" + m_GeneralInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GeneralInternals" + m_GetOpt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GetOpt" + m_HexStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/HexStrings" + m_Logarithm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Logarithm" + m__Math "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Math_" + m_ModInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternals" + m_ModInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternalsNonlinear" + m_Mul "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Mul" + m_MulInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternals" + m_MulInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternalsNonlinear" + m_Power "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Power" + m_Relations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Relations" + m_Seq "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq" + m_Seq_MergeSort "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq_MergeSort" + m_Sorting "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Sorting" + m_StandardLibrary "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary" + m_StandardLibraryInterop "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibraryInterop" + m_StandardLibrary_Sequence "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_Sequence" + m_StandardLibrary_String "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_String" + m_StandardLibrary_UInt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_UInt" + m_Streams "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Streams" + m_UnicodeStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UnicodeStrings" + m__Unicode "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Unicode_" + m_Utf16EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf16EncodingForm" + m_Utf8EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf8EncodingForm" + m_Wrappers "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers" + m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes" + m_Sets "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/Sets" + m_SortCanon "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/SortCanon" + m_StructuredEncryptionFooter "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionFooter" + m_StructuredEncryptionHeader "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionHeader" + m_StructuredEncryptionPaths "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionPaths" + m_StructuredEncryptionUtil "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionUtil" + m__System "github.com/dafny-lang/DafnyRuntimeGo/v4/System_" + _dafny "github.com/dafny-lang/DafnyRuntimeGo/v4/dafny" +) + +var _ = os.Args +var _ _dafny.Dummy__ +var _ m__System.Dummy__ +var _ m_Wrappers.Dummy__ +var _ m_BoundedInts.Dummy__ +var _ m_StandardLibrary_UInt.Dummy__ +var _ m_StandardLibrary_Sequence.Dummy__ +var _ m_StandardLibrary_String.Dummy__ +var _ m_StandardLibrary.Dummy__ +var _ m_AwsCryptographyPrimitivesTypes.Dummy__ +var _ m_Random.Dummy__ +var _ m_Digest.Dummy__ +var _ m_WrappedHMAC.Dummy__ +var _ m_HKDF.Dummy__ +var _ m_WrappedHKDF.Dummy__ +var _ m_KdfCtr.Dummy__ +var _ m_AwsCryptographyPrimitivesOperations.Dummy__ +var _ m_AtomicPrimitives.Dummy__ +var _ m_ComAmazonawsDynamodbTypes.Dummy__ +var _ m_ComAmazonawsKmsTypes.Dummy__ +var _ m_AwsCryptographyKeyStoreTypes.Dummy__ +var _ m_AwsCryptographyMaterialProvidersTypes.Dummy__ +var _ m_Base64.Dummy__ +var _ m_AlgorithmSuites.Dummy__ +var _ m_Materials.Dummy__ +var _ m_Keyring.Dummy__ +var _ m_Relations.Dummy__ +var _ m_Seq_MergeSort.Dummy__ +var _ m__Math.Dummy__ +var _ m_Seq.Dummy__ +var _ m_MultiKeyring.Dummy__ +var _ m_AwsArnParsing.Dummy__ +var _ m_AwsKmsMrkAreUnique.Dummy__ +var _ m_Actions.Dummy__ +var _ m_AwsKmsMrkMatchForDecrypt.Dummy__ +var _ m_AwsKmsUtils.Dummy__ +var _ m_Constants.Dummy__ +var _ m_MaterialWrapping.Dummy__ +var _ m_CanonicalEncryptionContext.Dummy__ +var _ m_IntermediateKeyWrapping.Dummy__ +var _ m_EdkWrapping.Dummy__ +var _ m_ErrorMessages.Dummy__ +var _ m_AwsKmsKeyring.Dummy__ +var _ m_StrictMultiKeyring.Dummy__ +var _ m_AwsKmsDiscoveryKeyring.Dummy__ +var _ m_Com_Amazonaws_Kms.Dummy__ +var _ m_Com_Amazonaws_Dynamodb.Dummy__ +var _ m_DiscoveryMultiKeyring.Dummy__ +var _ m_AwsKmsMrkDiscoveryKeyring.Dummy__ +var _ m_MrkAwareDiscoveryMultiKeyring.Dummy__ +var _ m_AwsKmsMrkKeyring.Dummy__ +var _ m_MrkAwareStrictMultiKeyring.Dummy__ +var _ m_LocalCMC.Dummy__ +var _ m_SynchronizedLocalCMC.Dummy__ +var _ m_StormTracker.Dummy__ +var _ m_StormTrackingCMC.Dummy__ +var _ m_CacheConstants.Dummy__ +var _ m_AwsKmsHierarchicalKeyring.Dummy__ +var _ m_AwsKmsRsaKeyring.Dummy__ +var _ m_EcdhEdkWrapping.Dummy__ +var _ m_RawECDHKeyring.Dummy__ +var _ m_AwsKmsEcdhKeyring.Dummy__ +var _ m_RawAESKeyring.Dummy__ +var _ m_RawRSAKeyring.Dummy__ +var _ m_CMM.Dummy__ +var _ m_Defaults.Dummy__ +var _ m_Commitment.Dummy__ +var _ m_DefaultCMM.Dummy__ +var _ m_DefaultClientSupplier.Dummy__ +var _ m_Utils.Dummy__ +var _ m_RequiredEncryptionContextCMM.Dummy__ +var _ m_AwsCryptographyMaterialProvidersOperations.Dummy__ +var _ m_MaterialProviders.Dummy__ +var _ m_KeyStoreErrorMessages.Dummy__ +var _ m_KmsArn.Dummy__ +var _ m_Structure.Dummy__ +var _ m_KMSKeystoreOperations.Dummy__ +var _ m_DDBKeystoreOperations.Dummy__ +var _ m_CreateKeys.Dummy__ +var _ m_CreateKeyStoreTable.Dummy__ +var _ m_GetKeys.Dummy__ +var _ m_AwsCryptographyKeyStoreOperations.Dummy__ +var _ m_KeyStore.Dummy__ +var _ m__Unicode.Dummy__ +var _ m_Functions.Dummy__ +var _ m_Utf8EncodingForm.Dummy__ +var _ m_Utf16EncodingForm.Dummy__ +var _ m_UnicodeStrings.Dummy__ +var _ m_FileIO.Dummy__ +var _ m_GeneralInternals.Dummy__ +var _ m_MulInternalsNonlinear.Dummy__ +var _ m_MulInternals.Dummy__ +var _ m_Mul.Dummy__ +var _ m_ModInternalsNonlinear.Dummy__ +var _ m_DivInternalsNonlinear.Dummy__ +var _ m_ModInternals.Dummy__ +var _ m_DivInternals.Dummy__ +var _ m_DivMod.Dummy__ +var _ m_Power.Dummy__ +var _ m_Logarithm.Dummy__ +var _ m_StandardLibraryInterop.Dummy__ +var _ m_Streams.Dummy__ +var _ m_Sorting.Dummy__ +var _ m_HexStrings.Dummy__ +var _ m_GetOpt.Dummy__ +var _ m_FloatCompare.Dummy__ +var _ m_Base64Lemmas.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Dummy__ +var _ m_StructuredEncryptionUtil.Dummy__ +var _ m_Sets.Dummy__ +var _ m_StructuredEncryptionPaths.Dummy__ +var _ m_StructuredEncryptionHeader.Dummy__ +var _ m_StructuredEncryptionFooter.Dummy__ +var _ m_SortCanon.Dummy__ + +type Dummy__ struct{} + +// Definition of class Default__ +type Default__ struct { + dummy byte +} + +func New_Default___() *Default__ { + _this := Default__{} + + return &_this +} + +type CompanionStruct_Default___ struct { +} + +var Companion_Default___ = CompanionStruct_Default___{} + +func (_this *Default__) Equals(other *Default__) bool { + return _this == other +} + +func (_this *Default__) EqualsGeneric(x interface{}) bool { + other, ok := x.(*Default__) + return ok && _this.Equals(other) +} + +func (*Default__) String() string { + return "Canonize.Default__" +} +func (_this *Default__) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = &Default__{} + +func (_static *CompanionStruct_Default___) IsCanonPath(table _dafny.Sequence, origKey _dafny.Sequence, key _dafny.Sequence) bool { + return _dafny.Companion_Sequence_.Equal(key, m_StructuredEncryptionPaths.Companion_Default___.CanonPath(table, origKey)) +} +func (_static *CompanionStruct_Default___) MakeCanon(tableName _dafny.Sequence, data m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.CryptoItem) m_StructuredEncryptionUtil.CanonCryptoItem { + return m_StructuredEncryptionUtil.Companion_CanonCryptoItem_.Create_CanonCryptoItem_(m_StructuredEncryptionPaths.Companion_Default___.CanonPath(tableName, (data).Dtor_key()), (data).Dtor_key(), (data).Dtor_data(), (data).Dtor_action()) +} +func (_static *CompanionStruct_Default___) MakeCanonAuth(tableName _dafny.Sequence, data m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.AuthItem) m_StructuredEncryptionUtil.CanonAuthItem { + return m_StructuredEncryptionUtil.Companion_CanonAuthItem_.Create_CanonAuthItem_(m_StructuredEncryptionPaths.Companion_Default___.CanonPath(tableName, (data).Dtor_key()), (data).Dtor_key(), (data).Dtor_data(), (data).Dtor_action()) +} +func (_static *CompanionStruct_Default___) Same(x m_StructuredEncryptionUtil.CanonAuthItem, y m_StructuredEncryptionUtil.CanonCryptoItem) bool { + return ((_dafny.Companion_Sequence_.Equal((x).Dtor_key(), (y).Dtor_key())) && (_dafny.Companion_Sequence_.Equal((x).Dtor_origKey(), (y).Dtor_origKey()))) && (((x).Dtor_data()).Equals((y).Dtor_data())) +} +func (_static *CompanionStruct_Default___) MakeCryptoItem(x m_StructuredEncryptionUtil.CanonAuthItem, action m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.CryptoAction) m_StructuredEncryptionUtil.CanonCryptoItem { + return m_StructuredEncryptionUtil.Companion_CanonCryptoItem_.Create_CanonCryptoItem_((x).Dtor_key(), (x).Dtor_origKey(), (x).Dtor_data(), action) +} +func (_static *CompanionStruct_Default___) LegendToAction(v uint8) m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.CryptoAction { + if (v) == (m_StructuredEncryptionHeader.Companion_Default___.ENCRYPT__AND__SIGN__LEGEND()) { + return m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Companion_CryptoAction_.Create_ENCRYPT__AND__SIGN_() + } else if (v) == (m_StructuredEncryptionHeader.Companion_Default___.SIGN__AND__INCLUDE__IN__ENCRYPTION__CONTEXT__LEGEND()) { + return m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Companion_CryptoAction_.Create_SIGN__AND__INCLUDE__IN__ENCRYPTION__CONTEXT_() + } else { + return m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Companion_CryptoAction_.Create_SIGN__ONLY_() + } +} +func (_static *CompanionStruct_Default___) ResolveLegend(fields _dafny.Sequence, legend _dafny.Sequence, acc _dafny.Sequence) m_Wrappers.Result { + goto TAIL_CALL_START +TAIL_CALL_START: + if (_dafny.IntOfUint32((fields).Cardinality())).Sign() == 0 { + var _0_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need((_dafny.IntOfUint32((legend).Cardinality())).Sign() == 0, m_StructuredEncryptionUtil.Companion_Default___.E(_dafny.SeqOfString("Schema changed : something that was signed is now unsigned."))) + _ = _0_valueOrError0 + if (_0_valueOrError0).IsFailure() { + return (_0_valueOrError0).PropagateFailure() + } else { + return m_Wrappers.Companion_Result_.Create_Success_(acc) + } + } else if (((fields).Select(0).(m_StructuredEncryptionUtil.CanonAuthItem)).Dtor_action()).Equals(m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Companion_AuthenticateAction_.Create_DO__NOT__SIGN_()) { + var _in0 _dafny.Sequence = (fields).Drop(1) + _ = _in0 + var _in1 _dafny.Sequence = legend + _ = _in1 + var _in2 _dafny.Sequence = _dafny.Companion_Sequence_.Concatenate(acc, _dafny.SeqOf(Companion_Default___.MakeCryptoItem((fields).Select(0).(m_StructuredEncryptionUtil.CanonAuthItem), m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Companion_CryptoAction_.Create_DO__NOTHING_()))) + _ = _in2 + fields = _in0 + legend = _in1 + acc = _in2 + goto TAIL_CALL_START + } else { + var _1_valueOrError1 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need((_dafny.IntOfUint32((legend).Cardinality())).Sign() == 1, m_StructuredEncryptionUtil.Companion_Default___.E(_dafny.SeqOfString("Schema changed : something that was unsigned is now signed."))) + _ = _1_valueOrError1 + if (_1_valueOrError1).IsFailure() { + return (_1_valueOrError1).PropagateFailure() + } else { + var _in3 _dafny.Sequence = (fields).Drop(1) + _ = _in3 + var _in4 _dafny.Sequence = (legend).Drop(1) + _ = _in4 + var _in5 _dafny.Sequence = _dafny.Companion_Sequence_.Concatenate(acc, _dafny.SeqOf(Companion_Default___.MakeCryptoItem((fields).Select(0).(m_StructuredEncryptionUtil.CanonAuthItem), Companion_Default___.LegendToAction((legend).Select(0).(uint8))))) + _ = _in5 + fields = _in3 + legend = _in4 + acc = _in5 + goto TAIL_CALL_START + } + } +} +func (_static *CompanionStruct_Default___) ForEncrypt(tableName _dafny.Sequence, data _dafny.Sequence) m_Wrappers.Result { + var _0_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need(_dafny.Quantifier((data).UniqueElements(), true, func(_forall_var_0 m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.CryptoItem) bool { + var _1_k m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.CryptoItem + _1_k = interface{}(_forall_var_0).(m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.CryptoItem) + return !(_dafny.Companion_Sequence_.Contains(data, _1_k)) || (m_StructuredEncryptionPaths.Companion_Default___.ValidPath((_1_k).Dtor_key())) + }), m_StructuredEncryptionUtil.Companion_Default___.E(_dafny.SeqOfString("Invalid Paths"))) + _ = _0_valueOrError0 + if (_0_valueOrError0).IsFailure() { + return (_0_valueOrError0).PropagateFailure() + } else { + var _2_canonList _dafny.Sequence = Companion_Default___.CryptoToCanonCrypto(tableName, data) + _ = _2_canonList + return m_Wrappers.Companion_Result_.Create_Success_(Companion_Default___.CryptoSort(_2_canonList)) + } +} +func (_static *CompanionStruct_Default___) AuthToCanonAuth(tableName _dafny.Sequence, data _dafny.Sequence) _dafny.Sequence { + var _0_canonList _dafny.Sequence = m_Seq.Companion_Default___.Map(func(coer12 func(m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.AuthItem) m_StructuredEncryptionUtil.CanonAuthItem) func(interface{}) interface{} { + return func(arg17 interface{}) interface{} { + return coer12(arg17.(m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.AuthItem)) + } + }((func(_1_tableName _dafny.Sequence) func(m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.AuthItem) m_StructuredEncryptionUtil.CanonAuthItem { + return func(_2_s m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.AuthItem) m_StructuredEncryptionUtil.CanonAuthItem { + return Companion_Default___.MakeCanonAuth(_1_tableName, _2_s) + } + })(tableName)), data) + _ = _0_canonList + return _0_canonList +} +func (_static *CompanionStruct_Default___) CryptoToCanonCrypto(tableName _dafny.Sequence, data _dafny.Sequence) _dafny.Sequence { + var _0_canonList _dafny.Sequence = m_Seq.Companion_Default___.Map(func(coer13 func(m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.CryptoItem) m_StructuredEncryptionUtil.CanonCryptoItem) func(interface{}) interface{} { + return func(arg18 interface{}) interface{} { + return coer13(arg18.(m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.CryptoItem)) + } + }((func(_1_tableName _dafny.Sequence) func(m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.CryptoItem) m_StructuredEncryptionUtil.CanonCryptoItem { + return func(_2_s m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.CryptoItem) m_StructuredEncryptionUtil.CanonCryptoItem { + return Companion_Default___.MakeCanon(_1_tableName, _2_s) + } + })(tableName)), data) + _ = _0_canonList + return _0_canonList +} +func (_static *CompanionStruct_Default___) AuthSort(canonList _dafny.Sequence) _dafny.Sequence { + var _0_canonSorted _dafny.Sequence = m_SortCanon.Companion_Default___.AuthSort(canonList) + _ = _0_canonSorted + return _0_canonSorted +} +func (_static *CompanionStruct_Default___) CryptoSort(canonList _dafny.Sequence) _dafny.Sequence { + var _0_canonSorted _dafny.Sequence = m_SortCanon.Companion_Default___.CryptoSort(canonList) + _ = _0_canonSorted + return _0_canonSorted +} +func (_static *CompanionStruct_Default___) DoResolveLegend(canonSorted _dafny.Sequence, legend _dafny.Sequence) m_Wrappers.Result { + var _0_valueOrError0 m_Wrappers.Result = Companion_Default___.ResolveLegend(canonSorted, legend, _dafny.SeqOf()) + _ = _0_valueOrError0 + if (_0_valueOrError0).IsFailure() { + return (_0_valueOrError0).PropagateFailure() + } else { + var _1_canonResolved _dafny.Sequence = (_0_valueOrError0).Extract().(_dafny.Sequence) + _ = _1_canonResolved + return m_Wrappers.Companion_Result_.Create_Success_(_1_canonResolved) + } +} +func (_static *CompanionStruct_Default___) ForDecrypt(tableName _dafny.Sequence, data _dafny.Sequence, legend _dafny.Sequence) m_Wrappers.Result { + var _0_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need(_dafny.Quantifier((data).UniqueElements(), true, func(_forall_var_0 m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.AuthItem) bool { + var _1_k m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.AuthItem + _1_k = interface{}(_forall_var_0).(m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.AuthItem) + return !(_dafny.Companion_Sequence_.Contains(data, _1_k)) || (m_StructuredEncryptionPaths.Companion_Default___.ValidPath((_1_k).Dtor_key())) + }), m_StructuredEncryptionUtil.Companion_Default___.E(_dafny.SeqOfString("Invalid Paths"))) + _ = _0_valueOrError0 + if (_0_valueOrError0).IsFailure() { + return (_0_valueOrError0).PropagateFailure() + } else { + var _2_canonList _dafny.Sequence = Companion_Default___.AuthToCanonAuth(tableName, data) + _ = _2_canonList + var _3_canonSorted _dafny.Sequence = Companion_Default___.AuthSort(_2_canonList) + _ = _3_canonSorted + return Companion_Default___.DoResolveLegend(_3_canonSorted, legend) + } +} +func (_static *CompanionStruct_Default___) SameUnCanon(x m_StructuredEncryptionUtil.CanonCryptoItem, y m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.CryptoItem) bool { + return ((_dafny.Companion_Sequence_.Equal((x).Dtor_origKey(), (y).Dtor_key())) && (((x).Dtor_data()).Equals((y).Dtor_data()))) && (((x).Dtor_action()).Equals((y).Dtor_action())) +} +func (_static *CompanionStruct_Default___) UnCanon(input _dafny.Sequence) _dafny.Sequence { + var _0___accumulator _dafny.Sequence = _dafny.SeqOf() + _ = _0___accumulator + goto TAIL_CALL_START +TAIL_CALL_START: + if (_dafny.IntOfUint32((input).Cardinality())).Sign() == 0 { + return _dafny.Companion_Sequence_.Concatenate(_0___accumulator, _dafny.SeqOf()) + } else { + var _1_newItem m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.CryptoItem = m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Companion_CryptoItem_.Create_CryptoItem_(((input).Select(0).(m_StructuredEncryptionUtil.CanonCryptoItem)).Dtor_origKey(), ((input).Select(0).(m_StructuredEncryptionUtil.CanonCryptoItem)).Dtor_data(), ((input).Select(0).(m_StructuredEncryptionUtil.CanonCryptoItem)).Dtor_action()) + _ = _1_newItem + _0___accumulator = _dafny.Companion_Sequence_.Concatenate(_0___accumulator, _dafny.SeqOf(_1_newItem)) + var _in0 _dafny.Sequence = (input).Drop(1) + _ = _in0 + input = _in0 + goto TAIL_CALL_START + } +} +func (_static *CompanionStruct_Default___) UnCanonDecrypt(input _dafny.Sequence) _dafny.Sequence { + var _0_results _dafny.Sequence = Companion_Default___.UnCanon(input) + _ = _0_results + return _0_results +} +func (_static *CompanionStruct_Default___) UnCanonEncrypt(input _dafny.Sequence) _dafny.Sequence { + var _0_results _dafny.Sequence = Companion_Default___.UnCanon(input) + _ = _0_results + return _0_results +} +func (_static *CompanionStruct_Default___) AddHeaders(input _dafny.Sequence, headerData m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.StructuredDataTerminal, footerData m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.StructuredDataTerminal) _dafny.Sequence { + var _0_headItem m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.CryptoItem = m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Companion_CryptoItem_.Create_CryptoItem_(m_StructuredEncryptionUtil.Companion_Default___.HeaderPath(), headerData, m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Companion_CryptoAction_.Create_DO__NOTHING_()) + _ = _0_headItem + var _1_footItem m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.CryptoItem = m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Companion_CryptoItem_.Create_CryptoItem_(m_StructuredEncryptionUtil.Companion_Default___.FooterPath(), footerData, m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Companion_CryptoAction_.Create_DO__NOTHING_()) + _ = _1_footItem + var _2_largeResult _dafny.Sequence = _dafny.Companion_Sequence_.Concatenate(input, _dafny.SeqOf(_0_headItem, _1_footItem)) + _ = _2_largeResult + return _2_largeResult +} +func (_static *CompanionStruct_Default___) RemoveHeaderPaths(xs _dafny.Sequence) _dafny.Sequence { + var _0___accumulator _dafny.Sequence = _dafny.SeqOf() + _ = _0___accumulator + goto TAIL_CALL_START +TAIL_CALL_START: + if (_dafny.IntOfUint32((xs).Cardinality())).Sign() == 0 { + return _dafny.Companion_Sequence_.Concatenate(_0___accumulator, _dafny.SeqOf()) + } else { + _0___accumulator = _dafny.Companion_Sequence_.Concatenate(_0___accumulator, (func() _dafny.Sequence { + if _dafny.Companion_Sequence_.Contains(_dafny.SeqOf(m_StructuredEncryptionUtil.Companion_Default___.HeaderPath(), m_StructuredEncryptionUtil.Companion_Default___.FooterPath()), ((xs).Select(0).(m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.CryptoItem)).Dtor_key()) { + return _dafny.SeqOf() + } + return _dafny.SeqOf((xs).Select(0).(m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.CryptoItem)) + })()) + var _in0 _dafny.Sequence = (xs).Drop(1) + _ = _in0 + xs = _in0 + goto TAIL_CALL_START + } +} +func (_static *CompanionStruct_Default___) RemoveHeaders(input _dafny.Sequence) _dafny.Sequence { + var _0_finalData _dafny.Sequence = Companion_Default___.RemoveHeaderPaths(input) + _ = _0_finalData + return _0_finalData +} + +// End of class Default__ + +// Definition of datatype EncryptionSelector +type EncryptionSelector struct { + Data_EncryptionSelector_ +} + +func (_this EncryptionSelector) Get_() Data_EncryptionSelector_ { + return _this.Data_EncryptionSelector_ +} + +type Data_EncryptionSelector_ interface { + isEncryptionSelector() +} + +type CompanionStruct_EncryptionSelector_ struct { +} + +var Companion_EncryptionSelector_ = CompanionStruct_EncryptionSelector_{} + +type EncryptionSelector_DoEncrypt struct { +} + +func (EncryptionSelector_DoEncrypt) isEncryptionSelector() {} + +func (CompanionStruct_EncryptionSelector_) Create_DoEncrypt_() EncryptionSelector { + return EncryptionSelector{EncryptionSelector_DoEncrypt{}} +} + +func (_this EncryptionSelector) Is_DoEncrypt() bool { + _, ok := _this.Get_().(EncryptionSelector_DoEncrypt) + return ok +} + +type EncryptionSelector_DoDecrypt struct { +} + +func (EncryptionSelector_DoDecrypt) isEncryptionSelector() {} + +func (CompanionStruct_EncryptionSelector_) Create_DoDecrypt_() EncryptionSelector { + return EncryptionSelector{EncryptionSelector_DoDecrypt{}} +} + +func (_this EncryptionSelector) Is_DoDecrypt() bool { + _, ok := _this.Get_().(EncryptionSelector_DoDecrypt) + return ok +} + +func (CompanionStruct_EncryptionSelector_) Default() EncryptionSelector { + return Companion_EncryptionSelector_.Create_DoEncrypt_() +} + +func (_ CompanionStruct_EncryptionSelector_) AllSingletonConstructors() _dafny.Iterator { + i := -1 + return func() (interface{}, bool) { + i++ + switch i { + case 0: + return Companion_EncryptionSelector_.Create_DoEncrypt_(), true + case 1: + return Companion_EncryptionSelector_.Create_DoDecrypt_(), true + default: + return EncryptionSelector{}, false + } + } +} + +func (_this EncryptionSelector) String() string { + switch _this.Get_().(type) { + case nil: + return "null" + case EncryptionSelector_DoEncrypt: + { + return "Canonize.EncryptionSelector.DoEncrypt" + } + case EncryptionSelector_DoDecrypt: + { + return "Canonize.EncryptionSelector.DoDecrypt" + } + default: + { + return "" + } + } +} + +func (_this EncryptionSelector) Equals(other EncryptionSelector) bool { + switch _this.Get_().(type) { + case EncryptionSelector_DoEncrypt: + { + _, ok := other.Get_().(EncryptionSelector_DoEncrypt) + return ok + } + case EncryptionSelector_DoDecrypt: + { + _, ok := other.Get_().(EncryptionSelector_DoDecrypt) + return ok + } + default: + { + return false // unexpected + } + } +} + +func (_this EncryptionSelector) EqualsGeneric(other interface{}) bool { + typed, ok := other.(EncryptionSelector) + return ok && _this.Equals(typed) +} + +func Type_EncryptionSelector_() _dafny.TypeDescriptor { + return type_EncryptionSelector_{} +} + +type type_EncryptionSelector_ struct { +} + +func (_this type_EncryptionSelector_) Default() interface{} { + return Companion_EncryptionSelector_.Default() +} + +func (_this type_EncryptionSelector_) String() string { + return "Canonize.EncryptionSelector" +} +func (_this EncryptionSelector) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = EncryptionSelector{} + +// End of datatype EncryptionSelector diff --git a/customer-preview/ddb-esdk/CompoundBeacon/CompoundBeacon.go b/customer-preview/ddb-esdk/CompoundBeacon/CompoundBeacon.go new file mode 100644 index 000000000..2baac81e3 --- /dev/null +++ b/customer-preview/ddb-esdk/CompoundBeacon/CompoundBeacon.go @@ -0,0 +1,1837 @@ +// Package CompoundBeacon +// Dafny module CompoundBeacon compiled into Go + +package CompoundBeacon + +import ( + os "os" + + m_ComAmazonawsDynamodbTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/ComAmazonawsDynamodbTypes" + m_Com_Amazonaws_Dynamodb "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/Com_Amazonaws_Dynamodb" + m_ComAmazonawsKmsTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/ComAmazonawsKmsTypes" + m_Com_Amazonaws_Kms "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/Com_Amazonaws_Kms" + m_AlgorithmSuites "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AlgorithmSuites" + m_AwsArnParsing "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsArnParsing" + m_AwsCryptographyKeyStoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreOperations" + m_AwsCryptographyKeyStoreTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreTypes" + m_AwsCryptographyMaterialProvidersOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersOperations" + m_AwsCryptographyMaterialProvidersTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersTypes" + m_AwsKmsDiscoveryKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsDiscoveryKeyring" + m_AwsKmsEcdhKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsEcdhKeyring" + m_AwsKmsHierarchicalKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsHierarchicalKeyring" + m_AwsKmsKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsKeyring" + m_AwsKmsMrkAreUnique "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkAreUnique" + m_AwsKmsMrkDiscoveryKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkDiscoveryKeyring" + m_AwsKmsMrkKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkKeyring" + m_AwsKmsMrkMatchForDecrypt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkMatchForDecrypt" + m_AwsKmsRsaKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsRsaKeyring" + m_AwsKmsUtils "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsUtils" + m_CMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CMM" + m_CacheConstants "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CacheConstants" + m_CanonicalEncryptionContext "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CanonicalEncryptionContext" + m_Commitment "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Commitment" + m_Constants "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Constants" + m_CreateKeyStoreTable "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeyStoreTable" + m_CreateKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeys" + m_DDBKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DDBKeystoreOperations" + m_DefaultCMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DefaultCMM" + m_DefaultClientSupplier "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DefaultClientSupplier" + m_Defaults "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Defaults" + m_DiscoveryMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DiscoveryMultiKeyring" + m_EcdhEdkWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/EcdhEdkWrapping" + m_EdkWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/EdkWrapping" + m_ErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/ErrorMessages" + m_GetKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/GetKeys" + m_IntermediateKeyWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/IntermediateKeyWrapping" + m_KMSKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KMSKeystoreOperations" + m_KeyStore "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStore" + m_KeyStoreErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStoreErrorMessages" + m_Keyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Keyring" + m_KmsArn "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KmsArn" + m_LocalCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/LocalCMC" + m_MaterialProviders "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MaterialProviders" + m_MaterialWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MaterialWrapping" + m_Materials "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Materials" + m_MrkAwareDiscoveryMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MrkAwareDiscoveryMultiKeyring" + m_MrkAwareStrictMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MrkAwareStrictMultiKeyring" + m_MultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MultiKeyring" + m_RawAESKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawAESKeyring" + m_RawECDHKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawECDHKeyring" + m_RawRSAKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawRSAKeyring" + m_RequiredEncryptionContextCMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RequiredEncryptionContextCMM" + m_StormTracker "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StormTracker" + m_StormTrackingCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StormTrackingCMC" + m_StrictMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StrictMultiKeyring" + m_Structure "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Structure" + m_SynchronizedLocalCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/SynchronizedLocalCMC" + m_Utils "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Utils" + m_AtomicPrimitives "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AtomicPrimitives" + m_AwsCryptographyPrimitivesOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesOperations" + m_AwsCryptographyPrimitivesTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesTypes" + m_Digest "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Digest" + m_HKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/HKDF" + m_KdfCtr "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/KdfCtr" + m_Random "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Random" + m_WrappedHKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHKDF" + m_WrappedHMAC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHMAC" + m_Actions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Actions" + m_Base64 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64" + m_Base64Lemmas "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64Lemmas" + m_BoundedInts "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/BoundedInts" + m_DivInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternals" + m_DivInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternalsNonlinear" + m_DivMod "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivMod" + m_FileIO "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FileIO" + m_FloatCompare "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FloatCompare" + m_Functions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Functions" + m_GeneralInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GeneralInternals" + m_GetOpt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GetOpt" + m_HexStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/HexStrings" + m_Logarithm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Logarithm" + m__Math "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Math_" + m_ModInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternals" + m_ModInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternalsNonlinear" + m_Mul "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Mul" + m_MulInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternals" + m_MulInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternalsNonlinear" + m_Power "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Power" + m_Relations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Relations" + m_Seq "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq" + m_Seq_MergeSort "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq_MergeSort" + m_Sorting "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Sorting" + m_StandardLibrary "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary" + m_StandardLibraryInterop "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibraryInterop" + m_StandardLibrary_Sequence "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_Sequence" + m_StandardLibrary_String "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_String" + m_StandardLibrary_UInt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_UInt" + m_Streams "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Streams" + m_UnicodeStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UnicodeStrings" + m__Unicode "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Unicode_" + m_Utf16EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf16EncodingForm" + m_Utf8EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf8EncodingForm" + m_Wrappers "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers" + m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorOperations "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorOperations" + m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes" + m_AwsCryptographyDbEncryptionSdkDynamoDbOperations "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbOperations" + m_AwsCryptographyDbEncryptionSdkDynamoDbTypes "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbTypes" + m_AwsCryptographyDbEncryptionSdkStructuredEncryptionOperations "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkStructuredEncryptionOperations" + m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes" + m_BaseBeacon "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/BaseBeacon" + m_Canonize "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/Canonize" + m_DdbVirtualFields "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DdbVirtualFields" + m_DynamoDbEncryption "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbEncryption" + m_DynamoDbEncryptionBranchKeyIdSupplier "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbEncryptionBranchKeyIdSupplier" + m_DynamoDbEncryptionUtil "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbEncryptionUtil" + m_DynamoDbItemEncryptor "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbItemEncryptor" + m_DynamoDbItemEncryptorUtil "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbItemEncryptorUtil" + m_DynamoDbNormalizeNumber "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbNormalizeNumber" + m_DynamoDbUpdateExpr "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbUpdateExpr" + m_DynamoToStruct "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoToStruct" + m_InternalLegacyOverride "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/InternalLegacyOverride" + m__Maps "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/Maps_" + m_Sets "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/Sets" + m_SortCanon "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/SortCanon" + m_StructuredEncryption "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryption" + m_StructuredEncryptionCrypt "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionCrypt" + m_StructuredEncryptionFooter "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionFooter" + m_StructuredEncryptionHeader "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionHeader" + m_StructuredEncryptionPaths "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionPaths" + m_StructuredEncryptionUtil "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionUtil" + m_TermLoc "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/TermLoc" + m__System "github.com/dafny-lang/DafnyRuntimeGo/v4/System_" + _dafny "github.com/dafny-lang/DafnyRuntimeGo/v4/dafny" +) + +var _ = os.Args +var _ _dafny.Dummy__ +var _ m__System.Dummy__ +var _ m_Wrappers.Dummy__ +var _ m_BoundedInts.Dummy__ +var _ m_StandardLibrary_UInt.Dummy__ +var _ m_StandardLibrary_Sequence.Dummy__ +var _ m_StandardLibrary_String.Dummy__ +var _ m_StandardLibrary.Dummy__ +var _ m_AwsCryptographyPrimitivesTypes.Dummy__ +var _ m_Random.Dummy__ +var _ m_Digest.Dummy__ +var _ m_WrappedHMAC.Dummy__ +var _ m_HKDF.Dummy__ +var _ m_WrappedHKDF.Dummy__ +var _ m_KdfCtr.Dummy__ +var _ m_AwsCryptographyPrimitivesOperations.Dummy__ +var _ m_AtomicPrimitives.Dummy__ +var _ m_ComAmazonawsDynamodbTypes.Dummy__ +var _ m_ComAmazonawsKmsTypes.Dummy__ +var _ m_AwsCryptographyKeyStoreTypes.Dummy__ +var _ m_AwsCryptographyMaterialProvidersTypes.Dummy__ +var _ m_Base64.Dummy__ +var _ m_AlgorithmSuites.Dummy__ +var _ m_Materials.Dummy__ +var _ m_Keyring.Dummy__ +var _ m_Relations.Dummy__ +var _ m_Seq_MergeSort.Dummy__ +var _ m__Math.Dummy__ +var _ m_Seq.Dummy__ +var _ m_MultiKeyring.Dummy__ +var _ m_AwsArnParsing.Dummy__ +var _ m_AwsKmsMrkAreUnique.Dummy__ +var _ m_Actions.Dummy__ +var _ m_AwsKmsMrkMatchForDecrypt.Dummy__ +var _ m_AwsKmsUtils.Dummy__ +var _ m_Constants.Dummy__ +var _ m_MaterialWrapping.Dummy__ +var _ m_CanonicalEncryptionContext.Dummy__ +var _ m_IntermediateKeyWrapping.Dummy__ +var _ m_EdkWrapping.Dummy__ +var _ m_ErrorMessages.Dummy__ +var _ m_AwsKmsKeyring.Dummy__ +var _ m_StrictMultiKeyring.Dummy__ +var _ m_AwsKmsDiscoveryKeyring.Dummy__ +var _ m_Com_Amazonaws_Kms.Dummy__ +var _ m_Com_Amazonaws_Dynamodb.Dummy__ +var _ m_DiscoveryMultiKeyring.Dummy__ +var _ m_AwsKmsMrkDiscoveryKeyring.Dummy__ +var _ m_MrkAwareDiscoveryMultiKeyring.Dummy__ +var _ m_AwsKmsMrkKeyring.Dummy__ +var _ m_MrkAwareStrictMultiKeyring.Dummy__ +var _ m_LocalCMC.Dummy__ +var _ m_SynchronizedLocalCMC.Dummy__ +var _ m_StormTracker.Dummy__ +var _ m_StormTrackingCMC.Dummy__ +var _ m_CacheConstants.Dummy__ +var _ m_AwsKmsHierarchicalKeyring.Dummy__ +var _ m_AwsKmsRsaKeyring.Dummy__ +var _ m_EcdhEdkWrapping.Dummy__ +var _ m_RawECDHKeyring.Dummy__ +var _ m_AwsKmsEcdhKeyring.Dummy__ +var _ m_RawAESKeyring.Dummy__ +var _ m_RawRSAKeyring.Dummy__ +var _ m_CMM.Dummy__ +var _ m_Defaults.Dummy__ +var _ m_Commitment.Dummy__ +var _ m_DefaultCMM.Dummy__ +var _ m_DefaultClientSupplier.Dummy__ +var _ m_Utils.Dummy__ +var _ m_RequiredEncryptionContextCMM.Dummy__ +var _ m_AwsCryptographyMaterialProvidersOperations.Dummy__ +var _ m_MaterialProviders.Dummy__ +var _ m_KeyStoreErrorMessages.Dummy__ +var _ m_KmsArn.Dummy__ +var _ m_Structure.Dummy__ +var _ m_KMSKeystoreOperations.Dummy__ +var _ m_DDBKeystoreOperations.Dummy__ +var _ m_CreateKeys.Dummy__ +var _ m_CreateKeyStoreTable.Dummy__ +var _ m_GetKeys.Dummy__ +var _ m_AwsCryptographyKeyStoreOperations.Dummy__ +var _ m_KeyStore.Dummy__ +var _ m__Unicode.Dummy__ +var _ m_Functions.Dummy__ +var _ m_Utf8EncodingForm.Dummy__ +var _ m_Utf16EncodingForm.Dummy__ +var _ m_UnicodeStrings.Dummy__ +var _ m_FileIO.Dummy__ +var _ m_GeneralInternals.Dummy__ +var _ m_MulInternalsNonlinear.Dummy__ +var _ m_MulInternals.Dummy__ +var _ m_Mul.Dummy__ +var _ m_ModInternalsNonlinear.Dummy__ +var _ m_DivInternalsNonlinear.Dummy__ +var _ m_ModInternals.Dummy__ +var _ m_DivInternals.Dummy__ +var _ m_DivMod.Dummy__ +var _ m_Power.Dummy__ +var _ m_Logarithm.Dummy__ +var _ m_StandardLibraryInterop.Dummy__ +var _ m_Streams.Dummy__ +var _ m_Sorting.Dummy__ +var _ m_HexStrings.Dummy__ +var _ m_GetOpt.Dummy__ +var _ m_FloatCompare.Dummy__ +var _ m_Base64Lemmas.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Dummy__ +var _ m_StructuredEncryptionUtil.Dummy__ +var _ m_Sets.Dummy__ +var _ m_StructuredEncryptionPaths.Dummy__ +var _ m_StructuredEncryptionHeader.Dummy__ +var _ m_StructuredEncryptionFooter.Dummy__ +var _ m_SortCanon.Dummy__ +var _ m_Canonize.Dummy__ +var _ m_StructuredEncryptionCrypt.Dummy__ +var _ m__Maps.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkStructuredEncryptionOperations.Dummy__ +var _ m_StructuredEncryption.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Dummy__ +var _ m_DynamoDbEncryptionUtil.Dummy__ +var _ m_DynamoDbNormalizeNumber.Dummy__ +var _ m_DynamoToStruct.Dummy__ +var _ m_DynamoDbItemEncryptorUtil.Dummy__ +var _ m_InternalLegacyOverride.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorOperations.Dummy__ +var _ m_DynamoDbItemEncryptor.Dummy__ +var _ m_DynamoDbEncryptionBranchKeyIdSupplier.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkDynamoDbOperations.Dummy__ +var _ m_DynamoDbEncryption.Dummy__ +var _ m_TermLoc.Dummy__ +var _ m_DdbVirtualFields.Dummy__ +var _ m_DynamoDbUpdateExpr.Dummy__ +var _ m_BaseBeacon.Dummy__ + +type Dummy__ struct{} + +// Definition of class Default__ +type Default__ struct { + dummy byte +} + +func New_Default___() *Default__ { + _this := Default__{} + + return &_this +} + +type CompanionStruct_Default___ struct { +} + +var Companion_Default___ = CompanionStruct_Default___{} + +func (_this *Default__) Equals(other *Default__) bool { + return _this == other +} + +func (_this *Default__) EqualsGeneric(x interface{}) bool { + other, ok := x.(*Default__) + return ok && _this.Equals(other) +} + +func (*Default__) String() string { + return "CompoundBeacon.Default__" +} +func (_this *Default__) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = &Default__{} + +func (_static *CompanionStruct_Default___) MakeCompoundBeacon(base m_BaseBeacon.BeaconBase, split _dafny.Char, parts _dafny.Sequence, numSigned _dafny.Int, construct _dafny.Sequence) m_Wrappers.Result { + var _0_x CompoundBeacon = Companion_CompoundBeacon_.Create_CompoundBeacon_(base, split, parts, numSigned, construct) + _ = _0_x + var _1_valueOrError0 m_Wrappers.Result = (_0_x).ValidPrefixSetResult() + _ = _1_valueOrError0 + if (_1_valueOrError0).IsFailure() { + return (_1_valueOrError0).PropagateFailure() + } else { + var _2___v0 bool = (_1_valueOrError0).Extract().(bool) + _ = _2___v0 + return m_Wrappers.Companion_Result_.Create_Success_(_0_x) + } +} +func (_static *CompanionStruct_Default___) MakeDefaultConstructor(parts _dafny.Sequence) Constructor { + var _0_cons _dafny.Sequence = m_Seq.Companion_Default___.Map(func(coer86 func(BeaconPart) ConstructorPart) func(interface{}) interface{} { + return func(arg110 interface{}) interface{} { + return coer86(arg110.(BeaconPart)) + } + }(func(_1_x BeaconPart) ConstructorPart { + return Companion_ConstructorPart_.Create_ConstructorPart_(_1_x, true) + }), parts) + _ = _0_cons + return Companion_Constructor_.Create_Constructor_(_0_cons) +} + +// End of class Default__ + +// Definition of class Prefix +type Prefix struct { +} + +func New_Prefix_() *Prefix { + _this := Prefix{} + + return &_this +} + +type CompanionStruct_Prefix_ struct { +} + +var Companion_Prefix_ = CompanionStruct_Prefix_{} + +func (*Prefix) String() string { + return "CompoundBeacon.Prefix" +} + +// End of class Prefix + +func Type_Prefix_() _dafny.TypeDescriptor { + return type_Prefix_{} +} + +type type_Prefix_ struct { +} + +func (_this type_Prefix_) Default() interface{} { + return _dafny.EmptySeq.SetString() +} + +func (_this type_Prefix_) String() string { + return "CompoundBeacon.Prefix" +} +func (_this *CompanionStruct_Prefix_) Is_(__source _dafny.Sequence) bool { + var _2_x _dafny.Sequence = (__source) + _ = _2_x + return (_dafny.IntOfUint32((_2_x).Cardinality())).Sign() == 1 +} + +// Definition of datatype BeaconPart +type BeaconPart struct { + Data_BeaconPart_ +} + +func (_this BeaconPart) Get_() Data_BeaconPart_ { + return _this.Data_BeaconPart_ +} + +type Data_BeaconPart_ interface { + isBeaconPart() +} + +type CompanionStruct_BeaconPart_ struct { +} + +var Companion_BeaconPart_ = CompanionStruct_BeaconPart_{} + +type BeaconPart_Encrypted struct { + Prefix _dafny.Sequence + Beacon m_BaseBeacon.StandardBeacon +} + +func (BeaconPart_Encrypted) isBeaconPart() {} + +func (CompanionStruct_BeaconPart_) Create_Encrypted_(Prefix _dafny.Sequence, Beacon m_BaseBeacon.StandardBeacon) BeaconPart { + return BeaconPart{BeaconPart_Encrypted{Prefix, Beacon}} +} + +func (_this BeaconPart) Is_Encrypted() bool { + _, ok := _this.Get_().(BeaconPart_Encrypted) + return ok +} + +type BeaconPart_Signed struct { + Prefix _dafny.Sequence + Name _dafny.Sequence + Loc _dafny.Sequence +} + +func (BeaconPart_Signed) isBeaconPart() {} + +func (CompanionStruct_BeaconPart_) Create_Signed_(Prefix _dafny.Sequence, Name _dafny.Sequence, Loc _dafny.Sequence) BeaconPart { + return BeaconPart{BeaconPart_Signed{Prefix, Name, Loc}} +} + +func (_this BeaconPart) Is_Signed() bool { + _, ok := _this.Get_().(BeaconPart_Signed) + return ok +} + +func (CompanionStruct_BeaconPart_) Default() BeaconPart { + return Companion_BeaconPart_.Create_Encrypted_(_dafny.EmptySeq.SetString(), m_BaseBeacon.Companion_StandardBeacon_.Default()) +} + +func (_this BeaconPart) Dtor_prefix() _dafny.Sequence { + switch data := _this.Get_().(type) { + case BeaconPart_Encrypted: + return data.Prefix + default: + return data.(BeaconPart_Signed).Prefix + } +} + +func (_this BeaconPart) Dtor_beacon() m_BaseBeacon.StandardBeacon { + return _this.Get_().(BeaconPart_Encrypted).Beacon +} + +func (_this BeaconPart) Dtor_name() _dafny.Sequence { + return _this.Get_().(BeaconPart_Signed).Name +} + +func (_this BeaconPart) Dtor_loc() _dafny.Sequence { + return _this.Get_().(BeaconPart_Signed).Loc +} + +func (_this BeaconPart) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case BeaconPart_Encrypted: + { + return "CompoundBeacon.BeaconPart.Encrypted" + "(" + _dafny.String(data.Prefix) + ", " + _dafny.String(data.Beacon) + ")" + } + case BeaconPart_Signed: + { + return "CompoundBeacon.BeaconPart.Signed" + "(" + _dafny.String(data.Prefix) + ", " + _dafny.String(data.Name) + ", " + _dafny.String(data.Loc) + ")" + } + default: + { + return "" + } + } +} + +func (_this BeaconPart) Equals(other BeaconPart) bool { + switch data1 := _this.Get_().(type) { + case BeaconPart_Encrypted: + { + data2, ok := other.Get_().(BeaconPart_Encrypted) + return ok && data1.Prefix.Equals(data2.Prefix) && data1.Beacon.Equals(data2.Beacon) + } + case BeaconPart_Signed: + { + data2, ok := other.Get_().(BeaconPart_Signed) + return ok && data1.Prefix.Equals(data2.Prefix) && data1.Name.Equals(data2.Name) && data1.Loc.Equals(data2.Loc) + } + default: + { + return false // unexpected + } + } +} + +func (_this BeaconPart) EqualsGeneric(other interface{}) bool { + typed, ok := other.(BeaconPart) + return ok && _this.Equals(typed) +} + +func Type_BeaconPart_() _dafny.TypeDescriptor { + return type_BeaconPart_{} +} + +type type_BeaconPart_ struct { +} + +func (_this type_BeaconPart_) Default() interface{} { + return Companion_BeaconPart_.Default() +} + +func (_this type_BeaconPart_) String() string { + return "CompoundBeacon.BeaconPart" +} +func (_this BeaconPart) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = BeaconPart{} + +func (_this BeaconPart) GetPrefix() _dafny.Sequence { + { + var _source0 BeaconPart = _this + _ = _source0 + { + if _source0.Is_Encrypted() { + var _0_p _dafny.Sequence = _source0.Get_().(BeaconPart_Encrypted).Prefix + _ = _0_p + var _1_b m_BaseBeacon.StandardBeacon = _source0.Get_().(BeaconPart_Encrypted).Beacon + _ = _1_b + return _0_p + } + } + { + var _2_p _dafny.Sequence = _source0.Get_().(BeaconPart_Signed).Prefix + _ = _2_p + var _3_n _dafny.Sequence = _source0.Get_().(BeaconPart_Signed).Name + _ = _3_n + var _4_l _dafny.Sequence = _source0.Get_().(BeaconPart_Signed).Loc + _ = _4_l + return _2_p + } + } +} +func (_this BeaconPart) GetName() _dafny.Sequence { + { + var _source0 BeaconPart = _this + _ = _source0 + { + if _source0.Is_Encrypted() { + var _0_p _dafny.Sequence = _source0.Get_().(BeaconPart_Encrypted).Prefix + _ = _0_p + var _1_b m_BaseBeacon.StandardBeacon = _source0.Get_().(BeaconPart_Encrypted).Beacon + _ = _1_b + return ((_1_b).Dtor_base()).Dtor_name() + } + } + { + var _2_p _dafny.Sequence = _source0.Get_().(BeaconPart_Signed).Prefix + _ = _2_p + var _3_n _dafny.Sequence = _source0.Get_().(BeaconPart_Signed).Name + _ = _3_n + var _4_l _dafny.Sequence = _source0.Get_().(BeaconPart_Signed).Loc + _ = _4_l + return _3_n + } + } +} +func (_this BeaconPart) GetString(item _dafny.Map, vf _dafny.Map) m_Wrappers.Result { + { + var _source0 BeaconPart = _this + _ = _source0 + { + if _source0.Is_Encrypted() { + var _0_p _dafny.Sequence = _source0.Get_().(BeaconPart_Encrypted).Prefix + _ = _0_p + var _1_b m_BaseBeacon.StandardBeacon = _source0.Get_().(BeaconPart_Encrypted).Beacon + _ = _1_b + return m_DdbVirtualFields.Companion_Default___.VirtToString((_1_b).Dtor_loc(), item, vf) + } + } + { + var _2_p _dafny.Sequence = _source0.Get_().(BeaconPart_Signed).Prefix + _ = _2_p + var _3_n _dafny.Sequence = _source0.Get_().(BeaconPart_Signed).Name + _ = _3_n + var _4_l _dafny.Sequence = _source0.Get_().(BeaconPart_Signed).Loc + _ = _4_l + return m_DdbVirtualFields.Companion_Default___.VirtToString(_4_l, item, vf) + } + } +} +func (_this BeaconPart) GetFields(virtualFields _dafny.Map) _dafny.Sequence { + { + var _source0 BeaconPart = _this + _ = _source0 + { + if _source0.Is_Encrypted() { + var _0_p _dafny.Sequence = _source0.Get_().(BeaconPart_Encrypted).Prefix + _ = _0_p + var _1_b m_BaseBeacon.StandardBeacon = _source0.Get_().(BeaconPart_Encrypted).Beacon + _ = _1_b + return (_1_b).GetFields(virtualFields) + } + } + { + var _2_p _dafny.Sequence = _source0.Get_().(BeaconPart_Signed).Prefix + _ = _2_p + var _3_n _dafny.Sequence = _source0.Get_().(BeaconPart_Signed).Name + _ = _3_n + var _4_l _dafny.Sequence = _source0.Get_().(BeaconPart_Signed).Loc + _ = _4_l + if (virtualFields).Contains((((_this).Dtor_loc()).Select(0).(m_TermLoc.Selector)).Dtor_key()) { + return ((virtualFields).Get((((_this).Dtor_loc()).Select(0).(m_TermLoc.Selector)).Dtor_key()).(m_DdbVirtualFields.VirtField)).GetFields() + } else { + return _dafny.SeqOf((((_this).Dtor_loc()).Select(0).(m_TermLoc.Selector)).Dtor_key()) + } + } + } +} + +// End of datatype BeaconPart + +// Definition of datatype ConstructorPart +type ConstructorPart struct { + Data_ConstructorPart_ +} + +func (_this ConstructorPart) Get_() Data_ConstructorPart_ { + return _this.Data_ConstructorPart_ +} + +type Data_ConstructorPart_ interface { + isConstructorPart() +} + +type CompanionStruct_ConstructorPart_ struct { +} + +var Companion_ConstructorPart_ = CompanionStruct_ConstructorPart_{} + +type ConstructorPart_ConstructorPart struct { + Part BeaconPart + Required bool +} + +func (ConstructorPart_ConstructorPart) isConstructorPart() {} + +func (CompanionStruct_ConstructorPart_) Create_ConstructorPart_(Part BeaconPart, Required bool) ConstructorPart { + return ConstructorPart{ConstructorPart_ConstructorPart{Part, Required}} +} + +func (_this ConstructorPart) Is_ConstructorPart() bool { + _, ok := _this.Get_().(ConstructorPart_ConstructorPart) + return ok +} + +func (CompanionStruct_ConstructorPart_) Default() ConstructorPart { + return Companion_ConstructorPart_.Create_ConstructorPart_(Companion_BeaconPart_.Default(), false) +} + +func (_this ConstructorPart) Dtor_part() BeaconPart { + return _this.Get_().(ConstructorPart_ConstructorPart).Part +} + +func (_this ConstructorPart) Dtor_required() bool { + return _this.Get_().(ConstructorPart_ConstructorPart).Required +} + +func (_this ConstructorPart) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case ConstructorPart_ConstructorPart: + { + return "CompoundBeacon.ConstructorPart.ConstructorPart" + "(" + _dafny.String(data.Part) + ", " + _dafny.String(data.Required) + ")" + } + default: + { + return "" + } + } +} + +func (_this ConstructorPart) Equals(other ConstructorPart) bool { + switch data1 := _this.Get_().(type) { + case ConstructorPart_ConstructorPart: + { + data2, ok := other.Get_().(ConstructorPart_ConstructorPart) + return ok && data1.Part.Equals(data2.Part) && data1.Required == data2.Required + } + default: + { + return false // unexpected + } + } +} + +func (_this ConstructorPart) EqualsGeneric(other interface{}) bool { + typed, ok := other.(ConstructorPart) + return ok && _this.Equals(typed) +} + +func Type_ConstructorPart_() _dafny.TypeDescriptor { + return type_ConstructorPart_{} +} + +type type_ConstructorPart_ struct { +} + +func (_this type_ConstructorPart_) Default() interface{} { + return Companion_ConstructorPart_.Default() +} + +func (_this type_ConstructorPart_) String() string { + return "CompoundBeacon.ConstructorPart" +} +func (_this ConstructorPart) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = ConstructorPart{} + +// End of datatype ConstructorPart + +// Definition of class ConstructorPartList +type ConstructorPartList struct { +} + +func New_ConstructorPartList_() *ConstructorPartList { + _this := ConstructorPartList{} + + return &_this +} + +type CompanionStruct_ConstructorPartList_ struct { +} + +var Companion_ConstructorPartList_ = CompanionStruct_ConstructorPartList_{} + +func (*ConstructorPartList) String() string { + return "CompoundBeacon.ConstructorPartList" +} + +// End of class ConstructorPartList + +func Type_ConstructorPartList_() _dafny.TypeDescriptor { + return type_ConstructorPartList_{} +} + +type type_ConstructorPartList_ struct { +} + +func (_this type_ConstructorPartList_) Default() interface{} { + return _dafny.EmptySeq +} + +func (_this type_ConstructorPartList_) String() string { + return "CompoundBeacon.ConstructorPartList" +} +func (_this *CompanionStruct_ConstructorPartList_) Is_(__source _dafny.Sequence) bool { + var _5_x _dafny.Sequence = (__source) + _ = _5_x + return (_dafny.IntOfUint32((_5_x).Cardinality())).Sign() == 1 +} + +// Definition of datatype Constructor +type Constructor struct { + Data_Constructor_ +} + +func (_this Constructor) Get_() Data_Constructor_ { + return _this.Data_Constructor_ +} + +type Data_Constructor_ interface { + isConstructor() +} + +type CompanionStruct_Constructor_ struct { +} + +var Companion_Constructor_ = CompanionStruct_Constructor_{} + +type Constructor_Constructor struct { + Parts _dafny.Sequence +} + +func (Constructor_Constructor) isConstructor() {} + +func (CompanionStruct_Constructor_) Create_Constructor_(Parts _dafny.Sequence) Constructor { + return Constructor{Constructor_Constructor{Parts}} +} + +func (_this Constructor) Is_Constructor() bool { + _, ok := _this.Get_().(Constructor_Constructor) + return ok +} + +func (CompanionStruct_Constructor_) Default() Constructor { + return Companion_Constructor_.Create_Constructor_(_dafny.EmptySeq) +} + +func (_this Constructor) Dtor_parts() _dafny.Sequence { + return _this.Get_().(Constructor_Constructor).Parts +} + +func (_this Constructor) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case Constructor_Constructor: + { + return "CompoundBeacon.Constructor.Constructor" + "(" + _dafny.String(data.Parts) + ")" + } + default: + { + return "" + } + } +} + +func (_this Constructor) Equals(other Constructor) bool { + switch data1 := _this.Get_().(type) { + case Constructor_Constructor: + { + data2, ok := other.Get_().(Constructor_Constructor) + return ok && data1.Parts.Equals(data2.Parts) + } + default: + { + return false // unexpected + } + } +} + +func (_this Constructor) EqualsGeneric(other interface{}) bool { + typed, ok := other.(Constructor) + return ok && _this.Equals(typed) +} + +func Type_Constructor_() _dafny.TypeDescriptor { + return type_Constructor_{} +} + +type type_Constructor_ struct { +} + +func (_this type_Constructor_) Default() interface{} { + return Companion_Constructor_.Default() +} + +func (_this type_Constructor_) String() string { + return "CompoundBeacon.Constructor" +} +func (_this Constructor) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = Constructor{} + +func (_this Constructor) GetReqParts() _dafny.Set { + { + return func() _dafny.Set { + var _coll0 = _dafny.NewBuilder() + _ = _coll0 + for _iter23 := _dafny.Iterate(((_this).Dtor_parts()).Elements()); ; { + _compr_0, _ok23 := _iter23() + if !_ok23 { + break + } + var _0_k ConstructorPart + _0_k = interface{}(_compr_0).(ConstructorPart) + if (_dafny.Companion_Sequence_.Contains((_this).Dtor_parts(), _0_k)) && ((_0_k).Dtor_required()) { + _coll0.Add((_0_k).Dtor_part()) + } + } + return _coll0.ToSet() + }() + } +} + +// End of datatype Constructor + +// Definition of class ConstructorList +type ConstructorList struct { +} + +func New_ConstructorList_() *ConstructorList { + _this := ConstructorList{} + + return &_this +} + +type CompanionStruct_ConstructorList_ struct { +} + +var Companion_ConstructorList_ = CompanionStruct_ConstructorList_{} + +func (*ConstructorList) String() string { + return "CompoundBeacon.ConstructorList" +} + +// End of class ConstructorList + +func Type_ConstructorList_() _dafny.TypeDescriptor { + return type_ConstructorList_{} +} + +type type_ConstructorList_ struct { +} + +func (_this type_ConstructorList_) Default() interface{} { + return _dafny.EmptySeq +} + +func (_this type_ConstructorList_) String() string { + return "CompoundBeacon.ConstructorList" +} +func (_this *CompanionStruct_ConstructorList_) Is_(__source _dafny.Sequence) bool { + var _1_x _dafny.Sequence = (__source) + _ = _1_x + return (_dafny.IntOfUint32((_1_x).Cardinality())).Sign() == 1 +} + +// Definition of class ValidCompoundBeacon +type ValidCompoundBeacon struct { +} + +func New_ValidCompoundBeacon_() *ValidCompoundBeacon { + _this := ValidCompoundBeacon{} + + return &_this +} + +type CompanionStruct_ValidCompoundBeacon_ struct { +} + +var Companion_ValidCompoundBeacon_ = CompanionStruct_ValidCompoundBeacon_{} + +func (*ValidCompoundBeacon) String() string { + return "CompoundBeacon.ValidCompoundBeacon" +} + +// End of class ValidCompoundBeacon + +func Type_ValidCompoundBeacon_() _dafny.TypeDescriptor { + return type_ValidCompoundBeacon_{} +} + +type type_ValidCompoundBeacon_ struct { +} + +func (_this type_ValidCompoundBeacon_) Default() interface{} { + return Companion_CompoundBeacon_.Default() +} + +func (_this type_ValidCompoundBeacon_) String() string { + return "CompoundBeacon.ValidCompoundBeacon" +} + +// Definition of datatype CompoundBeacon +type CompoundBeacon struct { + Data_CompoundBeacon_ +} + +func (_this CompoundBeacon) Get_() Data_CompoundBeacon_ { + return _this.Data_CompoundBeacon_ +} + +type Data_CompoundBeacon_ interface { + isCompoundBeacon() +} + +type CompanionStruct_CompoundBeacon_ struct { +} + +var Companion_CompoundBeacon_ = CompanionStruct_CompoundBeacon_{} + +type CompoundBeacon_CompoundBeacon struct { + Base m_BaseBeacon.BeaconBase + Split _dafny.Char + Parts _dafny.Sequence + NumSigned _dafny.Int + Construct _dafny.Sequence +} + +func (CompoundBeacon_CompoundBeacon) isCompoundBeacon() {} + +func (CompanionStruct_CompoundBeacon_) Create_CompoundBeacon_(Base m_BaseBeacon.BeaconBase, Split _dafny.Char, Parts _dafny.Sequence, NumSigned _dafny.Int, Construct _dafny.Sequence) CompoundBeacon { + return CompoundBeacon{CompoundBeacon_CompoundBeacon{Base, Split, Parts, NumSigned, Construct}} +} + +func (_this CompoundBeacon) Is_CompoundBeacon() bool { + _, ok := _this.Get_().(CompoundBeacon_CompoundBeacon) + return ok +} + +func (CompanionStruct_CompoundBeacon_) Default() CompoundBeacon { + return Companion_CompoundBeacon_.Create_CompoundBeacon_(m_BaseBeacon.Companion_BeaconBase_.Default(), _dafny.Char('D'), _dafny.EmptySeq, _dafny.Zero, _dafny.EmptySeq) +} + +func (_this CompoundBeacon) Dtor_base() m_BaseBeacon.BeaconBase { + return _this.Get_().(CompoundBeacon_CompoundBeacon).Base +} + +func (_this CompoundBeacon) Dtor_split() _dafny.Char { + return _this.Get_().(CompoundBeacon_CompoundBeacon).Split +} + +func (_this CompoundBeacon) Dtor_parts() _dafny.Sequence { + return _this.Get_().(CompoundBeacon_CompoundBeacon).Parts +} + +func (_this CompoundBeacon) Dtor_numSigned() _dafny.Int { + return _this.Get_().(CompoundBeacon_CompoundBeacon).NumSigned +} + +func (_this CompoundBeacon) Dtor_construct() _dafny.Sequence { + return _this.Get_().(CompoundBeacon_CompoundBeacon).Construct +} + +func (_this CompoundBeacon) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case CompoundBeacon_CompoundBeacon: + { + return "CompoundBeacon.CompoundBeacon.CompoundBeacon" + "(" + _dafny.String(data.Base) + ", " + _dafny.String(data.Split) + ", " + _dafny.String(data.Parts) + ", " + _dafny.String(data.NumSigned) + ", " + _dafny.String(data.Construct) + ")" + } + default: + { + return "" + } + } +} + +func (_this CompoundBeacon) Equals(other CompoundBeacon) bool { + switch data1 := _this.Get_().(type) { + case CompoundBeacon_CompoundBeacon: + { + data2, ok := other.Get_().(CompoundBeacon_CompoundBeacon) + return ok && data1.Base.Equals(data2.Base) && data1.Split == data2.Split && data1.Parts.Equals(data2.Parts) && data1.NumSigned.Cmp(data2.NumSigned) == 0 && data1.Construct.Equals(data2.Construct) + } + default: + { + return false // unexpected + } + } +} + +func (_this CompoundBeacon) EqualsGeneric(other interface{}) bool { + typed, ok := other.(CompoundBeacon) + return ok && _this.Equals(typed) +} + +func Type_CompoundBeacon_() _dafny.TypeDescriptor { + return type_CompoundBeacon_{} +} + +type type_CompoundBeacon_ struct { +} + +func (_this type_CompoundBeacon_) Default() interface{} { + return Companion_CompoundBeacon_.Default() +} + +func (_this type_CompoundBeacon_) String() string { + return "CompoundBeacon.CompoundBeacon" +} +func (_this CompoundBeacon) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = CompoundBeacon{} + +func (_this CompoundBeacon) HasBeacon2(parts _dafny.Sequence, name _dafny.Sequence) bool { + { + goto TAIL_CALL_START + TAIL_CALL_START: + if (_dafny.IntOfUint32((parts).Cardinality())).Sign() == 0 { + return false + } else if _dafny.Companion_Sequence_.Equal(((parts).Select(0).(BeaconPart)).GetName(), name) { + return true + } else { + var _in0 CompoundBeacon = _this + _ = _in0 + var _in1 _dafny.Sequence = (parts).Drop(1) + _ = _in1 + var _in2 _dafny.Sequence = name + _ = _in2 + _this = _in0 + + parts = _in1 + name = _in2 + goto TAIL_CALL_START + } + } +} +func (_this CompoundBeacon) HasBeacon(name _dafny.Sequence) bool { + { + return (_this).HasBeacon2((_this).Dtor_parts(), name) + } +} +func (_this CompoundBeacon) IsEncrypted() bool { + { + return ((_this).Dtor_numSigned()).Cmp(_dafny.IntOfUint32(((_this).Dtor_parts()).Cardinality())) < 0 + } +} +func (_this CompoundBeacon) GetPartFromPrefix(value _dafny.Sequence) m_Wrappers.Result { + { + return (_this).PartFromPrefix((_this).Dtor_parts(), value) + } +} +func (_this CompoundBeacon) PartsToString(p _dafny.Sequence) _dafny.Sequence { + { + var _0_beaconParts _dafny.Sequence = m_Seq.Companion_Default___.Map(func(coer87 func(BeaconPart) _dafny.Sequence) func(interface{}) interface{} { + return func(arg111 interface{}) interface{} { + return coer87(arg111.(BeaconPart)) + } + }(func(_1_s BeaconPart) _dafny.Sequence { + return (_1_s).GetPrefix() + }), p) + _ = _0_beaconParts + if (_dafny.IntOfUint32((_0_beaconParts).Cardinality())).Sign() == 0 { + return _dafny.SeqOfString("") + } else { + return m_StandardLibrary.Companion_Default___.Join(_0_beaconParts, _dafny.SeqOfString("")) + } + } +} +func (_this CompoundBeacon) CPartToString(s ConstructorPart) _dafny.Sequence { + { + if (s).Dtor_required() { + return ((s).Dtor_part()).GetPrefix() + } else { + return _dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.SeqOfString("["), ((s).Dtor_part()).GetPrefix()), _dafny.SeqOfString("]")) + } + } +} +func (_this CompoundBeacon) CPartsToString(p _dafny.Sequence) _dafny.Sequence { + { + var _0_beaconParts _dafny.Sequence = m_Seq.Companion_Default___.Map(func(coer88 func(ConstructorPart) _dafny.Sequence) func(interface{}) interface{} { + return func(arg112 interface{}) interface{} { + return coer88(arg112.(ConstructorPart)) + } + }(func(_1_s ConstructorPart) _dafny.Sequence { + return (_this).CPartToString(_1_s) + }), p) + _ = _0_beaconParts + if (_dafny.IntOfUint32((_0_beaconParts).Cardinality())).Sign() == 0 { + return _dafny.SeqOfString("") + } else { + return m_StandardLibrary.Companion_Default___.Join(_0_beaconParts, _dafny.SeqOfString("")) + } + } +} +func (_this CompoundBeacon) CListToString(p _dafny.Sequence) _dafny.Sequence { + { + var _0_beaconParts _dafny.Sequence = m_Seq.Companion_Default___.Map(func(coer89 func(Constructor) _dafny.Sequence) func(interface{}) interface{} { + return func(arg113 interface{}) interface{} { + return coer89(arg113.(Constructor)) + } + }(func(_1_s Constructor) _dafny.Sequence { + return (_this).CPartsToString((_1_s).Dtor_parts()) + }), p) + _ = _0_beaconParts + return m_StandardLibrary.Companion_Default___.Join(_0_beaconParts, _dafny.SeqOfString(", ")) + } +} +func (_this CompoundBeacon) CanConstruct(con _dafny.Sequence, inParts _dafny.Sequence, matched bool) bool { + { + goto TAIL_CALL_START + TAIL_CALL_START: + if (_dafny.IntOfUint32((inParts).Cardinality())).Sign() == 0 { + return true + } else if (_dafny.IntOfUint32((con).Cardinality())).Sign() == 0 { + return false + } else if (((con).Select(0).(ConstructorPart)).Dtor_part()).Equals((inParts).Select(0).(BeaconPart)) { + var _in0 CompoundBeacon = _this + _ = _in0 + var _in1 _dafny.Sequence = (con).Drop(1) + _ = _in1 + var _in2 _dafny.Sequence = (inParts).Drop(1) + _ = _in2 + var _in3 bool = true + _ = _in3 + _this = _in0 + + con = _in1 + inParts = _in2 + matched = _in3 + goto TAIL_CALL_START + } else if (!(((con).Select(0).(ConstructorPart)).Dtor_required())) || (!(matched)) { + var _in4 CompoundBeacon = _this + _ = _in4 + var _in5 _dafny.Sequence = (con).Drop(1) + _ = _in5 + var _in6 _dafny.Sequence = inParts + _ = _in6 + var _in7 bool = matched + _ = _in7 + _this = _in4 + + con = _in5 + inParts = _in6 + matched = _in7 + goto TAIL_CALL_START + } else { + return false + } + } +} +func (_this CompoundBeacon) IsValidPartOrder(candidates _dafny.Sequence, inParts _dafny.Sequence) bool { + { + goto TAIL_CALL_START + TAIL_CALL_START: + if (_dafny.IntOfUint32((candidates).Cardinality())).Sign() == 0 { + return false + } else if (_this).CanConstruct(((candidates).Select(0).(Constructor)).Dtor_parts(), inParts, false) { + return true + } else { + var _in0 CompoundBeacon = _this + _ = _in0 + var _in1 _dafny.Sequence = (candidates).Drop(1) + _ = _in1 + var _in2 _dafny.Sequence = inParts + _ = _in2 + _this = _in0 + + candidates = _in1 + inParts = _in2 + goto TAIL_CALL_START + } + } +} +func (_this CompoundBeacon) ValidatePartOrder(inParts _dafny.Sequence, orig _dafny.Sequence) m_Wrappers.Result { + { + if (_this).IsValidPartOrder((_this).Dtor_construct(), inParts) { + return m_Wrappers.Companion_Result_.Create_Success_(true) + } else { + var _0_msg _dafny.Sequence = _dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.SeqOfString("Compound Beacon value '"), orig), _dafny.SeqOfString("' cannot be constructed from any available constructor for ")), ((_this).Dtor_base()).Dtor_name()), _dafny.SeqOfString(" value parsed as ")), (_this).PartsToString(inParts)), _dafny.SeqOfString(" available constructors are ")), (_this).CListToString((_this).Dtor_construct())), _dafny.SeqOfString(".")) + _ = _0_msg + return m_Wrappers.Companion_Result_.Create_Failure_(m_DynamoDbEncryptionUtil.Companion_Default___.E(_0_msg)) + } + } +} +func (_this CompoundBeacon) PartFromPrefix(p _dafny.Sequence, value _dafny.Sequence) m_Wrappers.Result { + { + goto TAIL_CALL_START + TAIL_CALL_START: + if (_dafny.IntOfUint32((p).Cardinality())).Sign() == 0 { + return m_Wrappers.Companion_Result_.Create_Failure_(m_DynamoDbEncryptionUtil.Companion_Default___.E(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.SeqOfString("Value "), value), _dafny.SeqOfString(" for beacon ")), ((_this).Dtor_base()).Dtor_name()), _dafny.SeqOfString(" does not match the prefix of any configured part.")))) + } else if _dafny.Companion_Sequence_.IsPrefixOf(((p).Select(0).(BeaconPart)).Dtor_prefix(), value) { + return m_Wrappers.Companion_Result_.Create_Success_((p).Select(0).(BeaconPart)) + } else { + var _in0 CompoundBeacon = _this + _ = _in0 + var _in1 _dafny.Sequence = (p).Drop(1) + _ = _in1 + var _in2 _dafny.Sequence = value + _ = _in2 + _this = _in0 + + p = _in1 + value = _in2 + goto TAIL_CALL_START + } + } +} +func (_this CompoundBeacon) SkipSignedPieces(pieces _dafny.Sequence) m_Wrappers.Result { + { + goto TAIL_CALL_START + TAIL_CALL_START: + if (_dafny.IntOfUint32((pieces).Cardinality())).Sign() == 0 { + return m_Wrappers.Companion_Result_.Create_Success_(pieces) + } else { + var _0_valueOrError0 m_Wrappers.Result = (_this).PartFromPrefix((_this).Dtor_parts(), (pieces).Select(0).(_dafny.Sequence)) + _ = _0_valueOrError0 + if (_0_valueOrError0).IsFailure() { + return (_0_valueOrError0).PropagateFailure() + } else { + var _1_p BeaconPart = (_0_valueOrError0).Extract().(BeaconPart) + _ = _1_p + if (_1_p).Is_Encrypted() { + return m_Wrappers.Companion_Result_.Create_Success_(pieces) + } else { + var _in0 CompoundBeacon = _this + _ = _in0 + var _in1 _dafny.Sequence = (pieces).Drop(1) + _ = _in1 + _this = _in0 + + pieces = _in1 + goto TAIL_CALL_START + } + } + } + } +} +func (_this CompoundBeacon) IsLessThanComparable(pieces _dafny.Sequence) m_Wrappers.Result { + { + var _0_valueOrError0 m_Wrappers.Result = (_this).SkipSignedPieces(pieces) + _ = _0_valueOrError0 + if (_0_valueOrError0).IsFailure() { + return (_0_valueOrError0).PropagateFailure() + } else { + var _1_rest _dafny.Sequence = (_0_valueOrError0).Extract().(_dafny.Sequence) + _ = _1_rest + if (_dafny.IntOfUint32((_1_rest).Cardinality())).Sign() == 0 { + return m_Wrappers.Companion_Result_.Create_Success_(true) + } else if (_dafny.IntOfUint32((_1_rest).Cardinality())).Cmp(_dafny.One) != 0 { + return m_Wrappers.Companion_Result_.Create_Success_(false) + } else { + var _2_valueOrError1 m_Wrappers.Result = (_this).PartFromPrefix((_this).Dtor_parts(), (_1_rest).Select(0).(_dafny.Sequence)) + _ = _2_valueOrError1 + if (_2_valueOrError1).IsFailure() { + return (_2_valueOrError1).PropagateFailure() + } else { + var _3_p BeaconPart = (_2_valueOrError1).Extract().(BeaconPart) + _ = _3_p + return m_Wrappers.Companion_Result_.Create_Success_(_dafny.Companion_Sequence_.Equal((_3_p).Dtor_prefix(), (_1_rest).Select(0).(_dafny.Sequence))) + } + } + } + } +} +func (_this CompoundBeacon) GetFields(virtualFields _dafny.Map) _dafny.Sequence { + { + return m_Seq.Companion_Default___.Flatten(m_Seq.Companion_Default___.Map(func(coer90 func(BeaconPart) _dafny.Sequence) func(interface{}) interface{} { + return func(arg114 interface{}) interface{} { + return coer90(arg114.(BeaconPart)) + } + }((func(_0_virtualFields _dafny.Map) func(BeaconPart) _dafny.Sequence { + return func(_1_p BeaconPart) _dafny.Sequence { + return (_1_p).GetFields(_0_virtualFields) + } + })(virtualFields)), (_this).Dtor_parts())) + } +} +func (_this CompoundBeacon) FindAndCalcPart(value _dafny.Sequence, keys m_DynamoDbEncryptionUtil.MaybeKeyMap) m_Wrappers.Result { + { + var _0_valueOrError0 m_Wrappers.Result = (_this).PartFromPrefix((_this).Dtor_parts(), value) + _ = _0_valueOrError0 + if (_0_valueOrError0).IsFailure() { + return (_0_valueOrError0).PropagateFailure() + } else { + var _1_part BeaconPart = (_0_valueOrError0).Extract().(BeaconPart) + _ = _1_part + return (_this).PartValueCalc((value).Drop((_dafny.IntOfUint32(((_1_part).Dtor_prefix()).Cardinality())).Uint32()), keys, _1_part) + } + } +} +func (_this CompoundBeacon) JustPrefix(value _dafny.Sequence) m_Wrappers.Result { + { + var _0_valueOrError0 m_Wrappers.Result = (_this).PartFromPrefix((_this).Dtor_parts(), value) + _ = _0_valueOrError0 + if (_0_valueOrError0).IsFailure() { + return (_0_valueOrError0).PropagateFailure() + } else { + var _1_part BeaconPart = (_0_valueOrError0).Extract().(BeaconPart) + _ = _1_part + return m_Wrappers.Companion_Result_.Create_Success_(_dafny.Companion_Sequence_.Equal(value, (_1_part).Dtor_prefix())) + } + } +} +func (_this CompoundBeacon) GetBeaconValue(value m_ComAmazonawsDynamodbTypes.AttributeValue, keys m_DynamoDbEncryptionUtil.MaybeKeyMap, forEquality bool) m_Wrappers.Result { + { + if !((value).Is_S()) { + return m_Wrappers.Companion_Result_.Create_Failure_(m_DynamoDbEncryptionUtil.Companion_Default___.E(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.SeqOfString("CompoundBeacon "), ((_this).Dtor_base()).Dtor_name()), _dafny.SeqOfString(" can only be queried as a string, not as ")), m_DynamoDbEncryptionUtil.Companion_Default___.AttrTypeToStr(value)))) + } else { + var _0_parts _dafny.Sequence = m_StandardLibrary.Companion_Default___.Split((value).Dtor_S(), (_this).Dtor_split()) + _ = _0_parts + var _1_valueOrError0 m_Wrappers.Result = m_Seq.Companion_Default___.MapWithResult(func(coer91 func(_dafny.Sequence) m_Wrappers.Result) func(interface{}) m_Wrappers.Result { + return func(arg115 interface{}) m_Wrappers.Result { + return coer91(arg115.(_dafny.Sequence)) + } + }(func(_2_s _dafny.Sequence) m_Wrappers.Result { + return (_this).GetPartFromPrefix(_2_s) + }), _0_parts) + _ = _1_valueOrError0 + if (_1_valueOrError0).IsFailure() { + return (_1_valueOrError0).PropagateFailure() + } else { + var _3_partsUsed _dafny.Sequence = (_1_valueOrError0).Extract().(_dafny.Sequence) + _ = _3_partsUsed + var _4_valueOrError1 m_Wrappers.Result = (_this).ValidatePartOrder(_3_partsUsed, (value).Dtor_S()) + _ = _4_valueOrError1 + if (_4_valueOrError1).IsFailure() { + return (_4_valueOrError1).PropagateFailure() + } else { + var _5___v1 bool = (_4_valueOrError1).Extract().(bool) + _ = _5___v1 + var _6_valueOrError2 m_Wrappers.Result = m_Seq.Companion_Default___.MapWithResult(func(coer92 func(_dafny.Sequence) m_Wrappers.Result) func(interface{}) m_Wrappers.Result { + return func(arg116 interface{}) m_Wrappers.Result { + return coer92(arg116.(_dafny.Sequence)) + } + }((func(_7_keys m_DynamoDbEncryptionUtil.MaybeKeyMap) func(_dafny.Sequence) m_Wrappers.Result { + return func(_8_s _dafny.Sequence) m_Wrappers.Result { + return (_this).FindAndCalcPart(_8_s, _7_keys) + } + })(keys)), _0_parts) + _ = _6_valueOrError2 + if (_6_valueOrError2).IsFailure() { + return (_6_valueOrError2).PropagateFailure() + } else { + var _9_beaconParts _dafny.Sequence = (_6_valueOrError2).Extract().(_dafny.Sequence) + _ = _9_beaconParts + var _10_valueOrError3 m_Wrappers.Result = (_this).JustPrefix(m_Seq.Companion_Default___.Last(_0_parts).(_dafny.Sequence)) + _ = _10_valueOrError3 + if (_10_valueOrError3).IsFailure() { + return (_10_valueOrError3).PropagateFailure() + } else { + var _11_lastIsPrefix bool = (_10_valueOrError3).Extract().(bool) + _ = _11_lastIsPrefix + if (!(forEquality)) && (_11_lastIsPrefix) { + var _12_result _dafny.Sequence = m_StandardLibrary.Companion_Default___.Join(_dafny.Companion_Sequence_.Concatenate((_9_beaconParts).Take(((_dafny.IntOfUint32((_0_parts).Cardinality())).Minus(_dafny.One)).Uint32()), _dafny.SeqOf(m_Seq.Companion_Default___.Last(_0_parts).(_dafny.Sequence))), _dafny.SeqOfChars((_this).Dtor_split())) + _ = _12_result + return m_Wrappers.Companion_Result_.Create_Success_(m_ComAmazonawsDynamodbTypes.Companion_AttributeValue_.Create_S_(_12_result)) + } else { + var _13_result _dafny.Sequence = m_StandardLibrary.Companion_Default___.Join(_9_beaconParts, _dafny.SeqOfChars((_this).Dtor_split())) + _ = _13_result + return m_Wrappers.Companion_Result_.Create_Success_(m_ComAmazonawsDynamodbTypes.Companion_AttributeValue_.Create_S_(_13_result)) + } + } + } + } + } + } + } +} +func (_this CompoundBeacon) TryConstructor(consFields _dafny.Sequence, item _dafny.Map, vf _dafny.Map, keys m_DynamoDbEncryptionUtil.MaybeKeyMap, acc _dafny.Sequence) m_Wrappers.Result { + { + goto TAIL_CALL_START + TAIL_CALL_START: + if (_dafny.IntOfUint32((consFields).Cardinality())).Sign() == 0 { + if (_dafny.IntOfUint32((acc).Cardinality())).Sign() == 0 { + return m_Wrappers.Companion_Result_.Create_Failure_(m_DynamoDbEncryptionUtil.Companion_Default___.E(_dafny.SeqOfString("Internal Error : Empty beacon created."))) + } else { + return m_Wrappers.Companion_Result_.Create_Success_(m_Wrappers.Companion_Option_.Create_Some_(acc)) + } + } else { + var _0_part BeaconPart = ((consFields).Select(0).(ConstructorPart)).Dtor_part() + _ = _0_part + var _1_valueOrError0 m_Wrappers.Result = (_0_part).GetString(item, vf) + _ = _1_valueOrError0 + if (_1_valueOrError0).IsFailure() { + return (_1_valueOrError0).PropagateFailure() + } else { + var _2_strValue m_Wrappers.Option = (_1_valueOrError0).Extract().(m_Wrappers.Option) + _ = _2_strValue + if (_2_strValue).Is_Some() { + var _3_valueOrError1 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need(!_dafny.Companion_Sequence_.Contains((_2_strValue).Dtor_value().(_dafny.Sequence), (_this).Dtor_split()), m_DynamoDbEncryptionUtil.Companion_Default___.E(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.SeqOfString("Part "), (_0_part).GetName()), _dafny.SeqOfString(" for beacon ")), ((_this).Dtor_base()).Dtor_name()), _dafny.SeqOfString(" has value '")), (_2_strValue).Dtor_value().(_dafny.Sequence)), _dafny.SeqOfString("' which contains the split character ")), _dafny.SeqOfChars((_this).Dtor_split())), _dafny.SeqOfString("'.")))) + _ = _3_valueOrError1 + if (_3_valueOrError1).IsFailure() { + return (_3_valueOrError1).PropagateFailure() + } else { + var _4_valueOrError2 m_Wrappers.Result = (func() m_Wrappers.Result { + if (keys).Is_DontUseKeys() { + return m_Wrappers.Companion_Result_.Create_Success_(_dafny.Companion_Sequence_.Concatenate((_0_part).Dtor_prefix(), (_2_strValue).Dtor_value().(_dafny.Sequence))) + } + return (_this).PartValueCalc((_2_strValue).Dtor_value().(_dafny.Sequence), keys, _0_part) + })() + _ = _4_valueOrError2 + if (_4_valueOrError2).IsFailure() { + return (_4_valueOrError2).PropagateFailure() + } else { + var _5_val _dafny.Sequence = (_4_valueOrError2).Extract().(_dafny.Sequence) + _ = _5_val + if (_dafny.IntOfUint32((acc).Cardinality())).Sign() == 0 { + var _in0 CompoundBeacon = _this + _ = _in0 + var _in1 _dafny.Sequence = (consFields).Drop(1) + _ = _in1 + var _in2 _dafny.Map = item + _ = _in2 + var _in3 _dafny.Map = vf + _ = _in3 + var _in4 m_DynamoDbEncryptionUtil.MaybeKeyMap = keys + _ = _in4 + var _in5 _dafny.Sequence = _5_val + _ = _in5 + _this = _in0 + + consFields = _in1 + item = _in2 + vf = _in3 + keys = _in4 + acc = _in5 + goto TAIL_CALL_START + } else { + var _in6 CompoundBeacon = _this + _ = _in6 + var _in7 _dafny.Sequence = (consFields).Drop(1) + _ = _in7 + var _in8 _dafny.Map = item + _ = _in8 + var _in9 _dafny.Map = vf + _ = _in9 + var _in10 m_DynamoDbEncryptionUtil.MaybeKeyMap = keys + _ = _in10 + var _in11 _dafny.Sequence = _dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(acc, _dafny.SeqOfChars((_this).Dtor_split())), _5_val) + _ = _in11 + _this = _in6 + + consFields = _in7 + item = _in8 + vf = _in9 + keys = _in10 + acc = _in11 + goto TAIL_CALL_START + } + } + } + } else if ((consFields).Select(0).(ConstructorPart)).Dtor_required() { + return m_Wrappers.Companion_Result_.Create_Success_(m_Wrappers.Companion_Option_.Create_None_()) + } else { + var _in12 CompoundBeacon = _this + _ = _in12 + var _in13 _dafny.Sequence = (consFields).Drop(1) + _ = _in13 + var _in14 _dafny.Map = item + _ = _in14 + var _in15 _dafny.Map = vf + _ = _in15 + var _in16 m_DynamoDbEncryptionUtil.MaybeKeyMap = keys + _ = _in16 + var _in17 _dafny.Sequence = acc + _ = _in17 + _this = _in12 + + consFields = _in13 + item = _in14 + vf = _in15 + keys = _in16 + acc = _in17 + goto TAIL_CALL_START + } + } + } + } +} +func (_this CompoundBeacon) TryConstructors(construct _dafny.Sequence, item _dafny.Map, vf _dafny.Map, keys m_DynamoDbEncryptionUtil.MaybeKeyMap) m_Wrappers.Result { + { + goto TAIL_CALL_START + TAIL_CALL_START: + if (_dafny.IntOfUint32((construct).Cardinality())).Sign() == 0 { + return m_Wrappers.Companion_Result_.Create_Success_(m_Wrappers.Companion_Option_.Create_None_()) + } else { + var _0_valueOrError0 m_Wrappers.Result = (_this).TryConstructor(((construct).Select(0).(Constructor)).Dtor_parts(), item, vf, keys, _dafny.SeqOfString("")) + _ = _0_valueOrError0 + if (_0_valueOrError0).IsFailure() { + return (_0_valueOrError0).PropagateFailure() + } else { + var _1_x m_Wrappers.Option = (_0_valueOrError0).Extract().(m_Wrappers.Option) + _ = _1_x + if (_1_x).Is_Some() { + return m_Wrappers.Companion_Result_.Create_Success_(_1_x) + } else { + var _in0 CompoundBeacon = _this + _ = _in0 + var _in1 _dafny.Sequence = (construct).Drop(1) + _ = _in1 + var _in2 _dafny.Map = item + _ = _in2 + var _in3 _dafny.Map = vf + _ = _in3 + var _in4 m_DynamoDbEncryptionUtil.MaybeKeyMap = keys + _ = _in4 + _this = _in0 + + construct = _in1 + item = _in2 + vf = _in3 + keys = _in4 + goto TAIL_CALL_START + } + } + } + } +} +func (_this CompoundBeacon) Hash(item _dafny.Map, vf _dafny.Map, keys m_DynamoDbEncryptionUtil.MaybeKeyMap) m_Wrappers.Result { + { + return (_this).TryConstructors((_this).Dtor_construct(), item, vf, keys) + } +} +func (_this CompoundBeacon) GetNaked(item _dafny.Map, vf _dafny.Map) m_Wrappers.Result { + { + return (_this).TryConstructors((_this).Dtor_construct(), item, vf, m_DynamoDbEncryptionUtil.Companion_MaybeKeyMap_.Create_DontUseKeys_()) + } +} +func (_this CompoundBeacon) FindPart(val _dafny.Sequence) m_Wrappers.Result { + { + var _0_thePart _dafny.Sequence = m_Seq.Companion_Default___.Filter(func(coer93 func(BeaconPart) bool) func(interface{}) bool { + return func(arg117 interface{}) bool { + return coer93(arg117.(BeaconPart)) + } + }((func(_1_val _dafny.Sequence) func(BeaconPart) bool { + return func(_2_x BeaconPart) bool { + return _dafny.Companion_Sequence_.IsPrefixOf((_2_x).Dtor_prefix(), _1_val) + } + })(val)), (_this).Dtor_parts()) + _ = _0_thePart + if (_dafny.IntOfUint32((_0_thePart).Cardinality())).Sign() == 0 { + return m_Wrappers.Companion_Result_.Create_Failure_(m_DynamoDbEncryptionUtil.Companion_Default___.E(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.SeqOfString("No part found in beacon "), ((_this).Dtor_base()).Dtor_name()), _dafny.SeqOfString(" match prefix ")), val))) + } else if (_dafny.IntOfUint32((_0_thePart).Cardinality())).Cmp(_dafny.One) > 0 { + return m_Wrappers.Companion_Result_.Create_Failure_(m_DynamoDbEncryptionUtil.Companion_Default___.E(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.SeqOfString("Internal error. Multiple parts for beacon "), ((_this).Dtor_base()).Dtor_name()), _dafny.SeqOfString(" matched prefix of ")), val))) + } else { + return m_Wrappers.Companion_Result_.Create_Success_((_0_thePart).Select(0).(BeaconPart)) + } + } +} +func (_this CompoundBeacon) GetPart(val _dafny.Sequence, keys _dafny.Map) m_Wrappers.Result { + { + var _0_pieces _dafny.Sequence = m_StandardLibrary.Companion_Default___.Split(val, (_this).Dtor_split()) + _ = _0_pieces + return (_this).CalcParts(_0_pieces, keys, _dafny.SeqOfChars()) + } +} +func (_this CompoundBeacon) CalcPart(piece _dafny.Sequence, keys _dafny.Map) m_Wrappers.Result { + { + var _0_valueOrError0 m_Wrappers.Result = (_this).FindPart(piece) + _ = _0_valueOrError0 + if (_0_valueOrError0).IsFailure() { + return (_0_valueOrError0).PropagateFailure() + } else { + var _1_thePart BeaconPart = (_0_valueOrError0).Extract().(BeaconPart) + _ = _1_thePart + return (_this).PartValueCalc(piece, m_DynamoDbEncryptionUtil.Companion_MaybeKeyMap_.Create_Keys_(keys), _1_thePart) + } + } +} +func (_this CompoundBeacon) CalcParts(pieces _dafny.Sequence, keys _dafny.Map, acc _dafny.Sequence) m_Wrappers.Result { + { + goto TAIL_CALL_START + TAIL_CALL_START: + if (_dafny.IntOfUint32((pieces).Cardinality())).Sign() == 0 { + return m_Wrappers.Companion_Result_.Create_Success_(acc) + } else { + var _0_valueOrError0 m_Wrappers.Result = (_this).CalcPart((pieces).Select(0).(_dafny.Sequence), keys) + _ = _0_valueOrError0 + if (_0_valueOrError0).IsFailure() { + return (_0_valueOrError0).PropagateFailure() + } else { + var _1_theBeacon _dafny.Sequence = (_0_valueOrError0).Extract().(_dafny.Sequence) + _ = _1_theBeacon + if (_dafny.IntOfUint32((acc).Cardinality())).Sign() == 0 { + var _in0 CompoundBeacon = _this + _ = _in0 + var _in1 _dafny.Sequence = (pieces).Drop(1) + _ = _in1 + var _in2 _dafny.Map = keys + _ = _in2 + var _in3 _dafny.Sequence = _1_theBeacon + _ = _in3 + _this = _in0 + + pieces = _in1 + keys = _in2 + acc = _in3 + goto TAIL_CALL_START + } else { + var _in4 CompoundBeacon = _this + _ = _in4 + var _in5 _dafny.Sequence = (pieces).Drop(1) + _ = _in5 + var _in6 _dafny.Map = keys + _ = _in6 + var _in7 _dafny.Sequence = _dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(acc, _dafny.SeqOfChars((_this).Dtor_split())), _1_theBeacon) + _ = _in7 + _this = _in4 + + pieces = _in5 + keys = _in6 + acc = _in7 + goto TAIL_CALL_START + } + } + } + } +} +func (_static CompanionStruct_CompoundBeacon_) OkPrefixStringPair(x _dafny.Sequence, y _dafny.Sequence) bool { + return (!(_dafny.Companion_Sequence_.IsPrefixOf(x, y))) && (!(_dafny.Companion_Sequence_.IsPrefixOf(y, x))) +} +func (_this CompoundBeacon) OkPrefixPair(pos1 _dafny.Int, pos2 _dafny.Int) bool { + { + return ((pos1).Cmp(pos2) == 0) || (Companion_CompoundBeacon_.OkPrefixStringPair((((_this).Dtor_parts()).Select((pos1).Uint32()).(BeaconPart)).Dtor_prefix(), (((_this).Dtor_parts()).Select((pos2).Uint32()).(BeaconPart)).Dtor_prefix())) + } +} +func (_this CompoundBeacon) CheckOnePrefixPart(pos1 _dafny.Int, pos2 _dafny.Int) m_Wrappers.Result { + { + if !((_this).OkPrefixPair(pos1, pos2)) { + return m_Wrappers.Companion_Result_.Create_Failure_(m_DynamoDbEncryptionUtil.Companion_Default___.E(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.SeqOfString("Compound beacon "), ((_this).Dtor_base()).Dtor_name()), _dafny.SeqOfString(" defines part ")), (((_this).Dtor_parts()).Select((pos1).Uint32()).(BeaconPart)).GetName()), _dafny.SeqOfString(" with prefix ")), (((_this).Dtor_parts()).Select((pos1).Uint32()).(BeaconPart)).Dtor_prefix()), _dafny.SeqOfString(" which is incompatible with part ")), (((_this).Dtor_parts()).Select((pos2).Uint32()).(BeaconPart)).GetName()), _dafny.SeqOfString(" which has a prefix of ")), (((_this).Dtor_parts()).Select((pos2).Uint32()).(BeaconPart)).Dtor_prefix()), _dafny.SeqOfString(".")))) + } else { + return m_Wrappers.Companion_Result_.Create_Success_(true) + } + } +} +func (_this CompoundBeacon) CheckOnePrefix(pos _dafny.Int) m_Wrappers.Result { + { + var _0_partNumbers _dafny.Sequence = _dafny.SeqCreate((_dafny.IntOfUint32(((_this).Dtor_parts()).Cardinality())).Uint32(), func(coer94 func(_dafny.Int) _dafny.Int) func(_dafny.Int) interface{} { + return func(arg118 _dafny.Int) interface{} { + return coer94(arg118) + } + }(func(_1_i _dafny.Int) _dafny.Int { + return _1_i + })) + _ = _0_partNumbers + var _2_valueOrError0 m_Wrappers.Result = m_Seq.Companion_Default___.MapWithResult(func(coer95 func(_dafny.Int) m_Wrappers.Result) func(interface{}) m_Wrappers.Result { + return func(arg119 interface{}) m_Wrappers.Result { + return coer95(arg119.(_dafny.Int)) + } + }((func(_3_pos _dafny.Int) func(_dafny.Int) m_Wrappers.Result { + return func(_4_p _dafny.Int) m_Wrappers.Result { + return (_this).CheckOnePrefixPart(_3_pos, _4_p) + } + })(pos)), _dafny.SeqCreate((_dafny.IntOfUint32(((_this).Dtor_parts()).Cardinality())).Uint32(), func(coer96 func(_dafny.Int) _dafny.Int) func(_dafny.Int) interface{} { + return func(arg120 _dafny.Int) interface{} { + return coer96(arg120) + } + }(func(_5_i _dafny.Int) _dafny.Int { + return _5_i + }))) + _ = _2_valueOrError0 + if (_2_valueOrError0).IsFailure() { + return (_2_valueOrError0).PropagateFailure() + } else { + var _6___v2 _dafny.Sequence = (_2_valueOrError0).Extract().(_dafny.Sequence) + _ = _6___v2 + return m_Wrappers.Companion_Result_.Create_Success_(true) + } + } +} +func (_this CompoundBeacon) ValidPrefixSetResultPos(index _dafny.Int) m_Wrappers.Result { + { + goto TAIL_CALL_START + TAIL_CALL_START: + if (_dafny.IntOfUint32(((_this).Dtor_parts()).Cardinality())).Cmp(index) <= 0 { + return m_Wrappers.Companion_Result_.Create_Success_(true) + } else { + var _0_valueOrError0 m_Wrappers.Result = (_this).CheckOnePrefix(index) + _ = _0_valueOrError0 + if (_0_valueOrError0).IsFailure() { + return (_0_valueOrError0).PropagateFailure() + } else { + var _1___v3 bool = (_0_valueOrError0).Extract().(bool) + _ = _1___v3 + var _in0 CompoundBeacon = _this + _ = _in0 + var _in1 _dafny.Int = (index).Plus(_dafny.One) + _ = _in1 + _this = _in0 + + index = _in1 + goto TAIL_CALL_START + } + } + } +} +func (_this CompoundBeacon) ValidPrefixSetResult() m_Wrappers.Result { + { + var _0_valueOrError0 m_Wrappers.Result = (_this).ValidPrefixSetResultPos(_dafny.Zero) + _ = _0_valueOrError0 + if (_0_valueOrError0).IsFailure() { + return (_0_valueOrError0).PropagateFailure() + } else { + var _1___v4 bool = (_0_valueOrError0).Extract().(bool) + _ = _1___v4 + if _dafny.Quantifier(_dafny.IntegerRange(_dafny.Zero, _dafny.IntOfUint32(((_this).Dtor_parts()).Cardinality())), true, func(_forall_var_0 _dafny.Int) bool { + var _2_x _dafny.Int + _2_x = interface{}(_forall_var_0).(_dafny.Int) + if m__System.Companion_Nat_.Is_(_2_x) { + return _dafny.Quantifier(_dafny.IntegerRange(_dafny.Zero, _dafny.IntOfUint32(((_this).Dtor_parts()).Cardinality())), true, func(_forall_var_1 _dafny.Int) bool { + var _3_y _dafny.Int + _3_y = interface{}(_forall_var_1).(_dafny.Int) + if m__System.Companion_Nat_.Is_(_3_y) { + return !((((_2_x).Sign() != -1) && ((_2_x).Cmp(_dafny.IntOfUint32(((_this).Dtor_parts()).Cardinality())) < 0)) && (((_2_x).Cmp(_3_y) < 0) && ((_3_y).Cmp(_dafny.IntOfUint32(((_this).Dtor_parts()).Cardinality())) < 0))) || ((_this).OkPrefixPair(_2_x, _3_y)) + } else { + return true + } + }) + } else { + return true + } + }) { + return m_Wrappers.Companion_Result_.Create_Success_(true) + } else { + return m_Wrappers.Companion_Result_.Create_Failure_(m_DynamoDbEncryptionUtil.Companion_Default___.E(_dafny.SeqOfString("Internal Error"))) + } + } + } +} +func (_this CompoundBeacon) PartValueCalc(data _dafny.Sequence, keys m_DynamoDbEncryptionUtil.MaybeKeyMap, part BeaconPart) m_Wrappers.Result { + { + var _0_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need(!_dafny.Companion_Sequence_.Contains(data, (_this).Dtor_split()), m_DynamoDbEncryptionUtil.Companion_Default___.E(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.SeqOfString("Value '"), data), _dafny.SeqOfString("' for beacon part ")), (part).GetName()), _dafny.SeqOfString(" contains the split character '")), _dafny.SeqOfChars((_this).Dtor_split())), _dafny.SeqOfString("'.")))) + _ = _0_valueOrError0 + if (_0_valueOrError0).IsFailure() { + return (_0_valueOrError0).PropagateFailure() + } else { + var _source0 BeaconPart = part + _ = _source0 + { + if _source0.Is_Encrypted() { + var _1_p _dafny.Sequence = _source0.Get_().(BeaconPart_Encrypted).Prefix + _ = _1_p + var _2_b m_BaseBeacon.StandardBeacon = _source0.Get_().(BeaconPart_Encrypted).Beacon + _ = _2_b + var _3_valueOrError1 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need((keys).Is_Keys(), m_DynamoDbEncryptionUtil.Companion_Default___.E(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.SeqOfString("Need KeyId for beacon "), ((_2_b).Dtor_base()).Dtor_name()), _dafny.SeqOfString(" but no KeyId found in query.")))) + _ = _3_valueOrError1 + if (_3_valueOrError1).IsFailure() { + return (_3_valueOrError1).PropagateFailure() + } else { + var _4_valueOrError2 m_Wrappers.Result = (_2_b).HashStr(data, (keys).Dtor_value()) + _ = _4_valueOrError2 + if (_4_valueOrError2).IsFailure() { + return (_4_valueOrError2).PropagateFailure() + } else { + var _5_hash _dafny.Sequence = (_4_valueOrError2).Extract().(_dafny.Sequence) + _ = _5_hash + return m_Wrappers.Companion_Result_.Create_Success_(_dafny.Companion_Sequence_.Concatenate((part).Dtor_prefix(), _5_hash)) + } + } + } + } + { + var _6_Signed BeaconPart = _source0 + _ = _6_Signed + return m_Wrappers.Companion_Result_.Create_Success_(_dafny.Companion_Sequence_.Concatenate((part).Dtor_prefix(), data)) + } + } + } +} + +// End of datatype CompoundBeacon diff --git a/customer-preview/ddb-esdk/DdbMiddlewareConfig/DdbMiddlewareConfig.go b/customer-preview/ddb-esdk/DdbMiddlewareConfig/DdbMiddlewareConfig.go new file mode 100644 index 000000000..2d3d3312b --- /dev/null +++ b/customer-preview/ddb-esdk/DdbMiddlewareConfig/DdbMiddlewareConfig.go @@ -0,0 +1,645 @@ +// Package DdbMiddlewareConfig +// Dafny module DdbMiddlewareConfig compiled into Go + +package DdbMiddlewareConfig + +import ( + os "os" + + m_ComAmazonawsDynamodbTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/ComAmazonawsDynamodbTypes" + m_Com_Amazonaws_Dynamodb "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/Com_Amazonaws_Dynamodb" + m_ComAmazonawsKmsTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/ComAmazonawsKmsTypes" + m_Com_Amazonaws_Kms "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/Com_Amazonaws_Kms" + m_AlgorithmSuites "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AlgorithmSuites" + m_AwsArnParsing "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsArnParsing" + m_AwsCryptographyKeyStoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreOperations" + m_AwsCryptographyKeyStoreTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreTypes" + m_AwsCryptographyMaterialProvidersOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersOperations" + m_AwsCryptographyMaterialProvidersTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersTypes" + m_AwsKmsDiscoveryKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsDiscoveryKeyring" + m_AwsKmsEcdhKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsEcdhKeyring" + m_AwsKmsHierarchicalKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsHierarchicalKeyring" + m_AwsKmsKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsKeyring" + m_AwsKmsMrkAreUnique "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkAreUnique" + m_AwsKmsMrkDiscoveryKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkDiscoveryKeyring" + m_AwsKmsMrkKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkKeyring" + m_AwsKmsMrkMatchForDecrypt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkMatchForDecrypt" + m_AwsKmsRsaKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsRsaKeyring" + m_AwsKmsUtils "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsUtils" + m_CMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CMM" + m_CacheConstants "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CacheConstants" + m_CanonicalEncryptionContext "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CanonicalEncryptionContext" + m_Commitment "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Commitment" + m_Constants "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Constants" + m_CreateKeyStoreTable "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeyStoreTable" + m_CreateKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeys" + m_DDBKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DDBKeystoreOperations" + m_DefaultCMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DefaultCMM" + m_DefaultClientSupplier "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DefaultClientSupplier" + m_Defaults "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Defaults" + m_DiscoveryMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DiscoveryMultiKeyring" + m_EcdhEdkWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/EcdhEdkWrapping" + m_EdkWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/EdkWrapping" + m_ErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/ErrorMessages" + m_GetKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/GetKeys" + m_IntermediateKeyWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/IntermediateKeyWrapping" + m_KMSKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KMSKeystoreOperations" + m_KeyStore "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStore" + m_KeyStoreErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStoreErrorMessages" + m_Keyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Keyring" + m_KmsArn "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KmsArn" + m_LocalCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/LocalCMC" + m_MaterialProviders "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MaterialProviders" + m_MaterialWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MaterialWrapping" + m_Materials "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Materials" + m_MrkAwareDiscoveryMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MrkAwareDiscoveryMultiKeyring" + m_MrkAwareStrictMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MrkAwareStrictMultiKeyring" + m_MultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MultiKeyring" + m_RawAESKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawAESKeyring" + m_RawECDHKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawECDHKeyring" + m_RawRSAKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawRSAKeyring" + m_RequiredEncryptionContextCMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RequiredEncryptionContextCMM" + m_StormTracker "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StormTracker" + m_StormTrackingCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StormTrackingCMC" + m_StrictMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StrictMultiKeyring" + m_Structure "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Structure" + m_SynchronizedLocalCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/SynchronizedLocalCMC" + m_Utils "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Utils" + m_AtomicPrimitives "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AtomicPrimitives" + m_AwsCryptographyPrimitivesOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesOperations" + m_AwsCryptographyPrimitivesTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesTypes" + m_Digest "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Digest" + m_HKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/HKDF" + m_KdfCtr "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/KdfCtr" + m_Random "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Random" + m_WrappedHKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHKDF" + m_WrappedHMAC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHMAC" + m_Actions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Actions" + m_Base64 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64" + m_Base64Lemmas "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64Lemmas" + m_BoundedInts "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/BoundedInts" + m_DivInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternals" + m_DivInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternalsNonlinear" + m_DivMod "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivMod" + m_FileIO "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FileIO" + m_FloatCompare "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FloatCompare" + m_Functions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Functions" + m_GeneralInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GeneralInternals" + m_GetOpt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GetOpt" + m_HexStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/HexStrings" + m_Logarithm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Logarithm" + m__Math "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Math_" + m_ModInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternals" + m_ModInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternalsNonlinear" + m_Mul "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Mul" + m_MulInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternals" + m_MulInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternalsNonlinear" + m_Power "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Power" + m_Relations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Relations" + m_Seq "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq" + m_Seq_MergeSort "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq_MergeSort" + m_Sorting "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Sorting" + m_StandardLibrary "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary" + m_StandardLibraryInterop "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibraryInterop" + m_StandardLibrary_Sequence "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_Sequence" + m_StandardLibrary_String "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_String" + m_StandardLibrary_UInt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_UInt" + m_Streams "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Streams" + m_UnicodeStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UnicodeStrings" + m__Unicode "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Unicode_" + m_Utf16EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf16EncodingForm" + m_Utf8EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf8EncodingForm" + m_Wrappers "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers" + m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorOperations "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorOperations" + m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes" + m_AwsCryptographyDbEncryptionSdkDynamoDbOperations "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbOperations" + m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes" + m_AwsCryptographyDbEncryptionSdkDynamoDbTypes "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbTypes" + m_AwsCryptographyDbEncryptionSdkStructuredEncryptionOperations "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkStructuredEncryptionOperations" + m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes" + m_BaseBeacon "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/BaseBeacon" + m_Canonize "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/Canonize" + m_CompoundBeacon "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/CompoundBeacon" + m_DdbVirtualFields "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DdbVirtualFields" + m_DynamoDBFilterExpr "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDBFilterExpr" + m_DynamoDBSupport "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDBSupport" + m_DynamoDbEncryption "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbEncryption" + m_DynamoDbEncryptionBranchKeyIdSupplier "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbEncryptionBranchKeyIdSupplier" + m_DynamoDbEncryptionUtil "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbEncryptionUtil" + m_DynamoDbItemEncryptor "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbItemEncryptor" + m_DynamoDbItemEncryptorUtil "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbItemEncryptorUtil" + m_DynamoDbNormalizeNumber "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbNormalizeNumber" + m_DynamoDbUpdateExpr "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbUpdateExpr" + m_DynamoToStruct "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoToStruct" + m_InternalLegacyOverride "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/InternalLegacyOverride" + m__Maps "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/Maps_" + m_SearchConfigToInfo "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/SearchConfigToInfo" + m_SearchableEncryptionInfo "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/SearchableEncryptionInfo" + m_Sets "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/Sets" + m_SortCanon "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/SortCanon" + m_StructuredEncryption "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryption" + m_StructuredEncryptionCrypt "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionCrypt" + m_StructuredEncryptionFooter "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionFooter" + m_StructuredEncryptionHeader "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionHeader" + m_StructuredEncryptionPaths "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionPaths" + m_StructuredEncryptionUtil "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionUtil" + m_TermLoc "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/TermLoc" + m__System "github.com/dafny-lang/DafnyRuntimeGo/v4/System_" + _dafny "github.com/dafny-lang/DafnyRuntimeGo/v4/dafny" +) + +var _ = os.Args +var _ _dafny.Dummy__ +var _ m__System.Dummy__ +var _ m_Wrappers.Dummy__ +var _ m_BoundedInts.Dummy__ +var _ m_StandardLibrary_UInt.Dummy__ +var _ m_StandardLibrary_Sequence.Dummy__ +var _ m_StandardLibrary_String.Dummy__ +var _ m_StandardLibrary.Dummy__ +var _ m_AwsCryptographyPrimitivesTypes.Dummy__ +var _ m_Random.Dummy__ +var _ m_Digest.Dummy__ +var _ m_WrappedHMAC.Dummy__ +var _ m_HKDF.Dummy__ +var _ m_WrappedHKDF.Dummy__ +var _ m_KdfCtr.Dummy__ +var _ m_AwsCryptographyPrimitivesOperations.Dummy__ +var _ m_AtomicPrimitives.Dummy__ +var _ m_ComAmazonawsDynamodbTypes.Dummy__ +var _ m_ComAmazonawsKmsTypes.Dummy__ +var _ m_AwsCryptographyKeyStoreTypes.Dummy__ +var _ m_AwsCryptographyMaterialProvidersTypes.Dummy__ +var _ m_Base64.Dummy__ +var _ m_AlgorithmSuites.Dummy__ +var _ m_Materials.Dummy__ +var _ m_Keyring.Dummy__ +var _ m_Relations.Dummy__ +var _ m_Seq_MergeSort.Dummy__ +var _ m__Math.Dummy__ +var _ m_Seq.Dummy__ +var _ m_MultiKeyring.Dummy__ +var _ m_AwsArnParsing.Dummy__ +var _ m_AwsKmsMrkAreUnique.Dummy__ +var _ m_Actions.Dummy__ +var _ m_AwsKmsMrkMatchForDecrypt.Dummy__ +var _ m_AwsKmsUtils.Dummy__ +var _ m_Constants.Dummy__ +var _ m_MaterialWrapping.Dummy__ +var _ m_CanonicalEncryptionContext.Dummy__ +var _ m_IntermediateKeyWrapping.Dummy__ +var _ m_EdkWrapping.Dummy__ +var _ m_ErrorMessages.Dummy__ +var _ m_AwsKmsKeyring.Dummy__ +var _ m_StrictMultiKeyring.Dummy__ +var _ m_AwsKmsDiscoveryKeyring.Dummy__ +var _ m_Com_Amazonaws_Kms.Dummy__ +var _ m_Com_Amazonaws_Dynamodb.Dummy__ +var _ m_DiscoveryMultiKeyring.Dummy__ +var _ m_AwsKmsMrkDiscoveryKeyring.Dummy__ +var _ m_MrkAwareDiscoveryMultiKeyring.Dummy__ +var _ m_AwsKmsMrkKeyring.Dummy__ +var _ m_MrkAwareStrictMultiKeyring.Dummy__ +var _ m_LocalCMC.Dummy__ +var _ m_SynchronizedLocalCMC.Dummy__ +var _ m_StormTracker.Dummy__ +var _ m_StormTrackingCMC.Dummy__ +var _ m_CacheConstants.Dummy__ +var _ m_AwsKmsHierarchicalKeyring.Dummy__ +var _ m_AwsKmsRsaKeyring.Dummy__ +var _ m_EcdhEdkWrapping.Dummy__ +var _ m_RawECDHKeyring.Dummy__ +var _ m_AwsKmsEcdhKeyring.Dummy__ +var _ m_RawAESKeyring.Dummy__ +var _ m_RawRSAKeyring.Dummy__ +var _ m_CMM.Dummy__ +var _ m_Defaults.Dummy__ +var _ m_Commitment.Dummy__ +var _ m_DefaultCMM.Dummy__ +var _ m_DefaultClientSupplier.Dummy__ +var _ m_Utils.Dummy__ +var _ m_RequiredEncryptionContextCMM.Dummy__ +var _ m_AwsCryptographyMaterialProvidersOperations.Dummy__ +var _ m_MaterialProviders.Dummy__ +var _ m_KeyStoreErrorMessages.Dummy__ +var _ m_KmsArn.Dummy__ +var _ m_Structure.Dummy__ +var _ m_KMSKeystoreOperations.Dummy__ +var _ m_DDBKeystoreOperations.Dummy__ +var _ m_CreateKeys.Dummy__ +var _ m_CreateKeyStoreTable.Dummy__ +var _ m_GetKeys.Dummy__ +var _ m_AwsCryptographyKeyStoreOperations.Dummy__ +var _ m_KeyStore.Dummy__ +var _ m__Unicode.Dummy__ +var _ m_Functions.Dummy__ +var _ m_Utf8EncodingForm.Dummy__ +var _ m_Utf16EncodingForm.Dummy__ +var _ m_UnicodeStrings.Dummy__ +var _ m_FileIO.Dummy__ +var _ m_GeneralInternals.Dummy__ +var _ m_MulInternalsNonlinear.Dummy__ +var _ m_MulInternals.Dummy__ +var _ m_Mul.Dummy__ +var _ m_ModInternalsNonlinear.Dummy__ +var _ m_DivInternalsNonlinear.Dummy__ +var _ m_ModInternals.Dummy__ +var _ m_DivInternals.Dummy__ +var _ m_DivMod.Dummy__ +var _ m_Power.Dummy__ +var _ m_Logarithm.Dummy__ +var _ m_StandardLibraryInterop.Dummy__ +var _ m_Streams.Dummy__ +var _ m_Sorting.Dummy__ +var _ m_HexStrings.Dummy__ +var _ m_GetOpt.Dummy__ +var _ m_FloatCompare.Dummy__ +var _ m_Base64Lemmas.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Dummy__ +var _ m_StructuredEncryptionUtil.Dummy__ +var _ m_Sets.Dummy__ +var _ m_StructuredEncryptionPaths.Dummy__ +var _ m_StructuredEncryptionHeader.Dummy__ +var _ m_StructuredEncryptionFooter.Dummy__ +var _ m_SortCanon.Dummy__ +var _ m_Canonize.Dummy__ +var _ m_StructuredEncryptionCrypt.Dummy__ +var _ m__Maps.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkStructuredEncryptionOperations.Dummy__ +var _ m_StructuredEncryption.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Dummy__ +var _ m_DynamoDbEncryptionUtil.Dummy__ +var _ m_DynamoDbNormalizeNumber.Dummy__ +var _ m_DynamoToStruct.Dummy__ +var _ m_DynamoDbItemEncryptorUtil.Dummy__ +var _ m_InternalLegacyOverride.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorOperations.Dummy__ +var _ m_DynamoDbItemEncryptor.Dummy__ +var _ m_DynamoDbEncryptionBranchKeyIdSupplier.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkDynamoDbOperations.Dummy__ +var _ m_DynamoDbEncryption.Dummy__ +var _ m_TermLoc.Dummy__ +var _ m_DdbVirtualFields.Dummy__ +var _ m_DynamoDbUpdateExpr.Dummy__ +var _ m_BaseBeacon.Dummy__ +var _ m_CompoundBeacon.Dummy__ +var _ m_SearchableEncryptionInfo.Dummy__ +var _ m_DynamoDBFilterExpr.Dummy__ +var _ m_DynamoDBSupport.Dummy__ +var _ m_SearchConfigToInfo.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Dummy__ + +type Dummy__ struct{} + +// Definition of class Default__ +type Default__ struct { + dummy byte +} + +func New_Default___() *Default__ { + _this := Default__{} + + return &_this +} + +type CompanionStruct_Default___ struct { +} + +var Companion_Default___ = CompanionStruct_Default___{} + +func (_this *Default__) Equals(other *Default__) bool { + return _this == other +} + +func (_this *Default__) EqualsGeneric(x interface{}) bool { + other, ok := x.(*Default__) + return ok && _this.Equals(other) +} + +func (*Default__) String() string { + return "DdbMiddlewareConfig.Default__" +} +func (_this *Default__) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = &Default__{} + +func (_static *CompanionStruct_Default___) IsPlainWrite(config Config, tableName _dafny.Sequence) bool { + return (!((config).Dtor_tableEncryptionConfigs()).Contains(tableName)) || (((((config).Dtor_tableEncryptionConfigs()).Get(tableName).(TableConfig)).Dtor_plaintextOverride()).Equals(m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_PlaintextOverride_.Create_FORCE__PLAINTEXT__WRITE__ALLOW__PLAINTEXT__READ_())) +} +func (_static *CompanionStruct_Default___) AttrToString(attr m_ComAmazonawsDynamodbTypes.AttributeValue) _dafny.Sequence { + if (attr).Is_S() { + return (attr).Dtor_S() + } else if (attr).Is_N() { + return (attr).Dtor_N() + } else if (attr).Is_B() { + return m_HexStrings.Companion_Default___.ToHexString((attr).Dtor_B()) + } else { + return _dafny.SeqOfString("unexpected key type") + } +} +func (_static *CompanionStruct_Default___) KeyString(config TableConfig, item _dafny.Map) _dafny.Sequence { + var _0_partition _dafny.Sequence = (func() _dafny.Sequence { + if (item).Contains((config).Dtor_partitionKeyName()) { + return _dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate((config).Dtor_partitionKeyName(), _dafny.SeqOfString(" = ")), Companion_Default___.AttrToString((item).Get((config).Dtor_partitionKeyName()).(m_ComAmazonawsDynamodbTypes.AttributeValue))) + } + return _dafny.SeqOfString("") + })() + _ = _0_partition + var _1_sort _dafny.Sequence = (func() _dafny.Sequence { + if (((config).Dtor_sortKeyName()).Is_Some()) && ((item).Contains(((config).Dtor_sortKeyName()).Dtor_value().(_dafny.Sequence))) { + return _dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.SeqOfString("; "), ((config).Dtor_sortKeyName()).Dtor_value().(_dafny.Sequence)), _dafny.SeqOfString(" = ")), Companion_Default___.AttrToString((item).Get(((config).Dtor_sortKeyName()).Dtor_value().(_dafny.Sequence)).(m_ComAmazonawsDynamodbTypes.AttributeValue))) + } + return _dafny.SeqOfString("") + })() + _ = _1_sort + return _dafny.Companion_Sequence_.Concatenate(_0_partition, _1_sort) +} +func (_static *CompanionStruct_Default___) MapError(r m_Wrappers.Result) m_Wrappers.Result { + return (r).MapFailure(func(coer139 func(m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Error) m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Error) func(interface{}) interface{} { + return func(arg173 interface{}) interface{} { + return coer139(arg173.(m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Error)) + } + }(func(_0_e m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Error) m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Error { + return m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_Error_.Create_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptor_(_0_e) + })) +} +func (_static *CompanionStruct_Default___) MapString(r m_Wrappers.Result) m_Wrappers.Result { + return (r).MapFailure(func(coer140 func(_dafny.Sequence) m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Error) func(interface{}) interface{} { + return func(arg174 interface{}) interface{} { + return coer140(arg174.(_dafny.Sequence)) + } + }(func(_0_e _dafny.Sequence) m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Error { + return m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_Error_.Create_DynamoDbEncryptionTransformsException_(_0_e) + })) +} +func (_static *CompanionStruct_Default___) E(s _dafny.Sequence) m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Error { + return m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_Error_.Create_DynamoDbEncryptionTransformsException_(s) +} +func (_static *CompanionStruct_Default___) MakeError(s _dafny.Sequence) m_Wrappers.Result { + return m_Wrappers.Companion_Result_.Create_Failure_(m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_Error_.Create_DynamoDbEncryptionTransformsException_(s)) +} + +// End of class Default__ + +// Definition of datatype TableConfig +type TableConfig struct { + Data_TableConfig_ +} + +func (_this TableConfig) Get_() Data_TableConfig_ { + return _this.Data_TableConfig_ +} + +type Data_TableConfig_ interface { + isTableConfig() +} + +type CompanionStruct_TableConfig_ struct { +} + +var Companion_TableConfig_ = CompanionStruct_TableConfig_{} + +type TableConfig_TableConfig struct { + PhysicalTableName _dafny.Sequence + LogicalTableName _dafny.Sequence + PartitionKeyName _dafny.Sequence + SortKeyName m_Wrappers.Option + ItemEncryptor *m_DynamoDbItemEncryptor.DynamoDbItemEncryptorClient + Search m_Wrappers.Option + PlaintextOverride m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.PlaintextOverride +} + +func (TableConfig_TableConfig) isTableConfig() {} + +func (CompanionStruct_TableConfig_) Create_TableConfig_(PhysicalTableName _dafny.Sequence, LogicalTableName _dafny.Sequence, PartitionKeyName _dafny.Sequence, SortKeyName m_Wrappers.Option, ItemEncryptor *m_DynamoDbItemEncryptor.DynamoDbItemEncryptorClient, Search m_Wrappers.Option, PlaintextOverride m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.PlaintextOverride) TableConfig { + return TableConfig{TableConfig_TableConfig{PhysicalTableName, LogicalTableName, PartitionKeyName, SortKeyName, ItemEncryptor, Search, PlaintextOverride}} +} + +func (_this TableConfig) Is_TableConfig() bool { + _, ok := _this.Get_().(TableConfig_TableConfig) + return ok +} + +func (CompanionStruct_TableConfig_) Default() TableConfig { + return Companion_TableConfig_.Create_TableConfig_(_dafny.EmptySeq.SetString(), _dafny.EmptySeq.SetString(), _dafny.EmptySeq.SetString(), m_Wrappers.Companion_Option_.Default(), (*m_DynamoDbItemEncryptor.DynamoDbItemEncryptorClient)(nil), m_Wrappers.Companion_Option_.Default(), m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_PlaintextOverride_.Default()) +} + +func (_this TableConfig) Dtor_physicalTableName() _dafny.Sequence { + return _this.Get_().(TableConfig_TableConfig).PhysicalTableName +} + +func (_this TableConfig) Dtor_logicalTableName() _dafny.Sequence { + return _this.Get_().(TableConfig_TableConfig).LogicalTableName +} + +func (_this TableConfig) Dtor_partitionKeyName() _dafny.Sequence { + return _this.Get_().(TableConfig_TableConfig).PartitionKeyName +} + +func (_this TableConfig) Dtor_sortKeyName() m_Wrappers.Option { + return _this.Get_().(TableConfig_TableConfig).SortKeyName +} + +func (_this TableConfig) Dtor_itemEncryptor() *m_DynamoDbItemEncryptor.DynamoDbItemEncryptorClient { + return _this.Get_().(TableConfig_TableConfig).ItemEncryptor +} + +func (_this TableConfig) Dtor_search() m_Wrappers.Option { + return _this.Get_().(TableConfig_TableConfig).Search +} + +func (_this TableConfig) Dtor_plaintextOverride() m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.PlaintextOverride { + return _this.Get_().(TableConfig_TableConfig).PlaintextOverride +} + +func (_this TableConfig) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case TableConfig_TableConfig: + { + return "DdbMiddlewareConfig.TableConfig.TableConfig" + "(" + _dafny.String(data.PhysicalTableName) + ", " + _dafny.String(data.LogicalTableName) + ", " + _dafny.String(data.PartitionKeyName) + ", " + _dafny.String(data.SortKeyName) + ", " + _dafny.String(data.ItemEncryptor) + ", " + _dafny.String(data.Search) + ", " + _dafny.String(data.PlaintextOverride) + ")" + } + default: + { + return "" + } + } +} + +func (_this TableConfig) Equals(other TableConfig) bool { + switch data1 := _this.Get_().(type) { + case TableConfig_TableConfig: + { + data2, ok := other.Get_().(TableConfig_TableConfig) + return ok && data1.PhysicalTableName.Equals(data2.PhysicalTableName) && data1.LogicalTableName.Equals(data2.LogicalTableName) && data1.PartitionKeyName.Equals(data2.PartitionKeyName) && data1.SortKeyName.Equals(data2.SortKeyName) && data1.ItemEncryptor == data2.ItemEncryptor && data1.Search.Equals(data2.Search) && data1.PlaintextOverride.Equals(data2.PlaintextOverride) + } + default: + { + return false // unexpected + } + } +} + +func (_this TableConfig) EqualsGeneric(other interface{}) bool { + typed, ok := other.(TableConfig) + return ok && _this.Equals(typed) +} + +func Type_TableConfig_() _dafny.TypeDescriptor { + return type_TableConfig_{} +} + +type type_TableConfig_ struct { +} + +func (_this type_TableConfig_) Default() interface{} { + return Companion_TableConfig_.Default() +} + +func (_this type_TableConfig_) String() string { + return "DdbMiddlewareConfig.TableConfig" +} +func (_this TableConfig) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = TableConfig{} + +// End of datatype TableConfig + +// Definition of class ValidTableConfig +type ValidTableConfig struct { +} + +func New_ValidTableConfig_() *ValidTableConfig { + _this := ValidTableConfig{} + + return &_this +} + +type CompanionStruct_ValidTableConfig_ struct { +} + +var Companion_ValidTableConfig_ = CompanionStruct_ValidTableConfig_{} + +func (*ValidTableConfig) String() string { + return "DdbMiddlewareConfig.ValidTableConfig" +} + +// End of class ValidTableConfig + +func Type_ValidTableConfig_() _dafny.TypeDescriptor { + return type_ValidTableConfig_{} +} + +type type_ValidTableConfig_ struct { +} + +func (_this type_ValidTableConfig_) Default() interface{} { + return Companion_TableConfig_.Default() +} + +func (_this type_ValidTableConfig_) String() string { + return "DdbMiddlewareConfig.ValidTableConfig" +} + +// Definition of datatype Config +type Config struct { + Data_Config_ +} + +func (_this Config) Get_() Data_Config_ { + return _this.Data_Config_ +} + +type Data_Config_ interface { + isConfig() +} + +type CompanionStruct_Config_ struct { +} + +var Companion_Config_ = CompanionStruct_Config_{} + +type Config_Config struct { + TableEncryptionConfigs _dafny.Map +} + +func (Config_Config) isConfig() {} + +func (CompanionStruct_Config_) Create_Config_(TableEncryptionConfigs _dafny.Map) Config { + return Config{Config_Config{TableEncryptionConfigs}} +} + +func (_this Config) Is_Config() bool { + _, ok := _this.Get_().(Config_Config) + return ok +} + +func (CompanionStruct_Config_) Default() Config { + return Companion_Config_.Create_Config_(_dafny.EmptyMap) +} + +func (_this Config) Dtor_tableEncryptionConfigs() _dafny.Map { + return _this.Get_().(Config_Config).TableEncryptionConfigs +} + +func (_this Config) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case Config_Config: + { + return "DdbMiddlewareConfig.Config.Config" + "(" + _dafny.String(data.TableEncryptionConfigs) + ")" + } + default: + { + return "" + } + } +} + +func (_this Config) Equals(other Config) bool { + switch data1 := _this.Get_().(type) { + case Config_Config: + { + data2, ok := other.Get_().(Config_Config) + return ok && data1.TableEncryptionConfigs.Equals(data2.TableEncryptionConfigs) + } + default: + { + return false // unexpected + } + } +} + +func (_this Config) EqualsGeneric(other interface{}) bool { + typed, ok := other.(Config) + return ok && _this.Equals(typed) +} + +func Type_Config_() _dafny.TypeDescriptor { + return type_Config_{} +} + +type type_Config_ struct { +} + +func (_this type_Config_) Default() interface{} { + return Companion_Config_.Default() +} + +func (_this type_Config_) String() string { + return "DdbMiddlewareConfig.Config" +} +func (_this Config) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = Config{} + +// End of datatype Config diff --git a/customer-preview/ddb-esdk/DdbStatement/DdbStatement.go b/customer-preview/ddb-esdk/DdbStatement/DdbStatement.go new file mode 100644 index 000000000..6ee326845 --- /dev/null +++ b/customer-preview/ddb-esdk/DdbStatement/DdbStatement.go @@ -0,0 +1,574 @@ +// Package DdbStatement +// Dafny module DdbStatement compiled into Go + +package DdbStatement + +import ( + os "os" + + m_ComAmazonawsDynamodbTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/ComAmazonawsDynamodbTypes" + m_Com_Amazonaws_Dynamodb "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/Com_Amazonaws_Dynamodb" + m_ComAmazonawsKmsTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/ComAmazonawsKmsTypes" + m_Com_Amazonaws_Kms "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/Com_Amazonaws_Kms" + m_AlgorithmSuites "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AlgorithmSuites" + m_AwsArnParsing "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsArnParsing" + m_AwsCryptographyKeyStoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreOperations" + m_AwsCryptographyKeyStoreTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreTypes" + m_AwsCryptographyMaterialProvidersOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersOperations" + m_AwsCryptographyMaterialProvidersTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersTypes" + m_AwsKmsDiscoveryKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsDiscoveryKeyring" + m_AwsKmsEcdhKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsEcdhKeyring" + m_AwsKmsHierarchicalKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsHierarchicalKeyring" + m_AwsKmsKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsKeyring" + m_AwsKmsMrkAreUnique "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkAreUnique" + m_AwsKmsMrkDiscoveryKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkDiscoveryKeyring" + m_AwsKmsMrkKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkKeyring" + m_AwsKmsMrkMatchForDecrypt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkMatchForDecrypt" + m_AwsKmsRsaKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsRsaKeyring" + m_AwsKmsUtils "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsUtils" + m_CMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CMM" + m_CacheConstants "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CacheConstants" + m_CanonicalEncryptionContext "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CanonicalEncryptionContext" + m_Commitment "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Commitment" + m_Constants "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Constants" + m_CreateKeyStoreTable "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeyStoreTable" + m_CreateKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeys" + m_DDBKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DDBKeystoreOperations" + m_DefaultCMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DefaultCMM" + m_DefaultClientSupplier "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DefaultClientSupplier" + m_Defaults "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Defaults" + m_DiscoveryMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DiscoveryMultiKeyring" + m_EcdhEdkWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/EcdhEdkWrapping" + m_EdkWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/EdkWrapping" + m_ErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/ErrorMessages" + m_GetKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/GetKeys" + m_IntermediateKeyWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/IntermediateKeyWrapping" + m_KMSKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KMSKeystoreOperations" + m_KeyStore "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStore" + m_KeyStoreErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStoreErrorMessages" + m_Keyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Keyring" + m_KmsArn "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KmsArn" + m_LocalCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/LocalCMC" + m_MaterialProviders "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MaterialProviders" + m_MaterialWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MaterialWrapping" + m_Materials "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Materials" + m_MrkAwareDiscoveryMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MrkAwareDiscoveryMultiKeyring" + m_MrkAwareStrictMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MrkAwareStrictMultiKeyring" + m_MultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MultiKeyring" + m_RawAESKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawAESKeyring" + m_RawECDHKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawECDHKeyring" + m_RawRSAKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawRSAKeyring" + m_RequiredEncryptionContextCMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RequiredEncryptionContextCMM" + m_StormTracker "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StormTracker" + m_StormTrackingCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StormTrackingCMC" + m_StrictMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StrictMultiKeyring" + m_Structure "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Structure" + m_SynchronizedLocalCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/SynchronizedLocalCMC" + m_Utils "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Utils" + m_AtomicPrimitives "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AtomicPrimitives" + m_AwsCryptographyPrimitivesOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesOperations" + m_AwsCryptographyPrimitivesTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesTypes" + m_Digest "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Digest" + m_HKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/HKDF" + m_KdfCtr "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/KdfCtr" + m_Random "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Random" + m_WrappedHKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHKDF" + m_WrappedHMAC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHMAC" + m_Actions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Actions" + m_Base64 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64" + m_Base64Lemmas "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64Lemmas" + m_BoundedInts "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/BoundedInts" + m_DivInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternals" + m_DivInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternalsNonlinear" + m_DivMod "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivMod" + m_FileIO "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FileIO" + m_FloatCompare "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FloatCompare" + m_Functions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Functions" + m_GeneralInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GeneralInternals" + m_GetOpt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GetOpt" + m_HexStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/HexStrings" + m_Logarithm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Logarithm" + m__Math "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Math_" + m_ModInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternals" + m_ModInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternalsNonlinear" + m_Mul "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Mul" + m_MulInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternals" + m_MulInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternalsNonlinear" + m_Power "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Power" + m_Relations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Relations" + m_Seq "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq" + m_Seq_MergeSort "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq_MergeSort" + m_Sorting "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Sorting" + m_StandardLibrary "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary" + m_StandardLibraryInterop "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibraryInterop" + m_StandardLibrary_Sequence "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_Sequence" + m_StandardLibrary_String "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_String" + m_StandardLibrary_UInt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_UInt" + m_Streams "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Streams" + m_UnicodeStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UnicodeStrings" + m__Unicode "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Unicode_" + m_Utf16EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf16EncodingForm" + m_Utf8EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf8EncodingForm" + m_Wrappers "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers" + m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorOperations "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorOperations" + m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes" + m_AwsCryptographyDbEncryptionSdkDynamoDbOperations "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbOperations" + m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes" + m_AwsCryptographyDbEncryptionSdkDynamoDbTypes "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbTypes" + m_AwsCryptographyDbEncryptionSdkStructuredEncryptionOperations "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkStructuredEncryptionOperations" + m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes" + m_BaseBeacon "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/BaseBeacon" + m_Canonize "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/Canonize" + m_CompoundBeacon "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/CompoundBeacon" + m_DdbMiddlewareConfig "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DdbMiddlewareConfig" + m_DdbVirtualFields "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DdbVirtualFields" + m_DynamoDBFilterExpr "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDBFilterExpr" + m_DynamoDBSupport "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDBSupport" + m_DynamoDbEncryption "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbEncryption" + m_DynamoDbEncryptionBranchKeyIdSupplier "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbEncryptionBranchKeyIdSupplier" + m_DynamoDbEncryptionUtil "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbEncryptionUtil" + m_DynamoDbItemEncryptor "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbItemEncryptor" + m_DynamoDbItemEncryptorUtil "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbItemEncryptorUtil" + m_DynamoDbNormalizeNumber "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbNormalizeNumber" + m_DynamoDbUpdateExpr "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbUpdateExpr" + m_DynamoToStruct "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoToStruct" + m_InternalLegacyOverride "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/InternalLegacyOverride" + m__Maps "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/Maps_" + m_SearchConfigToInfo "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/SearchConfigToInfo" + m_SearchableEncryptionInfo "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/SearchableEncryptionInfo" + m_Sets "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/Sets" + m_SortCanon "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/SortCanon" + m_StructuredEncryption "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryption" + m_StructuredEncryptionCrypt "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionCrypt" + m_StructuredEncryptionFooter "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionFooter" + m_StructuredEncryptionHeader "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionHeader" + m_StructuredEncryptionPaths "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionPaths" + m_StructuredEncryptionUtil "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionUtil" + m_TermLoc "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/TermLoc" + m__System "github.com/dafny-lang/DafnyRuntimeGo/v4/System_" + _dafny "github.com/dafny-lang/DafnyRuntimeGo/v4/dafny" +) + +var _ = os.Args +var _ _dafny.Dummy__ +var _ m__System.Dummy__ +var _ m_Wrappers.Dummy__ +var _ m_BoundedInts.Dummy__ +var _ m_StandardLibrary_UInt.Dummy__ +var _ m_StandardLibrary_Sequence.Dummy__ +var _ m_StandardLibrary_String.Dummy__ +var _ m_StandardLibrary.Dummy__ +var _ m_AwsCryptographyPrimitivesTypes.Dummy__ +var _ m_Random.Dummy__ +var _ m_Digest.Dummy__ +var _ m_WrappedHMAC.Dummy__ +var _ m_HKDF.Dummy__ +var _ m_WrappedHKDF.Dummy__ +var _ m_KdfCtr.Dummy__ +var _ m_AwsCryptographyPrimitivesOperations.Dummy__ +var _ m_AtomicPrimitives.Dummy__ +var _ m_ComAmazonawsDynamodbTypes.Dummy__ +var _ m_ComAmazonawsKmsTypes.Dummy__ +var _ m_AwsCryptographyKeyStoreTypes.Dummy__ +var _ m_AwsCryptographyMaterialProvidersTypes.Dummy__ +var _ m_Base64.Dummy__ +var _ m_AlgorithmSuites.Dummy__ +var _ m_Materials.Dummy__ +var _ m_Keyring.Dummy__ +var _ m_Relations.Dummy__ +var _ m_Seq_MergeSort.Dummy__ +var _ m__Math.Dummy__ +var _ m_Seq.Dummy__ +var _ m_MultiKeyring.Dummy__ +var _ m_AwsArnParsing.Dummy__ +var _ m_AwsKmsMrkAreUnique.Dummy__ +var _ m_Actions.Dummy__ +var _ m_AwsKmsMrkMatchForDecrypt.Dummy__ +var _ m_AwsKmsUtils.Dummy__ +var _ m_Constants.Dummy__ +var _ m_MaterialWrapping.Dummy__ +var _ m_CanonicalEncryptionContext.Dummy__ +var _ m_IntermediateKeyWrapping.Dummy__ +var _ m_EdkWrapping.Dummy__ +var _ m_ErrorMessages.Dummy__ +var _ m_AwsKmsKeyring.Dummy__ +var _ m_StrictMultiKeyring.Dummy__ +var _ m_AwsKmsDiscoveryKeyring.Dummy__ +var _ m_Com_Amazonaws_Kms.Dummy__ +var _ m_Com_Amazonaws_Dynamodb.Dummy__ +var _ m_DiscoveryMultiKeyring.Dummy__ +var _ m_AwsKmsMrkDiscoveryKeyring.Dummy__ +var _ m_MrkAwareDiscoveryMultiKeyring.Dummy__ +var _ m_AwsKmsMrkKeyring.Dummy__ +var _ m_MrkAwareStrictMultiKeyring.Dummy__ +var _ m_LocalCMC.Dummy__ +var _ m_SynchronizedLocalCMC.Dummy__ +var _ m_StormTracker.Dummy__ +var _ m_StormTrackingCMC.Dummy__ +var _ m_CacheConstants.Dummy__ +var _ m_AwsKmsHierarchicalKeyring.Dummy__ +var _ m_AwsKmsRsaKeyring.Dummy__ +var _ m_EcdhEdkWrapping.Dummy__ +var _ m_RawECDHKeyring.Dummy__ +var _ m_AwsKmsEcdhKeyring.Dummy__ +var _ m_RawAESKeyring.Dummy__ +var _ m_RawRSAKeyring.Dummy__ +var _ m_CMM.Dummy__ +var _ m_Defaults.Dummy__ +var _ m_Commitment.Dummy__ +var _ m_DefaultCMM.Dummy__ +var _ m_DefaultClientSupplier.Dummy__ +var _ m_Utils.Dummy__ +var _ m_RequiredEncryptionContextCMM.Dummy__ +var _ m_AwsCryptographyMaterialProvidersOperations.Dummy__ +var _ m_MaterialProviders.Dummy__ +var _ m_KeyStoreErrorMessages.Dummy__ +var _ m_KmsArn.Dummy__ +var _ m_Structure.Dummy__ +var _ m_KMSKeystoreOperations.Dummy__ +var _ m_DDBKeystoreOperations.Dummy__ +var _ m_CreateKeys.Dummy__ +var _ m_CreateKeyStoreTable.Dummy__ +var _ m_GetKeys.Dummy__ +var _ m_AwsCryptographyKeyStoreOperations.Dummy__ +var _ m_KeyStore.Dummy__ +var _ m__Unicode.Dummy__ +var _ m_Functions.Dummy__ +var _ m_Utf8EncodingForm.Dummy__ +var _ m_Utf16EncodingForm.Dummy__ +var _ m_UnicodeStrings.Dummy__ +var _ m_FileIO.Dummy__ +var _ m_GeneralInternals.Dummy__ +var _ m_MulInternalsNonlinear.Dummy__ +var _ m_MulInternals.Dummy__ +var _ m_Mul.Dummy__ +var _ m_ModInternalsNonlinear.Dummy__ +var _ m_DivInternalsNonlinear.Dummy__ +var _ m_ModInternals.Dummy__ +var _ m_DivInternals.Dummy__ +var _ m_DivMod.Dummy__ +var _ m_Power.Dummy__ +var _ m_Logarithm.Dummy__ +var _ m_StandardLibraryInterop.Dummy__ +var _ m_Streams.Dummy__ +var _ m_Sorting.Dummy__ +var _ m_HexStrings.Dummy__ +var _ m_GetOpt.Dummy__ +var _ m_FloatCompare.Dummy__ +var _ m_Base64Lemmas.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Dummy__ +var _ m_StructuredEncryptionUtil.Dummy__ +var _ m_Sets.Dummy__ +var _ m_StructuredEncryptionPaths.Dummy__ +var _ m_StructuredEncryptionHeader.Dummy__ +var _ m_StructuredEncryptionFooter.Dummy__ +var _ m_SortCanon.Dummy__ +var _ m_Canonize.Dummy__ +var _ m_StructuredEncryptionCrypt.Dummy__ +var _ m__Maps.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkStructuredEncryptionOperations.Dummy__ +var _ m_StructuredEncryption.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Dummy__ +var _ m_DynamoDbEncryptionUtil.Dummy__ +var _ m_DynamoDbNormalizeNumber.Dummy__ +var _ m_DynamoToStruct.Dummy__ +var _ m_DynamoDbItemEncryptorUtil.Dummy__ +var _ m_InternalLegacyOverride.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorOperations.Dummy__ +var _ m_DynamoDbItemEncryptor.Dummy__ +var _ m_DynamoDbEncryptionBranchKeyIdSupplier.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkDynamoDbOperations.Dummy__ +var _ m_DynamoDbEncryption.Dummy__ +var _ m_TermLoc.Dummy__ +var _ m_DdbVirtualFields.Dummy__ +var _ m_DynamoDbUpdateExpr.Dummy__ +var _ m_BaseBeacon.Dummy__ +var _ m_CompoundBeacon.Dummy__ +var _ m_SearchableEncryptionInfo.Dummy__ +var _ m_DynamoDBFilterExpr.Dummy__ +var _ m_DynamoDBSupport.Dummy__ +var _ m_SearchConfigToInfo.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Dummy__ +var _ m_DdbMiddlewareConfig.Dummy__ + +type Dummy__ struct{} + +// Definition of class Default__ +type Default__ struct { + dummy byte +} + +func New_Default___() *Default__ { + _this := Default__{} + + return &_this +} + +type CompanionStruct_Default___ struct { +} + +var Companion_Default___ = CompanionStruct_Default___{} + +func (_this *Default__) Equals(other *Default__) bool { + return _this == other +} + +func (_this *Default__) EqualsGeneric(x interface{}) bool { + other, ok := x.(*Default__) + return ok && _this.Equals(other) +} + +func (*Default__) String() string { + return "DdbStatement.Default__" +} +func (_this *Default__) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = &Default__{} + +func (_static *CompanionStruct_Default___) UnQuote(s _dafny.Sequence) _dafny.Sequence { + var _0_s _dafny.Sequence = (func() _dafny.Sequence { + if ((_dafny.IntOfUint32((s).Cardinality())).Sign() == 1) && (((s).Select(0).(_dafny.Char)) == (_dafny.Char('"'))) { + return (s).Drop(1) + } + return s + })() + _ = _0_s + if ((_dafny.IntOfUint32((_0_s).Cardinality())).Sign() == 1) && (((_0_s).Select(((_dafny.IntOfUint32((_0_s).Cardinality())).Minus(_dafny.One)).Uint32()).(_dafny.Char)) == (_dafny.Char('"'))) { + return (_0_s).Subsequence(0, ((_dafny.IntOfUint32((_0_s).Cardinality())).Minus(_dafny.One)).Uint32()) + } else { + return _0_s + } +} +func (_static *CompanionStruct_Default___) GetTableName(s _dafny.Sequence) m_Wrappers.Option { + var _0_s _dafny.Sequence = Companion_Default___.UnQuote(s) + _ = _0_s + if m_ComAmazonawsDynamodbTypes.Companion_Default___.IsValid__TableName(_0_s) { + return m_Wrappers.Companion_Option_.Create_Some_(_0_s) + } else { + return m_Wrappers.Companion_Option_.Create_None_() + } +} +func (_static *CompanionStruct_Default___) TableFromStatement(s _dafny.Sequence) m_Wrappers.Result { + var _0_ret m_Wrappers.Option = Companion_Default___.TableFromStatementInner(s) + _ = _0_ret + if (_0_ret).Is_Some() { + return m_Wrappers.Companion_Result_.Create_Success_((_0_ret).Dtor_value().(_dafny.Sequence)) + } else { + return m_Wrappers.Companion_Result_.Create_Failure_(_dafny.SeqOfString("Unable to extract table name from PartiQL statement.")) + } +} +func (_static *CompanionStruct_Default___) TableFromStatementInner(s _dafny.Sequence) m_Wrappers.Option { + var _0_s _dafny.Sequence = Companion_Default___.StripLeadingWhitespace(s) + _ = _0_s + if ((_dafny.IntOfUint32((_0_s).Cardinality())).Cmp(_dafny.IntOfInt64(6)) > 0) && (_dafny.Companion_Sequence_.Equal(Companion_Default___.AsciiLower((_0_s).Subsequence(0, 6)), _dafny.SeqOfString("exists"))) { + return Companion_Default___.TableFromExistsStatement((_0_s).Drop(6)) + } else { + var _1_len _dafny.Int = Companion_Default___.FindTokenLen(_0_s) + _ = _1_len + var _2_cmd _dafny.Sequence = Companion_Default___.AsciiLower((_0_s).Take((_1_len).Uint32())) + _ = _2_cmd + if _dafny.Companion_Sequence_.Equal(_2_cmd, _dafny.SeqOfString("select")) { + return Companion_Default___.TableFromSelectStatement((_0_s).Drop((_1_len).Uint32())) + } else if _dafny.Companion_Sequence_.Equal(_2_cmd, _dafny.SeqOfString("update")) { + return Companion_Default___.TableFromUpdateStatement((_0_s).Drop((_1_len).Uint32())) + } else if _dafny.Companion_Sequence_.Equal(_2_cmd, _dafny.SeqOfString("delete")) { + return Companion_Default___.TableFromDeleteStatement((_0_s).Drop((_1_len).Uint32())) + } else if _dafny.Companion_Sequence_.Equal(_2_cmd, _dafny.SeqOfString("insert")) { + return Companion_Default___.TableFromInsertStatement((_0_s).Drop((_1_len).Uint32())) + } else { + return m_Wrappers.Companion_Option_.Create_None_() + } + } +} +func (_static *CompanionStruct_Default___) TableFromSelectStatementInner(s _dafny.Sequence) m_Wrappers.Option { + goto TAIL_CALL_START +TAIL_CALL_START: + if (_dafny.IntOfUint32((s).Cardinality())).Sign() == 0 { + return m_Wrappers.Companion_Option_.Create_None_() + } else { + var _0_t _dafny.Sequence = Companion_Default___.StripLeadingWhitespace(s) + _ = _0_t + var _1_len _dafny.Int = Companion_Default___.FindTokenLen(_0_t) + _ = _1_len + if _dafny.Companion_Sequence_.Equal(Companion_Default___.AsciiLower((_0_t).Take((_1_len).Uint32())), _dafny.SeqOfString("from")) { + var _2_t _dafny.Sequence = Companion_Default___.StripLeadingWhitespace((_0_t).Drop((_1_len).Uint32())) + _ = _2_t + var _3_len _dafny.Int = Companion_Default___.FindTokenLen(_2_t) + _ = _3_len + return m_Wrappers.Companion_Option_.Create_Some_((_2_t).Take((_3_len).Uint32())) + } else if (_1_len).Sign() == 0 { + return m_Wrappers.Companion_Option_.Create_None_() + } else { + var _in0 _dafny.Sequence = (_0_t).Drop((_1_len).Uint32()) + _ = _in0 + s = _in0 + goto TAIL_CALL_START + } + } +} +func (_static *CompanionStruct_Default___) TableFromExistsStatement(s _dafny.Sequence) m_Wrappers.Option { + var _0_s _dafny.Sequence = Companion_Default___.StripLeadingWhitespace(s) + _ = _0_s + if ((_dafny.IntOfUint32((_0_s).Cardinality())).Sign() == 0) || (((_0_s).Select(0).(_dafny.Char)) != (_dafny.Char('(')) /* dircomp */) { + return m_Wrappers.Companion_Option_.Create_None_() + } else { + var _1_s _dafny.Sequence = Companion_Default___.StripLeadingWhitespace((_0_s).Drop(1)) + _ = _1_s + var _2_len _dafny.Int = Companion_Default___.FindTokenLen(_1_s) + _ = _2_len + if _dafny.Companion_Sequence_.Equal(Companion_Default___.AsciiLower((_1_s).Take((_2_len).Uint32())), _dafny.SeqOfString("select")) { + return Companion_Default___.TableFromSelectStatement((_1_s).Drop((_2_len).Uint32())) + } else { + return m_Wrappers.Companion_Option_.Create_None_() + } + } +} +func (_static *CompanionStruct_Default___) TableFromSelectStatement(s _dafny.Sequence) m_Wrappers.Option { + var _0_valueOrError0 m_Wrappers.Option = Companion_Default___.TableFromSelectStatementInner(s) + _ = _0_valueOrError0 + if (_0_valueOrError0).IsFailure() { + return (_0_valueOrError0).PropagateFailure() + } else { + var _1_name _dafny.Sequence = (_0_valueOrError0).Extract().(_dafny.Sequence) + _ = _1_name + if _dafny.Companion_Sequence_.Contains(_1_name, _dafny.Char('.')) { + var _2_x _dafny.Tuple = m_StandardLibrary.Companion_Default___.SplitOnce(_1_name, _dafny.Char('.')) + _ = _2_x + return Companion_Default___.GetTableName((*(_2_x).IndexInt(0)).(_dafny.Sequence)) + } else { + return Companion_Default___.GetTableName(_1_name) + } + } +} +func (_static *CompanionStruct_Default___) TableFromUpdateStatement(s _dafny.Sequence) m_Wrappers.Option { + var _0_s _dafny.Sequence = Companion_Default___.StripLeadingWhitespace(s) + _ = _0_s + var _1_len _dafny.Int = Companion_Default___.FindTokenLen(_0_s) + _ = _1_len + if (_1_len).Sign() == 0 { + return m_Wrappers.Companion_Option_.Create_None_() + } else { + return Companion_Default___.GetTableName((_0_s).Take((_1_len).Uint32())) + } +} +func (_static *CompanionStruct_Default___) TableFromDeleteStatement(s _dafny.Sequence) m_Wrappers.Option { + var _0_s _dafny.Sequence = Companion_Default___.StripLeadingWhitespace(s) + _ = _0_s + var _1_len _dafny.Int = Companion_Default___.FindTokenLen(_0_s) + _ = _1_len + if !_dafny.Companion_Sequence_.Equal(Companion_Default___.AsciiLower((_0_s).Take((_1_len).Uint32())), _dafny.SeqOfString("from")) { + return m_Wrappers.Companion_Option_.Create_None_() + } else { + var _2_s _dafny.Sequence = Companion_Default___.StripLeadingWhitespace((_0_s).Drop((_1_len).Uint32())) + _ = _2_s + var _3_len _dafny.Int = Companion_Default___.FindTokenLen(_2_s) + _ = _3_len + if (_3_len).Sign() == 0 { + return m_Wrappers.Companion_Option_.Create_None_() + } else { + return Companion_Default___.GetTableName((_2_s).Take((_3_len).Uint32())) + } + } +} +func (_static *CompanionStruct_Default___) TableFromInsertStatement(s _dafny.Sequence) m_Wrappers.Option { + var _0_s _dafny.Sequence = Companion_Default___.StripLeadingWhitespace(s) + _ = _0_s + var _1_len _dafny.Int = Companion_Default___.FindTokenLen(_0_s) + _ = _1_len + if !_dafny.Companion_Sequence_.Equal(Companion_Default___.AsciiLower((_0_s).Take((_1_len).Uint32())), _dafny.SeqOfString("into")) { + return m_Wrappers.Companion_Option_.Create_None_() + } else { + var _2_s _dafny.Sequence = Companion_Default___.StripLeadingWhitespace((_0_s).Drop((_1_len).Uint32())) + _ = _2_s + var _3_len _dafny.Int = Companion_Default___.FindTokenLen(_2_s) + _ = _3_len + if (_3_len).Sign() == 0 { + return m_Wrappers.Companion_Option_.Create_None_() + } else { + return Companion_Default___.GetTableName((_2_s).Take((_3_len).Uint32())) + } + } +} +func (_static *CompanionStruct_Default___) IsWhitespace(ch _dafny.Char) bool { + return (ch) <= (_dafny.Char(' ')) +} +func (_static *CompanionStruct_Default___) StripLeadingWhitespace(s _dafny.Sequence) _dafny.Sequence { + goto TAIL_CALL_START +TAIL_CALL_START: + if ((_dafny.IntOfUint32((s).Cardinality())).Sign() == 0) || (!(Companion_Default___.IsWhitespace((s).Select(0).(_dafny.Char)))) { + return s + } else { + var _in0 _dafny.Sequence = (s).Drop(1) + _ = _in0 + s = _in0 + goto TAIL_CALL_START + } +} +func (_static *CompanionStruct_Default___) AsciiLowerChar(ch _dafny.Char) _dafny.Char { + if ((_dafny.Char('A')) <= (ch)) && ((ch) <= (_dafny.Char('Z'))) { + return ((ch) - (_dafny.Char('A'))) + (_dafny.Char('a')) + } else { + return ch + } +} +func (_static *CompanionStruct_Default___) AsciiLower(s _dafny.Sequence) _dafny.Sequence { + var _0___accumulator _dafny.Sequence = _dafny.SeqOfChars() + _ = _0___accumulator + goto TAIL_CALL_START +TAIL_CALL_START: + if (_dafny.IntOfUint32((s).Cardinality())).Sign() == 0 { + return _dafny.Companion_Sequence_.Concatenate(_0___accumulator, s) + } else { + _0___accumulator = _dafny.Companion_Sequence_.Concatenate(_0___accumulator, _dafny.SeqOfChars(Companion_Default___.AsciiLowerChar((s).Select(0).(_dafny.Char)))) + var _in0 _dafny.Sequence = (s).Drop(1) + _ = _in0 + s = _in0 + goto TAIL_CALL_START + } +} +func (_static *CompanionStruct_Default___) FindTokenLen(s _dafny.Sequence) _dafny.Int { + if ((_dafny.IntOfUint32((s).Cardinality())).Sign() == 0) || (Companion_Default___.IsWhitespace((s).Select(0).(_dafny.Char))) { + return _dafny.Zero + } else if ((s).Select(0).(_dafny.Char)) == (_dafny.Char('"')) { + return (_dafny.One).Plus(Companion_Default___.FindTokenLenQuoted((s).Drop(1))) + } else { + return Companion_Default___.FindTokenLenPlain(s) + } +} +func (_static *CompanionStruct_Default___) FindTokenLenPlain(s _dafny.Sequence) _dafny.Int { + var _0___accumulator _dafny.Int = _dafny.Zero + _ = _0___accumulator + goto TAIL_CALL_START +TAIL_CALL_START: + if ((_dafny.IntOfUint32((s).Cardinality())).Sign() == 0) || (Companion_Default___.IsWhitespace((s).Select(0).(_dafny.Char))) { + return (_dafny.Zero).Plus(_0___accumulator) + } else { + _0___accumulator = (_0___accumulator).Plus(_dafny.One) + var _in0 _dafny.Sequence = (s).Drop(1) + _ = _in0 + s = _in0 + goto TAIL_CALL_START + } +} +func (_static *CompanionStruct_Default___) FindTokenLenQuoted(s _dafny.Sequence) _dafny.Int { + var _0___accumulator _dafny.Int = _dafny.Zero + _ = _0___accumulator + goto TAIL_CALL_START +TAIL_CALL_START: + if (_dafny.IntOfUint32((s).Cardinality())).Sign() == 0 { + return (_dafny.Zero).Plus(_0___accumulator) + } else if ((s).Select(0).(_dafny.Char)) == (_dafny.Char('"')) { + return (_dafny.One).Plus(_0___accumulator) + } else { + _0___accumulator = (_0___accumulator).Plus(_dafny.One) + var _in0 _dafny.Sequence = (s).Drop(1) + _ = _in0 + s = _in0 + goto TAIL_CALL_START + } +} + +// End of class Default__ diff --git a/customer-preview/ddb-esdk/DdbVirtualFields/DdbVirtualFields.go b/customer-preview/ddb-esdk/DdbVirtualFields/DdbVirtualFields.go new file mode 100644 index 000000000..2438d0f23 --- /dev/null +++ b/customer-preview/ddb-esdk/DdbVirtualFields/DdbVirtualFields.go @@ -0,0 +1,947 @@ +// Package DdbVirtualFields +// Dafny module DdbVirtualFields compiled into Go + +package DdbVirtualFields + +import ( + os "os" + + m_ComAmazonawsDynamodbTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/ComAmazonawsDynamodbTypes" + m_Com_Amazonaws_Dynamodb "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/Com_Amazonaws_Dynamodb" + m_ComAmazonawsKmsTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/ComAmazonawsKmsTypes" + m_Com_Amazonaws_Kms "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/Com_Amazonaws_Kms" + m_AlgorithmSuites "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AlgorithmSuites" + m_AwsArnParsing "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsArnParsing" + m_AwsCryptographyKeyStoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreOperations" + m_AwsCryptographyKeyStoreTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreTypes" + m_AwsCryptographyMaterialProvidersOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersOperations" + m_AwsCryptographyMaterialProvidersTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersTypes" + m_AwsKmsDiscoveryKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsDiscoveryKeyring" + m_AwsKmsEcdhKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsEcdhKeyring" + m_AwsKmsHierarchicalKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsHierarchicalKeyring" + m_AwsKmsKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsKeyring" + m_AwsKmsMrkAreUnique "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkAreUnique" + m_AwsKmsMrkDiscoveryKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkDiscoveryKeyring" + m_AwsKmsMrkKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkKeyring" + m_AwsKmsMrkMatchForDecrypt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkMatchForDecrypt" + m_AwsKmsRsaKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsRsaKeyring" + m_AwsKmsUtils "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsUtils" + m_CMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CMM" + m_CacheConstants "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CacheConstants" + m_CanonicalEncryptionContext "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CanonicalEncryptionContext" + m_Commitment "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Commitment" + m_Constants "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Constants" + m_CreateKeyStoreTable "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeyStoreTable" + m_CreateKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeys" + m_DDBKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DDBKeystoreOperations" + m_DefaultCMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DefaultCMM" + m_DefaultClientSupplier "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DefaultClientSupplier" + m_Defaults "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Defaults" + m_DiscoveryMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DiscoveryMultiKeyring" + m_EcdhEdkWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/EcdhEdkWrapping" + m_EdkWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/EdkWrapping" + m_ErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/ErrorMessages" + m_GetKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/GetKeys" + m_IntermediateKeyWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/IntermediateKeyWrapping" + m_KMSKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KMSKeystoreOperations" + m_KeyStore "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStore" + m_KeyStoreErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStoreErrorMessages" + m_Keyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Keyring" + m_KmsArn "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KmsArn" + m_LocalCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/LocalCMC" + m_MaterialProviders "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MaterialProviders" + m_MaterialWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MaterialWrapping" + m_Materials "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Materials" + m_MrkAwareDiscoveryMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MrkAwareDiscoveryMultiKeyring" + m_MrkAwareStrictMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MrkAwareStrictMultiKeyring" + m_MultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MultiKeyring" + m_RawAESKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawAESKeyring" + m_RawECDHKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawECDHKeyring" + m_RawRSAKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawRSAKeyring" + m_RequiredEncryptionContextCMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RequiredEncryptionContextCMM" + m_StormTracker "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StormTracker" + m_StormTrackingCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StormTrackingCMC" + m_StrictMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StrictMultiKeyring" + m_Structure "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Structure" + m_SynchronizedLocalCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/SynchronizedLocalCMC" + m_Utils "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Utils" + m_AtomicPrimitives "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AtomicPrimitives" + m_AwsCryptographyPrimitivesOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesOperations" + m_AwsCryptographyPrimitivesTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesTypes" + m_Digest "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Digest" + m_HKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/HKDF" + m_KdfCtr "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/KdfCtr" + m_Random "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Random" + m_WrappedHKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHKDF" + m_WrappedHMAC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHMAC" + m_Actions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Actions" + m_Base64 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64" + m_Base64Lemmas "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64Lemmas" + m_BoundedInts "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/BoundedInts" + m_DivInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternals" + m_DivInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternalsNonlinear" + m_DivMod "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivMod" + m_FileIO "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FileIO" + m_FloatCompare "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FloatCompare" + m_Functions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Functions" + m_GeneralInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GeneralInternals" + m_GetOpt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GetOpt" + m_HexStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/HexStrings" + m_Logarithm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Logarithm" + m__Math "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Math_" + m_ModInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternals" + m_ModInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternalsNonlinear" + m_Mul "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Mul" + m_MulInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternals" + m_MulInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternalsNonlinear" + m_Power "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Power" + m_Relations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Relations" + m_Seq "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq" + m_Seq_MergeSort "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq_MergeSort" + m_Sorting "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Sorting" + m_StandardLibrary "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary" + m_StandardLibraryInterop "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibraryInterop" + m_StandardLibrary_Sequence "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_Sequence" + m_StandardLibrary_String "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_String" + m_StandardLibrary_UInt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_UInt" + m_Streams "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Streams" + m_UTF8 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UTF8" + m_UnicodeStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UnicodeStrings" + m__Unicode "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Unicode_" + m_Utf16EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf16EncodingForm" + m_Utf8EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf8EncodingForm" + m_Wrappers "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers" + m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorOperations "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorOperations" + m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes" + m_AwsCryptographyDbEncryptionSdkDynamoDbOperations "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbOperations" + m_AwsCryptographyDbEncryptionSdkDynamoDbTypes "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbTypes" + m_AwsCryptographyDbEncryptionSdkStructuredEncryptionOperations "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkStructuredEncryptionOperations" + m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes" + m_Canonize "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/Canonize" + m_DynamoDbEncryption "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbEncryption" + m_DynamoDbEncryptionBranchKeyIdSupplier "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbEncryptionBranchKeyIdSupplier" + m_DynamoDbEncryptionUtil "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbEncryptionUtil" + m_DynamoDbItemEncryptor "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbItemEncryptor" + m_DynamoDbItemEncryptorUtil "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbItemEncryptorUtil" + m_DynamoDbNormalizeNumber "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbNormalizeNumber" + m_DynamoToStruct "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoToStruct" + m_InternalLegacyOverride "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/InternalLegacyOverride" + m__Maps "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/Maps_" + m_Sets "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/Sets" + m_SortCanon "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/SortCanon" + m_StructuredEncryption "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryption" + m_StructuredEncryptionCrypt "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionCrypt" + m_StructuredEncryptionFooter "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionFooter" + m_StructuredEncryptionHeader "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionHeader" + m_StructuredEncryptionPaths "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionPaths" + m_StructuredEncryptionUtil "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionUtil" + m_TermLoc "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/TermLoc" + m__System "github.com/dafny-lang/DafnyRuntimeGo/v4/System_" + _dafny "github.com/dafny-lang/DafnyRuntimeGo/v4/dafny" +) + +var _ = os.Args +var _ _dafny.Dummy__ +var _ m__System.Dummy__ +var _ m_Wrappers.Dummy__ +var _ m_BoundedInts.Dummy__ +var _ m_StandardLibrary_UInt.Dummy__ +var _ m_StandardLibrary_Sequence.Dummy__ +var _ m_StandardLibrary_String.Dummy__ +var _ m_StandardLibrary.Dummy__ +var _ m_AwsCryptographyPrimitivesTypes.Dummy__ +var _ m_Random.Dummy__ +var _ m_Digest.Dummy__ +var _ m_WrappedHMAC.Dummy__ +var _ m_HKDF.Dummy__ +var _ m_WrappedHKDF.Dummy__ +var _ m_KdfCtr.Dummy__ +var _ m_AwsCryptographyPrimitivesOperations.Dummy__ +var _ m_AtomicPrimitives.Dummy__ +var _ m_ComAmazonawsDynamodbTypes.Dummy__ +var _ m_ComAmazonawsKmsTypes.Dummy__ +var _ m_AwsCryptographyKeyStoreTypes.Dummy__ +var _ m_AwsCryptographyMaterialProvidersTypes.Dummy__ +var _ m_Base64.Dummy__ +var _ m_AlgorithmSuites.Dummy__ +var _ m_Materials.Dummy__ +var _ m_Keyring.Dummy__ +var _ m_Relations.Dummy__ +var _ m_Seq_MergeSort.Dummy__ +var _ m__Math.Dummy__ +var _ m_Seq.Dummy__ +var _ m_MultiKeyring.Dummy__ +var _ m_AwsArnParsing.Dummy__ +var _ m_AwsKmsMrkAreUnique.Dummy__ +var _ m_Actions.Dummy__ +var _ m_AwsKmsMrkMatchForDecrypt.Dummy__ +var _ m_AwsKmsUtils.Dummy__ +var _ m_Constants.Dummy__ +var _ m_MaterialWrapping.Dummy__ +var _ m_CanonicalEncryptionContext.Dummy__ +var _ m_IntermediateKeyWrapping.Dummy__ +var _ m_EdkWrapping.Dummy__ +var _ m_ErrorMessages.Dummy__ +var _ m_AwsKmsKeyring.Dummy__ +var _ m_StrictMultiKeyring.Dummy__ +var _ m_AwsKmsDiscoveryKeyring.Dummy__ +var _ m_Com_Amazonaws_Kms.Dummy__ +var _ m_Com_Amazonaws_Dynamodb.Dummy__ +var _ m_DiscoveryMultiKeyring.Dummy__ +var _ m_AwsKmsMrkDiscoveryKeyring.Dummy__ +var _ m_MrkAwareDiscoveryMultiKeyring.Dummy__ +var _ m_AwsKmsMrkKeyring.Dummy__ +var _ m_MrkAwareStrictMultiKeyring.Dummy__ +var _ m_LocalCMC.Dummy__ +var _ m_SynchronizedLocalCMC.Dummy__ +var _ m_StormTracker.Dummy__ +var _ m_StormTrackingCMC.Dummy__ +var _ m_CacheConstants.Dummy__ +var _ m_AwsKmsHierarchicalKeyring.Dummy__ +var _ m_AwsKmsRsaKeyring.Dummy__ +var _ m_EcdhEdkWrapping.Dummy__ +var _ m_RawECDHKeyring.Dummy__ +var _ m_AwsKmsEcdhKeyring.Dummy__ +var _ m_RawAESKeyring.Dummy__ +var _ m_RawRSAKeyring.Dummy__ +var _ m_CMM.Dummy__ +var _ m_Defaults.Dummy__ +var _ m_Commitment.Dummy__ +var _ m_DefaultCMM.Dummy__ +var _ m_DefaultClientSupplier.Dummy__ +var _ m_Utils.Dummy__ +var _ m_RequiredEncryptionContextCMM.Dummy__ +var _ m_AwsCryptographyMaterialProvidersOperations.Dummy__ +var _ m_MaterialProviders.Dummy__ +var _ m_KeyStoreErrorMessages.Dummy__ +var _ m_KmsArn.Dummy__ +var _ m_Structure.Dummy__ +var _ m_KMSKeystoreOperations.Dummy__ +var _ m_DDBKeystoreOperations.Dummy__ +var _ m_CreateKeys.Dummy__ +var _ m_CreateKeyStoreTable.Dummy__ +var _ m_GetKeys.Dummy__ +var _ m_AwsCryptographyKeyStoreOperations.Dummy__ +var _ m_KeyStore.Dummy__ +var _ m__Unicode.Dummy__ +var _ m_Functions.Dummy__ +var _ m_Utf8EncodingForm.Dummy__ +var _ m_Utf16EncodingForm.Dummy__ +var _ m_UnicodeStrings.Dummy__ +var _ m_FileIO.Dummy__ +var _ m_GeneralInternals.Dummy__ +var _ m_MulInternalsNonlinear.Dummy__ +var _ m_MulInternals.Dummy__ +var _ m_Mul.Dummy__ +var _ m_ModInternalsNonlinear.Dummy__ +var _ m_DivInternalsNonlinear.Dummy__ +var _ m_ModInternals.Dummy__ +var _ m_DivInternals.Dummy__ +var _ m_DivMod.Dummy__ +var _ m_Power.Dummy__ +var _ m_Logarithm.Dummy__ +var _ m_StandardLibraryInterop.Dummy__ +var _ m_Streams.Dummy__ +var _ m_Sorting.Dummy__ +var _ m_HexStrings.Dummy__ +var _ m_GetOpt.Dummy__ +var _ m_FloatCompare.Dummy__ +var _ m_Base64Lemmas.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Dummy__ +var _ m_StructuredEncryptionUtil.Dummy__ +var _ m_Sets.Dummy__ +var _ m_StructuredEncryptionPaths.Dummy__ +var _ m_StructuredEncryptionHeader.Dummy__ +var _ m_StructuredEncryptionFooter.Dummy__ +var _ m_SortCanon.Dummy__ +var _ m_Canonize.Dummy__ +var _ m_StructuredEncryptionCrypt.Dummy__ +var _ m__Maps.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkStructuredEncryptionOperations.Dummy__ +var _ m_StructuredEncryption.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Dummy__ +var _ m_DynamoDbEncryptionUtil.Dummy__ +var _ m_DynamoDbNormalizeNumber.Dummy__ +var _ m_DynamoToStruct.Dummy__ +var _ m_DynamoDbItemEncryptorUtil.Dummy__ +var _ m_InternalLegacyOverride.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorOperations.Dummy__ +var _ m_DynamoDbItemEncryptor.Dummy__ +var _ m_DynamoDbEncryptionBranchKeyIdSupplier.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkDynamoDbOperations.Dummy__ +var _ m_DynamoDbEncryption.Dummy__ +var _ m_TermLoc.Dummy__ + +type Dummy__ struct{} + +// Definition of class Default__ +type Default__ struct { + dummy byte +} + +func New_Default___() *Default__ { + _this := Default__{} + + return &_this +} + +type CompanionStruct_Default___ struct { +} + +var Companion_Default___ = CompanionStruct_Default___{} + +func (_this *Default__) Equals(other *Default__) bool { + return _this == other +} + +func (_this *Default__) EqualsGeneric(x interface{}) bool { + other, ok := x.(*Default__) + return ok && _this.Equals(other) +} + +func (*Default__) String() string { + return "DdbVirtualFields.Default__" +} +func (_this *Default__) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = &Default__{} + +func (_static *CompanionStruct_Default___) ParseVirtualFieldConfig(vf m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.VirtualField) m_Wrappers.Result { + var _0_valueOrError0 m_Wrappers.Result = m_Seq.Companion_Default___.MapWithResult(func(coer76 func(m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.VirtualPart) m_Wrappers.Result) func(interface{}) m_Wrappers.Result { + return func(arg100 interface{}) m_Wrappers.Result { + return coer76(arg100.(m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.VirtualPart)) + } + }(func(_1_p m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.VirtualPart) m_Wrappers.Result { + return Companion_Default___.ParseVirtualPartConfig(_1_p) + }), (vf).Dtor_parts()) + _ = _0_valueOrError0 + if (_0_valueOrError0).IsFailure() { + return (_0_valueOrError0).PropagateFailure() + } else { + var _2_parts _dafny.Sequence = (_0_valueOrError0).Extract().(_dafny.Sequence) + _ = _2_parts + return m_Wrappers.Companion_Result_.Create_Success_(Companion_VirtField_.Create_VirtField_((vf).Dtor_name(), _2_parts)) + } +} +func (_static *CompanionStruct_Default___) ParseVirtualPartConfig(part m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.VirtualPart) m_Wrappers.Result { + var _0_valueOrError0 m_Wrappers.Result = m_TermLoc.Companion_Default___.MakeTermLoc((part).Dtor_loc()) + _ = _0_valueOrError0 + if (_0_valueOrError0).IsFailure() { + return (_0_valueOrError0).PropagateFailure() + } else { + var _1_loc _dafny.Sequence = (_0_valueOrError0).Extract().(_dafny.Sequence) + _ = _1_loc + if ((part).Dtor_trans()).Is_None() { + return m_Wrappers.Companion_Result_.Create_Success_(Companion_VirtPart_.Create_VirtPart_(_1_loc, _dafny.SeqOf())) + } else { + return m_Wrappers.Companion_Result_.Create_Success_(Companion_VirtPart_.Create_VirtPart_(_1_loc, ((part).Dtor_trans()).Dtor_value().(_dafny.Sequence))) + } + } +} +func (_static *CompanionStruct_Default___) Examine(parts _dafny.Sequence, exam func(_dafny.Sequence) bool) bool { + goto TAIL_CALL_START +TAIL_CALL_START: + if (_dafny.IntOfUint32((parts).Cardinality())).Sign() == 0 { + return false + } else if (exam)(((parts).Select(0).(VirtPart)).Dtor_loc()) { + return true + } else { + var _in0 _dafny.Sequence = (parts).Drop(1) + _ = _in0 + var _in1 func(_dafny.Sequence) bool = exam + _ = _in1 + parts = _in0 + exam = _in1 + goto TAIL_CALL_START + } +} +func (_static *CompanionStruct_Default___) Min(x _dafny.Int, y _dafny.Int) _dafny.Int { + if (y).Cmp(x) < 0 { + return y + } else { + return x + } +} +func (_static *CompanionStruct_Default___) GetPrefix(s _dafny.Sequence, length _dafny.Int) _dafny.Sequence { + if (length).Sign() != -1 { + return (s).Take((Companion_Default___.Min(length, _dafny.IntOfUint32((s).Cardinality()))).Uint32()) + } else { + return (s).Take(((_dafny.IntOfUint32((s).Cardinality())).Minus(Companion_Default___.Min((_dafny.Zero).Minus(length), _dafny.IntOfUint32((s).Cardinality())))).Uint32()) + } +} +func (_static *CompanionStruct_Default___) GetSuffix(s _dafny.Sequence, length _dafny.Int) _dafny.Sequence { + if (length).Sign() != -1 { + return (s).Drop(((_dafny.IntOfUint32((s).Cardinality())).Minus(Companion_Default___.Min(length, _dafny.IntOfUint32((s).Cardinality())))).Uint32()) + } else { + return (s).Drop((Companion_Default___.Min((_dafny.Zero).Minus(length), _dafny.IntOfUint32((s).Cardinality()))).Uint32()) + } +} +func (_static *CompanionStruct_Default___) GetPos(pos _dafny.Int, limit _dafny.Int) _dafny.Int { + if (limit).Sign() == 0 { + return _dafny.Zero + } else if (pos).Sign() != -1 { + return Companion_Default___.Min(pos, (limit).Minus(_dafny.One)) + } else if ((limit).Plus(pos)).Sign() == -1 { + return _dafny.Zero + } else { + return (limit).Plus(pos) + } +} +func (_static *CompanionStruct_Default___) GetSubstring(s _dafny.Sequence, low _dafny.Int, high _dafny.Int) _dafny.Sequence { + var _0_lo _dafny.Int = Companion_Default___.GetPos(low, _dafny.IntOfUint32((s).Cardinality())) + _ = _0_lo + var _1_hi _dafny.Int = Companion_Default___.GetPos(high, _dafny.IntOfUint32((s).Cardinality())) + _ = _1_hi + if (_0_lo).Cmp(_1_hi) < 0 { + return (s).Subsequence((_0_lo).Uint32(), (_1_hi).Uint32()) + } else { + return _dafny.SeqOfString("") + } +} +func (_static *CompanionStruct_Default___) UpperChar(ch _dafny.Char) _dafny.Char { + if ((_dafny.Char('a')) <= (ch)) && ((ch) <= (_dafny.Char('z'))) { + return ((ch) - (_dafny.Char('a'))) + (_dafny.Char('A')) + } else { + return ch + } +} +func (_static *CompanionStruct_Default___) UpperCase(s _dafny.Sequence) _dafny.Sequence { + return m_Seq.Companion_Default___.Map(func(coer77 func(_dafny.Char) _dafny.Char) func(interface{}) interface{} { + return func(arg101 interface{}) interface{} { + return coer77(arg101.(_dafny.Char)) + } + }(func(_0_c _dafny.Char) _dafny.Char { + return Companion_Default___.UpperChar(_0_c) + }), s) +} +func (_static *CompanionStruct_Default___) LowerChar(ch _dafny.Char) _dafny.Char { + if ((_dafny.Char('A')) <= (ch)) && ((ch) <= (_dafny.Char('Z'))) { + return ((ch) - (_dafny.Char('A'))) + (_dafny.Char('a')) + } else { + return ch + } +} +func (_static *CompanionStruct_Default___) LowerCase(s _dafny.Sequence) _dafny.Sequence { + return m_Seq.Companion_Default___.Map(func(coer78 func(_dafny.Char) _dafny.Char) func(interface{}) interface{} { + return func(arg102 interface{}) interface{} { + return coer78(arg102.(_dafny.Char)) + } + }(func(_0_c _dafny.Char) _dafny.Char { + return Companion_Default___.LowerChar(_0_c) + }), s) +} +func (_static *CompanionStruct_Default___) GetSegment(s _dafny.Sequence, split _dafny.Char, index _dafny.Int) _dafny.Sequence { + var _0_parts _dafny.Sequence = m_StandardLibrary.Companion_Default___.Split(s, split) + _ = _0_parts + if ((index).Cmp(_dafny.IntOfUint32((_0_parts).Cardinality())) >= 0) || (((_dafny.Zero).Minus(index)).Cmp(_dafny.IntOfUint32((_0_parts).Cardinality())) > 0) { + return _dafny.SeqOfString("") + } else { + return (_0_parts).Select((Companion_Default___.GetPos(index, _dafny.IntOfUint32((_0_parts).Cardinality()))).Uint32()).(_dafny.Sequence) + } +} +func (_static *CompanionStruct_Default___) GetSegments(s _dafny.Sequence, split _dafny.Char, low _dafny.Int, high _dafny.Int) _dafny.Sequence { + var _0_parts _dafny.Sequence = m_StandardLibrary.Companion_Default___.Split(s, split) + _ = _0_parts + var _1_lo _dafny.Int = Companion_Default___.GetPos(low, _dafny.IntOfUint32((_0_parts).Cardinality())) + _ = _1_lo + var _2_hi _dafny.Int = Companion_Default___.GetPos(high, _dafny.IntOfUint32((_0_parts).Cardinality())) + _ = _2_hi + if (_1_lo).Cmp(_2_hi) < 0 { + return m_StandardLibrary.Companion_Default___.Join((_0_parts).Subsequence((_1_lo).Uint32(), (_2_hi).Uint32()), _dafny.SeqOfChars(split)) + } else { + return _dafny.SeqOfString("") + } +} +func (_static *CompanionStruct_Default___) DoTransform(t m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.VirtualTransform, s _dafny.Sequence) _dafny.Sequence { + var _source0 m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.VirtualTransform = t + _ = _source0 + { + if _source0.Is_upper() { + var _0_up m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Upper = _source0.Get_().(m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.VirtualTransform_upper).Upper + _ = _0_up + return Companion_Default___.UpperCase(s) + } + } + { + if _source0.Is_lower() { + var _1_lo m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Lower = _source0.Get_().(m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.VirtualTransform_lower).Lower + _ = _1_lo + return Companion_Default___.LowerCase(s) + } + } + { + if _source0.Is_insert() { + var _2_ins m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Insert = _source0.Get_().(m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.VirtualTransform_insert).Insert + _ = _2_ins + return _dafny.Companion_Sequence_.Concatenate(s, (_2_ins).Dtor_literal()) + } + } + { + if _source0.Is_prefix() { + var _3_pre m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.GetPrefix = _source0.Get_().(m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.VirtualTransform_prefix).Prefix + _ = _3_pre + return Companion_Default___.GetPrefix(s, _dafny.IntOfInt32((_3_pre).Dtor_length())) + } + } + { + if _source0.Is_suffix() { + var _4_suf m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.GetSuffix = _source0.Get_().(m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.VirtualTransform_suffix).Suffix + _ = _4_suf + return Companion_Default___.GetSuffix(s, _dafny.IntOfInt32((_4_suf).Dtor_length())) + } + } + { + if _source0.Is_substring() { + var _5_sub m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.GetSubstring = _source0.Get_().(m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.VirtualTransform_substring).Substring + _ = _5_sub + return Companion_Default___.GetSubstring(s, _dafny.IntOfInt32((_5_sub).Dtor_low()), _dafny.IntOfInt32((_5_sub).Dtor_high())) + } + } + { + if _source0.Is_segment() { + var _6_seg m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.GetSegment = _source0.Get_().(m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.VirtualTransform_segment).Segment + _ = _6_seg + return Companion_Default___.GetSegment(s, ((_6_seg).Dtor_split()).Select(0).(_dafny.Char), _dafny.IntOfInt32((_6_seg).Dtor_index())) + } + } + { + var _7_seg m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.GetSegments = _source0.Get_().(m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.VirtualTransform_segments).Segments + _ = _7_seg + return Companion_Default___.GetSegments(s, ((_7_seg).Dtor_split()).Select(0).(_dafny.Char), _dafny.IntOfInt32((_7_seg).Dtor_low()), _dafny.IntOfInt32((_7_seg).Dtor_high())) + } +} +func (_static *CompanionStruct_Default___) FullTransform(t _dafny.Sequence, s _dafny.Sequence) _dafny.Sequence { + goto TAIL_CALL_START +TAIL_CALL_START: + if (_dafny.IntOfUint32((t).Cardinality())).Sign() == 0 { + return s + } else { + var _in0 _dafny.Sequence = (t).Drop(1) + _ = _in0 + var _in1 _dafny.Sequence = Companion_Default___.DoTransform((t).Select(0).(m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.VirtualTransform), s) + _ = _in1 + t = _in0 + s = _in1 + goto TAIL_CALL_START + } +} +func (_static *CompanionStruct_Default___) GetVirtField(vf VirtField, item _dafny.Map) m_Wrappers.Result { + return Companion_Default___.GetVirtField2((vf).Dtor_parts(), item, _dafny.SeqOfString("")) +} +func (_static *CompanionStruct_Default___) GetVirtField2(parts _dafny.Sequence, item _dafny.Map, acc _dafny.Sequence) m_Wrappers.Result { + goto TAIL_CALL_START +TAIL_CALL_START: + if (_dafny.IntOfUint32((parts).Cardinality())).Sign() == 0 { + return m_Wrappers.Companion_Result_.Create_Success_(m_Wrappers.Companion_Option_.Create_Some_(acc)) + } else { + var _0_valueOrError0 m_Wrappers.Result = m_TermLoc.Companion_Default___.TermToString(((parts).Select(0).(VirtPart)).Dtor_loc(), item) + _ = _0_valueOrError0 + if (_0_valueOrError0).IsFailure() { + return (_0_valueOrError0).PropagateFailure() + } else { + var _1_value m_Wrappers.Option = (_0_valueOrError0).Extract().(m_Wrappers.Option) + _ = _1_value + if (_1_value).Is_None() { + return m_Wrappers.Companion_Result_.Create_Success_(m_Wrappers.Companion_Option_.Create_None_()) + } else { + var _2_trans _dafny.Sequence = Companion_Default___.FullTransform(((parts).Select(0).(VirtPart)).Dtor_trans(), (_1_value).Dtor_value().(_dafny.Sequence)) + _ = _2_trans + var _in0 _dafny.Sequence = (parts).Drop(1) + _ = _in0 + var _in1 _dafny.Map = item + _ = _in1 + var _in2 _dafny.Sequence = _dafny.Companion_Sequence_.Concatenate(acc, _2_trans) + _ = _in2 + parts = _in0 + item = _in1 + acc = _in2 + goto TAIL_CALL_START + } + } + } +} +func (_static *CompanionStruct_Default___) VirtToAttr(loc _dafny.Sequence, item _dafny.Map, vf _dafny.Map) m_Wrappers.Result { + if ((_dafny.IntOfUint32((loc).Cardinality())).Cmp(_dafny.One) == 0) && ((vf).Contains(((loc).Select(0).(m_TermLoc.Selector)).Dtor_key())) { + var _0_valueOrError0 m_Wrappers.Result = Companion_Default___.GetVirtField((vf).Get(((loc).Select(0).(m_TermLoc.Selector)).Dtor_key()).(VirtField), item) + _ = _0_valueOrError0 + if (_0_valueOrError0).IsFailure() { + return (_0_valueOrError0).PropagateFailure() + } else { + var _1_str m_Wrappers.Option = (_0_valueOrError0).Extract().(m_Wrappers.Option) + _ = _1_str + if (_1_str).Is_None() { + return m_Wrappers.Companion_Result_.Create_Success_(m_Wrappers.Companion_Option_.Create_None_()) + } else { + return m_Wrappers.Companion_Result_.Create_Success_(m_Wrappers.Companion_Option_.Create_Some_(Companion_Default___.DS((_1_str).Dtor_value().(_dafny.Sequence)))) + } + } + } else { + return m_Wrappers.Companion_Result_.Create_Success_(m_TermLoc.Companion_Default___.TermToAttr(loc, item, m_Wrappers.Companion_Option_.Create_None_())) + } +} +func (_static *CompanionStruct_Default___) VirtToBytes(loc _dafny.Sequence, item _dafny.Map, vf _dafny.Map) m_Wrappers.Result { + if ((_dafny.IntOfUint32((loc).Cardinality())).Cmp(_dafny.One) == 0) && ((vf).Contains(((loc).Select(0).(m_TermLoc.Selector)).Dtor_key())) { + var _0_valueOrError0 m_Wrappers.Result = Companion_Default___.GetVirtField((vf).Get(((loc).Select(0).(m_TermLoc.Selector)).Dtor_key()).(VirtField), item) + _ = _0_valueOrError0 + if (_0_valueOrError0).IsFailure() { + return (_0_valueOrError0).PropagateFailure() + } else { + var _1_str m_Wrappers.Option = (_0_valueOrError0).Extract().(m_Wrappers.Option) + _ = _1_str + if (_1_str).Is_None() { + return m_Wrappers.Companion_Result_.Create_Success_(m_Wrappers.Companion_Option_.Create_None_()) + } else { + var _2_valueOrError1 m_Wrappers.Result = (m_UTF8.Encode((_1_str).Dtor_value().(_dafny.Sequence))).MapFailure(func(coer79 func(_dafny.Sequence) m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Error) func(interface{}) interface{} { + return func(arg103 interface{}) interface{} { + return coer79(arg103.(_dafny.Sequence)) + } + }(func(_3_e _dafny.Sequence) m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Error { + return m_DynamoDbEncryptionUtil.Companion_Default___.E(_3_e) + })) + _ = _2_valueOrError1 + if (_2_valueOrError1).IsFailure() { + return (_2_valueOrError1).PropagateFailure() + } else { + var _4_ustr _dafny.Sequence = (_2_valueOrError1).Extract().(_dafny.Sequence) + _ = _4_ustr + return m_Wrappers.Companion_Result_.Create_Success_(m_Wrappers.Companion_Option_.Create_Some_(_4_ustr)) + } + } + } + } else { + return m_TermLoc.Companion_Default___.TermToBytes(loc, item) + } +} +func (_static *CompanionStruct_Default___) VirtToString(loc _dafny.Sequence, item _dafny.Map, vf _dafny.Map) m_Wrappers.Result { + if ((_dafny.IntOfUint32((loc).Cardinality())).Cmp(_dafny.One) == 0) && ((vf).Contains(((loc).Select(0).(m_TermLoc.Selector)).Dtor_key())) { + return Companion_Default___.GetVirtField((vf).Get(((loc).Select(0).(m_TermLoc.Selector)).Dtor_key()).(VirtField), item) + } else { + return m_TermLoc.Companion_Default___.TermToString(loc, item) + } +} +func (_static *CompanionStruct_Default___) DS(s _dafny.Sequence) m_ComAmazonawsDynamodbTypes.AttributeValue { + return m_ComAmazonawsDynamodbTypes.Companion_AttributeValue_.Create_S_(s) +} + +// End of class Default__ + +// Definition of class VirtualFieldMap +type VirtualFieldMap struct { +} + +func New_VirtualFieldMap_() *VirtualFieldMap { + _this := VirtualFieldMap{} + + return &_this +} + +type CompanionStruct_VirtualFieldMap_ struct { +} + +var Companion_VirtualFieldMap_ = CompanionStruct_VirtualFieldMap_{} + +func (*VirtualFieldMap) String() string { + return "DdbVirtualFields.VirtualFieldMap" +} + +// End of class VirtualFieldMap + +func Type_VirtualFieldMap_() _dafny.TypeDescriptor { + return type_VirtualFieldMap_{} +} + +type type_VirtualFieldMap_ struct { +} + +func (_this type_VirtualFieldMap_) Default() interface{} { + return _dafny.EmptyMap +} + +func (_this type_VirtualFieldMap_) String() string { + return "DdbVirtualFields.VirtualFieldMap" +} + +// Definition of class ValidVirtualField +type ValidVirtualField struct { +} + +func New_ValidVirtualField_() *ValidVirtualField { + _this := ValidVirtualField{} + + return &_this +} + +type CompanionStruct_ValidVirtualField_ struct { +} + +var Companion_ValidVirtualField_ = CompanionStruct_ValidVirtualField_{} + +func (*ValidVirtualField) String() string { + return "DdbVirtualFields.ValidVirtualField" +} + +// End of class ValidVirtualField + +func Type_ValidVirtualField_() _dafny.TypeDescriptor { + return type_ValidVirtualField_{} +} + +type type_ValidVirtualField_ struct { +} + +func (_this type_ValidVirtualField_) Default() interface{} { + return Companion_VirtField_.Default() +} + +func (_this type_ValidVirtualField_) String() string { + return "DdbVirtualFields.ValidVirtualField" +} + +// Definition of datatype VirtField +type VirtField struct { + Data_VirtField_ +} + +func (_this VirtField) Get_() Data_VirtField_ { + return _this.Data_VirtField_ +} + +type Data_VirtField_ interface { + isVirtField() +} + +type CompanionStruct_VirtField_ struct { +} + +var Companion_VirtField_ = CompanionStruct_VirtField_{} + +type VirtField_VirtField struct { + Name _dafny.Sequence + Parts _dafny.Sequence +} + +func (VirtField_VirtField) isVirtField() {} + +func (CompanionStruct_VirtField_) Create_VirtField_(Name _dafny.Sequence, Parts _dafny.Sequence) VirtField { + return VirtField{VirtField_VirtField{Name, Parts}} +} + +func (_this VirtField) Is_VirtField() bool { + _, ok := _this.Get_().(VirtField_VirtField) + return ok +} + +func (CompanionStruct_VirtField_) Default() VirtField { + return Companion_VirtField_.Create_VirtField_(_dafny.EmptySeq.SetString(), _dafny.EmptySeq) +} + +func (_this VirtField) Dtor_name() _dafny.Sequence { + return _this.Get_().(VirtField_VirtField).Name +} + +func (_this VirtField) Dtor_parts() _dafny.Sequence { + return _this.Get_().(VirtField_VirtField).Parts +} + +func (_this VirtField) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case VirtField_VirtField: + { + return "DdbVirtualFields.VirtField.VirtField" + "(" + _dafny.String(data.Name) + ", " + _dafny.String(data.Parts) + ")" + } + default: + { + return "" + } + } +} + +func (_this VirtField) Equals(other VirtField) bool { + switch data1 := _this.Get_().(type) { + case VirtField_VirtField: + { + data2, ok := other.Get_().(VirtField_VirtField) + return ok && data1.Name.Equals(data2.Name) && data1.Parts.Equals(data2.Parts) + } + default: + { + return false // unexpected + } + } +} + +func (_this VirtField) EqualsGeneric(other interface{}) bool { + typed, ok := other.(VirtField) + return ok && _this.Equals(typed) +} + +func Type_VirtField_() _dafny.TypeDescriptor { + return type_VirtField_{} +} + +type type_VirtField_ struct { +} + +func (_this type_VirtField_) Default() interface{} { + return Companion_VirtField_.Default() +} + +func (_this type_VirtField_) String() string { + return "DdbVirtualFields.VirtField" +} +func (_this VirtField) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = VirtField{} + +func (_this VirtField) Examine(exam func(_dafny.Sequence) bool) bool { + { + return Companion_Default___.Examine((_this).Dtor_parts(), exam) + } +} +func (_this VirtField) GetFields() _dafny.Sequence { + { + return m_Seq.Companion_Default___.Map(func(coer80 func(VirtPart) _dafny.Sequence) func(interface{}) interface{} { + return func(arg104 interface{}) interface{} { + return coer80(arg104.(VirtPart)) + } + }(func(_0_p VirtPart) _dafny.Sequence { + return (((_0_p).Dtor_loc()).Select(0).(m_TermLoc.Selector)).Dtor_key() + }), (_this).Dtor_parts()) + } +} +func (_this VirtField) GetLocs() _dafny.Set { + { + return func() _dafny.Set { + var _coll0 = _dafny.NewBuilder() + _ = _coll0 + for _iter22 := _dafny.Iterate(((_this).Dtor_parts()).Elements()); ; { + _compr_0, _ok22 := _iter22() + if !_ok22 { + break + } + var _0_p VirtPart + _0_p = interface{}(_compr_0).(VirtPart) + if _dafny.Companion_Sequence_.Contains((_this).Dtor_parts(), _0_p) { + _coll0.Add((_0_p).Dtor_loc()) + } + } + return _coll0.ToSet() + }() + } +} +func (_this VirtField) HasSingleLoc(loc _dafny.Sequence) bool { + { + return ((_dafny.IntOfUint32(((_this).Dtor_parts()).Cardinality())).Cmp(_dafny.One) == 0) && (_dafny.Companion_Sequence_.Equal((((_this).Dtor_parts()).Select(0).(VirtPart)).Dtor_loc(), loc)) + } +} + +// End of datatype VirtField + +// Definition of datatype VirtPart +type VirtPart struct { + Data_VirtPart_ +} + +func (_this VirtPart) Get_() Data_VirtPart_ { + return _this.Data_VirtPart_ +} + +type Data_VirtPart_ interface { + isVirtPart() +} + +type CompanionStruct_VirtPart_ struct { +} + +var Companion_VirtPart_ = CompanionStruct_VirtPart_{} + +type VirtPart_VirtPart struct { + Loc _dafny.Sequence + Trans _dafny.Sequence +} + +func (VirtPart_VirtPart) isVirtPart() {} + +func (CompanionStruct_VirtPart_) Create_VirtPart_(Loc _dafny.Sequence, Trans _dafny.Sequence) VirtPart { + return VirtPart{VirtPart_VirtPart{Loc, Trans}} +} + +func (_this VirtPart) Is_VirtPart() bool { + _, ok := _this.Get_().(VirtPart_VirtPart) + return ok +} + +func (CompanionStruct_VirtPart_) Default() VirtPart { + return Companion_VirtPart_.Create_VirtPart_(_dafny.EmptySeq, _dafny.EmptySeq) +} + +func (_this VirtPart) Dtor_loc() _dafny.Sequence { + return _this.Get_().(VirtPart_VirtPart).Loc +} + +func (_this VirtPart) Dtor_trans() _dafny.Sequence { + return _this.Get_().(VirtPart_VirtPart).Trans +} + +func (_this VirtPart) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case VirtPart_VirtPart: + { + return "DdbVirtualFields.VirtPart.VirtPart" + "(" + _dafny.String(data.Loc) + ", " + _dafny.String(data.Trans) + ")" + } + default: + { + return "" + } + } +} + +func (_this VirtPart) Equals(other VirtPart) bool { + switch data1 := _this.Get_().(type) { + case VirtPart_VirtPart: + { + data2, ok := other.Get_().(VirtPart_VirtPart) + return ok && data1.Loc.Equals(data2.Loc) && data1.Trans.Equals(data2.Trans) + } + default: + { + return false // unexpected + } + } +} + +func (_this VirtPart) EqualsGeneric(other interface{}) bool { + typed, ok := other.(VirtPart) + return ok && _this.Equals(typed) +} + +func Type_VirtPart_() _dafny.TypeDescriptor { + return type_VirtPart_{} +} + +type type_VirtPart_ struct { +} + +func (_this type_VirtPart_) Default() interface{} { + return Companion_VirtPart_.Default() +} + +func (_this type_VirtPart_) String() string { + return "DdbVirtualFields.VirtPart" +} +func (_this VirtPart) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = VirtPart{} + +// End of datatype VirtPart diff --git a/customer-preview/ddb-esdk/DeleteItemTransform/DeleteItemTransform.go b/customer-preview/ddb-esdk/DeleteItemTransform/DeleteItemTransform.go new file mode 100644 index 000000000..411804975 --- /dev/null +++ b/customer-preview/ddb-esdk/DeleteItemTransform/DeleteItemTransform.go @@ -0,0 +1,443 @@ +// Package DeleteItemTransform +// Dafny module DeleteItemTransform compiled into Go + +package DeleteItemTransform + +import ( + os "os" + + m_ComAmazonawsDynamodbTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/ComAmazonawsDynamodbTypes" + m_Com_Amazonaws_Dynamodb "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/Com_Amazonaws_Dynamodb" + m_ComAmazonawsKmsTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/ComAmazonawsKmsTypes" + m_Com_Amazonaws_Kms "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/Com_Amazonaws_Kms" + m_AlgorithmSuites "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AlgorithmSuites" + m_AwsArnParsing "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsArnParsing" + m_AwsCryptographyKeyStoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreOperations" + m_AwsCryptographyKeyStoreTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreTypes" + m_AwsCryptographyMaterialProvidersOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersOperations" + m_AwsCryptographyMaterialProvidersTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersTypes" + m_AwsKmsDiscoveryKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsDiscoveryKeyring" + m_AwsKmsEcdhKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsEcdhKeyring" + m_AwsKmsHierarchicalKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsHierarchicalKeyring" + m_AwsKmsKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsKeyring" + m_AwsKmsMrkAreUnique "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkAreUnique" + m_AwsKmsMrkDiscoveryKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkDiscoveryKeyring" + m_AwsKmsMrkKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkKeyring" + m_AwsKmsMrkMatchForDecrypt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkMatchForDecrypt" + m_AwsKmsRsaKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsRsaKeyring" + m_AwsKmsUtils "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsUtils" + m_CMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CMM" + m_CacheConstants "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CacheConstants" + m_CanonicalEncryptionContext "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CanonicalEncryptionContext" + m_Commitment "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Commitment" + m_Constants "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Constants" + m_CreateKeyStoreTable "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeyStoreTable" + m_CreateKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeys" + m_DDBKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DDBKeystoreOperations" + m_DefaultCMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DefaultCMM" + m_DefaultClientSupplier "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DefaultClientSupplier" + m_Defaults "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Defaults" + m_DiscoveryMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DiscoveryMultiKeyring" + m_EcdhEdkWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/EcdhEdkWrapping" + m_EdkWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/EdkWrapping" + m_ErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/ErrorMessages" + m_GetKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/GetKeys" + m_IntermediateKeyWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/IntermediateKeyWrapping" + m_KMSKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KMSKeystoreOperations" + m_KeyStore "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStore" + m_KeyStoreErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStoreErrorMessages" + m_Keyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Keyring" + m_KmsArn "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KmsArn" + m_LocalCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/LocalCMC" + m_MaterialProviders "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MaterialProviders" + m_MaterialWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MaterialWrapping" + m_Materials "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Materials" + m_MrkAwareDiscoveryMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MrkAwareDiscoveryMultiKeyring" + m_MrkAwareStrictMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MrkAwareStrictMultiKeyring" + m_MultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MultiKeyring" + m_RawAESKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawAESKeyring" + m_RawECDHKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawECDHKeyring" + m_RawRSAKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawRSAKeyring" + m_RequiredEncryptionContextCMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RequiredEncryptionContextCMM" + m_StormTracker "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StormTracker" + m_StormTrackingCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StormTrackingCMC" + m_StrictMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StrictMultiKeyring" + m_Structure "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Structure" + m_SynchronizedLocalCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/SynchronizedLocalCMC" + m_Utils "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Utils" + m_AtomicPrimitives "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AtomicPrimitives" + m_AwsCryptographyPrimitivesOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesOperations" + m_AwsCryptographyPrimitivesTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesTypes" + m_Digest "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Digest" + m_HKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/HKDF" + m_KdfCtr "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/KdfCtr" + m_Random "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Random" + m_WrappedHKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHKDF" + m_WrappedHMAC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHMAC" + m_Actions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Actions" + m_Base64 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64" + m_Base64Lemmas "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64Lemmas" + m_BoundedInts "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/BoundedInts" + m_DivInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternals" + m_DivInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternalsNonlinear" + m_DivMod "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivMod" + m_FileIO "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FileIO" + m_FloatCompare "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FloatCompare" + m_Functions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Functions" + m_GeneralInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GeneralInternals" + m_GetOpt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GetOpt" + m_HexStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/HexStrings" + m_Logarithm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Logarithm" + m__Math "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Math_" + m_ModInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternals" + m_ModInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternalsNonlinear" + m_Mul "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Mul" + m_MulInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternals" + m_MulInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternalsNonlinear" + m_Power "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Power" + m_Relations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Relations" + m_Seq "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq" + m_Seq_MergeSort "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq_MergeSort" + m_Sorting "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Sorting" + m_StandardLibrary "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary" + m_StandardLibraryInterop "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibraryInterop" + m_StandardLibrary_Sequence "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_Sequence" + m_StandardLibrary_String "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_String" + m_StandardLibrary_UInt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_UInt" + m_Streams "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Streams" + m_UnicodeStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UnicodeStrings" + m__Unicode "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Unicode_" + m_Utf16EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf16EncodingForm" + m_Utf8EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf8EncodingForm" + m_Wrappers "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers" + m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorOperations "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorOperations" + m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes" + m_AwsCryptographyDbEncryptionSdkDynamoDbOperations "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbOperations" + m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes" + m_AwsCryptographyDbEncryptionSdkDynamoDbTypes "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbTypes" + m_AwsCryptographyDbEncryptionSdkStructuredEncryptionOperations "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkStructuredEncryptionOperations" + m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes" + m_BaseBeacon "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/BaseBeacon" + m_BatchGetItemTransform "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/BatchGetItemTransform" + m_BatchWriteItemTransform "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/BatchWriteItemTransform" + m_Canonize "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/Canonize" + m_CompoundBeacon "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/CompoundBeacon" + m_DdbMiddlewareConfig "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DdbMiddlewareConfig" + m_DdbStatement "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DdbStatement" + m_DdbVirtualFields "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DdbVirtualFields" + m_DynamoDBFilterExpr "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDBFilterExpr" + m_DynamoDBSupport "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDBSupport" + m_DynamoDbEncryption "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbEncryption" + m_DynamoDbEncryptionBranchKeyIdSupplier "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbEncryptionBranchKeyIdSupplier" + m_DynamoDbEncryptionUtil "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbEncryptionUtil" + m_DynamoDbItemEncryptor "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbItemEncryptor" + m_DynamoDbItemEncryptorUtil "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbItemEncryptorUtil" + m_DynamoDbMiddlewareSupport "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbMiddlewareSupport" + m_DynamoDbNormalizeNumber "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbNormalizeNumber" + m_DynamoDbUpdateExpr "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbUpdateExpr" + m_DynamoToStruct "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoToStruct" + m_GetItemTransform "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/GetItemTransform" + m_InternalLegacyOverride "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/InternalLegacyOverride" + m__Maps "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/Maps_" + m_PutItemTransform "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/PutItemTransform" + m_QueryTransform "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/QueryTransform" + m_ScanTransform "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/ScanTransform" + m_SearchConfigToInfo "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/SearchConfigToInfo" + m_SearchableEncryptionInfo "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/SearchableEncryptionInfo" + m_Sets "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/Sets" + m_SortCanon "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/SortCanon" + m_StructuredEncryption "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryption" + m_StructuredEncryptionCrypt "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionCrypt" + m_StructuredEncryptionFooter "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionFooter" + m_StructuredEncryptionHeader "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionHeader" + m_StructuredEncryptionPaths "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionPaths" + m_StructuredEncryptionUtil "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionUtil" + m_TermLoc "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/TermLoc" + m_TransactGetItemsTransform "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/TransactGetItemsTransform" + m_TransactWriteItemsTransform "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/TransactWriteItemsTransform" + m_UpdateItemTransform "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/UpdateItemTransform" + m__System "github.com/dafny-lang/DafnyRuntimeGo/v4/System_" + _dafny "github.com/dafny-lang/DafnyRuntimeGo/v4/dafny" +) + +var _ = os.Args +var _ _dafny.Dummy__ +var _ m__System.Dummy__ +var _ m_Wrappers.Dummy__ +var _ m_BoundedInts.Dummy__ +var _ m_StandardLibrary_UInt.Dummy__ +var _ m_StandardLibrary_Sequence.Dummy__ +var _ m_StandardLibrary_String.Dummy__ +var _ m_StandardLibrary.Dummy__ +var _ m_AwsCryptographyPrimitivesTypes.Dummy__ +var _ m_Random.Dummy__ +var _ m_Digest.Dummy__ +var _ m_WrappedHMAC.Dummy__ +var _ m_HKDF.Dummy__ +var _ m_WrappedHKDF.Dummy__ +var _ m_KdfCtr.Dummy__ +var _ m_AwsCryptographyPrimitivesOperations.Dummy__ +var _ m_AtomicPrimitives.Dummy__ +var _ m_ComAmazonawsDynamodbTypes.Dummy__ +var _ m_ComAmazonawsKmsTypes.Dummy__ +var _ m_AwsCryptographyKeyStoreTypes.Dummy__ +var _ m_AwsCryptographyMaterialProvidersTypes.Dummy__ +var _ m_Base64.Dummy__ +var _ m_AlgorithmSuites.Dummy__ +var _ m_Materials.Dummy__ +var _ m_Keyring.Dummy__ +var _ m_Relations.Dummy__ +var _ m_Seq_MergeSort.Dummy__ +var _ m__Math.Dummy__ +var _ m_Seq.Dummy__ +var _ m_MultiKeyring.Dummy__ +var _ m_AwsArnParsing.Dummy__ +var _ m_AwsKmsMrkAreUnique.Dummy__ +var _ m_Actions.Dummy__ +var _ m_AwsKmsMrkMatchForDecrypt.Dummy__ +var _ m_AwsKmsUtils.Dummy__ +var _ m_Constants.Dummy__ +var _ m_MaterialWrapping.Dummy__ +var _ m_CanonicalEncryptionContext.Dummy__ +var _ m_IntermediateKeyWrapping.Dummy__ +var _ m_EdkWrapping.Dummy__ +var _ m_ErrorMessages.Dummy__ +var _ m_AwsKmsKeyring.Dummy__ +var _ m_StrictMultiKeyring.Dummy__ +var _ m_AwsKmsDiscoveryKeyring.Dummy__ +var _ m_Com_Amazonaws_Kms.Dummy__ +var _ m_Com_Amazonaws_Dynamodb.Dummy__ +var _ m_DiscoveryMultiKeyring.Dummy__ +var _ m_AwsKmsMrkDiscoveryKeyring.Dummy__ +var _ m_MrkAwareDiscoveryMultiKeyring.Dummy__ +var _ m_AwsKmsMrkKeyring.Dummy__ +var _ m_MrkAwareStrictMultiKeyring.Dummy__ +var _ m_LocalCMC.Dummy__ +var _ m_SynchronizedLocalCMC.Dummy__ +var _ m_StormTracker.Dummy__ +var _ m_StormTrackingCMC.Dummy__ +var _ m_CacheConstants.Dummy__ +var _ m_AwsKmsHierarchicalKeyring.Dummy__ +var _ m_AwsKmsRsaKeyring.Dummy__ +var _ m_EcdhEdkWrapping.Dummy__ +var _ m_RawECDHKeyring.Dummy__ +var _ m_AwsKmsEcdhKeyring.Dummy__ +var _ m_RawAESKeyring.Dummy__ +var _ m_RawRSAKeyring.Dummy__ +var _ m_CMM.Dummy__ +var _ m_Defaults.Dummy__ +var _ m_Commitment.Dummy__ +var _ m_DefaultCMM.Dummy__ +var _ m_DefaultClientSupplier.Dummy__ +var _ m_Utils.Dummy__ +var _ m_RequiredEncryptionContextCMM.Dummy__ +var _ m_AwsCryptographyMaterialProvidersOperations.Dummy__ +var _ m_MaterialProviders.Dummy__ +var _ m_KeyStoreErrorMessages.Dummy__ +var _ m_KmsArn.Dummy__ +var _ m_Structure.Dummy__ +var _ m_KMSKeystoreOperations.Dummy__ +var _ m_DDBKeystoreOperations.Dummy__ +var _ m_CreateKeys.Dummy__ +var _ m_CreateKeyStoreTable.Dummy__ +var _ m_GetKeys.Dummy__ +var _ m_AwsCryptographyKeyStoreOperations.Dummy__ +var _ m_KeyStore.Dummy__ +var _ m__Unicode.Dummy__ +var _ m_Functions.Dummy__ +var _ m_Utf8EncodingForm.Dummy__ +var _ m_Utf16EncodingForm.Dummy__ +var _ m_UnicodeStrings.Dummy__ +var _ m_FileIO.Dummy__ +var _ m_GeneralInternals.Dummy__ +var _ m_MulInternalsNonlinear.Dummy__ +var _ m_MulInternals.Dummy__ +var _ m_Mul.Dummy__ +var _ m_ModInternalsNonlinear.Dummy__ +var _ m_DivInternalsNonlinear.Dummy__ +var _ m_ModInternals.Dummy__ +var _ m_DivInternals.Dummy__ +var _ m_DivMod.Dummy__ +var _ m_Power.Dummy__ +var _ m_Logarithm.Dummy__ +var _ m_StandardLibraryInterop.Dummy__ +var _ m_Streams.Dummy__ +var _ m_Sorting.Dummy__ +var _ m_HexStrings.Dummy__ +var _ m_GetOpt.Dummy__ +var _ m_FloatCompare.Dummy__ +var _ m_Base64Lemmas.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Dummy__ +var _ m_StructuredEncryptionUtil.Dummy__ +var _ m_Sets.Dummy__ +var _ m_StructuredEncryptionPaths.Dummy__ +var _ m_StructuredEncryptionHeader.Dummy__ +var _ m_StructuredEncryptionFooter.Dummy__ +var _ m_SortCanon.Dummy__ +var _ m_Canonize.Dummy__ +var _ m_StructuredEncryptionCrypt.Dummy__ +var _ m__Maps.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkStructuredEncryptionOperations.Dummy__ +var _ m_StructuredEncryption.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Dummy__ +var _ m_DynamoDbEncryptionUtil.Dummy__ +var _ m_DynamoDbNormalizeNumber.Dummy__ +var _ m_DynamoToStruct.Dummy__ +var _ m_DynamoDbItemEncryptorUtil.Dummy__ +var _ m_InternalLegacyOverride.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorOperations.Dummy__ +var _ m_DynamoDbItemEncryptor.Dummy__ +var _ m_DynamoDbEncryptionBranchKeyIdSupplier.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkDynamoDbOperations.Dummy__ +var _ m_DynamoDbEncryption.Dummy__ +var _ m_TermLoc.Dummy__ +var _ m_DdbVirtualFields.Dummy__ +var _ m_DynamoDbUpdateExpr.Dummy__ +var _ m_BaseBeacon.Dummy__ +var _ m_CompoundBeacon.Dummy__ +var _ m_SearchableEncryptionInfo.Dummy__ +var _ m_DynamoDBFilterExpr.Dummy__ +var _ m_DynamoDBSupport.Dummy__ +var _ m_SearchConfigToInfo.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Dummy__ +var _ m_DdbMiddlewareConfig.Dummy__ +var _ m_DdbStatement.Dummy__ +var _ m_DynamoDbMiddlewareSupport.Dummy__ +var _ m_PutItemTransform.Dummy__ +var _ m_GetItemTransform.Dummy__ +var _ m_UpdateItemTransform.Dummy__ +var _ m_BatchWriteItemTransform.Dummy__ +var _ m_TransactWriteItemsTransform.Dummy__ +var _ m_BatchGetItemTransform.Dummy__ +var _ m_ScanTransform.Dummy__ +var _ m_QueryTransform.Dummy__ +var _ m_TransactGetItemsTransform.Dummy__ + +type Dummy__ struct{} + +// Definition of class Default__ +type Default__ struct { + dummy byte +} + +func New_Default___() *Default__ { + _this := Default__{} + + return &_this +} + +type CompanionStruct_Default___ struct { +} + +var Companion_Default___ = CompanionStruct_Default___{} + +func (_this *Default__) Equals(other *Default__) bool { + return _this == other +} + +func (_this *Default__) EqualsGeneric(x interface{}) bool { + other, ok := x.(*Default__) + return ok && _this.Equals(other) +} + +func (*Default__) String() string { + return "DeleteItemTransform.Default__" +} +func (_this *Default__) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = &Default__{} + +func (_static *CompanionStruct_Default___) Input(config m_DdbMiddlewareConfig.Config, input m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.DeleteItemInputTransformInput) m_Wrappers.Result { + var output m_Wrappers.Result = m_Wrappers.Result{} + _ = output + if ((config).Dtor_tableEncryptionConfigs()).Contains(((input).Dtor_sdkInput()).Dtor_TableName()) { + var _0_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _0_valueOrError0 + _0_valueOrError0 = m_Wrappers.Companion_Default___.Need(m_DynamoDbMiddlewareSupport.Companion_Default___.NoMap(((input).Dtor_sdkInput()).Dtor_Expected()), m_DdbMiddlewareConfig.Companion_Default___.E(_dafny.SeqOfString("Legacy parameter 'Expected' not supported in UpdateItem with Encryption"))) + if (_0_valueOrError0).IsFailure() { + output = (_0_valueOrError0).PropagateFailure() + return output + } + var _1_valueOrError1 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _1_valueOrError1 + _1_valueOrError1 = m_Wrappers.Companion_Default___.Need((((input).Dtor_sdkInput()).Dtor_ConditionalOperator()).Is_None(), m_DdbMiddlewareConfig.Companion_Default___.E(_dafny.SeqOfString("Legacy parameter 'ConditionalOperator' not supported in UpdateItem with Encryption"))) + if (_1_valueOrError1).IsFailure() { + output = (_1_valueOrError1).PropagateFailure() + return output + } + var _2_tableConfig m_DdbMiddlewareConfig.TableConfig + _ = _2_tableConfig + _2_tableConfig = ((config).Dtor_tableEncryptionConfigs()).Get(((input).Dtor_sdkInput()).Dtor_TableName()).(m_DdbMiddlewareConfig.TableConfig) + var _3_valueOrError2 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(false) + _ = _3_valueOrError2 + _3_valueOrError2 = m_DynamoDbMiddlewareSupport.Companion_Default___.TestConditionExpression(_2_tableConfig, ((input).Dtor_sdkInput()).Dtor_ConditionExpression(), ((input).Dtor_sdkInput()).Dtor_ExpressionAttributeNames(), ((input).Dtor_sdkInput()).Dtor_ExpressionAttributeValues()) + if (_3_valueOrError2).IsFailure() { + output = (_3_valueOrError2).PropagateFailure() + return output + } + var _4___v0 bool + _ = _4___v0 + _4___v0 = (_3_valueOrError2).Extract().(bool) + } + output = m_Wrappers.Companion_Result_.Create_Success_(m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_DeleteItemInputTransformOutput_.Create_DeleteItemInputTransformOutput_((input).Dtor_sdkInput())) + return output + return output +} +func (_static *CompanionStruct_Default___) Output(config m_DdbMiddlewareConfig.Config, input m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.DeleteItemOutputTransformInput) m_Wrappers.Result { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_DeleteItemOutputTransformOutput_.Default()) + _ = output + var _0_tableName _dafny.Sequence + _ = _0_tableName + _0_tableName = ((input).Dtor_originalInput()).Dtor_TableName() + if (!((config).Dtor_tableEncryptionConfigs()).Contains(_0_tableName)) || (m_DynamoDbMiddlewareSupport.Companion_Default___.NoMap(((input).Dtor_sdkOutput()).Dtor_Attributes())) { + output = m_Wrappers.Companion_Result_.Create_Success_(m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_DeleteItemOutputTransformOutput_.Create_DeleteItemOutputTransformOutput_((input).Dtor_sdkOutput())) + return output + } + var _1_tableConfig m_DdbMiddlewareConfig.TableConfig + _ = _1_tableConfig + _1_tableConfig = ((config).Dtor_tableEncryptionConfigs()).Get(_0_tableName).(m_DdbMiddlewareConfig.TableConfig) + var _2_decryptRes m_Wrappers.Result + _ = _2_decryptRes + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = ((_1_tableConfig).Dtor_itemEncryptor()).DecryptItem(m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Companion_DecryptItemInput_.Create_DecryptItemInput_((((input).Dtor_sdkOutput()).Dtor_Attributes()).Dtor_value().(_dafny.Map))) + _2_decryptRes = _out0 + var _3_valueOrError0 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Companion_DecryptItemOutput_.Default()) + _ = _3_valueOrError0 + _3_valueOrError0 = m_DdbMiddlewareConfig.Companion_Default___.MapError(_2_decryptRes) + if (_3_valueOrError0).IsFailure() { + output = (_3_valueOrError0).PropagateFailure() + return output + } + var _4_decrypted m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.DecryptItemOutput + _ = _4_decrypted + _4_decrypted = (_3_valueOrError0).Extract().(m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.DecryptItemOutput) + var _5_valueOrError1 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptyMap) + _ = _5_valueOrError1 + _5_valueOrError1 = m_DynamoDbMiddlewareSupport.Companion_Default___.RemoveBeacons(_1_tableConfig, (_4_decrypted).Dtor_plaintextItem()) + if (_5_valueOrError1).IsFailure() { + output = (_5_valueOrError1).PropagateFailure() + return output + } + var _6_item _dafny.Map + _ = _6_item + _6_item = (_5_valueOrError1).Extract().(_dafny.Map) + var _pat_let_tv0 = _6_item + _ = _pat_let_tv0 + output = m_Wrappers.Companion_Result_.Create_Success_(m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_DeleteItemOutputTransformOutput_.Create_DeleteItemOutputTransformOutput_(func(_pat_let43_0 m_ComAmazonawsDynamodbTypes.DeleteItemOutput) m_ComAmazonawsDynamodbTypes.DeleteItemOutput { + return func(_7_dt__update__tmp_h0 m_ComAmazonawsDynamodbTypes.DeleteItemOutput) m_ComAmazonawsDynamodbTypes.DeleteItemOutput { + return func(_pat_let44_0 m_Wrappers.Option) m_ComAmazonawsDynamodbTypes.DeleteItemOutput { + return func(_8_dt__update_hAttributes_h0 m_Wrappers.Option) m_ComAmazonawsDynamodbTypes.DeleteItemOutput { + return m_ComAmazonawsDynamodbTypes.Companion_DeleteItemOutput_.Create_DeleteItemOutput_(_8_dt__update_hAttributes_h0, (_7_dt__update__tmp_h0).Dtor_ConsumedCapacity(), (_7_dt__update__tmp_h0).Dtor_ItemCollectionMetrics()) + }(_pat_let44_0) + }(m_Wrappers.Companion_Option_.Create_Some_(_pat_let_tv0)) + }(_pat_let43_0) + }((input).Dtor_sdkOutput()))) + return output + return output +} + +// End of class Default__ diff --git a/customer-preview/ddb-esdk/DynamoDBFilterExpr/DynamoDBFilterExpr.go b/customer-preview/ddb-esdk/DynamoDBFilterExpr/DynamoDBFilterExpr.go new file mode 100644 index 000000000..3c4c28e51 --- /dev/null +++ b/customer-preview/ddb-esdk/DynamoDBFilterExpr/DynamoDBFilterExpr.go @@ -0,0 +1,4248 @@ +// Package DynamoDBFilterExpr +// Dafny module DynamoDBFilterExpr compiled into Go + +package DynamoDBFilterExpr + +import ( + os "os" + + m_ComAmazonawsDynamodbTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/ComAmazonawsDynamodbTypes" + m_Com_Amazonaws_Dynamodb "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/Com_Amazonaws_Dynamodb" + m_ComAmazonawsKmsTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/ComAmazonawsKmsTypes" + m_Com_Amazonaws_Kms "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/Com_Amazonaws_Kms" + m_AlgorithmSuites "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AlgorithmSuites" + m_AwsArnParsing "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsArnParsing" + m_AwsCryptographyKeyStoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreOperations" + m_AwsCryptographyKeyStoreTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreTypes" + m_AwsCryptographyMaterialProvidersOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersOperations" + m_AwsCryptographyMaterialProvidersTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersTypes" + m_AwsKmsDiscoveryKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsDiscoveryKeyring" + m_AwsKmsEcdhKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsEcdhKeyring" + m_AwsKmsHierarchicalKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsHierarchicalKeyring" + m_AwsKmsKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsKeyring" + m_AwsKmsMrkAreUnique "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkAreUnique" + m_AwsKmsMrkDiscoveryKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkDiscoveryKeyring" + m_AwsKmsMrkKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkKeyring" + m_AwsKmsMrkMatchForDecrypt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkMatchForDecrypt" + m_AwsKmsRsaKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsRsaKeyring" + m_AwsKmsUtils "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsUtils" + m_CMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CMM" + m_CacheConstants "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CacheConstants" + m_CanonicalEncryptionContext "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CanonicalEncryptionContext" + m_Commitment "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Commitment" + m_Constants "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Constants" + m_CreateKeyStoreTable "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeyStoreTable" + m_CreateKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeys" + m_DDBKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DDBKeystoreOperations" + m_DefaultCMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DefaultCMM" + m_DefaultClientSupplier "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DefaultClientSupplier" + m_Defaults "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Defaults" + m_DiscoveryMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DiscoveryMultiKeyring" + m_EcdhEdkWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/EcdhEdkWrapping" + m_EdkWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/EdkWrapping" + m_ErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/ErrorMessages" + m_GetKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/GetKeys" + m_IntermediateKeyWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/IntermediateKeyWrapping" + m_KMSKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KMSKeystoreOperations" + m_KeyStore "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStore" + m_KeyStoreErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStoreErrorMessages" + m_Keyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Keyring" + m_KmsArn "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KmsArn" + m_LocalCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/LocalCMC" + m_MaterialProviders "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MaterialProviders" + m_MaterialWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MaterialWrapping" + m_Materials "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Materials" + m_MrkAwareDiscoveryMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MrkAwareDiscoveryMultiKeyring" + m_MrkAwareStrictMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MrkAwareStrictMultiKeyring" + m_MultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MultiKeyring" + m_RawAESKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawAESKeyring" + m_RawECDHKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawECDHKeyring" + m_RawRSAKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawRSAKeyring" + m_RequiredEncryptionContextCMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RequiredEncryptionContextCMM" + m_StormTracker "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StormTracker" + m_StormTrackingCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StormTrackingCMC" + m_StrictMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StrictMultiKeyring" + m_Structure "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Structure" + m_SynchronizedLocalCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/SynchronizedLocalCMC" + m_Utils "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Utils" + m_AtomicPrimitives "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AtomicPrimitives" + m_AwsCryptographyPrimitivesOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesOperations" + m_AwsCryptographyPrimitivesTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesTypes" + m_Digest "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Digest" + m_HKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/HKDF" + m_KdfCtr "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/KdfCtr" + m_Random "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Random" + m_WrappedHKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHKDF" + m_WrappedHMAC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHMAC" + m_Actions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Actions" + m_Base64 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64" + m_Base64Lemmas "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64Lemmas" + m_BoundedInts "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/BoundedInts" + m_DivInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternals" + m_DivInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternalsNonlinear" + m_DivMod "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivMod" + m_FileIO "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FileIO" + m_FloatCompare "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FloatCompare" + m_Functions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Functions" + m_GeneralInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GeneralInternals" + m_GetOpt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GetOpt" + m_HexStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/HexStrings" + m_Logarithm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Logarithm" + m__Math "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Math_" + m_ModInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternals" + m_ModInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternalsNonlinear" + m_Mul "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Mul" + m_MulInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternals" + m_MulInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternalsNonlinear" + m_Power "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Power" + m_Relations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Relations" + m_Seq "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq" + m_Seq_MergeSort "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq_MergeSort" + m_Sorting "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Sorting" + m_StandardLibrary "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary" + m_StandardLibraryInterop "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibraryInterop" + m_StandardLibrary_Sequence "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_Sequence" + m_StandardLibrary_String "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_String" + m_StandardLibrary_UInt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_UInt" + m_Streams "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Streams" + m_UnicodeStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UnicodeStrings" + m__Unicode "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Unicode_" + m_Utf16EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf16EncodingForm" + m_Utf8EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf8EncodingForm" + m_Wrappers "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers" + m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorOperations "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorOperations" + m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes" + m_AwsCryptographyDbEncryptionSdkDynamoDbOperations "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbOperations" + m_AwsCryptographyDbEncryptionSdkDynamoDbTypes "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbTypes" + m_AwsCryptographyDbEncryptionSdkStructuredEncryptionOperations "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkStructuredEncryptionOperations" + m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes" + m_BaseBeacon "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/BaseBeacon" + m_Canonize "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/Canonize" + m_CompoundBeacon "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/CompoundBeacon" + m_DdbVirtualFields "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DdbVirtualFields" + m_DynamoDbEncryption "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbEncryption" + m_DynamoDbEncryptionBranchKeyIdSupplier "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbEncryptionBranchKeyIdSupplier" + m_DynamoDbEncryptionUtil "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbEncryptionUtil" + m_DynamoDbItemEncryptor "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbItemEncryptor" + m_DynamoDbItemEncryptorUtil "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbItemEncryptorUtil" + m_DynamoDbNormalizeNumber "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbNormalizeNumber" + m_DynamoDbUpdateExpr "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbUpdateExpr" + m_DynamoToStruct "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoToStruct" + m_InternalLegacyOverride "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/InternalLegacyOverride" + m__Maps "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/Maps_" + m_SearchableEncryptionInfo "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/SearchableEncryptionInfo" + m_Sets "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/Sets" + m_SortCanon "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/SortCanon" + m_StructuredEncryption "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryption" + m_StructuredEncryptionCrypt "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionCrypt" + m_StructuredEncryptionFooter "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionFooter" + m_StructuredEncryptionHeader "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionHeader" + m_StructuredEncryptionPaths "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionPaths" + m_StructuredEncryptionUtil "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionUtil" + m_TermLoc "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/TermLoc" + m__System "github.com/dafny-lang/DafnyRuntimeGo/v4/System_" + _dafny "github.com/dafny-lang/DafnyRuntimeGo/v4/dafny" +) + +var _ = os.Args +var _ _dafny.Dummy__ +var _ m__System.Dummy__ +var _ m_Wrappers.Dummy__ +var _ m_BoundedInts.Dummy__ +var _ m_StandardLibrary_UInt.Dummy__ +var _ m_StandardLibrary_Sequence.Dummy__ +var _ m_StandardLibrary_String.Dummy__ +var _ m_StandardLibrary.Dummy__ +var _ m_AwsCryptographyPrimitivesTypes.Dummy__ +var _ m_Random.Dummy__ +var _ m_Digest.Dummy__ +var _ m_WrappedHMAC.Dummy__ +var _ m_HKDF.Dummy__ +var _ m_WrappedHKDF.Dummy__ +var _ m_KdfCtr.Dummy__ +var _ m_AwsCryptographyPrimitivesOperations.Dummy__ +var _ m_AtomicPrimitives.Dummy__ +var _ m_ComAmazonawsDynamodbTypes.Dummy__ +var _ m_ComAmazonawsKmsTypes.Dummy__ +var _ m_AwsCryptographyKeyStoreTypes.Dummy__ +var _ m_AwsCryptographyMaterialProvidersTypes.Dummy__ +var _ m_Base64.Dummy__ +var _ m_AlgorithmSuites.Dummy__ +var _ m_Materials.Dummy__ +var _ m_Keyring.Dummy__ +var _ m_Relations.Dummy__ +var _ m_Seq_MergeSort.Dummy__ +var _ m__Math.Dummy__ +var _ m_Seq.Dummy__ +var _ m_MultiKeyring.Dummy__ +var _ m_AwsArnParsing.Dummy__ +var _ m_AwsKmsMrkAreUnique.Dummy__ +var _ m_Actions.Dummy__ +var _ m_AwsKmsMrkMatchForDecrypt.Dummy__ +var _ m_AwsKmsUtils.Dummy__ +var _ m_Constants.Dummy__ +var _ m_MaterialWrapping.Dummy__ +var _ m_CanonicalEncryptionContext.Dummy__ +var _ m_IntermediateKeyWrapping.Dummy__ +var _ m_EdkWrapping.Dummy__ +var _ m_ErrorMessages.Dummy__ +var _ m_AwsKmsKeyring.Dummy__ +var _ m_StrictMultiKeyring.Dummy__ +var _ m_AwsKmsDiscoveryKeyring.Dummy__ +var _ m_Com_Amazonaws_Kms.Dummy__ +var _ m_Com_Amazonaws_Dynamodb.Dummy__ +var _ m_DiscoveryMultiKeyring.Dummy__ +var _ m_AwsKmsMrkDiscoveryKeyring.Dummy__ +var _ m_MrkAwareDiscoveryMultiKeyring.Dummy__ +var _ m_AwsKmsMrkKeyring.Dummy__ +var _ m_MrkAwareStrictMultiKeyring.Dummy__ +var _ m_LocalCMC.Dummy__ +var _ m_SynchronizedLocalCMC.Dummy__ +var _ m_StormTracker.Dummy__ +var _ m_StormTrackingCMC.Dummy__ +var _ m_CacheConstants.Dummy__ +var _ m_AwsKmsHierarchicalKeyring.Dummy__ +var _ m_AwsKmsRsaKeyring.Dummy__ +var _ m_EcdhEdkWrapping.Dummy__ +var _ m_RawECDHKeyring.Dummy__ +var _ m_AwsKmsEcdhKeyring.Dummy__ +var _ m_RawAESKeyring.Dummy__ +var _ m_RawRSAKeyring.Dummy__ +var _ m_CMM.Dummy__ +var _ m_Defaults.Dummy__ +var _ m_Commitment.Dummy__ +var _ m_DefaultCMM.Dummy__ +var _ m_DefaultClientSupplier.Dummy__ +var _ m_Utils.Dummy__ +var _ m_RequiredEncryptionContextCMM.Dummy__ +var _ m_AwsCryptographyMaterialProvidersOperations.Dummy__ +var _ m_MaterialProviders.Dummy__ +var _ m_KeyStoreErrorMessages.Dummy__ +var _ m_KmsArn.Dummy__ +var _ m_Structure.Dummy__ +var _ m_KMSKeystoreOperations.Dummy__ +var _ m_DDBKeystoreOperations.Dummy__ +var _ m_CreateKeys.Dummy__ +var _ m_CreateKeyStoreTable.Dummy__ +var _ m_GetKeys.Dummy__ +var _ m_AwsCryptographyKeyStoreOperations.Dummy__ +var _ m_KeyStore.Dummy__ +var _ m__Unicode.Dummy__ +var _ m_Functions.Dummy__ +var _ m_Utf8EncodingForm.Dummy__ +var _ m_Utf16EncodingForm.Dummy__ +var _ m_UnicodeStrings.Dummy__ +var _ m_FileIO.Dummy__ +var _ m_GeneralInternals.Dummy__ +var _ m_MulInternalsNonlinear.Dummy__ +var _ m_MulInternals.Dummy__ +var _ m_Mul.Dummy__ +var _ m_ModInternalsNonlinear.Dummy__ +var _ m_DivInternalsNonlinear.Dummy__ +var _ m_ModInternals.Dummy__ +var _ m_DivInternals.Dummy__ +var _ m_DivMod.Dummy__ +var _ m_Power.Dummy__ +var _ m_Logarithm.Dummy__ +var _ m_StandardLibraryInterop.Dummy__ +var _ m_Streams.Dummy__ +var _ m_Sorting.Dummy__ +var _ m_HexStrings.Dummy__ +var _ m_GetOpt.Dummy__ +var _ m_FloatCompare.Dummy__ +var _ m_Base64Lemmas.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Dummy__ +var _ m_StructuredEncryptionUtil.Dummy__ +var _ m_Sets.Dummy__ +var _ m_StructuredEncryptionPaths.Dummy__ +var _ m_StructuredEncryptionHeader.Dummy__ +var _ m_StructuredEncryptionFooter.Dummy__ +var _ m_SortCanon.Dummy__ +var _ m_Canonize.Dummy__ +var _ m_StructuredEncryptionCrypt.Dummy__ +var _ m__Maps.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkStructuredEncryptionOperations.Dummy__ +var _ m_StructuredEncryption.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Dummy__ +var _ m_DynamoDbEncryptionUtil.Dummy__ +var _ m_DynamoDbNormalizeNumber.Dummy__ +var _ m_DynamoToStruct.Dummy__ +var _ m_DynamoDbItemEncryptorUtil.Dummy__ +var _ m_InternalLegacyOverride.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorOperations.Dummy__ +var _ m_DynamoDbItemEncryptor.Dummy__ +var _ m_DynamoDbEncryptionBranchKeyIdSupplier.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkDynamoDbOperations.Dummy__ +var _ m_DynamoDbEncryption.Dummy__ +var _ m_TermLoc.Dummy__ +var _ m_DdbVirtualFields.Dummy__ +var _ m_DynamoDbUpdateExpr.Dummy__ +var _ m_BaseBeacon.Dummy__ +var _ m_CompoundBeacon.Dummy__ +var _ m_SearchableEncryptionInfo.Dummy__ + +type Dummy__ struct{} + +// Definition of class Default__ +type Default__ struct { + dummy byte +} + +func New_Default___() *Default__ { + _this := Default__{} + + return &_this +} + +type CompanionStruct_Default___ struct { +} + +var Companion_Default___ = CompanionStruct_Default___{} + +func (_this *Default__) Equals(other *Default__) bool { + return _this == other +} + +func (_this *Default__) EqualsGeneric(x interface{}) bool { + other, ok := x.(*Default__) + return ok && _this.Equals(other) +} + +func (*Default__) String() string { + return "DynamoDBFilterExpr.Default__" +} +func (_this *Default__) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = &Default__{} + +func (_static *CompanionStruct_Default___) ExtractAttributes(s _dafny.Sequence, ex m_Wrappers.Option) _dafny.Sequence { + var _0_tokens _dafny.Sequence = Companion_Default___.ParseExpr(s) + _ = _0_tokens + return Companion_Default___.ExtractAttributes2(_0_tokens, ex, _dafny.IntOfInt64(-1)) +} +func (_static *CompanionStruct_Default___) IsSpecial(t Token) bool { + return (((t).Is_AttributeExists()) || ((t).Is_AttributeNotExists())) || ((t).Is_Size()) +} +func (_static *CompanionStruct_Default___) ExtractAttributes2(tokens _dafny.Sequence, names m_Wrappers.Option, tokensUntilSkip _dafny.Int) _dafny.Sequence { + var _0___accumulator _dafny.Sequence = _dafny.SeqOf() + _ = _0___accumulator + goto TAIL_CALL_START +TAIL_CALL_START: + if (_dafny.IntOfUint32((tokens).Cardinality())).Sign() == 0 { + return _dafny.Companion_Sequence_.Concatenate(_0___accumulator, _dafny.SeqOf()) + } else if Companion_Default___.IsSpecial((tokens).Select(0).(Token)) { + var _in0 _dafny.Sequence = (tokens).Drop(1) + _ = _in0 + var _in1 m_Wrappers.Option = names + _ = _in1 + var _in2 _dafny.Int = _dafny.One + _ = _in2 + tokens = _in0 + names = _in1 + tokensUntilSkip = _in2 + goto TAIL_CALL_START + } else if (((tokens).Select(0).(Token)).Is_Attr()) && ((tokensUntilSkip).Sign() == 0) { + var _in3 _dafny.Sequence = (tokens).Drop(1) + _ = _in3 + var _in4 m_Wrappers.Option = names + _ = _in4 + var _in5 _dafny.Int = _dafny.IntOfInt64(-1) + _ = _in5 + tokens = _in3 + names = _in4 + tokensUntilSkip = _in5 + goto TAIL_CALL_START + } else if ((tokens).Select(0).(Token)).Is_Attr() { + _0___accumulator = _dafny.Companion_Sequence_.Concatenate(_0___accumulator, _dafny.SeqOf(Companion_Default___.GetAttrName((tokens).Select(0).(Token), names))) + var _in6 _dafny.Sequence = (tokens).Drop(1) + _ = _in6 + var _in7 m_Wrappers.Option = names + _ = _in7 + var _in8 _dafny.Int = _dafny.IntOfInt64(-1) + _ = _in8 + tokens = _in6 + names = _in7 + tokensUntilSkip = _in8 + goto TAIL_CALL_START + } else { + var _in9 _dafny.Sequence = (tokens).Drop(1) + _ = _in9 + var _in10 m_Wrappers.Option = names + _ = _in10 + var _in11 _dafny.Int = (tokensUntilSkip).Minus(_dafny.One) + _ = _in11 + tokens = _in9 + names = _in10 + tokensUntilSkip = _in11 + goto TAIL_CALL_START + } +} +func (_static *CompanionStruct_Default___) IsEquality(t Token) bool { + return (((t).Is_Eq()) || ((t).Is_Ne())) || ((t).Is_In()) +} +func (_static *CompanionStruct_Default___) IsInequality(t Token) bool { + return ((((t).Is_Lt()) || ((t).Is_Le())) || ((t).Is_Gt())) || ((t).Is_Ge()) +} +func (_static *CompanionStruct_Default___) TokenToString(t Token) _dafny.Sequence { + var _source0 Token = t + _ = _source0 + { + if _source0.Is_Attr() { + var _0_s _dafny.Sequence = _source0.Get_().(Token_Attr).S + _ = _0_s + var _1_l _dafny.Sequence = _source0.Get_().(Token_Attr).Loc + _ = _1_l + return _0_s + } + } + { + if _source0.Is_Value() { + var _2_s _dafny.Sequence = _source0.Get_().(Token_Value).S + _ = _2_s + return _2_s + } + } + { + if _source0.Is_Eq() { + return _dafny.SeqOfString("=") + } + } + { + if _source0.Is_Ne() { + return _dafny.SeqOfString("<>") + } + } + { + if _source0.Is_Lt() { + return _dafny.SeqOfString("<") + } + } + { + if _source0.Is_Gt() { + return _dafny.SeqOfString(">") + } + } + { + if _source0.Is_Le() { + return _dafny.SeqOfString("<=") + } + } + { + if _source0.Is_Ge() { + return _dafny.SeqOfString(">=") + } + } + { + if _source0.Is_Between() { + return _dafny.SeqOfString("BETWEEN") + } + } + { + if _source0.Is_In() { + return _dafny.SeqOfString("IN") + } + } + { + if _source0.Is_Open() { + return _dafny.SeqOfString("(") + } + } + { + if _source0.Is_Close() { + return _dafny.SeqOfString(")") + } + } + { + if _source0.Is_Comma() { + return _dafny.SeqOfString(",") + } + } + { + if _source0.Is_Not() { + return _dafny.SeqOfString("NOT") + } + } + { + if _source0.Is_And() { + return _dafny.SeqOfString("AND") + } + } + { + if _source0.Is_Or() { + return _dafny.SeqOfString("OR") + } + } + { + if _source0.Is_AttributeExists() { + return _dafny.SeqOfString("attribute_exists") + } + } + { + if _source0.Is_AttributeNotExists() { + return _dafny.SeqOfString("attribute_not_exists") + } + } + { + if _source0.Is_AttributeType() { + return _dafny.SeqOfString("attribute_type") + } + } + { + if _source0.Is_BeginsWith() { + return _dafny.SeqOfString("begins_with") + } + } + { + if _source0.Is_Contains() { + return _dafny.SeqOfString("contains") + } + } + { + return _dafny.SeqOfString("size") + } +} +func (_static *CompanionStruct_Default___) GetInPos(expr _dafny.Sequence, pos _dafny.Int) m_Wrappers.Option { + goto TAIL_CALL_START +TAIL_CALL_START: + if (pos).Cmp(_dafny.IntOfInt64(3)) < 0 { + return m_Wrappers.Companion_Option_.Create_None_() + } else if (((expr).Select(((pos).Minus(_dafny.One)).Uint32()).(Token)).Is_Open()) && (((expr).Select(((pos).Minus(_dafny.IntOfInt64(2))).Uint32()).(Token)).Is_In()) { + return m_Wrappers.Companion_Option_.Create_Some_((pos).Minus(_dafny.IntOfInt64(2))) + } else if (((expr).Select(((pos).Minus(_dafny.One)).Uint32()).(Token)).Is_Comma()) && (((expr).Select(((pos).Minus(_dafny.IntOfInt64(2))).Uint32()).(Token)).Is_Value()) { + var _in0 _dafny.Sequence = expr + _ = _in0 + var _in1 _dafny.Int = (pos).Minus(_dafny.IntOfInt64(2)) + _ = _in1 + expr = _in0 + pos = _in1 + goto TAIL_CALL_START + } else { + return m_Wrappers.Companion_Option_.Create_None_() + } +} +func (_static *CompanionStruct_Default___) RealName(s _dafny.Sequence) _dafny.Sequence { + if _dafny.Companion_Sequence_.IsProperPrefixOf(m_DynamoDbEncryptionUtil.Companion_Default___.BeaconPrefix(), s) { + return (s).Drop((_dafny.IntOfUint32((m_DynamoDbEncryptionUtil.Companion_Default___.BeaconPrefix()).Cardinality())).Uint32()) + } else { + return s + } +} +func (_static *CompanionStruct_Default___) HasBeacon(b m_SearchableEncryptionInfo.BeaconVersion, t Token, names m_Wrappers.Option) bool { + if (t).Is_Attr() { + var _0_name _dafny.Sequence = Companion_Default___.RealName((t).Dtor_s()) + _ = _0_name + return (((((b).Dtor_beacons()).Contains(_0_name)) || ((((names).Is_Some()) && (((names).Dtor_value().(_dafny.Map)).Contains(_0_name))) && (((b).Dtor_beacons()).Contains(Companion_Default___.RealName(((names).Dtor_value().(_dafny.Map)).Get(_0_name).(_dafny.Sequence)))))) || (((b).Dtor_encryptedFields()).Contains(_0_name))) || ((((names).Is_Some()) && (((names).Dtor_value().(_dafny.Map)).Contains(_0_name))) && (((b).Dtor_encryptedFields()).Contains(Companion_Default___.RealName(((names).Dtor_value().(_dafny.Map)).Get(_0_name).(_dafny.Sequence))))) + } else { + return false + } +} +func (_static *CompanionStruct_Default___) GetBeacon2(b m_SearchableEncryptionInfo.BeaconVersion, t Token, names m_Wrappers.Option) m_Wrappers.Result { + var _0_name _dafny.Sequence = Companion_Default___.RealName((t).Dtor_s()) + _ = _0_name + if ((b).Dtor_beacons()).Contains(_0_name) { + if m_SearchableEncryptionInfo.Companion_Default___.IsPartOnly(((b).Dtor_beacons()).Get(_0_name).(m_SearchableEncryptionInfo.Beacon)) { + return m_Wrappers.Companion_Result_.Create_Failure_(m_DynamoDbEncryptionUtil.Companion_Default___.E(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.SeqOfString("Field "), _0_name), _dafny.SeqOfString(" is encrypted, and has a PartOnly beacon, and so can only be used as part of a compound beacon.")))) + } else { + return m_Wrappers.Companion_Result_.Create_Success_(((b).Dtor_beacons()).Get(_0_name).(m_SearchableEncryptionInfo.Beacon)) + } + } else if (((names).Is_Some()) && (((names).Dtor_value().(_dafny.Map)).Contains(_0_name))) && (((b).Dtor_beacons()).Contains(Companion_Default___.RealName(((names).Dtor_value().(_dafny.Map)).Get(_0_name).(_dafny.Sequence)))) { + var _1_name2 _dafny.Sequence = Companion_Default___.RealName(((names).Dtor_value().(_dafny.Map)).Get(_0_name).(_dafny.Sequence)) + _ = _1_name2 + return m_Wrappers.Companion_Result_.Create_Success_(((b).Dtor_beacons()).Get(_1_name2).(m_SearchableEncryptionInfo.Beacon)) + } else if ((b).Dtor_encryptedFields()).Contains(_0_name) { + return m_Wrappers.Companion_Result_.Create_Failure_(m_DynamoDbEncryptionUtil.Companion_Default___.E(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.SeqOfString("Field "), _0_name), _dafny.SeqOfString(" is encrypted, and cannot be searched without a beacon.")))) + } else { + var _2_name2 _dafny.Sequence = Companion_Default___.RealName(((names).Dtor_value().(_dafny.Map)).Get(_0_name).(_dafny.Sequence)) + _ = _2_name2 + return m_Wrappers.Companion_Result_.Create_Failure_(m_DynamoDbEncryptionUtil.Companion_Default___.E(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.SeqOfString("Field "), _2_name2), _dafny.SeqOfString(" is encrypted, and cannot be searched without a beacon.")))) + } +} +func (_static *CompanionStruct_Default___) GetBeacon(bv m_SearchableEncryptionInfo.BeaconVersion, t Token, op Token, value Token, names m_Wrappers.Option, values _dafny.Map) m_Wrappers.Result { + var _0_valueOrError0 m_Wrappers.Result = Companion_Default___.GetBeacon2(bv, t, names) + _ = _0_valueOrError0 + if (_0_valueOrError0).IsFailure() { + return (_0_valueOrError0).PropagateFailure() + } else { + var _1_b m_SearchableEncryptionInfo.Beacon = (_0_valueOrError0).Extract().(m_SearchableEncryptionInfo.Beacon) + _ = _1_b + var _2_valueOrError1 m_Wrappers.Result = Companion_Default___.CanBeacon(_1_b, op, (value).Dtor_s(), values) + _ = _2_valueOrError1 + if (_2_valueOrError1).IsFailure() { + return (_2_valueOrError1).PropagateFailure() + } else { + var _3___v0 bool = (_2_valueOrError1).Extract().(bool) + _ = _3___v0 + return m_Wrappers.Companion_Result_.Create_Success_(Companion_EqualityBeacon_.Create_EqualityBeacon_(m_Wrappers.Companion_Option_.Create_Some_(_1_b), Companion_Default___.IsEquality(op), (op).Equals(Companion_Token_.Create_Contains_()))) + } + } +} +func (_static *CompanionStruct_Default___) GetBetweenBeacon(bv m_SearchableEncryptionInfo.BeaconVersion, t Token, op Token, leftValue Token, rightValue Token, names m_Wrappers.Option, values _dafny.Map) m_Wrappers.Result { + var _0_valueOrError0 m_Wrappers.Result = Companion_Default___.GetBeacon2(bv, t, names) + _ = _0_valueOrError0 + if (_0_valueOrError0).IsFailure() { + return (_0_valueOrError0).PropagateFailure() + } else { + var _1_b m_SearchableEncryptionInfo.Beacon = (_0_valueOrError0).Extract().(m_SearchableEncryptionInfo.Beacon) + _ = _1_b + var _2_valueOrError1 m_Wrappers.Result = Companion_Default___.CanBetween(_1_b, op, (leftValue).Dtor_s(), (rightValue).Dtor_s(), values) + _ = _2_valueOrError1 + if (_2_valueOrError1).IsFailure() { + return (_2_valueOrError1).PropagateFailure() + } else { + var _3___v1 bool = (_2_valueOrError1).Extract().(bool) + _ = _3___v1 + return m_Wrappers.Companion_Result_.Create_Success_(Companion_EqualityBeacon_.Create_EqualityBeacon_(m_Wrappers.Companion_Option_.Create_Some_(_1_b), false, false)) + } + } +} +func (_static *CompanionStruct_Default___) CanStandardBeacon(op Token) m_Wrappers.Result { + var _source0 Token = op + _ = _source0 + { + var disjunctiveMatch0 bool = false + _ = disjunctiveMatch0 + if _source0.Is_Ne() { + disjunctiveMatch0 = true + } + if _source0.Is_Lt() { + disjunctiveMatch0 = true + } + if _source0.Is_Gt() { + disjunctiveMatch0 = true + } + if _source0.Is_Le() { + disjunctiveMatch0 = true + } + if _source0.Is_Ge() { + disjunctiveMatch0 = true + } + if _source0.Is_Between() { + disjunctiveMatch0 = true + } + if _source0.Is_BeginsWith() { + disjunctiveMatch0 = true + } + if disjunctiveMatch0 { + return m_Wrappers.Companion_Result_.Create_Failure_(m_DynamoDbEncryptionUtil.Companion_Default___.E(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.SeqOfString("The operation '"), Companion_Default___.TokenToString(op)), _dafny.SeqOfString("' cannot be used with a standard beacon.")))) + } + } + { + return m_Wrappers.Companion_Result_.Create_Success_(true) + } +} +func (_static *CompanionStruct_Default___) CanCompoundBeacon(b m_SearchableEncryptionInfo.Beacon, op Token, value _dafny.Sequence) m_Wrappers.Result { + var _source0 Token = op + _ = _source0 + { + var disjunctiveMatch0 bool = false + _ = disjunctiveMatch0 + if _source0.Is_Lt() { + disjunctiveMatch0 = true + } + if _source0.Is_Gt() { + disjunctiveMatch0 = true + } + if _source0.Is_Le() { + disjunctiveMatch0 = true + } + if _source0.Is_Ge() { + disjunctiveMatch0 = true + } + if disjunctiveMatch0 { + var _0_pieces _dafny.Sequence = m_StandardLibrary.Companion_Default___.Split(value, ((b).Dtor_cmp()).Dtor_split()) + _ = _0_pieces + var _1_valueOrError0 m_Wrappers.Result = ((b).Dtor_cmp()).IsLessThanComparable(_0_pieces) + _ = _1_valueOrError0 + if (_1_valueOrError0).IsFailure() { + return (_1_valueOrError0).PropagateFailure() + } else { + var _2_canLess bool = (_1_valueOrError0).Extract().(bool) + _ = _2_canLess + if _2_canLess { + return m_Wrappers.Companion_Result_.Create_Success_(true) + } else { + return m_Wrappers.Companion_Result_.Create_Failure_(m_DynamoDbEncryptionUtil.Companion_Default___.E(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.SeqOfString("The operation '"), Companion_Default___.TokenToString(op)), _dafny.SeqOfString("' cannot be used with a compound beacon, unless the value is LessThanComparable : ")), value))) + } + } + } + } + { + return m_Wrappers.Companion_Result_.Create_Success_(true) + } +} +func (_static *CompanionStruct_Default___) GetStringFromValue(value _dafny.Sequence, values _dafny.Map, b m_SearchableEncryptionInfo.Beacon) m_Wrappers.Result { + if (values).Contains(value) { + var _0_val m_ComAmazonawsDynamodbTypes.AttributeValue = (values).Get(value).(m_ComAmazonawsDynamodbTypes.AttributeValue) + _ = _0_val + if (_0_val).Is_S() { + return m_Wrappers.Companion_Result_.Create_Success_((_0_val).Dtor_S()) + } else { + return m_Wrappers.Companion_Result_.Create_Failure_(m_DynamoDbEncryptionUtil.Companion_Default___.E(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.SeqOfString("Value "), value), _dafny.SeqOfString(" supplied for compound beacon ")), (((b).Dtor_cmp()).Dtor_base()).Dtor_name()), _dafny.SeqOfString(" is of type ")), m_DynamoDbEncryptionUtil.Companion_Default___.AttrTypeToStr(_0_val)), _dafny.SeqOfString(" but must be of type S (string).")))) + } + } else { + return m_Wrappers.Companion_Result_.Create_Failure_(m_DynamoDbEncryptionUtil.Companion_Default___.E(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.SeqOfString("Value "), value), _dafny.SeqOfString(" used in query string, but not supplied in value map.")))) + } +} +func (_static *CompanionStruct_Default___) CanBeacon(b m_SearchableEncryptionInfo.Beacon, op Token, value _dafny.Sequence, values _dafny.Map) m_Wrappers.Result { + if (b).Is_Standard() { + return Companion_Default___.CanStandardBeacon(op) + } else { + var _0_valueOrError0 m_Wrappers.Result = Companion_Default___.GetStringFromValue(value, values, b) + _ = _0_valueOrError0 + if (_0_valueOrError0).IsFailure() { + return (_0_valueOrError0).PropagateFailure() + } else { + var _1_val _dafny.Sequence = (_0_valueOrError0).Extract().(_dafny.Sequence) + _ = _1_val + return Companion_Default___.CanCompoundBeacon(b, op, _1_val) + } + } +} +func (_static *CompanionStruct_Default___) RemoveCommonPrefix(x _dafny.Sequence, y _dafny.Sequence) _dafny.Tuple { + goto TAIL_CALL_START +TAIL_CALL_START: + if (((_dafny.IntOfUint32((x).Cardinality())).Sign() == 0) || ((_dafny.IntOfUint32((y).Cardinality())).Sign() == 0)) || (!_dafny.Companion_Sequence_.Equal((x).Select(0).(_dafny.Sequence), (y).Select(0).(_dafny.Sequence))) { + return _dafny.TupleOf(x, y) + } else { + var _in0 _dafny.Sequence = (x).Drop(1) + _ = _in0 + var _in1 _dafny.Sequence = (y).Drop(1) + _ = _in1 + x = _in0 + y = _in1 + goto TAIL_CALL_START + } +} +func (_static *CompanionStruct_Default___) CanBetween(b m_SearchableEncryptionInfo.Beacon, op Token, leftValue _dafny.Sequence, rightValue _dafny.Sequence, values _dafny.Map) m_Wrappers.Result { + if (b).Is_Standard() { + return m_Wrappers.Companion_Result_.Create_Failure_(m_DynamoDbEncryptionUtil.Companion_Default___.E(_dafny.SeqOfString("The operation BETWEEN cannot be used with a standard beacon."))) + } else { + var _0_valueOrError0 m_Wrappers.Result = Companion_Default___.GetStringFromValue(leftValue, values, b) + _ = _0_valueOrError0 + if (_0_valueOrError0).IsFailure() { + return (_0_valueOrError0).PropagateFailure() + } else { + var _1_leftVal _dafny.Sequence = (_0_valueOrError0).Extract().(_dafny.Sequence) + _ = _1_leftVal + var _2_valueOrError1 m_Wrappers.Result = Companion_Default___.GetStringFromValue(rightValue, values, b) + _ = _2_valueOrError1 + if (_2_valueOrError1).IsFailure() { + return (_2_valueOrError1).PropagateFailure() + } else { + var _3_rightVal _dafny.Sequence = (_2_valueOrError1).Extract().(_dafny.Sequence) + _ = _3_rightVal + var _4_leftParts _dafny.Sequence = m_StandardLibrary.Companion_Default___.Split(_1_leftVal, ((b).Dtor_cmp()).Dtor_split()) + _ = _4_leftParts + var _5_rightParts _dafny.Sequence = m_StandardLibrary.Companion_Default___.Split(_3_rightVal, ((b).Dtor_cmp()).Dtor_split()) + _ = _5_rightParts + var _let_tmp_rhs0 _dafny.Tuple = Companion_Default___.RemoveCommonPrefix(_4_leftParts, _5_rightParts) + _ = _let_tmp_rhs0 + var _6_newLeft _dafny.Sequence = (*(_let_tmp_rhs0).IndexInt(0)).(_dafny.Sequence) + _ = _6_newLeft + var _7_newRight _dafny.Sequence = (*(_let_tmp_rhs0).IndexInt(1)).(_dafny.Sequence) + _ = _7_newRight + var _8_valueOrError2 m_Wrappers.Result = ((b).Dtor_cmp()).IsLessThanComparable(_6_newLeft) + _ = _8_valueOrError2 + if (_8_valueOrError2).IsFailure() { + return (_8_valueOrError2).PropagateFailure() + } else { + var _9_leftCanLess bool = (_8_valueOrError2).Extract().(bool) + _ = _9_leftCanLess + var _10_valueOrError3 m_Wrappers.Result = ((b).Dtor_cmp()).IsLessThanComparable(_7_newRight) + _ = _10_valueOrError3 + if (_10_valueOrError3).IsFailure() { + return (_10_valueOrError3).PropagateFailure() + } else { + var _11_rightCanLess bool = (_10_valueOrError3).Extract().(bool) + _ = _11_rightCanLess + var _12_valueOrError4 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need((_9_leftCanLess) && (_11_rightCanLess), m_DynamoDbEncryptionUtil.Companion_Default___.E(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.SeqOfString("To use BETWEEN with a compound beacon, the part after any common prefix must be LessThanComparable : "), _dafny.SeqOfString("BETWEEN ")), _1_leftVal), _dafny.SeqOfString(" AND ")), _3_rightVal))) + _ = _12_valueOrError4 + if (_12_valueOrError4).IsFailure() { + return (_12_valueOrError4).PropagateFailure() + } else { + return m_Wrappers.Companion_Result_.Create_Success_(true) + } + } + } + } + } + } +} +func (_static *CompanionStruct_Default___) BeaconForValue(b m_SearchableEncryptionInfo.BeaconVersion, expr _dafny.Sequence, pos _dafny.Int, names m_Wrappers.Option, values _dafny.Map) m_Wrappers.Result { + if ((((pos).Plus(_dafny.IntOfInt64(2))).Cmp(_dafny.IntOfUint32((expr).Cardinality())) < 0) && (Companion_Default___.IsComp((expr).Select(((pos).Plus(_dafny.One)).Uint32()).(Token)))) && (Companion_Default___.HasBeacon(b, (expr).Select(((pos).Plus(_dafny.IntOfInt64(2))).Uint32()).(Token), names)) { + return Companion_Default___.GetBeacon(b, (expr).Select(((pos).Plus(_dafny.IntOfInt64(2))).Uint32()).(Token), (expr).Select(((pos).Plus(_dafny.One)).Uint32()).(Token), (expr).Select((pos).Uint32()).(Token), names, values) + } else if (((_dafny.IntOfInt64(2)).Cmp(pos) <= 0) && (Companion_Default___.IsComp((expr).Select(((pos).Minus(_dafny.One)).Uint32()).(Token)))) && (Companion_Default___.HasBeacon(b, (expr).Select(((pos).Minus(_dafny.IntOfInt64(2))).Uint32()).(Token), names)) { + return Companion_Default___.GetBeacon(b, (expr).Select(((pos).Minus(_dafny.IntOfInt64(2))).Uint32()).(Token), (expr).Select(((pos).Minus(_dafny.One)).Uint32()).(Token), (expr).Select((pos).Uint32()).(Token), names, values) + } else if (((((_dafny.IntOfInt64(4)).Cmp(pos) <= 0) && ((((expr).Select(((pos).Minus(_dafny.IntOfInt64(4))).Uint32()).(Token)).Is_Contains()) || (((expr).Select(((pos).Minus(_dafny.IntOfInt64(4))).Uint32()).(Token)).Is_BeginsWith()))) && (((expr).Select(((pos).Minus(_dafny.IntOfInt64(3))).Uint32()).(Token)).Is_Open())) && (Companion_Default___.HasBeacon(b, (expr).Select(((pos).Minus(_dafny.IntOfInt64(2))).Uint32()).(Token), names))) && (((expr).Select(((pos).Minus(_dafny.One)).Uint32()).(Token)).Is_Comma()) { + return Companion_Default___.GetBeacon(b, (expr).Select(((pos).Minus(_dafny.IntOfInt64(2))).Uint32()).(Token), (expr).Select(((pos).Minus(_dafny.IntOfInt64(4))).Uint32()).(Token), (expr).Select((pos).Uint32()).(Token), names, values) + } else if ((((((_dafny.IntOfInt64(2)).Cmp(pos) <= 0) && ((pos).Cmp((_dafny.IntOfUint32((expr).Cardinality())).Minus(_dafny.IntOfInt64(2))) < 0)) && ((((expr).Select(((pos).Minus(_dafny.IntOfInt64(2))).Uint32()).(Token)).Is_Contains()) || (((expr).Select(((pos).Minus(_dafny.IntOfInt64(2))).Uint32()).(Token)).Is_BeginsWith()))) && (((expr).Select(((pos).Minus(_dafny.One)).Uint32()).(Token)).Is_Open())) && (Companion_Default___.HasBeacon(b, (expr).Select(((pos).Plus(_dafny.IntOfInt64(2))).Uint32()).(Token), names))) && (((expr).Select(((pos).Plus(_dafny.One)).Uint32()).(Token)).Is_Comma()) { + return Companion_Default___.GetBeacon(b, (expr).Select(((pos).Plus(_dafny.IntOfInt64(2))).Uint32()).(Token), (expr).Select(((pos).Minus(_dafny.IntOfInt64(2))).Uint32()).(Token), (expr).Select((pos).Uint32()).(Token), names, values) + } else if (((((_dafny.IntOfInt64(2)).Cmp(pos) <= 0) && ((pos).Cmp((_dafny.IntOfUint32((expr).Cardinality())).Minus(_dafny.IntOfInt64(2))) < 0)) && (((expr).Select(((pos).Minus(_dafny.One)).Uint32()).(Token)).Is_Between())) && (Companion_Default___.HasBeacon(b, (expr).Select(((pos).Minus(_dafny.IntOfInt64(2))).Uint32()).(Token), names))) && (((expr).Select(((pos).Plus(_dafny.IntOfInt64(2))).Uint32()).(Token)).Is_Value()) { + return Companion_Default___.GetBetweenBeacon(b, (expr).Select(((pos).Minus(_dafny.IntOfInt64(2))).Uint32()).(Token), (expr).Select(((pos).Minus(_dafny.One)).Uint32()).(Token), (expr).Select((pos).Uint32()).(Token), (expr).Select(((pos).Plus(_dafny.IntOfInt64(2))).Uint32()).(Token), names, values) + } else if (((((_dafny.IntOfInt64(4)).Cmp(pos) <= 0) && (((expr).Select(((pos).Minus(_dafny.One)).Uint32()).(Token)).Is_And())) && (((expr).Select(((pos).Minus(_dafny.IntOfInt64(3))).Uint32()).(Token)).Is_Between())) && (Companion_Default___.HasBeacon(b, (expr).Select(((pos).Minus(_dafny.IntOfInt64(4))).Uint32()).(Token), names))) && (((expr).Select(((pos).Minus(_dafny.IntOfInt64(2))).Uint32()).(Token)).Is_Value()) { + return Companion_Default___.GetBetweenBeacon(b, (expr).Select(((pos).Minus(_dafny.IntOfInt64(4))).Uint32()).(Token), (expr).Select(((pos).Minus(_dafny.IntOfInt64(3))).Uint32()).(Token), (expr).Select(((pos).Minus(_dafny.IntOfInt64(2))).Uint32()).(Token), (expr).Select((pos).Uint32()).(Token), names, values) + } else if ((expr).Select((pos).Uint32()).(Token)).Is_Value() { + var _0_in__pos m_Wrappers.Option = Companion_Default___.GetInPos(expr, pos) + _ = _0_in__pos + if (_0_in__pos).Is_None() { + return m_Wrappers.Companion_Result_.Create_Success_(Companion_EqualityBeacon_.Create_EqualityBeacon_(m_Wrappers.Companion_Option_.Create_None_(), true, false)) + } else if Companion_Default___.HasBeacon(b, (expr).Select((((_0_in__pos).Dtor_value().(_dafny.Int)).Minus(_dafny.One)).Uint32()).(Token), names) { + return Companion_Default___.GetBeacon(b, (expr).Select((((_0_in__pos).Dtor_value().(_dafny.Int)).Minus(_dafny.One)).Uint32()).(Token), (expr).Select(((_0_in__pos).Dtor_value().(_dafny.Int)).Uint32()).(Token), (expr).Select((pos).Uint32()).(Token), names, values) + } else { + return m_Wrappers.Companion_Result_.Create_Success_(Companion_EqualityBeacon_.Create_EqualityBeacon_(m_Wrappers.Companion_Option_.Create_None_(), true, false)) + } + } else { + return m_Wrappers.Companion_Result_.Create_Success_(Companion_EqualityBeacon_.Create_EqualityBeacon_(m_Wrappers.Companion_Option_.Create_None_(), true, false)) + } +} +func (_static *CompanionStruct_Default___) AttrForValue(expr _dafny.Sequence, pos _dafny.Int) m_Wrappers.Option { + if ((((pos).Plus(_dafny.IntOfInt64(2))).Cmp(_dafny.IntOfUint32((expr).Cardinality())) < 0) && (Companion_Default___.IsComp((expr).Select(((pos).Plus(_dafny.One)).Uint32()).(Token)))) && (((expr).Select(((pos).Plus(_dafny.IntOfInt64(2))).Uint32()).(Token)).Is_Attr()) { + return m_Wrappers.Companion_Option_.Create_Some_((expr).Select(((pos).Plus(_dafny.IntOfInt64(2))).Uint32()).(Token)) + } else if (((_dafny.IntOfInt64(2)).Cmp(pos) <= 0) && (Companion_Default___.IsComp((expr).Select(((pos).Minus(_dafny.One)).Uint32()).(Token)))) && (((expr).Select(((pos).Minus(_dafny.IntOfInt64(2))).Uint32()).(Token)).Is_Attr()) { + return m_Wrappers.Companion_Option_.Create_Some_((expr).Select(((pos).Minus(_dafny.IntOfInt64(2))).Uint32()).(Token)) + } else if (((((_dafny.IntOfInt64(4)).Cmp(pos) <= 0) && ((((expr).Select(((pos).Minus(_dafny.IntOfInt64(4))).Uint32()).(Token)).Is_Contains()) || (((expr).Select(((pos).Minus(_dafny.IntOfInt64(4))).Uint32()).(Token)).Is_BeginsWith()))) && (((expr).Select(((pos).Minus(_dafny.IntOfInt64(3))).Uint32()).(Token)).Is_Open())) && (((expr).Select(((pos).Minus(_dafny.IntOfInt64(2))).Uint32()).(Token)).Is_Attr())) && (((expr).Select(((pos).Minus(_dafny.One)).Uint32()).(Token)).Is_Comma()) { + return m_Wrappers.Companion_Option_.Create_Some_((expr).Select(((pos).Minus(_dafny.IntOfInt64(2))).Uint32()).(Token)) + } else if (((_dafny.IntOfInt64(2)).Cmp(pos) <= 0) && (((expr).Select(((pos).Minus(_dafny.One)).Uint32()).(Token)).Is_Between())) && (((expr).Select(((pos).Minus(_dafny.IntOfInt64(2))).Uint32()).(Token)).Is_Attr()) { + return m_Wrappers.Companion_Option_.Create_Some_((expr).Select(((pos).Minus(_dafny.IntOfInt64(2))).Uint32()).(Token)) + } else if ((((_dafny.IntOfInt64(4)).Cmp(pos) <= 0) && (((expr).Select(((pos).Minus(_dafny.One)).Uint32()).(Token)).Is_And())) && (((expr).Select(((pos).Minus(_dafny.IntOfInt64(3))).Uint32()).(Token)).Is_Between())) && (((expr).Select(((pos).Minus(_dafny.IntOfInt64(4))).Uint32()).(Token)).Is_Attr()) { + return m_Wrappers.Companion_Option_.Create_Some_((expr).Select(((pos).Minus(_dafny.IntOfInt64(4))).Uint32()).(Token)) + } else { + var _0_in__pos m_Wrappers.Option = Companion_Default___.GetInPos(expr, pos) + _ = _0_in__pos + if (_0_in__pos).Is_None() { + return m_Wrappers.Companion_Option_.Create_None_() + } else if ((expr).Select((((_0_in__pos).Dtor_value().(_dafny.Int)).Minus(_dafny.One)).Uint32()).(Token)).Is_Attr() { + return m_Wrappers.Companion_Option_.Create_Some_((expr).Select((((_0_in__pos).Dtor_value().(_dafny.Int)).Minus(_dafny.One)).Uint32()).(Token)) + } else { + return m_Wrappers.Companion_Option_.Create_None_() + } + } +} +func (_static *CompanionStruct_Default___) OpNeedsBeacon(expr _dafny.Sequence, pos _dafny.Int) bool { + if (pos).Cmp(_dafny.IntOfInt64(2)) < 0 { + return true + } else if !(((expr).Select(((pos).Minus(_dafny.One)).Uint32()).(Token)).Is_Open()) { + return true + } else { + return Companion_Default___.TokenNeedsBeacon((expr).Select(((pos).Minus(_dafny.IntOfInt64(2))).Uint32()).(Token)) + } +} +func (_static *CompanionStruct_Default___) IsAllowedOnBeaconPred(expr _dafny.Sequence, pos _dafny.Int) bool { + if (pos).Cmp(_dafny.IntOfInt64(2)) < 0 { + return true + } else if !(((expr).Select(((pos).Minus(_dafny.One)).Uint32()).(Token)).Is_Open()) { + return true + } else if Companion_Default___.TokenAllowsBeacon((expr).Select(((pos).Minus(_dafny.IntOfInt64(2))).Uint32()).(Token)) { + return true + } else { + return false + } +} +func (_static *CompanionStruct_Default___) IsAllowedOnBeacon(expr _dafny.Sequence, pos _dafny.Int, name _dafny.Sequence) m_Wrappers.Result { + if Companion_Default___.IsAllowedOnBeaconPred(expr, pos) { + return m_Wrappers.Companion_Result_.Create_Success_(true) + } else { + return m_Wrappers.Companion_Result_.Create_Failure_(m_DynamoDbEncryptionUtil.Companion_Default___.E(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.SeqOfString("Function "), Companion_Default___.TokenToString((expr).Select(((pos).Minus(_dafny.IntOfInt64(2))).Uint32()).(Token))), _dafny.SeqOfString(" cannot be used on encrypted fields, but it is being used with ")), name))) + } +} +func (_static *CompanionStruct_Default___) TokenNeedsBeacon(t Token) bool { + return !(((t).Is_AttributeExists()) || ((t).Is_AttributeNotExists())) +} +func (_static *CompanionStruct_Default___) TokenAllowsBeacon(t Token) bool { + return !(((t).Is_AttributeType()) || ((t).Is_Size())) +} +func (_static *CompanionStruct_Default___) BeaconizeParsedExpr(b m_SearchableEncryptionInfo.BeaconVersion, expr _dafny.Sequence, pos _dafny.Int, oldValues _dafny.Map, names m_Wrappers.Option, keys m_DynamoDbEncryptionUtil.MaybeKeyMap, newValues _dafny.Map, acc _dafny.Sequence) m_Wrappers.Result { + goto TAIL_CALL_START +TAIL_CALL_START: + if (pos).Cmp(_dafny.IntOfUint32((expr).Cardinality())) == 0 { + return m_Wrappers.Companion_Result_.Create_Success_(Companion_ParsedContext_.Create_ParsedContext_(acc, newValues, names)) + } else if ((expr).Select((pos).Uint32()).(Token)).Is_Attr() { + var _0_isIndirectName bool = _dafny.Companion_Sequence_.IsPrefixOf(_dafny.SeqOfString("#"), ((expr).Select((pos).Uint32()).(Token)).Dtor_s()) + _ = _0_isIndirectName + var _1_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need((!(_0_isIndirectName)) || (((names).Is_Some()) && (((names).Dtor_value().(_dafny.Map)).Contains(((expr).Select((pos).Uint32()).(Token)).Dtor_s()))), m_DynamoDbEncryptionUtil.Companion_Default___.E(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.SeqOfString("Name "), ((expr).Select((pos).Uint32()).(Token)).Dtor_s()), _dafny.SeqOfString(" not in ExpressionAttributeNameMap.")))) + _ = _1_valueOrError0 + if (_1_valueOrError0).IsFailure() { + return (_1_valueOrError0).PropagateFailure() + } else { + var _2_oldName _dafny.Sequence = (func() _dafny.Sequence { + if _0_isIndirectName { + return ((names).Dtor_value().(_dafny.Map)).Get(((expr).Select((pos).Uint32()).(Token)).Dtor_s()).(_dafny.Sequence) + } + return ((expr).Select((pos).Uint32()).(Token)).Dtor_s() + })() + _ = _2_oldName + var _3_exclude bool = ((keys).Is_DontUseKeys()) && (!(Companion_Default___.IsAllowedOnBeaconPred(expr, pos))) + _ = _3_exclude + if ((b).IsBeacon(_2_oldName)) && (!(_3_exclude)) { + var _4_valueOrError1 m_Wrappers.Result = Companion_Default___.IsAllowedOnBeacon(expr, pos, _2_oldName) + _ = _4_valueOrError1 + if (_4_valueOrError1).IsFailure() { + return (_4_valueOrError1).PropagateFailure() + } else { + var _5___v4 bool = (_4_valueOrError1).Extract().(bool) + _ = _5___v4 + if Companion_Default___.OpNeedsBeacon(expr, pos) { + var _6_newName _dafny.Sequence = (((b).Dtor_beacons()).Get(_2_oldName).(m_SearchableEncryptionInfo.Beacon)).GetBeaconName() + _ = _6_newName + if _0_isIndirectName { + var _in0 m_SearchableEncryptionInfo.BeaconVersion = b + _ = _in0 + var _in1 _dafny.Sequence = expr + _ = _in1 + var _in2 _dafny.Int = (pos).Plus(_dafny.One) + _ = _in2 + var _in3 _dafny.Map = oldValues + _ = _in3 + var _in4 m_Wrappers.Option = m_Wrappers.Companion_Option_.Create_Some_(((names).Dtor_value().(_dafny.Map)).Update(((expr).Select((pos).Uint32()).(Token)).Dtor_s(), _6_newName)) + _ = _in4 + var _in5 m_DynamoDbEncryptionUtil.MaybeKeyMap = keys + _ = _in5 + var _in6 _dafny.Map = newValues + _ = _in6 + var _in7 _dafny.Sequence = _dafny.Companion_Sequence_.Concatenate(acc, _dafny.SeqOf((expr).Select((pos).Uint32()).(Token))) + _ = _in7 + b = _in0 + expr = _in1 + pos = _in2 + oldValues = _in3 + names = _in4 + keys = _in5 + newValues = _in6 + acc = _in7 + goto TAIL_CALL_START + } else { + var _in8 m_SearchableEncryptionInfo.BeaconVersion = b + _ = _in8 + var _in9 _dafny.Sequence = expr + _ = _in9 + var _in10 _dafny.Int = (pos).Plus(_dafny.One) + _ = _in10 + var _in11 _dafny.Map = oldValues + _ = _in11 + var _in12 m_Wrappers.Option = names + _ = _in12 + var _in13 m_DynamoDbEncryptionUtil.MaybeKeyMap = keys + _ = _in13 + var _in14 _dafny.Map = newValues + _ = _in14 + var _in15 _dafny.Sequence = _dafny.Companion_Sequence_.Concatenate(acc, _dafny.SeqOf(Companion_Token_.Create_Attr_(_6_newName, m_TermLoc.Companion_Default___.TermLocMap(_6_newName)))) + _ = _in15 + b = _in8 + expr = _in9 + pos = _in10 + oldValues = _in11 + names = _in12 + keys = _in13 + newValues = _in14 + acc = _in15 + goto TAIL_CALL_START + } + } else { + var _in16 m_SearchableEncryptionInfo.BeaconVersion = b + _ = _in16 + var _in17 _dafny.Sequence = expr + _ = _in17 + var _in18 _dafny.Int = (pos).Plus(_dafny.One) + _ = _in18 + var _in19 _dafny.Map = oldValues + _ = _in19 + var _in20 m_Wrappers.Option = names + _ = _in20 + var _in21 m_DynamoDbEncryptionUtil.MaybeKeyMap = keys + _ = _in21 + var _in22 _dafny.Map = newValues + _ = _in22 + var _in23 _dafny.Sequence = _dafny.Companion_Sequence_.Concatenate(acc, _dafny.SeqOf((expr).Select((pos).Uint32()).(Token))) + _ = _in23 + b = _in16 + expr = _in17 + pos = _in18 + oldValues = _in19 + names = _in20 + keys = _in21 + newValues = _in22 + acc = _in23 + goto TAIL_CALL_START + } + } + } else { + var _in24 m_SearchableEncryptionInfo.BeaconVersion = b + _ = _in24 + var _in25 _dafny.Sequence = expr + _ = _in25 + var _in26 _dafny.Int = (pos).Plus(_dafny.One) + _ = _in26 + var _in27 _dafny.Map = oldValues + _ = _in27 + var _in28 m_Wrappers.Option = names + _ = _in28 + var _in29 m_DynamoDbEncryptionUtil.MaybeKeyMap = keys + _ = _in29 + var _in30 _dafny.Map = newValues + _ = _in30 + var _in31 _dafny.Sequence = _dafny.Companion_Sequence_.Concatenate(acc, _dafny.SeqOf((expr).Select((pos).Uint32()).(Token))) + _ = _in31 + b = _in24 + expr = _in25 + pos = _in26 + oldValues = _in27 + names = _in28 + keys = _in29 + newValues = _in30 + acc = _in31 + goto TAIL_CALL_START + } + } + } else if ((expr).Select((pos).Uint32()).(Token)).Is_Value() { + var _7_name _dafny.Sequence = ((expr).Select((pos).Uint32()).(Token)).Dtor_s() + _ = _7_name + var _8_valueOrError2 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need((oldValues).Contains(_7_name), m_DynamoDbEncryptionUtil.Companion_Default___.E(_dafny.Companion_Sequence_.Concatenate(_7_name, _dafny.SeqOfString(" not found in ExpressionAttributeValueMap")))) + _ = _8_valueOrError2 + if (_8_valueOrError2).IsFailure() { + return (_8_valueOrError2).PropagateFailure() + } else { + var _9_oldValue m_ComAmazonawsDynamodbTypes.AttributeValue = (oldValues).Get(_7_name).(m_ComAmazonawsDynamodbTypes.AttributeValue) + _ = _9_oldValue + var _10_valueOrError3 m_Wrappers.Result = Companion_Default___.BeaconForValue(b, expr, pos, names, oldValues) + _ = _10_valueOrError3 + if (_10_valueOrError3).IsFailure() { + return (_10_valueOrError3).PropagateFailure() + } else { + var _11_eb EqualityBeacon = (_10_valueOrError3).Extract().(EqualityBeacon) + _ = _11_eb + var _12_valueOrError4 m_Wrappers.Result = (func() m_Wrappers.Result { + if ((_11_eb).Dtor_beacon()).Is_None() { + return m_Wrappers.Companion_Result_.Create_Success_(_9_oldValue) + } + return (((_11_eb).Dtor_beacon()).Dtor_value().(m_SearchableEncryptionInfo.Beacon)).GetBeaconValue(_9_oldValue, keys, (_11_eb).Dtor_forEquality(), (_11_eb).Dtor_forContains()) + })() + _ = _12_valueOrError4 + if (_12_valueOrError4).IsFailure() { + return (_12_valueOrError4).PropagateFailure() + } else { + var _13_newValue m_ComAmazonawsDynamodbTypes.AttributeValue = (_12_valueOrError4).Extract().(m_ComAmazonawsDynamodbTypes.AttributeValue) + _ = _13_newValue + var _14_valueOrError5 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need((!(newValues).Contains(_7_name)) || (((newValues).Get(_7_name).(m_ComAmazonawsDynamodbTypes.AttributeValue)).Equals(_13_newValue)), m_DynamoDbEncryptionUtil.Companion_Default___.E(_dafny.Companion_Sequence_.Concatenate(_7_name, _dafny.SeqOfString(" used in two different contexts, which is not allowed.")))) + _ = _14_valueOrError5 + if (_14_valueOrError5).IsFailure() { + return (_14_valueOrError5).PropagateFailure() + } else { + var _in32 m_SearchableEncryptionInfo.BeaconVersion = b + _ = _in32 + var _in33 _dafny.Sequence = expr + _ = _in33 + var _in34 _dafny.Int = (pos).Plus(_dafny.One) + _ = _in34 + var _in35 _dafny.Map = oldValues + _ = _in35 + var _in36 m_Wrappers.Option = names + _ = _in36 + var _in37 m_DynamoDbEncryptionUtil.MaybeKeyMap = keys + _ = _in37 + var _in38 _dafny.Map = (newValues).Update(_7_name, _13_newValue) + _ = _in38 + var _in39 _dafny.Sequence = _dafny.Companion_Sequence_.Concatenate(acc, _dafny.SeqOf((expr).Select((pos).Uint32()).(Token))) + _ = _in39 + b = _in32 + expr = _in33 + pos = _in34 + oldValues = _in35 + names = _in36 + keys = _in37 + newValues = _in38 + acc = _in39 + goto TAIL_CALL_START + } + } + } + } + } else { + var _in40 m_SearchableEncryptionInfo.BeaconVersion = b + _ = _in40 + var _in41 _dafny.Sequence = expr + _ = _in41 + var _in42 _dafny.Int = (pos).Plus(_dafny.One) + _ = _in42 + var _in43 _dafny.Map = oldValues + _ = _in43 + var _in44 m_Wrappers.Option = names + _ = _in44 + var _in45 m_DynamoDbEncryptionUtil.MaybeKeyMap = keys + _ = _in45 + var _in46 _dafny.Map = newValues + _ = _in46 + var _in47 _dafny.Sequence = _dafny.Companion_Sequence_.Concatenate(acc, _dafny.SeqOf((expr).Select((pos).Uint32()).(Token))) + _ = _in47 + b = _in40 + expr = _in41 + pos = _in42 + oldValues = _in43 + names = _in44 + keys = _in45 + newValues = _in46 + acc = _in47 + goto TAIL_CALL_START + } +} +func (_static *CompanionStruct_Default___) ParsedExprToString(t _dafny.Sequence) _dafny.Sequence { + var _0_x _dafny.Sequence = m_Seq.Companion_Default___.Map(func(coer107 func(Token) _dafny.Sequence) func(interface{}) interface{} { + return func(arg132 interface{}) interface{} { + return coer107(arg132.(Token)) + } + }(func(_1_x Token) _dafny.Sequence { + return Companion_Default___.TokenToString(_1_x) + }), t) + _ = _0_x + if (_dafny.IntOfUint32((_0_x).Cardinality())).Sign() == 0 { + return _dafny.SeqOfString("") + } else { + return m_StandardLibrary.Companion_Default___.Join(_0_x, _dafny.SeqOfString(" ")) + } +} +func (_static *CompanionStruct_Default___) IsUnary(t Token) bool { + var _source0 Token = t + _ = _source0 + { + if _source0.Is_Not() { + return true + } + } + { + return false + } +} +func (_static *CompanionStruct_Default___) IsComp(t Token) bool { + var _source0 Token = t + _ = _source0 + { + var disjunctiveMatch0 bool = false + _ = disjunctiveMatch0 + if _source0.Is_Eq() { + disjunctiveMatch0 = true + } + if _source0.Is_Ne() { + disjunctiveMatch0 = true + } + if _source0.Is_Lt() { + disjunctiveMatch0 = true + } + if _source0.Is_Gt() { + disjunctiveMatch0 = true + } + if _source0.Is_Le() { + disjunctiveMatch0 = true + } + if _source0.Is_Ge() { + disjunctiveMatch0 = true + } + if disjunctiveMatch0 { + return true + } + } + { + return false + } +} +func (_static *CompanionStruct_Default___) IsBinaryBool(t Token) bool { + var _source0 Token = t + _ = _source0 + { + var disjunctiveMatch0 bool = false + _ = disjunctiveMatch0 + if _source0.Is_And() { + disjunctiveMatch0 = true + } + if _source0.Is_Or() { + disjunctiveMatch0 = true + } + if disjunctiveMatch0 { + return true + } + } + { + return false + } +} +func (_static *CompanionStruct_Default___) IsBinary(t Token) bool { + return (Companion_Default___.IsComp(t)) || (Companion_Default___.IsBinaryBool(t)) +} +func (_static *CompanionStruct_Default___) IsVar(t Token) bool { + var _source0 Token = t + _ = _source0 + { + if _source0.Is_Value() { + var _0_s _dafny.Sequence = _source0.Get_().(Token_Value).S + _ = _0_s + return true + } + } + { + if _source0.Is_Attr() { + var _1_s _dafny.Sequence = _source0.Get_().(Token_Attr).S + _ = _1_s + var _2_loc _dafny.Sequence = _source0.Get_().(Token_Attr).Loc + _ = _2_loc + return true + } + } + { + return false + } +} +func (_static *CompanionStruct_Default___) IsFunction(t Token) bool { + var _source0 Token = t + _ = _source0 + { + var disjunctiveMatch0 bool = false + _ = disjunctiveMatch0 + if _source0.Is_Between() { + disjunctiveMatch0 = true + } + if _source0.Is_In() { + disjunctiveMatch0 = true + } + if _source0.Is_AttributeExists() { + disjunctiveMatch0 = true + } + if _source0.Is_AttributeNotExists() { + disjunctiveMatch0 = true + } + if _source0.Is_AttributeType() { + disjunctiveMatch0 = true + } + if _source0.Is_BeginsWith() { + disjunctiveMatch0 = true + } + if _source0.Is_Contains() { + disjunctiveMatch0 = true + } + if _source0.Is_Size() { + disjunctiveMatch0 = true + } + if disjunctiveMatch0 { + return true + } + } + { + return false + } +} +func (_static *CompanionStruct_Default___) Precedence(t Token) _dafny.Int { + var _source0 Token = t + _ = _source0 + { + if _source0.Is_Open() { + return _dafny.IntOfInt64(11) + } + } + { + if _source0.Is_Close() { + return _dafny.IntOfInt64(11) + } + } + { + if _source0.Is_Comma() { + return _dafny.IntOfInt64(11) + } + } + { + if _source0.Is_Attr() { + var _0_s _dafny.Sequence = _source0.Get_().(Token_Attr).S + _ = _0_s + var _1_loc _dafny.Sequence = _source0.Get_().(Token_Attr).Loc + _ = _1_loc + return _dafny.IntOfInt64(10) + } + } + { + if _source0.Is_Value() { + var _2_s _dafny.Sequence = _source0.Get_().(Token_Value).S + _ = _2_s + return _dafny.IntOfInt64(10) + } + } + { + if _source0.Is_Eq() { + return _dafny.IntOfInt64(9) + } + } + { + if _source0.Is_Ne() { + return _dafny.IntOfInt64(9) + } + } + { + if _source0.Is_Lt() { + return _dafny.IntOfInt64(9) + } + } + { + if _source0.Is_Gt() { + return _dafny.IntOfInt64(9) + } + } + { + if _source0.Is_Le() { + return _dafny.IntOfInt64(9) + } + } + { + if _source0.Is_Ge() { + return _dafny.IntOfInt64(9) + } + } + { + if _source0.Is_In() { + return _dafny.IntOfInt64(8) + } + } + { + if _source0.Is_Between() { + return _dafny.IntOfInt64(7) + } + } + { + if _source0.Is_AttributeExists() { + return _dafny.IntOfInt64(6) + } + } + { + if _source0.Is_AttributeNotExists() { + return _dafny.IntOfInt64(6) + } + } + { + if _source0.Is_AttributeType() { + return _dafny.IntOfInt64(6) + } + } + { + if _source0.Is_BeginsWith() { + return _dafny.IntOfInt64(6) + } + } + { + if _source0.Is_Contains() { + return _dafny.IntOfInt64(6) + } + } + { + if _source0.Is_Size() { + return _dafny.IntOfInt64(6) + } + } + { + if _source0.Is_Not() { + return _dafny.IntOfInt64(5) + } + } + { + if _source0.Is_And() { + return _dafny.IntOfInt64(4) + } + } + { + return _dafny.IntOfInt64(3) + } +} +func (_static *CompanionStruct_Default___) ParseExpr(s _dafny.Sequence) _dafny.Sequence { + var _0___accumulator _dafny.Sequence = _dafny.SeqOf() + _ = _0___accumulator + goto TAIL_CALL_START +TAIL_CALL_START: + var _1_tup _dafny.Tuple = Companion_Default___.FindIndexToken(s) + _ = _1_tup + if ((*(_1_tup).IndexInt(0)).(_dafny.Int)).Sign() == 1 { + _0___accumulator = _dafny.Companion_Sequence_.Concatenate(_0___accumulator, _dafny.SeqOf((*(_1_tup).IndexInt(1)).(Token))) + var _in0 _dafny.Sequence = (s).Drop(((*(_1_tup).IndexInt(0)).(_dafny.Int)).Uint32()) + _ = _in0 + s = _in0 + goto TAIL_CALL_START + } else { + return _dafny.Companion_Sequence_.Concatenate(_0___accumulator, _dafny.SeqOf()) + } +} +func (_static *CompanionStruct_Default___) ByteLower(ch uint8) uint8 { + if ((uint8(_dafny.Char('A'))) <= (ch)) && ((ch) <= (uint8(_dafny.Char('Z')))) { + return ((ch) - (func() uint8 { return (uint8(_dafny.Char('A'))) })()) + (uint8(_dafny.Char('a'))) + } else { + return ch + } +} +func (_static *CompanionStruct_Default___) CharLower(ch _dafny.Char) _dafny.Char { + if ((_dafny.Char('A')) <= (ch)) && ((ch) <= (_dafny.Char('Z'))) { + return ((ch) - (_dafny.Char('A'))) + (_dafny.Char('a')) + } else { + return ch + } +} +func (_static *CompanionStruct_Default___) StrLower(s _dafny.Sequence) _dafny.Sequence { + var _0___accumulator _dafny.Sequence = _dafny.SeqOfChars() + _ = _0___accumulator + goto TAIL_CALL_START +TAIL_CALL_START: + if (_dafny.IntOfUint32((s).Cardinality())).Sign() == 0 { + return _dafny.Companion_Sequence_.Concatenate(_0___accumulator, s) + } else { + _0___accumulator = _dafny.Companion_Sequence_.Concatenate(_0___accumulator, _dafny.SeqOfChars(Companion_Default___.CharLower((s).Select(0).(_dafny.Char)))) + var _in0 _dafny.Sequence = (s).Drop(1) + _ = _in0 + s = _in0 + goto TAIL_CALL_START + } +} +func (_static *CompanionStruct_Default___) PrefixLower(pre _dafny.Sequence, s _dafny.Sequence) bool { + return _dafny.Companion_Sequence_.IsPrefixOf(Companion_Default___.StrLower(pre), Companion_Default___.StrLower(s)) +} +func (_static *CompanionStruct_Default___) ValueChar(ch _dafny.Char) bool { + if ((_dafny.Char('a')) <= (ch)) && ((ch) <= (_dafny.Char('z'))) { + return true + } else if ((_dafny.Char('A')) <= (ch)) && ((ch) <= (_dafny.Char('Z'))) { + return true + } else if ((_dafny.Char('0')) <= (ch)) && ((ch) <= (_dafny.Char('9'))) { + return true + } else if (ch) == (_dafny.Char('_')) { + return true + } else { + return false + } +} +func (_static *CompanionStruct_Default___) AttributeChar(ch _dafny.Char) bool { + if Companion_Default___.ValueChar(ch) { + return true + } else if _dafny.Companion_Sequence_.Contains(_dafny.SeqOfChars(_dafny.Char(':'), _dafny.Char('['), _dafny.Char(']'), _dafny.Char('.'), _dafny.Char('#')), ch) { + return true + } else { + return false + } +} +func (_static *CompanionStruct_Default___) ValueLen(s _dafny.Sequence) _dafny.Int { + var _0___accumulator _dafny.Int = _dafny.Zero + _ = _0___accumulator + goto TAIL_CALL_START +TAIL_CALL_START: + if (_dafny.IntOfUint32((s).Cardinality())).Sign() == 0 { + return (_dafny.Zero).Plus(_0___accumulator) + } else if Companion_Default___.ValueChar((s).Select(0).(_dafny.Char)) { + _0___accumulator = (_dafny.One).Plus(_0___accumulator) + var _in0 _dafny.Sequence = (s).Drop(1) + _ = _in0 + s = _in0 + goto TAIL_CALL_START + } else { + return (_dafny.Zero).Plus(_0___accumulator) + } +} +func (_static *CompanionStruct_Default___) AttributeLen(s _dafny.Sequence) _dafny.Int { + var _0___accumulator _dafny.Int = _dafny.Zero + _ = _0___accumulator + goto TAIL_CALL_START +TAIL_CALL_START: + if (_dafny.IntOfUint32((s).Cardinality())).Sign() == 0 { + return (_dafny.Zero).Plus(_0___accumulator) + } else if Companion_Default___.AttributeChar((s).Select(0).(_dafny.Char)) { + _0___accumulator = (_dafny.One).Plus(_0___accumulator) + var _in0 _dafny.Sequence = (s).Drop(1) + _ = _in0 + s = _in0 + goto TAIL_CALL_START + } else { + return (_dafny.Zero).Plus(_0___accumulator) + } +} +func (_static *CompanionStruct_Default___) MakeAttr(s _dafny.Sequence) Token { + var _0_loc m_Wrappers.Result = m_TermLoc.Companion_Default___.MakeTermLoc(s) + _ = _0_loc + if (_0_loc).Is_Success() { + return Companion_Token_.Create_Attr_(s, (_0_loc).Dtor_value().(_dafny.Sequence)) + } else { + return Companion_Token_.Create_Attr_(s, m_TermLoc.Companion_Default___.TermLocMap(s)) + } +} +func (_static *CompanionStruct_Default___) FindIndexToken(s _dafny.Sequence) _dafny.Tuple { + if (_dafny.IntOfUint32((s).Cardinality())).Sign() == 0 { + return _dafny.TupleOf(_dafny.Zero, Companion_Token_.Create_Close_()) + } else { + var _0_ch _dafny.Char = (s).Select(0).(_dafny.Char) + _ = _0_ch + if (_0_ch) == (_dafny.Char(' ')) { + var _1_foo _dafny.Tuple = Companion_Default___.FindIndexToken((s).Drop(1)) + _ = _1_foo + if ((*(_1_foo).IndexInt(0)).(_dafny.Int)).Sign() == 0 { + return _dafny.TupleOf((*(_1_foo).IndexInt(0)).(_dafny.Int), (*(_1_foo).IndexInt(1)).(Token)) + } else { + return _dafny.TupleOf(((*(_1_foo).IndexInt(0)).(_dafny.Int)).Plus(_dafny.One), (*(_1_foo).IndexInt(1)).(Token)) + } + } else if (_0_ch) == (_dafny.Char('(')) { + return _dafny.TupleOf(_dafny.One, Companion_Token_.Create_Open_()) + } else if (_0_ch) == (_dafny.Char(')')) { + return _dafny.TupleOf(_dafny.One, Companion_Token_.Create_Close_()) + } else if (_0_ch) == (_dafny.Char(',')) { + return _dafny.TupleOf(_dafny.One, Companion_Token_.Create_Comma_()) + } else if (_0_ch) == (_dafny.Char('=')) { + return _dafny.TupleOf(_dafny.One, Companion_Token_.Create_Eq_()) + } else if (_0_ch) == (_dafny.Char('<')) { + if _dafny.Companion_Sequence_.IsPrefixOf(_dafny.SeqOfString("<="), s) { + return _dafny.TupleOf(_dafny.IntOfInt64(2), Companion_Token_.Create_Le_()) + } else if _dafny.Companion_Sequence_.IsPrefixOf(_dafny.SeqOfString("<>"), s) { + return _dafny.TupleOf(_dafny.IntOfInt64(2), Companion_Token_.Create_Ne_()) + } else { + return _dafny.TupleOf(_dafny.One, Companion_Token_.Create_Lt_()) + } + } else if (_0_ch) == (_dafny.Char('>')) { + if _dafny.Companion_Sequence_.IsPrefixOf(_dafny.SeqOfString(">="), s) { + return _dafny.TupleOf(_dafny.IntOfInt64(2), Companion_Token_.Create_Ge_()) + } else { + return _dafny.TupleOf(_dafny.One, Companion_Token_.Create_Gt_()) + } + } else if Companion_Default___.PrefixLower(_dafny.SeqOfString("in"), s) { + return _dafny.TupleOf(_dafny.IntOfInt64(2), Companion_Token_.Create_In_()) + } else if Companion_Default___.PrefixLower(_dafny.SeqOfString("between"), s) { + return _dafny.TupleOf(_dafny.IntOfInt64(7), Companion_Token_.Create_Between_()) + } else if Companion_Default___.PrefixLower(_dafny.SeqOfString("and"), s) { + return _dafny.TupleOf(_dafny.IntOfInt64(3), Companion_Token_.Create_And_()) + } else if Companion_Default___.PrefixLower(_dafny.SeqOfString("or"), s) { + return _dafny.TupleOf(_dafny.IntOfInt64(2), Companion_Token_.Create_Or_()) + } else if Companion_Default___.PrefixLower(_dafny.SeqOfString("not"), s) { + return _dafny.TupleOf(_dafny.IntOfInt64(3), Companion_Token_.Create_Not_()) + } else if Companion_Default___.PrefixLower(_dafny.SeqOfString("attribute_not_exists"), s) { + return _dafny.TupleOf(_dafny.IntOfInt64(20), Companion_Token_.Create_AttributeNotExists_()) + } else if Companion_Default___.PrefixLower(_dafny.SeqOfString("attribute_type"), s) { + return _dafny.TupleOf(_dafny.IntOfInt64(14), Companion_Token_.Create_AttributeType_()) + } else if Companion_Default___.PrefixLower(_dafny.SeqOfString("begins_with"), s) { + return _dafny.TupleOf(_dafny.IntOfInt64(11), Companion_Token_.Create_BeginsWith_()) + } else if Companion_Default___.PrefixLower(_dafny.SeqOfString("attribute_exists"), s) { + return _dafny.TupleOf(_dafny.IntOfInt64(16), Companion_Token_.Create_AttributeExists_()) + } else if Companion_Default___.PrefixLower(_dafny.SeqOfString("contains"), s) { + return _dafny.TupleOf(_dafny.IntOfInt64(8), Companion_Token_.Create_Contains_()) + } else if Companion_Default___.PrefixLower(_dafny.SeqOfString("size"), s) { + return _dafny.TupleOf(_dafny.IntOfInt64(4), Companion_Token_.Create_Size_()) + } else if (_0_ch) == (_dafny.Char(':')) { + var _2_x _dafny.Int = (Companion_Default___.ValueLen((s).Drop(1))).Plus(_dafny.One) + _ = _2_x + return _dafny.TupleOf(_2_x, Companion_Token_.Create_Value_((s).Subsequence(0, (_2_x).Uint32()))) + } else if (_0_ch) == (_dafny.Char('#')) { + var _3_x _dafny.Int = (Companion_Default___.ValueLen((s).Drop(1))).Plus(_dafny.One) + _ = _3_x + return _dafny.TupleOf(_3_x, Companion_Default___.MakeAttr((s).Subsequence(0, (_3_x).Uint32()))) + } else { + var _4_x _dafny.Int = Companion_Default___.AttributeLen(s) + _ = _4_x + return _dafny.TupleOf(_4_x, Companion_Default___.MakeAttr((s).Subsequence(0, (_4_x).Uint32()))) + } + } +} +func (_static *CompanionStruct_Default___) VarOrSize(input _dafny.Sequence) _dafny.Int { + if (_dafny.IntOfUint32((input).Cardinality())).Sign() == 0 { + return _dafny.Zero + } else if (((input).Select(0).(Token)).Is_Value()) || (((input).Select(0).(Token)).Is_Attr()) { + return _dafny.One + } else if (((((_dafny.IntOfInt64(3)).Cmp(_dafny.IntOfUint32((input).Cardinality())) < 0) && (((input).Select(0).(Token)).Is_Size())) && (((input).Select(1).(Token)).Is_Open())) && (Companion_Default___.IsVar((input).Select(2).(Token)))) && (((input).Select(3).(Token)).Is_Close()) { + return _dafny.IntOfInt64(4) + } else { + return _dafny.Zero + } +} +func (_static *CompanionStruct_Default___) IsBetween(input _dafny.Sequence) m_Wrappers.Option { + if (_dafny.IntOfUint32((input).Cardinality())).Cmp(_dafny.IntOfInt64(5)) < 0 { + return m_Wrappers.Companion_Option_.Create_None_() + } else { + var _0_p1 _dafny.Int = Companion_Default___.VarOrSize(input) + _ = _0_p1 + if (((_0_p1).Sign() == 1) && (((_0_p1).Plus(_dafny.One)).Cmp(_dafny.IntOfUint32((input).Cardinality())) < 0)) && (((input).Select((_0_p1).Uint32()).(Token)).Is_Between()) { + var _1_p2 _dafny.Int = Companion_Default___.VarOrSize((input).Drop(((_0_p1).Plus(_dafny.One)).Uint32())) + _ = _1_p2 + if (((_1_p2).Sign() == 1) && ((((_0_p1).Plus(_1_p2)).Plus(_dafny.IntOfInt64(2))).Cmp(_dafny.IntOfUint32((input).Cardinality())) < 0)) && (((input).Select((((_0_p1).Plus(_1_p2)).Plus(_dafny.One)).Uint32()).(Token)).Is_And()) { + var _2_p3 _dafny.Int = Companion_Default___.VarOrSize((input).Drop((((_0_p1).Plus(_1_p2)).Plus(_dafny.IntOfInt64(2))).Uint32())) + _ = _2_p3 + if (_2_p3).Sign() == 1 { + return m_Wrappers.Companion_Option_.Create_Some_(_dafny.TupleOf(_0_p1, _1_p2, _2_p3)) + } else { + return m_Wrappers.Companion_Option_.Create_None_() + } + } else { + return m_Wrappers.Companion_Option_.Create_None_() + } + } else { + return m_Wrappers.Companion_Option_.Create_None_() + } + } +} +func (_static *CompanionStruct_Default___) IsIN(input _dafny.Sequence) bool { + if (_dafny.IntOfUint32((input).Cardinality())).Cmp(_dafny.IntOfInt64(3)) < 0 { + return false + } else if !(Companion_Default___.IsVar((input).Select(0).(Token))) { + return false + } else if !((input).Select(1).(Token)).Equals(Companion_Token_.Create_In_()) { + return false + } else if !((input).Select(2).(Token)).Equals(Companion_Token_.Create_Open_()) { + return false + } else { + return true + } +} +func (_static *CompanionStruct_Default___) ConvertToPrefix(input _dafny.Sequence) _dafny.Sequence { + var _0___accumulator _dafny.Sequence = _dafny.SeqOf() + _ = _0___accumulator + goto TAIL_CALL_START +TAIL_CALL_START: + var _1_between m_Wrappers.Option = Companion_Default___.IsBetween(input) + _ = _1_between + if (_dafny.IntOfUint32((input).Cardinality())).Cmp(_dafny.IntOfInt64(5)) < 0 { + return _dafny.Companion_Sequence_.Concatenate(_0___accumulator, input) + } else if Companion_Default___.IsIN(input) { + _0___accumulator = _dafny.Companion_Sequence_.Concatenate(_0___accumulator, _dafny.SeqOf((input).Select(1).(Token), (input).Select(2).(Token), (input).Select(0).(Token), Companion_Token_.Create_Comma_())) + var _in0 _dafny.Sequence = (input).Drop(3) + _ = _in0 + input = _in0 + goto TAIL_CALL_START + } else if (_1_between).Is_Some() { + var _2_b _dafny.Tuple = (_1_between).Dtor_value().(_dafny.Tuple) + _ = _2_b + _0___accumulator = _dafny.Companion_Sequence_.Concatenate(_0___accumulator, _dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.SeqOf(Companion_Token_.Create_Between_(), Companion_Token_.Create_Open_()), (input).Subsequence(0, ((*(_2_b).IndexInt(0)).(_dafny.Int)).Uint32())), _dafny.SeqOf(Companion_Token_.Create_Comma_())), (input).Subsequence((((*(_2_b).IndexInt(0)).(_dafny.Int)).Plus(_dafny.One)).Uint32(), ((((*(_2_b).IndexInt(0)).(_dafny.Int)).Plus((*(_2_b).IndexInt(1)).(_dafny.Int))).Plus(_dafny.One)).Uint32())), _dafny.SeqOf(Companion_Token_.Create_Comma_())), (input).Subsequence(((((*(_2_b).IndexInt(0)).(_dafny.Int)).Plus((*(_2_b).IndexInt(1)).(_dafny.Int))).Plus(_dafny.IntOfInt64(2))).Uint32(), (((((*(_2_b).IndexInt(0)).(_dafny.Int)).Plus((*(_2_b).IndexInt(1)).(_dafny.Int))).Plus((*(_2_b).IndexInt(2)).(_dafny.Int))).Plus(_dafny.IntOfInt64(2))).Uint32())), _dafny.SeqOf(Companion_Token_.Create_Close_()))) + var _in1 _dafny.Sequence = (input).Drop((((((*(_2_b).IndexInt(0)).(_dafny.Int)).Plus((*(_2_b).IndexInt(1)).(_dafny.Int))).Plus((*(_2_b).IndexInt(2)).(_dafny.Int))).Plus(_dafny.IntOfInt64(2))).Uint32()) + _ = _in1 + input = _in1 + goto TAIL_CALL_START + } else { + _0___accumulator = _dafny.Companion_Sequence_.Concatenate(_0___accumulator, _dafny.SeqOf((input).Select(0).(Token))) + var _in2 _dafny.Sequence = (input).Drop(1) + _ = _in2 + input = _in2 + goto TAIL_CALL_START + } +} +func (_static *CompanionStruct_Default___) ConvertToRpn(input _dafny.Sequence) _dafny.Sequence { + var _0_stack _dafny.Sequence = _dafny.SeqOf() + _ = _0_stack + return Companion_Default___.ConvertToRpn__inner(input, _0_stack) +} +func (_static *CompanionStruct_Default___) ConvertToRpn__inner(input _dafny.Sequence, stack _dafny.Sequence) _dafny.Sequence { + var _0___accumulator _dafny.Sequence = _dafny.SeqOf() + _ = _0___accumulator + goto TAIL_CALL_START +TAIL_CALL_START: + if (_dafny.IntOfUint32((input).Cardinality())).Sign() == 0 { + if (_dafny.IntOfUint32((stack).Cardinality())).Sign() == 0 { + return _dafny.Companion_Sequence_.Concatenate(_0___accumulator, _dafny.SeqOf()) + } else { + _0___accumulator = _dafny.Companion_Sequence_.Concatenate(_0___accumulator, _dafny.SeqOf((stack).Select(((_dafny.IntOfUint32((stack).Cardinality())).Minus(_dafny.One)).Uint32()).(Token))) + var _in0 _dafny.Sequence = input + _ = _in0 + var _in1 _dafny.Sequence = (stack).Take(((_dafny.IntOfUint32((stack).Cardinality())).Minus(_dafny.One)).Uint32()) + _ = _in1 + input = _in0 + stack = _in1 + goto TAIL_CALL_START + } + } else { + var _source0 Token = (input).Select(0).(Token) + _ = _source0 + { + if _source0.Is_Attr() { + var _1_s _dafny.Sequence = _source0.Get_().(Token_Attr).S + _ = _1_s + var _2_loc _dafny.Sequence = _source0.Get_().(Token_Attr).Loc + _ = _2_loc + return _dafny.Companion_Sequence_.Concatenate(_dafny.SeqOf((input).Select(0).(Token)), Companion_Default___.ConvertToRpn__inner((input).Drop(1), stack)) + } + } + { + if _source0.Is_Value() { + var _3_s _dafny.Sequence = _source0.Get_().(Token_Value).S + _ = _3_s + return _dafny.Companion_Sequence_.Concatenate(_dafny.SeqOf((input).Select(0).(Token)), Companion_Default___.ConvertToRpn__inner((input).Drop(1), stack)) + } + } + { + var disjunctiveMatch0 bool = false + _ = disjunctiveMatch0 + if _source0.Is_Between() { + disjunctiveMatch0 = true + } + if _source0.Is_In() { + disjunctiveMatch0 = true + } + if _source0.Is_Not() { + disjunctiveMatch0 = true + } + if _source0.Is_AttributeExists() { + disjunctiveMatch0 = true + } + if _source0.Is_AttributeNotExists() { + disjunctiveMatch0 = true + } + if _source0.Is_AttributeType() { + disjunctiveMatch0 = true + } + if _source0.Is_BeginsWith() { + disjunctiveMatch0 = true + } + if _source0.Is_Contains() { + disjunctiveMatch0 = true + } + if _source0.Is_Size() { + disjunctiveMatch0 = true + } + if disjunctiveMatch0 { + var _in2 _dafny.Sequence = (input).Drop(1) + _ = _in2 + var _in3 _dafny.Sequence = _dafny.Companion_Sequence_.Concatenate(stack, _dafny.SeqOf((input).Select(0).(Token))) + _ = _in3 + input = _in2 + stack = _in3 + goto TAIL_CALL_START + } + } + { + if _source0.Is_Comma() { + if (_dafny.IntOfUint32((stack).Cardinality())).Sign() == 1 { + if Companion_Default___.IsFunction((stack).Select(((_dafny.IntOfUint32((stack).Cardinality())).Minus(_dafny.One)).Uint32()).(Token)) { + var _in4 _dafny.Sequence = (input).Drop(1) + _ = _in4 + var _in5 _dafny.Sequence = stack + _ = _in5 + input = _in4 + stack = _in5 + goto TAIL_CALL_START + } else { + return _dafny.Companion_Sequence_.Concatenate(_dafny.SeqOf((stack).Select(((_dafny.IntOfUint32((stack).Cardinality())).Minus(_dafny.One)).Uint32()).(Token)), Companion_Default___.ConvertToRpn__inner((input).Drop(1), (stack).Take(((_dafny.IntOfUint32((stack).Cardinality())).Minus(_dafny.One)).Uint32()))) + } + } else { + var _in6 _dafny.Sequence = (input).Drop(1) + _ = _in6 + var _in7 _dafny.Sequence = stack + _ = _in7 + input = _in6 + stack = _in7 + goto TAIL_CALL_START + } + } + } + { + if _source0.Is_Close() { + if (_dafny.IntOfUint32((stack).Cardinality())).Sign() == 0 { + var _in8 _dafny.Sequence = (input).Drop(1) + _ = _in8 + var _in9 _dafny.Sequence = stack + _ = _in9 + input = _in8 + stack = _in9 + goto TAIL_CALL_START + } else if ((stack).Select(((_dafny.IntOfUint32((stack).Cardinality())).Minus(_dafny.One)).Uint32()).(Token)).Equals(Companion_Token_.Create_Open_()) { + var _in10 _dafny.Sequence = (input).Drop(1) + _ = _in10 + var _in11 _dafny.Sequence = (stack).Take(((_dafny.IntOfUint32((stack).Cardinality())).Minus(_dafny.One)).Uint32()) + _ = _in11 + input = _in10 + stack = _in11 + goto TAIL_CALL_START + } else { + return _dafny.Companion_Sequence_.Concatenate(_dafny.SeqOf((stack).Select(((_dafny.IntOfUint32((stack).Cardinality())).Minus(_dafny.One)).Uint32()).(Token)), Companion_Default___.ConvertToRpn__inner((input).Drop(1), (stack).Take(((_dafny.IntOfUint32((stack).Cardinality())).Minus(_dafny.One)).Uint32()))) + } + } + } + { + var disjunctiveMatch1 bool = false + _ = disjunctiveMatch1 + if _source0.Is_Eq() { + disjunctiveMatch1 = true + } + if _source0.Is_Ne() { + disjunctiveMatch1 = true + } + if _source0.Is_Lt() { + disjunctiveMatch1 = true + } + if _source0.Is_Gt() { + disjunctiveMatch1 = true + } + if _source0.Is_Le() { + disjunctiveMatch1 = true + } + if _source0.Is_Ge() { + disjunctiveMatch1 = true + } + if _source0.Is_And() { + disjunctiveMatch1 = true + } + if _source0.Is_Or() { + disjunctiveMatch1 = true + } + if disjunctiveMatch1 { + if (_dafny.IntOfUint32((stack).Cardinality())).Sign() == 0 { + var _in12 _dafny.Sequence = (input).Drop(1) + _ = _in12 + var _in13 _dafny.Sequence = _dafny.Companion_Sequence_.Concatenate(stack, _dafny.SeqOf((input).Select(0).(Token))) + _ = _in13 + input = _in12 + stack = _in13 + goto TAIL_CALL_START + } else if (Companion_Default___.Precedence((stack).Select(((_dafny.IntOfUint32((stack).Cardinality())).Minus(_dafny.One)).Uint32()).(Token))).Cmp(Companion_Default___.Precedence((input).Select(0).(Token))) >= 0 { + return _dafny.Companion_Sequence_.Concatenate(_dafny.SeqOf((stack).Select(((_dafny.IntOfUint32((stack).Cardinality())).Minus(_dafny.One)).Uint32()).(Token)), Companion_Default___.ConvertToRpn__inner(input, (stack).Take(((_dafny.IntOfUint32((stack).Cardinality())).Minus(_dafny.One)).Uint32()))) + } else { + var _in14 _dafny.Sequence = (input).Drop(1) + _ = _in14 + var _in15 _dafny.Sequence = _dafny.Companion_Sequence_.Concatenate(stack, _dafny.SeqOf((input).Select(0).(Token))) + _ = _in15 + input = _in14 + stack = _in15 + goto TAIL_CALL_START + } + } + } + { + var _in16 _dafny.Sequence = (input).Drop(1) + _ = _in16 + var _in17 _dafny.Sequence = stack + _ = _in17 + input = _in16 + stack = _in17 + goto TAIL_CALL_START + } + } +} +func (_static *CompanionStruct_Default___) GetSize(value m_ComAmazonawsDynamodbTypes.AttributeValue) _dafny.Int { + var _source0 m_ComAmazonawsDynamodbTypes.AttributeValue = value + _ = _source0 + { + if _source0.Is_S() { + var _0_s _dafny.Sequence = _source0.Get_().(m_ComAmazonawsDynamodbTypes.AttributeValue_S).S + _ = _0_s + return _dafny.IntOfUint32((_0_s).Cardinality()) + } + } + { + if _source0.Is_N() { + var _1_n _dafny.Sequence = _source0.Get_().(m_ComAmazonawsDynamodbTypes.AttributeValue_N).N + _ = _1_n + return _dafny.IntOfUint32((_1_n).Cardinality()) + } + } + { + if _source0.Is_B() { + var _2_n _dafny.Sequence = _source0.Get_().(m_ComAmazonawsDynamodbTypes.AttributeValue_B).B + _ = _2_n + return _dafny.IntOfUint32((_2_n).Cardinality()) + } + } + { + if _source0.Is_SS() { + var _3_n _dafny.Sequence = _source0.Get_().(m_ComAmazonawsDynamodbTypes.AttributeValue_SS).SS + _ = _3_n + return _dafny.IntOfUint32((_3_n).Cardinality()) + } + } + { + if _source0.Is_NS() { + var _4_n _dafny.Sequence = _source0.Get_().(m_ComAmazonawsDynamodbTypes.AttributeValue_NS).NS + _ = _4_n + return _dafny.IntOfUint32((_4_n).Cardinality()) + } + } + { + if _source0.Is_BS() { + var _5_n _dafny.Sequence = _source0.Get_().(m_ComAmazonawsDynamodbTypes.AttributeValue_BS).BS + _ = _5_n + return _dafny.IntOfUint32((_5_n).Cardinality()) + } + } + { + if _source0.Is_M() { + var _6_n _dafny.Map = _source0.Get_().(m_ComAmazonawsDynamodbTypes.AttributeValue_M).M + _ = _6_n + return (_6_n).Cardinality() + } + } + { + if _source0.Is_L() { + var _7_n _dafny.Sequence = _source0.Get_().(m_ComAmazonawsDynamodbTypes.AttributeValue_L).L + _ = _7_n + return _dafny.IntOfUint32((_7_n).Cardinality()) + } + } + { + if _source0.Is_NULL() { + var _8_n bool = _source0.Get_().(m_ComAmazonawsDynamodbTypes.AttributeValue_NULL).NULL + _ = _8_n + return _dafny.One + } + } + { + var _9_n bool = _source0.Get_().(m_ComAmazonawsDynamodbTypes.AttributeValue_BOOL).BOOL + _ = _9_n + return _dafny.One + } +} +func (_static *CompanionStruct_Default___) GetStr(s StackValue) m_ComAmazonawsDynamodbTypes.AttributeValue { + var _source0 StackValue = s + _ = _source0 + { + if _source0.Is_Bool() { + var _0_b bool = _source0.Get_().(StackValue_Bool).B + _ = _0_b + return m_ComAmazonawsDynamodbTypes.Companion_AttributeValue_.Create_NULL_(true) + } + } + { + if _source0.Is_Str() { + var _1_s m_ComAmazonawsDynamodbTypes.AttributeValue = _source0.Get_().(StackValue_Str).S + _ = _1_s + return _1_s + } + } + { + return m_ComAmazonawsDynamodbTypes.Companion_AttributeValue_.Create_NULL_(true) + } +} +func (_static *CompanionStruct_Default___) AsStr(s _dafny.Sequence) StackValue { + return Companion_StackValue_.Create_Str_(m_ComAmazonawsDynamodbTypes.Companion_AttributeValue_.Create_S_(s)) +} +func (_static *CompanionStruct_Default___) StackValueFromValue(s _dafny.Sequence, values _dafny.Map) StackValue { + if (values).Contains(s) { + return Companion_StackValue_.Create_Str_((values).Get(s).(m_ComAmazonawsDynamodbTypes.AttributeValue)) + } else { + return Companion_StackValue_.Create_DoesNotExist_() + } +} +func (_static *CompanionStruct_Default___) StackValueFromItem(s _dafny.Sequence, item _dafny.Map) StackValue { + if (item).Contains(s) { + return Companion_StackValue_.Create_Str_((item).Get(s).(m_ComAmazonawsDynamodbTypes.AttributeValue)) + } else { + return Companion_StackValue_.Create_DoesNotExist_() + } +} +func (_static *CompanionStruct_Default___) StackValueFromAttr(t Token, item _dafny.Map, names m_Wrappers.Option) StackValue { + if ((names).Is_Some()) && (((names).Dtor_value().(_dafny.Map)).Contains((t).Dtor_s())) { + return Companion_Default___.StackValueFromItem(((names).Dtor_value().(_dafny.Map)).Get((t).Dtor_s()).(_dafny.Sequence), item) + } else { + var _0_attr m_Wrappers.Option = m_TermLoc.Companion_Default___.TermToAttr((t).Dtor_loc(), item, names) + _ = _0_attr + if (_0_attr).Is_Some() { + return Companion_StackValue_.Create_Str_((_0_attr).Dtor_value().(m_ComAmazonawsDynamodbTypes.AttributeValue)) + } else { + return Companion_StackValue_.Create_DoesNotExist_() + } + } +} +func (_static *CompanionStruct_Default___) GetParsedExpr(input _dafny.Sequence) m_Wrappers.Result { + var _0_seq1 _dafny.Sequence = Companion_Default___.ParseExpr(input) + _ = _0_seq1 + var _1_seq2 _dafny.Sequence = Companion_Default___.ConvertToPrefix(_0_seq1) + _ = _1_seq2 + return m_Wrappers.Companion_Result_.Create_Success_(Companion_Default___.ConvertToRpn(_1_seq2)) +} +func (_static *CompanionStruct_Default___) EvalExpr(input _dafny.Sequence, item _dafny.Map, names m_Wrappers.Option, values _dafny.Map) m_Wrappers.Result { + return Companion_Default___.InnerEvalExpr(input, _dafny.SeqOf(), item, names, values) +} +func (_static *CompanionStruct_Default___) StringsFollowing(input _dafny.Sequence) _dafny.Int { + var _0___accumulator _dafny.Int = _dafny.Zero + _ = _0___accumulator + goto TAIL_CALL_START +TAIL_CALL_START: + if (_dafny.IntOfUint32((input).Cardinality())).Sign() == 0 { + return (_dafny.Zero).Plus(_0___accumulator) + } else if !(((input).Select(((_dafny.IntOfUint32((input).Cardinality())).Minus(_dafny.One)).Uint32()).(StackValue)).Is_Str()) { + return (_dafny.Zero).Plus(_0___accumulator) + } else { + _0___accumulator = (_0___accumulator).Plus(_dafny.One) + var _in0 _dafny.Sequence = (input).Take(((_dafny.IntOfUint32((input).Cardinality())).Minus(_dafny.One)).Uint32()) + _ = _in0 + input = _in0 + goto TAIL_CALL_START + } +} +func (_static *CompanionStruct_Default___) Seq__contains(haystack _dafny.Sequence, needle _dafny.Sequence) bool { + goto TAIL_CALL_START +TAIL_CALL_START: + if (_dafny.IntOfUint32((needle).Cardinality())).Sign() == 0 { + return true + } else if (_dafny.IntOfUint32((haystack).Cardinality())).Sign() == 0 { + return false + } else if (_dafny.IntOfUint32((haystack).Cardinality())).Cmp(_dafny.IntOfUint32((needle).Cardinality())) < 0 { + return false + } else if (_dafny.AreEqual((needle).Select(0).(interface{}), (haystack).Select(0).(interface{}))) && (_dafny.Companion_Sequence_.IsPrefixOf((needle).Drop(1), (haystack).Drop(1))) { + return true + } else { + var _in0 _dafny.Sequence = (haystack).Drop(1) + _ = _in0 + var _in1 _dafny.Sequence = needle + _ = _in1 + haystack = _in0 + needle = _in1 + goto TAIL_CALL_START + } +} +func (_static *CompanionStruct_Default___) Does__contain(haystack m_ComAmazonawsDynamodbTypes.AttributeValue, needle m_ComAmazonawsDynamodbTypes.AttributeValue) bool { + var _source0 m_ComAmazonawsDynamodbTypes.AttributeValue = haystack + _ = _source0 + { + if _source0.Is_S() { + var _0_s _dafny.Sequence = _source0.Get_().(m_ComAmazonawsDynamodbTypes.AttributeValue_S).S + _ = _0_s + if (needle).Is_S() { + return Companion_Default___.Seq__contains((haystack).Dtor_S(), (needle).Dtor_S()) + } else { + return false + } + } + } + { + if _source0.Is_N() { + var _1_n _dafny.Sequence = _source0.Get_().(m_ComAmazonawsDynamodbTypes.AttributeValue_N).N + _ = _1_n + if (needle).Is_N() { + return Companion_Default___.Seq__contains((haystack).Dtor_N(), (needle).Dtor_N()) + } else { + return false + } + } + } + { + if _source0.Is_B() { + var _2_n _dafny.Sequence = _source0.Get_().(m_ComAmazonawsDynamodbTypes.AttributeValue_B).B + _ = _2_n + if (needle).Is_B() { + return Companion_Default___.Seq__contains((haystack).Dtor_B(), (needle).Dtor_B()) + } else { + return false + } + } + } + { + if _source0.Is_SS() { + var _3_s _dafny.Sequence = _source0.Get_().(m_ComAmazonawsDynamodbTypes.AttributeValue_SS).SS + _ = _3_s + if (needle).Is_S() { + return _dafny.Companion_Sequence_.Contains((haystack).Dtor_SS(), (needle).Dtor_S()) + } else { + return false + } + } + } + { + if _source0.Is_NS() { + var _4_s _dafny.Sequence = _source0.Get_().(m_ComAmazonawsDynamodbTypes.AttributeValue_NS).NS + _ = _4_s + if (needle).Is_N() { + return _dafny.Companion_Sequence_.Contains((haystack).Dtor_NS(), (needle).Dtor_N()) + } else { + return false + } + } + } + { + if _source0.Is_BS() { + var _5_s _dafny.Sequence = _source0.Get_().(m_ComAmazonawsDynamodbTypes.AttributeValue_BS).BS + _ = _5_s + if (needle).Is_B() { + return _dafny.Companion_Sequence_.Contains((haystack).Dtor_BS(), (needle).Dtor_B()) + } else { + return false + } + } + } + { + if _source0.Is_L() { + var _6_list _dafny.Sequence = _source0.Get_().(m_ComAmazonawsDynamodbTypes.AttributeValue_L).L + _ = _6_list + return _dafny.Companion_Sequence_.Contains(_6_list, needle) + } + } + { + return false + } +} +func (_static *CompanionStruct_Default___) Begins__with(haystack m_ComAmazonawsDynamodbTypes.AttributeValue, needle m_ComAmazonawsDynamodbTypes.AttributeValue) bool { + var _source0 m_ComAmazonawsDynamodbTypes.AttributeValue = haystack + _ = _source0 + { + if _source0.Is_S() { + var _0_s _dafny.Sequence = _source0.Get_().(m_ComAmazonawsDynamodbTypes.AttributeValue_S).S + _ = _0_s + if (needle).Is_S() { + return _dafny.Companion_Sequence_.IsPrefixOf((needle).Dtor_S(), (haystack).Dtor_S()) + } else { + return false + } + } + } + { + if _source0.Is_N() { + var _1_n _dafny.Sequence = _source0.Get_().(m_ComAmazonawsDynamodbTypes.AttributeValue_N).N + _ = _1_n + if (needle).Is_N() { + return _dafny.Companion_Sequence_.IsPrefixOf((needle).Dtor_N(), (haystack).Dtor_N()) + } else { + return false + } + } + } + { + if _source0.Is_B() { + var _2_n _dafny.Sequence = _source0.Get_().(m_ComAmazonawsDynamodbTypes.AttributeValue_B).B + _ = _2_n + if (needle).Is_B() { + return _dafny.Companion_Sequence_.IsPrefixOf((needle).Dtor_B(), (haystack).Dtor_B()) + } else { + return false + } + } + } + { + if _source0.Is_L() { + var _3_list _dafny.Sequence = _source0.Get_().(m_ComAmazonawsDynamodbTypes.AttributeValue_L).L + _ = _3_list + if (_dafny.IntOfUint32((_3_list).Cardinality())).Sign() == 0 { + return false + } else if ((_3_list).Select(0).(m_ComAmazonawsDynamodbTypes.AttributeValue)).Equals(needle) { + return true + } else if (needle).Is_L() { + return _dafny.Companion_Sequence_.IsPrefixOf((needle).Dtor_L(), _3_list) + } else { + return false + } + } + } + { + return false + } +} +func (_static *CompanionStruct_Default___) Is__between(middle m_ComAmazonawsDynamodbTypes.AttributeValue, left m_ComAmazonawsDynamodbTypes.AttributeValue, right m_ComAmazonawsDynamodbTypes.AttributeValue) m_Wrappers.Result { + var _0_valueOrError0 m_Wrappers.Result = Companion_Default___.AttributeLE(left, middle) + _ = _0_valueOrError0 + if (_0_valueOrError0).IsFailure() { + return (_0_valueOrError0).PropagateFailure() + } else { + var _1_leftRet bool = (_0_valueOrError0).Extract().(bool) + _ = _1_leftRet + var _2_valueOrError1 m_Wrappers.Result = Companion_Default___.AttributeLE(middle, right) + _ = _2_valueOrError1 + if (_2_valueOrError1).IsFailure() { + return (_2_valueOrError1).PropagateFailure() + } else { + var _3_rightRet bool = (_2_valueOrError1).Extract().(bool) + _ = _3_rightRet + return m_Wrappers.Companion_Result_.Create_Success_((_1_leftRet) && (_3_rightRet)) + } + } +} +func (_static *CompanionStruct_Default___) Is__in(target m_ComAmazonawsDynamodbTypes.AttributeValue, list _dafny.Sequence) bool { + goto TAIL_CALL_START +TAIL_CALL_START: + if (_dafny.IntOfUint32((list).Cardinality())).Sign() == 0 { + return false + } else if (Companion_Default___.GetStr((list).Select(0).(StackValue))).Equals(target) { + return true + } else { + var _in0 m_ComAmazonawsDynamodbTypes.AttributeValue = target + _ = _in0 + var _in1 _dafny.Sequence = (list).Drop(1) + _ = _in1 + target = _in0 + list = _in1 + goto TAIL_CALL_START + } +} +func (_static *CompanionStruct_Default___) AttrToStr(attr m_ComAmazonawsDynamodbTypes.AttributeValue) _dafny.Sequence { + var _source0 m_ComAmazonawsDynamodbTypes.AttributeValue = attr + _ = _source0 + { + if _source0.Is_S() { + var _0_s _dafny.Sequence = _source0.Get_().(m_ComAmazonawsDynamodbTypes.AttributeValue_S).S + _ = _0_s + return _0_s + } + } + { + if _source0.Is_N() { + var _1_n _dafny.Sequence = _source0.Get_().(m_ComAmazonawsDynamodbTypes.AttributeValue_N).N + _ = _1_n + return _1_n + } + } + { + return _dafny.SeqOfString("") + } +} +func (_static *CompanionStruct_Default___) IsAttrType(attr StackValue, typeStr StackValue) bool { + return _dafny.Companion_Sequence_.Equal(m_DynamoDbEncryptionUtil.Companion_Default___.AttrTypeToStr(Companion_Default___.GetStr(attr)), Companion_Default___.AttrToStr(Companion_Default___.GetStr(typeStr))) +} +func (_static *CompanionStruct_Default___) Apply__function(input Token, stack _dafny.Sequence, num__args _dafny.Int) m_Wrappers.Result { + var _source0 Token = input + _ = _source0 + { + if _source0.Is_Between() { + if (_dafny.IntOfUint32((stack).Cardinality())).Cmp(_dafny.IntOfInt64(3)) < 0 { + return m_Wrappers.Companion_Result_.Create_Failure_(m_DynamoDbEncryptionUtil.Companion_Default___.E(_dafny.SeqOfString("No Stack for Between"))) + } else if ((((stack).Select(((_dafny.IntOfUint32((stack).Cardinality())).Minus(_dafny.One)).Uint32()).(StackValue)).Is_Str()) && (((stack).Select(((_dafny.IntOfUint32((stack).Cardinality())).Minus(_dafny.IntOfInt64(2))).Uint32()).(StackValue)).Is_Str())) && (((stack).Select(((_dafny.IntOfUint32((stack).Cardinality())).Minus(_dafny.IntOfInt64(3))).Uint32()).(StackValue)).Is_Str()) { + var _0_valueOrError0 m_Wrappers.Result = Companion_Default___.Is__between(((stack).Select(((_dafny.IntOfUint32((stack).Cardinality())).Minus(_dafny.IntOfInt64(3))).Uint32()).(StackValue)).Dtor_s(), ((stack).Select(((_dafny.IntOfUint32((stack).Cardinality())).Minus(_dafny.IntOfInt64(2))).Uint32()).(StackValue)).Dtor_s(), ((stack).Select(((_dafny.IntOfUint32((stack).Cardinality())).Minus(_dafny.One)).Uint32()).(StackValue)).Dtor_s()) + _ = _0_valueOrError0 + if (_0_valueOrError0).IsFailure() { + return (_0_valueOrError0).PropagateFailure() + } else { + var _1_ret bool = (_0_valueOrError0).Extract().(bool) + _ = _1_ret + return m_Wrappers.Companion_Result_.Create_Success_(Companion_StackValue_.Create_Bool_(_1_ret)) + } + } else { + return m_Wrappers.Companion_Result_.Create_Failure_(m_DynamoDbEncryptionUtil.Companion_Default___.E(_dafny.SeqOfString("Wrong Types for contains"))) + } + } + } + { + if _source0.Is_In() { + var _2_num _dafny.Int = Companion_Default___.StringsFollowing(stack) + _ = _2_num + if (_dafny.IntOfUint32((stack).Cardinality())).Cmp(_2_num) < 0 { + return m_Wrappers.Companion_Result_.Create_Failure_(m_DynamoDbEncryptionUtil.Companion_Default___.E(_dafny.SeqOfString("Tautology False"))) + } else if (_2_num).Sign() == 0 { + return m_Wrappers.Companion_Result_.Create_Failure_(m_DynamoDbEncryptionUtil.Companion_Default___.E(_dafny.SeqOfString("In has no args"))) + } else { + return m_Wrappers.Companion_Result_.Create_Success_(Companion_StackValue_.Create_Bool_(Companion_Default___.Is__in(Companion_Default___.GetStr((stack).Select(((_dafny.IntOfUint32((stack).Cardinality())).Minus(_2_num)).Uint32()).(StackValue)), (stack).Drop((((_dafny.IntOfUint32((stack).Cardinality())).Minus(_2_num)).Plus(_dafny.One)).Uint32())))) + } + } + } + { + if _source0.Is_AttributeExists() { + if (_dafny.IntOfUint32((stack).Cardinality())).Cmp(_dafny.One) < 0 { + return m_Wrappers.Companion_Result_.Create_Failure_(m_DynamoDbEncryptionUtil.Companion_Default___.E(_dafny.SeqOfString("No Stack for AttributeExists"))) + } else { + return m_Wrappers.Companion_Result_.Create_Success_(Companion_StackValue_.Create_Bool_(!(((stack).Select(((_dafny.IntOfUint32((stack).Cardinality())).Minus(_dafny.One)).Uint32()).(StackValue)).Is_DoesNotExist()))) + } + } + } + { + if _source0.Is_AttributeNotExists() { + if (_dafny.IntOfUint32((stack).Cardinality())).Cmp(_dafny.One) < 0 { + return m_Wrappers.Companion_Result_.Create_Failure_(m_DynamoDbEncryptionUtil.Companion_Default___.E(_dafny.SeqOfString("No Stack for AttributeExists"))) + } else { + return m_Wrappers.Companion_Result_.Create_Success_(Companion_StackValue_.Create_Bool_(((stack).Select(((_dafny.IntOfUint32((stack).Cardinality())).Minus(_dafny.One)).Uint32()).(StackValue)).Is_DoesNotExist())) + } + } + } + { + if _source0.Is_AttributeType() { + if (_dafny.IntOfUint32((stack).Cardinality())).Cmp(_dafny.IntOfInt64(2)) < 0 { + return m_Wrappers.Companion_Result_.Create_Failure_(m_DynamoDbEncryptionUtil.Companion_Default___.E(_dafny.SeqOfString("No Stack for AttributeType"))) + } else { + return m_Wrappers.Companion_Result_.Create_Success_(Companion_StackValue_.Create_Bool_(Companion_Default___.IsAttrType((stack).Select(((_dafny.IntOfUint32((stack).Cardinality())).Minus(_dafny.IntOfInt64(2))).Uint32()).(StackValue), (stack).Select(((_dafny.IntOfUint32((stack).Cardinality())).Minus(_dafny.One)).Uint32()).(StackValue)))) + } + } + } + { + if _source0.Is_BeginsWith() { + if (_dafny.IntOfUint32((stack).Cardinality())).Cmp(_dafny.IntOfInt64(2)) < 0 { + return m_Wrappers.Companion_Result_.Create_Failure_(m_DynamoDbEncryptionUtil.Companion_Default___.E(_dafny.SeqOfString("No Stack for BeginsWith"))) + } else if (((stack).Select(((_dafny.IntOfUint32((stack).Cardinality())).Minus(_dafny.One)).Uint32()).(StackValue)).Is_Str()) && (((stack).Select(((_dafny.IntOfUint32((stack).Cardinality())).Minus(_dafny.IntOfInt64(2))).Uint32()).(StackValue)).Is_Str()) { + return m_Wrappers.Companion_Result_.Create_Success_(Companion_StackValue_.Create_Bool_(Companion_Default___.Begins__with(((stack).Select(((_dafny.IntOfUint32((stack).Cardinality())).Minus(_dafny.IntOfInt64(2))).Uint32()).(StackValue)).Dtor_s(), ((stack).Select(((_dafny.IntOfUint32((stack).Cardinality())).Minus(_dafny.One)).Uint32()).(StackValue)).Dtor_s()))) + } else { + return m_Wrappers.Companion_Result_.Create_Failure_(m_DynamoDbEncryptionUtil.Companion_Default___.E(_dafny.SeqOfString("Wrong Types for BeginsWith"))) + } + } + } + { + if _source0.Is_Contains() { + if (_dafny.IntOfUint32((stack).Cardinality())).Cmp(_dafny.IntOfInt64(2)) < 0 { + return m_Wrappers.Companion_Result_.Create_Failure_(m_DynamoDbEncryptionUtil.Companion_Default___.E(_dafny.SeqOfString("No Stack for contains"))) + } else if (((stack).Select(((_dafny.IntOfUint32((stack).Cardinality())).Minus(_dafny.One)).Uint32()).(StackValue)).Is_Str()) && (((stack).Select(((_dafny.IntOfUint32((stack).Cardinality())).Minus(_dafny.IntOfInt64(2))).Uint32()).(StackValue)).Is_Str()) { + return m_Wrappers.Companion_Result_.Create_Success_(Companion_StackValue_.Create_Bool_(Companion_Default___.Does__contain(((stack).Select(((_dafny.IntOfUint32((stack).Cardinality())).Minus(_dafny.IntOfInt64(2))).Uint32()).(StackValue)).Dtor_s(), ((stack).Select(((_dafny.IntOfUint32((stack).Cardinality())).Minus(_dafny.One)).Uint32()).(StackValue)).Dtor_s()))) + } else { + return m_Wrappers.Companion_Result_.Create_Failure_(m_DynamoDbEncryptionUtil.Companion_Default___.E(_dafny.SeqOfString("Wrong Types for contains"))) + } + } + } + { + if _source0.Is_Size() { + if (_dafny.IntOfUint32((stack).Cardinality())).Cmp(_dafny.One) < 0 { + return m_Wrappers.Companion_Result_.Create_Failure_(m_DynamoDbEncryptionUtil.Companion_Default___.E(_dafny.SeqOfString("No Stack for Size"))) + } else if !(((stack).Select(((_dafny.IntOfUint32((stack).Cardinality())).Minus(_dafny.One)).Uint32()).(StackValue)).Is_Str()) { + return m_Wrappers.Companion_Result_.Create_Failure_(m_DynamoDbEncryptionUtil.Companion_Default___.E(_dafny.SeqOfString("Wrong Types for Size"))) + } else { + var _3_n _dafny.Int = Companion_Default___.GetSize(((stack).Select(((_dafny.IntOfUint32((stack).Cardinality())).Minus(_dafny.One)).Uint32()).(StackValue)).Dtor_s()) + _ = _3_n + return m_Wrappers.Companion_Result_.Create_Success_(Companion_StackValue_.Create_Str_(m_ComAmazonawsDynamodbTypes.Companion_AttributeValue_.Create_N_(m_StandardLibrary_String.Companion_Default___.Base10Int2String(_3_n)))) + } + } + } + { + return m_Wrappers.Companion_Result_.Create_Success_(Companion_StackValue_.Create_Bool_(true)) + } +} +func (_static *CompanionStruct_Default___) Apply__unary(input Token, stack StackValue) m_Wrappers.Result { + if (stack).Is_Bool() { + return m_Wrappers.Companion_Result_.Create_Success_(Companion_StackValue_.Create_Bool_(!((stack).Dtor_b()))) + } else { + return m_Wrappers.Companion_Result_.Create_Failure_(m_DynamoDbEncryptionUtil.Companion_Default___.E(_dafny.SeqOfString("wrong type for Not"))) + } +} +func (_static *CompanionStruct_Default___) Apply__binary__bool(input Token, x bool, y bool) m_Wrappers.Result { + var _source0 Token = input + _ = _source0 + { + if _source0.Is_And() { + return m_Wrappers.Companion_Result_.Create_Success_((x) && (y)) + } + } + { + if _source0.Is_Or() { + return m_Wrappers.Companion_Result_.Create_Success_((x) || (y)) + } + } + { + return m_Wrappers.Companion_Result_.Create_Failure_(m_DynamoDbEncryptionUtil.Companion_Default___.E(_dafny.SeqOfString("invalid op in apply_binary_bool"))) + } +} +func (_static *CompanionStruct_Default___) IsHighSurrogate(ch _dafny.Char) bool { + return ((_dafny.Char((_dafny.IntOfInt64(55296)).Int32())) <= (ch)) && ((ch) <= (_dafny.Char((_dafny.IntOfInt64(56319)).Int32()))) +} +func (_static *CompanionStruct_Default___) UnicodeLess(a _dafny.Sequence, b _dafny.Sequence) bool { + goto TAIL_CALL_START +TAIL_CALL_START: + if ((_dafny.IntOfUint32((a).Cardinality())).Sign() == 0) && ((_dafny.IntOfUint32((b).Cardinality())).Sign() == 0) { + return false + } else if (_dafny.IntOfUint32((a).Cardinality())).Sign() == 0 { + return true + } else if (_dafny.IntOfUint32((b).Cardinality())).Sign() == 0 { + return false + } else if ((a).Select(0).(_dafny.Char)) == ((b).Select(0).(_dafny.Char)) { + var _in0 _dafny.Sequence = (a).Drop(1) + _ = _in0 + var _in1 _dafny.Sequence = (b).Drop(1) + _ = _in1 + a = _in0 + b = _in1 + goto TAIL_CALL_START + } else { + var _0_aIsHighSurrogate bool = Companion_Default___.IsHighSurrogate((a).Select(0).(_dafny.Char)) + _ = _0_aIsHighSurrogate + var _1_bIsHighSurrogate bool = Companion_Default___.IsHighSurrogate((b).Select(0).(_dafny.Char)) + _ = _1_bIsHighSurrogate + if (_0_aIsHighSurrogate) == (_1_bIsHighSurrogate) { + return ((a).Select(0).(_dafny.Char)) < ((b).Select(0).(_dafny.Char)) + } else { + return _1_bIsHighSurrogate + } + } +} +func (_static *CompanionStruct_Default___) UnicodeLessOrEqual(a _dafny.Sequence, b _dafny.Sequence) bool { + return !(Companion_Default___.UnicodeLess(b, a)) +} +func (_static *CompanionStruct_Default___) CompareFloat(x _dafny.Sequence, y _dafny.Sequence) m_Wrappers.Result { + var _0_valueOrError0 m_Wrappers.Result = (m_DynamoDbNormalizeNumber.Companion_Default___.NormalizeNumber(x)).MapFailure(func(coer108 func(_dafny.Sequence) m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Error) func(interface{}) interface{} { + return func(arg133 interface{}) interface{} { + return coer108(arg133.(_dafny.Sequence)) + } + }(func(_1_e _dafny.Sequence) m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Error { + return m_DynamoDbEncryptionUtil.Companion_Default___.E(_1_e) + })) + _ = _0_valueOrError0 + if (_0_valueOrError0).IsFailure() { + return (_0_valueOrError0).PropagateFailure() + } else { + var _2_newX _dafny.Sequence = (_0_valueOrError0).Extract().(_dafny.Sequence) + _ = _2_newX + var _3_valueOrError1 m_Wrappers.Result = (m_DynamoDbNormalizeNumber.Companion_Default___.NormalizeNumber(y)).MapFailure(func(coer109 func(_dafny.Sequence) m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Error) func(interface{}) interface{} { + return func(arg134 interface{}) interface{} { + return coer109(arg134.(_dafny.Sequence)) + } + }(func(_4_e _dafny.Sequence) m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Error { + return m_DynamoDbEncryptionUtil.Companion_Default___.E(_4_e) + })) + _ = _3_valueOrError1 + if (_3_valueOrError1).IsFailure() { + return (_3_valueOrError1).PropagateFailure() + } else { + var _5_newY _dafny.Sequence = (_3_valueOrError1).Extract().(_dafny.Sequence) + _ = _5_newY + return m_Wrappers.Companion_Result_.Create_Success_(m_FloatCompare.Companion_Default___.CompareFloat(_2_newX, _5_newY)) + } + } +} +func (_static *CompanionStruct_Default___) AttributeEQ(a m_ComAmazonawsDynamodbTypes.AttributeValue, b m_ComAmazonawsDynamodbTypes.AttributeValue) m_Wrappers.Result { + if ((a).Is_N()) && ((b).Is_N()) { + var _0_valueOrError0 m_Wrappers.Result = Companion_Default___.CompareFloat((a).Dtor_N(), (b).Dtor_N()) + _ = _0_valueOrError0 + if (_0_valueOrError0).IsFailure() { + return (_0_valueOrError0).PropagateFailure() + } else { + var _1_ret int8 = (_0_valueOrError0).Extract().(int8) + _ = _1_ret + return m_Wrappers.Companion_Result_.Create_Success_((_1_ret) == (int8(0))) + } + } else { + return m_Wrappers.Companion_Result_.Create_Success_((a).Equals(b)) + } +} +func (_static *CompanionStruct_Default___) AttributeNE(a m_ComAmazonawsDynamodbTypes.AttributeValue, b m_ComAmazonawsDynamodbTypes.AttributeValue) m_Wrappers.Result { + var _0_valueOrError0 m_Wrappers.Result = Companion_Default___.AttributeEQ(a, b) + _ = _0_valueOrError0 + if (_0_valueOrError0).IsFailure() { + return (_0_valueOrError0).PropagateFailure() + } else { + var _1_ret bool = (_0_valueOrError0).Extract().(bool) + _ = _1_ret + return m_Wrappers.Companion_Result_.Create_Success_(!(_1_ret)) + } +} +func (_static *CompanionStruct_Default___) AttributeLE(a m_ComAmazonawsDynamodbTypes.AttributeValue, b m_ComAmazonawsDynamodbTypes.AttributeValue) m_Wrappers.Result { + if ((a).Is_N()) && ((b).Is_N()) { + var _0_valueOrError0 m_Wrappers.Result = Companion_Default___.CompareFloat((a).Dtor_N(), (b).Dtor_N()) + _ = _0_valueOrError0 + if (_0_valueOrError0).IsFailure() { + return (_0_valueOrError0).PropagateFailure() + } else { + var _1_ret int8 = (_0_valueOrError0).Extract().(int8) + _ = _1_ret + return m_Wrappers.Companion_Result_.Create_Success_((_1_ret) <= (int8(0))) + } + } else if ((a).Is_S()) && ((b).Is_S()) { + return m_Wrappers.Companion_Result_.Create_Success_(Companion_Default___.UnicodeLessOrEqual((a).Dtor_S(), (b).Dtor_S())) + } else if ((a).Is_B()) && ((b).Is_B()) { + return m_Wrappers.Companion_Result_.Create_Success_(m_StandardLibrary.Companion_Default___.LexicographicLessOrEqual((a).Dtor_B(), (b).Dtor_B(), func(coer110 func(uint8, uint8) bool) func(interface{}, interface{}) bool { + return func(arg135 interface{}, arg136 interface{}) bool { + return coer110(arg135.(uint8), arg136.(uint8)) + } + }(m_DynamoDbEncryptionUtil.Companion_Default___.ByteLess))) + } else { + return m_Wrappers.Companion_Result_.Create_Success_(false) + } +} +func (_static *CompanionStruct_Default___) AttributeLT(a m_ComAmazonawsDynamodbTypes.AttributeValue, b m_ComAmazonawsDynamodbTypes.AttributeValue) m_Wrappers.Result { + var _0_valueOrError0 m_Wrappers.Result = Companion_Default___.AttributeLE(b, a) + _ = _0_valueOrError0 + if (_0_valueOrError0).IsFailure() { + return (_0_valueOrError0).PropagateFailure() + } else { + var _1_ret bool = (_0_valueOrError0).Extract().(bool) + _ = _1_ret + return m_Wrappers.Companion_Result_.Create_Success_(!(_1_ret)) + } +} +func (_static *CompanionStruct_Default___) AttributeGT(a m_ComAmazonawsDynamodbTypes.AttributeValue, b m_ComAmazonawsDynamodbTypes.AttributeValue) m_Wrappers.Result { + var _0_valueOrError0 m_Wrappers.Result = Companion_Default___.AttributeLE(a, b) + _ = _0_valueOrError0 + if (_0_valueOrError0).IsFailure() { + return (_0_valueOrError0).PropagateFailure() + } else { + var _1_ret bool = (_0_valueOrError0).Extract().(bool) + _ = _1_ret + return m_Wrappers.Companion_Result_.Create_Success_(!(_1_ret)) + } +} +func (_static *CompanionStruct_Default___) AttributeGE(a m_ComAmazonawsDynamodbTypes.AttributeValue, b m_ComAmazonawsDynamodbTypes.AttributeValue) m_Wrappers.Result { + var _0_valueOrError0 m_Wrappers.Result = Companion_Default___.AttributeLE(b, a) + _ = _0_valueOrError0 + if (_0_valueOrError0).IsFailure() { + return (_0_valueOrError0).PropagateFailure() + } else { + var _1_ret bool = (_0_valueOrError0).Extract().(bool) + _ = _1_ret + return m_Wrappers.Companion_Result_.Create_Success_(_1_ret) + } +} +func (_static *CompanionStruct_Default___) Apply__binary__comp(input Token, x m_ComAmazonawsDynamodbTypes.AttributeValue, y m_ComAmazonawsDynamodbTypes.AttributeValue) m_Wrappers.Result { + var _source0 Token = input + _ = _source0 + { + if _source0.Is_Eq() { + return Companion_Default___.AttributeEQ(x, y) + } + } + { + if _source0.Is_Ne() { + return Companion_Default___.AttributeNE(x, y) + } + } + { + if _source0.Is_Le() { + return Companion_Default___.AttributeLE(x, y) + } + } + { + if _source0.Is_Lt() { + return Companion_Default___.AttributeLT(x, y) + } + } + { + if _source0.Is_Ge() { + return Companion_Default___.AttributeGE(x, y) + } + } + { + if _source0.Is_Gt() { + return Companion_Default___.AttributeGT(x, y) + } + } + { + return m_Wrappers.Companion_Result_.Create_Failure_(m_DynamoDbEncryptionUtil.Companion_Default___.E(_dafny.SeqOfString("invalid op in apply_binary_bool"))) + } +} +func (_static *CompanionStruct_Default___) Apply__binary(input Token, x StackValue, y StackValue) m_Wrappers.Result { + if Companion_Default___.IsComp(input) { + if ((x).Is_Str()) && ((y).Is_Str()) { + var _0_valueOrError0 m_Wrappers.Result = Companion_Default___.Apply__binary__comp(input, (x).Dtor_s(), (y).Dtor_s()) + _ = _0_valueOrError0 + if (_0_valueOrError0).IsFailure() { + return (_0_valueOrError0).PropagateFailure() + } else { + var _1_val bool = (_0_valueOrError0).Extract().(bool) + _ = _1_val + return m_Wrappers.Companion_Result_.Create_Success_(Companion_StackValue_.Create_Bool_(_1_val)) + } + } else { + return m_Wrappers.Companion_Result_.Create_Failure_(m_DynamoDbEncryptionUtil.Companion_Default___.E(_dafny.SeqOfString("wrong types for comparison"))) + } + } else if ((x).Is_Bool()) && ((y).Is_Bool()) { + var _2_valueOrError1 m_Wrappers.Result = Companion_Default___.Apply__binary__bool(input, (x).Dtor_b(), (y).Dtor_b()) + _ = _2_valueOrError1 + if (_2_valueOrError1).IsFailure() { + return (_2_valueOrError1).PropagateFailure() + } else { + var _3_val bool = (_2_valueOrError1).Extract().(bool) + _ = _3_val + return m_Wrappers.Companion_Result_.Create_Success_(Companion_StackValue_.Create_Bool_(_3_val)) + } + } else { + return m_Wrappers.Companion_Result_.Create_Failure_(m_DynamoDbEncryptionUtil.Companion_Default___.E(_dafny.SeqOfString("wrong types for boolean binary"))) + } +} +func (_static *CompanionStruct_Default___) NumArgs(t Token, stack _dafny.Sequence) _dafny.Int { + var _source0 Token = t + _ = _source0 + { + if _source0.Is_Between() { + return _dafny.IntOfInt64(3) + } + } + { + if _source0.Is_In() { + return Companion_Default___.StringsFollowing(stack) + } + } + { + if _source0.Is_AttributeExists() { + return _dafny.One + } + } + { + if _source0.Is_AttributeNotExists() { + return _dafny.One + } + } + { + if _source0.Is_AttributeType() { + return _dafny.IntOfInt64(2) + } + } + { + if _source0.Is_BeginsWith() { + return _dafny.IntOfInt64(2) + } + } + { + if _source0.Is_Contains() { + return _dafny.IntOfInt64(2) + } + } + { + if _source0.Is_Size() { + return _dafny.One + } + } + { + return _dafny.Zero + } +} +func (_static *CompanionStruct_Default___) InnerEvalExpr(input _dafny.Sequence, stack _dafny.Sequence, item _dafny.Map, names m_Wrappers.Option, values _dafny.Map) m_Wrappers.Result { + goto TAIL_CALL_START +TAIL_CALL_START: + if (_dafny.IntOfUint32((input).Cardinality())).Sign() == 0 { + if ((_dafny.One).Cmp(_dafny.IntOfUint32((stack).Cardinality())) == 0) && (((stack).Select(0).(StackValue)).Is_Bool()) { + return m_Wrappers.Companion_Result_.Create_Success_(((stack).Select(0).(StackValue)).Dtor_b()) + } else { + return m_Wrappers.Companion_Result_.Create_Failure_(m_DynamoDbEncryptionUtil.Companion_Default___.E(_dafny.SeqOfString("ended with bad stack"))) + } + } else { + var _0_t Token = (input).Select(0).(Token) + _ = _0_t + if (_0_t).Is_Value() { + var _in0 _dafny.Sequence = (input).Drop(1) + _ = _in0 + var _in1 _dafny.Sequence = _dafny.Companion_Sequence_.Concatenate(stack, _dafny.SeqOf(Companion_Default___.StackValueFromValue((_0_t).Dtor_s(), values))) + _ = _in1 + var _in2 _dafny.Map = item + _ = _in2 + var _in3 m_Wrappers.Option = names + _ = _in3 + var _in4 _dafny.Map = values + _ = _in4 + input = _in0 + stack = _in1 + item = _in2 + names = _in3 + values = _in4 + goto TAIL_CALL_START + } else if (_0_t).Is_Attr() { + var _in5 _dafny.Sequence = (input).Drop(1) + _ = _in5 + var _in6 _dafny.Sequence = _dafny.Companion_Sequence_.Concatenate(stack, _dafny.SeqOf(Companion_Default___.StackValueFromAttr(_0_t, item, names))) + _ = _in6 + var _in7 _dafny.Map = item + _ = _in7 + var _in8 m_Wrappers.Option = names + _ = _in8 + var _in9 _dafny.Map = values + _ = _in9 + input = _in5 + stack = _in6 + item = _in7 + names = _in8 + values = _in9 + goto TAIL_CALL_START + } else if Companion_Default___.IsUnary(_0_t) { + if (_dafny.IntOfUint32((stack).Cardinality())).Sign() == 0 { + return m_Wrappers.Companion_Result_.Create_Failure_(m_DynamoDbEncryptionUtil.Companion_Default___.E(_dafny.SeqOfString("Empty stack for unary op"))) + } else { + var _1_valueOrError0 m_Wrappers.Result = Companion_Default___.Apply__unary(_0_t, (stack).Select(((_dafny.IntOfUint32((stack).Cardinality())).Minus(_dafny.One)).Uint32()).(StackValue)) + _ = _1_valueOrError0 + if (_1_valueOrError0).IsFailure() { + return (_1_valueOrError0).PropagateFailure() + } else { + var _2_val StackValue = (_1_valueOrError0).Extract().(StackValue) + _ = _2_val + var _in10 _dafny.Sequence = (input).Drop(1) + _ = _in10 + var _in11 _dafny.Sequence = _dafny.Companion_Sequence_.Concatenate((stack).Take(((_dafny.IntOfUint32((stack).Cardinality())).Minus(_dafny.One)).Uint32()), _dafny.SeqOf(_2_val)) + _ = _in11 + var _in12 _dafny.Map = item + _ = _in12 + var _in13 m_Wrappers.Option = names + _ = _in13 + var _in14 _dafny.Map = values + _ = _in14 + input = _in10 + stack = _in11 + item = _in12 + names = _in13 + values = _in14 + goto TAIL_CALL_START + } + } + } else if Companion_Default___.IsBinary(_0_t) { + if (_dafny.IntOfUint32((stack).Cardinality())).Cmp(_dafny.IntOfInt64(2)) < 0 { + return m_Wrappers.Companion_Result_.Create_Failure_(m_DynamoDbEncryptionUtil.Companion_Default___.E(_dafny.SeqOfString("Empty stack for binary op"))) + } else { + var _3_valueOrError1 m_Wrappers.Result = Companion_Default___.Apply__binary(_0_t, (stack).Select(((_dafny.IntOfUint32((stack).Cardinality())).Minus(_dafny.IntOfInt64(2))).Uint32()).(StackValue), (stack).Select(((_dafny.IntOfUint32((stack).Cardinality())).Minus(_dafny.One)).Uint32()).(StackValue)) + _ = _3_valueOrError1 + if (_3_valueOrError1).IsFailure() { + return (_3_valueOrError1).PropagateFailure() + } else { + var _4_val StackValue = (_3_valueOrError1).Extract().(StackValue) + _ = _4_val + var _in15 _dafny.Sequence = (input).Drop(1) + _ = _in15 + var _in16 _dafny.Sequence = _dafny.Companion_Sequence_.Concatenate((stack).Take(((_dafny.IntOfUint32((stack).Cardinality())).Minus(_dafny.IntOfInt64(2))).Uint32()), _dafny.SeqOf(_4_val)) + _ = _in16 + var _in17 _dafny.Map = item + _ = _in17 + var _in18 m_Wrappers.Option = names + _ = _in18 + var _in19 _dafny.Map = values + _ = _in19 + input = _in15 + stack = _in16 + item = _in17 + names = _in18 + values = _in19 + goto TAIL_CALL_START + } + } + } else if Companion_Default___.IsFunction(_0_t) { + var _5_num__args _dafny.Int = Companion_Default___.NumArgs(_0_t, stack) + _ = _5_num__args + if (_dafny.IntOfUint32((stack).Cardinality())).Cmp(_5_num__args) < 0 { + return m_Wrappers.Companion_Result_.Create_Failure_(m_DynamoDbEncryptionUtil.Companion_Default___.E(_dafny.SeqOfString("Empty stack for function call"))) + } else { + var _6_valueOrError2 m_Wrappers.Result = Companion_Default___.Apply__function(_0_t, stack, _5_num__args) + _ = _6_valueOrError2 + if (_6_valueOrError2).IsFailure() { + return (_6_valueOrError2).PropagateFailure() + } else { + var _7_val StackValue = (_6_valueOrError2).Extract().(StackValue) + _ = _7_val + var _in20 _dafny.Sequence = (input).Drop(1) + _ = _in20 + var _in21 _dafny.Sequence = _dafny.Companion_Sequence_.Concatenate((stack).Take(((_dafny.IntOfUint32((stack).Cardinality())).Minus(_5_num__args)).Uint32()), _dafny.SeqOf(_7_val)) + _ = _in21 + var _in22 _dafny.Map = item + _ = _in22 + var _in23 m_Wrappers.Option = names + _ = _in23 + var _in24 _dafny.Map = values + _ = _in24 + input = _in20 + stack = _in21 + item = _in22 + names = _in23 + values = _in24 + goto TAIL_CALL_START + } + } + } else { + return m_Wrappers.Companion_Result_.Create_Success_(true) + } + } +} +func (_static *CompanionStruct_Default___) FilterItems(b m_SearchableEncryptionInfo.BeaconVersion, parsed _dafny.Sequence, ItemList _dafny.Sequence, names m_Wrappers.Option, values _dafny.Map) m_Wrappers.Result { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = output + var _0_acc _dafny.Sequence + _ = _0_acc + _0_acc = _dafny.SeqOf() + var _hi0 _dafny.Int = _dafny.IntOfUint32((ItemList).Cardinality()) + _ = _hi0 + for _1_i := _dafny.Zero; _1_i.Cmp(_hi0) < 0; _1_i = _1_i.Plus(_dafny.One) { + var _2_valueOrError0 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptyMap) + _ = _2_valueOrError0 + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = (b).GeneratePlainBeacons((ItemList).Select((_1_i).Uint32()).(_dafny.Map)) + _2_valueOrError0 = _out0 + if (_2_valueOrError0).IsFailure() { + output = (_2_valueOrError0).PropagateFailure() + return output + } + var _3_newAttrs _dafny.Map + _ = _3_newAttrs + _3_newAttrs = (_2_valueOrError0).Extract().(_dafny.Map) + var _4_valueOrError1 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(false) + _ = _4_valueOrError1 + _4_valueOrError1 = Companion_Default___.EvalExpr(parsed, ((ItemList).Select((_1_i).Uint32()).(_dafny.Map)).Merge(_3_newAttrs), names, values) + if (_4_valueOrError1).IsFailure() { + output = (_4_valueOrError1).PropagateFailure() + return output + } + var _5_doesMatch bool + _ = _5_doesMatch + _5_doesMatch = (_4_valueOrError1).Extract().(bool) + if _5_doesMatch { + _0_acc = _dafny.Companion_Sequence_.Concatenate(_0_acc, _dafny.SeqOf((ItemList).Select((_1_i).Uint32()).(_dafny.Map))) + } + } + output = m_Wrappers.Companion_Result_.Create_Success_(_0_acc) + return output + return output +} +func (_static *CompanionStruct_Default___) FilterResults(b m_SearchableEncryptionInfo.BeaconVersion, ItemList _dafny.Sequence, KeyExpression m_Wrappers.Option, FilterExpression m_Wrappers.Option, names m_Wrappers.Option, values m_Wrappers.Option) m_Wrappers.Result { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = output + if ((_dafny.IntOfUint32((ItemList).Cardinality())).Sign() == 0) || (((KeyExpression).Is_None()) && ((FilterExpression).Is_None())) { + output = m_Wrappers.Companion_Result_.Create_Success_(ItemList) + return output + } else { + var _0_afterKeys _dafny.Sequence = _dafny.EmptySeq + _ = _0_afterKeys + if (KeyExpression).Is_Some() { + var _1_parsed _dafny.Sequence + _ = _1_parsed + _1_parsed = Companion_Default___.ParseExpr((KeyExpression).Dtor_value().(_dafny.Sequence)) + var _2_valueOrError0 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(Companion_ParsedContext_.Default()) + _ = _2_valueOrError0 + _2_valueOrError0 = Companion_Default___.BeaconizeParsedExpr(b, _1_parsed, _dafny.Zero, (values).UnwrapOr(_dafny.NewMapBuilder().ToMap()).(_dafny.Map), names, m_DynamoDbEncryptionUtil.Companion_MaybeKeyMap_.Create_DontUseKeys_(), _dafny.NewMapBuilder().ToMap(), _dafny.SeqOf()) + if (_2_valueOrError0).IsFailure() { + output = (_2_valueOrError0).PropagateFailure() + return output + } + var _3_expr ParsedContext + _ = _3_expr + _3_expr = (_2_valueOrError0).Extract().(ParsedContext) + var _4_expr1 _dafny.Sequence + _ = _4_expr1 + _4_expr1 = Companion_Default___.ConvertToPrefix((_3_expr).Dtor_expr()) + var _5_expr2 _dafny.Sequence + _ = _5_expr2 + _5_expr2 = Companion_Default___.ConvertToRpn(_4_expr1) + var _6_valueOrError1 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = _6_valueOrError1 + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = Companion_Default___.FilterItems(b, _5_expr2, ItemList, (_3_expr).Dtor_names(), (_3_expr).Dtor_values()) + _6_valueOrError1 = _out0 + if (_6_valueOrError1).IsFailure() { + output = (_6_valueOrError1).PropagateFailure() + return output + } + _0_afterKeys = (_6_valueOrError1).Extract().(_dafny.Sequence) + } else { + _0_afterKeys = ItemList + } + if (FilterExpression).Is_Some() { + var _7_parsed _dafny.Sequence + _ = _7_parsed + _7_parsed = Companion_Default___.ParseExpr((FilterExpression).Dtor_value().(_dafny.Sequence)) + var _8_valueOrError2 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(Companion_ParsedContext_.Default()) + _ = _8_valueOrError2 + _8_valueOrError2 = Companion_Default___.BeaconizeParsedExpr(b, _7_parsed, _dafny.Zero, (values).UnwrapOr(_dafny.NewMapBuilder().ToMap()).(_dafny.Map), names, m_DynamoDbEncryptionUtil.Companion_MaybeKeyMap_.Create_DontUseKeys_(), _dafny.NewMapBuilder().ToMap(), _dafny.SeqOf()) + if (_8_valueOrError2).IsFailure() { + output = (_8_valueOrError2).PropagateFailure() + return output + } + var _9_expr ParsedContext + _ = _9_expr + _9_expr = (_8_valueOrError2).Extract().(ParsedContext) + var _10_expr1 _dafny.Sequence + _ = _10_expr1 + _10_expr1 = Companion_Default___.ConvertToPrefix((_9_expr).Dtor_expr()) + var _11_expr2 _dafny.Sequence + _ = _11_expr2 + _11_expr2 = Companion_Default___.ConvertToRpn(_10_expr1) + var _out1 m_Wrappers.Result + _ = _out1 + _out1 = Companion_Default___.FilterItems(b, _11_expr2, _0_afterKeys, (_9_expr).Dtor_names(), (_9_expr).Dtor_values()) + output = _out1 + } else { + output = m_Wrappers.Companion_Result_.Create_Success_(_0_afterKeys) + return output + } + } + return output +} +func (_static *CompanionStruct_Default___) KeyIdFromPart(bv m_SearchableEncryptionInfo.BeaconVersion, keyIdField _dafny.Sequence, attr _dafny.Sequence, value _dafny.Sequence) m_Wrappers.Option { + if (!((bv).Dtor_beacons()).Contains(attr)) || ((((bv).Dtor_beacons()).Get(attr).(m_SearchableEncryptionInfo.Beacon)).Is_Standard()) { + return m_Wrappers.Companion_Option_.Create_None_() + } else { + var _0_parts _dafny.Sequence = ((((bv).Dtor_beacons()).Get(attr).(m_SearchableEncryptionInfo.Beacon)).Dtor_cmp()).Dtor_parts() + _ = _0_parts + var _1_theParts _dafny.Sequence = m_Seq.Companion_Default___.Filter(func(coer111 func(m_CompoundBeacon.BeaconPart) bool) func(interface{}) bool { + return func(arg137 interface{}) bool { + return coer111(arg137.(m_CompoundBeacon.BeaconPart)) + } + }((func(_2_keyIdField _dafny.Sequence) func(m_CompoundBeacon.BeaconPart) bool { + return func(_3_p m_CompoundBeacon.BeaconPart) bool { + return ((_3_p).Is_Signed()) && (_dafny.Companion_Sequence_.Equal((((_3_p).Dtor_loc()).Select(0).(m_TermLoc.Selector)).Dtor_key(), _2_keyIdField)) + } + })(keyIdField)), _0_parts) + _ = _1_theParts + if (_dafny.IntOfUint32((_1_theParts).Cardinality())).Cmp(_dafny.One) != 0 { + return m_Wrappers.Companion_Option_.Create_None_() + } else { + var _4_pieces _dafny.Sequence = m_StandardLibrary.Companion_Default___.Split(value, ((((bv).Dtor_beacons()).Get(attr).(m_SearchableEncryptionInfo.Beacon)).Dtor_cmp()).Dtor_split()) + _ = _4_pieces + var _5_piece _dafny.Sequence = m_Seq.Companion_Default___.Filter(func(coer112 func(_dafny.Sequence) bool) func(interface{}) bool { + return func(arg138 interface{}) bool { + return coer112(arg138.(_dafny.Sequence)) + } + }((func(_6_theParts _dafny.Sequence) func(_dafny.Sequence) bool { + return func(_7_s _dafny.Sequence) bool { + return _dafny.Companion_Sequence_.IsPrefixOf(((_6_theParts).Select(0).(m_CompoundBeacon.BeaconPart)).Dtor_prefix(), _7_s) + } + })(_1_theParts)), _4_pieces) + _ = _5_piece + if (_dafny.IntOfUint32((_5_piece).Cardinality())).Cmp(_dafny.One) != 0 { + return m_Wrappers.Companion_Option_.Create_None_() + } else { + var _8_p _dafny.Sequence = (_5_piece).Select(0).(_dafny.Sequence) + _ = _8_p + return m_Wrappers.Companion_Option_.Create_Some_((_8_p).Drop((_dafny.IntOfUint32((((_1_theParts).Select(0).(m_CompoundBeacon.BeaconPart)).Dtor_prefix()).Cardinality())).Uint32())) + } + } + } +} +func (_static *CompanionStruct_Default___) KeyIdFromAttr(bv m_SearchableEncryptionInfo.BeaconVersion, attr m_Wrappers.Option, value _dafny.Sequence, names m_Wrappers.Option) m_Wrappers.Option { + if (attr).Is_None() { + return m_Wrappers.Companion_Option_.Create_None_() + } else { + var _0_name _dafny.Sequence = (func() _dafny.Sequence { + if ((names).Is_Some()) && (((names).Dtor_value().(_dafny.Map)).Contains(((attr).Dtor_value().(Token)).Dtor_s())) { + return ((names).Dtor_value().(_dafny.Map)).Get(((attr).Dtor_value().(Token)).Dtor_s()).(_dafny.Sequence) + } + return ((attr).Dtor_value().(Token)).Dtor_s() + })() + _ = _0_name + var _1_keyIdField _dafny.Sequence = (((bv).Dtor_keySource()).Dtor_keyLoc()).Dtor_keyName() + _ = _1_keyIdField + if _dafny.Companion_Sequence_.Equal(_1_keyIdField, _0_name) { + return m_Wrappers.Companion_Option_.Create_Some_(value) + } else { + return Companion_Default___.KeyIdFromPart(bv, _1_keyIdField, ((attr).Dtor_value().(Token)).Dtor_s(), value) + } + } +} +func (_static *CompanionStruct_Default___) GetBeaconKeyIds2(pos _dafny.Int, bv m_SearchableEncryptionInfo.BeaconVersion, expr _dafny.Sequence, values _dafny.Map, names m_Wrappers.Option, soFar _dafny.Sequence) m_Wrappers.Result { + goto TAIL_CALL_START +TAIL_CALL_START: + if (pos).Cmp(_dafny.IntOfUint32((expr).Cardinality())) == 0 { + return m_Wrappers.Companion_Result_.Create_Success_(soFar) + } else if ((expr).Select((pos).Uint32()).(Token)).Is_Value() { + var _0_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need((values).Contains(((expr).Select((pos).Uint32()).(Token)).Dtor_s()), m_DynamoDbEncryptionUtil.Companion_Default___.E(_dafny.Companion_Sequence_.Concatenate(((expr).Select((pos).Uint32()).(Token)).Dtor_s(), _dafny.SeqOfString(" not found in ExpressionAttributeValueMap")))) + _ = _0_valueOrError0 + if (_0_valueOrError0).IsFailure() { + return (_0_valueOrError0).PropagateFailure() + } else { + var _1_oldValue m_ComAmazonawsDynamodbTypes.AttributeValue = (values).Get(((expr).Select((pos).Uint32()).(Token)).Dtor_s()).(m_ComAmazonawsDynamodbTypes.AttributeValue) + _ = _1_oldValue + if (_1_oldValue).Is_S() { + var _2_attr m_Wrappers.Option = Companion_Default___.AttrForValue(expr, pos) + _ = _2_attr + var _3_keyId m_Wrappers.Option = Companion_Default___.KeyIdFromAttr(bv, _2_attr, (_1_oldValue).Dtor_S(), names) + _ = _3_keyId + if ((_3_keyId).Is_None()) || (_dafny.Companion_Sequence_.Contains(soFar, (_3_keyId).Dtor_value().(_dafny.Sequence))) { + var _in0 _dafny.Int = (pos).Plus(_dafny.One) + _ = _in0 + var _in1 m_SearchableEncryptionInfo.BeaconVersion = bv + _ = _in1 + var _in2 _dafny.Sequence = expr + _ = _in2 + var _in3 _dafny.Map = values + _ = _in3 + var _in4 m_Wrappers.Option = names + _ = _in4 + var _in5 _dafny.Sequence = soFar + _ = _in5 + pos = _in0 + bv = _in1 + expr = _in2 + values = _in3 + names = _in4 + soFar = _in5 + goto TAIL_CALL_START + } else { + var _in6 _dafny.Int = (pos).Plus(_dafny.One) + _ = _in6 + var _in7 m_SearchableEncryptionInfo.BeaconVersion = bv + _ = _in7 + var _in8 _dafny.Sequence = expr + _ = _in8 + var _in9 _dafny.Map = values + _ = _in9 + var _in10 m_Wrappers.Option = names + _ = _in10 + var _in11 _dafny.Sequence = _dafny.Companion_Sequence_.Concatenate(soFar, _dafny.SeqOf((_3_keyId).Dtor_value().(_dafny.Sequence))) + _ = _in11 + pos = _in6 + bv = _in7 + expr = _in8 + values = _in9 + names = _in10 + soFar = _in11 + goto TAIL_CALL_START + } + } else { + var _in12 _dafny.Int = (pos).Plus(_dafny.One) + _ = _in12 + var _in13 m_SearchableEncryptionInfo.BeaconVersion = bv + _ = _in13 + var _in14 _dafny.Sequence = expr + _ = _in14 + var _in15 _dafny.Map = values + _ = _in15 + var _in16 m_Wrappers.Option = names + _ = _in16 + var _in17 _dafny.Sequence = soFar + _ = _in17 + pos = _in12 + bv = _in13 + expr = _in14 + values = _in15 + names = _in16 + soFar = _in17 + goto TAIL_CALL_START + } + } + } else { + var _in18 _dafny.Int = (pos).Plus(_dafny.One) + _ = _in18 + var _in19 m_SearchableEncryptionInfo.BeaconVersion = bv + _ = _in19 + var _in20 _dafny.Sequence = expr + _ = _in20 + var _in21 _dafny.Map = values + _ = _in21 + var _in22 m_Wrappers.Option = names + _ = _in22 + var _in23 _dafny.Sequence = soFar + _ = _in23 + pos = _in18 + bv = _in19 + expr = _in20 + values = _in21 + names = _in22 + soFar = _in23 + goto TAIL_CALL_START + } +} +func (_static *CompanionStruct_Default___) GetBeaconKeyIds(bv m_SearchableEncryptionInfo.BeaconVersion, expr m_Wrappers.Option, values _dafny.Map, names m_Wrappers.Option, soFar _dafny.Sequence) m_Wrappers.Result { + if (expr).Is_None() { + return m_Wrappers.Companion_Result_.Create_Success_(soFar) + } else { + var _0_parsed _dafny.Sequence = Companion_Default___.ParseExpr((expr).Dtor_value().(_dafny.Sequence)) + _ = _0_parsed + return Companion_Default___.GetBeaconKeyIds2(_dafny.Zero, bv, _0_parsed, values, names, soFar) + } +} +func (_static *CompanionStruct_Default___) GetBeaconKeyId(bv m_SearchableEncryptionInfo.BeaconVersion, keyExpr m_Wrappers.Option, filterExpr m_Wrappers.Option, values m_Wrappers.Option, names m_Wrappers.Option) m_Wrappers.Result { + if !((((bv).Dtor_keySource()).Dtor_keyLoc()).Is_MultiLoc()) { + return m_Wrappers.Companion_Result_.Create_Success_(m_DynamoDbEncryptionUtil.Companion_MaybeKeyId_.Create_DontUseKeyId_()) + } else if (values).Is_None() { + return m_Wrappers.Companion_Result_.Create_Success_(m_DynamoDbEncryptionUtil.Companion_MaybeKeyId_.Create_ShouldHaveKeyId_()) + } else { + var _0_valueOrError0 m_Wrappers.Result = Companion_Default___.GetBeaconKeyIds(bv, keyExpr, (values).Dtor_value().(_dafny.Map), names, _dafny.SeqOf()) + _ = _0_valueOrError0 + if (_0_valueOrError0).IsFailure() { + return (_0_valueOrError0).PropagateFailure() + } else { + var _1_soFar _dafny.Sequence = (_0_valueOrError0).Extract().(_dafny.Sequence) + _ = _1_soFar + var _2_valueOrError1 m_Wrappers.Result = Companion_Default___.GetBeaconKeyIds(bv, filterExpr, (values).Dtor_value().(_dafny.Map), names, _1_soFar) + _ = _2_valueOrError1 + if (_2_valueOrError1).IsFailure() { + return (_2_valueOrError1).PropagateFailure() + } else { + var _3_final _dafny.Sequence = (_2_valueOrError1).Extract().(_dafny.Sequence) + _ = _3_final + if (_dafny.IntOfUint32((_3_final).Cardinality())).Cmp(_dafny.One) == 0 { + return m_Wrappers.Companion_Result_.Create_Success_(m_DynamoDbEncryptionUtil.Companion_MaybeKeyId_.Create_KeyId_((_3_final).Select(0).(_dafny.Sequence))) + } else if (_dafny.IntOfUint32((_3_final).Cardinality())).Sign() == 0 { + return m_Wrappers.Companion_Result_.Create_Success_(m_DynamoDbEncryptionUtil.Companion_MaybeKeyId_.Create_ShouldHaveKeyId_()) + } else { + return m_Wrappers.Companion_Result_.Create_Failure_(m_DynamoDbEncryptionUtil.Companion_Default___.E(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.SeqOfString("Multiple values found for "), (((bv).Dtor_keySource()).Dtor_keyLoc()).Dtor_keyName()), _dafny.SeqOfString(" in query : ")), m_StandardLibrary.Companion_Default___.Join(_3_final, _dafny.SeqOfString(", "))))) + } + } + } + } +} +func (_static *CompanionStruct_Default___) Beaconize(b m_SearchableEncryptionInfo.BeaconVersion, context ExprContext, keyId m_DynamoDbEncryptionUtil.MaybeKeyId, naked bool) m_Wrappers.Result { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(Companion_ExprContext_.Default()) + _ = output + if (((context).Dtor_keyExpr()).Is_None()) && (((context).Dtor_filterExpr()).Is_None()) { + output = m_Wrappers.Companion_Result_.Create_Success_(context) + return output + } else { + var _0_keys m_DynamoDbEncryptionUtil.MaybeKeyMap + _ = _0_keys + _0_keys = m_DynamoDbEncryptionUtil.Companion_MaybeKeyMap_.Create_DontUseKeys_() + if !(naked) { + var _1_valueOrError0 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_DynamoDbEncryptionUtil.Companion_MaybeKeyMap_.Default()) + _ = _1_valueOrError0 + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = (b).GetKeyMap(keyId) + _1_valueOrError0 = _out0 + if (_1_valueOrError0).IsFailure() { + output = (_1_valueOrError0).PropagateFailure() + return output + } + _0_keys = (_1_valueOrError0).Extract().(m_DynamoDbEncryptionUtil.MaybeKeyMap) + } + var _2_values _dafny.Map + _ = _2_values + if ((context).Dtor_values()).Is_Some() { + _2_values = ((context).Dtor_values()).Dtor_value().(_dafny.Map) + } else { + _2_values = _dafny.NewMapBuilder().ToMap() + } + var _3_newValues _dafny.Map + _ = _3_newValues + _3_newValues = _dafny.NewMapBuilder().ToMap() + var _4_newKeyExpr m_Wrappers.Option + _ = _4_newKeyExpr + _4_newKeyExpr = (context).Dtor_keyExpr() + var _5_newFilterExpr m_Wrappers.Option + _ = _5_newFilterExpr + _5_newFilterExpr = (context).Dtor_filterExpr() + var _6_newNames m_Wrappers.Option + _ = _6_newNames + _6_newNames = (context).Dtor_names() + if ((context).Dtor_keyExpr()).Is_Some() { + var _7_parsed _dafny.Sequence + _ = _7_parsed + _7_parsed = Companion_Default___.ParseExpr(((context).Dtor_keyExpr()).Dtor_value().(_dafny.Sequence)) + var _8_valueOrError1 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(Companion_ParsedContext_.Default()) + _ = _8_valueOrError1 + _8_valueOrError1 = Companion_Default___.BeaconizeParsedExpr(b, _7_parsed, _dafny.Zero, _2_values, _6_newNames, _0_keys, _3_newValues, _dafny.SeqOf()) + if (_8_valueOrError1).IsFailure() { + output = (_8_valueOrError1).PropagateFailure() + return output + } + var _9_newContext ParsedContext + _ = _9_newContext + _9_newContext = (_8_valueOrError1).Extract().(ParsedContext) + _4_newKeyExpr = m_Wrappers.Companion_Option_.Create_Some_(Companion_Default___.ParsedExprToString((_9_newContext).Dtor_expr())) + _3_newValues = (_9_newContext).Dtor_values() + _6_newNames = (_9_newContext).Dtor_names() + } + if ((context).Dtor_filterExpr()).Is_Some() { + var _10_parsed _dafny.Sequence + _ = _10_parsed + _10_parsed = Companion_Default___.ParseExpr(((context).Dtor_filterExpr()).Dtor_value().(_dafny.Sequence)) + var _11_valueOrError2 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(Companion_ParsedContext_.Default()) + _ = _11_valueOrError2 + _11_valueOrError2 = Companion_Default___.BeaconizeParsedExpr(b, _10_parsed, _dafny.Zero, _2_values, _6_newNames, _0_keys, _3_newValues, _dafny.SeqOf()) + if (_11_valueOrError2).IsFailure() { + output = (_11_valueOrError2).PropagateFailure() + return output + } + var _12_newContext ParsedContext + _ = _12_newContext + _12_newContext = (_11_valueOrError2).Extract().(ParsedContext) + _5_newFilterExpr = m_Wrappers.Companion_Option_.Create_Some_(Companion_Default___.ParsedExprToString((_12_newContext).Dtor_expr())) + _3_newValues = (_12_newContext).Dtor_values() + _6_newNames = (_12_newContext).Dtor_names() + } + output = m_Wrappers.Companion_Result_.Create_Success_(Companion_ExprContext_.Create_ExprContext_(_4_newKeyExpr, _5_newFilterExpr, (func() m_Wrappers.Option { + if ((_3_newValues).Cardinality()).Sign() == 0 { + return m_Wrappers.Companion_Option_.Create_None_() + } + return m_Wrappers.Companion_Option_.Create_Some_(_3_newValues) + })(), _6_newNames)) + return output + } + return output +} +func (_static *CompanionStruct_Default___) GetAttrName(t Token, names m_Wrappers.Option) _dafny.Sequence { + if ((names).Is_Some()) && (((names).Dtor_value().(_dafny.Map)).Contains((t).Dtor_s())) { + return ((names).Dtor_value().(_dafny.Map)).Get((t).Dtor_s()).(_dafny.Sequence) + } else { + return (t).Dtor_s() + } +} +func (_static *CompanionStruct_Default___) TestParsedExpr(expr _dafny.Sequence, encrypted _dafny.Set, names m_Wrappers.Option) m_Wrappers.Outcome { + var output m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = output + var _hi0 _dafny.Int = _dafny.IntOfUint32((expr).Cardinality()) + _ = _hi0 + for _0_i := _dafny.Zero; _0_i.Cmp(_hi0) < 0; _0_i = _0_i.Plus(_dafny.One) { + if ((expr).Select((_0_i).Uint32()).(Token)).Is_Attr() { + var _1_name _dafny.Sequence + _ = _1_name + _1_name = Companion_Default___.GetAttrName((expr).Select((_0_i).Uint32()).(Token), names) + if (encrypted).Contains(_1_name) { + output = m_Wrappers.Companion_Outcome_.Create_Fail_(m_DynamoDbEncryptionUtil.Companion_Default___.E(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.SeqOfString("Query is using encrypted field : "), _1_name), _dafny.SeqOfString(".")))) + return output + } + } + } + output = m_Wrappers.Companion_Outcome_.Create_Pass_() + return output + return output +} +func (_static *CompanionStruct_Default___) TestBeaconize(actions _dafny.Map, keyExpr m_Wrappers.Option, filterExpr m_Wrappers.Option, names m_Wrappers.Option) m_Wrappers.Result { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(false) + _ = output + var _0_encrypted _dafny.Set + _ = _0_encrypted + _0_encrypted = func() _dafny.Set { + var _coll0 = _dafny.NewBuilder() + _ = _coll0 + for _iter25 := _dafny.Iterate((actions).Keys().Elements()); ; { + _compr_0, _ok25 := _iter25() + if !_ok25 { + break + } + var _1_k _dafny.Sequence + _1_k = interface{}(_compr_0).(_dafny.Sequence) + if ((actions).Contains(_1_k)) && (((actions).Get(_1_k).(m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.CryptoAction)).Equals(m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Companion_CryptoAction_.Create_ENCRYPT__AND__SIGN_())) { + _coll0.Add(_1_k) + } + } + return _coll0.ToSet() + }() + if (keyExpr).Is_Some() { + var _2_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _2_valueOrError0 + var _out0 m_Wrappers.Outcome + _ = _out0 + _out0 = Companion_Default___.TestParsedExpr(Companion_Default___.ParseExpr((keyExpr).Dtor_value().(_dafny.Sequence)), _0_encrypted, names) + _2_valueOrError0 = _out0 + if (_2_valueOrError0).IsFailure() { + output = (_2_valueOrError0).PropagateFailure() + return output + } + } + if (filterExpr).Is_Some() { + var _3_valueOrError1 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _3_valueOrError1 + var _out1 m_Wrappers.Outcome + _ = _out1 + _out1 = Companion_Default___.TestParsedExpr(Companion_Default___.ParseExpr((filterExpr).Dtor_value().(_dafny.Sequence)), _0_encrypted, names) + _3_valueOrError1 = _out1 + if (_3_valueOrError1).IsFailure() { + output = (_3_valueOrError1).PropagateFailure() + return output + } + } + output = m_Wrappers.Companion_Result_.Create_Success_(true) + return output + return output +} + +// End of class Default__ + +// Definition of datatype Token +type Token struct { + Data_Token_ +} + +func (_this Token) Get_() Data_Token_ { + return _this.Data_Token_ +} + +type Data_Token_ interface { + isToken() +} + +type CompanionStruct_Token_ struct { +} + +var Companion_Token_ = CompanionStruct_Token_{} + +type Token_Attr struct { + S _dafny.Sequence + Loc _dafny.Sequence +} + +func (Token_Attr) isToken() {} + +func (CompanionStruct_Token_) Create_Attr_(S _dafny.Sequence, Loc _dafny.Sequence) Token { + return Token{Token_Attr{S, Loc}} +} + +func (_this Token) Is_Attr() bool { + _, ok := _this.Get_().(Token_Attr) + return ok +} + +type Token_Value struct { + S _dafny.Sequence +} + +func (Token_Value) isToken() {} + +func (CompanionStruct_Token_) Create_Value_(S _dafny.Sequence) Token { + return Token{Token_Value{S}} +} + +func (_this Token) Is_Value() bool { + _, ok := _this.Get_().(Token_Value) + return ok +} + +type Token_Eq struct { +} + +func (Token_Eq) isToken() {} + +func (CompanionStruct_Token_) Create_Eq_() Token { + return Token{Token_Eq{}} +} + +func (_this Token) Is_Eq() bool { + _, ok := _this.Get_().(Token_Eq) + return ok +} + +type Token_Ne struct { +} + +func (Token_Ne) isToken() {} + +func (CompanionStruct_Token_) Create_Ne_() Token { + return Token{Token_Ne{}} +} + +func (_this Token) Is_Ne() bool { + _, ok := _this.Get_().(Token_Ne) + return ok +} + +type Token_Lt struct { +} + +func (Token_Lt) isToken() {} + +func (CompanionStruct_Token_) Create_Lt_() Token { + return Token{Token_Lt{}} +} + +func (_this Token) Is_Lt() bool { + _, ok := _this.Get_().(Token_Lt) + return ok +} + +type Token_Gt struct { +} + +func (Token_Gt) isToken() {} + +func (CompanionStruct_Token_) Create_Gt_() Token { + return Token{Token_Gt{}} +} + +func (_this Token) Is_Gt() bool { + _, ok := _this.Get_().(Token_Gt) + return ok +} + +type Token_Le struct { +} + +func (Token_Le) isToken() {} + +func (CompanionStruct_Token_) Create_Le_() Token { + return Token{Token_Le{}} +} + +func (_this Token) Is_Le() bool { + _, ok := _this.Get_().(Token_Le) + return ok +} + +type Token_Ge struct { +} + +func (Token_Ge) isToken() {} + +func (CompanionStruct_Token_) Create_Ge_() Token { + return Token{Token_Ge{}} +} + +func (_this Token) Is_Ge() bool { + _, ok := _this.Get_().(Token_Ge) + return ok +} + +type Token_Between struct { +} + +func (Token_Between) isToken() {} + +func (CompanionStruct_Token_) Create_Between_() Token { + return Token{Token_Between{}} +} + +func (_this Token) Is_Between() bool { + _, ok := _this.Get_().(Token_Between) + return ok +} + +type Token_In struct { +} + +func (Token_In) isToken() {} + +func (CompanionStruct_Token_) Create_In_() Token { + return Token{Token_In{}} +} + +func (_this Token) Is_In() bool { + _, ok := _this.Get_().(Token_In) + return ok +} + +type Token_Open struct { +} + +func (Token_Open) isToken() {} + +func (CompanionStruct_Token_) Create_Open_() Token { + return Token{Token_Open{}} +} + +func (_this Token) Is_Open() bool { + _, ok := _this.Get_().(Token_Open) + return ok +} + +type Token_Close struct { +} + +func (Token_Close) isToken() {} + +func (CompanionStruct_Token_) Create_Close_() Token { + return Token{Token_Close{}} +} + +func (_this Token) Is_Close() bool { + _, ok := _this.Get_().(Token_Close) + return ok +} + +type Token_Comma struct { +} + +func (Token_Comma) isToken() {} + +func (CompanionStruct_Token_) Create_Comma_() Token { + return Token{Token_Comma{}} +} + +func (_this Token) Is_Comma() bool { + _, ok := _this.Get_().(Token_Comma) + return ok +} + +type Token_Not struct { +} + +func (Token_Not) isToken() {} + +func (CompanionStruct_Token_) Create_Not_() Token { + return Token{Token_Not{}} +} + +func (_this Token) Is_Not() bool { + _, ok := _this.Get_().(Token_Not) + return ok +} + +type Token_And struct { +} + +func (Token_And) isToken() {} + +func (CompanionStruct_Token_) Create_And_() Token { + return Token{Token_And{}} +} + +func (_this Token) Is_And() bool { + _, ok := _this.Get_().(Token_And) + return ok +} + +type Token_Or struct { +} + +func (Token_Or) isToken() {} + +func (CompanionStruct_Token_) Create_Or_() Token { + return Token{Token_Or{}} +} + +func (_this Token) Is_Or() bool { + _, ok := _this.Get_().(Token_Or) + return ok +} + +type Token_AttributeExists struct { +} + +func (Token_AttributeExists) isToken() {} + +func (CompanionStruct_Token_) Create_AttributeExists_() Token { + return Token{Token_AttributeExists{}} +} + +func (_this Token) Is_AttributeExists() bool { + _, ok := _this.Get_().(Token_AttributeExists) + return ok +} + +type Token_AttributeNotExists struct { +} + +func (Token_AttributeNotExists) isToken() {} + +func (CompanionStruct_Token_) Create_AttributeNotExists_() Token { + return Token{Token_AttributeNotExists{}} +} + +func (_this Token) Is_AttributeNotExists() bool { + _, ok := _this.Get_().(Token_AttributeNotExists) + return ok +} + +type Token_AttributeType struct { +} + +func (Token_AttributeType) isToken() {} + +func (CompanionStruct_Token_) Create_AttributeType_() Token { + return Token{Token_AttributeType{}} +} + +func (_this Token) Is_AttributeType() bool { + _, ok := _this.Get_().(Token_AttributeType) + return ok +} + +type Token_BeginsWith struct { +} + +func (Token_BeginsWith) isToken() {} + +func (CompanionStruct_Token_) Create_BeginsWith_() Token { + return Token{Token_BeginsWith{}} +} + +func (_this Token) Is_BeginsWith() bool { + _, ok := _this.Get_().(Token_BeginsWith) + return ok +} + +type Token_Contains struct { +} + +func (Token_Contains) isToken() {} + +func (CompanionStruct_Token_) Create_Contains_() Token { + return Token{Token_Contains{}} +} + +func (_this Token) Is_Contains() bool { + _, ok := _this.Get_().(Token_Contains) + return ok +} + +type Token_Size struct { +} + +func (Token_Size) isToken() {} + +func (CompanionStruct_Token_) Create_Size_() Token { + return Token{Token_Size{}} +} + +func (_this Token) Is_Size() bool { + _, ok := _this.Get_().(Token_Size) + return ok +} + +func (CompanionStruct_Token_) Default() Token { + return Companion_Token_.Create_Attr_(_dafny.EmptySeq.SetString(), _dafny.EmptySeq) +} + +func (_this Token) Dtor_s() _dafny.Sequence { + switch data := _this.Get_().(type) { + case Token_Attr: + return data.S + default: + return data.(Token_Value).S + } +} + +func (_this Token) Dtor_loc() _dafny.Sequence { + return _this.Get_().(Token_Attr).Loc +} + +func (_this Token) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case Token_Attr: + { + return "DynamoDBFilterExpr.Token.Attr" + "(" + _dafny.String(data.S) + ", " + _dafny.String(data.Loc) + ")" + } + case Token_Value: + { + return "DynamoDBFilterExpr.Token.Value" + "(" + _dafny.String(data.S) + ")" + } + case Token_Eq: + { + return "DynamoDBFilterExpr.Token.Eq" + } + case Token_Ne: + { + return "DynamoDBFilterExpr.Token.Ne" + } + case Token_Lt: + { + return "DynamoDBFilterExpr.Token.Lt" + } + case Token_Gt: + { + return "DynamoDBFilterExpr.Token.Gt" + } + case Token_Le: + { + return "DynamoDBFilterExpr.Token.Le" + } + case Token_Ge: + { + return "DynamoDBFilterExpr.Token.Ge" + } + case Token_Between: + { + return "DynamoDBFilterExpr.Token.Between" + } + case Token_In: + { + return "DynamoDBFilterExpr.Token.In" + } + case Token_Open: + { + return "DynamoDBFilterExpr.Token.Open" + } + case Token_Close: + { + return "DynamoDBFilterExpr.Token.Close" + } + case Token_Comma: + { + return "DynamoDBFilterExpr.Token.Comma" + } + case Token_Not: + { + return "DynamoDBFilterExpr.Token.Not" + } + case Token_And: + { + return "DynamoDBFilterExpr.Token.And" + } + case Token_Or: + { + return "DynamoDBFilterExpr.Token.Or" + } + case Token_AttributeExists: + { + return "DynamoDBFilterExpr.Token.AttributeExists" + } + case Token_AttributeNotExists: + { + return "DynamoDBFilterExpr.Token.AttributeNotExists" + } + case Token_AttributeType: + { + return "DynamoDBFilterExpr.Token.AttributeType" + } + case Token_BeginsWith: + { + return "DynamoDBFilterExpr.Token.BeginsWith" + } + case Token_Contains: + { + return "DynamoDBFilterExpr.Token.Contains" + } + case Token_Size: + { + return "DynamoDBFilterExpr.Token.Size" + } + default: + { + return "" + } + } +} + +func (_this Token) Equals(other Token) bool { + switch data1 := _this.Get_().(type) { + case Token_Attr: + { + data2, ok := other.Get_().(Token_Attr) + return ok && data1.S.Equals(data2.S) && data1.Loc.Equals(data2.Loc) + } + case Token_Value: + { + data2, ok := other.Get_().(Token_Value) + return ok && data1.S.Equals(data2.S) + } + case Token_Eq: + { + _, ok := other.Get_().(Token_Eq) + return ok + } + case Token_Ne: + { + _, ok := other.Get_().(Token_Ne) + return ok + } + case Token_Lt: + { + _, ok := other.Get_().(Token_Lt) + return ok + } + case Token_Gt: + { + _, ok := other.Get_().(Token_Gt) + return ok + } + case Token_Le: + { + _, ok := other.Get_().(Token_Le) + return ok + } + case Token_Ge: + { + _, ok := other.Get_().(Token_Ge) + return ok + } + case Token_Between: + { + _, ok := other.Get_().(Token_Between) + return ok + } + case Token_In: + { + _, ok := other.Get_().(Token_In) + return ok + } + case Token_Open: + { + _, ok := other.Get_().(Token_Open) + return ok + } + case Token_Close: + { + _, ok := other.Get_().(Token_Close) + return ok + } + case Token_Comma: + { + _, ok := other.Get_().(Token_Comma) + return ok + } + case Token_Not: + { + _, ok := other.Get_().(Token_Not) + return ok + } + case Token_And: + { + _, ok := other.Get_().(Token_And) + return ok + } + case Token_Or: + { + _, ok := other.Get_().(Token_Or) + return ok + } + case Token_AttributeExists: + { + _, ok := other.Get_().(Token_AttributeExists) + return ok + } + case Token_AttributeNotExists: + { + _, ok := other.Get_().(Token_AttributeNotExists) + return ok + } + case Token_AttributeType: + { + _, ok := other.Get_().(Token_AttributeType) + return ok + } + case Token_BeginsWith: + { + _, ok := other.Get_().(Token_BeginsWith) + return ok + } + case Token_Contains: + { + _, ok := other.Get_().(Token_Contains) + return ok + } + case Token_Size: + { + _, ok := other.Get_().(Token_Size) + return ok + } + default: + { + return false // unexpected + } + } +} + +func (_this Token) EqualsGeneric(other interface{}) bool { + typed, ok := other.(Token) + return ok && _this.Equals(typed) +} + +func Type_Token_() _dafny.TypeDescriptor { + return type_Token_{} +} + +type type_Token_ struct { +} + +func (_this type_Token_) Default() interface{} { + return Companion_Token_.Default() +} + +func (_this type_Token_) String() string { + return "DynamoDBFilterExpr.Token" +} +func (_this Token) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = Token{} + +// End of datatype Token + +// Definition of datatype EqualityBeacon +type EqualityBeacon struct { + Data_EqualityBeacon_ +} + +func (_this EqualityBeacon) Get_() Data_EqualityBeacon_ { + return _this.Data_EqualityBeacon_ +} + +type Data_EqualityBeacon_ interface { + isEqualityBeacon() +} + +type CompanionStruct_EqualityBeacon_ struct { +} + +var Companion_EqualityBeacon_ = CompanionStruct_EqualityBeacon_{} + +type EqualityBeacon_EqualityBeacon struct { + Beacon m_Wrappers.Option + ForEquality bool + ForContains bool +} + +func (EqualityBeacon_EqualityBeacon) isEqualityBeacon() {} + +func (CompanionStruct_EqualityBeacon_) Create_EqualityBeacon_(Beacon m_Wrappers.Option, ForEquality bool, ForContains bool) EqualityBeacon { + return EqualityBeacon{EqualityBeacon_EqualityBeacon{Beacon, ForEquality, ForContains}} +} + +func (_this EqualityBeacon) Is_EqualityBeacon() bool { + _, ok := _this.Get_().(EqualityBeacon_EqualityBeacon) + return ok +} + +func (CompanionStruct_EqualityBeacon_) Default() EqualityBeacon { + return Companion_EqualityBeacon_.Create_EqualityBeacon_(m_Wrappers.Companion_Option_.Default(), false, false) +} + +func (_this EqualityBeacon) Dtor_beacon() m_Wrappers.Option { + return _this.Get_().(EqualityBeacon_EqualityBeacon).Beacon +} + +func (_this EqualityBeacon) Dtor_forEquality() bool { + return _this.Get_().(EqualityBeacon_EqualityBeacon).ForEquality +} + +func (_this EqualityBeacon) Dtor_forContains() bool { + return _this.Get_().(EqualityBeacon_EqualityBeacon).ForContains +} + +func (_this EqualityBeacon) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case EqualityBeacon_EqualityBeacon: + { + return "DynamoDBFilterExpr.EqualityBeacon.EqualityBeacon" + "(" + _dafny.String(data.Beacon) + ", " + _dafny.String(data.ForEquality) + ", " + _dafny.String(data.ForContains) + ")" + } + default: + { + return "" + } + } +} + +func (_this EqualityBeacon) Equals(other EqualityBeacon) bool { + switch data1 := _this.Get_().(type) { + case EqualityBeacon_EqualityBeacon: + { + data2, ok := other.Get_().(EqualityBeacon_EqualityBeacon) + return ok && data1.Beacon.Equals(data2.Beacon) && data1.ForEquality == data2.ForEquality && data1.ForContains == data2.ForContains + } + default: + { + return false // unexpected + } + } +} + +func (_this EqualityBeacon) EqualsGeneric(other interface{}) bool { + typed, ok := other.(EqualityBeacon) + return ok && _this.Equals(typed) +} + +func Type_EqualityBeacon_() _dafny.TypeDescriptor { + return type_EqualityBeacon_{} +} + +type type_EqualityBeacon_ struct { +} + +func (_this type_EqualityBeacon_) Default() interface{} { + return Companion_EqualityBeacon_.Default() +} + +func (_this type_EqualityBeacon_) String() string { + return "DynamoDBFilterExpr.EqualityBeacon" +} +func (_this EqualityBeacon) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = EqualityBeacon{} + +// End of datatype EqualityBeacon + +// Definition of datatype StackValue +type StackValue struct { + Data_StackValue_ +} + +func (_this StackValue) Get_() Data_StackValue_ { + return _this.Data_StackValue_ +} + +type Data_StackValue_ interface { + isStackValue() +} + +type CompanionStruct_StackValue_ struct { +} + +var Companion_StackValue_ = CompanionStruct_StackValue_{} + +type StackValue_Bool struct { + B bool +} + +func (StackValue_Bool) isStackValue() {} + +func (CompanionStruct_StackValue_) Create_Bool_(B bool) StackValue { + return StackValue{StackValue_Bool{B}} +} + +func (_this StackValue) Is_Bool() bool { + _, ok := _this.Get_().(StackValue_Bool) + return ok +} + +type StackValue_Str struct { + S m_ComAmazonawsDynamodbTypes.AttributeValue +} + +func (StackValue_Str) isStackValue() {} + +func (CompanionStruct_StackValue_) Create_Str_(S m_ComAmazonawsDynamodbTypes.AttributeValue) StackValue { + return StackValue{StackValue_Str{S}} +} + +func (_this StackValue) Is_Str() bool { + _, ok := _this.Get_().(StackValue_Str) + return ok +} + +type StackValue_DoesNotExist struct { +} + +func (StackValue_DoesNotExist) isStackValue() {} + +func (CompanionStruct_StackValue_) Create_DoesNotExist_() StackValue { + return StackValue{StackValue_DoesNotExist{}} +} + +func (_this StackValue) Is_DoesNotExist() bool { + _, ok := _this.Get_().(StackValue_DoesNotExist) + return ok +} + +func (CompanionStruct_StackValue_) Default() StackValue { + return Companion_StackValue_.Create_Bool_(false) +} + +func (_this StackValue) Dtor_b() bool { + return _this.Get_().(StackValue_Bool).B +} + +func (_this StackValue) Dtor_s() m_ComAmazonawsDynamodbTypes.AttributeValue { + return _this.Get_().(StackValue_Str).S +} + +func (_this StackValue) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case StackValue_Bool: + { + return "DynamoDBFilterExpr.StackValue.Bool" + "(" + _dafny.String(data.B) + ")" + } + case StackValue_Str: + { + return "DynamoDBFilterExpr.StackValue.Str" + "(" + _dafny.String(data.S) + ")" + } + case StackValue_DoesNotExist: + { + return "DynamoDBFilterExpr.StackValue.DoesNotExist" + } + default: + { + return "" + } + } +} + +func (_this StackValue) Equals(other StackValue) bool { + switch data1 := _this.Get_().(type) { + case StackValue_Bool: + { + data2, ok := other.Get_().(StackValue_Bool) + return ok && data1.B == data2.B + } + case StackValue_Str: + { + data2, ok := other.Get_().(StackValue_Str) + return ok && data1.S.Equals(data2.S) + } + case StackValue_DoesNotExist: + { + _, ok := other.Get_().(StackValue_DoesNotExist) + return ok + } + default: + { + return false // unexpected + } + } +} + +func (_this StackValue) EqualsGeneric(other interface{}) bool { + typed, ok := other.(StackValue) + return ok && _this.Equals(typed) +} + +func Type_StackValue_() _dafny.TypeDescriptor { + return type_StackValue_{} +} + +type type_StackValue_ struct { +} + +func (_this type_StackValue_) Default() interface{} { + return Companion_StackValue_.Default() +} + +func (_this type_StackValue_) String() string { + return "DynamoDBFilterExpr.StackValue" +} +func (_this StackValue) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = StackValue{} + +// End of datatype StackValue + +// Definition of datatype ExprContext +type ExprContext struct { + Data_ExprContext_ +} + +func (_this ExprContext) Get_() Data_ExprContext_ { + return _this.Data_ExprContext_ +} + +type Data_ExprContext_ interface { + isExprContext() +} + +type CompanionStruct_ExprContext_ struct { +} + +var Companion_ExprContext_ = CompanionStruct_ExprContext_{} + +type ExprContext_ExprContext struct { + KeyExpr m_Wrappers.Option + FilterExpr m_Wrappers.Option + Values m_Wrappers.Option + Names m_Wrappers.Option +} + +func (ExprContext_ExprContext) isExprContext() {} + +func (CompanionStruct_ExprContext_) Create_ExprContext_(KeyExpr m_Wrappers.Option, FilterExpr m_Wrappers.Option, Values m_Wrappers.Option, Names m_Wrappers.Option) ExprContext { + return ExprContext{ExprContext_ExprContext{KeyExpr, FilterExpr, Values, Names}} +} + +func (_this ExprContext) Is_ExprContext() bool { + _, ok := _this.Get_().(ExprContext_ExprContext) + return ok +} + +func (CompanionStruct_ExprContext_) Default() ExprContext { + return Companion_ExprContext_.Create_ExprContext_(m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this ExprContext) Dtor_keyExpr() m_Wrappers.Option { + return _this.Get_().(ExprContext_ExprContext).KeyExpr +} + +func (_this ExprContext) Dtor_filterExpr() m_Wrappers.Option { + return _this.Get_().(ExprContext_ExprContext).FilterExpr +} + +func (_this ExprContext) Dtor_values() m_Wrappers.Option { + return _this.Get_().(ExprContext_ExprContext).Values +} + +func (_this ExprContext) Dtor_names() m_Wrappers.Option { + return _this.Get_().(ExprContext_ExprContext).Names +} + +func (_this ExprContext) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case ExprContext_ExprContext: + { + return "DynamoDBFilterExpr.ExprContext.ExprContext" + "(" + _dafny.String(data.KeyExpr) + ", " + _dafny.String(data.FilterExpr) + ", " + _dafny.String(data.Values) + ", " + _dafny.String(data.Names) + ")" + } + default: + { + return "" + } + } +} + +func (_this ExprContext) Equals(other ExprContext) bool { + switch data1 := _this.Get_().(type) { + case ExprContext_ExprContext: + { + data2, ok := other.Get_().(ExprContext_ExprContext) + return ok && data1.KeyExpr.Equals(data2.KeyExpr) && data1.FilterExpr.Equals(data2.FilterExpr) && data1.Values.Equals(data2.Values) && data1.Names.Equals(data2.Names) + } + default: + { + return false // unexpected + } + } +} + +func (_this ExprContext) EqualsGeneric(other interface{}) bool { + typed, ok := other.(ExprContext) + return ok && _this.Equals(typed) +} + +func Type_ExprContext_() _dafny.TypeDescriptor { + return type_ExprContext_{} +} + +type type_ExprContext_ struct { +} + +func (_this type_ExprContext_) Default() interface{} { + return Companion_ExprContext_.Default() +} + +func (_this type_ExprContext_) String() string { + return "DynamoDBFilterExpr.ExprContext" +} +func (_this ExprContext) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = ExprContext{} + +// End of datatype ExprContext + +// Definition of datatype ParsedContext +type ParsedContext struct { + Data_ParsedContext_ +} + +func (_this ParsedContext) Get_() Data_ParsedContext_ { + return _this.Data_ParsedContext_ +} + +type Data_ParsedContext_ interface { + isParsedContext() +} + +type CompanionStruct_ParsedContext_ struct { +} + +var Companion_ParsedContext_ = CompanionStruct_ParsedContext_{} + +type ParsedContext_ParsedContext struct { + Expr _dafny.Sequence + Values _dafny.Map + Names m_Wrappers.Option +} + +func (ParsedContext_ParsedContext) isParsedContext() {} + +func (CompanionStruct_ParsedContext_) Create_ParsedContext_(Expr _dafny.Sequence, Values _dafny.Map, Names m_Wrappers.Option) ParsedContext { + return ParsedContext{ParsedContext_ParsedContext{Expr, Values, Names}} +} + +func (_this ParsedContext) Is_ParsedContext() bool { + _, ok := _this.Get_().(ParsedContext_ParsedContext) + return ok +} + +func (CompanionStruct_ParsedContext_) Default() ParsedContext { + return Companion_ParsedContext_.Create_ParsedContext_(_dafny.EmptySeq, _dafny.EmptyMap, m_Wrappers.Companion_Option_.Default()) +} + +func (_this ParsedContext) Dtor_expr() _dafny.Sequence { + return _this.Get_().(ParsedContext_ParsedContext).Expr +} + +func (_this ParsedContext) Dtor_values() _dafny.Map { + return _this.Get_().(ParsedContext_ParsedContext).Values +} + +func (_this ParsedContext) Dtor_names() m_Wrappers.Option { + return _this.Get_().(ParsedContext_ParsedContext).Names +} + +func (_this ParsedContext) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case ParsedContext_ParsedContext: + { + return "DynamoDBFilterExpr.ParsedContext.ParsedContext" + "(" + _dafny.String(data.Expr) + ", " + _dafny.String(data.Values) + ", " + _dafny.String(data.Names) + ")" + } + default: + { + return "" + } + } +} + +func (_this ParsedContext) Equals(other ParsedContext) bool { + switch data1 := _this.Get_().(type) { + case ParsedContext_ParsedContext: + { + data2, ok := other.Get_().(ParsedContext_ParsedContext) + return ok && data1.Expr.Equals(data2.Expr) && data1.Values.Equals(data2.Values) && data1.Names.Equals(data2.Names) + } + default: + { + return false // unexpected + } + } +} + +func (_this ParsedContext) EqualsGeneric(other interface{}) bool { + typed, ok := other.(ParsedContext) + return ok && _this.Equals(typed) +} + +func Type_ParsedContext_() _dafny.TypeDescriptor { + return type_ParsedContext_{} +} + +type type_ParsedContext_ struct { +} + +func (_this type_ParsedContext_) Default() interface{} { + return Companion_ParsedContext_.Default() +} + +func (_this type_ParsedContext_) String() string { + return "DynamoDBFilterExpr.ParsedContext" +} +func (_this ParsedContext) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = ParsedContext{} + +// End of datatype ParsedContext diff --git a/customer-preview/ddb-esdk/DynamoDBSupport/DynamoDBSupport.go b/customer-preview/ddb-esdk/DynamoDBSupport/DynamoDBSupport.go new file mode 100644 index 000000000..b66970409 --- /dev/null +++ b/customer-preview/ddb-esdk/DynamoDBSupport/DynamoDBSupport.go @@ -0,0 +1,1035 @@ +// Package DynamoDBSupport +// Dafny module DynamoDBSupport compiled into Go + +package DynamoDBSupport + +import ( + os "os" + + m_ComAmazonawsDynamodbTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/ComAmazonawsDynamodbTypes" + m_Com_Amazonaws_Dynamodb "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/Com_Amazonaws_Dynamodb" + m_ComAmazonawsKmsTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/ComAmazonawsKmsTypes" + m_Com_Amazonaws_Kms "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/Com_Amazonaws_Kms" + m_AlgorithmSuites "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AlgorithmSuites" + m_AwsArnParsing "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsArnParsing" + m_AwsCryptographyKeyStoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreOperations" + m_AwsCryptographyKeyStoreTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreTypes" + m_AwsCryptographyMaterialProvidersOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersOperations" + m_AwsCryptographyMaterialProvidersTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersTypes" + m_AwsKmsDiscoveryKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsDiscoveryKeyring" + m_AwsKmsEcdhKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsEcdhKeyring" + m_AwsKmsHierarchicalKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsHierarchicalKeyring" + m_AwsKmsKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsKeyring" + m_AwsKmsMrkAreUnique "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkAreUnique" + m_AwsKmsMrkDiscoveryKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkDiscoveryKeyring" + m_AwsKmsMrkKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkKeyring" + m_AwsKmsMrkMatchForDecrypt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkMatchForDecrypt" + m_AwsKmsRsaKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsRsaKeyring" + m_AwsKmsUtils "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsUtils" + m_CMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CMM" + m_CacheConstants "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CacheConstants" + m_CanonicalEncryptionContext "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CanonicalEncryptionContext" + m_Commitment "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Commitment" + m_Constants "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Constants" + m_CreateKeyStoreTable "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeyStoreTable" + m_CreateKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeys" + m_DDBKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DDBKeystoreOperations" + m_DefaultCMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DefaultCMM" + m_DefaultClientSupplier "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DefaultClientSupplier" + m_Defaults "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Defaults" + m_DiscoveryMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DiscoveryMultiKeyring" + m_EcdhEdkWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/EcdhEdkWrapping" + m_EdkWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/EdkWrapping" + m_ErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/ErrorMessages" + m_GetKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/GetKeys" + m_IntermediateKeyWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/IntermediateKeyWrapping" + m_KMSKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KMSKeystoreOperations" + m_KeyStore "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStore" + m_KeyStoreErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStoreErrorMessages" + m_Keyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Keyring" + m_KmsArn "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KmsArn" + m_LocalCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/LocalCMC" + m_MaterialProviders "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MaterialProviders" + m_MaterialWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MaterialWrapping" + m_Materials "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Materials" + m_MrkAwareDiscoveryMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MrkAwareDiscoveryMultiKeyring" + m_MrkAwareStrictMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MrkAwareStrictMultiKeyring" + m_MultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MultiKeyring" + m_RawAESKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawAESKeyring" + m_RawECDHKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawECDHKeyring" + m_RawRSAKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawRSAKeyring" + m_RequiredEncryptionContextCMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RequiredEncryptionContextCMM" + m_StormTracker "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StormTracker" + m_StormTrackingCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StormTrackingCMC" + m_StrictMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StrictMultiKeyring" + m_Structure "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Structure" + m_SynchronizedLocalCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/SynchronizedLocalCMC" + m_Utils "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Utils" + m_AtomicPrimitives "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AtomicPrimitives" + m_AwsCryptographyPrimitivesOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesOperations" + m_AwsCryptographyPrimitivesTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesTypes" + m_Digest "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Digest" + m_HKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/HKDF" + m_KdfCtr "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/KdfCtr" + m_Random "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Random" + m_WrappedHKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHKDF" + m_WrappedHMAC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHMAC" + m_Actions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Actions" + m_Base64 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64" + m_Base64Lemmas "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64Lemmas" + m_BoundedInts "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/BoundedInts" + m_DivInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternals" + m_DivInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternalsNonlinear" + m_DivMod "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivMod" + m_FileIO "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FileIO" + m_FloatCompare "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FloatCompare" + m_Functions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Functions" + m_GeneralInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GeneralInternals" + m_GetOpt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GetOpt" + m_HexStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/HexStrings" + m_Logarithm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Logarithm" + m__Math "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Math_" + m_ModInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternals" + m_ModInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternalsNonlinear" + m_Mul "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Mul" + m_MulInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternals" + m_MulInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternalsNonlinear" + m_Power "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Power" + m_Relations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Relations" + m_Seq "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq" + m_Seq_MergeSort "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq_MergeSort" + m_SortedSets "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/SortedSets" + m_Sorting "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Sorting" + m_StandardLibrary "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary" + m_StandardLibraryInterop "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibraryInterop" + m_StandardLibrary_Sequence "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_Sequence" + m_StandardLibrary_String "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_String" + m_StandardLibrary_UInt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_UInt" + m_Streams "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Streams" + m_UnicodeStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UnicodeStrings" + m__Unicode "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Unicode_" + m_Utf16EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf16EncodingForm" + m_Utf8EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf8EncodingForm" + m_Wrappers "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers" + m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorOperations "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorOperations" + m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes" + m_AwsCryptographyDbEncryptionSdkDynamoDbOperations "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbOperations" + m_AwsCryptographyDbEncryptionSdkDynamoDbTypes "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbTypes" + m_AwsCryptographyDbEncryptionSdkStructuredEncryptionOperations "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkStructuredEncryptionOperations" + m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes" + m_BaseBeacon "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/BaseBeacon" + m_Canonize "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/Canonize" + m_CompoundBeacon "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/CompoundBeacon" + m_DdbVirtualFields "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DdbVirtualFields" + m_DynamoDBFilterExpr "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDBFilterExpr" + m_DynamoDbEncryption "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbEncryption" + m_DynamoDbEncryptionBranchKeyIdSupplier "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbEncryptionBranchKeyIdSupplier" + m_DynamoDbEncryptionUtil "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbEncryptionUtil" + m_DynamoDbItemEncryptor "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbItemEncryptor" + m_DynamoDbItemEncryptorUtil "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbItemEncryptorUtil" + m_DynamoDbNormalizeNumber "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbNormalizeNumber" + m_DynamoDbUpdateExpr "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbUpdateExpr" + m_DynamoToStruct "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoToStruct" + m_InternalLegacyOverride "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/InternalLegacyOverride" + m__Maps "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/Maps_" + m_SearchableEncryptionInfo "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/SearchableEncryptionInfo" + m_Sets "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/Sets" + m_SortCanon "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/SortCanon" + m_StructuredEncryption "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryption" + m_StructuredEncryptionCrypt "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionCrypt" + m_StructuredEncryptionFooter "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionFooter" + m_StructuredEncryptionHeader "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionHeader" + m_StructuredEncryptionPaths "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionPaths" + m_StructuredEncryptionUtil "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionUtil" + m_TermLoc "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/TermLoc" + m__System "github.com/dafny-lang/DafnyRuntimeGo/v4/System_" + _dafny "github.com/dafny-lang/DafnyRuntimeGo/v4/dafny" +) + +var _ = os.Args +var _ _dafny.Dummy__ +var _ m__System.Dummy__ +var _ m_Wrappers.Dummy__ +var _ m_BoundedInts.Dummy__ +var _ m_StandardLibrary_UInt.Dummy__ +var _ m_StandardLibrary_Sequence.Dummy__ +var _ m_StandardLibrary_String.Dummy__ +var _ m_StandardLibrary.Dummy__ +var _ m_AwsCryptographyPrimitivesTypes.Dummy__ +var _ m_Random.Dummy__ +var _ m_Digest.Dummy__ +var _ m_WrappedHMAC.Dummy__ +var _ m_HKDF.Dummy__ +var _ m_WrappedHKDF.Dummy__ +var _ m_KdfCtr.Dummy__ +var _ m_AwsCryptographyPrimitivesOperations.Dummy__ +var _ m_AtomicPrimitives.Dummy__ +var _ m_ComAmazonawsDynamodbTypes.Dummy__ +var _ m_ComAmazonawsKmsTypes.Dummy__ +var _ m_AwsCryptographyKeyStoreTypes.Dummy__ +var _ m_AwsCryptographyMaterialProvidersTypes.Dummy__ +var _ m_Base64.Dummy__ +var _ m_AlgorithmSuites.Dummy__ +var _ m_Materials.Dummy__ +var _ m_Keyring.Dummy__ +var _ m_Relations.Dummy__ +var _ m_Seq_MergeSort.Dummy__ +var _ m__Math.Dummy__ +var _ m_Seq.Dummy__ +var _ m_MultiKeyring.Dummy__ +var _ m_AwsArnParsing.Dummy__ +var _ m_AwsKmsMrkAreUnique.Dummy__ +var _ m_Actions.Dummy__ +var _ m_AwsKmsMrkMatchForDecrypt.Dummy__ +var _ m_AwsKmsUtils.Dummy__ +var _ m_Constants.Dummy__ +var _ m_MaterialWrapping.Dummy__ +var _ m_CanonicalEncryptionContext.Dummy__ +var _ m_IntermediateKeyWrapping.Dummy__ +var _ m_EdkWrapping.Dummy__ +var _ m_ErrorMessages.Dummy__ +var _ m_AwsKmsKeyring.Dummy__ +var _ m_StrictMultiKeyring.Dummy__ +var _ m_AwsKmsDiscoveryKeyring.Dummy__ +var _ m_Com_Amazonaws_Kms.Dummy__ +var _ m_Com_Amazonaws_Dynamodb.Dummy__ +var _ m_DiscoveryMultiKeyring.Dummy__ +var _ m_AwsKmsMrkDiscoveryKeyring.Dummy__ +var _ m_MrkAwareDiscoveryMultiKeyring.Dummy__ +var _ m_AwsKmsMrkKeyring.Dummy__ +var _ m_MrkAwareStrictMultiKeyring.Dummy__ +var _ m_LocalCMC.Dummy__ +var _ m_SynchronizedLocalCMC.Dummy__ +var _ m_StormTracker.Dummy__ +var _ m_StormTrackingCMC.Dummy__ +var _ m_CacheConstants.Dummy__ +var _ m_AwsKmsHierarchicalKeyring.Dummy__ +var _ m_AwsKmsRsaKeyring.Dummy__ +var _ m_EcdhEdkWrapping.Dummy__ +var _ m_RawECDHKeyring.Dummy__ +var _ m_AwsKmsEcdhKeyring.Dummy__ +var _ m_RawAESKeyring.Dummy__ +var _ m_RawRSAKeyring.Dummy__ +var _ m_CMM.Dummy__ +var _ m_Defaults.Dummy__ +var _ m_Commitment.Dummy__ +var _ m_DefaultCMM.Dummy__ +var _ m_DefaultClientSupplier.Dummy__ +var _ m_Utils.Dummy__ +var _ m_RequiredEncryptionContextCMM.Dummy__ +var _ m_AwsCryptographyMaterialProvidersOperations.Dummy__ +var _ m_MaterialProviders.Dummy__ +var _ m_KeyStoreErrorMessages.Dummy__ +var _ m_KmsArn.Dummy__ +var _ m_Structure.Dummy__ +var _ m_KMSKeystoreOperations.Dummy__ +var _ m_DDBKeystoreOperations.Dummy__ +var _ m_CreateKeys.Dummy__ +var _ m_CreateKeyStoreTable.Dummy__ +var _ m_GetKeys.Dummy__ +var _ m_AwsCryptographyKeyStoreOperations.Dummy__ +var _ m_KeyStore.Dummy__ +var _ m__Unicode.Dummy__ +var _ m_Functions.Dummy__ +var _ m_Utf8EncodingForm.Dummy__ +var _ m_Utf16EncodingForm.Dummy__ +var _ m_UnicodeStrings.Dummy__ +var _ m_FileIO.Dummy__ +var _ m_GeneralInternals.Dummy__ +var _ m_MulInternalsNonlinear.Dummy__ +var _ m_MulInternals.Dummy__ +var _ m_Mul.Dummy__ +var _ m_ModInternalsNonlinear.Dummy__ +var _ m_DivInternalsNonlinear.Dummy__ +var _ m_ModInternals.Dummy__ +var _ m_DivInternals.Dummy__ +var _ m_DivMod.Dummy__ +var _ m_Power.Dummy__ +var _ m_Logarithm.Dummy__ +var _ m_StandardLibraryInterop.Dummy__ +var _ m_Streams.Dummy__ +var _ m_Sorting.Dummy__ +var _ m_HexStrings.Dummy__ +var _ m_GetOpt.Dummy__ +var _ m_FloatCompare.Dummy__ +var _ m_Base64Lemmas.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Dummy__ +var _ m_StructuredEncryptionUtil.Dummy__ +var _ m_Sets.Dummy__ +var _ m_StructuredEncryptionPaths.Dummy__ +var _ m_StructuredEncryptionHeader.Dummy__ +var _ m_StructuredEncryptionFooter.Dummy__ +var _ m_SortCanon.Dummy__ +var _ m_Canonize.Dummy__ +var _ m_StructuredEncryptionCrypt.Dummy__ +var _ m__Maps.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkStructuredEncryptionOperations.Dummy__ +var _ m_StructuredEncryption.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Dummy__ +var _ m_DynamoDbEncryptionUtil.Dummy__ +var _ m_DynamoDbNormalizeNumber.Dummy__ +var _ m_DynamoToStruct.Dummy__ +var _ m_DynamoDbItemEncryptorUtil.Dummy__ +var _ m_InternalLegacyOverride.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorOperations.Dummy__ +var _ m_DynamoDbItemEncryptor.Dummy__ +var _ m_DynamoDbEncryptionBranchKeyIdSupplier.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkDynamoDbOperations.Dummy__ +var _ m_DynamoDbEncryption.Dummy__ +var _ m_TermLoc.Dummy__ +var _ m_DdbVirtualFields.Dummy__ +var _ m_DynamoDbUpdateExpr.Dummy__ +var _ m_BaseBeacon.Dummy__ +var _ m_CompoundBeacon.Dummy__ +var _ m_SearchableEncryptionInfo.Dummy__ +var _ m_DynamoDBFilterExpr.Dummy__ + +type Dummy__ struct{} + +// Definition of class Default__ +type Default__ struct { + dummy byte +} + +func New_Default___() *Default__ { + _this := Default__{} + + return &_this +} + +type CompanionStruct_Default___ struct { +} + +var Companion_Default___ = CompanionStruct_Default___{} + +func (_this *Default__) Equals(other *Default__) bool { + return _this == other +} + +func (_this *Default__) EqualsGeneric(x interface{}) bool { + other, ok := x.(*Default__) + return ok && _this.Equals(other) +} + +func (*Default__) String() string { + return "DynamoDBSupport.Default__" +} +func (_this *Default__) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = &Default__{} + +func (_static *CompanionStruct_Default___) IsWriteable(item _dafny.Map) m_Wrappers.Result { + if _dafny.Quantifier((item).Keys().Elements(), true, func(_forall_var_0 _dafny.Sequence) bool { + var _0_k _dafny.Sequence + _0_k = interface{}(_forall_var_0).(_dafny.Sequence) + return !((item).Contains(_0_k)) || (!(_dafny.Companion_Sequence_.IsPrefixOf(m_DynamoDbEncryptionUtil.Companion_Default___.ReservedPrefix(), _0_k))) + }) { + return m_Wrappers.Companion_Result_.Create_Success_(true) + } else { + var _1_bad _dafny.Set = func() _dafny.Set { + var _coll0 = _dafny.NewBuilder() + _ = _coll0 + for _iter26 := _dafny.Iterate((item).Keys().Elements()); ; { + _compr_0, _ok26 := _iter26() + if !_ok26 { + break + } + var _2_k _dafny.Sequence + _2_k = interface{}(_compr_0).(_dafny.Sequence) + if ((item).Contains(_2_k)) && (_dafny.Companion_Sequence_.IsPrefixOf(m_DynamoDbEncryptionUtil.Companion_Default___.ReservedPrefix(), _2_k)) { + _coll0.Add(_2_k) + } + } + return _coll0.ToSet() + }() + _ = _1_bad + var _3_badSeq _dafny.Sequence = m_SortedSets.SetToOrderedSequence2(_1_bad, func(coer113 func(_dafny.Char, _dafny.Char) bool) func(interface{}, interface{}) bool { + return func(arg139 interface{}, arg140 interface{}) bool { + return coer113(arg139.(_dafny.Char), arg140.(_dafny.Char)) + } + }(m_DynamoDbEncryptionUtil.Companion_Default___.CharLess)) + _ = _3_badSeq + if (_dafny.IntOfUint32((_3_badSeq).Cardinality())).Sign() == 0 { + return m_Wrappers.Companion_Result_.Create_Failure_(_dafny.SeqOfString("")) + } else { + return m_Wrappers.Companion_Result_.Create_Failure_(_dafny.Companion_Sequence_.Concatenate(_dafny.SeqOfString("Writing reserved attributes not allowed : "), m_StandardLibrary.Companion_Default___.Join(_3_badSeq, _dafny.SeqOfString("\n")))) + } + } +} +func (_static *CompanionStruct_Default___) GetEncryptedAttributes(actions _dafny.Map, expr m_Wrappers.Option, attrNames m_Wrappers.Option) _dafny.Sequence { + if (expr).Is_None() { + return _dafny.SeqOf() + } else { + var _0_attrs _dafny.Sequence = m_DynamoDBFilterExpr.Companion_Default___.ExtractAttributes((expr).Dtor_value().(_dafny.Sequence), attrNames) + _ = _0_attrs + return m_Seq.Companion_Default___.Filter(func(coer114 func(_dafny.Sequence) bool) func(interface{}) bool { + return func(arg141 interface{}) bool { + return coer114(arg141.(_dafny.Sequence)) + } + }((func(_1_actions _dafny.Map) func(_dafny.Sequence) bool { + return func(_2_attr _dafny.Sequence) bool { + return Companion_Default___.IsEncrypted(_1_actions, _2_attr) + } + })(actions)), _0_attrs) + } +} +func (_static *CompanionStruct_Default___) TestConditionExpression(actions _dafny.Map, expr m_Wrappers.Option, attrNames m_Wrappers.Option, attrValues m_Wrappers.Option) m_Wrappers.Result { + if (expr).Is_Some() { + var _0_attrs _dafny.Sequence = Companion_Default___.GetEncryptedAttributes(actions, expr, attrNames) + _ = _0_attrs + if (_dafny.IntOfUint32((_0_attrs).Cardinality())).Sign() == 0 { + return m_Wrappers.Companion_Result_.Create_Success_(true) + } else { + return m_Wrappers.Companion_Result_.Create_Failure_(_dafny.Companion_Sequence_.Concatenate(_dafny.SeqOfString("Condition Expressions forbidden on encrypted attributes : "), m_StandardLibrary.Companion_Default___.Join(_0_attrs, _dafny.SeqOfString(",")))) + } + } else { + return m_Wrappers.Companion_Result_.Create_Success_(true) + } +} +func (_static *CompanionStruct_Default___) IsSigned(actions _dafny.Map, attr _dafny.Sequence) bool { + return ((actions).Contains(attr)) && (!((actions).Get(attr).(m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.CryptoAction)).Equals(m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Companion_CryptoAction_.Create_DO__NOTHING_())) +} +func (_static *CompanionStruct_Default___) IsEncrypted(actions _dafny.Map, attr _dafny.Sequence) bool { + return ((actions).Contains(attr)) && (((actions).Get(attr).(m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.CryptoAction)).Equals(m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Companion_CryptoAction_.Create_ENCRYPT__AND__SIGN_())) +} +func (_static *CompanionStruct_Default___) TestUpdateExpression(actions _dafny.Map, expr m_Wrappers.Option, attrNames m_Wrappers.Option, attrValues m_Wrappers.Option) m_Wrappers.Result { + if (expr).Is_Some() { + var _0_attrs _dafny.Sequence = m_DynamoDbUpdateExpr.Companion_Default___.ExtractAttributes((expr).Dtor_value().(_dafny.Sequence), attrNames) + _ = _0_attrs + var _1_encryptedAttrs _dafny.Sequence = m_Seq.Companion_Default___.Filter(func(coer115 func(_dafny.Sequence) bool) func(interface{}) bool { + return func(arg142 interface{}) bool { + return coer115(arg142.(_dafny.Sequence)) + } + }((func(_2_actions _dafny.Map) func(_dafny.Sequence) bool { + return func(_3_s _dafny.Sequence) bool { + return Companion_Default___.IsSigned(_2_actions, _3_s) + } + })(actions)), _0_attrs) + _ = _1_encryptedAttrs + if (_dafny.IntOfUint32((_1_encryptedAttrs).Cardinality())).Sign() == 0 { + return m_Wrappers.Companion_Result_.Create_Success_(true) + } else { + return m_Wrappers.Companion_Result_.Create_Failure_(_dafny.Companion_Sequence_.Concatenate(_dafny.SeqOfString("Update Expressions forbidden on signed attributes : "), m_StandardLibrary.Companion_Default___.Join(_1_encryptedAttrs, _dafny.SeqOfString(",")))) + } + } else { + return m_Wrappers.Companion_Result_.Create_Success_(true) + } +} +func (_static *CompanionStruct_Default___) GetEncryptedBeacons(search m_Wrappers.Option, item _dafny.Map, keyId m_DynamoDbEncryptionUtil.MaybeKeyId) m_Wrappers.Result { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptyMap) + _ = output + if (search).Is_None() { + output = m_Wrappers.Companion_Result_.Create_Success_(_dafny.NewMapBuilder().ToMap()) + return output + } else { + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = ((search).Dtor_value().(m_SearchableEncryptionInfo.SearchInfo)).GenerateEncryptedBeacons(item, keyId) + output = _out0 + } + return output +} +func (_static *CompanionStruct_Default___) AddSignedBeacons(search m_Wrappers.Option, item _dafny.Map) m_Wrappers.Result { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptyMap) + _ = output + if (search).Is_None() { + output = m_Wrappers.Companion_Result_.Create_Success_(item) + return output + } else { + var _0_valueOrError0 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptyMap) + _ = _0_valueOrError0 + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = ((search).Dtor_value().(m_SearchableEncryptionInfo.SearchInfo)).GenerateSignedBeacons(item) + _0_valueOrError0 = _out0 + if (_0_valueOrError0).IsFailure() { + output = (_0_valueOrError0).PropagateFailure() + return output + } + var _1_newAttrs _dafny.Map + _ = _1_newAttrs + _1_newAttrs = (_0_valueOrError0).Extract().(_dafny.Map) + var _2_badAttrs _dafny.Set + _ = _2_badAttrs + _2_badAttrs = func() _dafny.Set { + var _coll0 = _dafny.NewBuilder() + _ = _coll0 + for _iter27 := _dafny.Iterate((_1_newAttrs).Keys().Elements()); ; { + _compr_0, _ok27 := _iter27() + if !_ok27 { + break + } + var _3_k _dafny.Sequence + _3_k = interface{}(_compr_0).(_dafny.Sequence) + if m_ComAmazonawsDynamodbTypes.Companion_AttributeName_.Is_(_3_k) { + if (((_1_newAttrs).Contains(_3_k)) && ((item).Contains(_3_k))) && (!((item).Get(_3_k).(m_ComAmazonawsDynamodbTypes.AttributeValue)).Equals((_1_newAttrs).Get(_3_k).(m_ComAmazonawsDynamodbTypes.AttributeValue))) { + _coll0.Add(_3_k) + } + } + } + return _coll0.ToSet() + }() + var _4_valueOrError1 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _4_valueOrError1 + _4_valueOrError1 = m_Wrappers.Companion_Default___.Need(((_2_badAttrs).Cardinality()).Sign() == 0, m_DynamoDbEncryptionUtil.Companion_Default___.E(_dafny.SeqOfString("Signed beacons have generated values different from supplied values."))) + if (_4_valueOrError1).IsFailure() { + output = (_4_valueOrError1).PropagateFailure() + return output + } + var _5_version _dafny.Map + _ = _5_version + _5_version = _dafny.NewMapBuilder().ToMap().UpdateUnsafe(Companion_Default___.VersionTag(), m_DdbVirtualFields.Companion_Default___.DS(_dafny.SeqOfString(" "))) + var _6_both _dafny.Set + _ = _6_both + _6_both = ((_1_newAttrs).Keys()).Intersection((item).Keys()) + var _7_bad _dafny.Set + _ = _7_bad + _7_bad = func() _dafny.Set { + var _coll1 = _dafny.NewBuilder() + _ = _coll1 + for _iter28 := _dafny.Iterate((_6_both).Elements()); ; { + _compr_1, _ok28 := _iter28() + if !_ok28 { + break + } + var _8_k _dafny.Sequence + _8_k = interface{}(_compr_1).(_dafny.Sequence) + if m_ComAmazonawsDynamodbTypes.Companion_AttributeName_.Is_(_8_k) { + if ((_6_both).Contains(_8_k)) && (!((_1_newAttrs).Get(_8_k).(m_ComAmazonawsDynamodbTypes.AttributeValue)).Equals((item).Get(_8_k).(m_ComAmazonawsDynamodbTypes.AttributeValue))) { + _coll1.Add(_8_k) + } + } + } + return _coll1.ToSet() + }() + if ((_7_bad).Cardinality()).Sign() == 1 { + var _9_badSeq _dafny.Sequence + _ = _9_badSeq + _9_badSeq = m_SortedSets.SetToOrderedSequence2(_7_bad, func(coer116 func(_dafny.Char, _dafny.Char) bool) func(interface{}, interface{}) bool { + return func(arg143 interface{}, arg144 interface{}) bool { + return coer116(arg143.(_dafny.Char), arg144.(_dafny.Char)) + } + }(m_DynamoDbEncryptionUtil.Companion_Default___.CharLess)) + output = m_Wrappers.Companion_Result_.Create_Failure_(m_DynamoDbEncryptionUtil.Companion_Default___.E(_dafny.Companion_Sequence_.Concatenate(_dafny.SeqOfString("Supplied Beacons do not match calculated beacons : "), m_StandardLibrary.Companion_Default___.Join(_9_badSeq, _dafny.SeqOfString(", "))))) + return output + } + if ((((((search).Dtor_value().(m_SearchableEncryptionInfo.SearchInfo)).Curr()).Dtor_keySource()).Dtor_keyLoc()).Is_MultiLoc()) && ((((((search).Dtor_value().(m_SearchableEncryptionInfo.SearchInfo)).Curr()).Dtor_keySource()).Dtor_keyLoc()).Dtor_deleteKey()) { + var _10_newItem _dafny.Map + _ = _10_newItem + _10_newItem = func() _dafny.Map { + var _coll2 = _dafny.NewMapBuilder() + _ = _coll2 + for _iter29 := _dafny.Iterate((item).Keys().Elements()); ; { + _compr_2, _ok29 := _iter29() + if !_ok29 { + break + } + var _11_k _dafny.Sequence + _11_k = interface{}(_compr_2).(_dafny.Sequence) + if m_ComAmazonawsDynamodbTypes.Companion_AttributeName_.Is_(_11_k) { + if ((item).Contains(_11_k)) && (!_dafny.Companion_Sequence_.Equal(_11_k, (((((search).Dtor_value().(m_SearchableEncryptionInfo.SearchInfo)).Curr()).Dtor_keySource()).Dtor_keyLoc()).Dtor_keyName())) { + _coll2.Add(_11_k, (item).Get(_11_k).(m_ComAmazonawsDynamodbTypes.AttributeValue)) + } + } + } + return _coll2.ToMap() + }() + output = m_Wrappers.Companion_Result_.Create_Success_(((_10_newItem).Merge(_1_newAttrs)).Merge(_5_version)) + return output + } else { + output = m_Wrappers.Companion_Result_.Create_Success_(((item).Merge(_1_newAttrs)).Merge(_5_version)) + return output + } + } + return output +} +func (_static *CompanionStruct_Default___) DoRemoveBeacons(item _dafny.Map) _dafny.Map { + return func() _dafny.Map { + var _coll0 = _dafny.NewMapBuilder() + _ = _coll0 + for _iter30 := _dafny.Iterate((item).Keys().Elements()); ; { + _compr_0, _ok30 := _iter30() + if !_ok30 { + break + } + var _0_k _dafny.Sequence + _0_k = interface{}(_compr_0).(_dafny.Sequence) + if m_ComAmazonawsDynamodbTypes.Companion_AttributeName_.Is_(_0_k) { + if ((item).Contains(_0_k)) && (!(_dafny.Companion_Sequence_.IsPrefixOf(m_DynamoDbEncryptionUtil.Companion_Default___.ReservedPrefix(), _0_k))) { + _coll0.Add(_0_k, (item).Get(_0_k).(m_ComAmazonawsDynamodbTypes.AttributeValue)) + } + } + } + return _coll0.ToMap() + }() +} +func (_static *CompanionStruct_Default___) RemoveBeacons(search m_Wrappers.Option, item _dafny.Map) m_Wrappers.Result { + return m_Wrappers.Companion_Result_.Create_Success_(Companion_Default___.DoRemoveBeacons(item)) +} +func (_static *CompanionStruct_Default___) QueryInputForBeacons(search m_Wrappers.Option, actions _dafny.Map, req m_ComAmazonawsDynamodbTypes.QueryInput) m_Wrappers.Result { + var output m_Wrappers.Result = m_Wrappers.Result{} + _ = output + if (search).Is_None() { + var _0_valueOrError0 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(false) + _ = _0_valueOrError0 + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_DynamoDBFilterExpr.Companion_Default___.TestBeaconize(actions, (req).Dtor_KeyConditionExpression(), (req).Dtor_FilterExpression(), (req).Dtor_ExpressionAttributeNames()) + _0_valueOrError0 = _out0 + if (_0_valueOrError0).IsFailure() { + output = (_0_valueOrError0).PropagateFailure() + return output + } + var _1___v0 bool + _ = _1___v0 + _1___v0 = (_0_valueOrError0).Extract().(bool) + output = m_Wrappers.Companion_Result_.Create_Success_(req) + return output + } else { + var _2_valueOrError1 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_DynamoDbEncryptionUtil.Companion_MaybeKeyId_.Default()) + _ = _2_valueOrError1 + _2_valueOrError1 = m_DynamoDBFilterExpr.Companion_Default___.GetBeaconKeyId(((search).Dtor_value().(m_SearchableEncryptionInfo.SearchInfo)).Curr(), (req).Dtor_KeyConditionExpression(), (req).Dtor_FilterExpression(), (req).Dtor_ExpressionAttributeValues(), (req).Dtor_ExpressionAttributeNames()) + if (_2_valueOrError1).IsFailure() { + output = (_2_valueOrError1).PropagateFailure() + return output + } + var _3_keyId m_DynamoDbEncryptionUtil.MaybeKeyId + _ = _3_keyId + _3_keyId = (_2_valueOrError1).Extract().(m_DynamoDbEncryptionUtil.MaybeKeyId) + var _4_oldContext m_DynamoDBFilterExpr.ExprContext + _ = _4_oldContext + _4_oldContext = m_DynamoDBFilterExpr.Companion_ExprContext_.Create_ExprContext_((req).Dtor_KeyConditionExpression(), (req).Dtor_FilterExpression(), (req).Dtor_ExpressionAttributeValues(), (req).Dtor_ExpressionAttributeNames()) + var _5_valueOrError2 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_DynamoDBFilterExpr.Companion_ExprContext_.Default()) + _ = _5_valueOrError2 + var _out1 m_Wrappers.Result + _ = _out1 + _out1 = m_DynamoDBFilterExpr.Companion_Default___.Beaconize(((search).Dtor_value().(m_SearchableEncryptionInfo.SearchInfo)).Curr(), _4_oldContext, _3_keyId, false) + _5_valueOrError2 = _out1 + if (_5_valueOrError2).IsFailure() { + output = (_5_valueOrError2).PropagateFailure() + return output + } + var _6_newContext m_DynamoDBFilterExpr.ExprContext + _ = _6_newContext + _6_newContext = (_5_valueOrError2).Extract().(m_DynamoDBFilterExpr.ExprContext) + var _pat_let_tv0 = _6_newContext + _ = _pat_let_tv0 + var _pat_let_tv1 = _6_newContext + _ = _pat_let_tv1 + var _pat_let_tv2 = _6_newContext + _ = _pat_let_tv2 + var _pat_let_tv3 = _6_newContext + _ = _pat_let_tv3 + output = m_Wrappers.Companion_Result_.Create_Success_(func(_pat_let1_0 m_ComAmazonawsDynamodbTypes.QueryInput) m_ComAmazonawsDynamodbTypes.QueryInput { + return func(_7_dt__update__tmp_h0 m_ComAmazonawsDynamodbTypes.QueryInput) m_ComAmazonawsDynamodbTypes.QueryInput { + return func(_pat_let2_0 m_Wrappers.Option) m_ComAmazonawsDynamodbTypes.QueryInput { + return func(_8_dt__update_hExpressionAttributeValues_h0 m_Wrappers.Option) m_ComAmazonawsDynamodbTypes.QueryInput { + return func(_pat_let3_0 m_Wrappers.Option) m_ComAmazonawsDynamodbTypes.QueryInput { + return func(_9_dt__update_hExpressionAttributeNames_h0 m_Wrappers.Option) m_ComAmazonawsDynamodbTypes.QueryInput { + return func(_pat_let4_0 m_Wrappers.Option) m_ComAmazonawsDynamodbTypes.QueryInput { + return func(_10_dt__update_hFilterExpression_h0 m_Wrappers.Option) m_ComAmazonawsDynamodbTypes.QueryInput { + return func(_pat_let5_0 m_Wrappers.Option) m_ComAmazonawsDynamodbTypes.QueryInput { + return func(_11_dt__update_hKeyConditionExpression_h0 m_Wrappers.Option) m_ComAmazonawsDynamodbTypes.QueryInput { + return m_ComAmazonawsDynamodbTypes.Companion_QueryInput_.Create_QueryInput_((_7_dt__update__tmp_h0).Dtor_TableName(), (_7_dt__update__tmp_h0).Dtor_IndexName(), (_7_dt__update__tmp_h0).Dtor_Select(), (_7_dt__update__tmp_h0).Dtor_AttributesToGet(), (_7_dt__update__tmp_h0).Dtor_Limit(), (_7_dt__update__tmp_h0).Dtor_ConsistentRead(), (_7_dt__update__tmp_h0).Dtor_KeyConditions(), (_7_dt__update__tmp_h0).Dtor_QueryFilter(), (_7_dt__update__tmp_h0).Dtor_ConditionalOperator(), (_7_dt__update__tmp_h0).Dtor_ScanIndexForward(), (_7_dt__update__tmp_h0).Dtor_ExclusiveStartKey(), (_7_dt__update__tmp_h0).Dtor_ReturnConsumedCapacity(), (_7_dt__update__tmp_h0).Dtor_ProjectionExpression(), _10_dt__update_hFilterExpression_h0, _11_dt__update_hKeyConditionExpression_h0, _9_dt__update_hExpressionAttributeNames_h0, _8_dt__update_hExpressionAttributeValues_h0) + }(_pat_let5_0) + }((_pat_let_tv3).Dtor_keyExpr()) + }(_pat_let4_0) + }((_pat_let_tv2).Dtor_filterExpr()) + }(_pat_let3_0) + }((_pat_let_tv1).Dtor_names()) + }(_pat_let2_0) + }((_pat_let_tv0).Dtor_values()) + }(_pat_let1_0) + }(req)) + return output + } + return output +} +func (_static *CompanionStruct_Default___) QueryOutputForBeacons(search m_Wrappers.Option, req m_ComAmazonawsDynamodbTypes.QueryInput, resp m_ComAmazonawsDynamodbTypes.QueryOutput) m_Wrappers.Result { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_ComAmazonawsDynamodbTypes.Companion_QueryOutput_.Default()) + _ = output + if (search).Is_None() { + var _0_trimmedItems _dafny.Sequence + _ = _0_trimmedItems + _0_trimmedItems = m_Seq.Companion_Default___.Map(func(coer117 func(_dafny.Map) _dafny.Map) func(interface{}) interface{} { + return func(arg145 interface{}) interface{} { + return coer117(arg145.(_dafny.Map)) + } + }(func(_1_i _dafny.Map) _dafny.Map { + return Companion_Default___.DoRemoveBeacons(_1_i) + }), ((resp).Dtor_Items()).Dtor_value().(_dafny.Sequence)) + var _pat_let_tv0 = _0_trimmedItems + _ = _pat_let_tv0 + output = m_Wrappers.Companion_Result_.Create_Success_(func(_pat_let6_0 m_ComAmazonawsDynamodbTypes.QueryOutput) m_ComAmazonawsDynamodbTypes.QueryOutput { + return func(_2_dt__update__tmp_h0 m_ComAmazonawsDynamodbTypes.QueryOutput) m_ComAmazonawsDynamodbTypes.QueryOutput { + return func(_pat_let7_0 m_Wrappers.Option) m_ComAmazonawsDynamodbTypes.QueryOutput { + return func(_3_dt__update_hItems_h0 m_Wrappers.Option) m_ComAmazonawsDynamodbTypes.QueryOutput { + return m_ComAmazonawsDynamodbTypes.Companion_QueryOutput_.Create_QueryOutput_(_3_dt__update_hItems_h0, (_2_dt__update__tmp_h0).Dtor_Count(), (_2_dt__update__tmp_h0).Dtor_ScannedCount(), (_2_dt__update__tmp_h0).Dtor_LastEvaluatedKey(), (_2_dt__update__tmp_h0).Dtor_ConsumedCapacity()) + }(_pat_let7_0) + }(m_Wrappers.Companion_Option_.Create_Some_(_pat_let_tv0)) + }(_pat_let6_0) + }(resp)) + return output + } else { + var _4_valueOrError0 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = _4_valueOrError0 + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_DynamoDBFilterExpr.Companion_Default___.FilterResults(((search).Dtor_value().(m_SearchableEncryptionInfo.SearchInfo)).Curr(), ((resp).Dtor_Items()).Dtor_value().(_dafny.Sequence), (req).Dtor_KeyConditionExpression(), (req).Dtor_FilterExpression(), (req).Dtor_ExpressionAttributeNames(), (req).Dtor_ExpressionAttributeValues()) + _4_valueOrError0 = _out0 + if (_4_valueOrError0).IsFailure() { + output = (_4_valueOrError0).PropagateFailure() + return output + } + var _5_newItems _dafny.Sequence + _ = _5_newItems + _5_newItems = (_4_valueOrError0).Extract().(_dafny.Sequence) + var _6_valueOrError1 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _6_valueOrError1 + _6_valueOrError1 = m_Wrappers.Companion_Default___.Need((_dafny.IntOfUint32((_5_newItems).Cardinality())).Cmp(m_StandardLibrary_UInt.Companion_Default___.INT32__MAX__LIMIT()) < 0, m_DynamoDbEncryptionUtil.Companion_Default___.E(_dafny.SeqOfString("This is impossible."))) + if (_6_valueOrError1).IsFailure() { + output = (_6_valueOrError1).PropagateFailure() + return output + } + var _7_trimmedItems _dafny.Sequence + _ = _7_trimmedItems + _7_trimmedItems = m_Seq.Companion_Default___.Map(func(coer118 func(_dafny.Map) _dafny.Map) func(interface{}) interface{} { + return func(arg146 interface{}) interface{} { + return coer118(arg146.(_dafny.Map)) + } + }(func(_8_i _dafny.Map) _dafny.Map { + return Companion_Default___.DoRemoveBeacons(_8_i) + }), _5_newItems) + var _9_count m_Wrappers.Option + _ = _9_count + if ((resp).Dtor_Count()).Is_Some() { + _9_count = m_Wrappers.Companion_Option_.Create_Some_(int32((_7_trimmedItems).Cardinality())) + } else { + _9_count = m_Wrappers.Companion_Option_.Create_None_() + } + var _pat_let_tv1 = _9_count + _ = _pat_let_tv1 + var _pat_let_tv2 = _7_trimmedItems + _ = _pat_let_tv2 + output = m_Wrappers.Companion_Result_.Create_Success_(func(_pat_let8_0 m_ComAmazonawsDynamodbTypes.QueryOutput) m_ComAmazonawsDynamodbTypes.QueryOutput { + return func(_10_dt__update__tmp_h1 m_ComAmazonawsDynamodbTypes.QueryOutput) m_ComAmazonawsDynamodbTypes.QueryOutput { + return func(_pat_let9_0 m_Wrappers.Option) m_ComAmazonawsDynamodbTypes.QueryOutput { + return func(_11_dt__update_hCount_h0 m_Wrappers.Option) m_ComAmazonawsDynamodbTypes.QueryOutput { + return func(_pat_let10_0 m_Wrappers.Option) m_ComAmazonawsDynamodbTypes.QueryOutput { + return func(_12_dt__update_hItems_h1 m_Wrappers.Option) m_ComAmazonawsDynamodbTypes.QueryOutput { + return m_ComAmazonawsDynamodbTypes.Companion_QueryOutput_.Create_QueryOutput_(_12_dt__update_hItems_h1, _11_dt__update_hCount_h0, (_10_dt__update__tmp_h1).Dtor_ScannedCount(), (_10_dt__update__tmp_h1).Dtor_LastEvaluatedKey(), (_10_dt__update__tmp_h1).Dtor_ConsumedCapacity()) + }(_pat_let10_0) + }(m_Wrappers.Companion_Option_.Create_Some_(_pat_let_tv2)) + }(_pat_let9_0) + }(_pat_let_tv1) + }(_pat_let8_0) + }(resp)) + return output + } + return output +} +func (_static *CompanionStruct_Default___) GetBeaconKeyId(search m_Wrappers.Option, keyExpr m_Wrappers.Option, filterExpr m_Wrappers.Option, values m_Wrappers.Option, names m_Wrappers.Option) m_Wrappers.Result { + if (search).Is_None() { + return m_Wrappers.Companion_Result_.Create_Success_(m_DynamoDbEncryptionUtil.Companion_MaybeKeyId_.Create_DontUseKeyId_()) + } else { + return m_DynamoDBFilterExpr.Companion_Default___.GetBeaconKeyId(((search).Dtor_value().(m_SearchableEncryptionInfo.SearchInfo)).Curr(), keyExpr, filterExpr, values, names) + } +} +func (_static *CompanionStruct_Default___) ScanInputForBeacons(search m_Wrappers.Option, actions _dafny.Map, req m_ComAmazonawsDynamodbTypes.ScanInput) m_Wrappers.Result { + var output m_Wrappers.Result = m_Wrappers.Result{} + _ = output + if (search).Is_None() { + var _0_valueOrError0 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(false) + _ = _0_valueOrError0 + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_DynamoDBFilterExpr.Companion_Default___.TestBeaconize(actions, m_Wrappers.Companion_Option_.Create_None_(), (req).Dtor_FilterExpression(), (req).Dtor_ExpressionAttributeNames()) + _0_valueOrError0 = _out0 + if (_0_valueOrError0).IsFailure() { + output = (_0_valueOrError0).PropagateFailure() + return output + } + var _1___v1 bool + _ = _1___v1 + _1___v1 = (_0_valueOrError0).Extract().(bool) + output = m_Wrappers.Companion_Result_.Create_Success_(req) + return output + } else { + var _2_valueOrError1 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_DynamoDbEncryptionUtil.Companion_MaybeKeyId_.Default()) + _ = _2_valueOrError1 + _2_valueOrError1 = m_DynamoDBFilterExpr.Companion_Default___.GetBeaconKeyId(((search).Dtor_value().(m_SearchableEncryptionInfo.SearchInfo)).Curr(), m_Wrappers.Companion_Option_.Create_None_(), (req).Dtor_FilterExpression(), (req).Dtor_ExpressionAttributeValues(), (req).Dtor_ExpressionAttributeNames()) + if (_2_valueOrError1).IsFailure() { + output = (_2_valueOrError1).PropagateFailure() + return output + } + var _3_keyId m_DynamoDbEncryptionUtil.MaybeKeyId + _ = _3_keyId + _3_keyId = (_2_valueOrError1).Extract().(m_DynamoDbEncryptionUtil.MaybeKeyId) + var _4_context m_DynamoDBFilterExpr.ExprContext + _ = _4_context + _4_context = m_DynamoDBFilterExpr.Companion_ExprContext_.Create_ExprContext_(m_Wrappers.Companion_Option_.Create_None_(), (req).Dtor_FilterExpression(), (req).Dtor_ExpressionAttributeValues(), (req).Dtor_ExpressionAttributeNames()) + var _5_valueOrError2 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_DynamoDBFilterExpr.Companion_ExprContext_.Default()) + _ = _5_valueOrError2 + var _out1 m_Wrappers.Result + _ = _out1 + _out1 = m_DynamoDBFilterExpr.Companion_Default___.Beaconize(((search).Dtor_value().(m_SearchableEncryptionInfo.SearchInfo)).Curr(), _4_context, _3_keyId, false) + _5_valueOrError2 = _out1 + if (_5_valueOrError2).IsFailure() { + output = (_5_valueOrError2).PropagateFailure() + return output + } + var _6_newContext m_DynamoDBFilterExpr.ExprContext + _ = _6_newContext + _6_newContext = (_5_valueOrError2).Extract().(m_DynamoDBFilterExpr.ExprContext) + var _pat_let_tv0 = _6_newContext + _ = _pat_let_tv0 + var _pat_let_tv1 = _6_newContext + _ = _pat_let_tv1 + var _pat_let_tv2 = _6_newContext + _ = _pat_let_tv2 + output = m_Wrappers.Companion_Result_.Create_Success_(func(_pat_let11_0 m_ComAmazonawsDynamodbTypes.ScanInput) m_ComAmazonawsDynamodbTypes.ScanInput { + return func(_7_dt__update__tmp_h0 m_ComAmazonawsDynamodbTypes.ScanInput) m_ComAmazonawsDynamodbTypes.ScanInput { + return func(_pat_let12_0 m_Wrappers.Option) m_ComAmazonawsDynamodbTypes.ScanInput { + return func(_8_dt__update_hExpressionAttributeValues_h0 m_Wrappers.Option) m_ComAmazonawsDynamodbTypes.ScanInput { + return func(_pat_let13_0 m_Wrappers.Option) m_ComAmazonawsDynamodbTypes.ScanInput { + return func(_9_dt__update_hExpressionAttributeNames_h0 m_Wrappers.Option) m_ComAmazonawsDynamodbTypes.ScanInput { + return func(_pat_let14_0 m_Wrappers.Option) m_ComAmazonawsDynamodbTypes.ScanInput { + return func(_10_dt__update_hFilterExpression_h0 m_Wrappers.Option) m_ComAmazonawsDynamodbTypes.ScanInput { + return m_ComAmazonawsDynamodbTypes.Companion_ScanInput_.Create_ScanInput_((_7_dt__update__tmp_h0).Dtor_TableName(), (_7_dt__update__tmp_h0).Dtor_IndexName(), (_7_dt__update__tmp_h0).Dtor_AttributesToGet(), (_7_dt__update__tmp_h0).Dtor_Limit(), (_7_dt__update__tmp_h0).Dtor_Select(), (_7_dt__update__tmp_h0).Dtor_ScanFilter(), (_7_dt__update__tmp_h0).Dtor_ConditionalOperator(), (_7_dt__update__tmp_h0).Dtor_ExclusiveStartKey(), (_7_dt__update__tmp_h0).Dtor_ReturnConsumedCapacity(), (_7_dt__update__tmp_h0).Dtor_TotalSegments(), (_7_dt__update__tmp_h0).Dtor_Segment(), (_7_dt__update__tmp_h0).Dtor_ProjectionExpression(), _10_dt__update_hFilterExpression_h0, _9_dt__update_hExpressionAttributeNames_h0, _8_dt__update_hExpressionAttributeValues_h0, (_7_dt__update__tmp_h0).Dtor_ConsistentRead()) + }(_pat_let14_0) + }((_pat_let_tv2).Dtor_filterExpr()) + }(_pat_let13_0) + }((_pat_let_tv1).Dtor_names()) + }(_pat_let12_0) + }((_pat_let_tv0).Dtor_values()) + }(_pat_let11_0) + }(req)) + return output + } + return output +} +func (_static *CompanionStruct_Default___) ScanOutputForBeacons(search m_Wrappers.Option, req m_ComAmazonawsDynamodbTypes.ScanInput, resp m_ComAmazonawsDynamodbTypes.ScanOutput) m_Wrappers.Result { + var ret m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_ComAmazonawsDynamodbTypes.Companion_ScanOutput_.Default()) + _ = ret + if (search).Is_None() { + var _0_trimmedItems _dafny.Sequence + _ = _0_trimmedItems + _0_trimmedItems = m_Seq.Companion_Default___.Map(func(coer119 func(_dafny.Map) _dafny.Map) func(interface{}) interface{} { + return func(arg147 interface{}) interface{} { + return coer119(arg147.(_dafny.Map)) + } + }(func(_1_i _dafny.Map) _dafny.Map { + return Companion_Default___.DoRemoveBeacons(_1_i) + }), ((resp).Dtor_Items()).Dtor_value().(_dafny.Sequence)) + var _pat_let_tv0 = _0_trimmedItems + _ = _pat_let_tv0 + ret = m_Wrappers.Companion_Result_.Create_Success_(func(_pat_let15_0 m_ComAmazonawsDynamodbTypes.ScanOutput) m_ComAmazonawsDynamodbTypes.ScanOutput { + return func(_2_dt__update__tmp_h0 m_ComAmazonawsDynamodbTypes.ScanOutput) m_ComAmazonawsDynamodbTypes.ScanOutput { + return func(_pat_let16_0 m_Wrappers.Option) m_ComAmazonawsDynamodbTypes.ScanOutput { + return func(_3_dt__update_hItems_h0 m_Wrappers.Option) m_ComAmazonawsDynamodbTypes.ScanOutput { + return m_ComAmazonawsDynamodbTypes.Companion_ScanOutput_.Create_ScanOutput_(_3_dt__update_hItems_h0, (_2_dt__update__tmp_h0).Dtor_Count(), (_2_dt__update__tmp_h0).Dtor_ScannedCount(), (_2_dt__update__tmp_h0).Dtor_LastEvaluatedKey(), (_2_dt__update__tmp_h0).Dtor_ConsumedCapacity()) + }(_pat_let16_0) + }(m_Wrappers.Companion_Option_.Create_Some_(_pat_let_tv0)) + }(_pat_let15_0) + }(resp)) + return ret + } else { + var _4_valueOrError0 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = _4_valueOrError0 + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_DynamoDBFilterExpr.Companion_Default___.FilterResults(((search).Dtor_value().(m_SearchableEncryptionInfo.SearchInfo)).Curr(), ((resp).Dtor_Items()).Dtor_value().(_dafny.Sequence), m_Wrappers.Companion_Option_.Create_None_(), (req).Dtor_FilterExpression(), (req).Dtor_ExpressionAttributeNames(), (req).Dtor_ExpressionAttributeValues()) + _4_valueOrError0 = _out0 + if (_4_valueOrError0).IsFailure() { + ret = (_4_valueOrError0).PropagateFailure() + return ret + } + var _5_newItems _dafny.Sequence + _ = _5_newItems + _5_newItems = (_4_valueOrError0).Extract().(_dafny.Sequence) + var _6_valueOrError1 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _6_valueOrError1 + _6_valueOrError1 = m_Wrappers.Companion_Default___.Need((_dafny.IntOfUint32((_5_newItems).Cardinality())).Cmp(m_StandardLibrary_UInt.Companion_Default___.INT32__MAX__LIMIT()) < 0, m_DynamoDbEncryptionUtil.Companion_Default___.E(_dafny.SeqOfString("This is impossible."))) + if (_6_valueOrError1).IsFailure() { + ret = (_6_valueOrError1).PropagateFailure() + return ret + } + var _7_trimmedItems _dafny.Sequence + _ = _7_trimmedItems + _7_trimmedItems = m_Seq.Companion_Default___.Map(func(coer120 func(_dafny.Map) _dafny.Map) func(interface{}) interface{} { + return func(arg148 interface{}) interface{} { + return coer120(arg148.(_dafny.Map)) + } + }(func(_8_i _dafny.Map) _dafny.Map { + return Companion_Default___.DoRemoveBeacons(_8_i) + }), _5_newItems) + var _9_count m_Wrappers.Option + _ = _9_count + if ((resp).Dtor_Count()).Is_Some() { + _9_count = m_Wrappers.Companion_Option_.Create_Some_(int32((_7_trimmedItems).Cardinality())) + } else { + _9_count = m_Wrappers.Companion_Option_.Create_None_() + } + var _pat_let_tv1 = _9_count + _ = _pat_let_tv1 + var _pat_let_tv2 = _7_trimmedItems + _ = _pat_let_tv2 + ret = m_Wrappers.Companion_Result_.Create_Success_(func(_pat_let17_0 m_ComAmazonawsDynamodbTypes.ScanOutput) m_ComAmazonawsDynamodbTypes.ScanOutput { + return func(_10_dt__update__tmp_h1 m_ComAmazonawsDynamodbTypes.ScanOutput) m_ComAmazonawsDynamodbTypes.ScanOutput { + return func(_pat_let18_0 m_Wrappers.Option) m_ComAmazonawsDynamodbTypes.ScanOutput { + return func(_11_dt__update_hCount_h0 m_Wrappers.Option) m_ComAmazonawsDynamodbTypes.ScanOutput { + return func(_pat_let19_0 m_Wrappers.Option) m_ComAmazonawsDynamodbTypes.ScanOutput { + return func(_12_dt__update_hItems_h1 m_Wrappers.Option) m_ComAmazonawsDynamodbTypes.ScanOutput { + return m_ComAmazonawsDynamodbTypes.Companion_ScanOutput_.Create_ScanOutput_(_12_dt__update_hItems_h1, _11_dt__update_hCount_h0, (_10_dt__update__tmp_h1).Dtor_ScannedCount(), (_10_dt__update__tmp_h1).Dtor_LastEvaluatedKey(), (_10_dt__update__tmp_h1).Dtor_ConsumedCapacity()) + }(_pat_let19_0) + }(m_Wrappers.Companion_Option_.Create_Some_(_pat_let_tv2)) + }(_pat_let18_0) + }(_pat_let_tv1) + }(_pat_let17_0) + }(resp)) + return ret + } + return ret +} +func (_static *CompanionStruct_Default___) GetVirtualFieldsLoop(fields _dafny.Sequence, bv m_SearchableEncryptionInfo.BeaconVersion, item _dafny.Map, results _dafny.Map) m_Wrappers.Result { + goto TAIL_CALL_START +TAIL_CALL_START: + if (_dafny.IntOfUint32((fields).Cardinality())).Sign() == 0 { + return m_Wrappers.Companion_Result_.Create_Success_(results) + } else { + var _0_valueOrError0 m_Wrappers.Result = m_DdbVirtualFields.Companion_Default___.GetVirtField(((bv).Dtor_virtualFields()).Get((fields).Select(0).(_dafny.Sequence)).(m_DdbVirtualFields.VirtField), item) + _ = _0_valueOrError0 + if (_0_valueOrError0).IsFailure() { + return (_0_valueOrError0).PropagateFailure() + } else { + var _1_optValue m_Wrappers.Option = (_0_valueOrError0).Extract().(m_Wrappers.Option) + _ = _1_optValue + if (_1_optValue).Is_Some() { + var _in0 _dafny.Sequence = (fields).Drop(1) + _ = _in0 + var _in1 m_SearchableEncryptionInfo.BeaconVersion = bv + _ = _in1 + var _in2 _dafny.Map = item + _ = _in2 + var _in3 _dafny.Map = (results).Update((fields).Select(0).(_dafny.Sequence), (_1_optValue).Dtor_value().(_dafny.Sequence)) + _ = _in3 + fields = _in0 + bv = _in1 + item = _in2 + results = _in3 + goto TAIL_CALL_START + } else { + var _in4 _dafny.Sequence = (fields).Drop(1) + _ = _in4 + var _in5 m_SearchableEncryptionInfo.BeaconVersion = bv + _ = _in5 + var _in6 _dafny.Map = item + _ = _in6 + var _in7 _dafny.Map = results + _ = _in7 + fields = _in4 + bv = _in5 + item = _in6 + results = _in7 + goto TAIL_CALL_START + } + } + } +} +func (_static *CompanionStruct_Default___) GetVirtualFields(beaconVersion m_SearchableEncryptionInfo.BeaconVersion, item _dafny.Map) m_Wrappers.Result { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptyMap) + _ = output + var _0_fieldNames _dafny.Sequence + _ = _0_fieldNames + _0_fieldNames = m_SortedSets.SetToOrderedSequence2(((beaconVersion).Dtor_virtualFields()).Keys(), func(coer121 func(_dafny.Char, _dafny.Char) bool) func(interface{}, interface{}) bool { + return func(arg149 interface{}, arg150 interface{}) bool { + return coer121(arg149.(_dafny.Char), arg150.(_dafny.Char)) + } + }(m_DynamoDbEncryptionUtil.Companion_Default___.CharLess)) + output = Companion_Default___.GetVirtualFieldsLoop(_0_fieldNames, beaconVersion, item, _dafny.NewMapBuilder().ToMap()) + return output +} +func (_static *CompanionStruct_Default___) GetCompoundBeaconsLoop(fields _dafny.Sequence, bv m_SearchableEncryptionInfo.BeaconVersion, item _dafny.Map, results _dafny.Map) m_Wrappers.Result { + goto TAIL_CALL_START +TAIL_CALL_START: + if (_dafny.IntOfUint32((fields).Cardinality())).Sign() == 0 { + return m_Wrappers.Companion_Result_.Create_Success_(results) + } else { + var _0_beacon m_SearchableEncryptionInfo.Beacon = ((bv).Dtor_beacons()).Get((fields).Select(0).(_dafny.Sequence)).(m_SearchableEncryptionInfo.Beacon) + _ = _0_beacon + if (_0_beacon).Is_Compound() { + var _1_valueOrError0 m_Wrappers.Result = ((_0_beacon).Dtor_cmp()).GetNaked(item, (bv).Dtor_virtualFields()) + _ = _1_valueOrError0 + if (_1_valueOrError0).IsFailure() { + return (_1_valueOrError0).PropagateFailure() + } else { + var _2_optValue m_Wrappers.Option = (_1_valueOrError0).Extract().(m_Wrappers.Option) + _ = _2_optValue + if (_2_optValue).Is_Some() { + var _in0 _dafny.Sequence = (fields).Drop(1) + _ = _in0 + var _in1 m_SearchableEncryptionInfo.BeaconVersion = bv + _ = _in1 + var _in2 _dafny.Map = item + _ = _in2 + var _in3 _dafny.Map = (results).Update((fields).Select(0).(_dafny.Sequence), (_2_optValue).Dtor_value().(_dafny.Sequence)) + _ = _in3 + fields = _in0 + bv = _in1 + item = _in2 + results = _in3 + goto TAIL_CALL_START + } else { + var _in4 _dafny.Sequence = (fields).Drop(1) + _ = _in4 + var _in5 m_SearchableEncryptionInfo.BeaconVersion = bv + _ = _in5 + var _in6 _dafny.Map = item + _ = _in6 + var _in7 _dafny.Map = results + _ = _in7 + fields = _in4 + bv = _in5 + item = _in6 + results = _in7 + goto TAIL_CALL_START + } + } + } else { + var _in8 _dafny.Sequence = (fields).Drop(1) + _ = _in8 + var _in9 m_SearchableEncryptionInfo.BeaconVersion = bv + _ = _in9 + var _in10 _dafny.Map = item + _ = _in10 + var _in11 _dafny.Map = results + _ = _in11 + fields = _in8 + bv = _in9 + item = _in10 + results = _in11 + goto TAIL_CALL_START + } + } +} +func (_static *CompanionStruct_Default___) GetCompoundBeacons(beaconVersion m_SearchableEncryptionInfo.BeaconVersion, item _dafny.Map) m_Wrappers.Result { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptyMap) + _ = output + var _0_beaconNames _dafny.Sequence + _ = _0_beaconNames + _0_beaconNames = m_SortedSets.SetToOrderedSequence2(((beaconVersion).Dtor_beacons()).Keys(), func(coer122 func(_dafny.Char, _dafny.Char) bool) func(interface{}, interface{}) bool { + return func(arg151 interface{}, arg152 interface{}) bool { + return coer122(arg151.(_dafny.Char), arg152.(_dafny.Char)) + } + }(m_DynamoDbEncryptionUtil.Companion_Default___.CharLess)) + output = Companion_Default___.GetCompoundBeaconsLoop(_0_beaconNames, beaconVersion, item, _dafny.NewMapBuilder().ToMap()) + return output +} +func (_static *CompanionStruct_Default___) VersionTag() _dafny.Sequence { + return _dafny.Companion_Sequence_.Concatenate(m_DynamoDbEncryptionUtil.Companion_Default___.VersionPrefix(), _dafny.SeqOfString("1")) +} + +// End of class Default__ diff --git a/customer-preview/ddb-esdk/DynamoDbEncryption/DynamoDbEncryption.go b/customer-preview/ddb-esdk/DynamoDbEncryption/DynamoDbEncryption.go new file mode 100644 index 000000000..eeab29844 --- /dev/null +++ b/customer-preview/ddb-esdk/DynamoDbEncryption/DynamoDbEncryption.go @@ -0,0 +1,419 @@ +// Package DynamoDbEncryption +// Dafny module DynamoDbEncryption compiled into Go + +package DynamoDbEncryption + +import ( + os "os" + + m_ComAmazonawsDynamodbTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/ComAmazonawsDynamodbTypes" + m_Com_Amazonaws_Dynamodb "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/Com_Amazonaws_Dynamodb" + m_ComAmazonawsKmsTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/ComAmazonawsKmsTypes" + m_Com_Amazonaws_Kms "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/Com_Amazonaws_Kms" + m_AlgorithmSuites "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AlgorithmSuites" + m_AwsArnParsing "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsArnParsing" + m_AwsCryptographyKeyStoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreOperations" + m_AwsCryptographyKeyStoreTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreTypes" + m_AwsCryptographyMaterialProvidersOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersOperations" + m_AwsCryptographyMaterialProvidersTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersTypes" + m_AwsKmsDiscoveryKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsDiscoveryKeyring" + m_AwsKmsEcdhKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsEcdhKeyring" + m_AwsKmsHierarchicalKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsHierarchicalKeyring" + m_AwsKmsKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsKeyring" + m_AwsKmsMrkAreUnique "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkAreUnique" + m_AwsKmsMrkDiscoveryKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkDiscoveryKeyring" + m_AwsKmsMrkKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkKeyring" + m_AwsKmsMrkMatchForDecrypt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkMatchForDecrypt" + m_AwsKmsRsaKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsRsaKeyring" + m_AwsKmsUtils "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsUtils" + m_CMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CMM" + m_CacheConstants "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CacheConstants" + m_CanonicalEncryptionContext "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CanonicalEncryptionContext" + m_Commitment "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Commitment" + m_Constants "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Constants" + m_CreateKeyStoreTable "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeyStoreTable" + m_CreateKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeys" + m_DDBKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DDBKeystoreOperations" + m_DefaultCMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DefaultCMM" + m_DefaultClientSupplier "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DefaultClientSupplier" + m_Defaults "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Defaults" + m_DiscoveryMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DiscoveryMultiKeyring" + m_EcdhEdkWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/EcdhEdkWrapping" + m_EdkWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/EdkWrapping" + m_ErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/ErrorMessages" + m_GetKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/GetKeys" + m_IntermediateKeyWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/IntermediateKeyWrapping" + m_KMSKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KMSKeystoreOperations" + m_KeyStore "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStore" + m_KeyStoreErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStoreErrorMessages" + m_Keyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Keyring" + m_KmsArn "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KmsArn" + m_LocalCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/LocalCMC" + m_MaterialProviders "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MaterialProviders" + m_MaterialWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MaterialWrapping" + m_Materials "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Materials" + m_MrkAwareDiscoveryMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MrkAwareDiscoveryMultiKeyring" + m_MrkAwareStrictMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MrkAwareStrictMultiKeyring" + m_MultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MultiKeyring" + m_RawAESKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawAESKeyring" + m_RawECDHKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawECDHKeyring" + m_RawRSAKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawRSAKeyring" + m_RequiredEncryptionContextCMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RequiredEncryptionContextCMM" + m_StormTracker "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StormTracker" + m_StormTrackingCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StormTrackingCMC" + m_StrictMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StrictMultiKeyring" + m_Structure "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Structure" + m_SynchronizedLocalCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/SynchronizedLocalCMC" + m_Utils "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Utils" + m_AtomicPrimitives "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AtomicPrimitives" + m_AwsCryptographyPrimitivesOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesOperations" + m_AwsCryptographyPrimitivesTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesTypes" + m_Digest "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Digest" + m_HKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/HKDF" + m_KdfCtr "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/KdfCtr" + m_Random "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Random" + m_WrappedHKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHKDF" + m_WrappedHMAC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHMAC" + m_Actions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Actions" + m_Base64 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64" + m_Base64Lemmas "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64Lemmas" + m_BoundedInts "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/BoundedInts" + m_DivInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternals" + m_DivInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternalsNonlinear" + m_DivMod "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivMod" + m_FileIO "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FileIO" + m_FloatCompare "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FloatCompare" + m_Functions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Functions" + m_GeneralInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GeneralInternals" + m_GetOpt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GetOpt" + m_HexStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/HexStrings" + m_Logarithm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Logarithm" + m__Math "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Math_" + m_ModInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternals" + m_ModInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternalsNonlinear" + m_Mul "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Mul" + m_MulInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternals" + m_MulInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternalsNonlinear" + m_Power "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Power" + m_Relations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Relations" + m_Seq "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq" + m_Seq_MergeSort "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq_MergeSort" + m_Sorting "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Sorting" + m_StandardLibrary "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary" + m_StandardLibraryInterop "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibraryInterop" + m_StandardLibrary_Sequence "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_Sequence" + m_StandardLibrary_String "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_String" + m_StandardLibrary_UInt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_UInt" + m_Streams "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Streams" + m_UnicodeStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UnicodeStrings" + m__Unicode "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Unicode_" + m_Utf16EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf16EncodingForm" + m_Utf8EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf8EncodingForm" + m_Wrappers "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers" + m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorOperations "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorOperations" + m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes" + m_AwsCryptographyDbEncryptionSdkDynamoDbOperations "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbOperations" + m_AwsCryptographyDbEncryptionSdkDynamoDbTypes "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbTypes" + m_AwsCryptographyDbEncryptionSdkStructuredEncryptionOperations "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkStructuredEncryptionOperations" + m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes" + m_Canonize "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/Canonize" + m_DynamoDbEncryptionBranchKeyIdSupplier "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbEncryptionBranchKeyIdSupplier" + m_DynamoDbEncryptionUtil "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbEncryptionUtil" + m_DynamoDbItemEncryptor "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbItemEncryptor" + m_DynamoDbItemEncryptorUtil "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbItemEncryptorUtil" + m_DynamoDbNormalizeNumber "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbNormalizeNumber" + m_DynamoToStruct "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoToStruct" + m_InternalLegacyOverride "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/InternalLegacyOverride" + m__Maps "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/Maps_" + m_Sets "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/Sets" + m_SortCanon "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/SortCanon" + m_StructuredEncryption "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryption" + m_StructuredEncryptionCrypt "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionCrypt" + m_StructuredEncryptionFooter "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionFooter" + m_StructuredEncryptionHeader "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionHeader" + m_StructuredEncryptionPaths "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionPaths" + m_StructuredEncryptionUtil "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionUtil" + m__System "github.com/dafny-lang/DafnyRuntimeGo/v4/System_" + _dafny "github.com/dafny-lang/DafnyRuntimeGo/v4/dafny" +) + +var _ = os.Args +var _ _dafny.Dummy__ +var _ m__System.Dummy__ +var _ m_Wrappers.Dummy__ +var _ m_BoundedInts.Dummy__ +var _ m_StandardLibrary_UInt.Dummy__ +var _ m_StandardLibrary_Sequence.Dummy__ +var _ m_StandardLibrary_String.Dummy__ +var _ m_StandardLibrary.Dummy__ +var _ m_AwsCryptographyPrimitivesTypes.Dummy__ +var _ m_Random.Dummy__ +var _ m_Digest.Dummy__ +var _ m_WrappedHMAC.Dummy__ +var _ m_HKDF.Dummy__ +var _ m_WrappedHKDF.Dummy__ +var _ m_KdfCtr.Dummy__ +var _ m_AwsCryptographyPrimitivesOperations.Dummy__ +var _ m_AtomicPrimitives.Dummy__ +var _ m_ComAmazonawsDynamodbTypes.Dummy__ +var _ m_ComAmazonawsKmsTypes.Dummy__ +var _ m_AwsCryptographyKeyStoreTypes.Dummy__ +var _ m_AwsCryptographyMaterialProvidersTypes.Dummy__ +var _ m_Base64.Dummy__ +var _ m_AlgorithmSuites.Dummy__ +var _ m_Materials.Dummy__ +var _ m_Keyring.Dummy__ +var _ m_Relations.Dummy__ +var _ m_Seq_MergeSort.Dummy__ +var _ m__Math.Dummy__ +var _ m_Seq.Dummy__ +var _ m_MultiKeyring.Dummy__ +var _ m_AwsArnParsing.Dummy__ +var _ m_AwsKmsMrkAreUnique.Dummy__ +var _ m_Actions.Dummy__ +var _ m_AwsKmsMrkMatchForDecrypt.Dummy__ +var _ m_AwsKmsUtils.Dummy__ +var _ m_Constants.Dummy__ +var _ m_MaterialWrapping.Dummy__ +var _ m_CanonicalEncryptionContext.Dummy__ +var _ m_IntermediateKeyWrapping.Dummy__ +var _ m_EdkWrapping.Dummy__ +var _ m_ErrorMessages.Dummy__ +var _ m_AwsKmsKeyring.Dummy__ +var _ m_StrictMultiKeyring.Dummy__ +var _ m_AwsKmsDiscoveryKeyring.Dummy__ +var _ m_Com_Amazonaws_Kms.Dummy__ +var _ m_Com_Amazonaws_Dynamodb.Dummy__ +var _ m_DiscoveryMultiKeyring.Dummy__ +var _ m_AwsKmsMrkDiscoveryKeyring.Dummy__ +var _ m_MrkAwareDiscoveryMultiKeyring.Dummy__ +var _ m_AwsKmsMrkKeyring.Dummy__ +var _ m_MrkAwareStrictMultiKeyring.Dummy__ +var _ m_LocalCMC.Dummy__ +var _ m_SynchronizedLocalCMC.Dummy__ +var _ m_StormTracker.Dummy__ +var _ m_StormTrackingCMC.Dummy__ +var _ m_CacheConstants.Dummy__ +var _ m_AwsKmsHierarchicalKeyring.Dummy__ +var _ m_AwsKmsRsaKeyring.Dummy__ +var _ m_EcdhEdkWrapping.Dummy__ +var _ m_RawECDHKeyring.Dummy__ +var _ m_AwsKmsEcdhKeyring.Dummy__ +var _ m_RawAESKeyring.Dummy__ +var _ m_RawRSAKeyring.Dummy__ +var _ m_CMM.Dummy__ +var _ m_Defaults.Dummy__ +var _ m_Commitment.Dummy__ +var _ m_DefaultCMM.Dummy__ +var _ m_DefaultClientSupplier.Dummy__ +var _ m_Utils.Dummy__ +var _ m_RequiredEncryptionContextCMM.Dummy__ +var _ m_AwsCryptographyMaterialProvidersOperations.Dummy__ +var _ m_MaterialProviders.Dummy__ +var _ m_KeyStoreErrorMessages.Dummy__ +var _ m_KmsArn.Dummy__ +var _ m_Structure.Dummy__ +var _ m_KMSKeystoreOperations.Dummy__ +var _ m_DDBKeystoreOperations.Dummy__ +var _ m_CreateKeys.Dummy__ +var _ m_CreateKeyStoreTable.Dummy__ +var _ m_GetKeys.Dummy__ +var _ m_AwsCryptographyKeyStoreOperations.Dummy__ +var _ m_KeyStore.Dummy__ +var _ m__Unicode.Dummy__ +var _ m_Functions.Dummy__ +var _ m_Utf8EncodingForm.Dummy__ +var _ m_Utf16EncodingForm.Dummy__ +var _ m_UnicodeStrings.Dummy__ +var _ m_FileIO.Dummy__ +var _ m_GeneralInternals.Dummy__ +var _ m_MulInternalsNonlinear.Dummy__ +var _ m_MulInternals.Dummy__ +var _ m_Mul.Dummy__ +var _ m_ModInternalsNonlinear.Dummy__ +var _ m_DivInternalsNonlinear.Dummy__ +var _ m_ModInternals.Dummy__ +var _ m_DivInternals.Dummy__ +var _ m_DivMod.Dummy__ +var _ m_Power.Dummy__ +var _ m_Logarithm.Dummy__ +var _ m_StandardLibraryInterop.Dummy__ +var _ m_Streams.Dummy__ +var _ m_Sorting.Dummy__ +var _ m_HexStrings.Dummy__ +var _ m_GetOpt.Dummy__ +var _ m_FloatCompare.Dummy__ +var _ m_Base64Lemmas.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Dummy__ +var _ m_StructuredEncryptionUtil.Dummy__ +var _ m_Sets.Dummy__ +var _ m_StructuredEncryptionPaths.Dummy__ +var _ m_StructuredEncryptionHeader.Dummy__ +var _ m_StructuredEncryptionFooter.Dummy__ +var _ m_SortCanon.Dummy__ +var _ m_Canonize.Dummy__ +var _ m_StructuredEncryptionCrypt.Dummy__ +var _ m__Maps.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkStructuredEncryptionOperations.Dummy__ +var _ m_StructuredEncryption.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Dummy__ +var _ m_DynamoDbEncryptionUtil.Dummy__ +var _ m_DynamoDbNormalizeNumber.Dummy__ +var _ m_DynamoToStruct.Dummy__ +var _ m_DynamoDbItemEncryptorUtil.Dummy__ +var _ m_InternalLegacyOverride.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorOperations.Dummy__ +var _ m_DynamoDbItemEncryptor.Dummy__ +var _ m_DynamoDbEncryptionBranchKeyIdSupplier.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkDynamoDbOperations.Dummy__ + +type Dummy__ struct{} + +// Definition of class Default__ +type Default__ struct { + dummy byte +} + +func New_Default___() *Default__ { + _this := Default__{} + + return &_this +} + +type CompanionStruct_Default___ struct { +} + +var Companion_Default___ = CompanionStruct_Default___{} + +func (_this *Default__) Equals(other *Default__) bool { + return _this == other +} + +func (_this *Default__) EqualsGeneric(x interface{}) bool { + other, ok := x.(*Default__) + return ok && _this.Equals(other) +} + +func (*Default__) String() string { + return "DynamoDbEncryption.Default__" +} +func (_this *Default__) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = &Default__{} + +func (_static *CompanionStruct_Default___) DefaultDynamoDbEncryptionConfig() m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.DynamoDbEncryptionConfig { + return m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_DynamoDbEncryptionConfig_.Create_DynamoDbEncryptionConfig_() +} +func (_static *CompanionStruct_Default___) DynamoDbEncryption(config m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.DynamoDbEncryptionConfig) m_Wrappers.Result { + var res m_Wrappers.Result = m_Wrappers.Result{} + _ = res + var _0_internalConfig m_AwsCryptographyDbEncryptionSdkDynamoDbOperations.Config + _ = _0_internalConfig + _0_internalConfig = m_AwsCryptographyDbEncryptionSdkDynamoDbOperations.Companion_Config_.Create_Config_() + var _1_client *DynamoDbEncryptionClient + _ = _1_client + var _nw0 *DynamoDbEncryptionClient = New_DynamoDbEncryptionClient_() + _ = _nw0 + _nw0.Ctor__(_0_internalConfig) + _1_client = _nw0 + res = m_Wrappers.Companion_Result_.Create_Success_(_1_client) + return res + return res +} +func (_static *CompanionStruct_Default___) CreateSuccessOfClient(client m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.IDynamoDbEncryptionClient) m_Wrappers.Result { + return m_Wrappers.Companion_Result_.Create_Success_(client) +} +func (_static *CompanionStruct_Default___) CreateFailureOfError(error_ m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Error) m_Wrappers.Result { + return m_Wrappers.Companion_Result_.Create_Failure_(error_) +} + +// End of class Default__ + +// Definition of class DynamoDbEncryptionClient +type DynamoDbEncryptionClient struct { + _config m_AwsCryptographyDbEncryptionSdkDynamoDbOperations.Config +} + +func New_DynamoDbEncryptionClient_() *DynamoDbEncryptionClient { + _this := DynamoDbEncryptionClient{} + + _this._config = m_AwsCryptographyDbEncryptionSdkDynamoDbOperations.Companion_Config_.Default() + return &_this +} + +type CompanionStruct_DynamoDbEncryptionClient_ struct { +} + +var Companion_DynamoDbEncryptionClient_ = CompanionStruct_DynamoDbEncryptionClient_{} + +func (_this *DynamoDbEncryptionClient) Equals(other *DynamoDbEncryptionClient) bool { + return _this == other +} + +func (_this *DynamoDbEncryptionClient) EqualsGeneric(x interface{}) bool { + other, ok := x.(*DynamoDbEncryptionClient) + return ok && _this.Equals(other) +} + +func (*DynamoDbEncryptionClient) String() string { + return "DynamoDbEncryption.DynamoDbEncryptionClient" +} + +func Type_DynamoDbEncryptionClient_() _dafny.TypeDescriptor { + return type_DynamoDbEncryptionClient_{} +} + +type type_DynamoDbEncryptionClient_ struct { +} + +func (_this type_DynamoDbEncryptionClient_) Default() interface{} { + return (*DynamoDbEncryptionClient)(nil) +} + +func (_this type_DynamoDbEncryptionClient_) String() string { + return "DynamoDbEncryption.DynamoDbEncryptionClient" +} +func (_this *DynamoDbEncryptionClient) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_IDynamoDbEncryptionClient_.TraitID_} +} + +var _ m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.IDynamoDbEncryptionClient = &DynamoDbEncryptionClient{} +var _ _dafny.TraitOffspring = &DynamoDbEncryptionClient{} + +func (_this *DynamoDbEncryptionClient) Ctor__(config m_AwsCryptographyDbEncryptionSdkDynamoDbOperations.Config) { + { + (_this)._config = config + } +} +func (_this *DynamoDbEncryptionClient) CreateDynamoDbEncryptionBranchKeyIdSupplier(input m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.CreateDynamoDbEncryptionBranchKeyIdSupplierInput) m_Wrappers.Result { + { + var output m_Wrappers.Result = m_Wrappers.Result{} + _ = output + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_AwsCryptographyDbEncryptionSdkDynamoDbOperations.Companion_Default___.CreateDynamoDbEncryptionBranchKeyIdSupplier((_this).Config(), input) + output = _out0 + return output + } +} +func (_this *DynamoDbEncryptionClient) GetEncryptedDataKeyDescription(input m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.GetEncryptedDataKeyDescriptionInput) m_Wrappers.Result { + { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_GetEncryptedDataKeyDescriptionOutput_.Default()) + _ = output + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_AwsCryptographyDbEncryptionSdkDynamoDbOperations.Companion_Default___.GetEncryptedDataKeyDescription((_this).Config(), input) + output = _out0 + return output + } +} +func (_this *DynamoDbEncryptionClient) Config() m_AwsCryptographyDbEncryptionSdkDynamoDbOperations.Config { + { + return _this._config + } +} + +// End of class DynamoDbEncryptionClient diff --git a/customer-preview/ddb-esdk/DynamoDbEncryptionBranchKeyIdSupplier/DynamoDbEncryptionBranchKeyIdSupplier.go b/customer-preview/ddb-esdk/DynamoDbEncryptionBranchKeyIdSupplier/DynamoDbEncryptionBranchKeyIdSupplier.go new file mode 100644 index 000000000..0d2f9f8d7 --- /dev/null +++ b/customer-preview/ddb-esdk/DynamoDbEncryptionBranchKeyIdSupplier/DynamoDbEncryptionBranchKeyIdSupplier.go @@ -0,0 +1,429 @@ +// Package DynamoDbEncryptionBranchKeyIdSupplier +// Dafny module DynamoDbEncryptionBranchKeyIdSupplier compiled into Go + +package DynamoDbEncryptionBranchKeyIdSupplier + +import ( + os "os" + + m_ComAmazonawsDynamodbTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/ComAmazonawsDynamodbTypes" + m_Com_Amazonaws_Dynamodb "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/Com_Amazonaws_Dynamodb" + m_ComAmazonawsKmsTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/ComAmazonawsKmsTypes" + m_Com_Amazonaws_Kms "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/Com_Amazonaws_Kms" + m_AlgorithmSuites "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AlgorithmSuites" + m_AwsArnParsing "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsArnParsing" + m_AwsCryptographyKeyStoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreOperations" + m_AwsCryptographyKeyStoreTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreTypes" + m_AwsCryptographyMaterialProvidersOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersOperations" + m_AwsCryptographyMaterialProvidersTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersTypes" + m_AwsKmsDiscoveryKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsDiscoveryKeyring" + m_AwsKmsEcdhKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsEcdhKeyring" + m_AwsKmsHierarchicalKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsHierarchicalKeyring" + m_AwsKmsKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsKeyring" + m_AwsKmsMrkAreUnique "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkAreUnique" + m_AwsKmsMrkDiscoveryKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkDiscoveryKeyring" + m_AwsKmsMrkKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkKeyring" + m_AwsKmsMrkMatchForDecrypt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkMatchForDecrypt" + m_AwsKmsRsaKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsRsaKeyring" + m_AwsKmsUtils "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsUtils" + m_CMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CMM" + m_CacheConstants "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CacheConstants" + m_CanonicalEncryptionContext "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CanonicalEncryptionContext" + m_Commitment "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Commitment" + m_Constants "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Constants" + m_CreateKeyStoreTable "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeyStoreTable" + m_CreateKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeys" + m_DDBKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DDBKeystoreOperations" + m_DefaultCMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DefaultCMM" + m_DefaultClientSupplier "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DefaultClientSupplier" + m_Defaults "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Defaults" + m_DiscoveryMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DiscoveryMultiKeyring" + m_EcdhEdkWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/EcdhEdkWrapping" + m_EdkWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/EdkWrapping" + m_ErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/ErrorMessages" + m_GetKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/GetKeys" + m_IntermediateKeyWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/IntermediateKeyWrapping" + m_KMSKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KMSKeystoreOperations" + m_KeyStore "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStore" + m_KeyStoreErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStoreErrorMessages" + m_Keyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Keyring" + m_KmsArn "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KmsArn" + m_LocalCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/LocalCMC" + m_MaterialProviders "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MaterialProviders" + m_MaterialWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MaterialWrapping" + m_Materials "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Materials" + m_MrkAwareDiscoveryMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MrkAwareDiscoveryMultiKeyring" + m_MrkAwareStrictMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MrkAwareStrictMultiKeyring" + m_MultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MultiKeyring" + m_RawAESKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawAESKeyring" + m_RawECDHKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawECDHKeyring" + m_RawRSAKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawRSAKeyring" + m_RequiredEncryptionContextCMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RequiredEncryptionContextCMM" + m_StormTracker "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StormTracker" + m_StormTrackingCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StormTrackingCMC" + m_StrictMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StrictMultiKeyring" + m_Structure "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Structure" + m_SynchronizedLocalCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/SynchronizedLocalCMC" + m_Utils "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Utils" + m_AtomicPrimitives "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AtomicPrimitives" + m_AwsCryptographyPrimitivesOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesOperations" + m_AwsCryptographyPrimitivesTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesTypes" + m_Digest "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Digest" + m_HKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/HKDF" + m_KdfCtr "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/KdfCtr" + m_Random "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Random" + m_WrappedHKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHKDF" + m_WrappedHMAC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHMAC" + m_Actions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Actions" + m_Base64 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64" + m_Base64Lemmas "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64Lemmas" + m_BoundedInts "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/BoundedInts" + m_DivInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternals" + m_DivInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternalsNonlinear" + m_DivMod "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivMod" + m_FileIO "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FileIO" + m_FloatCompare "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FloatCompare" + m_Functions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Functions" + m_GeneralInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GeneralInternals" + m_GetOpt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GetOpt" + m_HexStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/HexStrings" + m_Logarithm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Logarithm" + m__Math "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Math_" + m_ModInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternals" + m_ModInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternalsNonlinear" + m_Mul "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Mul" + m_MulInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternals" + m_MulInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternalsNonlinear" + m_Power "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Power" + m_Relations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Relations" + m_Seq "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq" + m_Seq_MergeSort "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq_MergeSort" + m_Sorting "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Sorting" + m_StandardLibrary "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary" + m_StandardLibraryInterop "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibraryInterop" + m_StandardLibrary_Sequence "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_Sequence" + m_StandardLibrary_String "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_String" + m_StandardLibrary_UInt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_UInt" + m_Streams "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Streams" + m_UnicodeStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UnicodeStrings" + m__Unicode "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Unicode_" + m_Utf16EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf16EncodingForm" + m_Utf8EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf8EncodingForm" + m_Wrappers "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers" + m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorOperations "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorOperations" + m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes" + m_AwsCryptographyDbEncryptionSdkDynamoDbTypes "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbTypes" + m_AwsCryptographyDbEncryptionSdkStructuredEncryptionOperations "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkStructuredEncryptionOperations" + m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes" + m_Canonize "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/Canonize" + m_DynamoDbEncryptionUtil "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbEncryptionUtil" + m_DynamoDbItemEncryptor "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbItemEncryptor" + m_DynamoDbItemEncryptorUtil "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbItemEncryptorUtil" + m_DynamoDbNormalizeNumber "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbNormalizeNumber" + m_DynamoToStruct "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoToStruct" + m_InternalLegacyOverride "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/InternalLegacyOverride" + m__Maps "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/Maps_" + m_Sets "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/Sets" + m_SortCanon "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/SortCanon" + m_StructuredEncryption "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryption" + m_StructuredEncryptionCrypt "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionCrypt" + m_StructuredEncryptionFooter "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionFooter" + m_StructuredEncryptionHeader "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionHeader" + m_StructuredEncryptionPaths "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionPaths" + m_StructuredEncryptionUtil "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionUtil" + m__System "github.com/dafny-lang/DafnyRuntimeGo/v4/System_" + _dafny "github.com/dafny-lang/DafnyRuntimeGo/v4/dafny" +) + +var _ = os.Args +var _ _dafny.Dummy__ +var _ m__System.Dummy__ +var _ m_Wrappers.Dummy__ +var _ m_BoundedInts.Dummy__ +var _ m_StandardLibrary_UInt.Dummy__ +var _ m_StandardLibrary_Sequence.Dummy__ +var _ m_StandardLibrary_String.Dummy__ +var _ m_StandardLibrary.Dummy__ +var _ m_AwsCryptographyPrimitivesTypes.Dummy__ +var _ m_Random.Dummy__ +var _ m_Digest.Dummy__ +var _ m_WrappedHMAC.Dummy__ +var _ m_HKDF.Dummy__ +var _ m_WrappedHKDF.Dummy__ +var _ m_KdfCtr.Dummy__ +var _ m_AwsCryptographyPrimitivesOperations.Dummy__ +var _ m_AtomicPrimitives.Dummy__ +var _ m_ComAmazonawsDynamodbTypes.Dummy__ +var _ m_ComAmazonawsKmsTypes.Dummy__ +var _ m_AwsCryptographyKeyStoreTypes.Dummy__ +var _ m_AwsCryptographyMaterialProvidersTypes.Dummy__ +var _ m_Base64.Dummy__ +var _ m_AlgorithmSuites.Dummy__ +var _ m_Materials.Dummy__ +var _ m_Keyring.Dummy__ +var _ m_Relations.Dummy__ +var _ m_Seq_MergeSort.Dummy__ +var _ m__Math.Dummy__ +var _ m_Seq.Dummy__ +var _ m_MultiKeyring.Dummy__ +var _ m_AwsArnParsing.Dummy__ +var _ m_AwsKmsMrkAreUnique.Dummy__ +var _ m_Actions.Dummy__ +var _ m_AwsKmsMrkMatchForDecrypt.Dummy__ +var _ m_AwsKmsUtils.Dummy__ +var _ m_Constants.Dummy__ +var _ m_MaterialWrapping.Dummy__ +var _ m_CanonicalEncryptionContext.Dummy__ +var _ m_IntermediateKeyWrapping.Dummy__ +var _ m_EdkWrapping.Dummy__ +var _ m_ErrorMessages.Dummy__ +var _ m_AwsKmsKeyring.Dummy__ +var _ m_StrictMultiKeyring.Dummy__ +var _ m_AwsKmsDiscoveryKeyring.Dummy__ +var _ m_Com_Amazonaws_Kms.Dummy__ +var _ m_Com_Amazonaws_Dynamodb.Dummy__ +var _ m_DiscoveryMultiKeyring.Dummy__ +var _ m_AwsKmsMrkDiscoveryKeyring.Dummy__ +var _ m_MrkAwareDiscoveryMultiKeyring.Dummy__ +var _ m_AwsKmsMrkKeyring.Dummy__ +var _ m_MrkAwareStrictMultiKeyring.Dummy__ +var _ m_LocalCMC.Dummy__ +var _ m_SynchronizedLocalCMC.Dummy__ +var _ m_StormTracker.Dummy__ +var _ m_StormTrackingCMC.Dummy__ +var _ m_CacheConstants.Dummy__ +var _ m_AwsKmsHierarchicalKeyring.Dummy__ +var _ m_AwsKmsRsaKeyring.Dummy__ +var _ m_EcdhEdkWrapping.Dummy__ +var _ m_RawECDHKeyring.Dummy__ +var _ m_AwsKmsEcdhKeyring.Dummy__ +var _ m_RawAESKeyring.Dummy__ +var _ m_RawRSAKeyring.Dummy__ +var _ m_CMM.Dummy__ +var _ m_Defaults.Dummy__ +var _ m_Commitment.Dummy__ +var _ m_DefaultCMM.Dummy__ +var _ m_DefaultClientSupplier.Dummy__ +var _ m_Utils.Dummy__ +var _ m_RequiredEncryptionContextCMM.Dummy__ +var _ m_AwsCryptographyMaterialProvidersOperations.Dummy__ +var _ m_MaterialProviders.Dummy__ +var _ m_KeyStoreErrorMessages.Dummy__ +var _ m_KmsArn.Dummy__ +var _ m_Structure.Dummy__ +var _ m_KMSKeystoreOperations.Dummy__ +var _ m_DDBKeystoreOperations.Dummy__ +var _ m_CreateKeys.Dummy__ +var _ m_CreateKeyStoreTable.Dummy__ +var _ m_GetKeys.Dummy__ +var _ m_AwsCryptographyKeyStoreOperations.Dummy__ +var _ m_KeyStore.Dummy__ +var _ m__Unicode.Dummy__ +var _ m_Functions.Dummy__ +var _ m_Utf8EncodingForm.Dummy__ +var _ m_Utf16EncodingForm.Dummy__ +var _ m_UnicodeStrings.Dummy__ +var _ m_FileIO.Dummy__ +var _ m_GeneralInternals.Dummy__ +var _ m_MulInternalsNonlinear.Dummy__ +var _ m_MulInternals.Dummy__ +var _ m_Mul.Dummy__ +var _ m_ModInternalsNonlinear.Dummy__ +var _ m_DivInternalsNonlinear.Dummy__ +var _ m_ModInternals.Dummy__ +var _ m_DivInternals.Dummy__ +var _ m_DivMod.Dummy__ +var _ m_Power.Dummy__ +var _ m_Logarithm.Dummy__ +var _ m_StandardLibraryInterop.Dummy__ +var _ m_Streams.Dummy__ +var _ m_Sorting.Dummy__ +var _ m_HexStrings.Dummy__ +var _ m_GetOpt.Dummy__ +var _ m_FloatCompare.Dummy__ +var _ m_Base64Lemmas.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Dummy__ +var _ m_StructuredEncryptionUtil.Dummy__ +var _ m_Sets.Dummy__ +var _ m_StructuredEncryptionPaths.Dummy__ +var _ m_StructuredEncryptionHeader.Dummy__ +var _ m_StructuredEncryptionFooter.Dummy__ +var _ m_SortCanon.Dummy__ +var _ m_Canonize.Dummy__ +var _ m_StructuredEncryptionCrypt.Dummy__ +var _ m__Maps.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkStructuredEncryptionOperations.Dummy__ +var _ m_StructuredEncryption.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Dummy__ +var _ m_DynamoDbEncryptionUtil.Dummy__ +var _ m_DynamoDbNormalizeNumber.Dummy__ +var _ m_DynamoToStruct.Dummy__ +var _ m_DynamoDbItemEncryptorUtil.Dummy__ +var _ m_InternalLegacyOverride.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorOperations.Dummy__ +var _ m_DynamoDbItemEncryptor.Dummy__ + +type Dummy__ struct{} + +// Definition of class Default__ +type Default__ struct { + dummy byte +} + +func New_Default___() *Default__ { + _this := Default__{} + + return &_this +} + +type CompanionStruct_Default___ struct { +} + +var Companion_Default___ = CompanionStruct_Default___{} + +func (_this *Default__) Equals(other *Default__) bool { + return _this == other +} + +func (_this *Default__) EqualsGeneric(x interface{}) bool { + other, ok := x.(*Default__) + return ok && _this.Equals(other) +} + +func (*Default__) String() string { + return "DynamoDbEncryptionBranchKeyIdSupplier.Default__" +} +func (_this *Default__) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = &Default__{} + +func (_static *CompanionStruct_Default___) ConvertToMplError(err m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Error) m_AwsCryptographyMaterialProvidersTypes.Error { + if (err).Is_Opaque() { + return m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_Opaque_((err).Dtor_obj()) + } else { + return m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.SeqOfString("Unexpected error while getting Branch Key ID.")) + } +} + +// End of class Default__ + +// Definition of class DynamoDbEncryptionBranchKeyIdSupplier +type DynamoDbEncryptionBranchKeyIdSupplier struct { + _ddbKeyBranchKeyIdSupplier m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.IDynamoDbKeyBranchKeyIdSupplier +} + +func New_DynamoDbEncryptionBranchKeyIdSupplier_() *DynamoDbEncryptionBranchKeyIdSupplier { + _this := DynamoDbEncryptionBranchKeyIdSupplier{} + + _this._ddbKeyBranchKeyIdSupplier = (m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.IDynamoDbKeyBranchKeyIdSupplier)(nil) + return &_this +} + +type CompanionStruct_DynamoDbEncryptionBranchKeyIdSupplier_ struct { +} + +var Companion_DynamoDbEncryptionBranchKeyIdSupplier_ = CompanionStruct_DynamoDbEncryptionBranchKeyIdSupplier_{} + +func (_this *DynamoDbEncryptionBranchKeyIdSupplier) Equals(other *DynamoDbEncryptionBranchKeyIdSupplier) bool { + return _this == other +} + +func (_this *DynamoDbEncryptionBranchKeyIdSupplier) EqualsGeneric(x interface{}) bool { + other, ok := x.(*DynamoDbEncryptionBranchKeyIdSupplier) + return ok && _this.Equals(other) +} + +func (*DynamoDbEncryptionBranchKeyIdSupplier) String() string { + return "DynamoDbEncryptionBranchKeyIdSupplier.DynamoDbEncryptionBranchKeyIdSupplier" +} + +func Type_DynamoDbEncryptionBranchKeyIdSupplier_() _dafny.TypeDescriptor { + return type_DynamoDbEncryptionBranchKeyIdSupplier_{} +} + +type type_DynamoDbEncryptionBranchKeyIdSupplier_ struct { +} + +func (_this type_DynamoDbEncryptionBranchKeyIdSupplier_) Default() interface{} { + return (*DynamoDbEncryptionBranchKeyIdSupplier)(nil) +} + +func (_this type_DynamoDbEncryptionBranchKeyIdSupplier_) String() string { + return "DynamoDbEncryptionBranchKeyIdSupplier.DynamoDbEncryptionBranchKeyIdSupplier" +} +func (_this *DynamoDbEncryptionBranchKeyIdSupplier) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){m_AwsCryptographyMaterialProvidersTypes.Companion_IBranchKeyIdSupplier_.TraitID_} +} + +var _ m_AwsCryptographyMaterialProvidersTypes.IBranchKeyIdSupplier = &DynamoDbEncryptionBranchKeyIdSupplier{} +var _ _dafny.TraitOffspring = &DynamoDbEncryptionBranchKeyIdSupplier{} + +func (_this *DynamoDbEncryptionBranchKeyIdSupplier) GetBranchKeyId(input m_AwsCryptographyMaterialProvidersTypes.GetBranchKeyIdInput) m_Wrappers.Result { + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_AwsCryptographyMaterialProvidersTypes.Companion_IBranchKeyIdSupplier_.GetBranchKeyId(_this, input) + return _out0 +} +func (_this *DynamoDbEncryptionBranchKeyIdSupplier) Ctor__(ddbKeyBranchKeyIdSupplier m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.IDynamoDbKeyBranchKeyIdSupplier) { + { + (_this)._ddbKeyBranchKeyIdSupplier = ddbKeyBranchKeyIdSupplier + } +} +func (_this *DynamoDbEncryptionBranchKeyIdSupplier) GetBranchKeyId_k(input m_AwsCryptographyMaterialProvidersTypes.GetBranchKeyIdInput) m_Wrappers.Result { + { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_AwsCryptographyMaterialProvidersTypes.Companion_GetBranchKeyIdOutput_.Default()) + _ = output + var _0_attrMapR m_Wrappers.Result + _ = _0_attrMapR + _0_attrMapR = m_DynamoDbItemEncryptorUtil.Companion_Default___.ConvertContextForSelector((input).Dtor_encryptionContext()) + var _1_valueOrError0 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptyMap) + _ = _1_valueOrError0 + _1_valueOrError0 = (_0_attrMapR).MapFailure(func(coer68 func(_dafny.Sequence) m_AwsCryptographyMaterialProvidersTypes.Error) func(interface{}) interface{} { + return func(arg92 interface{}) interface{} { + return coer68(arg92.(_dafny.Sequence)) + } + }(func(_2_e _dafny.Sequence) m_AwsCryptographyMaterialProvidersTypes.Error { + return m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_2_e) + })) + if (_1_valueOrError0).IsFailure() { + output = (_1_valueOrError0).PropagateFailure() + return output + } + var _3_attrMap _dafny.Map + _ = _3_attrMap + _3_attrMap = (_1_valueOrError0).Extract().(_dafny.Map) + var _4_branchKeyIdR m_Wrappers.Result + _ = _4_branchKeyIdR + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = ((_this).DdbKeyBranchKeyIdSupplier()).GetBranchKeyIdFromDdbKey(m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_GetBranchKeyIdFromDdbKeyInput_.Create_GetBranchKeyIdFromDdbKeyInput_(_3_attrMap)) + _4_branchKeyIdR = _out0 + var _5_valueOrError1 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_GetBranchKeyIdFromDdbKeyOutput_.Default()) + _ = _5_valueOrError1 + _5_valueOrError1 = (_4_branchKeyIdR).MapFailure(func(coer69 func(m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Error) m_AwsCryptographyMaterialProvidersTypes.Error) func(interface{}) interface{} { + return func(arg93 interface{}) interface{} { + return coer69(arg93.(m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Error)) + } + }(Companion_Default___.ConvertToMplError)) + if (_5_valueOrError1).IsFailure() { + output = (_5_valueOrError1).PropagateFailure() + return output + } + var _6_branchKeyIdOut m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.GetBranchKeyIdFromDdbKeyOutput + _ = _6_branchKeyIdOut + _6_branchKeyIdOut = (_5_valueOrError1).Extract().(m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.GetBranchKeyIdFromDdbKeyOutput) + output = m_Wrappers.Companion_Result_.Create_Success_(m_AwsCryptographyMaterialProvidersTypes.Companion_GetBranchKeyIdOutput_.Create_GetBranchKeyIdOutput_((_6_branchKeyIdOut).Dtor_branchKeyId())) + return output + return output + } +} +func (_this *DynamoDbEncryptionBranchKeyIdSupplier) DdbKeyBranchKeyIdSupplier() m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.IDynamoDbKeyBranchKeyIdSupplier { + { + return _this._ddbKeyBranchKeyIdSupplier + } +} + +// End of class DynamoDbEncryptionBranchKeyIdSupplier diff --git a/customer-preview/ddb-esdk/DynamoDbEncryptionTransforms/DynamoDbEncryptionTransforms.go b/customer-preview/ddb-esdk/DynamoDbEncryptionTransforms/DynamoDbEncryptionTransforms.go new file mode 100644 index 000000000..959f64195 --- /dev/null +++ b/customer-preview/ddb-esdk/DynamoDbEncryptionTransforms/DynamoDbEncryptionTransforms.go @@ -0,0 +1,902 @@ +// Package DynamoDbEncryptionTransforms +// Dafny module DynamoDbEncryptionTransforms compiled into Go + +package DynamoDbEncryptionTransforms + +import ( + os "os" + + m_ComAmazonawsDynamodbTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/ComAmazonawsDynamodbTypes" + m_Com_Amazonaws_Dynamodb "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/Com_Amazonaws_Dynamodb" + m_ComAmazonawsKmsTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/ComAmazonawsKmsTypes" + m_Com_Amazonaws_Kms "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/Com_Amazonaws_Kms" + m_AlgorithmSuites "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AlgorithmSuites" + m_AwsArnParsing "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsArnParsing" + m_AwsCryptographyKeyStoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreOperations" + m_AwsCryptographyKeyStoreTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreTypes" + m_AwsCryptographyMaterialProvidersOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersOperations" + m_AwsCryptographyMaterialProvidersTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersTypes" + m_AwsKmsDiscoveryKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsDiscoveryKeyring" + m_AwsKmsEcdhKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsEcdhKeyring" + m_AwsKmsHierarchicalKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsHierarchicalKeyring" + m_AwsKmsKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsKeyring" + m_AwsKmsMrkAreUnique "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkAreUnique" + m_AwsKmsMrkDiscoveryKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkDiscoveryKeyring" + m_AwsKmsMrkKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkKeyring" + m_AwsKmsMrkMatchForDecrypt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkMatchForDecrypt" + m_AwsKmsRsaKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsRsaKeyring" + m_AwsKmsUtils "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsUtils" + m_CMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CMM" + m_CacheConstants "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CacheConstants" + m_CanonicalEncryptionContext "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CanonicalEncryptionContext" + m_Commitment "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Commitment" + m_Constants "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Constants" + m_CreateKeyStoreTable "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeyStoreTable" + m_CreateKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeys" + m_DDBKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DDBKeystoreOperations" + m_DefaultCMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DefaultCMM" + m_DefaultClientSupplier "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DefaultClientSupplier" + m_Defaults "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Defaults" + m_DiscoveryMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DiscoveryMultiKeyring" + m_EcdhEdkWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/EcdhEdkWrapping" + m_EdkWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/EdkWrapping" + m_ErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/ErrorMessages" + m_GetKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/GetKeys" + m_IntermediateKeyWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/IntermediateKeyWrapping" + m_KMSKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KMSKeystoreOperations" + m_KeyStore "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStore" + m_KeyStoreErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStoreErrorMessages" + m_Keyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Keyring" + m_KmsArn "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KmsArn" + m_LocalCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/LocalCMC" + m_MaterialProviders "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MaterialProviders" + m_MaterialWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MaterialWrapping" + m_Materials "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Materials" + m_MrkAwareDiscoveryMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MrkAwareDiscoveryMultiKeyring" + m_MrkAwareStrictMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MrkAwareStrictMultiKeyring" + m_MultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MultiKeyring" + m_RawAESKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawAESKeyring" + m_RawECDHKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawECDHKeyring" + m_RawRSAKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawRSAKeyring" + m_RequiredEncryptionContextCMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RequiredEncryptionContextCMM" + m_StormTracker "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StormTracker" + m_StormTrackingCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StormTrackingCMC" + m_StrictMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StrictMultiKeyring" + m_Structure "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Structure" + m_SynchronizedLocalCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/SynchronizedLocalCMC" + m_Utils "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Utils" + m_AtomicPrimitives "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AtomicPrimitives" + m_AwsCryptographyPrimitivesOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesOperations" + m_AwsCryptographyPrimitivesTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesTypes" + m_Digest "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Digest" + m_HKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/HKDF" + m_KdfCtr "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/KdfCtr" + m_Random "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Random" + m_WrappedHKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHKDF" + m_WrappedHMAC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHMAC" + m_Actions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Actions" + m_Base64 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64" + m_Base64Lemmas "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64Lemmas" + m_BoundedInts "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/BoundedInts" + m_DivInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternals" + m_DivInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternalsNonlinear" + m_DivMod "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivMod" + m_FileIO "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FileIO" + m_FloatCompare "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FloatCompare" + m_Functions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Functions" + m_GeneralInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GeneralInternals" + m_GetOpt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GetOpt" + m_HexStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/HexStrings" + m_Logarithm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Logarithm" + m__Math "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Math_" + m_ModInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternals" + m_ModInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternalsNonlinear" + m_Mul "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Mul" + m_MulInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternals" + m_MulInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternalsNonlinear" + m_Power "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Power" + m_Relations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Relations" + m_Seq "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq" + m_Seq_MergeSort "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq_MergeSort" + m_SortedSets "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/SortedSets" + m_Sorting "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Sorting" + m_StandardLibrary "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary" + m_StandardLibraryInterop "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibraryInterop" + m_StandardLibrary_Sequence "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_Sequence" + m_StandardLibrary_String "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_String" + m_StandardLibrary_UInt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_UInt" + m_Streams "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Streams" + m_UnicodeStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UnicodeStrings" + m__Unicode "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Unicode_" + m_Utf16EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf16EncodingForm" + m_Utf8EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf8EncodingForm" + m_Wrappers "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers" + m_AttributeResolver "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AttributeResolver" + m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorOperations "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorOperations" + m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes" + m_AwsCryptographyDbEncryptionSdkDynamoDbOperations "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbOperations" + m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsOperations "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbTransformsOperations" + m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes" + m_AwsCryptographyDbEncryptionSdkDynamoDbTypes "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbTypes" + m_AwsCryptographyDbEncryptionSdkStructuredEncryptionOperations "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkStructuredEncryptionOperations" + m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes" + m_BaseBeacon "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/BaseBeacon" + m_BatchExecuteStatementTransform "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/BatchExecuteStatementTransform" + m_BatchGetItemTransform "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/BatchGetItemTransform" + m_BatchWriteItemTransform "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/BatchWriteItemTransform" + m_Canonize "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/Canonize" + m_CompoundBeacon "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/CompoundBeacon" + m_DdbMiddlewareConfig "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DdbMiddlewareConfig" + m_DdbStatement "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DdbStatement" + m_DdbVirtualFields "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DdbVirtualFields" + m_DeleteItemTransform "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DeleteItemTransform" + m_DynamoDBFilterExpr "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDBFilterExpr" + m_DynamoDBSupport "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDBSupport" + m_DynamoDbEncryption "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbEncryption" + m_DynamoDbEncryptionBranchKeyIdSupplier "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbEncryptionBranchKeyIdSupplier" + m_DynamoDbEncryptionUtil "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbEncryptionUtil" + m_DynamoDbItemEncryptor "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbItemEncryptor" + m_DynamoDbItemEncryptorUtil "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbItemEncryptorUtil" + m_DynamoDbMiddlewareSupport "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbMiddlewareSupport" + m_DynamoDbNormalizeNumber "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbNormalizeNumber" + m_DynamoDbUpdateExpr "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbUpdateExpr" + m_DynamoToStruct "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoToStruct" + m_ExecuteStatementTransform "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/ExecuteStatementTransform" + m_ExecuteTransactionTransform "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/ExecuteTransactionTransform" + m_GetItemTransform "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/GetItemTransform" + m_InternalLegacyOverride "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/InternalLegacyOverride" + m__Maps "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/Maps_" + m_PutItemTransform "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/PutItemTransform" + m_QueryTransform "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/QueryTransform" + m_ScanTransform "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/ScanTransform" + m_SearchConfigToInfo "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/SearchConfigToInfo" + m_SearchableEncryptionInfo "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/SearchableEncryptionInfo" + m_Sets "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/Sets" + m_SortCanon "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/SortCanon" + m_StructuredEncryption "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryption" + m_StructuredEncryptionCrypt "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionCrypt" + m_StructuredEncryptionFooter "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionFooter" + m_StructuredEncryptionHeader "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionHeader" + m_StructuredEncryptionPaths "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionPaths" + m_StructuredEncryptionUtil "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionUtil" + m_TermLoc "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/TermLoc" + m_TransactGetItemsTransform "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/TransactGetItemsTransform" + m_TransactWriteItemsTransform "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/TransactWriteItemsTransform" + m_UpdateItemTransform "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/UpdateItemTransform" + m__System "github.com/dafny-lang/DafnyRuntimeGo/v4/System_" + _dafny "github.com/dafny-lang/DafnyRuntimeGo/v4/dafny" +) + +var _ = os.Args +var _ _dafny.Dummy__ +var _ m__System.Dummy__ +var _ m_Wrappers.Dummy__ +var _ m_BoundedInts.Dummy__ +var _ m_StandardLibrary_UInt.Dummy__ +var _ m_StandardLibrary_Sequence.Dummy__ +var _ m_StandardLibrary_String.Dummy__ +var _ m_StandardLibrary.Dummy__ +var _ m_AwsCryptographyPrimitivesTypes.Dummy__ +var _ m_Random.Dummy__ +var _ m_Digest.Dummy__ +var _ m_WrappedHMAC.Dummy__ +var _ m_HKDF.Dummy__ +var _ m_WrappedHKDF.Dummy__ +var _ m_KdfCtr.Dummy__ +var _ m_AwsCryptographyPrimitivesOperations.Dummy__ +var _ m_AtomicPrimitives.Dummy__ +var _ m_ComAmazonawsDynamodbTypes.Dummy__ +var _ m_ComAmazonawsKmsTypes.Dummy__ +var _ m_AwsCryptographyKeyStoreTypes.Dummy__ +var _ m_AwsCryptographyMaterialProvidersTypes.Dummy__ +var _ m_Base64.Dummy__ +var _ m_AlgorithmSuites.Dummy__ +var _ m_Materials.Dummy__ +var _ m_Keyring.Dummy__ +var _ m_Relations.Dummy__ +var _ m_Seq_MergeSort.Dummy__ +var _ m__Math.Dummy__ +var _ m_Seq.Dummy__ +var _ m_MultiKeyring.Dummy__ +var _ m_AwsArnParsing.Dummy__ +var _ m_AwsKmsMrkAreUnique.Dummy__ +var _ m_Actions.Dummy__ +var _ m_AwsKmsMrkMatchForDecrypt.Dummy__ +var _ m_AwsKmsUtils.Dummy__ +var _ m_Constants.Dummy__ +var _ m_MaterialWrapping.Dummy__ +var _ m_CanonicalEncryptionContext.Dummy__ +var _ m_IntermediateKeyWrapping.Dummy__ +var _ m_EdkWrapping.Dummy__ +var _ m_ErrorMessages.Dummy__ +var _ m_AwsKmsKeyring.Dummy__ +var _ m_StrictMultiKeyring.Dummy__ +var _ m_AwsKmsDiscoveryKeyring.Dummy__ +var _ m_Com_Amazonaws_Kms.Dummy__ +var _ m_Com_Amazonaws_Dynamodb.Dummy__ +var _ m_DiscoveryMultiKeyring.Dummy__ +var _ m_AwsKmsMrkDiscoveryKeyring.Dummy__ +var _ m_MrkAwareDiscoveryMultiKeyring.Dummy__ +var _ m_AwsKmsMrkKeyring.Dummy__ +var _ m_MrkAwareStrictMultiKeyring.Dummy__ +var _ m_LocalCMC.Dummy__ +var _ m_SynchronizedLocalCMC.Dummy__ +var _ m_StormTracker.Dummy__ +var _ m_StormTrackingCMC.Dummy__ +var _ m_CacheConstants.Dummy__ +var _ m_AwsKmsHierarchicalKeyring.Dummy__ +var _ m_AwsKmsRsaKeyring.Dummy__ +var _ m_EcdhEdkWrapping.Dummy__ +var _ m_RawECDHKeyring.Dummy__ +var _ m_AwsKmsEcdhKeyring.Dummy__ +var _ m_RawAESKeyring.Dummy__ +var _ m_RawRSAKeyring.Dummy__ +var _ m_CMM.Dummy__ +var _ m_Defaults.Dummy__ +var _ m_Commitment.Dummy__ +var _ m_DefaultCMM.Dummy__ +var _ m_DefaultClientSupplier.Dummy__ +var _ m_Utils.Dummy__ +var _ m_RequiredEncryptionContextCMM.Dummy__ +var _ m_AwsCryptographyMaterialProvidersOperations.Dummy__ +var _ m_MaterialProviders.Dummy__ +var _ m_KeyStoreErrorMessages.Dummy__ +var _ m_KmsArn.Dummy__ +var _ m_Structure.Dummy__ +var _ m_KMSKeystoreOperations.Dummy__ +var _ m_DDBKeystoreOperations.Dummy__ +var _ m_CreateKeys.Dummy__ +var _ m_CreateKeyStoreTable.Dummy__ +var _ m_GetKeys.Dummy__ +var _ m_AwsCryptographyKeyStoreOperations.Dummy__ +var _ m_KeyStore.Dummy__ +var _ m__Unicode.Dummy__ +var _ m_Functions.Dummy__ +var _ m_Utf8EncodingForm.Dummy__ +var _ m_Utf16EncodingForm.Dummy__ +var _ m_UnicodeStrings.Dummy__ +var _ m_FileIO.Dummy__ +var _ m_GeneralInternals.Dummy__ +var _ m_MulInternalsNonlinear.Dummy__ +var _ m_MulInternals.Dummy__ +var _ m_Mul.Dummy__ +var _ m_ModInternalsNonlinear.Dummy__ +var _ m_DivInternalsNonlinear.Dummy__ +var _ m_ModInternals.Dummy__ +var _ m_DivInternals.Dummy__ +var _ m_DivMod.Dummy__ +var _ m_Power.Dummy__ +var _ m_Logarithm.Dummy__ +var _ m_StandardLibraryInterop.Dummy__ +var _ m_Streams.Dummy__ +var _ m_Sorting.Dummy__ +var _ m_HexStrings.Dummy__ +var _ m_GetOpt.Dummy__ +var _ m_FloatCompare.Dummy__ +var _ m_Base64Lemmas.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Dummy__ +var _ m_StructuredEncryptionUtil.Dummy__ +var _ m_Sets.Dummy__ +var _ m_StructuredEncryptionPaths.Dummy__ +var _ m_StructuredEncryptionHeader.Dummy__ +var _ m_StructuredEncryptionFooter.Dummy__ +var _ m_SortCanon.Dummy__ +var _ m_Canonize.Dummy__ +var _ m_StructuredEncryptionCrypt.Dummy__ +var _ m__Maps.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkStructuredEncryptionOperations.Dummy__ +var _ m_StructuredEncryption.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Dummy__ +var _ m_DynamoDbEncryptionUtil.Dummy__ +var _ m_DynamoDbNormalizeNumber.Dummy__ +var _ m_DynamoToStruct.Dummy__ +var _ m_DynamoDbItemEncryptorUtil.Dummy__ +var _ m_InternalLegacyOverride.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorOperations.Dummy__ +var _ m_DynamoDbItemEncryptor.Dummy__ +var _ m_DynamoDbEncryptionBranchKeyIdSupplier.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkDynamoDbOperations.Dummy__ +var _ m_DynamoDbEncryption.Dummy__ +var _ m_TermLoc.Dummy__ +var _ m_DdbVirtualFields.Dummy__ +var _ m_DynamoDbUpdateExpr.Dummy__ +var _ m_BaseBeacon.Dummy__ +var _ m_CompoundBeacon.Dummy__ +var _ m_SearchableEncryptionInfo.Dummy__ +var _ m_DynamoDBFilterExpr.Dummy__ +var _ m_DynamoDBSupport.Dummy__ +var _ m_SearchConfigToInfo.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Dummy__ +var _ m_DdbMiddlewareConfig.Dummy__ +var _ m_DdbStatement.Dummy__ +var _ m_DynamoDbMiddlewareSupport.Dummy__ +var _ m_PutItemTransform.Dummy__ +var _ m_GetItemTransform.Dummy__ +var _ m_UpdateItemTransform.Dummy__ +var _ m_BatchWriteItemTransform.Dummy__ +var _ m_TransactWriteItemsTransform.Dummy__ +var _ m_BatchGetItemTransform.Dummy__ +var _ m_ScanTransform.Dummy__ +var _ m_QueryTransform.Dummy__ +var _ m_TransactGetItemsTransform.Dummy__ +var _ m_DeleteItemTransform.Dummy__ +var _ m_ExecuteStatementTransform.Dummy__ +var _ m_BatchExecuteStatementTransform.Dummy__ +var _ m_ExecuteTransactionTransform.Dummy__ +var _ m_AttributeResolver.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsOperations.Dummy__ + +type Dummy__ struct{} + +// Definition of class Default__ +type Default__ struct { + dummy byte +} + +func New_Default___() *Default__ { + _this := Default__{} + + return &_this +} + +type CompanionStruct_Default___ struct { +} + +var Companion_Default___ = CompanionStruct_Default___{} + +func (_this *Default__) Equals(other *Default__) bool { + return _this == other +} + +func (_this *Default__) EqualsGeneric(x interface{}) bool { + other, ok := x.(*Default__) + return ok && _this.Equals(other) +} + +func (*Default__) String() string { + return "DynamoDbEncryptionTransforms.Default__" +} +func (_this *Default__) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = &Default__{} + +func (_static *CompanionStruct_Default___) DefaultDynamoDbTablesEncryptionConfig() m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.DynamoDbTablesEncryptionConfig { + return m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_DynamoDbTablesEncryptionConfig_.Create_DynamoDbTablesEncryptionConfig_(_dafny.NewMapBuilder().ToMap()) +} +func (_static *CompanionStruct_Default___) AddSignedBeaconActions(names _dafny.Sequence, actions _dafny.Map) _dafny.Map { + goto TAIL_CALL_START +TAIL_CALL_START: + if (_dafny.IntOfUint32((names).Cardinality())).Sign() == 0 { + return actions + } else { + var _in0 _dafny.Sequence = (names).Drop(1) + _ = _in0 + var _in1 _dafny.Map = (actions).Update((names).Select(0).(_dafny.Sequence), m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Companion_CryptoAction_.Create_SIGN__ONLY_()) + _ = _in1 + names = _in0 + actions = _in1 + goto TAIL_CALL_START + } +} +func (_static *CompanionStruct_Default___) IsConfigured(config m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.DynamoDbTableEncryptionConfig, name _dafny.Sequence) bool { + return ((((config).Dtor_attributeActionsOnEncrypt()).Contains(name)) || ((((config).Dtor_allowedUnsignedAttributes()).Is_Some()) && (_dafny.Companion_Sequence_.Contains(((config).Dtor_allowedUnsignedAttributes()).Dtor_value().(_dafny.Sequence), name)))) || ((((config).Dtor_allowedUnsignedAttributePrefix()).Is_Some()) && (_dafny.Companion_Sequence_.IsPrefixOf(((config).Dtor_allowedUnsignedAttributePrefix()).Dtor_value().(_dafny.Sequence), name))) +} +func (_static *CompanionStruct_Default___) DynamoDbEncryptionTransforms(config m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.DynamoDbTablesEncryptionConfig) m_Wrappers.Result { + var res m_Wrappers.Result = m_Wrappers.Result{} + _ = res + var _0_internalConfigs _dafny.Map + _ = _0_internalConfigs + _0_internalConfigs = _dafny.NewMapBuilder().ToMap() + var _1_m_k _dafny.Map + _ = _1_m_k + _1_m_k = (config).Dtor_tableEncryptionConfigs() + var _2_mKeys _dafny.Set + _ = _2_mKeys + _2_mKeys = (_1_m_k).Keys() + var _3_tableNamesSeq _dafny.Sequence + _ = _3_tableNamesSeq + var _out0 _dafny.Sequence + _ = _out0 + _out0 = m_SortedSets.SetToSequence(_2_mKeys) + _3_tableNamesSeq = _out0 + var _4_allLogicalTableNames _dafny.Set + _ = _4_allLogicalTableNames + _4_allLogicalTableNames = _dafny.SetOf() + var _5_i _dafny.Int + _ = _5_i + _5_i = _dafny.Zero + for (_5_i).Cmp(_dafny.IntOfUint32((_3_tableNamesSeq).Cardinality())) < 0 { + var _6_tableName _dafny.Sequence + _ = _6_tableName + _6_tableName = (_3_tableNamesSeq).Select((_5_i).Uint32()).(_dafny.Sequence) + var _7_inputConfig m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.DynamoDbTableEncryptionConfig + _ = _7_inputConfig + _7_inputConfig = ((config).Dtor_tableEncryptionConfigs()).Get(_6_tableName).(m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.DynamoDbTableEncryptionConfig) + var _8_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _8_valueOrError0 + _8_valueOrError0 = m_Wrappers.Companion_Default___.Need(!(_4_allLogicalTableNames).Contains((_7_inputConfig).Dtor_logicalTableName()), m_DdbMiddlewareConfig.Companion_Default___.E(_dafny.Companion_Sequence_.Concatenate(_dafny.SeqOfString("Duplicate logical table maped to multipule physical tables: "), (_7_inputConfig).Dtor_logicalTableName()))) + if (_8_valueOrError0).IsFailure() { + res = (_8_valueOrError0).PropagateFailure() + return res + } + var _9_searchR m_Wrappers.Result + _ = _9_searchR + var _out1 m_Wrappers.Result + _ = _out1 + _out1 = m_SearchConfigToInfo.Companion_Default___.Convert(_7_inputConfig) + _9_searchR = _out1 + var _10_valueOrError1 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_Wrappers.Companion_Option_.Default()) + _ = _10_valueOrError1 + _10_valueOrError1 = (_9_searchR).MapFailure(func(coer157 func(m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Error) m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Error) func(interface{}) interface{} { + return func(arg191 interface{}) interface{} { + return coer157(arg191.(m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Error)) + } + }(func(_11_e m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Error) m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Error { + return m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_Error_.Create_AwsCryptographyDbEncryptionSdkDynamoDb_(_11_e) + })) + if (_10_valueOrError1).IsFailure() { + res = (_10_valueOrError1).PropagateFailure() + return res + } + var _12_search m_Wrappers.Option + _ = _12_search + _12_search = (_10_valueOrError1).Extract().(m_Wrappers.Option) + var _13_signedBeacons _dafny.Sequence + _ = _13_signedBeacons + if (_12_search).Is_None() { + _13_signedBeacons = _dafny.SeqOf() + } else { + _13_signedBeacons = (((_12_search).Dtor_value().(m_SearchableEncryptionInfo.SearchInfo)).Curr()).ListSignedBeacons() + } + var _14_badBeacons _dafny.Sequence + _ = _14_badBeacons + _14_badBeacons = m_Seq.Companion_Default___.Filter(func(coer158 func(_dafny.Sequence) bool) func(interface{}) bool { + return func(arg192 interface{}) bool { + return coer158(arg192.(_dafny.Sequence)) + } + }((func(_15_inputConfig m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.DynamoDbTableEncryptionConfig) func(_dafny.Sequence) bool { + return func(_16_s _dafny.Sequence) bool { + return Companion_Default___.IsConfigured(_15_inputConfig, _16_s) + } + })(_7_inputConfig)), _13_signedBeacons) + if (_dafny.IntOfUint32((_14_badBeacons).Cardinality())).Sign() == 1 { + res = m_Wrappers.Companion_Result_.Create_Failure_(m_DdbMiddlewareConfig.Companion_Default___.E(_dafny.Companion_Sequence_.Concatenate(_dafny.SeqOfString("Signed beacons cannot be configured with CryptoActions or as unauthenticated : "), m_StandardLibrary.Companion_Default___.Join(_14_badBeacons, _dafny.SeqOfString(", "))))) + return res + } + var _17_valueOrError2 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _17_valueOrError2 + _17_valueOrError2 = m_Wrappers.Companion_Default___.Need(_dafny.Quantifier((_13_signedBeacons).UniqueElements(), true, func(_forall_var_0 _dafny.Sequence) bool { + var _18_k _dafny.Sequence + _18_k = interface{}(_forall_var_0).(_dafny.Sequence) + return !(_dafny.Companion_Sequence_.Contains(_13_signedBeacons, _18_k)) || (m_ComAmazonawsDynamodbTypes.Companion_Default___.IsValid__AttributeName(_18_k)) + }), m_DdbMiddlewareConfig.Companion_Default___.E(_dafny.SeqOfString("Beacon configured with bad name"))) + if (_17_valueOrError2).IsFailure() { + res = (_17_valueOrError2).PropagateFailure() + return res + } + var _19_newActions _dafny.Map + _ = _19_newActions + _19_newActions = Companion_Default___.AddSignedBeaconActions(_13_signedBeacons, (_7_inputConfig).Dtor_attributeActionsOnEncrypt()) + var _20_encryptorConfig m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.DynamoDbItemEncryptorConfig + _ = _20_encryptorConfig + _20_encryptorConfig = m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Companion_DynamoDbItemEncryptorConfig_.Create_DynamoDbItemEncryptorConfig_((_7_inputConfig).Dtor_logicalTableName(), (_7_inputConfig).Dtor_partitionKeyName(), (_7_inputConfig).Dtor_sortKeyName(), _19_newActions, (_7_inputConfig).Dtor_allowedUnsignedAttributes(), (_7_inputConfig).Dtor_allowedUnsignedAttributePrefix(), (_7_inputConfig).Dtor_algorithmSuiteId(), (_7_inputConfig).Dtor_keyring(), (_7_inputConfig).Dtor_cmm(), (_7_inputConfig).Dtor_legacyOverride(), (_7_inputConfig).Dtor_plaintextOverride()) + var _21_itemEncryptorRes m_Wrappers.Result + _ = _21_itemEncryptorRes + var _out2 m_Wrappers.Result + _ = _out2 + _out2 = m_DynamoDbItemEncryptor.Companion_Default___.DynamoDbItemEncryptor(_20_encryptorConfig) + _21_itemEncryptorRes = _out2 + var _22_valueOrError3 m_Wrappers.Result = m_Wrappers.Result{} + _ = _22_valueOrError3 + _22_valueOrError3 = (_21_itemEncryptorRes).MapFailure(func(coer159 func(m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Error) m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Error) func(interface{}) interface{} { + return func(arg193 interface{}) interface{} { + return coer159(arg193.(m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Error)) + } + }(func(_23_e m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Error) m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Error { + return m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_Error_.Create_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptor_(_23_e) + })) + if (_22_valueOrError3).IsFailure() { + res = (_22_valueOrError3).PropagateFailure() + return res + } + var _24_itemEncryptorX m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.IDynamoDbItemEncryptorClient + _ = _24_itemEncryptorX + _24_itemEncryptorX = (_22_valueOrError3).Extract().(*m_DynamoDbItemEncryptor.DynamoDbItemEncryptorClient) + var _25_itemEncryptor *m_DynamoDbItemEncryptor.DynamoDbItemEncryptorClient + _ = _25_itemEncryptor + _25_itemEncryptor = _24_itemEncryptorX.(*m_DynamoDbItemEncryptor.DynamoDbItemEncryptorClient) + var _26_encConfig m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorOperations.Config + _ = _26_encConfig + _26_encConfig = (_25_itemEncryptor).Config() + var _27_internalConfig m_DdbMiddlewareConfig.TableConfig + _ = _27_internalConfig + _27_internalConfig = m_DdbMiddlewareConfig.Companion_TableConfig_.Create_TableConfig_(_6_tableName, (_7_inputConfig).Dtor_logicalTableName(), (_7_inputConfig).Dtor_partitionKeyName(), (_7_inputConfig).Dtor_sortKeyName(), _25_itemEncryptor, _12_search, ((_7_inputConfig).Dtor_plaintextOverride()).UnwrapOr(m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_PlaintextOverride_.Create_FORBID__PLAINTEXT__WRITE__FORBID__PLAINTEXT__READ_()).(m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.PlaintextOverride)) + _0_internalConfigs = (_0_internalConfigs).Update(_6_tableName, _27_internalConfig) + _4_allLogicalTableNames = (_4_allLogicalTableNames).Union(_dafny.SetOf((_27_internalConfig).Dtor_logicalTableName())) + _5_i = (_5_i).Plus(_dafny.One) + } + var _28_newConfig m_DdbMiddlewareConfig.Config + _ = _28_newConfig + _28_newConfig = m_DdbMiddlewareConfig.Companion_Config_.Create_Config_(_0_internalConfigs) + var _29_client *DynamoDbEncryptionTransformsClient + _ = _29_client + var _nw0 *DynamoDbEncryptionTransformsClient = New_DynamoDbEncryptionTransformsClient_() + _ = _nw0 + _nw0.Ctor__(_28_newConfig) + _29_client = _nw0 + res = m_Wrappers.Companion_Result_.Create_Success_(_29_client) + return res + return res +} +func (_static *CompanionStruct_Default___) CreateSuccessOfClient(client m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.IDynamoDbEncryptionTransformsClient) m_Wrappers.Result { + return m_Wrappers.Companion_Result_.Create_Success_(client) +} +func (_static *CompanionStruct_Default___) CreateFailureOfError(error_ m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Error) m_Wrappers.Result { + return m_Wrappers.Companion_Result_.Create_Failure_(error_) +} + +// End of class Default__ + +// Definition of class DynamoDbEncryptionTransformsClient +type DynamoDbEncryptionTransformsClient struct { + _config m_DdbMiddlewareConfig.Config +} + +func New_DynamoDbEncryptionTransformsClient_() *DynamoDbEncryptionTransformsClient { + _this := DynamoDbEncryptionTransformsClient{} + + _this._config = m_DdbMiddlewareConfig.Companion_Config_.Default() + return &_this +} + +type CompanionStruct_DynamoDbEncryptionTransformsClient_ struct { +} + +var Companion_DynamoDbEncryptionTransformsClient_ = CompanionStruct_DynamoDbEncryptionTransformsClient_{} + +func (_this *DynamoDbEncryptionTransformsClient) Equals(other *DynamoDbEncryptionTransformsClient) bool { + return _this == other +} + +func (_this *DynamoDbEncryptionTransformsClient) EqualsGeneric(x interface{}) bool { + other, ok := x.(*DynamoDbEncryptionTransformsClient) + return ok && _this.Equals(other) +} + +func (*DynamoDbEncryptionTransformsClient) String() string { + return "DynamoDbEncryptionTransforms.DynamoDbEncryptionTransformsClient" +} + +func Type_DynamoDbEncryptionTransformsClient_() _dafny.TypeDescriptor { + return type_DynamoDbEncryptionTransformsClient_{} +} + +type type_DynamoDbEncryptionTransformsClient_ struct { +} + +func (_this type_DynamoDbEncryptionTransformsClient_) Default() interface{} { + return (*DynamoDbEncryptionTransformsClient)(nil) +} + +func (_this type_DynamoDbEncryptionTransformsClient_) String() string { + return "DynamoDbEncryptionTransforms.DynamoDbEncryptionTransformsClient" +} +func (_this *DynamoDbEncryptionTransformsClient) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_IDynamoDbEncryptionTransformsClient_.TraitID_} +} + +var _ m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.IDynamoDbEncryptionTransformsClient = &DynamoDbEncryptionTransformsClient{} +var _ _dafny.TraitOffspring = &DynamoDbEncryptionTransformsClient{} + +func (_this *DynamoDbEncryptionTransformsClient) Ctor__(config m_DdbMiddlewareConfig.Config) { + { + (_this)._config = config + } +} +func (_this *DynamoDbEncryptionTransformsClient) PutItemInputTransform(input m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.PutItemInputTransformInput) m_Wrappers.Result { + { + var output m_Wrappers.Result = m_Wrappers.Result{} + _ = output + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsOperations.Companion_Default___.PutItemInputTransform((_this).Config(), input) + output = _out0 + return output + } +} +func (_this *DynamoDbEncryptionTransformsClient) PutItemOutputTransform(input m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.PutItemOutputTransformInput) m_Wrappers.Result { + { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_PutItemOutputTransformOutput_.Default()) + _ = output + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsOperations.Companion_Default___.PutItemOutputTransform((_this).Config(), input) + output = _out0 + return output + } +} +func (_this *DynamoDbEncryptionTransformsClient) GetItemInputTransform(input m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.GetItemInputTransformInput) m_Wrappers.Result { + { + var output m_Wrappers.Result = m_Wrappers.Result{} + _ = output + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsOperations.Companion_Default___.GetItemInputTransform((_this).Config(), input) + output = _out0 + return output + } +} +func (_this *DynamoDbEncryptionTransformsClient) GetItemOutputTransform(input m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.GetItemOutputTransformInput) m_Wrappers.Result { + { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_GetItemOutputTransformOutput_.Default()) + _ = output + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsOperations.Companion_Default___.GetItemOutputTransform((_this).Config(), input) + output = _out0 + return output + } +} +func (_this *DynamoDbEncryptionTransformsClient) BatchWriteItemInputTransform(input m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.BatchWriteItemInputTransformInput) m_Wrappers.Result { + { + var output m_Wrappers.Result = m_Wrappers.Result{} + _ = output + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsOperations.Companion_Default___.BatchWriteItemInputTransform((_this).Config(), input) + output = _out0 + return output + } +} +func (_this *DynamoDbEncryptionTransformsClient) BatchWriteItemOutputTransform(input m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.BatchWriteItemOutputTransformInput) m_Wrappers.Result { + { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_BatchWriteItemOutputTransformOutput_.Default()) + _ = output + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsOperations.Companion_Default___.BatchWriteItemOutputTransform((_this).Config(), input) + output = _out0 + return output + } +} +func (_this *DynamoDbEncryptionTransformsClient) BatchGetItemInputTransform(input m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.BatchGetItemInputTransformInput) m_Wrappers.Result { + { + var output m_Wrappers.Result = m_Wrappers.Result{} + _ = output + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsOperations.Companion_Default___.BatchGetItemInputTransform((_this).Config(), input) + output = _out0 + return output + } +} +func (_this *DynamoDbEncryptionTransformsClient) BatchGetItemOutputTransform(input m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.BatchGetItemOutputTransformInput) m_Wrappers.Result { + { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_BatchGetItemOutputTransformOutput_.Default()) + _ = output + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsOperations.Companion_Default___.BatchGetItemOutputTransform((_this).Config(), input) + output = _out0 + return output + } +} +func (_this *DynamoDbEncryptionTransformsClient) ScanInputTransform(input m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.ScanInputTransformInput) m_Wrappers.Result { + { + var output m_Wrappers.Result = m_Wrappers.Result{} + _ = output + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsOperations.Companion_Default___.ScanInputTransform((_this).Config(), input) + output = _out0 + return output + } +} +func (_this *DynamoDbEncryptionTransformsClient) ScanOutputTransform(input m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.ScanOutputTransformInput) m_Wrappers.Result { + { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_ScanOutputTransformOutput_.Default()) + _ = output + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsOperations.Companion_Default___.ScanOutputTransform((_this).Config(), input) + output = _out0 + return output + } +} +func (_this *DynamoDbEncryptionTransformsClient) QueryInputTransform(input m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.QueryInputTransformInput) m_Wrappers.Result { + { + var output m_Wrappers.Result = m_Wrappers.Result{} + _ = output + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsOperations.Companion_Default___.QueryInputTransform((_this).Config(), input) + output = _out0 + return output + } +} +func (_this *DynamoDbEncryptionTransformsClient) QueryOutputTransform(input m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.QueryOutputTransformInput) m_Wrappers.Result { + { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_QueryOutputTransformOutput_.Default()) + _ = output + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsOperations.Companion_Default___.QueryOutputTransform((_this).Config(), input) + output = _out0 + return output + } +} +func (_this *DynamoDbEncryptionTransformsClient) TransactWriteItemsInputTransform(input m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.TransactWriteItemsInputTransformInput) m_Wrappers.Result { + { + var output m_Wrappers.Result = m_Wrappers.Result{} + _ = output + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsOperations.Companion_Default___.TransactWriteItemsInputTransform((_this).Config(), input) + output = _out0 + return output + } +} +func (_this *DynamoDbEncryptionTransformsClient) TransactWriteItemsOutputTransform(input m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.TransactWriteItemsOutputTransformInput) m_Wrappers.Result { + { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_TransactWriteItemsOutputTransformOutput_.Default()) + _ = output + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsOperations.Companion_Default___.TransactWriteItemsOutputTransform((_this).Config(), input) + output = _out0 + return output + } +} +func (_this *DynamoDbEncryptionTransformsClient) UpdateItemInputTransform(input m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.UpdateItemInputTransformInput) m_Wrappers.Result { + { + var output m_Wrappers.Result = m_Wrappers.Result{} + _ = output + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsOperations.Companion_Default___.UpdateItemInputTransform((_this).Config(), input) + output = _out0 + return output + } +} +func (_this *DynamoDbEncryptionTransformsClient) UpdateItemOutputTransform(input m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.UpdateItemOutputTransformInput) m_Wrappers.Result { + { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_UpdateItemOutputTransformOutput_.Default()) + _ = output + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsOperations.Companion_Default___.UpdateItemOutputTransform((_this).Config(), input) + output = _out0 + return output + } +} +func (_this *DynamoDbEncryptionTransformsClient) DeleteItemInputTransform(input m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.DeleteItemInputTransformInput) m_Wrappers.Result { + { + var output m_Wrappers.Result = m_Wrappers.Result{} + _ = output + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsOperations.Companion_Default___.DeleteItemInputTransform((_this).Config(), input) + output = _out0 + return output + } +} +func (_this *DynamoDbEncryptionTransformsClient) DeleteItemOutputTransform(input m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.DeleteItemOutputTransformInput) m_Wrappers.Result { + { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_DeleteItemOutputTransformOutput_.Default()) + _ = output + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsOperations.Companion_Default___.DeleteItemOutputTransform((_this).Config(), input) + output = _out0 + return output + } +} +func (_this *DynamoDbEncryptionTransformsClient) TransactGetItemsInputTransform(input m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.TransactGetItemsInputTransformInput) m_Wrappers.Result { + { + var output m_Wrappers.Result = m_Wrappers.Result{} + _ = output + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsOperations.Companion_Default___.TransactGetItemsInputTransform((_this).Config(), input) + output = _out0 + return output + } +} +func (_this *DynamoDbEncryptionTransformsClient) TransactGetItemsOutputTransform(input m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.TransactGetItemsOutputTransformInput) m_Wrappers.Result { + { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_TransactGetItemsOutputTransformOutput_.Default()) + _ = output + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsOperations.Companion_Default___.TransactGetItemsOutputTransform((_this).Config(), input) + output = _out0 + return output + } +} +func (_this *DynamoDbEncryptionTransformsClient) ExecuteStatementInputTransform(input m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.ExecuteStatementInputTransformInput) m_Wrappers.Result { + { + var output m_Wrappers.Result = m_Wrappers.Result{} + _ = output + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsOperations.Companion_Default___.ExecuteStatementInputTransform((_this).Config(), input) + output = _out0 + return output + } +} +func (_this *DynamoDbEncryptionTransformsClient) ExecuteStatementOutputTransform(input m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.ExecuteStatementOutputTransformInput) m_Wrappers.Result { + { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_ExecuteStatementOutputTransformOutput_.Default()) + _ = output + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsOperations.Companion_Default___.ExecuteStatementOutputTransform((_this).Config(), input) + output = _out0 + return output + } +} +func (_this *DynamoDbEncryptionTransformsClient) BatchExecuteStatementInputTransform(input m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.BatchExecuteStatementInputTransformInput) m_Wrappers.Result { + { + var output m_Wrappers.Result = m_Wrappers.Result{} + _ = output + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsOperations.Companion_Default___.BatchExecuteStatementInputTransform((_this).Config(), input) + output = _out0 + return output + } +} +func (_this *DynamoDbEncryptionTransformsClient) BatchExecuteStatementOutputTransform(input m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.BatchExecuteStatementOutputTransformInput) m_Wrappers.Result { + { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_BatchExecuteStatementOutputTransformOutput_.Default()) + _ = output + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsOperations.Companion_Default___.BatchExecuteStatementOutputTransform((_this).Config(), input) + output = _out0 + return output + } +} +func (_this *DynamoDbEncryptionTransformsClient) ExecuteTransactionInputTransform(input m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.ExecuteTransactionInputTransformInput) m_Wrappers.Result { + { + var output m_Wrappers.Result = m_Wrappers.Result{} + _ = output + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsOperations.Companion_Default___.ExecuteTransactionInputTransform((_this).Config(), input) + output = _out0 + return output + } +} +func (_this *DynamoDbEncryptionTransformsClient) ExecuteTransactionOutputTransform(input m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.ExecuteTransactionOutputTransformInput) m_Wrappers.Result { + { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_ExecuteTransactionOutputTransformOutput_.Default()) + _ = output + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsOperations.Companion_Default___.ExecuteTransactionOutputTransform((_this).Config(), input) + output = _out0 + return output + } +} +func (_this *DynamoDbEncryptionTransformsClient) ResolveAttributes(input m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.ResolveAttributesInput) m_Wrappers.Result { + { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_ResolveAttributesOutput_.Default()) + _ = output + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsOperations.Companion_Default___.ResolveAttributes((_this).Config(), input) + output = _out0 + return output + } +} +func (_this *DynamoDbEncryptionTransformsClient) Config() m_DdbMiddlewareConfig.Config { + { + return _this._config + } +} + +// End of class DynamoDbEncryptionTransformsClient diff --git a/customer-preview/ddb-esdk/DynamoDbEncryptionUtil/DynamoDbEncryptionUtil.go b/customer-preview/ddb-esdk/DynamoDbEncryptionUtil/DynamoDbEncryptionUtil.go new file mode 100644 index 000000000..3512f11d9 --- /dev/null +++ b/customer-preview/ddb-esdk/DynamoDbEncryptionUtil/DynamoDbEncryptionUtil.go @@ -0,0 +1,688 @@ +// Package DynamoDbEncryptionUtil +// Dafny module DynamoDbEncryptionUtil compiled into Go + +package DynamoDbEncryptionUtil + +import ( + os "os" + + m_ComAmazonawsDynamodbTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/ComAmazonawsDynamodbTypes" + m_Com_Amazonaws_Dynamodb "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/Com_Amazonaws_Dynamodb" + m_ComAmazonawsKmsTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/ComAmazonawsKmsTypes" + m_Com_Amazonaws_Kms "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/Com_Amazonaws_Kms" + m_AlgorithmSuites "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AlgorithmSuites" + m_AwsArnParsing "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsArnParsing" + m_AwsCryptographyKeyStoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreOperations" + m_AwsCryptographyKeyStoreTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreTypes" + m_AwsCryptographyMaterialProvidersOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersOperations" + m_AwsCryptographyMaterialProvidersTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersTypes" + m_AwsKmsDiscoveryKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsDiscoveryKeyring" + m_AwsKmsEcdhKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsEcdhKeyring" + m_AwsKmsHierarchicalKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsHierarchicalKeyring" + m_AwsKmsKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsKeyring" + m_AwsKmsMrkAreUnique "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkAreUnique" + m_AwsKmsMrkDiscoveryKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkDiscoveryKeyring" + m_AwsKmsMrkKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkKeyring" + m_AwsKmsMrkMatchForDecrypt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkMatchForDecrypt" + m_AwsKmsRsaKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsRsaKeyring" + m_AwsKmsUtils "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsUtils" + m_CMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CMM" + m_CacheConstants "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CacheConstants" + m_CanonicalEncryptionContext "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CanonicalEncryptionContext" + m_Commitment "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Commitment" + m_Constants "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Constants" + m_CreateKeyStoreTable "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeyStoreTable" + m_CreateKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeys" + m_DDBKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DDBKeystoreOperations" + m_DefaultCMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DefaultCMM" + m_DefaultClientSupplier "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DefaultClientSupplier" + m_Defaults "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Defaults" + m_DiscoveryMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DiscoveryMultiKeyring" + m_EcdhEdkWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/EcdhEdkWrapping" + m_EdkWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/EdkWrapping" + m_ErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/ErrorMessages" + m_GetKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/GetKeys" + m_IntermediateKeyWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/IntermediateKeyWrapping" + m_KMSKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KMSKeystoreOperations" + m_KeyStore "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStore" + m_KeyStoreErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStoreErrorMessages" + m_Keyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Keyring" + m_KmsArn "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KmsArn" + m_LocalCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/LocalCMC" + m_MaterialProviders "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MaterialProviders" + m_MaterialWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MaterialWrapping" + m_Materials "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Materials" + m_MrkAwareDiscoveryMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MrkAwareDiscoveryMultiKeyring" + m_MrkAwareStrictMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MrkAwareStrictMultiKeyring" + m_MultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MultiKeyring" + m_RawAESKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawAESKeyring" + m_RawECDHKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawECDHKeyring" + m_RawRSAKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawRSAKeyring" + m_RequiredEncryptionContextCMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RequiredEncryptionContextCMM" + m_StormTracker "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StormTracker" + m_StormTrackingCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StormTrackingCMC" + m_StrictMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StrictMultiKeyring" + m_Structure "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Structure" + m_SynchronizedLocalCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/SynchronizedLocalCMC" + m_Utils "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Utils" + m_AtomicPrimitives "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AtomicPrimitives" + m_AwsCryptographyPrimitivesOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesOperations" + m_AwsCryptographyPrimitivesTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesTypes" + m_Digest "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Digest" + m_HKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/HKDF" + m_KdfCtr "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/KdfCtr" + m_Random "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Random" + m_WrappedHKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHKDF" + m_WrappedHMAC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHMAC" + m_Actions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Actions" + m_Base64 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64" + m_Base64Lemmas "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64Lemmas" + m_BoundedInts "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/BoundedInts" + m_DivInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternals" + m_DivInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternalsNonlinear" + m_DivMod "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivMod" + m_FileIO "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FileIO" + m_FloatCompare "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FloatCompare" + m_Functions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Functions" + m_GeneralInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GeneralInternals" + m_GetOpt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GetOpt" + m_HexStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/HexStrings" + m_Logarithm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Logarithm" + m__Math "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Math_" + m_ModInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternals" + m_ModInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternalsNonlinear" + m_Mul "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Mul" + m_MulInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternals" + m_MulInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternalsNonlinear" + m_Power "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Power" + m_Relations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Relations" + m_Seq "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq" + m_Seq_MergeSort "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq_MergeSort" + m_Sorting "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Sorting" + m_StandardLibrary "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary" + m_StandardLibraryInterop "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibraryInterop" + m_StandardLibrary_Sequence "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_Sequence" + m_StandardLibrary_String "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_String" + m_StandardLibrary_UInt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_UInt" + m_Streams "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Streams" + m_UnicodeStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UnicodeStrings" + m__Unicode "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Unicode_" + m_Utf16EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf16EncodingForm" + m_Utf8EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf8EncodingForm" + m_Wrappers "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers" + m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes" + m_AwsCryptographyDbEncryptionSdkDynamoDbTypes "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbTypes" + m_AwsCryptographyDbEncryptionSdkStructuredEncryptionOperations "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkStructuredEncryptionOperations" + m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes" + m_Canonize "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/Canonize" + m__Maps "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/Maps_" + m_Sets "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/Sets" + m_SortCanon "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/SortCanon" + m_StructuredEncryption "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryption" + m_StructuredEncryptionCrypt "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionCrypt" + m_StructuredEncryptionFooter "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionFooter" + m_StructuredEncryptionHeader "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionHeader" + m_StructuredEncryptionPaths "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionPaths" + m_StructuredEncryptionUtil "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionUtil" + m__System "github.com/dafny-lang/DafnyRuntimeGo/v4/System_" + _dafny "github.com/dafny-lang/DafnyRuntimeGo/v4/dafny" +) + +var _ = os.Args +var _ _dafny.Dummy__ +var _ m__System.Dummy__ +var _ m_Wrappers.Dummy__ +var _ m_BoundedInts.Dummy__ +var _ m_StandardLibrary_UInt.Dummy__ +var _ m_StandardLibrary_Sequence.Dummy__ +var _ m_StandardLibrary_String.Dummy__ +var _ m_StandardLibrary.Dummy__ +var _ m_AwsCryptographyPrimitivesTypes.Dummy__ +var _ m_Random.Dummy__ +var _ m_Digest.Dummy__ +var _ m_WrappedHMAC.Dummy__ +var _ m_HKDF.Dummy__ +var _ m_WrappedHKDF.Dummy__ +var _ m_KdfCtr.Dummy__ +var _ m_AwsCryptographyPrimitivesOperations.Dummy__ +var _ m_AtomicPrimitives.Dummy__ +var _ m_ComAmazonawsDynamodbTypes.Dummy__ +var _ m_ComAmazonawsKmsTypes.Dummy__ +var _ m_AwsCryptographyKeyStoreTypes.Dummy__ +var _ m_AwsCryptographyMaterialProvidersTypes.Dummy__ +var _ m_Base64.Dummy__ +var _ m_AlgorithmSuites.Dummy__ +var _ m_Materials.Dummy__ +var _ m_Keyring.Dummy__ +var _ m_Relations.Dummy__ +var _ m_Seq_MergeSort.Dummy__ +var _ m__Math.Dummy__ +var _ m_Seq.Dummy__ +var _ m_MultiKeyring.Dummy__ +var _ m_AwsArnParsing.Dummy__ +var _ m_AwsKmsMrkAreUnique.Dummy__ +var _ m_Actions.Dummy__ +var _ m_AwsKmsMrkMatchForDecrypt.Dummy__ +var _ m_AwsKmsUtils.Dummy__ +var _ m_Constants.Dummy__ +var _ m_MaterialWrapping.Dummy__ +var _ m_CanonicalEncryptionContext.Dummy__ +var _ m_IntermediateKeyWrapping.Dummy__ +var _ m_EdkWrapping.Dummy__ +var _ m_ErrorMessages.Dummy__ +var _ m_AwsKmsKeyring.Dummy__ +var _ m_StrictMultiKeyring.Dummy__ +var _ m_AwsKmsDiscoveryKeyring.Dummy__ +var _ m_Com_Amazonaws_Kms.Dummy__ +var _ m_Com_Amazonaws_Dynamodb.Dummy__ +var _ m_DiscoveryMultiKeyring.Dummy__ +var _ m_AwsKmsMrkDiscoveryKeyring.Dummy__ +var _ m_MrkAwareDiscoveryMultiKeyring.Dummy__ +var _ m_AwsKmsMrkKeyring.Dummy__ +var _ m_MrkAwareStrictMultiKeyring.Dummy__ +var _ m_LocalCMC.Dummy__ +var _ m_SynchronizedLocalCMC.Dummy__ +var _ m_StormTracker.Dummy__ +var _ m_StormTrackingCMC.Dummy__ +var _ m_CacheConstants.Dummy__ +var _ m_AwsKmsHierarchicalKeyring.Dummy__ +var _ m_AwsKmsRsaKeyring.Dummy__ +var _ m_EcdhEdkWrapping.Dummy__ +var _ m_RawECDHKeyring.Dummy__ +var _ m_AwsKmsEcdhKeyring.Dummy__ +var _ m_RawAESKeyring.Dummy__ +var _ m_RawRSAKeyring.Dummy__ +var _ m_CMM.Dummy__ +var _ m_Defaults.Dummy__ +var _ m_Commitment.Dummy__ +var _ m_DefaultCMM.Dummy__ +var _ m_DefaultClientSupplier.Dummy__ +var _ m_Utils.Dummy__ +var _ m_RequiredEncryptionContextCMM.Dummy__ +var _ m_AwsCryptographyMaterialProvidersOperations.Dummy__ +var _ m_MaterialProviders.Dummy__ +var _ m_KeyStoreErrorMessages.Dummy__ +var _ m_KmsArn.Dummy__ +var _ m_Structure.Dummy__ +var _ m_KMSKeystoreOperations.Dummy__ +var _ m_DDBKeystoreOperations.Dummy__ +var _ m_CreateKeys.Dummy__ +var _ m_CreateKeyStoreTable.Dummy__ +var _ m_GetKeys.Dummy__ +var _ m_AwsCryptographyKeyStoreOperations.Dummy__ +var _ m_KeyStore.Dummy__ +var _ m__Unicode.Dummy__ +var _ m_Functions.Dummy__ +var _ m_Utf8EncodingForm.Dummy__ +var _ m_Utf16EncodingForm.Dummy__ +var _ m_UnicodeStrings.Dummy__ +var _ m_FileIO.Dummy__ +var _ m_GeneralInternals.Dummy__ +var _ m_MulInternalsNonlinear.Dummy__ +var _ m_MulInternals.Dummy__ +var _ m_Mul.Dummy__ +var _ m_ModInternalsNonlinear.Dummy__ +var _ m_DivInternalsNonlinear.Dummy__ +var _ m_ModInternals.Dummy__ +var _ m_DivInternals.Dummy__ +var _ m_DivMod.Dummy__ +var _ m_Power.Dummy__ +var _ m_Logarithm.Dummy__ +var _ m_StandardLibraryInterop.Dummy__ +var _ m_Streams.Dummy__ +var _ m_Sorting.Dummy__ +var _ m_HexStrings.Dummy__ +var _ m_GetOpt.Dummy__ +var _ m_FloatCompare.Dummy__ +var _ m_Base64Lemmas.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Dummy__ +var _ m_StructuredEncryptionUtil.Dummy__ +var _ m_Sets.Dummy__ +var _ m_StructuredEncryptionPaths.Dummy__ +var _ m_StructuredEncryptionHeader.Dummy__ +var _ m_StructuredEncryptionFooter.Dummy__ +var _ m_SortCanon.Dummy__ +var _ m_Canonize.Dummy__ +var _ m_StructuredEncryptionCrypt.Dummy__ +var _ m__Maps.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkStructuredEncryptionOperations.Dummy__ +var _ m_StructuredEncryption.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Dummy__ + +type Dummy__ struct{} + +// Definition of class Default__ +type Default__ struct { + dummy byte +} + +func New_Default___() *Default__ { + _this := Default__{} + + return &_this +} + +type CompanionStruct_Default___ struct { +} + +var Companion_Default___ = CompanionStruct_Default___{} + +func (_this *Default__) Equals(other *Default__) bool { + return _this == other +} + +func (_this *Default__) EqualsGeneric(x interface{}) bool { + other, ok := x.(*Default__) + return ok && _this.Equals(other) +} + +func (*Default__) String() string { + return "DynamoDbEncryptionUtil.Default__" +} +func (_this *Default__) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = &Default__{} + +func (_static *CompanionStruct_Default___) MaybeFromOptionKeyId(x m_Wrappers.Option) MaybeKeyId { + if (x).Is_Some() { + return Companion_MaybeKeyId_.Create_KeyId_((x).Dtor_value().(_dafny.Sequence)) + } else { + return Companion_MaybeKeyId_.Create_DontUseKeyId_() + } +} +func (_static *CompanionStruct_Default___) E(s _dafny.Sequence) m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Error { + return m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_Error_.Create_DynamoDbEncryptionException_(s) +} +func (_static *CompanionStruct_Default___) CharLess(x _dafny.Char, y _dafny.Char) bool { + return (x) < (y) +} +func (_static *CompanionStruct_Default___) ByteLess(x uint8, y uint8) bool { + return (x) < (y) +} +func (_static *CompanionStruct_Default___) AttrTypeToStr(attr m_ComAmazonawsDynamodbTypes.AttributeValue) _dafny.Sequence { + var _source0 m_ComAmazonawsDynamodbTypes.AttributeValue = attr + _ = _source0 + { + if _source0.Is_S() { + var _0_s _dafny.Sequence = _source0.Get_().(m_ComAmazonawsDynamodbTypes.AttributeValue_S).S + _ = _0_s + return _dafny.SeqOfString("S") + } + } + { + if _source0.Is_N() { + var _1_n _dafny.Sequence = _source0.Get_().(m_ComAmazonawsDynamodbTypes.AttributeValue_N).N + _ = _1_n + return _dafny.SeqOfString("N") + } + } + { + if _source0.Is_B() { + var _2_n _dafny.Sequence = _source0.Get_().(m_ComAmazonawsDynamodbTypes.AttributeValue_B).B + _ = _2_n + return _dafny.SeqOfString("B") + } + } + { + if _source0.Is_SS() { + var _3_n _dafny.Sequence = _source0.Get_().(m_ComAmazonawsDynamodbTypes.AttributeValue_SS).SS + _ = _3_n + return _dafny.SeqOfString("SS") + } + } + { + if _source0.Is_NS() { + var _4_n _dafny.Sequence = _source0.Get_().(m_ComAmazonawsDynamodbTypes.AttributeValue_NS).NS + _ = _4_n + return _dafny.SeqOfString("NS") + } + } + { + if _source0.Is_BS() { + var _5_n _dafny.Sequence = _source0.Get_().(m_ComAmazonawsDynamodbTypes.AttributeValue_BS).BS + _ = _5_n + return _dafny.SeqOfString("BS") + } + } + { + if _source0.Is_M() { + var _6_n _dafny.Map = _source0.Get_().(m_ComAmazonawsDynamodbTypes.AttributeValue_M).M + _ = _6_n + return _dafny.SeqOfString("M") + } + } + { + if _source0.Is_L() { + var _7_n _dafny.Sequence = _source0.Get_().(m_ComAmazonawsDynamodbTypes.AttributeValue_L).L + _ = _7_n + return _dafny.SeqOfString("L") + } + } + { + if _source0.Is_NULL() { + var _8_n bool = _source0.Get_().(m_ComAmazonawsDynamodbTypes.AttributeValue_NULL).NULL + _ = _8_n + return _dafny.SeqOfString("NULL") + } + } + { + var _9_n bool = _source0.Get_().(m_ComAmazonawsDynamodbTypes.AttributeValue_BOOL).BOOL + _ = _9_n + return _dafny.SeqOfString("BOOL") + } +} +func (_static *CompanionStruct_Default___) PrintFromFunction(x interface{}) _dafny.Tuple { + var _hresult _dafny.Tuple = _dafny.TupleOf() + _ = _hresult + _dafny.Print(x) + _dafny.Print((_dafny.SeqOfString("\n")).SetString()) + _hresult = _dafny.TupleOf() + return _hresult + return _hresult +} +func (_static *CompanionStruct_Default___) ReservedPrefix() _dafny.Sequence { + return _dafny.SeqOfString("aws_dbe_") +} +func (_static *CompanionStruct_Default___) BeaconPrefix() _dafny.Sequence { + return _dafny.SeqOfString("aws_dbe_b_") +} +func (_static *CompanionStruct_Default___) VersionPrefix() _dafny.Sequence { + return _dafny.SeqOfString("aws_dbe_v_") +} +func (_static *CompanionStruct_Default___) MAX__STRUCTURE__DEPTH() _dafny.Int { + return _dafny.IntOfInt64(32) +} +func (_static *CompanionStruct_Default___) MAX__STRUCTURE__DEPTH__STR() _dafny.Sequence { + return _dafny.SeqOfString("32") +} + +// End of class Default__ + +// Definition of datatype MaybeKeyMap +type MaybeKeyMap struct { + Data_MaybeKeyMap_ +} + +func (_this MaybeKeyMap) Get_() Data_MaybeKeyMap_ { + return _this.Data_MaybeKeyMap_ +} + +type Data_MaybeKeyMap_ interface { + isMaybeKeyMap() +} + +type CompanionStruct_MaybeKeyMap_ struct { +} + +var Companion_MaybeKeyMap_ = CompanionStruct_MaybeKeyMap_{} + +type MaybeKeyMap_DontUseKeys struct { +} + +func (MaybeKeyMap_DontUseKeys) isMaybeKeyMap() {} + +func (CompanionStruct_MaybeKeyMap_) Create_DontUseKeys_() MaybeKeyMap { + return MaybeKeyMap{MaybeKeyMap_DontUseKeys{}} +} + +func (_this MaybeKeyMap) Is_DontUseKeys() bool { + _, ok := _this.Get_().(MaybeKeyMap_DontUseKeys) + return ok +} + +type MaybeKeyMap_ShouldHaveKeys struct { +} + +func (MaybeKeyMap_ShouldHaveKeys) isMaybeKeyMap() {} + +func (CompanionStruct_MaybeKeyMap_) Create_ShouldHaveKeys_() MaybeKeyMap { + return MaybeKeyMap{MaybeKeyMap_ShouldHaveKeys{}} +} + +func (_this MaybeKeyMap) Is_ShouldHaveKeys() bool { + _, ok := _this.Get_().(MaybeKeyMap_ShouldHaveKeys) + return ok +} + +type MaybeKeyMap_Keys struct { + Value _dafny.Map +} + +func (MaybeKeyMap_Keys) isMaybeKeyMap() {} + +func (CompanionStruct_MaybeKeyMap_) Create_Keys_(Value _dafny.Map) MaybeKeyMap { + return MaybeKeyMap{MaybeKeyMap_Keys{Value}} +} + +func (_this MaybeKeyMap) Is_Keys() bool { + _, ok := _this.Get_().(MaybeKeyMap_Keys) + return ok +} + +func (CompanionStruct_MaybeKeyMap_) Default() MaybeKeyMap { + return Companion_MaybeKeyMap_.Create_DontUseKeys_() +} + +func (_this MaybeKeyMap) Dtor_value() _dafny.Map { + return _this.Get_().(MaybeKeyMap_Keys).Value +} + +func (_this MaybeKeyMap) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case MaybeKeyMap_DontUseKeys: + { + return "DynamoDbEncryptionUtil.MaybeKeyMap.DontUseKeys" + } + case MaybeKeyMap_ShouldHaveKeys: + { + return "DynamoDbEncryptionUtil.MaybeKeyMap.ShouldHaveKeys" + } + case MaybeKeyMap_Keys: + { + return "DynamoDbEncryptionUtil.MaybeKeyMap.Keys" + "(" + _dafny.String(data.Value) + ")" + } + default: + { + return "" + } + } +} + +func (_this MaybeKeyMap) Equals(other MaybeKeyMap) bool { + switch data1 := _this.Get_().(type) { + case MaybeKeyMap_DontUseKeys: + { + _, ok := other.Get_().(MaybeKeyMap_DontUseKeys) + return ok + } + case MaybeKeyMap_ShouldHaveKeys: + { + _, ok := other.Get_().(MaybeKeyMap_ShouldHaveKeys) + return ok + } + case MaybeKeyMap_Keys: + { + data2, ok := other.Get_().(MaybeKeyMap_Keys) + return ok && data1.Value.Equals(data2.Value) + } + default: + { + return false // unexpected + } + } +} + +func (_this MaybeKeyMap) EqualsGeneric(other interface{}) bool { + typed, ok := other.(MaybeKeyMap) + return ok && _this.Equals(typed) +} + +func Type_MaybeKeyMap_() _dafny.TypeDescriptor { + return type_MaybeKeyMap_{} +} + +type type_MaybeKeyMap_ struct { +} + +func (_this type_MaybeKeyMap_) Default() interface{} { + return Companion_MaybeKeyMap_.Default() +} + +func (_this type_MaybeKeyMap_) String() string { + return "DynamoDbEncryptionUtil.MaybeKeyMap" +} +func (_this MaybeKeyMap) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = MaybeKeyMap{} + +// End of datatype MaybeKeyMap + +// Definition of datatype MaybeKeyId +type MaybeKeyId struct { + Data_MaybeKeyId_ +} + +func (_this MaybeKeyId) Get_() Data_MaybeKeyId_ { + return _this.Data_MaybeKeyId_ +} + +type Data_MaybeKeyId_ interface { + isMaybeKeyId() +} + +type CompanionStruct_MaybeKeyId_ struct { +} + +var Companion_MaybeKeyId_ = CompanionStruct_MaybeKeyId_{} + +type MaybeKeyId_DontUseKeyId struct { +} + +func (MaybeKeyId_DontUseKeyId) isMaybeKeyId() {} + +func (CompanionStruct_MaybeKeyId_) Create_DontUseKeyId_() MaybeKeyId { + return MaybeKeyId{MaybeKeyId_DontUseKeyId{}} +} + +func (_this MaybeKeyId) Is_DontUseKeyId() bool { + _, ok := _this.Get_().(MaybeKeyId_DontUseKeyId) + return ok +} + +type MaybeKeyId_ShouldHaveKeyId struct { +} + +func (MaybeKeyId_ShouldHaveKeyId) isMaybeKeyId() {} + +func (CompanionStruct_MaybeKeyId_) Create_ShouldHaveKeyId_() MaybeKeyId { + return MaybeKeyId{MaybeKeyId_ShouldHaveKeyId{}} +} + +func (_this MaybeKeyId) Is_ShouldHaveKeyId() bool { + _, ok := _this.Get_().(MaybeKeyId_ShouldHaveKeyId) + return ok +} + +type MaybeKeyId_KeyId struct { + Value _dafny.Sequence +} + +func (MaybeKeyId_KeyId) isMaybeKeyId() {} + +func (CompanionStruct_MaybeKeyId_) Create_KeyId_(Value _dafny.Sequence) MaybeKeyId { + return MaybeKeyId{MaybeKeyId_KeyId{Value}} +} + +func (_this MaybeKeyId) Is_KeyId() bool { + _, ok := _this.Get_().(MaybeKeyId_KeyId) + return ok +} + +func (CompanionStruct_MaybeKeyId_) Default() MaybeKeyId { + return Companion_MaybeKeyId_.Create_DontUseKeyId_() +} + +func (_this MaybeKeyId) Dtor_value() _dafny.Sequence { + return _this.Get_().(MaybeKeyId_KeyId).Value +} + +func (_this MaybeKeyId) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case MaybeKeyId_DontUseKeyId: + { + return "DynamoDbEncryptionUtil.MaybeKeyId.DontUseKeyId" + } + case MaybeKeyId_ShouldHaveKeyId: + { + return "DynamoDbEncryptionUtil.MaybeKeyId.ShouldHaveKeyId" + } + case MaybeKeyId_KeyId: + { + return "DynamoDbEncryptionUtil.MaybeKeyId.KeyId" + "(" + _dafny.String(data.Value) + ")" + } + default: + { + return "" + } + } +} + +func (_this MaybeKeyId) Equals(other MaybeKeyId) bool { + switch data1 := _this.Get_().(type) { + case MaybeKeyId_DontUseKeyId: + { + _, ok := other.Get_().(MaybeKeyId_DontUseKeyId) + return ok + } + case MaybeKeyId_ShouldHaveKeyId: + { + _, ok := other.Get_().(MaybeKeyId_ShouldHaveKeyId) + return ok + } + case MaybeKeyId_KeyId: + { + data2, ok := other.Get_().(MaybeKeyId_KeyId) + return ok && data1.Value.Equals(data2.Value) + } + default: + { + return false // unexpected + } + } +} + +func (_this MaybeKeyId) EqualsGeneric(other interface{}) bool { + typed, ok := other.(MaybeKeyId) + return ok && _this.Equals(typed) +} + +func Type_MaybeKeyId_() _dafny.TypeDescriptor { + return type_MaybeKeyId_{} +} + +type type_MaybeKeyId_ struct { +} + +func (_this type_MaybeKeyId_) Default() interface{} { + return Companion_MaybeKeyId_.Default() +} + +func (_this type_MaybeKeyId_) String() string { + return "DynamoDbEncryptionUtil.MaybeKeyId" +} +func (_this MaybeKeyId) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = MaybeKeyId{} + +// End of datatype MaybeKeyId diff --git a/customer-preview/ddb-esdk/DynamoDbItemEncryptor/DynamoDbItemEncryptor.go b/customer-preview/ddb-esdk/DynamoDbItemEncryptor/DynamoDbItemEncryptor.go new file mode 100644 index 000000000..5e3118082 --- /dev/null +++ b/customer-preview/ddb-esdk/DynamoDbItemEncryptor/DynamoDbItemEncryptor.go @@ -0,0 +1,591 @@ +// Package DynamoDbItemEncryptor +// Dafny module DynamoDbItemEncryptor compiled into Go + +package DynamoDbItemEncryptor + +import ( + os "os" + + m_ComAmazonawsDynamodbTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/ComAmazonawsDynamodbTypes" + m_Com_Amazonaws_Dynamodb "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/Com_Amazonaws_Dynamodb" + m_ComAmazonawsKmsTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/ComAmazonawsKmsTypes" + m_Com_Amazonaws_Kms "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/Com_Amazonaws_Kms" + m_AlgorithmSuites "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AlgorithmSuites" + m_AwsArnParsing "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsArnParsing" + m_AwsCryptographyKeyStoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreOperations" + m_AwsCryptographyKeyStoreTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreTypes" + m_AwsCryptographyMaterialProvidersOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersOperations" + m_AwsCryptographyMaterialProvidersTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersTypes" + m_AwsKmsDiscoveryKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsDiscoveryKeyring" + m_AwsKmsEcdhKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsEcdhKeyring" + m_AwsKmsHierarchicalKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsHierarchicalKeyring" + m_AwsKmsKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsKeyring" + m_AwsKmsMrkAreUnique "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkAreUnique" + m_AwsKmsMrkDiscoveryKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkDiscoveryKeyring" + m_AwsKmsMrkKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkKeyring" + m_AwsKmsMrkMatchForDecrypt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkMatchForDecrypt" + m_AwsKmsRsaKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsRsaKeyring" + m_AwsKmsUtils "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsUtils" + m_CMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CMM" + m_CacheConstants "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CacheConstants" + m_CanonicalEncryptionContext "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CanonicalEncryptionContext" + m_Commitment "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Commitment" + m_Constants "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Constants" + m_CreateKeyStoreTable "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeyStoreTable" + m_CreateKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeys" + m_DDBKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DDBKeystoreOperations" + m_DefaultCMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DefaultCMM" + m_DefaultClientSupplier "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DefaultClientSupplier" + m_Defaults "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Defaults" + m_DiscoveryMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DiscoveryMultiKeyring" + m_EcdhEdkWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/EcdhEdkWrapping" + m_EdkWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/EdkWrapping" + m_ErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/ErrorMessages" + m_GetKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/GetKeys" + m_IntermediateKeyWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/IntermediateKeyWrapping" + m_KMSKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KMSKeystoreOperations" + m_KeyStore "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStore" + m_KeyStoreErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStoreErrorMessages" + m_Keyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Keyring" + m_KmsArn "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KmsArn" + m_LocalCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/LocalCMC" + m_MaterialProviders "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MaterialProviders" + m_MaterialWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MaterialWrapping" + m_Materials "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Materials" + m_MrkAwareDiscoveryMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MrkAwareDiscoveryMultiKeyring" + m_MrkAwareStrictMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MrkAwareStrictMultiKeyring" + m_MultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MultiKeyring" + m_RawAESKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawAESKeyring" + m_RawECDHKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawECDHKeyring" + m_RawRSAKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawRSAKeyring" + m_RequiredEncryptionContextCMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RequiredEncryptionContextCMM" + m_StormTracker "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StormTracker" + m_StormTrackingCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StormTrackingCMC" + m_StrictMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StrictMultiKeyring" + m_Structure "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Structure" + m_SynchronizedLocalCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/SynchronizedLocalCMC" + m_Utils "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Utils" + m_AtomicPrimitives "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AtomicPrimitives" + m_AwsCryptographyPrimitivesOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesOperations" + m_AwsCryptographyPrimitivesTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesTypes" + m_Digest "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Digest" + m_HKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/HKDF" + m_KdfCtr "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/KdfCtr" + m_Random "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Random" + m_WrappedHKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHKDF" + m_WrappedHMAC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHMAC" + m_Actions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Actions" + m_Base64 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64" + m_Base64Lemmas "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64Lemmas" + m_BoundedInts "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/BoundedInts" + m_DivInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternals" + m_DivInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternalsNonlinear" + m_DivMod "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivMod" + m_FileIO "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FileIO" + m_FloatCompare "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FloatCompare" + m_Functions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Functions" + m_GeneralInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GeneralInternals" + m_GetOpt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GetOpt" + m_HexStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/HexStrings" + m_Logarithm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Logarithm" + m__Math "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Math_" + m_ModInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternals" + m_ModInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternalsNonlinear" + m_Mul "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Mul" + m_MulInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternals" + m_MulInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternalsNonlinear" + m_Power "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Power" + m_Relations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Relations" + m_Seq "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq" + m_Seq_MergeSort "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq_MergeSort" + m_SortedSets "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/SortedSets" + m_Sorting "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Sorting" + m_StandardLibrary "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary" + m_StandardLibraryInterop "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibraryInterop" + m_StandardLibrary_Sequence "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_Sequence" + m_StandardLibrary_String "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_String" + m_StandardLibrary_UInt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_UInt" + m_Streams "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Streams" + m_UnicodeStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UnicodeStrings" + m__Unicode "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Unicode_" + m_Utf16EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf16EncodingForm" + m_Utf8EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf8EncodingForm" + m_Wrappers "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers" + m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorOperations "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorOperations" + m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes" + m_AwsCryptographyDbEncryptionSdkDynamoDbTypes "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbTypes" + m_AwsCryptographyDbEncryptionSdkStructuredEncryptionOperations "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkStructuredEncryptionOperations" + m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes" + m_Canonize "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/Canonize" + m_DynamoDbEncryptionUtil "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbEncryptionUtil" + m_DynamoDbItemEncryptorUtil "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbItemEncryptorUtil" + m_DynamoDbNormalizeNumber "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbNormalizeNumber" + m_DynamoToStruct "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoToStruct" + m_InternalLegacyOverride "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/InternalLegacyOverride" + m__Maps "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/Maps_" + m_Sets "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/Sets" + m_SortCanon "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/SortCanon" + m_StructuredEncryption "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryption" + m_StructuredEncryptionCrypt "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionCrypt" + m_StructuredEncryptionFooter "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionFooter" + m_StructuredEncryptionHeader "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionHeader" + m_StructuredEncryptionPaths "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionPaths" + m_StructuredEncryptionUtil "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionUtil" + m__System "github.com/dafny-lang/DafnyRuntimeGo/v4/System_" + _dafny "github.com/dafny-lang/DafnyRuntimeGo/v4/dafny" +) + +var _ = os.Args +var _ _dafny.Dummy__ +var _ m__System.Dummy__ +var _ m_Wrappers.Dummy__ +var _ m_BoundedInts.Dummy__ +var _ m_StandardLibrary_UInt.Dummy__ +var _ m_StandardLibrary_Sequence.Dummy__ +var _ m_StandardLibrary_String.Dummy__ +var _ m_StandardLibrary.Dummy__ +var _ m_AwsCryptographyPrimitivesTypes.Dummy__ +var _ m_Random.Dummy__ +var _ m_Digest.Dummy__ +var _ m_WrappedHMAC.Dummy__ +var _ m_HKDF.Dummy__ +var _ m_WrappedHKDF.Dummy__ +var _ m_KdfCtr.Dummy__ +var _ m_AwsCryptographyPrimitivesOperations.Dummy__ +var _ m_AtomicPrimitives.Dummy__ +var _ m_ComAmazonawsDynamodbTypes.Dummy__ +var _ m_ComAmazonawsKmsTypes.Dummy__ +var _ m_AwsCryptographyKeyStoreTypes.Dummy__ +var _ m_AwsCryptographyMaterialProvidersTypes.Dummy__ +var _ m_Base64.Dummy__ +var _ m_AlgorithmSuites.Dummy__ +var _ m_Materials.Dummy__ +var _ m_Keyring.Dummy__ +var _ m_Relations.Dummy__ +var _ m_Seq_MergeSort.Dummy__ +var _ m__Math.Dummy__ +var _ m_Seq.Dummy__ +var _ m_MultiKeyring.Dummy__ +var _ m_AwsArnParsing.Dummy__ +var _ m_AwsKmsMrkAreUnique.Dummy__ +var _ m_Actions.Dummy__ +var _ m_AwsKmsMrkMatchForDecrypt.Dummy__ +var _ m_AwsKmsUtils.Dummy__ +var _ m_Constants.Dummy__ +var _ m_MaterialWrapping.Dummy__ +var _ m_CanonicalEncryptionContext.Dummy__ +var _ m_IntermediateKeyWrapping.Dummy__ +var _ m_EdkWrapping.Dummy__ +var _ m_ErrorMessages.Dummy__ +var _ m_AwsKmsKeyring.Dummy__ +var _ m_StrictMultiKeyring.Dummy__ +var _ m_AwsKmsDiscoveryKeyring.Dummy__ +var _ m_Com_Amazonaws_Kms.Dummy__ +var _ m_Com_Amazonaws_Dynamodb.Dummy__ +var _ m_DiscoveryMultiKeyring.Dummy__ +var _ m_AwsKmsMrkDiscoveryKeyring.Dummy__ +var _ m_MrkAwareDiscoveryMultiKeyring.Dummy__ +var _ m_AwsKmsMrkKeyring.Dummy__ +var _ m_MrkAwareStrictMultiKeyring.Dummy__ +var _ m_LocalCMC.Dummy__ +var _ m_SynchronizedLocalCMC.Dummy__ +var _ m_StormTracker.Dummy__ +var _ m_StormTrackingCMC.Dummy__ +var _ m_CacheConstants.Dummy__ +var _ m_AwsKmsHierarchicalKeyring.Dummy__ +var _ m_AwsKmsRsaKeyring.Dummy__ +var _ m_EcdhEdkWrapping.Dummy__ +var _ m_RawECDHKeyring.Dummy__ +var _ m_AwsKmsEcdhKeyring.Dummy__ +var _ m_RawAESKeyring.Dummy__ +var _ m_RawRSAKeyring.Dummy__ +var _ m_CMM.Dummy__ +var _ m_Defaults.Dummy__ +var _ m_Commitment.Dummy__ +var _ m_DefaultCMM.Dummy__ +var _ m_DefaultClientSupplier.Dummy__ +var _ m_Utils.Dummy__ +var _ m_RequiredEncryptionContextCMM.Dummy__ +var _ m_AwsCryptographyMaterialProvidersOperations.Dummy__ +var _ m_MaterialProviders.Dummy__ +var _ m_KeyStoreErrorMessages.Dummy__ +var _ m_KmsArn.Dummy__ +var _ m_Structure.Dummy__ +var _ m_KMSKeystoreOperations.Dummy__ +var _ m_DDBKeystoreOperations.Dummy__ +var _ m_CreateKeys.Dummy__ +var _ m_CreateKeyStoreTable.Dummy__ +var _ m_GetKeys.Dummy__ +var _ m_AwsCryptographyKeyStoreOperations.Dummy__ +var _ m_KeyStore.Dummy__ +var _ m__Unicode.Dummy__ +var _ m_Functions.Dummy__ +var _ m_Utf8EncodingForm.Dummy__ +var _ m_Utf16EncodingForm.Dummy__ +var _ m_UnicodeStrings.Dummy__ +var _ m_FileIO.Dummy__ +var _ m_GeneralInternals.Dummy__ +var _ m_MulInternalsNonlinear.Dummy__ +var _ m_MulInternals.Dummy__ +var _ m_Mul.Dummy__ +var _ m_ModInternalsNonlinear.Dummy__ +var _ m_DivInternalsNonlinear.Dummy__ +var _ m_ModInternals.Dummy__ +var _ m_DivInternals.Dummy__ +var _ m_DivMod.Dummy__ +var _ m_Power.Dummy__ +var _ m_Logarithm.Dummy__ +var _ m_StandardLibraryInterop.Dummy__ +var _ m_Streams.Dummy__ +var _ m_Sorting.Dummy__ +var _ m_HexStrings.Dummy__ +var _ m_GetOpt.Dummy__ +var _ m_FloatCompare.Dummy__ +var _ m_Base64Lemmas.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Dummy__ +var _ m_StructuredEncryptionUtil.Dummy__ +var _ m_Sets.Dummy__ +var _ m_StructuredEncryptionPaths.Dummy__ +var _ m_StructuredEncryptionHeader.Dummy__ +var _ m_StructuredEncryptionFooter.Dummy__ +var _ m_SortCanon.Dummy__ +var _ m_Canonize.Dummy__ +var _ m_StructuredEncryptionCrypt.Dummy__ +var _ m__Maps.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkStructuredEncryptionOperations.Dummy__ +var _ m_StructuredEncryption.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Dummy__ +var _ m_DynamoDbEncryptionUtil.Dummy__ +var _ m_DynamoDbNormalizeNumber.Dummy__ +var _ m_DynamoToStruct.Dummy__ +var _ m_DynamoDbItemEncryptorUtil.Dummy__ +var _ m_InternalLegacyOverride.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorOperations.Dummy__ + +type Dummy__ struct{} + +// Definition of class Default__ +type Default__ struct { + dummy byte +} + +func New_Default___() *Default__ { + _this := Default__{} + + return &_this +} + +type CompanionStruct_Default___ struct { +} + +var Companion_Default___ = CompanionStruct_Default___{} + +func (_this *Default__) Equals(other *Default__) bool { + return _this == other +} + +func (_this *Default__) EqualsGeneric(x interface{}) bool { + other, ok := x.(*Default__) + return ok && _this.Equals(other) +} + +func (*Default__) String() string { + return "DynamoDbItemEncryptor.Default__" +} +func (_this *Default__) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = &Default__{} + +func (_static *CompanionStruct_Default___) DefaultDynamoDbItemEncryptorConfig() m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.DynamoDbItemEncryptorConfig { + return m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Companion_DynamoDbItemEncryptorConfig_.Create_DynamoDbItemEncryptorConfig_(_dafny.SeqOfString("foo"), _dafny.SeqOfString("bar"), m_Wrappers.Companion_Option_.Create_None_(), _dafny.NewMapBuilder().ToMap(), m_Wrappers.Companion_Option_.Create_None_(), m_Wrappers.Companion_Option_.Create_None_(), m_Wrappers.Companion_Option_.Create_None_(), m_Wrappers.Companion_Option_.Create_None_(), m_Wrappers.Companion_Option_.Create_None_(), m_Wrappers.Companion_Option_.Create_None_(), m_Wrappers.Companion_Option_.Create_None_()) +} +func (_static *CompanionStruct_Default___) UnreservedPrefix(attr _dafny.Sequence) bool { + return (!(_dafny.Companion_Sequence_.IsPrefixOf(m_DynamoDbItemEncryptorUtil.Companion_Default___.ReservedPrefix(), attr))) && (!(_dafny.Companion_Sequence_.IsPrefixOf(m_StructuredEncryptionUtil.Companion_Default___.ReservedCryptoContextPrefixString(), attr))) +} +func (_static *CompanionStruct_Default___) DynamoDbItemEncryptor(config m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.DynamoDbItemEncryptorConfig) m_Wrappers.Result { + var res m_Wrappers.Result = m_Wrappers.Result{} + _ = res + var _0_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _0_valueOrError0 + _0_valueOrError0 = m_Wrappers.Companion_Default___.Need((((config).Dtor_keyring()).Is_None()) || (((config).Dtor_cmm()).Is_None()), m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Companion_Error_.Create_DynamoDbItemEncryptorException_(_dafny.SeqOfString("Cannot provide both a keyring and a CMM"))) + if (_0_valueOrError0).IsFailure() { + res = (_0_valueOrError0).PropagateFailure() + return res + } + var _1_valueOrError1 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _1_valueOrError1 + _1_valueOrError1 = m_Wrappers.Companion_Default___.Need((((config).Dtor_keyring()).Is_Some()) || (((config).Dtor_cmm()).Is_Some()), m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Companion_Error_.Create_DynamoDbItemEncryptorException_(_dafny.SeqOfString("Must provide either a keyring or a CMM"))) + if (_1_valueOrError1).IsFailure() { + res = (_1_valueOrError1).PropagateFailure() + return res + } + var _2_version uint8 + _ = _2_version + _2_version = m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorOperations.Companion_Default___.VersionFromActions((config).Dtor_attributeActionsOnEncrypt()) + var _3_keyAction m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.CryptoAction + _ = _3_keyAction + _3_keyAction = m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorOperations.Companion_Default___.KeyActionFromVersion(_2_version) + var _4_keyActionStr _dafny.Sequence + _ = _4_keyActionStr + _4_keyActionStr = m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorOperations.Companion_Default___.KeyActionStringFromVersion(_2_version) + var _5_valueOrError2 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _5_valueOrError2 + _5_valueOrError2 = m_Wrappers.Companion_Default___.Need((((config).Dtor_attributeActionsOnEncrypt()).Contains((config).Dtor_partitionKeyName())) && ((((config).Dtor_attributeActionsOnEncrypt()).Get((config).Dtor_partitionKeyName()).(m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.CryptoAction)).Equals(_3_keyAction)), m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Companion_Error_.Create_DynamoDbItemEncryptorException_(_dafny.Companion_Sequence_.Concatenate(_dafny.SeqOfString("Partition key attribute action MUST be "), _4_keyActionStr))) + if (_5_valueOrError2).IsFailure() { + res = (_5_valueOrError2).PropagateFailure() + return res + } + var _6_valueOrError3 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _6_valueOrError3 + _6_valueOrError3 = m_Wrappers.Companion_Default___.Need(!(((config).Dtor_sortKeyName()).Is_Some()) || ((((config).Dtor_attributeActionsOnEncrypt()).Contains(((config).Dtor_sortKeyName()).Dtor_value().(_dafny.Sequence))) && ((((config).Dtor_attributeActionsOnEncrypt()).Get(((config).Dtor_sortKeyName()).Dtor_value().(_dafny.Sequence)).(m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.CryptoAction)).Equals(_3_keyAction))), m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Companion_Error_.Create_DynamoDbItemEncryptorException_(_dafny.Companion_Sequence_.Concatenate(_dafny.SeqOfString("Sort key attribute action MUST be "), _4_keyActionStr))) + if (_6_valueOrError3).IsFailure() { + res = (_6_valueOrError3).PropagateFailure() + return res + } + var _7_attributeNames _dafny.Sequence + _ = _7_attributeNames + _7_attributeNames = m_SortedSets.SetToOrderedSequence2(((config).Dtor_attributeActionsOnEncrypt()).Keys(), func(coer64 func(_dafny.Char, _dafny.Char) bool) func(interface{}, interface{}) bool { + return func(arg87 interface{}, arg88 interface{}) bool { + return coer64(arg87.(_dafny.Char), arg88.(_dafny.Char)) + } + }(m_DynamoDbItemEncryptorUtil.Companion_Default___.CharLess)) + var _hi0 _dafny.Int = _dafny.IntOfUint32((_7_attributeNames).Cardinality()) + _ = _hi0 + for _8_i := _dafny.Zero; _8_i.Cmp(_hi0) < 0; _8_i = _8_i.Plus(_dafny.One) { + var _9_attributeName _dafny.Sequence + _ = _9_attributeName + _9_attributeName = (_7_attributeNames).Select((_8_i).Uint32()).(_dafny.Sequence) + var _10_action m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.CryptoAction + _ = _10_action + _10_action = ((config).Dtor_attributeActionsOnEncrypt()).Get(_9_attributeName).(m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.CryptoAction) + if !(m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorOperations.Companion_Default___.ForwardCompatibleAttributeAction(_9_attributeName, _10_action, (config).Dtor_allowedUnsignedAttributes(), (config).Dtor_allowedUnsignedAttributePrefix())) { + res = m_Wrappers.Companion_Result_.Create_Failure_(m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Companion_Error_.Create_DynamoDbItemEncryptorException_(m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorOperations.Companion_Default___.ExplainNotForwardCompatible(_9_attributeName, _10_action, (config).Dtor_allowedUnsignedAttributes(), (config).Dtor_allowedUnsignedAttributePrefix()))) + return res + } + if !(Companion_Default___.UnreservedPrefix(_9_attributeName)) { + res = m_Wrappers.Companion_Result_.Create_Failure_(m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Companion_Error_.Create_DynamoDbItemEncryptorException_(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.SeqOfString("Attribute: "), _9_attributeName), _dafny.SeqOfString(" is reserved, and may not be configured.")))) + return res + } + } + var _11_structuredEncryptionRes m_Wrappers.Result + _ = _11_structuredEncryptionRes + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_StructuredEncryption.Companion_Default___.StructuredEncryption(m_StructuredEncryption.Companion_Default___.DefaultStructuredEncryptionConfig()) + _11_structuredEncryptionRes = _out0 + var _12_valueOrError4 m_Wrappers.Result = m_Wrappers.Result{} + _ = _12_valueOrError4 + _12_valueOrError4 = (_11_structuredEncryptionRes).MapFailure(func(coer65 func(m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Error) m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Error) func(interface{}) interface{} { + return func(arg89 interface{}) interface{} { + return coer65(arg89.(m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Error)) + } + }(func(_13_e m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Error) m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Error { + return m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Companion_Error_.Create_AwsCryptographyDbEncryptionSdkDynamoDb_(m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_Error_.Create_AwsCryptographyDbEncryptionSdkStructuredEncryption_(_13_e)) + })) + if (_12_valueOrError4).IsFailure() { + res = (_12_valueOrError4).PropagateFailure() + return res + } + var _14_structuredEncryptionX m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.IStructuredEncryptionClient + _ = _14_structuredEncryptionX + _14_structuredEncryptionX = (_12_valueOrError4).Extract().(*m_StructuredEncryption.StructuredEncryptionClient) + var _15_structuredEncryption *m_StructuredEncryption.StructuredEncryptionClient + _ = _15_structuredEncryption + _15_structuredEncryption = _14_structuredEncryptionX.(*m_StructuredEncryption.StructuredEncryptionClient) + var _16_cmm m_AwsCryptographyMaterialProvidersTypes.ICryptographicMaterialsManager = (m_AwsCryptographyMaterialProvidersTypes.ICryptographicMaterialsManager)(nil) + _ = _16_cmm + if ((config).Dtor_cmm()).Is_Some() { + _16_cmm = m_AwsCryptographyMaterialProvidersTypes.Companion_ICryptographicMaterialsManager_.CastTo_(((config).Dtor_cmm()).Dtor_value()) + } else { + var _17_keyring m_AwsCryptographyMaterialProvidersTypes.IKeyring + _ = _17_keyring + _17_keyring = m_AwsCryptographyMaterialProvidersTypes.Companion_IKeyring_.CastTo_(((config).Dtor_keyring()).Dtor_value()) + var _18_valueOrError5 m_Wrappers.Result = m_Wrappers.Result{} + _ = _18_valueOrError5 + var _out1 m_Wrappers.Result + _ = _out1 + _out1 = m_MaterialProviders.Companion_Default___.MaterialProviders(m_MaterialProviders.Companion_Default___.DefaultMaterialProvidersConfig()) + _18_valueOrError5 = _out1 + if !(!((_18_valueOrError5).IsFailure())) { + panic("dafny/DynamoDbItemEncryptor/src/Index.dfy(158,21): " + (_18_valueOrError5).String()) + } + var _19_matProv *m_MaterialProviders.MaterialProvidersClient + _ = _19_matProv + _19_matProv = (_18_valueOrError5).Extract().(*m_MaterialProviders.MaterialProvidersClient) + var _20_maybeCmm m_Wrappers.Result + _ = _20_maybeCmm + var _out2 m_Wrappers.Result + _ = _out2 + _out2 = (_19_matProv).CreateDefaultCryptographicMaterialsManager(m_AwsCryptographyMaterialProvidersTypes.Companion_CreateDefaultCryptographicMaterialsManagerInput_.Create_CreateDefaultCryptographicMaterialsManagerInput_(_17_keyring)) + _20_maybeCmm = _out2 + var _21_valueOrError6 m_Wrappers.Result = m_Wrappers.Result{} + _ = _21_valueOrError6 + _21_valueOrError6 = (_20_maybeCmm).MapFailure(func(coer66 func(m_AwsCryptographyMaterialProvidersTypes.Error) m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Error) func(interface{}) interface{} { + return func(arg90 interface{}) interface{} { + return coer66(arg90.(m_AwsCryptographyMaterialProvidersTypes.Error)) + } + }(func(_22_e m_AwsCryptographyMaterialProvidersTypes.Error) m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Error { + return m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Companion_Error_.Create_AwsCryptographyMaterialProviders_(_22_e) + })) + if (_21_valueOrError6).IsFailure() { + res = (_21_valueOrError6).PropagateFailure() + return res + } + _16_cmm = m_AwsCryptographyMaterialProvidersTypes.Companion_ICryptographicMaterialsManager_.CastTo_((_21_valueOrError6).Extract()) + } + var _23_maybeCmpClient m_Wrappers.Result + _ = _23_maybeCmpClient + var _out3 m_Wrappers.Result + _ = _out3 + _out3 = m_MaterialProviders.Companion_Default___.MaterialProviders(m_MaterialProviders.Companion_Default___.DefaultMaterialProvidersConfig()) + _23_maybeCmpClient = _out3 + var _24_valueOrError7 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_Wrappers.Companion_Option_.Default()) + _ = _24_valueOrError7 + var _out4 m_Wrappers.Result + _ = _out4 + _out4 = m_InternalLegacyOverride.Companion_InternalLegacyOverride_.Build(config) + _24_valueOrError7 = _out4 + if (_24_valueOrError7).IsFailure() { + res = (_24_valueOrError7).PropagateFailure() + return res + } + var _25_internalLegacyOverride m_Wrappers.Option + _ = _25_internalLegacyOverride + _25_internalLegacyOverride = (_24_valueOrError7).Extract().(m_Wrappers.Option) + var _26_valueOrError8 m_Wrappers.Result = m_Wrappers.Result{} + _ = _26_valueOrError8 + _26_valueOrError8 = (_23_maybeCmpClient).MapFailure(func(coer67 func(m_AwsCryptographyMaterialProvidersTypes.Error) m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Error) func(interface{}) interface{} { + return func(arg91 interface{}) interface{} { + return coer67(arg91.(m_AwsCryptographyMaterialProvidersTypes.Error)) + } + }(func(_27_e m_AwsCryptographyMaterialProvidersTypes.Error) m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Error { + return m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Companion_Error_.Create_AwsCryptographyMaterialProviders_(_27_e) + })) + if (_26_valueOrError8).IsFailure() { + res = (_26_valueOrError8).PropagateFailure() + return res + } + var _28_cmpClient *m_MaterialProviders.MaterialProvidersClient + _ = _28_cmpClient + _28_cmpClient = (_26_valueOrError8).Extract().(*m_MaterialProviders.MaterialProvidersClient) + if !(((_25_internalLegacyOverride).Is_None()) || (((config).Dtor_plaintextOverride()).Is_None())) { + res = m_Wrappers.Companion_Result_.Create_Failure_(m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Companion_Error_.Create_DynamoDbItemEncryptorException_(_dafny.SeqOfString("Cannot configure both a plaintext policy and a legacy config."))) + return res + } + var _29_plaintextOverride m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.PlaintextOverride + _ = _29_plaintextOverride + if ((config).Dtor_plaintextOverride()).Is_Some() { + _29_plaintextOverride = ((config).Dtor_plaintextOverride()).Dtor_value().(m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.PlaintextOverride) + } else { + _29_plaintextOverride = m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_PlaintextOverride_.Create_FORBID__PLAINTEXT__WRITE__FORBID__PLAINTEXT__READ_() + } + var _30_internalConfig m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorOperations.Config + _ = _30_internalConfig + _30_internalConfig = m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorOperations.Companion_Config_.Create_Config_(_2_version, _28_cmpClient, (config).Dtor_logicalTableName(), (config).Dtor_partitionKeyName(), (config).Dtor_sortKeyName(), _16_cmm, (config).Dtor_attributeActionsOnEncrypt(), (config).Dtor_allowedUnsignedAttributes(), (config).Dtor_allowedUnsignedAttributePrefix(), (config).Dtor_algorithmSuiteId(), _15_structuredEncryption, _29_plaintextOverride, _25_internalLegacyOverride) + var _31_client *DynamoDbItemEncryptorClient + _ = _31_client + var _nw0 *DynamoDbItemEncryptorClient = New_DynamoDbItemEncryptorClient_() + _ = _nw0 + _nw0.Ctor__(_30_internalConfig) + _31_client = _nw0 + res = m_Wrappers.Companion_Result_.Create_Success_(_31_client) + return res + return res +} +func (_static *CompanionStruct_Default___) CreateSuccessOfClient(client m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.IDynamoDbItemEncryptorClient) m_Wrappers.Result { + return m_Wrappers.Companion_Result_.Create_Success_(client) +} +func (_static *CompanionStruct_Default___) CreateFailureOfError(error_ m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Error) m_Wrappers.Result { + return m_Wrappers.Companion_Result_.Create_Failure_(error_) +} + +// End of class Default__ + +// Definition of class DynamoDbItemEncryptorClient +type DynamoDbItemEncryptorClient struct { + _config m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorOperations.Config +} + +func New_DynamoDbItemEncryptorClient_() *DynamoDbItemEncryptorClient { + _this := DynamoDbItemEncryptorClient{} + + _this._config = m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorOperations.Config{} + return &_this +} + +type CompanionStruct_DynamoDbItemEncryptorClient_ struct { +} + +var Companion_DynamoDbItemEncryptorClient_ = CompanionStruct_DynamoDbItemEncryptorClient_{} + +func (_this *DynamoDbItemEncryptorClient) Equals(other *DynamoDbItemEncryptorClient) bool { + return _this == other +} + +func (_this *DynamoDbItemEncryptorClient) EqualsGeneric(x interface{}) bool { + other, ok := x.(*DynamoDbItemEncryptorClient) + return ok && _this.Equals(other) +} + +func (*DynamoDbItemEncryptorClient) String() string { + return "DynamoDbItemEncryptor.DynamoDbItemEncryptorClient" +} + +func Type_DynamoDbItemEncryptorClient_() _dafny.TypeDescriptor { + return type_DynamoDbItemEncryptorClient_{} +} + +type type_DynamoDbItemEncryptorClient_ struct { +} + +func (_this type_DynamoDbItemEncryptorClient_) Default() interface{} { + return (*DynamoDbItemEncryptorClient)(nil) +} + +func (_this type_DynamoDbItemEncryptorClient_) String() string { + return "DynamoDbItemEncryptor.DynamoDbItemEncryptorClient" +} +func (_this *DynamoDbItemEncryptorClient) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Companion_IDynamoDbItemEncryptorClient_.TraitID_} +} + +var _ m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.IDynamoDbItemEncryptorClient = &DynamoDbItemEncryptorClient{} +var _ _dafny.TraitOffspring = &DynamoDbItemEncryptorClient{} + +func (_this *DynamoDbItemEncryptorClient) Ctor__(config m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorOperations.Config) { + { + (_this)._config = config + } +} +func (_this *DynamoDbItemEncryptorClient) EncryptItem(input m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.EncryptItemInput) m_Wrappers.Result { + { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Companion_EncryptItemOutput_.Default()) + _ = output + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorOperations.Companion_Default___.EncryptItem((_this).Config(), input) + output = _out0 + return output + } +} +func (_this *DynamoDbItemEncryptorClient) DecryptItem(input m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.DecryptItemInput) m_Wrappers.Result { + { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Companion_DecryptItemOutput_.Default()) + _ = output + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorOperations.Companion_Default___.DecryptItem((_this).Config(), input) + output = _out0 + return output + } +} +func (_this *DynamoDbItemEncryptorClient) Config() m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorOperations.Config { + { + return _this._config + } +} + +// End of class DynamoDbItemEncryptorClient diff --git a/customer-preview/ddb-esdk/DynamoDbItemEncryptorUtil/DynamoDbItemEncryptorUtil.go b/customer-preview/ddb-esdk/DynamoDbItemEncryptorUtil/DynamoDbItemEncryptorUtil.go new file mode 100644 index 000000000..021328eb2 --- /dev/null +++ b/customer-preview/ddb-esdk/DynamoDbItemEncryptorUtil/DynamoDbItemEncryptorUtil.go @@ -0,0 +1,648 @@ +// Package DynamoDbItemEncryptorUtil +// Dafny module DynamoDbItemEncryptorUtil compiled into Go + +package DynamoDbItemEncryptorUtil + +import ( + os "os" + + m_ComAmazonawsDynamodbTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/ComAmazonawsDynamodbTypes" + m_Com_Amazonaws_Dynamodb "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/Com_Amazonaws_Dynamodb" + m_ComAmazonawsKmsTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/ComAmazonawsKmsTypes" + m_Com_Amazonaws_Kms "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/Com_Amazonaws_Kms" + m_AlgorithmSuites "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AlgorithmSuites" + m_AwsArnParsing "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsArnParsing" + m_AwsCryptographyKeyStoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreOperations" + m_AwsCryptographyKeyStoreTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreTypes" + m_AwsCryptographyMaterialProvidersOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersOperations" + m_AwsCryptographyMaterialProvidersTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersTypes" + m_AwsKmsDiscoveryKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsDiscoveryKeyring" + m_AwsKmsEcdhKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsEcdhKeyring" + m_AwsKmsHierarchicalKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsHierarchicalKeyring" + m_AwsKmsKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsKeyring" + m_AwsKmsMrkAreUnique "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkAreUnique" + m_AwsKmsMrkDiscoveryKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkDiscoveryKeyring" + m_AwsKmsMrkKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkKeyring" + m_AwsKmsMrkMatchForDecrypt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkMatchForDecrypt" + m_AwsKmsRsaKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsRsaKeyring" + m_AwsKmsUtils "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsUtils" + m_CMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CMM" + m_CacheConstants "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CacheConstants" + m_CanonicalEncryptionContext "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CanonicalEncryptionContext" + m_Commitment "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Commitment" + m_Constants "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Constants" + m_CreateKeyStoreTable "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeyStoreTable" + m_CreateKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeys" + m_DDBKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DDBKeystoreOperations" + m_DefaultCMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DefaultCMM" + m_DefaultClientSupplier "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DefaultClientSupplier" + m_Defaults "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Defaults" + m_DiscoveryMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DiscoveryMultiKeyring" + m_EcdhEdkWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/EcdhEdkWrapping" + m_EdkWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/EdkWrapping" + m_ErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/ErrorMessages" + m_GetKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/GetKeys" + m_IntermediateKeyWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/IntermediateKeyWrapping" + m_KMSKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KMSKeystoreOperations" + m_KeyStore "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStore" + m_KeyStoreErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStoreErrorMessages" + m_Keyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Keyring" + m_KmsArn "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KmsArn" + m_LocalCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/LocalCMC" + m_MaterialProviders "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MaterialProviders" + m_MaterialWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MaterialWrapping" + m_Materials "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Materials" + m_MrkAwareDiscoveryMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MrkAwareDiscoveryMultiKeyring" + m_MrkAwareStrictMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MrkAwareStrictMultiKeyring" + m_MultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MultiKeyring" + m_RawAESKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawAESKeyring" + m_RawECDHKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawECDHKeyring" + m_RawRSAKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawRSAKeyring" + m_RequiredEncryptionContextCMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RequiredEncryptionContextCMM" + m_StormTracker "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StormTracker" + m_StormTrackingCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StormTrackingCMC" + m_StrictMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StrictMultiKeyring" + m_Structure "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Structure" + m_SynchronizedLocalCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/SynchronizedLocalCMC" + m_Utils "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Utils" + m_AtomicPrimitives "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AtomicPrimitives" + m_AwsCryptographyPrimitivesOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesOperations" + m_AwsCryptographyPrimitivesTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesTypes" + m_Digest "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Digest" + m_HKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/HKDF" + m_KdfCtr "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/KdfCtr" + m_Random "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Random" + m_WrappedHKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHKDF" + m_WrappedHMAC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHMAC" + m_Actions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Actions" + m_Base64 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64" + m_Base64Lemmas "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64Lemmas" + m_BoundedInts "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/BoundedInts" + m_DivInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternals" + m_DivInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternalsNonlinear" + m_DivMod "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivMod" + m_FileIO "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FileIO" + m_FloatCompare "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FloatCompare" + m_Functions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Functions" + m_GeneralInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GeneralInternals" + m_GetOpt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GetOpt" + m_HexStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/HexStrings" + m_Logarithm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Logarithm" + m__Math "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Math_" + m_ModInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternals" + m_ModInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternalsNonlinear" + m_Mul "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Mul" + m_MulInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternals" + m_MulInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternalsNonlinear" + m_Power "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Power" + m_Relations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Relations" + m_Seq "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq" + m_Seq_MergeSort "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq_MergeSort" + m_SortedSets "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/SortedSets" + m_Sorting "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Sorting" + m_StandardLibrary "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary" + m_StandardLibraryInterop "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibraryInterop" + m_StandardLibrary_Sequence "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_Sequence" + m_StandardLibrary_String "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_String" + m_StandardLibrary_UInt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_UInt" + m_Streams "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Streams" + m_UTF8 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UTF8" + m_UnicodeStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UnicodeStrings" + m__Unicode "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Unicode_" + m_Utf16EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf16EncodingForm" + m_Utf8EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf8EncodingForm" + m_Wrappers "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers" + m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes" + m_AwsCryptographyDbEncryptionSdkDynamoDbTypes "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbTypes" + m_AwsCryptographyDbEncryptionSdkStructuredEncryptionOperations "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkStructuredEncryptionOperations" + m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes" + m_Canonize "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/Canonize" + m_DynamoDbEncryptionUtil "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbEncryptionUtil" + m_DynamoDbNormalizeNumber "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbNormalizeNumber" + m_DynamoToStruct "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoToStruct" + m__Maps "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/Maps_" + m_Sets "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/Sets" + m_SortCanon "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/SortCanon" + m_StructuredEncryption "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryption" + m_StructuredEncryptionCrypt "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionCrypt" + m_StructuredEncryptionFooter "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionFooter" + m_StructuredEncryptionHeader "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionHeader" + m_StructuredEncryptionPaths "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionPaths" + m_StructuredEncryptionUtil "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionUtil" + m__System "github.com/dafny-lang/DafnyRuntimeGo/v4/System_" + _dafny "github.com/dafny-lang/DafnyRuntimeGo/v4/dafny" +) + +var _ = os.Args +var _ _dafny.Dummy__ +var _ m__System.Dummy__ +var _ m_Wrappers.Dummy__ +var _ m_BoundedInts.Dummy__ +var _ m_StandardLibrary_UInt.Dummy__ +var _ m_StandardLibrary_Sequence.Dummy__ +var _ m_StandardLibrary_String.Dummy__ +var _ m_StandardLibrary.Dummy__ +var _ m_AwsCryptographyPrimitivesTypes.Dummy__ +var _ m_Random.Dummy__ +var _ m_Digest.Dummy__ +var _ m_WrappedHMAC.Dummy__ +var _ m_HKDF.Dummy__ +var _ m_WrappedHKDF.Dummy__ +var _ m_KdfCtr.Dummy__ +var _ m_AwsCryptographyPrimitivesOperations.Dummy__ +var _ m_AtomicPrimitives.Dummy__ +var _ m_ComAmazonawsDynamodbTypes.Dummy__ +var _ m_ComAmazonawsKmsTypes.Dummy__ +var _ m_AwsCryptographyKeyStoreTypes.Dummy__ +var _ m_AwsCryptographyMaterialProvidersTypes.Dummy__ +var _ m_Base64.Dummy__ +var _ m_AlgorithmSuites.Dummy__ +var _ m_Materials.Dummy__ +var _ m_Keyring.Dummy__ +var _ m_Relations.Dummy__ +var _ m_Seq_MergeSort.Dummy__ +var _ m__Math.Dummy__ +var _ m_Seq.Dummy__ +var _ m_MultiKeyring.Dummy__ +var _ m_AwsArnParsing.Dummy__ +var _ m_AwsKmsMrkAreUnique.Dummy__ +var _ m_Actions.Dummy__ +var _ m_AwsKmsMrkMatchForDecrypt.Dummy__ +var _ m_AwsKmsUtils.Dummy__ +var _ m_Constants.Dummy__ +var _ m_MaterialWrapping.Dummy__ +var _ m_CanonicalEncryptionContext.Dummy__ +var _ m_IntermediateKeyWrapping.Dummy__ +var _ m_EdkWrapping.Dummy__ +var _ m_ErrorMessages.Dummy__ +var _ m_AwsKmsKeyring.Dummy__ +var _ m_StrictMultiKeyring.Dummy__ +var _ m_AwsKmsDiscoveryKeyring.Dummy__ +var _ m_Com_Amazonaws_Kms.Dummy__ +var _ m_Com_Amazonaws_Dynamodb.Dummy__ +var _ m_DiscoveryMultiKeyring.Dummy__ +var _ m_AwsKmsMrkDiscoveryKeyring.Dummy__ +var _ m_MrkAwareDiscoveryMultiKeyring.Dummy__ +var _ m_AwsKmsMrkKeyring.Dummy__ +var _ m_MrkAwareStrictMultiKeyring.Dummy__ +var _ m_LocalCMC.Dummy__ +var _ m_SynchronizedLocalCMC.Dummy__ +var _ m_StormTracker.Dummy__ +var _ m_StormTrackingCMC.Dummy__ +var _ m_CacheConstants.Dummy__ +var _ m_AwsKmsHierarchicalKeyring.Dummy__ +var _ m_AwsKmsRsaKeyring.Dummy__ +var _ m_EcdhEdkWrapping.Dummy__ +var _ m_RawECDHKeyring.Dummy__ +var _ m_AwsKmsEcdhKeyring.Dummy__ +var _ m_RawAESKeyring.Dummy__ +var _ m_RawRSAKeyring.Dummy__ +var _ m_CMM.Dummy__ +var _ m_Defaults.Dummy__ +var _ m_Commitment.Dummy__ +var _ m_DefaultCMM.Dummy__ +var _ m_DefaultClientSupplier.Dummy__ +var _ m_Utils.Dummy__ +var _ m_RequiredEncryptionContextCMM.Dummy__ +var _ m_AwsCryptographyMaterialProvidersOperations.Dummy__ +var _ m_MaterialProviders.Dummy__ +var _ m_KeyStoreErrorMessages.Dummy__ +var _ m_KmsArn.Dummy__ +var _ m_Structure.Dummy__ +var _ m_KMSKeystoreOperations.Dummy__ +var _ m_DDBKeystoreOperations.Dummy__ +var _ m_CreateKeys.Dummy__ +var _ m_CreateKeyStoreTable.Dummy__ +var _ m_GetKeys.Dummy__ +var _ m_AwsCryptographyKeyStoreOperations.Dummy__ +var _ m_KeyStore.Dummy__ +var _ m__Unicode.Dummy__ +var _ m_Functions.Dummy__ +var _ m_Utf8EncodingForm.Dummy__ +var _ m_Utf16EncodingForm.Dummy__ +var _ m_UnicodeStrings.Dummy__ +var _ m_FileIO.Dummy__ +var _ m_GeneralInternals.Dummy__ +var _ m_MulInternalsNonlinear.Dummy__ +var _ m_MulInternals.Dummy__ +var _ m_Mul.Dummy__ +var _ m_ModInternalsNonlinear.Dummy__ +var _ m_DivInternalsNonlinear.Dummy__ +var _ m_ModInternals.Dummy__ +var _ m_DivInternals.Dummy__ +var _ m_DivMod.Dummy__ +var _ m_Power.Dummy__ +var _ m_Logarithm.Dummy__ +var _ m_StandardLibraryInterop.Dummy__ +var _ m_Streams.Dummy__ +var _ m_Sorting.Dummy__ +var _ m_HexStrings.Dummy__ +var _ m_GetOpt.Dummy__ +var _ m_FloatCompare.Dummy__ +var _ m_Base64Lemmas.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Dummy__ +var _ m_StructuredEncryptionUtil.Dummy__ +var _ m_Sets.Dummy__ +var _ m_StructuredEncryptionPaths.Dummy__ +var _ m_StructuredEncryptionHeader.Dummy__ +var _ m_StructuredEncryptionFooter.Dummy__ +var _ m_SortCanon.Dummy__ +var _ m_Canonize.Dummy__ +var _ m_StructuredEncryptionCrypt.Dummy__ +var _ m__Maps.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkStructuredEncryptionOperations.Dummy__ +var _ m_StructuredEncryption.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Dummy__ +var _ m_DynamoDbEncryptionUtil.Dummy__ +var _ m_DynamoDbNormalizeNumber.Dummy__ +var _ m_DynamoToStruct.Dummy__ + +type Dummy__ struct{} + +// Definition of class Default__ +type Default__ struct { + dummy byte +} + +func New_Default___() *Default__ { + _this := Default__{} + + return &_this +} + +type CompanionStruct_Default___ struct { +} + +var Companion_Default___ = CompanionStruct_Default___{} + +func (_this *Default__) Equals(other *Default__) bool { + return _this == other +} + +func (_this *Default__) EqualsGeneric(x interface{}) bool { + other, ok := x.(*Default__) + return ok && _this.Equals(other) +} + +func (*Default__) String() string { + return "DynamoDbItemEncryptorUtil.Default__" +} +func (_this *Default__) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = &Default__{} + +func (_static *CompanionStruct_Default___) E(msg _dafny.Sequence) m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Error { + return m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Companion_Error_.Create_DynamoDbItemEncryptorException_(msg) +} +func (_static *CompanionStruct_Default___) ByteLess(x uint8, y uint8) bool { + return (x) < (y) +} +func (_static *CompanionStruct_Default___) CharLess(x _dafny.Char, y _dafny.Char) bool { + return (x) < (y) +} +func (_static *CompanionStruct_Default___) GetLiteralValue(x _dafny.Sequence) m_Wrappers.Result { + var _0_valueOrError0 m_Wrappers.Result = m_UTF8.Decode(x) + _ = _0_valueOrError0 + if (_0_valueOrError0).IsFailure() { + return (_0_valueOrError0).PropagateFailure() + } else { + var _1_str _dafny.Sequence = (_0_valueOrError0).Extract().(_dafny.Sequence) + _ = _1_str + if _dafny.Companion_Sequence_.Equal(_1_str, m_StructuredEncryptionUtil.Companion_Default___.TRUE__STR()) { + return m_Wrappers.Companion_Result_.Create_Success_(m_ComAmazonawsDynamodbTypes.Companion_AttributeValue_.Create_BOOL_(true)) + } else if _dafny.Companion_Sequence_.Equal(_1_str, m_StructuredEncryptionUtil.Companion_Default___.FALSE__STR()) { + return m_Wrappers.Companion_Result_.Create_Success_(m_ComAmazonawsDynamodbTypes.Companion_AttributeValue_.Create_BOOL_(false)) + } else if _dafny.Companion_Sequence_.Equal(_1_str, m_StructuredEncryptionUtil.Companion_Default___.NULL__STR()) { + return m_Wrappers.Companion_Result_.Create_Success_(m_ComAmazonawsDynamodbTypes.Companion_AttributeValue_.Create_NULL_(true)) + } else { + return m_Wrappers.Companion_Result_.Create_Failure_(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.SeqOfString("Encryption Context literal value has unexpected value : '"), _1_str), _dafny.SeqOfString("'."))) + } + } +} +func (_static *CompanionStruct_Default___) GetSortKey(context _dafny.Map) m_Wrappers.Result { + if ((context).Keys()).Contains(Companion_Default___.SORT__NAME()) { + var _0_sortName _dafny.Sequence = _dafny.Companion_Sequence_.Concatenate(m_StructuredEncryptionUtil.Companion_Default___.EC__ATTR__PREFIX(), (context).Get(Companion_Default___.SORT__NAME()).(_dafny.Sequence)) + _ = _0_sortName + var _1_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need(m_UTF8.Companion_Default___.ValidUTF8Seq(_0_sortName), _dafny.SeqOfString("Internal Error : bad utf8 in sortName")) + _ = _1_valueOrError0 + if (_1_valueOrError0).IsFailure() { + return (_1_valueOrError0).PropagateFailure() + } else { + return m_Wrappers.Companion_Result_.Create_Success_(m_Wrappers.Companion_Option_.Create_Some_(_0_sortName)) + } + } else { + return m_Wrappers.Companion_Result_.Create_Success_(m_Wrappers.Companion_Option_.Create_None_()) + } +} +func (_static *CompanionStruct_Default___) ConvertContextForSelector(context _dafny.Map) m_Wrappers.Result { + var _0_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need(((context).Keys()).Contains(Companion_Default___.PARTITION__NAME()), _dafny.SeqOfString("Invalid encryption context: Missing partition name")) + _ = _0_valueOrError0 + if (_0_valueOrError0).IsFailure() { + return (_0_valueOrError0).PropagateFailure() + } else { + var _1_partitionName _dafny.Sequence = (context).Get(Companion_Default___.PARTITION__NAME()).(_dafny.Sequence) + _ = _1_partitionName + var _2_partitionValueKey _dafny.Sequence = _dafny.Companion_Sequence_.Concatenate(m_StructuredEncryptionUtil.Companion_Default___.EC__ATTR__PREFIX(), _1_partitionName) + _ = _2_partitionValueKey + var _3_valueOrError1 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need(((context).Keys()).Contains(_2_partitionValueKey), _dafny.SeqOfString("Invalid encryption context: Missing partition value")) + _ = _3_valueOrError1 + if (_3_valueOrError1).IsFailure() { + return (_3_valueOrError1).PropagateFailure() + } else { + var _4_valueOrError2 m_Wrappers.Result = Companion_Default___.GetSortKey(context) + _ = _4_valueOrError2 + if (_4_valueOrError2).IsFailure() { + return (_4_valueOrError2).PropagateFailure() + } else { + var _5_sortValueKey m_Wrappers.Option = (_4_valueOrError2).Extract().(m_Wrappers.Option) + _ = _5_sortValueKey + var _6_valueOrError3 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need(((_5_sortValueKey).Is_None()) || ((context).Contains((_5_sortValueKey).Dtor_value().(_dafny.Sequence))), _dafny.SeqOfString("Invalid encryption context: Missing sort value")) + _ = _6_valueOrError3 + if (_6_valueOrError3).IsFailure() { + return (_6_valueOrError3).PropagateFailure() + } else { + var _7_keys _dafny.Sequence = m_SortedSets.SetToOrderedSequence2((context).Keys(), func(coer47 func(uint8, uint8) bool) func(interface{}, interface{}) bool { + return func(arg65 interface{}, arg66 interface{}) bool { + return coer47(arg65.(uint8), arg66.(uint8)) + } + }(m_StructuredEncryptionUtil.Companion_Default___.ByteLess)) + _ = _7_keys + if (context).Contains(m_StructuredEncryptionUtil.Companion_Default___.LEGEND__UTF8()) { + var _8_valueOrError4 m_Wrappers.Result = m_UTF8.Decode((context).Get(m_StructuredEncryptionUtil.Companion_Default___.LEGEND__UTF8()).(_dafny.Sequence)) + _ = _8_valueOrError4 + if (_8_valueOrError4).IsFailure() { + return (_8_valueOrError4).PropagateFailure() + } else { + var _9_legend _dafny.Sequence = (_8_valueOrError4).Extract().(_dafny.Sequence) + _ = _9_legend + var _10_valueOrError5 m_Wrappers.Result = Companion_Default___.GetV2AttrMap(_7_keys, context, _9_legend, _dafny.NewMapBuilder().ToMap()) + _ = _10_valueOrError5 + if (_10_valueOrError5).IsFailure() { + return (_10_valueOrError5).PropagateFailure() + } else { + var _11_attrMap _dafny.Map = (_10_valueOrError5).Extract().(_dafny.Map) + _ = _11_attrMap + var _12_valueOrError6 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need((context).Contains(Companion_Default___.TABLE__NAME()), _dafny.SeqOfString("Internal error, table name not in encryption context.")) + _ = _12_valueOrError6 + if (_12_valueOrError6).IsFailure() { + return (_12_valueOrError6).PropagateFailure() + } else { + var _13_valueOrError7 m_Wrappers.Result = m_UTF8.Decode((context).Get(Companion_Default___.TABLE__NAME()).(_dafny.Sequence)) + _ = _13_valueOrError7 + if (_13_valueOrError7).IsFailure() { + return (_13_valueOrError7).PropagateFailure() + } else { + var _14_tableName _dafny.Sequence = (_13_valueOrError7).Extract().(_dafny.Sequence) + _ = _14_tableName + var _15_attrMap2 _dafny.Map = (_11_attrMap).Update(Companion_Default___.SELECTOR__TABLE__NAME(), m_ComAmazonawsDynamodbTypes.Companion_AttributeValue_.Create_S_(_14_tableName)) + _ = _15_attrMap2 + var _16_valueOrError8 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need((context).Contains(Companion_Default___.PARTITION__NAME()), _dafny.SeqOfString("Internal error, table name not in encryption context.")) + _ = _16_valueOrError8 + if (_16_valueOrError8).IsFailure() { + return (_16_valueOrError8).PropagateFailure() + } else { + var _17_valueOrError9 m_Wrappers.Result = m_UTF8.Decode((context).Get(Companion_Default___.PARTITION__NAME()).(_dafny.Sequence)) + _ = _17_valueOrError9 + if (_17_valueOrError9).IsFailure() { + return (_17_valueOrError9).PropagateFailure() + } else { + var _18_partitionName _dafny.Sequence = (_17_valueOrError9).Extract().(_dafny.Sequence) + _ = _18_partitionName + var _19_attrMap3 _dafny.Map = (_15_attrMap2).Update(Companion_Default___.SELECTOR__PARTITION__NAME(), m_ComAmazonawsDynamodbTypes.Companion_AttributeValue_.Create_S_(_18_partitionName)) + _ = _19_attrMap3 + if (context).Contains(Companion_Default___.SORT__NAME()) { + var _20_valueOrError10 m_Wrappers.Result = m_UTF8.Decode((context).Get(Companion_Default___.SORT__NAME()).(_dafny.Sequence)) + _ = _20_valueOrError10 + if (_20_valueOrError10).IsFailure() { + return (_20_valueOrError10).PropagateFailure() + } else { + var _21_sortName _dafny.Sequence = (_20_valueOrError10).Extract().(_dafny.Sequence) + _ = _21_sortName + return m_Wrappers.Companion_Result_.Create_Success_((_19_attrMap3).Update(Companion_Default___.SELECTOR__SORT__NAME(), m_ComAmazonawsDynamodbTypes.Companion_AttributeValue_.Create_S_(_21_sortName))) + } + } else { + return m_Wrappers.Companion_Result_.Create_Success_(_19_attrMap3) + } + } + } + } + } + } + } + } else if (_5_sortValueKey).Is_None() { + return Companion_Default___.AddAttributeToMap(_2_partitionValueKey, (context).Get(_2_partitionValueKey).(_dafny.Sequence), _dafny.NewMapBuilder().ToMap()) + } else { + var _22_valueOrError11 m_Wrappers.Result = Companion_Default___.AddAttributeToMap(_2_partitionValueKey, (context).Get(_2_partitionValueKey).(_dafny.Sequence), _dafny.NewMapBuilder().ToMap()) + _ = _22_valueOrError11 + if (_22_valueOrError11).IsFailure() { + return (_22_valueOrError11).PropagateFailure() + } else { + var _23_attrMap _dafny.Map = (_22_valueOrError11).Extract().(_dafny.Map) + _ = _23_attrMap + return Companion_Default___.AddAttributeToMap((_5_sortValueKey).Dtor_value().(_dafny.Sequence), (context).Get((_5_sortValueKey).Dtor_value().(_dafny.Sequence)).(_dafny.Sequence), _23_attrMap) + } + } + } + } + } + } +} +func (_static *CompanionStruct_Default___) GetAttrValue(ecValue _dafny.Sequence, legend _dafny.Char) m_Wrappers.Result { + if (legend) == (m_StructuredEncryptionUtil.Companion_Default___.LEGEND__STRING()) { + var _0_valueOrError0 m_Wrappers.Result = m_UTF8.Decode(ecValue) + _ = _0_valueOrError0 + if (_0_valueOrError0).IsFailure() { + return (_0_valueOrError0).PropagateFailure() + } else { + var _1_value _dafny.Sequence = (_0_valueOrError0).Extract().(_dafny.Sequence) + _ = _1_value + return m_Wrappers.Companion_Result_.Create_Success_(m_ComAmazonawsDynamodbTypes.Companion_AttributeValue_.Create_S_(_1_value)) + } + } else if (legend) == (m_StructuredEncryptionUtil.Companion_Default___.LEGEND__NUMBER()) { + var _2_valueOrError1 m_Wrappers.Result = m_UTF8.Decode(ecValue) + _ = _2_valueOrError1 + if (_2_valueOrError1).IsFailure() { + return (_2_valueOrError1).PropagateFailure() + } else { + var _3_value _dafny.Sequence = (_2_valueOrError1).Extract().(_dafny.Sequence) + _ = _3_value + return m_Wrappers.Companion_Result_.Create_Success_(m_ComAmazonawsDynamodbTypes.Companion_AttributeValue_.Create_N_(_3_value)) + } + } else if (legend) == (m_StructuredEncryptionUtil.Companion_Default___.LEGEND__LITERAL()) { + var _4_valueOrError2 m_Wrappers.Result = Companion_Default___.GetLiteralValue(ecValue) + _ = _4_valueOrError2 + if (_4_valueOrError2).IsFailure() { + return (_4_valueOrError2).PropagateFailure() + } else { + var _5_value m_ComAmazonawsDynamodbTypes.AttributeValue = (_4_valueOrError2).Extract().(m_ComAmazonawsDynamodbTypes.AttributeValue) + _ = _5_value + return m_Wrappers.Companion_Result_.Create_Success_(_5_value) + } + } else if (legend) == (m_StructuredEncryptionUtil.Companion_Default___.LEGEND__BINARY()) { + var _6_valueOrError3 m_Wrappers.Result = m_StructuredEncryptionUtil.Companion_Default___.DecodeTerminal(ecValue) + _ = _6_valueOrError3 + if (_6_valueOrError3).IsFailure() { + return (_6_valueOrError3).PropagateFailure() + } else { + var _7_terminal m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.StructuredDataTerminal = (_6_valueOrError3).Extract().(m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.StructuredDataTerminal) + _ = _7_terminal + var _8_valueOrError4 m_Wrappers.Result = m_DynamoToStruct.Companion_Default___.BytesToAttr((_7_terminal).Dtor_value(), (_7_terminal).Dtor_typeId(), false, _dafny.One) + _ = _8_valueOrError4 + if (_8_valueOrError4).IsFailure() { + return (_8_valueOrError4).PropagateFailure() + } else { + var _9_ddbAttrValue m_DynamoToStruct.AttrValueAndLength = (_8_valueOrError4).Extract().(m_DynamoToStruct.AttrValueAndLength) + _ = _9_ddbAttrValue + return m_Wrappers.Companion_Result_.Create_Success_((_9_ddbAttrValue).Dtor_val()) + } + } + } else { + return m_Wrappers.Companion_Result_.Create_Failure_(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.SeqOfString("Encryption Context Legend has unexpected character : '"), _dafny.SeqOfChars(legend)), _dafny.SeqOfString("'."))) + } +} +func (_static *CompanionStruct_Default___) GetV2AttrMap(keys _dafny.Sequence, context _dafny.Map, legend _dafny.Sequence, attrMap _dafny.Map) m_Wrappers.Result { + goto TAIL_CALL_START +TAIL_CALL_START: + if (_dafny.IntOfUint32((keys).Cardinality())).Sign() == 0 { + if (_dafny.IntOfUint32((legend).Cardinality())).Sign() == 0 { + return m_Wrappers.Companion_Result_.Create_Success_(attrMap) + } else { + return m_Wrappers.Companion_Result_.Create_Failure_(_dafny.SeqOfString("Encryption Context Legend is too long.")) + } + } else { + var _0_key _dafny.Sequence = (keys).Select(0).(_dafny.Sequence) + _ = _0_key + if _dafny.Companion_Sequence_.IsProperPrefixOf(m_StructuredEncryptionUtil.Companion_Default___.EC__ATTR__PREFIX(), _0_key) { + var _1_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need((_dafny.IntOfUint32((legend).Cardinality())).Sign() == 1, _dafny.SeqOfString("Encryption Context Legend is too short.")) + _ = _1_valueOrError0 + if (_1_valueOrError0).IsFailure() { + return (_1_valueOrError0).PropagateFailure() + } else { + var _2_valueOrError1 m_Wrappers.Result = Companion_Default___.GetAttributeName(_0_key) + _ = _2_valueOrError1 + if (_2_valueOrError1).IsFailure() { + return (_2_valueOrError1).PropagateFailure() + } else { + var _3_attrName _dafny.Sequence = (_2_valueOrError1).Extract().(_dafny.Sequence) + _ = _3_attrName + var _4_valueOrError2 m_Wrappers.Result = Companion_Default___.GetAttrValue((context).Get(_0_key).(_dafny.Sequence), (legend).Select(0).(_dafny.Char)) + _ = _4_valueOrError2 + if (_4_valueOrError2).IsFailure() { + return (_4_valueOrError2).PropagateFailure() + } else { + var _5_attrValue m_ComAmazonawsDynamodbTypes.AttributeValue = (_4_valueOrError2).Extract().(m_ComAmazonawsDynamodbTypes.AttributeValue) + _ = _5_attrValue + var _in0 _dafny.Sequence = (keys).Drop(1) + _ = _in0 + var _in1 _dafny.Map = context + _ = _in1 + var _in2 _dafny.Sequence = (legend).Drop(1) + _ = _in2 + var _in3 _dafny.Map = (attrMap).Update(_3_attrName, _5_attrValue) + _ = _in3 + keys = _in0 + context = _in1 + legend = _in2 + attrMap = _in3 + goto TAIL_CALL_START + } + } + } + } else { + var _in4 _dafny.Sequence = (keys).Drop(1) + _ = _in4 + var _in5 _dafny.Map = context + _ = _in5 + var _in6 _dafny.Sequence = legend + _ = _in6 + var _in7 _dafny.Map = attrMap + _ = _in7 + keys = _in4 + context = _in5 + legend = _in6 + attrMap = _in7 + goto TAIL_CALL_START + } + } +} +func (_static *CompanionStruct_Default___) GetAttributeName(ddbAttrKey _dafny.Sequence) m_Wrappers.Result { + var _0_ddbAttrNameBytes _dafny.Sequence = (ddbAttrKey).Drop((_dafny.IntOfUint32((m_StructuredEncryptionUtil.Companion_Default___.EC__ATTR__PREFIX()).Cardinality())).Uint32()) + _ = _0_ddbAttrNameBytes + var _1_valueOrError0 m_Wrappers.Result = m_UTF8.Decode(_0_ddbAttrNameBytes) + _ = _1_valueOrError0 + if (_1_valueOrError0).IsFailure() { + return (_1_valueOrError0).PropagateFailure() + } else { + var _2_ddbAttrName _dafny.Sequence = (_1_valueOrError0).Extract().(_dafny.Sequence) + _ = _2_ddbAttrName + var _3_valueOrError1 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need(m_ComAmazonawsDynamodbTypes.Companion_Default___.IsValid__AttributeName(_2_ddbAttrName), _dafny.SeqOfString("Invalid serialization of DDB Attribute in encryption context.")) + _ = _3_valueOrError1 + if (_3_valueOrError1).IsFailure() { + return (_3_valueOrError1).PropagateFailure() + } else { + return m_Wrappers.Companion_Result_.Create_Success_(_2_ddbAttrName) + } + } +} +func (_static *CompanionStruct_Default___) AddAttributeToMap(ddbAttrKey _dafny.Sequence, encodedAttrValue _dafny.Sequence, attrMap _dafny.Map) m_Wrappers.Result { + var _0_valueOrError0 m_Wrappers.Result = Companion_Default___.GetAttributeName(ddbAttrKey) + _ = _0_valueOrError0 + if (_0_valueOrError0).IsFailure() { + return (_0_valueOrError0).PropagateFailure() + } else { + var _1_ddbAttrName _dafny.Sequence = (_0_valueOrError0).Extract().(_dafny.Sequence) + _ = _1_ddbAttrName + var _2_valueOrError1 m_Wrappers.Result = m_StructuredEncryptionUtil.Companion_Default___.DecodeTerminal(encodedAttrValue) + _ = _2_valueOrError1 + if (_2_valueOrError1).IsFailure() { + return (_2_valueOrError1).PropagateFailure() + } else { + var _3_terminal m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.StructuredDataTerminal = (_2_valueOrError1).Extract().(m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.StructuredDataTerminal) + _ = _3_terminal + var _4_valueOrError2 m_Wrappers.Result = m_DynamoToStruct.Companion_Default___.BytesToAttr((_3_terminal).Dtor_value(), (_3_terminal).Dtor_typeId(), false, _dafny.One) + _ = _4_valueOrError2 + if (_4_valueOrError2).IsFailure() { + return (_4_valueOrError2).PropagateFailure() + } else { + var _5_ddbAttrValue m_DynamoToStruct.AttrValueAndLength = (_4_valueOrError2).Extract().(m_DynamoToStruct.AttrValueAndLength) + _ = _5_ddbAttrValue + return m_Wrappers.Companion_Result_.Create_Success_((attrMap).Update(_1_ddbAttrName, (_5_ddbAttrValue).Dtor_val())) + } + } + } +} +func (_static *CompanionStruct_Default___) ReservedPrefix() _dafny.Sequence { + return _dafny.SeqOfString("aws_dbe_") +} +func (_static *CompanionStruct_Default___) BeaconPrefix() _dafny.Sequence { + return _dafny.Companion_Sequence_.Concatenate(Companion_Default___.ReservedPrefix(), _dafny.SeqOfString("b_")) +} +func (_static *CompanionStruct_Default___) VersionPrefix() _dafny.Sequence { + return _dafny.Companion_Sequence_.Concatenate(Companion_Default___.ReservedPrefix(), _dafny.SeqOfString("v_")) +} +func (_static *CompanionStruct_Default___) SORT__NAME() _dafny.Sequence { + return m_UTF8.Companion_Default___.EncodeAscii(_dafny.SeqOfString("aws-crypto-sort-name")) +} +func (_static *CompanionStruct_Default___) PARTITION__NAME() _dafny.Sequence { + return m_UTF8.Companion_Default___.EncodeAscii(_dafny.SeqOfString("aws-crypto-partition-name")) +} +func (_static *CompanionStruct_Default___) TABLE__NAME() _dafny.Sequence { + return m_UTF8.Companion_Default___.EncodeAscii(_dafny.SeqOfString("aws-crypto-table-name")) +} +func (_static *CompanionStruct_Default___) SELECTOR__TABLE__NAME() _dafny.Sequence { + return _dafny.SeqOfString("aws_dbe_table_name") +} +func (_static *CompanionStruct_Default___) SELECTOR__PARTITION__NAME() _dafny.Sequence { + return _dafny.SeqOfString("aws_dbe_partition_name") +} +func (_static *CompanionStruct_Default___) SELECTOR__SORT__NAME() _dafny.Sequence { + return _dafny.SeqOfString("aws_dbe_sort_name") +} +func (_static *CompanionStruct_Default___) MAX__ATTRIBUTE__COUNT() _dafny.Int { + return _dafny.IntOfInt64(100) +} + +// End of class Default__ diff --git a/customer-preview/ddb-esdk/DynamoDbMiddlewareSupport/DynamoDbMiddlewareSupport.go b/customer-preview/ddb-esdk/DynamoDbMiddlewareSupport/DynamoDbMiddlewareSupport.go new file mode 100644 index 000000000..8828f1921 --- /dev/null +++ b/customer-preview/ddb-esdk/DynamoDbMiddlewareSupport/DynamoDbMiddlewareSupport.go @@ -0,0 +1,593 @@ +// Package DynamoDbMiddlewareSupport +// Dafny module DynamoDbMiddlewareSupport compiled into Go + +package DynamoDbMiddlewareSupport + +import ( + os "os" + + m_ComAmazonawsDynamodbTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/ComAmazonawsDynamodbTypes" + m_Com_Amazonaws_Dynamodb "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/Com_Amazonaws_Dynamodb" + m_ComAmazonawsKmsTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/ComAmazonawsKmsTypes" + m_Com_Amazonaws_Kms "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/Com_Amazonaws_Kms" + m_AlgorithmSuites "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AlgorithmSuites" + m_AwsArnParsing "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsArnParsing" + m_AwsCryptographyKeyStoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreOperations" + m_AwsCryptographyKeyStoreTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreTypes" + m_AwsCryptographyMaterialProvidersOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersOperations" + m_AwsCryptographyMaterialProvidersTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersTypes" + m_AwsKmsDiscoveryKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsDiscoveryKeyring" + m_AwsKmsEcdhKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsEcdhKeyring" + m_AwsKmsHierarchicalKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsHierarchicalKeyring" + m_AwsKmsKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsKeyring" + m_AwsKmsMrkAreUnique "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkAreUnique" + m_AwsKmsMrkDiscoveryKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkDiscoveryKeyring" + m_AwsKmsMrkKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkKeyring" + m_AwsKmsMrkMatchForDecrypt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkMatchForDecrypt" + m_AwsKmsRsaKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsRsaKeyring" + m_AwsKmsUtils "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsUtils" + m_CMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CMM" + m_CacheConstants "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CacheConstants" + m_CanonicalEncryptionContext "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CanonicalEncryptionContext" + m_Commitment "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Commitment" + m_Constants "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Constants" + m_CreateKeyStoreTable "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeyStoreTable" + m_CreateKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeys" + m_DDBKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DDBKeystoreOperations" + m_DefaultCMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DefaultCMM" + m_DefaultClientSupplier "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DefaultClientSupplier" + m_Defaults "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Defaults" + m_DiscoveryMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DiscoveryMultiKeyring" + m_EcdhEdkWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/EcdhEdkWrapping" + m_EdkWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/EdkWrapping" + m_ErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/ErrorMessages" + m_GetKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/GetKeys" + m_IntermediateKeyWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/IntermediateKeyWrapping" + m_KMSKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KMSKeystoreOperations" + m_KeyStore "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStore" + m_KeyStoreErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStoreErrorMessages" + m_Keyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Keyring" + m_KmsArn "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KmsArn" + m_LocalCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/LocalCMC" + m_MaterialProviders "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MaterialProviders" + m_MaterialWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MaterialWrapping" + m_Materials "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Materials" + m_MrkAwareDiscoveryMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MrkAwareDiscoveryMultiKeyring" + m_MrkAwareStrictMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MrkAwareStrictMultiKeyring" + m_MultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MultiKeyring" + m_RawAESKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawAESKeyring" + m_RawECDHKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawECDHKeyring" + m_RawRSAKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawRSAKeyring" + m_RequiredEncryptionContextCMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RequiredEncryptionContextCMM" + m_StormTracker "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StormTracker" + m_StormTrackingCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StormTrackingCMC" + m_StrictMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StrictMultiKeyring" + m_Structure "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Structure" + m_SynchronizedLocalCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/SynchronizedLocalCMC" + m_Utils "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Utils" + m_AtomicPrimitives "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AtomicPrimitives" + m_AwsCryptographyPrimitivesOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesOperations" + m_AwsCryptographyPrimitivesTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesTypes" + m_Digest "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Digest" + m_HKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/HKDF" + m_KdfCtr "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/KdfCtr" + m_Random "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Random" + m_WrappedHKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHKDF" + m_WrappedHMAC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHMAC" + m_Actions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Actions" + m_Base64 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64" + m_Base64Lemmas "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64Lemmas" + m_BoundedInts "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/BoundedInts" + m_DivInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternals" + m_DivInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternalsNonlinear" + m_DivMod "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivMod" + m_FileIO "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FileIO" + m_FloatCompare "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FloatCompare" + m_Functions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Functions" + m_GeneralInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GeneralInternals" + m_GetOpt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GetOpt" + m_HexStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/HexStrings" + m_Logarithm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Logarithm" + m__Math "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Math_" + m_ModInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternals" + m_ModInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternalsNonlinear" + m_Mul "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Mul" + m_MulInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternals" + m_MulInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternalsNonlinear" + m_Power "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Power" + m_Relations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Relations" + m_Seq "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq" + m_Seq_MergeSort "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq_MergeSort" + m_Sorting "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Sorting" + m_StandardLibrary "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary" + m_StandardLibraryInterop "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibraryInterop" + m_StandardLibrary_Sequence "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_Sequence" + m_StandardLibrary_String "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_String" + m_StandardLibrary_UInt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_UInt" + m_Streams "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Streams" + m_UTF8 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UTF8" + m_UnicodeStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UnicodeStrings" + m__Unicode "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Unicode_" + m_Utf16EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf16EncodingForm" + m_Utf8EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf8EncodingForm" + m_Wrappers "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers" + m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorOperations "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorOperations" + m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes" + m_AwsCryptographyDbEncryptionSdkDynamoDbOperations "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbOperations" + m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes" + m_AwsCryptographyDbEncryptionSdkDynamoDbTypes "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbTypes" + m_AwsCryptographyDbEncryptionSdkStructuredEncryptionOperations "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkStructuredEncryptionOperations" + m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes" + m_BaseBeacon "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/BaseBeacon" + m_Canonize "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/Canonize" + m_CompoundBeacon "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/CompoundBeacon" + m_DdbMiddlewareConfig "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DdbMiddlewareConfig" + m_DdbStatement "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DdbStatement" + m_DdbVirtualFields "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DdbVirtualFields" + m_DynamoDBFilterExpr "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDBFilterExpr" + m_DynamoDBSupport "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDBSupport" + m_DynamoDbEncryption "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbEncryption" + m_DynamoDbEncryptionBranchKeyIdSupplier "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbEncryptionBranchKeyIdSupplier" + m_DynamoDbEncryptionUtil "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbEncryptionUtil" + m_DynamoDbItemEncryptor "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbItemEncryptor" + m_DynamoDbItemEncryptorUtil "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbItemEncryptorUtil" + m_DynamoDbNormalizeNumber "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbNormalizeNumber" + m_DynamoDbUpdateExpr "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbUpdateExpr" + m_DynamoToStruct "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoToStruct" + m_InternalLegacyOverride "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/InternalLegacyOverride" + m__Maps "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/Maps_" + m_SearchConfigToInfo "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/SearchConfigToInfo" + m_SearchableEncryptionInfo "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/SearchableEncryptionInfo" + m_Sets "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/Sets" + m_SortCanon "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/SortCanon" + m_StructuredEncryption "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryption" + m_StructuredEncryptionCrypt "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionCrypt" + m_StructuredEncryptionFooter "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionFooter" + m_StructuredEncryptionHeader "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionHeader" + m_StructuredEncryptionPaths "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionPaths" + m_StructuredEncryptionUtil "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionUtil" + m_TermLoc "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/TermLoc" + m__System "github.com/dafny-lang/DafnyRuntimeGo/v4/System_" + _dafny "github.com/dafny-lang/DafnyRuntimeGo/v4/dafny" +) + +var _ = os.Args +var _ _dafny.Dummy__ +var _ m__System.Dummy__ +var _ m_Wrappers.Dummy__ +var _ m_BoundedInts.Dummy__ +var _ m_StandardLibrary_UInt.Dummy__ +var _ m_StandardLibrary_Sequence.Dummy__ +var _ m_StandardLibrary_String.Dummy__ +var _ m_StandardLibrary.Dummy__ +var _ m_AwsCryptographyPrimitivesTypes.Dummy__ +var _ m_Random.Dummy__ +var _ m_Digest.Dummy__ +var _ m_WrappedHMAC.Dummy__ +var _ m_HKDF.Dummy__ +var _ m_WrappedHKDF.Dummy__ +var _ m_KdfCtr.Dummy__ +var _ m_AwsCryptographyPrimitivesOperations.Dummy__ +var _ m_AtomicPrimitives.Dummy__ +var _ m_ComAmazonawsDynamodbTypes.Dummy__ +var _ m_ComAmazonawsKmsTypes.Dummy__ +var _ m_AwsCryptographyKeyStoreTypes.Dummy__ +var _ m_AwsCryptographyMaterialProvidersTypes.Dummy__ +var _ m_Base64.Dummy__ +var _ m_AlgorithmSuites.Dummy__ +var _ m_Materials.Dummy__ +var _ m_Keyring.Dummy__ +var _ m_Relations.Dummy__ +var _ m_Seq_MergeSort.Dummy__ +var _ m__Math.Dummy__ +var _ m_Seq.Dummy__ +var _ m_MultiKeyring.Dummy__ +var _ m_AwsArnParsing.Dummy__ +var _ m_AwsKmsMrkAreUnique.Dummy__ +var _ m_Actions.Dummy__ +var _ m_AwsKmsMrkMatchForDecrypt.Dummy__ +var _ m_AwsKmsUtils.Dummy__ +var _ m_Constants.Dummy__ +var _ m_MaterialWrapping.Dummy__ +var _ m_CanonicalEncryptionContext.Dummy__ +var _ m_IntermediateKeyWrapping.Dummy__ +var _ m_EdkWrapping.Dummy__ +var _ m_ErrorMessages.Dummy__ +var _ m_AwsKmsKeyring.Dummy__ +var _ m_StrictMultiKeyring.Dummy__ +var _ m_AwsKmsDiscoveryKeyring.Dummy__ +var _ m_Com_Amazonaws_Kms.Dummy__ +var _ m_Com_Amazonaws_Dynamodb.Dummy__ +var _ m_DiscoveryMultiKeyring.Dummy__ +var _ m_AwsKmsMrkDiscoveryKeyring.Dummy__ +var _ m_MrkAwareDiscoveryMultiKeyring.Dummy__ +var _ m_AwsKmsMrkKeyring.Dummy__ +var _ m_MrkAwareStrictMultiKeyring.Dummy__ +var _ m_LocalCMC.Dummy__ +var _ m_SynchronizedLocalCMC.Dummy__ +var _ m_StormTracker.Dummy__ +var _ m_StormTrackingCMC.Dummy__ +var _ m_CacheConstants.Dummy__ +var _ m_AwsKmsHierarchicalKeyring.Dummy__ +var _ m_AwsKmsRsaKeyring.Dummy__ +var _ m_EcdhEdkWrapping.Dummy__ +var _ m_RawECDHKeyring.Dummy__ +var _ m_AwsKmsEcdhKeyring.Dummy__ +var _ m_RawAESKeyring.Dummy__ +var _ m_RawRSAKeyring.Dummy__ +var _ m_CMM.Dummy__ +var _ m_Defaults.Dummy__ +var _ m_Commitment.Dummy__ +var _ m_DefaultCMM.Dummy__ +var _ m_DefaultClientSupplier.Dummy__ +var _ m_Utils.Dummy__ +var _ m_RequiredEncryptionContextCMM.Dummy__ +var _ m_AwsCryptographyMaterialProvidersOperations.Dummy__ +var _ m_MaterialProviders.Dummy__ +var _ m_KeyStoreErrorMessages.Dummy__ +var _ m_KmsArn.Dummy__ +var _ m_Structure.Dummy__ +var _ m_KMSKeystoreOperations.Dummy__ +var _ m_DDBKeystoreOperations.Dummy__ +var _ m_CreateKeys.Dummy__ +var _ m_CreateKeyStoreTable.Dummy__ +var _ m_GetKeys.Dummy__ +var _ m_AwsCryptographyKeyStoreOperations.Dummy__ +var _ m_KeyStore.Dummy__ +var _ m__Unicode.Dummy__ +var _ m_Functions.Dummy__ +var _ m_Utf8EncodingForm.Dummy__ +var _ m_Utf16EncodingForm.Dummy__ +var _ m_UnicodeStrings.Dummy__ +var _ m_FileIO.Dummy__ +var _ m_GeneralInternals.Dummy__ +var _ m_MulInternalsNonlinear.Dummy__ +var _ m_MulInternals.Dummy__ +var _ m_Mul.Dummy__ +var _ m_ModInternalsNonlinear.Dummy__ +var _ m_DivInternalsNonlinear.Dummy__ +var _ m_ModInternals.Dummy__ +var _ m_DivInternals.Dummy__ +var _ m_DivMod.Dummy__ +var _ m_Power.Dummy__ +var _ m_Logarithm.Dummy__ +var _ m_StandardLibraryInterop.Dummy__ +var _ m_Streams.Dummy__ +var _ m_Sorting.Dummy__ +var _ m_HexStrings.Dummy__ +var _ m_GetOpt.Dummy__ +var _ m_FloatCompare.Dummy__ +var _ m_Base64Lemmas.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Dummy__ +var _ m_StructuredEncryptionUtil.Dummy__ +var _ m_Sets.Dummy__ +var _ m_StructuredEncryptionPaths.Dummy__ +var _ m_StructuredEncryptionHeader.Dummy__ +var _ m_StructuredEncryptionFooter.Dummy__ +var _ m_SortCanon.Dummy__ +var _ m_Canonize.Dummy__ +var _ m_StructuredEncryptionCrypt.Dummy__ +var _ m__Maps.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkStructuredEncryptionOperations.Dummy__ +var _ m_StructuredEncryption.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Dummy__ +var _ m_DynamoDbEncryptionUtil.Dummy__ +var _ m_DynamoDbNormalizeNumber.Dummy__ +var _ m_DynamoToStruct.Dummy__ +var _ m_DynamoDbItemEncryptorUtil.Dummy__ +var _ m_InternalLegacyOverride.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorOperations.Dummy__ +var _ m_DynamoDbItemEncryptor.Dummy__ +var _ m_DynamoDbEncryptionBranchKeyIdSupplier.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkDynamoDbOperations.Dummy__ +var _ m_DynamoDbEncryption.Dummy__ +var _ m_TermLoc.Dummy__ +var _ m_DdbVirtualFields.Dummy__ +var _ m_DynamoDbUpdateExpr.Dummy__ +var _ m_BaseBeacon.Dummy__ +var _ m_CompoundBeacon.Dummy__ +var _ m_SearchableEncryptionInfo.Dummy__ +var _ m_DynamoDBFilterExpr.Dummy__ +var _ m_DynamoDBSupport.Dummy__ +var _ m_SearchConfigToInfo.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Dummy__ +var _ m_DdbMiddlewareConfig.Dummy__ +var _ m_DdbStatement.Dummy__ + +type Dummy__ struct{} + +// Definition of class Default__ +type Default__ struct { + dummy byte +} + +func New_Default___() *Default__ { + _this := Default__{} + + return &_this +} + +type CompanionStruct_Default___ struct { +} + +var Companion_Default___ = CompanionStruct_Default___{} + +func (_this *Default__) Equals(other *Default__) bool { + return _this == other +} + +func (_this *Default__) EqualsGeneric(x interface{}) bool { + other, ok := x.(*Default__) + return ok && _this.Equals(other) +} + +func (*Default__) String() string { + return "DynamoDbMiddlewareSupport.Default__" +} +func (_this *Default__) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = &Default__{} + +func (_static *CompanionStruct_Default___) NoMap(m m_Wrappers.Option) bool { + return ((m).Is_None()) || ((((m).Dtor_value().(_dafny.Map)).Cardinality()).Sign() == 0) +} +func (_static *CompanionStruct_Default___) NoList(m m_Wrappers.Option) bool { + return ((m).Is_None()) || ((_dafny.IntOfUint32(((m).Dtor_value().(_dafny.Sequence)).Cardinality())).Sign() == 0) +} +func (_static *CompanionStruct_Default___) IsWriteable(config m_DdbMiddlewareConfig.TableConfig, item _dafny.Map) m_Wrappers.Result { + return (m_DynamoDBSupport.Companion_Default___.IsWriteable(item)).MapFailure(func(coer141 func(_dafny.Sequence) m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Error) func(interface{}) interface{} { + return func(arg175 interface{}) interface{} { + return coer141(arg175.(_dafny.Sequence)) + } + }(func(_0_e _dafny.Sequence) m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Error { + return m_DdbMiddlewareConfig.Companion_Default___.E(_0_e) + })) +} +func (_static *CompanionStruct_Default___) IsSigned(config m_DdbMiddlewareConfig.TableConfig, attr _dafny.Sequence) bool { + return m_DynamoDBSupport.Companion_Default___.IsSigned((((config).Dtor_itemEncryptor()).Config()).Dtor_attributeActionsOnEncrypt(), attr) +} +func (_static *CompanionStruct_Default___) TestConditionExpression(config m_DdbMiddlewareConfig.TableConfig, expr m_Wrappers.Option, attrNames m_Wrappers.Option, attrValues m_Wrappers.Option) m_Wrappers.Result { + return (m_DynamoDBSupport.Companion_Default___.TestConditionExpression((((config).Dtor_itemEncryptor()).Config()).Dtor_attributeActionsOnEncrypt(), expr, attrNames, attrValues)).MapFailure(func(coer142 func(_dafny.Sequence) m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Error) func(interface{}) interface{} { + return func(arg176 interface{}) interface{} { + return coer142(arg176.(_dafny.Sequence)) + } + }(func(_0_e _dafny.Sequence) m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Error { + return m_DdbMiddlewareConfig.Companion_Default___.E(_0_e) + })) +} +func (_static *CompanionStruct_Default___) TestUpdateExpression(config m_DdbMiddlewareConfig.TableConfig, expr m_Wrappers.Option, attrNames m_Wrappers.Option, attrValues m_Wrappers.Option) m_Wrappers.Result { + return (m_DynamoDBSupport.Companion_Default___.TestUpdateExpression((((config).Dtor_itemEncryptor()).Config()).Dtor_attributeActionsOnEncrypt(), expr, attrNames, attrValues)).MapFailure(func(coer143 func(_dafny.Sequence) m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Error) func(interface{}) interface{} { + return func(arg177 interface{}) interface{} { + return coer143(arg177.(_dafny.Sequence)) + } + }(func(_0_e _dafny.Sequence) m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Error { + return m_DdbMiddlewareConfig.Companion_Default___.E(_0_e) + })) +} +func (_static *CompanionStruct_Default___) AddSignedBeacons(config m_DdbMiddlewareConfig.TableConfig, item _dafny.Map) m_Wrappers.Result { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptyMap) + _ = output + var _0_ret m_Wrappers.Result + _ = _0_ret + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_DynamoDBSupport.Companion_Default___.AddSignedBeacons((config).Dtor_search(), item) + _0_ret = _out0 + output = (_0_ret).MapFailure(func(coer144 func(m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Error) m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Error) func(interface{}) interface{} { + return func(arg178 interface{}) interface{} { + return coer144(arg178.(m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Error)) + } + }(func(_1_e m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Error) m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Error { + return m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_Error_.Create_AwsCryptographyDbEncryptionSdkDynamoDb_(_1_e) + })) + return output + return output +} +func (_static *CompanionStruct_Default___) GetEncryptedBeacons(config m_DdbMiddlewareConfig.TableConfig, item _dafny.Map, keyId m_DynamoDbEncryptionUtil.MaybeKeyId) m_Wrappers.Result { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptyMap) + _ = output + var _0_ret m_Wrappers.Result + _ = _0_ret + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_DynamoDBSupport.Companion_Default___.GetEncryptedBeacons((config).Dtor_search(), item, keyId) + _0_ret = _out0 + output = (_0_ret).MapFailure(func(coer145 func(m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Error) m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Error) func(interface{}) interface{} { + return func(arg179 interface{}) interface{} { + return coer145(arg179.(m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Error)) + } + }(func(_1_e m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Error) m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Error { + return m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_Error_.Create_AwsCryptographyDbEncryptionSdkDynamoDb_(_1_e) + })) + return output + return output +} +func (_static *CompanionStruct_Default___) GetBeaconKeyId(config m_DdbMiddlewareConfig.TableConfig, keyExpr m_Wrappers.Option, filterExpr m_Wrappers.Option, values m_Wrappers.Option, names m_Wrappers.Option) m_Wrappers.Result { + return (m_DynamoDBSupport.Companion_Default___.GetBeaconKeyId((config).Dtor_search(), keyExpr, filterExpr, values, names)).MapFailure(func(coer146 func(m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Error) m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Error) func(interface{}) interface{} { + return func(arg180 interface{}) interface{} { + return coer146(arg180.(m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Error)) + } + }(func(_0_e m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Error) m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Error { + return m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_Error_.Create_AwsCryptographyDbEncryptionSdkDynamoDb_(_0_e) + })) +} +func (_static *CompanionStruct_Default___) GetKeyIdFromHeader(config m_DdbMiddlewareConfig.TableConfig, output m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.EncryptItemOutput) m_Wrappers.Result { + if (((config).Dtor_search()).Is_Some()) && (((((((config).Dtor_search()).Dtor_value().(m_SearchableEncryptionInfo.SearchInfo)).Curr()).Dtor_keySource()).Dtor_keyLoc()).Is_MultiLoc()) { + var _0_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need(((output).Dtor_parsedHeader()).Is_Some(), m_DdbMiddlewareConfig.Companion_Default___.E(_dafny.SeqOfString("In multi-tenant mode, the parsed header is required."))) + _ = _0_valueOrError0 + if (_0_valueOrError0).IsFailure() { + return (_0_valueOrError0).PropagateFailure() + } else { + var _1_keys _dafny.Sequence = (((output).Dtor_parsedHeader()).Dtor_value().(m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.ParsedHeader)).Dtor_encryptedDataKeys() + _ = _1_keys + var _2_valueOrError1 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need((_dafny.IntOfUint32((_1_keys).Cardinality())).Cmp(_dafny.One) == 0, m_DdbMiddlewareConfig.Companion_Default___.E(_dafny.SeqOfString("Encrypt header has more than one Encrypted Data Key"))) + _ = _2_valueOrError1 + if (_2_valueOrError1).IsFailure() { + return (_2_valueOrError1).PropagateFailure() + } else { + var _3_valueOrError2 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need(_dafny.Companion_Sequence_.Equal(((_1_keys).Select(0).(m_AwsCryptographyMaterialProvidersTypes.EncryptedDataKey)).Dtor_keyProviderId(), Companion_Default___.HierarchicalKeyringId()), m_DdbMiddlewareConfig.Companion_Default___.E(_dafny.SeqOfString("In multi-tenant mode, keyProviderId must be aws-kms-hierarchy"))) + _ = _3_valueOrError2 + if (_3_valueOrError2).IsFailure() { + return (_3_valueOrError2).PropagateFailure() + } else { + var _4_valueOrError3 m_Wrappers.Result = (m_UTF8.Decode(((_1_keys).Select(0).(m_AwsCryptographyMaterialProvidersTypes.EncryptedDataKey)).Dtor_keyProviderInfo())).MapFailure(func(coer147 func(_dafny.Sequence) m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Error) func(interface{}) interface{} { + return func(arg181 interface{}) interface{} { + return coer147(arg181.(_dafny.Sequence)) + } + }(func(_5_e _dafny.Sequence) m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Error { + return m_DdbMiddlewareConfig.Companion_Default___.E(_5_e) + })) + _ = _4_valueOrError3 + if (_4_valueOrError3).IsFailure() { + return (_4_valueOrError3).PropagateFailure() + } else { + var _6_keyId _dafny.Sequence = (_4_valueOrError3).Extract().(_dafny.Sequence) + _ = _6_keyId + return m_Wrappers.Companion_Result_.Create_Success_(m_Wrappers.Companion_Option_.Create_Some_(_6_keyId)) + } + } + } + } + } else { + return m_Wrappers.Companion_Result_.Create_Success_(m_Wrappers.Companion_Option_.Create_None_()) + } +} +func (_static *CompanionStruct_Default___) RemoveBeacons(config m_DdbMiddlewareConfig.TableConfig, item _dafny.Map) m_Wrappers.Result { + return (m_DynamoDBSupport.Companion_Default___.RemoveBeacons((config).Dtor_search(), item)).MapFailure(func(coer148 func(_dafny.Sequence) m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Error) func(interface{}) interface{} { + return func(arg182 interface{}) interface{} { + return coer148(arg182.(_dafny.Sequence)) + } + }(func(_0_e _dafny.Sequence) m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Error { + return m_DdbMiddlewareConfig.Companion_Default___.E(_0_e) + })) +} +func (_static *CompanionStruct_Default___) QueryInputForBeacons(config m_DdbMiddlewareConfig.TableConfig, req m_ComAmazonawsDynamodbTypes.QueryInput) m_Wrappers.Result { + var output m_Wrappers.Result = m_Wrappers.Result{} + _ = output + var _0_ret m_Wrappers.Result + _ = _0_ret + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_DynamoDBSupport.Companion_Default___.QueryInputForBeacons((config).Dtor_search(), (((config).Dtor_itemEncryptor()).Config()).Dtor_attributeActionsOnEncrypt(), req) + _0_ret = _out0 + output = (_0_ret).MapFailure(func(coer149 func(m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Error) m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Error) func(interface{}) interface{} { + return func(arg183 interface{}) interface{} { + return coer149(arg183.(m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Error)) + } + }(func(_1_e m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Error) m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Error { + return m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_Error_.Create_AwsCryptographyDbEncryptionSdkDynamoDb_(_1_e) + })) + return output + return output +} +func (_static *CompanionStruct_Default___) QueryOutputForBeacons(config m_DdbMiddlewareConfig.TableConfig, req m_ComAmazonawsDynamodbTypes.QueryInput, resp m_ComAmazonawsDynamodbTypes.QueryOutput) m_Wrappers.Result { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_ComAmazonawsDynamodbTypes.Companion_QueryOutput_.Default()) + _ = output + var _0_ret m_Wrappers.Result + _ = _0_ret + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_DynamoDBSupport.Companion_Default___.QueryOutputForBeacons((config).Dtor_search(), req, resp) + _0_ret = _out0 + output = (_0_ret).MapFailure(func(coer150 func(m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Error) m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Error) func(interface{}) interface{} { + return func(arg184 interface{}) interface{} { + return coer150(arg184.(m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Error)) + } + }(func(_1_e m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Error) m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Error { + return m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_Error_.Create_AwsCryptographyDbEncryptionSdkDynamoDb_(_1_e) + })) + return output + return output +} +func (_static *CompanionStruct_Default___) ScanInputForBeacons(config m_DdbMiddlewareConfig.TableConfig, req m_ComAmazonawsDynamodbTypes.ScanInput) m_Wrappers.Result { + var output m_Wrappers.Result = m_Wrappers.Result{} + _ = output + var _0_ret m_Wrappers.Result + _ = _0_ret + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_DynamoDBSupport.Companion_Default___.ScanInputForBeacons((config).Dtor_search(), (((config).Dtor_itemEncryptor()).Config()).Dtor_attributeActionsOnEncrypt(), req) + _0_ret = _out0 + output = (_0_ret).MapFailure(func(coer151 func(m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Error) m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Error) func(interface{}) interface{} { + return func(arg185 interface{}) interface{} { + return coer151(arg185.(m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Error)) + } + }(func(_1_e m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Error) m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Error { + return m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_Error_.Create_AwsCryptographyDbEncryptionSdkDynamoDb_(_1_e) + })) + return output + return output +} +func (_static *CompanionStruct_Default___) ScanOutputForBeacons(config m_DdbMiddlewareConfig.TableConfig, req m_ComAmazonawsDynamodbTypes.ScanInput, resp m_ComAmazonawsDynamodbTypes.ScanOutput) m_Wrappers.Result { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_ComAmazonawsDynamodbTypes.Companion_ScanOutput_.Default()) + _ = output + var _0_ret m_Wrappers.Result + _ = _0_ret + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_DynamoDBSupport.Companion_Default___.ScanOutputForBeacons((config).Dtor_search(), req, resp) + _0_ret = _out0 + output = (_0_ret).MapFailure(func(coer152 func(m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Error) m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Error) func(interface{}) interface{} { + return func(arg186 interface{}) interface{} { + return coer152(arg186.(m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Error)) + } + }(func(_1_e m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Error) m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Error { + return m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_Error_.Create_AwsCryptographyDbEncryptionSdkDynamoDb_(_1_e) + })) + return output + return output +} +func (_static *CompanionStruct_Default___) GetVirtualFields(search m_SearchableEncryptionInfo.SearchInfo, item _dafny.Map, version m_Wrappers.Option) m_Wrappers.Result { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptyMap) + _ = output + if ((version).Is_Some()) && (((version).Dtor_value().(int32)) != (int32(1)) /* dircomp */) { + output = m_Wrappers.Companion_Result_.Create_Failure_(m_DdbMiddlewareConfig.Companion_Default___.E(_dafny.SeqOfString("Beacon Version Number must be '1'"))) + return output + } + var _0_ret m_Wrappers.Result + _ = _0_ret + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_DynamoDBSupport.Companion_Default___.GetVirtualFields((search).Curr(), item) + _0_ret = _out0 + output = (_0_ret).MapFailure(func(coer153 func(m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Error) m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Error) func(interface{}) interface{} { + return func(arg187 interface{}) interface{} { + return coer153(arg187.(m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Error)) + } + }(func(_1_e m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Error) m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Error { + return m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_Error_.Create_AwsCryptographyDbEncryptionSdkDynamoDb_(_1_e) + })) + return output + return output +} +func (_static *CompanionStruct_Default___) GetCompoundBeacons(search m_SearchableEncryptionInfo.SearchInfo, item _dafny.Map, version m_Wrappers.Option) m_Wrappers.Result { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptyMap) + _ = output + if ((version).Is_Some()) && (((version).Dtor_value().(int32)) != (int32(1)) /* dircomp */) { + output = m_Wrappers.Companion_Result_.Create_Failure_(m_DdbMiddlewareConfig.Companion_Default___.E(_dafny.SeqOfString("Beacon Version Number must be '1'"))) + return output + } + var _0_ret m_Wrappers.Result + _ = _0_ret + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_DynamoDBSupport.Companion_Default___.GetCompoundBeacons((search).Curr(), item) + _0_ret = _out0 + output = (_0_ret).MapFailure(func(coer154 func(m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Error) m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Error) func(interface{}) interface{} { + return func(arg188 interface{}) interface{} { + return coer154(arg188.(m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Error)) + } + }(func(_1_e m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Error) m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Error { + return m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_Error_.Create_AwsCryptographyDbEncryptionSdkDynamoDb_(_1_e) + })) + return output + return output +} +func (_static *CompanionStruct_Default___) HierarchicalKeyringId() _dafny.Sequence { + return m_UTF8.Companion_Default___.EncodeAscii(_dafny.SeqOfString("aws-kms-hierarchy")) +} + +// End of class Default__ diff --git a/customer-preview/ddb-esdk/DynamoDbNormalizeNumber/DynamoDbNormalizeNumber.go b/customer-preview/ddb-esdk/DynamoDbNormalizeNumber/DynamoDbNormalizeNumber.go new file mode 100644 index 000000000..7020b03a4 --- /dev/null +++ b/customer-preview/ddb-esdk/DynamoDbNormalizeNumber/DynamoDbNormalizeNumber.go @@ -0,0 +1,615 @@ +// Package DynamoDbNormalizeNumber +// Dafny module DynamoDbNormalizeNumber compiled into Go + +package DynamoDbNormalizeNumber + +import ( + os "os" + + m_ComAmazonawsDynamodbTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/ComAmazonawsDynamodbTypes" + m_Com_Amazonaws_Dynamodb "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/Com_Amazonaws_Dynamodb" + m_ComAmazonawsKmsTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/ComAmazonawsKmsTypes" + m_Com_Amazonaws_Kms "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/Com_Amazonaws_Kms" + m_AlgorithmSuites "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AlgorithmSuites" + m_AwsArnParsing "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsArnParsing" + m_AwsCryptographyKeyStoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreOperations" + m_AwsCryptographyKeyStoreTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreTypes" + m_AwsCryptographyMaterialProvidersOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersOperations" + m_AwsCryptographyMaterialProvidersTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersTypes" + m_AwsKmsDiscoveryKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsDiscoveryKeyring" + m_AwsKmsEcdhKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsEcdhKeyring" + m_AwsKmsHierarchicalKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsHierarchicalKeyring" + m_AwsKmsKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsKeyring" + m_AwsKmsMrkAreUnique "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkAreUnique" + m_AwsKmsMrkDiscoveryKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkDiscoveryKeyring" + m_AwsKmsMrkKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkKeyring" + m_AwsKmsMrkMatchForDecrypt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkMatchForDecrypt" + m_AwsKmsRsaKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsRsaKeyring" + m_AwsKmsUtils "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsUtils" + m_CMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CMM" + m_CacheConstants "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CacheConstants" + m_CanonicalEncryptionContext "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CanonicalEncryptionContext" + m_Commitment "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Commitment" + m_Constants "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Constants" + m_CreateKeyStoreTable "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeyStoreTable" + m_CreateKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeys" + m_DDBKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DDBKeystoreOperations" + m_DefaultCMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DefaultCMM" + m_DefaultClientSupplier "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DefaultClientSupplier" + m_Defaults "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Defaults" + m_DiscoveryMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DiscoveryMultiKeyring" + m_EcdhEdkWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/EcdhEdkWrapping" + m_EdkWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/EdkWrapping" + m_ErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/ErrorMessages" + m_GetKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/GetKeys" + m_IntermediateKeyWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/IntermediateKeyWrapping" + m_KMSKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KMSKeystoreOperations" + m_KeyStore "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStore" + m_KeyStoreErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStoreErrorMessages" + m_Keyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Keyring" + m_KmsArn "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KmsArn" + m_LocalCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/LocalCMC" + m_MaterialProviders "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MaterialProviders" + m_MaterialWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MaterialWrapping" + m_Materials "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Materials" + m_MrkAwareDiscoveryMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MrkAwareDiscoveryMultiKeyring" + m_MrkAwareStrictMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MrkAwareStrictMultiKeyring" + m_MultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MultiKeyring" + m_RawAESKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawAESKeyring" + m_RawECDHKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawECDHKeyring" + m_RawRSAKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawRSAKeyring" + m_RequiredEncryptionContextCMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RequiredEncryptionContextCMM" + m_StormTracker "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StormTracker" + m_StormTrackingCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StormTrackingCMC" + m_StrictMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StrictMultiKeyring" + m_Structure "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Structure" + m_SynchronizedLocalCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/SynchronizedLocalCMC" + m_Utils "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Utils" + m_AtomicPrimitives "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AtomicPrimitives" + m_AwsCryptographyPrimitivesOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesOperations" + m_AwsCryptographyPrimitivesTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesTypes" + m_Digest "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Digest" + m_HKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/HKDF" + m_KdfCtr "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/KdfCtr" + m_Random "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Random" + m_WrappedHKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHKDF" + m_WrappedHMAC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHMAC" + m_Actions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Actions" + m_Base64 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64" + m_Base64Lemmas "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64Lemmas" + m_BoundedInts "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/BoundedInts" + m_DivInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternals" + m_DivInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternalsNonlinear" + m_DivMod "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivMod" + m_FileIO "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FileIO" + m_FloatCompare "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FloatCompare" + m_Functions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Functions" + m_GeneralInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GeneralInternals" + m_GetOpt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GetOpt" + m_HexStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/HexStrings" + m_Logarithm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Logarithm" + m__Math "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Math_" + m_ModInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternals" + m_ModInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternalsNonlinear" + m_Mul "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Mul" + m_MulInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternals" + m_MulInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternalsNonlinear" + m_Power "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Power" + m_Relations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Relations" + m_Seq "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq" + m_Seq_MergeSort "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq_MergeSort" + m_Sorting "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Sorting" + m_StandardLibrary "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary" + m_StandardLibraryInterop "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibraryInterop" + m_StandardLibrary_Sequence "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_Sequence" + m_StandardLibrary_String "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_String" + m_StandardLibrary_UInt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_UInt" + m_Streams "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Streams" + m_UnicodeStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UnicodeStrings" + m__Unicode "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Unicode_" + m_Utf16EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf16EncodingForm" + m_Utf8EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf8EncodingForm" + m_Wrappers "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers" + m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes" + m_AwsCryptographyDbEncryptionSdkDynamoDbTypes "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbTypes" + m_AwsCryptographyDbEncryptionSdkStructuredEncryptionOperations "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkStructuredEncryptionOperations" + m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes" + m_Canonize "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/Canonize" + m_DynamoDbEncryptionUtil "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbEncryptionUtil" + m__Maps "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/Maps_" + m_Sets "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/Sets" + m_SortCanon "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/SortCanon" + m_StructuredEncryption "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryption" + m_StructuredEncryptionCrypt "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionCrypt" + m_StructuredEncryptionFooter "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionFooter" + m_StructuredEncryptionHeader "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionHeader" + m_StructuredEncryptionPaths "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionPaths" + m_StructuredEncryptionUtil "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionUtil" + m__System "github.com/dafny-lang/DafnyRuntimeGo/v4/System_" + _dafny "github.com/dafny-lang/DafnyRuntimeGo/v4/dafny" +) + +var _ = os.Args +var _ _dafny.Dummy__ +var _ m__System.Dummy__ +var _ m_Wrappers.Dummy__ +var _ m_BoundedInts.Dummy__ +var _ m_StandardLibrary_UInt.Dummy__ +var _ m_StandardLibrary_Sequence.Dummy__ +var _ m_StandardLibrary_String.Dummy__ +var _ m_StandardLibrary.Dummy__ +var _ m_AwsCryptographyPrimitivesTypes.Dummy__ +var _ m_Random.Dummy__ +var _ m_Digest.Dummy__ +var _ m_WrappedHMAC.Dummy__ +var _ m_HKDF.Dummy__ +var _ m_WrappedHKDF.Dummy__ +var _ m_KdfCtr.Dummy__ +var _ m_AwsCryptographyPrimitivesOperations.Dummy__ +var _ m_AtomicPrimitives.Dummy__ +var _ m_ComAmazonawsDynamodbTypes.Dummy__ +var _ m_ComAmazonawsKmsTypes.Dummy__ +var _ m_AwsCryptographyKeyStoreTypes.Dummy__ +var _ m_AwsCryptographyMaterialProvidersTypes.Dummy__ +var _ m_Base64.Dummy__ +var _ m_AlgorithmSuites.Dummy__ +var _ m_Materials.Dummy__ +var _ m_Keyring.Dummy__ +var _ m_Relations.Dummy__ +var _ m_Seq_MergeSort.Dummy__ +var _ m__Math.Dummy__ +var _ m_Seq.Dummy__ +var _ m_MultiKeyring.Dummy__ +var _ m_AwsArnParsing.Dummy__ +var _ m_AwsKmsMrkAreUnique.Dummy__ +var _ m_Actions.Dummy__ +var _ m_AwsKmsMrkMatchForDecrypt.Dummy__ +var _ m_AwsKmsUtils.Dummy__ +var _ m_Constants.Dummy__ +var _ m_MaterialWrapping.Dummy__ +var _ m_CanonicalEncryptionContext.Dummy__ +var _ m_IntermediateKeyWrapping.Dummy__ +var _ m_EdkWrapping.Dummy__ +var _ m_ErrorMessages.Dummy__ +var _ m_AwsKmsKeyring.Dummy__ +var _ m_StrictMultiKeyring.Dummy__ +var _ m_AwsKmsDiscoveryKeyring.Dummy__ +var _ m_Com_Amazonaws_Kms.Dummy__ +var _ m_Com_Amazonaws_Dynamodb.Dummy__ +var _ m_DiscoveryMultiKeyring.Dummy__ +var _ m_AwsKmsMrkDiscoveryKeyring.Dummy__ +var _ m_MrkAwareDiscoveryMultiKeyring.Dummy__ +var _ m_AwsKmsMrkKeyring.Dummy__ +var _ m_MrkAwareStrictMultiKeyring.Dummy__ +var _ m_LocalCMC.Dummy__ +var _ m_SynchronizedLocalCMC.Dummy__ +var _ m_StormTracker.Dummy__ +var _ m_StormTrackingCMC.Dummy__ +var _ m_CacheConstants.Dummy__ +var _ m_AwsKmsHierarchicalKeyring.Dummy__ +var _ m_AwsKmsRsaKeyring.Dummy__ +var _ m_EcdhEdkWrapping.Dummy__ +var _ m_RawECDHKeyring.Dummy__ +var _ m_AwsKmsEcdhKeyring.Dummy__ +var _ m_RawAESKeyring.Dummy__ +var _ m_RawRSAKeyring.Dummy__ +var _ m_CMM.Dummy__ +var _ m_Defaults.Dummy__ +var _ m_Commitment.Dummy__ +var _ m_DefaultCMM.Dummy__ +var _ m_DefaultClientSupplier.Dummy__ +var _ m_Utils.Dummy__ +var _ m_RequiredEncryptionContextCMM.Dummy__ +var _ m_AwsCryptographyMaterialProvidersOperations.Dummy__ +var _ m_MaterialProviders.Dummy__ +var _ m_KeyStoreErrorMessages.Dummy__ +var _ m_KmsArn.Dummy__ +var _ m_Structure.Dummy__ +var _ m_KMSKeystoreOperations.Dummy__ +var _ m_DDBKeystoreOperations.Dummy__ +var _ m_CreateKeys.Dummy__ +var _ m_CreateKeyStoreTable.Dummy__ +var _ m_GetKeys.Dummy__ +var _ m_AwsCryptographyKeyStoreOperations.Dummy__ +var _ m_KeyStore.Dummy__ +var _ m__Unicode.Dummy__ +var _ m_Functions.Dummy__ +var _ m_Utf8EncodingForm.Dummy__ +var _ m_Utf16EncodingForm.Dummy__ +var _ m_UnicodeStrings.Dummy__ +var _ m_FileIO.Dummy__ +var _ m_GeneralInternals.Dummy__ +var _ m_MulInternalsNonlinear.Dummy__ +var _ m_MulInternals.Dummy__ +var _ m_Mul.Dummy__ +var _ m_ModInternalsNonlinear.Dummy__ +var _ m_DivInternalsNonlinear.Dummy__ +var _ m_ModInternals.Dummy__ +var _ m_DivInternals.Dummy__ +var _ m_DivMod.Dummy__ +var _ m_Power.Dummy__ +var _ m_Logarithm.Dummy__ +var _ m_StandardLibraryInterop.Dummy__ +var _ m_Streams.Dummy__ +var _ m_Sorting.Dummy__ +var _ m_HexStrings.Dummy__ +var _ m_GetOpt.Dummy__ +var _ m_FloatCompare.Dummy__ +var _ m_Base64Lemmas.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Dummy__ +var _ m_StructuredEncryptionUtil.Dummy__ +var _ m_Sets.Dummy__ +var _ m_StructuredEncryptionPaths.Dummy__ +var _ m_StructuredEncryptionHeader.Dummy__ +var _ m_StructuredEncryptionFooter.Dummy__ +var _ m_SortCanon.Dummy__ +var _ m_Canonize.Dummy__ +var _ m_StructuredEncryptionCrypt.Dummy__ +var _ m__Maps.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkStructuredEncryptionOperations.Dummy__ +var _ m_StructuredEncryption.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Dummy__ +var _ m_DynamoDbEncryptionUtil.Dummy__ + +type Dummy__ struct{} + +// Definition of class Default__ +type Default__ struct { + dummy byte +} + +func New_Default___() *Default__ { + _this := Default__{} + + return &_this +} + +type CompanionStruct_Default___ struct { +} + +var Companion_Default___ = CompanionStruct_Default___{} + +func (_this *Default__) Equals(other *Default__) bool { + return _this == other +} + +func (_this *Default__) EqualsGeneric(x interface{}) bool { + other, ok := x.(*Default__) + return ok && _this.Equals(other) +} + +func (*Default__) String() string { + return "DynamoDbNormalizeNumber.Default__" +} +func (_this *Default__) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = &Default__{} + +func (_static *CompanionStruct_Default___) SkipLeadingZeros(val _dafny.Sequence) _dafny.Sequence { + goto TAIL_CALL_START +TAIL_CALL_START: + if (((_dafny.One).Cmp(_dafny.IntOfUint32((val).Cardinality())) < 0) && (((val).Select(0).(_dafny.Char)) == (_dafny.Char('0')))) && (((val).Select(1).(_dafny.Char)) != (_dafny.Char('.')) /* dircomp */) { + var _in0 _dafny.Sequence = (val).Drop(1) + _ = _in0 + val = _in0 + goto TAIL_CALL_START + } else { + return val + } +} +func (_static *CompanionStruct_Default___) SkipTrailingZeros(val _dafny.Sequence) _dafny.Sequence { + goto TAIL_CALL_START +TAIL_CALL_START: + if ((_dafny.One).Cmp(_dafny.IntOfUint32((val).Cardinality())) < 0) && (((val).Select(((_dafny.IntOfUint32((val).Cardinality())).Minus(_dafny.One)).Uint32()).(_dafny.Char)) == (_dafny.Char('0'))) { + if ((val).Select(((_dafny.IntOfUint32((val).Cardinality())).Minus(_dafny.IntOfInt64(2))).Uint32()).(_dafny.Char)) == (_dafny.Char('.')) { + return (val).Take(((_dafny.IntOfUint32((val).Cardinality())).Minus(_dafny.IntOfInt64(2))).Uint32()) + } else { + var _in0 _dafny.Sequence = (val).Take(((_dafny.IntOfUint32((val).Cardinality())).Minus(_dafny.One)).Uint32()) + _ = _in0 + val = _in0 + goto TAIL_CALL_START + } + } else { + return val + } +} +func (_static *CompanionStruct_Default___) SkipAllTrailingZeros(val _dafny.Sequence) _dafny.Sequence { + goto TAIL_CALL_START +TAIL_CALL_START: + if ((_dafny.IntOfUint32((val).Cardinality())).Sign() == 1) && (((val).Select(((_dafny.IntOfUint32((val).Cardinality())).Minus(_dafny.One)).Uint32()).(_dafny.Char)) == (_dafny.Char('0'))) { + var _in0 _dafny.Sequence = (val).Take(((_dafny.IntOfUint32((val).Cardinality())).Minus(_dafny.One)).Uint32()) + _ = _in0 + val = _in0 + goto TAIL_CALL_START + } else { + return val + } +} +func (_static *CompanionStruct_Default___) IsDecimalDigit(ch _dafny.Char) bool { + return ((_dafny.Char('0')) <= (ch)) && ((ch) <= (_dafny.Char('9'))) +} +func (_static *CompanionStruct_Default___) StrToIntInner(s _dafny.Sequence, acc _dafny.Int) m_Wrappers.Result { + goto TAIL_CALL_START +TAIL_CALL_START: + if (_dafny.IntOfUint32((s).Cardinality())).Sign() == 0 { + return m_Wrappers.Companion_Result_.Create_Success_(acc) + } else if Companion_Default___.IsDecimalDigit((s).Select(0).(_dafny.Char)) { + var _in0 _dafny.Sequence = (s).Drop(1) + _ = _in0 + var _in1 _dafny.Int = (((acc).Times(_dafny.IntOfInt64(10))).Plus(_dafny.IntOfInt32(rune((s).Select(0).(_dafny.Char))))).Minus(_dafny.IntOfInt32(rune(_dafny.Char('0')))) + _ = _in1 + s = _in0 + acc = _in1 + goto TAIL_CALL_START + } else { + return m_Wrappers.Companion_Result_.Create_Failure_(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.SeqOfString("The character '"), (s).Take(1)), _dafny.SeqOfString("' is not a valid decimal digit."))) + } +} +func (_static *CompanionStruct_Default___) StrToInt(s _dafny.Sequence) m_Wrappers.Result { + if (_dafny.IntOfUint32((s).Cardinality())).Sign() == 0 { + return m_Wrappers.Companion_Result_.Create_Failure_(_dafny.SeqOfString("An empty string is not a valid number.")) + } else if ((s).Select(0).(_dafny.Char)) == (_dafny.Char('-')) { + var _0_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need((_dafny.One).Cmp(_dafny.IntOfUint32((s).Cardinality())) < 0, _dafny.SeqOfString("An empty string is not a valid number.")) + _ = _0_valueOrError0 + if (_0_valueOrError0).IsFailure() { + return (_0_valueOrError0).PropagateFailure() + } else { + var _1_valueOrError1 m_Wrappers.Result = Companion_Default___.StrToIntInner((s).Drop(1), _dafny.Zero) + _ = _1_valueOrError1 + if (_1_valueOrError1).IsFailure() { + return (_1_valueOrError1).PropagateFailure() + } else { + var _2_x _dafny.Int = (_1_valueOrError1).Extract().(_dafny.Int) + _ = _2_x + return m_Wrappers.Companion_Result_.Create_Success_((_dafny.Zero).Minus(_2_x)) + } + } + } else if ((s).Select(0).(_dafny.Char)) == (_dafny.Char('+')) { + var _3_valueOrError2 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need((_dafny.One).Cmp(_dafny.IntOfUint32((s).Cardinality())) < 0, _dafny.SeqOfString("An empty string is not a valid number.")) + _ = _3_valueOrError2 + if (_3_valueOrError2).IsFailure() { + return (_3_valueOrError2).PropagateFailure() + } else { + return Companion_Default___.StrToIntInner((s).Drop(1), _dafny.Zero) + } + } else { + return Companion_Default___.StrToIntInner(s, _dafny.Zero) + } +} +func (_static *CompanionStruct_Default___) Zeros(n _dafny.Int) _dafny.Sequence { + return _dafny.SeqCreate((n).Uint32(), func(coer39 func(_dafny.Int) _dafny.Char) func(_dafny.Int) interface{} { + return func(arg51 _dafny.Int) interface{} { + return coer39(arg51) + } + }(func(_0_i _dafny.Int) _dafny.Char { + return _dafny.Char('0') + })).SetString() +} +func (_static *CompanionStruct_Default___) CountDigits(s _dafny.Sequence) _dafny.Int { + var _0___accumulator _dafny.Int = _dafny.Zero + _ = _0___accumulator + goto TAIL_CALL_START +TAIL_CALL_START: + if (_dafny.IntOfUint32((s).Cardinality())).Sign() == 0 { + return (_dafny.Zero).Plus(_0___accumulator) + } else if Companion_Default___.IsDecimalDigit((s).Select(0).(_dafny.Char)) { + _0___accumulator = (_0___accumulator).Plus(_dafny.One) + var _in0 _dafny.Sequence = (s).Drop(1) + _ = _in0 + s = _in0 + goto TAIL_CALL_START + } else { + return (_dafny.Zero).Plus(_0___accumulator) + } +} +func (_static *CompanionStruct_Default___) IsE(ch _dafny.Char) bool { + return ((ch) == (_dafny.Char('e'))) || ((ch) == (_dafny.Char('E'))) +} +func (_static *CompanionStruct_Default___) ParseNumber(n _dafny.Sequence) m_Wrappers.Result { + var _0_preDot _dafny.Int = Companion_Default___.CountDigits(n) + _ = _0_preDot + if (_dafny.IntOfUint32((n).Cardinality())).Cmp(_0_preDot) == 0 { + return m_Wrappers.Companion_Result_.Create_Success_(_dafny.TupleOf(n, _dafny.IntOfUint32((n).Cardinality()), _dafny.Zero)) + } else if ((n).Select((_0_preDot).Uint32()).(_dafny.Char)) == (_dafny.Char('.')) { + var _1_postDot _dafny.Int = Companion_Default___.CountDigits((n).Drop(((_0_preDot).Plus(_dafny.One)).Uint32())) + _ = _1_postDot + var _2_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need(((_0_preDot).Plus(_1_postDot)).Sign() == 1, _dafny.SeqOfString("Number needs digits either before or after the decimal point.")) + _ = _2_valueOrError0 + if (_2_valueOrError0).IsFailure() { + return (_2_valueOrError0).PropagateFailure() + } else { + var _3_len _dafny.Int = ((_0_preDot).Plus(_1_postDot)).Plus(_dafny.One) + _ = _3_len + if (_3_len).Cmp(_dafny.IntOfUint32((n).Cardinality())) == 0 { + return m_Wrappers.Companion_Result_.Create_Success_(_dafny.TupleOf(_dafny.Companion_Sequence_.Concatenate((n).Subsequence(0, (_0_preDot).Uint32()), (n).Drop(((_0_preDot).Plus(_dafny.One)).Uint32())), _0_preDot, _dafny.Zero)) + } else if Companion_Default___.IsE((n).Select((_3_len).Uint32()).(_dafny.Char)) { + var _4_valueOrError1 m_Wrappers.Result = Companion_Default___.StrToInt((n).Drop(((_3_len).Plus(_dafny.One)).Uint32())) + _ = _4_valueOrError1 + if (_4_valueOrError1).IsFailure() { + return (_4_valueOrError1).PropagateFailure() + } else { + var _5_exp _dafny.Int = (_4_valueOrError1).Extract().(_dafny.Int) + _ = _5_exp + return m_Wrappers.Companion_Result_.Create_Success_(_dafny.TupleOf(_dafny.Companion_Sequence_.Concatenate((n).Subsequence(0, (_0_preDot).Uint32()), (n).Subsequence(((_0_preDot).Plus(_dafny.One)).Uint32(), (_3_len).Uint32())), _0_preDot, _5_exp)) + } + } else { + return m_Wrappers.Companion_Result_.Create_Failure_(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.SeqOfString("Invalid Character in number at '"), (n).Drop((_3_len).Uint32())), _dafny.SeqOfString("'."))) + } + } + } else if (_0_preDot).Sign() == 0 { + return m_Wrappers.Companion_Result_.Create_Failure_(_dafny.SeqOfString("Number needs digits either before or after the decimal point.")) + } else if Companion_Default___.IsE((n).Select((_0_preDot).Uint32()).(_dafny.Char)) { + var _6_valueOrError2 m_Wrappers.Result = Companion_Default___.StrToInt((n).Drop(((_0_preDot).Plus(_dafny.One)).Uint32())) + _ = _6_valueOrError2 + if (_6_valueOrError2).IsFailure() { + return (_6_valueOrError2).PropagateFailure() + } else { + var _7_exp _dafny.Int = (_6_valueOrError2).Extract().(_dafny.Int) + _ = _7_exp + return m_Wrappers.Companion_Result_.Create_Success_(_dafny.TupleOf((n).Take((_0_preDot).Uint32()), _0_preDot, _7_exp)) + } + } else { + return m_Wrappers.Companion_Result_.Create_Failure_(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.SeqOfString("Invalid Character in number at '"), (n).Drop((_0_preDot).Uint32())), _dafny.SeqOfString("'."))) + } +} +func (_static *CompanionStruct_Default___) CountZeros(value _dafny.Sequence) _dafny.Int { + var _0___accumulator _dafny.Int = _dafny.Zero + _ = _0___accumulator + goto TAIL_CALL_START +TAIL_CALL_START: + if ((_dafny.IntOfUint32((value).Cardinality())).Sign() == 0) || (((value).Select(0).(_dafny.Char)) != (_dafny.Char('0')) /* dircomp */) { + return (_dafny.Zero).Plus(_0___accumulator) + } else { + _0___accumulator = (_0___accumulator).Plus(_dafny.One) + var _in0 _dafny.Sequence = (value).Drop(1) + _ = _in0 + value = _in0 + goto TAIL_CALL_START + } +} +func (_static *CompanionStruct_Default___) NormalizeValue(value _dafny.Sequence, pos _dafny.Int) _dafny.Tuple { + goto TAIL_CALL_START +TAIL_CALL_START: + if (_dafny.IntOfUint32((value).Cardinality())).Sign() == 0 { + return _dafny.TupleOf(value, pos) + } else if (((value).Select(0).(_dafny.Char)) == (_dafny.Char('0'))) && ((pos).Sign() == 1) { + var _in0 _dafny.Sequence = (value).Drop(1) + _ = _in0 + var _in1 _dafny.Int = (pos).Minus(_dafny.One) + _ = _in1 + value = _in0 + pos = _in1 + goto TAIL_CALL_START + } else if (((value).Select(((_dafny.IntOfUint32((value).Cardinality())).Minus(_dafny.One)).Uint32()).(_dafny.Char)) == (_dafny.Char('0'))) && ((pos).Cmp(_dafny.IntOfUint32((value).Cardinality())) < 0) { + var _in2 _dafny.Sequence = (value).Take(((_dafny.IntOfUint32((value).Cardinality())).Minus(_dafny.One)).Uint32()) + _ = _in2 + var _in3 _dafny.Int = pos + _ = _in3 + value = _in2 + pos = _in3 + goto TAIL_CALL_START + } else { + return _dafny.TupleOf(value, pos) + } +} +func (_static *CompanionStruct_Default___) NormalizePositive(n _dafny.Sequence) m_Wrappers.Result { + var _0_valueOrError0 m_Wrappers.Result = Companion_Default___.ParseNumber(n) + _ = _0_valueOrError0 + if (_0_valueOrError0).IsFailure() { + return (_0_valueOrError0).PropagateFailure() + } else { + var _let_tmp_rhs0 _dafny.Tuple = (_0_valueOrError0).Extract().(_dafny.Tuple) + _ = _let_tmp_rhs0 + var _1_value _dafny.Sequence = (*(_let_tmp_rhs0).IndexInt(0)).(_dafny.Sequence) + _ = _1_value + var _2_pos _dafny.Int = (*(_let_tmp_rhs0).IndexInt(1)).(_dafny.Int) + _ = _2_pos + var _3_exp _dafny.Int = (*(_let_tmp_rhs0).IndexInt(2)).(_dafny.Int) + _ = _3_exp + var _let_tmp_rhs1 _dafny.Tuple = Companion_Default___.NormalizeValue(_1_value, _2_pos) + _ = _let_tmp_rhs1 + var _4_value _dafny.Sequence = (*(_let_tmp_rhs1).IndexInt(0)).(_dafny.Sequence) + _ = _4_value + var _5_pos _dafny.Int = (*(_let_tmp_rhs1).IndexInt(1)).(_dafny.Int) + _ = _5_pos + var _6_digitsOfPrecision _dafny.Sequence = Companion_Default___.SkipAllTrailingZeros(Companion_Default___.SkipLeadingZeros(_4_value)) + _ = _6_digitsOfPrecision + var _7_valueOrError1 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need((_dafny.IntOfUint32((_6_digitsOfPrecision).Cardinality())).Cmp(_dafny.IntOfInt64(38)) <= 0, _dafny.SeqOfString("Attempting to store more than 38 significant digits in a Number.")) + _ = _7_valueOrError1 + if (_7_valueOrError1).IsFailure() { + return (_7_valueOrError1).PropagateFailure() + } else { + var _8_newPos _dafny.Int = (_5_pos).Plus(_3_exp) + _ = _8_newPos + if (_dafny.IntOfUint32((_6_digitsOfPrecision).Cardinality())).Sign() == 0 { + return m_Wrappers.Companion_Result_.Create_Success_(_dafny.SeqOfString("0")) + } else if (_8_newPos).Sign() != 1 { + var _9_valueOrError2 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need(((_8_newPos).Minus(Companion_Default___.CountZeros(_4_value))).Cmp(_dafny.IntOfInt64(-129)) >= 0, _dafny.SeqOfString("Attempting to store a number with magnitude smaller than supported range.")) + _ = _9_valueOrError2 + if (_9_valueOrError2).IsFailure() { + return (_9_valueOrError2).PropagateFailure() + } else { + return m_Wrappers.Companion_Result_.Create_Success_(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.SeqOfString("0."), Companion_Default___.Zeros((_dafny.Zero).Minus(_8_newPos))), _4_value)) + } + } else if (_8_newPos).Cmp(_dafny.IntOfUint32((_4_value).Cardinality())) >= 0 { + var _10_valueOrError3 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need(((_8_newPos).Minus(Companion_Default___.CountZeros(_4_value))).Cmp(_dafny.IntOfInt64(126)) <= 0, _dafny.SeqOfString("Attempting to store a number with magnitude larger than supported range.")) + _ = _10_valueOrError3 + if (_10_valueOrError3).IsFailure() { + return (_10_valueOrError3).PropagateFailure() + } else { + return m_Wrappers.Companion_Result_.Create_Success_(_dafny.Companion_Sequence_.Concatenate(_4_value, Companion_Default___.Zeros((_8_newPos).Minus(_dafny.IntOfUint32((_4_value).Cardinality()))))) + } + } else { + return m_Wrappers.Companion_Result_.Create_Success_(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate((_4_value).Take((_8_newPos).Uint32()), _dafny.SeqOfString(".")), (_4_value).Drop((_8_newPos).Uint32()))) + } + } + } +} +func (_static *CompanionStruct_Default___) TrimZerosFromValidNumber(n _dafny.Sequence) _dafny.Sequence { + var _0_n _dafny.Sequence = Companion_Default___.SkipLeadingZeros(n) + _ = _0_n + if _dafny.Companion_Sequence_.Contains(_0_n, _dafny.Char('.')) { + return Companion_Default___.SkipTrailingZeros(_0_n) + } else { + return _0_n + } +} +func (_static *CompanionStruct_Default___) NormalizeNumber2(n _dafny.Sequence) m_Wrappers.Result { + var _0_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need((_dafny.IntOfUint32((n).Cardinality())).Sign() == 1, _dafny.SeqOfString("An empty string is not a valid number.")) + _ = _0_valueOrError0 + if (_0_valueOrError0).IsFailure() { + return (_0_valueOrError0).PropagateFailure() + } else { + var _let_tmp_rhs0 _dafny.Tuple = (func() _dafny.Tuple { + if ((n).Select(0).(_dafny.Char)) == (_dafny.Char('-')) { + return _dafny.TupleOf(true, (n).Drop(1)) + } + return (func() _dafny.Tuple { + if ((n).Select(0).(_dafny.Char)) == (_dafny.Char('+')) { + return _dafny.TupleOf(false, (n).Drop(1)) + } + return _dafny.TupleOf(false, n) + })() + })() + _ = _let_tmp_rhs0 + var _1_neg bool = (*(_let_tmp_rhs0).IndexInt(0)).(bool) + _ = _1_neg + var _2_n _dafny.Sequence = (*(_let_tmp_rhs0).IndexInt(1)).(_dafny.Sequence) + _ = _2_n + var _3_valueOrError1 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need((_dafny.IntOfUint32((_2_n).Cardinality())).Sign() == 1, _dafny.SeqOfString("An empty string is not a valid number.")) + _ = _3_valueOrError1 + if (_3_valueOrError1).IsFailure() { + return (_3_valueOrError1).PropagateFailure() + } else { + var _4_valueOrError2 m_Wrappers.Result = Companion_Default___.NormalizePositive(_2_n) + _ = _4_valueOrError2 + if (_4_valueOrError2).IsFailure() { + return (_4_valueOrError2).PropagateFailure() + } else { + var _5_n _dafny.Sequence = (_4_valueOrError2).Extract().(_dafny.Sequence) + _ = _5_n + var _6_n _dafny.Sequence = Companion_Default___.TrimZerosFromValidNumber(_5_n) + _ = _6_n + if (_1_neg) && (!_dafny.Companion_Sequence_.Equal(_6_n, _dafny.SeqOfString("0"))) { + return m_Wrappers.Companion_Result_.Create_Success_(_dafny.Companion_Sequence_.Concatenate(_dafny.SeqOfChars(_dafny.Char('-')), _6_n)) + } else { + return m_Wrappers.Companion_Result_.Create_Success_(_6_n) + } + } + } + } +} +func (_static *CompanionStruct_Default___) NormalizeNumber(n _dafny.Sequence) m_Wrappers.Result { + var _0_ret m_Wrappers.Result = Companion_Default___.NormalizeNumber2(n) + _ = _0_ret + if (_0_ret).Is_Success() { + return _0_ret + } else { + return m_Wrappers.Companion_Result_.Create_Failure_(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate((_0_ret).Dtor_error().(_dafny.Sequence), _dafny.SeqOfString(" when parsing '")), n), _dafny.SeqOfString("'."))) + } +} + +// End of class Default__ diff --git a/customer-preview/ddb-esdk/DynamoDbUpdateExpr/DynamoDbUpdateExpr.go b/customer-preview/ddb-esdk/DynamoDbUpdateExpr/DynamoDbUpdateExpr.go new file mode 100644 index 000000000..32df0d210 --- /dev/null +++ b/customer-preview/ddb-esdk/DynamoDbUpdateExpr/DynamoDbUpdateExpr.go @@ -0,0 +1,461 @@ +// Package DynamoDbUpdateExpr +// Dafny module DynamoDbUpdateExpr compiled into Go + +package DynamoDbUpdateExpr + +import ( + os "os" + + m_ComAmazonawsDynamodbTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/ComAmazonawsDynamodbTypes" + m_Com_Amazonaws_Dynamodb "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/Com_Amazonaws_Dynamodb" + m_ComAmazonawsKmsTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/ComAmazonawsKmsTypes" + m_Com_Amazonaws_Kms "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/Com_Amazonaws_Kms" + m_AlgorithmSuites "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AlgorithmSuites" + m_AwsArnParsing "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsArnParsing" + m_AwsCryptographyKeyStoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreOperations" + m_AwsCryptographyKeyStoreTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreTypes" + m_AwsCryptographyMaterialProvidersOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersOperations" + m_AwsCryptographyMaterialProvidersTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersTypes" + m_AwsKmsDiscoveryKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsDiscoveryKeyring" + m_AwsKmsEcdhKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsEcdhKeyring" + m_AwsKmsHierarchicalKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsHierarchicalKeyring" + m_AwsKmsKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsKeyring" + m_AwsKmsMrkAreUnique "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkAreUnique" + m_AwsKmsMrkDiscoveryKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkDiscoveryKeyring" + m_AwsKmsMrkKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkKeyring" + m_AwsKmsMrkMatchForDecrypt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkMatchForDecrypt" + m_AwsKmsRsaKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsRsaKeyring" + m_AwsKmsUtils "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsUtils" + m_CMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CMM" + m_CacheConstants "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CacheConstants" + m_CanonicalEncryptionContext "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CanonicalEncryptionContext" + m_Commitment "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Commitment" + m_Constants "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Constants" + m_CreateKeyStoreTable "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeyStoreTable" + m_CreateKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeys" + m_DDBKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DDBKeystoreOperations" + m_DefaultCMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DefaultCMM" + m_DefaultClientSupplier "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DefaultClientSupplier" + m_Defaults "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Defaults" + m_DiscoveryMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DiscoveryMultiKeyring" + m_EcdhEdkWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/EcdhEdkWrapping" + m_EdkWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/EdkWrapping" + m_ErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/ErrorMessages" + m_GetKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/GetKeys" + m_IntermediateKeyWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/IntermediateKeyWrapping" + m_KMSKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KMSKeystoreOperations" + m_KeyStore "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStore" + m_KeyStoreErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStoreErrorMessages" + m_Keyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Keyring" + m_KmsArn "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KmsArn" + m_LocalCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/LocalCMC" + m_MaterialProviders "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MaterialProviders" + m_MaterialWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MaterialWrapping" + m_Materials "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Materials" + m_MrkAwareDiscoveryMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MrkAwareDiscoveryMultiKeyring" + m_MrkAwareStrictMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MrkAwareStrictMultiKeyring" + m_MultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MultiKeyring" + m_RawAESKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawAESKeyring" + m_RawECDHKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawECDHKeyring" + m_RawRSAKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawRSAKeyring" + m_RequiredEncryptionContextCMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RequiredEncryptionContextCMM" + m_StormTracker "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StormTracker" + m_StormTrackingCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StormTrackingCMC" + m_StrictMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StrictMultiKeyring" + m_Structure "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Structure" + m_SynchronizedLocalCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/SynchronizedLocalCMC" + m_Utils "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Utils" + m_AtomicPrimitives "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AtomicPrimitives" + m_AwsCryptographyPrimitivesOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesOperations" + m_AwsCryptographyPrimitivesTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesTypes" + m_Digest "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Digest" + m_HKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/HKDF" + m_KdfCtr "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/KdfCtr" + m_Random "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Random" + m_WrappedHKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHKDF" + m_WrappedHMAC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHMAC" + m_Actions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Actions" + m_Base64 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64" + m_Base64Lemmas "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64Lemmas" + m_BoundedInts "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/BoundedInts" + m_DivInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternals" + m_DivInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternalsNonlinear" + m_DivMod "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivMod" + m_FileIO "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FileIO" + m_FloatCompare "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FloatCompare" + m_Functions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Functions" + m_GeneralInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GeneralInternals" + m_GetOpt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GetOpt" + m_HexStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/HexStrings" + m_Logarithm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Logarithm" + m__Math "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Math_" + m_ModInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternals" + m_ModInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternalsNonlinear" + m_Mul "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Mul" + m_MulInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternals" + m_MulInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternalsNonlinear" + m_Power "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Power" + m_Relations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Relations" + m_Seq "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq" + m_Seq_MergeSort "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq_MergeSort" + m_Sorting "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Sorting" + m_StandardLibrary "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary" + m_StandardLibraryInterop "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibraryInterop" + m_StandardLibrary_Sequence "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_Sequence" + m_StandardLibrary_String "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_String" + m_StandardLibrary_UInt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_UInt" + m_Streams "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Streams" + m_UnicodeStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UnicodeStrings" + m__Unicode "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Unicode_" + m_Utf16EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf16EncodingForm" + m_Utf8EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf8EncodingForm" + m_Wrappers "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers" + m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorOperations "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorOperations" + m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes" + m_AwsCryptographyDbEncryptionSdkDynamoDbOperations "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbOperations" + m_AwsCryptographyDbEncryptionSdkDynamoDbTypes "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbTypes" + m_AwsCryptographyDbEncryptionSdkStructuredEncryptionOperations "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkStructuredEncryptionOperations" + m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes" + m_Canonize "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/Canonize" + m_DdbVirtualFields "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DdbVirtualFields" + m_DynamoDbEncryption "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbEncryption" + m_DynamoDbEncryptionBranchKeyIdSupplier "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbEncryptionBranchKeyIdSupplier" + m_DynamoDbEncryptionUtil "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbEncryptionUtil" + m_DynamoDbItemEncryptor "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbItemEncryptor" + m_DynamoDbItemEncryptorUtil "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbItemEncryptorUtil" + m_DynamoDbNormalizeNumber "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbNormalizeNumber" + m_DynamoToStruct "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoToStruct" + m_InternalLegacyOverride "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/InternalLegacyOverride" + m__Maps "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/Maps_" + m_Sets "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/Sets" + m_SortCanon "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/SortCanon" + m_StructuredEncryption "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryption" + m_StructuredEncryptionCrypt "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionCrypt" + m_StructuredEncryptionFooter "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionFooter" + m_StructuredEncryptionHeader "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionHeader" + m_StructuredEncryptionPaths "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionPaths" + m_StructuredEncryptionUtil "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionUtil" + m_TermLoc "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/TermLoc" + m__System "github.com/dafny-lang/DafnyRuntimeGo/v4/System_" + _dafny "github.com/dafny-lang/DafnyRuntimeGo/v4/dafny" +) + +var _ = os.Args +var _ _dafny.Dummy__ +var _ m__System.Dummy__ +var _ m_Wrappers.Dummy__ +var _ m_BoundedInts.Dummy__ +var _ m_StandardLibrary_UInt.Dummy__ +var _ m_StandardLibrary_Sequence.Dummy__ +var _ m_StandardLibrary_String.Dummy__ +var _ m_StandardLibrary.Dummy__ +var _ m_AwsCryptographyPrimitivesTypes.Dummy__ +var _ m_Random.Dummy__ +var _ m_Digest.Dummy__ +var _ m_WrappedHMAC.Dummy__ +var _ m_HKDF.Dummy__ +var _ m_WrappedHKDF.Dummy__ +var _ m_KdfCtr.Dummy__ +var _ m_AwsCryptographyPrimitivesOperations.Dummy__ +var _ m_AtomicPrimitives.Dummy__ +var _ m_ComAmazonawsDynamodbTypes.Dummy__ +var _ m_ComAmazonawsKmsTypes.Dummy__ +var _ m_AwsCryptographyKeyStoreTypes.Dummy__ +var _ m_AwsCryptographyMaterialProvidersTypes.Dummy__ +var _ m_Base64.Dummy__ +var _ m_AlgorithmSuites.Dummy__ +var _ m_Materials.Dummy__ +var _ m_Keyring.Dummy__ +var _ m_Relations.Dummy__ +var _ m_Seq_MergeSort.Dummy__ +var _ m__Math.Dummy__ +var _ m_Seq.Dummy__ +var _ m_MultiKeyring.Dummy__ +var _ m_AwsArnParsing.Dummy__ +var _ m_AwsKmsMrkAreUnique.Dummy__ +var _ m_Actions.Dummy__ +var _ m_AwsKmsMrkMatchForDecrypt.Dummy__ +var _ m_AwsKmsUtils.Dummy__ +var _ m_Constants.Dummy__ +var _ m_MaterialWrapping.Dummy__ +var _ m_CanonicalEncryptionContext.Dummy__ +var _ m_IntermediateKeyWrapping.Dummy__ +var _ m_EdkWrapping.Dummy__ +var _ m_ErrorMessages.Dummy__ +var _ m_AwsKmsKeyring.Dummy__ +var _ m_StrictMultiKeyring.Dummy__ +var _ m_AwsKmsDiscoveryKeyring.Dummy__ +var _ m_Com_Amazonaws_Kms.Dummy__ +var _ m_Com_Amazonaws_Dynamodb.Dummy__ +var _ m_DiscoveryMultiKeyring.Dummy__ +var _ m_AwsKmsMrkDiscoveryKeyring.Dummy__ +var _ m_MrkAwareDiscoveryMultiKeyring.Dummy__ +var _ m_AwsKmsMrkKeyring.Dummy__ +var _ m_MrkAwareStrictMultiKeyring.Dummy__ +var _ m_LocalCMC.Dummy__ +var _ m_SynchronizedLocalCMC.Dummy__ +var _ m_StormTracker.Dummy__ +var _ m_StormTrackingCMC.Dummy__ +var _ m_CacheConstants.Dummy__ +var _ m_AwsKmsHierarchicalKeyring.Dummy__ +var _ m_AwsKmsRsaKeyring.Dummy__ +var _ m_EcdhEdkWrapping.Dummy__ +var _ m_RawECDHKeyring.Dummy__ +var _ m_AwsKmsEcdhKeyring.Dummy__ +var _ m_RawAESKeyring.Dummy__ +var _ m_RawRSAKeyring.Dummy__ +var _ m_CMM.Dummy__ +var _ m_Defaults.Dummy__ +var _ m_Commitment.Dummy__ +var _ m_DefaultCMM.Dummy__ +var _ m_DefaultClientSupplier.Dummy__ +var _ m_Utils.Dummy__ +var _ m_RequiredEncryptionContextCMM.Dummy__ +var _ m_AwsCryptographyMaterialProvidersOperations.Dummy__ +var _ m_MaterialProviders.Dummy__ +var _ m_KeyStoreErrorMessages.Dummy__ +var _ m_KmsArn.Dummy__ +var _ m_Structure.Dummy__ +var _ m_KMSKeystoreOperations.Dummy__ +var _ m_DDBKeystoreOperations.Dummy__ +var _ m_CreateKeys.Dummy__ +var _ m_CreateKeyStoreTable.Dummy__ +var _ m_GetKeys.Dummy__ +var _ m_AwsCryptographyKeyStoreOperations.Dummy__ +var _ m_KeyStore.Dummy__ +var _ m__Unicode.Dummy__ +var _ m_Functions.Dummy__ +var _ m_Utf8EncodingForm.Dummy__ +var _ m_Utf16EncodingForm.Dummy__ +var _ m_UnicodeStrings.Dummy__ +var _ m_FileIO.Dummy__ +var _ m_GeneralInternals.Dummy__ +var _ m_MulInternalsNonlinear.Dummy__ +var _ m_MulInternals.Dummy__ +var _ m_Mul.Dummy__ +var _ m_ModInternalsNonlinear.Dummy__ +var _ m_DivInternalsNonlinear.Dummy__ +var _ m_ModInternals.Dummy__ +var _ m_DivInternals.Dummy__ +var _ m_DivMod.Dummy__ +var _ m_Power.Dummy__ +var _ m_Logarithm.Dummy__ +var _ m_StandardLibraryInterop.Dummy__ +var _ m_Streams.Dummy__ +var _ m_Sorting.Dummy__ +var _ m_HexStrings.Dummy__ +var _ m_GetOpt.Dummy__ +var _ m_FloatCompare.Dummy__ +var _ m_Base64Lemmas.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Dummy__ +var _ m_StructuredEncryptionUtil.Dummy__ +var _ m_Sets.Dummy__ +var _ m_StructuredEncryptionPaths.Dummy__ +var _ m_StructuredEncryptionHeader.Dummy__ +var _ m_StructuredEncryptionFooter.Dummy__ +var _ m_SortCanon.Dummy__ +var _ m_Canonize.Dummy__ +var _ m_StructuredEncryptionCrypt.Dummy__ +var _ m__Maps.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkStructuredEncryptionOperations.Dummy__ +var _ m_StructuredEncryption.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Dummy__ +var _ m_DynamoDbEncryptionUtil.Dummy__ +var _ m_DynamoDbNormalizeNumber.Dummy__ +var _ m_DynamoToStruct.Dummy__ +var _ m_DynamoDbItemEncryptorUtil.Dummy__ +var _ m_InternalLegacyOverride.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorOperations.Dummy__ +var _ m_DynamoDbItemEncryptor.Dummy__ +var _ m_DynamoDbEncryptionBranchKeyIdSupplier.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkDynamoDbOperations.Dummy__ +var _ m_DynamoDbEncryption.Dummy__ +var _ m_TermLoc.Dummy__ +var _ m_DdbVirtualFields.Dummy__ + +type Dummy__ struct{} + +// Definition of class Default__ +type Default__ struct { + dummy byte +} + +func New_Default___() *Default__ { + _this := Default__{} + + return &_this +} + +type CompanionStruct_Default___ struct { +} + +var Companion_Default___ = CompanionStruct_Default___{} + +func (_this *Default__) Equals(other *Default__) bool { + return _this == other +} + +func (_this *Default__) EqualsGeneric(x interface{}) bool { + other, ok := x.(*Default__) + return ok && _this.Equals(other) +} + +func (*Default__) String() string { + return "DynamoDbUpdateExpr.Default__" +} +func (_this *Default__) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = &Default__{} + +func (_static *CompanionStruct_Default___) ExtractAttributes(s _dafny.Sequence, ex m_Wrappers.Option) _dafny.Sequence { + var _0_x _dafny.Sequence = Companion_Default___.ExtractAttrs(s) + _ = _0_x + if (ex).Is_None() { + return _0_x + } else { + return Companion_Default___.Resolve(_0_x, (ex).Dtor_value().(_dafny.Map)) + } +} +func (_static *CompanionStruct_Default___) IgnoreAttr(s _dafny.Sequence) bool { + return _dafny.Companion_Sequence_.Contains(_dafny.SeqOf(_dafny.SeqOfString("SET"), _dafny.SeqOfString("REMOVE"), _dafny.SeqOfString("ADD"), _dafny.SeqOfString("DELETE"), _dafny.SeqOfString("list_append"), _dafny.SeqOfString("if_not_exists")), s) +} +func (_static *CompanionStruct_Default___) Resolve(names _dafny.Sequence, ex _dafny.Map) _dafny.Sequence { + var _0___accumulator _dafny.Sequence = _dafny.SeqOf() + _ = _0___accumulator + goto TAIL_CALL_START +TAIL_CALL_START: + if (_dafny.IntOfUint32((names).Cardinality())).Sign() == 0 { + return _dafny.Companion_Sequence_.Concatenate(_0___accumulator, _dafny.SeqOf()) + } else if (ex).Contains((names).Select(0).(_dafny.Sequence)) { + _0___accumulator = _dafny.Companion_Sequence_.Concatenate(_0___accumulator, _dafny.SeqOf((ex).Get((names).Select(0).(_dafny.Sequence)).(_dafny.Sequence))) + var _in0 _dafny.Sequence = (names).Drop(1) + _ = _in0 + var _in1 _dafny.Map = ex + _ = _in1 + names = _in0 + ex = _in1 + goto TAIL_CALL_START + } else { + _0___accumulator = _dafny.Companion_Sequence_.Concatenate(_0___accumulator, _dafny.SeqOf((names).Select(0).(_dafny.Sequence))) + var _in2 _dafny.Sequence = (names).Drop(1) + _ = _in2 + var _in3 _dafny.Map = ex + _ = _in3 + names = _in2 + ex = _in3 + goto TAIL_CALL_START + } +} +func (_static *CompanionStruct_Default___) ChopOne(s _dafny.Sequence, ch _dafny.Char) _dafny.Sequence { + if _dafny.Companion_Sequence_.Contains(s, ch) { + return (*(m_StandardLibrary.Companion_Default___.SplitOnce(s, ch)).IndexInt(0)).(_dafny.Sequence) + } else { + return s + } +} +func (_static *CompanionStruct_Default___) Chop(s _dafny.Sequence) _dafny.Sequence { + var _0_s _dafny.Sequence = Companion_Default___.ChopOne(s, _dafny.Char('.')) + _ = _0_s + return Companion_Default___.ChopOne(_0_s, _dafny.Char('[')) +} +func (_static *CompanionStruct_Default___) ExtractAttrs(s _dafny.Sequence) _dafny.Sequence { + var _0___accumulator _dafny.Sequence = _dafny.SeqOf() + _ = _0___accumulator + goto TAIL_CALL_START +TAIL_CALL_START: + if (_dafny.IntOfUint32((s).Cardinality())).Sign() == 0 { + return _dafny.Companion_Sequence_.Concatenate(_0___accumulator, _dafny.SeqOf()) + } else { + var _1_ret _dafny.Tuple = Companion_Default___.FindToken(s) + _ = _1_ret + if ((*(_1_ret).IndexInt(0)).(_dafny.Int)).Sign() == 0 { + return _dafny.Companion_Sequence_.Concatenate(_0___accumulator, _dafny.SeqOf()) + } else if ((*(_1_ret).IndexInt(1)).(m_Wrappers.Option)).Is_None() { + var _in0 _dafny.Sequence = (s).Drop(((*(_1_ret).IndexInt(0)).(_dafny.Int)).Uint32()) + _ = _in0 + s = _in0 + goto TAIL_CALL_START + } else if Companion_Default___.IgnoreAttr(((*(_1_ret).IndexInt(1)).(m_Wrappers.Option)).Dtor_value().(_dafny.Sequence)) { + var _in1 _dafny.Sequence = (s).Drop(((*(_1_ret).IndexInt(0)).(_dafny.Int)).Uint32()) + _ = _in1 + s = _in1 + goto TAIL_CALL_START + } else { + _0___accumulator = _dafny.Companion_Sequence_.Concatenate(_0___accumulator, _dafny.SeqOf(Companion_Default___.Chop(((*(_1_ret).IndexInt(1)).(m_Wrappers.Option)).Dtor_value().(_dafny.Sequence)))) + var _in2 _dafny.Sequence = (s).Drop(((*(_1_ret).IndexInt(0)).(_dafny.Int)).Uint32()) + _ = _in2 + s = _in2 + goto TAIL_CALL_START + } + } +} +func (_static *CompanionStruct_Default___) BadStart(ch _dafny.Char) bool { + return ((ch) == (_dafny.Char(':'))) || (((_dafny.Char('0')) <= (ch)) && ((ch) <= (_dafny.Char('9')))) +} +func (_static *CompanionStruct_Default___) AttrStart(ch _dafny.Char) bool { + if ((_dafny.Char('a')) <= (ch)) && ((ch) <= (_dafny.Char('z'))) { + return true + } else if ((_dafny.Char('A')) <= (ch)) && ((ch) <= (_dafny.Char('Z'))) { + return true + } else if ((ch) == (_dafny.Char('#'))) || ((ch) == (_dafny.Char('_'))) { + return true + } else { + return false + } +} +func (_static *CompanionStruct_Default___) AttrChar(ch _dafny.Char) bool { + if Companion_Default___.AttrStart(ch) { + return true + } else if ((_dafny.Char('0')) <= (ch)) && ((ch) <= (_dafny.Char('9'))) { + return true + } else if _dafny.Companion_Sequence_.Contains(_dafny.SeqOfChars(_dafny.Char('['), _dafny.Char(']'), _dafny.Char('.')), ch) { + return true + } else { + return false + } +} +func (_static *CompanionStruct_Default___) AttrLen(s _dafny.Sequence) _dafny.Int { + var _0___accumulator _dafny.Int = _dafny.Zero + _ = _0___accumulator + goto TAIL_CALL_START +TAIL_CALL_START: + if (_dafny.IntOfUint32((s).Cardinality())).Sign() == 0 { + return (_dafny.Zero).Plus(_0___accumulator) + } else if Companion_Default___.AttrChar((s).Select(0).(_dafny.Char)) { + _0___accumulator = (_dafny.One).Plus(_0___accumulator) + var _in0 _dafny.Sequence = (s).Drop(1) + _ = _in0 + s = _in0 + goto TAIL_CALL_START + } else { + return (_dafny.Zero).Plus(_0___accumulator) + } +} +func (_static *CompanionStruct_Default___) FindToken(s _dafny.Sequence) _dafny.Tuple { + if (_dafny.IntOfUint32((s).Cardinality())).Sign() == 0 { + return _dafny.TupleOf(_dafny.Zero, m_Wrappers.Companion_Option_.Create_None_()) + } else { + var _0_ch _dafny.Char = (s).Select(0).(_dafny.Char) + _ = _0_ch + if (_0_ch) == (_dafny.Char('#')) { + var _1_x _dafny.Int = (Companion_Default___.AttrLen((s).Drop(1))).Plus(_dafny.One) + _ = _1_x + return _dafny.TupleOf(_1_x, m_Wrappers.Companion_Option_.Create_Some_((s).Subsequence(0, (_1_x).Uint32()))) + } else if Companion_Default___.BadStart(_0_ch) { + var _2_x _dafny.Int = (Companion_Default___.AttrLen((s).Drop(1))).Plus(_dafny.One) + _ = _2_x + return _dafny.TupleOf(_2_x, m_Wrappers.Companion_Option_.Create_None_()) + } else if Companion_Default___.AttrStart(_0_ch) { + var _3_x _dafny.Int = (Companion_Default___.AttrLen((s).Drop(1))).Plus(_dafny.One) + _ = _3_x + return _dafny.TupleOf(_3_x, m_Wrappers.Companion_Option_.Create_Some_((s).Subsequence(0, (_3_x).Uint32()))) + } else { + return _dafny.TupleOf(_dafny.One, m_Wrappers.Companion_Option_.Create_None_()) + } + } +} + +// End of class Default__ diff --git a/customer-preview/ddb-esdk/DynamoToStruct/DynamoToStruct.go b/customer-preview/ddb-esdk/DynamoToStruct/DynamoToStruct.go new file mode 100644 index 000000000..51516a5be --- /dev/null +++ b/customer-preview/ddb-esdk/DynamoToStruct/DynamoToStruct.go @@ -0,0 +1,1580 @@ +// Package DynamoToStruct +// Dafny module DynamoToStruct compiled into Go + +package DynamoToStruct + +import ( + os "os" + + m_ComAmazonawsDynamodbTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/ComAmazonawsDynamodbTypes" + m_Com_Amazonaws_Dynamodb "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/Com_Amazonaws_Dynamodb" + m_ComAmazonawsKmsTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/ComAmazonawsKmsTypes" + m_Com_Amazonaws_Kms "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/Com_Amazonaws_Kms" + m_AlgorithmSuites "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AlgorithmSuites" + m_AwsArnParsing "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsArnParsing" + m_AwsCryptographyKeyStoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreOperations" + m_AwsCryptographyKeyStoreTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreTypes" + m_AwsCryptographyMaterialProvidersOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersOperations" + m_AwsCryptographyMaterialProvidersTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersTypes" + m_AwsKmsDiscoveryKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsDiscoveryKeyring" + m_AwsKmsEcdhKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsEcdhKeyring" + m_AwsKmsHierarchicalKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsHierarchicalKeyring" + m_AwsKmsKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsKeyring" + m_AwsKmsMrkAreUnique "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkAreUnique" + m_AwsKmsMrkDiscoveryKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkDiscoveryKeyring" + m_AwsKmsMrkKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkKeyring" + m_AwsKmsMrkMatchForDecrypt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkMatchForDecrypt" + m_AwsKmsRsaKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsRsaKeyring" + m_AwsKmsUtils "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsUtils" + m_CMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CMM" + m_CacheConstants "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CacheConstants" + m_CanonicalEncryptionContext "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CanonicalEncryptionContext" + m_Commitment "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Commitment" + m_Constants "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Constants" + m_CreateKeyStoreTable "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeyStoreTable" + m_CreateKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeys" + m_DDBKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DDBKeystoreOperations" + m_DefaultCMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DefaultCMM" + m_DefaultClientSupplier "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DefaultClientSupplier" + m_Defaults "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Defaults" + m_DiscoveryMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DiscoveryMultiKeyring" + m_EcdhEdkWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/EcdhEdkWrapping" + m_EdkWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/EdkWrapping" + m_ErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/ErrorMessages" + m_GetKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/GetKeys" + m_IntermediateKeyWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/IntermediateKeyWrapping" + m_KMSKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KMSKeystoreOperations" + m_KeyStore "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStore" + m_KeyStoreErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStoreErrorMessages" + m_Keyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Keyring" + m_KmsArn "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KmsArn" + m_LocalCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/LocalCMC" + m_MaterialProviders "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MaterialProviders" + m_MaterialWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MaterialWrapping" + m_Materials "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Materials" + m_MrkAwareDiscoveryMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MrkAwareDiscoveryMultiKeyring" + m_MrkAwareStrictMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MrkAwareStrictMultiKeyring" + m_MultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MultiKeyring" + m_RawAESKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawAESKeyring" + m_RawECDHKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawECDHKeyring" + m_RawRSAKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawRSAKeyring" + m_RequiredEncryptionContextCMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RequiredEncryptionContextCMM" + m_StormTracker "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StormTracker" + m_StormTrackingCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StormTrackingCMC" + m_StrictMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StrictMultiKeyring" + m_Structure "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Structure" + m_SynchronizedLocalCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/SynchronizedLocalCMC" + m_Utils "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Utils" + m_AtomicPrimitives "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AtomicPrimitives" + m_AwsCryptographyPrimitivesOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesOperations" + m_AwsCryptographyPrimitivesTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesTypes" + m_Digest "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Digest" + m_HKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/HKDF" + m_KdfCtr "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/KdfCtr" + m_Random "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Random" + m_WrappedHKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHKDF" + m_WrappedHMAC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHMAC" + m_Actions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Actions" + m_Base64 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64" + m_Base64Lemmas "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64Lemmas" + m_BoundedInts "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/BoundedInts" + m_DivInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternals" + m_DivInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternalsNonlinear" + m_DivMod "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivMod" + m_FileIO "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FileIO" + m_FloatCompare "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FloatCompare" + m_Functions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Functions" + m_GeneralInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GeneralInternals" + m_GetOpt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GetOpt" + m_HexStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/HexStrings" + m_Logarithm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Logarithm" + m__Math "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Math_" + m_ModInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternals" + m_ModInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternalsNonlinear" + m_Mul "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Mul" + m_MulInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternals" + m_MulInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternalsNonlinear" + m_Power "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Power" + m_Relations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Relations" + m_Seq "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq" + m_Seq_MergeSort "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq_MergeSort" + m_SortedSets "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/SortedSets" + m_Sorting "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Sorting" + m_StandardLibrary "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary" + m_StandardLibraryInterop "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibraryInterop" + m_StandardLibrary_Sequence "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_Sequence" + m_StandardLibrary_String "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_String" + m_StandardLibrary_UInt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_UInt" + m_Streams "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Streams" + m_UTF8 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UTF8" + m_UnicodeStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UnicodeStrings" + m__Unicode "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Unicode_" + m_Utf16EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf16EncodingForm" + m_Utf8EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf8EncodingForm" + m_Wrappers "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers" + m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes" + m_AwsCryptographyDbEncryptionSdkDynamoDbTypes "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbTypes" + m_AwsCryptographyDbEncryptionSdkStructuredEncryptionOperations "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkStructuredEncryptionOperations" + m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes" + m_Canonize "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/Canonize" + m_DynamoDbEncryptionUtil "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbEncryptionUtil" + m_DynamoDbNormalizeNumber "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbNormalizeNumber" + m__Maps "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/Maps_" + m_Sets "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/Sets" + m_SortCanon "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/SortCanon" + m_StructuredEncryption "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryption" + m_StructuredEncryptionCrypt "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionCrypt" + m_StructuredEncryptionFooter "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionFooter" + m_StructuredEncryptionHeader "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionHeader" + m_StructuredEncryptionPaths "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionPaths" + m_StructuredEncryptionUtil "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionUtil" + m__System "github.com/dafny-lang/DafnyRuntimeGo/v4/System_" + _dafny "github.com/dafny-lang/DafnyRuntimeGo/v4/dafny" +) + +var _ = os.Args +var _ _dafny.Dummy__ +var _ m__System.Dummy__ +var _ m_Wrappers.Dummy__ +var _ m_BoundedInts.Dummy__ +var _ m_StandardLibrary_UInt.Dummy__ +var _ m_StandardLibrary_Sequence.Dummy__ +var _ m_StandardLibrary_String.Dummy__ +var _ m_StandardLibrary.Dummy__ +var _ m_AwsCryptographyPrimitivesTypes.Dummy__ +var _ m_Random.Dummy__ +var _ m_Digest.Dummy__ +var _ m_WrappedHMAC.Dummy__ +var _ m_HKDF.Dummy__ +var _ m_WrappedHKDF.Dummy__ +var _ m_KdfCtr.Dummy__ +var _ m_AwsCryptographyPrimitivesOperations.Dummy__ +var _ m_AtomicPrimitives.Dummy__ +var _ m_ComAmazonawsDynamodbTypes.Dummy__ +var _ m_ComAmazonawsKmsTypes.Dummy__ +var _ m_AwsCryptographyKeyStoreTypes.Dummy__ +var _ m_AwsCryptographyMaterialProvidersTypes.Dummy__ +var _ m_Base64.Dummy__ +var _ m_AlgorithmSuites.Dummy__ +var _ m_Materials.Dummy__ +var _ m_Keyring.Dummy__ +var _ m_Relations.Dummy__ +var _ m_Seq_MergeSort.Dummy__ +var _ m__Math.Dummy__ +var _ m_Seq.Dummy__ +var _ m_MultiKeyring.Dummy__ +var _ m_AwsArnParsing.Dummy__ +var _ m_AwsKmsMrkAreUnique.Dummy__ +var _ m_Actions.Dummy__ +var _ m_AwsKmsMrkMatchForDecrypt.Dummy__ +var _ m_AwsKmsUtils.Dummy__ +var _ m_Constants.Dummy__ +var _ m_MaterialWrapping.Dummy__ +var _ m_CanonicalEncryptionContext.Dummy__ +var _ m_IntermediateKeyWrapping.Dummy__ +var _ m_EdkWrapping.Dummy__ +var _ m_ErrorMessages.Dummy__ +var _ m_AwsKmsKeyring.Dummy__ +var _ m_StrictMultiKeyring.Dummy__ +var _ m_AwsKmsDiscoveryKeyring.Dummy__ +var _ m_Com_Amazonaws_Kms.Dummy__ +var _ m_Com_Amazonaws_Dynamodb.Dummy__ +var _ m_DiscoveryMultiKeyring.Dummy__ +var _ m_AwsKmsMrkDiscoveryKeyring.Dummy__ +var _ m_MrkAwareDiscoveryMultiKeyring.Dummy__ +var _ m_AwsKmsMrkKeyring.Dummy__ +var _ m_MrkAwareStrictMultiKeyring.Dummy__ +var _ m_LocalCMC.Dummy__ +var _ m_SynchronizedLocalCMC.Dummy__ +var _ m_StormTracker.Dummy__ +var _ m_StormTrackingCMC.Dummy__ +var _ m_CacheConstants.Dummy__ +var _ m_AwsKmsHierarchicalKeyring.Dummy__ +var _ m_AwsKmsRsaKeyring.Dummy__ +var _ m_EcdhEdkWrapping.Dummy__ +var _ m_RawECDHKeyring.Dummy__ +var _ m_AwsKmsEcdhKeyring.Dummy__ +var _ m_RawAESKeyring.Dummy__ +var _ m_RawRSAKeyring.Dummy__ +var _ m_CMM.Dummy__ +var _ m_Defaults.Dummy__ +var _ m_Commitment.Dummy__ +var _ m_DefaultCMM.Dummy__ +var _ m_DefaultClientSupplier.Dummy__ +var _ m_Utils.Dummy__ +var _ m_RequiredEncryptionContextCMM.Dummy__ +var _ m_AwsCryptographyMaterialProvidersOperations.Dummy__ +var _ m_MaterialProviders.Dummy__ +var _ m_KeyStoreErrorMessages.Dummy__ +var _ m_KmsArn.Dummy__ +var _ m_Structure.Dummy__ +var _ m_KMSKeystoreOperations.Dummy__ +var _ m_DDBKeystoreOperations.Dummy__ +var _ m_CreateKeys.Dummy__ +var _ m_CreateKeyStoreTable.Dummy__ +var _ m_GetKeys.Dummy__ +var _ m_AwsCryptographyKeyStoreOperations.Dummy__ +var _ m_KeyStore.Dummy__ +var _ m__Unicode.Dummy__ +var _ m_Functions.Dummy__ +var _ m_Utf8EncodingForm.Dummy__ +var _ m_Utf16EncodingForm.Dummy__ +var _ m_UnicodeStrings.Dummy__ +var _ m_FileIO.Dummy__ +var _ m_GeneralInternals.Dummy__ +var _ m_MulInternalsNonlinear.Dummy__ +var _ m_MulInternals.Dummy__ +var _ m_Mul.Dummy__ +var _ m_ModInternalsNonlinear.Dummy__ +var _ m_DivInternalsNonlinear.Dummy__ +var _ m_ModInternals.Dummy__ +var _ m_DivInternals.Dummy__ +var _ m_DivMod.Dummy__ +var _ m_Power.Dummy__ +var _ m_Logarithm.Dummy__ +var _ m_StandardLibraryInterop.Dummy__ +var _ m_Streams.Dummy__ +var _ m_Sorting.Dummy__ +var _ m_HexStrings.Dummy__ +var _ m_GetOpt.Dummy__ +var _ m_FloatCompare.Dummy__ +var _ m_Base64Lemmas.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Dummy__ +var _ m_StructuredEncryptionUtil.Dummy__ +var _ m_Sets.Dummy__ +var _ m_StructuredEncryptionPaths.Dummy__ +var _ m_StructuredEncryptionHeader.Dummy__ +var _ m_StructuredEncryptionFooter.Dummy__ +var _ m_SortCanon.Dummy__ +var _ m_Canonize.Dummy__ +var _ m_StructuredEncryptionCrypt.Dummy__ +var _ m__Maps.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkStructuredEncryptionOperations.Dummy__ +var _ m_StructuredEncryption.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Dummy__ +var _ m_DynamoDbEncryptionUtil.Dummy__ +var _ m_DynamoDbNormalizeNumber.Dummy__ + +type Dummy__ struct{} + +// Definition of class Default__ +type Default__ struct { + dummy byte +} + +func New_Default___() *Default__ { + _this := Default__{} + + return &_this +} + +type CompanionStruct_Default___ struct { +} + +var Companion_Default___ = CompanionStruct_Default___{} + +func (_this *Default__) Equals(other *Default__) bool { + return _this == other +} + +func (_this *Default__) EqualsGeneric(x interface{}) bool { + other, ok := x.(*Default__) + return ok && _this.Equals(other) +} + +func (*Default__) String() string { + return "DynamoToStruct.Default__" +} +func (_this *Default__) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = &Default__{} + +func (_static *CompanionStruct_Default___) ItemToStructured(item _dafny.Map) m_Wrappers.Result { + var _0_structuredMap _dafny.Map = func() _dafny.Map { + var _coll0 = _dafny.NewMapBuilder() + _ = _coll0 + for _iter11 := _dafny.Iterate((item).Keys().Elements()); ; { + _compr_0, _ok11 := _iter11() + if !_ok11 { + break + } + var _1_k _dafny.Sequence + _1_k = interface{}(_compr_0).(_dafny.Sequence) + if m_ComAmazonawsDynamodbTypes.Companion_AttributeName_.Is_(_1_k) { + if (item).Contains(_1_k) { + _coll0.Add(_1_k, Companion_Default___.AttrToStructured((item).Get(_1_k).(m_ComAmazonawsDynamodbTypes.AttributeValue))) + } + } + } + return _coll0.ToMap() + }() + _ = _0_structuredMap + return Companion_Default___.MapError(Companion_Default___.SimplifyMapValue(_0_structuredMap)) +} +func (_static *CompanionStruct_Default___) StructuredToItem(s _dafny.Map) m_Wrappers.Result { + if _dafny.Quantifier(((s).Keys()).Elements(), true, func(_forall_var_0 _dafny.Sequence) bool { + var _0_k _dafny.Sequence + _0_k = interface{}(_forall_var_0).(_dafny.Sequence) + return !(((s).Keys()).Contains(_0_k)) || (m_ComAmazonawsDynamodbTypes.Companion_Default___.IsValid__AttributeName(_0_k)) + }) { + var _1_structuredData _dafny.Map = func() _dafny.Map { + var _coll0 = _dafny.NewMapBuilder() + _ = _coll0 + for _iter12 := _dafny.Iterate((s).Keys().Elements()); ; { + _compr_0, _ok12 := _iter12() + if !_ok12 { + break + } + var _2_k _dafny.Sequence + _2_k = interface{}(_compr_0).(_dafny.Sequence) + if m_ComAmazonawsDynamodbTypes.Companion_AttributeName_.Is_(_2_k) { + if (s).Contains(_2_k) { + _coll0.Add(_2_k, Companion_Default___.StructuredToAttr((s).Get(_2_k).(m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.StructuredDataTerminal))) + } + } + } + return _coll0.ToMap() + }() + _ = _1_structuredData + return Companion_Default___.MapError(Companion_Default___.SimplifyMapValue(_1_structuredData)) + } else { + var _3_badNames _dafny.Set = func() _dafny.Set { + var _coll1 = _dafny.NewBuilder() + _ = _coll1 + for _iter13 := _dafny.Iterate((s).Keys().Elements()); ; { + _compr_1, _ok13 := _iter13() + if !_ok13 { + break + } + var _4_k _dafny.Sequence + _4_k = interface{}(_compr_1).(_dafny.Sequence) + if ((s).Contains(_4_k)) && (!(m_ComAmazonawsDynamodbTypes.Companion_Default___.IsValid__AttributeName(_4_k))) { + _coll1.Add(_4_k) + } + } + return _coll1.ToSet() + }() + _ = _3_badNames + var _5_orderedAttrNames _dafny.Sequence = m_StandardLibrary.Companion_Default___.SetToOrderedSequence(_3_badNames, func(coer40 func(_dafny.Char, _dafny.Char) bool) func(interface{}, interface{}) bool { + return func(arg52 interface{}, arg53 interface{}) bool { + return coer40(arg52.(_dafny.Char), arg53.(_dafny.Char)) + } + }(Companion_Default___.CharLess)) + _ = _5_orderedAttrNames + var _6_attrNameList _dafny.Sequence = m_StandardLibrary.Companion_Default___.Join(_5_orderedAttrNames, _dafny.SeqOfString(",")) + _ = _6_attrNameList + return Companion_Default___.MakeError(_dafny.Companion_Sequence_.Concatenate(_dafny.SeqOfString("Not valid attribute names : "), _6_attrNameList)) + } +} +func (_static *CompanionStruct_Default___) MakeError(s _dafny.Sequence) m_Wrappers.Result { + return m_Wrappers.Companion_Result_.Create_Failure_(m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_Error_.Create_DynamoDbEncryptionException_(s)) +} +func (_static *CompanionStruct_Default___) MapError(r m_Wrappers.Result) m_Wrappers.Result { + if (r).Is_Success() { + return m_Wrappers.Companion_Result_.Create_Success_((r).Dtor_value()) + } else { + return Companion_Default___.MakeError((r).Dtor_error().(_dafny.Sequence)) + } +} +func (_static *CompanionStruct_Default___) TopLevelAttributeToBytes(a m_ComAmazonawsDynamodbTypes.AttributeValue) m_Wrappers.Result { + return Companion_Default___.AttrToBytes(a, false, _dafny.One) +} +func (_static *CompanionStruct_Default___) AttrToStructured(item m_ComAmazonawsDynamodbTypes.AttributeValue) m_Wrappers.Result { + var _0_valueOrError0 m_Wrappers.Result = Companion_Default___.TopLevelAttributeToBytes(item) + _ = _0_valueOrError0 + if (_0_valueOrError0).IsFailure() { + return (_0_valueOrError0).PropagateFailure() + } else { + var _1_body _dafny.Sequence = (_0_valueOrError0).Extract().(_dafny.Sequence) + _ = _1_body + return m_Wrappers.Companion_Result_.Create_Success_(m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Companion_StructuredDataTerminal_.Create_StructuredDataTerminal_(_1_body, Companion_Default___.AttrToTypeId(item))) + } +} +func (_static *CompanionStruct_Default___) StructuredToAttr(s m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.StructuredDataTerminal) m_Wrappers.Result { + var _0_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need((_dafny.IntOfUint32(((s).Dtor_typeId()).Cardinality())).Cmp(_dafny.IntOfInt64(2)) == 0, _dafny.SeqOfString("Type ID must be two bytes")) + _ = _0_valueOrError0 + if (_0_valueOrError0).IsFailure() { + return (_0_valueOrError0).PropagateFailure() + } else { + var _1_valueOrError1 m_Wrappers.Result = Companion_Default___.BytesToAttr((s).Dtor_value(), (s).Dtor_typeId(), false, _dafny.One) + _ = _1_valueOrError1 + if (_1_valueOrError1).IsFailure() { + return (_1_valueOrError1).PropagateFailure() + } else { + var _2_attrValueAndLength AttrValueAndLength = (_1_valueOrError1).Extract().(AttrValueAndLength) + _ = _2_attrValueAndLength + var _3_valueOrError2 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need(((_2_attrValueAndLength).Dtor_len()).Cmp(_dafny.IntOfUint32(((s).Dtor_value()).Cardinality())) == 0, _dafny.SeqOfString("Mismatch between length of encoded data and length of data")) + _ = _3_valueOrError2 + if (_3_valueOrError2).IsFailure() { + return (_3_valueOrError2).PropagateFailure() + } else { + return m_Wrappers.Companion_Result_.Create_Success_((_2_attrValueAndLength).Dtor_val()) + } + } + } +} +func (_static *CompanionStruct_Default___) AttrToTypeId(a m_ComAmazonawsDynamodbTypes.AttributeValue) _dafny.Sequence { + var _source0 m_ComAmazonawsDynamodbTypes.AttributeValue = a + _ = _source0 + { + if _source0.Is_S() { + var _0_s _dafny.Sequence = _source0.Get_().(m_ComAmazonawsDynamodbTypes.AttributeValue_S).S + _ = _0_s + return m_StructuredEncryptionUtil.Companion_Default___.STRING() + } + } + { + if _source0.Is_N() { + var _1_n _dafny.Sequence = _source0.Get_().(m_ComAmazonawsDynamodbTypes.AttributeValue_N).N + _ = _1_n + return m_StructuredEncryptionUtil.Companion_Default___.NUMBER() + } + } + { + if _source0.Is_B() { + var _2_b _dafny.Sequence = _source0.Get_().(m_ComAmazonawsDynamodbTypes.AttributeValue_B).B + _ = _2_b + return m_StructuredEncryptionUtil.Companion_Default___.BINARY() + } + } + { + if _source0.Is_SS() { + var _3_ss _dafny.Sequence = _source0.Get_().(m_ComAmazonawsDynamodbTypes.AttributeValue_SS).SS + _ = _3_ss + return m_StructuredEncryptionUtil.Companion_Default___.STRING__SET() + } + } + { + if _source0.Is_NS() { + var _4_ns _dafny.Sequence = _source0.Get_().(m_ComAmazonawsDynamodbTypes.AttributeValue_NS).NS + _ = _4_ns + return m_StructuredEncryptionUtil.Companion_Default___.NUMBER__SET() + } + } + { + if _source0.Is_BS() { + var _5_bs _dafny.Sequence = _source0.Get_().(m_ComAmazonawsDynamodbTypes.AttributeValue_BS).BS + _ = _5_bs + return m_StructuredEncryptionUtil.Companion_Default___.BINARY__SET() + } + } + { + if _source0.Is_M() { + var _6_m _dafny.Map = _source0.Get_().(m_ComAmazonawsDynamodbTypes.AttributeValue_M).M + _ = _6_m + return m_StructuredEncryptionUtil.Companion_Default___.MAP() + } + } + { + if _source0.Is_L() { + var _7_l _dafny.Sequence = _source0.Get_().(m_ComAmazonawsDynamodbTypes.AttributeValue_L).L + _ = _7_l + return m_StructuredEncryptionUtil.Companion_Default___.LIST() + } + } + { + if _source0.Is_NULL() { + var _8_n bool = _source0.Get_().(m_ComAmazonawsDynamodbTypes.AttributeValue_NULL).NULL + _ = _8_n + return m_StructuredEncryptionUtil.Companion_Default___.NULL() + } + } + { + var _9_b bool = _source0.Get_().(m_ComAmazonawsDynamodbTypes.AttributeValue_BOOL).BOOL + _ = _9_b + return m_StructuredEncryptionUtil.Companion_Default___.BOOLEAN() + } +} +func (_static *CompanionStruct_Default___) CharLess(x _dafny.Char, y _dafny.Char) bool { + return (x) < (y) +} +func (_static *CompanionStruct_Default___) AttrToBytes(a m_ComAmazonawsDynamodbTypes.AttributeValue, prefix bool, depth _dafny.Int) m_Wrappers.Result { + var _0_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need((depth).Cmp(m_DynamoDbEncryptionUtil.Companion_Default___.MAX__STRUCTURE__DEPTH()) <= 0, _dafny.Companion_Sequence_.Concatenate(_dafny.SeqOfString("Depth of attribute structure to serialize exceeds limit of "), m_DynamoDbEncryptionUtil.Companion_Default___.MAX__STRUCTURE__DEPTH__STR())) + _ = _0_valueOrError0 + if (_0_valueOrError0).IsFailure() { + return (_0_valueOrError0).PropagateFailure() + } else { + var _1_valueOrError1 m_Wrappers.Result = func() m_Wrappers.Result { + var _source0 m_ComAmazonawsDynamodbTypes.AttributeValue = a + _ = _source0 + { + if _source0.Is_S() { + var _2_s _dafny.Sequence = _source0.Get_().(m_ComAmazonawsDynamodbTypes.AttributeValue_S).S + _ = _2_s + return m_UTF8.Encode(_2_s) + } + } + { + if _source0.Is_N() { + var _3_n _dafny.Sequence = _source0.Get_().(m_ComAmazonawsDynamodbTypes.AttributeValue_N).N + _ = _3_n + var _4_valueOrError2 m_Wrappers.Result = m_DynamoDbNormalizeNumber.Companion_Default___.NormalizeNumber(_3_n) + _ = _4_valueOrError2 + if (_4_valueOrError2).IsFailure() { + return (_4_valueOrError2).PropagateFailure() + } else { + var _5_nn _dafny.Sequence = (_4_valueOrError2).Extract().(_dafny.Sequence) + _ = _5_nn + return m_UTF8.Encode(_5_nn) + } + } + } + { + if _source0.Is_B() { + var _6_b _dafny.Sequence = _source0.Get_().(m_ComAmazonawsDynamodbTypes.AttributeValue_B).B + _ = _6_b + return m_Wrappers.Companion_Result_.Create_Success_(_6_b) + } + } + { + if _source0.Is_SS() { + var _7_ss _dafny.Sequence = _source0.Get_().(m_ComAmazonawsDynamodbTypes.AttributeValue_SS).SS + _ = _7_ss + return Companion_Default___.StringSetAttrToBytes(_7_ss) + } + } + { + if _source0.Is_NS() { + var _8_ns _dafny.Sequence = _source0.Get_().(m_ComAmazonawsDynamodbTypes.AttributeValue_NS).NS + _ = _8_ns + return Companion_Default___.NumberSetAttrToBytes(_8_ns) + } + } + { + if _source0.Is_BS() { + var _9_bs _dafny.Sequence = _source0.Get_().(m_ComAmazonawsDynamodbTypes.AttributeValue_BS).BS + _ = _9_bs + return Companion_Default___.BinarySetAttrToBytes(_9_bs) + } + } + { + if _source0.Is_M() { + var _10_m _dafny.Map = _source0.Get_().(m_ComAmazonawsDynamodbTypes.AttributeValue_M).M + _ = _10_m + return Companion_Default___.MapAttrToBytes(_10_m, depth) + } + } + { + if _source0.Is_L() { + var _11_l _dafny.Sequence = _source0.Get_().(m_ComAmazonawsDynamodbTypes.AttributeValue_L).L + _ = _11_l + return Companion_Default___.ListAttrToBytes(_11_l, depth) + } + } + { + if _source0.Is_NULL() { + var _12_n bool = _source0.Get_().(m_ComAmazonawsDynamodbTypes.AttributeValue_NULL).NULL + _ = _12_n + return m_Wrappers.Companion_Result_.Create_Success_(_dafny.SeqOf()) + } + } + { + var _13_b bool = _source0.Get_().(m_ComAmazonawsDynamodbTypes.AttributeValue_BOOL).BOOL + _ = _13_b + return m_Wrappers.Companion_Result_.Create_Success_(_dafny.SeqOf(Companion_Default___.BoolToUint8(_13_b))) + } + }() + _ = _1_valueOrError1 + if (_1_valueOrError1).IsFailure() { + return (_1_valueOrError1).PropagateFailure() + } else { + var _14_baseBytes _dafny.Sequence = (_1_valueOrError1).Extract().(_dafny.Sequence) + _ = _14_baseBytes + if prefix { + var _15_valueOrError3 m_Wrappers.Result = Companion_Default___.U32ToBigEndian(_dafny.IntOfUint32((_14_baseBytes).Cardinality())) + _ = _15_valueOrError3 + if (_15_valueOrError3).IsFailure() { + return (_15_valueOrError3).PropagateFailure() + } else { + var _16_len _dafny.Sequence = (_15_valueOrError3).Extract().(_dafny.Sequence) + _ = _16_len + return m_Wrappers.Companion_Result_.Create_Success_(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(Companion_Default___.AttrToTypeId(a), _16_len), _14_baseBytes)) + } + } else { + return m_Wrappers.Companion_Result_.Create_Success_(_14_baseBytes) + } + } + } +} +func (_static *CompanionStruct_Default___) StringSetAttrToBytes(ss _dafny.Sequence) m_Wrappers.Result { + var _0_asSet _dafny.Set = m_Seq.Companion_Default___.ToSet(ss) + _ = _0_asSet + var _1_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need(((_0_asSet).Cardinality()).Cmp(_dafny.IntOfUint32((ss).Cardinality())) == 0, _dafny.SeqOfString("String Set had duplicate values")) + _ = _1_valueOrError0 + if (_1_valueOrError0).IsFailure() { + return (_1_valueOrError0).PropagateFailure() + } else { + var _2_sortedList _dafny.Sequence = m_SortedSets.SetToOrderedSequence2(_0_asSet, func(coer41 func(_dafny.Char, _dafny.Char) bool) func(interface{}, interface{}) bool { + return func(arg54 interface{}, arg55 interface{}) bool { + return coer41(arg54.(_dafny.Char), arg55.(_dafny.Char)) + } + }(Companion_Default___.CharLess)) + _ = _2_sortedList + var _3_valueOrError1 m_Wrappers.Result = Companion_Default___.U32ToBigEndian(_dafny.IntOfUint32((_2_sortedList).Cardinality())) + _ = _3_valueOrError1 + if (_3_valueOrError1).IsFailure() { + return (_3_valueOrError1).PropagateFailure() + } else { + var _4_count _dafny.Sequence = (_3_valueOrError1).Extract().(_dafny.Sequence) + _ = _4_count + var _5_valueOrError2 m_Wrappers.Result = Companion_Default___.CollectString(_2_sortedList, _dafny.SeqOf()) + _ = _5_valueOrError2 + if (_5_valueOrError2).IsFailure() { + return (_5_valueOrError2).PropagateFailure() + } else { + var _6_body _dafny.Sequence = (_5_valueOrError2).Extract().(_dafny.Sequence) + _ = _6_body + return m_Wrappers.Companion_Result_.Create_Success_(_dafny.Companion_Sequence_.Concatenate(_4_count, _6_body)) + } + } + } +} +func (_static *CompanionStruct_Default___) NumberSetAttrToBytes(ns _dafny.Sequence) m_Wrappers.Result { + var _0_asSet _dafny.Set = m_Seq.Companion_Default___.ToSet(ns) + _ = _0_asSet + var _1_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need(((_0_asSet).Cardinality()).Cmp(_dafny.IntOfUint32((ns).Cardinality())) == 0, _dafny.SeqOfString("Number Set had duplicate values")) + _ = _1_valueOrError0 + if (_1_valueOrError0).IsFailure() { + return (_1_valueOrError0).PropagateFailure() + } else { + var _2_valueOrError1 m_Wrappers.Result = m_Seq.Companion_Default___.MapWithResult(func(coer42 func(_dafny.Sequence) m_Wrappers.Result) func(interface{}) m_Wrappers.Result { + return func(arg56 interface{}) m_Wrappers.Result { + return coer42(arg56.(_dafny.Sequence)) + } + }(func(_3_n _dafny.Sequence) m_Wrappers.Result { + return m_DynamoDbNormalizeNumber.Companion_Default___.NormalizeNumber(_3_n) + }), ns) + _ = _2_valueOrError1 + if (_2_valueOrError1).IsFailure() { + return (_2_valueOrError1).PropagateFailure() + } else { + var _4_normList _dafny.Sequence = (_2_valueOrError1).Extract().(_dafny.Sequence) + _ = _4_normList + var _5_asSet _dafny.Set = m_Seq.Companion_Default___.ToSet(_4_normList) + _ = _5_asSet + var _6_valueOrError2 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need(((_5_asSet).Cardinality()).Cmp(_dafny.IntOfUint32((_4_normList).Cardinality())) == 0, _dafny.SeqOfString("Number Set had duplicate values after normalization.")) + _ = _6_valueOrError2 + if (_6_valueOrError2).IsFailure() { + return (_6_valueOrError2).PropagateFailure() + } else { + var _7_sortedList _dafny.Sequence = m_SortedSets.SetToOrderedSequence2(_5_asSet, func(coer43 func(_dafny.Char, _dafny.Char) bool) func(interface{}, interface{}) bool { + return func(arg57 interface{}, arg58 interface{}) bool { + return coer43(arg57.(_dafny.Char), arg58.(_dafny.Char)) + } + }(Companion_Default___.CharLess)) + _ = _7_sortedList + var _8_valueOrError3 m_Wrappers.Result = Companion_Default___.U32ToBigEndian(_dafny.IntOfUint32((_7_sortedList).Cardinality())) + _ = _8_valueOrError3 + if (_8_valueOrError3).IsFailure() { + return (_8_valueOrError3).PropagateFailure() + } else { + var _9_count _dafny.Sequence = (_8_valueOrError3).Extract().(_dafny.Sequence) + _ = _9_count + var _10_valueOrError4 m_Wrappers.Result = Companion_Default___.CollectString(_7_sortedList, _dafny.SeqOf()) + _ = _10_valueOrError4 + if (_10_valueOrError4).IsFailure() { + return (_10_valueOrError4).PropagateFailure() + } else { + var _11_body _dafny.Sequence = (_10_valueOrError4).Extract().(_dafny.Sequence) + _ = _11_body + return m_Wrappers.Companion_Result_.Create_Success_(_dafny.Companion_Sequence_.Concatenate(_9_count, _11_body)) + } + } + } + } + } +} +func (_static *CompanionStruct_Default___) BinarySetAttrToBytes(bs _dafny.Sequence) m_Wrappers.Result { + var _0_asSet _dafny.Set = m_Seq.Companion_Default___.ToSet(bs) + _ = _0_asSet + var _1_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need(((_0_asSet).Cardinality()).Cmp(_dafny.IntOfUint32((bs).Cardinality())) == 0, _dafny.SeqOfString("Binary Set had duplicate values")) + _ = _1_valueOrError0 + if (_1_valueOrError0).IsFailure() { + return (_1_valueOrError0).PropagateFailure() + } else { + var _2_sortedList _dafny.Sequence = m_SortedSets.SetToOrderedSequence2(_0_asSet, func(coer44 func(uint8, uint8) bool) func(interface{}, interface{}) bool { + return func(arg59 interface{}, arg60 interface{}) bool { + return coer44(arg59.(uint8), arg60.(uint8)) + } + }(m_DynamoDbEncryptionUtil.Companion_Default___.ByteLess)) + _ = _2_sortedList + var _3_valueOrError1 m_Wrappers.Result = Companion_Default___.U32ToBigEndian(_dafny.IntOfUint32((_2_sortedList).Cardinality())) + _ = _3_valueOrError1 + if (_3_valueOrError1).IsFailure() { + return (_3_valueOrError1).PropagateFailure() + } else { + var _4_count _dafny.Sequence = (_3_valueOrError1).Extract().(_dafny.Sequence) + _ = _4_count + var _5_valueOrError2 m_Wrappers.Result = Companion_Default___.CollectBinary(_2_sortedList, _dafny.SeqOf()) + _ = _5_valueOrError2 + if (_5_valueOrError2).IsFailure() { + return (_5_valueOrError2).PropagateFailure() + } else { + var _6_body _dafny.Sequence = (_5_valueOrError2).Extract().(_dafny.Sequence) + _ = _6_body + return m_Wrappers.Companion_Result_.Create_Success_(_dafny.Companion_Sequence_.Concatenate(_4_count, _6_body)) + } + } + } +} +func (_static *CompanionStruct_Default___) MapAttrToBytes(m _dafny.Map, depth _dafny.Int) m_Wrappers.Result { + var _0_bytesResults _dafny.Map = func() _dafny.Map { + var _coll0 = _dafny.NewMapBuilder() + _ = _coll0 + for _iter14 := _dafny.Iterate(((m).Items()).Elements()); ; { + _compr_0, _ok14 := _iter14() + if !_ok14 { + break + } + var _1_kv _dafny.Tuple + _1_kv = interface{}(_compr_0).(_dafny.Tuple) + if ((m).Items()).Contains(_1_kv) { + _coll0.Add((*(_1_kv).IndexInt(0)).(_dafny.Sequence), Companion_Default___.AttrToBytes((*(_1_kv).IndexInt(1)).(m_ComAmazonawsDynamodbTypes.AttributeValue), true, (depth).Plus(_dafny.One))) + } + } + return _coll0.ToMap() + }() + _ = _0_bytesResults + var _2_valueOrError0 m_Wrappers.Result = Companion_Default___.U32ToBigEndian((m).Cardinality()) + _ = _2_valueOrError0 + if (_2_valueOrError0).IsFailure() { + return (_2_valueOrError0).PropagateFailure() + } else { + var _3_count _dafny.Sequence = (_2_valueOrError0).Extract().(_dafny.Sequence) + _ = _3_count + var _4_valueOrError1 m_Wrappers.Result = Companion_Default___.SimplifyMapValue(_0_bytesResults) + _ = _4_valueOrError1 + if (_4_valueOrError1).IsFailure() { + return (_4_valueOrError1).PropagateFailure() + } else { + var _5_bytes _dafny.Map = (_4_valueOrError1).Extract().(_dafny.Map) + _ = _5_bytes + var _6_valueOrError2 m_Wrappers.Result = Companion_Default___.CollectMap(_5_bytes, _dafny.SeqOf()) + _ = _6_valueOrError2 + if (_6_valueOrError2).IsFailure() { + return (_6_valueOrError2).PropagateFailure() + } else { + var _7_body _dafny.Sequence = (_6_valueOrError2).Extract().(_dafny.Sequence) + _ = _7_body + return m_Wrappers.Companion_Result_.Create_Success_(_dafny.Companion_Sequence_.Concatenate(_3_count, _7_body)) + } + } + } +} +func (_static *CompanionStruct_Default___) ListAttrToBytes(l _dafny.Sequence, depth _dafny.Int) m_Wrappers.Result { + var _0_valueOrError0 m_Wrappers.Result = Companion_Default___.U32ToBigEndian(_dafny.IntOfUint32((l).Cardinality())) + _ = _0_valueOrError0 + if (_0_valueOrError0).IsFailure() { + return (_0_valueOrError0).PropagateFailure() + } else { + var _1_count _dafny.Sequence = (_0_valueOrError0).Extract().(_dafny.Sequence) + _ = _1_count + var _2_valueOrError1 m_Wrappers.Result = Companion_Default___.CollectList(l, depth, _dafny.SeqOf()) + _ = _2_valueOrError1 + if (_2_valueOrError1).IsFailure() { + return (_2_valueOrError1).PropagateFailure() + } else { + var _3_body _dafny.Sequence = (_2_valueOrError1).Extract().(_dafny.Sequence) + _ = _3_body + return m_Wrappers.Companion_Result_.Create_Success_(_dafny.Companion_Sequence_.Concatenate(_1_count, _3_body)) + } + } +} +func (_static *CompanionStruct_Default___) U32ToBigEndian(x _dafny.Int) m_Wrappers.Result { + if (x).Cmp(_dafny.IntOfInt64(4294967295)) > 0 { + return m_Wrappers.Companion_Result_.Create_Failure_(_dafny.SeqOfString("Length was too big")) + } else { + return m_Wrappers.Companion_Result_.Create_Success_(m_StandardLibrary_UInt.Companion_Default___.UInt32ToSeq((x).Uint32())) + } +} +func (_static *CompanionStruct_Default___) BigEndianToU32(x _dafny.Sequence) m_Wrappers.Result { + if (_dafny.IntOfUint32((x).Cardinality())).Cmp(Companion_Default___.LENGTH__LEN()) < 0 { + return m_Wrappers.Companion_Result_.Create_Failure_(_dafny.SeqOfString("Length of 4-byte integer was less than 4")) + } else { + return m_Wrappers.Companion_Result_.Create_Success_(_dafny.IntOfUint32(m_StandardLibrary_UInt.Companion_Default___.SeqToUInt32((x).Take((Companion_Default___.LENGTH__LEN()).Uint32())))) + } +} +func (_static *CompanionStruct_Default___) EncodeString(s _dafny.Sequence) m_Wrappers.Result { + var _0_valueOrError0 m_Wrappers.Result = m_UTF8.Encode(s) + _ = _0_valueOrError0 + if (_0_valueOrError0).IsFailure() { + return (_0_valueOrError0).PropagateFailure() + } else { + var _1_val _dafny.Sequence = (_0_valueOrError0).Extract().(_dafny.Sequence) + _ = _1_val + var _2_valueOrError1 m_Wrappers.Result = Companion_Default___.U32ToBigEndian(_dafny.IntOfUint32((_1_val).Cardinality())) + _ = _2_valueOrError1 + if (_2_valueOrError1).IsFailure() { + return (_2_valueOrError1).PropagateFailure() + } else { + var _3_len _dafny.Sequence = (_2_valueOrError1).Extract().(_dafny.Sequence) + _ = _3_len + return m_Wrappers.Companion_Result_.Create_Success_(_dafny.Companion_Sequence_.Concatenate(_3_len, _1_val)) + } + } +} +func (_static *CompanionStruct_Default___) CollectString(setToSerialize _dafny.Sequence, serialized _dafny.Sequence) m_Wrappers.Result { + goto TAIL_CALL_START +TAIL_CALL_START: + if (_dafny.IntOfUint32((setToSerialize).Cardinality())).Sign() == 0 { + return m_Wrappers.Companion_Result_.Create_Success_(serialized) + } else { + var _0_valueOrError0 m_Wrappers.Result = Companion_Default___.EncodeString((setToSerialize).Select(0).(_dafny.Sequence)) + _ = _0_valueOrError0 + if (_0_valueOrError0).IsFailure() { + return (_0_valueOrError0).PropagateFailure() + } else { + var _1_entry _dafny.Sequence = (_0_valueOrError0).Extract().(_dafny.Sequence) + _ = _1_entry + var _in0 _dafny.Sequence = (setToSerialize).Drop(1) + _ = _in0 + var _in1 _dafny.Sequence = _dafny.Companion_Sequence_.Concatenate(serialized, _1_entry) + _ = _in1 + setToSerialize = _in0 + serialized = _in1 + goto TAIL_CALL_START + } + } +} +func (_static *CompanionStruct_Default___) SerializeBinaryValue(b _dafny.Sequence) m_Wrappers.Result { + var _0_valueOrError0 m_Wrappers.Result = Companion_Default___.U32ToBigEndian(_dafny.IntOfUint32((b).Cardinality())) + _ = _0_valueOrError0 + if (_0_valueOrError0).IsFailure() { + return (_0_valueOrError0).PropagateFailure() + } else { + var _1_len _dafny.Sequence = (_0_valueOrError0).Extract().(_dafny.Sequence) + _ = _1_len + return m_Wrappers.Companion_Result_.Create_Success_(_dafny.Companion_Sequence_.Concatenate(_1_len, b)) + } +} +func (_static *CompanionStruct_Default___) CollectBinary(setToSerialize _dafny.Sequence, serialized _dafny.Sequence) m_Wrappers.Result { + goto TAIL_CALL_START +TAIL_CALL_START: + if (_dafny.IntOfUint32((setToSerialize).Cardinality())).Sign() == 0 { + return m_Wrappers.Companion_Result_.Create_Success_(serialized) + } else { + var _0_valueOrError0 m_Wrappers.Result = Companion_Default___.SerializeBinaryValue((setToSerialize).Select(0).(_dafny.Sequence)) + _ = _0_valueOrError0 + if (_0_valueOrError0).IsFailure() { + return (_0_valueOrError0).PropagateFailure() + } else { + var _1_item _dafny.Sequence = (_0_valueOrError0).Extract().(_dafny.Sequence) + _ = _1_item + var _in0 _dafny.Sequence = (setToSerialize).Drop(1) + _ = _in0 + var _in1 _dafny.Sequence = _dafny.Companion_Sequence_.Concatenate(serialized, _1_item) + _ = _in1 + setToSerialize = _in0 + serialized = _in1 + goto TAIL_CALL_START + } + } +} +func (_static *CompanionStruct_Default___) CollectList(listToSerialize _dafny.Sequence, depth _dafny.Int, serialized _dafny.Sequence) m_Wrappers.Result { + if (_dafny.IntOfUint32((listToSerialize).Cardinality())).Sign() == 0 { + return m_Wrappers.Companion_Result_.Create_Success_(serialized) + } else { + var _0_valueOrError0 m_Wrappers.Result = Companion_Default___.AttrToBytes((listToSerialize).Select(0).(m_ComAmazonawsDynamodbTypes.AttributeValue), true, (depth).Plus(_dafny.One)) + _ = _0_valueOrError0 + if (_0_valueOrError0).IsFailure() { + return (_0_valueOrError0).PropagateFailure() + } else { + var _1_val _dafny.Sequence = (_0_valueOrError0).Extract().(_dafny.Sequence) + _ = _1_val + return Companion_Default___.CollectList((listToSerialize).Drop(1), depth, _dafny.Companion_Sequence_.Concatenate(serialized, _1_val)) + } + } +} +func (_static *CompanionStruct_Default___) SerializeMapItem(key _dafny.Sequence, value _dafny.Sequence) m_Wrappers.Result { + var _0_valueOrError0 m_Wrappers.Result = m_UTF8.Encode(key) + _ = _0_valueOrError0 + if (_0_valueOrError0).IsFailure() { + return (_0_valueOrError0).PropagateFailure() + } else { + var _1_name _dafny.Sequence = (_0_valueOrError0).Extract().(_dafny.Sequence) + _ = _1_name + var _2_valueOrError1 m_Wrappers.Result = Companion_Default___.U32ToBigEndian(_dafny.IntOfUint32((_1_name).Cardinality())) + _ = _2_valueOrError1 + if (_2_valueOrError1).IsFailure() { + return (_2_valueOrError1).PropagateFailure() + } else { + var _3_len _dafny.Sequence = (_2_valueOrError1).Extract().(_dafny.Sequence) + _ = _3_len + var _4_serialized _dafny.Sequence = _dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(m_StructuredEncryptionUtil.Companion_Default___.STRING(), _3_len), _1_name), value) + _ = _4_serialized + return m_Wrappers.Companion_Result_.Create_Success_(_4_serialized) + } + } +} +func (_static *CompanionStruct_Default___) CollectMap(mapToSerialize _dafny.Map, serialized _dafny.Sequence) m_Wrappers.Result { + var _0_keys _dafny.Sequence = m_SortedSets.SetToOrderedSequence2((mapToSerialize).Keys(), func(coer45 func(_dafny.Char, _dafny.Char) bool) func(interface{}, interface{}) bool { + return func(arg61 interface{}, arg62 interface{}) bool { + return coer45(arg61.(_dafny.Char), arg62.(_dafny.Char)) + } + }(Companion_Default___.CharLess)) + _ = _0_keys + return Companion_Default___.CollectOrderedMapSubset(_0_keys, mapToSerialize, serialized) +} +func (_static *CompanionStruct_Default___) CollectOrderedMapSubset(keys _dafny.Sequence, mapToSerialize _dafny.Map, serialized _dafny.Sequence) m_Wrappers.Result { + goto TAIL_CALL_START +TAIL_CALL_START: + if (_dafny.IntOfUint32((keys).Cardinality())).Sign() == 0 { + return m_Wrappers.Companion_Result_.Create_Success_(serialized) + } else { + var _0_valueOrError0 m_Wrappers.Result = Companion_Default___.SerializeMapItem((keys).Select(0).(_dafny.Sequence), (mapToSerialize).Get((keys).Select(0).(_dafny.Sequence)).(_dafny.Sequence)) + _ = _0_valueOrError0 + if (_0_valueOrError0).IsFailure() { + return (_0_valueOrError0).PropagateFailure() + } else { + var _1_data _dafny.Sequence = (_0_valueOrError0).Extract().(_dafny.Sequence) + _ = _1_data + var _in0 _dafny.Sequence = (keys).Drop(1) + _ = _in0 + var _in1 _dafny.Map = mapToSerialize + _ = _in1 + var _in2 _dafny.Sequence = _dafny.Companion_Sequence_.Concatenate(serialized, _1_data) + _ = _in2 + keys = _in0 + mapToSerialize = _in1 + serialized = _in2 + goto TAIL_CALL_START + } + } +} +func (_static *CompanionStruct_Default___) BoolToUint8(b bool) uint8 { + if b { + return uint8(1) + } else { + return uint8(0) + } +} +func (_static *CompanionStruct_Default___) IsUnique(s _dafny.Sequence) bool { + return ((func() _dafny.Set { + var _coll0 = _dafny.NewBuilder() + _ = _coll0 + for _iter15 := _dafny.Iterate((s).Elements()); ; { + _compr_0, _ok15 := _iter15() + if !_ok15 { + break + } + var _0_x interface{} + _0_x = interface{}(_compr_0).(interface{}) + if _dafny.Companion_Sequence_.Contains(s, _0_x) { + _coll0.Add(_0_x) + } + } + return _coll0.ToSet() + }()).Cardinality()).Cmp(_dafny.IntOfUint32((s).Cardinality())) == 0 +} +func (_static *CompanionStruct_Default___) DeserializeBinarySet(serialized _dafny.Sequence, remainingCount _dafny.Int, origSerializedSize _dafny.Int, resultSet AttrValueAndLength) m_Wrappers.Result { + goto TAIL_CALL_START +TAIL_CALL_START: + if (remainingCount).Sign() == 0 { + var _0_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need(Companion_Default___.IsUnique(((resultSet).Dtor_val()).Dtor_BS()), _dafny.SeqOfString("Binary set values must not have duplicates")) + _ = _0_valueOrError0 + if (_0_valueOrError0).IsFailure() { + return (_0_valueOrError0).PropagateFailure() + } else { + return m_Wrappers.Companion_Result_.Create_Success_(resultSet) + } + } else if (_dafny.IntOfUint32((serialized).Cardinality())).Cmp(Companion_Default___.LENGTH__LEN()) < 0 { + return m_Wrappers.Companion_Result_.Create_Failure_(_dafny.SeqOfString("Out of bytes reading Binary Set")) + } else { + var _1_valueOrError1 m_Wrappers.Result = Companion_Default___.BigEndianToU32(serialized) + _ = _1_valueOrError1 + if (_1_valueOrError1).IsFailure() { + return (_1_valueOrError1).PropagateFailure() + } else { + var _2_len _dafny.Int = (_1_valueOrError1).Extract().(_dafny.Int) + _ = _2_len + var _3_serialized _dafny.Sequence = (serialized).Drop((Companion_Default___.LENGTH__LEN()).Uint32()) + _ = _3_serialized + if (_dafny.IntOfUint32((_3_serialized).Cardinality())).Cmp(_2_len) < 0 { + return m_Wrappers.Companion_Result_.Create_Failure_(_dafny.SeqOfString("Binary Set Structured Data has too few bytes")) + } else { + var _4_nattr m_ComAmazonawsDynamodbTypes.AttributeValue = m_ComAmazonawsDynamodbTypes.Companion_AttributeValue_.Create_BS_(_dafny.Companion_Sequence_.Concatenate(((resultSet).Dtor_val()).Dtor_BS(), _dafny.SeqOf((_3_serialized).Take((_2_len).Uint32())))) + _ = _4_nattr + var _in0 _dafny.Sequence = (_3_serialized).Drop((_2_len).Uint32()) + _ = _in0 + var _in1 _dafny.Int = (remainingCount).Minus(_dafny.One) + _ = _in1 + var _in2 _dafny.Int = origSerializedSize + _ = _in2 + var _in3 AttrValueAndLength = Companion_AttrValueAndLength_.Create_AttrValueAndLength_(_4_nattr, (((resultSet).Dtor_len()).Plus(_2_len)).Plus(Companion_Default___.LENGTH__LEN())) + _ = _in3 + serialized = _in0 + remainingCount = _in1 + origSerializedSize = _in2 + resultSet = _in3 + goto TAIL_CALL_START + } + } + } +} +func (_static *CompanionStruct_Default___) DeserializeStringSet(serialized _dafny.Sequence, remainingCount _dafny.Int, origSerializedSize _dafny.Int, resultSet AttrValueAndLength) m_Wrappers.Result { + goto TAIL_CALL_START +TAIL_CALL_START: + if (remainingCount).Sign() == 0 { + var _0_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need(Companion_Default___.IsUnique(((resultSet).Dtor_val()).Dtor_SS()), _dafny.SeqOfString("String set values must not have duplicates")) + _ = _0_valueOrError0 + if (_0_valueOrError0).IsFailure() { + return (_0_valueOrError0).PropagateFailure() + } else { + return m_Wrappers.Companion_Result_.Create_Success_(resultSet) + } + } else if (_dafny.IntOfUint32((serialized).Cardinality())).Cmp(Companion_Default___.LENGTH__LEN()) < 0 { + return m_Wrappers.Companion_Result_.Create_Failure_(_dafny.SeqOfString("Out of bytes reading String Set")) + } else { + var _1_valueOrError1 m_Wrappers.Result = Companion_Default___.BigEndianToU32(serialized) + _ = _1_valueOrError1 + if (_1_valueOrError1).IsFailure() { + return (_1_valueOrError1).PropagateFailure() + } else { + var _2_len _dafny.Int = (_1_valueOrError1).Extract().(_dafny.Int) + _ = _2_len + var _3_serialized _dafny.Sequence = (serialized).Drop((Companion_Default___.LENGTH__LEN()).Uint32()) + _ = _3_serialized + if (_dafny.IntOfUint32((_3_serialized).Cardinality())).Cmp(_2_len) < 0 { + return m_Wrappers.Companion_Result_.Create_Failure_(_dafny.SeqOfString("String Set Structured Data has too few bytes")) + } else { + var _4_valueOrError2 m_Wrappers.Result = m_UTF8.Decode((_3_serialized).Take((_2_len).Uint32())) + _ = _4_valueOrError2 + if (_4_valueOrError2).IsFailure() { + return (_4_valueOrError2).PropagateFailure() + } else { + var _5_nstring _dafny.Sequence = (_4_valueOrError2).Extract().(_dafny.Sequence) + _ = _5_nstring + var _6_nattr m_ComAmazonawsDynamodbTypes.AttributeValue = m_ComAmazonawsDynamodbTypes.Companion_AttributeValue_.Create_SS_(_dafny.Companion_Sequence_.Concatenate(((resultSet).Dtor_val()).Dtor_SS(), _dafny.SeqOf(_5_nstring))) + _ = _6_nattr + var _in0 _dafny.Sequence = (_3_serialized).Drop((_2_len).Uint32()) + _ = _in0 + var _in1 _dafny.Int = (remainingCount).Minus(_dafny.One) + _ = _in1 + var _in2 _dafny.Int = origSerializedSize + _ = _in2 + var _in3 AttrValueAndLength = Companion_AttrValueAndLength_.Create_AttrValueAndLength_(_6_nattr, (((resultSet).Dtor_len()).Plus(_2_len)).Plus(Companion_Default___.LENGTH__LEN())) + _ = _in3 + serialized = _in0 + remainingCount = _in1 + origSerializedSize = _in2 + resultSet = _in3 + goto TAIL_CALL_START + } + } + } + } +} +func (_static *CompanionStruct_Default___) DeserializeNumberSet(serialized _dafny.Sequence, remainingCount _dafny.Int, origSerializedSize _dafny.Int, resultSet AttrValueAndLength) m_Wrappers.Result { + goto TAIL_CALL_START +TAIL_CALL_START: + if (remainingCount).Sign() == 0 { + var _0_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need(Companion_Default___.IsUnique(((resultSet).Dtor_val()).Dtor_NS()), _dafny.SeqOfString("Number set values must not have duplicates")) + _ = _0_valueOrError0 + if (_0_valueOrError0).IsFailure() { + return (_0_valueOrError0).PropagateFailure() + } else { + return m_Wrappers.Companion_Result_.Create_Success_(resultSet) + } + } else if (_dafny.IntOfUint32((serialized).Cardinality())).Cmp(Companion_Default___.LENGTH__LEN()) < 0 { + return m_Wrappers.Companion_Result_.Create_Failure_(_dafny.SeqOfString("Out of bytes reading String Set")) + } else { + var _1_valueOrError1 m_Wrappers.Result = Companion_Default___.BigEndianToU32(serialized) + _ = _1_valueOrError1 + if (_1_valueOrError1).IsFailure() { + return (_1_valueOrError1).PropagateFailure() + } else { + var _2_len _dafny.Int = (_1_valueOrError1).Extract().(_dafny.Int) + _ = _2_len + var _3_serialized _dafny.Sequence = (serialized).Drop((Companion_Default___.LENGTH__LEN()).Uint32()) + _ = _3_serialized + if (_dafny.IntOfUint32((_3_serialized).Cardinality())).Cmp(_2_len) < 0 { + return m_Wrappers.Companion_Result_.Create_Failure_(_dafny.SeqOfString("Number Set Structured Data has too few bytes")) + } else { + var _4_valueOrError2 m_Wrappers.Result = m_UTF8.Decode((_3_serialized).Take((_2_len).Uint32())) + _ = _4_valueOrError2 + if (_4_valueOrError2).IsFailure() { + return (_4_valueOrError2).PropagateFailure() + } else { + var _5_nstring _dafny.Sequence = (_4_valueOrError2).Extract().(_dafny.Sequence) + _ = _5_nstring + var _6_nattr m_ComAmazonawsDynamodbTypes.AttributeValue = m_ComAmazonawsDynamodbTypes.Companion_AttributeValue_.Create_NS_(_dafny.Companion_Sequence_.Concatenate(((resultSet).Dtor_val()).Dtor_NS(), _dafny.SeqOf(_5_nstring))) + _ = _6_nattr + var _in0 _dafny.Sequence = (_3_serialized).Drop((_2_len).Uint32()) + _ = _in0 + var _in1 _dafny.Int = (remainingCount).Minus(_dafny.One) + _ = _in1 + var _in2 _dafny.Int = origSerializedSize + _ = _in2 + var _in3 AttrValueAndLength = Companion_AttrValueAndLength_.Create_AttrValueAndLength_(_6_nattr, (((resultSet).Dtor_len()).Plus(_2_len)).Plus(Companion_Default___.LENGTH__LEN())) + _ = _in3 + serialized = _in0 + remainingCount = _in1 + origSerializedSize = _in2 + resultSet = _in3 + goto TAIL_CALL_START + } + } + } + } +} +func (_static *CompanionStruct_Default___) DeserializeList(serialized _dafny.Sequence, remainingCount _dafny.Int, depth _dafny.Int, resultList AttrValueAndLength) m_Wrappers.Result { + if (remainingCount).Sign() == 0 { + return m_Wrappers.Companion_Result_.Create_Success_(resultList) + } else if (_dafny.IntOfUint32((serialized).Cardinality())).Cmp(_dafny.IntOfInt64(6)) < 0 { + return m_Wrappers.Companion_Result_.Create_Failure_(_dafny.SeqOfString("Out of bytes reading Type of List element")) + } else { + var _0_TerminalTypeId _dafny.Sequence = (serialized).Subsequence(0, 2) + _ = _0_TerminalTypeId + var _1_serialized _dafny.Sequence = (serialized).Drop(2) + _ = _1_serialized + var _2_valueOrError0 m_Wrappers.Result = Companion_Default___.BigEndianToU32(_1_serialized) + _ = _2_valueOrError0 + if (_2_valueOrError0).IsFailure() { + return (_2_valueOrError0).PropagateFailure() + } else { + var _3_len _dafny.Int = (_2_valueOrError0).Extract().(_dafny.Int) + _ = _3_len + var _4_serialized _dafny.Sequence = (_1_serialized).Drop((Companion_Default___.LENGTH__LEN()).Uint32()) + _ = _4_serialized + if (_dafny.IntOfUint32((_4_serialized).Cardinality())).Cmp(_3_len) < 0 { + return m_Wrappers.Companion_Result_.Create_Failure_(_dafny.SeqOfString("Out of bytes reading Content of List element")) + } else { + var _5_valueOrError1 m_Wrappers.Result = Companion_Default___.BytesToAttr((_4_serialized).Take((_3_len).Uint32()), _0_TerminalTypeId, false, (depth).Plus(_dafny.One)) + _ = _5_valueOrError1 + if (_5_valueOrError1).IsFailure() { + return (_5_valueOrError1).PropagateFailure() + } else { + var _6_nval AttrValueAndLength = (_5_valueOrError1).Extract().(AttrValueAndLength) + _ = _6_nval + var _7_nattr m_ComAmazonawsDynamodbTypes.AttributeValue = m_ComAmazonawsDynamodbTypes.Companion_AttributeValue_.Create_L_(_dafny.Companion_Sequence_.Concatenate(((resultList).Dtor_val()).Dtor_L(), _dafny.SeqOf((_6_nval).Dtor_val()))) + _ = _7_nattr + return Companion_Default___.DeserializeList((_4_serialized).Drop((_3_len).Uint32()), (remainingCount).Minus(_dafny.One), depth, Companion_AttrValueAndLength_.Create_AttrValueAndLength_(_7_nattr, (((resultList).Dtor_len()).Plus(_3_len)).Plus(_dafny.IntOfInt64(6)))) + } + } + } + } +} +func (_static *CompanionStruct_Default___) DeserializeMap(serialized _dafny.Sequence, remainingCount _dafny.Int, depth _dafny.Int, resultMap AttrValueAndLength) m_Wrappers.Result { + if (remainingCount).Sign() == 0 { + return m_Wrappers.Companion_Result_.Create_Success_(resultMap) + } else { + var _0_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need((_dafny.IntOfInt64(6)).Cmp(_dafny.IntOfUint32((serialized).Cardinality())) <= 0, _dafny.SeqOfString("Out of bytes reading Map Key")) + _ = _0_valueOrError0 + if (_0_valueOrError0).IsFailure() { + return (_0_valueOrError0).PropagateFailure() + } else { + var _1_TerminalTypeId__key _dafny.Sequence = (serialized).Subsequence(0, 2) + _ = _1_TerminalTypeId__key + var _2_valueOrError1 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need(_dafny.Companion_Sequence_.Equal(_1_TerminalTypeId__key, m_StructuredEncryptionUtil.Companion_Default___.STRING()), _dafny.SeqOfString("Key of Map is not String")) + _ = _2_valueOrError1 + if (_2_valueOrError1).IsFailure() { + return (_2_valueOrError1).PropagateFailure() + } else { + var _3_serialized _dafny.Sequence = (serialized).Drop(2) + _ = _3_serialized + var _4_valueOrError2 m_Wrappers.Result = Companion_Default___.BigEndianToU32(_3_serialized) + _ = _4_valueOrError2 + if (_4_valueOrError2).IsFailure() { + return (_4_valueOrError2).PropagateFailure() + } else { + var _5_len _dafny.Int = (_4_valueOrError2).Extract().(_dafny.Int) + _ = _5_len + var _6_serialized _dafny.Sequence = (_3_serialized).Drop((Companion_Default___.LENGTH__LEN()).Uint32()) + _ = _6_serialized + var _7_valueOrError3 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need((_5_len).Cmp(_dafny.IntOfUint32((_6_serialized).Cardinality())) <= 0, _dafny.SeqOfString("Key of Map of Structured Data has too few bytes")) + _ = _7_valueOrError3 + if (_7_valueOrError3).IsFailure() { + return (_7_valueOrError3).PropagateFailure() + } else { + var _8_valueOrError4 m_Wrappers.Result = m_UTF8.Decode((_6_serialized).Take((_5_len).Uint32())) + _ = _8_valueOrError4 + if (_8_valueOrError4).IsFailure() { + return (_8_valueOrError4).PropagateFailure() + } else { + var _9_key _dafny.Sequence = (_8_valueOrError4).Extract().(_dafny.Sequence) + _ = _9_key + var _10_serialized _dafny.Sequence = (_6_serialized).Drop((_5_len).Uint32()) + _ = _10_serialized + var _11_valueOrError5 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need((_dafny.IntOfInt64(2)).Cmp(_dafny.IntOfUint32((_10_serialized).Cardinality())) <= 0, _dafny.SeqOfString("Out of bytes reading Map Value")) + _ = _11_valueOrError5 + if (_11_valueOrError5).IsFailure() { + return (_11_valueOrError5).PropagateFailure() + } else { + var _12_valueOrError6 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need(m_ComAmazonawsDynamodbTypes.Companion_Default___.IsValid__AttributeName(_9_key), _dafny.SeqOfString("Key is not valid AttributeName")) + _ = _12_valueOrError6 + if (_12_valueOrError6).IsFailure() { + return (_12_valueOrError6).PropagateFailure() + } else { + var _13_TerminalTypeId__value _dafny.Sequence = (_10_serialized).Subsequence(0, 2) + _ = _13_TerminalTypeId__value + var _14_serialized _dafny.Sequence = (_10_serialized).Drop(2) + _ = _14_serialized + var _15_valueOrError7 m_Wrappers.Result = Companion_Default___.BytesToAttr(_14_serialized, _13_TerminalTypeId__value, true, (depth).Plus(_dafny.One)) + _ = _15_valueOrError7 + if (_15_valueOrError7).IsFailure() { + return (_15_valueOrError7).PropagateFailure() + } else { + var _16_nval AttrValueAndLength = (_15_valueOrError7).Extract().(AttrValueAndLength) + _ = _16_nval + var _17_serialized _dafny.Sequence = (_14_serialized).Drop(((_16_nval).Dtor_len()).Uint32()) + _ = _17_serialized + var _18_valueOrError8 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need(!(((resultMap).Dtor_val()).Dtor_M()).Contains(_9_key), _dafny.SeqOfString("Duplicate key in map.")) + _ = _18_valueOrError8 + if (_18_valueOrError8).IsFailure() { + return (_18_valueOrError8).PropagateFailure() + } else { + var _19_nattr m_ComAmazonawsDynamodbTypes.AttributeValue = m_ComAmazonawsDynamodbTypes.Companion_AttributeValue_.Create_M_((((resultMap).Dtor_val()).Dtor_M()).Update(_9_key, (_16_nval).Dtor_val())) + _ = _19_nattr + var _20_newResultMap AttrValueAndLength = Companion_AttrValueAndLength_.Create_AttrValueAndLength_(_19_nattr, ((((resultMap).Dtor_len()).Plus((_16_nval).Dtor_len())).Plus(_dafny.IntOfInt64(8))).Plus(_5_len)) + _ = _20_newResultMap + return Companion_Default___.DeserializeMap(_17_serialized, (remainingCount).Minus(_dafny.One), depth, _20_newResultMap) + } + } + } + } + } + } + } + } + } + } +} +func (_static *CompanionStruct_Default___) BytesToAttr(value _dafny.Sequence, typeId _dafny.Sequence, hasLen bool, depth _dafny.Int) m_Wrappers.Result { + var _0_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need((depth).Cmp(m_DynamoDbEncryptionUtil.Companion_Default___.MAX__STRUCTURE__DEPTH()) <= 0, _dafny.Companion_Sequence_.Concatenate(_dafny.SeqOfString("Depth of attribute structure to deserialize exceeds limit of "), m_DynamoDbEncryptionUtil.Companion_Default___.MAX__STRUCTURE__DEPTH__STR())) + _ = _0_valueOrError0 + if (_0_valueOrError0).IsFailure() { + return (_0_valueOrError0).PropagateFailure() + } else { + var _1_valueOrError1 m_Wrappers.Result = (func() m_Wrappers.Result { + if hasLen { + return (func() m_Wrappers.Result { + if (_dafny.IntOfUint32((value).Cardinality())).Cmp(Companion_Default___.LENGTH__LEN()) < 0 { + return m_Wrappers.Companion_Result_.Create_Failure_(_dafny.SeqOfString("Out of bytes reading length")) + } + return Companion_Default___.BigEndianToU32(value) + })() + } + return m_Wrappers.Companion_Result_.Create_Success_(_dafny.IntOfUint32((value).Cardinality())) + })() + _ = _1_valueOrError1 + if (_1_valueOrError1).IsFailure() { + return (_1_valueOrError1).PropagateFailure() + } else { + var _2_len _dafny.Int = (_1_valueOrError1).Extract().(_dafny.Int) + _ = _2_len + var _3_value _dafny.Sequence = (func() _dafny.Sequence { + if hasLen { + return (value).Drop((Companion_Default___.LENGTH__LEN()).Uint32()) + } + return value + })() + _ = _3_value + var _4_lengthBytes _dafny.Int = (func() _dafny.Int { + if hasLen { + return Companion_Default___.LENGTH__LEN() + } + return _dafny.Zero + })() + _ = _4_lengthBytes + if (_dafny.IntOfUint32((_3_value).Cardinality())).Cmp(_2_len) < 0 { + return m_Wrappers.Companion_Result_.Create_Failure_(_dafny.SeqOfString("Structured Data has too few bytes")) + } else if _dafny.Companion_Sequence_.Equal(typeId, m_StructuredEncryptionUtil.Companion_Default___.NULL()) { + if (_2_len).Sign() != 0 { + return m_Wrappers.Companion_Result_.Create_Failure_(_dafny.SeqOfString("NULL type did not have length zero")) + } else { + return m_Wrappers.Companion_Result_.Create_Success_(Companion_AttrValueAndLength_.Create_AttrValueAndLength_(m_ComAmazonawsDynamodbTypes.Companion_AttributeValue_.Create_NULL_(true), _4_lengthBytes)) + } + } else if _dafny.Companion_Sequence_.Equal(typeId, m_StructuredEncryptionUtil.Companion_Default___.STRING()) { + var _5_valueOrError2 m_Wrappers.Result = m_UTF8.Decode((_3_value).Take((_2_len).Uint32())) + _ = _5_valueOrError2 + if (_5_valueOrError2).IsFailure() { + return (_5_valueOrError2).PropagateFailure() + } else { + var _6_str _dafny.Sequence = (_5_valueOrError2).Extract().(_dafny.Sequence) + _ = _6_str + return m_Wrappers.Companion_Result_.Create_Success_(Companion_AttrValueAndLength_.Create_AttrValueAndLength_(m_ComAmazonawsDynamodbTypes.Companion_AttributeValue_.Create_S_(_6_str), (_2_len).Plus(_4_lengthBytes))) + } + } else if _dafny.Companion_Sequence_.Equal(typeId, m_StructuredEncryptionUtil.Companion_Default___.NUMBER()) { + var _7_valueOrError3 m_Wrappers.Result = m_UTF8.Decode((_3_value).Take((_2_len).Uint32())) + _ = _7_valueOrError3 + if (_7_valueOrError3).IsFailure() { + return (_7_valueOrError3).PropagateFailure() + } else { + var _8_str _dafny.Sequence = (_7_valueOrError3).Extract().(_dafny.Sequence) + _ = _8_str + return m_Wrappers.Companion_Result_.Create_Success_(Companion_AttrValueAndLength_.Create_AttrValueAndLength_(m_ComAmazonawsDynamodbTypes.Companion_AttributeValue_.Create_N_(_8_str), (_2_len).Plus(_4_lengthBytes))) + } + } else if _dafny.Companion_Sequence_.Equal(typeId, m_StructuredEncryptionUtil.Companion_Default___.BINARY()) { + return m_Wrappers.Companion_Result_.Create_Success_(Companion_AttrValueAndLength_.Create_AttrValueAndLength_(m_ComAmazonawsDynamodbTypes.Companion_AttributeValue_.Create_B_((_3_value).Take((_2_len).Uint32())), (_2_len).Plus(_4_lengthBytes))) + } else if _dafny.Companion_Sequence_.Equal(typeId, m_StructuredEncryptionUtil.Companion_Default___.BOOLEAN()) { + if (_2_len).Cmp(Companion_Default___.BOOL__LEN()) != 0 { + return m_Wrappers.Companion_Result_.Create_Failure_(_dafny.SeqOfString("Boolean Structured Data has more than one byte")) + } else if ((_3_value).Select(0).(uint8)) == (uint8(0)) { + return m_Wrappers.Companion_Result_.Create_Success_(Companion_AttrValueAndLength_.Create_AttrValueAndLength_(m_ComAmazonawsDynamodbTypes.Companion_AttributeValue_.Create_BOOL_(false), (Companion_Default___.BOOL__LEN()).Plus(_4_lengthBytes))) + } else if ((_3_value).Select(0).(uint8)) == (uint8(1)) { + return m_Wrappers.Companion_Result_.Create_Success_(Companion_AttrValueAndLength_.Create_AttrValueAndLength_(m_ComAmazonawsDynamodbTypes.Companion_AttributeValue_.Create_BOOL_(true), (Companion_Default___.BOOL__LEN()).Plus(_4_lengthBytes))) + } else { + return m_Wrappers.Companion_Result_.Create_Failure_(_dafny.SeqOfString("Boolean Structured Data had inappropriate value")) + } + } else if _dafny.Companion_Sequence_.Equal(typeId, m_StructuredEncryptionUtil.Companion_Default___.STRING__SET()) { + if (_dafny.IntOfUint32((_3_value).Cardinality())).Cmp(Companion_Default___.LENGTH__LEN()) < 0 { + return m_Wrappers.Companion_Result_.Create_Failure_(_dafny.SeqOfString("String Set Structured Data has less than LENGTH_LEN bytes")) + } else { + var _9_valueOrError4 m_Wrappers.Result = Companion_Default___.BigEndianToU32(_3_value) + _ = _9_valueOrError4 + if (_9_valueOrError4).IsFailure() { + return (_9_valueOrError4).PropagateFailure() + } else { + var _10_len _dafny.Int = (_9_valueOrError4).Extract().(_dafny.Int) + _ = _10_len + var _11_value _dafny.Sequence = (_3_value).Drop((Companion_Default___.LENGTH__LEN()).Uint32()) + _ = _11_value + return Companion_Default___.DeserializeStringSet(_11_value, _10_len, ((_dafny.IntOfUint32((_11_value).Cardinality())).Plus(Companion_Default___.LENGTH__LEN())).Plus(_4_lengthBytes), Companion_AttrValueAndLength_.Create_AttrValueAndLength_(m_ComAmazonawsDynamodbTypes.Companion_AttributeValue_.Create_SS_(_dafny.SeqOf()), (Companion_Default___.LENGTH__LEN()).Plus(_4_lengthBytes))) + } + } + } else if _dafny.Companion_Sequence_.Equal(typeId, m_StructuredEncryptionUtil.Companion_Default___.NUMBER__SET()) { + if (_dafny.IntOfUint32((_3_value).Cardinality())).Cmp(Companion_Default___.LENGTH__LEN()) < 0 { + return m_Wrappers.Companion_Result_.Create_Failure_(_dafny.SeqOfString("Number Set Structured Data has less than 4 bytes")) + } else { + var _12_valueOrError5 m_Wrappers.Result = Companion_Default___.BigEndianToU32(_3_value) + _ = _12_valueOrError5 + if (_12_valueOrError5).IsFailure() { + return (_12_valueOrError5).PropagateFailure() + } else { + var _13_len _dafny.Int = (_12_valueOrError5).Extract().(_dafny.Int) + _ = _13_len + var _14_value _dafny.Sequence = (_3_value).Drop((Companion_Default___.LENGTH__LEN()).Uint32()) + _ = _14_value + return Companion_Default___.DeserializeNumberSet(_14_value, _13_len, ((_dafny.IntOfUint32((_14_value).Cardinality())).Plus(Companion_Default___.LENGTH__LEN())).Plus(_4_lengthBytes), Companion_AttrValueAndLength_.Create_AttrValueAndLength_(m_ComAmazonawsDynamodbTypes.Companion_AttributeValue_.Create_NS_(_dafny.SeqOf()), (Companion_Default___.LENGTH__LEN()).Plus(_4_lengthBytes))) + } + } + } else if _dafny.Companion_Sequence_.Equal(typeId, m_StructuredEncryptionUtil.Companion_Default___.BINARY__SET()) { + if (_dafny.IntOfUint32((_3_value).Cardinality())).Cmp(Companion_Default___.LENGTH__LEN()) < 0 { + return m_Wrappers.Companion_Result_.Create_Failure_(_dafny.SeqOfString("Binary Set Structured Data has less than LENGTH_LEN bytes")) + } else { + var _15_valueOrError6 m_Wrappers.Result = Companion_Default___.BigEndianToU32(_3_value) + _ = _15_valueOrError6 + if (_15_valueOrError6).IsFailure() { + return (_15_valueOrError6).PropagateFailure() + } else { + var _16_len _dafny.Int = (_15_valueOrError6).Extract().(_dafny.Int) + _ = _16_len + var _17_value _dafny.Sequence = (_3_value).Drop((Companion_Default___.LENGTH__LEN()).Uint32()) + _ = _17_value + return Companion_Default___.DeserializeBinarySet(_17_value, _16_len, ((_dafny.IntOfUint32((_17_value).Cardinality())).Plus(Companion_Default___.LENGTH__LEN())).Plus(_4_lengthBytes), Companion_AttrValueAndLength_.Create_AttrValueAndLength_(m_ComAmazonawsDynamodbTypes.Companion_AttributeValue_.Create_BS_(_dafny.SeqOf()), (Companion_Default___.LENGTH__LEN()).Plus(_4_lengthBytes))) + } + } + } else if _dafny.Companion_Sequence_.Equal(typeId, m_StructuredEncryptionUtil.Companion_Default___.MAP()) { + if (_dafny.IntOfUint32((_3_value).Cardinality())).Cmp(Companion_Default___.LENGTH__LEN()) < 0 { + return m_Wrappers.Companion_Result_.Create_Failure_(_dafny.SeqOfString("List Structured Data has less than 4 bytes")) + } else { + var _18_valueOrError7 m_Wrappers.Result = Companion_Default___.BigEndianToU32(_3_value) + _ = _18_valueOrError7 + if (_18_valueOrError7).IsFailure() { + return (_18_valueOrError7).PropagateFailure() + } else { + var _19_len _dafny.Int = (_18_valueOrError7).Extract().(_dafny.Int) + _ = _19_len + var _20_value _dafny.Sequence = (_3_value).Drop((Companion_Default___.LENGTH__LEN()).Uint32()) + _ = _20_value + return Companion_Default___.DeserializeMap(_20_value, _19_len, depth, Companion_AttrValueAndLength_.Create_AttrValueAndLength_(m_ComAmazonawsDynamodbTypes.Companion_AttributeValue_.Create_M_(_dafny.NewMapBuilder().ToMap()), (Companion_Default___.LENGTH__LEN()).Plus(_4_lengthBytes))) + } + } + } else if _dafny.Companion_Sequence_.Equal(typeId, m_StructuredEncryptionUtil.Companion_Default___.LIST()) { + if (_dafny.IntOfUint32((_3_value).Cardinality())).Cmp(Companion_Default___.LENGTH__LEN()) < 0 { + return m_Wrappers.Companion_Result_.Create_Failure_(_dafny.SeqOfString("List Structured Data has less than 4 bytes")) + } else { + var _21_valueOrError8 m_Wrappers.Result = Companion_Default___.BigEndianToU32(_3_value) + _ = _21_valueOrError8 + if (_21_valueOrError8).IsFailure() { + return (_21_valueOrError8).PropagateFailure() + } else { + var _22_len _dafny.Int = (_21_valueOrError8).Extract().(_dafny.Int) + _ = _22_len + var _23_value _dafny.Sequence = (_3_value).Drop((Companion_Default___.LENGTH__LEN()).Uint32()) + _ = _23_value + return Companion_Default___.DeserializeList(_23_value, _22_len, depth, Companion_AttrValueAndLength_.Create_AttrValueAndLength_(m_ComAmazonawsDynamodbTypes.Companion_AttributeValue_.Create_L_(_dafny.SeqOf()), (Companion_Default___.LENGTH__LEN()).Plus(_4_lengthBytes))) + } + } + } else { + return m_Wrappers.Companion_Result_.Create_Failure_(_dafny.SeqOfString("Unsupported TerminalTypeId")) + } + } + } +} +func (_static *CompanionStruct_Default___) FlattenValueMap(m _dafny.Map) _dafny.Map { + return func() _dafny.Map { + var _coll0 = _dafny.NewMapBuilder() + _ = _coll0 + for _iter16 := _dafny.Iterate((m).Keys().Elements()); ; { + _compr_0, _ok16 := _iter16() + if !_ok16 { + break + } + var _0_k interface{} + _0_k = interface{}(_compr_0).(interface{}) + if ((m).Contains(_0_k)) && (((m).Get(_0_k).(m_Wrappers.Result)).Is_Success()) { + _coll0.Add(_0_k, ((m).Get(_0_k).(m_Wrappers.Result)).Dtor_value()) + } + } + return _coll0.ToMap() + }() +} +func (_static *CompanionStruct_Default___) FlattenErrors(m _dafny.Map) _dafny.Set { + return func() _dafny.Set { + var _coll0 = _dafny.NewBuilder() + _ = _coll0 + for _iter17 := _dafny.Iterate((m).Keys().Elements()); ; { + _compr_0, _ok17 := _iter17() + if !_ok17 { + break + } + var _0_k interface{} + _0_k = interface{}(_compr_0).(interface{}) + if ((m).Contains(_0_k)) && (((m).Get(_0_k).(m_Wrappers.Result)).Is_Failure()) { + _coll0.Add(((m).Get(_0_k).(m_Wrappers.Result)).Dtor_error().(_dafny.Sequence)) + } + } + return _coll0.ToSet() + }() +} +func (_static *CompanionStruct_Default___) SimplifyMapValue(m _dafny.Map) m_Wrappers.Result { + if _dafny.Quantifier((m).Keys().Elements(), true, func(_forall_var_0 interface{}) bool { + var _0_k interface{} + _0_k = interface{}(_forall_var_0).(interface{}) + return !((m).Contains(_0_k)) || (((m).Get(_0_k).(m_Wrappers.Result)).Is_Success()) + }) { + var _1_result _dafny.Map = Companion_Default___.FlattenValueMap(m) + _ = _1_result + return m_Wrappers.Companion_Result_.Create_Success_(_1_result) + } else { + var _2_badValues _dafny.Set = Companion_Default___.FlattenErrors(m) + _ = _2_badValues + var _3_badValueSeq _dafny.Sequence = m_StandardLibrary.Companion_Default___.SetToOrderedSequence(_2_badValues, func(coer46 func(_dafny.Char, _dafny.Char) bool) func(interface{}, interface{}) bool { + return func(arg63 interface{}, arg64 interface{}) bool { + return coer46(arg63.(_dafny.Char), arg64.(_dafny.Char)) + } + }(Companion_Default___.CharLess)) + _ = _3_badValueSeq + return m_Wrappers.Companion_Result_.Create_Failure_(m_StandardLibrary.Companion_Default___.Join(_3_badValueSeq, _dafny.SeqOfString("\n"))) + } +} +func (_static *CompanionStruct_Default___) BOOL__LEN() _dafny.Int { + return _dafny.One +} +func (_static *CompanionStruct_Default___) PREFIX__LEN() _dafny.Int { + return _dafny.IntOfInt64(6) +} +func (_static *CompanionStruct_Default___) TYPEID__LEN() _dafny.Int { + return _dafny.IntOfInt64(2) +} +func (_static *CompanionStruct_Default___) LENGTH__LEN() _dafny.Int { + return _dafny.IntOfInt64(4) +} + +// End of class Default__ + +// Definition of datatype AttrValueAndLength +type AttrValueAndLength struct { + Data_AttrValueAndLength_ +} + +func (_this AttrValueAndLength) Get_() Data_AttrValueAndLength_ { + return _this.Data_AttrValueAndLength_ +} + +type Data_AttrValueAndLength_ interface { + isAttrValueAndLength() +} + +type CompanionStruct_AttrValueAndLength_ struct { +} + +var Companion_AttrValueAndLength_ = CompanionStruct_AttrValueAndLength_{} + +type AttrValueAndLength_AttrValueAndLength struct { + Val m_ComAmazonawsDynamodbTypes.AttributeValue + Len _dafny.Int +} + +func (AttrValueAndLength_AttrValueAndLength) isAttrValueAndLength() {} + +func (CompanionStruct_AttrValueAndLength_) Create_AttrValueAndLength_(Val m_ComAmazonawsDynamodbTypes.AttributeValue, Len _dafny.Int) AttrValueAndLength { + return AttrValueAndLength{AttrValueAndLength_AttrValueAndLength{Val, Len}} +} + +func (_this AttrValueAndLength) Is_AttrValueAndLength() bool { + _, ok := _this.Get_().(AttrValueAndLength_AttrValueAndLength) + return ok +} + +func (CompanionStruct_AttrValueAndLength_) Default() AttrValueAndLength { + return Companion_AttrValueAndLength_.Create_AttrValueAndLength_(m_ComAmazonawsDynamodbTypes.Companion_AttributeValue_.Default(), _dafny.Zero) +} + +func (_this AttrValueAndLength) Dtor_val() m_ComAmazonawsDynamodbTypes.AttributeValue { + return _this.Get_().(AttrValueAndLength_AttrValueAndLength).Val +} + +func (_this AttrValueAndLength) Dtor_len() _dafny.Int { + return _this.Get_().(AttrValueAndLength_AttrValueAndLength).Len +} + +func (_this AttrValueAndLength) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case AttrValueAndLength_AttrValueAndLength: + { + return "DynamoToStruct.AttrValueAndLength.AttrValueAndLength" + "(" + _dafny.String(data.Val) + ", " + _dafny.String(data.Len) + ")" + } + default: + { + return "" + } + } +} + +func (_this AttrValueAndLength) Equals(other AttrValueAndLength) bool { + switch data1 := _this.Get_().(type) { + case AttrValueAndLength_AttrValueAndLength: + { + data2, ok := other.Get_().(AttrValueAndLength_AttrValueAndLength) + return ok && data1.Val.Equals(data2.Val) && data1.Len.Cmp(data2.Len) == 0 + } + default: + { + return false // unexpected + } + } +} + +func (_this AttrValueAndLength) EqualsGeneric(other interface{}) bool { + typed, ok := other.(AttrValueAndLength) + return ok && _this.Equals(typed) +} + +func Type_AttrValueAndLength_() _dafny.TypeDescriptor { + return type_AttrValueAndLength_{} +} + +type type_AttrValueAndLength_ struct { +} + +func (_this type_AttrValueAndLength_) Default() interface{} { + return Companion_AttrValueAndLength_.Default() +} + +func (_this type_AttrValueAndLength_) String() string { + return "DynamoToStruct.AttrValueAndLength" +} +func (_this AttrValueAndLength) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = AttrValueAndLength{} + +// End of datatype AttrValueAndLength diff --git a/customer-preview/ddb-esdk/ExecuteStatementTransform/ExecuteStatementTransform.go b/customer-preview/ddb-esdk/ExecuteStatementTransform/ExecuteStatementTransform.go new file mode 100644 index 000000000..4a01cfe5f --- /dev/null +++ b/customer-preview/ddb-esdk/ExecuteStatementTransform/ExecuteStatementTransform.go @@ -0,0 +1,385 @@ +// Package ExecuteStatementTransform +// Dafny module ExecuteStatementTransform compiled into Go + +package ExecuteStatementTransform + +import ( + os "os" + + m_ComAmazonawsDynamodbTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/ComAmazonawsDynamodbTypes" + m_Com_Amazonaws_Dynamodb "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/Com_Amazonaws_Dynamodb" + m_ComAmazonawsKmsTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/ComAmazonawsKmsTypes" + m_Com_Amazonaws_Kms "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/Com_Amazonaws_Kms" + m_AlgorithmSuites "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AlgorithmSuites" + m_AwsArnParsing "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsArnParsing" + m_AwsCryptographyKeyStoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreOperations" + m_AwsCryptographyKeyStoreTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreTypes" + m_AwsCryptographyMaterialProvidersOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersOperations" + m_AwsCryptographyMaterialProvidersTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersTypes" + m_AwsKmsDiscoveryKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsDiscoveryKeyring" + m_AwsKmsEcdhKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsEcdhKeyring" + m_AwsKmsHierarchicalKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsHierarchicalKeyring" + m_AwsKmsKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsKeyring" + m_AwsKmsMrkAreUnique "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkAreUnique" + m_AwsKmsMrkDiscoveryKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkDiscoveryKeyring" + m_AwsKmsMrkKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkKeyring" + m_AwsKmsMrkMatchForDecrypt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkMatchForDecrypt" + m_AwsKmsRsaKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsRsaKeyring" + m_AwsKmsUtils "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsUtils" + m_CMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CMM" + m_CacheConstants "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CacheConstants" + m_CanonicalEncryptionContext "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CanonicalEncryptionContext" + m_Commitment "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Commitment" + m_Constants "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Constants" + m_CreateKeyStoreTable "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeyStoreTable" + m_CreateKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeys" + m_DDBKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DDBKeystoreOperations" + m_DefaultCMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DefaultCMM" + m_DefaultClientSupplier "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DefaultClientSupplier" + m_Defaults "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Defaults" + m_DiscoveryMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DiscoveryMultiKeyring" + m_EcdhEdkWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/EcdhEdkWrapping" + m_EdkWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/EdkWrapping" + m_ErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/ErrorMessages" + m_GetKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/GetKeys" + m_IntermediateKeyWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/IntermediateKeyWrapping" + m_KMSKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KMSKeystoreOperations" + m_KeyStore "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStore" + m_KeyStoreErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStoreErrorMessages" + m_Keyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Keyring" + m_KmsArn "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KmsArn" + m_LocalCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/LocalCMC" + m_MaterialProviders "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MaterialProviders" + m_MaterialWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MaterialWrapping" + m_Materials "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Materials" + m_MrkAwareDiscoveryMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MrkAwareDiscoveryMultiKeyring" + m_MrkAwareStrictMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MrkAwareStrictMultiKeyring" + m_MultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MultiKeyring" + m_RawAESKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawAESKeyring" + m_RawECDHKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawECDHKeyring" + m_RawRSAKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawRSAKeyring" + m_RequiredEncryptionContextCMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RequiredEncryptionContextCMM" + m_StormTracker "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StormTracker" + m_StormTrackingCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StormTrackingCMC" + m_StrictMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StrictMultiKeyring" + m_Structure "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Structure" + m_SynchronizedLocalCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/SynchronizedLocalCMC" + m_Utils "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Utils" + m_AtomicPrimitives "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AtomicPrimitives" + m_AwsCryptographyPrimitivesOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesOperations" + m_AwsCryptographyPrimitivesTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesTypes" + m_Digest "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Digest" + m_HKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/HKDF" + m_KdfCtr "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/KdfCtr" + m_Random "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Random" + m_WrappedHKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHKDF" + m_WrappedHMAC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHMAC" + m_Actions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Actions" + m_Base64 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64" + m_Base64Lemmas "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64Lemmas" + m_BoundedInts "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/BoundedInts" + m_DivInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternals" + m_DivInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternalsNonlinear" + m_DivMod "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivMod" + m_FileIO "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FileIO" + m_FloatCompare "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FloatCompare" + m_Functions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Functions" + m_GeneralInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GeneralInternals" + m_GetOpt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GetOpt" + m_HexStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/HexStrings" + m_Logarithm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Logarithm" + m__Math "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Math_" + m_ModInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternals" + m_ModInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternalsNonlinear" + m_Mul "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Mul" + m_MulInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternals" + m_MulInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternalsNonlinear" + m_Power "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Power" + m_Relations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Relations" + m_Seq "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq" + m_Seq_MergeSort "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq_MergeSort" + m_Sorting "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Sorting" + m_StandardLibrary "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary" + m_StandardLibraryInterop "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibraryInterop" + m_StandardLibrary_Sequence "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_Sequence" + m_StandardLibrary_String "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_String" + m_StandardLibrary_UInt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_UInt" + m_Streams "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Streams" + m_UnicodeStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UnicodeStrings" + m__Unicode "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Unicode_" + m_Utf16EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf16EncodingForm" + m_Utf8EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf8EncodingForm" + m_Wrappers "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers" + m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorOperations "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorOperations" + m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes" + m_AwsCryptographyDbEncryptionSdkDynamoDbOperations "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbOperations" + m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes" + m_AwsCryptographyDbEncryptionSdkDynamoDbTypes "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbTypes" + m_AwsCryptographyDbEncryptionSdkStructuredEncryptionOperations "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkStructuredEncryptionOperations" + m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes" + m_BaseBeacon "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/BaseBeacon" + m_BatchGetItemTransform "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/BatchGetItemTransform" + m_BatchWriteItemTransform "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/BatchWriteItemTransform" + m_Canonize "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/Canonize" + m_CompoundBeacon "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/CompoundBeacon" + m_DdbMiddlewareConfig "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DdbMiddlewareConfig" + m_DdbStatement "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DdbStatement" + m_DdbVirtualFields "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DdbVirtualFields" + m_DeleteItemTransform "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DeleteItemTransform" + m_DynamoDBFilterExpr "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDBFilterExpr" + m_DynamoDBSupport "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDBSupport" + m_DynamoDbEncryption "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbEncryption" + m_DynamoDbEncryptionBranchKeyIdSupplier "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbEncryptionBranchKeyIdSupplier" + m_DynamoDbEncryptionUtil "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbEncryptionUtil" + m_DynamoDbItemEncryptor "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbItemEncryptor" + m_DynamoDbItemEncryptorUtil "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbItemEncryptorUtil" + m_DynamoDbMiddlewareSupport "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbMiddlewareSupport" + m_DynamoDbNormalizeNumber "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbNormalizeNumber" + m_DynamoDbUpdateExpr "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbUpdateExpr" + m_DynamoToStruct "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoToStruct" + m_GetItemTransform "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/GetItemTransform" + m_InternalLegacyOverride "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/InternalLegacyOverride" + m__Maps "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/Maps_" + m_PutItemTransform "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/PutItemTransform" + m_QueryTransform "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/QueryTransform" + m_ScanTransform "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/ScanTransform" + m_SearchConfigToInfo "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/SearchConfigToInfo" + m_SearchableEncryptionInfo "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/SearchableEncryptionInfo" + m_Sets "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/Sets" + m_SortCanon "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/SortCanon" + m_StructuredEncryption "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryption" + m_StructuredEncryptionCrypt "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionCrypt" + m_StructuredEncryptionFooter "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionFooter" + m_StructuredEncryptionHeader "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionHeader" + m_StructuredEncryptionPaths "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionPaths" + m_StructuredEncryptionUtil "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionUtil" + m_TermLoc "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/TermLoc" + m_TransactGetItemsTransform "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/TransactGetItemsTransform" + m_TransactWriteItemsTransform "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/TransactWriteItemsTransform" + m_UpdateItemTransform "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/UpdateItemTransform" + m__System "github.com/dafny-lang/DafnyRuntimeGo/v4/System_" + _dafny "github.com/dafny-lang/DafnyRuntimeGo/v4/dafny" +) + +var _ = os.Args +var _ _dafny.Dummy__ +var _ m__System.Dummy__ +var _ m_Wrappers.Dummy__ +var _ m_BoundedInts.Dummy__ +var _ m_StandardLibrary_UInt.Dummy__ +var _ m_StandardLibrary_Sequence.Dummy__ +var _ m_StandardLibrary_String.Dummy__ +var _ m_StandardLibrary.Dummy__ +var _ m_AwsCryptographyPrimitivesTypes.Dummy__ +var _ m_Random.Dummy__ +var _ m_Digest.Dummy__ +var _ m_WrappedHMAC.Dummy__ +var _ m_HKDF.Dummy__ +var _ m_WrappedHKDF.Dummy__ +var _ m_KdfCtr.Dummy__ +var _ m_AwsCryptographyPrimitivesOperations.Dummy__ +var _ m_AtomicPrimitives.Dummy__ +var _ m_ComAmazonawsDynamodbTypes.Dummy__ +var _ m_ComAmazonawsKmsTypes.Dummy__ +var _ m_AwsCryptographyKeyStoreTypes.Dummy__ +var _ m_AwsCryptographyMaterialProvidersTypes.Dummy__ +var _ m_Base64.Dummy__ +var _ m_AlgorithmSuites.Dummy__ +var _ m_Materials.Dummy__ +var _ m_Keyring.Dummy__ +var _ m_Relations.Dummy__ +var _ m_Seq_MergeSort.Dummy__ +var _ m__Math.Dummy__ +var _ m_Seq.Dummy__ +var _ m_MultiKeyring.Dummy__ +var _ m_AwsArnParsing.Dummy__ +var _ m_AwsKmsMrkAreUnique.Dummy__ +var _ m_Actions.Dummy__ +var _ m_AwsKmsMrkMatchForDecrypt.Dummy__ +var _ m_AwsKmsUtils.Dummy__ +var _ m_Constants.Dummy__ +var _ m_MaterialWrapping.Dummy__ +var _ m_CanonicalEncryptionContext.Dummy__ +var _ m_IntermediateKeyWrapping.Dummy__ +var _ m_EdkWrapping.Dummy__ +var _ m_ErrorMessages.Dummy__ +var _ m_AwsKmsKeyring.Dummy__ +var _ m_StrictMultiKeyring.Dummy__ +var _ m_AwsKmsDiscoveryKeyring.Dummy__ +var _ m_Com_Amazonaws_Kms.Dummy__ +var _ m_Com_Amazonaws_Dynamodb.Dummy__ +var _ m_DiscoveryMultiKeyring.Dummy__ +var _ m_AwsKmsMrkDiscoveryKeyring.Dummy__ +var _ m_MrkAwareDiscoveryMultiKeyring.Dummy__ +var _ m_AwsKmsMrkKeyring.Dummy__ +var _ m_MrkAwareStrictMultiKeyring.Dummy__ +var _ m_LocalCMC.Dummy__ +var _ m_SynchronizedLocalCMC.Dummy__ +var _ m_StormTracker.Dummy__ +var _ m_StormTrackingCMC.Dummy__ +var _ m_CacheConstants.Dummy__ +var _ m_AwsKmsHierarchicalKeyring.Dummy__ +var _ m_AwsKmsRsaKeyring.Dummy__ +var _ m_EcdhEdkWrapping.Dummy__ +var _ m_RawECDHKeyring.Dummy__ +var _ m_AwsKmsEcdhKeyring.Dummy__ +var _ m_RawAESKeyring.Dummy__ +var _ m_RawRSAKeyring.Dummy__ +var _ m_CMM.Dummy__ +var _ m_Defaults.Dummy__ +var _ m_Commitment.Dummy__ +var _ m_DefaultCMM.Dummy__ +var _ m_DefaultClientSupplier.Dummy__ +var _ m_Utils.Dummy__ +var _ m_RequiredEncryptionContextCMM.Dummy__ +var _ m_AwsCryptographyMaterialProvidersOperations.Dummy__ +var _ m_MaterialProviders.Dummy__ +var _ m_KeyStoreErrorMessages.Dummy__ +var _ m_KmsArn.Dummy__ +var _ m_Structure.Dummy__ +var _ m_KMSKeystoreOperations.Dummy__ +var _ m_DDBKeystoreOperations.Dummy__ +var _ m_CreateKeys.Dummy__ +var _ m_CreateKeyStoreTable.Dummy__ +var _ m_GetKeys.Dummy__ +var _ m_AwsCryptographyKeyStoreOperations.Dummy__ +var _ m_KeyStore.Dummy__ +var _ m__Unicode.Dummy__ +var _ m_Functions.Dummy__ +var _ m_Utf8EncodingForm.Dummy__ +var _ m_Utf16EncodingForm.Dummy__ +var _ m_UnicodeStrings.Dummy__ +var _ m_FileIO.Dummy__ +var _ m_GeneralInternals.Dummy__ +var _ m_MulInternalsNonlinear.Dummy__ +var _ m_MulInternals.Dummy__ +var _ m_Mul.Dummy__ +var _ m_ModInternalsNonlinear.Dummy__ +var _ m_DivInternalsNonlinear.Dummy__ +var _ m_ModInternals.Dummy__ +var _ m_DivInternals.Dummy__ +var _ m_DivMod.Dummy__ +var _ m_Power.Dummy__ +var _ m_Logarithm.Dummy__ +var _ m_StandardLibraryInterop.Dummy__ +var _ m_Streams.Dummy__ +var _ m_Sorting.Dummy__ +var _ m_HexStrings.Dummy__ +var _ m_GetOpt.Dummy__ +var _ m_FloatCompare.Dummy__ +var _ m_Base64Lemmas.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Dummy__ +var _ m_StructuredEncryptionUtil.Dummy__ +var _ m_Sets.Dummy__ +var _ m_StructuredEncryptionPaths.Dummy__ +var _ m_StructuredEncryptionHeader.Dummy__ +var _ m_StructuredEncryptionFooter.Dummy__ +var _ m_SortCanon.Dummy__ +var _ m_Canonize.Dummy__ +var _ m_StructuredEncryptionCrypt.Dummy__ +var _ m__Maps.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkStructuredEncryptionOperations.Dummy__ +var _ m_StructuredEncryption.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Dummy__ +var _ m_DynamoDbEncryptionUtil.Dummy__ +var _ m_DynamoDbNormalizeNumber.Dummy__ +var _ m_DynamoToStruct.Dummy__ +var _ m_DynamoDbItemEncryptorUtil.Dummy__ +var _ m_InternalLegacyOverride.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorOperations.Dummy__ +var _ m_DynamoDbItemEncryptor.Dummy__ +var _ m_DynamoDbEncryptionBranchKeyIdSupplier.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkDynamoDbOperations.Dummy__ +var _ m_DynamoDbEncryption.Dummy__ +var _ m_TermLoc.Dummy__ +var _ m_DdbVirtualFields.Dummy__ +var _ m_DynamoDbUpdateExpr.Dummy__ +var _ m_BaseBeacon.Dummy__ +var _ m_CompoundBeacon.Dummy__ +var _ m_SearchableEncryptionInfo.Dummy__ +var _ m_DynamoDBFilterExpr.Dummy__ +var _ m_DynamoDBSupport.Dummy__ +var _ m_SearchConfigToInfo.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Dummy__ +var _ m_DdbMiddlewareConfig.Dummy__ +var _ m_DdbStatement.Dummy__ +var _ m_DynamoDbMiddlewareSupport.Dummy__ +var _ m_PutItemTransform.Dummy__ +var _ m_GetItemTransform.Dummy__ +var _ m_UpdateItemTransform.Dummy__ +var _ m_BatchWriteItemTransform.Dummy__ +var _ m_TransactWriteItemsTransform.Dummy__ +var _ m_BatchGetItemTransform.Dummy__ +var _ m_ScanTransform.Dummy__ +var _ m_QueryTransform.Dummy__ +var _ m_TransactGetItemsTransform.Dummy__ +var _ m_DeleteItemTransform.Dummy__ + +type Dummy__ struct{} + +// Definition of class Default__ +type Default__ struct { + dummy byte +} + +func New_Default___() *Default__ { + _this := Default__{} + + return &_this +} + +type CompanionStruct_Default___ struct { +} + +var Companion_Default___ = CompanionStruct_Default___{} + +func (_this *Default__) Equals(other *Default__) bool { + return _this == other +} + +func (_this *Default__) EqualsGeneric(x interface{}) bool { + other, ok := x.(*Default__) + return ok && _this.Equals(other) +} + +func (*Default__) String() string { + return "ExecuteStatementTransform.Default__" +} +func (_this *Default__) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = &Default__{} + +func (_static *CompanionStruct_Default___) Input(config m_DdbMiddlewareConfig.Config, input m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.ExecuteStatementInputTransformInput) m_Wrappers.Result { + var output m_Wrappers.Result = m_Wrappers.Result{} + _ = output + var _0_valueOrError0 m_Wrappers.Result = m_Wrappers.Result{} + _ = _0_valueOrError0 + _0_valueOrError0 = m_DdbMiddlewareConfig.Companion_Default___.MapString(m_DdbStatement.Companion_Default___.TableFromStatement(((input).Dtor_sdkInput()).Dtor_Statement())) + if (_0_valueOrError0).IsFailure() { + output = (_0_valueOrError0).PropagateFailure() + return output + } + var _1_tableName _dafny.Sequence + _ = _1_tableName + _1_tableName = (_0_valueOrError0).Extract().(_dafny.Sequence) + if ((config).Dtor_tableEncryptionConfigs()).Contains(_1_tableName) { + output = m_DdbMiddlewareConfig.Companion_Default___.MakeError(_dafny.SeqOfString("ExecuteStatement not Supported on encrypted tables.")) + return output + } else { + output = m_Wrappers.Companion_Result_.Create_Success_(m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_ExecuteStatementInputTransformOutput_.Create_ExecuteStatementInputTransformOutput_((input).Dtor_sdkInput())) + return output + } + return output +} +func (_static *CompanionStruct_Default___) Output(config m_DdbMiddlewareConfig.Config, input m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.ExecuteStatementOutputTransformInput) m_Wrappers.Result { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_ExecuteStatementOutputTransformOutput_.Default()) + _ = output + output = m_Wrappers.Companion_Result_.Create_Success_(m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_ExecuteStatementOutputTransformOutput_.Create_ExecuteStatementOutputTransformOutput_((input).Dtor_sdkOutput())) + return output + return output +} + +// End of class Default__ diff --git a/customer-preview/ddb-esdk/ExecuteTransactionTransform/ExecuteTransactionTransform.go b/customer-preview/ddb-esdk/ExecuteTransactionTransform/ExecuteTransactionTransform.go new file mode 100644 index 000000000..b554187bb --- /dev/null +++ b/customer-preview/ddb-esdk/ExecuteTransactionTransform/ExecuteTransactionTransform.go @@ -0,0 +1,392 @@ +// Package ExecuteTransactionTransform +// Dafny module ExecuteTransactionTransform compiled into Go + +package ExecuteTransactionTransform + +import ( + os "os" + + m_ComAmazonawsDynamodbTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/ComAmazonawsDynamodbTypes" + m_Com_Amazonaws_Dynamodb "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/Com_Amazonaws_Dynamodb" + m_ComAmazonawsKmsTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/ComAmazonawsKmsTypes" + m_Com_Amazonaws_Kms "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/Com_Amazonaws_Kms" + m_AlgorithmSuites "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AlgorithmSuites" + m_AwsArnParsing "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsArnParsing" + m_AwsCryptographyKeyStoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreOperations" + m_AwsCryptographyKeyStoreTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreTypes" + m_AwsCryptographyMaterialProvidersOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersOperations" + m_AwsCryptographyMaterialProvidersTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersTypes" + m_AwsKmsDiscoveryKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsDiscoveryKeyring" + m_AwsKmsEcdhKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsEcdhKeyring" + m_AwsKmsHierarchicalKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsHierarchicalKeyring" + m_AwsKmsKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsKeyring" + m_AwsKmsMrkAreUnique "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkAreUnique" + m_AwsKmsMrkDiscoveryKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkDiscoveryKeyring" + m_AwsKmsMrkKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkKeyring" + m_AwsKmsMrkMatchForDecrypt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkMatchForDecrypt" + m_AwsKmsRsaKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsRsaKeyring" + m_AwsKmsUtils "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsUtils" + m_CMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CMM" + m_CacheConstants "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CacheConstants" + m_CanonicalEncryptionContext "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CanonicalEncryptionContext" + m_Commitment "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Commitment" + m_Constants "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Constants" + m_CreateKeyStoreTable "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeyStoreTable" + m_CreateKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeys" + m_DDBKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DDBKeystoreOperations" + m_DefaultCMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DefaultCMM" + m_DefaultClientSupplier "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DefaultClientSupplier" + m_Defaults "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Defaults" + m_DiscoveryMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DiscoveryMultiKeyring" + m_EcdhEdkWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/EcdhEdkWrapping" + m_EdkWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/EdkWrapping" + m_ErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/ErrorMessages" + m_GetKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/GetKeys" + m_IntermediateKeyWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/IntermediateKeyWrapping" + m_KMSKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KMSKeystoreOperations" + m_KeyStore "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStore" + m_KeyStoreErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStoreErrorMessages" + m_Keyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Keyring" + m_KmsArn "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KmsArn" + m_LocalCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/LocalCMC" + m_MaterialProviders "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MaterialProviders" + m_MaterialWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MaterialWrapping" + m_Materials "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Materials" + m_MrkAwareDiscoveryMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MrkAwareDiscoveryMultiKeyring" + m_MrkAwareStrictMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MrkAwareStrictMultiKeyring" + m_MultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MultiKeyring" + m_RawAESKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawAESKeyring" + m_RawECDHKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawECDHKeyring" + m_RawRSAKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawRSAKeyring" + m_RequiredEncryptionContextCMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RequiredEncryptionContextCMM" + m_StormTracker "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StormTracker" + m_StormTrackingCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StormTrackingCMC" + m_StrictMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StrictMultiKeyring" + m_Structure "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Structure" + m_SynchronizedLocalCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/SynchronizedLocalCMC" + m_Utils "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Utils" + m_AtomicPrimitives "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AtomicPrimitives" + m_AwsCryptographyPrimitivesOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesOperations" + m_AwsCryptographyPrimitivesTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesTypes" + m_Digest "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Digest" + m_HKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/HKDF" + m_KdfCtr "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/KdfCtr" + m_Random "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Random" + m_WrappedHKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHKDF" + m_WrappedHMAC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHMAC" + m_Actions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Actions" + m_Base64 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64" + m_Base64Lemmas "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64Lemmas" + m_BoundedInts "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/BoundedInts" + m_DivInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternals" + m_DivInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternalsNonlinear" + m_DivMod "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivMod" + m_FileIO "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FileIO" + m_FloatCompare "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FloatCompare" + m_Functions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Functions" + m_GeneralInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GeneralInternals" + m_GetOpt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GetOpt" + m_HexStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/HexStrings" + m_Logarithm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Logarithm" + m__Math "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Math_" + m_ModInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternals" + m_ModInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternalsNonlinear" + m_Mul "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Mul" + m_MulInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternals" + m_MulInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternalsNonlinear" + m_Power "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Power" + m_Relations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Relations" + m_Seq "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq" + m_Seq_MergeSort "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq_MergeSort" + m_Sorting "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Sorting" + m_StandardLibrary "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary" + m_StandardLibraryInterop "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibraryInterop" + m_StandardLibrary_Sequence "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_Sequence" + m_StandardLibrary_String "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_String" + m_StandardLibrary_UInt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_UInt" + m_Streams "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Streams" + m_UnicodeStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UnicodeStrings" + m__Unicode "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Unicode_" + m_Utf16EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf16EncodingForm" + m_Utf8EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf8EncodingForm" + m_Wrappers "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers" + m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorOperations "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorOperations" + m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes" + m_AwsCryptographyDbEncryptionSdkDynamoDbOperations "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbOperations" + m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes" + m_AwsCryptographyDbEncryptionSdkDynamoDbTypes "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbTypes" + m_AwsCryptographyDbEncryptionSdkStructuredEncryptionOperations "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkStructuredEncryptionOperations" + m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes" + m_BaseBeacon "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/BaseBeacon" + m_BatchExecuteStatementTransform "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/BatchExecuteStatementTransform" + m_BatchGetItemTransform "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/BatchGetItemTransform" + m_BatchWriteItemTransform "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/BatchWriteItemTransform" + m_Canonize "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/Canonize" + m_CompoundBeacon "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/CompoundBeacon" + m_DdbMiddlewareConfig "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DdbMiddlewareConfig" + m_DdbStatement "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DdbStatement" + m_DdbVirtualFields "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DdbVirtualFields" + m_DeleteItemTransform "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DeleteItemTransform" + m_DynamoDBFilterExpr "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDBFilterExpr" + m_DynamoDBSupport "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDBSupport" + m_DynamoDbEncryption "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbEncryption" + m_DynamoDbEncryptionBranchKeyIdSupplier "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbEncryptionBranchKeyIdSupplier" + m_DynamoDbEncryptionUtil "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbEncryptionUtil" + m_DynamoDbItemEncryptor "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbItemEncryptor" + m_DynamoDbItemEncryptorUtil "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbItemEncryptorUtil" + m_DynamoDbMiddlewareSupport "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbMiddlewareSupport" + m_DynamoDbNormalizeNumber "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbNormalizeNumber" + m_DynamoDbUpdateExpr "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbUpdateExpr" + m_DynamoToStruct "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoToStruct" + m_ExecuteStatementTransform "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/ExecuteStatementTransform" + m_GetItemTransform "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/GetItemTransform" + m_InternalLegacyOverride "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/InternalLegacyOverride" + m__Maps "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/Maps_" + m_PutItemTransform "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/PutItemTransform" + m_QueryTransform "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/QueryTransform" + m_ScanTransform "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/ScanTransform" + m_SearchConfigToInfo "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/SearchConfigToInfo" + m_SearchableEncryptionInfo "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/SearchableEncryptionInfo" + m_Sets "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/Sets" + m_SortCanon "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/SortCanon" + m_StructuredEncryption "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryption" + m_StructuredEncryptionCrypt "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionCrypt" + m_StructuredEncryptionFooter "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionFooter" + m_StructuredEncryptionHeader "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionHeader" + m_StructuredEncryptionPaths "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionPaths" + m_StructuredEncryptionUtil "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionUtil" + m_TermLoc "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/TermLoc" + m_TransactGetItemsTransform "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/TransactGetItemsTransform" + m_TransactWriteItemsTransform "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/TransactWriteItemsTransform" + m_UpdateItemTransform "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/UpdateItemTransform" + m__System "github.com/dafny-lang/DafnyRuntimeGo/v4/System_" + _dafny "github.com/dafny-lang/DafnyRuntimeGo/v4/dafny" +) + +var _ = os.Args +var _ _dafny.Dummy__ +var _ m__System.Dummy__ +var _ m_Wrappers.Dummy__ +var _ m_BoundedInts.Dummy__ +var _ m_StandardLibrary_UInt.Dummy__ +var _ m_StandardLibrary_Sequence.Dummy__ +var _ m_StandardLibrary_String.Dummy__ +var _ m_StandardLibrary.Dummy__ +var _ m_AwsCryptographyPrimitivesTypes.Dummy__ +var _ m_Random.Dummy__ +var _ m_Digest.Dummy__ +var _ m_WrappedHMAC.Dummy__ +var _ m_HKDF.Dummy__ +var _ m_WrappedHKDF.Dummy__ +var _ m_KdfCtr.Dummy__ +var _ m_AwsCryptographyPrimitivesOperations.Dummy__ +var _ m_AtomicPrimitives.Dummy__ +var _ m_ComAmazonawsDynamodbTypes.Dummy__ +var _ m_ComAmazonawsKmsTypes.Dummy__ +var _ m_AwsCryptographyKeyStoreTypes.Dummy__ +var _ m_AwsCryptographyMaterialProvidersTypes.Dummy__ +var _ m_Base64.Dummy__ +var _ m_AlgorithmSuites.Dummy__ +var _ m_Materials.Dummy__ +var _ m_Keyring.Dummy__ +var _ m_Relations.Dummy__ +var _ m_Seq_MergeSort.Dummy__ +var _ m__Math.Dummy__ +var _ m_Seq.Dummy__ +var _ m_MultiKeyring.Dummy__ +var _ m_AwsArnParsing.Dummy__ +var _ m_AwsKmsMrkAreUnique.Dummy__ +var _ m_Actions.Dummy__ +var _ m_AwsKmsMrkMatchForDecrypt.Dummy__ +var _ m_AwsKmsUtils.Dummy__ +var _ m_Constants.Dummy__ +var _ m_MaterialWrapping.Dummy__ +var _ m_CanonicalEncryptionContext.Dummy__ +var _ m_IntermediateKeyWrapping.Dummy__ +var _ m_EdkWrapping.Dummy__ +var _ m_ErrorMessages.Dummy__ +var _ m_AwsKmsKeyring.Dummy__ +var _ m_StrictMultiKeyring.Dummy__ +var _ m_AwsKmsDiscoveryKeyring.Dummy__ +var _ m_Com_Amazonaws_Kms.Dummy__ +var _ m_Com_Amazonaws_Dynamodb.Dummy__ +var _ m_DiscoveryMultiKeyring.Dummy__ +var _ m_AwsKmsMrkDiscoveryKeyring.Dummy__ +var _ m_MrkAwareDiscoveryMultiKeyring.Dummy__ +var _ m_AwsKmsMrkKeyring.Dummy__ +var _ m_MrkAwareStrictMultiKeyring.Dummy__ +var _ m_LocalCMC.Dummy__ +var _ m_SynchronizedLocalCMC.Dummy__ +var _ m_StormTracker.Dummy__ +var _ m_StormTrackingCMC.Dummy__ +var _ m_CacheConstants.Dummy__ +var _ m_AwsKmsHierarchicalKeyring.Dummy__ +var _ m_AwsKmsRsaKeyring.Dummy__ +var _ m_EcdhEdkWrapping.Dummy__ +var _ m_RawECDHKeyring.Dummy__ +var _ m_AwsKmsEcdhKeyring.Dummy__ +var _ m_RawAESKeyring.Dummy__ +var _ m_RawRSAKeyring.Dummy__ +var _ m_CMM.Dummy__ +var _ m_Defaults.Dummy__ +var _ m_Commitment.Dummy__ +var _ m_DefaultCMM.Dummy__ +var _ m_DefaultClientSupplier.Dummy__ +var _ m_Utils.Dummy__ +var _ m_RequiredEncryptionContextCMM.Dummy__ +var _ m_AwsCryptographyMaterialProvidersOperations.Dummy__ +var _ m_MaterialProviders.Dummy__ +var _ m_KeyStoreErrorMessages.Dummy__ +var _ m_KmsArn.Dummy__ +var _ m_Structure.Dummy__ +var _ m_KMSKeystoreOperations.Dummy__ +var _ m_DDBKeystoreOperations.Dummy__ +var _ m_CreateKeys.Dummy__ +var _ m_CreateKeyStoreTable.Dummy__ +var _ m_GetKeys.Dummy__ +var _ m_AwsCryptographyKeyStoreOperations.Dummy__ +var _ m_KeyStore.Dummy__ +var _ m__Unicode.Dummy__ +var _ m_Functions.Dummy__ +var _ m_Utf8EncodingForm.Dummy__ +var _ m_Utf16EncodingForm.Dummy__ +var _ m_UnicodeStrings.Dummy__ +var _ m_FileIO.Dummy__ +var _ m_GeneralInternals.Dummy__ +var _ m_MulInternalsNonlinear.Dummy__ +var _ m_MulInternals.Dummy__ +var _ m_Mul.Dummy__ +var _ m_ModInternalsNonlinear.Dummy__ +var _ m_DivInternalsNonlinear.Dummy__ +var _ m_ModInternals.Dummy__ +var _ m_DivInternals.Dummy__ +var _ m_DivMod.Dummy__ +var _ m_Power.Dummy__ +var _ m_Logarithm.Dummy__ +var _ m_StandardLibraryInterop.Dummy__ +var _ m_Streams.Dummy__ +var _ m_Sorting.Dummy__ +var _ m_HexStrings.Dummy__ +var _ m_GetOpt.Dummy__ +var _ m_FloatCompare.Dummy__ +var _ m_Base64Lemmas.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Dummy__ +var _ m_StructuredEncryptionUtil.Dummy__ +var _ m_Sets.Dummy__ +var _ m_StructuredEncryptionPaths.Dummy__ +var _ m_StructuredEncryptionHeader.Dummy__ +var _ m_StructuredEncryptionFooter.Dummy__ +var _ m_SortCanon.Dummy__ +var _ m_Canonize.Dummy__ +var _ m_StructuredEncryptionCrypt.Dummy__ +var _ m__Maps.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkStructuredEncryptionOperations.Dummy__ +var _ m_StructuredEncryption.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Dummy__ +var _ m_DynamoDbEncryptionUtil.Dummy__ +var _ m_DynamoDbNormalizeNumber.Dummy__ +var _ m_DynamoToStruct.Dummy__ +var _ m_DynamoDbItemEncryptorUtil.Dummy__ +var _ m_InternalLegacyOverride.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorOperations.Dummy__ +var _ m_DynamoDbItemEncryptor.Dummy__ +var _ m_DynamoDbEncryptionBranchKeyIdSupplier.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkDynamoDbOperations.Dummy__ +var _ m_DynamoDbEncryption.Dummy__ +var _ m_TermLoc.Dummy__ +var _ m_DdbVirtualFields.Dummy__ +var _ m_DynamoDbUpdateExpr.Dummy__ +var _ m_BaseBeacon.Dummy__ +var _ m_CompoundBeacon.Dummy__ +var _ m_SearchableEncryptionInfo.Dummy__ +var _ m_DynamoDBFilterExpr.Dummy__ +var _ m_DynamoDBSupport.Dummy__ +var _ m_SearchConfigToInfo.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Dummy__ +var _ m_DdbMiddlewareConfig.Dummy__ +var _ m_DdbStatement.Dummy__ +var _ m_DynamoDbMiddlewareSupport.Dummy__ +var _ m_PutItemTransform.Dummy__ +var _ m_GetItemTransform.Dummy__ +var _ m_UpdateItemTransform.Dummy__ +var _ m_BatchWriteItemTransform.Dummy__ +var _ m_TransactWriteItemsTransform.Dummy__ +var _ m_BatchGetItemTransform.Dummy__ +var _ m_ScanTransform.Dummy__ +var _ m_QueryTransform.Dummy__ +var _ m_TransactGetItemsTransform.Dummy__ +var _ m_DeleteItemTransform.Dummy__ +var _ m_ExecuteStatementTransform.Dummy__ +var _ m_BatchExecuteStatementTransform.Dummy__ + +type Dummy__ struct{} + +// Definition of class Default__ +type Default__ struct { + dummy byte +} + +func New_Default___() *Default__ { + _this := Default__{} + + return &_this +} + +type CompanionStruct_Default___ struct { +} + +var Companion_Default___ = CompanionStruct_Default___{} + +func (_this *Default__) Equals(other *Default__) bool { + return _this == other +} + +func (_this *Default__) EqualsGeneric(x interface{}) bool { + other, ok := x.(*Default__) + return ok && _this.Equals(other) +} + +func (*Default__) String() string { + return "ExecuteTransactionTransform.Default__" +} +func (_this *Default__) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = &Default__{} + +func (_static *CompanionStruct_Default___) Input(config m_DdbMiddlewareConfig.Config, input m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.ExecuteTransactionInputTransformInput) m_Wrappers.Result { + var output m_Wrappers.Result = m_Wrappers.Result{} + _ = output + var _hi0 _dafny.Int = _dafny.IntOfUint32((((input).Dtor_sdkInput()).Dtor_TransactStatements()).Cardinality()) + _ = _hi0 + for _0_i := _dafny.Zero; _0_i.Cmp(_hi0) < 0; _0_i = _0_i.Plus(_dafny.One) { + var _1_statement _dafny.Sequence + _ = _1_statement + _1_statement = ((((input).Dtor_sdkInput()).Dtor_TransactStatements()).Select((_0_i).Uint32()).(m_ComAmazonawsDynamodbTypes.ParameterizedStatement)).Dtor_Statement() + var _2_tableName m_Wrappers.Result + _ = _2_tableName + _2_tableName = m_DdbStatement.Companion_Default___.TableFromStatement(_1_statement) + if (_2_tableName).Is_Failure() { + output = m_Wrappers.Companion_Result_.Create_Failure_(m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_Error_.Create_DynamoDbEncryptionTransformsException_((_2_tableName).Dtor_error().(_dafny.Sequence))) + return output + } + if ((config).Dtor_tableEncryptionConfigs()).Contains((_2_tableName).Dtor_value().(_dafny.Sequence)) { + output = m_DdbMiddlewareConfig.Companion_Default___.MakeError(_dafny.SeqOfString("ExecuteTransaction not Supported on encrypted tables.")) + return output + } + } + output = m_Wrappers.Companion_Result_.Create_Success_(m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_ExecuteTransactionInputTransformOutput_.Create_ExecuteTransactionInputTransformOutput_((input).Dtor_sdkInput())) + return output + return output +} +func (_static *CompanionStruct_Default___) Output(config m_DdbMiddlewareConfig.Config, input m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.ExecuteTransactionOutputTransformInput) m_Wrappers.Result { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_ExecuteTransactionOutputTransformOutput_.Default()) + _ = output + output = m_Wrappers.Companion_Result_.Create_Success_(m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_ExecuteTransactionOutputTransformOutput_.Create_ExecuteTransactionOutputTransformOutput_((input).Dtor_sdkOutput())) + return output + return output +} + +// End of class Default__ diff --git a/customer-preview/ddb-esdk/GetItemTransform/GetItemTransform.go b/customer-preview/ddb-esdk/GetItemTransform/GetItemTransform.go new file mode 100644 index 000000000..1af1c6c6b --- /dev/null +++ b/customer-preview/ddb-esdk/GetItemTransform/GetItemTransform.go @@ -0,0 +1,398 @@ +// Package GetItemTransform +// Dafny module GetItemTransform compiled into Go + +package GetItemTransform + +import ( + os "os" + + m_ComAmazonawsDynamodbTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/ComAmazonawsDynamodbTypes" + m_Com_Amazonaws_Dynamodb "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/Com_Amazonaws_Dynamodb" + m_ComAmazonawsKmsTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/ComAmazonawsKmsTypes" + m_Com_Amazonaws_Kms "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/Com_Amazonaws_Kms" + m_AlgorithmSuites "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AlgorithmSuites" + m_AwsArnParsing "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsArnParsing" + m_AwsCryptographyKeyStoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreOperations" + m_AwsCryptographyKeyStoreTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreTypes" + m_AwsCryptographyMaterialProvidersOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersOperations" + m_AwsCryptographyMaterialProvidersTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersTypes" + m_AwsKmsDiscoveryKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsDiscoveryKeyring" + m_AwsKmsEcdhKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsEcdhKeyring" + m_AwsKmsHierarchicalKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsHierarchicalKeyring" + m_AwsKmsKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsKeyring" + m_AwsKmsMrkAreUnique "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkAreUnique" + m_AwsKmsMrkDiscoveryKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkDiscoveryKeyring" + m_AwsKmsMrkKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkKeyring" + m_AwsKmsMrkMatchForDecrypt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkMatchForDecrypt" + m_AwsKmsRsaKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsRsaKeyring" + m_AwsKmsUtils "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsUtils" + m_CMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CMM" + m_CacheConstants "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CacheConstants" + m_CanonicalEncryptionContext "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CanonicalEncryptionContext" + m_Commitment "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Commitment" + m_Constants "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Constants" + m_CreateKeyStoreTable "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeyStoreTable" + m_CreateKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeys" + m_DDBKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DDBKeystoreOperations" + m_DefaultCMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DefaultCMM" + m_DefaultClientSupplier "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DefaultClientSupplier" + m_Defaults "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Defaults" + m_DiscoveryMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DiscoveryMultiKeyring" + m_EcdhEdkWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/EcdhEdkWrapping" + m_EdkWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/EdkWrapping" + m_ErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/ErrorMessages" + m_GetKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/GetKeys" + m_IntermediateKeyWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/IntermediateKeyWrapping" + m_KMSKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KMSKeystoreOperations" + m_KeyStore "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStore" + m_KeyStoreErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStoreErrorMessages" + m_Keyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Keyring" + m_KmsArn "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KmsArn" + m_LocalCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/LocalCMC" + m_MaterialProviders "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MaterialProviders" + m_MaterialWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MaterialWrapping" + m_Materials "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Materials" + m_MrkAwareDiscoveryMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MrkAwareDiscoveryMultiKeyring" + m_MrkAwareStrictMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MrkAwareStrictMultiKeyring" + m_MultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MultiKeyring" + m_RawAESKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawAESKeyring" + m_RawECDHKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawECDHKeyring" + m_RawRSAKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawRSAKeyring" + m_RequiredEncryptionContextCMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RequiredEncryptionContextCMM" + m_StormTracker "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StormTracker" + m_StormTrackingCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StormTrackingCMC" + m_StrictMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StrictMultiKeyring" + m_Structure "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Structure" + m_SynchronizedLocalCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/SynchronizedLocalCMC" + m_Utils "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Utils" + m_AtomicPrimitives "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AtomicPrimitives" + m_AwsCryptographyPrimitivesOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesOperations" + m_AwsCryptographyPrimitivesTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesTypes" + m_Digest "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Digest" + m_HKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/HKDF" + m_KdfCtr "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/KdfCtr" + m_Random "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Random" + m_WrappedHKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHKDF" + m_WrappedHMAC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHMAC" + m_Actions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Actions" + m_Base64 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64" + m_Base64Lemmas "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64Lemmas" + m_BoundedInts "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/BoundedInts" + m_DivInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternals" + m_DivInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternalsNonlinear" + m_DivMod "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivMod" + m_FileIO "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FileIO" + m_FloatCompare "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FloatCompare" + m_Functions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Functions" + m_GeneralInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GeneralInternals" + m_GetOpt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GetOpt" + m_HexStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/HexStrings" + m_Logarithm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Logarithm" + m__Math "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Math_" + m_ModInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternals" + m_ModInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternalsNonlinear" + m_Mul "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Mul" + m_MulInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternals" + m_MulInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternalsNonlinear" + m_Power "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Power" + m_Relations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Relations" + m_Seq "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq" + m_Seq_MergeSort "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq_MergeSort" + m_Sorting "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Sorting" + m_StandardLibrary "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary" + m_StandardLibraryInterop "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibraryInterop" + m_StandardLibrary_Sequence "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_Sequence" + m_StandardLibrary_String "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_String" + m_StandardLibrary_UInt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_UInt" + m_Streams "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Streams" + m_UnicodeStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UnicodeStrings" + m__Unicode "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Unicode_" + m_Utf16EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf16EncodingForm" + m_Utf8EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf8EncodingForm" + m_Wrappers "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers" + m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorOperations "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorOperations" + m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes" + m_AwsCryptographyDbEncryptionSdkDynamoDbOperations "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbOperations" + m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes" + m_AwsCryptographyDbEncryptionSdkDynamoDbTypes "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbTypes" + m_AwsCryptographyDbEncryptionSdkStructuredEncryptionOperations "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkStructuredEncryptionOperations" + m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes" + m_BaseBeacon "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/BaseBeacon" + m_Canonize "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/Canonize" + m_CompoundBeacon "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/CompoundBeacon" + m_DdbMiddlewareConfig "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DdbMiddlewareConfig" + m_DdbStatement "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DdbStatement" + m_DdbVirtualFields "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DdbVirtualFields" + m_DynamoDBFilterExpr "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDBFilterExpr" + m_DynamoDBSupport "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDBSupport" + m_DynamoDbEncryption "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbEncryption" + m_DynamoDbEncryptionBranchKeyIdSupplier "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbEncryptionBranchKeyIdSupplier" + m_DynamoDbEncryptionUtil "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbEncryptionUtil" + m_DynamoDbItemEncryptor "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbItemEncryptor" + m_DynamoDbItemEncryptorUtil "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbItemEncryptorUtil" + m_DynamoDbMiddlewareSupport "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbMiddlewareSupport" + m_DynamoDbNormalizeNumber "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbNormalizeNumber" + m_DynamoDbUpdateExpr "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbUpdateExpr" + m_DynamoToStruct "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoToStruct" + m_InternalLegacyOverride "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/InternalLegacyOverride" + m__Maps "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/Maps_" + m_PutItemTransform "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/PutItemTransform" + m_SearchConfigToInfo "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/SearchConfigToInfo" + m_SearchableEncryptionInfo "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/SearchableEncryptionInfo" + m_Sets "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/Sets" + m_SortCanon "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/SortCanon" + m_StructuredEncryption "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryption" + m_StructuredEncryptionCrypt "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionCrypt" + m_StructuredEncryptionFooter "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionFooter" + m_StructuredEncryptionHeader "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionHeader" + m_StructuredEncryptionPaths "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionPaths" + m_StructuredEncryptionUtil "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionUtil" + m_TermLoc "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/TermLoc" + m__System "github.com/dafny-lang/DafnyRuntimeGo/v4/System_" + _dafny "github.com/dafny-lang/DafnyRuntimeGo/v4/dafny" +) + +var _ = os.Args +var _ _dafny.Dummy__ +var _ m__System.Dummy__ +var _ m_Wrappers.Dummy__ +var _ m_BoundedInts.Dummy__ +var _ m_StandardLibrary_UInt.Dummy__ +var _ m_StandardLibrary_Sequence.Dummy__ +var _ m_StandardLibrary_String.Dummy__ +var _ m_StandardLibrary.Dummy__ +var _ m_AwsCryptographyPrimitivesTypes.Dummy__ +var _ m_Random.Dummy__ +var _ m_Digest.Dummy__ +var _ m_WrappedHMAC.Dummy__ +var _ m_HKDF.Dummy__ +var _ m_WrappedHKDF.Dummy__ +var _ m_KdfCtr.Dummy__ +var _ m_AwsCryptographyPrimitivesOperations.Dummy__ +var _ m_AtomicPrimitives.Dummy__ +var _ m_ComAmazonawsDynamodbTypes.Dummy__ +var _ m_ComAmazonawsKmsTypes.Dummy__ +var _ m_AwsCryptographyKeyStoreTypes.Dummy__ +var _ m_AwsCryptographyMaterialProvidersTypes.Dummy__ +var _ m_Base64.Dummy__ +var _ m_AlgorithmSuites.Dummy__ +var _ m_Materials.Dummy__ +var _ m_Keyring.Dummy__ +var _ m_Relations.Dummy__ +var _ m_Seq_MergeSort.Dummy__ +var _ m__Math.Dummy__ +var _ m_Seq.Dummy__ +var _ m_MultiKeyring.Dummy__ +var _ m_AwsArnParsing.Dummy__ +var _ m_AwsKmsMrkAreUnique.Dummy__ +var _ m_Actions.Dummy__ +var _ m_AwsKmsMrkMatchForDecrypt.Dummy__ +var _ m_AwsKmsUtils.Dummy__ +var _ m_Constants.Dummy__ +var _ m_MaterialWrapping.Dummy__ +var _ m_CanonicalEncryptionContext.Dummy__ +var _ m_IntermediateKeyWrapping.Dummy__ +var _ m_EdkWrapping.Dummy__ +var _ m_ErrorMessages.Dummy__ +var _ m_AwsKmsKeyring.Dummy__ +var _ m_StrictMultiKeyring.Dummy__ +var _ m_AwsKmsDiscoveryKeyring.Dummy__ +var _ m_Com_Amazonaws_Kms.Dummy__ +var _ m_Com_Amazonaws_Dynamodb.Dummy__ +var _ m_DiscoveryMultiKeyring.Dummy__ +var _ m_AwsKmsMrkDiscoveryKeyring.Dummy__ +var _ m_MrkAwareDiscoveryMultiKeyring.Dummy__ +var _ m_AwsKmsMrkKeyring.Dummy__ +var _ m_MrkAwareStrictMultiKeyring.Dummy__ +var _ m_LocalCMC.Dummy__ +var _ m_SynchronizedLocalCMC.Dummy__ +var _ m_StormTracker.Dummy__ +var _ m_StormTrackingCMC.Dummy__ +var _ m_CacheConstants.Dummy__ +var _ m_AwsKmsHierarchicalKeyring.Dummy__ +var _ m_AwsKmsRsaKeyring.Dummy__ +var _ m_EcdhEdkWrapping.Dummy__ +var _ m_RawECDHKeyring.Dummy__ +var _ m_AwsKmsEcdhKeyring.Dummy__ +var _ m_RawAESKeyring.Dummy__ +var _ m_RawRSAKeyring.Dummy__ +var _ m_CMM.Dummy__ +var _ m_Defaults.Dummy__ +var _ m_Commitment.Dummy__ +var _ m_DefaultCMM.Dummy__ +var _ m_DefaultClientSupplier.Dummy__ +var _ m_Utils.Dummy__ +var _ m_RequiredEncryptionContextCMM.Dummy__ +var _ m_AwsCryptographyMaterialProvidersOperations.Dummy__ +var _ m_MaterialProviders.Dummy__ +var _ m_KeyStoreErrorMessages.Dummy__ +var _ m_KmsArn.Dummy__ +var _ m_Structure.Dummy__ +var _ m_KMSKeystoreOperations.Dummy__ +var _ m_DDBKeystoreOperations.Dummy__ +var _ m_CreateKeys.Dummy__ +var _ m_CreateKeyStoreTable.Dummy__ +var _ m_GetKeys.Dummy__ +var _ m_AwsCryptographyKeyStoreOperations.Dummy__ +var _ m_KeyStore.Dummy__ +var _ m__Unicode.Dummy__ +var _ m_Functions.Dummy__ +var _ m_Utf8EncodingForm.Dummy__ +var _ m_Utf16EncodingForm.Dummy__ +var _ m_UnicodeStrings.Dummy__ +var _ m_FileIO.Dummy__ +var _ m_GeneralInternals.Dummy__ +var _ m_MulInternalsNonlinear.Dummy__ +var _ m_MulInternals.Dummy__ +var _ m_Mul.Dummy__ +var _ m_ModInternalsNonlinear.Dummy__ +var _ m_DivInternalsNonlinear.Dummy__ +var _ m_ModInternals.Dummy__ +var _ m_DivInternals.Dummy__ +var _ m_DivMod.Dummy__ +var _ m_Power.Dummy__ +var _ m_Logarithm.Dummy__ +var _ m_StandardLibraryInterop.Dummy__ +var _ m_Streams.Dummy__ +var _ m_Sorting.Dummy__ +var _ m_HexStrings.Dummy__ +var _ m_GetOpt.Dummy__ +var _ m_FloatCompare.Dummy__ +var _ m_Base64Lemmas.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Dummy__ +var _ m_StructuredEncryptionUtil.Dummy__ +var _ m_Sets.Dummy__ +var _ m_StructuredEncryptionPaths.Dummy__ +var _ m_StructuredEncryptionHeader.Dummy__ +var _ m_StructuredEncryptionFooter.Dummy__ +var _ m_SortCanon.Dummy__ +var _ m_Canonize.Dummy__ +var _ m_StructuredEncryptionCrypt.Dummy__ +var _ m__Maps.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkStructuredEncryptionOperations.Dummy__ +var _ m_StructuredEncryption.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Dummy__ +var _ m_DynamoDbEncryptionUtil.Dummy__ +var _ m_DynamoDbNormalizeNumber.Dummy__ +var _ m_DynamoToStruct.Dummy__ +var _ m_DynamoDbItemEncryptorUtil.Dummy__ +var _ m_InternalLegacyOverride.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorOperations.Dummy__ +var _ m_DynamoDbItemEncryptor.Dummy__ +var _ m_DynamoDbEncryptionBranchKeyIdSupplier.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkDynamoDbOperations.Dummy__ +var _ m_DynamoDbEncryption.Dummy__ +var _ m_TermLoc.Dummy__ +var _ m_DdbVirtualFields.Dummy__ +var _ m_DynamoDbUpdateExpr.Dummy__ +var _ m_BaseBeacon.Dummy__ +var _ m_CompoundBeacon.Dummy__ +var _ m_SearchableEncryptionInfo.Dummy__ +var _ m_DynamoDBFilterExpr.Dummy__ +var _ m_DynamoDBSupport.Dummy__ +var _ m_SearchConfigToInfo.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Dummy__ +var _ m_DdbMiddlewareConfig.Dummy__ +var _ m_DdbStatement.Dummy__ +var _ m_DynamoDbMiddlewareSupport.Dummy__ +var _ m_PutItemTransform.Dummy__ + +type Dummy__ struct{} + +// Definition of class Default__ +type Default__ struct { + dummy byte +} + +func New_Default___() *Default__ { + _this := Default__{} + + return &_this +} + +type CompanionStruct_Default___ struct { +} + +var Companion_Default___ = CompanionStruct_Default___{} + +func (_this *Default__) Equals(other *Default__) bool { + return _this == other +} + +func (_this *Default__) EqualsGeneric(x interface{}) bool { + other, ok := x.(*Default__) + return ok && _this.Equals(other) +} + +func (*Default__) String() string { + return "GetItemTransform.Default__" +} +func (_this *Default__) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = &Default__{} + +func (_static *CompanionStruct_Default___) Input(config m_DdbMiddlewareConfig.Config, input m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.GetItemInputTransformInput) m_Wrappers.Result { + var output m_Wrappers.Result = m_Wrappers.Result{} + _ = output + output = m_Wrappers.Companion_Result_.Create_Success_(m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_GetItemInputTransformOutput_.Create_GetItemInputTransformOutput_((input).Dtor_sdkInput())) + return output + return output +} +func (_static *CompanionStruct_Default___) Output(config m_DdbMiddlewareConfig.Config, input m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.GetItemOutputTransformInput) m_Wrappers.Result { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_GetItemOutputTransformOutput_.Default()) + _ = output + var _0_tableName _dafny.Sequence + _ = _0_tableName + _0_tableName = ((input).Dtor_originalInput()).Dtor_TableName() + if (!((config).Dtor_tableEncryptionConfigs()).Contains(_0_tableName)) || (m_DynamoDbMiddlewareSupport.Companion_Default___.NoMap(((input).Dtor_sdkOutput()).Dtor_Item())) { + output = m_Wrappers.Companion_Result_.Create_Success_(m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_GetItemOutputTransformOutput_.Create_GetItemOutputTransformOutput_((input).Dtor_sdkOutput())) + return output + } + var _1_tableConfig m_DdbMiddlewareConfig.TableConfig + _ = _1_tableConfig + _1_tableConfig = ((config).Dtor_tableEncryptionConfigs()).Get(_0_tableName).(m_DdbMiddlewareConfig.TableConfig) + var _2_decryptRes m_Wrappers.Result + _ = _2_decryptRes + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = ((_1_tableConfig).Dtor_itemEncryptor()).DecryptItem(m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Companion_DecryptItemInput_.Create_DecryptItemInput_((((input).Dtor_sdkOutput()).Dtor_Item()).Dtor_value().(_dafny.Map))) + _2_decryptRes = _out0 + var _3_valueOrError0 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Companion_DecryptItemOutput_.Default()) + _ = _3_valueOrError0 + _3_valueOrError0 = m_DdbMiddlewareConfig.Companion_Default___.MapError(_2_decryptRes) + if (_3_valueOrError0).IsFailure() { + output = (_3_valueOrError0).PropagateFailure() + return output + } + var _4_decrypted m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.DecryptItemOutput + _ = _4_decrypted + _4_decrypted = (_3_valueOrError0).Extract().(m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.DecryptItemOutput) + var _5_valueOrError1 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptyMap) + _ = _5_valueOrError1 + _5_valueOrError1 = m_DynamoDbMiddlewareSupport.Companion_Default___.RemoveBeacons(_1_tableConfig, (_4_decrypted).Dtor_plaintextItem()) + if (_5_valueOrError1).IsFailure() { + output = (_5_valueOrError1).PropagateFailure() + return output + } + var _6_item _dafny.Map + _ = _6_item + _6_item = (_5_valueOrError1).Extract().(_dafny.Map) + var _pat_let_tv0 = _6_item + _ = _pat_let_tv0 + output = m_Wrappers.Companion_Result_.Create_Success_(m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_GetItemOutputTransformOutput_.Create_GetItemOutputTransformOutput_(func(_pat_let27_0 m_ComAmazonawsDynamodbTypes.GetItemOutput) m_ComAmazonawsDynamodbTypes.GetItemOutput { + return func(_7_dt__update__tmp_h0 m_ComAmazonawsDynamodbTypes.GetItemOutput) m_ComAmazonawsDynamodbTypes.GetItemOutput { + return func(_pat_let28_0 m_Wrappers.Option) m_ComAmazonawsDynamodbTypes.GetItemOutput { + return func(_8_dt__update_hItem_h0 m_Wrappers.Option) m_ComAmazonawsDynamodbTypes.GetItemOutput { + return m_ComAmazonawsDynamodbTypes.Companion_GetItemOutput_.Create_GetItemOutput_(_8_dt__update_hItem_h0, (_7_dt__update__tmp_h0).Dtor_ConsumedCapacity()) + }(_pat_let28_0) + }(m_Wrappers.Companion_Option_.Create_Some_(_pat_let_tv0)) + }(_pat_let27_0) + }((input).Dtor_sdkOutput()))) + return output + return output +} + +// End of class Default__ diff --git a/customer-preview/ddb-esdk/InternalLegacyOverride/InternalLegacyOverride.go b/customer-preview/ddb-esdk/InternalLegacyOverride/InternalLegacyOverride.go new file mode 100644 index 000000000..66a6c078f --- /dev/null +++ b/customer-preview/ddb-esdk/InternalLegacyOverride/InternalLegacyOverride.go @@ -0,0 +1,345 @@ +// Package InternalLegacyOverride +// Dafny module InternalLegacyOverride compiled into Go + +package InternalLegacyOverride + +import ( + os "os" + + m_ComAmazonawsDynamodbTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/ComAmazonawsDynamodbTypes" + m_Com_Amazonaws_Dynamodb "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/Com_Amazonaws_Dynamodb" + m_ComAmazonawsKmsTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/ComAmazonawsKmsTypes" + m_Com_Amazonaws_Kms "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/Com_Amazonaws_Kms" + m_AlgorithmSuites "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AlgorithmSuites" + m_AwsArnParsing "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsArnParsing" + m_AwsCryptographyKeyStoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreOperations" + m_AwsCryptographyKeyStoreTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreTypes" + m_AwsCryptographyMaterialProvidersOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersOperations" + m_AwsCryptographyMaterialProvidersTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersTypes" + m_AwsKmsDiscoveryKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsDiscoveryKeyring" + m_AwsKmsEcdhKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsEcdhKeyring" + m_AwsKmsHierarchicalKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsHierarchicalKeyring" + m_AwsKmsKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsKeyring" + m_AwsKmsMrkAreUnique "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkAreUnique" + m_AwsKmsMrkDiscoveryKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkDiscoveryKeyring" + m_AwsKmsMrkKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkKeyring" + m_AwsKmsMrkMatchForDecrypt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkMatchForDecrypt" + m_AwsKmsRsaKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsRsaKeyring" + m_AwsKmsUtils "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsUtils" + m_CMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CMM" + m_CacheConstants "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CacheConstants" + m_CanonicalEncryptionContext "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CanonicalEncryptionContext" + m_Commitment "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Commitment" + m_Constants "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Constants" + m_CreateKeyStoreTable "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeyStoreTable" + m_CreateKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeys" + m_DDBKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DDBKeystoreOperations" + m_DefaultCMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DefaultCMM" + m_DefaultClientSupplier "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DefaultClientSupplier" + m_Defaults "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Defaults" + m_DiscoveryMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DiscoveryMultiKeyring" + m_EcdhEdkWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/EcdhEdkWrapping" + m_EdkWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/EdkWrapping" + m_ErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/ErrorMessages" + m_GetKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/GetKeys" + m_IntermediateKeyWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/IntermediateKeyWrapping" + m_KMSKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KMSKeystoreOperations" + m_KeyStore "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStore" + m_KeyStoreErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStoreErrorMessages" + m_Keyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Keyring" + m_KmsArn "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KmsArn" + m_LocalCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/LocalCMC" + m_MaterialProviders "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MaterialProviders" + m_MaterialWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MaterialWrapping" + m_Materials "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Materials" + m_MrkAwareDiscoveryMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MrkAwareDiscoveryMultiKeyring" + m_MrkAwareStrictMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MrkAwareStrictMultiKeyring" + m_MultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MultiKeyring" + m_RawAESKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawAESKeyring" + m_RawECDHKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawECDHKeyring" + m_RawRSAKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawRSAKeyring" + m_RequiredEncryptionContextCMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RequiredEncryptionContextCMM" + m_StormTracker "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StormTracker" + m_StormTrackingCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StormTrackingCMC" + m_StrictMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StrictMultiKeyring" + m_Structure "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Structure" + m_SynchronizedLocalCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/SynchronizedLocalCMC" + m_Utils "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Utils" + m_AtomicPrimitives "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AtomicPrimitives" + m_AwsCryptographyPrimitivesOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesOperations" + m_AwsCryptographyPrimitivesTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesTypes" + m_Digest "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Digest" + m_HKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/HKDF" + m_KdfCtr "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/KdfCtr" + m_Random "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Random" + m_WrappedHKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHKDF" + m_WrappedHMAC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHMAC" + m_Actions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Actions" + m_Base64 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64" + m_Base64Lemmas "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64Lemmas" + m_BoundedInts "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/BoundedInts" + m_DivInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternals" + m_DivInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternalsNonlinear" + m_DivMod "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivMod" + m_FileIO "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FileIO" + m_FloatCompare "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FloatCompare" + m_Functions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Functions" + m_GeneralInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GeneralInternals" + m_GetOpt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GetOpt" + m_HexStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/HexStrings" + m_Logarithm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Logarithm" + m__Math "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Math_" + m_ModInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternals" + m_ModInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternalsNonlinear" + m_Mul "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Mul" + m_MulInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternals" + m_MulInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternalsNonlinear" + m_Power "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Power" + m_Relations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Relations" + m_Seq "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq" + m_Seq_MergeSort "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq_MergeSort" + m_Sorting "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Sorting" + m_StandardLibrary "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary" + m_StandardLibraryInterop "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibraryInterop" + m_StandardLibrary_Sequence "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_Sequence" + m_StandardLibrary_String "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_String" + m_StandardLibrary_UInt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_UInt" + m_Streams "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Streams" + m_UnicodeStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UnicodeStrings" + m__Unicode "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Unicode_" + m_Utf16EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf16EncodingForm" + m_Utf8EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf8EncodingForm" + m_Wrappers "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers" + m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes" + m_AwsCryptographyDbEncryptionSdkDynamoDbTypes "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbTypes" + m_AwsCryptographyDbEncryptionSdkStructuredEncryptionOperations "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkStructuredEncryptionOperations" + m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes" + m_Canonize "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/Canonize" + m_DynamoDbEncryptionUtil "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbEncryptionUtil" + m_DynamoDbItemEncryptorUtil "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbItemEncryptorUtil" + m_DynamoDbNormalizeNumber "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbNormalizeNumber" + m_DynamoToStruct "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoToStruct" + m__Maps "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/Maps_" + m_Sets "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/Sets" + m_SortCanon "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/SortCanon" + m_StructuredEncryption "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryption" + m_StructuredEncryptionCrypt "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionCrypt" + m_StructuredEncryptionFooter "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionFooter" + m_StructuredEncryptionHeader "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionHeader" + m_StructuredEncryptionPaths "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionPaths" + m_StructuredEncryptionUtil "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionUtil" + m__System "github.com/dafny-lang/DafnyRuntimeGo/v4/System_" + _dafny "github.com/dafny-lang/DafnyRuntimeGo/v4/dafny" +) + +var _ = os.Args +var _ _dafny.Dummy__ +var _ m__System.Dummy__ +var _ m_Wrappers.Dummy__ +var _ m_BoundedInts.Dummy__ +var _ m_StandardLibrary_UInt.Dummy__ +var _ m_StandardLibrary_Sequence.Dummy__ +var _ m_StandardLibrary_String.Dummy__ +var _ m_StandardLibrary.Dummy__ +var _ m_AwsCryptographyPrimitivesTypes.Dummy__ +var _ m_Random.Dummy__ +var _ m_Digest.Dummy__ +var _ m_WrappedHMAC.Dummy__ +var _ m_HKDF.Dummy__ +var _ m_WrappedHKDF.Dummy__ +var _ m_KdfCtr.Dummy__ +var _ m_AwsCryptographyPrimitivesOperations.Dummy__ +var _ m_AtomicPrimitives.Dummy__ +var _ m_ComAmazonawsDynamodbTypes.Dummy__ +var _ m_ComAmazonawsKmsTypes.Dummy__ +var _ m_AwsCryptographyKeyStoreTypes.Dummy__ +var _ m_AwsCryptographyMaterialProvidersTypes.Dummy__ +var _ m_Base64.Dummy__ +var _ m_AlgorithmSuites.Dummy__ +var _ m_Materials.Dummy__ +var _ m_Keyring.Dummy__ +var _ m_Relations.Dummy__ +var _ m_Seq_MergeSort.Dummy__ +var _ m__Math.Dummy__ +var _ m_Seq.Dummy__ +var _ m_MultiKeyring.Dummy__ +var _ m_AwsArnParsing.Dummy__ +var _ m_AwsKmsMrkAreUnique.Dummy__ +var _ m_Actions.Dummy__ +var _ m_AwsKmsMrkMatchForDecrypt.Dummy__ +var _ m_AwsKmsUtils.Dummy__ +var _ m_Constants.Dummy__ +var _ m_MaterialWrapping.Dummy__ +var _ m_CanonicalEncryptionContext.Dummy__ +var _ m_IntermediateKeyWrapping.Dummy__ +var _ m_EdkWrapping.Dummy__ +var _ m_ErrorMessages.Dummy__ +var _ m_AwsKmsKeyring.Dummy__ +var _ m_StrictMultiKeyring.Dummy__ +var _ m_AwsKmsDiscoveryKeyring.Dummy__ +var _ m_Com_Amazonaws_Kms.Dummy__ +var _ m_Com_Amazonaws_Dynamodb.Dummy__ +var _ m_DiscoveryMultiKeyring.Dummy__ +var _ m_AwsKmsMrkDiscoveryKeyring.Dummy__ +var _ m_MrkAwareDiscoveryMultiKeyring.Dummy__ +var _ m_AwsKmsMrkKeyring.Dummy__ +var _ m_MrkAwareStrictMultiKeyring.Dummy__ +var _ m_LocalCMC.Dummy__ +var _ m_SynchronizedLocalCMC.Dummy__ +var _ m_StormTracker.Dummy__ +var _ m_StormTrackingCMC.Dummy__ +var _ m_CacheConstants.Dummy__ +var _ m_AwsKmsHierarchicalKeyring.Dummy__ +var _ m_AwsKmsRsaKeyring.Dummy__ +var _ m_EcdhEdkWrapping.Dummy__ +var _ m_RawECDHKeyring.Dummy__ +var _ m_AwsKmsEcdhKeyring.Dummy__ +var _ m_RawAESKeyring.Dummy__ +var _ m_RawRSAKeyring.Dummy__ +var _ m_CMM.Dummy__ +var _ m_Defaults.Dummy__ +var _ m_Commitment.Dummy__ +var _ m_DefaultCMM.Dummy__ +var _ m_DefaultClientSupplier.Dummy__ +var _ m_Utils.Dummy__ +var _ m_RequiredEncryptionContextCMM.Dummy__ +var _ m_AwsCryptographyMaterialProvidersOperations.Dummy__ +var _ m_MaterialProviders.Dummy__ +var _ m_KeyStoreErrorMessages.Dummy__ +var _ m_KmsArn.Dummy__ +var _ m_Structure.Dummy__ +var _ m_KMSKeystoreOperations.Dummy__ +var _ m_DDBKeystoreOperations.Dummy__ +var _ m_CreateKeys.Dummy__ +var _ m_CreateKeyStoreTable.Dummy__ +var _ m_GetKeys.Dummy__ +var _ m_AwsCryptographyKeyStoreOperations.Dummy__ +var _ m_KeyStore.Dummy__ +var _ m__Unicode.Dummy__ +var _ m_Functions.Dummy__ +var _ m_Utf8EncodingForm.Dummy__ +var _ m_Utf16EncodingForm.Dummy__ +var _ m_UnicodeStrings.Dummy__ +var _ m_FileIO.Dummy__ +var _ m_GeneralInternals.Dummy__ +var _ m_MulInternalsNonlinear.Dummy__ +var _ m_MulInternals.Dummy__ +var _ m_Mul.Dummy__ +var _ m_ModInternalsNonlinear.Dummy__ +var _ m_DivInternalsNonlinear.Dummy__ +var _ m_ModInternals.Dummy__ +var _ m_DivInternals.Dummy__ +var _ m_DivMod.Dummy__ +var _ m_Power.Dummy__ +var _ m_Logarithm.Dummy__ +var _ m_StandardLibraryInterop.Dummy__ +var _ m_Streams.Dummy__ +var _ m_Sorting.Dummy__ +var _ m_HexStrings.Dummy__ +var _ m_GetOpt.Dummy__ +var _ m_FloatCompare.Dummy__ +var _ m_Base64Lemmas.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Dummy__ +var _ m_StructuredEncryptionUtil.Dummy__ +var _ m_Sets.Dummy__ +var _ m_StructuredEncryptionPaths.Dummy__ +var _ m_StructuredEncryptionHeader.Dummy__ +var _ m_StructuredEncryptionFooter.Dummy__ +var _ m_SortCanon.Dummy__ +var _ m_Canonize.Dummy__ +var _ m_StructuredEncryptionCrypt.Dummy__ +var _ m__Maps.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkStructuredEncryptionOperations.Dummy__ +var _ m_StructuredEncryption.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Dummy__ +var _ m_DynamoDbEncryptionUtil.Dummy__ +var _ m_DynamoDbNormalizeNumber.Dummy__ +var _ m_DynamoToStruct.Dummy__ +var _ m_DynamoDbItemEncryptorUtil.Dummy__ + +type Dummy__ struct{} + +// Definition of class InternalLegacyOverride +type InternalLegacyOverride struct { + dummy byte +} + +func New_InternalLegacyOverride_() *InternalLegacyOverride { + _this := InternalLegacyOverride{} + + return &_this +} + +type CompanionStruct_InternalLegacyOverride_ struct { +} + +var Companion_InternalLegacyOverride_ = CompanionStruct_InternalLegacyOverride_{} + +func (_this *InternalLegacyOverride) Equals(other *InternalLegacyOverride) bool { + return _this == other +} + +func (_this *InternalLegacyOverride) EqualsGeneric(x interface{}) bool { + other, ok := x.(*InternalLegacyOverride) + return ok && _this.Equals(other) +} + +func (*InternalLegacyOverride) String() string { + return "InternalLegacyOverride.InternalLegacyOverride" +} + +func Type_InternalLegacyOverride_() _dafny.TypeDescriptor { + return type_InternalLegacyOverride_{} +} + +type type_InternalLegacyOverride_ struct { +} + +func (_this type_InternalLegacyOverride_) Default() interface{} { + return (*InternalLegacyOverride)(nil) +} + +func (_this type_InternalLegacyOverride_) String() string { + return "InternalLegacyOverride.InternalLegacyOverride" +} +func (_this *InternalLegacyOverride) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = &InternalLegacyOverride{} + +func (_static *CompanionStruct_InternalLegacyOverride_) CreateBuildSuccess(value m_Wrappers.Option) m_Wrappers.Result { + return m_Wrappers.Companion_Result_.Create_Success_(value) +} +func (_static *CompanionStruct_InternalLegacyOverride_) CreateBuildFailure(error_ m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Error) m_Wrappers.Result { + return m_Wrappers.Companion_Result_.Create_Failure_(error_) +} +func (_static *CompanionStruct_InternalLegacyOverride_) CreateInternalLegacyOverrideSome(value *InternalLegacyOverride) m_Wrappers.Option { + return m_Wrappers.Companion_Option_.Create_Some_(value) +} +func (_static *CompanionStruct_InternalLegacyOverride_) CreateInternalLegacyOverrideNone() m_Wrappers.Option { + return m_Wrappers.Companion_Option_.Create_None_() +} +func (_this *InternalLegacyOverride) CreateEncryptItemSuccess(value m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.EncryptItemOutput) m_Wrappers.Result { + { + return m_Wrappers.Companion_Result_.Create_Success_(value) + } +} +func (_this *InternalLegacyOverride) CreateEncryptItemFailure(error_ m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Error) m_Wrappers.Result { + { + return m_Wrappers.Companion_Result_.Create_Failure_(error_) + } +} +func (_this *InternalLegacyOverride) CreateDecryptItemSuccess(value m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.DecryptItemOutput) m_Wrappers.Result { + { + return m_Wrappers.Companion_Result_.Create_Success_(value) + } +} +func (_this *InternalLegacyOverride) CreateDecryptItemFailure(error_ m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Error) m_Wrappers.Result { + { + return m_Wrappers.Companion_Result_.Create_Failure_(error_) + } +} + +// End of class InternalLegacyOverride diff --git a/customer-preview/ddb-esdk/InternalLegacyOverride/extern.go b/customer-preview/ddb-esdk/InternalLegacyOverride/extern.go new file mode 100644 index 000000000..624b6a332 --- /dev/null +++ b/customer-preview/ddb-esdk/InternalLegacyOverride/extern.go @@ -0,0 +1,51 @@ +package InternalLegacyOverride + +import ( + "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers" + "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbTypes" + "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/awscryptographydbencryptionsdkdynamodbitemencryptorsmithygeneratedtypes" +) + +var policy = AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_LegacyPolicy_.Create_FORBID__LEGACY__ENCRYPT__FORBID__LEGACY__DECRYPT_() + +func (InternalLegacyOverride) Policy() AwsCryptographyDbEncryptionSdkDynamoDbTypes.LegacyPolicy { + return policy +} + +func (CompanionStruct_InternalLegacyOverride_) Build(config interface{}) Wrappers.Result { + // Go does not support the Legacy DDB-EC + if policy.Is_FORBID__LEGACY__ENCRYPT__FORBID__LEGACY__DECRYPT() { + return Wrappers.Companion_Result_.Create_Success_(Wrappers.Companion_Option_.Create_None_()) + } + err := &awscryptographydbencryptionsdkdynamodbitemencryptorsmithygeneratedtypes.DynamoDbItemEncryptorException{ + Message: "Legacy configuration unsupported.", + } + return Wrappers.Companion_Result_.Create_Failure_(err) +} + +func (InternalLegacyOverride) EncryptItem(config interface{}) Wrappers.Result { + // Go does not support the Legacy DDB-EC + if policy.Is_FORBID__LEGACY__ENCRYPT__FORBID__LEGACY__DECRYPT() { + return Wrappers.Companion_Result_.Create_Success_(Wrappers.Companion_Option_.Create_None_()) + } + err := &awscryptographydbencryptionsdkdynamodbitemencryptorsmithygeneratedtypes.DynamoDbItemEncryptorException{ + Message: "Legacy configuration unsupported.", + } + return Wrappers.Companion_Result_.Create_Failure_(err) +} + +func (InternalLegacyOverride) DecryptItem(config interface{}) Wrappers.Result { + // Go does not support the Legacy DDB-EC + if policy.Is_FORBID__LEGACY__ENCRYPT__FORBID__LEGACY__DECRYPT() { + return Wrappers.Companion_Result_.Create_Success_(Wrappers.Companion_Option_.Create_None_()) + } + err := &awscryptographydbencryptionsdkdynamodbitemencryptorsmithygeneratedtypes.DynamoDbItemEncryptorException{ + Message: "Legacy configuration unsupported.", + } + return Wrappers.Companion_Result_.Create_Failure_(err) +} + +func (InternalLegacyOverride) IsLegacyInput(config interface{}) bool { + // Go does not support the Legacy DDB-EC + return false +} diff --git a/customer-preview/ddb-esdk/Maps_/Maps_.go b/customer-preview/ddb-esdk/Maps_/Maps_.go new file mode 100644 index 000000000..4d1466414 --- /dev/null +++ b/customer-preview/ddb-esdk/Maps_/Maps_.go @@ -0,0 +1,349 @@ +// Package _Maps +// Dafny module _Maps compiled into Go + +package _Maps + +import ( + os "os" + + m_ComAmazonawsDynamodbTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/ComAmazonawsDynamodbTypes" + m_Com_Amazonaws_Dynamodb "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/Com_Amazonaws_Dynamodb" + m_ComAmazonawsKmsTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/ComAmazonawsKmsTypes" + m_Com_Amazonaws_Kms "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/Com_Amazonaws_Kms" + m_AlgorithmSuites "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AlgorithmSuites" + m_AwsArnParsing "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsArnParsing" + m_AwsCryptographyKeyStoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreOperations" + m_AwsCryptographyKeyStoreTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreTypes" + m_AwsCryptographyMaterialProvidersOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersOperations" + m_AwsCryptographyMaterialProvidersTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersTypes" + m_AwsKmsDiscoveryKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsDiscoveryKeyring" + m_AwsKmsEcdhKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsEcdhKeyring" + m_AwsKmsHierarchicalKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsHierarchicalKeyring" + m_AwsKmsKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsKeyring" + m_AwsKmsMrkAreUnique "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkAreUnique" + m_AwsKmsMrkDiscoveryKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkDiscoveryKeyring" + m_AwsKmsMrkKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkKeyring" + m_AwsKmsMrkMatchForDecrypt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkMatchForDecrypt" + m_AwsKmsRsaKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsRsaKeyring" + m_AwsKmsUtils "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsUtils" + m_CMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CMM" + m_CacheConstants "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CacheConstants" + m_CanonicalEncryptionContext "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CanonicalEncryptionContext" + m_Commitment "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Commitment" + m_Constants "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Constants" + m_CreateKeyStoreTable "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeyStoreTable" + m_CreateKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeys" + m_DDBKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DDBKeystoreOperations" + m_DefaultCMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DefaultCMM" + m_DefaultClientSupplier "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DefaultClientSupplier" + m_Defaults "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Defaults" + m_DiscoveryMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DiscoveryMultiKeyring" + m_EcdhEdkWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/EcdhEdkWrapping" + m_EdkWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/EdkWrapping" + m_ErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/ErrorMessages" + m_GetKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/GetKeys" + m_IntermediateKeyWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/IntermediateKeyWrapping" + m_KMSKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KMSKeystoreOperations" + m_KeyStore "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStore" + m_KeyStoreErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStoreErrorMessages" + m_Keyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Keyring" + m_KmsArn "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KmsArn" + m_LocalCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/LocalCMC" + m_MaterialProviders "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MaterialProviders" + m_MaterialWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MaterialWrapping" + m_Materials "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Materials" + m_MrkAwareDiscoveryMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MrkAwareDiscoveryMultiKeyring" + m_MrkAwareStrictMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MrkAwareStrictMultiKeyring" + m_MultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MultiKeyring" + m_RawAESKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawAESKeyring" + m_RawECDHKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawECDHKeyring" + m_RawRSAKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawRSAKeyring" + m_RequiredEncryptionContextCMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RequiredEncryptionContextCMM" + m_StormTracker "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StormTracker" + m_StormTrackingCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StormTrackingCMC" + m_StrictMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StrictMultiKeyring" + m_Structure "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Structure" + m_SynchronizedLocalCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/SynchronizedLocalCMC" + m_Utils "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Utils" + m_AtomicPrimitives "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AtomicPrimitives" + m_AwsCryptographyPrimitivesOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesOperations" + m_AwsCryptographyPrimitivesTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesTypes" + m_Digest "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Digest" + m_HKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/HKDF" + m_KdfCtr "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/KdfCtr" + m_Random "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Random" + m_WrappedHKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHKDF" + m_WrappedHMAC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHMAC" + m_Actions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Actions" + m_Base64 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64" + m_Base64Lemmas "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64Lemmas" + m_BoundedInts "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/BoundedInts" + m_DivInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternals" + m_DivInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternalsNonlinear" + m_DivMod "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivMod" + m_FileIO "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FileIO" + m_FloatCompare "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FloatCompare" + m_Functions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Functions" + m_GeneralInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GeneralInternals" + m_GetOpt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GetOpt" + m_HexStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/HexStrings" + m_Logarithm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Logarithm" + m__Math "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Math_" + m_ModInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternals" + m_ModInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternalsNonlinear" + m_Mul "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Mul" + m_MulInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternals" + m_MulInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternalsNonlinear" + m_Power "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Power" + m_Relations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Relations" + m_Seq "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq" + m_Seq_MergeSort "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq_MergeSort" + m_Sorting "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Sorting" + m_StandardLibrary "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary" + m_StandardLibraryInterop "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibraryInterop" + m_StandardLibrary_Sequence "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_Sequence" + m_StandardLibrary_String "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_String" + m_StandardLibrary_UInt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_UInt" + m_Streams "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Streams" + m_UnicodeStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UnicodeStrings" + m__Unicode "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Unicode_" + m_Utf16EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf16EncodingForm" + m_Utf8EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf8EncodingForm" + m_Wrappers "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers" + m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes" + m_Canonize "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/Canonize" + m_Sets "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/Sets" + m_SortCanon "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/SortCanon" + m_StructuredEncryptionCrypt "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionCrypt" + m_StructuredEncryptionFooter "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionFooter" + m_StructuredEncryptionHeader "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionHeader" + m_StructuredEncryptionPaths "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionPaths" + m_StructuredEncryptionUtil "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionUtil" + m__System "github.com/dafny-lang/DafnyRuntimeGo/v4/System_" + _dafny "github.com/dafny-lang/DafnyRuntimeGo/v4/dafny" +) + +var _ = os.Args +var _ _dafny.Dummy__ +var _ m__System.Dummy__ +var _ m_Wrappers.Dummy__ +var _ m_BoundedInts.Dummy__ +var _ m_StandardLibrary_UInt.Dummy__ +var _ m_StandardLibrary_Sequence.Dummy__ +var _ m_StandardLibrary_String.Dummy__ +var _ m_StandardLibrary.Dummy__ +var _ m_AwsCryptographyPrimitivesTypes.Dummy__ +var _ m_Random.Dummy__ +var _ m_Digest.Dummy__ +var _ m_WrappedHMAC.Dummy__ +var _ m_HKDF.Dummy__ +var _ m_WrappedHKDF.Dummy__ +var _ m_KdfCtr.Dummy__ +var _ m_AwsCryptographyPrimitivesOperations.Dummy__ +var _ m_AtomicPrimitives.Dummy__ +var _ m_ComAmazonawsDynamodbTypes.Dummy__ +var _ m_ComAmazonawsKmsTypes.Dummy__ +var _ m_AwsCryptographyKeyStoreTypes.Dummy__ +var _ m_AwsCryptographyMaterialProvidersTypes.Dummy__ +var _ m_Base64.Dummy__ +var _ m_AlgorithmSuites.Dummy__ +var _ m_Materials.Dummy__ +var _ m_Keyring.Dummy__ +var _ m_Relations.Dummy__ +var _ m_Seq_MergeSort.Dummy__ +var _ m__Math.Dummy__ +var _ m_Seq.Dummy__ +var _ m_MultiKeyring.Dummy__ +var _ m_AwsArnParsing.Dummy__ +var _ m_AwsKmsMrkAreUnique.Dummy__ +var _ m_Actions.Dummy__ +var _ m_AwsKmsMrkMatchForDecrypt.Dummy__ +var _ m_AwsKmsUtils.Dummy__ +var _ m_Constants.Dummy__ +var _ m_MaterialWrapping.Dummy__ +var _ m_CanonicalEncryptionContext.Dummy__ +var _ m_IntermediateKeyWrapping.Dummy__ +var _ m_EdkWrapping.Dummy__ +var _ m_ErrorMessages.Dummy__ +var _ m_AwsKmsKeyring.Dummy__ +var _ m_StrictMultiKeyring.Dummy__ +var _ m_AwsKmsDiscoveryKeyring.Dummy__ +var _ m_Com_Amazonaws_Kms.Dummy__ +var _ m_Com_Amazonaws_Dynamodb.Dummy__ +var _ m_DiscoveryMultiKeyring.Dummy__ +var _ m_AwsKmsMrkDiscoveryKeyring.Dummy__ +var _ m_MrkAwareDiscoveryMultiKeyring.Dummy__ +var _ m_AwsKmsMrkKeyring.Dummy__ +var _ m_MrkAwareStrictMultiKeyring.Dummy__ +var _ m_LocalCMC.Dummy__ +var _ m_SynchronizedLocalCMC.Dummy__ +var _ m_StormTracker.Dummy__ +var _ m_StormTrackingCMC.Dummy__ +var _ m_CacheConstants.Dummy__ +var _ m_AwsKmsHierarchicalKeyring.Dummy__ +var _ m_AwsKmsRsaKeyring.Dummy__ +var _ m_EcdhEdkWrapping.Dummy__ +var _ m_RawECDHKeyring.Dummy__ +var _ m_AwsKmsEcdhKeyring.Dummy__ +var _ m_RawAESKeyring.Dummy__ +var _ m_RawRSAKeyring.Dummy__ +var _ m_CMM.Dummy__ +var _ m_Defaults.Dummy__ +var _ m_Commitment.Dummy__ +var _ m_DefaultCMM.Dummy__ +var _ m_DefaultClientSupplier.Dummy__ +var _ m_Utils.Dummy__ +var _ m_RequiredEncryptionContextCMM.Dummy__ +var _ m_AwsCryptographyMaterialProvidersOperations.Dummy__ +var _ m_MaterialProviders.Dummy__ +var _ m_KeyStoreErrorMessages.Dummy__ +var _ m_KmsArn.Dummy__ +var _ m_Structure.Dummy__ +var _ m_KMSKeystoreOperations.Dummy__ +var _ m_DDBKeystoreOperations.Dummy__ +var _ m_CreateKeys.Dummy__ +var _ m_CreateKeyStoreTable.Dummy__ +var _ m_GetKeys.Dummy__ +var _ m_AwsCryptographyKeyStoreOperations.Dummy__ +var _ m_KeyStore.Dummy__ +var _ m__Unicode.Dummy__ +var _ m_Functions.Dummy__ +var _ m_Utf8EncodingForm.Dummy__ +var _ m_Utf16EncodingForm.Dummy__ +var _ m_UnicodeStrings.Dummy__ +var _ m_FileIO.Dummy__ +var _ m_GeneralInternals.Dummy__ +var _ m_MulInternalsNonlinear.Dummy__ +var _ m_MulInternals.Dummy__ +var _ m_Mul.Dummy__ +var _ m_ModInternalsNonlinear.Dummy__ +var _ m_DivInternalsNonlinear.Dummy__ +var _ m_ModInternals.Dummy__ +var _ m_DivInternals.Dummy__ +var _ m_DivMod.Dummy__ +var _ m_Power.Dummy__ +var _ m_Logarithm.Dummy__ +var _ m_StandardLibraryInterop.Dummy__ +var _ m_Streams.Dummy__ +var _ m_Sorting.Dummy__ +var _ m_HexStrings.Dummy__ +var _ m_GetOpt.Dummy__ +var _ m_FloatCompare.Dummy__ +var _ m_Base64Lemmas.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Dummy__ +var _ m_StructuredEncryptionUtil.Dummy__ +var _ m_Sets.Dummy__ +var _ m_StructuredEncryptionPaths.Dummy__ +var _ m_StructuredEncryptionHeader.Dummy__ +var _ m_StructuredEncryptionFooter.Dummy__ +var _ m_SortCanon.Dummy__ +var _ m_Canonize.Dummy__ +var _ m_StructuredEncryptionCrypt.Dummy__ + +type Dummy__ struct{} + +// Definition of class Default__ +type Default__ struct { + dummy byte +} + +func New_Default___() *Default__ { + _this := Default__{} + + return &_this +} + +type CompanionStruct_Default___ struct { +} + +var Companion_Default___ = CompanionStruct_Default___{} + +func (_this *Default__) Equals(other *Default__) bool { + return _this == other +} + +func (_this *Default__) EqualsGeneric(x interface{}) bool { + other, ok := x.(*Default__) + return ok && _this.Equals(other) +} + +func (*Default__) String() string { + return "_Maps.Default__" +} +func (_this *Default__) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = &Default__{} + +func (_static *CompanionStruct_Default___) Get(m _dafny.Map, x interface{}) m_Wrappers.Option { + if (m).Contains(x) { + return m_Wrappers.Companion_Option_.Create_Some_((m).Get(x).(interface{})) + } else { + return m_Wrappers.Companion_Option_.Create_None_() + } +} +func (_static *CompanionStruct_Default___) ToImap(m _dafny.Map) _dafny.Map { + return func() _dafny.Map { + var _coll0 = _dafny.NewMapBuilder() + _ = _coll0 + for _iter8 := _dafny.Iterate((m).Keys().Elements()); ; { + _compr_0, _ok8 := _iter8() + if !_ok8 { + break + } + var _0_x interface{} + _0_x = interface{}(_compr_0).(interface{}) + if (m).Contains(_0_x) { + _coll0.Add(_0_x, (m).Get(_0_x).(interface{})) + } + } + return _coll0.ToMap() + }() +} +func (_static *CompanionStruct_Default___) RemoveKeys(m _dafny.Map, xs _dafny.Set) _dafny.Map { + return (m).Subtract(xs) +} +func (_static *CompanionStruct_Default___) Remove(m _dafny.Map, x interface{}) _dafny.Map { + var _0_m_k _dafny.Map = func() _dafny.Map { + var _coll0 = _dafny.NewMapBuilder() + _ = _coll0 + for _iter9 := _dafny.Iterate((m).Keys().Elements()); ; { + _compr_0, _ok9 := _iter9() + if !_ok9 { + break + } + var _1_x_k interface{} + _1_x_k = interface{}(_compr_0).(interface{}) + if ((m).Contains(_1_x_k)) && (!_dafny.AreEqual(_1_x_k, x)) { + _coll0.Add(_1_x_k, (m).Get(_1_x_k).(interface{})) + } + } + return _coll0.ToMap() + }() + _ = _0_m_k + return _0_m_k +} +func (_static *CompanionStruct_Default___) Restrict(m _dafny.Map, xs _dafny.Set) _dafny.Map { + return func() _dafny.Map { + var _coll0 = _dafny.NewMapBuilder() + _ = _coll0 + for _iter10 := _dafny.Iterate((xs).Elements()); ; { + _compr_0, _ok10 := _iter10() + if !_ok10 { + break + } + var _0_x interface{} + _0_x = interface{}(_compr_0).(interface{}) + if ((xs).Contains(_0_x)) && ((m).Contains(_0_x)) { + _coll0.Add(_0_x, (m).Get(_0_x).(interface{})) + } + } + return _coll0.ToMap() + }() +} +func (_static *CompanionStruct_Default___) Union(m _dafny.Map, m_k _dafny.Map) _dafny.Map { + return (m).Merge(m_k) +} + +// End of class Default__ diff --git a/customer-preview/ddb-esdk/PutItemTransform/PutItemTransform.go b/customer-preview/ddb-esdk/PutItemTransform/PutItemTransform.go new file mode 100644 index 000000000..e758317a4 --- /dev/null +++ b/customer-preview/ddb-esdk/PutItemTransform/PutItemTransform.go @@ -0,0 +1,501 @@ +// Package PutItemTransform +// Dafny module PutItemTransform compiled into Go + +package PutItemTransform + +import ( + os "os" + + m_ComAmazonawsDynamodbTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/ComAmazonawsDynamodbTypes" + m_Com_Amazonaws_Dynamodb "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/Com_Amazonaws_Dynamodb" + m_ComAmazonawsKmsTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/ComAmazonawsKmsTypes" + m_Com_Amazonaws_Kms "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/Com_Amazonaws_Kms" + m_AlgorithmSuites "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AlgorithmSuites" + m_AwsArnParsing "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsArnParsing" + m_AwsCryptographyKeyStoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreOperations" + m_AwsCryptographyKeyStoreTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreTypes" + m_AwsCryptographyMaterialProvidersOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersOperations" + m_AwsCryptographyMaterialProvidersTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersTypes" + m_AwsKmsDiscoveryKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsDiscoveryKeyring" + m_AwsKmsEcdhKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsEcdhKeyring" + m_AwsKmsHierarchicalKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsHierarchicalKeyring" + m_AwsKmsKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsKeyring" + m_AwsKmsMrkAreUnique "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkAreUnique" + m_AwsKmsMrkDiscoveryKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkDiscoveryKeyring" + m_AwsKmsMrkKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkKeyring" + m_AwsKmsMrkMatchForDecrypt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkMatchForDecrypt" + m_AwsKmsRsaKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsRsaKeyring" + m_AwsKmsUtils "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsUtils" + m_CMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CMM" + m_CacheConstants "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CacheConstants" + m_CanonicalEncryptionContext "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CanonicalEncryptionContext" + m_Commitment "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Commitment" + m_Constants "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Constants" + m_CreateKeyStoreTable "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeyStoreTable" + m_CreateKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeys" + m_DDBKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DDBKeystoreOperations" + m_DefaultCMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DefaultCMM" + m_DefaultClientSupplier "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DefaultClientSupplier" + m_Defaults "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Defaults" + m_DiscoveryMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DiscoveryMultiKeyring" + m_EcdhEdkWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/EcdhEdkWrapping" + m_EdkWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/EdkWrapping" + m_ErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/ErrorMessages" + m_GetKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/GetKeys" + m_IntermediateKeyWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/IntermediateKeyWrapping" + m_KMSKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KMSKeystoreOperations" + m_KeyStore "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStore" + m_KeyStoreErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStoreErrorMessages" + m_Keyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Keyring" + m_KmsArn "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KmsArn" + m_LocalCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/LocalCMC" + m_MaterialProviders "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MaterialProviders" + m_MaterialWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MaterialWrapping" + m_Materials "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Materials" + m_MrkAwareDiscoveryMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MrkAwareDiscoveryMultiKeyring" + m_MrkAwareStrictMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MrkAwareStrictMultiKeyring" + m_MultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MultiKeyring" + m_RawAESKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawAESKeyring" + m_RawECDHKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawECDHKeyring" + m_RawRSAKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawRSAKeyring" + m_RequiredEncryptionContextCMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RequiredEncryptionContextCMM" + m_StormTracker "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StormTracker" + m_StormTrackingCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StormTrackingCMC" + m_StrictMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StrictMultiKeyring" + m_Structure "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Structure" + m_SynchronizedLocalCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/SynchronizedLocalCMC" + m_Utils "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Utils" + m_AtomicPrimitives "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AtomicPrimitives" + m_AwsCryptographyPrimitivesOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesOperations" + m_AwsCryptographyPrimitivesTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesTypes" + m_Digest "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Digest" + m_HKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/HKDF" + m_KdfCtr "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/KdfCtr" + m_Random "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Random" + m_WrappedHKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHKDF" + m_WrappedHMAC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHMAC" + m_Actions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Actions" + m_Base64 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64" + m_Base64Lemmas "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64Lemmas" + m_BoundedInts "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/BoundedInts" + m_DivInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternals" + m_DivInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternalsNonlinear" + m_DivMod "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivMod" + m_FileIO "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FileIO" + m_FloatCompare "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FloatCompare" + m_Functions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Functions" + m_GeneralInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GeneralInternals" + m_GetOpt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GetOpt" + m_HexStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/HexStrings" + m_Logarithm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Logarithm" + m__Math "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Math_" + m_ModInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternals" + m_ModInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternalsNonlinear" + m_Mul "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Mul" + m_MulInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternals" + m_MulInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternalsNonlinear" + m_Power "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Power" + m_Relations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Relations" + m_Seq "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq" + m_Seq_MergeSort "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq_MergeSort" + m_Sorting "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Sorting" + m_StandardLibrary "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary" + m_StandardLibraryInterop "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibraryInterop" + m_StandardLibrary_Sequence "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_Sequence" + m_StandardLibrary_String "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_String" + m_StandardLibrary_UInt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_UInt" + m_Streams "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Streams" + m_UnicodeStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UnicodeStrings" + m__Unicode "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Unicode_" + m_Utf16EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf16EncodingForm" + m_Utf8EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf8EncodingForm" + m_Wrappers "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers" + m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorOperations "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorOperations" + m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes" + m_AwsCryptographyDbEncryptionSdkDynamoDbOperations "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbOperations" + m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes" + m_AwsCryptographyDbEncryptionSdkDynamoDbTypes "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbTypes" + m_AwsCryptographyDbEncryptionSdkStructuredEncryptionOperations "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkStructuredEncryptionOperations" + m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes" + m_BaseBeacon "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/BaseBeacon" + m_Canonize "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/Canonize" + m_CompoundBeacon "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/CompoundBeacon" + m_DdbMiddlewareConfig "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DdbMiddlewareConfig" + m_DdbStatement "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DdbStatement" + m_DdbVirtualFields "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DdbVirtualFields" + m_DynamoDBFilterExpr "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDBFilterExpr" + m_DynamoDBSupport "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDBSupport" + m_DynamoDbEncryption "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbEncryption" + m_DynamoDbEncryptionBranchKeyIdSupplier "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbEncryptionBranchKeyIdSupplier" + m_DynamoDbEncryptionUtil "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbEncryptionUtil" + m_DynamoDbItemEncryptor "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbItemEncryptor" + m_DynamoDbItemEncryptorUtil "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbItemEncryptorUtil" + m_DynamoDbMiddlewareSupport "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbMiddlewareSupport" + m_DynamoDbNormalizeNumber "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbNormalizeNumber" + m_DynamoDbUpdateExpr "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbUpdateExpr" + m_DynamoToStruct "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoToStruct" + m_InternalLegacyOverride "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/InternalLegacyOverride" + m__Maps "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/Maps_" + m_SearchConfigToInfo "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/SearchConfigToInfo" + m_SearchableEncryptionInfo "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/SearchableEncryptionInfo" + m_Sets "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/Sets" + m_SortCanon "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/SortCanon" + m_StructuredEncryption "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryption" + m_StructuredEncryptionCrypt "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionCrypt" + m_StructuredEncryptionFooter "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionFooter" + m_StructuredEncryptionHeader "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionHeader" + m_StructuredEncryptionPaths "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionPaths" + m_StructuredEncryptionUtil "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionUtil" + m_TermLoc "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/TermLoc" + m__System "github.com/dafny-lang/DafnyRuntimeGo/v4/System_" + _dafny "github.com/dafny-lang/DafnyRuntimeGo/v4/dafny" +) + +var _ = os.Args +var _ _dafny.Dummy__ +var _ m__System.Dummy__ +var _ m_Wrappers.Dummy__ +var _ m_BoundedInts.Dummy__ +var _ m_StandardLibrary_UInt.Dummy__ +var _ m_StandardLibrary_Sequence.Dummy__ +var _ m_StandardLibrary_String.Dummy__ +var _ m_StandardLibrary.Dummy__ +var _ m_AwsCryptographyPrimitivesTypes.Dummy__ +var _ m_Random.Dummy__ +var _ m_Digest.Dummy__ +var _ m_WrappedHMAC.Dummy__ +var _ m_HKDF.Dummy__ +var _ m_WrappedHKDF.Dummy__ +var _ m_KdfCtr.Dummy__ +var _ m_AwsCryptographyPrimitivesOperations.Dummy__ +var _ m_AtomicPrimitives.Dummy__ +var _ m_ComAmazonawsDynamodbTypes.Dummy__ +var _ m_ComAmazonawsKmsTypes.Dummy__ +var _ m_AwsCryptographyKeyStoreTypes.Dummy__ +var _ m_AwsCryptographyMaterialProvidersTypes.Dummy__ +var _ m_Base64.Dummy__ +var _ m_AlgorithmSuites.Dummy__ +var _ m_Materials.Dummy__ +var _ m_Keyring.Dummy__ +var _ m_Relations.Dummy__ +var _ m_Seq_MergeSort.Dummy__ +var _ m__Math.Dummy__ +var _ m_Seq.Dummy__ +var _ m_MultiKeyring.Dummy__ +var _ m_AwsArnParsing.Dummy__ +var _ m_AwsKmsMrkAreUnique.Dummy__ +var _ m_Actions.Dummy__ +var _ m_AwsKmsMrkMatchForDecrypt.Dummy__ +var _ m_AwsKmsUtils.Dummy__ +var _ m_Constants.Dummy__ +var _ m_MaterialWrapping.Dummy__ +var _ m_CanonicalEncryptionContext.Dummy__ +var _ m_IntermediateKeyWrapping.Dummy__ +var _ m_EdkWrapping.Dummy__ +var _ m_ErrorMessages.Dummy__ +var _ m_AwsKmsKeyring.Dummy__ +var _ m_StrictMultiKeyring.Dummy__ +var _ m_AwsKmsDiscoveryKeyring.Dummy__ +var _ m_Com_Amazonaws_Kms.Dummy__ +var _ m_Com_Amazonaws_Dynamodb.Dummy__ +var _ m_DiscoveryMultiKeyring.Dummy__ +var _ m_AwsKmsMrkDiscoveryKeyring.Dummy__ +var _ m_MrkAwareDiscoveryMultiKeyring.Dummy__ +var _ m_AwsKmsMrkKeyring.Dummy__ +var _ m_MrkAwareStrictMultiKeyring.Dummy__ +var _ m_LocalCMC.Dummy__ +var _ m_SynchronizedLocalCMC.Dummy__ +var _ m_StormTracker.Dummy__ +var _ m_StormTrackingCMC.Dummy__ +var _ m_CacheConstants.Dummy__ +var _ m_AwsKmsHierarchicalKeyring.Dummy__ +var _ m_AwsKmsRsaKeyring.Dummy__ +var _ m_EcdhEdkWrapping.Dummy__ +var _ m_RawECDHKeyring.Dummy__ +var _ m_AwsKmsEcdhKeyring.Dummy__ +var _ m_RawAESKeyring.Dummy__ +var _ m_RawRSAKeyring.Dummy__ +var _ m_CMM.Dummy__ +var _ m_Defaults.Dummy__ +var _ m_Commitment.Dummy__ +var _ m_DefaultCMM.Dummy__ +var _ m_DefaultClientSupplier.Dummy__ +var _ m_Utils.Dummy__ +var _ m_RequiredEncryptionContextCMM.Dummy__ +var _ m_AwsCryptographyMaterialProvidersOperations.Dummy__ +var _ m_MaterialProviders.Dummy__ +var _ m_KeyStoreErrorMessages.Dummy__ +var _ m_KmsArn.Dummy__ +var _ m_Structure.Dummy__ +var _ m_KMSKeystoreOperations.Dummy__ +var _ m_DDBKeystoreOperations.Dummy__ +var _ m_CreateKeys.Dummy__ +var _ m_CreateKeyStoreTable.Dummy__ +var _ m_GetKeys.Dummy__ +var _ m_AwsCryptographyKeyStoreOperations.Dummy__ +var _ m_KeyStore.Dummy__ +var _ m__Unicode.Dummy__ +var _ m_Functions.Dummy__ +var _ m_Utf8EncodingForm.Dummy__ +var _ m_Utf16EncodingForm.Dummy__ +var _ m_UnicodeStrings.Dummy__ +var _ m_FileIO.Dummy__ +var _ m_GeneralInternals.Dummy__ +var _ m_MulInternalsNonlinear.Dummy__ +var _ m_MulInternals.Dummy__ +var _ m_Mul.Dummy__ +var _ m_ModInternalsNonlinear.Dummy__ +var _ m_DivInternalsNonlinear.Dummy__ +var _ m_ModInternals.Dummy__ +var _ m_DivInternals.Dummy__ +var _ m_DivMod.Dummy__ +var _ m_Power.Dummy__ +var _ m_Logarithm.Dummy__ +var _ m_StandardLibraryInterop.Dummy__ +var _ m_Streams.Dummy__ +var _ m_Sorting.Dummy__ +var _ m_HexStrings.Dummy__ +var _ m_GetOpt.Dummy__ +var _ m_FloatCompare.Dummy__ +var _ m_Base64Lemmas.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Dummy__ +var _ m_StructuredEncryptionUtil.Dummy__ +var _ m_Sets.Dummy__ +var _ m_StructuredEncryptionPaths.Dummy__ +var _ m_StructuredEncryptionHeader.Dummy__ +var _ m_StructuredEncryptionFooter.Dummy__ +var _ m_SortCanon.Dummy__ +var _ m_Canonize.Dummy__ +var _ m_StructuredEncryptionCrypt.Dummy__ +var _ m__Maps.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkStructuredEncryptionOperations.Dummy__ +var _ m_StructuredEncryption.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Dummy__ +var _ m_DynamoDbEncryptionUtil.Dummy__ +var _ m_DynamoDbNormalizeNumber.Dummy__ +var _ m_DynamoToStruct.Dummy__ +var _ m_DynamoDbItemEncryptorUtil.Dummy__ +var _ m_InternalLegacyOverride.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorOperations.Dummy__ +var _ m_DynamoDbItemEncryptor.Dummy__ +var _ m_DynamoDbEncryptionBranchKeyIdSupplier.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkDynamoDbOperations.Dummy__ +var _ m_DynamoDbEncryption.Dummy__ +var _ m_TermLoc.Dummy__ +var _ m_DdbVirtualFields.Dummy__ +var _ m_DynamoDbUpdateExpr.Dummy__ +var _ m_BaseBeacon.Dummy__ +var _ m_CompoundBeacon.Dummy__ +var _ m_SearchableEncryptionInfo.Dummy__ +var _ m_DynamoDBFilterExpr.Dummy__ +var _ m_DynamoDBSupport.Dummy__ +var _ m_SearchConfigToInfo.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Dummy__ +var _ m_DdbMiddlewareConfig.Dummy__ +var _ m_DdbStatement.Dummy__ +var _ m_DynamoDbMiddlewareSupport.Dummy__ + +type Dummy__ struct{} + +// Definition of class Default__ +type Default__ struct { + dummy byte +} + +func New_Default___() *Default__ { + _this := Default__{} + + return &_this +} + +type CompanionStruct_Default___ struct { +} + +var Companion_Default___ = CompanionStruct_Default___{} + +func (_this *Default__) Equals(other *Default__) bool { + return _this == other +} + +func (_this *Default__) EqualsGeneric(x interface{}) bool { + other, ok := x.(*Default__) + return ok && _this.Equals(other) +} + +func (*Default__) String() string { + return "PutItemTransform.Default__" +} +func (_this *Default__) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = &Default__{} + +func (_static *CompanionStruct_Default___) Input(config m_DdbMiddlewareConfig.Config, input m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.PutItemInputTransformInput) m_Wrappers.Result { + var output m_Wrappers.Result = m_Wrappers.Result{} + _ = output + if m_DdbMiddlewareConfig.Companion_Default___.IsPlainWrite(config, ((input).Dtor_sdkInput()).Dtor_TableName()) { + output = m_Wrappers.Companion_Result_.Create_Success_(m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_PutItemInputTransformOutput_.Create_PutItemInputTransformOutput_((input).Dtor_sdkInput())) + return output + } + var _0_tableConfig m_DdbMiddlewareConfig.TableConfig + _ = _0_tableConfig + _0_tableConfig = ((config).Dtor_tableEncryptionConfigs()).Get(((input).Dtor_sdkInput()).Dtor_TableName()).(m_DdbMiddlewareConfig.TableConfig) + var _1_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _1_valueOrError0 + _1_valueOrError0 = m_Wrappers.Companion_Default___.Need(m_DynamoDbMiddlewareSupport.Companion_Default___.NoMap(((input).Dtor_sdkInput()).Dtor_Expected()), m_DdbMiddlewareConfig.Companion_Default___.E(_dafny.SeqOfString("Legacy parameter 'Expected' not supported in PutItem with Encryption."))) + if (_1_valueOrError0).IsFailure() { + output = (_1_valueOrError0).PropagateFailure() + return output + } + var _2_valueOrError1 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _2_valueOrError1 + _2_valueOrError1 = m_Wrappers.Companion_Default___.Need((((input).Dtor_sdkInput()).Dtor_ConditionalOperator()).Is_None(), m_DdbMiddlewareConfig.Companion_Default___.E(_dafny.SeqOfString("Legacy parameter 'ConditionalOperator' not supported in PutItem with Encryption."))) + if (_2_valueOrError1).IsFailure() { + output = (_2_valueOrError1).PropagateFailure() + return output + } + var _3_valueOrError2 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(false) + _ = _3_valueOrError2 + _3_valueOrError2 = m_DynamoDbMiddlewareSupport.Companion_Default___.IsWriteable(_0_tableConfig, ((input).Dtor_sdkInput()).Dtor_Item()) + if (_3_valueOrError2).IsFailure() { + output = (_3_valueOrError2).PropagateFailure() + return output + } + var _4___v0 bool + _ = _4___v0 + _4___v0 = (_3_valueOrError2).Extract().(bool) + var _5_valueOrError3 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(false) + _ = _5_valueOrError3 + _5_valueOrError3 = m_DynamoDbMiddlewareSupport.Companion_Default___.TestConditionExpression(_0_tableConfig, ((input).Dtor_sdkInput()).Dtor_ConditionExpression(), ((input).Dtor_sdkInput()).Dtor_ExpressionAttributeNames(), ((input).Dtor_sdkInput()).Dtor_ExpressionAttributeValues()) + if (_5_valueOrError3).IsFailure() { + output = (_5_valueOrError3).PropagateFailure() + return output + } + var _6___v1 bool + _ = _6___v1 + _6___v1 = (_5_valueOrError3).Extract().(bool) + var _7_valueOrError4 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptyMap) + _ = _7_valueOrError4 + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_DynamoDbMiddlewareSupport.Companion_Default___.AddSignedBeacons(_0_tableConfig, ((input).Dtor_sdkInput()).Dtor_Item()) + _7_valueOrError4 = _out0 + if (_7_valueOrError4).IsFailure() { + output = (_7_valueOrError4).PropagateFailure() + return output + } + var _8_item _dafny.Map + _ = _8_item + _8_item = (_7_valueOrError4).Extract().(_dafny.Map) + var _9_encryptRes m_Wrappers.Result + _ = _9_encryptRes + var _out1 m_Wrappers.Result + _ = _out1 + _out1 = ((_0_tableConfig).Dtor_itemEncryptor()).EncryptItem(m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Companion_EncryptItemInput_.Create_EncryptItemInput_(_8_item)) + _9_encryptRes = _out1 + var _10_valueOrError5 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Companion_EncryptItemOutput_.Default()) + _ = _10_valueOrError5 + _10_valueOrError5 = m_DdbMiddlewareConfig.Companion_Default___.MapError(_9_encryptRes) + if (_10_valueOrError5).IsFailure() { + output = (_10_valueOrError5).PropagateFailure() + return output + } + var _11_encrypted m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.EncryptItemOutput + _ = _11_encrypted + _11_encrypted = (_10_valueOrError5).Extract().(m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.EncryptItemOutput) + var _12_valueOrError6 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_Wrappers.Companion_Option_.Default()) + _ = _12_valueOrError6 + _12_valueOrError6 = m_DynamoDbMiddlewareSupport.Companion_Default___.GetKeyIdFromHeader(_0_tableConfig, _11_encrypted) + if (_12_valueOrError6).IsFailure() { + output = (_12_valueOrError6).PropagateFailure() + return output + } + var _13_keyId m_Wrappers.Option + _ = _13_keyId + _13_keyId = (_12_valueOrError6).Extract().(m_Wrappers.Option) + var _14_valueOrError7 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptyMap) + _ = _14_valueOrError7 + var _out2 m_Wrappers.Result + _ = _out2 + _out2 = m_DynamoDbMiddlewareSupport.Companion_Default___.GetEncryptedBeacons(_0_tableConfig, ((input).Dtor_sdkInput()).Dtor_Item(), m_DynamoDbEncryptionUtil.Companion_Default___.MaybeFromOptionKeyId(_13_keyId)) + _14_valueOrError7 = _out2 + if (_14_valueOrError7).IsFailure() { + output = (_14_valueOrError7).PropagateFailure() + return output + } + var _15_beacons _dafny.Map + _ = _15_beacons + _15_beacons = (_14_valueOrError7).Extract().(_dafny.Map) + var _pat_let_tv0 = _11_encrypted + _ = _pat_let_tv0 + var _pat_let_tv1 = _15_beacons + _ = _pat_let_tv1 + output = m_Wrappers.Companion_Result_.Create_Success_(m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_PutItemInputTransformOutput_.Create_PutItemInputTransformOutput_(func(_pat_let23_0 m_ComAmazonawsDynamodbTypes.PutItemInput) m_ComAmazonawsDynamodbTypes.PutItemInput { + return func(_16_dt__update__tmp_h0 m_ComAmazonawsDynamodbTypes.PutItemInput) m_ComAmazonawsDynamodbTypes.PutItemInput { + return func(_pat_let24_0 _dafny.Map) m_ComAmazonawsDynamodbTypes.PutItemInput { + return func(_17_dt__update_hItem_h0 _dafny.Map) m_ComAmazonawsDynamodbTypes.PutItemInput { + return m_ComAmazonawsDynamodbTypes.Companion_PutItemInput_.Create_PutItemInput_((_16_dt__update__tmp_h0).Dtor_TableName(), _17_dt__update_hItem_h0, (_16_dt__update__tmp_h0).Dtor_Expected(), (_16_dt__update__tmp_h0).Dtor_ReturnValues(), (_16_dt__update__tmp_h0).Dtor_ReturnConsumedCapacity(), (_16_dt__update__tmp_h0).Dtor_ReturnItemCollectionMetrics(), (_16_dt__update__tmp_h0).Dtor_ConditionalOperator(), (_16_dt__update__tmp_h0).Dtor_ConditionExpression(), (_16_dt__update__tmp_h0).Dtor_ExpressionAttributeNames(), (_16_dt__update__tmp_h0).Dtor_ExpressionAttributeValues(), (_16_dt__update__tmp_h0).Dtor_ReturnValuesOnConditionCheckFailure()) + }(_pat_let24_0) + }(((_pat_let_tv0).Dtor_encryptedItem()).Merge(_pat_let_tv1)) + }(_pat_let23_0) + }((input).Dtor_sdkInput()))) + return output + return output +} +func (_static *CompanionStruct_Default___) Output(config m_DdbMiddlewareConfig.Config, input m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.PutItemOutputTransformInput) m_Wrappers.Result { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_PutItemOutputTransformOutput_.Default()) + _ = output + var _0_tableName _dafny.Sequence + _ = _0_tableName + _0_tableName = ((input).Dtor_originalInput()).Dtor_TableName() + if (!((config).Dtor_tableEncryptionConfigs()).Contains(_0_tableName)) || (m_DynamoDbMiddlewareSupport.Companion_Default___.NoMap(((input).Dtor_sdkOutput()).Dtor_Attributes())) { + output = m_Wrappers.Companion_Result_.Create_Success_(m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_PutItemOutputTransformOutput_.Create_PutItemOutputTransformOutput_((input).Dtor_sdkOutput())) + return output + } + var _1_tableConfig m_DdbMiddlewareConfig.TableConfig + _ = _1_tableConfig + _1_tableConfig = ((config).Dtor_tableEncryptionConfigs()).Get(_0_tableName).(m_DdbMiddlewareConfig.TableConfig) + var _2_decryptRes m_Wrappers.Result + _ = _2_decryptRes + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = ((_1_tableConfig).Dtor_itemEncryptor()).DecryptItem(m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Companion_DecryptItemInput_.Create_DecryptItemInput_((((input).Dtor_sdkOutput()).Dtor_Attributes()).Dtor_value().(_dafny.Map))) + _2_decryptRes = _out0 + var _3_valueOrError0 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Companion_DecryptItemOutput_.Default()) + _ = _3_valueOrError0 + _3_valueOrError0 = m_DdbMiddlewareConfig.Companion_Default___.MapError(_2_decryptRes) + if (_3_valueOrError0).IsFailure() { + output = (_3_valueOrError0).PropagateFailure() + return output + } + var _4_decrypted m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.DecryptItemOutput + _ = _4_decrypted + _4_decrypted = (_3_valueOrError0).Extract().(m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.DecryptItemOutput) + var _5_valueOrError1 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptyMap) + _ = _5_valueOrError1 + _5_valueOrError1 = m_DynamoDbMiddlewareSupport.Companion_Default___.RemoveBeacons(_1_tableConfig, (_4_decrypted).Dtor_plaintextItem()) + if (_5_valueOrError1).IsFailure() { + output = (_5_valueOrError1).PropagateFailure() + return output + } + var _6_item _dafny.Map + _ = _6_item + _6_item = (_5_valueOrError1).Extract().(_dafny.Map) + var _pat_let_tv0 = _6_item + _ = _pat_let_tv0 + output = m_Wrappers.Companion_Result_.Create_Success_(m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_PutItemOutputTransformOutput_.Create_PutItemOutputTransformOutput_(func(_pat_let25_0 m_ComAmazonawsDynamodbTypes.PutItemOutput) m_ComAmazonawsDynamodbTypes.PutItemOutput { + return func(_7_dt__update__tmp_h0 m_ComAmazonawsDynamodbTypes.PutItemOutput) m_ComAmazonawsDynamodbTypes.PutItemOutput { + return func(_pat_let26_0 m_Wrappers.Option) m_ComAmazonawsDynamodbTypes.PutItemOutput { + return func(_8_dt__update_hAttributes_h0 m_Wrappers.Option) m_ComAmazonawsDynamodbTypes.PutItemOutput { + return m_ComAmazonawsDynamodbTypes.Companion_PutItemOutput_.Create_PutItemOutput_(_8_dt__update_hAttributes_h0, (_7_dt__update__tmp_h0).Dtor_ConsumedCapacity(), (_7_dt__update__tmp_h0).Dtor_ItemCollectionMetrics()) + }(_pat_let26_0) + }(m_Wrappers.Companion_Option_.Create_Some_(_pat_let_tv0)) + }(_pat_let25_0) + }((input).Dtor_sdkOutput()))) + return output + return output +} + +// End of class Default__ diff --git a/customer-preview/ddb-esdk/QueryTransform/QueryTransform.go b/customer-preview/ddb-esdk/QueryTransform/QueryTransform.go new file mode 100644 index 000000000..232dac4a4 --- /dev/null +++ b/customer-preview/ddb-esdk/QueryTransform/QueryTransform.go @@ -0,0 +1,516 @@ +// Package QueryTransform +// Dafny module QueryTransform compiled into Go + +package QueryTransform + +import ( + os "os" + + m_ComAmazonawsDynamodbTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/ComAmazonawsDynamodbTypes" + m_Com_Amazonaws_Dynamodb "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/Com_Amazonaws_Dynamodb" + m_ComAmazonawsKmsTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/ComAmazonawsKmsTypes" + m_Com_Amazonaws_Kms "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/Com_Amazonaws_Kms" + m_AlgorithmSuites "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AlgorithmSuites" + m_AwsArnParsing "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsArnParsing" + m_AwsCryptographyKeyStoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreOperations" + m_AwsCryptographyKeyStoreTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreTypes" + m_AwsCryptographyMaterialProvidersOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersOperations" + m_AwsCryptographyMaterialProvidersTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersTypes" + m_AwsKmsDiscoveryKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsDiscoveryKeyring" + m_AwsKmsEcdhKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsEcdhKeyring" + m_AwsKmsHierarchicalKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsHierarchicalKeyring" + m_AwsKmsKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsKeyring" + m_AwsKmsMrkAreUnique "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkAreUnique" + m_AwsKmsMrkDiscoveryKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkDiscoveryKeyring" + m_AwsKmsMrkKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkKeyring" + m_AwsKmsMrkMatchForDecrypt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkMatchForDecrypt" + m_AwsKmsRsaKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsRsaKeyring" + m_AwsKmsUtils "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsUtils" + m_CMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CMM" + m_CacheConstants "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CacheConstants" + m_CanonicalEncryptionContext "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CanonicalEncryptionContext" + m_Commitment "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Commitment" + m_Constants "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Constants" + m_CreateKeyStoreTable "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeyStoreTable" + m_CreateKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeys" + m_DDBKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DDBKeystoreOperations" + m_DefaultCMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DefaultCMM" + m_DefaultClientSupplier "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DefaultClientSupplier" + m_Defaults "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Defaults" + m_DiscoveryMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DiscoveryMultiKeyring" + m_EcdhEdkWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/EcdhEdkWrapping" + m_EdkWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/EdkWrapping" + m_ErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/ErrorMessages" + m_GetKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/GetKeys" + m_IntermediateKeyWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/IntermediateKeyWrapping" + m_KMSKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KMSKeystoreOperations" + m_KeyStore "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStore" + m_KeyStoreErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStoreErrorMessages" + m_Keyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Keyring" + m_KmsArn "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KmsArn" + m_LocalCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/LocalCMC" + m_MaterialProviders "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MaterialProviders" + m_MaterialWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MaterialWrapping" + m_Materials "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Materials" + m_MrkAwareDiscoveryMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MrkAwareDiscoveryMultiKeyring" + m_MrkAwareStrictMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MrkAwareStrictMultiKeyring" + m_MultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MultiKeyring" + m_RawAESKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawAESKeyring" + m_RawECDHKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawECDHKeyring" + m_RawRSAKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawRSAKeyring" + m_RequiredEncryptionContextCMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RequiredEncryptionContextCMM" + m_StormTracker "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StormTracker" + m_StormTrackingCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StormTrackingCMC" + m_StrictMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StrictMultiKeyring" + m_Structure "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Structure" + m_SynchronizedLocalCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/SynchronizedLocalCMC" + m_Utils "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Utils" + m_AtomicPrimitives "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AtomicPrimitives" + m_AwsCryptographyPrimitivesOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesOperations" + m_AwsCryptographyPrimitivesTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesTypes" + m_Digest "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Digest" + m_HKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/HKDF" + m_KdfCtr "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/KdfCtr" + m_Random "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Random" + m_WrappedHKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHKDF" + m_WrappedHMAC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHMAC" + m_Actions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Actions" + m_Base64 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64" + m_Base64Lemmas "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64Lemmas" + m_BoundedInts "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/BoundedInts" + m_DivInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternals" + m_DivInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternalsNonlinear" + m_DivMod "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivMod" + m_FileIO "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FileIO" + m_FloatCompare "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FloatCompare" + m_Functions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Functions" + m_GeneralInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GeneralInternals" + m_GetOpt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GetOpt" + m_HexStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/HexStrings" + m_Logarithm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Logarithm" + m__Math "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Math_" + m_ModInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternals" + m_ModInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternalsNonlinear" + m_Mul "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Mul" + m_MulInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternals" + m_MulInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternalsNonlinear" + m_Power "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Power" + m_Relations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Relations" + m_Seq "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq" + m_Seq_MergeSort "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq_MergeSort" + m_Sorting "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Sorting" + m_StandardLibrary "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary" + m_StandardLibraryInterop "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibraryInterop" + m_StandardLibrary_Sequence "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_Sequence" + m_StandardLibrary_String "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_String" + m_StandardLibrary_UInt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_UInt" + m_Streams "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Streams" + m_UTF8 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UTF8" + m_UnicodeStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UnicodeStrings" + m__Unicode "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Unicode_" + m_Utf16EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf16EncodingForm" + m_Utf8EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf8EncodingForm" + m_Wrappers "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers" + m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorOperations "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorOperations" + m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes" + m_AwsCryptographyDbEncryptionSdkDynamoDbOperations "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbOperations" + m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes" + m_AwsCryptographyDbEncryptionSdkDynamoDbTypes "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbTypes" + m_AwsCryptographyDbEncryptionSdkStructuredEncryptionOperations "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkStructuredEncryptionOperations" + m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes" + m_BaseBeacon "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/BaseBeacon" + m_BatchGetItemTransform "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/BatchGetItemTransform" + m_BatchWriteItemTransform "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/BatchWriteItemTransform" + m_Canonize "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/Canonize" + m_CompoundBeacon "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/CompoundBeacon" + m_DdbMiddlewareConfig "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DdbMiddlewareConfig" + m_DdbStatement "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DdbStatement" + m_DdbVirtualFields "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DdbVirtualFields" + m_DynamoDBFilterExpr "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDBFilterExpr" + m_DynamoDBSupport "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDBSupport" + m_DynamoDbEncryption "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbEncryption" + m_DynamoDbEncryptionBranchKeyIdSupplier "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbEncryptionBranchKeyIdSupplier" + m_DynamoDbEncryptionUtil "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbEncryptionUtil" + m_DynamoDbItemEncryptor "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbItemEncryptor" + m_DynamoDbItemEncryptorUtil "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbItemEncryptorUtil" + m_DynamoDbMiddlewareSupport "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbMiddlewareSupport" + m_DynamoDbNormalizeNumber "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbNormalizeNumber" + m_DynamoDbUpdateExpr "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbUpdateExpr" + m_DynamoToStruct "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoToStruct" + m_GetItemTransform "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/GetItemTransform" + m_InternalLegacyOverride "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/InternalLegacyOverride" + m__Maps "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/Maps_" + m_PutItemTransform "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/PutItemTransform" + m_ScanTransform "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/ScanTransform" + m_SearchConfigToInfo "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/SearchConfigToInfo" + m_SearchableEncryptionInfo "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/SearchableEncryptionInfo" + m_Sets "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/Sets" + m_SortCanon "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/SortCanon" + m_StructuredEncryption "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryption" + m_StructuredEncryptionCrypt "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionCrypt" + m_StructuredEncryptionFooter "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionFooter" + m_StructuredEncryptionHeader "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionHeader" + m_StructuredEncryptionPaths "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionPaths" + m_StructuredEncryptionUtil "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionUtil" + m_TermLoc "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/TermLoc" + m_TransactWriteItemsTransform "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/TransactWriteItemsTransform" + m_UpdateItemTransform "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/UpdateItemTransform" + m__System "github.com/dafny-lang/DafnyRuntimeGo/v4/System_" + _dafny "github.com/dafny-lang/DafnyRuntimeGo/v4/dafny" +) + +var _ = os.Args +var _ _dafny.Dummy__ +var _ m__System.Dummy__ +var _ m_Wrappers.Dummy__ +var _ m_BoundedInts.Dummy__ +var _ m_StandardLibrary_UInt.Dummy__ +var _ m_StandardLibrary_Sequence.Dummy__ +var _ m_StandardLibrary_String.Dummy__ +var _ m_StandardLibrary.Dummy__ +var _ m_AwsCryptographyPrimitivesTypes.Dummy__ +var _ m_Random.Dummy__ +var _ m_Digest.Dummy__ +var _ m_WrappedHMAC.Dummy__ +var _ m_HKDF.Dummy__ +var _ m_WrappedHKDF.Dummy__ +var _ m_KdfCtr.Dummy__ +var _ m_AwsCryptographyPrimitivesOperations.Dummy__ +var _ m_AtomicPrimitives.Dummy__ +var _ m_ComAmazonawsDynamodbTypes.Dummy__ +var _ m_ComAmazonawsKmsTypes.Dummy__ +var _ m_AwsCryptographyKeyStoreTypes.Dummy__ +var _ m_AwsCryptographyMaterialProvidersTypes.Dummy__ +var _ m_Base64.Dummy__ +var _ m_AlgorithmSuites.Dummy__ +var _ m_Materials.Dummy__ +var _ m_Keyring.Dummy__ +var _ m_Relations.Dummy__ +var _ m_Seq_MergeSort.Dummy__ +var _ m__Math.Dummy__ +var _ m_Seq.Dummy__ +var _ m_MultiKeyring.Dummy__ +var _ m_AwsArnParsing.Dummy__ +var _ m_AwsKmsMrkAreUnique.Dummy__ +var _ m_Actions.Dummy__ +var _ m_AwsKmsMrkMatchForDecrypt.Dummy__ +var _ m_AwsKmsUtils.Dummy__ +var _ m_Constants.Dummy__ +var _ m_MaterialWrapping.Dummy__ +var _ m_CanonicalEncryptionContext.Dummy__ +var _ m_IntermediateKeyWrapping.Dummy__ +var _ m_EdkWrapping.Dummy__ +var _ m_ErrorMessages.Dummy__ +var _ m_AwsKmsKeyring.Dummy__ +var _ m_StrictMultiKeyring.Dummy__ +var _ m_AwsKmsDiscoveryKeyring.Dummy__ +var _ m_Com_Amazonaws_Kms.Dummy__ +var _ m_Com_Amazonaws_Dynamodb.Dummy__ +var _ m_DiscoveryMultiKeyring.Dummy__ +var _ m_AwsKmsMrkDiscoveryKeyring.Dummy__ +var _ m_MrkAwareDiscoveryMultiKeyring.Dummy__ +var _ m_AwsKmsMrkKeyring.Dummy__ +var _ m_MrkAwareStrictMultiKeyring.Dummy__ +var _ m_LocalCMC.Dummy__ +var _ m_SynchronizedLocalCMC.Dummy__ +var _ m_StormTracker.Dummy__ +var _ m_StormTrackingCMC.Dummy__ +var _ m_CacheConstants.Dummy__ +var _ m_AwsKmsHierarchicalKeyring.Dummy__ +var _ m_AwsKmsRsaKeyring.Dummy__ +var _ m_EcdhEdkWrapping.Dummy__ +var _ m_RawECDHKeyring.Dummy__ +var _ m_AwsKmsEcdhKeyring.Dummy__ +var _ m_RawAESKeyring.Dummy__ +var _ m_RawRSAKeyring.Dummy__ +var _ m_CMM.Dummy__ +var _ m_Defaults.Dummy__ +var _ m_Commitment.Dummy__ +var _ m_DefaultCMM.Dummy__ +var _ m_DefaultClientSupplier.Dummy__ +var _ m_Utils.Dummy__ +var _ m_RequiredEncryptionContextCMM.Dummy__ +var _ m_AwsCryptographyMaterialProvidersOperations.Dummy__ +var _ m_MaterialProviders.Dummy__ +var _ m_KeyStoreErrorMessages.Dummy__ +var _ m_KmsArn.Dummy__ +var _ m_Structure.Dummy__ +var _ m_KMSKeystoreOperations.Dummy__ +var _ m_DDBKeystoreOperations.Dummy__ +var _ m_CreateKeys.Dummy__ +var _ m_CreateKeyStoreTable.Dummy__ +var _ m_GetKeys.Dummy__ +var _ m_AwsCryptographyKeyStoreOperations.Dummy__ +var _ m_KeyStore.Dummy__ +var _ m__Unicode.Dummy__ +var _ m_Functions.Dummy__ +var _ m_Utf8EncodingForm.Dummy__ +var _ m_Utf16EncodingForm.Dummy__ +var _ m_UnicodeStrings.Dummy__ +var _ m_FileIO.Dummy__ +var _ m_GeneralInternals.Dummy__ +var _ m_MulInternalsNonlinear.Dummy__ +var _ m_MulInternals.Dummy__ +var _ m_Mul.Dummy__ +var _ m_ModInternalsNonlinear.Dummy__ +var _ m_DivInternalsNonlinear.Dummy__ +var _ m_ModInternals.Dummy__ +var _ m_DivInternals.Dummy__ +var _ m_DivMod.Dummy__ +var _ m_Power.Dummy__ +var _ m_Logarithm.Dummy__ +var _ m_StandardLibraryInterop.Dummy__ +var _ m_Streams.Dummy__ +var _ m_Sorting.Dummy__ +var _ m_HexStrings.Dummy__ +var _ m_GetOpt.Dummy__ +var _ m_FloatCompare.Dummy__ +var _ m_Base64Lemmas.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Dummy__ +var _ m_StructuredEncryptionUtil.Dummy__ +var _ m_Sets.Dummy__ +var _ m_StructuredEncryptionPaths.Dummy__ +var _ m_StructuredEncryptionHeader.Dummy__ +var _ m_StructuredEncryptionFooter.Dummy__ +var _ m_SortCanon.Dummy__ +var _ m_Canonize.Dummy__ +var _ m_StructuredEncryptionCrypt.Dummy__ +var _ m__Maps.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkStructuredEncryptionOperations.Dummy__ +var _ m_StructuredEncryption.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Dummy__ +var _ m_DynamoDbEncryptionUtil.Dummy__ +var _ m_DynamoDbNormalizeNumber.Dummy__ +var _ m_DynamoToStruct.Dummy__ +var _ m_DynamoDbItemEncryptorUtil.Dummy__ +var _ m_InternalLegacyOverride.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorOperations.Dummy__ +var _ m_DynamoDbItemEncryptor.Dummy__ +var _ m_DynamoDbEncryptionBranchKeyIdSupplier.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkDynamoDbOperations.Dummy__ +var _ m_DynamoDbEncryption.Dummy__ +var _ m_TermLoc.Dummy__ +var _ m_DdbVirtualFields.Dummy__ +var _ m_DynamoDbUpdateExpr.Dummy__ +var _ m_BaseBeacon.Dummy__ +var _ m_CompoundBeacon.Dummy__ +var _ m_SearchableEncryptionInfo.Dummy__ +var _ m_DynamoDBFilterExpr.Dummy__ +var _ m_DynamoDBSupport.Dummy__ +var _ m_SearchConfigToInfo.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Dummy__ +var _ m_DdbMiddlewareConfig.Dummy__ +var _ m_DdbStatement.Dummy__ +var _ m_DynamoDbMiddlewareSupport.Dummy__ +var _ m_PutItemTransform.Dummy__ +var _ m_GetItemTransform.Dummy__ +var _ m_UpdateItemTransform.Dummy__ +var _ m_BatchWriteItemTransform.Dummy__ +var _ m_TransactWriteItemsTransform.Dummy__ +var _ m_BatchGetItemTransform.Dummy__ +var _ m_ScanTransform.Dummy__ + +type Dummy__ struct{} + +// Definition of class Default__ +type Default__ struct { + dummy byte +} + +func New_Default___() *Default__ { + _this := Default__{} + + return &_this +} + +type CompanionStruct_Default___ struct { +} + +var Companion_Default___ = CompanionStruct_Default___{} + +func (_this *Default__) Equals(other *Default__) bool { + return _this == other +} + +func (_this *Default__) EqualsGeneric(x interface{}) bool { + other, ok := x.(*Default__) + return ok && _this.Equals(other) +} + +func (*Default__) String() string { + return "QueryTransform.Default__" +} +func (_this *Default__) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = &Default__{} + +func (_static *CompanionStruct_Default___) Input(config m_DdbMiddlewareConfig.Config, input m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.QueryInputTransformInput) m_Wrappers.Result { + var output m_Wrappers.Result = m_Wrappers.Result{} + _ = output + if !((config).Dtor_tableEncryptionConfigs()).Contains(((input).Dtor_sdkInput()).Dtor_TableName()) { + output = m_Wrappers.Companion_Result_.Create_Success_(m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_QueryInputTransformOutput_.Create_QueryInputTransformOutput_((input).Dtor_sdkInput())) + return output + } else { + var _0_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _0_valueOrError0 + _0_valueOrError0 = m_Wrappers.Companion_Default___.Need(m_DynamoDbMiddlewareSupport.Companion_Default___.NoList(((input).Dtor_sdkInput()).Dtor_AttributesToGet()), m_DdbMiddlewareConfig.Companion_Default___.E(_dafny.SeqOfString("Legacy parameter 'AttributesToGet' not supported in Query with Encryption"))) + if (_0_valueOrError0).IsFailure() { + output = (_0_valueOrError0).PropagateFailure() + return output + } + var _1_valueOrError1 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _1_valueOrError1 + _1_valueOrError1 = m_Wrappers.Companion_Default___.Need(m_DynamoDbMiddlewareSupport.Companion_Default___.NoMap(((input).Dtor_sdkInput()).Dtor_KeyConditions()), m_DdbMiddlewareConfig.Companion_Default___.E(_dafny.SeqOfString("Legacy parameter 'KeyConditions' not supported in Query with Encryption"))) + if (_1_valueOrError1).IsFailure() { + output = (_1_valueOrError1).PropagateFailure() + return output + } + var _2_valueOrError2 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _2_valueOrError2 + _2_valueOrError2 = m_Wrappers.Companion_Default___.Need(m_DynamoDbMiddlewareSupport.Companion_Default___.NoMap(((input).Dtor_sdkInput()).Dtor_QueryFilter()), m_DdbMiddlewareConfig.Companion_Default___.E(_dafny.SeqOfString("Legacy parameter 'QueryFilter' not supported in Query with Encryption"))) + if (_2_valueOrError2).IsFailure() { + output = (_2_valueOrError2).PropagateFailure() + return output + } + var _3_valueOrError3 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _3_valueOrError3 + _3_valueOrError3 = m_Wrappers.Companion_Default___.Need((((input).Dtor_sdkInput()).Dtor_ConditionalOperator()).Is_None(), m_DdbMiddlewareConfig.Companion_Default___.E(_dafny.SeqOfString("Legacy parameter 'ConditionalOperator' not supported in Query with Encryption"))) + if (_3_valueOrError3).IsFailure() { + output = (_3_valueOrError3).PropagateFailure() + return output + } + var _4_tableConfig m_DdbMiddlewareConfig.TableConfig + _ = _4_tableConfig + _4_tableConfig = ((config).Dtor_tableEncryptionConfigs()).Get(((input).Dtor_sdkInput()).Dtor_TableName()).(m_DdbMiddlewareConfig.TableConfig) + var _5_valueOrError4 m_Wrappers.Result = m_Wrappers.Result{} + _ = _5_valueOrError4 + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_DynamoDbMiddlewareSupport.Companion_Default___.QueryInputForBeacons(_4_tableConfig, (input).Dtor_sdkInput()) + _5_valueOrError4 = _out0 + if (_5_valueOrError4).IsFailure() { + output = (_5_valueOrError4).PropagateFailure() + return output + } + var _6_finalResult m_ComAmazonawsDynamodbTypes.QueryInput + _ = _6_finalResult + _6_finalResult = (_5_valueOrError4).Extract().(m_ComAmazonawsDynamodbTypes.QueryInput) + output = m_Wrappers.Companion_Result_.Create_Success_(m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_QueryInputTransformOutput_.Create_QueryInputTransformOutput_(_6_finalResult)) + return output + } + return output +} +func (_static *CompanionStruct_Default___) Output(config m_DdbMiddlewareConfig.Config, input m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.QueryOutputTransformInput) m_Wrappers.Result { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_QueryOutputTransformOutput_.Default()) + _ = output + var _0_tableName _dafny.Sequence + _ = _0_tableName + _0_tableName = ((input).Dtor_originalInput()).Dtor_TableName() + if (!((config).Dtor_tableEncryptionConfigs()).Contains(_0_tableName)) || (m_DynamoDbMiddlewareSupport.Companion_Default___.NoList(((input).Dtor_sdkOutput()).Dtor_Items())) { + output = m_Wrappers.Companion_Result_.Create_Success_(m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_QueryOutputTransformOutput_.Create_QueryOutputTransformOutput_((input).Dtor_sdkOutput())) + return output + } + var _1_tableConfig m_DdbMiddlewareConfig.TableConfig + _ = _1_tableConfig + _1_tableConfig = ((config).Dtor_tableEncryptionConfigs()).Get(_0_tableName).(m_DdbMiddlewareConfig.TableConfig) + var _2_decryptedItems _dafny.Sequence + _ = _2_decryptedItems + _2_decryptedItems = _dafny.SeqOf() + var _3_encryptedItems _dafny.Sequence + _ = _3_encryptedItems + _3_encryptedItems = (((input).Dtor_sdkOutput()).Dtor_Items()).Dtor_value().(_dafny.Sequence) + var _4_valueOrError0 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_DynamoDbEncryptionUtil.Companion_MaybeKeyId_.Default()) + _ = _4_valueOrError0 + _4_valueOrError0 = m_DynamoDbMiddlewareSupport.Companion_Default___.GetBeaconKeyId(_1_tableConfig, ((input).Dtor_originalInput()).Dtor_KeyConditionExpression(), ((input).Dtor_originalInput()).Dtor_FilterExpression(), ((input).Dtor_originalInput()).Dtor_ExpressionAttributeValues(), ((input).Dtor_originalInput()).Dtor_ExpressionAttributeNames()) + if (_4_valueOrError0).IsFailure() { + output = (_4_valueOrError0).PropagateFailure() + return output + } + var _5_keyId m_DynamoDbEncryptionUtil.MaybeKeyId + _ = _5_keyId + _5_keyId = (_4_valueOrError0).Extract().(m_DynamoDbEncryptionUtil.MaybeKeyId) + var _6_keyIdUtf8 _dafny.Sequence + _ = _6_keyIdUtf8 + _6_keyIdUtf8 = _dafny.SeqOf() + if (_5_keyId).Is_KeyId() { + var _7_valueOrError1 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_UTF8.Companion_ValidUTF8Bytes_.Witness()) + _ = _7_valueOrError1 + _7_valueOrError1 = (m_UTF8.Encode((_5_keyId).Dtor_value())).MapFailure(func(coer156 func(_dafny.Sequence) m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Error) func(interface{}) interface{} { + return func(arg190 interface{}) interface{} { + return coer156(arg190.(_dafny.Sequence)) + } + }(func(_8_e _dafny.Sequence) m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Error { + return m_DdbMiddlewareConfig.Companion_Default___.E(_8_e) + })) + if (_7_valueOrError1).IsFailure() { + output = (_7_valueOrError1).PropagateFailure() + return output + } + _6_keyIdUtf8 = (_7_valueOrError1).Extract().(_dafny.Sequence) + } + var _hi0 _dafny.Int = _dafny.IntOfUint32((_3_encryptedItems).Cardinality()) + _ = _hi0 + for _9_x := _dafny.Zero; _9_x.Cmp(_hi0) < 0; _9_x = _9_x.Plus(_dafny.One) { + var _10_decryptInput m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.DecryptItemInput + _ = _10_decryptInput + _10_decryptInput = m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Companion_DecryptItemInput_.Create_DecryptItemInput_((_3_encryptedItems).Select((_9_x).Uint32()).(_dafny.Map)) + var _11_decryptRes m_Wrappers.Result + _ = _11_decryptRes + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = ((_1_tableConfig).Dtor_itemEncryptor()).DecryptItem(_10_decryptInput) + _11_decryptRes = _out0 + var _12_valueOrError2 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Companion_DecryptItemOutput_.Default()) + _ = _12_valueOrError2 + _12_valueOrError2 = m_DdbMiddlewareConfig.Companion_Default___.MapError(_11_decryptRes) + if (_12_valueOrError2).IsFailure() { + output = (_12_valueOrError2).PropagateFailure() + return output + } + var _13_decrypted m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.DecryptItemOutput + _ = _13_decrypted + _13_decrypted = (_12_valueOrError2).Extract().(m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.DecryptItemOutput) + if ((_5_keyId).Is_KeyId()) && (((_13_decrypted).Dtor_parsedHeader()).Is_Some()) { + var _14_valueOrError3 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _14_valueOrError3 + _14_valueOrError3 = m_Wrappers.Companion_Default___.Need((_dafny.IntOfUint32(((((_13_decrypted).Dtor_parsedHeader()).Dtor_value().(m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.ParsedHeader)).Dtor_encryptedDataKeys()).Cardinality())).Cmp(_dafny.One) == 0, m_DdbMiddlewareConfig.Companion_Default___.E(_dafny.SeqOfString("Query result has more than one Encrypted Data Key"))) + if (_14_valueOrError3).IsFailure() { + output = (_14_valueOrError3).PropagateFailure() + return output + } + if _dafny.Companion_Sequence_.Equal((((((_13_decrypted).Dtor_parsedHeader()).Dtor_value().(m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.ParsedHeader)).Dtor_encryptedDataKeys()).Select(0).(m_AwsCryptographyMaterialProvidersTypes.EncryptedDataKey)).Dtor_keyProviderInfo(), _6_keyIdUtf8) { + _2_decryptedItems = _dafny.Companion_Sequence_.Concatenate(_2_decryptedItems, _dafny.SeqOf((_13_decrypted).Dtor_plaintextItem())) + } + } else { + _2_decryptedItems = _dafny.Companion_Sequence_.Concatenate(_2_decryptedItems, _dafny.SeqOf((_13_decrypted).Dtor_plaintextItem())) + } + } + var _15_decryptedOutput m_ComAmazonawsDynamodbTypes.QueryOutput + _ = _15_decryptedOutput + var _16_dt__update__tmp_h0 m_ComAmazonawsDynamodbTypes.QueryOutput = (input).Dtor_sdkOutput() + _ = _16_dt__update__tmp_h0 + var _17_dt__update_hItems_h0 m_Wrappers.Option = m_Wrappers.Companion_Option_.Create_Some_(_2_decryptedItems) + _ = _17_dt__update_hItems_h0 + _15_decryptedOutput = m_ComAmazonawsDynamodbTypes.Companion_QueryOutput_.Create_QueryOutput_(_17_dt__update_hItems_h0, (_16_dt__update__tmp_h0).Dtor_Count(), (_16_dt__update__tmp_h0).Dtor_ScannedCount(), (_16_dt__update__tmp_h0).Dtor_LastEvaluatedKey(), (_16_dt__update__tmp_h0).Dtor_ConsumedCapacity()) + var _18_valueOrError4 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_ComAmazonawsDynamodbTypes.Companion_QueryOutput_.Default()) + _ = _18_valueOrError4 + var _out1 m_Wrappers.Result + _ = _out1 + _out1 = m_DynamoDbMiddlewareSupport.Companion_Default___.QueryOutputForBeacons(_1_tableConfig, (input).Dtor_originalInput(), _15_decryptedOutput) + _18_valueOrError4 = _out1 + if (_18_valueOrError4).IsFailure() { + output = (_18_valueOrError4).PropagateFailure() + return output + } + var _19_finalResult m_ComAmazonawsDynamodbTypes.QueryOutput + _ = _19_finalResult + _19_finalResult = (_18_valueOrError4).Extract().(m_ComAmazonawsDynamodbTypes.QueryOutput) + output = m_Wrappers.Companion_Result_.Create_Success_(m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_QueryOutputTransformOutput_.Create_QueryOutputTransformOutput_(_19_finalResult)) + return output + return output +} + +// End of class Default__ diff --git a/customer-preview/ddb-esdk/ScanTransform/ScanTransform.go b/customer-preview/ddb-esdk/ScanTransform/ScanTransform.go new file mode 100644 index 000000000..1f5d24848 --- /dev/null +++ b/customer-preview/ddb-esdk/ScanTransform/ScanTransform.go @@ -0,0 +1,507 @@ +// Package ScanTransform +// Dafny module ScanTransform compiled into Go + +package ScanTransform + +import ( + os "os" + + m_ComAmazonawsDynamodbTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/ComAmazonawsDynamodbTypes" + m_Com_Amazonaws_Dynamodb "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/Com_Amazonaws_Dynamodb" + m_ComAmazonawsKmsTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/ComAmazonawsKmsTypes" + m_Com_Amazonaws_Kms "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/Com_Amazonaws_Kms" + m_AlgorithmSuites "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AlgorithmSuites" + m_AwsArnParsing "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsArnParsing" + m_AwsCryptographyKeyStoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreOperations" + m_AwsCryptographyKeyStoreTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreTypes" + m_AwsCryptographyMaterialProvidersOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersOperations" + m_AwsCryptographyMaterialProvidersTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersTypes" + m_AwsKmsDiscoveryKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsDiscoveryKeyring" + m_AwsKmsEcdhKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsEcdhKeyring" + m_AwsKmsHierarchicalKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsHierarchicalKeyring" + m_AwsKmsKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsKeyring" + m_AwsKmsMrkAreUnique "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkAreUnique" + m_AwsKmsMrkDiscoveryKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkDiscoveryKeyring" + m_AwsKmsMrkKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkKeyring" + m_AwsKmsMrkMatchForDecrypt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkMatchForDecrypt" + m_AwsKmsRsaKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsRsaKeyring" + m_AwsKmsUtils "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsUtils" + m_CMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CMM" + m_CacheConstants "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CacheConstants" + m_CanonicalEncryptionContext "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CanonicalEncryptionContext" + m_Commitment "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Commitment" + m_Constants "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Constants" + m_CreateKeyStoreTable "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeyStoreTable" + m_CreateKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeys" + m_DDBKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DDBKeystoreOperations" + m_DefaultCMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DefaultCMM" + m_DefaultClientSupplier "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DefaultClientSupplier" + m_Defaults "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Defaults" + m_DiscoveryMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DiscoveryMultiKeyring" + m_EcdhEdkWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/EcdhEdkWrapping" + m_EdkWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/EdkWrapping" + m_ErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/ErrorMessages" + m_GetKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/GetKeys" + m_IntermediateKeyWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/IntermediateKeyWrapping" + m_KMSKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KMSKeystoreOperations" + m_KeyStore "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStore" + m_KeyStoreErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStoreErrorMessages" + m_Keyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Keyring" + m_KmsArn "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KmsArn" + m_LocalCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/LocalCMC" + m_MaterialProviders "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MaterialProviders" + m_MaterialWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MaterialWrapping" + m_Materials "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Materials" + m_MrkAwareDiscoveryMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MrkAwareDiscoveryMultiKeyring" + m_MrkAwareStrictMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MrkAwareStrictMultiKeyring" + m_MultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MultiKeyring" + m_RawAESKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawAESKeyring" + m_RawECDHKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawECDHKeyring" + m_RawRSAKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawRSAKeyring" + m_RequiredEncryptionContextCMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RequiredEncryptionContextCMM" + m_StormTracker "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StormTracker" + m_StormTrackingCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StormTrackingCMC" + m_StrictMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StrictMultiKeyring" + m_Structure "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Structure" + m_SynchronizedLocalCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/SynchronizedLocalCMC" + m_Utils "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Utils" + m_AtomicPrimitives "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AtomicPrimitives" + m_AwsCryptographyPrimitivesOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesOperations" + m_AwsCryptographyPrimitivesTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesTypes" + m_Digest "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Digest" + m_HKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/HKDF" + m_KdfCtr "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/KdfCtr" + m_Random "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Random" + m_WrappedHKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHKDF" + m_WrappedHMAC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHMAC" + m_Actions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Actions" + m_Base64 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64" + m_Base64Lemmas "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64Lemmas" + m_BoundedInts "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/BoundedInts" + m_DivInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternals" + m_DivInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternalsNonlinear" + m_DivMod "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivMod" + m_FileIO "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FileIO" + m_FloatCompare "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FloatCompare" + m_Functions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Functions" + m_GeneralInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GeneralInternals" + m_GetOpt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GetOpt" + m_HexStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/HexStrings" + m_Logarithm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Logarithm" + m__Math "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Math_" + m_ModInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternals" + m_ModInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternalsNonlinear" + m_Mul "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Mul" + m_MulInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternals" + m_MulInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternalsNonlinear" + m_Power "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Power" + m_Relations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Relations" + m_Seq "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq" + m_Seq_MergeSort "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq_MergeSort" + m_Sorting "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Sorting" + m_StandardLibrary "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary" + m_StandardLibraryInterop "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibraryInterop" + m_StandardLibrary_Sequence "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_Sequence" + m_StandardLibrary_String "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_String" + m_StandardLibrary_UInt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_UInt" + m_Streams "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Streams" + m_UTF8 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UTF8" + m_UnicodeStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UnicodeStrings" + m__Unicode "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Unicode_" + m_Utf16EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf16EncodingForm" + m_Utf8EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf8EncodingForm" + m_Wrappers "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers" + m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorOperations "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorOperations" + m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes" + m_AwsCryptographyDbEncryptionSdkDynamoDbOperations "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbOperations" + m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes" + m_AwsCryptographyDbEncryptionSdkDynamoDbTypes "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbTypes" + m_AwsCryptographyDbEncryptionSdkStructuredEncryptionOperations "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkStructuredEncryptionOperations" + m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes" + m_BaseBeacon "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/BaseBeacon" + m_BatchGetItemTransform "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/BatchGetItemTransform" + m_BatchWriteItemTransform "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/BatchWriteItemTransform" + m_Canonize "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/Canonize" + m_CompoundBeacon "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/CompoundBeacon" + m_DdbMiddlewareConfig "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DdbMiddlewareConfig" + m_DdbStatement "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DdbStatement" + m_DdbVirtualFields "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DdbVirtualFields" + m_DynamoDBFilterExpr "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDBFilterExpr" + m_DynamoDBSupport "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDBSupport" + m_DynamoDbEncryption "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbEncryption" + m_DynamoDbEncryptionBranchKeyIdSupplier "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbEncryptionBranchKeyIdSupplier" + m_DynamoDbEncryptionUtil "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbEncryptionUtil" + m_DynamoDbItemEncryptor "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbItemEncryptor" + m_DynamoDbItemEncryptorUtil "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbItemEncryptorUtil" + m_DynamoDbMiddlewareSupport "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbMiddlewareSupport" + m_DynamoDbNormalizeNumber "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbNormalizeNumber" + m_DynamoDbUpdateExpr "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbUpdateExpr" + m_DynamoToStruct "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoToStruct" + m_GetItemTransform "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/GetItemTransform" + m_InternalLegacyOverride "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/InternalLegacyOverride" + m__Maps "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/Maps_" + m_PutItemTransform "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/PutItemTransform" + m_SearchConfigToInfo "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/SearchConfigToInfo" + m_SearchableEncryptionInfo "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/SearchableEncryptionInfo" + m_Sets "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/Sets" + m_SortCanon "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/SortCanon" + m_StructuredEncryption "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryption" + m_StructuredEncryptionCrypt "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionCrypt" + m_StructuredEncryptionFooter "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionFooter" + m_StructuredEncryptionHeader "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionHeader" + m_StructuredEncryptionPaths "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionPaths" + m_StructuredEncryptionUtil "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionUtil" + m_TermLoc "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/TermLoc" + m_TransactWriteItemsTransform "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/TransactWriteItemsTransform" + m_UpdateItemTransform "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/UpdateItemTransform" + m__System "github.com/dafny-lang/DafnyRuntimeGo/v4/System_" + _dafny "github.com/dafny-lang/DafnyRuntimeGo/v4/dafny" +) + +var _ = os.Args +var _ _dafny.Dummy__ +var _ m__System.Dummy__ +var _ m_Wrappers.Dummy__ +var _ m_BoundedInts.Dummy__ +var _ m_StandardLibrary_UInt.Dummy__ +var _ m_StandardLibrary_Sequence.Dummy__ +var _ m_StandardLibrary_String.Dummy__ +var _ m_StandardLibrary.Dummy__ +var _ m_AwsCryptographyPrimitivesTypes.Dummy__ +var _ m_Random.Dummy__ +var _ m_Digest.Dummy__ +var _ m_WrappedHMAC.Dummy__ +var _ m_HKDF.Dummy__ +var _ m_WrappedHKDF.Dummy__ +var _ m_KdfCtr.Dummy__ +var _ m_AwsCryptographyPrimitivesOperations.Dummy__ +var _ m_AtomicPrimitives.Dummy__ +var _ m_ComAmazonawsDynamodbTypes.Dummy__ +var _ m_ComAmazonawsKmsTypes.Dummy__ +var _ m_AwsCryptographyKeyStoreTypes.Dummy__ +var _ m_AwsCryptographyMaterialProvidersTypes.Dummy__ +var _ m_Base64.Dummy__ +var _ m_AlgorithmSuites.Dummy__ +var _ m_Materials.Dummy__ +var _ m_Keyring.Dummy__ +var _ m_Relations.Dummy__ +var _ m_Seq_MergeSort.Dummy__ +var _ m__Math.Dummy__ +var _ m_Seq.Dummy__ +var _ m_MultiKeyring.Dummy__ +var _ m_AwsArnParsing.Dummy__ +var _ m_AwsKmsMrkAreUnique.Dummy__ +var _ m_Actions.Dummy__ +var _ m_AwsKmsMrkMatchForDecrypt.Dummy__ +var _ m_AwsKmsUtils.Dummy__ +var _ m_Constants.Dummy__ +var _ m_MaterialWrapping.Dummy__ +var _ m_CanonicalEncryptionContext.Dummy__ +var _ m_IntermediateKeyWrapping.Dummy__ +var _ m_EdkWrapping.Dummy__ +var _ m_ErrorMessages.Dummy__ +var _ m_AwsKmsKeyring.Dummy__ +var _ m_StrictMultiKeyring.Dummy__ +var _ m_AwsKmsDiscoveryKeyring.Dummy__ +var _ m_Com_Amazonaws_Kms.Dummy__ +var _ m_Com_Amazonaws_Dynamodb.Dummy__ +var _ m_DiscoveryMultiKeyring.Dummy__ +var _ m_AwsKmsMrkDiscoveryKeyring.Dummy__ +var _ m_MrkAwareDiscoveryMultiKeyring.Dummy__ +var _ m_AwsKmsMrkKeyring.Dummy__ +var _ m_MrkAwareStrictMultiKeyring.Dummy__ +var _ m_LocalCMC.Dummy__ +var _ m_SynchronizedLocalCMC.Dummy__ +var _ m_StormTracker.Dummy__ +var _ m_StormTrackingCMC.Dummy__ +var _ m_CacheConstants.Dummy__ +var _ m_AwsKmsHierarchicalKeyring.Dummy__ +var _ m_AwsKmsRsaKeyring.Dummy__ +var _ m_EcdhEdkWrapping.Dummy__ +var _ m_RawECDHKeyring.Dummy__ +var _ m_AwsKmsEcdhKeyring.Dummy__ +var _ m_RawAESKeyring.Dummy__ +var _ m_RawRSAKeyring.Dummy__ +var _ m_CMM.Dummy__ +var _ m_Defaults.Dummy__ +var _ m_Commitment.Dummy__ +var _ m_DefaultCMM.Dummy__ +var _ m_DefaultClientSupplier.Dummy__ +var _ m_Utils.Dummy__ +var _ m_RequiredEncryptionContextCMM.Dummy__ +var _ m_AwsCryptographyMaterialProvidersOperations.Dummy__ +var _ m_MaterialProviders.Dummy__ +var _ m_KeyStoreErrorMessages.Dummy__ +var _ m_KmsArn.Dummy__ +var _ m_Structure.Dummy__ +var _ m_KMSKeystoreOperations.Dummy__ +var _ m_DDBKeystoreOperations.Dummy__ +var _ m_CreateKeys.Dummy__ +var _ m_CreateKeyStoreTable.Dummy__ +var _ m_GetKeys.Dummy__ +var _ m_AwsCryptographyKeyStoreOperations.Dummy__ +var _ m_KeyStore.Dummy__ +var _ m__Unicode.Dummy__ +var _ m_Functions.Dummy__ +var _ m_Utf8EncodingForm.Dummy__ +var _ m_Utf16EncodingForm.Dummy__ +var _ m_UnicodeStrings.Dummy__ +var _ m_FileIO.Dummy__ +var _ m_GeneralInternals.Dummy__ +var _ m_MulInternalsNonlinear.Dummy__ +var _ m_MulInternals.Dummy__ +var _ m_Mul.Dummy__ +var _ m_ModInternalsNonlinear.Dummy__ +var _ m_DivInternalsNonlinear.Dummy__ +var _ m_ModInternals.Dummy__ +var _ m_DivInternals.Dummy__ +var _ m_DivMod.Dummy__ +var _ m_Power.Dummy__ +var _ m_Logarithm.Dummy__ +var _ m_StandardLibraryInterop.Dummy__ +var _ m_Streams.Dummy__ +var _ m_Sorting.Dummy__ +var _ m_HexStrings.Dummy__ +var _ m_GetOpt.Dummy__ +var _ m_FloatCompare.Dummy__ +var _ m_Base64Lemmas.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Dummy__ +var _ m_StructuredEncryptionUtil.Dummy__ +var _ m_Sets.Dummy__ +var _ m_StructuredEncryptionPaths.Dummy__ +var _ m_StructuredEncryptionHeader.Dummy__ +var _ m_StructuredEncryptionFooter.Dummy__ +var _ m_SortCanon.Dummy__ +var _ m_Canonize.Dummy__ +var _ m_StructuredEncryptionCrypt.Dummy__ +var _ m__Maps.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkStructuredEncryptionOperations.Dummy__ +var _ m_StructuredEncryption.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Dummy__ +var _ m_DynamoDbEncryptionUtil.Dummy__ +var _ m_DynamoDbNormalizeNumber.Dummy__ +var _ m_DynamoToStruct.Dummy__ +var _ m_DynamoDbItemEncryptorUtil.Dummy__ +var _ m_InternalLegacyOverride.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorOperations.Dummy__ +var _ m_DynamoDbItemEncryptor.Dummy__ +var _ m_DynamoDbEncryptionBranchKeyIdSupplier.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkDynamoDbOperations.Dummy__ +var _ m_DynamoDbEncryption.Dummy__ +var _ m_TermLoc.Dummy__ +var _ m_DdbVirtualFields.Dummy__ +var _ m_DynamoDbUpdateExpr.Dummy__ +var _ m_BaseBeacon.Dummy__ +var _ m_CompoundBeacon.Dummy__ +var _ m_SearchableEncryptionInfo.Dummy__ +var _ m_DynamoDBFilterExpr.Dummy__ +var _ m_DynamoDBSupport.Dummy__ +var _ m_SearchConfigToInfo.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Dummy__ +var _ m_DdbMiddlewareConfig.Dummy__ +var _ m_DdbStatement.Dummy__ +var _ m_DynamoDbMiddlewareSupport.Dummy__ +var _ m_PutItemTransform.Dummy__ +var _ m_GetItemTransform.Dummy__ +var _ m_UpdateItemTransform.Dummy__ +var _ m_BatchWriteItemTransform.Dummy__ +var _ m_TransactWriteItemsTransform.Dummy__ +var _ m_BatchGetItemTransform.Dummy__ + +type Dummy__ struct{} + +// Definition of class Default__ +type Default__ struct { + dummy byte +} + +func New_Default___() *Default__ { + _this := Default__{} + + return &_this +} + +type CompanionStruct_Default___ struct { +} + +var Companion_Default___ = CompanionStruct_Default___{} + +func (_this *Default__) Equals(other *Default__) bool { + return _this == other +} + +func (_this *Default__) EqualsGeneric(x interface{}) bool { + other, ok := x.(*Default__) + return ok && _this.Equals(other) +} + +func (*Default__) String() string { + return "ScanTransform.Default__" +} +func (_this *Default__) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = &Default__{} + +func (_static *CompanionStruct_Default___) Input(config m_DdbMiddlewareConfig.Config, input m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.ScanInputTransformInput) m_Wrappers.Result { + var output m_Wrappers.Result = m_Wrappers.Result{} + _ = output + if !((config).Dtor_tableEncryptionConfigs()).Contains(((input).Dtor_sdkInput()).Dtor_TableName()) { + output = m_Wrappers.Companion_Result_.Create_Success_(m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_ScanInputTransformOutput_.Create_ScanInputTransformOutput_((input).Dtor_sdkInput())) + return output + } else { + var _0_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _0_valueOrError0 + _0_valueOrError0 = m_Wrappers.Companion_Default___.Need(m_DynamoDbMiddlewareSupport.Companion_Default___.NoList(((input).Dtor_sdkInput()).Dtor_AttributesToGet()), m_DdbMiddlewareConfig.Companion_Default___.E(_dafny.SeqOfString("Legacy parameter 'AttributesToGet' not supported in UpdateItem with Encryption"))) + if (_0_valueOrError0).IsFailure() { + output = (_0_valueOrError0).PropagateFailure() + return output + } + var _1_valueOrError1 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _1_valueOrError1 + _1_valueOrError1 = m_Wrappers.Companion_Default___.Need(m_DynamoDbMiddlewareSupport.Companion_Default___.NoMap(((input).Dtor_sdkInput()).Dtor_ScanFilter()), m_DdbMiddlewareConfig.Companion_Default___.E(_dafny.SeqOfString("Legacy parameter 'ScanFilter' not supported in UpdateItem with Encryption"))) + if (_1_valueOrError1).IsFailure() { + output = (_1_valueOrError1).PropagateFailure() + return output + } + var _2_valueOrError2 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _2_valueOrError2 + _2_valueOrError2 = m_Wrappers.Companion_Default___.Need((((input).Dtor_sdkInput()).Dtor_ConditionalOperator()).Is_None(), m_DdbMiddlewareConfig.Companion_Default___.E(_dafny.SeqOfString("Legacy parameter 'ConditionalOperator' not supported in UpdateItem with Encryption"))) + if (_2_valueOrError2).IsFailure() { + output = (_2_valueOrError2).PropagateFailure() + return output + } + var _3_tableConfig m_DdbMiddlewareConfig.TableConfig + _ = _3_tableConfig + _3_tableConfig = ((config).Dtor_tableEncryptionConfigs()).Get(((input).Dtor_sdkInput()).Dtor_TableName()).(m_DdbMiddlewareConfig.TableConfig) + var _4_valueOrError3 m_Wrappers.Result = m_Wrappers.Result{} + _ = _4_valueOrError3 + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_DynamoDbMiddlewareSupport.Companion_Default___.ScanInputForBeacons(_3_tableConfig, (input).Dtor_sdkInput()) + _4_valueOrError3 = _out0 + if (_4_valueOrError3).IsFailure() { + output = (_4_valueOrError3).PropagateFailure() + return output + } + var _5_finalResult m_ComAmazonawsDynamodbTypes.ScanInput + _ = _5_finalResult + _5_finalResult = (_4_valueOrError3).Extract().(m_ComAmazonawsDynamodbTypes.ScanInput) + output = m_Wrappers.Companion_Result_.Create_Success_(m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_ScanInputTransformOutput_.Create_ScanInputTransformOutput_(_5_finalResult)) + return output + } + return output +} +func (_static *CompanionStruct_Default___) Output(config m_DdbMiddlewareConfig.Config, input m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.ScanOutputTransformInput) m_Wrappers.Result { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_ScanOutputTransformOutput_.Default()) + _ = output + var _0_tableName _dafny.Sequence + _ = _0_tableName + _0_tableName = ((input).Dtor_originalInput()).Dtor_TableName() + if (!((config).Dtor_tableEncryptionConfigs()).Contains(_0_tableName)) || (m_DynamoDbMiddlewareSupport.Companion_Default___.NoList(((input).Dtor_sdkOutput()).Dtor_Items())) { + output = m_Wrappers.Companion_Result_.Create_Success_(m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_ScanOutputTransformOutput_.Create_ScanOutputTransformOutput_((input).Dtor_sdkOutput())) + return output + } + var _1_tableConfig m_DdbMiddlewareConfig.TableConfig + _ = _1_tableConfig + _1_tableConfig = ((config).Dtor_tableEncryptionConfigs()).Get(_0_tableName).(m_DdbMiddlewareConfig.TableConfig) + var _2_decryptedItems _dafny.Sequence + _ = _2_decryptedItems + _2_decryptedItems = _dafny.SeqOf() + var _3_encryptedItems _dafny.Sequence + _ = _3_encryptedItems + _3_encryptedItems = (((input).Dtor_sdkOutput()).Dtor_Items()).Dtor_value().(_dafny.Sequence) + var _4_valueOrError0 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_DynamoDbEncryptionUtil.Companion_MaybeKeyId_.Default()) + _ = _4_valueOrError0 + _4_valueOrError0 = m_DynamoDbMiddlewareSupport.Companion_Default___.GetBeaconKeyId(_1_tableConfig, m_Wrappers.Companion_Option_.Create_None_(), ((input).Dtor_originalInput()).Dtor_FilterExpression(), ((input).Dtor_originalInput()).Dtor_ExpressionAttributeValues(), ((input).Dtor_originalInput()).Dtor_ExpressionAttributeNames()) + if (_4_valueOrError0).IsFailure() { + output = (_4_valueOrError0).PropagateFailure() + return output + } + var _5_keyId m_DynamoDbEncryptionUtil.MaybeKeyId + _ = _5_keyId + _5_keyId = (_4_valueOrError0).Extract().(m_DynamoDbEncryptionUtil.MaybeKeyId) + var _6_keyIdUtf8 _dafny.Sequence + _ = _6_keyIdUtf8 + _6_keyIdUtf8 = _dafny.SeqOf() + if (_5_keyId).Is_KeyId() { + var _7_valueOrError1 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_UTF8.Companion_ValidUTF8Bytes_.Witness()) + _ = _7_valueOrError1 + _7_valueOrError1 = (m_UTF8.Encode((_5_keyId).Dtor_value())).MapFailure(func(coer155 func(_dafny.Sequence) m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Error) func(interface{}) interface{} { + return func(arg189 interface{}) interface{} { + return coer155(arg189.(_dafny.Sequence)) + } + }(func(_8_e _dafny.Sequence) m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Error { + return m_DdbMiddlewareConfig.Companion_Default___.E(_8_e) + })) + if (_7_valueOrError1).IsFailure() { + output = (_7_valueOrError1).PropagateFailure() + return output + } + _6_keyIdUtf8 = (_7_valueOrError1).Extract().(_dafny.Sequence) + } + var _hi0 _dafny.Int = _dafny.IntOfUint32((_3_encryptedItems).Cardinality()) + _ = _hi0 + for _9_x := _dafny.Zero; _9_x.Cmp(_hi0) < 0; _9_x = _9_x.Plus(_dafny.One) { + var _10_decryptInput m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.DecryptItemInput + _ = _10_decryptInput + _10_decryptInput = m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Companion_DecryptItemInput_.Create_DecryptItemInput_((_3_encryptedItems).Select((_9_x).Uint32()).(_dafny.Map)) + var _11_decryptRes m_Wrappers.Result + _ = _11_decryptRes + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = ((_1_tableConfig).Dtor_itemEncryptor()).DecryptItem(_10_decryptInput) + _11_decryptRes = _out0 + var _12_valueOrError2 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Companion_DecryptItemOutput_.Default()) + _ = _12_valueOrError2 + _12_valueOrError2 = m_DdbMiddlewareConfig.Companion_Default___.MapError(_11_decryptRes) + if (_12_valueOrError2).IsFailure() { + output = (_12_valueOrError2).PropagateFailure() + return output + } + var _13_decrypted m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.DecryptItemOutput + _ = _13_decrypted + _13_decrypted = (_12_valueOrError2).Extract().(m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.DecryptItemOutput) + if ((_5_keyId).Is_KeyId()) && (((_13_decrypted).Dtor_parsedHeader()).Is_Some()) { + var _14_valueOrError3 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _14_valueOrError3 + _14_valueOrError3 = m_Wrappers.Companion_Default___.Need((_dafny.IntOfUint32(((((_13_decrypted).Dtor_parsedHeader()).Dtor_value().(m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.ParsedHeader)).Dtor_encryptedDataKeys()).Cardinality())).Cmp(_dafny.One) == 0, m_DdbMiddlewareConfig.Companion_Default___.E(_dafny.SeqOfString("Scan result has more than one Encrypted Data Key"))) + if (_14_valueOrError3).IsFailure() { + output = (_14_valueOrError3).PropagateFailure() + return output + } + if _dafny.Companion_Sequence_.Equal((((((_13_decrypted).Dtor_parsedHeader()).Dtor_value().(m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.ParsedHeader)).Dtor_encryptedDataKeys()).Select(0).(m_AwsCryptographyMaterialProvidersTypes.EncryptedDataKey)).Dtor_keyProviderInfo(), _6_keyIdUtf8) { + _2_decryptedItems = _dafny.Companion_Sequence_.Concatenate(_2_decryptedItems, _dafny.SeqOf((_13_decrypted).Dtor_plaintextItem())) + } + } else { + _2_decryptedItems = _dafny.Companion_Sequence_.Concatenate(_2_decryptedItems, _dafny.SeqOf((_13_decrypted).Dtor_plaintextItem())) + } + } + var _15_decryptedOutput m_ComAmazonawsDynamodbTypes.ScanOutput + _ = _15_decryptedOutput + var _16_dt__update__tmp_h0 m_ComAmazonawsDynamodbTypes.ScanOutput = (input).Dtor_sdkOutput() + _ = _16_dt__update__tmp_h0 + var _17_dt__update_hItems_h0 m_Wrappers.Option = m_Wrappers.Companion_Option_.Create_Some_(_2_decryptedItems) + _ = _17_dt__update_hItems_h0 + _15_decryptedOutput = m_ComAmazonawsDynamodbTypes.Companion_ScanOutput_.Create_ScanOutput_(_17_dt__update_hItems_h0, (_16_dt__update__tmp_h0).Dtor_Count(), (_16_dt__update__tmp_h0).Dtor_ScannedCount(), (_16_dt__update__tmp_h0).Dtor_LastEvaluatedKey(), (_16_dt__update__tmp_h0).Dtor_ConsumedCapacity()) + var _18_valueOrError4 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_ComAmazonawsDynamodbTypes.Companion_ScanOutput_.Default()) + _ = _18_valueOrError4 + var _out1 m_Wrappers.Result + _ = _out1 + _out1 = m_DynamoDbMiddlewareSupport.Companion_Default___.ScanOutputForBeacons(_1_tableConfig, (input).Dtor_originalInput(), _15_decryptedOutput) + _18_valueOrError4 = _out1 + if (_18_valueOrError4).IsFailure() { + output = (_18_valueOrError4).PropagateFailure() + return output + } + var _19_finalResult m_ComAmazonawsDynamodbTypes.ScanOutput + _ = _19_finalResult + _19_finalResult = (_18_valueOrError4).Extract().(m_ComAmazonawsDynamodbTypes.ScanOutput) + output = m_Wrappers.Companion_Result_.Create_Success_(m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_ScanOutputTransformOutput_.Create_ScanOutputTransformOutput_(_19_finalResult)) + return output + return output +} + +// End of class Default__ diff --git a/customer-preview/ddb-esdk/SearchConfigToInfo/SearchConfigToInfo.go b/customer-preview/ddb-esdk/SearchConfigToInfo/SearchConfigToInfo.go new file mode 100644 index 000000000..2f95daabb --- /dev/null +++ b/customer-preview/ddb-esdk/SearchConfigToInfo/SearchConfigToInfo.go @@ -0,0 +1,1938 @@ +// Package SearchConfigToInfo +// Dafny module SearchConfigToInfo compiled into Go + +package SearchConfigToInfo + +import ( + os "os" + + m_ComAmazonawsDynamodbTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/ComAmazonawsDynamodbTypes" + m_Com_Amazonaws_Dynamodb "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/Com_Amazonaws_Dynamodb" + m_ComAmazonawsKmsTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/ComAmazonawsKmsTypes" + m_Com_Amazonaws_Kms "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/Com_Amazonaws_Kms" + m_AlgorithmSuites "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AlgorithmSuites" + m_AwsArnParsing "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsArnParsing" + m_AwsCryptographyKeyStoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreOperations" + m_AwsCryptographyKeyStoreTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreTypes" + m_AwsCryptographyMaterialProvidersOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersOperations" + m_AwsCryptographyMaterialProvidersTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersTypes" + m_AwsKmsDiscoveryKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsDiscoveryKeyring" + m_AwsKmsEcdhKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsEcdhKeyring" + m_AwsKmsHierarchicalKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsHierarchicalKeyring" + m_AwsKmsKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsKeyring" + m_AwsKmsMrkAreUnique "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkAreUnique" + m_AwsKmsMrkDiscoveryKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkDiscoveryKeyring" + m_AwsKmsMrkKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkKeyring" + m_AwsKmsMrkMatchForDecrypt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkMatchForDecrypt" + m_AwsKmsRsaKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsRsaKeyring" + m_AwsKmsUtils "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsUtils" + m_CMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CMM" + m_CacheConstants "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CacheConstants" + m_CanonicalEncryptionContext "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CanonicalEncryptionContext" + m_Commitment "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Commitment" + m_Constants "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Constants" + m_CreateKeyStoreTable "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeyStoreTable" + m_CreateKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeys" + m_DDBKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DDBKeystoreOperations" + m_DefaultCMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DefaultCMM" + m_DefaultClientSupplier "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DefaultClientSupplier" + m_Defaults "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Defaults" + m_DiscoveryMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DiscoveryMultiKeyring" + m_EcdhEdkWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/EcdhEdkWrapping" + m_EdkWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/EdkWrapping" + m_ErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/ErrorMessages" + m_GetKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/GetKeys" + m_IntermediateKeyWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/IntermediateKeyWrapping" + m_KMSKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KMSKeystoreOperations" + m_KeyStore "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStore" + m_KeyStoreErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStoreErrorMessages" + m_Keyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Keyring" + m_KmsArn "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KmsArn" + m_LocalCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/LocalCMC" + m_MaterialProviders "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MaterialProviders" + m_MaterialWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MaterialWrapping" + m_Materials "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Materials" + m_MrkAwareDiscoveryMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MrkAwareDiscoveryMultiKeyring" + m_MrkAwareStrictMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MrkAwareStrictMultiKeyring" + m_MultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MultiKeyring" + m_RawAESKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawAESKeyring" + m_RawECDHKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawECDHKeyring" + m_RawRSAKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawRSAKeyring" + m_RequiredEncryptionContextCMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RequiredEncryptionContextCMM" + m_StormTracker "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StormTracker" + m_StormTrackingCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StormTrackingCMC" + m_StrictMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StrictMultiKeyring" + m_Structure "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Structure" + m_SynchronizedLocalCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/SynchronizedLocalCMC" + m_Utils "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Utils" + m_AtomicPrimitives "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AtomicPrimitives" + m_AwsCryptographyPrimitivesOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesOperations" + m_AwsCryptographyPrimitivesTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesTypes" + m_Digest "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Digest" + m_HKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/HKDF" + m_KdfCtr "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/KdfCtr" + m_Random "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Random" + m_WrappedHKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHKDF" + m_WrappedHMAC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHMAC" + m_Actions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Actions" + m_Base64 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64" + m_Base64Lemmas "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64Lemmas" + m_BoundedInts "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/BoundedInts" + m_DivInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternals" + m_DivInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternalsNonlinear" + m_DivMod "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivMod" + m_FileIO "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FileIO" + m_FloatCompare "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FloatCompare" + m_Functions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Functions" + m_GeneralInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GeneralInternals" + m_GetOpt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GetOpt" + m_HexStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/HexStrings" + m_Logarithm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Logarithm" + m__Math "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Math_" + m_ModInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternals" + m_ModInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternalsNonlinear" + m_Mul "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Mul" + m_MulInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternals" + m_MulInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternalsNonlinear" + m_Power "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Power" + m_Relations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Relations" + m_Seq "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq" + m_Seq_MergeSort "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq_MergeSort" + m_SortedSets "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/SortedSets" + m_Sorting "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Sorting" + m_StandardLibrary "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary" + m_StandardLibraryInterop "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibraryInterop" + m_StandardLibrary_Sequence "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_Sequence" + m_StandardLibrary_String "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_String" + m_StandardLibrary_UInt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_UInt" + m_Streams "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Streams" + m_UTF8 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UTF8" + m_UnicodeStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UnicodeStrings" + m__Unicode "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Unicode_" + m_Utf16EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf16EncodingForm" + m_Utf8EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf8EncodingForm" + m_Wrappers "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers" + m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorOperations "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorOperations" + m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes" + m_AwsCryptographyDbEncryptionSdkDynamoDbOperations "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbOperations" + m_AwsCryptographyDbEncryptionSdkDynamoDbTypes "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbTypes" + m_AwsCryptographyDbEncryptionSdkStructuredEncryptionOperations "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkStructuredEncryptionOperations" + m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes" + m_BaseBeacon "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/BaseBeacon" + m_Canonize "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/Canonize" + m_CompoundBeacon "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/CompoundBeacon" + m_DdbVirtualFields "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DdbVirtualFields" + m_DynamoDBFilterExpr "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDBFilterExpr" + m_DynamoDBSupport "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDBSupport" + m_DynamoDbEncryption "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbEncryption" + m_DynamoDbEncryptionBranchKeyIdSupplier "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbEncryptionBranchKeyIdSupplier" + m_DynamoDbEncryptionUtil "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbEncryptionUtil" + m_DynamoDbItemEncryptor "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbItemEncryptor" + m_DynamoDbItemEncryptorUtil "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbItemEncryptorUtil" + m_DynamoDbNormalizeNumber "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbNormalizeNumber" + m_DynamoDbUpdateExpr "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbUpdateExpr" + m_DynamoToStruct "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoToStruct" + m_InternalLegacyOverride "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/InternalLegacyOverride" + m__Maps "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/Maps_" + m_SearchableEncryptionInfo "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/SearchableEncryptionInfo" + m_Sets "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/Sets" + m_SortCanon "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/SortCanon" + m_StructuredEncryption "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryption" + m_StructuredEncryptionCrypt "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionCrypt" + m_StructuredEncryptionFooter "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionFooter" + m_StructuredEncryptionHeader "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionHeader" + m_StructuredEncryptionPaths "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionPaths" + m_StructuredEncryptionUtil "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionUtil" + m_TermLoc "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/TermLoc" + m__System "github.com/dafny-lang/DafnyRuntimeGo/v4/System_" + _dafny "github.com/dafny-lang/DafnyRuntimeGo/v4/dafny" +) + +var _ = os.Args +var _ _dafny.Dummy__ +var _ m__System.Dummy__ +var _ m_Wrappers.Dummy__ +var _ m_BoundedInts.Dummy__ +var _ m_StandardLibrary_UInt.Dummy__ +var _ m_StandardLibrary_Sequence.Dummy__ +var _ m_StandardLibrary_String.Dummy__ +var _ m_StandardLibrary.Dummy__ +var _ m_AwsCryptographyPrimitivesTypes.Dummy__ +var _ m_Random.Dummy__ +var _ m_Digest.Dummy__ +var _ m_WrappedHMAC.Dummy__ +var _ m_HKDF.Dummy__ +var _ m_WrappedHKDF.Dummy__ +var _ m_KdfCtr.Dummy__ +var _ m_AwsCryptographyPrimitivesOperations.Dummy__ +var _ m_AtomicPrimitives.Dummy__ +var _ m_ComAmazonawsDynamodbTypes.Dummy__ +var _ m_ComAmazonawsKmsTypes.Dummy__ +var _ m_AwsCryptographyKeyStoreTypes.Dummy__ +var _ m_AwsCryptographyMaterialProvidersTypes.Dummy__ +var _ m_Base64.Dummy__ +var _ m_AlgorithmSuites.Dummy__ +var _ m_Materials.Dummy__ +var _ m_Keyring.Dummy__ +var _ m_Relations.Dummy__ +var _ m_Seq_MergeSort.Dummy__ +var _ m__Math.Dummy__ +var _ m_Seq.Dummy__ +var _ m_MultiKeyring.Dummy__ +var _ m_AwsArnParsing.Dummy__ +var _ m_AwsKmsMrkAreUnique.Dummy__ +var _ m_Actions.Dummy__ +var _ m_AwsKmsMrkMatchForDecrypt.Dummy__ +var _ m_AwsKmsUtils.Dummy__ +var _ m_Constants.Dummy__ +var _ m_MaterialWrapping.Dummy__ +var _ m_CanonicalEncryptionContext.Dummy__ +var _ m_IntermediateKeyWrapping.Dummy__ +var _ m_EdkWrapping.Dummy__ +var _ m_ErrorMessages.Dummy__ +var _ m_AwsKmsKeyring.Dummy__ +var _ m_StrictMultiKeyring.Dummy__ +var _ m_AwsKmsDiscoveryKeyring.Dummy__ +var _ m_Com_Amazonaws_Kms.Dummy__ +var _ m_Com_Amazonaws_Dynamodb.Dummy__ +var _ m_DiscoveryMultiKeyring.Dummy__ +var _ m_AwsKmsMrkDiscoveryKeyring.Dummy__ +var _ m_MrkAwareDiscoveryMultiKeyring.Dummy__ +var _ m_AwsKmsMrkKeyring.Dummy__ +var _ m_MrkAwareStrictMultiKeyring.Dummy__ +var _ m_LocalCMC.Dummy__ +var _ m_SynchronizedLocalCMC.Dummy__ +var _ m_StormTracker.Dummy__ +var _ m_StormTrackingCMC.Dummy__ +var _ m_CacheConstants.Dummy__ +var _ m_AwsKmsHierarchicalKeyring.Dummy__ +var _ m_AwsKmsRsaKeyring.Dummy__ +var _ m_EcdhEdkWrapping.Dummy__ +var _ m_RawECDHKeyring.Dummy__ +var _ m_AwsKmsEcdhKeyring.Dummy__ +var _ m_RawAESKeyring.Dummy__ +var _ m_RawRSAKeyring.Dummy__ +var _ m_CMM.Dummy__ +var _ m_Defaults.Dummy__ +var _ m_Commitment.Dummy__ +var _ m_DefaultCMM.Dummy__ +var _ m_DefaultClientSupplier.Dummy__ +var _ m_Utils.Dummy__ +var _ m_RequiredEncryptionContextCMM.Dummy__ +var _ m_AwsCryptographyMaterialProvidersOperations.Dummy__ +var _ m_MaterialProviders.Dummy__ +var _ m_KeyStoreErrorMessages.Dummy__ +var _ m_KmsArn.Dummy__ +var _ m_Structure.Dummy__ +var _ m_KMSKeystoreOperations.Dummy__ +var _ m_DDBKeystoreOperations.Dummy__ +var _ m_CreateKeys.Dummy__ +var _ m_CreateKeyStoreTable.Dummy__ +var _ m_GetKeys.Dummy__ +var _ m_AwsCryptographyKeyStoreOperations.Dummy__ +var _ m_KeyStore.Dummy__ +var _ m__Unicode.Dummy__ +var _ m_Functions.Dummy__ +var _ m_Utf8EncodingForm.Dummy__ +var _ m_Utf16EncodingForm.Dummy__ +var _ m_UnicodeStrings.Dummy__ +var _ m_FileIO.Dummy__ +var _ m_GeneralInternals.Dummy__ +var _ m_MulInternalsNonlinear.Dummy__ +var _ m_MulInternals.Dummy__ +var _ m_Mul.Dummy__ +var _ m_ModInternalsNonlinear.Dummy__ +var _ m_DivInternalsNonlinear.Dummy__ +var _ m_ModInternals.Dummy__ +var _ m_DivInternals.Dummy__ +var _ m_DivMod.Dummy__ +var _ m_Power.Dummy__ +var _ m_Logarithm.Dummy__ +var _ m_StandardLibraryInterop.Dummy__ +var _ m_Streams.Dummy__ +var _ m_Sorting.Dummy__ +var _ m_HexStrings.Dummy__ +var _ m_GetOpt.Dummy__ +var _ m_FloatCompare.Dummy__ +var _ m_Base64Lemmas.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Dummy__ +var _ m_StructuredEncryptionUtil.Dummy__ +var _ m_Sets.Dummy__ +var _ m_StructuredEncryptionPaths.Dummy__ +var _ m_StructuredEncryptionHeader.Dummy__ +var _ m_StructuredEncryptionFooter.Dummy__ +var _ m_SortCanon.Dummy__ +var _ m_Canonize.Dummy__ +var _ m_StructuredEncryptionCrypt.Dummy__ +var _ m__Maps.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkStructuredEncryptionOperations.Dummy__ +var _ m_StructuredEncryption.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Dummy__ +var _ m_DynamoDbEncryptionUtil.Dummy__ +var _ m_DynamoDbNormalizeNumber.Dummy__ +var _ m_DynamoToStruct.Dummy__ +var _ m_DynamoDbItemEncryptorUtil.Dummy__ +var _ m_InternalLegacyOverride.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorOperations.Dummy__ +var _ m_DynamoDbItemEncryptor.Dummy__ +var _ m_DynamoDbEncryptionBranchKeyIdSupplier.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkDynamoDbOperations.Dummy__ +var _ m_DynamoDbEncryption.Dummy__ +var _ m_TermLoc.Dummy__ +var _ m_DdbVirtualFields.Dummy__ +var _ m_DynamoDbUpdateExpr.Dummy__ +var _ m_BaseBeacon.Dummy__ +var _ m_CompoundBeacon.Dummy__ +var _ m_SearchableEncryptionInfo.Dummy__ +var _ m_DynamoDBFilterExpr.Dummy__ +var _ m_DynamoDBSupport.Dummy__ + +type Dummy__ struct{} + +// Definition of class Default__ +type Default__ struct { + dummy byte +} + +func New_Default___() *Default__ { + _this := Default__{} + + return &_this +} + +type CompanionStruct_Default___ struct { +} + +var Companion_Default___ = CompanionStruct_Default___{} + +func (_this *Default__) Equals(other *Default__) bool { + return _this == other +} + +func (_this *Default__) EqualsGeneric(x interface{}) bool { + other, ok := x.(*Default__) + return ok && _this.Equals(other) +} + +func (*Default__) String() string { + return "SearchConfigToInfo.Default__" +} +func (_this *Default__) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = &Default__{} + +func (_static *CompanionStruct_Default___) Convert(outer m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.DynamoDbTableEncryptionConfig) m_Wrappers.Result { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_Wrappers.Companion_Option_.Default()) + _ = output + if ((outer).Dtor_search()).Is_None() { + output = m_Wrappers.Companion_Result_.Create_Success_(m_Wrappers.Companion_Option_.Create_None_()) + return output + } else { + var _0_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _0_valueOrError0 + _0_valueOrError0 = m_Wrappers.Companion_Default___.Need(((((outer).Dtor_search()).Dtor_value().(m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.SearchConfig)).Dtor_writeVersion()) == (int32(1)), m_DynamoDbEncryptionUtil.Companion_Default___.E(_dafny.SeqOfString("writeVersion must be '1'."))) + if (_0_valueOrError0).IsFailure() { + output = (_0_valueOrError0).PropagateFailure() + return output + } + var _1_valueOrError1 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _1_valueOrError1 + _1_valueOrError1 = m_Wrappers.Companion_Default___.Need((_dafny.IntOfUint32(((((outer).Dtor_search()).Dtor_value().(m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.SearchConfig)).Dtor_versions()).Cardinality())).Cmp(_dafny.One) == 0, m_DynamoDbEncryptionUtil.Companion_Default___.E(_dafny.SeqOfString("search config must be have exactly one version."))) + if (_1_valueOrError1).IsFailure() { + output = (_1_valueOrError1).PropagateFailure() + return output + } + var _2_beaconVersionConfig m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.BeaconVersion + _ = _2_beaconVersionConfig + _2_beaconVersionConfig = ((((outer).Dtor_search()).Dtor_value().(m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.SearchConfig)).Dtor_versions()).Select(0).(m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.BeaconVersion) + var _3_valueOrError2 m_Wrappers.Result = m_Wrappers.Result{} + _ = _3_valueOrError2 + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = Companion_Default___.ConvertVersion(outer, _2_beaconVersionConfig) + _3_valueOrError2 = _out0 + if (_3_valueOrError2).IsFailure() { + output = (_3_valueOrError2).PropagateFailure() + return output + } + var _4_version m_SearchableEncryptionInfo.BeaconVersion + _ = _4_version + _4_version = (_3_valueOrError2).Extract().(m_SearchableEncryptionInfo.BeaconVersion) + var _5_info m_SearchableEncryptionInfo.SearchInfo + _ = _5_info + _5_info = m_SearchableEncryptionInfo.Companion_Default___.MakeSearchInfo(_4_version) + output = m_Wrappers.Companion_Result_.Create_Success_(m_Wrappers.Companion_Option_.Create_Some_(_5_info)) + return output + } + return output +} +func (_static *CompanionStruct_Default___) ShouldDeleteKeyField(outer m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.DynamoDbTableEncryptionConfig, keyFieldName _dafny.Sequence) m_Wrappers.Result { + if !((outer).Dtor_attributeActionsOnEncrypt()).Contains(keyFieldName) { + return m_Wrappers.Companion_Result_.Create_Success_(true) + } else { + var _source0 m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.CryptoAction = ((outer).Dtor_attributeActionsOnEncrypt()).Get(keyFieldName).(m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.CryptoAction) + _ = _source0 + { + if _source0.Is_DO__NOTHING() { + return m_Wrappers.Companion_Result_.Create_Success_(true) + } + } + { + if _source0.Is_SIGN__ONLY() { + return m_Wrappers.Companion_Result_.Create_Success_(false) + } + } + { + if _source0.Is_SIGN__AND__INCLUDE__IN__ENCRYPTION__CONTEXT() { + return m_Wrappers.Companion_Result_.Create_Success_(false) + } + } + { + return m_Wrappers.Companion_Result_.Create_Failure_(m_DynamoDbEncryptionUtil.Companion_Default___.E(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.SeqOfString("Beacon key field name "), keyFieldName), _dafny.SeqOfString(" is configured as ENCRYPT_AND_SIGN which is not allowed.")))) + } + } +} +func (_static *CompanionStruct_Default___) MakeKeySource(outer m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.DynamoDbTableEncryptionConfig, keyStore m_AwsCryptographyKeyStoreTypes.IKeyStoreClient, config m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.BeaconKeySource, client *m_AtomicPrimitives.AtomicPrimitivesClient) m_Wrappers.Result { + var output m_Wrappers.Result = m_Wrappers.Result{} + _ = output + var _0_mplR m_Wrappers.Result + _ = _0_mplR + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_MaterialProviders.Companion_Default___.MaterialProviders(m_MaterialProviders.Companion_Default___.DefaultMaterialProvidersConfig()) + _0_mplR = _out0 + var _1_valueOrError0 m_Wrappers.Result = m_Wrappers.Result{} + _ = _1_valueOrError0 + _1_valueOrError0 = (_0_mplR).MapFailure(func(coer123 func(m_AwsCryptographyMaterialProvidersTypes.Error) m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Error) func(interface{}) interface{} { + return func(arg153 interface{}) interface{} { + return coer123(arg153.(m_AwsCryptographyMaterialProvidersTypes.Error)) + } + }(func(_2_e m_AwsCryptographyMaterialProvidersTypes.Error) m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Error { + return m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_Error_.Create_AwsCryptographyMaterialProviders_(_2_e) + })) + if (_1_valueOrError0).IsFailure() { + output = (_1_valueOrError0).PropagateFailure() + return output + } + var _3_mpl *m_MaterialProviders.MaterialProvidersClient + _ = _3_mpl + _3_mpl = (_1_valueOrError0).Extract().(*m_MaterialProviders.MaterialProvidersClient) + var _4_cacheType m_AwsCryptographyMaterialProvidersTypes.CacheType + _ = _4_cacheType + if (config).Is_multi() { + if (((config).Dtor_multi()).Dtor_cache()).Is_Some() { + _4_cacheType = (((config).Dtor_multi()).Dtor_cache()).Dtor_value().(m_AwsCryptographyMaterialProvidersTypes.CacheType) + } else { + _4_cacheType = m_AwsCryptographyMaterialProvidersTypes.Companion_CacheType_.Create_Default_(m_AwsCryptographyMaterialProvidersTypes.Companion_DefaultCache_.Create_DefaultCache_(int32(1000))) + } + } else if (((config).Dtor_single()).Dtor_cache()).Is_Some() { + _4_cacheType = (((config).Dtor_single()).Dtor_cache()).Dtor_value().(m_AwsCryptographyMaterialProvidersTypes.CacheType) + } else { + _4_cacheType = m_AwsCryptographyMaterialProvidersTypes.Companion_CacheType_.Create_Default_(m_AwsCryptographyMaterialProvidersTypes.Companion_DefaultCache_.Create_DefaultCache_(int32(1))) + } + var _5_cache m_AwsCryptographyMaterialProvidersTypes.ICryptographicMaterialsCache = (m_AwsCryptographyMaterialProvidersTypes.ICryptographicMaterialsCache)(nil) + _ = _5_cache + if (_4_cacheType).Is_Shared() { + _5_cache = (_4_cacheType).Dtor_Shared() + } else { + var _6_input m_AwsCryptographyMaterialProvidersTypes.CreateCryptographicMaterialsCacheInput + _ = _6_input + _6_input = m_AwsCryptographyMaterialProvidersTypes.Companion_CreateCryptographicMaterialsCacheInput_.Create_CreateCryptographicMaterialsCacheInput_(_4_cacheType) + var _7_maybeCache m_Wrappers.Result + _ = _7_maybeCache + var _out1 m_Wrappers.Result + _ = _out1 + _out1 = (_3_mpl).CreateCryptographicMaterialsCache(_6_input) + _7_maybeCache = _out1 + var _8_valueOrError1 m_Wrappers.Result = m_Wrappers.Result{} + _ = _8_valueOrError1 + _8_valueOrError1 = (_7_maybeCache).MapFailure(func(coer124 func(m_AwsCryptographyMaterialProvidersTypes.Error) m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Error) func(interface{}) interface{} { + return func(arg154 interface{}) interface{} { + return coer124(arg154.(m_AwsCryptographyMaterialProvidersTypes.Error)) + } + }(func(_9_e m_AwsCryptographyMaterialProvidersTypes.Error) m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Error { + return m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_Error_.Create_AwsCryptographyMaterialProviders_(_9_e) + })) + if (_8_valueOrError1).IsFailure() { + output = (_8_valueOrError1).PropagateFailure() + return output + } + _5_cache = m_AwsCryptographyMaterialProvidersTypes.Companion_ICryptographicMaterialsCache_.CastTo_((_8_valueOrError1).Extract()) + } + var _10_partitionIdBytes _dafny.Sequence = _dafny.EmptySeq + _ = _10_partitionIdBytes + if ((config).Is_multi()) && ((((config).Dtor_multi()).Dtor_partitionId()).Is_Some()) { + var _11_valueOrError2 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_UTF8.Companion_ValidUTF8Bytes_.Witness()) + _ = _11_valueOrError2 + _11_valueOrError2 = (m_UTF8.Encode((((config).Dtor_multi()).Dtor_partitionId()).Dtor_value().(_dafny.Sequence))).MapFailure(func(coer125 func(_dafny.Sequence) m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Error) func(interface{}) interface{} { + return func(arg155 interface{}) interface{} { + return coer125(arg155.(_dafny.Sequence)) + } + }(func(_12_e _dafny.Sequence) m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Error { + return m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_Error_.Create_DynamoDbEncryptionException_(_dafny.Companion_Sequence_.Concatenate(_dafny.SeqOfString("Could not UTF-8 Encode Partition ID from MultiKeyStore: "), _12_e)) + })) + if (_11_valueOrError2).IsFailure() { + output = (_11_valueOrError2).PropagateFailure() + return output + } + _10_partitionIdBytes = (_11_valueOrError2).Extract().(_dafny.Sequence) + } else if ((config).Is_single()) && ((((config).Dtor_single()).Dtor_partitionId()).Is_Some()) { + var _13_valueOrError3 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_UTF8.Companion_ValidUTF8Bytes_.Witness()) + _ = _13_valueOrError3 + _13_valueOrError3 = (m_UTF8.Encode((((config).Dtor_single()).Dtor_partitionId()).Dtor_value().(_dafny.Sequence))).MapFailure(func(coer126 func(_dafny.Sequence) m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Error) func(interface{}) interface{} { + return func(arg156 interface{}) interface{} { + return coer126(arg156.(_dafny.Sequence)) + } + }(func(_14_e _dafny.Sequence) m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Error { + return m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_Error_.Create_DynamoDbEncryptionException_(_dafny.Companion_Sequence_.Concatenate(_dafny.SeqOfString("Could not UTF-8 Encode Partition ID from SingleKeyStore: "), _14_e)) + })) + if (_13_valueOrError3).IsFailure() { + output = (_13_valueOrError3).PropagateFailure() + return output + } + _10_partitionIdBytes = (_13_valueOrError3).Extract().(_dafny.Sequence) + } else { + var _15_valueOrError4 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = _15_valueOrError4 + var _out2 m_Wrappers.Result + _ = _out2 + _out2 = m_SearchableEncryptionInfo.Companion_Default___.GenerateUuidBytes() + _15_valueOrError4 = _out2 + if (_15_valueOrError4).IsFailure() { + output = (_15_valueOrError4).PropagateFailure() + return output + } + _10_partitionIdBytes = (_15_valueOrError4).Extract().(_dafny.Sequence) + } + var _16_getKeyStoreInfoOutput_q m_Wrappers.Result + _ = _16_getKeyStoreInfoOutput_q + var _out3 m_Wrappers.Result + _ = _out3 + _out3 = (keyStore).GetKeyStoreInfo() + _16_getKeyStoreInfoOutput_q = _out3 + var _17_valueOrError5 m_Wrappers.Result = m_Wrappers.Result{} + _ = _17_valueOrError5 + _17_valueOrError5 = (_16_getKeyStoreInfoOutput_q).MapFailure(func(coer127 func(m_AwsCryptographyKeyStoreTypes.Error) m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Error) func(interface{}) interface{} { + return func(arg157 interface{}) interface{} { + return coer127(arg157.(m_AwsCryptographyKeyStoreTypes.Error)) + } + }(func(_18_e m_AwsCryptographyKeyStoreTypes.Error) m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Error { + return m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_Error_.Create_AwsCryptographyKeyStore_(_18_e) + })) + if (_17_valueOrError5).IsFailure() { + output = (_17_valueOrError5).PropagateFailure() + return output + } + var _19_getKeyStoreInfoOutput m_AwsCryptographyKeyStoreTypes.GetKeyStoreInfoOutput + _ = _19_getKeyStoreInfoOutput + _19_getKeyStoreInfoOutput = (_17_valueOrError5).Extract().(m_AwsCryptographyKeyStoreTypes.GetKeyStoreInfoOutput) + var _20_logicalKeyStoreName _dafny.Sequence + _ = _20_logicalKeyStoreName + _20_logicalKeyStoreName = (_19_getKeyStoreInfoOutput).Dtor_logicalKeyStoreName() + var _21_valueOrError6 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_UTF8.Companion_ValidUTF8Bytes_.Witness()) + _ = _21_valueOrError6 + _21_valueOrError6 = (m_UTF8.Encode(_20_logicalKeyStoreName)).MapFailure(func(coer128 func(_dafny.Sequence) m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Error) func(interface{}) interface{} { + return func(arg158 interface{}) interface{} { + return coer128(arg158.(_dafny.Sequence)) + } + }(func(_22_e _dafny.Sequence) m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Error { + return m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_Error_.Create_DynamoDbEncryptionException_(_dafny.Companion_Sequence_.Concatenate(_dafny.SeqOfString("Could not UTF-8 Encode Logical Key Store Name: "), _22_e)) + })) + if (_21_valueOrError6).IsFailure() { + output = (_21_valueOrError6).PropagateFailure() + return output + } + var _23_logicalKeyStoreNameBytes _dafny.Sequence + _ = _23_logicalKeyStoreNameBytes + _23_logicalKeyStoreNameBytes = (_21_valueOrError6).Extract().(_dafny.Sequence) + if (config).Is_multi() { + var _24_valueOrError7 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _24_valueOrError7 + _24_valueOrError7 = m_Wrappers.Companion_Default___.Need((int32(0)) < (((config).Dtor_multi()).Dtor_cacheTTL()), m_DynamoDbEncryptionUtil.Companion_Default___.E(_dafny.SeqOfString("Beacon Cache TTL must be at least 1."))) + if (_24_valueOrError7).IsFailure() { + output = (_24_valueOrError7).PropagateFailure() + return output + } + var _25_valueOrError8 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(false) + _ = _25_valueOrError8 + _25_valueOrError8 = Companion_Default___.ShouldDeleteKeyField(outer, ((config).Dtor_multi()).Dtor_keyFieldName()) + if (_25_valueOrError8).IsFailure() { + output = (_25_valueOrError8).PropagateFailure() + return output + } + var _26_deleteKey bool + _ = _26_deleteKey + _26_deleteKey = (_25_valueOrError8).Extract().(bool) + output = m_Wrappers.Companion_Result_.Create_Success_(m_SearchableEncryptionInfo.Companion_KeySource_.Create_KeySource_(client, keyStore, m_SearchableEncryptionInfo.Companion_KeyLocation_.Create_MultiLoc_(((config).Dtor_multi()).Dtor_keyFieldName(), _26_deleteKey), _5_cache, uint32(((config).Dtor_multi()).Dtor_cacheTTL()), _10_partitionIdBytes, _23_logicalKeyStoreNameBytes)) + } else { + var _27_valueOrError9 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _27_valueOrError9 + _27_valueOrError9 = m_Wrappers.Companion_Default___.Need((int32(0)) < (((config).Dtor_single()).Dtor_cacheTTL()), m_DynamoDbEncryptionUtil.Companion_Default___.E(_dafny.SeqOfString("Beacon Cache TTL must be at least 1."))) + if (_27_valueOrError9).IsFailure() { + output = (_27_valueOrError9).PropagateFailure() + return output + } + output = m_Wrappers.Companion_Result_.Create_Success_(m_SearchableEncryptionInfo.Companion_KeySource_.Create_KeySource_(client, keyStore, m_SearchableEncryptionInfo.Companion_KeyLocation_.Create_SingleLoc_(((config).Dtor_single()).Dtor_keyId()), _5_cache, uint32(((config).Dtor_single()).Dtor_cacheTTL()), _10_partitionIdBytes, _23_logicalKeyStoreNameBytes)) + } + return output +} +func (_static *CompanionStruct_Default___) ConvertVersion(outer m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.DynamoDbTableEncryptionConfig, config m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.BeaconVersion) m_Wrappers.Result { + var output m_Wrappers.Result = m_Wrappers.Result{} + _ = output + var _0_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _0_valueOrError0 + _0_valueOrError0 = m_Wrappers.Companion_Default___.Need(((config).Dtor_version()) == (int32(1)), m_DynamoDbEncryptionUtil.Companion_Default___.E(_dafny.SeqOfString("Version number in BeaconVersion must be '1'."))) + if (_0_valueOrError0).IsFailure() { + output = (_0_valueOrError0).PropagateFailure() + return output + } + var _1_valueOrError1 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _1_valueOrError1 + _1_valueOrError1 = m_Wrappers.Companion_Default___.Need((_dafny.IntOfUint32(((config).Dtor_standardBeacons()).Cardinality())).Sign() == 1, m_DynamoDbEncryptionUtil.Companion_Default___.E(_dafny.SeqOfString("At least one standard beacon must be configured."))) + if (_1_valueOrError1).IsFailure() { + output = (_1_valueOrError1).PropagateFailure() + return output + } + var _2_maybePrimitives m_Wrappers.Result + _ = _2_maybePrimitives + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_AtomicPrimitives.Companion_Default___.AtomicPrimitives(m_AtomicPrimitives.Companion_Default___.DefaultCryptoConfig()) + _2_maybePrimitives = _out0 + var _3_valueOrError2 m_Wrappers.Result = m_Wrappers.Result{} + _ = _3_valueOrError2 + _3_valueOrError2 = (_2_maybePrimitives).MapFailure(func(coer129 func(m_AwsCryptographyPrimitivesTypes.Error) m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Error) func(interface{}) interface{} { + return func(arg159 interface{}) interface{} { + return coer129(arg159.(m_AwsCryptographyPrimitivesTypes.Error)) + } + }(func(_4_e m_AwsCryptographyPrimitivesTypes.Error) m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Error { + return m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_Error_.Create_AwsCryptographyPrimitives_(_4_e) + })) + if (_3_valueOrError2).IsFailure() { + output = (_3_valueOrError2).PropagateFailure() + return output + } + var _5_primitives *m_AtomicPrimitives.AtomicPrimitivesClient + _ = _5_primitives + _5_primitives = (_3_valueOrError2).Extract().(*m_AtomicPrimitives.AtomicPrimitivesClient) + var _6_valueOrError3 m_Wrappers.Result = m_Wrappers.Result{} + _ = _6_valueOrError3 + var _out1 m_Wrappers.Result + _ = _out1 + _out1 = Companion_Default___.MakeKeySource(outer, (config).Dtor_keyStore(), (config).Dtor_keySource(), _5_primitives) + _6_valueOrError3 = _out1 + if (_6_valueOrError3).IsFailure() { + output = (_6_valueOrError3).PropagateFailure() + return output + } + var _7_source m_SearchableEncryptionInfo.KeySource + _ = _7_source + _7_source = (_6_valueOrError3).Extract().(m_SearchableEncryptionInfo.KeySource) + var _out2 m_Wrappers.Result + _ = _out2 + _out2 = Companion_Default___.ConvertVersionWithSource(outer, config, _7_source) + output = _out2 + return output +} +func (_static *CompanionStruct_Default___) ConvertVersionWithSource(outer m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.DynamoDbTableEncryptionConfig, config m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.BeaconVersion, source m_SearchableEncryptionInfo.KeySource) m_Wrappers.Result { + var output m_Wrappers.Result = m_Wrappers.Result{} + _ = output + var _0_valueOrError0 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptyMap) + _ = _0_valueOrError0 + _0_valueOrError0 = Companion_Default___.ConvertVirtualFields(outer, (config).Dtor_virtualFields()) + if (_0_valueOrError0).IsFailure() { + output = (_0_valueOrError0).PropagateFailure() + return output + } + var _1_virtualFields _dafny.Map + _ = _1_virtualFields + _1_virtualFields = (_0_valueOrError0).Extract().(_dafny.Map) + var _2_valueOrError1 m_Wrappers.Result = m_Wrappers.Result{} + _ = _2_valueOrError1 + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = Companion_Default___.AddStandardBeacons((config).Dtor_standardBeacons(), outer, (source).Dtor_client(), _1_virtualFields, _dafny.NewMapBuilder().ToMap()) + _2_valueOrError1 = _out0 + if (_2_valueOrError1).IsFailure() { + output = (_2_valueOrError1).PropagateFailure() + return output + } + var _3_std _dafny.Map + _ = _3_std + _3_std = (_2_valueOrError1).Extract().(_dafny.Map) + var _4_signed _dafny.Sequence + _ = _4_signed + if ((config).Dtor_signedParts()).Is_Some() { + _4_signed = ((config).Dtor_signedParts()).Dtor_value().(_dafny.Sequence) + } else { + _4_signed = _dafny.SeqOf() + } + var _5_valueOrError2 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(Companion_PartSet_.Default()) + _ = _5_valueOrError2 + _5_valueOrError2 = Companion_Default___.GetSignedParts(_4_signed, outer, _dafny.SeqOfString("Global Parts List"), Companion_PartSet_.Create_PartSet_(_dafny.SeqOf(), _dafny.SetOf(), _dafny.SetOf())) + if (_5_valueOrError2).IsFailure() { + output = (_5_valueOrError2).PropagateFailure() + return output + } + var _6_globalSignedParts PartSet + _ = _6_globalSignedParts + _6_globalSignedParts = (_5_valueOrError2).Extract().(PartSet) + var _7_globalEncryptedParts PartSet + _ = _7_globalEncryptedParts + _7_globalEncryptedParts = Companion_PartSet_.Create_PartSet_(_dafny.SeqOf(), _dafny.SetOf(), _dafny.SetOf()) + if ((config).Dtor_encryptedParts()).Is_Some() { + var _8_valueOrError3 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(Companion_PartSet_.Default()) + _ = _8_valueOrError3 + _8_valueOrError3 = Companion_Default___.GetEncryptedParts(((config).Dtor_encryptedParts()).Dtor_value().(_dafny.Sequence), _3_std, _dafny.SeqOfString("Global Parts List"), Companion_PartSet_.Create_PartSet_(_dafny.SeqOf(), _dafny.SetOf(), _dafny.SetOf())) + if (_8_valueOrError3).IsFailure() { + output = (_8_valueOrError3).PropagateFailure() + return output + } + _7_globalEncryptedParts = (_8_valueOrError3).Extract().(PartSet) + } + var _9_beacons _dafny.Map = _dafny.EmptyMap + _ = _9_beacons + if ((config).Dtor_compoundBeacons()).Is_Some() { + var _10_valueOrError4 m_Wrappers.Result = m_Wrappers.Result{} + _ = _10_valueOrError4 + var _out1 m_Wrappers.Result + _ = _out1 + _out1 = Companion_Default___.AddCompoundBeacons(((config).Dtor_compoundBeacons()).Dtor_value().(_dafny.Sequence), outer, (source).Dtor_client(), _1_virtualFields, _3_std, _6_globalSignedParts, _7_globalEncryptedParts) + _10_valueOrError4 = _out1 + if (_10_valueOrError4).IsFailure() { + output = (_10_valueOrError4).PropagateFailure() + return output + } + _9_beacons = (_10_valueOrError4).Extract().(_dafny.Map) + } else { + _9_beacons = _3_std + } + var _11_valueOrError5 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(false) + _ = _11_valueOrError5 + _11_valueOrError5 = Companion_Default___.CheckBeacons(_9_beacons) + if (_11_valueOrError5).IsFailure() { + output = (_11_valueOrError5).PropagateFailure() + return output + } + var _12___v0 bool + _ = _12___v0 + _12___v0 = (_11_valueOrError5).Extract().(bool) + if ((source).Dtor_keyLoc()).Is_MultiLoc() { + var _13_name _dafny.Sequence + _ = _13_name + _13_name = ((source).Dtor_keyLoc()).Dtor_keyName() + if (_9_beacons).Contains(_13_name) { + output = m_Wrappers.Companion_Result_.Create_Failure_(m_DynamoDbEncryptionUtil.Companion_Default___.E(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.SeqOfString("A beacon key field name of "), _13_name), _dafny.SeqOfString(" was configured, but there's also a beacon of that name.")))) + return output + } + if (_1_virtualFields).Contains(_13_name) { + output = m_Wrappers.Companion_Result_.Create_Failure_(m_DynamoDbEncryptionUtil.Companion_Default___.E(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.SeqOfString("A beacon key field name of "), _13_name), _dafny.SeqOfString(" was configured, but there's also a virtual field of that name.")))) + return output + } + } + output = m_SearchableEncryptionInfo.Companion_Default___.MakeBeaconVersion(uint8((config).Dtor_version()), source, _9_beacons, _1_virtualFields, (outer).Dtor_attributeActionsOnEncrypt()) + return output + return output +} +func (_static *CompanionStruct_Default___) ConvertVirtualFields(outer m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.DynamoDbTableEncryptionConfig, vf m_Wrappers.Option) m_Wrappers.Result { + if (vf).Is_None() { + return m_Wrappers.Companion_Result_.Create_Success_(_dafny.NewMapBuilder().ToMap()) + } else { + return Companion_Default___.AddVirtualFields((vf).Dtor_value().(_dafny.Sequence), outer, _dafny.NewMapBuilder().ToMap()) + } +} +func (_static *CompanionStruct_Default___) IsSigned(outer m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.DynamoDbTableEncryptionConfig, loc _dafny.Sequence) bool { + var _pat_let_tv0 = outer + _ = _pat_let_tv0 + var _pat_let_tv1 = outer + _ = _pat_let_tv1 + return (true) && (func(_pat_let20_0 _dafny.Sequence) bool { + return func(_0_name _dafny.Sequence) bool { + return (((_pat_let_tv0).Dtor_attributeActionsOnEncrypt()).Contains(_0_name)) && (!(((_pat_let_tv1).Dtor_attributeActionsOnEncrypt()).Get(_0_name).(m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.CryptoAction)).Equals(m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Companion_CryptoAction_.Create_DO__NOTHING_())) + }(_pat_let20_0) + }(((loc).Select(0).(m_TermLoc.Selector)).Dtor_key())) +} +func (_static *CompanionStruct_Default___) IsSignOnly(outer m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.DynamoDbTableEncryptionConfig, loc _dafny.Sequence) bool { + var _pat_let_tv0 = outer + _ = _pat_let_tv0 + var _pat_let_tv1 = outer + _ = _pat_let_tv1 + var _pat_let_tv2 = outer + _ = _pat_let_tv2 + return (true) && (func(_pat_let21_0 _dafny.Sequence) bool { + return func(_0_name _dafny.Sequence) bool { + return (((_pat_let_tv0).Dtor_attributeActionsOnEncrypt()).Contains(_0_name)) && (((((_pat_let_tv1).Dtor_attributeActionsOnEncrypt()).Get(_0_name).(m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.CryptoAction)).Equals(m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Companion_CryptoAction_.Create_SIGN__AND__INCLUDE__IN__ENCRYPTION__CONTEXT_())) || ((((_pat_let_tv2).Dtor_attributeActionsOnEncrypt()).Get(_0_name).(m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.CryptoAction)).Equals(m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Companion_CryptoAction_.Create_SIGN__ONLY_()))) + }(_pat_let21_0) + }(((loc).Select(0).(m_TermLoc.Selector)).Dtor_key())) +} +func (_static *CompanionStruct_Default___) IsEncrypted(outer m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.DynamoDbTableEncryptionConfig, loc _dafny.Sequence) bool { + var _pat_let_tv0 = outer + _ = _pat_let_tv0 + var _pat_let_tv1 = outer + _ = _pat_let_tv1 + return (true) && (func(_pat_let22_0 _dafny.Sequence) bool { + return func(_0_name _dafny.Sequence) bool { + return (((_pat_let_tv0).Dtor_attributeActionsOnEncrypt()).Contains(_0_name)) && ((((_pat_let_tv1).Dtor_attributeActionsOnEncrypt()).Get(_0_name).(m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.CryptoAction)).Equals(m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Companion_CryptoAction_.Create_ENCRYPT__AND__SIGN_())) + }(_pat_let22_0) + }(((loc).Select(0).(m_TermLoc.Selector)).Dtor_key())) +} +func (_static *CompanionStruct_Default___) IsEncryptedV(outer m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.DynamoDbTableEncryptionConfig, virtualFields _dafny.Map, loc _dafny.Sequence) bool { + return (Companion_Default___.IsEncrypted(outer, loc)) || (((virtualFields).Contains(((loc).Select(0).(m_TermLoc.Selector)).Dtor_key())) && (((virtualFields).Get(((loc).Select(0).(m_TermLoc.Selector)).Dtor_key()).(m_DdbVirtualFields.VirtField)).Examine((func(_0_outer m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.DynamoDbTableEncryptionConfig) func(_dafny.Sequence) bool { + return func(_1_t _dafny.Sequence) bool { + return Companion_Default___.IsEncrypted(_0_outer, _1_t) + } + })(outer)))) +} +func (_static *CompanionStruct_Default___) BeaconNameAllowed(outer m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.DynamoDbTableEncryptionConfig, virtualFields _dafny.Map, name _dafny.Sequence, context _dafny.Sequence, isSignedBeacon bool) m_Wrappers.Result { + if (((outer).Dtor_attributeActionsOnEncrypt()).Contains(name)) && (!(((outer).Dtor_attributeActionsOnEncrypt()).Get(name).(m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.CryptoAction)).Equals(m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Companion_CryptoAction_.Create_ENCRYPT__AND__SIGN_())) { + return m_Wrappers.Companion_Result_.Create_Failure_(m_DynamoDbEncryptionUtil.Companion_Default___.E(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(name, _dafny.SeqOfString(" not allowed as a ")), context), _dafny.SeqOfString(" because it is already an unencrypted attribute.")))) + } else if (isSignedBeacon) && (((outer).Dtor_attributeActionsOnEncrypt()).Contains(name)) { + return m_Wrappers.Companion_Result_.Create_Failure_(m_DynamoDbEncryptionUtil.Companion_Default___.E(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(name, _dafny.SeqOfString(" not allowed as a ")), context), _dafny.SeqOfString(" because a fully signed beacon cannot have the same name as an existing attribute.")))) + } else if (((outer).Dtor_allowedUnsignedAttributes()).Is_Some()) && (_dafny.Companion_Sequence_.Contains(((outer).Dtor_allowedUnsignedAttributes()).Dtor_value().(_dafny.Sequence), name)) { + return m_Wrappers.Companion_Result_.Create_Failure_(m_DynamoDbEncryptionUtil.Companion_Default___.E(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(name, _dafny.SeqOfString(" not allowed as a ")), context), _dafny.SeqOfString(" because it is already an allowed unauthenticated attribute.")))) + } else if (((outer).Dtor_allowedUnsignedAttributePrefix()).Is_Some()) && (_dafny.Companion_Sequence_.IsPrefixOf(((outer).Dtor_allowedUnsignedAttributePrefix()).Dtor_value().(_dafny.Sequence), name)) { + return m_Wrappers.Companion_Result_.Create_Failure_(m_DynamoDbEncryptionUtil.Companion_Default___.E(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(name, _dafny.SeqOfString(" not allowed as a ")), context), _dafny.SeqOfString(" because it begins with the allowed unauthenticated prefix.")))) + } else if _dafny.Companion_Sequence_.IsPrefixOf(m_DynamoDbEncryptionUtil.Companion_Default___.ReservedPrefix(), name) { + return m_Wrappers.Companion_Result_.Create_Failure_(m_DynamoDbEncryptionUtil.Companion_Default___.E(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(name, _dafny.SeqOfString(" not allowed as a ")), context), _dafny.SeqOfString(" because it begins with the reserved prefix.")))) + } else { + return m_Wrappers.Companion_Result_.Create_Success_(true) + } +} +func (_static *CompanionStruct_Default___) VirtualFieldNameAllowed(outer m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.DynamoDbTableEncryptionConfig, name _dafny.Sequence) m_Wrappers.Result { + if ((outer).Dtor_attributeActionsOnEncrypt()).Contains(name) { + return m_Wrappers.Companion_Result_.Create_Failure_(m_DynamoDbEncryptionUtil.Companion_Default___.E(_dafny.Companion_Sequence_.Concatenate(name, _dafny.SeqOfString(" not allowed as a Virtual Field because it is already a configured attribute.")))) + } else if (((outer).Dtor_allowedUnsignedAttributes()).Is_Some()) && (_dafny.Companion_Sequence_.Contains(((outer).Dtor_allowedUnsignedAttributes()).Dtor_value().(_dafny.Sequence), name)) { + return m_Wrappers.Companion_Result_.Create_Failure_(m_DynamoDbEncryptionUtil.Companion_Default___.E(_dafny.Companion_Sequence_.Concatenate(name, _dafny.SeqOfString(" not allowed as a Virtual Field because it is already an allowed unauthenticated attribute.")))) + } else if (((outer).Dtor_allowedUnsignedAttributePrefix()).Is_Some()) && (_dafny.Companion_Sequence_.IsPrefixOf(((outer).Dtor_allowedUnsignedAttributePrefix()).Dtor_value().(_dafny.Sequence), name)) { + return m_Wrappers.Companion_Result_.Create_Failure_(m_DynamoDbEncryptionUtil.Companion_Default___.E(_dafny.Companion_Sequence_.Concatenate(name, _dafny.SeqOfString(" not allowed as a Virtual Field because it begins with the allowed unauthenticated prefix.")))) + } else if _dafny.Companion_Sequence_.IsPrefixOf(m_DynamoDbEncryptionUtil.Companion_Default___.ReservedPrefix(), name) { + return m_Wrappers.Companion_Result_.Create_Failure_(m_DynamoDbEncryptionUtil.Companion_Default___.E(_dafny.Companion_Sequence_.Concatenate(name, _dafny.SeqOfString(" not allowed as a Virtual Field because it begins with the reserved prefix.")))) + } else { + return m_Wrappers.Companion_Result_.Create_Success_(true) + } +} +func (_static *CompanionStruct_Default___) FindVirtualFieldWithThisLocation(fields _dafny.Map, locs _dafny.Set) m_Wrappers.Option { + var _0_badNames _dafny.Set = func() _dafny.Set { + var _coll0 = _dafny.NewBuilder() + _ = _coll0 + for _iter31 := _dafny.Iterate((fields).Keys().Elements()); ; { + _compr_0, _ok31 := _iter31() + if !_ok31 { + break + } + var _1_b _dafny.Sequence + _1_b = interface{}(_compr_0).(_dafny.Sequence) + if ((fields).Contains(_1_b)) && ((((fields).Get(_1_b).(m_DdbVirtualFields.VirtField)).GetLocs()).Equals(locs)) { + _coll0.Add(_1_b) + } + } + return _coll0.ToSet() + }() + _ = _0_badNames + if ((_0_badNames).Cardinality()).Sign() == 0 { + return m_Wrappers.Companion_Option_.Create_None_() + } else { + var _2_badSeq _dafny.Sequence = m_SortedSets.SetToOrderedSequence2(_0_badNames, func(coer130 func(_dafny.Char, _dafny.Char) bool) func(interface{}, interface{}) bool { + return func(arg160 interface{}, arg161 interface{}) bool { + return coer130(arg160.(_dafny.Char), arg161.(_dafny.Char)) + } + }(m_DynamoDbEncryptionUtil.Companion_Default___.CharLess)) + _ = _2_badSeq + return m_Wrappers.Companion_Option_.Create_Some_((_2_badSeq).Select(0).(_dafny.Sequence)) + } +} +func (_static *CompanionStruct_Default___) ExistsConstructorWithTheseRequired(cons _dafny.Sequence, locs _dafny.Set) bool { + return (Companion_Default___.SeqCount(func(coer131 func(m_CompoundBeacon.Constructor) bool) func(interface{}) bool { + return func(arg162 interface{}) bool { + return coer131(arg162.(m_CompoundBeacon.Constructor)) + } + }((func(_0_locs _dafny.Set) func(m_CompoundBeacon.Constructor) bool { + return func(_1_c m_CompoundBeacon.Constructor) bool { + return ((_1_c).GetReqParts()).Equals(_0_locs) + } + })(locs)), cons)).Sign() == 1 +} +func (_static *CompanionStruct_Default___) GetPartsString(c m_CompoundBeacon.Constructor) _dafny.Sequence { + var _0_req _dafny.Sequence = m_Seq.Companion_Default___.Filter(func(coer132 func(m_CompoundBeacon.ConstructorPart) bool) func(interface{}) bool { + return func(arg163 interface{}) bool { + return coer132(arg163.(m_CompoundBeacon.ConstructorPart)) + } + }(func(_1_p m_CompoundBeacon.ConstructorPart) bool { + return (_1_p).Dtor_required() + }), (c).Dtor_parts()) + _ = _0_req + var _2_names _dafny.Sequence = m_Seq.Companion_Default___.Map(func(coer133 func(m_CompoundBeacon.ConstructorPart) _dafny.Sequence) func(interface{}) interface{} { + return func(arg164 interface{}) interface{} { + return coer133(arg164.(m_CompoundBeacon.ConstructorPart)) + } + }(func(_3_p m_CompoundBeacon.ConstructorPart) _dafny.Sequence { + return ((_3_p).Dtor_part()).GetName() + }), _0_req) + _ = _2_names + if (_dafny.IntOfUint32((_2_names).Cardinality())).Sign() == 0 { + return _dafny.SeqOfString("") + } else { + return m_StandardLibrary.Companion_Default___.Join(_2_names, _dafny.SeqOfString(", ")) + } +} +func (_static *CompanionStruct_Default___) AddVirtualFields(vf _dafny.Sequence, outer m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.DynamoDbTableEncryptionConfig, converted _dafny.Map) m_Wrappers.Result { + goto TAIL_CALL_START +TAIL_CALL_START: + if (_dafny.IntOfUint32((vf).Cardinality())).Sign() == 0 { + return m_Wrappers.Companion_Result_.Create_Success_(converted) + } else { + var _0_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need(!(converted).Contains(((vf).Select(0).(m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.VirtualField)).Dtor_name()), m_DynamoDbEncryptionUtil.Companion_Default___.E(_dafny.Companion_Sequence_.Concatenate(_dafny.SeqOfString("Duplicate VirtualField name : "), ((vf).Select(0).(m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.VirtualField)).Dtor_name()))) + _ = _0_valueOrError0 + if (_0_valueOrError0).IsFailure() { + return (_0_valueOrError0).PropagateFailure() + } else { + var _1_valueOrError1 m_Wrappers.Result = Companion_Default___.VirtualFieldNameAllowed(outer, ((vf).Select(0).(m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.VirtualField)).Dtor_name()) + _ = _1_valueOrError1 + if (_1_valueOrError1).IsFailure() { + return (_1_valueOrError1).PropagateFailure() + } else { + var _2___v1 bool = (_1_valueOrError1).Extract().(bool) + _ = _2___v1 + var _3_valueOrError2 m_Wrappers.Result = m_DdbVirtualFields.Companion_Default___.ParseVirtualFieldConfig((vf).Select(0).(m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.VirtualField)) + _ = _3_valueOrError2 + if (_3_valueOrError2).IsFailure() { + return (_3_valueOrError2).PropagateFailure() + } else { + var _4_newField m_DdbVirtualFields.VirtField = (_3_valueOrError2).Extract().(m_DdbVirtualFields.VirtField) + _ = _4_newField + var _5_valueOrError3 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need(!((_4_newField).Examine((func(_6_outer m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.DynamoDbTableEncryptionConfig) func(_dafny.Sequence) bool { + return func(_7_t _dafny.Sequence) bool { + return !(Companion_Default___.IsSigned(_6_outer, _7_t)) + } + })(outer))), m_DynamoDbEncryptionUtil.Companion_Default___.E(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.SeqOfString("VirtualField "), ((vf).Select(0).(m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.VirtualField)).Dtor_name()), _dafny.SeqOfString(" must be defined on signed fields.")))) + _ = _5_valueOrError3 + if (_5_valueOrError3).IsFailure() { + return (_5_valueOrError3).PropagateFailure() + } else { + var _8_badField m_Wrappers.Option = Companion_Default___.FindVirtualFieldWithThisLocation(converted, (_4_newField).GetLocs()) + _ = _8_badField + if (_8_badField).Is_Some() { + return m_Wrappers.Companion_Result_.Create_Failure_(m_DynamoDbEncryptionUtil.Companion_Default___.E(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.SeqOfString("Virtual field "), ((vf).Select(0).(m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.VirtualField)).Dtor_name()), _dafny.SeqOfString(" is defined on the same locations as ")), (_8_badField).Dtor_value().(_dafny.Sequence)), _dafny.SeqOfString(".")))) + } else { + var _in0 _dafny.Sequence = (vf).Drop(1) + _ = _in0 + var _in1 m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.DynamoDbTableEncryptionConfig = outer + _ = _in1 + var _in2 _dafny.Map = (converted).Update(((vf).Select(0).(m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.VirtualField)).Dtor_name(), _4_newField) + _ = _in2 + vf = _in0 + outer = _in1 + converted = _in2 + goto TAIL_CALL_START + } + } + } + } + } + } +} +func (_static *CompanionStruct_Default___) FindBeaconWithThisLocation(beacons _dafny.Map, loc _dafny.Sequence) m_Wrappers.Option { + var _0_badNames _dafny.Set = func() _dafny.Set { + var _coll0 = _dafny.NewBuilder() + _ = _coll0 + for _iter32 := _dafny.Iterate((beacons).Keys().Elements()); ; { + _compr_0, _ok32 := _iter32() + if !_ok32 { + break + } + var _1_b _dafny.Sequence + _1_b = interface{}(_compr_0).(_dafny.Sequence) + if (((beacons).Contains(_1_b)) && (((beacons).Get(_1_b).(m_SearchableEncryptionInfo.Beacon)).Is_Standard())) && (_dafny.Companion_Sequence_.Equal((((beacons).Get(_1_b).(m_SearchableEncryptionInfo.Beacon)).Dtor_std()).Dtor_loc(), loc)) { + _coll0.Add(_1_b) + } + } + return _coll0.ToSet() + }() + _ = _0_badNames + if ((_0_badNames).Cardinality()).Sign() == 0 { + return m_Wrappers.Companion_Option_.Create_None_() + } else { + var _2_badSeq _dafny.Sequence = m_SortedSets.SetToOrderedSequence2(_0_badNames, func(coer134 func(_dafny.Char, _dafny.Char) bool) func(interface{}, interface{}) bool { + return func(arg165 interface{}, arg166 interface{}) bool { + return coer134(arg165.(_dafny.Char), arg166.(_dafny.Char)) + } + }(m_DynamoDbEncryptionUtil.Companion_Default___.CharLess)) + _ = _2_badSeq + return m_Wrappers.Companion_Option_.Create_Some_((_2_badSeq).Select(0).(_dafny.Sequence)) + } +} +func (_static *CompanionStruct_Default___) IsValidShare(converted _dafny.Map, name _dafny.Sequence, length uint8, share _dafny.Sequence) m_Wrappers.Result { + if (converted).Contains(share) { + var _0_tb m_SearchableEncryptionInfo.Beacon = (converted).Get(share).(m_SearchableEncryptionInfo.Beacon) + _ = _0_tb + if (_0_tb).Is_Standard() { + if (((_0_tb).Dtor_std()).Dtor_share()).Is_Some() { + if _dafny.Companion_Sequence_.Equal(name, share) { + return m_Wrappers.Companion_Result_.Create_Failure_(m_DynamoDbEncryptionUtil.Companion_Default___.E(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.SeqOfString("Beacon "), name), _dafny.SeqOfString(" is shared to itself.")))) + } else { + return m_Wrappers.Companion_Result_.Create_Failure_(m_DynamoDbEncryptionUtil.Companion_Default___.E(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.SeqOfString("Beacon "), name), _dafny.SeqOfString(" is shared to ")), share), _dafny.SeqOfString(" which is in turn shared to ")), (((_0_tb).Dtor_std()).Dtor_share()).Dtor_value().(_dafny.Sequence)), _dafny.SeqOfString(". Share chains are not allowed.")))) + } + } else if (((_0_tb).Dtor_std()).Dtor_length()) == (length) { + return m_Wrappers.Companion_Result_.Create_Success_(true) + } else { + return m_Wrappers.Companion_Result_.Create_Failure_(m_DynamoDbEncryptionUtil.Companion_Default___.E(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.SeqOfString("Beacon "), name), _dafny.SeqOfString(" is shared to ")), share), _dafny.SeqOfString(" but ")), name), _dafny.SeqOfString(" has length ")), m_StandardLibrary_String.Companion_Default___.Base10Int2String(_dafny.IntOfUint8(length))), _dafny.SeqOfString(" and ")), share), _dafny.SeqOfString(" has length ")), m_StandardLibrary_String.Companion_Default___.Base10Int2String(_dafny.IntOfUint8(((_0_tb).Dtor_std()).Dtor_length()))), _dafny.SeqOfString(".")))) + } + } else { + return m_Wrappers.Companion_Result_.Create_Failure_(m_DynamoDbEncryptionUtil.Companion_Default___.E(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.SeqOfString("Beacon "), name), _dafny.SeqOfString(" is shared to ")), share), _dafny.SeqOfString(" but ")), share), _dafny.SeqOfString(" is a compound beacon.")))) + } + } else { + return m_Wrappers.Companion_Result_.Create_Failure_(m_DynamoDbEncryptionUtil.Companion_Default___.E(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.SeqOfString("Beacon "), name), _dafny.SeqOfString(" is shared to ")), share), _dafny.SeqOfString(" which is not defined.")))) + } +} +func (_static *CompanionStruct_Default___) AddStandardBeacons(beacons _dafny.Sequence, outer m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.DynamoDbTableEncryptionConfig, client *m_AtomicPrimitives.AtomicPrimitivesClient, virtualFields _dafny.Map, converted _dafny.Map) m_Wrappers.Result { + var output m_Wrappers.Result = m_Wrappers.Result{} + _ = output + if (_dafny.IntOfUint32((beacons).Cardinality())).Sign() == 0 { + output = m_Wrappers.Companion_Result_.Create_Success_(converted) + return output + } + var _0_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _0_valueOrError0 + _0_valueOrError0 = m_Wrappers.Companion_Default___.Need(!(converted).Contains(((beacons).Select(0).(m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.StandardBeacon)).Dtor_name()), m_DynamoDbEncryptionUtil.Companion_Default___.E(_dafny.Companion_Sequence_.Concatenate(_dafny.SeqOfString("Duplicate StandardBeacon name : "), ((beacons).Select(0).(m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.StandardBeacon)).Dtor_name()))) + if (_0_valueOrError0).IsFailure() { + output = (_0_valueOrError0).PropagateFailure() + return output + } + var _1_valueOrError1 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(false) + _ = _1_valueOrError1 + _1_valueOrError1 = Companion_Default___.BeaconNameAllowed(outer, virtualFields, ((beacons).Select(0).(m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.StandardBeacon)).Dtor_name(), _dafny.SeqOfString("StandardBeacon"), false) + if (_1_valueOrError1).IsFailure() { + output = (_1_valueOrError1).PropagateFailure() + return output + } + var _2___v2 bool + _ = _2___v2 + _2___v2 = (_1_valueOrError1).Extract().(bool) + var _3_locString _dafny.Sequence + _ = _3_locString + _3_locString = Companion_Default___.GetLocStr(((beacons).Select(0).(m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.StandardBeacon)).Dtor_name(), ((beacons).Select(0).(m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.StandardBeacon)).Dtor_loc()) + var _4_isPartOnly bool + _ = _4_isPartOnly + _4_isPartOnly = false + var _5_isAsSet bool + _ = _5_isAsSet + _5_isAsSet = false + var _6_share m_Wrappers.Option + _ = _6_share + _6_share = m_Wrappers.Companion_Option_.Create_None_() + if (((beacons).Select(0).(m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.StandardBeacon)).Dtor_style()).Is_Some() { + var _source0 m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.BeaconStyle = (((beacons).Select(0).(m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.StandardBeacon)).Dtor_style()).Dtor_value().(m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.BeaconStyle) + _ = _source0 + { + { + if _source0.Is_partOnly() { + var _7_t m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.PartOnly = _source0.Get_().(m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.BeaconStyle_partOnly).PartOnly + _ = _7_t + _4_isPartOnly = true + goto Lmatch0 + } + } + { + if _source0.Is_shared() { + var _8_t m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Shared = _source0.Get_().(m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.BeaconStyle_shared).Shared + _ = _8_t + _6_share = m_Wrappers.Companion_Option_.Create_Some_((_8_t).Dtor_other()) + goto Lmatch0 + } + } + { + if _source0.Is_asSet() { + var _9_t m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.AsSet = _source0.Get_().(m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.BeaconStyle_asSet).AsSet + _ = _9_t + _5_isAsSet = true + goto Lmatch0 + } + } + { + var _10_t m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.SharedSet = _source0.Get_().(m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.BeaconStyle_sharedSet).SharedSet + _ = _10_t + _6_share = m_Wrappers.Companion_Option_.Create_Some_((_10_t).Dtor_other()) + _5_isAsSet = true + } + goto Lmatch0 + } + Lmatch0: + } + var _11_valueOrError2 m_Wrappers.Result = m_Wrappers.Result{} + _ = _11_valueOrError2 + _11_valueOrError2 = m_BaseBeacon.Companion_Default___.MakeStandardBeacon(client, ((beacons).Select(0).(m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.StandardBeacon)).Dtor_name(), uint8(((beacons).Select(0).(m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.StandardBeacon)).Dtor_length()), _3_locString, _4_isPartOnly, _5_isAsSet, _6_share) + if (_11_valueOrError2).IsFailure() { + output = (_11_valueOrError2).PropagateFailure() + return output + } + var _12_newBeacon m_BaseBeacon.StandardBeacon + _ = _12_newBeacon + _12_newBeacon = (_11_valueOrError2).Extract().(m_BaseBeacon.StandardBeacon) + var _13_valueOrError3 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _13_valueOrError3 + _13_valueOrError3 = m_Wrappers.Companion_Default___.Need(Companion_Default___.IsEncryptedV(outer, virtualFields, (_12_newBeacon).Dtor_loc()), m_DynamoDbEncryptionUtil.Companion_Default___.E(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.SeqOfString("StandardBeacon "), ((beacons).Select(0).(m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.StandardBeacon)).Dtor_name()), _dafny.SeqOfString(" not defined on an encrypted field.")))) + if (_13_valueOrError3).IsFailure() { + output = (_13_valueOrError3).PropagateFailure() + return output + } + var _14_badBeacon m_Wrappers.Option + _ = _14_badBeacon + _14_badBeacon = Companion_Default___.FindBeaconWithThisLocation(converted, (_12_newBeacon).Dtor_loc()) + if (_14_badBeacon).Is_Some() { + output = m_Wrappers.Companion_Result_.Create_Failure_(m_DynamoDbEncryptionUtil.Companion_Default___.E(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.SeqOfString("Beacon "), ((beacons).Select(0).(m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.StandardBeacon)).Dtor_name()), _dafny.SeqOfString(" is defined on location ")), m_TermLoc.Companion_Default___.TermLocToString((_12_newBeacon).Dtor_loc())), _dafny.SeqOfString(", but beacon ")), (_14_badBeacon).Dtor_value().(_dafny.Sequence)), _dafny.SeqOfString(" is already defined on that location.")))) + return output + } + var _15_badField m_Wrappers.Option + _ = _15_badField + _15_badField = Companion_Default___.FindVirtualFieldWithThisLocation(virtualFields, _dafny.SetOf((_12_newBeacon).Dtor_loc())) + if (_15_badField).Is_Some() { + output = m_Wrappers.Companion_Result_.Create_Failure_(m_DynamoDbEncryptionUtil.Companion_Default___.E(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.SeqOfString("Beacon "), ((beacons).Select(0).(m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.StandardBeacon)).Dtor_name()), _dafny.SeqOfString(" is defined on location ")), m_TermLoc.Companion_Default___.TermLocToString((_12_newBeacon).Dtor_loc())), _dafny.SeqOfString(", but virtual field ")), (_15_badField).Dtor_value().(_dafny.Sequence)), _dafny.SeqOfString(" is already defined on that single location.")))) + return output + } + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = Companion_Default___.AddStandardBeacons((beacons).Drop(1), outer, client, virtualFields, (converted).Update(((beacons).Select(0).(m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.StandardBeacon)).Dtor_name(), m_SearchableEncryptionInfo.Companion_Beacon_.Create_Standard_(_12_newBeacon))) + output = _out0 + return output +} +func (_static *CompanionStruct_Default___) GetLoc(name _dafny.Sequence, loc m_Wrappers.Option) m_Wrappers.Result { + if (loc).Is_None() { + return m_Wrappers.Companion_Result_.Create_Success_(m_TermLoc.Companion_Default___.TermLocMap(name)) + } else { + return m_TermLoc.Companion_Default___.MakeTermLoc((loc).Dtor_value().(_dafny.Sequence)) + } +} +func (_static *CompanionStruct_Default___) GetLocStr(name _dafny.Sequence, loc m_Wrappers.Option) _dafny.Sequence { + if (loc).Is_None() { + return name + } else { + return (loc).Dtor_value().(_dafny.Sequence) + } +} +func (_static *CompanionStruct_Default___) GetSignedParts(parts _dafny.Sequence, outer m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.DynamoDbTableEncryptionConfig, name _dafny.Sequence, converted PartSet) m_Wrappers.Result { + goto TAIL_CALL_START +TAIL_CALL_START: + if (_dafny.IntOfUint32((parts).Cardinality())).Sign() == 0 { + return m_Wrappers.Companion_Result_.Create_Success_(converted) + } else { + var _0_valueOrError0 m_Wrappers.Result = Companion_Default___.GetLoc(((parts).Select(0).(m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.SignedPart)).Dtor_name(), ((parts).Select(0).(m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.SignedPart)).Dtor_loc()) + _ = _0_valueOrError0 + if (_0_valueOrError0).IsFailure() { + return (_0_valueOrError0).PropagateFailure() + } else { + var _1_loc _dafny.Sequence = (_0_valueOrError0).Extract().(_dafny.Sequence) + _ = _1_loc + var _2_newPart m_CompoundBeacon.BeaconPart = m_CompoundBeacon.Companion_BeaconPart_.Create_Signed_(((parts).Select(0).(m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.SignedPart)).Dtor_prefix(), ((parts).Select(0).(m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.SignedPart)).Dtor_name(), _1_loc) + _ = _2_newPart + var _3_valueOrError1 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need(Companion_Default___.IsSignOnly(outer, (_2_newPart).Dtor_loc()), m_DynamoDbEncryptionUtil.Companion_Default___.E(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.SeqOfString("Signed Part "), (_2_newPart).Dtor_name()), _dafny.SeqOfString(" is built from ")), Companion_Default___.GetLocStr(((parts).Select(0).(m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.SignedPart)).Dtor_name(), ((parts).Select(0).(m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.SignedPart)).Dtor_loc())), _dafny.SeqOfString(" which is not SIGN_ONLY.")))) + _ = _3_valueOrError1 + if (_3_valueOrError1).IsFailure() { + return (_3_valueOrError1).PropagateFailure() + } else { + var _4_valueOrError2 m_Wrappers.Result = (converted).Add(_2_newPart, name) + _ = _4_valueOrError2 + if (_4_valueOrError2).IsFailure() { + return (_4_valueOrError2).PropagateFailure() + } else { + var _5_newParts PartSet = (_4_valueOrError2).Extract().(PartSet) + _ = _5_newParts + var _in0 _dafny.Sequence = (parts).Drop(1) + _ = _in0 + var _in1 m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.DynamoDbTableEncryptionConfig = outer + _ = _in1 + var _in2 _dafny.Sequence = name + _ = _in2 + var _in3 PartSet = _5_newParts + _ = _in3 + parts = _in0 + outer = _in1 + name = _in2 + converted = _in3 + goto TAIL_CALL_START + } + } + } + } +} +func (_static *CompanionStruct_Default___) GetEncryptedParts(parts _dafny.Sequence, std _dafny.Map, name _dafny.Sequence, converted PartSet) m_Wrappers.Result { + goto TAIL_CALL_START +TAIL_CALL_START: + if (_dafny.IntOfUint32((parts).Cardinality())).Sign() == 0 { + return m_Wrappers.Companion_Result_.Create_Success_(converted) + } else if (((std).Contains(((parts).Select(0).(m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.EncryptedPart)).Dtor_name())) && (((std).Get(((parts).Select(0).(m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.EncryptedPart)).Dtor_name()).(m_SearchableEncryptionInfo.Beacon)).Is_Standard())) && ((((std).Get(((parts).Select(0).(m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.EncryptedPart)).Dtor_name()).(m_SearchableEncryptionInfo.Beacon)).Dtor_std()).Dtor_asSet()) { + return m_Wrappers.Companion_Result_.Create_Failure_(m_DynamoDbEncryptionUtil.Companion_Default___.E(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(name, _dafny.SeqOfString(" uses ")), ((parts).Select(0).(m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.EncryptedPart)).Dtor_name()), _dafny.SeqOfString(" which is an AsSet beacon, and therefore cannot be used in a Compound Beacon.")))) + } else if ((std).Contains(((parts).Select(0).(m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.EncryptedPart)).Dtor_name())) && (((std).Get(((parts).Select(0).(m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.EncryptedPart)).Dtor_name()).(m_SearchableEncryptionInfo.Beacon)).Is_Standard()) { + var _0_newPart m_CompoundBeacon.BeaconPart = m_CompoundBeacon.Companion_BeaconPart_.Create_Encrypted_(((parts).Select(0).(m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.EncryptedPart)).Dtor_prefix(), ((std).Get(((parts).Select(0).(m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.EncryptedPart)).Dtor_name()).(m_SearchableEncryptionInfo.Beacon)).Dtor_std()) + _ = _0_newPart + var _1_valueOrError0 m_Wrappers.Result = (converted).Add(_0_newPart, name) + _ = _1_valueOrError0 + if (_1_valueOrError0).IsFailure() { + return (_1_valueOrError0).PropagateFailure() + } else { + var _2_newParts PartSet = (_1_valueOrError0).Extract().(PartSet) + _ = _2_newParts + var _in0 _dafny.Sequence = (parts).Drop(1) + _ = _in0 + var _in1 _dafny.Map = std + _ = _in1 + var _in2 _dafny.Sequence = name + _ = _in2 + var _in3 PartSet = _2_newParts + _ = _in3 + parts = _in0 + std = _in1 + name = _in2 + converted = _in3 + goto TAIL_CALL_START + } + } else { + return m_Wrappers.Companion_Result_.Create_Failure_(m_DynamoDbEncryptionUtil.Companion_Default___.E(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(name, _dafny.SeqOfString(" refers to standard beacon ")), ((parts).Select(0).(m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.EncryptedPart)).Dtor_name()), _dafny.SeqOfString(" which is not configured.")))) + } +} +func (_static *CompanionStruct_Default___) MakeDefaultConstructor(parts _dafny.Sequence, converted _dafny.Sequence) m_Wrappers.Result { + goto TAIL_CALL_START +TAIL_CALL_START: + if (_dafny.IntOfUint32((parts).Cardinality())).Sign() == 0 { + return m_Wrappers.Companion_Result_.Create_Success_(_dafny.SeqOf(m_CompoundBeacon.Companion_Constructor_.Create_Constructor_(converted))) + } else { + var _in0 _dafny.Sequence = (parts).Drop(1) + _ = _in0 + var _in1 _dafny.Sequence = _dafny.Companion_Sequence_.Concatenate(converted, _dafny.SeqOf(m_CompoundBeacon.Companion_ConstructorPart_.Create_ConstructorPart_((parts).Select(0).(m_CompoundBeacon.BeaconPart), true))) + _ = _in1 + parts = _in0 + converted = _in1 + goto TAIL_CALL_START + } +} +func (_static *CompanionStruct_Default___) MyFilter(f func(interface{}) bool, xs _dafny.Sequence) _dafny.Sequence { + var _0___accumulator _dafny.Sequence = _dafny.SeqOf() + _ = _0___accumulator + goto TAIL_CALL_START +TAIL_CALL_START: + if (_dafny.IntOfUint32((xs).Cardinality())).Sign() == 0 { + return _dafny.Companion_Sequence_.Concatenate(_0___accumulator, _dafny.SeqOf()) + } else { + _0___accumulator = _dafny.Companion_Sequence_.Concatenate(_0___accumulator, (func() _dafny.Sequence { + if (f)((xs).Select(0).(interface{})) { + return _dafny.SeqOf((xs).Select(0).(interface{})) + } + return _dafny.SeqOf() + })()) + var _in0 func(interface{}) bool = f + _ = _in0 + var _in1 _dafny.Sequence = (xs).Drop(1) + _ = _in1 + f = _in0 + xs = _in1 + goto TAIL_CALL_START + } +} +func (_static *CompanionStruct_Default___) SeqCount(f func(interface{}) bool, xs _dafny.Sequence) _dafny.Int { + var _0___accumulator _dafny.Int = _dafny.Zero + _ = _0___accumulator + goto TAIL_CALL_START +TAIL_CALL_START: + if (_dafny.IntOfUint32((xs).Cardinality())).Sign() == 0 { + return (_dafny.Zero).Plus(_0___accumulator) + } else { + _0___accumulator = (_0___accumulator).Plus((func() _dafny.Int { + if (f)((xs).Select(0).(interface{})) { + return _dafny.One + } + return _dafny.Zero + })()) + var _in0 func(interface{}) bool = f + _ = _in0 + var _in1 _dafny.Sequence = (xs).Drop(1) + _ = _in1 + f = _in0 + xs = _in1 + goto TAIL_CALL_START + } +} +func (_static *CompanionStruct_Default___) MakeConstructor2(c _dafny.Sequence, parts _dafny.Sequence, origSize _dafny.Int, converted _dafny.Sequence) m_Wrappers.Result { + goto TAIL_CALL_START +TAIL_CALL_START: + if (_dafny.IntOfUint32((c).Cardinality())).Sign() == 0 { + return m_Wrappers.Companion_Result_.Create_Success_(converted) + } else { + var _0_thePart _dafny.Sequence = Companion_Default___.MyFilter(func(coer135 func(m_CompoundBeacon.BeaconPart) bool) func(interface{}) bool { + return func(arg167 interface{}) bool { + return coer135(arg167.(m_CompoundBeacon.BeaconPart)) + } + }((func(_1_c _dafny.Sequence) func(m_CompoundBeacon.BeaconPart) bool { + return func(_2_p m_CompoundBeacon.BeaconPart) bool { + return _dafny.Companion_Sequence_.Equal((_2_p).GetName(), ((_1_c).Select(0).(m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.ConstructorPart)).Dtor_name()) + } + })(c)), parts) + _ = _0_thePart + var _3_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need((_dafny.IntOfUint32((_0_thePart).Cardinality())).Sign() == 1, m_DynamoDbEncryptionUtil.Companion_Default___.E(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.SeqOfString("Constructor refers to part name "), ((c).Select(0).(m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.ConstructorPart)).Dtor_name()), _dafny.SeqOfString(" but there is no part by that name.")))) + _ = _3_valueOrError0 + if (_3_valueOrError0).IsFailure() { + return (_3_valueOrError0).PropagateFailure() + } else { + var _4_newPart m_CompoundBeacon.ConstructorPart = m_CompoundBeacon.Companion_ConstructorPart_.Create_ConstructorPart_((_0_thePart).Select(0).(m_CompoundBeacon.BeaconPart), ((c).Select(0).(m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.ConstructorPart)).Dtor_required()) + _ = _4_newPart + var _in0 _dafny.Sequence = (c).Drop(1) + _ = _in0 + var _in1 _dafny.Sequence = parts + _ = _in1 + var _in2 _dafny.Int = origSize + _ = _in2 + var _in3 _dafny.Sequence = _dafny.Companion_Sequence_.Concatenate(converted, _dafny.SeqOf(_4_newPart)) + _ = _in3 + c = _in0 + parts = _in1 + origSize = _in2 + converted = _in3 + goto TAIL_CALL_START + } + } +} +func (_static *CompanionStruct_Default___) MakeConstructor(c m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Constructor, parts _dafny.Sequence) m_Wrappers.Result { + var _0_valueOrError0 m_Wrappers.Result = Companion_Default___.MakeConstructor2((c).Dtor_parts(), parts, _dafny.IntOfUint32(((c).Dtor_parts()).Cardinality()), _dafny.SeqOf()) + _ = _0_valueOrError0 + if (_0_valueOrError0).IsFailure() { + return (_0_valueOrError0).PropagateFailure() + } else { + var _1_newParts _dafny.Sequence = (_0_valueOrError0).Extract().(_dafny.Sequence) + _ = _1_newParts + return m_Wrappers.Companion_Result_.Create_Success_(m_CompoundBeacon.Companion_Constructor_.Create_Constructor_(_1_newParts)) + } +} +func (_static *CompanionStruct_Default___) AddConstructors2(constructors _dafny.Sequence, name _dafny.Sequence, parts _dafny.Sequence, origSize _dafny.Int, converted _dafny.Sequence) m_Wrappers.Result { + goto TAIL_CALL_START +TAIL_CALL_START: + if (_dafny.IntOfUint32((constructors).Cardinality())).Sign() == 0 { + return m_Wrappers.Companion_Result_.Create_Success_(converted) + } else { + var _0_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need((_dafny.IntOfUint32((((constructors).Select(0).(m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Constructor)).Dtor_parts()).Cardinality())).Sign() == 1, m_DynamoDbEncryptionUtil.Companion_Default___.E(_dafny.SeqOfString("Every constructor must have at least one part."))) + _ = _0_valueOrError0 + if (_0_valueOrError0).IsFailure() { + return (_0_valueOrError0).PropagateFailure() + } else { + var _1_valueOrError1 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need((Companion_Default___.SeqCount(func(coer136 func(m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.ConstructorPart) bool) func(interface{}) bool { + return func(arg168 interface{}) bool { + return coer136(arg168.(m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.ConstructorPart)) + } + }(func(_2_p m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.ConstructorPart) bool { + return (_2_p).Dtor_required() + }), ((constructors).Select(0).(m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Constructor)).Dtor_parts())).Sign() == 1, m_DynamoDbEncryptionUtil.Companion_Default___.E(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.SeqOfString("A Constructor for beacon "), name), _dafny.SeqOfString(" lacks any required parts")))) + _ = _1_valueOrError1 + if (_1_valueOrError1).IsFailure() { + return (_1_valueOrError1).PropagateFailure() + } else { + var _3_valueOrError2 m_Wrappers.Result = Companion_Default___.MakeConstructor((constructors).Select(0).(m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Constructor), parts) + _ = _3_valueOrError2 + if (_3_valueOrError2).IsFailure() { + return (_3_valueOrError2).PropagateFailure() + } else { + var _4_c m_CompoundBeacon.Constructor = (_3_valueOrError2).Extract().(m_CompoundBeacon.Constructor) + _ = _4_c + if Companion_Default___.ExistsConstructorWithTheseRequired(converted, (_4_c).GetReqParts()) { + var _5_p _dafny.Sequence = Companion_Default___.GetPartsString(_4_c) + _ = _5_p + return m_Wrappers.Companion_Result_.Create_Failure_(m_DynamoDbEncryptionUtil.Companion_Default___.E(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.SeqOfString("Multiple constructors for "), name), _dafny.SeqOfString(" have the same set of required parts : ")), _5_p))) + } else { + var _in0 _dafny.Sequence = (constructors).Drop(1) + _ = _in0 + var _in1 _dafny.Sequence = name + _ = _in1 + var _in2 _dafny.Sequence = parts + _ = _in2 + var _in3 _dafny.Int = origSize + _ = _in3 + var _in4 _dafny.Sequence = _dafny.Companion_Sequence_.Concatenate(converted, _dafny.SeqOf(_4_c)) + _ = _in4 + constructors = _in0 + name = _in1 + parts = _in2 + origSize = _in3 + converted = _in4 + goto TAIL_CALL_START + } + } + } + } + } +} +func (_static *CompanionStruct_Default___) AddConstructors(constructors m_Wrappers.Option, name _dafny.Sequence, parts _dafny.Sequence) m_Wrappers.Result { + if (constructors).Is_None() { + return Companion_Default___.MakeDefaultConstructor(parts, _dafny.SeqOf()) + } else { + return Companion_Default___.AddConstructors2((constructors).Dtor_value().(_dafny.Sequence), name, parts, _dafny.IntOfUint32(((constructors).Dtor_value().(_dafny.Sequence)).Cardinality()), _dafny.SeqOf()) + } +} +func (_static *CompanionStruct_Default___) GetGlobalPartsFrom(cons _dafny.Sequence, globalParts PartSet, signed bool, parts PartSet) m_Wrappers.Result { + goto TAIL_CALL_START +TAIL_CALL_START: + if (_dafny.IntOfUint32((cons).Cardinality())).Sign() == 0 { + return m_Wrappers.Companion_Result_.Create_Success_(parts) + } else { + var _0_newPart m_Wrappers.Option = Companion_Default___.FindGlobalPart((globalParts).Dtor_parts(), (cons).Select(0).(m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.ConstructorPart), signed) + _ = _0_newPart + if (_0_newPart).Is_Some() { + var _1_valueOrError0 m_Wrappers.Result = (parts).Add((_0_newPart).Dtor_value().(m_CompoundBeacon.BeaconPart), _dafny.SeqOfString("Global Parts List")) + _ = _1_valueOrError0 + if (_1_valueOrError0).IsFailure() { + return (_1_valueOrError0).PropagateFailure() + } else { + var _2_newParts PartSet = (_1_valueOrError0).Extract().(PartSet) + _ = _2_newParts + var _in0 _dafny.Sequence = (cons).Drop(1) + _ = _in0 + var _in1 PartSet = globalParts + _ = _in1 + var _in2 bool = signed + _ = _in2 + var _in3 PartSet = _2_newParts + _ = _in3 + cons = _in0 + globalParts = _in1 + signed = _in2 + parts = _in3 + goto TAIL_CALL_START + } + } else { + var _in4 _dafny.Sequence = (cons).Drop(1) + _ = _in4 + var _in5 PartSet = globalParts + _ = _in5 + var _in6 bool = signed + _ = _in6 + var _in7 PartSet = parts + _ = _in7 + cons = _in4 + globalParts = _in5 + signed = _in6 + parts = _in7 + goto TAIL_CALL_START + } + } +} +func (_static *CompanionStruct_Default___) GetGlobalParts(cons _dafny.Sequence, globalParts PartSet, signed bool, parts PartSet) m_Wrappers.Result { + goto TAIL_CALL_START +TAIL_CALL_START: + if (_dafny.IntOfUint32((cons).Cardinality())).Sign() == 0 { + return m_Wrappers.Companion_Result_.Create_Success_(parts) + } else { + var _0_valueOrError0 m_Wrappers.Result = Companion_Default___.GetGlobalPartsFrom(((cons).Select(0).(m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Constructor)).Dtor_parts(), globalParts, signed, parts) + _ = _0_valueOrError0 + if (_0_valueOrError0).IsFailure() { + return (_0_valueOrError0).PropagateFailure() + } else { + var _1_newParts PartSet = (_0_valueOrError0).Extract().(PartSet) + _ = _1_newParts + var _in0 _dafny.Sequence = (cons).Drop(1) + _ = _in0 + var _in1 PartSet = globalParts + _ = _in1 + var _in2 bool = signed + _ = _in2 + var _in3 PartSet = _1_newParts + _ = _in3 + cons = _in0 + globalParts = _in1 + signed = _in2 + parts = _in3 + goto TAIL_CALL_START + } + } +} +func (_static *CompanionStruct_Default___) GetAllEncryptedParts(parts _dafny.Sequence, cons _dafny.Sequence, globalEncryptedParts PartSet, name _dafny.Sequence, std _dafny.Map) m_Wrappers.Result { + var _0_valueOrError0 m_Wrappers.Result = Companion_Default___.GetEncryptedParts(parts, std, _dafny.Companion_Sequence_.Concatenate(_dafny.SeqOfString("Compound beacon "), name), Companion_PartSet_.Create_PartSet_(_dafny.SeqOf(), _dafny.SetOf(), _dafny.SetOf())) + _ = _0_valueOrError0 + if (_0_valueOrError0).IsFailure() { + return (_0_valueOrError0).PropagateFailure() + } else { + var _1_p1 PartSet = (_0_valueOrError0).Extract().(PartSet) + _ = _1_p1 + var _2_valueOrError1 m_Wrappers.Result = Companion_Default___.GetGlobalParts(cons, globalEncryptedParts, false, Companion_PartSet_.Create_PartSet_(_dafny.SeqOf(), _dafny.SetOf(), _dafny.SetOf())) + _ = _2_valueOrError1 + if (_2_valueOrError1).IsFailure() { + return (_2_valueOrError1).PropagateFailure() + } else { + var _3_p2 PartSet = (_2_valueOrError1).Extract().(PartSet) + _ = _3_p2 + var _4_valueOrError2 m_Wrappers.Result = (_1_p1).Combine(_3_p2, name, _dafny.SeqOfString("Global Parts List")) + _ = _4_valueOrError2 + if (_4_valueOrError2).IsFailure() { + return (_4_valueOrError2).PropagateFailure() + } else { + var _5_both PartSet = (_4_valueOrError2).Extract().(PartSet) + _ = _5_both + return m_Wrappers.Companion_Result_.Create_Success_((_5_both).Dtor_parts()) + } + } + } +} +func (_static *CompanionStruct_Default___) IsSignedPart(part m_CompoundBeacon.BeaconPart, signed bool) bool { + if signed { + return (part).Is_Signed() + } else { + return (part).Is_Encrypted() + } +} +func (_static *CompanionStruct_Default___) FindGlobalPart(globalParts _dafny.Sequence, cons m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.ConstructorPart, signed bool) m_Wrappers.Option { + goto TAIL_CALL_START +TAIL_CALL_START: + if (_dafny.IntOfUint32((globalParts).Cardinality())).Sign() == 0 { + return m_Wrappers.Companion_Option_.Create_None_() + } else if (Companion_Default___.IsSignedPart((globalParts).Select(0).(m_CompoundBeacon.BeaconPart), signed)) && (_dafny.Companion_Sequence_.Equal(((globalParts).Select(0).(m_CompoundBeacon.BeaconPart)).GetName(), (cons).Dtor_name())) { + return m_Wrappers.Companion_Option_.Create_Some_((globalParts).Select(0).(m_CompoundBeacon.BeaconPart)) + } else { + var _in0 _dafny.Sequence = (globalParts).Drop(1) + _ = _in0 + var _in1 m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.ConstructorPart = cons + _ = _in1 + var _in2 bool = signed + _ = _in2 + globalParts = _in0 + cons = _in1 + signed = _in2 + goto TAIL_CALL_START + } +} +func (_static *CompanionStruct_Default___) GetAllSignedParts(parts _dafny.Sequence, cons _dafny.Sequence, globalSignedParts PartSet, name _dafny.Sequence, outer m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.DynamoDbTableEncryptionConfig) m_Wrappers.Result { + var _0_valueOrError0 m_Wrappers.Result = Companion_Default___.GetSignedParts(parts, outer, name, Companion_PartSet_.Create_PartSet_(_dafny.SeqOf(), _dafny.SetOf(), _dafny.SetOf())) + _ = _0_valueOrError0 + if (_0_valueOrError0).IsFailure() { + return (_0_valueOrError0).PropagateFailure() + } else { + var _1_p1 PartSet = (_0_valueOrError0).Extract().(PartSet) + _ = _1_p1 + var _2_valueOrError1 m_Wrappers.Result = Companion_Default___.GetGlobalParts(cons, globalSignedParts, true, Companion_PartSet_.Create_PartSet_(_dafny.SeqOf(), _dafny.SetOf(), _dafny.SetOf())) + _ = _2_valueOrError1 + if (_2_valueOrError1).IsFailure() { + return (_2_valueOrError1).PropagateFailure() + } else { + var _3_p2 PartSet = (_2_valueOrError1).Extract().(PartSet) + _ = _3_p2 + var _4_valueOrError2 m_Wrappers.Result = (_1_p1).Combine(_3_p2, name, _dafny.SeqOfString("Global Parts List")) + _ = _4_valueOrError2 + if (_4_valueOrError2).IsFailure() { + return (_4_valueOrError2).PropagateFailure() + } else { + var _5_both PartSet = (_4_valueOrError2).Extract().(PartSet) + _ = _5_both + return m_Wrappers.Companion_Result_.Create_Success_((_5_both).Dtor_parts()) + } + } + } +} +func (_static *CompanionStruct_Default___) CheckSignedParts(parts _dafny.Sequence, globals PartSet, name _dafny.Sequence) m_Wrappers.Result { + goto TAIL_CALL_START +TAIL_CALL_START: + if (_dafny.IntOfUint32((parts).Cardinality())).Sign() == 0 { + return m_Wrappers.Companion_Result_.Create_Success_(true) + } else if ((globals).Dtor_names()).Contains(((parts).Select(0).(m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.SignedPart)).Dtor_name()) { + return m_Wrappers.Companion_Result_.Create_Failure_(m_DynamoDbEncryptionUtil.Companion_Default___.E(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.SeqOfString("Compound beacon "), name), _dafny.SeqOfString(" defines signed part ")), ((parts).Select(0).(m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.SignedPart)).Dtor_name()), _dafny.SeqOfString(" which is already defined as a global part.")))) + } else if ((globals).Dtor_prefixes()).Contains(((parts).Select(0).(m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.SignedPart)).Dtor_prefix()) { + return m_Wrappers.Companion_Result_.Create_Failure_(m_DynamoDbEncryptionUtil.Companion_Default___.E(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.SeqOfString("Compound beacon "), name), _dafny.SeqOfString(" defines signed part ")), ((parts).Select(0).(m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.SignedPart)).Dtor_name()), _dafny.SeqOfString(" with prefix ")), ((parts).Select(0).(m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.SignedPart)).Dtor_prefix()), _dafny.SeqOfString(" which is already defined as the prefix of a global part.")))) + } else { + var _in0 _dafny.Sequence = (parts).Drop(1) + _ = _in0 + var _in1 PartSet = globals + _ = _in1 + var _in2 _dafny.Sequence = name + _ = _in2 + parts = _in0 + globals = _in1 + name = _in2 + goto TAIL_CALL_START + } +} +func (_static *CompanionStruct_Default___) CheckEncryptedParts(parts _dafny.Sequence, globals PartSet, name _dafny.Sequence) m_Wrappers.Result { + goto TAIL_CALL_START +TAIL_CALL_START: + if (_dafny.IntOfUint32((parts).Cardinality())).Sign() == 0 { + return m_Wrappers.Companion_Result_.Create_Success_(true) + } else if ((globals).Dtor_names()).Contains(((parts).Select(0).(m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.EncryptedPart)).Dtor_name()) { + return m_Wrappers.Companion_Result_.Create_Failure_(m_DynamoDbEncryptionUtil.Companion_Default___.E(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.SeqOfString("Compound beacon "), name), _dafny.SeqOfString(" defines encrypted part ")), ((parts).Select(0).(m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.EncryptedPart)).Dtor_name()), _dafny.SeqOfString(" which is already defined as a global part.")))) + } else if ((globals).Dtor_prefixes()).Contains(((parts).Select(0).(m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.EncryptedPart)).Dtor_prefix()) { + return m_Wrappers.Companion_Result_.Create_Failure_(m_DynamoDbEncryptionUtil.Companion_Default___.E(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.SeqOfString("Compound beacon "), name), _dafny.SeqOfString(" defines encrypted part ")), ((parts).Select(0).(m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.EncryptedPart)).Dtor_name()), _dafny.SeqOfString(" with prefix ")), ((parts).Select(0).(m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.EncryptedPart)).Dtor_prefix()), _dafny.SeqOfString(" which is already defined as the prefix of a global part.")))) + } else { + var _in0 _dafny.Sequence = (parts).Drop(1) + _ = _in0 + var _in1 PartSet = globals + _ = _in1 + var _in2 _dafny.Sequence = name + _ = _in2 + parts = _in0 + globals = _in1 + name = _in2 + goto TAIL_CALL_START + } +} +func (_static *CompanionStruct_Default___) CreateCompoundBeacon(beacon m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.CompoundBeacon, outer m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.DynamoDbTableEncryptionConfig, client *m_AtomicPrimitives.AtomicPrimitivesClient, virtualFields _dafny.Map, converted _dafny.Map, globalSignedParts PartSet, globalEncryptedParts PartSet) m_Wrappers.Result { + var _0_signedParts _dafny.Sequence = (func() _dafny.Sequence { + if ((beacon).Dtor_signed()).Is_Some() { + return ((beacon).Dtor_signed()).Dtor_value().(_dafny.Sequence) + } + return _dafny.SeqOf() + })() + _ = _0_signedParts + var _1_encryptedParts _dafny.Sequence = (func() _dafny.Sequence { + if ((beacon).Dtor_encrypted()).Is_Some() { + return ((beacon).Dtor_encrypted()).Dtor_value().(_dafny.Sequence) + } + return _dafny.SeqOf() + })() + _ = _1_encryptedParts + var _2_constructors _dafny.Sequence = (func() _dafny.Sequence { + if ((beacon).Dtor_constructors()).Is_Some() { + return ((beacon).Dtor_constructors()).Dtor_value().(_dafny.Sequence) + } + return _dafny.SeqOf() + })() + _ = _2_constructors + var _3_valueOrError0 m_Wrappers.Result = (globalSignedParts).Combine(globalEncryptedParts, _dafny.SeqOfString("Global Signed Parts List"), _dafny.SeqOfString("Global Encrypted Parts List")) + _ = _3_valueOrError0 + if (_3_valueOrError0).IsFailure() { + return (_3_valueOrError0).PropagateFailure() + } else { + var _4_globalParts PartSet = (_3_valueOrError0).Extract().(PartSet) + _ = _4_globalParts + var _5_valueOrError1 m_Wrappers.Result = Companion_Default___.CheckSignedParts(_0_signedParts, _4_globalParts, (beacon).Dtor_name()) + _ = _5_valueOrError1 + if (_5_valueOrError1).IsFailure() { + return (_5_valueOrError1).PropagateFailure() + } else { + var _6___v3 bool = (_5_valueOrError1).Extract().(bool) + _ = _6___v3 + var _7_valueOrError2 m_Wrappers.Result = Companion_Default___.CheckEncryptedParts(_1_encryptedParts, _4_globalParts, (beacon).Dtor_name()) + _ = _7_valueOrError2 + if (_7_valueOrError2).IsFailure() { + return (_7_valueOrError2).PropagateFailure() + } else { + var _8___v4 bool = (_7_valueOrError2).Extract().(bool) + _ = _8___v4 + var _9_valueOrError3 m_Wrappers.Result = Companion_Default___.GetAllSignedParts(_0_signedParts, _2_constructors, globalSignedParts, (beacon).Dtor_name(), outer) + _ = _9_valueOrError3 + if (_9_valueOrError3).IsFailure() { + return (_9_valueOrError3).PropagateFailure() + } else { + var _10_signed _dafny.Sequence = (_9_valueOrError3).Extract().(_dafny.Sequence) + _ = _10_signed + var _11_valueOrError4 m_Wrappers.Result = Companion_Default___.GetAllEncryptedParts(_1_encryptedParts, _2_constructors, globalEncryptedParts, (beacon).Dtor_name(), converted) + _ = _11_valueOrError4 + if (_11_valueOrError4).IsFailure() { + return (_11_valueOrError4).PropagateFailure() + } else { + var _12_encrypted _dafny.Sequence = (_11_valueOrError4).Extract().(_dafny.Sequence) + _ = _12_encrypted + var _13_valueOrError5 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need(!(converted).Contains((beacon).Dtor_name()), m_DynamoDbEncryptionUtil.Companion_Default___.E(_dafny.Companion_Sequence_.Concatenate(_dafny.SeqOfString("Duplicate CompoundBeacon name : "), (beacon).Dtor_name()))) + _ = _13_valueOrError5 + if (_13_valueOrError5).IsFailure() { + return (_13_valueOrError5).PropagateFailure() + } else { + var _14_valueOrError6 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need((((beacon).Dtor_constructors()).Is_None()) || ((_dafny.IntOfUint32((((beacon).Dtor_constructors()).Dtor_value().(_dafny.Sequence)).Cardinality())).Sign() == 1), m_DynamoDbEncryptionUtil.Companion_Default___.E(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.SeqOfString("For beacon "), (beacon).Dtor_name()), _dafny.SeqOfString(" an empty constructor list was supplied.")))) + _ = _14_valueOrError6 + if (_14_valueOrError6).IsFailure() { + return (_14_valueOrError6).PropagateFailure() + } else { + var _15_valueOrError7 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need(((((beacon).Dtor_constructors()).Is_Some()) || ((_dafny.IntOfUint32((_0_signedParts).Cardinality())).Sign() != 0)) || ((_dafny.IntOfUint32((_1_encryptedParts).Cardinality())).Sign() != 0), m_DynamoDbEncryptionUtil.Companion_Default___.E(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.SeqOfString("Compound beacon "), (beacon).Dtor_name()), _dafny.SeqOfString(" defines no constructors, and also no local parts. Cannot make a default constructor from global parts.")))) + _ = _15_valueOrError7 + if (_15_valueOrError7).IsFailure() { + return (_15_valueOrError7).PropagateFailure() + } else { + var _16_numNon _dafny.Int = _dafny.IntOfUint32((_10_signed).Cardinality()) + _ = _16_numNon + var _17_allParts _dafny.Sequence = _dafny.Companion_Sequence_.Concatenate(_10_signed, _12_encrypted) + _ = _17_allParts + var _18_isSignedBeacon bool = (_dafny.IntOfUint32((_12_encrypted).Cardinality())).Sign() == 0 + _ = _18_isSignedBeacon + var _19_valueOrError8 m_Wrappers.Result = Companion_Default___.BeaconNameAllowed(outer, virtualFields, (beacon).Dtor_name(), _dafny.SeqOfString("CompoundBeacon"), _18_isSignedBeacon) + _ = _19_valueOrError8 + if (_19_valueOrError8).IsFailure() { + return (_19_valueOrError8).PropagateFailure() + } else { + var _20___v5 bool = (_19_valueOrError8).Extract().(bool) + _ = _20___v5 + var _21_valueOrError9 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need((_dafny.IntOfUint32((_17_allParts).Cardinality())).Sign() == 1, m_DynamoDbEncryptionUtil.Companion_Default___.E(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.SeqOfString("For beacon "), (beacon).Dtor_name()), _dafny.SeqOfString(" no parts were supplied.")))) + _ = _21_valueOrError9 + if (_21_valueOrError9).IsFailure() { + return (_21_valueOrError9).PropagateFailure() + } else { + var _22_valueOrError10 m_Wrappers.Result = Companion_Default___.AddConstructors((beacon).Dtor_constructors(), (beacon).Dtor_name(), _17_allParts) + _ = _22_valueOrError10 + if (_22_valueOrError10).IsFailure() { + return (_22_valueOrError10).PropagateFailure() + } else { + var _23_constructors _dafny.Sequence = (_22_valueOrError10).Extract().(_dafny.Sequence) + _ = _23_constructors + var _24_beaconName _dafny.Sequence = (func() _dafny.Sequence { + if _18_isSignedBeacon { + return (beacon).Dtor_name() + } + return _dafny.Companion_Sequence_.Concatenate(m_DynamoDbEncryptionUtil.Companion_Default___.BeaconPrefix(), (beacon).Dtor_name()) + })() + _ = _24_beaconName + var _25_valueOrError11 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need(m_ComAmazonawsDynamodbTypes.Companion_Default___.IsValid__AttributeName(_24_beaconName), m_DynamoDbEncryptionUtil.Companion_Default___.E(_dafny.Companion_Sequence_.Concatenate(_24_beaconName, _dafny.SeqOfString(" is not a valid attribute name.")))) + _ = _25_valueOrError11 + if (_25_valueOrError11).IsFailure() { + return (_25_valueOrError11).PropagateFailure() + } else { + return m_CompoundBeacon.Companion_Default___.MakeCompoundBeacon(m_BaseBeacon.Companion_BeaconBase_.Create_BeaconBase_(client, (beacon).Dtor_name(), _24_beaconName), ((beacon).Dtor_split()).Select(0).(_dafny.Char), _17_allParts, _16_numNon, _23_constructors) + } + } + } + } + } + } + } + } + } + } + } + } +} +func (_static *CompanionStruct_Default___) AddCompoundBeacons(beacons _dafny.Sequence, outer m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.DynamoDbTableEncryptionConfig, client *m_AtomicPrimitives.AtomicPrimitivesClient, virtualFields _dafny.Map, converted _dafny.Map, globalSignedParts PartSet, globalEncryptedParts PartSet) m_Wrappers.Result { + var output m_Wrappers.Result = m_Wrappers.Result{} + _ = output + if (_dafny.IntOfUint32((beacons).Cardinality())).Sign() == 0 { + output = m_Wrappers.Companion_Result_.Create_Success_(converted) + return output + } + var _0_valueOrError0 m_Wrappers.Result = m_Wrappers.Result{} + _ = _0_valueOrError0 + _0_valueOrError0 = Companion_Default___.CreateCompoundBeacon((beacons).Select(0).(m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.CompoundBeacon), outer, client, virtualFields, converted, globalSignedParts, globalEncryptedParts) + if (_0_valueOrError0).IsFailure() { + output = (_0_valueOrError0).PropagateFailure() + return output + } + var _1_newBeacon m_CompoundBeacon.CompoundBeacon + _ = _1_newBeacon + _1_newBeacon = (_0_valueOrError0).Extract().(m_CompoundBeacon.CompoundBeacon) + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = Companion_Default___.AddCompoundBeacons((beacons).Drop(1), outer, client, virtualFields, (converted).Update(((beacons).Select(0).(m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.CompoundBeacon)).Dtor_name(), m_SearchableEncryptionInfo.Companion_Beacon_.Create_Compound_(_1_newBeacon)), globalSignedParts, globalEncryptedParts) + output = _out0 + return output +} +func (_static *CompanionStruct_Default___) ExistsInCompound(names _dafny.Sequence, name _dafny.Sequence, data _dafny.Map) bool { + goto TAIL_CALL_START +TAIL_CALL_START: + if (_dafny.IntOfUint32((names).Cardinality())).Sign() == 0 { + return false + } else { + var _0_b m_SearchableEncryptionInfo.Beacon = (data).Get((names).Select(0).(_dafny.Sequence)).(m_SearchableEncryptionInfo.Beacon) + _ = _0_b + if ((_0_b).Is_Compound()) && (((_0_b).Dtor_cmp()).HasBeacon(name)) { + return true + } else { + var _in0 _dafny.Sequence = (names).Drop(1) + _ = _in0 + var _in1 _dafny.Sequence = name + _ = _in1 + var _in2 _dafny.Map = data + _ = _in2 + names = _in0 + name = _in1 + data = _in2 + goto TAIL_CALL_START + } + } +} +func (_static *CompanionStruct_Default___) CheckAllBeacons(names _dafny.Sequence, allNames _dafny.Sequence, data _dafny.Map) m_Wrappers.Result { + goto TAIL_CALL_START +TAIL_CALL_START: + if (_dafny.IntOfUint32((names).Cardinality())).Sign() == 0 { + return m_Wrappers.Companion_Result_.Create_Success_(true) + } else { + var _0_b m_SearchableEncryptionInfo.Beacon = (data).Get((names).Select(0).(_dafny.Sequence)).(m_SearchableEncryptionInfo.Beacon) + _ = _0_b + if (m_SearchableEncryptionInfo.Companion_Default___.IsPartOnly(_0_b)) && (!(Companion_Default___.ExistsInCompound(allNames, (names).Select(0).(_dafny.Sequence), data))) { + return m_Wrappers.Companion_Result_.Create_Failure_(m_DynamoDbEncryptionUtil.Companion_Default___.E(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.SeqOfString("PartOnly beacon "), (names).Select(0).(_dafny.Sequence)), _dafny.SeqOfString(" MUST be used in a compound beacon.")))) + } else if ((_0_b).Is_Standard()) && ((((_0_b).Dtor_std()).Dtor_share()).Is_Some()) { + var _1_valueOrError0 m_Wrappers.Result = Companion_Default___.IsValidShare(data, (names).Select(0).(_dafny.Sequence), ((_0_b).Dtor_std()).Dtor_length(), (((_0_b).Dtor_std()).Dtor_share()).Dtor_value().(_dafny.Sequence)) + _ = _1_valueOrError0 + if (_1_valueOrError0).IsFailure() { + return (_1_valueOrError0).PropagateFailure() + } else { + var _2___v6 bool = (_1_valueOrError0).Extract().(bool) + _ = _2___v6 + var _in0 _dafny.Sequence = (names).Drop(1) + _ = _in0 + var _in1 _dafny.Sequence = allNames + _ = _in1 + var _in2 _dafny.Map = data + _ = _in2 + names = _in0 + allNames = _in1 + data = _in2 + goto TAIL_CALL_START + } + } else { + var _in3 _dafny.Sequence = (names).Drop(1) + _ = _in3 + var _in4 _dafny.Sequence = allNames + _ = _in4 + var _in5 _dafny.Map = data + _ = _in5 + names = _in3 + allNames = _in4 + data = _in5 + goto TAIL_CALL_START + } + } +} +func (_static *CompanionStruct_Default___) CheckBeacons(data _dafny.Map) m_Wrappers.Result { + var _0_beaconNames _dafny.Sequence = m_SortedSets.SetToOrderedSequence2((data).Keys(), func(coer137 func(_dafny.Char, _dafny.Char) bool) func(interface{}, interface{}) bool { + return func(arg169 interface{}, arg170 interface{}) bool { + return coer137(arg169.(_dafny.Char), arg170.(_dafny.Char)) + } + }(m_DynamoDbEncryptionUtil.Companion_Default___.CharLess)) + _ = _0_beaconNames + return Companion_Default___.CheckAllBeacons(_0_beaconNames, _0_beaconNames, data) +} + +// End of class Default__ + +// Definition of datatype PartSet +type PartSet struct { + Data_PartSet_ +} + +func (_this PartSet) Get_() Data_PartSet_ { + return _this.Data_PartSet_ +} + +type Data_PartSet_ interface { + isPartSet() +} + +type CompanionStruct_PartSet_ struct { +} + +var Companion_PartSet_ = CompanionStruct_PartSet_{} + +type PartSet_PartSet struct { + Parts _dafny.Sequence + Names _dafny.Set + Prefixes _dafny.Set +} + +func (PartSet_PartSet) isPartSet() {} + +func (CompanionStruct_PartSet_) Create_PartSet_(Parts _dafny.Sequence, Names _dafny.Set, Prefixes _dafny.Set) PartSet { + return PartSet{PartSet_PartSet{Parts, Names, Prefixes}} +} + +func (_this PartSet) Is_PartSet() bool { + _, ok := _this.Get_().(PartSet_PartSet) + return ok +} + +func (CompanionStruct_PartSet_) Default() PartSet { + return Companion_PartSet_.Create_PartSet_(_dafny.EmptySeq, _dafny.EmptySet, _dafny.EmptySet) +} + +func (_this PartSet) Dtor_parts() _dafny.Sequence { + return _this.Get_().(PartSet_PartSet).Parts +} + +func (_this PartSet) Dtor_names() _dafny.Set { + return _this.Get_().(PartSet_PartSet).Names +} + +func (_this PartSet) Dtor_prefixes() _dafny.Set { + return _this.Get_().(PartSet_PartSet).Prefixes +} + +func (_this PartSet) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case PartSet_PartSet: + { + return "SearchConfigToInfo.PartSet.PartSet" + "(" + _dafny.String(data.Parts) + ", " + _dafny.String(data.Names) + ", " + _dafny.String(data.Prefixes) + ")" + } + default: + { + return "" + } + } +} + +func (_this PartSet) Equals(other PartSet) bool { + switch data1 := _this.Get_().(type) { + case PartSet_PartSet: + { + data2, ok := other.Get_().(PartSet_PartSet) + return ok && data1.Parts.Equals(data2.Parts) && data1.Names.Equals(data2.Names) && data1.Prefixes.Equals(data2.Prefixes) + } + default: + { + return false // unexpected + } + } +} + +func (_this PartSet) EqualsGeneric(other interface{}) bool { + typed, ok := other.(PartSet) + return ok && _this.Equals(typed) +} + +func Type_PartSet_() _dafny.TypeDescriptor { + return type_PartSet_{} +} + +type type_PartSet_ struct { +} + +func (_this type_PartSet_) Default() interface{} { + return Companion_PartSet_.Default() +} + +func (_this type_PartSet_) String() string { + return "SearchConfigToInfo.PartSet" +} +func (_this PartSet) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = PartSet{} + +func (_this PartSet) Add(part m_CompoundBeacon.BeaconPart, name _dafny.Sequence) m_Wrappers.Result { + { + if ((_this).Dtor_names()).Contains((part).GetName()) { + return m_Wrappers.Companion_Result_.Create_Failure_(m_DynamoDbEncryptionUtil.Companion_Default___.E(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.SeqOfString("Duplicate part name "), (part).GetName()), _dafny.SeqOfString(" in ")), name), _dafny.SeqOfString(".")))) + } else if ((_this).Dtor_prefixes()).Contains((part).GetPrefix()) { + return m_Wrappers.Companion_Result_.Create_Failure_(m_DynamoDbEncryptionUtil.Companion_Default___.E(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.SeqOfString("Duplicate prefix "), (part).GetPrefix()), _dafny.SeqOfString(" in ")), name), _dafny.SeqOfString(".")))) + } else { + return m_Wrappers.Companion_Result_.Create_Success_(Companion_PartSet_.Create_PartSet_(_dafny.Companion_Sequence_.Concatenate((_this).Dtor_parts(), _dafny.SeqOf(part)), ((_this).Dtor_names()).Union(_dafny.SetOf((part).GetName())), ((_this).Dtor_prefixes()).Union(_dafny.SetOf((part).GetPrefix())))) + } + } +} +func (_this PartSet) GetSetAsString(strings _dafny.Set) _dafny.Sequence { + { + var _0_names _dafny.Sequence = m_SortedSets.SetToOrderedSequence2(strings, func(coer138 func(_dafny.Char, _dafny.Char) bool) func(interface{}, interface{}) bool { + return func(arg171 interface{}, arg172 interface{}) bool { + return coer138(arg171.(_dafny.Char), arg172.(_dafny.Char)) + } + }(m_DynamoDbEncryptionUtil.Companion_Default___.CharLess)) + _ = _0_names + return m_StandardLibrary.Companion_Default___.Join(_0_names, _dafny.SeqOfString(", ")) + } +} +func (_this PartSet) Combine(other PartSet, name _dafny.Sequence, otherName _dafny.Sequence) m_Wrappers.Result { + { + if ((((_this).Dtor_names()).Intersection((other).Dtor_names())).Cardinality()).Sign() != 0 { + var _0_tags _dafny.Sequence = (_this).GetSetAsString(((_this).Dtor_names()).Intersection((other).Dtor_names())) + _ = _0_tags + return m_Wrappers.Companion_Result_.Create_Failure_(m_DynamoDbEncryptionUtil.Companion_Default___.E(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.SeqOfString("Duplicate part name(s) "), _0_tags), _dafny.SeqOfString(" between ")), name), _dafny.SeqOfString(" and ")), otherName), _dafny.SeqOfString(".")))) + } else if ((((_this).Dtor_prefixes()).Intersection((other).Dtor_prefixes())).Cardinality()).Sign() != 0 { + var _1_tags _dafny.Sequence = (_this).GetSetAsString(((_this).Dtor_prefixes()).Intersection((other).Dtor_prefixes())) + _ = _1_tags + return m_Wrappers.Companion_Result_.Create_Failure_(m_DynamoDbEncryptionUtil.Companion_Default___.E(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.SeqOfString("Duplicate prefix(es) "), _1_tags), _dafny.SeqOfString(" between ")), name), _dafny.SeqOfString(" and ")), otherName), _dafny.SeqOfString(".")))) + } else { + return m_Wrappers.Companion_Result_.Create_Success_(Companion_PartSet_.Create_PartSet_(_dafny.Companion_Sequence_.Concatenate((_this).Dtor_parts(), (other).Dtor_parts()), ((_this).Dtor_names()).Union((other).Dtor_names()), ((_this).Dtor_prefixes()).Union((other).Dtor_prefixes()))) + } + } +} + +// End of datatype PartSet diff --git a/customer-preview/ddb-esdk/SearchableEncryptionInfo/SearchableEncryptionInfo.go b/customer-preview/ddb-esdk/SearchableEncryptionInfo/SearchableEncryptionInfo.go new file mode 100644 index 000000000..a2bad466e --- /dev/null +++ b/customer-preview/ddb-esdk/SearchableEncryptionInfo/SearchableEncryptionInfo.go @@ -0,0 +1,2138 @@ +// Package SearchableEncryptionInfo +// Dafny module SearchableEncryptionInfo compiled into Go + +package SearchableEncryptionInfo + +import ( + os "os" + + m_ComAmazonawsDynamodbTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/ComAmazonawsDynamodbTypes" + m_Com_Amazonaws_Dynamodb "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/Com_Amazonaws_Dynamodb" + m_ComAmazonawsKmsTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/ComAmazonawsKmsTypes" + m_Com_Amazonaws_Kms "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/Com_Amazonaws_Kms" + m_AlgorithmSuites "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AlgorithmSuites" + m_AwsArnParsing "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsArnParsing" + m_AwsCryptographyKeyStoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreOperations" + m_AwsCryptographyKeyStoreTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreTypes" + m_AwsCryptographyMaterialProvidersOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersOperations" + m_AwsCryptographyMaterialProvidersTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersTypes" + m_AwsKmsDiscoveryKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsDiscoveryKeyring" + m_AwsKmsEcdhKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsEcdhKeyring" + m_AwsKmsHierarchicalKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsHierarchicalKeyring" + m_AwsKmsKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsKeyring" + m_AwsKmsMrkAreUnique "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkAreUnique" + m_AwsKmsMrkDiscoveryKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkDiscoveryKeyring" + m_AwsKmsMrkKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkKeyring" + m_AwsKmsMrkMatchForDecrypt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkMatchForDecrypt" + m_AwsKmsRsaKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsRsaKeyring" + m_AwsKmsUtils "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsUtils" + m_CMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CMM" + m_CacheConstants "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CacheConstants" + m_CanonicalEncryptionContext "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CanonicalEncryptionContext" + m_Commitment "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Commitment" + m_Constants "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Constants" + m_CreateKeyStoreTable "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeyStoreTable" + m_CreateKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeys" + m_DDBKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DDBKeystoreOperations" + m_DefaultCMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DefaultCMM" + m_DefaultClientSupplier "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DefaultClientSupplier" + m_Defaults "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Defaults" + m_DiscoveryMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DiscoveryMultiKeyring" + m_EcdhEdkWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/EcdhEdkWrapping" + m_EdkWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/EdkWrapping" + m_ErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/ErrorMessages" + m_GetKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/GetKeys" + m_IntermediateKeyWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/IntermediateKeyWrapping" + m_KMSKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KMSKeystoreOperations" + m_KeyStore "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStore" + m_KeyStoreErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStoreErrorMessages" + m_Keyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Keyring" + m_KmsArn "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KmsArn" + m_LocalCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/LocalCMC" + m_MaterialProviders "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MaterialProviders" + m_MaterialWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MaterialWrapping" + m_Materials "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Materials" + m_MrkAwareDiscoveryMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MrkAwareDiscoveryMultiKeyring" + m_MrkAwareStrictMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MrkAwareStrictMultiKeyring" + m_MultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MultiKeyring" + m_RawAESKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawAESKeyring" + m_RawECDHKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawECDHKeyring" + m_RawRSAKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawRSAKeyring" + m_RequiredEncryptionContextCMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RequiredEncryptionContextCMM" + m_StormTracker "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StormTracker" + m_StormTrackingCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StormTrackingCMC" + m_StrictMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StrictMultiKeyring" + m_Structure "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Structure" + m_SynchronizedLocalCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/SynchronizedLocalCMC" + m_Utils "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Utils" + m_AtomicPrimitives "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AtomicPrimitives" + m_AwsCryptographyPrimitivesOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesOperations" + m_AwsCryptographyPrimitivesTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesTypes" + m_Digest "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Digest" + m_HKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/HKDF" + m_KdfCtr "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/KdfCtr" + m_Random "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Random" + m_WrappedHKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHKDF" + m_WrappedHMAC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHMAC" + m_Actions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Actions" + m_Base64 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64" + m_Base64Lemmas "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64Lemmas" + m_BoundedInts "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/BoundedInts" + m_DivInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternals" + m_DivInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternalsNonlinear" + m_DivMod "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivMod" + m_FileIO "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FileIO" + m_FloatCompare "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FloatCompare" + m_Functions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Functions" + m_GeneralInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GeneralInternals" + m_GetOpt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GetOpt" + m_HexStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/HexStrings" + m_Logarithm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Logarithm" + m__Math "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Math_" + m_ModInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternals" + m_ModInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternalsNonlinear" + m_Mul "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Mul" + m_MulInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternals" + m_MulInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternalsNonlinear" + m_Power "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Power" + m_Relations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Relations" + m_Seq "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq" + m_Seq_MergeSort "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq_MergeSort" + m_SortedSets "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/SortedSets" + m_Sorting "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Sorting" + m_StandardLibrary "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary" + m_StandardLibraryInterop "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibraryInterop" + m_StandardLibrary_Sequence "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_Sequence" + m_StandardLibrary_String "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_String" + m_StandardLibrary_UInt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_UInt" + m_Streams "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Streams" + m__Time "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Time_" + m_UTF8 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UTF8" + m_UUID "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UUID" + m_UnicodeStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UnicodeStrings" + m__Unicode "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Unicode_" + m_Utf16EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf16EncodingForm" + m_Utf8EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf8EncodingForm" + m_Wrappers "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers" + m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorOperations "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorOperations" + m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes" + m_AwsCryptographyDbEncryptionSdkDynamoDbOperations "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbOperations" + m_AwsCryptographyDbEncryptionSdkDynamoDbTypes "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbTypes" + m_AwsCryptographyDbEncryptionSdkStructuredEncryptionOperations "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkStructuredEncryptionOperations" + m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes" + m_BaseBeacon "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/BaseBeacon" + m_Canonize "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/Canonize" + m_CompoundBeacon "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/CompoundBeacon" + m_DdbVirtualFields "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DdbVirtualFields" + m_DynamoDbEncryption "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbEncryption" + m_DynamoDbEncryptionBranchKeyIdSupplier "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbEncryptionBranchKeyIdSupplier" + m_DynamoDbEncryptionUtil "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbEncryptionUtil" + m_DynamoDbItemEncryptor "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbItemEncryptor" + m_DynamoDbItemEncryptorUtil "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbItemEncryptorUtil" + m_DynamoDbNormalizeNumber "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbNormalizeNumber" + m_DynamoDbUpdateExpr "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbUpdateExpr" + m_DynamoToStruct "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoToStruct" + m_InternalLegacyOverride "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/InternalLegacyOverride" + m__Maps "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/Maps_" + m_Sets "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/Sets" + m_SortCanon "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/SortCanon" + m_StructuredEncryption "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryption" + m_StructuredEncryptionCrypt "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionCrypt" + m_StructuredEncryptionFooter "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionFooter" + m_StructuredEncryptionHeader "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionHeader" + m_StructuredEncryptionPaths "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionPaths" + m_StructuredEncryptionUtil "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionUtil" + m_TermLoc "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/TermLoc" + m__System "github.com/dafny-lang/DafnyRuntimeGo/v4/System_" + _dafny "github.com/dafny-lang/DafnyRuntimeGo/v4/dafny" +) + +var _ = os.Args +var _ _dafny.Dummy__ +var _ m__System.Dummy__ +var _ m_Wrappers.Dummy__ +var _ m_BoundedInts.Dummy__ +var _ m_StandardLibrary_UInt.Dummy__ +var _ m_StandardLibrary_Sequence.Dummy__ +var _ m_StandardLibrary_String.Dummy__ +var _ m_StandardLibrary.Dummy__ +var _ m_AwsCryptographyPrimitivesTypes.Dummy__ +var _ m_Random.Dummy__ +var _ m_Digest.Dummy__ +var _ m_WrappedHMAC.Dummy__ +var _ m_HKDF.Dummy__ +var _ m_WrappedHKDF.Dummy__ +var _ m_KdfCtr.Dummy__ +var _ m_AwsCryptographyPrimitivesOperations.Dummy__ +var _ m_AtomicPrimitives.Dummy__ +var _ m_ComAmazonawsDynamodbTypes.Dummy__ +var _ m_ComAmazonawsKmsTypes.Dummy__ +var _ m_AwsCryptographyKeyStoreTypes.Dummy__ +var _ m_AwsCryptographyMaterialProvidersTypes.Dummy__ +var _ m_Base64.Dummy__ +var _ m_AlgorithmSuites.Dummy__ +var _ m_Materials.Dummy__ +var _ m_Keyring.Dummy__ +var _ m_Relations.Dummy__ +var _ m_Seq_MergeSort.Dummy__ +var _ m__Math.Dummy__ +var _ m_Seq.Dummy__ +var _ m_MultiKeyring.Dummy__ +var _ m_AwsArnParsing.Dummy__ +var _ m_AwsKmsMrkAreUnique.Dummy__ +var _ m_Actions.Dummy__ +var _ m_AwsKmsMrkMatchForDecrypt.Dummy__ +var _ m_AwsKmsUtils.Dummy__ +var _ m_Constants.Dummy__ +var _ m_MaterialWrapping.Dummy__ +var _ m_CanonicalEncryptionContext.Dummy__ +var _ m_IntermediateKeyWrapping.Dummy__ +var _ m_EdkWrapping.Dummy__ +var _ m_ErrorMessages.Dummy__ +var _ m_AwsKmsKeyring.Dummy__ +var _ m_StrictMultiKeyring.Dummy__ +var _ m_AwsKmsDiscoveryKeyring.Dummy__ +var _ m_Com_Amazonaws_Kms.Dummy__ +var _ m_Com_Amazonaws_Dynamodb.Dummy__ +var _ m_DiscoveryMultiKeyring.Dummy__ +var _ m_AwsKmsMrkDiscoveryKeyring.Dummy__ +var _ m_MrkAwareDiscoveryMultiKeyring.Dummy__ +var _ m_AwsKmsMrkKeyring.Dummy__ +var _ m_MrkAwareStrictMultiKeyring.Dummy__ +var _ m_LocalCMC.Dummy__ +var _ m_SynchronizedLocalCMC.Dummy__ +var _ m_StormTracker.Dummy__ +var _ m_StormTrackingCMC.Dummy__ +var _ m_CacheConstants.Dummy__ +var _ m_AwsKmsHierarchicalKeyring.Dummy__ +var _ m_AwsKmsRsaKeyring.Dummy__ +var _ m_EcdhEdkWrapping.Dummy__ +var _ m_RawECDHKeyring.Dummy__ +var _ m_AwsKmsEcdhKeyring.Dummy__ +var _ m_RawAESKeyring.Dummy__ +var _ m_RawRSAKeyring.Dummy__ +var _ m_CMM.Dummy__ +var _ m_Defaults.Dummy__ +var _ m_Commitment.Dummy__ +var _ m_DefaultCMM.Dummy__ +var _ m_DefaultClientSupplier.Dummy__ +var _ m_Utils.Dummy__ +var _ m_RequiredEncryptionContextCMM.Dummy__ +var _ m_AwsCryptographyMaterialProvidersOperations.Dummy__ +var _ m_MaterialProviders.Dummy__ +var _ m_KeyStoreErrorMessages.Dummy__ +var _ m_KmsArn.Dummy__ +var _ m_Structure.Dummy__ +var _ m_KMSKeystoreOperations.Dummy__ +var _ m_DDBKeystoreOperations.Dummy__ +var _ m_CreateKeys.Dummy__ +var _ m_CreateKeyStoreTable.Dummy__ +var _ m_GetKeys.Dummy__ +var _ m_AwsCryptographyKeyStoreOperations.Dummy__ +var _ m_KeyStore.Dummy__ +var _ m__Unicode.Dummy__ +var _ m_Functions.Dummy__ +var _ m_Utf8EncodingForm.Dummy__ +var _ m_Utf16EncodingForm.Dummy__ +var _ m_UnicodeStrings.Dummy__ +var _ m_FileIO.Dummy__ +var _ m_GeneralInternals.Dummy__ +var _ m_MulInternalsNonlinear.Dummy__ +var _ m_MulInternals.Dummy__ +var _ m_Mul.Dummy__ +var _ m_ModInternalsNonlinear.Dummy__ +var _ m_DivInternalsNonlinear.Dummy__ +var _ m_ModInternals.Dummy__ +var _ m_DivInternals.Dummy__ +var _ m_DivMod.Dummy__ +var _ m_Power.Dummy__ +var _ m_Logarithm.Dummy__ +var _ m_StandardLibraryInterop.Dummy__ +var _ m_Streams.Dummy__ +var _ m_Sorting.Dummy__ +var _ m_HexStrings.Dummy__ +var _ m_GetOpt.Dummy__ +var _ m_FloatCompare.Dummy__ +var _ m_Base64Lemmas.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Dummy__ +var _ m_StructuredEncryptionUtil.Dummy__ +var _ m_Sets.Dummy__ +var _ m_StructuredEncryptionPaths.Dummy__ +var _ m_StructuredEncryptionHeader.Dummy__ +var _ m_StructuredEncryptionFooter.Dummy__ +var _ m_SortCanon.Dummy__ +var _ m_Canonize.Dummy__ +var _ m_StructuredEncryptionCrypt.Dummy__ +var _ m__Maps.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkStructuredEncryptionOperations.Dummy__ +var _ m_StructuredEncryption.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Dummy__ +var _ m_DynamoDbEncryptionUtil.Dummy__ +var _ m_DynamoDbNormalizeNumber.Dummy__ +var _ m_DynamoToStruct.Dummy__ +var _ m_DynamoDbItemEncryptorUtil.Dummy__ +var _ m_InternalLegacyOverride.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorOperations.Dummy__ +var _ m_DynamoDbItemEncryptor.Dummy__ +var _ m_DynamoDbEncryptionBranchKeyIdSupplier.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkDynamoDbOperations.Dummy__ +var _ m_DynamoDbEncryption.Dummy__ +var _ m_TermLoc.Dummy__ +var _ m_DdbVirtualFields.Dummy__ +var _ m_DynamoDbUpdateExpr.Dummy__ +var _ m_BaseBeacon.Dummy__ +var _ m_CompoundBeacon.Dummy__ + +type Dummy__ struct{} + +// Definition of class Default__ +type Default__ struct { + dummy byte +} + +func New_Default___() *Default__ { + _this := Default__{} + + return &_this +} + +type CompanionStruct_Default___ struct { +} + +var Companion_Default___ = CompanionStruct_Default___{} + +func (_this *Default__) Equals(other *Default__) bool { + return _this == other +} + +func (_this *Default__) EqualsGeneric(x interface{}) bool { + other, ok := x.(*Default__) + return ok && _this.Equals(other) +} + +func (*Default__) String() string { + return "SearchableEncryptionInfo.Default__" +} +func (_this *Default__) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = &Default__{} + +func (_static *CompanionStruct_Default___) GetAllKeys(client *m_AtomicPrimitives.AtomicPrimitivesClient, stdNames _dafny.Sequence, key _dafny.Sequence) m_Wrappers.Result { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptyMap) + _ = output + var _0_valueOrError0 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptyMap) + _ = _0_valueOrError0 + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = Companion_Default___.GetHmacKeys(client, stdNames, stdNames, key, _dafny.NewMapBuilder().ToMap()) + _0_valueOrError0 = _out0 + if (_0_valueOrError0).IsFailure() { + output = (_0_valueOrError0).PropagateFailure() + return output + } + var _1_newKeys _dafny.Map + _ = _1_newKeys + _1_newKeys = (_0_valueOrError0).Extract().(_dafny.Map) + output = m_Wrappers.Companion_Result_.Create_Success_(_1_newKeys) + return output + return output +} +func (_static *CompanionStruct_Default___) GetHmacKeys(client *m_AtomicPrimitives.AtomicPrimitivesClient, allKeys _dafny.Sequence, keysLeft _dafny.Sequence, key _dafny.Sequence, acc _dafny.Map) m_Wrappers.Result { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptyMap) + _ = output + if (_dafny.IntOfUint32((keysLeft).Cardinality())).Sign() == 0 { + output = m_Wrappers.Companion_Result_.Create_Success_(acc) + return output + } else { + var _0_valueOrError0 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = _0_valueOrError0 + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = Companion_Default___.GetBeaconKey(client, key, (keysLeft).Select(0).(_dafny.Sequence)) + _0_valueOrError0 = _out0 + if (_0_valueOrError0).IsFailure() { + output = (_0_valueOrError0).PropagateFailure() + return output + } + var _1_newKey _dafny.Sequence + _ = _1_newKey + _1_newKey = (_0_valueOrError0).Extract().(_dafny.Sequence) + var _out1 m_Wrappers.Result + _ = _out1 + _out1 = Companion_Default___.GetHmacKeys(client, allKeys, (keysLeft).Drop(1), key, (acc).Update((keysLeft).Select(0).(_dafny.Sequence), _1_newKey)) + output = _out1 + } + return output +} +func (_static *CompanionStruct_Default___) GetBeaconKey(client *m_AtomicPrimitives.AtomicPrimitivesClient, key _dafny.Sequence, name _dafny.Sequence) m_Wrappers.Result { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = output + var _0_valueOrError0 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_UTF8.Companion_ValidUTF8Bytes_.Witness()) + _ = _0_valueOrError0 + _0_valueOrError0 = (m_UTF8.Encode(_dafny.Companion_Sequence_.Concatenate(_dafny.SeqOfString("AWS_DBE_SCAN_BEACON"), name))).MapFailure(func(coer97 func(_dafny.Sequence) m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Error) func(interface{}) interface{} { + return func(arg121 interface{}) interface{} { + return coer97(arg121.(_dafny.Sequence)) + } + }(func(_1_e _dafny.Sequence) m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Error { + return m_DynamoDbEncryptionUtil.Companion_Default___.E(_1_e) + })) + if (_0_valueOrError0).IsFailure() { + output = (_0_valueOrError0).PropagateFailure() + return output + } + var _2_info _dafny.Sequence + _ = _2_info + _2_info = (_0_valueOrError0).Extract().(_dafny.Sequence) + var _3_keyR m_Wrappers.Result + _ = _3_keyR + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = (client).Hkdf(m_AwsCryptographyPrimitivesTypes.Companion_HkdfInput_.Create_HkdfInput_(m_AwsCryptographyPrimitivesTypes.Companion_DigestAlgorithm_.Create_SHA__512_(), m_Wrappers.Companion_Option_.Create_None_(), key, _2_info, int32(64))) + _3_keyR = _out0 + var _4_valueOrError1 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = _4_valueOrError1 + _4_valueOrError1 = (_3_keyR).MapFailure(func(coer98 func(m_AwsCryptographyPrimitivesTypes.Error) m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Error) func(interface{}) interface{} { + return func(arg122 interface{}) interface{} { + return coer98(arg122.(m_AwsCryptographyPrimitivesTypes.Error)) + } + }(func(_5_e m_AwsCryptographyPrimitivesTypes.Error) m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Error { + return m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_Error_.Create_AwsCryptographyPrimitives_(_5_e) + })) + if (_4_valueOrError1).IsFailure() { + output = (_4_valueOrError1).PropagateFailure() + return output + } + var _6_newKey _dafny.Sequence + _ = _6_newKey + _6_newKey = (_4_valueOrError1).Extract().(_dafny.Sequence) + output = m_Wrappers.Companion_Result_.Create_Success_(_6_newKey) + return output + return output +} +func (_static *CompanionStruct_Default___) GenerateUuidBytes() m_Wrappers.Result { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = output + var _0_uuid_q m_Wrappers.Result + _ = _0_uuid_q + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_UUID.GenerateUUID() + _0_uuid_q = _out0 + var _1_valueOrError0 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq.SetString()) + _ = _1_valueOrError0 + _1_valueOrError0 = (_0_uuid_q).MapFailure(func(coer99 func(_dafny.Sequence) m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Error) func(interface{}) interface{} { + return func(arg123 interface{}) interface{} { + return coer99(arg123.(_dafny.Sequence)) + } + }(func(_2_e _dafny.Sequence) m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Error { + return m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_Error_.Create_DynamoDbEncryptionException_(_2_e) + })) + if (_1_valueOrError0).IsFailure() { + output = (_1_valueOrError0).PropagateFailure() + return output + } + var _3_uuid _dafny.Sequence + _ = _3_uuid + _3_uuid = (_1_valueOrError0).Extract().(_dafny.Sequence) + output = (m_UUID.ToByteArray(_3_uuid)).MapFailure(func(coer100 func(_dafny.Sequence) m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Error) func(interface{}) interface{} { + return func(arg124 interface{}) interface{} { + return coer100(arg124.(_dafny.Sequence)) + } + }(func(_4_e _dafny.Sequence) m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Error { + return m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_Error_.Create_DynamoDbEncryptionException_(_4_e) + })) + return output +} +func (_static *CompanionStruct_Default___) MakeSearchInfo(version BeaconVersion) SearchInfo { + return Companion_SearchInfo_.Create_SearchInfo_(_dafny.SeqOf(version), _dafny.Zero) +} +func (_static *CompanionStruct_Default___) IsPartOnly(b Beacon) bool { + return ((b).Is_Standard()) && (((b).Dtor_std()).Dtor_partOnly()) +} +func (_static *CompanionStruct_Default___) IsBeaconOfType(b Beacon, t BeaconType) bool { + var _source0 BeaconType = t + _ = _source0 + { + if _source0.Is_AnyBeacon() { + return true + } + } + { + if _source0.Is_SignedBeacon() { + return !((b).IsEncrypted()) + } + } + { + return (b).IsEncrypted() + } +} +func (_static *CompanionStruct_Default___) MakeBeaconVersion(version uint8, keySource KeySource, beacons _dafny.Map, virtualFields _dafny.Map, actions _dafny.Map) m_Wrappers.Result { + var _0_beaconNames _dafny.Sequence = m_SortedSets.SetToOrderedSequence2((beacons).Keys(), func(coer101 func(_dafny.Char, _dafny.Char) bool) func(interface{}, interface{}) bool { + return func(arg125 interface{}, arg126 interface{}) bool { + return coer101(arg125.(_dafny.Char), arg126.(_dafny.Char)) + } + }(m_DynamoDbEncryptionUtil.Companion_Default___.CharLess)) + _ = _0_beaconNames + var _1_stdKeys _dafny.Sequence = m_Seq.Companion_Default___.Filter(func(coer102 func(_dafny.Sequence) bool) func(interface{}) bool { + return func(arg127 interface{}) bool { + return coer102(arg127.(_dafny.Sequence)) + } + }((func(_2_beacons _dafny.Map) func(_dafny.Sequence) bool { + return func(_3_k _dafny.Sequence) bool { + return ((_2_beacons).Contains(_3_k)) && (((_2_beacons).Get(_3_k).(Beacon)).Is_Standard()) + } + })(beacons)), _0_beaconNames) + _ = _1_stdKeys + var _4_encrypted _dafny.Set = func() _dafny.Set { + var _coll0 = _dafny.NewBuilder() + _ = _coll0 + for _iter24 := _dafny.Iterate((actions).Keys().Elements()); ; { + _compr_0, _ok24 := _iter24() + if !_ok24 { + break + } + var _5_k _dafny.Sequence + _5_k = interface{}(_compr_0).(_dafny.Sequence) + if ((actions).Contains(_5_k)) && (((actions).Get(_5_k).(m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.CryptoAction)).Equals(m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Companion_CryptoAction_.Create_ENCRYPT__AND__SIGN_())) { + _coll0.Add(_5_k) + } + } + return _coll0.ToSet() + }() + _ = _4_encrypted + var _6_bv BeaconVersion = Companion_BeaconVersion_.Create_BeaconVersion_(version, keySource, virtualFields, beacons, _0_beaconNames, _1_stdKeys, _4_encrypted) + _ = _6_bv + return m_Wrappers.Companion_Result_.Create_Success_(_6_bv) +} + +// End of class Default__ + +// Definition of class VersionNumber +type VersionNumber struct { +} + +func New_VersionNumber_() *VersionNumber { + _this := VersionNumber{} + + return &_this +} + +type CompanionStruct_VersionNumber_ struct { +} + +var Companion_VersionNumber_ = CompanionStruct_VersionNumber_{} + +func (*VersionNumber) String() string { + return "SearchableEncryptionInfo.VersionNumber" +} +func (_this *VersionNumber) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = &VersionNumber{} + +func (_this *CompanionStruct_VersionNumber_) IntegerRange(lo _dafny.Int, hi _dafny.Int) _dafny.Iterator { + iter := _dafny.IntegerRange(lo, hi) + return func() (interface{}, bool) { + next, ok := iter() + if !ok { + return uint8(0), false + } + return next.(_dafny.Int).Uint8(), true + } +} +func (_this *CompanionStruct_VersionNumber_) Witness() uint8 { + return (_dafny.One).Uint8() +} + +// End of class VersionNumber + +func Type_VersionNumber_() _dafny.TypeDescriptor { + return type_VersionNumber_{} +} + +type type_VersionNumber_ struct { +} + +func (_this type_VersionNumber_) Default() interface{} { + return Companion_VersionNumber_.Witness() +} + +func (_this type_VersionNumber_) String() string { + return "SearchableEncryptionInfo.VersionNumber" +} +func (_this *CompanionStruct_VersionNumber_) Is_(__source uint8) bool { + var _7_x _dafny.Int = _dafny.IntOfUint8(__source) + _ = _7_x + return (_7_x).Cmp(_dafny.One) == 0 +} + +// Definition of class ValidSearchInfo +type ValidSearchInfo struct { +} + +func New_ValidSearchInfo_() *ValidSearchInfo { + _this := ValidSearchInfo{} + + return &_this +} + +type CompanionStruct_ValidSearchInfo_ struct { +} + +var Companion_ValidSearchInfo_ = CompanionStruct_ValidSearchInfo_{} + +func (*ValidSearchInfo) String() string { + return "SearchableEncryptionInfo.ValidSearchInfo" +} + +// End of class ValidSearchInfo + +func Type_ValidSearchInfo_() _dafny.TypeDescriptor { + return type_ValidSearchInfo_{} +} + +type type_ValidSearchInfo_ struct { +} + +func (_this type_ValidSearchInfo_) Default() interface{} { + return Companion_SearchInfo_.Default() +} + +func (_this type_ValidSearchInfo_) String() string { + return "SearchableEncryptionInfo.ValidSearchInfo" +} + +// Definition of class ValidStore +type ValidStore struct { +} + +func New_ValidStore_() *ValidStore { + _this := ValidStore{} + + return &_this +} + +type CompanionStruct_ValidStore_ struct { +} + +var Companion_ValidStore_ = CompanionStruct_ValidStore_{} + +func (*ValidStore) String() string { + return "SearchableEncryptionInfo.ValidStore" +} + +// End of class ValidStore + +func Type_ValidStore_() _dafny.TypeDescriptor { + return type_ValidStore_{} +} + +type type_ValidStore_ struct { +} + +func (_this type_ValidStore_) Default() interface{} { + return (m_AwsCryptographyKeyStoreTypes.IKeyStoreClient)(nil) +} + +func (_this type_ValidStore_) String() string { + return "SearchableEncryptionInfo.ValidStore" +} + +// Definition of datatype KeyLocation +type KeyLocation struct { + Data_KeyLocation_ +} + +func (_this KeyLocation) Get_() Data_KeyLocation_ { + return _this.Data_KeyLocation_ +} + +type Data_KeyLocation_ interface { + isKeyLocation() +} + +type CompanionStruct_KeyLocation_ struct { +} + +var Companion_KeyLocation_ = CompanionStruct_KeyLocation_{} + +type KeyLocation_LiteralLoc struct { + Keys _dafny.Map +} + +func (KeyLocation_LiteralLoc) isKeyLocation() {} + +func (CompanionStruct_KeyLocation_) Create_LiteralLoc_(Keys _dafny.Map) KeyLocation { + return KeyLocation{KeyLocation_LiteralLoc{Keys}} +} + +func (_this KeyLocation) Is_LiteralLoc() bool { + _, ok := _this.Get_().(KeyLocation_LiteralLoc) + return ok +} + +type KeyLocation_SingleLoc struct { + KeyId _dafny.Sequence +} + +func (KeyLocation_SingleLoc) isKeyLocation() {} + +func (CompanionStruct_KeyLocation_) Create_SingleLoc_(KeyId _dafny.Sequence) KeyLocation { + return KeyLocation{KeyLocation_SingleLoc{KeyId}} +} + +func (_this KeyLocation) Is_SingleLoc() bool { + _, ok := _this.Get_().(KeyLocation_SingleLoc) + return ok +} + +type KeyLocation_MultiLoc struct { + KeyName _dafny.Sequence + DeleteKey bool +} + +func (KeyLocation_MultiLoc) isKeyLocation() {} + +func (CompanionStruct_KeyLocation_) Create_MultiLoc_(KeyName _dafny.Sequence, DeleteKey bool) KeyLocation { + return KeyLocation{KeyLocation_MultiLoc{KeyName, DeleteKey}} +} + +func (_this KeyLocation) Is_MultiLoc() bool { + _, ok := _this.Get_().(KeyLocation_MultiLoc) + return ok +} + +func (CompanionStruct_KeyLocation_) Default() KeyLocation { + return Companion_KeyLocation_.Create_LiteralLoc_(_dafny.EmptyMap) +} + +func (_this KeyLocation) Dtor_keys() _dafny.Map { + return _this.Get_().(KeyLocation_LiteralLoc).Keys +} + +func (_this KeyLocation) Dtor_keyId() _dafny.Sequence { + return _this.Get_().(KeyLocation_SingleLoc).KeyId +} + +func (_this KeyLocation) Dtor_keyName() _dafny.Sequence { + return _this.Get_().(KeyLocation_MultiLoc).KeyName +} + +func (_this KeyLocation) Dtor_deleteKey() bool { + return _this.Get_().(KeyLocation_MultiLoc).DeleteKey +} + +func (_this KeyLocation) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case KeyLocation_LiteralLoc: + { + return "SearchableEncryptionInfo.KeyLocation.LiteralLoc" + "(" + _dafny.String(data.Keys) + ")" + } + case KeyLocation_SingleLoc: + { + return "SearchableEncryptionInfo.KeyLocation.SingleLoc" + "(" + _dafny.String(data.KeyId) + ")" + } + case KeyLocation_MultiLoc: + { + return "SearchableEncryptionInfo.KeyLocation.MultiLoc" + "(" + _dafny.String(data.KeyName) + ", " + _dafny.String(data.DeleteKey) + ")" + } + default: + { + return "" + } + } +} + +func (_this KeyLocation) Equals(other KeyLocation) bool { + switch data1 := _this.Get_().(type) { + case KeyLocation_LiteralLoc: + { + data2, ok := other.Get_().(KeyLocation_LiteralLoc) + return ok && data1.Keys.Equals(data2.Keys) + } + case KeyLocation_SingleLoc: + { + data2, ok := other.Get_().(KeyLocation_SingleLoc) + return ok && data1.KeyId.Equals(data2.KeyId) + } + case KeyLocation_MultiLoc: + { + data2, ok := other.Get_().(KeyLocation_MultiLoc) + return ok && data1.KeyName.Equals(data2.KeyName) && data1.DeleteKey == data2.DeleteKey + } + default: + { + return false // unexpected + } + } +} + +func (_this KeyLocation) EqualsGeneric(other interface{}) bool { + typed, ok := other.(KeyLocation) + return ok && _this.Equals(typed) +} + +func Type_KeyLocation_() _dafny.TypeDescriptor { + return type_KeyLocation_{} +} + +type type_KeyLocation_ struct { +} + +func (_this type_KeyLocation_) Default() interface{} { + return Companion_KeyLocation_.Default() +} + +func (_this type_KeyLocation_) String() string { + return "SearchableEncryptionInfo.KeyLocation" +} +func (_this KeyLocation) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = KeyLocation{} + +// End of datatype KeyLocation + +// Definition of datatype KeySource +type KeySource struct { + Data_KeySource_ +} + +func (_this KeySource) Get_() Data_KeySource_ { + return _this.Data_KeySource_ +} + +type Data_KeySource_ interface { + isKeySource() +} + +type CompanionStruct_KeySource_ struct { +} + +var Companion_KeySource_ = CompanionStruct_KeySource_{} + +type KeySource_KeySource struct { + Client *m_AtomicPrimitives.AtomicPrimitivesClient + Store m_AwsCryptographyKeyStoreTypes.IKeyStoreClient + KeyLoc KeyLocation + Cache m_AwsCryptographyMaterialProvidersTypes.ICryptographicMaterialsCache + CacheTTL uint32 + PartitionIdBytes _dafny.Sequence + LogicalKeyStoreNameBytes _dafny.Sequence +} + +func (KeySource_KeySource) isKeySource() {} + +func (CompanionStruct_KeySource_) Create_KeySource_(Client *m_AtomicPrimitives.AtomicPrimitivesClient, Store m_AwsCryptographyKeyStoreTypes.IKeyStoreClient, KeyLoc KeyLocation, Cache m_AwsCryptographyMaterialProvidersTypes.ICryptographicMaterialsCache, CacheTTL uint32, PartitionIdBytes _dafny.Sequence, LogicalKeyStoreNameBytes _dafny.Sequence) KeySource { + return KeySource{KeySource_KeySource{Client, Store, KeyLoc, Cache, CacheTTL, PartitionIdBytes, LogicalKeyStoreNameBytes}} +} + +func (_this KeySource) Is_KeySource() bool { + _, ok := _this.Get_().(KeySource_KeySource) + return ok +} + +func (CompanionStruct_KeySource_) Default() KeySource { + return Companion_KeySource_.Create_KeySource_((*m_AtomicPrimitives.AtomicPrimitivesClient)(nil), (m_AwsCryptographyKeyStoreTypes.IKeyStoreClient)(nil), Companion_KeyLocation_.Default(), (m_AwsCryptographyMaterialProvidersTypes.ICryptographicMaterialsCache)(nil), uint32(0), _dafny.EmptySeq, _dafny.EmptySeq) +} + +func (_this KeySource) Dtor_client() *m_AtomicPrimitives.AtomicPrimitivesClient { + return _this.Get_().(KeySource_KeySource).Client +} + +func (_this KeySource) Dtor_store() m_AwsCryptographyKeyStoreTypes.IKeyStoreClient { + return _this.Get_().(KeySource_KeySource).Store +} + +func (_this KeySource) Dtor_keyLoc() KeyLocation { + return _this.Get_().(KeySource_KeySource).KeyLoc +} + +func (_this KeySource) Dtor_cache() m_AwsCryptographyMaterialProvidersTypes.ICryptographicMaterialsCache { + return _this.Get_().(KeySource_KeySource).Cache +} + +func (_this KeySource) Dtor_cacheTTL() uint32 { + return _this.Get_().(KeySource_KeySource).CacheTTL +} + +func (_this KeySource) Dtor_partitionIdBytes() _dafny.Sequence { + return _this.Get_().(KeySource_KeySource).PartitionIdBytes +} + +func (_this KeySource) Dtor_logicalKeyStoreNameBytes() _dafny.Sequence { + return _this.Get_().(KeySource_KeySource).LogicalKeyStoreNameBytes +} + +func (_this KeySource) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case KeySource_KeySource: + { + return "SearchableEncryptionInfo.KeySource.KeySource" + "(" + _dafny.String(data.Client) + ", " + _dafny.String(data.Store) + ", " + _dafny.String(data.KeyLoc) + ", " + _dafny.String(data.Cache) + ", " + _dafny.String(data.CacheTTL) + ", " + _dafny.String(data.PartitionIdBytes) + ", " + _dafny.String(data.LogicalKeyStoreNameBytes) + ")" + } + default: + { + return "" + } + } +} + +func (_this KeySource) Equals(other KeySource) bool { + switch data1 := _this.Get_().(type) { + case KeySource_KeySource: + { + data2, ok := other.Get_().(KeySource_KeySource) + return ok && data1.Client == data2.Client && _dafny.AreEqual(data1.Store, data2.Store) && data1.KeyLoc.Equals(data2.KeyLoc) && _dafny.AreEqual(data1.Cache, data2.Cache) && data1.CacheTTL == data2.CacheTTL && data1.PartitionIdBytes.Equals(data2.PartitionIdBytes) && data1.LogicalKeyStoreNameBytes.Equals(data2.LogicalKeyStoreNameBytes) + } + default: + { + return false // unexpected + } + } +} + +func (_this KeySource) EqualsGeneric(other interface{}) bool { + typed, ok := other.(KeySource) + return ok && _this.Equals(typed) +} + +func Type_KeySource_() _dafny.TypeDescriptor { + return type_KeySource_{} +} + +type type_KeySource_ struct { +} + +func (_this type_KeySource_) Default() interface{} { + return Companion_KeySource_.Default() +} + +func (_this type_KeySource_) String() string { + return "SearchableEncryptionInfo.KeySource" +} +func (_this KeySource) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = KeySource{} + +func (_this KeySource) GetKeyMap(stdNames _dafny.Sequence, keyId m_DynamoDbEncryptionUtil.MaybeKeyId) m_Wrappers.Result { + { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_DynamoDbEncryptionUtil.Companion_MaybeKeyMap_.Default()) + _ = output + if ((_this).Dtor_keyLoc()).Is_SingleLoc() { + var _0_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _0_valueOrError0 + _0_valueOrError0 = m_Wrappers.Companion_Default___.Need((keyId).Is_DontUseKeyId(), m_DynamoDbEncryptionUtil.Companion_Default___.E(_dafny.SeqOfString("KeyID should not be supplied with a SingleKeyStore"))) + if (_0_valueOrError0).IsFailure() { + output = (_0_valueOrError0).PropagateFailure() + return output + } + var _1_now int64 + _ = _1_now + var _out0 int64 + _ = _out0 + _out0 = m__Time.CurrentRelativeTime() + _1_now = _out0 + var _2_valueOrError1 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptyMap) + _ = _2_valueOrError1 + var _out1 m_Wrappers.Result + _ = _out1 + _out1 = (_this).GetKeysCache((_this).Dtor_client(), stdNames, ((_this).Dtor_keyLoc()).Dtor_keyId(), int64((_this).Dtor_cacheTTL()), (_this).Dtor_partitionIdBytes(), (_this).Dtor_logicalKeyStoreNameBytes(), (_1_now)) + _2_valueOrError1 = _out1 + if (_2_valueOrError1).IsFailure() { + output = (_2_valueOrError1).PropagateFailure() + return output + } + var _3_theMap _dafny.Map + _ = _3_theMap + _3_theMap = (_2_valueOrError1).Extract().(_dafny.Map) + output = m_Wrappers.Companion_Result_.Create_Success_(m_DynamoDbEncryptionUtil.Companion_MaybeKeyMap_.Create_Keys_(_3_theMap)) + return output + } else if ((_this).Dtor_keyLoc()).Is_LiteralLoc() { + var _4_valueOrError2 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _4_valueOrError2 + _4_valueOrError2 = m_Wrappers.Companion_Default___.Need((keyId).Is_DontUseKeyId(), m_DynamoDbEncryptionUtil.Companion_Default___.E(_dafny.SeqOfString("KeyID should not be supplied with a LiteralKeyStore"))) + if (_4_valueOrError2).IsFailure() { + output = (_4_valueOrError2).PropagateFailure() + return output + } + var _5_valueOrError3 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptyMap) + _ = _5_valueOrError3 + var _out2 m_Wrappers.Result + _ = _out2 + _out2 = (_this).GetKeysLiteral() + _5_valueOrError3 = _out2 + if (_5_valueOrError3).IsFailure() { + output = (_5_valueOrError3).PropagateFailure() + return output + } + var _6_theMap _dafny.Map + _ = _6_theMap + _6_theMap = (_5_valueOrError3).Extract().(_dafny.Map) + output = m_Wrappers.Companion_Result_.Create_Success_(m_DynamoDbEncryptionUtil.Companion_MaybeKeyMap_.Create_Keys_(_6_theMap)) + return output + } else { + var _source0 m_DynamoDbEncryptionUtil.MaybeKeyId = keyId + _ = _source0 + { + { + if _source0.Is_DontUseKeyId() { + output = m_Wrappers.Companion_Result_.Create_Failure_(m_DynamoDbEncryptionUtil.Companion_Default___.E(_dafny.SeqOfString("Fixed KeyID must not be supplied with a MultiKeyStore"))) + return output + goto Lmatch0 + } + } + { + if _source0.Is_ShouldHaveKeyId() { + output = m_Wrappers.Companion_Result_.Create_Success_(m_DynamoDbEncryptionUtil.Companion_MaybeKeyMap_.Create_ShouldHaveKeys_()) + return output + goto Lmatch0 + } + } + { + var _7_id _dafny.Sequence = _source0.Get_().(m_DynamoDbEncryptionUtil.MaybeKeyId_KeyId).Value + _ = _7_id + var _8_now int64 + _ = _8_now + var _out3 int64 + _ = _out3 + _out3 = m__Time.CurrentRelativeTime() + _8_now = _out3 + var _9_valueOrError4 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptyMap) + _ = _9_valueOrError4 + var _out4 m_Wrappers.Result + _ = _out4 + _out4 = (_this).GetKeysCache((_this).Dtor_client(), stdNames, _7_id, int64((_this).Dtor_cacheTTL()), (_this).Dtor_partitionIdBytes(), (_this).Dtor_logicalKeyStoreNameBytes(), (_8_now)) + _9_valueOrError4 = _out4 + if (_9_valueOrError4).IsFailure() { + output = (_9_valueOrError4).PropagateFailure() + return output + } + var _10_theMap _dafny.Map + _ = _10_theMap + _10_theMap = (_9_valueOrError4).Extract().(_dafny.Map) + output = m_Wrappers.Companion_Result_.Create_Success_(m_DynamoDbEncryptionUtil.Companion_MaybeKeyMap_.Create_Keys_(_10_theMap)) + return output + } + goto Lmatch0 + } + Lmatch0: + } + return output + } +} +func (_this KeySource) GetKeysLiteral() m_Wrappers.Result { + { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptyMap) + _ = output + output = m_Wrappers.Companion_Result_.Create_Success_(((_this).Dtor_keyLoc()).Dtor_keys()) + return output + return output + } +} +func (_this KeySource) CacheEntryWithinLimits(creationTime int64, now int64, ttlSeconds int64) bool { + { + return ((now) - (creationTime)) <= (ttlSeconds) + } +} +func (_this KeySource) GetKeysCache(client *m_AtomicPrimitives.AtomicPrimitivesClient, stdNames _dafny.Sequence, keyId _dafny.Sequence, cacheTTL int64, partitionIdBytes _dafny.Sequence, logicalKeyStoreNameBytes _dafny.Sequence, now int64) m_Wrappers.Result { + { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptyMap) + _ = output + var _0_resourceId _dafny.Sequence + _ = _0_resourceId + _0_resourceId = m_CacheConstants.Companion_Default___.RESOURCE__ID__HIERARCHICAL__KEYRING() + var _1_scopeId _dafny.Sequence + _ = _1_scopeId + _1_scopeId = m_CacheConstants.Companion_Default___.SCOPE__ID__SEARCHABLE__ENCRYPTION() + var _2_keyIdBytesR m_Wrappers.Result + _ = _2_keyIdBytesR + _2_keyIdBytesR = m_UTF8.Encode(keyId) + var _3_valueOrError0 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_UTF8.Companion_ValidUTF8Bytes_.Witness()) + _ = _3_valueOrError0 + _3_valueOrError0 = (_2_keyIdBytesR).MapFailure(func(coer103 func(_dafny.Sequence) m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Error) func(interface{}) interface{} { + return func(arg128 interface{}) interface{} { + return coer103(arg128.(_dafny.Sequence)) + } + }(func(_4_e _dafny.Sequence) m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Error { + return m_DynamoDbEncryptionUtil.Companion_Default___.E(_4_e) + })) + if (_3_valueOrError0).IsFailure() { + output = (_3_valueOrError0).PropagateFailure() + return output + } + var _5_keyIdBytes _dafny.Sequence + _ = _5_keyIdBytes + _5_keyIdBytes = (_3_valueOrError0).Extract().(_dafny.Sequence) + var _6_suffix _dafny.Sequence + _ = _6_suffix + _6_suffix = _dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(logicalKeyStoreNameBytes, m_CacheConstants.Companion_Default___.NULL__BYTE()), _5_keyIdBytes) + var _7_identifier _dafny.Sequence + _ = _7_identifier + _7_identifier = _dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_0_resourceId, m_CacheConstants.Companion_Default___.NULL__BYTE()), _1_scopeId), m_CacheConstants.Companion_Default___.NULL__BYTE()), partitionIdBytes), m_CacheConstants.Companion_Default___.NULL__BYTE()), _6_suffix) + var _8_hashAlgorithm m_AwsCryptographyPrimitivesTypes.DigestAlgorithm + _ = _8_hashAlgorithm + _8_hashAlgorithm = m_AwsCryptographyPrimitivesTypes.Companion_DigestAlgorithm_.Create_SHA__384_() + var _9_identifierDigestInput m_AwsCryptographyPrimitivesTypes.DigestInput + _ = _9_identifierDigestInput + _9_identifierDigestInput = m_AwsCryptographyPrimitivesTypes.Companion_DigestInput_.Create_DigestInput_(_8_hashAlgorithm, _7_identifier) + var _10_maybeCacheDigest m_Wrappers.Result + _ = _10_maybeCacheDigest + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = (client).Digest(_9_identifierDigestInput) + _10_maybeCacheDigest = _out0 + var _11_valueOrError1 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = _11_valueOrError1 + _11_valueOrError1 = (_10_maybeCacheDigest).MapFailure(func(coer104 func(m_AwsCryptographyPrimitivesTypes.Error) m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Error) func(interface{}) interface{} { + return func(arg129 interface{}) interface{} { + return coer104(arg129.(m_AwsCryptographyPrimitivesTypes.Error)) + } + }(func(_12_e m_AwsCryptographyPrimitivesTypes.Error) m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Error { + return m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_Error_.Create_AwsCryptographyPrimitives_(_12_e) + })) + if (_11_valueOrError1).IsFailure() { + output = (_11_valueOrError1).PropagateFailure() + return output + } + var _13_cacheDigest _dafny.Sequence + _ = _13_cacheDigest + _13_cacheDigest = (_11_valueOrError1).Extract().(_dafny.Sequence) + var _14_getCacheInput m_AwsCryptographyMaterialProvidersTypes.GetCacheEntryInput + _ = _14_getCacheInput + _14_getCacheInput = m_AwsCryptographyMaterialProvidersTypes.Companion_GetCacheEntryInput_.Create_GetCacheEntryInput_(_13_cacheDigest, m_Wrappers.Companion_Option_.Create_None_()) + var _15_getCacheOutput m_Wrappers.Result + _ = _15_getCacheOutput + var _out1 m_Wrappers.Result + _ = _out1 + _out1 = ((_this).Dtor_cache()).GetCacheEntry(_14_getCacheInput) + _15_getCacheOutput = _out1 + if ((_15_getCacheOutput).Is_Failure()) && (!(((_15_getCacheOutput).Dtor_error().(m_AwsCryptographyMaterialProvidersTypes.Error)).Is_EntryDoesNotExist())) { + output = m_Wrappers.Companion_Result_.Create_Failure_(m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_Error_.Create_AwsCryptographyMaterialProviders_((_15_getCacheOutput).Dtor_error().(m_AwsCryptographyMaterialProvidersTypes.Error))) + return output + } + if ((_15_getCacheOutput).Is_Failure()) || (!((_this).CacheEntryWithinLimits(((_15_getCacheOutput).Dtor_value().(m_AwsCryptographyMaterialProvidersTypes.GetCacheEntryOutput)).Dtor_creationTime(), now, cacheTTL))) { + var _16_maybeRawBeaconKeyMaterials m_Wrappers.Result + _ = _16_maybeRawBeaconKeyMaterials + var _out2 m_Wrappers.Result + _ = _out2 + _out2 = ((_this).Dtor_store()).GetBeaconKey(m_AwsCryptographyKeyStoreTypes.Companion_GetBeaconKeyInput_.Create_GetBeaconKeyInput_(keyId)) + _16_maybeRawBeaconKeyMaterials = _out2 + var _17_valueOrError2 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_AwsCryptographyKeyStoreTypes.Companion_GetBeaconKeyOutput_.Default()) + _ = _17_valueOrError2 + _17_valueOrError2 = (_16_maybeRawBeaconKeyMaterials).MapFailure(func(coer105 func(m_AwsCryptographyKeyStoreTypes.Error) m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Error) func(interface{}) interface{} { + return func(arg130 interface{}) interface{} { + return coer105(arg130.(m_AwsCryptographyKeyStoreTypes.Error)) + } + }(func(_18_e m_AwsCryptographyKeyStoreTypes.Error) m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Error { + return m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_Error_.Create_AwsCryptographyKeyStore_(_18_e) + })) + if (_17_valueOrError2).IsFailure() { + output = (_17_valueOrError2).PropagateFailure() + return output + } + var _19_rawBeaconKeyMaterials m_AwsCryptographyKeyStoreTypes.GetBeaconKeyOutput + _ = _19_rawBeaconKeyMaterials + _19_rawBeaconKeyMaterials = (_17_valueOrError2).Extract().(m_AwsCryptographyKeyStoreTypes.GetBeaconKeyOutput) + var _20_key m_Wrappers.Option + _ = _20_key + _20_key = ((_19_rawBeaconKeyMaterials).Dtor_beaconKeyMaterials()).Dtor_beaconKey() + var _21_valueOrError3 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _21_valueOrError3 + _21_valueOrError3 = m_Wrappers.Companion_Default___.Need((_20_key).Is_Some(), m_DynamoDbEncryptionUtil.Companion_Default___.E(_dafny.SeqOfString("beacon key unexpectedly empty"))) + if (_21_valueOrError3).IsFailure() { + output = (_21_valueOrError3).PropagateFailure() + return output + } + var _22_valueOrError4 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptyMap) + _ = _22_valueOrError4 + var _out3 m_Wrappers.Result + _ = _out3 + _out3 = (_this).GetAllKeys(stdNames, (_20_key).Dtor_value().(_dafny.Sequence)) + _22_valueOrError4 = _out3 + if (_22_valueOrError4).IsFailure() { + output = (_22_valueOrError4).PropagateFailure() + return output + } + var _23_keyMap _dafny.Map + _ = _23_keyMap + _23_keyMap = (_22_valueOrError4).Extract().(_dafny.Map) + var _24_beaconKeyMaterials m_AwsCryptographyKeyStoreTypes.BeaconKeyMaterials + _ = _24_beaconKeyMaterials + var _25_dt__update__tmp_h0 m_AwsCryptographyKeyStoreTypes.BeaconKeyMaterials = (_19_rawBeaconKeyMaterials).Dtor_beaconKeyMaterials() + _ = _25_dt__update__tmp_h0 + var _26_dt__update_hhmacKeys_h0 m_Wrappers.Option = m_Wrappers.Companion_Option_.Create_Some_(_23_keyMap) + _ = _26_dt__update_hhmacKeys_h0 + var _27_dt__update_hbeaconKey_h0 m_Wrappers.Option = m_Wrappers.Companion_Option_.Create_None_() + _ = _27_dt__update_hbeaconKey_h0 + _24_beaconKeyMaterials = m_AwsCryptographyKeyStoreTypes.Companion_BeaconKeyMaterials_.Create_BeaconKeyMaterials_((_25_dt__update__tmp_h0).Dtor_beaconKeyIdentifier(), (_25_dt__update__tmp_h0).Dtor_encryptionContext(), _27_dt__update_hbeaconKey_h0, _26_dt__update_hhmacKeys_h0) + if !((now) < ((m_BoundedInts.Companion_Default___.INT64__MAX()) - (cacheTTL))) { + panic("dafny/DynamoDbEncryption/src/SearchInfo.dfy(409,8): " + (_dafny.SeqOfString("expectation violation")).String()) + } + var _28_putCacheEntryInput m_AwsCryptographyMaterialProvidersTypes.PutCacheEntryInput + _ = _28_putCacheEntryInput + _28_putCacheEntryInput = m_AwsCryptographyMaterialProvidersTypes.Companion_PutCacheEntryInput_.Create_PutCacheEntryInput_(_13_cacheDigest, m_AwsCryptographyMaterialProvidersTypes.Companion_Materials_.Create_BeaconKey_(_24_beaconKeyMaterials), now, (now)+(cacheTTL), m_Wrappers.Companion_Option_.Create_None_(), m_Wrappers.Companion_Option_.Create_None_()) + var _29_putResult m_Wrappers.Result + _ = _29_putResult + var _out4 m_Wrappers.Result + _ = _out4 + _out4 = ((_this).Dtor_cache()).PutCacheEntry(_28_putCacheEntryInput) + _29_putResult = _out4 + if ((_29_putResult).Is_Failure()) && (!(((_29_putResult).Dtor_error().(m_AwsCryptographyMaterialProvidersTypes.Error)).Is_EntryAlreadyExists())) { + output = m_Wrappers.Companion_Result_.Create_Failure_(m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_Error_.Create_AwsCryptographyMaterialProviders_((_29_putResult).Dtor_error().(m_AwsCryptographyMaterialProvidersTypes.Error))) + return output + } + output = m_Wrappers.Companion_Result_.Create_Success_(_23_keyMap) + return output + } else { + var _30_valueOrError5 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _30_valueOrError5 + _30_valueOrError5 = m_Wrappers.Companion_Default___.Need(((((((_15_getCacheOutput).Dtor_value().(m_AwsCryptographyMaterialProvidersTypes.GetCacheEntryOutput)).Dtor_materials()).Is_BeaconKey()) && ((((((_15_getCacheOutput).Dtor_value().(m_AwsCryptographyMaterialProvidersTypes.GetCacheEntryOutput)).Dtor_materials()).Dtor_BeaconKey()).Dtor_hmacKeys()).Is_Some())) && (_dafny.Companion_Sequence_.Equal(((((_15_getCacheOutput).Dtor_value().(m_AwsCryptographyMaterialProvidersTypes.GetCacheEntryOutput)).Dtor_materials()).Dtor_BeaconKey()).Dtor_beaconKeyIdentifier(), keyId))) && ((((((_15_getCacheOutput).Dtor_value().(m_AwsCryptographyMaterialProvidersTypes.GetCacheEntryOutput)).Dtor_materials()).Dtor_BeaconKey()).Dtor_hmacKeys()).Is_Some()), m_DynamoDbEncryptionUtil.Companion_Default___.E(_dafny.SeqOfString("Invalid Material Type."))) + if (_30_valueOrError5).IsFailure() { + output = (_30_valueOrError5).PropagateFailure() + return output + } + output = m_Wrappers.Companion_Result_.Create_Success_((((((_15_getCacheOutput).Dtor_value().(m_AwsCryptographyMaterialProvidersTypes.GetCacheEntryOutput)).Dtor_materials()).Dtor_BeaconKey()).Dtor_hmacKeys()).Dtor_value().(_dafny.Map)) + return output + } + return output + } +} +func (_this KeySource) GetAllKeys(stdNames _dafny.Sequence, key _dafny.Sequence) m_Wrappers.Result { + { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptyMap) + _ = output + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = Companion_Default___.GetAllKeys((_this).Dtor_client(), stdNames, key) + output = _out0 + return output + } +} + +// End of datatype KeySource + +// Definition of datatype SearchInfo +type SearchInfo struct { + Data_SearchInfo_ +} + +func (_this SearchInfo) Get_() Data_SearchInfo_ { + return _this.Data_SearchInfo_ +} + +type Data_SearchInfo_ interface { + isSearchInfo() +} + +type CompanionStruct_SearchInfo_ struct { +} + +var Companion_SearchInfo_ = CompanionStruct_SearchInfo_{} + +type SearchInfo_SearchInfo struct { + Versions _dafny.Sequence + CurrWrite _dafny.Int +} + +func (SearchInfo_SearchInfo) isSearchInfo() {} + +func (CompanionStruct_SearchInfo_) Create_SearchInfo_(Versions _dafny.Sequence, CurrWrite _dafny.Int) SearchInfo { + return SearchInfo{SearchInfo_SearchInfo{Versions, CurrWrite}} +} + +func (_this SearchInfo) Is_SearchInfo() bool { + _, ok := _this.Get_().(SearchInfo_SearchInfo) + return ok +} + +func (CompanionStruct_SearchInfo_) Default() SearchInfo { + return Companion_SearchInfo_.Create_SearchInfo_(_dafny.EmptySeq, _dafny.Zero) +} + +func (_this SearchInfo) Dtor_versions() _dafny.Sequence { + return _this.Get_().(SearchInfo_SearchInfo).Versions +} + +func (_this SearchInfo) Dtor_currWrite() _dafny.Int { + return _this.Get_().(SearchInfo_SearchInfo).CurrWrite +} + +func (_this SearchInfo) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case SearchInfo_SearchInfo: + { + return "SearchableEncryptionInfo.SearchInfo.SearchInfo" + "(" + _dafny.String(data.Versions) + ", " + _dafny.String(data.CurrWrite) + ")" + } + default: + { + return "" + } + } +} + +func (_this SearchInfo) Equals(other SearchInfo) bool { + switch data1 := _this.Get_().(type) { + case SearchInfo_SearchInfo: + { + data2, ok := other.Get_().(SearchInfo_SearchInfo) + return ok && data1.Versions.Equals(data2.Versions) && data1.CurrWrite.Cmp(data2.CurrWrite) == 0 + } + default: + { + return false // unexpected + } + } +} + +func (_this SearchInfo) EqualsGeneric(other interface{}) bool { + typed, ok := other.(SearchInfo) + return ok && _this.Equals(typed) +} + +func Type_SearchInfo_() _dafny.TypeDescriptor { + return type_SearchInfo_{} +} + +type type_SearchInfo_ struct { +} + +func (_this type_SearchInfo_) Default() interface{} { + return Companion_SearchInfo_.Default() +} + +func (_this type_SearchInfo_) String() string { + return "SearchableEncryptionInfo.SearchInfo" +} +func (_this SearchInfo) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = SearchInfo{} + +func (_this SearchInfo) Curr() BeaconVersion { + { + return ((_this).Dtor_versions()).Select(((_this).Dtor_currWrite()).Uint32()).(BeaconVersion) + } +} +func (_this SearchInfo) IsBeacon(field _dafny.Sequence) bool { + { + return (((_this).Dtor_versions()).Select(((_this).Dtor_currWrite()).Uint32()).(BeaconVersion)).IsBeacon(field) + } +} +func (_this SearchInfo) IsVirtualField(field _dafny.Sequence) bool { + { + return (((_this).Dtor_versions()).Select(((_this).Dtor_currWrite()).Uint32()).(BeaconVersion)).IsVirtualField(field) + } +} +func (_this SearchInfo) GeneratePlainBeacons(item _dafny.Map) m_Wrappers.Result { + { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptyMap) + _ = output + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = (((_this).Dtor_versions()).Select(((_this).Dtor_currWrite()).Uint32()).(BeaconVersion)).GeneratePlainBeacons(item) + output = _out0 + return output + } +} +func (_this SearchInfo) GenerateSignedBeacons(item _dafny.Map) m_Wrappers.Result { + { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptyMap) + _ = output + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = (((_this).Dtor_versions()).Select(((_this).Dtor_currWrite()).Uint32()).(BeaconVersion)).GenerateSignedBeacons(item) + output = _out0 + return output + } +} +func (_this SearchInfo) GenerateEncryptedBeacons(item _dafny.Map, keyId m_DynamoDbEncryptionUtil.MaybeKeyId) m_Wrappers.Result { + { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptyMap) + _ = output + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = (((_this).Dtor_versions()).Select(((_this).Dtor_currWrite()).Uint32()).(BeaconVersion)).GenerateEncryptedBeacons(item, keyId) + output = _out0 + return output + } +} + +// End of datatype SearchInfo + +// Definition of datatype Beacon +type Beacon struct { + Data_Beacon_ +} + +func (_this Beacon) Get_() Data_Beacon_ { + return _this.Data_Beacon_ +} + +type Data_Beacon_ interface { + isBeacon() +} + +type CompanionStruct_Beacon_ struct { +} + +var Companion_Beacon_ = CompanionStruct_Beacon_{} + +type Beacon_Standard struct { + Std m_BaseBeacon.StandardBeacon +} + +func (Beacon_Standard) isBeacon() {} + +func (CompanionStruct_Beacon_) Create_Standard_(Std m_BaseBeacon.StandardBeacon) Beacon { + return Beacon{Beacon_Standard{Std}} +} + +func (_this Beacon) Is_Standard() bool { + _, ok := _this.Get_().(Beacon_Standard) + return ok +} + +type Beacon_Compound struct { + Cmp m_CompoundBeacon.CompoundBeacon +} + +func (Beacon_Compound) isBeacon() {} + +func (CompanionStruct_Beacon_) Create_Compound_(Cmp m_CompoundBeacon.CompoundBeacon) Beacon { + return Beacon{Beacon_Compound{Cmp}} +} + +func (_this Beacon) Is_Compound() bool { + _, ok := _this.Get_().(Beacon_Compound) + return ok +} + +func (CompanionStruct_Beacon_) Default() Beacon { + return Companion_Beacon_.Create_Standard_(m_BaseBeacon.Companion_StandardBeacon_.Default()) +} + +func (_this Beacon) Dtor_std() m_BaseBeacon.StandardBeacon { + return _this.Get_().(Beacon_Standard).Std +} + +func (_this Beacon) Dtor_cmp() m_CompoundBeacon.CompoundBeacon { + return _this.Get_().(Beacon_Compound).Cmp +} + +func (_this Beacon) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case Beacon_Standard: + { + return "SearchableEncryptionInfo.Beacon.Standard" + "(" + _dafny.String(data.Std) + ")" + } + case Beacon_Compound: + { + return "SearchableEncryptionInfo.Beacon.Compound" + "(" + _dafny.String(data.Cmp) + ")" + } + default: + { + return "" + } + } +} + +func (_this Beacon) Equals(other Beacon) bool { + switch data1 := _this.Get_().(type) { + case Beacon_Standard: + { + data2, ok := other.Get_().(Beacon_Standard) + return ok && data1.Std.Equals(data2.Std) + } + case Beacon_Compound: + { + data2, ok := other.Get_().(Beacon_Compound) + return ok && data1.Cmp.Equals(data2.Cmp) + } + default: + { + return false // unexpected + } + } +} + +func (_this Beacon) EqualsGeneric(other interface{}) bool { + typed, ok := other.(Beacon) + return ok && _this.Equals(typed) +} + +func Type_Beacon_() _dafny.TypeDescriptor { + return type_Beacon_{} +} + +type type_Beacon_ struct { +} + +func (_this type_Beacon_) Default() interface{} { + return Companion_Beacon_.Default() +} + +func (_this type_Beacon_) String() string { + return "SearchableEncryptionInfo.Beacon" +} +func (_this Beacon) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = Beacon{} + +func (_this Beacon) IsEncrypted() bool { + { + if (_this).Is_Standard() { + return true + } else { + return ((_this).Dtor_cmp()).IsEncrypted() + } + } +} +func (_this Beacon) Hash(item _dafny.Map, vf _dafny.Map, keys m_DynamoDbEncryptionUtil.MaybeKeyMap) m_Wrappers.Result { + { + if (_this).Is_Standard() { + var _0_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need((keys).Is_Keys(), m_DynamoDbEncryptionUtil.Companion_Default___.E(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.SeqOfString("Need key for beacon "), ((_this).Dtor_std()).KeyName()), _dafny.SeqOfString(" but no keyId found in query.")))) + _ = _0_valueOrError0 + if (_0_valueOrError0).IsFailure() { + return (_0_valueOrError0).PropagateFailure() + } else if ((keys).Dtor_value()).Contains(((_this).Dtor_std()).KeyName()) { + return ((_this).Dtor_std()).GetHash(item, vf, ((keys).Dtor_value()).Get(((_this).Dtor_std()).KeyName()).(_dafny.Sequence)) + } else { + return m_Wrappers.Companion_Result_.Create_Failure_(m_DynamoDbEncryptionUtil.Companion_Default___.E(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.SeqOfString("Internal error. Beacon "), ((_this).Dtor_std()).KeyName()), _dafny.SeqOfString(" has no key!")))) + } + } else { + var _1_valueOrError1 m_Wrappers.Result = ((_this).Dtor_cmp()).Hash(item, vf, keys) + _ = _1_valueOrError1 + if (_1_valueOrError1).IsFailure() { + return (_1_valueOrError1).PropagateFailure() + } else { + var _2_strHash m_Wrappers.Option = (_1_valueOrError1).Extract().(m_Wrappers.Option) + _ = _2_strHash + if (_2_strHash).Is_None() { + return m_Wrappers.Companion_Result_.Create_Success_(m_Wrappers.Companion_Option_.Create_None_()) + } else { + return m_Wrappers.Companion_Result_.Create_Success_(m_Wrappers.Companion_Option_.Create_Some_(m_ComAmazonawsDynamodbTypes.Companion_AttributeValue_.Create_S_((_2_strHash).Dtor_value().(_dafny.Sequence)))) + } + } + } + } +} +func (_this Beacon) Naked(item _dafny.Map, vf _dafny.Map) m_Wrappers.Result { + { + if (_this).Is_Standard() { + return ((_this).Dtor_std()).GetNaked(item, vf) + } else { + var _0_valueOrError0 m_Wrappers.Result = ((_this).Dtor_cmp()).GetNaked(item, vf) + _ = _0_valueOrError0 + if (_0_valueOrError0).IsFailure() { + return (_0_valueOrError0).PropagateFailure() + } else { + var _1_str m_Wrappers.Option = (_0_valueOrError0).Extract().(m_Wrappers.Option) + _ = _1_str + if (_1_str).Is_None() { + return m_Wrappers.Companion_Result_.Create_Success_(m_Wrappers.Companion_Option_.Create_None_()) + } else { + return m_Wrappers.Companion_Result_.Create_Success_(m_Wrappers.Companion_Option_.Create_Some_(m_DdbVirtualFields.Companion_Default___.DS((_1_str).Dtor_value().(_dafny.Sequence)))) + } + } + } + } +} +func (_this Beacon) AttrHash(item _dafny.Map, vf _dafny.Map, keys m_DynamoDbEncryptionUtil.MaybeKeyMap) m_Wrappers.Result { + { + if (keys).Is_DontUseKeys() { + return (_this).Naked(item, vf) + } else { + return (_this).Hash(item, vf, keys) + } + } +} +func (_this Beacon) GetName() _dafny.Sequence { + { + if (_this).Is_Standard() { + return (((_this).Dtor_std()).Dtor_base()).Dtor_name() + } else { + return (((_this).Dtor_cmp()).Dtor_base()).Dtor_name() + } + } +} +func (_this Beacon) GetBeaconName() _dafny.Sequence { + { + if (_this).Is_Standard() { + return (((_this).Dtor_std()).Dtor_base()).Dtor_beaconName() + } else { + return (((_this).Dtor_cmp()).Dtor_base()).Dtor_beaconName() + } + } +} +func (_this Beacon) GetFields(virtualFields _dafny.Map) _dafny.Sequence { + { + if (_this).Is_Standard() { + return ((_this).Dtor_std()).GetFields(virtualFields) + } else { + return ((_this).Dtor_cmp()).GetFields(virtualFields) + } + } +} +func (_this Beacon) GetBeaconValue(value m_ComAmazonawsDynamodbTypes.AttributeValue, keys m_DynamoDbEncryptionUtil.MaybeKeyMap, forEquality bool, forContains bool) m_Wrappers.Result { + { + if (keys).Is_DontUseKeys() { + return m_Wrappers.Companion_Result_.Create_Success_(value) + } else if (_this).Is_Standard() { + var _0_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need(!((keys).Is_ShouldHaveKeys()), m_DynamoDbEncryptionUtil.Companion_Default___.E(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.SeqOfString("Need KeyId because of beacon "), ((_this).Dtor_std()).KeyName()), _dafny.SeqOfString(" but no KeyId found in query")))) + _ = _0_valueOrError0 + if (_0_valueOrError0).IsFailure() { + return (_0_valueOrError0).PropagateFailure() + } else { + var _1_keys _dafny.Map = (keys).Dtor_value() + _ = _1_keys + if (_1_keys).Contains(((_this).Dtor_std()).KeyName()) { + return ((_this).Dtor_std()).GetBeaconValue(value, (_1_keys).Get(((_this).Dtor_std()).KeyName()).(_dafny.Sequence), forContains) + } else { + return m_Wrappers.Companion_Result_.Create_Failure_(m_DynamoDbEncryptionUtil.Companion_Default___.E(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.SeqOfString("Internal error. Beacon "), ((_this).Dtor_std()).KeyName()), _dafny.SeqOfString(" has no key.")))) + } + } + } else { + return ((_this).Dtor_cmp()).GetBeaconValue(value, keys, forEquality) + } + } +} + +// End of datatype Beacon + +// Definition of class BeaconMap +type BeaconMap struct { +} + +func New_BeaconMap_() *BeaconMap { + _this := BeaconMap{} + + return &_this +} + +type CompanionStruct_BeaconMap_ struct { +} + +var Companion_BeaconMap_ = CompanionStruct_BeaconMap_{} + +func (*BeaconMap) String() string { + return "SearchableEncryptionInfo.BeaconMap" +} + +// End of class BeaconMap + +func Type_BeaconMap_() _dafny.TypeDescriptor { + return type_BeaconMap_{} +} + +type type_BeaconMap_ struct { +} + +func (_this type_BeaconMap_) Default() interface{} { + return _dafny.EmptyMap +} + +func (_this type_BeaconMap_) String() string { + return "SearchableEncryptionInfo.BeaconMap" +} + +// Definition of datatype BeaconType +type BeaconType struct { + Data_BeaconType_ +} + +func (_this BeaconType) Get_() Data_BeaconType_ { + return _this.Data_BeaconType_ +} + +type Data_BeaconType_ interface { + isBeaconType() +} + +type CompanionStruct_BeaconType_ struct { +} + +var Companion_BeaconType_ = CompanionStruct_BeaconType_{} + +type BeaconType_AnyBeacon struct { +} + +func (BeaconType_AnyBeacon) isBeaconType() {} + +func (CompanionStruct_BeaconType_) Create_AnyBeacon_() BeaconType { + return BeaconType{BeaconType_AnyBeacon{}} +} + +func (_this BeaconType) Is_AnyBeacon() bool { + _, ok := _this.Get_().(BeaconType_AnyBeacon) + return ok +} + +type BeaconType_SignedBeacon struct { +} + +func (BeaconType_SignedBeacon) isBeaconType() {} + +func (CompanionStruct_BeaconType_) Create_SignedBeacon_() BeaconType { + return BeaconType{BeaconType_SignedBeacon{}} +} + +func (_this BeaconType) Is_SignedBeacon() bool { + _, ok := _this.Get_().(BeaconType_SignedBeacon) + return ok +} + +type BeaconType_EncryptedBeacon struct { +} + +func (BeaconType_EncryptedBeacon) isBeaconType() {} + +func (CompanionStruct_BeaconType_) Create_EncryptedBeacon_() BeaconType { + return BeaconType{BeaconType_EncryptedBeacon{}} +} + +func (_this BeaconType) Is_EncryptedBeacon() bool { + _, ok := _this.Get_().(BeaconType_EncryptedBeacon) + return ok +} + +func (CompanionStruct_BeaconType_) Default() BeaconType { + return Companion_BeaconType_.Create_AnyBeacon_() +} + +func (_ CompanionStruct_BeaconType_) AllSingletonConstructors() _dafny.Iterator { + i := -1 + return func() (interface{}, bool) { + i++ + switch i { + case 0: + return Companion_BeaconType_.Create_AnyBeacon_(), true + case 1: + return Companion_BeaconType_.Create_SignedBeacon_(), true + case 2: + return Companion_BeaconType_.Create_EncryptedBeacon_(), true + default: + return BeaconType{}, false + } + } +} + +func (_this BeaconType) String() string { + switch _this.Get_().(type) { + case nil: + return "null" + case BeaconType_AnyBeacon: + { + return "SearchableEncryptionInfo.BeaconType.AnyBeacon" + } + case BeaconType_SignedBeacon: + { + return "SearchableEncryptionInfo.BeaconType.SignedBeacon" + } + case BeaconType_EncryptedBeacon: + { + return "SearchableEncryptionInfo.BeaconType.EncryptedBeacon" + } + default: + { + return "" + } + } +} + +func (_this BeaconType) Equals(other BeaconType) bool { + switch _this.Get_().(type) { + case BeaconType_AnyBeacon: + { + _, ok := other.Get_().(BeaconType_AnyBeacon) + return ok + } + case BeaconType_SignedBeacon: + { + _, ok := other.Get_().(BeaconType_SignedBeacon) + return ok + } + case BeaconType_EncryptedBeacon: + { + _, ok := other.Get_().(BeaconType_EncryptedBeacon) + return ok + } + default: + { + return false // unexpected + } + } +} + +func (_this BeaconType) EqualsGeneric(other interface{}) bool { + typed, ok := other.(BeaconType) + return ok && _this.Equals(typed) +} + +func Type_BeaconType_() _dafny.TypeDescriptor { + return type_BeaconType_{} +} + +type type_BeaconType_ struct { +} + +func (_this type_BeaconType_) Default() interface{} { + return Companion_BeaconType_.Default() +} + +func (_this type_BeaconType_) String() string { + return "SearchableEncryptionInfo.BeaconType" +} +func (_this BeaconType) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = BeaconType{} + +// End of datatype BeaconType + +// Definition of class ValidBeaconVersion +type ValidBeaconVersion struct { +} + +func New_ValidBeaconVersion_() *ValidBeaconVersion { + _this := ValidBeaconVersion{} + + return &_this +} + +type CompanionStruct_ValidBeaconVersion_ struct { +} + +var Companion_ValidBeaconVersion_ = CompanionStruct_ValidBeaconVersion_{} + +func (*ValidBeaconVersion) String() string { + return "SearchableEncryptionInfo.ValidBeaconVersion" +} + +// End of class ValidBeaconVersion + +func Type_ValidBeaconVersion_() _dafny.TypeDescriptor { + return type_ValidBeaconVersion_{} +} + +type type_ValidBeaconVersion_ struct { +} + +func (_this type_ValidBeaconVersion_) Default() interface{} { + return Companion_BeaconVersion_.Default() +} + +func (_this type_ValidBeaconVersion_) String() string { + return "SearchableEncryptionInfo.ValidBeaconVersion" +} + +// Definition of datatype BeaconVersion +type BeaconVersion struct { + Data_BeaconVersion_ +} + +func (_this BeaconVersion) Get_() Data_BeaconVersion_ { + return _this.Data_BeaconVersion_ +} + +type Data_BeaconVersion_ interface { + isBeaconVersion() +} + +type CompanionStruct_BeaconVersion_ struct { +} + +var Companion_BeaconVersion_ = CompanionStruct_BeaconVersion_{} + +type BeaconVersion_BeaconVersion struct { + Version uint8 + KeySource KeySource + VirtualFields _dafny.Map + Beacons _dafny.Map + BeaconNames _dafny.Sequence + StdNames _dafny.Sequence + EncryptedFields _dafny.Set +} + +func (BeaconVersion_BeaconVersion) isBeaconVersion() {} + +func (CompanionStruct_BeaconVersion_) Create_BeaconVersion_(Version uint8, KeySource KeySource, VirtualFields _dafny.Map, Beacons _dafny.Map, BeaconNames _dafny.Sequence, StdNames _dafny.Sequence, EncryptedFields _dafny.Set) BeaconVersion { + return BeaconVersion{BeaconVersion_BeaconVersion{Version, KeySource, VirtualFields, Beacons, BeaconNames, StdNames, EncryptedFields}} +} + +func (_this BeaconVersion) Is_BeaconVersion() bool { + _, ok := _this.Get_().(BeaconVersion_BeaconVersion) + return ok +} + +func (CompanionStruct_BeaconVersion_) Default() BeaconVersion { + return Companion_BeaconVersion_.Create_BeaconVersion_(Companion_VersionNumber_.Witness(), Companion_KeySource_.Default(), _dafny.EmptyMap, _dafny.EmptyMap, _dafny.EmptySeq, _dafny.EmptySeq, _dafny.EmptySet) +} + +func (_this BeaconVersion) Dtor_version() uint8 { + return _this.Get_().(BeaconVersion_BeaconVersion).Version +} + +func (_this BeaconVersion) Dtor_keySource() KeySource { + return _this.Get_().(BeaconVersion_BeaconVersion).KeySource +} + +func (_this BeaconVersion) Dtor_virtualFields() _dafny.Map { + return _this.Get_().(BeaconVersion_BeaconVersion).VirtualFields +} + +func (_this BeaconVersion) Dtor_beacons() _dafny.Map { + return _this.Get_().(BeaconVersion_BeaconVersion).Beacons +} + +func (_this BeaconVersion) Dtor_beaconNames() _dafny.Sequence { + return _this.Get_().(BeaconVersion_BeaconVersion).BeaconNames +} + +func (_this BeaconVersion) Dtor_stdNames() _dafny.Sequence { + return _this.Get_().(BeaconVersion_BeaconVersion).StdNames +} + +func (_this BeaconVersion) Dtor_encryptedFields() _dafny.Set { + return _this.Get_().(BeaconVersion_BeaconVersion).EncryptedFields +} + +func (_this BeaconVersion) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case BeaconVersion_BeaconVersion: + { + return "SearchableEncryptionInfo.BeaconVersion.BeaconVersion" + "(" + _dafny.String(data.Version) + ", " + _dafny.String(data.KeySource) + ", " + _dafny.String(data.VirtualFields) + ", " + _dafny.String(data.Beacons) + ", " + _dafny.String(data.BeaconNames) + ", " + _dafny.String(data.StdNames) + ", " + _dafny.String(data.EncryptedFields) + ")" + } + default: + { + return "" + } + } +} + +func (_this BeaconVersion) Equals(other BeaconVersion) bool { + switch data1 := _this.Get_().(type) { + case BeaconVersion_BeaconVersion: + { + data2, ok := other.Get_().(BeaconVersion_BeaconVersion) + return ok && data1.Version == data2.Version && data1.KeySource.Equals(data2.KeySource) && data1.VirtualFields.Equals(data2.VirtualFields) && data1.Beacons.Equals(data2.Beacons) && data1.BeaconNames.Equals(data2.BeaconNames) && data1.StdNames.Equals(data2.StdNames) && data1.EncryptedFields.Equals(data2.EncryptedFields) + } + default: + { + return false // unexpected + } + } +} + +func (_this BeaconVersion) EqualsGeneric(other interface{}) bool { + typed, ok := other.(BeaconVersion) + return ok && _this.Equals(typed) +} + +func Type_BeaconVersion_() _dafny.TypeDescriptor { + return type_BeaconVersion_{} +} + +type type_BeaconVersion_ struct { +} + +func (_this type_BeaconVersion_) Default() interface{} { + return Companion_BeaconVersion_.Default() +} + +func (_this type_BeaconVersion_) String() string { + return "SearchableEncryptionInfo.BeaconVersion" +} +func (_this BeaconVersion) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = BeaconVersion{} + +func (_this BeaconVersion) IsBeacon(field _dafny.Sequence) bool { + { + return ((_this).Dtor_beacons()).Contains(field) + } +} +func (_this BeaconVersion) IsVirtualField(field _dafny.Sequence) bool { + { + return ((_this).Dtor_virtualFields()).Contains(field) + } +} +func (_this BeaconVersion) GetFields(field _dafny.Sequence) _dafny.Sequence { + { + if (_this).IsBeacon(field) { + return _dafny.Companion_Sequence_.Concatenate((((_this).Dtor_beacons()).Get(field).(Beacon)).GetFields((_this).Dtor_virtualFields()), _dafny.SeqOf(_dafny.Companion_Sequence_.Concatenate(_dafny.SeqOfString("aws_dbe_b_"), field))) + } else { + return _dafny.SeqOf(field) + } + } +} +func (_this BeaconVersion) GetKeyMap(keyId m_DynamoDbEncryptionUtil.MaybeKeyId) m_Wrappers.Result { + { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_DynamoDbEncryptionUtil.Companion_MaybeKeyMap_.Default()) + _ = output + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = ((_this).Dtor_keySource()).GetKeyMap((_this).Dtor_stdNames(), keyId) + output = _out0 + return output + } +} +func (_this BeaconVersion) ListSignedBeacons() _dafny.Sequence { + { + return m_Seq.Companion_Default___.Filter(func(coer106 func(_dafny.Sequence) bool) func(interface{}) bool { + return func(arg131 interface{}) bool { + return coer106(arg131.(_dafny.Sequence)) + } + }(func(_0_s _dafny.Sequence) bool { + return Companion_Default___.IsBeaconOfType(((_this).Dtor_beacons()).Get(_0_s).(Beacon), Companion_BeaconType_.Create_SignedBeacon_()) + }), (_this).Dtor_beaconNames()) + } +} +func (_this BeaconVersion) GeneratePlainBeacons(item _dafny.Map) m_Wrappers.Result { + { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptyMap) + _ = output + output = (_this).GenerateBeacons2((_this).Dtor_beaconNames(), item, m_DynamoDbEncryptionUtil.Companion_MaybeKeyMap_.Create_DontUseKeys_(), Companion_BeaconType_.Create_AnyBeacon_(), _dafny.NewMapBuilder().ToMap()) + return output + } +} +func (_this BeaconVersion) GenerateSignedBeacons(item _dafny.Map) m_Wrappers.Result { + { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptyMap) + _ = output + output = (_this).GenerateBeacons2((_this).Dtor_beaconNames(), item, m_DynamoDbEncryptionUtil.Companion_MaybeKeyMap_.Create_DontUseKeys_(), Companion_BeaconType_.Create_SignedBeacon_(), _dafny.NewMapBuilder().ToMap()) + return output + } +} +func (_this BeaconVersion) GenerateEncryptedBeacons(item _dafny.Map, keyId m_DynamoDbEncryptionUtil.MaybeKeyId) m_Wrappers.Result { + { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptyMap) + _ = output + var _0_valueOrError0 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_DynamoDbEncryptionUtil.Companion_MaybeKeyMap_.Default()) + _ = _0_valueOrError0 + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = (_this).GetKeyMap(keyId) + _0_valueOrError0 = _out0 + if (_0_valueOrError0).IsFailure() { + output = (_0_valueOrError0).PropagateFailure() + return output + } + var _1_hmacKeys m_DynamoDbEncryptionUtil.MaybeKeyMap + _ = _1_hmacKeys + _1_hmacKeys = (_0_valueOrError0).Extract().(m_DynamoDbEncryptionUtil.MaybeKeyMap) + output = (_this).GenerateBeacons2((_this).Dtor_beaconNames(), item, _1_hmacKeys, Companion_BeaconType_.Create_EncryptedBeacon_(), _dafny.NewMapBuilder().ToMap()) + return output + } +} +func (_this BeaconVersion) GenerateBeacon(name _dafny.Sequence, item _dafny.Map, keys m_DynamoDbEncryptionUtil.MaybeKeyMap) m_Wrappers.Result { + { + return (((_this).Dtor_beacons()).Get(name).(Beacon)).AttrHash(item, (_this).Dtor_virtualFields(), keys) + } +} +func (_this BeaconVersion) GenerateBeacons2(names _dafny.Sequence, item _dafny.Map, keys m_DynamoDbEncryptionUtil.MaybeKeyMap, bType BeaconType, acc _dafny.Map) m_Wrappers.Result { + { + goto TAIL_CALL_START + TAIL_CALL_START: + if (_dafny.IntOfUint32((names).Cardinality())).Sign() == 0 { + return m_Wrappers.Companion_Result_.Create_Success_(acc) + } else if (Companion_Default___.IsBeaconOfType(((_this).Dtor_beacons()).Get((names).Select(0).(_dafny.Sequence)).(Beacon), bType)) && (!(Companion_Default___.IsPartOnly(((_this).Dtor_beacons()).Get((names).Select(0).(_dafny.Sequence)).(Beacon)))) { + var _0_valueOrError0 m_Wrappers.Result = (_this).GenerateBeacon((names).Select(0).(_dafny.Sequence), item, keys) + _ = _0_valueOrError0 + if (_0_valueOrError0).IsFailure() { + return (_0_valueOrError0).PropagateFailure() + } else { + var _1_value m_Wrappers.Option = (_0_valueOrError0).Extract().(m_Wrappers.Option) + _ = _1_value + if (_1_value).Is_Some() { + var _in0 BeaconVersion = _this + _ = _in0 + var _in1 _dafny.Sequence = (names).Drop(1) + _ = _in1 + var _in2 _dafny.Map = item + _ = _in2 + var _in3 m_DynamoDbEncryptionUtil.MaybeKeyMap = keys + _ = _in3 + var _in4 BeaconType = bType + _ = _in4 + var _in5 _dafny.Map = (acc).Update((((_this).Dtor_beacons()).Get((names).Select(0).(_dafny.Sequence)).(Beacon)).GetBeaconName(), (_1_value).Dtor_value().(m_ComAmazonawsDynamodbTypes.AttributeValue)) + _ = _in5 + _this = _in0 + + names = _in1 + item = _in2 + keys = _in3 + bType = _in4 + acc = _in5 + goto TAIL_CALL_START + } else { + var _in6 BeaconVersion = _this + _ = _in6 + var _in7 _dafny.Sequence = (names).Drop(1) + _ = _in7 + var _in8 _dafny.Map = item + _ = _in8 + var _in9 m_DynamoDbEncryptionUtil.MaybeKeyMap = keys + _ = _in9 + var _in10 BeaconType = bType + _ = _in10 + var _in11 _dafny.Map = acc + _ = _in11 + _this = _in6 + + names = _in7 + item = _in8 + keys = _in9 + bType = _in10 + acc = _in11 + goto TAIL_CALL_START + } + } + } else { + var _in12 BeaconVersion = _this + _ = _in12 + var _in13 _dafny.Sequence = (names).Drop(1) + _ = _in13 + var _in14 _dafny.Map = item + _ = _in14 + var _in15 m_DynamoDbEncryptionUtil.MaybeKeyMap = keys + _ = _in15 + var _in16 BeaconType = bType + _ = _in16 + var _in17 _dafny.Map = acc + _ = _in17 + _this = _in12 + + names = _in13 + item = _in14 + keys = _in15 + bType = _in16 + acc = _in17 + goto TAIL_CALL_START + } + } +} + +// End of datatype BeaconVersion diff --git a/customer-preview/ddb-esdk/Sets/Sets.go b/customer-preview/ddb-esdk/Sets/Sets.go new file mode 100644 index 000000000..a976f53b0 --- /dev/null +++ b/customer-preview/ddb-esdk/Sets/Sets.go @@ -0,0 +1,349 @@ +// Package Sets +// Dafny module Sets compiled into Go + +package Sets + +import ( + os "os" + + m_ComAmazonawsDynamodbTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/ComAmazonawsDynamodbTypes" + m_Com_Amazonaws_Dynamodb "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/Com_Amazonaws_Dynamodb" + m_ComAmazonawsKmsTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/ComAmazonawsKmsTypes" + m_Com_Amazonaws_Kms "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/Com_Amazonaws_Kms" + m_AlgorithmSuites "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AlgorithmSuites" + m_AwsArnParsing "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsArnParsing" + m_AwsCryptographyKeyStoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreOperations" + m_AwsCryptographyKeyStoreTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreTypes" + m_AwsCryptographyMaterialProvidersOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersOperations" + m_AwsCryptographyMaterialProvidersTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersTypes" + m_AwsKmsDiscoveryKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsDiscoveryKeyring" + m_AwsKmsEcdhKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsEcdhKeyring" + m_AwsKmsHierarchicalKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsHierarchicalKeyring" + m_AwsKmsKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsKeyring" + m_AwsKmsMrkAreUnique "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkAreUnique" + m_AwsKmsMrkDiscoveryKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkDiscoveryKeyring" + m_AwsKmsMrkKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkKeyring" + m_AwsKmsMrkMatchForDecrypt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkMatchForDecrypt" + m_AwsKmsRsaKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsRsaKeyring" + m_AwsKmsUtils "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsUtils" + m_CMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CMM" + m_CacheConstants "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CacheConstants" + m_CanonicalEncryptionContext "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CanonicalEncryptionContext" + m_Commitment "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Commitment" + m_Constants "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Constants" + m_CreateKeyStoreTable "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeyStoreTable" + m_CreateKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeys" + m_DDBKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DDBKeystoreOperations" + m_DefaultCMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DefaultCMM" + m_DefaultClientSupplier "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DefaultClientSupplier" + m_Defaults "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Defaults" + m_DiscoveryMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DiscoveryMultiKeyring" + m_EcdhEdkWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/EcdhEdkWrapping" + m_EdkWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/EdkWrapping" + m_ErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/ErrorMessages" + m_GetKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/GetKeys" + m_IntermediateKeyWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/IntermediateKeyWrapping" + m_KMSKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KMSKeystoreOperations" + m_KeyStore "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStore" + m_KeyStoreErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStoreErrorMessages" + m_Keyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Keyring" + m_KmsArn "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KmsArn" + m_LocalCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/LocalCMC" + m_MaterialProviders "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MaterialProviders" + m_MaterialWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MaterialWrapping" + m_Materials "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Materials" + m_MrkAwareDiscoveryMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MrkAwareDiscoveryMultiKeyring" + m_MrkAwareStrictMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MrkAwareStrictMultiKeyring" + m_MultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MultiKeyring" + m_RawAESKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawAESKeyring" + m_RawECDHKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawECDHKeyring" + m_RawRSAKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawRSAKeyring" + m_RequiredEncryptionContextCMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RequiredEncryptionContextCMM" + m_StormTracker "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StormTracker" + m_StormTrackingCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StormTrackingCMC" + m_StrictMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StrictMultiKeyring" + m_Structure "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Structure" + m_SynchronizedLocalCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/SynchronizedLocalCMC" + m_Utils "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Utils" + m_AtomicPrimitives "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AtomicPrimitives" + m_AwsCryptographyPrimitivesOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesOperations" + m_AwsCryptographyPrimitivesTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesTypes" + m_Digest "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Digest" + m_HKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/HKDF" + m_KdfCtr "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/KdfCtr" + m_Random "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Random" + m_WrappedHKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHKDF" + m_WrappedHMAC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHMAC" + m_Actions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Actions" + m_Base64 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64" + m_Base64Lemmas "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64Lemmas" + m_BoundedInts "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/BoundedInts" + m_DivInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternals" + m_DivInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternalsNonlinear" + m_DivMod "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivMod" + m_FileIO "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FileIO" + m_FloatCompare "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FloatCompare" + m_Functions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Functions" + m_GeneralInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GeneralInternals" + m_GetOpt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GetOpt" + m_HexStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/HexStrings" + m_Logarithm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Logarithm" + m__Math "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Math_" + m_ModInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternals" + m_ModInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternalsNonlinear" + m_Mul "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Mul" + m_MulInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternals" + m_MulInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternalsNonlinear" + m_Power "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Power" + m_Relations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Relations" + m_Seq "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq" + m_Seq_MergeSort "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq_MergeSort" + m_Sorting "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Sorting" + m_StandardLibrary "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary" + m_StandardLibraryInterop "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibraryInterop" + m_StandardLibrary_Sequence "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_Sequence" + m_StandardLibrary_String "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_String" + m_StandardLibrary_UInt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_UInt" + m_Streams "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Streams" + m_UnicodeStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UnicodeStrings" + m__Unicode "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Unicode_" + m_Utf16EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf16EncodingForm" + m_Utf8EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf8EncodingForm" + m_Wrappers "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers" + m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes" + m_StructuredEncryptionUtil "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionUtil" + m__System "github.com/dafny-lang/DafnyRuntimeGo/v4/System_" + _dafny "github.com/dafny-lang/DafnyRuntimeGo/v4/dafny" +) + +var _ = os.Args +var _ _dafny.Dummy__ +var _ m__System.Dummy__ +var _ m_Wrappers.Dummy__ +var _ m_BoundedInts.Dummy__ +var _ m_StandardLibrary_UInt.Dummy__ +var _ m_StandardLibrary_Sequence.Dummy__ +var _ m_StandardLibrary_String.Dummy__ +var _ m_StandardLibrary.Dummy__ +var _ m_AwsCryptographyPrimitivesTypes.Dummy__ +var _ m_Random.Dummy__ +var _ m_Digest.Dummy__ +var _ m_WrappedHMAC.Dummy__ +var _ m_HKDF.Dummy__ +var _ m_WrappedHKDF.Dummy__ +var _ m_KdfCtr.Dummy__ +var _ m_AwsCryptographyPrimitivesOperations.Dummy__ +var _ m_AtomicPrimitives.Dummy__ +var _ m_ComAmazonawsDynamodbTypes.Dummy__ +var _ m_ComAmazonawsKmsTypes.Dummy__ +var _ m_AwsCryptographyKeyStoreTypes.Dummy__ +var _ m_AwsCryptographyMaterialProvidersTypes.Dummy__ +var _ m_Base64.Dummy__ +var _ m_AlgorithmSuites.Dummy__ +var _ m_Materials.Dummy__ +var _ m_Keyring.Dummy__ +var _ m_Relations.Dummy__ +var _ m_Seq_MergeSort.Dummy__ +var _ m__Math.Dummy__ +var _ m_Seq.Dummy__ +var _ m_MultiKeyring.Dummy__ +var _ m_AwsArnParsing.Dummy__ +var _ m_AwsKmsMrkAreUnique.Dummy__ +var _ m_Actions.Dummy__ +var _ m_AwsKmsMrkMatchForDecrypt.Dummy__ +var _ m_AwsKmsUtils.Dummy__ +var _ m_Constants.Dummy__ +var _ m_MaterialWrapping.Dummy__ +var _ m_CanonicalEncryptionContext.Dummy__ +var _ m_IntermediateKeyWrapping.Dummy__ +var _ m_EdkWrapping.Dummy__ +var _ m_ErrorMessages.Dummy__ +var _ m_AwsKmsKeyring.Dummy__ +var _ m_StrictMultiKeyring.Dummy__ +var _ m_AwsKmsDiscoveryKeyring.Dummy__ +var _ m_Com_Amazonaws_Kms.Dummy__ +var _ m_Com_Amazonaws_Dynamodb.Dummy__ +var _ m_DiscoveryMultiKeyring.Dummy__ +var _ m_AwsKmsMrkDiscoveryKeyring.Dummy__ +var _ m_MrkAwareDiscoveryMultiKeyring.Dummy__ +var _ m_AwsKmsMrkKeyring.Dummy__ +var _ m_MrkAwareStrictMultiKeyring.Dummy__ +var _ m_LocalCMC.Dummy__ +var _ m_SynchronizedLocalCMC.Dummy__ +var _ m_StormTracker.Dummy__ +var _ m_StormTrackingCMC.Dummy__ +var _ m_CacheConstants.Dummy__ +var _ m_AwsKmsHierarchicalKeyring.Dummy__ +var _ m_AwsKmsRsaKeyring.Dummy__ +var _ m_EcdhEdkWrapping.Dummy__ +var _ m_RawECDHKeyring.Dummy__ +var _ m_AwsKmsEcdhKeyring.Dummy__ +var _ m_RawAESKeyring.Dummy__ +var _ m_RawRSAKeyring.Dummy__ +var _ m_CMM.Dummy__ +var _ m_Defaults.Dummy__ +var _ m_Commitment.Dummy__ +var _ m_DefaultCMM.Dummy__ +var _ m_DefaultClientSupplier.Dummy__ +var _ m_Utils.Dummy__ +var _ m_RequiredEncryptionContextCMM.Dummy__ +var _ m_AwsCryptographyMaterialProvidersOperations.Dummy__ +var _ m_MaterialProviders.Dummy__ +var _ m_KeyStoreErrorMessages.Dummy__ +var _ m_KmsArn.Dummy__ +var _ m_Structure.Dummy__ +var _ m_KMSKeystoreOperations.Dummy__ +var _ m_DDBKeystoreOperations.Dummy__ +var _ m_CreateKeys.Dummy__ +var _ m_CreateKeyStoreTable.Dummy__ +var _ m_GetKeys.Dummy__ +var _ m_AwsCryptographyKeyStoreOperations.Dummy__ +var _ m_KeyStore.Dummy__ +var _ m__Unicode.Dummy__ +var _ m_Functions.Dummy__ +var _ m_Utf8EncodingForm.Dummy__ +var _ m_Utf16EncodingForm.Dummy__ +var _ m_UnicodeStrings.Dummy__ +var _ m_FileIO.Dummy__ +var _ m_GeneralInternals.Dummy__ +var _ m_MulInternalsNonlinear.Dummy__ +var _ m_MulInternals.Dummy__ +var _ m_Mul.Dummy__ +var _ m_ModInternalsNonlinear.Dummy__ +var _ m_DivInternalsNonlinear.Dummy__ +var _ m_ModInternals.Dummy__ +var _ m_DivInternals.Dummy__ +var _ m_DivMod.Dummy__ +var _ m_Power.Dummy__ +var _ m_Logarithm.Dummy__ +var _ m_StandardLibraryInterop.Dummy__ +var _ m_Streams.Dummy__ +var _ m_Sorting.Dummy__ +var _ m_HexStrings.Dummy__ +var _ m_GetOpt.Dummy__ +var _ m_FloatCompare.Dummy__ +var _ m_Base64Lemmas.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Dummy__ +var _ m_StructuredEncryptionUtil.Dummy__ + +type Dummy__ struct{} + +// Definition of class Default__ +type Default__ struct { + dummy byte +} + +func New_Default___() *Default__ { + _this := Default__{} + + return &_this +} + +type CompanionStruct_Default___ struct { +} + +var Companion_Default___ = CompanionStruct_Default___{} + +func (_this *Default__) Equals(other *Default__) bool { + return _this == other +} + +func (_this *Default__) EqualsGeneric(x interface{}) bool { + other, ok := x.(*Default__) + return ok && _this.Equals(other) +} + +func (*Default__) String() string { + return "Sets.Default__" +} +func (_this *Default__) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = &Default__{} + +func (_static *CompanionStruct_Default___) ExtractFromSingleton(s _dafny.Set) interface{} { + return func(_let_dummy_0 int) interface{} { + var _0_x interface{} = (interface{})(nil) + _ = _0_x + { + for _iter3 := _dafny.Iterate((s).Elements()); ; { + _assign_such_that_0, _ok3 := _iter3() + if !_ok3 { + break + } + _0_x = interface{}(_assign_such_that_0).(interface{}) + if (s).Contains(_0_x) { + goto L_ASSIGN_SUCH_THAT_0 + } + } + panic("assign-such-that search produced no value") + goto L_ASSIGN_SUCH_THAT_0 + } + L_ASSIGN_SUCH_THAT_0: + return _0_x + }(0) +} +func (_static *CompanionStruct_Default___) Map(xs _dafny.Set, f func(interface{}) interface{}) _dafny.Set { + var _0_ys _dafny.Set = func() _dafny.Set { + var _coll0 = _dafny.NewBuilder() + _ = _coll0 + for _iter4 := _dafny.Iterate((xs).Elements()); ; { + _compr_0, _ok4 := _iter4() + if !_ok4 { + break + } + var _1_x interface{} + _1_x = interface{}(_compr_0).(interface{}) + if (xs).Contains(_1_x) { + _coll0.Add((f)(_1_x)) + } + } + return _coll0.ToSet() + }() + _ = _0_ys + return _0_ys +} +func (_static *CompanionStruct_Default___) Filter(xs _dafny.Set, f func(interface{}) bool) _dafny.Set { + var _0_ys _dafny.Set = func() _dafny.Set { + var _coll0 = _dafny.NewBuilder() + _ = _coll0 + for _iter5 := _dafny.Iterate((xs).Elements()); ; { + _compr_0, _ok5 := _iter5() + if !_ok5 { + break + } + var _1_x interface{} + _1_x = interface{}(_compr_0).(interface{}) + if ((xs).Contains(_1_x)) && ((f)(_1_x)) { + _coll0.Add(_1_x) + } + } + return _coll0.ToSet() + }() + _ = _0_ys + return _0_ys +} +func (_static *CompanionStruct_Default___) SetRange(a _dafny.Int, b _dafny.Int) _dafny.Set { + var _0___accumulator _dafny.Set = _dafny.SetOf() + _ = _0___accumulator + goto TAIL_CALL_START +TAIL_CALL_START: + if (a).Cmp(b) == 0 { + return (_dafny.SetOf()).Union(_0___accumulator) + } else { + _0___accumulator = (_0___accumulator).Union(_dafny.SetOf(a)) + var _in0 _dafny.Int = (a).Plus(_dafny.One) + _ = _in0 + var _in1 _dafny.Int = b + _ = _in1 + a = _in0 + b = _in1 + goto TAIL_CALL_START + } +} +func (_static *CompanionStruct_Default___) SetRangeZeroBound(n _dafny.Int) _dafny.Set { + return Companion_Default___.SetRange(_dafny.Zero, n) +} + +// End of class Default__ diff --git a/customer-preview/ddb-esdk/SortCanon/SortCanon.go b/customer-preview/ddb-esdk/SortCanon/SortCanon.go new file mode 100644 index 000000000..c6dc245c3 --- /dev/null +++ b/customer-preview/ddb-esdk/SortCanon/SortCanon.go @@ -0,0 +1,301 @@ +// Package SortCanon +// Dafny module SortCanon compiled into Go + +package SortCanon + +import ( + os "os" + + m_ComAmazonawsDynamodbTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/ComAmazonawsDynamodbTypes" + m_Com_Amazonaws_Dynamodb "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/Com_Amazonaws_Dynamodb" + m_ComAmazonawsKmsTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/ComAmazonawsKmsTypes" + m_Com_Amazonaws_Kms "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/Com_Amazonaws_Kms" + m_AlgorithmSuites "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AlgorithmSuites" + m_AwsArnParsing "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsArnParsing" + m_AwsCryptographyKeyStoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreOperations" + m_AwsCryptographyKeyStoreTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreTypes" + m_AwsCryptographyMaterialProvidersOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersOperations" + m_AwsCryptographyMaterialProvidersTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersTypes" + m_AwsKmsDiscoveryKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsDiscoveryKeyring" + m_AwsKmsEcdhKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsEcdhKeyring" + m_AwsKmsHierarchicalKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsHierarchicalKeyring" + m_AwsKmsKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsKeyring" + m_AwsKmsMrkAreUnique "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkAreUnique" + m_AwsKmsMrkDiscoveryKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkDiscoveryKeyring" + m_AwsKmsMrkKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkKeyring" + m_AwsKmsMrkMatchForDecrypt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkMatchForDecrypt" + m_AwsKmsRsaKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsRsaKeyring" + m_AwsKmsUtils "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsUtils" + m_CMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CMM" + m_CacheConstants "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CacheConstants" + m_CanonicalEncryptionContext "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CanonicalEncryptionContext" + m_Commitment "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Commitment" + m_Constants "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Constants" + m_CreateKeyStoreTable "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeyStoreTable" + m_CreateKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeys" + m_DDBKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DDBKeystoreOperations" + m_DefaultCMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DefaultCMM" + m_DefaultClientSupplier "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DefaultClientSupplier" + m_Defaults "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Defaults" + m_DiscoveryMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DiscoveryMultiKeyring" + m_EcdhEdkWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/EcdhEdkWrapping" + m_EdkWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/EdkWrapping" + m_ErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/ErrorMessages" + m_GetKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/GetKeys" + m_IntermediateKeyWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/IntermediateKeyWrapping" + m_KMSKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KMSKeystoreOperations" + m_KeyStore "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStore" + m_KeyStoreErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStoreErrorMessages" + m_Keyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Keyring" + m_KmsArn "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KmsArn" + m_LocalCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/LocalCMC" + m_MaterialProviders "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MaterialProviders" + m_MaterialWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MaterialWrapping" + m_Materials "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Materials" + m_MrkAwareDiscoveryMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MrkAwareDiscoveryMultiKeyring" + m_MrkAwareStrictMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MrkAwareStrictMultiKeyring" + m_MultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MultiKeyring" + m_RawAESKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawAESKeyring" + m_RawECDHKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawECDHKeyring" + m_RawRSAKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawRSAKeyring" + m_RequiredEncryptionContextCMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RequiredEncryptionContextCMM" + m_StormTracker "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StormTracker" + m_StormTrackingCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StormTrackingCMC" + m_StrictMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StrictMultiKeyring" + m_Structure "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Structure" + m_SynchronizedLocalCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/SynchronizedLocalCMC" + m_Utils "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Utils" + m_AtomicPrimitives "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AtomicPrimitives" + m_AwsCryptographyPrimitivesOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesOperations" + m_AwsCryptographyPrimitivesTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesTypes" + m_Digest "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Digest" + m_HKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/HKDF" + m_KdfCtr "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/KdfCtr" + m_Random "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Random" + m_WrappedHKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHKDF" + m_WrappedHMAC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHMAC" + m_Actions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Actions" + m_Base64 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64" + m_Base64Lemmas "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64Lemmas" + m_BoundedInts "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/BoundedInts" + m_DivInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternals" + m_DivInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternalsNonlinear" + m_DivMod "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivMod" + m_FileIO "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FileIO" + m_FloatCompare "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FloatCompare" + m_Functions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Functions" + m_GeneralInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GeneralInternals" + m_GetOpt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GetOpt" + m_HexStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/HexStrings" + m_Logarithm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Logarithm" + m__Math "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Math_" + m_ModInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternals" + m_ModInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternalsNonlinear" + m_Mul "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Mul" + m_MulInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternals" + m_MulInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternalsNonlinear" + m_Power "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Power" + m_Relations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Relations" + m_Seq "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq" + m_Seq_MergeSort "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq_MergeSort" + m_Sorting "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Sorting" + m_StandardLibrary "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary" + m_StandardLibraryInterop "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibraryInterop" + m_StandardLibrary_Sequence "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_Sequence" + m_StandardLibrary_String "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_String" + m_StandardLibrary_UInt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_UInt" + m_Streams "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Streams" + m_UnicodeStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UnicodeStrings" + m__Unicode "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Unicode_" + m_Utf16EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf16EncodingForm" + m_Utf8EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf8EncodingForm" + m_Wrappers "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers" + m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes" + m_Sets "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/Sets" + m_StructuredEncryptionFooter "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionFooter" + m_StructuredEncryptionHeader "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionHeader" + m_StructuredEncryptionPaths "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionPaths" + m_StructuredEncryptionUtil "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionUtil" + m__System "github.com/dafny-lang/DafnyRuntimeGo/v4/System_" + _dafny "github.com/dafny-lang/DafnyRuntimeGo/v4/dafny" +) + +var _ = os.Args +var _ _dafny.Dummy__ +var _ m__System.Dummy__ +var _ m_Wrappers.Dummy__ +var _ m_BoundedInts.Dummy__ +var _ m_StandardLibrary_UInt.Dummy__ +var _ m_StandardLibrary_Sequence.Dummy__ +var _ m_StandardLibrary_String.Dummy__ +var _ m_StandardLibrary.Dummy__ +var _ m_AwsCryptographyPrimitivesTypes.Dummy__ +var _ m_Random.Dummy__ +var _ m_Digest.Dummy__ +var _ m_WrappedHMAC.Dummy__ +var _ m_HKDF.Dummy__ +var _ m_WrappedHKDF.Dummy__ +var _ m_KdfCtr.Dummy__ +var _ m_AwsCryptographyPrimitivesOperations.Dummy__ +var _ m_AtomicPrimitives.Dummy__ +var _ m_ComAmazonawsDynamodbTypes.Dummy__ +var _ m_ComAmazonawsKmsTypes.Dummy__ +var _ m_AwsCryptographyKeyStoreTypes.Dummy__ +var _ m_AwsCryptographyMaterialProvidersTypes.Dummy__ +var _ m_Base64.Dummy__ +var _ m_AlgorithmSuites.Dummy__ +var _ m_Materials.Dummy__ +var _ m_Keyring.Dummy__ +var _ m_Relations.Dummy__ +var _ m_Seq_MergeSort.Dummy__ +var _ m__Math.Dummy__ +var _ m_Seq.Dummy__ +var _ m_MultiKeyring.Dummy__ +var _ m_AwsArnParsing.Dummy__ +var _ m_AwsKmsMrkAreUnique.Dummy__ +var _ m_Actions.Dummy__ +var _ m_AwsKmsMrkMatchForDecrypt.Dummy__ +var _ m_AwsKmsUtils.Dummy__ +var _ m_Constants.Dummy__ +var _ m_MaterialWrapping.Dummy__ +var _ m_CanonicalEncryptionContext.Dummy__ +var _ m_IntermediateKeyWrapping.Dummy__ +var _ m_EdkWrapping.Dummy__ +var _ m_ErrorMessages.Dummy__ +var _ m_AwsKmsKeyring.Dummy__ +var _ m_StrictMultiKeyring.Dummy__ +var _ m_AwsKmsDiscoveryKeyring.Dummy__ +var _ m_Com_Amazonaws_Kms.Dummy__ +var _ m_Com_Amazonaws_Dynamodb.Dummy__ +var _ m_DiscoveryMultiKeyring.Dummy__ +var _ m_AwsKmsMrkDiscoveryKeyring.Dummy__ +var _ m_MrkAwareDiscoveryMultiKeyring.Dummy__ +var _ m_AwsKmsMrkKeyring.Dummy__ +var _ m_MrkAwareStrictMultiKeyring.Dummy__ +var _ m_LocalCMC.Dummy__ +var _ m_SynchronizedLocalCMC.Dummy__ +var _ m_StormTracker.Dummy__ +var _ m_StormTrackingCMC.Dummy__ +var _ m_CacheConstants.Dummy__ +var _ m_AwsKmsHierarchicalKeyring.Dummy__ +var _ m_AwsKmsRsaKeyring.Dummy__ +var _ m_EcdhEdkWrapping.Dummy__ +var _ m_RawECDHKeyring.Dummy__ +var _ m_AwsKmsEcdhKeyring.Dummy__ +var _ m_RawAESKeyring.Dummy__ +var _ m_RawRSAKeyring.Dummy__ +var _ m_CMM.Dummy__ +var _ m_Defaults.Dummy__ +var _ m_Commitment.Dummy__ +var _ m_DefaultCMM.Dummy__ +var _ m_DefaultClientSupplier.Dummy__ +var _ m_Utils.Dummy__ +var _ m_RequiredEncryptionContextCMM.Dummy__ +var _ m_AwsCryptographyMaterialProvidersOperations.Dummy__ +var _ m_MaterialProviders.Dummy__ +var _ m_KeyStoreErrorMessages.Dummy__ +var _ m_KmsArn.Dummy__ +var _ m_Structure.Dummy__ +var _ m_KMSKeystoreOperations.Dummy__ +var _ m_DDBKeystoreOperations.Dummy__ +var _ m_CreateKeys.Dummy__ +var _ m_CreateKeyStoreTable.Dummy__ +var _ m_GetKeys.Dummy__ +var _ m_AwsCryptographyKeyStoreOperations.Dummy__ +var _ m_KeyStore.Dummy__ +var _ m__Unicode.Dummy__ +var _ m_Functions.Dummy__ +var _ m_Utf8EncodingForm.Dummy__ +var _ m_Utf16EncodingForm.Dummy__ +var _ m_UnicodeStrings.Dummy__ +var _ m_FileIO.Dummy__ +var _ m_GeneralInternals.Dummy__ +var _ m_MulInternalsNonlinear.Dummy__ +var _ m_MulInternals.Dummy__ +var _ m_Mul.Dummy__ +var _ m_ModInternalsNonlinear.Dummy__ +var _ m_DivInternalsNonlinear.Dummy__ +var _ m_ModInternals.Dummy__ +var _ m_DivInternals.Dummy__ +var _ m_DivMod.Dummy__ +var _ m_Power.Dummy__ +var _ m_Logarithm.Dummy__ +var _ m_StandardLibraryInterop.Dummy__ +var _ m_Streams.Dummy__ +var _ m_Sorting.Dummy__ +var _ m_HexStrings.Dummy__ +var _ m_GetOpt.Dummy__ +var _ m_FloatCompare.Dummy__ +var _ m_Base64Lemmas.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Dummy__ +var _ m_StructuredEncryptionUtil.Dummy__ +var _ m_Sets.Dummy__ +var _ m_StructuredEncryptionPaths.Dummy__ +var _ m_StructuredEncryptionHeader.Dummy__ +var _ m_StructuredEncryptionFooter.Dummy__ + +type Dummy__ struct{} + +// Definition of class Default__ +type Default__ struct { + dummy byte +} + +func New_Default___() *Default__ { + _this := Default__{} + + return &_this +} + +type CompanionStruct_Default___ struct { +} + +var Companion_Default___ = CompanionStruct_Default___{} + +func (_this *Default__) Equals(other *Default__) bool { + return _this == other +} + +func (_this *Default__) EqualsGeneric(x interface{}) bool { + other, ok := x.(*Default__) + return ok && _this.Equals(other) +} + +func (*Default__) String() string { + return "SortCanon.Default__" +} +func (_this *Default__) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = &Default__{} + +func (_static *CompanionStruct_Default___) AuthBelow(x m_StructuredEncryptionUtil.CanonAuthItem, y m_StructuredEncryptionUtil.CanonAuthItem) bool { + return Companion_Default___.Below((x).Dtor_key(), (y).Dtor_key()) +} +func (_static *CompanionStruct_Default___) CryptoBelow(x m_StructuredEncryptionUtil.CanonCryptoItem, y m_StructuredEncryptionUtil.CanonCryptoItem) bool { + return Companion_Default___.Below((x).Dtor_key(), (y).Dtor_key()) +} +func (_static *CompanionStruct_Default___) Below(x _dafny.Sequence, y _dafny.Sequence) bool { + return !((_dafny.IntOfUint32((x).Cardinality())).Sign() != 0) || ((((_dafny.IntOfUint32((y).Cardinality())).Sign() != 0) && (((x).Select(0).(uint8)) <= ((y).Select(0).(uint8)))) && (!(((x).Select(0).(uint8)) == ((y).Select(0).(uint8))) || (Companion_Default___.Below((x).Drop(1), (y).Drop(1))))) +} +func (_static *CompanionStruct_Default___) AuthSort(x _dafny.Sequence) _dafny.Sequence { + var _0_ret _dafny.Sequence = m_Seq_MergeSort.Companion_Default___.MergeSortBy(x, func(coer10 func(m_StructuredEncryptionUtil.CanonAuthItem, m_StructuredEncryptionUtil.CanonAuthItem) bool) func(interface{}, interface{}) bool { + return func(arg13 interface{}, arg14 interface{}) bool { + return coer10(arg13.(m_StructuredEncryptionUtil.CanonAuthItem), arg14.(m_StructuredEncryptionUtil.CanonAuthItem)) + } + }(Companion_Default___.AuthBelow)) + _ = _0_ret + return _0_ret +} +func (_static *CompanionStruct_Default___) CryptoSort(x _dafny.Sequence) _dafny.Sequence { + var _0_ret _dafny.Sequence = m_Seq_MergeSort.Companion_Default___.MergeSortBy(x, func(coer11 func(m_StructuredEncryptionUtil.CanonCryptoItem, m_StructuredEncryptionUtil.CanonCryptoItem) bool) func(interface{}, interface{}) bool { + return func(arg15 interface{}, arg16 interface{}) bool { + return coer11(arg15.(m_StructuredEncryptionUtil.CanonCryptoItem), arg16.(m_StructuredEncryptionUtil.CanonCryptoItem)) + } + }(Companion_Default___.CryptoBelow)) + _ = _0_ret + return _0_ret +} + +// End of class Default__ diff --git a/customer-preview/ddb-esdk/StructuredEncryption/StructuredEncryption.go b/customer-preview/ddb-esdk/StructuredEncryption/StructuredEncryption.go new file mode 100644 index 000000000..3132aee69 --- /dev/null +++ b/customer-preview/ddb-esdk/StructuredEncryption/StructuredEncryption.go @@ -0,0 +1,469 @@ +// Package StructuredEncryption +// Dafny module StructuredEncryption compiled into Go + +package StructuredEncryption + +import ( + os "os" + + m_ComAmazonawsDynamodbTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/ComAmazonawsDynamodbTypes" + m_Com_Amazonaws_Dynamodb "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/Com_Amazonaws_Dynamodb" + m_ComAmazonawsKmsTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/ComAmazonawsKmsTypes" + m_Com_Amazonaws_Kms "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/Com_Amazonaws_Kms" + m_AlgorithmSuites "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AlgorithmSuites" + m_AwsArnParsing "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsArnParsing" + m_AwsCryptographyKeyStoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreOperations" + m_AwsCryptographyKeyStoreTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreTypes" + m_AwsCryptographyMaterialProvidersOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersOperations" + m_AwsCryptographyMaterialProvidersTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersTypes" + m_AwsKmsDiscoveryKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsDiscoveryKeyring" + m_AwsKmsEcdhKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsEcdhKeyring" + m_AwsKmsHierarchicalKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsHierarchicalKeyring" + m_AwsKmsKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsKeyring" + m_AwsKmsMrkAreUnique "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkAreUnique" + m_AwsKmsMrkDiscoveryKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkDiscoveryKeyring" + m_AwsKmsMrkKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkKeyring" + m_AwsKmsMrkMatchForDecrypt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkMatchForDecrypt" + m_AwsKmsRsaKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsRsaKeyring" + m_AwsKmsUtils "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsUtils" + m_CMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CMM" + m_CacheConstants "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CacheConstants" + m_CanonicalEncryptionContext "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CanonicalEncryptionContext" + m_Commitment "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Commitment" + m_Constants "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Constants" + m_CreateKeyStoreTable "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeyStoreTable" + m_CreateKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeys" + m_DDBKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DDBKeystoreOperations" + m_DefaultCMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DefaultCMM" + m_DefaultClientSupplier "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DefaultClientSupplier" + m_Defaults "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Defaults" + m_DiscoveryMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DiscoveryMultiKeyring" + m_EcdhEdkWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/EcdhEdkWrapping" + m_EdkWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/EdkWrapping" + m_ErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/ErrorMessages" + m_GetKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/GetKeys" + m_IntermediateKeyWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/IntermediateKeyWrapping" + m_KMSKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KMSKeystoreOperations" + m_KeyStore "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStore" + m_KeyStoreErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStoreErrorMessages" + m_Keyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Keyring" + m_KmsArn "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KmsArn" + m_LocalCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/LocalCMC" + m_MaterialProviders "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MaterialProviders" + m_MaterialWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MaterialWrapping" + m_Materials "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Materials" + m_MrkAwareDiscoveryMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MrkAwareDiscoveryMultiKeyring" + m_MrkAwareStrictMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MrkAwareStrictMultiKeyring" + m_MultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MultiKeyring" + m_RawAESKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawAESKeyring" + m_RawECDHKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawECDHKeyring" + m_RawRSAKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawRSAKeyring" + m_RequiredEncryptionContextCMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RequiredEncryptionContextCMM" + m_StormTracker "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StormTracker" + m_StormTrackingCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StormTrackingCMC" + m_StrictMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StrictMultiKeyring" + m_Structure "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Structure" + m_SynchronizedLocalCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/SynchronizedLocalCMC" + m_Utils "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Utils" + m_AtomicPrimitives "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AtomicPrimitives" + m_AwsCryptographyPrimitivesOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesOperations" + m_AwsCryptographyPrimitivesTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesTypes" + m_Digest "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Digest" + m_HKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/HKDF" + m_KdfCtr "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/KdfCtr" + m_Random "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Random" + m_WrappedHKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHKDF" + m_WrappedHMAC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHMAC" + m_Actions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Actions" + m_Base64 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64" + m_Base64Lemmas "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64Lemmas" + m_BoundedInts "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/BoundedInts" + m_DivInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternals" + m_DivInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternalsNonlinear" + m_DivMod "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivMod" + m_FileIO "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FileIO" + m_FloatCompare "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FloatCompare" + m_Functions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Functions" + m_GeneralInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GeneralInternals" + m_GetOpt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GetOpt" + m_HexStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/HexStrings" + m_Logarithm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Logarithm" + m__Math "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Math_" + m_ModInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternals" + m_ModInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternalsNonlinear" + m_Mul "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Mul" + m_MulInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternals" + m_MulInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternalsNonlinear" + m_Power "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Power" + m_Relations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Relations" + m_Seq "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq" + m_Seq_MergeSort "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq_MergeSort" + m_Sorting "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Sorting" + m_StandardLibrary "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary" + m_StandardLibraryInterop "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibraryInterop" + m_StandardLibrary_Sequence "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_Sequence" + m_StandardLibrary_String "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_String" + m_StandardLibrary_UInt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_UInt" + m_Streams "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Streams" + m_UnicodeStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UnicodeStrings" + m__Unicode "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Unicode_" + m_Utf16EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf16EncodingForm" + m_Utf8EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf8EncodingForm" + m_Wrappers "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers" + m_AwsCryptographyDbEncryptionSdkStructuredEncryptionOperations "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkStructuredEncryptionOperations" + m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes" + m_Canonize "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/Canonize" + m__Maps "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/Maps_" + m_Sets "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/Sets" + m_SortCanon "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/SortCanon" + m_StructuredEncryptionCrypt "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionCrypt" + m_StructuredEncryptionFooter "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionFooter" + m_StructuredEncryptionHeader "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionHeader" + m_StructuredEncryptionPaths "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionPaths" + m_StructuredEncryptionUtil "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionUtil" + m__System "github.com/dafny-lang/DafnyRuntimeGo/v4/System_" + _dafny "github.com/dafny-lang/DafnyRuntimeGo/v4/dafny" +) + +var _ = os.Args +var _ _dafny.Dummy__ +var _ m__System.Dummy__ +var _ m_Wrappers.Dummy__ +var _ m_BoundedInts.Dummy__ +var _ m_StandardLibrary_UInt.Dummy__ +var _ m_StandardLibrary_Sequence.Dummy__ +var _ m_StandardLibrary_String.Dummy__ +var _ m_StandardLibrary.Dummy__ +var _ m_AwsCryptographyPrimitivesTypes.Dummy__ +var _ m_Random.Dummy__ +var _ m_Digest.Dummy__ +var _ m_WrappedHMAC.Dummy__ +var _ m_HKDF.Dummy__ +var _ m_WrappedHKDF.Dummy__ +var _ m_KdfCtr.Dummy__ +var _ m_AwsCryptographyPrimitivesOperations.Dummy__ +var _ m_AtomicPrimitives.Dummy__ +var _ m_ComAmazonawsDynamodbTypes.Dummy__ +var _ m_ComAmazonawsKmsTypes.Dummy__ +var _ m_AwsCryptographyKeyStoreTypes.Dummy__ +var _ m_AwsCryptographyMaterialProvidersTypes.Dummy__ +var _ m_Base64.Dummy__ +var _ m_AlgorithmSuites.Dummy__ +var _ m_Materials.Dummy__ +var _ m_Keyring.Dummy__ +var _ m_Relations.Dummy__ +var _ m_Seq_MergeSort.Dummy__ +var _ m__Math.Dummy__ +var _ m_Seq.Dummy__ +var _ m_MultiKeyring.Dummy__ +var _ m_AwsArnParsing.Dummy__ +var _ m_AwsKmsMrkAreUnique.Dummy__ +var _ m_Actions.Dummy__ +var _ m_AwsKmsMrkMatchForDecrypt.Dummy__ +var _ m_AwsKmsUtils.Dummy__ +var _ m_Constants.Dummy__ +var _ m_MaterialWrapping.Dummy__ +var _ m_CanonicalEncryptionContext.Dummy__ +var _ m_IntermediateKeyWrapping.Dummy__ +var _ m_EdkWrapping.Dummy__ +var _ m_ErrorMessages.Dummy__ +var _ m_AwsKmsKeyring.Dummy__ +var _ m_StrictMultiKeyring.Dummy__ +var _ m_AwsKmsDiscoveryKeyring.Dummy__ +var _ m_Com_Amazonaws_Kms.Dummy__ +var _ m_Com_Amazonaws_Dynamodb.Dummy__ +var _ m_DiscoveryMultiKeyring.Dummy__ +var _ m_AwsKmsMrkDiscoveryKeyring.Dummy__ +var _ m_MrkAwareDiscoveryMultiKeyring.Dummy__ +var _ m_AwsKmsMrkKeyring.Dummy__ +var _ m_MrkAwareStrictMultiKeyring.Dummy__ +var _ m_LocalCMC.Dummy__ +var _ m_SynchronizedLocalCMC.Dummy__ +var _ m_StormTracker.Dummy__ +var _ m_StormTrackingCMC.Dummy__ +var _ m_CacheConstants.Dummy__ +var _ m_AwsKmsHierarchicalKeyring.Dummy__ +var _ m_AwsKmsRsaKeyring.Dummy__ +var _ m_EcdhEdkWrapping.Dummy__ +var _ m_RawECDHKeyring.Dummy__ +var _ m_AwsKmsEcdhKeyring.Dummy__ +var _ m_RawAESKeyring.Dummy__ +var _ m_RawRSAKeyring.Dummy__ +var _ m_CMM.Dummy__ +var _ m_Defaults.Dummy__ +var _ m_Commitment.Dummy__ +var _ m_DefaultCMM.Dummy__ +var _ m_DefaultClientSupplier.Dummy__ +var _ m_Utils.Dummy__ +var _ m_RequiredEncryptionContextCMM.Dummy__ +var _ m_AwsCryptographyMaterialProvidersOperations.Dummy__ +var _ m_MaterialProviders.Dummy__ +var _ m_KeyStoreErrorMessages.Dummy__ +var _ m_KmsArn.Dummy__ +var _ m_Structure.Dummy__ +var _ m_KMSKeystoreOperations.Dummy__ +var _ m_DDBKeystoreOperations.Dummy__ +var _ m_CreateKeys.Dummy__ +var _ m_CreateKeyStoreTable.Dummy__ +var _ m_GetKeys.Dummy__ +var _ m_AwsCryptographyKeyStoreOperations.Dummy__ +var _ m_KeyStore.Dummy__ +var _ m__Unicode.Dummy__ +var _ m_Functions.Dummy__ +var _ m_Utf8EncodingForm.Dummy__ +var _ m_Utf16EncodingForm.Dummy__ +var _ m_UnicodeStrings.Dummy__ +var _ m_FileIO.Dummy__ +var _ m_GeneralInternals.Dummy__ +var _ m_MulInternalsNonlinear.Dummy__ +var _ m_MulInternals.Dummy__ +var _ m_Mul.Dummy__ +var _ m_ModInternalsNonlinear.Dummy__ +var _ m_DivInternalsNonlinear.Dummy__ +var _ m_ModInternals.Dummy__ +var _ m_DivInternals.Dummy__ +var _ m_DivMod.Dummy__ +var _ m_Power.Dummy__ +var _ m_Logarithm.Dummy__ +var _ m_StandardLibraryInterop.Dummy__ +var _ m_Streams.Dummy__ +var _ m_Sorting.Dummy__ +var _ m_HexStrings.Dummy__ +var _ m_GetOpt.Dummy__ +var _ m_FloatCompare.Dummy__ +var _ m_Base64Lemmas.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Dummy__ +var _ m_StructuredEncryptionUtil.Dummy__ +var _ m_Sets.Dummy__ +var _ m_StructuredEncryptionPaths.Dummy__ +var _ m_StructuredEncryptionHeader.Dummy__ +var _ m_StructuredEncryptionFooter.Dummy__ +var _ m_SortCanon.Dummy__ +var _ m_Canonize.Dummy__ +var _ m_StructuredEncryptionCrypt.Dummy__ +var _ m__Maps.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkStructuredEncryptionOperations.Dummy__ + +type Dummy__ struct{} + +// Definition of class Default__ +type Default__ struct { + dummy byte +} + +func New_Default___() *Default__ { + _this := Default__{} + + return &_this +} + +type CompanionStruct_Default___ struct { +} + +var Companion_Default___ = CompanionStruct_Default___{} + +func (_this *Default__) Equals(other *Default__) bool { + return _this == other +} + +func (_this *Default__) EqualsGeneric(x interface{}) bool { + other, ok := x.(*Default__) + return ok && _this.Equals(other) +} + +func (*Default__) String() string { + return "StructuredEncryption.Default__" +} +func (_this *Default__) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = &Default__{} + +func (_static *CompanionStruct_Default___) DefaultStructuredEncryptionConfig() m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.StructuredEncryptionConfig { + return m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Companion_StructuredEncryptionConfig_.Create_StructuredEncryptionConfig_() +} +func (_static *CompanionStruct_Default___) StructuredEncryption(config m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.StructuredEncryptionConfig) m_Wrappers.Result { + var res m_Wrappers.Result = m_Wrappers.Result{} + _ = res + var _0_maybePrimitives m_Wrappers.Result + _ = _0_maybePrimitives + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_AtomicPrimitives.Companion_Default___.AtomicPrimitives(m_AtomicPrimitives.Companion_Default___.DefaultCryptoConfig()) + _0_maybePrimitives = _out0 + var _1_valueOrError0 m_Wrappers.Result = m_Wrappers.Result{} + _ = _1_valueOrError0 + _1_valueOrError0 = (_0_maybePrimitives).MapFailure(func(coer37 func(m_AwsCryptographyPrimitivesTypes.Error) m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Error) func(interface{}) interface{} { + return func(arg49 interface{}) interface{} { + return coer37(arg49.(m_AwsCryptographyPrimitivesTypes.Error)) + } + }(func(_2_e m_AwsCryptographyPrimitivesTypes.Error) m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Error { + return m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Companion_Error_.Create_AwsCryptographyPrimitives_(_2_e) + })) + if (_1_valueOrError0).IsFailure() { + res = (_1_valueOrError0).PropagateFailure() + return res + } + var _3_primitives *m_AtomicPrimitives.AtomicPrimitivesClient + _ = _3_primitives + _3_primitives = (_1_valueOrError0).Extract().(*m_AtomicPrimitives.AtomicPrimitivesClient) + var _4_maybeMatProv m_Wrappers.Result + _ = _4_maybeMatProv + var _out1 m_Wrappers.Result + _ = _out1 + _out1 = m_MaterialProviders.Companion_Default___.MaterialProviders(m_MaterialProviders.Companion_Default___.DefaultMaterialProvidersConfig()) + _4_maybeMatProv = _out1 + var _5_valueOrError1 m_Wrappers.Result = m_Wrappers.Result{} + _ = _5_valueOrError1 + _5_valueOrError1 = (_4_maybeMatProv).MapFailure(func(coer38 func(m_AwsCryptographyMaterialProvidersTypes.Error) m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Error) func(interface{}) interface{} { + return func(arg50 interface{}) interface{} { + return coer38(arg50.(m_AwsCryptographyMaterialProvidersTypes.Error)) + } + }(func(_6_e m_AwsCryptographyMaterialProvidersTypes.Error) m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Error { + return m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Companion_Error_.Create_AwsCryptographyMaterialProviders_(_6_e) + })) + if (_5_valueOrError1).IsFailure() { + res = (_5_valueOrError1).PropagateFailure() + return res + } + var _7_matProv *m_MaterialProviders.MaterialProvidersClient + _ = _7_matProv + _7_matProv = (_5_valueOrError1).Extract().(*m_MaterialProviders.MaterialProvidersClient) + var _8_client *StructuredEncryptionClient + _ = _8_client + var _nw0 *StructuredEncryptionClient = New_StructuredEncryptionClient_() + _ = _nw0 + _nw0.Ctor__(m_AwsCryptographyDbEncryptionSdkStructuredEncryptionOperations.Companion_Config_.Create_Config_(_3_primitives, _7_matProv)) + _8_client = _nw0 + res = m_Wrappers.Companion_Result_.Create_Success_(_8_client) + return res + return res +} +func (_static *CompanionStruct_Default___) CreateSuccessOfClient(client m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.IStructuredEncryptionClient) m_Wrappers.Result { + return m_Wrappers.Companion_Result_.Create_Success_(client) +} +func (_static *CompanionStruct_Default___) CreateFailureOfError(error_ m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Error) m_Wrappers.Result { + return m_Wrappers.Companion_Result_.Create_Failure_(error_) +} + +// End of class Default__ + +// Definition of class StructuredEncryptionClient +type StructuredEncryptionClient struct { + _config m_AwsCryptographyDbEncryptionSdkStructuredEncryptionOperations.Config +} + +func New_StructuredEncryptionClient_() *StructuredEncryptionClient { + _this := StructuredEncryptionClient{} + + _this._config = m_AwsCryptographyDbEncryptionSdkStructuredEncryptionOperations.Config{} + return &_this +} + +type CompanionStruct_StructuredEncryptionClient_ struct { +} + +var Companion_StructuredEncryptionClient_ = CompanionStruct_StructuredEncryptionClient_{} + +func (_this *StructuredEncryptionClient) Equals(other *StructuredEncryptionClient) bool { + return _this == other +} + +func (_this *StructuredEncryptionClient) EqualsGeneric(x interface{}) bool { + other, ok := x.(*StructuredEncryptionClient) + return ok && _this.Equals(other) +} + +func (*StructuredEncryptionClient) String() string { + return "StructuredEncryption.StructuredEncryptionClient" +} + +func Type_StructuredEncryptionClient_() _dafny.TypeDescriptor { + return type_StructuredEncryptionClient_{} +} + +type type_StructuredEncryptionClient_ struct { +} + +func (_this type_StructuredEncryptionClient_) Default() interface{} { + return (*StructuredEncryptionClient)(nil) +} + +func (_this type_StructuredEncryptionClient_) String() string { + return "StructuredEncryption.StructuredEncryptionClient" +} +func (_this *StructuredEncryptionClient) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Companion_IStructuredEncryptionClient_.TraitID_} +} + +var _ m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.IStructuredEncryptionClient = &StructuredEncryptionClient{} +var _ _dafny.TraitOffspring = &StructuredEncryptionClient{} + +func (_this *StructuredEncryptionClient) Ctor__(config m_AwsCryptographyDbEncryptionSdkStructuredEncryptionOperations.Config) { + { + (_this)._config = config + } +} +func (_this *StructuredEncryptionClient) EncryptStructure(input m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.EncryptStructureInput) m_Wrappers.Result { + { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Companion_EncryptStructureOutput_.Default()) + _ = output + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_AwsCryptographyDbEncryptionSdkStructuredEncryptionOperations.Companion_Default___.EncryptStructure((_this).Config(), input) + output = _out0 + return output + } +} +func (_this *StructuredEncryptionClient) DecryptStructure(input m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.DecryptStructureInput) m_Wrappers.Result { + { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Companion_DecryptStructureOutput_.Default()) + _ = output + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_AwsCryptographyDbEncryptionSdkStructuredEncryptionOperations.Companion_Default___.DecryptStructure((_this).Config(), input) + output = _out0 + return output + } +} +func (_this *StructuredEncryptionClient) EncryptPathStructure(input m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.EncryptPathStructureInput) m_Wrappers.Result { + { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Companion_EncryptPathStructureOutput_.Default()) + _ = output + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_AwsCryptographyDbEncryptionSdkStructuredEncryptionOperations.Companion_Default___.EncryptPathStructure((_this).Config(), input) + output = _out0 + return output + } +} +func (_this *StructuredEncryptionClient) DecryptPathStructure(input m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.DecryptPathStructureInput) m_Wrappers.Result { + { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Companion_DecryptPathStructureOutput_.Default()) + _ = output + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_AwsCryptographyDbEncryptionSdkStructuredEncryptionOperations.Companion_Default___.DecryptPathStructure((_this).Config(), input) + output = _out0 + return output + } +} +func (_this *StructuredEncryptionClient) ResolveAuthActions(input m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.ResolveAuthActionsInput) m_Wrappers.Result { + { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Companion_ResolveAuthActionsOutput_.Default()) + _ = output + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_AwsCryptographyDbEncryptionSdkStructuredEncryptionOperations.Companion_Default___.ResolveAuthActions((_this).Config(), input) + output = _out0 + return output + } +} +func (_this *StructuredEncryptionClient) Config() m_AwsCryptographyDbEncryptionSdkStructuredEncryptionOperations.Config { + { + return _this._config + } +} + +// End of class StructuredEncryptionClient diff --git a/customer-preview/ddb-esdk/StructuredEncryptionCrypt/StructuredEncryptionCrypt.go b/customer-preview/ddb-esdk/StructuredEncryptionCrypt/StructuredEncryptionCrypt.go new file mode 100644 index 000000000..5563fa20b --- /dev/null +++ b/customer-preview/ddb-esdk/StructuredEncryptionCrypt/StructuredEncryptionCrypt.go @@ -0,0 +1,587 @@ +// Package StructuredEncryptionCrypt +// Dafny module StructuredEncryptionCrypt compiled into Go + +package StructuredEncryptionCrypt + +import ( + os "os" + + m_ComAmazonawsDynamodbTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/ComAmazonawsDynamodbTypes" + m_Com_Amazonaws_Dynamodb "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/Com_Amazonaws_Dynamodb" + m_ComAmazonawsKmsTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/ComAmazonawsKmsTypes" + m_Com_Amazonaws_Kms "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/Com_Amazonaws_Kms" + m_AlgorithmSuites "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AlgorithmSuites" + m_AwsArnParsing "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsArnParsing" + m_AwsCryptographyKeyStoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreOperations" + m_AwsCryptographyKeyStoreTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreTypes" + m_AwsCryptographyMaterialProvidersOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersOperations" + m_AwsCryptographyMaterialProvidersTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersTypes" + m_AwsKmsDiscoveryKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsDiscoveryKeyring" + m_AwsKmsEcdhKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsEcdhKeyring" + m_AwsKmsHierarchicalKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsHierarchicalKeyring" + m_AwsKmsKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsKeyring" + m_AwsKmsMrkAreUnique "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkAreUnique" + m_AwsKmsMrkDiscoveryKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkDiscoveryKeyring" + m_AwsKmsMrkKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkKeyring" + m_AwsKmsMrkMatchForDecrypt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkMatchForDecrypt" + m_AwsKmsRsaKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsRsaKeyring" + m_AwsKmsUtils "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsUtils" + m_CMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CMM" + m_CacheConstants "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CacheConstants" + m_CanonicalEncryptionContext "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CanonicalEncryptionContext" + m_Commitment "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Commitment" + m_Constants "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Constants" + m_CreateKeyStoreTable "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeyStoreTable" + m_CreateKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeys" + m_DDBKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DDBKeystoreOperations" + m_DefaultCMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DefaultCMM" + m_DefaultClientSupplier "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DefaultClientSupplier" + m_Defaults "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Defaults" + m_DiscoveryMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DiscoveryMultiKeyring" + m_EcdhEdkWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/EcdhEdkWrapping" + m_EdkWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/EdkWrapping" + m_ErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/ErrorMessages" + m_GetKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/GetKeys" + m_IntermediateKeyWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/IntermediateKeyWrapping" + m_KMSKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KMSKeystoreOperations" + m_KeyStore "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStore" + m_KeyStoreErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStoreErrorMessages" + m_Keyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Keyring" + m_KmsArn "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KmsArn" + m_LocalCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/LocalCMC" + m_MaterialProviders "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MaterialProviders" + m_MaterialWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MaterialWrapping" + m_Materials "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Materials" + m_MrkAwareDiscoveryMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MrkAwareDiscoveryMultiKeyring" + m_MrkAwareStrictMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MrkAwareStrictMultiKeyring" + m_MultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MultiKeyring" + m_RawAESKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawAESKeyring" + m_RawECDHKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawECDHKeyring" + m_RawRSAKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawRSAKeyring" + m_RequiredEncryptionContextCMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RequiredEncryptionContextCMM" + m_StormTracker "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StormTracker" + m_StormTrackingCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StormTrackingCMC" + m_StrictMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StrictMultiKeyring" + m_Structure "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Structure" + m_SynchronizedLocalCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/SynchronizedLocalCMC" + m_Utils "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Utils" + m_AesKdfCtr "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AesKdfCtr" + m_AtomicPrimitives "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AtomicPrimitives" + m_AwsCryptographyPrimitivesOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesOperations" + m_AwsCryptographyPrimitivesTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesTypes" + m_Digest "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Digest" + m_HKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/HKDF" + m_KdfCtr "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/KdfCtr" + m_Random "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Random" + m_WrappedHKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHKDF" + m_WrappedHMAC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHMAC" + m_Actions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Actions" + m_Base64 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64" + m_Base64Lemmas "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64Lemmas" + m_BoundedInts "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/BoundedInts" + m_DivInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternals" + m_DivInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternalsNonlinear" + m_DivMod "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivMod" + m_FileIO "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FileIO" + m_FloatCompare "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FloatCompare" + m_Functions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Functions" + m_GeneralInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GeneralInternals" + m_GetOpt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GetOpt" + m_HexStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/HexStrings" + m_Logarithm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Logarithm" + m__Math "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Math_" + m_ModInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternals" + m_ModInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternalsNonlinear" + m_Mul "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Mul" + m_MulInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternals" + m_MulInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternalsNonlinear" + m_Power "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Power" + m_Relations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Relations" + m_Seq "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq" + m_Seq_MergeSort "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq_MergeSort" + m_Sorting "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Sorting" + m_StandardLibrary "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary" + m_StandardLibraryInterop "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibraryInterop" + m_StandardLibrary_Sequence "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_Sequence" + m_StandardLibrary_String "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_String" + m_StandardLibrary_UInt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_UInt" + m_Streams "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Streams" + m_UTF8 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UTF8" + m_UnicodeStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UnicodeStrings" + m__Unicode "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Unicode_" + m_Utf16EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf16EncodingForm" + m_Utf8EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf8EncodingForm" + m_Wrappers "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers" + m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes" + m_Canonize "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/Canonize" + m_Sets "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/Sets" + m_SortCanon "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/SortCanon" + m_StructuredEncryptionFooter "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionFooter" + m_StructuredEncryptionHeader "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionHeader" + m_StructuredEncryptionPaths "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionPaths" + m_StructuredEncryptionUtil "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionUtil" + m__System "github.com/dafny-lang/DafnyRuntimeGo/v4/System_" + _dafny "github.com/dafny-lang/DafnyRuntimeGo/v4/dafny" +) + +var _ = os.Args +var _ _dafny.Dummy__ +var _ m__System.Dummy__ +var _ m_Wrappers.Dummy__ +var _ m_BoundedInts.Dummy__ +var _ m_StandardLibrary_UInt.Dummy__ +var _ m_StandardLibrary_Sequence.Dummy__ +var _ m_StandardLibrary_String.Dummy__ +var _ m_StandardLibrary.Dummy__ +var _ m_AwsCryptographyPrimitivesTypes.Dummy__ +var _ m_Random.Dummy__ +var _ m_Digest.Dummy__ +var _ m_WrappedHMAC.Dummy__ +var _ m_HKDF.Dummy__ +var _ m_WrappedHKDF.Dummy__ +var _ m_KdfCtr.Dummy__ +var _ m_AwsCryptographyPrimitivesOperations.Dummy__ +var _ m_AtomicPrimitives.Dummy__ +var _ m_ComAmazonawsDynamodbTypes.Dummy__ +var _ m_ComAmazonawsKmsTypes.Dummy__ +var _ m_AwsCryptographyKeyStoreTypes.Dummy__ +var _ m_AwsCryptographyMaterialProvidersTypes.Dummy__ +var _ m_Base64.Dummy__ +var _ m_AlgorithmSuites.Dummy__ +var _ m_Materials.Dummy__ +var _ m_Keyring.Dummy__ +var _ m_Relations.Dummy__ +var _ m_Seq_MergeSort.Dummy__ +var _ m__Math.Dummy__ +var _ m_Seq.Dummy__ +var _ m_MultiKeyring.Dummy__ +var _ m_AwsArnParsing.Dummy__ +var _ m_AwsKmsMrkAreUnique.Dummy__ +var _ m_Actions.Dummy__ +var _ m_AwsKmsMrkMatchForDecrypt.Dummy__ +var _ m_AwsKmsUtils.Dummy__ +var _ m_Constants.Dummy__ +var _ m_MaterialWrapping.Dummy__ +var _ m_CanonicalEncryptionContext.Dummy__ +var _ m_IntermediateKeyWrapping.Dummy__ +var _ m_EdkWrapping.Dummy__ +var _ m_ErrorMessages.Dummy__ +var _ m_AwsKmsKeyring.Dummy__ +var _ m_StrictMultiKeyring.Dummy__ +var _ m_AwsKmsDiscoveryKeyring.Dummy__ +var _ m_Com_Amazonaws_Kms.Dummy__ +var _ m_Com_Amazonaws_Dynamodb.Dummy__ +var _ m_DiscoveryMultiKeyring.Dummy__ +var _ m_AwsKmsMrkDiscoveryKeyring.Dummy__ +var _ m_MrkAwareDiscoveryMultiKeyring.Dummy__ +var _ m_AwsKmsMrkKeyring.Dummy__ +var _ m_MrkAwareStrictMultiKeyring.Dummy__ +var _ m_LocalCMC.Dummy__ +var _ m_SynchronizedLocalCMC.Dummy__ +var _ m_StormTracker.Dummy__ +var _ m_StormTrackingCMC.Dummy__ +var _ m_CacheConstants.Dummy__ +var _ m_AwsKmsHierarchicalKeyring.Dummy__ +var _ m_AwsKmsRsaKeyring.Dummy__ +var _ m_EcdhEdkWrapping.Dummy__ +var _ m_RawECDHKeyring.Dummy__ +var _ m_AwsKmsEcdhKeyring.Dummy__ +var _ m_RawAESKeyring.Dummy__ +var _ m_RawRSAKeyring.Dummy__ +var _ m_CMM.Dummy__ +var _ m_Defaults.Dummy__ +var _ m_Commitment.Dummy__ +var _ m_DefaultCMM.Dummy__ +var _ m_DefaultClientSupplier.Dummy__ +var _ m_Utils.Dummy__ +var _ m_RequiredEncryptionContextCMM.Dummy__ +var _ m_AwsCryptographyMaterialProvidersOperations.Dummy__ +var _ m_MaterialProviders.Dummy__ +var _ m_KeyStoreErrorMessages.Dummy__ +var _ m_KmsArn.Dummy__ +var _ m_Structure.Dummy__ +var _ m_KMSKeystoreOperations.Dummy__ +var _ m_DDBKeystoreOperations.Dummy__ +var _ m_CreateKeys.Dummy__ +var _ m_CreateKeyStoreTable.Dummy__ +var _ m_GetKeys.Dummy__ +var _ m_AwsCryptographyKeyStoreOperations.Dummy__ +var _ m_KeyStore.Dummy__ +var _ m__Unicode.Dummy__ +var _ m_Functions.Dummy__ +var _ m_Utf8EncodingForm.Dummy__ +var _ m_Utf16EncodingForm.Dummy__ +var _ m_UnicodeStrings.Dummy__ +var _ m_FileIO.Dummy__ +var _ m_GeneralInternals.Dummy__ +var _ m_MulInternalsNonlinear.Dummy__ +var _ m_MulInternals.Dummy__ +var _ m_Mul.Dummy__ +var _ m_ModInternalsNonlinear.Dummy__ +var _ m_DivInternalsNonlinear.Dummy__ +var _ m_ModInternals.Dummy__ +var _ m_DivInternals.Dummy__ +var _ m_DivMod.Dummy__ +var _ m_Power.Dummy__ +var _ m_Logarithm.Dummy__ +var _ m_StandardLibraryInterop.Dummy__ +var _ m_Streams.Dummy__ +var _ m_Sorting.Dummy__ +var _ m_HexStrings.Dummy__ +var _ m_GetOpt.Dummy__ +var _ m_FloatCompare.Dummy__ +var _ m_Base64Lemmas.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Dummy__ +var _ m_StructuredEncryptionUtil.Dummy__ +var _ m_Sets.Dummy__ +var _ m_StructuredEncryptionPaths.Dummy__ +var _ m_StructuredEncryptionHeader.Dummy__ +var _ m_StructuredEncryptionFooter.Dummy__ +var _ m_SortCanon.Dummy__ +var _ m_Canonize.Dummy__ + +type Dummy__ struct{} + +// Definition of class Default__ +type Default__ struct { + dummy byte +} + +func New_Default___() *Default__ { + _this := Default__{} + + return &_this +} + +type CompanionStruct_Default___ struct { +} + +var Companion_Default___ = CompanionStruct_Default___{} + +func (_this *Default__) Equals(other *Default__) bool { + return _this == other +} + +func (_this *Default__) EqualsGeneric(x interface{}) bool { + other, ok := x.(*Default__) + return ok && _this.Equals(other) +} + +func (*Default__) String() string { + return "StructuredEncryptionCrypt.Default__" +} +func (_this *Default__) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = &Default__{} + +func (_static *CompanionStruct_Default___) FieldKey(HKDFOutput _dafny.Sequence, offset uint32) m_Wrappers.Result { + var _0_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need(((_dafny.IntOfUint32(offset)).Times(_dafny.IntOfInt64(3))).Cmp(m_StandardLibrary_UInt.Companion_Default___.UINT32__LIMIT()) < 0, m_StructuredEncryptionUtil.Companion_Default___.E(_dafny.SeqOfString("Too many encrypted fields."))) + _ = _0_valueOrError0 + if (_0_valueOrError0).IsFailure() { + return (_0_valueOrError0).PropagateFailure() + } else { + var _1_keyR m_Wrappers.Result = m_AesKdfCtr.AesKdfCtrStream(Companion_Default___.FieldKeyNonce((offset)*(uint32(3))), HKDFOutput, ((m_StructuredEncryptionUtil.Companion_Default___.KeySize()).Plus(m_StructuredEncryptionUtil.Companion_Default___.NonceSize())).Uint32()) + _ = _1_keyR + return (_1_keyR).MapFailure(func(coer14 func(m_AwsCryptographyPrimitivesTypes.Error) m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Error) func(interface{}) interface{} { + return func(arg19 interface{}) interface{} { + return coer14(arg19.(m_AwsCryptographyPrimitivesTypes.Error)) + } + }(func(_2_e m_AwsCryptographyPrimitivesTypes.Error) m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Error { + return m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Companion_Error_.Create_AwsCryptographyPrimitives_(_2_e) + })) + } +} +func (_static *CompanionStruct_Default___) FieldKeyNonce(offset uint32) _dafny.Sequence { + return _dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(m_UTF8.Companion_Default___.EncodeAscii(_dafny.SeqOfString("AwsDbeField")), _dafny.SeqOf(((m_StructuredEncryptionUtil.Companion_Default___.KeySize()).Plus(m_StructuredEncryptionUtil.Companion_Default___.NonceSize())).Uint8())), m_StandardLibrary_UInt.Companion_Default___.UInt32ToSeq(offset)) +} +func (_static *CompanionStruct_Default___) GetCommitKey(client *m_AtomicPrimitives.AtomicPrimitivesClient, alg m_AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo, key _dafny.Sequence, msgID _dafny.Sequence) m_Wrappers.Result { + var ret m_Wrappers.Result = m_Wrappers.Result{} + _ = ret + var _0_commitKey m_Wrappers.Result + _ = _0_commitKey + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = (client).Hkdf(m_AwsCryptographyPrimitivesTypes.Companion_HkdfInput_.Create_HkdfInput_((((alg).Dtor_commitment()).Dtor_HKDF()).Dtor_hmac(), m_Wrappers.Companion_Option_.Create_None_(), key, _dafny.Companion_Sequence_.Concatenate(Companion_Default___.LABEL__COMMITMENT__KEY(), msgID), (((alg).Dtor_commitment()).Dtor_HKDF()).Dtor_outputKeyLength())) + _0_commitKey = _out0 + ret = (_0_commitKey).MapFailure(func(coer15 func(m_AwsCryptographyPrimitivesTypes.Error) m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Error) func(interface{}) interface{} { + return func(arg20 interface{}) interface{} { + return coer15(arg20.(m_AwsCryptographyPrimitivesTypes.Error)) + } + }(func(_1_e m_AwsCryptographyPrimitivesTypes.Error) m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Error { + return m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Companion_Error_.Create_AwsCryptographyPrimitives_(_1_e) + })) + return ret + return ret +} +func (_static *CompanionStruct_Default___) Encrypt(client *m_AtomicPrimitives.AtomicPrimitivesClient, alg m_AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo, key _dafny.Sequence, head m_StructuredEncryptionHeader.PartialHeader, data _dafny.Sequence) m_Wrappers.Result { + var ret m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = ret + var _0_valueOrError0 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = _0_valueOrError0 + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = Companion_Default___.Crypt(m_Canonize.Companion_EncryptionSelector_.Create_DoEncrypt_(), client, alg, key, head, data) + _0_valueOrError0 = _out0 + if (_0_valueOrError0).IsFailure() { + ret = (_0_valueOrError0).PropagateFailure() + return ret + } + var _1_result _dafny.Sequence + _ = _1_result + _1_result = (_0_valueOrError0).Extract().(_dafny.Sequence) + ret = m_Wrappers.Companion_Result_.Create_Success_(_1_result) + return ret + return ret +} +func (_static *CompanionStruct_Default___) Decrypt(client *m_AtomicPrimitives.AtomicPrimitivesClient, alg m_AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo, key _dafny.Sequence, head m_StructuredEncryptionHeader.PartialHeader, data _dafny.Sequence) m_Wrappers.Result { + var ret m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = ret + var _0_valueOrError0 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = _0_valueOrError0 + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = Companion_Default___.Crypt(m_Canonize.Companion_EncryptionSelector_.Create_DoDecrypt_(), client, alg, key, head, data) + _0_valueOrError0 = _out0 + if (_0_valueOrError0).IsFailure() { + ret = (_0_valueOrError0).PropagateFailure() + return ret + } + var _1_result _dafny.Sequence + _ = _1_result + _1_result = (_0_valueOrError0).Extract().(_dafny.Sequence) + ret = m_Wrappers.Companion_Result_.Create_Success_(_1_result) + return ret + return ret +} +func (_static *CompanionStruct_Default___) Crypt(mode m_Canonize.EncryptionSelector, client *m_AtomicPrimitives.AtomicPrimitivesClient, alg m_AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo, key _dafny.Sequence, head m_StructuredEncryptionHeader.PartialHeader, data _dafny.Sequence) m_Wrappers.Result { + var ret m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = ret + var _0_fieldRootKeyR m_Wrappers.Result + _ = _0_fieldRootKeyR + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = (client).Hkdf(m_AwsCryptographyPrimitivesTypes.Companion_HkdfInput_.Create_HkdfInput_((((alg).Dtor_kdf()).Dtor_HKDF()).Dtor_hmac(), m_Wrappers.Companion_Option_.Create_None_(), key, _dafny.Companion_Sequence_.Concatenate(Companion_Default___.LABEL__ENCRYPTION__KEY(), (head).Dtor_msgID()), (((alg).Dtor_kdf()).Dtor_HKDF()).Dtor_outputKeyLength())) + _0_fieldRootKeyR = _out0 + var _1_valueOrError0 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = _1_valueOrError0 + _1_valueOrError0 = (_0_fieldRootKeyR).MapFailure(func(coer16 func(m_AwsCryptographyPrimitivesTypes.Error) m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Error) func(interface{}) interface{} { + return func(arg21 interface{}) interface{} { + return coer16(arg21.(m_AwsCryptographyPrimitivesTypes.Error)) + } + }(func(_2_e m_AwsCryptographyPrimitivesTypes.Error) m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Error { + return m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Companion_Error_.Create_AwsCryptographyPrimitives_(_2_e) + })) + if (_1_valueOrError0).IsFailure() { + ret = (_1_valueOrError0).PropagateFailure() + return ret + } + var _3_fieldRootKey _dafny.Sequence + _ = _3_fieldRootKey + _3_fieldRootKey = (_1_valueOrError0).Extract().(_dafny.Sequence) + var _4_valueOrError1 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = _4_valueOrError1 + var _out1 m_Wrappers.Result + _ = _out1 + _out1 = Companion_Default___.CryptList(mode, client, alg, _3_fieldRootKey, data) + _4_valueOrError1 = _out1 + if (_4_valueOrError1).IsFailure() { + ret = (_4_valueOrError1).PropagateFailure() + return ret + } + var _5_result _dafny.Sequence + _ = _5_result + _5_result = (_4_valueOrError1).Extract().(_dafny.Sequence) + ret = m_Wrappers.Companion_Result_.Create_Success_(_5_result) + return ret + return ret +} +func (_static *CompanionStruct_Default___) CryptList(mode m_Canonize.EncryptionSelector, client *m_AtomicPrimitives.AtomicPrimitivesClient, alg m_AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo, fieldRootKey _dafny.Sequence, data _dafny.Sequence) m_Wrappers.Result { + var ret m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = ret + var _0_result _dafny.Sequence + _ = _0_result + _0_result = _dafny.SeqOf() + var _1_pos uint32 + _ = _1_pos + _1_pos = uint32(0) + var _2_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _2_valueOrError0 + _2_valueOrError0 = m_Wrappers.Companion_Default___.Need((_dafny.IntOfUint32((data).Cardinality())).Cmp(m_StandardLibrary_UInt.Companion_Default___.UINT32__LIMIT()) < 0, m_StructuredEncryptionUtil.Companion_Default___.E(_dafny.SeqOfString("Too many fields."))) + if (_2_valueOrError0).IsFailure() { + ret = (_2_valueOrError0).PropagateFailure() + return ret + } + var _hi0 _dafny.Int = _dafny.IntOfUint32((data).Cardinality()) + _ = _hi0 + for _3_i := _dafny.Zero; _3_i.Cmp(_hi0) < 0; _3_i = _3_i.Plus(_dafny.One) { + if (((data).Select((_3_i).Uint32()).(m_StructuredEncryptionUtil.CanonCryptoItem)).Dtor_action()).Equals(m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Companion_CryptoAction_.Create_ENCRYPT__AND__SIGN_()) { + var _4_newTerminal m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.StructuredDataTerminal = m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.StructuredDataTerminal{} + _ = _4_newTerminal + if (mode).Equals(m_Canonize.Companion_EncryptionSelector_.Create_DoEncrypt_()) { + var _5_valueOrError1 m_Wrappers.Result = m_Wrappers.Result{} + _ = _5_valueOrError1 + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = Companion_Default___.EncryptTerminal(client, alg, fieldRootKey, _1_pos, ((data).Select((_3_i).Uint32()).(m_StructuredEncryptionUtil.CanonCryptoItem)).Dtor_key(), ((data).Select((_3_i).Uint32()).(m_StructuredEncryptionUtil.CanonCryptoItem)).Dtor_data()) + _5_valueOrError1 = _out0 + if (_5_valueOrError1).IsFailure() { + ret = (_5_valueOrError1).PropagateFailure() + return ret + } + _4_newTerminal = (_5_valueOrError1).Extract().(m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.StructuredDataTerminal) + } else { + var _6_valueOrError2 m_Wrappers.Result = m_Wrappers.Result{} + _ = _6_valueOrError2 + var _out1 m_Wrappers.Result + _ = _out1 + _out1 = Companion_Default___.DecryptTerminal(client, alg, fieldRootKey, _1_pos, ((data).Select((_3_i).Uint32()).(m_StructuredEncryptionUtil.CanonCryptoItem)).Dtor_key(), ((data).Select((_3_i).Uint32()).(m_StructuredEncryptionUtil.CanonCryptoItem)).Dtor_data()) + _6_valueOrError2 = _out1 + if (_6_valueOrError2).IsFailure() { + ret = (_6_valueOrError2).PropagateFailure() + return ret + } + _4_newTerminal = (_6_valueOrError2).Extract().(m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.StructuredDataTerminal) + } + _1_pos = (_1_pos) + (uint32(1)) + var _7_newItem m_StructuredEncryptionUtil.CanonCryptoItem + _ = _7_newItem + var _8_dt__update__tmp_h0 m_StructuredEncryptionUtil.CanonCryptoItem = (data).Select((_3_i).Uint32()).(m_StructuredEncryptionUtil.CanonCryptoItem) + _ = _8_dt__update__tmp_h0 + var _9_dt__update_hdata_h0 m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.StructuredDataTerminal = _4_newTerminal + _ = _9_dt__update_hdata_h0 + _7_newItem = m_StructuredEncryptionUtil.Companion_CanonCryptoItem_.Create_CanonCryptoItem_((_8_dt__update__tmp_h0).Dtor_key(), (_8_dt__update__tmp_h0).Dtor_origKey(), _9_dt__update_hdata_h0, (_8_dt__update__tmp_h0).Dtor_action()) + _0_result = _dafny.Companion_Sequence_.Concatenate(_0_result, _dafny.SeqOf(_7_newItem)) + } else { + _0_result = _dafny.Companion_Sequence_.Concatenate(_0_result, _dafny.SeqOf((data).Select((_3_i).Uint32()).(m_StructuredEncryptionUtil.CanonCryptoItem))) + } + } + ret = m_Wrappers.Companion_Result_.Create_Success_(_0_result) + return ret + return ret +} +func (_static *CompanionStruct_Default___) EncryptTerminal(client *m_AtomicPrimitives.AtomicPrimitivesClient, alg m_AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo, fieldRootKey _dafny.Sequence, offset uint32, path _dafny.Sequence, data m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.StructuredDataTerminal) m_Wrappers.Result { + var ret m_Wrappers.Result = m_Wrappers.Result{} + _ = ret + var _0_valueOrError0 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = _0_valueOrError0 + _0_valueOrError0 = Companion_Default___.FieldKey(fieldRootKey, offset) + if (_0_valueOrError0).IsFailure() { + ret = (_0_valueOrError0).PropagateFailure() + return ret + } + var _1_fieldKey _dafny.Sequence + _ = _1_fieldKey + _1_fieldKey = (_0_valueOrError0).Extract().(_dafny.Sequence) + var _2_cipherkey _dafny.Sequence + _ = _2_cipherkey + _2_cipherkey = (_1_fieldKey).Subsequence(0, (m_StructuredEncryptionUtil.Companion_Default___.KeySize()).Uint32()) + var _3_nonce _dafny.Sequence + _ = _3_nonce + _3_nonce = (_1_fieldKey).Drop((m_StructuredEncryptionUtil.Companion_Default___.KeySize()).Uint32()) + var _4_value _dafny.Sequence + _ = _4_value + _4_value = (data).Dtor_value() + var _5_encInput m_AwsCryptographyPrimitivesTypes.AESEncryptInput + _ = _5_encInput + _5_encInput = m_AwsCryptographyPrimitivesTypes.Companion_AESEncryptInput_.Create_AESEncryptInput_(((alg).Dtor_encrypt()).Dtor_AES__GCM(), _3_nonce, _2_cipherkey, _4_value, path) + var _6_encOutR m_Wrappers.Result + _ = _6_encOutR + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = (client).AESEncrypt(_5_encInput) + _6_encOutR = _out0 + var _7_valueOrError1 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_AwsCryptographyPrimitivesTypes.Companion_AESEncryptOutput_.Default()) + _ = _7_valueOrError1 + _7_valueOrError1 = (_6_encOutR).MapFailure(func(coer17 func(m_AwsCryptographyPrimitivesTypes.Error) m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Error) func(interface{}) interface{} { + return func(arg22 interface{}) interface{} { + return coer17(arg22.(m_AwsCryptographyPrimitivesTypes.Error)) + } + }(func(_8_e m_AwsCryptographyPrimitivesTypes.Error) m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Error { + return m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Companion_Error_.Create_AwsCryptographyPrimitives_(_8_e) + })) + if (_7_valueOrError1).IsFailure() { + ret = (_7_valueOrError1).PropagateFailure() + return ret + } + var _9_encOut m_AwsCryptographyPrimitivesTypes.AESEncryptOutput + _ = _9_encOut + _9_encOut = (_7_valueOrError1).Extract().(m_AwsCryptographyPrimitivesTypes.AESEncryptOutput) + var _10_valueOrError2 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _10_valueOrError2 + _10_valueOrError2 = m_Wrappers.Companion_Default___.Need((_dafny.IntOfUint32(((_9_encOut).Dtor_authTag()).Cardinality())).Cmp(m_StructuredEncryptionUtil.Companion_Default___.AuthTagSize()) == 0, m_StructuredEncryptionUtil.Companion_Default___.E(_dafny.SeqOfString("Auth Tag Wrong Size."))) + if (_10_valueOrError2).IsFailure() { + ret = (_10_valueOrError2).PropagateFailure() + return ret + } + ret = m_Wrappers.Companion_Result_.Create_Success_(m_StructuredEncryptionUtil.Companion_Default___.ValueToData(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate((data).Dtor_typeId(), (_9_encOut).Dtor_cipherText()), (_9_encOut).Dtor_authTag()), m_StructuredEncryptionUtil.Companion_Default___.BYTES__TYPE__ID())) + return ret + return ret +} +func (_static *CompanionStruct_Default___) DecryptTerminal(client *m_AtomicPrimitives.AtomicPrimitivesClient, alg m_AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo, fieldRootKey _dafny.Sequence, offset uint32, path _dafny.Sequence, data m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.StructuredDataTerminal) m_Wrappers.Result { + var ret m_Wrappers.Result = m_Wrappers.Result{} + _ = ret + var _0_valueOrError0 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = _0_valueOrError0 + _0_valueOrError0 = Companion_Default___.FieldKey(fieldRootKey, offset) + if (_0_valueOrError0).IsFailure() { + ret = (_0_valueOrError0).PropagateFailure() + return ret + } + var _1_dataKey _dafny.Sequence + _ = _1_dataKey + _1_dataKey = (_0_valueOrError0).Extract().(_dafny.Sequence) + var _2_encryptionKey _dafny.Sequence + _ = _2_encryptionKey + _2_encryptionKey = (_1_dataKey).Subsequence(0, (m_StructuredEncryptionUtil.Companion_Default___.KeySize()).Uint32()) + var _3_nonce _dafny.Sequence + _ = _3_nonce + _3_nonce = (_1_dataKey).Drop((m_StructuredEncryptionUtil.Companion_Default___.KeySize()).Uint32()) + var _4_value _dafny.Sequence + _ = _4_value + _4_value = (data).Dtor_value() + var _5_valueOrError1 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _5_valueOrError1 + _5_valueOrError1 = m_Wrappers.Companion_Default___.Need(((m_StructuredEncryptionUtil.Companion_Default___.AuthTagSize()).Plus(_dafny.IntOfInt64(2))).Cmp(_dafny.IntOfUint32((_4_value).Cardinality())) <= 0, m_StructuredEncryptionUtil.Companion_Default___.E(_dafny.SeqOfString("cipherTxt too short."))) + if (_5_valueOrError1).IsFailure() { + ret = (_5_valueOrError1).PropagateFailure() + return ret + } + var _6_decInput m_AwsCryptographyPrimitivesTypes.AESDecryptInput + _ = _6_decInput + _6_decInput = m_AwsCryptographyPrimitivesTypes.Companion_AESDecryptInput_.Create_AESDecryptInput_(((alg).Dtor_encrypt()).Dtor_AES__GCM(), _2_encryptionKey, (_4_value).Subsequence((m_StructuredEncryptionUtil.Companion_Default___.TYPEID__LEN()).Uint32(), ((_dafny.IntOfUint32((_4_value).Cardinality())).Minus(m_StructuredEncryptionUtil.Companion_Default___.AuthTagSize())).Uint32()), (_4_value).Drop(((_dafny.IntOfUint32((_4_value).Cardinality())).Minus(m_StructuredEncryptionUtil.Companion_Default___.AuthTagSize())).Uint32()), _3_nonce, path) + var _7_decOutR m_Wrappers.Result + _ = _7_decOutR + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = (client).AESDecrypt(_6_decInput) + _7_decOutR = _out0 + var _8_valueOrError2 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = _8_valueOrError2 + _8_valueOrError2 = (_7_decOutR).MapFailure(func(coer18 func(m_AwsCryptographyPrimitivesTypes.Error) m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Error) func(interface{}) interface{} { + return func(arg23 interface{}) interface{} { + return coer18(arg23.(m_AwsCryptographyPrimitivesTypes.Error)) + } + }(func(_9_e m_AwsCryptographyPrimitivesTypes.Error) m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Error { + return m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Companion_Error_.Create_AwsCryptographyPrimitives_(_9_e) + })) + if (_8_valueOrError2).IsFailure() { + ret = (_8_valueOrError2).PropagateFailure() + return ret + } + var _10_decOut _dafny.Sequence + _ = _10_decOut + _10_decOut = (_8_valueOrError2).Extract().(_dafny.Sequence) + ret = m_Wrappers.Companion_Result_.Create_Success_(m_StructuredEncryptionUtil.Companion_Default___.ValueToData(_10_decOut, (_4_value).Take((m_StructuredEncryptionUtil.Companion_Default___.TYPEID__LEN()).Uint32()))) + return ret + return ret +} +func (_static *CompanionStruct_Default___) LABEL__COMMITMENT__KEY() _dafny.Sequence { + return m_UTF8.Companion_Default___.EncodeAscii(_dafny.SeqOfString("AWS_DBE_COMMIT_KEY")) +} +func (_static *CompanionStruct_Default___) LABEL__ENCRYPTION__KEY() _dafny.Sequence { + return m_UTF8.Companion_Default___.EncodeAscii(_dafny.SeqOfString("AWS_DBE_DERIVE_KEY")) +} + +// End of class Default__ diff --git a/customer-preview/ddb-esdk/StructuredEncryptionFooter/StructuredEncryptionFooter.go b/customer-preview/ddb-esdk/StructuredEncryptionFooter/StructuredEncryptionFooter.go new file mode 100644 index 000000000..0c107cd5c --- /dev/null +++ b/customer-preview/ddb-esdk/StructuredEncryptionFooter/StructuredEncryptionFooter.go @@ -0,0 +1,886 @@ +// Package StructuredEncryptionFooter +// Dafny module StructuredEncryptionFooter compiled into Go + +package StructuredEncryptionFooter + +import ( + os "os" + + m_ComAmazonawsDynamodbTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/ComAmazonawsDynamodbTypes" + m_Com_Amazonaws_Dynamodb "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/Com_Amazonaws_Dynamodb" + m_ComAmazonawsKmsTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/ComAmazonawsKmsTypes" + m_Com_Amazonaws_Kms "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/Com_Amazonaws_Kms" + m_AlgorithmSuites "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AlgorithmSuites" + m_AwsArnParsing "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsArnParsing" + m_AwsCryptographyKeyStoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreOperations" + m_AwsCryptographyKeyStoreTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreTypes" + m_AwsCryptographyMaterialProvidersOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersOperations" + m_AwsCryptographyMaterialProvidersTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersTypes" + m_AwsKmsDiscoveryKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsDiscoveryKeyring" + m_AwsKmsEcdhKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsEcdhKeyring" + m_AwsKmsHierarchicalKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsHierarchicalKeyring" + m_AwsKmsKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsKeyring" + m_AwsKmsMrkAreUnique "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkAreUnique" + m_AwsKmsMrkDiscoveryKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkDiscoveryKeyring" + m_AwsKmsMrkKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkKeyring" + m_AwsKmsMrkMatchForDecrypt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkMatchForDecrypt" + m_AwsKmsRsaKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsRsaKeyring" + m_AwsKmsUtils "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsUtils" + m_CMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CMM" + m_CacheConstants "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CacheConstants" + m_CanonicalEncryptionContext "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CanonicalEncryptionContext" + m_Commitment "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Commitment" + m_Constants "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Constants" + m_CreateKeyStoreTable "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeyStoreTable" + m_CreateKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeys" + m_DDBKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DDBKeystoreOperations" + m_DefaultCMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DefaultCMM" + m_DefaultClientSupplier "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DefaultClientSupplier" + m_Defaults "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Defaults" + m_DiscoveryMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DiscoveryMultiKeyring" + m_EcdhEdkWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/EcdhEdkWrapping" + m_EdkWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/EdkWrapping" + m_ErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/ErrorMessages" + m_GetKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/GetKeys" + m_IntermediateKeyWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/IntermediateKeyWrapping" + m_KMSKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KMSKeystoreOperations" + m_KeyStore "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStore" + m_KeyStoreErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStoreErrorMessages" + m_Keyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Keyring" + m_KmsArn "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KmsArn" + m_LocalCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/LocalCMC" + m_MaterialProviders "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MaterialProviders" + m_MaterialWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MaterialWrapping" + m_Materials "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Materials" + m_MrkAwareDiscoveryMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MrkAwareDiscoveryMultiKeyring" + m_MrkAwareStrictMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MrkAwareStrictMultiKeyring" + m_MultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MultiKeyring" + m_RawAESKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawAESKeyring" + m_RawECDHKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawECDHKeyring" + m_RawRSAKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawRSAKeyring" + m_RequiredEncryptionContextCMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RequiredEncryptionContextCMM" + m_StormTracker "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StormTracker" + m_StormTrackingCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StormTrackingCMC" + m_StrictMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StrictMultiKeyring" + m_Structure "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Structure" + m_SynchronizedLocalCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/SynchronizedLocalCMC" + m_Utils "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Utils" + m_AtomicPrimitives "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AtomicPrimitives" + m_AwsCryptographyPrimitivesOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesOperations" + m_AwsCryptographyPrimitivesTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesTypes" + m_Digest "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Digest" + m_HKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/HKDF" + m_KdfCtr "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/KdfCtr" + m_Random "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Random" + m_WrappedHKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHKDF" + m_WrappedHMAC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHMAC" + m_Actions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Actions" + m_Base64 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64" + m_Base64Lemmas "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64Lemmas" + m_BoundedInts "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/BoundedInts" + m_DivInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternals" + m_DivInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternalsNonlinear" + m_DivMod "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivMod" + m_FileIO "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FileIO" + m_FloatCompare "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FloatCompare" + m_Functions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Functions" + m_GeneralInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GeneralInternals" + m_GetOpt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GetOpt" + m_HexStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/HexStrings" + m_Logarithm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Logarithm" + m__Math "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Math_" + m_ModInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternals" + m_ModInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternalsNonlinear" + m_Mul "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Mul" + m_MulInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternals" + m_MulInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternalsNonlinear" + m_Power "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Power" + m_Relations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Relations" + m_Seq "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq" + m_Seq_MergeSort "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq_MergeSort" + m_Sorting "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Sorting" + m_StandardLibrary "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary" + m_StandardLibraryInterop "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibraryInterop" + m_StandardLibrary_Sequence "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_Sequence" + m_StandardLibrary_String "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_String" + m_StandardLibrary_UInt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_UInt" + m_Streams "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Streams" + m_UTF8 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UTF8" + m_UnicodeStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UnicodeStrings" + m__Unicode "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Unicode_" + m_Utf16EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf16EncodingForm" + m_Utf8EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf8EncodingForm" + m_Wrappers "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers" + m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes" + m_Sets "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/Sets" + m_StructuredEncryptionHeader "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionHeader" + m_StructuredEncryptionPaths "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionPaths" + m_StructuredEncryptionUtil "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionUtil" + m__System "github.com/dafny-lang/DafnyRuntimeGo/v4/System_" + _dafny "github.com/dafny-lang/DafnyRuntimeGo/v4/dafny" +) + +var _ = os.Args +var _ _dafny.Dummy__ +var _ m__System.Dummy__ +var _ m_Wrappers.Dummy__ +var _ m_BoundedInts.Dummy__ +var _ m_StandardLibrary_UInt.Dummy__ +var _ m_StandardLibrary_Sequence.Dummy__ +var _ m_StandardLibrary_String.Dummy__ +var _ m_StandardLibrary.Dummy__ +var _ m_AwsCryptographyPrimitivesTypes.Dummy__ +var _ m_Random.Dummy__ +var _ m_Digest.Dummy__ +var _ m_WrappedHMAC.Dummy__ +var _ m_HKDF.Dummy__ +var _ m_WrappedHKDF.Dummy__ +var _ m_KdfCtr.Dummy__ +var _ m_AwsCryptographyPrimitivesOperations.Dummy__ +var _ m_AtomicPrimitives.Dummy__ +var _ m_ComAmazonawsDynamodbTypes.Dummy__ +var _ m_ComAmazonawsKmsTypes.Dummy__ +var _ m_AwsCryptographyKeyStoreTypes.Dummy__ +var _ m_AwsCryptographyMaterialProvidersTypes.Dummy__ +var _ m_Base64.Dummy__ +var _ m_AlgorithmSuites.Dummy__ +var _ m_Materials.Dummy__ +var _ m_Keyring.Dummy__ +var _ m_Relations.Dummy__ +var _ m_Seq_MergeSort.Dummy__ +var _ m__Math.Dummy__ +var _ m_Seq.Dummy__ +var _ m_MultiKeyring.Dummy__ +var _ m_AwsArnParsing.Dummy__ +var _ m_AwsKmsMrkAreUnique.Dummy__ +var _ m_Actions.Dummy__ +var _ m_AwsKmsMrkMatchForDecrypt.Dummy__ +var _ m_AwsKmsUtils.Dummy__ +var _ m_Constants.Dummy__ +var _ m_MaterialWrapping.Dummy__ +var _ m_CanonicalEncryptionContext.Dummy__ +var _ m_IntermediateKeyWrapping.Dummy__ +var _ m_EdkWrapping.Dummy__ +var _ m_ErrorMessages.Dummy__ +var _ m_AwsKmsKeyring.Dummy__ +var _ m_StrictMultiKeyring.Dummy__ +var _ m_AwsKmsDiscoveryKeyring.Dummy__ +var _ m_Com_Amazonaws_Kms.Dummy__ +var _ m_Com_Amazonaws_Dynamodb.Dummy__ +var _ m_DiscoveryMultiKeyring.Dummy__ +var _ m_AwsKmsMrkDiscoveryKeyring.Dummy__ +var _ m_MrkAwareDiscoveryMultiKeyring.Dummy__ +var _ m_AwsKmsMrkKeyring.Dummy__ +var _ m_MrkAwareStrictMultiKeyring.Dummy__ +var _ m_LocalCMC.Dummy__ +var _ m_SynchronizedLocalCMC.Dummy__ +var _ m_StormTracker.Dummy__ +var _ m_StormTrackingCMC.Dummy__ +var _ m_CacheConstants.Dummy__ +var _ m_AwsKmsHierarchicalKeyring.Dummy__ +var _ m_AwsKmsRsaKeyring.Dummy__ +var _ m_EcdhEdkWrapping.Dummy__ +var _ m_RawECDHKeyring.Dummy__ +var _ m_AwsKmsEcdhKeyring.Dummy__ +var _ m_RawAESKeyring.Dummy__ +var _ m_RawRSAKeyring.Dummy__ +var _ m_CMM.Dummy__ +var _ m_Defaults.Dummy__ +var _ m_Commitment.Dummy__ +var _ m_DefaultCMM.Dummy__ +var _ m_DefaultClientSupplier.Dummy__ +var _ m_Utils.Dummy__ +var _ m_RequiredEncryptionContextCMM.Dummy__ +var _ m_AwsCryptographyMaterialProvidersOperations.Dummy__ +var _ m_MaterialProviders.Dummy__ +var _ m_KeyStoreErrorMessages.Dummy__ +var _ m_KmsArn.Dummy__ +var _ m_Structure.Dummy__ +var _ m_KMSKeystoreOperations.Dummy__ +var _ m_DDBKeystoreOperations.Dummy__ +var _ m_CreateKeys.Dummy__ +var _ m_CreateKeyStoreTable.Dummy__ +var _ m_GetKeys.Dummy__ +var _ m_AwsCryptographyKeyStoreOperations.Dummy__ +var _ m_KeyStore.Dummy__ +var _ m__Unicode.Dummy__ +var _ m_Functions.Dummy__ +var _ m_Utf8EncodingForm.Dummy__ +var _ m_Utf16EncodingForm.Dummy__ +var _ m_UnicodeStrings.Dummy__ +var _ m_FileIO.Dummy__ +var _ m_GeneralInternals.Dummy__ +var _ m_MulInternalsNonlinear.Dummy__ +var _ m_MulInternals.Dummy__ +var _ m_Mul.Dummy__ +var _ m_ModInternalsNonlinear.Dummy__ +var _ m_DivInternalsNonlinear.Dummy__ +var _ m_ModInternals.Dummy__ +var _ m_DivInternals.Dummy__ +var _ m_DivMod.Dummy__ +var _ m_Power.Dummy__ +var _ m_Logarithm.Dummy__ +var _ m_StandardLibraryInterop.Dummy__ +var _ m_Streams.Dummy__ +var _ m_Sorting.Dummy__ +var _ m_HexStrings.Dummy__ +var _ m_GetOpt.Dummy__ +var _ m_FloatCompare.Dummy__ +var _ m_Base64Lemmas.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Dummy__ +var _ m_StructuredEncryptionUtil.Dummy__ +var _ m_Sets.Dummy__ +var _ m_StructuredEncryptionPaths.Dummy__ +var _ m_StructuredEncryptionHeader.Dummy__ + +type Dummy__ struct{} + +// Definition of class Default__ +type Default__ struct { + dummy byte +} + +func New_Default___() *Default__ { + _this := Default__{} + + return &_this +} + +type CompanionStruct_Default___ struct { +} + +var Companion_Default___ = CompanionStruct_Default___{} + +func (_this *Default__) Equals(other *Default__) bool { + return _this == other +} + +func (_this *Default__) EqualsGeneric(x interface{}) bool { + other, ok := x.(*Default__) + return ok && _this.Equals(other) +} + +func (*Default__) String() string { + return "StructuredEncryptionFooter.Default__" +} +func (_this *Default__) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = &Default__{} + +func (_static *CompanionStruct_Default___) GetCanonicalType(value m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.StructuredDataTerminal, isEncrypted bool) m_Wrappers.Result { + if isEncrypted { + var _0_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need(((_dafny.IntOfInt64(2)).Cmp(_dafny.IntOfUint32(((value).Dtor_value()).Cardinality())) <= 0) && ((_dafny.IntOfUint32(((value).Dtor_value()).Cardinality())).Cmp(m_StandardLibrary_UInt.Companion_Default___.UINT64__LIMIT()) < 0), m_StructuredEncryptionUtil.Companion_Default___.E(_dafny.SeqOfString("Bad length."))) + _ = _0_valueOrError0 + if (_0_valueOrError0).IsFailure() { + return (_0_valueOrError0).PropagateFailure() + } else { + return m_Wrappers.Companion_Result_.Create_Success_(_dafny.Companion_Sequence_.Concatenate(m_StandardLibrary_UInt.Companion_Default___.UInt64ToSeq(((_dafny.IntOfUint32(((value).Dtor_value()).Cardinality())).Minus(_dafny.IntOfInt64(2))).Uint64()), m_UTF8.Companion_Default___.EncodeAscii(_dafny.SeqOfString("ENCRYPTED")))) + } + } else { + var _1_valueOrError1 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need((_dafny.IntOfUint32(((value).Dtor_value()).Cardinality())).Cmp(m_StandardLibrary_UInt.Companion_Default___.UINT64__LIMIT()) < 0, m_StructuredEncryptionUtil.Companion_Default___.E(_dafny.SeqOfString("Bad length."))) + _ = _1_valueOrError1 + if (_1_valueOrError1).IsFailure() { + return (_1_valueOrError1).PropagateFailure() + } else { + return m_Wrappers.Companion_Result_.Create_Success_(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(m_StandardLibrary_UInt.Companion_Default___.UInt64ToSeq(uint64(((value).Dtor_value()).Cardinality())), m_UTF8.Companion_Default___.EncodeAscii(_dafny.SeqOfString("PLAINTEXT"))), (value).Dtor_typeId())) + } + } +} +func (_static *CompanionStruct_Default___) GetCanonicalEncryptedField(fieldName _dafny.Sequence, value m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.StructuredDataTerminal) m_Wrappers.Result { + var _0_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need(((_dafny.IntOfInt64(2)).Cmp(_dafny.IntOfUint32(((value).Dtor_value()).Cardinality())) <= 0) && ((_dafny.IntOfUint32(((value).Dtor_value()).Cardinality())).Cmp(m_StandardLibrary_UInt.Companion_Default___.UINT64__LIMIT()) < 0), m_StructuredEncryptionUtil.Companion_Default___.E(_dafny.SeqOfString("Bad length."))) + _ = _0_valueOrError0 + if (_0_valueOrError0).IsFailure() { + return (_0_valueOrError0).PropagateFailure() + } else { + return m_Wrappers.Companion_Result_.Create_Success_(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(fieldName, m_StandardLibrary_UInt.Companion_Default___.UInt64ToSeq(((_dafny.IntOfUint32(((value).Dtor_value()).Cardinality())).Minus(_dafny.IntOfInt64(2))).Uint64())), m_UTF8.Companion_Default___.EncodeAscii(_dafny.SeqOfString("ENCRYPTED"))), (value).Dtor_value())) + } +} +func (_static *CompanionStruct_Default___) GetCanonicalPlaintextField(fieldName _dafny.Sequence, value m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.StructuredDataTerminal) m_Wrappers.Result { + var _0_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need((_dafny.IntOfUint32(((value).Dtor_value()).Cardinality())).Cmp(m_StandardLibrary_UInt.Companion_Default___.UINT64__LIMIT()) < 0, m_StructuredEncryptionUtil.Companion_Default___.E(_dafny.SeqOfString("Bad length."))) + _ = _0_valueOrError0 + if (_0_valueOrError0).IsFailure() { + return (_0_valueOrError0).PropagateFailure() + } else { + return m_Wrappers.Companion_Result_.Create_Success_(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(fieldName, m_StandardLibrary_UInt.Companion_Default___.UInt64ToSeq(uint64(((value).Dtor_value()).Cardinality()))), m_UTF8.Companion_Default___.EncodeAscii(_dafny.SeqOfString("PLAINTEXT"))), (value).Dtor_typeId()), (value).Dtor_value())) + } +} +func (_static *CompanionStruct_Default___) GetCanonicalItem(data m_StructuredEncryptionUtil.CanonCryptoItem) m_Wrappers.Result { + if ((data).Dtor_action()).Equals(m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Companion_CryptoAction_.Create_ENCRYPT__AND__SIGN_()) { + return Companion_Default___.GetCanonicalEncryptedField((data).Dtor_key(), (data).Dtor_data()) + } else { + return Companion_Default___.GetCanonicalPlaintextField((data).Dtor_key(), (data).Dtor_data()) + } +} +func (_static *CompanionStruct_Default___) CanonContent(data _dafny.Sequence, canonized _dafny.Sequence) m_Wrappers.Result { + goto TAIL_CALL_START +TAIL_CALL_START: + if (_dafny.IntOfUint32((data).Cardinality())).Sign() == 0 { + return m_Wrappers.Companion_Result_.Create_Success_(canonized) + } else if (((data).Select(0).(m_StructuredEncryptionUtil.CanonCryptoItem)).Dtor_action()).Equals(m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Companion_CryptoAction_.Create_DO__NOTHING_()) { + var _in0 _dafny.Sequence = (data).Drop(1) + _ = _in0 + var _in1 _dafny.Sequence = canonized + _ = _in1 + data = _in0 + canonized = _in1 + goto TAIL_CALL_START + } else { + var _0_valueOrError0 m_Wrappers.Result = Companion_Default___.GetCanonicalItem((data).Select(0).(m_StructuredEncryptionUtil.CanonCryptoItem)) + _ = _0_valueOrError0 + if (_0_valueOrError0).IsFailure() { + return (_0_valueOrError0).PropagateFailure() + } else { + var _1_newPart _dafny.Sequence = (_0_valueOrError0).Extract().(_dafny.Sequence) + _ = _1_newPart + var _in2 _dafny.Sequence = (data).Drop(1) + _ = _in2 + var _in3 _dafny.Sequence = _dafny.Companion_Sequence_.Concatenate(canonized, _1_newPart) + _ = _in3 + data = _in2 + canonized = _in3 + goto TAIL_CALL_START + } + } +} +func (_static *CompanionStruct_Default___) CanonRecord(data _dafny.Sequence, header _dafny.Sequence, enc _dafny.Map) m_Wrappers.Result { + var _0_valueOrError0 m_Wrappers.Result = Companion_Default___.CanonContent(data, _dafny.SeqOf()) + _ = _0_valueOrError0 + if (_0_valueOrError0).IsFailure() { + return (_0_valueOrError0).PropagateFailure() + } else { + var _1_canon _dafny.Sequence = (_0_valueOrError0).Extract().(_dafny.Sequence) + _ = _1_canon + var _2_AAD _dafny.Sequence = m_StructuredEncryptionHeader.Companion_Default___.SerializeContext(enc) + _ = _2_AAD + var _3_valueOrError1 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need((_dafny.IntOfUint32((_2_AAD).Cardinality())).Cmp(m_StandardLibrary_UInt.Companion_Default___.UINT64__LIMIT()) < 0, m_StructuredEncryptionUtil.Companion_Default___.E(_dafny.SeqOfString("AAD too long."))) + _ = _3_valueOrError1 + if (_3_valueOrError1).IsFailure() { + return (_3_valueOrError1).PropagateFailure() + } else { + var _4_len _dafny.Sequence = m_StandardLibrary_UInt.Companion_Default___.UInt64ToSeq(uint64((_2_AAD).Cardinality())) + _ = _4_len + return m_Wrappers.Companion_Result_.Create_Success_(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(header, _4_len), _2_AAD), _1_canon)) + } + } +} +func (_static *CompanionStruct_Default___) CanonHash(data _dafny.Sequence, header _dafny.Sequence, enc _dafny.Map) m_Wrappers.Result { + var ret m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = ret + var _0_valueOrError0 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = _0_valueOrError0 + _0_valueOrError0 = Companion_Default___.CanonRecord(data, header, enc) + if (_0_valueOrError0).IsFailure() { + ret = (_0_valueOrError0).PropagateFailure() + return ret + } + var _1_data _dafny.Sequence + _ = _1_data + _1_data = (_0_valueOrError0).Extract().(_dafny.Sequence) + var _2_resultR m_Wrappers.Result + _ = _2_resultR + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_Digest.Companion_Default___.Digest(m_AwsCryptographyPrimitivesTypes.Companion_DigestInput_.Create_DigestInput_(m_AwsCryptographyPrimitivesTypes.Companion_DigestAlgorithm_.Create_SHA__384_(), _1_data)) + _2_resultR = _out0 + ret = (_2_resultR).MapFailure(func(coer5 func(m_AwsCryptographyPrimitivesTypes.Error) m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Error) func(interface{}) interface{} { + return func(arg8 interface{}) interface{} { + return coer5(arg8.(m_AwsCryptographyPrimitivesTypes.Error)) + } + }(func(_3_e m_AwsCryptographyPrimitivesTypes.Error) m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Error { + return m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Companion_Error_.Create_AwsCryptographyPrimitives_(_3_e) + })) + return ret + return ret +} +func (_static *CompanionStruct_Default___) CreateFooter(client *m_AtomicPrimitives.AtomicPrimitivesClient, mat m_AwsCryptographyMaterialProvidersTypes.EncryptionMaterials, data _dafny.Sequence, header _dafny.Sequence) m_Wrappers.Result { + var ret m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(Companion_Footer_.Default()) + _ = ret + var _0_valueOrError0 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = _0_valueOrError0 + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = Companion_Default___.CanonHash(data, header, (mat).Dtor_encryptionContext()) + _0_valueOrError0 = _out0 + if (_0_valueOrError0).IsFailure() { + ret = (_0_valueOrError0).PropagateFailure() + return ret + } + var _1_canonicalHash _dafny.Sequence + _ = _1_canonicalHash + _1_canonicalHash = (_0_valueOrError0).Extract().(_dafny.Sequence) + var _2_tags _dafny.Sequence + _ = _2_tags + _2_tags = _dafny.SeqOf() + var _hi0 _dafny.Int = _dafny.IntOfUint32(((mat).Dtor_encryptedDataKeys()).Cardinality()) + _ = _hi0 + for _3_i := _dafny.Zero; _3_i.Cmp(_hi0) < 0; _3_i = _3_i.Plus(_dafny.One) { + var _4_input m_AwsCryptographyPrimitivesTypes.HMacInput + _ = _4_input + _4_input = m_AwsCryptographyPrimitivesTypes.Companion_HMacInput_.Create_HMacInput_((((mat).Dtor_algorithmSuite()).Dtor_symmetricSignature()).Dtor_HMAC(), (((mat).Dtor_symmetricSigningKeys()).Dtor_value().(_dafny.Sequence)).Select((_3_i).Uint32()).(_dafny.Sequence), _1_canonicalHash) + var _5_hashR m_Wrappers.Result + _ = _5_hashR + _5_hashR = (client).HMac(_4_input) + var _6_valueOrError1 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = _6_valueOrError1 + _6_valueOrError1 = (_5_hashR).MapFailure(func(coer6 func(m_AwsCryptographyPrimitivesTypes.Error) m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Error) func(interface{}) interface{} { + return func(arg9 interface{}) interface{} { + return coer6(arg9.(m_AwsCryptographyPrimitivesTypes.Error)) + } + }(func(_7_e m_AwsCryptographyPrimitivesTypes.Error) m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Error { + return m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Companion_Error_.Create_AwsCryptographyPrimitives_(_7_e) + })) + if (_6_valueOrError1).IsFailure() { + ret = (_6_valueOrError1).PropagateFailure() + return ret + } + var _8_hash _dafny.Sequence + _ = _8_hash + _8_hash = (_6_valueOrError1).Extract().(_dafny.Sequence) + var _9_valueOrError2 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _9_valueOrError2 + _9_valueOrError2 = m_Wrappers.Companion_Default___.Need((_dafny.IntOfUint32((_8_hash).Cardinality())).Cmp(_dafny.IntOfInt64(48)) == 0, m_StructuredEncryptionUtil.Companion_Default___.E(_dafny.SeqOfString("Bad hash length"))) + if (_9_valueOrError2).IsFailure() { + ret = (_9_valueOrError2).PropagateFailure() + return ret + } + _2_tags = _dafny.Companion_Sequence_.Concatenate(_2_tags, _dafny.SeqOf(_8_hash)) + } + if (((mat).Dtor_algorithmSuite()).Dtor_signature()).Is_ECDSA() { + var _10_verInput m_AwsCryptographyPrimitivesTypes.ECDSASignInput + _ = _10_verInput + _10_verInput = m_AwsCryptographyPrimitivesTypes.Companion_ECDSASignInput_.Create_ECDSASignInput_(((((mat).Dtor_algorithmSuite()).Dtor_signature()).Dtor_ECDSA()).Dtor_curve(), ((mat).Dtor_signingKey()).Dtor_value().(_dafny.Sequence), _1_canonicalHash) + var _11_sigR m_Wrappers.Result + _ = _11_sigR + var _out1 m_Wrappers.Result + _ = _out1 + _out1 = (client).ECDSASign(_10_verInput) + _11_sigR = _out1 + var _12_valueOrError3 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = _12_valueOrError3 + _12_valueOrError3 = (_11_sigR).MapFailure(func(coer7 func(m_AwsCryptographyPrimitivesTypes.Error) m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Error) func(interface{}) interface{} { + return func(arg10 interface{}) interface{} { + return coer7(arg10.(m_AwsCryptographyPrimitivesTypes.Error)) + } + }(func(_13_e m_AwsCryptographyPrimitivesTypes.Error) m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Error { + return m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Companion_Error_.Create_AwsCryptographyPrimitives_(_13_e) + })) + if (_12_valueOrError3).IsFailure() { + ret = (_12_valueOrError3).PropagateFailure() + return ret + } + var _14_sig _dafny.Sequence + _ = _14_sig + _14_sig = (_12_valueOrError3).Extract().(_dafny.Sequence) + var _15_valueOrError4 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _15_valueOrError4 + _15_valueOrError4 = m_Wrappers.Companion_Default___.Need((_dafny.IntOfUint32((_14_sig).Cardinality())).Cmp(Companion_Default___.SignatureSize()) == 0, m_StructuredEncryptionUtil.Companion_Default___.E(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.SeqOfString("Signature is "), m_StandardLibrary_String.Companion_Default___.Base10Int2String(_dafny.IntOfUint32((_14_sig).Cardinality()))), _dafny.SeqOfString(" bytes, should have been ")), m_StandardLibrary_String.Companion_Default___.Base10Int2String(Companion_Default___.SignatureSize())), _dafny.SeqOfString(" bytes.")))) + if (_15_valueOrError4).IsFailure() { + ret = (_15_valueOrError4).PropagateFailure() + return ret + } + ret = m_Wrappers.Companion_Result_.Create_Success_(Companion_Footer_.Create_Footer_(_2_tags, m_Wrappers.Companion_Option_.Create_Some_(_14_sig))) + return ret + } else { + ret = m_Wrappers.Companion_Result_.Create_Success_(Companion_Footer_.Create_Footer_(_2_tags, m_Wrappers.Companion_Option_.Create_None_())) + return ret + } + return ret +} +func (_static *CompanionStruct_Default___) SerializeTags(tags _dafny.Sequence) _dafny.Sequence { + var _0___accumulator _dafny.Sequence = _dafny.SeqOf() + _ = _0___accumulator + goto TAIL_CALL_START +TAIL_CALL_START: + if (_dafny.IntOfUint32((tags).Cardinality())).Sign() == 0 { + return _dafny.Companion_Sequence_.Concatenate(_0___accumulator, _dafny.SeqOf()) + } else { + _0___accumulator = _dafny.Companion_Sequence_.Concatenate(_0___accumulator, (tags).Select(0).(_dafny.Sequence)) + var _in0 _dafny.Sequence = (tags).Drop(1) + _ = _in0 + tags = _in0 + goto TAIL_CALL_START + } +} +func (_static *CompanionStruct_Default___) SerializeSig(sig m_Wrappers.Option) _dafny.Sequence { + if (sig).Is_Some() { + return (sig).Dtor_value().(_dafny.Sequence) + } else { + return _dafny.SeqOf() + } +} +func (_static *CompanionStruct_Default___) GatherTags(data _dafny.Sequence) _dafny.Sequence { + var _0___accumulator _dafny.Sequence = _dafny.SeqOf() + _ = _0___accumulator + goto TAIL_CALL_START +TAIL_CALL_START: + if (_dafny.IntOfUint32((data).Cardinality())).Sign() == 0 { + return _dafny.Companion_Sequence_.Concatenate(_0___accumulator, _dafny.SeqOf()) + } else { + _0___accumulator = _dafny.Companion_Sequence_.Concatenate(_0___accumulator, _dafny.SeqOf((data).Subsequence(0, (Companion_Default___.RecipientTagSize()).Uint32()))) + var _in0 _dafny.Sequence = (data).Drop((Companion_Default___.RecipientTagSize()).Uint32()) + _ = _in0 + data = _in0 + goto TAIL_CALL_START + } +} +func (_static *CompanionStruct_Default___) DeserializeFooter(data _dafny.Sequence, hasSig bool) m_Wrappers.Result { + if hasSig { + var _0_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need((((_dafny.IntOfUint32((data).Cardinality())).Minus(Companion_Default___.SignatureSize())).Modulo(Companion_Default___.RecipientTagSize())).Sign() == 0, m_StructuredEncryptionUtil.Companion_Default___.E(_dafny.SeqOfString("Mangled signed footer has strange size"))) + _ = _0_valueOrError0 + if (_0_valueOrError0).IsFailure() { + return (_0_valueOrError0).PropagateFailure() + } else { + var _1_valueOrError1 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need((_dafny.IntOfUint32((data).Cardinality())).Cmp((Companion_Default___.RecipientTagSize()).Plus(Companion_Default___.SignatureSize())) >= 0, m_StructuredEncryptionUtil.Companion_Default___.E(_dafny.SeqOfString("Footer too short."))) + _ = _1_valueOrError1 + if (_1_valueOrError1).IsFailure() { + return (_1_valueOrError1).PropagateFailure() + } else { + return m_Wrappers.Companion_Result_.Create_Success_(Companion_Footer_.Create_Footer_(Companion_Default___.GatherTags((data).Take(((_dafny.IntOfUint32((data).Cardinality())).Minus(Companion_Default___.SignatureSize())).Uint32())), m_Wrappers.Companion_Option_.Create_Some_((data).Drop(((_dafny.IntOfUint32((data).Cardinality())).Minus(Companion_Default___.SignatureSize())).Uint32())))) + } + } + } else { + var _2_valueOrError2 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need(((_dafny.IntOfUint32((data).Cardinality())).Modulo(Companion_Default___.RecipientTagSize())).Sign() == 0, m_StructuredEncryptionUtil.Companion_Default___.E(_dafny.SeqOfString("Mangled unsigned footer has strange size"))) + _ = _2_valueOrError2 + if (_2_valueOrError2).IsFailure() { + return (_2_valueOrError2).PropagateFailure() + } else { + var _3_valueOrError3 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need((_dafny.IntOfUint32((data).Cardinality())).Cmp(Companion_Default___.RecipientTagSize()) >= 0, m_StructuredEncryptionUtil.Companion_Default___.E(_dafny.SeqOfString("Footer too short."))) + _ = _3_valueOrError3 + if (_3_valueOrError3).IsFailure() { + return (_3_valueOrError3).PropagateFailure() + } else { + return m_Wrappers.Companion_Result_.Create_Success_(Companion_Footer_.Create_Footer_(Companion_Default___.GatherTags(data), m_Wrappers.Companion_Option_.Create_None_())) + } + } + } +} +func (_static *CompanionStruct_Default___) RecipientTagSize() _dafny.Int { + return _dafny.IntOfInt64(48) +} +func (_static *CompanionStruct_Default___) SignatureSize() _dafny.Int { + return _dafny.IntOfInt64(103) +} + +// End of class Default__ + +// Definition of class RecipientTag +type RecipientTag struct { +} + +func New_RecipientTag_() *RecipientTag { + _this := RecipientTag{} + + return &_this +} + +type CompanionStruct_RecipientTag_ struct { +} + +var Companion_RecipientTag_ = CompanionStruct_RecipientTag_{} + +func (*RecipientTag) String() string { + return "StructuredEncryptionFooter.RecipientTag" +} + +// End of class RecipientTag + +func Type_RecipientTag_() _dafny.TypeDescriptor { + return type_RecipientTag_{} +} + +type type_RecipientTag_ struct { +} + +func (_this type_RecipientTag_) Default() interface{} { + return _dafny.EmptySeq +} + +func (_this type_RecipientTag_) String() string { + return "StructuredEncryptionFooter.RecipientTag" +} +func (_this *CompanionStruct_RecipientTag_) Is_(__source _dafny.Sequence) bool { + var _0_x _dafny.Sequence = (__source) + _ = _0_x + return (_dafny.IntOfUint32((_0_x).Cardinality())).Cmp(Companion_Default___.RecipientTagSize()) == 0 +} + +// Definition of class Signature +type Signature struct { +} + +func New_Signature_() *Signature { + _this := Signature{} + + return &_this +} + +type CompanionStruct_Signature_ struct { +} + +var Companion_Signature_ = CompanionStruct_Signature_{} + +func (*Signature) String() string { + return "StructuredEncryptionFooter.Signature" +} + +// End of class Signature + +func Type_Signature_() _dafny.TypeDescriptor { + return type_Signature_{} +} + +type type_Signature_ struct { +} + +func (_this type_Signature_) Default() interface{} { + return _dafny.EmptySeq +} + +func (_this type_Signature_) String() string { + return "StructuredEncryptionFooter.Signature" +} +func (_this *CompanionStruct_Signature_) Is_(__source _dafny.Sequence) bool { + var _1_x _dafny.Sequence = (__source) + _ = _1_x + return (_dafny.IntOfUint32((_1_x).Cardinality())).Cmp(Companion_Default___.SignatureSize()) == 0 +} + +// Definition of datatype Footer +type Footer struct { + Data_Footer_ +} + +func (_this Footer) Get_() Data_Footer_ { + return _this.Data_Footer_ +} + +type Data_Footer_ interface { + isFooter() +} + +type CompanionStruct_Footer_ struct { +} + +var Companion_Footer_ = CompanionStruct_Footer_{} + +type Footer_Footer struct { + Tags _dafny.Sequence + Sig m_Wrappers.Option +} + +func (Footer_Footer) isFooter() {} + +func (CompanionStruct_Footer_) Create_Footer_(Tags _dafny.Sequence, Sig m_Wrappers.Option) Footer { + return Footer{Footer_Footer{Tags, Sig}} +} + +func (_this Footer) Is_Footer() bool { + _, ok := _this.Get_().(Footer_Footer) + return ok +} + +func (CompanionStruct_Footer_) Default() Footer { + return Companion_Footer_.Create_Footer_(_dafny.EmptySeq, m_Wrappers.Companion_Option_.Default()) +} + +func (_this Footer) Dtor_tags() _dafny.Sequence { + return _this.Get_().(Footer_Footer).Tags +} + +func (_this Footer) Dtor_sig() m_Wrappers.Option { + return _this.Get_().(Footer_Footer).Sig +} + +func (_this Footer) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case Footer_Footer: + { + return "StructuredEncryptionFooter.Footer.Footer" + "(" + _dafny.String(data.Tags) + ", " + _dafny.String(data.Sig) + ")" + } + default: + { + return "" + } + } +} + +func (_this Footer) Equals(other Footer) bool { + switch data1 := _this.Get_().(type) { + case Footer_Footer: + { + data2, ok := other.Get_().(Footer_Footer) + return ok && data1.Tags.Equals(data2.Tags) && data1.Sig.Equals(data2.Sig) + } + default: + { + return false // unexpected + } + } +} + +func (_this Footer) EqualsGeneric(other interface{}) bool { + typed, ok := other.(Footer) + return ok && _this.Equals(typed) +} + +func Type_Footer_() _dafny.TypeDescriptor { + return type_Footer_{} +} + +type type_Footer_ struct { +} + +func (_this type_Footer_) Default() interface{} { + return Companion_Footer_.Default() +} + +func (_this type_Footer_) String() string { + return "StructuredEncryptionFooter.Footer" +} +func (_this Footer) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = Footer{} + +func (_this Footer) Serialize() _dafny.Sequence { + { + return _dafny.Companion_Sequence_.Concatenate(Companion_Default___.SerializeTags((_this).Dtor_tags()), Companion_Default___.SerializeSig((_this).Dtor_sig())) + } +} +func (_this Footer) MakeTerminal() m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.StructuredDataTerminal { + { + return m_StructuredEncryptionUtil.Companion_Default___.ValueToData((_this).Serialize(), m_StructuredEncryptionUtil.Companion_Default___.BYTES__TYPE__ID()) + } +} +func (_this Footer) Validate(client *m_AtomicPrimitives.AtomicPrimitivesClient, mat m_AwsCryptographyMaterialProvidersTypes.DecryptionMaterials, edks _dafny.Sequence, data _dafny.Sequence, header _dafny.Sequence) m_Wrappers.Result { + { + var ret m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(false) + _ = ret + var _0_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _0_valueOrError0 + _0_valueOrError0 = m_Wrappers.Companion_Default___.Need((_dafny.IntOfUint32((edks).Cardinality())).Cmp(_dafny.IntOfUint32(((_this).Dtor_tags()).Cardinality())) == 0, m_StructuredEncryptionUtil.Companion_Default___.E(_dafny.SeqOfString("There are a different number of recipient tags in the stored header than there are in the decryption materials."))) + if (_0_valueOrError0).IsFailure() { + ret = (_0_valueOrError0).PropagateFailure() + return ret + } + var _1_valueOrError1 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = _1_valueOrError1 + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = Companion_Default___.CanonHash(data, header, (mat).Dtor_encryptionContext()) + _1_valueOrError1 = _out0 + if (_1_valueOrError1).IsFailure() { + ret = (_1_valueOrError1).PropagateFailure() + return ret + } + var _2_canonicalHash _dafny.Sequence + _ = _2_canonicalHash + _2_canonicalHash = (_1_valueOrError1).Extract().(_dafny.Sequence) + var _3_input m_AwsCryptographyPrimitivesTypes.HMacInput + _ = _3_input + _3_input = m_AwsCryptographyPrimitivesTypes.Companion_HMacInput_.Create_HMacInput_((((mat).Dtor_algorithmSuite()).Dtor_symmetricSignature()).Dtor_HMAC(), ((mat).Dtor_symmetricSigningKey()).Dtor_value().(_dafny.Sequence), _2_canonicalHash) + var _4_hashR m_Wrappers.Result + _ = _4_hashR + _4_hashR = (client).HMac(_3_input) + var _5_valueOrError2 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = _5_valueOrError2 + _5_valueOrError2 = (_4_hashR).MapFailure(func(coer8 func(m_AwsCryptographyPrimitivesTypes.Error) m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Error) func(interface{}) interface{} { + return func(arg11 interface{}) interface{} { + return coer8(arg11.(m_AwsCryptographyPrimitivesTypes.Error)) + } + }(func(_6_e m_AwsCryptographyPrimitivesTypes.Error) m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Error { + return m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Companion_Error_.Create_AwsCryptographyPrimitives_(_6_e) + })) + if (_5_valueOrError2).IsFailure() { + ret = (_5_valueOrError2).PropagateFailure() + return ret + } + var _7_hash _dafny.Sequence + _ = _7_hash + _7_hash = (_5_valueOrError2).Extract().(_dafny.Sequence) + var _8_valueOrError3 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _8_valueOrError3 + _8_valueOrError3 = m_Wrappers.Companion_Default___.Need((_dafny.IntOfUint32((_7_hash).Cardinality())).Cmp(_dafny.IntOfInt64(48)) == 0, m_StructuredEncryptionUtil.Companion_Default___.E(_dafny.SeqOfString("Bad hash length"))) + if (_8_valueOrError3).IsFailure() { + ret = (_8_valueOrError3).PropagateFailure() + return ret + } + var _9_foundTag bool + _ = _9_foundTag + _9_foundTag = false + { + var _hi0 _dafny.Int = _dafny.IntOfUint32(((_this).Dtor_tags()).Cardinality()) + _ = _hi0 + for _10_i := _dafny.Zero; _10_i.Cmp(_hi0) < 0; _10_i = _10_i.Plus(_dafny.One) { + { + if m_StructuredEncryptionUtil.Companion_Default___.ConstantTimeEquals(_7_hash, ((_this).Dtor_tags()).Select((_10_i).Uint32()).(_dafny.Sequence)) { + _9_foundTag = true + goto L0 + } + goto C0 + } + C0: + } + goto L0 + } + L0: + var _11_valueOrError4 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _11_valueOrError4 + _11_valueOrError4 = m_Wrappers.Companion_Default___.Need(_9_foundTag, m_StructuredEncryptionUtil.Companion_Default___.E(_dafny.SeqOfString("Signature of record does not match the signature computed when the record was encrypted."))) + if (_11_valueOrError4).IsFailure() { + ret = (_11_valueOrError4).PropagateFailure() + return ret + } + var _12_valueOrError5 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _12_valueOrError5 + _12_valueOrError5 = m_Wrappers.Companion_Default___.Need((((_this).Dtor_sig()).Is_Some()) == ((((mat).Dtor_algorithmSuite()).Dtor_signature()).Is_ECDSA()), m_StructuredEncryptionUtil.Companion_Default___.E(_dafny.SeqOfString("Internal error. Signature both does and does not exist."))) + if (_12_valueOrError5).IsFailure() { + ret = (_12_valueOrError5).PropagateFailure() + return ret + } + if ((_this).Dtor_sig()).Is_Some() { + var _13_verInput m_AwsCryptographyPrimitivesTypes.ECDSAVerifyInput + _ = _13_verInput + _13_verInput = m_AwsCryptographyPrimitivesTypes.Companion_ECDSAVerifyInput_.Create_ECDSAVerifyInput_(((((mat).Dtor_algorithmSuite()).Dtor_signature()).Dtor_ECDSA()).Dtor_curve(), ((mat).Dtor_verificationKey()).Dtor_value().(_dafny.Sequence), _2_canonicalHash, ((_this).Dtor_sig()).Dtor_value().(_dafny.Sequence)) + var _14_verR m_Wrappers.Result + _ = _14_verR + var _out1 m_Wrappers.Result + _ = _out1 + _out1 = (client).ECDSAVerify(_13_verInput) + _14_verR = _out1 + var _15_valueOrError6 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(false) + _ = _15_valueOrError6 + _15_valueOrError6 = (_14_verR).MapFailure(func(coer9 func(m_AwsCryptographyPrimitivesTypes.Error) m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Error) func(interface{}) interface{} { + return func(arg12 interface{}) interface{} { + return coer9(arg12.(m_AwsCryptographyPrimitivesTypes.Error)) + } + }(func(_16_e m_AwsCryptographyPrimitivesTypes.Error) m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Error { + return m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Companion_Error_.Create_AwsCryptographyPrimitives_(_16_e) + })) + if (_15_valueOrError6).IsFailure() { + ret = (_15_valueOrError6).PropagateFailure() + return ret + } + var _17_ver bool + _ = _17_ver + _17_ver = (_15_valueOrError6).Extract().(bool) + var _18_valueOrError7 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _18_valueOrError7 + _18_valueOrError7 = m_Wrappers.Companion_Default___.Need(_17_ver, m_StructuredEncryptionUtil.Companion_Default___.E(_dafny.SeqOfString("Signature did not verify"))) + if (_18_valueOrError7).IsFailure() { + ret = (_18_valueOrError7).PropagateFailure() + return ret + } + } + ret = m_Wrappers.Companion_Result_.Create_Success_(true) + return ret + return ret + } +} + +// End of datatype Footer diff --git a/customer-preview/ddb-esdk/StructuredEncryptionHeader/StructuredEncryptionHeader.go b/customer-preview/ddb-esdk/StructuredEncryptionHeader/StructuredEncryptionHeader.go new file mode 100644 index 000000000..d9b15b097 --- /dev/null +++ b/customer-preview/ddb-esdk/StructuredEncryptionHeader/StructuredEncryptionHeader.go @@ -0,0 +1,1600 @@ +// Package StructuredEncryptionHeader +// Dafny module StructuredEncryptionHeader compiled into Go + +package StructuredEncryptionHeader + +import ( + os "os" + + m_ComAmazonawsDynamodbTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/ComAmazonawsDynamodbTypes" + m_Com_Amazonaws_Dynamodb "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/Com_Amazonaws_Dynamodb" + m_ComAmazonawsKmsTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/ComAmazonawsKmsTypes" + m_Com_Amazonaws_Kms "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/Com_Amazonaws_Kms" + m_AlgorithmSuites "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AlgorithmSuites" + m_AwsArnParsing "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsArnParsing" + m_AwsCryptographyKeyStoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreOperations" + m_AwsCryptographyKeyStoreTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreTypes" + m_AwsCryptographyMaterialProvidersOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersOperations" + m_AwsCryptographyMaterialProvidersTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersTypes" + m_AwsKmsDiscoveryKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsDiscoveryKeyring" + m_AwsKmsEcdhKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsEcdhKeyring" + m_AwsKmsHierarchicalKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsHierarchicalKeyring" + m_AwsKmsKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsKeyring" + m_AwsKmsMrkAreUnique "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkAreUnique" + m_AwsKmsMrkDiscoveryKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkDiscoveryKeyring" + m_AwsKmsMrkKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkKeyring" + m_AwsKmsMrkMatchForDecrypt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkMatchForDecrypt" + m_AwsKmsRsaKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsRsaKeyring" + m_AwsKmsUtils "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsUtils" + m_CMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CMM" + m_CacheConstants "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CacheConstants" + m_CanonicalEncryptionContext "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CanonicalEncryptionContext" + m_Commitment "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Commitment" + m_Constants "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Constants" + m_CreateKeyStoreTable "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeyStoreTable" + m_CreateKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeys" + m_DDBKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DDBKeystoreOperations" + m_DefaultCMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DefaultCMM" + m_DefaultClientSupplier "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DefaultClientSupplier" + m_Defaults "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Defaults" + m_DiscoveryMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DiscoveryMultiKeyring" + m_EcdhEdkWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/EcdhEdkWrapping" + m_EdkWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/EdkWrapping" + m_ErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/ErrorMessages" + m_GetKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/GetKeys" + m_IntermediateKeyWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/IntermediateKeyWrapping" + m_KMSKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KMSKeystoreOperations" + m_KeyStore "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStore" + m_KeyStoreErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStoreErrorMessages" + m_Keyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Keyring" + m_KmsArn "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KmsArn" + m_LocalCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/LocalCMC" + m_MaterialProviders "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MaterialProviders" + m_MaterialWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MaterialWrapping" + m_Materials "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Materials" + m_MrkAwareDiscoveryMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MrkAwareDiscoveryMultiKeyring" + m_MrkAwareStrictMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MrkAwareStrictMultiKeyring" + m_MultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MultiKeyring" + m_RawAESKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawAESKeyring" + m_RawECDHKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawECDHKeyring" + m_RawRSAKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawRSAKeyring" + m_RequiredEncryptionContextCMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RequiredEncryptionContextCMM" + m_StormTracker "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StormTracker" + m_StormTrackingCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StormTrackingCMC" + m_StrictMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StrictMultiKeyring" + m_Structure "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Structure" + m_SynchronizedLocalCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/SynchronizedLocalCMC" + m_Utils "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Utils" + m_AtomicPrimitives "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AtomicPrimitives" + m_AwsCryptographyPrimitivesOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesOperations" + m_AwsCryptographyPrimitivesTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesTypes" + m_Digest "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Digest" + m_HKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/HKDF" + m_KdfCtr "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/KdfCtr" + m_Random "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Random" + m_WrappedHKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHKDF" + m_WrappedHMAC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHMAC" + m_Actions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Actions" + m_Base64 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64" + m_Base64Lemmas "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64Lemmas" + m_BoundedInts "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/BoundedInts" + m_DivInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternals" + m_DivInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternalsNonlinear" + m_DivMod "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivMod" + m_FileIO "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FileIO" + m_FloatCompare "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FloatCompare" + m_Functions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Functions" + m_GeneralInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GeneralInternals" + m_GetOpt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GetOpt" + m_HexStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/HexStrings" + m_Logarithm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Logarithm" + m__Math "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Math_" + m_ModInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternals" + m_ModInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternalsNonlinear" + m_Mul "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Mul" + m_MulInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternals" + m_MulInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternalsNonlinear" + m_Power "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Power" + m_Relations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Relations" + m_Seq "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq" + m_Seq_MergeSort "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq_MergeSort" + m_SortedSets "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/SortedSets" + m_Sorting "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Sorting" + m_StandardLibrary "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary" + m_StandardLibraryInterop "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibraryInterop" + m_StandardLibrary_Sequence "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_Sequence" + m_StandardLibrary_String "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_String" + m_StandardLibrary_UInt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_UInt" + m_Streams "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Streams" + m_UTF8 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UTF8" + m_UnicodeStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UnicodeStrings" + m__Unicode "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Unicode_" + m_Utf16EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf16EncodingForm" + m_Utf8EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf8EncodingForm" + m_Wrappers "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers" + m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes" + m_Sets "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/Sets" + m_StructuredEncryptionPaths "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionPaths" + m_StructuredEncryptionUtil "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionUtil" + m__System "github.com/dafny-lang/DafnyRuntimeGo/v4/System_" + _dafny "github.com/dafny-lang/DafnyRuntimeGo/v4/dafny" +) + +var _ = os.Args +var _ _dafny.Dummy__ +var _ m__System.Dummy__ +var _ m_Wrappers.Dummy__ +var _ m_BoundedInts.Dummy__ +var _ m_StandardLibrary_UInt.Dummy__ +var _ m_StandardLibrary_Sequence.Dummy__ +var _ m_StandardLibrary_String.Dummy__ +var _ m_StandardLibrary.Dummy__ +var _ m_AwsCryptographyPrimitivesTypes.Dummy__ +var _ m_Random.Dummy__ +var _ m_Digest.Dummy__ +var _ m_WrappedHMAC.Dummy__ +var _ m_HKDF.Dummy__ +var _ m_WrappedHKDF.Dummy__ +var _ m_KdfCtr.Dummy__ +var _ m_AwsCryptographyPrimitivesOperations.Dummy__ +var _ m_AtomicPrimitives.Dummy__ +var _ m_ComAmazonawsDynamodbTypes.Dummy__ +var _ m_ComAmazonawsKmsTypes.Dummy__ +var _ m_AwsCryptographyKeyStoreTypes.Dummy__ +var _ m_AwsCryptographyMaterialProvidersTypes.Dummy__ +var _ m_Base64.Dummy__ +var _ m_AlgorithmSuites.Dummy__ +var _ m_Materials.Dummy__ +var _ m_Keyring.Dummy__ +var _ m_Relations.Dummy__ +var _ m_Seq_MergeSort.Dummy__ +var _ m__Math.Dummy__ +var _ m_Seq.Dummy__ +var _ m_MultiKeyring.Dummy__ +var _ m_AwsArnParsing.Dummy__ +var _ m_AwsKmsMrkAreUnique.Dummy__ +var _ m_Actions.Dummy__ +var _ m_AwsKmsMrkMatchForDecrypt.Dummy__ +var _ m_AwsKmsUtils.Dummy__ +var _ m_Constants.Dummy__ +var _ m_MaterialWrapping.Dummy__ +var _ m_CanonicalEncryptionContext.Dummy__ +var _ m_IntermediateKeyWrapping.Dummy__ +var _ m_EdkWrapping.Dummy__ +var _ m_ErrorMessages.Dummy__ +var _ m_AwsKmsKeyring.Dummy__ +var _ m_StrictMultiKeyring.Dummy__ +var _ m_AwsKmsDiscoveryKeyring.Dummy__ +var _ m_Com_Amazonaws_Kms.Dummy__ +var _ m_Com_Amazonaws_Dynamodb.Dummy__ +var _ m_DiscoveryMultiKeyring.Dummy__ +var _ m_AwsKmsMrkDiscoveryKeyring.Dummy__ +var _ m_MrkAwareDiscoveryMultiKeyring.Dummy__ +var _ m_AwsKmsMrkKeyring.Dummy__ +var _ m_MrkAwareStrictMultiKeyring.Dummy__ +var _ m_LocalCMC.Dummy__ +var _ m_SynchronizedLocalCMC.Dummy__ +var _ m_StormTracker.Dummy__ +var _ m_StormTrackingCMC.Dummy__ +var _ m_CacheConstants.Dummy__ +var _ m_AwsKmsHierarchicalKeyring.Dummy__ +var _ m_AwsKmsRsaKeyring.Dummy__ +var _ m_EcdhEdkWrapping.Dummy__ +var _ m_RawECDHKeyring.Dummy__ +var _ m_AwsKmsEcdhKeyring.Dummy__ +var _ m_RawAESKeyring.Dummy__ +var _ m_RawRSAKeyring.Dummy__ +var _ m_CMM.Dummy__ +var _ m_Defaults.Dummy__ +var _ m_Commitment.Dummy__ +var _ m_DefaultCMM.Dummy__ +var _ m_DefaultClientSupplier.Dummy__ +var _ m_Utils.Dummy__ +var _ m_RequiredEncryptionContextCMM.Dummy__ +var _ m_AwsCryptographyMaterialProvidersOperations.Dummy__ +var _ m_MaterialProviders.Dummy__ +var _ m_KeyStoreErrorMessages.Dummy__ +var _ m_KmsArn.Dummy__ +var _ m_Structure.Dummy__ +var _ m_KMSKeystoreOperations.Dummy__ +var _ m_DDBKeystoreOperations.Dummy__ +var _ m_CreateKeys.Dummy__ +var _ m_CreateKeyStoreTable.Dummy__ +var _ m_GetKeys.Dummy__ +var _ m_AwsCryptographyKeyStoreOperations.Dummy__ +var _ m_KeyStore.Dummy__ +var _ m__Unicode.Dummy__ +var _ m_Functions.Dummy__ +var _ m_Utf8EncodingForm.Dummy__ +var _ m_Utf16EncodingForm.Dummy__ +var _ m_UnicodeStrings.Dummy__ +var _ m_FileIO.Dummy__ +var _ m_GeneralInternals.Dummy__ +var _ m_MulInternalsNonlinear.Dummy__ +var _ m_MulInternals.Dummy__ +var _ m_Mul.Dummy__ +var _ m_ModInternalsNonlinear.Dummy__ +var _ m_DivInternalsNonlinear.Dummy__ +var _ m_ModInternals.Dummy__ +var _ m_DivInternals.Dummy__ +var _ m_DivMod.Dummy__ +var _ m_Power.Dummy__ +var _ m_Logarithm.Dummy__ +var _ m_StandardLibraryInterop.Dummy__ +var _ m_Streams.Dummy__ +var _ m_Sorting.Dummy__ +var _ m_HexStrings.Dummy__ +var _ m_GetOpt.Dummy__ +var _ m_FloatCompare.Dummy__ +var _ m_Base64Lemmas.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Dummy__ +var _ m_StructuredEncryptionUtil.Dummy__ +var _ m_Sets.Dummy__ +var _ m_StructuredEncryptionPaths.Dummy__ + +type Dummy__ struct{} + +// Definition of class Default__ +type Default__ struct { + dummy byte +} + +func New_Default___() *Default__ { + _this := Default__{} + + return &_this +} + +type CompanionStruct_Default___ struct { +} + +var Companion_Default___ = CompanionStruct_Default___{} + +func (_this *Default__) Equals(other *Default__) bool { + return _this == other +} + +func (_this *Default__) EqualsGeneric(x interface{}) bool { + other, ok := x.(*Default__) + return ok && _this.Equals(other) +} + +func (*Default__) String() string { + return "StructuredEncryptionHeader.Default__" +} +func (_this *Default__) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = &Default__{} + +func (_static *CompanionStruct_Default___) ValidVersion(x uint8) bool { + return ((x) == (uint8(1))) || ((x) == (uint8(2))) +} +func (_static *CompanionStruct_Default___) IsVersion2Schema(data _dafny.Sequence) bool { + return _dafny.Quantifier((data).UniqueElements(), false, func(_exists_var_0 m_StructuredEncryptionUtil.CanonCryptoItem) bool { + var _0_x m_StructuredEncryptionUtil.CanonCryptoItem + _0_x = interface{}(_exists_var_0).(m_StructuredEncryptionUtil.CanonCryptoItem) + return (_dafny.Companion_Sequence_.Contains(data, _0_x)) && (((_0_x).Dtor_action()).Equals(m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Companion_CryptoAction_.Create_SIGN__AND__INCLUDE__IN__ENCRYPTION__CONTEXT_())) + }) +} +func (_static *CompanionStruct_Default___) VersionFromSchema(data _dafny.Sequence) uint8 { + if Companion_Default___.IsVersion2Schema(data) { + return uint8(2) + } else { + return uint8(1) + } +} +func (_static *CompanionStruct_Default___) ValidFlavor(x uint8) bool { + return _dafny.Companion_Sequence_.Contains(_dafny.SeqOf(uint8(0), uint8(1)), x) +} +func (_static *CompanionStruct_Default___) ValidLegendByte(x uint8) bool { + return _dafny.Companion_Sequence_.Contains(_dafny.SeqOf(Companion_Default___.ENCRYPT__AND__SIGN__LEGEND(), Companion_Default___.SIGN__AND__INCLUDE__IN__ENCRYPTION__CONTEXT__LEGEND(), Companion_Default___.SIGN__ONLY__LEGEND()), x) +} +func (_static *CompanionStruct_Default___) ValidEncryptionContext(x _dafny.Map) bool { + return (((x).Cardinality()).Cmp(m_StandardLibrary_UInt.Companion_Default___.UINT16__LIMIT()) < 0) && (_dafny.Quantifier((x).Keys().Elements(), true, func(_forall_var_0 _dafny.Sequence) bool { + var _0_k _dafny.Sequence + _0_k = interface{}(_forall_var_0).(_dafny.Sequence) + return !((x).Contains(_0_k)) || (((_dafny.IntOfUint32((_0_k).Cardinality())).Cmp(m_StandardLibrary_UInt.Companion_Default___.UINT16__LIMIT()) < 0) && ((_dafny.IntOfUint32(((x).Get(_0_k).(_dafny.Sequence)).Cardinality())).Cmp(m_StandardLibrary_UInt.Companion_Default___.UINT16__LIMIT()) < 0)) + })) +} +func (_static *CompanionStruct_Default___) ValidEncryptedDataKey(x m_AwsCryptographyMaterialProvidersTypes.EncryptedDataKey) bool { + return (((_dafny.IntOfUint32(((x).Dtor_keyProviderId()).Cardinality())).Cmp(m_StandardLibrary_UInt.Companion_Default___.UINT16__LIMIT()) < 0) && ((_dafny.IntOfUint32(((x).Dtor_keyProviderInfo()).Cardinality())).Cmp(m_StandardLibrary_UInt.Companion_Default___.UINT16__LIMIT()) < 0)) && ((_dafny.IntOfUint32(((x).Dtor_ciphertext()).Cardinality())).Cmp(m_StandardLibrary_UInt.Companion_Default___.UINT16__LIMIT()) < 0) +} +func (_static *CompanionStruct_Default___) Serialize(client m_AwsCryptographyPrimitivesTypes.IAwsCryptographicPrimitivesClient, alg m_AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo, commitKey _dafny.Sequence, PartialHeader PartialHeader) m_Wrappers.Result { + var _0_body _dafny.Sequence = (PartialHeader).Serialize() + _ = _0_body + var _1_valueOrError0 m_Wrappers.Result = Companion_Default___.CalculateHeaderCommitment(client, alg, commitKey, _0_body) + _ = _1_valueOrError0 + if (_1_valueOrError0).IsFailure() { + return (_1_valueOrError0).PropagateFailure() + } else { + var _2_commitment _dafny.Sequence = (_1_valueOrError0).Extract().(_dafny.Sequence) + _ = _2_commitment + return m_Wrappers.Companion_Result_.Create_Success_(_dafny.Companion_Sequence_.Concatenate(_0_body, _2_commitment)) + } +} +func (_static *CompanionStruct_Default___) Create(tableName _dafny.Sequence, schema _dafny.Sequence, msgID _dafny.Sequence, mat m_AwsCryptographyMaterialProvidersTypes.EncryptionMaterials) m_Wrappers.Result { + var _0_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need(Companion_Default___.ValidEncryptionContext((mat).Dtor_encryptionContext()), m_StructuredEncryptionUtil.Companion_Default___.E(_dafny.SeqOfString("Invalid Encryption Context"))) + _ = _0_valueOrError0 + if (_0_valueOrError0).IsFailure() { + return (_0_valueOrError0).PropagateFailure() + } else { + var _1_valueOrError1 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need((_dafny.IntOfUint32(((mat).Dtor_encryptedDataKeys()).Cardinality())).Sign() == 1, m_StructuredEncryptionUtil.Companion_Default___.E(_dafny.SeqOfString("There must be at least one data key"))) + _ = _1_valueOrError1 + if (_1_valueOrError1).IsFailure() { + return (_1_valueOrError1).PropagateFailure() + } else { + var _2_valueOrError2 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need((_dafny.IntOfUint32(((mat).Dtor_encryptedDataKeys()).Cardinality())).Cmp(Companion_Default___.UINT8__LIMIT()) < 0, m_StructuredEncryptionUtil.Companion_Default___.E(_dafny.SeqOfString("Too many data keys."))) + _ = _2_valueOrError2 + if (_2_valueOrError2).IsFailure() { + return (_2_valueOrError2).PropagateFailure() + } else { + var _3_valueOrError3 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need(_dafny.Quantifier(((mat).Dtor_encryptedDataKeys()).UniqueElements(), true, func(_forall_var_0 m_AwsCryptographyMaterialProvidersTypes.EncryptedDataKey) bool { + var _4_x m_AwsCryptographyMaterialProvidersTypes.EncryptedDataKey + _4_x = interface{}(_forall_var_0).(m_AwsCryptographyMaterialProvidersTypes.EncryptedDataKey) + return !(_dafny.Companion_Sequence_.Contains((mat).Dtor_encryptedDataKeys(), _4_x)) || (Companion_Default___.ValidEncryptedDataKey(_4_x)) + }), m_StructuredEncryptionUtil.Companion_Default___.E(_dafny.SeqOfString("Invalid Data Key"))) + _ = _3_valueOrError3 + if (_3_valueOrError3).IsFailure() { + return (_3_valueOrError3).PropagateFailure() + } else { + var _5_valueOrError4 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need((_dafny.IntOfUint32((((mat).Dtor_algorithmSuite()).Dtor_binaryId()).Cardinality())).Cmp(_dafny.IntOfInt64(2)) == 0, m_StructuredEncryptionUtil.Companion_Default___.E(_dafny.SeqOfString("Invalid Algorithm Suite Binary ID"))) + _ = _5_valueOrError4 + if (_5_valueOrError4).IsFailure() { + return (_5_valueOrError4).PropagateFailure() + } else { + var _6_valueOrError5 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need(((((mat).Dtor_algorithmSuite()).Dtor_binaryId()).Select(0).(uint8)) == (m_StructuredEncryptionUtil.Companion_Default___.DbeAlgorithmFamily()), m_StructuredEncryptionUtil.Companion_Default___.E(_dafny.SeqOfString("Algorithm Suite not suitable for structured encryption."))) + _ = _6_valueOrError5 + if (_6_valueOrError5).IsFailure() { + return (_6_valueOrError5).PropagateFailure() + } else { + var _7_valueOrError6 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need(Companion_Default___.ValidFlavor((((mat).Dtor_algorithmSuite()).Dtor_binaryId()).Select(1).(uint8)), m_StructuredEncryptionUtil.Companion_Default___.E(_dafny.SeqOfString("Algorithm Suite has unexpected flavor."))) + _ = _7_valueOrError6 + if (_7_valueOrError6).IsFailure() { + return (_7_valueOrError6).PropagateFailure() + } else { + var _8_valueOrError7 m_Wrappers.Result = Companion_Default___.MakeLegend(schema) + _ = _8_valueOrError7 + if (_8_valueOrError7).IsFailure() { + return (_8_valueOrError7).PropagateFailure() + } else { + var _9_legend _dafny.Sequence = (_8_valueOrError7).Extract().(_dafny.Sequence) + _ = _9_legend + var _10_storedEC _dafny.Map = func() _dafny.Map { + var _coll0 = _dafny.NewMapBuilder() + _ = _coll0 + for _iter6 := _dafny.Iterate(((mat).Dtor_encryptionContext()).Keys().Elements()); ; { + _compr_0, _ok6 := _iter6() + if !_ok6 { + break + } + var _11_k _dafny.Sequence + _11_k = interface{}(_compr_0).(_dafny.Sequence) + if m_UTF8.Companion_ValidUTF8Bytes_.Is_(_11_k) { + if (((mat).Dtor_encryptionContext()).Contains(_11_k)) && (!_dafny.Companion_Sequence_.Contains((mat).Dtor_requiredEncryptionContextKeys(), _11_k)) { + _coll0.Add(_11_k, ((mat).Dtor_encryptionContext()).Get(_11_k).(_dafny.Sequence)) + } + } + } + return _coll0.ToMap() + }() + _ = _10_storedEC + var _12_valueOrError8 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need(Companion_Default___.ValidEncryptionContext(_10_storedEC), m_StructuredEncryptionUtil.Companion_Default___.E(_dafny.SeqOfString("Invalid Encryption Context"))) + _ = _12_valueOrError8 + if (_12_valueOrError8).IsFailure() { + return (_12_valueOrError8).PropagateFailure() + } else { + return m_Wrappers.Companion_Result_.Create_Success_(Companion_PartialHeader_.Create_PartialHeader_(Companion_Default___.VersionFromSchema(schema), (((mat).Dtor_algorithmSuite()).Dtor_binaryId()).Select(1).(uint8), msgID, _9_legend, _10_storedEC, (mat).Dtor_encryptedDataKeys())) + } + } + } + } + } + } + } + } + } +} +func (_static *CompanionStruct_Default___) PartialDeserialize(data _dafny.Sequence) m_Wrappers.Result { + var _0_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need((Companion_Default___.PREFIX__LEN()).Cmp(_dafny.IntOfUint32((data).Cardinality())) <= 0, m_StructuredEncryptionUtil.Companion_Default___.E(_dafny.SeqOfString("Serialized PartialHeader too short."))) + _ = _0_valueOrError0 + if (_0_valueOrError0).IsFailure() { + return (_0_valueOrError0).PropagateFailure() + } else { + var _1_version uint8 = (data).Select(0).(uint8) + _ = _1_version + var _2_valueOrError1 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need(Companion_Default___.ValidVersion(_1_version), m_StructuredEncryptionUtil.Companion_Default___.E(_dafny.SeqOfString("Invalid Version Number"))) + _ = _2_valueOrError1 + if (_2_valueOrError1).IsFailure() { + return (_2_valueOrError1).PropagateFailure() + } else { + var _3_flavor uint8 = (data).Select(1).(uint8) + _ = _3_flavor + var _4_valueOrError2 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need(Companion_Default___.ValidFlavor(_3_flavor), m_StructuredEncryptionUtil.Companion_Default___.E(_dafny.SeqOfString("Invalid Flavor"))) + _ = _4_valueOrError2 + if (_4_valueOrError2).IsFailure() { + return (_4_valueOrError2).PropagateFailure() + } else { + var _5_msgID _dafny.Sequence = (data).Subsequence(2, (Companion_Default___.PREFIX__LEN()).Uint32()) + _ = _5_msgID + var _6_legendData _dafny.Sequence = (data).Drop((Companion_Default___.PREFIX__LEN()).Uint32()) + _ = _6_legendData + var _7_valueOrError3 m_Wrappers.Result = Companion_Default___.GetLegend(_6_legendData) + _ = _7_valueOrError3 + if (_7_valueOrError3).IsFailure() { + return (_7_valueOrError3).PropagateFailure() + } else { + var _8_legendAndLen _dafny.Tuple = (_7_valueOrError3).Extract().(_dafny.Tuple) + _ = _8_legendAndLen + var _9_legend _dafny.Sequence = (*(_8_legendAndLen).IndexInt(0)).(_dafny.Sequence) + _ = _9_legend + var _10_contextData _dafny.Sequence = (_6_legendData).Drop(((*(_8_legendAndLen).IndexInt(1)).(_dafny.Int)).Uint32()) + _ = _10_contextData + var _11_valueOrError4 m_Wrappers.Result = Companion_Default___.GetContext(_10_contextData) + _ = _11_valueOrError4 + if (_11_valueOrError4).IsFailure() { + return (_11_valueOrError4).PropagateFailure() + } else { + var _12_contextAndLen _dafny.Tuple = (_11_valueOrError4).Extract().(_dafny.Tuple) + _ = _12_contextAndLen + var _13_encContext _dafny.Map = (*(_12_contextAndLen).IndexInt(0)).(_dafny.Map) + _ = _13_encContext + var _14_keysData _dafny.Sequence = (_10_contextData).Drop(((*(_12_contextAndLen).IndexInt(1)).(_dafny.Int)).Uint32()) + _ = _14_keysData + var _15_valueOrError5 m_Wrappers.Result = Companion_Default___.GetDataKeys(_14_keysData) + _ = _15_valueOrError5 + if (_15_valueOrError5).IsFailure() { + return (_15_valueOrError5).PropagateFailure() + } else { + var _16_keysAndLen _dafny.Tuple = (_15_valueOrError5).Extract().(_dafny.Tuple) + _ = _16_keysAndLen + var _17_dataKeys _dafny.Sequence = (*(_16_keysAndLen).IndexInt(0)).(_dafny.Sequence) + _ = _17_dataKeys + var _18_trailingData _dafny.Sequence = (_14_keysData).Drop(((*(_16_keysAndLen).IndexInt(1)).(_dafny.Int)).Uint32()) + _ = _18_trailingData + var _19_valueOrError6 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need((_dafny.IntOfUint32((_18_trailingData).Cardinality())).Cmp(Companion_Default___.COMMITMENT__LEN()) >= 0, m_StructuredEncryptionUtil.Companion_Default___.E(_dafny.SeqOfString("Invalid header serialization: unexpected end of data."))) + _ = _19_valueOrError6 + if (_19_valueOrError6).IsFailure() { + return (_19_valueOrError6).PropagateFailure() + } else { + var _20_valueOrError7 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need((_dafny.IntOfUint32((_18_trailingData).Cardinality())).Cmp(Companion_Default___.COMMITMENT__LEN()) <= 0, m_StructuredEncryptionUtil.Companion_Default___.E(_dafny.SeqOfString("Invalid header serialization: unexpected bytes."))) + _ = _20_valueOrError7 + if (_20_valueOrError7).IsFailure() { + return (_20_valueOrError7).PropagateFailure() + } else { + return m_Wrappers.Companion_Result_.Create_Success_(Companion_PartialHeader_.Create_PartialHeader_(_1_version, _3_flavor, _5_msgID, _9_legend, _13_encContext, _17_dataKeys)) + } + } + } + } + } + } + } + } +} +func (_static *CompanionStruct_Default___) CalculateHeaderCommitment(client m_AwsCryptographyPrimitivesTypes.IAwsCryptographicPrimitivesClient, alg m_AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo, commitKey _dafny.Sequence, data _dafny.Sequence) m_Wrappers.Result { + var _0_input m_AwsCryptographyPrimitivesTypes.HMacInput = m_AwsCryptographyPrimitivesTypes.Companion_HMacInput_.Create_HMacInput_((((alg).Dtor_commitment()).Dtor_HKDF()).Dtor_hmac(), commitKey, data) + _ = _0_input + var _1_outputR m_Wrappers.Result = (client).HMac(_0_input) + _ = _1_outputR + var _2_valueOrError0 m_Wrappers.Result = (_1_outputR).MapFailure(func(coer2 func(m_AwsCryptographyPrimitivesTypes.Error) m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Error) func(interface{}) interface{} { + return func(arg4 interface{}) interface{} { + return coer2(arg4.(m_AwsCryptographyPrimitivesTypes.Error)) + } + }(func(_3_e m_AwsCryptographyPrimitivesTypes.Error) m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Error { + return m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Companion_Error_.Create_AwsCryptographyPrimitives_(_3_e) + })) + _ = _2_valueOrError0 + if (_2_valueOrError0).IsFailure() { + return (_2_valueOrError0).PropagateFailure() + } else { + var _4_output _dafny.Sequence = (_2_valueOrError0).Extract().(_dafny.Sequence) + _ = _4_output + if (_dafny.IntOfUint32((_4_output).Cardinality())).Cmp(Companion_Default___.COMMITMENT__LEN()) < 0 { + return m_Wrappers.Companion_Result_.Create_Failure_(m_StructuredEncryptionUtil.Companion_Default___.E(_dafny.SeqOfString("HMAC did not produce enough bits"))) + } else { + return m_Wrappers.Companion_Result_.Create_Success_((_4_output).Take((Companion_Default___.COMMITMENT__LEN()).Uint32())) + } + } +} +func (_static *CompanionStruct_Default___) ToUInt16(x _dafny.Int) m_Wrappers.Result { + var _0_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need((x).Cmp(m_StandardLibrary_UInt.Companion_Default___.UINT16__LIMIT()) < 0, m_StructuredEncryptionUtil.Companion_Default___.E(_dafny.SeqOfString("Value too big for 16 bits"))) + _ = _0_valueOrError0 + if (_0_valueOrError0).IsFailure() { + return (_0_valueOrError0).PropagateFailure() + } else { + return m_Wrappers.Companion_Result_.Create_Success_((x).Uint16()) + } +} +func (_static *CompanionStruct_Default___) MyMap(f func(interface{}) interface{}, m _dafny.Map) _dafny.Map { + return func() _dafny.Map { + var _coll0 = _dafny.NewMapBuilder() + _ = _coll0 + for _iter7 := _dafny.Iterate((m).Keys().Elements()); ; { + _compr_0, _ok7 := _iter7() + if !_ok7 { + break + } + var _0_k interface{} + _0_k = interface{}(_compr_0).(interface{}) + if (m).Contains(_0_k) { + _coll0.Add((f)(_0_k), (m).Get(_0_k).(interface{})) + } + } + return _coll0.ToMap() + }() +} +func (_static *CompanionStruct_Default___) MakeLegend(schema _dafny.Sequence) m_Wrappers.Result { + var _0_valueOrError0 m_Wrappers.Result = Companion_Default___.MakeLegend2(schema, Companion_Default___.EmptyLegend()) + _ = _0_valueOrError0 + if (_0_valueOrError0).IsFailure() { + return (_0_valueOrError0).PropagateFailure() + } else { + var _1_legend _dafny.Sequence = (_0_valueOrError0).Extract().(_dafny.Sequence) + _ = _1_legend + var _2_authCount _dafny.Int = Companion_Default___.CountAuthAttrs(schema) + _ = _2_authCount + var _3_valueOrError1 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need((_2_authCount).Cmp(_dafny.IntOfUint32((_1_legend).Cardinality())) == 0, m_StructuredEncryptionUtil.Companion_Default___.E(_dafny.SeqOfString("Internal Error : bad legend calculation."))) + _ = _3_valueOrError1 + if (_3_valueOrError1).IsFailure() { + return (_3_valueOrError1).PropagateFailure() + } else { + return m_Wrappers.Companion_Result_.Create_Success_(_1_legend) + } + } +} +func (_static *CompanionStruct_Default___) MakeLegend2(data _dafny.Sequence, serialized _dafny.Sequence) m_Wrappers.Result { + goto TAIL_CALL_START +TAIL_CALL_START: + if (_dafny.IntOfUint32((data).Cardinality())).Sign() == 0 { + return m_Wrappers.Companion_Result_.Create_Success_(serialized) + } else if m_StructuredEncryptionUtil.Companion_Default___.IsAuthAttr(((data).Select(0).(m_StructuredEncryptionUtil.CanonCryptoItem)).Dtor_action()) { + var _0_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need(((_dafny.IntOfUint32((serialized).Cardinality())).Plus(_dafny.One)).Cmp(m_StandardLibrary_UInt.Companion_Default___.UINT16__LIMIT()) < 0, m_StructuredEncryptionUtil.Companion_Default___.E(_dafny.SeqOfString("Legend Too Long."))) + _ = _0_valueOrError0 + if (_0_valueOrError0).IsFailure() { + return (_0_valueOrError0).PropagateFailure() + } else { + var _1_legendChar uint8 = Companion_Default___.GetActionLegend(((data).Select(0).(m_StructuredEncryptionUtil.CanonCryptoItem)).Dtor_action()) + _ = _1_legendChar + var _in0 _dafny.Sequence = (data).Drop(1) + _ = _in0 + var _in1 _dafny.Sequence = _dafny.Companion_Sequence_.Concatenate(serialized, _dafny.SeqOf(_1_legendChar)) + _ = _in1 + data = _in0 + serialized = _in1 + goto TAIL_CALL_START + } + } else { + var _in2 _dafny.Sequence = (data).Drop(1) + _ = _in2 + var _in3 _dafny.Sequence = serialized + _ = _in3 + data = _in2 + serialized = _in3 + goto TAIL_CALL_START + } +} +func (_static *CompanionStruct_Default___) GetActionLegend(x m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.CryptoAction) uint8 { + var _source0 m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.CryptoAction = x + _ = _source0 + { + if _source0.Is_ENCRYPT__AND__SIGN() { + return Companion_Default___.ENCRYPT__AND__SIGN__LEGEND() + } + } + { + if _source0.Is_SIGN__AND__INCLUDE__IN__ENCRYPTION__CONTEXT() { + return Companion_Default___.SIGN__AND__INCLUDE__IN__ENCRYPTION__CONTEXT__LEGEND() + } + } + { + return Companion_Default___.SIGN__ONLY__LEGEND() + } +} +func (_static *CompanionStruct_Default___) CountAuthAttrs(data _dafny.Sequence) _dafny.Int { + var _0___accumulator _dafny.Int = _dafny.Zero + _ = _0___accumulator + goto TAIL_CALL_START +TAIL_CALL_START: + if (_dafny.IntOfUint32((data).Cardinality())).Sign() == 0 { + return (_dafny.Zero).Plus(_0___accumulator) + } else if m_StructuredEncryptionUtil.Companion_Default___.IsAuthAttr(((data).Select(0).(m_StructuredEncryptionUtil.CanonCryptoItem)).Dtor_action()) { + _0___accumulator = (_0___accumulator).Plus(_dafny.One) + var _in0 _dafny.Sequence = (data).Drop(1) + _ = _in0 + data = _in0 + goto TAIL_CALL_START + } else { + var _in1 _dafny.Sequence = (data).Drop(1) + _ = _in1 + data = _in1 + goto TAIL_CALL_START + } +} +func (_static *CompanionStruct_Default___) SerializeLegend(x _dafny.Sequence) _dafny.Sequence { + return _dafny.Companion_Sequence_.Concatenate(m_StandardLibrary_UInt.Companion_Default___.UInt16ToSeq(uint16((x).Cardinality())), x) +} +func (_static *CompanionStruct_Default___) GetLegend(data _dafny.Sequence) m_Wrappers.Result { + var _0_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need((_dafny.IntOfInt64(2)).Cmp(_dafny.IntOfUint32((data).Cardinality())) <= 0, m_StructuredEncryptionUtil.Companion_Default___.E(_dafny.SeqOfString("Unexpected end of header data."))) + _ = _0_valueOrError0 + if (_0_valueOrError0).IsFailure() { + return (_0_valueOrError0).PropagateFailure() + } else { + var _1_len uint16 = m_StandardLibrary_UInt.Companion_Default___.SeqToUInt16((data).Subsequence(0, 2)) + _ = _1_len + var _2_size _dafny.Int = (_dafny.IntOfUint16(_1_len)).Plus(_dafny.IntOfInt64(2)) + _ = _2_size + var _3_valueOrError1 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need((_2_size).Cmp(_dafny.IntOfUint32((data).Cardinality())) <= 0, m_StructuredEncryptionUtil.Companion_Default___.E(_dafny.SeqOfString("Unexpected end of header data."))) + _ = _3_valueOrError1 + if (_3_valueOrError1).IsFailure() { + return (_3_valueOrError1).PropagateFailure() + } else { + var _4_valueOrError2 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need(_dafny.Quantifier(((data).Subsequence(2, (_2_size).Uint32())).UniqueElements(), true, func(_forall_var_0 uint8) bool { + var _5_x uint8 + _5_x = interface{}(_forall_var_0).(uint8) + if true { + return !(_dafny.Companion_Sequence_.Contains((data).Subsequence(2, (_2_size).Uint32()), _5_x)) || (Companion_Default___.ValidLegendByte(_5_x)) + } else { + return true + } + }), m_StructuredEncryptionUtil.Companion_Default___.E(_dafny.SeqOfString("Invalid byte in stored legend"))) + _ = _4_valueOrError2 + if (_4_valueOrError2).IsFailure() { + return (_4_valueOrError2).PropagateFailure() + } else { + return m_Wrappers.Companion_Result_.Create_Success_(_dafny.TupleOf((data).Subsequence(2, (_2_size).Uint32()), _2_size)) + } + } + } +} +func (_static *CompanionStruct_Default___) GetContext(data _dafny.Sequence) m_Wrappers.Result { + var _0_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need((_dafny.IntOfInt64(2)).Cmp(_dafny.IntOfUint32((data).Cardinality())) <= 0, m_StructuredEncryptionUtil.Companion_Default___.E(_dafny.SeqOfString("Unexpected end of header data."))) + _ = _0_valueOrError0 + if (_0_valueOrError0).IsFailure() { + return (_0_valueOrError0).PropagateFailure() + } else { + var _1_count _dafny.Int = _dafny.IntOfUint16(m_StandardLibrary_UInt.Companion_Default___.SeqToUInt16((data).Subsequence(0, 2))) + _ = _1_count + var _2_valueOrError1 m_Wrappers.Result = Companion_Default___.GetContext2(_1_count, data, (data).Drop(2), _dafny.TupleOf(_dafny.NewMapBuilder().ToMap(), _dafny.IntOfInt64(2)), _dafny.SeqOf()) + _ = _2_valueOrError1 + if (_2_valueOrError1).IsFailure() { + return (_2_valueOrError1).PropagateFailure() + } else { + var _3_context _dafny.Tuple = (_2_valueOrError1).Extract().(_dafny.Tuple) + _ = _3_context + return m_Wrappers.Companion_Result_.Create_Success_(_3_context) + } + } +} +func (_static *CompanionStruct_Default___) GetOneKVPair(data _dafny.Sequence) m_Wrappers.Result { + var _0_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need((_dafny.IntOfInt64(2)).Cmp(_dafny.IntOfUint32((data).Cardinality())) <= 0, m_StructuredEncryptionUtil.Companion_Default___.E(_dafny.SeqOfString("Unexpected end of header data."))) + _ = _0_valueOrError0 + if (_0_valueOrError0).IsFailure() { + return (_0_valueOrError0).PropagateFailure() + } else { + var _1_keyLen _dafny.Int = _dafny.IntOfUint16(m_StandardLibrary_UInt.Companion_Default___.SeqToUInt16((data).Subsequence(0, 2))) + _ = _1_keyLen + var _2_valueOrError1 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need(((_1_keyLen).Plus(_dafny.IntOfInt64(4))).Cmp(_dafny.IntOfUint32((data).Cardinality())) <= 0, m_StructuredEncryptionUtil.Companion_Default___.E(_dafny.SeqOfString("Unexpected end of header data."))) + _ = _2_valueOrError1 + if (_2_valueOrError1).IsFailure() { + return (_2_valueOrError1).PropagateFailure() + } else { + var _3_key _dafny.Sequence = (data).Subsequence(2, ((_1_keyLen).Plus(_dafny.IntOfInt64(2))).Uint32()) + _ = _3_key + var _4_valueOrError2 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need(m_UTF8.Companion_Default___.ValidUTF8Seq(_3_key), m_StructuredEncryptionUtil.Companion_Default___.E(_dafny.SeqOfString("Invalid UTF8 found in header."))) + _ = _4_valueOrError2 + if (_4_valueOrError2).IsFailure() { + return (_4_valueOrError2).PropagateFailure() + } else { + var _5_valueLen _dafny.Int = _dafny.IntOfUint16(m_StandardLibrary_UInt.Companion_Default___.SeqToUInt16((data).Subsequence(((_1_keyLen).Plus(_dafny.IntOfInt64(2))).Uint32(), ((_1_keyLen).Plus(_dafny.IntOfInt64(4))).Uint32()))) + _ = _5_valueLen + var _6_kvLen _dafny.Int = (((_dafny.IntOfInt64(2)).Plus(_1_keyLen)).Plus(_dafny.IntOfInt64(2))).Plus(_5_valueLen) + _ = _6_kvLen + var _7_valueOrError3 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need((_6_kvLen).Cmp(_dafny.IntOfUint32((data).Cardinality())) <= 0, m_StructuredEncryptionUtil.Companion_Default___.E(_dafny.SeqOfString("Unexpected end of header data."))) + _ = _7_valueOrError3 + if (_7_valueOrError3).IsFailure() { + return (_7_valueOrError3).PropagateFailure() + } else { + var _8_value _dafny.Sequence = (data).Subsequence(((_1_keyLen).Plus(_dafny.IntOfInt64(4))).Uint32(), (_6_kvLen).Uint32()) + _ = _8_value + var _9_valueOrError4 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need(m_UTF8.Companion_Default___.ValidUTF8Seq(_8_value), m_StructuredEncryptionUtil.Companion_Default___.E(_dafny.SeqOfString("Invalid UTF8 found in header."))) + _ = _9_valueOrError4 + if (_9_valueOrError4).IsFailure() { + return (_9_valueOrError4).PropagateFailure() + } else { + return m_Wrappers.Companion_Result_.Create_Success_(_dafny.TupleOf(_3_key, _8_value, _6_kvLen)) + } + } + } + } + } +} +func (_static *CompanionStruct_Default___) BytesLess(a _dafny.Sequence, b _dafny.Sequence) bool { + goto TAIL_CALL_START +TAIL_CALL_START: + if _dafny.Companion_Sequence_.Equal(a, b) { + return false + } else if (_dafny.IntOfUint32((a).Cardinality())).Sign() == 0 { + return true + } else if (_dafny.IntOfUint32((b).Cardinality())).Sign() == 0 { + return false + } else if ((a).Select(0).(uint8)) != ((b).Select(0).(uint8)) /* dircomp */ { + return ((a).Select(0).(uint8)) < ((b).Select(0).(uint8)) + } else { + var _in0 _dafny.Sequence = (a).Drop(1) + _ = _in0 + var _in1 _dafny.Sequence = (b).Drop(1) + _ = _in1 + a = _in0 + b = _in1 + goto TAIL_CALL_START + } +} +func (_static *CompanionStruct_Default___) GetContext2(count _dafny.Int, origData _dafny.Sequence, data _dafny.Sequence, deserialized _dafny.Tuple, prevKey _dafny.Sequence) m_Wrappers.Result { + goto TAIL_CALL_START +TAIL_CALL_START: + if (count).Sign() == 0 { + return m_Wrappers.Companion_Result_.Create_Success_(deserialized) + } else { + var _0_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need(((((*(deserialized).IndexInt(0)).(_dafny.Map)).Cardinality()).Plus(_dafny.One)).Cmp(m_StandardLibrary_UInt.Companion_Default___.UINT16__LIMIT()) < 0, m_StructuredEncryptionUtil.Companion_Default___.E(_dafny.SeqOfString("Too much context"))) + _ = _0_valueOrError0 + if (_0_valueOrError0).IsFailure() { + return (_0_valueOrError0).PropagateFailure() + } else { + var _1_valueOrError1 m_Wrappers.Result = Companion_Default___.GetOneKVPair(data) + _ = _1_valueOrError1 + if (_1_valueOrError1).IsFailure() { + return (_1_valueOrError1).PropagateFailure() + } else { + var _2_kv _dafny.Tuple = (_1_valueOrError1).Extract().(_dafny.Tuple) + _ = _2_kv + var _3_valueOrError2 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need(Companion_Default___.BytesLess(prevKey, (*(_2_kv).IndexInt(0)).(_dafny.Sequence)), m_StructuredEncryptionUtil.Companion_Default___.E(_dafny.SeqOfString("Context keys out of order."))) + _ = _3_valueOrError2 + if (_3_valueOrError2).IsFailure() { + return (_3_valueOrError2).PropagateFailure() + } else { + var _in0 _dafny.Int = (count).Minus(_dafny.One) + _ = _in0 + var _in1 _dafny.Sequence = origData + _ = _in1 + var _in2 _dafny.Sequence = (data).Drop(((((_dafny.IntOfInt64(2)).Plus(_dafny.IntOfUint32(((*(_2_kv).IndexInt(0)).(_dafny.Sequence)).Cardinality()))).Plus(_dafny.IntOfInt64(2))).Plus(_dafny.IntOfUint32(((*(_2_kv).IndexInt(1)).(_dafny.Sequence)).Cardinality()))).Uint32()) + _ = _in2 + var _in3 _dafny.Tuple = _dafny.TupleOf(((*(deserialized).IndexInt(0)).(_dafny.Map)).Update((*(_2_kv).IndexInt(0)).(_dafny.Sequence), (*(_2_kv).IndexInt(1)).(_dafny.Sequence)), ((*(deserialized).IndexInt(1)).(_dafny.Int)).Plus((*(_2_kv).IndexInt(2)).(_dafny.Int))) + _ = _in3 + var _in4 _dafny.Sequence = (*(_2_kv).IndexInt(0)).(_dafny.Sequence) + _ = _in4 + count = _in0 + origData = _in1 + data = _in2 + deserialized = _in3 + prevKey = _in4 + goto TAIL_CALL_START + } + } + } + } +} +func (_static *CompanionStruct_Default___) SerializeContext(x _dafny.Map) _dafny.Sequence { + var _0_keys _dafny.Sequence = m_SortedSets.SetToOrderedSequence2((x).Keys(), func(coer3 func(uint8, uint8) bool) func(interface{}, interface{}) bool { + return func(arg5 interface{}, arg6 interface{}) bool { + return coer3(arg5.(uint8), arg6.(uint8)) + } + }(m_StructuredEncryptionUtil.Companion_Default___.ByteLess)) + _ = _0_keys + return _dafny.Companion_Sequence_.Concatenate(m_StandardLibrary_UInt.Companion_Default___.UInt16ToSeq(uint16((x).CardinalityInt())), Companion_Default___.SerializeContext2(_0_keys, x)) +} +func (_static *CompanionStruct_Default___) SerializeOneKVPair(key _dafny.Sequence, value _dafny.Sequence) _dafny.Sequence { + return _dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(m_StandardLibrary_UInt.Companion_Default___.UInt16ToSeq(uint16((key).Cardinality())), key), m_StandardLibrary_UInt.Companion_Default___.UInt16ToSeq(uint16((value).Cardinality()))), value) +} +func (_static *CompanionStruct_Default___) SerializeOneDataKey(k m_AwsCryptographyMaterialProvidersTypes.EncryptedDataKey) _dafny.Sequence { + return _dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(m_StandardLibrary_UInt.Companion_Default___.UInt16ToSeq(uint16(((k).Dtor_keyProviderId()).Cardinality())), (k).Dtor_keyProviderId()), m_StandardLibrary_UInt.Companion_Default___.UInt16ToSeq(uint16(((k).Dtor_keyProviderInfo()).Cardinality()))), (k).Dtor_keyProviderInfo()), m_StandardLibrary_UInt.Companion_Default___.UInt16ToSeq(uint16(((k).Dtor_ciphertext()).Cardinality()))), (k).Dtor_ciphertext()) +} +func (_static *CompanionStruct_Default___) GetOneDataKey(data _dafny.Sequence) m_Wrappers.Result { + var _0_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need((_dafny.IntOfInt64(2)).Cmp(_dafny.IntOfUint32((data).Cardinality())) < 0, m_StructuredEncryptionUtil.Companion_Default___.E(_dafny.SeqOfString("Unexpected end of header data."))) + _ = _0_valueOrError0 + if (_0_valueOrError0).IsFailure() { + return (_0_valueOrError0).PropagateFailure() + } else { + var _1_provIdSize _dafny.Int = _dafny.IntOfUint16(m_StandardLibrary_UInt.Companion_Default___.SeqToUInt16((data).Subsequence(0, 2))) + _ = _1_provIdSize + var _2_valueOrError1 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need(((_1_provIdSize).Plus(_dafny.IntOfInt64(2))).Cmp(_dafny.IntOfUint32((data).Cardinality())) < 0, m_StructuredEncryptionUtil.Companion_Default___.E(_dafny.SeqOfString("Unexpected end of header data."))) + _ = _2_valueOrError1 + if (_2_valueOrError1).IsFailure() { + return (_2_valueOrError1).PropagateFailure() + } else { + var _3_provId _dafny.Sequence = (data).Subsequence(2, ((_dafny.IntOfInt64(2)).Plus(_1_provIdSize)).Uint32()) + _ = _3_provId + var _4_valueOrError2 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need(m_UTF8.Companion_Default___.ValidUTF8Seq(_3_provId), m_StructuredEncryptionUtil.Companion_Default___.E(_dafny.SeqOfString("Invalid UTF8 found in header."))) + _ = _4_valueOrError2 + if (_4_valueOrError2).IsFailure() { + return (_4_valueOrError2).PropagateFailure() + } else { + var _5_part1Size _dafny.Int = (_dafny.IntOfInt64(2)).Plus(_1_provIdSize) + _ = _5_part1Size + var _6_valueOrError3 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need(((_5_part1Size).Plus(_dafny.IntOfInt64(2))).Cmp(_dafny.IntOfUint32((data).Cardinality())) <= 0, m_StructuredEncryptionUtil.Companion_Default___.E(_dafny.SeqOfString("Unexpected end of header data."))) + _ = _6_valueOrError3 + if (_6_valueOrError3).IsFailure() { + return (_6_valueOrError3).PropagateFailure() + } else { + var _7_provInfoSize _dafny.Int = _dafny.IntOfUint16(m_StandardLibrary_UInt.Companion_Default___.SeqToUInt16((data).Subsequence((_5_part1Size).Uint32(), ((_5_part1Size).Plus(_dafny.IntOfInt64(2))).Uint32()))) + _ = _7_provInfoSize + var _8_valueOrError4 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need((((_5_part1Size).Plus(_7_provInfoSize)).Plus(_dafny.IntOfInt64(2))).Cmp(_dafny.IntOfUint32((data).Cardinality())) < 0, m_StructuredEncryptionUtil.Companion_Default___.E(_dafny.SeqOfString("Unexpected end of header data."))) + _ = _8_valueOrError4 + if (_8_valueOrError4).IsFailure() { + return (_8_valueOrError4).PropagateFailure() + } else { + var _9_provInfo _dafny.Sequence = (data).Subsequence(((_5_part1Size).Plus(_dafny.IntOfInt64(2))).Uint32(), (((_5_part1Size).Plus(_dafny.IntOfInt64(2))).Plus(_7_provInfoSize)).Uint32()) + _ = _9_provInfo + var _10_part2Size _dafny.Int = ((_5_part1Size).Plus(_dafny.IntOfInt64(2))).Plus(_7_provInfoSize) + _ = _10_part2Size + var _11_valueOrError5 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need(((_10_part2Size).Plus(_dafny.IntOfInt64(2))).Cmp(_dafny.IntOfUint32((data).Cardinality())) <= 0, m_StructuredEncryptionUtil.Companion_Default___.E(_dafny.SeqOfString("Unexpected end of header data."))) + _ = _11_valueOrError5 + if (_11_valueOrError5).IsFailure() { + return (_11_valueOrError5).PropagateFailure() + } else { + var _12_cipherSize _dafny.Int = _dafny.IntOfUint16(m_StandardLibrary_UInt.Companion_Default___.SeqToUInt16((data).Subsequence((_10_part2Size).Uint32(), ((_10_part2Size).Plus(_dafny.IntOfInt64(2))).Uint32()))) + _ = _12_cipherSize + var _13_valueOrError6 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need((((_10_part2Size).Plus(_12_cipherSize)).Plus(_dafny.IntOfInt64(2))).Cmp(_dafny.IntOfUint32((data).Cardinality())) <= 0, m_StructuredEncryptionUtil.Companion_Default___.E(_dafny.SeqOfString("Unexpected end of header data."))) + _ = _13_valueOrError6 + if (_13_valueOrError6).IsFailure() { + return (_13_valueOrError6).PropagateFailure() + } else { + var _14_cipher _dafny.Sequence = (data).Subsequence(((_10_part2Size).Plus(_dafny.IntOfInt64(2))).Uint32(), (((_10_part2Size).Plus(_dafny.IntOfInt64(2))).Plus(_12_cipherSize)).Uint32()) + _ = _14_cipher + var _15_part3Size _dafny.Int = ((_10_part2Size).Plus(_dafny.IntOfInt64(2))).Plus(_12_cipherSize) + _ = _15_part3Size + var _16_edk m_AwsCryptographyMaterialProvidersTypes.EncryptedDataKey = m_AwsCryptographyMaterialProvidersTypes.Companion_EncryptedDataKey_.Create_EncryptedDataKey_(_3_provId, _9_provInfo, _14_cipher) + _ = _16_edk + return m_Wrappers.Companion_Result_.Create_Success_(_dafny.TupleOf(_16_edk, _15_part3Size)) + } + } + } + } + } + } + } +} +func (_static *CompanionStruct_Default___) SerializeContext2(keys _dafny.Sequence, x _dafny.Map) _dafny.Sequence { + var _0___accumulator _dafny.Sequence = _dafny.SeqOf() + _ = _0___accumulator + goto TAIL_CALL_START +TAIL_CALL_START: + if (_dafny.IntOfUint32((keys).Cardinality())).Sign() == 0 { + return _dafny.Companion_Sequence_.Concatenate(_0___accumulator, _dafny.SeqOf()) + } else { + _0___accumulator = _dafny.Companion_Sequence_.Concatenate(_0___accumulator, Companion_Default___.SerializeOneKVPair((keys).Select(0).(_dafny.Sequence), (x).Get((keys).Select(0).(_dafny.Sequence)).(_dafny.Sequence))) + var _in0 _dafny.Sequence = (keys).Drop(1) + _ = _in0 + var _in1 _dafny.Map = x + _ = _in1 + keys = _in0 + x = _in1 + goto TAIL_CALL_START + } +} +func (_static *CompanionStruct_Default___) SerializeDataKeys(x _dafny.Sequence) _dafny.Sequence { + var _0_body _dafny.Sequence = Companion_Default___.SerializeDataKeys2(x) + _ = _0_body + return _dafny.Companion_Sequence_.Concatenate(_dafny.SeqOf(uint8((x).Cardinality())), _0_body) +} +func (_static *CompanionStruct_Default___) SerializeDataKeys2(x _dafny.Sequence) _dafny.Sequence { + var _0___accumulator _dafny.Sequence = _dafny.SeqOf() + _ = _0___accumulator + goto TAIL_CALL_START +TAIL_CALL_START: + if (_dafny.IntOfUint32((x).Cardinality())).Sign() == 0 { + return _dafny.Companion_Sequence_.Concatenate(_0___accumulator, _dafny.SeqOf()) + } else { + _0___accumulator = _dafny.Companion_Sequence_.Concatenate(_0___accumulator, Companion_Default___.SerializeOneDataKey((x).Select(0).(m_AwsCryptographyMaterialProvidersTypes.EncryptedDataKey))) + var _in0 _dafny.Sequence = (x).Drop(1) + _ = _in0 + x = _in0 + goto TAIL_CALL_START + } +} +func (_static *CompanionStruct_Default___) GetDataKeys(data _dafny.Sequence) m_Wrappers.Result { + var _0_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need((_dafny.One).Cmp(_dafny.IntOfUint32((data).Cardinality())) <= 0, m_StructuredEncryptionUtil.Companion_Default___.E(_dafny.SeqOfString("Unexpected end of header data."))) + _ = _0_valueOrError0 + if (_0_valueOrError0).IsFailure() { + return (_0_valueOrError0).PropagateFailure() + } else { + var _1_count _dafny.Int = _dafny.IntOfUint8((data).Select(0).(uint8)) + _ = _1_count + var _2_valueOrError1 m_Wrappers.Result = Companion_Default___.GetDataKeys2(_1_count, _1_count, data, (data).Drop(1), _dafny.TupleOf(_dafny.SeqOf(), _dafny.One)) + _ = _2_valueOrError1 + if (_2_valueOrError1).IsFailure() { + return (_2_valueOrError1).PropagateFailure() + } else { + var _3_keys _dafny.Tuple = (_2_valueOrError1).Extract().(_dafny.Tuple) + _ = _3_keys + if (_dafny.IntOfUint32(((*(_3_keys).IndexInt(0)).(_dafny.Sequence)).Cardinality())).Sign() == 0 { + return m_Wrappers.Companion_Result_.Create_Failure_(m_StructuredEncryptionUtil.Companion_Default___.E(_dafny.SeqOfString("At least one Data Key required"))) + } else { + return m_Wrappers.Companion_Result_.Create_Success_(_3_keys) + } + } + } +} +func (_static *CompanionStruct_Default___) GetDataKeys2(count _dafny.Int, origCount _dafny.Int, origData _dafny.Sequence, data _dafny.Sequence, deserialized _dafny.Tuple) m_Wrappers.Result { + goto TAIL_CALL_START +TAIL_CALL_START: + if (count).Sign() == 0 { + return m_Wrappers.Companion_Result_.Create_Success_(deserialized) + } else if (_dafny.IntOfUint32(((*(deserialized).IndexInt(0)).(_dafny.Sequence)).Cardinality())).Cmp(_dafny.IntOfInt64(255)) >= 0 { + return m_Wrappers.Companion_Result_.Create_Failure_(m_StructuredEncryptionUtil.Companion_Default___.E(_dafny.SeqOfString("Too Many Data Keys"))) + } else { + var _0_valueOrError0 m_Wrappers.Result = Companion_Default___.GetOneDataKey(data) + _ = _0_valueOrError0 + if (_0_valueOrError0).IsFailure() { + return (_0_valueOrError0).PropagateFailure() + } else { + var _1_edk _dafny.Tuple = (_0_valueOrError0).Extract().(_dafny.Tuple) + _ = _1_edk + var _in0 _dafny.Int = (count).Minus(_dafny.One) + _ = _in0 + var _in1 _dafny.Int = origCount + _ = _in1 + var _in2 _dafny.Sequence = origData + _ = _in2 + var _in3 _dafny.Sequence = (data).Drop(((*(_1_edk).IndexInt(1)).(_dafny.Int)).Uint32()) + _ = _in3 + var _in4 _dafny.Tuple = _dafny.TupleOf(_dafny.Companion_Sequence_.Concatenate((*(deserialized).IndexInt(0)).(_dafny.Sequence), _dafny.SeqOf((*(_1_edk).IndexInt(0)).(m_AwsCryptographyMaterialProvidersTypes.EncryptedDataKey))), ((*(deserialized).IndexInt(1)).(_dafny.Int)).Plus((*(_1_edk).IndexInt(1)).(_dafny.Int))) + _ = _in4 + count = _in0 + origCount = _in1 + origData = _in2 + data = _in3 + deserialized = _in4 + goto TAIL_CALL_START + } + } +} +func (_static *CompanionStruct_Default___) VERSION__LEN() _dafny.Int { + return _dafny.One +} +func (_static *CompanionStruct_Default___) FLAVOR__LEN() _dafny.Int { + return _dafny.One +} +func (_static *CompanionStruct_Default___) PREFIX__LEN() _dafny.Int { + return ((Companion_Default___.VERSION__LEN()).Plus(Companion_Default___.FLAVOR__LEN())).Plus(m_StructuredEncryptionUtil.Companion_Default___.MSGID__LEN()) +} +func (_static *CompanionStruct_Default___) ENCRYPT__AND__SIGN__LEGEND() uint8 { + return uint8(101) +} +func (_static *CompanionStruct_Default___) SIGN__AND__INCLUDE__IN__ENCRYPTION__CONTEXT__LEGEND() uint8 { + return uint8(99) +} +func (_static *CompanionStruct_Default___) SIGN__ONLY__LEGEND() uint8 { + return uint8(115) +} +func (_static *CompanionStruct_Default___) UINT8__LIMIT() _dafny.Int { + return _dafny.IntOfInt64(256) +} +func (_static *CompanionStruct_Default___) COMMITMENT__LEN() _dafny.Int { + return _dafny.IntOfInt64(32) +} +func (_static *CompanionStruct_Default___) EmptyLegend() _dafny.Sequence { + return _dafny.SeqOf() +} + +// End of class Default__ + +// Definition of class Version +type Version struct { +} + +func New_Version_() *Version { + _this := Version{} + + return &_this +} + +type CompanionStruct_Version_ struct { +} + +var Companion_Version_ = CompanionStruct_Version_{} + +func (*Version) String() string { + return "StructuredEncryptionHeader.Version" +} +func (_this *CompanionStruct_Version_) Witness() uint8 { + return uint8(1) +} + +// End of class Version + +func Type_Version_() _dafny.TypeDescriptor { + return type_Version_{} +} + +type type_Version_ struct { +} + +func (_this type_Version_) Default() interface{} { + return Companion_Version_.Witness() +} + +func (_this type_Version_) String() string { + return "StructuredEncryptionHeader.Version" +} +func (_this *CompanionStruct_Version_) Is_(__source uint8) bool { + var _0_x uint8 = (__source) + _ = _0_x + if true { + return Companion_Default___.ValidVersion(_0_x) + } + return false +} + +// Definition of class Flavor +type Flavor struct { +} + +func New_Flavor_() *Flavor { + _this := Flavor{} + + return &_this +} + +type CompanionStruct_Flavor_ struct { +} + +var Companion_Flavor_ = CompanionStruct_Flavor_{} + +func (*Flavor) String() string { + return "StructuredEncryptionHeader.Flavor" +} + +// End of class Flavor + +func Type_Flavor_() _dafny.TypeDescriptor { + return type_Flavor_{} +} + +type type_Flavor_ struct { +} + +func (_this type_Flavor_) Default() interface{} { + return uint8(0) +} + +func (_this type_Flavor_) String() string { + return "StructuredEncryptionHeader.Flavor" +} +func (_this *CompanionStruct_Flavor_) Is_(__source uint8) bool { + var _1_x uint8 = (__source) + _ = _1_x + if true { + return Companion_Default___.ValidFlavor(_1_x) + } + return false +} + +// Definition of class CMPEncryptedDataKeyList +type CMPEncryptedDataKeyList struct { +} + +func New_CMPEncryptedDataKeyList_() *CMPEncryptedDataKeyList { + _this := CMPEncryptedDataKeyList{} + + return &_this +} + +type CompanionStruct_CMPEncryptedDataKeyList_ struct { +} + +var Companion_CMPEncryptedDataKeyList_ = CompanionStruct_CMPEncryptedDataKeyList_{} + +func (*CMPEncryptedDataKeyList) String() string { + return "StructuredEncryptionHeader.CMPEncryptedDataKeyList" +} + +// End of class CMPEncryptedDataKeyList + +func Type_CMPEncryptedDataKeyList_() _dafny.TypeDescriptor { + return type_CMPEncryptedDataKeyList_{} +} + +type type_CMPEncryptedDataKeyList_ struct { +} + +func (_this type_CMPEncryptedDataKeyList_) Default() interface{} { + return _dafny.EmptySeq +} + +func (_this type_CMPEncryptedDataKeyList_) String() string { + return "StructuredEncryptionHeader.CMPEncryptedDataKeyList" +} +func (_this *CompanionStruct_CMPEncryptedDataKeyList_) Is_(__source _dafny.Sequence) bool { + var _2_x _dafny.Sequence = (__source) + _ = _2_x + return ((_dafny.IntOfUint32((_2_x).Cardinality())).Sign() == 1) && ((_dafny.IntOfUint32((_2_x).Cardinality())).Cmp(Companion_Default___.UINT8__LIMIT()) < 0) +} + +// Definition of class Commitment +type Commitment struct { +} + +func New_Commitment_() *Commitment { + _this := Commitment{} + + return &_this +} + +type CompanionStruct_Commitment_ struct { +} + +var Companion_Commitment_ = CompanionStruct_Commitment_{} + +func (*Commitment) String() string { + return "StructuredEncryptionHeader.Commitment" +} + +// End of class Commitment + +func Type_Commitment_() _dafny.TypeDescriptor { + return type_Commitment_{} +} + +type type_Commitment_ struct { +} + +func (_this type_Commitment_) Default() interface{} { + return _dafny.EmptySeq +} + +func (_this type_Commitment_) String() string { + return "StructuredEncryptionHeader.Commitment" +} +func (_this *CompanionStruct_Commitment_) Is_(__source _dafny.Sequence) bool { + var _3_x _dafny.Sequence = (__source) + _ = _3_x + return (_dafny.IntOfUint32((_3_x).Cardinality())).Cmp(Companion_Default___.COMMITMENT__LEN()) == 0 +} + +// Definition of class CMPEncryptedDataKey +type CMPEncryptedDataKey struct { +} + +func New_CMPEncryptedDataKey_() *CMPEncryptedDataKey { + _this := CMPEncryptedDataKey{} + + return &_this +} + +type CompanionStruct_CMPEncryptedDataKey_ struct { +} + +var Companion_CMPEncryptedDataKey_ = CompanionStruct_CMPEncryptedDataKey_{} + +func (*CMPEncryptedDataKey) String() string { + return "StructuredEncryptionHeader.CMPEncryptedDataKey" +} + +// End of class CMPEncryptedDataKey + +func Type_CMPEncryptedDataKey_() _dafny.TypeDescriptor { + return type_CMPEncryptedDataKey_{} +} + +type type_CMPEncryptedDataKey_ struct { +} + +func (_this type_CMPEncryptedDataKey_) Default() interface{} { + return m_AwsCryptographyMaterialProvidersTypes.Companion_EncryptedDataKey_.Default() +} + +func (_this type_CMPEncryptedDataKey_) String() string { + return "StructuredEncryptionHeader.CMPEncryptedDataKey" +} +func (_this *CompanionStruct_CMPEncryptedDataKey_) Is_(__source m_AwsCryptographyMaterialProvidersTypes.EncryptedDataKey) bool { + var _4_x m_AwsCryptographyMaterialProvidersTypes.EncryptedDataKey = (__source) + _ = _4_x + return Companion_Default___.ValidEncryptedDataKey(_4_x) +} + +// Definition of class CMPEncryptionContext +type CMPEncryptionContext struct { +} + +func New_CMPEncryptionContext_() *CMPEncryptionContext { + _this := CMPEncryptionContext{} + + return &_this +} + +type CompanionStruct_CMPEncryptionContext_ struct { +} + +var Companion_CMPEncryptionContext_ = CompanionStruct_CMPEncryptionContext_{} + +func (*CMPEncryptionContext) String() string { + return "StructuredEncryptionHeader.CMPEncryptionContext" +} + +// End of class CMPEncryptionContext + +func Type_CMPEncryptionContext_() _dafny.TypeDescriptor { + return type_CMPEncryptionContext_{} +} + +type type_CMPEncryptionContext_ struct { +} + +func (_this type_CMPEncryptionContext_) Default() interface{} { + return _dafny.EmptyMap +} + +func (_this type_CMPEncryptionContext_) String() string { + return "StructuredEncryptionHeader.CMPEncryptionContext" +} +func (_this *CompanionStruct_CMPEncryptionContext_) Is_(__source _dafny.Map) bool { + var _5_x _dafny.Map = (__source) + _ = _5_x + return Companion_Default___.ValidEncryptionContext(_5_x) +} + +// Definition of class CMPEncryptedDataKeyListEmptyOK +type CMPEncryptedDataKeyListEmptyOK struct { +} + +func New_CMPEncryptedDataKeyListEmptyOK_() *CMPEncryptedDataKeyListEmptyOK { + _this := CMPEncryptedDataKeyListEmptyOK{} + + return &_this +} + +type CompanionStruct_CMPEncryptedDataKeyListEmptyOK_ struct { +} + +var Companion_CMPEncryptedDataKeyListEmptyOK_ = CompanionStruct_CMPEncryptedDataKeyListEmptyOK_{} + +func (*CMPEncryptedDataKeyListEmptyOK) String() string { + return "StructuredEncryptionHeader.CMPEncryptedDataKeyListEmptyOK" +} + +// End of class CMPEncryptedDataKeyListEmptyOK + +func Type_CMPEncryptedDataKeyListEmptyOK_() _dafny.TypeDescriptor { + return type_CMPEncryptedDataKeyListEmptyOK_{} +} + +type type_CMPEncryptedDataKeyListEmptyOK_ struct { +} + +func (_this type_CMPEncryptedDataKeyListEmptyOK_) Default() interface{} { + return _dafny.EmptySeq +} + +func (_this type_CMPEncryptedDataKeyListEmptyOK_) String() string { + return "StructuredEncryptionHeader.CMPEncryptedDataKeyListEmptyOK" +} +func (_this *CompanionStruct_CMPEncryptedDataKeyListEmptyOK_) Is_(__source _dafny.Sequence) bool { + var _6_x _dafny.Sequence = (__source) + _ = _6_x + return (_dafny.IntOfUint32((_6_x).Cardinality())).Cmp(Companion_Default___.UINT8__LIMIT()) < 0 +} + +// Definition of class LegendByte +type LegendByte struct { +} + +func New_LegendByte_() *LegendByte { + _this := LegendByte{} + + return &_this +} + +type CompanionStruct_LegendByte_ struct { +} + +var Companion_LegendByte_ = CompanionStruct_LegendByte_{} + +func (*LegendByte) String() string { + return "StructuredEncryptionHeader.LegendByte" +} +func (_this *CompanionStruct_LegendByte_) Witness() uint8 { + return Companion_Default___.SIGN__ONLY__LEGEND() +} + +// End of class LegendByte + +func Type_LegendByte_() _dafny.TypeDescriptor { + return type_LegendByte_{} +} + +type type_LegendByte_ struct { +} + +func (_this type_LegendByte_) Default() interface{} { + return Companion_LegendByte_.Witness() +} + +func (_this type_LegendByte_) String() string { + return "StructuredEncryptionHeader.LegendByte" +} +func (_this *CompanionStruct_LegendByte_) Is_(__source uint8) bool { + var _7_x uint8 = (__source) + _ = _7_x + if true { + return Companion_Default___.ValidLegendByte(_7_x) + } + return false +} + +// Definition of class Legend +type Legend struct { +} + +func New_Legend_() *Legend { + _this := Legend{} + + return &_this +} + +type CompanionStruct_Legend_ struct { +} + +var Companion_Legend_ = CompanionStruct_Legend_{} + +func (*Legend) String() string { + return "StructuredEncryptionHeader.Legend" +} + +// End of class Legend + +func Type_Legend_() _dafny.TypeDescriptor { + return type_Legend_{} +} + +type type_Legend_ struct { +} + +func (_this type_Legend_) Default() interface{} { + return _dafny.EmptySeq +} + +func (_this type_Legend_) String() string { + return "StructuredEncryptionHeader.Legend" +} +func (_this *CompanionStruct_Legend_) Is_(__source _dafny.Sequence) bool { + var _8_x _dafny.Sequence = (__source) + _ = _8_x + return (_dafny.IntOfUint32((_8_x).Cardinality())).Cmp(m_StandardLibrary_UInt.Companion_Default___.UINT16__LIMIT()) < 0 +} + +// Definition of class CMPUtf8Bytes +type CMPUtf8Bytes struct { +} + +func New_CMPUtf8Bytes_() *CMPUtf8Bytes { + _this := CMPUtf8Bytes{} + + return &_this +} + +type CompanionStruct_CMPUtf8Bytes_ struct { +} + +var Companion_CMPUtf8Bytes_ = CompanionStruct_CMPUtf8Bytes_{} + +func (*CMPUtf8Bytes) String() string { + return "StructuredEncryptionHeader.CMPUtf8Bytes" +} + +// End of class CMPUtf8Bytes + +func Type_CMPUtf8Bytes_() _dafny.TypeDescriptor { + return type_CMPUtf8Bytes_{} +} + +type type_CMPUtf8Bytes_ struct { +} + +func (_this type_CMPUtf8Bytes_) Default() interface{} { + return m_UTF8.Companion_ValidUTF8Bytes_.Witness() +} + +func (_this type_CMPUtf8Bytes_) String() string { + return "StructuredEncryptionHeader.CMPUtf8Bytes" +} +func (_this *CompanionStruct_CMPUtf8Bytes_) Is_(__source _dafny.Sequence) bool { + var _9_x _dafny.Sequence = (__source) + _ = _9_x + if m_UTF8.Companion_ValidUTF8Bytes_.Is_(_9_x) { + return (_dafny.IntOfUint32((_9_x).Cardinality())).Cmp(m_StandardLibrary_UInt.Companion_Default___.UINT16__LIMIT()) < 0 + } + return false +} + +// Definition of datatype PartialHeader +type PartialHeader struct { + Data_PartialHeader_ +} + +func (_this PartialHeader) Get_() Data_PartialHeader_ { + return _this.Data_PartialHeader_ +} + +type Data_PartialHeader_ interface { + isPartialHeader() +} + +type CompanionStruct_PartialHeader_ struct { +} + +var Companion_PartialHeader_ = CompanionStruct_PartialHeader_{} + +type PartialHeader_PartialHeader struct { + Version uint8 + Flavor uint8 + MsgID _dafny.Sequence + Legend _dafny.Sequence + EncContext _dafny.Map + DataKeys _dafny.Sequence +} + +func (PartialHeader_PartialHeader) isPartialHeader() {} + +func (CompanionStruct_PartialHeader_) Create_PartialHeader_(Version uint8, Flavor uint8, MsgID _dafny.Sequence, Legend _dafny.Sequence, EncContext _dafny.Map, DataKeys _dafny.Sequence) PartialHeader { + return PartialHeader{PartialHeader_PartialHeader{Version, Flavor, MsgID, Legend, EncContext, DataKeys}} +} + +func (_this PartialHeader) Is_PartialHeader() bool { + _, ok := _this.Get_().(PartialHeader_PartialHeader) + return ok +} + +func (CompanionStruct_PartialHeader_) Default() PartialHeader { + return Companion_PartialHeader_.Create_PartialHeader_(Companion_Version_.Witness(), uint8(0), _dafny.EmptySeq, _dafny.EmptySeq, _dafny.EmptyMap, _dafny.EmptySeq) +} + +func (_this PartialHeader) Dtor_version() uint8 { + return _this.Get_().(PartialHeader_PartialHeader).Version +} + +func (_this PartialHeader) Dtor_flavor() uint8 { + return _this.Get_().(PartialHeader_PartialHeader).Flavor +} + +func (_this PartialHeader) Dtor_msgID() _dafny.Sequence { + return _this.Get_().(PartialHeader_PartialHeader).MsgID +} + +func (_this PartialHeader) Dtor_legend() _dafny.Sequence { + return _this.Get_().(PartialHeader_PartialHeader).Legend +} + +func (_this PartialHeader) Dtor_encContext() _dafny.Map { + return _this.Get_().(PartialHeader_PartialHeader).EncContext +} + +func (_this PartialHeader) Dtor_dataKeys() _dafny.Sequence { + return _this.Get_().(PartialHeader_PartialHeader).DataKeys +} + +func (_this PartialHeader) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case PartialHeader_PartialHeader: + { + return "StructuredEncryptionHeader.PartialHeader.PartialHeader" + "(" + _dafny.String(data.Version) + ", " + _dafny.String(data.Flavor) + ", " + _dafny.String(data.MsgID) + ", " + _dafny.String(data.Legend) + ", " + _dafny.String(data.EncContext) + ", " + _dafny.String(data.DataKeys) + ")" + } + default: + { + return "" + } + } +} + +func (_this PartialHeader) Equals(other PartialHeader) bool { + switch data1 := _this.Get_().(type) { + case PartialHeader_PartialHeader: + { + data2, ok := other.Get_().(PartialHeader_PartialHeader) + return ok && data1.Version == data2.Version && data1.Flavor == data2.Flavor && data1.MsgID.Equals(data2.MsgID) && data1.Legend.Equals(data2.Legend) && data1.EncContext.Equals(data2.EncContext) && data1.DataKeys.Equals(data2.DataKeys) + } + default: + { + return false // unexpected + } + } +} + +func (_this PartialHeader) EqualsGeneric(other interface{}) bool { + typed, ok := other.(PartialHeader) + return ok && _this.Equals(typed) +} + +func Type_PartialHeader_() _dafny.TypeDescriptor { + return type_PartialHeader_{} +} + +type type_PartialHeader_ struct { +} + +func (_this type_PartialHeader_) Default() interface{} { + return Companion_PartialHeader_.Default() +} + +func (_this type_PartialHeader_) String() string { + return "StructuredEncryptionHeader.PartialHeader" +} +func (_this PartialHeader) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = PartialHeader{} + +func (_this PartialHeader) Serialize() _dafny.Sequence { + { + var _0_context _dafny.Sequence = Companion_Default___.SerializeContext((_this).Dtor_encContext()) + _ = _0_context + var _1_keys _dafny.Sequence = Companion_Default___.SerializeDataKeys((_this).Dtor_dataKeys()) + _ = _1_keys + var _2_leg _dafny.Sequence = Companion_Default___.SerializeLegend((_this).Dtor_legend()) + _ = _2_leg + return _dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.SeqOf((_this).Dtor_version()), _dafny.SeqOf((_this).Dtor_flavor())), (_this).Dtor_msgID()), _2_leg), _0_context), _1_keys) + } +} +func (_this PartialHeader) VerifyCommitment(client m_AwsCryptographyPrimitivesTypes.IAwsCryptographicPrimitivesClient, alg m_AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo, commitKey _dafny.Sequence, data _dafny.Sequence) m_Wrappers.Result { + { + var _0_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need((Companion_Default___.COMMITMENT__LEN()).Cmp(_dafny.IntOfUint32((data).Cardinality())) < 0, m_StructuredEncryptionUtil.Companion_Default___.E(_dafny.SeqOfString("Serialized header too short"))) + _ = _0_valueOrError0 + if (_0_valueOrError0).IsFailure() { + return (_0_valueOrError0).PropagateFailure() + } else { + var _1_storedCommitment _dafny.Sequence = (data).Drop(((_dafny.IntOfUint32((data).Cardinality())).Minus(Companion_Default___.COMMITMENT__LEN())).Uint32()) + _ = _1_storedCommitment + var _2_valueOrError1 m_Wrappers.Result = Companion_Default___.CalculateHeaderCommitment(client, alg, commitKey, (data).Take(((_dafny.IntOfUint32((data).Cardinality())).Minus(Companion_Default___.COMMITMENT__LEN())).Uint32())) + _ = _2_valueOrError1 + if (_2_valueOrError1).IsFailure() { + return (_2_valueOrError1).PropagateFailure() + } else { + var _3_calcCommitment _dafny.Sequence = (_2_valueOrError1).Extract().(_dafny.Sequence) + _ = _3_calcCommitment + var _4_valueOrError2 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need(m_StructuredEncryptionUtil.Companion_Default___.ConstantTimeEquals(_1_storedCommitment, _3_calcCommitment), m_StructuredEncryptionUtil.Companion_Default___.E(_dafny.SeqOfString("Key commitment mismatch."))) + _ = _4_valueOrError2 + if (_4_valueOrError2).IsFailure() { + return (_4_valueOrError2).PropagateFailure() + } else { + return m_Wrappers.Companion_Result_.Create_Success_(true) + } + } + } + } +} +func (_this PartialHeader) GetAlgorithmSuite(matProv *m_MaterialProviders.MaterialProvidersClient) m_Wrappers.Result { + { + var ret m_Wrappers.Result = m_Wrappers.Result{} + _ = ret + var _0_algorithmSuiteR m_Wrappers.Result + _ = _0_algorithmSuiteR + _0_algorithmSuiteR = (matProv).GetAlgorithmSuiteInfo(_dafny.SeqOf(m_StructuredEncryptionUtil.Companion_Default___.DbeAlgorithmFamily(), (_this).Dtor_flavor())) + if (_0_algorithmSuiteR).Is_Success() { + var _1_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _1_valueOrError0 + _1_valueOrError0 = m_Wrappers.Companion_Default___.Need(m_StructuredEncryptionUtil.Companion_Default___.ValidSuite((_0_algorithmSuiteR).Dtor_value().(m_AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo)), m_StructuredEncryptionUtil.Companion_Default___.E(_dafny.SeqOfString("Invalid Algorithm Suite"))) + if (_1_valueOrError0).IsFailure() { + ret = (_1_valueOrError0).PropagateFailure() + return ret + } + ret = m_Wrappers.Companion_Result_.Create_Success_((_0_algorithmSuiteR).Dtor_value().(m_AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo)) + return ret + } else { + ret = (_0_algorithmSuiteR).MapFailure(func(coer4 func(m_AwsCryptographyMaterialProvidersTypes.Error) m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Error) func(interface{}) interface{} { + return func(arg7 interface{}) interface{} { + return coer4(arg7.(m_AwsCryptographyMaterialProvidersTypes.Error)) + } + }(func(_2_e m_AwsCryptographyMaterialProvidersTypes.Error) m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Error { + return m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Companion_Error_.Create_AwsCryptographyMaterialProviders_(_2_e) + })) + return ret + } + return ret + } +} + +// End of datatype PartialHeader diff --git a/customer-preview/ddb-esdk/StructuredEncryptionPaths/StructuredEncryptionPaths.go b/customer-preview/ddb-esdk/StructuredEncryptionPaths/StructuredEncryptionPaths.go new file mode 100644 index 000000000..a2e0b3ff5 --- /dev/null +++ b/customer-preview/ddb-esdk/StructuredEncryptionPaths/StructuredEncryptionPaths.go @@ -0,0 +1,557 @@ +// Package StructuredEncryptionPaths +// Dafny module StructuredEncryptionPaths compiled into Go + +package StructuredEncryptionPaths + +import ( + os "os" + + m_ComAmazonawsDynamodbTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/ComAmazonawsDynamodbTypes" + m_Com_Amazonaws_Dynamodb "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/Com_Amazonaws_Dynamodb" + m_ComAmazonawsKmsTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/ComAmazonawsKmsTypes" + m_Com_Amazonaws_Kms "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/Com_Amazonaws_Kms" + m_AlgorithmSuites "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AlgorithmSuites" + m_AwsArnParsing "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsArnParsing" + m_AwsCryptographyKeyStoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreOperations" + m_AwsCryptographyKeyStoreTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreTypes" + m_AwsCryptographyMaterialProvidersOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersOperations" + m_AwsCryptographyMaterialProvidersTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersTypes" + m_AwsKmsDiscoveryKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsDiscoveryKeyring" + m_AwsKmsEcdhKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsEcdhKeyring" + m_AwsKmsHierarchicalKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsHierarchicalKeyring" + m_AwsKmsKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsKeyring" + m_AwsKmsMrkAreUnique "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkAreUnique" + m_AwsKmsMrkDiscoveryKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkDiscoveryKeyring" + m_AwsKmsMrkKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkKeyring" + m_AwsKmsMrkMatchForDecrypt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkMatchForDecrypt" + m_AwsKmsRsaKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsRsaKeyring" + m_AwsKmsUtils "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsUtils" + m_CMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CMM" + m_CacheConstants "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CacheConstants" + m_CanonicalEncryptionContext "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CanonicalEncryptionContext" + m_Commitment "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Commitment" + m_Constants "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Constants" + m_CreateKeyStoreTable "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeyStoreTable" + m_CreateKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeys" + m_DDBKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DDBKeystoreOperations" + m_DefaultCMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DefaultCMM" + m_DefaultClientSupplier "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DefaultClientSupplier" + m_Defaults "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Defaults" + m_DiscoveryMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DiscoveryMultiKeyring" + m_EcdhEdkWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/EcdhEdkWrapping" + m_EdkWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/EdkWrapping" + m_ErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/ErrorMessages" + m_GetKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/GetKeys" + m_IntermediateKeyWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/IntermediateKeyWrapping" + m_KMSKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KMSKeystoreOperations" + m_KeyStore "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStore" + m_KeyStoreErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStoreErrorMessages" + m_Keyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Keyring" + m_KmsArn "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KmsArn" + m_LocalCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/LocalCMC" + m_MaterialProviders "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MaterialProviders" + m_MaterialWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MaterialWrapping" + m_Materials "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Materials" + m_MrkAwareDiscoveryMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MrkAwareDiscoveryMultiKeyring" + m_MrkAwareStrictMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MrkAwareStrictMultiKeyring" + m_MultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MultiKeyring" + m_RawAESKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawAESKeyring" + m_RawECDHKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawECDHKeyring" + m_RawRSAKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawRSAKeyring" + m_RequiredEncryptionContextCMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RequiredEncryptionContextCMM" + m_StormTracker "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StormTracker" + m_StormTrackingCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StormTrackingCMC" + m_StrictMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StrictMultiKeyring" + m_Structure "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Structure" + m_SynchronizedLocalCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/SynchronizedLocalCMC" + m_Utils "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Utils" + m_AtomicPrimitives "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AtomicPrimitives" + m_AwsCryptographyPrimitivesOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesOperations" + m_AwsCryptographyPrimitivesTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesTypes" + m_Digest "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Digest" + m_HKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/HKDF" + m_KdfCtr "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/KdfCtr" + m_Random "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Random" + m_WrappedHKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHKDF" + m_WrappedHMAC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHMAC" + m_Actions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Actions" + m_Base64 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64" + m_Base64Lemmas "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64Lemmas" + m_BoundedInts "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/BoundedInts" + m_DivInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternals" + m_DivInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternalsNonlinear" + m_DivMod "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivMod" + m_FileIO "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FileIO" + m_FloatCompare "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FloatCompare" + m_Functions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Functions" + m_GeneralInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GeneralInternals" + m_GetOpt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GetOpt" + m_HexStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/HexStrings" + m_Logarithm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Logarithm" + m__Math "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Math_" + m_ModInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternals" + m_ModInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternalsNonlinear" + m_Mul "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Mul" + m_MulInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternals" + m_MulInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternalsNonlinear" + m_Power "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Power" + m_Relations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Relations" + m_Seq "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq" + m_Seq_MergeSort "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq_MergeSort" + m_Sorting "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Sorting" + m_StandardLibrary "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary" + m_StandardLibraryInterop "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibraryInterop" + m_StandardLibrary_Sequence "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_Sequence" + m_StandardLibrary_String "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_String" + m_StandardLibrary_UInt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_UInt" + m_Streams "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Streams" + m_UTF8 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UTF8" + m_UnicodeStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UnicodeStrings" + m__Unicode "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Unicode_" + m_Utf16EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf16EncodingForm" + m_Utf8EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf8EncodingForm" + m_Wrappers "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers" + m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes" + m_Sets "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/Sets" + m_StructuredEncryptionUtil "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionUtil" + m__System "github.com/dafny-lang/DafnyRuntimeGo/v4/System_" + _dafny "github.com/dafny-lang/DafnyRuntimeGo/v4/dafny" +) + +var _ = os.Args +var _ _dafny.Dummy__ +var _ m__System.Dummy__ +var _ m_Wrappers.Dummy__ +var _ m_BoundedInts.Dummy__ +var _ m_StandardLibrary_UInt.Dummy__ +var _ m_StandardLibrary_Sequence.Dummy__ +var _ m_StandardLibrary_String.Dummy__ +var _ m_StandardLibrary.Dummy__ +var _ m_AwsCryptographyPrimitivesTypes.Dummy__ +var _ m_Random.Dummy__ +var _ m_Digest.Dummy__ +var _ m_WrappedHMAC.Dummy__ +var _ m_HKDF.Dummy__ +var _ m_WrappedHKDF.Dummy__ +var _ m_KdfCtr.Dummy__ +var _ m_AwsCryptographyPrimitivesOperations.Dummy__ +var _ m_AtomicPrimitives.Dummy__ +var _ m_ComAmazonawsDynamodbTypes.Dummy__ +var _ m_ComAmazonawsKmsTypes.Dummy__ +var _ m_AwsCryptographyKeyStoreTypes.Dummy__ +var _ m_AwsCryptographyMaterialProvidersTypes.Dummy__ +var _ m_Base64.Dummy__ +var _ m_AlgorithmSuites.Dummy__ +var _ m_Materials.Dummy__ +var _ m_Keyring.Dummy__ +var _ m_Relations.Dummy__ +var _ m_Seq_MergeSort.Dummy__ +var _ m__Math.Dummy__ +var _ m_Seq.Dummy__ +var _ m_MultiKeyring.Dummy__ +var _ m_AwsArnParsing.Dummy__ +var _ m_AwsKmsMrkAreUnique.Dummy__ +var _ m_Actions.Dummy__ +var _ m_AwsKmsMrkMatchForDecrypt.Dummy__ +var _ m_AwsKmsUtils.Dummy__ +var _ m_Constants.Dummy__ +var _ m_MaterialWrapping.Dummy__ +var _ m_CanonicalEncryptionContext.Dummy__ +var _ m_IntermediateKeyWrapping.Dummy__ +var _ m_EdkWrapping.Dummy__ +var _ m_ErrorMessages.Dummy__ +var _ m_AwsKmsKeyring.Dummy__ +var _ m_StrictMultiKeyring.Dummy__ +var _ m_AwsKmsDiscoveryKeyring.Dummy__ +var _ m_Com_Amazonaws_Kms.Dummy__ +var _ m_Com_Amazonaws_Dynamodb.Dummy__ +var _ m_DiscoveryMultiKeyring.Dummy__ +var _ m_AwsKmsMrkDiscoveryKeyring.Dummy__ +var _ m_MrkAwareDiscoveryMultiKeyring.Dummy__ +var _ m_AwsKmsMrkKeyring.Dummy__ +var _ m_MrkAwareStrictMultiKeyring.Dummy__ +var _ m_LocalCMC.Dummy__ +var _ m_SynchronizedLocalCMC.Dummy__ +var _ m_StormTracker.Dummy__ +var _ m_StormTrackingCMC.Dummy__ +var _ m_CacheConstants.Dummy__ +var _ m_AwsKmsHierarchicalKeyring.Dummy__ +var _ m_AwsKmsRsaKeyring.Dummy__ +var _ m_EcdhEdkWrapping.Dummy__ +var _ m_RawECDHKeyring.Dummy__ +var _ m_AwsKmsEcdhKeyring.Dummy__ +var _ m_RawAESKeyring.Dummy__ +var _ m_RawRSAKeyring.Dummy__ +var _ m_CMM.Dummy__ +var _ m_Defaults.Dummy__ +var _ m_Commitment.Dummy__ +var _ m_DefaultCMM.Dummy__ +var _ m_DefaultClientSupplier.Dummy__ +var _ m_Utils.Dummy__ +var _ m_RequiredEncryptionContextCMM.Dummy__ +var _ m_AwsCryptographyMaterialProvidersOperations.Dummy__ +var _ m_MaterialProviders.Dummy__ +var _ m_KeyStoreErrorMessages.Dummy__ +var _ m_KmsArn.Dummy__ +var _ m_Structure.Dummy__ +var _ m_KMSKeystoreOperations.Dummy__ +var _ m_DDBKeystoreOperations.Dummy__ +var _ m_CreateKeys.Dummy__ +var _ m_CreateKeyStoreTable.Dummy__ +var _ m_GetKeys.Dummy__ +var _ m_AwsCryptographyKeyStoreOperations.Dummy__ +var _ m_KeyStore.Dummy__ +var _ m__Unicode.Dummy__ +var _ m_Functions.Dummy__ +var _ m_Utf8EncodingForm.Dummy__ +var _ m_Utf16EncodingForm.Dummy__ +var _ m_UnicodeStrings.Dummy__ +var _ m_FileIO.Dummy__ +var _ m_GeneralInternals.Dummy__ +var _ m_MulInternalsNonlinear.Dummy__ +var _ m_MulInternals.Dummy__ +var _ m_Mul.Dummy__ +var _ m_ModInternalsNonlinear.Dummy__ +var _ m_DivInternalsNonlinear.Dummy__ +var _ m_ModInternals.Dummy__ +var _ m_DivInternals.Dummy__ +var _ m_DivMod.Dummy__ +var _ m_Power.Dummy__ +var _ m_Logarithm.Dummy__ +var _ m_StandardLibraryInterop.Dummy__ +var _ m_Streams.Dummy__ +var _ m_Sorting.Dummy__ +var _ m_HexStrings.Dummy__ +var _ m_GetOpt.Dummy__ +var _ m_FloatCompare.Dummy__ +var _ m_Base64Lemmas.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Dummy__ +var _ m_StructuredEncryptionUtil.Dummy__ +var _ m_Sets.Dummy__ + +type Dummy__ struct{} + +// Definition of class Default__ +type Default__ struct { + dummy byte +} + +func New_Default___() *Default__ { + _this := Default__{} + + return &_this +} + +type CompanionStruct_Default___ struct { +} + +var Companion_Default___ = CompanionStruct_Default___{} + +func (_this *Default__) Equals(other *Default__) bool { + return _this == other +} + +func (_this *Default__) EqualsGeneric(x interface{}) bool { + other, ok := x.(*Default__) + return ok && _this.Equals(other) +} + +func (*Default__) String() string { + return "StructuredEncryptionPaths.Default__" +} +func (_this *Default__) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = &Default__{} + +func (_static *CompanionStruct_Default___) ValidTerminalSelector(s _dafny.Sequence) bool { + return (((_dafny.IntOfUint32((s).Cardinality())).Sign() == 1) && ((_dafny.IntOfUint32((s).Cardinality())).Cmp(m_StandardLibrary_UInt.Companion_Default___.UINT64__LIMIT()) < 0)) && (((s).Select(0).(Selector)).Is_Map()) +} +func (_static *CompanionStruct_Default___) StringToUniPath(x _dafny.Sequence) _dafny.Sequence { + return _dafny.SeqOf(m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Companion_PathSegment_.Create_member_(m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Companion_StructureSegment_.Create_StructureSegment_(x))) +} +func (_static *CompanionStruct_Default___) UniPathToString(x _dafny.Sequence) m_Wrappers.Result { + return m_Wrappers.Companion_Result_.Create_Success_((((x).Select(0).(m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.PathSegment)).Dtor_member()).Dtor_key()) +} +func (_static *CompanionStruct_Default___) ValidPath(path _dafny.Sequence) bool { + return ((_dafny.IntOfUint32((path).Cardinality())).Cmp(m_StandardLibrary_UInt.Companion_Default___.UINT64__LIMIT()) < 0) && (_dafny.Quantifier((path).UniqueElements(), true, func(_forall_var_0 m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.PathSegment) bool { + var _0_x m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.PathSegment + _0_x = interface{}(_forall_var_0).(m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.PathSegment) + return !(_dafny.Companion_Sequence_.Contains(path, _0_x)) || (m_StructuredEncryptionUtil.Companion_Default___.ValidString(((_0_x).Dtor_member()).Dtor_key())) + })) +} +func (_static *CompanionStruct_Default___) CanonPath(table _dafny.Sequence, path _dafny.Sequence) _dafny.Sequence { + var _0_tableName _dafny.Sequence = (m_UTF8.Encode(table)).Dtor_value().(_dafny.Sequence) + _ = _0_tableName + var _1_depth _dafny.Sequence = m_StandardLibrary_UInt.Companion_Default___.UInt64ToSeq(uint64((path).Cardinality())) + _ = _1_depth + var _2_path _dafny.Sequence = Companion_Default___.MakeCanonicalPath(path) + _ = _2_path + return _dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_0_tableName, _1_depth), _2_path) +} +func (_static *CompanionStruct_Default___) TermLocMap_q(attr _dafny.Sequence) m_Wrappers.Result { + var _0_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need(m_StructuredEncryptionUtil.Companion_Default___.ValidString(attr), m_StructuredEncryptionUtil.Companion_Default___.E(_dafny.Companion_Sequence_.Concatenate(_dafny.SeqOfString("invalid string : "), attr))) + _ = _0_valueOrError0 + if (_0_valueOrError0).IsFailure() { + return (_0_valueOrError0).PropagateFailure() + } else { + return m_Wrappers.Companion_Result_.Create_Success_(_dafny.SeqOf(m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Companion_PathSegment_.Create_member_(m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Companion_StructureSegment_.Create_StructureSegment_(attr)))) + } +} +func (_static *CompanionStruct_Default___) TermLocMap(attr _dafny.Sequence) _dafny.Sequence { + return _dafny.SeqOf(m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Companion_PathSegment_.Create_member_(m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Companion_StructureSegment_.Create_StructureSegment_(attr))) +} +func (_static *CompanionStruct_Default___) SimpleCanon(table _dafny.Sequence, attr _dafny.Sequence) _dafny.Sequence { + return Companion_Default___.CanonPath(table, Companion_Default___.TermLocMap(attr)) +} +func (_static *CompanionStruct_Default___) CanonicalPart(s m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.PathSegment) _dafny.Sequence { + return _dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.SeqOf(Companion_Default___.MAP__TAG()), m_StandardLibrary_UInt.Companion_Default___.UInt64ToSeq(uint64((((s).Dtor_member()).Dtor_key()).Cardinality()))), (m_UTF8.Encode(((s).Dtor_member()).Dtor_key())).Dtor_value().(_dafny.Sequence)) +} +func (_static *CompanionStruct_Default___) MakeCanonicalPath(path _dafny.Sequence) _dafny.Sequence { + var _0___accumulator _dafny.Sequence = _dafny.SeqOf() + _ = _0___accumulator + goto TAIL_CALL_START +TAIL_CALL_START: + if (_dafny.IntOfUint32((path).Cardinality())).Sign() == 0 { + return _dafny.Companion_Sequence_.Concatenate(_0___accumulator, _dafny.SeqOf()) + } else { + _0___accumulator = _dafny.Companion_Sequence_.Concatenate(_0___accumulator, Companion_Default___.CanonicalPart((path).Select(0).(m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.PathSegment))) + var _in0 _dafny.Sequence = (path).Drop(1) + _ = _in0 + path = _in0 + goto TAIL_CALL_START + } +} +func (_static *CompanionStruct_Default___) PathToString(path _dafny.Sequence) _dafny.Sequence { + var _0___accumulator _dafny.Sequence = _dafny.SeqOfChars() + _ = _0___accumulator + goto TAIL_CALL_START +TAIL_CALL_START: + if (_dafny.IntOfUint32((path).Cardinality())).Sign() == 0 { + return _dafny.Companion_Sequence_.Concatenate(_0___accumulator, _dafny.SeqOfString("")) + } else if (_dafny.IntOfUint32((path).Cardinality())).Cmp(_dafny.One) == 0 { + return _dafny.Companion_Sequence_.Concatenate(_0___accumulator, (((path).Select(0).(m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.PathSegment)).Dtor_member()).Dtor_key()) + } else { + _0___accumulator = _dafny.Companion_Sequence_.Concatenate(_0___accumulator, _dafny.Companion_Sequence_.Concatenate((((path).Select(0).(m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.PathSegment)).Dtor_member()).Dtor_key(), _dafny.SeqOfString("."))) + var _in0 _dafny.Sequence = (path).Drop(1) + _ = _in0 + path = _in0 + goto TAIL_CALL_START + } +} +func (_static *CompanionStruct_Default___) MAP__TAG() uint8 { + return uint8(_dafny.Char('$')) +} +func (_static *CompanionStruct_Default___) ARRAY__TAG() uint8 { + return uint8(_dafny.Char('#')) +} + +// End of class Default__ + +// Definition of datatype Selector +type Selector struct { + Data_Selector_ +} + +func (_this Selector) Get_() Data_Selector_ { + return _this.Data_Selector_ +} + +type Data_Selector_ interface { + isSelector() +} + +type CompanionStruct_Selector_ struct { +} + +var Companion_Selector_ = CompanionStruct_Selector_{} + +type Selector_List struct { + Pos uint64 +} + +func (Selector_List) isSelector() {} + +func (CompanionStruct_Selector_) Create_List_(Pos uint64) Selector { + return Selector{Selector_List{Pos}} +} + +func (_this Selector) Is_List() bool { + _, ok := _this.Get_().(Selector_List) + return ok +} + +type Selector_Map struct { + Key _dafny.Sequence +} + +func (Selector_Map) isSelector() {} + +func (CompanionStruct_Selector_) Create_Map_(Key _dafny.Sequence) Selector { + return Selector{Selector_Map{Key}} +} + +func (_this Selector) Is_Map() bool { + _, ok := _this.Get_().(Selector_Map) + return ok +} + +func (CompanionStruct_Selector_) Default() Selector { + return Companion_Selector_.Create_List_(uint64(0)) +} + +func (_this Selector) Dtor_pos() uint64 { + return _this.Get_().(Selector_List).Pos +} + +func (_this Selector) Dtor_key() _dafny.Sequence { + return _this.Get_().(Selector_Map).Key +} + +func (_this Selector) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case Selector_List: + { + return "StructuredEncryptionPaths.Selector.List" + "(" + _dafny.String(data.Pos) + ")" + } + case Selector_Map: + { + return "StructuredEncryptionPaths.Selector.Map" + "(" + _dafny.String(data.Key) + ")" + } + default: + { + return "" + } + } +} + +func (_this Selector) Equals(other Selector) bool { + switch data1 := _this.Get_().(type) { + case Selector_List: + { + data2, ok := other.Get_().(Selector_List) + return ok && data1.Pos == data2.Pos + } + case Selector_Map: + { + data2, ok := other.Get_().(Selector_Map) + return ok && data1.Key.Equals(data2.Key) + } + default: + { + return false // unexpected + } + } +} + +func (_this Selector) EqualsGeneric(other interface{}) bool { + typed, ok := other.(Selector) + return ok && _this.Equals(typed) +} + +func Type_Selector_() _dafny.TypeDescriptor { + return type_Selector_{} +} + +type type_Selector_ struct { +} + +func (_this type_Selector_) Default() interface{} { + return Companion_Selector_.Default() +} + +func (_this type_Selector_) String() string { + return "StructuredEncryptionPaths.Selector" +} +func (_this Selector) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = Selector{} + +// End of datatype Selector + +// Definition of class SelectorList +type SelectorList struct { +} + +func New_SelectorList_() *SelectorList { + _this := SelectorList{} + + return &_this +} + +type CompanionStruct_SelectorList_ struct { +} + +var Companion_SelectorList_ = CompanionStruct_SelectorList_{} + +func (*SelectorList) String() string { + return "StructuredEncryptionPaths.SelectorList" +} + +// End of class SelectorList + +func Type_SelectorList_() _dafny.TypeDescriptor { + return type_SelectorList_{} +} + +type type_SelectorList_ struct { +} + +func (_this type_SelectorList_) Default() interface{} { + return _dafny.EmptySeq +} + +func (_this type_SelectorList_) String() string { + return "StructuredEncryptionPaths.SelectorList" +} +func (_this *CompanionStruct_SelectorList_) Is_(__source _dafny.Sequence) bool { + var _0_x _dafny.Sequence = (__source) + _ = _0_x + return (_dafny.IntOfUint32((_0_x).Cardinality())).Cmp(m_StandardLibrary_UInt.Companion_Default___.UINT64__LIMIT()) < 0 +} + +// Definition of class TerminalSelector +type TerminalSelector struct { +} + +func New_TerminalSelector_() *TerminalSelector { + _this := TerminalSelector{} + + return &_this +} + +type CompanionStruct_TerminalSelector_ struct { +} + +var Companion_TerminalSelector_ = CompanionStruct_TerminalSelector_{} + +func (*TerminalSelector) String() string { + return "StructuredEncryptionPaths.TerminalSelector" +} + +// End of class TerminalSelector + +func Type_TerminalSelector_() _dafny.TypeDescriptor { + return type_TerminalSelector_{} +} + +type type_TerminalSelector_ struct { +} + +func (_this type_TerminalSelector_) Default() interface{} { + return _dafny.EmptySeq +} + +func (_this type_TerminalSelector_) String() string { + return "StructuredEncryptionPaths.TerminalSelector" +} +func (_this *CompanionStruct_TerminalSelector_) Is_(__source _dafny.Sequence) bool { + var _1_x _dafny.Sequence = (__source) + _ = _1_x + return Companion_Default___.ValidTerminalSelector(_1_x) +} diff --git a/customer-preview/ddb-esdk/StructuredEncryptionUtil/StructuredEncryptionUtil.go b/customer-preview/ddb-esdk/StructuredEncryptionUtil/StructuredEncryptionUtil.go new file mode 100644 index 000000000..526fb2acb --- /dev/null +++ b/customer-preview/ddb-esdk/StructuredEncryptionUtil/StructuredEncryptionUtil.go @@ -0,0 +1,1057 @@ +// Package StructuredEncryptionUtil +// Dafny module StructuredEncryptionUtil compiled into Go + +package StructuredEncryptionUtil + +import ( + os "os" + + m_ComAmazonawsDynamodbTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/ComAmazonawsDynamodbTypes" + m_Com_Amazonaws_Dynamodb "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/Com_Amazonaws_Dynamodb" + m_ComAmazonawsKmsTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/ComAmazonawsKmsTypes" + m_Com_Amazonaws_Kms "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/Com_Amazonaws_Kms" + m_AlgorithmSuites "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AlgorithmSuites" + m_AwsArnParsing "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsArnParsing" + m_AwsCryptographyKeyStoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreOperations" + m_AwsCryptographyKeyStoreTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreTypes" + m_AwsCryptographyMaterialProvidersOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersOperations" + m_AwsCryptographyMaterialProvidersTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersTypes" + m_AwsKmsDiscoveryKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsDiscoveryKeyring" + m_AwsKmsEcdhKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsEcdhKeyring" + m_AwsKmsHierarchicalKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsHierarchicalKeyring" + m_AwsKmsKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsKeyring" + m_AwsKmsMrkAreUnique "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkAreUnique" + m_AwsKmsMrkDiscoveryKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkDiscoveryKeyring" + m_AwsKmsMrkKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkKeyring" + m_AwsKmsMrkMatchForDecrypt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkMatchForDecrypt" + m_AwsKmsRsaKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsRsaKeyring" + m_AwsKmsUtils "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsUtils" + m_CMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CMM" + m_CacheConstants "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CacheConstants" + m_CanonicalEncryptionContext "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CanonicalEncryptionContext" + m_Commitment "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Commitment" + m_Constants "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Constants" + m_CreateKeyStoreTable "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeyStoreTable" + m_CreateKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeys" + m_DDBKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DDBKeystoreOperations" + m_DefaultCMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DefaultCMM" + m_DefaultClientSupplier "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DefaultClientSupplier" + m_Defaults "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Defaults" + m_DiscoveryMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DiscoveryMultiKeyring" + m_EcdhEdkWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/EcdhEdkWrapping" + m_EdkWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/EdkWrapping" + m_ErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/ErrorMessages" + m_GetKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/GetKeys" + m_IntermediateKeyWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/IntermediateKeyWrapping" + m_KMSKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KMSKeystoreOperations" + m_KeyStore "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStore" + m_KeyStoreErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStoreErrorMessages" + m_Keyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Keyring" + m_KmsArn "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KmsArn" + m_LocalCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/LocalCMC" + m_MaterialProviders "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MaterialProviders" + m_MaterialWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MaterialWrapping" + m_Materials "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Materials" + m_MrkAwareDiscoveryMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MrkAwareDiscoveryMultiKeyring" + m_MrkAwareStrictMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MrkAwareStrictMultiKeyring" + m_MultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MultiKeyring" + m_RawAESKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawAESKeyring" + m_RawECDHKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawECDHKeyring" + m_RawRSAKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawRSAKeyring" + m_RequiredEncryptionContextCMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RequiredEncryptionContextCMM" + m_StormTracker "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StormTracker" + m_StormTrackingCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StormTrackingCMC" + m_StrictMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StrictMultiKeyring" + m_Structure "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Structure" + m_SynchronizedLocalCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/SynchronizedLocalCMC" + m_Utils "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Utils" + m_AtomicPrimitives "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AtomicPrimitives" + m_AwsCryptographyPrimitivesOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesOperations" + m_AwsCryptographyPrimitivesTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesTypes" + m_Digest "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Digest" + m_HKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/HKDF" + m_KdfCtr "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/KdfCtr" + m_Random "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Random" + m_WrappedHKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHKDF" + m_WrappedHMAC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHMAC" + m_Actions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Actions" + m_Base64 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64" + m_Base64Lemmas "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64Lemmas" + m_BoundedInts "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/BoundedInts" + m_DivInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternals" + m_DivInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternalsNonlinear" + m_DivMod "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivMod" + m_FileIO "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FileIO" + m_FloatCompare "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FloatCompare" + m_Functions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Functions" + m_GeneralInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GeneralInternals" + m_GetOpt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GetOpt" + m_HexStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/HexStrings" + m_Logarithm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Logarithm" + m__Math "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Math_" + m_ModInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternals" + m_ModInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternalsNonlinear" + m_Mul "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Mul" + m_MulInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternals" + m_MulInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternalsNonlinear" + m_Power "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Power" + m_Relations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Relations" + m_Seq "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq" + m_Seq_MergeSort "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq_MergeSort" + m_SortedSets "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/SortedSets" + m_Sorting "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Sorting" + m_StandardLibrary "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary" + m_StandardLibraryInterop "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibraryInterop" + m_StandardLibrary_Sequence "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_Sequence" + m_StandardLibrary_String "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_String" + m_StandardLibrary_UInt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_UInt" + m_Streams "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Streams" + m_UTF8 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UTF8" + m_UnicodeStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UnicodeStrings" + m__Unicode "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Unicode_" + m_Utf16EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf16EncodingForm" + m_Utf8EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf8EncodingForm" + m_Wrappers "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers" + m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes" + m__System "github.com/dafny-lang/DafnyRuntimeGo/v4/System_" + _dafny "github.com/dafny-lang/DafnyRuntimeGo/v4/dafny" +) + +var _ = os.Args +var _ _dafny.Dummy__ +var _ m__System.Dummy__ +var _ m_Wrappers.Dummy__ +var _ m_BoundedInts.Dummy__ +var _ m_StandardLibrary_UInt.Dummy__ +var _ m_StandardLibrary_Sequence.Dummy__ +var _ m_StandardLibrary_String.Dummy__ +var _ m_StandardLibrary.Dummy__ +var _ m_AwsCryptographyPrimitivesTypes.Dummy__ +var _ m_Random.Dummy__ +var _ m_Digest.Dummy__ +var _ m_WrappedHMAC.Dummy__ +var _ m_HKDF.Dummy__ +var _ m_WrappedHKDF.Dummy__ +var _ m_KdfCtr.Dummy__ +var _ m_AwsCryptographyPrimitivesOperations.Dummy__ +var _ m_AtomicPrimitives.Dummy__ +var _ m_ComAmazonawsDynamodbTypes.Dummy__ +var _ m_ComAmazonawsKmsTypes.Dummy__ +var _ m_AwsCryptographyKeyStoreTypes.Dummy__ +var _ m_AwsCryptographyMaterialProvidersTypes.Dummy__ +var _ m_Base64.Dummy__ +var _ m_AlgorithmSuites.Dummy__ +var _ m_Materials.Dummy__ +var _ m_Keyring.Dummy__ +var _ m_Relations.Dummy__ +var _ m_Seq_MergeSort.Dummy__ +var _ m__Math.Dummy__ +var _ m_Seq.Dummy__ +var _ m_MultiKeyring.Dummy__ +var _ m_AwsArnParsing.Dummy__ +var _ m_AwsKmsMrkAreUnique.Dummy__ +var _ m_Actions.Dummy__ +var _ m_AwsKmsMrkMatchForDecrypt.Dummy__ +var _ m_AwsKmsUtils.Dummy__ +var _ m_Constants.Dummy__ +var _ m_MaterialWrapping.Dummy__ +var _ m_CanonicalEncryptionContext.Dummy__ +var _ m_IntermediateKeyWrapping.Dummy__ +var _ m_EdkWrapping.Dummy__ +var _ m_ErrorMessages.Dummy__ +var _ m_AwsKmsKeyring.Dummy__ +var _ m_StrictMultiKeyring.Dummy__ +var _ m_AwsKmsDiscoveryKeyring.Dummy__ +var _ m_Com_Amazonaws_Kms.Dummy__ +var _ m_Com_Amazonaws_Dynamodb.Dummy__ +var _ m_DiscoveryMultiKeyring.Dummy__ +var _ m_AwsKmsMrkDiscoveryKeyring.Dummy__ +var _ m_MrkAwareDiscoveryMultiKeyring.Dummy__ +var _ m_AwsKmsMrkKeyring.Dummy__ +var _ m_MrkAwareStrictMultiKeyring.Dummy__ +var _ m_LocalCMC.Dummy__ +var _ m_SynchronizedLocalCMC.Dummy__ +var _ m_StormTracker.Dummy__ +var _ m_StormTrackingCMC.Dummy__ +var _ m_CacheConstants.Dummy__ +var _ m_AwsKmsHierarchicalKeyring.Dummy__ +var _ m_AwsKmsRsaKeyring.Dummy__ +var _ m_EcdhEdkWrapping.Dummy__ +var _ m_RawECDHKeyring.Dummy__ +var _ m_AwsKmsEcdhKeyring.Dummy__ +var _ m_RawAESKeyring.Dummy__ +var _ m_RawRSAKeyring.Dummy__ +var _ m_CMM.Dummy__ +var _ m_Defaults.Dummy__ +var _ m_Commitment.Dummy__ +var _ m_DefaultCMM.Dummy__ +var _ m_DefaultClientSupplier.Dummy__ +var _ m_Utils.Dummy__ +var _ m_RequiredEncryptionContextCMM.Dummy__ +var _ m_AwsCryptographyMaterialProvidersOperations.Dummy__ +var _ m_MaterialProviders.Dummy__ +var _ m_KeyStoreErrorMessages.Dummy__ +var _ m_KmsArn.Dummy__ +var _ m_Structure.Dummy__ +var _ m_KMSKeystoreOperations.Dummy__ +var _ m_DDBKeystoreOperations.Dummy__ +var _ m_CreateKeys.Dummy__ +var _ m_CreateKeyStoreTable.Dummy__ +var _ m_GetKeys.Dummy__ +var _ m_AwsCryptographyKeyStoreOperations.Dummy__ +var _ m_KeyStore.Dummy__ +var _ m__Unicode.Dummy__ +var _ m_Functions.Dummy__ +var _ m_Utf8EncodingForm.Dummy__ +var _ m_Utf16EncodingForm.Dummy__ +var _ m_UnicodeStrings.Dummy__ +var _ m_FileIO.Dummy__ +var _ m_GeneralInternals.Dummy__ +var _ m_MulInternalsNonlinear.Dummy__ +var _ m_MulInternals.Dummy__ +var _ m_Mul.Dummy__ +var _ m_ModInternalsNonlinear.Dummy__ +var _ m_DivInternalsNonlinear.Dummy__ +var _ m_ModInternals.Dummy__ +var _ m_DivInternals.Dummy__ +var _ m_DivMod.Dummy__ +var _ m_Power.Dummy__ +var _ m_Logarithm.Dummy__ +var _ m_StandardLibraryInterop.Dummy__ +var _ m_Streams.Dummy__ +var _ m_Sorting.Dummy__ +var _ m_HexStrings.Dummy__ +var _ m_GetOpt.Dummy__ +var _ m_FloatCompare.Dummy__ +var _ m_Base64Lemmas.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Dummy__ + +type Dummy__ struct{} + +// Definition of class Default__ +type Default__ struct { + dummy byte +} + +func New_Default___() *Default__ { + _this := Default__{} + + return &_this +} + +type CompanionStruct_Default___ struct { +} + +var Companion_Default___ = CompanionStruct_Default___{} + +func (_this *Default__) Equals(other *Default__) bool { + return _this == other +} + +func (_this *Default__) EqualsGeneric(x interface{}) bool { + other, ok := x.(*Default__) + return ok && _this.Equals(other) +} + +func (*Default__) String() string { + return "StructuredEncryptionUtil.Default__" +} +func (_this *Default__) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = &Default__{} + +func (_static *CompanionStruct_Default___) CryptoListToSet(xs _dafny.Sequence) _dafny.Set { + return func() _dafny.Set { + var _coll0 = _dafny.NewBuilder() + _ = _coll0 + for _iter0 := _dafny.Iterate((xs).Elements()); ; { + _compr_0, _ok0 := _iter0() + if !_ok0 { + break + } + var _0_k m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.CryptoItem + _0_k = interface{}(_compr_0).(m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.CryptoItem) + if _dafny.Companion_Sequence_.Contains(xs, _0_k) { + _coll0.Add((_0_k).Dtor_key()) + } + } + return _coll0.ToSet() + }() +} +func (_static *CompanionStruct_Default___) CanonCryptoListToSet(xs _dafny.Sequence) _dafny.Set { + return func() _dafny.Set { + var _coll0 = _dafny.NewBuilder() + _ = _coll0 + for _iter1 := _dafny.Iterate((xs).Elements()); ; { + _compr_0, _ok1 := _iter1() + if !_ok1 { + break + } + var _0_k CanonCryptoItem + _0_k = interface{}(_compr_0).(CanonCryptoItem) + if _dafny.Companion_Sequence_.Contains(xs, _0_k) { + _coll0.Add((_0_k).Dtor_origKey()) + } + } + return _coll0.ToSet() + }() +} +func (_static *CompanionStruct_Default___) AuthListToSet(xs _dafny.Sequence) _dafny.Set { + return func() _dafny.Set { + var _coll0 = _dafny.NewBuilder() + _ = _coll0 + for _iter2 := _dafny.Iterate((xs).Elements()); ; { + _compr_0, _ok2 := _iter2() + if !_ok2 { + break + } + var _0_k m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.AuthItem + _0_k = interface{}(_compr_0).(m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.AuthItem) + if _dafny.Companion_Sequence_.Contains(xs, _0_k) { + _coll0.Add((_0_k).Dtor_key()) + } + } + return _coll0.ToSet() + }() +} +func (_static *CompanionStruct_Default___) CryptoListHasNoDuplicatesFromSet(xs _dafny.Sequence) bool { + return ((Companion_Default___.CryptoListToSet(xs)).Cardinality()).Cmp(_dafny.IntOfUint32((xs).Cardinality())) == 0 +} +func (_static *CompanionStruct_Default___) AuthListHasNoDuplicatesFromSet(xs _dafny.Sequence) bool { + return ((Companion_Default___.AuthListToSet(xs)).Cardinality()).Cmp(_dafny.IntOfUint32((xs).Cardinality())) == 0 +} +func (_static *CompanionStruct_Default___) ValidString(x _dafny.Sequence) bool { + return ((_dafny.IntOfUint32((x).Cardinality())).Cmp(m_StandardLibrary_UInt.Companion_Default___.UINT64__LIMIT()) < 0) && ((m_UTF8.Encode(x)).Is_Success()) +} +func (_static *CompanionStruct_Default___) ValidSuite(alg m_AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo) bool { + return (((alg).Dtor_id()).Is_DBE()) && (m_AlgorithmSuites.Companion_Default___.DBEAlgorithmSuite_q(alg)) +} +func (_static *CompanionStruct_Default___) E(s _dafny.Sequence) m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Error { + return m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Companion_Error_.Create_StructuredEncryptionException_(s) +} +func (_static *CompanionStruct_Default___) ConstantTimeCompare(a _dafny.Sequence, b _dafny.Sequence, acc uint8) uint8 { + goto TAIL_CALL_START +TAIL_CALL_START: + if (_dafny.IntOfUint32((a).Cardinality())).Sign() == 0 { + return acc + } else { + var _0_x uint8 = (uint8((a).Select(0).(uint8))) ^ (uint8((b).Select(0).(uint8))) + _ = _0_x + var _in0 _dafny.Sequence = (a).Drop(1) + _ = _in0 + var _in1 _dafny.Sequence = (b).Drop(1) + _ = _in1 + var _in2 uint8 = (_0_x) | (acc) + _ = _in2 + a = _in0 + b = _in1 + acc = _in2 + goto TAIL_CALL_START + } +} +func (_static *CompanionStruct_Default___) ConstantTimeEquals(a _dafny.Sequence, b _dafny.Sequence) bool { + return (Companion_Default___.ConstantTimeCompare(a, b, uint8(0))) == (uint8(0)) +} +func (_static *CompanionStruct_Default___) IsAuthAttr(x m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.CryptoAction) bool { + return (((x).Is_ENCRYPT__AND__SIGN()) || ((x).Is_SIGN__AND__INCLUDE__IN__ENCRYPTION__CONTEXT())) || ((x).Is_SIGN__ONLY()) +} +func (_static *CompanionStruct_Default___) ValueToData(value _dafny.Sequence, typeId _dafny.Sequence) m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.StructuredDataTerminal { + return m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Companion_StructuredDataTerminal_.Create_StructuredDataTerminal_(value, typeId) +} +func (_static *CompanionStruct_Default___) GetValue(data m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.StructuredDataTerminal) _dafny.Sequence { + return (data).Dtor_value() +} +func (_static *CompanionStruct_Default___) ByteLess(x uint8, y uint8) bool { + return (x) < (y) +} +func (_static *CompanionStruct_Default___) CharLess(x _dafny.Char, y _dafny.Char) bool { + return (x) < (y) +} +func (_static *CompanionStruct_Default___) EcAsString(ec _dafny.Map) _dafny.Map { + var output _dafny.Map = _dafny.EmptyMap + _ = output + var _0_keys _dafny.Sequence + _ = _0_keys + _0_keys = m_SortedSets.SetToOrderedSequence2((ec).Keys(), func(coer0 func(uint8, uint8) bool) func(interface{}, interface{}) bool { + return func(arg0 interface{}, arg1 interface{}) bool { + return coer0(arg0.(uint8), arg1.(uint8)) + } + }(Companion_Default___.ByteLess)) + var _1_ret _dafny.Map + _ = _1_ret + _1_ret = _dafny.NewMapBuilder().ToMap() + var _hi0 _dafny.Int = _dafny.IntOfUint32((_0_keys).Cardinality()) + _ = _hi0 + for _2_i := _dafny.Zero; _2_i.Cmp(_hi0) < 0; _2_i = _2_i.Plus(_dafny.One) { + var _3_valueOrError0 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq.SetString()) + _ = _3_valueOrError0 + _3_valueOrError0 = m_UTF8.Decode((_0_keys).Select((_2_i).Uint32()).(_dafny.Sequence)) + if !(!((_3_valueOrError0).IsFailure())) { + panic("dafny/StructuredEncryption/src/Util.dfy(265,17): " + (_3_valueOrError0).String()) + } + var _4_key _dafny.Sequence + _ = _4_key + _4_key = (_3_valueOrError0).Extract().(_dafny.Sequence) + var _5_valueOrError1 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq.SetString()) + _ = _5_valueOrError1 + _5_valueOrError1 = m_UTF8.Decode((ec).Get((_0_keys).Select((_2_i).Uint32()).(_dafny.Sequence)).(_dafny.Sequence)) + if !(!((_5_valueOrError1).IsFailure())) { + panic("dafny/StructuredEncryption/src/Util.dfy(266,19): " + (_5_valueOrError1).String()) + } + var _6_value _dafny.Sequence + _ = _6_value + _6_value = (_5_valueOrError1).Extract().(_dafny.Sequence) + _1_ret = (_1_ret).Update(_4_key, _6_value) + } + output = _1_ret + return output + return output +} +func (_static *CompanionStruct_Default___) PrintEncryptionContext(ec _dafny.Map, name _dafny.Sequence) { + var _0_keys _dafny.Sequence + _ = _0_keys + _0_keys = m_SortedSets.SetToOrderedSequence2((ec).Keys(), func(coer1 func(uint8, uint8) bool) func(interface{}, interface{}) bool { + return func(arg2 interface{}, arg3 interface{}) bool { + return coer1(arg2.(uint8), arg3.(uint8)) + } + }(Companion_Default___.ByteLess)) + _dafny.Print((name).SetString()) + _dafny.Print((_dafny.SeqOfString(" := {\n")).SetString()) + var _hi0 _dafny.Int = _dafny.IntOfUint32((_0_keys).Cardinality()) + _ = _hi0 + for _1_i := _dafny.Zero; _1_i.Cmp(_hi0) < 0; _1_i = _1_i.Plus(_dafny.One) { + var _2_valueOrError0 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq.SetString()) + _ = _2_valueOrError0 + _2_valueOrError0 = m_UTF8.Decode((_0_keys).Select((_1_i).Uint32()).(_dafny.Sequence)) + if !(!((_2_valueOrError0).IsFailure())) { + panic("dafny/StructuredEncryption/src/Util.dfy(277,17): " + (_2_valueOrError0).String()) + } + var _3_key _dafny.Sequence + _ = _3_key + _3_key = (_2_valueOrError0).Extract().(_dafny.Sequence) + var _4_valueOrError1 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq.SetString()) + _ = _4_valueOrError1 + _4_valueOrError1 = m_UTF8.Decode((ec).Get((_0_keys).Select((_1_i).Uint32()).(_dafny.Sequence)).(_dafny.Sequence)) + if !(!((_4_valueOrError1).IsFailure())) { + panic("dafny/StructuredEncryption/src/Util.dfy(278,19): " + (_4_valueOrError1).String()) + } + var _5_value _dafny.Sequence + _ = _5_value + _5_value = (_4_valueOrError1).Extract().(_dafny.Sequence) + _dafny.Print((_dafny.SeqOfString(" ")).SetString()) + _dafny.Print((_3_key).SetString()) + _dafny.Print((_dafny.SeqOfString(" := ")).SetString()) + _dafny.Print((_5_value).SetString()) + _dafny.Print((_dafny.SeqOfString("\n")).SetString()) + } + _dafny.Print((_dafny.SeqOfString("}\n")).SetString()) +} +func (_static *CompanionStruct_Default___) EncodeTerminal(t m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.StructuredDataTerminal) _dafny.Sequence { + return m_UTF8.Companion_Default___.EncodeAscii(m_Base64.Companion_Default___.Encode(_dafny.Companion_Sequence_.Concatenate((t).Dtor_typeId(), (t).Dtor_value()))) +} +func (_static *CompanionStruct_Default___) DecodeTerminal(t _dafny.Sequence) m_Wrappers.Result { + var _0_valueOrError0 m_Wrappers.Result = m_UTF8.Decode(t) + _ = _0_valueOrError0 + if (_0_valueOrError0).IsFailure() { + return (_0_valueOrError0).PropagateFailure() + } else { + var _1_utf8DecodedVal _dafny.Sequence = (_0_valueOrError0).Extract().(_dafny.Sequence) + _ = _1_utf8DecodedVal + var _2_valueOrError1 m_Wrappers.Result = m_Base64.Companion_Default___.Decode(_1_utf8DecodedVal) + _ = _2_valueOrError1 + if (_2_valueOrError1).IsFailure() { + return (_2_valueOrError1).PropagateFailure() + } else { + var _3_base64DecodedVal _dafny.Sequence = (_2_valueOrError1).Extract().(_dafny.Sequence) + _ = _3_base64DecodedVal + var _4_valueOrError2 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need((_dafny.IntOfUint32((_3_base64DecodedVal).Cardinality())).Cmp(_dafny.IntOfInt64(2)) >= 0, _dafny.SeqOfString("Invalid serialization of DDB Attribute in encryption context.")) + _ = _4_valueOrError2 + if (_4_valueOrError2).IsFailure() { + return (_4_valueOrError2).PropagateFailure() + } else { + var _5_typeId _dafny.Sequence = (_3_base64DecodedVal).Take(2) + _ = _5_typeId + var _6_serializedValue _dafny.Sequence = (_3_base64DecodedVal).Drop(2) + _ = _6_serializedValue + return m_Wrappers.Companion_Result_.Create_Success_(m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Companion_StructuredDataTerminal_.Create_StructuredDataTerminal_(_6_serializedValue, _5_typeId)) + } + } + } +} +func (_static *CompanionStruct_Default___) ReservedPrefix() _dafny.Sequence { + return _dafny.SeqOfString("aws_dbe_") +} +func (_static *CompanionStruct_Default___) HeaderField() _dafny.Sequence { + return _dafny.Companion_Sequence_.Concatenate(Companion_Default___.ReservedPrefix(), _dafny.SeqOfString("head")) +} +func (_static *CompanionStruct_Default___) FooterField() _dafny.Sequence { + return _dafny.Companion_Sequence_.Concatenate(Companion_Default___.ReservedPrefix(), _dafny.SeqOfString("foot")) +} +func (_static *CompanionStruct_Default___) HeaderPath() _dafny.Sequence { + return _dafny.SeqOf(m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Companion_PathSegment_.Create_member_(m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Companion_StructureSegment_.Create_StructureSegment_(Companion_Default___.HeaderField()))) +} +func (_static *CompanionStruct_Default___) FooterPath() _dafny.Sequence { + return _dafny.SeqOf(m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Companion_PathSegment_.Create_member_(m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Companion_StructureSegment_.Create_StructureSegment_(Companion_Default___.FooterField()))) +} +func (_static *CompanionStruct_Default___) HeaderPaths() _dafny.Sequence { + return _dafny.SeqOf(Companion_Default___.HeaderPath(), Companion_Default___.FooterPath()) +} +func (_static *CompanionStruct_Default___) ReservedCryptoContextPrefixString() _dafny.Sequence { + return _dafny.SeqOfString("aws-crypto-") +} +func (_static *CompanionStruct_Default___) ReservedCryptoContextPrefixUTF8() _dafny.Sequence { + return m_UTF8.Companion_Default___.EncodeAscii(Companion_Default___.ReservedCryptoContextPrefixString()) +} +func (_static *CompanionStruct_Default___) ATTR__PREFIX() _dafny.Sequence { + return _dafny.Companion_Sequence_.Concatenate(Companion_Default___.ReservedCryptoContextPrefixString(), _dafny.SeqOfString("attr.")) +} +func (_static *CompanionStruct_Default___) EC__ATTR__PREFIX() _dafny.Sequence { + return m_UTF8.Companion_Default___.EncodeAscii(Companion_Default___.ATTR__PREFIX()) +} +func (_static *CompanionStruct_Default___) LEGEND() _dafny.Sequence { + return _dafny.Companion_Sequence_.Concatenate(Companion_Default___.ReservedCryptoContextPrefixString(), _dafny.SeqOfString("legend")) +} +func (_static *CompanionStruct_Default___) LEGEND__UTF8() _dafny.Sequence { + return m_UTF8.Companion_Default___.EncodeAscii(Companion_Default___.LEGEND()) +} +func (_static *CompanionStruct_Default___) NULL__STR() _dafny.Sequence { + return _dafny.SeqOfString("null") +} +func (_static *CompanionStruct_Default___) NULL__UTF8() _dafny.Sequence { + return m_UTF8.Companion_Default___.EncodeAscii(Companion_Default___.NULL__STR()) +} +func (_static *CompanionStruct_Default___) TRUE__STR() _dafny.Sequence { + return _dafny.SeqOfString("true") +} +func (_static *CompanionStruct_Default___) TRUE__UTF8() _dafny.Sequence { + return m_UTF8.Companion_Default___.EncodeAscii(Companion_Default___.TRUE__STR()) +} +func (_static *CompanionStruct_Default___) FALSE__STR() _dafny.Sequence { + return _dafny.SeqOfString("false") +} +func (_static *CompanionStruct_Default___) FALSE__UTF8() _dafny.Sequence { + return m_UTF8.Companion_Default___.EncodeAscii(Companion_Default___.FALSE__STR()) +} +func (_static *CompanionStruct_Default___) BYTES__TYPE__ID() _dafny.Sequence { + return _dafny.SeqOf(uint8(255), uint8(255)) +} +func (_static *CompanionStruct_Default___) TYPEID__LEN() _dafny.Int { + return _dafny.IntOfInt64(2) +} +func (_static *CompanionStruct_Default___) KeySize() _dafny.Int { + return _dafny.IntOfInt64(32) +} +func (_static *CompanionStruct_Default___) AuthTagSize() _dafny.Int { + return _dafny.IntOfInt64(16) +} +func (_static *CompanionStruct_Default___) NonceSize() _dafny.Int { + return _dafny.IntOfInt64(12) +} +func (_static *CompanionStruct_Default___) TERM__T() uint8 { + return uint8(0) +} +func (_static *CompanionStruct_Default___) NULL__T() uint8 { + return uint8(0) +} +func (_static *CompanionStruct_Default___) NULL() _dafny.Sequence { + return _dafny.SeqOf(Companion_Default___.TERM__T(), Companion_Default___.NULL__T()) +} +func (_static *CompanionStruct_Default___) STRING__T() uint8 { + return uint8(1) +} +func (_static *CompanionStruct_Default___) STRING() _dafny.Sequence { + return _dafny.SeqOf(Companion_Default___.TERM__T(), Companion_Default___.STRING__T()) +} +func (_static *CompanionStruct_Default___) NUMBER__T() uint8 { + return uint8(2) +} +func (_static *CompanionStruct_Default___) NUMBER() _dafny.Sequence { + return _dafny.SeqOf(Companion_Default___.TERM__T(), Companion_Default___.NUMBER__T()) +} +func (_static *CompanionStruct_Default___) BOOLEAN__T() uint8 { + return uint8(4) +} +func (_static *CompanionStruct_Default___) BOOLEAN() _dafny.Sequence { + return _dafny.SeqOf(Companion_Default___.TERM__T(), Companion_Default___.BOOLEAN__T()) +} +func (_static *CompanionStruct_Default___) SET__T() uint8 { + return uint8(1) +} +func (_static *CompanionStruct_Default___) STRING__SET() _dafny.Sequence { + return _dafny.SeqOf(Companion_Default___.SET__T(), Companion_Default___.STRING__T()) +} +func (_static *CompanionStruct_Default___) NUMBER__SET() _dafny.Sequence { + return _dafny.SeqOf(Companion_Default___.SET__T(), Companion_Default___.NUMBER__T()) +} +func (_static *CompanionStruct_Default___) BINARY__T() uint8 { + return uint8(255) +} +func (_static *CompanionStruct_Default___) BINARY__SET() _dafny.Sequence { + return _dafny.SeqOf(Companion_Default___.SET__T(), Companion_Default___.BINARY__T()) +} +func (_static *CompanionStruct_Default___) MAP__T() uint8 { + return uint8(2) +} +func (_static *CompanionStruct_Default___) MAP() _dafny.Sequence { + return _dafny.SeqOf(Companion_Default___.MAP__T(), Companion_Default___.NULL__T()) +} +func (_static *CompanionStruct_Default___) LIST__T() uint8 { + return uint8(3) +} +func (_static *CompanionStruct_Default___) LIST() _dafny.Sequence { + return _dafny.SeqOf(Companion_Default___.LIST__T(), Companion_Default___.NULL__T()) +} +func (_static *CompanionStruct_Default___) MSGID__LEN() _dafny.Int { + return _dafny.IntOfInt64(32) +} +func (_static *CompanionStruct_Default___) LEGEND__STRING() _dafny.Char { + return _dafny.Char('S') +} +func (_static *CompanionStruct_Default___) LEGEND__NUMBER() _dafny.Char { + return _dafny.Char('N') +} +func (_static *CompanionStruct_Default___) LEGEND__LITERAL() _dafny.Char { + return _dafny.Char('L') +} +func (_static *CompanionStruct_Default___) LEGEND__BINARY() _dafny.Char { + return _dafny.Char('B') +} +func (_static *CompanionStruct_Default___) DbeAlgorithmFamily() uint8 { + return uint8(103) +} +func (_static *CompanionStruct_Default___) BINARY() _dafny.Sequence { + return _dafny.SeqOf(uint8(255), uint8(255)) +} + +// End of class Default__ + +// Definition of datatype CanonCryptoItem +type CanonCryptoItem struct { + Data_CanonCryptoItem_ +} + +func (_this CanonCryptoItem) Get_() Data_CanonCryptoItem_ { + return _this.Data_CanonCryptoItem_ +} + +type Data_CanonCryptoItem_ interface { + isCanonCryptoItem() +} + +type CompanionStruct_CanonCryptoItem_ struct { +} + +var Companion_CanonCryptoItem_ = CompanionStruct_CanonCryptoItem_{} + +type CanonCryptoItem_CanonCryptoItem struct { + Key _dafny.Sequence + OrigKey _dafny.Sequence + Data m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.StructuredDataTerminal + Action m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.CryptoAction +} + +func (CanonCryptoItem_CanonCryptoItem) isCanonCryptoItem() {} + +func (CompanionStruct_CanonCryptoItem_) Create_CanonCryptoItem_(Key _dafny.Sequence, OrigKey _dafny.Sequence, Data m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.StructuredDataTerminal, Action m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.CryptoAction) CanonCryptoItem { + return CanonCryptoItem{CanonCryptoItem_CanonCryptoItem{Key, OrigKey, Data, Action}} +} + +func (_this CanonCryptoItem) Is_CanonCryptoItem() bool { + _, ok := _this.Get_().(CanonCryptoItem_CanonCryptoItem) + return ok +} + +func (CompanionStruct_CanonCryptoItem_) Default() CanonCryptoItem { + return Companion_CanonCryptoItem_.Create_CanonCryptoItem_(_dafny.EmptySeq, _dafny.EmptySeq, m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Companion_StructuredDataTerminal_.Default(), m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Companion_CryptoAction_.Default()) +} + +func (_this CanonCryptoItem) Dtor_key() _dafny.Sequence { + return _this.Get_().(CanonCryptoItem_CanonCryptoItem).Key +} + +func (_this CanonCryptoItem) Dtor_origKey() _dafny.Sequence { + return _this.Get_().(CanonCryptoItem_CanonCryptoItem).OrigKey +} + +func (_this CanonCryptoItem) Dtor_data() m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.StructuredDataTerminal { + return _this.Get_().(CanonCryptoItem_CanonCryptoItem).Data +} + +func (_this CanonCryptoItem) Dtor_action() m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.CryptoAction { + return _this.Get_().(CanonCryptoItem_CanonCryptoItem).Action +} + +func (_this CanonCryptoItem) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case CanonCryptoItem_CanonCryptoItem: + { + return "StructuredEncryptionUtil.CanonCryptoItem.CanonCryptoItem" + "(" + _dafny.String(data.Key) + ", " + _dafny.String(data.OrigKey) + ", " + _dafny.String(data.Data) + ", " + _dafny.String(data.Action) + ")" + } + default: + { + return "" + } + } +} + +func (_this CanonCryptoItem) Equals(other CanonCryptoItem) bool { + switch data1 := _this.Get_().(type) { + case CanonCryptoItem_CanonCryptoItem: + { + data2, ok := other.Get_().(CanonCryptoItem_CanonCryptoItem) + return ok && data1.Key.Equals(data2.Key) && data1.OrigKey.Equals(data2.OrigKey) && data1.Data.Equals(data2.Data) && data1.Action.Equals(data2.Action) + } + default: + { + return false // unexpected + } + } +} + +func (_this CanonCryptoItem) EqualsGeneric(other interface{}) bool { + typed, ok := other.(CanonCryptoItem) + return ok && _this.Equals(typed) +} + +func Type_CanonCryptoItem_() _dafny.TypeDescriptor { + return type_CanonCryptoItem_{} +} + +type type_CanonCryptoItem_ struct { +} + +func (_this type_CanonCryptoItem_) Default() interface{} { + return Companion_CanonCryptoItem_.Default() +} + +func (_this type_CanonCryptoItem_) String() string { + return "StructuredEncryptionUtil.CanonCryptoItem" +} +func (_this CanonCryptoItem) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = CanonCryptoItem{} + +// End of datatype CanonCryptoItem + +// Definition of datatype CanonAuthItem +type CanonAuthItem struct { + Data_CanonAuthItem_ +} + +func (_this CanonAuthItem) Get_() Data_CanonAuthItem_ { + return _this.Data_CanonAuthItem_ +} + +type Data_CanonAuthItem_ interface { + isCanonAuthItem() +} + +type CompanionStruct_CanonAuthItem_ struct { +} + +var Companion_CanonAuthItem_ = CompanionStruct_CanonAuthItem_{} + +type CanonAuthItem_CanonAuthItem struct { + Key _dafny.Sequence + OrigKey _dafny.Sequence + Data m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.StructuredDataTerminal + Action m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.AuthenticateAction +} + +func (CanonAuthItem_CanonAuthItem) isCanonAuthItem() {} + +func (CompanionStruct_CanonAuthItem_) Create_CanonAuthItem_(Key _dafny.Sequence, OrigKey _dafny.Sequence, Data m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.StructuredDataTerminal, Action m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.AuthenticateAction) CanonAuthItem { + return CanonAuthItem{CanonAuthItem_CanonAuthItem{Key, OrigKey, Data, Action}} +} + +func (_this CanonAuthItem) Is_CanonAuthItem() bool { + _, ok := _this.Get_().(CanonAuthItem_CanonAuthItem) + return ok +} + +func (CompanionStruct_CanonAuthItem_) Default() CanonAuthItem { + return Companion_CanonAuthItem_.Create_CanonAuthItem_(_dafny.EmptySeq, _dafny.EmptySeq, m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Companion_StructuredDataTerminal_.Default(), m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Companion_AuthenticateAction_.Default()) +} + +func (_this CanonAuthItem) Dtor_key() _dafny.Sequence { + return _this.Get_().(CanonAuthItem_CanonAuthItem).Key +} + +func (_this CanonAuthItem) Dtor_origKey() _dafny.Sequence { + return _this.Get_().(CanonAuthItem_CanonAuthItem).OrigKey +} + +func (_this CanonAuthItem) Dtor_data() m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.StructuredDataTerminal { + return _this.Get_().(CanonAuthItem_CanonAuthItem).Data +} + +func (_this CanonAuthItem) Dtor_action() m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.AuthenticateAction { + return _this.Get_().(CanonAuthItem_CanonAuthItem).Action +} + +func (_this CanonAuthItem) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case CanonAuthItem_CanonAuthItem: + { + return "StructuredEncryptionUtil.CanonAuthItem.CanonAuthItem" + "(" + _dafny.String(data.Key) + ", " + _dafny.String(data.OrigKey) + ", " + _dafny.String(data.Data) + ", " + _dafny.String(data.Action) + ")" + } + default: + { + return "" + } + } +} + +func (_this CanonAuthItem) Equals(other CanonAuthItem) bool { + switch data1 := _this.Get_().(type) { + case CanonAuthItem_CanonAuthItem: + { + data2, ok := other.Get_().(CanonAuthItem_CanonAuthItem) + return ok && data1.Key.Equals(data2.Key) && data1.OrigKey.Equals(data2.OrigKey) && data1.Data.Equals(data2.Data) && data1.Action.Equals(data2.Action) + } + default: + { + return false // unexpected + } + } +} + +func (_this CanonAuthItem) EqualsGeneric(other interface{}) bool { + typed, ok := other.(CanonAuthItem) + return ok && _this.Equals(typed) +} + +func Type_CanonAuthItem_() _dafny.TypeDescriptor { + return type_CanonAuthItem_{} +} + +type type_CanonAuthItem_ struct { +} + +func (_this type_CanonAuthItem_) Default() interface{} { + return Companion_CanonAuthItem_.Default() +} + +func (_this type_CanonAuthItem_) String() string { + return "StructuredEncryptionUtil.CanonAuthItem" +} +func (_this CanonAuthItem) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = CanonAuthItem{} + +// End of datatype CanonAuthItem + +// Definition of class Key +type Key struct { +} + +func New_Key_() *Key { + _this := Key{} + + return &_this +} + +type CompanionStruct_Key_ struct { +} + +var Companion_Key_ = CompanionStruct_Key_{} + +func (*Key) String() string { + return "StructuredEncryptionUtil.Key" +} + +// End of class Key + +func Type_Key_() _dafny.TypeDescriptor { + return type_Key_{} +} + +type type_Key_ struct { +} + +func (_this type_Key_) Default() interface{} { + return _dafny.EmptySeq +} + +func (_this type_Key_) String() string { + return "StructuredEncryptionUtil.Key" +} +func (_this *CompanionStruct_Key_) Is_(__source _dafny.Sequence) bool { + var _0_x _dafny.Sequence = (__source) + _ = _0_x + return (_dafny.IntOfUint32((_0_x).Cardinality())).Cmp(Companion_Default___.KeySize()) == 0 +} + +// Definition of class Nonce +type Nonce struct { +} + +func New_Nonce_() *Nonce { + _this := Nonce{} + + return &_this +} + +type CompanionStruct_Nonce_ struct { +} + +var Companion_Nonce_ = CompanionStruct_Nonce_{} + +func (*Nonce) String() string { + return "StructuredEncryptionUtil.Nonce" +} + +// End of class Nonce + +func Type_Nonce_() _dafny.TypeDescriptor { + return type_Nonce_{} +} + +type type_Nonce_ struct { +} + +func (_this type_Nonce_) Default() interface{} { + return _dafny.EmptySeq +} + +func (_this type_Nonce_) String() string { + return "StructuredEncryptionUtil.Nonce" +} +func (_this *CompanionStruct_Nonce_) Is_(__source _dafny.Sequence) bool { + var _1_x _dafny.Sequence = (__source) + _ = _1_x + return (_dafny.IntOfUint32((_1_x).Cardinality())).Cmp(Companion_Default___.NonceSize()) == 0 +} + +// Definition of class AuthTag +type AuthTag struct { +} + +func New_AuthTag_() *AuthTag { + _this := AuthTag{} + + return &_this +} + +type CompanionStruct_AuthTag_ struct { +} + +var Companion_AuthTag_ = CompanionStruct_AuthTag_{} + +func (*AuthTag) String() string { + return "StructuredEncryptionUtil.AuthTag" +} + +// End of class AuthTag + +func Type_AuthTag_() _dafny.TypeDescriptor { + return type_AuthTag_{} +} + +type type_AuthTag_ struct { +} + +func (_this type_AuthTag_) Default() interface{} { + return _dafny.EmptySeq +} + +func (_this type_AuthTag_) String() string { + return "StructuredEncryptionUtil.AuthTag" +} +func (_this *CompanionStruct_AuthTag_) Is_(__source _dafny.Sequence) bool { + var _2_x _dafny.Sequence = (__source) + _ = _2_x + return (_dafny.IntOfUint32((_2_x).Cardinality())).Cmp(Companion_Default___.AuthTagSize()) == 0 +} + +// Definition of class MessageID +type MessageID struct { +} + +func New_MessageID_() *MessageID { + _this := MessageID{} + + return &_this +} + +type CompanionStruct_MessageID_ struct { +} + +var Companion_MessageID_ = CompanionStruct_MessageID_{} + +func (*MessageID) String() string { + return "StructuredEncryptionUtil.MessageID" +} + +// End of class MessageID + +func Type_MessageID_() _dafny.TypeDescriptor { + return type_MessageID_{} +} + +type type_MessageID_ struct { +} + +func (_this type_MessageID_) Default() interface{} { + return _dafny.EmptySeq +} + +func (_this type_MessageID_) String() string { + return "StructuredEncryptionUtil.MessageID" +} +func (_this *CompanionStruct_MessageID_) Is_(__source _dafny.Sequence) bool { + var _3_x _dafny.Sequence = (__source) + _ = _3_x + return (_dafny.IntOfUint32((_3_x).Cardinality())).Cmp(Companion_Default___.MSGID__LEN()) == 0 +} + +// Definition of class GoodString +type GoodString struct { +} + +func New_GoodString_() *GoodString { + _this := GoodString{} + + return &_this +} + +type CompanionStruct_GoodString_ struct { +} + +var Companion_GoodString_ = CompanionStruct_GoodString_{} + +func (*GoodString) String() string { + return "StructuredEncryptionUtil.GoodString" +} + +// End of class GoodString + +func Type_GoodString_() _dafny.TypeDescriptor { + return type_GoodString_{} +} + +type type_GoodString_ struct { +} + +func (_this type_GoodString_) Default() interface{} { + return _dafny.EmptySeq.SetString() +} + +func (_this type_GoodString_) String() string { + return "StructuredEncryptionUtil.GoodString" +} +func (_this *CompanionStruct_GoodString_) Is_(__source _dafny.Sequence) bool { + var _4_x _dafny.Sequence = (__source) + _ = _4_x + return Companion_Default___.ValidString(_4_x) +} diff --git a/customer-preview/ddb-esdk/TermLoc/TermLoc.go b/customer-preview/ddb-esdk/TermLoc/TermLoc.go new file mode 100644 index 000000000..9f3b3683d --- /dev/null +++ b/customer-preview/ddb-esdk/TermLoc/TermLoc.go @@ -0,0 +1,929 @@ +// Package TermLoc +// Dafny module TermLoc compiled into Go + +package TermLoc + +import ( + os "os" + + m_ComAmazonawsDynamodbTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/ComAmazonawsDynamodbTypes" + m_Com_Amazonaws_Dynamodb "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/Com_Amazonaws_Dynamodb" + m_ComAmazonawsKmsTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/ComAmazonawsKmsTypes" + m_Com_Amazonaws_Kms "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/Com_Amazonaws_Kms" + m_AlgorithmSuites "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AlgorithmSuites" + m_AwsArnParsing "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsArnParsing" + m_AwsCryptographyKeyStoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreOperations" + m_AwsCryptographyKeyStoreTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreTypes" + m_AwsCryptographyMaterialProvidersOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersOperations" + m_AwsCryptographyMaterialProvidersTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersTypes" + m_AwsKmsDiscoveryKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsDiscoveryKeyring" + m_AwsKmsEcdhKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsEcdhKeyring" + m_AwsKmsHierarchicalKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsHierarchicalKeyring" + m_AwsKmsKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsKeyring" + m_AwsKmsMrkAreUnique "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkAreUnique" + m_AwsKmsMrkDiscoveryKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkDiscoveryKeyring" + m_AwsKmsMrkKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkKeyring" + m_AwsKmsMrkMatchForDecrypt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkMatchForDecrypt" + m_AwsKmsRsaKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsRsaKeyring" + m_AwsKmsUtils "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsUtils" + m_CMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CMM" + m_CacheConstants "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CacheConstants" + m_CanonicalEncryptionContext "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CanonicalEncryptionContext" + m_Commitment "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Commitment" + m_Constants "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Constants" + m_CreateKeyStoreTable "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeyStoreTable" + m_CreateKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeys" + m_DDBKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DDBKeystoreOperations" + m_DefaultCMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DefaultCMM" + m_DefaultClientSupplier "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DefaultClientSupplier" + m_Defaults "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Defaults" + m_DiscoveryMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DiscoveryMultiKeyring" + m_EcdhEdkWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/EcdhEdkWrapping" + m_EdkWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/EdkWrapping" + m_ErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/ErrorMessages" + m_GetKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/GetKeys" + m_IntermediateKeyWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/IntermediateKeyWrapping" + m_KMSKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KMSKeystoreOperations" + m_KeyStore "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStore" + m_KeyStoreErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStoreErrorMessages" + m_Keyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Keyring" + m_KmsArn "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KmsArn" + m_LocalCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/LocalCMC" + m_MaterialProviders "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MaterialProviders" + m_MaterialWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MaterialWrapping" + m_Materials "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Materials" + m_MrkAwareDiscoveryMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MrkAwareDiscoveryMultiKeyring" + m_MrkAwareStrictMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MrkAwareStrictMultiKeyring" + m_MultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MultiKeyring" + m_RawAESKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawAESKeyring" + m_RawECDHKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawECDHKeyring" + m_RawRSAKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawRSAKeyring" + m_RequiredEncryptionContextCMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RequiredEncryptionContextCMM" + m_StormTracker "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StormTracker" + m_StormTrackingCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StormTrackingCMC" + m_StrictMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StrictMultiKeyring" + m_Structure "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Structure" + m_SynchronizedLocalCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/SynchronizedLocalCMC" + m_Utils "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Utils" + m_AtomicPrimitives "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AtomicPrimitives" + m_AwsCryptographyPrimitivesOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesOperations" + m_AwsCryptographyPrimitivesTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesTypes" + m_Digest "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Digest" + m_HKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/HKDF" + m_KdfCtr "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/KdfCtr" + m_Random "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Random" + m_WrappedHKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHKDF" + m_WrappedHMAC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHMAC" + m_Actions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Actions" + m_Base64 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64" + m_Base64Lemmas "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64Lemmas" + m_BoundedInts "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/BoundedInts" + m_DivInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternals" + m_DivInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternalsNonlinear" + m_DivMod "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivMod" + m_FileIO "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FileIO" + m_FloatCompare "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FloatCompare" + m_Functions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Functions" + m_GeneralInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GeneralInternals" + m_GetOpt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GetOpt" + m_HexStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/HexStrings" + m_Logarithm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Logarithm" + m__Math "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Math_" + m_ModInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternals" + m_ModInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternalsNonlinear" + m_Mul "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Mul" + m_MulInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternals" + m_MulInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternalsNonlinear" + m_Power "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Power" + m_Relations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Relations" + m_Seq "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq" + m_Seq_MergeSort "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq_MergeSort" + m_Sorting "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Sorting" + m_StandardLibrary "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary" + m_StandardLibraryInterop "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibraryInterop" + m_StandardLibrary_Sequence "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_Sequence" + m_StandardLibrary_String "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_String" + m_StandardLibrary_UInt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_UInt" + m_Streams "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Streams" + m_UnicodeStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UnicodeStrings" + m__Unicode "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Unicode_" + m_Utf16EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf16EncodingForm" + m_Utf8EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf8EncodingForm" + m_Wrappers "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers" + m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorOperations "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorOperations" + m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes" + m_AwsCryptographyDbEncryptionSdkDynamoDbOperations "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbOperations" + m_AwsCryptographyDbEncryptionSdkDynamoDbTypes "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbTypes" + m_AwsCryptographyDbEncryptionSdkStructuredEncryptionOperations "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkStructuredEncryptionOperations" + m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes" + m_Canonize "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/Canonize" + m_DynamoDbEncryption "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbEncryption" + m_DynamoDbEncryptionBranchKeyIdSupplier "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbEncryptionBranchKeyIdSupplier" + m_DynamoDbEncryptionUtil "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbEncryptionUtil" + m_DynamoDbItemEncryptor "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbItemEncryptor" + m_DynamoDbItemEncryptorUtil "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbItemEncryptorUtil" + m_DynamoDbNormalizeNumber "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbNormalizeNumber" + m_DynamoToStruct "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoToStruct" + m_InternalLegacyOverride "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/InternalLegacyOverride" + m__Maps "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/Maps_" + m_Sets "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/Sets" + m_SortCanon "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/SortCanon" + m_StructuredEncryption "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryption" + m_StructuredEncryptionCrypt "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionCrypt" + m_StructuredEncryptionFooter "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionFooter" + m_StructuredEncryptionHeader "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionHeader" + m_StructuredEncryptionPaths "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionPaths" + m_StructuredEncryptionUtil "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionUtil" + m__System "github.com/dafny-lang/DafnyRuntimeGo/v4/System_" + _dafny "github.com/dafny-lang/DafnyRuntimeGo/v4/dafny" +) + +var _ = os.Args +var _ _dafny.Dummy__ +var _ m__System.Dummy__ +var _ m_Wrappers.Dummy__ +var _ m_BoundedInts.Dummy__ +var _ m_StandardLibrary_UInt.Dummy__ +var _ m_StandardLibrary_Sequence.Dummy__ +var _ m_StandardLibrary_String.Dummy__ +var _ m_StandardLibrary.Dummy__ +var _ m_AwsCryptographyPrimitivesTypes.Dummy__ +var _ m_Random.Dummy__ +var _ m_Digest.Dummy__ +var _ m_WrappedHMAC.Dummy__ +var _ m_HKDF.Dummy__ +var _ m_WrappedHKDF.Dummy__ +var _ m_KdfCtr.Dummy__ +var _ m_AwsCryptographyPrimitivesOperations.Dummy__ +var _ m_AtomicPrimitives.Dummy__ +var _ m_ComAmazonawsDynamodbTypes.Dummy__ +var _ m_ComAmazonawsKmsTypes.Dummy__ +var _ m_AwsCryptographyKeyStoreTypes.Dummy__ +var _ m_AwsCryptographyMaterialProvidersTypes.Dummy__ +var _ m_Base64.Dummy__ +var _ m_AlgorithmSuites.Dummy__ +var _ m_Materials.Dummy__ +var _ m_Keyring.Dummy__ +var _ m_Relations.Dummy__ +var _ m_Seq_MergeSort.Dummy__ +var _ m__Math.Dummy__ +var _ m_Seq.Dummy__ +var _ m_MultiKeyring.Dummy__ +var _ m_AwsArnParsing.Dummy__ +var _ m_AwsKmsMrkAreUnique.Dummy__ +var _ m_Actions.Dummy__ +var _ m_AwsKmsMrkMatchForDecrypt.Dummy__ +var _ m_AwsKmsUtils.Dummy__ +var _ m_Constants.Dummy__ +var _ m_MaterialWrapping.Dummy__ +var _ m_CanonicalEncryptionContext.Dummy__ +var _ m_IntermediateKeyWrapping.Dummy__ +var _ m_EdkWrapping.Dummy__ +var _ m_ErrorMessages.Dummy__ +var _ m_AwsKmsKeyring.Dummy__ +var _ m_StrictMultiKeyring.Dummy__ +var _ m_AwsKmsDiscoveryKeyring.Dummy__ +var _ m_Com_Amazonaws_Kms.Dummy__ +var _ m_Com_Amazonaws_Dynamodb.Dummy__ +var _ m_DiscoveryMultiKeyring.Dummy__ +var _ m_AwsKmsMrkDiscoveryKeyring.Dummy__ +var _ m_MrkAwareDiscoveryMultiKeyring.Dummy__ +var _ m_AwsKmsMrkKeyring.Dummy__ +var _ m_MrkAwareStrictMultiKeyring.Dummy__ +var _ m_LocalCMC.Dummy__ +var _ m_SynchronizedLocalCMC.Dummy__ +var _ m_StormTracker.Dummy__ +var _ m_StormTrackingCMC.Dummy__ +var _ m_CacheConstants.Dummy__ +var _ m_AwsKmsHierarchicalKeyring.Dummy__ +var _ m_AwsKmsRsaKeyring.Dummy__ +var _ m_EcdhEdkWrapping.Dummy__ +var _ m_RawECDHKeyring.Dummy__ +var _ m_AwsKmsEcdhKeyring.Dummy__ +var _ m_RawAESKeyring.Dummy__ +var _ m_RawRSAKeyring.Dummy__ +var _ m_CMM.Dummy__ +var _ m_Defaults.Dummy__ +var _ m_Commitment.Dummy__ +var _ m_DefaultCMM.Dummy__ +var _ m_DefaultClientSupplier.Dummy__ +var _ m_Utils.Dummy__ +var _ m_RequiredEncryptionContextCMM.Dummy__ +var _ m_AwsCryptographyMaterialProvidersOperations.Dummy__ +var _ m_MaterialProviders.Dummy__ +var _ m_KeyStoreErrorMessages.Dummy__ +var _ m_KmsArn.Dummy__ +var _ m_Structure.Dummy__ +var _ m_KMSKeystoreOperations.Dummy__ +var _ m_DDBKeystoreOperations.Dummy__ +var _ m_CreateKeys.Dummy__ +var _ m_CreateKeyStoreTable.Dummy__ +var _ m_GetKeys.Dummy__ +var _ m_AwsCryptographyKeyStoreOperations.Dummy__ +var _ m_KeyStore.Dummy__ +var _ m__Unicode.Dummy__ +var _ m_Functions.Dummy__ +var _ m_Utf8EncodingForm.Dummy__ +var _ m_Utf16EncodingForm.Dummy__ +var _ m_UnicodeStrings.Dummy__ +var _ m_FileIO.Dummy__ +var _ m_GeneralInternals.Dummy__ +var _ m_MulInternalsNonlinear.Dummy__ +var _ m_MulInternals.Dummy__ +var _ m_Mul.Dummy__ +var _ m_ModInternalsNonlinear.Dummy__ +var _ m_DivInternalsNonlinear.Dummy__ +var _ m_ModInternals.Dummy__ +var _ m_DivInternals.Dummy__ +var _ m_DivMod.Dummy__ +var _ m_Power.Dummy__ +var _ m_Logarithm.Dummy__ +var _ m_StandardLibraryInterop.Dummy__ +var _ m_Streams.Dummy__ +var _ m_Sorting.Dummy__ +var _ m_HexStrings.Dummy__ +var _ m_GetOpt.Dummy__ +var _ m_FloatCompare.Dummy__ +var _ m_Base64Lemmas.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Dummy__ +var _ m_StructuredEncryptionUtil.Dummy__ +var _ m_Sets.Dummy__ +var _ m_StructuredEncryptionPaths.Dummy__ +var _ m_StructuredEncryptionHeader.Dummy__ +var _ m_StructuredEncryptionFooter.Dummy__ +var _ m_SortCanon.Dummy__ +var _ m_Canonize.Dummy__ +var _ m_StructuredEncryptionCrypt.Dummy__ +var _ m__Maps.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkStructuredEncryptionOperations.Dummy__ +var _ m_StructuredEncryption.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Dummy__ +var _ m_DynamoDbEncryptionUtil.Dummy__ +var _ m_DynamoDbNormalizeNumber.Dummy__ +var _ m_DynamoToStruct.Dummy__ +var _ m_DynamoDbItemEncryptorUtil.Dummy__ +var _ m_InternalLegacyOverride.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorOperations.Dummy__ +var _ m_DynamoDbItemEncryptor.Dummy__ +var _ m_DynamoDbEncryptionBranchKeyIdSupplier.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkDynamoDbOperations.Dummy__ +var _ m_DynamoDbEncryption.Dummy__ + +type Dummy__ struct{} + +// Definition of class Default__ +type Default__ struct { + dummy byte +} + +func New_Default___() *Default__ { + _this := Default__{} + + return &_this +} + +type CompanionStruct_Default___ struct { +} + +var Companion_Default___ = CompanionStruct_Default___{} + +func (_this *Default__) Equals(other *Default__) bool { + return _this == other +} + +func (_this *Default__) EqualsGeneric(x interface{}) bool { + other, ok := x.(*Default__) + return ok && _this.Equals(other) +} + +func (*Default__) String() string { + return "TermLoc.Default__" +} +func (_this *Default__) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = &Default__{} + +func (_static *CompanionStruct_Default___) ValidTermLoc(s _dafny.Sequence) bool { + return (((_dafny.IntOfUint32((s).Cardinality())).Sign() == 1) && ((_dafny.IntOfUint32((s).Cardinality())).Cmp(m_StandardLibrary_UInt.Companion_Default___.UINT64__LIMIT()) < 0)) && (((s).Select(0).(Selector)).Is_Map()) +} +func (_static *CompanionStruct_Default___) TermLocToString(t _dafny.Sequence) _dafny.Sequence { + return _dafny.Companion_Sequence_.Concatenate(((t).Select(0).(Selector)).Dtor_key(), Companion_Default___.SelectorListToString((t).Drop(1))) +} +func (_static *CompanionStruct_Default___) SelectorListToString(s _dafny.Sequence) _dafny.Sequence { + var _0___accumulator _dafny.Sequence = _dafny.SeqOfChars() + _ = _0___accumulator + goto TAIL_CALL_START +TAIL_CALL_START: + if (_dafny.IntOfUint32((s).Cardinality())).Sign() == 0 { + return _dafny.Companion_Sequence_.Concatenate(_0___accumulator, _dafny.SeqOfString("")) + } else if ((s).Select(0).(Selector)).Is_Map() { + _0___accumulator = _dafny.Companion_Sequence_.Concatenate(_0___accumulator, _dafny.Companion_Sequence_.Concatenate(_dafny.SeqOfString("."), ((s).Select(0).(Selector)).Dtor_key())) + var _in0 _dafny.Sequence = (s).Drop(1) + _ = _in0 + s = _in0 + goto TAIL_CALL_START + } else { + _0___accumulator = _dafny.Companion_Sequence_.Concatenate(_0___accumulator, _dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.SeqOfString("["), m_StandardLibrary_String.Companion_Default___.Base10Int2String(_dafny.IntOfUint64(((s).Select(0).(Selector)).Dtor_pos()))), _dafny.SeqOfString("]"))) + var _in1 _dafny.Sequence = (s).Drop(1) + _ = _in1 + s = _in1 + goto TAIL_CALL_START + } +} +func (_static *CompanionStruct_Default___) LacksAttribute(t _dafny.Sequence, item _dafny.Map) bool { + return !(item).Contains(((t).Select(0).(Selector)).Dtor_key()) +} +func (_static *CompanionStruct_Default___) TermToAttr(t _dafny.Sequence, item _dafny.Map, names m_Wrappers.Option) m_Wrappers.Option { + if !(item).Contains(((t).Select(0).(Selector)).Dtor_key()) { + return m_Wrappers.Companion_Option_.Create_None_() + } else { + var _0_res m_Wrappers.Result = Companion_Default___.GetTerminal((item).Get(((t).Select(0).(Selector)).Dtor_key()).(m_ComAmazonawsDynamodbTypes.AttributeValue), (t).Drop(1), names) + _ = _0_res + if (_0_res).Is_Success() { + return m_Wrappers.Companion_Option_.Create_Some_((_0_res).Dtor_value().(m_ComAmazonawsDynamodbTypes.AttributeValue)) + } else { + return m_Wrappers.Companion_Option_.Create_None_() + } + } +} +func (_static *CompanionStruct_Default___) TermToString(t _dafny.Sequence, item _dafny.Map) m_Wrappers.Result { + var _0_part m_Wrappers.Option = Companion_Default___.TermToAttr(t, item, m_Wrappers.Companion_Option_.Create_None_()) + _ = _0_part + if (_0_part).Is_None() { + return m_Wrappers.Companion_Result_.Create_Success_(m_Wrappers.Companion_Option_.Create_None_()) + } else { + var _1_valueOrError0 m_Wrappers.Result = Companion_Default___.AttrValueToString((_0_part).Dtor_value().(m_ComAmazonawsDynamodbTypes.AttributeValue)) + _ = _1_valueOrError0 + if (_1_valueOrError0).IsFailure() { + return (_1_valueOrError0).PropagateFailure() + } else { + var _2_res _dafny.Sequence = (_1_valueOrError0).Extract().(_dafny.Sequence) + _ = _2_res + return m_Wrappers.Companion_Result_.Create_Success_(m_Wrappers.Companion_Option_.Create_Some_(_2_res)) + } + } +} +func (_static *CompanionStruct_Default___) TermToBytes(t _dafny.Sequence, item _dafny.Map) m_Wrappers.Result { + var _0_part m_Wrappers.Option = Companion_Default___.TermToAttr(t, item, m_Wrappers.Companion_Option_.Create_None_()) + _ = _0_part + if (_0_part).Is_None() { + return m_Wrappers.Companion_Result_.Create_Success_(m_Wrappers.Companion_Option_.Create_None_()) + } else { + var _1_valueOrError0 m_Wrappers.Result = (m_DynamoToStruct.Companion_Default___.TopLevelAttributeToBytes((_0_part).Dtor_value().(m_ComAmazonawsDynamodbTypes.AttributeValue))).MapFailure(func(coer75 func(_dafny.Sequence) m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Error) func(interface{}) interface{} { + return func(arg99 interface{}) interface{} { + return coer75(arg99.(_dafny.Sequence)) + } + }(func(_2_e _dafny.Sequence) m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Error { + return m_DynamoDbEncryptionUtil.Companion_Default___.E(_2_e) + })) + _ = _1_valueOrError0 + if (_1_valueOrError0).IsFailure() { + return (_1_valueOrError0).PropagateFailure() + } else { + var _3_res _dafny.Sequence = (_1_valueOrError0).Extract().(_dafny.Sequence) + _ = _3_res + return m_Wrappers.Companion_Result_.Create_Success_(m_Wrappers.Companion_Option_.Create_Some_(_3_res)) + } + } +} +func (_static *CompanionStruct_Default___) GetTerminal(v m_ComAmazonawsDynamodbTypes.AttributeValue, parts _dafny.Sequence, names m_Wrappers.Option) m_Wrappers.Result { + goto TAIL_CALL_START +TAIL_CALL_START: + if (_dafny.IntOfUint32((parts).Cardinality())).Sign() == 0 { + return m_Wrappers.Companion_Result_.Create_Success_(v) + } else { + var _source0 m_ComAmazonawsDynamodbTypes.AttributeValue = v + _ = _source0 + { + if _source0.Is_S() { + var _0_s _dafny.Sequence = _source0.Get_().(m_ComAmazonawsDynamodbTypes.AttributeValue_S).S + _ = _0_s + return m_Wrappers.Companion_Result_.Create_Failure_(m_DynamoDbEncryptionUtil.Companion_Default___.E(_dafny.SeqOfString("Found string with parts left over."))) + } + } + { + if _source0.Is_N() { + var _1_s _dafny.Sequence = _source0.Get_().(m_ComAmazonawsDynamodbTypes.AttributeValue_N).N + _ = _1_s + return m_Wrappers.Companion_Result_.Create_Failure_(m_DynamoDbEncryptionUtil.Companion_Default___.E(_dafny.SeqOfString("Found number with parts left over."))) + } + } + { + if _source0.Is_B() { + var _2_b _dafny.Sequence = _source0.Get_().(m_ComAmazonawsDynamodbTypes.AttributeValue_B).B + _ = _2_b + return m_Wrappers.Companion_Result_.Create_Failure_(m_DynamoDbEncryptionUtil.Companion_Default___.E(_dafny.SeqOfString("Found binary with parts left over."))) + } + } + { + if _source0.Is_SS() { + var _3_s _dafny.Sequence = _source0.Get_().(m_ComAmazonawsDynamodbTypes.AttributeValue_SS).SS + _ = _3_s + return m_Wrappers.Companion_Result_.Create_Failure_(m_DynamoDbEncryptionUtil.Companion_Default___.E(_dafny.SeqOfString("Found string set with parts left over."))) + } + } + { + if _source0.Is_NS() { + var _4_s _dafny.Sequence = _source0.Get_().(m_ComAmazonawsDynamodbTypes.AttributeValue_NS).NS + _ = _4_s + return m_Wrappers.Companion_Result_.Create_Failure_(m_DynamoDbEncryptionUtil.Companion_Default___.E(_dafny.SeqOfString("Found number set with parts left over."))) + } + } + { + if _source0.Is_BS() { + var _5_s _dafny.Sequence = _source0.Get_().(m_ComAmazonawsDynamodbTypes.AttributeValue_BS).BS + _ = _5_s + return m_Wrappers.Companion_Result_.Create_Failure_(m_DynamoDbEncryptionUtil.Companion_Default___.E(_dafny.SeqOfString("Found binary set with parts left over."))) + } + } + { + if _source0.Is_BOOL() { + var _6_b bool = _source0.Get_().(m_ComAmazonawsDynamodbTypes.AttributeValue_BOOL).BOOL + _ = _6_b + return m_Wrappers.Companion_Result_.Create_Failure_(m_DynamoDbEncryptionUtil.Companion_Default___.E(_dafny.SeqOfString("Found boolean with parts left over."))) + } + } + { + if _source0.Is_NULL() { + var _7_n bool = _source0.Get_().(m_ComAmazonawsDynamodbTypes.AttributeValue_NULL).NULL + _ = _7_n + return m_Wrappers.Companion_Result_.Create_Failure_(m_DynamoDbEncryptionUtil.Companion_Default___.E(_dafny.SeqOfString("Found null with parts left over."))) + } + } + { + if _source0.Is_L() { + var _8_l _dafny.Sequence = _source0.Get_().(m_ComAmazonawsDynamodbTypes.AttributeValue_L).L + _ = _8_l + if !(((parts).Select(0).(Selector)).Is_List()) { + return m_Wrappers.Companion_Result_.Create_Failure_(m_DynamoDbEncryptionUtil.Companion_Default___.E(_dafny.SeqOfString("Tried to access list with key"))) + } else if (_dafny.IntOfUint32((_8_l).Cardinality())).Cmp(_dafny.IntOfUint64(((parts).Select(0).(Selector)).Dtor_pos())) <= 0 { + return m_Wrappers.Companion_Result_.Create_Failure_(m_DynamoDbEncryptionUtil.Companion_Default___.E(_dafny.SeqOfString("Tried to access beyond the end of the list"))) + } else { + var _in0 m_ComAmazonawsDynamodbTypes.AttributeValue = (_8_l).Select(uint32(((parts).Select(0).(Selector)).Dtor_pos())).(m_ComAmazonawsDynamodbTypes.AttributeValue) + _ = _in0 + var _in1 _dafny.Sequence = (parts).Drop(1) + _ = _in1 + var _in2 m_Wrappers.Option = names + _ = _in2 + v = _in0 + parts = _in1 + names = _in2 + goto TAIL_CALL_START + } + } + } + { + var _9_m _dafny.Map = _source0.Get_().(m_ComAmazonawsDynamodbTypes.AttributeValue_M).M + _ = _9_m + if !(((parts).Select(0).(Selector)).Is_Map()) { + return m_Wrappers.Companion_Result_.Create_Failure_(m_DynamoDbEncryptionUtil.Companion_Default___.E(_dafny.SeqOfString("Tried to access map with index"))) + } else if !(_9_m).Contains(((parts).Select(0).(Selector)).Dtor_key()) { + if (((names).Is_Some()) && (((names).Dtor_value().(_dafny.Map)).Contains(((parts).Select(0).(Selector)).Dtor_key()))) && ((_9_m).Contains(((names).Dtor_value().(_dafny.Map)).Get(((parts).Select(0).(Selector)).Dtor_key()).(_dafny.Sequence))) { + var _in3 m_ComAmazonawsDynamodbTypes.AttributeValue = (_9_m).Get(((names).Dtor_value().(_dafny.Map)).Get(((parts).Select(0).(Selector)).Dtor_key()).(_dafny.Sequence)).(m_ComAmazonawsDynamodbTypes.AttributeValue) + _ = _in3 + var _in4 _dafny.Sequence = (parts).Drop(1) + _ = _in4 + var _in5 m_Wrappers.Option = names + _ = _in5 + v = _in3 + parts = _in4 + names = _in5 + goto TAIL_CALL_START + } else { + return m_Wrappers.Companion_Result_.Create_Failure_(m_DynamoDbEncryptionUtil.Companion_Default___.E(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.SeqOfString("Tried to access "), ((parts).Select(0).(Selector)).Dtor_key()), _dafny.SeqOfString(" which is not in the map.")))) + } + } else { + var _in6 m_ComAmazonawsDynamodbTypes.AttributeValue = (_9_m).Get(((parts).Select(0).(Selector)).Dtor_key()).(m_ComAmazonawsDynamodbTypes.AttributeValue) + _ = _in6 + var _in7 _dafny.Sequence = (parts).Drop(1) + _ = _in7 + var _in8 m_Wrappers.Option = names + _ = _in8 + v = _in6 + parts = _in7 + names = _in8 + goto TAIL_CALL_START + } + } + } +} +func (_static *CompanionStruct_Default___) AttrValueToString(v m_ComAmazonawsDynamodbTypes.AttributeValue) m_Wrappers.Result { + var _source0 m_ComAmazonawsDynamodbTypes.AttributeValue = v + _ = _source0 + { + if _source0.Is_S() { + var _0_s _dafny.Sequence = _source0.Get_().(m_ComAmazonawsDynamodbTypes.AttributeValue_S).S + _ = _0_s + return m_Wrappers.Companion_Result_.Create_Success_(_0_s) + } + } + { + if _source0.Is_N() { + var _1_s _dafny.Sequence = _source0.Get_().(m_ComAmazonawsDynamodbTypes.AttributeValue_N).N + _ = _1_s + return m_Wrappers.Companion_Result_.Create_Success_(_1_s) + } + } + { + if _source0.Is_B() { + var _2_b _dafny.Sequence = _source0.Get_().(m_ComAmazonawsDynamodbTypes.AttributeValue_B).B + _ = _2_b + return m_Wrappers.Companion_Result_.Create_Failure_(m_DynamoDbEncryptionUtil.Companion_Default___.E(_dafny.SeqOfString("Can't convert Binary to string"))) + } + } + { + if _source0.Is_SS() { + var _3_s _dafny.Sequence = _source0.Get_().(m_ComAmazonawsDynamodbTypes.AttributeValue_SS).SS + _ = _3_s + return m_Wrappers.Companion_Result_.Create_Failure_(m_DynamoDbEncryptionUtil.Companion_Default___.E(_dafny.SeqOfString("Can't convert String Set to string."))) + } + } + { + if _source0.Is_NS() { + var _4_s _dafny.Sequence = _source0.Get_().(m_ComAmazonawsDynamodbTypes.AttributeValue_NS).NS + _ = _4_s + return m_Wrappers.Companion_Result_.Create_Failure_(m_DynamoDbEncryptionUtil.Companion_Default___.E(_dafny.SeqOfString("Can't convert Number Set to string."))) + } + } + { + if _source0.Is_BS() { + var _5_s _dafny.Sequence = _source0.Get_().(m_ComAmazonawsDynamodbTypes.AttributeValue_BS).BS + _ = _5_s + return m_Wrappers.Companion_Result_.Create_Failure_(m_DynamoDbEncryptionUtil.Companion_Default___.E(_dafny.SeqOfString("Can't convert Binary Set to string."))) + } + } + { + if _source0.Is_BOOL() { + var _6_b bool = _source0.Get_().(m_ComAmazonawsDynamodbTypes.AttributeValue_BOOL).BOOL + _ = _6_b + return m_Wrappers.Companion_Result_.Create_Success_((func() _dafny.Sequence { + if _6_b { + return _dafny.SeqOfString("true") + } + return _dafny.SeqOfString("false") + })()) + } + } + { + if _source0.Is_NULL() { + var _7_n bool = _source0.Get_().(m_ComAmazonawsDynamodbTypes.AttributeValue_NULL).NULL + _ = _7_n + return m_Wrappers.Companion_Result_.Create_Success_(_dafny.SeqOfString("null")) + } + } + { + if _source0.Is_L() { + var _8_l _dafny.Sequence = _source0.Get_().(m_ComAmazonawsDynamodbTypes.AttributeValue_L).L + _ = _8_l + return m_Wrappers.Companion_Result_.Create_Failure_(m_DynamoDbEncryptionUtil.Companion_Default___.E(_dafny.SeqOfString("Can't convert List to string."))) + } + } + { + var _9_m _dafny.Map = _source0.Get_().(m_ComAmazonawsDynamodbTypes.AttributeValue_M).M + _ = _9_m + return m_Wrappers.Companion_Result_.Create_Failure_(m_DynamoDbEncryptionUtil.Companion_Default___.E(_dafny.SeqOfString("Can't convert Map to string."))) + } +} +func (_static *CompanionStruct_Default___) FindStartOfNext(s _dafny.Sequence) m_Wrappers.Option { + var _0_dot m_Wrappers.Option = m_StandardLibrary.Companion_Default___.FindIndexMatching(s, _dafny.Char('.'), _dafny.Zero) + _ = _0_dot + var _1_bracket m_Wrappers.Option = m_StandardLibrary.Companion_Default___.FindIndexMatching(s, _dafny.Char('['), _dafny.Zero) + _ = _1_bracket + if ((_0_dot).Is_None()) && ((_1_bracket).Is_None()) { + return m_Wrappers.Companion_Option_.Create_None_() + } else if ((_0_dot).Is_Some()) && ((_1_bracket).Is_Some()) { + if ((_0_dot).Dtor_value().(_dafny.Int)).Cmp((_1_bracket).Dtor_value().(_dafny.Int)) < 0 { + return _0_dot + } else { + return _1_bracket + } + } else if (_0_dot).Is_Some() { + return _0_dot + } else { + return _1_bracket + } +} +func (_static *CompanionStruct_Default___) GetNumber(s _dafny.Sequence, acc _dafny.Int) m_Wrappers.Result { + goto TAIL_CALL_START +TAIL_CALL_START: + if (_dafny.IntOfUint32((s).Cardinality())).Sign() == 0 { + return m_Wrappers.Companion_Result_.Create_Success_(acc) + } else if ((_dafny.Char('0')) <= ((s).Select(0).(_dafny.Char))) && (((s).Select(0).(_dafny.Char)) <= (_dafny.Char('9'))) { + var _in0 _dafny.Sequence = (s).Drop(1) + _ = _in0 + var _in1 _dafny.Int = (((acc).Times(_dafny.IntOfInt64(10))).Plus(_dafny.IntOfInt32(rune((s).Select(0).(_dafny.Char))))).Minus(_dafny.IntOfInt32(rune(_dafny.Char('0')))) + _ = _in1 + s = _in0 + acc = _in1 + goto TAIL_CALL_START + } else { + return m_Wrappers.Companion_Result_.Create_Failure_(m_DynamoDbEncryptionUtil.Companion_Default___.E(_dafny.Companion_Sequence_.Concatenate(_dafny.SeqOfString("Unexpected character in number : "), _dafny.SeqOfChars((s).Select(0).(_dafny.Char))))) + } +} +func (_static *CompanionStruct_Default___) GetSelector(s _dafny.Sequence) m_Wrappers.Result { + if ((s).Select(0).(_dafny.Char)) == (_dafny.Char('.')) { + return m_Wrappers.Companion_Result_.Create_Success_(Companion_Selector_.Create_Map_((s).Drop(1))) + } else if ((s).Select(((_dafny.IntOfUint32((s).Cardinality())).Minus(_dafny.One)).Uint32()).(_dafny.Char)) != (_dafny.Char(']')) /* dircomp */ { + return m_Wrappers.Companion_Result_.Create_Failure_(m_DynamoDbEncryptionUtil.Companion_Default___.E(_dafny.SeqOfString("List index must end with ]"))) + } else { + var _0_valueOrError0 m_Wrappers.Result = Companion_Default___.GetNumber((s).Subsequence(1, ((_dafny.IntOfUint32((s).Cardinality())).Minus(_dafny.One)).Uint32()), _dafny.Zero) + _ = _0_valueOrError0 + if (_0_valueOrError0).IsFailure() { + return (_0_valueOrError0).PropagateFailure() + } else { + var _1_num _dafny.Int = (_0_valueOrError0).Extract().(_dafny.Int) + _ = _1_num + var _2_valueOrError1 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need((_1_num).Cmp(m_StandardLibrary_UInt.Companion_Default___.UINT64__LIMIT()) < 0, m_DynamoDbEncryptionUtil.Companion_Default___.E(_dafny.SeqOfString("Array selector exceeds maximum."))) + _ = _2_valueOrError1 + if (_2_valueOrError1).IsFailure() { + return (_2_valueOrError1).PropagateFailure() + } else { + return m_Wrappers.Companion_Result_.Create_Success_(Companion_Selector_.Create_List_((_1_num).Uint64())) + } + } + } +} +func (_static *CompanionStruct_Default___) GetSelectors(s _dafny.Sequence, acc _dafny.Sequence) m_Wrappers.Result { + goto TAIL_CALL_START +TAIL_CALL_START: + var _0_pos m_Wrappers.Option = Companion_Default___.FindStartOfNext((s).Drop(1)) + _ = _0_pos + var _1_end _dafny.Int = (func() _dafny.Int { + if (_0_pos).Is_None() { + return _dafny.IntOfUint32((s).Cardinality()) + } + return ((_0_pos).Dtor_value().(_dafny.Int)).Plus(_dafny.One) + })() + _ = _1_end + var _2_valueOrError0 m_Wrappers.Result = Companion_Default___.GetSelector((s).Take((_1_end).Uint32())) + _ = _2_valueOrError0 + if (_2_valueOrError0).IsFailure() { + return (_2_valueOrError0).PropagateFailure() + } else { + var _3_sel Selector = (_2_valueOrError0).Extract().(Selector) + _ = _3_sel + var _4_valueOrError1 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need(((_dafny.IntOfUint32((acc).Cardinality())).Plus(_dafny.One)).Cmp(m_StandardLibrary_UInt.Companion_Default___.UINT64__LIMIT()) < 0, m_DynamoDbEncryptionUtil.Companion_Default___.E(_dafny.SeqOfString("Selector Overflow"))) + _ = _4_valueOrError1 + if (_4_valueOrError1).IsFailure() { + return (_4_valueOrError1).PropagateFailure() + } else if (_0_pos).Is_None() { + return m_Wrappers.Companion_Result_.Create_Success_(_dafny.Companion_Sequence_.Concatenate(acc, _dafny.SeqOf(_3_sel))) + } else { + var _in0 _dafny.Sequence = (s).Drop((_1_end).Uint32()) + _ = _in0 + var _in1 _dafny.Sequence = _dafny.Companion_Sequence_.Concatenate(acc, _dafny.SeqOf(_3_sel)) + _ = _in1 + s = _in0 + acc = _in1 + goto TAIL_CALL_START + } + } +} +func (_static *CompanionStruct_Default___) MakeTermLoc(s _dafny.Sequence) m_Wrappers.Result { + var _0_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need((_dafny.IntOfUint32((s).Cardinality())).Sign() == 1, m_DynamoDbEncryptionUtil.Companion_Default___.E(_dafny.SeqOfString("Path specification must not be empty."))) + _ = _0_valueOrError0 + if (_0_valueOrError0).IsFailure() { + return (_0_valueOrError0).PropagateFailure() + } else { + var _1_pos m_Wrappers.Option = Companion_Default___.FindStartOfNext(s) + _ = _1_pos + if (_1_pos).Is_None() { + var _2_m Selector = Companion_Selector_.Create_Map_(s) + _ = _2_m + return m_Wrappers.Companion_Result_.Create_Success_(_dafny.SeqOf(Companion_Selector_.Create_Map_(s))) + } else { + var _3_name _dafny.Sequence = (s).Take(((_1_pos).Dtor_value().(_dafny.Int)).Uint32()) + _ = _3_name + var _4_valueOrError1 m_Wrappers.Result = Companion_Default___.GetSelectors((s).Drop(((_1_pos).Dtor_value().(_dafny.Int)).Uint32()), _dafny.SeqOf()) + _ = _4_valueOrError1 + if (_4_valueOrError1).IsFailure() { + return (_4_valueOrError1).PropagateFailure() + } else { + var _5_selectors _dafny.Sequence = (_4_valueOrError1).Extract().(_dafny.Sequence) + _ = _5_selectors + var _6_valueOrError2 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need(((_dafny.IntOfUint32((_5_selectors).Cardinality())).Plus(_dafny.One)).Cmp(m_StandardLibrary_UInt.Companion_Default___.UINT64__LIMIT()) < 0, m_DynamoDbEncryptionUtil.Companion_Default___.E(_dafny.SeqOfString("Selector Overflow"))) + _ = _6_valueOrError2 + if (_6_valueOrError2).IsFailure() { + return (_6_valueOrError2).PropagateFailure() + } else { + return m_Wrappers.Companion_Result_.Create_Success_(_dafny.Companion_Sequence_.Concatenate(_dafny.SeqOf(Companion_Selector_.Create_Map_(_3_name)), _5_selectors)) + } + } + } + } +} +func (_static *CompanionStruct_Default___) TermLocMap(attr _dafny.Sequence) _dafny.Sequence { + return _dafny.SeqOf(Companion_Selector_.Create_Map_(attr)) +} + +// End of class Default__ + +// Definition of datatype Selector +type Selector struct { + Data_Selector_ +} + +func (_this Selector) Get_() Data_Selector_ { + return _this.Data_Selector_ +} + +type Data_Selector_ interface { + isSelector() +} + +type CompanionStruct_Selector_ struct { +} + +var Companion_Selector_ = CompanionStruct_Selector_{} + +type Selector_List struct { + Pos uint64 +} + +func (Selector_List) isSelector() {} + +func (CompanionStruct_Selector_) Create_List_(Pos uint64) Selector { + return Selector{Selector_List{Pos}} +} + +func (_this Selector) Is_List() bool { + _, ok := _this.Get_().(Selector_List) + return ok +} + +type Selector_Map struct { + Key _dafny.Sequence +} + +func (Selector_Map) isSelector() {} + +func (CompanionStruct_Selector_) Create_Map_(Key _dafny.Sequence) Selector { + return Selector{Selector_Map{Key}} +} + +func (_this Selector) Is_Map() bool { + _, ok := _this.Get_().(Selector_Map) + return ok +} + +func (CompanionStruct_Selector_) Default() Selector { + return Companion_Selector_.Create_List_(uint64(0)) +} + +func (_this Selector) Dtor_pos() uint64 { + return _this.Get_().(Selector_List).Pos +} + +func (_this Selector) Dtor_key() _dafny.Sequence { + return _this.Get_().(Selector_Map).Key +} + +func (_this Selector) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case Selector_List: + { + return "TermLoc.Selector.List" + "(" + _dafny.String(data.Pos) + ")" + } + case Selector_Map: + { + return "TermLoc.Selector.Map" + "(" + _dafny.String(data.Key) + ")" + } + default: + { + return "" + } + } +} + +func (_this Selector) Equals(other Selector) bool { + switch data1 := _this.Get_().(type) { + case Selector_List: + { + data2, ok := other.Get_().(Selector_List) + return ok && data1.Pos == data2.Pos + } + case Selector_Map: + { + data2, ok := other.Get_().(Selector_Map) + return ok && data1.Key.Equals(data2.Key) + } + default: + { + return false // unexpected + } + } +} + +func (_this Selector) EqualsGeneric(other interface{}) bool { + typed, ok := other.(Selector) + return ok && _this.Equals(typed) +} + +func Type_Selector_() _dafny.TypeDescriptor { + return type_Selector_{} +} + +type type_Selector_ struct { +} + +func (_this type_Selector_) Default() interface{} { + return Companion_Selector_.Default() +} + +func (_this type_Selector_) String() string { + return "TermLoc.Selector" +} +func (_this Selector) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = Selector{} + +// End of datatype Selector + +// Definition of class SelectorList +type SelectorList struct { +} + +func New_SelectorList_() *SelectorList { + _this := SelectorList{} + + return &_this +} + +type CompanionStruct_SelectorList_ struct { +} + +var Companion_SelectorList_ = CompanionStruct_SelectorList_{} + +func (*SelectorList) String() string { + return "TermLoc.SelectorList" +} + +// End of class SelectorList + +func Type_SelectorList_() _dafny.TypeDescriptor { + return type_SelectorList_{} +} + +type type_SelectorList_ struct { +} + +func (_this type_SelectorList_) Default() interface{} { + return _dafny.EmptySeq +} + +func (_this type_SelectorList_) String() string { + return "TermLoc.SelectorList" +} +func (_this *CompanionStruct_SelectorList_) Is_(__source _dafny.Sequence) bool { + var _0_x _dafny.Sequence = (__source) + _ = _0_x + return (_dafny.IntOfUint32((_0_x).Cardinality())).Cmp(m_StandardLibrary_UInt.Companion_Default___.UINT64__LIMIT()) < 0 +} + +// Definition of class TermLoc +type TermLoc struct { +} + +func New_TermLoc_() *TermLoc { + _this := TermLoc{} + + return &_this +} + +type CompanionStruct_TermLoc_ struct { +} + +var Companion_TermLoc_ = CompanionStruct_TermLoc_{} + +func (*TermLoc) String() string { + return "TermLoc.TermLoc" +} + +// End of class TermLoc + +func Type_TermLoc_() _dafny.TypeDescriptor { + return type_TermLoc_{} +} + +type type_TermLoc_ struct { +} + +func (_this type_TermLoc_) Default() interface{} { + return _dafny.EmptySeq +} + +func (_this type_TermLoc_) String() string { + return "TermLoc.TermLoc" +} +func (_this *CompanionStruct_TermLoc_) Is_(__source _dafny.Sequence) bool { + var _1_x _dafny.Sequence = (__source) + _ = _1_x + return Companion_Default___.ValidTermLoc(_1_x) +} diff --git a/customer-preview/ddb-esdk/TransactGetItemsTransform/TransactGetItemsTransform.go b/customer-preview/ddb-esdk/TransactGetItemsTransform/TransactGetItemsTransform.go new file mode 100644 index 000000000..4295415cc --- /dev/null +++ b/customer-preview/ddb-esdk/TransactGetItemsTransform/TransactGetItemsTransform.go @@ -0,0 +1,435 @@ +// Package TransactGetItemsTransform +// Dafny module TransactGetItemsTransform compiled into Go + +package TransactGetItemsTransform + +import ( + os "os" + + m_ComAmazonawsDynamodbTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/ComAmazonawsDynamodbTypes" + m_Com_Amazonaws_Dynamodb "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/Com_Amazonaws_Dynamodb" + m_ComAmazonawsKmsTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/ComAmazonawsKmsTypes" + m_Com_Amazonaws_Kms "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/Com_Amazonaws_Kms" + m_AlgorithmSuites "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AlgorithmSuites" + m_AwsArnParsing "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsArnParsing" + m_AwsCryptographyKeyStoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreOperations" + m_AwsCryptographyKeyStoreTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreTypes" + m_AwsCryptographyMaterialProvidersOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersOperations" + m_AwsCryptographyMaterialProvidersTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersTypes" + m_AwsKmsDiscoveryKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsDiscoveryKeyring" + m_AwsKmsEcdhKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsEcdhKeyring" + m_AwsKmsHierarchicalKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsHierarchicalKeyring" + m_AwsKmsKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsKeyring" + m_AwsKmsMrkAreUnique "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkAreUnique" + m_AwsKmsMrkDiscoveryKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkDiscoveryKeyring" + m_AwsKmsMrkKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkKeyring" + m_AwsKmsMrkMatchForDecrypt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkMatchForDecrypt" + m_AwsKmsRsaKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsRsaKeyring" + m_AwsKmsUtils "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsUtils" + m_CMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CMM" + m_CacheConstants "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CacheConstants" + m_CanonicalEncryptionContext "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CanonicalEncryptionContext" + m_Commitment "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Commitment" + m_Constants "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Constants" + m_CreateKeyStoreTable "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeyStoreTable" + m_CreateKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeys" + m_DDBKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DDBKeystoreOperations" + m_DefaultCMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DefaultCMM" + m_DefaultClientSupplier "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DefaultClientSupplier" + m_Defaults "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Defaults" + m_DiscoveryMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DiscoveryMultiKeyring" + m_EcdhEdkWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/EcdhEdkWrapping" + m_EdkWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/EdkWrapping" + m_ErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/ErrorMessages" + m_GetKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/GetKeys" + m_IntermediateKeyWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/IntermediateKeyWrapping" + m_KMSKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KMSKeystoreOperations" + m_KeyStore "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStore" + m_KeyStoreErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStoreErrorMessages" + m_Keyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Keyring" + m_KmsArn "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KmsArn" + m_LocalCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/LocalCMC" + m_MaterialProviders "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MaterialProviders" + m_MaterialWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MaterialWrapping" + m_Materials "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Materials" + m_MrkAwareDiscoveryMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MrkAwareDiscoveryMultiKeyring" + m_MrkAwareStrictMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MrkAwareStrictMultiKeyring" + m_MultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MultiKeyring" + m_RawAESKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawAESKeyring" + m_RawECDHKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawECDHKeyring" + m_RawRSAKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawRSAKeyring" + m_RequiredEncryptionContextCMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RequiredEncryptionContextCMM" + m_StormTracker "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StormTracker" + m_StormTrackingCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StormTrackingCMC" + m_StrictMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StrictMultiKeyring" + m_Structure "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Structure" + m_SynchronizedLocalCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/SynchronizedLocalCMC" + m_Utils "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Utils" + m_AtomicPrimitives "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AtomicPrimitives" + m_AwsCryptographyPrimitivesOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesOperations" + m_AwsCryptographyPrimitivesTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesTypes" + m_Digest "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Digest" + m_HKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/HKDF" + m_KdfCtr "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/KdfCtr" + m_Random "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Random" + m_WrappedHKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHKDF" + m_WrappedHMAC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHMAC" + m_Actions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Actions" + m_Base64 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64" + m_Base64Lemmas "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64Lemmas" + m_BoundedInts "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/BoundedInts" + m_DivInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternals" + m_DivInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternalsNonlinear" + m_DivMod "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivMod" + m_FileIO "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FileIO" + m_FloatCompare "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FloatCompare" + m_Functions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Functions" + m_GeneralInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GeneralInternals" + m_GetOpt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GetOpt" + m_HexStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/HexStrings" + m_Logarithm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Logarithm" + m__Math "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Math_" + m_ModInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternals" + m_ModInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternalsNonlinear" + m_Mul "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Mul" + m_MulInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternals" + m_MulInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternalsNonlinear" + m_Power "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Power" + m_Relations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Relations" + m_Seq "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq" + m_Seq_MergeSort "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq_MergeSort" + m_Sorting "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Sorting" + m_StandardLibrary "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary" + m_StandardLibraryInterop "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibraryInterop" + m_StandardLibrary_Sequence "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_Sequence" + m_StandardLibrary_String "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_String" + m_StandardLibrary_UInt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_UInt" + m_Streams "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Streams" + m_UnicodeStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UnicodeStrings" + m__Unicode "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Unicode_" + m_Utf16EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf16EncodingForm" + m_Utf8EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf8EncodingForm" + m_Wrappers "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers" + m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorOperations "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorOperations" + m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes" + m_AwsCryptographyDbEncryptionSdkDynamoDbOperations "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbOperations" + m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes" + m_AwsCryptographyDbEncryptionSdkDynamoDbTypes "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbTypes" + m_AwsCryptographyDbEncryptionSdkStructuredEncryptionOperations "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkStructuredEncryptionOperations" + m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes" + m_BaseBeacon "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/BaseBeacon" + m_BatchGetItemTransform "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/BatchGetItemTransform" + m_BatchWriteItemTransform "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/BatchWriteItemTransform" + m_Canonize "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/Canonize" + m_CompoundBeacon "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/CompoundBeacon" + m_DdbMiddlewareConfig "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DdbMiddlewareConfig" + m_DdbStatement "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DdbStatement" + m_DdbVirtualFields "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DdbVirtualFields" + m_DynamoDBFilterExpr "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDBFilterExpr" + m_DynamoDBSupport "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDBSupport" + m_DynamoDbEncryption "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbEncryption" + m_DynamoDbEncryptionBranchKeyIdSupplier "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbEncryptionBranchKeyIdSupplier" + m_DynamoDbEncryptionUtil "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbEncryptionUtil" + m_DynamoDbItemEncryptor "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbItemEncryptor" + m_DynamoDbItemEncryptorUtil "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbItemEncryptorUtil" + m_DynamoDbMiddlewareSupport "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbMiddlewareSupport" + m_DynamoDbNormalizeNumber "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbNormalizeNumber" + m_DynamoDbUpdateExpr "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbUpdateExpr" + m_DynamoToStruct "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoToStruct" + m_GetItemTransform "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/GetItemTransform" + m_InternalLegacyOverride "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/InternalLegacyOverride" + m__Maps "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/Maps_" + m_PutItemTransform "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/PutItemTransform" + m_QueryTransform "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/QueryTransform" + m_ScanTransform "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/ScanTransform" + m_SearchConfigToInfo "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/SearchConfigToInfo" + m_SearchableEncryptionInfo "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/SearchableEncryptionInfo" + m_Sets "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/Sets" + m_SortCanon "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/SortCanon" + m_StructuredEncryption "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryption" + m_StructuredEncryptionCrypt "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionCrypt" + m_StructuredEncryptionFooter "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionFooter" + m_StructuredEncryptionHeader "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionHeader" + m_StructuredEncryptionPaths "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionPaths" + m_StructuredEncryptionUtil "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionUtil" + m_TermLoc "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/TermLoc" + m_TransactWriteItemsTransform "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/TransactWriteItemsTransform" + m_UpdateItemTransform "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/UpdateItemTransform" + m__System "github.com/dafny-lang/DafnyRuntimeGo/v4/System_" + _dafny "github.com/dafny-lang/DafnyRuntimeGo/v4/dafny" +) + +var _ = os.Args +var _ _dafny.Dummy__ +var _ m__System.Dummy__ +var _ m_Wrappers.Dummy__ +var _ m_BoundedInts.Dummy__ +var _ m_StandardLibrary_UInt.Dummy__ +var _ m_StandardLibrary_Sequence.Dummy__ +var _ m_StandardLibrary_String.Dummy__ +var _ m_StandardLibrary.Dummy__ +var _ m_AwsCryptographyPrimitivesTypes.Dummy__ +var _ m_Random.Dummy__ +var _ m_Digest.Dummy__ +var _ m_WrappedHMAC.Dummy__ +var _ m_HKDF.Dummy__ +var _ m_WrappedHKDF.Dummy__ +var _ m_KdfCtr.Dummy__ +var _ m_AwsCryptographyPrimitivesOperations.Dummy__ +var _ m_AtomicPrimitives.Dummy__ +var _ m_ComAmazonawsDynamodbTypes.Dummy__ +var _ m_ComAmazonawsKmsTypes.Dummy__ +var _ m_AwsCryptographyKeyStoreTypes.Dummy__ +var _ m_AwsCryptographyMaterialProvidersTypes.Dummy__ +var _ m_Base64.Dummy__ +var _ m_AlgorithmSuites.Dummy__ +var _ m_Materials.Dummy__ +var _ m_Keyring.Dummy__ +var _ m_Relations.Dummy__ +var _ m_Seq_MergeSort.Dummy__ +var _ m__Math.Dummy__ +var _ m_Seq.Dummy__ +var _ m_MultiKeyring.Dummy__ +var _ m_AwsArnParsing.Dummy__ +var _ m_AwsKmsMrkAreUnique.Dummy__ +var _ m_Actions.Dummy__ +var _ m_AwsKmsMrkMatchForDecrypt.Dummy__ +var _ m_AwsKmsUtils.Dummy__ +var _ m_Constants.Dummy__ +var _ m_MaterialWrapping.Dummy__ +var _ m_CanonicalEncryptionContext.Dummy__ +var _ m_IntermediateKeyWrapping.Dummy__ +var _ m_EdkWrapping.Dummy__ +var _ m_ErrorMessages.Dummy__ +var _ m_AwsKmsKeyring.Dummy__ +var _ m_StrictMultiKeyring.Dummy__ +var _ m_AwsKmsDiscoveryKeyring.Dummy__ +var _ m_Com_Amazonaws_Kms.Dummy__ +var _ m_Com_Amazonaws_Dynamodb.Dummy__ +var _ m_DiscoveryMultiKeyring.Dummy__ +var _ m_AwsKmsMrkDiscoveryKeyring.Dummy__ +var _ m_MrkAwareDiscoveryMultiKeyring.Dummy__ +var _ m_AwsKmsMrkKeyring.Dummy__ +var _ m_MrkAwareStrictMultiKeyring.Dummy__ +var _ m_LocalCMC.Dummy__ +var _ m_SynchronizedLocalCMC.Dummy__ +var _ m_StormTracker.Dummy__ +var _ m_StormTrackingCMC.Dummy__ +var _ m_CacheConstants.Dummy__ +var _ m_AwsKmsHierarchicalKeyring.Dummy__ +var _ m_AwsKmsRsaKeyring.Dummy__ +var _ m_EcdhEdkWrapping.Dummy__ +var _ m_RawECDHKeyring.Dummy__ +var _ m_AwsKmsEcdhKeyring.Dummy__ +var _ m_RawAESKeyring.Dummy__ +var _ m_RawRSAKeyring.Dummy__ +var _ m_CMM.Dummy__ +var _ m_Defaults.Dummy__ +var _ m_Commitment.Dummy__ +var _ m_DefaultCMM.Dummy__ +var _ m_DefaultClientSupplier.Dummy__ +var _ m_Utils.Dummy__ +var _ m_RequiredEncryptionContextCMM.Dummy__ +var _ m_AwsCryptographyMaterialProvidersOperations.Dummy__ +var _ m_MaterialProviders.Dummy__ +var _ m_KeyStoreErrorMessages.Dummy__ +var _ m_KmsArn.Dummy__ +var _ m_Structure.Dummy__ +var _ m_KMSKeystoreOperations.Dummy__ +var _ m_DDBKeystoreOperations.Dummy__ +var _ m_CreateKeys.Dummy__ +var _ m_CreateKeyStoreTable.Dummy__ +var _ m_GetKeys.Dummy__ +var _ m_AwsCryptographyKeyStoreOperations.Dummy__ +var _ m_KeyStore.Dummy__ +var _ m__Unicode.Dummy__ +var _ m_Functions.Dummy__ +var _ m_Utf8EncodingForm.Dummy__ +var _ m_Utf16EncodingForm.Dummy__ +var _ m_UnicodeStrings.Dummy__ +var _ m_FileIO.Dummy__ +var _ m_GeneralInternals.Dummy__ +var _ m_MulInternalsNonlinear.Dummy__ +var _ m_MulInternals.Dummy__ +var _ m_Mul.Dummy__ +var _ m_ModInternalsNonlinear.Dummy__ +var _ m_DivInternalsNonlinear.Dummy__ +var _ m_ModInternals.Dummy__ +var _ m_DivInternals.Dummy__ +var _ m_DivMod.Dummy__ +var _ m_Power.Dummy__ +var _ m_Logarithm.Dummy__ +var _ m_StandardLibraryInterop.Dummy__ +var _ m_Streams.Dummy__ +var _ m_Sorting.Dummy__ +var _ m_HexStrings.Dummy__ +var _ m_GetOpt.Dummy__ +var _ m_FloatCompare.Dummy__ +var _ m_Base64Lemmas.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Dummy__ +var _ m_StructuredEncryptionUtil.Dummy__ +var _ m_Sets.Dummy__ +var _ m_StructuredEncryptionPaths.Dummy__ +var _ m_StructuredEncryptionHeader.Dummy__ +var _ m_StructuredEncryptionFooter.Dummy__ +var _ m_SortCanon.Dummy__ +var _ m_Canonize.Dummy__ +var _ m_StructuredEncryptionCrypt.Dummy__ +var _ m__Maps.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkStructuredEncryptionOperations.Dummy__ +var _ m_StructuredEncryption.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Dummy__ +var _ m_DynamoDbEncryptionUtil.Dummy__ +var _ m_DynamoDbNormalizeNumber.Dummy__ +var _ m_DynamoToStruct.Dummy__ +var _ m_DynamoDbItemEncryptorUtil.Dummy__ +var _ m_InternalLegacyOverride.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorOperations.Dummy__ +var _ m_DynamoDbItemEncryptor.Dummy__ +var _ m_DynamoDbEncryptionBranchKeyIdSupplier.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkDynamoDbOperations.Dummy__ +var _ m_DynamoDbEncryption.Dummy__ +var _ m_TermLoc.Dummy__ +var _ m_DdbVirtualFields.Dummy__ +var _ m_DynamoDbUpdateExpr.Dummy__ +var _ m_BaseBeacon.Dummy__ +var _ m_CompoundBeacon.Dummy__ +var _ m_SearchableEncryptionInfo.Dummy__ +var _ m_DynamoDBFilterExpr.Dummy__ +var _ m_DynamoDBSupport.Dummy__ +var _ m_SearchConfigToInfo.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Dummy__ +var _ m_DdbMiddlewareConfig.Dummy__ +var _ m_DdbStatement.Dummy__ +var _ m_DynamoDbMiddlewareSupport.Dummy__ +var _ m_PutItemTransform.Dummy__ +var _ m_GetItemTransform.Dummy__ +var _ m_UpdateItemTransform.Dummy__ +var _ m_BatchWriteItemTransform.Dummy__ +var _ m_TransactWriteItemsTransform.Dummy__ +var _ m_BatchGetItemTransform.Dummy__ +var _ m_ScanTransform.Dummy__ +var _ m_QueryTransform.Dummy__ + +type Dummy__ struct{} + +// Definition of class Default__ +type Default__ struct { + dummy byte +} + +func New_Default___() *Default__ { + _this := Default__{} + + return &_this +} + +type CompanionStruct_Default___ struct { +} + +var Companion_Default___ = CompanionStruct_Default___{} + +func (_this *Default__) Equals(other *Default__) bool { + return _this == other +} + +func (_this *Default__) EqualsGeneric(x interface{}) bool { + other, ok := x.(*Default__) + return ok && _this.Equals(other) +} + +func (*Default__) String() string { + return "TransactGetItemsTransform.Default__" +} +func (_this *Default__) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = &Default__{} + +func (_static *CompanionStruct_Default___) Input(config m_DdbMiddlewareConfig.Config, input m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.TransactGetItemsInputTransformInput) m_Wrappers.Result { + var output m_Wrappers.Result = m_Wrappers.Result{} + _ = output + output = m_Wrappers.Companion_Result_.Create_Success_(m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_TransactGetItemsInputTransformOutput_.Create_TransactGetItemsInputTransformOutput_((input).Dtor_sdkInput())) + return output + return output +} +func (_static *CompanionStruct_Default___) Output(config m_DdbMiddlewareConfig.Config, input m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.TransactGetItemsOutputTransformInput) m_Wrappers.Result { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_TransactGetItemsOutputTransformOutput_.Default()) + _ = output + if m_DynamoDbMiddlewareSupport.Companion_Default___.NoList(((input).Dtor_sdkOutput()).Dtor_Responses()) { + output = m_Wrappers.Companion_Result_.Create_Success_(m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_TransactGetItemsOutputTransformOutput_.Create_TransactGetItemsOutputTransformOutput_((input).Dtor_sdkOutput())) + return output + } + if (_dafny.IntOfUint32(((((input).Dtor_sdkOutput()).Dtor_Responses()).Dtor_value().(_dafny.Sequence)).Cardinality())).Cmp(_dafny.IntOfUint32((((input).Dtor_originalInput()).Dtor_TransactItems()).Cardinality())) != 0 { + output = m_DdbMiddlewareConfig.Companion_Default___.MakeError(_dafny.SeqOfString("Invalid TransactGetItems response for original request: Number of items returned must equal number of items requested.")) + return output + } + var _0_decryptedItems _dafny.Sequence + _ = _0_decryptedItems + _0_decryptedItems = _dafny.SeqOf() + var _1_encryptedItems _dafny.Sequence + _ = _1_encryptedItems + _1_encryptedItems = (((input).Dtor_sdkOutput()).Dtor_Responses()).Dtor_value().(_dafny.Sequence) + var _hi0 _dafny.Int = _dafny.IntOfUint32((_1_encryptedItems).Cardinality()) + _ = _hi0 + for _2_x := _dafny.Zero; _2_x.Cmp(_hi0) < 0; _2_x = _2_x.Plus(_dafny.One) { + var _3_tableName _dafny.Sequence + _ = _3_tableName + _3_tableName = (((((input).Dtor_originalInput()).Dtor_TransactItems()).Select((_2_x).Uint32()).(m_ComAmazonawsDynamodbTypes.TransactGetItem)).Dtor_Get()).Dtor_TableName() + if !((config).Dtor_tableEncryptionConfigs()).Contains(_3_tableName) { + _0_decryptedItems = _dafny.Companion_Sequence_.Concatenate(_0_decryptedItems, _dafny.SeqOf((_1_encryptedItems).Select((_2_x).Uint32()).(m_ComAmazonawsDynamodbTypes.ItemResponse))) + } else { + var _4_tableConfig m_DdbMiddlewareConfig.TableConfig + _ = _4_tableConfig + _4_tableConfig = ((config).Dtor_tableEncryptionConfigs()).Get(_3_tableName).(m_DdbMiddlewareConfig.TableConfig) + if m_DynamoDbMiddlewareSupport.Companion_Default___.NoMap(((_1_encryptedItems).Select((_2_x).Uint32()).(m_ComAmazonawsDynamodbTypes.ItemResponse)).Dtor_Item()) { + _0_decryptedItems = _dafny.Companion_Sequence_.Concatenate(_0_decryptedItems, _dafny.SeqOf(m_ComAmazonawsDynamodbTypes.Companion_ItemResponse_.Create_ItemResponse_(m_Wrappers.Companion_Option_.Create_None_()))) + } else { + var _5_decryptRes m_Wrappers.Result + _ = _5_decryptRes + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = ((_4_tableConfig).Dtor_itemEncryptor()).DecryptItem(m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Companion_DecryptItemInput_.Create_DecryptItemInput_((((_1_encryptedItems).Select((_2_x).Uint32()).(m_ComAmazonawsDynamodbTypes.ItemResponse)).Dtor_Item()).Dtor_value().(_dafny.Map))) + _5_decryptRes = _out0 + var _6_valueOrError0 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Companion_DecryptItemOutput_.Default()) + _ = _6_valueOrError0 + _6_valueOrError0 = m_DdbMiddlewareConfig.Companion_Default___.MapError(_5_decryptRes) + if (_6_valueOrError0).IsFailure() { + output = (_6_valueOrError0).PropagateFailure() + return output + } + var _7_decrypted m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.DecryptItemOutput + _ = _7_decrypted + _7_decrypted = (_6_valueOrError0).Extract().(m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.DecryptItemOutput) + var _8_valueOrError1 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptyMap) + _ = _8_valueOrError1 + _8_valueOrError1 = m_DynamoDbMiddlewareSupport.Companion_Default___.RemoveBeacons(_4_tableConfig, (_7_decrypted).Dtor_plaintextItem()) + if (_8_valueOrError1).IsFailure() { + output = (_8_valueOrError1).PropagateFailure() + return output + } + var _9_item _dafny.Map + _ = _9_item + _9_item = (_8_valueOrError1).Extract().(_dafny.Map) + _0_decryptedItems = _dafny.Companion_Sequence_.Concatenate(_0_decryptedItems, _dafny.SeqOf(m_ComAmazonawsDynamodbTypes.Companion_ItemResponse_.Create_ItemResponse_(m_Wrappers.Companion_Option_.Create_Some_(_9_item)))) + } + } + } + var _pat_let_tv0 = _0_decryptedItems + _ = _pat_let_tv0 + output = m_Wrappers.Companion_Result_.Create_Success_(m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_TransactGetItemsOutputTransformOutput_.Create_TransactGetItemsOutputTransformOutput_(func(_pat_let41_0 m_ComAmazonawsDynamodbTypes.TransactGetItemsOutput) m_ComAmazonawsDynamodbTypes.TransactGetItemsOutput { + return func(_10_dt__update__tmp_h0 m_ComAmazonawsDynamodbTypes.TransactGetItemsOutput) m_ComAmazonawsDynamodbTypes.TransactGetItemsOutput { + return func(_pat_let42_0 m_Wrappers.Option) m_ComAmazonawsDynamodbTypes.TransactGetItemsOutput { + return func(_11_dt__update_hResponses_h0 m_Wrappers.Option) m_ComAmazonawsDynamodbTypes.TransactGetItemsOutput { + return m_ComAmazonawsDynamodbTypes.Companion_TransactGetItemsOutput_.Create_TransactGetItemsOutput_((_10_dt__update__tmp_h0).Dtor_ConsumedCapacity(), _11_dt__update_hResponses_h0) + }(_pat_let42_0) + }(m_Wrappers.Companion_Option_.Create_Some_(_pat_let_tv0)) + }(_pat_let41_0) + }((input).Dtor_sdkOutput()))) + return output + return output +} + +// End of class Default__ diff --git a/customer-preview/ddb-esdk/TransactWriteItemsTransform/TransactWriteItemsTransform.go b/customer-preview/ddb-esdk/TransactWriteItemsTransform/TransactWriteItemsTransform.go new file mode 100644 index 000000000..bc05f2d34 --- /dev/null +++ b/customer-preview/ddb-esdk/TransactWriteItemsTransform/TransactWriteItemsTransform.go @@ -0,0 +1,559 @@ +// Package TransactWriteItemsTransform +// Dafny module TransactWriteItemsTransform compiled into Go + +package TransactWriteItemsTransform + +import ( + os "os" + + m_ComAmazonawsDynamodbTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/ComAmazonawsDynamodbTypes" + m_Com_Amazonaws_Dynamodb "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/Com_Amazonaws_Dynamodb" + m_ComAmazonawsKmsTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/ComAmazonawsKmsTypes" + m_Com_Amazonaws_Kms "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/Com_Amazonaws_Kms" + m_AlgorithmSuites "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AlgorithmSuites" + m_AwsArnParsing "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsArnParsing" + m_AwsCryptographyKeyStoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreOperations" + m_AwsCryptographyKeyStoreTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreTypes" + m_AwsCryptographyMaterialProvidersOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersOperations" + m_AwsCryptographyMaterialProvidersTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersTypes" + m_AwsKmsDiscoveryKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsDiscoveryKeyring" + m_AwsKmsEcdhKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsEcdhKeyring" + m_AwsKmsHierarchicalKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsHierarchicalKeyring" + m_AwsKmsKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsKeyring" + m_AwsKmsMrkAreUnique "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkAreUnique" + m_AwsKmsMrkDiscoveryKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkDiscoveryKeyring" + m_AwsKmsMrkKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkKeyring" + m_AwsKmsMrkMatchForDecrypt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkMatchForDecrypt" + m_AwsKmsRsaKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsRsaKeyring" + m_AwsKmsUtils "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsUtils" + m_CMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CMM" + m_CacheConstants "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CacheConstants" + m_CanonicalEncryptionContext "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CanonicalEncryptionContext" + m_Commitment "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Commitment" + m_Constants "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Constants" + m_CreateKeyStoreTable "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeyStoreTable" + m_CreateKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeys" + m_DDBKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DDBKeystoreOperations" + m_DefaultCMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DefaultCMM" + m_DefaultClientSupplier "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DefaultClientSupplier" + m_Defaults "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Defaults" + m_DiscoveryMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DiscoveryMultiKeyring" + m_EcdhEdkWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/EcdhEdkWrapping" + m_EdkWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/EdkWrapping" + m_ErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/ErrorMessages" + m_GetKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/GetKeys" + m_IntermediateKeyWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/IntermediateKeyWrapping" + m_KMSKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KMSKeystoreOperations" + m_KeyStore "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStore" + m_KeyStoreErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStoreErrorMessages" + m_Keyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Keyring" + m_KmsArn "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KmsArn" + m_LocalCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/LocalCMC" + m_MaterialProviders "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MaterialProviders" + m_MaterialWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MaterialWrapping" + m_Materials "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Materials" + m_MrkAwareDiscoveryMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MrkAwareDiscoveryMultiKeyring" + m_MrkAwareStrictMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MrkAwareStrictMultiKeyring" + m_MultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MultiKeyring" + m_RawAESKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawAESKeyring" + m_RawECDHKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawECDHKeyring" + m_RawRSAKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawRSAKeyring" + m_RequiredEncryptionContextCMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RequiredEncryptionContextCMM" + m_StormTracker "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StormTracker" + m_StormTrackingCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StormTrackingCMC" + m_StrictMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StrictMultiKeyring" + m_Structure "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Structure" + m_SynchronizedLocalCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/SynchronizedLocalCMC" + m_Utils "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Utils" + m_AtomicPrimitives "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AtomicPrimitives" + m_AwsCryptographyPrimitivesOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesOperations" + m_AwsCryptographyPrimitivesTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesTypes" + m_Digest "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Digest" + m_HKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/HKDF" + m_KdfCtr "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/KdfCtr" + m_Random "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Random" + m_WrappedHKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHKDF" + m_WrappedHMAC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHMAC" + m_Actions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Actions" + m_Base64 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64" + m_Base64Lemmas "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64Lemmas" + m_BoundedInts "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/BoundedInts" + m_DivInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternals" + m_DivInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternalsNonlinear" + m_DivMod "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivMod" + m_FileIO "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FileIO" + m_FloatCompare "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FloatCompare" + m_Functions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Functions" + m_GeneralInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GeneralInternals" + m_GetOpt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GetOpt" + m_HexStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/HexStrings" + m_Logarithm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Logarithm" + m__Math "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Math_" + m_ModInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternals" + m_ModInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternalsNonlinear" + m_Mul "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Mul" + m_MulInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternals" + m_MulInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternalsNonlinear" + m_Power "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Power" + m_Relations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Relations" + m_Seq "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq" + m_Seq_MergeSort "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq_MergeSort" + m_Sorting "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Sorting" + m_StandardLibrary "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary" + m_StandardLibraryInterop "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibraryInterop" + m_StandardLibrary_Sequence "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_Sequence" + m_StandardLibrary_String "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_String" + m_StandardLibrary_UInt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_UInt" + m_Streams "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Streams" + m_UnicodeStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UnicodeStrings" + m__Unicode "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Unicode_" + m_Utf16EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf16EncodingForm" + m_Utf8EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf8EncodingForm" + m_Wrappers "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers" + m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorOperations "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorOperations" + m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes" + m_AwsCryptographyDbEncryptionSdkDynamoDbOperations "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbOperations" + m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes" + m_AwsCryptographyDbEncryptionSdkDynamoDbTypes "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbTypes" + m_AwsCryptographyDbEncryptionSdkStructuredEncryptionOperations "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkStructuredEncryptionOperations" + m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes" + m_BaseBeacon "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/BaseBeacon" + m_BatchWriteItemTransform "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/BatchWriteItemTransform" + m_Canonize "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/Canonize" + m_CompoundBeacon "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/CompoundBeacon" + m_DdbMiddlewareConfig "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DdbMiddlewareConfig" + m_DdbStatement "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DdbStatement" + m_DdbVirtualFields "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DdbVirtualFields" + m_DynamoDBFilterExpr "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDBFilterExpr" + m_DynamoDBSupport "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDBSupport" + m_DynamoDbEncryption "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbEncryption" + m_DynamoDbEncryptionBranchKeyIdSupplier "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbEncryptionBranchKeyIdSupplier" + m_DynamoDbEncryptionUtil "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbEncryptionUtil" + m_DynamoDbItemEncryptor "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbItemEncryptor" + m_DynamoDbItemEncryptorUtil "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbItemEncryptorUtil" + m_DynamoDbMiddlewareSupport "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbMiddlewareSupport" + m_DynamoDbNormalizeNumber "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbNormalizeNumber" + m_DynamoDbUpdateExpr "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbUpdateExpr" + m_DynamoToStruct "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoToStruct" + m_GetItemTransform "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/GetItemTransform" + m_InternalLegacyOverride "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/InternalLegacyOverride" + m__Maps "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/Maps_" + m_PutItemTransform "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/PutItemTransform" + m_SearchConfigToInfo "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/SearchConfigToInfo" + m_SearchableEncryptionInfo "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/SearchableEncryptionInfo" + m_Sets "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/Sets" + m_SortCanon "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/SortCanon" + m_StructuredEncryption "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryption" + m_StructuredEncryptionCrypt "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionCrypt" + m_StructuredEncryptionFooter "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionFooter" + m_StructuredEncryptionHeader "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionHeader" + m_StructuredEncryptionPaths "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionPaths" + m_StructuredEncryptionUtil "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionUtil" + m_TermLoc "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/TermLoc" + m_UpdateItemTransform "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/UpdateItemTransform" + m__System "github.com/dafny-lang/DafnyRuntimeGo/v4/System_" + _dafny "github.com/dafny-lang/DafnyRuntimeGo/v4/dafny" +) + +var _ = os.Args +var _ _dafny.Dummy__ +var _ m__System.Dummy__ +var _ m_Wrappers.Dummy__ +var _ m_BoundedInts.Dummy__ +var _ m_StandardLibrary_UInt.Dummy__ +var _ m_StandardLibrary_Sequence.Dummy__ +var _ m_StandardLibrary_String.Dummy__ +var _ m_StandardLibrary.Dummy__ +var _ m_AwsCryptographyPrimitivesTypes.Dummy__ +var _ m_Random.Dummy__ +var _ m_Digest.Dummy__ +var _ m_WrappedHMAC.Dummy__ +var _ m_HKDF.Dummy__ +var _ m_WrappedHKDF.Dummy__ +var _ m_KdfCtr.Dummy__ +var _ m_AwsCryptographyPrimitivesOperations.Dummy__ +var _ m_AtomicPrimitives.Dummy__ +var _ m_ComAmazonawsDynamodbTypes.Dummy__ +var _ m_ComAmazonawsKmsTypes.Dummy__ +var _ m_AwsCryptographyKeyStoreTypes.Dummy__ +var _ m_AwsCryptographyMaterialProvidersTypes.Dummy__ +var _ m_Base64.Dummy__ +var _ m_AlgorithmSuites.Dummy__ +var _ m_Materials.Dummy__ +var _ m_Keyring.Dummy__ +var _ m_Relations.Dummy__ +var _ m_Seq_MergeSort.Dummy__ +var _ m__Math.Dummy__ +var _ m_Seq.Dummy__ +var _ m_MultiKeyring.Dummy__ +var _ m_AwsArnParsing.Dummy__ +var _ m_AwsKmsMrkAreUnique.Dummy__ +var _ m_Actions.Dummy__ +var _ m_AwsKmsMrkMatchForDecrypt.Dummy__ +var _ m_AwsKmsUtils.Dummy__ +var _ m_Constants.Dummy__ +var _ m_MaterialWrapping.Dummy__ +var _ m_CanonicalEncryptionContext.Dummy__ +var _ m_IntermediateKeyWrapping.Dummy__ +var _ m_EdkWrapping.Dummy__ +var _ m_ErrorMessages.Dummy__ +var _ m_AwsKmsKeyring.Dummy__ +var _ m_StrictMultiKeyring.Dummy__ +var _ m_AwsKmsDiscoveryKeyring.Dummy__ +var _ m_Com_Amazonaws_Kms.Dummy__ +var _ m_Com_Amazonaws_Dynamodb.Dummy__ +var _ m_DiscoveryMultiKeyring.Dummy__ +var _ m_AwsKmsMrkDiscoveryKeyring.Dummy__ +var _ m_MrkAwareDiscoveryMultiKeyring.Dummy__ +var _ m_AwsKmsMrkKeyring.Dummy__ +var _ m_MrkAwareStrictMultiKeyring.Dummy__ +var _ m_LocalCMC.Dummy__ +var _ m_SynchronizedLocalCMC.Dummy__ +var _ m_StormTracker.Dummy__ +var _ m_StormTrackingCMC.Dummy__ +var _ m_CacheConstants.Dummy__ +var _ m_AwsKmsHierarchicalKeyring.Dummy__ +var _ m_AwsKmsRsaKeyring.Dummy__ +var _ m_EcdhEdkWrapping.Dummy__ +var _ m_RawECDHKeyring.Dummy__ +var _ m_AwsKmsEcdhKeyring.Dummy__ +var _ m_RawAESKeyring.Dummy__ +var _ m_RawRSAKeyring.Dummy__ +var _ m_CMM.Dummy__ +var _ m_Defaults.Dummy__ +var _ m_Commitment.Dummy__ +var _ m_DefaultCMM.Dummy__ +var _ m_DefaultClientSupplier.Dummy__ +var _ m_Utils.Dummy__ +var _ m_RequiredEncryptionContextCMM.Dummy__ +var _ m_AwsCryptographyMaterialProvidersOperations.Dummy__ +var _ m_MaterialProviders.Dummy__ +var _ m_KeyStoreErrorMessages.Dummy__ +var _ m_KmsArn.Dummy__ +var _ m_Structure.Dummy__ +var _ m_KMSKeystoreOperations.Dummy__ +var _ m_DDBKeystoreOperations.Dummy__ +var _ m_CreateKeys.Dummy__ +var _ m_CreateKeyStoreTable.Dummy__ +var _ m_GetKeys.Dummy__ +var _ m_AwsCryptographyKeyStoreOperations.Dummy__ +var _ m_KeyStore.Dummy__ +var _ m__Unicode.Dummy__ +var _ m_Functions.Dummy__ +var _ m_Utf8EncodingForm.Dummy__ +var _ m_Utf16EncodingForm.Dummy__ +var _ m_UnicodeStrings.Dummy__ +var _ m_FileIO.Dummy__ +var _ m_GeneralInternals.Dummy__ +var _ m_MulInternalsNonlinear.Dummy__ +var _ m_MulInternals.Dummy__ +var _ m_Mul.Dummy__ +var _ m_ModInternalsNonlinear.Dummy__ +var _ m_DivInternalsNonlinear.Dummy__ +var _ m_ModInternals.Dummy__ +var _ m_DivInternals.Dummy__ +var _ m_DivMod.Dummy__ +var _ m_Power.Dummy__ +var _ m_Logarithm.Dummy__ +var _ m_StandardLibraryInterop.Dummy__ +var _ m_Streams.Dummy__ +var _ m_Sorting.Dummy__ +var _ m_HexStrings.Dummy__ +var _ m_GetOpt.Dummy__ +var _ m_FloatCompare.Dummy__ +var _ m_Base64Lemmas.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Dummy__ +var _ m_StructuredEncryptionUtil.Dummy__ +var _ m_Sets.Dummy__ +var _ m_StructuredEncryptionPaths.Dummy__ +var _ m_StructuredEncryptionHeader.Dummy__ +var _ m_StructuredEncryptionFooter.Dummy__ +var _ m_SortCanon.Dummy__ +var _ m_Canonize.Dummy__ +var _ m_StructuredEncryptionCrypt.Dummy__ +var _ m__Maps.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkStructuredEncryptionOperations.Dummy__ +var _ m_StructuredEncryption.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Dummy__ +var _ m_DynamoDbEncryptionUtil.Dummy__ +var _ m_DynamoDbNormalizeNumber.Dummy__ +var _ m_DynamoToStruct.Dummy__ +var _ m_DynamoDbItemEncryptorUtil.Dummy__ +var _ m_InternalLegacyOverride.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorOperations.Dummy__ +var _ m_DynamoDbItemEncryptor.Dummy__ +var _ m_DynamoDbEncryptionBranchKeyIdSupplier.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkDynamoDbOperations.Dummy__ +var _ m_DynamoDbEncryption.Dummy__ +var _ m_TermLoc.Dummy__ +var _ m_DdbVirtualFields.Dummy__ +var _ m_DynamoDbUpdateExpr.Dummy__ +var _ m_BaseBeacon.Dummy__ +var _ m_CompoundBeacon.Dummy__ +var _ m_SearchableEncryptionInfo.Dummy__ +var _ m_DynamoDBFilterExpr.Dummy__ +var _ m_DynamoDBSupport.Dummy__ +var _ m_SearchConfigToInfo.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Dummy__ +var _ m_DdbMiddlewareConfig.Dummy__ +var _ m_DdbStatement.Dummy__ +var _ m_DynamoDbMiddlewareSupport.Dummy__ +var _ m_PutItemTransform.Dummy__ +var _ m_GetItemTransform.Dummy__ +var _ m_UpdateItemTransform.Dummy__ +var _ m_BatchWriteItemTransform.Dummy__ + +type Dummy__ struct{} + +// Definition of class Default__ +type Default__ struct { + dummy byte +} + +func New_Default___() *Default__ { + _this := Default__{} + + return &_this +} + +type CompanionStruct_Default___ struct { +} + +var Companion_Default___ = CompanionStruct_Default___{} + +func (_this *Default__) Equals(other *Default__) bool { + return _this == other +} + +func (_this *Default__) EqualsGeneric(x interface{}) bool { + other, ok := x.(*Default__) + return ok && _this.Equals(other) +} + +func (*Default__) String() string { + return "TransactWriteItemsTransform.Default__" +} +func (_this *Default__) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = &Default__{} + +func (_static *CompanionStruct_Default___) IsValid(item m_ComAmazonawsDynamodbTypes.TransactWriteItem) bool { + return (((((item).Dtor_Put()).Is_Some()) || (((item).Dtor_Update()).Is_Some())) || (((item).Dtor_Delete()).Is_Some())) || (((item).Dtor_ConditionCheck()).Is_Some()) +} +func (_static *CompanionStruct_Default___) Input(config m_DdbMiddlewareConfig.Config, input m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.TransactWriteItemsInputTransformInput) m_Wrappers.Result { + var output m_Wrappers.Result = m_Wrappers.Result{} + _ = output + var _0_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _0_valueOrError0 + _0_valueOrError0 = m_Wrappers.Companion_Default___.Need(_dafny.Quantifier((((input).Dtor_sdkInput()).Dtor_TransactItems()).UniqueElements(), true, func(_forall_var_0 m_ComAmazonawsDynamodbTypes.TransactWriteItem) bool { + var _1_item m_ComAmazonawsDynamodbTypes.TransactWriteItem + _1_item = interface{}(_forall_var_0).(m_ComAmazonawsDynamodbTypes.TransactWriteItem) + return !(_dafny.Companion_Sequence_.Contains(((input).Dtor_sdkInput()).Dtor_TransactItems(), _1_item)) || (Companion_Default___.IsValid(_1_item)) + }), m_DdbMiddlewareConfig.Companion_Default___.E(_dafny.SeqOfString("Each item in TransactWriteItems must specify at least one supported operation"))) + if (_0_valueOrError0).IsFailure() { + output = (_0_valueOrError0).PropagateFailure() + return output + } + var _2_result _dafny.Sequence + _ = _2_result + _2_result = _dafny.SeqOf() + var _hi0 _dafny.Int = _dafny.IntOfUint32((((input).Dtor_sdkInput()).Dtor_TransactItems()).Cardinality()) + _ = _hi0 + for _3_x := _dafny.Zero; _3_x.Cmp(_hi0) < 0; _3_x = _3_x.Plus(_dafny.One) { + var _4_item m_ComAmazonawsDynamodbTypes.TransactWriteItem + _ = _4_item + _4_item = (((input).Dtor_sdkInput()).Dtor_TransactItems()).Select((_3_x).Uint32()).(m_ComAmazonawsDynamodbTypes.TransactWriteItem) + if (((_4_item).Dtor_ConditionCheck()).Is_Some()) && (((config).Dtor_tableEncryptionConfigs()).Contains((((_4_item).Dtor_ConditionCheck()).Dtor_value().(m_ComAmazonawsDynamodbTypes.ConditionCheck)).Dtor_TableName())) { + var _5_tableConfig m_DdbMiddlewareConfig.TableConfig + _ = _5_tableConfig + _5_tableConfig = ((config).Dtor_tableEncryptionConfigs()).Get((((_4_item).Dtor_ConditionCheck()).Dtor_value().(m_ComAmazonawsDynamodbTypes.ConditionCheck)).Dtor_TableName()).(m_DdbMiddlewareConfig.TableConfig) + var _6_valueOrError1 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(false) + _ = _6_valueOrError1 + _6_valueOrError1 = m_DynamoDbMiddlewareSupport.Companion_Default___.TestConditionExpression(_5_tableConfig, m_Wrappers.Companion_Option_.Create_Some_((((_4_item).Dtor_ConditionCheck()).Dtor_value().(m_ComAmazonawsDynamodbTypes.ConditionCheck)).Dtor_ConditionExpression()), (((_4_item).Dtor_ConditionCheck()).Dtor_value().(m_ComAmazonawsDynamodbTypes.ConditionCheck)).Dtor_ExpressionAttributeNames(), (((_4_item).Dtor_ConditionCheck()).Dtor_value().(m_ComAmazonawsDynamodbTypes.ConditionCheck)).Dtor_ExpressionAttributeValues()) + if (_6_valueOrError1).IsFailure() { + output = (_6_valueOrError1).PropagateFailure() + return output + } + var _7___v0 bool + _ = _7___v0 + _7___v0 = (_6_valueOrError1).Extract().(bool) + } + if (((_4_item).Dtor_Delete()).Is_Some()) && (((config).Dtor_tableEncryptionConfigs()).Contains((((_4_item).Dtor_Delete()).Dtor_value().(m_ComAmazonawsDynamodbTypes.Delete)).Dtor_TableName())) { + var _8_tableConfig m_DdbMiddlewareConfig.TableConfig + _ = _8_tableConfig + _8_tableConfig = ((config).Dtor_tableEncryptionConfigs()).Get((((_4_item).Dtor_Delete()).Dtor_value().(m_ComAmazonawsDynamodbTypes.Delete)).Dtor_TableName()).(m_DdbMiddlewareConfig.TableConfig) + var _9_valueOrError2 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(false) + _ = _9_valueOrError2 + _9_valueOrError2 = m_DynamoDbMiddlewareSupport.Companion_Default___.TestConditionExpression(_8_tableConfig, (((_4_item).Dtor_Delete()).Dtor_value().(m_ComAmazonawsDynamodbTypes.Delete)).Dtor_ConditionExpression(), (((_4_item).Dtor_Delete()).Dtor_value().(m_ComAmazonawsDynamodbTypes.Delete)).Dtor_ExpressionAttributeNames(), (((_4_item).Dtor_Delete()).Dtor_value().(m_ComAmazonawsDynamodbTypes.Delete)).Dtor_ExpressionAttributeValues()) + if (_9_valueOrError2).IsFailure() { + output = (_9_valueOrError2).PropagateFailure() + return output + } + var _10___v1 bool + _ = _10___v1 + _10___v1 = (_9_valueOrError2).Extract().(bool) + } + if (((_4_item).Dtor_Update()).Is_Some()) && (((config).Dtor_tableEncryptionConfigs()).Contains((((_4_item).Dtor_Update()).Dtor_value().(m_ComAmazonawsDynamodbTypes.Update)).Dtor_TableName())) { + var _11_tableConfig m_DdbMiddlewareConfig.TableConfig + _ = _11_tableConfig + _11_tableConfig = ((config).Dtor_tableEncryptionConfigs()).Get((((_4_item).Dtor_Update()).Dtor_value().(m_ComAmazonawsDynamodbTypes.Update)).Dtor_TableName()).(m_DdbMiddlewareConfig.TableConfig) + var _12_valueOrError3 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(false) + _ = _12_valueOrError3 + _12_valueOrError3 = m_DynamoDbMiddlewareSupport.Companion_Default___.TestUpdateExpression(_11_tableConfig, m_Wrappers.Companion_Option_.Create_Some_((((_4_item).Dtor_Update()).Dtor_value().(m_ComAmazonawsDynamodbTypes.Update)).Dtor_UpdateExpression()), (((_4_item).Dtor_Update()).Dtor_value().(m_ComAmazonawsDynamodbTypes.Update)).Dtor_ExpressionAttributeNames(), (((_4_item).Dtor_Update()).Dtor_value().(m_ComAmazonawsDynamodbTypes.Update)).Dtor_ExpressionAttributeValues()) + if (_12_valueOrError3).IsFailure() { + output = (_12_valueOrError3).PropagateFailure() + return output + } + var _13___v2 bool + _ = _13___v2 + _13___v2 = (_12_valueOrError3).Extract().(bool) + var _14_valueOrError4 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(false) + _ = _14_valueOrError4 + _14_valueOrError4 = m_DynamoDbMiddlewareSupport.Companion_Default___.TestConditionExpression(_11_tableConfig, (((_4_item).Dtor_Update()).Dtor_value().(m_ComAmazonawsDynamodbTypes.Update)).Dtor_ConditionExpression(), (((_4_item).Dtor_Update()).Dtor_value().(m_ComAmazonawsDynamodbTypes.Update)).Dtor_ExpressionAttributeNames(), (((_4_item).Dtor_Update()).Dtor_value().(m_ComAmazonawsDynamodbTypes.Update)).Dtor_ExpressionAttributeValues()) + if (_14_valueOrError4).IsFailure() { + output = (_14_valueOrError4).PropagateFailure() + return output + } + var _15___v3 bool + _ = _15___v3 + _15___v3 = (_14_valueOrError4).Extract().(bool) + } + if (((_4_item).Dtor_Put()).Is_Some()) && (!(m_DdbMiddlewareConfig.Companion_Default___.IsPlainWrite(config, (((_4_item).Dtor_Put()).Dtor_value().(m_ComAmazonawsDynamodbTypes.Put)).Dtor_TableName()))) { + var _16_tableConfig m_DdbMiddlewareConfig.TableConfig + _ = _16_tableConfig + _16_tableConfig = ((config).Dtor_tableEncryptionConfigs()).Get((((_4_item).Dtor_Put()).Dtor_value().(m_ComAmazonawsDynamodbTypes.Put)).Dtor_TableName()).(m_DdbMiddlewareConfig.TableConfig) + var _17_valueOrError5 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(false) + _ = _17_valueOrError5 + _17_valueOrError5 = m_DynamoDbMiddlewareSupport.Companion_Default___.IsWriteable(_16_tableConfig, (((_4_item).Dtor_Put()).Dtor_value().(m_ComAmazonawsDynamodbTypes.Put)).Dtor_Item()) + if (_17_valueOrError5).IsFailure() { + output = (_17_valueOrError5).PropagateFailure() + return output + } + var _18___v4 bool + _ = _18___v4 + _18___v4 = (_17_valueOrError5).Extract().(bool) + var _19_valueOrError6 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(false) + _ = _19_valueOrError6 + _19_valueOrError6 = m_DynamoDbMiddlewareSupport.Companion_Default___.TestConditionExpression(_16_tableConfig, (((_4_item).Dtor_Put()).Dtor_value().(m_ComAmazonawsDynamodbTypes.Put)).Dtor_ConditionExpression(), (((_4_item).Dtor_Put()).Dtor_value().(m_ComAmazonawsDynamodbTypes.Put)).Dtor_ExpressionAttributeNames(), (((_4_item).Dtor_Put()).Dtor_value().(m_ComAmazonawsDynamodbTypes.Put)).Dtor_ExpressionAttributeValues()) + if (_19_valueOrError6).IsFailure() { + output = (_19_valueOrError6).PropagateFailure() + return output + } + var _20___v5 bool + _ = _20___v5 + _20___v5 = (_19_valueOrError6).Extract().(bool) + var _21_valueOrError7 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptyMap) + _ = _21_valueOrError7 + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_DynamoDbMiddlewareSupport.Companion_Default___.AddSignedBeacons(_16_tableConfig, (((_4_item).Dtor_Put()).Dtor_value().(m_ComAmazonawsDynamodbTypes.Put)).Dtor_Item()) + _21_valueOrError7 = _out0 + if (_21_valueOrError7).IsFailure() { + output = (_21_valueOrError7).PropagateFailure() + return output + } + var _22_beaconItem _dafny.Map + _ = _22_beaconItem + _22_beaconItem = (_21_valueOrError7).Extract().(_dafny.Map) + var _23_encryptRes m_Wrappers.Result + _ = _23_encryptRes + var _out1 m_Wrappers.Result + _ = _out1 + _out1 = ((_16_tableConfig).Dtor_itemEncryptor()).EncryptItem(m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Companion_EncryptItemInput_.Create_EncryptItemInput_(_22_beaconItem)) + _23_encryptRes = _out1 + var _24_valueOrError8 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Companion_EncryptItemOutput_.Default()) + _ = _24_valueOrError8 + _24_valueOrError8 = m_DdbMiddlewareConfig.Companion_Default___.MapError(_23_encryptRes) + if (_24_valueOrError8).IsFailure() { + output = (_24_valueOrError8).PropagateFailure() + return output + } + var _25_encrypted m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.EncryptItemOutput + _ = _25_encrypted + _25_encrypted = (_24_valueOrError8).Extract().(m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.EncryptItemOutput) + var _26_valueOrError9 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_Wrappers.Companion_Option_.Default()) + _ = _26_valueOrError9 + _26_valueOrError9 = m_DynamoDbMiddlewareSupport.Companion_Default___.GetKeyIdFromHeader(_16_tableConfig, _25_encrypted) + if (_26_valueOrError9).IsFailure() { + output = (_26_valueOrError9).PropagateFailure() + return output + } + var _27_keyId m_Wrappers.Option + _ = _27_keyId + _27_keyId = (_26_valueOrError9).Extract().(m_Wrappers.Option) + var _28_valueOrError10 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptyMap) + _ = _28_valueOrError10 + var _out2 m_Wrappers.Result + _ = _out2 + _out2 = m_DynamoDbMiddlewareSupport.Companion_Default___.GetEncryptedBeacons(_16_tableConfig, (((_4_item).Dtor_Put()).Dtor_value().(m_ComAmazonawsDynamodbTypes.Put)).Dtor_Item(), m_DynamoDbEncryptionUtil.Companion_Default___.MaybeFromOptionKeyId(_27_keyId)) + _28_valueOrError10 = _out2 + if (_28_valueOrError10).IsFailure() { + output = (_28_valueOrError10).PropagateFailure() + return output + } + var _29_beaconAttrs _dafny.Map + _ = _29_beaconAttrs + _29_beaconAttrs = (_28_valueOrError10).Extract().(_dafny.Map) + var _pat_let_tv0 = _25_encrypted + _ = _pat_let_tv0 + var _pat_let_tv1 = _29_beaconAttrs + _ = _pat_let_tv1 + var _30_put m_Wrappers.Option + _ = _30_put + _30_put = m_Wrappers.Companion_Option_.Create_Some_(func(_pat_let35_0 m_ComAmazonawsDynamodbTypes.Put) m_ComAmazonawsDynamodbTypes.Put { + return func(_31_dt__update__tmp_h0 m_ComAmazonawsDynamodbTypes.Put) m_ComAmazonawsDynamodbTypes.Put { + return func(_pat_let36_0 _dafny.Map) m_ComAmazonawsDynamodbTypes.Put { + return func(_32_dt__update_hItem_h0 _dafny.Map) m_ComAmazonawsDynamodbTypes.Put { + return m_ComAmazonawsDynamodbTypes.Companion_Put_.Create_Put_(_32_dt__update_hItem_h0, (_31_dt__update__tmp_h0).Dtor_TableName(), (_31_dt__update__tmp_h0).Dtor_ConditionExpression(), (_31_dt__update__tmp_h0).Dtor_ExpressionAttributeNames(), (_31_dt__update__tmp_h0).Dtor_ExpressionAttributeValues(), (_31_dt__update__tmp_h0).Dtor_ReturnValuesOnConditionCheckFailure()) + }(_pat_let36_0) + }(((_pat_let_tv0).Dtor_encryptedItem()).Merge(_pat_let_tv1)) + }(_pat_let35_0) + }(((_4_item).Dtor_Put()).Dtor_value().(m_ComAmazonawsDynamodbTypes.Put))) + var _33_newItem m_ComAmazonawsDynamodbTypes.TransactWriteItem + _ = _33_newItem + var _34_dt__update__tmp_h1 m_ComAmazonawsDynamodbTypes.TransactWriteItem = _4_item + _ = _34_dt__update__tmp_h1 + var _35_dt__update_hPut_h0 m_Wrappers.Option = _30_put + _ = _35_dt__update_hPut_h0 + _33_newItem = m_ComAmazonawsDynamodbTypes.Companion_TransactWriteItem_.Create_TransactWriteItem_((_34_dt__update__tmp_h1).Dtor_ConditionCheck(), _35_dt__update_hPut_h0, (_34_dt__update__tmp_h1).Dtor_Delete(), (_34_dt__update__tmp_h1).Dtor_Update()) + _2_result = _dafny.Companion_Sequence_.Concatenate(_2_result, _dafny.SeqOf(_33_newItem)) + } else { + _2_result = _dafny.Companion_Sequence_.Concatenate(_2_result, _dafny.SeqOf(_4_item)) + } + } + var _36_valueOrError11 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _36_valueOrError11 + _36_valueOrError11 = m_Wrappers.Companion_Default___.Need((_dafny.IntOfUint32((((input).Dtor_sdkInput()).Dtor_TransactItems()).Cardinality())).Cmp(_dafny.IntOfUint32((_2_result).Cardinality())) == 0, m_DdbMiddlewareConfig.Companion_Default___.E(_dafny.SeqOfString(""))) + if (_36_valueOrError11).IsFailure() { + output = (_36_valueOrError11).PropagateFailure() + return output + } + var _pat_let_tv2 = _2_result + _ = _pat_let_tv2 + output = m_Wrappers.Companion_Result_.Create_Success_(m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_TransactWriteItemsInputTransformOutput_.Create_TransactWriteItemsInputTransformOutput_(func(_pat_let37_0 m_ComAmazonawsDynamodbTypes.TransactWriteItemsInput) m_ComAmazonawsDynamodbTypes.TransactWriteItemsInput { + return func(_37_dt__update__tmp_h2 m_ComAmazonawsDynamodbTypes.TransactWriteItemsInput) m_ComAmazonawsDynamodbTypes.TransactWriteItemsInput { + return func(_pat_let38_0 _dafny.Sequence) m_ComAmazonawsDynamodbTypes.TransactWriteItemsInput { + return func(_38_dt__update_hTransactItems_h0 _dafny.Sequence) m_ComAmazonawsDynamodbTypes.TransactWriteItemsInput { + return m_ComAmazonawsDynamodbTypes.Companion_TransactWriteItemsInput_.Create_TransactWriteItemsInput_(_38_dt__update_hTransactItems_h0, (_37_dt__update__tmp_h2).Dtor_ReturnConsumedCapacity(), (_37_dt__update__tmp_h2).Dtor_ReturnItemCollectionMetrics(), (_37_dt__update__tmp_h2).Dtor_ClientRequestToken()) + }(_pat_let38_0) + }(_pat_let_tv2) + }(_pat_let37_0) + }((input).Dtor_sdkInput()))) + return output + return output +} +func (_static *CompanionStruct_Default___) Output(config m_DdbMiddlewareConfig.Config, input m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.TransactWriteItemsOutputTransformInput) m_Wrappers.Result { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_TransactWriteItemsOutputTransformOutput_.Default()) + _ = output + var _0_finalResult m_ComAmazonawsDynamodbTypes.TransactWriteItemsOutput + _ = _0_finalResult + _0_finalResult = (input).Dtor_sdkOutput() + output = m_Wrappers.Companion_Result_.Create_Success_(m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_TransactWriteItemsOutputTransformOutput_.Create_TransactWriteItemsOutputTransformOutput_(_0_finalResult)) + return output + return output +} + +// End of class Default__ diff --git a/customer-preview/ddb-esdk/UpdateItemTransform/UpdateItemTransform.go b/customer-preview/ddb-esdk/UpdateItemTransform/UpdateItemTransform.go new file mode 100644 index 000000000..266248dbf --- /dev/null +++ b/customer-preview/ddb-esdk/UpdateItemTransform/UpdateItemTransform.go @@ -0,0 +1,454 @@ +// Package UpdateItemTransform +// Dafny module UpdateItemTransform compiled into Go + +package UpdateItemTransform + +import ( + os "os" + + m_ComAmazonawsDynamodbTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/ComAmazonawsDynamodbTypes" + m_Com_Amazonaws_Dynamodb "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/Com_Amazonaws_Dynamodb" + m_ComAmazonawsKmsTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/ComAmazonawsKmsTypes" + m_Com_Amazonaws_Kms "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/Com_Amazonaws_Kms" + m_AlgorithmSuites "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AlgorithmSuites" + m_AwsArnParsing "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsArnParsing" + m_AwsCryptographyKeyStoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreOperations" + m_AwsCryptographyKeyStoreTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreTypes" + m_AwsCryptographyMaterialProvidersOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersOperations" + m_AwsCryptographyMaterialProvidersTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersTypes" + m_AwsKmsDiscoveryKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsDiscoveryKeyring" + m_AwsKmsEcdhKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsEcdhKeyring" + m_AwsKmsHierarchicalKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsHierarchicalKeyring" + m_AwsKmsKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsKeyring" + m_AwsKmsMrkAreUnique "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkAreUnique" + m_AwsKmsMrkDiscoveryKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkDiscoveryKeyring" + m_AwsKmsMrkKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkKeyring" + m_AwsKmsMrkMatchForDecrypt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkMatchForDecrypt" + m_AwsKmsRsaKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsRsaKeyring" + m_AwsKmsUtils "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsUtils" + m_CMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CMM" + m_CacheConstants "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CacheConstants" + m_CanonicalEncryptionContext "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CanonicalEncryptionContext" + m_Commitment "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Commitment" + m_Constants "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Constants" + m_CreateKeyStoreTable "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeyStoreTable" + m_CreateKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeys" + m_DDBKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DDBKeystoreOperations" + m_DefaultCMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DefaultCMM" + m_DefaultClientSupplier "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DefaultClientSupplier" + m_Defaults "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Defaults" + m_DiscoveryMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DiscoveryMultiKeyring" + m_EcdhEdkWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/EcdhEdkWrapping" + m_EdkWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/EdkWrapping" + m_ErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/ErrorMessages" + m_GetKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/GetKeys" + m_IntermediateKeyWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/IntermediateKeyWrapping" + m_KMSKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KMSKeystoreOperations" + m_KeyStore "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStore" + m_KeyStoreErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStoreErrorMessages" + m_Keyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Keyring" + m_KmsArn "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KmsArn" + m_LocalCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/LocalCMC" + m_MaterialProviders "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MaterialProviders" + m_MaterialWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MaterialWrapping" + m_Materials "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Materials" + m_MrkAwareDiscoveryMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MrkAwareDiscoveryMultiKeyring" + m_MrkAwareStrictMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MrkAwareStrictMultiKeyring" + m_MultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MultiKeyring" + m_RawAESKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawAESKeyring" + m_RawECDHKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawECDHKeyring" + m_RawRSAKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawRSAKeyring" + m_RequiredEncryptionContextCMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RequiredEncryptionContextCMM" + m_StormTracker "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StormTracker" + m_StormTrackingCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StormTrackingCMC" + m_StrictMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StrictMultiKeyring" + m_Structure "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Structure" + m_SynchronizedLocalCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/SynchronizedLocalCMC" + m_Utils "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Utils" + m_AtomicPrimitives "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AtomicPrimitives" + m_AwsCryptographyPrimitivesOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesOperations" + m_AwsCryptographyPrimitivesTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesTypes" + m_Digest "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Digest" + m_HKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/HKDF" + m_KdfCtr "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/KdfCtr" + m_Random "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Random" + m_WrappedHKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHKDF" + m_WrappedHMAC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHMAC" + m_Actions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Actions" + m_Base64 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64" + m_Base64Lemmas "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64Lemmas" + m_BoundedInts "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/BoundedInts" + m_DivInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternals" + m_DivInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternalsNonlinear" + m_DivMod "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivMod" + m_FileIO "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FileIO" + m_FloatCompare "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FloatCompare" + m_Functions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Functions" + m_GeneralInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GeneralInternals" + m_GetOpt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GetOpt" + m_HexStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/HexStrings" + m_Logarithm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Logarithm" + m__Math "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Math_" + m_ModInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternals" + m_ModInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternalsNonlinear" + m_Mul "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Mul" + m_MulInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternals" + m_MulInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternalsNonlinear" + m_Power "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Power" + m_Relations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Relations" + m_Seq "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq" + m_Seq_MergeSort "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq_MergeSort" + m_Sorting "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Sorting" + m_StandardLibrary "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary" + m_StandardLibraryInterop "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibraryInterop" + m_StandardLibrary_Sequence "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_Sequence" + m_StandardLibrary_String "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_String" + m_StandardLibrary_UInt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_UInt" + m_Streams "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Streams" + m_UnicodeStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UnicodeStrings" + m__Unicode "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Unicode_" + m_Utf16EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf16EncodingForm" + m_Utf8EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf8EncodingForm" + m_Wrappers "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers" + m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorOperations "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorOperations" + m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes" + m_AwsCryptographyDbEncryptionSdkDynamoDbOperations "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbOperations" + m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes" + m_AwsCryptographyDbEncryptionSdkDynamoDbTypes "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbTypes" + m_AwsCryptographyDbEncryptionSdkStructuredEncryptionOperations "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkStructuredEncryptionOperations" + m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes" + m_BaseBeacon "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/BaseBeacon" + m_Canonize "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/Canonize" + m_CompoundBeacon "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/CompoundBeacon" + m_DdbMiddlewareConfig "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DdbMiddlewareConfig" + m_DdbStatement "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DdbStatement" + m_DdbVirtualFields "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DdbVirtualFields" + m_DynamoDBFilterExpr "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDBFilterExpr" + m_DynamoDBSupport "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDBSupport" + m_DynamoDbEncryption "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbEncryption" + m_DynamoDbEncryptionBranchKeyIdSupplier "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbEncryptionBranchKeyIdSupplier" + m_DynamoDbEncryptionUtil "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbEncryptionUtil" + m_DynamoDbItemEncryptor "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbItemEncryptor" + m_DynamoDbItemEncryptorUtil "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbItemEncryptorUtil" + m_DynamoDbMiddlewareSupport "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbMiddlewareSupport" + m_DynamoDbNormalizeNumber "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbNormalizeNumber" + m_DynamoDbUpdateExpr "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbUpdateExpr" + m_DynamoToStruct "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoToStruct" + m_GetItemTransform "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/GetItemTransform" + m_InternalLegacyOverride "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/InternalLegacyOverride" + m__Maps "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/Maps_" + m_PutItemTransform "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/PutItemTransform" + m_SearchConfigToInfo "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/SearchConfigToInfo" + m_SearchableEncryptionInfo "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/SearchableEncryptionInfo" + m_Sets "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/Sets" + m_SortCanon "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/SortCanon" + m_StructuredEncryption "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryption" + m_StructuredEncryptionCrypt "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionCrypt" + m_StructuredEncryptionFooter "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionFooter" + m_StructuredEncryptionHeader "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionHeader" + m_StructuredEncryptionPaths "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionPaths" + m_StructuredEncryptionUtil "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryptionUtil" + m_TermLoc "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/TermLoc" + m__System "github.com/dafny-lang/DafnyRuntimeGo/v4/System_" + _dafny "github.com/dafny-lang/DafnyRuntimeGo/v4/dafny" +) + +var _ = os.Args +var _ _dafny.Dummy__ +var _ m__System.Dummy__ +var _ m_Wrappers.Dummy__ +var _ m_BoundedInts.Dummy__ +var _ m_StandardLibrary_UInt.Dummy__ +var _ m_StandardLibrary_Sequence.Dummy__ +var _ m_StandardLibrary_String.Dummy__ +var _ m_StandardLibrary.Dummy__ +var _ m_AwsCryptographyPrimitivesTypes.Dummy__ +var _ m_Random.Dummy__ +var _ m_Digest.Dummy__ +var _ m_WrappedHMAC.Dummy__ +var _ m_HKDF.Dummy__ +var _ m_WrappedHKDF.Dummy__ +var _ m_KdfCtr.Dummy__ +var _ m_AwsCryptographyPrimitivesOperations.Dummy__ +var _ m_AtomicPrimitives.Dummy__ +var _ m_ComAmazonawsDynamodbTypes.Dummy__ +var _ m_ComAmazonawsKmsTypes.Dummy__ +var _ m_AwsCryptographyKeyStoreTypes.Dummy__ +var _ m_AwsCryptographyMaterialProvidersTypes.Dummy__ +var _ m_Base64.Dummy__ +var _ m_AlgorithmSuites.Dummy__ +var _ m_Materials.Dummy__ +var _ m_Keyring.Dummy__ +var _ m_Relations.Dummy__ +var _ m_Seq_MergeSort.Dummy__ +var _ m__Math.Dummy__ +var _ m_Seq.Dummy__ +var _ m_MultiKeyring.Dummy__ +var _ m_AwsArnParsing.Dummy__ +var _ m_AwsKmsMrkAreUnique.Dummy__ +var _ m_Actions.Dummy__ +var _ m_AwsKmsMrkMatchForDecrypt.Dummy__ +var _ m_AwsKmsUtils.Dummy__ +var _ m_Constants.Dummy__ +var _ m_MaterialWrapping.Dummy__ +var _ m_CanonicalEncryptionContext.Dummy__ +var _ m_IntermediateKeyWrapping.Dummy__ +var _ m_EdkWrapping.Dummy__ +var _ m_ErrorMessages.Dummy__ +var _ m_AwsKmsKeyring.Dummy__ +var _ m_StrictMultiKeyring.Dummy__ +var _ m_AwsKmsDiscoveryKeyring.Dummy__ +var _ m_Com_Amazonaws_Kms.Dummy__ +var _ m_Com_Amazonaws_Dynamodb.Dummy__ +var _ m_DiscoveryMultiKeyring.Dummy__ +var _ m_AwsKmsMrkDiscoveryKeyring.Dummy__ +var _ m_MrkAwareDiscoveryMultiKeyring.Dummy__ +var _ m_AwsKmsMrkKeyring.Dummy__ +var _ m_MrkAwareStrictMultiKeyring.Dummy__ +var _ m_LocalCMC.Dummy__ +var _ m_SynchronizedLocalCMC.Dummy__ +var _ m_StormTracker.Dummy__ +var _ m_StormTrackingCMC.Dummy__ +var _ m_CacheConstants.Dummy__ +var _ m_AwsKmsHierarchicalKeyring.Dummy__ +var _ m_AwsKmsRsaKeyring.Dummy__ +var _ m_EcdhEdkWrapping.Dummy__ +var _ m_RawECDHKeyring.Dummy__ +var _ m_AwsKmsEcdhKeyring.Dummy__ +var _ m_RawAESKeyring.Dummy__ +var _ m_RawRSAKeyring.Dummy__ +var _ m_CMM.Dummy__ +var _ m_Defaults.Dummy__ +var _ m_Commitment.Dummy__ +var _ m_DefaultCMM.Dummy__ +var _ m_DefaultClientSupplier.Dummy__ +var _ m_Utils.Dummy__ +var _ m_RequiredEncryptionContextCMM.Dummy__ +var _ m_AwsCryptographyMaterialProvidersOperations.Dummy__ +var _ m_MaterialProviders.Dummy__ +var _ m_KeyStoreErrorMessages.Dummy__ +var _ m_KmsArn.Dummy__ +var _ m_Structure.Dummy__ +var _ m_KMSKeystoreOperations.Dummy__ +var _ m_DDBKeystoreOperations.Dummy__ +var _ m_CreateKeys.Dummy__ +var _ m_CreateKeyStoreTable.Dummy__ +var _ m_GetKeys.Dummy__ +var _ m_AwsCryptographyKeyStoreOperations.Dummy__ +var _ m_KeyStore.Dummy__ +var _ m__Unicode.Dummy__ +var _ m_Functions.Dummy__ +var _ m_Utf8EncodingForm.Dummy__ +var _ m_Utf16EncodingForm.Dummy__ +var _ m_UnicodeStrings.Dummy__ +var _ m_FileIO.Dummy__ +var _ m_GeneralInternals.Dummy__ +var _ m_MulInternalsNonlinear.Dummy__ +var _ m_MulInternals.Dummy__ +var _ m_Mul.Dummy__ +var _ m_ModInternalsNonlinear.Dummy__ +var _ m_DivInternalsNonlinear.Dummy__ +var _ m_ModInternals.Dummy__ +var _ m_DivInternals.Dummy__ +var _ m_DivMod.Dummy__ +var _ m_Power.Dummy__ +var _ m_Logarithm.Dummy__ +var _ m_StandardLibraryInterop.Dummy__ +var _ m_Streams.Dummy__ +var _ m_Sorting.Dummy__ +var _ m_HexStrings.Dummy__ +var _ m_GetOpt.Dummy__ +var _ m_FloatCompare.Dummy__ +var _ m_Base64Lemmas.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Dummy__ +var _ m_StructuredEncryptionUtil.Dummy__ +var _ m_Sets.Dummy__ +var _ m_StructuredEncryptionPaths.Dummy__ +var _ m_StructuredEncryptionHeader.Dummy__ +var _ m_StructuredEncryptionFooter.Dummy__ +var _ m_SortCanon.Dummy__ +var _ m_Canonize.Dummy__ +var _ m_StructuredEncryptionCrypt.Dummy__ +var _ m__Maps.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkStructuredEncryptionOperations.Dummy__ +var _ m_StructuredEncryption.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkDynamoDbTypes.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Dummy__ +var _ m_DynamoDbEncryptionUtil.Dummy__ +var _ m_DynamoDbNormalizeNumber.Dummy__ +var _ m_DynamoToStruct.Dummy__ +var _ m_DynamoDbItemEncryptorUtil.Dummy__ +var _ m_InternalLegacyOverride.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorOperations.Dummy__ +var _ m_DynamoDbItemEncryptor.Dummy__ +var _ m_DynamoDbEncryptionBranchKeyIdSupplier.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkDynamoDbOperations.Dummy__ +var _ m_DynamoDbEncryption.Dummy__ +var _ m_TermLoc.Dummy__ +var _ m_DdbVirtualFields.Dummy__ +var _ m_DynamoDbUpdateExpr.Dummy__ +var _ m_BaseBeacon.Dummy__ +var _ m_CompoundBeacon.Dummy__ +var _ m_SearchableEncryptionInfo.Dummy__ +var _ m_DynamoDBFilterExpr.Dummy__ +var _ m_DynamoDBSupport.Dummy__ +var _ m_SearchConfigToInfo.Dummy__ +var _ m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Dummy__ +var _ m_DdbMiddlewareConfig.Dummy__ +var _ m_DdbStatement.Dummy__ +var _ m_DynamoDbMiddlewareSupport.Dummy__ +var _ m_PutItemTransform.Dummy__ +var _ m_GetItemTransform.Dummy__ + +type Dummy__ struct{} + +// Definition of class Default__ +type Default__ struct { + dummy byte +} + +func New_Default___() *Default__ { + _this := Default__{} + + return &_this +} + +type CompanionStruct_Default___ struct { +} + +var Companion_Default___ = CompanionStruct_Default___{} + +func (_this *Default__) Equals(other *Default__) bool { + return _this == other +} + +func (_this *Default__) EqualsGeneric(x interface{}) bool { + other, ok := x.(*Default__) + return ok && _this.Equals(other) +} + +func (*Default__) String() string { + return "UpdateItemTransform.Default__" +} +func (_this *Default__) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = &Default__{} + +func (_static *CompanionStruct_Default___) Input(config m_DdbMiddlewareConfig.Config, input m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.UpdateItemInputTransformInput) m_Wrappers.Result { + var output m_Wrappers.Result = m_Wrappers.Result{} + _ = output + if ((config).Dtor_tableEncryptionConfigs()).Contains(((input).Dtor_sdkInput()).Dtor_TableName()) { + var _0_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _0_valueOrError0 + _0_valueOrError0 = m_Wrappers.Companion_Default___.Need(m_DynamoDbMiddlewareSupport.Companion_Default___.NoMap(((input).Dtor_sdkInput()).Dtor_Expected()), m_DdbMiddlewareConfig.Companion_Default___.E(_dafny.SeqOfString("Legacy parameter 'Expected' not supported in UpdateItem with Encryption"))) + if (_0_valueOrError0).IsFailure() { + output = (_0_valueOrError0).PropagateFailure() + return output + } + var _1_valueOrError1 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _1_valueOrError1 + _1_valueOrError1 = m_Wrappers.Companion_Default___.Need(m_DynamoDbMiddlewareSupport.Companion_Default___.NoMap(((input).Dtor_sdkInput()).Dtor_AttributeUpdates()), m_DdbMiddlewareConfig.Companion_Default___.E(_dafny.SeqOfString("Legacy parameter 'AttributeUpdates' not supported in UpdateItem with Encryption"))) + if (_1_valueOrError1).IsFailure() { + output = (_1_valueOrError1).PropagateFailure() + return output + } + var _2_valueOrError2 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _2_valueOrError2 + _2_valueOrError2 = m_Wrappers.Companion_Default___.Need((((input).Dtor_sdkInput()).Dtor_ConditionalOperator()).Is_None(), m_DdbMiddlewareConfig.Companion_Default___.E(_dafny.SeqOfString("Legacy parameter 'ConditionalOperator' not supported in UpdateItem with Encryption"))) + if (_2_valueOrError2).IsFailure() { + output = (_2_valueOrError2).PropagateFailure() + return output + } + var _3_tableConfig m_DdbMiddlewareConfig.TableConfig + _ = _3_tableConfig + _3_tableConfig = ((config).Dtor_tableEncryptionConfigs()).Get(((input).Dtor_sdkInput()).Dtor_TableName()).(m_DdbMiddlewareConfig.TableConfig) + var _4_valueOrError3 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(false) + _ = _4_valueOrError3 + _4_valueOrError3 = m_DynamoDbMiddlewareSupport.Companion_Default___.TestUpdateExpression(_3_tableConfig, ((input).Dtor_sdkInput()).Dtor_UpdateExpression(), ((input).Dtor_sdkInput()).Dtor_ExpressionAttributeNames(), ((input).Dtor_sdkInput()).Dtor_ExpressionAttributeValues()) + if (_4_valueOrError3).IsFailure() { + output = (_4_valueOrError3).PropagateFailure() + return output + } + var _5___v0 bool + _ = _5___v0 + _5___v0 = (_4_valueOrError3).Extract().(bool) + } + output = m_Wrappers.Companion_Result_.Create_Success_(m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_UpdateItemInputTransformOutput_.Create_UpdateItemInputTransformOutput_((input).Dtor_sdkInput())) + return output + return output +} +func (_static *CompanionStruct_Default___) Output(config m_DdbMiddlewareConfig.Config, input m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.UpdateItemOutputTransformInput) m_Wrappers.Result { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_UpdateItemOutputTransformOutput_.Default()) + _ = output + var _0_tableName _dafny.Sequence + _ = _0_tableName + _0_tableName = ((input).Dtor_originalInput()).Dtor_TableName() + if (!((config).Dtor_tableEncryptionConfigs()).Contains(_0_tableName)) || (m_DynamoDbMiddlewareSupport.Companion_Default___.NoMap(((input).Dtor_sdkOutput()).Dtor_Attributes())) { + output = m_Wrappers.Companion_Result_.Create_Success_(m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_UpdateItemOutputTransformOutput_.Create_UpdateItemOutputTransformOutput_((input).Dtor_sdkOutput())) + return output + } + var _1_tableConfig m_DdbMiddlewareConfig.TableConfig + _ = _1_tableConfig + _1_tableConfig = ((config).Dtor_tableEncryptionConfigs()).Get(_0_tableName).(m_DdbMiddlewareConfig.TableConfig) + var _2_attributes _dafny.Map + _ = _2_attributes + _2_attributes = (((input).Dtor_sdkOutput()).Dtor_Attributes()).Dtor_value().(_dafny.Map) + if !(((((input).Dtor_originalInput()).Dtor_ReturnValues()).Is_Some()) && ((((((input).Dtor_originalInput()).Dtor_ReturnValues()).Dtor_value().(m_ComAmazonawsDynamodbTypes.ReturnValue)).Is_ALL__NEW()) || (((((input).Dtor_originalInput()).Dtor_ReturnValues()).Dtor_value().(m_ComAmazonawsDynamodbTypes.ReturnValue)).Is_ALL__OLD()))) { + var _3_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _3_valueOrError0 + _3_valueOrError0 = m_Wrappers.Companion_Default___.Need(_dafny.Quantifier(((_2_attributes).Keys()).Elements(), true, func(_forall_var_0 _dafny.Sequence) bool { + var _4_k _dafny.Sequence + _4_k = interface{}(_forall_var_0).(_dafny.Sequence) + return !(((_2_attributes).Keys()).Contains(_4_k)) || (!(m_DynamoDbMiddlewareSupport.Companion_Default___.IsSigned(_1_tableConfig, _4_k))) + }), m_DdbMiddlewareConfig.Companion_Default___.E(_dafny.SeqOfString("UpdateItems response contains signed attributes, but does not include the entire item which is required for verification."))) + if (_3_valueOrError0).IsFailure() { + output = (_3_valueOrError0).PropagateFailure() + return output + } + output = m_Wrappers.Companion_Result_.Create_Success_(m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_UpdateItemOutputTransformOutput_.Create_UpdateItemOutputTransformOutput_((input).Dtor_sdkOutput())) + return output + } + var _5_decryptRes m_Wrappers.Result + _ = _5_decryptRes + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = ((_1_tableConfig).Dtor_itemEncryptor()).DecryptItem(m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Companion_DecryptItemInput_.Create_DecryptItemInput_(_2_attributes)) + _5_decryptRes = _out0 + var _6_valueOrError1 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Companion_DecryptItemOutput_.Default()) + _ = _6_valueOrError1 + _6_valueOrError1 = m_DdbMiddlewareConfig.Companion_Default___.MapError(_5_decryptRes) + if (_6_valueOrError1).IsFailure() { + output = (_6_valueOrError1).PropagateFailure() + return output + } + var _7_decrypted m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.DecryptItemOutput + _ = _7_decrypted + _7_decrypted = (_6_valueOrError1).Extract().(m_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.DecryptItemOutput) + var _8_valueOrError2 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptyMap) + _ = _8_valueOrError2 + _8_valueOrError2 = m_DynamoDbMiddlewareSupport.Companion_Default___.RemoveBeacons(_1_tableConfig, (_7_decrypted).Dtor_plaintextItem()) + if (_8_valueOrError2).IsFailure() { + output = (_8_valueOrError2).PropagateFailure() + return output + } + var _9_item _dafny.Map + _ = _9_item + _9_item = (_8_valueOrError2).Extract().(_dafny.Map) + var _pat_let_tv0 = _9_item + _ = _pat_let_tv0 + output = m_Wrappers.Companion_Result_.Create_Success_(m_AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_UpdateItemOutputTransformOutput_.Create_UpdateItemOutputTransformOutput_(func(_pat_let29_0 m_ComAmazonawsDynamodbTypes.UpdateItemOutput) m_ComAmazonawsDynamodbTypes.UpdateItemOutput { + return func(_10_dt__update__tmp_h0 m_ComAmazonawsDynamodbTypes.UpdateItemOutput) m_ComAmazonawsDynamodbTypes.UpdateItemOutput { + return func(_pat_let30_0 m_Wrappers.Option) m_ComAmazonawsDynamodbTypes.UpdateItemOutput { + return func(_11_dt__update_hAttributes_h0 m_Wrappers.Option) m_ComAmazonawsDynamodbTypes.UpdateItemOutput { + return m_ComAmazonawsDynamodbTypes.Companion_UpdateItemOutput_.Create_UpdateItemOutput_(_11_dt__update_hAttributes_h0, (_10_dt__update__tmp_h0).Dtor_ConsumedCapacity(), (_10_dt__update__tmp_h0).Dtor_ItemCollectionMetrics()) + }(_pat_let30_0) + }(m_Wrappers.Companion_Option_.Create_Some_(_pat_let_tv0)) + }(_pat_let29_0) + }((input).Dtor_sdkOutput()))) + return output + return output +} + +// End of class Default__ diff --git a/customer-preview/ddb-esdk/awscryptographydbencryptionsdkdynamodbitemencryptorsmithygenerated/api_client.go b/customer-preview/ddb-esdk/awscryptographydbencryptionsdkdynamodbitemencryptorsmithygenerated/api_client.go new file mode 100644 index 000000000..2a274b289 --- /dev/null +++ b/customer-preview/ddb-esdk/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/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes" + "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbItemEncryptor" + "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/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/customer-preview/ddb-esdk/awscryptographydbencryptionsdkdynamodbitemencryptorsmithygenerated/to_dafny.go b/customer-preview/ddb-esdk/awscryptographydbencryptionsdkdynamodbitemencryptorsmithygenerated/to_dafny.go new file mode 100644 index 000000000..a9231b7b4 --- /dev/null +++ b/customer-preview/ddb-esdk/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/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes" + "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbTypes" + "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/awscryptographydbencryptionsdkdynamodbitemencryptorsmithygeneratedtypes" + "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/awscryptographydbencryptionsdkdynamodbsmithygenerated" + "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes" + "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/awscryptographydbencryptionsdkstructuredencryptionsmithygenerated" + "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/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) + 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) + 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/customer-preview/ddb-esdk/awscryptographydbencryptionsdkdynamodbitemencryptorsmithygenerated/to_native.go b/customer-preview/ddb-esdk/awscryptographydbencryptionsdkdynamodbitemencryptorsmithygenerated/to_native.go new file mode 100644 index 000000000..01aa71040 --- /dev/null +++ b/customer-preview/ddb-esdk/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/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes" + "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbTypes" + "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/awscryptographydbencryptionsdkdynamodbitemencryptorsmithygeneratedtypes" + "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/awscryptographydbencryptionsdkdynamodbsmithygenerated" + "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes" + "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/awscryptographydbencryptionsdkstructuredencryptionsmithygenerated" + "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/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/customer-preview/ddb-esdk/awscryptographydbencryptionsdkdynamodbitemencryptorsmithygeneratedtypes/errors.go b/customer-preview/ddb-esdk/awscryptographydbencryptionsdkdynamodbitemencryptorsmithygeneratedtypes/errors.go new file mode 100644 index 000000000..7dbd6b99e --- /dev/null +++ b/customer-preview/ddb-esdk/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/customer-preview/ddb-esdk/awscryptographydbencryptionsdkdynamodbitemencryptorsmithygeneratedtypes/types.go b/customer-preview/ddb-esdk/awscryptographydbencryptionsdkdynamodbitemencryptorsmithygeneratedtypes/types.go new file mode 100644 index 000000000..82cafc46d --- /dev/null +++ b/customer-preview/ddb-esdk/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/releases/go/ddb-esdk/awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes" + "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/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/customer-preview/ddb-esdk/awscryptographydbencryptionsdkdynamodbitemencryptorsmithygeneratedtypes/unmodelled_errors.go b/customer-preview/ddb-esdk/awscryptographydbencryptionsdkdynamodbitemencryptorsmithygeneratedtypes/unmodelled_errors.go new file mode 100644 index 000000000..e6a12a0b3 --- /dev/null +++ b/customer-preview/ddb-esdk/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/customer-preview/ddb-esdk/awscryptographydbencryptionsdkdynamodbsmithygenerated/DynamoDbKeyBranchKeyIdSupplier.go b/customer-preview/ddb-esdk/awscryptographydbencryptionsdkdynamodbsmithygenerated/DynamoDbKeyBranchKeyIdSupplier.go new file mode 100644 index 000000000..1988fdea6 --- /dev/null +++ b/customer-preview/ddb-esdk/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/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbTypes" + "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/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/customer-preview/ddb-esdk/awscryptographydbencryptionsdkdynamodbsmithygenerated/DynamoDbKeyBranchKeyIdSupplierNativeWrapper.go b/customer-preview/ddb-esdk/awscryptographydbencryptionsdkdynamodbsmithygenerated/DynamoDbKeyBranchKeyIdSupplierNativeWrapper.go new file mode 100644 index 000000000..acee1336e --- /dev/null +++ b/customer-preview/ddb-esdk/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/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbTypes" + "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/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/customer-preview/ddb-esdk/awscryptographydbencryptionsdkdynamodbsmithygenerated/LegacyDynamoDbEncryptor.go b/customer-preview/ddb-esdk/awscryptographydbencryptionsdkdynamodbsmithygenerated/LegacyDynamoDbEncryptor.go new file mode 100644 index 000000000..f6451cc12 --- /dev/null +++ b/customer-preview/ddb-esdk/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/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbTypes" +) + +type LegacyDynamoDbEncryptor struct { + Impl AwsCryptographyDbEncryptionSdkDynamoDbTypes.ILegacyDynamoDbEncryptor +} diff --git a/customer-preview/ddb-esdk/awscryptographydbencryptionsdkdynamodbsmithygenerated/LegacyDynamoDbEncryptorNativeWrapper.go b/customer-preview/ddb-esdk/awscryptographydbencryptionsdkdynamodbsmithygenerated/LegacyDynamoDbEncryptorNativeWrapper.go new file mode 100644 index 000000000..e2cad50de --- /dev/null +++ b/customer-preview/ddb-esdk/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/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbTypes" + "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes" +) + +type LegacyDynamoDbEncryptorNativeWrapper struct { + AwsCryptographyDbEncryptionSdkDynamoDbTypes.ILegacyDynamoDbEncryptor + Impl awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.ILegacyDynamoDbEncryptor +} diff --git a/customer-preview/ddb-esdk/awscryptographydbencryptionsdkdynamodbsmithygenerated/api_client.go b/customer-preview/ddb-esdk/awscryptographydbencryptionsdkdynamodbsmithygenerated/api_client.go new file mode 100644 index 000000000..cb1cb55b9 --- /dev/null +++ b/customer-preview/ddb-esdk/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/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbTypes" + "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbEncryption" + "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/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/customer-preview/ddb-esdk/awscryptographydbencryptionsdkdynamodbsmithygenerated/to_dafny.go b/customer-preview/ddb-esdk/awscryptographydbencryptionsdkdynamodbsmithygenerated/to_dafny.go new file mode 100644 index 000000000..2502c8c5e --- /dev/null +++ b/customer-preview/ddb-esdk/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/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbTypes" + "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes" + "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes" + "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/awscryptographydbencryptionsdkstructuredencryptionsmithygenerated" + "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/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 { + var v []interface{} + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + for _, e := range input { + v = append(v, e) + } + return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(v...)) + }() +} + +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) + 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) + 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) + 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) + 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) + 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) + 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) + 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) + 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) + 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) + 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) + 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) + 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) + 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) + 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/customer-preview/ddb-esdk/awscryptographydbencryptionsdkdynamodbsmithygenerated/to_native.go b/customer-preview/ddb-esdk/awscryptographydbencryptionsdkdynamodbsmithygenerated/to_native.go new file mode 100644 index 000000000..806ca0433 --- /dev/null +++ b/customer-preview/ddb-esdk/awscryptographydbencryptionsdkdynamodbsmithygenerated/to_native.go @@ -0,0 +1,1661 @@ +// 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/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbTypes" + "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes" + "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes" + "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/awscryptographydbencryptionsdkstructuredencryptionsmithygenerated" + "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/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 { + b := []byte{} + if input == nil { + return nil + } + for i := dafny.Iterate(input); ; { + val, ok := i() + if !ok { + return b + } else { + b = append(b, val.(byte)) + } + } + }() +} +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/customer-preview/ddb-esdk/awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes/enums.go b/customer-preview/ddb-esdk/awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes/enums.go new file mode 100644 index 000000000..53b10ce6b --- /dev/null +++ b/customer-preview/ddb-esdk/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/customer-preview/ddb-esdk/awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes/errors.go b/customer-preview/ddb-esdk/awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes/errors.go new file mode 100644 index 000000000..777cb6302 --- /dev/null +++ b/customer-preview/ddb-esdk/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/customer-preview/ddb-esdk/awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes/types.go b/customer-preview/ddb-esdk/awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes/types.go new file mode 100644 index 000000000..0b19c43a5 --- /dev/null +++ b/customer-preview/ddb-esdk/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/releases/go/ddb-esdk/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/customer-preview/ddb-esdk/awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes/unmodelled_errors.go b/customer-preview/ddb-esdk/awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes/unmodelled_errors.go new file mode 100644 index 000000000..d7d920e5f --- /dev/null +++ b/customer-preview/ddb-esdk/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/customer-preview/ddb-esdk/awscryptographydbencryptionsdkdynamodbtransformssmithygenerated/api_client.go b/customer-preview/ddb-esdk/awscryptographydbencryptionsdkdynamodbtransformssmithygenerated/api_client.go new file mode 100644 index 000000000..fe36d8021 --- /dev/null +++ b/customer-preview/ddb-esdk/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/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes" + "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/DynamoDbEncryptionTransforms" + "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/awscryptographydbencryptionsdkdynamodbsmithygenerated" + "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes" + "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/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/customer-preview/ddb-esdk/awscryptographydbencryptionsdkdynamodbtransformssmithygenerated/to_dafny.go b/customer-preview/ddb-esdk/awscryptographydbencryptionsdkdynamodbtransformssmithygenerated/to_dafny.go new file mode 100644 index 000000000..d2228f8bb --- /dev/null +++ b/customer-preview/ddb-esdk/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/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes" + "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/awscryptographydbencryptionsdkdynamodbitemencryptorsmithygenerated" + "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/awscryptographydbencryptionsdkdynamodbitemencryptorsmithygeneratedtypes" + "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/awscryptographydbencryptionsdkdynamodbsmithygenerated" + "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes" + "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes" + "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/awscryptographydbencryptionsdkstructuredencryptionsmithygenerated" + "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/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/customer-preview/ddb-esdk/awscryptographydbencryptionsdkdynamodbtransformssmithygenerated/to_native.go b/customer-preview/ddb-esdk/awscryptographydbencryptionsdkdynamodbtransformssmithygenerated/to_native.go new file mode 100644 index 000000000..ebbfb597a --- /dev/null +++ b/customer-preview/ddb-esdk/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/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes" + "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/awscryptographydbencryptionsdkdynamodbitemencryptorsmithygenerated" + "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/awscryptographydbencryptionsdkdynamodbsmithygenerated" + "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes" + "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/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/customer-preview/ddb-esdk/awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes/errors.go b/customer-preview/ddb-esdk/awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes/errors.go new file mode 100644 index 000000000..c827f8620 --- /dev/null +++ b/customer-preview/ddb-esdk/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/customer-preview/ddb-esdk/awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes/types.go b/customer-preview/ddb-esdk/awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes/types.go new file mode 100644 index 000000000..55c7f111b --- /dev/null +++ b/customer-preview/ddb-esdk/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/customer-preview/ddb-esdk/awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes/unmodelled_errors.go b/customer-preview/ddb-esdk/awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes/unmodelled_errors.go new file mode 100644 index 000000000..5b0d77454 --- /dev/null +++ b/customer-preview/ddb-esdk/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/customer-preview/ddb-esdk/awscryptographydbencryptionsdkstructuredencryptionsmithygenerated/api_client.go b/customer-preview/ddb-esdk/awscryptographydbencryptionsdkstructuredencryptionsmithygenerated/api_client.go new file mode 100644 index 000000000..daa1e7197 --- /dev/null +++ b/customer-preview/ddb-esdk/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/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes" + "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/StructuredEncryption" + "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/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/customer-preview/ddb-esdk/awscryptographydbencryptionsdkstructuredencryptionsmithygenerated/to_dafny.go b/customer-preview/ddb-esdk/awscryptographydbencryptionsdkstructuredencryptionsmithygenerated/to_dafny.go new file mode 100644 index 000000000..e1e418f48 --- /dev/null +++ b/customer-preview/ddb-esdk/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/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes" + "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/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) + 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) + 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 { + var v []interface{} + if input == nil { + return nil + } + for _, e := range input { + v = append(v, e) + } + return dafny.SeqOf(v...) + }() +} + +func Aws_cryptography_dbEncryptionSdk_structuredEncryption_StructuredDataTerminal_typeId_ToDafny(input []byte) dafny.Sequence { + return func() dafny.Sequence { + var v []interface{} + if input == nil { + return nil + } + for _, e := range input { + v = append(v, e) + } + return dafny.SeqOf(v...) + }() +} + +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) + 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) + 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) + 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) + 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) + 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) + 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 { + var v []interface{} + if input == nil { + return nil + } + for _, e := range input { + v = append(v, e) + } + return dafny.SeqOf(v...) + }() +} + +func Aws_cryptography_dbEncryptionSdk_structuredEncryption_ResolveAuthActionsOutput_cryptoActions_ToDafny(input []awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.CryptoItem) dafny.Sequence { + return func() dafny.Sequence { + + var fieldValue []interface{} = make([]interface{}, 0) + 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/customer-preview/ddb-esdk/awscryptographydbencryptionsdkstructuredencryptionsmithygenerated/to_native.go b/customer-preview/ddb-esdk/awscryptographydbencryptionsdkstructuredencryptionsmithygenerated/to_native.go new file mode 100644 index 000000000..4a3a3407c --- /dev/null +++ b/customer-preview/ddb-esdk/awscryptographydbencryptionsdkstructuredencryptionsmithygenerated/to_native.go @@ -0,0 +1,817 @@ +// 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/releases/go/ddb-esdk/AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes" + "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/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 { + b := []byte{} + if input == nil { + return nil + } + for i := dafny.Iterate(input); ; { + val, ok := i() + if !ok { + return b + } else { + b = append(b, val.(byte)) + } + } + }() +} +func Aws_cryptography_dbEncryptionSdk_structuredEncryption_StructuredDataTerminal_typeId_FromDafny(input interface{}) []byte { + return func() []byte { + b := []byte{} + if input == nil { + return nil + } + for i := dafny.Iterate(input); ; { + val, ok := i() + if !ok { + return b + } else { + b = append(b, val.(byte)) + } + } + }() +} +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 { + b := []byte{} + if input == nil { + return nil + } + for i := dafny.Iterate(input); ; { + val, ok := i() + if !ok { + return b + } else { + b = append(b, val.(byte)) + } + } + }() +} +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/customer-preview/ddb-esdk/awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes/enums.go b/customer-preview/ddb-esdk/awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes/enums.go new file mode 100644 index 000000000..bf38d1e83 --- /dev/null +++ b/customer-preview/ddb-esdk/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/customer-preview/ddb-esdk/awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes/errors.go b/customer-preview/ddb-esdk/awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes/errors.go new file mode 100644 index 000000000..ba37c71a0 --- /dev/null +++ b/customer-preview/ddb-esdk/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/customer-preview/ddb-esdk/awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes/types.go b/customer-preview/ddb-esdk/awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes/types.go new file mode 100644 index 000000000..2401b2204 --- /dev/null +++ b/customer-preview/ddb-esdk/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/customer-preview/ddb-esdk/awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes/unmodelled_errors.go b/customer-preview/ddb-esdk/awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes/unmodelled_errors.go new file mode 100644 index 000000000..43a2adee7 --- /dev/null +++ b/customer-preview/ddb-esdk/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/customer-preview/ddb-esdk/dbesdkmiddleware/middleware.go b/customer-preview/ddb-esdk/dbesdkmiddleware/middleware.go new file mode 100644 index 000000000..f826c866b --- /dev/null +++ b/customer-preview/ddb-esdk/dbesdkmiddleware/middleware.go @@ -0,0 +1,319 @@ +package dbesdkmiddleware + +import ( + "context" + + "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes" + "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/awscryptographydbencryptionsdkdynamodbtransformssmithygenerated" + "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes" + "github.com/aws/aws-sdk-go-v2/service/dynamodb" + "github.com/aws/smithy-go/middleware" +) + +type DBEsdkMiddleware struct { + client *awscryptographydbencryptionsdkdynamodbtransformssmithygenerated.Client +} + +func NewDBEsdkMiddleware(config awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.DynamoDbTablesEncryptionConfig) (*DBEsdkMiddleware, error) { + client, err := awscryptographydbencryptionsdkdynamodbtransformssmithygenerated.NewClient(config) + if err != nil { + return nil, err + } + return &DBEsdkMiddleware{ + client: client, + }, nil +} + +func (m DBEsdkMiddleware) CreateMiddleware() func(options *dynamodb.Options) { + return func(options *dynamodb.Options) { + options.APIOptions = append(options.APIOptions, func(stack *middleware.Stack) error { + // Add request interceptor at the beginning of Initialize step + requestIntercetor := m.createRequestInterceptor() + if err := stack.Initialize.Add(requestIntercetor, middleware.Before); err != nil { + return err + } + // Add response interceptor at the end of Finalize step + return stack.Finalize.Add(m.createResponseInterceptor(), middleware.After) + }) + } +} + +func (m DBEsdkMiddleware) createRequestInterceptor() middleware.InitializeMiddleware { + return middleware.InitializeMiddlewareFunc("RequestInterceptor", func( + ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler, + ) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, + ) { + ctx, err = m.handleRequestInterception(ctx, in.Parameters) + if err != nil { + return middleware.InitializeOutput{}, middleware.Metadata{}, err + } + return next.HandleInitialize(ctx, in) + }) +} + +// handleRequestInterception handles the interception logic before the DynamoDB operation +func (m DBEsdkMiddleware) handleRequestInterception(ctx context.Context, request interface{}) (context.Context, error) { + switch v := request.(type) { + case *dynamodb.PutItemInput: + ctx = middleware.WithStackValue(ctx, "originalInput", *v) + transformedRequest, err := m.client.PutItemInputTransform(context.TODO(), awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.PutItemInputTransformInput{ + SdkInput: *v, + }) + if err != nil { + return nil, err + } + *v = transformedRequest.TransformedInput + case *dynamodb.GetItemInput: + ctx = middleware.WithStackValue(ctx, "originalInput", *v) + transformedRequest, err := m.client.GetItemInputTransform(context.TODO(), awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.GetItemInputTransformInput{ + SdkInput: *v, + }) + if err != nil { + return nil, err + } + *v = transformedRequest.TransformedInput + case *dynamodb.BatchGetItemInput: + ctx = middleware.WithStackValue(ctx, "originalInput", *v) + transformedRequest, err := m.client.BatchGetItemInputTransform(context.TODO(), awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.BatchGetItemInputTransformInput{ + SdkInput: *v, + }) + if err != nil { + return nil, err + } + *v = transformedRequest.TransformedInput + case *dynamodb.BatchWriteItemInput: + ctx = middleware.WithStackValue(ctx, "originalInput", *v) + transformedRequest, err := m.client.BatchWriteItemInputTransform(context.TODO(), awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.BatchWriteItemInputTransformInput{ + SdkInput: *v, + }) + if err != nil { + return nil, err + } + *v = transformedRequest.TransformedInput + case *dynamodb.BatchExecuteStatementInput: + ctx = middleware.WithStackValue(ctx, "originalInput", *v) + transformedRequest, err := m.client.BatchExecuteStatementInputTransform(context.TODO(), awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.BatchExecuteStatementInputTransformInput{ + SdkInput: *v, + }) + if err != nil { + return nil, err + } + *v = transformedRequest.TransformedInput + case *dynamodb.DeleteItemInput: + ctx = middleware.WithStackValue(ctx, "originalInput", *v) + transformedRequest, err := m.client.DeleteItemInputTransform(context.TODO(), awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.DeleteItemInputTransformInput{ + SdkInput: *v, + }) + if err != nil { + return nil, err + } + *v = transformedRequest.TransformedInput + case *dynamodb.ExecuteStatementInput: + ctx = middleware.WithStackValue(ctx, "originalInput", *v) + transformedRequest, err := m.client.ExecuteStatementInputTransform(context.TODO(), awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.ExecuteStatementInputTransformInput{ + SdkInput: *v, + }) + if err != nil { + return nil, err + } + *v = transformedRequest.TransformedInput + case *dynamodb.ExecuteTransactionInput: + ctx = middleware.WithStackValue(ctx, "originalInput", *v) + transformedRequest, err := m.client.ExecuteTransactionInputTransform(context.TODO(), awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.ExecuteTransactionInputTransformInput{ + SdkInput: *v, + }) + if err != nil { + return nil, err + } + *v = transformedRequest.TransformedInput + case *dynamodb.QueryInput: + ctx = middleware.WithStackValue(ctx, "originalInput", *v) + transformedRequest, err := m.client.QueryInputTransform(context.TODO(), awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.QueryInputTransformInput{ + SdkInput: *v, + }) + if err != nil { + return nil, err + } + *v = transformedRequest.TransformedInput + case *dynamodb.ScanInput: + ctx = middleware.WithStackValue(ctx, "originalInput", *v) + transformedRequest, err := m.client.ScanInputTransform(context.TODO(), awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.ScanInputTransformInput{ + SdkInput: *v, + }) + if err != nil { + return nil, err + } + *v = transformedRequest.TransformedInput + case *dynamodb.TransactGetItemsInput: + ctx = middleware.WithStackValue(ctx, "originalInput", *v) + transformedRequest, err := m.client.TransactGetItemsInputTransform(context.TODO(), awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.TransactGetItemsInputTransformInput{ + SdkInput: *v, + }) + if err != nil { + return nil, err + } + *v = transformedRequest.TransformedInput + case *dynamodb.TransactWriteItemsInput: + ctx = middleware.WithStackValue(ctx, "originalInput", *v) + transformedRequest, err := m.client.TransactWriteItemsInputTransform(context.TODO(), awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.TransactWriteItemsInputTransformInput{ + SdkInput: *v, + }) + if err != nil { + return nil, err + } + *v = transformedRequest.TransformedInput + case *dynamodb.UpdateItemInput: + ctx = middleware.WithStackValue(ctx, "originalInput", *v) + transformedRequest, err := m.client.UpdateItemInputTransform(context.TODO(), awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.UpdateItemInputTransformInput{ + SdkInput: *v, + }) + if err != nil { + return nil, err + } + *v = transformedRequest.TransformedInput + } + return ctx, nil +} + +// createResponseInterceptor creates and returns the middleware interceptor for responses +func (m DBEsdkMiddleware) createResponseInterceptor() middleware.FinalizeMiddleware { + return middleware.FinalizeMiddlewareFunc("ResponseInterceptor", func( + ctx context.Context, in middleware.FinalizeInput, next middleware.FinalizeHandler, + ) ( + out middleware.FinalizeOutput, metadata middleware.Metadata, err error, + ) { + // First let the request complete + result, metadata, err := next.HandleFinalize(ctx, in) + if err != nil { + return result, metadata, err + } + // Then intercept the response + err = m.handleResponseInterception(ctx, result.Result) + return result, metadata, err + }) +} + +// handleResponseInterception handles the interception logic after the DynamoDB operation +func (m DBEsdkMiddleware) handleResponseInterception(ctx context.Context, response interface{}) error { + switch v := response.(type) { + case *dynamodb.PutItemOutput: + transformedRequest, err := m.client.PutItemOutputTransform(context.TODO(), awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.PutItemOutputTransformInput{ + OriginalInput: middleware.GetStackValue(ctx, "originalInput").(dynamodb.PutItemInput), + SdkOutput: *v, + }) + if err != nil { + return err + } + *v = transformedRequest.TransformedOutput + case *dynamodb.GetItemOutput: + transformedRequest, err := m.client.GetItemOutputTransform(context.TODO(), awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.GetItemOutputTransformInput{ + OriginalInput: middleware.GetStackValue(ctx, "originalInput").(dynamodb.GetItemInput), + SdkOutput: *v, + }) + if err != nil { + return err + } + *v = transformedRequest.TransformedOutput + case *dynamodb.BatchGetItemOutput: + transformedRequest, err := m.client.BatchGetItemOutputTransform(context.TODO(), awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.BatchGetItemOutputTransformInput{ + OriginalInput: middleware.GetStackValue(ctx, "originalInput").(dynamodb.BatchGetItemInput), + SdkOutput: *v, + }) + if err != nil { + return err + } + *v = transformedRequest.TransformedOutput + case *dynamodb.BatchWriteItemOutput: + transformedRequest, err := m.client.BatchWriteItemOutputTransform(context.TODO(), awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.BatchWriteItemOutputTransformInput{ + OriginalInput: middleware.GetStackValue(ctx, "originalInput").(dynamodb.BatchWriteItemInput), + SdkOutput: *v, + }) + if err != nil { + return err + } + *v = transformedRequest.TransformedOutput + case *dynamodb.BatchExecuteStatementOutput: + transformedRequest, err := m.client.BatchExecuteStatementOutputTransform(context.TODO(), awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.BatchExecuteStatementOutputTransformInput{ + OriginalInput: middleware.GetStackValue(ctx, "originalInput").(dynamodb.BatchExecuteStatementInput), + SdkOutput: *v, + }) + if err != nil { + return err + } + *v = transformedRequest.TransformedOutput + case *dynamodb.DeleteItemOutput: + transformedRequest, err := m.client.DeleteItemOutputTransform(context.TODO(), awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.DeleteItemOutputTransformInput{ + OriginalInput: middleware.GetStackValue(ctx, "originalInput").(dynamodb.DeleteItemInput), + SdkOutput: *v, + }) + if err != nil { + return err + } + *v = transformedRequest.TransformedOutput + case *dynamodb.ExecuteStatementOutput: + transformedRequest, err := m.client.ExecuteStatementOutputTransform(context.TODO(), awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.ExecuteStatementOutputTransformInput{ + OriginalInput: middleware.GetStackValue(ctx, "originalInput").(dynamodb.ExecuteStatementInput), + SdkOutput: *v, + }) + if err != nil { + return err + } + *v = transformedRequest.TransformedOutput + case *dynamodb.ExecuteTransactionOutput: + transformedRequest, err := m.client.ExecuteTransactionOutputTransform(context.TODO(), awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.ExecuteTransactionOutputTransformInput{ + OriginalInput: middleware.GetStackValue(ctx, "originalInput").(dynamodb.ExecuteTransactionInput), + SdkOutput: *v, + }) + if err != nil { + return err + } + *v = transformedRequest.TransformedOutput + case *dynamodb.QueryOutput: + transformedRequest, err := m.client.QueryOutputTransform(context.TODO(), awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.QueryOutputTransformInput{ + OriginalInput: middleware.GetStackValue(ctx, "originalInput").(dynamodb.QueryInput), + SdkOutput: *v, + }) + if err != nil { + return err + } + *v = transformedRequest.TransformedOutput + case *dynamodb.ScanOutput: + transformedRequest, err := m.client.ScanOutputTransform(context.TODO(), awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.ScanOutputTransformInput{ + OriginalInput: middleware.GetStackValue(ctx, "originalInput").(dynamodb.ScanInput), + SdkOutput: *v, + }) + if err != nil { + return err + } + *v = transformedRequest.TransformedOutput + case *dynamodb.TransactGetItemsOutput: + transformedRequest, err := m.client.TransactGetItemsOutputTransform(context.TODO(), awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.TransactGetItemsOutputTransformInput{ + OriginalInput: middleware.GetStackValue(ctx, "originalInput").(dynamodb.TransactGetItemsInput), + SdkOutput: *v, + }) + if err != nil { + return err + } + *v = transformedRequest.TransformedOutput + case *dynamodb.TransactWriteItemsOutput: + transformedRequest, err := m.client.TransactWriteItemsOutputTransform(context.TODO(), awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.TransactWriteItemsOutputTransformInput{ + OriginalInput: middleware.GetStackValue(ctx, "originalInput").(dynamodb.TransactWriteItemsInput), + SdkOutput: *v, + }) + if err != nil { + return err + } + *v = transformedRequest.TransformedOutput + case *dynamodb.UpdateItemOutput: + transformedRequest, err := m.client.UpdateItemOutputTransform(context.TODO(), awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.UpdateItemOutputTransformInput{ + OriginalInput: middleware.GetStackValue(ctx, "originalInput").(dynamodb.UpdateItemInput), + SdkOutput: *v, + }) + if err != nil { + return err + } + *v = transformedRequest.TransformedOutput + } + return nil +} diff --git a/customer-preview/ddb-esdk/go.mod b/customer-preview/ddb-esdk/go.mod new file mode 100644 index 000000000..43d5cab09 --- /dev/null +++ b/customer-preview/ddb-esdk/go.mod @@ -0,0 +1,40 @@ +module github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk + +go 1.23.2 + +replace ( + github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb => ../dynamodb/ + github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms => ../kms/ + github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl => ../mpl/ + github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives => ../primitives/ +) + +require ( + github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb v0.0.0 + github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms v0.0.0 + github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl v0.0.0 + github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives v0.0.0 + github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library v0.2.0 + github.com/aws/aws-sdk-go-v2/service/dynamodb v1.39.2 + github.com/aws/smithy-go v1.22.1 + github.com/dafny-lang/DafnyRuntimeGo/v4 v4.9.2 +) + +require ( + github.com/aws/aws-sdk-go-v2 v1.32.8 // indirect + github.com/aws/aws-sdk-go-v2/config v1.28.10 // indirect + github.com/aws/aws-sdk-go-v2/credentials v1.17.51 // indirect + github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.23 // indirect + github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.27 // indirect + github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.27 // indirect + github.com/aws/aws-sdk-go-v2/internal/ini v1.8.1 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.1 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/endpoint-discovery v1.10.8 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.8 // indirect + github.com/aws/aws-sdk-go-v2/service/kms v1.36.0 // indirect + github.com/aws/aws-sdk-go-v2/service/sso v1.24.9 // indirect + github.com/aws/aws-sdk-go-v2/service/ssooidc v1.28.8 // indirect + github.com/aws/aws-sdk-go-v2/service/sts v1.33.6 // indirect + github.com/google/uuid v1.6.0 // indirect + github.com/jmespath/go-jmespath v0.4.0 // indirect +) diff --git a/customer-preview/ddb-esdk/go.sum b/customer-preview/ddb-esdk/go.sum new file mode 100644 index 000000000..e34f1fe40 --- /dev/null +++ b/customer-preview/ddb-esdk/go.sum @@ -0,0 +1,50 @@ +github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library v0.2.0 h1:NhVxn86bWyWc/uOnE+oTikZdj75yOW6kMCfZNBf2x5E= +github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library v0.2.0/go.mod h1:m3mzHKiNiSC0LWeWX6ZAxSe6mKbJHgliux1Yu/sjCYI= +github.com/aws/aws-sdk-go-v2 v1.32.8 h1:cZV+NUS/eGxKXMtmyhtYPJ7Z4YLoI/V8bkTdRZfYhGo= +github.com/aws/aws-sdk-go-v2 v1.32.8/go.mod h1:P5WJBrYqqbWVaOxgH0X/FYYD47/nooaPOZPlQdmiN2U= +github.com/aws/aws-sdk-go-v2/config v1.28.10 h1:fKODZHfqQu06pCzR69KJ3GuttraRJkhlC8g80RZ0Dfg= +github.com/aws/aws-sdk-go-v2/config v1.28.10/go.mod h1:PvdxRYZ5Um9QMq9PQ0zHHNdtKK+he2NHtFCUFMXWXeg= +github.com/aws/aws-sdk-go-v2/credentials v1.17.51 h1:F/9Sm6Y6k4LqDesZDPJCLxQGXNNHd/ZtJiWd0lCZKRk= +github.com/aws/aws-sdk-go-v2/credentials v1.17.51/go.mod h1:TKbzCHm43AoPyA+iLGGcruXd4AFhF8tOmLex2R9jWNQ= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.23 h1:IBAoD/1d8A8/1aA8g4MBVtTRHhXRiNAgwdbo/xRM2DI= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.23/go.mod h1:vfENuCM7dofkgKpYzuzf1VT1UKkA/YL3qanfBn7HCaA= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.27 h1:jSJjSBzw8VDIbWv+mmvBSP8ezsztMYJGH+eKqi9AmNs= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.27/go.mod h1:/DAhLbFRgwhmvJdOfSm+WwikZrCuUJiA4WgJG0fTNSw= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.27 h1:l+X4K77Dui85pIj5foXDhPlnqcNRG2QUyvca300lXh8= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.27/go.mod h1:KvZXSFEXm6x84yE8qffKvT3x8J5clWnVFXphpohhzJ8= +github.com/aws/aws-sdk-go-v2/internal/ini v1.8.1 h1:VaRN3TlFdd6KxX1x3ILT5ynH6HvKgqdiXoTxAF4HQcQ= +github.com/aws/aws-sdk-go-v2/internal/ini v1.8.1/go.mod h1:FbtygfRFze9usAadmnGJNc8KsP346kEe+y2/oyhGAGc= +github.com/aws/aws-sdk-go-v2/service/dynamodb v1.39.2 h1:XcdIh35yg1J8bAiUOLtL/PoPMSGsD72Zanwmim8jEXc= +github.com/aws/aws-sdk-go-v2/service/dynamodb v1.39.2/go.mod h1:516U/KQM3zdcahNBjHUZKGWNfNnIYyt7sxLeqOx78b0= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.1 h1:iXtILhvDxB6kPvEXgsDhGaZCSC6LQET5ZHSdJozeI0Y= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.1/go.mod h1:9nu0fVANtYiAePIBh2/pFUSwtJ402hLnp854CNoDOeE= +github.com/aws/aws-sdk-go-v2/service/internal/endpoint-discovery v1.10.8 h1:h56mLNgpqWIL7RZOIQO634Xr569bXGTlIE83t/a0LSE= +github.com/aws/aws-sdk-go-v2/service/internal/endpoint-discovery v1.10.8/go.mod h1:kK04550Xx95KI0sNmwoB7ciS9QkRwt9TojhoTMXyJdo= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.8 h1:cWno7lefSH6Pp+mSznagKCgfDGeZRin66UvYUqAkyeA= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.8/go.mod h1:tPD+VjU3ABTBoEJ3nctu5Nyg4P4yjqSH5bJGGkY4+XE= +github.com/aws/aws-sdk-go-v2/service/kms v1.36.0 h1:jwWMpQ/1obJRdHaix9k10zWSnSMZGdDTZIDiS5CGzq8= +github.com/aws/aws-sdk-go-v2/service/kms v1.36.0/go.mod h1:OHmlX4+o0XIlJAQGAHPIy0N9yZcYS/vNG+T7geSNcFw= +github.com/aws/aws-sdk-go-v2/service/sso v1.24.9 h1:YqtxripbjWb2QLyzRK9pByfEDvgg95gpC2AyDq4hFE8= +github.com/aws/aws-sdk-go-v2/service/sso v1.24.9/go.mod h1:lV8iQpg6OLOfBnqbGMBKYjilBlf633qwHnBEiMSPoHY= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.28.8 h1:6dBT1Lz8fK11m22R+AqfRsFn8320K0T5DTGxxOQBSMw= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.28.8/go.mod h1:/kiBvRQXBc6xeJTYzhSdGvJ5vm1tjaDEjH+MSeRJnlY= +github.com/aws/aws-sdk-go-v2/service/sts v1.33.6 h1:VwhTrsTuVn52an4mXx29PqRzs2Dvu921NpGk7y43tAM= +github.com/aws/aws-sdk-go-v2/service/sts v1.33.6/go.mod h1:+8h7PZb3yY5ftmVLD7ocEoE98hdc8PoKS0H3wfx1dlc= +github.com/aws/smithy-go v1.22.1 h1:/HPHZQ0g7f4eUeK6HKglFz8uwVfZKgoI25rb/J+dnro= +github.com/aws/smithy-go v1.22.1/go.mod h1:irrKGvNn1InZwb2d7fkIRNucdfwR8R+Ts3wxYa/cJHg= +github.com/dafny-lang/DafnyRuntimeGo/v4 v4.9.2 h1:g/xAj4F7Zt9wXJ6QjfbfocVi/ZYlAFpNddHCFyfzRDg= +github.com/dafny-lang/DafnyRuntimeGo/v4 v4.9.2/go.mod h1:l2Tm4N2DKuq3ljONC2vOATeM9PUpXbIc8SgXdwwqEto= +github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8= +github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= +github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/jmespath/go-jmespath v0.4.0 h1:BEgLn5cpjn8UN1mAw4NjwDrS35OdebyEtFe+9YPoQUg= +github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo= +github.com/jmespath/go-jmespath/internal/testify v1.5.1 h1:shLQSRRSCCPj3f2gpwzGwWFoC7ycTf1rcQZHOlsJ6N8= +github.com/jmespath/go-jmespath/internal/testify v1.5.1/go.mod h1:L3OGu8Wl2/fWfCI6z80xFu9LTZmf1ZRjMHUOPmWr69U= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/yaml.v2 v2.2.8 h1:obN1ZagJSUGI0Ek/LBmuj4SNLPfIny3KsKFopxRdj10= +gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= diff --git a/customer-preview/dynamodb/ComAmazonawsDynamodbTypes/ComAmazonawsDynamodbTypes.go b/customer-preview/dynamodb/ComAmazonawsDynamodbTypes/ComAmazonawsDynamodbTypes.go new file mode 100644 index 000000000..2011ef291 --- /dev/null +++ b/customer-preview/dynamodb/ComAmazonawsDynamodbTypes/ComAmazonawsDynamodbTypes.go @@ -0,0 +1,35767 @@ +// Package ComAmazonawsDynamodbTypes +// Dafny module ComAmazonawsDynamodbTypes compiled into Go + +package ComAmazonawsDynamodbTypes + +import ( + os "os" + + m_Actions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Actions" + m_Base64 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64" + m_Base64Lemmas "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64Lemmas" + m_BoundedInts "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/BoundedInts" + m_DivInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternals" + m_DivInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternalsNonlinear" + m_DivMod "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivMod" + m_FileIO "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FileIO" + m_FloatCompare "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FloatCompare" + m_Functions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Functions" + m_GeneralInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GeneralInternals" + m_GetOpt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GetOpt" + m_HexStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/HexStrings" + m_Logarithm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Logarithm" + m__Math "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Math_" + m_ModInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternals" + m_ModInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternalsNonlinear" + m_Mul "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Mul" + m_MulInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternals" + m_MulInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternalsNonlinear" + m_Power "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Power" + m_Relations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Relations" + m_Seq "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq" + m_Seq_MergeSort "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq_MergeSort" + m_Sorting "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Sorting" + m_StandardLibrary "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary" + m_StandardLibraryInterop "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibraryInterop" + m_StandardLibrary_Sequence "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_Sequence" + m_StandardLibrary_String "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_String" + m_StandardLibrary_UInt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_UInt" + m_Streams "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Streams" + m_UnicodeStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UnicodeStrings" + m__Unicode "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Unicode_" + m_Utf16EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf16EncodingForm" + m_Utf8EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf8EncodingForm" + m_Wrappers "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers" + m__System "github.com/dafny-lang/DafnyRuntimeGo/v4/System_" + _dafny "github.com/dafny-lang/DafnyRuntimeGo/v4/dafny" +) + +var _ = os.Args +var _ _dafny.Dummy__ +var _ m__System.Dummy__ +var _ m_Wrappers.Dummy__ +var _ m_Relations.Dummy__ +var _ m_Seq_MergeSort.Dummy__ +var _ m__Math.Dummy__ +var _ m_Seq.Dummy__ +var _ m_BoundedInts.Dummy__ +var _ m__Unicode.Dummy__ +var _ m_Functions.Dummy__ +var _ m_Utf8EncodingForm.Dummy__ +var _ m_Utf16EncodingForm.Dummy__ +var _ m_UnicodeStrings.Dummy__ +var _ m_FileIO.Dummy__ +var _ m_GeneralInternals.Dummy__ +var _ m_MulInternalsNonlinear.Dummy__ +var _ m_MulInternals.Dummy__ +var _ m_Mul.Dummy__ +var _ m_ModInternalsNonlinear.Dummy__ +var _ m_DivInternalsNonlinear.Dummy__ +var _ m_ModInternals.Dummy__ +var _ m_DivInternals.Dummy__ +var _ m_DivMod.Dummy__ +var _ m_Power.Dummy__ +var _ m_Logarithm.Dummy__ +var _ m_StandardLibraryInterop.Dummy__ +var _ m_StandardLibrary_UInt.Dummy__ +var _ m_StandardLibrary_Sequence.Dummy__ +var _ m_StandardLibrary_String.Dummy__ +var _ m_StandardLibrary.Dummy__ +var _ m_Streams.Dummy__ +var _ m_Sorting.Dummy__ +var _ m_HexStrings.Dummy__ +var _ m_GetOpt.Dummy__ +var _ m_FloatCompare.Dummy__ +var _ m_Base64.Dummy__ +var _ m_Base64Lemmas.Dummy__ +var _ m_Actions.Dummy__ + +type Dummy__ struct{} + +// Definition of class Default__ +type Default__ struct { + dummy byte +} + +func New_Default___() *Default__ { + _this := Default__{} + + return &_this +} + +type CompanionStruct_Default___ struct { +} + +var Companion_Default___ = CompanionStruct_Default___{} + +func (_this *Default__) Equals(other *Default__) bool { + return _this == other +} + +func (_this *Default__) EqualsGeneric(x interface{}) bool { + other, ok := x.(*Default__) + return ok && _this.Equals(other) +} + +func (*Default__) String() string { + return "ComAmazonawsDynamodbTypes.Default__" +} +func (_this *Default__) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = &Default__{} + +func (_static *CompanionStruct_Default___) IsValid__AttributeName(x _dafny.Sequence) bool { + return ((_dafny.IntOfUint32((x).Cardinality())).Sign() != -1) && ((_dafny.IntOfUint32((x).Cardinality())).Cmp(_dafny.IntOfInt64(65535)) <= 0) +} +func (_static *CompanionStruct_Default___) IsValid__AttributeNameList(x _dafny.Sequence) bool { + return (_dafny.One).Cmp(_dafny.IntOfUint32((x).Cardinality())) <= 0 +} +func (_static *CompanionStruct_Default___) IsValid__AutoScalingPolicyName(x _dafny.Sequence) bool { + return ((_dafny.One).Cmp(_dafny.IntOfUint32((x).Cardinality())) <= 0) && ((_dafny.IntOfUint32((x).Cardinality())).Cmp(_dafny.IntOfInt64(256)) <= 0) +} +func (_static *CompanionStruct_Default___) IsValid__AutoScalingRoleArn(x _dafny.Sequence) bool { + return ((_dafny.One).Cmp(_dafny.IntOfUint32((x).Cardinality())) <= 0) && ((_dafny.IntOfUint32((x).Cardinality())).Cmp(_dafny.IntOfInt64(1600)) <= 0) +} +func (_static *CompanionStruct_Default___) IsValid__BackupArn(x _dafny.Sequence) bool { + return ((_dafny.IntOfInt64(37)).Cmp(_dafny.IntOfUint32((x).Cardinality())) <= 0) && ((_dafny.IntOfUint32((x).Cardinality())).Cmp(_dafny.IntOfInt64(1024)) <= 0) +} +func (_static *CompanionStruct_Default___) IsValid__BackupName(x _dafny.Sequence) bool { + return ((_dafny.IntOfInt64(3)).Cmp(_dafny.IntOfUint32((x).Cardinality())) <= 0) && ((_dafny.IntOfUint32((x).Cardinality())).Cmp(_dafny.IntOfInt64(255)) <= 0) +} +func (_static *CompanionStruct_Default___) IsValid__BackupsInputLimit(x int32) bool { + return ((int32(1)) <= (x)) && ((x) <= (int32(100))) +} +func (_static *CompanionStruct_Default___) IsValid__BackupSizeBytes(x int64) bool { + return (int64(0)) <= (x) +} +func (_static *CompanionStruct_Default___) IsValid__BatchGetRequestMap(x _dafny.Map) bool { + return ((_dafny.One).Cmp((x).Cardinality()) <= 0) && (((x).Cardinality()).Cmp(_dafny.IntOfInt64(100)) <= 0) +} +func (_static *CompanionStruct_Default___) IsValid__BatchWriteItemRequestMap(x _dafny.Map) bool { + return ((_dafny.One).Cmp((x).Cardinality()) <= 0) && (((x).Cardinality()).Cmp(_dafny.IntOfInt64(25)) <= 0) +} +func (_static *CompanionStruct_Default___) IsValid__BilledSizeBytes(x int64) bool { + return (int64(0)) <= (x) +} +func (_static *CompanionStruct_Default___) IsValid__CancellationReasonList(x _dafny.Sequence) bool { + return ((_dafny.One).Cmp(_dafny.IntOfUint32((x).Cardinality())) <= 0) && ((_dafny.IntOfUint32((x).Cardinality())).Cmp(_dafny.IntOfInt64(100)) <= 0) +} +func (_static *CompanionStruct_Default___) IsValid__ClientRequestToken(x _dafny.Sequence) bool { + return ((_dafny.One).Cmp(_dafny.IntOfUint32((x).Cardinality())) <= 0) && ((_dafny.IntOfUint32((x).Cardinality())).Cmp(_dafny.IntOfInt64(36)) <= 0) +} +func (_static *CompanionStruct_Default___) IsValid__CloudWatchLogGroupArn(x _dafny.Sequence) bool { + return ((_dafny.One).Cmp(_dafny.IntOfUint32((x).Cardinality())) <= 0) && ((_dafny.IntOfUint32((x).Cardinality())).Cmp(_dafny.IntOfInt64(1024)) <= 0) +} +func (_static *CompanionStruct_Default___) IsValid__ConsumedCapacityUnits(x _dafny.Sequence) bool { + return ((_dafny.IntOfInt64(8)).Cmp(_dafny.IntOfUint32((x).Cardinality())) <= 0) && ((_dafny.IntOfUint32((x).Cardinality())).Cmp(_dafny.IntOfInt64(8)) <= 0) +} +func (_static *CompanionStruct_Default___) IsValid__CsvDelimiter(x _dafny.Sequence) bool { + return ((_dafny.One).Cmp(_dafny.IntOfUint32((x).Cardinality())) <= 0) && ((_dafny.IntOfUint32((x).Cardinality())).Cmp(_dafny.One) <= 0) +} +func (_static *CompanionStruct_Default___) IsValid__CsvHeader(x _dafny.Sequence) bool { + return ((_dafny.One).Cmp(_dafny.IntOfUint32((x).Cardinality())) <= 0) && ((_dafny.IntOfUint32((x).Cardinality())).Cmp(_dafny.IntOfInt64(65536)) <= 0) +} +func (_static *CompanionStruct_Default___) IsValid__CsvHeaderList(x _dafny.Sequence) bool { + return ((_dafny.One).Cmp(_dafny.IntOfUint32((x).Cardinality())) <= 0) && ((_dafny.IntOfUint32((x).Cardinality())).Cmp(_dafny.IntOfInt64(255)) <= 0) +} +func (_static *CompanionStruct_Default___) IsValid__DoubleObject(x _dafny.Sequence) bool { + return ((_dafny.IntOfInt64(8)).Cmp(_dafny.IntOfUint32((x).Cardinality())) <= 0) && ((_dafny.IntOfUint32((x).Cardinality())).Cmp(_dafny.IntOfInt64(8)) <= 0) +} +func (_static *CompanionStruct_Default___) IsValid__ErrorCount(x int64) bool { + return (int64(0)) <= (x) +} +func (_static *CompanionStruct_Default___) IsValid__ExportArn(x _dafny.Sequence) bool { + return ((_dafny.IntOfInt64(37)).Cmp(_dafny.IntOfUint32((x).Cardinality())) <= 0) && ((_dafny.IntOfUint32((x).Cardinality())).Cmp(_dafny.IntOfInt64(1024)) <= 0) +} +func (_static *CompanionStruct_Default___) IsValid__GlobalSecondaryIndexAutoScalingUpdateList(x _dafny.Sequence) bool { + return (_dafny.One).Cmp(_dafny.IntOfUint32((x).Cardinality())) <= 0 +} +func (_static *CompanionStruct_Default___) IsValid__GlobalTableGlobalSecondaryIndexSettingsUpdateList(x _dafny.Sequence) bool { + return ((_dafny.One).Cmp(_dafny.IntOfUint32((x).Cardinality())) <= 0) && ((_dafny.IntOfUint32((x).Cardinality())).Cmp(_dafny.IntOfInt64(20)) <= 0) +} +func (_static *CompanionStruct_Default___) IsValid__ImportArn(x _dafny.Sequence) bool { + return ((_dafny.IntOfInt64(37)).Cmp(_dafny.IntOfUint32((x).Cardinality())) <= 0) && ((_dafny.IntOfUint32((x).Cardinality())).Cmp(_dafny.IntOfInt64(1024)) <= 0) +} +func (_static *CompanionStruct_Default___) IsValid__ImportedItemCount(x int64) bool { + return (int64(0)) <= (x) +} +func (_static *CompanionStruct_Default___) IsValid__ImportNextToken(x _dafny.Sequence) bool { + return ((_dafny.IntOfInt64(112)).Cmp(_dafny.IntOfUint32((x).Cardinality())) <= 0) && ((_dafny.IntOfUint32((x).Cardinality())).Cmp(_dafny.IntOfInt64(1024)) <= 0) +} +func (_static *CompanionStruct_Default___) IsValid__IndexName(x _dafny.Sequence) bool { + return ((_dafny.IntOfInt64(3)).Cmp(_dafny.IntOfUint32((x).Cardinality())) <= 0) && ((_dafny.IntOfUint32((x).Cardinality())).Cmp(_dafny.IntOfInt64(255)) <= 0) +} +func (_static *CompanionStruct_Default___) IsValid__ItemCollectionSizeEstimateBound(x _dafny.Sequence) bool { + return ((_dafny.IntOfInt64(8)).Cmp(_dafny.IntOfUint32((x).Cardinality())) <= 0) && ((_dafny.IntOfUint32((x).Cardinality())).Cmp(_dafny.IntOfInt64(8)) <= 0) +} +func (_static *CompanionStruct_Default___) IsValid__ItemCount(x int64) bool { + return (int64(0)) <= (x) +} +func (_static *CompanionStruct_Default___) IsValid__ItemResponseList(x _dafny.Sequence) bool { + return ((_dafny.One).Cmp(_dafny.IntOfUint32((x).Cardinality())) <= 0) && ((_dafny.IntOfUint32((x).Cardinality())).Cmp(_dafny.IntOfInt64(100)) <= 0) +} +func (_static *CompanionStruct_Default___) IsValid__KeyList(x _dafny.Sequence) bool { + return ((_dafny.One).Cmp(_dafny.IntOfUint32((x).Cardinality())) <= 0) && ((_dafny.IntOfUint32((x).Cardinality())).Cmp(_dafny.IntOfInt64(100)) <= 0) +} +func (_static *CompanionStruct_Default___) IsValid__KeySchema(x _dafny.Sequence) bool { + return ((_dafny.One).Cmp(_dafny.IntOfUint32((x).Cardinality())) <= 0) && ((_dafny.IntOfUint32((x).Cardinality())).Cmp(_dafny.IntOfInt64(2)) <= 0) +} +func (_static *CompanionStruct_Default___) IsValid__KeySchemaAttributeName(x _dafny.Sequence) bool { + return ((_dafny.One).Cmp(_dafny.IntOfUint32((x).Cardinality())) <= 0) && ((_dafny.IntOfUint32((x).Cardinality())).Cmp(_dafny.IntOfInt64(255)) <= 0) +} +func (_static *CompanionStruct_Default___) IsValid__ListContributorInsightsLimit(x int32) bool { + return (x) <= (int32(100)) +} +func (_static *CompanionStruct_Default___) IsValid__ListExportsMaxLimit(x int32) bool { + return ((int32(1)) <= (x)) && ((x) <= (int32(25))) +} +func (_static *CompanionStruct_Default___) IsValid__ListImportsMaxLimit(x int32) bool { + return ((int32(1)) <= (x)) && ((x) <= (int32(25))) +} +func (_static *CompanionStruct_Default___) IsValid__ListTablesInputLimit(x int32) bool { + return ((int32(1)) <= (x)) && ((x) <= (int32(100))) +} +func (_static *CompanionStruct_Default___) IsValid__NonKeyAttributeName(x _dafny.Sequence) bool { + return ((_dafny.One).Cmp(_dafny.IntOfUint32((x).Cardinality())) <= 0) && ((_dafny.IntOfUint32((x).Cardinality())).Cmp(_dafny.IntOfInt64(255)) <= 0) +} +func (_static *CompanionStruct_Default___) IsValid__NonKeyAttributeNameList(x _dafny.Sequence) bool { + return ((_dafny.One).Cmp(_dafny.IntOfUint32((x).Cardinality())) <= 0) && ((_dafny.IntOfUint32((x).Cardinality())).Cmp(_dafny.IntOfInt64(20)) <= 0) +} +func (_static *CompanionStruct_Default___) IsValid__NonNegativeLongObject(x int64) bool { + return (int64(0)) <= (x) +} +func (_static *CompanionStruct_Default___) IsValid__ParameterizedStatements(x _dafny.Sequence) bool { + return ((_dafny.One).Cmp(_dafny.IntOfUint32((x).Cardinality())) <= 0) && ((_dafny.IntOfUint32((x).Cardinality())).Cmp(_dafny.IntOfInt64(100)) <= 0) +} +func (_static *CompanionStruct_Default___) IsValid__PartiQLBatchRequest(x _dafny.Sequence) bool { + return ((_dafny.One).Cmp(_dafny.IntOfUint32((x).Cardinality())) <= 0) && ((_dafny.IntOfUint32((x).Cardinality())).Cmp(_dafny.IntOfInt64(25)) <= 0) +} +func (_static *CompanionStruct_Default___) IsValid__PartiQLNextToken(x _dafny.Sequence) bool { + return ((_dafny.One).Cmp(_dafny.IntOfUint32((x).Cardinality())) <= 0) && ((_dafny.IntOfUint32((x).Cardinality())).Cmp(_dafny.IntOfInt64(32768)) <= 0) +} +func (_static *CompanionStruct_Default___) IsValid__PartiQLStatement(x _dafny.Sequence) bool { + return ((_dafny.One).Cmp(_dafny.IntOfUint32((x).Cardinality())) <= 0) && ((_dafny.IntOfUint32((x).Cardinality())).Cmp(_dafny.IntOfInt64(8192)) <= 0) +} +func (_static *CompanionStruct_Default___) IsValid__PolicyRevisionId(x _dafny.Sequence) bool { + return ((_dafny.One).Cmp(_dafny.IntOfUint32((x).Cardinality())) <= 0) && ((_dafny.IntOfUint32((x).Cardinality())).Cmp(_dafny.IntOfInt64(255)) <= 0) +} +func (_static *CompanionStruct_Default___) IsValid__PositiveIntegerObject(x int32) bool { + return (int32(1)) <= (x) +} +func (_static *CompanionStruct_Default___) IsValid__PositiveLongObject(x int64) bool { + return (int64(1)) <= (x) +} +func (_static *CompanionStruct_Default___) IsValid__PreparedStatementParameters(x _dafny.Sequence) bool { + return (_dafny.One).Cmp(_dafny.IntOfUint32((x).Cardinality())) <= 0 +} +func (_static *CompanionStruct_Default___) IsValid__ProcessedItemCount(x int64) bool { + return (int64(0)) <= (x) +} +func (_static *CompanionStruct_Default___) IsValid__ReplicaAutoScalingUpdateList(x _dafny.Sequence) bool { + return (_dafny.One).Cmp(_dafny.IntOfUint32((x).Cardinality())) <= 0 +} +func (_static *CompanionStruct_Default___) IsValid__ReplicaGlobalSecondaryIndexList(x _dafny.Sequence) bool { + return (_dafny.One).Cmp(_dafny.IntOfUint32((x).Cardinality())) <= 0 +} +func (_static *CompanionStruct_Default___) IsValid__ReplicaGlobalSecondaryIndexSettingsUpdateList(x _dafny.Sequence) bool { + return ((_dafny.One).Cmp(_dafny.IntOfUint32((x).Cardinality())) <= 0) && ((_dafny.IntOfUint32((x).Cardinality())).Cmp(_dafny.IntOfInt64(20)) <= 0) +} +func (_static *CompanionStruct_Default___) IsValid__ReplicaSettingsUpdateList(x _dafny.Sequence) bool { + return ((_dafny.One).Cmp(_dafny.IntOfUint32((x).Cardinality())) <= 0) && ((_dafny.IntOfUint32((x).Cardinality())).Cmp(_dafny.IntOfInt64(50)) <= 0) +} +func (_static *CompanionStruct_Default___) IsValid__ReplicationGroupUpdateList(x _dafny.Sequence) bool { + return (_dafny.One).Cmp(_dafny.IntOfUint32((x).Cardinality())) <= 0 +} +func (_static *CompanionStruct_Default___) IsValid__ResourceArnString(x _dafny.Sequence) bool { + return ((_dafny.One).Cmp(_dafny.IntOfUint32((x).Cardinality())) <= 0) && ((_dafny.IntOfUint32((x).Cardinality())).Cmp(_dafny.IntOfInt64(1283)) <= 0) +} +func (_static *CompanionStruct_Default___) IsValid__S3Bucket(x _dafny.Sequence) bool { + return ((_dafny.IntOfUint32((x).Cardinality())).Sign() != -1) && ((_dafny.IntOfUint32((x).Cardinality())).Cmp(_dafny.IntOfInt64(255)) <= 0) +} +func (_static *CompanionStruct_Default___) IsValid__S3Prefix(x _dafny.Sequence) bool { + return ((_dafny.IntOfUint32((x).Cardinality())).Sign() != -1) && ((_dafny.IntOfUint32((x).Cardinality())).Cmp(_dafny.IntOfInt64(1024)) <= 0) +} +func (_static *CompanionStruct_Default___) IsValid__S3SseKmsKeyId(x _dafny.Sequence) bool { + return ((_dafny.One).Cmp(_dafny.IntOfUint32((x).Cardinality())) <= 0) && ((_dafny.IntOfUint32((x).Cardinality())).Cmp(_dafny.IntOfInt64(2048)) <= 0) +} +func (_static *CompanionStruct_Default___) IsValid__ScanSegment(x int32) bool { + return ((int32(0)) <= (x)) && ((x) <= (int32(999999))) +} +func (_static *CompanionStruct_Default___) IsValid__ScanTotalSegments(x int32) bool { + return ((int32(1)) <= (x)) && ((x) <= (int32(1000000))) +} +func (_static *CompanionStruct_Default___) IsValid__StreamArn(x _dafny.Sequence) bool { + return ((_dafny.IntOfInt64(37)).Cmp(_dafny.IntOfUint32((x).Cardinality())) <= 0) && ((_dafny.IntOfUint32((x).Cardinality())).Cmp(_dafny.IntOfInt64(1024)) <= 0) +} +func (_static *CompanionStruct_Default___) IsValid__TableArn(x _dafny.Sequence) bool { + return ((_dafny.One).Cmp(_dafny.IntOfUint32((x).Cardinality())) <= 0) && ((_dafny.IntOfUint32((x).Cardinality())).Cmp(_dafny.IntOfInt64(1024)) <= 0) +} +func (_static *CompanionStruct_Default___) IsValid__TableName(x _dafny.Sequence) bool { + return ((_dafny.IntOfInt64(3)).Cmp(_dafny.IntOfUint32((x).Cardinality())) <= 0) && ((_dafny.IntOfUint32((x).Cardinality())).Cmp(_dafny.IntOfInt64(255)) <= 0) +} +func (_static *CompanionStruct_Default___) IsValid__TagKeyString(x _dafny.Sequence) bool { + return ((_dafny.One).Cmp(_dafny.IntOfUint32((x).Cardinality())) <= 0) && ((_dafny.IntOfUint32((x).Cardinality())).Cmp(_dafny.IntOfInt64(128)) <= 0) +} +func (_static *CompanionStruct_Default___) IsValid__TagValueString(x _dafny.Sequence) bool { + return ((_dafny.IntOfUint32((x).Cardinality())).Sign() != -1) && ((_dafny.IntOfUint32((x).Cardinality())).Cmp(_dafny.IntOfInt64(256)) <= 0) +} +func (_static *CompanionStruct_Default___) IsValid__TimeToLiveAttributeName(x _dafny.Sequence) bool { + return ((_dafny.One).Cmp(_dafny.IntOfUint32((x).Cardinality())) <= 0) && ((_dafny.IntOfUint32((x).Cardinality())).Cmp(_dafny.IntOfInt64(255)) <= 0) +} +func (_static *CompanionStruct_Default___) IsValid__TransactGetItemList(x _dafny.Sequence) bool { + return ((_dafny.One).Cmp(_dafny.IntOfUint32((x).Cardinality())) <= 0) && ((_dafny.IntOfUint32((x).Cardinality())).Cmp(_dafny.IntOfInt64(100)) <= 0) +} +func (_static *CompanionStruct_Default___) IsValid__TransactWriteItemList(x _dafny.Sequence) bool { + return ((_dafny.One).Cmp(_dafny.IntOfUint32((x).Cardinality())) <= 0) && ((_dafny.IntOfUint32((x).Cardinality())).Cmp(_dafny.IntOfInt64(100)) <= 0) +} +func (_static *CompanionStruct_Default___) IsValid__WriteRequests(x _dafny.Sequence) bool { + return ((_dafny.One).Cmp(_dafny.IntOfUint32((x).Cardinality())) <= 0) && ((_dafny.IntOfUint32((x).Cardinality())).Cmp(_dafny.IntOfInt64(25)) <= 0) +} +func (_static *CompanionStruct_Default___) IsDummySubsetType(x _dafny.Int) bool { + return (x).Sign() == 1 +} + +// End of class Default__ + +// Definition of datatype DafnyCallEvent +type DafnyCallEvent struct { + Data_DafnyCallEvent_ +} + +func (_this DafnyCallEvent) Get_() Data_DafnyCallEvent_ { + return _this.Data_DafnyCallEvent_ +} + +type Data_DafnyCallEvent_ interface { + isDafnyCallEvent() +} + +type CompanionStruct_DafnyCallEvent_ struct { +} + +var Companion_DafnyCallEvent_ = CompanionStruct_DafnyCallEvent_{} + +type DafnyCallEvent_DafnyCallEvent struct { + Input interface{} + Output interface{} +} + +func (DafnyCallEvent_DafnyCallEvent) isDafnyCallEvent() {} + +func (CompanionStruct_DafnyCallEvent_) Create_DafnyCallEvent_(Input interface{}, Output interface{}) DafnyCallEvent { + return DafnyCallEvent{DafnyCallEvent_DafnyCallEvent{Input, Output}} +} + +func (_this DafnyCallEvent) Is_DafnyCallEvent() bool { + _, ok := _this.Get_().(DafnyCallEvent_DafnyCallEvent) + return ok +} + +func (CompanionStruct_DafnyCallEvent_) Default(_default_I interface{}, _default_O interface{}) DafnyCallEvent { + return Companion_DafnyCallEvent_.Create_DafnyCallEvent_(_default_I, _default_O) +} + +func (_this DafnyCallEvent) Dtor_input() interface{} { + return _this.Get_().(DafnyCallEvent_DafnyCallEvent).Input +} + +func (_this DafnyCallEvent) Dtor_output() interface{} { + return _this.Get_().(DafnyCallEvent_DafnyCallEvent).Output +} + +func (_this DafnyCallEvent) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case DafnyCallEvent_DafnyCallEvent: + { + return "ComAmazonawsDynamodbTypes.DafnyCallEvent.DafnyCallEvent" + "(" + _dafny.String(data.Input) + ", " + _dafny.String(data.Output) + ")" + } + default: + { + return "" + } + } +} + +func (_this DafnyCallEvent) Equals(other DafnyCallEvent) bool { + switch data1 := _this.Get_().(type) { + case DafnyCallEvent_DafnyCallEvent: + { + data2, ok := other.Get_().(DafnyCallEvent_DafnyCallEvent) + return ok && _dafny.AreEqual(data1.Input, data2.Input) && _dafny.AreEqual(data1.Output, data2.Output) + } + default: + { + return false // unexpected + } + } +} + +func (_this DafnyCallEvent) EqualsGeneric(other interface{}) bool { + typed, ok := other.(DafnyCallEvent) + return ok && _this.Equals(typed) +} + +func Type_DafnyCallEvent_(Type_I_ _dafny.TypeDescriptor, Type_O_ _dafny.TypeDescriptor) _dafny.TypeDescriptor { + return type_DafnyCallEvent_{Type_I_, Type_O_} +} + +type type_DafnyCallEvent_ struct { + Type_I_ _dafny.TypeDescriptor + Type_O_ _dafny.TypeDescriptor +} + +func (_this type_DafnyCallEvent_) Default() interface{} { + Type_I_ := _this.Type_I_ + _ = Type_I_ + Type_O_ := _this.Type_O_ + _ = Type_O_ + return Companion_DafnyCallEvent_.Default(Type_I_.Default(), Type_O_.Default()) +} + +func (_this type_DafnyCallEvent_) String() string { + return "ComAmazonawsDynamodbTypes.DafnyCallEvent" +} +func (_this DafnyCallEvent) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = DafnyCallEvent{} + +// End of datatype DafnyCallEvent + +// Definition of datatype ApproximateCreationDateTimePrecision +type ApproximateCreationDateTimePrecision struct { + Data_ApproximateCreationDateTimePrecision_ +} + +func (_this ApproximateCreationDateTimePrecision) Get_() Data_ApproximateCreationDateTimePrecision_ { + return _this.Data_ApproximateCreationDateTimePrecision_ +} + +type Data_ApproximateCreationDateTimePrecision_ interface { + isApproximateCreationDateTimePrecision() +} + +type CompanionStruct_ApproximateCreationDateTimePrecision_ struct { +} + +var Companion_ApproximateCreationDateTimePrecision_ = CompanionStruct_ApproximateCreationDateTimePrecision_{} + +type ApproximateCreationDateTimePrecision_MILLISECOND struct { +} + +func (ApproximateCreationDateTimePrecision_MILLISECOND) isApproximateCreationDateTimePrecision() {} + +func (CompanionStruct_ApproximateCreationDateTimePrecision_) Create_MILLISECOND_() ApproximateCreationDateTimePrecision { + return ApproximateCreationDateTimePrecision{ApproximateCreationDateTimePrecision_MILLISECOND{}} +} + +func (_this ApproximateCreationDateTimePrecision) Is_MILLISECOND() bool { + _, ok := _this.Get_().(ApproximateCreationDateTimePrecision_MILLISECOND) + return ok +} + +type ApproximateCreationDateTimePrecision_MICROSECOND struct { +} + +func (ApproximateCreationDateTimePrecision_MICROSECOND) isApproximateCreationDateTimePrecision() {} + +func (CompanionStruct_ApproximateCreationDateTimePrecision_) Create_MICROSECOND_() ApproximateCreationDateTimePrecision { + return ApproximateCreationDateTimePrecision{ApproximateCreationDateTimePrecision_MICROSECOND{}} +} + +func (_this ApproximateCreationDateTimePrecision) Is_MICROSECOND() bool { + _, ok := _this.Get_().(ApproximateCreationDateTimePrecision_MICROSECOND) + return ok +} + +func (CompanionStruct_ApproximateCreationDateTimePrecision_) Default() ApproximateCreationDateTimePrecision { + return Companion_ApproximateCreationDateTimePrecision_.Create_MILLISECOND_() +} + +func (_ CompanionStruct_ApproximateCreationDateTimePrecision_) AllSingletonConstructors() _dafny.Iterator { + i := -1 + return func() (interface{}, bool) { + i++ + switch i { + case 0: + return Companion_ApproximateCreationDateTimePrecision_.Create_MILLISECOND_(), true + case 1: + return Companion_ApproximateCreationDateTimePrecision_.Create_MICROSECOND_(), true + default: + return ApproximateCreationDateTimePrecision{}, false + } + } +} + +func (_this ApproximateCreationDateTimePrecision) String() string { + switch _this.Get_().(type) { + case nil: + return "null" + case ApproximateCreationDateTimePrecision_MILLISECOND: + { + return "ComAmazonawsDynamodbTypes.ApproximateCreationDateTimePrecision.MILLISECOND" + } + case ApproximateCreationDateTimePrecision_MICROSECOND: + { + return "ComAmazonawsDynamodbTypes.ApproximateCreationDateTimePrecision.MICROSECOND" + } + default: + { + return "" + } + } +} + +func (_this ApproximateCreationDateTimePrecision) Equals(other ApproximateCreationDateTimePrecision) bool { + switch _this.Get_().(type) { + case ApproximateCreationDateTimePrecision_MILLISECOND: + { + _, ok := other.Get_().(ApproximateCreationDateTimePrecision_MILLISECOND) + return ok + } + case ApproximateCreationDateTimePrecision_MICROSECOND: + { + _, ok := other.Get_().(ApproximateCreationDateTimePrecision_MICROSECOND) + return ok + } + default: + { + return false // unexpected + } + } +} + +func (_this ApproximateCreationDateTimePrecision) EqualsGeneric(other interface{}) bool { + typed, ok := other.(ApproximateCreationDateTimePrecision) + return ok && _this.Equals(typed) +} + +func Type_ApproximateCreationDateTimePrecision_() _dafny.TypeDescriptor { + return type_ApproximateCreationDateTimePrecision_{} +} + +type type_ApproximateCreationDateTimePrecision_ struct { +} + +func (_this type_ApproximateCreationDateTimePrecision_) Default() interface{} { + return Companion_ApproximateCreationDateTimePrecision_.Default() +} + +func (_this type_ApproximateCreationDateTimePrecision_) String() string { + return "ComAmazonawsDynamodbTypes.ApproximateCreationDateTimePrecision" +} +func (_this ApproximateCreationDateTimePrecision) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = ApproximateCreationDateTimePrecision{} + +// End of datatype ApproximateCreationDateTimePrecision + +// Definition of datatype ArchivalSummary +type ArchivalSummary struct { + Data_ArchivalSummary_ +} + +func (_this ArchivalSummary) Get_() Data_ArchivalSummary_ { + return _this.Data_ArchivalSummary_ +} + +type Data_ArchivalSummary_ interface { + isArchivalSummary() +} + +type CompanionStruct_ArchivalSummary_ struct { +} + +var Companion_ArchivalSummary_ = CompanionStruct_ArchivalSummary_{} + +type ArchivalSummary_ArchivalSummary struct { + ArchivalDateTime m_Wrappers.Option + ArchivalReason m_Wrappers.Option + ArchivalBackupArn m_Wrappers.Option +} + +func (ArchivalSummary_ArchivalSummary) isArchivalSummary() {} + +func (CompanionStruct_ArchivalSummary_) Create_ArchivalSummary_(ArchivalDateTime m_Wrappers.Option, ArchivalReason m_Wrappers.Option, ArchivalBackupArn m_Wrappers.Option) ArchivalSummary { + return ArchivalSummary{ArchivalSummary_ArchivalSummary{ArchivalDateTime, ArchivalReason, ArchivalBackupArn}} +} + +func (_this ArchivalSummary) Is_ArchivalSummary() bool { + _, ok := _this.Get_().(ArchivalSummary_ArchivalSummary) + return ok +} + +func (CompanionStruct_ArchivalSummary_) Default() ArchivalSummary { + return Companion_ArchivalSummary_.Create_ArchivalSummary_(m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this ArchivalSummary) Dtor_ArchivalDateTime() m_Wrappers.Option { + return _this.Get_().(ArchivalSummary_ArchivalSummary).ArchivalDateTime +} + +func (_this ArchivalSummary) Dtor_ArchivalReason() m_Wrappers.Option { + return _this.Get_().(ArchivalSummary_ArchivalSummary).ArchivalReason +} + +func (_this ArchivalSummary) Dtor_ArchivalBackupArn() m_Wrappers.Option { + return _this.Get_().(ArchivalSummary_ArchivalSummary).ArchivalBackupArn +} + +func (_this ArchivalSummary) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case ArchivalSummary_ArchivalSummary: + { + return "ComAmazonawsDynamodbTypes.ArchivalSummary.ArchivalSummary" + "(" + _dafny.String(data.ArchivalDateTime) + ", " + _dafny.String(data.ArchivalReason) + ", " + _dafny.String(data.ArchivalBackupArn) + ")" + } + default: + { + return "" + } + } +} + +func (_this ArchivalSummary) Equals(other ArchivalSummary) bool { + switch data1 := _this.Get_().(type) { + case ArchivalSummary_ArchivalSummary: + { + data2, ok := other.Get_().(ArchivalSummary_ArchivalSummary) + return ok && data1.ArchivalDateTime.Equals(data2.ArchivalDateTime) && data1.ArchivalReason.Equals(data2.ArchivalReason) && data1.ArchivalBackupArn.Equals(data2.ArchivalBackupArn) + } + default: + { + return false // unexpected + } + } +} + +func (_this ArchivalSummary) EqualsGeneric(other interface{}) bool { + typed, ok := other.(ArchivalSummary) + return ok && _this.Equals(typed) +} + +func Type_ArchivalSummary_() _dafny.TypeDescriptor { + return type_ArchivalSummary_{} +} + +type type_ArchivalSummary_ struct { +} + +func (_this type_ArchivalSummary_) Default() interface{} { + return Companion_ArchivalSummary_.Default() +} + +func (_this type_ArchivalSummary_) String() string { + return "ComAmazonawsDynamodbTypes.ArchivalSummary" +} +func (_this ArchivalSummary) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = ArchivalSummary{} + +// End of datatype ArchivalSummary + +// Definition of datatype AttributeAction +type AttributeAction struct { + Data_AttributeAction_ +} + +func (_this AttributeAction) Get_() Data_AttributeAction_ { + return _this.Data_AttributeAction_ +} + +type Data_AttributeAction_ interface { + isAttributeAction() +} + +type CompanionStruct_AttributeAction_ struct { +} + +var Companion_AttributeAction_ = CompanionStruct_AttributeAction_{} + +type AttributeAction_ADD struct { +} + +func (AttributeAction_ADD) isAttributeAction() {} + +func (CompanionStruct_AttributeAction_) Create_ADD_() AttributeAction { + return AttributeAction{AttributeAction_ADD{}} +} + +func (_this AttributeAction) Is_ADD() bool { + _, ok := _this.Get_().(AttributeAction_ADD) + return ok +} + +type AttributeAction_PUT struct { +} + +func (AttributeAction_PUT) isAttributeAction() {} + +func (CompanionStruct_AttributeAction_) Create_PUT_() AttributeAction { + return AttributeAction{AttributeAction_PUT{}} +} + +func (_this AttributeAction) Is_PUT() bool { + _, ok := _this.Get_().(AttributeAction_PUT) + return ok +} + +type AttributeAction_DELETE struct { +} + +func (AttributeAction_DELETE) isAttributeAction() {} + +func (CompanionStruct_AttributeAction_) Create_DELETE_() AttributeAction { + return AttributeAction{AttributeAction_DELETE{}} +} + +func (_this AttributeAction) Is_DELETE() bool { + _, ok := _this.Get_().(AttributeAction_DELETE) + return ok +} + +func (CompanionStruct_AttributeAction_) Default() AttributeAction { + return Companion_AttributeAction_.Create_ADD_() +} + +func (_ CompanionStruct_AttributeAction_) AllSingletonConstructors() _dafny.Iterator { + i := -1 + return func() (interface{}, bool) { + i++ + switch i { + case 0: + return Companion_AttributeAction_.Create_ADD_(), true + case 1: + return Companion_AttributeAction_.Create_PUT_(), true + case 2: + return Companion_AttributeAction_.Create_DELETE_(), true + default: + return AttributeAction{}, false + } + } +} + +func (_this AttributeAction) String() string { + switch _this.Get_().(type) { + case nil: + return "null" + case AttributeAction_ADD: + { + return "ComAmazonawsDynamodbTypes.AttributeAction.ADD" + } + case AttributeAction_PUT: + { + return "ComAmazonawsDynamodbTypes.AttributeAction.PUT" + } + case AttributeAction_DELETE: + { + return "ComAmazonawsDynamodbTypes.AttributeAction.DELETE" + } + default: + { + return "" + } + } +} + +func (_this AttributeAction) Equals(other AttributeAction) bool { + switch _this.Get_().(type) { + case AttributeAction_ADD: + { + _, ok := other.Get_().(AttributeAction_ADD) + return ok + } + case AttributeAction_PUT: + { + _, ok := other.Get_().(AttributeAction_PUT) + return ok + } + case AttributeAction_DELETE: + { + _, ok := other.Get_().(AttributeAction_DELETE) + return ok + } + default: + { + return false // unexpected + } + } +} + +func (_this AttributeAction) EqualsGeneric(other interface{}) bool { + typed, ok := other.(AttributeAction) + return ok && _this.Equals(typed) +} + +func Type_AttributeAction_() _dafny.TypeDescriptor { + return type_AttributeAction_{} +} + +type type_AttributeAction_ struct { +} + +func (_this type_AttributeAction_) Default() interface{} { + return Companion_AttributeAction_.Default() +} + +func (_this type_AttributeAction_) String() string { + return "ComAmazonawsDynamodbTypes.AttributeAction" +} +func (_this AttributeAction) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = AttributeAction{} + +// End of datatype AttributeAction + +// Definition of datatype AttributeDefinition +type AttributeDefinition struct { + Data_AttributeDefinition_ +} + +func (_this AttributeDefinition) Get_() Data_AttributeDefinition_ { + return _this.Data_AttributeDefinition_ +} + +type Data_AttributeDefinition_ interface { + isAttributeDefinition() +} + +type CompanionStruct_AttributeDefinition_ struct { +} + +var Companion_AttributeDefinition_ = CompanionStruct_AttributeDefinition_{} + +type AttributeDefinition_AttributeDefinition struct { + AttributeName _dafny.Sequence + AttributeType ScalarAttributeType +} + +func (AttributeDefinition_AttributeDefinition) isAttributeDefinition() {} + +func (CompanionStruct_AttributeDefinition_) Create_AttributeDefinition_(AttributeName _dafny.Sequence, AttributeType ScalarAttributeType) AttributeDefinition { + return AttributeDefinition{AttributeDefinition_AttributeDefinition{AttributeName, AttributeType}} +} + +func (_this AttributeDefinition) Is_AttributeDefinition() bool { + _, ok := _this.Get_().(AttributeDefinition_AttributeDefinition) + return ok +} + +func (CompanionStruct_AttributeDefinition_) Default() AttributeDefinition { + return Companion_AttributeDefinition_.Create_AttributeDefinition_(_dafny.EmptySeq.SetString(), Companion_ScalarAttributeType_.Default()) +} + +func (_this AttributeDefinition) Dtor_AttributeName() _dafny.Sequence { + return _this.Get_().(AttributeDefinition_AttributeDefinition).AttributeName +} + +func (_this AttributeDefinition) Dtor_AttributeType() ScalarAttributeType { + return _this.Get_().(AttributeDefinition_AttributeDefinition).AttributeType +} + +func (_this AttributeDefinition) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case AttributeDefinition_AttributeDefinition: + { + return "ComAmazonawsDynamodbTypes.AttributeDefinition.AttributeDefinition" + "(" + _dafny.String(data.AttributeName) + ", " + _dafny.String(data.AttributeType) + ")" + } + default: + { + return "" + } + } +} + +func (_this AttributeDefinition) Equals(other AttributeDefinition) bool { + switch data1 := _this.Get_().(type) { + case AttributeDefinition_AttributeDefinition: + { + data2, ok := other.Get_().(AttributeDefinition_AttributeDefinition) + return ok && data1.AttributeName.Equals(data2.AttributeName) && data1.AttributeType.Equals(data2.AttributeType) + } + default: + { + return false // unexpected + } + } +} + +func (_this AttributeDefinition) EqualsGeneric(other interface{}) bool { + typed, ok := other.(AttributeDefinition) + return ok && _this.Equals(typed) +} + +func Type_AttributeDefinition_() _dafny.TypeDescriptor { + return type_AttributeDefinition_{} +} + +type type_AttributeDefinition_ struct { +} + +func (_this type_AttributeDefinition_) Default() interface{} { + return Companion_AttributeDefinition_.Default() +} + +func (_this type_AttributeDefinition_) String() string { + return "ComAmazonawsDynamodbTypes.AttributeDefinition" +} +func (_this AttributeDefinition) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = AttributeDefinition{} + +// End of datatype AttributeDefinition + +// Definition of class AttributeName +type AttributeName struct { +} + +func New_AttributeName_() *AttributeName { + _this := AttributeName{} + + return &_this +} + +type CompanionStruct_AttributeName_ struct { +} + +var Companion_AttributeName_ = CompanionStruct_AttributeName_{} + +func (*AttributeName) String() string { + return "ComAmazonawsDynamodbTypes.AttributeName" +} + +// End of class AttributeName + +func Type_AttributeName_() _dafny.TypeDescriptor { + return type_AttributeName_{} +} + +type type_AttributeName_ struct { +} + +func (_this type_AttributeName_) Default() interface{} { + return _dafny.EmptySeq.SetString() +} + +func (_this type_AttributeName_) String() string { + return "ComAmazonawsDynamodbTypes.AttributeName" +} +func (_this *CompanionStruct_AttributeName_) Is_(__source _dafny.Sequence) bool { + var _0_x _dafny.Sequence = (__source) + _ = _0_x + return Companion_Default___.IsValid__AttributeName(_0_x) +} + +// Definition of class AttributeNameList +type AttributeNameList struct { +} + +func New_AttributeNameList_() *AttributeNameList { + _this := AttributeNameList{} + + return &_this +} + +type CompanionStruct_AttributeNameList_ struct { +} + +var Companion_AttributeNameList_ = CompanionStruct_AttributeNameList_{} + +func (*AttributeNameList) String() string { + return "ComAmazonawsDynamodbTypes.AttributeNameList" +} + +// End of class AttributeNameList + +func Type_AttributeNameList_() _dafny.TypeDescriptor { + return type_AttributeNameList_{} +} + +type type_AttributeNameList_ struct { +} + +func (_this type_AttributeNameList_) Default() interface{} { + return _dafny.EmptySeq +} + +func (_this type_AttributeNameList_) String() string { + return "ComAmazonawsDynamodbTypes.AttributeNameList" +} +func (_this *CompanionStruct_AttributeNameList_) Is_(__source _dafny.Sequence) bool { + var _1_x _dafny.Sequence = (__source) + _ = _1_x + return Companion_Default___.IsValid__AttributeNameList(_1_x) +} + +// Definition of datatype AttributeValue +type AttributeValue struct { + Data_AttributeValue_ +} + +func (_this AttributeValue) Get_() Data_AttributeValue_ { + return _this.Data_AttributeValue_ +} + +type Data_AttributeValue_ interface { + isAttributeValue() +} + +type CompanionStruct_AttributeValue_ struct { +} + +var Companion_AttributeValue_ = CompanionStruct_AttributeValue_{} + +type AttributeValue_S struct { + S _dafny.Sequence +} + +func (AttributeValue_S) isAttributeValue() {} + +func (CompanionStruct_AttributeValue_) Create_S_(S _dafny.Sequence) AttributeValue { + return AttributeValue{AttributeValue_S{S}} +} + +func (_this AttributeValue) Is_S() bool { + _, ok := _this.Get_().(AttributeValue_S) + return ok +} + +type AttributeValue_N struct { + N _dafny.Sequence +} + +func (AttributeValue_N) isAttributeValue() {} + +func (CompanionStruct_AttributeValue_) Create_N_(N _dafny.Sequence) AttributeValue { + return AttributeValue{AttributeValue_N{N}} +} + +func (_this AttributeValue) Is_N() bool { + _, ok := _this.Get_().(AttributeValue_N) + return ok +} + +type AttributeValue_B struct { + B _dafny.Sequence +} + +func (AttributeValue_B) isAttributeValue() {} + +func (CompanionStruct_AttributeValue_) Create_B_(B _dafny.Sequence) AttributeValue { + return AttributeValue{AttributeValue_B{B}} +} + +func (_this AttributeValue) Is_B() bool { + _, ok := _this.Get_().(AttributeValue_B) + return ok +} + +type AttributeValue_SS struct { + SS _dafny.Sequence +} + +func (AttributeValue_SS) isAttributeValue() {} + +func (CompanionStruct_AttributeValue_) Create_SS_(SS _dafny.Sequence) AttributeValue { + return AttributeValue{AttributeValue_SS{SS}} +} + +func (_this AttributeValue) Is_SS() bool { + _, ok := _this.Get_().(AttributeValue_SS) + return ok +} + +type AttributeValue_NS struct { + NS _dafny.Sequence +} + +func (AttributeValue_NS) isAttributeValue() {} + +func (CompanionStruct_AttributeValue_) Create_NS_(NS _dafny.Sequence) AttributeValue { + return AttributeValue{AttributeValue_NS{NS}} +} + +func (_this AttributeValue) Is_NS() bool { + _, ok := _this.Get_().(AttributeValue_NS) + return ok +} + +type AttributeValue_BS struct { + BS _dafny.Sequence +} + +func (AttributeValue_BS) isAttributeValue() {} + +func (CompanionStruct_AttributeValue_) Create_BS_(BS _dafny.Sequence) AttributeValue { + return AttributeValue{AttributeValue_BS{BS}} +} + +func (_this AttributeValue) Is_BS() bool { + _, ok := _this.Get_().(AttributeValue_BS) + return ok +} + +type AttributeValue_M struct { + M _dafny.Map +} + +func (AttributeValue_M) isAttributeValue() {} + +func (CompanionStruct_AttributeValue_) Create_M_(M _dafny.Map) AttributeValue { + return AttributeValue{AttributeValue_M{M}} +} + +func (_this AttributeValue) Is_M() bool { + _, ok := _this.Get_().(AttributeValue_M) + return ok +} + +type AttributeValue_L struct { + L _dafny.Sequence +} + +func (AttributeValue_L) isAttributeValue() {} + +func (CompanionStruct_AttributeValue_) Create_L_(L _dafny.Sequence) AttributeValue { + return AttributeValue{AttributeValue_L{L}} +} + +func (_this AttributeValue) Is_L() bool { + _, ok := _this.Get_().(AttributeValue_L) + return ok +} + +type AttributeValue_NULL struct { + NULL bool +} + +func (AttributeValue_NULL) isAttributeValue() {} + +func (CompanionStruct_AttributeValue_) Create_NULL_(NULL bool) AttributeValue { + return AttributeValue{AttributeValue_NULL{NULL}} +} + +func (_this AttributeValue) Is_NULL() bool { + _, ok := _this.Get_().(AttributeValue_NULL) + return ok +} + +type AttributeValue_BOOL struct { + BOOL bool +} + +func (AttributeValue_BOOL) isAttributeValue() {} + +func (CompanionStruct_AttributeValue_) Create_BOOL_(BOOL bool) AttributeValue { + return AttributeValue{AttributeValue_BOOL{BOOL}} +} + +func (_this AttributeValue) Is_BOOL() bool { + _, ok := _this.Get_().(AttributeValue_BOOL) + return ok +} + +func (CompanionStruct_AttributeValue_) Default() AttributeValue { + return Companion_AttributeValue_.Create_S_(_dafny.EmptySeq.SetString()) +} + +func (_this AttributeValue) Dtor_S() _dafny.Sequence { + return _this.Get_().(AttributeValue_S).S +} + +func (_this AttributeValue) Dtor_N() _dafny.Sequence { + return _this.Get_().(AttributeValue_N).N +} + +func (_this AttributeValue) Dtor_B() _dafny.Sequence { + return _this.Get_().(AttributeValue_B).B +} + +func (_this AttributeValue) Dtor_SS() _dafny.Sequence { + return _this.Get_().(AttributeValue_SS).SS +} + +func (_this AttributeValue) Dtor_NS() _dafny.Sequence { + return _this.Get_().(AttributeValue_NS).NS +} + +func (_this AttributeValue) Dtor_BS() _dafny.Sequence { + return _this.Get_().(AttributeValue_BS).BS +} + +func (_this AttributeValue) Dtor_M() _dafny.Map { + return _this.Get_().(AttributeValue_M).M +} + +func (_this AttributeValue) Dtor_L() _dafny.Sequence { + return _this.Get_().(AttributeValue_L).L +} + +func (_this AttributeValue) Dtor_NULL() bool { + return _this.Get_().(AttributeValue_NULL).NULL +} + +func (_this AttributeValue) Dtor_BOOL() bool { + return _this.Get_().(AttributeValue_BOOL).BOOL +} + +func (_this AttributeValue) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case AttributeValue_S: + { + return "ComAmazonawsDynamodbTypes.AttributeValue.S" + "(" + _dafny.String(data.S) + ")" + } + case AttributeValue_N: + { + return "ComAmazonawsDynamodbTypes.AttributeValue.N" + "(" + _dafny.String(data.N) + ")" + } + case AttributeValue_B: + { + return "ComAmazonawsDynamodbTypes.AttributeValue.B" + "(" + _dafny.String(data.B) + ")" + } + case AttributeValue_SS: + { + return "ComAmazonawsDynamodbTypes.AttributeValue.SS" + "(" + _dafny.String(data.SS) + ")" + } + case AttributeValue_NS: + { + return "ComAmazonawsDynamodbTypes.AttributeValue.NS" + "(" + _dafny.String(data.NS) + ")" + } + case AttributeValue_BS: + { + return "ComAmazonawsDynamodbTypes.AttributeValue.BS" + "(" + _dafny.String(data.BS) + ")" + } + case AttributeValue_M: + { + return "ComAmazonawsDynamodbTypes.AttributeValue.M" + "(" + _dafny.String(data.M) + ")" + } + case AttributeValue_L: + { + return "ComAmazonawsDynamodbTypes.AttributeValue.L" + "(" + _dafny.String(data.L) + ")" + } + case AttributeValue_NULL: + { + return "ComAmazonawsDynamodbTypes.AttributeValue.NULL" + "(" + _dafny.String(data.NULL) + ")" + } + case AttributeValue_BOOL: + { + return "ComAmazonawsDynamodbTypes.AttributeValue.BOOL" + "(" + _dafny.String(data.BOOL) + ")" + } + default: + { + return "" + } + } +} + +func (_this AttributeValue) Equals(other AttributeValue) bool { + switch data1 := _this.Get_().(type) { + case AttributeValue_S: + { + data2, ok := other.Get_().(AttributeValue_S) + return ok && data1.S.Equals(data2.S) + } + case AttributeValue_N: + { + data2, ok := other.Get_().(AttributeValue_N) + return ok && data1.N.Equals(data2.N) + } + case AttributeValue_B: + { + data2, ok := other.Get_().(AttributeValue_B) + return ok && data1.B.Equals(data2.B) + } + case AttributeValue_SS: + { + data2, ok := other.Get_().(AttributeValue_SS) + return ok && data1.SS.Equals(data2.SS) + } + case AttributeValue_NS: + { + data2, ok := other.Get_().(AttributeValue_NS) + return ok && data1.NS.Equals(data2.NS) + } + case AttributeValue_BS: + { + data2, ok := other.Get_().(AttributeValue_BS) + return ok && data1.BS.Equals(data2.BS) + } + case AttributeValue_M: + { + data2, ok := other.Get_().(AttributeValue_M) + return ok && data1.M.Equals(data2.M) + } + case AttributeValue_L: + { + data2, ok := other.Get_().(AttributeValue_L) + return ok && data1.L.Equals(data2.L) + } + case AttributeValue_NULL: + { + data2, ok := other.Get_().(AttributeValue_NULL) + return ok && data1.NULL == data2.NULL + } + case AttributeValue_BOOL: + { + data2, ok := other.Get_().(AttributeValue_BOOL) + return ok && data1.BOOL == data2.BOOL + } + default: + { + return false // unexpected + } + } +} + +func (_this AttributeValue) EqualsGeneric(other interface{}) bool { + typed, ok := other.(AttributeValue) + return ok && _this.Equals(typed) +} + +func Type_AttributeValue_() _dafny.TypeDescriptor { + return type_AttributeValue_{} +} + +type type_AttributeValue_ struct { +} + +func (_this type_AttributeValue_) Default() interface{} { + return Companion_AttributeValue_.Default() +} + +func (_this type_AttributeValue_) String() string { + return "ComAmazonawsDynamodbTypes.AttributeValue" +} +func (_this AttributeValue) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = AttributeValue{} + +// End of datatype AttributeValue + +// Definition of datatype AttributeValueUpdate +type AttributeValueUpdate struct { + Data_AttributeValueUpdate_ +} + +func (_this AttributeValueUpdate) Get_() Data_AttributeValueUpdate_ { + return _this.Data_AttributeValueUpdate_ +} + +type Data_AttributeValueUpdate_ interface { + isAttributeValueUpdate() +} + +type CompanionStruct_AttributeValueUpdate_ struct { +} + +var Companion_AttributeValueUpdate_ = CompanionStruct_AttributeValueUpdate_{} + +type AttributeValueUpdate_AttributeValueUpdate struct { + Value m_Wrappers.Option + Action m_Wrappers.Option +} + +func (AttributeValueUpdate_AttributeValueUpdate) isAttributeValueUpdate() {} + +func (CompanionStruct_AttributeValueUpdate_) Create_AttributeValueUpdate_(Value m_Wrappers.Option, Action m_Wrappers.Option) AttributeValueUpdate { + return AttributeValueUpdate{AttributeValueUpdate_AttributeValueUpdate{Value, Action}} +} + +func (_this AttributeValueUpdate) Is_AttributeValueUpdate() bool { + _, ok := _this.Get_().(AttributeValueUpdate_AttributeValueUpdate) + return ok +} + +func (CompanionStruct_AttributeValueUpdate_) Default() AttributeValueUpdate { + return Companion_AttributeValueUpdate_.Create_AttributeValueUpdate_(m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this AttributeValueUpdate) Dtor_Value() m_Wrappers.Option { + return _this.Get_().(AttributeValueUpdate_AttributeValueUpdate).Value +} + +func (_this AttributeValueUpdate) Dtor_Action() m_Wrappers.Option { + return _this.Get_().(AttributeValueUpdate_AttributeValueUpdate).Action +} + +func (_this AttributeValueUpdate) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case AttributeValueUpdate_AttributeValueUpdate: + { + return "ComAmazonawsDynamodbTypes.AttributeValueUpdate.AttributeValueUpdate" + "(" + _dafny.String(data.Value) + ", " + _dafny.String(data.Action) + ")" + } + default: + { + return "" + } + } +} + +func (_this AttributeValueUpdate) Equals(other AttributeValueUpdate) bool { + switch data1 := _this.Get_().(type) { + case AttributeValueUpdate_AttributeValueUpdate: + { + data2, ok := other.Get_().(AttributeValueUpdate_AttributeValueUpdate) + return ok && data1.Value.Equals(data2.Value) && data1.Action.Equals(data2.Action) + } + default: + { + return false // unexpected + } + } +} + +func (_this AttributeValueUpdate) EqualsGeneric(other interface{}) bool { + typed, ok := other.(AttributeValueUpdate) + return ok && _this.Equals(typed) +} + +func Type_AttributeValueUpdate_() _dafny.TypeDescriptor { + return type_AttributeValueUpdate_{} +} + +type type_AttributeValueUpdate_ struct { +} + +func (_this type_AttributeValueUpdate_) Default() interface{} { + return Companion_AttributeValueUpdate_.Default() +} + +func (_this type_AttributeValueUpdate_) String() string { + return "ComAmazonawsDynamodbTypes.AttributeValueUpdate" +} +func (_this AttributeValueUpdate) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = AttributeValueUpdate{} + +// End of datatype AttributeValueUpdate + +// Definition of datatype AutoScalingPolicyDescription +type AutoScalingPolicyDescription struct { + Data_AutoScalingPolicyDescription_ +} + +func (_this AutoScalingPolicyDescription) Get_() Data_AutoScalingPolicyDescription_ { + return _this.Data_AutoScalingPolicyDescription_ +} + +type Data_AutoScalingPolicyDescription_ interface { + isAutoScalingPolicyDescription() +} + +type CompanionStruct_AutoScalingPolicyDescription_ struct { +} + +var Companion_AutoScalingPolicyDescription_ = CompanionStruct_AutoScalingPolicyDescription_{} + +type AutoScalingPolicyDescription_AutoScalingPolicyDescription struct { + PolicyName m_Wrappers.Option + TargetTrackingScalingPolicyConfiguration m_Wrappers.Option +} + +func (AutoScalingPolicyDescription_AutoScalingPolicyDescription) isAutoScalingPolicyDescription() {} + +func (CompanionStruct_AutoScalingPolicyDescription_) Create_AutoScalingPolicyDescription_(PolicyName m_Wrappers.Option, TargetTrackingScalingPolicyConfiguration m_Wrappers.Option) AutoScalingPolicyDescription { + return AutoScalingPolicyDescription{AutoScalingPolicyDescription_AutoScalingPolicyDescription{PolicyName, TargetTrackingScalingPolicyConfiguration}} +} + +func (_this AutoScalingPolicyDescription) Is_AutoScalingPolicyDescription() bool { + _, ok := _this.Get_().(AutoScalingPolicyDescription_AutoScalingPolicyDescription) + return ok +} + +func (CompanionStruct_AutoScalingPolicyDescription_) Default() AutoScalingPolicyDescription { + return Companion_AutoScalingPolicyDescription_.Create_AutoScalingPolicyDescription_(m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this AutoScalingPolicyDescription) Dtor_PolicyName() m_Wrappers.Option { + return _this.Get_().(AutoScalingPolicyDescription_AutoScalingPolicyDescription).PolicyName +} + +func (_this AutoScalingPolicyDescription) Dtor_TargetTrackingScalingPolicyConfiguration() m_Wrappers.Option { + return _this.Get_().(AutoScalingPolicyDescription_AutoScalingPolicyDescription).TargetTrackingScalingPolicyConfiguration +} + +func (_this AutoScalingPolicyDescription) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case AutoScalingPolicyDescription_AutoScalingPolicyDescription: + { + return "ComAmazonawsDynamodbTypes.AutoScalingPolicyDescription.AutoScalingPolicyDescription" + "(" + _dafny.String(data.PolicyName) + ", " + _dafny.String(data.TargetTrackingScalingPolicyConfiguration) + ")" + } + default: + { + return "" + } + } +} + +func (_this AutoScalingPolicyDescription) Equals(other AutoScalingPolicyDescription) bool { + switch data1 := _this.Get_().(type) { + case AutoScalingPolicyDescription_AutoScalingPolicyDescription: + { + data2, ok := other.Get_().(AutoScalingPolicyDescription_AutoScalingPolicyDescription) + return ok && data1.PolicyName.Equals(data2.PolicyName) && data1.TargetTrackingScalingPolicyConfiguration.Equals(data2.TargetTrackingScalingPolicyConfiguration) + } + default: + { + return false // unexpected + } + } +} + +func (_this AutoScalingPolicyDescription) EqualsGeneric(other interface{}) bool { + typed, ok := other.(AutoScalingPolicyDescription) + return ok && _this.Equals(typed) +} + +func Type_AutoScalingPolicyDescription_() _dafny.TypeDescriptor { + return type_AutoScalingPolicyDescription_{} +} + +type type_AutoScalingPolicyDescription_ struct { +} + +func (_this type_AutoScalingPolicyDescription_) Default() interface{} { + return Companion_AutoScalingPolicyDescription_.Default() +} + +func (_this type_AutoScalingPolicyDescription_) String() string { + return "ComAmazonawsDynamodbTypes.AutoScalingPolicyDescription" +} +func (_this AutoScalingPolicyDescription) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = AutoScalingPolicyDescription{} + +// End of datatype AutoScalingPolicyDescription + +// Definition of class AutoScalingPolicyName +type AutoScalingPolicyName struct { +} + +func New_AutoScalingPolicyName_() *AutoScalingPolicyName { + _this := AutoScalingPolicyName{} + + return &_this +} + +type CompanionStruct_AutoScalingPolicyName_ struct { +} + +var Companion_AutoScalingPolicyName_ = CompanionStruct_AutoScalingPolicyName_{} + +func (*AutoScalingPolicyName) String() string { + return "ComAmazonawsDynamodbTypes.AutoScalingPolicyName" +} + +// End of class AutoScalingPolicyName + +func Type_AutoScalingPolicyName_() _dafny.TypeDescriptor { + return type_AutoScalingPolicyName_{} +} + +type type_AutoScalingPolicyName_ struct { +} + +func (_this type_AutoScalingPolicyName_) Default() interface{} { + return _dafny.EmptySeq.SetString() +} + +func (_this type_AutoScalingPolicyName_) String() string { + return "ComAmazonawsDynamodbTypes.AutoScalingPolicyName" +} +func (_this *CompanionStruct_AutoScalingPolicyName_) Is_(__source _dafny.Sequence) bool { + var _2_x _dafny.Sequence = (__source) + _ = _2_x + return Companion_Default___.IsValid__AutoScalingPolicyName(_2_x) +} + +// Definition of datatype AutoScalingPolicyUpdate +type AutoScalingPolicyUpdate struct { + Data_AutoScalingPolicyUpdate_ +} + +func (_this AutoScalingPolicyUpdate) Get_() Data_AutoScalingPolicyUpdate_ { + return _this.Data_AutoScalingPolicyUpdate_ +} + +type Data_AutoScalingPolicyUpdate_ interface { + isAutoScalingPolicyUpdate() +} + +type CompanionStruct_AutoScalingPolicyUpdate_ struct { +} + +var Companion_AutoScalingPolicyUpdate_ = CompanionStruct_AutoScalingPolicyUpdate_{} + +type AutoScalingPolicyUpdate_AutoScalingPolicyUpdate struct { + PolicyName m_Wrappers.Option + TargetTrackingScalingPolicyConfiguration AutoScalingTargetTrackingScalingPolicyConfigurationUpdate +} + +func (AutoScalingPolicyUpdate_AutoScalingPolicyUpdate) isAutoScalingPolicyUpdate() {} + +func (CompanionStruct_AutoScalingPolicyUpdate_) Create_AutoScalingPolicyUpdate_(PolicyName m_Wrappers.Option, TargetTrackingScalingPolicyConfiguration AutoScalingTargetTrackingScalingPolicyConfigurationUpdate) AutoScalingPolicyUpdate { + return AutoScalingPolicyUpdate{AutoScalingPolicyUpdate_AutoScalingPolicyUpdate{PolicyName, TargetTrackingScalingPolicyConfiguration}} +} + +func (_this AutoScalingPolicyUpdate) Is_AutoScalingPolicyUpdate() bool { + _, ok := _this.Get_().(AutoScalingPolicyUpdate_AutoScalingPolicyUpdate) + return ok +} + +func (CompanionStruct_AutoScalingPolicyUpdate_) Default() AutoScalingPolicyUpdate { + return Companion_AutoScalingPolicyUpdate_.Create_AutoScalingPolicyUpdate_(m_Wrappers.Companion_Option_.Default(), Companion_AutoScalingTargetTrackingScalingPolicyConfigurationUpdate_.Default()) +} + +func (_this AutoScalingPolicyUpdate) Dtor_PolicyName() m_Wrappers.Option { + return _this.Get_().(AutoScalingPolicyUpdate_AutoScalingPolicyUpdate).PolicyName +} + +func (_this AutoScalingPolicyUpdate) Dtor_TargetTrackingScalingPolicyConfiguration() AutoScalingTargetTrackingScalingPolicyConfigurationUpdate { + return _this.Get_().(AutoScalingPolicyUpdate_AutoScalingPolicyUpdate).TargetTrackingScalingPolicyConfiguration +} + +func (_this AutoScalingPolicyUpdate) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case AutoScalingPolicyUpdate_AutoScalingPolicyUpdate: + { + return "ComAmazonawsDynamodbTypes.AutoScalingPolicyUpdate.AutoScalingPolicyUpdate" + "(" + _dafny.String(data.PolicyName) + ", " + _dafny.String(data.TargetTrackingScalingPolicyConfiguration) + ")" + } + default: + { + return "" + } + } +} + +func (_this AutoScalingPolicyUpdate) Equals(other AutoScalingPolicyUpdate) bool { + switch data1 := _this.Get_().(type) { + case AutoScalingPolicyUpdate_AutoScalingPolicyUpdate: + { + data2, ok := other.Get_().(AutoScalingPolicyUpdate_AutoScalingPolicyUpdate) + return ok && data1.PolicyName.Equals(data2.PolicyName) && data1.TargetTrackingScalingPolicyConfiguration.Equals(data2.TargetTrackingScalingPolicyConfiguration) + } + default: + { + return false // unexpected + } + } +} + +func (_this AutoScalingPolicyUpdate) EqualsGeneric(other interface{}) bool { + typed, ok := other.(AutoScalingPolicyUpdate) + return ok && _this.Equals(typed) +} + +func Type_AutoScalingPolicyUpdate_() _dafny.TypeDescriptor { + return type_AutoScalingPolicyUpdate_{} +} + +type type_AutoScalingPolicyUpdate_ struct { +} + +func (_this type_AutoScalingPolicyUpdate_) Default() interface{} { + return Companion_AutoScalingPolicyUpdate_.Default() +} + +func (_this type_AutoScalingPolicyUpdate_) String() string { + return "ComAmazonawsDynamodbTypes.AutoScalingPolicyUpdate" +} +func (_this AutoScalingPolicyUpdate) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = AutoScalingPolicyUpdate{} + +// End of datatype AutoScalingPolicyUpdate + +// Definition of class AutoScalingRoleArn +type AutoScalingRoleArn struct { +} + +func New_AutoScalingRoleArn_() *AutoScalingRoleArn { + _this := AutoScalingRoleArn{} + + return &_this +} + +type CompanionStruct_AutoScalingRoleArn_ struct { +} + +var Companion_AutoScalingRoleArn_ = CompanionStruct_AutoScalingRoleArn_{} + +func (*AutoScalingRoleArn) String() string { + return "ComAmazonawsDynamodbTypes.AutoScalingRoleArn" +} + +// End of class AutoScalingRoleArn + +func Type_AutoScalingRoleArn_() _dafny.TypeDescriptor { + return type_AutoScalingRoleArn_{} +} + +type type_AutoScalingRoleArn_ struct { +} + +func (_this type_AutoScalingRoleArn_) Default() interface{} { + return _dafny.EmptySeq.SetString() +} + +func (_this type_AutoScalingRoleArn_) String() string { + return "ComAmazonawsDynamodbTypes.AutoScalingRoleArn" +} +func (_this *CompanionStruct_AutoScalingRoleArn_) Is_(__source _dafny.Sequence) bool { + var _3_x _dafny.Sequence = (__source) + _ = _3_x + return Companion_Default___.IsValid__AutoScalingRoleArn(_3_x) +} + +// Definition of datatype AutoScalingSettingsDescription +type AutoScalingSettingsDescription struct { + Data_AutoScalingSettingsDescription_ +} + +func (_this AutoScalingSettingsDescription) Get_() Data_AutoScalingSettingsDescription_ { + return _this.Data_AutoScalingSettingsDescription_ +} + +type Data_AutoScalingSettingsDescription_ interface { + isAutoScalingSettingsDescription() +} + +type CompanionStruct_AutoScalingSettingsDescription_ struct { +} + +var Companion_AutoScalingSettingsDescription_ = CompanionStruct_AutoScalingSettingsDescription_{} + +type AutoScalingSettingsDescription_AutoScalingSettingsDescription struct { + MinimumUnits m_Wrappers.Option + MaximumUnits m_Wrappers.Option + AutoScalingDisabled m_Wrappers.Option + AutoScalingRoleArn m_Wrappers.Option + ScalingPolicies m_Wrappers.Option +} + +func (AutoScalingSettingsDescription_AutoScalingSettingsDescription) isAutoScalingSettingsDescription() { +} + +func (CompanionStruct_AutoScalingSettingsDescription_) Create_AutoScalingSettingsDescription_(MinimumUnits m_Wrappers.Option, MaximumUnits m_Wrappers.Option, AutoScalingDisabled m_Wrappers.Option, AutoScalingRoleArn m_Wrappers.Option, ScalingPolicies m_Wrappers.Option) AutoScalingSettingsDescription { + return AutoScalingSettingsDescription{AutoScalingSettingsDescription_AutoScalingSettingsDescription{MinimumUnits, MaximumUnits, AutoScalingDisabled, AutoScalingRoleArn, ScalingPolicies}} +} + +func (_this AutoScalingSettingsDescription) Is_AutoScalingSettingsDescription() bool { + _, ok := _this.Get_().(AutoScalingSettingsDescription_AutoScalingSettingsDescription) + return ok +} + +func (CompanionStruct_AutoScalingSettingsDescription_) Default() AutoScalingSettingsDescription { + return Companion_AutoScalingSettingsDescription_.Create_AutoScalingSettingsDescription_(m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this AutoScalingSettingsDescription) Dtor_MinimumUnits() m_Wrappers.Option { + return _this.Get_().(AutoScalingSettingsDescription_AutoScalingSettingsDescription).MinimumUnits +} + +func (_this AutoScalingSettingsDescription) Dtor_MaximumUnits() m_Wrappers.Option { + return _this.Get_().(AutoScalingSettingsDescription_AutoScalingSettingsDescription).MaximumUnits +} + +func (_this AutoScalingSettingsDescription) Dtor_AutoScalingDisabled() m_Wrappers.Option { + return _this.Get_().(AutoScalingSettingsDescription_AutoScalingSettingsDescription).AutoScalingDisabled +} + +func (_this AutoScalingSettingsDescription) Dtor_AutoScalingRoleArn() m_Wrappers.Option { + return _this.Get_().(AutoScalingSettingsDescription_AutoScalingSettingsDescription).AutoScalingRoleArn +} + +func (_this AutoScalingSettingsDescription) Dtor_ScalingPolicies() m_Wrappers.Option { + return _this.Get_().(AutoScalingSettingsDescription_AutoScalingSettingsDescription).ScalingPolicies +} + +func (_this AutoScalingSettingsDescription) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case AutoScalingSettingsDescription_AutoScalingSettingsDescription: + { + return "ComAmazonawsDynamodbTypes.AutoScalingSettingsDescription.AutoScalingSettingsDescription" + "(" + _dafny.String(data.MinimumUnits) + ", " + _dafny.String(data.MaximumUnits) + ", " + _dafny.String(data.AutoScalingDisabled) + ", " + _dafny.String(data.AutoScalingRoleArn) + ", " + _dafny.String(data.ScalingPolicies) + ")" + } + default: + { + return "" + } + } +} + +func (_this AutoScalingSettingsDescription) Equals(other AutoScalingSettingsDescription) bool { + switch data1 := _this.Get_().(type) { + case AutoScalingSettingsDescription_AutoScalingSettingsDescription: + { + data2, ok := other.Get_().(AutoScalingSettingsDescription_AutoScalingSettingsDescription) + return ok && data1.MinimumUnits.Equals(data2.MinimumUnits) && data1.MaximumUnits.Equals(data2.MaximumUnits) && data1.AutoScalingDisabled.Equals(data2.AutoScalingDisabled) && data1.AutoScalingRoleArn.Equals(data2.AutoScalingRoleArn) && data1.ScalingPolicies.Equals(data2.ScalingPolicies) + } + default: + { + return false // unexpected + } + } +} + +func (_this AutoScalingSettingsDescription) EqualsGeneric(other interface{}) bool { + typed, ok := other.(AutoScalingSettingsDescription) + return ok && _this.Equals(typed) +} + +func Type_AutoScalingSettingsDescription_() _dafny.TypeDescriptor { + return type_AutoScalingSettingsDescription_{} +} + +type type_AutoScalingSettingsDescription_ struct { +} + +func (_this type_AutoScalingSettingsDescription_) Default() interface{} { + return Companion_AutoScalingSettingsDescription_.Default() +} + +func (_this type_AutoScalingSettingsDescription_) String() string { + return "ComAmazonawsDynamodbTypes.AutoScalingSettingsDescription" +} +func (_this AutoScalingSettingsDescription) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = AutoScalingSettingsDescription{} + +// End of datatype AutoScalingSettingsDescription + +// Definition of datatype AutoScalingSettingsUpdate +type AutoScalingSettingsUpdate struct { + Data_AutoScalingSettingsUpdate_ +} + +func (_this AutoScalingSettingsUpdate) Get_() Data_AutoScalingSettingsUpdate_ { + return _this.Data_AutoScalingSettingsUpdate_ +} + +type Data_AutoScalingSettingsUpdate_ interface { + isAutoScalingSettingsUpdate() +} + +type CompanionStruct_AutoScalingSettingsUpdate_ struct { +} + +var Companion_AutoScalingSettingsUpdate_ = CompanionStruct_AutoScalingSettingsUpdate_{} + +type AutoScalingSettingsUpdate_AutoScalingSettingsUpdate struct { + MinimumUnits m_Wrappers.Option + MaximumUnits m_Wrappers.Option + AutoScalingDisabled m_Wrappers.Option + AutoScalingRoleArn m_Wrappers.Option + ScalingPolicyUpdate m_Wrappers.Option +} + +func (AutoScalingSettingsUpdate_AutoScalingSettingsUpdate) isAutoScalingSettingsUpdate() {} + +func (CompanionStruct_AutoScalingSettingsUpdate_) Create_AutoScalingSettingsUpdate_(MinimumUnits m_Wrappers.Option, MaximumUnits m_Wrappers.Option, AutoScalingDisabled m_Wrappers.Option, AutoScalingRoleArn m_Wrappers.Option, ScalingPolicyUpdate m_Wrappers.Option) AutoScalingSettingsUpdate { + return AutoScalingSettingsUpdate{AutoScalingSettingsUpdate_AutoScalingSettingsUpdate{MinimumUnits, MaximumUnits, AutoScalingDisabled, AutoScalingRoleArn, ScalingPolicyUpdate}} +} + +func (_this AutoScalingSettingsUpdate) Is_AutoScalingSettingsUpdate() bool { + _, ok := _this.Get_().(AutoScalingSettingsUpdate_AutoScalingSettingsUpdate) + return ok +} + +func (CompanionStruct_AutoScalingSettingsUpdate_) Default() AutoScalingSettingsUpdate { + return Companion_AutoScalingSettingsUpdate_.Create_AutoScalingSettingsUpdate_(m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this AutoScalingSettingsUpdate) Dtor_MinimumUnits() m_Wrappers.Option { + return _this.Get_().(AutoScalingSettingsUpdate_AutoScalingSettingsUpdate).MinimumUnits +} + +func (_this AutoScalingSettingsUpdate) Dtor_MaximumUnits() m_Wrappers.Option { + return _this.Get_().(AutoScalingSettingsUpdate_AutoScalingSettingsUpdate).MaximumUnits +} + +func (_this AutoScalingSettingsUpdate) Dtor_AutoScalingDisabled() m_Wrappers.Option { + return _this.Get_().(AutoScalingSettingsUpdate_AutoScalingSettingsUpdate).AutoScalingDisabled +} + +func (_this AutoScalingSettingsUpdate) Dtor_AutoScalingRoleArn() m_Wrappers.Option { + return _this.Get_().(AutoScalingSettingsUpdate_AutoScalingSettingsUpdate).AutoScalingRoleArn +} + +func (_this AutoScalingSettingsUpdate) Dtor_ScalingPolicyUpdate() m_Wrappers.Option { + return _this.Get_().(AutoScalingSettingsUpdate_AutoScalingSettingsUpdate).ScalingPolicyUpdate +} + +func (_this AutoScalingSettingsUpdate) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case AutoScalingSettingsUpdate_AutoScalingSettingsUpdate: + { + return "ComAmazonawsDynamodbTypes.AutoScalingSettingsUpdate.AutoScalingSettingsUpdate" + "(" + _dafny.String(data.MinimumUnits) + ", " + _dafny.String(data.MaximumUnits) + ", " + _dafny.String(data.AutoScalingDisabled) + ", " + _dafny.String(data.AutoScalingRoleArn) + ", " + _dafny.String(data.ScalingPolicyUpdate) + ")" + } + default: + { + return "" + } + } +} + +func (_this AutoScalingSettingsUpdate) Equals(other AutoScalingSettingsUpdate) bool { + switch data1 := _this.Get_().(type) { + case AutoScalingSettingsUpdate_AutoScalingSettingsUpdate: + { + data2, ok := other.Get_().(AutoScalingSettingsUpdate_AutoScalingSettingsUpdate) + return ok && data1.MinimumUnits.Equals(data2.MinimumUnits) && data1.MaximumUnits.Equals(data2.MaximumUnits) && data1.AutoScalingDisabled.Equals(data2.AutoScalingDisabled) && data1.AutoScalingRoleArn.Equals(data2.AutoScalingRoleArn) && data1.ScalingPolicyUpdate.Equals(data2.ScalingPolicyUpdate) + } + default: + { + return false // unexpected + } + } +} + +func (_this AutoScalingSettingsUpdate) EqualsGeneric(other interface{}) bool { + typed, ok := other.(AutoScalingSettingsUpdate) + return ok && _this.Equals(typed) +} + +func Type_AutoScalingSettingsUpdate_() _dafny.TypeDescriptor { + return type_AutoScalingSettingsUpdate_{} +} + +type type_AutoScalingSettingsUpdate_ struct { +} + +func (_this type_AutoScalingSettingsUpdate_) Default() interface{} { + return Companion_AutoScalingSettingsUpdate_.Default() +} + +func (_this type_AutoScalingSettingsUpdate_) String() string { + return "ComAmazonawsDynamodbTypes.AutoScalingSettingsUpdate" +} +func (_this AutoScalingSettingsUpdate) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = AutoScalingSettingsUpdate{} + +// End of datatype AutoScalingSettingsUpdate + +// Definition of datatype AutoScalingTargetTrackingScalingPolicyConfigurationDescription +type AutoScalingTargetTrackingScalingPolicyConfigurationDescription struct { + Data_AutoScalingTargetTrackingScalingPolicyConfigurationDescription_ +} + +func (_this AutoScalingTargetTrackingScalingPolicyConfigurationDescription) Get_() Data_AutoScalingTargetTrackingScalingPolicyConfigurationDescription_ { + return _this.Data_AutoScalingTargetTrackingScalingPolicyConfigurationDescription_ +} + +type Data_AutoScalingTargetTrackingScalingPolicyConfigurationDescription_ interface { + isAutoScalingTargetTrackingScalingPolicyConfigurationDescription() +} + +type CompanionStruct_AutoScalingTargetTrackingScalingPolicyConfigurationDescription_ struct { +} + +var Companion_AutoScalingTargetTrackingScalingPolicyConfigurationDescription_ = CompanionStruct_AutoScalingTargetTrackingScalingPolicyConfigurationDescription_{} + +type AutoScalingTargetTrackingScalingPolicyConfigurationDescription_AutoScalingTargetTrackingScalingPolicyConfigurationDescription struct { + DisableScaleIn m_Wrappers.Option + ScaleInCooldown m_Wrappers.Option + ScaleOutCooldown m_Wrappers.Option + TargetValue _dafny.Sequence +} + +func (AutoScalingTargetTrackingScalingPolicyConfigurationDescription_AutoScalingTargetTrackingScalingPolicyConfigurationDescription) isAutoScalingTargetTrackingScalingPolicyConfigurationDescription() { +} + +func (CompanionStruct_AutoScalingTargetTrackingScalingPolicyConfigurationDescription_) Create_AutoScalingTargetTrackingScalingPolicyConfigurationDescription_(DisableScaleIn m_Wrappers.Option, ScaleInCooldown m_Wrappers.Option, ScaleOutCooldown m_Wrappers.Option, TargetValue _dafny.Sequence) AutoScalingTargetTrackingScalingPolicyConfigurationDescription { + return AutoScalingTargetTrackingScalingPolicyConfigurationDescription{AutoScalingTargetTrackingScalingPolicyConfigurationDescription_AutoScalingTargetTrackingScalingPolicyConfigurationDescription{DisableScaleIn, ScaleInCooldown, ScaleOutCooldown, TargetValue}} +} + +func (_this AutoScalingTargetTrackingScalingPolicyConfigurationDescription) Is_AutoScalingTargetTrackingScalingPolicyConfigurationDescription() bool { + _, ok := _this.Get_().(AutoScalingTargetTrackingScalingPolicyConfigurationDescription_AutoScalingTargetTrackingScalingPolicyConfigurationDescription) + return ok +} + +func (CompanionStruct_AutoScalingTargetTrackingScalingPolicyConfigurationDescription_) Default() AutoScalingTargetTrackingScalingPolicyConfigurationDescription { + return Companion_AutoScalingTargetTrackingScalingPolicyConfigurationDescription_.Create_AutoScalingTargetTrackingScalingPolicyConfigurationDescription_(m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), _dafny.EmptySeq) +} + +func (_this AutoScalingTargetTrackingScalingPolicyConfigurationDescription) Dtor_DisableScaleIn() m_Wrappers.Option { + return _this.Get_().(AutoScalingTargetTrackingScalingPolicyConfigurationDescription_AutoScalingTargetTrackingScalingPolicyConfigurationDescription).DisableScaleIn +} + +func (_this AutoScalingTargetTrackingScalingPolicyConfigurationDescription) Dtor_ScaleInCooldown() m_Wrappers.Option { + return _this.Get_().(AutoScalingTargetTrackingScalingPolicyConfigurationDescription_AutoScalingTargetTrackingScalingPolicyConfigurationDescription).ScaleInCooldown +} + +func (_this AutoScalingTargetTrackingScalingPolicyConfigurationDescription) Dtor_ScaleOutCooldown() m_Wrappers.Option { + return _this.Get_().(AutoScalingTargetTrackingScalingPolicyConfigurationDescription_AutoScalingTargetTrackingScalingPolicyConfigurationDescription).ScaleOutCooldown +} + +func (_this AutoScalingTargetTrackingScalingPolicyConfigurationDescription) Dtor_TargetValue() _dafny.Sequence { + return _this.Get_().(AutoScalingTargetTrackingScalingPolicyConfigurationDescription_AutoScalingTargetTrackingScalingPolicyConfigurationDescription).TargetValue +} + +func (_this AutoScalingTargetTrackingScalingPolicyConfigurationDescription) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case AutoScalingTargetTrackingScalingPolicyConfigurationDescription_AutoScalingTargetTrackingScalingPolicyConfigurationDescription: + { + return "ComAmazonawsDynamodbTypes.AutoScalingTargetTrackingScalingPolicyConfigurationDescription.AutoScalingTargetTrackingScalingPolicyConfigurationDescription" + "(" + _dafny.String(data.DisableScaleIn) + ", " + _dafny.String(data.ScaleInCooldown) + ", " + _dafny.String(data.ScaleOutCooldown) + ", " + _dafny.String(data.TargetValue) + ")" + } + default: + { + return "" + } + } +} + +func (_this AutoScalingTargetTrackingScalingPolicyConfigurationDescription) Equals(other AutoScalingTargetTrackingScalingPolicyConfigurationDescription) bool { + switch data1 := _this.Get_().(type) { + case AutoScalingTargetTrackingScalingPolicyConfigurationDescription_AutoScalingTargetTrackingScalingPolicyConfigurationDescription: + { + data2, ok := other.Get_().(AutoScalingTargetTrackingScalingPolicyConfigurationDescription_AutoScalingTargetTrackingScalingPolicyConfigurationDescription) + return ok && data1.DisableScaleIn.Equals(data2.DisableScaleIn) && data1.ScaleInCooldown.Equals(data2.ScaleInCooldown) && data1.ScaleOutCooldown.Equals(data2.ScaleOutCooldown) && data1.TargetValue.Equals(data2.TargetValue) + } + default: + { + return false // unexpected + } + } +} + +func (_this AutoScalingTargetTrackingScalingPolicyConfigurationDescription) EqualsGeneric(other interface{}) bool { + typed, ok := other.(AutoScalingTargetTrackingScalingPolicyConfigurationDescription) + return ok && _this.Equals(typed) +} + +func Type_AutoScalingTargetTrackingScalingPolicyConfigurationDescription_() _dafny.TypeDescriptor { + return type_AutoScalingTargetTrackingScalingPolicyConfigurationDescription_{} +} + +type type_AutoScalingTargetTrackingScalingPolicyConfigurationDescription_ struct { +} + +func (_this type_AutoScalingTargetTrackingScalingPolicyConfigurationDescription_) Default() interface{} { + return Companion_AutoScalingTargetTrackingScalingPolicyConfigurationDescription_.Default() +} + +func (_this type_AutoScalingTargetTrackingScalingPolicyConfigurationDescription_) String() string { + return "ComAmazonawsDynamodbTypes.AutoScalingTargetTrackingScalingPolicyConfigurationDescription" +} +func (_this AutoScalingTargetTrackingScalingPolicyConfigurationDescription) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = AutoScalingTargetTrackingScalingPolicyConfigurationDescription{} + +// End of datatype AutoScalingTargetTrackingScalingPolicyConfigurationDescription + +// Definition of datatype AutoScalingTargetTrackingScalingPolicyConfigurationUpdate +type AutoScalingTargetTrackingScalingPolicyConfigurationUpdate struct { + Data_AutoScalingTargetTrackingScalingPolicyConfigurationUpdate_ +} + +func (_this AutoScalingTargetTrackingScalingPolicyConfigurationUpdate) Get_() Data_AutoScalingTargetTrackingScalingPolicyConfigurationUpdate_ { + return _this.Data_AutoScalingTargetTrackingScalingPolicyConfigurationUpdate_ +} + +type Data_AutoScalingTargetTrackingScalingPolicyConfigurationUpdate_ interface { + isAutoScalingTargetTrackingScalingPolicyConfigurationUpdate() +} + +type CompanionStruct_AutoScalingTargetTrackingScalingPolicyConfigurationUpdate_ struct { +} + +var Companion_AutoScalingTargetTrackingScalingPolicyConfigurationUpdate_ = CompanionStruct_AutoScalingTargetTrackingScalingPolicyConfigurationUpdate_{} + +type AutoScalingTargetTrackingScalingPolicyConfigurationUpdate_AutoScalingTargetTrackingScalingPolicyConfigurationUpdate struct { + DisableScaleIn m_Wrappers.Option + ScaleInCooldown m_Wrappers.Option + ScaleOutCooldown m_Wrappers.Option + TargetValue _dafny.Sequence +} + +func (AutoScalingTargetTrackingScalingPolicyConfigurationUpdate_AutoScalingTargetTrackingScalingPolicyConfigurationUpdate) isAutoScalingTargetTrackingScalingPolicyConfigurationUpdate() { +} + +func (CompanionStruct_AutoScalingTargetTrackingScalingPolicyConfigurationUpdate_) Create_AutoScalingTargetTrackingScalingPolicyConfigurationUpdate_(DisableScaleIn m_Wrappers.Option, ScaleInCooldown m_Wrappers.Option, ScaleOutCooldown m_Wrappers.Option, TargetValue _dafny.Sequence) AutoScalingTargetTrackingScalingPolicyConfigurationUpdate { + return AutoScalingTargetTrackingScalingPolicyConfigurationUpdate{AutoScalingTargetTrackingScalingPolicyConfigurationUpdate_AutoScalingTargetTrackingScalingPolicyConfigurationUpdate{DisableScaleIn, ScaleInCooldown, ScaleOutCooldown, TargetValue}} +} + +func (_this AutoScalingTargetTrackingScalingPolicyConfigurationUpdate) Is_AutoScalingTargetTrackingScalingPolicyConfigurationUpdate() bool { + _, ok := _this.Get_().(AutoScalingTargetTrackingScalingPolicyConfigurationUpdate_AutoScalingTargetTrackingScalingPolicyConfigurationUpdate) + return ok +} + +func (CompanionStruct_AutoScalingTargetTrackingScalingPolicyConfigurationUpdate_) Default() AutoScalingTargetTrackingScalingPolicyConfigurationUpdate { + return Companion_AutoScalingTargetTrackingScalingPolicyConfigurationUpdate_.Create_AutoScalingTargetTrackingScalingPolicyConfigurationUpdate_(m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), _dafny.EmptySeq) +} + +func (_this AutoScalingTargetTrackingScalingPolicyConfigurationUpdate) Dtor_DisableScaleIn() m_Wrappers.Option { + return _this.Get_().(AutoScalingTargetTrackingScalingPolicyConfigurationUpdate_AutoScalingTargetTrackingScalingPolicyConfigurationUpdate).DisableScaleIn +} + +func (_this AutoScalingTargetTrackingScalingPolicyConfigurationUpdate) Dtor_ScaleInCooldown() m_Wrappers.Option { + return _this.Get_().(AutoScalingTargetTrackingScalingPolicyConfigurationUpdate_AutoScalingTargetTrackingScalingPolicyConfigurationUpdate).ScaleInCooldown +} + +func (_this AutoScalingTargetTrackingScalingPolicyConfigurationUpdate) Dtor_ScaleOutCooldown() m_Wrappers.Option { + return _this.Get_().(AutoScalingTargetTrackingScalingPolicyConfigurationUpdate_AutoScalingTargetTrackingScalingPolicyConfigurationUpdate).ScaleOutCooldown +} + +func (_this AutoScalingTargetTrackingScalingPolicyConfigurationUpdate) Dtor_TargetValue() _dafny.Sequence { + return _this.Get_().(AutoScalingTargetTrackingScalingPolicyConfigurationUpdate_AutoScalingTargetTrackingScalingPolicyConfigurationUpdate).TargetValue +} + +func (_this AutoScalingTargetTrackingScalingPolicyConfigurationUpdate) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case AutoScalingTargetTrackingScalingPolicyConfigurationUpdate_AutoScalingTargetTrackingScalingPolicyConfigurationUpdate: + { + return "ComAmazonawsDynamodbTypes.AutoScalingTargetTrackingScalingPolicyConfigurationUpdate.AutoScalingTargetTrackingScalingPolicyConfigurationUpdate" + "(" + _dafny.String(data.DisableScaleIn) + ", " + _dafny.String(data.ScaleInCooldown) + ", " + _dafny.String(data.ScaleOutCooldown) + ", " + _dafny.String(data.TargetValue) + ")" + } + default: + { + return "" + } + } +} + +func (_this AutoScalingTargetTrackingScalingPolicyConfigurationUpdate) Equals(other AutoScalingTargetTrackingScalingPolicyConfigurationUpdate) bool { + switch data1 := _this.Get_().(type) { + case AutoScalingTargetTrackingScalingPolicyConfigurationUpdate_AutoScalingTargetTrackingScalingPolicyConfigurationUpdate: + { + data2, ok := other.Get_().(AutoScalingTargetTrackingScalingPolicyConfigurationUpdate_AutoScalingTargetTrackingScalingPolicyConfigurationUpdate) + return ok && data1.DisableScaleIn.Equals(data2.DisableScaleIn) && data1.ScaleInCooldown.Equals(data2.ScaleInCooldown) && data1.ScaleOutCooldown.Equals(data2.ScaleOutCooldown) && data1.TargetValue.Equals(data2.TargetValue) + } + default: + { + return false // unexpected + } + } +} + +func (_this AutoScalingTargetTrackingScalingPolicyConfigurationUpdate) EqualsGeneric(other interface{}) bool { + typed, ok := other.(AutoScalingTargetTrackingScalingPolicyConfigurationUpdate) + return ok && _this.Equals(typed) +} + +func Type_AutoScalingTargetTrackingScalingPolicyConfigurationUpdate_() _dafny.TypeDescriptor { + return type_AutoScalingTargetTrackingScalingPolicyConfigurationUpdate_{} +} + +type type_AutoScalingTargetTrackingScalingPolicyConfigurationUpdate_ struct { +} + +func (_this type_AutoScalingTargetTrackingScalingPolicyConfigurationUpdate_) Default() interface{} { + return Companion_AutoScalingTargetTrackingScalingPolicyConfigurationUpdate_.Default() +} + +func (_this type_AutoScalingTargetTrackingScalingPolicyConfigurationUpdate_) String() string { + return "ComAmazonawsDynamodbTypes.AutoScalingTargetTrackingScalingPolicyConfigurationUpdate" +} +func (_this AutoScalingTargetTrackingScalingPolicyConfigurationUpdate) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = AutoScalingTargetTrackingScalingPolicyConfigurationUpdate{} + +// End of datatype AutoScalingTargetTrackingScalingPolicyConfigurationUpdate + +// Definition of class BackupArn +type BackupArn struct { +} + +func New_BackupArn_() *BackupArn { + _this := BackupArn{} + + return &_this +} + +type CompanionStruct_BackupArn_ struct { +} + +var Companion_BackupArn_ = CompanionStruct_BackupArn_{} + +func (*BackupArn) String() string { + return "ComAmazonawsDynamodbTypes.BackupArn" +} + +// End of class BackupArn + +func Type_BackupArn_() _dafny.TypeDescriptor { + return type_BackupArn_{} +} + +type type_BackupArn_ struct { +} + +func (_this type_BackupArn_) Default() interface{} { + return _dafny.EmptySeq.SetString() +} + +func (_this type_BackupArn_) String() string { + return "ComAmazonawsDynamodbTypes.BackupArn" +} +func (_this *CompanionStruct_BackupArn_) Is_(__source _dafny.Sequence) bool { + var _4_x _dafny.Sequence = (__source) + _ = _4_x + return Companion_Default___.IsValid__BackupArn(_4_x) +} + +// Definition of datatype BackupDescription +type BackupDescription struct { + Data_BackupDescription_ +} + +func (_this BackupDescription) Get_() Data_BackupDescription_ { + return _this.Data_BackupDescription_ +} + +type Data_BackupDescription_ interface { + isBackupDescription() +} + +type CompanionStruct_BackupDescription_ struct { +} + +var Companion_BackupDescription_ = CompanionStruct_BackupDescription_{} + +type BackupDescription_BackupDescription struct { + BackupDetails m_Wrappers.Option + SourceTableDetails m_Wrappers.Option + SourceTableFeatureDetails m_Wrappers.Option +} + +func (BackupDescription_BackupDescription) isBackupDescription() {} + +func (CompanionStruct_BackupDescription_) Create_BackupDescription_(BackupDetails m_Wrappers.Option, SourceTableDetails m_Wrappers.Option, SourceTableFeatureDetails m_Wrappers.Option) BackupDescription { + return BackupDescription{BackupDescription_BackupDescription{BackupDetails, SourceTableDetails, SourceTableFeatureDetails}} +} + +func (_this BackupDescription) Is_BackupDescription() bool { + _, ok := _this.Get_().(BackupDescription_BackupDescription) + return ok +} + +func (CompanionStruct_BackupDescription_) Default() BackupDescription { + return Companion_BackupDescription_.Create_BackupDescription_(m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this BackupDescription) Dtor_BackupDetails() m_Wrappers.Option { + return _this.Get_().(BackupDescription_BackupDescription).BackupDetails +} + +func (_this BackupDescription) Dtor_SourceTableDetails() m_Wrappers.Option { + return _this.Get_().(BackupDescription_BackupDescription).SourceTableDetails +} + +func (_this BackupDescription) Dtor_SourceTableFeatureDetails() m_Wrappers.Option { + return _this.Get_().(BackupDescription_BackupDescription).SourceTableFeatureDetails +} + +func (_this BackupDescription) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case BackupDescription_BackupDescription: + { + return "ComAmazonawsDynamodbTypes.BackupDescription.BackupDescription" + "(" + _dafny.String(data.BackupDetails) + ", " + _dafny.String(data.SourceTableDetails) + ", " + _dafny.String(data.SourceTableFeatureDetails) + ")" + } + default: + { + return "" + } + } +} + +func (_this BackupDescription) Equals(other BackupDescription) bool { + switch data1 := _this.Get_().(type) { + case BackupDescription_BackupDescription: + { + data2, ok := other.Get_().(BackupDescription_BackupDescription) + return ok && data1.BackupDetails.Equals(data2.BackupDetails) && data1.SourceTableDetails.Equals(data2.SourceTableDetails) && data1.SourceTableFeatureDetails.Equals(data2.SourceTableFeatureDetails) + } + default: + { + return false // unexpected + } + } +} + +func (_this BackupDescription) EqualsGeneric(other interface{}) bool { + typed, ok := other.(BackupDescription) + return ok && _this.Equals(typed) +} + +func Type_BackupDescription_() _dafny.TypeDescriptor { + return type_BackupDescription_{} +} + +type type_BackupDescription_ struct { +} + +func (_this type_BackupDescription_) Default() interface{} { + return Companion_BackupDescription_.Default() +} + +func (_this type_BackupDescription_) String() string { + return "ComAmazonawsDynamodbTypes.BackupDescription" +} +func (_this BackupDescription) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = BackupDescription{} + +// End of datatype BackupDescription + +// Definition of datatype BackupDetails +type BackupDetails struct { + Data_BackupDetails_ +} + +func (_this BackupDetails) Get_() Data_BackupDetails_ { + return _this.Data_BackupDetails_ +} + +type Data_BackupDetails_ interface { + isBackupDetails() +} + +type CompanionStruct_BackupDetails_ struct { +} + +var Companion_BackupDetails_ = CompanionStruct_BackupDetails_{} + +type BackupDetails_BackupDetails struct { + BackupArn _dafny.Sequence + BackupName _dafny.Sequence + BackupSizeBytes m_Wrappers.Option + BackupStatus BackupStatus + BackupType BackupType + BackupCreationDateTime _dafny.Sequence + BackupExpiryDateTime m_Wrappers.Option +} + +func (BackupDetails_BackupDetails) isBackupDetails() {} + +func (CompanionStruct_BackupDetails_) Create_BackupDetails_(BackupArn _dafny.Sequence, BackupName _dafny.Sequence, BackupSizeBytes m_Wrappers.Option, BackupStatus BackupStatus, BackupType BackupType, BackupCreationDateTime _dafny.Sequence, BackupExpiryDateTime m_Wrappers.Option) BackupDetails { + return BackupDetails{BackupDetails_BackupDetails{BackupArn, BackupName, BackupSizeBytes, BackupStatus, BackupType, BackupCreationDateTime, BackupExpiryDateTime}} +} + +func (_this BackupDetails) Is_BackupDetails() bool { + _, ok := _this.Get_().(BackupDetails_BackupDetails) + return ok +} + +func (CompanionStruct_BackupDetails_) Default() BackupDetails { + return Companion_BackupDetails_.Create_BackupDetails_(_dafny.EmptySeq.SetString(), _dafny.EmptySeq.SetString(), m_Wrappers.Companion_Option_.Default(), Companion_BackupStatus_.Default(), Companion_BackupType_.Default(), _dafny.EmptySeq.SetString(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this BackupDetails) Dtor_BackupArn() _dafny.Sequence { + return _this.Get_().(BackupDetails_BackupDetails).BackupArn +} + +func (_this BackupDetails) Dtor_BackupName() _dafny.Sequence { + return _this.Get_().(BackupDetails_BackupDetails).BackupName +} + +func (_this BackupDetails) Dtor_BackupSizeBytes() m_Wrappers.Option { + return _this.Get_().(BackupDetails_BackupDetails).BackupSizeBytes +} + +func (_this BackupDetails) Dtor_BackupStatus() BackupStatus { + return _this.Get_().(BackupDetails_BackupDetails).BackupStatus +} + +func (_this BackupDetails) Dtor_BackupType() BackupType { + return _this.Get_().(BackupDetails_BackupDetails).BackupType +} + +func (_this BackupDetails) Dtor_BackupCreationDateTime() _dafny.Sequence { + return _this.Get_().(BackupDetails_BackupDetails).BackupCreationDateTime +} + +func (_this BackupDetails) Dtor_BackupExpiryDateTime() m_Wrappers.Option { + return _this.Get_().(BackupDetails_BackupDetails).BackupExpiryDateTime +} + +func (_this BackupDetails) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case BackupDetails_BackupDetails: + { + return "ComAmazonawsDynamodbTypes.BackupDetails.BackupDetails" + "(" + _dafny.String(data.BackupArn) + ", " + _dafny.String(data.BackupName) + ", " + _dafny.String(data.BackupSizeBytes) + ", " + _dafny.String(data.BackupStatus) + ", " + _dafny.String(data.BackupType) + ", " + _dafny.String(data.BackupCreationDateTime) + ", " + _dafny.String(data.BackupExpiryDateTime) + ")" + } + default: + { + return "" + } + } +} + +func (_this BackupDetails) Equals(other BackupDetails) bool { + switch data1 := _this.Get_().(type) { + case BackupDetails_BackupDetails: + { + data2, ok := other.Get_().(BackupDetails_BackupDetails) + return ok && data1.BackupArn.Equals(data2.BackupArn) && data1.BackupName.Equals(data2.BackupName) && data1.BackupSizeBytes.Equals(data2.BackupSizeBytes) && data1.BackupStatus.Equals(data2.BackupStatus) && data1.BackupType.Equals(data2.BackupType) && data1.BackupCreationDateTime.Equals(data2.BackupCreationDateTime) && data1.BackupExpiryDateTime.Equals(data2.BackupExpiryDateTime) + } + default: + { + return false // unexpected + } + } +} + +func (_this BackupDetails) EqualsGeneric(other interface{}) bool { + typed, ok := other.(BackupDetails) + return ok && _this.Equals(typed) +} + +func Type_BackupDetails_() _dafny.TypeDescriptor { + return type_BackupDetails_{} +} + +type type_BackupDetails_ struct { +} + +func (_this type_BackupDetails_) Default() interface{} { + return Companion_BackupDetails_.Default() +} + +func (_this type_BackupDetails_) String() string { + return "ComAmazonawsDynamodbTypes.BackupDetails" +} +func (_this BackupDetails) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = BackupDetails{} + +// End of datatype BackupDetails + +// Definition of class BackupName +type BackupName struct { +} + +func New_BackupName_() *BackupName { + _this := BackupName{} + + return &_this +} + +type CompanionStruct_BackupName_ struct { +} + +var Companion_BackupName_ = CompanionStruct_BackupName_{} + +func (*BackupName) String() string { + return "ComAmazonawsDynamodbTypes.BackupName" +} + +// End of class BackupName + +func Type_BackupName_() _dafny.TypeDescriptor { + return type_BackupName_{} +} + +type type_BackupName_ struct { +} + +func (_this type_BackupName_) Default() interface{} { + return _dafny.EmptySeq.SetString() +} + +func (_this type_BackupName_) String() string { + return "ComAmazonawsDynamodbTypes.BackupName" +} +func (_this *CompanionStruct_BackupName_) Is_(__source _dafny.Sequence) bool { + var _5_x _dafny.Sequence = (__source) + _ = _5_x + return Companion_Default___.IsValid__BackupName(_5_x) +} + +// Definition of class BackupsInputLimit +type BackupsInputLimit struct { +} + +func New_BackupsInputLimit_() *BackupsInputLimit { + _this := BackupsInputLimit{} + + return &_this +} + +type CompanionStruct_BackupsInputLimit_ struct { +} + +var Companion_BackupsInputLimit_ = CompanionStruct_BackupsInputLimit_{} + +func (*BackupsInputLimit) String() string { + return "ComAmazonawsDynamodbTypes.BackupsInputLimit" +} + +// End of class BackupsInputLimit + +func Type_BackupsInputLimit_() _dafny.TypeDescriptor { + return type_BackupsInputLimit_{} +} + +type type_BackupsInputLimit_ struct { +} + +func (_this type_BackupsInputLimit_) Default() interface{} { + return int32(0) +} + +func (_this type_BackupsInputLimit_) String() string { + return "ComAmazonawsDynamodbTypes.BackupsInputLimit" +} +func (_this *CompanionStruct_BackupsInputLimit_) Is_(__source int32) bool { + var _6_x int32 = (__source) + _ = _6_x + if true { + return Companion_Default___.IsValid__BackupsInputLimit(_6_x) + } + return false +} + +// Definition of class BackupSizeBytes +type BackupSizeBytes struct { +} + +func New_BackupSizeBytes_() *BackupSizeBytes { + _this := BackupSizeBytes{} + + return &_this +} + +type CompanionStruct_BackupSizeBytes_ struct { +} + +var Companion_BackupSizeBytes_ = CompanionStruct_BackupSizeBytes_{} + +func (*BackupSizeBytes) String() string { + return "ComAmazonawsDynamodbTypes.BackupSizeBytes" +} + +// End of class BackupSizeBytes + +func Type_BackupSizeBytes_() _dafny.TypeDescriptor { + return type_BackupSizeBytes_{} +} + +type type_BackupSizeBytes_ struct { +} + +func (_this type_BackupSizeBytes_) Default() interface{} { + return int64(0) +} + +func (_this type_BackupSizeBytes_) String() string { + return "ComAmazonawsDynamodbTypes.BackupSizeBytes" +} +func (_this *CompanionStruct_BackupSizeBytes_) Is_(__source int64) bool { + var _7_x int64 = (__source) + _ = _7_x + if true { + return Companion_Default___.IsValid__BackupSizeBytes(_7_x) + } + return false +} + +// Definition of datatype BackupStatus +type BackupStatus struct { + Data_BackupStatus_ +} + +func (_this BackupStatus) Get_() Data_BackupStatus_ { + return _this.Data_BackupStatus_ +} + +type Data_BackupStatus_ interface { + isBackupStatus() +} + +type CompanionStruct_BackupStatus_ struct { +} + +var Companion_BackupStatus_ = CompanionStruct_BackupStatus_{} + +type BackupStatus_CREATING struct { +} + +func (BackupStatus_CREATING) isBackupStatus() {} + +func (CompanionStruct_BackupStatus_) Create_CREATING_() BackupStatus { + return BackupStatus{BackupStatus_CREATING{}} +} + +func (_this BackupStatus) Is_CREATING() bool { + _, ok := _this.Get_().(BackupStatus_CREATING) + return ok +} + +type BackupStatus_DELETED struct { +} + +func (BackupStatus_DELETED) isBackupStatus() {} + +func (CompanionStruct_BackupStatus_) Create_DELETED_() BackupStatus { + return BackupStatus{BackupStatus_DELETED{}} +} + +func (_this BackupStatus) Is_DELETED() bool { + _, ok := _this.Get_().(BackupStatus_DELETED) + return ok +} + +type BackupStatus_AVAILABLE struct { +} + +func (BackupStatus_AVAILABLE) isBackupStatus() {} + +func (CompanionStruct_BackupStatus_) Create_AVAILABLE_() BackupStatus { + return BackupStatus{BackupStatus_AVAILABLE{}} +} + +func (_this BackupStatus) Is_AVAILABLE() bool { + _, ok := _this.Get_().(BackupStatus_AVAILABLE) + return ok +} + +func (CompanionStruct_BackupStatus_) Default() BackupStatus { + return Companion_BackupStatus_.Create_CREATING_() +} + +func (_ CompanionStruct_BackupStatus_) AllSingletonConstructors() _dafny.Iterator { + i := -1 + return func() (interface{}, bool) { + i++ + switch i { + case 0: + return Companion_BackupStatus_.Create_CREATING_(), true + case 1: + return Companion_BackupStatus_.Create_DELETED_(), true + case 2: + return Companion_BackupStatus_.Create_AVAILABLE_(), true + default: + return BackupStatus{}, false + } + } +} + +func (_this BackupStatus) String() string { + switch _this.Get_().(type) { + case nil: + return "null" + case BackupStatus_CREATING: + { + return "ComAmazonawsDynamodbTypes.BackupStatus.CREATING" + } + case BackupStatus_DELETED: + { + return "ComAmazonawsDynamodbTypes.BackupStatus.DELETED" + } + case BackupStatus_AVAILABLE: + { + return "ComAmazonawsDynamodbTypes.BackupStatus.AVAILABLE" + } + default: + { + return "" + } + } +} + +func (_this BackupStatus) Equals(other BackupStatus) bool { + switch _this.Get_().(type) { + case BackupStatus_CREATING: + { + _, ok := other.Get_().(BackupStatus_CREATING) + return ok + } + case BackupStatus_DELETED: + { + _, ok := other.Get_().(BackupStatus_DELETED) + return ok + } + case BackupStatus_AVAILABLE: + { + _, ok := other.Get_().(BackupStatus_AVAILABLE) + return ok + } + default: + { + return false // unexpected + } + } +} + +func (_this BackupStatus) EqualsGeneric(other interface{}) bool { + typed, ok := other.(BackupStatus) + return ok && _this.Equals(typed) +} + +func Type_BackupStatus_() _dafny.TypeDescriptor { + return type_BackupStatus_{} +} + +type type_BackupStatus_ struct { +} + +func (_this type_BackupStatus_) Default() interface{} { + return Companion_BackupStatus_.Default() +} + +func (_this type_BackupStatus_) String() string { + return "ComAmazonawsDynamodbTypes.BackupStatus" +} +func (_this BackupStatus) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = BackupStatus{} + +// End of datatype BackupStatus + +// Definition of datatype BackupSummary +type BackupSummary struct { + Data_BackupSummary_ +} + +func (_this BackupSummary) Get_() Data_BackupSummary_ { + return _this.Data_BackupSummary_ +} + +type Data_BackupSummary_ interface { + isBackupSummary() +} + +type CompanionStruct_BackupSummary_ struct { +} + +var Companion_BackupSummary_ = CompanionStruct_BackupSummary_{} + +type BackupSummary_BackupSummary struct { + TableName m_Wrappers.Option + TableId m_Wrappers.Option + TableArn m_Wrappers.Option + BackupArn m_Wrappers.Option + BackupName m_Wrappers.Option + BackupCreationDateTime m_Wrappers.Option + BackupExpiryDateTime m_Wrappers.Option + BackupStatus m_Wrappers.Option + BackupType m_Wrappers.Option + BackupSizeBytes m_Wrappers.Option +} + +func (BackupSummary_BackupSummary) isBackupSummary() {} + +func (CompanionStruct_BackupSummary_) Create_BackupSummary_(TableName m_Wrappers.Option, TableId m_Wrappers.Option, TableArn m_Wrappers.Option, BackupArn m_Wrappers.Option, BackupName m_Wrappers.Option, BackupCreationDateTime m_Wrappers.Option, BackupExpiryDateTime m_Wrappers.Option, BackupStatus m_Wrappers.Option, BackupType m_Wrappers.Option, BackupSizeBytes m_Wrappers.Option) BackupSummary { + return BackupSummary{BackupSummary_BackupSummary{TableName, TableId, TableArn, BackupArn, BackupName, BackupCreationDateTime, BackupExpiryDateTime, BackupStatus, BackupType, BackupSizeBytes}} +} + +func (_this BackupSummary) Is_BackupSummary() bool { + _, ok := _this.Get_().(BackupSummary_BackupSummary) + return ok +} + +func (CompanionStruct_BackupSummary_) Default() BackupSummary { + return Companion_BackupSummary_.Create_BackupSummary_(m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this BackupSummary) Dtor_TableName() m_Wrappers.Option { + return _this.Get_().(BackupSummary_BackupSummary).TableName +} + +func (_this BackupSummary) Dtor_TableId() m_Wrappers.Option { + return _this.Get_().(BackupSummary_BackupSummary).TableId +} + +func (_this BackupSummary) Dtor_TableArn() m_Wrappers.Option { + return _this.Get_().(BackupSummary_BackupSummary).TableArn +} + +func (_this BackupSummary) Dtor_BackupArn() m_Wrappers.Option { + return _this.Get_().(BackupSummary_BackupSummary).BackupArn +} + +func (_this BackupSummary) Dtor_BackupName() m_Wrappers.Option { + return _this.Get_().(BackupSummary_BackupSummary).BackupName +} + +func (_this BackupSummary) Dtor_BackupCreationDateTime() m_Wrappers.Option { + return _this.Get_().(BackupSummary_BackupSummary).BackupCreationDateTime +} + +func (_this BackupSummary) Dtor_BackupExpiryDateTime() m_Wrappers.Option { + return _this.Get_().(BackupSummary_BackupSummary).BackupExpiryDateTime +} + +func (_this BackupSummary) Dtor_BackupStatus() m_Wrappers.Option { + return _this.Get_().(BackupSummary_BackupSummary).BackupStatus +} + +func (_this BackupSummary) Dtor_BackupType() m_Wrappers.Option { + return _this.Get_().(BackupSummary_BackupSummary).BackupType +} + +func (_this BackupSummary) Dtor_BackupSizeBytes() m_Wrappers.Option { + return _this.Get_().(BackupSummary_BackupSummary).BackupSizeBytes +} + +func (_this BackupSummary) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case BackupSummary_BackupSummary: + { + return "ComAmazonawsDynamodbTypes.BackupSummary.BackupSummary" + "(" + _dafny.String(data.TableName) + ", " + _dafny.String(data.TableId) + ", " + _dafny.String(data.TableArn) + ", " + _dafny.String(data.BackupArn) + ", " + _dafny.String(data.BackupName) + ", " + _dafny.String(data.BackupCreationDateTime) + ", " + _dafny.String(data.BackupExpiryDateTime) + ", " + _dafny.String(data.BackupStatus) + ", " + _dafny.String(data.BackupType) + ", " + _dafny.String(data.BackupSizeBytes) + ")" + } + default: + { + return "" + } + } +} + +func (_this BackupSummary) Equals(other BackupSummary) bool { + switch data1 := _this.Get_().(type) { + case BackupSummary_BackupSummary: + { + data2, ok := other.Get_().(BackupSummary_BackupSummary) + return ok && data1.TableName.Equals(data2.TableName) && data1.TableId.Equals(data2.TableId) && data1.TableArn.Equals(data2.TableArn) && data1.BackupArn.Equals(data2.BackupArn) && data1.BackupName.Equals(data2.BackupName) && data1.BackupCreationDateTime.Equals(data2.BackupCreationDateTime) && data1.BackupExpiryDateTime.Equals(data2.BackupExpiryDateTime) && data1.BackupStatus.Equals(data2.BackupStatus) && data1.BackupType.Equals(data2.BackupType) && data1.BackupSizeBytes.Equals(data2.BackupSizeBytes) + } + default: + { + return false // unexpected + } + } +} + +func (_this BackupSummary) EqualsGeneric(other interface{}) bool { + typed, ok := other.(BackupSummary) + return ok && _this.Equals(typed) +} + +func Type_BackupSummary_() _dafny.TypeDescriptor { + return type_BackupSummary_{} +} + +type type_BackupSummary_ struct { +} + +func (_this type_BackupSummary_) Default() interface{} { + return Companion_BackupSummary_.Default() +} + +func (_this type_BackupSummary_) String() string { + return "ComAmazonawsDynamodbTypes.BackupSummary" +} +func (_this BackupSummary) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = BackupSummary{} + +// End of datatype BackupSummary + +// Definition of datatype BackupType +type BackupType struct { + Data_BackupType_ +} + +func (_this BackupType) Get_() Data_BackupType_ { + return _this.Data_BackupType_ +} + +type Data_BackupType_ interface { + isBackupType() +} + +type CompanionStruct_BackupType_ struct { +} + +var Companion_BackupType_ = CompanionStruct_BackupType_{} + +type BackupType_USER struct { +} + +func (BackupType_USER) isBackupType() {} + +func (CompanionStruct_BackupType_) Create_USER_() BackupType { + return BackupType{BackupType_USER{}} +} + +func (_this BackupType) Is_USER() bool { + _, ok := _this.Get_().(BackupType_USER) + return ok +} + +type BackupType_SYSTEM struct { +} + +func (BackupType_SYSTEM) isBackupType() {} + +func (CompanionStruct_BackupType_) Create_SYSTEM_() BackupType { + return BackupType{BackupType_SYSTEM{}} +} + +func (_this BackupType) Is_SYSTEM() bool { + _, ok := _this.Get_().(BackupType_SYSTEM) + return ok +} + +type BackupType_AWS__BACKUP struct { +} + +func (BackupType_AWS__BACKUP) isBackupType() {} + +func (CompanionStruct_BackupType_) Create_AWS__BACKUP_() BackupType { + return BackupType{BackupType_AWS__BACKUP{}} +} + +func (_this BackupType) Is_AWS__BACKUP() bool { + _, ok := _this.Get_().(BackupType_AWS__BACKUP) + return ok +} + +func (CompanionStruct_BackupType_) Default() BackupType { + return Companion_BackupType_.Create_USER_() +} + +func (_ CompanionStruct_BackupType_) AllSingletonConstructors() _dafny.Iterator { + i := -1 + return func() (interface{}, bool) { + i++ + switch i { + case 0: + return Companion_BackupType_.Create_USER_(), true + case 1: + return Companion_BackupType_.Create_SYSTEM_(), true + case 2: + return Companion_BackupType_.Create_AWS__BACKUP_(), true + default: + return BackupType{}, false + } + } +} + +func (_this BackupType) String() string { + switch _this.Get_().(type) { + case nil: + return "null" + case BackupType_USER: + { + return "ComAmazonawsDynamodbTypes.BackupType.USER" + } + case BackupType_SYSTEM: + { + return "ComAmazonawsDynamodbTypes.BackupType.SYSTEM" + } + case BackupType_AWS__BACKUP: + { + return "ComAmazonawsDynamodbTypes.BackupType.AWS_BACKUP" + } + default: + { + return "" + } + } +} + +func (_this BackupType) Equals(other BackupType) bool { + switch _this.Get_().(type) { + case BackupType_USER: + { + _, ok := other.Get_().(BackupType_USER) + return ok + } + case BackupType_SYSTEM: + { + _, ok := other.Get_().(BackupType_SYSTEM) + return ok + } + case BackupType_AWS__BACKUP: + { + _, ok := other.Get_().(BackupType_AWS__BACKUP) + return ok + } + default: + { + return false // unexpected + } + } +} + +func (_this BackupType) EqualsGeneric(other interface{}) bool { + typed, ok := other.(BackupType) + return ok && _this.Equals(typed) +} + +func Type_BackupType_() _dafny.TypeDescriptor { + return type_BackupType_{} +} + +type type_BackupType_ struct { +} + +func (_this type_BackupType_) Default() interface{} { + return Companion_BackupType_.Default() +} + +func (_this type_BackupType_) String() string { + return "ComAmazonawsDynamodbTypes.BackupType" +} +func (_this BackupType) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = BackupType{} + +// End of datatype BackupType + +// Definition of datatype BackupTypeFilter +type BackupTypeFilter struct { + Data_BackupTypeFilter_ +} + +func (_this BackupTypeFilter) Get_() Data_BackupTypeFilter_ { + return _this.Data_BackupTypeFilter_ +} + +type Data_BackupTypeFilter_ interface { + isBackupTypeFilter() +} + +type CompanionStruct_BackupTypeFilter_ struct { +} + +var Companion_BackupTypeFilter_ = CompanionStruct_BackupTypeFilter_{} + +type BackupTypeFilter_USER struct { +} + +func (BackupTypeFilter_USER) isBackupTypeFilter() {} + +func (CompanionStruct_BackupTypeFilter_) Create_USER_() BackupTypeFilter { + return BackupTypeFilter{BackupTypeFilter_USER{}} +} + +func (_this BackupTypeFilter) Is_USER() bool { + _, ok := _this.Get_().(BackupTypeFilter_USER) + return ok +} + +type BackupTypeFilter_SYSTEM struct { +} + +func (BackupTypeFilter_SYSTEM) isBackupTypeFilter() {} + +func (CompanionStruct_BackupTypeFilter_) Create_SYSTEM_() BackupTypeFilter { + return BackupTypeFilter{BackupTypeFilter_SYSTEM{}} +} + +func (_this BackupTypeFilter) Is_SYSTEM() bool { + _, ok := _this.Get_().(BackupTypeFilter_SYSTEM) + return ok +} + +type BackupTypeFilter_AWS__BACKUP struct { +} + +func (BackupTypeFilter_AWS__BACKUP) isBackupTypeFilter() {} + +func (CompanionStruct_BackupTypeFilter_) Create_AWS__BACKUP_() BackupTypeFilter { + return BackupTypeFilter{BackupTypeFilter_AWS__BACKUP{}} +} + +func (_this BackupTypeFilter) Is_AWS__BACKUP() bool { + _, ok := _this.Get_().(BackupTypeFilter_AWS__BACKUP) + return ok +} + +type BackupTypeFilter_ALL struct { +} + +func (BackupTypeFilter_ALL) isBackupTypeFilter() {} + +func (CompanionStruct_BackupTypeFilter_) Create_ALL_() BackupTypeFilter { + return BackupTypeFilter{BackupTypeFilter_ALL{}} +} + +func (_this BackupTypeFilter) Is_ALL() bool { + _, ok := _this.Get_().(BackupTypeFilter_ALL) + return ok +} + +func (CompanionStruct_BackupTypeFilter_) Default() BackupTypeFilter { + return Companion_BackupTypeFilter_.Create_USER_() +} + +func (_ CompanionStruct_BackupTypeFilter_) AllSingletonConstructors() _dafny.Iterator { + i := -1 + return func() (interface{}, bool) { + i++ + switch i { + case 0: + return Companion_BackupTypeFilter_.Create_USER_(), true + case 1: + return Companion_BackupTypeFilter_.Create_SYSTEM_(), true + case 2: + return Companion_BackupTypeFilter_.Create_AWS__BACKUP_(), true + case 3: + return Companion_BackupTypeFilter_.Create_ALL_(), true + default: + return BackupTypeFilter{}, false + } + } +} + +func (_this BackupTypeFilter) String() string { + switch _this.Get_().(type) { + case nil: + return "null" + case BackupTypeFilter_USER: + { + return "ComAmazonawsDynamodbTypes.BackupTypeFilter.USER" + } + case BackupTypeFilter_SYSTEM: + { + return "ComAmazonawsDynamodbTypes.BackupTypeFilter.SYSTEM" + } + case BackupTypeFilter_AWS__BACKUP: + { + return "ComAmazonawsDynamodbTypes.BackupTypeFilter.AWS_BACKUP" + } + case BackupTypeFilter_ALL: + { + return "ComAmazonawsDynamodbTypes.BackupTypeFilter.ALL" + } + default: + { + return "" + } + } +} + +func (_this BackupTypeFilter) Equals(other BackupTypeFilter) bool { + switch _this.Get_().(type) { + case BackupTypeFilter_USER: + { + _, ok := other.Get_().(BackupTypeFilter_USER) + return ok + } + case BackupTypeFilter_SYSTEM: + { + _, ok := other.Get_().(BackupTypeFilter_SYSTEM) + return ok + } + case BackupTypeFilter_AWS__BACKUP: + { + _, ok := other.Get_().(BackupTypeFilter_AWS__BACKUP) + return ok + } + case BackupTypeFilter_ALL: + { + _, ok := other.Get_().(BackupTypeFilter_ALL) + return ok + } + default: + { + return false // unexpected + } + } +} + +func (_this BackupTypeFilter) EqualsGeneric(other interface{}) bool { + typed, ok := other.(BackupTypeFilter) + return ok && _this.Equals(typed) +} + +func Type_BackupTypeFilter_() _dafny.TypeDescriptor { + return type_BackupTypeFilter_{} +} + +type type_BackupTypeFilter_ struct { +} + +func (_this type_BackupTypeFilter_) Default() interface{} { + return Companion_BackupTypeFilter_.Default() +} + +func (_this type_BackupTypeFilter_) String() string { + return "ComAmazonawsDynamodbTypes.BackupTypeFilter" +} +func (_this BackupTypeFilter) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = BackupTypeFilter{} + +// End of datatype BackupTypeFilter + +// Definition of datatype BatchExecuteStatementInput +type BatchExecuteStatementInput struct { + Data_BatchExecuteStatementInput_ +} + +func (_this BatchExecuteStatementInput) Get_() Data_BatchExecuteStatementInput_ { + return _this.Data_BatchExecuteStatementInput_ +} + +type Data_BatchExecuteStatementInput_ interface { + isBatchExecuteStatementInput() +} + +type CompanionStruct_BatchExecuteStatementInput_ struct { +} + +var Companion_BatchExecuteStatementInput_ = CompanionStruct_BatchExecuteStatementInput_{} + +type BatchExecuteStatementInput_BatchExecuteStatementInput struct { + Statements _dafny.Sequence + ReturnConsumedCapacity m_Wrappers.Option +} + +func (BatchExecuteStatementInput_BatchExecuteStatementInput) isBatchExecuteStatementInput() {} + +func (CompanionStruct_BatchExecuteStatementInput_) Create_BatchExecuteStatementInput_(Statements _dafny.Sequence, ReturnConsumedCapacity m_Wrappers.Option) BatchExecuteStatementInput { + return BatchExecuteStatementInput{BatchExecuteStatementInput_BatchExecuteStatementInput{Statements, ReturnConsumedCapacity}} +} + +func (_this BatchExecuteStatementInput) Is_BatchExecuteStatementInput() bool { + _, ok := _this.Get_().(BatchExecuteStatementInput_BatchExecuteStatementInput) + return ok +} + +func (CompanionStruct_BatchExecuteStatementInput_) Default() BatchExecuteStatementInput { + return Companion_BatchExecuteStatementInput_.Create_BatchExecuteStatementInput_(_dafny.EmptySeq, m_Wrappers.Companion_Option_.Default()) +} + +func (_this BatchExecuteStatementInput) Dtor_Statements() _dafny.Sequence { + return _this.Get_().(BatchExecuteStatementInput_BatchExecuteStatementInput).Statements +} + +func (_this BatchExecuteStatementInput) Dtor_ReturnConsumedCapacity() m_Wrappers.Option { + return _this.Get_().(BatchExecuteStatementInput_BatchExecuteStatementInput).ReturnConsumedCapacity +} + +func (_this BatchExecuteStatementInput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case BatchExecuteStatementInput_BatchExecuteStatementInput: + { + return "ComAmazonawsDynamodbTypes.BatchExecuteStatementInput.BatchExecuteStatementInput" + "(" + _dafny.String(data.Statements) + ", " + _dafny.String(data.ReturnConsumedCapacity) + ")" + } + default: + { + return "" + } + } +} + +func (_this BatchExecuteStatementInput) Equals(other BatchExecuteStatementInput) bool { + switch data1 := _this.Get_().(type) { + case BatchExecuteStatementInput_BatchExecuteStatementInput: + { + data2, ok := other.Get_().(BatchExecuteStatementInput_BatchExecuteStatementInput) + return ok && data1.Statements.Equals(data2.Statements) && data1.ReturnConsumedCapacity.Equals(data2.ReturnConsumedCapacity) + } + default: + { + return false // unexpected + } + } +} + +func (_this BatchExecuteStatementInput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(BatchExecuteStatementInput) + return ok && _this.Equals(typed) +} + +func Type_BatchExecuteStatementInput_() _dafny.TypeDescriptor { + return type_BatchExecuteStatementInput_{} +} + +type type_BatchExecuteStatementInput_ struct { +} + +func (_this type_BatchExecuteStatementInput_) Default() interface{} { + return Companion_BatchExecuteStatementInput_.Default() +} + +func (_this type_BatchExecuteStatementInput_) String() string { + return "ComAmazonawsDynamodbTypes.BatchExecuteStatementInput" +} +func (_this BatchExecuteStatementInput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = BatchExecuteStatementInput{} + +// End of datatype BatchExecuteStatementInput + +// Definition of datatype BatchExecuteStatementOutput +type BatchExecuteStatementOutput struct { + Data_BatchExecuteStatementOutput_ +} + +func (_this BatchExecuteStatementOutput) Get_() Data_BatchExecuteStatementOutput_ { + return _this.Data_BatchExecuteStatementOutput_ +} + +type Data_BatchExecuteStatementOutput_ interface { + isBatchExecuteStatementOutput() +} + +type CompanionStruct_BatchExecuteStatementOutput_ struct { +} + +var Companion_BatchExecuteStatementOutput_ = CompanionStruct_BatchExecuteStatementOutput_{} + +type BatchExecuteStatementOutput_BatchExecuteStatementOutput struct { + Responses m_Wrappers.Option + ConsumedCapacity m_Wrappers.Option +} + +func (BatchExecuteStatementOutput_BatchExecuteStatementOutput) isBatchExecuteStatementOutput() {} + +func (CompanionStruct_BatchExecuteStatementOutput_) Create_BatchExecuteStatementOutput_(Responses m_Wrappers.Option, ConsumedCapacity m_Wrappers.Option) BatchExecuteStatementOutput { + return BatchExecuteStatementOutput{BatchExecuteStatementOutput_BatchExecuteStatementOutput{Responses, ConsumedCapacity}} +} + +func (_this BatchExecuteStatementOutput) Is_BatchExecuteStatementOutput() bool { + _, ok := _this.Get_().(BatchExecuteStatementOutput_BatchExecuteStatementOutput) + return ok +} + +func (CompanionStruct_BatchExecuteStatementOutput_) Default() BatchExecuteStatementOutput { + return Companion_BatchExecuteStatementOutput_.Create_BatchExecuteStatementOutput_(m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this BatchExecuteStatementOutput) Dtor_Responses() m_Wrappers.Option { + return _this.Get_().(BatchExecuteStatementOutput_BatchExecuteStatementOutput).Responses +} + +func (_this BatchExecuteStatementOutput) Dtor_ConsumedCapacity() m_Wrappers.Option { + return _this.Get_().(BatchExecuteStatementOutput_BatchExecuteStatementOutput).ConsumedCapacity +} + +func (_this BatchExecuteStatementOutput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case BatchExecuteStatementOutput_BatchExecuteStatementOutput: + { + return "ComAmazonawsDynamodbTypes.BatchExecuteStatementOutput.BatchExecuteStatementOutput" + "(" + _dafny.String(data.Responses) + ", " + _dafny.String(data.ConsumedCapacity) + ")" + } + default: + { + return "" + } + } +} + +func (_this BatchExecuteStatementOutput) Equals(other BatchExecuteStatementOutput) bool { + switch data1 := _this.Get_().(type) { + case BatchExecuteStatementOutput_BatchExecuteStatementOutput: + { + data2, ok := other.Get_().(BatchExecuteStatementOutput_BatchExecuteStatementOutput) + return ok && data1.Responses.Equals(data2.Responses) && data1.ConsumedCapacity.Equals(data2.ConsumedCapacity) + } + default: + { + return false // unexpected + } + } +} + +func (_this BatchExecuteStatementOutput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(BatchExecuteStatementOutput) + return ok && _this.Equals(typed) +} + +func Type_BatchExecuteStatementOutput_() _dafny.TypeDescriptor { + return type_BatchExecuteStatementOutput_{} +} + +type type_BatchExecuteStatementOutput_ struct { +} + +func (_this type_BatchExecuteStatementOutput_) Default() interface{} { + return Companion_BatchExecuteStatementOutput_.Default() +} + +func (_this type_BatchExecuteStatementOutput_) String() string { + return "ComAmazonawsDynamodbTypes.BatchExecuteStatementOutput" +} +func (_this BatchExecuteStatementOutput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = BatchExecuteStatementOutput{} + +// End of datatype BatchExecuteStatementOutput + +// Definition of datatype BatchGetItemInput +type BatchGetItemInput struct { + Data_BatchGetItemInput_ +} + +func (_this BatchGetItemInput) Get_() Data_BatchGetItemInput_ { + return _this.Data_BatchGetItemInput_ +} + +type Data_BatchGetItemInput_ interface { + isBatchGetItemInput() +} + +type CompanionStruct_BatchGetItemInput_ struct { +} + +var Companion_BatchGetItemInput_ = CompanionStruct_BatchGetItemInput_{} + +type BatchGetItemInput_BatchGetItemInput struct { + RequestItems _dafny.Map + ReturnConsumedCapacity m_Wrappers.Option +} + +func (BatchGetItemInput_BatchGetItemInput) isBatchGetItemInput() {} + +func (CompanionStruct_BatchGetItemInput_) Create_BatchGetItemInput_(RequestItems _dafny.Map, ReturnConsumedCapacity m_Wrappers.Option) BatchGetItemInput { + return BatchGetItemInput{BatchGetItemInput_BatchGetItemInput{RequestItems, ReturnConsumedCapacity}} +} + +func (_this BatchGetItemInput) Is_BatchGetItemInput() bool { + _, ok := _this.Get_().(BatchGetItemInput_BatchGetItemInput) + return ok +} + +func (CompanionStruct_BatchGetItemInput_) Default() BatchGetItemInput { + return Companion_BatchGetItemInput_.Create_BatchGetItemInput_(_dafny.EmptyMap, m_Wrappers.Companion_Option_.Default()) +} + +func (_this BatchGetItemInput) Dtor_RequestItems() _dafny.Map { + return _this.Get_().(BatchGetItemInput_BatchGetItemInput).RequestItems +} + +func (_this BatchGetItemInput) Dtor_ReturnConsumedCapacity() m_Wrappers.Option { + return _this.Get_().(BatchGetItemInput_BatchGetItemInput).ReturnConsumedCapacity +} + +func (_this BatchGetItemInput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case BatchGetItemInput_BatchGetItemInput: + { + return "ComAmazonawsDynamodbTypes.BatchGetItemInput.BatchGetItemInput" + "(" + _dafny.String(data.RequestItems) + ", " + _dafny.String(data.ReturnConsumedCapacity) + ")" + } + default: + { + return "" + } + } +} + +func (_this BatchGetItemInput) Equals(other BatchGetItemInput) bool { + switch data1 := _this.Get_().(type) { + case BatchGetItemInput_BatchGetItemInput: + { + data2, ok := other.Get_().(BatchGetItemInput_BatchGetItemInput) + return ok && data1.RequestItems.Equals(data2.RequestItems) && data1.ReturnConsumedCapacity.Equals(data2.ReturnConsumedCapacity) + } + default: + { + return false // unexpected + } + } +} + +func (_this BatchGetItemInput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(BatchGetItemInput) + return ok && _this.Equals(typed) +} + +func Type_BatchGetItemInput_() _dafny.TypeDescriptor { + return type_BatchGetItemInput_{} +} + +type type_BatchGetItemInput_ struct { +} + +func (_this type_BatchGetItemInput_) Default() interface{} { + return Companion_BatchGetItemInput_.Default() +} + +func (_this type_BatchGetItemInput_) String() string { + return "ComAmazonawsDynamodbTypes.BatchGetItemInput" +} +func (_this BatchGetItemInput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = BatchGetItemInput{} + +// End of datatype BatchGetItemInput + +// Definition of datatype BatchGetItemOutput +type BatchGetItemOutput struct { + Data_BatchGetItemOutput_ +} + +func (_this BatchGetItemOutput) Get_() Data_BatchGetItemOutput_ { + return _this.Data_BatchGetItemOutput_ +} + +type Data_BatchGetItemOutput_ interface { + isBatchGetItemOutput() +} + +type CompanionStruct_BatchGetItemOutput_ struct { +} + +var Companion_BatchGetItemOutput_ = CompanionStruct_BatchGetItemOutput_{} + +type BatchGetItemOutput_BatchGetItemOutput struct { + Responses m_Wrappers.Option + UnprocessedKeys m_Wrappers.Option + ConsumedCapacity m_Wrappers.Option +} + +func (BatchGetItemOutput_BatchGetItemOutput) isBatchGetItemOutput() {} + +func (CompanionStruct_BatchGetItemOutput_) Create_BatchGetItemOutput_(Responses m_Wrappers.Option, UnprocessedKeys m_Wrappers.Option, ConsumedCapacity m_Wrappers.Option) BatchGetItemOutput { + return BatchGetItemOutput{BatchGetItemOutput_BatchGetItemOutput{Responses, UnprocessedKeys, ConsumedCapacity}} +} + +func (_this BatchGetItemOutput) Is_BatchGetItemOutput() bool { + _, ok := _this.Get_().(BatchGetItemOutput_BatchGetItemOutput) + return ok +} + +func (CompanionStruct_BatchGetItemOutput_) Default() BatchGetItemOutput { + return Companion_BatchGetItemOutput_.Create_BatchGetItemOutput_(m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this BatchGetItemOutput) Dtor_Responses() m_Wrappers.Option { + return _this.Get_().(BatchGetItemOutput_BatchGetItemOutput).Responses +} + +func (_this BatchGetItemOutput) Dtor_UnprocessedKeys() m_Wrappers.Option { + return _this.Get_().(BatchGetItemOutput_BatchGetItemOutput).UnprocessedKeys +} + +func (_this BatchGetItemOutput) Dtor_ConsumedCapacity() m_Wrappers.Option { + return _this.Get_().(BatchGetItemOutput_BatchGetItemOutput).ConsumedCapacity +} + +func (_this BatchGetItemOutput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case BatchGetItemOutput_BatchGetItemOutput: + { + return "ComAmazonawsDynamodbTypes.BatchGetItemOutput.BatchGetItemOutput" + "(" + _dafny.String(data.Responses) + ", " + _dafny.String(data.UnprocessedKeys) + ", " + _dafny.String(data.ConsumedCapacity) + ")" + } + default: + { + return "" + } + } +} + +func (_this BatchGetItemOutput) Equals(other BatchGetItemOutput) bool { + switch data1 := _this.Get_().(type) { + case BatchGetItemOutput_BatchGetItemOutput: + { + data2, ok := other.Get_().(BatchGetItemOutput_BatchGetItemOutput) + return ok && data1.Responses.Equals(data2.Responses) && data1.UnprocessedKeys.Equals(data2.UnprocessedKeys) && data1.ConsumedCapacity.Equals(data2.ConsumedCapacity) + } + default: + { + return false // unexpected + } + } +} + +func (_this BatchGetItemOutput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(BatchGetItemOutput) + return ok && _this.Equals(typed) +} + +func Type_BatchGetItemOutput_() _dafny.TypeDescriptor { + return type_BatchGetItemOutput_{} +} + +type type_BatchGetItemOutput_ struct { +} + +func (_this type_BatchGetItemOutput_) Default() interface{} { + return Companion_BatchGetItemOutput_.Default() +} + +func (_this type_BatchGetItemOutput_) String() string { + return "ComAmazonawsDynamodbTypes.BatchGetItemOutput" +} +func (_this BatchGetItemOutput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = BatchGetItemOutput{} + +// End of datatype BatchGetItemOutput + +// Definition of class BatchGetRequestMap +type BatchGetRequestMap struct { +} + +func New_BatchGetRequestMap_() *BatchGetRequestMap { + _this := BatchGetRequestMap{} + + return &_this +} + +type CompanionStruct_BatchGetRequestMap_ struct { +} + +var Companion_BatchGetRequestMap_ = CompanionStruct_BatchGetRequestMap_{} + +func (*BatchGetRequestMap) String() string { + return "ComAmazonawsDynamodbTypes.BatchGetRequestMap" +} + +// End of class BatchGetRequestMap + +func Type_BatchGetRequestMap_() _dafny.TypeDescriptor { + return type_BatchGetRequestMap_{} +} + +type type_BatchGetRequestMap_ struct { +} + +func (_this type_BatchGetRequestMap_) Default() interface{} { + return _dafny.EmptyMap +} + +func (_this type_BatchGetRequestMap_) String() string { + return "ComAmazonawsDynamodbTypes.BatchGetRequestMap" +} +func (_this *CompanionStruct_BatchGetRequestMap_) Is_(__source _dafny.Map) bool { + var _8_x _dafny.Map = (__source) + _ = _8_x + return Companion_Default___.IsValid__BatchGetRequestMap(_8_x) +} + +// Definition of datatype BatchStatementError +type BatchStatementError struct { + Data_BatchStatementError_ +} + +func (_this BatchStatementError) Get_() Data_BatchStatementError_ { + return _this.Data_BatchStatementError_ +} + +type Data_BatchStatementError_ interface { + isBatchStatementError() +} + +type CompanionStruct_BatchStatementError_ struct { +} + +var Companion_BatchStatementError_ = CompanionStruct_BatchStatementError_{} + +type BatchStatementError_BatchStatementError struct { + Code m_Wrappers.Option + Message m_Wrappers.Option + Item m_Wrappers.Option +} + +func (BatchStatementError_BatchStatementError) isBatchStatementError() {} + +func (CompanionStruct_BatchStatementError_) Create_BatchStatementError_(Code m_Wrappers.Option, Message m_Wrappers.Option, Item m_Wrappers.Option) BatchStatementError { + return BatchStatementError{BatchStatementError_BatchStatementError{Code, Message, Item}} +} + +func (_this BatchStatementError) Is_BatchStatementError() bool { + _, ok := _this.Get_().(BatchStatementError_BatchStatementError) + return ok +} + +func (CompanionStruct_BatchStatementError_) Default() BatchStatementError { + return Companion_BatchStatementError_.Create_BatchStatementError_(m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this BatchStatementError) Dtor_Code() m_Wrappers.Option { + return _this.Get_().(BatchStatementError_BatchStatementError).Code +} + +func (_this BatchStatementError) Dtor_Message() m_Wrappers.Option { + return _this.Get_().(BatchStatementError_BatchStatementError).Message +} + +func (_this BatchStatementError) Dtor_Item() m_Wrappers.Option { + return _this.Get_().(BatchStatementError_BatchStatementError).Item +} + +func (_this BatchStatementError) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case BatchStatementError_BatchStatementError: + { + return "ComAmazonawsDynamodbTypes.BatchStatementError.BatchStatementError" + "(" + _dafny.String(data.Code) + ", " + _dafny.String(data.Message) + ", " + _dafny.String(data.Item) + ")" + } + default: + { + return "" + } + } +} + +func (_this BatchStatementError) Equals(other BatchStatementError) bool { + switch data1 := _this.Get_().(type) { + case BatchStatementError_BatchStatementError: + { + data2, ok := other.Get_().(BatchStatementError_BatchStatementError) + return ok && data1.Code.Equals(data2.Code) && data1.Message.Equals(data2.Message) && data1.Item.Equals(data2.Item) + } + default: + { + return false // unexpected + } + } +} + +func (_this BatchStatementError) EqualsGeneric(other interface{}) bool { + typed, ok := other.(BatchStatementError) + return ok && _this.Equals(typed) +} + +func Type_BatchStatementError_() _dafny.TypeDescriptor { + return type_BatchStatementError_{} +} + +type type_BatchStatementError_ struct { +} + +func (_this type_BatchStatementError_) Default() interface{} { + return Companion_BatchStatementError_.Default() +} + +func (_this type_BatchStatementError_) String() string { + return "ComAmazonawsDynamodbTypes.BatchStatementError" +} +func (_this BatchStatementError) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = BatchStatementError{} + +// End of datatype BatchStatementError + +// Definition of datatype BatchStatementErrorCodeEnum +type BatchStatementErrorCodeEnum struct { + Data_BatchStatementErrorCodeEnum_ +} + +func (_this BatchStatementErrorCodeEnum) Get_() Data_BatchStatementErrorCodeEnum_ { + return _this.Data_BatchStatementErrorCodeEnum_ +} + +type Data_BatchStatementErrorCodeEnum_ interface { + isBatchStatementErrorCodeEnum() +} + +type CompanionStruct_BatchStatementErrorCodeEnum_ struct { +} + +var Companion_BatchStatementErrorCodeEnum_ = CompanionStruct_BatchStatementErrorCodeEnum_{} + +type BatchStatementErrorCodeEnum_ConditionalCheckFailed struct { +} + +func (BatchStatementErrorCodeEnum_ConditionalCheckFailed) isBatchStatementErrorCodeEnum() {} + +func (CompanionStruct_BatchStatementErrorCodeEnum_) Create_ConditionalCheckFailed_() BatchStatementErrorCodeEnum { + return BatchStatementErrorCodeEnum{BatchStatementErrorCodeEnum_ConditionalCheckFailed{}} +} + +func (_this BatchStatementErrorCodeEnum) Is_ConditionalCheckFailed() bool { + _, ok := _this.Get_().(BatchStatementErrorCodeEnum_ConditionalCheckFailed) + return ok +} + +type BatchStatementErrorCodeEnum_ItemCollectionSizeLimitExceeded struct { +} + +func (BatchStatementErrorCodeEnum_ItemCollectionSizeLimitExceeded) isBatchStatementErrorCodeEnum() {} + +func (CompanionStruct_BatchStatementErrorCodeEnum_) Create_ItemCollectionSizeLimitExceeded_() BatchStatementErrorCodeEnum { + return BatchStatementErrorCodeEnum{BatchStatementErrorCodeEnum_ItemCollectionSizeLimitExceeded{}} +} + +func (_this BatchStatementErrorCodeEnum) Is_ItemCollectionSizeLimitExceeded() bool { + _, ok := _this.Get_().(BatchStatementErrorCodeEnum_ItemCollectionSizeLimitExceeded) + return ok +} + +type BatchStatementErrorCodeEnum_RequestLimitExceeded struct { +} + +func (BatchStatementErrorCodeEnum_RequestLimitExceeded) isBatchStatementErrorCodeEnum() {} + +func (CompanionStruct_BatchStatementErrorCodeEnum_) Create_RequestLimitExceeded_() BatchStatementErrorCodeEnum { + return BatchStatementErrorCodeEnum{BatchStatementErrorCodeEnum_RequestLimitExceeded{}} +} + +func (_this BatchStatementErrorCodeEnum) Is_RequestLimitExceeded() bool { + _, ok := _this.Get_().(BatchStatementErrorCodeEnum_RequestLimitExceeded) + return ok +} + +type BatchStatementErrorCodeEnum_ValidationError struct { +} + +func (BatchStatementErrorCodeEnum_ValidationError) isBatchStatementErrorCodeEnum() {} + +func (CompanionStruct_BatchStatementErrorCodeEnum_) Create_ValidationError_() BatchStatementErrorCodeEnum { + return BatchStatementErrorCodeEnum{BatchStatementErrorCodeEnum_ValidationError{}} +} + +func (_this BatchStatementErrorCodeEnum) Is_ValidationError() bool { + _, ok := _this.Get_().(BatchStatementErrorCodeEnum_ValidationError) + return ok +} + +type BatchStatementErrorCodeEnum_ProvisionedThroughputExceeded struct { +} + +func (BatchStatementErrorCodeEnum_ProvisionedThroughputExceeded) isBatchStatementErrorCodeEnum() {} + +func (CompanionStruct_BatchStatementErrorCodeEnum_) Create_ProvisionedThroughputExceeded_() BatchStatementErrorCodeEnum { + return BatchStatementErrorCodeEnum{BatchStatementErrorCodeEnum_ProvisionedThroughputExceeded{}} +} + +func (_this BatchStatementErrorCodeEnum) Is_ProvisionedThroughputExceeded() bool { + _, ok := _this.Get_().(BatchStatementErrorCodeEnum_ProvisionedThroughputExceeded) + return ok +} + +type BatchStatementErrorCodeEnum_TransactionConflict struct { +} + +func (BatchStatementErrorCodeEnum_TransactionConflict) isBatchStatementErrorCodeEnum() {} + +func (CompanionStruct_BatchStatementErrorCodeEnum_) Create_TransactionConflict_() BatchStatementErrorCodeEnum { + return BatchStatementErrorCodeEnum{BatchStatementErrorCodeEnum_TransactionConflict{}} +} + +func (_this BatchStatementErrorCodeEnum) Is_TransactionConflict() bool { + _, ok := _this.Get_().(BatchStatementErrorCodeEnum_TransactionConflict) + return ok +} + +type BatchStatementErrorCodeEnum_ThrottlingError struct { +} + +func (BatchStatementErrorCodeEnum_ThrottlingError) isBatchStatementErrorCodeEnum() {} + +func (CompanionStruct_BatchStatementErrorCodeEnum_) Create_ThrottlingError_() BatchStatementErrorCodeEnum { + return BatchStatementErrorCodeEnum{BatchStatementErrorCodeEnum_ThrottlingError{}} +} + +func (_this BatchStatementErrorCodeEnum) Is_ThrottlingError() bool { + _, ok := _this.Get_().(BatchStatementErrorCodeEnum_ThrottlingError) + return ok +} + +type BatchStatementErrorCodeEnum_InternalServerError struct { +} + +func (BatchStatementErrorCodeEnum_InternalServerError) isBatchStatementErrorCodeEnum() {} + +func (CompanionStruct_BatchStatementErrorCodeEnum_) Create_InternalServerError_() BatchStatementErrorCodeEnum { + return BatchStatementErrorCodeEnum{BatchStatementErrorCodeEnum_InternalServerError{}} +} + +func (_this BatchStatementErrorCodeEnum) Is_InternalServerError() bool { + _, ok := _this.Get_().(BatchStatementErrorCodeEnum_InternalServerError) + return ok +} + +type BatchStatementErrorCodeEnum_ResourceNotFound struct { +} + +func (BatchStatementErrorCodeEnum_ResourceNotFound) isBatchStatementErrorCodeEnum() {} + +func (CompanionStruct_BatchStatementErrorCodeEnum_) Create_ResourceNotFound_() BatchStatementErrorCodeEnum { + return BatchStatementErrorCodeEnum{BatchStatementErrorCodeEnum_ResourceNotFound{}} +} + +func (_this BatchStatementErrorCodeEnum) Is_ResourceNotFound() bool { + _, ok := _this.Get_().(BatchStatementErrorCodeEnum_ResourceNotFound) + return ok +} + +type BatchStatementErrorCodeEnum_AccessDenied struct { +} + +func (BatchStatementErrorCodeEnum_AccessDenied) isBatchStatementErrorCodeEnum() {} + +func (CompanionStruct_BatchStatementErrorCodeEnum_) Create_AccessDenied_() BatchStatementErrorCodeEnum { + return BatchStatementErrorCodeEnum{BatchStatementErrorCodeEnum_AccessDenied{}} +} + +func (_this BatchStatementErrorCodeEnum) Is_AccessDenied() bool { + _, ok := _this.Get_().(BatchStatementErrorCodeEnum_AccessDenied) + return ok +} + +type BatchStatementErrorCodeEnum_DuplicateItem struct { +} + +func (BatchStatementErrorCodeEnum_DuplicateItem) isBatchStatementErrorCodeEnum() {} + +func (CompanionStruct_BatchStatementErrorCodeEnum_) Create_DuplicateItem_() BatchStatementErrorCodeEnum { + return BatchStatementErrorCodeEnum{BatchStatementErrorCodeEnum_DuplicateItem{}} +} + +func (_this BatchStatementErrorCodeEnum) Is_DuplicateItem() bool { + _, ok := _this.Get_().(BatchStatementErrorCodeEnum_DuplicateItem) + return ok +} + +func (CompanionStruct_BatchStatementErrorCodeEnum_) Default() BatchStatementErrorCodeEnum { + return Companion_BatchStatementErrorCodeEnum_.Create_ConditionalCheckFailed_() +} + +func (_ CompanionStruct_BatchStatementErrorCodeEnum_) AllSingletonConstructors() _dafny.Iterator { + i := -1 + return func() (interface{}, bool) { + i++ + switch i { + case 0: + return Companion_BatchStatementErrorCodeEnum_.Create_ConditionalCheckFailed_(), true + case 1: + return Companion_BatchStatementErrorCodeEnum_.Create_ItemCollectionSizeLimitExceeded_(), true + case 2: + return Companion_BatchStatementErrorCodeEnum_.Create_RequestLimitExceeded_(), true + case 3: + return Companion_BatchStatementErrorCodeEnum_.Create_ValidationError_(), true + case 4: + return Companion_BatchStatementErrorCodeEnum_.Create_ProvisionedThroughputExceeded_(), true + case 5: + return Companion_BatchStatementErrorCodeEnum_.Create_TransactionConflict_(), true + case 6: + return Companion_BatchStatementErrorCodeEnum_.Create_ThrottlingError_(), true + case 7: + return Companion_BatchStatementErrorCodeEnum_.Create_InternalServerError_(), true + case 8: + return Companion_BatchStatementErrorCodeEnum_.Create_ResourceNotFound_(), true + case 9: + return Companion_BatchStatementErrorCodeEnum_.Create_AccessDenied_(), true + case 10: + return Companion_BatchStatementErrorCodeEnum_.Create_DuplicateItem_(), true + default: + return BatchStatementErrorCodeEnum{}, false + } + } +} + +func (_this BatchStatementErrorCodeEnum) String() string { + switch _this.Get_().(type) { + case nil: + return "null" + case BatchStatementErrorCodeEnum_ConditionalCheckFailed: + { + return "ComAmazonawsDynamodbTypes.BatchStatementErrorCodeEnum.ConditionalCheckFailed" + } + case BatchStatementErrorCodeEnum_ItemCollectionSizeLimitExceeded: + { + return "ComAmazonawsDynamodbTypes.BatchStatementErrorCodeEnum.ItemCollectionSizeLimitExceeded" + } + case BatchStatementErrorCodeEnum_RequestLimitExceeded: + { + return "ComAmazonawsDynamodbTypes.BatchStatementErrorCodeEnum.RequestLimitExceeded" + } + case BatchStatementErrorCodeEnum_ValidationError: + { + return "ComAmazonawsDynamodbTypes.BatchStatementErrorCodeEnum.ValidationError" + } + case BatchStatementErrorCodeEnum_ProvisionedThroughputExceeded: + { + return "ComAmazonawsDynamodbTypes.BatchStatementErrorCodeEnum.ProvisionedThroughputExceeded" + } + case BatchStatementErrorCodeEnum_TransactionConflict: + { + return "ComAmazonawsDynamodbTypes.BatchStatementErrorCodeEnum.TransactionConflict" + } + case BatchStatementErrorCodeEnum_ThrottlingError: + { + return "ComAmazonawsDynamodbTypes.BatchStatementErrorCodeEnum.ThrottlingError" + } + case BatchStatementErrorCodeEnum_InternalServerError: + { + return "ComAmazonawsDynamodbTypes.BatchStatementErrorCodeEnum.InternalServerError" + } + case BatchStatementErrorCodeEnum_ResourceNotFound: + { + return "ComAmazonawsDynamodbTypes.BatchStatementErrorCodeEnum.ResourceNotFound" + } + case BatchStatementErrorCodeEnum_AccessDenied: + { + return "ComAmazonawsDynamodbTypes.BatchStatementErrorCodeEnum.AccessDenied" + } + case BatchStatementErrorCodeEnum_DuplicateItem: + { + return "ComAmazonawsDynamodbTypes.BatchStatementErrorCodeEnum.DuplicateItem" + } + default: + { + return "" + } + } +} + +func (_this BatchStatementErrorCodeEnum) Equals(other BatchStatementErrorCodeEnum) bool { + switch _this.Get_().(type) { + case BatchStatementErrorCodeEnum_ConditionalCheckFailed: + { + _, ok := other.Get_().(BatchStatementErrorCodeEnum_ConditionalCheckFailed) + return ok + } + case BatchStatementErrorCodeEnum_ItemCollectionSizeLimitExceeded: + { + _, ok := other.Get_().(BatchStatementErrorCodeEnum_ItemCollectionSizeLimitExceeded) + return ok + } + case BatchStatementErrorCodeEnum_RequestLimitExceeded: + { + _, ok := other.Get_().(BatchStatementErrorCodeEnum_RequestLimitExceeded) + return ok + } + case BatchStatementErrorCodeEnum_ValidationError: + { + _, ok := other.Get_().(BatchStatementErrorCodeEnum_ValidationError) + return ok + } + case BatchStatementErrorCodeEnum_ProvisionedThroughputExceeded: + { + _, ok := other.Get_().(BatchStatementErrorCodeEnum_ProvisionedThroughputExceeded) + return ok + } + case BatchStatementErrorCodeEnum_TransactionConflict: + { + _, ok := other.Get_().(BatchStatementErrorCodeEnum_TransactionConflict) + return ok + } + case BatchStatementErrorCodeEnum_ThrottlingError: + { + _, ok := other.Get_().(BatchStatementErrorCodeEnum_ThrottlingError) + return ok + } + case BatchStatementErrorCodeEnum_InternalServerError: + { + _, ok := other.Get_().(BatchStatementErrorCodeEnum_InternalServerError) + return ok + } + case BatchStatementErrorCodeEnum_ResourceNotFound: + { + _, ok := other.Get_().(BatchStatementErrorCodeEnum_ResourceNotFound) + return ok + } + case BatchStatementErrorCodeEnum_AccessDenied: + { + _, ok := other.Get_().(BatchStatementErrorCodeEnum_AccessDenied) + return ok + } + case BatchStatementErrorCodeEnum_DuplicateItem: + { + _, ok := other.Get_().(BatchStatementErrorCodeEnum_DuplicateItem) + return ok + } + default: + { + return false // unexpected + } + } +} + +func (_this BatchStatementErrorCodeEnum) EqualsGeneric(other interface{}) bool { + typed, ok := other.(BatchStatementErrorCodeEnum) + return ok && _this.Equals(typed) +} + +func Type_BatchStatementErrorCodeEnum_() _dafny.TypeDescriptor { + return type_BatchStatementErrorCodeEnum_{} +} + +type type_BatchStatementErrorCodeEnum_ struct { +} + +func (_this type_BatchStatementErrorCodeEnum_) Default() interface{} { + return Companion_BatchStatementErrorCodeEnum_.Default() +} + +func (_this type_BatchStatementErrorCodeEnum_) String() string { + return "ComAmazonawsDynamodbTypes.BatchStatementErrorCodeEnum" +} +func (_this BatchStatementErrorCodeEnum) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = BatchStatementErrorCodeEnum{} + +// End of datatype BatchStatementErrorCodeEnum + +// Definition of datatype BatchStatementRequest +type BatchStatementRequest struct { + Data_BatchStatementRequest_ +} + +func (_this BatchStatementRequest) Get_() Data_BatchStatementRequest_ { + return _this.Data_BatchStatementRequest_ +} + +type Data_BatchStatementRequest_ interface { + isBatchStatementRequest() +} + +type CompanionStruct_BatchStatementRequest_ struct { +} + +var Companion_BatchStatementRequest_ = CompanionStruct_BatchStatementRequest_{} + +type BatchStatementRequest_BatchStatementRequest struct { + Statement _dafny.Sequence + Parameters m_Wrappers.Option + ConsistentRead m_Wrappers.Option + ReturnValuesOnConditionCheckFailure m_Wrappers.Option +} + +func (BatchStatementRequest_BatchStatementRequest) isBatchStatementRequest() {} + +func (CompanionStruct_BatchStatementRequest_) Create_BatchStatementRequest_(Statement _dafny.Sequence, Parameters m_Wrappers.Option, ConsistentRead m_Wrappers.Option, ReturnValuesOnConditionCheckFailure m_Wrappers.Option) BatchStatementRequest { + return BatchStatementRequest{BatchStatementRequest_BatchStatementRequest{Statement, Parameters, ConsistentRead, ReturnValuesOnConditionCheckFailure}} +} + +func (_this BatchStatementRequest) Is_BatchStatementRequest() bool { + _, ok := _this.Get_().(BatchStatementRequest_BatchStatementRequest) + return ok +} + +func (CompanionStruct_BatchStatementRequest_) Default() BatchStatementRequest { + return Companion_BatchStatementRequest_.Create_BatchStatementRequest_(_dafny.EmptySeq.SetString(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this BatchStatementRequest) Dtor_Statement() _dafny.Sequence { + return _this.Get_().(BatchStatementRequest_BatchStatementRequest).Statement +} + +func (_this BatchStatementRequest) Dtor_Parameters() m_Wrappers.Option { + return _this.Get_().(BatchStatementRequest_BatchStatementRequest).Parameters +} + +func (_this BatchStatementRequest) Dtor_ConsistentRead() m_Wrappers.Option { + return _this.Get_().(BatchStatementRequest_BatchStatementRequest).ConsistentRead +} + +func (_this BatchStatementRequest) Dtor_ReturnValuesOnConditionCheckFailure() m_Wrappers.Option { + return _this.Get_().(BatchStatementRequest_BatchStatementRequest).ReturnValuesOnConditionCheckFailure +} + +func (_this BatchStatementRequest) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case BatchStatementRequest_BatchStatementRequest: + { + return "ComAmazonawsDynamodbTypes.BatchStatementRequest.BatchStatementRequest" + "(" + _dafny.String(data.Statement) + ", " + _dafny.String(data.Parameters) + ", " + _dafny.String(data.ConsistentRead) + ", " + _dafny.String(data.ReturnValuesOnConditionCheckFailure) + ")" + } + default: + { + return "" + } + } +} + +func (_this BatchStatementRequest) Equals(other BatchStatementRequest) bool { + switch data1 := _this.Get_().(type) { + case BatchStatementRequest_BatchStatementRequest: + { + data2, ok := other.Get_().(BatchStatementRequest_BatchStatementRequest) + return ok && data1.Statement.Equals(data2.Statement) && data1.Parameters.Equals(data2.Parameters) && data1.ConsistentRead.Equals(data2.ConsistentRead) && data1.ReturnValuesOnConditionCheckFailure.Equals(data2.ReturnValuesOnConditionCheckFailure) + } + default: + { + return false // unexpected + } + } +} + +func (_this BatchStatementRequest) EqualsGeneric(other interface{}) bool { + typed, ok := other.(BatchStatementRequest) + return ok && _this.Equals(typed) +} + +func Type_BatchStatementRequest_() _dafny.TypeDescriptor { + return type_BatchStatementRequest_{} +} + +type type_BatchStatementRequest_ struct { +} + +func (_this type_BatchStatementRequest_) Default() interface{} { + return Companion_BatchStatementRequest_.Default() +} + +func (_this type_BatchStatementRequest_) String() string { + return "ComAmazonawsDynamodbTypes.BatchStatementRequest" +} +func (_this BatchStatementRequest) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = BatchStatementRequest{} + +// End of datatype BatchStatementRequest + +// Definition of datatype BatchStatementResponse +type BatchStatementResponse struct { + Data_BatchStatementResponse_ +} + +func (_this BatchStatementResponse) Get_() Data_BatchStatementResponse_ { + return _this.Data_BatchStatementResponse_ +} + +type Data_BatchStatementResponse_ interface { + isBatchStatementResponse() +} + +type CompanionStruct_BatchStatementResponse_ struct { +} + +var Companion_BatchStatementResponse_ = CompanionStruct_BatchStatementResponse_{} + +type BatchStatementResponse_BatchStatementResponse struct { + Error m_Wrappers.Option + TableName m_Wrappers.Option + Item m_Wrappers.Option +} + +func (BatchStatementResponse_BatchStatementResponse) isBatchStatementResponse() {} + +func (CompanionStruct_BatchStatementResponse_) Create_BatchStatementResponse_(Error m_Wrappers.Option, TableName m_Wrappers.Option, Item m_Wrappers.Option) BatchStatementResponse { + return BatchStatementResponse{BatchStatementResponse_BatchStatementResponse{Error, TableName, Item}} +} + +func (_this BatchStatementResponse) Is_BatchStatementResponse() bool { + _, ok := _this.Get_().(BatchStatementResponse_BatchStatementResponse) + return ok +} + +func (CompanionStruct_BatchStatementResponse_) Default() BatchStatementResponse { + return Companion_BatchStatementResponse_.Create_BatchStatementResponse_(m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this BatchStatementResponse) Dtor_Error() m_Wrappers.Option { + return _this.Get_().(BatchStatementResponse_BatchStatementResponse).Error +} + +func (_this BatchStatementResponse) Dtor_TableName() m_Wrappers.Option { + return _this.Get_().(BatchStatementResponse_BatchStatementResponse).TableName +} + +func (_this BatchStatementResponse) Dtor_Item() m_Wrappers.Option { + return _this.Get_().(BatchStatementResponse_BatchStatementResponse).Item +} + +func (_this BatchStatementResponse) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case BatchStatementResponse_BatchStatementResponse: + { + return "ComAmazonawsDynamodbTypes.BatchStatementResponse.BatchStatementResponse" + "(" + _dafny.String(data.Error) + ", " + _dafny.String(data.TableName) + ", " + _dafny.String(data.Item) + ")" + } + default: + { + return "" + } + } +} + +func (_this BatchStatementResponse) Equals(other BatchStatementResponse) bool { + switch data1 := _this.Get_().(type) { + case BatchStatementResponse_BatchStatementResponse: + { + data2, ok := other.Get_().(BatchStatementResponse_BatchStatementResponse) + return ok && data1.Error.Equals(data2.Error) && data1.TableName.Equals(data2.TableName) && data1.Item.Equals(data2.Item) + } + default: + { + return false // unexpected + } + } +} + +func (_this BatchStatementResponse) EqualsGeneric(other interface{}) bool { + typed, ok := other.(BatchStatementResponse) + return ok && _this.Equals(typed) +} + +func Type_BatchStatementResponse_() _dafny.TypeDescriptor { + return type_BatchStatementResponse_{} +} + +type type_BatchStatementResponse_ struct { +} + +func (_this type_BatchStatementResponse_) Default() interface{} { + return Companion_BatchStatementResponse_.Default() +} + +func (_this type_BatchStatementResponse_) String() string { + return "ComAmazonawsDynamodbTypes.BatchStatementResponse" +} +func (_this BatchStatementResponse) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = BatchStatementResponse{} + +// End of datatype BatchStatementResponse + +// Definition of datatype BatchWriteItemInput +type BatchWriteItemInput struct { + Data_BatchWriteItemInput_ +} + +func (_this BatchWriteItemInput) Get_() Data_BatchWriteItemInput_ { + return _this.Data_BatchWriteItemInput_ +} + +type Data_BatchWriteItemInput_ interface { + isBatchWriteItemInput() +} + +type CompanionStruct_BatchWriteItemInput_ struct { +} + +var Companion_BatchWriteItemInput_ = CompanionStruct_BatchWriteItemInput_{} + +type BatchWriteItemInput_BatchWriteItemInput struct { + RequestItems _dafny.Map + ReturnConsumedCapacity m_Wrappers.Option + ReturnItemCollectionMetrics m_Wrappers.Option +} + +func (BatchWriteItemInput_BatchWriteItemInput) isBatchWriteItemInput() {} + +func (CompanionStruct_BatchWriteItemInput_) Create_BatchWriteItemInput_(RequestItems _dafny.Map, ReturnConsumedCapacity m_Wrappers.Option, ReturnItemCollectionMetrics m_Wrappers.Option) BatchWriteItemInput { + return BatchWriteItemInput{BatchWriteItemInput_BatchWriteItemInput{RequestItems, ReturnConsumedCapacity, ReturnItemCollectionMetrics}} +} + +func (_this BatchWriteItemInput) Is_BatchWriteItemInput() bool { + _, ok := _this.Get_().(BatchWriteItemInput_BatchWriteItemInput) + return ok +} + +func (CompanionStruct_BatchWriteItemInput_) Default() BatchWriteItemInput { + return Companion_BatchWriteItemInput_.Create_BatchWriteItemInput_(_dafny.EmptyMap, m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this BatchWriteItemInput) Dtor_RequestItems() _dafny.Map { + return _this.Get_().(BatchWriteItemInput_BatchWriteItemInput).RequestItems +} + +func (_this BatchWriteItemInput) Dtor_ReturnConsumedCapacity() m_Wrappers.Option { + return _this.Get_().(BatchWriteItemInput_BatchWriteItemInput).ReturnConsumedCapacity +} + +func (_this BatchWriteItemInput) Dtor_ReturnItemCollectionMetrics() m_Wrappers.Option { + return _this.Get_().(BatchWriteItemInput_BatchWriteItemInput).ReturnItemCollectionMetrics +} + +func (_this BatchWriteItemInput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case BatchWriteItemInput_BatchWriteItemInput: + { + return "ComAmazonawsDynamodbTypes.BatchWriteItemInput.BatchWriteItemInput" + "(" + _dafny.String(data.RequestItems) + ", " + _dafny.String(data.ReturnConsumedCapacity) + ", " + _dafny.String(data.ReturnItemCollectionMetrics) + ")" + } + default: + { + return "" + } + } +} + +func (_this BatchWriteItemInput) Equals(other BatchWriteItemInput) bool { + switch data1 := _this.Get_().(type) { + case BatchWriteItemInput_BatchWriteItemInput: + { + data2, ok := other.Get_().(BatchWriteItemInput_BatchWriteItemInput) + return ok && data1.RequestItems.Equals(data2.RequestItems) && data1.ReturnConsumedCapacity.Equals(data2.ReturnConsumedCapacity) && data1.ReturnItemCollectionMetrics.Equals(data2.ReturnItemCollectionMetrics) + } + default: + { + return false // unexpected + } + } +} + +func (_this BatchWriteItemInput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(BatchWriteItemInput) + return ok && _this.Equals(typed) +} + +func Type_BatchWriteItemInput_() _dafny.TypeDescriptor { + return type_BatchWriteItemInput_{} +} + +type type_BatchWriteItemInput_ struct { +} + +func (_this type_BatchWriteItemInput_) Default() interface{} { + return Companion_BatchWriteItemInput_.Default() +} + +func (_this type_BatchWriteItemInput_) String() string { + return "ComAmazonawsDynamodbTypes.BatchWriteItemInput" +} +func (_this BatchWriteItemInput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = BatchWriteItemInput{} + +// End of datatype BatchWriteItemInput + +// Definition of datatype BatchWriteItemOutput +type BatchWriteItemOutput struct { + Data_BatchWriteItemOutput_ +} + +func (_this BatchWriteItemOutput) Get_() Data_BatchWriteItemOutput_ { + return _this.Data_BatchWriteItemOutput_ +} + +type Data_BatchWriteItemOutput_ interface { + isBatchWriteItemOutput() +} + +type CompanionStruct_BatchWriteItemOutput_ struct { +} + +var Companion_BatchWriteItemOutput_ = CompanionStruct_BatchWriteItemOutput_{} + +type BatchWriteItemOutput_BatchWriteItemOutput struct { + UnprocessedItems m_Wrappers.Option + ItemCollectionMetrics m_Wrappers.Option + ConsumedCapacity m_Wrappers.Option +} + +func (BatchWriteItemOutput_BatchWriteItemOutput) isBatchWriteItemOutput() {} + +func (CompanionStruct_BatchWriteItemOutput_) Create_BatchWriteItemOutput_(UnprocessedItems m_Wrappers.Option, ItemCollectionMetrics m_Wrappers.Option, ConsumedCapacity m_Wrappers.Option) BatchWriteItemOutput { + return BatchWriteItemOutput{BatchWriteItemOutput_BatchWriteItemOutput{UnprocessedItems, ItemCollectionMetrics, ConsumedCapacity}} +} + +func (_this BatchWriteItemOutput) Is_BatchWriteItemOutput() bool { + _, ok := _this.Get_().(BatchWriteItemOutput_BatchWriteItemOutput) + return ok +} + +func (CompanionStruct_BatchWriteItemOutput_) Default() BatchWriteItemOutput { + return Companion_BatchWriteItemOutput_.Create_BatchWriteItemOutput_(m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this BatchWriteItemOutput) Dtor_UnprocessedItems() m_Wrappers.Option { + return _this.Get_().(BatchWriteItemOutput_BatchWriteItemOutput).UnprocessedItems +} + +func (_this BatchWriteItemOutput) Dtor_ItemCollectionMetrics() m_Wrappers.Option { + return _this.Get_().(BatchWriteItemOutput_BatchWriteItemOutput).ItemCollectionMetrics +} + +func (_this BatchWriteItemOutput) Dtor_ConsumedCapacity() m_Wrappers.Option { + return _this.Get_().(BatchWriteItemOutput_BatchWriteItemOutput).ConsumedCapacity +} + +func (_this BatchWriteItemOutput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case BatchWriteItemOutput_BatchWriteItemOutput: + { + return "ComAmazonawsDynamodbTypes.BatchWriteItemOutput.BatchWriteItemOutput" + "(" + _dafny.String(data.UnprocessedItems) + ", " + _dafny.String(data.ItemCollectionMetrics) + ", " + _dafny.String(data.ConsumedCapacity) + ")" + } + default: + { + return "" + } + } +} + +func (_this BatchWriteItemOutput) Equals(other BatchWriteItemOutput) bool { + switch data1 := _this.Get_().(type) { + case BatchWriteItemOutput_BatchWriteItemOutput: + { + data2, ok := other.Get_().(BatchWriteItemOutput_BatchWriteItemOutput) + return ok && data1.UnprocessedItems.Equals(data2.UnprocessedItems) && data1.ItemCollectionMetrics.Equals(data2.ItemCollectionMetrics) && data1.ConsumedCapacity.Equals(data2.ConsumedCapacity) + } + default: + { + return false // unexpected + } + } +} + +func (_this BatchWriteItemOutput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(BatchWriteItemOutput) + return ok && _this.Equals(typed) +} + +func Type_BatchWriteItemOutput_() _dafny.TypeDescriptor { + return type_BatchWriteItemOutput_{} +} + +type type_BatchWriteItemOutput_ struct { +} + +func (_this type_BatchWriteItemOutput_) Default() interface{} { + return Companion_BatchWriteItemOutput_.Default() +} + +func (_this type_BatchWriteItemOutput_) String() string { + return "ComAmazonawsDynamodbTypes.BatchWriteItemOutput" +} +func (_this BatchWriteItemOutput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = BatchWriteItemOutput{} + +// End of datatype BatchWriteItemOutput + +// Definition of class BatchWriteItemRequestMap +type BatchWriteItemRequestMap struct { +} + +func New_BatchWriteItemRequestMap_() *BatchWriteItemRequestMap { + _this := BatchWriteItemRequestMap{} + + return &_this +} + +type CompanionStruct_BatchWriteItemRequestMap_ struct { +} + +var Companion_BatchWriteItemRequestMap_ = CompanionStruct_BatchWriteItemRequestMap_{} + +func (*BatchWriteItemRequestMap) String() string { + return "ComAmazonawsDynamodbTypes.BatchWriteItemRequestMap" +} + +// End of class BatchWriteItemRequestMap + +func Type_BatchWriteItemRequestMap_() _dafny.TypeDescriptor { + return type_BatchWriteItemRequestMap_{} +} + +type type_BatchWriteItemRequestMap_ struct { +} + +func (_this type_BatchWriteItemRequestMap_) Default() interface{} { + return _dafny.EmptyMap +} + +func (_this type_BatchWriteItemRequestMap_) String() string { + return "ComAmazonawsDynamodbTypes.BatchWriteItemRequestMap" +} +func (_this *CompanionStruct_BatchWriteItemRequestMap_) Is_(__source _dafny.Map) bool { + var _9_x _dafny.Map = (__source) + _ = _9_x + return Companion_Default___.IsValid__BatchWriteItemRequestMap(_9_x) +} + +// Definition of class BilledSizeBytes +type BilledSizeBytes struct { +} + +func New_BilledSizeBytes_() *BilledSizeBytes { + _this := BilledSizeBytes{} + + return &_this +} + +type CompanionStruct_BilledSizeBytes_ struct { +} + +var Companion_BilledSizeBytes_ = CompanionStruct_BilledSizeBytes_{} + +func (*BilledSizeBytes) String() string { + return "ComAmazonawsDynamodbTypes.BilledSizeBytes" +} + +// End of class BilledSizeBytes + +func Type_BilledSizeBytes_() _dafny.TypeDescriptor { + return type_BilledSizeBytes_{} +} + +type type_BilledSizeBytes_ struct { +} + +func (_this type_BilledSizeBytes_) Default() interface{} { + return int64(0) +} + +func (_this type_BilledSizeBytes_) String() string { + return "ComAmazonawsDynamodbTypes.BilledSizeBytes" +} +func (_this *CompanionStruct_BilledSizeBytes_) Is_(__source int64) bool { + var _10_x int64 = (__source) + _ = _10_x + if true { + return Companion_Default___.IsValid__BilledSizeBytes(_10_x) + } + return false +} + +// Definition of datatype BillingMode +type BillingMode struct { + Data_BillingMode_ +} + +func (_this BillingMode) Get_() Data_BillingMode_ { + return _this.Data_BillingMode_ +} + +type Data_BillingMode_ interface { + isBillingMode() +} + +type CompanionStruct_BillingMode_ struct { +} + +var Companion_BillingMode_ = CompanionStruct_BillingMode_{} + +type BillingMode_PROVISIONED struct { +} + +func (BillingMode_PROVISIONED) isBillingMode() {} + +func (CompanionStruct_BillingMode_) Create_PROVISIONED_() BillingMode { + return BillingMode{BillingMode_PROVISIONED{}} +} + +func (_this BillingMode) Is_PROVISIONED() bool { + _, ok := _this.Get_().(BillingMode_PROVISIONED) + return ok +} + +type BillingMode_PAY__PER__REQUEST struct { +} + +func (BillingMode_PAY__PER__REQUEST) isBillingMode() {} + +func (CompanionStruct_BillingMode_) Create_PAY__PER__REQUEST_() BillingMode { + return BillingMode{BillingMode_PAY__PER__REQUEST{}} +} + +func (_this BillingMode) Is_PAY__PER__REQUEST() bool { + _, ok := _this.Get_().(BillingMode_PAY__PER__REQUEST) + return ok +} + +func (CompanionStruct_BillingMode_) Default() BillingMode { + return Companion_BillingMode_.Create_PROVISIONED_() +} + +func (_ CompanionStruct_BillingMode_) AllSingletonConstructors() _dafny.Iterator { + i := -1 + return func() (interface{}, bool) { + i++ + switch i { + case 0: + return Companion_BillingMode_.Create_PROVISIONED_(), true + case 1: + return Companion_BillingMode_.Create_PAY__PER__REQUEST_(), true + default: + return BillingMode{}, false + } + } +} + +func (_this BillingMode) String() string { + switch _this.Get_().(type) { + case nil: + return "null" + case BillingMode_PROVISIONED: + { + return "ComAmazonawsDynamodbTypes.BillingMode.PROVISIONED" + } + case BillingMode_PAY__PER__REQUEST: + { + return "ComAmazonawsDynamodbTypes.BillingMode.PAY_PER_REQUEST" + } + default: + { + return "" + } + } +} + +func (_this BillingMode) Equals(other BillingMode) bool { + switch _this.Get_().(type) { + case BillingMode_PROVISIONED: + { + _, ok := other.Get_().(BillingMode_PROVISIONED) + return ok + } + case BillingMode_PAY__PER__REQUEST: + { + _, ok := other.Get_().(BillingMode_PAY__PER__REQUEST) + return ok + } + default: + { + return false // unexpected + } + } +} + +func (_this BillingMode) EqualsGeneric(other interface{}) bool { + typed, ok := other.(BillingMode) + return ok && _this.Equals(typed) +} + +func Type_BillingMode_() _dafny.TypeDescriptor { + return type_BillingMode_{} +} + +type type_BillingMode_ struct { +} + +func (_this type_BillingMode_) Default() interface{} { + return Companion_BillingMode_.Default() +} + +func (_this type_BillingMode_) String() string { + return "ComAmazonawsDynamodbTypes.BillingMode" +} +func (_this BillingMode) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = BillingMode{} + +// End of datatype BillingMode + +// Definition of datatype BillingModeSummary +type BillingModeSummary struct { + Data_BillingModeSummary_ +} + +func (_this BillingModeSummary) Get_() Data_BillingModeSummary_ { + return _this.Data_BillingModeSummary_ +} + +type Data_BillingModeSummary_ interface { + isBillingModeSummary() +} + +type CompanionStruct_BillingModeSummary_ struct { +} + +var Companion_BillingModeSummary_ = CompanionStruct_BillingModeSummary_{} + +type BillingModeSummary_BillingModeSummary struct { + BillingMode m_Wrappers.Option + LastUpdateToPayPerRequestDateTime m_Wrappers.Option +} + +func (BillingModeSummary_BillingModeSummary) isBillingModeSummary() {} + +func (CompanionStruct_BillingModeSummary_) Create_BillingModeSummary_(BillingMode m_Wrappers.Option, LastUpdateToPayPerRequestDateTime m_Wrappers.Option) BillingModeSummary { + return BillingModeSummary{BillingModeSummary_BillingModeSummary{BillingMode, LastUpdateToPayPerRequestDateTime}} +} + +func (_this BillingModeSummary) Is_BillingModeSummary() bool { + _, ok := _this.Get_().(BillingModeSummary_BillingModeSummary) + return ok +} + +func (CompanionStruct_BillingModeSummary_) Default() BillingModeSummary { + return Companion_BillingModeSummary_.Create_BillingModeSummary_(m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this BillingModeSummary) Dtor_BillingMode() m_Wrappers.Option { + return _this.Get_().(BillingModeSummary_BillingModeSummary).BillingMode +} + +func (_this BillingModeSummary) Dtor_LastUpdateToPayPerRequestDateTime() m_Wrappers.Option { + return _this.Get_().(BillingModeSummary_BillingModeSummary).LastUpdateToPayPerRequestDateTime +} + +func (_this BillingModeSummary) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case BillingModeSummary_BillingModeSummary: + { + return "ComAmazonawsDynamodbTypes.BillingModeSummary.BillingModeSummary" + "(" + _dafny.String(data.BillingMode) + ", " + _dafny.String(data.LastUpdateToPayPerRequestDateTime) + ")" + } + default: + { + return "" + } + } +} + +func (_this BillingModeSummary) Equals(other BillingModeSummary) bool { + switch data1 := _this.Get_().(type) { + case BillingModeSummary_BillingModeSummary: + { + data2, ok := other.Get_().(BillingModeSummary_BillingModeSummary) + return ok && data1.BillingMode.Equals(data2.BillingMode) && data1.LastUpdateToPayPerRequestDateTime.Equals(data2.LastUpdateToPayPerRequestDateTime) + } + default: + { + return false // unexpected + } + } +} + +func (_this BillingModeSummary) EqualsGeneric(other interface{}) bool { + typed, ok := other.(BillingModeSummary) + return ok && _this.Equals(typed) +} + +func Type_BillingModeSummary_() _dafny.TypeDescriptor { + return type_BillingModeSummary_{} +} + +type type_BillingModeSummary_ struct { +} + +func (_this type_BillingModeSummary_) Default() interface{} { + return Companion_BillingModeSummary_.Default() +} + +func (_this type_BillingModeSummary_) String() string { + return "ComAmazonawsDynamodbTypes.BillingModeSummary" +} +func (_this BillingModeSummary) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = BillingModeSummary{} + +// End of datatype BillingModeSummary + +// Definition of datatype CancellationReason +type CancellationReason struct { + Data_CancellationReason_ +} + +func (_this CancellationReason) Get_() Data_CancellationReason_ { + return _this.Data_CancellationReason_ +} + +type Data_CancellationReason_ interface { + isCancellationReason() +} + +type CompanionStruct_CancellationReason_ struct { +} + +var Companion_CancellationReason_ = CompanionStruct_CancellationReason_{} + +type CancellationReason_CancellationReason struct { + Item m_Wrappers.Option + Code m_Wrappers.Option + Message m_Wrappers.Option +} + +func (CancellationReason_CancellationReason) isCancellationReason() {} + +func (CompanionStruct_CancellationReason_) Create_CancellationReason_(Item m_Wrappers.Option, Code m_Wrappers.Option, Message m_Wrappers.Option) CancellationReason { + return CancellationReason{CancellationReason_CancellationReason{Item, Code, Message}} +} + +func (_this CancellationReason) Is_CancellationReason() bool { + _, ok := _this.Get_().(CancellationReason_CancellationReason) + return ok +} + +func (CompanionStruct_CancellationReason_) Default() CancellationReason { + return Companion_CancellationReason_.Create_CancellationReason_(m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this CancellationReason) Dtor_Item() m_Wrappers.Option { + return _this.Get_().(CancellationReason_CancellationReason).Item +} + +func (_this CancellationReason) Dtor_Code() m_Wrappers.Option { + return _this.Get_().(CancellationReason_CancellationReason).Code +} + +func (_this CancellationReason) Dtor_Message() m_Wrappers.Option { + return _this.Get_().(CancellationReason_CancellationReason).Message +} + +func (_this CancellationReason) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case CancellationReason_CancellationReason: + { + return "ComAmazonawsDynamodbTypes.CancellationReason.CancellationReason" + "(" + _dafny.String(data.Item) + ", " + _dafny.String(data.Code) + ", " + _dafny.String(data.Message) + ")" + } + default: + { + return "" + } + } +} + +func (_this CancellationReason) Equals(other CancellationReason) bool { + switch data1 := _this.Get_().(type) { + case CancellationReason_CancellationReason: + { + data2, ok := other.Get_().(CancellationReason_CancellationReason) + return ok && data1.Item.Equals(data2.Item) && data1.Code.Equals(data2.Code) && data1.Message.Equals(data2.Message) + } + default: + { + return false // unexpected + } + } +} + +func (_this CancellationReason) EqualsGeneric(other interface{}) bool { + typed, ok := other.(CancellationReason) + return ok && _this.Equals(typed) +} + +func Type_CancellationReason_() _dafny.TypeDescriptor { + return type_CancellationReason_{} +} + +type type_CancellationReason_ struct { +} + +func (_this type_CancellationReason_) Default() interface{} { + return Companion_CancellationReason_.Default() +} + +func (_this type_CancellationReason_) String() string { + return "ComAmazonawsDynamodbTypes.CancellationReason" +} +func (_this CancellationReason) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = CancellationReason{} + +// End of datatype CancellationReason + +// Definition of class CancellationReasonList +type CancellationReasonList struct { +} + +func New_CancellationReasonList_() *CancellationReasonList { + _this := CancellationReasonList{} + + return &_this +} + +type CompanionStruct_CancellationReasonList_ struct { +} + +var Companion_CancellationReasonList_ = CompanionStruct_CancellationReasonList_{} + +func (*CancellationReasonList) String() string { + return "ComAmazonawsDynamodbTypes.CancellationReasonList" +} + +// End of class CancellationReasonList + +func Type_CancellationReasonList_() _dafny.TypeDescriptor { + return type_CancellationReasonList_{} +} + +type type_CancellationReasonList_ struct { +} + +func (_this type_CancellationReasonList_) Default() interface{} { + return _dafny.EmptySeq +} + +func (_this type_CancellationReasonList_) String() string { + return "ComAmazonawsDynamodbTypes.CancellationReasonList" +} +func (_this *CompanionStruct_CancellationReasonList_) Is_(__source _dafny.Sequence) bool { + var _11_x _dafny.Sequence = (__source) + _ = _11_x + return Companion_Default___.IsValid__CancellationReasonList(_11_x) +} + +// Definition of datatype Capacity +type Capacity struct { + Data_Capacity_ +} + +func (_this Capacity) Get_() Data_Capacity_ { + return _this.Data_Capacity_ +} + +type Data_Capacity_ interface { + isCapacity() +} + +type CompanionStruct_Capacity_ struct { +} + +var Companion_Capacity_ = CompanionStruct_Capacity_{} + +type Capacity_Capacity struct { + ReadCapacityUnits m_Wrappers.Option + WriteCapacityUnits m_Wrappers.Option + CapacityUnits m_Wrappers.Option +} + +func (Capacity_Capacity) isCapacity() {} + +func (CompanionStruct_Capacity_) Create_Capacity_(ReadCapacityUnits m_Wrappers.Option, WriteCapacityUnits m_Wrappers.Option, CapacityUnits m_Wrappers.Option) Capacity { + return Capacity{Capacity_Capacity{ReadCapacityUnits, WriteCapacityUnits, CapacityUnits}} +} + +func (_this Capacity) Is_Capacity() bool { + _, ok := _this.Get_().(Capacity_Capacity) + return ok +} + +func (CompanionStruct_Capacity_) Default() Capacity { + return Companion_Capacity_.Create_Capacity_(m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this Capacity) Dtor_ReadCapacityUnits() m_Wrappers.Option { + return _this.Get_().(Capacity_Capacity).ReadCapacityUnits +} + +func (_this Capacity) Dtor_WriteCapacityUnits() m_Wrappers.Option { + return _this.Get_().(Capacity_Capacity).WriteCapacityUnits +} + +func (_this Capacity) Dtor_CapacityUnits() m_Wrappers.Option { + return _this.Get_().(Capacity_Capacity).CapacityUnits +} + +func (_this Capacity) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case Capacity_Capacity: + { + return "ComAmazonawsDynamodbTypes.Capacity.Capacity" + "(" + _dafny.String(data.ReadCapacityUnits) + ", " + _dafny.String(data.WriteCapacityUnits) + ", " + _dafny.String(data.CapacityUnits) + ")" + } + default: + { + return "" + } + } +} + +func (_this Capacity) Equals(other Capacity) bool { + switch data1 := _this.Get_().(type) { + case Capacity_Capacity: + { + data2, ok := other.Get_().(Capacity_Capacity) + return ok && data1.ReadCapacityUnits.Equals(data2.ReadCapacityUnits) && data1.WriteCapacityUnits.Equals(data2.WriteCapacityUnits) && data1.CapacityUnits.Equals(data2.CapacityUnits) + } + default: + { + return false // unexpected + } + } +} + +func (_this Capacity) EqualsGeneric(other interface{}) bool { + typed, ok := other.(Capacity) + return ok && _this.Equals(typed) +} + +func Type_Capacity_() _dafny.TypeDescriptor { + return type_Capacity_{} +} + +type type_Capacity_ struct { +} + +func (_this type_Capacity_) Default() interface{} { + return Companion_Capacity_.Default() +} + +func (_this type_Capacity_) String() string { + return "ComAmazonawsDynamodbTypes.Capacity" +} +func (_this Capacity) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = Capacity{} + +// End of datatype Capacity + +// Definition of class ClientRequestToken +type ClientRequestToken struct { +} + +func New_ClientRequestToken_() *ClientRequestToken { + _this := ClientRequestToken{} + + return &_this +} + +type CompanionStruct_ClientRequestToken_ struct { +} + +var Companion_ClientRequestToken_ = CompanionStruct_ClientRequestToken_{} + +func (*ClientRequestToken) String() string { + return "ComAmazonawsDynamodbTypes.ClientRequestToken" +} + +// End of class ClientRequestToken + +func Type_ClientRequestToken_() _dafny.TypeDescriptor { + return type_ClientRequestToken_{} +} + +type type_ClientRequestToken_ struct { +} + +func (_this type_ClientRequestToken_) Default() interface{} { + return _dafny.EmptySeq.SetString() +} + +func (_this type_ClientRequestToken_) String() string { + return "ComAmazonawsDynamodbTypes.ClientRequestToken" +} +func (_this *CompanionStruct_ClientRequestToken_) Is_(__source _dafny.Sequence) bool { + var _12_x _dafny.Sequence = (__source) + _ = _12_x + return Companion_Default___.IsValid__ClientRequestToken(_12_x) +} + +// Definition of class CloudWatchLogGroupArn +type CloudWatchLogGroupArn struct { +} + +func New_CloudWatchLogGroupArn_() *CloudWatchLogGroupArn { + _this := CloudWatchLogGroupArn{} + + return &_this +} + +type CompanionStruct_CloudWatchLogGroupArn_ struct { +} + +var Companion_CloudWatchLogGroupArn_ = CompanionStruct_CloudWatchLogGroupArn_{} + +func (*CloudWatchLogGroupArn) String() string { + return "ComAmazonawsDynamodbTypes.CloudWatchLogGroupArn" +} + +// End of class CloudWatchLogGroupArn + +func Type_CloudWatchLogGroupArn_() _dafny.TypeDescriptor { + return type_CloudWatchLogGroupArn_{} +} + +type type_CloudWatchLogGroupArn_ struct { +} + +func (_this type_CloudWatchLogGroupArn_) Default() interface{} { + return _dafny.EmptySeq.SetString() +} + +func (_this type_CloudWatchLogGroupArn_) String() string { + return "ComAmazonawsDynamodbTypes.CloudWatchLogGroupArn" +} +func (_this *CompanionStruct_CloudWatchLogGroupArn_) Is_(__source _dafny.Sequence) bool { + var _13_x _dafny.Sequence = (__source) + _ = _13_x + return Companion_Default___.IsValid__CloudWatchLogGroupArn(_13_x) +} + +// Definition of datatype ComparisonOperator +type ComparisonOperator struct { + Data_ComparisonOperator_ +} + +func (_this ComparisonOperator) Get_() Data_ComparisonOperator_ { + return _this.Data_ComparisonOperator_ +} + +type Data_ComparisonOperator_ interface { + isComparisonOperator() +} + +type CompanionStruct_ComparisonOperator_ struct { +} + +var Companion_ComparisonOperator_ = CompanionStruct_ComparisonOperator_{} + +type ComparisonOperator_EQ struct { +} + +func (ComparisonOperator_EQ) isComparisonOperator() {} + +func (CompanionStruct_ComparisonOperator_) Create_EQ_() ComparisonOperator { + return ComparisonOperator{ComparisonOperator_EQ{}} +} + +func (_this ComparisonOperator) Is_EQ() bool { + _, ok := _this.Get_().(ComparisonOperator_EQ) + return ok +} + +type ComparisonOperator_NE struct { +} + +func (ComparisonOperator_NE) isComparisonOperator() {} + +func (CompanionStruct_ComparisonOperator_) Create_NE_() ComparisonOperator { + return ComparisonOperator{ComparisonOperator_NE{}} +} + +func (_this ComparisonOperator) Is_NE() bool { + _, ok := _this.Get_().(ComparisonOperator_NE) + return ok +} + +type ComparisonOperator_IN struct { +} + +func (ComparisonOperator_IN) isComparisonOperator() {} + +func (CompanionStruct_ComparisonOperator_) Create_IN_() ComparisonOperator { + return ComparisonOperator{ComparisonOperator_IN{}} +} + +func (_this ComparisonOperator) Is_IN() bool { + _, ok := _this.Get_().(ComparisonOperator_IN) + return ok +} + +type ComparisonOperator_LE struct { +} + +func (ComparisonOperator_LE) isComparisonOperator() {} + +func (CompanionStruct_ComparisonOperator_) Create_LE_() ComparisonOperator { + return ComparisonOperator{ComparisonOperator_LE{}} +} + +func (_this ComparisonOperator) Is_LE() bool { + _, ok := _this.Get_().(ComparisonOperator_LE) + return ok +} + +type ComparisonOperator_LT struct { +} + +func (ComparisonOperator_LT) isComparisonOperator() {} + +func (CompanionStruct_ComparisonOperator_) Create_LT_() ComparisonOperator { + return ComparisonOperator{ComparisonOperator_LT{}} +} + +func (_this ComparisonOperator) Is_LT() bool { + _, ok := _this.Get_().(ComparisonOperator_LT) + return ok +} + +type ComparisonOperator_GE struct { +} + +func (ComparisonOperator_GE) isComparisonOperator() {} + +func (CompanionStruct_ComparisonOperator_) Create_GE_() ComparisonOperator { + return ComparisonOperator{ComparisonOperator_GE{}} +} + +func (_this ComparisonOperator) Is_GE() bool { + _, ok := _this.Get_().(ComparisonOperator_GE) + return ok +} + +type ComparisonOperator_GT struct { +} + +func (ComparisonOperator_GT) isComparisonOperator() {} + +func (CompanionStruct_ComparisonOperator_) Create_GT_() ComparisonOperator { + return ComparisonOperator{ComparisonOperator_GT{}} +} + +func (_this ComparisonOperator) Is_GT() bool { + _, ok := _this.Get_().(ComparisonOperator_GT) + return ok +} + +type ComparisonOperator_BETWEEN struct { +} + +func (ComparisonOperator_BETWEEN) isComparisonOperator() {} + +func (CompanionStruct_ComparisonOperator_) Create_BETWEEN_() ComparisonOperator { + return ComparisonOperator{ComparisonOperator_BETWEEN{}} +} + +func (_this ComparisonOperator) Is_BETWEEN() bool { + _, ok := _this.Get_().(ComparisonOperator_BETWEEN) + return ok +} + +type ComparisonOperator_NOT__NULL struct { +} + +func (ComparisonOperator_NOT__NULL) isComparisonOperator() {} + +func (CompanionStruct_ComparisonOperator_) Create_NOT__NULL_() ComparisonOperator { + return ComparisonOperator{ComparisonOperator_NOT__NULL{}} +} + +func (_this ComparisonOperator) Is_NOT__NULL() bool { + _, ok := _this.Get_().(ComparisonOperator_NOT__NULL) + return ok +} + +type ComparisonOperator_NULL struct { +} + +func (ComparisonOperator_NULL) isComparisonOperator() {} + +func (CompanionStruct_ComparisonOperator_) Create_NULL_() ComparisonOperator { + return ComparisonOperator{ComparisonOperator_NULL{}} +} + +func (_this ComparisonOperator) Is_NULL() bool { + _, ok := _this.Get_().(ComparisonOperator_NULL) + return ok +} + +type ComparisonOperator_CONTAINS struct { +} + +func (ComparisonOperator_CONTAINS) isComparisonOperator() {} + +func (CompanionStruct_ComparisonOperator_) Create_CONTAINS_() ComparisonOperator { + return ComparisonOperator{ComparisonOperator_CONTAINS{}} +} + +func (_this ComparisonOperator) Is_CONTAINS() bool { + _, ok := _this.Get_().(ComparisonOperator_CONTAINS) + return ok +} + +type ComparisonOperator_NOT__CONTAINS struct { +} + +func (ComparisonOperator_NOT__CONTAINS) isComparisonOperator() {} + +func (CompanionStruct_ComparisonOperator_) Create_NOT__CONTAINS_() ComparisonOperator { + return ComparisonOperator{ComparisonOperator_NOT__CONTAINS{}} +} + +func (_this ComparisonOperator) Is_NOT__CONTAINS() bool { + _, ok := _this.Get_().(ComparisonOperator_NOT__CONTAINS) + return ok +} + +type ComparisonOperator_BEGINS__WITH struct { +} + +func (ComparisonOperator_BEGINS__WITH) isComparisonOperator() {} + +func (CompanionStruct_ComparisonOperator_) Create_BEGINS__WITH_() ComparisonOperator { + return ComparisonOperator{ComparisonOperator_BEGINS__WITH{}} +} + +func (_this ComparisonOperator) Is_BEGINS__WITH() bool { + _, ok := _this.Get_().(ComparisonOperator_BEGINS__WITH) + return ok +} + +func (CompanionStruct_ComparisonOperator_) Default() ComparisonOperator { + return Companion_ComparisonOperator_.Create_EQ_() +} + +func (_ CompanionStruct_ComparisonOperator_) AllSingletonConstructors() _dafny.Iterator { + i := -1 + return func() (interface{}, bool) { + i++ + switch i { + case 0: + return Companion_ComparisonOperator_.Create_EQ_(), true + case 1: + return Companion_ComparisonOperator_.Create_NE_(), true + case 2: + return Companion_ComparisonOperator_.Create_IN_(), true + case 3: + return Companion_ComparisonOperator_.Create_LE_(), true + case 4: + return Companion_ComparisonOperator_.Create_LT_(), true + case 5: + return Companion_ComparisonOperator_.Create_GE_(), true + case 6: + return Companion_ComparisonOperator_.Create_GT_(), true + case 7: + return Companion_ComparisonOperator_.Create_BETWEEN_(), true + case 8: + return Companion_ComparisonOperator_.Create_NOT__NULL_(), true + case 9: + return Companion_ComparisonOperator_.Create_NULL_(), true + case 10: + return Companion_ComparisonOperator_.Create_CONTAINS_(), true + case 11: + return Companion_ComparisonOperator_.Create_NOT__CONTAINS_(), true + case 12: + return Companion_ComparisonOperator_.Create_BEGINS__WITH_(), true + default: + return ComparisonOperator{}, false + } + } +} + +func (_this ComparisonOperator) String() string { + switch _this.Get_().(type) { + case nil: + return "null" + case ComparisonOperator_EQ: + { + return "ComAmazonawsDynamodbTypes.ComparisonOperator.EQ" + } + case ComparisonOperator_NE: + { + return "ComAmazonawsDynamodbTypes.ComparisonOperator.NE" + } + case ComparisonOperator_IN: + { + return "ComAmazonawsDynamodbTypes.ComparisonOperator.IN" + } + case ComparisonOperator_LE: + { + return "ComAmazonawsDynamodbTypes.ComparisonOperator.LE" + } + case ComparisonOperator_LT: + { + return "ComAmazonawsDynamodbTypes.ComparisonOperator.LT" + } + case ComparisonOperator_GE: + { + return "ComAmazonawsDynamodbTypes.ComparisonOperator.GE" + } + case ComparisonOperator_GT: + { + return "ComAmazonawsDynamodbTypes.ComparisonOperator.GT" + } + case ComparisonOperator_BETWEEN: + { + return "ComAmazonawsDynamodbTypes.ComparisonOperator.BETWEEN" + } + case ComparisonOperator_NOT__NULL: + { + return "ComAmazonawsDynamodbTypes.ComparisonOperator.NOT_NULL" + } + case ComparisonOperator_NULL: + { + return "ComAmazonawsDynamodbTypes.ComparisonOperator.NULL" + } + case ComparisonOperator_CONTAINS: + { + return "ComAmazonawsDynamodbTypes.ComparisonOperator.CONTAINS" + } + case ComparisonOperator_NOT__CONTAINS: + { + return "ComAmazonawsDynamodbTypes.ComparisonOperator.NOT_CONTAINS" + } + case ComparisonOperator_BEGINS__WITH: + { + return "ComAmazonawsDynamodbTypes.ComparisonOperator.BEGINS_WITH" + } + default: + { + return "" + } + } +} + +func (_this ComparisonOperator) Equals(other ComparisonOperator) bool { + switch _this.Get_().(type) { + case ComparisonOperator_EQ: + { + _, ok := other.Get_().(ComparisonOperator_EQ) + return ok + } + case ComparisonOperator_NE: + { + _, ok := other.Get_().(ComparisonOperator_NE) + return ok + } + case ComparisonOperator_IN: + { + _, ok := other.Get_().(ComparisonOperator_IN) + return ok + } + case ComparisonOperator_LE: + { + _, ok := other.Get_().(ComparisonOperator_LE) + return ok + } + case ComparisonOperator_LT: + { + _, ok := other.Get_().(ComparisonOperator_LT) + return ok + } + case ComparisonOperator_GE: + { + _, ok := other.Get_().(ComparisonOperator_GE) + return ok + } + case ComparisonOperator_GT: + { + _, ok := other.Get_().(ComparisonOperator_GT) + return ok + } + case ComparisonOperator_BETWEEN: + { + _, ok := other.Get_().(ComparisonOperator_BETWEEN) + return ok + } + case ComparisonOperator_NOT__NULL: + { + _, ok := other.Get_().(ComparisonOperator_NOT__NULL) + return ok + } + case ComparisonOperator_NULL: + { + _, ok := other.Get_().(ComparisonOperator_NULL) + return ok + } + case ComparisonOperator_CONTAINS: + { + _, ok := other.Get_().(ComparisonOperator_CONTAINS) + return ok + } + case ComparisonOperator_NOT__CONTAINS: + { + _, ok := other.Get_().(ComparisonOperator_NOT__CONTAINS) + return ok + } + case ComparisonOperator_BEGINS__WITH: + { + _, ok := other.Get_().(ComparisonOperator_BEGINS__WITH) + return ok + } + default: + { + return false // unexpected + } + } +} + +func (_this ComparisonOperator) EqualsGeneric(other interface{}) bool { + typed, ok := other.(ComparisonOperator) + return ok && _this.Equals(typed) +} + +func Type_ComparisonOperator_() _dafny.TypeDescriptor { + return type_ComparisonOperator_{} +} + +type type_ComparisonOperator_ struct { +} + +func (_this type_ComparisonOperator_) Default() interface{} { + return Companion_ComparisonOperator_.Default() +} + +func (_this type_ComparisonOperator_) String() string { + return "ComAmazonawsDynamodbTypes.ComparisonOperator" +} +func (_this ComparisonOperator) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = ComparisonOperator{} + +// End of datatype ComparisonOperator + +// Definition of datatype Condition +type Condition struct { + Data_Condition_ +} + +func (_this Condition) Get_() Data_Condition_ { + return _this.Data_Condition_ +} + +type Data_Condition_ interface { + isCondition() +} + +type CompanionStruct_Condition_ struct { +} + +var Companion_Condition_ = CompanionStruct_Condition_{} + +type Condition_Condition struct { + AttributeValueList m_Wrappers.Option + ComparisonOperator ComparisonOperator +} + +func (Condition_Condition) isCondition() {} + +func (CompanionStruct_Condition_) Create_Condition_(AttributeValueList m_Wrappers.Option, ComparisonOperator ComparisonOperator) Condition { + return Condition{Condition_Condition{AttributeValueList, ComparisonOperator}} +} + +func (_this Condition) Is_Condition() bool { + _, ok := _this.Get_().(Condition_Condition) + return ok +} + +func (CompanionStruct_Condition_) Default() Condition { + return Companion_Condition_.Create_Condition_(m_Wrappers.Companion_Option_.Default(), Companion_ComparisonOperator_.Default()) +} + +func (_this Condition) Dtor_AttributeValueList() m_Wrappers.Option { + return _this.Get_().(Condition_Condition).AttributeValueList +} + +func (_this Condition) Dtor_ComparisonOperator() ComparisonOperator { + return _this.Get_().(Condition_Condition).ComparisonOperator +} + +func (_this Condition) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case Condition_Condition: + { + return "ComAmazonawsDynamodbTypes.Condition.Condition" + "(" + _dafny.String(data.AttributeValueList) + ", " + _dafny.String(data.ComparisonOperator) + ")" + } + default: + { + return "" + } + } +} + +func (_this Condition) Equals(other Condition) bool { + switch data1 := _this.Get_().(type) { + case Condition_Condition: + { + data2, ok := other.Get_().(Condition_Condition) + return ok && data1.AttributeValueList.Equals(data2.AttributeValueList) && data1.ComparisonOperator.Equals(data2.ComparisonOperator) + } + default: + { + return false // unexpected + } + } +} + +func (_this Condition) EqualsGeneric(other interface{}) bool { + typed, ok := other.(Condition) + return ok && _this.Equals(typed) +} + +func Type_Condition_() _dafny.TypeDescriptor { + return type_Condition_{} +} + +type type_Condition_ struct { +} + +func (_this type_Condition_) Default() interface{} { + return Companion_Condition_.Default() +} + +func (_this type_Condition_) String() string { + return "ComAmazonawsDynamodbTypes.Condition" +} +func (_this Condition) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = Condition{} + +// End of datatype Condition + +// Definition of datatype ConditionalOperator +type ConditionalOperator struct { + Data_ConditionalOperator_ +} + +func (_this ConditionalOperator) Get_() Data_ConditionalOperator_ { + return _this.Data_ConditionalOperator_ +} + +type Data_ConditionalOperator_ interface { + isConditionalOperator() +} + +type CompanionStruct_ConditionalOperator_ struct { +} + +var Companion_ConditionalOperator_ = CompanionStruct_ConditionalOperator_{} + +type ConditionalOperator_AND struct { +} + +func (ConditionalOperator_AND) isConditionalOperator() {} + +func (CompanionStruct_ConditionalOperator_) Create_AND_() ConditionalOperator { + return ConditionalOperator{ConditionalOperator_AND{}} +} + +func (_this ConditionalOperator) Is_AND() bool { + _, ok := _this.Get_().(ConditionalOperator_AND) + return ok +} + +type ConditionalOperator_OR struct { +} + +func (ConditionalOperator_OR) isConditionalOperator() {} + +func (CompanionStruct_ConditionalOperator_) Create_OR_() ConditionalOperator { + return ConditionalOperator{ConditionalOperator_OR{}} +} + +func (_this ConditionalOperator) Is_OR() bool { + _, ok := _this.Get_().(ConditionalOperator_OR) + return ok +} + +func (CompanionStruct_ConditionalOperator_) Default() ConditionalOperator { + return Companion_ConditionalOperator_.Create_AND_() +} + +func (_ CompanionStruct_ConditionalOperator_) AllSingletonConstructors() _dafny.Iterator { + i := -1 + return func() (interface{}, bool) { + i++ + switch i { + case 0: + return Companion_ConditionalOperator_.Create_AND_(), true + case 1: + return Companion_ConditionalOperator_.Create_OR_(), true + default: + return ConditionalOperator{}, false + } + } +} + +func (_this ConditionalOperator) String() string { + switch _this.Get_().(type) { + case nil: + return "null" + case ConditionalOperator_AND: + { + return "ComAmazonawsDynamodbTypes.ConditionalOperator.AND" + } + case ConditionalOperator_OR: + { + return "ComAmazonawsDynamodbTypes.ConditionalOperator.OR" + } + default: + { + return "" + } + } +} + +func (_this ConditionalOperator) Equals(other ConditionalOperator) bool { + switch _this.Get_().(type) { + case ConditionalOperator_AND: + { + _, ok := other.Get_().(ConditionalOperator_AND) + return ok + } + case ConditionalOperator_OR: + { + _, ok := other.Get_().(ConditionalOperator_OR) + return ok + } + default: + { + return false // unexpected + } + } +} + +func (_this ConditionalOperator) EqualsGeneric(other interface{}) bool { + typed, ok := other.(ConditionalOperator) + return ok && _this.Equals(typed) +} + +func Type_ConditionalOperator_() _dafny.TypeDescriptor { + return type_ConditionalOperator_{} +} + +type type_ConditionalOperator_ struct { +} + +func (_this type_ConditionalOperator_) Default() interface{} { + return Companion_ConditionalOperator_.Default() +} + +func (_this type_ConditionalOperator_) String() string { + return "ComAmazonawsDynamodbTypes.ConditionalOperator" +} +func (_this ConditionalOperator) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = ConditionalOperator{} + +// End of datatype ConditionalOperator + +// Definition of datatype ConditionCheck +type ConditionCheck struct { + Data_ConditionCheck_ +} + +func (_this ConditionCheck) Get_() Data_ConditionCheck_ { + return _this.Data_ConditionCheck_ +} + +type Data_ConditionCheck_ interface { + isConditionCheck() +} + +type CompanionStruct_ConditionCheck_ struct { +} + +var Companion_ConditionCheck_ = CompanionStruct_ConditionCheck_{} + +type ConditionCheck_ConditionCheck struct { + Key _dafny.Map + TableName _dafny.Sequence + ConditionExpression _dafny.Sequence + ExpressionAttributeNames m_Wrappers.Option + ExpressionAttributeValues m_Wrappers.Option + ReturnValuesOnConditionCheckFailure m_Wrappers.Option +} + +func (ConditionCheck_ConditionCheck) isConditionCheck() {} + +func (CompanionStruct_ConditionCheck_) Create_ConditionCheck_(Key _dafny.Map, TableName _dafny.Sequence, ConditionExpression _dafny.Sequence, ExpressionAttributeNames m_Wrappers.Option, ExpressionAttributeValues m_Wrappers.Option, ReturnValuesOnConditionCheckFailure m_Wrappers.Option) ConditionCheck { + return ConditionCheck{ConditionCheck_ConditionCheck{Key, TableName, ConditionExpression, ExpressionAttributeNames, ExpressionAttributeValues, ReturnValuesOnConditionCheckFailure}} +} + +func (_this ConditionCheck) Is_ConditionCheck() bool { + _, ok := _this.Get_().(ConditionCheck_ConditionCheck) + return ok +} + +func (CompanionStruct_ConditionCheck_) Default() ConditionCheck { + return Companion_ConditionCheck_.Create_ConditionCheck_(_dafny.EmptyMap, _dafny.EmptySeq.SetString(), _dafny.EmptySeq.SetString(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this ConditionCheck) Dtor_Key() _dafny.Map { + return _this.Get_().(ConditionCheck_ConditionCheck).Key +} + +func (_this ConditionCheck) Dtor_TableName() _dafny.Sequence { + return _this.Get_().(ConditionCheck_ConditionCheck).TableName +} + +func (_this ConditionCheck) Dtor_ConditionExpression() _dafny.Sequence { + return _this.Get_().(ConditionCheck_ConditionCheck).ConditionExpression +} + +func (_this ConditionCheck) Dtor_ExpressionAttributeNames() m_Wrappers.Option { + return _this.Get_().(ConditionCheck_ConditionCheck).ExpressionAttributeNames +} + +func (_this ConditionCheck) Dtor_ExpressionAttributeValues() m_Wrappers.Option { + return _this.Get_().(ConditionCheck_ConditionCheck).ExpressionAttributeValues +} + +func (_this ConditionCheck) Dtor_ReturnValuesOnConditionCheckFailure() m_Wrappers.Option { + return _this.Get_().(ConditionCheck_ConditionCheck).ReturnValuesOnConditionCheckFailure +} + +func (_this ConditionCheck) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case ConditionCheck_ConditionCheck: + { + return "ComAmazonawsDynamodbTypes.ConditionCheck.ConditionCheck" + "(" + _dafny.String(data.Key) + ", " + _dafny.String(data.TableName) + ", " + _dafny.String(data.ConditionExpression) + ", " + _dafny.String(data.ExpressionAttributeNames) + ", " + _dafny.String(data.ExpressionAttributeValues) + ", " + _dafny.String(data.ReturnValuesOnConditionCheckFailure) + ")" + } + default: + { + return "" + } + } +} + +func (_this ConditionCheck) Equals(other ConditionCheck) bool { + switch data1 := _this.Get_().(type) { + case ConditionCheck_ConditionCheck: + { + data2, ok := other.Get_().(ConditionCheck_ConditionCheck) + return ok && data1.Key.Equals(data2.Key) && data1.TableName.Equals(data2.TableName) && data1.ConditionExpression.Equals(data2.ConditionExpression) && data1.ExpressionAttributeNames.Equals(data2.ExpressionAttributeNames) && data1.ExpressionAttributeValues.Equals(data2.ExpressionAttributeValues) && data1.ReturnValuesOnConditionCheckFailure.Equals(data2.ReturnValuesOnConditionCheckFailure) + } + default: + { + return false // unexpected + } + } +} + +func (_this ConditionCheck) EqualsGeneric(other interface{}) bool { + typed, ok := other.(ConditionCheck) + return ok && _this.Equals(typed) +} + +func Type_ConditionCheck_() _dafny.TypeDescriptor { + return type_ConditionCheck_{} +} + +type type_ConditionCheck_ struct { +} + +func (_this type_ConditionCheck_) Default() interface{} { + return Companion_ConditionCheck_.Default() +} + +func (_this type_ConditionCheck_) String() string { + return "ComAmazonawsDynamodbTypes.ConditionCheck" +} +func (_this ConditionCheck) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = ConditionCheck{} + +// End of datatype ConditionCheck + +// Definition of datatype ConsumedCapacity +type ConsumedCapacity struct { + Data_ConsumedCapacity_ +} + +func (_this ConsumedCapacity) Get_() Data_ConsumedCapacity_ { + return _this.Data_ConsumedCapacity_ +} + +type Data_ConsumedCapacity_ interface { + isConsumedCapacity() +} + +type CompanionStruct_ConsumedCapacity_ struct { +} + +var Companion_ConsumedCapacity_ = CompanionStruct_ConsumedCapacity_{} + +type ConsumedCapacity_ConsumedCapacity struct { + TableName m_Wrappers.Option + CapacityUnits m_Wrappers.Option + ReadCapacityUnits m_Wrappers.Option + WriteCapacityUnits m_Wrappers.Option + Table m_Wrappers.Option + LocalSecondaryIndexes m_Wrappers.Option + GlobalSecondaryIndexes m_Wrappers.Option +} + +func (ConsumedCapacity_ConsumedCapacity) isConsumedCapacity() {} + +func (CompanionStruct_ConsumedCapacity_) Create_ConsumedCapacity_(TableName m_Wrappers.Option, CapacityUnits m_Wrappers.Option, ReadCapacityUnits m_Wrappers.Option, WriteCapacityUnits m_Wrappers.Option, Table m_Wrappers.Option, LocalSecondaryIndexes m_Wrappers.Option, GlobalSecondaryIndexes m_Wrappers.Option) ConsumedCapacity { + return ConsumedCapacity{ConsumedCapacity_ConsumedCapacity{TableName, CapacityUnits, ReadCapacityUnits, WriteCapacityUnits, Table, LocalSecondaryIndexes, GlobalSecondaryIndexes}} +} + +func (_this ConsumedCapacity) Is_ConsumedCapacity() bool { + _, ok := _this.Get_().(ConsumedCapacity_ConsumedCapacity) + return ok +} + +func (CompanionStruct_ConsumedCapacity_) Default() ConsumedCapacity { + return Companion_ConsumedCapacity_.Create_ConsumedCapacity_(m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this ConsumedCapacity) Dtor_TableName() m_Wrappers.Option { + return _this.Get_().(ConsumedCapacity_ConsumedCapacity).TableName +} + +func (_this ConsumedCapacity) Dtor_CapacityUnits() m_Wrappers.Option { + return _this.Get_().(ConsumedCapacity_ConsumedCapacity).CapacityUnits +} + +func (_this ConsumedCapacity) Dtor_ReadCapacityUnits() m_Wrappers.Option { + return _this.Get_().(ConsumedCapacity_ConsumedCapacity).ReadCapacityUnits +} + +func (_this ConsumedCapacity) Dtor_WriteCapacityUnits() m_Wrappers.Option { + return _this.Get_().(ConsumedCapacity_ConsumedCapacity).WriteCapacityUnits +} + +func (_this ConsumedCapacity) Dtor_Table() m_Wrappers.Option { + return _this.Get_().(ConsumedCapacity_ConsumedCapacity).Table +} + +func (_this ConsumedCapacity) Dtor_LocalSecondaryIndexes() m_Wrappers.Option { + return _this.Get_().(ConsumedCapacity_ConsumedCapacity).LocalSecondaryIndexes +} + +func (_this ConsumedCapacity) Dtor_GlobalSecondaryIndexes() m_Wrappers.Option { + return _this.Get_().(ConsumedCapacity_ConsumedCapacity).GlobalSecondaryIndexes +} + +func (_this ConsumedCapacity) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case ConsumedCapacity_ConsumedCapacity: + { + return "ComAmazonawsDynamodbTypes.ConsumedCapacity.ConsumedCapacity" + "(" + _dafny.String(data.TableName) + ", " + _dafny.String(data.CapacityUnits) + ", " + _dafny.String(data.ReadCapacityUnits) + ", " + _dafny.String(data.WriteCapacityUnits) + ", " + _dafny.String(data.Table) + ", " + _dafny.String(data.LocalSecondaryIndexes) + ", " + _dafny.String(data.GlobalSecondaryIndexes) + ")" + } + default: + { + return "" + } + } +} + +func (_this ConsumedCapacity) Equals(other ConsumedCapacity) bool { + switch data1 := _this.Get_().(type) { + case ConsumedCapacity_ConsumedCapacity: + { + data2, ok := other.Get_().(ConsumedCapacity_ConsumedCapacity) + return ok && data1.TableName.Equals(data2.TableName) && data1.CapacityUnits.Equals(data2.CapacityUnits) && data1.ReadCapacityUnits.Equals(data2.ReadCapacityUnits) && data1.WriteCapacityUnits.Equals(data2.WriteCapacityUnits) && data1.Table.Equals(data2.Table) && data1.LocalSecondaryIndexes.Equals(data2.LocalSecondaryIndexes) && data1.GlobalSecondaryIndexes.Equals(data2.GlobalSecondaryIndexes) + } + default: + { + return false // unexpected + } + } +} + +func (_this ConsumedCapacity) EqualsGeneric(other interface{}) bool { + typed, ok := other.(ConsumedCapacity) + return ok && _this.Equals(typed) +} + +func Type_ConsumedCapacity_() _dafny.TypeDescriptor { + return type_ConsumedCapacity_{} +} + +type type_ConsumedCapacity_ struct { +} + +func (_this type_ConsumedCapacity_) Default() interface{} { + return Companion_ConsumedCapacity_.Default() +} + +func (_this type_ConsumedCapacity_) String() string { + return "ComAmazonawsDynamodbTypes.ConsumedCapacity" +} +func (_this ConsumedCapacity) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = ConsumedCapacity{} + +// End of datatype ConsumedCapacity + +// Definition of class ConsumedCapacityUnits +type ConsumedCapacityUnits struct { +} + +func New_ConsumedCapacityUnits_() *ConsumedCapacityUnits { + _this := ConsumedCapacityUnits{} + + return &_this +} + +type CompanionStruct_ConsumedCapacityUnits_ struct { +} + +var Companion_ConsumedCapacityUnits_ = CompanionStruct_ConsumedCapacityUnits_{} + +func (*ConsumedCapacityUnits) String() string { + return "ComAmazonawsDynamodbTypes.ConsumedCapacityUnits" +} + +// End of class ConsumedCapacityUnits + +func Type_ConsumedCapacityUnits_() _dafny.TypeDescriptor { + return type_ConsumedCapacityUnits_{} +} + +type type_ConsumedCapacityUnits_ struct { +} + +func (_this type_ConsumedCapacityUnits_) Default() interface{} { + return _dafny.EmptySeq +} + +func (_this type_ConsumedCapacityUnits_) String() string { + return "ComAmazonawsDynamodbTypes.ConsumedCapacityUnits" +} +func (_this *CompanionStruct_ConsumedCapacityUnits_) Is_(__source _dafny.Sequence) bool { + var _14_x _dafny.Sequence = (__source) + _ = _14_x + return Companion_Default___.IsValid__ConsumedCapacityUnits(_14_x) +} + +// Definition of datatype ContinuousBackupsDescription +type ContinuousBackupsDescription struct { + Data_ContinuousBackupsDescription_ +} + +func (_this ContinuousBackupsDescription) Get_() Data_ContinuousBackupsDescription_ { + return _this.Data_ContinuousBackupsDescription_ +} + +type Data_ContinuousBackupsDescription_ interface { + isContinuousBackupsDescription() +} + +type CompanionStruct_ContinuousBackupsDescription_ struct { +} + +var Companion_ContinuousBackupsDescription_ = CompanionStruct_ContinuousBackupsDescription_{} + +type ContinuousBackupsDescription_ContinuousBackupsDescription struct { + ContinuousBackupsStatus ContinuousBackupsStatus + PointInTimeRecoveryDescription m_Wrappers.Option +} + +func (ContinuousBackupsDescription_ContinuousBackupsDescription) isContinuousBackupsDescription() {} + +func (CompanionStruct_ContinuousBackupsDescription_) Create_ContinuousBackupsDescription_(ContinuousBackupsStatus ContinuousBackupsStatus, PointInTimeRecoveryDescription m_Wrappers.Option) ContinuousBackupsDescription { + return ContinuousBackupsDescription{ContinuousBackupsDescription_ContinuousBackupsDescription{ContinuousBackupsStatus, PointInTimeRecoveryDescription}} +} + +func (_this ContinuousBackupsDescription) Is_ContinuousBackupsDescription() bool { + _, ok := _this.Get_().(ContinuousBackupsDescription_ContinuousBackupsDescription) + return ok +} + +func (CompanionStruct_ContinuousBackupsDescription_) Default() ContinuousBackupsDescription { + return Companion_ContinuousBackupsDescription_.Create_ContinuousBackupsDescription_(Companion_ContinuousBackupsStatus_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this ContinuousBackupsDescription) Dtor_ContinuousBackupsStatus() ContinuousBackupsStatus { + return _this.Get_().(ContinuousBackupsDescription_ContinuousBackupsDescription).ContinuousBackupsStatus +} + +func (_this ContinuousBackupsDescription) Dtor_PointInTimeRecoveryDescription() m_Wrappers.Option { + return _this.Get_().(ContinuousBackupsDescription_ContinuousBackupsDescription).PointInTimeRecoveryDescription +} + +func (_this ContinuousBackupsDescription) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case ContinuousBackupsDescription_ContinuousBackupsDescription: + { + return "ComAmazonawsDynamodbTypes.ContinuousBackupsDescription.ContinuousBackupsDescription" + "(" + _dafny.String(data.ContinuousBackupsStatus) + ", " + _dafny.String(data.PointInTimeRecoveryDescription) + ")" + } + default: + { + return "" + } + } +} + +func (_this ContinuousBackupsDescription) Equals(other ContinuousBackupsDescription) bool { + switch data1 := _this.Get_().(type) { + case ContinuousBackupsDescription_ContinuousBackupsDescription: + { + data2, ok := other.Get_().(ContinuousBackupsDescription_ContinuousBackupsDescription) + return ok && data1.ContinuousBackupsStatus.Equals(data2.ContinuousBackupsStatus) && data1.PointInTimeRecoveryDescription.Equals(data2.PointInTimeRecoveryDescription) + } + default: + { + return false // unexpected + } + } +} + +func (_this ContinuousBackupsDescription) EqualsGeneric(other interface{}) bool { + typed, ok := other.(ContinuousBackupsDescription) + return ok && _this.Equals(typed) +} + +func Type_ContinuousBackupsDescription_() _dafny.TypeDescriptor { + return type_ContinuousBackupsDescription_{} +} + +type type_ContinuousBackupsDescription_ struct { +} + +func (_this type_ContinuousBackupsDescription_) Default() interface{} { + return Companion_ContinuousBackupsDescription_.Default() +} + +func (_this type_ContinuousBackupsDescription_) String() string { + return "ComAmazonawsDynamodbTypes.ContinuousBackupsDescription" +} +func (_this ContinuousBackupsDescription) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = ContinuousBackupsDescription{} + +// End of datatype ContinuousBackupsDescription + +// Definition of datatype ContinuousBackupsStatus +type ContinuousBackupsStatus struct { + Data_ContinuousBackupsStatus_ +} + +func (_this ContinuousBackupsStatus) Get_() Data_ContinuousBackupsStatus_ { + return _this.Data_ContinuousBackupsStatus_ +} + +type Data_ContinuousBackupsStatus_ interface { + isContinuousBackupsStatus() +} + +type CompanionStruct_ContinuousBackupsStatus_ struct { +} + +var Companion_ContinuousBackupsStatus_ = CompanionStruct_ContinuousBackupsStatus_{} + +type ContinuousBackupsStatus_ENABLED struct { +} + +func (ContinuousBackupsStatus_ENABLED) isContinuousBackupsStatus() {} + +func (CompanionStruct_ContinuousBackupsStatus_) Create_ENABLED_() ContinuousBackupsStatus { + return ContinuousBackupsStatus{ContinuousBackupsStatus_ENABLED{}} +} + +func (_this ContinuousBackupsStatus) Is_ENABLED() bool { + _, ok := _this.Get_().(ContinuousBackupsStatus_ENABLED) + return ok +} + +type ContinuousBackupsStatus_DISABLED struct { +} + +func (ContinuousBackupsStatus_DISABLED) isContinuousBackupsStatus() {} + +func (CompanionStruct_ContinuousBackupsStatus_) Create_DISABLED_() ContinuousBackupsStatus { + return ContinuousBackupsStatus{ContinuousBackupsStatus_DISABLED{}} +} + +func (_this ContinuousBackupsStatus) Is_DISABLED() bool { + _, ok := _this.Get_().(ContinuousBackupsStatus_DISABLED) + return ok +} + +func (CompanionStruct_ContinuousBackupsStatus_) Default() ContinuousBackupsStatus { + return Companion_ContinuousBackupsStatus_.Create_ENABLED_() +} + +func (_ CompanionStruct_ContinuousBackupsStatus_) AllSingletonConstructors() _dafny.Iterator { + i := -1 + return func() (interface{}, bool) { + i++ + switch i { + case 0: + return Companion_ContinuousBackupsStatus_.Create_ENABLED_(), true + case 1: + return Companion_ContinuousBackupsStatus_.Create_DISABLED_(), true + default: + return ContinuousBackupsStatus{}, false + } + } +} + +func (_this ContinuousBackupsStatus) String() string { + switch _this.Get_().(type) { + case nil: + return "null" + case ContinuousBackupsStatus_ENABLED: + { + return "ComAmazonawsDynamodbTypes.ContinuousBackupsStatus.ENABLED" + } + case ContinuousBackupsStatus_DISABLED: + { + return "ComAmazonawsDynamodbTypes.ContinuousBackupsStatus.DISABLED" + } + default: + { + return "" + } + } +} + +func (_this ContinuousBackupsStatus) Equals(other ContinuousBackupsStatus) bool { + switch _this.Get_().(type) { + case ContinuousBackupsStatus_ENABLED: + { + _, ok := other.Get_().(ContinuousBackupsStatus_ENABLED) + return ok + } + case ContinuousBackupsStatus_DISABLED: + { + _, ok := other.Get_().(ContinuousBackupsStatus_DISABLED) + return ok + } + default: + { + return false // unexpected + } + } +} + +func (_this ContinuousBackupsStatus) EqualsGeneric(other interface{}) bool { + typed, ok := other.(ContinuousBackupsStatus) + return ok && _this.Equals(typed) +} + +func Type_ContinuousBackupsStatus_() _dafny.TypeDescriptor { + return type_ContinuousBackupsStatus_{} +} + +type type_ContinuousBackupsStatus_ struct { +} + +func (_this type_ContinuousBackupsStatus_) Default() interface{} { + return Companion_ContinuousBackupsStatus_.Default() +} + +func (_this type_ContinuousBackupsStatus_) String() string { + return "ComAmazonawsDynamodbTypes.ContinuousBackupsStatus" +} +func (_this ContinuousBackupsStatus) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = ContinuousBackupsStatus{} + +// End of datatype ContinuousBackupsStatus + +// Definition of datatype ContributorInsightsAction +type ContributorInsightsAction struct { + Data_ContributorInsightsAction_ +} + +func (_this ContributorInsightsAction) Get_() Data_ContributorInsightsAction_ { + return _this.Data_ContributorInsightsAction_ +} + +type Data_ContributorInsightsAction_ interface { + isContributorInsightsAction() +} + +type CompanionStruct_ContributorInsightsAction_ struct { +} + +var Companion_ContributorInsightsAction_ = CompanionStruct_ContributorInsightsAction_{} + +type ContributorInsightsAction_ENABLE struct { +} + +func (ContributorInsightsAction_ENABLE) isContributorInsightsAction() {} + +func (CompanionStruct_ContributorInsightsAction_) Create_ENABLE_() ContributorInsightsAction { + return ContributorInsightsAction{ContributorInsightsAction_ENABLE{}} +} + +func (_this ContributorInsightsAction) Is_ENABLE() bool { + _, ok := _this.Get_().(ContributorInsightsAction_ENABLE) + return ok +} + +type ContributorInsightsAction_DISABLE struct { +} + +func (ContributorInsightsAction_DISABLE) isContributorInsightsAction() {} + +func (CompanionStruct_ContributorInsightsAction_) Create_DISABLE_() ContributorInsightsAction { + return ContributorInsightsAction{ContributorInsightsAction_DISABLE{}} +} + +func (_this ContributorInsightsAction) Is_DISABLE() bool { + _, ok := _this.Get_().(ContributorInsightsAction_DISABLE) + return ok +} + +func (CompanionStruct_ContributorInsightsAction_) Default() ContributorInsightsAction { + return Companion_ContributorInsightsAction_.Create_ENABLE_() +} + +func (_ CompanionStruct_ContributorInsightsAction_) AllSingletonConstructors() _dafny.Iterator { + i := -1 + return func() (interface{}, bool) { + i++ + switch i { + case 0: + return Companion_ContributorInsightsAction_.Create_ENABLE_(), true + case 1: + return Companion_ContributorInsightsAction_.Create_DISABLE_(), true + default: + return ContributorInsightsAction{}, false + } + } +} + +func (_this ContributorInsightsAction) String() string { + switch _this.Get_().(type) { + case nil: + return "null" + case ContributorInsightsAction_ENABLE: + { + return "ComAmazonawsDynamodbTypes.ContributorInsightsAction.ENABLE" + } + case ContributorInsightsAction_DISABLE: + { + return "ComAmazonawsDynamodbTypes.ContributorInsightsAction.DISABLE" + } + default: + { + return "" + } + } +} + +func (_this ContributorInsightsAction) Equals(other ContributorInsightsAction) bool { + switch _this.Get_().(type) { + case ContributorInsightsAction_ENABLE: + { + _, ok := other.Get_().(ContributorInsightsAction_ENABLE) + return ok + } + case ContributorInsightsAction_DISABLE: + { + _, ok := other.Get_().(ContributorInsightsAction_DISABLE) + return ok + } + default: + { + return false // unexpected + } + } +} + +func (_this ContributorInsightsAction) EqualsGeneric(other interface{}) bool { + typed, ok := other.(ContributorInsightsAction) + return ok && _this.Equals(typed) +} + +func Type_ContributorInsightsAction_() _dafny.TypeDescriptor { + return type_ContributorInsightsAction_{} +} + +type type_ContributorInsightsAction_ struct { +} + +func (_this type_ContributorInsightsAction_) Default() interface{} { + return Companion_ContributorInsightsAction_.Default() +} + +func (_this type_ContributorInsightsAction_) String() string { + return "ComAmazonawsDynamodbTypes.ContributorInsightsAction" +} +func (_this ContributorInsightsAction) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = ContributorInsightsAction{} + +// End of datatype ContributorInsightsAction + +// Definition of datatype ContributorInsightsStatus +type ContributorInsightsStatus struct { + Data_ContributorInsightsStatus_ +} + +func (_this ContributorInsightsStatus) Get_() Data_ContributorInsightsStatus_ { + return _this.Data_ContributorInsightsStatus_ +} + +type Data_ContributorInsightsStatus_ interface { + isContributorInsightsStatus() +} + +type CompanionStruct_ContributorInsightsStatus_ struct { +} + +var Companion_ContributorInsightsStatus_ = CompanionStruct_ContributorInsightsStatus_{} + +type ContributorInsightsStatus_ENABLING struct { +} + +func (ContributorInsightsStatus_ENABLING) isContributorInsightsStatus() {} + +func (CompanionStruct_ContributorInsightsStatus_) Create_ENABLING_() ContributorInsightsStatus { + return ContributorInsightsStatus{ContributorInsightsStatus_ENABLING{}} +} + +func (_this ContributorInsightsStatus) Is_ENABLING() bool { + _, ok := _this.Get_().(ContributorInsightsStatus_ENABLING) + return ok +} + +type ContributorInsightsStatus_ENABLED struct { +} + +func (ContributorInsightsStatus_ENABLED) isContributorInsightsStatus() {} + +func (CompanionStruct_ContributorInsightsStatus_) Create_ENABLED_() ContributorInsightsStatus { + return ContributorInsightsStatus{ContributorInsightsStatus_ENABLED{}} +} + +func (_this ContributorInsightsStatus) Is_ENABLED() bool { + _, ok := _this.Get_().(ContributorInsightsStatus_ENABLED) + return ok +} + +type ContributorInsightsStatus_DISABLING struct { +} + +func (ContributorInsightsStatus_DISABLING) isContributorInsightsStatus() {} + +func (CompanionStruct_ContributorInsightsStatus_) Create_DISABLING_() ContributorInsightsStatus { + return ContributorInsightsStatus{ContributorInsightsStatus_DISABLING{}} +} + +func (_this ContributorInsightsStatus) Is_DISABLING() bool { + _, ok := _this.Get_().(ContributorInsightsStatus_DISABLING) + return ok +} + +type ContributorInsightsStatus_DISABLED struct { +} + +func (ContributorInsightsStatus_DISABLED) isContributorInsightsStatus() {} + +func (CompanionStruct_ContributorInsightsStatus_) Create_DISABLED_() ContributorInsightsStatus { + return ContributorInsightsStatus{ContributorInsightsStatus_DISABLED{}} +} + +func (_this ContributorInsightsStatus) Is_DISABLED() bool { + _, ok := _this.Get_().(ContributorInsightsStatus_DISABLED) + return ok +} + +type ContributorInsightsStatus_FAILED struct { +} + +func (ContributorInsightsStatus_FAILED) isContributorInsightsStatus() {} + +func (CompanionStruct_ContributorInsightsStatus_) Create_FAILED_() ContributorInsightsStatus { + return ContributorInsightsStatus{ContributorInsightsStatus_FAILED{}} +} + +func (_this ContributorInsightsStatus) Is_FAILED() bool { + _, ok := _this.Get_().(ContributorInsightsStatus_FAILED) + return ok +} + +func (CompanionStruct_ContributorInsightsStatus_) Default() ContributorInsightsStatus { + return Companion_ContributorInsightsStatus_.Create_ENABLING_() +} + +func (_ CompanionStruct_ContributorInsightsStatus_) AllSingletonConstructors() _dafny.Iterator { + i := -1 + return func() (interface{}, bool) { + i++ + switch i { + case 0: + return Companion_ContributorInsightsStatus_.Create_ENABLING_(), true + case 1: + return Companion_ContributorInsightsStatus_.Create_ENABLED_(), true + case 2: + return Companion_ContributorInsightsStatus_.Create_DISABLING_(), true + case 3: + return Companion_ContributorInsightsStatus_.Create_DISABLED_(), true + case 4: + return Companion_ContributorInsightsStatus_.Create_FAILED_(), true + default: + return ContributorInsightsStatus{}, false + } + } +} + +func (_this ContributorInsightsStatus) String() string { + switch _this.Get_().(type) { + case nil: + return "null" + case ContributorInsightsStatus_ENABLING: + { + return "ComAmazonawsDynamodbTypes.ContributorInsightsStatus.ENABLING" + } + case ContributorInsightsStatus_ENABLED: + { + return "ComAmazonawsDynamodbTypes.ContributorInsightsStatus.ENABLED" + } + case ContributorInsightsStatus_DISABLING: + { + return "ComAmazonawsDynamodbTypes.ContributorInsightsStatus.DISABLING" + } + case ContributorInsightsStatus_DISABLED: + { + return "ComAmazonawsDynamodbTypes.ContributorInsightsStatus.DISABLED" + } + case ContributorInsightsStatus_FAILED: + { + return "ComAmazonawsDynamodbTypes.ContributorInsightsStatus.FAILED" + } + default: + { + return "" + } + } +} + +func (_this ContributorInsightsStatus) Equals(other ContributorInsightsStatus) bool { + switch _this.Get_().(type) { + case ContributorInsightsStatus_ENABLING: + { + _, ok := other.Get_().(ContributorInsightsStatus_ENABLING) + return ok + } + case ContributorInsightsStatus_ENABLED: + { + _, ok := other.Get_().(ContributorInsightsStatus_ENABLED) + return ok + } + case ContributorInsightsStatus_DISABLING: + { + _, ok := other.Get_().(ContributorInsightsStatus_DISABLING) + return ok + } + case ContributorInsightsStatus_DISABLED: + { + _, ok := other.Get_().(ContributorInsightsStatus_DISABLED) + return ok + } + case ContributorInsightsStatus_FAILED: + { + _, ok := other.Get_().(ContributorInsightsStatus_FAILED) + return ok + } + default: + { + return false // unexpected + } + } +} + +func (_this ContributorInsightsStatus) EqualsGeneric(other interface{}) bool { + typed, ok := other.(ContributorInsightsStatus) + return ok && _this.Equals(typed) +} + +func Type_ContributorInsightsStatus_() _dafny.TypeDescriptor { + return type_ContributorInsightsStatus_{} +} + +type type_ContributorInsightsStatus_ struct { +} + +func (_this type_ContributorInsightsStatus_) Default() interface{} { + return Companion_ContributorInsightsStatus_.Default() +} + +func (_this type_ContributorInsightsStatus_) String() string { + return "ComAmazonawsDynamodbTypes.ContributorInsightsStatus" +} +func (_this ContributorInsightsStatus) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = ContributorInsightsStatus{} + +// End of datatype ContributorInsightsStatus + +// Definition of datatype ContributorInsightsSummary +type ContributorInsightsSummary struct { + Data_ContributorInsightsSummary_ +} + +func (_this ContributorInsightsSummary) Get_() Data_ContributorInsightsSummary_ { + return _this.Data_ContributorInsightsSummary_ +} + +type Data_ContributorInsightsSummary_ interface { + isContributorInsightsSummary() +} + +type CompanionStruct_ContributorInsightsSummary_ struct { +} + +var Companion_ContributorInsightsSummary_ = CompanionStruct_ContributorInsightsSummary_{} + +type ContributorInsightsSummary_ContributorInsightsSummary struct { + TableName m_Wrappers.Option + IndexName m_Wrappers.Option + ContributorInsightsStatus m_Wrappers.Option +} + +func (ContributorInsightsSummary_ContributorInsightsSummary) isContributorInsightsSummary() {} + +func (CompanionStruct_ContributorInsightsSummary_) Create_ContributorInsightsSummary_(TableName m_Wrappers.Option, IndexName m_Wrappers.Option, ContributorInsightsStatus m_Wrappers.Option) ContributorInsightsSummary { + return ContributorInsightsSummary{ContributorInsightsSummary_ContributorInsightsSummary{TableName, IndexName, ContributorInsightsStatus}} +} + +func (_this ContributorInsightsSummary) Is_ContributorInsightsSummary() bool { + _, ok := _this.Get_().(ContributorInsightsSummary_ContributorInsightsSummary) + return ok +} + +func (CompanionStruct_ContributorInsightsSummary_) Default() ContributorInsightsSummary { + return Companion_ContributorInsightsSummary_.Create_ContributorInsightsSummary_(m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this ContributorInsightsSummary) Dtor_TableName() m_Wrappers.Option { + return _this.Get_().(ContributorInsightsSummary_ContributorInsightsSummary).TableName +} + +func (_this ContributorInsightsSummary) Dtor_IndexName() m_Wrappers.Option { + return _this.Get_().(ContributorInsightsSummary_ContributorInsightsSummary).IndexName +} + +func (_this ContributorInsightsSummary) Dtor_ContributorInsightsStatus() m_Wrappers.Option { + return _this.Get_().(ContributorInsightsSummary_ContributorInsightsSummary).ContributorInsightsStatus +} + +func (_this ContributorInsightsSummary) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case ContributorInsightsSummary_ContributorInsightsSummary: + { + return "ComAmazonawsDynamodbTypes.ContributorInsightsSummary.ContributorInsightsSummary" + "(" + _dafny.String(data.TableName) + ", " + _dafny.String(data.IndexName) + ", " + _dafny.String(data.ContributorInsightsStatus) + ")" + } + default: + { + return "" + } + } +} + +func (_this ContributorInsightsSummary) Equals(other ContributorInsightsSummary) bool { + switch data1 := _this.Get_().(type) { + case ContributorInsightsSummary_ContributorInsightsSummary: + { + data2, ok := other.Get_().(ContributorInsightsSummary_ContributorInsightsSummary) + return ok && data1.TableName.Equals(data2.TableName) && data1.IndexName.Equals(data2.IndexName) && data1.ContributorInsightsStatus.Equals(data2.ContributorInsightsStatus) + } + default: + { + return false // unexpected + } + } +} + +func (_this ContributorInsightsSummary) EqualsGeneric(other interface{}) bool { + typed, ok := other.(ContributorInsightsSummary) + return ok && _this.Equals(typed) +} + +func Type_ContributorInsightsSummary_() _dafny.TypeDescriptor { + return type_ContributorInsightsSummary_{} +} + +type type_ContributorInsightsSummary_ struct { +} + +func (_this type_ContributorInsightsSummary_) Default() interface{} { + return Companion_ContributorInsightsSummary_.Default() +} + +func (_this type_ContributorInsightsSummary_) String() string { + return "ComAmazonawsDynamodbTypes.ContributorInsightsSummary" +} +func (_this ContributorInsightsSummary) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = ContributorInsightsSummary{} + +// End of datatype ContributorInsightsSummary + +// Definition of datatype CreateBackupInput +type CreateBackupInput struct { + Data_CreateBackupInput_ +} + +func (_this CreateBackupInput) Get_() Data_CreateBackupInput_ { + return _this.Data_CreateBackupInput_ +} + +type Data_CreateBackupInput_ interface { + isCreateBackupInput() +} + +type CompanionStruct_CreateBackupInput_ struct { +} + +var Companion_CreateBackupInput_ = CompanionStruct_CreateBackupInput_{} + +type CreateBackupInput_CreateBackupInput struct { + TableName _dafny.Sequence + BackupName _dafny.Sequence +} + +func (CreateBackupInput_CreateBackupInput) isCreateBackupInput() {} + +func (CompanionStruct_CreateBackupInput_) Create_CreateBackupInput_(TableName _dafny.Sequence, BackupName _dafny.Sequence) CreateBackupInput { + return CreateBackupInput{CreateBackupInput_CreateBackupInput{TableName, BackupName}} +} + +func (_this CreateBackupInput) Is_CreateBackupInput() bool { + _, ok := _this.Get_().(CreateBackupInput_CreateBackupInput) + return ok +} + +func (CompanionStruct_CreateBackupInput_) Default() CreateBackupInput { + return Companion_CreateBackupInput_.Create_CreateBackupInput_(_dafny.EmptySeq.SetString(), _dafny.EmptySeq.SetString()) +} + +func (_this CreateBackupInput) Dtor_TableName() _dafny.Sequence { + return _this.Get_().(CreateBackupInput_CreateBackupInput).TableName +} + +func (_this CreateBackupInput) Dtor_BackupName() _dafny.Sequence { + return _this.Get_().(CreateBackupInput_CreateBackupInput).BackupName +} + +func (_this CreateBackupInput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case CreateBackupInput_CreateBackupInput: + { + return "ComAmazonawsDynamodbTypes.CreateBackupInput.CreateBackupInput" + "(" + _dafny.String(data.TableName) + ", " + _dafny.String(data.BackupName) + ")" + } + default: + { + return "" + } + } +} + +func (_this CreateBackupInput) Equals(other CreateBackupInput) bool { + switch data1 := _this.Get_().(type) { + case CreateBackupInput_CreateBackupInput: + { + data2, ok := other.Get_().(CreateBackupInput_CreateBackupInput) + return ok && data1.TableName.Equals(data2.TableName) && data1.BackupName.Equals(data2.BackupName) + } + default: + { + return false // unexpected + } + } +} + +func (_this CreateBackupInput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(CreateBackupInput) + return ok && _this.Equals(typed) +} + +func Type_CreateBackupInput_() _dafny.TypeDescriptor { + return type_CreateBackupInput_{} +} + +type type_CreateBackupInput_ struct { +} + +func (_this type_CreateBackupInput_) Default() interface{} { + return Companion_CreateBackupInput_.Default() +} + +func (_this type_CreateBackupInput_) String() string { + return "ComAmazonawsDynamodbTypes.CreateBackupInput" +} +func (_this CreateBackupInput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = CreateBackupInput{} + +// End of datatype CreateBackupInput + +// Definition of datatype CreateBackupOutput +type CreateBackupOutput struct { + Data_CreateBackupOutput_ +} + +func (_this CreateBackupOutput) Get_() Data_CreateBackupOutput_ { + return _this.Data_CreateBackupOutput_ +} + +type Data_CreateBackupOutput_ interface { + isCreateBackupOutput() +} + +type CompanionStruct_CreateBackupOutput_ struct { +} + +var Companion_CreateBackupOutput_ = CompanionStruct_CreateBackupOutput_{} + +type CreateBackupOutput_CreateBackupOutput struct { + BackupDetails m_Wrappers.Option +} + +func (CreateBackupOutput_CreateBackupOutput) isCreateBackupOutput() {} + +func (CompanionStruct_CreateBackupOutput_) Create_CreateBackupOutput_(BackupDetails m_Wrappers.Option) CreateBackupOutput { + return CreateBackupOutput{CreateBackupOutput_CreateBackupOutput{BackupDetails}} +} + +func (_this CreateBackupOutput) Is_CreateBackupOutput() bool { + _, ok := _this.Get_().(CreateBackupOutput_CreateBackupOutput) + return ok +} + +func (CompanionStruct_CreateBackupOutput_) Default() CreateBackupOutput { + return Companion_CreateBackupOutput_.Create_CreateBackupOutput_(m_Wrappers.Companion_Option_.Default()) +} + +func (_this CreateBackupOutput) Dtor_BackupDetails() m_Wrappers.Option { + return _this.Get_().(CreateBackupOutput_CreateBackupOutput).BackupDetails +} + +func (_this CreateBackupOutput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case CreateBackupOutput_CreateBackupOutput: + { + return "ComAmazonawsDynamodbTypes.CreateBackupOutput.CreateBackupOutput" + "(" + _dafny.String(data.BackupDetails) + ")" + } + default: + { + return "" + } + } +} + +func (_this CreateBackupOutput) Equals(other CreateBackupOutput) bool { + switch data1 := _this.Get_().(type) { + case CreateBackupOutput_CreateBackupOutput: + { + data2, ok := other.Get_().(CreateBackupOutput_CreateBackupOutput) + return ok && data1.BackupDetails.Equals(data2.BackupDetails) + } + default: + { + return false // unexpected + } + } +} + +func (_this CreateBackupOutput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(CreateBackupOutput) + return ok && _this.Equals(typed) +} + +func Type_CreateBackupOutput_() _dafny.TypeDescriptor { + return type_CreateBackupOutput_{} +} + +type type_CreateBackupOutput_ struct { +} + +func (_this type_CreateBackupOutput_) Default() interface{} { + return Companion_CreateBackupOutput_.Default() +} + +func (_this type_CreateBackupOutput_) String() string { + return "ComAmazonawsDynamodbTypes.CreateBackupOutput" +} +func (_this CreateBackupOutput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = CreateBackupOutput{} + +// End of datatype CreateBackupOutput + +// Definition of datatype CreateGlobalSecondaryIndexAction +type CreateGlobalSecondaryIndexAction struct { + Data_CreateGlobalSecondaryIndexAction_ +} + +func (_this CreateGlobalSecondaryIndexAction) Get_() Data_CreateGlobalSecondaryIndexAction_ { + return _this.Data_CreateGlobalSecondaryIndexAction_ +} + +type Data_CreateGlobalSecondaryIndexAction_ interface { + isCreateGlobalSecondaryIndexAction() +} + +type CompanionStruct_CreateGlobalSecondaryIndexAction_ struct { +} + +var Companion_CreateGlobalSecondaryIndexAction_ = CompanionStruct_CreateGlobalSecondaryIndexAction_{} + +type CreateGlobalSecondaryIndexAction_CreateGlobalSecondaryIndexAction struct { + IndexName _dafny.Sequence + KeySchema _dafny.Sequence + Projection Projection + ProvisionedThroughput m_Wrappers.Option + OnDemandThroughput m_Wrappers.Option +} + +func (CreateGlobalSecondaryIndexAction_CreateGlobalSecondaryIndexAction) isCreateGlobalSecondaryIndexAction() { +} + +func (CompanionStruct_CreateGlobalSecondaryIndexAction_) Create_CreateGlobalSecondaryIndexAction_(IndexName _dafny.Sequence, KeySchema _dafny.Sequence, Projection Projection, ProvisionedThroughput m_Wrappers.Option, OnDemandThroughput m_Wrappers.Option) CreateGlobalSecondaryIndexAction { + return CreateGlobalSecondaryIndexAction{CreateGlobalSecondaryIndexAction_CreateGlobalSecondaryIndexAction{IndexName, KeySchema, Projection, ProvisionedThroughput, OnDemandThroughput}} +} + +func (_this CreateGlobalSecondaryIndexAction) Is_CreateGlobalSecondaryIndexAction() bool { + _, ok := _this.Get_().(CreateGlobalSecondaryIndexAction_CreateGlobalSecondaryIndexAction) + return ok +} + +func (CompanionStruct_CreateGlobalSecondaryIndexAction_) Default() CreateGlobalSecondaryIndexAction { + return Companion_CreateGlobalSecondaryIndexAction_.Create_CreateGlobalSecondaryIndexAction_(_dafny.EmptySeq.SetString(), _dafny.EmptySeq, Companion_Projection_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this CreateGlobalSecondaryIndexAction) Dtor_IndexName() _dafny.Sequence { + return _this.Get_().(CreateGlobalSecondaryIndexAction_CreateGlobalSecondaryIndexAction).IndexName +} + +func (_this CreateGlobalSecondaryIndexAction) Dtor_KeySchema() _dafny.Sequence { + return _this.Get_().(CreateGlobalSecondaryIndexAction_CreateGlobalSecondaryIndexAction).KeySchema +} + +func (_this CreateGlobalSecondaryIndexAction) Dtor_Projection() Projection { + return _this.Get_().(CreateGlobalSecondaryIndexAction_CreateGlobalSecondaryIndexAction).Projection +} + +func (_this CreateGlobalSecondaryIndexAction) Dtor_ProvisionedThroughput() m_Wrappers.Option { + return _this.Get_().(CreateGlobalSecondaryIndexAction_CreateGlobalSecondaryIndexAction).ProvisionedThroughput +} + +func (_this CreateGlobalSecondaryIndexAction) Dtor_OnDemandThroughput() m_Wrappers.Option { + return _this.Get_().(CreateGlobalSecondaryIndexAction_CreateGlobalSecondaryIndexAction).OnDemandThroughput +} + +func (_this CreateGlobalSecondaryIndexAction) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case CreateGlobalSecondaryIndexAction_CreateGlobalSecondaryIndexAction: + { + return "ComAmazonawsDynamodbTypes.CreateGlobalSecondaryIndexAction.CreateGlobalSecondaryIndexAction" + "(" + _dafny.String(data.IndexName) + ", " + _dafny.String(data.KeySchema) + ", " + _dafny.String(data.Projection) + ", " + _dafny.String(data.ProvisionedThroughput) + ", " + _dafny.String(data.OnDemandThroughput) + ")" + } + default: + { + return "" + } + } +} + +func (_this CreateGlobalSecondaryIndexAction) Equals(other CreateGlobalSecondaryIndexAction) bool { + switch data1 := _this.Get_().(type) { + case CreateGlobalSecondaryIndexAction_CreateGlobalSecondaryIndexAction: + { + data2, ok := other.Get_().(CreateGlobalSecondaryIndexAction_CreateGlobalSecondaryIndexAction) + return ok && data1.IndexName.Equals(data2.IndexName) && data1.KeySchema.Equals(data2.KeySchema) && data1.Projection.Equals(data2.Projection) && data1.ProvisionedThroughput.Equals(data2.ProvisionedThroughput) && data1.OnDemandThroughput.Equals(data2.OnDemandThroughput) + } + default: + { + return false // unexpected + } + } +} + +func (_this CreateGlobalSecondaryIndexAction) EqualsGeneric(other interface{}) bool { + typed, ok := other.(CreateGlobalSecondaryIndexAction) + return ok && _this.Equals(typed) +} + +func Type_CreateGlobalSecondaryIndexAction_() _dafny.TypeDescriptor { + return type_CreateGlobalSecondaryIndexAction_{} +} + +type type_CreateGlobalSecondaryIndexAction_ struct { +} + +func (_this type_CreateGlobalSecondaryIndexAction_) Default() interface{} { + return Companion_CreateGlobalSecondaryIndexAction_.Default() +} + +func (_this type_CreateGlobalSecondaryIndexAction_) String() string { + return "ComAmazonawsDynamodbTypes.CreateGlobalSecondaryIndexAction" +} +func (_this CreateGlobalSecondaryIndexAction) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = CreateGlobalSecondaryIndexAction{} + +// End of datatype CreateGlobalSecondaryIndexAction + +// Definition of datatype CreateGlobalTableInput +type CreateGlobalTableInput struct { + Data_CreateGlobalTableInput_ +} + +func (_this CreateGlobalTableInput) Get_() Data_CreateGlobalTableInput_ { + return _this.Data_CreateGlobalTableInput_ +} + +type Data_CreateGlobalTableInput_ interface { + isCreateGlobalTableInput() +} + +type CompanionStruct_CreateGlobalTableInput_ struct { +} + +var Companion_CreateGlobalTableInput_ = CompanionStruct_CreateGlobalTableInput_{} + +type CreateGlobalTableInput_CreateGlobalTableInput struct { + GlobalTableName _dafny.Sequence + ReplicationGroup _dafny.Sequence +} + +func (CreateGlobalTableInput_CreateGlobalTableInput) isCreateGlobalTableInput() {} + +func (CompanionStruct_CreateGlobalTableInput_) Create_CreateGlobalTableInput_(GlobalTableName _dafny.Sequence, ReplicationGroup _dafny.Sequence) CreateGlobalTableInput { + return CreateGlobalTableInput{CreateGlobalTableInput_CreateGlobalTableInput{GlobalTableName, ReplicationGroup}} +} + +func (_this CreateGlobalTableInput) Is_CreateGlobalTableInput() bool { + _, ok := _this.Get_().(CreateGlobalTableInput_CreateGlobalTableInput) + return ok +} + +func (CompanionStruct_CreateGlobalTableInput_) Default() CreateGlobalTableInput { + return Companion_CreateGlobalTableInput_.Create_CreateGlobalTableInput_(_dafny.EmptySeq.SetString(), _dafny.EmptySeq) +} + +func (_this CreateGlobalTableInput) Dtor_GlobalTableName() _dafny.Sequence { + return _this.Get_().(CreateGlobalTableInput_CreateGlobalTableInput).GlobalTableName +} + +func (_this CreateGlobalTableInput) Dtor_ReplicationGroup() _dafny.Sequence { + return _this.Get_().(CreateGlobalTableInput_CreateGlobalTableInput).ReplicationGroup +} + +func (_this CreateGlobalTableInput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case CreateGlobalTableInput_CreateGlobalTableInput: + { + return "ComAmazonawsDynamodbTypes.CreateGlobalTableInput.CreateGlobalTableInput" + "(" + _dafny.String(data.GlobalTableName) + ", " + _dafny.String(data.ReplicationGroup) + ")" + } + default: + { + return "" + } + } +} + +func (_this CreateGlobalTableInput) Equals(other CreateGlobalTableInput) bool { + switch data1 := _this.Get_().(type) { + case CreateGlobalTableInput_CreateGlobalTableInput: + { + data2, ok := other.Get_().(CreateGlobalTableInput_CreateGlobalTableInput) + return ok && data1.GlobalTableName.Equals(data2.GlobalTableName) && data1.ReplicationGroup.Equals(data2.ReplicationGroup) + } + default: + { + return false // unexpected + } + } +} + +func (_this CreateGlobalTableInput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(CreateGlobalTableInput) + return ok && _this.Equals(typed) +} + +func Type_CreateGlobalTableInput_() _dafny.TypeDescriptor { + return type_CreateGlobalTableInput_{} +} + +type type_CreateGlobalTableInput_ struct { +} + +func (_this type_CreateGlobalTableInput_) Default() interface{} { + return Companion_CreateGlobalTableInput_.Default() +} + +func (_this type_CreateGlobalTableInput_) String() string { + return "ComAmazonawsDynamodbTypes.CreateGlobalTableInput" +} +func (_this CreateGlobalTableInput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = CreateGlobalTableInput{} + +// End of datatype CreateGlobalTableInput + +// Definition of datatype CreateGlobalTableOutput +type CreateGlobalTableOutput struct { + Data_CreateGlobalTableOutput_ +} + +func (_this CreateGlobalTableOutput) Get_() Data_CreateGlobalTableOutput_ { + return _this.Data_CreateGlobalTableOutput_ +} + +type Data_CreateGlobalTableOutput_ interface { + isCreateGlobalTableOutput() +} + +type CompanionStruct_CreateGlobalTableOutput_ struct { +} + +var Companion_CreateGlobalTableOutput_ = CompanionStruct_CreateGlobalTableOutput_{} + +type CreateGlobalTableOutput_CreateGlobalTableOutput struct { + GlobalTableDescription m_Wrappers.Option +} + +func (CreateGlobalTableOutput_CreateGlobalTableOutput) isCreateGlobalTableOutput() {} + +func (CompanionStruct_CreateGlobalTableOutput_) Create_CreateGlobalTableOutput_(GlobalTableDescription m_Wrappers.Option) CreateGlobalTableOutput { + return CreateGlobalTableOutput{CreateGlobalTableOutput_CreateGlobalTableOutput{GlobalTableDescription}} +} + +func (_this CreateGlobalTableOutput) Is_CreateGlobalTableOutput() bool { + _, ok := _this.Get_().(CreateGlobalTableOutput_CreateGlobalTableOutput) + return ok +} + +func (CompanionStruct_CreateGlobalTableOutput_) Default() CreateGlobalTableOutput { + return Companion_CreateGlobalTableOutput_.Create_CreateGlobalTableOutput_(m_Wrappers.Companion_Option_.Default()) +} + +func (_this CreateGlobalTableOutput) Dtor_GlobalTableDescription() m_Wrappers.Option { + return _this.Get_().(CreateGlobalTableOutput_CreateGlobalTableOutput).GlobalTableDescription +} + +func (_this CreateGlobalTableOutput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case CreateGlobalTableOutput_CreateGlobalTableOutput: + { + return "ComAmazonawsDynamodbTypes.CreateGlobalTableOutput.CreateGlobalTableOutput" + "(" + _dafny.String(data.GlobalTableDescription) + ")" + } + default: + { + return "" + } + } +} + +func (_this CreateGlobalTableOutput) Equals(other CreateGlobalTableOutput) bool { + switch data1 := _this.Get_().(type) { + case CreateGlobalTableOutput_CreateGlobalTableOutput: + { + data2, ok := other.Get_().(CreateGlobalTableOutput_CreateGlobalTableOutput) + return ok && data1.GlobalTableDescription.Equals(data2.GlobalTableDescription) + } + default: + { + return false // unexpected + } + } +} + +func (_this CreateGlobalTableOutput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(CreateGlobalTableOutput) + return ok && _this.Equals(typed) +} + +func Type_CreateGlobalTableOutput_() _dafny.TypeDescriptor { + return type_CreateGlobalTableOutput_{} +} + +type type_CreateGlobalTableOutput_ struct { +} + +func (_this type_CreateGlobalTableOutput_) Default() interface{} { + return Companion_CreateGlobalTableOutput_.Default() +} + +func (_this type_CreateGlobalTableOutput_) String() string { + return "ComAmazonawsDynamodbTypes.CreateGlobalTableOutput" +} +func (_this CreateGlobalTableOutput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = CreateGlobalTableOutput{} + +// End of datatype CreateGlobalTableOutput + +// Definition of datatype CreateReplicaAction +type CreateReplicaAction struct { + Data_CreateReplicaAction_ +} + +func (_this CreateReplicaAction) Get_() Data_CreateReplicaAction_ { + return _this.Data_CreateReplicaAction_ +} + +type Data_CreateReplicaAction_ interface { + isCreateReplicaAction() +} + +type CompanionStruct_CreateReplicaAction_ struct { +} + +var Companion_CreateReplicaAction_ = CompanionStruct_CreateReplicaAction_{} + +type CreateReplicaAction_CreateReplicaAction struct { + RegionName _dafny.Sequence +} + +func (CreateReplicaAction_CreateReplicaAction) isCreateReplicaAction() {} + +func (CompanionStruct_CreateReplicaAction_) Create_CreateReplicaAction_(RegionName _dafny.Sequence) CreateReplicaAction { + return CreateReplicaAction{CreateReplicaAction_CreateReplicaAction{RegionName}} +} + +func (_this CreateReplicaAction) Is_CreateReplicaAction() bool { + _, ok := _this.Get_().(CreateReplicaAction_CreateReplicaAction) + return ok +} + +func (CompanionStruct_CreateReplicaAction_) Default() CreateReplicaAction { + return Companion_CreateReplicaAction_.Create_CreateReplicaAction_(_dafny.EmptySeq.SetString()) +} + +func (_this CreateReplicaAction) Dtor_RegionName() _dafny.Sequence { + return _this.Get_().(CreateReplicaAction_CreateReplicaAction).RegionName +} + +func (_this CreateReplicaAction) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case CreateReplicaAction_CreateReplicaAction: + { + return "ComAmazonawsDynamodbTypes.CreateReplicaAction.CreateReplicaAction" + "(" + _dafny.String(data.RegionName) + ")" + } + default: + { + return "" + } + } +} + +func (_this CreateReplicaAction) Equals(other CreateReplicaAction) bool { + switch data1 := _this.Get_().(type) { + case CreateReplicaAction_CreateReplicaAction: + { + data2, ok := other.Get_().(CreateReplicaAction_CreateReplicaAction) + return ok && data1.RegionName.Equals(data2.RegionName) + } + default: + { + return false // unexpected + } + } +} + +func (_this CreateReplicaAction) EqualsGeneric(other interface{}) bool { + typed, ok := other.(CreateReplicaAction) + return ok && _this.Equals(typed) +} + +func Type_CreateReplicaAction_() _dafny.TypeDescriptor { + return type_CreateReplicaAction_{} +} + +type type_CreateReplicaAction_ struct { +} + +func (_this type_CreateReplicaAction_) Default() interface{} { + return Companion_CreateReplicaAction_.Default() +} + +func (_this type_CreateReplicaAction_) String() string { + return "ComAmazonawsDynamodbTypes.CreateReplicaAction" +} +func (_this CreateReplicaAction) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = CreateReplicaAction{} + +// End of datatype CreateReplicaAction + +// Definition of datatype CreateReplicationGroupMemberAction +type CreateReplicationGroupMemberAction struct { + Data_CreateReplicationGroupMemberAction_ +} + +func (_this CreateReplicationGroupMemberAction) Get_() Data_CreateReplicationGroupMemberAction_ { + return _this.Data_CreateReplicationGroupMemberAction_ +} + +type Data_CreateReplicationGroupMemberAction_ interface { + isCreateReplicationGroupMemberAction() +} + +type CompanionStruct_CreateReplicationGroupMemberAction_ struct { +} + +var Companion_CreateReplicationGroupMemberAction_ = CompanionStruct_CreateReplicationGroupMemberAction_{} + +type CreateReplicationGroupMemberAction_CreateReplicationGroupMemberAction struct { + RegionName _dafny.Sequence + KMSMasterKeyId m_Wrappers.Option + ProvisionedThroughputOverride m_Wrappers.Option + OnDemandThroughputOverride m_Wrappers.Option + GlobalSecondaryIndexes m_Wrappers.Option + TableClassOverride m_Wrappers.Option +} + +func (CreateReplicationGroupMemberAction_CreateReplicationGroupMemberAction) isCreateReplicationGroupMemberAction() { +} + +func (CompanionStruct_CreateReplicationGroupMemberAction_) Create_CreateReplicationGroupMemberAction_(RegionName _dafny.Sequence, KMSMasterKeyId m_Wrappers.Option, ProvisionedThroughputOverride m_Wrappers.Option, OnDemandThroughputOverride m_Wrappers.Option, GlobalSecondaryIndexes m_Wrappers.Option, TableClassOverride m_Wrappers.Option) CreateReplicationGroupMemberAction { + return CreateReplicationGroupMemberAction{CreateReplicationGroupMemberAction_CreateReplicationGroupMemberAction{RegionName, KMSMasterKeyId, ProvisionedThroughputOverride, OnDemandThroughputOverride, GlobalSecondaryIndexes, TableClassOverride}} +} + +func (_this CreateReplicationGroupMemberAction) Is_CreateReplicationGroupMemberAction() bool { + _, ok := _this.Get_().(CreateReplicationGroupMemberAction_CreateReplicationGroupMemberAction) + return ok +} + +func (CompanionStruct_CreateReplicationGroupMemberAction_) Default() CreateReplicationGroupMemberAction { + return Companion_CreateReplicationGroupMemberAction_.Create_CreateReplicationGroupMemberAction_(_dafny.EmptySeq.SetString(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this CreateReplicationGroupMemberAction) Dtor_RegionName() _dafny.Sequence { + return _this.Get_().(CreateReplicationGroupMemberAction_CreateReplicationGroupMemberAction).RegionName +} + +func (_this CreateReplicationGroupMemberAction) Dtor_KMSMasterKeyId() m_Wrappers.Option { + return _this.Get_().(CreateReplicationGroupMemberAction_CreateReplicationGroupMemberAction).KMSMasterKeyId +} + +func (_this CreateReplicationGroupMemberAction) Dtor_ProvisionedThroughputOverride() m_Wrappers.Option { + return _this.Get_().(CreateReplicationGroupMemberAction_CreateReplicationGroupMemberAction).ProvisionedThroughputOverride +} + +func (_this CreateReplicationGroupMemberAction) Dtor_OnDemandThroughputOverride() m_Wrappers.Option { + return _this.Get_().(CreateReplicationGroupMemberAction_CreateReplicationGroupMemberAction).OnDemandThroughputOverride +} + +func (_this CreateReplicationGroupMemberAction) Dtor_GlobalSecondaryIndexes() m_Wrappers.Option { + return _this.Get_().(CreateReplicationGroupMemberAction_CreateReplicationGroupMemberAction).GlobalSecondaryIndexes +} + +func (_this CreateReplicationGroupMemberAction) Dtor_TableClassOverride() m_Wrappers.Option { + return _this.Get_().(CreateReplicationGroupMemberAction_CreateReplicationGroupMemberAction).TableClassOverride +} + +func (_this CreateReplicationGroupMemberAction) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case CreateReplicationGroupMemberAction_CreateReplicationGroupMemberAction: + { + return "ComAmazonawsDynamodbTypes.CreateReplicationGroupMemberAction.CreateReplicationGroupMemberAction" + "(" + _dafny.String(data.RegionName) + ", " + _dafny.String(data.KMSMasterKeyId) + ", " + _dafny.String(data.ProvisionedThroughputOverride) + ", " + _dafny.String(data.OnDemandThroughputOverride) + ", " + _dafny.String(data.GlobalSecondaryIndexes) + ", " + _dafny.String(data.TableClassOverride) + ")" + } + default: + { + return "" + } + } +} + +func (_this CreateReplicationGroupMemberAction) Equals(other CreateReplicationGroupMemberAction) bool { + switch data1 := _this.Get_().(type) { + case CreateReplicationGroupMemberAction_CreateReplicationGroupMemberAction: + { + data2, ok := other.Get_().(CreateReplicationGroupMemberAction_CreateReplicationGroupMemberAction) + return ok && data1.RegionName.Equals(data2.RegionName) && data1.KMSMasterKeyId.Equals(data2.KMSMasterKeyId) && data1.ProvisionedThroughputOverride.Equals(data2.ProvisionedThroughputOverride) && data1.OnDemandThroughputOverride.Equals(data2.OnDemandThroughputOverride) && data1.GlobalSecondaryIndexes.Equals(data2.GlobalSecondaryIndexes) && data1.TableClassOverride.Equals(data2.TableClassOverride) + } + default: + { + return false // unexpected + } + } +} + +func (_this CreateReplicationGroupMemberAction) EqualsGeneric(other interface{}) bool { + typed, ok := other.(CreateReplicationGroupMemberAction) + return ok && _this.Equals(typed) +} + +func Type_CreateReplicationGroupMemberAction_() _dafny.TypeDescriptor { + return type_CreateReplicationGroupMemberAction_{} +} + +type type_CreateReplicationGroupMemberAction_ struct { +} + +func (_this type_CreateReplicationGroupMemberAction_) Default() interface{} { + return Companion_CreateReplicationGroupMemberAction_.Default() +} + +func (_this type_CreateReplicationGroupMemberAction_) String() string { + return "ComAmazonawsDynamodbTypes.CreateReplicationGroupMemberAction" +} +func (_this CreateReplicationGroupMemberAction) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = CreateReplicationGroupMemberAction{} + +// End of datatype CreateReplicationGroupMemberAction + +// Definition of datatype CreateTableInput +type CreateTableInput struct { + Data_CreateTableInput_ +} + +func (_this CreateTableInput) Get_() Data_CreateTableInput_ { + return _this.Data_CreateTableInput_ +} + +type Data_CreateTableInput_ interface { + isCreateTableInput() +} + +type CompanionStruct_CreateTableInput_ struct { +} + +var Companion_CreateTableInput_ = CompanionStruct_CreateTableInput_{} + +type CreateTableInput_CreateTableInput struct { + AttributeDefinitions _dafny.Sequence + TableName _dafny.Sequence + KeySchema _dafny.Sequence + LocalSecondaryIndexes m_Wrappers.Option + GlobalSecondaryIndexes m_Wrappers.Option + BillingMode m_Wrappers.Option + ProvisionedThroughput m_Wrappers.Option + StreamSpecification m_Wrappers.Option + SSESpecification m_Wrappers.Option + Tags m_Wrappers.Option + TableClass m_Wrappers.Option + DeletionProtectionEnabled m_Wrappers.Option + ResourcePolicy m_Wrappers.Option + OnDemandThroughput m_Wrappers.Option +} + +func (CreateTableInput_CreateTableInput) isCreateTableInput() {} + +func (CompanionStruct_CreateTableInput_) Create_CreateTableInput_(AttributeDefinitions _dafny.Sequence, TableName _dafny.Sequence, KeySchema _dafny.Sequence, LocalSecondaryIndexes m_Wrappers.Option, GlobalSecondaryIndexes m_Wrappers.Option, BillingMode m_Wrappers.Option, ProvisionedThroughput m_Wrappers.Option, StreamSpecification m_Wrappers.Option, SSESpecification m_Wrappers.Option, Tags m_Wrappers.Option, TableClass m_Wrappers.Option, DeletionProtectionEnabled m_Wrappers.Option, ResourcePolicy m_Wrappers.Option, OnDemandThroughput m_Wrappers.Option) CreateTableInput { + return CreateTableInput{CreateTableInput_CreateTableInput{AttributeDefinitions, TableName, KeySchema, LocalSecondaryIndexes, GlobalSecondaryIndexes, BillingMode, ProvisionedThroughput, StreamSpecification, SSESpecification, Tags, TableClass, DeletionProtectionEnabled, ResourcePolicy, OnDemandThroughput}} +} + +func (_this CreateTableInput) Is_CreateTableInput() bool { + _, ok := _this.Get_().(CreateTableInput_CreateTableInput) + return ok +} + +func (CompanionStruct_CreateTableInput_) Default() CreateTableInput { + return Companion_CreateTableInput_.Create_CreateTableInput_(_dafny.EmptySeq, _dafny.EmptySeq.SetString(), _dafny.EmptySeq, m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this CreateTableInput) Dtor_AttributeDefinitions() _dafny.Sequence { + return _this.Get_().(CreateTableInput_CreateTableInput).AttributeDefinitions +} + +func (_this CreateTableInput) Dtor_TableName() _dafny.Sequence { + return _this.Get_().(CreateTableInput_CreateTableInput).TableName +} + +func (_this CreateTableInput) Dtor_KeySchema() _dafny.Sequence { + return _this.Get_().(CreateTableInput_CreateTableInput).KeySchema +} + +func (_this CreateTableInput) Dtor_LocalSecondaryIndexes() m_Wrappers.Option { + return _this.Get_().(CreateTableInput_CreateTableInput).LocalSecondaryIndexes +} + +func (_this CreateTableInput) Dtor_GlobalSecondaryIndexes() m_Wrappers.Option { + return _this.Get_().(CreateTableInput_CreateTableInput).GlobalSecondaryIndexes +} + +func (_this CreateTableInput) Dtor_BillingMode() m_Wrappers.Option { + return _this.Get_().(CreateTableInput_CreateTableInput).BillingMode +} + +func (_this CreateTableInput) Dtor_ProvisionedThroughput() m_Wrappers.Option { + return _this.Get_().(CreateTableInput_CreateTableInput).ProvisionedThroughput +} + +func (_this CreateTableInput) Dtor_StreamSpecification() m_Wrappers.Option { + return _this.Get_().(CreateTableInput_CreateTableInput).StreamSpecification +} + +func (_this CreateTableInput) Dtor_SSESpecification() m_Wrappers.Option { + return _this.Get_().(CreateTableInput_CreateTableInput).SSESpecification +} + +func (_this CreateTableInput) Dtor_Tags() m_Wrappers.Option { + return _this.Get_().(CreateTableInput_CreateTableInput).Tags +} + +func (_this CreateTableInput) Dtor_TableClass() m_Wrappers.Option { + return _this.Get_().(CreateTableInput_CreateTableInput).TableClass +} + +func (_this CreateTableInput) Dtor_DeletionProtectionEnabled() m_Wrappers.Option { + return _this.Get_().(CreateTableInput_CreateTableInput).DeletionProtectionEnabled +} + +func (_this CreateTableInput) Dtor_ResourcePolicy() m_Wrappers.Option { + return _this.Get_().(CreateTableInput_CreateTableInput).ResourcePolicy +} + +func (_this CreateTableInput) Dtor_OnDemandThroughput() m_Wrappers.Option { + return _this.Get_().(CreateTableInput_CreateTableInput).OnDemandThroughput +} + +func (_this CreateTableInput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case CreateTableInput_CreateTableInput: + { + return "ComAmazonawsDynamodbTypes.CreateTableInput.CreateTableInput" + "(" + _dafny.String(data.AttributeDefinitions) + ", " + _dafny.String(data.TableName) + ", " + _dafny.String(data.KeySchema) + ", " + _dafny.String(data.LocalSecondaryIndexes) + ", " + _dafny.String(data.GlobalSecondaryIndexes) + ", " + _dafny.String(data.BillingMode) + ", " + _dafny.String(data.ProvisionedThroughput) + ", " + _dafny.String(data.StreamSpecification) + ", " + _dafny.String(data.SSESpecification) + ", " + _dafny.String(data.Tags) + ", " + _dafny.String(data.TableClass) + ", " + _dafny.String(data.DeletionProtectionEnabled) + ", " + _dafny.String(data.ResourcePolicy) + ", " + _dafny.String(data.OnDemandThroughput) + ")" + } + default: + { + return "" + } + } +} + +func (_this CreateTableInput) Equals(other CreateTableInput) bool { + switch data1 := _this.Get_().(type) { + case CreateTableInput_CreateTableInput: + { + data2, ok := other.Get_().(CreateTableInput_CreateTableInput) + return ok && data1.AttributeDefinitions.Equals(data2.AttributeDefinitions) && data1.TableName.Equals(data2.TableName) && data1.KeySchema.Equals(data2.KeySchema) && data1.LocalSecondaryIndexes.Equals(data2.LocalSecondaryIndexes) && data1.GlobalSecondaryIndexes.Equals(data2.GlobalSecondaryIndexes) && data1.BillingMode.Equals(data2.BillingMode) && data1.ProvisionedThroughput.Equals(data2.ProvisionedThroughput) && data1.StreamSpecification.Equals(data2.StreamSpecification) && data1.SSESpecification.Equals(data2.SSESpecification) && data1.Tags.Equals(data2.Tags) && data1.TableClass.Equals(data2.TableClass) && data1.DeletionProtectionEnabled.Equals(data2.DeletionProtectionEnabled) && data1.ResourcePolicy.Equals(data2.ResourcePolicy) && data1.OnDemandThroughput.Equals(data2.OnDemandThroughput) + } + default: + { + return false // unexpected + } + } +} + +func (_this CreateTableInput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(CreateTableInput) + return ok && _this.Equals(typed) +} + +func Type_CreateTableInput_() _dafny.TypeDescriptor { + return type_CreateTableInput_{} +} + +type type_CreateTableInput_ struct { +} + +func (_this type_CreateTableInput_) Default() interface{} { + return Companion_CreateTableInput_.Default() +} + +func (_this type_CreateTableInput_) String() string { + return "ComAmazonawsDynamodbTypes.CreateTableInput" +} +func (_this CreateTableInput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = CreateTableInput{} + +// End of datatype CreateTableInput + +// Definition of datatype CreateTableOutput +type CreateTableOutput struct { + Data_CreateTableOutput_ +} + +func (_this CreateTableOutput) Get_() Data_CreateTableOutput_ { + return _this.Data_CreateTableOutput_ +} + +type Data_CreateTableOutput_ interface { + isCreateTableOutput() +} + +type CompanionStruct_CreateTableOutput_ struct { +} + +var Companion_CreateTableOutput_ = CompanionStruct_CreateTableOutput_{} + +type CreateTableOutput_CreateTableOutput struct { + TableDescription m_Wrappers.Option +} + +func (CreateTableOutput_CreateTableOutput) isCreateTableOutput() {} + +func (CompanionStruct_CreateTableOutput_) Create_CreateTableOutput_(TableDescription m_Wrappers.Option) CreateTableOutput { + return CreateTableOutput{CreateTableOutput_CreateTableOutput{TableDescription}} +} + +func (_this CreateTableOutput) Is_CreateTableOutput() bool { + _, ok := _this.Get_().(CreateTableOutput_CreateTableOutput) + return ok +} + +func (CompanionStruct_CreateTableOutput_) Default() CreateTableOutput { + return Companion_CreateTableOutput_.Create_CreateTableOutput_(m_Wrappers.Companion_Option_.Default()) +} + +func (_this CreateTableOutput) Dtor_TableDescription() m_Wrappers.Option { + return _this.Get_().(CreateTableOutput_CreateTableOutput).TableDescription +} + +func (_this CreateTableOutput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case CreateTableOutput_CreateTableOutput: + { + return "ComAmazonawsDynamodbTypes.CreateTableOutput.CreateTableOutput" + "(" + _dafny.String(data.TableDescription) + ")" + } + default: + { + return "" + } + } +} + +func (_this CreateTableOutput) Equals(other CreateTableOutput) bool { + switch data1 := _this.Get_().(type) { + case CreateTableOutput_CreateTableOutput: + { + data2, ok := other.Get_().(CreateTableOutput_CreateTableOutput) + return ok && data1.TableDescription.Equals(data2.TableDescription) + } + default: + { + return false // unexpected + } + } +} + +func (_this CreateTableOutput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(CreateTableOutput) + return ok && _this.Equals(typed) +} + +func Type_CreateTableOutput_() _dafny.TypeDescriptor { + return type_CreateTableOutput_{} +} + +type type_CreateTableOutput_ struct { +} + +func (_this type_CreateTableOutput_) Default() interface{} { + return Companion_CreateTableOutput_.Default() +} + +func (_this type_CreateTableOutput_) String() string { + return "ComAmazonawsDynamodbTypes.CreateTableOutput" +} +func (_this CreateTableOutput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = CreateTableOutput{} + +// End of datatype CreateTableOutput + +// Definition of class CsvDelimiter +type CsvDelimiter struct { +} + +func New_CsvDelimiter_() *CsvDelimiter { + _this := CsvDelimiter{} + + return &_this +} + +type CompanionStruct_CsvDelimiter_ struct { +} + +var Companion_CsvDelimiter_ = CompanionStruct_CsvDelimiter_{} + +func (*CsvDelimiter) String() string { + return "ComAmazonawsDynamodbTypes.CsvDelimiter" +} + +// End of class CsvDelimiter + +func Type_CsvDelimiter_() _dafny.TypeDescriptor { + return type_CsvDelimiter_{} +} + +type type_CsvDelimiter_ struct { +} + +func (_this type_CsvDelimiter_) Default() interface{} { + return _dafny.EmptySeq.SetString() +} + +func (_this type_CsvDelimiter_) String() string { + return "ComAmazonawsDynamodbTypes.CsvDelimiter" +} +func (_this *CompanionStruct_CsvDelimiter_) Is_(__source _dafny.Sequence) bool { + var _15_x _dafny.Sequence = (__source) + _ = _15_x + return Companion_Default___.IsValid__CsvDelimiter(_15_x) +} + +// Definition of class CsvHeader +type CsvHeader struct { +} + +func New_CsvHeader_() *CsvHeader { + _this := CsvHeader{} + + return &_this +} + +type CompanionStruct_CsvHeader_ struct { +} + +var Companion_CsvHeader_ = CompanionStruct_CsvHeader_{} + +func (*CsvHeader) String() string { + return "ComAmazonawsDynamodbTypes.CsvHeader" +} + +// End of class CsvHeader + +func Type_CsvHeader_() _dafny.TypeDescriptor { + return type_CsvHeader_{} +} + +type type_CsvHeader_ struct { +} + +func (_this type_CsvHeader_) Default() interface{} { + return _dafny.EmptySeq.SetString() +} + +func (_this type_CsvHeader_) String() string { + return "ComAmazonawsDynamodbTypes.CsvHeader" +} +func (_this *CompanionStruct_CsvHeader_) Is_(__source _dafny.Sequence) bool { + var _16_x _dafny.Sequence = (__source) + _ = _16_x + return Companion_Default___.IsValid__CsvHeader(_16_x) +} + +// Definition of class CsvHeaderList +type CsvHeaderList struct { +} + +func New_CsvHeaderList_() *CsvHeaderList { + _this := CsvHeaderList{} + + return &_this +} + +type CompanionStruct_CsvHeaderList_ struct { +} + +var Companion_CsvHeaderList_ = CompanionStruct_CsvHeaderList_{} + +func (*CsvHeaderList) String() string { + return "ComAmazonawsDynamodbTypes.CsvHeaderList" +} + +// End of class CsvHeaderList + +func Type_CsvHeaderList_() _dafny.TypeDescriptor { + return type_CsvHeaderList_{} +} + +type type_CsvHeaderList_ struct { +} + +func (_this type_CsvHeaderList_) Default() interface{} { + return _dafny.EmptySeq +} + +func (_this type_CsvHeaderList_) String() string { + return "ComAmazonawsDynamodbTypes.CsvHeaderList" +} +func (_this *CompanionStruct_CsvHeaderList_) Is_(__source _dafny.Sequence) bool { + var _17_x _dafny.Sequence = (__source) + _ = _17_x + return Companion_Default___.IsValid__CsvHeaderList(_17_x) +} + +// Definition of datatype CsvOptions +type CsvOptions struct { + Data_CsvOptions_ +} + +func (_this CsvOptions) Get_() Data_CsvOptions_ { + return _this.Data_CsvOptions_ +} + +type Data_CsvOptions_ interface { + isCsvOptions() +} + +type CompanionStruct_CsvOptions_ struct { +} + +var Companion_CsvOptions_ = CompanionStruct_CsvOptions_{} + +type CsvOptions_CsvOptions struct { + Delimiter m_Wrappers.Option + HeaderList m_Wrappers.Option +} + +func (CsvOptions_CsvOptions) isCsvOptions() {} + +func (CompanionStruct_CsvOptions_) Create_CsvOptions_(Delimiter m_Wrappers.Option, HeaderList m_Wrappers.Option) CsvOptions { + return CsvOptions{CsvOptions_CsvOptions{Delimiter, HeaderList}} +} + +func (_this CsvOptions) Is_CsvOptions() bool { + _, ok := _this.Get_().(CsvOptions_CsvOptions) + return ok +} + +func (CompanionStruct_CsvOptions_) Default() CsvOptions { + return Companion_CsvOptions_.Create_CsvOptions_(m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this CsvOptions) Dtor_Delimiter() m_Wrappers.Option { + return _this.Get_().(CsvOptions_CsvOptions).Delimiter +} + +func (_this CsvOptions) Dtor_HeaderList() m_Wrappers.Option { + return _this.Get_().(CsvOptions_CsvOptions).HeaderList +} + +func (_this CsvOptions) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case CsvOptions_CsvOptions: + { + return "ComAmazonawsDynamodbTypes.CsvOptions.CsvOptions" + "(" + _dafny.String(data.Delimiter) + ", " + _dafny.String(data.HeaderList) + ")" + } + default: + { + return "" + } + } +} + +func (_this CsvOptions) Equals(other CsvOptions) bool { + switch data1 := _this.Get_().(type) { + case CsvOptions_CsvOptions: + { + data2, ok := other.Get_().(CsvOptions_CsvOptions) + return ok && data1.Delimiter.Equals(data2.Delimiter) && data1.HeaderList.Equals(data2.HeaderList) + } + default: + { + return false // unexpected + } + } +} + +func (_this CsvOptions) EqualsGeneric(other interface{}) bool { + typed, ok := other.(CsvOptions) + return ok && _this.Equals(typed) +} + +func Type_CsvOptions_() _dafny.TypeDescriptor { + return type_CsvOptions_{} +} + +type type_CsvOptions_ struct { +} + +func (_this type_CsvOptions_) Default() interface{} { + return Companion_CsvOptions_.Default() +} + +func (_this type_CsvOptions_) String() string { + return "ComAmazonawsDynamodbTypes.CsvOptions" +} +func (_this CsvOptions) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = CsvOptions{} + +// End of datatype CsvOptions + +// Definition of datatype Delete +type Delete struct { + Data_Delete_ +} + +func (_this Delete) Get_() Data_Delete_ { + return _this.Data_Delete_ +} + +type Data_Delete_ interface { + isDelete() +} + +type CompanionStruct_Delete_ struct { +} + +var Companion_Delete_ = CompanionStruct_Delete_{} + +type Delete_Delete struct { + Key _dafny.Map + TableName _dafny.Sequence + ConditionExpression m_Wrappers.Option + ExpressionAttributeNames m_Wrappers.Option + ExpressionAttributeValues m_Wrappers.Option + ReturnValuesOnConditionCheckFailure m_Wrappers.Option +} + +func (Delete_Delete) isDelete() {} + +func (CompanionStruct_Delete_) Create_Delete_(Key _dafny.Map, TableName _dafny.Sequence, ConditionExpression m_Wrappers.Option, ExpressionAttributeNames m_Wrappers.Option, ExpressionAttributeValues m_Wrappers.Option, ReturnValuesOnConditionCheckFailure m_Wrappers.Option) Delete { + return Delete{Delete_Delete{Key, TableName, ConditionExpression, ExpressionAttributeNames, ExpressionAttributeValues, ReturnValuesOnConditionCheckFailure}} +} + +func (_this Delete) Is_Delete() bool { + _, ok := _this.Get_().(Delete_Delete) + return ok +} + +func (CompanionStruct_Delete_) Default() Delete { + return Companion_Delete_.Create_Delete_(_dafny.EmptyMap, _dafny.EmptySeq.SetString(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this Delete) Dtor_Key() _dafny.Map { + return _this.Get_().(Delete_Delete).Key +} + +func (_this Delete) Dtor_TableName() _dafny.Sequence { + return _this.Get_().(Delete_Delete).TableName +} + +func (_this Delete) Dtor_ConditionExpression() m_Wrappers.Option { + return _this.Get_().(Delete_Delete).ConditionExpression +} + +func (_this Delete) Dtor_ExpressionAttributeNames() m_Wrappers.Option { + return _this.Get_().(Delete_Delete).ExpressionAttributeNames +} + +func (_this Delete) Dtor_ExpressionAttributeValues() m_Wrappers.Option { + return _this.Get_().(Delete_Delete).ExpressionAttributeValues +} + +func (_this Delete) Dtor_ReturnValuesOnConditionCheckFailure() m_Wrappers.Option { + return _this.Get_().(Delete_Delete).ReturnValuesOnConditionCheckFailure +} + +func (_this Delete) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case Delete_Delete: + { + return "ComAmazonawsDynamodbTypes.Delete.Delete" + "(" + _dafny.String(data.Key) + ", " + _dafny.String(data.TableName) + ", " + _dafny.String(data.ConditionExpression) + ", " + _dafny.String(data.ExpressionAttributeNames) + ", " + _dafny.String(data.ExpressionAttributeValues) + ", " + _dafny.String(data.ReturnValuesOnConditionCheckFailure) + ")" + } + default: + { + return "" + } + } +} + +func (_this Delete) Equals(other Delete) bool { + switch data1 := _this.Get_().(type) { + case Delete_Delete: + { + data2, ok := other.Get_().(Delete_Delete) + return ok && data1.Key.Equals(data2.Key) && data1.TableName.Equals(data2.TableName) && data1.ConditionExpression.Equals(data2.ConditionExpression) && data1.ExpressionAttributeNames.Equals(data2.ExpressionAttributeNames) && data1.ExpressionAttributeValues.Equals(data2.ExpressionAttributeValues) && data1.ReturnValuesOnConditionCheckFailure.Equals(data2.ReturnValuesOnConditionCheckFailure) + } + default: + { + return false // unexpected + } + } +} + +func (_this Delete) EqualsGeneric(other interface{}) bool { + typed, ok := other.(Delete) + return ok && _this.Equals(typed) +} + +func Type_Delete_() _dafny.TypeDescriptor { + return type_Delete_{} +} + +type type_Delete_ struct { +} + +func (_this type_Delete_) Default() interface{} { + return Companion_Delete_.Default() +} + +func (_this type_Delete_) String() string { + return "ComAmazonawsDynamodbTypes.Delete" +} +func (_this Delete) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = Delete{} + +// End of datatype Delete + +// Definition of datatype DeleteBackupInput +type DeleteBackupInput struct { + Data_DeleteBackupInput_ +} + +func (_this DeleteBackupInput) Get_() Data_DeleteBackupInput_ { + return _this.Data_DeleteBackupInput_ +} + +type Data_DeleteBackupInput_ interface { + isDeleteBackupInput() +} + +type CompanionStruct_DeleteBackupInput_ struct { +} + +var Companion_DeleteBackupInput_ = CompanionStruct_DeleteBackupInput_{} + +type DeleteBackupInput_DeleteBackupInput struct { + BackupArn _dafny.Sequence +} + +func (DeleteBackupInput_DeleteBackupInput) isDeleteBackupInput() {} + +func (CompanionStruct_DeleteBackupInput_) Create_DeleteBackupInput_(BackupArn _dafny.Sequence) DeleteBackupInput { + return DeleteBackupInput{DeleteBackupInput_DeleteBackupInput{BackupArn}} +} + +func (_this DeleteBackupInput) Is_DeleteBackupInput() bool { + _, ok := _this.Get_().(DeleteBackupInput_DeleteBackupInput) + return ok +} + +func (CompanionStruct_DeleteBackupInput_) Default() DeleteBackupInput { + return Companion_DeleteBackupInput_.Create_DeleteBackupInput_(_dafny.EmptySeq.SetString()) +} + +func (_this DeleteBackupInput) Dtor_BackupArn() _dafny.Sequence { + return _this.Get_().(DeleteBackupInput_DeleteBackupInput).BackupArn +} + +func (_this DeleteBackupInput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case DeleteBackupInput_DeleteBackupInput: + { + return "ComAmazonawsDynamodbTypes.DeleteBackupInput.DeleteBackupInput" + "(" + _dafny.String(data.BackupArn) + ")" + } + default: + { + return "" + } + } +} + +func (_this DeleteBackupInput) Equals(other DeleteBackupInput) bool { + switch data1 := _this.Get_().(type) { + case DeleteBackupInput_DeleteBackupInput: + { + data2, ok := other.Get_().(DeleteBackupInput_DeleteBackupInput) + return ok && data1.BackupArn.Equals(data2.BackupArn) + } + default: + { + return false // unexpected + } + } +} + +func (_this DeleteBackupInput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(DeleteBackupInput) + return ok && _this.Equals(typed) +} + +func Type_DeleteBackupInput_() _dafny.TypeDescriptor { + return type_DeleteBackupInput_{} +} + +type type_DeleteBackupInput_ struct { +} + +func (_this type_DeleteBackupInput_) Default() interface{} { + return Companion_DeleteBackupInput_.Default() +} + +func (_this type_DeleteBackupInput_) String() string { + return "ComAmazonawsDynamodbTypes.DeleteBackupInput" +} +func (_this DeleteBackupInput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = DeleteBackupInput{} + +// End of datatype DeleteBackupInput + +// Definition of datatype DeleteBackupOutput +type DeleteBackupOutput struct { + Data_DeleteBackupOutput_ +} + +func (_this DeleteBackupOutput) Get_() Data_DeleteBackupOutput_ { + return _this.Data_DeleteBackupOutput_ +} + +type Data_DeleteBackupOutput_ interface { + isDeleteBackupOutput() +} + +type CompanionStruct_DeleteBackupOutput_ struct { +} + +var Companion_DeleteBackupOutput_ = CompanionStruct_DeleteBackupOutput_{} + +type DeleteBackupOutput_DeleteBackupOutput struct { + BackupDescription m_Wrappers.Option +} + +func (DeleteBackupOutput_DeleteBackupOutput) isDeleteBackupOutput() {} + +func (CompanionStruct_DeleteBackupOutput_) Create_DeleteBackupOutput_(BackupDescription m_Wrappers.Option) DeleteBackupOutput { + return DeleteBackupOutput{DeleteBackupOutput_DeleteBackupOutput{BackupDescription}} +} + +func (_this DeleteBackupOutput) Is_DeleteBackupOutput() bool { + _, ok := _this.Get_().(DeleteBackupOutput_DeleteBackupOutput) + return ok +} + +func (CompanionStruct_DeleteBackupOutput_) Default() DeleteBackupOutput { + return Companion_DeleteBackupOutput_.Create_DeleteBackupOutput_(m_Wrappers.Companion_Option_.Default()) +} + +func (_this DeleteBackupOutput) Dtor_BackupDescription() m_Wrappers.Option { + return _this.Get_().(DeleteBackupOutput_DeleteBackupOutput).BackupDescription +} + +func (_this DeleteBackupOutput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case DeleteBackupOutput_DeleteBackupOutput: + { + return "ComAmazonawsDynamodbTypes.DeleteBackupOutput.DeleteBackupOutput" + "(" + _dafny.String(data.BackupDescription) + ")" + } + default: + { + return "" + } + } +} + +func (_this DeleteBackupOutput) Equals(other DeleteBackupOutput) bool { + switch data1 := _this.Get_().(type) { + case DeleteBackupOutput_DeleteBackupOutput: + { + data2, ok := other.Get_().(DeleteBackupOutput_DeleteBackupOutput) + return ok && data1.BackupDescription.Equals(data2.BackupDescription) + } + default: + { + return false // unexpected + } + } +} + +func (_this DeleteBackupOutput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(DeleteBackupOutput) + return ok && _this.Equals(typed) +} + +func Type_DeleteBackupOutput_() _dafny.TypeDescriptor { + return type_DeleteBackupOutput_{} +} + +type type_DeleteBackupOutput_ struct { +} + +func (_this type_DeleteBackupOutput_) Default() interface{} { + return Companion_DeleteBackupOutput_.Default() +} + +func (_this type_DeleteBackupOutput_) String() string { + return "ComAmazonawsDynamodbTypes.DeleteBackupOutput" +} +func (_this DeleteBackupOutput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = DeleteBackupOutput{} + +// End of datatype DeleteBackupOutput + +// Definition of datatype DeleteGlobalSecondaryIndexAction +type DeleteGlobalSecondaryIndexAction struct { + Data_DeleteGlobalSecondaryIndexAction_ +} + +func (_this DeleteGlobalSecondaryIndexAction) Get_() Data_DeleteGlobalSecondaryIndexAction_ { + return _this.Data_DeleteGlobalSecondaryIndexAction_ +} + +type Data_DeleteGlobalSecondaryIndexAction_ interface { + isDeleteGlobalSecondaryIndexAction() +} + +type CompanionStruct_DeleteGlobalSecondaryIndexAction_ struct { +} + +var Companion_DeleteGlobalSecondaryIndexAction_ = CompanionStruct_DeleteGlobalSecondaryIndexAction_{} + +type DeleteGlobalSecondaryIndexAction_DeleteGlobalSecondaryIndexAction struct { + IndexName _dafny.Sequence +} + +func (DeleteGlobalSecondaryIndexAction_DeleteGlobalSecondaryIndexAction) isDeleteGlobalSecondaryIndexAction() { +} + +func (CompanionStruct_DeleteGlobalSecondaryIndexAction_) Create_DeleteGlobalSecondaryIndexAction_(IndexName _dafny.Sequence) DeleteGlobalSecondaryIndexAction { + return DeleteGlobalSecondaryIndexAction{DeleteGlobalSecondaryIndexAction_DeleteGlobalSecondaryIndexAction{IndexName}} +} + +func (_this DeleteGlobalSecondaryIndexAction) Is_DeleteGlobalSecondaryIndexAction() bool { + _, ok := _this.Get_().(DeleteGlobalSecondaryIndexAction_DeleteGlobalSecondaryIndexAction) + return ok +} + +func (CompanionStruct_DeleteGlobalSecondaryIndexAction_) Default() DeleteGlobalSecondaryIndexAction { + return Companion_DeleteGlobalSecondaryIndexAction_.Create_DeleteGlobalSecondaryIndexAction_(_dafny.EmptySeq.SetString()) +} + +func (_this DeleteGlobalSecondaryIndexAction) Dtor_IndexName() _dafny.Sequence { + return _this.Get_().(DeleteGlobalSecondaryIndexAction_DeleteGlobalSecondaryIndexAction).IndexName +} + +func (_this DeleteGlobalSecondaryIndexAction) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case DeleteGlobalSecondaryIndexAction_DeleteGlobalSecondaryIndexAction: + { + return "ComAmazonawsDynamodbTypes.DeleteGlobalSecondaryIndexAction.DeleteGlobalSecondaryIndexAction" + "(" + _dafny.String(data.IndexName) + ")" + } + default: + { + return "" + } + } +} + +func (_this DeleteGlobalSecondaryIndexAction) Equals(other DeleteGlobalSecondaryIndexAction) bool { + switch data1 := _this.Get_().(type) { + case DeleteGlobalSecondaryIndexAction_DeleteGlobalSecondaryIndexAction: + { + data2, ok := other.Get_().(DeleteGlobalSecondaryIndexAction_DeleteGlobalSecondaryIndexAction) + return ok && data1.IndexName.Equals(data2.IndexName) + } + default: + { + return false // unexpected + } + } +} + +func (_this DeleteGlobalSecondaryIndexAction) EqualsGeneric(other interface{}) bool { + typed, ok := other.(DeleteGlobalSecondaryIndexAction) + return ok && _this.Equals(typed) +} + +func Type_DeleteGlobalSecondaryIndexAction_() _dafny.TypeDescriptor { + return type_DeleteGlobalSecondaryIndexAction_{} +} + +type type_DeleteGlobalSecondaryIndexAction_ struct { +} + +func (_this type_DeleteGlobalSecondaryIndexAction_) Default() interface{} { + return Companion_DeleteGlobalSecondaryIndexAction_.Default() +} + +func (_this type_DeleteGlobalSecondaryIndexAction_) String() string { + return "ComAmazonawsDynamodbTypes.DeleteGlobalSecondaryIndexAction" +} +func (_this DeleteGlobalSecondaryIndexAction) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = DeleteGlobalSecondaryIndexAction{} + +// End of datatype DeleteGlobalSecondaryIndexAction + +// Definition of datatype DeleteItemInput +type DeleteItemInput struct { + Data_DeleteItemInput_ +} + +func (_this DeleteItemInput) Get_() Data_DeleteItemInput_ { + return _this.Data_DeleteItemInput_ +} + +type Data_DeleteItemInput_ interface { + isDeleteItemInput() +} + +type CompanionStruct_DeleteItemInput_ struct { +} + +var Companion_DeleteItemInput_ = CompanionStruct_DeleteItemInput_{} + +type DeleteItemInput_DeleteItemInput struct { + TableName _dafny.Sequence + Key _dafny.Map + Expected m_Wrappers.Option + ConditionalOperator m_Wrappers.Option + ReturnValues m_Wrappers.Option + ReturnConsumedCapacity m_Wrappers.Option + ReturnItemCollectionMetrics m_Wrappers.Option + ConditionExpression m_Wrappers.Option + ExpressionAttributeNames m_Wrappers.Option + ExpressionAttributeValues m_Wrappers.Option + ReturnValuesOnConditionCheckFailure m_Wrappers.Option +} + +func (DeleteItemInput_DeleteItemInput) isDeleteItemInput() {} + +func (CompanionStruct_DeleteItemInput_) Create_DeleteItemInput_(TableName _dafny.Sequence, Key _dafny.Map, Expected m_Wrappers.Option, ConditionalOperator m_Wrappers.Option, ReturnValues m_Wrappers.Option, ReturnConsumedCapacity m_Wrappers.Option, ReturnItemCollectionMetrics m_Wrappers.Option, ConditionExpression m_Wrappers.Option, ExpressionAttributeNames m_Wrappers.Option, ExpressionAttributeValues m_Wrappers.Option, ReturnValuesOnConditionCheckFailure m_Wrappers.Option) DeleteItemInput { + return DeleteItemInput{DeleteItemInput_DeleteItemInput{TableName, Key, Expected, ConditionalOperator, ReturnValues, ReturnConsumedCapacity, ReturnItemCollectionMetrics, ConditionExpression, ExpressionAttributeNames, ExpressionAttributeValues, ReturnValuesOnConditionCheckFailure}} +} + +func (_this DeleteItemInput) Is_DeleteItemInput() bool { + _, ok := _this.Get_().(DeleteItemInput_DeleteItemInput) + return ok +} + +func (CompanionStruct_DeleteItemInput_) Default() DeleteItemInput { + return Companion_DeleteItemInput_.Create_DeleteItemInput_(_dafny.EmptySeq.SetString(), _dafny.EmptyMap, m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this DeleteItemInput) Dtor_TableName() _dafny.Sequence { + return _this.Get_().(DeleteItemInput_DeleteItemInput).TableName +} + +func (_this DeleteItemInput) Dtor_Key() _dafny.Map { + return _this.Get_().(DeleteItemInput_DeleteItemInput).Key +} + +func (_this DeleteItemInput) Dtor_Expected() m_Wrappers.Option { + return _this.Get_().(DeleteItemInput_DeleteItemInput).Expected +} + +func (_this DeleteItemInput) Dtor_ConditionalOperator() m_Wrappers.Option { + return _this.Get_().(DeleteItemInput_DeleteItemInput).ConditionalOperator +} + +func (_this DeleteItemInput) Dtor_ReturnValues() m_Wrappers.Option { + return _this.Get_().(DeleteItemInput_DeleteItemInput).ReturnValues +} + +func (_this DeleteItemInput) Dtor_ReturnConsumedCapacity() m_Wrappers.Option { + return _this.Get_().(DeleteItemInput_DeleteItemInput).ReturnConsumedCapacity +} + +func (_this DeleteItemInput) Dtor_ReturnItemCollectionMetrics() m_Wrappers.Option { + return _this.Get_().(DeleteItemInput_DeleteItemInput).ReturnItemCollectionMetrics +} + +func (_this DeleteItemInput) Dtor_ConditionExpression() m_Wrappers.Option { + return _this.Get_().(DeleteItemInput_DeleteItemInput).ConditionExpression +} + +func (_this DeleteItemInput) Dtor_ExpressionAttributeNames() m_Wrappers.Option { + return _this.Get_().(DeleteItemInput_DeleteItemInput).ExpressionAttributeNames +} + +func (_this DeleteItemInput) Dtor_ExpressionAttributeValues() m_Wrappers.Option { + return _this.Get_().(DeleteItemInput_DeleteItemInput).ExpressionAttributeValues +} + +func (_this DeleteItemInput) Dtor_ReturnValuesOnConditionCheckFailure() m_Wrappers.Option { + return _this.Get_().(DeleteItemInput_DeleteItemInput).ReturnValuesOnConditionCheckFailure +} + +func (_this DeleteItemInput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case DeleteItemInput_DeleteItemInput: + { + return "ComAmazonawsDynamodbTypes.DeleteItemInput.DeleteItemInput" + "(" + _dafny.String(data.TableName) + ", " + _dafny.String(data.Key) + ", " + _dafny.String(data.Expected) + ", " + _dafny.String(data.ConditionalOperator) + ", " + _dafny.String(data.ReturnValues) + ", " + _dafny.String(data.ReturnConsumedCapacity) + ", " + _dafny.String(data.ReturnItemCollectionMetrics) + ", " + _dafny.String(data.ConditionExpression) + ", " + _dafny.String(data.ExpressionAttributeNames) + ", " + _dafny.String(data.ExpressionAttributeValues) + ", " + _dafny.String(data.ReturnValuesOnConditionCheckFailure) + ")" + } + default: + { + return "" + } + } +} + +func (_this DeleteItemInput) Equals(other DeleteItemInput) bool { + switch data1 := _this.Get_().(type) { + case DeleteItemInput_DeleteItemInput: + { + data2, ok := other.Get_().(DeleteItemInput_DeleteItemInput) + return ok && data1.TableName.Equals(data2.TableName) && data1.Key.Equals(data2.Key) && data1.Expected.Equals(data2.Expected) && data1.ConditionalOperator.Equals(data2.ConditionalOperator) && data1.ReturnValues.Equals(data2.ReturnValues) && data1.ReturnConsumedCapacity.Equals(data2.ReturnConsumedCapacity) && data1.ReturnItemCollectionMetrics.Equals(data2.ReturnItemCollectionMetrics) && data1.ConditionExpression.Equals(data2.ConditionExpression) && data1.ExpressionAttributeNames.Equals(data2.ExpressionAttributeNames) && data1.ExpressionAttributeValues.Equals(data2.ExpressionAttributeValues) && data1.ReturnValuesOnConditionCheckFailure.Equals(data2.ReturnValuesOnConditionCheckFailure) + } + default: + { + return false // unexpected + } + } +} + +func (_this DeleteItemInput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(DeleteItemInput) + return ok && _this.Equals(typed) +} + +func Type_DeleteItemInput_() _dafny.TypeDescriptor { + return type_DeleteItemInput_{} +} + +type type_DeleteItemInput_ struct { +} + +func (_this type_DeleteItemInput_) Default() interface{} { + return Companion_DeleteItemInput_.Default() +} + +func (_this type_DeleteItemInput_) String() string { + return "ComAmazonawsDynamodbTypes.DeleteItemInput" +} +func (_this DeleteItemInput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = DeleteItemInput{} + +// End of datatype DeleteItemInput + +// Definition of datatype DeleteItemOutput +type DeleteItemOutput struct { + Data_DeleteItemOutput_ +} + +func (_this DeleteItemOutput) Get_() Data_DeleteItemOutput_ { + return _this.Data_DeleteItemOutput_ +} + +type Data_DeleteItemOutput_ interface { + isDeleteItemOutput() +} + +type CompanionStruct_DeleteItemOutput_ struct { +} + +var Companion_DeleteItemOutput_ = CompanionStruct_DeleteItemOutput_{} + +type DeleteItemOutput_DeleteItemOutput struct { + Attributes m_Wrappers.Option + ConsumedCapacity m_Wrappers.Option + ItemCollectionMetrics m_Wrappers.Option +} + +func (DeleteItemOutput_DeleteItemOutput) isDeleteItemOutput() {} + +func (CompanionStruct_DeleteItemOutput_) Create_DeleteItemOutput_(Attributes m_Wrappers.Option, ConsumedCapacity m_Wrappers.Option, ItemCollectionMetrics m_Wrappers.Option) DeleteItemOutput { + return DeleteItemOutput{DeleteItemOutput_DeleteItemOutput{Attributes, ConsumedCapacity, ItemCollectionMetrics}} +} + +func (_this DeleteItemOutput) Is_DeleteItemOutput() bool { + _, ok := _this.Get_().(DeleteItemOutput_DeleteItemOutput) + return ok +} + +func (CompanionStruct_DeleteItemOutput_) Default() DeleteItemOutput { + return Companion_DeleteItemOutput_.Create_DeleteItemOutput_(m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this DeleteItemOutput) Dtor_Attributes() m_Wrappers.Option { + return _this.Get_().(DeleteItemOutput_DeleteItemOutput).Attributes +} + +func (_this DeleteItemOutput) Dtor_ConsumedCapacity() m_Wrappers.Option { + return _this.Get_().(DeleteItemOutput_DeleteItemOutput).ConsumedCapacity +} + +func (_this DeleteItemOutput) Dtor_ItemCollectionMetrics() m_Wrappers.Option { + return _this.Get_().(DeleteItemOutput_DeleteItemOutput).ItemCollectionMetrics +} + +func (_this DeleteItemOutput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case DeleteItemOutput_DeleteItemOutput: + { + return "ComAmazonawsDynamodbTypes.DeleteItemOutput.DeleteItemOutput" + "(" + _dafny.String(data.Attributes) + ", " + _dafny.String(data.ConsumedCapacity) + ", " + _dafny.String(data.ItemCollectionMetrics) + ")" + } + default: + { + return "" + } + } +} + +func (_this DeleteItemOutput) Equals(other DeleteItemOutput) bool { + switch data1 := _this.Get_().(type) { + case DeleteItemOutput_DeleteItemOutput: + { + data2, ok := other.Get_().(DeleteItemOutput_DeleteItemOutput) + return ok && data1.Attributes.Equals(data2.Attributes) && data1.ConsumedCapacity.Equals(data2.ConsumedCapacity) && data1.ItemCollectionMetrics.Equals(data2.ItemCollectionMetrics) + } + default: + { + return false // unexpected + } + } +} + +func (_this DeleteItemOutput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(DeleteItemOutput) + return ok && _this.Equals(typed) +} + +func Type_DeleteItemOutput_() _dafny.TypeDescriptor { + return type_DeleteItemOutput_{} +} + +type type_DeleteItemOutput_ struct { +} + +func (_this type_DeleteItemOutput_) Default() interface{} { + return Companion_DeleteItemOutput_.Default() +} + +func (_this type_DeleteItemOutput_) String() string { + return "ComAmazonawsDynamodbTypes.DeleteItemOutput" +} +func (_this DeleteItemOutput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = DeleteItemOutput{} + +// End of datatype DeleteItemOutput + +// Definition of datatype DeleteReplicaAction +type DeleteReplicaAction struct { + Data_DeleteReplicaAction_ +} + +func (_this DeleteReplicaAction) Get_() Data_DeleteReplicaAction_ { + return _this.Data_DeleteReplicaAction_ +} + +type Data_DeleteReplicaAction_ interface { + isDeleteReplicaAction() +} + +type CompanionStruct_DeleteReplicaAction_ struct { +} + +var Companion_DeleteReplicaAction_ = CompanionStruct_DeleteReplicaAction_{} + +type DeleteReplicaAction_DeleteReplicaAction struct { + RegionName _dafny.Sequence +} + +func (DeleteReplicaAction_DeleteReplicaAction) isDeleteReplicaAction() {} + +func (CompanionStruct_DeleteReplicaAction_) Create_DeleteReplicaAction_(RegionName _dafny.Sequence) DeleteReplicaAction { + return DeleteReplicaAction{DeleteReplicaAction_DeleteReplicaAction{RegionName}} +} + +func (_this DeleteReplicaAction) Is_DeleteReplicaAction() bool { + _, ok := _this.Get_().(DeleteReplicaAction_DeleteReplicaAction) + return ok +} + +func (CompanionStruct_DeleteReplicaAction_) Default() DeleteReplicaAction { + return Companion_DeleteReplicaAction_.Create_DeleteReplicaAction_(_dafny.EmptySeq.SetString()) +} + +func (_this DeleteReplicaAction) Dtor_RegionName() _dafny.Sequence { + return _this.Get_().(DeleteReplicaAction_DeleteReplicaAction).RegionName +} + +func (_this DeleteReplicaAction) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case DeleteReplicaAction_DeleteReplicaAction: + { + return "ComAmazonawsDynamodbTypes.DeleteReplicaAction.DeleteReplicaAction" + "(" + _dafny.String(data.RegionName) + ")" + } + default: + { + return "" + } + } +} + +func (_this DeleteReplicaAction) Equals(other DeleteReplicaAction) bool { + switch data1 := _this.Get_().(type) { + case DeleteReplicaAction_DeleteReplicaAction: + { + data2, ok := other.Get_().(DeleteReplicaAction_DeleteReplicaAction) + return ok && data1.RegionName.Equals(data2.RegionName) + } + default: + { + return false // unexpected + } + } +} + +func (_this DeleteReplicaAction) EqualsGeneric(other interface{}) bool { + typed, ok := other.(DeleteReplicaAction) + return ok && _this.Equals(typed) +} + +func Type_DeleteReplicaAction_() _dafny.TypeDescriptor { + return type_DeleteReplicaAction_{} +} + +type type_DeleteReplicaAction_ struct { +} + +func (_this type_DeleteReplicaAction_) Default() interface{} { + return Companion_DeleteReplicaAction_.Default() +} + +func (_this type_DeleteReplicaAction_) String() string { + return "ComAmazonawsDynamodbTypes.DeleteReplicaAction" +} +func (_this DeleteReplicaAction) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = DeleteReplicaAction{} + +// End of datatype DeleteReplicaAction + +// Definition of datatype DeleteReplicationGroupMemberAction +type DeleteReplicationGroupMemberAction struct { + Data_DeleteReplicationGroupMemberAction_ +} + +func (_this DeleteReplicationGroupMemberAction) Get_() Data_DeleteReplicationGroupMemberAction_ { + return _this.Data_DeleteReplicationGroupMemberAction_ +} + +type Data_DeleteReplicationGroupMemberAction_ interface { + isDeleteReplicationGroupMemberAction() +} + +type CompanionStruct_DeleteReplicationGroupMemberAction_ struct { +} + +var Companion_DeleteReplicationGroupMemberAction_ = CompanionStruct_DeleteReplicationGroupMemberAction_{} + +type DeleteReplicationGroupMemberAction_DeleteReplicationGroupMemberAction struct { + RegionName _dafny.Sequence +} + +func (DeleteReplicationGroupMemberAction_DeleteReplicationGroupMemberAction) isDeleteReplicationGroupMemberAction() { +} + +func (CompanionStruct_DeleteReplicationGroupMemberAction_) Create_DeleteReplicationGroupMemberAction_(RegionName _dafny.Sequence) DeleteReplicationGroupMemberAction { + return DeleteReplicationGroupMemberAction{DeleteReplicationGroupMemberAction_DeleteReplicationGroupMemberAction{RegionName}} +} + +func (_this DeleteReplicationGroupMemberAction) Is_DeleteReplicationGroupMemberAction() bool { + _, ok := _this.Get_().(DeleteReplicationGroupMemberAction_DeleteReplicationGroupMemberAction) + return ok +} + +func (CompanionStruct_DeleteReplicationGroupMemberAction_) Default() DeleteReplicationGroupMemberAction { + return Companion_DeleteReplicationGroupMemberAction_.Create_DeleteReplicationGroupMemberAction_(_dafny.EmptySeq.SetString()) +} + +func (_this DeleteReplicationGroupMemberAction) Dtor_RegionName() _dafny.Sequence { + return _this.Get_().(DeleteReplicationGroupMemberAction_DeleteReplicationGroupMemberAction).RegionName +} + +func (_this DeleteReplicationGroupMemberAction) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case DeleteReplicationGroupMemberAction_DeleteReplicationGroupMemberAction: + { + return "ComAmazonawsDynamodbTypes.DeleteReplicationGroupMemberAction.DeleteReplicationGroupMemberAction" + "(" + _dafny.String(data.RegionName) + ")" + } + default: + { + return "" + } + } +} + +func (_this DeleteReplicationGroupMemberAction) Equals(other DeleteReplicationGroupMemberAction) bool { + switch data1 := _this.Get_().(type) { + case DeleteReplicationGroupMemberAction_DeleteReplicationGroupMemberAction: + { + data2, ok := other.Get_().(DeleteReplicationGroupMemberAction_DeleteReplicationGroupMemberAction) + return ok && data1.RegionName.Equals(data2.RegionName) + } + default: + { + return false // unexpected + } + } +} + +func (_this DeleteReplicationGroupMemberAction) EqualsGeneric(other interface{}) bool { + typed, ok := other.(DeleteReplicationGroupMemberAction) + return ok && _this.Equals(typed) +} + +func Type_DeleteReplicationGroupMemberAction_() _dafny.TypeDescriptor { + return type_DeleteReplicationGroupMemberAction_{} +} + +type type_DeleteReplicationGroupMemberAction_ struct { +} + +func (_this type_DeleteReplicationGroupMemberAction_) Default() interface{} { + return Companion_DeleteReplicationGroupMemberAction_.Default() +} + +func (_this type_DeleteReplicationGroupMemberAction_) String() string { + return "ComAmazonawsDynamodbTypes.DeleteReplicationGroupMemberAction" +} +func (_this DeleteReplicationGroupMemberAction) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = DeleteReplicationGroupMemberAction{} + +// End of datatype DeleteReplicationGroupMemberAction + +// Definition of datatype DeleteRequest +type DeleteRequest struct { + Data_DeleteRequest_ +} + +func (_this DeleteRequest) Get_() Data_DeleteRequest_ { + return _this.Data_DeleteRequest_ +} + +type Data_DeleteRequest_ interface { + isDeleteRequest() +} + +type CompanionStruct_DeleteRequest_ struct { +} + +var Companion_DeleteRequest_ = CompanionStruct_DeleteRequest_{} + +type DeleteRequest_DeleteRequest struct { + Key _dafny.Map +} + +func (DeleteRequest_DeleteRequest) isDeleteRequest() {} + +func (CompanionStruct_DeleteRequest_) Create_DeleteRequest_(Key _dafny.Map) DeleteRequest { + return DeleteRequest{DeleteRequest_DeleteRequest{Key}} +} + +func (_this DeleteRequest) Is_DeleteRequest() bool { + _, ok := _this.Get_().(DeleteRequest_DeleteRequest) + return ok +} + +func (CompanionStruct_DeleteRequest_) Default() DeleteRequest { + return Companion_DeleteRequest_.Create_DeleteRequest_(_dafny.EmptyMap) +} + +func (_this DeleteRequest) Dtor_Key() _dafny.Map { + return _this.Get_().(DeleteRequest_DeleteRequest).Key +} + +func (_this DeleteRequest) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case DeleteRequest_DeleteRequest: + { + return "ComAmazonawsDynamodbTypes.DeleteRequest.DeleteRequest" + "(" + _dafny.String(data.Key) + ")" + } + default: + { + return "" + } + } +} + +func (_this DeleteRequest) Equals(other DeleteRequest) bool { + switch data1 := _this.Get_().(type) { + case DeleteRequest_DeleteRequest: + { + data2, ok := other.Get_().(DeleteRequest_DeleteRequest) + return ok && data1.Key.Equals(data2.Key) + } + default: + { + return false // unexpected + } + } +} + +func (_this DeleteRequest) EqualsGeneric(other interface{}) bool { + typed, ok := other.(DeleteRequest) + return ok && _this.Equals(typed) +} + +func Type_DeleteRequest_() _dafny.TypeDescriptor { + return type_DeleteRequest_{} +} + +type type_DeleteRequest_ struct { +} + +func (_this type_DeleteRequest_) Default() interface{} { + return Companion_DeleteRequest_.Default() +} + +func (_this type_DeleteRequest_) String() string { + return "ComAmazonawsDynamodbTypes.DeleteRequest" +} +func (_this DeleteRequest) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = DeleteRequest{} + +// End of datatype DeleteRequest + +// Definition of datatype DeleteResourcePolicyInput +type DeleteResourcePolicyInput struct { + Data_DeleteResourcePolicyInput_ +} + +func (_this DeleteResourcePolicyInput) Get_() Data_DeleteResourcePolicyInput_ { + return _this.Data_DeleteResourcePolicyInput_ +} + +type Data_DeleteResourcePolicyInput_ interface { + isDeleteResourcePolicyInput() +} + +type CompanionStruct_DeleteResourcePolicyInput_ struct { +} + +var Companion_DeleteResourcePolicyInput_ = CompanionStruct_DeleteResourcePolicyInput_{} + +type DeleteResourcePolicyInput_DeleteResourcePolicyInput struct { + ResourceArn _dafny.Sequence + ExpectedRevisionId m_Wrappers.Option +} + +func (DeleteResourcePolicyInput_DeleteResourcePolicyInput) isDeleteResourcePolicyInput() {} + +func (CompanionStruct_DeleteResourcePolicyInput_) Create_DeleteResourcePolicyInput_(ResourceArn _dafny.Sequence, ExpectedRevisionId m_Wrappers.Option) DeleteResourcePolicyInput { + return DeleteResourcePolicyInput{DeleteResourcePolicyInput_DeleteResourcePolicyInput{ResourceArn, ExpectedRevisionId}} +} + +func (_this DeleteResourcePolicyInput) Is_DeleteResourcePolicyInput() bool { + _, ok := _this.Get_().(DeleteResourcePolicyInput_DeleteResourcePolicyInput) + return ok +} + +func (CompanionStruct_DeleteResourcePolicyInput_) Default() DeleteResourcePolicyInput { + return Companion_DeleteResourcePolicyInput_.Create_DeleteResourcePolicyInput_(_dafny.EmptySeq.SetString(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this DeleteResourcePolicyInput) Dtor_ResourceArn() _dafny.Sequence { + return _this.Get_().(DeleteResourcePolicyInput_DeleteResourcePolicyInput).ResourceArn +} + +func (_this DeleteResourcePolicyInput) Dtor_ExpectedRevisionId() m_Wrappers.Option { + return _this.Get_().(DeleteResourcePolicyInput_DeleteResourcePolicyInput).ExpectedRevisionId +} + +func (_this DeleteResourcePolicyInput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case DeleteResourcePolicyInput_DeleteResourcePolicyInput: + { + return "ComAmazonawsDynamodbTypes.DeleteResourcePolicyInput.DeleteResourcePolicyInput" + "(" + _dafny.String(data.ResourceArn) + ", " + _dafny.String(data.ExpectedRevisionId) + ")" + } + default: + { + return "" + } + } +} + +func (_this DeleteResourcePolicyInput) Equals(other DeleteResourcePolicyInput) bool { + switch data1 := _this.Get_().(type) { + case DeleteResourcePolicyInput_DeleteResourcePolicyInput: + { + data2, ok := other.Get_().(DeleteResourcePolicyInput_DeleteResourcePolicyInput) + return ok && data1.ResourceArn.Equals(data2.ResourceArn) && data1.ExpectedRevisionId.Equals(data2.ExpectedRevisionId) + } + default: + { + return false // unexpected + } + } +} + +func (_this DeleteResourcePolicyInput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(DeleteResourcePolicyInput) + return ok && _this.Equals(typed) +} + +func Type_DeleteResourcePolicyInput_() _dafny.TypeDescriptor { + return type_DeleteResourcePolicyInput_{} +} + +type type_DeleteResourcePolicyInput_ struct { +} + +func (_this type_DeleteResourcePolicyInput_) Default() interface{} { + return Companion_DeleteResourcePolicyInput_.Default() +} + +func (_this type_DeleteResourcePolicyInput_) String() string { + return "ComAmazonawsDynamodbTypes.DeleteResourcePolicyInput" +} +func (_this DeleteResourcePolicyInput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = DeleteResourcePolicyInput{} + +// End of datatype DeleteResourcePolicyInput + +// Definition of datatype DeleteResourcePolicyOutput +type DeleteResourcePolicyOutput struct { + Data_DeleteResourcePolicyOutput_ +} + +func (_this DeleteResourcePolicyOutput) Get_() Data_DeleteResourcePolicyOutput_ { + return _this.Data_DeleteResourcePolicyOutput_ +} + +type Data_DeleteResourcePolicyOutput_ interface { + isDeleteResourcePolicyOutput() +} + +type CompanionStruct_DeleteResourcePolicyOutput_ struct { +} + +var Companion_DeleteResourcePolicyOutput_ = CompanionStruct_DeleteResourcePolicyOutput_{} + +type DeleteResourcePolicyOutput_DeleteResourcePolicyOutput struct { + RevisionId m_Wrappers.Option +} + +func (DeleteResourcePolicyOutput_DeleteResourcePolicyOutput) isDeleteResourcePolicyOutput() {} + +func (CompanionStruct_DeleteResourcePolicyOutput_) Create_DeleteResourcePolicyOutput_(RevisionId m_Wrappers.Option) DeleteResourcePolicyOutput { + return DeleteResourcePolicyOutput{DeleteResourcePolicyOutput_DeleteResourcePolicyOutput{RevisionId}} +} + +func (_this DeleteResourcePolicyOutput) Is_DeleteResourcePolicyOutput() bool { + _, ok := _this.Get_().(DeleteResourcePolicyOutput_DeleteResourcePolicyOutput) + return ok +} + +func (CompanionStruct_DeleteResourcePolicyOutput_) Default() DeleteResourcePolicyOutput { + return Companion_DeleteResourcePolicyOutput_.Create_DeleteResourcePolicyOutput_(m_Wrappers.Companion_Option_.Default()) +} + +func (_this DeleteResourcePolicyOutput) Dtor_RevisionId() m_Wrappers.Option { + return _this.Get_().(DeleteResourcePolicyOutput_DeleteResourcePolicyOutput).RevisionId +} + +func (_this DeleteResourcePolicyOutput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case DeleteResourcePolicyOutput_DeleteResourcePolicyOutput: + { + return "ComAmazonawsDynamodbTypes.DeleteResourcePolicyOutput.DeleteResourcePolicyOutput" + "(" + _dafny.String(data.RevisionId) + ")" + } + default: + { + return "" + } + } +} + +func (_this DeleteResourcePolicyOutput) Equals(other DeleteResourcePolicyOutput) bool { + switch data1 := _this.Get_().(type) { + case DeleteResourcePolicyOutput_DeleteResourcePolicyOutput: + { + data2, ok := other.Get_().(DeleteResourcePolicyOutput_DeleteResourcePolicyOutput) + return ok && data1.RevisionId.Equals(data2.RevisionId) + } + default: + { + return false // unexpected + } + } +} + +func (_this DeleteResourcePolicyOutput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(DeleteResourcePolicyOutput) + return ok && _this.Equals(typed) +} + +func Type_DeleteResourcePolicyOutput_() _dafny.TypeDescriptor { + return type_DeleteResourcePolicyOutput_{} +} + +type type_DeleteResourcePolicyOutput_ struct { +} + +func (_this type_DeleteResourcePolicyOutput_) Default() interface{} { + return Companion_DeleteResourcePolicyOutput_.Default() +} + +func (_this type_DeleteResourcePolicyOutput_) String() string { + return "ComAmazonawsDynamodbTypes.DeleteResourcePolicyOutput" +} +func (_this DeleteResourcePolicyOutput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = DeleteResourcePolicyOutput{} + +// End of datatype DeleteResourcePolicyOutput + +// Definition of datatype DeleteTableInput +type DeleteTableInput struct { + Data_DeleteTableInput_ +} + +func (_this DeleteTableInput) Get_() Data_DeleteTableInput_ { + return _this.Data_DeleteTableInput_ +} + +type Data_DeleteTableInput_ interface { + isDeleteTableInput() +} + +type CompanionStruct_DeleteTableInput_ struct { +} + +var Companion_DeleteTableInput_ = CompanionStruct_DeleteTableInput_{} + +type DeleteTableInput_DeleteTableInput struct { + TableName _dafny.Sequence +} + +func (DeleteTableInput_DeleteTableInput) isDeleteTableInput() {} + +func (CompanionStruct_DeleteTableInput_) Create_DeleteTableInput_(TableName _dafny.Sequence) DeleteTableInput { + return DeleteTableInput{DeleteTableInput_DeleteTableInput{TableName}} +} + +func (_this DeleteTableInput) Is_DeleteTableInput() bool { + _, ok := _this.Get_().(DeleteTableInput_DeleteTableInput) + return ok +} + +func (CompanionStruct_DeleteTableInput_) Default() DeleteTableInput { + return Companion_DeleteTableInput_.Create_DeleteTableInput_(_dafny.EmptySeq.SetString()) +} + +func (_this DeleteTableInput) Dtor_TableName() _dafny.Sequence { + return _this.Get_().(DeleteTableInput_DeleteTableInput).TableName +} + +func (_this DeleteTableInput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case DeleteTableInput_DeleteTableInput: + { + return "ComAmazonawsDynamodbTypes.DeleteTableInput.DeleteTableInput" + "(" + _dafny.String(data.TableName) + ")" + } + default: + { + return "" + } + } +} + +func (_this DeleteTableInput) Equals(other DeleteTableInput) bool { + switch data1 := _this.Get_().(type) { + case DeleteTableInput_DeleteTableInput: + { + data2, ok := other.Get_().(DeleteTableInput_DeleteTableInput) + return ok && data1.TableName.Equals(data2.TableName) + } + default: + { + return false // unexpected + } + } +} + +func (_this DeleteTableInput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(DeleteTableInput) + return ok && _this.Equals(typed) +} + +func Type_DeleteTableInput_() _dafny.TypeDescriptor { + return type_DeleteTableInput_{} +} + +type type_DeleteTableInput_ struct { +} + +func (_this type_DeleteTableInput_) Default() interface{} { + return Companion_DeleteTableInput_.Default() +} + +func (_this type_DeleteTableInput_) String() string { + return "ComAmazonawsDynamodbTypes.DeleteTableInput" +} +func (_this DeleteTableInput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = DeleteTableInput{} + +// End of datatype DeleteTableInput + +// Definition of datatype DeleteTableOutput +type DeleteTableOutput struct { + Data_DeleteTableOutput_ +} + +func (_this DeleteTableOutput) Get_() Data_DeleteTableOutput_ { + return _this.Data_DeleteTableOutput_ +} + +type Data_DeleteTableOutput_ interface { + isDeleteTableOutput() +} + +type CompanionStruct_DeleteTableOutput_ struct { +} + +var Companion_DeleteTableOutput_ = CompanionStruct_DeleteTableOutput_{} + +type DeleteTableOutput_DeleteTableOutput struct { + TableDescription m_Wrappers.Option +} + +func (DeleteTableOutput_DeleteTableOutput) isDeleteTableOutput() {} + +func (CompanionStruct_DeleteTableOutput_) Create_DeleteTableOutput_(TableDescription m_Wrappers.Option) DeleteTableOutput { + return DeleteTableOutput{DeleteTableOutput_DeleteTableOutput{TableDescription}} +} + +func (_this DeleteTableOutput) Is_DeleteTableOutput() bool { + _, ok := _this.Get_().(DeleteTableOutput_DeleteTableOutput) + return ok +} + +func (CompanionStruct_DeleteTableOutput_) Default() DeleteTableOutput { + return Companion_DeleteTableOutput_.Create_DeleteTableOutput_(m_Wrappers.Companion_Option_.Default()) +} + +func (_this DeleteTableOutput) Dtor_TableDescription() m_Wrappers.Option { + return _this.Get_().(DeleteTableOutput_DeleteTableOutput).TableDescription +} + +func (_this DeleteTableOutput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case DeleteTableOutput_DeleteTableOutput: + { + return "ComAmazonawsDynamodbTypes.DeleteTableOutput.DeleteTableOutput" + "(" + _dafny.String(data.TableDescription) + ")" + } + default: + { + return "" + } + } +} + +func (_this DeleteTableOutput) Equals(other DeleteTableOutput) bool { + switch data1 := _this.Get_().(type) { + case DeleteTableOutput_DeleteTableOutput: + { + data2, ok := other.Get_().(DeleteTableOutput_DeleteTableOutput) + return ok && data1.TableDescription.Equals(data2.TableDescription) + } + default: + { + return false // unexpected + } + } +} + +func (_this DeleteTableOutput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(DeleteTableOutput) + return ok && _this.Equals(typed) +} + +func Type_DeleteTableOutput_() _dafny.TypeDescriptor { + return type_DeleteTableOutput_{} +} + +type type_DeleteTableOutput_ struct { +} + +func (_this type_DeleteTableOutput_) Default() interface{} { + return Companion_DeleteTableOutput_.Default() +} + +func (_this type_DeleteTableOutput_) String() string { + return "ComAmazonawsDynamodbTypes.DeleteTableOutput" +} +func (_this DeleteTableOutput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = DeleteTableOutput{} + +// End of datatype DeleteTableOutput + +// Definition of datatype DescribeBackupInput +type DescribeBackupInput struct { + Data_DescribeBackupInput_ +} + +func (_this DescribeBackupInput) Get_() Data_DescribeBackupInput_ { + return _this.Data_DescribeBackupInput_ +} + +type Data_DescribeBackupInput_ interface { + isDescribeBackupInput() +} + +type CompanionStruct_DescribeBackupInput_ struct { +} + +var Companion_DescribeBackupInput_ = CompanionStruct_DescribeBackupInput_{} + +type DescribeBackupInput_DescribeBackupInput struct { + BackupArn _dafny.Sequence +} + +func (DescribeBackupInput_DescribeBackupInput) isDescribeBackupInput() {} + +func (CompanionStruct_DescribeBackupInput_) Create_DescribeBackupInput_(BackupArn _dafny.Sequence) DescribeBackupInput { + return DescribeBackupInput{DescribeBackupInput_DescribeBackupInput{BackupArn}} +} + +func (_this DescribeBackupInput) Is_DescribeBackupInput() bool { + _, ok := _this.Get_().(DescribeBackupInput_DescribeBackupInput) + return ok +} + +func (CompanionStruct_DescribeBackupInput_) Default() DescribeBackupInput { + return Companion_DescribeBackupInput_.Create_DescribeBackupInput_(_dafny.EmptySeq.SetString()) +} + +func (_this DescribeBackupInput) Dtor_BackupArn() _dafny.Sequence { + return _this.Get_().(DescribeBackupInput_DescribeBackupInput).BackupArn +} + +func (_this DescribeBackupInput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case DescribeBackupInput_DescribeBackupInput: + { + return "ComAmazonawsDynamodbTypes.DescribeBackupInput.DescribeBackupInput" + "(" + _dafny.String(data.BackupArn) + ")" + } + default: + { + return "" + } + } +} + +func (_this DescribeBackupInput) Equals(other DescribeBackupInput) bool { + switch data1 := _this.Get_().(type) { + case DescribeBackupInput_DescribeBackupInput: + { + data2, ok := other.Get_().(DescribeBackupInput_DescribeBackupInput) + return ok && data1.BackupArn.Equals(data2.BackupArn) + } + default: + { + return false // unexpected + } + } +} + +func (_this DescribeBackupInput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(DescribeBackupInput) + return ok && _this.Equals(typed) +} + +func Type_DescribeBackupInput_() _dafny.TypeDescriptor { + return type_DescribeBackupInput_{} +} + +type type_DescribeBackupInput_ struct { +} + +func (_this type_DescribeBackupInput_) Default() interface{} { + return Companion_DescribeBackupInput_.Default() +} + +func (_this type_DescribeBackupInput_) String() string { + return "ComAmazonawsDynamodbTypes.DescribeBackupInput" +} +func (_this DescribeBackupInput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = DescribeBackupInput{} + +// End of datatype DescribeBackupInput + +// Definition of datatype DescribeBackupOutput +type DescribeBackupOutput struct { + Data_DescribeBackupOutput_ +} + +func (_this DescribeBackupOutput) Get_() Data_DescribeBackupOutput_ { + return _this.Data_DescribeBackupOutput_ +} + +type Data_DescribeBackupOutput_ interface { + isDescribeBackupOutput() +} + +type CompanionStruct_DescribeBackupOutput_ struct { +} + +var Companion_DescribeBackupOutput_ = CompanionStruct_DescribeBackupOutput_{} + +type DescribeBackupOutput_DescribeBackupOutput struct { + BackupDescription m_Wrappers.Option +} + +func (DescribeBackupOutput_DescribeBackupOutput) isDescribeBackupOutput() {} + +func (CompanionStruct_DescribeBackupOutput_) Create_DescribeBackupOutput_(BackupDescription m_Wrappers.Option) DescribeBackupOutput { + return DescribeBackupOutput{DescribeBackupOutput_DescribeBackupOutput{BackupDescription}} +} + +func (_this DescribeBackupOutput) Is_DescribeBackupOutput() bool { + _, ok := _this.Get_().(DescribeBackupOutput_DescribeBackupOutput) + return ok +} + +func (CompanionStruct_DescribeBackupOutput_) Default() DescribeBackupOutput { + return Companion_DescribeBackupOutput_.Create_DescribeBackupOutput_(m_Wrappers.Companion_Option_.Default()) +} + +func (_this DescribeBackupOutput) Dtor_BackupDescription() m_Wrappers.Option { + return _this.Get_().(DescribeBackupOutput_DescribeBackupOutput).BackupDescription +} + +func (_this DescribeBackupOutput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case DescribeBackupOutput_DescribeBackupOutput: + { + return "ComAmazonawsDynamodbTypes.DescribeBackupOutput.DescribeBackupOutput" + "(" + _dafny.String(data.BackupDescription) + ")" + } + default: + { + return "" + } + } +} + +func (_this DescribeBackupOutput) Equals(other DescribeBackupOutput) bool { + switch data1 := _this.Get_().(type) { + case DescribeBackupOutput_DescribeBackupOutput: + { + data2, ok := other.Get_().(DescribeBackupOutput_DescribeBackupOutput) + return ok && data1.BackupDescription.Equals(data2.BackupDescription) + } + default: + { + return false // unexpected + } + } +} + +func (_this DescribeBackupOutput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(DescribeBackupOutput) + return ok && _this.Equals(typed) +} + +func Type_DescribeBackupOutput_() _dafny.TypeDescriptor { + return type_DescribeBackupOutput_{} +} + +type type_DescribeBackupOutput_ struct { +} + +func (_this type_DescribeBackupOutput_) Default() interface{} { + return Companion_DescribeBackupOutput_.Default() +} + +func (_this type_DescribeBackupOutput_) String() string { + return "ComAmazonawsDynamodbTypes.DescribeBackupOutput" +} +func (_this DescribeBackupOutput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = DescribeBackupOutput{} + +// End of datatype DescribeBackupOutput + +// Definition of datatype DescribeContinuousBackupsInput +type DescribeContinuousBackupsInput struct { + Data_DescribeContinuousBackupsInput_ +} + +func (_this DescribeContinuousBackupsInput) Get_() Data_DescribeContinuousBackupsInput_ { + return _this.Data_DescribeContinuousBackupsInput_ +} + +type Data_DescribeContinuousBackupsInput_ interface { + isDescribeContinuousBackupsInput() +} + +type CompanionStruct_DescribeContinuousBackupsInput_ struct { +} + +var Companion_DescribeContinuousBackupsInput_ = CompanionStruct_DescribeContinuousBackupsInput_{} + +type DescribeContinuousBackupsInput_DescribeContinuousBackupsInput struct { + TableName _dafny.Sequence +} + +func (DescribeContinuousBackupsInput_DescribeContinuousBackupsInput) isDescribeContinuousBackupsInput() { +} + +func (CompanionStruct_DescribeContinuousBackupsInput_) Create_DescribeContinuousBackupsInput_(TableName _dafny.Sequence) DescribeContinuousBackupsInput { + return DescribeContinuousBackupsInput{DescribeContinuousBackupsInput_DescribeContinuousBackupsInput{TableName}} +} + +func (_this DescribeContinuousBackupsInput) Is_DescribeContinuousBackupsInput() bool { + _, ok := _this.Get_().(DescribeContinuousBackupsInput_DescribeContinuousBackupsInput) + return ok +} + +func (CompanionStruct_DescribeContinuousBackupsInput_) Default() DescribeContinuousBackupsInput { + return Companion_DescribeContinuousBackupsInput_.Create_DescribeContinuousBackupsInput_(_dafny.EmptySeq.SetString()) +} + +func (_this DescribeContinuousBackupsInput) Dtor_TableName() _dafny.Sequence { + return _this.Get_().(DescribeContinuousBackupsInput_DescribeContinuousBackupsInput).TableName +} + +func (_this DescribeContinuousBackupsInput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case DescribeContinuousBackupsInput_DescribeContinuousBackupsInput: + { + return "ComAmazonawsDynamodbTypes.DescribeContinuousBackupsInput.DescribeContinuousBackupsInput" + "(" + _dafny.String(data.TableName) + ")" + } + default: + { + return "" + } + } +} + +func (_this DescribeContinuousBackupsInput) Equals(other DescribeContinuousBackupsInput) bool { + switch data1 := _this.Get_().(type) { + case DescribeContinuousBackupsInput_DescribeContinuousBackupsInput: + { + data2, ok := other.Get_().(DescribeContinuousBackupsInput_DescribeContinuousBackupsInput) + return ok && data1.TableName.Equals(data2.TableName) + } + default: + { + return false // unexpected + } + } +} + +func (_this DescribeContinuousBackupsInput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(DescribeContinuousBackupsInput) + return ok && _this.Equals(typed) +} + +func Type_DescribeContinuousBackupsInput_() _dafny.TypeDescriptor { + return type_DescribeContinuousBackupsInput_{} +} + +type type_DescribeContinuousBackupsInput_ struct { +} + +func (_this type_DescribeContinuousBackupsInput_) Default() interface{} { + return Companion_DescribeContinuousBackupsInput_.Default() +} + +func (_this type_DescribeContinuousBackupsInput_) String() string { + return "ComAmazonawsDynamodbTypes.DescribeContinuousBackupsInput" +} +func (_this DescribeContinuousBackupsInput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = DescribeContinuousBackupsInput{} + +// End of datatype DescribeContinuousBackupsInput + +// Definition of datatype DescribeContinuousBackupsOutput +type DescribeContinuousBackupsOutput struct { + Data_DescribeContinuousBackupsOutput_ +} + +func (_this DescribeContinuousBackupsOutput) Get_() Data_DescribeContinuousBackupsOutput_ { + return _this.Data_DescribeContinuousBackupsOutput_ +} + +type Data_DescribeContinuousBackupsOutput_ interface { + isDescribeContinuousBackupsOutput() +} + +type CompanionStruct_DescribeContinuousBackupsOutput_ struct { +} + +var Companion_DescribeContinuousBackupsOutput_ = CompanionStruct_DescribeContinuousBackupsOutput_{} + +type DescribeContinuousBackupsOutput_DescribeContinuousBackupsOutput struct { + ContinuousBackupsDescription m_Wrappers.Option +} + +func (DescribeContinuousBackupsOutput_DescribeContinuousBackupsOutput) isDescribeContinuousBackupsOutput() { +} + +func (CompanionStruct_DescribeContinuousBackupsOutput_) Create_DescribeContinuousBackupsOutput_(ContinuousBackupsDescription m_Wrappers.Option) DescribeContinuousBackupsOutput { + return DescribeContinuousBackupsOutput{DescribeContinuousBackupsOutput_DescribeContinuousBackupsOutput{ContinuousBackupsDescription}} +} + +func (_this DescribeContinuousBackupsOutput) Is_DescribeContinuousBackupsOutput() bool { + _, ok := _this.Get_().(DescribeContinuousBackupsOutput_DescribeContinuousBackupsOutput) + return ok +} + +func (CompanionStruct_DescribeContinuousBackupsOutput_) Default() DescribeContinuousBackupsOutput { + return Companion_DescribeContinuousBackupsOutput_.Create_DescribeContinuousBackupsOutput_(m_Wrappers.Companion_Option_.Default()) +} + +func (_this DescribeContinuousBackupsOutput) Dtor_ContinuousBackupsDescription() m_Wrappers.Option { + return _this.Get_().(DescribeContinuousBackupsOutput_DescribeContinuousBackupsOutput).ContinuousBackupsDescription +} + +func (_this DescribeContinuousBackupsOutput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case DescribeContinuousBackupsOutput_DescribeContinuousBackupsOutput: + { + return "ComAmazonawsDynamodbTypes.DescribeContinuousBackupsOutput.DescribeContinuousBackupsOutput" + "(" + _dafny.String(data.ContinuousBackupsDescription) + ")" + } + default: + { + return "" + } + } +} + +func (_this DescribeContinuousBackupsOutput) Equals(other DescribeContinuousBackupsOutput) bool { + switch data1 := _this.Get_().(type) { + case DescribeContinuousBackupsOutput_DescribeContinuousBackupsOutput: + { + data2, ok := other.Get_().(DescribeContinuousBackupsOutput_DescribeContinuousBackupsOutput) + return ok && data1.ContinuousBackupsDescription.Equals(data2.ContinuousBackupsDescription) + } + default: + { + return false // unexpected + } + } +} + +func (_this DescribeContinuousBackupsOutput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(DescribeContinuousBackupsOutput) + return ok && _this.Equals(typed) +} + +func Type_DescribeContinuousBackupsOutput_() _dafny.TypeDescriptor { + return type_DescribeContinuousBackupsOutput_{} +} + +type type_DescribeContinuousBackupsOutput_ struct { +} + +func (_this type_DescribeContinuousBackupsOutput_) Default() interface{} { + return Companion_DescribeContinuousBackupsOutput_.Default() +} + +func (_this type_DescribeContinuousBackupsOutput_) String() string { + return "ComAmazonawsDynamodbTypes.DescribeContinuousBackupsOutput" +} +func (_this DescribeContinuousBackupsOutput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = DescribeContinuousBackupsOutput{} + +// End of datatype DescribeContinuousBackupsOutput + +// Definition of datatype DescribeContributorInsightsInput +type DescribeContributorInsightsInput struct { + Data_DescribeContributorInsightsInput_ +} + +func (_this DescribeContributorInsightsInput) Get_() Data_DescribeContributorInsightsInput_ { + return _this.Data_DescribeContributorInsightsInput_ +} + +type Data_DescribeContributorInsightsInput_ interface { + isDescribeContributorInsightsInput() +} + +type CompanionStruct_DescribeContributorInsightsInput_ struct { +} + +var Companion_DescribeContributorInsightsInput_ = CompanionStruct_DescribeContributorInsightsInput_{} + +type DescribeContributorInsightsInput_DescribeContributorInsightsInput struct { + TableName _dafny.Sequence + IndexName m_Wrappers.Option +} + +func (DescribeContributorInsightsInput_DescribeContributorInsightsInput) isDescribeContributorInsightsInput() { +} + +func (CompanionStruct_DescribeContributorInsightsInput_) Create_DescribeContributorInsightsInput_(TableName _dafny.Sequence, IndexName m_Wrappers.Option) DescribeContributorInsightsInput { + return DescribeContributorInsightsInput{DescribeContributorInsightsInput_DescribeContributorInsightsInput{TableName, IndexName}} +} + +func (_this DescribeContributorInsightsInput) Is_DescribeContributorInsightsInput() bool { + _, ok := _this.Get_().(DescribeContributorInsightsInput_DescribeContributorInsightsInput) + return ok +} + +func (CompanionStruct_DescribeContributorInsightsInput_) Default() DescribeContributorInsightsInput { + return Companion_DescribeContributorInsightsInput_.Create_DescribeContributorInsightsInput_(_dafny.EmptySeq.SetString(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this DescribeContributorInsightsInput) Dtor_TableName() _dafny.Sequence { + return _this.Get_().(DescribeContributorInsightsInput_DescribeContributorInsightsInput).TableName +} + +func (_this DescribeContributorInsightsInput) Dtor_IndexName() m_Wrappers.Option { + return _this.Get_().(DescribeContributorInsightsInput_DescribeContributorInsightsInput).IndexName +} + +func (_this DescribeContributorInsightsInput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case DescribeContributorInsightsInput_DescribeContributorInsightsInput: + { + return "ComAmazonawsDynamodbTypes.DescribeContributorInsightsInput.DescribeContributorInsightsInput" + "(" + _dafny.String(data.TableName) + ", " + _dafny.String(data.IndexName) + ")" + } + default: + { + return "" + } + } +} + +func (_this DescribeContributorInsightsInput) Equals(other DescribeContributorInsightsInput) bool { + switch data1 := _this.Get_().(type) { + case DescribeContributorInsightsInput_DescribeContributorInsightsInput: + { + data2, ok := other.Get_().(DescribeContributorInsightsInput_DescribeContributorInsightsInput) + return ok && data1.TableName.Equals(data2.TableName) && data1.IndexName.Equals(data2.IndexName) + } + default: + { + return false // unexpected + } + } +} + +func (_this DescribeContributorInsightsInput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(DescribeContributorInsightsInput) + return ok && _this.Equals(typed) +} + +func Type_DescribeContributorInsightsInput_() _dafny.TypeDescriptor { + return type_DescribeContributorInsightsInput_{} +} + +type type_DescribeContributorInsightsInput_ struct { +} + +func (_this type_DescribeContributorInsightsInput_) Default() interface{} { + return Companion_DescribeContributorInsightsInput_.Default() +} + +func (_this type_DescribeContributorInsightsInput_) String() string { + return "ComAmazonawsDynamodbTypes.DescribeContributorInsightsInput" +} +func (_this DescribeContributorInsightsInput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = DescribeContributorInsightsInput{} + +// End of datatype DescribeContributorInsightsInput + +// Definition of datatype DescribeContributorInsightsOutput +type DescribeContributorInsightsOutput struct { + Data_DescribeContributorInsightsOutput_ +} + +func (_this DescribeContributorInsightsOutput) Get_() Data_DescribeContributorInsightsOutput_ { + return _this.Data_DescribeContributorInsightsOutput_ +} + +type Data_DescribeContributorInsightsOutput_ interface { + isDescribeContributorInsightsOutput() +} + +type CompanionStruct_DescribeContributorInsightsOutput_ struct { +} + +var Companion_DescribeContributorInsightsOutput_ = CompanionStruct_DescribeContributorInsightsOutput_{} + +type DescribeContributorInsightsOutput_DescribeContributorInsightsOutput struct { + TableName m_Wrappers.Option + IndexName m_Wrappers.Option + ContributorInsightsRuleList m_Wrappers.Option + ContributorInsightsStatus m_Wrappers.Option + LastUpdateDateTime m_Wrappers.Option + FailureException m_Wrappers.Option +} + +func (DescribeContributorInsightsOutput_DescribeContributorInsightsOutput) isDescribeContributorInsightsOutput() { +} + +func (CompanionStruct_DescribeContributorInsightsOutput_) Create_DescribeContributorInsightsOutput_(TableName m_Wrappers.Option, IndexName m_Wrappers.Option, ContributorInsightsRuleList m_Wrappers.Option, ContributorInsightsStatus m_Wrappers.Option, LastUpdateDateTime m_Wrappers.Option, FailureException m_Wrappers.Option) DescribeContributorInsightsOutput { + return DescribeContributorInsightsOutput{DescribeContributorInsightsOutput_DescribeContributorInsightsOutput{TableName, IndexName, ContributorInsightsRuleList, ContributorInsightsStatus, LastUpdateDateTime, FailureException}} +} + +func (_this DescribeContributorInsightsOutput) Is_DescribeContributorInsightsOutput() bool { + _, ok := _this.Get_().(DescribeContributorInsightsOutput_DescribeContributorInsightsOutput) + return ok +} + +func (CompanionStruct_DescribeContributorInsightsOutput_) Default() DescribeContributorInsightsOutput { + return Companion_DescribeContributorInsightsOutput_.Create_DescribeContributorInsightsOutput_(m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this DescribeContributorInsightsOutput) Dtor_TableName() m_Wrappers.Option { + return _this.Get_().(DescribeContributorInsightsOutput_DescribeContributorInsightsOutput).TableName +} + +func (_this DescribeContributorInsightsOutput) Dtor_IndexName() m_Wrappers.Option { + return _this.Get_().(DescribeContributorInsightsOutput_DescribeContributorInsightsOutput).IndexName +} + +func (_this DescribeContributorInsightsOutput) Dtor_ContributorInsightsRuleList() m_Wrappers.Option { + return _this.Get_().(DescribeContributorInsightsOutput_DescribeContributorInsightsOutput).ContributorInsightsRuleList +} + +func (_this DescribeContributorInsightsOutput) Dtor_ContributorInsightsStatus() m_Wrappers.Option { + return _this.Get_().(DescribeContributorInsightsOutput_DescribeContributorInsightsOutput).ContributorInsightsStatus +} + +func (_this DescribeContributorInsightsOutput) Dtor_LastUpdateDateTime() m_Wrappers.Option { + return _this.Get_().(DescribeContributorInsightsOutput_DescribeContributorInsightsOutput).LastUpdateDateTime +} + +func (_this DescribeContributorInsightsOutput) Dtor_FailureException() m_Wrappers.Option { + return _this.Get_().(DescribeContributorInsightsOutput_DescribeContributorInsightsOutput).FailureException +} + +func (_this DescribeContributorInsightsOutput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case DescribeContributorInsightsOutput_DescribeContributorInsightsOutput: + { + return "ComAmazonawsDynamodbTypes.DescribeContributorInsightsOutput.DescribeContributorInsightsOutput" + "(" + _dafny.String(data.TableName) + ", " + _dafny.String(data.IndexName) + ", " + _dafny.String(data.ContributorInsightsRuleList) + ", " + _dafny.String(data.ContributorInsightsStatus) + ", " + _dafny.String(data.LastUpdateDateTime) + ", " + _dafny.String(data.FailureException) + ")" + } + default: + { + return "" + } + } +} + +func (_this DescribeContributorInsightsOutput) Equals(other DescribeContributorInsightsOutput) bool { + switch data1 := _this.Get_().(type) { + case DescribeContributorInsightsOutput_DescribeContributorInsightsOutput: + { + data2, ok := other.Get_().(DescribeContributorInsightsOutput_DescribeContributorInsightsOutput) + return ok && data1.TableName.Equals(data2.TableName) && data1.IndexName.Equals(data2.IndexName) && data1.ContributorInsightsRuleList.Equals(data2.ContributorInsightsRuleList) && data1.ContributorInsightsStatus.Equals(data2.ContributorInsightsStatus) && data1.LastUpdateDateTime.Equals(data2.LastUpdateDateTime) && data1.FailureException.Equals(data2.FailureException) + } + default: + { + return false // unexpected + } + } +} + +func (_this DescribeContributorInsightsOutput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(DescribeContributorInsightsOutput) + return ok && _this.Equals(typed) +} + +func Type_DescribeContributorInsightsOutput_() _dafny.TypeDescriptor { + return type_DescribeContributorInsightsOutput_{} +} + +type type_DescribeContributorInsightsOutput_ struct { +} + +func (_this type_DescribeContributorInsightsOutput_) Default() interface{} { + return Companion_DescribeContributorInsightsOutput_.Default() +} + +func (_this type_DescribeContributorInsightsOutput_) String() string { + return "ComAmazonawsDynamodbTypes.DescribeContributorInsightsOutput" +} +func (_this DescribeContributorInsightsOutput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = DescribeContributorInsightsOutput{} + +// End of datatype DescribeContributorInsightsOutput + +// Definition of datatype DescribeEndpointsRequest +type DescribeEndpointsRequest struct { + Data_DescribeEndpointsRequest_ +} + +func (_this DescribeEndpointsRequest) Get_() Data_DescribeEndpointsRequest_ { + return _this.Data_DescribeEndpointsRequest_ +} + +type Data_DescribeEndpointsRequest_ interface { + isDescribeEndpointsRequest() +} + +type CompanionStruct_DescribeEndpointsRequest_ struct { +} + +var Companion_DescribeEndpointsRequest_ = CompanionStruct_DescribeEndpointsRequest_{} + +type DescribeEndpointsRequest_DescribeEndpointsRequest struct { +} + +func (DescribeEndpointsRequest_DescribeEndpointsRequest) isDescribeEndpointsRequest() {} + +func (CompanionStruct_DescribeEndpointsRequest_) Create_DescribeEndpointsRequest_() DescribeEndpointsRequest { + return DescribeEndpointsRequest{DescribeEndpointsRequest_DescribeEndpointsRequest{}} +} + +func (_this DescribeEndpointsRequest) Is_DescribeEndpointsRequest() bool { + _, ok := _this.Get_().(DescribeEndpointsRequest_DescribeEndpointsRequest) + return ok +} + +func (CompanionStruct_DescribeEndpointsRequest_) Default() DescribeEndpointsRequest { + return Companion_DescribeEndpointsRequest_.Create_DescribeEndpointsRequest_() +} + +func (_ CompanionStruct_DescribeEndpointsRequest_) AllSingletonConstructors() _dafny.Iterator { + i := -1 + return func() (interface{}, bool) { + i++ + switch i { + case 0: + return Companion_DescribeEndpointsRequest_.Create_DescribeEndpointsRequest_(), true + default: + return DescribeEndpointsRequest{}, false + } + } +} + +func (_this DescribeEndpointsRequest) String() string { + switch _this.Get_().(type) { + case nil: + return "null" + case DescribeEndpointsRequest_DescribeEndpointsRequest: + { + return "ComAmazonawsDynamodbTypes.DescribeEndpointsRequest.DescribeEndpointsRequest" + } + default: + { + return "" + } + } +} + +func (_this DescribeEndpointsRequest) Equals(other DescribeEndpointsRequest) bool { + switch _this.Get_().(type) { + case DescribeEndpointsRequest_DescribeEndpointsRequest: + { + _, ok := other.Get_().(DescribeEndpointsRequest_DescribeEndpointsRequest) + return ok + } + default: + { + return false // unexpected + } + } +} + +func (_this DescribeEndpointsRequest) EqualsGeneric(other interface{}) bool { + typed, ok := other.(DescribeEndpointsRequest) + return ok && _this.Equals(typed) +} + +func Type_DescribeEndpointsRequest_() _dafny.TypeDescriptor { + return type_DescribeEndpointsRequest_{} +} + +type type_DescribeEndpointsRequest_ struct { +} + +func (_this type_DescribeEndpointsRequest_) Default() interface{} { + return Companion_DescribeEndpointsRequest_.Default() +} + +func (_this type_DescribeEndpointsRequest_) String() string { + return "ComAmazonawsDynamodbTypes.DescribeEndpointsRequest" +} +func (_this DescribeEndpointsRequest) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = DescribeEndpointsRequest{} + +// End of datatype DescribeEndpointsRequest + +// Definition of datatype DescribeEndpointsResponse +type DescribeEndpointsResponse struct { + Data_DescribeEndpointsResponse_ +} + +func (_this DescribeEndpointsResponse) Get_() Data_DescribeEndpointsResponse_ { + return _this.Data_DescribeEndpointsResponse_ +} + +type Data_DescribeEndpointsResponse_ interface { + isDescribeEndpointsResponse() +} + +type CompanionStruct_DescribeEndpointsResponse_ struct { +} + +var Companion_DescribeEndpointsResponse_ = CompanionStruct_DescribeEndpointsResponse_{} + +type DescribeEndpointsResponse_DescribeEndpointsResponse struct { + Endpoints _dafny.Sequence +} + +func (DescribeEndpointsResponse_DescribeEndpointsResponse) isDescribeEndpointsResponse() {} + +func (CompanionStruct_DescribeEndpointsResponse_) Create_DescribeEndpointsResponse_(Endpoints _dafny.Sequence) DescribeEndpointsResponse { + return DescribeEndpointsResponse{DescribeEndpointsResponse_DescribeEndpointsResponse{Endpoints}} +} + +func (_this DescribeEndpointsResponse) Is_DescribeEndpointsResponse() bool { + _, ok := _this.Get_().(DescribeEndpointsResponse_DescribeEndpointsResponse) + return ok +} + +func (CompanionStruct_DescribeEndpointsResponse_) Default() DescribeEndpointsResponse { + return Companion_DescribeEndpointsResponse_.Create_DescribeEndpointsResponse_(_dafny.EmptySeq) +} + +func (_this DescribeEndpointsResponse) Dtor_Endpoints() _dafny.Sequence { + return _this.Get_().(DescribeEndpointsResponse_DescribeEndpointsResponse).Endpoints +} + +func (_this DescribeEndpointsResponse) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case DescribeEndpointsResponse_DescribeEndpointsResponse: + { + return "ComAmazonawsDynamodbTypes.DescribeEndpointsResponse.DescribeEndpointsResponse" + "(" + _dafny.String(data.Endpoints) + ")" + } + default: + { + return "" + } + } +} + +func (_this DescribeEndpointsResponse) Equals(other DescribeEndpointsResponse) bool { + switch data1 := _this.Get_().(type) { + case DescribeEndpointsResponse_DescribeEndpointsResponse: + { + data2, ok := other.Get_().(DescribeEndpointsResponse_DescribeEndpointsResponse) + return ok && data1.Endpoints.Equals(data2.Endpoints) + } + default: + { + return false // unexpected + } + } +} + +func (_this DescribeEndpointsResponse) EqualsGeneric(other interface{}) bool { + typed, ok := other.(DescribeEndpointsResponse) + return ok && _this.Equals(typed) +} + +func Type_DescribeEndpointsResponse_() _dafny.TypeDescriptor { + return type_DescribeEndpointsResponse_{} +} + +type type_DescribeEndpointsResponse_ struct { +} + +func (_this type_DescribeEndpointsResponse_) Default() interface{} { + return Companion_DescribeEndpointsResponse_.Default() +} + +func (_this type_DescribeEndpointsResponse_) String() string { + return "ComAmazonawsDynamodbTypes.DescribeEndpointsResponse" +} +func (_this DescribeEndpointsResponse) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = DescribeEndpointsResponse{} + +// End of datatype DescribeEndpointsResponse + +// Definition of datatype DescribeExportInput +type DescribeExportInput struct { + Data_DescribeExportInput_ +} + +func (_this DescribeExportInput) Get_() Data_DescribeExportInput_ { + return _this.Data_DescribeExportInput_ +} + +type Data_DescribeExportInput_ interface { + isDescribeExportInput() +} + +type CompanionStruct_DescribeExportInput_ struct { +} + +var Companion_DescribeExportInput_ = CompanionStruct_DescribeExportInput_{} + +type DescribeExportInput_DescribeExportInput struct { + ExportArn _dafny.Sequence +} + +func (DescribeExportInput_DescribeExportInput) isDescribeExportInput() {} + +func (CompanionStruct_DescribeExportInput_) Create_DescribeExportInput_(ExportArn _dafny.Sequence) DescribeExportInput { + return DescribeExportInput{DescribeExportInput_DescribeExportInput{ExportArn}} +} + +func (_this DescribeExportInput) Is_DescribeExportInput() bool { + _, ok := _this.Get_().(DescribeExportInput_DescribeExportInput) + return ok +} + +func (CompanionStruct_DescribeExportInput_) Default() DescribeExportInput { + return Companion_DescribeExportInput_.Create_DescribeExportInput_(_dafny.EmptySeq.SetString()) +} + +func (_this DescribeExportInput) Dtor_ExportArn() _dafny.Sequence { + return _this.Get_().(DescribeExportInput_DescribeExportInput).ExportArn +} + +func (_this DescribeExportInput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case DescribeExportInput_DescribeExportInput: + { + return "ComAmazonawsDynamodbTypes.DescribeExportInput.DescribeExportInput" + "(" + _dafny.String(data.ExportArn) + ")" + } + default: + { + return "" + } + } +} + +func (_this DescribeExportInput) Equals(other DescribeExportInput) bool { + switch data1 := _this.Get_().(type) { + case DescribeExportInput_DescribeExportInput: + { + data2, ok := other.Get_().(DescribeExportInput_DescribeExportInput) + return ok && data1.ExportArn.Equals(data2.ExportArn) + } + default: + { + return false // unexpected + } + } +} + +func (_this DescribeExportInput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(DescribeExportInput) + return ok && _this.Equals(typed) +} + +func Type_DescribeExportInput_() _dafny.TypeDescriptor { + return type_DescribeExportInput_{} +} + +type type_DescribeExportInput_ struct { +} + +func (_this type_DescribeExportInput_) Default() interface{} { + return Companion_DescribeExportInput_.Default() +} + +func (_this type_DescribeExportInput_) String() string { + return "ComAmazonawsDynamodbTypes.DescribeExportInput" +} +func (_this DescribeExportInput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = DescribeExportInput{} + +// End of datatype DescribeExportInput + +// Definition of datatype DescribeExportOutput +type DescribeExportOutput struct { + Data_DescribeExportOutput_ +} + +func (_this DescribeExportOutput) Get_() Data_DescribeExportOutput_ { + return _this.Data_DescribeExportOutput_ +} + +type Data_DescribeExportOutput_ interface { + isDescribeExportOutput() +} + +type CompanionStruct_DescribeExportOutput_ struct { +} + +var Companion_DescribeExportOutput_ = CompanionStruct_DescribeExportOutput_{} + +type DescribeExportOutput_DescribeExportOutput struct { + ExportDescription m_Wrappers.Option +} + +func (DescribeExportOutput_DescribeExportOutput) isDescribeExportOutput() {} + +func (CompanionStruct_DescribeExportOutput_) Create_DescribeExportOutput_(ExportDescription m_Wrappers.Option) DescribeExportOutput { + return DescribeExportOutput{DescribeExportOutput_DescribeExportOutput{ExportDescription}} +} + +func (_this DescribeExportOutput) Is_DescribeExportOutput() bool { + _, ok := _this.Get_().(DescribeExportOutput_DescribeExportOutput) + return ok +} + +func (CompanionStruct_DescribeExportOutput_) Default() DescribeExportOutput { + return Companion_DescribeExportOutput_.Create_DescribeExportOutput_(m_Wrappers.Companion_Option_.Default()) +} + +func (_this DescribeExportOutput) Dtor_ExportDescription() m_Wrappers.Option { + return _this.Get_().(DescribeExportOutput_DescribeExportOutput).ExportDescription +} + +func (_this DescribeExportOutput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case DescribeExportOutput_DescribeExportOutput: + { + return "ComAmazonawsDynamodbTypes.DescribeExportOutput.DescribeExportOutput" + "(" + _dafny.String(data.ExportDescription) + ")" + } + default: + { + return "" + } + } +} + +func (_this DescribeExportOutput) Equals(other DescribeExportOutput) bool { + switch data1 := _this.Get_().(type) { + case DescribeExportOutput_DescribeExportOutput: + { + data2, ok := other.Get_().(DescribeExportOutput_DescribeExportOutput) + return ok && data1.ExportDescription.Equals(data2.ExportDescription) + } + default: + { + return false // unexpected + } + } +} + +func (_this DescribeExportOutput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(DescribeExportOutput) + return ok && _this.Equals(typed) +} + +func Type_DescribeExportOutput_() _dafny.TypeDescriptor { + return type_DescribeExportOutput_{} +} + +type type_DescribeExportOutput_ struct { +} + +func (_this type_DescribeExportOutput_) Default() interface{} { + return Companion_DescribeExportOutput_.Default() +} + +func (_this type_DescribeExportOutput_) String() string { + return "ComAmazonawsDynamodbTypes.DescribeExportOutput" +} +func (_this DescribeExportOutput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = DescribeExportOutput{} + +// End of datatype DescribeExportOutput + +// Definition of datatype DescribeGlobalTableInput +type DescribeGlobalTableInput struct { + Data_DescribeGlobalTableInput_ +} + +func (_this DescribeGlobalTableInput) Get_() Data_DescribeGlobalTableInput_ { + return _this.Data_DescribeGlobalTableInput_ +} + +type Data_DescribeGlobalTableInput_ interface { + isDescribeGlobalTableInput() +} + +type CompanionStruct_DescribeGlobalTableInput_ struct { +} + +var Companion_DescribeGlobalTableInput_ = CompanionStruct_DescribeGlobalTableInput_{} + +type DescribeGlobalTableInput_DescribeGlobalTableInput struct { + GlobalTableName _dafny.Sequence +} + +func (DescribeGlobalTableInput_DescribeGlobalTableInput) isDescribeGlobalTableInput() {} + +func (CompanionStruct_DescribeGlobalTableInput_) Create_DescribeGlobalTableInput_(GlobalTableName _dafny.Sequence) DescribeGlobalTableInput { + return DescribeGlobalTableInput{DescribeGlobalTableInput_DescribeGlobalTableInput{GlobalTableName}} +} + +func (_this DescribeGlobalTableInput) Is_DescribeGlobalTableInput() bool { + _, ok := _this.Get_().(DescribeGlobalTableInput_DescribeGlobalTableInput) + return ok +} + +func (CompanionStruct_DescribeGlobalTableInput_) Default() DescribeGlobalTableInput { + return Companion_DescribeGlobalTableInput_.Create_DescribeGlobalTableInput_(_dafny.EmptySeq.SetString()) +} + +func (_this DescribeGlobalTableInput) Dtor_GlobalTableName() _dafny.Sequence { + return _this.Get_().(DescribeGlobalTableInput_DescribeGlobalTableInput).GlobalTableName +} + +func (_this DescribeGlobalTableInput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case DescribeGlobalTableInput_DescribeGlobalTableInput: + { + return "ComAmazonawsDynamodbTypes.DescribeGlobalTableInput.DescribeGlobalTableInput" + "(" + _dafny.String(data.GlobalTableName) + ")" + } + default: + { + return "" + } + } +} + +func (_this DescribeGlobalTableInput) Equals(other DescribeGlobalTableInput) bool { + switch data1 := _this.Get_().(type) { + case DescribeGlobalTableInput_DescribeGlobalTableInput: + { + data2, ok := other.Get_().(DescribeGlobalTableInput_DescribeGlobalTableInput) + return ok && data1.GlobalTableName.Equals(data2.GlobalTableName) + } + default: + { + return false // unexpected + } + } +} + +func (_this DescribeGlobalTableInput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(DescribeGlobalTableInput) + return ok && _this.Equals(typed) +} + +func Type_DescribeGlobalTableInput_() _dafny.TypeDescriptor { + return type_DescribeGlobalTableInput_{} +} + +type type_DescribeGlobalTableInput_ struct { +} + +func (_this type_DescribeGlobalTableInput_) Default() interface{} { + return Companion_DescribeGlobalTableInput_.Default() +} + +func (_this type_DescribeGlobalTableInput_) String() string { + return "ComAmazonawsDynamodbTypes.DescribeGlobalTableInput" +} +func (_this DescribeGlobalTableInput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = DescribeGlobalTableInput{} + +// End of datatype DescribeGlobalTableInput + +// Definition of datatype DescribeGlobalTableOutput +type DescribeGlobalTableOutput struct { + Data_DescribeGlobalTableOutput_ +} + +func (_this DescribeGlobalTableOutput) Get_() Data_DescribeGlobalTableOutput_ { + return _this.Data_DescribeGlobalTableOutput_ +} + +type Data_DescribeGlobalTableOutput_ interface { + isDescribeGlobalTableOutput() +} + +type CompanionStruct_DescribeGlobalTableOutput_ struct { +} + +var Companion_DescribeGlobalTableOutput_ = CompanionStruct_DescribeGlobalTableOutput_{} + +type DescribeGlobalTableOutput_DescribeGlobalTableOutput struct { + GlobalTableDescription m_Wrappers.Option +} + +func (DescribeGlobalTableOutput_DescribeGlobalTableOutput) isDescribeGlobalTableOutput() {} + +func (CompanionStruct_DescribeGlobalTableOutput_) Create_DescribeGlobalTableOutput_(GlobalTableDescription m_Wrappers.Option) DescribeGlobalTableOutput { + return DescribeGlobalTableOutput{DescribeGlobalTableOutput_DescribeGlobalTableOutput{GlobalTableDescription}} +} + +func (_this DescribeGlobalTableOutput) Is_DescribeGlobalTableOutput() bool { + _, ok := _this.Get_().(DescribeGlobalTableOutput_DescribeGlobalTableOutput) + return ok +} + +func (CompanionStruct_DescribeGlobalTableOutput_) Default() DescribeGlobalTableOutput { + return Companion_DescribeGlobalTableOutput_.Create_DescribeGlobalTableOutput_(m_Wrappers.Companion_Option_.Default()) +} + +func (_this DescribeGlobalTableOutput) Dtor_GlobalTableDescription() m_Wrappers.Option { + return _this.Get_().(DescribeGlobalTableOutput_DescribeGlobalTableOutput).GlobalTableDescription +} + +func (_this DescribeGlobalTableOutput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case DescribeGlobalTableOutput_DescribeGlobalTableOutput: + { + return "ComAmazonawsDynamodbTypes.DescribeGlobalTableOutput.DescribeGlobalTableOutput" + "(" + _dafny.String(data.GlobalTableDescription) + ")" + } + default: + { + return "" + } + } +} + +func (_this DescribeGlobalTableOutput) Equals(other DescribeGlobalTableOutput) bool { + switch data1 := _this.Get_().(type) { + case DescribeGlobalTableOutput_DescribeGlobalTableOutput: + { + data2, ok := other.Get_().(DescribeGlobalTableOutput_DescribeGlobalTableOutput) + return ok && data1.GlobalTableDescription.Equals(data2.GlobalTableDescription) + } + default: + { + return false // unexpected + } + } +} + +func (_this DescribeGlobalTableOutput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(DescribeGlobalTableOutput) + return ok && _this.Equals(typed) +} + +func Type_DescribeGlobalTableOutput_() _dafny.TypeDescriptor { + return type_DescribeGlobalTableOutput_{} +} + +type type_DescribeGlobalTableOutput_ struct { +} + +func (_this type_DescribeGlobalTableOutput_) Default() interface{} { + return Companion_DescribeGlobalTableOutput_.Default() +} + +func (_this type_DescribeGlobalTableOutput_) String() string { + return "ComAmazonawsDynamodbTypes.DescribeGlobalTableOutput" +} +func (_this DescribeGlobalTableOutput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = DescribeGlobalTableOutput{} + +// End of datatype DescribeGlobalTableOutput + +// Definition of datatype DescribeGlobalTableSettingsInput +type DescribeGlobalTableSettingsInput struct { + Data_DescribeGlobalTableSettingsInput_ +} + +func (_this DescribeGlobalTableSettingsInput) Get_() Data_DescribeGlobalTableSettingsInput_ { + return _this.Data_DescribeGlobalTableSettingsInput_ +} + +type Data_DescribeGlobalTableSettingsInput_ interface { + isDescribeGlobalTableSettingsInput() +} + +type CompanionStruct_DescribeGlobalTableSettingsInput_ struct { +} + +var Companion_DescribeGlobalTableSettingsInput_ = CompanionStruct_DescribeGlobalTableSettingsInput_{} + +type DescribeGlobalTableSettingsInput_DescribeGlobalTableSettingsInput struct { + GlobalTableName _dafny.Sequence +} + +func (DescribeGlobalTableSettingsInput_DescribeGlobalTableSettingsInput) isDescribeGlobalTableSettingsInput() { +} + +func (CompanionStruct_DescribeGlobalTableSettingsInput_) Create_DescribeGlobalTableSettingsInput_(GlobalTableName _dafny.Sequence) DescribeGlobalTableSettingsInput { + return DescribeGlobalTableSettingsInput{DescribeGlobalTableSettingsInput_DescribeGlobalTableSettingsInput{GlobalTableName}} +} + +func (_this DescribeGlobalTableSettingsInput) Is_DescribeGlobalTableSettingsInput() bool { + _, ok := _this.Get_().(DescribeGlobalTableSettingsInput_DescribeGlobalTableSettingsInput) + return ok +} + +func (CompanionStruct_DescribeGlobalTableSettingsInput_) Default() DescribeGlobalTableSettingsInput { + return Companion_DescribeGlobalTableSettingsInput_.Create_DescribeGlobalTableSettingsInput_(_dafny.EmptySeq.SetString()) +} + +func (_this DescribeGlobalTableSettingsInput) Dtor_GlobalTableName() _dafny.Sequence { + return _this.Get_().(DescribeGlobalTableSettingsInput_DescribeGlobalTableSettingsInput).GlobalTableName +} + +func (_this DescribeGlobalTableSettingsInput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case DescribeGlobalTableSettingsInput_DescribeGlobalTableSettingsInput: + { + return "ComAmazonawsDynamodbTypes.DescribeGlobalTableSettingsInput.DescribeGlobalTableSettingsInput" + "(" + _dafny.String(data.GlobalTableName) + ")" + } + default: + { + return "" + } + } +} + +func (_this DescribeGlobalTableSettingsInput) Equals(other DescribeGlobalTableSettingsInput) bool { + switch data1 := _this.Get_().(type) { + case DescribeGlobalTableSettingsInput_DescribeGlobalTableSettingsInput: + { + data2, ok := other.Get_().(DescribeGlobalTableSettingsInput_DescribeGlobalTableSettingsInput) + return ok && data1.GlobalTableName.Equals(data2.GlobalTableName) + } + default: + { + return false // unexpected + } + } +} + +func (_this DescribeGlobalTableSettingsInput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(DescribeGlobalTableSettingsInput) + return ok && _this.Equals(typed) +} + +func Type_DescribeGlobalTableSettingsInput_() _dafny.TypeDescriptor { + return type_DescribeGlobalTableSettingsInput_{} +} + +type type_DescribeGlobalTableSettingsInput_ struct { +} + +func (_this type_DescribeGlobalTableSettingsInput_) Default() interface{} { + return Companion_DescribeGlobalTableSettingsInput_.Default() +} + +func (_this type_DescribeGlobalTableSettingsInput_) String() string { + return "ComAmazonawsDynamodbTypes.DescribeGlobalTableSettingsInput" +} +func (_this DescribeGlobalTableSettingsInput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = DescribeGlobalTableSettingsInput{} + +// End of datatype DescribeGlobalTableSettingsInput + +// Definition of datatype DescribeGlobalTableSettingsOutput +type DescribeGlobalTableSettingsOutput struct { + Data_DescribeGlobalTableSettingsOutput_ +} + +func (_this DescribeGlobalTableSettingsOutput) Get_() Data_DescribeGlobalTableSettingsOutput_ { + return _this.Data_DescribeGlobalTableSettingsOutput_ +} + +type Data_DescribeGlobalTableSettingsOutput_ interface { + isDescribeGlobalTableSettingsOutput() +} + +type CompanionStruct_DescribeGlobalTableSettingsOutput_ struct { +} + +var Companion_DescribeGlobalTableSettingsOutput_ = CompanionStruct_DescribeGlobalTableSettingsOutput_{} + +type DescribeGlobalTableSettingsOutput_DescribeGlobalTableSettingsOutput struct { + GlobalTableName m_Wrappers.Option + ReplicaSettings m_Wrappers.Option +} + +func (DescribeGlobalTableSettingsOutput_DescribeGlobalTableSettingsOutput) isDescribeGlobalTableSettingsOutput() { +} + +func (CompanionStruct_DescribeGlobalTableSettingsOutput_) Create_DescribeGlobalTableSettingsOutput_(GlobalTableName m_Wrappers.Option, ReplicaSettings m_Wrappers.Option) DescribeGlobalTableSettingsOutput { + return DescribeGlobalTableSettingsOutput{DescribeGlobalTableSettingsOutput_DescribeGlobalTableSettingsOutput{GlobalTableName, ReplicaSettings}} +} + +func (_this DescribeGlobalTableSettingsOutput) Is_DescribeGlobalTableSettingsOutput() bool { + _, ok := _this.Get_().(DescribeGlobalTableSettingsOutput_DescribeGlobalTableSettingsOutput) + return ok +} + +func (CompanionStruct_DescribeGlobalTableSettingsOutput_) Default() DescribeGlobalTableSettingsOutput { + return Companion_DescribeGlobalTableSettingsOutput_.Create_DescribeGlobalTableSettingsOutput_(m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this DescribeGlobalTableSettingsOutput) Dtor_GlobalTableName() m_Wrappers.Option { + return _this.Get_().(DescribeGlobalTableSettingsOutput_DescribeGlobalTableSettingsOutput).GlobalTableName +} + +func (_this DescribeGlobalTableSettingsOutput) Dtor_ReplicaSettings() m_Wrappers.Option { + return _this.Get_().(DescribeGlobalTableSettingsOutput_DescribeGlobalTableSettingsOutput).ReplicaSettings +} + +func (_this DescribeGlobalTableSettingsOutput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case DescribeGlobalTableSettingsOutput_DescribeGlobalTableSettingsOutput: + { + return "ComAmazonawsDynamodbTypes.DescribeGlobalTableSettingsOutput.DescribeGlobalTableSettingsOutput" + "(" + _dafny.String(data.GlobalTableName) + ", " + _dafny.String(data.ReplicaSettings) + ")" + } + default: + { + return "" + } + } +} + +func (_this DescribeGlobalTableSettingsOutput) Equals(other DescribeGlobalTableSettingsOutput) bool { + switch data1 := _this.Get_().(type) { + case DescribeGlobalTableSettingsOutput_DescribeGlobalTableSettingsOutput: + { + data2, ok := other.Get_().(DescribeGlobalTableSettingsOutput_DescribeGlobalTableSettingsOutput) + return ok && data1.GlobalTableName.Equals(data2.GlobalTableName) && data1.ReplicaSettings.Equals(data2.ReplicaSettings) + } + default: + { + return false // unexpected + } + } +} + +func (_this DescribeGlobalTableSettingsOutput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(DescribeGlobalTableSettingsOutput) + return ok && _this.Equals(typed) +} + +func Type_DescribeGlobalTableSettingsOutput_() _dafny.TypeDescriptor { + return type_DescribeGlobalTableSettingsOutput_{} +} + +type type_DescribeGlobalTableSettingsOutput_ struct { +} + +func (_this type_DescribeGlobalTableSettingsOutput_) Default() interface{} { + return Companion_DescribeGlobalTableSettingsOutput_.Default() +} + +func (_this type_DescribeGlobalTableSettingsOutput_) String() string { + return "ComAmazonawsDynamodbTypes.DescribeGlobalTableSettingsOutput" +} +func (_this DescribeGlobalTableSettingsOutput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = DescribeGlobalTableSettingsOutput{} + +// End of datatype DescribeGlobalTableSettingsOutput + +// Definition of datatype DescribeImportInput +type DescribeImportInput struct { + Data_DescribeImportInput_ +} + +func (_this DescribeImportInput) Get_() Data_DescribeImportInput_ { + return _this.Data_DescribeImportInput_ +} + +type Data_DescribeImportInput_ interface { + isDescribeImportInput() +} + +type CompanionStruct_DescribeImportInput_ struct { +} + +var Companion_DescribeImportInput_ = CompanionStruct_DescribeImportInput_{} + +type DescribeImportInput_DescribeImportInput struct { + ImportArn _dafny.Sequence +} + +func (DescribeImportInput_DescribeImportInput) isDescribeImportInput() {} + +func (CompanionStruct_DescribeImportInput_) Create_DescribeImportInput_(ImportArn _dafny.Sequence) DescribeImportInput { + return DescribeImportInput{DescribeImportInput_DescribeImportInput{ImportArn}} +} + +func (_this DescribeImportInput) Is_DescribeImportInput() bool { + _, ok := _this.Get_().(DescribeImportInput_DescribeImportInput) + return ok +} + +func (CompanionStruct_DescribeImportInput_) Default() DescribeImportInput { + return Companion_DescribeImportInput_.Create_DescribeImportInput_(_dafny.EmptySeq.SetString()) +} + +func (_this DescribeImportInput) Dtor_ImportArn() _dafny.Sequence { + return _this.Get_().(DescribeImportInput_DescribeImportInput).ImportArn +} + +func (_this DescribeImportInput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case DescribeImportInput_DescribeImportInput: + { + return "ComAmazonawsDynamodbTypes.DescribeImportInput.DescribeImportInput" + "(" + _dafny.String(data.ImportArn) + ")" + } + default: + { + return "" + } + } +} + +func (_this DescribeImportInput) Equals(other DescribeImportInput) bool { + switch data1 := _this.Get_().(type) { + case DescribeImportInput_DescribeImportInput: + { + data2, ok := other.Get_().(DescribeImportInput_DescribeImportInput) + return ok && data1.ImportArn.Equals(data2.ImportArn) + } + default: + { + return false // unexpected + } + } +} + +func (_this DescribeImportInput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(DescribeImportInput) + return ok && _this.Equals(typed) +} + +func Type_DescribeImportInput_() _dafny.TypeDescriptor { + return type_DescribeImportInput_{} +} + +type type_DescribeImportInput_ struct { +} + +func (_this type_DescribeImportInput_) Default() interface{} { + return Companion_DescribeImportInput_.Default() +} + +func (_this type_DescribeImportInput_) String() string { + return "ComAmazonawsDynamodbTypes.DescribeImportInput" +} +func (_this DescribeImportInput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = DescribeImportInput{} + +// End of datatype DescribeImportInput + +// Definition of datatype DescribeImportOutput +type DescribeImportOutput struct { + Data_DescribeImportOutput_ +} + +func (_this DescribeImportOutput) Get_() Data_DescribeImportOutput_ { + return _this.Data_DescribeImportOutput_ +} + +type Data_DescribeImportOutput_ interface { + isDescribeImportOutput() +} + +type CompanionStruct_DescribeImportOutput_ struct { +} + +var Companion_DescribeImportOutput_ = CompanionStruct_DescribeImportOutput_{} + +type DescribeImportOutput_DescribeImportOutput struct { + ImportTableDescription ImportTableDescription +} + +func (DescribeImportOutput_DescribeImportOutput) isDescribeImportOutput() {} + +func (CompanionStruct_DescribeImportOutput_) Create_DescribeImportOutput_(ImportTableDescription ImportTableDescription) DescribeImportOutput { + return DescribeImportOutput{DescribeImportOutput_DescribeImportOutput{ImportTableDescription}} +} + +func (_this DescribeImportOutput) Is_DescribeImportOutput() bool { + _, ok := _this.Get_().(DescribeImportOutput_DescribeImportOutput) + return ok +} + +func (CompanionStruct_DescribeImportOutput_) Default() DescribeImportOutput { + return Companion_DescribeImportOutput_.Create_DescribeImportOutput_(Companion_ImportTableDescription_.Default()) +} + +func (_this DescribeImportOutput) Dtor_ImportTableDescription() ImportTableDescription { + return _this.Get_().(DescribeImportOutput_DescribeImportOutput).ImportTableDescription +} + +func (_this DescribeImportOutput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case DescribeImportOutput_DescribeImportOutput: + { + return "ComAmazonawsDynamodbTypes.DescribeImportOutput.DescribeImportOutput" + "(" + _dafny.String(data.ImportTableDescription) + ")" + } + default: + { + return "" + } + } +} + +func (_this DescribeImportOutput) Equals(other DescribeImportOutput) bool { + switch data1 := _this.Get_().(type) { + case DescribeImportOutput_DescribeImportOutput: + { + data2, ok := other.Get_().(DescribeImportOutput_DescribeImportOutput) + return ok && data1.ImportTableDescription.Equals(data2.ImportTableDescription) + } + default: + { + return false // unexpected + } + } +} + +func (_this DescribeImportOutput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(DescribeImportOutput) + return ok && _this.Equals(typed) +} + +func Type_DescribeImportOutput_() _dafny.TypeDescriptor { + return type_DescribeImportOutput_{} +} + +type type_DescribeImportOutput_ struct { +} + +func (_this type_DescribeImportOutput_) Default() interface{} { + return Companion_DescribeImportOutput_.Default() +} + +func (_this type_DescribeImportOutput_) String() string { + return "ComAmazonawsDynamodbTypes.DescribeImportOutput" +} +func (_this DescribeImportOutput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = DescribeImportOutput{} + +// End of datatype DescribeImportOutput + +// Definition of datatype DescribeKinesisStreamingDestinationInput +type DescribeKinesisStreamingDestinationInput struct { + Data_DescribeKinesisStreamingDestinationInput_ +} + +func (_this DescribeKinesisStreamingDestinationInput) Get_() Data_DescribeKinesisStreamingDestinationInput_ { + return _this.Data_DescribeKinesisStreamingDestinationInput_ +} + +type Data_DescribeKinesisStreamingDestinationInput_ interface { + isDescribeKinesisStreamingDestinationInput() +} + +type CompanionStruct_DescribeKinesisStreamingDestinationInput_ struct { +} + +var Companion_DescribeKinesisStreamingDestinationInput_ = CompanionStruct_DescribeKinesisStreamingDestinationInput_{} + +type DescribeKinesisStreamingDestinationInput_DescribeKinesisStreamingDestinationInput struct { + TableName _dafny.Sequence +} + +func (DescribeKinesisStreamingDestinationInput_DescribeKinesisStreamingDestinationInput) isDescribeKinesisStreamingDestinationInput() { +} + +func (CompanionStruct_DescribeKinesisStreamingDestinationInput_) Create_DescribeKinesisStreamingDestinationInput_(TableName _dafny.Sequence) DescribeKinesisStreamingDestinationInput { + return DescribeKinesisStreamingDestinationInput{DescribeKinesisStreamingDestinationInput_DescribeKinesisStreamingDestinationInput{TableName}} +} + +func (_this DescribeKinesisStreamingDestinationInput) Is_DescribeKinesisStreamingDestinationInput() bool { + _, ok := _this.Get_().(DescribeKinesisStreamingDestinationInput_DescribeKinesisStreamingDestinationInput) + return ok +} + +func (CompanionStruct_DescribeKinesisStreamingDestinationInput_) Default() DescribeKinesisStreamingDestinationInput { + return Companion_DescribeKinesisStreamingDestinationInput_.Create_DescribeKinesisStreamingDestinationInput_(_dafny.EmptySeq.SetString()) +} + +func (_this DescribeKinesisStreamingDestinationInput) Dtor_TableName() _dafny.Sequence { + return _this.Get_().(DescribeKinesisStreamingDestinationInput_DescribeKinesisStreamingDestinationInput).TableName +} + +func (_this DescribeKinesisStreamingDestinationInput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case DescribeKinesisStreamingDestinationInput_DescribeKinesisStreamingDestinationInput: + { + return "ComAmazonawsDynamodbTypes.DescribeKinesisStreamingDestinationInput.DescribeKinesisStreamingDestinationInput" + "(" + _dafny.String(data.TableName) + ")" + } + default: + { + return "" + } + } +} + +func (_this DescribeKinesisStreamingDestinationInput) Equals(other DescribeKinesisStreamingDestinationInput) bool { + switch data1 := _this.Get_().(type) { + case DescribeKinesisStreamingDestinationInput_DescribeKinesisStreamingDestinationInput: + { + data2, ok := other.Get_().(DescribeKinesisStreamingDestinationInput_DescribeKinesisStreamingDestinationInput) + return ok && data1.TableName.Equals(data2.TableName) + } + default: + { + return false // unexpected + } + } +} + +func (_this DescribeKinesisStreamingDestinationInput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(DescribeKinesisStreamingDestinationInput) + return ok && _this.Equals(typed) +} + +func Type_DescribeKinesisStreamingDestinationInput_() _dafny.TypeDescriptor { + return type_DescribeKinesisStreamingDestinationInput_{} +} + +type type_DescribeKinesisStreamingDestinationInput_ struct { +} + +func (_this type_DescribeKinesisStreamingDestinationInput_) Default() interface{} { + return Companion_DescribeKinesisStreamingDestinationInput_.Default() +} + +func (_this type_DescribeKinesisStreamingDestinationInput_) String() string { + return "ComAmazonawsDynamodbTypes.DescribeKinesisStreamingDestinationInput" +} +func (_this DescribeKinesisStreamingDestinationInput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = DescribeKinesisStreamingDestinationInput{} + +// End of datatype DescribeKinesisStreamingDestinationInput + +// Definition of datatype DescribeKinesisStreamingDestinationOutput +type DescribeKinesisStreamingDestinationOutput struct { + Data_DescribeKinesisStreamingDestinationOutput_ +} + +func (_this DescribeKinesisStreamingDestinationOutput) Get_() Data_DescribeKinesisStreamingDestinationOutput_ { + return _this.Data_DescribeKinesisStreamingDestinationOutput_ +} + +type Data_DescribeKinesisStreamingDestinationOutput_ interface { + isDescribeKinesisStreamingDestinationOutput() +} + +type CompanionStruct_DescribeKinesisStreamingDestinationOutput_ struct { +} + +var Companion_DescribeKinesisStreamingDestinationOutput_ = CompanionStruct_DescribeKinesisStreamingDestinationOutput_{} + +type DescribeKinesisStreamingDestinationOutput_DescribeKinesisStreamingDestinationOutput struct { + TableName m_Wrappers.Option + KinesisDataStreamDestinations m_Wrappers.Option +} + +func (DescribeKinesisStreamingDestinationOutput_DescribeKinesisStreamingDestinationOutput) isDescribeKinesisStreamingDestinationOutput() { +} + +func (CompanionStruct_DescribeKinesisStreamingDestinationOutput_) Create_DescribeKinesisStreamingDestinationOutput_(TableName m_Wrappers.Option, KinesisDataStreamDestinations m_Wrappers.Option) DescribeKinesisStreamingDestinationOutput { + return DescribeKinesisStreamingDestinationOutput{DescribeKinesisStreamingDestinationOutput_DescribeKinesisStreamingDestinationOutput{TableName, KinesisDataStreamDestinations}} +} + +func (_this DescribeKinesisStreamingDestinationOutput) Is_DescribeKinesisStreamingDestinationOutput() bool { + _, ok := _this.Get_().(DescribeKinesisStreamingDestinationOutput_DescribeKinesisStreamingDestinationOutput) + return ok +} + +func (CompanionStruct_DescribeKinesisStreamingDestinationOutput_) Default() DescribeKinesisStreamingDestinationOutput { + return Companion_DescribeKinesisStreamingDestinationOutput_.Create_DescribeKinesisStreamingDestinationOutput_(m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this DescribeKinesisStreamingDestinationOutput) Dtor_TableName() m_Wrappers.Option { + return _this.Get_().(DescribeKinesisStreamingDestinationOutput_DescribeKinesisStreamingDestinationOutput).TableName +} + +func (_this DescribeKinesisStreamingDestinationOutput) Dtor_KinesisDataStreamDestinations() m_Wrappers.Option { + return _this.Get_().(DescribeKinesisStreamingDestinationOutput_DescribeKinesisStreamingDestinationOutput).KinesisDataStreamDestinations +} + +func (_this DescribeKinesisStreamingDestinationOutput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case DescribeKinesisStreamingDestinationOutput_DescribeKinesisStreamingDestinationOutput: + { + return "ComAmazonawsDynamodbTypes.DescribeKinesisStreamingDestinationOutput.DescribeKinesisStreamingDestinationOutput" + "(" + _dafny.String(data.TableName) + ", " + _dafny.String(data.KinesisDataStreamDestinations) + ")" + } + default: + { + return "" + } + } +} + +func (_this DescribeKinesisStreamingDestinationOutput) Equals(other DescribeKinesisStreamingDestinationOutput) bool { + switch data1 := _this.Get_().(type) { + case DescribeKinesisStreamingDestinationOutput_DescribeKinesisStreamingDestinationOutput: + { + data2, ok := other.Get_().(DescribeKinesisStreamingDestinationOutput_DescribeKinesisStreamingDestinationOutput) + return ok && data1.TableName.Equals(data2.TableName) && data1.KinesisDataStreamDestinations.Equals(data2.KinesisDataStreamDestinations) + } + default: + { + return false // unexpected + } + } +} + +func (_this DescribeKinesisStreamingDestinationOutput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(DescribeKinesisStreamingDestinationOutput) + return ok && _this.Equals(typed) +} + +func Type_DescribeKinesisStreamingDestinationOutput_() _dafny.TypeDescriptor { + return type_DescribeKinesisStreamingDestinationOutput_{} +} + +type type_DescribeKinesisStreamingDestinationOutput_ struct { +} + +func (_this type_DescribeKinesisStreamingDestinationOutput_) Default() interface{} { + return Companion_DescribeKinesisStreamingDestinationOutput_.Default() +} + +func (_this type_DescribeKinesisStreamingDestinationOutput_) String() string { + return "ComAmazonawsDynamodbTypes.DescribeKinesisStreamingDestinationOutput" +} +func (_this DescribeKinesisStreamingDestinationOutput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = DescribeKinesisStreamingDestinationOutput{} + +// End of datatype DescribeKinesisStreamingDestinationOutput + +// Definition of datatype DescribeLimitsInput +type DescribeLimitsInput struct { + Data_DescribeLimitsInput_ +} + +func (_this DescribeLimitsInput) Get_() Data_DescribeLimitsInput_ { + return _this.Data_DescribeLimitsInput_ +} + +type Data_DescribeLimitsInput_ interface { + isDescribeLimitsInput() +} + +type CompanionStruct_DescribeLimitsInput_ struct { +} + +var Companion_DescribeLimitsInput_ = CompanionStruct_DescribeLimitsInput_{} + +type DescribeLimitsInput_DescribeLimitsInput struct { +} + +func (DescribeLimitsInput_DescribeLimitsInput) isDescribeLimitsInput() {} + +func (CompanionStruct_DescribeLimitsInput_) Create_DescribeLimitsInput_() DescribeLimitsInput { + return DescribeLimitsInput{DescribeLimitsInput_DescribeLimitsInput{}} +} + +func (_this DescribeLimitsInput) Is_DescribeLimitsInput() bool { + _, ok := _this.Get_().(DescribeLimitsInput_DescribeLimitsInput) + return ok +} + +func (CompanionStruct_DescribeLimitsInput_) Default() DescribeLimitsInput { + return Companion_DescribeLimitsInput_.Create_DescribeLimitsInput_() +} + +func (_ CompanionStruct_DescribeLimitsInput_) AllSingletonConstructors() _dafny.Iterator { + i := -1 + return func() (interface{}, bool) { + i++ + switch i { + case 0: + return Companion_DescribeLimitsInput_.Create_DescribeLimitsInput_(), true + default: + return DescribeLimitsInput{}, false + } + } +} + +func (_this DescribeLimitsInput) String() string { + switch _this.Get_().(type) { + case nil: + return "null" + case DescribeLimitsInput_DescribeLimitsInput: + { + return "ComAmazonawsDynamodbTypes.DescribeLimitsInput.DescribeLimitsInput" + } + default: + { + return "" + } + } +} + +func (_this DescribeLimitsInput) Equals(other DescribeLimitsInput) bool { + switch _this.Get_().(type) { + case DescribeLimitsInput_DescribeLimitsInput: + { + _, ok := other.Get_().(DescribeLimitsInput_DescribeLimitsInput) + return ok + } + default: + { + return false // unexpected + } + } +} + +func (_this DescribeLimitsInput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(DescribeLimitsInput) + return ok && _this.Equals(typed) +} + +func Type_DescribeLimitsInput_() _dafny.TypeDescriptor { + return type_DescribeLimitsInput_{} +} + +type type_DescribeLimitsInput_ struct { +} + +func (_this type_DescribeLimitsInput_) Default() interface{} { + return Companion_DescribeLimitsInput_.Default() +} + +func (_this type_DescribeLimitsInput_) String() string { + return "ComAmazonawsDynamodbTypes.DescribeLimitsInput" +} +func (_this DescribeLimitsInput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = DescribeLimitsInput{} + +// End of datatype DescribeLimitsInput + +// Definition of datatype DescribeLimitsOutput +type DescribeLimitsOutput struct { + Data_DescribeLimitsOutput_ +} + +func (_this DescribeLimitsOutput) Get_() Data_DescribeLimitsOutput_ { + return _this.Data_DescribeLimitsOutput_ +} + +type Data_DescribeLimitsOutput_ interface { + isDescribeLimitsOutput() +} + +type CompanionStruct_DescribeLimitsOutput_ struct { +} + +var Companion_DescribeLimitsOutput_ = CompanionStruct_DescribeLimitsOutput_{} + +type DescribeLimitsOutput_DescribeLimitsOutput struct { + AccountMaxReadCapacityUnits m_Wrappers.Option + AccountMaxWriteCapacityUnits m_Wrappers.Option + TableMaxReadCapacityUnits m_Wrappers.Option + TableMaxWriteCapacityUnits m_Wrappers.Option +} + +func (DescribeLimitsOutput_DescribeLimitsOutput) isDescribeLimitsOutput() {} + +func (CompanionStruct_DescribeLimitsOutput_) Create_DescribeLimitsOutput_(AccountMaxReadCapacityUnits m_Wrappers.Option, AccountMaxWriteCapacityUnits m_Wrappers.Option, TableMaxReadCapacityUnits m_Wrappers.Option, TableMaxWriteCapacityUnits m_Wrappers.Option) DescribeLimitsOutput { + return DescribeLimitsOutput{DescribeLimitsOutput_DescribeLimitsOutput{AccountMaxReadCapacityUnits, AccountMaxWriteCapacityUnits, TableMaxReadCapacityUnits, TableMaxWriteCapacityUnits}} +} + +func (_this DescribeLimitsOutput) Is_DescribeLimitsOutput() bool { + _, ok := _this.Get_().(DescribeLimitsOutput_DescribeLimitsOutput) + return ok +} + +func (CompanionStruct_DescribeLimitsOutput_) Default() DescribeLimitsOutput { + return Companion_DescribeLimitsOutput_.Create_DescribeLimitsOutput_(m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this DescribeLimitsOutput) Dtor_AccountMaxReadCapacityUnits() m_Wrappers.Option { + return _this.Get_().(DescribeLimitsOutput_DescribeLimitsOutput).AccountMaxReadCapacityUnits +} + +func (_this DescribeLimitsOutput) Dtor_AccountMaxWriteCapacityUnits() m_Wrappers.Option { + return _this.Get_().(DescribeLimitsOutput_DescribeLimitsOutput).AccountMaxWriteCapacityUnits +} + +func (_this DescribeLimitsOutput) Dtor_TableMaxReadCapacityUnits() m_Wrappers.Option { + return _this.Get_().(DescribeLimitsOutput_DescribeLimitsOutput).TableMaxReadCapacityUnits +} + +func (_this DescribeLimitsOutput) Dtor_TableMaxWriteCapacityUnits() m_Wrappers.Option { + return _this.Get_().(DescribeLimitsOutput_DescribeLimitsOutput).TableMaxWriteCapacityUnits +} + +func (_this DescribeLimitsOutput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case DescribeLimitsOutput_DescribeLimitsOutput: + { + return "ComAmazonawsDynamodbTypes.DescribeLimitsOutput.DescribeLimitsOutput" + "(" + _dafny.String(data.AccountMaxReadCapacityUnits) + ", " + _dafny.String(data.AccountMaxWriteCapacityUnits) + ", " + _dafny.String(data.TableMaxReadCapacityUnits) + ", " + _dafny.String(data.TableMaxWriteCapacityUnits) + ")" + } + default: + { + return "" + } + } +} + +func (_this DescribeLimitsOutput) Equals(other DescribeLimitsOutput) bool { + switch data1 := _this.Get_().(type) { + case DescribeLimitsOutput_DescribeLimitsOutput: + { + data2, ok := other.Get_().(DescribeLimitsOutput_DescribeLimitsOutput) + return ok && data1.AccountMaxReadCapacityUnits.Equals(data2.AccountMaxReadCapacityUnits) && data1.AccountMaxWriteCapacityUnits.Equals(data2.AccountMaxWriteCapacityUnits) && data1.TableMaxReadCapacityUnits.Equals(data2.TableMaxReadCapacityUnits) && data1.TableMaxWriteCapacityUnits.Equals(data2.TableMaxWriteCapacityUnits) + } + default: + { + return false // unexpected + } + } +} + +func (_this DescribeLimitsOutput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(DescribeLimitsOutput) + return ok && _this.Equals(typed) +} + +func Type_DescribeLimitsOutput_() _dafny.TypeDescriptor { + return type_DescribeLimitsOutput_{} +} + +type type_DescribeLimitsOutput_ struct { +} + +func (_this type_DescribeLimitsOutput_) Default() interface{} { + return Companion_DescribeLimitsOutput_.Default() +} + +func (_this type_DescribeLimitsOutput_) String() string { + return "ComAmazonawsDynamodbTypes.DescribeLimitsOutput" +} +func (_this DescribeLimitsOutput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = DescribeLimitsOutput{} + +// End of datatype DescribeLimitsOutput + +// Definition of datatype DescribeTableInput +type DescribeTableInput struct { + Data_DescribeTableInput_ +} + +func (_this DescribeTableInput) Get_() Data_DescribeTableInput_ { + return _this.Data_DescribeTableInput_ +} + +type Data_DescribeTableInput_ interface { + isDescribeTableInput() +} + +type CompanionStruct_DescribeTableInput_ struct { +} + +var Companion_DescribeTableInput_ = CompanionStruct_DescribeTableInput_{} + +type DescribeTableInput_DescribeTableInput struct { + TableName _dafny.Sequence +} + +func (DescribeTableInput_DescribeTableInput) isDescribeTableInput() {} + +func (CompanionStruct_DescribeTableInput_) Create_DescribeTableInput_(TableName _dafny.Sequence) DescribeTableInput { + return DescribeTableInput{DescribeTableInput_DescribeTableInput{TableName}} +} + +func (_this DescribeTableInput) Is_DescribeTableInput() bool { + _, ok := _this.Get_().(DescribeTableInput_DescribeTableInput) + return ok +} + +func (CompanionStruct_DescribeTableInput_) Default() DescribeTableInput { + return Companion_DescribeTableInput_.Create_DescribeTableInput_(_dafny.EmptySeq.SetString()) +} + +func (_this DescribeTableInput) Dtor_TableName() _dafny.Sequence { + return _this.Get_().(DescribeTableInput_DescribeTableInput).TableName +} + +func (_this DescribeTableInput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case DescribeTableInput_DescribeTableInput: + { + return "ComAmazonawsDynamodbTypes.DescribeTableInput.DescribeTableInput" + "(" + _dafny.String(data.TableName) + ")" + } + default: + { + return "" + } + } +} + +func (_this DescribeTableInput) Equals(other DescribeTableInput) bool { + switch data1 := _this.Get_().(type) { + case DescribeTableInput_DescribeTableInput: + { + data2, ok := other.Get_().(DescribeTableInput_DescribeTableInput) + return ok && data1.TableName.Equals(data2.TableName) + } + default: + { + return false // unexpected + } + } +} + +func (_this DescribeTableInput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(DescribeTableInput) + return ok && _this.Equals(typed) +} + +func Type_DescribeTableInput_() _dafny.TypeDescriptor { + return type_DescribeTableInput_{} +} + +type type_DescribeTableInput_ struct { +} + +func (_this type_DescribeTableInput_) Default() interface{} { + return Companion_DescribeTableInput_.Default() +} + +func (_this type_DescribeTableInput_) String() string { + return "ComAmazonawsDynamodbTypes.DescribeTableInput" +} +func (_this DescribeTableInput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = DescribeTableInput{} + +// End of datatype DescribeTableInput + +// Definition of datatype DescribeTableOutput +type DescribeTableOutput struct { + Data_DescribeTableOutput_ +} + +func (_this DescribeTableOutput) Get_() Data_DescribeTableOutput_ { + return _this.Data_DescribeTableOutput_ +} + +type Data_DescribeTableOutput_ interface { + isDescribeTableOutput() +} + +type CompanionStruct_DescribeTableOutput_ struct { +} + +var Companion_DescribeTableOutput_ = CompanionStruct_DescribeTableOutput_{} + +type DescribeTableOutput_DescribeTableOutput struct { + Table m_Wrappers.Option +} + +func (DescribeTableOutput_DescribeTableOutput) isDescribeTableOutput() {} + +func (CompanionStruct_DescribeTableOutput_) Create_DescribeTableOutput_(Table m_Wrappers.Option) DescribeTableOutput { + return DescribeTableOutput{DescribeTableOutput_DescribeTableOutput{Table}} +} + +func (_this DescribeTableOutput) Is_DescribeTableOutput() bool { + _, ok := _this.Get_().(DescribeTableOutput_DescribeTableOutput) + return ok +} + +func (CompanionStruct_DescribeTableOutput_) Default() DescribeTableOutput { + return Companion_DescribeTableOutput_.Create_DescribeTableOutput_(m_Wrappers.Companion_Option_.Default()) +} + +func (_this DescribeTableOutput) Dtor_Table() m_Wrappers.Option { + return _this.Get_().(DescribeTableOutput_DescribeTableOutput).Table +} + +func (_this DescribeTableOutput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case DescribeTableOutput_DescribeTableOutput: + { + return "ComAmazonawsDynamodbTypes.DescribeTableOutput.DescribeTableOutput" + "(" + _dafny.String(data.Table) + ")" + } + default: + { + return "" + } + } +} + +func (_this DescribeTableOutput) Equals(other DescribeTableOutput) bool { + switch data1 := _this.Get_().(type) { + case DescribeTableOutput_DescribeTableOutput: + { + data2, ok := other.Get_().(DescribeTableOutput_DescribeTableOutput) + return ok && data1.Table.Equals(data2.Table) + } + default: + { + return false // unexpected + } + } +} + +func (_this DescribeTableOutput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(DescribeTableOutput) + return ok && _this.Equals(typed) +} + +func Type_DescribeTableOutput_() _dafny.TypeDescriptor { + return type_DescribeTableOutput_{} +} + +type type_DescribeTableOutput_ struct { +} + +func (_this type_DescribeTableOutput_) Default() interface{} { + return Companion_DescribeTableOutput_.Default() +} + +func (_this type_DescribeTableOutput_) String() string { + return "ComAmazonawsDynamodbTypes.DescribeTableOutput" +} +func (_this DescribeTableOutput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = DescribeTableOutput{} + +// End of datatype DescribeTableOutput + +// Definition of datatype DescribeTableReplicaAutoScalingInput +type DescribeTableReplicaAutoScalingInput struct { + Data_DescribeTableReplicaAutoScalingInput_ +} + +func (_this DescribeTableReplicaAutoScalingInput) Get_() Data_DescribeTableReplicaAutoScalingInput_ { + return _this.Data_DescribeTableReplicaAutoScalingInput_ +} + +type Data_DescribeTableReplicaAutoScalingInput_ interface { + isDescribeTableReplicaAutoScalingInput() +} + +type CompanionStruct_DescribeTableReplicaAutoScalingInput_ struct { +} + +var Companion_DescribeTableReplicaAutoScalingInput_ = CompanionStruct_DescribeTableReplicaAutoScalingInput_{} + +type DescribeTableReplicaAutoScalingInput_DescribeTableReplicaAutoScalingInput struct { + TableName _dafny.Sequence +} + +func (DescribeTableReplicaAutoScalingInput_DescribeTableReplicaAutoScalingInput) isDescribeTableReplicaAutoScalingInput() { +} + +func (CompanionStruct_DescribeTableReplicaAutoScalingInput_) Create_DescribeTableReplicaAutoScalingInput_(TableName _dafny.Sequence) DescribeTableReplicaAutoScalingInput { + return DescribeTableReplicaAutoScalingInput{DescribeTableReplicaAutoScalingInput_DescribeTableReplicaAutoScalingInput{TableName}} +} + +func (_this DescribeTableReplicaAutoScalingInput) Is_DescribeTableReplicaAutoScalingInput() bool { + _, ok := _this.Get_().(DescribeTableReplicaAutoScalingInput_DescribeTableReplicaAutoScalingInput) + return ok +} + +func (CompanionStruct_DescribeTableReplicaAutoScalingInput_) Default() DescribeTableReplicaAutoScalingInput { + return Companion_DescribeTableReplicaAutoScalingInput_.Create_DescribeTableReplicaAutoScalingInput_(_dafny.EmptySeq.SetString()) +} + +func (_this DescribeTableReplicaAutoScalingInput) Dtor_TableName() _dafny.Sequence { + return _this.Get_().(DescribeTableReplicaAutoScalingInput_DescribeTableReplicaAutoScalingInput).TableName +} + +func (_this DescribeTableReplicaAutoScalingInput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case DescribeTableReplicaAutoScalingInput_DescribeTableReplicaAutoScalingInput: + { + return "ComAmazonawsDynamodbTypes.DescribeTableReplicaAutoScalingInput.DescribeTableReplicaAutoScalingInput" + "(" + _dafny.String(data.TableName) + ")" + } + default: + { + return "" + } + } +} + +func (_this DescribeTableReplicaAutoScalingInput) Equals(other DescribeTableReplicaAutoScalingInput) bool { + switch data1 := _this.Get_().(type) { + case DescribeTableReplicaAutoScalingInput_DescribeTableReplicaAutoScalingInput: + { + data2, ok := other.Get_().(DescribeTableReplicaAutoScalingInput_DescribeTableReplicaAutoScalingInput) + return ok && data1.TableName.Equals(data2.TableName) + } + default: + { + return false // unexpected + } + } +} + +func (_this DescribeTableReplicaAutoScalingInput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(DescribeTableReplicaAutoScalingInput) + return ok && _this.Equals(typed) +} + +func Type_DescribeTableReplicaAutoScalingInput_() _dafny.TypeDescriptor { + return type_DescribeTableReplicaAutoScalingInput_{} +} + +type type_DescribeTableReplicaAutoScalingInput_ struct { +} + +func (_this type_DescribeTableReplicaAutoScalingInput_) Default() interface{} { + return Companion_DescribeTableReplicaAutoScalingInput_.Default() +} + +func (_this type_DescribeTableReplicaAutoScalingInput_) String() string { + return "ComAmazonawsDynamodbTypes.DescribeTableReplicaAutoScalingInput" +} +func (_this DescribeTableReplicaAutoScalingInput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = DescribeTableReplicaAutoScalingInput{} + +// End of datatype DescribeTableReplicaAutoScalingInput + +// Definition of datatype DescribeTableReplicaAutoScalingOutput +type DescribeTableReplicaAutoScalingOutput struct { + Data_DescribeTableReplicaAutoScalingOutput_ +} + +func (_this DescribeTableReplicaAutoScalingOutput) Get_() Data_DescribeTableReplicaAutoScalingOutput_ { + return _this.Data_DescribeTableReplicaAutoScalingOutput_ +} + +type Data_DescribeTableReplicaAutoScalingOutput_ interface { + isDescribeTableReplicaAutoScalingOutput() +} + +type CompanionStruct_DescribeTableReplicaAutoScalingOutput_ struct { +} + +var Companion_DescribeTableReplicaAutoScalingOutput_ = CompanionStruct_DescribeTableReplicaAutoScalingOutput_{} + +type DescribeTableReplicaAutoScalingOutput_DescribeTableReplicaAutoScalingOutput struct { + TableAutoScalingDescription m_Wrappers.Option +} + +func (DescribeTableReplicaAutoScalingOutput_DescribeTableReplicaAutoScalingOutput) isDescribeTableReplicaAutoScalingOutput() { +} + +func (CompanionStruct_DescribeTableReplicaAutoScalingOutput_) Create_DescribeTableReplicaAutoScalingOutput_(TableAutoScalingDescription m_Wrappers.Option) DescribeTableReplicaAutoScalingOutput { + return DescribeTableReplicaAutoScalingOutput{DescribeTableReplicaAutoScalingOutput_DescribeTableReplicaAutoScalingOutput{TableAutoScalingDescription}} +} + +func (_this DescribeTableReplicaAutoScalingOutput) Is_DescribeTableReplicaAutoScalingOutput() bool { + _, ok := _this.Get_().(DescribeTableReplicaAutoScalingOutput_DescribeTableReplicaAutoScalingOutput) + return ok +} + +func (CompanionStruct_DescribeTableReplicaAutoScalingOutput_) Default() DescribeTableReplicaAutoScalingOutput { + return Companion_DescribeTableReplicaAutoScalingOutput_.Create_DescribeTableReplicaAutoScalingOutput_(m_Wrappers.Companion_Option_.Default()) +} + +func (_this DescribeTableReplicaAutoScalingOutput) Dtor_TableAutoScalingDescription() m_Wrappers.Option { + return _this.Get_().(DescribeTableReplicaAutoScalingOutput_DescribeTableReplicaAutoScalingOutput).TableAutoScalingDescription +} + +func (_this DescribeTableReplicaAutoScalingOutput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case DescribeTableReplicaAutoScalingOutput_DescribeTableReplicaAutoScalingOutput: + { + return "ComAmazonawsDynamodbTypes.DescribeTableReplicaAutoScalingOutput.DescribeTableReplicaAutoScalingOutput" + "(" + _dafny.String(data.TableAutoScalingDescription) + ")" + } + default: + { + return "" + } + } +} + +func (_this DescribeTableReplicaAutoScalingOutput) Equals(other DescribeTableReplicaAutoScalingOutput) bool { + switch data1 := _this.Get_().(type) { + case DescribeTableReplicaAutoScalingOutput_DescribeTableReplicaAutoScalingOutput: + { + data2, ok := other.Get_().(DescribeTableReplicaAutoScalingOutput_DescribeTableReplicaAutoScalingOutput) + return ok && data1.TableAutoScalingDescription.Equals(data2.TableAutoScalingDescription) + } + default: + { + return false // unexpected + } + } +} + +func (_this DescribeTableReplicaAutoScalingOutput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(DescribeTableReplicaAutoScalingOutput) + return ok && _this.Equals(typed) +} + +func Type_DescribeTableReplicaAutoScalingOutput_() _dafny.TypeDescriptor { + return type_DescribeTableReplicaAutoScalingOutput_{} +} + +type type_DescribeTableReplicaAutoScalingOutput_ struct { +} + +func (_this type_DescribeTableReplicaAutoScalingOutput_) Default() interface{} { + return Companion_DescribeTableReplicaAutoScalingOutput_.Default() +} + +func (_this type_DescribeTableReplicaAutoScalingOutput_) String() string { + return "ComAmazonawsDynamodbTypes.DescribeTableReplicaAutoScalingOutput" +} +func (_this DescribeTableReplicaAutoScalingOutput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = DescribeTableReplicaAutoScalingOutput{} + +// End of datatype DescribeTableReplicaAutoScalingOutput + +// Definition of datatype DescribeTimeToLiveInput +type DescribeTimeToLiveInput struct { + Data_DescribeTimeToLiveInput_ +} + +func (_this DescribeTimeToLiveInput) Get_() Data_DescribeTimeToLiveInput_ { + return _this.Data_DescribeTimeToLiveInput_ +} + +type Data_DescribeTimeToLiveInput_ interface { + isDescribeTimeToLiveInput() +} + +type CompanionStruct_DescribeTimeToLiveInput_ struct { +} + +var Companion_DescribeTimeToLiveInput_ = CompanionStruct_DescribeTimeToLiveInput_{} + +type DescribeTimeToLiveInput_DescribeTimeToLiveInput struct { + TableName _dafny.Sequence +} + +func (DescribeTimeToLiveInput_DescribeTimeToLiveInput) isDescribeTimeToLiveInput() {} + +func (CompanionStruct_DescribeTimeToLiveInput_) Create_DescribeTimeToLiveInput_(TableName _dafny.Sequence) DescribeTimeToLiveInput { + return DescribeTimeToLiveInput{DescribeTimeToLiveInput_DescribeTimeToLiveInput{TableName}} +} + +func (_this DescribeTimeToLiveInput) Is_DescribeTimeToLiveInput() bool { + _, ok := _this.Get_().(DescribeTimeToLiveInput_DescribeTimeToLiveInput) + return ok +} + +func (CompanionStruct_DescribeTimeToLiveInput_) Default() DescribeTimeToLiveInput { + return Companion_DescribeTimeToLiveInput_.Create_DescribeTimeToLiveInput_(_dafny.EmptySeq.SetString()) +} + +func (_this DescribeTimeToLiveInput) Dtor_TableName() _dafny.Sequence { + return _this.Get_().(DescribeTimeToLiveInput_DescribeTimeToLiveInput).TableName +} + +func (_this DescribeTimeToLiveInput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case DescribeTimeToLiveInput_DescribeTimeToLiveInput: + { + return "ComAmazonawsDynamodbTypes.DescribeTimeToLiveInput.DescribeTimeToLiveInput" + "(" + _dafny.String(data.TableName) + ")" + } + default: + { + return "" + } + } +} + +func (_this DescribeTimeToLiveInput) Equals(other DescribeTimeToLiveInput) bool { + switch data1 := _this.Get_().(type) { + case DescribeTimeToLiveInput_DescribeTimeToLiveInput: + { + data2, ok := other.Get_().(DescribeTimeToLiveInput_DescribeTimeToLiveInput) + return ok && data1.TableName.Equals(data2.TableName) + } + default: + { + return false // unexpected + } + } +} + +func (_this DescribeTimeToLiveInput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(DescribeTimeToLiveInput) + return ok && _this.Equals(typed) +} + +func Type_DescribeTimeToLiveInput_() _dafny.TypeDescriptor { + return type_DescribeTimeToLiveInput_{} +} + +type type_DescribeTimeToLiveInput_ struct { +} + +func (_this type_DescribeTimeToLiveInput_) Default() interface{} { + return Companion_DescribeTimeToLiveInput_.Default() +} + +func (_this type_DescribeTimeToLiveInput_) String() string { + return "ComAmazonawsDynamodbTypes.DescribeTimeToLiveInput" +} +func (_this DescribeTimeToLiveInput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = DescribeTimeToLiveInput{} + +// End of datatype DescribeTimeToLiveInput + +// Definition of datatype DescribeTimeToLiveOutput +type DescribeTimeToLiveOutput struct { + Data_DescribeTimeToLiveOutput_ +} + +func (_this DescribeTimeToLiveOutput) Get_() Data_DescribeTimeToLiveOutput_ { + return _this.Data_DescribeTimeToLiveOutput_ +} + +type Data_DescribeTimeToLiveOutput_ interface { + isDescribeTimeToLiveOutput() +} + +type CompanionStruct_DescribeTimeToLiveOutput_ struct { +} + +var Companion_DescribeTimeToLiveOutput_ = CompanionStruct_DescribeTimeToLiveOutput_{} + +type DescribeTimeToLiveOutput_DescribeTimeToLiveOutput struct { + TimeToLiveDescription m_Wrappers.Option +} + +func (DescribeTimeToLiveOutput_DescribeTimeToLiveOutput) isDescribeTimeToLiveOutput() {} + +func (CompanionStruct_DescribeTimeToLiveOutput_) Create_DescribeTimeToLiveOutput_(TimeToLiveDescription m_Wrappers.Option) DescribeTimeToLiveOutput { + return DescribeTimeToLiveOutput{DescribeTimeToLiveOutput_DescribeTimeToLiveOutput{TimeToLiveDescription}} +} + +func (_this DescribeTimeToLiveOutput) Is_DescribeTimeToLiveOutput() bool { + _, ok := _this.Get_().(DescribeTimeToLiveOutput_DescribeTimeToLiveOutput) + return ok +} + +func (CompanionStruct_DescribeTimeToLiveOutput_) Default() DescribeTimeToLiveOutput { + return Companion_DescribeTimeToLiveOutput_.Create_DescribeTimeToLiveOutput_(m_Wrappers.Companion_Option_.Default()) +} + +func (_this DescribeTimeToLiveOutput) Dtor_TimeToLiveDescription() m_Wrappers.Option { + return _this.Get_().(DescribeTimeToLiveOutput_DescribeTimeToLiveOutput).TimeToLiveDescription +} + +func (_this DescribeTimeToLiveOutput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case DescribeTimeToLiveOutput_DescribeTimeToLiveOutput: + { + return "ComAmazonawsDynamodbTypes.DescribeTimeToLiveOutput.DescribeTimeToLiveOutput" + "(" + _dafny.String(data.TimeToLiveDescription) + ")" + } + default: + { + return "" + } + } +} + +func (_this DescribeTimeToLiveOutput) Equals(other DescribeTimeToLiveOutput) bool { + switch data1 := _this.Get_().(type) { + case DescribeTimeToLiveOutput_DescribeTimeToLiveOutput: + { + data2, ok := other.Get_().(DescribeTimeToLiveOutput_DescribeTimeToLiveOutput) + return ok && data1.TimeToLiveDescription.Equals(data2.TimeToLiveDescription) + } + default: + { + return false // unexpected + } + } +} + +func (_this DescribeTimeToLiveOutput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(DescribeTimeToLiveOutput) + return ok && _this.Equals(typed) +} + +func Type_DescribeTimeToLiveOutput_() _dafny.TypeDescriptor { + return type_DescribeTimeToLiveOutput_{} +} + +type type_DescribeTimeToLiveOutput_ struct { +} + +func (_this type_DescribeTimeToLiveOutput_) Default() interface{} { + return Companion_DescribeTimeToLiveOutput_.Default() +} + +func (_this type_DescribeTimeToLiveOutput_) String() string { + return "ComAmazonawsDynamodbTypes.DescribeTimeToLiveOutput" +} +func (_this DescribeTimeToLiveOutput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = DescribeTimeToLiveOutput{} + +// End of datatype DescribeTimeToLiveOutput + +// Definition of datatype DestinationStatus +type DestinationStatus struct { + Data_DestinationStatus_ +} + +func (_this DestinationStatus) Get_() Data_DestinationStatus_ { + return _this.Data_DestinationStatus_ +} + +type Data_DestinationStatus_ interface { + isDestinationStatus() +} + +type CompanionStruct_DestinationStatus_ struct { +} + +var Companion_DestinationStatus_ = CompanionStruct_DestinationStatus_{} + +type DestinationStatus_ENABLING struct { +} + +func (DestinationStatus_ENABLING) isDestinationStatus() {} + +func (CompanionStruct_DestinationStatus_) Create_ENABLING_() DestinationStatus { + return DestinationStatus{DestinationStatus_ENABLING{}} +} + +func (_this DestinationStatus) Is_ENABLING() bool { + _, ok := _this.Get_().(DestinationStatus_ENABLING) + return ok +} + +type DestinationStatus_ACTIVE struct { +} + +func (DestinationStatus_ACTIVE) isDestinationStatus() {} + +func (CompanionStruct_DestinationStatus_) Create_ACTIVE_() DestinationStatus { + return DestinationStatus{DestinationStatus_ACTIVE{}} +} + +func (_this DestinationStatus) Is_ACTIVE() bool { + _, ok := _this.Get_().(DestinationStatus_ACTIVE) + return ok +} + +type DestinationStatus_DISABLING struct { +} + +func (DestinationStatus_DISABLING) isDestinationStatus() {} + +func (CompanionStruct_DestinationStatus_) Create_DISABLING_() DestinationStatus { + return DestinationStatus{DestinationStatus_DISABLING{}} +} + +func (_this DestinationStatus) Is_DISABLING() bool { + _, ok := _this.Get_().(DestinationStatus_DISABLING) + return ok +} + +type DestinationStatus_DISABLED struct { +} + +func (DestinationStatus_DISABLED) isDestinationStatus() {} + +func (CompanionStruct_DestinationStatus_) Create_DISABLED_() DestinationStatus { + return DestinationStatus{DestinationStatus_DISABLED{}} +} + +func (_this DestinationStatus) Is_DISABLED() bool { + _, ok := _this.Get_().(DestinationStatus_DISABLED) + return ok +} + +type DestinationStatus_ENABLE__FAILED struct { +} + +func (DestinationStatus_ENABLE__FAILED) isDestinationStatus() {} + +func (CompanionStruct_DestinationStatus_) Create_ENABLE__FAILED_() DestinationStatus { + return DestinationStatus{DestinationStatus_ENABLE__FAILED{}} +} + +func (_this DestinationStatus) Is_ENABLE__FAILED() bool { + _, ok := _this.Get_().(DestinationStatus_ENABLE__FAILED) + return ok +} + +type DestinationStatus_UPDATING struct { +} + +func (DestinationStatus_UPDATING) isDestinationStatus() {} + +func (CompanionStruct_DestinationStatus_) Create_UPDATING_() DestinationStatus { + return DestinationStatus{DestinationStatus_UPDATING{}} +} + +func (_this DestinationStatus) Is_UPDATING() bool { + _, ok := _this.Get_().(DestinationStatus_UPDATING) + return ok +} + +func (CompanionStruct_DestinationStatus_) Default() DestinationStatus { + return Companion_DestinationStatus_.Create_ENABLING_() +} + +func (_ CompanionStruct_DestinationStatus_) AllSingletonConstructors() _dafny.Iterator { + i := -1 + return func() (interface{}, bool) { + i++ + switch i { + case 0: + return Companion_DestinationStatus_.Create_ENABLING_(), true + case 1: + return Companion_DestinationStatus_.Create_ACTIVE_(), true + case 2: + return Companion_DestinationStatus_.Create_DISABLING_(), true + case 3: + return Companion_DestinationStatus_.Create_DISABLED_(), true + case 4: + return Companion_DestinationStatus_.Create_ENABLE__FAILED_(), true + case 5: + return Companion_DestinationStatus_.Create_UPDATING_(), true + default: + return DestinationStatus{}, false + } + } +} + +func (_this DestinationStatus) String() string { + switch _this.Get_().(type) { + case nil: + return "null" + case DestinationStatus_ENABLING: + { + return "ComAmazonawsDynamodbTypes.DestinationStatus.ENABLING" + } + case DestinationStatus_ACTIVE: + { + return "ComAmazonawsDynamodbTypes.DestinationStatus.ACTIVE" + } + case DestinationStatus_DISABLING: + { + return "ComAmazonawsDynamodbTypes.DestinationStatus.DISABLING" + } + case DestinationStatus_DISABLED: + { + return "ComAmazonawsDynamodbTypes.DestinationStatus.DISABLED" + } + case DestinationStatus_ENABLE__FAILED: + { + return "ComAmazonawsDynamodbTypes.DestinationStatus.ENABLE_FAILED" + } + case DestinationStatus_UPDATING: + { + return "ComAmazonawsDynamodbTypes.DestinationStatus.UPDATING" + } + default: + { + return "" + } + } +} + +func (_this DestinationStatus) Equals(other DestinationStatus) bool { + switch _this.Get_().(type) { + case DestinationStatus_ENABLING: + { + _, ok := other.Get_().(DestinationStatus_ENABLING) + return ok + } + case DestinationStatus_ACTIVE: + { + _, ok := other.Get_().(DestinationStatus_ACTIVE) + return ok + } + case DestinationStatus_DISABLING: + { + _, ok := other.Get_().(DestinationStatus_DISABLING) + return ok + } + case DestinationStatus_DISABLED: + { + _, ok := other.Get_().(DestinationStatus_DISABLED) + return ok + } + case DestinationStatus_ENABLE__FAILED: + { + _, ok := other.Get_().(DestinationStatus_ENABLE__FAILED) + return ok + } + case DestinationStatus_UPDATING: + { + _, ok := other.Get_().(DestinationStatus_UPDATING) + return ok + } + default: + { + return false // unexpected + } + } +} + +func (_this DestinationStatus) EqualsGeneric(other interface{}) bool { + typed, ok := other.(DestinationStatus) + return ok && _this.Equals(typed) +} + +func Type_DestinationStatus_() _dafny.TypeDescriptor { + return type_DestinationStatus_{} +} + +type type_DestinationStatus_ struct { +} + +func (_this type_DestinationStatus_) Default() interface{} { + return Companion_DestinationStatus_.Default() +} + +func (_this type_DestinationStatus_) String() string { + return "ComAmazonawsDynamodbTypes.DestinationStatus" +} +func (_this DestinationStatus) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = DestinationStatus{} + +// End of datatype DestinationStatus + +// Definition of datatype DisableKinesisStreamingDestinationInput +type DisableKinesisStreamingDestinationInput struct { + Data_DisableKinesisStreamingDestinationInput_ +} + +func (_this DisableKinesisStreamingDestinationInput) Get_() Data_DisableKinesisStreamingDestinationInput_ { + return _this.Data_DisableKinesisStreamingDestinationInput_ +} + +type Data_DisableKinesisStreamingDestinationInput_ interface { + isDisableKinesisStreamingDestinationInput() +} + +type CompanionStruct_DisableKinesisStreamingDestinationInput_ struct { +} + +var Companion_DisableKinesisStreamingDestinationInput_ = CompanionStruct_DisableKinesisStreamingDestinationInput_{} + +type DisableKinesisStreamingDestinationInput_DisableKinesisStreamingDestinationInput struct { + TableName _dafny.Sequence + StreamArn _dafny.Sequence + EnableKinesisStreamingConfiguration m_Wrappers.Option +} + +func (DisableKinesisStreamingDestinationInput_DisableKinesisStreamingDestinationInput) isDisableKinesisStreamingDestinationInput() { +} + +func (CompanionStruct_DisableKinesisStreamingDestinationInput_) Create_DisableKinesisStreamingDestinationInput_(TableName _dafny.Sequence, StreamArn _dafny.Sequence, EnableKinesisStreamingConfiguration m_Wrappers.Option) DisableKinesisStreamingDestinationInput { + return DisableKinesisStreamingDestinationInput{DisableKinesisStreamingDestinationInput_DisableKinesisStreamingDestinationInput{TableName, StreamArn, EnableKinesisStreamingConfiguration}} +} + +func (_this DisableKinesisStreamingDestinationInput) Is_DisableKinesisStreamingDestinationInput() bool { + _, ok := _this.Get_().(DisableKinesisStreamingDestinationInput_DisableKinesisStreamingDestinationInput) + return ok +} + +func (CompanionStruct_DisableKinesisStreamingDestinationInput_) Default() DisableKinesisStreamingDestinationInput { + return Companion_DisableKinesisStreamingDestinationInput_.Create_DisableKinesisStreamingDestinationInput_(_dafny.EmptySeq.SetString(), _dafny.EmptySeq.SetString(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this DisableKinesisStreamingDestinationInput) Dtor_TableName() _dafny.Sequence { + return _this.Get_().(DisableKinesisStreamingDestinationInput_DisableKinesisStreamingDestinationInput).TableName +} + +func (_this DisableKinesisStreamingDestinationInput) Dtor_StreamArn() _dafny.Sequence { + return _this.Get_().(DisableKinesisStreamingDestinationInput_DisableKinesisStreamingDestinationInput).StreamArn +} + +func (_this DisableKinesisStreamingDestinationInput) Dtor_EnableKinesisStreamingConfiguration() m_Wrappers.Option { + return _this.Get_().(DisableKinesisStreamingDestinationInput_DisableKinesisStreamingDestinationInput).EnableKinesisStreamingConfiguration +} + +func (_this DisableKinesisStreamingDestinationInput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case DisableKinesisStreamingDestinationInput_DisableKinesisStreamingDestinationInput: + { + return "ComAmazonawsDynamodbTypes.DisableKinesisStreamingDestinationInput.DisableKinesisStreamingDestinationInput" + "(" + _dafny.String(data.TableName) + ", " + _dafny.String(data.StreamArn) + ", " + _dafny.String(data.EnableKinesisStreamingConfiguration) + ")" + } + default: + { + return "" + } + } +} + +func (_this DisableKinesisStreamingDestinationInput) Equals(other DisableKinesisStreamingDestinationInput) bool { + switch data1 := _this.Get_().(type) { + case DisableKinesisStreamingDestinationInput_DisableKinesisStreamingDestinationInput: + { + data2, ok := other.Get_().(DisableKinesisStreamingDestinationInput_DisableKinesisStreamingDestinationInput) + return ok && data1.TableName.Equals(data2.TableName) && data1.StreamArn.Equals(data2.StreamArn) && data1.EnableKinesisStreamingConfiguration.Equals(data2.EnableKinesisStreamingConfiguration) + } + default: + { + return false // unexpected + } + } +} + +func (_this DisableKinesisStreamingDestinationInput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(DisableKinesisStreamingDestinationInput) + return ok && _this.Equals(typed) +} + +func Type_DisableKinesisStreamingDestinationInput_() _dafny.TypeDescriptor { + return type_DisableKinesisStreamingDestinationInput_{} +} + +type type_DisableKinesisStreamingDestinationInput_ struct { +} + +func (_this type_DisableKinesisStreamingDestinationInput_) Default() interface{} { + return Companion_DisableKinesisStreamingDestinationInput_.Default() +} + +func (_this type_DisableKinesisStreamingDestinationInput_) String() string { + return "ComAmazonawsDynamodbTypes.DisableKinesisStreamingDestinationInput" +} +func (_this DisableKinesisStreamingDestinationInput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = DisableKinesisStreamingDestinationInput{} + +// End of datatype DisableKinesisStreamingDestinationInput + +// Definition of datatype DisableKinesisStreamingDestinationOutput +type DisableKinesisStreamingDestinationOutput struct { + Data_DisableKinesisStreamingDestinationOutput_ +} + +func (_this DisableKinesisStreamingDestinationOutput) Get_() Data_DisableKinesisStreamingDestinationOutput_ { + return _this.Data_DisableKinesisStreamingDestinationOutput_ +} + +type Data_DisableKinesisStreamingDestinationOutput_ interface { + isDisableKinesisStreamingDestinationOutput() +} + +type CompanionStruct_DisableKinesisStreamingDestinationOutput_ struct { +} + +var Companion_DisableKinesisStreamingDestinationOutput_ = CompanionStruct_DisableKinesisStreamingDestinationOutput_{} + +type DisableKinesisStreamingDestinationOutput_DisableKinesisStreamingDestinationOutput struct { + TableName m_Wrappers.Option + StreamArn m_Wrappers.Option + DestinationStatus m_Wrappers.Option + EnableKinesisStreamingConfiguration m_Wrappers.Option +} + +func (DisableKinesisStreamingDestinationOutput_DisableKinesisStreamingDestinationOutput) isDisableKinesisStreamingDestinationOutput() { +} + +func (CompanionStruct_DisableKinesisStreamingDestinationOutput_) Create_DisableKinesisStreamingDestinationOutput_(TableName m_Wrappers.Option, StreamArn m_Wrappers.Option, DestinationStatus m_Wrappers.Option, EnableKinesisStreamingConfiguration m_Wrappers.Option) DisableKinesisStreamingDestinationOutput { + return DisableKinesisStreamingDestinationOutput{DisableKinesisStreamingDestinationOutput_DisableKinesisStreamingDestinationOutput{TableName, StreamArn, DestinationStatus, EnableKinesisStreamingConfiguration}} +} + +func (_this DisableKinesisStreamingDestinationOutput) Is_DisableKinesisStreamingDestinationOutput() bool { + _, ok := _this.Get_().(DisableKinesisStreamingDestinationOutput_DisableKinesisStreamingDestinationOutput) + return ok +} + +func (CompanionStruct_DisableKinesisStreamingDestinationOutput_) Default() DisableKinesisStreamingDestinationOutput { + return Companion_DisableKinesisStreamingDestinationOutput_.Create_DisableKinesisStreamingDestinationOutput_(m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this DisableKinesisStreamingDestinationOutput) Dtor_TableName() m_Wrappers.Option { + return _this.Get_().(DisableKinesisStreamingDestinationOutput_DisableKinesisStreamingDestinationOutput).TableName +} + +func (_this DisableKinesisStreamingDestinationOutput) Dtor_StreamArn() m_Wrappers.Option { + return _this.Get_().(DisableKinesisStreamingDestinationOutput_DisableKinesisStreamingDestinationOutput).StreamArn +} + +func (_this DisableKinesisStreamingDestinationOutput) Dtor_DestinationStatus() m_Wrappers.Option { + return _this.Get_().(DisableKinesisStreamingDestinationOutput_DisableKinesisStreamingDestinationOutput).DestinationStatus +} + +func (_this DisableKinesisStreamingDestinationOutput) Dtor_EnableKinesisStreamingConfiguration() m_Wrappers.Option { + return _this.Get_().(DisableKinesisStreamingDestinationOutput_DisableKinesisStreamingDestinationOutput).EnableKinesisStreamingConfiguration +} + +func (_this DisableKinesisStreamingDestinationOutput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case DisableKinesisStreamingDestinationOutput_DisableKinesisStreamingDestinationOutput: + { + return "ComAmazonawsDynamodbTypes.DisableKinesisStreamingDestinationOutput.DisableKinesisStreamingDestinationOutput" + "(" + _dafny.String(data.TableName) + ", " + _dafny.String(data.StreamArn) + ", " + _dafny.String(data.DestinationStatus) + ", " + _dafny.String(data.EnableKinesisStreamingConfiguration) + ")" + } + default: + { + return "" + } + } +} + +func (_this DisableKinesisStreamingDestinationOutput) Equals(other DisableKinesisStreamingDestinationOutput) bool { + switch data1 := _this.Get_().(type) { + case DisableKinesisStreamingDestinationOutput_DisableKinesisStreamingDestinationOutput: + { + data2, ok := other.Get_().(DisableKinesisStreamingDestinationOutput_DisableKinesisStreamingDestinationOutput) + return ok && data1.TableName.Equals(data2.TableName) && data1.StreamArn.Equals(data2.StreamArn) && data1.DestinationStatus.Equals(data2.DestinationStatus) && data1.EnableKinesisStreamingConfiguration.Equals(data2.EnableKinesisStreamingConfiguration) + } + default: + { + return false // unexpected + } + } +} + +func (_this DisableKinesisStreamingDestinationOutput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(DisableKinesisStreamingDestinationOutput) + return ok && _this.Equals(typed) +} + +func Type_DisableKinesisStreamingDestinationOutput_() _dafny.TypeDescriptor { + return type_DisableKinesisStreamingDestinationOutput_{} +} + +type type_DisableKinesisStreamingDestinationOutput_ struct { +} + +func (_this type_DisableKinesisStreamingDestinationOutput_) Default() interface{} { + return Companion_DisableKinesisStreamingDestinationOutput_.Default() +} + +func (_this type_DisableKinesisStreamingDestinationOutput_) String() string { + return "ComAmazonawsDynamodbTypes.DisableKinesisStreamingDestinationOutput" +} +func (_this DisableKinesisStreamingDestinationOutput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = DisableKinesisStreamingDestinationOutput{} + +// End of datatype DisableKinesisStreamingDestinationOutput + +// Definition of class DoubleObject +type DoubleObject struct { +} + +func New_DoubleObject_() *DoubleObject { + _this := DoubleObject{} + + return &_this +} + +type CompanionStruct_DoubleObject_ struct { +} + +var Companion_DoubleObject_ = CompanionStruct_DoubleObject_{} + +func (*DoubleObject) String() string { + return "ComAmazonawsDynamodbTypes.DoubleObject" +} + +// End of class DoubleObject + +func Type_DoubleObject_() _dafny.TypeDescriptor { + return type_DoubleObject_{} +} + +type type_DoubleObject_ struct { +} + +func (_this type_DoubleObject_) Default() interface{} { + return _dafny.EmptySeq +} + +func (_this type_DoubleObject_) String() string { + return "ComAmazonawsDynamodbTypes.DoubleObject" +} +func (_this *CompanionStruct_DoubleObject_) Is_(__source _dafny.Sequence) bool { + var _18_x _dafny.Sequence = (__source) + _ = _18_x + return Companion_Default___.IsValid__DoubleObject(_18_x) +} + +// Definition of class IDynamoDBClientCallHistory +type IDynamoDBClientCallHistory struct { + dummy byte +} + +func New_IDynamoDBClientCallHistory_() *IDynamoDBClientCallHistory { + _this := IDynamoDBClientCallHistory{} + + return &_this +} + +type CompanionStruct_IDynamoDBClientCallHistory_ struct { +} + +var Companion_IDynamoDBClientCallHistory_ = CompanionStruct_IDynamoDBClientCallHistory_{} + +func (_this *IDynamoDBClientCallHistory) Equals(other *IDynamoDBClientCallHistory) bool { + return _this == other +} + +func (_this *IDynamoDBClientCallHistory) EqualsGeneric(x interface{}) bool { + other, ok := x.(*IDynamoDBClientCallHistory) + return ok && _this.Equals(other) +} + +func (*IDynamoDBClientCallHistory) String() string { + return "ComAmazonawsDynamodbTypes.IDynamoDBClientCallHistory" +} + +func Type_IDynamoDBClientCallHistory_() _dafny.TypeDescriptor { + return type_IDynamoDBClientCallHistory_{} +} + +type type_IDynamoDBClientCallHistory_ struct { +} + +func (_this type_IDynamoDBClientCallHistory_) Default() interface{} { + return (*IDynamoDBClientCallHistory)(nil) +} + +func (_this type_IDynamoDBClientCallHistory_) String() string { + return "ComAmazonawsDynamodbTypes.IDynamoDBClientCallHistory" +} +func (_this *IDynamoDBClientCallHistory) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = &IDynamoDBClientCallHistory{} + +// End of class IDynamoDBClientCallHistory + +// Definition of trait IDynamoDBClient +type IDynamoDBClient interface { + String() string + BatchExecuteStatement(input BatchExecuteStatementInput) m_Wrappers.Result + BatchGetItem(input BatchGetItemInput) m_Wrappers.Result + BatchWriteItem(input BatchWriteItemInput) m_Wrappers.Result + CreateBackup(input CreateBackupInput) m_Wrappers.Result + CreateGlobalTable(input CreateGlobalTableInput) m_Wrappers.Result + CreateTable(input CreateTableInput) m_Wrappers.Result + DeleteBackup(input DeleteBackupInput) m_Wrappers.Result + DeleteItem(input DeleteItemInput) m_Wrappers.Result + DeleteResourcePolicy(input DeleteResourcePolicyInput) m_Wrappers.Result + DeleteTable(input DeleteTableInput) m_Wrappers.Result + DescribeBackup(input DescribeBackupInput) m_Wrappers.Result + DescribeContinuousBackups(input DescribeContinuousBackupsInput) m_Wrappers.Result + DescribeContributorInsights(input DescribeContributorInsightsInput) m_Wrappers.Result + DescribeEndpoints(input DescribeEndpointsRequest) m_Wrappers.Result + DescribeExport(input DescribeExportInput) m_Wrappers.Result + DescribeGlobalTable(input DescribeGlobalTableInput) m_Wrappers.Result + DescribeGlobalTableSettings(input DescribeGlobalTableSettingsInput) m_Wrappers.Result + DescribeImport(input DescribeImportInput) m_Wrappers.Result + DescribeKinesisStreamingDestination(input DescribeKinesisStreamingDestinationInput) m_Wrappers.Result + DescribeLimits(input DescribeLimitsInput) m_Wrappers.Result + DescribeTable(input DescribeTableInput) m_Wrappers.Result + DescribeTableReplicaAutoScaling(input DescribeTableReplicaAutoScalingInput) m_Wrappers.Result + DescribeTimeToLive(input DescribeTimeToLiveInput) m_Wrappers.Result + DisableKinesisStreamingDestination(input DisableKinesisStreamingDestinationInput) m_Wrappers.Result + EnableKinesisStreamingDestination(input EnableKinesisStreamingDestinationInput) m_Wrappers.Result + ExecuteStatement(input ExecuteStatementInput) m_Wrappers.Result + ExecuteTransaction(input ExecuteTransactionInput) m_Wrappers.Result + ExportTableToPointInTime(input ExportTableToPointInTimeInput) m_Wrappers.Result + GetItem(input GetItemInput) m_Wrappers.Result + GetResourcePolicy(input GetResourcePolicyInput) m_Wrappers.Result + ImportTable(input ImportTableInput) m_Wrappers.Result + ListBackups(input ListBackupsInput) m_Wrappers.Result + ListContributorInsights(input ListContributorInsightsInput) m_Wrappers.Result + ListExports(input ListExportsInput) m_Wrappers.Result + ListGlobalTables(input ListGlobalTablesInput) m_Wrappers.Result + ListImports(input ListImportsInput) m_Wrappers.Result + ListTables(input ListTablesInput) m_Wrappers.Result + ListTagsOfResource(input ListTagsOfResourceInput) m_Wrappers.Result + PutItem(input PutItemInput) m_Wrappers.Result + PutResourcePolicy(input PutResourcePolicyInput) m_Wrappers.Result + Query(input QueryInput) m_Wrappers.Result + RestoreTableFromBackup(input RestoreTableFromBackupInput) m_Wrappers.Result + RestoreTableToPointInTime(input RestoreTableToPointInTimeInput) m_Wrappers.Result + Scan(input ScanInput) m_Wrappers.Result + TagResource(input TagResourceInput) m_Wrappers.Result + TransactGetItems(input TransactGetItemsInput) m_Wrappers.Result + TransactWriteItems(input TransactWriteItemsInput) m_Wrappers.Result + UntagResource(input UntagResourceInput) m_Wrappers.Result + UpdateContinuousBackups(input UpdateContinuousBackupsInput) m_Wrappers.Result + UpdateContributorInsights(input UpdateContributorInsightsInput) m_Wrappers.Result + UpdateGlobalTable(input UpdateGlobalTableInput) m_Wrappers.Result + UpdateGlobalTableSettings(input UpdateGlobalTableSettingsInput) m_Wrappers.Result + UpdateItem(input UpdateItemInput) m_Wrappers.Result + UpdateKinesisStreamingDestination(input UpdateKinesisStreamingDestinationInput) m_Wrappers.Result + UpdateTable(input UpdateTableInput) m_Wrappers.Result + UpdateTableReplicaAutoScaling(input UpdateTableReplicaAutoScalingInput) m_Wrappers.Result + UpdateTimeToLive(input UpdateTimeToLiveInput) m_Wrappers.Result +} +type CompanionStruct_IDynamoDBClient_ struct { + TraitID_ *_dafny.TraitID +} + +var Companion_IDynamoDBClient_ = CompanionStruct_IDynamoDBClient_{ + TraitID_: &_dafny.TraitID{}, +} + +func (CompanionStruct_IDynamoDBClient_) CastTo_(x interface{}) IDynamoDBClient { + var t IDynamoDBClient + t, _ = x.(IDynamoDBClient) + return t +} + +// End of trait IDynamoDBClient + +// Definition of datatype EnableKinesisStreamingConfiguration +type EnableKinesisStreamingConfiguration struct { + Data_EnableKinesisStreamingConfiguration_ +} + +func (_this EnableKinesisStreamingConfiguration) Get_() Data_EnableKinesisStreamingConfiguration_ { + return _this.Data_EnableKinesisStreamingConfiguration_ +} + +type Data_EnableKinesisStreamingConfiguration_ interface { + isEnableKinesisStreamingConfiguration() +} + +type CompanionStruct_EnableKinesisStreamingConfiguration_ struct { +} + +var Companion_EnableKinesisStreamingConfiguration_ = CompanionStruct_EnableKinesisStreamingConfiguration_{} + +type EnableKinesisStreamingConfiguration_EnableKinesisStreamingConfiguration struct { + ApproximateCreationDateTimePrecision m_Wrappers.Option +} + +func (EnableKinesisStreamingConfiguration_EnableKinesisStreamingConfiguration) isEnableKinesisStreamingConfiguration() { +} + +func (CompanionStruct_EnableKinesisStreamingConfiguration_) Create_EnableKinesisStreamingConfiguration_(ApproximateCreationDateTimePrecision m_Wrappers.Option) EnableKinesisStreamingConfiguration { + return EnableKinesisStreamingConfiguration{EnableKinesisStreamingConfiguration_EnableKinesisStreamingConfiguration{ApproximateCreationDateTimePrecision}} +} + +func (_this EnableKinesisStreamingConfiguration) Is_EnableKinesisStreamingConfiguration() bool { + _, ok := _this.Get_().(EnableKinesisStreamingConfiguration_EnableKinesisStreamingConfiguration) + return ok +} + +func (CompanionStruct_EnableKinesisStreamingConfiguration_) Default() EnableKinesisStreamingConfiguration { + return Companion_EnableKinesisStreamingConfiguration_.Create_EnableKinesisStreamingConfiguration_(m_Wrappers.Companion_Option_.Default()) +} + +func (_this EnableKinesisStreamingConfiguration) Dtor_ApproximateCreationDateTimePrecision() m_Wrappers.Option { + return _this.Get_().(EnableKinesisStreamingConfiguration_EnableKinesisStreamingConfiguration).ApproximateCreationDateTimePrecision +} + +func (_this EnableKinesisStreamingConfiguration) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case EnableKinesisStreamingConfiguration_EnableKinesisStreamingConfiguration: + { + return "ComAmazonawsDynamodbTypes.EnableKinesisStreamingConfiguration.EnableKinesisStreamingConfiguration" + "(" + _dafny.String(data.ApproximateCreationDateTimePrecision) + ")" + } + default: + { + return "" + } + } +} + +func (_this EnableKinesisStreamingConfiguration) Equals(other EnableKinesisStreamingConfiguration) bool { + switch data1 := _this.Get_().(type) { + case EnableKinesisStreamingConfiguration_EnableKinesisStreamingConfiguration: + { + data2, ok := other.Get_().(EnableKinesisStreamingConfiguration_EnableKinesisStreamingConfiguration) + return ok && data1.ApproximateCreationDateTimePrecision.Equals(data2.ApproximateCreationDateTimePrecision) + } + default: + { + return false // unexpected + } + } +} + +func (_this EnableKinesisStreamingConfiguration) EqualsGeneric(other interface{}) bool { + typed, ok := other.(EnableKinesisStreamingConfiguration) + return ok && _this.Equals(typed) +} + +func Type_EnableKinesisStreamingConfiguration_() _dafny.TypeDescriptor { + return type_EnableKinesisStreamingConfiguration_{} +} + +type type_EnableKinesisStreamingConfiguration_ struct { +} + +func (_this type_EnableKinesisStreamingConfiguration_) Default() interface{} { + return Companion_EnableKinesisStreamingConfiguration_.Default() +} + +func (_this type_EnableKinesisStreamingConfiguration_) String() string { + return "ComAmazonawsDynamodbTypes.EnableKinesisStreamingConfiguration" +} +func (_this EnableKinesisStreamingConfiguration) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = EnableKinesisStreamingConfiguration{} + +// End of datatype EnableKinesisStreamingConfiguration + +// Definition of datatype EnableKinesisStreamingDestinationInput +type EnableKinesisStreamingDestinationInput struct { + Data_EnableKinesisStreamingDestinationInput_ +} + +func (_this EnableKinesisStreamingDestinationInput) Get_() Data_EnableKinesisStreamingDestinationInput_ { + return _this.Data_EnableKinesisStreamingDestinationInput_ +} + +type Data_EnableKinesisStreamingDestinationInput_ interface { + isEnableKinesisStreamingDestinationInput() +} + +type CompanionStruct_EnableKinesisStreamingDestinationInput_ struct { +} + +var Companion_EnableKinesisStreamingDestinationInput_ = CompanionStruct_EnableKinesisStreamingDestinationInput_{} + +type EnableKinesisStreamingDestinationInput_EnableKinesisStreamingDestinationInput struct { + TableName _dafny.Sequence + StreamArn _dafny.Sequence + EnableKinesisStreamingConfiguration m_Wrappers.Option +} + +func (EnableKinesisStreamingDestinationInput_EnableKinesisStreamingDestinationInput) isEnableKinesisStreamingDestinationInput() { +} + +func (CompanionStruct_EnableKinesisStreamingDestinationInput_) Create_EnableKinesisStreamingDestinationInput_(TableName _dafny.Sequence, StreamArn _dafny.Sequence, EnableKinesisStreamingConfiguration m_Wrappers.Option) EnableKinesisStreamingDestinationInput { + return EnableKinesisStreamingDestinationInput{EnableKinesisStreamingDestinationInput_EnableKinesisStreamingDestinationInput{TableName, StreamArn, EnableKinesisStreamingConfiguration}} +} + +func (_this EnableKinesisStreamingDestinationInput) Is_EnableKinesisStreamingDestinationInput() bool { + _, ok := _this.Get_().(EnableKinesisStreamingDestinationInput_EnableKinesisStreamingDestinationInput) + return ok +} + +func (CompanionStruct_EnableKinesisStreamingDestinationInput_) Default() EnableKinesisStreamingDestinationInput { + return Companion_EnableKinesisStreamingDestinationInput_.Create_EnableKinesisStreamingDestinationInput_(_dafny.EmptySeq.SetString(), _dafny.EmptySeq.SetString(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this EnableKinesisStreamingDestinationInput) Dtor_TableName() _dafny.Sequence { + return _this.Get_().(EnableKinesisStreamingDestinationInput_EnableKinesisStreamingDestinationInput).TableName +} + +func (_this EnableKinesisStreamingDestinationInput) Dtor_StreamArn() _dafny.Sequence { + return _this.Get_().(EnableKinesisStreamingDestinationInput_EnableKinesisStreamingDestinationInput).StreamArn +} + +func (_this EnableKinesisStreamingDestinationInput) Dtor_EnableKinesisStreamingConfiguration() m_Wrappers.Option { + return _this.Get_().(EnableKinesisStreamingDestinationInput_EnableKinesisStreamingDestinationInput).EnableKinesisStreamingConfiguration +} + +func (_this EnableKinesisStreamingDestinationInput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case EnableKinesisStreamingDestinationInput_EnableKinesisStreamingDestinationInput: + { + return "ComAmazonawsDynamodbTypes.EnableKinesisStreamingDestinationInput.EnableKinesisStreamingDestinationInput" + "(" + _dafny.String(data.TableName) + ", " + _dafny.String(data.StreamArn) + ", " + _dafny.String(data.EnableKinesisStreamingConfiguration) + ")" + } + default: + { + return "" + } + } +} + +func (_this EnableKinesisStreamingDestinationInput) Equals(other EnableKinesisStreamingDestinationInput) bool { + switch data1 := _this.Get_().(type) { + case EnableKinesisStreamingDestinationInput_EnableKinesisStreamingDestinationInput: + { + data2, ok := other.Get_().(EnableKinesisStreamingDestinationInput_EnableKinesisStreamingDestinationInput) + return ok && data1.TableName.Equals(data2.TableName) && data1.StreamArn.Equals(data2.StreamArn) && data1.EnableKinesisStreamingConfiguration.Equals(data2.EnableKinesisStreamingConfiguration) + } + default: + { + return false // unexpected + } + } +} + +func (_this EnableKinesisStreamingDestinationInput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(EnableKinesisStreamingDestinationInput) + return ok && _this.Equals(typed) +} + +func Type_EnableKinesisStreamingDestinationInput_() _dafny.TypeDescriptor { + return type_EnableKinesisStreamingDestinationInput_{} +} + +type type_EnableKinesisStreamingDestinationInput_ struct { +} + +func (_this type_EnableKinesisStreamingDestinationInput_) Default() interface{} { + return Companion_EnableKinesisStreamingDestinationInput_.Default() +} + +func (_this type_EnableKinesisStreamingDestinationInput_) String() string { + return "ComAmazonawsDynamodbTypes.EnableKinesisStreamingDestinationInput" +} +func (_this EnableKinesisStreamingDestinationInput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = EnableKinesisStreamingDestinationInput{} + +// End of datatype EnableKinesisStreamingDestinationInput + +// Definition of datatype EnableKinesisStreamingDestinationOutput +type EnableKinesisStreamingDestinationOutput struct { + Data_EnableKinesisStreamingDestinationOutput_ +} + +func (_this EnableKinesisStreamingDestinationOutput) Get_() Data_EnableKinesisStreamingDestinationOutput_ { + return _this.Data_EnableKinesisStreamingDestinationOutput_ +} + +type Data_EnableKinesisStreamingDestinationOutput_ interface { + isEnableKinesisStreamingDestinationOutput() +} + +type CompanionStruct_EnableKinesisStreamingDestinationOutput_ struct { +} + +var Companion_EnableKinesisStreamingDestinationOutput_ = CompanionStruct_EnableKinesisStreamingDestinationOutput_{} + +type EnableKinesisStreamingDestinationOutput_EnableKinesisStreamingDestinationOutput struct { + TableName m_Wrappers.Option + StreamArn m_Wrappers.Option + DestinationStatus m_Wrappers.Option + EnableKinesisStreamingConfiguration m_Wrappers.Option +} + +func (EnableKinesisStreamingDestinationOutput_EnableKinesisStreamingDestinationOutput) isEnableKinesisStreamingDestinationOutput() { +} + +func (CompanionStruct_EnableKinesisStreamingDestinationOutput_) Create_EnableKinesisStreamingDestinationOutput_(TableName m_Wrappers.Option, StreamArn m_Wrappers.Option, DestinationStatus m_Wrappers.Option, EnableKinesisStreamingConfiguration m_Wrappers.Option) EnableKinesisStreamingDestinationOutput { + return EnableKinesisStreamingDestinationOutput{EnableKinesisStreamingDestinationOutput_EnableKinesisStreamingDestinationOutput{TableName, StreamArn, DestinationStatus, EnableKinesisStreamingConfiguration}} +} + +func (_this EnableKinesisStreamingDestinationOutput) Is_EnableKinesisStreamingDestinationOutput() bool { + _, ok := _this.Get_().(EnableKinesisStreamingDestinationOutput_EnableKinesisStreamingDestinationOutput) + return ok +} + +func (CompanionStruct_EnableKinesisStreamingDestinationOutput_) Default() EnableKinesisStreamingDestinationOutput { + return Companion_EnableKinesisStreamingDestinationOutput_.Create_EnableKinesisStreamingDestinationOutput_(m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this EnableKinesisStreamingDestinationOutput) Dtor_TableName() m_Wrappers.Option { + return _this.Get_().(EnableKinesisStreamingDestinationOutput_EnableKinesisStreamingDestinationOutput).TableName +} + +func (_this EnableKinesisStreamingDestinationOutput) Dtor_StreamArn() m_Wrappers.Option { + return _this.Get_().(EnableKinesisStreamingDestinationOutput_EnableKinesisStreamingDestinationOutput).StreamArn +} + +func (_this EnableKinesisStreamingDestinationOutput) Dtor_DestinationStatus() m_Wrappers.Option { + return _this.Get_().(EnableKinesisStreamingDestinationOutput_EnableKinesisStreamingDestinationOutput).DestinationStatus +} + +func (_this EnableKinesisStreamingDestinationOutput) Dtor_EnableKinesisStreamingConfiguration() m_Wrappers.Option { + return _this.Get_().(EnableKinesisStreamingDestinationOutput_EnableKinesisStreamingDestinationOutput).EnableKinesisStreamingConfiguration +} + +func (_this EnableKinesisStreamingDestinationOutput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case EnableKinesisStreamingDestinationOutput_EnableKinesisStreamingDestinationOutput: + { + return "ComAmazonawsDynamodbTypes.EnableKinesisStreamingDestinationOutput.EnableKinesisStreamingDestinationOutput" + "(" + _dafny.String(data.TableName) + ", " + _dafny.String(data.StreamArn) + ", " + _dafny.String(data.DestinationStatus) + ", " + _dafny.String(data.EnableKinesisStreamingConfiguration) + ")" + } + default: + { + return "" + } + } +} + +func (_this EnableKinesisStreamingDestinationOutput) Equals(other EnableKinesisStreamingDestinationOutput) bool { + switch data1 := _this.Get_().(type) { + case EnableKinesisStreamingDestinationOutput_EnableKinesisStreamingDestinationOutput: + { + data2, ok := other.Get_().(EnableKinesisStreamingDestinationOutput_EnableKinesisStreamingDestinationOutput) + return ok && data1.TableName.Equals(data2.TableName) && data1.StreamArn.Equals(data2.StreamArn) && data1.DestinationStatus.Equals(data2.DestinationStatus) && data1.EnableKinesisStreamingConfiguration.Equals(data2.EnableKinesisStreamingConfiguration) + } + default: + { + return false // unexpected + } + } +} + +func (_this EnableKinesisStreamingDestinationOutput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(EnableKinesisStreamingDestinationOutput) + return ok && _this.Equals(typed) +} + +func Type_EnableKinesisStreamingDestinationOutput_() _dafny.TypeDescriptor { + return type_EnableKinesisStreamingDestinationOutput_{} +} + +type type_EnableKinesisStreamingDestinationOutput_ struct { +} + +func (_this type_EnableKinesisStreamingDestinationOutput_) Default() interface{} { + return Companion_EnableKinesisStreamingDestinationOutput_.Default() +} + +func (_this type_EnableKinesisStreamingDestinationOutput_) String() string { + return "ComAmazonawsDynamodbTypes.EnableKinesisStreamingDestinationOutput" +} +func (_this EnableKinesisStreamingDestinationOutput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = EnableKinesisStreamingDestinationOutput{} + +// End of datatype EnableKinesisStreamingDestinationOutput + +// Definition of datatype Endpoint +type Endpoint struct { + Data_Endpoint_ +} + +func (_this Endpoint) Get_() Data_Endpoint_ { + return _this.Data_Endpoint_ +} + +type Data_Endpoint_ interface { + isEndpoint() +} + +type CompanionStruct_Endpoint_ struct { +} + +var Companion_Endpoint_ = CompanionStruct_Endpoint_{} + +type Endpoint_Endpoint struct { + Address _dafny.Sequence + CachePeriodInMinutes int64 +} + +func (Endpoint_Endpoint) isEndpoint() {} + +func (CompanionStruct_Endpoint_) Create_Endpoint_(Address _dafny.Sequence, CachePeriodInMinutes int64) Endpoint { + return Endpoint{Endpoint_Endpoint{Address, CachePeriodInMinutes}} +} + +func (_this Endpoint) Is_Endpoint() bool { + _, ok := _this.Get_().(Endpoint_Endpoint) + return ok +} + +func (CompanionStruct_Endpoint_) Default() Endpoint { + return Companion_Endpoint_.Create_Endpoint_(_dafny.EmptySeq.SetString(), int64(0)) +} + +func (_this Endpoint) Dtor_Address() _dafny.Sequence { + return _this.Get_().(Endpoint_Endpoint).Address +} + +func (_this Endpoint) Dtor_CachePeriodInMinutes() int64 { + return _this.Get_().(Endpoint_Endpoint).CachePeriodInMinutes +} + +func (_this Endpoint) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case Endpoint_Endpoint: + { + return "ComAmazonawsDynamodbTypes.Endpoint.Endpoint" + "(" + _dafny.String(data.Address) + ", " + _dafny.String(data.CachePeriodInMinutes) + ")" + } + default: + { + return "" + } + } +} + +func (_this Endpoint) Equals(other Endpoint) bool { + switch data1 := _this.Get_().(type) { + case Endpoint_Endpoint: + { + data2, ok := other.Get_().(Endpoint_Endpoint) + return ok && data1.Address.Equals(data2.Address) && data1.CachePeriodInMinutes == data2.CachePeriodInMinutes + } + default: + { + return false // unexpected + } + } +} + +func (_this Endpoint) EqualsGeneric(other interface{}) bool { + typed, ok := other.(Endpoint) + return ok && _this.Equals(typed) +} + +func Type_Endpoint_() _dafny.TypeDescriptor { + return type_Endpoint_{} +} + +type type_Endpoint_ struct { +} + +func (_this type_Endpoint_) Default() interface{} { + return Companion_Endpoint_.Default() +} + +func (_this type_Endpoint_) String() string { + return "ComAmazonawsDynamodbTypes.Endpoint" +} +func (_this Endpoint) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = Endpoint{} + +// End of datatype Endpoint + +// Definition of class ErrorCount +type ErrorCount struct { +} + +func New_ErrorCount_() *ErrorCount { + _this := ErrorCount{} + + return &_this +} + +type CompanionStruct_ErrorCount_ struct { +} + +var Companion_ErrorCount_ = CompanionStruct_ErrorCount_{} + +func (*ErrorCount) String() string { + return "ComAmazonawsDynamodbTypes.ErrorCount" +} + +// End of class ErrorCount + +func Type_ErrorCount_() _dafny.TypeDescriptor { + return type_ErrorCount_{} +} + +type type_ErrorCount_ struct { +} + +func (_this type_ErrorCount_) Default() interface{} { + return int64(0) +} + +func (_this type_ErrorCount_) String() string { + return "ComAmazonawsDynamodbTypes.ErrorCount" +} +func (_this *CompanionStruct_ErrorCount_) Is_(__source int64) bool { + var _0_x int64 = (__source) + _ = _0_x + if true { + return Companion_Default___.IsValid__ErrorCount(_0_x) + } + return false +} + +// Definition of datatype ExecuteStatementInput +type ExecuteStatementInput struct { + Data_ExecuteStatementInput_ +} + +func (_this ExecuteStatementInput) Get_() Data_ExecuteStatementInput_ { + return _this.Data_ExecuteStatementInput_ +} + +type Data_ExecuteStatementInput_ interface { + isExecuteStatementInput() +} + +type CompanionStruct_ExecuteStatementInput_ struct { +} + +var Companion_ExecuteStatementInput_ = CompanionStruct_ExecuteStatementInput_{} + +type ExecuteStatementInput_ExecuteStatementInput struct { + Statement _dafny.Sequence + Parameters m_Wrappers.Option + ConsistentRead m_Wrappers.Option + NextToken m_Wrappers.Option + ReturnConsumedCapacity m_Wrappers.Option + Limit m_Wrappers.Option + ReturnValuesOnConditionCheckFailure m_Wrappers.Option +} + +func (ExecuteStatementInput_ExecuteStatementInput) isExecuteStatementInput() {} + +func (CompanionStruct_ExecuteStatementInput_) Create_ExecuteStatementInput_(Statement _dafny.Sequence, Parameters m_Wrappers.Option, ConsistentRead m_Wrappers.Option, NextToken m_Wrappers.Option, ReturnConsumedCapacity m_Wrappers.Option, Limit m_Wrappers.Option, ReturnValuesOnConditionCheckFailure m_Wrappers.Option) ExecuteStatementInput { + return ExecuteStatementInput{ExecuteStatementInput_ExecuteStatementInput{Statement, Parameters, ConsistentRead, NextToken, ReturnConsumedCapacity, Limit, ReturnValuesOnConditionCheckFailure}} +} + +func (_this ExecuteStatementInput) Is_ExecuteStatementInput() bool { + _, ok := _this.Get_().(ExecuteStatementInput_ExecuteStatementInput) + return ok +} + +func (CompanionStruct_ExecuteStatementInput_) Default() ExecuteStatementInput { + return Companion_ExecuteStatementInput_.Create_ExecuteStatementInput_(_dafny.EmptySeq.SetString(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this ExecuteStatementInput) Dtor_Statement() _dafny.Sequence { + return _this.Get_().(ExecuteStatementInput_ExecuteStatementInput).Statement +} + +func (_this ExecuteStatementInput) Dtor_Parameters() m_Wrappers.Option { + return _this.Get_().(ExecuteStatementInput_ExecuteStatementInput).Parameters +} + +func (_this ExecuteStatementInput) Dtor_ConsistentRead() m_Wrappers.Option { + return _this.Get_().(ExecuteStatementInput_ExecuteStatementInput).ConsistentRead +} + +func (_this ExecuteStatementInput) Dtor_NextToken() m_Wrappers.Option { + return _this.Get_().(ExecuteStatementInput_ExecuteStatementInput).NextToken +} + +func (_this ExecuteStatementInput) Dtor_ReturnConsumedCapacity() m_Wrappers.Option { + return _this.Get_().(ExecuteStatementInput_ExecuteStatementInput).ReturnConsumedCapacity +} + +func (_this ExecuteStatementInput) Dtor_Limit() m_Wrappers.Option { + return _this.Get_().(ExecuteStatementInput_ExecuteStatementInput).Limit +} + +func (_this ExecuteStatementInput) Dtor_ReturnValuesOnConditionCheckFailure() m_Wrappers.Option { + return _this.Get_().(ExecuteStatementInput_ExecuteStatementInput).ReturnValuesOnConditionCheckFailure +} + +func (_this ExecuteStatementInput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case ExecuteStatementInput_ExecuteStatementInput: + { + return "ComAmazonawsDynamodbTypes.ExecuteStatementInput.ExecuteStatementInput" + "(" + _dafny.String(data.Statement) + ", " + _dafny.String(data.Parameters) + ", " + _dafny.String(data.ConsistentRead) + ", " + _dafny.String(data.NextToken) + ", " + _dafny.String(data.ReturnConsumedCapacity) + ", " + _dafny.String(data.Limit) + ", " + _dafny.String(data.ReturnValuesOnConditionCheckFailure) + ")" + } + default: + { + return "" + } + } +} + +func (_this ExecuteStatementInput) Equals(other ExecuteStatementInput) bool { + switch data1 := _this.Get_().(type) { + case ExecuteStatementInput_ExecuteStatementInput: + { + data2, ok := other.Get_().(ExecuteStatementInput_ExecuteStatementInput) + return ok && data1.Statement.Equals(data2.Statement) && data1.Parameters.Equals(data2.Parameters) && data1.ConsistentRead.Equals(data2.ConsistentRead) && data1.NextToken.Equals(data2.NextToken) && data1.ReturnConsumedCapacity.Equals(data2.ReturnConsumedCapacity) && data1.Limit.Equals(data2.Limit) && data1.ReturnValuesOnConditionCheckFailure.Equals(data2.ReturnValuesOnConditionCheckFailure) + } + default: + { + return false // unexpected + } + } +} + +func (_this ExecuteStatementInput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(ExecuteStatementInput) + return ok && _this.Equals(typed) +} + +func Type_ExecuteStatementInput_() _dafny.TypeDescriptor { + return type_ExecuteStatementInput_{} +} + +type type_ExecuteStatementInput_ struct { +} + +func (_this type_ExecuteStatementInput_) Default() interface{} { + return Companion_ExecuteStatementInput_.Default() +} + +func (_this type_ExecuteStatementInput_) String() string { + return "ComAmazonawsDynamodbTypes.ExecuteStatementInput" +} +func (_this ExecuteStatementInput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = ExecuteStatementInput{} + +// End of datatype ExecuteStatementInput + +// Definition of datatype ExecuteStatementOutput +type ExecuteStatementOutput struct { + Data_ExecuteStatementOutput_ +} + +func (_this ExecuteStatementOutput) Get_() Data_ExecuteStatementOutput_ { + return _this.Data_ExecuteStatementOutput_ +} + +type Data_ExecuteStatementOutput_ interface { + isExecuteStatementOutput() +} + +type CompanionStruct_ExecuteStatementOutput_ struct { +} + +var Companion_ExecuteStatementOutput_ = CompanionStruct_ExecuteStatementOutput_{} + +type ExecuteStatementOutput_ExecuteStatementOutput struct { + Items m_Wrappers.Option + NextToken m_Wrappers.Option + ConsumedCapacity m_Wrappers.Option + LastEvaluatedKey m_Wrappers.Option +} + +func (ExecuteStatementOutput_ExecuteStatementOutput) isExecuteStatementOutput() {} + +func (CompanionStruct_ExecuteStatementOutput_) Create_ExecuteStatementOutput_(Items m_Wrappers.Option, NextToken m_Wrappers.Option, ConsumedCapacity m_Wrappers.Option, LastEvaluatedKey m_Wrappers.Option) ExecuteStatementOutput { + return ExecuteStatementOutput{ExecuteStatementOutput_ExecuteStatementOutput{Items, NextToken, ConsumedCapacity, LastEvaluatedKey}} +} + +func (_this ExecuteStatementOutput) Is_ExecuteStatementOutput() bool { + _, ok := _this.Get_().(ExecuteStatementOutput_ExecuteStatementOutput) + return ok +} + +func (CompanionStruct_ExecuteStatementOutput_) Default() ExecuteStatementOutput { + return Companion_ExecuteStatementOutput_.Create_ExecuteStatementOutput_(m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this ExecuteStatementOutput) Dtor_Items() m_Wrappers.Option { + return _this.Get_().(ExecuteStatementOutput_ExecuteStatementOutput).Items +} + +func (_this ExecuteStatementOutput) Dtor_NextToken() m_Wrappers.Option { + return _this.Get_().(ExecuteStatementOutput_ExecuteStatementOutput).NextToken +} + +func (_this ExecuteStatementOutput) Dtor_ConsumedCapacity() m_Wrappers.Option { + return _this.Get_().(ExecuteStatementOutput_ExecuteStatementOutput).ConsumedCapacity +} + +func (_this ExecuteStatementOutput) Dtor_LastEvaluatedKey() m_Wrappers.Option { + return _this.Get_().(ExecuteStatementOutput_ExecuteStatementOutput).LastEvaluatedKey +} + +func (_this ExecuteStatementOutput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case ExecuteStatementOutput_ExecuteStatementOutput: + { + return "ComAmazonawsDynamodbTypes.ExecuteStatementOutput.ExecuteStatementOutput" + "(" + _dafny.String(data.Items) + ", " + _dafny.String(data.NextToken) + ", " + _dafny.String(data.ConsumedCapacity) + ", " + _dafny.String(data.LastEvaluatedKey) + ")" + } + default: + { + return "" + } + } +} + +func (_this ExecuteStatementOutput) Equals(other ExecuteStatementOutput) bool { + switch data1 := _this.Get_().(type) { + case ExecuteStatementOutput_ExecuteStatementOutput: + { + data2, ok := other.Get_().(ExecuteStatementOutput_ExecuteStatementOutput) + return ok && data1.Items.Equals(data2.Items) && data1.NextToken.Equals(data2.NextToken) && data1.ConsumedCapacity.Equals(data2.ConsumedCapacity) && data1.LastEvaluatedKey.Equals(data2.LastEvaluatedKey) + } + default: + { + return false // unexpected + } + } +} + +func (_this ExecuteStatementOutput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(ExecuteStatementOutput) + return ok && _this.Equals(typed) +} + +func Type_ExecuteStatementOutput_() _dafny.TypeDescriptor { + return type_ExecuteStatementOutput_{} +} + +type type_ExecuteStatementOutput_ struct { +} + +func (_this type_ExecuteStatementOutput_) Default() interface{} { + return Companion_ExecuteStatementOutput_.Default() +} + +func (_this type_ExecuteStatementOutput_) String() string { + return "ComAmazonawsDynamodbTypes.ExecuteStatementOutput" +} +func (_this ExecuteStatementOutput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = ExecuteStatementOutput{} + +// End of datatype ExecuteStatementOutput + +// Definition of datatype ExecuteTransactionInput +type ExecuteTransactionInput struct { + Data_ExecuteTransactionInput_ +} + +func (_this ExecuteTransactionInput) Get_() Data_ExecuteTransactionInput_ { + return _this.Data_ExecuteTransactionInput_ +} + +type Data_ExecuteTransactionInput_ interface { + isExecuteTransactionInput() +} + +type CompanionStruct_ExecuteTransactionInput_ struct { +} + +var Companion_ExecuteTransactionInput_ = CompanionStruct_ExecuteTransactionInput_{} + +type ExecuteTransactionInput_ExecuteTransactionInput struct { + TransactStatements _dafny.Sequence + ClientRequestToken m_Wrappers.Option + ReturnConsumedCapacity m_Wrappers.Option +} + +func (ExecuteTransactionInput_ExecuteTransactionInput) isExecuteTransactionInput() {} + +func (CompanionStruct_ExecuteTransactionInput_) Create_ExecuteTransactionInput_(TransactStatements _dafny.Sequence, ClientRequestToken m_Wrappers.Option, ReturnConsumedCapacity m_Wrappers.Option) ExecuteTransactionInput { + return ExecuteTransactionInput{ExecuteTransactionInput_ExecuteTransactionInput{TransactStatements, ClientRequestToken, ReturnConsumedCapacity}} +} + +func (_this ExecuteTransactionInput) Is_ExecuteTransactionInput() bool { + _, ok := _this.Get_().(ExecuteTransactionInput_ExecuteTransactionInput) + return ok +} + +func (CompanionStruct_ExecuteTransactionInput_) Default() ExecuteTransactionInput { + return Companion_ExecuteTransactionInput_.Create_ExecuteTransactionInput_(_dafny.EmptySeq, m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this ExecuteTransactionInput) Dtor_TransactStatements() _dafny.Sequence { + return _this.Get_().(ExecuteTransactionInput_ExecuteTransactionInput).TransactStatements +} + +func (_this ExecuteTransactionInput) Dtor_ClientRequestToken() m_Wrappers.Option { + return _this.Get_().(ExecuteTransactionInput_ExecuteTransactionInput).ClientRequestToken +} + +func (_this ExecuteTransactionInput) Dtor_ReturnConsumedCapacity() m_Wrappers.Option { + return _this.Get_().(ExecuteTransactionInput_ExecuteTransactionInput).ReturnConsumedCapacity +} + +func (_this ExecuteTransactionInput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case ExecuteTransactionInput_ExecuteTransactionInput: + { + return "ComAmazonawsDynamodbTypes.ExecuteTransactionInput.ExecuteTransactionInput" + "(" + _dafny.String(data.TransactStatements) + ", " + _dafny.String(data.ClientRequestToken) + ", " + _dafny.String(data.ReturnConsumedCapacity) + ")" + } + default: + { + return "" + } + } +} + +func (_this ExecuteTransactionInput) Equals(other ExecuteTransactionInput) bool { + switch data1 := _this.Get_().(type) { + case ExecuteTransactionInput_ExecuteTransactionInput: + { + data2, ok := other.Get_().(ExecuteTransactionInput_ExecuteTransactionInput) + return ok && data1.TransactStatements.Equals(data2.TransactStatements) && data1.ClientRequestToken.Equals(data2.ClientRequestToken) && data1.ReturnConsumedCapacity.Equals(data2.ReturnConsumedCapacity) + } + default: + { + return false // unexpected + } + } +} + +func (_this ExecuteTransactionInput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(ExecuteTransactionInput) + return ok && _this.Equals(typed) +} + +func Type_ExecuteTransactionInput_() _dafny.TypeDescriptor { + return type_ExecuteTransactionInput_{} +} + +type type_ExecuteTransactionInput_ struct { +} + +func (_this type_ExecuteTransactionInput_) Default() interface{} { + return Companion_ExecuteTransactionInput_.Default() +} + +func (_this type_ExecuteTransactionInput_) String() string { + return "ComAmazonawsDynamodbTypes.ExecuteTransactionInput" +} +func (_this ExecuteTransactionInput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = ExecuteTransactionInput{} + +// End of datatype ExecuteTransactionInput + +// Definition of datatype ExecuteTransactionOutput +type ExecuteTransactionOutput struct { + Data_ExecuteTransactionOutput_ +} + +func (_this ExecuteTransactionOutput) Get_() Data_ExecuteTransactionOutput_ { + return _this.Data_ExecuteTransactionOutput_ +} + +type Data_ExecuteTransactionOutput_ interface { + isExecuteTransactionOutput() +} + +type CompanionStruct_ExecuteTransactionOutput_ struct { +} + +var Companion_ExecuteTransactionOutput_ = CompanionStruct_ExecuteTransactionOutput_{} + +type ExecuteTransactionOutput_ExecuteTransactionOutput struct { + Responses m_Wrappers.Option + ConsumedCapacity m_Wrappers.Option +} + +func (ExecuteTransactionOutput_ExecuteTransactionOutput) isExecuteTransactionOutput() {} + +func (CompanionStruct_ExecuteTransactionOutput_) Create_ExecuteTransactionOutput_(Responses m_Wrappers.Option, ConsumedCapacity m_Wrappers.Option) ExecuteTransactionOutput { + return ExecuteTransactionOutput{ExecuteTransactionOutput_ExecuteTransactionOutput{Responses, ConsumedCapacity}} +} + +func (_this ExecuteTransactionOutput) Is_ExecuteTransactionOutput() bool { + _, ok := _this.Get_().(ExecuteTransactionOutput_ExecuteTransactionOutput) + return ok +} + +func (CompanionStruct_ExecuteTransactionOutput_) Default() ExecuteTransactionOutput { + return Companion_ExecuteTransactionOutput_.Create_ExecuteTransactionOutput_(m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this ExecuteTransactionOutput) Dtor_Responses() m_Wrappers.Option { + return _this.Get_().(ExecuteTransactionOutput_ExecuteTransactionOutput).Responses +} + +func (_this ExecuteTransactionOutput) Dtor_ConsumedCapacity() m_Wrappers.Option { + return _this.Get_().(ExecuteTransactionOutput_ExecuteTransactionOutput).ConsumedCapacity +} + +func (_this ExecuteTransactionOutput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case ExecuteTransactionOutput_ExecuteTransactionOutput: + { + return "ComAmazonawsDynamodbTypes.ExecuteTransactionOutput.ExecuteTransactionOutput" + "(" + _dafny.String(data.Responses) + ", " + _dafny.String(data.ConsumedCapacity) + ")" + } + default: + { + return "" + } + } +} + +func (_this ExecuteTransactionOutput) Equals(other ExecuteTransactionOutput) bool { + switch data1 := _this.Get_().(type) { + case ExecuteTransactionOutput_ExecuteTransactionOutput: + { + data2, ok := other.Get_().(ExecuteTransactionOutput_ExecuteTransactionOutput) + return ok && data1.Responses.Equals(data2.Responses) && data1.ConsumedCapacity.Equals(data2.ConsumedCapacity) + } + default: + { + return false // unexpected + } + } +} + +func (_this ExecuteTransactionOutput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(ExecuteTransactionOutput) + return ok && _this.Equals(typed) +} + +func Type_ExecuteTransactionOutput_() _dafny.TypeDescriptor { + return type_ExecuteTransactionOutput_{} +} + +type type_ExecuteTransactionOutput_ struct { +} + +func (_this type_ExecuteTransactionOutput_) Default() interface{} { + return Companion_ExecuteTransactionOutput_.Default() +} + +func (_this type_ExecuteTransactionOutput_) String() string { + return "ComAmazonawsDynamodbTypes.ExecuteTransactionOutput" +} +func (_this ExecuteTransactionOutput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = ExecuteTransactionOutput{} + +// End of datatype ExecuteTransactionOutput + +// Definition of datatype ExpectedAttributeValue +type ExpectedAttributeValue struct { + Data_ExpectedAttributeValue_ +} + +func (_this ExpectedAttributeValue) Get_() Data_ExpectedAttributeValue_ { + return _this.Data_ExpectedAttributeValue_ +} + +type Data_ExpectedAttributeValue_ interface { + isExpectedAttributeValue() +} + +type CompanionStruct_ExpectedAttributeValue_ struct { +} + +var Companion_ExpectedAttributeValue_ = CompanionStruct_ExpectedAttributeValue_{} + +type ExpectedAttributeValue_ExpectedAttributeValue struct { + Value m_Wrappers.Option + Exists m_Wrappers.Option + ComparisonOperator m_Wrappers.Option + AttributeValueList m_Wrappers.Option +} + +func (ExpectedAttributeValue_ExpectedAttributeValue) isExpectedAttributeValue() {} + +func (CompanionStruct_ExpectedAttributeValue_) Create_ExpectedAttributeValue_(Value m_Wrappers.Option, Exists m_Wrappers.Option, ComparisonOperator m_Wrappers.Option, AttributeValueList m_Wrappers.Option) ExpectedAttributeValue { + return ExpectedAttributeValue{ExpectedAttributeValue_ExpectedAttributeValue{Value, Exists, ComparisonOperator, AttributeValueList}} +} + +func (_this ExpectedAttributeValue) Is_ExpectedAttributeValue() bool { + _, ok := _this.Get_().(ExpectedAttributeValue_ExpectedAttributeValue) + return ok +} + +func (CompanionStruct_ExpectedAttributeValue_) Default() ExpectedAttributeValue { + return Companion_ExpectedAttributeValue_.Create_ExpectedAttributeValue_(m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this ExpectedAttributeValue) Dtor_Value() m_Wrappers.Option { + return _this.Get_().(ExpectedAttributeValue_ExpectedAttributeValue).Value +} + +func (_this ExpectedAttributeValue) Dtor_Exists() m_Wrappers.Option { + return _this.Get_().(ExpectedAttributeValue_ExpectedAttributeValue).Exists +} + +func (_this ExpectedAttributeValue) Dtor_ComparisonOperator() m_Wrappers.Option { + return _this.Get_().(ExpectedAttributeValue_ExpectedAttributeValue).ComparisonOperator +} + +func (_this ExpectedAttributeValue) Dtor_AttributeValueList() m_Wrappers.Option { + return _this.Get_().(ExpectedAttributeValue_ExpectedAttributeValue).AttributeValueList +} + +func (_this ExpectedAttributeValue) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case ExpectedAttributeValue_ExpectedAttributeValue: + { + return "ComAmazonawsDynamodbTypes.ExpectedAttributeValue.ExpectedAttributeValue" + "(" + _dafny.String(data.Value) + ", " + _dafny.String(data.Exists) + ", " + _dafny.String(data.ComparisonOperator) + ", " + _dafny.String(data.AttributeValueList) + ")" + } + default: + { + return "" + } + } +} + +func (_this ExpectedAttributeValue) Equals(other ExpectedAttributeValue) bool { + switch data1 := _this.Get_().(type) { + case ExpectedAttributeValue_ExpectedAttributeValue: + { + data2, ok := other.Get_().(ExpectedAttributeValue_ExpectedAttributeValue) + return ok && data1.Value.Equals(data2.Value) && data1.Exists.Equals(data2.Exists) && data1.ComparisonOperator.Equals(data2.ComparisonOperator) && data1.AttributeValueList.Equals(data2.AttributeValueList) + } + default: + { + return false // unexpected + } + } +} + +func (_this ExpectedAttributeValue) EqualsGeneric(other interface{}) bool { + typed, ok := other.(ExpectedAttributeValue) + return ok && _this.Equals(typed) +} + +func Type_ExpectedAttributeValue_() _dafny.TypeDescriptor { + return type_ExpectedAttributeValue_{} +} + +type type_ExpectedAttributeValue_ struct { +} + +func (_this type_ExpectedAttributeValue_) Default() interface{} { + return Companion_ExpectedAttributeValue_.Default() +} + +func (_this type_ExpectedAttributeValue_) String() string { + return "ComAmazonawsDynamodbTypes.ExpectedAttributeValue" +} +func (_this ExpectedAttributeValue) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = ExpectedAttributeValue{} + +// End of datatype ExpectedAttributeValue + +// Definition of class ExportArn +type ExportArn struct { +} + +func New_ExportArn_() *ExportArn { + _this := ExportArn{} + + return &_this +} + +type CompanionStruct_ExportArn_ struct { +} + +var Companion_ExportArn_ = CompanionStruct_ExportArn_{} + +func (*ExportArn) String() string { + return "ComAmazonawsDynamodbTypes.ExportArn" +} + +// End of class ExportArn + +func Type_ExportArn_() _dafny.TypeDescriptor { + return type_ExportArn_{} +} + +type type_ExportArn_ struct { +} + +func (_this type_ExportArn_) Default() interface{} { + return _dafny.EmptySeq.SetString() +} + +func (_this type_ExportArn_) String() string { + return "ComAmazonawsDynamodbTypes.ExportArn" +} +func (_this *CompanionStruct_ExportArn_) Is_(__source _dafny.Sequence) bool { + var _1_x _dafny.Sequence = (__source) + _ = _1_x + return Companion_Default___.IsValid__ExportArn(_1_x) +} + +// Definition of datatype ExportDescription +type ExportDescription struct { + Data_ExportDescription_ +} + +func (_this ExportDescription) Get_() Data_ExportDescription_ { + return _this.Data_ExportDescription_ +} + +type Data_ExportDescription_ interface { + isExportDescription() +} + +type CompanionStruct_ExportDescription_ struct { +} + +var Companion_ExportDescription_ = CompanionStruct_ExportDescription_{} + +type ExportDescription_ExportDescription struct { + ExportArn m_Wrappers.Option + ExportStatus m_Wrappers.Option + StartTime m_Wrappers.Option + EndTime m_Wrappers.Option + ExportManifest m_Wrappers.Option + TableArn m_Wrappers.Option + TableId m_Wrappers.Option + ExportTime m_Wrappers.Option + ClientToken m_Wrappers.Option + S3Bucket m_Wrappers.Option + S3BucketOwner m_Wrappers.Option + S3Prefix m_Wrappers.Option + S3SseAlgorithm m_Wrappers.Option + S3SseKmsKeyId m_Wrappers.Option + FailureCode m_Wrappers.Option + FailureMessage m_Wrappers.Option + ExportFormat m_Wrappers.Option + BilledSizeBytes m_Wrappers.Option + ItemCount m_Wrappers.Option + ExportType m_Wrappers.Option + IncrementalExportSpecification m_Wrappers.Option +} + +func (ExportDescription_ExportDescription) isExportDescription() {} + +func (CompanionStruct_ExportDescription_) Create_ExportDescription_(ExportArn m_Wrappers.Option, ExportStatus m_Wrappers.Option, StartTime m_Wrappers.Option, EndTime m_Wrappers.Option, ExportManifest m_Wrappers.Option, TableArn m_Wrappers.Option, TableId m_Wrappers.Option, ExportTime m_Wrappers.Option, ClientToken m_Wrappers.Option, S3Bucket m_Wrappers.Option, S3BucketOwner m_Wrappers.Option, S3Prefix m_Wrappers.Option, S3SseAlgorithm m_Wrappers.Option, S3SseKmsKeyId m_Wrappers.Option, FailureCode m_Wrappers.Option, FailureMessage m_Wrappers.Option, ExportFormat m_Wrappers.Option, BilledSizeBytes m_Wrappers.Option, ItemCount m_Wrappers.Option, ExportType m_Wrappers.Option, IncrementalExportSpecification m_Wrappers.Option) ExportDescription { + return ExportDescription{ExportDescription_ExportDescription{ExportArn, ExportStatus, StartTime, EndTime, ExportManifest, TableArn, TableId, ExportTime, ClientToken, S3Bucket, S3BucketOwner, S3Prefix, S3SseAlgorithm, S3SseKmsKeyId, FailureCode, FailureMessage, ExportFormat, BilledSizeBytes, ItemCount, ExportType, IncrementalExportSpecification}} +} + +func (_this ExportDescription) Is_ExportDescription() bool { + _, ok := _this.Get_().(ExportDescription_ExportDescription) + return ok +} + +func (CompanionStruct_ExportDescription_) Default() ExportDescription { + return Companion_ExportDescription_.Create_ExportDescription_(m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this ExportDescription) Dtor_ExportArn() m_Wrappers.Option { + return _this.Get_().(ExportDescription_ExportDescription).ExportArn +} + +func (_this ExportDescription) Dtor_ExportStatus() m_Wrappers.Option { + return _this.Get_().(ExportDescription_ExportDescription).ExportStatus +} + +func (_this ExportDescription) Dtor_StartTime() m_Wrappers.Option { + return _this.Get_().(ExportDescription_ExportDescription).StartTime +} + +func (_this ExportDescription) Dtor_EndTime() m_Wrappers.Option { + return _this.Get_().(ExportDescription_ExportDescription).EndTime +} + +func (_this ExportDescription) Dtor_ExportManifest() m_Wrappers.Option { + return _this.Get_().(ExportDescription_ExportDescription).ExportManifest +} + +func (_this ExportDescription) Dtor_TableArn() m_Wrappers.Option { + return _this.Get_().(ExportDescription_ExportDescription).TableArn +} + +func (_this ExportDescription) Dtor_TableId() m_Wrappers.Option { + return _this.Get_().(ExportDescription_ExportDescription).TableId +} + +func (_this ExportDescription) Dtor_ExportTime() m_Wrappers.Option { + return _this.Get_().(ExportDescription_ExportDescription).ExportTime +} + +func (_this ExportDescription) Dtor_ClientToken() m_Wrappers.Option { + return _this.Get_().(ExportDescription_ExportDescription).ClientToken +} + +func (_this ExportDescription) Dtor_S3Bucket() m_Wrappers.Option { + return _this.Get_().(ExportDescription_ExportDescription).S3Bucket +} + +func (_this ExportDescription) Dtor_S3BucketOwner() m_Wrappers.Option { + return _this.Get_().(ExportDescription_ExportDescription).S3BucketOwner +} + +func (_this ExportDescription) Dtor_S3Prefix() m_Wrappers.Option { + return _this.Get_().(ExportDescription_ExportDescription).S3Prefix +} + +func (_this ExportDescription) Dtor_S3SseAlgorithm() m_Wrappers.Option { + return _this.Get_().(ExportDescription_ExportDescription).S3SseAlgorithm +} + +func (_this ExportDescription) Dtor_S3SseKmsKeyId() m_Wrappers.Option { + return _this.Get_().(ExportDescription_ExportDescription).S3SseKmsKeyId +} + +func (_this ExportDescription) Dtor_FailureCode() m_Wrappers.Option { + return _this.Get_().(ExportDescription_ExportDescription).FailureCode +} + +func (_this ExportDescription) Dtor_FailureMessage() m_Wrappers.Option { + return _this.Get_().(ExportDescription_ExportDescription).FailureMessage +} + +func (_this ExportDescription) Dtor_ExportFormat() m_Wrappers.Option { + return _this.Get_().(ExportDescription_ExportDescription).ExportFormat +} + +func (_this ExportDescription) Dtor_BilledSizeBytes() m_Wrappers.Option { + return _this.Get_().(ExportDescription_ExportDescription).BilledSizeBytes +} + +func (_this ExportDescription) Dtor_ItemCount() m_Wrappers.Option { + return _this.Get_().(ExportDescription_ExportDescription).ItemCount +} + +func (_this ExportDescription) Dtor_ExportType() m_Wrappers.Option { + return _this.Get_().(ExportDescription_ExportDescription).ExportType +} + +func (_this ExportDescription) Dtor_IncrementalExportSpecification() m_Wrappers.Option { + return _this.Get_().(ExportDescription_ExportDescription).IncrementalExportSpecification +} + +func (_this ExportDescription) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case ExportDescription_ExportDescription: + { + return "ComAmazonawsDynamodbTypes.ExportDescription.ExportDescription" + "(" + _dafny.String(data.ExportArn) + ", " + _dafny.String(data.ExportStatus) + ", " + _dafny.String(data.StartTime) + ", " + _dafny.String(data.EndTime) + ", " + _dafny.String(data.ExportManifest) + ", " + _dafny.String(data.TableArn) + ", " + _dafny.String(data.TableId) + ", " + _dafny.String(data.ExportTime) + ", " + _dafny.String(data.ClientToken) + ", " + _dafny.String(data.S3Bucket) + ", " + _dafny.String(data.S3BucketOwner) + ", " + _dafny.String(data.S3Prefix) + ", " + _dafny.String(data.S3SseAlgorithm) + ", " + _dafny.String(data.S3SseKmsKeyId) + ", " + _dafny.String(data.FailureCode) + ", " + _dafny.String(data.FailureMessage) + ", " + _dafny.String(data.ExportFormat) + ", " + _dafny.String(data.BilledSizeBytes) + ", " + _dafny.String(data.ItemCount) + ", " + _dafny.String(data.ExportType) + ", " + _dafny.String(data.IncrementalExportSpecification) + ")" + } + default: + { + return "" + } + } +} + +func (_this ExportDescription) Equals(other ExportDescription) bool { + switch data1 := _this.Get_().(type) { + case ExportDescription_ExportDescription: + { + data2, ok := other.Get_().(ExportDescription_ExportDescription) + return ok && data1.ExportArn.Equals(data2.ExportArn) && data1.ExportStatus.Equals(data2.ExportStatus) && data1.StartTime.Equals(data2.StartTime) && data1.EndTime.Equals(data2.EndTime) && data1.ExportManifest.Equals(data2.ExportManifest) && data1.TableArn.Equals(data2.TableArn) && data1.TableId.Equals(data2.TableId) && data1.ExportTime.Equals(data2.ExportTime) && data1.ClientToken.Equals(data2.ClientToken) && data1.S3Bucket.Equals(data2.S3Bucket) && data1.S3BucketOwner.Equals(data2.S3BucketOwner) && data1.S3Prefix.Equals(data2.S3Prefix) && data1.S3SseAlgorithm.Equals(data2.S3SseAlgorithm) && data1.S3SseKmsKeyId.Equals(data2.S3SseKmsKeyId) && data1.FailureCode.Equals(data2.FailureCode) && data1.FailureMessage.Equals(data2.FailureMessage) && data1.ExportFormat.Equals(data2.ExportFormat) && data1.BilledSizeBytes.Equals(data2.BilledSizeBytes) && data1.ItemCount.Equals(data2.ItemCount) && data1.ExportType.Equals(data2.ExportType) && data1.IncrementalExportSpecification.Equals(data2.IncrementalExportSpecification) + } + default: + { + return false // unexpected + } + } +} + +func (_this ExportDescription) EqualsGeneric(other interface{}) bool { + typed, ok := other.(ExportDescription) + return ok && _this.Equals(typed) +} + +func Type_ExportDescription_() _dafny.TypeDescriptor { + return type_ExportDescription_{} +} + +type type_ExportDescription_ struct { +} + +func (_this type_ExportDescription_) Default() interface{} { + return Companion_ExportDescription_.Default() +} + +func (_this type_ExportDescription_) String() string { + return "ComAmazonawsDynamodbTypes.ExportDescription" +} +func (_this ExportDescription) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = ExportDescription{} + +// End of datatype ExportDescription + +// Definition of datatype ExportFormat +type ExportFormat struct { + Data_ExportFormat_ +} + +func (_this ExportFormat) Get_() Data_ExportFormat_ { + return _this.Data_ExportFormat_ +} + +type Data_ExportFormat_ interface { + isExportFormat() +} + +type CompanionStruct_ExportFormat_ struct { +} + +var Companion_ExportFormat_ = CompanionStruct_ExportFormat_{} + +type ExportFormat_DYNAMODB__JSON struct { +} + +func (ExportFormat_DYNAMODB__JSON) isExportFormat() {} + +func (CompanionStruct_ExportFormat_) Create_DYNAMODB__JSON_() ExportFormat { + return ExportFormat{ExportFormat_DYNAMODB__JSON{}} +} + +func (_this ExportFormat) Is_DYNAMODB__JSON() bool { + _, ok := _this.Get_().(ExportFormat_DYNAMODB__JSON) + return ok +} + +type ExportFormat_ION struct { +} + +func (ExportFormat_ION) isExportFormat() {} + +func (CompanionStruct_ExportFormat_) Create_ION_() ExportFormat { + return ExportFormat{ExportFormat_ION{}} +} + +func (_this ExportFormat) Is_ION() bool { + _, ok := _this.Get_().(ExportFormat_ION) + return ok +} + +func (CompanionStruct_ExportFormat_) Default() ExportFormat { + return Companion_ExportFormat_.Create_DYNAMODB__JSON_() +} + +func (_ CompanionStruct_ExportFormat_) AllSingletonConstructors() _dafny.Iterator { + i := -1 + return func() (interface{}, bool) { + i++ + switch i { + case 0: + return Companion_ExportFormat_.Create_DYNAMODB__JSON_(), true + case 1: + return Companion_ExportFormat_.Create_ION_(), true + default: + return ExportFormat{}, false + } + } +} + +func (_this ExportFormat) String() string { + switch _this.Get_().(type) { + case nil: + return "null" + case ExportFormat_DYNAMODB__JSON: + { + return "ComAmazonawsDynamodbTypes.ExportFormat.DYNAMODB_JSON" + } + case ExportFormat_ION: + { + return "ComAmazonawsDynamodbTypes.ExportFormat.ION" + } + default: + { + return "" + } + } +} + +func (_this ExportFormat) Equals(other ExportFormat) bool { + switch _this.Get_().(type) { + case ExportFormat_DYNAMODB__JSON: + { + _, ok := other.Get_().(ExportFormat_DYNAMODB__JSON) + return ok + } + case ExportFormat_ION: + { + _, ok := other.Get_().(ExportFormat_ION) + return ok + } + default: + { + return false // unexpected + } + } +} + +func (_this ExportFormat) EqualsGeneric(other interface{}) bool { + typed, ok := other.(ExportFormat) + return ok && _this.Equals(typed) +} + +func Type_ExportFormat_() _dafny.TypeDescriptor { + return type_ExportFormat_{} +} + +type type_ExportFormat_ struct { +} + +func (_this type_ExportFormat_) Default() interface{} { + return Companion_ExportFormat_.Default() +} + +func (_this type_ExportFormat_) String() string { + return "ComAmazonawsDynamodbTypes.ExportFormat" +} +func (_this ExportFormat) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = ExportFormat{} + +// End of datatype ExportFormat + +// Definition of datatype ExportStatus +type ExportStatus struct { + Data_ExportStatus_ +} + +func (_this ExportStatus) Get_() Data_ExportStatus_ { + return _this.Data_ExportStatus_ +} + +type Data_ExportStatus_ interface { + isExportStatus() +} + +type CompanionStruct_ExportStatus_ struct { +} + +var Companion_ExportStatus_ = CompanionStruct_ExportStatus_{} + +type ExportStatus_IN__PROGRESS struct { +} + +func (ExportStatus_IN__PROGRESS) isExportStatus() {} + +func (CompanionStruct_ExportStatus_) Create_IN__PROGRESS_() ExportStatus { + return ExportStatus{ExportStatus_IN__PROGRESS{}} +} + +func (_this ExportStatus) Is_IN__PROGRESS() bool { + _, ok := _this.Get_().(ExportStatus_IN__PROGRESS) + return ok +} + +type ExportStatus_COMPLETED struct { +} + +func (ExportStatus_COMPLETED) isExportStatus() {} + +func (CompanionStruct_ExportStatus_) Create_COMPLETED_() ExportStatus { + return ExportStatus{ExportStatus_COMPLETED{}} +} + +func (_this ExportStatus) Is_COMPLETED() bool { + _, ok := _this.Get_().(ExportStatus_COMPLETED) + return ok +} + +type ExportStatus_FAILED struct { +} + +func (ExportStatus_FAILED) isExportStatus() {} + +func (CompanionStruct_ExportStatus_) Create_FAILED_() ExportStatus { + return ExportStatus{ExportStatus_FAILED{}} +} + +func (_this ExportStatus) Is_FAILED() bool { + _, ok := _this.Get_().(ExportStatus_FAILED) + return ok +} + +func (CompanionStruct_ExportStatus_) Default() ExportStatus { + return Companion_ExportStatus_.Create_IN__PROGRESS_() +} + +func (_ CompanionStruct_ExportStatus_) AllSingletonConstructors() _dafny.Iterator { + i := -1 + return func() (interface{}, bool) { + i++ + switch i { + case 0: + return Companion_ExportStatus_.Create_IN__PROGRESS_(), true + case 1: + return Companion_ExportStatus_.Create_COMPLETED_(), true + case 2: + return Companion_ExportStatus_.Create_FAILED_(), true + default: + return ExportStatus{}, false + } + } +} + +func (_this ExportStatus) String() string { + switch _this.Get_().(type) { + case nil: + return "null" + case ExportStatus_IN__PROGRESS: + { + return "ComAmazonawsDynamodbTypes.ExportStatus.IN_PROGRESS" + } + case ExportStatus_COMPLETED: + { + return "ComAmazonawsDynamodbTypes.ExportStatus.COMPLETED" + } + case ExportStatus_FAILED: + { + return "ComAmazonawsDynamodbTypes.ExportStatus.FAILED" + } + default: + { + return "" + } + } +} + +func (_this ExportStatus) Equals(other ExportStatus) bool { + switch _this.Get_().(type) { + case ExportStatus_IN__PROGRESS: + { + _, ok := other.Get_().(ExportStatus_IN__PROGRESS) + return ok + } + case ExportStatus_COMPLETED: + { + _, ok := other.Get_().(ExportStatus_COMPLETED) + return ok + } + case ExportStatus_FAILED: + { + _, ok := other.Get_().(ExportStatus_FAILED) + return ok + } + default: + { + return false // unexpected + } + } +} + +func (_this ExportStatus) EqualsGeneric(other interface{}) bool { + typed, ok := other.(ExportStatus) + return ok && _this.Equals(typed) +} + +func Type_ExportStatus_() _dafny.TypeDescriptor { + return type_ExportStatus_{} +} + +type type_ExportStatus_ struct { +} + +func (_this type_ExportStatus_) Default() interface{} { + return Companion_ExportStatus_.Default() +} + +func (_this type_ExportStatus_) String() string { + return "ComAmazonawsDynamodbTypes.ExportStatus" +} +func (_this ExportStatus) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = ExportStatus{} + +// End of datatype ExportStatus + +// Definition of datatype ExportSummary +type ExportSummary struct { + Data_ExportSummary_ +} + +func (_this ExportSummary) Get_() Data_ExportSummary_ { + return _this.Data_ExportSummary_ +} + +type Data_ExportSummary_ interface { + isExportSummary() +} + +type CompanionStruct_ExportSummary_ struct { +} + +var Companion_ExportSummary_ = CompanionStruct_ExportSummary_{} + +type ExportSummary_ExportSummary struct { + ExportArn m_Wrappers.Option + ExportStatus m_Wrappers.Option + ExportType m_Wrappers.Option +} + +func (ExportSummary_ExportSummary) isExportSummary() {} + +func (CompanionStruct_ExportSummary_) Create_ExportSummary_(ExportArn m_Wrappers.Option, ExportStatus m_Wrappers.Option, ExportType m_Wrappers.Option) ExportSummary { + return ExportSummary{ExportSummary_ExportSummary{ExportArn, ExportStatus, ExportType}} +} + +func (_this ExportSummary) Is_ExportSummary() bool { + _, ok := _this.Get_().(ExportSummary_ExportSummary) + return ok +} + +func (CompanionStruct_ExportSummary_) Default() ExportSummary { + return Companion_ExportSummary_.Create_ExportSummary_(m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this ExportSummary) Dtor_ExportArn() m_Wrappers.Option { + return _this.Get_().(ExportSummary_ExportSummary).ExportArn +} + +func (_this ExportSummary) Dtor_ExportStatus() m_Wrappers.Option { + return _this.Get_().(ExportSummary_ExportSummary).ExportStatus +} + +func (_this ExportSummary) Dtor_ExportType() m_Wrappers.Option { + return _this.Get_().(ExportSummary_ExportSummary).ExportType +} + +func (_this ExportSummary) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case ExportSummary_ExportSummary: + { + return "ComAmazonawsDynamodbTypes.ExportSummary.ExportSummary" + "(" + _dafny.String(data.ExportArn) + ", " + _dafny.String(data.ExportStatus) + ", " + _dafny.String(data.ExportType) + ")" + } + default: + { + return "" + } + } +} + +func (_this ExportSummary) Equals(other ExportSummary) bool { + switch data1 := _this.Get_().(type) { + case ExportSummary_ExportSummary: + { + data2, ok := other.Get_().(ExportSummary_ExportSummary) + return ok && data1.ExportArn.Equals(data2.ExportArn) && data1.ExportStatus.Equals(data2.ExportStatus) && data1.ExportType.Equals(data2.ExportType) + } + default: + { + return false // unexpected + } + } +} + +func (_this ExportSummary) EqualsGeneric(other interface{}) bool { + typed, ok := other.(ExportSummary) + return ok && _this.Equals(typed) +} + +func Type_ExportSummary_() _dafny.TypeDescriptor { + return type_ExportSummary_{} +} + +type type_ExportSummary_ struct { +} + +func (_this type_ExportSummary_) Default() interface{} { + return Companion_ExportSummary_.Default() +} + +func (_this type_ExportSummary_) String() string { + return "ComAmazonawsDynamodbTypes.ExportSummary" +} +func (_this ExportSummary) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = ExportSummary{} + +// End of datatype ExportSummary + +// Definition of datatype ExportTableToPointInTimeInput +type ExportTableToPointInTimeInput struct { + Data_ExportTableToPointInTimeInput_ +} + +func (_this ExportTableToPointInTimeInput) Get_() Data_ExportTableToPointInTimeInput_ { + return _this.Data_ExportTableToPointInTimeInput_ +} + +type Data_ExportTableToPointInTimeInput_ interface { + isExportTableToPointInTimeInput() +} + +type CompanionStruct_ExportTableToPointInTimeInput_ struct { +} + +var Companion_ExportTableToPointInTimeInput_ = CompanionStruct_ExportTableToPointInTimeInput_{} + +type ExportTableToPointInTimeInput_ExportTableToPointInTimeInput struct { + TableArn _dafny.Sequence + ExportTime m_Wrappers.Option + ClientToken m_Wrappers.Option + S3Bucket _dafny.Sequence + S3BucketOwner m_Wrappers.Option + S3Prefix m_Wrappers.Option + S3SseAlgorithm m_Wrappers.Option + S3SseKmsKeyId m_Wrappers.Option + ExportFormat m_Wrappers.Option + ExportType m_Wrappers.Option + IncrementalExportSpecification m_Wrappers.Option +} + +func (ExportTableToPointInTimeInput_ExportTableToPointInTimeInput) isExportTableToPointInTimeInput() { +} + +func (CompanionStruct_ExportTableToPointInTimeInput_) Create_ExportTableToPointInTimeInput_(TableArn _dafny.Sequence, ExportTime m_Wrappers.Option, ClientToken m_Wrappers.Option, S3Bucket _dafny.Sequence, S3BucketOwner m_Wrappers.Option, S3Prefix m_Wrappers.Option, S3SseAlgorithm m_Wrappers.Option, S3SseKmsKeyId m_Wrappers.Option, ExportFormat m_Wrappers.Option, ExportType m_Wrappers.Option, IncrementalExportSpecification m_Wrappers.Option) ExportTableToPointInTimeInput { + return ExportTableToPointInTimeInput{ExportTableToPointInTimeInput_ExportTableToPointInTimeInput{TableArn, ExportTime, ClientToken, S3Bucket, S3BucketOwner, S3Prefix, S3SseAlgorithm, S3SseKmsKeyId, ExportFormat, ExportType, IncrementalExportSpecification}} +} + +func (_this ExportTableToPointInTimeInput) Is_ExportTableToPointInTimeInput() bool { + _, ok := _this.Get_().(ExportTableToPointInTimeInput_ExportTableToPointInTimeInput) + return ok +} + +func (CompanionStruct_ExportTableToPointInTimeInput_) Default() ExportTableToPointInTimeInput { + return Companion_ExportTableToPointInTimeInput_.Create_ExportTableToPointInTimeInput_(_dafny.EmptySeq.SetString(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), _dafny.EmptySeq.SetString(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this ExportTableToPointInTimeInput) Dtor_TableArn() _dafny.Sequence { + return _this.Get_().(ExportTableToPointInTimeInput_ExportTableToPointInTimeInput).TableArn +} + +func (_this ExportTableToPointInTimeInput) Dtor_ExportTime() m_Wrappers.Option { + return _this.Get_().(ExportTableToPointInTimeInput_ExportTableToPointInTimeInput).ExportTime +} + +func (_this ExportTableToPointInTimeInput) Dtor_ClientToken() m_Wrappers.Option { + return _this.Get_().(ExportTableToPointInTimeInput_ExportTableToPointInTimeInput).ClientToken +} + +func (_this ExportTableToPointInTimeInput) Dtor_S3Bucket() _dafny.Sequence { + return _this.Get_().(ExportTableToPointInTimeInput_ExportTableToPointInTimeInput).S3Bucket +} + +func (_this ExportTableToPointInTimeInput) Dtor_S3BucketOwner() m_Wrappers.Option { + return _this.Get_().(ExportTableToPointInTimeInput_ExportTableToPointInTimeInput).S3BucketOwner +} + +func (_this ExportTableToPointInTimeInput) Dtor_S3Prefix() m_Wrappers.Option { + return _this.Get_().(ExportTableToPointInTimeInput_ExportTableToPointInTimeInput).S3Prefix +} + +func (_this ExportTableToPointInTimeInput) Dtor_S3SseAlgorithm() m_Wrappers.Option { + return _this.Get_().(ExportTableToPointInTimeInput_ExportTableToPointInTimeInput).S3SseAlgorithm +} + +func (_this ExportTableToPointInTimeInput) Dtor_S3SseKmsKeyId() m_Wrappers.Option { + return _this.Get_().(ExportTableToPointInTimeInput_ExportTableToPointInTimeInput).S3SseKmsKeyId +} + +func (_this ExportTableToPointInTimeInput) Dtor_ExportFormat() m_Wrappers.Option { + return _this.Get_().(ExportTableToPointInTimeInput_ExportTableToPointInTimeInput).ExportFormat +} + +func (_this ExportTableToPointInTimeInput) Dtor_ExportType() m_Wrappers.Option { + return _this.Get_().(ExportTableToPointInTimeInput_ExportTableToPointInTimeInput).ExportType +} + +func (_this ExportTableToPointInTimeInput) Dtor_IncrementalExportSpecification() m_Wrappers.Option { + return _this.Get_().(ExportTableToPointInTimeInput_ExportTableToPointInTimeInput).IncrementalExportSpecification +} + +func (_this ExportTableToPointInTimeInput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case ExportTableToPointInTimeInput_ExportTableToPointInTimeInput: + { + return "ComAmazonawsDynamodbTypes.ExportTableToPointInTimeInput.ExportTableToPointInTimeInput" + "(" + _dafny.String(data.TableArn) + ", " + _dafny.String(data.ExportTime) + ", " + _dafny.String(data.ClientToken) + ", " + _dafny.String(data.S3Bucket) + ", " + _dafny.String(data.S3BucketOwner) + ", " + _dafny.String(data.S3Prefix) + ", " + _dafny.String(data.S3SseAlgorithm) + ", " + _dafny.String(data.S3SseKmsKeyId) + ", " + _dafny.String(data.ExportFormat) + ", " + _dafny.String(data.ExportType) + ", " + _dafny.String(data.IncrementalExportSpecification) + ")" + } + default: + { + return "" + } + } +} + +func (_this ExportTableToPointInTimeInput) Equals(other ExportTableToPointInTimeInput) bool { + switch data1 := _this.Get_().(type) { + case ExportTableToPointInTimeInput_ExportTableToPointInTimeInput: + { + data2, ok := other.Get_().(ExportTableToPointInTimeInput_ExportTableToPointInTimeInput) + return ok && data1.TableArn.Equals(data2.TableArn) && data1.ExportTime.Equals(data2.ExportTime) && data1.ClientToken.Equals(data2.ClientToken) && data1.S3Bucket.Equals(data2.S3Bucket) && data1.S3BucketOwner.Equals(data2.S3BucketOwner) && data1.S3Prefix.Equals(data2.S3Prefix) && data1.S3SseAlgorithm.Equals(data2.S3SseAlgorithm) && data1.S3SseKmsKeyId.Equals(data2.S3SseKmsKeyId) && data1.ExportFormat.Equals(data2.ExportFormat) && data1.ExportType.Equals(data2.ExportType) && data1.IncrementalExportSpecification.Equals(data2.IncrementalExportSpecification) + } + default: + { + return false // unexpected + } + } +} + +func (_this ExportTableToPointInTimeInput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(ExportTableToPointInTimeInput) + return ok && _this.Equals(typed) +} + +func Type_ExportTableToPointInTimeInput_() _dafny.TypeDescriptor { + return type_ExportTableToPointInTimeInput_{} +} + +type type_ExportTableToPointInTimeInput_ struct { +} + +func (_this type_ExportTableToPointInTimeInput_) Default() interface{} { + return Companion_ExportTableToPointInTimeInput_.Default() +} + +func (_this type_ExportTableToPointInTimeInput_) String() string { + return "ComAmazonawsDynamodbTypes.ExportTableToPointInTimeInput" +} +func (_this ExportTableToPointInTimeInput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = ExportTableToPointInTimeInput{} + +// End of datatype ExportTableToPointInTimeInput + +// Definition of datatype ExportTableToPointInTimeOutput +type ExportTableToPointInTimeOutput struct { + Data_ExportTableToPointInTimeOutput_ +} + +func (_this ExportTableToPointInTimeOutput) Get_() Data_ExportTableToPointInTimeOutput_ { + return _this.Data_ExportTableToPointInTimeOutput_ +} + +type Data_ExportTableToPointInTimeOutput_ interface { + isExportTableToPointInTimeOutput() +} + +type CompanionStruct_ExportTableToPointInTimeOutput_ struct { +} + +var Companion_ExportTableToPointInTimeOutput_ = CompanionStruct_ExportTableToPointInTimeOutput_{} + +type ExportTableToPointInTimeOutput_ExportTableToPointInTimeOutput struct { + ExportDescription m_Wrappers.Option +} + +func (ExportTableToPointInTimeOutput_ExportTableToPointInTimeOutput) isExportTableToPointInTimeOutput() { +} + +func (CompanionStruct_ExportTableToPointInTimeOutput_) Create_ExportTableToPointInTimeOutput_(ExportDescription m_Wrappers.Option) ExportTableToPointInTimeOutput { + return ExportTableToPointInTimeOutput{ExportTableToPointInTimeOutput_ExportTableToPointInTimeOutput{ExportDescription}} +} + +func (_this ExportTableToPointInTimeOutput) Is_ExportTableToPointInTimeOutput() bool { + _, ok := _this.Get_().(ExportTableToPointInTimeOutput_ExportTableToPointInTimeOutput) + return ok +} + +func (CompanionStruct_ExportTableToPointInTimeOutput_) Default() ExportTableToPointInTimeOutput { + return Companion_ExportTableToPointInTimeOutput_.Create_ExportTableToPointInTimeOutput_(m_Wrappers.Companion_Option_.Default()) +} + +func (_this ExportTableToPointInTimeOutput) Dtor_ExportDescription() m_Wrappers.Option { + return _this.Get_().(ExportTableToPointInTimeOutput_ExportTableToPointInTimeOutput).ExportDescription +} + +func (_this ExportTableToPointInTimeOutput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case ExportTableToPointInTimeOutput_ExportTableToPointInTimeOutput: + { + return "ComAmazonawsDynamodbTypes.ExportTableToPointInTimeOutput.ExportTableToPointInTimeOutput" + "(" + _dafny.String(data.ExportDescription) + ")" + } + default: + { + return "" + } + } +} + +func (_this ExportTableToPointInTimeOutput) Equals(other ExportTableToPointInTimeOutput) bool { + switch data1 := _this.Get_().(type) { + case ExportTableToPointInTimeOutput_ExportTableToPointInTimeOutput: + { + data2, ok := other.Get_().(ExportTableToPointInTimeOutput_ExportTableToPointInTimeOutput) + return ok && data1.ExportDescription.Equals(data2.ExportDescription) + } + default: + { + return false // unexpected + } + } +} + +func (_this ExportTableToPointInTimeOutput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(ExportTableToPointInTimeOutput) + return ok && _this.Equals(typed) +} + +func Type_ExportTableToPointInTimeOutput_() _dafny.TypeDescriptor { + return type_ExportTableToPointInTimeOutput_{} +} + +type type_ExportTableToPointInTimeOutput_ struct { +} + +func (_this type_ExportTableToPointInTimeOutput_) Default() interface{} { + return Companion_ExportTableToPointInTimeOutput_.Default() +} + +func (_this type_ExportTableToPointInTimeOutput_) String() string { + return "ComAmazonawsDynamodbTypes.ExportTableToPointInTimeOutput" +} +func (_this ExportTableToPointInTimeOutput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = ExportTableToPointInTimeOutput{} + +// End of datatype ExportTableToPointInTimeOutput + +// Definition of datatype ExportType +type ExportType struct { + Data_ExportType_ +} + +func (_this ExportType) Get_() Data_ExportType_ { + return _this.Data_ExportType_ +} + +type Data_ExportType_ interface { + isExportType() +} + +type CompanionStruct_ExportType_ struct { +} + +var Companion_ExportType_ = CompanionStruct_ExportType_{} + +type ExportType_FULL__EXPORT struct { +} + +func (ExportType_FULL__EXPORT) isExportType() {} + +func (CompanionStruct_ExportType_) Create_FULL__EXPORT_() ExportType { + return ExportType{ExportType_FULL__EXPORT{}} +} + +func (_this ExportType) Is_FULL__EXPORT() bool { + _, ok := _this.Get_().(ExportType_FULL__EXPORT) + return ok +} + +type ExportType_INCREMENTAL__EXPORT struct { +} + +func (ExportType_INCREMENTAL__EXPORT) isExportType() {} + +func (CompanionStruct_ExportType_) Create_INCREMENTAL__EXPORT_() ExportType { + return ExportType{ExportType_INCREMENTAL__EXPORT{}} +} + +func (_this ExportType) Is_INCREMENTAL__EXPORT() bool { + _, ok := _this.Get_().(ExportType_INCREMENTAL__EXPORT) + return ok +} + +func (CompanionStruct_ExportType_) Default() ExportType { + return Companion_ExportType_.Create_FULL__EXPORT_() +} + +func (_ CompanionStruct_ExportType_) AllSingletonConstructors() _dafny.Iterator { + i := -1 + return func() (interface{}, bool) { + i++ + switch i { + case 0: + return Companion_ExportType_.Create_FULL__EXPORT_(), true + case 1: + return Companion_ExportType_.Create_INCREMENTAL__EXPORT_(), true + default: + return ExportType{}, false + } + } +} + +func (_this ExportType) String() string { + switch _this.Get_().(type) { + case nil: + return "null" + case ExportType_FULL__EXPORT: + { + return "ComAmazonawsDynamodbTypes.ExportType.FULL_EXPORT" + } + case ExportType_INCREMENTAL__EXPORT: + { + return "ComAmazonawsDynamodbTypes.ExportType.INCREMENTAL_EXPORT" + } + default: + { + return "" + } + } +} + +func (_this ExportType) Equals(other ExportType) bool { + switch _this.Get_().(type) { + case ExportType_FULL__EXPORT: + { + _, ok := other.Get_().(ExportType_FULL__EXPORT) + return ok + } + case ExportType_INCREMENTAL__EXPORT: + { + _, ok := other.Get_().(ExportType_INCREMENTAL__EXPORT) + return ok + } + default: + { + return false // unexpected + } + } +} + +func (_this ExportType) EqualsGeneric(other interface{}) bool { + typed, ok := other.(ExportType) + return ok && _this.Equals(typed) +} + +func Type_ExportType_() _dafny.TypeDescriptor { + return type_ExportType_{} +} + +type type_ExportType_ struct { +} + +func (_this type_ExportType_) Default() interface{} { + return Companion_ExportType_.Default() +} + +func (_this type_ExportType_) String() string { + return "ComAmazonawsDynamodbTypes.ExportType" +} +func (_this ExportType) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = ExportType{} + +// End of datatype ExportType + +// Definition of datatype ExportViewType +type ExportViewType struct { + Data_ExportViewType_ +} + +func (_this ExportViewType) Get_() Data_ExportViewType_ { + return _this.Data_ExportViewType_ +} + +type Data_ExportViewType_ interface { + isExportViewType() +} + +type CompanionStruct_ExportViewType_ struct { +} + +var Companion_ExportViewType_ = CompanionStruct_ExportViewType_{} + +type ExportViewType_NEW__IMAGE struct { +} + +func (ExportViewType_NEW__IMAGE) isExportViewType() {} + +func (CompanionStruct_ExportViewType_) Create_NEW__IMAGE_() ExportViewType { + return ExportViewType{ExportViewType_NEW__IMAGE{}} +} + +func (_this ExportViewType) Is_NEW__IMAGE() bool { + _, ok := _this.Get_().(ExportViewType_NEW__IMAGE) + return ok +} + +type ExportViewType_NEW__AND__OLD__IMAGES struct { +} + +func (ExportViewType_NEW__AND__OLD__IMAGES) isExportViewType() {} + +func (CompanionStruct_ExportViewType_) Create_NEW__AND__OLD__IMAGES_() ExportViewType { + return ExportViewType{ExportViewType_NEW__AND__OLD__IMAGES{}} +} + +func (_this ExportViewType) Is_NEW__AND__OLD__IMAGES() bool { + _, ok := _this.Get_().(ExportViewType_NEW__AND__OLD__IMAGES) + return ok +} + +func (CompanionStruct_ExportViewType_) Default() ExportViewType { + return Companion_ExportViewType_.Create_NEW__IMAGE_() +} + +func (_ CompanionStruct_ExportViewType_) AllSingletonConstructors() _dafny.Iterator { + i := -1 + return func() (interface{}, bool) { + i++ + switch i { + case 0: + return Companion_ExportViewType_.Create_NEW__IMAGE_(), true + case 1: + return Companion_ExportViewType_.Create_NEW__AND__OLD__IMAGES_(), true + default: + return ExportViewType{}, false + } + } +} + +func (_this ExportViewType) String() string { + switch _this.Get_().(type) { + case nil: + return "null" + case ExportViewType_NEW__IMAGE: + { + return "ComAmazonawsDynamodbTypes.ExportViewType.NEW_IMAGE" + } + case ExportViewType_NEW__AND__OLD__IMAGES: + { + return "ComAmazonawsDynamodbTypes.ExportViewType.NEW_AND_OLD_IMAGES" + } + default: + { + return "" + } + } +} + +func (_this ExportViewType) Equals(other ExportViewType) bool { + switch _this.Get_().(type) { + case ExportViewType_NEW__IMAGE: + { + _, ok := other.Get_().(ExportViewType_NEW__IMAGE) + return ok + } + case ExportViewType_NEW__AND__OLD__IMAGES: + { + _, ok := other.Get_().(ExportViewType_NEW__AND__OLD__IMAGES) + return ok + } + default: + { + return false // unexpected + } + } +} + +func (_this ExportViewType) EqualsGeneric(other interface{}) bool { + typed, ok := other.(ExportViewType) + return ok && _this.Equals(typed) +} + +func Type_ExportViewType_() _dafny.TypeDescriptor { + return type_ExportViewType_{} +} + +type type_ExportViewType_ struct { +} + +func (_this type_ExportViewType_) Default() interface{} { + return Companion_ExportViewType_.Default() +} + +func (_this type_ExportViewType_) String() string { + return "ComAmazonawsDynamodbTypes.ExportViewType" +} +func (_this ExportViewType) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = ExportViewType{} + +// End of datatype ExportViewType + +// Definition of datatype FailureException +type FailureException struct { + Data_FailureException_ +} + +func (_this FailureException) Get_() Data_FailureException_ { + return _this.Data_FailureException_ +} + +type Data_FailureException_ interface { + isFailureException() +} + +type CompanionStruct_FailureException_ struct { +} + +var Companion_FailureException_ = CompanionStruct_FailureException_{} + +type FailureException_FailureException struct { + ExceptionName m_Wrappers.Option + ExceptionDescription m_Wrappers.Option +} + +func (FailureException_FailureException) isFailureException() {} + +func (CompanionStruct_FailureException_) Create_FailureException_(ExceptionName m_Wrappers.Option, ExceptionDescription m_Wrappers.Option) FailureException { + return FailureException{FailureException_FailureException{ExceptionName, ExceptionDescription}} +} + +func (_this FailureException) Is_FailureException() bool { + _, ok := _this.Get_().(FailureException_FailureException) + return ok +} + +func (CompanionStruct_FailureException_) Default() FailureException { + return Companion_FailureException_.Create_FailureException_(m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this FailureException) Dtor_ExceptionName() m_Wrappers.Option { + return _this.Get_().(FailureException_FailureException).ExceptionName +} + +func (_this FailureException) Dtor_ExceptionDescription() m_Wrappers.Option { + return _this.Get_().(FailureException_FailureException).ExceptionDescription +} + +func (_this FailureException) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case FailureException_FailureException: + { + return "ComAmazonawsDynamodbTypes.FailureException.FailureException" + "(" + _dafny.String(data.ExceptionName) + ", " + _dafny.String(data.ExceptionDescription) + ")" + } + default: + { + return "" + } + } +} + +func (_this FailureException) Equals(other FailureException) bool { + switch data1 := _this.Get_().(type) { + case FailureException_FailureException: + { + data2, ok := other.Get_().(FailureException_FailureException) + return ok && data1.ExceptionName.Equals(data2.ExceptionName) && data1.ExceptionDescription.Equals(data2.ExceptionDescription) + } + default: + { + return false // unexpected + } + } +} + +func (_this FailureException) EqualsGeneric(other interface{}) bool { + typed, ok := other.(FailureException) + return ok && _this.Equals(typed) +} + +func Type_FailureException_() _dafny.TypeDescriptor { + return type_FailureException_{} +} + +type type_FailureException_ struct { +} + +func (_this type_FailureException_) Default() interface{} { + return Companion_FailureException_.Default() +} + +func (_this type_FailureException_) String() string { + return "ComAmazonawsDynamodbTypes.FailureException" +} +func (_this FailureException) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = FailureException{} + +// End of datatype FailureException + +// Definition of datatype Get +type Get struct { + Data_Get_ +} + +func (_this Get) Get_() Data_Get_ { + return _this.Data_Get_ +} + +type Data_Get_ interface { + isGet() +} + +type CompanionStruct_Get_ struct { +} + +var Companion_Get_ = CompanionStruct_Get_{} + +type Get_Get struct { + Key _dafny.Map + TableName _dafny.Sequence + ProjectionExpression m_Wrappers.Option + ExpressionAttributeNames m_Wrappers.Option +} + +func (Get_Get) isGet() {} + +func (CompanionStruct_Get_) Create_Get_(Key _dafny.Map, TableName _dafny.Sequence, ProjectionExpression m_Wrappers.Option, ExpressionAttributeNames m_Wrappers.Option) Get { + return Get{Get_Get{Key, TableName, ProjectionExpression, ExpressionAttributeNames}} +} + +func (_this Get) Is_Get() bool { + _, ok := _this.Get_().(Get_Get) + return ok +} + +func (CompanionStruct_Get_) Default() Get { + return Companion_Get_.Create_Get_(_dafny.EmptyMap, _dafny.EmptySeq.SetString(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this Get) Dtor_Key() _dafny.Map { + return _this.Get_().(Get_Get).Key +} + +func (_this Get) Dtor_TableName() _dafny.Sequence { + return _this.Get_().(Get_Get).TableName +} + +func (_this Get) Dtor_ProjectionExpression() m_Wrappers.Option { + return _this.Get_().(Get_Get).ProjectionExpression +} + +func (_this Get) Dtor_ExpressionAttributeNames() m_Wrappers.Option { + return _this.Get_().(Get_Get).ExpressionAttributeNames +} + +func (_this Get) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case Get_Get: + { + return "ComAmazonawsDynamodbTypes.Get.Get" + "(" + _dafny.String(data.Key) + ", " + _dafny.String(data.TableName) + ", " + _dafny.String(data.ProjectionExpression) + ", " + _dafny.String(data.ExpressionAttributeNames) + ")" + } + default: + { + return "" + } + } +} + +func (_this Get) Equals(other Get) bool { + switch data1 := _this.Get_().(type) { + case Get_Get: + { + data2, ok := other.Get_().(Get_Get) + return ok && data1.Key.Equals(data2.Key) && data1.TableName.Equals(data2.TableName) && data1.ProjectionExpression.Equals(data2.ProjectionExpression) && data1.ExpressionAttributeNames.Equals(data2.ExpressionAttributeNames) + } + default: + { + return false // unexpected + } + } +} + +func (_this Get) EqualsGeneric(other interface{}) bool { + typed, ok := other.(Get) + return ok && _this.Equals(typed) +} + +func Type_Get_() _dafny.TypeDescriptor { + return type_Get_{} +} + +type type_Get_ struct { +} + +func (_this type_Get_) Default() interface{} { + return Companion_Get_.Default() +} + +func (_this type_Get_) String() string { + return "ComAmazonawsDynamodbTypes.Get" +} +func (_this Get) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = Get{} + +// End of datatype Get + +// Definition of datatype GetItemInput +type GetItemInput struct { + Data_GetItemInput_ +} + +func (_this GetItemInput) Get_() Data_GetItemInput_ { + return _this.Data_GetItemInput_ +} + +type Data_GetItemInput_ interface { + isGetItemInput() +} + +type CompanionStruct_GetItemInput_ struct { +} + +var Companion_GetItemInput_ = CompanionStruct_GetItemInput_{} + +type GetItemInput_GetItemInput struct { + TableName _dafny.Sequence + Key _dafny.Map + AttributesToGet m_Wrappers.Option + ConsistentRead m_Wrappers.Option + ReturnConsumedCapacity m_Wrappers.Option + ProjectionExpression m_Wrappers.Option + ExpressionAttributeNames m_Wrappers.Option +} + +func (GetItemInput_GetItemInput) isGetItemInput() {} + +func (CompanionStruct_GetItemInput_) Create_GetItemInput_(TableName _dafny.Sequence, Key _dafny.Map, AttributesToGet m_Wrappers.Option, ConsistentRead m_Wrappers.Option, ReturnConsumedCapacity m_Wrappers.Option, ProjectionExpression m_Wrappers.Option, ExpressionAttributeNames m_Wrappers.Option) GetItemInput { + return GetItemInput{GetItemInput_GetItemInput{TableName, Key, AttributesToGet, ConsistentRead, ReturnConsumedCapacity, ProjectionExpression, ExpressionAttributeNames}} +} + +func (_this GetItemInput) Is_GetItemInput() bool { + _, ok := _this.Get_().(GetItemInput_GetItemInput) + return ok +} + +func (CompanionStruct_GetItemInput_) Default() GetItemInput { + return Companion_GetItemInput_.Create_GetItemInput_(_dafny.EmptySeq.SetString(), _dafny.EmptyMap, m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this GetItemInput) Dtor_TableName() _dafny.Sequence { + return _this.Get_().(GetItemInput_GetItemInput).TableName +} + +func (_this GetItemInput) Dtor_Key() _dafny.Map { + return _this.Get_().(GetItemInput_GetItemInput).Key +} + +func (_this GetItemInput) Dtor_AttributesToGet() m_Wrappers.Option { + return _this.Get_().(GetItemInput_GetItemInput).AttributesToGet +} + +func (_this GetItemInput) Dtor_ConsistentRead() m_Wrappers.Option { + return _this.Get_().(GetItemInput_GetItemInput).ConsistentRead +} + +func (_this GetItemInput) Dtor_ReturnConsumedCapacity() m_Wrappers.Option { + return _this.Get_().(GetItemInput_GetItemInput).ReturnConsumedCapacity +} + +func (_this GetItemInput) Dtor_ProjectionExpression() m_Wrappers.Option { + return _this.Get_().(GetItemInput_GetItemInput).ProjectionExpression +} + +func (_this GetItemInput) Dtor_ExpressionAttributeNames() m_Wrappers.Option { + return _this.Get_().(GetItemInput_GetItemInput).ExpressionAttributeNames +} + +func (_this GetItemInput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case GetItemInput_GetItemInput: + { + return "ComAmazonawsDynamodbTypes.GetItemInput.GetItemInput" + "(" + _dafny.String(data.TableName) + ", " + _dafny.String(data.Key) + ", " + _dafny.String(data.AttributesToGet) + ", " + _dafny.String(data.ConsistentRead) + ", " + _dafny.String(data.ReturnConsumedCapacity) + ", " + _dafny.String(data.ProjectionExpression) + ", " + _dafny.String(data.ExpressionAttributeNames) + ")" + } + default: + { + return "" + } + } +} + +func (_this GetItemInput) Equals(other GetItemInput) bool { + switch data1 := _this.Get_().(type) { + case GetItemInput_GetItemInput: + { + data2, ok := other.Get_().(GetItemInput_GetItemInput) + return ok && data1.TableName.Equals(data2.TableName) && data1.Key.Equals(data2.Key) && data1.AttributesToGet.Equals(data2.AttributesToGet) && data1.ConsistentRead.Equals(data2.ConsistentRead) && data1.ReturnConsumedCapacity.Equals(data2.ReturnConsumedCapacity) && data1.ProjectionExpression.Equals(data2.ProjectionExpression) && data1.ExpressionAttributeNames.Equals(data2.ExpressionAttributeNames) + } + default: + { + return false // unexpected + } + } +} + +func (_this GetItemInput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(GetItemInput) + return ok && _this.Equals(typed) +} + +func Type_GetItemInput_() _dafny.TypeDescriptor { + return type_GetItemInput_{} +} + +type type_GetItemInput_ struct { +} + +func (_this type_GetItemInput_) Default() interface{} { + return Companion_GetItemInput_.Default() +} + +func (_this type_GetItemInput_) String() string { + return "ComAmazonawsDynamodbTypes.GetItemInput" +} +func (_this GetItemInput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = GetItemInput{} + +// End of datatype GetItemInput + +// Definition of datatype GetItemOutput +type GetItemOutput struct { + Data_GetItemOutput_ +} + +func (_this GetItemOutput) Get_() Data_GetItemOutput_ { + return _this.Data_GetItemOutput_ +} + +type Data_GetItemOutput_ interface { + isGetItemOutput() +} + +type CompanionStruct_GetItemOutput_ struct { +} + +var Companion_GetItemOutput_ = CompanionStruct_GetItemOutput_{} + +type GetItemOutput_GetItemOutput struct { + Item m_Wrappers.Option + ConsumedCapacity m_Wrappers.Option +} + +func (GetItemOutput_GetItemOutput) isGetItemOutput() {} + +func (CompanionStruct_GetItemOutput_) Create_GetItemOutput_(Item m_Wrappers.Option, ConsumedCapacity m_Wrappers.Option) GetItemOutput { + return GetItemOutput{GetItemOutput_GetItemOutput{Item, ConsumedCapacity}} +} + +func (_this GetItemOutput) Is_GetItemOutput() bool { + _, ok := _this.Get_().(GetItemOutput_GetItemOutput) + return ok +} + +func (CompanionStruct_GetItemOutput_) Default() GetItemOutput { + return Companion_GetItemOutput_.Create_GetItemOutput_(m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this GetItemOutput) Dtor_Item() m_Wrappers.Option { + return _this.Get_().(GetItemOutput_GetItemOutput).Item +} + +func (_this GetItemOutput) Dtor_ConsumedCapacity() m_Wrappers.Option { + return _this.Get_().(GetItemOutput_GetItemOutput).ConsumedCapacity +} + +func (_this GetItemOutput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case GetItemOutput_GetItemOutput: + { + return "ComAmazonawsDynamodbTypes.GetItemOutput.GetItemOutput" + "(" + _dafny.String(data.Item) + ", " + _dafny.String(data.ConsumedCapacity) + ")" + } + default: + { + return "" + } + } +} + +func (_this GetItemOutput) Equals(other GetItemOutput) bool { + switch data1 := _this.Get_().(type) { + case GetItemOutput_GetItemOutput: + { + data2, ok := other.Get_().(GetItemOutput_GetItemOutput) + return ok && data1.Item.Equals(data2.Item) && data1.ConsumedCapacity.Equals(data2.ConsumedCapacity) + } + default: + { + return false // unexpected + } + } +} + +func (_this GetItemOutput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(GetItemOutput) + return ok && _this.Equals(typed) +} + +func Type_GetItemOutput_() _dafny.TypeDescriptor { + return type_GetItemOutput_{} +} + +type type_GetItemOutput_ struct { +} + +func (_this type_GetItemOutput_) Default() interface{} { + return Companion_GetItemOutput_.Default() +} + +func (_this type_GetItemOutput_) String() string { + return "ComAmazonawsDynamodbTypes.GetItemOutput" +} +func (_this GetItemOutput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = GetItemOutput{} + +// End of datatype GetItemOutput + +// Definition of datatype GetResourcePolicyInput +type GetResourcePolicyInput struct { + Data_GetResourcePolicyInput_ +} + +func (_this GetResourcePolicyInput) Get_() Data_GetResourcePolicyInput_ { + return _this.Data_GetResourcePolicyInput_ +} + +type Data_GetResourcePolicyInput_ interface { + isGetResourcePolicyInput() +} + +type CompanionStruct_GetResourcePolicyInput_ struct { +} + +var Companion_GetResourcePolicyInput_ = CompanionStruct_GetResourcePolicyInput_{} + +type GetResourcePolicyInput_GetResourcePolicyInput struct { + ResourceArn _dafny.Sequence +} + +func (GetResourcePolicyInput_GetResourcePolicyInput) isGetResourcePolicyInput() {} + +func (CompanionStruct_GetResourcePolicyInput_) Create_GetResourcePolicyInput_(ResourceArn _dafny.Sequence) GetResourcePolicyInput { + return GetResourcePolicyInput{GetResourcePolicyInput_GetResourcePolicyInput{ResourceArn}} +} + +func (_this GetResourcePolicyInput) Is_GetResourcePolicyInput() bool { + _, ok := _this.Get_().(GetResourcePolicyInput_GetResourcePolicyInput) + return ok +} + +func (CompanionStruct_GetResourcePolicyInput_) Default() GetResourcePolicyInput { + return Companion_GetResourcePolicyInput_.Create_GetResourcePolicyInput_(_dafny.EmptySeq.SetString()) +} + +func (_this GetResourcePolicyInput) Dtor_ResourceArn() _dafny.Sequence { + return _this.Get_().(GetResourcePolicyInput_GetResourcePolicyInput).ResourceArn +} + +func (_this GetResourcePolicyInput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case GetResourcePolicyInput_GetResourcePolicyInput: + { + return "ComAmazonawsDynamodbTypes.GetResourcePolicyInput.GetResourcePolicyInput" + "(" + _dafny.String(data.ResourceArn) + ")" + } + default: + { + return "" + } + } +} + +func (_this GetResourcePolicyInput) Equals(other GetResourcePolicyInput) bool { + switch data1 := _this.Get_().(type) { + case GetResourcePolicyInput_GetResourcePolicyInput: + { + data2, ok := other.Get_().(GetResourcePolicyInput_GetResourcePolicyInput) + return ok && data1.ResourceArn.Equals(data2.ResourceArn) + } + default: + { + return false // unexpected + } + } +} + +func (_this GetResourcePolicyInput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(GetResourcePolicyInput) + return ok && _this.Equals(typed) +} + +func Type_GetResourcePolicyInput_() _dafny.TypeDescriptor { + return type_GetResourcePolicyInput_{} +} + +type type_GetResourcePolicyInput_ struct { +} + +func (_this type_GetResourcePolicyInput_) Default() interface{} { + return Companion_GetResourcePolicyInput_.Default() +} + +func (_this type_GetResourcePolicyInput_) String() string { + return "ComAmazonawsDynamodbTypes.GetResourcePolicyInput" +} +func (_this GetResourcePolicyInput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = GetResourcePolicyInput{} + +// End of datatype GetResourcePolicyInput + +// Definition of datatype GetResourcePolicyOutput +type GetResourcePolicyOutput struct { + Data_GetResourcePolicyOutput_ +} + +func (_this GetResourcePolicyOutput) Get_() Data_GetResourcePolicyOutput_ { + return _this.Data_GetResourcePolicyOutput_ +} + +type Data_GetResourcePolicyOutput_ interface { + isGetResourcePolicyOutput() +} + +type CompanionStruct_GetResourcePolicyOutput_ struct { +} + +var Companion_GetResourcePolicyOutput_ = CompanionStruct_GetResourcePolicyOutput_{} + +type GetResourcePolicyOutput_GetResourcePolicyOutput struct { + Policy m_Wrappers.Option + RevisionId m_Wrappers.Option +} + +func (GetResourcePolicyOutput_GetResourcePolicyOutput) isGetResourcePolicyOutput() {} + +func (CompanionStruct_GetResourcePolicyOutput_) Create_GetResourcePolicyOutput_(Policy m_Wrappers.Option, RevisionId m_Wrappers.Option) GetResourcePolicyOutput { + return GetResourcePolicyOutput{GetResourcePolicyOutput_GetResourcePolicyOutput{Policy, RevisionId}} +} + +func (_this GetResourcePolicyOutput) Is_GetResourcePolicyOutput() bool { + _, ok := _this.Get_().(GetResourcePolicyOutput_GetResourcePolicyOutput) + return ok +} + +func (CompanionStruct_GetResourcePolicyOutput_) Default() GetResourcePolicyOutput { + return Companion_GetResourcePolicyOutput_.Create_GetResourcePolicyOutput_(m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this GetResourcePolicyOutput) Dtor_Policy() m_Wrappers.Option { + return _this.Get_().(GetResourcePolicyOutput_GetResourcePolicyOutput).Policy +} + +func (_this GetResourcePolicyOutput) Dtor_RevisionId() m_Wrappers.Option { + return _this.Get_().(GetResourcePolicyOutput_GetResourcePolicyOutput).RevisionId +} + +func (_this GetResourcePolicyOutput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case GetResourcePolicyOutput_GetResourcePolicyOutput: + { + return "ComAmazonawsDynamodbTypes.GetResourcePolicyOutput.GetResourcePolicyOutput" + "(" + _dafny.String(data.Policy) + ", " + _dafny.String(data.RevisionId) + ")" + } + default: + { + return "" + } + } +} + +func (_this GetResourcePolicyOutput) Equals(other GetResourcePolicyOutput) bool { + switch data1 := _this.Get_().(type) { + case GetResourcePolicyOutput_GetResourcePolicyOutput: + { + data2, ok := other.Get_().(GetResourcePolicyOutput_GetResourcePolicyOutput) + return ok && data1.Policy.Equals(data2.Policy) && data1.RevisionId.Equals(data2.RevisionId) + } + default: + { + return false // unexpected + } + } +} + +func (_this GetResourcePolicyOutput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(GetResourcePolicyOutput) + return ok && _this.Equals(typed) +} + +func Type_GetResourcePolicyOutput_() _dafny.TypeDescriptor { + return type_GetResourcePolicyOutput_{} +} + +type type_GetResourcePolicyOutput_ struct { +} + +func (_this type_GetResourcePolicyOutput_) Default() interface{} { + return Companion_GetResourcePolicyOutput_.Default() +} + +func (_this type_GetResourcePolicyOutput_) String() string { + return "ComAmazonawsDynamodbTypes.GetResourcePolicyOutput" +} +func (_this GetResourcePolicyOutput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = GetResourcePolicyOutput{} + +// End of datatype GetResourcePolicyOutput + +// Definition of datatype GlobalSecondaryIndex +type GlobalSecondaryIndex struct { + Data_GlobalSecondaryIndex_ +} + +func (_this GlobalSecondaryIndex) Get_() Data_GlobalSecondaryIndex_ { + return _this.Data_GlobalSecondaryIndex_ +} + +type Data_GlobalSecondaryIndex_ interface { + isGlobalSecondaryIndex() +} + +type CompanionStruct_GlobalSecondaryIndex_ struct { +} + +var Companion_GlobalSecondaryIndex_ = CompanionStruct_GlobalSecondaryIndex_{} + +type GlobalSecondaryIndex_GlobalSecondaryIndex struct { + IndexName _dafny.Sequence + KeySchema _dafny.Sequence + Projection Projection + ProvisionedThroughput m_Wrappers.Option + OnDemandThroughput m_Wrappers.Option +} + +func (GlobalSecondaryIndex_GlobalSecondaryIndex) isGlobalSecondaryIndex() {} + +func (CompanionStruct_GlobalSecondaryIndex_) Create_GlobalSecondaryIndex_(IndexName _dafny.Sequence, KeySchema _dafny.Sequence, Projection Projection, ProvisionedThroughput m_Wrappers.Option, OnDemandThroughput m_Wrappers.Option) GlobalSecondaryIndex { + return GlobalSecondaryIndex{GlobalSecondaryIndex_GlobalSecondaryIndex{IndexName, KeySchema, Projection, ProvisionedThroughput, OnDemandThroughput}} +} + +func (_this GlobalSecondaryIndex) Is_GlobalSecondaryIndex() bool { + _, ok := _this.Get_().(GlobalSecondaryIndex_GlobalSecondaryIndex) + return ok +} + +func (CompanionStruct_GlobalSecondaryIndex_) Default() GlobalSecondaryIndex { + return Companion_GlobalSecondaryIndex_.Create_GlobalSecondaryIndex_(_dafny.EmptySeq.SetString(), _dafny.EmptySeq, Companion_Projection_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this GlobalSecondaryIndex) Dtor_IndexName() _dafny.Sequence { + return _this.Get_().(GlobalSecondaryIndex_GlobalSecondaryIndex).IndexName +} + +func (_this GlobalSecondaryIndex) Dtor_KeySchema() _dafny.Sequence { + return _this.Get_().(GlobalSecondaryIndex_GlobalSecondaryIndex).KeySchema +} + +func (_this GlobalSecondaryIndex) Dtor_Projection() Projection { + return _this.Get_().(GlobalSecondaryIndex_GlobalSecondaryIndex).Projection +} + +func (_this GlobalSecondaryIndex) Dtor_ProvisionedThroughput() m_Wrappers.Option { + return _this.Get_().(GlobalSecondaryIndex_GlobalSecondaryIndex).ProvisionedThroughput +} + +func (_this GlobalSecondaryIndex) Dtor_OnDemandThroughput() m_Wrappers.Option { + return _this.Get_().(GlobalSecondaryIndex_GlobalSecondaryIndex).OnDemandThroughput +} + +func (_this GlobalSecondaryIndex) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case GlobalSecondaryIndex_GlobalSecondaryIndex: + { + return "ComAmazonawsDynamodbTypes.GlobalSecondaryIndex.GlobalSecondaryIndex" + "(" + _dafny.String(data.IndexName) + ", " + _dafny.String(data.KeySchema) + ", " + _dafny.String(data.Projection) + ", " + _dafny.String(data.ProvisionedThroughput) + ", " + _dafny.String(data.OnDemandThroughput) + ")" + } + default: + { + return "" + } + } +} + +func (_this GlobalSecondaryIndex) Equals(other GlobalSecondaryIndex) bool { + switch data1 := _this.Get_().(type) { + case GlobalSecondaryIndex_GlobalSecondaryIndex: + { + data2, ok := other.Get_().(GlobalSecondaryIndex_GlobalSecondaryIndex) + return ok && data1.IndexName.Equals(data2.IndexName) && data1.KeySchema.Equals(data2.KeySchema) && data1.Projection.Equals(data2.Projection) && data1.ProvisionedThroughput.Equals(data2.ProvisionedThroughput) && data1.OnDemandThroughput.Equals(data2.OnDemandThroughput) + } + default: + { + return false // unexpected + } + } +} + +func (_this GlobalSecondaryIndex) EqualsGeneric(other interface{}) bool { + typed, ok := other.(GlobalSecondaryIndex) + return ok && _this.Equals(typed) +} + +func Type_GlobalSecondaryIndex_() _dafny.TypeDescriptor { + return type_GlobalSecondaryIndex_{} +} + +type type_GlobalSecondaryIndex_ struct { +} + +func (_this type_GlobalSecondaryIndex_) Default() interface{} { + return Companion_GlobalSecondaryIndex_.Default() +} + +func (_this type_GlobalSecondaryIndex_) String() string { + return "ComAmazonawsDynamodbTypes.GlobalSecondaryIndex" +} +func (_this GlobalSecondaryIndex) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = GlobalSecondaryIndex{} + +// End of datatype GlobalSecondaryIndex + +// Definition of datatype GlobalSecondaryIndexAutoScalingUpdate +type GlobalSecondaryIndexAutoScalingUpdate struct { + Data_GlobalSecondaryIndexAutoScalingUpdate_ +} + +func (_this GlobalSecondaryIndexAutoScalingUpdate) Get_() Data_GlobalSecondaryIndexAutoScalingUpdate_ { + return _this.Data_GlobalSecondaryIndexAutoScalingUpdate_ +} + +type Data_GlobalSecondaryIndexAutoScalingUpdate_ interface { + isGlobalSecondaryIndexAutoScalingUpdate() +} + +type CompanionStruct_GlobalSecondaryIndexAutoScalingUpdate_ struct { +} + +var Companion_GlobalSecondaryIndexAutoScalingUpdate_ = CompanionStruct_GlobalSecondaryIndexAutoScalingUpdate_{} + +type GlobalSecondaryIndexAutoScalingUpdate_GlobalSecondaryIndexAutoScalingUpdate struct { + IndexName m_Wrappers.Option + ProvisionedWriteCapacityAutoScalingUpdate m_Wrappers.Option +} + +func (GlobalSecondaryIndexAutoScalingUpdate_GlobalSecondaryIndexAutoScalingUpdate) isGlobalSecondaryIndexAutoScalingUpdate() { +} + +func (CompanionStruct_GlobalSecondaryIndexAutoScalingUpdate_) Create_GlobalSecondaryIndexAutoScalingUpdate_(IndexName m_Wrappers.Option, ProvisionedWriteCapacityAutoScalingUpdate m_Wrappers.Option) GlobalSecondaryIndexAutoScalingUpdate { + return GlobalSecondaryIndexAutoScalingUpdate{GlobalSecondaryIndexAutoScalingUpdate_GlobalSecondaryIndexAutoScalingUpdate{IndexName, ProvisionedWriteCapacityAutoScalingUpdate}} +} + +func (_this GlobalSecondaryIndexAutoScalingUpdate) Is_GlobalSecondaryIndexAutoScalingUpdate() bool { + _, ok := _this.Get_().(GlobalSecondaryIndexAutoScalingUpdate_GlobalSecondaryIndexAutoScalingUpdate) + return ok +} + +func (CompanionStruct_GlobalSecondaryIndexAutoScalingUpdate_) Default() GlobalSecondaryIndexAutoScalingUpdate { + return Companion_GlobalSecondaryIndexAutoScalingUpdate_.Create_GlobalSecondaryIndexAutoScalingUpdate_(m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this GlobalSecondaryIndexAutoScalingUpdate) Dtor_IndexName() m_Wrappers.Option { + return _this.Get_().(GlobalSecondaryIndexAutoScalingUpdate_GlobalSecondaryIndexAutoScalingUpdate).IndexName +} + +func (_this GlobalSecondaryIndexAutoScalingUpdate) Dtor_ProvisionedWriteCapacityAutoScalingUpdate() m_Wrappers.Option { + return _this.Get_().(GlobalSecondaryIndexAutoScalingUpdate_GlobalSecondaryIndexAutoScalingUpdate).ProvisionedWriteCapacityAutoScalingUpdate +} + +func (_this GlobalSecondaryIndexAutoScalingUpdate) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case GlobalSecondaryIndexAutoScalingUpdate_GlobalSecondaryIndexAutoScalingUpdate: + { + return "ComAmazonawsDynamodbTypes.GlobalSecondaryIndexAutoScalingUpdate.GlobalSecondaryIndexAutoScalingUpdate" + "(" + _dafny.String(data.IndexName) + ", " + _dafny.String(data.ProvisionedWriteCapacityAutoScalingUpdate) + ")" + } + default: + { + return "" + } + } +} + +func (_this GlobalSecondaryIndexAutoScalingUpdate) Equals(other GlobalSecondaryIndexAutoScalingUpdate) bool { + switch data1 := _this.Get_().(type) { + case GlobalSecondaryIndexAutoScalingUpdate_GlobalSecondaryIndexAutoScalingUpdate: + { + data2, ok := other.Get_().(GlobalSecondaryIndexAutoScalingUpdate_GlobalSecondaryIndexAutoScalingUpdate) + return ok && data1.IndexName.Equals(data2.IndexName) && data1.ProvisionedWriteCapacityAutoScalingUpdate.Equals(data2.ProvisionedWriteCapacityAutoScalingUpdate) + } + default: + { + return false // unexpected + } + } +} + +func (_this GlobalSecondaryIndexAutoScalingUpdate) EqualsGeneric(other interface{}) bool { + typed, ok := other.(GlobalSecondaryIndexAutoScalingUpdate) + return ok && _this.Equals(typed) +} + +func Type_GlobalSecondaryIndexAutoScalingUpdate_() _dafny.TypeDescriptor { + return type_GlobalSecondaryIndexAutoScalingUpdate_{} +} + +type type_GlobalSecondaryIndexAutoScalingUpdate_ struct { +} + +func (_this type_GlobalSecondaryIndexAutoScalingUpdate_) Default() interface{} { + return Companion_GlobalSecondaryIndexAutoScalingUpdate_.Default() +} + +func (_this type_GlobalSecondaryIndexAutoScalingUpdate_) String() string { + return "ComAmazonawsDynamodbTypes.GlobalSecondaryIndexAutoScalingUpdate" +} +func (_this GlobalSecondaryIndexAutoScalingUpdate) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = GlobalSecondaryIndexAutoScalingUpdate{} + +// End of datatype GlobalSecondaryIndexAutoScalingUpdate + +// Definition of class GlobalSecondaryIndexAutoScalingUpdateList +type GlobalSecondaryIndexAutoScalingUpdateList struct { +} + +func New_GlobalSecondaryIndexAutoScalingUpdateList_() *GlobalSecondaryIndexAutoScalingUpdateList { + _this := GlobalSecondaryIndexAutoScalingUpdateList{} + + return &_this +} + +type CompanionStruct_GlobalSecondaryIndexAutoScalingUpdateList_ struct { +} + +var Companion_GlobalSecondaryIndexAutoScalingUpdateList_ = CompanionStruct_GlobalSecondaryIndexAutoScalingUpdateList_{} + +func (*GlobalSecondaryIndexAutoScalingUpdateList) String() string { + return "ComAmazonawsDynamodbTypes.GlobalSecondaryIndexAutoScalingUpdateList" +} + +// End of class GlobalSecondaryIndexAutoScalingUpdateList + +func Type_GlobalSecondaryIndexAutoScalingUpdateList_() _dafny.TypeDescriptor { + return type_GlobalSecondaryIndexAutoScalingUpdateList_{} +} + +type type_GlobalSecondaryIndexAutoScalingUpdateList_ struct { +} + +func (_this type_GlobalSecondaryIndexAutoScalingUpdateList_) Default() interface{} { + return _dafny.EmptySeq +} + +func (_this type_GlobalSecondaryIndexAutoScalingUpdateList_) String() string { + return "ComAmazonawsDynamodbTypes.GlobalSecondaryIndexAutoScalingUpdateList" +} +func (_this *CompanionStruct_GlobalSecondaryIndexAutoScalingUpdateList_) Is_(__source _dafny.Sequence) bool { + var _2_x _dafny.Sequence = (__source) + _ = _2_x + return Companion_Default___.IsValid__GlobalSecondaryIndexAutoScalingUpdateList(_2_x) +} + +// Definition of datatype GlobalSecondaryIndexDescription +type GlobalSecondaryIndexDescription struct { + Data_GlobalSecondaryIndexDescription_ +} + +func (_this GlobalSecondaryIndexDescription) Get_() Data_GlobalSecondaryIndexDescription_ { + return _this.Data_GlobalSecondaryIndexDescription_ +} + +type Data_GlobalSecondaryIndexDescription_ interface { + isGlobalSecondaryIndexDescription() +} + +type CompanionStruct_GlobalSecondaryIndexDescription_ struct { +} + +var Companion_GlobalSecondaryIndexDescription_ = CompanionStruct_GlobalSecondaryIndexDescription_{} + +type GlobalSecondaryIndexDescription_GlobalSecondaryIndexDescription struct { + IndexName m_Wrappers.Option + KeySchema m_Wrappers.Option + Projection m_Wrappers.Option + IndexStatus m_Wrappers.Option + Backfilling m_Wrappers.Option + ProvisionedThroughput m_Wrappers.Option + IndexSizeBytes m_Wrappers.Option + ItemCount m_Wrappers.Option + IndexArn m_Wrappers.Option + OnDemandThroughput m_Wrappers.Option +} + +func (GlobalSecondaryIndexDescription_GlobalSecondaryIndexDescription) isGlobalSecondaryIndexDescription() { +} + +func (CompanionStruct_GlobalSecondaryIndexDescription_) Create_GlobalSecondaryIndexDescription_(IndexName m_Wrappers.Option, KeySchema m_Wrappers.Option, Projection m_Wrappers.Option, IndexStatus m_Wrappers.Option, Backfilling m_Wrappers.Option, ProvisionedThroughput m_Wrappers.Option, IndexSizeBytes m_Wrappers.Option, ItemCount m_Wrappers.Option, IndexArn m_Wrappers.Option, OnDemandThroughput m_Wrappers.Option) GlobalSecondaryIndexDescription { + return GlobalSecondaryIndexDescription{GlobalSecondaryIndexDescription_GlobalSecondaryIndexDescription{IndexName, KeySchema, Projection, IndexStatus, Backfilling, ProvisionedThroughput, IndexSizeBytes, ItemCount, IndexArn, OnDemandThroughput}} +} + +func (_this GlobalSecondaryIndexDescription) Is_GlobalSecondaryIndexDescription() bool { + _, ok := _this.Get_().(GlobalSecondaryIndexDescription_GlobalSecondaryIndexDescription) + return ok +} + +func (CompanionStruct_GlobalSecondaryIndexDescription_) Default() GlobalSecondaryIndexDescription { + return Companion_GlobalSecondaryIndexDescription_.Create_GlobalSecondaryIndexDescription_(m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this GlobalSecondaryIndexDescription) Dtor_IndexName() m_Wrappers.Option { + return _this.Get_().(GlobalSecondaryIndexDescription_GlobalSecondaryIndexDescription).IndexName +} + +func (_this GlobalSecondaryIndexDescription) Dtor_KeySchema() m_Wrappers.Option { + return _this.Get_().(GlobalSecondaryIndexDescription_GlobalSecondaryIndexDescription).KeySchema +} + +func (_this GlobalSecondaryIndexDescription) Dtor_Projection() m_Wrappers.Option { + return _this.Get_().(GlobalSecondaryIndexDescription_GlobalSecondaryIndexDescription).Projection +} + +func (_this GlobalSecondaryIndexDescription) Dtor_IndexStatus() m_Wrappers.Option { + return _this.Get_().(GlobalSecondaryIndexDescription_GlobalSecondaryIndexDescription).IndexStatus +} + +func (_this GlobalSecondaryIndexDescription) Dtor_Backfilling() m_Wrappers.Option { + return _this.Get_().(GlobalSecondaryIndexDescription_GlobalSecondaryIndexDescription).Backfilling +} + +func (_this GlobalSecondaryIndexDescription) Dtor_ProvisionedThroughput() m_Wrappers.Option { + return _this.Get_().(GlobalSecondaryIndexDescription_GlobalSecondaryIndexDescription).ProvisionedThroughput +} + +func (_this GlobalSecondaryIndexDescription) Dtor_IndexSizeBytes() m_Wrappers.Option { + return _this.Get_().(GlobalSecondaryIndexDescription_GlobalSecondaryIndexDescription).IndexSizeBytes +} + +func (_this GlobalSecondaryIndexDescription) Dtor_ItemCount() m_Wrappers.Option { + return _this.Get_().(GlobalSecondaryIndexDescription_GlobalSecondaryIndexDescription).ItemCount +} + +func (_this GlobalSecondaryIndexDescription) Dtor_IndexArn() m_Wrappers.Option { + return _this.Get_().(GlobalSecondaryIndexDescription_GlobalSecondaryIndexDescription).IndexArn +} + +func (_this GlobalSecondaryIndexDescription) Dtor_OnDemandThroughput() m_Wrappers.Option { + return _this.Get_().(GlobalSecondaryIndexDescription_GlobalSecondaryIndexDescription).OnDemandThroughput +} + +func (_this GlobalSecondaryIndexDescription) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case GlobalSecondaryIndexDescription_GlobalSecondaryIndexDescription: + { + return "ComAmazonawsDynamodbTypes.GlobalSecondaryIndexDescription.GlobalSecondaryIndexDescription" + "(" + _dafny.String(data.IndexName) + ", " + _dafny.String(data.KeySchema) + ", " + _dafny.String(data.Projection) + ", " + _dafny.String(data.IndexStatus) + ", " + _dafny.String(data.Backfilling) + ", " + _dafny.String(data.ProvisionedThroughput) + ", " + _dafny.String(data.IndexSizeBytes) + ", " + _dafny.String(data.ItemCount) + ", " + _dafny.String(data.IndexArn) + ", " + _dafny.String(data.OnDemandThroughput) + ")" + } + default: + { + return "" + } + } +} + +func (_this GlobalSecondaryIndexDescription) Equals(other GlobalSecondaryIndexDescription) bool { + switch data1 := _this.Get_().(type) { + case GlobalSecondaryIndexDescription_GlobalSecondaryIndexDescription: + { + data2, ok := other.Get_().(GlobalSecondaryIndexDescription_GlobalSecondaryIndexDescription) + return ok && data1.IndexName.Equals(data2.IndexName) && data1.KeySchema.Equals(data2.KeySchema) && data1.Projection.Equals(data2.Projection) && data1.IndexStatus.Equals(data2.IndexStatus) && data1.Backfilling.Equals(data2.Backfilling) && data1.ProvisionedThroughput.Equals(data2.ProvisionedThroughput) && data1.IndexSizeBytes.Equals(data2.IndexSizeBytes) && data1.ItemCount.Equals(data2.ItemCount) && data1.IndexArn.Equals(data2.IndexArn) && data1.OnDemandThroughput.Equals(data2.OnDemandThroughput) + } + default: + { + return false // unexpected + } + } +} + +func (_this GlobalSecondaryIndexDescription) EqualsGeneric(other interface{}) bool { + typed, ok := other.(GlobalSecondaryIndexDescription) + return ok && _this.Equals(typed) +} + +func Type_GlobalSecondaryIndexDescription_() _dafny.TypeDescriptor { + return type_GlobalSecondaryIndexDescription_{} +} + +type type_GlobalSecondaryIndexDescription_ struct { +} + +func (_this type_GlobalSecondaryIndexDescription_) Default() interface{} { + return Companion_GlobalSecondaryIndexDescription_.Default() +} + +func (_this type_GlobalSecondaryIndexDescription_) String() string { + return "ComAmazonawsDynamodbTypes.GlobalSecondaryIndexDescription" +} +func (_this GlobalSecondaryIndexDescription) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = GlobalSecondaryIndexDescription{} + +// End of datatype GlobalSecondaryIndexDescription + +// Definition of datatype GlobalSecondaryIndexInfo +type GlobalSecondaryIndexInfo struct { + Data_GlobalSecondaryIndexInfo_ +} + +func (_this GlobalSecondaryIndexInfo) Get_() Data_GlobalSecondaryIndexInfo_ { + return _this.Data_GlobalSecondaryIndexInfo_ +} + +type Data_GlobalSecondaryIndexInfo_ interface { + isGlobalSecondaryIndexInfo() +} + +type CompanionStruct_GlobalSecondaryIndexInfo_ struct { +} + +var Companion_GlobalSecondaryIndexInfo_ = CompanionStruct_GlobalSecondaryIndexInfo_{} + +type GlobalSecondaryIndexInfo_GlobalSecondaryIndexInfo struct { + IndexName m_Wrappers.Option + KeySchema m_Wrappers.Option + Projection m_Wrappers.Option + ProvisionedThroughput m_Wrappers.Option + OnDemandThroughput m_Wrappers.Option +} + +func (GlobalSecondaryIndexInfo_GlobalSecondaryIndexInfo) isGlobalSecondaryIndexInfo() {} + +func (CompanionStruct_GlobalSecondaryIndexInfo_) Create_GlobalSecondaryIndexInfo_(IndexName m_Wrappers.Option, KeySchema m_Wrappers.Option, Projection m_Wrappers.Option, ProvisionedThroughput m_Wrappers.Option, OnDemandThroughput m_Wrappers.Option) GlobalSecondaryIndexInfo { + return GlobalSecondaryIndexInfo{GlobalSecondaryIndexInfo_GlobalSecondaryIndexInfo{IndexName, KeySchema, Projection, ProvisionedThroughput, OnDemandThroughput}} +} + +func (_this GlobalSecondaryIndexInfo) Is_GlobalSecondaryIndexInfo() bool { + _, ok := _this.Get_().(GlobalSecondaryIndexInfo_GlobalSecondaryIndexInfo) + return ok +} + +func (CompanionStruct_GlobalSecondaryIndexInfo_) Default() GlobalSecondaryIndexInfo { + return Companion_GlobalSecondaryIndexInfo_.Create_GlobalSecondaryIndexInfo_(m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this GlobalSecondaryIndexInfo) Dtor_IndexName() m_Wrappers.Option { + return _this.Get_().(GlobalSecondaryIndexInfo_GlobalSecondaryIndexInfo).IndexName +} + +func (_this GlobalSecondaryIndexInfo) Dtor_KeySchema() m_Wrappers.Option { + return _this.Get_().(GlobalSecondaryIndexInfo_GlobalSecondaryIndexInfo).KeySchema +} + +func (_this GlobalSecondaryIndexInfo) Dtor_Projection() m_Wrappers.Option { + return _this.Get_().(GlobalSecondaryIndexInfo_GlobalSecondaryIndexInfo).Projection +} + +func (_this GlobalSecondaryIndexInfo) Dtor_ProvisionedThroughput() m_Wrappers.Option { + return _this.Get_().(GlobalSecondaryIndexInfo_GlobalSecondaryIndexInfo).ProvisionedThroughput +} + +func (_this GlobalSecondaryIndexInfo) Dtor_OnDemandThroughput() m_Wrappers.Option { + return _this.Get_().(GlobalSecondaryIndexInfo_GlobalSecondaryIndexInfo).OnDemandThroughput +} + +func (_this GlobalSecondaryIndexInfo) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case GlobalSecondaryIndexInfo_GlobalSecondaryIndexInfo: + { + return "ComAmazonawsDynamodbTypes.GlobalSecondaryIndexInfo.GlobalSecondaryIndexInfo" + "(" + _dafny.String(data.IndexName) + ", " + _dafny.String(data.KeySchema) + ", " + _dafny.String(data.Projection) + ", " + _dafny.String(data.ProvisionedThroughput) + ", " + _dafny.String(data.OnDemandThroughput) + ")" + } + default: + { + return "" + } + } +} + +func (_this GlobalSecondaryIndexInfo) Equals(other GlobalSecondaryIndexInfo) bool { + switch data1 := _this.Get_().(type) { + case GlobalSecondaryIndexInfo_GlobalSecondaryIndexInfo: + { + data2, ok := other.Get_().(GlobalSecondaryIndexInfo_GlobalSecondaryIndexInfo) + return ok && data1.IndexName.Equals(data2.IndexName) && data1.KeySchema.Equals(data2.KeySchema) && data1.Projection.Equals(data2.Projection) && data1.ProvisionedThroughput.Equals(data2.ProvisionedThroughput) && data1.OnDemandThroughput.Equals(data2.OnDemandThroughput) + } + default: + { + return false // unexpected + } + } +} + +func (_this GlobalSecondaryIndexInfo) EqualsGeneric(other interface{}) bool { + typed, ok := other.(GlobalSecondaryIndexInfo) + return ok && _this.Equals(typed) +} + +func Type_GlobalSecondaryIndexInfo_() _dafny.TypeDescriptor { + return type_GlobalSecondaryIndexInfo_{} +} + +type type_GlobalSecondaryIndexInfo_ struct { +} + +func (_this type_GlobalSecondaryIndexInfo_) Default() interface{} { + return Companion_GlobalSecondaryIndexInfo_.Default() +} + +func (_this type_GlobalSecondaryIndexInfo_) String() string { + return "ComAmazonawsDynamodbTypes.GlobalSecondaryIndexInfo" +} +func (_this GlobalSecondaryIndexInfo) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = GlobalSecondaryIndexInfo{} + +// End of datatype GlobalSecondaryIndexInfo + +// Definition of datatype GlobalSecondaryIndexUpdate +type GlobalSecondaryIndexUpdate struct { + Data_GlobalSecondaryIndexUpdate_ +} + +func (_this GlobalSecondaryIndexUpdate) Get_() Data_GlobalSecondaryIndexUpdate_ { + return _this.Data_GlobalSecondaryIndexUpdate_ +} + +type Data_GlobalSecondaryIndexUpdate_ interface { + isGlobalSecondaryIndexUpdate() +} + +type CompanionStruct_GlobalSecondaryIndexUpdate_ struct { +} + +var Companion_GlobalSecondaryIndexUpdate_ = CompanionStruct_GlobalSecondaryIndexUpdate_{} + +type GlobalSecondaryIndexUpdate_GlobalSecondaryIndexUpdate struct { + Update m_Wrappers.Option + Create m_Wrappers.Option + Delete m_Wrappers.Option +} + +func (GlobalSecondaryIndexUpdate_GlobalSecondaryIndexUpdate) isGlobalSecondaryIndexUpdate() {} + +func (CompanionStruct_GlobalSecondaryIndexUpdate_) Create_GlobalSecondaryIndexUpdate_(Update m_Wrappers.Option, Create m_Wrappers.Option, Delete m_Wrappers.Option) GlobalSecondaryIndexUpdate { + return GlobalSecondaryIndexUpdate{GlobalSecondaryIndexUpdate_GlobalSecondaryIndexUpdate{Update, Create, Delete}} +} + +func (_this GlobalSecondaryIndexUpdate) Is_GlobalSecondaryIndexUpdate() bool { + _, ok := _this.Get_().(GlobalSecondaryIndexUpdate_GlobalSecondaryIndexUpdate) + return ok +} + +func (CompanionStruct_GlobalSecondaryIndexUpdate_) Default() GlobalSecondaryIndexUpdate { + return Companion_GlobalSecondaryIndexUpdate_.Create_GlobalSecondaryIndexUpdate_(m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this GlobalSecondaryIndexUpdate) Dtor_Update() m_Wrappers.Option { + return _this.Get_().(GlobalSecondaryIndexUpdate_GlobalSecondaryIndexUpdate).Update +} + +func (_this GlobalSecondaryIndexUpdate) Dtor_Create() m_Wrappers.Option { + return _this.Get_().(GlobalSecondaryIndexUpdate_GlobalSecondaryIndexUpdate).Create +} + +func (_this GlobalSecondaryIndexUpdate) Dtor_Delete() m_Wrappers.Option { + return _this.Get_().(GlobalSecondaryIndexUpdate_GlobalSecondaryIndexUpdate).Delete +} + +func (_this GlobalSecondaryIndexUpdate) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case GlobalSecondaryIndexUpdate_GlobalSecondaryIndexUpdate: + { + return "ComAmazonawsDynamodbTypes.GlobalSecondaryIndexUpdate.GlobalSecondaryIndexUpdate" + "(" + _dafny.String(data.Update) + ", " + _dafny.String(data.Create) + ", " + _dafny.String(data.Delete) + ")" + } + default: + { + return "" + } + } +} + +func (_this GlobalSecondaryIndexUpdate) Equals(other GlobalSecondaryIndexUpdate) bool { + switch data1 := _this.Get_().(type) { + case GlobalSecondaryIndexUpdate_GlobalSecondaryIndexUpdate: + { + data2, ok := other.Get_().(GlobalSecondaryIndexUpdate_GlobalSecondaryIndexUpdate) + return ok && data1.Update.Equals(data2.Update) && data1.Create.Equals(data2.Create) && data1.Delete.Equals(data2.Delete) + } + default: + { + return false // unexpected + } + } +} + +func (_this GlobalSecondaryIndexUpdate) EqualsGeneric(other interface{}) bool { + typed, ok := other.(GlobalSecondaryIndexUpdate) + return ok && _this.Equals(typed) +} + +func Type_GlobalSecondaryIndexUpdate_() _dafny.TypeDescriptor { + return type_GlobalSecondaryIndexUpdate_{} +} + +type type_GlobalSecondaryIndexUpdate_ struct { +} + +func (_this type_GlobalSecondaryIndexUpdate_) Default() interface{} { + return Companion_GlobalSecondaryIndexUpdate_.Default() +} + +func (_this type_GlobalSecondaryIndexUpdate_) String() string { + return "ComAmazonawsDynamodbTypes.GlobalSecondaryIndexUpdate" +} +func (_this GlobalSecondaryIndexUpdate) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = GlobalSecondaryIndexUpdate{} + +// End of datatype GlobalSecondaryIndexUpdate + +// Definition of datatype GlobalTable +type GlobalTable struct { + Data_GlobalTable_ +} + +func (_this GlobalTable) Get_() Data_GlobalTable_ { + return _this.Data_GlobalTable_ +} + +type Data_GlobalTable_ interface { + isGlobalTable() +} + +type CompanionStruct_GlobalTable_ struct { +} + +var Companion_GlobalTable_ = CompanionStruct_GlobalTable_{} + +type GlobalTable_GlobalTable struct { + GlobalTableName m_Wrappers.Option + ReplicationGroup m_Wrappers.Option +} + +func (GlobalTable_GlobalTable) isGlobalTable() {} + +func (CompanionStruct_GlobalTable_) Create_GlobalTable_(GlobalTableName m_Wrappers.Option, ReplicationGroup m_Wrappers.Option) GlobalTable { + return GlobalTable{GlobalTable_GlobalTable{GlobalTableName, ReplicationGroup}} +} + +func (_this GlobalTable) Is_GlobalTable() bool { + _, ok := _this.Get_().(GlobalTable_GlobalTable) + return ok +} + +func (CompanionStruct_GlobalTable_) Default() GlobalTable { + return Companion_GlobalTable_.Create_GlobalTable_(m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this GlobalTable) Dtor_GlobalTableName() m_Wrappers.Option { + return _this.Get_().(GlobalTable_GlobalTable).GlobalTableName +} + +func (_this GlobalTable) Dtor_ReplicationGroup() m_Wrappers.Option { + return _this.Get_().(GlobalTable_GlobalTable).ReplicationGroup +} + +func (_this GlobalTable) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case GlobalTable_GlobalTable: + { + return "ComAmazonawsDynamodbTypes.GlobalTable.GlobalTable" + "(" + _dafny.String(data.GlobalTableName) + ", " + _dafny.String(data.ReplicationGroup) + ")" + } + default: + { + return "" + } + } +} + +func (_this GlobalTable) Equals(other GlobalTable) bool { + switch data1 := _this.Get_().(type) { + case GlobalTable_GlobalTable: + { + data2, ok := other.Get_().(GlobalTable_GlobalTable) + return ok && data1.GlobalTableName.Equals(data2.GlobalTableName) && data1.ReplicationGroup.Equals(data2.ReplicationGroup) + } + default: + { + return false // unexpected + } + } +} + +func (_this GlobalTable) EqualsGeneric(other interface{}) bool { + typed, ok := other.(GlobalTable) + return ok && _this.Equals(typed) +} + +func Type_GlobalTable_() _dafny.TypeDescriptor { + return type_GlobalTable_{} +} + +type type_GlobalTable_ struct { +} + +func (_this type_GlobalTable_) Default() interface{} { + return Companion_GlobalTable_.Default() +} + +func (_this type_GlobalTable_) String() string { + return "ComAmazonawsDynamodbTypes.GlobalTable" +} +func (_this GlobalTable) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = GlobalTable{} + +// End of datatype GlobalTable + +// Definition of datatype GlobalTableDescription +type GlobalTableDescription struct { + Data_GlobalTableDescription_ +} + +func (_this GlobalTableDescription) Get_() Data_GlobalTableDescription_ { + return _this.Data_GlobalTableDescription_ +} + +type Data_GlobalTableDescription_ interface { + isGlobalTableDescription() +} + +type CompanionStruct_GlobalTableDescription_ struct { +} + +var Companion_GlobalTableDescription_ = CompanionStruct_GlobalTableDescription_{} + +type GlobalTableDescription_GlobalTableDescription struct { + ReplicationGroup m_Wrappers.Option + GlobalTableArn m_Wrappers.Option + CreationDateTime m_Wrappers.Option + GlobalTableStatus m_Wrappers.Option + GlobalTableName m_Wrappers.Option +} + +func (GlobalTableDescription_GlobalTableDescription) isGlobalTableDescription() {} + +func (CompanionStruct_GlobalTableDescription_) Create_GlobalTableDescription_(ReplicationGroup m_Wrappers.Option, GlobalTableArn m_Wrappers.Option, CreationDateTime m_Wrappers.Option, GlobalTableStatus m_Wrappers.Option, GlobalTableName m_Wrappers.Option) GlobalTableDescription { + return GlobalTableDescription{GlobalTableDescription_GlobalTableDescription{ReplicationGroup, GlobalTableArn, CreationDateTime, GlobalTableStatus, GlobalTableName}} +} + +func (_this GlobalTableDescription) Is_GlobalTableDescription() bool { + _, ok := _this.Get_().(GlobalTableDescription_GlobalTableDescription) + return ok +} + +func (CompanionStruct_GlobalTableDescription_) Default() GlobalTableDescription { + return Companion_GlobalTableDescription_.Create_GlobalTableDescription_(m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this GlobalTableDescription) Dtor_ReplicationGroup() m_Wrappers.Option { + return _this.Get_().(GlobalTableDescription_GlobalTableDescription).ReplicationGroup +} + +func (_this GlobalTableDescription) Dtor_GlobalTableArn() m_Wrappers.Option { + return _this.Get_().(GlobalTableDescription_GlobalTableDescription).GlobalTableArn +} + +func (_this GlobalTableDescription) Dtor_CreationDateTime() m_Wrappers.Option { + return _this.Get_().(GlobalTableDescription_GlobalTableDescription).CreationDateTime +} + +func (_this GlobalTableDescription) Dtor_GlobalTableStatus() m_Wrappers.Option { + return _this.Get_().(GlobalTableDescription_GlobalTableDescription).GlobalTableStatus +} + +func (_this GlobalTableDescription) Dtor_GlobalTableName() m_Wrappers.Option { + return _this.Get_().(GlobalTableDescription_GlobalTableDescription).GlobalTableName +} + +func (_this GlobalTableDescription) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case GlobalTableDescription_GlobalTableDescription: + { + return "ComAmazonawsDynamodbTypes.GlobalTableDescription.GlobalTableDescription" + "(" + _dafny.String(data.ReplicationGroup) + ", " + _dafny.String(data.GlobalTableArn) + ", " + _dafny.String(data.CreationDateTime) + ", " + _dafny.String(data.GlobalTableStatus) + ", " + _dafny.String(data.GlobalTableName) + ")" + } + default: + { + return "" + } + } +} + +func (_this GlobalTableDescription) Equals(other GlobalTableDescription) bool { + switch data1 := _this.Get_().(type) { + case GlobalTableDescription_GlobalTableDescription: + { + data2, ok := other.Get_().(GlobalTableDescription_GlobalTableDescription) + return ok && data1.ReplicationGroup.Equals(data2.ReplicationGroup) && data1.GlobalTableArn.Equals(data2.GlobalTableArn) && data1.CreationDateTime.Equals(data2.CreationDateTime) && data1.GlobalTableStatus.Equals(data2.GlobalTableStatus) && data1.GlobalTableName.Equals(data2.GlobalTableName) + } + default: + { + return false // unexpected + } + } +} + +func (_this GlobalTableDescription) EqualsGeneric(other interface{}) bool { + typed, ok := other.(GlobalTableDescription) + return ok && _this.Equals(typed) +} + +func Type_GlobalTableDescription_() _dafny.TypeDescriptor { + return type_GlobalTableDescription_{} +} + +type type_GlobalTableDescription_ struct { +} + +func (_this type_GlobalTableDescription_) Default() interface{} { + return Companion_GlobalTableDescription_.Default() +} + +func (_this type_GlobalTableDescription_) String() string { + return "ComAmazonawsDynamodbTypes.GlobalTableDescription" +} +func (_this GlobalTableDescription) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = GlobalTableDescription{} + +// End of datatype GlobalTableDescription + +// Definition of datatype GlobalTableGlobalSecondaryIndexSettingsUpdate +type GlobalTableGlobalSecondaryIndexSettingsUpdate struct { + Data_GlobalTableGlobalSecondaryIndexSettingsUpdate_ +} + +func (_this GlobalTableGlobalSecondaryIndexSettingsUpdate) Get_() Data_GlobalTableGlobalSecondaryIndexSettingsUpdate_ { + return _this.Data_GlobalTableGlobalSecondaryIndexSettingsUpdate_ +} + +type Data_GlobalTableGlobalSecondaryIndexSettingsUpdate_ interface { + isGlobalTableGlobalSecondaryIndexSettingsUpdate() +} + +type CompanionStruct_GlobalTableGlobalSecondaryIndexSettingsUpdate_ struct { +} + +var Companion_GlobalTableGlobalSecondaryIndexSettingsUpdate_ = CompanionStruct_GlobalTableGlobalSecondaryIndexSettingsUpdate_{} + +type GlobalTableGlobalSecondaryIndexSettingsUpdate_GlobalTableGlobalSecondaryIndexSettingsUpdate struct { + IndexName _dafny.Sequence + ProvisionedWriteCapacityUnits m_Wrappers.Option + ProvisionedWriteCapacityAutoScalingSettingsUpdate m_Wrappers.Option +} + +func (GlobalTableGlobalSecondaryIndexSettingsUpdate_GlobalTableGlobalSecondaryIndexSettingsUpdate) isGlobalTableGlobalSecondaryIndexSettingsUpdate() { +} + +func (CompanionStruct_GlobalTableGlobalSecondaryIndexSettingsUpdate_) Create_GlobalTableGlobalSecondaryIndexSettingsUpdate_(IndexName _dafny.Sequence, ProvisionedWriteCapacityUnits m_Wrappers.Option, ProvisionedWriteCapacityAutoScalingSettingsUpdate m_Wrappers.Option) GlobalTableGlobalSecondaryIndexSettingsUpdate { + return GlobalTableGlobalSecondaryIndexSettingsUpdate{GlobalTableGlobalSecondaryIndexSettingsUpdate_GlobalTableGlobalSecondaryIndexSettingsUpdate{IndexName, ProvisionedWriteCapacityUnits, ProvisionedWriteCapacityAutoScalingSettingsUpdate}} +} + +func (_this GlobalTableGlobalSecondaryIndexSettingsUpdate) Is_GlobalTableGlobalSecondaryIndexSettingsUpdate() bool { + _, ok := _this.Get_().(GlobalTableGlobalSecondaryIndexSettingsUpdate_GlobalTableGlobalSecondaryIndexSettingsUpdate) + return ok +} + +func (CompanionStruct_GlobalTableGlobalSecondaryIndexSettingsUpdate_) Default() GlobalTableGlobalSecondaryIndexSettingsUpdate { + return Companion_GlobalTableGlobalSecondaryIndexSettingsUpdate_.Create_GlobalTableGlobalSecondaryIndexSettingsUpdate_(_dafny.EmptySeq.SetString(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this GlobalTableGlobalSecondaryIndexSettingsUpdate) Dtor_IndexName() _dafny.Sequence { + return _this.Get_().(GlobalTableGlobalSecondaryIndexSettingsUpdate_GlobalTableGlobalSecondaryIndexSettingsUpdate).IndexName +} + +func (_this GlobalTableGlobalSecondaryIndexSettingsUpdate) Dtor_ProvisionedWriteCapacityUnits() m_Wrappers.Option { + return _this.Get_().(GlobalTableGlobalSecondaryIndexSettingsUpdate_GlobalTableGlobalSecondaryIndexSettingsUpdate).ProvisionedWriteCapacityUnits +} + +func (_this GlobalTableGlobalSecondaryIndexSettingsUpdate) Dtor_ProvisionedWriteCapacityAutoScalingSettingsUpdate() m_Wrappers.Option { + return _this.Get_().(GlobalTableGlobalSecondaryIndexSettingsUpdate_GlobalTableGlobalSecondaryIndexSettingsUpdate).ProvisionedWriteCapacityAutoScalingSettingsUpdate +} + +func (_this GlobalTableGlobalSecondaryIndexSettingsUpdate) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case GlobalTableGlobalSecondaryIndexSettingsUpdate_GlobalTableGlobalSecondaryIndexSettingsUpdate: + { + return "ComAmazonawsDynamodbTypes.GlobalTableGlobalSecondaryIndexSettingsUpdate.GlobalTableGlobalSecondaryIndexSettingsUpdate" + "(" + _dafny.String(data.IndexName) + ", " + _dafny.String(data.ProvisionedWriteCapacityUnits) + ", " + _dafny.String(data.ProvisionedWriteCapacityAutoScalingSettingsUpdate) + ")" + } + default: + { + return "" + } + } +} + +func (_this GlobalTableGlobalSecondaryIndexSettingsUpdate) Equals(other GlobalTableGlobalSecondaryIndexSettingsUpdate) bool { + switch data1 := _this.Get_().(type) { + case GlobalTableGlobalSecondaryIndexSettingsUpdate_GlobalTableGlobalSecondaryIndexSettingsUpdate: + { + data2, ok := other.Get_().(GlobalTableGlobalSecondaryIndexSettingsUpdate_GlobalTableGlobalSecondaryIndexSettingsUpdate) + return ok && data1.IndexName.Equals(data2.IndexName) && data1.ProvisionedWriteCapacityUnits.Equals(data2.ProvisionedWriteCapacityUnits) && data1.ProvisionedWriteCapacityAutoScalingSettingsUpdate.Equals(data2.ProvisionedWriteCapacityAutoScalingSettingsUpdate) + } + default: + { + return false // unexpected + } + } +} + +func (_this GlobalTableGlobalSecondaryIndexSettingsUpdate) EqualsGeneric(other interface{}) bool { + typed, ok := other.(GlobalTableGlobalSecondaryIndexSettingsUpdate) + return ok && _this.Equals(typed) +} + +func Type_GlobalTableGlobalSecondaryIndexSettingsUpdate_() _dafny.TypeDescriptor { + return type_GlobalTableGlobalSecondaryIndexSettingsUpdate_{} +} + +type type_GlobalTableGlobalSecondaryIndexSettingsUpdate_ struct { +} + +func (_this type_GlobalTableGlobalSecondaryIndexSettingsUpdate_) Default() interface{} { + return Companion_GlobalTableGlobalSecondaryIndexSettingsUpdate_.Default() +} + +func (_this type_GlobalTableGlobalSecondaryIndexSettingsUpdate_) String() string { + return "ComAmazonawsDynamodbTypes.GlobalTableGlobalSecondaryIndexSettingsUpdate" +} +func (_this GlobalTableGlobalSecondaryIndexSettingsUpdate) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = GlobalTableGlobalSecondaryIndexSettingsUpdate{} + +// End of datatype GlobalTableGlobalSecondaryIndexSettingsUpdate + +// Definition of class GlobalTableGlobalSecondaryIndexSettingsUpdateList +type GlobalTableGlobalSecondaryIndexSettingsUpdateList struct { +} + +func New_GlobalTableGlobalSecondaryIndexSettingsUpdateList_() *GlobalTableGlobalSecondaryIndexSettingsUpdateList { + _this := GlobalTableGlobalSecondaryIndexSettingsUpdateList{} + + return &_this +} + +type CompanionStruct_GlobalTableGlobalSecondaryIndexSettingsUpdateList_ struct { +} + +var Companion_GlobalTableGlobalSecondaryIndexSettingsUpdateList_ = CompanionStruct_GlobalTableGlobalSecondaryIndexSettingsUpdateList_{} + +func (*GlobalTableGlobalSecondaryIndexSettingsUpdateList) String() string { + return "ComAmazonawsDynamodbTypes.GlobalTableGlobalSecondaryIndexSettingsUpdateList" +} + +// End of class GlobalTableGlobalSecondaryIndexSettingsUpdateList + +func Type_GlobalTableGlobalSecondaryIndexSettingsUpdateList_() _dafny.TypeDescriptor { + return type_GlobalTableGlobalSecondaryIndexSettingsUpdateList_{} +} + +type type_GlobalTableGlobalSecondaryIndexSettingsUpdateList_ struct { +} + +func (_this type_GlobalTableGlobalSecondaryIndexSettingsUpdateList_) Default() interface{} { + return _dafny.EmptySeq +} + +func (_this type_GlobalTableGlobalSecondaryIndexSettingsUpdateList_) String() string { + return "ComAmazonawsDynamodbTypes.GlobalTableGlobalSecondaryIndexSettingsUpdateList" +} +func (_this *CompanionStruct_GlobalTableGlobalSecondaryIndexSettingsUpdateList_) Is_(__source _dafny.Sequence) bool { + var _3_x _dafny.Sequence = (__source) + _ = _3_x + return Companion_Default___.IsValid__GlobalTableGlobalSecondaryIndexSettingsUpdateList(_3_x) +} + +// Definition of datatype GlobalTableStatus +type GlobalTableStatus struct { + Data_GlobalTableStatus_ +} + +func (_this GlobalTableStatus) Get_() Data_GlobalTableStatus_ { + return _this.Data_GlobalTableStatus_ +} + +type Data_GlobalTableStatus_ interface { + isGlobalTableStatus() +} + +type CompanionStruct_GlobalTableStatus_ struct { +} + +var Companion_GlobalTableStatus_ = CompanionStruct_GlobalTableStatus_{} + +type GlobalTableStatus_CREATING struct { +} + +func (GlobalTableStatus_CREATING) isGlobalTableStatus() {} + +func (CompanionStruct_GlobalTableStatus_) Create_CREATING_() GlobalTableStatus { + return GlobalTableStatus{GlobalTableStatus_CREATING{}} +} + +func (_this GlobalTableStatus) Is_CREATING() bool { + _, ok := _this.Get_().(GlobalTableStatus_CREATING) + return ok +} + +type GlobalTableStatus_ACTIVE struct { +} + +func (GlobalTableStatus_ACTIVE) isGlobalTableStatus() {} + +func (CompanionStruct_GlobalTableStatus_) Create_ACTIVE_() GlobalTableStatus { + return GlobalTableStatus{GlobalTableStatus_ACTIVE{}} +} + +func (_this GlobalTableStatus) Is_ACTIVE() bool { + _, ok := _this.Get_().(GlobalTableStatus_ACTIVE) + return ok +} + +type GlobalTableStatus_DELETING struct { +} + +func (GlobalTableStatus_DELETING) isGlobalTableStatus() {} + +func (CompanionStruct_GlobalTableStatus_) Create_DELETING_() GlobalTableStatus { + return GlobalTableStatus{GlobalTableStatus_DELETING{}} +} + +func (_this GlobalTableStatus) Is_DELETING() bool { + _, ok := _this.Get_().(GlobalTableStatus_DELETING) + return ok +} + +type GlobalTableStatus_UPDATING struct { +} + +func (GlobalTableStatus_UPDATING) isGlobalTableStatus() {} + +func (CompanionStruct_GlobalTableStatus_) Create_UPDATING_() GlobalTableStatus { + return GlobalTableStatus{GlobalTableStatus_UPDATING{}} +} + +func (_this GlobalTableStatus) Is_UPDATING() bool { + _, ok := _this.Get_().(GlobalTableStatus_UPDATING) + return ok +} + +func (CompanionStruct_GlobalTableStatus_) Default() GlobalTableStatus { + return Companion_GlobalTableStatus_.Create_CREATING_() +} + +func (_ CompanionStruct_GlobalTableStatus_) AllSingletonConstructors() _dafny.Iterator { + i := -1 + return func() (interface{}, bool) { + i++ + switch i { + case 0: + return Companion_GlobalTableStatus_.Create_CREATING_(), true + case 1: + return Companion_GlobalTableStatus_.Create_ACTIVE_(), true + case 2: + return Companion_GlobalTableStatus_.Create_DELETING_(), true + case 3: + return Companion_GlobalTableStatus_.Create_UPDATING_(), true + default: + return GlobalTableStatus{}, false + } + } +} + +func (_this GlobalTableStatus) String() string { + switch _this.Get_().(type) { + case nil: + return "null" + case GlobalTableStatus_CREATING: + { + return "ComAmazonawsDynamodbTypes.GlobalTableStatus.CREATING" + } + case GlobalTableStatus_ACTIVE: + { + return "ComAmazonawsDynamodbTypes.GlobalTableStatus.ACTIVE" + } + case GlobalTableStatus_DELETING: + { + return "ComAmazonawsDynamodbTypes.GlobalTableStatus.DELETING" + } + case GlobalTableStatus_UPDATING: + { + return "ComAmazonawsDynamodbTypes.GlobalTableStatus.UPDATING" + } + default: + { + return "" + } + } +} + +func (_this GlobalTableStatus) Equals(other GlobalTableStatus) bool { + switch _this.Get_().(type) { + case GlobalTableStatus_CREATING: + { + _, ok := other.Get_().(GlobalTableStatus_CREATING) + return ok + } + case GlobalTableStatus_ACTIVE: + { + _, ok := other.Get_().(GlobalTableStatus_ACTIVE) + return ok + } + case GlobalTableStatus_DELETING: + { + _, ok := other.Get_().(GlobalTableStatus_DELETING) + return ok + } + case GlobalTableStatus_UPDATING: + { + _, ok := other.Get_().(GlobalTableStatus_UPDATING) + return ok + } + default: + { + return false // unexpected + } + } +} + +func (_this GlobalTableStatus) EqualsGeneric(other interface{}) bool { + typed, ok := other.(GlobalTableStatus) + return ok && _this.Equals(typed) +} + +func Type_GlobalTableStatus_() _dafny.TypeDescriptor { + return type_GlobalTableStatus_{} +} + +type type_GlobalTableStatus_ struct { +} + +func (_this type_GlobalTableStatus_) Default() interface{} { + return Companion_GlobalTableStatus_.Default() +} + +func (_this type_GlobalTableStatus_) String() string { + return "ComAmazonawsDynamodbTypes.GlobalTableStatus" +} +func (_this GlobalTableStatus) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = GlobalTableStatus{} + +// End of datatype GlobalTableStatus + +// Definition of class ImportArn +type ImportArn struct { +} + +func New_ImportArn_() *ImportArn { + _this := ImportArn{} + + return &_this +} + +type CompanionStruct_ImportArn_ struct { +} + +var Companion_ImportArn_ = CompanionStruct_ImportArn_{} + +func (*ImportArn) String() string { + return "ComAmazonawsDynamodbTypes.ImportArn" +} + +// End of class ImportArn + +func Type_ImportArn_() _dafny.TypeDescriptor { + return type_ImportArn_{} +} + +type type_ImportArn_ struct { +} + +func (_this type_ImportArn_) Default() interface{} { + return _dafny.EmptySeq.SetString() +} + +func (_this type_ImportArn_) String() string { + return "ComAmazonawsDynamodbTypes.ImportArn" +} +func (_this *CompanionStruct_ImportArn_) Is_(__source _dafny.Sequence) bool { + var _4_x _dafny.Sequence = (__source) + _ = _4_x + return Companion_Default___.IsValid__ImportArn(_4_x) +} + +// Definition of class ImportedItemCount +type ImportedItemCount struct { +} + +func New_ImportedItemCount_() *ImportedItemCount { + _this := ImportedItemCount{} + + return &_this +} + +type CompanionStruct_ImportedItemCount_ struct { +} + +var Companion_ImportedItemCount_ = CompanionStruct_ImportedItemCount_{} + +func (*ImportedItemCount) String() string { + return "ComAmazonawsDynamodbTypes.ImportedItemCount" +} + +// End of class ImportedItemCount + +func Type_ImportedItemCount_() _dafny.TypeDescriptor { + return type_ImportedItemCount_{} +} + +type type_ImportedItemCount_ struct { +} + +func (_this type_ImportedItemCount_) Default() interface{} { + return int64(0) +} + +func (_this type_ImportedItemCount_) String() string { + return "ComAmazonawsDynamodbTypes.ImportedItemCount" +} +func (_this *CompanionStruct_ImportedItemCount_) Is_(__source int64) bool { + var _5_x int64 = (__source) + _ = _5_x + if true { + return Companion_Default___.IsValid__ImportedItemCount(_5_x) + } + return false +} + +// Definition of class ImportNextToken +type ImportNextToken struct { +} + +func New_ImportNextToken_() *ImportNextToken { + _this := ImportNextToken{} + + return &_this +} + +type CompanionStruct_ImportNextToken_ struct { +} + +var Companion_ImportNextToken_ = CompanionStruct_ImportNextToken_{} + +func (*ImportNextToken) String() string { + return "ComAmazonawsDynamodbTypes.ImportNextToken" +} + +// End of class ImportNextToken + +func Type_ImportNextToken_() _dafny.TypeDescriptor { + return type_ImportNextToken_{} +} + +type type_ImportNextToken_ struct { +} + +func (_this type_ImportNextToken_) Default() interface{} { + return _dafny.EmptySeq.SetString() +} + +func (_this type_ImportNextToken_) String() string { + return "ComAmazonawsDynamodbTypes.ImportNextToken" +} +func (_this *CompanionStruct_ImportNextToken_) Is_(__source _dafny.Sequence) bool { + var _6_x _dafny.Sequence = (__source) + _ = _6_x + return Companion_Default___.IsValid__ImportNextToken(_6_x) +} + +// Definition of datatype ImportStatus +type ImportStatus struct { + Data_ImportStatus_ +} + +func (_this ImportStatus) Get_() Data_ImportStatus_ { + return _this.Data_ImportStatus_ +} + +type Data_ImportStatus_ interface { + isImportStatus() +} + +type CompanionStruct_ImportStatus_ struct { +} + +var Companion_ImportStatus_ = CompanionStruct_ImportStatus_{} + +type ImportStatus_IN__PROGRESS struct { +} + +func (ImportStatus_IN__PROGRESS) isImportStatus() {} + +func (CompanionStruct_ImportStatus_) Create_IN__PROGRESS_() ImportStatus { + return ImportStatus{ImportStatus_IN__PROGRESS{}} +} + +func (_this ImportStatus) Is_IN__PROGRESS() bool { + _, ok := _this.Get_().(ImportStatus_IN__PROGRESS) + return ok +} + +type ImportStatus_COMPLETED struct { +} + +func (ImportStatus_COMPLETED) isImportStatus() {} + +func (CompanionStruct_ImportStatus_) Create_COMPLETED_() ImportStatus { + return ImportStatus{ImportStatus_COMPLETED{}} +} + +func (_this ImportStatus) Is_COMPLETED() bool { + _, ok := _this.Get_().(ImportStatus_COMPLETED) + return ok +} + +type ImportStatus_CANCELLING struct { +} + +func (ImportStatus_CANCELLING) isImportStatus() {} + +func (CompanionStruct_ImportStatus_) Create_CANCELLING_() ImportStatus { + return ImportStatus{ImportStatus_CANCELLING{}} +} + +func (_this ImportStatus) Is_CANCELLING() bool { + _, ok := _this.Get_().(ImportStatus_CANCELLING) + return ok +} + +type ImportStatus_CANCELLED struct { +} + +func (ImportStatus_CANCELLED) isImportStatus() {} + +func (CompanionStruct_ImportStatus_) Create_CANCELLED_() ImportStatus { + return ImportStatus{ImportStatus_CANCELLED{}} +} + +func (_this ImportStatus) Is_CANCELLED() bool { + _, ok := _this.Get_().(ImportStatus_CANCELLED) + return ok +} + +type ImportStatus_FAILED struct { +} + +func (ImportStatus_FAILED) isImportStatus() {} + +func (CompanionStruct_ImportStatus_) Create_FAILED_() ImportStatus { + return ImportStatus{ImportStatus_FAILED{}} +} + +func (_this ImportStatus) Is_FAILED() bool { + _, ok := _this.Get_().(ImportStatus_FAILED) + return ok +} + +func (CompanionStruct_ImportStatus_) Default() ImportStatus { + return Companion_ImportStatus_.Create_IN__PROGRESS_() +} + +func (_ CompanionStruct_ImportStatus_) AllSingletonConstructors() _dafny.Iterator { + i := -1 + return func() (interface{}, bool) { + i++ + switch i { + case 0: + return Companion_ImportStatus_.Create_IN__PROGRESS_(), true + case 1: + return Companion_ImportStatus_.Create_COMPLETED_(), true + case 2: + return Companion_ImportStatus_.Create_CANCELLING_(), true + case 3: + return Companion_ImportStatus_.Create_CANCELLED_(), true + case 4: + return Companion_ImportStatus_.Create_FAILED_(), true + default: + return ImportStatus{}, false + } + } +} + +func (_this ImportStatus) String() string { + switch _this.Get_().(type) { + case nil: + return "null" + case ImportStatus_IN__PROGRESS: + { + return "ComAmazonawsDynamodbTypes.ImportStatus.IN_PROGRESS" + } + case ImportStatus_COMPLETED: + { + return "ComAmazonawsDynamodbTypes.ImportStatus.COMPLETED" + } + case ImportStatus_CANCELLING: + { + return "ComAmazonawsDynamodbTypes.ImportStatus.CANCELLING" + } + case ImportStatus_CANCELLED: + { + return "ComAmazonawsDynamodbTypes.ImportStatus.CANCELLED" + } + case ImportStatus_FAILED: + { + return "ComAmazonawsDynamodbTypes.ImportStatus.FAILED" + } + default: + { + return "" + } + } +} + +func (_this ImportStatus) Equals(other ImportStatus) bool { + switch _this.Get_().(type) { + case ImportStatus_IN__PROGRESS: + { + _, ok := other.Get_().(ImportStatus_IN__PROGRESS) + return ok + } + case ImportStatus_COMPLETED: + { + _, ok := other.Get_().(ImportStatus_COMPLETED) + return ok + } + case ImportStatus_CANCELLING: + { + _, ok := other.Get_().(ImportStatus_CANCELLING) + return ok + } + case ImportStatus_CANCELLED: + { + _, ok := other.Get_().(ImportStatus_CANCELLED) + return ok + } + case ImportStatus_FAILED: + { + _, ok := other.Get_().(ImportStatus_FAILED) + return ok + } + default: + { + return false // unexpected + } + } +} + +func (_this ImportStatus) EqualsGeneric(other interface{}) bool { + typed, ok := other.(ImportStatus) + return ok && _this.Equals(typed) +} + +func Type_ImportStatus_() _dafny.TypeDescriptor { + return type_ImportStatus_{} +} + +type type_ImportStatus_ struct { +} + +func (_this type_ImportStatus_) Default() interface{} { + return Companion_ImportStatus_.Default() +} + +func (_this type_ImportStatus_) String() string { + return "ComAmazonawsDynamodbTypes.ImportStatus" +} +func (_this ImportStatus) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = ImportStatus{} + +// End of datatype ImportStatus + +// Definition of datatype ImportSummary +type ImportSummary struct { + Data_ImportSummary_ +} + +func (_this ImportSummary) Get_() Data_ImportSummary_ { + return _this.Data_ImportSummary_ +} + +type Data_ImportSummary_ interface { + isImportSummary() +} + +type CompanionStruct_ImportSummary_ struct { +} + +var Companion_ImportSummary_ = CompanionStruct_ImportSummary_{} + +type ImportSummary_ImportSummary struct { + ImportArn m_Wrappers.Option + ImportStatus m_Wrappers.Option + TableArn m_Wrappers.Option + S3BucketSource m_Wrappers.Option + CloudWatchLogGroupArn m_Wrappers.Option + InputFormat m_Wrappers.Option + StartTime m_Wrappers.Option + EndTime m_Wrappers.Option +} + +func (ImportSummary_ImportSummary) isImportSummary() {} + +func (CompanionStruct_ImportSummary_) Create_ImportSummary_(ImportArn m_Wrappers.Option, ImportStatus m_Wrappers.Option, TableArn m_Wrappers.Option, S3BucketSource m_Wrappers.Option, CloudWatchLogGroupArn m_Wrappers.Option, InputFormat m_Wrappers.Option, StartTime m_Wrappers.Option, EndTime m_Wrappers.Option) ImportSummary { + return ImportSummary{ImportSummary_ImportSummary{ImportArn, ImportStatus, TableArn, S3BucketSource, CloudWatchLogGroupArn, InputFormat, StartTime, EndTime}} +} + +func (_this ImportSummary) Is_ImportSummary() bool { + _, ok := _this.Get_().(ImportSummary_ImportSummary) + return ok +} + +func (CompanionStruct_ImportSummary_) Default() ImportSummary { + return Companion_ImportSummary_.Create_ImportSummary_(m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this ImportSummary) Dtor_ImportArn() m_Wrappers.Option { + return _this.Get_().(ImportSummary_ImportSummary).ImportArn +} + +func (_this ImportSummary) Dtor_ImportStatus() m_Wrappers.Option { + return _this.Get_().(ImportSummary_ImportSummary).ImportStatus +} + +func (_this ImportSummary) Dtor_TableArn() m_Wrappers.Option { + return _this.Get_().(ImportSummary_ImportSummary).TableArn +} + +func (_this ImportSummary) Dtor_S3BucketSource() m_Wrappers.Option { + return _this.Get_().(ImportSummary_ImportSummary).S3BucketSource +} + +func (_this ImportSummary) Dtor_CloudWatchLogGroupArn() m_Wrappers.Option { + return _this.Get_().(ImportSummary_ImportSummary).CloudWatchLogGroupArn +} + +func (_this ImportSummary) Dtor_InputFormat() m_Wrappers.Option { + return _this.Get_().(ImportSummary_ImportSummary).InputFormat +} + +func (_this ImportSummary) Dtor_StartTime() m_Wrappers.Option { + return _this.Get_().(ImportSummary_ImportSummary).StartTime +} + +func (_this ImportSummary) Dtor_EndTime() m_Wrappers.Option { + return _this.Get_().(ImportSummary_ImportSummary).EndTime +} + +func (_this ImportSummary) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case ImportSummary_ImportSummary: + { + return "ComAmazonawsDynamodbTypes.ImportSummary.ImportSummary" + "(" + _dafny.String(data.ImportArn) + ", " + _dafny.String(data.ImportStatus) + ", " + _dafny.String(data.TableArn) + ", " + _dafny.String(data.S3BucketSource) + ", " + _dafny.String(data.CloudWatchLogGroupArn) + ", " + _dafny.String(data.InputFormat) + ", " + _dafny.String(data.StartTime) + ", " + _dafny.String(data.EndTime) + ")" + } + default: + { + return "" + } + } +} + +func (_this ImportSummary) Equals(other ImportSummary) bool { + switch data1 := _this.Get_().(type) { + case ImportSummary_ImportSummary: + { + data2, ok := other.Get_().(ImportSummary_ImportSummary) + return ok && data1.ImportArn.Equals(data2.ImportArn) && data1.ImportStatus.Equals(data2.ImportStatus) && data1.TableArn.Equals(data2.TableArn) && data1.S3BucketSource.Equals(data2.S3BucketSource) && data1.CloudWatchLogGroupArn.Equals(data2.CloudWatchLogGroupArn) && data1.InputFormat.Equals(data2.InputFormat) && data1.StartTime.Equals(data2.StartTime) && data1.EndTime.Equals(data2.EndTime) + } + default: + { + return false // unexpected + } + } +} + +func (_this ImportSummary) EqualsGeneric(other interface{}) bool { + typed, ok := other.(ImportSummary) + return ok && _this.Equals(typed) +} + +func Type_ImportSummary_() _dafny.TypeDescriptor { + return type_ImportSummary_{} +} + +type type_ImportSummary_ struct { +} + +func (_this type_ImportSummary_) Default() interface{} { + return Companion_ImportSummary_.Default() +} + +func (_this type_ImportSummary_) String() string { + return "ComAmazonawsDynamodbTypes.ImportSummary" +} +func (_this ImportSummary) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = ImportSummary{} + +// End of datatype ImportSummary + +// Definition of datatype ImportTableDescription +type ImportTableDescription struct { + Data_ImportTableDescription_ +} + +func (_this ImportTableDescription) Get_() Data_ImportTableDescription_ { + return _this.Data_ImportTableDescription_ +} + +type Data_ImportTableDescription_ interface { + isImportTableDescription() +} + +type CompanionStruct_ImportTableDescription_ struct { +} + +var Companion_ImportTableDescription_ = CompanionStruct_ImportTableDescription_{} + +type ImportTableDescription_ImportTableDescription struct { + ImportArn m_Wrappers.Option + ImportStatus m_Wrappers.Option + TableArn m_Wrappers.Option + TableId m_Wrappers.Option + ClientToken m_Wrappers.Option + S3BucketSource m_Wrappers.Option + ErrorCount m_Wrappers.Option + CloudWatchLogGroupArn m_Wrappers.Option + InputFormat m_Wrappers.Option + InputFormatOptions m_Wrappers.Option + InputCompressionType m_Wrappers.Option + TableCreationParameters m_Wrappers.Option + StartTime m_Wrappers.Option + EndTime m_Wrappers.Option + ProcessedSizeBytes m_Wrappers.Option + ProcessedItemCount m_Wrappers.Option + ImportedItemCount m_Wrappers.Option + FailureCode m_Wrappers.Option + FailureMessage m_Wrappers.Option +} + +func (ImportTableDescription_ImportTableDescription) isImportTableDescription() {} + +func (CompanionStruct_ImportTableDescription_) Create_ImportTableDescription_(ImportArn m_Wrappers.Option, ImportStatus m_Wrappers.Option, TableArn m_Wrappers.Option, TableId m_Wrappers.Option, ClientToken m_Wrappers.Option, S3BucketSource m_Wrappers.Option, ErrorCount m_Wrappers.Option, CloudWatchLogGroupArn m_Wrappers.Option, InputFormat m_Wrappers.Option, InputFormatOptions m_Wrappers.Option, InputCompressionType m_Wrappers.Option, TableCreationParameters m_Wrappers.Option, StartTime m_Wrappers.Option, EndTime m_Wrappers.Option, ProcessedSizeBytes m_Wrappers.Option, ProcessedItemCount m_Wrappers.Option, ImportedItemCount m_Wrappers.Option, FailureCode m_Wrappers.Option, FailureMessage m_Wrappers.Option) ImportTableDescription { + return ImportTableDescription{ImportTableDescription_ImportTableDescription{ImportArn, ImportStatus, TableArn, TableId, ClientToken, S3BucketSource, ErrorCount, CloudWatchLogGroupArn, InputFormat, InputFormatOptions, InputCompressionType, TableCreationParameters, StartTime, EndTime, ProcessedSizeBytes, ProcessedItemCount, ImportedItemCount, FailureCode, FailureMessage}} +} + +func (_this ImportTableDescription) Is_ImportTableDescription() bool { + _, ok := _this.Get_().(ImportTableDescription_ImportTableDescription) + return ok +} + +func (CompanionStruct_ImportTableDescription_) Default() ImportTableDescription { + return Companion_ImportTableDescription_.Create_ImportTableDescription_(m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this ImportTableDescription) Dtor_ImportArn() m_Wrappers.Option { + return _this.Get_().(ImportTableDescription_ImportTableDescription).ImportArn +} + +func (_this ImportTableDescription) Dtor_ImportStatus() m_Wrappers.Option { + return _this.Get_().(ImportTableDescription_ImportTableDescription).ImportStatus +} + +func (_this ImportTableDescription) Dtor_TableArn() m_Wrappers.Option { + return _this.Get_().(ImportTableDescription_ImportTableDescription).TableArn +} + +func (_this ImportTableDescription) Dtor_TableId() m_Wrappers.Option { + return _this.Get_().(ImportTableDescription_ImportTableDescription).TableId +} + +func (_this ImportTableDescription) Dtor_ClientToken() m_Wrappers.Option { + return _this.Get_().(ImportTableDescription_ImportTableDescription).ClientToken +} + +func (_this ImportTableDescription) Dtor_S3BucketSource() m_Wrappers.Option { + return _this.Get_().(ImportTableDescription_ImportTableDescription).S3BucketSource +} + +func (_this ImportTableDescription) Dtor_ErrorCount() m_Wrappers.Option { + return _this.Get_().(ImportTableDescription_ImportTableDescription).ErrorCount +} + +func (_this ImportTableDescription) Dtor_CloudWatchLogGroupArn() m_Wrappers.Option { + return _this.Get_().(ImportTableDescription_ImportTableDescription).CloudWatchLogGroupArn +} + +func (_this ImportTableDescription) Dtor_InputFormat() m_Wrappers.Option { + return _this.Get_().(ImportTableDescription_ImportTableDescription).InputFormat +} + +func (_this ImportTableDescription) Dtor_InputFormatOptions() m_Wrappers.Option { + return _this.Get_().(ImportTableDescription_ImportTableDescription).InputFormatOptions +} + +func (_this ImportTableDescription) Dtor_InputCompressionType() m_Wrappers.Option { + return _this.Get_().(ImportTableDescription_ImportTableDescription).InputCompressionType +} + +func (_this ImportTableDescription) Dtor_TableCreationParameters() m_Wrappers.Option { + return _this.Get_().(ImportTableDescription_ImportTableDescription).TableCreationParameters +} + +func (_this ImportTableDescription) Dtor_StartTime() m_Wrappers.Option { + return _this.Get_().(ImportTableDescription_ImportTableDescription).StartTime +} + +func (_this ImportTableDescription) Dtor_EndTime() m_Wrappers.Option { + return _this.Get_().(ImportTableDescription_ImportTableDescription).EndTime +} + +func (_this ImportTableDescription) Dtor_ProcessedSizeBytes() m_Wrappers.Option { + return _this.Get_().(ImportTableDescription_ImportTableDescription).ProcessedSizeBytes +} + +func (_this ImportTableDescription) Dtor_ProcessedItemCount() m_Wrappers.Option { + return _this.Get_().(ImportTableDescription_ImportTableDescription).ProcessedItemCount +} + +func (_this ImportTableDescription) Dtor_ImportedItemCount() m_Wrappers.Option { + return _this.Get_().(ImportTableDescription_ImportTableDescription).ImportedItemCount +} + +func (_this ImportTableDescription) Dtor_FailureCode() m_Wrappers.Option { + return _this.Get_().(ImportTableDescription_ImportTableDescription).FailureCode +} + +func (_this ImportTableDescription) Dtor_FailureMessage() m_Wrappers.Option { + return _this.Get_().(ImportTableDescription_ImportTableDescription).FailureMessage +} + +func (_this ImportTableDescription) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case ImportTableDescription_ImportTableDescription: + { + return "ComAmazonawsDynamodbTypes.ImportTableDescription.ImportTableDescription" + "(" + _dafny.String(data.ImportArn) + ", " + _dafny.String(data.ImportStatus) + ", " + _dafny.String(data.TableArn) + ", " + _dafny.String(data.TableId) + ", " + _dafny.String(data.ClientToken) + ", " + _dafny.String(data.S3BucketSource) + ", " + _dafny.String(data.ErrorCount) + ", " + _dafny.String(data.CloudWatchLogGroupArn) + ", " + _dafny.String(data.InputFormat) + ", " + _dafny.String(data.InputFormatOptions) + ", " + _dafny.String(data.InputCompressionType) + ", " + _dafny.String(data.TableCreationParameters) + ", " + _dafny.String(data.StartTime) + ", " + _dafny.String(data.EndTime) + ", " + _dafny.String(data.ProcessedSizeBytes) + ", " + _dafny.String(data.ProcessedItemCount) + ", " + _dafny.String(data.ImportedItemCount) + ", " + _dafny.String(data.FailureCode) + ", " + _dafny.String(data.FailureMessage) + ")" + } + default: + { + return "" + } + } +} + +func (_this ImportTableDescription) Equals(other ImportTableDescription) bool { + switch data1 := _this.Get_().(type) { + case ImportTableDescription_ImportTableDescription: + { + data2, ok := other.Get_().(ImportTableDescription_ImportTableDescription) + return ok && data1.ImportArn.Equals(data2.ImportArn) && data1.ImportStatus.Equals(data2.ImportStatus) && data1.TableArn.Equals(data2.TableArn) && data1.TableId.Equals(data2.TableId) && data1.ClientToken.Equals(data2.ClientToken) && data1.S3BucketSource.Equals(data2.S3BucketSource) && data1.ErrorCount.Equals(data2.ErrorCount) && data1.CloudWatchLogGroupArn.Equals(data2.CloudWatchLogGroupArn) && data1.InputFormat.Equals(data2.InputFormat) && data1.InputFormatOptions.Equals(data2.InputFormatOptions) && data1.InputCompressionType.Equals(data2.InputCompressionType) && data1.TableCreationParameters.Equals(data2.TableCreationParameters) && data1.StartTime.Equals(data2.StartTime) && data1.EndTime.Equals(data2.EndTime) && data1.ProcessedSizeBytes.Equals(data2.ProcessedSizeBytes) && data1.ProcessedItemCount.Equals(data2.ProcessedItemCount) && data1.ImportedItemCount.Equals(data2.ImportedItemCount) && data1.FailureCode.Equals(data2.FailureCode) && data1.FailureMessage.Equals(data2.FailureMessage) + } + default: + { + return false // unexpected + } + } +} + +func (_this ImportTableDescription) EqualsGeneric(other interface{}) bool { + typed, ok := other.(ImportTableDescription) + return ok && _this.Equals(typed) +} + +func Type_ImportTableDescription_() _dafny.TypeDescriptor { + return type_ImportTableDescription_{} +} + +type type_ImportTableDescription_ struct { +} + +func (_this type_ImportTableDescription_) Default() interface{} { + return Companion_ImportTableDescription_.Default() +} + +func (_this type_ImportTableDescription_) String() string { + return "ComAmazonawsDynamodbTypes.ImportTableDescription" +} +func (_this ImportTableDescription) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = ImportTableDescription{} + +// End of datatype ImportTableDescription + +// Definition of datatype ImportTableInput +type ImportTableInput struct { + Data_ImportTableInput_ +} + +func (_this ImportTableInput) Get_() Data_ImportTableInput_ { + return _this.Data_ImportTableInput_ +} + +type Data_ImportTableInput_ interface { + isImportTableInput() +} + +type CompanionStruct_ImportTableInput_ struct { +} + +var Companion_ImportTableInput_ = CompanionStruct_ImportTableInput_{} + +type ImportTableInput_ImportTableInput struct { + ClientToken m_Wrappers.Option + S3BucketSource S3BucketSource + InputFormat InputFormat + InputFormatOptions m_Wrappers.Option + InputCompressionType m_Wrappers.Option + TableCreationParameters TableCreationParameters +} + +func (ImportTableInput_ImportTableInput) isImportTableInput() {} + +func (CompanionStruct_ImportTableInput_) Create_ImportTableInput_(ClientToken m_Wrappers.Option, S3BucketSource S3BucketSource, InputFormat InputFormat, InputFormatOptions m_Wrappers.Option, InputCompressionType m_Wrappers.Option, TableCreationParameters TableCreationParameters) ImportTableInput { + return ImportTableInput{ImportTableInput_ImportTableInput{ClientToken, S3BucketSource, InputFormat, InputFormatOptions, InputCompressionType, TableCreationParameters}} +} + +func (_this ImportTableInput) Is_ImportTableInput() bool { + _, ok := _this.Get_().(ImportTableInput_ImportTableInput) + return ok +} + +func (CompanionStruct_ImportTableInput_) Default() ImportTableInput { + return Companion_ImportTableInput_.Create_ImportTableInput_(m_Wrappers.Companion_Option_.Default(), Companion_S3BucketSource_.Default(), Companion_InputFormat_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), Companion_TableCreationParameters_.Default()) +} + +func (_this ImportTableInput) Dtor_ClientToken() m_Wrappers.Option { + return _this.Get_().(ImportTableInput_ImportTableInput).ClientToken +} + +func (_this ImportTableInput) Dtor_S3BucketSource() S3BucketSource { + return _this.Get_().(ImportTableInput_ImportTableInput).S3BucketSource +} + +func (_this ImportTableInput) Dtor_InputFormat() InputFormat { + return _this.Get_().(ImportTableInput_ImportTableInput).InputFormat +} + +func (_this ImportTableInput) Dtor_InputFormatOptions() m_Wrappers.Option { + return _this.Get_().(ImportTableInput_ImportTableInput).InputFormatOptions +} + +func (_this ImportTableInput) Dtor_InputCompressionType() m_Wrappers.Option { + return _this.Get_().(ImportTableInput_ImportTableInput).InputCompressionType +} + +func (_this ImportTableInput) Dtor_TableCreationParameters() TableCreationParameters { + return _this.Get_().(ImportTableInput_ImportTableInput).TableCreationParameters +} + +func (_this ImportTableInput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case ImportTableInput_ImportTableInput: + { + return "ComAmazonawsDynamodbTypes.ImportTableInput.ImportTableInput" + "(" + _dafny.String(data.ClientToken) + ", " + _dafny.String(data.S3BucketSource) + ", " + _dafny.String(data.InputFormat) + ", " + _dafny.String(data.InputFormatOptions) + ", " + _dafny.String(data.InputCompressionType) + ", " + _dafny.String(data.TableCreationParameters) + ")" + } + default: + { + return "" + } + } +} + +func (_this ImportTableInput) Equals(other ImportTableInput) bool { + switch data1 := _this.Get_().(type) { + case ImportTableInput_ImportTableInput: + { + data2, ok := other.Get_().(ImportTableInput_ImportTableInput) + return ok && data1.ClientToken.Equals(data2.ClientToken) && data1.S3BucketSource.Equals(data2.S3BucketSource) && data1.InputFormat.Equals(data2.InputFormat) && data1.InputFormatOptions.Equals(data2.InputFormatOptions) && data1.InputCompressionType.Equals(data2.InputCompressionType) && data1.TableCreationParameters.Equals(data2.TableCreationParameters) + } + default: + { + return false // unexpected + } + } +} + +func (_this ImportTableInput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(ImportTableInput) + return ok && _this.Equals(typed) +} + +func Type_ImportTableInput_() _dafny.TypeDescriptor { + return type_ImportTableInput_{} +} + +type type_ImportTableInput_ struct { +} + +func (_this type_ImportTableInput_) Default() interface{} { + return Companion_ImportTableInput_.Default() +} + +func (_this type_ImportTableInput_) String() string { + return "ComAmazonawsDynamodbTypes.ImportTableInput" +} +func (_this ImportTableInput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = ImportTableInput{} + +// End of datatype ImportTableInput + +// Definition of datatype ImportTableOutput +type ImportTableOutput struct { + Data_ImportTableOutput_ +} + +func (_this ImportTableOutput) Get_() Data_ImportTableOutput_ { + return _this.Data_ImportTableOutput_ +} + +type Data_ImportTableOutput_ interface { + isImportTableOutput() +} + +type CompanionStruct_ImportTableOutput_ struct { +} + +var Companion_ImportTableOutput_ = CompanionStruct_ImportTableOutput_{} + +type ImportTableOutput_ImportTableOutput struct { + ImportTableDescription ImportTableDescription +} + +func (ImportTableOutput_ImportTableOutput) isImportTableOutput() {} + +func (CompanionStruct_ImportTableOutput_) Create_ImportTableOutput_(ImportTableDescription ImportTableDescription) ImportTableOutput { + return ImportTableOutput{ImportTableOutput_ImportTableOutput{ImportTableDescription}} +} + +func (_this ImportTableOutput) Is_ImportTableOutput() bool { + _, ok := _this.Get_().(ImportTableOutput_ImportTableOutput) + return ok +} + +func (CompanionStruct_ImportTableOutput_) Default() ImportTableOutput { + return Companion_ImportTableOutput_.Create_ImportTableOutput_(Companion_ImportTableDescription_.Default()) +} + +func (_this ImportTableOutput) Dtor_ImportTableDescription() ImportTableDescription { + return _this.Get_().(ImportTableOutput_ImportTableOutput).ImportTableDescription +} + +func (_this ImportTableOutput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case ImportTableOutput_ImportTableOutput: + { + return "ComAmazonawsDynamodbTypes.ImportTableOutput.ImportTableOutput" + "(" + _dafny.String(data.ImportTableDescription) + ")" + } + default: + { + return "" + } + } +} + +func (_this ImportTableOutput) Equals(other ImportTableOutput) bool { + switch data1 := _this.Get_().(type) { + case ImportTableOutput_ImportTableOutput: + { + data2, ok := other.Get_().(ImportTableOutput_ImportTableOutput) + return ok && data1.ImportTableDescription.Equals(data2.ImportTableDescription) + } + default: + { + return false // unexpected + } + } +} + +func (_this ImportTableOutput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(ImportTableOutput) + return ok && _this.Equals(typed) +} + +func Type_ImportTableOutput_() _dafny.TypeDescriptor { + return type_ImportTableOutput_{} +} + +type type_ImportTableOutput_ struct { +} + +func (_this type_ImportTableOutput_) Default() interface{} { + return Companion_ImportTableOutput_.Default() +} + +func (_this type_ImportTableOutput_) String() string { + return "ComAmazonawsDynamodbTypes.ImportTableOutput" +} +func (_this ImportTableOutput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = ImportTableOutput{} + +// End of datatype ImportTableOutput + +// Definition of datatype IncrementalExportSpecification +type IncrementalExportSpecification struct { + Data_IncrementalExportSpecification_ +} + +func (_this IncrementalExportSpecification) Get_() Data_IncrementalExportSpecification_ { + return _this.Data_IncrementalExportSpecification_ +} + +type Data_IncrementalExportSpecification_ interface { + isIncrementalExportSpecification() +} + +type CompanionStruct_IncrementalExportSpecification_ struct { +} + +var Companion_IncrementalExportSpecification_ = CompanionStruct_IncrementalExportSpecification_{} + +type IncrementalExportSpecification_IncrementalExportSpecification struct { + ExportFromTime m_Wrappers.Option + ExportToTime m_Wrappers.Option + ExportViewType m_Wrappers.Option +} + +func (IncrementalExportSpecification_IncrementalExportSpecification) isIncrementalExportSpecification() { +} + +func (CompanionStruct_IncrementalExportSpecification_) Create_IncrementalExportSpecification_(ExportFromTime m_Wrappers.Option, ExportToTime m_Wrappers.Option, ExportViewType m_Wrappers.Option) IncrementalExportSpecification { + return IncrementalExportSpecification{IncrementalExportSpecification_IncrementalExportSpecification{ExportFromTime, ExportToTime, ExportViewType}} +} + +func (_this IncrementalExportSpecification) Is_IncrementalExportSpecification() bool { + _, ok := _this.Get_().(IncrementalExportSpecification_IncrementalExportSpecification) + return ok +} + +func (CompanionStruct_IncrementalExportSpecification_) Default() IncrementalExportSpecification { + return Companion_IncrementalExportSpecification_.Create_IncrementalExportSpecification_(m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this IncrementalExportSpecification) Dtor_ExportFromTime() m_Wrappers.Option { + return _this.Get_().(IncrementalExportSpecification_IncrementalExportSpecification).ExportFromTime +} + +func (_this IncrementalExportSpecification) Dtor_ExportToTime() m_Wrappers.Option { + return _this.Get_().(IncrementalExportSpecification_IncrementalExportSpecification).ExportToTime +} + +func (_this IncrementalExportSpecification) Dtor_ExportViewType() m_Wrappers.Option { + return _this.Get_().(IncrementalExportSpecification_IncrementalExportSpecification).ExportViewType +} + +func (_this IncrementalExportSpecification) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case IncrementalExportSpecification_IncrementalExportSpecification: + { + return "ComAmazonawsDynamodbTypes.IncrementalExportSpecification.IncrementalExportSpecification" + "(" + _dafny.String(data.ExportFromTime) + ", " + _dafny.String(data.ExportToTime) + ", " + _dafny.String(data.ExportViewType) + ")" + } + default: + { + return "" + } + } +} + +func (_this IncrementalExportSpecification) Equals(other IncrementalExportSpecification) bool { + switch data1 := _this.Get_().(type) { + case IncrementalExportSpecification_IncrementalExportSpecification: + { + data2, ok := other.Get_().(IncrementalExportSpecification_IncrementalExportSpecification) + return ok && data1.ExportFromTime.Equals(data2.ExportFromTime) && data1.ExportToTime.Equals(data2.ExportToTime) && data1.ExportViewType.Equals(data2.ExportViewType) + } + default: + { + return false // unexpected + } + } +} + +func (_this IncrementalExportSpecification) EqualsGeneric(other interface{}) bool { + typed, ok := other.(IncrementalExportSpecification) + return ok && _this.Equals(typed) +} + +func Type_IncrementalExportSpecification_() _dafny.TypeDescriptor { + return type_IncrementalExportSpecification_{} +} + +type type_IncrementalExportSpecification_ struct { +} + +func (_this type_IncrementalExportSpecification_) Default() interface{} { + return Companion_IncrementalExportSpecification_.Default() +} + +func (_this type_IncrementalExportSpecification_) String() string { + return "ComAmazonawsDynamodbTypes.IncrementalExportSpecification" +} +func (_this IncrementalExportSpecification) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = IncrementalExportSpecification{} + +// End of datatype IncrementalExportSpecification + +// Definition of class IndexName +type IndexName struct { +} + +func New_IndexName_() *IndexName { + _this := IndexName{} + + return &_this +} + +type CompanionStruct_IndexName_ struct { +} + +var Companion_IndexName_ = CompanionStruct_IndexName_{} + +func (*IndexName) String() string { + return "ComAmazonawsDynamodbTypes.IndexName" +} + +// End of class IndexName + +func Type_IndexName_() _dafny.TypeDescriptor { + return type_IndexName_{} +} + +type type_IndexName_ struct { +} + +func (_this type_IndexName_) Default() interface{} { + return _dafny.EmptySeq.SetString() +} + +func (_this type_IndexName_) String() string { + return "ComAmazonawsDynamodbTypes.IndexName" +} +func (_this *CompanionStruct_IndexName_) Is_(__source _dafny.Sequence) bool { + var _7_x _dafny.Sequence = (__source) + _ = _7_x + return Companion_Default___.IsValid__IndexName(_7_x) +} + +// Definition of datatype IndexStatus +type IndexStatus struct { + Data_IndexStatus_ +} + +func (_this IndexStatus) Get_() Data_IndexStatus_ { + return _this.Data_IndexStatus_ +} + +type Data_IndexStatus_ interface { + isIndexStatus() +} + +type CompanionStruct_IndexStatus_ struct { +} + +var Companion_IndexStatus_ = CompanionStruct_IndexStatus_{} + +type IndexStatus_CREATING struct { +} + +func (IndexStatus_CREATING) isIndexStatus() {} + +func (CompanionStruct_IndexStatus_) Create_CREATING_() IndexStatus { + return IndexStatus{IndexStatus_CREATING{}} +} + +func (_this IndexStatus) Is_CREATING() bool { + _, ok := _this.Get_().(IndexStatus_CREATING) + return ok +} + +type IndexStatus_UPDATING struct { +} + +func (IndexStatus_UPDATING) isIndexStatus() {} + +func (CompanionStruct_IndexStatus_) Create_UPDATING_() IndexStatus { + return IndexStatus{IndexStatus_UPDATING{}} +} + +func (_this IndexStatus) Is_UPDATING() bool { + _, ok := _this.Get_().(IndexStatus_UPDATING) + return ok +} + +type IndexStatus_DELETING struct { +} + +func (IndexStatus_DELETING) isIndexStatus() {} + +func (CompanionStruct_IndexStatus_) Create_DELETING_() IndexStatus { + return IndexStatus{IndexStatus_DELETING{}} +} + +func (_this IndexStatus) Is_DELETING() bool { + _, ok := _this.Get_().(IndexStatus_DELETING) + return ok +} + +type IndexStatus_ACTIVE struct { +} + +func (IndexStatus_ACTIVE) isIndexStatus() {} + +func (CompanionStruct_IndexStatus_) Create_ACTIVE_() IndexStatus { + return IndexStatus{IndexStatus_ACTIVE{}} +} + +func (_this IndexStatus) Is_ACTIVE() bool { + _, ok := _this.Get_().(IndexStatus_ACTIVE) + return ok +} + +func (CompanionStruct_IndexStatus_) Default() IndexStatus { + return Companion_IndexStatus_.Create_CREATING_() +} + +func (_ CompanionStruct_IndexStatus_) AllSingletonConstructors() _dafny.Iterator { + i := -1 + return func() (interface{}, bool) { + i++ + switch i { + case 0: + return Companion_IndexStatus_.Create_CREATING_(), true + case 1: + return Companion_IndexStatus_.Create_UPDATING_(), true + case 2: + return Companion_IndexStatus_.Create_DELETING_(), true + case 3: + return Companion_IndexStatus_.Create_ACTIVE_(), true + default: + return IndexStatus{}, false + } + } +} + +func (_this IndexStatus) String() string { + switch _this.Get_().(type) { + case nil: + return "null" + case IndexStatus_CREATING: + { + return "ComAmazonawsDynamodbTypes.IndexStatus.CREATING" + } + case IndexStatus_UPDATING: + { + return "ComAmazonawsDynamodbTypes.IndexStatus.UPDATING" + } + case IndexStatus_DELETING: + { + return "ComAmazonawsDynamodbTypes.IndexStatus.DELETING" + } + case IndexStatus_ACTIVE: + { + return "ComAmazonawsDynamodbTypes.IndexStatus.ACTIVE" + } + default: + { + return "" + } + } +} + +func (_this IndexStatus) Equals(other IndexStatus) bool { + switch _this.Get_().(type) { + case IndexStatus_CREATING: + { + _, ok := other.Get_().(IndexStatus_CREATING) + return ok + } + case IndexStatus_UPDATING: + { + _, ok := other.Get_().(IndexStatus_UPDATING) + return ok + } + case IndexStatus_DELETING: + { + _, ok := other.Get_().(IndexStatus_DELETING) + return ok + } + case IndexStatus_ACTIVE: + { + _, ok := other.Get_().(IndexStatus_ACTIVE) + return ok + } + default: + { + return false // unexpected + } + } +} + +func (_this IndexStatus) EqualsGeneric(other interface{}) bool { + typed, ok := other.(IndexStatus) + return ok && _this.Equals(typed) +} + +func Type_IndexStatus_() _dafny.TypeDescriptor { + return type_IndexStatus_{} +} + +type type_IndexStatus_ struct { +} + +func (_this type_IndexStatus_) Default() interface{} { + return Companion_IndexStatus_.Default() +} + +func (_this type_IndexStatus_) String() string { + return "ComAmazonawsDynamodbTypes.IndexStatus" +} +func (_this IndexStatus) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = IndexStatus{} + +// End of datatype IndexStatus + +// Definition of datatype InputCompressionType +type InputCompressionType struct { + Data_InputCompressionType_ +} + +func (_this InputCompressionType) Get_() Data_InputCompressionType_ { + return _this.Data_InputCompressionType_ +} + +type Data_InputCompressionType_ interface { + isInputCompressionType() +} + +type CompanionStruct_InputCompressionType_ struct { +} + +var Companion_InputCompressionType_ = CompanionStruct_InputCompressionType_{} + +type InputCompressionType_GZIP struct { +} + +func (InputCompressionType_GZIP) isInputCompressionType() {} + +func (CompanionStruct_InputCompressionType_) Create_GZIP_() InputCompressionType { + return InputCompressionType{InputCompressionType_GZIP{}} +} + +func (_this InputCompressionType) Is_GZIP() bool { + _, ok := _this.Get_().(InputCompressionType_GZIP) + return ok +} + +type InputCompressionType_ZSTD struct { +} + +func (InputCompressionType_ZSTD) isInputCompressionType() {} + +func (CompanionStruct_InputCompressionType_) Create_ZSTD_() InputCompressionType { + return InputCompressionType{InputCompressionType_ZSTD{}} +} + +func (_this InputCompressionType) Is_ZSTD() bool { + _, ok := _this.Get_().(InputCompressionType_ZSTD) + return ok +} + +type InputCompressionType_NONE struct { +} + +func (InputCompressionType_NONE) isInputCompressionType() {} + +func (CompanionStruct_InputCompressionType_) Create_NONE_() InputCompressionType { + return InputCompressionType{InputCompressionType_NONE{}} +} + +func (_this InputCompressionType) Is_NONE() bool { + _, ok := _this.Get_().(InputCompressionType_NONE) + return ok +} + +func (CompanionStruct_InputCompressionType_) Default() InputCompressionType { + return Companion_InputCompressionType_.Create_GZIP_() +} + +func (_ CompanionStruct_InputCompressionType_) AllSingletonConstructors() _dafny.Iterator { + i := -1 + return func() (interface{}, bool) { + i++ + switch i { + case 0: + return Companion_InputCompressionType_.Create_GZIP_(), true + case 1: + return Companion_InputCompressionType_.Create_ZSTD_(), true + case 2: + return Companion_InputCompressionType_.Create_NONE_(), true + default: + return InputCompressionType{}, false + } + } +} + +func (_this InputCompressionType) String() string { + switch _this.Get_().(type) { + case nil: + return "null" + case InputCompressionType_GZIP: + { + return "ComAmazonawsDynamodbTypes.InputCompressionType.GZIP" + } + case InputCompressionType_ZSTD: + { + return "ComAmazonawsDynamodbTypes.InputCompressionType.ZSTD" + } + case InputCompressionType_NONE: + { + return "ComAmazonawsDynamodbTypes.InputCompressionType.NONE" + } + default: + { + return "" + } + } +} + +func (_this InputCompressionType) Equals(other InputCompressionType) bool { + switch _this.Get_().(type) { + case InputCompressionType_GZIP: + { + _, ok := other.Get_().(InputCompressionType_GZIP) + return ok + } + case InputCompressionType_ZSTD: + { + _, ok := other.Get_().(InputCompressionType_ZSTD) + return ok + } + case InputCompressionType_NONE: + { + _, ok := other.Get_().(InputCompressionType_NONE) + return ok + } + default: + { + return false // unexpected + } + } +} + +func (_this InputCompressionType) EqualsGeneric(other interface{}) bool { + typed, ok := other.(InputCompressionType) + return ok && _this.Equals(typed) +} + +func Type_InputCompressionType_() _dafny.TypeDescriptor { + return type_InputCompressionType_{} +} + +type type_InputCompressionType_ struct { +} + +func (_this type_InputCompressionType_) Default() interface{} { + return Companion_InputCompressionType_.Default() +} + +func (_this type_InputCompressionType_) String() string { + return "ComAmazonawsDynamodbTypes.InputCompressionType" +} +func (_this InputCompressionType) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = InputCompressionType{} + +// End of datatype InputCompressionType + +// Definition of datatype InputFormat +type InputFormat struct { + Data_InputFormat_ +} + +func (_this InputFormat) Get_() Data_InputFormat_ { + return _this.Data_InputFormat_ +} + +type Data_InputFormat_ interface { + isInputFormat() +} + +type CompanionStruct_InputFormat_ struct { +} + +var Companion_InputFormat_ = CompanionStruct_InputFormat_{} + +type InputFormat_DYNAMODB__JSON struct { +} + +func (InputFormat_DYNAMODB__JSON) isInputFormat() {} + +func (CompanionStruct_InputFormat_) Create_DYNAMODB__JSON_() InputFormat { + return InputFormat{InputFormat_DYNAMODB__JSON{}} +} + +func (_this InputFormat) Is_DYNAMODB__JSON() bool { + _, ok := _this.Get_().(InputFormat_DYNAMODB__JSON) + return ok +} + +type InputFormat_ION struct { +} + +func (InputFormat_ION) isInputFormat() {} + +func (CompanionStruct_InputFormat_) Create_ION_() InputFormat { + return InputFormat{InputFormat_ION{}} +} + +func (_this InputFormat) Is_ION() bool { + _, ok := _this.Get_().(InputFormat_ION) + return ok +} + +type InputFormat_CSV struct { +} + +func (InputFormat_CSV) isInputFormat() {} + +func (CompanionStruct_InputFormat_) Create_CSV_() InputFormat { + return InputFormat{InputFormat_CSV{}} +} + +func (_this InputFormat) Is_CSV() bool { + _, ok := _this.Get_().(InputFormat_CSV) + return ok +} + +func (CompanionStruct_InputFormat_) Default() InputFormat { + return Companion_InputFormat_.Create_DYNAMODB__JSON_() +} + +func (_ CompanionStruct_InputFormat_) AllSingletonConstructors() _dafny.Iterator { + i := -1 + return func() (interface{}, bool) { + i++ + switch i { + case 0: + return Companion_InputFormat_.Create_DYNAMODB__JSON_(), true + case 1: + return Companion_InputFormat_.Create_ION_(), true + case 2: + return Companion_InputFormat_.Create_CSV_(), true + default: + return InputFormat{}, false + } + } +} + +func (_this InputFormat) String() string { + switch _this.Get_().(type) { + case nil: + return "null" + case InputFormat_DYNAMODB__JSON: + { + return "ComAmazonawsDynamodbTypes.InputFormat.DYNAMODB_JSON" + } + case InputFormat_ION: + { + return "ComAmazonawsDynamodbTypes.InputFormat.ION" + } + case InputFormat_CSV: + { + return "ComAmazonawsDynamodbTypes.InputFormat.CSV" + } + default: + { + return "" + } + } +} + +func (_this InputFormat) Equals(other InputFormat) bool { + switch _this.Get_().(type) { + case InputFormat_DYNAMODB__JSON: + { + _, ok := other.Get_().(InputFormat_DYNAMODB__JSON) + return ok + } + case InputFormat_ION: + { + _, ok := other.Get_().(InputFormat_ION) + return ok + } + case InputFormat_CSV: + { + _, ok := other.Get_().(InputFormat_CSV) + return ok + } + default: + { + return false // unexpected + } + } +} + +func (_this InputFormat) EqualsGeneric(other interface{}) bool { + typed, ok := other.(InputFormat) + return ok && _this.Equals(typed) +} + +func Type_InputFormat_() _dafny.TypeDescriptor { + return type_InputFormat_{} +} + +type type_InputFormat_ struct { +} + +func (_this type_InputFormat_) Default() interface{} { + return Companion_InputFormat_.Default() +} + +func (_this type_InputFormat_) String() string { + return "ComAmazonawsDynamodbTypes.InputFormat" +} +func (_this InputFormat) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = InputFormat{} + +// End of datatype InputFormat + +// Definition of datatype InputFormatOptions +type InputFormatOptions struct { + Data_InputFormatOptions_ +} + +func (_this InputFormatOptions) Get_() Data_InputFormatOptions_ { + return _this.Data_InputFormatOptions_ +} + +type Data_InputFormatOptions_ interface { + isInputFormatOptions() +} + +type CompanionStruct_InputFormatOptions_ struct { +} + +var Companion_InputFormatOptions_ = CompanionStruct_InputFormatOptions_{} + +type InputFormatOptions_InputFormatOptions struct { + Csv m_Wrappers.Option +} + +func (InputFormatOptions_InputFormatOptions) isInputFormatOptions() {} + +func (CompanionStruct_InputFormatOptions_) Create_InputFormatOptions_(Csv m_Wrappers.Option) InputFormatOptions { + return InputFormatOptions{InputFormatOptions_InputFormatOptions{Csv}} +} + +func (_this InputFormatOptions) Is_InputFormatOptions() bool { + _, ok := _this.Get_().(InputFormatOptions_InputFormatOptions) + return ok +} + +func (CompanionStruct_InputFormatOptions_) Default() InputFormatOptions { + return Companion_InputFormatOptions_.Create_InputFormatOptions_(m_Wrappers.Companion_Option_.Default()) +} + +func (_this InputFormatOptions) Dtor_Csv() m_Wrappers.Option { + return _this.Get_().(InputFormatOptions_InputFormatOptions).Csv +} + +func (_this InputFormatOptions) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case InputFormatOptions_InputFormatOptions: + { + return "ComAmazonawsDynamodbTypes.InputFormatOptions.InputFormatOptions" + "(" + _dafny.String(data.Csv) + ")" + } + default: + { + return "" + } + } +} + +func (_this InputFormatOptions) Equals(other InputFormatOptions) bool { + switch data1 := _this.Get_().(type) { + case InputFormatOptions_InputFormatOptions: + { + data2, ok := other.Get_().(InputFormatOptions_InputFormatOptions) + return ok && data1.Csv.Equals(data2.Csv) + } + default: + { + return false // unexpected + } + } +} + +func (_this InputFormatOptions) EqualsGeneric(other interface{}) bool { + typed, ok := other.(InputFormatOptions) + return ok && _this.Equals(typed) +} + +func Type_InputFormatOptions_() _dafny.TypeDescriptor { + return type_InputFormatOptions_{} +} + +type type_InputFormatOptions_ struct { +} + +func (_this type_InputFormatOptions_) Default() interface{} { + return Companion_InputFormatOptions_.Default() +} + +func (_this type_InputFormatOptions_) String() string { + return "ComAmazonawsDynamodbTypes.InputFormatOptions" +} +func (_this InputFormatOptions) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = InputFormatOptions{} + +// End of datatype InputFormatOptions + +// Definition of datatype ItemCollectionMetrics +type ItemCollectionMetrics struct { + Data_ItemCollectionMetrics_ +} + +func (_this ItemCollectionMetrics) Get_() Data_ItemCollectionMetrics_ { + return _this.Data_ItemCollectionMetrics_ +} + +type Data_ItemCollectionMetrics_ interface { + isItemCollectionMetrics() +} + +type CompanionStruct_ItemCollectionMetrics_ struct { +} + +var Companion_ItemCollectionMetrics_ = CompanionStruct_ItemCollectionMetrics_{} + +type ItemCollectionMetrics_ItemCollectionMetrics struct { + ItemCollectionKey m_Wrappers.Option + SizeEstimateRangeGB m_Wrappers.Option +} + +func (ItemCollectionMetrics_ItemCollectionMetrics) isItemCollectionMetrics() {} + +func (CompanionStruct_ItemCollectionMetrics_) Create_ItemCollectionMetrics_(ItemCollectionKey m_Wrappers.Option, SizeEstimateRangeGB m_Wrappers.Option) ItemCollectionMetrics { + return ItemCollectionMetrics{ItemCollectionMetrics_ItemCollectionMetrics{ItemCollectionKey, SizeEstimateRangeGB}} +} + +func (_this ItemCollectionMetrics) Is_ItemCollectionMetrics() bool { + _, ok := _this.Get_().(ItemCollectionMetrics_ItemCollectionMetrics) + return ok +} + +func (CompanionStruct_ItemCollectionMetrics_) Default() ItemCollectionMetrics { + return Companion_ItemCollectionMetrics_.Create_ItemCollectionMetrics_(m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this ItemCollectionMetrics) Dtor_ItemCollectionKey() m_Wrappers.Option { + return _this.Get_().(ItemCollectionMetrics_ItemCollectionMetrics).ItemCollectionKey +} + +func (_this ItemCollectionMetrics) Dtor_SizeEstimateRangeGB() m_Wrappers.Option { + return _this.Get_().(ItemCollectionMetrics_ItemCollectionMetrics).SizeEstimateRangeGB +} + +func (_this ItemCollectionMetrics) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case ItemCollectionMetrics_ItemCollectionMetrics: + { + return "ComAmazonawsDynamodbTypes.ItemCollectionMetrics.ItemCollectionMetrics" + "(" + _dafny.String(data.ItemCollectionKey) + ", " + _dafny.String(data.SizeEstimateRangeGB) + ")" + } + default: + { + return "" + } + } +} + +func (_this ItemCollectionMetrics) Equals(other ItemCollectionMetrics) bool { + switch data1 := _this.Get_().(type) { + case ItemCollectionMetrics_ItemCollectionMetrics: + { + data2, ok := other.Get_().(ItemCollectionMetrics_ItemCollectionMetrics) + return ok && data1.ItemCollectionKey.Equals(data2.ItemCollectionKey) && data1.SizeEstimateRangeGB.Equals(data2.SizeEstimateRangeGB) + } + default: + { + return false // unexpected + } + } +} + +func (_this ItemCollectionMetrics) EqualsGeneric(other interface{}) bool { + typed, ok := other.(ItemCollectionMetrics) + return ok && _this.Equals(typed) +} + +func Type_ItemCollectionMetrics_() _dafny.TypeDescriptor { + return type_ItemCollectionMetrics_{} +} + +type type_ItemCollectionMetrics_ struct { +} + +func (_this type_ItemCollectionMetrics_) Default() interface{} { + return Companion_ItemCollectionMetrics_.Default() +} + +func (_this type_ItemCollectionMetrics_) String() string { + return "ComAmazonawsDynamodbTypes.ItemCollectionMetrics" +} +func (_this ItemCollectionMetrics) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = ItemCollectionMetrics{} + +// End of datatype ItemCollectionMetrics + +// Definition of class ItemCollectionSizeEstimateBound +type ItemCollectionSizeEstimateBound struct { +} + +func New_ItemCollectionSizeEstimateBound_() *ItemCollectionSizeEstimateBound { + _this := ItemCollectionSizeEstimateBound{} + + return &_this +} + +type CompanionStruct_ItemCollectionSizeEstimateBound_ struct { +} + +var Companion_ItemCollectionSizeEstimateBound_ = CompanionStruct_ItemCollectionSizeEstimateBound_{} + +func (*ItemCollectionSizeEstimateBound) String() string { + return "ComAmazonawsDynamodbTypes.ItemCollectionSizeEstimateBound" +} + +// End of class ItemCollectionSizeEstimateBound + +func Type_ItemCollectionSizeEstimateBound_() _dafny.TypeDescriptor { + return type_ItemCollectionSizeEstimateBound_{} +} + +type type_ItemCollectionSizeEstimateBound_ struct { +} + +func (_this type_ItemCollectionSizeEstimateBound_) Default() interface{} { + return _dafny.EmptySeq +} + +func (_this type_ItemCollectionSizeEstimateBound_) String() string { + return "ComAmazonawsDynamodbTypes.ItemCollectionSizeEstimateBound" +} +func (_this *CompanionStruct_ItemCollectionSizeEstimateBound_) Is_(__source _dafny.Sequence) bool { + var _8_x _dafny.Sequence = (__source) + _ = _8_x + return Companion_Default___.IsValid__ItemCollectionSizeEstimateBound(_8_x) +} + +// Definition of class ItemCount +type ItemCount struct { +} + +func New_ItemCount_() *ItemCount { + _this := ItemCount{} + + return &_this +} + +type CompanionStruct_ItemCount_ struct { +} + +var Companion_ItemCount_ = CompanionStruct_ItemCount_{} + +func (*ItemCount) String() string { + return "ComAmazonawsDynamodbTypes.ItemCount" +} + +// End of class ItemCount + +func Type_ItemCount_() _dafny.TypeDescriptor { + return type_ItemCount_{} +} + +type type_ItemCount_ struct { +} + +func (_this type_ItemCount_) Default() interface{} { + return int64(0) +} + +func (_this type_ItemCount_) String() string { + return "ComAmazonawsDynamodbTypes.ItemCount" +} +func (_this *CompanionStruct_ItemCount_) Is_(__source int64) bool { + var _9_x int64 = (__source) + _ = _9_x + if true { + return Companion_Default___.IsValid__ItemCount(_9_x) + } + return false +} + +// Definition of datatype ItemResponse +type ItemResponse struct { + Data_ItemResponse_ +} + +func (_this ItemResponse) Get_() Data_ItemResponse_ { + return _this.Data_ItemResponse_ +} + +type Data_ItemResponse_ interface { + isItemResponse() +} + +type CompanionStruct_ItemResponse_ struct { +} + +var Companion_ItemResponse_ = CompanionStruct_ItemResponse_{} + +type ItemResponse_ItemResponse struct { + Item m_Wrappers.Option +} + +func (ItemResponse_ItemResponse) isItemResponse() {} + +func (CompanionStruct_ItemResponse_) Create_ItemResponse_(Item m_Wrappers.Option) ItemResponse { + return ItemResponse{ItemResponse_ItemResponse{Item}} +} + +func (_this ItemResponse) Is_ItemResponse() bool { + _, ok := _this.Get_().(ItemResponse_ItemResponse) + return ok +} + +func (CompanionStruct_ItemResponse_) Default() ItemResponse { + return Companion_ItemResponse_.Create_ItemResponse_(m_Wrappers.Companion_Option_.Default()) +} + +func (_this ItemResponse) Dtor_Item() m_Wrappers.Option { + return _this.Get_().(ItemResponse_ItemResponse).Item +} + +func (_this ItemResponse) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case ItemResponse_ItemResponse: + { + return "ComAmazonawsDynamodbTypes.ItemResponse.ItemResponse" + "(" + _dafny.String(data.Item) + ")" + } + default: + { + return "" + } + } +} + +func (_this ItemResponse) Equals(other ItemResponse) bool { + switch data1 := _this.Get_().(type) { + case ItemResponse_ItemResponse: + { + data2, ok := other.Get_().(ItemResponse_ItemResponse) + return ok && data1.Item.Equals(data2.Item) + } + default: + { + return false // unexpected + } + } +} + +func (_this ItemResponse) EqualsGeneric(other interface{}) bool { + typed, ok := other.(ItemResponse) + return ok && _this.Equals(typed) +} + +func Type_ItemResponse_() _dafny.TypeDescriptor { + return type_ItemResponse_{} +} + +type type_ItemResponse_ struct { +} + +func (_this type_ItemResponse_) Default() interface{} { + return Companion_ItemResponse_.Default() +} + +func (_this type_ItemResponse_) String() string { + return "ComAmazonawsDynamodbTypes.ItemResponse" +} +func (_this ItemResponse) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = ItemResponse{} + +// End of datatype ItemResponse + +// Definition of class ItemResponseList +type ItemResponseList struct { +} + +func New_ItemResponseList_() *ItemResponseList { + _this := ItemResponseList{} + + return &_this +} + +type CompanionStruct_ItemResponseList_ struct { +} + +var Companion_ItemResponseList_ = CompanionStruct_ItemResponseList_{} + +func (*ItemResponseList) String() string { + return "ComAmazonawsDynamodbTypes.ItemResponseList" +} + +// End of class ItemResponseList + +func Type_ItemResponseList_() _dafny.TypeDescriptor { + return type_ItemResponseList_{} +} + +type type_ItemResponseList_ struct { +} + +func (_this type_ItemResponseList_) Default() interface{} { + return _dafny.EmptySeq +} + +func (_this type_ItemResponseList_) String() string { + return "ComAmazonawsDynamodbTypes.ItemResponseList" +} +func (_this *CompanionStruct_ItemResponseList_) Is_(__source _dafny.Sequence) bool { + var _10_x _dafny.Sequence = (__source) + _ = _10_x + return Companion_Default___.IsValid__ItemResponseList(_10_x) +} + +// Definition of class KeyList +type KeyList struct { +} + +func New_KeyList_() *KeyList { + _this := KeyList{} + + return &_this +} + +type CompanionStruct_KeyList_ struct { +} + +var Companion_KeyList_ = CompanionStruct_KeyList_{} + +func (*KeyList) String() string { + return "ComAmazonawsDynamodbTypes.KeyList" +} + +// End of class KeyList + +func Type_KeyList_() _dafny.TypeDescriptor { + return type_KeyList_{} +} + +type type_KeyList_ struct { +} + +func (_this type_KeyList_) Default() interface{} { + return _dafny.EmptySeq +} + +func (_this type_KeyList_) String() string { + return "ComAmazonawsDynamodbTypes.KeyList" +} +func (_this *CompanionStruct_KeyList_) Is_(__source _dafny.Sequence) bool { + var _11_x _dafny.Sequence = (__source) + _ = _11_x + return Companion_Default___.IsValid__KeyList(_11_x) +} + +// Definition of datatype KeysAndAttributes +type KeysAndAttributes struct { + Data_KeysAndAttributes_ +} + +func (_this KeysAndAttributes) Get_() Data_KeysAndAttributes_ { + return _this.Data_KeysAndAttributes_ +} + +type Data_KeysAndAttributes_ interface { + isKeysAndAttributes() +} + +type CompanionStruct_KeysAndAttributes_ struct { +} + +var Companion_KeysAndAttributes_ = CompanionStruct_KeysAndAttributes_{} + +type KeysAndAttributes_KeysAndAttributes struct { + Keys _dafny.Sequence + AttributesToGet m_Wrappers.Option + ConsistentRead m_Wrappers.Option + ProjectionExpression m_Wrappers.Option + ExpressionAttributeNames m_Wrappers.Option +} + +func (KeysAndAttributes_KeysAndAttributes) isKeysAndAttributes() {} + +func (CompanionStruct_KeysAndAttributes_) Create_KeysAndAttributes_(Keys _dafny.Sequence, AttributesToGet m_Wrappers.Option, ConsistentRead m_Wrappers.Option, ProjectionExpression m_Wrappers.Option, ExpressionAttributeNames m_Wrappers.Option) KeysAndAttributes { + return KeysAndAttributes{KeysAndAttributes_KeysAndAttributes{Keys, AttributesToGet, ConsistentRead, ProjectionExpression, ExpressionAttributeNames}} +} + +func (_this KeysAndAttributes) Is_KeysAndAttributes() bool { + _, ok := _this.Get_().(KeysAndAttributes_KeysAndAttributes) + return ok +} + +func (CompanionStruct_KeysAndAttributes_) Default() KeysAndAttributes { + return Companion_KeysAndAttributes_.Create_KeysAndAttributes_(_dafny.EmptySeq, m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this KeysAndAttributes) Dtor_Keys() _dafny.Sequence { + return _this.Get_().(KeysAndAttributes_KeysAndAttributes).Keys +} + +func (_this KeysAndAttributes) Dtor_AttributesToGet() m_Wrappers.Option { + return _this.Get_().(KeysAndAttributes_KeysAndAttributes).AttributesToGet +} + +func (_this KeysAndAttributes) Dtor_ConsistentRead() m_Wrappers.Option { + return _this.Get_().(KeysAndAttributes_KeysAndAttributes).ConsistentRead +} + +func (_this KeysAndAttributes) Dtor_ProjectionExpression() m_Wrappers.Option { + return _this.Get_().(KeysAndAttributes_KeysAndAttributes).ProjectionExpression +} + +func (_this KeysAndAttributes) Dtor_ExpressionAttributeNames() m_Wrappers.Option { + return _this.Get_().(KeysAndAttributes_KeysAndAttributes).ExpressionAttributeNames +} + +func (_this KeysAndAttributes) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case KeysAndAttributes_KeysAndAttributes: + { + return "ComAmazonawsDynamodbTypes.KeysAndAttributes.KeysAndAttributes" + "(" + _dafny.String(data.Keys) + ", " + _dafny.String(data.AttributesToGet) + ", " + _dafny.String(data.ConsistentRead) + ", " + _dafny.String(data.ProjectionExpression) + ", " + _dafny.String(data.ExpressionAttributeNames) + ")" + } + default: + { + return "" + } + } +} + +func (_this KeysAndAttributes) Equals(other KeysAndAttributes) bool { + switch data1 := _this.Get_().(type) { + case KeysAndAttributes_KeysAndAttributes: + { + data2, ok := other.Get_().(KeysAndAttributes_KeysAndAttributes) + return ok && data1.Keys.Equals(data2.Keys) && data1.AttributesToGet.Equals(data2.AttributesToGet) && data1.ConsistentRead.Equals(data2.ConsistentRead) && data1.ProjectionExpression.Equals(data2.ProjectionExpression) && data1.ExpressionAttributeNames.Equals(data2.ExpressionAttributeNames) + } + default: + { + return false // unexpected + } + } +} + +func (_this KeysAndAttributes) EqualsGeneric(other interface{}) bool { + typed, ok := other.(KeysAndAttributes) + return ok && _this.Equals(typed) +} + +func Type_KeysAndAttributes_() _dafny.TypeDescriptor { + return type_KeysAndAttributes_{} +} + +type type_KeysAndAttributes_ struct { +} + +func (_this type_KeysAndAttributes_) Default() interface{} { + return Companion_KeysAndAttributes_.Default() +} + +func (_this type_KeysAndAttributes_) String() string { + return "ComAmazonawsDynamodbTypes.KeysAndAttributes" +} +func (_this KeysAndAttributes) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = KeysAndAttributes{} + +// End of datatype KeysAndAttributes + +// Definition of class KeySchema +type KeySchema struct { +} + +func New_KeySchema_() *KeySchema { + _this := KeySchema{} + + return &_this +} + +type CompanionStruct_KeySchema_ struct { +} + +var Companion_KeySchema_ = CompanionStruct_KeySchema_{} + +func (*KeySchema) String() string { + return "ComAmazonawsDynamodbTypes.KeySchema" +} + +// End of class KeySchema + +func Type_KeySchema_() _dafny.TypeDescriptor { + return type_KeySchema_{} +} + +type type_KeySchema_ struct { +} + +func (_this type_KeySchema_) Default() interface{} { + return _dafny.EmptySeq +} + +func (_this type_KeySchema_) String() string { + return "ComAmazonawsDynamodbTypes.KeySchema" +} +func (_this *CompanionStruct_KeySchema_) Is_(__source _dafny.Sequence) bool { + var _12_x _dafny.Sequence = (__source) + _ = _12_x + return Companion_Default___.IsValid__KeySchema(_12_x) +} + +// Definition of class KeySchemaAttributeName +type KeySchemaAttributeName struct { +} + +func New_KeySchemaAttributeName_() *KeySchemaAttributeName { + _this := KeySchemaAttributeName{} + + return &_this +} + +type CompanionStruct_KeySchemaAttributeName_ struct { +} + +var Companion_KeySchemaAttributeName_ = CompanionStruct_KeySchemaAttributeName_{} + +func (*KeySchemaAttributeName) String() string { + return "ComAmazonawsDynamodbTypes.KeySchemaAttributeName" +} + +// End of class KeySchemaAttributeName + +func Type_KeySchemaAttributeName_() _dafny.TypeDescriptor { + return type_KeySchemaAttributeName_{} +} + +type type_KeySchemaAttributeName_ struct { +} + +func (_this type_KeySchemaAttributeName_) Default() interface{} { + return _dafny.EmptySeq.SetString() +} + +func (_this type_KeySchemaAttributeName_) String() string { + return "ComAmazonawsDynamodbTypes.KeySchemaAttributeName" +} +func (_this *CompanionStruct_KeySchemaAttributeName_) Is_(__source _dafny.Sequence) bool { + var _13_x _dafny.Sequence = (__source) + _ = _13_x + return Companion_Default___.IsValid__KeySchemaAttributeName(_13_x) +} + +// Definition of datatype KeySchemaElement +type KeySchemaElement struct { + Data_KeySchemaElement_ +} + +func (_this KeySchemaElement) Get_() Data_KeySchemaElement_ { + return _this.Data_KeySchemaElement_ +} + +type Data_KeySchemaElement_ interface { + isKeySchemaElement() +} + +type CompanionStruct_KeySchemaElement_ struct { +} + +var Companion_KeySchemaElement_ = CompanionStruct_KeySchemaElement_{} + +type KeySchemaElement_KeySchemaElement struct { + AttributeName _dafny.Sequence + KeyType KeyType +} + +func (KeySchemaElement_KeySchemaElement) isKeySchemaElement() {} + +func (CompanionStruct_KeySchemaElement_) Create_KeySchemaElement_(AttributeName _dafny.Sequence, KeyType KeyType) KeySchemaElement { + return KeySchemaElement{KeySchemaElement_KeySchemaElement{AttributeName, KeyType}} +} + +func (_this KeySchemaElement) Is_KeySchemaElement() bool { + _, ok := _this.Get_().(KeySchemaElement_KeySchemaElement) + return ok +} + +func (CompanionStruct_KeySchemaElement_) Default() KeySchemaElement { + return Companion_KeySchemaElement_.Create_KeySchemaElement_(_dafny.EmptySeq.SetString(), Companion_KeyType_.Default()) +} + +func (_this KeySchemaElement) Dtor_AttributeName() _dafny.Sequence { + return _this.Get_().(KeySchemaElement_KeySchemaElement).AttributeName +} + +func (_this KeySchemaElement) Dtor_KeyType() KeyType { + return _this.Get_().(KeySchemaElement_KeySchemaElement).KeyType +} + +func (_this KeySchemaElement) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case KeySchemaElement_KeySchemaElement: + { + return "ComAmazonawsDynamodbTypes.KeySchemaElement.KeySchemaElement" + "(" + _dafny.String(data.AttributeName) + ", " + _dafny.String(data.KeyType) + ")" + } + default: + { + return "" + } + } +} + +func (_this KeySchemaElement) Equals(other KeySchemaElement) bool { + switch data1 := _this.Get_().(type) { + case KeySchemaElement_KeySchemaElement: + { + data2, ok := other.Get_().(KeySchemaElement_KeySchemaElement) + return ok && data1.AttributeName.Equals(data2.AttributeName) && data1.KeyType.Equals(data2.KeyType) + } + default: + { + return false // unexpected + } + } +} + +func (_this KeySchemaElement) EqualsGeneric(other interface{}) bool { + typed, ok := other.(KeySchemaElement) + return ok && _this.Equals(typed) +} + +func Type_KeySchemaElement_() _dafny.TypeDescriptor { + return type_KeySchemaElement_{} +} + +type type_KeySchemaElement_ struct { +} + +func (_this type_KeySchemaElement_) Default() interface{} { + return Companion_KeySchemaElement_.Default() +} + +func (_this type_KeySchemaElement_) String() string { + return "ComAmazonawsDynamodbTypes.KeySchemaElement" +} +func (_this KeySchemaElement) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = KeySchemaElement{} + +// End of datatype KeySchemaElement + +// Definition of datatype KeyType +type KeyType struct { + Data_KeyType_ +} + +func (_this KeyType) Get_() Data_KeyType_ { + return _this.Data_KeyType_ +} + +type Data_KeyType_ interface { + isKeyType() +} + +type CompanionStruct_KeyType_ struct { +} + +var Companion_KeyType_ = CompanionStruct_KeyType_{} + +type KeyType_HASH struct { +} + +func (KeyType_HASH) isKeyType() {} + +func (CompanionStruct_KeyType_) Create_HASH_() KeyType { + return KeyType{KeyType_HASH{}} +} + +func (_this KeyType) Is_HASH() bool { + _, ok := _this.Get_().(KeyType_HASH) + return ok +} + +type KeyType_RANGE struct { +} + +func (KeyType_RANGE) isKeyType() {} + +func (CompanionStruct_KeyType_) Create_RANGE_() KeyType { + return KeyType{KeyType_RANGE{}} +} + +func (_this KeyType) Is_RANGE() bool { + _, ok := _this.Get_().(KeyType_RANGE) + return ok +} + +func (CompanionStruct_KeyType_) Default() KeyType { + return Companion_KeyType_.Create_HASH_() +} + +func (_ CompanionStruct_KeyType_) AllSingletonConstructors() _dafny.Iterator { + i := -1 + return func() (interface{}, bool) { + i++ + switch i { + case 0: + return Companion_KeyType_.Create_HASH_(), true + case 1: + return Companion_KeyType_.Create_RANGE_(), true + default: + return KeyType{}, false + } + } +} + +func (_this KeyType) String() string { + switch _this.Get_().(type) { + case nil: + return "null" + case KeyType_HASH: + { + return "ComAmazonawsDynamodbTypes.KeyType.HASH" + } + case KeyType_RANGE: + { + return "ComAmazonawsDynamodbTypes.KeyType.RANGE" + } + default: + { + return "" + } + } +} + +func (_this KeyType) Equals(other KeyType) bool { + switch _this.Get_().(type) { + case KeyType_HASH: + { + _, ok := other.Get_().(KeyType_HASH) + return ok + } + case KeyType_RANGE: + { + _, ok := other.Get_().(KeyType_RANGE) + return ok + } + default: + { + return false // unexpected + } + } +} + +func (_this KeyType) EqualsGeneric(other interface{}) bool { + typed, ok := other.(KeyType) + return ok && _this.Equals(typed) +} + +func Type_KeyType_() _dafny.TypeDescriptor { + return type_KeyType_{} +} + +type type_KeyType_ struct { +} + +func (_this type_KeyType_) Default() interface{} { + return Companion_KeyType_.Default() +} + +func (_this type_KeyType_) String() string { + return "ComAmazonawsDynamodbTypes.KeyType" +} +func (_this KeyType) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = KeyType{} + +// End of datatype KeyType + +// Definition of datatype KinesisDataStreamDestination +type KinesisDataStreamDestination struct { + Data_KinesisDataStreamDestination_ +} + +func (_this KinesisDataStreamDestination) Get_() Data_KinesisDataStreamDestination_ { + return _this.Data_KinesisDataStreamDestination_ +} + +type Data_KinesisDataStreamDestination_ interface { + isKinesisDataStreamDestination() +} + +type CompanionStruct_KinesisDataStreamDestination_ struct { +} + +var Companion_KinesisDataStreamDestination_ = CompanionStruct_KinesisDataStreamDestination_{} + +type KinesisDataStreamDestination_KinesisDataStreamDestination struct { + StreamArn m_Wrappers.Option + DestinationStatus m_Wrappers.Option + DestinationStatusDescription m_Wrappers.Option + ApproximateCreationDateTimePrecision m_Wrappers.Option +} + +func (KinesisDataStreamDestination_KinesisDataStreamDestination) isKinesisDataStreamDestination() {} + +func (CompanionStruct_KinesisDataStreamDestination_) Create_KinesisDataStreamDestination_(StreamArn m_Wrappers.Option, DestinationStatus m_Wrappers.Option, DestinationStatusDescription m_Wrappers.Option, ApproximateCreationDateTimePrecision m_Wrappers.Option) KinesisDataStreamDestination { + return KinesisDataStreamDestination{KinesisDataStreamDestination_KinesisDataStreamDestination{StreamArn, DestinationStatus, DestinationStatusDescription, ApproximateCreationDateTimePrecision}} +} + +func (_this KinesisDataStreamDestination) Is_KinesisDataStreamDestination() bool { + _, ok := _this.Get_().(KinesisDataStreamDestination_KinesisDataStreamDestination) + return ok +} + +func (CompanionStruct_KinesisDataStreamDestination_) Default() KinesisDataStreamDestination { + return Companion_KinesisDataStreamDestination_.Create_KinesisDataStreamDestination_(m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this KinesisDataStreamDestination) Dtor_StreamArn() m_Wrappers.Option { + return _this.Get_().(KinesisDataStreamDestination_KinesisDataStreamDestination).StreamArn +} + +func (_this KinesisDataStreamDestination) Dtor_DestinationStatus() m_Wrappers.Option { + return _this.Get_().(KinesisDataStreamDestination_KinesisDataStreamDestination).DestinationStatus +} + +func (_this KinesisDataStreamDestination) Dtor_DestinationStatusDescription() m_Wrappers.Option { + return _this.Get_().(KinesisDataStreamDestination_KinesisDataStreamDestination).DestinationStatusDescription +} + +func (_this KinesisDataStreamDestination) Dtor_ApproximateCreationDateTimePrecision() m_Wrappers.Option { + return _this.Get_().(KinesisDataStreamDestination_KinesisDataStreamDestination).ApproximateCreationDateTimePrecision +} + +func (_this KinesisDataStreamDestination) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case KinesisDataStreamDestination_KinesisDataStreamDestination: + { + return "ComAmazonawsDynamodbTypes.KinesisDataStreamDestination.KinesisDataStreamDestination" + "(" + _dafny.String(data.StreamArn) + ", " + _dafny.String(data.DestinationStatus) + ", " + _dafny.String(data.DestinationStatusDescription) + ", " + _dafny.String(data.ApproximateCreationDateTimePrecision) + ")" + } + default: + { + return "" + } + } +} + +func (_this KinesisDataStreamDestination) Equals(other KinesisDataStreamDestination) bool { + switch data1 := _this.Get_().(type) { + case KinesisDataStreamDestination_KinesisDataStreamDestination: + { + data2, ok := other.Get_().(KinesisDataStreamDestination_KinesisDataStreamDestination) + return ok && data1.StreamArn.Equals(data2.StreamArn) && data1.DestinationStatus.Equals(data2.DestinationStatus) && data1.DestinationStatusDescription.Equals(data2.DestinationStatusDescription) && data1.ApproximateCreationDateTimePrecision.Equals(data2.ApproximateCreationDateTimePrecision) + } + default: + { + return false // unexpected + } + } +} + +func (_this KinesisDataStreamDestination) EqualsGeneric(other interface{}) bool { + typed, ok := other.(KinesisDataStreamDestination) + return ok && _this.Equals(typed) +} + +func Type_KinesisDataStreamDestination_() _dafny.TypeDescriptor { + return type_KinesisDataStreamDestination_{} +} + +type type_KinesisDataStreamDestination_ struct { +} + +func (_this type_KinesisDataStreamDestination_) Default() interface{} { + return Companion_KinesisDataStreamDestination_.Default() +} + +func (_this type_KinesisDataStreamDestination_) String() string { + return "ComAmazonawsDynamodbTypes.KinesisDataStreamDestination" +} +func (_this KinesisDataStreamDestination) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = KinesisDataStreamDestination{} + +// End of datatype KinesisDataStreamDestination + +// Definition of datatype KinesisStreamingDestinationInput +type KinesisStreamingDestinationInput struct { + Data_KinesisStreamingDestinationInput_ +} + +func (_this KinesisStreamingDestinationInput) Get_() Data_KinesisStreamingDestinationInput_ { + return _this.Data_KinesisStreamingDestinationInput_ +} + +type Data_KinesisStreamingDestinationInput_ interface { + isKinesisStreamingDestinationInput() +} + +type CompanionStruct_KinesisStreamingDestinationInput_ struct { +} + +var Companion_KinesisStreamingDestinationInput_ = CompanionStruct_KinesisStreamingDestinationInput_{} + +type KinesisStreamingDestinationInput_KinesisStreamingDestinationInput struct { + TableName _dafny.Sequence + StreamArn _dafny.Sequence + EnableKinesisStreamingConfiguration m_Wrappers.Option +} + +func (KinesisStreamingDestinationInput_KinesisStreamingDestinationInput) isKinesisStreamingDestinationInput() { +} + +func (CompanionStruct_KinesisStreamingDestinationInput_) Create_KinesisStreamingDestinationInput_(TableName _dafny.Sequence, StreamArn _dafny.Sequence, EnableKinesisStreamingConfiguration m_Wrappers.Option) KinesisStreamingDestinationInput { + return KinesisStreamingDestinationInput{KinesisStreamingDestinationInput_KinesisStreamingDestinationInput{TableName, StreamArn, EnableKinesisStreamingConfiguration}} +} + +func (_this KinesisStreamingDestinationInput) Is_KinesisStreamingDestinationInput() bool { + _, ok := _this.Get_().(KinesisStreamingDestinationInput_KinesisStreamingDestinationInput) + return ok +} + +func (CompanionStruct_KinesisStreamingDestinationInput_) Default() KinesisStreamingDestinationInput { + return Companion_KinesisStreamingDestinationInput_.Create_KinesisStreamingDestinationInput_(_dafny.EmptySeq.SetString(), _dafny.EmptySeq.SetString(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this KinesisStreamingDestinationInput) Dtor_TableName() _dafny.Sequence { + return _this.Get_().(KinesisStreamingDestinationInput_KinesisStreamingDestinationInput).TableName +} + +func (_this KinesisStreamingDestinationInput) Dtor_StreamArn() _dafny.Sequence { + return _this.Get_().(KinesisStreamingDestinationInput_KinesisStreamingDestinationInput).StreamArn +} + +func (_this KinesisStreamingDestinationInput) Dtor_EnableKinesisStreamingConfiguration() m_Wrappers.Option { + return _this.Get_().(KinesisStreamingDestinationInput_KinesisStreamingDestinationInput).EnableKinesisStreamingConfiguration +} + +func (_this KinesisStreamingDestinationInput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case KinesisStreamingDestinationInput_KinesisStreamingDestinationInput: + { + return "ComAmazonawsDynamodbTypes.KinesisStreamingDestinationInput.KinesisStreamingDestinationInput" + "(" + _dafny.String(data.TableName) + ", " + _dafny.String(data.StreamArn) + ", " + _dafny.String(data.EnableKinesisStreamingConfiguration) + ")" + } + default: + { + return "" + } + } +} + +func (_this KinesisStreamingDestinationInput) Equals(other KinesisStreamingDestinationInput) bool { + switch data1 := _this.Get_().(type) { + case KinesisStreamingDestinationInput_KinesisStreamingDestinationInput: + { + data2, ok := other.Get_().(KinesisStreamingDestinationInput_KinesisStreamingDestinationInput) + return ok && data1.TableName.Equals(data2.TableName) && data1.StreamArn.Equals(data2.StreamArn) && data1.EnableKinesisStreamingConfiguration.Equals(data2.EnableKinesisStreamingConfiguration) + } + default: + { + return false // unexpected + } + } +} + +func (_this KinesisStreamingDestinationInput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(KinesisStreamingDestinationInput) + return ok && _this.Equals(typed) +} + +func Type_KinesisStreamingDestinationInput_() _dafny.TypeDescriptor { + return type_KinesisStreamingDestinationInput_{} +} + +type type_KinesisStreamingDestinationInput_ struct { +} + +func (_this type_KinesisStreamingDestinationInput_) Default() interface{} { + return Companion_KinesisStreamingDestinationInput_.Default() +} + +func (_this type_KinesisStreamingDestinationInput_) String() string { + return "ComAmazonawsDynamodbTypes.KinesisStreamingDestinationInput" +} +func (_this KinesisStreamingDestinationInput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = KinesisStreamingDestinationInput{} + +// End of datatype KinesisStreamingDestinationInput + +// Definition of datatype KinesisStreamingDestinationOutput +type KinesisStreamingDestinationOutput struct { + Data_KinesisStreamingDestinationOutput_ +} + +func (_this KinesisStreamingDestinationOutput) Get_() Data_KinesisStreamingDestinationOutput_ { + return _this.Data_KinesisStreamingDestinationOutput_ +} + +type Data_KinesisStreamingDestinationOutput_ interface { + isKinesisStreamingDestinationOutput() +} + +type CompanionStruct_KinesisStreamingDestinationOutput_ struct { +} + +var Companion_KinesisStreamingDestinationOutput_ = CompanionStruct_KinesisStreamingDestinationOutput_{} + +type KinesisStreamingDestinationOutput_KinesisStreamingDestinationOutput struct { + TableName m_Wrappers.Option + StreamArn m_Wrappers.Option + DestinationStatus m_Wrappers.Option + EnableKinesisStreamingConfiguration m_Wrappers.Option +} + +func (KinesisStreamingDestinationOutput_KinesisStreamingDestinationOutput) isKinesisStreamingDestinationOutput() { +} + +func (CompanionStruct_KinesisStreamingDestinationOutput_) Create_KinesisStreamingDestinationOutput_(TableName m_Wrappers.Option, StreamArn m_Wrappers.Option, DestinationStatus m_Wrappers.Option, EnableKinesisStreamingConfiguration m_Wrappers.Option) KinesisStreamingDestinationOutput { + return KinesisStreamingDestinationOutput{KinesisStreamingDestinationOutput_KinesisStreamingDestinationOutput{TableName, StreamArn, DestinationStatus, EnableKinesisStreamingConfiguration}} +} + +func (_this KinesisStreamingDestinationOutput) Is_KinesisStreamingDestinationOutput() bool { + _, ok := _this.Get_().(KinesisStreamingDestinationOutput_KinesisStreamingDestinationOutput) + return ok +} + +func (CompanionStruct_KinesisStreamingDestinationOutput_) Default() KinesisStreamingDestinationOutput { + return Companion_KinesisStreamingDestinationOutput_.Create_KinesisStreamingDestinationOutput_(m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this KinesisStreamingDestinationOutput) Dtor_TableName() m_Wrappers.Option { + return _this.Get_().(KinesisStreamingDestinationOutput_KinesisStreamingDestinationOutput).TableName +} + +func (_this KinesisStreamingDestinationOutput) Dtor_StreamArn() m_Wrappers.Option { + return _this.Get_().(KinesisStreamingDestinationOutput_KinesisStreamingDestinationOutput).StreamArn +} + +func (_this KinesisStreamingDestinationOutput) Dtor_DestinationStatus() m_Wrappers.Option { + return _this.Get_().(KinesisStreamingDestinationOutput_KinesisStreamingDestinationOutput).DestinationStatus +} + +func (_this KinesisStreamingDestinationOutput) Dtor_EnableKinesisStreamingConfiguration() m_Wrappers.Option { + return _this.Get_().(KinesisStreamingDestinationOutput_KinesisStreamingDestinationOutput).EnableKinesisStreamingConfiguration +} + +func (_this KinesisStreamingDestinationOutput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case KinesisStreamingDestinationOutput_KinesisStreamingDestinationOutput: + { + return "ComAmazonawsDynamodbTypes.KinesisStreamingDestinationOutput.KinesisStreamingDestinationOutput" + "(" + _dafny.String(data.TableName) + ", " + _dafny.String(data.StreamArn) + ", " + _dafny.String(data.DestinationStatus) + ", " + _dafny.String(data.EnableKinesisStreamingConfiguration) + ")" + } + default: + { + return "" + } + } +} + +func (_this KinesisStreamingDestinationOutput) Equals(other KinesisStreamingDestinationOutput) bool { + switch data1 := _this.Get_().(type) { + case KinesisStreamingDestinationOutput_KinesisStreamingDestinationOutput: + { + data2, ok := other.Get_().(KinesisStreamingDestinationOutput_KinesisStreamingDestinationOutput) + return ok && data1.TableName.Equals(data2.TableName) && data1.StreamArn.Equals(data2.StreamArn) && data1.DestinationStatus.Equals(data2.DestinationStatus) && data1.EnableKinesisStreamingConfiguration.Equals(data2.EnableKinesisStreamingConfiguration) + } + default: + { + return false // unexpected + } + } +} + +func (_this KinesisStreamingDestinationOutput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(KinesisStreamingDestinationOutput) + return ok && _this.Equals(typed) +} + +func Type_KinesisStreamingDestinationOutput_() _dafny.TypeDescriptor { + return type_KinesisStreamingDestinationOutput_{} +} + +type type_KinesisStreamingDestinationOutput_ struct { +} + +func (_this type_KinesisStreamingDestinationOutput_) Default() interface{} { + return Companion_KinesisStreamingDestinationOutput_.Default() +} + +func (_this type_KinesisStreamingDestinationOutput_) String() string { + return "ComAmazonawsDynamodbTypes.KinesisStreamingDestinationOutput" +} +func (_this KinesisStreamingDestinationOutput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = KinesisStreamingDestinationOutput{} + +// End of datatype KinesisStreamingDestinationOutput + +// Definition of datatype ListBackupsInput +type ListBackupsInput struct { + Data_ListBackupsInput_ +} + +func (_this ListBackupsInput) Get_() Data_ListBackupsInput_ { + return _this.Data_ListBackupsInput_ +} + +type Data_ListBackupsInput_ interface { + isListBackupsInput() +} + +type CompanionStruct_ListBackupsInput_ struct { +} + +var Companion_ListBackupsInput_ = CompanionStruct_ListBackupsInput_{} + +type ListBackupsInput_ListBackupsInput struct { + TableName m_Wrappers.Option + Limit m_Wrappers.Option + TimeRangeLowerBound m_Wrappers.Option + TimeRangeUpperBound m_Wrappers.Option + ExclusiveStartBackupArn m_Wrappers.Option + BackupType m_Wrappers.Option +} + +func (ListBackupsInput_ListBackupsInput) isListBackupsInput() {} + +func (CompanionStruct_ListBackupsInput_) Create_ListBackupsInput_(TableName m_Wrappers.Option, Limit m_Wrappers.Option, TimeRangeLowerBound m_Wrappers.Option, TimeRangeUpperBound m_Wrappers.Option, ExclusiveStartBackupArn m_Wrappers.Option, BackupType m_Wrappers.Option) ListBackupsInput { + return ListBackupsInput{ListBackupsInput_ListBackupsInput{TableName, Limit, TimeRangeLowerBound, TimeRangeUpperBound, ExclusiveStartBackupArn, BackupType}} +} + +func (_this ListBackupsInput) Is_ListBackupsInput() bool { + _, ok := _this.Get_().(ListBackupsInput_ListBackupsInput) + return ok +} + +func (CompanionStruct_ListBackupsInput_) Default() ListBackupsInput { + return Companion_ListBackupsInput_.Create_ListBackupsInput_(m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this ListBackupsInput) Dtor_TableName() m_Wrappers.Option { + return _this.Get_().(ListBackupsInput_ListBackupsInput).TableName +} + +func (_this ListBackupsInput) Dtor_Limit() m_Wrappers.Option { + return _this.Get_().(ListBackupsInput_ListBackupsInput).Limit +} + +func (_this ListBackupsInput) Dtor_TimeRangeLowerBound() m_Wrappers.Option { + return _this.Get_().(ListBackupsInput_ListBackupsInput).TimeRangeLowerBound +} + +func (_this ListBackupsInput) Dtor_TimeRangeUpperBound() m_Wrappers.Option { + return _this.Get_().(ListBackupsInput_ListBackupsInput).TimeRangeUpperBound +} + +func (_this ListBackupsInput) Dtor_ExclusiveStartBackupArn() m_Wrappers.Option { + return _this.Get_().(ListBackupsInput_ListBackupsInput).ExclusiveStartBackupArn +} + +func (_this ListBackupsInput) Dtor_BackupType() m_Wrappers.Option { + return _this.Get_().(ListBackupsInput_ListBackupsInput).BackupType +} + +func (_this ListBackupsInput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case ListBackupsInput_ListBackupsInput: + { + return "ComAmazonawsDynamodbTypes.ListBackupsInput.ListBackupsInput" + "(" + _dafny.String(data.TableName) + ", " + _dafny.String(data.Limit) + ", " + _dafny.String(data.TimeRangeLowerBound) + ", " + _dafny.String(data.TimeRangeUpperBound) + ", " + _dafny.String(data.ExclusiveStartBackupArn) + ", " + _dafny.String(data.BackupType) + ")" + } + default: + { + return "" + } + } +} + +func (_this ListBackupsInput) Equals(other ListBackupsInput) bool { + switch data1 := _this.Get_().(type) { + case ListBackupsInput_ListBackupsInput: + { + data2, ok := other.Get_().(ListBackupsInput_ListBackupsInput) + return ok && data1.TableName.Equals(data2.TableName) && data1.Limit.Equals(data2.Limit) && data1.TimeRangeLowerBound.Equals(data2.TimeRangeLowerBound) && data1.TimeRangeUpperBound.Equals(data2.TimeRangeUpperBound) && data1.ExclusiveStartBackupArn.Equals(data2.ExclusiveStartBackupArn) && data1.BackupType.Equals(data2.BackupType) + } + default: + { + return false // unexpected + } + } +} + +func (_this ListBackupsInput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(ListBackupsInput) + return ok && _this.Equals(typed) +} + +func Type_ListBackupsInput_() _dafny.TypeDescriptor { + return type_ListBackupsInput_{} +} + +type type_ListBackupsInput_ struct { +} + +func (_this type_ListBackupsInput_) Default() interface{} { + return Companion_ListBackupsInput_.Default() +} + +func (_this type_ListBackupsInput_) String() string { + return "ComAmazonawsDynamodbTypes.ListBackupsInput" +} +func (_this ListBackupsInput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = ListBackupsInput{} + +// End of datatype ListBackupsInput + +// Definition of datatype ListBackupsOutput +type ListBackupsOutput struct { + Data_ListBackupsOutput_ +} + +func (_this ListBackupsOutput) Get_() Data_ListBackupsOutput_ { + return _this.Data_ListBackupsOutput_ +} + +type Data_ListBackupsOutput_ interface { + isListBackupsOutput() +} + +type CompanionStruct_ListBackupsOutput_ struct { +} + +var Companion_ListBackupsOutput_ = CompanionStruct_ListBackupsOutput_{} + +type ListBackupsOutput_ListBackupsOutput struct { + BackupSummaries m_Wrappers.Option + LastEvaluatedBackupArn m_Wrappers.Option +} + +func (ListBackupsOutput_ListBackupsOutput) isListBackupsOutput() {} + +func (CompanionStruct_ListBackupsOutput_) Create_ListBackupsOutput_(BackupSummaries m_Wrappers.Option, LastEvaluatedBackupArn m_Wrappers.Option) ListBackupsOutput { + return ListBackupsOutput{ListBackupsOutput_ListBackupsOutput{BackupSummaries, LastEvaluatedBackupArn}} +} + +func (_this ListBackupsOutput) Is_ListBackupsOutput() bool { + _, ok := _this.Get_().(ListBackupsOutput_ListBackupsOutput) + return ok +} + +func (CompanionStruct_ListBackupsOutput_) Default() ListBackupsOutput { + return Companion_ListBackupsOutput_.Create_ListBackupsOutput_(m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this ListBackupsOutput) Dtor_BackupSummaries() m_Wrappers.Option { + return _this.Get_().(ListBackupsOutput_ListBackupsOutput).BackupSummaries +} + +func (_this ListBackupsOutput) Dtor_LastEvaluatedBackupArn() m_Wrappers.Option { + return _this.Get_().(ListBackupsOutput_ListBackupsOutput).LastEvaluatedBackupArn +} + +func (_this ListBackupsOutput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case ListBackupsOutput_ListBackupsOutput: + { + return "ComAmazonawsDynamodbTypes.ListBackupsOutput.ListBackupsOutput" + "(" + _dafny.String(data.BackupSummaries) + ", " + _dafny.String(data.LastEvaluatedBackupArn) + ")" + } + default: + { + return "" + } + } +} + +func (_this ListBackupsOutput) Equals(other ListBackupsOutput) bool { + switch data1 := _this.Get_().(type) { + case ListBackupsOutput_ListBackupsOutput: + { + data2, ok := other.Get_().(ListBackupsOutput_ListBackupsOutput) + return ok && data1.BackupSummaries.Equals(data2.BackupSummaries) && data1.LastEvaluatedBackupArn.Equals(data2.LastEvaluatedBackupArn) + } + default: + { + return false // unexpected + } + } +} + +func (_this ListBackupsOutput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(ListBackupsOutput) + return ok && _this.Equals(typed) +} + +func Type_ListBackupsOutput_() _dafny.TypeDescriptor { + return type_ListBackupsOutput_{} +} + +type type_ListBackupsOutput_ struct { +} + +func (_this type_ListBackupsOutput_) Default() interface{} { + return Companion_ListBackupsOutput_.Default() +} + +func (_this type_ListBackupsOutput_) String() string { + return "ComAmazonawsDynamodbTypes.ListBackupsOutput" +} +func (_this ListBackupsOutput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = ListBackupsOutput{} + +// End of datatype ListBackupsOutput + +// Definition of datatype ListContributorInsightsInput +type ListContributorInsightsInput struct { + Data_ListContributorInsightsInput_ +} + +func (_this ListContributorInsightsInput) Get_() Data_ListContributorInsightsInput_ { + return _this.Data_ListContributorInsightsInput_ +} + +type Data_ListContributorInsightsInput_ interface { + isListContributorInsightsInput() +} + +type CompanionStruct_ListContributorInsightsInput_ struct { +} + +var Companion_ListContributorInsightsInput_ = CompanionStruct_ListContributorInsightsInput_{} + +type ListContributorInsightsInput_ListContributorInsightsInput struct { + TableName m_Wrappers.Option + NextToken m_Wrappers.Option + MaxResults m_Wrappers.Option +} + +func (ListContributorInsightsInput_ListContributorInsightsInput) isListContributorInsightsInput() {} + +func (CompanionStruct_ListContributorInsightsInput_) Create_ListContributorInsightsInput_(TableName m_Wrappers.Option, NextToken m_Wrappers.Option, MaxResults m_Wrappers.Option) ListContributorInsightsInput { + return ListContributorInsightsInput{ListContributorInsightsInput_ListContributorInsightsInput{TableName, NextToken, MaxResults}} +} + +func (_this ListContributorInsightsInput) Is_ListContributorInsightsInput() bool { + _, ok := _this.Get_().(ListContributorInsightsInput_ListContributorInsightsInput) + return ok +} + +func (CompanionStruct_ListContributorInsightsInput_) Default() ListContributorInsightsInput { + return Companion_ListContributorInsightsInput_.Create_ListContributorInsightsInput_(m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this ListContributorInsightsInput) Dtor_TableName() m_Wrappers.Option { + return _this.Get_().(ListContributorInsightsInput_ListContributorInsightsInput).TableName +} + +func (_this ListContributorInsightsInput) Dtor_NextToken() m_Wrappers.Option { + return _this.Get_().(ListContributorInsightsInput_ListContributorInsightsInput).NextToken +} + +func (_this ListContributorInsightsInput) Dtor_MaxResults() m_Wrappers.Option { + return _this.Get_().(ListContributorInsightsInput_ListContributorInsightsInput).MaxResults +} + +func (_this ListContributorInsightsInput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case ListContributorInsightsInput_ListContributorInsightsInput: + { + return "ComAmazonawsDynamodbTypes.ListContributorInsightsInput.ListContributorInsightsInput" + "(" + _dafny.String(data.TableName) + ", " + _dafny.String(data.NextToken) + ", " + _dafny.String(data.MaxResults) + ")" + } + default: + { + return "" + } + } +} + +func (_this ListContributorInsightsInput) Equals(other ListContributorInsightsInput) bool { + switch data1 := _this.Get_().(type) { + case ListContributorInsightsInput_ListContributorInsightsInput: + { + data2, ok := other.Get_().(ListContributorInsightsInput_ListContributorInsightsInput) + return ok && data1.TableName.Equals(data2.TableName) && data1.NextToken.Equals(data2.NextToken) && data1.MaxResults.Equals(data2.MaxResults) + } + default: + { + return false // unexpected + } + } +} + +func (_this ListContributorInsightsInput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(ListContributorInsightsInput) + return ok && _this.Equals(typed) +} + +func Type_ListContributorInsightsInput_() _dafny.TypeDescriptor { + return type_ListContributorInsightsInput_{} +} + +type type_ListContributorInsightsInput_ struct { +} + +func (_this type_ListContributorInsightsInput_) Default() interface{} { + return Companion_ListContributorInsightsInput_.Default() +} + +func (_this type_ListContributorInsightsInput_) String() string { + return "ComAmazonawsDynamodbTypes.ListContributorInsightsInput" +} +func (_this ListContributorInsightsInput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = ListContributorInsightsInput{} + +// End of datatype ListContributorInsightsInput + +// Definition of class ListContributorInsightsLimit +type ListContributorInsightsLimit struct { +} + +func New_ListContributorInsightsLimit_() *ListContributorInsightsLimit { + _this := ListContributorInsightsLimit{} + + return &_this +} + +type CompanionStruct_ListContributorInsightsLimit_ struct { +} + +var Companion_ListContributorInsightsLimit_ = CompanionStruct_ListContributorInsightsLimit_{} + +func (*ListContributorInsightsLimit) String() string { + return "ComAmazonawsDynamodbTypes.ListContributorInsightsLimit" +} + +// End of class ListContributorInsightsLimit + +func Type_ListContributorInsightsLimit_() _dafny.TypeDescriptor { + return type_ListContributorInsightsLimit_{} +} + +type type_ListContributorInsightsLimit_ struct { +} + +func (_this type_ListContributorInsightsLimit_) Default() interface{} { + return int32(0) +} + +func (_this type_ListContributorInsightsLimit_) String() string { + return "ComAmazonawsDynamodbTypes.ListContributorInsightsLimit" +} +func (_this *CompanionStruct_ListContributorInsightsLimit_) Is_(__source int32) bool { + var _14_x int32 = (__source) + _ = _14_x + if true { + return Companion_Default___.IsValid__ListContributorInsightsLimit(_14_x) + } + return false +} + +// Definition of datatype ListContributorInsightsOutput +type ListContributorInsightsOutput struct { + Data_ListContributorInsightsOutput_ +} + +func (_this ListContributorInsightsOutput) Get_() Data_ListContributorInsightsOutput_ { + return _this.Data_ListContributorInsightsOutput_ +} + +type Data_ListContributorInsightsOutput_ interface { + isListContributorInsightsOutput() +} + +type CompanionStruct_ListContributorInsightsOutput_ struct { +} + +var Companion_ListContributorInsightsOutput_ = CompanionStruct_ListContributorInsightsOutput_{} + +type ListContributorInsightsOutput_ListContributorInsightsOutput struct { + ContributorInsightsSummaries m_Wrappers.Option + NextToken m_Wrappers.Option +} + +func (ListContributorInsightsOutput_ListContributorInsightsOutput) isListContributorInsightsOutput() { +} + +func (CompanionStruct_ListContributorInsightsOutput_) Create_ListContributorInsightsOutput_(ContributorInsightsSummaries m_Wrappers.Option, NextToken m_Wrappers.Option) ListContributorInsightsOutput { + return ListContributorInsightsOutput{ListContributorInsightsOutput_ListContributorInsightsOutput{ContributorInsightsSummaries, NextToken}} +} + +func (_this ListContributorInsightsOutput) Is_ListContributorInsightsOutput() bool { + _, ok := _this.Get_().(ListContributorInsightsOutput_ListContributorInsightsOutput) + return ok +} + +func (CompanionStruct_ListContributorInsightsOutput_) Default() ListContributorInsightsOutput { + return Companion_ListContributorInsightsOutput_.Create_ListContributorInsightsOutput_(m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this ListContributorInsightsOutput) Dtor_ContributorInsightsSummaries() m_Wrappers.Option { + return _this.Get_().(ListContributorInsightsOutput_ListContributorInsightsOutput).ContributorInsightsSummaries +} + +func (_this ListContributorInsightsOutput) Dtor_NextToken() m_Wrappers.Option { + return _this.Get_().(ListContributorInsightsOutput_ListContributorInsightsOutput).NextToken +} + +func (_this ListContributorInsightsOutput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case ListContributorInsightsOutput_ListContributorInsightsOutput: + { + return "ComAmazonawsDynamodbTypes.ListContributorInsightsOutput.ListContributorInsightsOutput" + "(" + _dafny.String(data.ContributorInsightsSummaries) + ", " + _dafny.String(data.NextToken) + ")" + } + default: + { + return "" + } + } +} + +func (_this ListContributorInsightsOutput) Equals(other ListContributorInsightsOutput) bool { + switch data1 := _this.Get_().(type) { + case ListContributorInsightsOutput_ListContributorInsightsOutput: + { + data2, ok := other.Get_().(ListContributorInsightsOutput_ListContributorInsightsOutput) + return ok && data1.ContributorInsightsSummaries.Equals(data2.ContributorInsightsSummaries) && data1.NextToken.Equals(data2.NextToken) + } + default: + { + return false // unexpected + } + } +} + +func (_this ListContributorInsightsOutput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(ListContributorInsightsOutput) + return ok && _this.Equals(typed) +} + +func Type_ListContributorInsightsOutput_() _dafny.TypeDescriptor { + return type_ListContributorInsightsOutput_{} +} + +type type_ListContributorInsightsOutput_ struct { +} + +func (_this type_ListContributorInsightsOutput_) Default() interface{} { + return Companion_ListContributorInsightsOutput_.Default() +} + +func (_this type_ListContributorInsightsOutput_) String() string { + return "ComAmazonawsDynamodbTypes.ListContributorInsightsOutput" +} +func (_this ListContributorInsightsOutput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = ListContributorInsightsOutput{} + +// End of datatype ListContributorInsightsOutput + +// Definition of datatype ListExportsInput +type ListExportsInput struct { + Data_ListExportsInput_ +} + +func (_this ListExportsInput) Get_() Data_ListExportsInput_ { + return _this.Data_ListExportsInput_ +} + +type Data_ListExportsInput_ interface { + isListExportsInput() +} + +type CompanionStruct_ListExportsInput_ struct { +} + +var Companion_ListExportsInput_ = CompanionStruct_ListExportsInput_{} + +type ListExportsInput_ListExportsInput struct { + TableArn m_Wrappers.Option + MaxResults m_Wrappers.Option + NextToken m_Wrappers.Option +} + +func (ListExportsInput_ListExportsInput) isListExportsInput() {} + +func (CompanionStruct_ListExportsInput_) Create_ListExportsInput_(TableArn m_Wrappers.Option, MaxResults m_Wrappers.Option, NextToken m_Wrappers.Option) ListExportsInput { + return ListExportsInput{ListExportsInput_ListExportsInput{TableArn, MaxResults, NextToken}} +} + +func (_this ListExportsInput) Is_ListExportsInput() bool { + _, ok := _this.Get_().(ListExportsInput_ListExportsInput) + return ok +} + +func (CompanionStruct_ListExportsInput_) Default() ListExportsInput { + return Companion_ListExportsInput_.Create_ListExportsInput_(m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this ListExportsInput) Dtor_TableArn() m_Wrappers.Option { + return _this.Get_().(ListExportsInput_ListExportsInput).TableArn +} + +func (_this ListExportsInput) Dtor_MaxResults() m_Wrappers.Option { + return _this.Get_().(ListExportsInput_ListExportsInput).MaxResults +} + +func (_this ListExportsInput) Dtor_NextToken() m_Wrappers.Option { + return _this.Get_().(ListExportsInput_ListExportsInput).NextToken +} + +func (_this ListExportsInput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case ListExportsInput_ListExportsInput: + { + return "ComAmazonawsDynamodbTypes.ListExportsInput.ListExportsInput" + "(" + _dafny.String(data.TableArn) + ", " + _dafny.String(data.MaxResults) + ", " + _dafny.String(data.NextToken) + ")" + } + default: + { + return "" + } + } +} + +func (_this ListExportsInput) Equals(other ListExportsInput) bool { + switch data1 := _this.Get_().(type) { + case ListExportsInput_ListExportsInput: + { + data2, ok := other.Get_().(ListExportsInput_ListExportsInput) + return ok && data1.TableArn.Equals(data2.TableArn) && data1.MaxResults.Equals(data2.MaxResults) && data1.NextToken.Equals(data2.NextToken) + } + default: + { + return false // unexpected + } + } +} + +func (_this ListExportsInput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(ListExportsInput) + return ok && _this.Equals(typed) +} + +func Type_ListExportsInput_() _dafny.TypeDescriptor { + return type_ListExportsInput_{} +} + +type type_ListExportsInput_ struct { +} + +func (_this type_ListExportsInput_) Default() interface{} { + return Companion_ListExportsInput_.Default() +} + +func (_this type_ListExportsInput_) String() string { + return "ComAmazonawsDynamodbTypes.ListExportsInput" +} +func (_this ListExportsInput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = ListExportsInput{} + +// End of datatype ListExportsInput + +// Definition of class ListExportsMaxLimit +type ListExportsMaxLimit struct { +} + +func New_ListExportsMaxLimit_() *ListExportsMaxLimit { + _this := ListExportsMaxLimit{} + + return &_this +} + +type CompanionStruct_ListExportsMaxLimit_ struct { +} + +var Companion_ListExportsMaxLimit_ = CompanionStruct_ListExportsMaxLimit_{} + +func (*ListExportsMaxLimit) String() string { + return "ComAmazonawsDynamodbTypes.ListExportsMaxLimit" +} + +// End of class ListExportsMaxLimit + +func Type_ListExportsMaxLimit_() _dafny.TypeDescriptor { + return type_ListExportsMaxLimit_{} +} + +type type_ListExportsMaxLimit_ struct { +} + +func (_this type_ListExportsMaxLimit_) Default() interface{} { + return int32(0) +} + +func (_this type_ListExportsMaxLimit_) String() string { + return "ComAmazonawsDynamodbTypes.ListExportsMaxLimit" +} +func (_this *CompanionStruct_ListExportsMaxLimit_) Is_(__source int32) bool { + var _15_x int32 = (__source) + _ = _15_x + if true { + return Companion_Default___.IsValid__ListExportsMaxLimit(_15_x) + } + return false +} + +// Definition of datatype ListExportsOutput +type ListExportsOutput struct { + Data_ListExportsOutput_ +} + +func (_this ListExportsOutput) Get_() Data_ListExportsOutput_ { + return _this.Data_ListExportsOutput_ +} + +type Data_ListExportsOutput_ interface { + isListExportsOutput() +} + +type CompanionStruct_ListExportsOutput_ struct { +} + +var Companion_ListExportsOutput_ = CompanionStruct_ListExportsOutput_{} + +type ListExportsOutput_ListExportsOutput struct { + ExportSummaries m_Wrappers.Option + NextToken m_Wrappers.Option +} + +func (ListExportsOutput_ListExportsOutput) isListExportsOutput() {} + +func (CompanionStruct_ListExportsOutput_) Create_ListExportsOutput_(ExportSummaries m_Wrappers.Option, NextToken m_Wrappers.Option) ListExportsOutput { + return ListExportsOutput{ListExportsOutput_ListExportsOutput{ExportSummaries, NextToken}} +} + +func (_this ListExportsOutput) Is_ListExportsOutput() bool { + _, ok := _this.Get_().(ListExportsOutput_ListExportsOutput) + return ok +} + +func (CompanionStruct_ListExportsOutput_) Default() ListExportsOutput { + return Companion_ListExportsOutput_.Create_ListExportsOutput_(m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this ListExportsOutput) Dtor_ExportSummaries() m_Wrappers.Option { + return _this.Get_().(ListExportsOutput_ListExportsOutput).ExportSummaries +} + +func (_this ListExportsOutput) Dtor_NextToken() m_Wrappers.Option { + return _this.Get_().(ListExportsOutput_ListExportsOutput).NextToken +} + +func (_this ListExportsOutput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case ListExportsOutput_ListExportsOutput: + { + return "ComAmazonawsDynamodbTypes.ListExportsOutput.ListExportsOutput" + "(" + _dafny.String(data.ExportSummaries) + ", " + _dafny.String(data.NextToken) + ")" + } + default: + { + return "" + } + } +} + +func (_this ListExportsOutput) Equals(other ListExportsOutput) bool { + switch data1 := _this.Get_().(type) { + case ListExportsOutput_ListExportsOutput: + { + data2, ok := other.Get_().(ListExportsOutput_ListExportsOutput) + return ok && data1.ExportSummaries.Equals(data2.ExportSummaries) && data1.NextToken.Equals(data2.NextToken) + } + default: + { + return false // unexpected + } + } +} + +func (_this ListExportsOutput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(ListExportsOutput) + return ok && _this.Equals(typed) +} + +func Type_ListExportsOutput_() _dafny.TypeDescriptor { + return type_ListExportsOutput_{} +} + +type type_ListExportsOutput_ struct { +} + +func (_this type_ListExportsOutput_) Default() interface{} { + return Companion_ListExportsOutput_.Default() +} + +func (_this type_ListExportsOutput_) String() string { + return "ComAmazonawsDynamodbTypes.ListExportsOutput" +} +func (_this ListExportsOutput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = ListExportsOutput{} + +// End of datatype ListExportsOutput + +// Definition of datatype ListGlobalTablesInput +type ListGlobalTablesInput struct { + Data_ListGlobalTablesInput_ +} + +func (_this ListGlobalTablesInput) Get_() Data_ListGlobalTablesInput_ { + return _this.Data_ListGlobalTablesInput_ +} + +type Data_ListGlobalTablesInput_ interface { + isListGlobalTablesInput() +} + +type CompanionStruct_ListGlobalTablesInput_ struct { +} + +var Companion_ListGlobalTablesInput_ = CompanionStruct_ListGlobalTablesInput_{} + +type ListGlobalTablesInput_ListGlobalTablesInput struct { + ExclusiveStartGlobalTableName m_Wrappers.Option + Limit m_Wrappers.Option + RegionName m_Wrappers.Option +} + +func (ListGlobalTablesInput_ListGlobalTablesInput) isListGlobalTablesInput() {} + +func (CompanionStruct_ListGlobalTablesInput_) Create_ListGlobalTablesInput_(ExclusiveStartGlobalTableName m_Wrappers.Option, Limit m_Wrappers.Option, RegionName m_Wrappers.Option) ListGlobalTablesInput { + return ListGlobalTablesInput{ListGlobalTablesInput_ListGlobalTablesInput{ExclusiveStartGlobalTableName, Limit, RegionName}} +} + +func (_this ListGlobalTablesInput) Is_ListGlobalTablesInput() bool { + _, ok := _this.Get_().(ListGlobalTablesInput_ListGlobalTablesInput) + return ok +} + +func (CompanionStruct_ListGlobalTablesInput_) Default() ListGlobalTablesInput { + return Companion_ListGlobalTablesInput_.Create_ListGlobalTablesInput_(m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this ListGlobalTablesInput) Dtor_ExclusiveStartGlobalTableName() m_Wrappers.Option { + return _this.Get_().(ListGlobalTablesInput_ListGlobalTablesInput).ExclusiveStartGlobalTableName +} + +func (_this ListGlobalTablesInput) Dtor_Limit() m_Wrappers.Option { + return _this.Get_().(ListGlobalTablesInput_ListGlobalTablesInput).Limit +} + +func (_this ListGlobalTablesInput) Dtor_RegionName() m_Wrappers.Option { + return _this.Get_().(ListGlobalTablesInput_ListGlobalTablesInput).RegionName +} + +func (_this ListGlobalTablesInput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case ListGlobalTablesInput_ListGlobalTablesInput: + { + return "ComAmazonawsDynamodbTypes.ListGlobalTablesInput.ListGlobalTablesInput" + "(" + _dafny.String(data.ExclusiveStartGlobalTableName) + ", " + _dafny.String(data.Limit) + ", " + _dafny.String(data.RegionName) + ")" + } + default: + { + return "" + } + } +} + +func (_this ListGlobalTablesInput) Equals(other ListGlobalTablesInput) bool { + switch data1 := _this.Get_().(type) { + case ListGlobalTablesInput_ListGlobalTablesInput: + { + data2, ok := other.Get_().(ListGlobalTablesInput_ListGlobalTablesInput) + return ok && data1.ExclusiveStartGlobalTableName.Equals(data2.ExclusiveStartGlobalTableName) && data1.Limit.Equals(data2.Limit) && data1.RegionName.Equals(data2.RegionName) + } + default: + { + return false // unexpected + } + } +} + +func (_this ListGlobalTablesInput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(ListGlobalTablesInput) + return ok && _this.Equals(typed) +} + +func Type_ListGlobalTablesInput_() _dafny.TypeDescriptor { + return type_ListGlobalTablesInput_{} +} + +type type_ListGlobalTablesInput_ struct { +} + +func (_this type_ListGlobalTablesInput_) Default() interface{} { + return Companion_ListGlobalTablesInput_.Default() +} + +func (_this type_ListGlobalTablesInput_) String() string { + return "ComAmazonawsDynamodbTypes.ListGlobalTablesInput" +} +func (_this ListGlobalTablesInput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = ListGlobalTablesInput{} + +// End of datatype ListGlobalTablesInput + +// Definition of datatype ListGlobalTablesOutput +type ListGlobalTablesOutput struct { + Data_ListGlobalTablesOutput_ +} + +func (_this ListGlobalTablesOutput) Get_() Data_ListGlobalTablesOutput_ { + return _this.Data_ListGlobalTablesOutput_ +} + +type Data_ListGlobalTablesOutput_ interface { + isListGlobalTablesOutput() +} + +type CompanionStruct_ListGlobalTablesOutput_ struct { +} + +var Companion_ListGlobalTablesOutput_ = CompanionStruct_ListGlobalTablesOutput_{} + +type ListGlobalTablesOutput_ListGlobalTablesOutput struct { + GlobalTables m_Wrappers.Option + LastEvaluatedGlobalTableName m_Wrappers.Option +} + +func (ListGlobalTablesOutput_ListGlobalTablesOutput) isListGlobalTablesOutput() {} + +func (CompanionStruct_ListGlobalTablesOutput_) Create_ListGlobalTablesOutput_(GlobalTables m_Wrappers.Option, LastEvaluatedGlobalTableName m_Wrappers.Option) ListGlobalTablesOutput { + return ListGlobalTablesOutput{ListGlobalTablesOutput_ListGlobalTablesOutput{GlobalTables, LastEvaluatedGlobalTableName}} +} + +func (_this ListGlobalTablesOutput) Is_ListGlobalTablesOutput() bool { + _, ok := _this.Get_().(ListGlobalTablesOutput_ListGlobalTablesOutput) + return ok +} + +func (CompanionStruct_ListGlobalTablesOutput_) Default() ListGlobalTablesOutput { + return Companion_ListGlobalTablesOutput_.Create_ListGlobalTablesOutput_(m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this ListGlobalTablesOutput) Dtor_GlobalTables() m_Wrappers.Option { + return _this.Get_().(ListGlobalTablesOutput_ListGlobalTablesOutput).GlobalTables +} + +func (_this ListGlobalTablesOutput) Dtor_LastEvaluatedGlobalTableName() m_Wrappers.Option { + return _this.Get_().(ListGlobalTablesOutput_ListGlobalTablesOutput).LastEvaluatedGlobalTableName +} + +func (_this ListGlobalTablesOutput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case ListGlobalTablesOutput_ListGlobalTablesOutput: + { + return "ComAmazonawsDynamodbTypes.ListGlobalTablesOutput.ListGlobalTablesOutput" + "(" + _dafny.String(data.GlobalTables) + ", " + _dafny.String(data.LastEvaluatedGlobalTableName) + ")" + } + default: + { + return "" + } + } +} + +func (_this ListGlobalTablesOutput) Equals(other ListGlobalTablesOutput) bool { + switch data1 := _this.Get_().(type) { + case ListGlobalTablesOutput_ListGlobalTablesOutput: + { + data2, ok := other.Get_().(ListGlobalTablesOutput_ListGlobalTablesOutput) + return ok && data1.GlobalTables.Equals(data2.GlobalTables) && data1.LastEvaluatedGlobalTableName.Equals(data2.LastEvaluatedGlobalTableName) + } + default: + { + return false // unexpected + } + } +} + +func (_this ListGlobalTablesOutput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(ListGlobalTablesOutput) + return ok && _this.Equals(typed) +} + +func Type_ListGlobalTablesOutput_() _dafny.TypeDescriptor { + return type_ListGlobalTablesOutput_{} +} + +type type_ListGlobalTablesOutput_ struct { +} + +func (_this type_ListGlobalTablesOutput_) Default() interface{} { + return Companion_ListGlobalTablesOutput_.Default() +} + +func (_this type_ListGlobalTablesOutput_) String() string { + return "ComAmazonawsDynamodbTypes.ListGlobalTablesOutput" +} +func (_this ListGlobalTablesOutput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = ListGlobalTablesOutput{} + +// End of datatype ListGlobalTablesOutput + +// Definition of datatype ListImportsInput +type ListImportsInput struct { + Data_ListImportsInput_ +} + +func (_this ListImportsInput) Get_() Data_ListImportsInput_ { + return _this.Data_ListImportsInput_ +} + +type Data_ListImportsInput_ interface { + isListImportsInput() +} + +type CompanionStruct_ListImportsInput_ struct { +} + +var Companion_ListImportsInput_ = CompanionStruct_ListImportsInput_{} + +type ListImportsInput_ListImportsInput struct { + TableArn m_Wrappers.Option + PageSize m_Wrappers.Option + NextToken m_Wrappers.Option +} + +func (ListImportsInput_ListImportsInput) isListImportsInput() {} + +func (CompanionStruct_ListImportsInput_) Create_ListImportsInput_(TableArn m_Wrappers.Option, PageSize m_Wrappers.Option, NextToken m_Wrappers.Option) ListImportsInput { + return ListImportsInput{ListImportsInput_ListImportsInput{TableArn, PageSize, NextToken}} +} + +func (_this ListImportsInput) Is_ListImportsInput() bool { + _, ok := _this.Get_().(ListImportsInput_ListImportsInput) + return ok +} + +func (CompanionStruct_ListImportsInput_) Default() ListImportsInput { + return Companion_ListImportsInput_.Create_ListImportsInput_(m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this ListImportsInput) Dtor_TableArn() m_Wrappers.Option { + return _this.Get_().(ListImportsInput_ListImportsInput).TableArn +} + +func (_this ListImportsInput) Dtor_PageSize() m_Wrappers.Option { + return _this.Get_().(ListImportsInput_ListImportsInput).PageSize +} + +func (_this ListImportsInput) Dtor_NextToken() m_Wrappers.Option { + return _this.Get_().(ListImportsInput_ListImportsInput).NextToken +} + +func (_this ListImportsInput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case ListImportsInput_ListImportsInput: + { + return "ComAmazonawsDynamodbTypes.ListImportsInput.ListImportsInput" + "(" + _dafny.String(data.TableArn) + ", " + _dafny.String(data.PageSize) + ", " + _dafny.String(data.NextToken) + ")" + } + default: + { + return "" + } + } +} + +func (_this ListImportsInput) Equals(other ListImportsInput) bool { + switch data1 := _this.Get_().(type) { + case ListImportsInput_ListImportsInput: + { + data2, ok := other.Get_().(ListImportsInput_ListImportsInput) + return ok && data1.TableArn.Equals(data2.TableArn) && data1.PageSize.Equals(data2.PageSize) && data1.NextToken.Equals(data2.NextToken) + } + default: + { + return false // unexpected + } + } +} + +func (_this ListImportsInput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(ListImportsInput) + return ok && _this.Equals(typed) +} + +func Type_ListImportsInput_() _dafny.TypeDescriptor { + return type_ListImportsInput_{} +} + +type type_ListImportsInput_ struct { +} + +func (_this type_ListImportsInput_) Default() interface{} { + return Companion_ListImportsInput_.Default() +} + +func (_this type_ListImportsInput_) String() string { + return "ComAmazonawsDynamodbTypes.ListImportsInput" +} +func (_this ListImportsInput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = ListImportsInput{} + +// End of datatype ListImportsInput + +// Definition of class ListImportsMaxLimit +type ListImportsMaxLimit struct { +} + +func New_ListImportsMaxLimit_() *ListImportsMaxLimit { + _this := ListImportsMaxLimit{} + + return &_this +} + +type CompanionStruct_ListImportsMaxLimit_ struct { +} + +var Companion_ListImportsMaxLimit_ = CompanionStruct_ListImportsMaxLimit_{} + +func (*ListImportsMaxLimit) String() string { + return "ComAmazonawsDynamodbTypes.ListImportsMaxLimit" +} + +// End of class ListImportsMaxLimit + +func Type_ListImportsMaxLimit_() _dafny.TypeDescriptor { + return type_ListImportsMaxLimit_{} +} + +type type_ListImportsMaxLimit_ struct { +} + +func (_this type_ListImportsMaxLimit_) Default() interface{} { + return int32(0) +} + +func (_this type_ListImportsMaxLimit_) String() string { + return "ComAmazonawsDynamodbTypes.ListImportsMaxLimit" +} +func (_this *CompanionStruct_ListImportsMaxLimit_) Is_(__source int32) bool { + var _16_x int32 = (__source) + _ = _16_x + if true { + return Companion_Default___.IsValid__ListImportsMaxLimit(_16_x) + } + return false +} + +// Definition of datatype ListImportsOutput +type ListImportsOutput struct { + Data_ListImportsOutput_ +} + +func (_this ListImportsOutput) Get_() Data_ListImportsOutput_ { + return _this.Data_ListImportsOutput_ +} + +type Data_ListImportsOutput_ interface { + isListImportsOutput() +} + +type CompanionStruct_ListImportsOutput_ struct { +} + +var Companion_ListImportsOutput_ = CompanionStruct_ListImportsOutput_{} + +type ListImportsOutput_ListImportsOutput struct { + ImportSummaryList m_Wrappers.Option + NextToken m_Wrappers.Option +} + +func (ListImportsOutput_ListImportsOutput) isListImportsOutput() {} + +func (CompanionStruct_ListImportsOutput_) Create_ListImportsOutput_(ImportSummaryList m_Wrappers.Option, NextToken m_Wrappers.Option) ListImportsOutput { + return ListImportsOutput{ListImportsOutput_ListImportsOutput{ImportSummaryList, NextToken}} +} + +func (_this ListImportsOutput) Is_ListImportsOutput() bool { + _, ok := _this.Get_().(ListImportsOutput_ListImportsOutput) + return ok +} + +func (CompanionStruct_ListImportsOutput_) Default() ListImportsOutput { + return Companion_ListImportsOutput_.Create_ListImportsOutput_(m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this ListImportsOutput) Dtor_ImportSummaryList() m_Wrappers.Option { + return _this.Get_().(ListImportsOutput_ListImportsOutput).ImportSummaryList +} + +func (_this ListImportsOutput) Dtor_NextToken() m_Wrappers.Option { + return _this.Get_().(ListImportsOutput_ListImportsOutput).NextToken +} + +func (_this ListImportsOutput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case ListImportsOutput_ListImportsOutput: + { + return "ComAmazonawsDynamodbTypes.ListImportsOutput.ListImportsOutput" + "(" + _dafny.String(data.ImportSummaryList) + ", " + _dafny.String(data.NextToken) + ")" + } + default: + { + return "" + } + } +} + +func (_this ListImportsOutput) Equals(other ListImportsOutput) bool { + switch data1 := _this.Get_().(type) { + case ListImportsOutput_ListImportsOutput: + { + data2, ok := other.Get_().(ListImportsOutput_ListImportsOutput) + return ok && data1.ImportSummaryList.Equals(data2.ImportSummaryList) && data1.NextToken.Equals(data2.NextToken) + } + default: + { + return false // unexpected + } + } +} + +func (_this ListImportsOutput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(ListImportsOutput) + return ok && _this.Equals(typed) +} + +func Type_ListImportsOutput_() _dafny.TypeDescriptor { + return type_ListImportsOutput_{} +} + +type type_ListImportsOutput_ struct { +} + +func (_this type_ListImportsOutput_) Default() interface{} { + return Companion_ListImportsOutput_.Default() +} + +func (_this type_ListImportsOutput_) String() string { + return "ComAmazonawsDynamodbTypes.ListImportsOutput" +} +func (_this ListImportsOutput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = ListImportsOutput{} + +// End of datatype ListImportsOutput + +// Definition of datatype ListTablesInput +type ListTablesInput struct { + Data_ListTablesInput_ +} + +func (_this ListTablesInput) Get_() Data_ListTablesInput_ { + return _this.Data_ListTablesInput_ +} + +type Data_ListTablesInput_ interface { + isListTablesInput() +} + +type CompanionStruct_ListTablesInput_ struct { +} + +var Companion_ListTablesInput_ = CompanionStruct_ListTablesInput_{} + +type ListTablesInput_ListTablesInput struct { + ExclusiveStartTableName m_Wrappers.Option + Limit m_Wrappers.Option +} + +func (ListTablesInput_ListTablesInput) isListTablesInput() {} + +func (CompanionStruct_ListTablesInput_) Create_ListTablesInput_(ExclusiveStartTableName m_Wrappers.Option, Limit m_Wrappers.Option) ListTablesInput { + return ListTablesInput{ListTablesInput_ListTablesInput{ExclusiveStartTableName, Limit}} +} + +func (_this ListTablesInput) Is_ListTablesInput() bool { + _, ok := _this.Get_().(ListTablesInput_ListTablesInput) + return ok +} + +func (CompanionStruct_ListTablesInput_) Default() ListTablesInput { + return Companion_ListTablesInput_.Create_ListTablesInput_(m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this ListTablesInput) Dtor_ExclusiveStartTableName() m_Wrappers.Option { + return _this.Get_().(ListTablesInput_ListTablesInput).ExclusiveStartTableName +} + +func (_this ListTablesInput) Dtor_Limit() m_Wrappers.Option { + return _this.Get_().(ListTablesInput_ListTablesInput).Limit +} + +func (_this ListTablesInput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case ListTablesInput_ListTablesInput: + { + return "ComAmazonawsDynamodbTypes.ListTablesInput.ListTablesInput" + "(" + _dafny.String(data.ExclusiveStartTableName) + ", " + _dafny.String(data.Limit) + ")" + } + default: + { + return "" + } + } +} + +func (_this ListTablesInput) Equals(other ListTablesInput) bool { + switch data1 := _this.Get_().(type) { + case ListTablesInput_ListTablesInput: + { + data2, ok := other.Get_().(ListTablesInput_ListTablesInput) + return ok && data1.ExclusiveStartTableName.Equals(data2.ExclusiveStartTableName) && data1.Limit.Equals(data2.Limit) + } + default: + { + return false // unexpected + } + } +} + +func (_this ListTablesInput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(ListTablesInput) + return ok && _this.Equals(typed) +} + +func Type_ListTablesInput_() _dafny.TypeDescriptor { + return type_ListTablesInput_{} +} + +type type_ListTablesInput_ struct { +} + +func (_this type_ListTablesInput_) Default() interface{} { + return Companion_ListTablesInput_.Default() +} + +func (_this type_ListTablesInput_) String() string { + return "ComAmazonawsDynamodbTypes.ListTablesInput" +} +func (_this ListTablesInput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = ListTablesInput{} + +// End of datatype ListTablesInput + +// Definition of class ListTablesInputLimit +type ListTablesInputLimit struct { +} + +func New_ListTablesInputLimit_() *ListTablesInputLimit { + _this := ListTablesInputLimit{} + + return &_this +} + +type CompanionStruct_ListTablesInputLimit_ struct { +} + +var Companion_ListTablesInputLimit_ = CompanionStruct_ListTablesInputLimit_{} + +func (*ListTablesInputLimit) String() string { + return "ComAmazonawsDynamodbTypes.ListTablesInputLimit" +} + +// End of class ListTablesInputLimit + +func Type_ListTablesInputLimit_() _dafny.TypeDescriptor { + return type_ListTablesInputLimit_{} +} + +type type_ListTablesInputLimit_ struct { +} + +func (_this type_ListTablesInputLimit_) Default() interface{} { + return int32(0) +} + +func (_this type_ListTablesInputLimit_) String() string { + return "ComAmazonawsDynamodbTypes.ListTablesInputLimit" +} +func (_this *CompanionStruct_ListTablesInputLimit_) Is_(__source int32) bool { + var _17_x int32 = (__source) + _ = _17_x + if true { + return Companion_Default___.IsValid__ListTablesInputLimit(_17_x) + } + return false +} + +// Definition of datatype ListTablesOutput +type ListTablesOutput struct { + Data_ListTablesOutput_ +} + +func (_this ListTablesOutput) Get_() Data_ListTablesOutput_ { + return _this.Data_ListTablesOutput_ +} + +type Data_ListTablesOutput_ interface { + isListTablesOutput() +} + +type CompanionStruct_ListTablesOutput_ struct { +} + +var Companion_ListTablesOutput_ = CompanionStruct_ListTablesOutput_{} + +type ListTablesOutput_ListTablesOutput struct { + TableNames m_Wrappers.Option + LastEvaluatedTableName m_Wrappers.Option +} + +func (ListTablesOutput_ListTablesOutput) isListTablesOutput() {} + +func (CompanionStruct_ListTablesOutput_) Create_ListTablesOutput_(TableNames m_Wrappers.Option, LastEvaluatedTableName m_Wrappers.Option) ListTablesOutput { + return ListTablesOutput{ListTablesOutput_ListTablesOutput{TableNames, LastEvaluatedTableName}} +} + +func (_this ListTablesOutput) Is_ListTablesOutput() bool { + _, ok := _this.Get_().(ListTablesOutput_ListTablesOutput) + return ok +} + +func (CompanionStruct_ListTablesOutput_) Default() ListTablesOutput { + return Companion_ListTablesOutput_.Create_ListTablesOutput_(m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this ListTablesOutput) Dtor_TableNames() m_Wrappers.Option { + return _this.Get_().(ListTablesOutput_ListTablesOutput).TableNames +} + +func (_this ListTablesOutput) Dtor_LastEvaluatedTableName() m_Wrappers.Option { + return _this.Get_().(ListTablesOutput_ListTablesOutput).LastEvaluatedTableName +} + +func (_this ListTablesOutput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case ListTablesOutput_ListTablesOutput: + { + return "ComAmazonawsDynamodbTypes.ListTablesOutput.ListTablesOutput" + "(" + _dafny.String(data.TableNames) + ", " + _dafny.String(data.LastEvaluatedTableName) + ")" + } + default: + { + return "" + } + } +} + +func (_this ListTablesOutput) Equals(other ListTablesOutput) bool { + switch data1 := _this.Get_().(type) { + case ListTablesOutput_ListTablesOutput: + { + data2, ok := other.Get_().(ListTablesOutput_ListTablesOutput) + return ok && data1.TableNames.Equals(data2.TableNames) && data1.LastEvaluatedTableName.Equals(data2.LastEvaluatedTableName) + } + default: + { + return false // unexpected + } + } +} + +func (_this ListTablesOutput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(ListTablesOutput) + return ok && _this.Equals(typed) +} + +func Type_ListTablesOutput_() _dafny.TypeDescriptor { + return type_ListTablesOutput_{} +} + +type type_ListTablesOutput_ struct { +} + +func (_this type_ListTablesOutput_) Default() interface{} { + return Companion_ListTablesOutput_.Default() +} + +func (_this type_ListTablesOutput_) String() string { + return "ComAmazonawsDynamodbTypes.ListTablesOutput" +} +func (_this ListTablesOutput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = ListTablesOutput{} + +// End of datatype ListTablesOutput + +// Definition of datatype ListTagsOfResourceInput +type ListTagsOfResourceInput struct { + Data_ListTagsOfResourceInput_ +} + +func (_this ListTagsOfResourceInput) Get_() Data_ListTagsOfResourceInput_ { + return _this.Data_ListTagsOfResourceInput_ +} + +type Data_ListTagsOfResourceInput_ interface { + isListTagsOfResourceInput() +} + +type CompanionStruct_ListTagsOfResourceInput_ struct { +} + +var Companion_ListTagsOfResourceInput_ = CompanionStruct_ListTagsOfResourceInput_{} + +type ListTagsOfResourceInput_ListTagsOfResourceInput struct { + ResourceArn _dafny.Sequence + NextToken m_Wrappers.Option +} + +func (ListTagsOfResourceInput_ListTagsOfResourceInput) isListTagsOfResourceInput() {} + +func (CompanionStruct_ListTagsOfResourceInput_) Create_ListTagsOfResourceInput_(ResourceArn _dafny.Sequence, NextToken m_Wrappers.Option) ListTagsOfResourceInput { + return ListTagsOfResourceInput{ListTagsOfResourceInput_ListTagsOfResourceInput{ResourceArn, NextToken}} +} + +func (_this ListTagsOfResourceInput) Is_ListTagsOfResourceInput() bool { + _, ok := _this.Get_().(ListTagsOfResourceInput_ListTagsOfResourceInput) + return ok +} + +func (CompanionStruct_ListTagsOfResourceInput_) Default() ListTagsOfResourceInput { + return Companion_ListTagsOfResourceInput_.Create_ListTagsOfResourceInput_(_dafny.EmptySeq.SetString(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this ListTagsOfResourceInput) Dtor_ResourceArn() _dafny.Sequence { + return _this.Get_().(ListTagsOfResourceInput_ListTagsOfResourceInput).ResourceArn +} + +func (_this ListTagsOfResourceInput) Dtor_NextToken() m_Wrappers.Option { + return _this.Get_().(ListTagsOfResourceInput_ListTagsOfResourceInput).NextToken +} + +func (_this ListTagsOfResourceInput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case ListTagsOfResourceInput_ListTagsOfResourceInput: + { + return "ComAmazonawsDynamodbTypes.ListTagsOfResourceInput.ListTagsOfResourceInput" + "(" + _dafny.String(data.ResourceArn) + ", " + _dafny.String(data.NextToken) + ")" + } + default: + { + return "" + } + } +} + +func (_this ListTagsOfResourceInput) Equals(other ListTagsOfResourceInput) bool { + switch data1 := _this.Get_().(type) { + case ListTagsOfResourceInput_ListTagsOfResourceInput: + { + data2, ok := other.Get_().(ListTagsOfResourceInput_ListTagsOfResourceInput) + return ok && data1.ResourceArn.Equals(data2.ResourceArn) && data1.NextToken.Equals(data2.NextToken) + } + default: + { + return false // unexpected + } + } +} + +func (_this ListTagsOfResourceInput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(ListTagsOfResourceInput) + return ok && _this.Equals(typed) +} + +func Type_ListTagsOfResourceInput_() _dafny.TypeDescriptor { + return type_ListTagsOfResourceInput_{} +} + +type type_ListTagsOfResourceInput_ struct { +} + +func (_this type_ListTagsOfResourceInput_) Default() interface{} { + return Companion_ListTagsOfResourceInput_.Default() +} + +func (_this type_ListTagsOfResourceInput_) String() string { + return "ComAmazonawsDynamodbTypes.ListTagsOfResourceInput" +} +func (_this ListTagsOfResourceInput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = ListTagsOfResourceInput{} + +// End of datatype ListTagsOfResourceInput + +// Definition of datatype ListTagsOfResourceOutput +type ListTagsOfResourceOutput struct { + Data_ListTagsOfResourceOutput_ +} + +func (_this ListTagsOfResourceOutput) Get_() Data_ListTagsOfResourceOutput_ { + return _this.Data_ListTagsOfResourceOutput_ +} + +type Data_ListTagsOfResourceOutput_ interface { + isListTagsOfResourceOutput() +} + +type CompanionStruct_ListTagsOfResourceOutput_ struct { +} + +var Companion_ListTagsOfResourceOutput_ = CompanionStruct_ListTagsOfResourceOutput_{} + +type ListTagsOfResourceOutput_ListTagsOfResourceOutput struct { + Tags m_Wrappers.Option + NextToken m_Wrappers.Option +} + +func (ListTagsOfResourceOutput_ListTagsOfResourceOutput) isListTagsOfResourceOutput() {} + +func (CompanionStruct_ListTagsOfResourceOutput_) Create_ListTagsOfResourceOutput_(Tags m_Wrappers.Option, NextToken m_Wrappers.Option) ListTagsOfResourceOutput { + return ListTagsOfResourceOutput{ListTagsOfResourceOutput_ListTagsOfResourceOutput{Tags, NextToken}} +} + +func (_this ListTagsOfResourceOutput) Is_ListTagsOfResourceOutput() bool { + _, ok := _this.Get_().(ListTagsOfResourceOutput_ListTagsOfResourceOutput) + return ok +} + +func (CompanionStruct_ListTagsOfResourceOutput_) Default() ListTagsOfResourceOutput { + return Companion_ListTagsOfResourceOutput_.Create_ListTagsOfResourceOutput_(m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this ListTagsOfResourceOutput) Dtor_Tags() m_Wrappers.Option { + return _this.Get_().(ListTagsOfResourceOutput_ListTagsOfResourceOutput).Tags +} + +func (_this ListTagsOfResourceOutput) Dtor_NextToken() m_Wrappers.Option { + return _this.Get_().(ListTagsOfResourceOutput_ListTagsOfResourceOutput).NextToken +} + +func (_this ListTagsOfResourceOutput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case ListTagsOfResourceOutput_ListTagsOfResourceOutput: + { + return "ComAmazonawsDynamodbTypes.ListTagsOfResourceOutput.ListTagsOfResourceOutput" + "(" + _dafny.String(data.Tags) + ", " + _dafny.String(data.NextToken) + ")" + } + default: + { + return "" + } + } +} + +func (_this ListTagsOfResourceOutput) Equals(other ListTagsOfResourceOutput) bool { + switch data1 := _this.Get_().(type) { + case ListTagsOfResourceOutput_ListTagsOfResourceOutput: + { + data2, ok := other.Get_().(ListTagsOfResourceOutput_ListTagsOfResourceOutput) + return ok && data1.Tags.Equals(data2.Tags) && data1.NextToken.Equals(data2.NextToken) + } + default: + { + return false // unexpected + } + } +} + +func (_this ListTagsOfResourceOutput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(ListTagsOfResourceOutput) + return ok && _this.Equals(typed) +} + +func Type_ListTagsOfResourceOutput_() _dafny.TypeDescriptor { + return type_ListTagsOfResourceOutput_{} +} + +type type_ListTagsOfResourceOutput_ struct { +} + +func (_this type_ListTagsOfResourceOutput_) Default() interface{} { + return Companion_ListTagsOfResourceOutput_.Default() +} + +func (_this type_ListTagsOfResourceOutput_) String() string { + return "ComAmazonawsDynamodbTypes.ListTagsOfResourceOutput" +} +func (_this ListTagsOfResourceOutput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = ListTagsOfResourceOutput{} + +// End of datatype ListTagsOfResourceOutput + +// Definition of datatype LocalSecondaryIndex +type LocalSecondaryIndex struct { + Data_LocalSecondaryIndex_ +} + +func (_this LocalSecondaryIndex) Get_() Data_LocalSecondaryIndex_ { + return _this.Data_LocalSecondaryIndex_ +} + +type Data_LocalSecondaryIndex_ interface { + isLocalSecondaryIndex() +} + +type CompanionStruct_LocalSecondaryIndex_ struct { +} + +var Companion_LocalSecondaryIndex_ = CompanionStruct_LocalSecondaryIndex_{} + +type LocalSecondaryIndex_LocalSecondaryIndex struct { + IndexName _dafny.Sequence + KeySchema _dafny.Sequence + Projection Projection +} + +func (LocalSecondaryIndex_LocalSecondaryIndex) isLocalSecondaryIndex() {} + +func (CompanionStruct_LocalSecondaryIndex_) Create_LocalSecondaryIndex_(IndexName _dafny.Sequence, KeySchema _dafny.Sequence, Projection Projection) LocalSecondaryIndex { + return LocalSecondaryIndex{LocalSecondaryIndex_LocalSecondaryIndex{IndexName, KeySchema, Projection}} +} + +func (_this LocalSecondaryIndex) Is_LocalSecondaryIndex() bool { + _, ok := _this.Get_().(LocalSecondaryIndex_LocalSecondaryIndex) + return ok +} + +func (CompanionStruct_LocalSecondaryIndex_) Default() LocalSecondaryIndex { + return Companion_LocalSecondaryIndex_.Create_LocalSecondaryIndex_(_dafny.EmptySeq.SetString(), _dafny.EmptySeq, Companion_Projection_.Default()) +} + +func (_this LocalSecondaryIndex) Dtor_IndexName() _dafny.Sequence { + return _this.Get_().(LocalSecondaryIndex_LocalSecondaryIndex).IndexName +} + +func (_this LocalSecondaryIndex) Dtor_KeySchema() _dafny.Sequence { + return _this.Get_().(LocalSecondaryIndex_LocalSecondaryIndex).KeySchema +} + +func (_this LocalSecondaryIndex) Dtor_Projection() Projection { + return _this.Get_().(LocalSecondaryIndex_LocalSecondaryIndex).Projection +} + +func (_this LocalSecondaryIndex) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case LocalSecondaryIndex_LocalSecondaryIndex: + { + return "ComAmazonawsDynamodbTypes.LocalSecondaryIndex.LocalSecondaryIndex" + "(" + _dafny.String(data.IndexName) + ", " + _dafny.String(data.KeySchema) + ", " + _dafny.String(data.Projection) + ")" + } + default: + { + return "" + } + } +} + +func (_this LocalSecondaryIndex) Equals(other LocalSecondaryIndex) bool { + switch data1 := _this.Get_().(type) { + case LocalSecondaryIndex_LocalSecondaryIndex: + { + data2, ok := other.Get_().(LocalSecondaryIndex_LocalSecondaryIndex) + return ok && data1.IndexName.Equals(data2.IndexName) && data1.KeySchema.Equals(data2.KeySchema) && data1.Projection.Equals(data2.Projection) + } + default: + { + return false // unexpected + } + } +} + +func (_this LocalSecondaryIndex) EqualsGeneric(other interface{}) bool { + typed, ok := other.(LocalSecondaryIndex) + return ok && _this.Equals(typed) +} + +func Type_LocalSecondaryIndex_() _dafny.TypeDescriptor { + return type_LocalSecondaryIndex_{} +} + +type type_LocalSecondaryIndex_ struct { +} + +func (_this type_LocalSecondaryIndex_) Default() interface{} { + return Companion_LocalSecondaryIndex_.Default() +} + +func (_this type_LocalSecondaryIndex_) String() string { + return "ComAmazonawsDynamodbTypes.LocalSecondaryIndex" +} +func (_this LocalSecondaryIndex) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = LocalSecondaryIndex{} + +// End of datatype LocalSecondaryIndex + +// Definition of datatype LocalSecondaryIndexDescription +type LocalSecondaryIndexDescription struct { + Data_LocalSecondaryIndexDescription_ +} + +func (_this LocalSecondaryIndexDescription) Get_() Data_LocalSecondaryIndexDescription_ { + return _this.Data_LocalSecondaryIndexDescription_ +} + +type Data_LocalSecondaryIndexDescription_ interface { + isLocalSecondaryIndexDescription() +} + +type CompanionStruct_LocalSecondaryIndexDescription_ struct { +} + +var Companion_LocalSecondaryIndexDescription_ = CompanionStruct_LocalSecondaryIndexDescription_{} + +type LocalSecondaryIndexDescription_LocalSecondaryIndexDescription struct { + IndexName m_Wrappers.Option + KeySchema m_Wrappers.Option + Projection m_Wrappers.Option + IndexSizeBytes m_Wrappers.Option + ItemCount m_Wrappers.Option + IndexArn m_Wrappers.Option +} + +func (LocalSecondaryIndexDescription_LocalSecondaryIndexDescription) isLocalSecondaryIndexDescription() { +} + +func (CompanionStruct_LocalSecondaryIndexDescription_) Create_LocalSecondaryIndexDescription_(IndexName m_Wrappers.Option, KeySchema m_Wrappers.Option, Projection m_Wrappers.Option, IndexSizeBytes m_Wrappers.Option, ItemCount m_Wrappers.Option, IndexArn m_Wrappers.Option) LocalSecondaryIndexDescription { + return LocalSecondaryIndexDescription{LocalSecondaryIndexDescription_LocalSecondaryIndexDescription{IndexName, KeySchema, Projection, IndexSizeBytes, ItemCount, IndexArn}} +} + +func (_this LocalSecondaryIndexDescription) Is_LocalSecondaryIndexDescription() bool { + _, ok := _this.Get_().(LocalSecondaryIndexDescription_LocalSecondaryIndexDescription) + return ok +} + +func (CompanionStruct_LocalSecondaryIndexDescription_) Default() LocalSecondaryIndexDescription { + return Companion_LocalSecondaryIndexDescription_.Create_LocalSecondaryIndexDescription_(m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this LocalSecondaryIndexDescription) Dtor_IndexName() m_Wrappers.Option { + return _this.Get_().(LocalSecondaryIndexDescription_LocalSecondaryIndexDescription).IndexName +} + +func (_this LocalSecondaryIndexDescription) Dtor_KeySchema() m_Wrappers.Option { + return _this.Get_().(LocalSecondaryIndexDescription_LocalSecondaryIndexDescription).KeySchema +} + +func (_this LocalSecondaryIndexDescription) Dtor_Projection() m_Wrappers.Option { + return _this.Get_().(LocalSecondaryIndexDescription_LocalSecondaryIndexDescription).Projection +} + +func (_this LocalSecondaryIndexDescription) Dtor_IndexSizeBytes() m_Wrappers.Option { + return _this.Get_().(LocalSecondaryIndexDescription_LocalSecondaryIndexDescription).IndexSizeBytes +} + +func (_this LocalSecondaryIndexDescription) Dtor_ItemCount() m_Wrappers.Option { + return _this.Get_().(LocalSecondaryIndexDescription_LocalSecondaryIndexDescription).ItemCount +} + +func (_this LocalSecondaryIndexDescription) Dtor_IndexArn() m_Wrappers.Option { + return _this.Get_().(LocalSecondaryIndexDescription_LocalSecondaryIndexDescription).IndexArn +} + +func (_this LocalSecondaryIndexDescription) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case LocalSecondaryIndexDescription_LocalSecondaryIndexDescription: + { + return "ComAmazonawsDynamodbTypes.LocalSecondaryIndexDescription.LocalSecondaryIndexDescription" + "(" + _dafny.String(data.IndexName) + ", " + _dafny.String(data.KeySchema) + ", " + _dafny.String(data.Projection) + ", " + _dafny.String(data.IndexSizeBytes) + ", " + _dafny.String(data.ItemCount) + ", " + _dafny.String(data.IndexArn) + ")" + } + default: + { + return "" + } + } +} + +func (_this LocalSecondaryIndexDescription) Equals(other LocalSecondaryIndexDescription) bool { + switch data1 := _this.Get_().(type) { + case LocalSecondaryIndexDescription_LocalSecondaryIndexDescription: + { + data2, ok := other.Get_().(LocalSecondaryIndexDescription_LocalSecondaryIndexDescription) + return ok && data1.IndexName.Equals(data2.IndexName) && data1.KeySchema.Equals(data2.KeySchema) && data1.Projection.Equals(data2.Projection) && data1.IndexSizeBytes.Equals(data2.IndexSizeBytes) && data1.ItemCount.Equals(data2.ItemCount) && data1.IndexArn.Equals(data2.IndexArn) + } + default: + { + return false // unexpected + } + } +} + +func (_this LocalSecondaryIndexDescription) EqualsGeneric(other interface{}) bool { + typed, ok := other.(LocalSecondaryIndexDescription) + return ok && _this.Equals(typed) +} + +func Type_LocalSecondaryIndexDescription_() _dafny.TypeDescriptor { + return type_LocalSecondaryIndexDescription_{} +} + +type type_LocalSecondaryIndexDescription_ struct { +} + +func (_this type_LocalSecondaryIndexDescription_) Default() interface{} { + return Companion_LocalSecondaryIndexDescription_.Default() +} + +func (_this type_LocalSecondaryIndexDescription_) String() string { + return "ComAmazonawsDynamodbTypes.LocalSecondaryIndexDescription" +} +func (_this LocalSecondaryIndexDescription) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = LocalSecondaryIndexDescription{} + +// End of datatype LocalSecondaryIndexDescription + +// Definition of datatype LocalSecondaryIndexInfo +type LocalSecondaryIndexInfo struct { + Data_LocalSecondaryIndexInfo_ +} + +func (_this LocalSecondaryIndexInfo) Get_() Data_LocalSecondaryIndexInfo_ { + return _this.Data_LocalSecondaryIndexInfo_ +} + +type Data_LocalSecondaryIndexInfo_ interface { + isLocalSecondaryIndexInfo() +} + +type CompanionStruct_LocalSecondaryIndexInfo_ struct { +} + +var Companion_LocalSecondaryIndexInfo_ = CompanionStruct_LocalSecondaryIndexInfo_{} + +type LocalSecondaryIndexInfo_LocalSecondaryIndexInfo struct { + IndexName m_Wrappers.Option + KeySchema m_Wrappers.Option + Projection m_Wrappers.Option +} + +func (LocalSecondaryIndexInfo_LocalSecondaryIndexInfo) isLocalSecondaryIndexInfo() {} + +func (CompanionStruct_LocalSecondaryIndexInfo_) Create_LocalSecondaryIndexInfo_(IndexName m_Wrappers.Option, KeySchema m_Wrappers.Option, Projection m_Wrappers.Option) LocalSecondaryIndexInfo { + return LocalSecondaryIndexInfo{LocalSecondaryIndexInfo_LocalSecondaryIndexInfo{IndexName, KeySchema, Projection}} +} + +func (_this LocalSecondaryIndexInfo) Is_LocalSecondaryIndexInfo() bool { + _, ok := _this.Get_().(LocalSecondaryIndexInfo_LocalSecondaryIndexInfo) + return ok +} + +func (CompanionStruct_LocalSecondaryIndexInfo_) Default() LocalSecondaryIndexInfo { + return Companion_LocalSecondaryIndexInfo_.Create_LocalSecondaryIndexInfo_(m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this LocalSecondaryIndexInfo) Dtor_IndexName() m_Wrappers.Option { + return _this.Get_().(LocalSecondaryIndexInfo_LocalSecondaryIndexInfo).IndexName +} + +func (_this LocalSecondaryIndexInfo) Dtor_KeySchema() m_Wrappers.Option { + return _this.Get_().(LocalSecondaryIndexInfo_LocalSecondaryIndexInfo).KeySchema +} + +func (_this LocalSecondaryIndexInfo) Dtor_Projection() m_Wrappers.Option { + return _this.Get_().(LocalSecondaryIndexInfo_LocalSecondaryIndexInfo).Projection +} + +func (_this LocalSecondaryIndexInfo) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case LocalSecondaryIndexInfo_LocalSecondaryIndexInfo: + { + return "ComAmazonawsDynamodbTypes.LocalSecondaryIndexInfo.LocalSecondaryIndexInfo" + "(" + _dafny.String(data.IndexName) + ", " + _dafny.String(data.KeySchema) + ", " + _dafny.String(data.Projection) + ")" + } + default: + { + return "" + } + } +} + +func (_this LocalSecondaryIndexInfo) Equals(other LocalSecondaryIndexInfo) bool { + switch data1 := _this.Get_().(type) { + case LocalSecondaryIndexInfo_LocalSecondaryIndexInfo: + { + data2, ok := other.Get_().(LocalSecondaryIndexInfo_LocalSecondaryIndexInfo) + return ok && data1.IndexName.Equals(data2.IndexName) && data1.KeySchema.Equals(data2.KeySchema) && data1.Projection.Equals(data2.Projection) + } + default: + { + return false // unexpected + } + } +} + +func (_this LocalSecondaryIndexInfo) EqualsGeneric(other interface{}) bool { + typed, ok := other.(LocalSecondaryIndexInfo) + return ok && _this.Equals(typed) +} + +func Type_LocalSecondaryIndexInfo_() _dafny.TypeDescriptor { + return type_LocalSecondaryIndexInfo_{} +} + +type type_LocalSecondaryIndexInfo_ struct { +} + +func (_this type_LocalSecondaryIndexInfo_) Default() interface{} { + return Companion_LocalSecondaryIndexInfo_.Default() +} + +func (_this type_LocalSecondaryIndexInfo_) String() string { + return "ComAmazonawsDynamodbTypes.LocalSecondaryIndexInfo" +} +func (_this LocalSecondaryIndexInfo) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = LocalSecondaryIndexInfo{} + +// End of datatype LocalSecondaryIndexInfo + +// Definition of class NonKeyAttributeName +type NonKeyAttributeName struct { +} + +func New_NonKeyAttributeName_() *NonKeyAttributeName { + _this := NonKeyAttributeName{} + + return &_this +} + +type CompanionStruct_NonKeyAttributeName_ struct { +} + +var Companion_NonKeyAttributeName_ = CompanionStruct_NonKeyAttributeName_{} + +func (*NonKeyAttributeName) String() string { + return "ComAmazonawsDynamodbTypes.NonKeyAttributeName" +} + +// End of class NonKeyAttributeName + +func Type_NonKeyAttributeName_() _dafny.TypeDescriptor { + return type_NonKeyAttributeName_{} +} + +type type_NonKeyAttributeName_ struct { +} + +func (_this type_NonKeyAttributeName_) Default() interface{} { + return _dafny.EmptySeq.SetString() +} + +func (_this type_NonKeyAttributeName_) String() string { + return "ComAmazonawsDynamodbTypes.NonKeyAttributeName" +} +func (_this *CompanionStruct_NonKeyAttributeName_) Is_(__source _dafny.Sequence) bool { + var _18_x _dafny.Sequence = (__source) + _ = _18_x + return Companion_Default___.IsValid__NonKeyAttributeName(_18_x) +} + +// Definition of class NonKeyAttributeNameList +type NonKeyAttributeNameList struct { +} + +func New_NonKeyAttributeNameList_() *NonKeyAttributeNameList { + _this := NonKeyAttributeNameList{} + + return &_this +} + +type CompanionStruct_NonKeyAttributeNameList_ struct { +} + +var Companion_NonKeyAttributeNameList_ = CompanionStruct_NonKeyAttributeNameList_{} + +func (*NonKeyAttributeNameList) String() string { + return "ComAmazonawsDynamodbTypes.NonKeyAttributeNameList" +} + +// End of class NonKeyAttributeNameList + +func Type_NonKeyAttributeNameList_() _dafny.TypeDescriptor { + return type_NonKeyAttributeNameList_{} +} + +type type_NonKeyAttributeNameList_ struct { +} + +func (_this type_NonKeyAttributeNameList_) Default() interface{} { + return _dafny.EmptySeq +} + +func (_this type_NonKeyAttributeNameList_) String() string { + return "ComAmazonawsDynamodbTypes.NonKeyAttributeNameList" +} +func (_this *CompanionStruct_NonKeyAttributeNameList_) Is_(__source _dafny.Sequence) bool { + var _19_x _dafny.Sequence = (__source) + _ = _19_x + return Companion_Default___.IsValid__NonKeyAttributeNameList(_19_x) +} + +// Definition of class NonNegativeLongObject +type NonNegativeLongObject struct { +} + +func New_NonNegativeLongObject_() *NonNegativeLongObject { + _this := NonNegativeLongObject{} + + return &_this +} + +type CompanionStruct_NonNegativeLongObject_ struct { +} + +var Companion_NonNegativeLongObject_ = CompanionStruct_NonNegativeLongObject_{} + +func (*NonNegativeLongObject) String() string { + return "ComAmazonawsDynamodbTypes.NonNegativeLongObject" +} + +// End of class NonNegativeLongObject + +func Type_NonNegativeLongObject_() _dafny.TypeDescriptor { + return type_NonNegativeLongObject_{} +} + +type type_NonNegativeLongObject_ struct { +} + +func (_this type_NonNegativeLongObject_) Default() interface{} { + return int64(0) +} + +func (_this type_NonNegativeLongObject_) String() string { + return "ComAmazonawsDynamodbTypes.NonNegativeLongObject" +} +func (_this *CompanionStruct_NonNegativeLongObject_) Is_(__source int64) bool { + var _20_x int64 = (__source) + _ = _20_x + if true { + return Companion_Default___.IsValid__NonNegativeLongObject(_20_x) + } + return false +} + +// Definition of datatype OnDemandThroughput +type OnDemandThroughput struct { + Data_OnDemandThroughput_ +} + +func (_this OnDemandThroughput) Get_() Data_OnDemandThroughput_ { + return _this.Data_OnDemandThroughput_ +} + +type Data_OnDemandThroughput_ interface { + isOnDemandThroughput() +} + +type CompanionStruct_OnDemandThroughput_ struct { +} + +var Companion_OnDemandThroughput_ = CompanionStruct_OnDemandThroughput_{} + +type OnDemandThroughput_OnDemandThroughput struct { + MaxReadRequestUnits m_Wrappers.Option + MaxWriteRequestUnits m_Wrappers.Option +} + +func (OnDemandThroughput_OnDemandThroughput) isOnDemandThroughput() {} + +func (CompanionStruct_OnDemandThroughput_) Create_OnDemandThroughput_(MaxReadRequestUnits m_Wrappers.Option, MaxWriteRequestUnits m_Wrappers.Option) OnDemandThroughput { + return OnDemandThroughput{OnDemandThroughput_OnDemandThroughput{MaxReadRequestUnits, MaxWriteRequestUnits}} +} + +func (_this OnDemandThroughput) Is_OnDemandThroughput() bool { + _, ok := _this.Get_().(OnDemandThroughput_OnDemandThroughput) + return ok +} + +func (CompanionStruct_OnDemandThroughput_) Default() OnDemandThroughput { + return Companion_OnDemandThroughput_.Create_OnDemandThroughput_(m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this OnDemandThroughput) Dtor_MaxReadRequestUnits() m_Wrappers.Option { + return _this.Get_().(OnDemandThroughput_OnDemandThroughput).MaxReadRequestUnits +} + +func (_this OnDemandThroughput) Dtor_MaxWriteRequestUnits() m_Wrappers.Option { + return _this.Get_().(OnDemandThroughput_OnDemandThroughput).MaxWriteRequestUnits +} + +func (_this OnDemandThroughput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case OnDemandThroughput_OnDemandThroughput: + { + return "ComAmazonawsDynamodbTypes.OnDemandThroughput.OnDemandThroughput" + "(" + _dafny.String(data.MaxReadRequestUnits) + ", " + _dafny.String(data.MaxWriteRequestUnits) + ")" + } + default: + { + return "" + } + } +} + +func (_this OnDemandThroughput) Equals(other OnDemandThroughput) bool { + switch data1 := _this.Get_().(type) { + case OnDemandThroughput_OnDemandThroughput: + { + data2, ok := other.Get_().(OnDemandThroughput_OnDemandThroughput) + return ok && data1.MaxReadRequestUnits.Equals(data2.MaxReadRequestUnits) && data1.MaxWriteRequestUnits.Equals(data2.MaxWriteRequestUnits) + } + default: + { + return false // unexpected + } + } +} + +func (_this OnDemandThroughput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(OnDemandThroughput) + return ok && _this.Equals(typed) +} + +func Type_OnDemandThroughput_() _dafny.TypeDescriptor { + return type_OnDemandThroughput_{} +} + +type type_OnDemandThroughput_ struct { +} + +func (_this type_OnDemandThroughput_) Default() interface{} { + return Companion_OnDemandThroughput_.Default() +} + +func (_this type_OnDemandThroughput_) String() string { + return "ComAmazonawsDynamodbTypes.OnDemandThroughput" +} +func (_this OnDemandThroughput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = OnDemandThroughput{} + +// End of datatype OnDemandThroughput + +// Definition of datatype OnDemandThroughputOverride +type OnDemandThroughputOverride struct { + Data_OnDemandThroughputOverride_ +} + +func (_this OnDemandThroughputOverride) Get_() Data_OnDemandThroughputOverride_ { + return _this.Data_OnDemandThroughputOverride_ +} + +type Data_OnDemandThroughputOverride_ interface { + isOnDemandThroughputOverride() +} + +type CompanionStruct_OnDemandThroughputOverride_ struct { +} + +var Companion_OnDemandThroughputOverride_ = CompanionStruct_OnDemandThroughputOverride_{} + +type OnDemandThroughputOverride_OnDemandThroughputOverride struct { + MaxReadRequestUnits m_Wrappers.Option +} + +func (OnDemandThroughputOverride_OnDemandThroughputOverride) isOnDemandThroughputOverride() {} + +func (CompanionStruct_OnDemandThroughputOverride_) Create_OnDemandThroughputOverride_(MaxReadRequestUnits m_Wrappers.Option) OnDemandThroughputOverride { + return OnDemandThroughputOverride{OnDemandThroughputOverride_OnDemandThroughputOverride{MaxReadRequestUnits}} +} + +func (_this OnDemandThroughputOverride) Is_OnDemandThroughputOverride() bool { + _, ok := _this.Get_().(OnDemandThroughputOverride_OnDemandThroughputOverride) + return ok +} + +func (CompanionStruct_OnDemandThroughputOverride_) Default() OnDemandThroughputOverride { + return Companion_OnDemandThroughputOverride_.Create_OnDemandThroughputOverride_(m_Wrappers.Companion_Option_.Default()) +} + +func (_this OnDemandThroughputOverride) Dtor_MaxReadRequestUnits() m_Wrappers.Option { + return _this.Get_().(OnDemandThroughputOverride_OnDemandThroughputOverride).MaxReadRequestUnits +} + +func (_this OnDemandThroughputOverride) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case OnDemandThroughputOverride_OnDemandThroughputOverride: + { + return "ComAmazonawsDynamodbTypes.OnDemandThroughputOverride.OnDemandThroughputOverride" + "(" + _dafny.String(data.MaxReadRequestUnits) + ")" + } + default: + { + return "" + } + } +} + +func (_this OnDemandThroughputOverride) Equals(other OnDemandThroughputOverride) bool { + switch data1 := _this.Get_().(type) { + case OnDemandThroughputOverride_OnDemandThroughputOverride: + { + data2, ok := other.Get_().(OnDemandThroughputOverride_OnDemandThroughputOverride) + return ok && data1.MaxReadRequestUnits.Equals(data2.MaxReadRequestUnits) + } + default: + { + return false // unexpected + } + } +} + +func (_this OnDemandThroughputOverride) EqualsGeneric(other interface{}) bool { + typed, ok := other.(OnDemandThroughputOverride) + return ok && _this.Equals(typed) +} + +func Type_OnDemandThroughputOverride_() _dafny.TypeDescriptor { + return type_OnDemandThroughputOverride_{} +} + +type type_OnDemandThroughputOverride_ struct { +} + +func (_this type_OnDemandThroughputOverride_) Default() interface{} { + return Companion_OnDemandThroughputOverride_.Default() +} + +func (_this type_OnDemandThroughputOverride_) String() string { + return "ComAmazonawsDynamodbTypes.OnDemandThroughputOverride" +} +func (_this OnDemandThroughputOverride) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = OnDemandThroughputOverride{} + +// End of datatype OnDemandThroughputOverride + +// Definition of datatype ParameterizedStatement +type ParameterizedStatement struct { + Data_ParameterizedStatement_ +} + +func (_this ParameterizedStatement) Get_() Data_ParameterizedStatement_ { + return _this.Data_ParameterizedStatement_ +} + +type Data_ParameterizedStatement_ interface { + isParameterizedStatement() +} + +type CompanionStruct_ParameterizedStatement_ struct { +} + +var Companion_ParameterizedStatement_ = CompanionStruct_ParameterizedStatement_{} + +type ParameterizedStatement_ParameterizedStatement struct { + Statement _dafny.Sequence + Parameters m_Wrappers.Option + ReturnValuesOnConditionCheckFailure m_Wrappers.Option +} + +func (ParameterizedStatement_ParameterizedStatement) isParameterizedStatement() {} + +func (CompanionStruct_ParameterizedStatement_) Create_ParameterizedStatement_(Statement _dafny.Sequence, Parameters m_Wrappers.Option, ReturnValuesOnConditionCheckFailure m_Wrappers.Option) ParameterizedStatement { + return ParameterizedStatement{ParameterizedStatement_ParameterizedStatement{Statement, Parameters, ReturnValuesOnConditionCheckFailure}} +} + +func (_this ParameterizedStatement) Is_ParameterizedStatement() bool { + _, ok := _this.Get_().(ParameterizedStatement_ParameterizedStatement) + return ok +} + +func (CompanionStruct_ParameterizedStatement_) Default() ParameterizedStatement { + return Companion_ParameterizedStatement_.Create_ParameterizedStatement_(_dafny.EmptySeq.SetString(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this ParameterizedStatement) Dtor_Statement() _dafny.Sequence { + return _this.Get_().(ParameterizedStatement_ParameterizedStatement).Statement +} + +func (_this ParameterizedStatement) Dtor_Parameters() m_Wrappers.Option { + return _this.Get_().(ParameterizedStatement_ParameterizedStatement).Parameters +} + +func (_this ParameterizedStatement) Dtor_ReturnValuesOnConditionCheckFailure() m_Wrappers.Option { + return _this.Get_().(ParameterizedStatement_ParameterizedStatement).ReturnValuesOnConditionCheckFailure +} + +func (_this ParameterizedStatement) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case ParameterizedStatement_ParameterizedStatement: + { + return "ComAmazonawsDynamodbTypes.ParameterizedStatement.ParameterizedStatement" + "(" + _dafny.String(data.Statement) + ", " + _dafny.String(data.Parameters) + ", " + _dafny.String(data.ReturnValuesOnConditionCheckFailure) + ")" + } + default: + { + return "" + } + } +} + +func (_this ParameterizedStatement) Equals(other ParameterizedStatement) bool { + switch data1 := _this.Get_().(type) { + case ParameterizedStatement_ParameterizedStatement: + { + data2, ok := other.Get_().(ParameterizedStatement_ParameterizedStatement) + return ok && data1.Statement.Equals(data2.Statement) && data1.Parameters.Equals(data2.Parameters) && data1.ReturnValuesOnConditionCheckFailure.Equals(data2.ReturnValuesOnConditionCheckFailure) + } + default: + { + return false // unexpected + } + } +} + +func (_this ParameterizedStatement) EqualsGeneric(other interface{}) bool { + typed, ok := other.(ParameterizedStatement) + return ok && _this.Equals(typed) +} + +func Type_ParameterizedStatement_() _dafny.TypeDescriptor { + return type_ParameterizedStatement_{} +} + +type type_ParameterizedStatement_ struct { +} + +func (_this type_ParameterizedStatement_) Default() interface{} { + return Companion_ParameterizedStatement_.Default() +} + +func (_this type_ParameterizedStatement_) String() string { + return "ComAmazonawsDynamodbTypes.ParameterizedStatement" +} +func (_this ParameterizedStatement) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = ParameterizedStatement{} + +// End of datatype ParameterizedStatement + +// Definition of class ParameterizedStatements +type ParameterizedStatements struct { +} + +func New_ParameterizedStatements_() *ParameterizedStatements { + _this := ParameterizedStatements{} + + return &_this +} + +type CompanionStruct_ParameterizedStatements_ struct { +} + +var Companion_ParameterizedStatements_ = CompanionStruct_ParameterizedStatements_{} + +func (*ParameterizedStatements) String() string { + return "ComAmazonawsDynamodbTypes.ParameterizedStatements" +} + +// End of class ParameterizedStatements + +func Type_ParameterizedStatements_() _dafny.TypeDescriptor { + return type_ParameterizedStatements_{} +} + +type type_ParameterizedStatements_ struct { +} + +func (_this type_ParameterizedStatements_) Default() interface{} { + return _dafny.EmptySeq +} + +func (_this type_ParameterizedStatements_) String() string { + return "ComAmazonawsDynamodbTypes.ParameterizedStatements" +} +func (_this *CompanionStruct_ParameterizedStatements_) Is_(__source _dafny.Sequence) bool { + var _21_x _dafny.Sequence = (__source) + _ = _21_x + return Companion_Default___.IsValid__ParameterizedStatements(_21_x) +} + +// Definition of class PartiQLBatchRequest +type PartiQLBatchRequest struct { +} + +func New_PartiQLBatchRequest_() *PartiQLBatchRequest { + _this := PartiQLBatchRequest{} + + return &_this +} + +type CompanionStruct_PartiQLBatchRequest_ struct { +} + +var Companion_PartiQLBatchRequest_ = CompanionStruct_PartiQLBatchRequest_{} + +func (*PartiQLBatchRequest) String() string { + return "ComAmazonawsDynamodbTypes.PartiQLBatchRequest" +} + +// End of class PartiQLBatchRequest + +func Type_PartiQLBatchRequest_() _dafny.TypeDescriptor { + return type_PartiQLBatchRequest_{} +} + +type type_PartiQLBatchRequest_ struct { +} + +func (_this type_PartiQLBatchRequest_) Default() interface{} { + return _dafny.EmptySeq +} + +func (_this type_PartiQLBatchRequest_) String() string { + return "ComAmazonawsDynamodbTypes.PartiQLBatchRequest" +} +func (_this *CompanionStruct_PartiQLBatchRequest_) Is_(__source _dafny.Sequence) bool { + var _22_x _dafny.Sequence = (__source) + _ = _22_x + return Companion_Default___.IsValid__PartiQLBatchRequest(_22_x) +} + +// Definition of class PartiQLNextToken +type PartiQLNextToken struct { +} + +func New_PartiQLNextToken_() *PartiQLNextToken { + _this := PartiQLNextToken{} + + return &_this +} + +type CompanionStruct_PartiQLNextToken_ struct { +} + +var Companion_PartiQLNextToken_ = CompanionStruct_PartiQLNextToken_{} + +func (*PartiQLNextToken) String() string { + return "ComAmazonawsDynamodbTypes.PartiQLNextToken" +} + +// End of class PartiQLNextToken + +func Type_PartiQLNextToken_() _dafny.TypeDescriptor { + return type_PartiQLNextToken_{} +} + +type type_PartiQLNextToken_ struct { +} + +func (_this type_PartiQLNextToken_) Default() interface{} { + return _dafny.EmptySeq.SetString() +} + +func (_this type_PartiQLNextToken_) String() string { + return "ComAmazonawsDynamodbTypes.PartiQLNextToken" +} +func (_this *CompanionStruct_PartiQLNextToken_) Is_(__source _dafny.Sequence) bool { + var _23_x _dafny.Sequence = (__source) + _ = _23_x + return Companion_Default___.IsValid__PartiQLNextToken(_23_x) +} + +// Definition of class PartiQLStatement +type PartiQLStatement struct { +} + +func New_PartiQLStatement_() *PartiQLStatement { + _this := PartiQLStatement{} + + return &_this +} + +type CompanionStruct_PartiQLStatement_ struct { +} + +var Companion_PartiQLStatement_ = CompanionStruct_PartiQLStatement_{} + +func (*PartiQLStatement) String() string { + return "ComAmazonawsDynamodbTypes.PartiQLStatement" +} + +// End of class PartiQLStatement + +func Type_PartiQLStatement_() _dafny.TypeDescriptor { + return type_PartiQLStatement_{} +} + +type type_PartiQLStatement_ struct { +} + +func (_this type_PartiQLStatement_) Default() interface{} { + return _dafny.EmptySeq.SetString() +} + +func (_this type_PartiQLStatement_) String() string { + return "ComAmazonawsDynamodbTypes.PartiQLStatement" +} +func (_this *CompanionStruct_PartiQLStatement_) Is_(__source _dafny.Sequence) bool { + var _24_x _dafny.Sequence = (__source) + _ = _24_x + return Companion_Default___.IsValid__PartiQLStatement(_24_x) +} + +// Definition of datatype PointInTimeRecoveryDescription +type PointInTimeRecoveryDescription struct { + Data_PointInTimeRecoveryDescription_ +} + +func (_this PointInTimeRecoveryDescription) Get_() Data_PointInTimeRecoveryDescription_ { + return _this.Data_PointInTimeRecoveryDescription_ +} + +type Data_PointInTimeRecoveryDescription_ interface { + isPointInTimeRecoveryDescription() +} + +type CompanionStruct_PointInTimeRecoveryDescription_ struct { +} + +var Companion_PointInTimeRecoveryDescription_ = CompanionStruct_PointInTimeRecoveryDescription_{} + +type PointInTimeRecoveryDescription_PointInTimeRecoveryDescription struct { + PointInTimeRecoveryStatus m_Wrappers.Option + EarliestRestorableDateTime m_Wrappers.Option + LatestRestorableDateTime m_Wrappers.Option +} + +func (PointInTimeRecoveryDescription_PointInTimeRecoveryDescription) isPointInTimeRecoveryDescription() { +} + +func (CompanionStruct_PointInTimeRecoveryDescription_) Create_PointInTimeRecoveryDescription_(PointInTimeRecoveryStatus m_Wrappers.Option, EarliestRestorableDateTime m_Wrappers.Option, LatestRestorableDateTime m_Wrappers.Option) PointInTimeRecoveryDescription { + return PointInTimeRecoveryDescription{PointInTimeRecoveryDescription_PointInTimeRecoveryDescription{PointInTimeRecoveryStatus, EarliestRestorableDateTime, LatestRestorableDateTime}} +} + +func (_this PointInTimeRecoveryDescription) Is_PointInTimeRecoveryDescription() bool { + _, ok := _this.Get_().(PointInTimeRecoveryDescription_PointInTimeRecoveryDescription) + return ok +} + +func (CompanionStruct_PointInTimeRecoveryDescription_) Default() PointInTimeRecoveryDescription { + return Companion_PointInTimeRecoveryDescription_.Create_PointInTimeRecoveryDescription_(m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this PointInTimeRecoveryDescription) Dtor_PointInTimeRecoveryStatus() m_Wrappers.Option { + return _this.Get_().(PointInTimeRecoveryDescription_PointInTimeRecoveryDescription).PointInTimeRecoveryStatus +} + +func (_this PointInTimeRecoveryDescription) Dtor_EarliestRestorableDateTime() m_Wrappers.Option { + return _this.Get_().(PointInTimeRecoveryDescription_PointInTimeRecoveryDescription).EarliestRestorableDateTime +} + +func (_this PointInTimeRecoveryDescription) Dtor_LatestRestorableDateTime() m_Wrappers.Option { + return _this.Get_().(PointInTimeRecoveryDescription_PointInTimeRecoveryDescription).LatestRestorableDateTime +} + +func (_this PointInTimeRecoveryDescription) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case PointInTimeRecoveryDescription_PointInTimeRecoveryDescription: + { + return "ComAmazonawsDynamodbTypes.PointInTimeRecoveryDescription.PointInTimeRecoveryDescription" + "(" + _dafny.String(data.PointInTimeRecoveryStatus) + ", " + _dafny.String(data.EarliestRestorableDateTime) + ", " + _dafny.String(data.LatestRestorableDateTime) + ")" + } + default: + { + return "" + } + } +} + +func (_this PointInTimeRecoveryDescription) Equals(other PointInTimeRecoveryDescription) bool { + switch data1 := _this.Get_().(type) { + case PointInTimeRecoveryDescription_PointInTimeRecoveryDescription: + { + data2, ok := other.Get_().(PointInTimeRecoveryDescription_PointInTimeRecoveryDescription) + return ok && data1.PointInTimeRecoveryStatus.Equals(data2.PointInTimeRecoveryStatus) && data1.EarliestRestorableDateTime.Equals(data2.EarliestRestorableDateTime) && data1.LatestRestorableDateTime.Equals(data2.LatestRestorableDateTime) + } + default: + { + return false // unexpected + } + } +} + +func (_this PointInTimeRecoveryDescription) EqualsGeneric(other interface{}) bool { + typed, ok := other.(PointInTimeRecoveryDescription) + return ok && _this.Equals(typed) +} + +func Type_PointInTimeRecoveryDescription_() _dafny.TypeDescriptor { + return type_PointInTimeRecoveryDescription_{} +} + +type type_PointInTimeRecoveryDescription_ struct { +} + +func (_this type_PointInTimeRecoveryDescription_) Default() interface{} { + return Companion_PointInTimeRecoveryDescription_.Default() +} + +func (_this type_PointInTimeRecoveryDescription_) String() string { + return "ComAmazonawsDynamodbTypes.PointInTimeRecoveryDescription" +} +func (_this PointInTimeRecoveryDescription) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = PointInTimeRecoveryDescription{} + +// End of datatype PointInTimeRecoveryDescription + +// Definition of datatype PointInTimeRecoverySpecification +type PointInTimeRecoverySpecification struct { + Data_PointInTimeRecoverySpecification_ +} + +func (_this PointInTimeRecoverySpecification) Get_() Data_PointInTimeRecoverySpecification_ { + return _this.Data_PointInTimeRecoverySpecification_ +} + +type Data_PointInTimeRecoverySpecification_ interface { + isPointInTimeRecoverySpecification() +} + +type CompanionStruct_PointInTimeRecoverySpecification_ struct { +} + +var Companion_PointInTimeRecoverySpecification_ = CompanionStruct_PointInTimeRecoverySpecification_{} + +type PointInTimeRecoverySpecification_PointInTimeRecoverySpecification struct { + PointInTimeRecoveryEnabled bool +} + +func (PointInTimeRecoverySpecification_PointInTimeRecoverySpecification) isPointInTimeRecoverySpecification() { +} + +func (CompanionStruct_PointInTimeRecoverySpecification_) Create_PointInTimeRecoverySpecification_(PointInTimeRecoveryEnabled bool) PointInTimeRecoverySpecification { + return PointInTimeRecoverySpecification{PointInTimeRecoverySpecification_PointInTimeRecoverySpecification{PointInTimeRecoveryEnabled}} +} + +func (_this PointInTimeRecoverySpecification) Is_PointInTimeRecoverySpecification() bool { + _, ok := _this.Get_().(PointInTimeRecoverySpecification_PointInTimeRecoverySpecification) + return ok +} + +func (CompanionStruct_PointInTimeRecoverySpecification_) Default() PointInTimeRecoverySpecification { + return Companion_PointInTimeRecoverySpecification_.Create_PointInTimeRecoverySpecification_(false) +} + +func (_this PointInTimeRecoverySpecification) Dtor_PointInTimeRecoveryEnabled() bool { + return _this.Get_().(PointInTimeRecoverySpecification_PointInTimeRecoverySpecification).PointInTimeRecoveryEnabled +} + +func (_this PointInTimeRecoverySpecification) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case PointInTimeRecoverySpecification_PointInTimeRecoverySpecification: + { + return "ComAmazonawsDynamodbTypes.PointInTimeRecoverySpecification.PointInTimeRecoverySpecification" + "(" + _dafny.String(data.PointInTimeRecoveryEnabled) + ")" + } + default: + { + return "" + } + } +} + +func (_this PointInTimeRecoverySpecification) Equals(other PointInTimeRecoverySpecification) bool { + switch data1 := _this.Get_().(type) { + case PointInTimeRecoverySpecification_PointInTimeRecoverySpecification: + { + data2, ok := other.Get_().(PointInTimeRecoverySpecification_PointInTimeRecoverySpecification) + return ok && data1.PointInTimeRecoveryEnabled == data2.PointInTimeRecoveryEnabled + } + default: + { + return false // unexpected + } + } +} + +func (_this PointInTimeRecoverySpecification) EqualsGeneric(other interface{}) bool { + typed, ok := other.(PointInTimeRecoverySpecification) + return ok && _this.Equals(typed) +} + +func Type_PointInTimeRecoverySpecification_() _dafny.TypeDescriptor { + return type_PointInTimeRecoverySpecification_{} +} + +type type_PointInTimeRecoverySpecification_ struct { +} + +func (_this type_PointInTimeRecoverySpecification_) Default() interface{} { + return Companion_PointInTimeRecoverySpecification_.Default() +} + +func (_this type_PointInTimeRecoverySpecification_) String() string { + return "ComAmazonawsDynamodbTypes.PointInTimeRecoverySpecification" +} +func (_this PointInTimeRecoverySpecification) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = PointInTimeRecoverySpecification{} + +// End of datatype PointInTimeRecoverySpecification + +// Definition of datatype PointInTimeRecoveryStatus +type PointInTimeRecoveryStatus struct { + Data_PointInTimeRecoveryStatus_ +} + +func (_this PointInTimeRecoveryStatus) Get_() Data_PointInTimeRecoveryStatus_ { + return _this.Data_PointInTimeRecoveryStatus_ +} + +type Data_PointInTimeRecoveryStatus_ interface { + isPointInTimeRecoveryStatus() +} + +type CompanionStruct_PointInTimeRecoveryStatus_ struct { +} + +var Companion_PointInTimeRecoveryStatus_ = CompanionStruct_PointInTimeRecoveryStatus_{} + +type PointInTimeRecoveryStatus_ENABLED struct { +} + +func (PointInTimeRecoveryStatus_ENABLED) isPointInTimeRecoveryStatus() {} + +func (CompanionStruct_PointInTimeRecoveryStatus_) Create_ENABLED_() PointInTimeRecoveryStatus { + return PointInTimeRecoveryStatus{PointInTimeRecoveryStatus_ENABLED{}} +} + +func (_this PointInTimeRecoveryStatus) Is_ENABLED() bool { + _, ok := _this.Get_().(PointInTimeRecoveryStatus_ENABLED) + return ok +} + +type PointInTimeRecoveryStatus_DISABLED struct { +} + +func (PointInTimeRecoveryStatus_DISABLED) isPointInTimeRecoveryStatus() {} + +func (CompanionStruct_PointInTimeRecoveryStatus_) Create_DISABLED_() PointInTimeRecoveryStatus { + return PointInTimeRecoveryStatus{PointInTimeRecoveryStatus_DISABLED{}} +} + +func (_this PointInTimeRecoveryStatus) Is_DISABLED() bool { + _, ok := _this.Get_().(PointInTimeRecoveryStatus_DISABLED) + return ok +} + +func (CompanionStruct_PointInTimeRecoveryStatus_) Default() PointInTimeRecoveryStatus { + return Companion_PointInTimeRecoveryStatus_.Create_ENABLED_() +} + +func (_ CompanionStruct_PointInTimeRecoveryStatus_) AllSingletonConstructors() _dafny.Iterator { + i := -1 + return func() (interface{}, bool) { + i++ + switch i { + case 0: + return Companion_PointInTimeRecoveryStatus_.Create_ENABLED_(), true + case 1: + return Companion_PointInTimeRecoveryStatus_.Create_DISABLED_(), true + default: + return PointInTimeRecoveryStatus{}, false + } + } +} + +func (_this PointInTimeRecoveryStatus) String() string { + switch _this.Get_().(type) { + case nil: + return "null" + case PointInTimeRecoveryStatus_ENABLED: + { + return "ComAmazonawsDynamodbTypes.PointInTimeRecoveryStatus.ENABLED" + } + case PointInTimeRecoveryStatus_DISABLED: + { + return "ComAmazonawsDynamodbTypes.PointInTimeRecoveryStatus.DISABLED" + } + default: + { + return "" + } + } +} + +func (_this PointInTimeRecoveryStatus) Equals(other PointInTimeRecoveryStatus) bool { + switch _this.Get_().(type) { + case PointInTimeRecoveryStatus_ENABLED: + { + _, ok := other.Get_().(PointInTimeRecoveryStatus_ENABLED) + return ok + } + case PointInTimeRecoveryStatus_DISABLED: + { + _, ok := other.Get_().(PointInTimeRecoveryStatus_DISABLED) + return ok + } + default: + { + return false // unexpected + } + } +} + +func (_this PointInTimeRecoveryStatus) EqualsGeneric(other interface{}) bool { + typed, ok := other.(PointInTimeRecoveryStatus) + return ok && _this.Equals(typed) +} + +func Type_PointInTimeRecoveryStatus_() _dafny.TypeDescriptor { + return type_PointInTimeRecoveryStatus_{} +} + +type type_PointInTimeRecoveryStatus_ struct { +} + +func (_this type_PointInTimeRecoveryStatus_) Default() interface{} { + return Companion_PointInTimeRecoveryStatus_.Default() +} + +func (_this type_PointInTimeRecoveryStatus_) String() string { + return "ComAmazonawsDynamodbTypes.PointInTimeRecoveryStatus" +} +func (_this PointInTimeRecoveryStatus) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = PointInTimeRecoveryStatus{} + +// End of datatype PointInTimeRecoveryStatus + +// Definition of class PolicyRevisionId +type PolicyRevisionId struct { +} + +func New_PolicyRevisionId_() *PolicyRevisionId { + _this := PolicyRevisionId{} + + return &_this +} + +type CompanionStruct_PolicyRevisionId_ struct { +} + +var Companion_PolicyRevisionId_ = CompanionStruct_PolicyRevisionId_{} + +func (*PolicyRevisionId) String() string { + return "ComAmazonawsDynamodbTypes.PolicyRevisionId" +} + +// End of class PolicyRevisionId + +func Type_PolicyRevisionId_() _dafny.TypeDescriptor { + return type_PolicyRevisionId_{} +} + +type type_PolicyRevisionId_ struct { +} + +func (_this type_PolicyRevisionId_) Default() interface{} { + return _dafny.EmptySeq.SetString() +} + +func (_this type_PolicyRevisionId_) String() string { + return "ComAmazonawsDynamodbTypes.PolicyRevisionId" +} +func (_this *CompanionStruct_PolicyRevisionId_) Is_(__source _dafny.Sequence) bool { + var _25_x _dafny.Sequence = (__source) + _ = _25_x + return Companion_Default___.IsValid__PolicyRevisionId(_25_x) +} + +// Definition of class PositiveIntegerObject +type PositiveIntegerObject struct { +} + +func New_PositiveIntegerObject_() *PositiveIntegerObject { + _this := PositiveIntegerObject{} + + return &_this +} + +type CompanionStruct_PositiveIntegerObject_ struct { +} + +var Companion_PositiveIntegerObject_ = CompanionStruct_PositiveIntegerObject_{} + +func (*PositiveIntegerObject) String() string { + return "ComAmazonawsDynamodbTypes.PositiveIntegerObject" +} + +// End of class PositiveIntegerObject + +func Type_PositiveIntegerObject_() _dafny.TypeDescriptor { + return type_PositiveIntegerObject_{} +} + +type type_PositiveIntegerObject_ struct { +} + +func (_this type_PositiveIntegerObject_) Default() interface{} { + return int32(0) +} + +func (_this type_PositiveIntegerObject_) String() string { + return "ComAmazonawsDynamodbTypes.PositiveIntegerObject" +} +func (_this *CompanionStruct_PositiveIntegerObject_) Is_(__source int32) bool { + var _26_x int32 = (__source) + _ = _26_x + if true { + return Companion_Default___.IsValid__PositiveIntegerObject(_26_x) + } + return false +} + +// Definition of class PositiveLongObject +type PositiveLongObject struct { +} + +func New_PositiveLongObject_() *PositiveLongObject { + _this := PositiveLongObject{} + + return &_this +} + +type CompanionStruct_PositiveLongObject_ struct { +} + +var Companion_PositiveLongObject_ = CompanionStruct_PositiveLongObject_{} + +func (*PositiveLongObject) String() string { + return "ComAmazonawsDynamodbTypes.PositiveLongObject" +} + +// End of class PositiveLongObject + +func Type_PositiveLongObject_() _dafny.TypeDescriptor { + return type_PositiveLongObject_{} +} + +type type_PositiveLongObject_ struct { +} + +func (_this type_PositiveLongObject_) Default() interface{} { + return int64(0) +} + +func (_this type_PositiveLongObject_) String() string { + return "ComAmazonawsDynamodbTypes.PositiveLongObject" +} +func (_this *CompanionStruct_PositiveLongObject_) Is_(__source int64) bool { + var _27_x int64 = (__source) + _ = _27_x + if true { + return Companion_Default___.IsValid__PositiveLongObject(_27_x) + } + return false +} + +// Definition of class PreparedStatementParameters +type PreparedStatementParameters struct { +} + +func New_PreparedStatementParameters_() *PreparedStatementParameters { + _this := PreparedStatementParameters{} + + return &_this +} + +type CompanionStruct_PreparedStatementParameters_ struct { +} + +var Companion_PreparedStatementParameters_ = CompanionStruct_PreparedStatementParameters_{} + +func (*PreparedStatementParameters) String() string { + return "ComAmazonawsDynamodbTypes.PreparedStatementParameters" +} + +// End of class PreparedStatementParameters + +func Type_PreparedStatementParameters_() _dafny.TypeDescriptor { + return type_PreparedStatementParameters_{} +} + +type type_PreparedStatementParameters_ struct { +} + +func (_this type_PreparedStatementParameters_) Default() interface{} { + return _dafny.EmptySeq +} + +func (_this type_PreparedStatementParameters_) String() string { + return "ComAmazonawsDynamodbTypes.PreparedStatementParameters" +} +func (_this *CompanionStruct_PreparedStatementParameters_) Is_(__source _dafny.Sequence) bool { + var _28_x _dafny.Sequence = (__source) + _ = _28_x + return Companion_Default___.IsValid__PreparedStatementParameters(_28_x) +} + +// Definition of class ProcessedItemCount +type ProcessedItemCount struct { +} + +func New_ProcessedItemCount_() *ProcessedItemCount { + _this := ProcessedItemCount{} + + return &_this +} + +type CompanionStruct_ProcessedItemCount_ struct { +} + +var Companion_ProcessedItemCount_ = CompanionStruct_ProcessedItemCount_{} + +func (*ProcessedItemCount) String() string { + return "ComAmazonawsDynamodbTypes.ProcessedItemCount" +} + +// End of class ProcessedItemCount + +func Type_ProcessedItemCount_() _dafny.TypeDescriptor { + return type_ProcessedItemCount_{} +} + +type type_ProcessedItemCount_ struct { +} + +func (_this type_ProcessedItemCount_) Default() interface{} { + return int64(0) +} + +func (_this type_ProcessedItemCount_) String() string { + return "ComAmazonawsDynamodbTypes.ProcessedItemCount" +} +func (_this *CompanionStruct_ProcessedItemCount_) Is_(__source int64) bool { + var _29_x int64 = (__source) + _ = _29_x + if true { + return Companion_Default___.IsValid__ProcessedItemCount(_29_x) + } + return false +} + +// Definition of datatype Projection +type Projection struct { + Data_Projection_ +} + +func (_this Projection) Get_() Data_Projection_ { + return _this.Data_Projection_ +} + +type Data_Projection_ interface { + isProjection() +} + +type CompanionStruct_Projection_ struct { +} + +var Companion_Projection_ = CompanionStruct_Projection_{} + +type Projection_Projection struct { + ProjectionType m_Wrappers.Option + NonKeyAttributes m_Wrappers.Option +} + +func (Projection_Projection) isProjection() {} + +func (CompanionStruct_Projection_) Create_Projection_(ProjectionType m_Wrappers.Option, NonKeyAttributes m_Wrappers.Option) Projection { + return Projection{Projection_Projection{ProjectionType, NonKeyAttributes}} +} + +func (_this Projection) Is_Projection() bool { + _, ok := _this.Get_().(Projection_Projection) + return ok +} + +func (CompanionStruct_Projection_) Default() Projection { + return Companion_Projection_.Create_Projection_(m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this Projection) Dtor_ProjectionType() m_Wrappers.Option { + return _this.Get_().(Projection_Projection).ProjectionType +} + +func (_this Projection) Dtor_NonKeyAttributes() m_Wrappers.Option { + return _this.Get_().(Projection_Projection).NonKeyAttributes +} + +func (_this Projection) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case Projection_Projection: + { + return "ComAmazonawsDynamodbTypes.Projection.Projection" + "(" + _dafny.String(data.ProjectionType) + ", " + _dafny.String(data.NonKeyAttributes) + ")" + } + default: + { + return "" + } + } +} + +func (_this Projection) Equals(other Projection) bool { + switch data1 := _this.Get_().(type) { + case Projection_Projection: + { + data2, ok := other.Get_().(Projection_Projection) + return ok && data1.ProjectionType.Equals(data2.ProjectionType) && data1.NonKeyAttributes.Equals(data2.NonKeyAttributes) + } + default: + { + return false // unexpected + } + } +} + +func (_this Projection) EqualsGeneric(other interface{}) bool { + typed, ok := other.(Projection) + return ok && _this.Equals(typed) +} + +func Type_Projection_() _dafny.TypeDescriptor { + return type_Projection_{} +} + +type type_Projection_ struct { +} + +func (_this type_Projection_) Default() interface{} { + return Companion_Projection_.Default() +} + +func (_this type_Projection_) String() string { + return "ComAmazonawsDynamodbTypes.Projection" +} +func (_this Projection) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = Projection{} + +// End of datatype Projection + +// Definition of datatype ProjectionType +type ProjectionType struct { + Data_ProjectionType_ +} + +func (_this ProjectionType) Get_() Data_ProjectionType_ { + return _this.Data_ProjectionType_ +} + +type Data_ProjectionType_ interface { + isProjectionType() +} + +type CompanionStruct_ProjectionType_ struct { +} + +var Companion_ProjectionType_ = CompanionStruct_ProjectionType_{} + +type ProjectionType_ALL struct { +} + +func (ProjectionType_ALL) isProjectionType() {} + +func (CompanionStruct_ProjectionType_) Create_ALL_() ProjectionType { + return ProjectionType{ProjectionType_ALL{}} +} + +func (_this ProjectionType) Is_ALL() bool { + _, ok := _this.Get_().(ProjectionType_ALL) + return ok +} + +type ProjectionType_KEYS__ONLY struct { +} + +func (ProjectionType_KEYS__ONLY) isProjectionType() {} + +func (CompanionStruct_ProjectionType_) Create_KEYS__ONLY_() ProjectionType { + return ProjectionType{ProjectionType_KEYS__ONLY{}} +} + +func (_this ProjectionType) Is_KEYS__ONLY() bool { + _, ok := _this.Get_().(ProjectionType_KEYS__ONLY) + return ok +} + +type ProjectionType_INCLUDE struct { +} + +func (ProjectionType_INCLUDE) isProjectionType() {} + +func (CompanionStruct_ProjectionType_) Create_INCLUDE_() ProjectionType { + return ProjectionType{ProjectionType_INCLUDE{}} +} + +func (_this ProjectionType) Is_INCLUDE() bool { + _, ok := _this.Get_().(ProjectionType_INCLUDE) + return ok +} + +func (CompanionStruct_ProjectionType_) Default() ProjectionType { + return Companion_ProjectionType_.Create_ALL_() +} + +func (_ CompanionStruct_ProjectionType_) AllSingletonConstructors() _dafny.Iterator { + i := -1 + return func() (interface{}, bool) { + i++ + switch i { + case 0: + return Companion_ProjectionType_.Create_ALL_(), true + case 1: + return Companion_ProjectionType_.Create_KEYS__ONLY_(), true + case 2: + return Companion_ProjectionType_.Create_INCLUDE_(), true + default: + return ProjectionType{}, false + } + } +} + +func (_this ProjectionType) String() string { + switch _this.Get_().(type) { + case nil: + return "null" + case ProjectionType_ALL: + { + return "ComAmazonawsDynamodbTypes.ProjectionType.ALL" + } + case ProjectionType_KEYS__ONLY: + { + return "ComAmazonawsDynamodbTypes.ProjectionType.KEYS_ONLY" + } + case ProjectionType_INCLUDE: + { + return "ComAmazonawsDynamodbTypes.ProjectionType.INCLUDE" + } + default: + { + return "" + } + } +} + +func (_this ProjectionType) Equals(other ProjectionType) bool { + switch _this.Get_().(type) { + case ProjectionType_ALL: + { + _, ok := other.Get_().(ProjectionType_ALL) + return ok + } + case ProjectionType_KEYS__ONLY: + { + _, ok := other.Get_().(ProjectionType_KEYS__ONLY) + return ok + } + case ProjectionType_INCLUDE: + { + _, ok := other.Get_().(ProjectionType_INCLUDE) + return ok + } + default: + { + return false // unexpected + } + } +} + +func (_this ProjectionType) EqualsGeneric(other interface{}) bool { + typed, ok := other.(ProjectionType) + return ok && _this.Equals(typed) +} + +func Type_ProjectionType_() _dafny.TypeDescriptor { + return type_ProjectionType_{} +} + +type type_ProjectionType_ struct { +} + +func (_this type_ProjectionType_) Default() interface{} { + return Companion_ProjectionType_.Default() +} + +func (_this type_ProjectionType_) String() string { + return "ComAmazonawsDynamodbTypes.ProjectionType" +} +func (_this ProjectionType) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = ProjectionType{} + +// End of datatype ProjectionType + +// Definition of datatype ProvisionedThroughput +type ProvisionedThroughput struct { + Data_ProvisionedThroughput_ +} + +func (_this ProvisionedThroughput) Get_() Data_ProvisionedThroughput_ { + return _this.Data_ProvisionedThroughput_ +} + +type Data_ProvisionedThroughput_ interface { + isProvisionedThroughput() +} + +type CompanionStruct_ProvisionedThroughput_ struct { +} + +var Companion_ProvisionedThroughput_ = CompanionStruct_ProvisionedThroughput_{} + +type ProvisionedThroughput_ProvisionedThroughput struct { + ReadCapacityUnits int64 + WriteCapacityUnits int64 +} + +func (ProvisionedThroughput_ProvisionedThroughput) isProvisionedThroughput() {} + +func (CompanionStruct_ProvisionedThroughput_) Create_ProvisionedThroughput_(ReadCapacityUnits int64, WriteCapacityUnits int64) ProvisionedThroughput { + return ProvisionedThroughput{ProvisionedThroughput_ProvisionedThroughput{ReadCapacityUnits, WriteCapacityUnits}} +} + +func (_this ProvisionedThroughput) Is_ProvisionedThroughput() bool { + _, ok := _this.Get_().(ProvisionedThroughput_ProvisionedThroughput) + return ok +} + +func (CompanionStruct_ProvisionedThroughput_) Default() ProvisionedThroughput { + return Companion_ProvisionedThroughput_.Create_ProvisionedThroughput_(int64(0), int64(0)) +} + +func (_this ProvisionedThroughput) Dtor_ReadCapacityUnits() int64 { + return _this.Get_().(ProvisionedThroughput_ProvisionedThroughput).ReadCapacityUnits +} + +func (_this ProvisionedThroughput) Dtor_WriteCapacityUnits() int64 { + return _this.Get_().(ProvisionedThroughput_ProvisionedThroughput).WriteCapacityUnits +} + +func (_this ProvisionedThroughput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case ProvisionedThroughput_ProvisionedThroughput: + { + return "ComAmazonawsDynamodbTypes.ProvisionedThroughput.ProvisionedThroughput" + "(" + _dafny.String(data.ReadCapacityUnits) + ", " + _dafny.String(data.WriteCapacityUnits) + ")" + } + default: + { + return "" + } + } +} + +func (_this ProvisionedThroughput) Equals(other ProvisionedThroughput) bool { + switch data1 := _this.Get_().(type) { + case ProvisionedThroughput_ProvisionedThroughput: + { + data2, ok := other.Get_().(ProvisionedThroughput_ProvisionedThroughput) + return ok && data1.ReadCapacityUnits == data2.ReadCapacityUnits && data1.WriteCapacityUnits == data2.WriteCapacityUnits + } + default: + { + return false // unexpected + } + } +} + +func (_this ProvisionedThroughput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(ProvisionedThroughput) + return ok && _this.Equals(typed) +} + +func Type_ProvisionedThroughput_() _dafny.TypeDescriptor { + return type_ProvisionedThroughput_{} +} + +type type_ProvisionedThroughput_ struct { +} + +func (_this type_ProvisionedThroughput_) Default() interface{} { + return Companion_ProvisionedThroughput_.Default() +} + +func (_this type_ProvisionedThroughput_) String() string { + return "ComAmazonawsDynamodbTypes.ProvisionedThroughput" +} +func (_this ProvisionedThroughput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = ProvisionedThroughput{} + +// End of datatype ProvisionedThroughput + +// Definition of datatype ProvisionedThroughputDescription +type ProvisionedThroughputDescription struct { + Data_ProvisionedThroughputDescription_ +} + +func (_this ProvisionedThroughputDescription) Get_() Data_ProvisionedThroughputDescription_ { + return _this.Data_ProvisionedThroughputDescription_ +} + +type Data_ProvisionedThroughputDescription_ interface { + isProvisionedThroughputDescription() +} + +type CompanionStruct_ProvisionedThroughputDescription_ struct { +} + +var Companion_ProvisionedThroughputDescription_ = CompanionStruct_ProvisionedThroughputDescription_{} + +type ProvisionedThroughputDescription_ProvisionedThroughputDescription struct { + LastIncreaseDateTime m_Wrappers.Option + LastDecreaseDateTime m_Wrappers.Option + NumberOfDecreasesToday m_Wrappers.Option + ReadCapacityUnits m_Wrappers.Option + WriteCapacityUnits m_Wrappers.Option +} + +func (ProvisionedThroughputDescription_ProvisionedThroughputDescription) isProvisionedThroughputDescription() { +} + +func (CompanionStruct_ProvisionedThroughputDescription_) Create_ProvisionedThroughputDescription_(LastIncreaseDateTime m_Wrappers.Option, LastDecreaseDateTime m_Wrappers.Option, NumberOfDecreasesToday m_Wrappers.Option, ReadCapacityUnits m_Wrappers.Option, WriteCapacityUnits m_Wrappers.Option) ProvisionedThroughputDescription { + return ProvisionedThroughputDescription{ProvisionedThroughputDescription_ProvisionedThroughputDescription{LastIncreaseDateTime, LastDecreaseDateTime, NumberOfDecreasesToday, ReadCapacityUnits, WriteCapacityUnits}} +} + +func (_this ProvisionedThroughputDescription) Is_ProvisionedThroughputDescription() bool { + _, ok := _this.Get_().(ProvisionedThroughputDescription_ProvisionedThroughputDescription) + return ok +} + +func (CompanionStruct_ProvisionedThroughputDescription_) Default() ProvisionedThroughputDescription { + return Companion_ProvisionedThroughputDescription_.Create_ProvisionedThroughputDescription_(m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this ProvisionedThroughputDescription) Dtor_LastIncreaseDateTime() m_Wrappers.Option { + return _this.Get_().(ProvisionedThroughputDescription_ProvisionedThroughputDescription).LastIncreaseDateTime +} + +func (_this ProvisionedThroughputDescription) Dtor_LastDecreaseDateTime() m_Wrappers.Option { + return _this.Get_().(ProvisionedThroughputDescription_ProvisionedThroughputDescription).LastDecreaseDateTime +} + +func (_this ProvisionedThroughputDescription) Dtor_NumberOfDecreasesToday() m_Wrappers.Option { + return _this.Get_().(ProvisionedThroughputDescription_ProvisionedThroughputDescription).NumberOfDecreasesToday +} + +func (_this ProvisionedThroughputDescription) Dtor_ReadCapacityUnits() m_Wrappers.Option { + return _this.Get_().(ProvisionedThroughputDescription_ProvisionedThroughputDescription).ReadCapacityUnits +} + +func (_this ProvisionedThroughputDescription) Dtor_WriteCapacityUnits() m_Wrappers.Option { + return _this.Get_().(ProvisionedThroughputDescription_ProvisionedThroughputDescription).WriteCapacityUnits +} + +func (_this ProvisionedThroughputDescription) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case ProvisionedThroughputDescription_ProvisionedThroughputDescription: + { + return "ComAmazonawsDynamodbTypes.ProvisionedThroughputDescription.ProvisionedThroughputDescription" + "(" + _dafny.String(data.LastIncreaseDateTime) + ", " + _dafny.String(data.LastDecreaseDateTime) + ", " + _dafny.String(data.NumberOfDecreasesToday) + ", " + _dafny.String(data.ReadCapacityUnits) + ", " + _dafny.String(data.WriteCapacityUnits) + ")" + } + default: + { + return "" + } + } +} + +func (_this ProvisionedThroughputDescription) Equals(other ProvisionedThroughputDescription) bool { + switch data1 := _this.Get_().(type) { + case ProvisionedThroughputDescription_ProvisionedThroughputDescription: + { + data2, ok := other.Get_().(ProvisionedThroughputDescription_ProvisionedThroughputDescription) + return ok && data1.LastIncreaseDateTime.Equals(data2.LastIncreaseDateTime) && data1.LastDecreaseDateTime.Equals(data2.LastDecreaseDateTime) && data1.NumberOfDecreasesToday.Equals(data2.NumberOfDecreasesToday) && data1.ReadCapacityUnits.Equals(data2.ReadCapacityUnits) && data1.WriteCapacityUnits.Equals(data2.WriteCapacityUnits) + } + default: + { + return false // unexpected + } + } +} + +func (_this ProvisionedThroughputDescription) EqualsGeneric(other interface{}) bool { + typed, ok := other.(ProvisionedThroughputDescription) + return ok && _this.Equals(typed) +} + +func Type_ProvisionedThroughputDescription_() _dafny.TypeDescriptor { + return type_ProvisionedThroughputDescription_{} +} + +type type_ProvisionedThroughputDescription_ struct { +} + +func (_this type_ProvisionedThroughputDescription_) Default() interface{} { + return Companion_ProvisionedThroughputDescription_.Default() +} + +func (_this type_ProvisionedThroughputDescription_) String() string { + return "ComAmazonawsDynamodbTypes.ProvisionedThroughputDescription" +} +func (_this ProvisionedThroughputDescription) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = ProvisionedThroughputDescription{} + +// End of datatype ProvisionedThroughputDescription + +// Definition of datatype ProvisionedThroughputOverride +type ProvisionedThroughputOverride struct { + Data_ProvisionedThroughputOverride_ +} + +func (_this ProvisionedThroughputOverride) Get_() Data_ProvisionedThroughputOverride_ { + return _this.Data_ProvisionedThroughputOverride_ +} + +type Data_ProvisionedThroughputOverride_ interface { + isProvisionedThroughputOverride() +} + +type CompanionStruct_ProvisionedThroughputOverride_ struct { +} + +var Companion_ProvisionedThroughputOverride_ = CompanionStruct_ProvisionedThroughputOverride_{} + +type ProvisionedThroughputOverride_ProvisionedThroughputOverride struct { + ReadCapacityUnits m_Wrappers.Option +} + +func (ProvisionedThroughputOverride_ProvisionedThroughputOverride) isProvisionedThroughputOverride() { +} + +func (CompanionStruct_ProvisionedThroughputOverride_) Create_ProvisionedThroughputOverride_(ReadCapacityUnits m_Wrappers.Option) ProvisionedThroughputOverride { + return ProvisionedThroughputOverride{ProvisionedThroughputOverride_ProvisionedThroughputOverride{ReadCapacityUnits}} +} + +func (_this ProvisionedThroughputOverride) Is_ProvisionedThroughputOverride() bool { + _, ok := _this.Get_().(ProvisionedThroughputOverride_ProvisionedThroughputOverride) + return ok +} + +func (CompanionStruct_ProvisionedThroughputOverride_) Default() ProvisionedThroughputOverride { + return Companion_ProvisionedThroughputOverride_.Create_ProvisionedThroughputOverride_(m_Wrappers.Companion_Option_.Default()) +} + +func (_this ProvisionedThroughputOverride) Dtor_ReadCapacityUnits() m_Wrappers.Option { + return _this.Get_().(ProvisionedThroughputOverride_ProvisionedThroughputOverride).ReadCapacityUnits +} + +func (_this ProvisionedThroughputOverride) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case ProvisionedThroughputOverride_ProvisionedThroughputOverride: + { + return "ComAmazonawsDynamodbTypes.ProvisionedThroughputOverride.ProvisionedThroughputOverride" + "(" + _dafny.String(data.ReadCapacityUnits) + ")" + } + default: + { + return "" + } + } +} + +func (_this ProvisionedThroughputOverride) Equals(other ProvisionedThroughputOverride) bool { + switch data1 := _this.Get_().(type) { + case ProvisionedThroughputOverride_ProvisionedThroughputOverride: + { + data2, ok := other.Get_().(ProvisionedThroughputOverride_ProvisionedThroughputOverride) + return ok && data1.ReadCapacityUnits.Equals(data2.ReadCapacityUnits) + } + default: + { + return false // unexpected + } + } +} + +func (_this ProvisionedThroughputOverride) EqualsGeneric(other interface{}) bool { + typed, ok := other.(ProvisionedThroughputOverride) + return ok && _this.Equals(typed) +} + +func Type_ProvisionedThroughputOverride_() _dafny.TypeDescriptor { + return type_ProvisionedThroughputOverride_{} +} + +type type_ProvisionedThroughputOverride_ struct { +} + +func (_this type_ProvisionedThroughputOverride_) Default() interface{} { + return Companion_ProvisionedThroughputOverride_.Default() +} + +func (_this type_ProvisionedThroughputOverride_) String() string { + return "ComAmazonawsDynamodbTypes.ProvisionedThroughputOverride" +} +func (_this ProvisionedThroughputOverride) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = ProvisionedThroughputOverride{} + +// End of datatype ProvisionedThroughputOverride + +// Definition of datatype Put +type Put struct { + Data_Put_ +} + +func (_this Put) Get_() Data_Put_ { + return _this.Data_Put_ +} + +type Data_Put_ interface { + isPut() +} + +type CompanionStruct_Put_ struct { +} + +var Companion_Put_ = CompanionStruct_Put_{} + +type Put_Put struct { + Item _dafny.Map + TableName _dafny.Sequence + ConditionExpression m_Wrappers.Option + ExpressionAttributeNames m_Wrappers.Option + ExpressionAttributeValues m_Wrappers.Option + ReturnValuesOnConditionCheckFailure m_Wrappers.Option +} + +func (Put_Put) isPut() {} + +func (CompanionStruct_Put_) Create_Put_(Item _dafny.Map, TableName _dafny.Sequence, ConditionExpression m_Wrappers.Option, ExpressionAttributeNames m_Wrappers.Option, ExpressionAttributeValues m_Wrappers.Option, ReturnValuesOnConditionCheckFailure m_Wrappers.Option) Put { + return Put{Put_Put{Item, TableName, ConditionExpression, ExpressionAttributeNames, ExpressionAttributeValues, ReturnValuesOnConditionCheckFailure}} +} + +func (_this Put) Is_Put() bool { + _, ok := _this.Get_().(Put_Put) + return ok +} + +func (CompanionStruct_Put_) Default() Put { + return Companion_Put_.Create_Put_(_dafny.EmptyMap, _dafny.EmptySeq.SetString(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this Put) Dtor_Item() _dafny.Map { + return _this.Get_().(Put_Put).Item +} + +func (_this Put) Dtor_TableName() _dafny.Sequence { + return _this.Get_().(Put_Put).TableName +} + +func (_this Put) Dtor_ConditionExpression() m_Wrappers.Option { + return _this.Get_().(Put_Put).ConditionExpression +} + +func (_this Put) Dtor_ExpressionAttributeNames() m_Wrappers.Option { + return _this.Get_().(Put_Put).ExpressionAttributeNames +} + +func (_this Put) Dtor_ExpressionAttributeValues() m_Wrappers.Option { + return _this.Get_().(Put_Put).ExpressionAttributeValues +} + +func (_this Put) Dtor_ReturnValuesOnConditionCheckFailure() m_Wrappers.Option { + return _this.Get_().(Put_Put).ReturnValuesOnConditionCheckFailure +} + +func (_this Put) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case Put_Put: + { + return "ComAmazonawsDynamodbTypes.Put.Put" + "(" + _dafny.String(data.Item) + ", " + _dafny.String(data.TableName) + ", " + _dafny.String(data.ConditionExpression) + ", " + _dafny.String(data.ExpressionAttributeNames) + ", " + _dafny.String(data.ExpressionAttributeValues) + ", " + _dafny.String(data.ReturnValuesOnConditionCheckFailure) + ")" + } + default: + { + return "" + } + } +} + +func (_this Put) Equals(other Put) bool { + switch data1 := _this.Get_().(type) { + case Put_Put: + { + data2, ok := other.Get_().(Put_Put) + return ok && data1.Item.Equals(data2.Item) && data1.TableName.Equals(data2.TableName) && data1.ConditionExpression.Equals(data2.ConditionExpression) && data1.ExpressionAttributeNames.Equals(data2.ExpressionAttributeNames) && data1.ExpressionAttributeValues.Equals(data2.ExpressionAttributeValues) && data1.ReturnValuesOnConditionCheckFailure.Equals(data2.ReturnValuesOnConditionCheckFailure) + } + default: + { + return false // unexpected + } + } +} + +func (_this Put) EqualsGeneric(other interface{}) bool { + typed, ok := other.(Put) + return ok && _this.Equals(typed) +} + +func Type_Put_() _dafny.TypeDescriptor { + return type_Put_{} +} + +type type_Put_ struct { +} + +func (_this type_Put_) Default() interface{} { + return Companion_Put_.Default() +} + +func (_this type_Put_) String() string { + return "ComAmazonawsDynamodbTypes.Put" +} +func (_this Put) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = Put{} + +// End of datatype Put + +// Definition of datatype PutItemInput +type PutItemInput struct { + Data_PutItemInput_ +} + +func (_this PutItemInput) Get_() Data_PutItemInput_ { + return _this.Data_PutItemInput_ +} + +type Data_PutItemInput_ interface { + isPutItemInput() +} + +type CompanionStruct_PutItemInput_ struct { +} + +var Companion_PutItemInput_ = CompanionStruct_PutItemInput_{} + +type PutItemInput_PutItemInput struct { + TableName _dafny.Sequence + Item _dafny.Map + Expected m_Wrappers.Option + ReturnValues m_Wrappers.Option + ReturnConsumedCapacity m_Wrappers.Option + ReturnItemCollectionMetrics m_Wrappers.Option + ConditionalOperator m_Wrappers.Option + ConditionExpression m_Wrappers.Option + ExpressionAttributeNames m_Wrappers.Option + ExpressionAttributeValues m_Wrappers.Option + ReturnValuesOnConditionCheckFailure m_Wrappers.Option +} + +func (PutItemInput_PutItemInput) isPutItemInput() {} + +func (CompanionStruct_PutItemInput_) Create_PutItemInput_(TableName _dafny.Sequence, Item _dafny.Map, Expected m_Wrappers.Option, ReturnValues m_Wrappers.Option, ReturnConsumedCapacity m_Wrappers.Option, ReturnItemCollectionMetrics m_Wrappers.Option, ConditionalOperator m_Wrappers.Option, ConditionExpression m_Wrappers.Option, ExpressionAttributeNames m_Wrappers.Option, ExpressionAttributeValues m_Wrappers.Option, ReturnValuesOnConditionCheckFailure m_Wrappers.Option) PutItemInput { + return PutItemInput{PutItemInput_PutItemInput{TableName, Item, Expected, ReturnValues, ReturnConsumedCapacity, ReturnItemCollectionMetrics, ConditionalOperator, ConditionExpression, ExpressionAttributeNames, ExpressionAttributeValues, ReturnValuesOnConditionCheckFailure}} +} + +func (_this PutItemInput) Is_PutItemInput() bool { + _, ok := _this.Get_().(PutItemInput_PutItemInput) + return ok +} + +func (CompanionStruct_PutItemInput_) Default() PutItemInput { + return Companion_PutItemInput_.Create_PutItemInput_(_dafny.EmptySeq.SetString(), _dafny.EmptyMap, m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this PutItemInput) Dtor_TableName() _dafny.Sequence { + return _this.Get_().(PutItemInput_PutItemInput).TableName +} + +func (_this PutItemInput) Dtor_Item() _dafny.Map { + return _this.Get_().(PutItemInput_PutItemInput).Item +} + +func (_this PutItemInput) Dtor_Expected() m_Wrappers.Option { + return _this.Get_().(PutItemInput_PutItemInput).Expected +} + +func (_this PutItemInput) Dtor_ReturnValues() m_Wrappers.Option { + return _this.Get_().(PutItemInput_PutItemInput).ReturnValues +} + +func (_this PutItemInput) Dtor_ReturnConsumedCapacity() m_Wrappers.Option { + return _this.Get_().(PutItemInput_PutItemInput).ReturnConsumedCapacity +} + +func (_this PutItemInput) Dtor_ReturnItemCollectionMetrics() m_Wrappers.Option { + return _this.Get_().(PutItemInput_PutItemInput).ReturnItemCollectionMetrics +} + +func (_this PutItemInput) Dtor_ConditionalOperator() m_Wrappers.Option { + return _this.Get_().(PutItemInput_PutItemInput).ConditionalOperator +} + +func (_this PutItemInput) Dtor_ConditionExpression() m_Wrappers.Option { + return _this.Get_().(PutItemInput_PutItemInput).ConditionExpression +} + +func (_this PutItemInput) Dtor_ExpressionAttributeNames() m_Wrappers.Option { + return _this.Get_().(PutItemInput_PutItemInput).ExpressionAttributeNames +} + +func (_this PutItemInput) Dtor_ExpressionAttributeValues() m_Wrappers.Option { + return _this.Get_().(PutItemInput_PutItemInput).ExpressionAttributeValues +} + +func (_this PutItemInput) Dtor_ReturnValuesOnConditionCheckFailure() m_Wrappers.Option { + return _this.Get_().(PutItemInput_PutItemInput).ReturnValuesOnConditionCheckFailure +} + +func (_this PutItemInput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case PutItemInput_PutItemInput: + { + return "ComAmazonawsDynamodbTypes.PutItemInput.PutItemInput" + "(" + _dafny.String(data.TableName) + ", " + _dafny.String(data.Item) + ", " + _dafny.String(data.Expected) + ", " + _dafny.String(data.ReturnValues) + ", " + _dafny.String(data.ReturnConsumedCapacity) + ", " + _dafny.String(data.ReturnItemCollectionMetrics) + ", " + _dafny.String(data.ConditionalOperator) + ", " + _dafny.String(data.ConditionExpression) + ", " + _dafny.String(data.ExpressionAttributeNames) + ", " + _dafny.String(data.ExpressionAttributeValues) + ", " + _dafny.String(data.ReturnValuesOnConditionCheckFailure) + ")" + } + default: + { + return "" + } + } +} + +func (_this PutItemInput) Equals(other PutItemInput) bool { + switch data1 := _this.Get_().(type) { + case PutItemInput_PutItemInput: + { + data2, ok := other.Get_().(PutItemInput_PutItemInput) + return ok && data1.TableName.Equals(data2.TableName) && data1.Item.Equals(data2.Item) && data1.Expected.Equals(data2.Expected) && data1.ReturnValues.Equals(data2.ReturnValues) && data1.ReturnConsumedCapacity.Equals(data2.ReturnConsumedCapacity) && data1.ReturnItemCollectionMetrics.Equals(data2.ReturnItemCollectionMetrics) && data1.ConditionalOperator.Equals(data2.ConditionalOperator) && data1.ConditionExpression.Equals(data2.ConditionExpression) && data1.ExpressionAttributeNames.Equals(data2.ExpressionAttributeNames) && data1.ExpressionAttributeValues.Equals(data2.ExpressionAttributeValues) && data1.ReturnValuesOnConditionCheckFailure.Equals(data2.ReturnValuesOnConditionCheckFailure) + } + default: + { + return false // unexpected + } + } +} + +func (_this PutItemInput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(PutItemInput) + return ok && _this.Equals(typed) +} + +func Type_PutItemInput_() _dafny.TypeDescriptor { + return type_PutItemInput_{} +} + +type type_PutItemInput_ struct { +} + +func (_this type_PutItemInput_) Default() interface{} { + return Companion_PutItemInput_.Default() +} + +func (_this type_PutItemInput_) String() string { + return "ComAmazonawsDynamodbTypes.PutItemInput" +} +func (_this PutItemInput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = PutItemInput{} + +// End of datatype PutItemInput + +// Definition of datatype PutItemOutput +type PutItemOutput struct { + Data_PutItemOutput_ +} + +func (_this PutItemOutput) Get_() Data_PutItemOutput_ { + return _this.Data_PutItemOutput_ +} + +type Data_PutItemOutput_ interface { + isPutItemOutput() +} + +type CompanionStruct_PutItemOutput_ struct { +} + +var Companion_PutItemOutput_ = CompanionStruct_PutItemOutput_{} + +type PutItemOutput_PutItemOutput struct { + Attributes m_Wrappers.Option + ConsumedCapacity m_Wrappers.Option + ItemCollectionMetrics m_Wrappers.Option +} + +func (PutItemOutput_PutItemOutput) isPutItemOutput() {} + +func (CompanionStruct_PutItemOutput_) Create_PutItemOutput_(Attributes m_Wrappers.Option, ConsumedCapacity m_Wrappers.Option, ItemCollectionMetrics m_Wrappers.Option) PutItemOutput { + return PutItemOutput{PutItemOutput_PutItemOutput{Attributes, ConsumedCapacity, ItemCollectionMetrics}} +} + +func (_this PutItemOutput) Is_PutItemOutput() bool { + _, ok := _this.Get_().(PutItemOutput_PutItemOutput) + return ok +} + +func (CompanionStruct_PutItemOutput_) Default() PutItemOutput { + return Companion_PutItemOutput_.Create_PutItemOutput_(m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this PutItemOutput) Dtor_Attributes() m_Wrappers.Option { + return _this.Get_().(PutItemOutput_PutItemOutput).Attributes +} + +func (_this PutItemOutput) Dtor_ConsumedCapacity() m_Wrappers.Option { + return _this.Get_().(PutItemOutput_PutItemOutput).ConsumedCapacity +} + +func (_this PutItemOutput) Dtor_ItemCollectionMetrics() m_Wrappers.Option { + return _this.Get_().(PutItemOutput_PutItemOutput).ItemCollectionMetrics +} + +func (_this PutItemOutput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case PutItemOutput_PutItemOutput: + { + return "ComAmazonawsDynamodbTypes.PutItemOutput.PutItemOutput" + "(" + _dafny.String(data.Attributes) + ", " + _dafny.String(data.ConsumedCapacity) + ", " + _dafny.String(data.ItemCollectionMetrics) + ")" + } + default: + { + return "" + } + } +} + +func (_this PutItemOutput) Equals(other PutItemOutput) bool { + switch data1 := _this.Get_().(type) { + case PutItemOutput_PutItemOutput: + { + data2, ok := other.Get_().(PutItemOutput_PutItemOutput) + return ok && data1.Attributes.Equals(data2.Attributes) && data1.ConsumedCapacity.Equals(data2.ConsumedCapacity) && data1.ItemCollectionMetrics.Equals(data2.ItemCollectionMetrics) + } + default: + { + return false // unexpected + } + } +} + +func (_this PutItemOutput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(PutItemOutput) + return ok && _this.Equals(typed) +} + +func Type_PutItemOutput_() _dafny.TypeDescriptor { + return type_PutItemOutput_{} +} + +type type_PutItemOutput_ struct { +} + +func (_this type_PutItemOutput_) Default() interface{} { + return Companion_PutItemOutput_.Default() +} + +func (_this type_PutItemOutput_) String() string { + return "ComAmazonawsDynamodbTypes.PutItemOutput" +} +func (_this PutItemOutput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = PutItemOutput{} + +// End of datatype PutItemOutput + +// Definition of datatype PutRequest +type PutRequest struct { + Data_PutRequest_ +} + +func (_this PutRequest) Get_() Data_PutRequest_ { + return _this.Data_PutRequest_ +} + +type Data_PutRequest_ interface { + isPutRequest() +} + +type CompanionStruct_PutRequest_ struct { +} + +var Companion_PutRequest_ = CompanionStruct_PutRequest_{} + +type PutRequest_PutRequest struct { + Item _dafny.Map +} + +func (PutRequest_PutRequest) isPutRequest() {} + +func (CompanionStruct_PutRequest_) Create_PutRequest_(Item _dafny.Map) PutRequest { + return PutRequest{PutRequest_PutRequest{Item}} +} + +func (_this PutRequest) Is_PutRequest() bool { + _, ok := _this.Get_().(PutRequest_PutRequest) + return ok +} + +func (CompanionStruct_PutRequest_) Default() PutRequest { + return Companion_PutRequest_.Create_PutRequest_(_dafny.EmptyMap) +} + +func (_this PutRequest) Dtor_Item() _dafny.Map { + return _this.Get_().(PutRequest_PutRequest).Item +} + +func (_this PutRequest) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case PutRequest_PutRequest: + { + return "ComAmazonawsDynamodbTypes.PutRequest.PutRequest" + "(" + _dafny.String(data.Item) + ")" + } + default: + { + return "" + } + } +} + +func (_this PutRequest) Equals(other PutRequest) bool { + switch data1 := _this.Get_().(type) { + case PutRequest_PutRequest: + { + data2, ok := other.Get_().(PutRequest_PutRequest) + return ok && data1.Item.Equals(data2.Item) + } + default: + { + return false // unexpected + } + } +} + +func (_this PutRequest) EqualsGeneric(other interface{}) bool { + typed, ok := other.(PutRequest) + return ok && _this.Equals(typed) +} + +func Type_PutRequest_() _dafny.TypeDescriptor { + return type_PutRequest_{} +} + +type type_PutRequest_ struct { +} + +func (_this type_PutRequest_) Default() interface{} { + return Companion_PutRequest_.Default() +} + +func (_this type_PutRequest_) String() string { + return "ComAmazonawsDynamodbTypes.PutRequest" +} +func (_this PutRequest) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = PutRequest{} + +// End of datatype PutRequest + +// Definition of datatype PutResourcePolicyInput +type PutResourcePolicyInput struct { + Data_PutResourcePolicyInput_ +} + +func (_this PutResourcePolicyInput) Get_() Data_PutResourcePolicyInput_ { + return _this.Data_PutResourcePolicyInput_ +} + +type Data_PutResourcePolicyInput_ interface { + isPutResourcePolicyInput() +} + +type CompanionStruct_PutResourcePolicyInput_ struct { +} + +var Companion_PutResourcePolicyInput_ = CompanionStruct_PutResourcePolicyInput_{} + +type PutResourcePolicyInput_PutResourcePolicyInput struct { + ResourceArn _dafny.Sequence + Policy _dafny.Sequence + ExpectedRevisionId m_Wrappers.Option + ConfirmRemoveSelfResourceAccess m_Wrappers.Option +} + +func (PutResourcePolicyInput_PutResourcePolicyInput) isPutResourcePolicyInput() {} + +func (CompanionStruct_PutResourcePolicyInput_) Create_PutResourcePolicyInput_(ResourceArn _dafny.Sequence, Policy _dafny.Sequence, ExpectedRevisionId m_Wrappers.Option, ConfirmRemoveSelfResourceAccess m_Wrappers.Option) PutResourcePolicyInput { + return PutResourcePolicyInput{PutResourcePolicyInput_PutResourcePolicyInput{ResourceArn, Policy, ExpectedRevisionId, ConfirmRemoveSelfResourceAccess}} +} + +func (_this PutResourcePolicyInput) Is_PutResourcePolicyInput() bool { + _, ok := _this.Get_().(PutResourcePolicyInput_PutResourcePolicyInput) + return ok +} + +func (CompanionStruct_PutResourcePolicyInput_) Default() PutResourcePolicyInput { + return Companion_PutResourcePolicyInput_.Create_PutResourcePolicyInput_(_dafny.EmptySeq.SetString(), _dafny.EmptySeq.SetString(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this PutResourcePolicyInput) Dtor_ResourceArn() _dafny.Sequence { + return _this.Get_().(PutResourcePolicyInput_PutResourcePolicyInput).ResourceArn +} + +func (_this PutResourcePolicyInput) Dtor_Policy() _dafny.Sequence { + return _this.Get_().(PutResourcePolicyInput_PutResourcePolicyInput).Policy +} + +func (_this PutResourcePolicyInput) Dtor_ExpectedRevisionId() m_Wrappers.Option { + return _this.Get_().(PutResourcePolicyInput_PutResourcePolicyInput).ExpectedRevisionId +} + +func (_this PutResourcePolicyInput) Dtor_ConfirmRemoveSelfResourceAccess() m_Wrappers.Option { + return _this.Get_().(PutResourcePolicyInput_PutResourcePolicyInput).ConfirmRemoveSelfResourceAccess +} + +func (_this PutResourcePolicyInput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case PutResourcePolicyInput_PutResourcePolicyInput: + { + return "ComAmazonawsDynamodbTypes.PutResourcePolicyInput.PutResourcePolicyInput" + "(" + _dafny.String(data.ResourceArn) + ", " + _dafny.String(data.Policy) + ", " + _dafny.String(data.ExpectedRevisionId) + ", " + _dafny.String(data.ConfirmRemoveSelfResourceAccess) + ")" + } + default: + { + return "" + } + } +} + +func (_this PutResourcePolicyInput) Equals(other PutResourcePolicyInput) bool { + switch data1 := _this.Get_().(type) { + case PutResourcePolicyInput_PutResourcePolicyInput: + { + data2, ok := other.Get_().(PutResourcePolicyInput_PutResourcePolicyInput) + return ok && data1.ResourceArn.Equals(data2.ResourceArn) && data1.Policy.Equals(data2.Policy) && data1.ExpectedRevisionId.Equals(data2.ExpectedRevisionId) && data1.ConfirmRemoveSelfResourceAccess.Equals(data2.ConfirmRemoveSelfResourceAccess) + } + default: + { + return false // unexpected + } + } +} + +func (_this PutResourcePolicyInput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(PutResourcePolicyInput) + return ok && _this.Equals(typed) +} + +func Type_PutResourcePolicyInput_() _dafny.TypeDescriptor { + return type_PutResourcePolicyInput_{} +} + +type type_PutResourcePolicyInput_ struct { +} + +func (_this type_PutResourcePolicyInput_) Default() interface{} { + return Companion_PutResourcePolicyInput_.Default() +} + +func (_this type_PutResourcePolicyInput_) String() string { + return "ComAmazonawsDynamodbTypes.PutResourcePolicyInput" +} +func (_this PutResourcePolicyInput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = PutResourcePolicyInput{} + +// End of datatype PutResourcePolicyInput + +// Definition of datatype PutResourcePolicyOutput +type PutResourcePolicyOutput struct { + Data_PutResourcePolicyOutput_ +} + +func (_this PutResourcePolicyOutput) Get_() Data_PutResourcePolicyOutput_ { + return _this.Data_PutResourcePolicyOutput_ +} + +type Data_PutResourcePolicyOutput_ interface { + isPutResourcePolicyOutput() +} + +type CompanionStruct_PutResourcePolicyOutput_ struct { +} + +var Companion_PutResourcePolicyOutput_ = CompanionStruct_PutResourcePolicyOutput_{} + +type PutResourcePolicyOutput_PutResourcePolicyOutput struct { + RevisionId m_Wrappers.Option +} + +func (PutResourcePolicyOutput_PutResourcePolicyOutput) isPutResourcePolicyOutput() {} + +func (CompanionStruct_PutResourcePolicyOutput_) Create_PutResourcePolicyOutput_(RevisionId m_Wrappers.Option) PutResourcePolicyOutput { + return PutResourcePolicyOutput{PutResourcePolicyOutput_PutResourcePolicyOutput{RevisionId}} +} + +func (_this PutResourcePolicyOutput) Is_PutResourcePolicyOutput() bool { + _, ok := _this.Get_().(PutResourcePolicyOutput_PutResourcePolicyOutput) + return ok +} + +func (CompanionStruct_PutResourcePolicyOutput_) Default() PutResourcePolicyOutput { + return Companion_PutResourcePolicyOutput_.Create_PutResourcePolicyOutput_(m_Wrappers.Companion_Option_.Default()) +} + +func (_this PutResourcePolicyOutput) Dtor_RevisionId() m_Wrappers.Option { + return _this.Get_().(PutResourcePolicyOutput_PutResourcePolicyOutput).RevisionId +} + +func (_this PutResourcePolicyOutput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case PutResourcePolicyOutput_PutResourcePolicyOutput: + { + return "ComAmazonawsDynamodbTypes.PutResourcePolicyOutput.PutResourcePolicyOutput" + "(" + _dafny.String(data.RevisionId) + ")" + } + default: + { + return "" + } + } +} + +func (_this PutResourcePolicyOutput) Equals(other PutResourcePolicyOutput) bool { + switch data1 := _this.Get_().(type) { + case PutResourcePolicyOutput_PutResourcePolicyOutput: + { + data2, ok := other.Get_().(PutResourcePolicyOutput_PutResourcePolicyOutput) + return ok && data1.RevisionId.Equals(data2.RevisionId) + } + default: + { + return false // unexpected + } + } +} + +func (_this PutResourcePolicyOutput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(PutResourcePolicyOutput) + return ok && _this.Equals(typed) +} + +func Type_PutResourcePolicyOutput_() _dafny.TypeDescriptor { + return type_PutResourcePolicyOutput_{} +} + +type type_PutResourcePolicyOutput_ struct { +} + +func (_this type_PutResourcePolicyOutput_) Default() interface{} { + return Companion_PutResourcePolicyOutput_.Default() +} + +func (_this type_PutResourcePolicyOutput_) String() string { + return "ComAmazonawsDynamodbTypes.PutResourcePolicyOutput" +} +func (_this PutResourcePolicyOutput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = PutResourcePolicyOutput{} + +// End of datatype PutResourcePolicyOutput + +// Definition of datatype QueryInput +type QueryInput struct { + Data_QueryInput_ +} + +func (_this QueryInput) Get_() Data_QueryInput_ { + return _this.Data_QueryInput_ +} + +type Data_QueryInput_ interface { + isQueryInput() +} + +type CompanionStruct_QueryInput_ struct { +} + +var Companion_QueryInput_ = CompanionStruct_QueryInput_{} + +type QueryInput_QueryInput struct { + TableName _dafny.Sequence + IndexName m_Wrappers.Option + Select m_Wrappers.Option + AttributesToGet m_Wrappers.Option + Limit m_Wrappers.Option + ConsistentRead m_Wrappers.Option + KeyConditions m_Wrappers.Option + QueryFilter m_Wrappers.Option + ConditionalOperator m_Wrappers.Option + ScanIndexForward m_Wrappers.Option + ExclusiveStartKey m_Wrappers.Option + ReturnConsumedCapacity m_Wrappers.Option + ProjectionExpression m_Wrappers.Option + FilterExpression m_Wrappers.Option + KeyConditionExpression m_Wrappers.Option + ExpressionAttributeNames m_Wrappers.Option + ExpressionAttributeValues m_Wrappers.Option +} + +func (QueryInput_QueryInput) isQueryInput() {} + +func (CompanionStruct_QueryInput_) Create_QueryInput_(TableName _dafny.Sequence, IndexName m_Wrappers.Option, Select m_Wrappers.Option, AttributesToGet m_Wrappers.Option, Limit m_Wrappers.Option, ConsistentRead m_Wrappers.Option, KeyConditions m_Wrappers.Option, QueryFilter m_Wrappers.Option, ConditionalOperator m_Wrappers.Option, ScanIndexForward m_Wrappers.Option, ExclusiveStartKey m_Wrappers.Option, ReturnConsumedCapacity m_Wrappers.Option, ProjectionExpression m_Wrappers.Option, FilterExpression m_Wrappers.Option, KeyConditionExpression m_Wrappers.Option, ExpressionAttributeNames m_Wrappers.Option, ExpressionAttributeValues m_Wrappers.Option) QueryInput { + return QueryInput{QueryInput_QueryInput{TableName, IndexName, Select, AttributesToGet, Limit, ConsistentRead, KeyConditions, QueryFilter, ConditionalOperator, ScanIndexForward, ExclusiveStartKey, ReturnConsumedCapacity, ProjectionExpression, FilterExpression, KeyConditionExpression, ExpressionAttributeNames, ExpressionAttributeValues}} +} + +func (_this QueryInput) Is_QueryInput() bool { + _, ok := _this.Get_().(QueryInput_QueryInput) + return ok +} + +func (CompanionStruct_QueryInput_) Default() QueryInput { + return Companion_QueryInput_.Create_QueryInput_(_dafny.EmptySeq.SetString(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this QueryInput) Dtor_TableName() _dafny.Sequence { + return _this.Get_().(QueryInput_QueryInput).TableName +} + +func (_this QueryInput) Dtor_IndexName() m_Wrappers.Option { + return _this.Get_().(QueryInput_QueryInput).IndexName +} + +func (_this QueryInput) Dtor_Select() m_Wrappers.Option { + return _this.Get_().(QueryInput_QueryInput).Select +} + +func (_this QueryInput) Dtor_AttributesToGet() m_Wrappers.Option { + return _this.Get_().(QueryInput_QueryInput).AttributesToGet +} + +func (_this QueryInput) Dtor_Limit() m_Wrappers.Option { + return _this.Get_().(QueryInput_QueryInput).Limit +} + +func (_this QueryInput) Dtor_ConsistentRead() m_Wrappers.Option { + return _this.Get_().(QueryInput_QueryInput).ConsistentRead +} + +func (_this QueryInput) Dtor_KeyConditions() m_Wrappers.Option { + return _this.Get_().(QueryInput_QueryInput).KeyConditions +} + +func (_this QueryInput) Dtor_QueryFilter() m_Wrappers.Option { + return _this.Get_().(QueryInput_QueryInput).QueryFilter +} + +func (_this QueryInput) Dtor_ConditionalOperator() m_Wrappers.Option { + return _this.Get_().(QueryInput_QueryInput).ConditionalOperator +} + +func (_this QueryInput) Dtor_ScanIndexForward() m_Wrappers.Option { + return _this.Get_().(QueryInput_QueryInput).ScanIndexForward +} + +func (_this QueryInput) Dtor_ExclusiveStartKey() m_Wrappers.Option { + return _this.Get_().(QueryInput_QueryInput).ExclusiveStartKey +} + +func (_this QueryInput) Dtor_ReturnConsumedCapacity() m_Wrappers.Option { + return _this.Get_().(QueryInput_QueryInput).ReturnConsumedCapacity +} + +func (_this QueryInput) Dtor_ProjectionExpression() m_Wrappers.Option { + return _this.Get_().(QueryInput_QueryInput).ProjectionExpression +} + +func (_this QueryInput) Dtor_FilterExpression() m_Wrappers.Option { + return _this.Get_().(QueryInput_QueryInput).FilterExpression +} + +func (_this QueryInput) Dtor_KeyConditionExpression() m_Wrappers.Option { + return _this.Get_().(QueryInput_QueryInput).KeyConditionExpression +} + +func (_this QueryInput) Dtor_ExpressionAttributeNames() m_Wrappers.Option { + return _this.Get_().(QueryInput_QueryInput).ExpressionAttributeNames +} + +func (_this QueryInput) Dtor_ExpressionAttributeValues() m_Wrappers.Option { + return _this.Get_().(QueryInput_QueryInput).ExpressionAttributeValues +} + +func (_this QueryInput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case QueryInput_QueryInput: + { + return "ComAmazonawsDynamodbTypes.QueryInput.QueryInput" + "(" + _dafny.String(data.TableName) + ", " + _dafny.String(data.IndexName) + ", " + _dafny.String(data.Select) + ", " + _dafny.String(data.AttributesToGet) + ", " + _dafny.String(data.Limit) + ", " + _dafny.String(data.ConsistentRead) + ", " + _dafny.String(data.KeyConditions) + ", " + _dafny.String(data.QueryFilter) + ", " + _dafny.String(data.ConditionalOperator) + ", " + _dafny.String(data.ScanIndexForward) + ", " + _dafny.String(data.ExclusiveStartKey) + ", " + _dafny.String(data.ReturnConsumedCapacity) + ", " + _dafny.String(data.ProjectionExpression) + ", " + _dafny.String(data.FilterExpression) + ", " + _dafny.String(data.KeyConditionExpression) + ", " + _dafny.String(data.ExpressionAttributeNames) + ", " + _dafny.String(data.ExpressionAttributeValues) + ")" + } + default: + { + return "" + } + } +} + +func (_this QueryInput) Equals(other QueryInput) bool { + switch data1 := _this.Get_().(type) { + case QueryInput_QueryInput: + { + data2, ok := other.Get_().(QueryInput_QueryInput) + return ok && data1.TableName.Equals(data2.TableName) && data1.IndexName.Equals(data2.IndexName) && data1.Select.Equals(data2.Select) && data1.AttributesToGet.Equals(data2.AttributesToGet) && data1.Limit.Equals(data2.Limit) && data1.ConsistentRead.Equals(data2.ConsistentRead) && data1.KeyConditions.Equals(data2.KeyConditions) && data1.QueryFilter.Equals(data2.QueryFilter) && data1.ConditionalOperator.Equals(data2.ConditionalOperator) && data1.ScanIndexForward.Equals(data2.ScanIndexForward) && data1.ExclusiveStartKey.Equals(data2.ExclusiveStartKey) && data1.ReturnConsumedCapacity.Equals(data2.ReturnConsumedCapacity) && data1.ProjectionExpression.Equals(data2.ProjectionExpression) && data1.FilterExpression.Equals(data2.FilterExpression) && data1.KeyConditionExpression.Equals(data2.KeyConditionExpression) && data1.ExpressionAttributeNames.Equals(data2.ExpressionAttributeNames) && data1.ExpressionAttributeValues.Equals(data2.ExpressionAttributeValues) + } + default: + { + return false // unexpected + } + } +} + +func (_this QueryInput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(QueryInput) + return ok && _this.Equals(typed) +} + +func Type_QueryInput_() _dafny.TypeDescriptor { + return type_QueryInput_{} +} + +type type_QueryInput_ struct { +} + +func (_this type_QueryInput_) Default() interface{} { + return Companion_QueryInput_.Default() +} + +func (_this type_QueryInput_) String() string { + return "ComAmazonawsDynamodbTypes.QueryInput" +} +func (_this QueryInput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = QueryInput{} + +// End of datatype QueryInput + +// Definition of datatype QueryOutput +type QueryOutput struct { + Data_QueryOutput_ +} + +func (_this QueryOutput) Get_() Data_QueryOutput_ { + return _this.Data_QueryOutput_ +} + +type Data_QueryOutput_ interface { + isQueryOutput() +} + +type CompanionStruct_QueryOutput_ struct { +} + +var Companion_QueryOutput_ = CompanionStruct_QueryOutput_{} + +type QueryOutput_QueryOutput struct { + Items m_Wrappers.Option + Count m_Wrappers.Option + ScannedCount m_Wrappers.Option + LastEvaluatedKey m_Wrappers.Option + ConsumedCapacity m_Wrappers.Option +} + +func (QueryOutput_QueryOutput) isQueryOutput() {} + +func (CompanionStruct_QueryOutput_) Create_QueryOutput_(Items m_Wrappers.Option, Count m_Wrappers.Option, ScannedCount m_Wrappers.Option, LastEvaluatedKey m_Wrappers.Option, ConsumedCapacity m_Wrappers.Option) QueryOutput { + return QueryOutput{QueryOutput_QueryOutput{Items, Count, ScannedCount, LastEvaluatedKey, ConsumedCapacity}} +} + +func (_this QueryOutput) Is_QueryOutput() bool { + _, ok := _this.Get_().(QueryOutput_QueryOutput) + return ok +} + +func (CompanionStruct_QueryOutput_) Default() QueryOutput { + return Companion_QueryOutput_.Create_QueryOutput_(m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this QueryOutput) Dtor_Items() m_Wrappers.Option { + return _this.Get_().(QueryOutput_QueryOutput).Items +} + +func (_this QueryOutput) Dtor_Count() m_Wrappers.Option { + return _this.Get_().(QueryOutput_QueryOutput).Count +} + +func (_this QueryOutput) Dtor_ScannedCount() m_Wrappers.Option { + return _this.Get_().(QueryOutput_QueryOutput).ScannedCount +} + +func (_this QueryOutput) Dtor_LastEvaluatedKey() m_Wrappers.Option { + return _this.Get_().(QueryOutput_QueryOutput).LastEvaluatedKey +} + +func (_this QueryOutput) Dtor_ConsumedCapacity() m_Wrappers.Option { + return _this.Get_().(QueryOutput_QueryOutput).ConsumedCapacity +} + +func (_this QueryOutput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case QueryOutput_QueryOutput: + { + return "ComAmazonawsDynamodbTypes.QueryOutput.QueryOutput" + "(" + _dafny.String(data.Items) + ", " + _dafny.String(data.Count) + ", " + _dafny.String(data.ScannedCount) + ", " + _dafny.String(data.LastEvaluatedKey) + ", " + _dafny.String(data.ConsumedCapacity) + ")" + } + default: + { + return "" + } + } +} + +func (_this QueryOutput) Equals(other QueryOutput) bool { + switch data1 := _this.Get_().(type) { + case QueryOutput_QueryOutput: + { + data2, ok := other.Get_().(QueryOutput_QueryOutput) + return ok && data1.Items.Equals(data2.Items) && data1.Count.Equals(data2.Count) && data1.ScannedCount.Equals(data2.ScannedCount) && data1.LastEvaluatedKey.Equals(data2.LastEvaluatedKey) && data1.ConsumedCapacity.Equals(data2.ConsumedCapacity) + } + default: + { + return false // unexpected + } + } +} + +func (_this QueryOutput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(QueryOutput) + return ok && _this.Equals(typed) +} + +func Type_QueryOutput_() _dafny.TypeDescriptor { + return type_QueryOutput_{} +} + +type type_QueryOutput_ struct { +} + +func (_this type_QueryOutput_) Default() interface{} { + return Companion_QueryOutput_.Default() +} + +func (_this type_QueryOutput_) String() string { + return "ComAmazonawsDynamodbTypes.QueryOutput" +} +func (_this QueryOutput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = QueryOutput{} + +// End of datatype QueryOutput + +// Definition of datatype Replica +type Replica struct { + Data_Replica_ +} + +func (_this Replica) Get_() Data_Replica_ { + return _this.Data_Replica_ +} + +type Data_Replica_ interface { + isReplica() +} + +type CompanionStruct_Replica_ struct { +} + +var Companion_Replica_ = CompanionStruct_Replica_{} + +type Replica_Replica struct { + RegionName m_Wrappers.Option +} + +func (Replica_Replica) isReplica() {} + +func (CompanionStruct_Replica_) Create_Replica_(RegionName m_Wrappers.Option) Replica { + return Replica{Replica_Replica{RegionName}} +} + +func (_this Replica) Is_Replica() bool { + _, ok := _this.Get_().(Replica_Replica) + return ok +} + +func (CompanionStruct_Replica_) Default() Replica { + return Companion_Replica_.Create_Replica_(m_Wrappers.Companion_Option_.Default()) +} + +func (_this Replica) Dtor_RegionName() m_Wrappers.Option { + return _this.Get_().(Replica_Replica).RegionName +} + +func (_this Replica) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case Replica_Replica: + { + return "ComAmazonawsDynamodbTypes.Replica.Replica" + "(" + _dafny.String(data.RegionName) + ")" + } + default: + { + return "" + } + } +} + +func (_this Replica) Equals(other Replica) bool { + switch data1 := _this.Get_().(type) { + case Replica_Replica: + { + data2, ok := other.Get_().(Replica_Replica) + return ok && data1.RegionName.Equals(data2.RegionName) + } + default: + { + return false // unexpected + } + } +} + +func (_this Replica) EqualsGeneric(other interface{}) bool { + typed, ok := other.(Replica) + return ok && _this.Equals(typed) +} + +func Type_Replica_() _dafny.TypeDescriptor { + return type_Replica_{} +} + +type type_Replica_ struct { +} + +func (_this type_Replica_) Default() interface{} { + return Companion_Replica_.Default() +} + +func (_this type_Replica_) String() string { + return "ComAmazonawsDynamodbTypes.Replica" +} +func (_this Replica) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = Replica{} + +// End of datatype Replica + +// Definition of datatype ReplicaAutoScalingDescription +type ReplicaAutoScalingDescription struct { + Data_ReplicaAutoScalingDescription_ +} + +func (_this ReplicaAutoScalingDescription) Get_() Data_ReplicaAutoScalingDescription_ { + return _this.Data_ReplicaAutoScalingDescription_ +} + +type Data_ReplicaAutoScalingDescription_ interface { + isReplicaAutoScalingDescription() +} + +type CompanionStruct_ReplicaAutoScalingDescription_ struct { +} + +var Companion_ReplicaAutoScalingDescription_ = CompanionStruct_ReplicaAutoScalingDescription_{} + +type ReplicaAutoScalingDescription_ReplicaAutoScalingDescription struct { + RegionName m_Wrappers.Option + GlobalSecondaryIndexes m_Wrappers.Option + ReplicaProvisionedReadCapacityAutoScalingSettings m_Wrappers.Option + ReplicaProvisionedWriteCapacityAutoScalingSettings m_Wrappers.Option + ReplicaStatus m_Wrappers.Option +} + +func (ReplicaAutoScalingDescription_ReplicaAutoScalingDescription) isReplicaAutoScalingDescription() { +} + +func (CompanionStruct_ReplicaAutoScalingDescription_) Create_ReplicaAutoScalingDescription_(RegionName m_Wrappers.Option, GlobalSecondaryIndexes m_Wrappers.Option, ReplicaProvisionedReadCapacityAutoScalingSettings m_Wrappers.Option, ReplicaProvisionedWriteCapacityAutoScalingSettings m_Wrappers.Option, ReplicaStatus m_Wrappers.Option) ReplicaAutoScalingDescription { + return ReplicaAutoScalingDescription{ReplicaAutoScalingDescription_ReplicaAutoScalingDescription{RegionName, GlobalSecondaryIndexes, ReplicaProvisionedReadCapacityAutoScalingSettings, ReplicaProvisionedWriteCapacityAutoScalingSettings, ReplicaStatus}} +} + +func (_this ReplicaAutoScalingDescription) Is_ReplicaAutoScalingDescription() bool { + _, ok := _this.Get_().(ReplicaAutoScalingDescription_ReplicaAutoScalingDescription) + return ok +} + +func (CompanionStruct_ReplicaAutoScalingDescription_) Default() ReplicaAutoScalingDescription { + return Companion_ReplicaAutoScalingDescription_.Create_ReplicaAutoScalingDescription_(m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this ReplicaAutoScalingDescription) Dtor_RegionName() m_Wrappers.Option { + return _this.Get_().(ReplicaAutoScalingDescription_ReplicaAutoScalingDescription).RegionName +} + +func (_this ReplicaAutoScalingDescription) Dtor_GlobalSecondaryIndexes() m_Wrappers.Option { + return _this.Get_().(ReplicaAutoScalingDescription_ReplicaAutoScalingDescription).GlobalSecondaryIndexes +} + +func (_this ReplicaAutoScalingDescription) Dtor_ReplicaProvisionedReadCapacityAutoScalingSettings() m_Wrappers.Option { + return _this.Get_().(ReplicaAutoScalingDescription_ReplicaAutoScalingDescription).ReplicaProvisionedReadCapacityAutoScalingSettings +} + +func (_this ReplicaAutoScalingDescription) Dtor_ReplicaProvisionedWriteCapacityAutoScalingSettings() m_Wrappers.Option { + return _this.Get_().(ReplicaAutoScalingDescription_ReplicaAutoScalingDescription).ReplicaProvisionedWriteCapacityAutoScalingSettings +} + +func (_this ReplicaAutoScalingDescription) Dtor_ReplicaStatus() m_Wrappers.Option { + return _this.Get_().(ReplicaAutoScalingDescription_ReplicaAutoScalingDescription).ReplicaStatus +} + +func (_this ReplicaAutoScalingDescription) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case ReplicaAutoScalingDescription_ReplicaAutoScalingDescription: + { + return "ComAmazonawsDynamodbTypes.ReplicaAutoScalingDescription.ReplicaAutoScalingDescription" + "(" + _dafny.String(data.RegionName) + ", " + _dafny.String(data.GlobalSecondaryIndexes) + ", " + _dafny.String(data.ReplicaProvisionedReadCapacityAutoScalingSettings) + ", " + _dafny.String(data.ReplicaProvisionedWriteCapacityAutoScalingSettings) + ", " + _dafny.String(data.ReplicaStatus) + ")" + } + default: + { + return "" + } + } +} + +func (_this ReplicaAutoScalingDescription) Equals(other ReplicaAutoScalingDescription) bool { + switch data1 := _this.Get_().(type) { + case ReplicaAutoScalingDescription_ReplicaAutoScalingDescription: + { + data2, ok := other.Get_().(ReplicaAutoScalingDescription_ReplicaAutoScalingDescription) + return ok && data1.RegionName.Equals(data2.RegionName) && data1.GlobalSecondaryIndexes.Equals(data2.GlobalSecondaryIndexes) && data1.ReplicaProvisionedReadCapacityAutoScalingSettings.Equals(data2.ReplicaProvisionedReadCapacityAutoScalingSettings) && data1.ReplicaProvisionedWriteCapacityAutoScalingSettings.Equals(data2.ReplicaProvisionedWriteCapacityAutoScalingSettings) && data1.ReplicaStatus.Equals(data2.ReplicaStatus) + } + default: + { + return false // unexpected + } + } +} + +func (_this ReplicaAutoScalingDescription) EqualsGeneric(other interface{}) bool { + typed, ok := other.(ReplicaAutoScalingDescription) + return ok && _this.Equals(typed) +} + +func Type_ReplicaAutoScalingDescription_() _dafny.TypeDescriptor { + return type_ReplicaAutoScalingDescription_{} +} + +type type_ReplicaAutoScalingDescription_ struct { +} + +func (_this type_ReplicaAutoScalingDescription_) Default() interface{} { + return Companion_ReplicaAutoScalingDescription_.Default() +} + +func (_this type_ReplicaAutoScalingDescription_) String() string { + return "ComAmazonawsDynamodbTypes.ReplicaAutoScalingDescription" +} +func (_this ReplicaAutoScalingDescription) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = ReplicaAutoScalingDescription{} + +// End of datatype ReplicaAutoScalingDescription + +// Definition of datatype ReplicaAutoScalingUpdate +type ReplicaAutoScalingUpdate struct { + Data_ReplicaAutoScalingUpdate_ +} + +func (_this ReplicaAutoScalingUpdate) Get_() Data_ReplicaAutoScalingUpdate_ { + return _this.Data_ReplicaAutoScalingUpdate_ +} + +type Data_ReplicaAutoScalingUpdate_ interface { + isReplicaAutoScalingUpdate() +} + +type CompanionStruct_ReplicaAutoScalingUpdate_ struct { +} + +var Companion_ReplicaAutoScalingUpdate_ = CompanionStruct_ReplicaAutoScalingUpdate_{} + +type ReplicaAutoScalingUpdate_ReplicaAutoScalingUpdate struct { + RegionName _dafny.Sequence + ReplicaGlobalSecondaryIndexUpdates m_Wrappers.Option + ReplicaProvisionedReadCapacityAutoScalingUpdate m_Wrappers.Option +} + +func (ReplicaAutoScalingUpdate_ReplicaAutoScalingUpdate) isReplicaAutoScalingUpdate() {} + +func (CompanionStruct_ReplicaAutoScalingUpdate_) Create_ReplicaAutoScalingUpdate_(RegionName _dafny.Sequence, ReplicaGlobalSecondaryIndexUpdates m_Wrappers.Option, ReplicaProvisionedReadCapacityAutoScalingUpdate m_Wrappers.Option) ReplicaAutoScalingUpdate { + return ReplicaAutoScalingUpdate{ReplicaAutoScalingUpdate_ReplicaAutoScalingUpdate{RegionName, ReplicaGlobalSecondaryIndexUpdates, ReplicaProvisionedReadCapacityAutoScalingUpdate}} +} + +func (_this ReplicaAutoScalingUpdate) Is_ReplicaAutoScalingUpdate() bool { + _, ok := _this.Get_().(ReplicaAutoScalingUpdate_ReplicaAutoScalingUpdate) + return ok +} + +func (CompanionStruct_ReplicaAutoScalingUpdate_) Default() ReplicaAutoScalingUpdate { + return Companion_ReplicaAutoScalingUpdate_.Create_ReplicaAutoScalingUpdate_(_dafny.EmptySeq.SetString(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this ReplicaAutoScalingUpdate) Dtor_RegionName() _dafny.Sequence { + return _this.Get_().(ReplicaAutoScalingUpdate_ReplicaAutoScalingUpdate).RegionName +} + +func (_this ReplicaAutoScalingUpdate) Dtor_ReplicaGlobalSecondaryIndexUpdates() m_Wrappers.Option { + return _this.Get_().(ReplicaAutoScalingUpdate_ReplicaAutoScalingUpdate).ReplicaGlobalSecondaryIndexUpdates +} + +func (_this ReplicaAutoScalingUpdate) Dtor_ReplicaProvisionedReadCapacityAutoScalingUpdate() m_Wrappers.Option { + return _this.Get_().(ReplicaAutoScalingUpdate_ReplicaAutoScalingUpdate).ReplicaProvisionedReadCapacityAutoScalingUpdate +} + +func (_this ReplicaAutoScalingUpdate) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case ReplicaAutoScalingUpdate_ReplicaAutoScalingUpdate: + { + return "ComAmazonawsDynamodbTypes.ReplicaAutoScalingUpdate.ReplicaAutoScalingUpdate" + "(" + _dafny.String(data.RegionName) + ", " + _dafny.String(data.ReplicaGlobalSecondaryIndexUpdates) + ", " + _dafny.String(data.ReplicaProvisionedReadCapacityAutoScalingUpdate) + ")" + } + default: + { + return "" + } + } +} + +func (_this ReplicaAutoScalingUpdate) Equals(other ReplicaAutoScalingUpdate) bool { + switch data1 := _this.Get_().(type) { + case ReplicaAutoScalingUpdate_ReplicaAutoScalingUpdate: + { + data2, ok := other.Get_().(ReplicaAutoScalingUpdate_ReplicaAutoScalingUpdate) + return ok && data1.RegionName.Equals(data2.RegionName) && data1.ReplicaGlobalSecondaryIndexUpdates.Equals(data2.ReplicaGlobalSecondaryIndexUpdates) && data1.ReplicaProvisionedReadCapacityAutoScalingUpdate.Equals(data2.ReplicaProvisionedReadCapacityAutoScalingUpdate) + } + default: + { + return false // unexpected + } + } +} + +func (_this ReplicaAutoScalingUpdate) EqualsGeneric(other interface{}) bool { + typed, ok := other.(ReplicaAutoScalingUpdate) + return ok && _this.Equals(typed) +} + +func Type_ReplicaAutoScalingUpdate_() _dafny.TypeDescriptor { + return type_ReplicaAutoScalingUpdate_{} +} + +type type_ReplicaAutoScalingUpdate_ struct { +} + +func (_this type_ReplicaAutoScalingUpdate_) Default() interface{} { + return Companion_ReplicaAutoScalingUpdate_.Default() +} + +func (_this type_ReplicaAutoScalingUpdate_) String() string { + return "ComAmazonawsDynamodbTypes.ReplicaAutoScalingUpdate" +} +func (_this ReplicaAutoScalingUpdate) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = ReplicaAutoScalingUpdate{} + +// End of datatype ReplicaAutoScalingUpdate + +// Definition of class ReplicaAutoScalingUpdateList +type ReplicaAutoScalingUpdateList struct { +} + +func New_ReplicaAutoScalingUpdateList_() *ReplicaAutoScalingUpdateList { + _this := ReplicaAutoScalingUpdateList{} + + return &_this +} + +type CompanionStruct_ReplicaAutoScalingUpdateList_ struct { +} + +var Companion_ReplicaAutoScalingUpdateList_ = CompanionStruct_ReplicaAutoScalingUpdateList_{} + +func (*ReplicaAutoScalingUpdateList) String() string { + return "ComAmazonawsDynamodbTypes.ReplicaAutoScalingUpdateList" +} + +// End of class ReplicaAutoScalingUpdateList + +func Type_ReplicaAutoScalingUpdateList_() _dafny.TypeDescriptor { + return type_ReplicaAutoScalingUpdateList_{} +} + +type type_ReplicaAutoScalingUpdateList_ struct { +} + +func (_this type_ReplicaAutoScalingUpdateList_) Default() interface{} { + return _dafny.EmptySeq +} + +func (_this type_ReplicaAutoScalingUpdateList_) String() string { + return "ComAmazonawsDynamodbTypes.ReplicaAutoScalingUpdateList" +} +func (_this *CompanionStruct_ReplicaAutoScalingUpdateList_) Is_(__source _dafny.Sequence) bool { + var _30_x _dafny.Sequence = (__source) + _ = _30_x + return Companion_Default___.IsValid__ReplicaAutoScalingUpdateList(_30_x) +} + +// Definition of datatype ReplicaDescription +type ReplicaDescription struct { + Data_ReplicaDescription_ +} + +func (_this ReplicaDescription) Get_() Data_ReplicaDescription_ { + return _this.Data_ReplicaDescription_ +} + +type Data_ReplicaDescription_ interface { + isReplicaDescription() +} + +type CompanionStruct_ReplicaDescription_ struct { +} + +var Companion_ReplicaDescription_ = CompanionStruct_ReplicaDescription_{} + +type ReplicaDescription_ReplicaDescription struct { + RegionName m_Wrappers.Option + ReplicaStatus m_Wrappers.Option + ReplicaStatusDescription m_Wrappers.Option + ReplicaStatusPercentProgress m_Wrappers.Option + KMSMasterKeyId m_Wrappers.Option + ProvisionedThroughputOverride m_Wrappers.Option + OnDemandThroughputOverride m_Wrappers.Option + GlobalSecondaryIndexes m_Wrappers.Option + ReplicaInaccessibleDateTime m_Wrappers.Option + ReplicaTableClassSummary m_Wrappers.Option +} + +func (ReplicaDescription_ReplicaDescription) isReplicaDescription() {} + +func (CompanionStruct_ReplicaDescription_) Create_ReplicaDescription_(RegionName m_Wrappers.Option, ReplicaStatus m_Wrappers.Option, ReplicaStatusDescription m_Wrappers.Option, ReplicaStatusPercentProgress m_Wrappers.Option, KMSMasterKeyId m_Wrappers.Option, ProvisionedThroughputOverride m_Wrappers.Option, OnDemandThroughputOverride m_Wrappers.Option, GlobalSecondaryIndexes m_Wrappers.Option, ReplicaInaccessibleDateTime m_Wrappers.Option, ReplicaTableClassSummary m_Wrappers.Option) ReplicaDescription { + return ReplicaDescription{ReplicaDescription_ReplicaDescription{RegionName, ReplicaStatus, ReplicaStatusDescription, ReplicaStatusPercentProgress, KMSMasterKeyId, ProvisionedThroughputOverride, OnDemandThroughputOverride, GlobalSecondaryIndexes, ReplicaInaccessibleDateTime, ReplicaTableClassSummary}} +} + +func (_this ReplicaDescription) Is_ReplicaDescription() bool { + _, ok := _this.Get_().(ReplicaDescription_ReplicaDescription) + return ok +} + +func (CompanionStruct_ReplicaDescription_) Default() ReplicaDescription { + return Companion_ReplicaDescription_.Create_ReplicaDescription_(m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this ReplicaDescription) Dtor_RegionName() m_Wrappers.Option { + return _this.Get_().(ReplicaDescription_ReplicaDescription).RegionName +} + +func (_this ReplicaDescription) Dtor_ReplicaStatus() m_Wrappers.Option { + return _this.Get_().(ReplicaDescription_ReplicaDescription).ReplicaStatus +} + +func (_this ReplicaDescription) Dtor_ReplicaStatusDescription() m_Wrappers.Option { + return _this.Get_().(ReplicaDescription_ReplicaDescription).ReplicaStatusDescription +} + +func (_this ReplicaDescription) Dtor_ReplicaStatusPercentProgress() m_Wrappers.Option { + return _this.Get_().(ReplicaDescription_ReplicaDescription).ReplicaStatusPercentProgress +} + +func (_this ReplicaDescription) Dtor_KMSMasterKeyId() m_Wrappers.Option { + return _this.Get_().(ReplicaDescription_ReplicaDescription).KMSMasterKeyId +} + +func (_this ReplicaDescription) Dtor_ProvisionedThroughputOverride() m_Wrappers.Option { + return _this.Get_().(ReplicaDescription_ReplicaDescription).ProvisionedThroughputOverride +} + +func (_this ReplicaDescription) Dtor_OnDemandThroughputOverride() m_Wrappers.Option { + return _this.Get_().(ReplicaDescription_ReplicaDescription).OnDemandThroughputOverride +} + +func (_this ReplicaDescription) Dtor_GlobalSecondaryIndexes() m_Wrappers.Option { + return _this.Get_().(ReplicaDescription_ReplicaDescription).GlobalSecondaryIndexes +} + +func (_this ReplicaDescription) Dtor_ReplicaInaccessibleDateTime() m_Wrappers.Option { + return _this.Get_().(ReplicaDescription_ReplicaDescription).ReplicaInaccessibleDateTime +} + +func (_this ReplicaDescription) Dtor_ReplicaTableClassSummary() m_Wrappers.Option { + return _this.Get_().(ReplicaDescription_ReplicaDescription).ReplicaTableClassSummary +} + +func (_this ReplicaDescription) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case ReplicaDescription_ReplicaDescription: + { + return "ComAmazonawsDynamodbTypes.ReplicaDescription.ReplicaDescription" + "(" + _dafny.String(data.RegionName) + ", " + _dafny.String(data.ReplicaStatus) + ", " + _dafny.String(data.ReplicaStatusDescription) + ", " + _dafny.String(data.ReplicaStatusPercentProgress) + ", " + _dafny.String(data.KMSMasterKeyId) + ", " + _dafny.String(data.ProvisionedThroughputOverride) + ", " + _dafny.String(data.OnDemandThroughputOverride) + ", " + _dafny.String(data.GlobalSecondaryIndexes) + ", " + _dafny.String(data.ReplicaInaccessibleDateTime) + ", " + _dafny.String(data.ReplicaTableClassSummary) + ")" + } + default: + { + return "" + } + } +} + +func (_this ReplicaDescription) Equals(other ReplicaDescription) bool { + switch data1 := _this.Get_().(type) { + case ReplicaDescription_ReplicaDescription: + { + data2, ok := other.Get_().(ReplicaDescription_ReplicaDescription) + return ok && data1.RegionName.Equals(data2.RegionName) && data1.ReplicaStatus.Equals(data2.ReplicaStatus) && data1.ReplicaStatusDescription.Equals(data2.ReplicaStatusDescription) && data1.ReplicaStatusPercentProgress.Equals(data2.ReplicaStatusPercentProgress) && data1.KMSMasterKeyId.Equals(data2.KMSMasterKeyId) && data1.ProvisionedThroughputOverride.Equals(data2.ProvisionedThroughputOverride) && data1.OnDemandThroughputOverride.Equals(data2.OnDemandThroughputOverride) && data1.GlobalSecondaryIndexes.Equals(data2.GlobalSecondaryIndexes) && data1.ReplicaInaccessibleDateTime.Equals(data2.ReplicaInaccessibleDateTime) && data1.ReplicaTableClassSummary.Equals(data2.ReplicaTableClassSummary) + } + default: + { + return false // unexpected + } + } +} + +func (_this ReplicaDescription) EqualsGeneric(other interface{}) bool { + typed, ok := other.(ReplicaDescription) + return ok && _this.Equals(typed) +} + +func Type_ReplicaDescription_() _dafny.TypeDescriptor { + return type_ReplicaDescription_{} +} + +type type_ReplicaDescription_ struct { +} + +func (_this type_ReplicaDescription_) Default() interface{} { + return Companion_ReplicaDescription_.Default() +} + +func (_this type_ReplicaDescription_) String() string { + return "ComAmazonawsDynamodbTypes.ReplicaDescription" +} +func (_this ReplicaDescription) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = ReplicaDescription{} + +// End of datatype ReplicaDescription + +// Definition of datatype ReplicaGlobalSecondaryIndex +type ReplicaGlobalSecondaryIndex struct { + Data_ReplicaGlobalSecondaryIndex_ +} + +func (_this ReplicaGlobalSecondaryIndex) Get_() Data_ReplicaGlobalSecondaryIndex_ { + return _this.Data_ReplicaGlobalSecondaryIndex_ +} + +type Data_ReplicaGlobalSecondaryIndex_ interface { + isReplicaGlobalSecondaryIndex() +} + +type CompanionStruct_ReplicaGlobalSecondaryIndex_ struct { +} + +var Companion_ReplicaGlobalSecondaryIndex_ = CompanionStruct_ReplicaGlobalSecondaryIndex_{} + +type ReplicaGlobalSecondaryIndex_ReplicaGlobalSecondaryIndex struct { + IndexName _dafny.Sequence + ProvisionedThroughputOverride m_Wrappers.Option + OnDemandThroughputOverride m_Wrappers.Option +} + +func (ReplicaGlobalSecondaryIndex_ReplicaGlobalSecondaryIndex) isReplicaGlobalSecondaryIndex() {} + +func (CompanionStruct_ReplicaGlobalSecondaryIndex_) Create_ReplicaGlobalSecondaryIndex_(IndexName _dafny.Sequence, ProvisionedThroughputOverride m_Wrappers.Option, OnDemandThroughputOverride m_Wrappers.Option) ReplicaGlobalSecondaryIndex { + return ReplicaGlobalSecondaryIndex{ReplicaGlobalSecondaryIndex_ReplicaGlobalSecondaryIndex{IndexName, ProvisionedThroughputOverride, OnDemandThroughputOverride}} +} + +func (_this ReplicaGlobalSecondaryIndex) Is_ReplicaGlobalSecondaryIndex() bool { + _, ok := _this.Get_().(ReplicaGlobalSecondaryIndex_ReplicaGlobalSecondaryIndex) + return ok +} + +func (CompanionStruct_ReplicaGlobalSecondaryIndex_) Default() ReplicaGlobalSecondaryIndex { + return Companion_ReplicaGlobalSecondaryIndex_.Create_ReplicaGlobalSecondaryIndex_(_dafny.EmptySeq.SetString(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this ReplicaGlobalSecondaryIndex) Dtor_IndexName() _dafny.Sequence { + return _this.Get_().(ReplicaGlobalSecondaryIndex_ReplicaGlobalSecondaryIndex).IndexName +} + +func (_this ReplicaGlobalSecondaryIndex) Dtor_ProvisionedThroughputOverride() m_Wrappers.Option { + return _this.Get_().(ReplicaGlobalSecondaryIndex_ReplicaGlobalSecondaryIndex).ProvisionedThroughputOverride +} + +func (_this ReplicaGlobalSecondaryIndex) Dtor_OnDemandThroughputOverride() m_Wrappers.Option { + return _this.Get_().(ReplicaGlobalSecondaryIndex_ReplicaGlobalSecondaryIndex).OnDemandThroughputOverride +} + +func (_this ReplicaGlobalSecondaryIndex) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case ReplicaGlobalSecondaryIndex_ReplicaGlobalSecondaryIndex: + { + return "ComAmazonawsDynamodbTypes.ReplicaGlobalSecondaryIndex.ReplicaGlobalSecondaryIndex" + "(" + _dafny.String(data.IndexName) + ", " + _dafny.String(data.ProvisionedThroughputOverride) + ", " + _dafny.String(data.OnDemandThroughputOverride) + ")" + } + default: + { + return "" + } + } +} + +func (_this ReplicaGlobalSecondaryIndex) Equals(other ReplicaGlobalSecondaryIndex) bool { + switch data1 := _this.Get_().(type) { + case ReplicaGlobalSecondaryIndex_ReplicaGlobalSecondaryIndex: + { + data2, ok := other.Get_().(ReplicaGlobalSecondaryIndex_ReplicaGlobalSecondaryIndex) + return ok && data1.IndexName.Equals(data2.IndexName) && data1.ProvisionedThroughputOverride.Equals(data2.ProvisionedThroughputOverride) && data1.OnDemandThroughputOverride.Equals(data2.OnDemandThroughputOverride) + } + default: + { + return false // unexpected + } + } +} + +func (_this ReplicaGlobalSecondaryIndex) EqualsGeneric(other interface{}) bool { + typed, ok := other.(ReplicaGlobalSecondaryIndex) + return ok && _this.Equals(typed) +} + +func Type_ReplicaGlobalSecondaryIndex_() _dafny.TypeDescriptor { + return type_ReplicaGlobalSecondaryIndex_{} +} + +type type_ReplicaGlobalSecondaryIndex_ struct { +} + +func (_this type_ReplicaGlobalSecondaryIndex_) Default() interface{} { + return Companion_ReplicaGlobalSecondaryIndex_.Default() +} + +func (_this type_ReplicaGlobalSecondaryIndex_) String() string { + return "ComAmazonawsDynamodbTypes.ReplicaGlobalSecondaryIndex" +} +func (_this ReplicaGlobalSecondaryIndex) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = ReplicaGlobalSecondaryIndex{} + +// End of datatype ReplicaGlobalSecondaryIndex + +// Definition of datatype ReplicaGlobalSecondaryIndexAutoScalingDescription +type ReplicaGlobalSecondaryIndexAutoScalingDescription struct { + Data_ReplicaGlobalSecondaryIndexAutoScalingDescription_ +} + +func (_this ReplicaGlobalSecondaryIndexAutoScalingDescription) Get_() Data_ReplicaGlobalSecondaryIndexAutoScalingDescription_ { + return _this.Data_ReplicaGlobalSecondaryIndexAutoScalingDescription_ +} + +type Data_ReplicaGlobalSecondaryIndexAutoScalingDescription_ interface { + isReplicaGlobalSecondaryIndexAutoScalingDescription() +} + +type CompanionStruct_ReplicaGlobalSecondaryIndexAutoScalingDescription_ struct { +} + +var Companion_ReplicaGlobalSecondaryIndexAutoScalingDescription_ = CompanionStruct_ReplicaGlobalSecondaryIndexAutoScalingDescription_{} + +type ReplicaGlobalSecondaryIndexAutoScalingDescription_ReplicaGlobalSecondaryIndexAutoScalingDescription struct { + IndexName m_Wrappers.Option + IndexStatus m_Wrappers.Option + ProvisionedReadCapacityAutoScalingSettings m_Wrappers.Option + ProvisionedWriteCapacityAutoScalingSettings m_Wrappers.Option +} + +func (ReplicaGlobalSecondaryIndexAutoScalingDescription_ReplicaGlobalSecondaryIndexAutoScalingDescription) isReplicaGlobalSecondaryIndexAutoScalingDescription() { +} + +func (CompanionStruct_ReplicaGlobalSecondaryIndexAutoScalingDescription_) Create_ReplicaGlobalSecondaryIndexAutoScalingDescription_(IndexName m_Wrappers.Option, IndexStatus m_Wrappers.Option, ProvisionedReadCapacityAutoScalingSettings m_Wrappers.Option, ProvisionedWriteCapacityAutoScalingSettings m_Wrappers.Option) ReplicaGlobalSecondaryIndexAutoScalingDescription { + return ReplicaGlobalSecondaryIndexAutoScalingDescription{ReplicaGlobalSecondaryIndexAutoScalingDescription_ReplicaGlobalSecondaryIndexAutoScalingDescription{IndexName, IndexStatus, ProvisionedReadCapacityAutoScalingSettings, ProvisionedWriteCapacityAutoScalingSettings}} +} + +func (_this ReplicaGlobalSecondaryIndexAutoScalingDescription) Is_ReplicaGlobalSecondaryIndexAutoScalingDescription() bool { + _, ok := _this.Get_().(ReplicaGlobalSecondaryIndexAutoScalingDescription_ReplicaGlobalSecondaryIndexAutoScalingDescription) + return ok +} + +func (CompanionStruct_ReplicaGlobalSecondaryIndexAutoScalingDescription_) Default() ReplicaGlobalSecondaryIndexAutoScalingDescription { + return Companion_ReplicaGlobalSecondaryIndexAutoScalingDescription_.Create_ReplicaGlobalSecondaryIndexAutoScalingDescription_(m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this ReplicaGlobalSecondaryIndexAutoScalingDescription) Dtor_IndexName() m_Wrappers.Option { + return _this.Get_().(ReplicaGlobalSecondaryIndexAutoScalingDescription_ReplicaGlobalSecondaryIndexAutoScalingDescription).IndexName +} + +func (_this ReplicaGlobalSecondaryIndexAutoScalingDescription) Dtor_IndexStatus() m_Wrappers.Option { + return _this.Get_().(ReplicaGlobalSecondaryIndexAutoScalingDescription_ReplicaGlobalSecondaryIndexAutoScalingDescription).IndexStatus +} + +func (_this ReplicaGlobalSecondaryIndexAutoScalingDescription) Dtor_ProvisionedReadCapacityAutoScalingSettings() m_Wrappers.Option { + return _this.Get_().(ReplicaGlobalSecondaryIndexAutoScalingDescription_ReplicaGlobalSecondaryIndexAutoScalingDescription).ProvisionedReadCapacityAutoScalingSettings +} + +func (_this ReplicaGlobalSecondaryIndexAutoScalingDescription) Dtor_ProvisionedWriteCapacityAutoScalingSettings() m_Wrappers.Option { + return _this.Get_().(ReplicaGlobalSecondaryIndexAutoScalingDescription_ReplicaGlobalSecondaryIndexAutoScalingDescription).ProvisionedWriteCapacityAutoScalingSettings +} + +func (_this ReplicaGlobalSecondaryIndexAutoScalingDescription) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case ReplicaGlobalSecondaryIndexAutoScalingDescription_ReplicaGlobalSecondaryIndexAutoScalingDescription: + { + return "ComAmazonawsDynamodbTypes.ReplicaGlobalSecondaryIndexAutoScalingDescription.ReplicaGlobalSecondaryIndexAutoScalingDescription" + "(" + _dafny.String(data.IndexName) + ", " + _dafny.String(data.IndexStatus) + ", " + _dafny.String(data.ProvisionedReadCapacityAutoScalingSettings) + ", " + _dafny.String(data.ProvisionedWriteCapacityAutoScalingSettings) + ")" + } + default: + { + return "" + } + } +} + +func (_this ReplicaGlobalSecondaryIndexAutoScalingDescription) Equals(other ReplicaGlobalSecondaryIndexAutoScalingDescription) bool { + switch data1 := _this.Get_().(type) { + case ReplicaGlobalSecondaryIndexAutoScalingDescription_ReplicaGlobalSecondaryIndexAutoScalingDescription: + { + data2, ok := other.Get_().(ReplicaGlobalSecondaryIndexAutoScalingDescription_ReplicaGlobalSecondaryIndexAutoScalingDescription) + return ok && data1.IndexName.Equals(data2.IndexName) && data1.IndexStatus.Equals(data2.IndexStatus) && data1.ProvisionedReadCapacityAutoScalingSettings.Equals(data2.ProvisionedReadCapacityAutoScalingSettings) && data1.ProvisionedWriteCapacityAutoScalingSettings.Equals(data2.ProvisionedWriteCapacityAutoScalingSettings) + } + default: + { + return false // unexpected + } + } +} + +func (_this ReplicaGlobalSecondaryIndexAutoScalingDescription) EqualsGeneric(other interface{}) bool { + typed, ok := other.(ReplicaGlobalSecondaryIndexAutoScalingDescription) + return ok && _this.Equals(typed) +} + +func Type_ReplicaGlobalSecondaryIndexAutoScalingDescription_() _dafny.TypeDescriptor { + return type_ReplicaGlobalSecondaryIndexAutoScalingDescription_{} +} + +type type_ReplicaGlobalSecondaryIndexAutoScalingDescription_ struct { +} + +func (_this type_ReplicaGlobalSecondaryIndexAutoScalingDescription_) Default() interface{} { + return Companion_ReplicaGlobalSecondaryIndexAutoScalingDescription_.Default() +} + +func (_this type_ReplicaGlobalSecondaryIndexAutoScalingDescription_) String() string { + return "ComAmazonawsDynamodbTypes.ReplicaGlobalSecondaryIndexAutoScalingDescription" +} +func (_this ReplicaGlobalSecondaryIndexAutoScalingDescription) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = ReplicaGlobalSecondaryIndexAutoScalingDescription{} + +// End of datatype ReplicaGlobalSecondaryIndexAutoScalingDescription + +// Definition of datatype ReplicaGlobalSecondaryIndexAutoScalingUpdate +type ReplicaGlobalSecondaryIndexAutoScalingUpdate struct { + Data_ReplicaGlobalSecondaryIndexAutoScalingUpdate_ +} + +func (_this ReplicaGlobalSecondaryIndexAutoScalingUpdate) Get_() Data_ReplicaGlobalSecondaryIndexAutoScalingUpdate_ { + return _this.Data_ReplicaGlobalSecondaryIndexAutoScalingUpdate_ +} + +type Data_ReplicaGlobalSecondaryIndexAutoScalingUpdate_ interface { + isReplicaGlobalSecondaryIndexAutoScalingUpdate() +} + +type CompanionStruct_ReplicaGlobalSecondaryIndexAutoScalingUpdate_ struct { +} + +var Companion_ReplicaGlobalSecondaryIndexAutoScalingUpdate_ = CompanionStruct_ReplicaGlobalSecondaryIndexAutoScalingUpdate_{} + +type ReplicaGlobalSecondaryIndexAutoScalingUpdate_ReplicaGlobalSecondaryIndexAutoScalingUpdate struct { + IndexName m_Wrappers.Option + ProvisionedReadCapacityAutoScalingUpdate m_Wrappers.Option +} + +func (ReplicaGlobalSecondaryIndexAutoScalingUpdate_ReplicaGlobalSecondaryIndexAutoScalingUpdate) isReplicaGlobalSecondaryIndexAutoScalingUpdate() { +} + +func (CompanionStruct_ReplicaGlobalSecondaryIndexAutoScalingUpdate_) Create_ReplicaGlobalSecondaryIndexAutoScalingUpdate_(IndexName m_Wrappers.Option, ProvisionedReadCapacityAutoScalingUpdate m_Wrappers.Option) ReplicaGlobalSecondaryIndexAutoScalingUpdate { + return ReplicaGlobalSecondaryIndexAutoScalingUpdate{ReplicaGlobalSecondaryIndexAutoScalingUpdate_ReplicaGlobalSecondaryIndexAutoScalingUpdate{IndexName, ProvisionedReadCapacityAutoScalingUpdate}} +} + +func (_this ReplicaGlobalSecondaryIndexAutoScalingUpdate) Is_ReplicaGlobalSecondaryIndexAutoScalingUpdate() bool { + _, ok := _this.Get_().(ReplicaGlobalSecondaryIndexAutoScalingUpdate_ReplicaGlobalSecondaryIndexAutoScalingUpdate) + return ok +} + +func (CompanionStruct_ReplicaGlobalSecondaryIndexAutoScalingUpdate_) Default() ReplicaGlobalSecondaryIndexAutoScalingUpdate { + return Companion_ReplicaGlobalSecondaryIndexAutoScalingUpdate_.Create_ReplicaGlobalSecondaryIndexAutoScalingUpdate_(m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this ReplicaGlobalSecondaryIndexAutoScalingUpdate) Dtor_IndexName() m_Wrappers.Option { + return _this.Get_().(ReplicaGlobalSecondaryIndexAutoScalingUpdate_ReplicaGlobalSecondaryIndexAutoScalingUpdate).IndexName +} + +func (_this ReplicaGlobalSecondaryIndexAutoScalingUpdate) Dtor_ProvisionedReadCapacityAutoScalingUpdate() m_Wrappers.Option { + return _this.Get_().(ReplicaGlobalSecondaryIndexAutoScalingUpdate_ReplicaGlobalSecondaryIndexAutoScalingUpdate).ProvisionedReadCapacityAutoScalingUpdate +} + +func (_this ReplicaGlobalSecondaryIndexAutoScalingUpdate) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case ReplicaGlobalSecondaryIndexAutoScalingUpdate_ReplicaGlobalSecondaryIndexAutoScalingUpdate: + { + return "ComAmazonawsDynamodbTypes.ReplicaGlobalSecondaryIndexAutoScalingUpdate.ReplicaGlobalSecondaryIndexAutoScalingUpdate" + "(" + _dafny.String(data.IndexName) + ", " + _dafny.String(data.ProvisionedReadCapacityAutoScalingUpdate) + ")" + } + default: + { + return "" + } + } +} + +func (_this ReplicaGlobalSecondaryIndexAutoScalingUpdate) Equals(other ReplicaGlobalSecondaryIndexAutoScalingUpdate) bool { + switch data1 := _this.Get_().(type) { + case ReplicaGlobalSecondaryIndexAutoScalingUpdate_ReplicaGlobalSecondaryIndexAutoScalingUpdate: + { + data2, ok := other.Get_().(ReplicaGlobalSecondaryIndexAutoScalingUpdate_ReplicaGlobalSecondaryIndexAutoScalingUpdate) + return ok && data1.IndexName.Equals(data2.IndexName) && data1.ProvisionedReadCapacityAutoScalingUpdate.Equals(data2.ProvisionedReadCapacityAutoScalingUpdate) + } + default: + { + return false // unexpected + } + } +} + +func (_this ReplicaGlobalSecondaryIndexAutoScalingUpdate) EqualsGeneric(other interface{}) bool { + typed, ok := other.(ReplicaGlobalSecondaryIndexAutoScalingUpdate) + return ok && _this.Equals(typed) +} + +func Type_ReplicaGlobalSecondaryIndexAutoScalingUpdate_() _dafny.TypeDescriptor { + return type_ReplicaGlobalSecondaryIndexAutoScalingUpdate_{} +} + +type type_ReplicaGlobalSecondaryIndexAutoScalingUpdate_ struct { +} + +func (_this type_ReplicaGlobalSecondaryIndexAutoScalingUpdate_) Default() interface{} { + return Companion_ReplicaGlobalSecondaryIndexAutoScalingUpdate_.Default() +} + +func (_this type_ReplicaGlobalSecondaryIndexAutoScalingUpdate_) String() string { + return "ComAmazonawsDynamodbTypes.ReplicaGlobalSecondaryIndexAutoScalingUpdate" +} +func (_this ReplicaGlobalSecondaryIndexAutoScalingUpdate) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = ReplicaGlobalSecondaryIndexAutoScalingUpdate{} + +// End of datatype ReplicaGlobalSecondaryIndexAutoScalingUpdate + +// Definition of datatype ReplicaGlobalSecondaryIndexDescription +type ReplicaGlobalSecondaryIndexDescription struct { + Data_ReplicaGlobalSecondaryIndexDescription_ +} + +func (_this ReplicaGlobalSecondaryIndexDescription) Get_() Data_ReplicaGlobalSecondaryIndexDescription_ { + return _this.Data_ReplicaGlobalSecondaryIndexDescription_ +} + +type Data_ReplicaGlobalSecondaryIndexDescription_ interface { + isReplicaGlobalSecondaryIndexDescription() +} + +type CompanionStruct_ReplicaGlobalSecondaryIndexDescription_ struct { +} + +var Companion_ReplicaGlobalSecondaryIndexDescription_ = CompanionStruct_ReplicaGlobalSecondaryIndexDescription_{} + +type ReplicaGlobalSecondaryIndexDescription_ReplicaGlobalSecondaryIndexDescription struct { + IndexName m_Wrappers.Option + ProvisionedThroughputOverride m_Wrappers.Option + OnDemandThroughputOverride m_Wrappers.Option +} + +func (ReplicaGlobalSecondaryIndexDescription_ReplicaGlobalSecondaryIndexDescription) isReplicaGlobalSecondaryIndexDescription() { +} + +func (CompanionStruct_ReplicaGlobalSecondaryIndexDescription_) Create_ReplicaGlobalSecondaryIndexDescription_(IndexName m_Wrappers.Option, ProvisionedThroughputOverride m_Wrappers.Option, OnDemandThroughputOverride m_Wrappers.Option) ReplicaGlobalSecondaryIndexDescription { + return ReplicaGlobalSecondaryIndexDescription{ReplicaGlobalSecondaryIndexDescription_ReplicaGlobalSecondaryIndexDescription{IndexName, ProvisionedThroughputOverride, OnDemandThroughputOverride}} +} + +func (_this ReplicaGlobalSecondaryIndexDescription) Is_ReplicaGlobalSecondaryIndexDescription() bool { + _, ok := _this.Get_().(ReplicaGlobalSecondaryIndexDescription_ReplicaGlobalSecondaryIndexDescription) + return ok +} + +func (CompanionStruct_ReplicaGlobalSecondaryIndexDescription_) Default() ReplicaGlobalSecondaryIndexDescription { + return Companion_ReplicaGlobalSecondaryIndexDescription_.Create_ReplicaGlobalSecondaryIndexDescription_(m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this ReplicaGlobalSecondaryIndexDescription) Dtor_IndexName() m_Wrappers.Option { + return _this.Get_().(ReplicaGlobalSecondaryIndexDescription_ReplicaGlobalSecondaryIndexDescription).IndexName +} + +func (_this ReplicaGlobalSecondaryIndexDescription) Dtor_ProvisionedThroughputOverride() m_Wrappers.Option { + return _this.Get_().(ReplicaGlobalSecondaryIndexDescription_ReplicaGlobalSecondaryIndexDescription).ProvisionedThroughputOverride +} + +func (_this ReplicaGlobalSecondaryIndexDescription) Dtor_OnDemandThroughputOverride() m_Wrappers.Option { + return _this.Get_().(ReplicaGlobalSecondaryIndexDescription_ReplicaGlobalSecondaryIndexDescription).OnDemandThroughputOverride +} + +func (_this ReplicaGlobalSecondaryIndexDescription) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case ReplicaGlobalSecondaryIndexDescription_ReplicaGlobalSecondaryIndexDescription: + { + return "ComAmazonawsDynamodbTypes.ReplicaGlobalSecondaryIndexDescription.ReplicaGlobalSecondaryIndexDescription" + "(" + _dafny.String(data.IndexName) + ", " + _dafny.String(data.ProvisionedThroughputOverride) + ", " + _dafny.String(data.OnDemandThroughputOverride) + ")" + } + default: + { + return "" + } + } +} + +func (_this ReplicaGlobalSecondaryIndexDescription) Equals(other ReplicaGlobalSecondaryIndexDescription) bool { + switch data1 := _this.Get_().(type) { + case ReplicaGlobalSecondaryIndexDescription_ReplicaGlobalSecondaryIndexDescription: + { + data2, ok := other.Get_().(ReplicaGlobalSecondaryIndexDescription_ReplicaGlobalSecondaryIndexDescription) + return ok && data1.IndexName.Equals(data2.IndexName) && data1.ProvisionedThroughputOverride.Equals(data2.ProvisionedThroughputOverride) && data1.OnDemandThroughputOverride.Equals(data2.OnDemandThroughputOverride) + } + default: + { + return false // unexpected + } + } +} + +func (_this ReplicaGlobalSecondaryIndexDescription) EqualsGeneric(other interface{}) bool { + typed, ok := other.(ReplicaGlobalSecondaryIndexDescription) + return ok && _this.Equals(typed) +} + +func Type_ReplicaGlobalSecondaryIndexDescription_() _dafny.TypeDescriptor { + return type_ReplicaGlobalSecondaryIndexDescription_{} +} + +type type_ReplicaGlobalSecondaryIndexDescription_ struct { +} + +func (_this type_ReplicaGlobalSecondaryIndexDescription_) Default() interface{} { + return Companion_ReplicaGlobalSecondaryIndexDescription_.Default() +} + +func (_this type_ReplicaGlobalSecondaryIndexDescription_) String() string { + return "ComAmazonawsDynamodbTypes.ReplicaGlobalSecondaryIndexDescription" +} +func (_this ReplicaGlobalSecondaryIndexDescription) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = ReplicaGlobalSecondaryIndexDescription{} + +// End of datatype ReplicaGlobalSecondaryIndexDescription + +// Definition of class ReplicaGlobalSecondaryIndexList +type ReplicaGlobalSecondaryIndexList struct { +} + +func New_ReplicaGlobalSecondaryIndexList_() *ReplicaGlobalSecondaryIndexList { + _this := ReplicaGlobalSecondaryIndexList{} + + return &_this +} + +type CompanionStruct_ReplicaGlobalSecondaryIndexList_ struct { +} + +var Companion_ReplicaGlobalSecondaryIndexList_ = CompanionStruct_ReplicaGlobalSecondaryIndexList_{} + +func (*ReplicaGlobalSecondaryIndexList) String() string { + return "ComAmazonawsDynamodbTypes.ReplicaGlobalSecondaryIndexList" +} + +// End of class ReplicaGlobalSecondaryIndexList + +func Type_ReplicaGlobalSecondaryIndexList_() _dafny.TypeDescriptor { + return type_ReplicaGlobalSecondaryIndexList_{} +} + +type type_ReplicaGlobalSecondaryIndexList_ struct { +} + +func (_this type_ReplicaGlobalSecondaryIndexList_) Default() interface{} { + return _dafny.EmptySeq +} + +func (_this type_ReplicaGlobalSecondaryIndexList_) String() string { + return "ComAmazonawsDynamodbTypes.ReplicaGlobalSecondaryIndexList" +} +func (_this *CompanionStruct_ReplicaGlobalSecondaryIndexList_) Is_(__source _dafny.Sequence) bool { + var _31_x _dafny.Sequence = (__source) + _ = _31_x + return Companion_Default___.IsValid__ReplicaGlobalSecondaryIndexList(_31_x) +} + +// Definition of datatype ReplicaGlobalSecondaryIndexSettingsDescription +type ReplicaGlobalSecondaryIndexSettingsDescription struct { + Data_ReplicaGlobalSecondaryIndexSettingsDescription_ +} + +func (_this ReplicaGlobalSecondaryIndexSettingsDescription) Get_() Data_ReplicaGlobalSecondaryIndexSettingsDescription_ { + return _this.Data_ReplicaGlobalSecondaryIndexSettingsDescription_ +} + +type Data_ReplicaGlobalSecondaryIndexSettingsDescription_ interface { + isReplicaGlobalSecondaryIndexSettingsDescription() +} + +type CompanionStruct_ReplicaGlobalSecondaryIndexSettingsDescription_ struct { +} + +var Companion_ReplicaGlobalSecondaryIndexSettingsDescription_ = CompanionStruct_ReplicaGlobalSecondaryIndexSettingsDescription_{} + +type ReplicaGlobalSecondaryIndexSettingsDescription_ReplicaGlobalSecondaryIndexSettingsDescription struct { + IndexName _dafny.Sequence + IndexStatus m_Wrappers.Option + ProvisionedReadCapacityUnits m_Wrappers.Option + ProvisionedReadCapacityAutoScalingSettings m_Wrappers.Option + ProvisionedWriteCapacityUnits m_Wrappers.Option + ProvisionedWriteCapacityAutoScalingSettings m_Wrappers.Option +} + +func (ReplicaGlobalSecondaryIndexSettingsDescription_ReplicaGlobalSecondaryIndexSettingsDescription) isReplicaGlobalSecondaryIndexSettingsDescription() { +} + +func (CompanionStruct_ReplicaGlobalSecondaryIndexSettingsDescription_) Create_ReplicaGlobalSecondaryIndexSettingsDescription_(IndexName _dafny.Sequence, IndexStatus m_Wrappers.Option, ProvisionedReadCapacityUnits m_Wrappers.Option, ProvisionedReadCapacityAutoScalingSettings m_Wrappers.Option, ProvisionedWriteCapacityUnits m_Wrappers.Option, ProvisionedWriteCapacityAutoScalingSettings m_Wrappers.Option) ReplicaGlobalSecondaryIndexSettingsDescription { + return ReplicaGlobalSecondaryIndexSettingsDescription{ReplicaGlobalSecondaryIndexSettingsDescription_ReplicaGlobalSecondaryIndexSettingsDescription{IndexName, IndexStatus, ProvisionedReadCapacityUnits, ProvisionedReadCapacityAutoScalingSettings, ProvisionedWriteCapacityUnits, ProvisionedWriteCapacityAutoScalingSettings}} +} + +func (_this ReplicaGlobalSecondaryIndexSettingsDescription) Is_ReplicaGlobalSecondaryIndexSettingsDescription() bool { + _, ok := _this.Get_().(ReplicaGlobalSecondaryIndexSettingsDescription_ReplicaGlobalSecondaryIndexSettingsDescription) + return ok +} + +func (CompanionStruct_ReplicaGlobalSecondaryIndexSettingsDescription_) Default() ReplicaGlobalSecondaryIndexSettingsDescription { + return Companion_ReplicaGlobalSecondaryIndexSettingsDescription_.Create_ReplicaGlobalSecondaryIndexSettingsDescription_(_dafny.EmptySeq.SetString(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this ReplicaGlobalSecondaryIndexSettingsDescription) Dtor_IndexName() _dafny.Sequence { + return _this.Get_().(ReplicaGlobalSecondaryIndexSettingsDescription_ReplicaGlobalSecondaryIndexSettingsDescription).IndexName +} + +func (_this ReplicaGlobalSecondaryIndexSettingsDescription) Dtor_IndexStatus() m_Wrappers.Option { + return _this.Get_().(ReplicaGlobalSecondaryIndexSettingsDescription_ReplicaGlobalSecondaryIndexSettingsDescription).IndexStatus +} + +func (_this ReplicaGlobalSecondaryIndexSettingsDescription) Dtor_ProvisionedReadCapacityUnits() m_Wrappers.Option { + return _this.Get_().(ReplicaGlobalSecondaryIndexSettingsDescription_ReplicaGlobalSecondaryIndexSettingsDescription).ProvisionedReadCapacityUnits +} + +func (_this ReplicaGlobalSecondaryIndexSettingsDescription) Dtor_ProvisionedReadCapacityAutoScalingSettings() m_Wrappers.Option { + return _this.Get_().(ReplicaGlobalSecondaryIndexSettingsDescription_ReplicaGlobalSecondaryIndexSettingsDescription).ProvisionedReadCapacityAutoScalingSettings +} + +func (_this ReplicaGlobalSecondaryIndexSettingsDescription) Dtor_ProvisionedWriteCapacityUnits() m_Wrappers.Option { + return _this.Get_().(ReplicaGlobalSecondaryIndexSettingsDescription_ReplicaGlobalSecondaryIndexSettingsDescription).ProvisionedWriteCapacityUnits +} + +func (_this ReplicaGlobalSecondaryIndexSettingsDescription) Dtor_ProvisionedWriteCapacityAutoScalingSettings() m_Wrappers.Option { + return _this.Get_().(ReplicaGlobalSecondaryIndexSettingsDescription_ReplicaGlobalSecondaryIndexSettingsDescription).ProvisionedWriteCapacityAutoScalingSettings +} + +func (_this ReplicaGlobalSecondaryIndexSettingsDescription) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case ReplicaGlobalSecondaryIndexSettingsDescription_ReplicaGlobalSecondaryIndexSettingsDescription: + { + return "ComAmazonawsDynamodbTypes.ReplicaGlobalSecondaryIndexSettingsDescription.ReplicaGlobalSecondaryIndexSettingsDescription" + "(" + _dafny.String(data.IndexName) + ", " + _dafny.String(data.IndexStatus) + ", " + _dafny.String(data.ProvisionedReadCapacityUnits) + ", " + _dafny.String(data.ProvisionedReadCapacityAutoScalingSettings) + ", " + _dafny.String(data.ProvisionedWriteCapacityUnits) + ", " + _dafny.String(data.ProvisionedWriteCapacityAutoScalingSettings) + ")" + } + default: + { + return "" + } + } +} + +func (_this ReplicaGlobalSecondaryIndexSettingsDescription) Equals(other ReplicaGlobalSecondaryIndexSettingsDescription) bool { + switch data1 := _this.Get_().(type) { + case ReplicaGlobalSecondaryIndexSettingsDescription_ReplicaGlobalSecondaryIndexSettingsDescription: + { + data2, ok := other.Get_().(ReplicaGlobalSecondaryIndexSettingsDescription_ReplicaGlobalSecondaryIndexSettingsDescription) + return ok && data1.IndexName.Equals(data2.IndexName) && data1.IndexStatus.Equals(data2.IndexStatus) && data1.ProvisionedReadCapacityUnits.Equals(data2.ProvisionedReadCapacityUnits) && data1.ProvisionedReadCapacityAutoScalingSettings.Equals(data2.ProvisionedReadCapacityAutoScalingSettings) && data1.ProvisionedWriteCapacityUnits.Equals(data2.ProvisionedWriteCapacityUnits) && data1.ProvisionedWriteCapacityAutoScalingSettings.Equals(data2.ProvisionedWriteCapacityAutoScalingSettings) + } + default: + { + return false // unexpected + } + } +} + +func (_this ReplicaGlobalSecondaryIndexSettingsDescription) EqualsGeneric(other interface{}) bool { + typed, ok := other.(ReplicaGlobalSecondaryIndexSettingsDescription) + return ok && _this.Equals(typed) +} + +func Type_ReplicaGlobalSecondaryIndexSettingsDescription_() _dafny.TypeDescriptor { + return type_ReplicaGlobalSecondaryIndexSettingsDescription_{} +} + +type type_ReplicaGlobalSecondaryIndexSettingsDescription_ struct { +} + +func (_this type_ReplicaGlobalSecondaryIndexSettingsDescription_) Default() interface{} { + return Companion_ReplicaGlobalSecondaryIndexSettingsDescription_.Default() +} + +func (_this type_ReplicaGlobalSecondaryIndexSettingsDescription_) String() string { + return "ComAmazonawsDynamodbTypes.ReplicaGlobalSecondaryIndexSettingsDescription" +} +func (_this ReplicaGlobalSecondaryIndexSettingsDescription) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = ReplicaGlobalSecondaryIndexSettingsDescription{} + +// End of datatype ReplicaGlobalSecondaryIndexSettingsDescription + +// Definition of datatype ReplicaGlobalSecondaryIndexSettingsUpdate +type ReplicaGlobalSecondaryIndexSettingsUpdate struct { + Data_ReplicaGlobalSecondaryIndexSettingsUpdate_ +} + +func (_this ReplicaGlobalSecondaryIndexSettingsUpdate) Get_() Data_ReplicaGlobalSecondaryIndexSettingsUpdate_ { + return _this.Data_ReplicaGlobalSecondaryIndexSettingsUpdate_ +} + +type Data_ReplicaGlobalSecondaryIndexSettingsUpdate_ interface { + isReplicaGlobalSecondaryIndexSettingsUpdate() +} + +type CompanionStruct_ReplicaGlobalSecondaryIndexSettingsUpdate_ struct { +} + +var Companion_ReplicaGlobalSecondaryIndexSettingsUpdate_ = CompanionStruct_ReplicaGlobalSecondaryIndexSettingsUpdate_{} + +type ReplicaGlobalSecondaryIndexSettingsUpdate_ReplicaGlobalSecondaryIndexSettingsUpdate struct { + IndexName _dafny.Sequence + ProvisionedReadCapacityUnits m_Wrappers.Option + ProvisionedReadCapacityAutoScalingSettingsUpdate m_Wrappers.Option +} + +func (ReplicaGlobalSecondaryIndexSettingsUpdate_ReplicaGlobalSecondaryIndexSettingsUpdate) isReplicaGlobalSecondaryIndexSettingsUpdate() { +} + +func (CompanionStruct_ReplicaGlobalSecondaryIndexSettingsUpdate_) Create_ReplicaGlobalSecondaryIndexSettingsUpdate_(IndexName _dafny.Sequence, ProvisionedReadCapacityUnits m_Wrappers.Option, ProvisionedReadCapacityAutoScalingSettingsUpdate m_Wrappers.Option) ReplicaGlobalSecondaryIndexSettingsUpdate { + return ReplicaGlobalSecondaryIndexSettingsUpdate{ReplicaGlobalSecondaryIndexSettingsUpdate_ReplicaGlobalSecondaryIndexSettingsUpdate{IndexName, ProvisionedReadCapacityUnits, ProvisionedReadCapacityAutoScalingSettingsUpdate}} +} + +func (_this ReplicaGlobalSecondaryIndexSettingsUpdate) Is_ReplicaGlobalSecondaryIndexSettingsUpdate() bool { + _, ok := _this.Get_().(ReplicaGlobalSecondaryIndexSettingsUpdate_ReplicaGlobalSecondaryIndexSettingsUpdate) + return ok +} + +func (CompanionStruct_ReplicaGlobalSecondaryIndexSettingsUpdate_) Default() ReplicaGlobalSecondaryIndexSettingsUpdate { + return Companion_ReplicaGlobalSecondaryIndexSettingsUpdate_.Create_ReplicaGlobalSecondaryIndexSettingsUpdate_(_dafny.EmptySeq.SetString(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this ReplicaGlobalSecondaryIndexSettingsUpdate) Dtor_IndexName() _dafny.Sequence { + return _this.Get_().(ReplicaGlobalSecondaryIndexSettingsUpdate_ReplicaGlobalSecondaryIndexSettingsUpdate).IndexName +} + +func (_this ReplicaGlobalSecondaryIndexSettingsUpdate) Dtor_ProvisionedReadCapacityUnits() m_Wrappers.Option { + return _this.Get_().(ReplicaGlobalSecondaryIndexSettingsUpdate_ReplicaGlobalSecondaryIndexSettingsUpdate).ProvisionedReadCapacityUnits +} + +func (_this ReplicaGlobalSecondaryIndexSettingsUpdate) Dtor_ProvisionedReadCapacityAutoScalingSettingsUpdate() m_Wrappers.Option { + return _this.Get_().(ReplicaGlobalSecondaryIndexSettingsUpdate_ReplicaGlobalSecondaryIndexSettingsUpdate).ProvisionedReadCapacityAutoScalingSettingsUpdate +} + +func (_this ReplicaGlobalSecondaryIndexSettingsUpdate) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case ReplicaGlobalSecondaryIndexSettingsUpdate_ReplicaGlobalSecondaryIndexSettingsUpdate: + { + return "ComAmazonawsDynamodbTypes.ReplicaGlobalSecondaryIndexSettingsUpdate.ReplicaGlobalSecondaryIndexSettingsUpdate" + "(" + _dafny.String(data.IndexName) + ", " + _dafny.String(data.ProvisionedReadCapacityUnits) + ", " + _dafny.String(data.ProvisionedReadCapacityAutoScalingSettingsUpdate) + ")" + } + default: + { + return "" + } + } +} + +func (_this ReplicaGlobalSecondaryIndexSettingsUpdate) Equals(other ReplicaGlobalSecondaryIndexSettingsUpdate) bool { + switch data1 := _this.Get_().(type) { + case ReplicaGlobalSecondaryIndexSettingsUpdate_ReplicaGlobalSecondaryIndexSettingsUpdate: + { + data2, ok := other.Get_().(ReplicaGlobalSecondaryIndexSettingsUpdate_ReplicaGlobalSecondaryIndexSettingsUpdate) + return ok && data1.IndexName.Equals(data2.IndexName) && data1.ProvisionedReadCapacityUnits.Equals(data2.ProvisionedReadCapacityUnits) && data1.ProvisionedReadCapacityAutoScalingSettingsUpdate.Equals(data2.ProvisionedReadCapacityAutoScalingSettingsUpdate) + } + default: + { + return false // unexpected + } + } +} + +func (_this ReplicaGlobalSecondaryIndexSettingsUpdate) EqualsGeneric(other interface{}) bool { + typed, ok := other.(ReplicaGlobalSecondaryIndexSettingsUpdate) + return ok && _this.Equals(typed) +} + +func Type_ReplicaGlobalSecondaryIndexSettingsUpdate_() _dafny.TypeDescriptor { + return type_ReplicaGlobalSecondaryIndexSettingsUpdate_{} +} + +type type_ReplicaGlobalSecondaryIndexSettingsUpdate_ struct { +} + +func (_this type_ReplicaGlobalSecondaryIndexSettingsUpdate_) Default() interface{} { + return Companion_ReplicaGlobalSecondaryIndexSettingsUpdate_.Default() +} + +func (_this type_ReplicaGlobalSecondaryIndexSettingsUpdate_) String() string { + return "ComAmazonawsDynamodbTypes.ReplicaGlobalSecondaryIndexSettingsUpdate" +} +func (_this ReplicaGlobalSecondaryIndexSettingsUpdate) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = ReplicaGlobalSecondaryIndexSettingsUpdate{} + +// End of datatype ReplicaGlobalSecondaryIndexSettingsUpdate + +// Definition of class ReplicaGlobalSecondaryIndexSettingsUpdateList +type ReplicaGlobalSecondaryIndexSettingsUpdateList struct { +} + +func New_ReplicaGlobalSecondaryIndexSettingsUpdateList_() *ReplicaGlobalSecondaryIndexSettingsUpdateList { + _this := ReplicaGlobalSecondaryIndexSettingsUpdateList{} + + return &_this +} + +type CompanionStruct_ReplicaGlobalSecondaryIndexSettingsUpdateList_ struct { +} + +var Companion_ReplicaGlobalSecondaryIndexSettingsUpdateList_ = CompanionStruct_ReplicaGlobalSecondaryIndexSettingsUpdateList_{} + +func (*ReplicaGlobalSecondaryIndexSettingsUpdateList) String() string { + return "ComAmazonawsDynamodbTypes.ReplicaGlobalSecondaryIndexSettingsUpdateList" +} + +// End of class ReplicaGlobalSecondaryIndexSettingsUpdateList + +func Type_ReplicaGlobalSecondaryIndexSettingsUpdateList_() _dafny.TypeDescriptor { + return type_ReplicaGlobalSecondaryIndexSettingsUpdateList_{} +} + +type type_ReplicaGlobalSecondaryIndexSettingsUpdateList_ struct { +} + +func (_this type_ReplicaGlobalSecondaryIndexSettingsUpdateList_) Default() interface{} { + return _dafny.EmptySeq +} + +func (_this type_ReplicaGlobalSecondaryIndexSettingsUpdateList_) String() string { + return "ComAmazonawsDynamodbTypes.ReplicaGlobalSecondaryIndexSettingsUpdateList" +} +func (_this *CompanionStruct_ReplicaGlobalSecondaryIndexSettingsUpdateList_) Is_(__source _dafny.Sequence) bool { + var _32_x _dafny.Sequence = (__source) + _ = _32_x + return Companion_Default___.IsValid__ReplicaGlobalSecondaryIndexSettingsUpdateList(_32_x) +} + +// Definition of datatype ReplicaSettingsDescription +type ReplicaSettingsDescription struct { + Data_ReplicaSettingsDescription_ +} + +func (_this ReplicaSettingsDescription) Get_() Data_ReplicaSettingsDescription_ { + return _this.Data_ReplicaSettingsDescription_ +} + +type Data_ReplicaSettingsDescription_ interface { + isReplicaSettingsDescription() +} + +type CompanionStruct_ReplicaSettingsDescription_ struct { +} + +var Companion_ReplicaSettingsDescription_ = CompanionStruct_ReplicaSettingsDescription_{} + +type ReplicaSettingsDescription_ReplicaSettingsDescription struct { + RegionName _dafny.Sequence + ReplicaStatus m_Wrappers.Option + ReplicaBillingModeSummary m_Wrappers.Option + ReplicaProvisionedReadCapacityUnits m_Wrappers.Option + ReplicaProvisionedReadCapacityAutoScalingSettings m_Wrappers.Option + ReplicaProvisionedWriteCapacityUnits m_Wrappers.Option + ReplicaProvisionedWriteCapacityAutoScalingSettings m_Wrappers.Option + ReplicaGlobalSecondaryIndexSettings m_Wrappers.Option + ReplicaTableClassSummary m_Wrappers.Option +} + +func (ReplicaSettingsDescription_ReplicaSettingsDescription) isReplicaSettingsDescription() {} + +func (CompanionStruct_ReplicaSettingsDescription_) Create_ReplicaSettingsDescription_(RegionName _dafny.Sequence, ReplicaStatus m_Wrappers.Option, ReplicaBillingModeSummary m_Wrappers.Option, ReplicaProvisionedReadCapacityUnits m_Wrappers.Option, ReplicaProvisionedReadCapacityAutoScalingSettings m_Wrappers.Option, ReplicaProvisionedWriteCapacityUnits m_Wrappers.Option, ReplicaProvisionedWriteCapacityAutoScalingSettings m_Wrappers.Option, ReplicaGlobalSecondaryIndexSettings m_Wrappers.Option, ReplicaTableClassSummary m_Wrappers.Option) ReplicaSettingsDescription { + return ReplicaSettingsDescription{ReplicaSettingsDescription_ReplicaSettingsDescription{RegionName, ReplicaStatus, ReplicaBillingModeSummary, ReplicaProvisionedReadCapacityUnits, ReplicaProvisionedReadCapacityAutoScalingSettings, ReplicaProvisionedWriteCapacityUnits, ReplicaProvisionedWriteCapacityAutoScalingSettings, ReplicaGlobalSecondaryIndexSettings, ReplicaTableClassSummary}} +} + +func (_this ReplicaSettingsDescription) Is_ReplicaSettingsDescription() bool { + _, ok := _this.Get_().(ReplicaSettingsDescription_ReplicaSettingsDescription) + return ok +} + +func (CompanionStruct_ReplicaSettingsDescription_) Default() ReplicaSettingsDescription { + return Companion_ReplicaSettingsDescription_.Create_ReplicaSettingsDescription_(_dafny.EmptySeq.SetString(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this ReplicaSettingsDescription) Dtor_RegionName() _dafny.Sequence { + return _this.Get_().(ReplicaSettingsDescription_ReplicaSettingsDescription).RegionName +} + +func (_this ReplicaSettingsDescription) Dtor_ReplicaStatus() m_Wrappers.Option { + return _this.Get_().(ReplicaSettingsDescription_ReplicaSettingsDescription).ReplicaStatus +} + +func (_this ReplicaSettingsDescription) Dtor_ReplicaBillingModeSummary() m_Wrappers.Option { + return _this.Get_().(ReplicaSettingsDescription_ReplicaSettingsDescription).ReplicaBillingModeSummary +} + +func (_this ReplicaSettingsDescription) Dtor_ReplicaProvisionedReadCapacityUnits() m_Wrappers.Option { + return _this.Get_().(ReplicaSettingsDescription_ReplicaSettingsDescription).ReplicaProvisionedReadCapacityUnits +} + +func (_this ReplicaSettingsDescription) Dtor_ReplicaProvisionedReadCapacityAutoScalingSettings() m_Wrappers.Option { + return _this.Get_().(ReplicaSettingsDescription_ReplicaSettingsDescription).ReplicaProvisionedReadCapacityAutoScalingSettings +} + +func (_this ReplicaSettingsDescription) Dtor_ReplicaProvisionedWriteCapacityUnits() m_Wrappers.Option { + return _this.Get_().(ReplicaSettingsDescription_ReplicaSettingsDescription).ReplicaProvisionedWriteCapacityUnits +} + +func (_this ReplicaSettingsDescription) Dtor_ReplicaProvisionedWriteCapacityAutoScalingSettings() m_Wrappers.Option { + return _this.Get_().(ReplicaSettingsDescription_ReplicaSettingsDescription).ReplicaProvisionedWriteCapacityAutoScalingSettings +} + +func (_this ReplicaSettingsDescription) Dtor_ReplicaGlobalSecondaryIndexSettings() m_Wrappers.Option { + return _this.Get_().(ReplicaSettingsDescription_ReplicaSettingsDescription).ReplicaGlobalSecondaryIndexSettings +} + +func (_this ReplicaSettingsDescription) Dtor_ReplicaTableClassSummary() m_Wrappers.Option { + return _this.Get_().(ReplicaSettingsDescription_ReplicaSettingsDescription).ReplicaTableClassSummary +} + +func (_this ReplicaSettingsDescription) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case ReplicaSettingsDescription_ReplicaSettingsDescription: + { + return "ComAmazonawsDynamodbTypes.ReplicaSettingsDescription.ReplicaSettingsDescription" + "(" + _dafny.String(data.RegionName) + ", " + _dafny.String(data.ReplicaStatus) + ", " + _dafny.String(data.ReplicaBillingModeSummary) + ", " + _dafny.String(data.ReplicaProvisionedReadCapacityUnits) + ", " + _dafny.String(data.ReplicaProvisionedReadCapacityAutoScalingSettings) + ", " + _dafny.String(data.ReplicaProvisionedWriteCapacityUnits) + ", " + _dafny.String(data.ReplicaProvisionedWriteCapacityAutoScalingSettings) + ", " + _dafny.String(data.ReplicaGlobalSecondaryIndexSettings) + ", " + _dafny.String(data.ReplicaTableClassSummary) + ")" + } + default: + { + return "" + } + } +} + +func (_this ReplicaSettingsDescription) Equals(other ReplicaSettingsDescription) bool { + switch data1 := _this.Get_().(type) { + case ReplicaSettingsDescription_ReplicaSettingsDescription: + { + data2, ok := other.Get_().(ReplicaSettingsDescription_ReplicaSettingsDescription) + return ok && data1.RegionName.Equals(data2.RegionName) && data1.ReplicaStatus.Equals(data2.ReplicaStatus) && data1.ReplicaBillingModeSummary.Equals(data2.ReplicaBillingModeSummary) && data1.ReplicaProvisionedReadCapacityUnits.Equals(data2.ReplicaProvisionedReadCapacityUnits) && data1.ReplicaProvisionedReadCapacityAutoScalingSettings.Equals(data2.ReplicaProvisionedReadCapacityAutoScalingSettings) && data1.ReplicaProvisionedWriteCapacityUnits.Equals(data2.ReplicaProvisionedWriteCapacityUnits) && data1.ReplicaProvisionedWriteCapacityAutoScalingSettings.Equals(data2.ReplicaProvisionedWriteCapacityAutoScalingSettings) && data1.ReplicaGlobalSecondaryIndexSettings.Equals(data2.ReplicaGlobalSecondaryIndexSettings) && data1.ReplicaTableClassSummary.Equals(data2.ReplicaTableClassSummary) + } + default: + { + return false // unexpected + } + } +} + +func (_this ReplicaSettingsDescription) EqualsGeneric(other interface{}) bool { + typed, ok := other.(ReplicaSettingsDescription) + return ok && _this.Equals(typed) +} + +func Type_ReplicaSettingsDescription_() _dafny.TypeDescriptor { + return type_ReplicaSettingsDescription_{} +} + +type type_ReplicaSettingsDescription_ struct { +} + +func (_this type_ReplicaSettingsDescription_) Default() interface{} { + return Companion_ReplicaSettingsDescription_.Default() +} + +func (_this type_ReplicaSettingsDescription_) String() string { + return "ComAmazonawsDynamodbTypes.ReplicaSettingsDescription" +} +func (_this ReplicaSettingsDescription) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = ReplicaSettingsDescription{} + +// End of datatype ReplicaSettingsDescription + +// Definition of datatype ReplicaSettingsUpdate +type ReplicaSettingsUpdate struct { + Data_ReplicaSettingsUpdate_ +} + +func (_this ReplicaSettingsUpdate) Get_() Data_ReplicaSettingsUpdate_ { + return _this.Data_ReplicaSettingsUpdate_ +} + +type Data_ReplicaSettingsUpdate_ interface { + isReplicaSettingsUpdate() +} + +type CompanionStruct_ReplicaSettingsUpdate_ struct { +} + +var Companion_ReplicaSettingsUpdate_ = CompanionStruct_ReplicaSettingsUpdate_{} + +type ReplicaSettingsUpdate_ReplicaSettingsUpdate struct { + RegionName _dafny.Sequence + ReplicaProvisionedReadCapacityUnits m_Wrappers.Option + ReplicaProvisionedReadCapacityAutoScalingSettingsUpdate m_Wrappers.Option + ReplicaGlobalSecondaryIndexSettingsUpdate m_Wrappers.Option + ReplicaTableClass m_Wrappers.Option +} + +func (ReplicaSettingsUpdate_ReplicaSettingsUpdate) isReplicaSettingsUpdate() {} + +func (CompanionStruct_ReplicaSettingsUpdate_) Create_ReplicaSettingsUpdate_(RegionName _dafny.Sequence, ReplicaProvisionedReadCapacityUnits m_Wrappers.Option, ReplicaProvisionedReadCapacityAutoScalingSettingsUpdate m_Wrappers.Option, ReplicaGlobalSecondaryIndexSettingsUpdate m_Wrappers.Option, ReplicaTableClass m_Wrappers.Option) ReplicaSettingsUpdate { + return ReplicaSettingsUpdate{ReplicaSettingsUpdate_ReplicaSettingsUpdate{RegionName, ReplicaProvisionedReadCapacityUnits, ReplicaProvisionedReadCapacityAutoScalingSettingsUpdate, ReplicaGlobalSecondaryIndexSettingsUpdate, ReplicaTableClass}} +} + +func (_this ReplicaSettingsUpdate) Is_ReplicaSettingsUpdate() bool { + _, ok := _this.Get_().(ReplicaSettingsUpdate_ReplicaSettingsUpdate) + return ok +} + +func (CompanionStruct_ReplicaSettingsUpdate_) Default() ReplicaSettingsUpdate { + return Companion_ReplicaSettingsUpdate_.Create_ReplicaSettingsUpdate_(_dafny.EmptySeq.SetString(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this ReplicaSettingsUpdate) Dtor_RegionName() _dafny.Sequence { + return _this.Get_().(ReplicaSettingsUpdate_ReplicaSettingsUpdate).RegionName +} + +func (_this ReplicaSettingsUpdate) Dtor_ReplicaProvisionedReadCapacityUnits() m_Wrappers.Option { + return _this.Get_().(ReplicaSettingsUpdate_ReplicaSettingsUpdate).ReplicaProvisionedReadCapacityUnits +} + +func (_this ReplicaSettingsUpdate) Dtor_ReplicaProvisionedReadCapacityAutoScalingSettingsUpdate() m_Wrappers.Option { + return _this.Get_().(ReplicaSettingsUpdate_ReplicaSettingsUpdate).ReplicaProvisionedReadCapacityAutoScalingSettingsUpdate +} + +func (_this ReplicaSettingsUpdate) Dtor_ReplicaGlobalSecondaryIndexSettingsUpdate() m_Wrappers.Option { + return _this.Get_().(ReplicaSettingsUpdate_ReplicaSettingsUpdate).ReplicaGlobalSecondaryIndexSettingsUpdate +} + +func (_this ReplicaSettingsUpdate) Dtor_ReplicaTableClass() m_Wrappers.Option { + return _this.Get_().(ReplicaSettingsUpdate_ReplicaSettingsUpdate).ReplicaTableClass +} + +func (_this ReplicaSettingsUpdate) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case ReplicaSettingsUpdate_ReplicaSettingsUpdate: + { + return "ComAmazonawsDynamodbTypes.ReplicaSettingsUpdate.ReplicaSettingsUpdate" + "(" + _dafny.String(data.RegionName) + ", " + _dafny.String(data.ReplicaProvisionedReadCapacityUnits) + ", " + _dafny.String(data.ReplicaProvisionedReadCapacityAutoScalingSettingsUpdate) + ", " + _dafny.String(data.ReplicaGlobalSecondaryIndexSettingsUpdate) + ", " + _dafny.String(data.ReplicaTableClass) + ")" + } + default: + { + return "" + } + } +} + +func (_this ReplicaSettingsUpdate) Equals(other ReplicaSettingsUpdate) bool { + switch data1 := _this.Get_().(type) { + case ReplicaSettingsUpdate_ReplicaSettingsUpdate: + { + data2, ok := other.Get_().(ReplicaSettingsUpdate_ReplicaSettingsUpdate) + return ok && data1.RegionName.Equals(data2.RegionName) && data1.ReplicaProvisionedReadCapacityUnits.Equals(data2.ReplicaProvisionedReadCapacityUnits) && data1.ReplicaProvisionedReadCapacityAutoScalingSettingsUpdate.Equals(data2.ReplicaProvisionedReadCapacityAutoScalingSettingsUpdate) && data1.ReplicaGlobalSecondaryIndexSettingsUpdate.Equals(data2.ReplicaGlobalSecondaryIndexSettingsUpdate) && data1.ReplicaTableClass.Equals(data2.ReplicaTableClass) + } + default: + { + return false // unexpected + } + } +} + +func (_this ReplicaSettingsUpdate) EqualsGeneric(other interface{}) bool { + typed, ok := other.(ReplicaSettingsUpdate) + return ok && _this.Equals(typed) +} + +func Type_ReplicaSettingsUpdate_() _dafny.TypeDescriptor { + return type_ReplicaSettingsUpdate_{} +} + +type type_ReplicaSettingsUpdate_ struct { +} + +func (_this type_ReplicaSettingsUpdate_) Default() interface{} { + return Companion_ReplicaSettingsUpdate_.Default() +} + +func (_this type_ReplicaSettingsUpdate_) String() string { + return "ComAmazonawsDynamodbTypes.ReplicaSettingsUpdate" +} +func (_this ReplicaSettingsUpdate) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = ReplicaSettingsUpdate{} + +// End of datatype ReplicaSettingsUpdate + +// Definition of class ReplicaSettingsUpdateList +type ReplicaSettingsUpdateList struct { +} + +func New_ReplicaSettingsUpdateList_() *ReplicaSettingsUpdateList { + _this := ReplicaSettingsUpdateList{} + + return &_this +} + +type CompanionStruct_ReplicaSettingsUpdateList_ struct { +} + +var Companion_ReplicaSettingsUpdateList_ = CompanionStruct_ReplicaSettingsUpdateList_{} + +func (*ReplicaSettingsUpdateList) String() string { + return "ComAmazonawsDynamodbTypes.ReplicaSettingsUpdateList" +} + +// End of class ReplicaSettingsUpdateList + +func Type_ReplicaSettingsUpdateList_() _dafny.TypeDescriptor { + return type_ReplicaSettingsUpdateList_{} +} + +type type_ReplicaSettingsUpdateList_ struct { +} + +func (_this type_ReplicaSettingsUpdateList_) Default() interface{} { + return _dafny.EmptySeq +} + +func (_this type_ReplicaSettingsUpdateList_) String() string { + return "ComAmazonawsDynamodbTypes.ReplicaSettingsUpdateList" +} +func (_this *CompanionStruct_ReplicaSettingsUpdateList_) Is_(__source _dafny.Sequence) bool { + var _33_x _dafny.Sequence = (__source) + _ = _33_x + return Companion_Default___.IsValid__ReplicaSettingsUpdateList(_33_x) +} + +// Definition of datatype ReplicaStatus +type ReplicaStatus struct { + Data_ReplicaStatus_ +} + +func (_this ReplicaStatus) Get_() Data_ReplicaStatus_ { + return _this.Data_ReplicaStatus_ +} + +type Data_ReplicaStatus_ interface { + isReplicaStatus() +} + +type CompanionStruct_ReplicaStatus_ struct { +} + +var Companion_ReplicaStatus_ = CompanionStruct_ReplicaStatus_{} + +type ReplicaStatus_CREATING struct { +} + +func (ReplicaStatus_CREATING) isReplicaStatus() {} + +func (CompanionStruct_ReplicaStatus_) Create_CREATING_() ReplicaStatus { + return ReplicaStatus{ReplicaStatus_CREATING{}} +} + +func (_this ReplicaStatus) Is_CREATING() bool { + _, ok := _this.Get_().(ReplicaStatus_CREATING) + return ok +} + +type ReplicaStatus_CREATION__FAILED struct { +} + +func (ReplicaStatus_CREATION__FAILED) isReplicaStatus() {} + +func (CompanionStruct_ReplicaStatus_) Create_CREATION__FAILED_() ReplicaStatus { + return ReplicaStatus{ReplicaStatus_CREATION__FAILED{}} +} + +func (_this ReplicaStatus) Is_CREATION__FAILED() bool { + _, ok := _this.Get_().(ReplicaStatus_CREATION__FAILED) + return ok +} + +type ReplicaStatus_UPDATING struct { +} + +func (ReplicaStatus_UPDATING) isReplicaStatus() {} + +func (CompanionStruct_ReplicaStatus_) Create_UPDATING_() ReplicaStatus { + return ReplicaStatus{ReplicaStatus_UPDATING{}} +} + +func (_this ReplicaStatus) Is_UPDATING() bool { + _, ok := _this.Get_().(ReplicaStatus_UPDATING) + return ok +} + +type ReplicaStatus_DELETING struct { +} + +func (ReplicaStatus_DELETING) isReplicaStatus() {} + +func (CompanionStruct_ReplicaStatus_) Create_DELETING_() ReplicaStatus { + return ReplicaStatus{ReplicaStatus_DELETING{}} +} + +func (_this ReplicaStatus) Is_DELETING() bool { + _, ok := _this.Get_().(ReplicaStatus_DELETING) + return ok +} + +type ReplicaStatus_ACTIVE struct { +} + +func (ReplicaStatus_ACTIVE) isReplicaStatus() {} + +func (CompanionStruct_ReplicaStatus_) Create_ACTIVE_() ReplicaStatus { + return ReplicaStatus{ReplicaStatus_ACTIVE{}} +} + +func (_this ReplicaStatus) Is_ACTIVE() bool { + _, ok := _this.Get_().(ReplicaStatus_ACTIVE) + return ok +} + +type ReplicaStatus_REGION__DISABLED struct { +} + +func (ReplicaStatus_REGION__DISABLED) isReplicaStatus() {} + +func (CompanionStruct_ReplicaStatus_) Create_REGION__DISABLED_() ReplicaStatus { + return ReplicaStatus{ReplicaStatus_REGION__DISABLED{}} +} + +func (_this ReplicaStatus) Is_REGION__DISABLED() bool { + _, ok := _this.Get_().(ReplicaStatus_REGION__DISABLED) + return ok +} + +type ReplicaStatus_INACCESSIBLE__ENCRYPTION__CREDENTIALS struct { +} + +func (ReplicaStatus_INACCESSIBLE__ENCRYPTION__CREDENTIALS) isReplicaStatus() {} + +func (CompanionStruct_ReplicaStatus_) Create_INACCESSIBLE__ENCRYPTION__CREDENTIALS_() ReplicaStatus { + return ReplicaStatus{ReplicaStatus_INACCESSIBLE__ENCRYPTION__CREDENTIALS{}} +} + +func (_this ReplicaStatus) Is_INACCESSIBLE__ENCRYPTION__CREDENTIALS() bool { + _, ok := _this.Get_().(ReplicaStatus_INACCESSIBLE__ENCRYPTION__CREDENTIALS) + return ok +} + +func (CompanionStruct_ReplicaStatus_) Default() ReplicaStatus { + return Companion_ReplicaStatus_.Create_CREATING_() +} + +func (_ CompanionStruct_ReplicaStatus_) AllSingletonConstructors() _dafny.Iterator { + i := -1 + return func() (interface{}, bool) { + i++ + switch i { + case 0: + return Companion_ReplicaStatus_.Create_CREATING_(), true + case 1: + return Companion_ReplicaStatus_.Create_CREATION__FAILED_(), true + case 2: + return Companion_ReplicaStatus_.Create_UPDATING_(), true + case 3: + return Companion_ReplicaStatus_.Create_DELETING_(), true + case 4: + return Companion_ReplicaStatus_.Create_ACTIVE_(), true + case 5: + return Companion_ReplicaStatus_.Create_REGION__DISABLED_(), true + case 6: + return Companion_ReplicaStatus_.Create_INACCESSIBLE__ENCRYPTION__CREDENTIALS_(), true + default: + return ReplicaStatus{}, false + } + } +} + +func (_this ReplicaStatus) String() string { + switch _this.Get_().(type) { + case nil: + return "null" + case ReplicaStatus_CREATING: + { + return "ComAmazonawsDynamodbTypes.ReplicaStatus.CREATING" + } + case ReplicaStatus_CREATION__FAILED: + { + return "ComAmazonawsDynamodbTypes.ReplicaStatus.CREATION_FAILED" + } + case ReplicaStatus_UPDATING: + { + return "ComAmazonawsDynamodbTypes.ReplicaStatus.UPDATING" + } + case ReplicaStatus_DELETING: + { + return "ComAmazonawsDynamodbTypes.ReplicaStatus.DELETING" + } + case ReplicaStatus_ACTIVE: + { + return "ComAmazonawsDynamodbTypes.ReplicaStatus.ACTIVE" + } + case ReplicaStatus_REGION__DISABLED: + { + return "ComAmazonawsDynamodbTypes.ReplicaStatus.REGION_DISABLED" + } + case ReplicaStatus_INACCESSIBLE__ENCRYPTION__CREDENTIALS: + { + return "ComAmazonawsDynamodbTypes.ReplicaStatus.INACCESSIBLE_ENCRYPTION_CREDENTIALS" + } + default: + { + return "" + } + } +} + +func (_this ReplicaStatus) Equals(other ReplicaStatus) bool { + switch _this.Get_().(type) { + case ReplicaStatus_CREATING: + { + _, ok := other.Get_().(ReplicaStatus_CREATING) + return ok + } + case ReplicaStatus_CREATION__FAILED: + { + _, ok := other.Get_().(ReplicaStatus_CREATION__FAILED) + return ok + } + case ReplicaStatus_UPDATING: + { + _, ok := other.Get_().(ReplicaStatus_UPDATING) + return ok + } + case ReplicaStatus_DELETING: + { + _, ok := other.Get_().(ReplicaStatus_DELETING) + return ok + } + case ReplicaStatus_ACTIVE: + { + _, ok := other.Get_().(ReplicaStatus_ACTIVE) + return ok + } + case ReplicaStatus_REGION__DISABLED: + { + _, ok := other.Get_().(ReplicaStatus_REGION__DISABLED) + return ok + } + case ReplicaStatus_INACCESSIBLE__ENCRYPTION__CREDENTIALS: + { + _, ok := other.Get_().(ReplicaStatus_INACCESSIBLE__ENCRYPTION__CREDENTIALS) + return ok + } + default: + { + return false // unexpected + } + } +} + +func (_this ReplicaStatus) EqualsGeneric(other interface{}) bool { + typed, ok := other.(ReplicaStatus) + return ok && _this.Equals(typed) +} + +func Type_ReplicaStatus_() _dafny.TypeDescriptor { + return type_ReplicaStatus_{} +} + +type type_ReplicaStatus_ struct { +} + +func (_this type_ReplicaStatus_) Default() interface{} { + return Companion_ReplicaStatus_.Default() +} + +func (_this type_ReplicaStatus_) String() string { + return "ComAmazonawsDynamodbTypes.ReplicaStatus" +} +func (_this ReplicaStatus) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = ReplicaStatus{} + +// End of datatype ReplicaStatus + +// Definition of datatype ReplicationGroupUpdate +type ReplicationGroupUpdate struct { + Data_ReplicationGroupUpdate_ +} + +func (_this ReplicationGroupUpdate) Get_() Data_ReplicationGroupUpdate_ { + return _this.Data_ReplicationGroupUpdate_ +} + +type Data_ReplicationGroupUpdate_ interface { + isReplicationGroupUpdate() +} + +type CompanionStruct_ReplicationGroupUpdate_ struct { +} + +var Companion_ReplicationGroupUpdate_ = CompanionStruct_ReplicationGroupUpdate_{} + +type ReplicationGroupUpdate_ReplicationGroupUpdate struct { + Create m_Wrappers.Option + Update m_Wrappers.Option + Delete m_Wrappers.Option +} + +func (ReplicationGroupUpdate_ReplicationGroupUpdate) isReplicationGroupUpdate() {} + +func (CompanionStruct_ReplicationGroupUpdate_) Create_ReplicationGroupUpdate_(Create m_Wrappers.Option, Update m_Wrappers.Option, Delete m_Wrappers.Option) ReplicationGroupUpdate { + return ReplicationGroupUpdate{ReplicationGroupUpdate_ReplicationGroupUpdate{Create, Update, Delete}} +} + +func (_this ReplicationGroupUpdate) Is_ReplicationGroupUpdate() bool { + _, ok := _this.Get_().(ReplicationGroupUpdate_ReplicationGroupUpdate) + return ok +} + +func (CompanionStruct_ReplicationGroupUpdate_) Default() ReplicationGroupUpdate { + return Companion_ReplicationGroupUpdate_.Create_ReplicationGroupUpdate_(m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this ReplicationGroupUpdate) Dtor_Create() m_Wrappers.Option { + return _this.Get_().(ReplicationGroupUpdate_ReplicationGroupUpdate).Create +} + +func (_this ReplicationGroupUpdate) Dtor_Update() m_Wrappers.Option { + return _this.Get_().(ReplicationGroupUpdate_ReplicationGroupUpdate).Update +} + +func (_this ReplicationGroupUpdate) Dtor_Delete() m_Wrappers.Option { + return _this.Get_().(ReplicationGroupUpdate_ReplicationGroupUpdate).Delete +} + +func (_this ReplicationGroupUpdate) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case ReplicationGroupUpdate_ReplicationGroupUpdate: + { + return "ComAmazonawsDynamodbTypes.ReplicationGroupUpdate.ReplicationGroupUpdate" + "(" + _dafny.String(data.Create) + ", " + _dafny.String(data.Update) + ", " + _dafny.String(data.Delete) + ")" + } + default: + { + return "" + } + } +} + +func (_this ReplicationGroupUpdate) Equals(other ReplicationGroupUpdate) bool { + switch data1 := _this.Get_().(type) { + case ReplicationGroupUpdate_ReplicationGroupUpdate: + { + data2, ok := other.Get_().(ReplicationGroupUpdate_ReplicationGroupUpdate) + return ok && data1.Create.Equals(data2.Create) && data1.Update.Equals(data2.Update) && data1.Delete.Equals(data2.Delete) + } + default: + { + return false // unexpected + } + } +} + +func (_this ReplicationGroupUpdate) EqualsGeneric(other interface{}) bool { + typed, ok := other.(ReplicationGroupUpdate) + return ok && _this.Equals(typed) +} + +func Type_ReplicationGroupUpdate_() _dafny.TypeDescriptor { + return type_ReplicationGroupUpdate_{} +} + +type type_ReplicationGroupUpdate_ struct { +} + +func (_this type_ReplicationGroupUpdate_) Default() interface{} { + return Companion_ReplicationGroupUpdate_.Default() +} + +func (_this type_ReplicationGroupUpdate_) String() string { + return "ComAmazonawsDynamodbTypes.ReplicationGroupUpdate" +} +func (_this ReplicationGroupUpdate) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = ReplicationGroupUpdate{} + +// End of datatype ReplicationGroupUpdate + +// Definition of class ReplicationGroupUpdateList +type ReplicationGroupUpdateList struct { +} + +func New_ReplicationGroupUpdateList_() *ReplicationGroupUpdateList { + _this := ReplicationGroupUpdateList{} + + return &_this +} + +type CompanionStruct_ReplicationGroupUpdateList_ struct { +} + +var Companion_ReplicationGroupUpdateList_ = CompanionStruct_ReplicationGroupUpdateList_{} + +func (*ReplicationGroupUpdateList) String() string { + return "ComAmazonawsDynamodbTypes.ReplicationGroupUpdateList" +} + +// End of class ReplicationGroupUpdateList + +func Type_ReplicationGroupUpdateList_() _dafny.TypeDescriptor { + return type_ReplicationGroupUpdateList_{} +} + +type type_ReplicationGroupUpdateList_ struct { +} + +func (_this type_ReplicationGroupUpdateList_) Default() interface{} { + return _dafny.EmptySeq +} + +func (_this type_ReplicationGroupUpdateList_) String() string { + return "ComAmazonawsDynamodbTypes.ReplicationGroupUpdateList" +} +func (_this *CompanionStruct_ReplicationGroupUpdateList_) Is_(__source _dafny.Sequence) bool { + var _34_x _dafny.Sequence = (__source) + _ = _34_x + return Companion_Default___.IsValid__ReplicationGroupUpdateList(_34_x) +} + +// Definition of datatype ReplicaUpdate +type ReplicaUpdate struct { + Data_ReplicaUpdate_ +} + +func (_this ReplicaUpdate) Get_() Data_ReplicaUpdate_ { + return _this.Data_ReplicaUpdate_ +} + +type Data_ReplicaUpdate_ interface { + isReplicaUpdate() +} + +type CompanionStruct_ReplicaUpdate_ struct { +} + +var Companion_ReplicaUpdate_ = CompanionStruct_ReplicaUpdate_{} + +type ReplicaUpdate_ReplicaUpdate struct { + Create m_Wrappers.Option + Delete m_Wrappers.Option +} + +func (ReplicaUpdate_ReplicaUpdate) isReplicaUpdate() {} + +func (CompanionStruct_ReplicaUpdate_) Create_ReplicaUpdate_(Create m_Wrappers.Option, Delete m_Wrappers.Option) ReplicaUpdate { + return ReplicaUpdate{ReplicaUpdate_ReplicaUpdate{Create, Delete}} +} + +func (_this ReplicaUpdate) Is_ReplicaUpdate() bool { + _, ok := _this.Get_().(ReplicaUpdate_ReplicaUpdate) + return ok +} + +func (CompanionStruct_ReplicaUpdate_) Default() ReplicaUpdate { + return Companion_ReplicaUpdate_.Create_ReplicaUpdate_(m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this ReplicaUpdate) Dtor_Create() m_Wrappers.Option { + return _this.Get_().(ReplicaUpdate_ReplicaUpdate).Create +} + +func (_this ReplicaUpdate) Dtor_Delete() m_Wrappers.Option { + return _this.Get_().(ReplicaUpdate_ReplicaUpdate).Delete +} + +func (_this ReplicaUpdate) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case ReplicaUpdate_ReplicaUpdate: + { + return "ComAmazonawsDynamodbTypes.ReplicaUpdate.ReplicaUpdate" + "(" + _dafny.String(data.Create) + ", " + _dafny.String(data.Delete) + ")" + } + default: + { + return "" + } + } +} + +func (_this ReplicaUpdate) Equals(other ReplicaUpdate) bool { + switch data1 := _this.Get_().(type) { + case ReplicaUpdate_ReplicaUpdate: + { + data2, ok := other.Get_().(ReplicaUpdate_ReplicaUpdate) + return ok && data1.Create.Equals(data2.Create) && data1.Delete.Equals(data2.Delete) + } + default: + { + return false // unexpected + } + } +} + +func (_this ReplicaUpdate) EqualsGeneric(other interface{}) bool { + typed, ok := other.(ReplicaUpdate) + return ok && _this.Equals(typed) +} + +func Type_ReplicaUpdate_() _dafny.TypeDescriptor { + return type_ReplicaUpdate_{} +} + +type type_ReplicaUpdate_ struct { +} + +func (_this type_ReplicaUpdate_) Default() interface{} { + return Companion_ReplicaUpdate_.Default() +} + +func (_this type_ReplicaUpdate_) String() string { + return "ComAmazonawsDynamodbTypes.ReplicaUpdate" +} +func (_this ReplicaUpdate) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = ReplicaUpdate{} + +// End of datatype ReplicaUpdate + +// Definition of class ResourceArnString +type ResourceArnString struct { +} + +func New_ResourceArnString_() *ResourceArnString { + _this := ResourceArnString{} + + return &_this +} + +type CompanionStruct_ResourceArnString_ struct { +} + +var Companion_ResourceArnString_ = CompanionStruct_ResourceArnString_{} + +func (*ResourceArnString) String() string { + return "ComAmazonawsDynamodbTypes.ResourceArnString" +} + +// End of class ResourceArnString + +func Type_ResourceArnString_() _dafny.TypeDescriptor { + return type_ResourceArnString_{} +} + +type type_ResourceArnString_ struct { +} + +func (_this type_ResourceArnString_) Default() interface{} { + return _dafny.EmptySeq.SetString() +} + +func (_this type_ResourceArnString_) String() string { + return "ComAmazonawsDynamodbTypes.ResourceArnString" +} +func (_this *CompanionStruct_ResourceArnString_) Is_(__source _dafny.Sequence) bool { + var _35_x _dafny.Sequence = (__source) + _ = _35_x + return Companion_Default___.IsValid__ResourceArnString(_35_x) +} + +// Definition of datatype RestoreSummary +type RestoreSummary struct { + Data_RestoreSummary_ +} + +func (_this RestoreSummary) Get_() Data_RestoreSummary_ { + return _this.Data_RestoreSummary_ +} + +type Data_RestoreSummary_ interface { + isRestoreSummary() +} + +type CompanionStruct_RestoreSummary_ struct { +} + +var Companion_RestoreSummary_ = CompanionStruct_RestoreSummary_{} + +type RestoreSummary_RestoreSummary struct { + SourceBackupArn m_Wrappers.Option + SourceTableArn m_Wrappers.Option + RestoreDateTime _dafny.Sequence + RestoreInProgress bool +} + +func (RestoreSummary_RestoreSummary) isRestoreSummary() {} + +func (CompanionStruct_RestoreSummary_) Create_RestoreSummary_(SourceBackupArn m_Wrappers.Option, SourceTableArn m_Wrappers.Option, RestoreDateTime _dafny.Sequence, RestoreInProgress bool) RestoreSummary { + return RestoreSummary{RestoreSummary_RestoreSummary{SourceBackupArn, SourceTableArn, RestoreDateTime, RestoreInProgress}} +} + +func (_this RestoreSummary) Is_RestoreSummary() bool { + _, ok := _this.Get_().(RestoreSummary_RestoreSummary) + return ok +} + +func (CompanionStruct_RestoreSummary_) Default() RestoreSummary { + return Companion_RestoreSummary_.Create_RestoreSummary_(m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), _dafny.EmptySeq.SetString(), false) +} + +func (_this RestoreSummary) Dtor_SourceBackupArn() m_Wrappers.Option { + return _this.Get_().(RestoreSummary_RestoreSummary).SourceBackupArn +} + +func (_this RestoreSummary) Dtor_SourceTableArn() m_Wrappers.Option { + return _this.Get_().(RestoreSummary_RestoreSummary).SourceTableArn +} + +func (_this RestoreSummary) Dtor_RestoreDateTime() _dafny.Sequence { + return _this.Get_().(RestoreSummary_RestoreSummary).RestoreDateTime +} + +func (_this RestoreSummary) Dtor_RestoreInProgress() bool { + return _this.Get_().(RestoreSummary_RestoreSummary).RestoreInProgress +} + +func (_this RestoreSummary) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case RestoreSummary_RestoreSummary: + { + return "ComAmazonawsDynamodbTypes.RestoreSummary.RestoreSummary" + "(" + _dafny.String(data.SourceBackupArn) + ", " + _dafny.String(data.SourceTableArn) + ", " + _dafny.String(data.RestoreDateTime) + ", " + _dafny.String(data.RestoreInProgress) + ")" + } + default: + { + return "" + } + } +} + +func (_this RestoreSummary) Equals(other RestoreSummary) bool { + switch data1 := _this.Get_().(type) { + case RestoreSummary_RestoreSummary: + { + data2, ok := other.Get_().(RestoreSummary_RestoreSummary) + return ok && data1.SourceBackupArn.Equals(data2.SourceBackupArn) && data1.SourceTableArn.Equals(data2.SourceTableArn) && data1.RestoreDateTime.Equals(data2.RestoreDateTime) && data1.RestoreInProgress == data2.RestoreInProgress + } + default: + { + return false // unexpected + } + } +} + +func (_this RestoreSummary) EqualsGeneric(other interface{}) bool { + typed, ok := other.(RestoreSummary) + return ok && _this.Equals(typed) +} + +func Type_RestoreSummary_() _dafny.TypeDescriptor { + return type_RestoreSummary_{} +} + +type type_RestoreSummary_ struct { +} + +func (_this type_RestoreSummary_) Default() interface{} { + return Companion_RestoreSummary_.Default() +} + +func (_this type_RestoreSummary_) String() string { + return "ComAmazonawsDynamodbTypes.RestoreSummary" +} +func (_this RestoreSummary) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = RestoreSummary{} + +// End of datatype RestoreSummary + +// Definition of datatype RestoreTableFromBackupInput +type RestoreTableFromBackupInput struct { + Data_RestoreTableFromBackupInput_ +} + +func (_this RestoreTableFromBackupInput) Get_() Data_RestoreTableFromBackupInput_ { + return _this.Data_RestoreTableFromBackupInput_ +} + +type Data_RestoreTableFromBackupInput_ interface { + isRestoreTableFromBackupInput() +} + +type CompanionStruct_RestoreTableFromBackupInput_ struct { +} + +var Companion_RestoreTableFromBackupInput_ = CompanionStruct_RestoreTableFromBackupInput_{} + +type RestoreTableFromBackupInput_RestoreTableFromBackupInput struct { + TargetTableName _dafny.Sequence + BackupArn _dafny.Sequence + BillingModeOverride m_Wrappers.Option + GlobalSecondaryIndexOverride m_Wrappers.Option + LocalSecondaryIndexOverride m_Wrappers.Option + ProvisionedThroughputOverride m_Wrappers.Option + OnDemandThroughputOverride m_Wrappers.Option + SSESpecificationOverride m_Wrappers.Option +} + +func (RestoreTableFromBackupInput_RestoreTableFromBackupInput) isRestoreTableFromBackupInput() {} + +func (CompanionStruct_RestoreTableFromBackupInput_) Create_RestoreTableFromBackupInput_(TargetTableName _dafny.Sequence, BackupArn _dafny.Sequence, BillingModeOverride m_Wrappers.Option, GlobalSecondaryIndexOverride m_Wrappers.Option, LocalSecondaryIndexOverride m_Wrappers.Option, ProvisionedThroughputOverride m_Wrappers.Option, OnDemandThroughputOverride m_Wrappers.Option, SSESpecificationOverride m_Wrappers.Option) RestoreTableFromBackupInput { + return RestoreTableFromBackupInput{RestoreTableFromBackupInput_RestoreTableFromBackupInput{TargetTableName, BackupArn, BillingModeOverride, GlobalSecondaryIndexOverride, LocalSecondaryIndexOverride, ProvisionedThroughputOverride, OnDemandThroughputOverride, SSESpecificationOverride}} +} + +func (_this RestoreTableFromBackupInput) Is_RestoreTableFromBackupInput() bool { + _, ok := _this.Get_().(RestoreTableFromBackupInput_RestoreTableFromBackupInput) + return ok +} + +func (CompanionStruct_RestoreTableFromBackupInput_) Default() RestoreTableFromBackupInput { + return Companion_RestoreTableFromBackupInput_.Create_RestoreTableFromBackupInput_(_dafny.EmptySeq.SetString(), _dafny.EmptySeq.SetString(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this RestoreTableFromBackupInput) Dtor_TargetTableName() _dafny.Sequence { + return _this.Get_().(RestoreTableFromBackupInput_RestoreTableFromBackupInput).TargetTableName +} + +func (_this RestoreTableFromBackupInput) Dtor_BackupArn() _dafny.Sequence { + return _this.Get_().(RestoreTableFromBackupInput_RestoreTableFromBackupInput).BackupArn +} + +func (_this RestoreTableFromBackupInput) Dtor_BillingModeOverride() m_Wrappers.Option { + return _this.Get_().(RestoreTableFromBackupInput_RestoreTableFromBackupInput).BillingModeOverride +} + +func (_this RestoreTableFromBackupInput) Dtor_GlobalSecondaryIndexOverride() m_Wrappers.Option { + return _this.Get_().(RestoreTableFromBackupInput_RestoreTableFromBackupInput).GlobalSecondaryIndexOverride +} + +func (_this RestoreTableFromBackupInput) Dtor_LocalSecondaryIndexOverride() m_Wrappers.Option { + return _this.Get_().(RestoreTableFromBackupInput_RestoreTableFromBackupInput).LocalSecondaryIndexOverride +} + +func (_this RestoreTableFromBackupInput) Dtor_ProvisionedThroughputOverride() m_Wrappers.Option { + return _this.Get_().(RestoreTableFromBackupInput_RestoreTableFromBackupInput).ProvisionedThroughputOverride +} + +func (_this RestoreTableFromBackupInput) Dtor_OnDemandThroughputOverride() m_Wrappers.Option { + return _this.Get_().(RestoreTableFromBackupInput_RestoreTableFromBackupInput).OnDemandThroughputOverride +} + +func (_this RestoreTableFromBackupInput) Dtor_SSESpecificationOverride() m_Wrappers.Option { + return _this.Get_().(RestoreTableFromBackupInput_RestoreTableFromBackupInput).SSESpecificationOverride +} + +func (_this RestoreTableFromBackupInput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case RestoreTableFromBackupInput_RestoreTableFromBackupInput: + { + return "ComAmazonawsDynamodbTypes.RestoreTableFromBackupInput.RestoreTableFromBackupInput" + "(" + _dafny.String(data.TargetTableName) + ", " + _dafny.String(data.BackupArn) + ", " + _dafny.String(data.BillingModeOverride) + ", " + _dafny.String(data.GlobalSecondaryIndexOverride) + ", " + _dafny.String(data.LocalSecondaryIndexOverride) + ", " + _dafny.String(data.ProvisionedThroughputOverride) + ", " + _dafny.String(data.OnDemandThroughputOverride) + ", " + _dafny.String(data.SSESpecificationOverride) + ")" + } + default: + { + return "" + } + } +} + +func (_this RestoreTableFromBackupInput) Equals(other RestoreTableFromBackupInput) bool { + switch data1 := _this.Get_().(type) { + case RestoreTableFromBackupInput_RestoreTableFromBackupInput: + { + data2, ok := other.Get_().(RestoreTableFromBackupInput_RestoreTableFromBackupInput) + return ok && data1.TargetTableName.Equals(data2.TargetTableName) && data1.BackupArn.Equals(data2.BackupArn) && data1.BillingModeOverride.Equals(data2.BillingModeOverride) && data1.GlobalSecondaryIndexOverride.Equals(data2.GlobalSecondaryIndexOverride) && data1.LocalSecondaryIndexOverride.Equals(data2.LocalSecondaryIndexOverride) && data1.ProvisionedThroughputOverride.Equals(data2.ProvisionedThroughputOverride) && data1.OnDemandThroughputOverride.Equals(data2.OnDemandThroughputOverride) && data1.SSESpecificationOverride.Equals(data2.SSESpecificationOverride) + } + default: + { + return false // unexpected + } + } +} + +func (_this RestoreTableFromBackupInput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(RestoreTableFromBackupInput) + return ok && _this.Equals(typed) +} + +func Type_RestoreTableFromBackupInput_() _dafny.TypeDescriptor { + return type_RestoreTableFromBackupInput_{} +} + +type type_RestoreTableFromBackupInput_ struct { +} + +func (_this type_RestoreTableFromBackupInput_) Default() interface{} { + return Companion_RestoreTableFromBackupInput_.Default() +} + +func (_this type_RestoreTableFromBackupInput_) String() string { + return "ComAmazonawsDynamodbTypes.RestoreTableFromBackupInput" +} +func (_this RestoreTableFromBackupInput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = RestoreTableFromBackupInput{} + +// End of datatype RestoreTableFromBackupInput + +// Definition of datatype RestoreTableFromBackupOutput +type RestoreTableFromBackupOutput struct { + Data_RestoreTableFromBackupOutput_ +} + +func (_this RestoreTableFromBackupOutput) Get_() Data_RestoreTableFromBackupOutput_ { + return _this.Data_RestoreTableFromBackupOutput_ +} + +type Data_RestoreTableFromBackupOutput_ interface { + isRestoreTableFromBackupOutput() +} + +type CompanionStruct_RestoreTableFromBackupOutput_ struct { +} + +var Companion_RestoreTableFromBackupOutput_ = CompanionStruct_RestoreTableFromBackupOutput_{} + +type RestoreTableFromBackupOutput_RestoreTableFromBackupOutput struct { + TableDescription m_Wrappers.Option +} + +func (RestoreTableFromBackupOutput_RestoreTableFromBackupOutput) isRestoreTableFromBackupOutput() {} + +func (CompanionStruct_RestoreTableFromBackupOutput_) Create_RestoreTableFromBackupOutput_(TableDescription m_Wrappers.Option) RestoreTableFromBackupOutput { + return RestoreTableFromBackupOutput{RestoreTableFromBackupOutput_RestoreTableFromBackupOutput{TableDescription}} +} + +func (_this RestoreTableFromBackupOutput) Is_RestoreTableFromBackupOutput() bool { + _, ok := _this.Get_().(RestoreTableFromBackupOutput_RestoreTableFromBackupOutput) + return ok +} + +func (CompanionStruct_RestoreTableFromBackupOutput_) Default() RestoreTableFromBackupOutput { + return Companion_RestoreTableFromBackupOutput_.Create_RestoreTableFromBackupOutput_(m_Wrappers.Companion_Option_.Default()) +} + +func (_this RestoreTableFromBackupOutput) Dtor_TableDescription() m_Wrappers.Option { + return _this.Get_().(RestoreTableFromBackupOutput_RestoreTableFromBackupOutput).TableDescription +} + +func (_this RestoreTableFromBackupOutput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case RestoreTableFromBackupOutput_RestoreTableFromBackupOutput: + { + return "ComAmazonawsDynamodbTypes.RestoreTableFromBackupOutput.RestoreTableFromBackupOutput" + "(" + _dafny.String(data.TableDescription) + ")" + } + default: + { + return "" + } + } +} + +func (_this RestoreTableFromBackupOutput) Equals(other RestoreTableFromBackupOutput) bool { + switch data1 := _this.Get_().(type) { + case RestoreTableFromBackupOutput_RestoreTableFromBackupOutput: + { + data2, ok := other.Get_().(RestoreTableFromBackupOutput_RestoreTableFromBackupOutput) + return ok && data1.TableDescription.Equals(data2.TableDescription) + } + default: + { + return false // unexpected + } + } +} + +func (_this RestoreTableFromBackupOutput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(RestoreTableFromBackupOutput) + return ok && _this.Equals(typed) +} + +func Type_RestoreTableFromBackupOutput_() _dafny.TypeDescriptor { + return type_RestoreTableFromBackupOutput_{} +} + +type type_RestoreTableFromBackupOutput_ struct { +} + +func (_this type_RestoreTableFromBackupOutput_) Default() interface{} { + return Companion_RestoreTableFromBackupOutput_.Default() +} + +func (_this type_RestoreTableFromBackupOutput_) String() string { + return "ComAmazonawsDynamodbTypes.RestoreTableFromBackupOutput" +} +func (_this RestoreTableFromBackupOutput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = RestoreTableFromBackupOutput{} + +// End of datatype RestoreTableFromBackupOutput + +// Definition of datatype RestoreTableToPointInTimeInput +type RestoreTableToPointInTimeInput struct { + Data_RestoreTableToPointInTimeInput_ +} + +func (_this RestoreTableToPointInTimeInput) Get_() Data_RestoreTableToPointInTimeInput_ { + return _this.Data_RestoreTableToPointInTimeInput_ +} + +type Data_RestoreTableToPointInTimeInput_ interface { + isRestoreTableToPointInTimeInput() +} + +type CompanionStruct_RestoreTableToPointInTimeInput_ struct { +} + +var Companion_RestoreTableToPointInTimeInput_ = CompanionStruct_RestoreTableToPointInTimeInput_{} + +type RestoreTableToPointInTimeInput_RestoreTableToPointInTimeInput struct { + SourceTableArn m_Wrappers.Option + SourceTableName m_Wrappers.Option + TargetTableName _dafny.Sequence + UseLatestRestorableTime m_Wrappers.Option + RestoreDateTime m_Wrappers.Option + BillingModeOverride m_Wrappers.Option + GlobalSecondaryIndexOverride m_Wrappers.Option + LocalSecondaryIndexOverride m_Wrappers.Option + ProvisionedThroughputOverride m_Wrappers.Option + OnDemandThroughputOverride m_Wrappers.Option + SSESpecificationOverride m_Wrappers.Option +} + +func (RestoreTableToPointInTimeInput_RestoreTableToPointInTimeInput) isRestoreTableToPointInTimeInput() { +} + +func (CompanionStruct_RestoreTableToPointInTimeInput_) Create_RestoreTableToPointInTimeInput_(SourceTableArn m_Wrappers.Option, SourceTableName m_Wrappers.Option, TargetTableName _dafny.Sequence, UseLatestRestorableTime m_Wrappers.Option, RestoreDateTime m_Wrappers.Option, BillingModeOverride m_Wrappers.Option, GlobalSecondaryIndexOverride m_Wrappers.Option, LocalSecondaryIndexOverride m_Wrappers.Option, ProvisionedThroughputOverride m_Wrappers.Option, OnDemandThroughputOverride m_Wrappers.Option, SSESpecificationOverride m_Wrappers.Option) RestoreTableToPointInTimeInput { + return RestoreTableToPointInTimeInput{RestoreTableToPointInTimeInput_RestoreTableToPointInTimeInput{SourceTableArn, SourceTableName, TargetTableName, UseLatestRestorableTime, RestoreDateTime, BillingModeOverride, GlobalSecondaryIndexOverride, LocalSecondaryIndexOverride, ProvisionedThroughputOverride, OnDemandThroughputOverride, SSESpecificationOverride}} +} + +func (_this RestoreTableToPointInTimeInput) Is_RestoreTableToPointInTimeInput() bool { + _, ok := _this.Get_().(RestoreTableToPointInTimeInput_RestoreTableToPointInTimeInput) + return ok +} + +func (CompanionStruct_RestoreTableToPointInTimeInput_) Default() RestoreTableToPointInTimeInput { + return Companion_RestoreTableToPointInTimeInput_.Create_RestoreTableToPointInTimeInput_(m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), _dafny.EmptySeq.SetString(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this RestoreTableToPointInTimeInput) Dtor_SourceTableArn() m_Wrappers.Option { + return _this.Get_().(RestoreTableToPointInTimeInput_RestoreTableToPointInTimeInput).SourceTableArn +} + +func (_this RestoreTableToPointInTimeInput) Dtor_SourceTableName() m_Wrappers.Option { + return _this.Get_().(RestoreTableToPointInTimeInput_RestoreTableToPointInTimeInput).SourceTableName +} + +func (_this RestoreTableToPointInTimeInput) Dtor_TargetTableName() _dafny.Sequence { + return _this.Get_().(RestoreTableToPointInTimeInput_RestoreTableToPointInTimeInput).TargetTableName +} + +func (_this RestoreTableToPointInTimeInput) Dtor_UseLatestRestorableTime() m_Wrappers.Option { + return _this.Get_().(RestoreTableToPointInTimeInput_RestoreTableToPointInTimeInput).UseLatestRestorableTime +} + +func (_this RestoreTableToPointInTimeInput) Dtor_RestoreDateTime() m_Wrappers.Option { + return _this.Get_().(RestoreTableToPointInTimeInput_RestoreTableToPointInTimeInput).RestoreDateTime +} + +func (_this RestoreTableToPointInTimeInput) Dtor_BillingModeOverride() m_Wrappers.Option { + return _this.Get_().(RestoreTableToPointInTimeInput_RestoreTableToPointInTimeInput).BillingModeOverride +} + +func (_this RestoreTableToPointInTimeInput) Dtor_GlobalSecondaryIndexOverride() m_Wrappers.Option { + return _this.Get_().(RestoreTableToPointInTimeInput_RestoreTableToPointInTimeInput).GlobalSecondaryIndexOverride +} + +func (_this RestoreTableToPointInTimeInput) Dtor_LocalSecondaryIndexOverride() m_Wrappers.Option { + return _this.Get_().(RestoreTableToPointInTimeInput_RestoreTableToPointInTimeInput).LocalSecondaryIndexOverride +} + +func (_this RestoreTableToPointInTimeInput) Dtor_ProvisionedThroughputOverride() m_Wrappers.Option { + return _this.Get_().(RestoreTableToPointInTimeInput_RestoreTableToPointInTimeInput).ProvisionedThroughputOverride +} + +func (_this RestoreTableToPointInTimeInput) Dtor_OnDemandThroughputOverride() m_Wrappers.Option { + return _this.Get_().(RestoreTableToPointInTimeInput_RestoreTableToPointInTimeInput).OnDemandThroughputOverride +} + +func (_this RestoreTableToPointInTimeInput) Dtor_SSESpecificationOverride() m_Wrappers.Option { + return _this.Get_().(RestoreTableToPointInTimeInput_RestoreTableToPointInTimeInput).SSESpecificationOverride +} + +func (_this RestoreTableToPointInTimeInput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case RestoreTableToPointInTimeInput_RestoreTableToPointInTimeInput: + { + return "ComAmazonawsDynamodbTypes.RestoreTableToPointInTimeInput.RestoreTableToPointInTimeInput" + "(" + _dafny.String(data.SourceTableArn) + ", " + _dafny.String(data.SourceTableName) + ", " + _dafny.String(data.TargetTableName) + ", " + _dafny.String(data.UseLatestRestorableTime) + ", " + _dafny.String(data.RestoreDateTime) + ", " + _dafny.String(data.BillingModeOverride) + ", " + _dafny.String(data.GlobalSecondaryIndexOverride) + ", " + _dafny.String(data.LocalSecondaryIndexOverride) + ", " + _dafny.String(data.ProvisionedThroughputOverride) + ", " + _dafny.String(data.OnDemandThroughputOverride) + ", " + _dafny.String(data.SSESpecificationOverride) + ")" + } + default: + { + return "" + } + } +} + +func (_this RestoreTableToPointInTimeInput) Equals(other RestoreTableToPointInTimeInput) bool { + switch data1 := _this.Get_().(type) { + case RestoreTableToPointInTimeInput_RestoreTableToPointInTimeInput: + { + data2, ok := other.Get_().(RestoreTableToPointInTimeInput_RestoreTableToPointInTimeInput) + return ok && data1.SourceTableArn.Equals(data2.SourceTableArn) && data1.SourceTableName.Equals(data2.SourceTableName) && data1.TargetTableName.Equals(data2.TargetTableName) && data1.UseLatestRestorableTime.Equals(data2.UseLatestRestorableTime) && data1.RestoreDateTime.Equals(data2.RestoreDateTime) && data1.BillingModeOverride.Equals(data2.BillingModeOverride) && data1.GlobalSecondaryIndexOverride.Equals(data2.GlobalSecondaryIndexOverride) && data1.LocalSecondaryIndexOverride.Equals(data2.LocalSecondaryIndexOverride) && data1.ProvisionedThroughputOverride.Equals(data2.ProvisionedThroughputOverride) && data1.OnDemandThroughputOverride.Equals(data2.OnDemandThroughputOverride) && data1.SSESpecificationOverride.Equals(data2.SSESpecificationOverride) + } + default: + { + return false // unexpected + } + } +} + +func (_this RestoreTableToPointInTimeInput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(RestoreTableToPointInTimeInput) + return ok && _this.Equals(typed) +} + +func Type_RestoreTableToPointInTimeInput_() _dafny.TypeDescriptor { + return type_RestoreTableToPointInTimeInput_{} +} + +type type_RestoreTableToPointInTimeInput_ struct { +} + +func (_this type_RestoreTableToPointInTimeInput_) Default() interface{} { + return Companion_RestoreTableToPointInTimeInput_.Default() +} + +func (_this type_RestoreTableToPointInTimeInput_) String() string { + return "ComAmazonawsDynamodbTypes.RestoreTableToPointInTimeInput" +} +func (_this RestoreTableToPointInTimeInput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = RestoreTableToPointInTimeInput{} + +// End of datatype RestoreTableToPointInTimeInput + +// Definition of datatype RestoreTableToPointInTimeOutput +type RestoreTableToPointInTimeOutput struct { + Data_RestoreTableToPointInTimeOutput_ +} + +func (_this RestoreTableToPointInTimeOutput) Get_() Data_RestoreTableToPointInTimeOutput_ { + return _this.Data_RestoreTableToPointInTimeOutput_ +} + +type Data_RestoreTableToPointInTimeOutput_ interface { + isRestoreTableToPointInTimeOutput() +} + +type CompanionStruct_RestoreTableToPointInTimeOutput_ struct { +} + +var Companion_RestoreTableToPointInTimeOutput_ = CompanionStruct_RestoreTableToPointInTimeOutput_{} + +type RestoreTableToPointInTimeOutput_RestoreTableToPointInTimeOutput struct { + TableDescription m_Wrappers.Option +} + +func (RestoreTableToPointInTimeOutput_RestoreTableToPointInTimeOutput) isRestoreTableToPointInTimeOutput() { +} + +func (CompanionStruct_RestoreTableToPointInTimeOutput_) Create_RestoreTableToPointInTimeOutput_(TableDescription m_Wrappers.Option) RestoreTableToPointInTimeOutput { + return RestoreTableToPointInTimeOutput{RestoreTableToPointInTimeOutput_RestoreTableToPointInTimeOutput{TableDescription}} +} + +func (_this RestoreTableToPointInTimeOutput) Is_RestoreTableToPointInTimeOutput() bool { + _, ok := _this.Get_().(RestoreTableToPointInTimeOutput_RestoreTableToPointInTimeOutput) + return ok +} + +func (CompanionStruct_RestoreTableToPointInTimeOutput_) Default() RestoreTableToPointInTimeOutput { + return Companion_RestoreTableToPointInTimeOutput_.Create_RestoreTableToPointInTimeOutput_(m_Wrappers.Companion_Option_.Default()) +} + +func (_this RestoreTableToPointInTimeOutput) Dtor_TableDescription() m_Wrappers.Option { + return _this.Get_().(RestoreTableToPointInTimeOutput_RestoreTableToPointInTimeOutput).TableDescription +} + +func (_this RestoreTableToPointInTimeOutput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case RestoreTableToPointInTimeOutput_RestoreTableToPointInTimeOutput: + { + return "ComAmazonawsDynamodbTypes.RestoreTableToPointInTimeOutput.RestoreTableToPointInTimeOutput" + "(" + _dafny.String(data.TableDescription) + ")" + } + default: + { + return "" + } + } +} + +func (_this RestoreTableToPointInTimeOutput) Equals(other RestoreTableToPointInTimeOutput) bool { + switch data1 := _this.Get_().(type) { + case RestoreTableToPointInTimeOutput_RestoreTableToPointInTimeOutput: + { + data2, ok := other.Get_().(RestoreTableToPointInTimeOutput_RestoreTableToPointInTimeOutput) + return ok && data1.TableDescription.Equals(data2.TableDescription) + } + default: + { + return false // unexpected + } + } +} + +func (_this RestoreTableToPointInTimeOutput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(RestoreTableToPointInTimeOutput) + return ok && _this.Equals(typed) +} + +func Type_RestoreTableToPointInTimeOutput_() _dafny.TypeDescriptor { + return type_RestoreTableToPointInTimeOutput_{} +} + +type type_RestoreTableToPointInTimeOutput_ struct { +} + +func (_this type_RestoreTableToPointInTimeOutput_) Default() interface{} { + return Companion_RestoreTableToPointInTimeOutput_.Default() +} + +func (_this type_RestoreTableToPointInTimeOutput_) String() string { + return "ComAmazonawsDynamodbTypes.RestoreTableToPointInTimeOutput" +} +func (_this RestoreTableToPointInTimeOutput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = RestoreTableToPointInTimeOutput{} + +// End of datatype RestoreTableToPointInTimeOutput + +// Definition of datatype ReturnConsumedCapacity +type ReturnConsumedCapacity struct { + Data_ReturnConsumedCapacity_ +} + +func (_this ReturnConsumedCapacity) Get_() Data_ReturnConsumedCapacity_ { + return _this.Data_ReturnConsumedCapacity_ +} + +type Data_ReturnConsumedCapacity_ interface { + isReturnConsumedCapacity() +} + +type CompanionStruct_ReturnConsumedCapacity_ struct { +} + +var Companion_ReturnConsumedCapacity_ = CompanionStruct_ReturnConsumedCapacity_{} + +type ReturnConsumedCapacity_INDEXES struct { +} + +func (ReturnConsumedCapacity_INDEXES) isReturnConsumedCapacity() {} + +func (CompanionStruct_ReturnConsumedCapacity_) Create_INDEXES_() ReturnConsumedCapacity { + return ReturnConsumedCapacity{ReturnConsumedCapacity_INDEXES{}} +} + +func (_this ReturnConsumedCapacity) Is_INDEXES() bool { + _, ok := _this.Get_().(ReturnConsumedCapacity_INDEXES) + return ok +} + +type ReturnConsumedCapacity_TOTAL struct { +} + +func (ReturnConsumedCapacity_TOTAL) isReturnConsumedCapacity() {} + +func (CompanionStruct_ReturnConsumedCapacity_) Create_TOTAL_() ReturnConsumedCapacity { + return ReturnConsumedCapacity{ReturnConsumedCapacity_TOTAL{}} +} + +func (_this ReturnConsumedCapacity) Is_TOTAL() bool { + _, ok := _this.Get_().(ReturnConsumedCapacity_TOTAL) + return ok +} + +type ReturnConsumedCapacity_NONE struct { +} + +func (ReturnConsumedCapacity_NONE) isReturnConsumedCapacity() {} + +func (CompanionStruct_ReturnConsumedCapacity_) Create_NONE_() ReturnConsumedCapacity { + return ReturnConsumedCapacity{ReturnConsumedCapacity_NONE{}} +} + +func (_this ReturnConsumedCapacity) Is_NONE() bool { + _, ok := _this.Get_().(ReturnConsumedCapacity_NONE) + return ok +} + +func (CompanionStruct_ReturnConsumedCapacity_) Default() ReturnConsumedCapacity { + return Companion_ReturnConsumedCapacity_.Create_INDEXES_() +} + +func (_ CompanionStruct_ReturnConsumedCapacity_) AllSingletonConstructors() _dafny.Iterator { + i := -1 + return func() (interface{}, bool) { + i++ + switch i { + case 0: + return Companion_ReturnConsumedCapacity_.Create_INDEXES_(), true + case 1: + return Companion_ReturnConsumedCapacity_.Create_TOTAL_(), true + case 2: + return Companion_ReturnConsumedCapacity_.Create_NONE_(), true + default: + return ReturnConsumedCapacity{}, false + } + } +} + +func (_this ReturnConsumedCapacity) String() string { + switch _this.Get_().(type) { + case nil: + return "null" + case ReturnConsumedCapacity_INDEXES: + { + return "ComAmazonawsDynamodbTypes.ReturnConsumedCapacity.INDEXES" + } + case ReturnConsumedCapacity_TOTAL: + { + return "ComAmazonawsDynamodbTypes.ReturnConsumedCapacity.TOTAL" + } + case ReturnConsumedCapacity_NONE: + { + return "ComAmazonawsDynamodbTypes.ReturnConsumedCapacity.NONE" + } + default: + { + return "" + } + } +} + +func (_this ReturnConsumedCapacity) Equals(other ReturnConsumedCapacity) bool { + switch _this.Get_().(type) { + case ReturnConsumedCapacity_INDEXES: + { + _, ok := other.Get_().(ReturnConsumedCapacity_INDEXES) + return ok + } + case ReturnConsumedCapacity_TOTAL: + { + _, ok := other.Get_().(ReturnConsumedCapacity_TOTAL) + return ok + } + case ReturnConsumedCapacity_NONE: + { + _, ok := other.Get_().(ReturnConsumedCapacity_NONE) + return ok + } + default: + { + return false // unexpected + } + } +} + +func (_this ReturnConsumedCapacity) EqualsGeneric(other interface{}) bool { + typed, ok := other.(ReturnConsumedCapacity) + return ok && _this.Equals(typed) +} + +func Type_ReturnConsumedCapacity_() _dafny.TypeDescriptor { + return type_ReturnConsumedCapacity_{} +} + +type type_ReturnConsumedCapacity_ struct { +} + +func (_this type_ReturnConsumedCapacity_) Default() interface{} { + return Companion_ReturnConsumedCapacity_.Default() +} + +func (_this type_ReturnConsumedCapacity_) String() string { + return "ComAmazonawsDynamodbTypes.ReturnConsumedCapacity" +} +func (_this ReturnConsumedCapacity) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = ReturnConsumedCapacity{} + +// End of datatype ReturnConsumedCapacity + +// Definition of datatype ReturnItemCollectionMetrics +type ReturnItemCollectionMetrics struct { + Data_ReturnItemCollectionMetrics_ +} + +func (_this ReturnItemCollectionMetrics) Get_() Data_ReturnItemCollectionMetrics_ { + return _this.Data_ReturnItemCollectionMetrics_ +} + +type Data_ReturnItemCollectionMetrics_ interface { + isReturnItemCollectionMetrics() +} + +type CompanionStruct_ReturnItemCollectionMetrics_ struct { +} + +var Companion_ReturnItemCollectionMetrics_ = CompanionStruct_ReturnItemCollectionMetrics_{} + +type ReturnItemCollectionMetrics_SIZE struct { +} + +func (ReturnItemCollectionMetrics_SIZE) isReturnItemCollectionMetrics() {} + +func (CompanionStruct_ReturnItemCollectionMetrics_) Create_SIZE_() ReturnItemCollectionMetrics { + return ReturnItemCollectionMetrics{ReturnItemCollectionMetrics_SIZE{}} +} + +func (_this ReturnItemCollectionMetrics) Is_SIZE() bool { + _, ok := _this.Get_().(ReturnItemCollectionMetrics_SIZE) + return ok +} + +type ReturnItemCollectionMetrics_NONE struct { +} + +func (ReturnItemCollectionMetrics_NONE) isReturnItemCollectionMetrics() {} + +func (CompanionStruct_ReturnItemCollectionMetrics_) Create_NONE_() ReturnItemCollectionMetrics { + return ReturnItemCollectionMetrics{ReturnItemCollectionMetrics_NONE{}} +} + +func (_this ReturnItemCollectionMetrics) Is_NONE() bool { + _, ok := _this.Get_().(ReturnItemCollectionMetrics_NONE) + return ok +} + +func (CompanionStruct_ReturnItemCollectionMetrics_) Default() ReturnItemCollectionMetrics { + return Companion_ReturnItemCollectionMetrics_.Create_SIZE_() +} + +func (_ CompanionStruct_ReturnItemCollectionMetrics_) AllSingletonConstructors() _dafny.Iterator { + i := -1 + return func() (interface{}, bool) { + i++ + switch i { + case 0: + return Companion_ReturnItemCollectionMetrics_.Create_SIZE_(), true + case 1: + return Companion_ReturnItemCollectionMetrics_.Create_NONE_(), true + default: + return ReturnItemCollectionMetrics{}, false + } + } +} + +func (_this ReturnItemCollectionMetrics) String() string { + switch _this.Get_().(type) { + case nil: + return "null" + case ReturnItemCollectionMetrics_SIZE: + { + return "ComAmazonawsDynamodbTypes.ReturnItemCollectionMetrics.SIZE" + } + case ReturnItemCollectionMetrics_NONE: + { + return "ComAmazonawsDynamodbTypes.ReturnItemCollectionMetrics.NONE" + } + default: + { + return "" + } + } +} + +func (_this ReturnItemCollectionMetrics) Equals(other ReturnItemCollectionMetrics) bool { + switch _this.Get_().(type) { + case ReturnItemCollectionMetrics_SIZE: + { + _, ok := other.Get_().(ReturnItemCollectionMetrics_SIZE) + return ok + } + case ReturnItemCollectionMetrics_NONE: + { + _, ok := other.Get_().(ReturnItemCollectionMetrics_NONE) + return ok + } + default: + { + return false // unexpected + } + } +} + +func (_this ReturnItemCollectionMetrics) EqualsGeneric(other interface{}) bool { + typed, ok := other.(ReturnItemCollectionMetrics) + return ok && _this.Equals(typed) +} + +func Type_ReturnItemCollectionMetrics_() _dafny.TypeDescriptor { + return type_ReturnItemCollectionMetrics_{} +} + +type type_ReturnItemCollectionMetrics_ struct { +} + +func (_this type_ReturnItemCollectionMetrics_) Default() interface{} { + return Companion_ReturnItemCollectionMetrics_.Default() +} + +func (_this type_ReturnItemCollectionMetrics_) String() string { + return "ComAmazonawsDynamodbTypes.ReturnItemCollectionMetrics" +} +func (_this ReturnItemCollectionMetrics) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = ReturnItemCollectionMetrics{} + +// End of datatype ReturnItemCollectionMetrics + +// Definition of datatype ReturnValue +type ReturnValue struct { + Data_ReturnValue_ +} + +func (_this ReturnValue) Get_() Data_ReturnValue_ { + return _this.Data_ReturnValue_ +} + +type Data_ReturnValue_ interface { + isReturnValue() +} + +type CompanionStruct_ReturnValue_ struct { +} + +var Companion_ReturnValue_ = CompanionStruct_ReturnValue_{} + +type ReturnValue_NONE struct { +} + +func (ReturnValue_NONE) isReturnValue() {} + +func (CompanionStruct_ReturnValue_) Create_NONE_() ReturnValue { + return ReturnValue{ReturnValue_NONE{}} +} + +func (_this ReturnValue) Is_NONE() bool { + _, ok := _this.Get_().(ReturnValue_NONE) + return ok +} + +type ReturnValue_ALL__OLD struct { +} + +func (ReturnValue_ALL__OLD) isReturnValue() {} + +func (CompanionStruct_ReturnValue_) Create_ALL__OLD_() ReturnValue { + return ReturnValue{ReturnValue_ALL__OLD{}} +} + +func (_this ReturnValue) Is_ALL__OLD() bool { + _, ok := _this.Get_().(ReturnValue_ALL__OLD) + return ok +} + +type ReturnValue_UPDATED__OLD struct { +} + +func (ReturnValue_UPDATED__OLD) isReturnValue() {} + +func (CompanionStruct_ReturnValue_) Create_UPDATED__OLD_() ReturnValue { + return ReturnValue{ReturnValue_UPDATED__OLD{}} +} + +func (_this ReturnValue) Is_UPDATED__OLD() bool { + _, ok := _this.Get_().(ReturnValue_UPDATED__OLD) + return ok +} + +type ReturnValue_ALL__NEW struct { +} + +func (ReturnValue_ALL__NEW) isReturnValue() {} + +func (CompanionStruct_ReturnValue_) Create_ALL__NEW_() ReturnValue { + return ReturnValue{ReturnValue_ALL__NEW{}} +} + +func (_this ReturnValue) Is_ALL__NEW() bool { + _, ok := _this.Get_().(ReturnValue_ALL__NEW) + return ok +} + +type ReturnValue_UPDATED__NEW struct { +} + +func (ReturnValue_UPDATED__NEW) isReturnValue() {} + +func (CompanionStruct_ReturnValue_) Create_UPDATED__NEW_() ReturnValue { + return ReturnValue{ReturnValue_UPDATED__NEW{}} +} + +func (_this ReturnValue) Is_UPDATED__NEW() bool { + _, ok := _this.Get_().(ReturnValue_UPDATED__NEW) + return ok +} + +func (CompanionStruct_ReturnValue_) Default() ReturnValue { + return Companion_ReturnValue_.Create_NONE_() +} + +func (_ CompanionStruct_ReturnValue_) AllSingletonConstructors() _dafny.Iterator { + i := -1 + return func() (interface{}, bool) { + i++ + switch i { + case 0: + return Companion_ReturnValue_.Create_NONE_(), true + case 1: + return Companion_ReturnValue_.Create_ALL__OLD_(), true + case 2: + return Companion_ReturnValue_.Create_UPDATED__OLD_(), true + case 3: + return Companion_ReturnValue_.Create_ALL__NEW_(), true + case 4: + return Companion_ReturnValue_.Create_UPDATED__NEW_(), true + default: + return ReturnValue{}, false + } + } +} + +func (_this ReturnValue) String() string { + switch _this.Get_().(type) { + case nil: + return "null" + case ReturnValue_NONE: + { + return "ComAmazonawsDynamodbTypes.ReturnValue.NONE" + } + case ReturnValue_ALL__OLD: + { + return "ComAmazonawsDynamodbTypes.ReturnValue.ALL_OLD" + } + case ReturnValue_UPDATED__OLD: + { + return "ComAmazonawsDynamodbTypes.ReturnValue.UPDATED_OLD" + } + case ReturnValue_ALL__NEW: + { + return "ComAmazonawsDynamodbTypes.ReturnValue.ALL_NEW" + } + case ReturnValue_UPDATED__NEW: + { + return "ComAmazonawsDynamodbTypes.ReturnValue.UPDATED_NEW" + } + default: + { + return "" + } + } +} + +func (_this ReturnValue) Equals(other ReturnValue) bool { + switch _this.Get_().(type) { + case ReturnValue_NONE: + { + _, ok := other.Get_().(ReturnValue_NONE) + return ok + } + case ReturnValue_ALL__OLD: + { + _, ok := other.Get_().(ReturnValue_ALL__OLD) + return ok + } + case ReturnValue_UPDATED__OLD: + { + _, ok := other.Get_().(ReturnValue_UPDATED__OLD) + return ok + } + case ReturnValue_ALL__NEW: + { + _, ok := other.Get_().(ReturnValue_ALL__NEW) + return ok + } + case ReturnValue_UPDATED__NEW: + { + _, ok := other.Get_().(ReturnValue_UPDATED__NEW) + return ok + } + default: + { + return false // unexpected + } + } +} + +func (_this ReturnValue) EqualsGeneric(other interface{}) bool { + typed, ok := other.(ReturnValue) + return ok && _this.Equals(typed) +} + +func Type_ReturnValue_() _dafny.TypeDescriptor { + return type_ReturnValue_{} +} + +type type_ReturnValue_ struct { +} + +func (_this type_ReturnValue_) Default() interface{} { + return Companion_ReturnValue_.Default() +} + +func (_this type_ReturnValue_) String() string { + return "ComAmazonawsDynamodbTypes.ReturnValue" +} +func (_this ReturnValue) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = ReturnValue{} + +// End of datatype ReturnValue + +// Definition of datatype ReturnValuesOnConditionCheckFailure +type ReturnValuesOnConditionCheckFailure struct { + Data_ReturnValuesOnConditionCheckFailure_ +} + +func (_this ReturnValuesOnConditionCheckFailure) Get_() Data_ReturnValuesOnConditionCheckFailure_ { + return _this.Data_ReturnValuesOnConditionCheckFailure_ +} + +type Data_ReturnValuesOnConditionCheckFailure_ interface { + isReturnValuesOnConditionCheckFailure() +} + +type CompanionStruct_ReturnValuesOnConditionCheckFailure_ struct { +} + +var Companion_ReturnValuesOnConditionCheckFailure_ = CompanionStruct_ReturnValuesOnConditionCheckFailure_{} + +type ReturnValuesOnConditionCheckFailure_ALL__OLD struct { +} + +func (ReturnValuesOnConditionCheckFailure_ALL__OLD) isReturnValuesOnConditionCheckFailure() {} + +func (CompanionStruct_ReturnValuesOnConditionCheckFailure_) Create_ALL__OLD_() ReturnValuesOnConditionCheckFailure { + return ReturnValuesOnConditionCheckFailure{ReturnValuesOnConditionCheckFailure_ALL__OLD{}} +} + +func (_this ReturnValuesOnConditionCheckFailure) Is_ALL__OLD() bool { + _, ok := _this.Get_().(ReturnValuesOnConditionCheckFailure_ALL__OLD) + return ok +} + +type ReturnValuesOnConditionCheckFailure_NONE struct { +} + +func (ReturnValuesOnConditionCheckFailure_NONE) isReturnValuesOnConditionCheckFailure() {} + +func (CompanionStruct_ReturnValuesOnConditionCheckFailure_) Create_NONE_() ReturnValuesOnConditionCheckFailure { + return ReturnValuesOnConditionCheckFailure{ReturnValuesOnConditionCheckFailure_NONE{}} +} + +func (_this ReturnValuesOnConditionCheckFailure) Is_NONE() bool { + _, ok := _this.Get_().(ReturnValuesOnConditionCheckFailure_NONE) + return ok +} + +func (CompanionStruct_ReturnValuesOnConditionCheckFailure_) Default() ReturnValuesOnConditionCheckFailure { + return Companion_ReturnValuesOnConditionCheckFailure_.Create_ALL__OLD_() +} + +func (_ CompanionStruct_ReturnValuesOnConditionCheckFailure_) AllSingletonConstructors() _dafny.Iterator { + i := -1 + return func() (interface{}, bool) { + i++ + switch i { + case 0: + return Companion_ReturnValuesOnConditionCheckFailure_.Create_ALL__OLD_(), true + case 1: + return Companion_ReturnValuesOnConditionCheckFailure_.Create_NONE_(), true + default: + return ReturnValuesOnConditionCheckFailure{}, false + } + } +} + +func (_this ReturnValuesOnConditionCheckFailure) String() string { + switch _this.Get_().(type) { + case nil: + return "null" + case ReturnValuesOnConditionCheckFailure_ALL__OLD: + { + return "ComAmazonawsDynamodbTypes.ReturnValuesOnConditionCheckFailure.ALL_OLD" + } + case ReturnValuesOnConditionCheckFailure_NONE: + { + return "ComAmazonawsDynamodbTypes.ReturnValuesOnConditionCheckFailure.NONE" + } + default: + { + return "" + } + } +} + +func (_this ReturnValuesOnConditionCheckFailure) Equals(other ReturnValuesOnConditionCheckFailure) bool { + switch _this.Get_().(type) { + case ReturnValuesOnConditionCheckFailure_ALL__OLD: + { + _, ok := other.Get_().(ReturnValuesOnConditionCheckFailure_ALL__OLD) + return ok + } + case ReturnValuesOnConditionCheckFailure_NONE: + { + _, ok := other.Get_().(ReturnValuesOnConditionCheckFailure_NONE) + return ok + } + default: + { + return false // unexpected + } + } +} + +func (_this ReturnValuesOnConditionCheckFailure) EqualsGeneric(other interface{}) bool { + typed, ok := other.(ReturnValuesOnConditionCheckFailure) + return ok && _this.Equals(typed) +} + +func Type_ReturnValuesOnConditionCheckFailure_() _dafny.TypeDescriptor { + return type_ReturnValuesOnConditionCheckFailure_{} +} + +type type_ReturnValuesOnConditionCheckFailure_ struct { +} + +func (_this type_ReturnValuesOnConditionCheckFailure_) Default() interface{} { + return Companion_ReturnValuesOnConditionCheckFailure_.Default() +} + +func (_this type_ReturnValuesOnConditionCheckFailure_) String() string { + return "ComAmazonawsDynamodbTypes.ReturnValuesOnConditionCheckFailure" +} +func (_this ReturnValuesOnConditionCheckFailure) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = ReturnValuesOnConditionCheckFailure{} + +// End of datatype ReturnValuesOnConditionCheckFailure + +// Definition of class S3Bucket +type S3Bucket struct { +} + +func New_S3Bucket_() *S3Bucket { + _this := S3Bucket{} + + return &_this +} + +type CompanionStruct_S3Bucket_ struct { +} + +var Companion_S3Bucket_ = CompanionStruct_S3Bucket_{} + +func (*S3Bucket) String() string { + return "ComAmazonawsDynamodbTypes.S3Bucket" +} + +// End of class S3Bucket + +func Type_S3Bucket_() _dafny.TypeDescriptor { + return type_S3Bucket_{} +} + +type type_S3Bucket_ struct { +} + +func (_this type_S3Bucket_) Default() interface{} { + return _dafny.EmptySeq.SetString() +} + +func (_this type_S3Bucket_) String() string { + return "ComAmazonawsDynamodbTypes.S3Bucket" +} +func (_this *CompanionStruct_S3Bucket_) Is_(__source _dafny.Sequence) bool { + var _36_x _dafny.Sequence = (__source) + _ = _36_x + return Companion_Default___.IsValid__S3Bucket(_36_x) +} + +// Definition of datatype S3BucketSource +type S3BucketSource struct { + Data_S3BucketSource_ +} + +func (_this S3BucketSource) Get_() Data_S3BucketSource_ { + return _this.Data_S3BucketSource_ +} + +type Data_S3BucketSource_ interface { + isS3BucketSource() +} + +type CompanionStruct_S3BucketSource_ struct { +} + +var Companion_S3BucketSource_ = CompanionStruct_S3BucketSource_{} + +type S3BucketSource_S3BucketSource struct { + S3BucketOwner m_Wrappers.Option + S3Bucket _dafny.Sequence + S3KeyPrefix m_Wrappers.Option +} + +func (S3BucketSource_S3BucketSource) isS3BucketSource() {} + +func (CompanionStruct_S3BucketSource_) Create_S3BucketSource_(S3BucketOwner m_Wrappers.Option, S3Bucket _dafny.Sequence, S3KeyPrefix m_Wrappers.Option) S3BucketSource { + return S3BucketSource{S3BucketSource_S3BucketSource{S3BucketOwner, S3Bucket, S3KeyPrefix}} +} + +func (_this S3BucketSource) Is_S3BucketSource() bool { + _, ok := _this.Get_().(S3BucketSource_S3BucketSource) + return ok +} + +func (CompanionStruct_S3BucketSource_) Default() S3BucketSource { + return Companion_S3BucketSource_.Create_S3BucketSource_(m_Wrappers.Companion_Option_.Default(), _dafny.EmptySeq.SetString(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this S3BucketSource) Dtor_S3BucketOwner() m_Wrappers.Option { + return _this.Get_().(S3BucketSource_S3BucketSource).S3BucketOwner +} + +func (_this S3BucketSource) Dtor_S3Bucket() _dafny.Sequence { + return _this.Get_().(S3BucketSource_S3BucketSource).S3Bucket +} + +func (_this S3BucketSource) Dtor_S3KeyPrefix() m_Wrappers.Option { + return _this.Get_().(S3BucketSource_S3BucketSource).S3KeyPrefix +} + +func (_this S3BucketSource) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case S3BucketSource_S3BucketSource: + { + return "ComAmazonawsDynamodbTypes.S3BucketSource.S3BucketSource" + "(" + _dafny.String(data.S3BucketOwner) + ", " + _dafny.String(data.S3Bucket) + ", " + _dafny.String(data.S3KeyPrefix) + ")" + } + default: + { + return "" + } + } +} + +func (_this S3BucketSource) Equals(other S3BucketSource) bool { + switch data1 := _this.Get_().(type) { + case S3BucketSource_S3BucketSource: + { + data2, ok := other.Get_().(S3BucketSource_S3BucketSource) + return ok && data1.S3BucketOwner.Equals(data2.S3BucketOwner) && data1.S3Bucket.Equals(data2.S3Bucket) && data1.S3KeyPrefix.Equals(data2.S3KeyPrefix) + } + default: + { + return false // unexpected + } + } +} + +func (_this S3BucketSource) EqualsGeneric(other interface{}) bool { + typed, ok := other.(S3BucketSource) + return ok && _this.Equals(typed) +} + +func Type_S3BucketSource_() _dafny.TypeDescriptor { + return type_S3BucketSource_{} +} + +type type_S3BucketSource_ struct { +} + +func (_this type_S3BucketSource_) Default() interface{} { + return Companion_S3BucketSource_.Default() +} + +func (_this type_S3BucketSource_) String() string { + return "ComAmazonawsDynamodbTypes.S3BucketSource" +} +func (_this S3BucketSource) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = S3BucketSource{} + +// End of datatype S3BucketSource + +// Definition of class S3Prefix +type S3Prefix struct { +} + +func New_S3Prefix_() *S3Prefix { + _this := S3Prefix{} + + return &_this +} + +type CompanionStruct_S3Prefix_ struct { +} + +var Companion_S3Prefix_ = CompanionStruct_S3Prefix_{} + +func (*S3Prefix) String() string { + return "ComAmazonawsDynamodbTypes.S3Prefix" +} + +// End of class S3Prefix + +func Type_S3Prefix_() _dafny.TypeDescriptor { + return type_S3Prefix_{} +} + +type type_S3Prefix_ struct { +} + +func (_this type_S3Prefix_) Default() interface{} { + return _dafny.EmptySeq.SetString() +} + +func (_this type_S3Prefix_) String() string { + return "ComAmazonawsDynamodbTypes.S3Prefix" +} +func (_this *CompanionStruct_S3Prefix_) Is_(__source _dafny.Sequence) bool { + var _37_x _dafny.Sequence = (__source) + _ = _37_x + return Companion_Default___.IsValid__S3Prefix(_37_x) +} + +// Definition of datatype S3SseAlgorithm +type S3SseAlgorithm struct { + Data_S3SseAlgorithm_ +} + +func (_this S3SseAlgorithm) Get_() Data_S3SseAlgorithm_ { + return _this.Data_S3SseAlgorithm_ +} + +type Data_S3SseAlgorithm_ interface { + isS3SseAlgorithm() +} + +type CompanionStruct_S3SseAlgorithm_ struct { +} + +var Companion_S3SseAlgorithm_ = CompanionStruct_S3SseAlgorithm_{} + +type S3SseAlgorithm_AES256 struct { +} + +func (S3SseAlgorithm_AES256) isS3SseAlgorithm() {} + +func (CompanionStruct_S3SseAlgorithm_) Create_AES256_() S3SseAlgorithm { + return S3SseAlgorithm{S3SseAlgorithm_AES256{}} +} + +func (_this S3SseAlgorithm) Is_AES256() bool { + _, ok := _this.Get_().(S3SseAlgorithm_AES256) + return ok +} + +type S3SseAlgorithm_KMS struct { +} + +func (S3SseAlgorithm_KMS) isS3SseAlgorithm() {} + +func (CompanionStruct_S3SseAlgorithm_) Create_KMS_() S3SseAlgorithm { + return S3SseAlgorithm{S3SseAlgorithm_KMS{}} +} + +func (_this S3SseAlgorithm) Is_KMS() bool { + _, ok := _this.Get_().(S3SseAlgorithm_KMS) + return ok +} + +func (CompanionStruct_S3SseAlgorithm_) Default() S3SseAlgorithm { + return Companion_S3SseAlgorithm_.Create_AES256_() +} + +func (_ CompanionStruct_S3SseAlgorithm_) AllSingletonConstructors() _dafny.Iterator { + i := -1 + return func() (interface{}, bool) { + i++ + switch i { + case 0: + return Companion_S3SseAlgorithm_.Create_AES256_(), true + case 1: + return Companion_S3SseAlgorithm_.Create_KMS_(), true + default: + return S3SseAlgorithm{}, false + } + } +} + +func (_this S3SseAlgorithm) String() string { + switch _this.Get_().(type) { + case nil: + return "null" + case S3SseAlgorithm_AES256: + { + return "ComAmazonawsDynamodbTypes.S3SseAlgorithm.AES256" + } + case S3SseAlgorithm_KMS: + { + return "ComAmazonawsDynamodbTypes.S3SseAlgorithm.KMS" + } + default: + { + return "" + } + } +} + +func (_this S3SseAlgorithm) Equals(other S3SseAlgorithm) bool { + switch _this.Get_().(type) { + case S3SseAlgorithm_AES256: + { + _, ok := other.Get_().(S3SseAlgorithm_AES256) + return ok + } + case S3SseAlgorithm_KMS: + { + _, ok := other.Get_().(S3SseAlgorithm_KMS) + return ok + } + default: + { + return false // unexpected + } + } +} + +func (_this S3SseAlgorithm) EqualsGeneric(other interface{}) bool { + typed, ok := other.(S3SseAlgorithm) + return ok && _this.Equals(typed) +} + +func Type_S3SseAlgorithm_() _dafny.TypeDescriptor { + return type_S3SseAlgorithm_{} +} + +type type_S3SseAlgorithm_ struct { +} + +func (_this type_S3SseAlgorithm_) Default() interface{} { + return Companion_S3SseAlgorithm_.Default() +} + +func (_this type_S3SseAlgorithm_) String() string { + return "ComAmazonawsDynamodbTypes.S3SseAlgorithm" +} +func (_this S3SseAlgorithm) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = S3SseAlgorithm{} + +// End of datatype S3SseAlgorithm + +// Definition of class S3SseKmsKeyId +type S3SseKmsKeyId struct { +} + +func New_S3SseKmsKeyId_() *S3SseKmsKeyId { + _this := S3SseKmsKeyId{} + + return &_this +} + +type CompanionStruct_S3SseKmsKeyId_ struct { +} + +var Companion_S3SseKmsKeyId_ = CompanionStruct_S3SseKmsKeyId_{} + +func (*S3SseKmsKeyId) String() string { + return "ComAmazonawsDynamodbTypes.S3SseKmsKeyId" +} + +// End of class S3SseKmsKeyId + +func Type_S3SseKmsKeyId_() _dafny.TypeDescriptor { + return type_S3SseKmsKeyId_{} +} + +type type_S3SseKmsKeyId_ struct { +} + +func (_this type_S3SseKmsKeyId_) Default() interface{} { + return _dafny.EmptySeq.SetString() +} + +func (_this type_S3SseKmsKeyId_) String() string { + return "ComAmazonawsDynamodbTypes.S3SseKmsKeyId" +} +func (_this *CompanionStruct_S3SseKmsKeyId_) Is_(__source _dafny.Sequence) bool { + var _38_x _dafny.Sequence = (__source) + _ = _38_x + return Companion_Default___.IsValid__S3SseKmsKeyId(_38_x) +} + +// Definition of datatype ScalarAttributeType +type ScalarAttributeType struct { + Data_ScalarAttributeType_ +} + +func (_this ScalarAttributeType) Get_() Data_ScalarAttributeType_ { + return _this.Data_ScalarAttributeType_ +} + +type Data_ScalarAttributeType_ interface { + isScalarAttributeType() +} + +type CompanionStruct_ScalarAttributeType_ struct { +} + +var Companion_ScalarAttributeType_ = CompanionStruct_ScalarAttributeType_{} + +type ScalarAttributeType_S struct { +} + +func (ScalarAttributeType_S) isScalarAttributeType() {} + +func (CompanionStruct_ScalarAttributeType_) Create_S_() ScalarAttributeType { + return ScalarAttributeType{ScalarAttributeType_S{}} +} + +func (_this ScalarAttributeType) Is_S() bool { + _, ok := _this.Get_().(ScalarAttributeType_S) + return ok +} + +type ScalarAttributeType_N struct { +} + +func (ScalarAttributeType_N) isScalarAttributeType() {} + +func (CompanionStruct_ScalarAttributeType_) Create_N_() ScalarAttributeType { + return ScalarAttributeType{ScalarAttributeType_N{}} +} + +func (_this ScalarAttributeType) Is_N() bool { + _, ok := _this.Get_().(ScalarAttributeType_N) + return ok +} + +type ScalarAttributeType_B struct { +} + +func (ScalarAttributeType_B) isScalarAttributeType() {} + +func (CompanionStruct_ScalarAttributeType_) Create_B_() ScalarAttributeType { + return ScalarAttributeType{ScalarAttributeType_B{}} +} + +func (_this ScalarAttributeType) Is_B() bool { + _, ok := _this.Get_().(ScalarAttributeType_B) + return ok +} + +func (CompanionStruct_ScalarAttributeType_) Default() ScalarAttributeType { + return Companion_ScalarAttributeType_.Create_S_() +} + +func (_ CompanionStruct_ScalarAttributeType_) AllSingletonConstructors() _dafny.Iterator { + i := -1 + return func() (interface{}, bool) { + i++ + switch i { + case 0: + return Companion_ScalarAttributeType_.Create_S_(), true + case 1: + return Companion_ScalarAttributeType_.Create_N_(), true + case 2: + return Companion_ScalarAttributeType_.Create_B_(), true + default: + return ScalarAttributeType{}, false + } + } +} + +func (_this ScalarAttributeType) String() string { + switch _this.Get_().(type) { + case nil: + return "null" + case ScalarAttributeType_S: + { + return "ComAmazonawsDynamodbTypes.ScalarAttributeType.S" + } + case ScalarAttributeType_N: + { + return "ComAmazonawsDynamodbTypes.ScalarAttributeType.N" + } + case ScalarAttributeType_B: + { + return "ComAmazonawsDynamodbTypes.ScalarAttributeType.B" + } + default: + { + return "" + } + } +} + +func (_this ScalarAttributeType) Equals(other ScalarAttributeType) bool { + switch _this.Get_().(type) { + case ScalarAttributeType_S: + { + _, ok := other.Get_().(ScalarAttributeType_S) + return ok + } + case ScalarAttributeType_N: + { + _, ok := other.Get_().(ScalarAttributeType_N) + return ok + } + case ScalarAttributeType_B: + { + _, ok := other.Get_().(ScalarAttributeType_B) + return ok + } + default: + { + return false // unexpected + } + } +} + +func (_this ScalarAttributeType) EqualsGeneric(other interface{}) bool { + typed, ok := other.(ScalarAttributeType) + return ok && _this.Equals(typed) +} + +func Type_ScalarAttributeType_() _dafny.TypeDescriptor { + return type_ScalarAttributeType_{} +} + +type type_ScalarAttributeType_ struct { +} + +func (_this type_ScalarAttributeType_) Default() interface{} { + return Companion_ScalarAttributeType_.Default() +} + +func (_this type_ScalarAttributeType_) String() string { + return "ComAmazonawsDynamodbTypes.ScalarAttributeType" +} +func (_this ScalarAttributeType) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = ScalarAttributeType{} + +// End of datatype ScalarAttributeType + +// Definition of datatype ScanInput +type ScanInput struct { + Data_ScanInput_ +} + +func (_this ScanInput) Get_() Data_ScanInput_ { + return _this.Data_ScanInput_ +} + +type Data_ScanInput_ interface { + isScanInput() +} + +type CompanionStruct_ScanInput_ struct { +} + +var Companion_ScanInput_ = CompanionStruct_ScanInput_{} + +type ScanInput_ScanInput struct { + TableName _dafny.Sequence + IndexName m_Wrappers.Option + AttributesToGet m_Wrappers.Option + Limit m_Wrappers.Option + Select m_Wrappers.Option + ScanFilter m_Wrappers.Option + ConditionalOperator m_Wrappers.Option + ExclusiveStartKey m_Wrappers.Option + ReturnConsumedCapacity m_Wrappers.Option + TotalSegments m_Wrappers.Option + Segment m_Wrappers.Option + ProjectionExpression m_Wrappers.Option + FilterExpression m_Wrappers.Option + ExpressionAttributeNames m_Wrappers.Option + ExpressionAttributeValues m_Wrappers.Option + ConsistentRead m_Wrappers.Option +} + +func (ScanInput_ScanInput) isScanInput() {} + +func (CompanionStruct_ScanInput_) Create_ScanInput_(TableName _dafny.Sequence, IndexName m_Wrappers.Option, AttributesToGet m_Wrappers.Option, Limit m_Wrappers.Option, Select m_Wrappers.Option, ScanFilter m_Wrappers.Option, ConditionalOperator m_Wrappers.Option, ExclusiveStartKey m_Wrappers.Option, ReturnConsumedCapacity m_Wrappers.Option, TotalSegments m_Wrappers.Option, Segment m_Wrappers.Option, ProjectionExpression m_Wrappers.Option, FilterExpression m_Wrappers.Option, ExpressionAttributeNames m_Wrappers.Option, ExpressionAttributeValues m_Wrappers.Option, ConsistentRead m_Wrappers.Option) ScanInput { + return ScanInput{ScanInput_ScanInput{TableName, IndexName, AttributesToGet, Limit, Select, ScanFilter, ConditionalOperator, ExclusiveStartKey, ReturnConsumedCapacity, TotalSegments, Segment, ProjectionExpression, FilterExpression, ExpressionAttributeNames, ExpressionAttributeValues, ConsistentRead}} +} + +func (_this ScanInput) Is_ScanInput() bool { + _, ok := _this.Get_().(ScanInput_ScanInput) + return ok +} + +func (CompanionStruct_ScanInput_) Default() ScanInput { + return Companion_ScanInput_.Create_ScanInput_(_dafny.EmptySeq.SetString(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this ScanInput) Dtor_TableName() _dafny.Sequence { + return _this.Get_().(ScanInput_ScanInput).TableName +} + +func (_this ScanInput) Dtor_IndexName() m_Wrappers.Option { + return _this.Get_().(ScanInput_ScanInput).IndexName +} + +func (_this ScanInput) Dtor_AttributesToGet() m_Wrappers.Option { + return _this.Get_().(ScanInput_ScanInput).AttributesToGet +} + +func (_this ScanInput) Dtor_Limit() m_Wrappers.Option { + return _this.Get_().(ScanInput_ScanInput).Limit +} + +func (_this ScanInput) Dtor_Select() m_Wrappers.Option { + return _this.Get_().(ScanInput_ScanInput).Select +} + +func (_this ScanInput) Dtor_ScanFilter() m_Wrappers.Option { + return _this.Get_().(ScanInput_ScanInput).ScanFilter +} + +func (_this ScanInput) Dtor_ConditionalOperator() m_Wrappers.Option { + return _this.Get_().(ScanInput_ScanInput).ConditionalOperator +} + +func (_this ScanInput) Dtor_ExclusiveStartKey() m_Wrappers.Option { + return _this.Get_().(ScanInput_ScanInput).ExclusiveStartKey +} + +func (_this ScanInput) Dtor_ReturnConsumedCapacity() m_Wrappers.Option { + return _this.Get_().(ScanInput_ScanInput).ReturnConsumedCapacity +} + +func (_this ScanInput) Dtor_TotalSegments() m_Wrappers.Option { + return _this.Get_().(ScanInput_ScanInput).TotalSegments +} + +func (_this ScanInput) Dtor_Segment() m_Wrappers.Option { + return _this.Get_().(ScanInput_ScanInput).Segment +} + +func (_this ScanInput) Dtor_ProjectionExpression() m_Wrappers.Option { + return _this.Get_().(ScanInput_ScanInput).ProjectionExpression +} + +func (_this ScanInput) Dtor_FilterExpression() m_Wrappers.Option { + return _this.Get_().(ScanInput_ScanInput).FilterExpression +} + +func (_this ScanInput) Dtor_ExpressionAttributeNames() m_Wrappers.Option { + return _this.Get_().(ScanInput_ScanInput).ExpressionAttributeNames +} + +func (_this ScanInput) Dtor_ExpressionAttributeValues() m_Wrappers.Option { + return _this.Get_().(ScanInput_ScanInput).ExpressionAttributeValues +} + +func (_this ScanInput) Dtor_ConsistentRead() m_Wrappers.Option { + return _this.Get_().(ScanInput_ScanInput).ConsistentRead +} + +func (_this ScanInput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case ScanInput_ScanInput: + { + return "ComAmazonawsDynamodbTypes.ScanInput.ScanInput" + "(" + _dafny.String(data.TableName) + ", " + _dafny.String(data.IndexName) + ", " + _dafny.String(data.AttributesToGet) + ", " + _dafny.String(data.Limit) + ", " + _dafny.String(data.Select) + ", " + _dafny.String(data.ScanFilter) + ", " + _dafny.String(data.ConditionalOperator) + ", " + _dafny.String(data.ExclusiveStartKey) + ", " + _dafny.String(data.ReturnConsumedCapacity) + ", " + _dafny.String(data.TotalSegments) + ", " + _dafny.String(data.Segment) + ", " + _dafny.String(data.ProjectionExpression) + ", " + _dafny.String(data.FilterExpression) + ", " + _dafny.String(data.ExpressionAttributeNames) + ", " + _dafny.String(data.ExpressionAttributeValues) + ", " + _dafny.String(data.ConsistentRead) + ")" + } + default: + { + return "" + } + } +} + +func (_this ScanInput) Equals(other ScanInput) bool { + switch data1 := _this.Get_().(type) { + case ScanInput_ScanInput: + { + data2, ok := other.Get_().(ScanInput_ScanInput) + return ok && data1.TableName.Equals(data2.TableName) && data1.IndexName.Equals(data2.IndexName) && data1.AttributesToGet.Equals(data2.AttributesToGet) && data1.Limit.Equals(data2.Limit) && data1.Select.Equals(data2.Select) && data1.ScanFilter.Equals(data2.ScanFilter) && data1.ConditionalOperator.Equals(data2.ConditionalOperator) && data1.ExclusiveStartKey.Equals(data2.ExclusiveStartKey) && data1.ReturnConsumedCapacity.Equals(data2.ReturnConsumedCapacity) && data1.TotalSegments.Equals(data2.TotalSegments) && data1.Segment.Equals(data2.Segment) && data1.ProjectionExpression.Equals(data2.ProjectionExpression) && data1.FilterExpression.Equals(data2.FilterExpression) && data1.ExpressionAttributeNames.Equals(data2.ExpressionAttributeNames) && data1.ExpressionAttributeValues.Equals(data2.ExpressionAttributeValues) && data1.ConsistentRead.Equals(data2.ConsistentRead) + } + default: + { + return false // unexpected + } + } +} + +func (_this ScanInput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(ScanInput) + return ok && _this.Equals(typed) +} + +func Type_ScanInput_() _dafny.TypeDescriptor { + return type_ScanInput_{} +} + +type type_ScanInput_ struct { +} + +func (_this type_ScanInput_) Default() interface{} { + return Companion_ScanInput_.Default() +} + +func (_this type_ScanInput_) String() string { + return "ComAmazonawsDynamodbTypes.ScanInput" +} +func (_this ScanInput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = ScanInput{} + +// End of datatype ScanInput + +// Definition of datatype ScanOutput +type ScanOutput struct { + Data_ScanOutput_ +} + +func (_this ScanOutput) Get_() Data_ScanOutput_ { + return _this.Data_ScanOutput_ +} + +type Data_ScanOutput_ interface { + isScanOutput() +} + +type CompanionStruct_ScanOutput_ struct { +} + +var Companion_ScanOutput_ = CompanionStruct_ScanOutput_{} + +type ScanOutput_ScanOutput struct { + Items m_Wrappers.Option + Count m_Wrappers.Option + ScannedCount m_Wrappers.Option + LastEvaluatedKey m_Wrappers.Option + ConsumedCapacity m_Wrappers.Option +} + +func (ScanOutput_ScanOutput) isScanOutput() {} + +func (CompanionStruct_ScanOutput_) Create_ScanOutput_(Items m_Wrappers.Option, Count m_Wrappers.Option, ScannedCount m_Wrappers.Option, LastEvaluatedKey m_Wrappers.Option, ConsumedCapacity m_Wrappers.Option) ScanOutput { + return ScanOutput{ScanOutput_ScanOutput{Items, Count, ScannedCount, LastEvaluatedKey, ConsumedCapacity}} +} + +func (_this ScanOutput) Is_ScanOutput() bool { + _, ok := _this.Get_().(ScanOutput_ScanOutput) + return ok +} + +func (CompanionStruct_ScanOutput_) Default() ScanOutput { + return Companion_ScanOutput_.Create_ScanOutput_(m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this ScanOutput) Dtor_Items() m_Wrappers.Option { + return _this.Get_().(ScanOutput_ScanOutput).Items +} + +func (_this ScanOutput) Dtor_Count() m_Wrappers.Option { + return _this.Get_().(ScanOutput_ScanOutput).Count +} + +func (_this ScanOutput) Dtor_ScannedCount() m_Wrappers.Option { + return _this.Get_().(ScanOutput_ScanOutput).ScannedCount +} + +func (_this ScanOutput) Dtor_LastEvaluatedKey() m_Wrappers.Option { + return _this.Get_().(ScanOutput_ScanOutput).LastEvaluatedKey +} + +func (_this ScanOutput) Dtor_ConsumedCapacity() m_Wrappers.Option { + return _this.Get_().(ScanOutput_ScanOutput).ConsumedCapacity +} + +func (_this ScanOutput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case ScanOutput_ScanOutput: + { + return "ComAmazonawsDynamodbTypes.ScanOutput.ScanOutput" + "(" + _dafny.String(data.Items) + ", " + _dafny.String(data.Count) + ", " + _dafny.String(data.ScannedCount) + ", " + _dafny.String(data.LastEvaluatedKey) + ", " + _dafny.String(data.ConsumedCapacity) + ")" + } + default: + { + return "" + } + } +} + +func (_this ScanOutput) Equals(other ScanOutput) bool { + switch data1 := _this.Get_().(type) { + case ScanOutput_ScanOutput: + { + data2, ok := other.Get_().(ScanOutput_ScanOutput) + return ok && data1.Items.Equals(data2.Items) && data1.Count.Equals(data2.Count) && data1.ScannedCount.Equals(data2.ScannedCount) && data1.LastEvaluatedKey.Equals(data2.LastEvaluatedKey) && data1.ConsumedCapacity.Equals(data2.ConsumedCapacity) + } + default: + { + return false // unexpected + } + } +} + +func (_this ScanOutput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(ScanOutput) + return ok && _this.Equals(typed) +} + +func Type_ScanOutput_() _dafny.TypeDescriptor { + return type_ScanOutput_{} +} + +type type_ScanOutput_ struct { +} + +func (_this type_ScanOutput_) Default() interface{} { + return Companion_ScanOutput_.Default() +} + +func (_this type_ScanOutput_) String() string { + return "ComAmazonawsDynamodbTypes.ScanOutput" +} +func (_this ScanOutput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = ScanOutput{} + +// End of datatype ScanOutput + +// Definition of class ScanSegment +type ScanSegment struct { +} + +func New_ScanSegment_() *ScanSegment { + _this := ScanSegment{} + + return &_this +} + +type CompanionStruct_ScanSegment_ struct { +} + +var Companion_ScanSegment_ = CompanionStruct_ScanSegment_{} + +func (*ScanSegment) String() string { + return "ComAmazonawsDynamodbTypes.ScanSegment" +} + +// End of class ScanSegment + +func Type_ScanSegment_() _dafny.TypeDescriptor { + return type_ScanSegment_{} +} + +type type_ScanSegment_ struct { +} + +func (_this type_ScanSegment_) Default() interface{} { + return int32(0) +} + +func (_this type_ScanSegment_) String() string { + return "ComAmazonawsDynamodbTypes.ScanSegment" +} +func (_this *CompanionStruct_ScanSegment_) Is_(__source int32) bool { + var _39_x int32 = (__source) + _ = _39_x + if true { + return Companion_Default___.IsValid__ScanSegment(_39_x) + } + return false +} + +// Definition of class ScanTotalSegments +type ScanTotalSegments struct { +} + +func New_ScanTotalSegments_() *ScanTotalSegments { + _this := ScanTotalSegments{} + + return &_this +} + +type CompanionStruct_ScanTotalSegments_ struct { +} + +var Companion_ScanTotalSegments_ = CompanionStruct_ScanTotalSegments_{} + +func (*ScanTotalSegments) String() string { + return "ComAmazonawsDynamodbTypes.ScanTotalSegments" +} + +// End of class ScanTotalSegments + +func Type_ScanTotalSegments_() _dafny.TypeDescriptor { + return type_ScanTotalSegments_{} +} + +type type_ScanTotalSegments_ struct { +} + +func (_this type_ScanTotalSegments_) Default() interface{} { + return int32(0) +} + +func (_this type_ScanTotalSegments_) String() string { + return "ComAmazonawsDynamodbTypes.ScanTotalSegments" +} +func (_this *CompanionStruct_ScanTotalSegments_) Is_(__source int32) bool { + var _40_x int32 = (__source) + _ = _40_x + if true { + return Companion_Default___.IsValid__ScanTotalSegments(_40_x) + } + return false +} + +// Definition of datatype Select +type Select struct { + Data_Select_ +} + +func (_this Select) Get_() Data_Select_ { + return _this.Data_Select_ +} + +type Data_Select_ interface { + isSelect() +} + +type CompanionStruct_Select_ struct { +} + +var Companion_Select_ = CompanionStruct_Select_{} + +type Select_ALL__ATTRIBUTES struct { +} + +func (Select_ALL__ATTRIBUTES) isSelect() {} + +func (CompanionStruct_Select_) Create_ALL__ATTRIBUTES_() Select { + return Select{Select_ALL__ATTRIBUTES{}} +} + +func (_this Select) Is_ALL__ATTRIBUTES() bool { + _, ok := _this.Get_().(Select_ALL__ATTRIBUTES) + return ok +} + +type Select_ALL__PROJECTED__ATTRIBUTES struct { +} + +func (Select_ALL__PROJECTED__ATTRIBUTES) isSelect() {} + +func (CompanionStruct_Select_) Create_ALL__PROJECTED__ATTRIBUTES_() Select { + return Select{Select_ALL__PROJECTED__ATTRIBUTES{}} +} + +func (_this Select) Is_ALL__PROJECTED__ATTRIBUTES() bool { + _, ok := _this.Get_().(Select_ALL__PROJECTED__ATTRIBUTES) + return ok +} + +type Select_SPECIFIC__ATTRIBUTES struct { +} + +func (Select_SPECIFIC__ATTRIBUTES) isSelect() {} + +func (CompanionStruct_Select_) Create_SPECIFIC__ATTRIBUTES_() Select { + return Select{Select_SPECIFIC__ATTRIBUTES{}} +} + +func (_this Select) Is_SPECIFIC__ATTRIBUTES() bool { + _, ok := _this.Get_().(Select_SPECIFIC__ATTRIBUTES) + return ok +} + +type Select_COUNT struct { +} + +func (Select_COUNT) isSelect() {} + +func (CompanionStruct_Select_) Create_COUNT_() Select { + return Select{Select_COUNT{}} +} + +func (_this Select) Is_COUNT() bool { + _, ok := _this.Get_().(Select_COUNT) + return ok +} + +func (CompanionStruct_Select_) Default() Select { + return Companion_Select_.Create_ALL__ATTRIBUTES_() +} + +func (_ CompanionStruct_Select_) AllSingletonConstructors() _dafny.Iterator { + i := -1 + return func() (interface{}, bool) { + i++ + switch i { + case 0: + return Companion_Select_.Create_ALL__ATTRIBUTES_(), true + case 1: + return Companion_Select_.Create_ALL__PROJECTED__ATTRIBUTES_(), true + case 2: + return Companion_Select_.Create_SPECIFIC__ATTRIBUTES_(), true + case 3: + return Companion_Select_.Create_COUNT_(), true + default: + return Select{}, false + } + } +} + +func (_this Select) String() string { + switch _this.Get_().(type) { + case nil: + return "null" + case Select_ALL__ATTRIBUTES: + { + return "ComAmazonawsDynamodbTypes.Select.ALL_ATTRIBUTES" + } + case Select_ALL__PROJECTED__ATTRIBUTES: + { + return "ComAmazonawsDynamodbTypes.Select.ALL_PROJECTED_ATTRIBUTES" + } + case Select_SPECIFIC__ATTRIBUTES: + { + return "ComAmazonawsDynamodbTypes.Select.SPECIFIC_ATTRIBUTES" + } + case Select_COUNT: + { + return "ComAmazonawsDynamodbTypes.Select.COUNT" + } + default: + { + return "" + } + } +} + +func (_this Select) Equals(other Select) bool { + switch _this.Get_().(type) { + case Select_ALL__ATTRIBUTES: + { + _, ok := other.Get_().(Select_ALL__ATTRIBUTES) + return ok + } + case Select_ALL__PROJECTED__ATTRIBUTES: + { + _, ok := other.Get_().(Select_ALL__PROJECTED__ATTRIBUTES) + return ok + } + case Select_SPECIFIC__ATTRIBUTES: + { + _, ok := other.Get_().(Select_SPECIFIC__ATTRIBUTES) + return ok + } + case Select_COUNT: + { + _, ok := other.Get_().(Select_COUNT) + return ok + } + default: + { + return false // unexpected + } + } +} + +func (_this Select) EqualsGeneric(other interface{}) bool { + typed, ok := other.(Select) + return ok && _this.Equals(typed) +} + +func Type_Select_() _dafny.TypeDescriptor { + return type_Select_{} +} + +type type_Select_ struct { +} + +func (_this type_Select_) Default() interface{} { + return Companion_Select_.Default() +} + +func (_this type_Select_) String() string { + return "ComAmazonawsDynamodbTypes.Select" +} +func (_this Select) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = Select{} + +// End of datatype Select + +// Definition of datatype SourceTableDetails +type SourceTableDetails struct { + Data_SourceTableDetails_ +} + +func (_this SourceTableDetails) Get_() Data_SourceTableDetails_ { + return _this.Data_SourceTableDetails_ +} + +type Data_SourceTableDetails_ interface { + isSourceTableDetails() +} + +type CompanionStruct_SourceTableDetails_ struct { +} + +var Companion_SourceTableDetails_ = CompanionStruct_SourceTableDetails_{} + +type SourceTableDetails_SourceTableDetails struct { + TableName _dafny.Sequence + TableId _dafny.Sequence + TableArn m_Wrappers.Option + TableSizeBytes m_Wrappers.Option + KeySchema _dafny.Sequence + TableCreationDateTime _dafny.Sequence + ProvisionedThroughput ProvisionedThroughput + OnDemandThroughput m_Wrappers.Option + ItemCount m_Wrappers.Option + BillingMode m_Wrappers.Option +} + +func (SourceTableDetails_SourceTableDetails) isSourceTableDetails() {} + +func (CompanionStruct_SourceTableDetails_) Create_SourceTableDetails_(TableName _dafny.Sequence, TableId _dafny.Sequence, TableArn m_Wrappers.Option, TableSizeBytes m_Wrappers.Option, KeySchema _dafny.Sequence, TableCreationDateTime _dafny.Sequence, ProvisionedThroughput ProvisionedThroughput, OnDemandThroughput m_Wrappers.Option, ItemCount m_Wrappers.Option, BillingMode m_Wrappers.Option) SourceTableDetails { + return SourceTableDetails{SourceTableDetails_SourceTableDetails{TableName, TableId, TableArn, TableSizeBytes, KeySchema, TableCreationDateTime, ProvisionedThroughput, OnDemandThroughput, ItemCount, BillingMode}} +} + +func (_this SourceTableDetails) Is_SourceTableDetails() bool { + _, ok := _this.Get_().(SourceTableDetails_SourceTableDetails) + return ok +} + +func (CompanionStruct_SourceTableDetails_) Default() SourceTableDetails { + return Companion_SourceTableDetails_.Create_SourceTableDetails_(_dafny.EmptySeq.SetString(), _dafny.EmptySeq.SetString(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), _dafny.EmptySeq, _dafny.EmptySeq.SetString(), Companion_ProvisionedThroughput_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this SourceTableDetails) Dtor_TableName() _dafny.Sequence { + return _this.Get_().(SourceTableDetails_SourceTableDetails).TableName +} + +func (_this SourceTableDetails) Dtor_TableId() _dafny.Sequence { + return _this.Get_().(SourceTableDetails_SourceTableDetails).TableId +} + +func (_this SourceTableDetails) Dtor_TableArn() m_Wrappers.Option { + return _this.Get_().(SourceTableDetails_SourceTableDetails).TableArn +} + +func (_this SourceTableDetails) Dtor_TableSizeBytes() m_Wrappers.Option { + return _this.Get_().(SourceTableDetails_SourceTableDetails).TableSizeBytes +} + +func (_this SourceTableDetails) Dtor_KeySchema() _dafny.Sequence { + return _this.Get_().(SourceTableDetails_SourceTableDetails).KeySchema +} + +func (_this SourceTableDetails) Dtor_TableCreationDateTime() _dafny.Sequence { + return _this.Get_().(SourceTableDetails_SourceTableDetails).TableCreationDateTime +} + +func (_this SourceTableDetails) Dtor_ProvisionedThroughput() ProvisionedThroughput { + return _this.Get_().(SourceTableDetails_SourceTableDetails).ProvisionedThroughput +} + +func (_this SourceTableDetails) Dtor_OnDemandThroughput() m_Wrappers.Option { + return _this.Get_().(SourceTableDetails_SourceTableDetails).OnDemandThroughput +} + +func (_this SourceTableDetails) Dtor_ItemCount() m_Wrappers.Option { + return _this.Get_().(SourceTableDetails_SourceTableDetails).ItemCount +} + +func (_this SourceTableDetails) Dtor_BillingMode() m_Wrappers.Option { + return _this.Get_().(SourceTableDetails_SourceTableDetails).BillingMode +} + +func (_this SourceTableDetails) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case SourceTableDetails_SourceTableDetails: + { + return "ComAmazonawsDynamodbTypes.SourceTableDetails.SourceTableDetails" + "(" + _dafny.String(data.TableName) + ", " + _dafny.String(data.TableId) + ", " + _dafny.String(data.TableArn) + ", " + _dafny.String(data.TableSizeBytes) + ", " + _dafny.String(data.KeySchema) + ", " + _dafny.String(data.TableCreationDateTime) + ", " + _dafny.String(data.ProvisionedThroughput) + ", " + _dafny.String(data.OnDemandThroughput) + ", " + _dafny.String(data.ItemCount) + ", " + _dafny.String(data.BillingMode) + ")" + } + default: + { + return "" + } + } +} + +func (_this SourceTableDetails) Equals(other SourceTableDetails) bool { + switch data1 := _this.Get_().(type) { + case SourceTableDetails_SourceTableDetails: + { + data2, ok := other.Get_().(SourceTableDetails_SourceTableDetails) + return ok && data1.TableName.Equals(data2.TableName) && data1.TableId.Equals(data2.TableId) && data1.TableArn.Equals(data2.TableArn) && data1.TableSizeBytes.Equals(data2.TableSizeBytes) && data1.KeySchema.Equals(data2.KeySchema) && data1.TableCreationDateTime.Equals(data2.TableCreationDateTime) && data1.ProvisionedThroughput.Equals(data2.ProvisionedThroughput) && data1.OnDemandThroughput.Equals(data2.OnDemandThroughput) && data1.ItemCount.Equals(data2.ItemCount) && data1.BillingMode.Equals(data2.BillingMode) + } + default: + { + return false // unexpected + } + } +} + +func (_this SourceTableDetails) EqualsGeneric(other interface{}) bool { + typed, ok := other.(SourceTableDetails) + return ok && _this.Equals(typed) +} + +func Type_SourceTableDetails_() _dafny.TypeDescriptor { + return type_SourceTableDetails_{} +} + +type type_SourceTableDetails_ struct { +} + +func (_this type_SourceTableDetails_) Default() interface{} { + return Companion_SourceTableDetails_.Default() +} + +func (_this type_SourceTableDetails_) String() string { + return "ComAmazonawsDynamodbTypes.SourceTableDetails" +} +func (_this SourceTableDetails) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = SourceTableDetails{} + +// End of datatype SourceTableDetails + +// Definition of datatype SourceTableFeatureDetails +type SourceTableFeatureDetails struct { + Data_SourceTableFeatureDetails_ +} + +func (_this SourceTableFeatureDetails) Get_() Data_SourceTableFeatureDetails_ { + return _this.Data_SourceTableFeatureDetails_ +} + +type Data_SourceTableFeatureDetails_ interface { + isSourceTableFeatureDetails() +} + +type CompanionStruct_SourceTableFeatureDetails_ struct { +} + +var Companion_SourceTableFeatureDetails_ = CompanionStruct_SourceTableFeatureDetails_{} + +type SourceTableFeatureDetails_SourceTableFeatureDetails struct { + LocalSecondaryIndexes m_Wrappers.Option + GlobalSecondaryIndexes m_Wrappers.Option + StreamDescription m_Wrappers.Option + TimeToLiveDescription m_Wrappers.Option + SSEDescription m_Wrappers.Option +} + +func (SourceTableFeatureDetails_SourceTableFeatureDetails) isSourceTableFeatureDetails() {} + +func (CompanionStruct_SourceTableFeatureDetails_) Create_SourceTableFeatureDetails_(LocalSecondaryIndexes m_Wrappers.Option, GlobalSecondaryIndexes m_Wrappers.Option, StreamDescription m_Wrappers.Option, TimeToLiveDescription m_Wrappers.Option, SSEDescription m_Wrappers.Option) SourceTableFeatureDetails { + return SourceTableFeatureDetails{SourceTableFeatureDetails_SourceTableFeatureDetails{LocalSecondaryIndexes, GlobalSecondaryIndexes, StreamDescription, TimeToLiveDescription, SSEDescription}} +} + +func (_this SourceTableFeatureDetails) Is_SourceTableFeatureDetails() bool { + _, ok := _this.Get_().(SourceTableFeatureDetails_SourceTableFeatureDetails) + return ok +} + +func (CompanionStruct_SourceTableFeatureDetails_) Default() SourceTableFeatureDetails { + return Companion_SourceTableFeatureDetails_.Create_SourceTableFeatureDetails_(m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this SourceTableFeatureDetails) Dtor_LocalSecondaryIndexes() m_Wrappers.Option { + return _this.Get_().(SourceTableFeatureDetails_SourceTableFeatureDetails).LocalSecondaryIndexes +} + +func (_this SourceTableFeatureDetails) Dtor_GlobalSecondaryIndexes() m_Wrappers.Option { + return _this.Get_().(SourceTableFeatureDetails_SourceTableFeatureDetails).GlobalSecondaryIndexes +} + +func (_this SourceTableFeatureDetails) Dtor_StreamDescription() m_Wrappers.Option { + return _this.Get_().(SourceTableFeatureDetails_SourceTableFeatureDetails).StreamDescription +} + +func (_this SourceTableFeatureDetails) Dtor_TimeToLiveDescription() m_Wrappers.Option { + return _this.Get_().(SourceTableFeatureDetails_SourceTableFeatureDetails).TimeToLiveDescription +} + +func (_this SourceTableFeatureDetails) Dtor_SSEDescription() m_Wrappers.Option { + return _this.Get_().(SourceTableFeatureDetails_SourceTableFeatureDetails).SSEDescription +} + +func (_this SourceTableFeatureDetails) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case SourceTableFeatureDetails_SourceTableFeatureDetails: + { + return "ComAmazonawsDynamodbTypes.SourceTableFeatureDetails.SourceTableFeatureDetails" + "(" + _dafny.String(data.LocalSecondaryIndexes) + ", " + _dafny.String(data.GlobalSecondaryIndexes) + ", " + _dafny.String(data.StreamDescription) + ", " + _dafny.String(data.TimeToLiveDescription) + ", " + _dafny.String(data.SSEDescription) + ")" + } + default: + { + return "" + } + } +} + +func (_this SourceTableFeatureDetails) Equals(other SourceTableFeatureDetails) bool { + switch data1 := _this.Get_().(type) { + case SourceTableFeatureDetails_SourceTableFeatureDetails: + { + data2, ok := other.Get_().(SourceTableFeatureDetails_SourceTableFeatureDetails) + return ok && data1.LocalSecondaryIndexes.Equals(data2.LocalSecondaryIndexes) && data1.GlobalSecondaryIndexes.Equals(data2.GlobalSecondaryIndexes) && data1.StreamDescription.Equals(data2.StreamDescription) && data1.TimeToLiveDescription.Equals(data2.TimeToLiveDescription) && data1.SSEDescription.Equals(data2.SSEDescription) + } + default: + { + return false // unexpected + } + } +} + +func (_this SourceTableFeatureDetails) EqualsGeneric(other interface{}) bool { + typed, ok := other.(SourceTableFeatureDetails) + return ok && _this.Equals(typed) +} + +func Type_SourceTableFeatureDetails_() _dafny.TypeDescriptor { + return type_SourceTableFeatureDetails_{} +} + +type type_SourceTableFeatureDetails_ struct { +} + +func (_this type_SourceTableFeatureDetails_) Default() interface{} { + return Companion_SourceTableFeatureDetails_.Default() +} + +func (_this type_SourceTableFeatureDetails_) String() string { + return "ComAmazonawsDynamodbTypes.SourceTableFeatureDetails" +} +func (_this SourceTableFeatureDetails) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = SourceTableFeatureDetails{} + +// End of datatype SourceTableFeatureDetails + +// Definition of datatype SSEDescription +type SSEDescription struct { + Data_SSEDescription_ +} + +func (_this SSEDescription) Get_() Data_SSEDescription_ { + return _this.Data_SSEDescription_ +} + +type Data_SSEDescription_ interface { + isSSEDescription() +} + +type CompanionStruct_SSEDescription_ struct { +} + +var Companion_SSEDescription_ = CompanionStruct_SSEDescription_{} + +type SSEDescription_SSEDescription struct { + Status m_Wrappers.Option + SSEType m_Wrappers.Option + KMSMasterKeyArn m_Wrappers.Option + InaccessibleEncryptionDateTime m_Wrappers.Option +} + +func (SSEDescription_SSEDescription) isSSEDescription() {} + +func (CompanionStruct_SSEDescription_) Create_SSEDescription_(Status m_Wrappers.Option, SSEType m_Wrappers.Option, KMSMasterKeyArn m_Wrappers.Option, InaccessibleEncryptionDateTime m_Wrappers.Option) SSEDescription { + return SSEDescription{SSEDescription_SSEDescription{Status, SSEType, KMSMasterKeyArn, InaccessibleEncryptionDateTime}} +} + +func (_this SSEDescription) Is_SSEDescription() bool { + _, ok := _this.Get_().(SSEDescription_SSEDescription) + return ok +} + +func (CompanionStruct_SSEDescription_) Default() SSEDescription { + return Companion_SSEDescription_.Create_SSEDescription_(m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this SSEDescription) Dtor_Status() m_Wrappers.Option { + return _this.Get_().(SSEDescription_SSEDescription).Status +} + +func (_this SSEDescription) Dtor_SSEType() m_Wrappers.Option { + return _this.Get_().(SSEDescription_SSEDescription).SSEType +} + +func (_this SSEDescription) Dtor_KMSMasterKeyArn() m_Wrappers.Option { + return _this.Get_().(SSEDescription_SSEDescription).KMSMasterKeyArn +} + +func (_this SSEDescription) Dtor_InaccessibleEncryptionDateTime() m_Wrappers.Option { + return _this.Get_().(SSEDescription_SSEDescription).InaccessibleEncryptionDateTime +} + +func (_this SSEDescription) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case SSEDescription_SSEDescription: + { + return "ComAmazonawsDynamodbTypes.SSEDescription.SSEDescription" + "(" + _dafny.String(data.Status) + ", " + _dafny.String(data.SSEType) + ", " + _dafny.String(data.KMSMasterKeyArn) + ", " + _dafny.String(data.InaccessibleEncryptionDateTime) + ")" + } + default: + { + return "" + } + } +} + +func (_this SSEDescription) Equals(other SSEDescription) bool { + switch data1 := _this.Get_().(type) { + case SSEDescription_SSEDescription: + { + data2, ok := other.Get_().(SSEDescription_SSEDescription) + return ok && data1.Status.Equals(data2.Status) && data1.SSEType.Equals(data2.SSEType) && data1.KMSMasterKeyArn.Equals(data2.KMSMasterKeyArn) && data1.InaccessibleEncryptionDateTime.Equals(data2.InaccessibleEncryptionDateTime) + } + default: + { + return false // unexpected + } + } +} + +func (_this SSEDescription) EqualsGeneric(other interface{}) bool { + typed, ok := other.(SSEDescription) + return ok && _this.Equals(typed) +} + +func Type_SSEDescription_() _dafny.TypeDescriptor { + return type_SSEDescription_{} +} + +type type_SSEDescription_ struct { +} + +func (_this type_SSEDescription_) Default() interface{} { + return Companion_SSEDescription_.Default() +} + +func (_this type_SSEDescription_) String() string { + return "ComAmazonawsDynamodbTypes.SSEDescription" +} +func (_this SSEDescription) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = SSEDescription{} + +// End of datatype SSEDescription + +// Definition of datatype SSESpecification +type SSESpecification struct { + Data_SSESpecification_ +} + +func (_this SSESpecification) Get_() Data_SSESpecification_ { + return _this.Data_SSESpecification_ +} + +type Data_SSESpecification_ interface { + isSSESpecification() +} + +type CompanionStruct_SSESpecification_ struct { +} + +var Companion_SSESpecification_ = CompanionStruct_SSESpecification_{} + +type SSESpecification_SSESpecification struct { + Enabled m_Wrappers.Option + SSEType m_Wrappers.Option + KMSMasterKeyId m_Wrappers.Option +} + +func (SSESpecification_SSESpecification) isSSESpecification() {} + +func (CompanionStruct_SSESpecification_) Create_SSESpecification_(Enabled m_Wrappers.Option, SSEType m_Wrappers.Option, KMSMasterKeyId m_Wrappers.Option) SSESpecification { + return SSESpecification{SSESpecification_SSESpecification{Enabled, SSEType, KMSMasterKeyId}} +} + +func (_this SSESpecification) Is_SSESpecification() bool { + _, ok := _this.Get_().(SSESpecification_SSESpecification) + return ok +} + +func (CompanionStruct_SSESpecification_) Default() SSESpecification { + return Companion_SSESpecification_.Create_SSESpecification_(m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this SSESpecification) Dtor_Enabled() m_Wrappers.Option { + return _this.Get_().(SSESpecification_SSESpecification).Enabled +} + +func (_this SSESpecification) Dtor_SSEType() m_Wrappers.Option { + return _this.Get_().(SSESpecification_SSESpecification).SSEType +} + +func (_this SSESpecification) Dtor_KMSMasterKeyId() m_Wrappers.Option { + return _this.Get_().(SSESpecification_SSESpecification).KMSMasterKeyId +} + +func (_this SSESpecification) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case SSESpecification_SSESpecification: + { + return "ComAmazonawsDynamodbTypes.SSESpecification.SSESpecification" + "(" + _dafny.String(data.Enabled) + ", " + _dafny.String(data.SSEType) + ", " + _dafny.String(data.KMSMasterKeyId) + ")" + } + default: + { + return "" + } + } +} + +func (_this SSESpecification) Equals(other SSESpecification) bool { + switch data1 := _this.Get_().(type) { + case SSESpecification_SSESpecification: + { + data2, ok := other.Get_().(SSESpecification_SSESpecification) + return ok && data1.Enabled.Equals(data2.Enabled) && data1.SSEType.Equals(data2.SSEType) && data1.KMSMasterKeyId.Equals(data2.KMSMasterKeyId) + } + default: + { + return false // unexpected + } + } +} + +func (_this SSESpecification) EqualsGeneric(other interface{}) bool { + typed, ok := other.(SSESpecification) + return ok && _this.Equals(typed) +} + +func Type_SSESpecification_() _dafny.TypeDescriptor { + return type_SSESpecification_{} +} + +type type_SSESpecification_ struct { +} + +func (_this type_SSESpecification_) Default() interface{} { + return Companion_SSESpecification_.Default() +} + +func (_this type_SSESpecification_) String() string { + return "ComAmazonawsDynamodbTypes.SSESpecification" +} +func (_this SSESpecification) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = SSESpecification{} + +// End of datatype SSESpecification + +// Definition of datatype SSEStatus +type SSEStatus struct { + Data_SSEStatus_ +} + +func (_this SSEStatus) Get_() Data_SSEStatus_ { + return _this.Data_SSEStatus_ +} + +type Data_SSEStatus_ interface { + isSSEStatus() +} + +type CompanionStruct_SSEStatus_ struct { +} + +var Companion_SSEStatus_ = CompanionStruct_SSEStatus_{} + +type SSEStatus_ENABLING struct { +} + +func (SSEStatus_ENABLING) isSSEStatus() {} + +func (CompanionStruct_SSEStatus_) Create_ENABLING_() SSEStatus { + return SSEStatus{SSEStatus_ENABLING{}} +} + +func (_this SSEStatus) Is_ENABLING() bool { + _, ok := _this.Get_().(SSEStatus_ENABLING) + return ok +} + +type SSEStatus_ENABLED struct { +} + +func (SSEStatus_ENABLED) isSSEStatus() {} + +func (CompanionStruct_SSEStatus_) Create_ENABLED_() SSEStatus { + return SSEStatus{SSEStatus_ENABLED{}} +} + +func (_this SSEStatus) Is_ENABLED() bool { + _, ok := _this.Get_().(SSEStatus_ENABLED) + return ok +} + +type SSEStatus_DISABLING struct { +} + +func (SSEStatus_DISABLING) isSSEStatus() {} + +func (CompanionStruct_SSEStatus_) Create_DISABLING_() SSEStatus { + return SSEStatus{SSEStatus_DISABLING{}} +} + +func (_this SSEStatus) Is_DISABLING() bool { + _, ok := _this.Get_().(SSEStatus_DISABLING) + return ok +} + +type SSEStatus_DISABLED struct { +} + +func (SSEStatus_DISABLED) isSSEStatus() {} + +func (CompanionStruct_SSEStatus_) Create_DISABLED_() SSEStatus { + return SSEStatus{SSEStatus_DISABLED{}} +} + +func (_this SSEStatus) Is_DISABLED() bool { + _, ok := _this.Get_().(SSEStatus_DISABLED) + return ok +} + +type SSEStatus_UPDATING struct { +} + +func (SSEStatus_UPDATING) isSSEStatus() {} + +func (CompanionStruct_SSEStatus_) Create_UPDATING_() SSEStatus { + return SSEStatus{SSEStatus_UPDATING{}} +} + +func (_this SSEStatus) Is_UPDATING() bool { + _, ok := _this.Get_().(SSEStatus_UPDATING) + return ok +} + +func (CompanionStruct_SSEStatus_) Default() SSEStatus { + return Companion_SSEStatus_.Create_ENABLING_() +} + +func (_ CompanionStruct_SSEStatus_) AllSingletonConstructors() _dafny.Iterator { + i := -1 + return func() (interface{}, bool) { + i++ + switch i { + case 0: + return Companion_SSEStatus_.Create_ENABLING_(), true + case 1: + return Companion_SSEStatus_.Create_ENABLED_(), true + case 2: + return Companion_SSEStatus_.Create_DISABLING_(), true + case 3: + return Companion_SSEStatus_.Create_DISABLED_(), true + case 4: + return Companion_SSEStatus_.Create_UPDATING_(), true + default: + return SSEStatus{}, false + } + } +} + +func (_this SSEStatus) String() string { + switch _this.Get_().(type) { + case nil: + return "null" + case SSEStatus_ENABLING: + { + return "ComAmazonawsDynamodbTypes.SSEStatus.ENABLING" + } + case SSEStatus_ENABLED: + { + return "ComAmazonawsDynamodbTypes.SSEStatus.ENABLED" + } + case SSEStatus_DISABLING: + { + return "ComAmazonawsDynamodbTypes.SSEStatus.DISABLING" + } + case SSEStatus_DISABLED: + { + return "ComAmazonawsDynamodbTypes.SSEStatus.DISABLED" + } + case SSEStatus_UPDATING: + { + return "ComAmazonawsDynamodbTypes.SSEStatus.UPDATING" + } + default: + { + return "" + } + } +} + +func (_this SSEStatus) Equals(other SSEStatus) bool { + switch _this.Get_().(type) { + case SSEStatus_ENABLING: + { + _, ok := other.Get_().(SSEStatus_ENABLING) + return ok + } + case SSEStatus_ENABLED: + { + _, ok := other.Get_().(SSEStatus_ENABLED) + return ok + } + case SSEStatus_DISABLING: + { + _, ok := other.Get_().(SSEStatus_DISABLING) + return ok + } + case SSEStatus_DISABLED: + { + _, ok := other.Get_().(SSEStatus_DISABLED) + return ok + } + case SSEStatus_UPDATING: + { + _, ok := other.Get_().(SSEStatus_UPDATING) + return ok + } + default: + { + return false // unexpected + } + } +} + +func (_this SSEStatus) EqualsGeneric(other interface{}) bool { + typed, ok := other.(SSEStatus) + return ok && _this.Equals(typed) +} + +func Type_SSEStatus_() _dafny.TypeDescriptor { + return type_SSEStatus_{} +} + +type type_SSEStatus_ struct { +} + +func (_this type_SSEStatus_) Default() interface{} { + return Companion_SSEStatus_.Default() +} + +func (_this type_SSEStatus_) String() string { + return "ComAmazonawsDynamodbTypes.SSEStatus" +} +func (_this SSEStatus) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = SSEStatus{} + +// End of datatype SSEStatus + +// Definition of datatype SSEType +type SSEType struct { + Data_SSEType_ +} + +func (_this SSEType) Get_() Data_SSEType_ { + return _this.Data_SSEType_ +} + +type Data_SSEType_ interface { + isSSEType() +} + +type CompanionStruct_SSEType_ struct { +} + +var Companion_SSEType_ = CompanionStruct_SSEType_{} + +type SSEType_AES256 struct { +} + +func (SSEType_AES256) isSSEType() {} + +func (CompanionStruct_SSEType_) Create_AES256_() SSEType { + return SSEType{SSEType_AES256{}} +} + +func (_this SSEType) Is_AES256() bool { + _, ok := _this.Get_().(SSEType_AES256) + return ok +} + +type SSEType_KMS struct { +} + +func (SSEType_KMS) isSSEType() {} + +func (CompanionStruct_SSEType_) Create_KMS_() SSEType { + return SSEType{SSEType_KMS{}} +} + +func (_this SSEType) Is_KMS() bool { + _, ok := _this.Get_().(SSEType_KMS) + return ok +} + +func (CompanionStruct_SSEType_) Default() SSEType { + return Companion_SSEType_.Create_AES256_() +} + +func (_ CompanionStruct_SSEType_) AllSingletonConstructors() _dafny.Iterator { + i := -1 + return func() (interface{}, bool) { + i++ + switch i { + case 0: + return Companion_SSEType_.Create_AES256_(), true + case 1: + return Companion_SSEType_.Create_KMS_(), true + default: + return SSEType{}, false + } + } +} + +func (_this SSEType) String() string { + switch _this.Get_().(type) { + case nil: + return "null" + case SSEType_AES256: + { + return "ComAmazonawsDynamodbTypes.SSEType.AES256" + } + case SSEType_KMS: + { + return "ComAmazonawsDynamodbTypes.SSEType.KMS" + } + default: + { + return "" + } + } +} + +func (_this SSEType) Equals(other SSEType) bool { + switch _this.Get_().(type) { + case SSEType_AES256: + { + _, ok := other.Get_().(SSEType_AES256) + return ok + } + case SSEType_KMS: + { + _, ok := other.Get_().(SSEType_KMS) + return ok + } + default: + { + return false // unexpected + } + } +} + +func (_this SSEType) EqualsGeneric(other interface{}) bool { + typed, ok := other.(SSEType) + return ok && _this.Equals(typed) +} + +func Type_SSEType_() _dafny.TypeDescriptor { + return type_SSEType_{} +} + +type type_SSEType_ struct { +} + +func (_this type_SSEType_) Default() interface{} { + return Companion_SSEType_.Default() +} + +func (_this type_SSEType_) String() string { + return "ComAmazonawsDynamodbTypes.SSEType" +} +func (_this SSEType) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = SSEType{} + +// End of datatype SSEType + +// Definition of class StreamArn +type StreamArn struct { +} + +func New_StreamArn_() *StreamArn { + _this := StreamArn{} + + return &_this +} + +type CompanionStruct_StreamArn_ struct { +} + +var Companion_StreamArn_ = CompanionStruct_StreamArn_{} + +func (*StreamArn) String() string { + return "ComAmazonawsDynamodbTypes.StreamArn" +} + +// End of class StreamArn + +func Type_StreamArn_() _dafny.TypeDescriptor { + return type_StreamArn_{} +} + +type type_StreamArn_ struct { +} + +func (_this type_StreamArn_) Default() interface{} { + return _dafny.EmptySeq.SetString() +} + +func (_this type_StreamArn_) String() string { + return "ComAmazonawsDynamodbTypes.StreamArn" +} +func (_this *CompanionStruct_StreamArn_) Is_(__source _dafny.Sequence) bool { + var _41_x _dafny.Sequence = (__source) + _ = _41_x + return Companion_Default___.IsValid__StreamArn(_41_x) +} + +// Definition of datatype StreamSpecification +type StreamSpecification struct { + Data_StreamSpecification_ +} + +func (_this StreamSpecification) Get_() Data_StreamSpecification_ { + return _this.Data_StreamSpecification_ +} + +type Data_StreamSpecification_ interface { + isStreamSpecification() +} + +type CompanionStruct_StreamSpecification_ struct { +} + +var Companion_StreamSpecification_ = CompanionStruct_StreamSpecification_{} + +type StreamSpecification_StreamSpecification struct { + StreamEnabled bool + StreamViewType m_Wrappers.Option +} + +func (StreamSpecification_StreamSpecification) isStreamSpecification() {} + +func (CompanionStruct_StreamSpecification_) Create_StreamSpecification_(StreamEnabled bool, StreamViewType m_Wrappers.Option) StreamSpecification { + return StreamSpecification{StreamSpecification_StreamSpecification{StreamEnabled, StreamViewType}} +} + +func (_this StreamSpecification) Is_StreamSpecification() bool { + _, ok := _this.Get_().(StreamSpecification_StreamSpecification) + return ok +} + +func (CompanionStruct_StreamSpecification_) Default() StreamSpecification { + return Companion_StreamSpecification_.Create_StreamSpecification_(false, m_Wrappers.Companion_Option_.Default()) +} + +func (_this StreamSpecification) Dtor_StreamEnabled() bool { + return _this.Get_().(StreamSpecification_StreamSpecification).StreamEnabled +} + +func (_this StreamSpecification) Dtor_StreamViewType() m_Wrappers.Option { + return _this.Get_().(StreamSpecification_StreamSpecification).StreamViewType +} + +func (_this StreamSpecification) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case StreamSpecification_StreamSpecification: + { + return "ComAmazonawsDynamodbTypes.StreamSpecification.StreamSpecification" + "(" + _dafny.String(data.StreamEnabled) + ", " + _dafny.String(data.StreamViewType) + ")" + } + default: + { + return "" + } + } +} + +func (_this StreamSpecification) Equals(other StreamSpecification) bool { + switch data1 := _this.Get_().(type) { + case StreamSpecification_StreamSpecification: + { + data2, ok := other.Get_().(StreamSpecification_StreamSpecification) + return ok && data1.StreamEnabled == data2.StreamEnabled && data1.StreamViewType.Equals(data2.StreamViewType) + } + default: + { + return false // unexpected + } + } +} + +func (_this StreamSpecification) EqualsGeneric(other interface{}) bool { + typed, ok := other.(StreamSpecification) + return ok && _this.Equals(typed) +} + +func Type_StreamSpecification_() _dafny.TypeDescriptor { + return type_StreamSpecification_{} +} + +type type_StreamSpecification_ struct { +} + +func (_this type_StreamSpecification_) Default() interface{} { + return Companion_StreamSpecification_.Default() +} + +func (_this type_StreamSpecification_) String() string { + return "ComAmazonawsDynamodbTypes.StreamSpecification" +} +func (_this StreamSpecification) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = StreamSpecification{} + +// End of datatype StreamSpecification + +// Definition of datatype StreamViewType +type StreamViewType struct { + Data_StreamViewType_ +} + +func (_this StreamViewType) Get_() Data_StreamViewType_ { + return _this.Data_StreamViewType_ +} + +type Data_StreamViewType_ interface { + isStreamViewType() +} + +type CompanionStruct_StreamViewType_ struct { +} + +var Companion_StreamViewType_ = CompanionStruct_StreamViewType_{} + +type StreamViewType_NEW__IMAGE struct { +} + +func (StreamViewType_NEW__IMAGE) isStreamViewType() {} + +func (CompanionStruct_StreamViewType_) Create_NEW__IMAGE_() StreamViewType { + return StreamViewType{StreamViewType_NEW__IMAGE{}} +} + +func (_this StreamViewType) Is_NEW__IMAGE() bool { + _, ok := _this.Get_().(StreamViewType_NEW__IMAGE) + return ok +} + +type StreamViewType_OLD__IMAGE struct { +} + +func (StreamViewType_OLD__IMAGE) isStreamViewType() {} + +func (CompanionStruct_StreamViewType_) Create_OLD__IMAGE_() StreamViewType { + return StreamViewType{StreamViewType_OLD__IMAGE{}} +} + +func (_this StreamViewType) Is_OLD__IMAGE() bool { + _, ok := _this.Get_().(StreamViewType_OLD__IMAGE) + return ok +} + +type StreamViewType_NEW__AND__OLD__IMAGES struct { +} + +func (StreamViewType_NEW__AND__OLD__IMAGES) isStreamViewType() {} + +func (CompanionStruct_StreamViewType_) Create_NEW__AND__OLD__IMAGES_() StreamViewType { + return StreamViewType{StreamViewType_NEW__AND__OLD__IMAGES{}} +} + +func (_this StreamViewType) Is_NEW__AND__OLD__IMAGES() bool { + _, ok := _this.Get_().(StreamViewType_NEW__AND__OLD__IMAGES) + return ok +} + +type StreamViewType_KEYS__ONLY struct { +} + +func (StreamViewType_KEYS__ONLY) isStreamViewType() {} + +func (CompanionStruct_StreamViewType_) Create_KEYS__ONLY_() StreamViewType { + return StreamViewType{StreamViewType_KEYS__ONLY{}} +} + +func (_this StreamViewType) Is_KEYS__ONLY() bool { + _, ok := _this.Get_().(StreamViewType_KEYS__ONLY) + return ok +} + +func (CompanionStruct_StreamViewType_) Default() StreamViewType { + return Companion_StreamViewType_.Create_NEW__IMAGE_() +} + +func (_ CompanionStruct_StreamViewType_) AllSingletonConstructors() _dafny.Iterator { + i := -1 + return func() (interface{}, bool) { + i++ + switch i { + case 0: + return Companion_StreamViewType_.Create_NEW__IMAGE_(), true + case 1: + return Companion_StreamViewType_.Create_OLD__IMAGE_(), true + case 2: + return Companion_StreamViewType_.Create_NEW__AND__OLD__IMAGES_(), true + case 3: + return Companion_StreamViewType_.Create_KEYS__ONLY_(), true + default: + return StreamViewType{}, false + } + } +} + +func (_this StreamViewType) String() string { + switch _this.Get_().(type) { + case nil: + return "null" + case StreamViewType_NEW__IMAGE: + { + return "ComAmazonawsDynamodbTypes.StreamViewType.NEW_IMAGE" + } + case StreamViewType_OLD__IMAGE: + { + return "ComAmazonawsDynamodbTypes.StreamViewType.OLD_IMAGE" + } + case StreamViewType_NEW__AND__OLD__IMAGES: + { + return "ComAmazonawsDynamodbTypes.StreamViewType.NEW_AND_OLD_IMAGES" + } + case StreamViewType_KEYS__ONLY: + { + return "ComAmazonawsDynamodbTypes.StreamViewType.KEYS_ONLY" + } + default: + { + return "" + } + } +} + +func (_this StreamViewType) Equals(other StreamViewType) bool { + switch _this.Get_().(type) { + case StreamViewType_NEW__IMAGE: + { + _, ok := other.Get_().(StreamViewType_NEW__IMAGE) + return ok + } + case StreamViewType_OLD__IMAGE: + { + _, ok := other.Get_().(StreamViewType_OLD__IMAGE) + return ok + } + case StreamViewType_NEW__AND__OLD__IMAGES: + { + _, ok := other.Get_().(StreamViewType_NEW__AND__OLD__IMAGES) + return ok + } + case StreamViewType_KEYS__ONLY: + { + _, ok := other.Get_().(StreamViewType_KEYS__ONLY) + return ok + } + default: + { + return false // unexpected + } + } +} + +func (_this StreamViewType) EqualsGeneric(other interface{}) bool { + typed, ok := other.(StreamViewType) + return ok && _this.Equals(typed) +} + +func Type_StreamViewType_() _dafny.TypeDescriptor { + return type_StreamViewType_{} +} + +type type_StreamViewType_ struct { +} + +func (_this type_StreamViewType_) Default() interface{} { + return Companion_StreamViewType_.Default() +} + +func (_this type_StreamViewType_) String() string { + return "ComAmazonawsDynamodbTypes.StreamViewType" +} +func (_this StreamViewType) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = StreamViewType{} + +// End of datatype StreamViewType + +// Definition of class TableArn +type TableArn struct { +} + +func New_TableArn_() *TableArn { + _this := TableArn{} + + return &_this +} + +type CompanionStruct_TableArn_ struct { +} + +var Companion_TableArn_ = CompanionStruct_TableArn_{} + +func (*TableArn) String() string { + return "ComAmazonawsDynamodbTypes.TableArn" +} + +// End of class TableArn + +func Type_TableArn_() _dafny.TypeDescriptor { + return type_TableArn_{} +} + +type type_TableArn_ struct { +} + +func (_this type_TableArn_) Default() interface{} { + return _dafny.EmptySeq.SetString() +} + +func (_this type_TableArn_) String() string { + return "ComAmazonawsDynamodbTypes.TableArn" +} +func (_this *CompanionStruct_TableArn_) Is_(__source _dafny.Sequence) bool { + var _42_x _dafny.Sequence = (__source) + _ = _42_x + return Companion_Default___.IsValid__TableArn(_42_x) +} + +// Definition of datatype TableAutoScalingDescription +type TableAutoScalingDescription struct { + Data_TableAutoScalingDescription_ +} + +func (_this TableAutoScalingDescription) Get_() Data_TableAutoScalingDescription_ { + return _this.Data_TableAutoScalingDescription_ +} + +type Data_TableAutoScalingDescription_ interface { + isTableAutoScalingDescription() +} + +type CompanionStruct_TableAutoScalingDescription_ struct { +} + +var Companion_TableAutoScalingDescription_ = CompanionStruct_TableAutoScalingDescription_{} + +type TableAutoScalingDescription_TableAutoScalingDescription struct { + TableName m_Wrappers.Option + TableStatus m_Wrappers.Option + Replicas m_Wrappers.Option +} + +func (TableAutoScalingDescription_TableAutoScalingDescription) isTableAutoScalingDescription() {} + +func (CompanionStruct_TableAutoScalingDescription_) Create_TableAutoScalingDescription_(TableName m_Wrappers.Option, TableStatus m_Wrappers.Option, Replicas m_Wrappers.Option) TableAutoScalingDescription { + return TableAutoScalingDescription{TableAutoScalingDescription_TableAutoScalingDescription{TableName, TableStatus, Replicas}} +} + +func (_this TableAutoScalingDescription) Is_TableAutoScalingDescription() bool { + _, ok := _this.Get_().(TableAutoScalingDescription_TableAutoScalingDescription) + return ok +} + +func (CompanionStruct_TableAutoScalingDescription_) Default() TableAutoScalingDescription { + return Companion_TableAutoScalingDescription_.Create_TableAutoScalingDescription_(m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this TableAutoScalingDescription) Dtor_TableName() m_Wrappers.Option { + return _this.Get_().(TableAutoScalingDescription_TableAutoScalingDescription).TableName +} + +func (_this TableAutoScalingDescription) Dtor_TableStatus() m_Wrappers.Option { + return _this.Get_().(TableAutoScalingDescription_TableAutoScalingDescription).TableStatus +} + +func (_this TableAutoScalingDescription) Dtor_Replicas() m_Wrappers.Option { + return _this.Get_().(TableAutoScalingDescription_TableAutoScalingDescription).Replicas +} + +func (_this TableAutoScalingDescription) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case TableAutoScalingDescription_TableAutoScalingDescription: + { + return "ComAmazonawsDynamodbTypes.TableAutoScalingDescription.TableAutoScalingDescription" + "(" + _dafny.String(data.TableName) + ", " + _dafny.String(data.TableStatus) + ", " + _dafny.String(data.Replicas) + ")" + } + default: + { + return "" + } + } +} + +func (_this TableAutoScalingDescription) Equals(other TableAutoScalingDescription) bool { + switch data1 := _this.Get_().(type) { + case TableAutoScalingDescription_TableAutoScalingDescription: + { + data2, ok := other.Get_().(TableAutoScalingDescription_TableAutoScalingDescription) + return ok && data1.TableName.Equals(data2.TableName) && data1.TableStatus.Equals(data2.TableStatus) && data1.Replicas.Equals(data2.Replicas) + } + default: + { + return false // unexpected + } + } +} + +func (_this TableAutoScalingDescription) EqualsGeneric(other interface{}) bool { + typed, ok := other.(TableAutoScalingDescription) + return ok && _this.Equals(typed) +} + +func Type_TableAutoScalingDescription_() _dafny.TypeDescriptor { + return type_TableAutoScalingDescription_{} +} + +type type_TableAutoScalingDescription_ struct { +} + +func (_this type_TableAutoScalingDescription_) Default() interface{} { + return Companion_TableAutoScalingDescription_.Default() +} + +func (_this type_TableAutoScalingDescription_) String() string { + return "ComAmazonawsDynamodbTypes.TableAutoScalingDescription" +} +func (_this TableAutoScalingDescription) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = TableAutoScalingDescription{} + +// End of datatype TableAutoScalingDescription + +// Definition of datatype TableClass +type TableClass struct { + Data_TableClass_ +} + +func (_this TableClass) Get_() Data_TableClass_ { + return _this.Data_TableClass_ +} + +type Data_TableClass_ interface { + isTableClass() +} + +type CompanionStruct_TableClass_ struct { +} + +var Companion_TableClass_ = CompanionStruct_TableClass_{} + +type TableClass_STANDARD struct { +} + +func (TableClass_STANDARD) isTableClass() {} + +func (CompanionStruct_TableClass_) Create_STANDARD_() TableClass { + return TableClass{TableClass_STANDARD{}} +} + +func (_this TableClass) Is_STANDARD() bool { + _, ok := _this.Get_().(TableClass_STANDARD) + return ok +} + +type TableClass_STANDARD__INFREQUENT__ACCESS struct { +} + +func (TableClass_STANDARD__INFREQUENT__ACCESS) isTableClass() {} + +func (CompanionStruct_TableClass_) Create_STANDARD__INFREQUENT__ACCESS_() TableClass { + return TableClass{TableClass_STANDARD__INFREQUENT__ACCESS{}} +} + +func (_this TableClass) Is_STANDARD__INFREQUENT__ACCESS() bool { + _, ok := _this.Get_().(TableClass_STANDARD__INFREQUENT__ACCESS) + return ok +} + +func (CompanionStruct_TableClass_) Default() TableClass { + return Companion_TableClass_.Create_STANDARD_() +} + +func (_ CompanionStruct_TableClass_) AllSingletonConstructors() _dafny.Iterator { + i := -1 + return func() (interface{}, bool) { + i++ + switch i { + case 0: + return Companion_TableClass_.Create_STANDARD_(), true + case 1: + return Companion_TableClass_.Create_STANDARD__INFREQUENT__ACCESS_(), true + default: + return TableClass{}, false + } + } +} + +func (_this TableClass) String() string { + switch _this.Get_().(type) { + case nil: + return "null" + case TableClass_STANDARD: + { + return "ComAmazonawsDynamodbTypes.TableClass.STANDARD" + } + case TableClass_STANDARD__INFREQUENT__ACCESS: + { + return "ComAmazonawsDynamodbTypes.TableClass.STANDARD_INFREQUENT_ACCESS" + } + default: + { + return "" + } + } +} + +func (_this TableClass) Equals(other TableClass) bool { + switch _this.Get_().(type) { + case TableClass_STANDARD: + { + _, ok := other.Get_().(TableClass_STANDARD) + return ok + } + case TableClass_STANDARD__INFREQUENT__ACCESS: + { + _, ok := other.Get_().(TableClass_STANDARD__INFREQUENT__ACCESS) + return ok + } + default: + { + return false // unexpected + } + } +} + +func (_this TableClass) EqualsGeneric(other interface{}) bool { + typed, ok := other.(TableClass) + return ok && _this.Equals(typed) +} + +func Type_TableClass_() _dafny.TypeDescriptor { + return type_TableClass_{} +} + +type type_TableClass_ struct { +} + +func (_this type_TableClass_) Default() interface{} { + return Companion_TableClass_.Default() +} + +func (_this type_TableClass_) String() string { + return "ComAmazonawsDynamodbTypes.TableClass" +} +func (_this TableClass) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = TableClass{} + +// End of datatype TableClass + +// Definition of datatype TableClassSummary +type TableClassSummary struct { + Data_TableClassSummary_ +} + +func (_this TableClassSummary) Get_() Data_TableClassSummary_ { + return _this.Data_TableClassSummary_ +} + +type Data_TableClassSummary_ interface { + isTableClassSummary() +} + +type CompanionStruct_TableClassSummary_ struct { +} + +var Companion_TableClassSummary_ = CompanionStruct_TableClassSummary_{} + +type TableClassSummary_TableClassSummary struct { + TableClass m_Wrappers.Option + LastUpdateDateTime m_Wrappers.Option +} + +func (TableClassSummary_TableClassSummary) isTableClassSummary() {} + +func (CompanionStruct_TableClassSummary_) Create_TableClassSummary_(TableClass m_Wrappers.Option, LastUpdateDateTime m_Wrappers.Option) TableClassSummary { + return TableClassSummary{TableClassSummary_TableClassSummary{TableClass, LastUpdateDateTime}} +} + +func (_this TableClassSummary) Is_TableClassSummary() bool { + _, ok := _this.Get_().(TableClassSummary_TableClassSummary) + return ok +} + +func (CompanionStruct_TableClassSummary_) Default() TableClassSummary { + return Companion_TableClassSummary_.Create_TableClassSummary_(m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this TableClassSummary) Dtor_TableClass() m_Wrappers.Option { + return _this.Get_().(TableClassSummary_TableClassSummary).TableClass +} + +func (_this TableClassSummary) Dtor_LastUpdateDateTime() m_Wrappers.Option { + return _this.Get_().(TableClassSummary_TableClassSummary).LastUpdateDateTime +} + +func (_this TableClassSummary) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case TableClassSummary_TableClassSummary: + { + return "ComAmazonawsDynamodbTypes.TableClassSummary.TableClassSummary" + "(" + _dafny.String(data.TableClass) + ", " + _dafny.String(data.LastUpdateDateTime) + ")" + } + default: + { + return "" + } + } +} + +func (_this TableClassSummary) Equals(other TableClassSummary) bool { + switch data1 := _this.Get_().(type) { + case TableClassSummary_TableClassSummary: + { + data2, ok := other.Get_().(TableClassSummary_TableClassSummary) + return ok && data1.TableClass.Equals(data2.TableClass) && data1.LastUpdateDateTime.Equals(data2.LastUpdateDateTime) + } + default: + { + return false // unexpected + } + } +} + +func (_this TableClassSummary) EqualsGeneric(other interface{}) bool { + typed, ok := other.(TableClassSummary) + return ok && _this.Equals(typed) +} + +func Type_TableClassSummary_() _dafny.TypeDescriptor { + return type_TableClassSummary_{} +} + +type type_TableClassSummary_ struct { +} + +func (_this type_TableClassSummary_) Default() interface{} { + return Companion_TableClassSummary_.Default() +} + +func (_this type_TableClassSummary_) String() string { + return "ComAmazonawsDynamodbTypes.TableClassSummary" +} +func (_this TableClassSummary) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = TableClassSummary{} + +// End of datatype TableClassSummary + +// Definition of datatype TableCreationParameters +type TableCreationParameters struct { + Data_TableCreationParameters_ +} + +func (_this TableCreationParameters) Get_() Data_TableCreationParameters_ { + return _this.Data_TableCreationParameters_ +} + +type Data_TableCreationParameters_ interface { + isTableCreationParameters() +} + +type CompanionStruct_TableCreationParameters_ struct { +} + +var Companion_TableCreationParameters_ = CompanionStruct_TableCreationParameters_{} + +type TableCreationParameters_TableCreationParameters struct { + TableName _dafny.Sequence + AttributeDefinitions _dafny.Sequence + KeySchema _dafny.Sequence + BillingMode m_Wrappers.Option + ProvisionedThroughput m_Wrappers.Option + OnDemandThroughput m_Wrappers.Option + SSESpecification m_Wrappers.Option + GlobalSecondaryIndexes m_Wrappers.Option +} + +func (TableCreationParameters_TableCreationParameters) isTableCreationParameters() {} + +func (CompanionStruct_TableCreationParameters_) Create_TableCreationParameters_(TableName _dafny.Sequence, AttributeDefinitions _dafny.Sequence, KeySchema _dafny.Sequence, BillingMode m_Wrappers.Option, ProvisionedThroughput m_Wrappers.Option, OnDemandThroughput m_Wrappers.Option, SSESpecification m_Wrappers.Option, GlobalSecondaryIndexes m_Wrappers.Option) TableCreationParameters { + return TableCreationParameters{TableCreationParameters_TableCreationParameters{TableName, AttributeDefinitions, KeySchema, BillingMode, ProvisionedThroughput, OnDemandThroughput, SSESpecification, GlobalSecondaryIndexes}} +} + +func (_this TableCreationParameters) Is_TableCreationParameters() bool { + _, ok := _this.Get_().(TableCreationParameters_TableCreationParameters) + return ok +} + +func (CompanionStruct_TableCreationParameters_) Default() TableCreationParameters { + return Companion_TableCreationParameters_.Create_TableCreationParameters_(_dafny.EmptySeq.SetString(), _dafny.EmptySeq, _dafny.EmptySeq, m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this TableCreationParameters) Dtor_TableName() _dafny.Sequence { + return _this.Get_().(TableCreationParameters_TableCreationParameters).TableName +} + +func (_this TableCreationParameters) Dtor_AttributeDefinitions() _dafny.Sequence { + return _this.Get_().(TableCreationParameters_TableCreationParameters).AttributeDefinitions +} + +func (_this TableCreationParameters) Dtor_KeySchema() _dafny.Sequence { + return _this.Get_().(TableCreationParameters_TableCreationParameters).KeySchema +} + +func (_this TableCreationParameters) Dtor_BillingMode() m_Wrappers.Option { + return _this.Get_().(TableCreationParameters_TableCreationParameters).BillingMode +} + +func (_this TableCreationParameters) Dtor_ProvisionedThroughput() m_Wrappers.Option { + return _this.Get_().(TableCreationParameters_TableCreationParameters).ProvisionedThroughput +} + +func (_this TableCreationParameters) Dtor_OnDemandThroughput() m_Wrappers.Option { + return _this.Get_().(TableCreationParameters_TableCreationParameters).OnDemandThroughput +} + +func (_this TableCreationParameters) Dtor_SSESpecification() m_Wrappers.Option { + return _this.Get_().(TableCreationParameters_TableCreationParameters).SSESpecification +} + +func (_this TableCreationParameters) Dtor_GlobalSecondaryIndexes() m_Wrappers.Option { + return _this.Get_().(TableCreationParameters_TableCreationParameters).GlobalSecondaryIndexes +} + +func (_this TableCreationParameters) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case TableCreationParameters_TableCreationParameters: + { + return "ComAmazonawsDynamodbTypes.TableCreationParameters.TableCreationParameters" + "(" + _dafny.String(data.TableName) + ", " + _dafny.String(data.AttributeDefinitions) + ", " + _dafny.String(data.KeySchema) + ", " + _dafny.String(data.BillingMode) + ", " + _dafny.String(data.ProvisionedThroughput) + ", " + _dafny.String(data.OnDemandThroughput) + ", " + _dafny.String(data.SSESpecification) + ", " + _dafny.String(data.GlobalSecondaryIndexes) + ")" + } + default: + { + return "" + } + } +} + +func (_this TableCreationParameters) Equals(other TableCreationParameters) bool { + switch data1 := _this.Get_().(type) { + case TableCreationParameters_TableCreationParameters: + { + data2, ok := other.Get_().(TableCreationParameters_TableCreationParameters) + return ok && data1.TableName.Equals(data2.TableName) && data1.AttributeDefinitions.Equals(data2.AttributeDefinitions) && data1.KeySchema.Equals(data2.KeySchema) && data1.BillingMode.Equals(data2.BillingMode) && data1.ProvisionedThroughput.Equals(data2.ProvisionedThroughput) && data1.OnDemandThroughput.Equals(data2.OnDemandThroughput) && data1.SSESpecification.Equals(data2.SSESpecification) && data1.GlobalSecondaryIndexes.Equals(data2.GlobalSecondaryIndexes) + } + default: + { + return false // unexpected + } + } +} + +func (_this TableCreationParameters) EqualsGeneric(other interface{}) bool { + typed, ok := other.(TableCreationParameters) + return ok && _this.Equals(typed) +} + +func Type_TableCreationParameters_() _dafny.TypeDescriptor { + return type_TableCreationParameters_{} +} + +type type_TableCreationParameters_ struct { +} + +func (_this type_TableCreationParameters_) Default() interface{} { + return Companion_TableCreationParameters_.Default() +} + +func (_this type_TableCreationParameters_) String() string { + return "ComAmazonawsDynamodbTypes.TableCreationParameters" +} +func (_this TableCreationParameters) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = TableCreationParameters{} + +// End of datatype TableCreationParameters + +// Definition of datatype TableDescription +type TableDescription struct { + Data_TableDescription_ +} + +func (_this TableDescription) Get_() Data_TableDescription_ { + return _this.Data_TableDescription_ +} + +type Data_TableDescription_ interface { + isTableDescription() +} + +type CompanionStruct_TableDescription_ struct { +} + +var Companion_TableDescription_ = CompanionStruct_TableDescription_{} + +type TableDescription_TableDescription struct { + AttributeDefinitions m_Wrappers.Option + TableName m_Wrappers.Option + KeySchema m_Wrappers.Option + TableStatus m_Wrappers.Option + CreationDateTime m_Wrappers.Option + ProvisionedThroughput m_Wrappers.Option + TableSizeBytes m_Wrappers.Option + ItemCount m_Wrappers.Option + TableArn m_Wrappers.Option + TableId m_Wrappers.Option + BillingModeSummary m_Wrappers.Option + LocalSecondaryIndexes m_Wrappers.Option + GlobalSecondaryIndexes m_Wrappers.Option + StreamSpecification m_Wrappers.Option + LatestStreamLabel m_Wrappers.Option + LatestStreamArn m_Wrappers.Option + GlobalTableVersion m_Wrappers.Option + Replicas m_Wrappers.Option + RestoreSummary m_Wrappers.Option + SSEDescription m_Wrappers.Option + ArchivalSummary m_Wrappers.Option + TableClassSummary m_Wrappers.Option + DeletionProtectionEnabled m_Wrappers.Option + OnDemandThroughput m_Wrappers.Option +} + +func (TableDescription_TableDescription) isTableDescription() {} + +func (CompanionStruct_TableDescription_) Create_TableDescription_(AttributeDefinitions m_Wrappers.Option, TableName m_Wrappers.Option, KeySchema m_Wrappers.Option, TableStatus m_Wrappers.Option, CreationDateTime m_Wrappers.Option, ProvisionedThroughput m_Wrappers.Option, TableSizeBytes m_Wrappers.Option, ItemCount m_Wrappers.Option, TableArn m_Wrappers.Option, TableId m_Wrappers.Option, BillingModeSummary m_Wrappers.Option, LocalSecondaryIndexes m_Wrappers.Option, GlobalSecondaryIndexes m_Wrappers.Option, StreamSpecification m_Wrappers.Option, LatestStreamLabel m_Wrappers.Option, LatestStreamArn m_Wrappers.Option, GlobalTableVersion m_Wrappers.Option, Replicas m_Wrappers.Option, RestoreSummary m_Wrappers.Option, SSEDescription m_Wrappers.Option, ArchivalSummary m_Wrappers.Option, TableClassSummary m_Wrappers.Option, DeletionProtectionEnabled m_Wrappers.Option, OnDemandThroughput m_Wrappers.Option) TableDescription { + return TableDescription{TableDescription_TableDescription{AttributeDefinitions, TableName, KeySchema, TableStatus, CreationDateTime, ProvisionedThroughput, TableSizeBytes, ItemCount, TableArn, TableId, BillingModeSummary, LocalSecondaryIndexes, GlobalSecondaryIndexes, StreamSpecification, LatestStreamLabel, LatestStreamArn, GlobalTableVersion, Replicas, RestoreSummary, SSEDescription, ArchivalSummary, TableClassSummary, DeletionProtectionEnabled, OnDemandThroughput}} +} + +func (_this TableDescription) Is_TableDescription() bool { + _, ok := _this.Get_().(TableDescription_TableDescription) + return ok +} + +func (CompanionStruct_TableDescription_) Default() TableDescription { + return Companion_TableDescription_.Create_TableDescription_(m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this TableDescription) Dtor_AttributeDefinitions() m_Wrappers.Option { + return _this.Get_().(TableDescription_TableDescription).AttributeDefinitions +} + +func (_this TableDescription) Dtor_TableName() m_Wrappers.Option { + return _this.Get_().(TableDescription_TableDescription).TableName +} + +func (_this TableDescription) Dtor_KeySchema() m_Wrappers.Option { + return _this.Get_().(TableDescription_TableDescription).KeySchema +} + +func (_this TableDescription) Dtor_TableStatus() m_Wrappers.Option { + return _this.Get_().(TableDescription_TableDescription).TableStatus +} + +func (_this TableDescription) Dtor_CreationDateTime() m_Wrappers.Option { + return _this.Get_().(TableDescription_TableDescription).CreationDateTime +} + +func (_this TableDescription) Dtor_ProvisionedThroughput() m_Wrappers.Option { + return _this.Get_().(TableDescription_TableDescription).ProvisionedThroughput +} + +func (_this TableDescription) Dtor_TableSizeBytes() m_Wrappers.Option { + return _this.Get_().(TableDescription_TableDescription).TableSizeBytes +} + +func (_this TableDescription) Dtor_ItemCount() m_Wrappers.Option { + return _this.Get_().(TableDescription_TableDescription).ItemCount +} + +func (_this TableDescription) Dtor_TableArn() m_Wrappers.Option { + return _this.Get_().(TableDescription_TableDescription).TableArn +} + +func (_this TableDescription) Dtor_TableId() m_Wrappers.Option { + return _this.Get_().(TableDescription_TableDescription).TableId +} + +func (_this TableDescription) Dtor_BillingModeSummary() m_Wrappers.Option { + return _this.Get_().(TableDescription_TableDescription).BillingModeSummary +} + +func (_this TableDescription) Dtor_LocalSecondaryIndexes() m_Wrappers.Option { + return _this.Get_().(TableDescription_TableDescription).LocalSecondaryIndexes +} + +func (_this TableDescription) Dtor_GlobalSecondaryIndexes() m_Wrappers.Option { + return _this.Get_().(TableDescription_TableDescription).GlobalSecondaryIndexes +} + +func (_this TableDescription) Dtor_StreamSpecification() m_Wrappers.Option { + return _this.Get_().(TableDescription_TableDescription).StreamSpecification +} + +func (_this TableDescription) Dtor_LatestStreamLabel() m_Wrappers.Option { + return _this.Get_().(TableDescription_TableDescription).LatestStreamLabel +} + +func (_this TableDescription) Dtor_LatestStreamArn() m_Wrappers.Option { + return _this.Get_().(TableDescription_TableDescription).LatestStreamArn +} + +func (_this TableDescription) Dtor_GlobalTableVersion() m_Wrappers.Option { + return _this.Get_().(TableDescription_TableDescription).GlobalTableVersion +} + +func (_this TableDescription) Dtor_Replicas() m_Wrappers.Option { + return _this.Get_().(TableDescription_TableDescription).Replicas +} + +func (_this TableDescription) Dtor_RestoreSummary() m_Wrappers.Option { + return _this.Get_().(TableDescription_TableDescription).RestoreSummary +} + +func (_this TableDescription) Dtor_SSEDescription() m_Wrappers.Option { + return _this.Get_().(TableDescription_TableDescription).SSEDescription +} + +func (_this TableDescription) Dtor_ArchivalSummary() m_Wrappers.Option { + return _this.Get_().(TableDescription_TableDescription).ArchivalSummary +} + +func (_this TableDescription) Dtor_TableClassSummary() m_Wrappers.Option { + return _this.Get_().(TableDescription_TableDescription).TableClassSummary +} + +func (_this TableDescription) Dtor_DeletionProtectionEnabled() m_Wrappers.Option { + return _this.Get_().(TableDescription_TableDescription).DeletionProtectionEnabled +} + +func (_this TableDescription) Dtor_OnDemandThroughput() m_Wrappers.Option { + return _this.Get_().(TableDescription_TableDescription).OnDemandThroughput +} + +func (_this TableDescription) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case TableDescription_TableDescription: + { + return "ComAmazonawsDynamodbTypes.TableDescription.TableDescription" + "(" + _dafny.String(data.AttributeDefinitions) + ", " + _dafny.String(data.TableName) + ", " + _dafny.String(data.KeySchema) + ", " + _dafny.String(data.TableStatus) + ", " + _dafny.String(data.CreationDateTime) + ", " + _dafny.String(data.ProvisionedThroughput) + ", " + _dafny.String(data.TableSizeBytes) + ", " + _dafny.String(data.ItemCount) + ", " + _dafny.String(data.TableArn) + ", " + _dafny.String(data.TableId) + ", " + _dafny.String(data.BillingModeSummary) + ", " + _dafny.String(data.LocalSecondaryIndexes) + ", " + _dafny.String(data.GlobalSecondaryIndexes) + ", " + _dafny.String(data.StreamSpecification) + ", " + _dafny.String(data.LatestStreamLabel) + ", " + _dafny.String(data.LatestStreamArn) + ", " + _dafny.String(data.GlobalTableVersion) + ", " + _dafny.String(data.Replicas) + ", " + _dafny.String(data.RestoreSummary) + ", " + _dafny.String(data.SSEDescription) + ", " + _dafny.String(data.ArchivalSummary) + ", " + _dafny.String(data.TableClassSummary) + ", " + _dafny.String(data.DeletionProtectionEnabled) + ", " + _dafny.String(data.OnDemandThroughput) + ")" + } + default: + { + return "" + } + } +} + +func (_this TableDescription) Equals(other TableDescription) bool { + switch data1 := _this.Get_().(type) { + case TableDescription_TableDescription: + { + data2, ok := other.Get_().(TableDescription_TableDescription) + return ok && data1.AttributeDefinitions.Equals(data2.AttributeDefinitions) && data1.TableName.Equals(data2.TableName) && data1.KeySchema.Equals(data2.KeySchema) && data1.TableStatus.Equals(data2.TableStatus) && data1.CreationDateTime.Equals(data2.CreationDateTime) && data1.ProvisionedThroughput.Equals(data2.ProvisionedThroughput) && data1.TableSizeBytes.Equals(data2.TableSizeBytes) && data1.ItemCount.Equals(data2.ItemCount) && data1.TableArn.Equals(data2.TableArn) && data1.TableId.Equals(data2.TableId) && data1.BillingModeSummary.Equals(data2.BillingModeSummary) && data1.LocalSecondaryIndexes.Equals(data2.LocalSecondaryIndexes) && data1.GlobalSecondaryIndexes.Equals(data2.GlobalSecondaryIndexes) && data1.StreamSpecification.Equals(data2.StreamSpecification) && data1.LatestStreamLabel.Equals(data2.LatestStreamLabel) && data1.LatestStreamArn.Equals(data2.LatestStreamArn) && data1.GlobalTableVersion.Equals(data2.GlobalTableVersion) && data1.Replicas.Equals(data2.Replicas) && data1.RestoreSummary.Equals(data2.RestoreSummary) && data1.SSEDescription.Equals(data2.SSEDescription) && data1.ArchivalSummary.Equals(data2.ArchivalSummary) && data1.TableClassSummary.Equals(data2.TableClassSummary) && data1.DeletionProtectionEnabled.Equals(data2.DeletionProtectionEnabled) && data1.OnDemandThroughput.Equals(data2.OnDemandThroughput) + } + default: + { + return false // unexpected + } + } +} + +func (_this TableDescription) EqualsGeneric(other interface{}) bool { + typed, ok := other.(TableDescription) + return ok && _this.Equals(typed) +} + +func Type_TableDescription_() _dafny.TypeDescriptor { + return type_TableDescription_{} +} + +type type_TableDescription_ struct { +} + +func (_this type_TableDescription_) Default() interface{} { + return Companion_TableDescription_.Default() +} + +func (_this type_TableDescription_) String() string { + return "ComAmazonawsDynamodbTypes.TableDescription" +} +func (_this TableDescription) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = TableDescription{} + +// End of datatype TableDescription + +// Definition of class TableName +type TableName struct { +} + +func New_TableName_() *TableName { + _this := TableName{} + + return &_this +} + +type CompanionStruct_TableName_ struct { +} + +var Companion_TableName_ = CompanionStruct_TableName_{} + +func (*TableName) String() string { + return "ComAmazonawsDynamodbTypes.TableName" +} + +// End of class TableName + +func Type_TableName_() _dafny.TypeDescriptor { + return type_TableName_{} +} + +type type_TableName_ struct { +} + +func (_this type_TableName_) Default() interface{} { + return _dafny.EmptySeq.SetString() +} + +func (_this type_TableName_) String() string { + return "ComAmazonawsDynamodbTypes.TableName" +} +func (_this *CompanionStruct_TableName_) Is_(__source _dafny.Sequence) bool { + var _43_x _dafny.Sequence = (__source) + _ = _43_x + return Companion_Default___.IsValid__TableName(_43_x) +} + +// Definition of datatype TableStatus +type TableStatus struct { + Data_TableStatus_ +} + +func (_this TableStatus) Get_() Data_TableStatus_ { + return _this.Data_TableStatus_ +} + +type Data_TableStatus_ interface { + isTableStatus() +} + +type CompanionStruct_TableStatus_ struct { +} + +var Companion_TableStatus_ = CompanionStruct_TableStatus_{} + +type TableStatus_CREATING struct { +} + +func (TableStatus_CREATING) isTableStatus() {} + +func (CompanionStruct_TableStatus_) Create_CREATING_() TableStatus { + return TableStatus{TableStatus_CREATING{}} +} + +func (_this TableStatus) Is_CREATING() bool { + _, ok := _this.Get_().(TableStatus_CREATING) + return ok +} + +type TableStatus_UPDATING struct { +} + +func (TableStatus_UPDATING) isTableStatus() {} + +func (CompanionStruct_TableStatus_) Create_UPDATING_() TableStatus { + return TableStatus{TableStatus_UPDATING{}} +} + +func (_this TableStatus) Is_UPDATING() bool { + _, ok := _this.Get_().(TableStatus_UPDATING) + return ok +} + +type TableStatus_DELETING struct { +} + +func (TableStatus_DELETING) isTableStatus() {} + +func (CompanionStruct_TableStatus_) Create_DELETING_() TableStatus { + return TableStatus{TableStatus_DELETING{}} +} + +func (_this TableStatus) Is_DELETING() bool { + _, ok := _this.Get_().(TableStatus_DELETING) + return ok +} + +type TableStatus_ACTIVE struct { +} + +func (TableStatus_ACTIVE) isTableStatus() {} + +func (CompanionStruct_TableStatus_) Create_ACTIVE_() TableStatus { + return TableStatus{TableStatus_ACTIVE{}} +} + +func (_this TableStatus) Is_ACTIVE() bool { + _, ok := _this.Get_().(TableStatus_ACTIVE) + return ok +} + +type TableStatus_INACCESSIBLE__ENCRYPTION__CREDENTIALS struct { +} + +func (TableStatus_INACCESSIBLE__ENCRYPTION__CREDENTIALS) isTableStatus() {} + +func (CompanionStruct_TableStatus_) Create_INACCESSIBLE__ENCRYPTION__CREDENTIALS_() TableStatus { + return TableStatus{TableStatus_INACCESSIBLE__ENCRYPTION__CREDENTIALS{}} +} + +func (_this TableStatus) Is_INACCESSIBLE__ENCRYPTION__CREDENTIALS() bool { + _, ok := _this.Get_().(TableStatus_INACCESSIBLE__ENCRYPTION__CREDENTIALS) + return ok +} + +type TableStatus_ARCHIVING struct { +} + +func (TableStatus_ARCHIVING) isTableStatus() {} + +func (CompanionStruct_TableStatus_) Create_ARCHIVING_() TableStatus { + return TableStatus{TableStatus_ARCHIVING{}} +} + +func (_this TableStatus) Is_ARCHIVING() bool { + _, ok := _this.Get_().(TableStatus_ARCHIVING) + return ok +} + +type TableStatus_ARCHIVED struct { +} + +func (TableStatus_ARCHIVED) isTableStatus() {} + +func (CompanionStruct_TableStatus_) Create_ARCHIVED_() TableStatus { + return TableStatus{TableStatus_ARCHIVED{}} +} + +func (_this TableStatus) Is_ARCHIVED() bool { + _, ok := _this.Get_().(TableStatus_ARCHIVED) + return ok +} + +func (CompanionStruct_TableStatus_) Default() TableStatus { + return Companion_TableStatus_.Create_CREATING_() +} + +func (_ CompanionStruct_TableStatus_) AllSingletonConstructors() _dafny.Iterator { + i := -1 + return func() (interface{}, bool) { + i++ + switch i { + case 0: + return Companion_TableStatus_.Create_CREATING_(), true + case 1: + return Companion_TableStatus_.Create_UPDATING_(), true + case 2: + return Companion_TableStatus_.Create_DELETING_(), true + case 3: + return Companion_TableStatus_.Create_ACTIVE_(), true + case 4: + return Companion_TableStatus_.Create_INACCESSIBLE__ENCRYPTION__CREDENTIALS_(), true + case 5: + return Companion_TableStatus_.Create_ARCHIVING_(), true + case 6: + return Companion_TableStatus_.Create_ARCHIVED_(), true + default: + return TableStatus{}, false + } + } +} + +func (_this TableStatus) String() string { + switch _this.Get_().(type) { + case nil: + return "null" + case TableStatus_CREATING: + { + return "ComAmazonawsDynamodbTypes.TableStatus.CREATING" + } + case TableStatus_UPDATING: + { + return "ComAmazonawsDynamodbTypes.TableStatus.UPDATING" + } + case TableStatus_DELETING: + { + return "ComAmazonawsDynamodbTypes.TableStatus.DELETING" + } + case TableStatus_ACTIVE: + { + return "ComAmazonawsDynamodbTypes.TableStatus.ACTIVE" + } + case TableStatus_INACCESSIBLE__ENCRYPTION__CREDENTIALS: + { + return "ComAmazonawsDynamodbTypes.TableStatus.INACCESSIBLE_ENCRYPTION_CREDENTIALS" + } + case TableStatus_ARCHIVING: + { + return "ComAmazonawsDynamodbTypes.TableStatus.ARCHIVING" + } + case TableStatus_ARCHIVED: + { + return "ComAmazonawsDynamodbTypes.TableStatus.ARCHIVED" + } + default: + { + return "" + } + } +} + +func (_this TableStatus) Equals(other TableStatus) bool { + switch _this.Get_().(type) { + case TableStatus_CREATING: + { + _, ok := other.Get_().(TableStatus_CREATING) + return ok + } + case TableStatus_UPDATING: + { + _, ok := other.Get_().(TableStatus_UPDATING) + return ok + } + case TableStatus_DELETING: + { + _, ok := other.Get_().(TableStatus_DELETING) + return ok + } + case TableStatus_ACTIVE: + { + _, ok := other.Get_().(TableStatus_ACTIVE) + return ok + } + case TableStatus_INACCESSIBLE__ENCRYPTION__CREDENTIALS: + { + _, ok := other.Get_().(TableStatus_INACCESSIBLE__ENCRYPTION__CREDENTIALS) + return ok + } + case TableStatus_ARCHIVING: + { + _, ok := other.Get_().(TableStatus_ARCHIVING) + return ok + } + case TableStatus_ARCHIVED: + { + _, ok := other.Get_().(TableStatus_ARCHIVED) + return ok + } + default: + { + return false // unexpected + } + } +} + +func (_this TableStatus) EqualsGeneric(other interface{}) bool { + typed, ok := other.(TableStatus) + return ok && _this.Equals(typed) +} + +func Type_TableStatus_() _dafny.TypeDescriptor { + return type_TableStatus_{} +} + +type type_TableStatus_ struct { +} + +func (_this type_TableStatus_) Default() interface{} { + return Companion_TableStatus_.Default() +} + +func (_this type_TableStatus_) String() string { + return "ComAmazonawsDynamodbTypes.TableStatus" +} +func (_this TableStatus) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = TableStatus{} + +// End of datatype TableStatus + +// Definition of datatype Tag +type Tag struct { + Data_Tag_ +} + +func (_this Tag) Get_() Data_Tag_ { + return _this.Data_Tag_ +} + +type Data_Tag_ interface { + isTag() +} + +type CompanionStruct_Tag_ struct { +} + +var Companion_Tag_ = CompanionStruct_Tag_{} + +type Tag_Tag struct { + Key _dafny.Sequence + Value _dafny.Sequence +} + +func (Tag_Tag) isTag() {} + +func (CompanionStruct_Tag_) Create_Tag_(Key _dafny.Sequence, Value _dafny.Sequence) Tag { + return Tag{Tag_Tag{Key, Value}} +} + +func (_this Tag) Is_Tag() bool { + _, ok := _this.Get_().(Tag_Tag) + return ok +} + +func (CompanionStruct_Tag_) Default() Tag { + return Companion_Tag_.Create_Tag_(_dafny.EmptySeq.SetString(), _dafny.EmptySeq.SetString()) +} + +func (_this Tag) Dtor_Key() _dafny.Sequence { + return _this.Get_().(Tag_Tag).Key +} + +func (_this Tag) Dtor_Value() _dafny.Sequence { + return _this.Get_().(Tag_Tag).Value +} + +func (_this Tag) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case Tag_Tag: + { + return "ComAmazonawsDynamodbTypes.Tag.Tag" + "(" + _dafny.String(data.Key) + ", " + _dafny.String(data.Value) + ")" + } + default: + { + return "" + } + } +} + +func (_this Tag) Equals(other Tag) bool { + switch data1 := _this.Get_().(type) { + case Tag_Tag: + { + data2, ok := other.Get_().(Tag_Tag) + return ok && data1.Key.Equals(data2.Key) && data1.Value.Equals(data2.Value) + } + default: + { + return false // unexpected + } + } +} + +func (_this Tag) EqualsGeneric(other interface{}) bool { + typed, ok := other.(Tag) + return ok && _this.Equals(typed) +} + +func Type_Tag_() _dafny.TypeDescriptor { + return type_Tag_{} +} + +type type_Tag_ struct { +} + +func (_this type_Tag_) Default() interface{} { + return Companion_Tag_.Default() +} + +func (_this type_Tag_) String() string { + return "ComAmazonawsDynamodbTypes.Tag" +} +func (_this Tag) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = Tag{} + +// End of datatype Tag + +// Definition of class TagKeyString +type TagKeyString struct { +} + +func New_TagKeyString_() *TagKeyString { + _this := TagKeyString{} + + return &_this +} + +type CompanionStruct_TagKeyString_ struct { +} + +var Companion_TagKeyString_ = CompanionStruct_TagKeyString_{} + +func (*TagKeyString) String() string { + return "ComAmazonawsDynamodbTypes.TagKeyString" +} + +// End of class TagKeyString + +func Type_TagKeyString_() _dafny.TypeDescriptor { + return type_TagKeyString_{} +} + +type type_TagKeyString_ struct { +} + +func (_this type_TagKeyString_) Default() interface{} { + return _dafny.EmptySeq.SetString() +} + +func (_this type_TagKeyString_) String() string { + return "ComAmazonawsDynamodbTypes.TagKeyString" +} +func (_this *CompanionStruct_TagKeyString_) Is_(__source _dafny.Sequence) bool { + var _44_x _dafny.Sequence = (__source) + _ = _44_x + return Companion_Default___.IsValid__TagKeyString(_44_x) +} + +// Definition of datatype TagResourceInput +type TagResourceInput struct { + Data_TagResourceInput_ +} + +func (_this TagResourceInput) Get_() Data_TagResourceInput_ { + return _this.Data_TagResourceInput_ +} + +type Data_TagResourceInput_ interface { + isTagResourceInput() +} + +type CompanionStruct_TagResourceInput_ struct { +} + +var Companion_TagResourceInput_ = CompanionStruct_TagResourceInput_{} + +type TagResourceInput_TagResourceInput struct { + ResourceArn _dafny.Sequence + Tags _dafny.Sequence +} + +func (TagResourceInput_TagResourceInput) isTagResourceInput() {} + +func (CompanionStruct_TagResourceInput_) Create_TagResourceInput_(ResourceArn _dafny.Sequence, Tags _dafny.Sequence) TagResourceInput { + return TagResourceInput{TagResourceInput_TagResourceInput{ResourceArn, Tags}} +} + +func (_this TagResourceInput) Is_TagResourceInput() bool { + _, ok := _this.Get_().(TagResourceInput_TagResourceInput) + return ok +} + +func (CompanionStruct_TagResourceInput_) Default() TagResourceInput { + return Companion_TagResourceInput_.Create_TagResourceInput_(_dafny.EmptySeq.SetString(), _dafny.EmptySeq) +} + +func (_this TagResourceInput) Dtor_ResourceArn() _dafny.Sequence { + return _this.Get_().(TagResourceInput_TagResourceInput).ResourceArn +} + +func (_this TagResourceInput) Dtor_Tags() _dafny.Sequence { + return _this.Get_().(TagResourceInput_TagResourceInput).Tags +} + +func (_this TagResourceInput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case TagResourceInput_TagResourceInput: + { + return "ComAmazonawsDynamodbTypes.TagResourceInput.TagResourceInput" + "(" + _dafny.String(data.ResourceArn) + ", " + _dafny.String(data.Tags) + ")" + } + default: + { + return "" + } + } +} + +func (_this TagResourceInput) Equals(other TagResourceInput) bool { + switch data1 := _this.Get_().(type) { + case TagResourceInput_TagResourceInput: + { + data2, ok := other.Get_().(TagResourceInput_TagResourceInput) + return ok && data1.ResourceArn.Equals(data2.ResourceArn) && data1.Tags.Equals(data2.Tags) + } + default: + { + return false // unexpected + } + } +} + +func (_this TagResourceInput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(TagResourceInput) + return ok && _this.Equals(typed) +} + +func Type_TagResourceInput_() _dafny.TypeDescriptor { + return type_TagResourceInput_{} +} + +type type_TagResourceInput_ struct { +} + +func (_this type_TagResourceInput_) Default() interface{} { + return Companion_TagResourceInput_.Default() +} + +func (_this type_TagResourceInput_) String() string { + return "ComAmazonawsDynamodbTypes.TagResourceInput" +} +func (_this TagResourceInput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = TagResourceInput{} + +// End of datatype TagResourceInput + +// Definition of class TagValueString +type TagValueString struct { +} + +func New_TagValueString_() *TagValueString { + _this := TagValueString{} + + return &_this +} + +type CompanionStruct_TagValueString_ struct { +} + +var Companion_TagValueString_ = CompanionStruct_TagValueString_{} + +func (*TagValueString) String() string { + return "ComAmazonawsDynamodbTypes.TagValueString" +} + +// End of class TagValueString + +func Type_TagValueString_() _dafny.TypeDescriptor { + return type_TagValueString_{} +} + +type type_TagValueString_ struct { +} + +func (_this type_TagValueString_) Default() interface{} { + return _dafny.EmptySeq.SetString() +} + +func (_this type_TagValueString_) String() string { + return "ComAmazonawsDynamodbTypes.TagValueString" +} +func (_this *CompanionStruct_TagValueString_) Is_(__source _dafny.Sequence) bool { + var _45_x _dafny.Sequence = (__source) + _ = _45_x + return Companion_Default___.IsValid__TagValueString(_45_x) +} + +// Definition of class TimeToLiveAttributeName +type TimeToLiveAttributeName struct { +} + +func New_TimeToLiveAttributeName_() *TimeToLiveAttributeName { + _this := TimeToLiveAttributeName{} + + return &_this +} + +type CompanionStruct_TimeToLiveAttributeName_ struct { +} + +var Companion_TimeToLiveAttributeName_ = CompanionStruct_TimeToLiveAttributeName_{} + +func (*TimeToLiveAttributeName) String() string { + return "ComAmazonawsDynamodbTypes.TimeToLiveAttributeName" +} + +// End of class TimeToLiveAttributeName + +func Type_TimeToLiveAttributeName_() _dafny.TypeDescriptor { + return type_TimeToLiveAttributeName_{} +} + +type type_TimeToLiveAttributeName_ struct { +} + +func (_this type_TimeToLiveAttributeName_) Default() interface{} { + return _dafny.EmptySeq.SetString() +} + +func (_this type_TimeToLiveAttributeName_) String() string { + return "ComAmazonawsDynamodbTypes.TimeToLiveAttributeName" +} +func (_this *CompanionStruct_TimeToLiveAttributeName_) Is_(__source _dafny.Sequence) bool { + var _46_x _dafny.Sequence = (__source) + _ = _46_x + return Companion_Default___.IsValid__TimeToLiveAttributeName(_46_x) +} + +// Definition of datatype TimeToLiveDescription +type TimeToLiveDescription struct { + Data_TimeToLiveDescription_ +} + +func (_this TimeToLiveDescription) Get_() Data_TimeToLiveDescription_ { + return _this.Data_TimeToLiveDescription_ +} + +type Data_TimeToLiveDescription_ interface { + isTimeToLiveDescription() +} + +type CompanionStruct_TimeToLiveDescription_ struct { +} + +var Companion_TimeToLiveDescription_ = CompanionStruct_TimeToLiveDescription_{} + +type TimeToLiveDescription_TimeToLiveDescription struct { + TimeToLiveStatus m_Wrappers.Option + AttributeName m_Wrappers.Option +} + +func (TimeToLiveDescription_TimeToLiveDescription) isTimeToLiveDescription() {} + +func (CompanionStruct_TimeToLiveDescription_) Create_TimeToLiveDescription_(TimeToLiveStatus m_Wrappers.Option, AttributeName m_Wrappers.Option) TimeToLiveDescription { + return TimeToLiveDescription{TimeToLiveDescription_TimeToLiveDescription{TimeToLiveStatus, AttributeName}} +} + +func (_this TimeToLiveDescription) Is_TimeToLiveDescription() bool { + _, ok := _this.Get_().(TimeToLiveDescription_TimeToLiveDescription) + return ok +} + +func (CompanionStruct_TimeToLiveDescription_) Default() TimeToLiveDescription { + return Companion_TimeToLiveDescription_.Create_TimeToLiveDescription_(m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this TimeToLiveDescription) Dtor_TimeToLiveStatus() m_Wrappers.Option { + return _this.Get_().(TimeToLiveDescription_TimeToLiveDescription).TimeToLiveStatus +} + +func (_this TimeToLiveDescription) Dtor_AttributeName() m_Wrappers.Option { + return _this.Get_().(TimeToLiveDescription_TimeToLiveDescription).AttributeName +} + +func (_this TimeToLiveDescription) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case TimeToLiveDescription_TimeToLiveDescription: + { + return "ComAmazonawsDynamodbTypes.TimeToLiveDescription.TimeToLiveDescription" + "(" + _dafny.String(data.TimeToLiveStatus) + ", " + _dafny.String(data.AttributeName) + ")" + } + default: + { + return "" + } + } +} + +func (_this TimeToLiveDescription) Equals(other TimeToLiveDescription) bool { + switch data1 := _this.Get_().(type) { + case TimeToLiveDescription_TimeToLiveDescription: + { + data2, ok := other.Get_().(TimeToLiveDescription_TimeToLiveDescription) + return ok && data1.TimeToLiveStatus.Equals(data2.TimeToLiveStatus) && data1.AttributeName.Equals(data2.AttributeName) + } + default: + { + return false // unexpected + } + } +} + +func (_this TimeToLiveDescription) EqualsGeneric(other interface{}) bool { + typed, ok := other.(TimeToLiveDescription) + return ok && _this.Equals(typed) +} + +func Type_TimeToLiveDescription_() _dafny.TypeDescriptor { + return type_TimeToLiveDescription_{} +} + +type type_TimeToLiveDescription_ struct { +} + +func (_this type_TimeToLiveDescription_) Default() interface{} { + return Companion_TimeToLiveDescription_.Default() +} + +func (_this type_TimeToLiveDescription_) String() string { + return "ComAmazonawsDynamodbTypes.TimeToLiveDescription" +} +func (_this TimeToLiveDescription) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = TimeToLiveDescription{} + +// End of datatype TimeToLiveDescription + +// Definition of datatype TimeToLiveSpecification +type TimeToLiveSpecification struct { + Data_TimeToLiveSpecification_ +} + +func (_this TimeToLiveSpecification) Get_() Data_TimeToLiveSpecification_ { + return _this.Data_TimeToLiveSpecification_ +} + +type Data_TimeToLiveSpecification_ interface { + isTimeToLiveSpecification() +} + +type CompanionStruct_TimeToLiveSpecification_ struct { +} + +var Companion_TimeToLiveSpecification_ = CompanionStruct_TimeToLiveSpecification_{} + +type TimeToLiveSpecification_TimeToLiveSpecification struct { + Enabled bool + AttributeName _dafny.Sequence +} + +func (TimeToLiveSpecification_TimeToLiveSpecification) isTimeToLiveSpecification() {} + +func (CompanionStruct_TimeToLiveSpecification_) Create_TimeToLiveSpecification_(Enabled bool, AttributeName _dafny.Sequence) TimeToLiveSpecification { + return TimeToLiveSpecification{TimeToLiveSpecification_TimeToLiveSpecification{Enabled, AttributeName}} +} + +func (_this TimeToLiveSpecification) Is_TimeToLiveSpecification() bool { + _, ok := _this.Get_().(TimeToLiveSpecification_TimeToLiveSpecification) + return ok +} + +func (CompanionStruct_TimeToLiveSpecification_) Default() TimeToLiveSpecification { + return Companion_TimeToLiveSpecification_.Create_TimeToLiveSpecification_(false, _dafny.EmptySeq.SetString()) +} + +func (_this TimeToLiveSpecification) Dtor_Enabled() bool { + return _this.Get_().(TimeToLiveSpecification_TimeToLiveSpecification).Enabled +} + +func (_this TimeToLiveSpecification) Dtor_AttributeName() _dafny.Sequence { + return _this.Get_().(TimeToLiveSpecification_TimeToLiveSpecification).AttributeName +} + +func (_this TimeToLiveSpecification) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case TimeToLiveSpecification_TimeToLiveSpecification: + { + return "ComAmazonawsDynamodbTypes.TimeToLiveSpecification.TimeToLiveSpecification" + "(" + _dafny.String(data.Enabled) + ", " + _dafny.String(data.AttributeName) + ")" + } + default: + { + return "" + } + } +} + +func (_this TimeToLiveSpecification) Equals(other TimeToLiveSpecification) bool { + switch data1 := _this.Get_().(type) { + case TimeToLiveSpecification_TimeToLiveSpecification: + { + data2, ok := other.Get_().(TimeToLiveSpecification_TimeToLiveSpecification) + return ok && data1.Enabled == data2.Enabled && data1.AttributeName.Equals(data2.AttributeName) + } + default: + { + return false // unexpected + } + } +} + +func (_this TimeToLiveSpecification) EqualsGeneric(other interface{}) bool { + typed, ok := other.(TimeToLiveSpecification) + return ok && _this.Equals(typed) +} + +func Type_TimeToLiveSpecification_() _dafny.TypeDescriptor { + return type_TimeToLiveSpecification_{} +} + +type type_TimeToLiveSpecification_ struct { +} + +func (_this type_TimeToLiveSpecification_) Default() interface{} { + return Companion_TimeToLiveSpecification_.Default() +} + +func (_this type_TimeToLiveSpecification_) String() string { + return "ComAmazonawsDynamodbTypes.TimeToLiveSpecification" +} +func (_this TimeToLiveSpecification) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = TimeToLiveSpecification{} + +// End of datatype TimeToLiveSpecification + +// Definition of datatype TimeToLiveStatus +type TimeToLiveStatus struct { + Data_TimeToLiveStatus_ +} + +func (_this TimeToLiveStatus) Get_() Data_TimeToLiveStatus_ { + return _this.Data_TimeToLiveStatus_ +} + +type Data_TimeToLiveStatus_ interface { + isTimeToLiveStatus() +} + +type CompanionStruct_TimeToLiveStatus_ struct { +} + +var Companion_TimeToLiveStatus_ = CompanionStruct_TimeToLiveStatus_{} + +type TimeToLiveStatus_ENABLING struct { +} + +func (TimeToLiveStatus_ENABLING) isTimeToLiveStatus() {} + +func (CompanionStruct_TimeToLiveStatus_) Create_ENABLING_() TimeToLiveStatus { + return TimeToLiveStatus{TimeToLiveStatus_ENABLING{}} +} + +func (_this TimeToLiveStatus) Is_ENABLING() bool { + _, ok := _this.Get_().(TimeToLiveStatus_ENABLING) + return ok +} + +type TimeToLiveStatus_DISABLING struct { +} + +func (TimeToLiveStatus_DISABLING) isTimeToLiveStatus() {} + +func (CompanionStruct_TimeToLiveStatus_) Create_DISABLING_() TimeToLiveStatus { + return TimeToLiveStatus{TimeToLiveStatus_DISABLING{}} +} + +func (_this TimeToLiveStatus) Is_DISABLING() bool { + _, ok := _this.Get_().(TimeToLiveStatus_DISABLING) + return ok +} + +type TimeToLiveStatus_ENABLED struct { +} + +func (TimeToLiveStatus_ENABLED) isTimeToLiveStatus() {} + +func (CompanionStruct_TimeToLiveStatus_) Create_ENABLED_() TimeToLiveStatus { + return TimeToLiveStatus{TimeToLiveStatus_ENABLED{}} +} + +func (_this TimeToLiveStatus) Is_ENABLED() bool { + _, ok := _this.Get_().(TimeToLiveStatus_ENABLED) + return ok +} + +type TimeToLiveStatus_DISABLED struct { +} + +func (TimeToLiveStatus_DISABLED) isTimeToLiveStatus() {} + +func (CompanionStruct_TimeToLiveStatus_) Create_DISABLED_() TimeToLiveStatus { + return TimeToLiveStatus{TimeToLiveStatus_DISABLED{}} +} + +func (_this TimeToLiveStatus) Is_DISABLED() bool { + _, ok := _this.Get_().(TimeToLiveStatus_DISABLED) + return ok +} + +func (CompanionStruct_TimeToLiveStatus_) Default() TimeToLiveStatus { + return Companion_TimeToLiveStatus_.Create_ENABLING_() +} + +func (_ CompanionStruct_TimeToLiveStatus_) AllSingletonConstructors() _dafny.Iterator { + i := -1 + return func() (interface{}, bool) { + i++ + switch i { + case 0: + return Companion_TimeToLiveStatus_.Create_ENABLING_(), true + case 1: + return Companion_TimeToLiveStatus_.Create_DISABLING_(), true + case 2: + return Companion_TimeToLiveStatus_.Create_ENABLED_(), true + case 3: + return Companion_TimeToLiveStatus_.Create_DISABLED_(), true + default: + return TimeToLiveStatus{}, false + } + } +} + +func (_this TimeToLiveStatus) String() string { + switch _this.Get_().(type) { + case nil: + return "null" + case TimeToLiveStatus_ENABLING: + { + return "ComAmazonawsDynamodbTypes.TimeToLiveStatus.ENABLING" + } + case TimeToLiveStatus_DISABLING: + { + return "ComAmazonawsDynamodbTypes.TimeToLiveStatus.DISABLING" + } + case TimeToLiveStatus_ENABLED: + { + return "ComAmazonawsDynamodbTypes.TimeToLiveStatus.ENABLED" + } + case TimeToLiveStatus_DISABLED: + { + return "ComAmazonawsDynamodbTypes.TimeToLiveStatus.DISABLED" + } + default: + { + return "" + } + } +} + +func (_this TimeToLiveStatus) Equals(other TimeToLiveStatus) bool { + switch _this.Get_().(type) { + case TimeToLiveStatus_ENABLING: + { + _, ok := other.Get_().(TimeToLiveStatus_ENABLING) + return ok + } + case TimeToLiveStatus_DISABLING: + { + _, ok := other.Get_().(TimeToLiveStatus_DISABLING) + return ok + } + case TimeToLiveStatus_ENABLED: + { + _, ok := other.Get_().(TimeToLiveStatus_ENABLED) + return ok + } + case TimeToLiveStatus_DISABLED: + { + _, ok := other.Get_().(TimeToLiveStatus_DISABLED) + return ok + } + default: + { + return false // unexpected + } + } +} + +func (_this TimeToLiveStatus) EqualsGeneric(other interface{}) bool { + typed, ok := other.(TimeToLiveStatus) + return ok && _this.Equals(typed) +} + +func Type_TimeToLiveStatus_() _dafny.TypeDescriptor { + return type_TimeToLiveStatus_{} +} + +type type_TimeToLiveStatus_ struct { +} + +func (_this type_TimeToLiveStatus_) Default() interface{} { + return Companion_TimeToLiveStatus_.Default() +} + +func (_this type_TimeToLiveStatus_) String() string { + return "ComAmazonawsDynamodbTypes.TimeToLiveStatus" +} +func (_this TimeToLiveStatus) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = TimeToLiveStatus{} + +// End of datatype TimeToLiveStatus + +// Definition of datatype TransactGetItem +type TransactGetItem struct { + Data_TransactGetItem_ +} + +func (_this TransactGetItem) Get_() Data_TransactGetItem_ { + return _this.Data_TransactGetItem_ +} + +type Data_TransactGetItem_ interface { + isTransactGetItem() +} + +type CompanionStruct_TransactGetItem_ struct { +} + +var Companion_TransactGetItem_ = CompanionStruct_TransactGetItem_{} + +type TransactGetItem_TransactGetItem struct { + Get Get +} + +func (TransactGetItem_TransactGetItem) isTransactGetItem() {} + +func (CompanionStruct_TransactGetItem_) Create_TransactGetItem_(Get Get) TransactGetItem { + return TransactGetItem{TransactGetItem_TransactGetItem{Get}} +} + +func (_this TransactGetItem) Is_TransactGetItem() bool { + _, ok := _this.Get_().(TransactGetItem_TransactGetItem) + return ok +} + +func (CompanionStruct_TransactGetItem_) Default() TransactGetItem { + return Companion_TransactGetItem_.Create_TransactGetItem_(Companion_Get_.Default()) +} + +func (_this TransactGetItem) Dtor_Get() Get { + return _this.Get_().(TransactGetItem_TransactGetItem).Get +} + +func (_this TransactGetItem) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case TransactGetItem_TransactGetItem: + { + return "ComAmazonawsDynamodbTypes.TransactGetItem.TransactGetItem" + "(" + _dafny.String(data.Get) + ")" + } + default: + { + return "" + } + } +} + +func (_this TransactGetItem) Equals(other TransactGetItem) bool { + switch data1 := _this.Get_().(type) { + case TransactGetItem_TransactGetItem: + { + data2, ok := other.Get_().(TransactGetItem_TransactGetItem) + return ok && data1.Get.Equals(data2.Get) + } + default: + { + return false // unexpected + } + } +} + +func (_this TransactGetItem) EqualsGeneric(other interface{}) bool { + typed, ok := other.(TransactGetItem) + return ok && _this.Equals(typed) +} + +func Type_TransactGetItem_() _dafny.TypeDescriptor { + return type_TransactGetItem_{} +} + +type type_TransactGetItem_ struct { +} + +func (_this type_TransactGetItem_) Default() interface{} { + return Companion_TransactGetItem_.Default() +} + +func (_this type_TransactGetItem_) String() string { + return "ComAmazonawsDynamodbTypes.TransactGetItem" +} +func (_this TransactGetItem) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = TransactGetItem{} + +// End of datatype TransactGetItem + +// Definition of class TransactGetItemList +type TransactGetItemList struct { +} + +func New_TransactGetItemList_() *TransactGetItemList { + _this := TransactGetItemList{} + + return &_this +} + +type CompanionStruct_TransactGetItemList_ struct { +} + +var Companion_TransactGetItemList_ = CompanionStruct_TransactGetItemList_{} + +func (*TransactGetItemList) String() string { + return "ComAmazonawsDynamodbTypes.TransactGetItemList" +} + +// End of class TransactGetItemList + +func Type_TransactGetItemList_() _dafny.TypeDescriptor { + return type_TransactGetItemList_{} +} + +type type_TransactGetItemList_ struct { +} + +func (_this type_TransactGetItemList_) Default() interface{} { + return _dafny.EmptySeq +} + +func (_this type_TransactGetItemList_) String() string { + return "ComAmazonawsDynamodbTypes.TransactGetItemList" +} +func (_this *CompanionStruct_TransactGetItemList_) Is_(__source _dafny.Sequence) bool { + var _47_x _dafny.Sequence = (__source) + _ = _47_x + return Companion_Default___.IsValid__TransactGetItemList(_47_x) +} + +// Definition of datatype TransactGetItemsInput +type TransactGetItemsInput struct { + Data_TransactGetItemsInput_ +} + +func (_this TransactGetItemsInput) Get_() Data_TransactGetItemsInput_ { + return _this.Data_TransactGetItemsInput_ +} + +type Data_TransactGetItemsInput_ interface { + isTransactGetItemsInput() +} + +type CompanionStruct_TransactGetItemsInput_ struct { +} + +var Companion_TransactGetItemsInput_ = CompanionStruct_TransactGetItemsInput_{} + +type TransactGetItemsInput_TransactGetItemsInput struct { + TransactItems _dafny.Sequence + ReturnConsumedCapacity m_Wrappers.Option +} + +func (TransactGetItemsInput_TransactGetItemsInput) isTransactGetItemsInput() {} + +func (CompanionStruct_TransactGetItemsInput_) Create_TransactGetItemsInput_(TransactItems _dafny.Sequence, ReturnConsumedCapacity m_Wrappers.Option) TransactGetItemsInput { + return TransactGetItemsInput{TransactGetItemsInput_TransactGetItemsInput{TransactItems, ReturnConsumedCapacity}} +} + +func (_this TransactGetItemsInput) Is_TransactGetItemsInput() bool { + _, ok := _this.Get_().(TransactGetItemsInput_TransactGetItemsInput) + return ok +} + +func (CompanionStruct_TransactGetItemsInput_) Default() TransactGetItemsInput { + return Companion_TransactGetItemsInput_.Create_TransactGetItemsInput_(_dafny.EmptySeq, m_Wrappers.Companion_Option_.Default()) +} + +func (_this TransactGetItemsInput) Dtor_TransactItems() _dafny.Sequence { + return _this.Get_().(TransactGetItemsInput_TransactGetItemsInput).TransactItems +} + +func (_this TransactGetItemsInput) Dtor_ReturnConsumedCapacity() m_Wrappers.Option { + return _this.Get_().(TransactGetItemsInput_TransactGetItemsInput).ReturnConsumedCapacity +} + +func (_this TransactGetItemsInput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case TransactGetItemsInput_TransactGetItemsInput: + { + return "ComAmazonawsDynamodbTypes.TransactGetItemsInput.TransactGetItemsInput" + "(" + _dafny.String(data.TransactItems) + ", " + _dafny.String(data.ReturnConsumedCapacity) + ")" + } + default: + { + return "" + } + } +} + +func (_this TransactGetItemsInput) Equals(other TransactGetItemsInput) bool { + switch data1 := _this.Get_().(type) { + case TransactGetItemsInput_TransactGetItemsInput: + { + data2, ok := other.Get_().(TransactGetItemsInput_TransactGetItemsInput) + return ok && data1.TransactItems.Equals(data2.TransactItems) && data1.ReturnConsumedCapacity.Equals(data2.ReturnConsumedCapacity) + } + default: + { + return false // unexpected + } + } +} + +func (_this TransactGetItemsInput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(TransactGetItemsInput) + return ok && _this.Equals(typed) +} + +func Type_TransactGetItemsInput_() _dafny.TypeDescriptor { + return type_TransactGetItemsInput_{} +} + +type type_TransactGetItemsInput_ struct { +} + +func (_this type_TransactGetItemsInput_) Default() interface{} { + return Companion_TransactGetItemsInput_.Default() +} + +func (_this type_TransactGetItemsInput_) String() string { + return "ComAmazonawsDynamodbTypes.TransactGetItemsInput" +} +func (_this TransactGetItemsInput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = TransactGetItemsInput{} + +// End of datatype TransactGetItemsInput + +// Definition of datatype TransactGetItemsOutput +type TransactGetItemsOutput struct { + Data_TransactGetItemsOutput_ +} + +func (_this TransactGetItemsOutput) Get_() Data_TransactGetItemsOutput_ { + return _this.Data_TransactGetItemsOutput_ +} + +type Data_TransactGetItemsOutput_ interface { + isTransactGetItemsOutput() +} + +type CompanionStruct_TransactGetItemsOutput_ struct { +} + +var Companion_TransactGetItemsOutput_ = CompanionStruct_TransactGetItemsOutput_{} + +type TransactGetItemsOutput_TransactGetItemsOutput struct { + ConsumedCapacity m_Wrappers.Option + Responses m_Wrappers.Option +} + +func (TransactGetItemsOutput_TransactGetItemsOutput) isTransactGetItemsOutput() {} + +func (CompanionStruct_TransactGetItemsOutput_) Create_TransactGetItemsOutput_(ConsumedCapacity m_Wrappers.Option, Responses m_Wrappers.Option) TransactGetItemsOutput { + return TransactGetItemsOutput{TransactGetItemsOutput_TransactGetItemsOutput{ConsumedCapacity, Responses}} +} + +func (_this TransactGetItemsOutput) Is_TransactGetItemsOutput() bool { + _, ok := _this.Get_().(TransactGetItemsOutput_TransactGetItemsOutput) + return ok +} + +func (CompanionStruct_TransactGetItemsOutput_) Default() TransactGetItemsOutput { + return Companion_TransactGetItemsOutput_.Create_TransactGetItemsOutput_(m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this TransactGetItemsOutput) Dtor_ConsumedCapacity() m_Wrappers.Option { + return _this.Get_().(TransactGetItemsOutput_TransactGetItemsOutput).ConsumedCapacity +} + +func (_this TransactGetItemsOutput) Dtor_Responses() m_Wrappers.Option { + return _this.Get_().(TransactGetItemsOutput_TransactGetItemsOutput).Responses +} + +func (_this TransactGetItemsOutput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case TransactGetItemsOutput_TransactGetItemsOutput: + { + return "ComAmazonawsDynamodbTypes.TransactGetItemsOutput.TransactGetItemsOutput" + "(" + _dafny.String(data.ConsumedCapacity) + ", " + _dafny.String(data.Responses) + ")" + } + default: + { + return "" + } + } +} + +func (_this TransactGetItemsOutput) Equals(other TransactGetItemsOutput) bool { + switch data1 := _this.Get_().(type) { + case TransactGetItemsOutput_TransactGetItemsOutput: + { + data2, ok := other.Get_().(TransactGetItemsOutput_TransactGetItemsOutput) + return ok && data1.ConsumedCapacity.Equals(data2.ConsumedCapacity) && data1.Responses.Equals(data2.Responses) + } + default: + { + return false // unexpected + } + } +} + +func (_this TransactGetItemsOutput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(TransactGetItemsOutput) + return ok && _this.Equals(typed) +} + +func Type_TransactGetItemsOutput_() _dafny.TypeDescriptor { + return type_TransactGetItemsOutput_{} +} + +type type_TransactGetItemsOutput_ struct { +} + +func (_this type_TransactGetItemsOutput_) Default() interface{} { + return Companion_TransactGetItemsOutput_.Default() +} + +func (_this type_TransactGetItemsOutput_) String() string { + return "ComAmazonawsDynamodbTypes.TransactGetItemsOutput" +} +func (_this TransactGetItemsOutput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = TransactGetItemsOutput{} + +// End of datatype TransactGetItemsOutput + +// Definition of datatype TransactWriteItem +type TransactWriteItem struct { + Data_TransactWriteItem_ +} + +func (_this TransactWriteItem) Get_() Data_TransactWriteItem_ { + return _this.Data_TransactWriteItem_ +} + +type Data_TransactWriteItem_ interface { + isTransactWriteItem() +} + +type CompanionStruct_TransactWriteItem_ struct { +} + +var Companion_TransactWriteItem_ = CompanionStruct_TransactWriteItem_{} + +type TransactWriteItem_TransactWriteItem struct { + ConditionCheck m_Wrappers.Option + Put m_Wrappers.Option + Delete m_Wrappers.Option + Update m_Wrappers.Option +} + +func (TransactWriteItem_TransactWriteItem) isTransactWriteItem() {} + +func (CompanionStruct_TransactWriteItem_) Create_TransactWriteItem_(ConditionCheck m_Wrappers.Option, Put m_Wrappers.Option, Delete m_Wrappers.Option, Update m_Wrappers.Option) TransactWriteItem { + return TransactWriteItem{TransactWriteItem_TransactWriteItem{ConditionCheck, Put, Delete, Update}} +} + +func (_this TransactWriteItem) Is_TransactWriteItem() bool { + _, ok := _this.Get_().(TransactWriteItem_TransactWriteItem) + return ok +} + +func (CompanionStruct_TransactWriteItem_) Default() TransactWriteItem { + return Companion_TransactWriteItem_.Create_TransactWriteItem_(m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this TransactWriteItem) Dtor_ConditionCheck() m_Wrappers.Option { + return _this.Get_().(TransactWriteItem_TransactWriteItem).ConditionCheck +} + +func (_this TransactWriteItem) Dtor_Put() m_Wrappers.Option { + return _this.Get_().(TransactWriteItem_TransactWriteItem).Put +} + +func (_this TransactWriteItem) Dtor_Delete() m_Wrappers.Option { + return _this.Get_().(TransactWriteItem_TransactWriteItem).Delete +} + +func (_this TransactWriteItem) Dtor_Update() m_Wrappers.Option { + return _this.Get_().(TransactWriteItem_TransactWriteItem).Update +} + +func (_this TransactWriteItem) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case TransactWriteItem_TransactWriteItem: + { + return "ComAmazonawsDynamodbTypes.TransactWriteItem.TransactWriteItem" + "(" + _dafny.String(data.ConditionCheck) + ", " + _dafny.String(data.Put) + ", " + _dafny.String(data.Delete) + ", " + _dafny.String(data.Update) + ")" + } + default: + { + return "" + } + } +} + +func (_this TransactWriteItem) Equals(other TransactWriteItem) bool { + switch data1 := _this.Get_().(type) { + case TransactWriteItem_TransactWriteItem: + { + data2, ok := other.Get_().(TransactWriteItem_TransactWriteItem) + return ok && data1.ConditionCheck.Equals(data2.ConditionCheck) && data1.Put.Equals(data2.Put) && data1.Delete.Equals(data2.Delete) && data1.Update.Equals(data2.Update) + } + default: + { + return false // unexpected + } + } +} + +func (_this TransactWriteItem) EqualsGeneric(other interface{}) bool { + typed, ok := other.(TransactWriteItem) + return ok && _this.Equals(typed) +} + +func Type_TransactWriteItem_() _dafny.TypeDescriptor { + return type_TransactWriteItem_{} +} + +type type_TransactWriteItem_ struct { +} + +func (_this type_TransactWriteItem_) Default() interface{} { + return Companion_TransactWriteItem_.Default() +} + +func (_this type_TransactWriteItem_) String() string { + return "ComAmazonawsDynamodbTypes.TransactWriteItem" +} +func (_this TransactWriteItem) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = TransactWriteItem{} + +// End of datatype TransactWriteItem + +// Definition of class TransactWriteItemList +type TransactWriteItemList struct { +} + +func New_TransactWriteItemList_() *TransactWriteItemList { + _this := TransactWriteItemList{} + + return &_this +} + +type CompanionStruct_TransactWriteItemList_ struct { +} + +var Companion_TransactWriteItemList_ = CompanionStruct_TransactWriteItemList_{} + +func (*TransactWriteItemList) String() string { + return "ComAmazonawsDynamodbTypes.TransactWriteItemList" +} + +// End of class TransactWriteItemList + +func Type_TransactWriteItemList_() _dafny.TypeDescriptor { + return type_TransactWriteItemList_{} +} + +type type_TransactWriteItemList_ struct { +} + +func (_this type_TransactWriteItemList_) Default() interface{} { + return _dafny.EmptySeq +} + +func (_this type_TransactWriteItemList_) String() string { + return "ComAmazonawsDynamodbTypes.TransactWriteItemList" +} +func (_this *CompanionStruct_TransactWriteItemList_) Is_(__source _dafny.Sequence) bool { + var _48_x _dafny.Sequence = (__source) + _ = _48_x + return Companion_Default___.IsValid__TransactWriteItemList(_48_x) +} + +// Definition of datatype TransactWriteItemsInput +type TransactWriteItemsInput struct { + Data_TransactWriteItemsInput_ +} + +func (_this TransactWriteItemsInput) Get_() Data_TransactWriteItemsInput_ { + return _this.Data_TransactWriteItemsInput_ +} + +type Data_TransactWriteItemsInput_ interface { + isTransactWriteItemsInput() +} + +type CompanionStruct_TransactWriteItemsInput_ struct { +} + +var Companion_TransactWriteItemsInput_ = CompanionStruct_TransactWriteItemsInput_{} + +type TransactWriteItemsInput_TransactWriteItemsInput struct { + TransactItems _dafny.Sequence + ReturnConsumedCapacity m_Wrappers.Option + ReturnItemCollectionMetrics m_Wrappers.Option + ClientRequestToken m_Wrappers.Option +} + +func (TransactWriteItemsInput_TransactWriteItemsInput) isTransactWriteItemsInput() {} + +func (CompanionStruct_TransactWriteItemsInput_) Create_TransactWriteItemsInput_(TransactItems _dafny.Sequence, ReturnConsumedCapacity m_Wrappers.Option, ReturnItemCollectionMetrics m_Wrappers.Option, ClientRequestToken m_Wrappers.Option) TransactWriteItemsInput { + return TransactWriteItemsInput{TransactWriteItemsInput_TransactWriteItemsInput{TransactItems, ReturnConsumedCapacity, ReturnItemCollectionMetrics, ClientRequestToken}} +} + +func (_this TransactWriteItemsInput) Is_TransactWriteItemsInput() bool { + _, ok := _this.Get_().(TransactWriteItemsInput_TransactWriteItemsInput) + return ok +} + +func (CompanionStruct_TransactWriteItemsInput_) Default() TransactWriteItemsInput { + return Companion_TransactWriteItemsInput_.Create_TransactWriteItemsInput_(_dafny.EmptySeq, m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this TransactWriteItemsInput) Dtor_TransactItems() _dafny.Sequence { + return _this.Get_().(TransactWriteItemsInput_TransactWriteItemsInput).TransactItems +} + +func (_this TransactWriteItemsInput) Dtor_ReturnConsumedCapacity() m_Wrappers.Option { + return _this.Get_().(TransactWriteItemsInput_TransactWriteItemsInput).ReturnConsumedCapacity +} + +func (_this TransactWriteItemsInput) Dtor_ReturnItemCollectionMetrics() m_Wrappers.Option { + return _this.Get_().(TransactWriteItemsInput_TransactWriteItemsInput).ReturnItemCollectionMetrics +} + +func (_this TransactWriteItemsInput) Dtor_ClientRequestToken() m_Wrappers.Option { + return _this.Get_().(TransactWriteItemsInput_TransactWriteItemsInput).ClientRequestToken +} + +func (_this TransactWriteItemsInput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case TransactWriteItemsInput_TransactWriteItemsInput: + { + return "ComAmazonawsDynamodbTypes.TransactWriteItemsInput.TransactWriteItemsInput" + "(" + _dafny.String(data.TransactItems) + ", " + _dafny.String(data.ReturnConsumedCapacity) + ", " + _dafny.String(data.ReturnItemCollectionMetrics) + ", " + _dafny.String(data.ClientRequestToken) + ")" + } + default: + { + return "" + } + } +} + +func (_this TransactWriteItemsInput) Equals(other TransactWriteItemsInput) bool { + switch data1 := _this.Get_().(type) { + case TransactWriteItemsInput_TransactWriteItemsInput: + { + data2, ok := other.Get_().(TransactWriteItemsInput_TransactWriteItemsInput) + return ok && data1.TransactItems.Equals(data2.TransactItems) && data1.ReturnConsumedCapacity.Equals(data2.ReturnConsumedCapacity) && data1.ReturnItemCollectionMetrics.Equals(data2.ReturnItemCollectionMetrics) && data1.ClientRequestToken.Equals(data2.ClientRequestToken) + } + default: + { + return false // unexpected + } + } +} + +func (_this TransactWriteItemsInput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(TransactWriteItemsInput) + return ok && _this.Equals(typed) +} + +func Type_TransactWriteItemsInput_() _dafny.TypeDescriptor { + return type_TransactWriteItemsInput_{} +} + +type type_TransactWriteItemsInput_ struct { +} + +func (_this type_TransactWriteItemsInput_) Default() interface{} { + return Companion_TransactWriteItemsInput_.Default() +} + +func (_this type_TransactWriteItemsInput_) String() string { + return "ComAmazonawsDynamodbTypes.TransactWriteItemsInput" +} +func (_this TransactWriteItemsInput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = TransactWriteItemsInput{} + +// End of datatype TransactWriteItemsInput + +// Definition of datatype TransactWriteItemsOutput +type TransactWriteItemsOutput struct { + Data_TransactWriteItemsOutput_ +} + +func (_this TransactWriteItemsOutput) Get_() Data_TransactWriteItemsOutput_ { + return _this.Data_TransactWriteItemsOutput_ +} + +type Data_TransactWriteItemsOutput_ interface { + isTransactWriteItemsOutput() +} + +type CompanionStruct_TransactWriteItemsOutput_ struct { +} + +var Companion_TransactWriteItemsOutput_ = CompanionStruct_TransactWriteItemsOutput_{} + +type TransactWriteItemsOutput_TransactWriteItemsOutput struct { + ConsumedCapacity m_Wrappers.Option + ItemCollectionMetrics m_Wrappers.Option +} + +func (TransactWriteItemsOutput_TransactWriteItemsOutput) isTransactWriteItemsOutput() {} + +func (CompanionStruct_TransactWriteItemsOutput_) Create_TransactWriteItemsOutput_(ConsumedCapacity m_Wrappers.Option, ItemCollectionMetrics m_Wrappers.Option) TransactWriteItemsOutput { + return TransactWriteItemsOutput{TransactWriteItemsOutput_TransactWriteItemsOutput{ConsumedCapacity, ItemCollectionMetrics}} +} + +func (_this TransactWriteItemsOutput) Is_TransactWriteItemsOutput() bool { + _, ok := _this.Get_().(TransactWriteItemsOutput_TransactWriteItemsOutput) + return ok +} + +func (CompanionStruct_TransactWriteItemsOutput_) Default() TransactWriteItemsOutput { + return Companion_TransactWriteItemsOutput_.Create_TransactWriteItemsOutput_(m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this TransactWriteItemsOutput) Dtor_ConsumedCapacity() m_Wrappers.Option { + return _this.Get_().(TransactWriteItemsOutput_TransactWriteItemsOutput).ConsumedCapacity +} + +func (_this TransactWriteItemsOutput) Dtor_ItemCollectionMetrics() m_Wrappers.Option { + return _this.Get_().(TransactWriteItemsOutput_TransactWriteItemsOutput).ItemCollectionMetrics +} + +func (_this TransactWriteItemsOutput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case TransactWriteItemsOutput_TransactWriteItemsOutput: + { + return "ComAmazonawsDynamodbTypes.TransactWriteItemsOutput.TransactWriteItemsOutput" + "(" + _dafny.String(data.ConsumedCapacity) + ", " + _dafny.String(data.ItemCollectionMetrics) + ")" + } + default: + { + return "" + } + } +} + +func (_this TransactWriteItemsOutput) Equals(other TransactWriteItemsOutput) bool { + switch data1 := _this.Get_().(type) { + case TransactWriteItemsOutput_TransactWriteItemsOutput: + { + data2, ok := other.Get_().(TransactWriteItemsOutput_TransactWriteItemsOutput) + return ok && data1.ConsumedCapacity.Equals(data2.ConsumedCapacity) && data1.ItemCollectionMetrics.Equals(data2.ItemCollectionMetrics) + } + default: + { + return false // unexpected + } + } +} + +func (_this TransactWriteItemsOutput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(TransactWriteItemsOutput) + return ok && _this.Equals(typed) +} + +func Type_TransactWriteItemsOutput_() _dafny.TypeDescriptor { + return type_TransactWriteItemsOutput_{} +} + +type type_TransactWriteItemsOutput_ struct { +} + +func (_this type_TransactWriteItemsOutput_) Default() interface{} { + return Companion_TransactWriteItemsOutput_.Default() +} + +func (_this type_TransactWriteItemsOutput_) String() string { + return "ComAmazonawsDynamodbTypes.TransactWriteItemsOutput" +} +func (_this TransactWriteItemsOutput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = TransactWriteItemsOutput{} + +// End of datatype TransactWriteItemsOutput + +// Definition of datatype UntagResourceInput +type UntagResourceInput struct { + Data_UntagResourceInput_ +} + +func (_this UntagResourceInput) Get_() Data_UntagResourceInput_ { + return _this.Data_UntagResourceInput_ +} + +type Data_UntagResourceInput_ interface { + isUntagResourceInput() +} + +type CompanionStruct_UntagResourceInput_ struct { +} + +var Companion_UntagResourceInput_ = CompanionStruct_UntagResourceInput_{} + +type UntagResourceInput_UntagResourceInput struct { + ResourceArn _dafny.Sequence + TagKeys _dafny.Sequence +} + +func (UntagResourceInput_UntagResourceInput) isUntagResourceInput() {} + +func (CompanionStruct_UntagResourceInput_) Create_UntagResourceInput_(ResourceArn _dafny.Sequence, TagKeys _dafny.Sequence) UntagResourceInput { + return UntagResourceInput{UntagResourceInput_UntagResourceInput{ResourceArn, TagKeys}} +} + +func (_this UntagResourceInput) Is_UntagResourceInput() bool { + _, ok := _this.Get_().(UntagResourceInput_UntagResourceInput) + return ok +} + +func (CompanionStruct_UntagResourceInput_) Default() UntagResourceInput { + return Companion_UntagResourceInput_.Create_UntagResourceInput_(_dafny.EmptySeq.SetString(), _dafny.EmptySeq) +} + +func (_this UntagResourceInput) Dtor_ResourceArn() _dafny.Sequence { + return _this.Get_().(UntagResourceInput_UntagResourceInput).ResourceArn +} + +func (_this UntagResourceInput) Dtor_TagKeys() _dafny.Sequence { + return _this.Get_().(UntagResourceInput_UntagResourceInput).TagKeys +} + +func (_this UntagResourceInput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case UntagResourceInput_UntagResourceInput: + { + return "ComAmazonawsDynamodbTypes.UntagResourceInput.UntagResourceInput" + "(" + _dafny.String(data.ResourceArn) + ", " + _dafny.String(data.TagKeys) + ")" + } + default: + { + return "" + } + } +} + +func (_this UntagResourceInput) Equals(other UntagResourceInput) bool { + switch data1 := _this.Get_().(type) { + case UntagResourceInput_UntagResourceInput: + { + data2, ok := other.Get_().(UntagResourceInput_UntagResourceInput) + return ok && data1.ResourceArn.Equals(data2.ResourceArn) && data1.TagKeys.Equals(data2.TagKeys) + } + default: + { + return false // unexpected + } + } +} + +func (_this UntagResourceInput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(UntagResourceInput) + return ok && _this.Equals(typed) +} + +func Type_UntagResourceInput_() _dafny.TypeDescriptor { + return type_UntagResourceInput_{} +} + +type type_UntagResourceInput_ struct { +} + +func (_this type_UntagResourceInput_) Default() interface{} { + return Companion_UntagResourceInput_.Default() +} + +func (_this type_UntagResourceInput_) String() string { + return "ComAmazonawsDynamodbTypes.UntagResourceInput" +} +func (_this UntagResourceInput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = UntagResourceInput{} + +// End of datatype UntagResourceInput + +// Definition of datatype Update +type Update struct { + Data_Update_ +} + +func (_this Update) Get_() Data_Update_ { + return _this.Data_Update_ +} + +type Data_Update_ interface { + isUpdate() +} + +type CompanionStruct_Update_ struct { +} + +var Companion_Update_ = CompanionStruct_Update_{} + +type Update_Update struct { + Key _dafny.Map + UpdateExpression _dafny.Sequence + TableName _dafny.Sequence + ConditionExpression m_Wrappers.Option + ExpressionAttributeNames m_Wrappers.Option + ExpressionAttributeValues m_Wrappers.Option + ReturnValuesOnConditionCheckFailure m_Wrappers.Option +} + +func (Update_Update) isUpdate() {} + +func (CompanionStruct_Update_) Create_Update_(Key _dafny.Map, UpdateExpression _dafny.Sequence, TableName _dafny.Sequence, ConditionExpression m_Wrappers.Option, ExpressionAttributeNames m_Wrappers.Option, ExpressionAttributeValues m_Wrappers.Option, ReturnValuesOnConditionCheckFailure m_Wrappers.Option) Update { + return Update{Update_Update{Key, UpdateExpression, TableName, ConditionExpression, ExpressionAttributeNames, ExpressionAttributeValues, ReturnValuesOnConditionCheckFailure}} +} + +func (_this Update) Is_Update() bool { + _, ok := _this.Get_().(Update_Update) + return ok +} + +func (CompanionStruct_Update_) Default() Update { + return Companion_Update_.Create_Update_(_dafny.EmptyMap, _dafny.EmptySeq.SetString(), _dafny.EmptySeq.SetString(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this Update) Dtor_Key() _dafny.Map { + return _this.Get_().(Update_Update).Key +} + +func (_this Update) Dtor_UpdateExpression() _dafny.Sequence { + return _this.Get_().(Update_Update).UpdateExpression +} + +func (_this Update) Dtor_TableName() _dafny.Sequence { + return _this.Get_().(Update_Update).TableName +} + +func (_this Update) Dtor_ConditionExpression() m_Wrappers.Option { + return _this.Get_().(Update_Update).ConditionExpression +} + +func (_this Update) Dtor_ExpressionAttributeNames() m_Wrappers.Option { + return _this.Get_().(Update_Update).ExpressionAttributeNames +} + +func (_this Update) Dtor_ExpressionAttributeValues() m_Wrappers.Option { + return _this.Get_().(Update_Update).ExpressionAttributeValues +} + +func (_this Update) Dtor_ReturnValuesOnConditionCheckFailure() m_Wrappers.Option { + return _this.Get_().(Update_Update).ReturnValuesOnConditionCheckFailure +} + +func (_this Update) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case Update_Update: + { + return "ComAmazonawsDynamodbTypes.Update.Update" + "(" + _dafny.String(data.Key) + ", " + _dafny.String(data.UpdateExpression) + ", " + _dafny.String(data.TableName) + ", " + _dafny.String(data.ConditionExpression) + ", " + _dafny.String(data.ExpressionAttributeNames) + ", " + _dafny.String(data.ExpressionAttributeValues) + ", " + _dafny.String(data.ReturnValuesOnConditionCheckFailure) + ")" + } + default: + { + return "" + } + } +} + +func (_this Update) Equals(other Update) bool { + switch data1 := _this.Get_().(type) { + case Update_Update: + { + data2, ok := other.Get_().(Update_Update) + return ok && data1.Key.Equals(data2.Key) && data1.UpdateExpression.Equals(data2.UpdateExpression) && data1.TableName.Equals(data2.TableName) && data1.ConditionExpression.Equals(data2.ConditionExpression) && data1.ExpressionAttributeNames.Equals(data2.ExpressionAttributeNames) && data1.ExpressionAttributeValues.Equals(data2.ExpressionAttributeValues) && data1.ReturnValuesOnConditionCheckFailure.Equals(data2.ReturnValuesOnConditionCheckFailure) + } + default: + { + return false // unexpected + } + } +} + +func (_this Update) EqualsGeneric(other interface{}) bool { + typed, ok := other.(Update) + return ok && _this.Equals(typed) +} + +func Type_Update_() _dafny.TypeDescriptor { + return type_Update_{} +} + +type type_Update_ struct { +} + +func (_this type_Update_) Default() interface{} { + return Companion_Update_.Default() +} + +func (_this type_Update_) String() string { + return "ComAmazonawsDynamodbTypes.Update" +} +func (_this Update) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = Update{} + +// End of datatype Update + +// Definition of datatype UpdateContinuousBackupsInput +type UpdateContinuousBackupsInput struct { + Data_UpdateContinuousBackupsInput_ +} + +func (_this UpdateContinuousBackupsInput) Get_() Data_UpdateContinuousBackupsInput_ { + return _this.Data_UpdateContinuousBackupsInput_ +} + +type Data_UpdateContinuousBackupsInput_ interface { + isUpdateContinuousBackupsInput() +} + +type CompanionStruct_UpdateContinuousBackupsInput_ struct { +} + +var Companion_UpdateContinuousBackupsInput_ = CompanionStruct_UpdateContinuousBackupsInput_{} + +type UpdateContinuousBackupsInput_UpdateContinuousBackupsInput struct { + TableName _dafny.Sequence + PointInTimeRecoverySpecification PointInTimeRecoverySpecification +} + +func (UpdateContinuousBackupsInput_UpdateContinuousBackupsInput) isUpdateContinuousBackupsInput() {} + +func (CompanionStruct_UpdateContinuousBackupsInput_) Create_UpdateContinuousBackupsInput_(TableName _dafny.Sequence, PointInTimeRecoverySpecification PointInTimeRecoverySpecification) UpdateContinuousBackupsInput { + return UpdateContinuousBackupsInput{UpdateContinuousBackupsInput_UpdateContinuousBackupsInput{TableName, PointInTimeRecoverySpecification}} +} + +func (_this UpdateContinuousBackupsInput) Is_UpdateContinuousBackupsInput() bool { + _, ok := _this.Get_().(UpdateContinuousBackupsInput_UpdateContinuousBackupsInput) + return ok +} + +func (CompanionStruct_UpdateContinuousBackupsInput_) Default() UpdateContinuousBackupsInput { + return Companion_UpdateContinuousBackupsInput_.Create_UpdateContinuousBackupsInput_(_dafny.EmptySeq.SetString(), Companion_PointInTimeRecoverySpecification_.Default()) +} + +func (_this UpdateContinuousBackupsInput) Dtor_TableName() _dafny.Sequence { + return _this.Get_().(UpdateContinuousBackupsInput_UpdateContinuousBackupsInput).TableName +} + +func (_this UpdateContinuousBackupsInput) Dtor_PointInTimeRecoverySpecification() PointInTimeRecoverySpecification { + return _this.Get_().(UpdateContinuousBackupsInput_UpdateContinuousBackupsInput).PointInTimeRecoverySpecification +} + +func (_this UpdateContinuousBackupsInput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case UpdateContinuousBackupsInput_UpdateContinuousBackupsInput: + { + return "ComAmazonawsDynamodbTypes.UpdateContinuousBackupsInput.UpdateContinuousBackupsInput" + "(" + _dafny.String(data.TableName) + ", " + _dafny.String(data.PointInTimeRecoverySpecification) + ")" + } + default: + { + return "" + } + } +} + +func (_this UpdateContinuousBackupsInput) Equals(other UpdateContinuousBackupsInput) bool { + switch data1 := _this.Get_().(type) { + case UpdateContinuousBackupsInput_UpdateContinuousBackupsInput: + { + data2, ok := other.Get_().(UpdateContinuousBackupsInput_UpdateContinuousBackupsInput) + return ok && data1.TableName.Equals(data2.TableName) && data1.PointInTimeRecoverySpecification.Equals(data2.PointInTimeRecoverySpecification) + } + default: + { + return false // unexpected + } + } +} + +func (_this UpdateContinuousBackupsInput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(UpdateContinuousBackupsInput) + return ok && _this.Equals(typed) +} + +func Type_UpdateContinuousBackupsInput_() _dafny.TypeDescriptor { + return type_UpdateContinuousBackupsInput_{} +} + +type type_UpdateContinuousBackupsInput_ struct { +} + +func (_this type_UpdateContinuousBackupsInput_) Default() interface{} { + return Companion_UpdateContinuousBackupsInput_.Default() +} + +func (_this type_UpdateContinuousBackupsInput_) String() string { + return "ComAmazonawsDynamodbTypes.UpdateContinuousBackupsInput" +} +func (_this UpdateContinuousBackupsInput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = UpdateContinuousBackupsInput{} + +// End of datatype UpdateContinuousBackupsInput + +// Definition of datatype UpdateContinuousBackupsOutput +type UpdateContinuousBackupsOutput struct { + Data_UpdateContinuousBackupsOutput_ +} + +func (_this UpdateContinuousBackupsOutput) Get_() Data_UpdateContinuousBackupsOutput_ { + return _this.Data_UpdateContinuousBackupsOutput_ +} + +type Data_UpdateContinuousBackupsOutput_ interface { + isUpdateContinuousBackupsOutput() +} + +type CompanionStruct_UpdateContinuousBackupsOutput_ struct { +} + +var Companion_UpdateContinuousBackupsOutput_ = CompanionStruct_UpdateContinuousBackupsOutput_{} + +type UpdateContinuousBackupsOutput_UpdateContinuousBackupsOutput struct { + ContinuousBackupsDescription m_Wrappers.Option +} + +func (UpdateContinuousBackupsOutput_UpdateContinuousBackupsOutput) isUpdateContinuousBackupsOutput() { +} + +func (CompanionStruct_UpdateContinuousBackupsOutput_) Create_UpdateContinuousBackupsOutput_(ContinuousBackupsDescription m_Wrappers.Option) UpdateContinuousBackupsOutput { + return UpdateContinuousBackupsOutput{UpdateContinuousBackupsOutput_UpdateContinuousBackupsOutput{ContinuousBackupsDescription}} +} + +func (_this UpdateContinuousBackupsOutput) Is_UpdateContinuousBackupsOutput() bool { + _, ok := _this.Get_().(UpdateContinuousBackupsOutput_UpdateContinuousBackupsOutput) + return ok +} + +func (CompanionStruct_UpdateContinuousBackupsOutput_) Default() UpdateContinuousBackupsOutput { + return Companion_UpdateContinuousBackupsOutput_.Create_UpdateContinuousBackupsOutput_(m_Wrappers.Companion_Option_.Default()) +} + +func (_this UpdateContinuousBackupsOutput) Dtor_ContinuousBackupsDescription() m_Wrappers.Option { + return _this.Get_().(UpdateContinuousBackupsOutput_UpdateContinuousBackupsOutput).ContinuousBackupsDescription +} + +func (_this UpdateContinuousBackupsOutput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case UpdateContinuousBackupsOutput_UpdateContinuousBackupsOutput: + { + return "ComAmazonawsDynamodbTypes.UpdateContinuousBackupsOutput.UpdateContinuousBackupsOutput" + "(" + _dafny.String(data.ContinuousBackupsDescription) + ")" + } + default: + { + return "" + } + } +} + +func (_this UpdateContinuousBackupsOutput) Equals(other UpdateContinuousBackupsOutput) bool { + switch data1 := _this.Get_().(type) { + case UpdateContinuousBackupsOutput_UpdateContinuousBackupsOutput: + { + data2, ok := other.Get_().(UpdateContinuousBackupsOutput_UpdateContinuousBackupsOutput) + return ok && data1.ContinuousBackupsDescription.Equals(data2.ContinuousBackupsDescription) + } + default: + { + return false // unexpected + } + } +} + +func (_this UpdateContinuousBackupsOutput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(UpdateContinuousBackupsOutput) + return ok && _this.Equals(typed) +} + +func Type_UpdateContinuousBackupsOutput_() _dafny.TypeDescriptor { + return type_UpdateContinuousBackupsOutput_{} +} + +type type_UpdateContinuousBackupsOutput_ struct { +} + +func (_this type_UpdateContinuousBackupsOutput_) Default() interface{} { + return Companion_UpdateContinuousBackupsOutput_.Default() +} + +func (_this type_UpdateContinuousBackupsOutput_) String() string { + return "ComAmazonawsDynamodbTypes.UpdateContinuousBackupsOutput" +} +func (_this UpdateContinuousBackupsOutput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = UpdateContinuousBackupsOutput{} + +// End of datatype UpdateContinuousBackupsOutput + +// Definition of datatype UpdateContributorInsightsInput +type UpdateContributorInsightsInput struct { + Data_UpdateContributorInsightsInput_ +} + +func (_this UpdateContributorInsightsInput) Get_() Data_UpdateContributorInsightsInput_ { + return _this.Data_UpdateContributorInsightsInput_ +} + +type Data_UpdateContributorInsightsInput_ interface { + isUpdateContributorInsightsInput() +} + +type CompanionStruct_UpdateContributorInsightsInput_ struct { +} + +var Companion_UpdateContributorInsightsInput_ = CompanionStruct_UpdateContributorInsightsInput_{} + +type UpdateContributorInsightsInput_UpdateContributorInsightsInput struct { + TableName _dafny.Sequence + IndexName m_Wrappers.Option + ContributorInsightsAction ContributorInsightsAction +} + +func (UpdateContributorInsightsInput_UpdateContributorInsightsInput) isUpdateContributorInsightsInput() { +} + +func (CompanionStruct_UpdateContributorInsightsInput_) Create_UpdateContributorInsightsInput_(TableName _dafny.Sequence, IndexName m_Wrappers.Option, ContributorInsightsAction ContributorInsightsAction) UpdateContributorInsightsInput { + return UpdateContributorInsightsInput{UpdateContributorInsightsInput_UpdateContributorInsightsInput{TableName, IndexName, ContributorInsightsAction}} +} + +func (_this UpdateContributorInsightsInput) Is_UpdateContributorInsightsInput() bool { + _, ok := _this.Get_().(UpdateContributorInsightsInput_UpdateContributorInsightsInput) + return ok +} + +func (CompanionStruct_UpdateContributorInsightsInput_) Default() UpdateContributorInsightsInput { + return Companion_UpdateContributorInsightsInput_.Create_UpdateContributorInsightsInput_(_dafny.EmptySeq.SetString(), m_Wrappers.Companion_Option_.Default(), Companion_ContributorInsightsAction_.Default()) +} + +func (_this UpdateContributorInsightsInput) Dtor_TableName() _dafny.Sequence { + return _this.Get_().(UpdateContributorInsightsInput_UpdateContributorInsightsInput).TableName +} + +func (_this UpdateContributorInsightsInput) Dtor_IndexName() m_Wrappers.Option { + return _this.Get_().(UpdateContributorInsightsInput_UpdateContributorInsightsInput).IndexName +} + +func (_this UpdateContributorInsightsInput) Dtor_ContributorInsightsAction() ContributorInsightsAction { + return _this.Get_().(UpdateContributorInsightsInput_UpdateContributorInsightsInput).ContributorInsightsAction +} + +func (_this UpdateContributorInsightsInput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case UpdateContributorInsightsInput_UpdateContributorInsightsInput: + { + return "ComAmazonawsDynamodbTypes.UpdateContributorInsightsInput.UpdateContributorInsightsInput" + "(" + _dafny.String(data.TableName) + ", " + _dafny.String(data.IndexName) + ", " + _dafny.String(data.ContributorInsightsAction) + ")" + } + default: + { + return "" + } + } +} + +func (_this UpdateContributorInsightsInput) Equals(other UpdateContributorInsightsInput) bool { + switch data1 := _this.Get_().(type) { + case UpdateContributorInsightsInput_UpdateContributorInsightsInput: + { + data2, ok := other.Get_().(UpdateContributorInsightsInput_UpdateContributorInsightsInput) + return ok && data1.TableName.Equals(data2.TableName) && data1.IndexName.Equals(data2.IndexName) && data1.ContributorInsightsAction.Equals(data2.ContributorInsightsAction) + } + default: + { + return false // unexpected + } + } +} + +func (_this UpdateContributorInsightsInput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(UpdateContributorInsightsInput) + return ok && _this.Equals(typed) +} + +func Type_UpdateContributorInsightsInput_() _dafny.TypeDescriptor { + return type_UpdateContributorInsightsInput_{} +} + +type type_UpdateContributorInsightsInput_ struct { +} + +func (_this type_UpdateContributorInsightsInput_) Default() interface{} { + return Companion_UpdateContributorInsightsInput_.Default() +} + +func (_this type_UpdateContributorInsightsInput_) String() string { + return "ComAmazonawsDynamodbTypes.UpdateContributorInsightsInput" +} +func (_this UpdateContributorInsightsInput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = UpdateContributorInsightsInput{} + +// End of datatype UpdateContributorInsightsInput + +// Definition of datatype UpdateContributorInsightsOutput +type UpdateContributorInsightsOutput struct { + Data_UpdateContributorInsightsOutput_ +} + +func (_this UpdateContributorInsightsOutput) Get_() Data_UpdateContributorInsightsOutput_ { + return _this.Data_UpdateContributorInsightsOutput_ +} + +type Data_UpdateContributorInsightsOutput_ interface { + isUpdateContributorInsightsOutput() +} + +type CompanionStruct_UpdateContributorInsightsOutput_ struct { +} + +var Companion_UpdateContributorInsightsOutput_ = CompanionStruct_UpdateContributorInsightsOutput_{} + +type UpdateContributorInsightsOutput_UpdateContributorInsightsOutput struct { + TableName m_Wrappers.Option + IndexName m_Wrappers.Option + ContributorInsightsStatus m_Wrappers.Option +} + +func (UpdateContributorInsightsOutput_UpdateContributorInsightsOutput) isUpdateContributorInsightsOutput() { +} + +func (CompanionStruct_UpdateContributorInsightsOutput_) Create_UpdateContributorInsightsOutput_(TableName m_Wrappers.Option, IndexName m_Wrappers.Option, ContributorInsightsStatus m_Wrappers.Option) UpdateContributorInsightsOutput { + return UpdateContributorInsightsOutput{UpdateContributorInsightsOutput_UpdateContributorInsightsOutput{TableName, IndexName, ContributorInsightsStatus}} +} + +func (_this UpdateContributorInsightsOutput) Is_UpdateContributorInsightsOutput() bool { + _, ok := _this.Get_().(UpdateContributorInsightsOutput_UpdateContributorInsightsOutput) + return ok +} + +func (CompanionStruct_UpdateContributorInsightsOutput_) Default() UpdateContributorInsightsOutput { + return Companion_UpdateContributorInsightsOutput_.Create_UpdateContributorInsightsOutput_(m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this UpdateContributorInsightsOutput) Dtor_TableName() m_Wrappers.Option { + return _this.Get_().(UpdateContributorInsightsOutput_UpdateContributorInsightsOutput).TableName +} + +func (_this UpdateContributorInsightsOutput) Dtor_IndexName() m_Wrappers.Option { + return _this.Get_().(UpdateContributorInsightsOutput_UpdateContributorInsightsOutput).IndexName +} + +func (_this UpdateContributorInsightsOutput) Dtor_ContributorInsightsStatus() m_Wrappers.Option { + return _this.Get_().(UpdateContributorInsightsOutput_UpdateContributorInsightsOutput).ContributorInsightsStatus +} + +func (_this UpdateContributorInsightsOutput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case UpdateContributorInsightsOutput_UpdateContributorInsightsOutput: + { + return "ComAmazonawsDynamodbTypes.UpdateContributorInsightsOutput.UpdateContributorInsightsOutput" + "(" + _dafny.String(data.TableName) + ", " + _dafny.String(data.IndexName) + ", " + _dafny.String(data.ContributorInsightsStatus) + ")" + } + default: + { + return "" + } + } +} + +func (_this UpdateContributorInsightsOutput) Equals(other UpdateContributorInsightsOutput) bool { + switch data1 := _this.Get_().(type) { + case UpdateContributorInsightsOutput_UpdateContributorInsightsOutput: + { + data2, ok := other.Get_().(UpdateContributorInsightsOutput_UpdateContributorInsightsOutput) + return ok && data1.TableName.Equals(data2.TableName) && data1.IndexName.Equals(data2.IndexName) && data1.ContributorInsightsStatus.Equals(data2.ContributorInsightsStatus) + } + default: + { + return false // unexpected + } + } +} + +func (_this UpdateContributorInsightsOutput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(UpdateContributorInsightsOutput) + return ok && _this.Equals(typed) +} + +func Type_UpdateContributorInsightsOutput_() _dafny.TypeDescriptor { + return type_UpdateContributorInsightsOutput_{} +} + +type type_UpdateContributorInsightsOutput_ struct { +} + +func (_this type_UpdateContributorInsightsOutput_) Default() interface{} { + return Companion_UpdateContributorInsightsOutput_.Default() +} + +func (_this type_UpdateContributorInsightsOutput_) String() string { + return "ComAmazonawsDynamodbTypes.UpdateContributorInsightsOutput" +} +func (_this UpdateContributorInsightsOutput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = UpdateContributorInsightsOutput{} + +// End of datatype UpdateContributorInsightsOutput + +// Definition of datatype UpdateGlobalSecondaryIndexAction +type UpdateGlobalSecondaryIndexAction struct { + Data_UpdateGlobalSecondaryIndexAction_ +} + +func (_this UpdateGlobalSecondaryIndexAction) Get_() Data_UpdateGlobalSecondaryIndexAction_ { + return _this.Data_UpdateGlobalSecondaryIndexAction_ +} + +type Data_UpdateGlobalSecondaryIndexAction_ interface { + isUpdateGlobalSecondaryIndexAction() +} + +type CompanionStruct_UpdateGlobalSecondaryIndexAction_ struct { +} + +var Companion_UpdateGlobalSecondaryIndexAction_ = CompanionStruct_UpdateGlobalSecondaryIndexAction_{} + +type UpdateGlobalSecondaryIndexAction_UpdateGlobalSecondaryIndexAction struct { + IndexName _dafny.Sequence + ProvisionedThroughput m_Wrappers.Option + OnDemandThroughput m_Wrappers.Option +} + +func (UpdateGlobalSecondaryIndexAction_UpdateGlobalSecondaryIndexAction) isUpdateGlobalSecondaryIndexAction() { +} + +func (CompanionStruct_UpdateGlobalSecondaryIndexAction_) Create_UpdateGlobalSecondaryIndexAction_(IndexName _dafny.Sequence, ProvisionedThroughput m_Wrappers.Option, OnDemandThroughput m_Wrappers.Option) UpdateGlobalSecondaryIndexAction { + return UpdateGlobalSecondaryIndexAction{UpdateGlobalSecondaryIndexAction_UpdateGlobalSecondaryIndexAction{IndexName, ProvisionedThroughput, OnDemandThroughput}} +} + +func (_this UpdateGlobalSecondaryIndexAction) Is_UpdateGlobalSecondaryIndexAction() bool { + _, ok := _this.Get_().(UpdateGlobalSecondaryIndexAction_UpdateGlobalSecondaryIndexAction) + return ok +} + +func (CompanionStruct_UpdateGlobalSecondaryIndexAction_) Default() UpdateGlobalSecondaryIndexAction { + return Companion_UpdateGlobalSecondaryIndexAction_.Create_UpdateGlobalSecondaryIndexAction_(_dafny.EmptySeq.SetString(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this UpdateGlobalSecondaryIndexAction) Dtor_IndexName() _dafny.Sequence { + return _this.Get_().(UpdateGlobalSecondaryIndexAction_UpdateGlobalSecondaryIndexAction).IndexName +} + +func (_this UpdateGlobalSecondaryIndexAction) Dtor_ProvisionedThroughput() m_Wrappers.Option { + return _this.Get_().(UpdateGlobalSecondaryIndexAction_UpdateGlobalSecondaryIndexAction).ProvisionedThroughput +} + +func (_this UpdateGlobalSecondaryIndexAction) Dtor_OnDemandThroughput() m_Wrappers.Option { + return _this.Get_().(UpdateGlobalSecondaryIndexAction_UpdateGlobalSecondaryIndexAction).OnDemandThroughput +} + +func (_this UpdateGlobalSecondaryIndexAction) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case UpdateGlobalSecondaryIndexAction_UpdateGlobalSecondaryIndexAction: + { + return "ComAmazonawsDynamodbTypes.UpdateGlobalSecondaryIndexAction.UpdateGlobalSecondaryIndexAction" + "(" + _dafny.String(data.IndexName) + ", " + _dafny.String(data.ProvisionedThroughput) + ", " + _dafny.String(data.OnDemandThroughput) + ")" + } + default: + { + return "" + } + } +} + +func (_this UpdateGlobalSecondaryIndexAction) Equals(other UpdateGlobalSecondaryIndexAction) bool { + switch data1 := _this.Get_().(type) { + case UpdateGlobalSecondaryIndexAction_UpdateGlobalSecondaryIndexAction: + { + data2, ok := other.Get_().(UpdateGlobalSecondaryIndexAction_UpdateGlobalSecondaryIndexAction) + return ok && data1.IndexName.Equals(data2.IndexName) && data1.ProvisionedThroughput.Equals(data2.ProvisionedThroughput) && data1.OnDemandThroughput.Equals(data2.OnDemandThroughput) + } + default: + { + return false // unexpected + } + } +} + +func (_this UpdateGlobalSecondaryIndexAction) EqualsGeneric(other interface{}) bool { + typed, ok := other.(UpdateGlobalSecondaryIndexAction) + return ok && _this.Equals(typed) +} + +func Type_UpdateGlobalSecondaryIndexAction_() _dafny.TypeDescriptor { + return type_UpdateGlobalSecondaryIndexAction_{} +} + +type type_UpdateGlobalSecondaryIndexAction_ struct { +} + +func (_this type_UpdateGlobalSecondaryIndexAction_) Default() interface{} { + return Companion_UpdateGlobalSecondaryIndexAction_.Default() +} + +func (_this type_UpdateGlobalSecondaryIndexAction_) String() string { + return "ComAmazonawsDynamodbTypes.UpdateGlobalSecondaryIndexAction" +} +func (_this UpdateGlobalSecondaryIndexAction) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = UpdateGlobalSecondaryIndexAction{} + +// End of datatype UpdateGlobalSecondaryIndexAction + +// Definition of datatype UpdateGlobalTableInput +type UpdateGlobalTableInput struct { + Data_UpdateGlobalTableInput_ +} + +func (_this UpdateGlobalTableInput) Get_() Data_UpdateGlobalTableInput_ { + return _this.Data_UpdateGlobalTableInput_ +} + +type Data_UpdateGlobalTableInput_ interface { + isUpdateGlobalTableInput() +} + +type CompanionStruct_UpdateGlobalTableInput_ struct { +} + +var Companion_UpdateGlobalTableInput_ = CompanionStruct_UpdateGlobalTableInput_{} + +type UpdateGlobalTableInput_UpdateGlobalTableInput struct { + GlobalTableName _dafny.Sequence + ReplicaUpdates _dafny.Sequence +} + +func (UpdateGlobalTableInput_UpdateGlobalTableInput) isUpdateGlobalTableInput() {} + +func (CompanionStruct_UpdateGlobalTableInput_) Create_UpdateGlobalTableInput_(GlobalTableName _dafny.Sequence, ReplicaUpdates _dafny.Sequence) UpdateGlobalTableInput { + return UpdateGlobalTableInput{UpdateGlobalTableInput_UpdateGlobalTableInput{GlobalTableName, ReplicaUpdates}} +} + +func (_this UpdateGlobalTableInput) Is_UpdateGlobalTableInput() bool { + _, ok := _this.Get_().(UpdateGlobalTableInput_UpdateGlobalTableInput) + return ok +} + +func (CompanionStruct_UpdateGlobalTableInput_) Default() UpdateGlobalTableInput { + return Companion_UpdateGlobalTableInput_.Create_UpdateGlobalTableInput_(_dafny.EmptySeq.SetString(), _dafny.EmptySeq) +} + +func (_this UpdateGlobalTableInput) Dtor_GlobalTableName() _dafny.Sequence { + return _this.Get_().(UpdateGlobalTableInput_UpdateGlobalTableInput).GlobalTableName +} + +func (_this UpdateGlobalTableInput) Dtor_ReplicaUpdates() _dafny.Sequence { + return _this.Get_().(UpdateGlobalTableInput_UpdateGlobalTableInput).ReplicaUpdates +} + +func (_this UpdateGlobalTableInput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case UpdateGlobalTableInput_UpdateGlobalTableInput: + { + return "ComAmazonawsDynamodbTypes.UpdateGlobalTableInput.UpdateGlobalTableInput" + "(" + _dafny.String(data.GlobalTableName) + ", " + _dafny.String(data.ReplicaUpdates) + ")" + } + default: + { + return "" + } + } +} + +func (_this UpdateGlobalTableInput) Equals(other UpdateGlobalTableInput) bool { + switch data1 := _this.Get_().(type) { + case UpdateGlobalTableInput_UpdateGlobalTableInput: + { + data2, ok := other.Get_().(UpdateGlobalTableInput_UpdateGlobalTableInput) + return ok && data1.GlobalTableName.Equals(data2.GlobalTableName) && data1.ReplicaUpdates.Equals(data2.ReplicaUpdates) + } + default: + { + return false // unexpected + } + } +} + +func (_this UpdateGlobalTableInput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(UpdateGlobalTableInput) + return ok && _this.Equals(typed) +} + +func Type_UpdateGlobalTableInput_() _dafny.TypeDescriptor { + return type_UpdateGlobalTableInput_{} +} + +type type_UpdateGlobalTableInput_ struct { +} + +func (_this type_UpdateGlobalTableInput_) Default() interface{} { + return Companion_UpdateGlobalTableInput_.Default() +} + +func (_this type_UpdateGlobalTableInput_) String() string { + return "ComAmazonawsDynamodbTypes.UpdateGlobalTableInput" +} +func (_this UpdateGlobalTableInput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = UpdateGlobalTableInput{} + +// End of datatype UpdateGlobalTableInput + +// Definition of datatype UpdateGlobalTableOutput +type UpdateGlobalTableOutput struct { + Data_UpdateGlobalTableOutput_ +} + +func (_this UpdateGlobalTableOutput) Get_() Data_UpdateGlobalTableOutput_ { + return _this.Data_UpdateGlobalTableOutput_ +} + +type Data_UpdateGlobalTableOutput_ interface { + isUpdateGlobalTableOutput() +} + +type CompanionStruct_UpdateGlobalTableOutput_ struct { +} + +var Companion_UpdateGlobalTableOutput_ = CompanionStruct_UpdateGlobalTableOutput_{} + +type UpdateGlobalTableOutput_UpdateGlobalTableOutput struct { + GlobalTableDescription m_Wrappers.Option +} + +func (UpdateGlobalTableOutput_UpdateGlobalTableOutput) isUpdateGlobalTableOutput() {} + +func (CompanionStruct_UpdateGlobalTableOutput_) Create_UpdateGlobalTableOutput_(GlobalTableDescription m_Wrappers.Option) UpdateGlobalTableOutput { + return UpdateGlobalTableOutput{UpdateGlobalTableOutput_UpdateGlobalTableOutput{GlobalTableDescription}} +} + +func (_this UpdateGlobalTableOutput) Is_UpdateGlobalTableOutput() bool { + _, ok := _this.Get_().(UpdateGlobalTableOutput_UpdateGlobalTableOutput) + return ok +} + +func (CompanionStruct_UpdateGlobalTableOutput_) Default() UpdateGlobalTableOutput { + return Companion_UpdateGlobalTableOutput_.Create_UpdateGlobalTableOutput_(m_Wrappers.Companion_Option_.Default()) +} + +func (_this UpdateGlobalTableOutput) Dtor_GlobalTableDescription() m_Wrappers.Option { + return _this.Get_().(UpdateGlobalTableOutput_UpdateGlobalTableOutput).GlobalTableDescription +} + +func (_this UpdateGlobalTableOutput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case UpdateGlobalTableOutput_UpdateGlobalTableOutput: + { + return "ComAmazonawsDynamodbTypes.UpdateGlobalTableOutput.UpdateGlobalTableOutput" + "(" + _dafny.String(data.GlobalTableDescription) + ")" + } + default: + { + return "" + } + } +} + +func (_this UpdateGlobalTableOutput) Equals(other UpdateGlobalTableOutput) bool { + switch data1 := _this.Get_().(type) { + case UpdateGlobalTableOutput_UpdateGlobalTableOutput: + { + data2, ok := other.Get_().(UpdateGlobalTableOutput_UpdateGlobalTableOutput) + return ok && data1.GlobalTableDescription.Equals(data2.GlobalTableDescription) + } + default: + { + return false // unexpected + } + } +} + +func (_this UpdateGlobalTableOutput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(UpdateGlobalTableOutput) + return ok && _this.Equals(typed) +} + +func Type_UpdateGlobalTableOutput_() _dafny.TypeDescriptor { + return type_UpdateGlobalTableOutput_{} +} + +type type_UpdateGlobalTableOutput_ struct { +} + +func (_this type_UpdateGlobalTableOutput_) Default() interface{} { + return Companion_UpdateGlobalTableOutput_.Default() +} + +func (_this type_UpdateGlobalTableOutput_) String() string { + return "ComAmazonawsDynamodbTypes.UpdateGlobalTableOutput" +} +func (_this UpdateGlobalTableOutput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = UpdateGlobalTableOutput{} + +// End of datatype UpdateGlobalTableOutput + +// Definition of datatype UpdateGlobalTableSettingsInput +type UpdateGlobalTableSettingsInput struct { + Data_UpdateGlobalTableSettingsInput_ +} + +func (_this UpdateGlobalTableSettingsInput) Get_() Data_UpdateGlobalTableSettingsInput_ { + return _this.Data_UpdateGlobalTableSettingsInput_ +} + +type Data_UpdateGlobalTableSettingsInput_ interface { + isUpdateGlobalTableSettingsInput() +} + +type CompanionStruct_UpdateGlobalTableSettingsInput_ struct { +} + +var Companion_UpdateGlobalTableSettingsInput_ = CompanionStruct_UpdateGlobalTableSettingsInput_{} + +type UpdateGlobalTableSettingsInput_UpdateGlobalTableSettingsInput struct { + GlobalTableName _dafny.Sequence + GlobalTableBillingMode m_Wrappers.Option + GlobalTableProvisionedWriteCapacityUnits m_Wrappers.Option + GlobalTableProvisionedWriteCapacityAutoScalingSettingsUpdate m_Wrappers.Option + GlobalTableGlobalSecondaryIndexSettingsUpdate m_Wrappers.Option + ReplicaSettingsUpdate m_Wrappers.Option +} + +func (UpdateGlobalTableSettingsInput_UpdateGlobalTableSettingsInput) isUpdateGlobalTableSettingsInput() { +} + +func (CompanionStruct_UpdateGlobalTableSettingsInput_) Create_UpdateGlobalTableSettingsInput_(GlobalTableName _dafny.Sequence, GlobalTableBillingMode m_Wrappers.Option, GlobalTableProvisionedWriteCapacityUnits m_Wrappers.Option, GlobalTableProvisionedWriteCapacityAutoScalingSettingsUpdate m_Wrappers.Option, GlobalTableGlobalSecondaryIndexSettingsUpdate m_Wrappers.Option, ReplicaSettingsUpdate m_Wrappers.Option) UpdateGlobalTableSettingsInput { + return UpdateGlobalTableSettingsInput{UpdateGlobalTableSettingsInput_UpdateGlobalTableSettingsInput{GlobalTableName, GlobalTableBillingMode, GlobalTableProvisionedWriteCapacityUnits, GlobalTableProvisionedWriteCapacityAutoScalingSettingsUpdate, GlobalTableGlobalSecondaryIndexSettingsUpdate, ReplicaSettingsUpdate}} +} + +func (_this UpdateGlobalTableSettingsInput) Is_UpdateGlobalTableSettingsInput() bool { + _, ok := _this.Get_().(UpdateGlobalTableSettingsInput_UpdateGlobalTableSettingsInput) + return ok +} + +func (CompanionStruct_UpdateGlobalTableSettingsInput_) Default() UpdateGlobalTableSettingsInput { + return Companion_UpdateGlobalTableSettingsInput_.Create_UpdateGlobalTableSettingsInput_(_dafny.EmptySeq.SetString(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this UpdateGlobalTableSettingsInput) Dtor_GlobalTableName() _dafny.Sequence { + return _this.Get_().(UpdateGlobalTableSettingsInput_UpdateGlobalTableSettingsInput).GlobalTableName +} + +func (_this UpdateGlobalTableSettingsInput) Dtor_GlobalTableBillingMode() m_Wrappers.Option { + return _this.Get_().(UpdateGlobalTableSettingsInput_UpdateGlobalTableSettingsInput).GlobalTableBillingMode +} + +func (_this UpdateGlobalTableSettingsInput) Dtor_GlobalTableProvisionedWriteCapacityUnits() m_Wrappers.Option { + return _this.Get_().(UpdateGlobalTableSettingsInput_UpdateGlobalTableSettingsInput).GlobalTableProvisionedWriteCapacityUnits +} + +func (_this UpdateGlobalTableSettingsInput) Dtor_GlobalTableProvisionedWriteCapacityAutoScalingSettingsUpdate() m_Wrappers.Option { + return _this.Get_().(UpdateGlobalTableSettingsInput_UpdateGlobalTableSettingsInput).GlobalTableProvisionedWriteCapacityAutoScalingSettingsUpdate +} + +func (_this UpdateGlobalTableSettingsInput) Dtor_GlobalTableGlobalSecondaryIndexSettingsUpdate() m_Wrappers.Option { + return _this.Get_().(UpdateGlobalTableSettingsInput_UpdateGlobalTableSettingsInput).GlobalTableGlobalSecondaryIndexSettingsUpdate +} + +func (_this UpdateGlobalTableSettingsInput) Dtor_ReplicaSettingsUpdate() m_Wrappers.Option { + return _this.Get_().(UpdateGlobalTableSettingsInput_UpdateGlobalTableSettingsInput).ReplicaSettingsUpdate +} + +func (_this UpdateGlobalTableSettingsInput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case UpdateGlobalTableSettingsInput_UpdateGlobalTableSettingsInput: + { + return "ComAmazonawsDynamodbTypes.UpdateGlobalTableSettingsInput.UpdateGlobalTableSettingsInput" + "(" + _dafny.String(data.GlobalTableName) + ", " + _dafny.String(data.GlobalTableBillingMode) + ", " + _dafny.String(data.GlobalTableProvisionedWriteCapacityUnits) + ", " + _dafny.String(data.GlobalTableProvisionedWriteCapacityAutoScalingSettingsUpdate) + ", " + _dafny.String(data.GlobalTableGlobalSecondaryIndexSettingsUpdate) + ", " + _dafny.String(data.ReplicaSettingsUpdate) + ")" + } + default: + { + return "" + } + } +} + +func (_this UpdateGlobalTableSettingsInput) Equals(other UpdateGlobalTableSettingsInput) bool { + switch data1 := _this.Get_().(type) { + case UpdateGlobalTableSettingsInput_UpdateGlobalTableSettingsInput: + { + data2, ok := other.Get_().(UpdateGlobalTableSettingsInput_UpdateGlobalTableSettingsInput) + return ok && data1.GlobalTableName.Equals(data2.GlobalTableName) && data1.GlobalTableBillingMode.Equals(data2.GlobalTableBillingMode) && data1.GlobalTableProvisionedWriteCapacityUnits.Equals(data2.GlobalTableProvisionedWriteCapacityUnits) && data1.GlobalTableProvisionedWriteCapacityAutoScalingSettingsUpdate.Equals(data2.GlobalTableProvisionedWriteCapacityAutoScalingSettingsUpdate) && data1.GlobalTableGlobalSecondaryIndexSettingsUpdate.Equals(data2.GlobalTableGlobalSecondaryIndexSettingsUpdate) && data1.ReplicaSettingsUpdate.Equals(data2.ReplicaSettingsUpdate) + } + default: + { + return false // unexpected + } + } +} + +func (_this UpdateGlobalTableSettingsInput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(UpdateGlobalTableSettingsInput) + return ok && _this.Equals(typed) +} + +func Type_UpdateGlobalTableSettingsInput_() _dafny.TypeDescriptor { + return type_UpdateGlobalTableSettingsInput_{} +} + +type type_UpdateGlobalTableSettingsInput_ struct { +} + +func (_this type_UpdateGlobalTableSettingsInput_) Default() interface{} { + return Companion_UpdateGlobalTableSettingsInput_.Default() +} + +func (_this type_UpdateGlobalTableSettingsInput_) String() string { + return "ComAmazonawsDynamodbTypes.UpdateGlobalTableSettingsInput" +} +func (_this UpdateGlobalTableSettingsInput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = UpdateGlobalTableSettingsInput{} + +// End of datatype UpdateGlobalTableSettingsInput + +// Definition of datatype UpdateGlobalTableSettingsOutput +type UpdateGlobalTableSettingsOutput struct { + Data_UpdateGlobalTableSettingsOutput_ +} + +func (_this UpdateGlobalTableSettingsOutput) Get_() Data_UpdateGlobalTableSettingsOutput_ { + return _this.Data_UpdateGlobalTableSettingsOutput_ +} + +type Data_UpdateGlobalTableSettingsOutput_ interface { + isUpdateGlobalTableSettingsOutput() +} + +type CompanionStruct_UpdateGlobalTableSettingsOutput_ struct { +} + +var Companion_UpdateGlobalTableSettingsOutput_ = CompanionStruct_UpdateGlobalTableSettingsOutput_{} + +type UpdateGlobalTableSettingsOutput_UpdateGlobalTableSettingsOutput struct { + GlobalTableName m_Wrappers.Option + ReplicaSettings m_Wrappers.Option +} + +func (UpdateGlobalTableSettingsOutput_UpdateGlobalTableSettingsOutput) isUpdateGlobalTableSettingsOutput() { +} + +func (CompanionStruct_UpdateGlobalTableSettingsOutput_) Create_UpdateGlobalTableSettingsOutput_(GlobalTableName m_Wrappers.Option, ReplicaSettings m_Wrappers.Option) UpdateGlobalTableSettingsOutput { + return UpdateGlobalTableSettingsOutput{UpdateGlobalTableSettingsOutput_UpdateGlobalTableSettingsOutput{GlobalTableName, ReplicaSettings}} +} + +func (_this UpdateGlobalTableSettingsOutput) Is_UpdateGlobalTableSettingsOutput() bool { + _, ok := _this.Get_().(UpdateGlobalTableSettingsOutput_UpdateGlobalTableSettingsOutput) + return ok +} + +func (CompanionStruct_UpdateGlobalTableSettingsOutput_) Default() UpdateGlobalTableSettingsOutput { + return Companion_UpdateGlobalTableSettingsOutput_.Create_UpdateGlobalTableSettingsOutput_(m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this UpdateGlobalTableSettingsOutput) Dtor_GlobalTableName() m_Wrappers.Option { + return _this.Get_().(UpdateGlobalTableSettingsOutput_UpdateGlobalTableSettingsOutput).GlobalTableName +} + +func (_this UpdateGlobalTableSettingsOutput) Dtor_ReplicaSettings() m_Wrappers.Option { + return _this.Get_().(UpdateGlobalTableSettingsOutput_UpdateGlobalTableSettingsOutput).ReplicaSettings +} + +func (_this UpdateGlobalTableSettingsOutput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case UpdateGlobalTableSettingsOutput_UpdateGlobalTableSettingsOutput: + { + return "ComAmazonawsDynamodbTypes.UpdateGlobalTableSettingsOutput.UpdateGlobalTableSettingsOutput" + "(" + _dafny.String(data.GlobalTableName) + ", " + _dafny.String(data.ReplicaSettings) + ")" + } + default: + { + return "" + } + } +} + +func (_this UpdateGlobalTableSettingsOutput) Equals(other UpdateGlobalTableSettingsOutput) bool { + switch data1 := _this.Get_().(type) { + case UpdateGlobalTableSettingsOutput_UpdateGlobalTableSettingsOutput: + { + data2, ok := other.Get_().(UpdateGlobalTableSettingsOutput_UpdateGlobalTableSettingsOutput) + return ok && data1.GlobalTableName.Equals(data2.GlobalTableName) && data1.ReplicaSettings.Equals(data2.ReplicaSettings) + } + default: + { + return false // unexpected + } + } +} + +func (_this UpdateGlobalTableSettingsOutput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(UpdateGlobalTableSettingsOutput) + return ok && _this.Equals(typed) +} + +func Type_UpdateGlobalTableSettingsOutput_() _dafny.TypeDescriptor { + return type_UpdateGlobalTableSettingsOutput_{} +} + +type type_UpdateGlobalTableSettingsOutput_ struct { +} + +func (_this type_UpdateGlobalTableSettingsOutput_) Default() interface{} { + return Companion_UpdateGlobalTableSettingsOutput_.Default() +} + +func (_this type_UpdateGlobalTableSettingsOutput_) String() string { + return "ComAmazonawsDynamodbTypes.UpdateGlobalTableSettingsOutput" +} +func (_this UpdateGlobalTableSettingsOutput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = UpdateGlobalTableSettingsOutput{} + +// End of datatype UpdateGlobalTableSettingsOutput + +// Definition of datatype UpdateItemInput +type UpdateItemInput struct { + Data_UpdateItemInput_ +} + +func (_this UpdateItemInput) Get_() Data_UpdateItemInput_ { + return _this.Data_UpdateItemInput_ +} + +type Data_UpdateItemInput_ interface { + isUpdateItemInput() +} + +type CompanionStruct_UpdateItemInput_ struct { +} + +var Companion_UpdateItemInput_ = CompanionStruct_UpdateItemInput_{} + +type UpdateItemInput_UpdateItemInput struct { + TableName _dafny.Sequence + Key _dafny.Map + AttributeUpdates m_Wrappers.Option + Expected m_Wrappers.Option + ConditionalOperator m_Wrappers.Option + ReturnValues m_Wrappers.Option + ReturnConsumedCapacity m_Wrappers.Option + ReturnItemCollectionMetrics m_Wrappers.Option + UpdateExpression m_Wrappers.Option + ConditionExpression m_Wrappers.Option + ExpressionAttributeNames m_Wrappers.Option + ExpressionAttributeValues m_Wrappers.Option + ReturnValuesOnConditionCheckFailure m_Wrappers.Option +} + +func (UpdateItemInput_UpdateItemInput) isUpdateItemInput() {} + +func (CompanionStruct_UpdateItemInput_) Create_UpdateItemInput_(TableName _dafny.Sequence, Key _dafny.Map, AttributeUpdates m_Wrappers.Option, Expected m_Wrappers.Option, ConditionalOperator m_Wrappers.Option, ReturnValues m_Wrappers.Option, ReturnConsumedCapacity m_Wrappers.Option, ReturnItemCollectionMetrics m_Wrappers.Option, UpdateExpression m_Wrappers.Option, ConditionExpression m_Wrappers.Option, ExpressionAttributeNames m_Wrappers.Option, ExpressionAttributeValues m_Wrappers.Option, ReturnValuesOnConditionCheckFailure m_Wrappers.Option) UpdateItemInput { + return UpdateItemInput{UpdateItemInput_UpdateItemInput{TableName, Key, AttributeUpdates, Expected, ConditionalOperator, ReturnValues, ReturnConsumedCapacity, ReturnItemCollectionMetrics, UpdateExpression, ConditionExpression, ExpressionAttributeNames, ExpressionAttributeValues, ReturnValuesOnConditionCheckFailure}} +} + +func (_this UpdateItemInput) Is_UpdateItemInput() bool { + _, ok := _this.Get_().(UpdateItemInput_UpdateItemInput) + return ok +} + +func (CompanionStruct_UpdateItemInput_) Default() UpdateItemInput { + return Companion_UpdateItemInput_.Create_UpdateItemInput_(_dafny.EmptySeq.SetString(), _dafny.EmptyMap, m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this UpdateItemInput) Dtor_TableName() _dafny.Sequence { + return _this.Get_().(UpdateItemInput_UpdateItemInput).TableName +} + +func (_this UpdateItemInput) Dtor_Key() _dafny.Map { + return _this.Get_().(UpdateItemInput_UpdateItemInput).Key +} + +func (_this UpdateItemInput) Dtor_AttributeUpdates() m_Wrappers.Option { + return _this.Get_().(UpdateItemInput_UpdateItemInput).AttributeUpdates +} + +func (_this UpdateItemInput) Dtor_Expected() m_Wrappers.Option { + return _this.Get_().(UpdateItemInput_UpdateItemInput).Expected +} + +func (_this UpdateItemInput) Dtor_ConditionalOperator() m_Wrappers.Option { + return _this.Get_().(UpdateItemInput_UpdateItemInput).ConditionalOperator +} + +func (_this UpdateItemInput) Dtor_ReturnValues() m_Wrappers.Option { + return _this.Get_().(UpdateItemInput_UpdateItemInput).ReturnValues +} + +func (_this UpdateItemInput) Dtor_ReturnConsumedCapacity() m_Wrappers.Option { + return _this.Get_().(UpdateItemInput_UpdateItemInput).ReturnConsumedCapacity +} + +func (_this UpdateItemInput) Dtor_ReturnItemCollectionMetrics() m_Wrappers.Option { + return _this.Get_().(UpdateItemInput_UpdateItemInput).ReturnItemCollectionMetrics +} + +func (_this UpdateItemInput) Dtor_UpdateExpression() m_Wrappers.Option { + return _this.Get_().(UpdateItemInput_UpdateItemInput).UpdateExpression +} + +func (_this UpdateItemInput) Dtor_ConditionExpression() m_Wrappers.Option { + return _this.Get_().(UpdateItemInput_UpdateItemInput).ConditionExpression +} + +func (_this UpdateItemInput) Dtor_ExpressionAttributeNames() m_Wrappers.Option { + return _this.Get_().(UpdateItemInput_UpdateItemInput).ExpressionAttributeNames +} + +func (_this UpdateItemInput) Dtor_ExpressionAttributeValues() m_Wrappers.Option { + return _this.Get_().(UpdateItemInput_UpdateItemInput).ExpressionAttributeValues +} + +func (_this UpdateItemInput) Dtor_ReturnValuesOnConditionCheckFailure() m_Wrappers.Option { + return _this.Get_().(UpdateItemInput_UpdateItemInput).ReturnValuesOnConditionCheckFailure +} + +func (_this UpdateItemInput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case UpdateItemInput_UpdateItemInput: + { + return "ComAmazonawsDynamodbTypes.UpdateItemInput.UpdateItemInput" + "(" + _dafny.String(data.TableName) + ", " + _dafny.String(data.Key) + ", " + _dafny.String(data.AttributeUpdates) + ", " + _dafny.String(data.Expected) + ", " + _dafny.String(data.ConditionalOperator) + ", " + _dafny.String(data.ReturnValues) + ", " + _dafny.String(data.ReturnConsumedCapacity) + ", " + _dafny.String(data.ReturnItemCollectionMetrics) + ", " + _dafny.String(data.UpdateExpression) + ", " + _dafny.String(data.ConditionExpression) + ", " + _dafny.String(data.ExpressionAttributeNames) + ", " + _dafny.String(data.ExpressionAttributeValues) + ", " + _dafny.String(data.ReturnValuesOnConditionCheckFailure) + ")" + } + default: + { + return "" + } + } +} + +func (_this UpdateItemInput) Equals(other UpdateItemInput) bool { + switch data1 := _this.Get_().(type) { + case UpdateItemInput_UpdateItemInput: + { + data2, ok := other.Get_().(UpdateItemInput_UpdateItemInput) + return ok && data1.TableName.Equals(data2.TableName) && data1.Key.Equals(data2.Key) && data1.AttributeUpdates.Equals(data2.AttributeUpdates) && data1.Expected.Equals(data2.Expected) && data1.ConditionalOperator.Equals(data2.ConditionalOperator) && data1.ReturnValues.Equals(data2.ReturnValues) && data1.ReturnConsumedCapacity.Equals(data2.ReturnConsumedCapacity) && data1.ReturnItemCollectionMetrics.Equals(data2.ReturnItemCollectionMetrics) && data1.UpdateExpression.Equals(data2.UpdateExpression) && data1.ConditionExpression.Equals(data2.ConditionExpression) && data1.ExpressionAttributeNames.Equals(data2.ExpressionAttributeNames) && data1.ExpressionAttributeValues.Equals(data2.ExpressionAttributeValues) && data1.ReturnValuesOnConditionCheckFailure.Equals(data2.ReturnValuesOnConditionCheckFailure) + } + default: + { + return false // unexpected + } + } +} + +func (_this UpdateItemInput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(UpdateItemInput) + return ok && _this.Equals(typed) +} + +func Type_UpdateItemInput_() _dafny.TypeDescriptor { + return type_UpdateItemInput_{} +} + +type type_UpdateItemInput_ struct { +} + +func (_this type_UpdateItemInput_) Default() interface{} { + return Companion_UpdateItemInput_.Default() +} + +func (_this type_UpdateItemInput_) String() string { + return "ComAmazonawsDynamodbTypes.UpdateItemInput" +} +func (_this UpdateItemInput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = UpdateItemInput{} + +// End of datatype UpdateItemInput + +// Definition of datatype UpdateItemOutput +type UpdateItemOutput struct { + Data_UpdateItemOutput_ +} + +func (_this UpdateItemOutput) Get_() Data_UpdateItemOutput_ { + return _this.Data_UpdateItemOutput_ +} + +type Data_UpdateItemOutput_ interface { + isUpdateItemOutput() +} + +type CompanionStruct_UpdateItemOutput_ struct { +} + +var Companion_UpdateItemOutput_ = CompanionStruct_UpdateItemOutput_{} + +type UpdateItemOutput_UpdateItemOutput struct { + Attributes m_Wrappers.Option + ConsumedCapacity m_Wrappers.Option + ItemCollectionMetrics m_Wrappers.Option +} + +func (UpdateItemOutput_UpdateItemOutput) isUpdateItemOutput() {} + +func (CompanionStruct_UpdateItemOutput_) Create_UpdateItemOutput_(Attributes m_Wrappers.Option, ConsumedCapacity m_Wrappers.Option, ItemCollectionMetrics m_Wrappers.Option) UpdateItemOutput { + return UpdateItemOutput{UpdateItemOutput_UpdateItemOutput{Attributes, ConsumedCapacity, ItemCollectionMetrics}} +} + +func (_this UpdateItemOutput) Is_UpdateItemOutput() bool { + _, ok := _this.Get_().(UpdateItemOutput_UpdateItemOutput) + return ok +} + +func (CompanionStruct_UpdateItemOutput_) Default() UpdateItemOutput { + return Companion_UpdateItemOutput_.Create_UpdateItemOutput_(m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this UpdateItemOutput) Dtor_Attributes() m_Wrappers.Option { + return _this.Get_().(UpdateItemOutput_UpdateItemOutput).Attributes +} + +func (_this UpdateItemOutput) Dtor_ConsumedCapacity() m_Wrappers.Option { + return _this.Get_().(UpdateItemOutput_UpdateItemOutput).ConsumedCapacity +} + +func (_this UpdateItemOutput) Dtor_ItemCollectionMetrics() m_Wrappers.Option { + return _this.Get_().(UpdateItemOutput_UpdateItemOutput).ItemCollectionMetrics +} + +func (_this UpdateItemOutput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case UpdateItemOutput_UpdateItemOutput: + { + return "ComAmazonawsDynamodbTypes.UpdateItemOutput.UpdateItemOutput" + "(" + _dafny.String(data.Attributes) + ", " + _dafny.String(data.ConsumedCapacity) + ", " + _dafny.String(data.ItemCollectionMetrics) + ")" + } + default: + { + return "" + } + } +} + +func (_this UpdateItemOutput) Equals(other UpdateItemOutput) bool { + switch data1 := _this.Get_().(type) { + case UpdateItemOutput_UpdateItemOutput: + { + data2, ok := other.Get_().(UpdateItemOutput_UpdateItemOutput) + return ok && data1.Attributes.Equals(data2.Attributes) && data1.ConsumedCapacity.Equals(data2.ConsumedCapacity) && data1.ItemCollectionMetrics.Equals(data2.ItemCollectionMetrics) + } + default: + { + return false // unexpected + } + } +} + +func (_this UpdateItemOutput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(UpdateItemOutput) + return ok && _this.Equals(typed) +} + +func Type_UpdateItemOutput_() _dafny.TypeDescriptor { + return type_UpdateItemOutput_{} +} + +type type_UpdateItemOutput_ struct { +} + +func (_this type_UpdateItemOutput_) Default() interface{} { + return Companion_UpdateItemOutput_.Default() +} + +func (_this type_UpdateItemOutput_) String() string { + return "ComAmazonawsDynamodbTypes.UpdateItemOutput" +} +func (_this UpdateItemOutput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = UpdateItemOutput{} + +// End of datatype UpdateItemOutput + +// Definition of datatype UpdateKinesisStreamingConfiguration +type UpdateKinesisStreamingConfiguration struct { + Data_UpdateKinesisStreamingConfiguration_ +} + +func (_this UpdateKinesisStreamingConfiguration) Get_() Data_UpdateKinesisStreamingConfiguration_ { + return _this.Data_UpdateKinesisStreamingConfiguration_ +} + +type Data_UpdateKinesisStreamingConfiguration_ interface { + isUpdateKinesisStreamingConfiguration() +} + +type CompanionStruct_UpdateKinesisStreamingConfiguration_ struct { +} + +var Companion_UpdateKinesisStreamingConfiguration_ = CompanionStruct_UpdateKinesisStreamingConfiguration_{} + +type UpdateKinesisStreamingConfiguration_UpdateKinesisStreamingConfiguration struct { + ApproximateCreationDateTimePrecision m_Wrappers.Option +} + +func (UpdateKinesisStreamingConfiguration_UpdateKinesisStreamingConfiguration) isUpdateKinesisStreamingConfiguration() { +} + +func (CompanionStruct_UpdateKinesisStreamingConfiguration_) Create_UpdateKinesisStreamingConfiguration_(ApproximateCreationDateTimePrecision m_Wrappers.Option) UpdateKinesisStreamingConfiguration { + return UpdateKinesisStreamingConfiguration{UpdateKinesisStreamingConfiguration_UpdateKinesisStreamingConfiguration{ApproximateCreationDateTimePrecision}} +} + +func (_this UpdateKinesisStreamingConfiguration) Is_UpdateKinesisStreamingConfiguration() bool { + _, ok := _this.Get_().(UpdateKinesisStreamingConfiguration_UpdateKinesisStreamingConfiguration) + return ok +} + +func (CompanionStruct_UpdateKinesisStreamingConfiguration_) Default() UpdateKinesisStreamingConfiguration { + return Companion_UpdateKinesisStreamingConfiguration_.Create_UpdateKinesisStreamingConfiguration_(m_Wrappers.Companion_Option_.Default()) +} + +func (_this UpdateKinesisStreamingConfiguration) Dtor_ApproximateCreationDateTimePrecision() m_Wrappers.Option { + return _this.Get_().(UpdateKinesisStreamingConfiguration_UpdateKinesisStreamingConfiguration).ApproximateCreationDateTimePrecision +} + +func (_this UpdateKinesisStreamingConfiguration) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case UpdateKinesisStreamingConfiguration_UpdateKinesisStreamingConfiguration: + { + return "ComAmazonawsDynamodbTypes.UpdateKinesisStreamingConfiguration.UpdateKinesisStreamingConfiguration" + "(" + _dafny.String(data.ApproximateCreationDateTimePrecision) + ")" + } + default: + { + return "" + } + } +} + +func (_this UpdateKinesisStreamingConfiguration) Equals(other UpdateKinesisStreamingConfiguration) bool { + switch data1 := _this.Get_().(type) { + case UpdateKinesisStreamingConfiguration_UpdateKinesisStreamingConfiguration: + { + data2, ok := other.Get_().(UpdateKinesisStreamingConfiguration_UpdateKinesisStreamingConfiguration) + return ok && data1.ApproximateCreationDateTimePrecision.Equals(data2.ApproximateCreationDateTimePrecision) + } + default: + { + return false // unexpected + } + } +} + +func (_this UpdateKinesisStreamingConfiguration) EqualsGeneric(other interface{}) bool { + typed, ok := other.(UpdateKinesisStreamingConfiguration) + return ok && _this.Equals(typed) +} + +func Type_UpdateKinesisStreamingConfiguration_() _dafny.TypeDescriptor { + return type_UpdateKinesisStreamingConfiguration_{} +} + +type type_UpdateKinesisStreamingConfiguration_ struct { +} + +func (_this type_UpdateKinesisStreamingConfiguration_) Default() interface{} { + return Companion_UpdateKinesisStreamingConfiguration_.Default() +} + +func (_this type_UpdateKinesisStreamingConfiguration_) String() string { + return "ComAmazonawsDynamodbTypes.UpdateKinesisStreamingConfiguration" +} +func (_this UpdateKinesisStreamingConfiguration) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = UpdateKinesisStreamingConfiguration{} + +// End of datatype UpdateKinesisStreamingConfiguration + +// Definition of datatype UpdateKinesisStreamingDestinationInput +type UpdateKinesisStreamingDestinationInput struct { + Data_UpdateKinesisStreamingDestinationInput_ +} + +func (_this UpdateKinesisStreamingDestinationInput) Get_() Data_UpdateKinesisStreamingDestinationInput_ { + return _this.Data_UpdateKinesisStreamingDestinationInput_ +} + +type Data_UpdateKinesisStreamingDestinationInput_ interface { + isUpdateKinesisStreamingDestinationInput() +} + +type CompanionStruct_UpdateKinesisStreamingDestinationInput_ struct { +} + +var Companion_UpdateKinesisStreamingDestinationInput_ = CompanionStruct_UpdateKinesisStreamingDestinationInput_{} + +type UpdateKinesisStreamingDestinationInput_UpdateKinesisStreamingDestinationInput struct { + TableName _dafny.Sequence + StreamArn _dafny.Sequence + UpdateKinesisStreamingConfiguration m_Wrappers.Option +} + +func (UpdateKinesisStreamingDestinationInput_UpdateKinesisStreamingDestinationInput) isUpdateKinesisStreamingDestinationInput() { +} + +func (CompanionStruct_UpdateKinesisStreamingDestinationInput_) Create_UpdateKinesisStreamingDestinationInput_(TableName _dafny.Sequence, StreamArn _dafny.Sequence, UpdateKinesisStreamingConfiguration m_Wrappers.Option) UpdateKinesisStreamingDestinationInput { + return UpdateKinesisStreamingDestinationInput{UpdateKinesisStreamingDestinationInput_UpdateKinesisStreamingDestinationInput{TableName, StreamArn, UpdateKinesisStreamingConfiguration}} +} + +func (_this UpdateKinesisStreamingDestinationInput) Is_UpdateKinesisStreamingDestinationInput() bool { + _, ok := _this.Get_().(UpdateKinesisStreamingDestinationInput_UpdateKinesisStreamingDestinationInput) + return ok +} + +func (CompanionStruct_UpdateKinesisStreamingDestinationInput_) Default() UpdateKinesisStreamingDestinationInput { + return Companion_UpdateKinesisStreamingDestinationInput_.Create_UpdateKinesisStreamingDestinationInput_(_dafny.EmptySeq.SetString(), _dafny.EmptySeq.SetString(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this UpdateKinesisStreamingDestinationInput) Dtor_TableName() _dafny.Sequence { + return _this.Get_().(UpdateKinesisStreamingDestinationInput_UpdateKinesisStreamingDestinationInput).TableName +} + +func (_this UpdateKinesisStreamingDestinationInput) Dtor_StreamArn() _dafny.Sequence { + return _this.Get_().(UpdateKinesisStreamingDestinationInput_UpdateKinesisStreamingDestinationInput).StreamArn +} + +func (_this UpdateKinesisStreamingDestinationInput) Dtor_UpdateKinesisStreamingConfiguration() m_Wrappers.Option { + return _this.Get_().(UpdateKinesisStreamingDestinationInput_UpdateKinesisStreamingDestinationInput).UpdateKinesisStreamingConfiguration +} + +func (_this UpdateKinesisStreamingDestinationInput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case UpdateKinesisStreamingDestinationInput_UpdateKinesisStreamingDestinationInput: + { + return "ComAmazonawsDynamodbTypes.UpdateKinesisStreamingDestinationInput.UpdateKinesisStreamingDestinationInput" + "(" + _dafny.String(data.TableName) + ", " + _dafny.String(data.StreamArn) + ", " + _dafny.String(data.UpdateKinesisStreamingConfiguration) + ")" + } + default: + { + return "" + } + } +} + +func (_this UpdateKinesisStreamingDestinationInput) Equals(other UpdateKinesisStreamingDestinationInput) bool { + switch data1 := _this.Get_().(type) { + case UpdateKinesisStreamingDestinationInput_UpdateKinesisStreamingDestinationInput: + { + data2, ok := other.Get_().(UpdateKinesisStreamingDestinationInput_UpdateKinesisStreamingDestinationInput) + return ok && data1.TableName.Equals(data2.TableName) && data1.StreamArn.Equals(data2.StreamArn) && data1.UpdateKinesisStreamingConfiguration.Equals(data2.UpdateKinesisStreamingConfiguration) + } + default: + { + return false // unexpected + } + } +} + +func (_this UpdateKinesisStreamingDestinationInput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(UpdateKinesisStreamingDestinationInput) + return ok && _this.Equals(typed) +} + +func Type_UpdateKinesisStreamingDestinationInput_() _dafny.TypeDescriptor { + return type_UpdateKinesisStreamingDestinationInput_{} +} + +type type_UpdateKinesisStreamingDestinationInput_ struct { +} + +func (_this type_UpdateKinesisStreamingDestinationInput_) Default() interface{} { + return Companion_UpdateKinesisStreamingDestinationInput_.Default() +} + +func (_this type_UpdateKinesisStreamingDestinationInput_) String() string { + return "ComAmazonawsDynamodbTypes.UpdateKinesisStreamingDestinationInput" +} +func (_this UpdateKinesisStreamingDestinationInput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = UpdateKinesisStreamingDestinationInput{} + +// End of datatype UpdateKinesisStreamingDestinationInput + +// Definition of datatype UpdateKinesisStreamingDestinationOutput +type UpdateKinesisStreamingDestinationOutput struct { + Data_UpdateKinesisStreamingDestinationOutput_ +} + +func (_this UpdateKinesisStreamingDestinationOutput) Get_() Data_UpdateKinesisStreamingDestinationOutput_ { + return _this.Data_UpdateKinesisStreamingDestinationOutput_ +} + +type Data_UpdateKinesisStreamingDestinationOutput_ interface { + isUpdateKinesisStreamingDestinationOutput() +} + +type CompanionStruct_UpdateKinesisStreamingDestinationOutput_ struct { +} + +var Companion_UpdateKinesisStreamingDestinationOutput_ = CompanionStruct_UpdateKinesisStreamingDestinationOutput_{} + +type UpdateKinesisStreamingDestinationOutput_UpdateKinesisStreamingDestinationOutput struct { + TableName m_Wrappers.Option + StreamArn m_Wrappers.Option + DestinationStatus m_Wrappers.Option + UpdateKinesisStreamingConfiguration m_Wrappers.Option +} + +func (UpdateKinesisStreamingDestinationOutput_UpdateKinesisStreamingDestinationOutput) isUpdateKinesisStreamingDestinationOutput() { +} + +func (CompanionStruct_UpdateKinesisStreamingDestinationOutput_) Create_UpdateKinesisStreamingDestinationOutput_(TableName m_Wrappers.Option, StreamArn m_Wrappers.Option, DestinationStatus m_Wrappers.Option, UpdateKinesisStreamingConfiguration m_Wrappers.Option) UpdateKinesisStreamingDestinationOutput { + return UpdateKinesisStreamingDestinationOutput{UpdateKinesisStreamingDestinationOutput_UpdateKinesisStreamingDestinationOutput{TableName, StreamArn, DestinationStatus, UpdateKinesisStreamingConfiguration}} +} + +func (_this UpdateKinesisStreamingDestinationOutput) Is_UpdateKinesisStreamingDestinationOutput() bool { + _, ok := _this.Get_().(UpdateKinesisStreamingDestinationOutput_UpdateKinesisStreamingDestinationOutput) + return ok +} + +func (CompanionStruct_UpdateKinesisStreamingDestinationOutput_) Default() UpdateKinesisStreamingDestinationOutput { + return Companion_UpdateKinesisStreamingDestinationOutput_.Create_UpdateKinesisStreamingDestinationOutput_(m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this UpdateKinesisStreamingDestinationOutput) Dtor_TableName() m_Wrappers.Option { + return _this.Get_().(UpdateKinesisStreamingDestinationOutput_UpdateKinesisStreamingDestinationOutput).TableName +} + +func (_this UpdateKinesisStreamingDestinationOutput) Dtor_StreamArn() m_Wrappers.Option { + return _this.Get_().(UpdateKinesisStreamingDestinationOutput_UpdateKinesisStreamingDestinationOutput).StreamArn +} + +func (_this UpdateKinesisStreamingDestinationOutput) Dtor_DestinationStatus() m_Wrappers.Option { + return _this.Get_().(UpdateKinesisStreamingDestinationOutput_UpdateKinesisStreamingDestinationOutput).DestinationStatus +} + +func (_this UpdateKinesisStreamingDestinationOutput) Dtor_UpdateKinesisStreamingConfiguration() m_Wrappers.Option { + return _this.Get_().(UpdateKinesisStreamingDestinationOutput_UpdateKinesisStreamingDestinationOutput).UpdateKinesisStreamingConfiguration +} + +func (_this UpdateKinesisStreamingDestinationOutput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case UpdateKinesisStreamingDestinationOutput_UpdateKinesisStreamingDestinationOutput: + { + return "ComAmazonawsDynamodbTypes.UpdateKinesisStreamingDestinationOutput.UpdateKinesisStreamingDestinationOutput" + "(" + _dafny.String(data.TableName) + ", " + _dafny.String(data.StreamArn) + ", " + _dafny.String(data.DestinationStatus) + ", " + _dafny.String(data.UpdateKinesisStreamingConfiguration) + ")" + } + default: + { + return "" + } + } +} + +func (_this UpdateKinesisStreamingDestinationOutput) Equals(other UpdateKinesisStreamingDestinationOutput) bool { + switch data1 := _this.Get_().(type) { + case UpdateKinesisStreamingDestinationOutput_UpdateKinesisStreamingDestinationOutput: + { + data2, ok := other.Get_().(UpdateKinesisStreamingDestinationOutput_UpdateKinesisStreamingDestinationOutput) + return ok && data1.TableName.Equals(data2.TableName) && data1.StreamArn.Equals(data2.StreamArn) && data1.DestinationStatus.Equals(data2.DestinationStatus) && data1.UpdateKinesisStreamingConfiguration.Equals(data2.UpdateKinesisStreamingConfiguration) + } + default: + { + return false // unexpected + } + } +} + +func (_this UpdateKinesisStreamingDestinationOutput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(UpdateKinesisStreamingDestinationOutput) + return ok && _this.Equals(typed) +} + +func Type_UpdateKinesisStreamingDestinationOutput_() _dafny.TypeDescriptor { + return type_UpdateKinesisStreamingDestinationOutput_{} +} + +type type_UpdateKinesisStreamingDestinationOutput_ struct { +} + +func (_this type_UpdateKinesisStreamingDestinationOutput_) Default() interface{} { + return Companion_UpdateKinesisStreamingDestinationOutput_.Default() +} + +func (_this type_UpdateKinesisStreamingDestinationOutput_) String() string { + return "ComAmazonawsDynamodbTypes.UpdateKinesisStreamingDestinationOutput" +} +func (_this UpdateKinesisStreamingDestinationOutput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = UpdateKinesisStreamingDestinationOutput{} + +// End of datatype UpdateKinesisStreamingDestinationOutput + +// Definition of datatype UpdateReplicationGroupMemberAction +type UpdateReplicationGroupMemberAction struct { + Data_UpdateReplicationGroupMemberAction_ +} + +func (_this UpdateReplicationGroupMemberAction) Get_() Data_UpdateReplicationGroupMemberAction_ { + return _this.Data_UpdateReplicationGroupMemberAction_ +} + +type Data_UpdateReplicationGroupMemberAction_ interface { + isUpdateReplicationGroupMemberAction() +} + +type CompanionStruct_UpdateReplicationGroupMemberAction_ struct { +} + +var Companion_UpdateReplicationGroupMemberAction_ = CompanionStruct_UpdateReplicationGroupMemberAction_{} + +type UpdateReplicationGroupMemberAction_UpdateReplicationGroupMemberAction struct { + RegionName _dafny.Sequence + KMSMasterKeyId m_Wrappers.Option + ProvisionedThroughputOverride m_Wrappers.Option + OnDemandThroughputOverride m_Wrappers.Option + GlobalSecondaryIndexes m_Wrappers.Option + TableClassOverride m_Wrappers.Option +} + +func (UpdateReplicationGroupMemberAction_UpdateReplicationGroupMemberAction) isUpdateReplicationGroupMemberAction() { +} + +func (CompanionStruct_UpdateReplicationGroupMemberAction_) Create_UpdateReplicationGroupMemberAction_(RegionName _dafny.Sequence, KMSMasterKeyId m_Wrappers.Option, ProvisionedThroughputOverride m_Wrappers.Option, OnDemandThroughputOverride m_Wrappers.Option, GlobalSecondaryIndexes m_Wrappers.Option, TableClassOverride m_Wrappers.Option) UpdateReplicationGroupMemberAction { + return UpdateReplicationGroupMemberAction{UpdateReplicationGroupMemberAction_UpdateReplicationGroupMemberAction{RegionName, KMSMasterKeyId, ProvisionedThroughputOverride, OnDemandThroughputOverride, GlobalSecondaryIndexes, TableClassOverride}} +} + +func (_this UpdateReplicationGroupMemberAction) Is_UpdateReplicationGroupMemberAction() bool { + _, ok := _this.Get_().(UpdateReplicationGroupMemberAction_UpdateReplicationGroupMemberAction) + return ok +} + +func (CompanionStruct_UpdateReplicationGroupMemberAction_) Default() UpdateReplicationGroupMemberAction { + return Companion_UpdateReplicationGroupMemberAction_.Create_UpdateReplicationGroupMemberAction_(_dafny.EmptySeq.SetString(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this UpdateReplicationGroupMemberAction) Dtor_RegionName() _dafny.Sequence { + return _this.Get_().(UpdateReplicationGroupMemberAction_UpdateReplicationGroupMemberAction).RegionName +} + +func (_this UpdateReplicationGroupMemberAction) Dtor_KMSMasterKeyId() m_Wrappers.Option { + return _this.Get_().(UpdateReplicationGroupMemberAction_UpdateReplicationGroupMemberAction).KMSMasterKeyId +} + +func (_this UpdateReplicationGroupMemberAction) Dtor_ProvisionedThroughputOverride() m_Wrappers.Option { + return _this.Get_().(UpdateReplicationGroupMemberAction_UpdateReplicationGroupMemberAction).ProvisionedThroughputOverride +} + +func (_this UpdateReplicationGroupMemberAction) Dtor_OnDemandThroughputOverride() m_Wrappers.Option { + return _this.Get_().(UpdateReplicationGroupMemberAction_UpdateReplicationGroupMemberAction).OnDemandThroughputOverride +} + +func (_this UpdateReplicationGroupMemberAction) Dtor_GlobalSecondaryIndexes() m_Wrappers.Option { + return _this.Get_().(UpdateReplicationGroupMemberAction_UpdateReplicationGroupMemberAction).GlobalSecondaryIndexes +} + +func (_this UpdateReplicationGroupMemberAction) Dtor_TableClassOverride() m_Wrappers.Option { + return _this.Get_().(UpdateReplicationGroupMemberAction_UpdateReplicationGroupMemberAction).TableClassOverride +} + +func (_this UpdateReplicationGroupMemberAction) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case UpdateReplicationGroupMemberAction_UpdateReplicationGroupMemberAction: + { + return "ComAmazonawsDynamodbTypes.UpdateReplicationGroupMemberAction.UpdateReplicationGroupMemberAction" + "(" + _dafny.String(data.RegionName) + ", " + _dafny.String(data.KMSMasterKeyId) + ", " + _dafny.String(data.ProvisionedThroughputOverride) + ", " + _dafny.String(data.OnDemandThroughputOverride) + ", " + _dafny.String(data.GlobalSecondaryIndexes) + ", " + _dafny.String(data.TableClassOverride) + ")" + } + default: + { + return "" + } + } +} + +func (_this UpdateReplicationGroupMemberAction) Equals(other UpdateReplicationGroupMemberAction) bool { + switch data1 := _this.Get_().(type) { + case UpdateReplicationGroupMemberAction_UpdateReplicationGroupMemberAction: + { + data2, ok := other.Get_().(UpdateReplicationGroupMemberAction_UpdateReplicationGroupMemberAction) + return ok && data1.RegionName.Equals(data2.RegionName) && data1.KMSMasterKeyId.Equals(data2.KMSMasterKeyId) && data1.ProvisionedThroughputOverride.Equals(data2.ProvisionedThroughputOverride) && data1.OnDemandThroughputOverride.Equals(data2.OnDemandThroughputOverride) && data1.GlobalSecondaryIndexes.Equals(data2.GlobalSecondaryIndexes) && data1.TableClassOverride.Equals(data2.TableClassOverride) + } + default: + { + return false // unexpected + } + } +} + +func (_this UpdateReplicationGroupMemberAction) EqualsGeneric(other interface{}) bool { + typed, ok := other.(UpdateReplicationGroupMemberAction) + return ok && _this.Equals(typed) +} + +func Type_UpdateReplicationGroupMemberAction_() _dafny.TypeDescriptor { + return type_UpdateReplicationGroupMemberAction_{} +} + +type type_UpdateReplicationGroupMemberAction_ struct { +} + +func (_this type_UpdateReplicationGroupMemberAction_) Default() interface{} { + return Companion_UpdateReplicationGroupMemberAction_.Default() +} + +func (_this type_UpdateReplicationGroupMemberAction_) String() string { + return "ComAmazonawsDynamodbTypes.UpdateReplicationGroupMemberAction" +} +func (_this UpdateReplicationGroupMemberAction) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = UpdateReplicationGroupMemberAction{} + +// End of datatype UpdateReplicationGroupMemberAction + +// Definition of datatype UpdateTableInput +type UpdateTableInput struct { + Data_UpdateTableInput_ +} + +func (_this UpdateTableInput) Get_() Data_UpdateTableInput_ { + return _this.Data_UpdateTableInput_ +} + +type Data_UpdateTableInput_ interface { + isUpdateTableInput() +} + +type CompanionStruct_UpdateTableInput_ struct { +} + +var Companion_UpdateTableInput_ = CompanionStruct_UpdateTableInput_{} + +type UpdateTableInput_UpdateTableInput struct { + AttributeDefinitions m_Wrappers.Option + TableName _dafny.Sequence + BillingMode m_Wrappers.Option + ProvisionedThroughput m_Wrappers.Option + GlobalSecondaryIndexUpdates m_Wrappers.Option + StreamSpecification m_Wrappers.Option + SSESpecification m_Wrappers.Option + ReplicaUpdates m_Wrappers.Option + TableClass m_Wrappers.Option + DeletionProtectionEnabled m_Wrappers.Option + OnDemandThroughput m_Wrappers.Option +} + +func (UpdateTableInput_UpdateTableInput) isUpdateTableInput() {} + +func (CompanionStruct_UpdateTableInput_) Create_UpdateTableInput_(AttributeDefinitions m_Wrappers.Option, TableName _dafny.Sequence, BillingMode m_Wrappers.Option, ProvisionedThroughput m_Wrappers.Option, GlobalSecondaryIndexUpdates m_Wrappers.Option, StreamSpecification m_Wrappers.Option, SSESpecification m_Wrappers.Option, ReplicaUpdates m_Wrappers.Option, TableClass m_Wrappers.Option, DeletionProtectionEnabled m_Wrappers.Option, OnDemandThroughput m_Wrappers.Option) UpdateTableInput { + return UpdateTableInput{UpdateTableInput_UpdateTableInput{AttributeDefinitions, TableName, BillingMode, ProvisionedThroughput, GlobalSecondaryIndexUpdates, StreamSpecification, SSESpecification, ReplicaUpdates, TableClass, DeletionProtectionEnabled, OnDemandThroughput}} +} + +func (_this UpdateTableInput) Is_UpdateTableInput() bool { + _, ok := _this.Get_().(UpdateTableInput_UpdateTableInput) + return ok +} + +func (CompanionStruct_UpdateTableInput_) Default() UpdateTableInput { + return Companion_UpdateTableInput_.Create_UpdateTableInput_(m_Wrappers.Companion_Option_.Default(), _dafny.EmptySeq.SetString(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this UpdateTableInput) Dtor_AttributeDefinitions() m_Wrappers.Option { + return _this.Get_().(UpdateTableInput_UpdateTableInput).AttributeDefinitions +} + +func (_this UpdateTableInput) Dtor_TableName() _dafny.Sequence { + return _this.Get_().(UpdateTableInput_UpdateTableInput).TableName +} + +func (_this UpdateTableInput) Dtor_BillingMode() m_Wrappers.Option { + return _this.Get_().(UpdateTableInput_UpdateTableInput).BillingMode +} + +func (_this UpdateTableInput) Dtor_ProvisionedThroughput() m_Wrappers.Option { + return _this.Get_().(UpdateTableInput_UpdateTableInput).ProvisionedThroughput +} + +func (_this UpdateTableInput) Dtor_GlobalSecondaryIndexUpdates() m_Wrappers.Option { + return _this.Get_().(UpdateTableInput_UpdateTableInput).GlobalSecondaryIndexUpdates +} + +func (_this UpdateTableInput) Dtor_StreamSpecification() m_Wrappers.Option { + return _this.Get_().(UpdateTableInput_UpdateTableInput).StreamSpecification +} + +func (_this UpdateTableInput) Dtor_SSESpecification() m_Wrappers.Option { + return _this.Get_().(UpdateTableInput_UpdateTableInput).SSESpecification +} + +func (_this UpdateTableInput) Dtor_ReplicaUpdates() m_Wrappers.Option { + return _this.Get_().(UpdateTableInput_UpdateTableInput).ReplicaUpdates +} + +func (_this UpdateTableInput) Dtor_TableClass() m_Wrappers.Option { + return _this.Get_().(UpdateTableInput_UpdateTableInput).TableClass +} + +func (_this UpdateTableInput) Dtor_DeletionProtectionEnabled() m_Wrappers.Option { + return _this.Get_().(UpdateTableInput_UpdateTableInput).DeletionProtectionEnabled +} + +func (_this UpdateTableInput) Dtor_OnDemandThroughput() m_Wrappers.Option { + return _this.Get_().(UpdateTableInput_UpdateTableInput).OnDemandThroughput +} + +func (_this UpdateTableInput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case UpdateTableInput_UpdateTableInput: + { + return "ComAmazonawsDynamodbTypes.UpdateTableInput.UpdateTableInput" + "(" + _dafny.String(data.AttributeDefinitions) + ", " + _dafny.String(data.TableName) + ", " + _dafny.String(data.BillingMode) + ", " + _dafny.String(data.ProvisionedThroughput) + ", " + _dafny.String(data.GlobalSecondaryIndexUpdates) + ", " + _dafny.String(data.StreamSpecification) + ", " + _dafny.String(data.SSESpecification) + ", " + _dafny.String(data.ReplicaUpdates) + ", " + _dafny.String(data.TableClass) + ", " + _dafny.String(data.DeletionProtectionEnabled) + ", " + _dafny.String(data.OnDemandThroughput) + ")" + } + default: + { + return "" + } + } +} + +func (_this UpdateTableInput) Equals(other UpdateTableInput) bool { + switch data1 := _this.Get_().(type) { + case UpdateTableInput_UpdateTableInput: + { + data2, ok := other.Get_().(UpdateTableInput_UpdateTableInput) + return ok && data1.AttributeDefinitions.Equals(data2.AttributeDefinitions) && data1.TableName.Equals(data2.TableName) && data1.BillingMode.Equals(data2.BillingMode) && data1.ProvisionedThroughput.Equals(data2.ProvisionedThroughput) && data1.GlobalSecondaryIndexUpdates.Equals(data2.GlobalSecondaryIndexUpdates) && data1.StreamSpecification.Equals(data2.StreamSpecification) && data1.SSESpecification.Equals(data2.SSESpecification) && data1.ReplicaUpdates.Equals(data2.ReplicaUpdates) && data1.TableClass.Equals(data2.TableClass) && data1.DeletionProtectionEnabled.Equals(data2.DeletionProtectionEnabled) && data1.OnDemandThroughput.Equals(data2.OnDemandThroughput) + } + default: + { + return false // unexpected + } + } +} + +func (_this UpdateTableInput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(UpdateTableInput) + return ok && _this.Equals(typed) +} + +func Type_UpdateTableInput_() _dafny.TypeDescriptor { + return type_UpdateTableInput_{} +} + +type type_UpdateTableInput_ struct { +} + +func (_this type_UpdateTableInput_) Default() interface{} { + return Companion_UpdateTableInput_.Default() +} + +func (_this type_UpdateTableInput_) String() string { + return "ComAmazonawsDynamodbTypes.UpdateTableInput" +} +func (_this UpdateTableInput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = UpdateTableInput{} + +// End of datatype UpdateTableInput + +// Definition of datatype UpdateTableOutput +type UpdateTableOutput struct { + Data_UpdateTableOutput_ +} + +func (_this UpdateTableOutput) Get_() Data_UpdateTableOutput_ { + return _this.Data_UpdateTableOutput_ +} + +type Data_UpdateTableOutput_ interface { + isUpdateTableOutput() +} + +type CompanionStruct_UpdateTableOutput_ struct { +} + +var Companion_UpdateTableOutput_ = CompanionStruct_UpdateTableOutput_{} + +type UpdateTableOutput_UpdateTableOutput struct { + TableDescription m_Wrappers.Option +} + +func (UpdateTableOutput_UpdateTableOutput) isUpdateTableOutput() {} + +func (CompanionStruct_UpdateTableOutput_) Create_UpdateTableOutput_(TableDescription m_Wrappers.Option) UpdateTableOutput { + return UpdateTableOutput{UpdateTableOutput_UpdateTableOutput{TableDescription}} +} + +func (_this UpdateTableOutput) Is_UpdateTableOutput() bool { + _, ok := _this.Get_().(UpdateTableOutput_UpdateTableOutput) + return ok +} + +func (CompanionStruct_UpdateTableOutput_) Default() UpdateTableOutput { + return Companion_UpdateTableOutput_.Create_UpdateTableOutput_(m_Wrappers.Companion_Option_.Default()) +} + +func (_this UpdateTableOutput) Dtor_TableDescription() m_Wrappers.Option { + return _this.Get_().(UpdateTableOutput_UpdateTableOutput).TableDescription +} + +func (_this UpdateTableOutput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case UpdateTableOutput_UpdateTableOutput: + { + return "ComAmazonawsDynamodbTypes.UpdateTableOutput.UpdateTableOutput" + "(" + _dafny.String(data.TableDescription) + ")" + } + default: + { + return "" + } + } +} + +func (_this UpdateTableOutput) Equals(other UpdateTableOutput) bool { + switch data1 := _this.Get_().(type) { + case UpdateTableOutput_UpdateTableOutput: + { + data2, ok := other.Get_().(UpdateTableOutput_UpdateTableOutput) + return ok && data1.TableDescription.Equals(data2.TableDescription) + } + default: + { + return false // unexpected + } + } +} + +func (_this UpdateTableOutput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(UpdateTableOutput) + return ok && _this.Equals(typed) +} + +func Type_UpdateTableOutput_() _dafny.TypeDescriptor { + return type_UpdateTableOutput_{} +} + +type type_UpdateTableOutput_ struct { +} + +func (_this type_UpdateTableOutput_) Default() interface{} { + return Companion_UpdateTableOutput_.Default() +} + +func (_this type_UpdateTableOutput_) String() string { + return "ComAmazonawsDynamodbTypes.UpdateTableOutput" +} +func (_this UpdateTableOutput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = UpdateTableOutput{} + +// End of datatype UpdateTableOutput + +// Definition of datatype UpdateTableReplicaAutoScalingInput +type UpdateTableReplicaAutoScalingInput struct { + Data_UpdateTableReplicaAutoScalingInput_ +} + +func (_this UpdateTableReplicaAutoScalingInput) Get_() Data_UpdateTableReplicaAutoScalingInput_ { + return _this.Data_UpdateTableReplicaAutoScalingInput_ +} + +type Data_UpdateTableReplicaAutoScalingInput_ interface { + isUpdateTableReplicaAutoScalingInput() +} + +type CompanionStruct_UpdateTableReplicaAutoScalingInput_ struct { +} + +var Companion_UpdateTableReplicaAutoScalingInput_ = CompanionStruct_UpdateTableReplicaAutoScalingInput_{} + +type UpdateTableReplicaAutoScalingInput_UpdateTableReplicaAutoScalingInput struct { + GlobalSecondaryIndexUpdates m_Wrappers.Option + TableName _dafny.Sequence + ProvisionedWriteCapacityAutoScalingUpdate m_Wrappers.Option + ReplicaUpdates m_Wrappers.Option +} + +func (UpdateTableReplicaAutoScalingInput_UpdateTableReplicaAutoScalingInput) isUpdateTableReplicaAutoScalingInput() { +} + +func (CompanionStruct_UpdateTableReplicaAutoScalingInput_) Create_UpdateTableReplicaAutoScalingInput_(GlobalSecondaryIndexUpdates m_Wrappers.Option, TableName _dafny.Sequence, ProvisionedWriteCapacityAutoScalingUpdate m_Wrappers.Option, ReplicaUpdates m_Wrappers.Option) UpdateTableReplicaAutoScalingInput { + return UpdateTableReplicaAutoScalingInput{UpdateTableReplicaAutoScalingInput_UpdateTableReplicaAutoScalingInput{GlobalSecondaryIndexUpdates, TableName, ProvisionedWriteCapacityAutoScalingUpdate, ReplicaUpdates}} +} + +func (_this UpdateTableReplicaAutoScalingInput) Is_UpdateTableReplicaAutoScalingInput() bool { + _, ok := _this.Get_().(UpdateTableReplicaAutoScalingInput_UpdateTableReplicaAutoScalingInput) + return ok +} + +func (CompanionStruct_UpdateTableReplicaAutoScalingInput_) Default() UpdateTableReplicaAutoScalingInput { + return Companion_UpdateTableReplicaAutoScalingInput_.Create_UpdateTableReplicaAutoScalingInput_(m_Wrappers.Companion_Option_.Default(), _dafny.EmptySeq.SetString(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this UpdateTableReplicaAutoScalingInput) Dtor_GlobalSecondaryIndexUpdates() m_Wrappers.Option { + return _this.Get_().(UpdateTableReplicaAutoScalingInput_UpdateTableReplicaAutoScalingInput).GlobalSecondaryIndexUpdates +} + +func (_this UpdateTableReplicaAutoScalingInput) Dtor_TableName() _dafny.Sequence { + return _this.Get_().(UpdateTableReplicaAutoScalingInput_UpdateTableReplicaAutoScalingInput).TableName +} + +func (_this UpdateTableReplicaAutoScalingInput) Dtor_ProvisionedWriteCapacityAutoScalingUpdate() m_Wrappers.Option { + return _this.Get_().(UpdateTableReplicaAutoScalingInput_UpdateTableReplicaAutoScalingInput).ProvisionedWriteCapacityAutoScalingUpdate +} + +func (_this UpdateTableReplicaAutoScalingInput) Dtor_ReplicaUpdates() m_Wrappers.Option { + return _this.Get_().(UpdateTableReplicaAutoScalingInput_UpdateTableReplicaAutoScalingInput).ReplicaUpdates +} + +func (_this UpdateTableReplicaAutoScalingInput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case UpdateTableReplicaAutoScalingInput_UpdateTableReplicaAutoScalingInput: + { + return "ComAmazonawsDynamodbTypes.UpdateTableReplicaAutoScalingInput.UpdateTableReplicaAutoScalingInput" + "(" + _dafny.String(data.GlobalSecondaryIndexUpdates) + ", " + _dafny.String(data.TableName) + ", " + _dafny.String(data.ProvisionedWriteCapacityAutoScalingUpdate) + ", " + _dafny.String(data.ReplicaUpdates) + ")" + } + default: + { + return "" + } + } +} + +func (_this UpdateTableReplicaAutoScalingInput) Equals(other UpdateTableReplicaAutoScalingInput) bool { + switch data1 := _this.Get_().(type) { + case UpdateTableReplicaAutoScalingInput_UpdateTableReplicaAutoScalingInput: + { + data2, ok := other.Get_().(UpdateTableReplicaAutoScalingInput_UpdateTableReplicaAutoScalingInput) + return ok && data1.GlobalSecondaryIndexUpdates.Equals(data2.GlobalSecondaryIndexUpdates) && data1.TableName.Equals(data2.TableName) && data1.ProvisionedWriteCapacityAutoScalingUpdate.Equals(data2.ProvisionedWriteCapacityAutoScalingUpdate) && data1.ReplicaUpdates.Equals(data2.ReplicaUpdates) + } + default: + { + return false // unexpected + } + } +} + +func (_this UpdateTableReplicaAutoScalingInput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(UpdateTableReplicaAutoScalingInput) + return ok && _this.Equals(typed) +} + +func Type_UpdateTableReplicaAutoScalingInput_() _dafny.TypeDescriptor { + return type_UpdateTableReplicaAutoScalingInput_{} +} + +type type_UpdateTableReplicaAutoScalingInput_ struct { +} + +func (_this type_UpdateTableReplicaAutoScalingInput_) Default() interface{} { + return Companion_UpdateTableReplicaAutoScalingInput_.Default() +} + +func (_this type_UpdateTableReplicaAutoScalingInput_) String() string { + return "ComAmazonawsDynamodbTypes.UpdateTableReplicaAutoScalingInput" +} +func (_this UpdateTableReplicaAutoScalingInput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = UpdateTableReplicaAutoScalingInput{} + +// End of datatype UpdateTableReplicaAutoScalingInput + +// Definition of datatype UpdateTableReplicaAutoScalingOutput +type UpdateTableReplicaAutoScalingOutput struct { + Data_UpdateTableReplicaAutoScalingOutput_ +} + +func (_this UpdateTableReplicaAutoScalingOutput) Get_() Data_UpdateTableReplicaAutoScalingOutput_ { + return _this.Data_UpdateTableReplicaAutoScalingOutput_ +} + +type Data_UpdateTableReplicaAutoScalingOutput_ interface { + isUpdateTableReplicaAutoScalingOutput() +} + +type CompanionStruct_UpdateTableReplicaAutoScalingOutput_ struct { +} + +var Companion_UpdateTableReplicaAutoScalingOutput_ = CompanionStruct_UpdateTableReplicaAutoScalingOutput_{} + +type UpdateTableReplicaAutoScalingOutput_UpdateTableReplicaAutoScalingOutput struct { + TableAutoScalingDescription m_Wrappers.Option +} + +func (UpdateTableReplicaAutoScalingOutput_UpdateTableReplicaAutoScalingOutput) isUpdateTableReplicaAutoScalingOutput() { +} + +func (CompanionStruct_UpdateTableReplicaAutoScalingOutput_) Create_UpdateTableReplicaAutoScalingOutput_(TableAutoScalingDescription m_Wrappers.Option) UpdateTableReplicaAutoScalingOutput { + return UpdateTableReplicaAutoScalingOutput{UpdateTableReplicaAutoScalingOutput_UpdateTableReplicaAutoScalingOutput{TableAutoScalingDescription}} +} + +func (_this UpdateTableReplicaAutoScalingOutput) Is_UpdateTableReplicaAutoScalingOutput() bool { + _, ok := _this.Get_().(UpdateTableReplicaAutoScalingOutput_UpdateTableReplicaAutoScalingOutput) + return ok +} + +func (CompanionStruct_UpdateTableReplicaAutoScalingOutput_) Default() UpdateTableReplicaAutoScalingOutput { + return Companion_UpdateTableReplicaAutoScalingOutput_.Create_UpdateTableReplicaAutoScalingOutput_(m_Wrappers.Companion_Option_.Default()) +} + +func (_this UpdateTableReplicaAutoScalingOutput) Dtor_TableAutoScalingDescription() m_Wrappers.Option { + return _this.Get_().(UpdateTableReplicaAutoScalingOutput_UpdateTableReplicaAutoScalingOutput).TableAutoScalingDescription +} + +func (_this UpdateTableReplicaAutoScalingOutput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case UpdateTableReplicaAutoScalingOutput_UpdateTableReplicaAutoScalingOutput: + { + return "ComAmazonawsDynamodbTypes.UpdateTableReplicaAutoScalingOutput.UpdateTableReplicaAutoScalingOutput" + "(" + _dafny.String(data.TableAutoScalingDescription) + ")" + } + default: + { + return "" + } + } +} + +func (_this UpdateTableReplicaAutoScalingOutput) Equals(other UpdateTableReplicaAutoScalingOutput) bool { + switch data1 := _this.Get_().(type) { + case UpdateTableReplicaAutoScalingOutput_UpdateTableReplicaAutoScalingOutput: + { + data2, ok := other.Get_().(UpdateTableReplicaAutoScalingOutput_UpdateTableReplicaAutoScalingOutput) + return ok && data1.TableAutoScalingDescription.Equals(data2.TableAutoScalingDescription) + } + default: + { + return false // unexpected + } + } +} + +func (_this UpdateTableReplicaAutoScalingOutput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(UpdateTableReplicaAutoScalingOutput) + return ok && _this.Equals(typed) +} + +func Type_UpdateTableReplicaAutoScalingOutput_() _dafny.TypeDescriptor { + return type_UpdateTableReplicaAutoScalingOutput_{} +} + +type type_UpdateTableReplicaAutoScalingOutput_ struct { +} + +func (_this type_UpdateTableReplicaAutoScalingOutput_) Default() interface{} { + return Companion_UpdateTableReplicaAutoScalingOutput_.Default() +} + +func (_this type_UpdateTableReplicaAutoScalingOutput_) String() string { + return "ComAmazonawsDynamodbTypes.UpdateTableReplicaAutoScalingOutput" +} +func (_this UpdateTableReplicaAutoScalingOutput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = UpdateTableReplicaAutoScalingOutput{} + +// End of datatype UpdateTableReplicaAutoScalingOutput + +// Definition of datatype UpdateTimeToLiveInput +type UpdateTimeToLiveInput struct { + Data_UpdateTimeToLiveInput_ +} + +func (_this UpdateTimeToLiveInput) Get_() Data_UpdateTimeToLiveInput_ { + return _this.Data_UpdateTimeToLiveInput_ +} + +type Data_UpdateTimeToLiveInput_ interface { + isUpdateTimeToLiveInput() +} + +type CompanionStruct_UpdateTimeToLiveInput_ struct { +} + +var Companion_UpdateTimeToLiveInput_ = CompanionStruct_UpdateTimeToLiveInput_{} + +type UpdateTimeToLiveInput_UpdateTimeToLiveInput struct { + TableName _dafny.Sequence + TimeToLiveSpecification TimeToLiveSpecification +} + +func (UpdateTimeToLiveInput_UpdateTimeToLiveInput) isUpdateTimeToLiveInput() {} + +func (CompanionStruct_UpdateTimeToLiveInput_) Create_UpdateTimeToLiveInput_(TableName _dafny.Sequence, TimeToLiveSpecification TimeToLiveSpecification) UpdateTimeToLiveInput { + return UpdateTimeToLiveInput{UpdateTimeToLiveInput_UpdateTimeToLiveInput{TableName, TimeToLiveSpecification}} +} + +func (_this UpdateTimeToLiveInput) Is_UpdateTimeToLiveInput() bool { + _, ok := _this.Get_().(UpdateTimeToLiveInput_UpdateTimeToLiveInput) + return ok +} + +func (CompanionStruct_UpdateTimeToLiveInput_) Default() UpdateTimeToLiveInput { + return Companion_UpdateTimeToLiveInput_.Create_UpdateTimeToLiveInput_(_dafny.EmptySeq.SetString(), Companion_TimeToLiveSpecification_.Default()) +} + +func (_this UpdateTimeToLiveInput) Dtor_TableName() _dafny.Sequence { + return _this.Get_().(UpdateTimeToLiveInput_UpdateTimeToLiveInput).TableName +} + +func (_this UpdateTimeToLiveInput) Dtor_TimeToLiveSpecification() TimeToLiveSpecification { + return _this.Get_().(UpdateTimeToLiveInput_UpdateTimeToLiveInput).TimeToLiveSpecification +} + +func (_this UpdateTimeToLiveInput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case UpdateTimeToLiveInput_UpdateTimeToLiveInput: + { + return "ComAmazonawsDynamodbTypes.UpdateTimeToLiveInput.UpdateTimeToLiveInput" + "(" + _dafny.String(data.TableName) + ", " + _dafny.String(data.TimeToLiveSpecification) + ")" + } + default: + { + return "" + } + } +} + +func (_this UpdateTimeToLiveInput) Equals(other UpdateTimeToLiveInput) bool { + switch data1 := _this.Get_().(type) { + case UpdateTimeToLiveInput_UpdateTimeToLiveInput: + { + data2, ok := other.Get_().(UpdateTimeToLiveInput_UpdateTimeToLiveInput) + return ok && data1.TableName.Equals(data2.TableName) && data1.TimeToLiveSpecification.Equals(data2.TimeToLiveSpecification) + } + default: + { + return false // unexpected + } + } +} + +func (_this UpdateTimeToLiveInput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(UpdateTimeToLiveInput) + return ok && _this.Equals(typed) +} + +func Type_UpdateTimeToLiveInput_() _dafny.TypeDescriptor { + return type_UpdateTimeToLiveInput_{} +} + +type type_UpdateTimeToLiveInput_ struct { +} + +func (_this type_UpdateTimeToLiveInput_) Default() interface{} { + return Companion_UpdateTimeToLiveInput_.Default() +} + +func (_this type_UpdateTimeToLiveInput_) String() string { + return "ComAmazonawsDynamodbTypes.UpdateTimeToLiveInput" +} +func (_this UpdateTimeToLiveInput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = UpdateTimeToLiveInput{} + +// End of datatype UpdateTimeToLiveInput + +// Definition of datatype UpdateTimeToLiveOutput +type UpdateTimeToLiveOutput struct { + Data_UpdateTimeToLiveOutput_ +} + +func (_this UpdateTimeToLiveOutput) Get_() Data_UpdateTimeToLiveOutput_ { + return _this.Data_UpdateTimeToLiveOutput_ +} + +type Data_UpdateTimeToLiveOutput_ interface { + isUpdateTimeToLiveOutput() +} + +type CompanionStruct_UpdateTimeToLiveOutput_ struct { +} + +var Companion_UpdateTimeToLiveOutput_ = CompanionStruct_UpdateTimeToLiveOutput_{} + +type UpdateTimeToLiveOutput_UpdateTimeToLiveOutput struct { + TimeToLiveSpecification m_Wrappers.Option +} + +func (UpdateTimeToLiveOutput_UpdateTimeToLiveOutput) isUpdateTimeToLiveOutput() {} + +func (CompanionStruct_UpdateTimeToLiveOutput_) Create_UpdateTimeToLiveOutput_(TimeToLiveSpecification m_Wrappers.Option) UpdateTimeToLiveOutput { + return UpdateTimeToLiveOutput{UpdateTimeToLiveOutput_UpdateTimeToLiveOutput{TimeToLiveSpecification}} +} + +func (_this UpdateTimeToLiveOutput) Is_UpdateTimeToLiveOutput() bool { + _, ok := _this.Get_().(UpdateTimeToLiveOutput_UpdateTimeToLiveOutput) + return ok +} + +func (CompanionStruct_UpdateTimeToLiveOutput_) Default() UpdateTimeToLiveOutput { + return Companion_UpdateTimeToLiveOutput_.Create_UpdateTimeToLiveOutput_(m_Wrappers.Companion_Option_.Default()) +} + +func (_this UpdateTimeToLiveOutput) Dtor_TimeToLiveSpecification() m_Wrappers.Option { + return _this.Get_().(UpdateTimeToLiveOutput_UpdateTimeToLiveOutput).TimeToLiveSpecification +} + +func (_this UpdateTimeToLiveOutput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case UpdateTimeToLiveOutput_UpdateTimeToLiveOutput: + { + return "ComAmazonawsDynamodbTypes.UpdateTimeToLiveOutput.UpdateTimeToLiveOutput" + "(" + _dafny.String(data.TimeToLiveSpecification) + ")" + } + default: + { + return "" + } + } +} + +func (_this UpdateTimeToLiveOutput) Equals(other UpdateTimeToLiveOutput) bool { + switch data1 := _this.Get_().(type) { + case UpdateTimeToLiveOutput_UpdateTimeToLiveOutput: + { + data2, ok := other.Get_().(UpdateTimeToLiveOutput_UpdateTimeToLiveOutput) + return ok && data1.TimeToLiveSpecification.Equals(data2.TimeToLiveSpecification) + } + default: + { + return false // unexpected + } + } +} + +func (_this UpdateTimeToLiveOutput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(UpdateTimeToLiveOutput) + return ok && _this.Equals(typed) +} + +func Type_UpdateTimeToLiveOutput_() _dafny.TypeDescriptor { + return type_UpdateTimeToLiveOutput_{} +} + +type type_UpdateTimeToLiveOutput_ struct { +} + +func (_this type_UpdateTimeToLiveOutput_) Default() interface{} { + return Companion_UpdateTimeToLiveOutput_.Default() +} + +func (_this type_UpdateTimeToLiveOutput_) String() string { + return "ComAmazonawsDynamodbTypes.UpdateTimeToLiveOutput" +} +func (_this UpdateTimeToLiveOutput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = UpdateTimeToLiveOutput{} + +// End of datatype UpdateTimeToLiveOutput + +// Definition of datatype WriteRequest +type WriteRequest struct { + Data_WriteRequest_ +} + +func (_this WriteRequest) Get_() Data_WriteRequest_ { + return _this.Data_WriteRequest_ +} + +type Data_WriteRequest_ interface { + isWriteRequest() +} + +type CompanionStruct_WriteRequest_ struct { +} + +var Companion_WriteRequest_ = CompanionStruct_WriteRequest_{} + +type WriteRequest_WriteRequest struct { + PutRequest m_Wrappers.Option + DeleteRequest m_Wrappers.Option +} + +func (WriteRequest_WriteRequest) isWriteRequest() {} + +func (CompanionStruct_WriteRequest_) Create_WriteRequest_(PutRequest m_Wrappers.Option, DeleteRequest m_Wrappers.Option) WriteRequest { + return WriteRequest{WriteRequest_WriteRequest{PutRequest, DeleteRequest}} +} + +func (_this WriteRequest) Is_WriteRequest() bool { + _, ok := _this.Get_().(WriteRequest_WriteRequest) + return ok +} + +func (CompanionStruct_WriteRequest_) Default() WriteRequest { + return Companion_WriteRequest_.Create_WriteRequest_(m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this WriteRequest) Dtor_PutRequest() m_Wrappers.Option { + return _this.Get_().(WriteRequest_WriteRequest).PutRequest +} + +func (_this WriteRequest) Dtor_DeleteRequest() m_Wrappers.Option { + return _this.Get_().(WriteRequest_WriteRequest).DeleteRequest +} + +func (_this WriteRequest) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case WriteRequest_WriteRequest: + { + return "ComAmazonawsDynamodbTypes.WriteRequest.WriteRequest" + "(" + _dafny.String(data.PutRequest) + ", " + _dafny.String(data.DeleteRequest) + ")" + } + default: + { + return "" + } + } +} + +func (_this WriteRequest) Equals(other WriteRequest) bool { + switch data1 := _this.Get_().(type) { + case WriteRequest_WriteRequest: + { + data2, ok := other.Get_().(WriteRequest_WriteRequest) + return ok && data1.PutRequest.Equals(data2.PutRequest) && data1.DeleteRequest.Equals(data2.DeleteRequest) + } + default: + { + return false // unexpected + } + } +} + +func (_this WriteRequest) EqualsGeneric(other interface{}) bool { + typed, ok := other.(WriteRequest) + return ok && _this.Equals(typed) +} + +func Type_WriteRequest_() _dafny.TypeDescriptor { + return type_WriteRequest_{} +} + +type type_WriteRequest_ struct { +} + +func (_this type_WriteRequest_) Default() interface{} { + return Companion_WriteRequest_.Default() +} + +func (_this type_WriteRequest_) String() string { + return "ComAmazonawsDynamodbTypes.WriteRequest" +} +func (_this WriteRequest) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = WriteRequest{} + +// End of datatype WriteRequest + +// Definition of class WriteRequests +type WriteRequests struct { +} + +func New_WriteRequests_() *WriteRequests { + _this := WriteRequests{} + + return &_this +} + +type CompanionStruct_WriteRequests_ struct { +} + +var Companion_WriteRequests_ = CompanionStruct_WriteRequests_{} + +func (*WriteRequests) String() string { + return "ComAmazonawsDynamodbTypes.WriteRequests" +} + +// End of class WriteRequests + +func Type_WriteRequests_() _dafny.TypeDescriptor { + return type_WriteRequests_{} +} + +type type_WriteRequests_ struct { +} + +func (_this type_WriteRequests_) Default() interface{} { + return _dafny.EmptySeq +} + +func (_this type_WriteRequests_) String() string { + return "ComAmazonawsDynamodbTypes.WriteRequests" +} +func (_this *CompanionStruct_WriteRequests_) Is_(__source _dafny.Sequence) bool { + var _49_x _dafny.Sequence = (__source) + _ = _49_x + return Companion_Default___.IsValid__WriteRequests(_49_x) +} + +// Definition of datatype Error +type Error struct { + Data_Error_ +} + +func (_this Error) Get_() Data_Error_ { + return _this.Data_Error_ +} + +type Data_Error_ interface { + isError() +} + +type CompanionStruct_Error_ struct { +} + +var Companion_Error_ = CompanionStruct_Error_{} + +type Error_BackupInUseException struct { + Message m_Wrappers.Option +} + +func (Error_BackupInUseException) isError() {} + +func (CompanionStruct_Error_) Create_BackupInUseException_(Message m_Wrappers.Option) Error { + return Error{Error_BackupInUseException{Message}} +} + +func (_this Error) Is_BackupInUseException() bool { + _, ok := _this.Get_().(Error_BackupInUseException) + return ok +} + +type Error_BackupNotFoundException struct { + Message m_Wrappers.Option +} + +func (Error_BackupNotFoundException) isError() {} + +func (CompanionStruct_Error_) Create_BackupNotFoundException_(Message m_Wrappers.Option) Error { + return Error{Error_BackupNotFoundException{Message}} +} + +func (_this Error) Is_BackupNotFoundException() bool { + _, ok := _this.Get_().(Error_BackupNotFoundException) + return ok +} + +type Error_ConditionalCheckFailedException struct { + Message m_Wrappers.Option + Item m_Wrappers.Option +} + +func (Error_ConditionalCheckFailedException) isError() {} + +func (CompanionStruct_Error_) Create_ConditionalCheckFailedException_(Message m_Wrappers.Option, Item m_Wrappers.Option) Error { + return Error{Error_ConditionalCheckFailedException{Message, Item}} +} + +func (_this Error) Is_ConditionalCheckFailedException() bool { + _, ok := _this.Get_().(Error_ConditionalCheckFailedException) + return ok +} + +type Error_ContinuousBackupsUnavailableException struct { + Message m_Wrappers.Option +} + +func (Error_ContinuousBackupsUnavailableException) isError() {} + +func (CompanionStruct_Error_) Create_ContinuousBackupsUnavailableException_(Message m_Wrappers.Option) Error { + return Error{Error_ContinuousBackupsUnavailableException{Message}} +} + +func (_this Error) Is_ContinuousBackupsUnavailableException() bool { + _, ok := _this.Get_().(Error_ContinuousBackupsUnavailableException) + return ok +} + +type Error_DuplicateItemException struct { + Message m_Wrappers.Option +} + +func (Error_DuplicateItemException) isError() {} + +func (CompanionStruct_Error_) Create_DuplicateItemException_(Message m_Wrappers.Option) Error { + return Error{Error_DuplicateItemException{Message}} +} + +func (_this Error) Is_DuplicateItemException() bool { + _, ok := _this.Get_().(Error_DuplicateItemException) + return ok +} + +type Error_ExportConflictException struct { + Message m_Wrappers.Option +} + +func (Error_ExportConflictException) isError() {} + +func (CompanionStruct_Error_) Create_ExportConflictException_(Message m_Wrappers.Option) Error { + return Error{Error_ExportConflictException{Message}} +} + +func (_this Error) Is_ExportConflictException() bool { + _, ok := _this.Get_().(Error_ExportConflictException) + return ok +} + +type Error_ExportNotFoundException struct { + Message m_Wrappers.Option +} + +func (Error_ExportNotFoundException) isError() {} + +func (CompanionStruct_Error_) Create_ExportNotFoundException_(Message m_Wrappers.Option) Error { + return Error{Error_ExportNotFoundException{Message}} +} + +func (_this Error) Is_ExportNotFoundException() bool { + _, ok := _this.Get_().(Error_ExportNotFoundException) + return ok +} + +type Error_GlobalTableAlreadyExistsException struct { + Message m_Wrappers.Option +} + +func (Error_GlobalTableAlreadyExistsException) isError() {} + +func (CompanionStruct_Error_) Create_GlobalTableAlreadyExistsException_(Message m_Wrappers.Option) Error { + return Error{Error_GlobalTableAlreadyExistsException{Message}} +} + +func (_this Error) Is_GlobalTableAlreadyExistsException() bool { + _, ok := _this.Get_().(Error_GlobalTableAlreadyExistsException) + return ok +} + +type Error_GlobalTableNotFoundException struct { + Message m_Wrappers.Option +} + +func (Error_GlobalTableNotFoundException) isError() {} + +func (CompanionStruct_Error_) Create_GlobalTableNotFoundException_(Message m_Wrappers.Option) Error { + return Error{Error_GlobalTableNotFoundException{Message}} +} + +func (_this Error) Is_GlobalTableNotFoundException() bool { + _, ok := _this.Get_().(Error_GlobalTableNotFoundException) + return ok +} + +type Error_IdempotentParameterMismatchException struct { + Message m_Wrappers.Option +} + +func (Error_IdempotentParameterMismatchException) isError() {} + +func (CompanionStruct_Error_) Create_IdempotentParameterMismatchException_(Message m_Wrappers.Option) Error { + return Error{Error_IdempotentParameterMismatchException{Message}} +} + +func (_this Error) Is_IdempotentParameterMismatchException() bool { + _, ok := _this.Get_().(Error_IdempotentParameterMismatchException) + return ok +} + +type Error_ImportConflictException struct { + Message m_Wrappers.Option +} + +func (Error_ImportConflictException) isError() {} + +func (CompanionStruct_Error_) Create_ImportConflictException_(Message m_Wrappers.Option) Error { + return Error{Error_ImportConflictException{Message}} +} + +func (_this Error) Is_ImportConflictException() bool { + _, ok := _this.Get_().(Error_ImportConflictException) + return ok +} + +type Error_ImportNotFoundException struct { + Message m_Wrappers.Option +} + +func (Error_ImportNotFoundException) isError() {} + +func (CompanionStruct_Error_) Create_ImportNotFoundException_(Message m_Wrappers.Option) Error { + return Error{Error_ImportNotFoundException{Message}} +} + +func (_this Error) Is_ImportNotFoundException() bool { + _, ok := _this.Get_().(Error_ImportNotFoundException) + return ok +} + +type Error_IndexNotFoundException struct { + Message m_Wrappers.Option +} + +func (Error_IndexNotFoundException) isError() {} + +func (CompanionStruct_Error_) Create_IndexNotFoundException_(Message m_Wrappers.Option) Error { + return Error{Error_IndexNotFoundException{Message}} +} + +func (_this Error) Is_IndexNotFoundException() bool { + _, ok := _this.Get_().(Error_IndexNotFoundException) + return ok +} + +type Error_InternalServerError struct { + Message m_Wrappers.Option +} + +func (Error_InternalServerError) isError() {} + +func (CompanionStruct_Error_) Create_InternalServerError_(Message m_Wrappers.Option) Error { + return Error{Error_InternalServerError{Message}} +} + +func (_this Error) Is_InternalServerError() bool { + _, ok := _this.Get_().(Error_InternalServerError) + return ok +} + +type Error_InvalidEndpointException struct { + Message m_Wrappers.Option +} + +func (Error_InvalidEndpointException) isError() {} + +func (CompanionStruct_Error_) Create_InvalidEndpointException_(Message m_Wrappers.Option) Error { + return Error{Error_InvalidEndpointException{Message}} +} + +func (_this Error) Is_InvalidEndpointException() bool { + _, ok := _this.Get_().(Error_InvalidEndpointException) + return ok +} + +type Error_InvalidExportTimeException struct { + Message m_Wrappers.Option +} + +func (Error_InvalidExportTimeException) isError() {} + +func (CompanionStruct_Error_) Create_InvalidExportTimeException_(Message m_Wrappers.Option) Error { + return Error{Error_InvalidExportTimeException{Message}} +} + +func (_this Error) Is_InvalidExportTimeException() bool { + _, ok := _this.Get_().(Error_InvalidExportTimeException) + return ok +} + +type Error_InvalidRestoreTimeException struct { + Message m_Wrappers.Option +} + +func (Error_InvalidRestoreTimeException) isError() {} + +func (CompanionStruct_Error_) Create_InvalidRestoreTimeException_(Message m_Wrappers.Option) Error { + return Error{Error_InvalidRestoreTimeException{Message}} +} + +func (_this Error) Is_InvalidRestoreTimeException() bool { + _, ok := _this.Get_().(Error_InvalidRestoreTimeException) + return ok +} + +type Error_ItemCollectionSizeLimitExceededException struct { + Message m_Wrappers.Option +} + +func (Error_ItemCollectionSizeLimitExceededException) isError() {} + +func (CompanionStruct_Error_) Create_ItemCollectionSizeLimitExceededException_(Message m_Wrappers.Option) Error { + return Error{Error_ItemCollectionSizeLimitExceededException{Message}} +} + +func (_this Error) Is_ItemCollectionSizeLimitExceededException() bool { + _, ok := _this.Get_().(Error_ItemCollectionSizeLimitExceededException) + return ok +} + +type Error_LimitExceededException struct { + Message m_Wrappers.Option +} + +func (Error_LimitExceededException) isError() {} + +func (CompanionStruct_Error_) Create_LimitExceededException_(Message m_Wrappers.Option) Error { + return Error{Error_LimitExceededException{Message}} +} + +func (_this Error) Is_LimitExceededException() bool { + _, ok := _this.Get_().(Error_LimitExceededException) + return ok +} + +type Error_PointInTimeRecoveryUnavailableException struct { + Message m_Wrappers.Option +} + +func (Error_PointInTimeRecoveryUnavailableException) isError() {} + +func (CompanionStruct_Error_) Create_PointInTimeRecoveryUnavailableException_(Message m_Wrappers.Option) Error { + return Error{Error_PointInTimeRecoveryUnavailableException{Message}} +} + +func (_this Error) Is_PointInTimeRecoveryUnavailableException() bool { + _, ok := _this.Get_().(Error_PointInTimeRecoveryUnavailableException) + return ok +} + +type Error_PolicyNotFoundException struct { + Message m_Wrappers.Option +} + +func (Error_PolicyNotFoundException) isError() {} + +func (CompanionStruct_Error_) Create_PolicyNotFoundException_(Message m_Wrappers.Option) Error { + return Error{Error_PolicyNotFoundException{Message}} +} + +func (_this Error) Is_PolicyNotFoundException() bool { + _, ok := _this.Get_().(Error_PolicyNotFoundException) + return ok +} + +type Error_ProvisionedThroughputExceededException struct { + Message m_Wrappers.Option +} + +func (Error_ProvisionedThroughputExceededException) isError() {} + +func (CompanionStruct_Error_) Create_ProvisionedThroughputExceededException_(Message m_Wrappers.Option) Error { + return Error{Error_ProvisionedThroughputExceededException{Message}} +} + +func (_this Error) Is_ProvisionedThroughputExceededException() bool { + _, ok := _this.Get_().(Error_ProvisionedThroughputExceededException) + return ok +} + +type Error_ReplicaAlreadyExistsException struct { + Message m_Wrappers.Option +} + +func (Error_ReplicaAlreadyExistsException) isError() {} + +func (CompanionStruct_Error_) Create_ReplicaAlreadyExistsException_(Message m_Wrappers.Option) Error { + return Error{Error_ReplicaAlreadyExistsException{Message}} +} + +func (_this Error) Is_ReplicaAlreadyExistsException() bool { + _, ok := _this.Get_().(Error_ReplicaAlreadyExistsException) + return ok +} + +type Error_ReplicaNotFoundException struct { + Message m_Wrappers.Option +} + +func (Error_ReplicaNotFoundException) isError() {} + +func (CompanionStruct_Error_) Create_ReplicaNotFoundException_(Message m_Wrappers.Option) Error { + return Error{Error_ReplicaNotFoundException{Message}} +} + +func (_this Error) Is_ReplicaNotFoundException() bool { + _, ok := _this.Get_().(Error_ReplicaNotFoundException) + return ok +} + +type Error_RequestLimitExceeded struct { + Message m_Wrappers.Option +} + +func (Error_RequestLimitExceeded) isError() {} + +func (CompanionStruct_Error_) Create_RequestLimitExceeded_(Message m_Wrappers.Option) Error { + return Error{Error_RequestLimitExceeded{Message}} +} + +func (_this Error) Is_RequestLimitExceeded() bool { + _, ok := _this.Get_().(Error_RequestLimitExceeded) + return ok +} + +type Error_ResourceInUseException struct { + Message m_Wrappers.Option +} + +func (Error_ResourceInUseException) isError() {} + +func (CompanionStruct_Error_) Create_ResourceInUseException_(Message m_Wrappers.Option) Error { + return Error{Error_ResourceInUseException{Message}} +} + +func (_this Error) Is_ResourceInUseException() bool { + _, ok := _this.Get_().(Error_ResourceInUseException) + return ok +} + +type Error_ResourceNotFoundException struct { + Message m_Wrappers.Option +} + +func (Error_ResourceNotFoundException) isError() {} + +func (CompanionStruct_Error_) Create_ResourceNotFoundException_(Message m_Wrappers.Option) Error { + return Error{Error_ResourceNotFoundException{Message}} +} + +func (_this Error) Is_ResourceNotFoundException() bool { + _, ok := _this.Get_().(Error_ResourceNotFoundException) + return ok +} + +type Error_TableAlreadyExistsException struct { + Message m_Wrappers.Option +} + +func (Error_TableAlreadyExistsException) isError() {} + +func (CompanionStruct_Error_) Create_TableAlreadyExistsException_(Message m_Wrappers.Option) Error { + return Error{Error_TableAlreadyExistsException{Message}} +} + +func (_this Error) Is_TableAlreadyExistsException() bool { + _, ok := _this.Get_().(Error_TableAlreadyExistsException) + return ok +} + +type Error_TableInUseException struct { + Message m_Wrappers.Option +} + +func (Error_TableInUseException) isError() {} + +func (CompanionStruct_Error_) Create_TableInUseException_(Message m_Wrappers.Option) Error { + return Error{Error_TableInUseException{Message}} +} + +func (_this Error) Is_TableInUseException() bool { + _, ok := _this.Get_().(Error_TableInUseException) + return ok +} + +type Error_TableNotFoundException struct { + Message m_Wrappers.Option +} + +func (Error_TableNotFoundException) isError() {} + +func (CompanionStruct_Error_) Create_TableNotFoundException_(Message m_Wrappers.Option) Error { + return Error{Error_TableNotFoundException{Message}} +} + +func (_this Error) Is_TableNotFoundException() bool { + _, ok := _this.Get_().(Error_TableNotFoundException) + return ok +} + +type Error_TransactionCanceledException struct { + Message m_Wrappers.Option + CancellationReasons m_Wrappers.Option +} + +func (Error_TransactionCanceledException) isError() {} + +func (CompanionStruct_Error_) Create_TransactionCanceledException_(Message m_Wrappers.Option, CancellationReasons m_Wrappers.Option) Error { + return Error{Error_TransactionCanceledException{Message, CancellationReasons}} +} + +func (_this Error) Is_TransactionCanceledException() bool { + _, ok := _this.Get_().(Error_TransactionCanceledException) + return ok +} + +type Error_TransactionConflictException struct { + Message m_Wrappers.Option +} + +func (Error_TransactionConflictException) isError() {} + +func (CompanionStruct_Error_) Create_TransactionConflictException_(Message m_Wrappers.Option) Error { + return Error{Error_TransactionConflictException{Message}} +} + +func (_this Error) Is_TransactionConflictException() bool { + _, ok := _this.Get_().(Error_TransactionConflictException) + return ok +} + +type Error_TransactionInProgressException struct { + Message m_Wrappers.Option +} + +func (Error_TransactionInProgressException) isError() {} + +func (CompanionStruct_Error_) Create_TransactionInProgressException_(Message m_Wrappers.Option) Error { + return Error{Error_TransactionInProgressException{Message}} +} + +func (_this Error) Is_TransactionInProgressException() bool { + _, ok := _this.Get_().(Error_TransactionInProgressException) + return ok +} + +type Error_Opaque struct { + Obj interface{} +} + +func (Error_Opaque) isError() {} + +func (CompanionStruct_Error_) Create_Opaque_(Obj interface{}) Error { + return Error{Error_Opaque{Obj}} +} + +func (_this Error) Is_Opaque() bool { + _, ok := _this.Get_().(Error_Opaque) + return ok +} + +type Error_OpaqueWithText struct { + Obj interface{} + ObjMessage _dafny.Sequence +} + +func (Error_OpaqueWithText) isError() {} + +func (CompanionStruct_Error_) Create_OpaqueWithText_(Obj interface{}, ObjMessage _dafny.Sequence) Error { + return Error{Error_OpaqueWithText{Obj, ObjMessage}} +} + +func (_this Error) Is_OpaqueWithText() bool { + _, ok := _this.Get_().(Error_OpaqueWithText) + return ok +} + +func (CompanionStruct_Error_) Default() Error { + return Companion_Error_.Create_BackupInUseException_(m_Wrappers.Companion_Option_.Default()) +} + +func (_this Error) Dtor_message() m_Wrappers.Option { + switch data := _this.Get_().(type) { + case Error_BackupInUseException: + return data.Message + case Error_BackupNotFoundException: + return data.Message + case Error_ConditionalCheckFailedException: + return data.Message + case Error_ContinuousBackupsUnavailableException: + return data.Message + case Error_DuplicateItemException: + return data.Message + case Error_ExportConflictException: + return data.Message + case Error_ExportNotFoundException: + return data.Message + case Error_GlobalTableAlreadyExistsException: + return data.Message + case Error_GlobalTableNotFoundException: + return data.Message + case Error_ImportConflictException: + return data.Message + case Error_ImportNotFoundException: + return data.Message + case Error_IndexNotFoundException: + return data.Message + case Error_InternalServerError: + return data.Message + case Error_InvalidExportTimeException: + return data.Message + case Error_InvalidRestoreTimeException: + return data.Message + case Error_ItemCollectionSizeLimitExceededException: + return data.Message + case Error_LimitExceededException: + return data.Message + case Error_PointInTimeRecoveryUnavailableException: + return data.Message + case Error_PolicyNotFoundException: + return data.Message + case Error_ProvisionedThroughputExceededException: + return data.Message + case Error_ReplicaAlreadyExistsException: + return data.Message + case Error_ReplicaNotFoundException: + return data.Message + case Error_RequestLimitExceeded: + return data.Message + case Error_ResourceInUseException: + return data.Message + case Error_ResourceNotFoundException: + return data.Message + case Error_TableAlreadyExistsException: + return data.Message + case Error_TableInUseException: + return data.Message + case Error_TableNotFoundException: + return data.Message + default: + return data.(Error_TransactionConflictException).Message + } +} + +func (_this Error) Dtor_Item() m_Wrappers.Option { + return _this.Get_().(Error_ConditionalCheckFailedException).Item +} + +func (_this Error) Dtor_Message() m_Wrappers.Option { + switch data := _this.Get_().(type) { + case Error_IdempotentParameterMismatchException: + return data.Message + case Error_InvalidEndpointException: + return data.Message + case Error_TransactionCanceledException: + return data.Message + default: + return data.(Error_TransactionInProgressException).Message + } +} + +func (_this Error) Dtor_CancellationReasons() m_Wrappers.Option { + return _this.Get_().(Error_TransactionCanceledException).CancellationReasons +} + +func (_this Error) Dtor_obj() interface{} { + switch data := _this.Get_().(type) { + case Error_Opaque: + return data.Obj + default: + return data.(Error_OpaqueWithText).Obj + } +} + +func (_this Error) Dtor_objMessage() _dafny.Sequence { + return _this.Get_().(Error_OpaqueWithText).ObjMessage +} + +func (_this Error) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case Error_BackupInUseException: + { + return "ComAmazonawsDynamodbTypes.Error.BackupInUseException" + "(" + _dafny.String(data.Message) + ")" + } + case Error_BackupNotFoundException: + { + return "ComAmazonawsDynamodbTypes.Error.BackupNotFoundException" + "(" + _dafny.String(data.Message) + ")" + } + case Error_ConditionalCheckFailedException: + { + return "ComAmazonawsDynamodbTypes.Error.ConditionalCheckFailedException" + "(" + _dafny.String(data.Message) + ", " + _dafny.String(data.Item) + ")" + } + case Error_ContinuousBackupsUnavailableException: + { + return "ComAmazonawsDynamodbTypes.Error.ContinuousBackupsUnavailableException" + "(" + _dafny.String(data.Message) + ")" + } + case Error_DuplicateItemException: + { + return "ComAmazonawsDynamodbTypes.Error.DuplicateItemException" + "(" + _dafny.String(data.Message) + ")" + } + case Error_ExportConflictException: + { + return "ComAmazonawsDynamodbTypes.Error.ExportConflictException" + "(" + _dafny.String(data.Message) + ")" + } + case Error_ExportNotFoundException: + { + return "ComAmazonawsDynamodbTypes.Error.ExportNotFoundException" + "(" + _dafny.String(data.Message) + ")" + } + case Error_GlobalTableAlreadyExistsException: + { + return "ComAmazonawsDynamodbTypes.Error.GlobalTableAlreadyExistsException" + "(" + _dafny.String(data.Message) + ")" + } + case Error_GlobalTableNotFoundException: + { + return "ComAmazonawsDynamodbTypes.Error.GlobalTableNotFoundException" + "(" + _dafny.String(data.Message) + ")" + } + case Error_IdempotentParameterMismatchException: + { + return "ComAmazonawsDynamodbTypes.Error.IdempotentParameterMismatchException" + "(" + _dafny.String(data.Message) + ")" + } + case Error_ImportConflictException: + { + return "ComAmazonawsDynamodbTypes.Error.ImportConflictException" + "(" + _dafny.String(data.Message) + ")" + } + case Error_ImportNotFoundException: + { + return "ComAmazonawsDynamodbTypes.Error.ImportNotFoundException" + "(" + _dafny.String(data.Message) + ")" + } + case Error_IndexNotFoundException: + { + return "ComAmazonawsDynamodbTypes.Error.IndexNotFoundException" + "(" + _dafny.String(data.Message) + ")" + } + case Error_InternalServerError: + { + return "ComAmazonawsDynamodbTypes.Error.InternalServerError" + "(" + _dafny.String(data.Message) + ")" + } + case Error_InvalidEndpointException: + { + return "ComAmazonawsDynamodbTypes.Error.InvalidEndpointException" + "(" + _dafny.String(data.Message) + ")" + } + case Error_InvalidExportTimeException: + { + return "ComAmazonawsDynamodbTypes.Error.InvalidExportTimeException" + "(" + _dafny.String(data.Message) + ")" + } + case Error_InvalidRestoreTimeException: + { + return "ComAmazonawsDynamodbTypes.Error.InvalidRestoreTimeException" + "(" + _dafny.String(data.Message) + ")" + } + case Error_ItemCollectionSizeLimitExceededException: + { + return "ComAmazonawsDynamodbTypes.Error.ItemCollectionSizeLimitExceededException" + "(" + _dafny.String(data.Message) + ")" + } + case Error_LimitExceededException: + { + return "ComAmazonawsDynamodbTypes.Error.LimitExceededException" + "(" + _dafny.String(data.Message) + ")" + } + case Error_PointInTimeRecoveryUnavailableException: + { + return "ComAmazonawsDynamodbTypes.Error.PointInTimeRecoveryUnavailableException" + "(" + _dafny.String(data.Message) + ")" + } + case Error_PolicyNotFoundException: + { + return "ComAmazonawsDynamodbTypes.Error.PolicyNotFoundException" + "(" + _dafny.String(data.Message) + ")" + } + case Error_ProvisionedThroughputExceededException: + { + return "ComAmazonawsDynamodbTypes.Error.ProvisionedThroughputExceededException" + "(" + _dafny.String(data.Message) + ")" + } + case Error_ReplicaAlreadyExistsException: + { + return "ComAmazonawsDynamodbTypes.Error.ReplicaAlreadyExistsException" + "(" + _dafny.String(data.Message) + ")" + } + case Error_ReplicaNotFoundException: + { + return "ComAmazonawsDynamodbTypes.Error.ReplicaNotFoundException" + "(" + _dafny.String(data.Message) + ")" + } + case Error_RequestLimitExceeded: + { + return "ComAmazonawsDynamodbTypes.Error.RequestLimitExceeded" + "(" + _dafny.String(data.Message) + ")" + } + case Error_ResourceInUseException: + { + return "ComAmazonawsDynamodbTypes.Error.ResourceInUseException" + "(" + _dafny.String(data.Message) + ")" + } + case Error_ResourceNotFoundException: + { + return "ComAmazonawsDynamodbTypes.Error.ResourceNotFoundException" + "(" + _dafny.String(data.Message) + ")" + } + case Error_TableAlreadyExistsException: + { + return "ComAmazonawsDynamodbTypes.Error.TableAlreadyExistsException" + "(" + _dafny.String(data.Message) + ")" + } + case Error_TableInUseException: + { + return "ComAmazonawsDynamodbTypes.Error.TableInUseException" + "(" + _dafny.String(data.Message) + ")" + } + case Error_TableNotFoundException: + { + return "ComAmazonawsDynamodbTypes.Error.TableNotFoundException" + "(" + _dafny.String(data.Message) + ")" + } + case Error_TransactionCanceledException: + { + return "ComAmazonawsDynamodbTypes.Error.TransactionCanceledException" + "(" + _dafny.String(data.Message) + ", " + _dafny.String(data.CancellationReasons) + ")" + } + case Error_TransactionConflictException: + { + return "ComAmazonawsDynamodbTypes.Error.TransactionConflictException" + "(" + _dafny.String(data.Message) + ")" + } + case Error_TransactionInProgressException: + { + return "ComAmazonawsDynamodbTypes.Error.TransactionInProgressException" + "(" + _dafny.String(data.Message) + ")" + } + case Error_Opaque: + { + return "ComAmazonawsDynamodbTypes.Error.Opaque" + "(" + _dafny.String(data.Obj) + ")" + } + case Error_OpaqueWithText: + { + return "ComAmazonawsDynamodbTypes.Error.OpaqueWithText" + "(" + _dafny.String(data.Obj) + ", " + _dafny.String(data.ObjMessage) + ")" + } + default: + { + return "" + } + } +} + +func (_this Error) Equals(other Error) bool { + switch data1 := _this.Get_().(type) { + case Error_BackupInUseException: + { + data2, ok := other.Get_().(Error_BackupInUseException) + return ok && data1.Message.Equals(data2.Message) + } + case Error_BackupNotFoundException: + { + data2, ok := other.Get_().(Error_BackupNotFoundException) + return ok && data1.Message.Equals(data2.Message) + } + case Error_ConditionalCheckFailedException: + { + data2, ok := other.Get_().(Error_ConditionalCheckFailedException) + return ok && data1.Message.Equals(data2.Message) && data1.Item.Equals(data2.Item) + } + case Error_ContinuousBackupsUnavailableException: + { + data2, ok := other.Get_().(Error_ContinuousBackupsUnavailableException) + return ok && data1.Message.Equals(data2.Message) + } + case Error_DuplicateItemException: + { + data2, ok := other.Get_().(Error_DuplicateItemException) + return ok && data1.Message.Equals(data2.Message) + } + case Error_ExportConflictException: + { + data2, ok := other.Get_().(Error_ExportConflictException) + return ok && data1.Message.Equals(data2.Message) + } + case Error_ExportNotFoundException: + { + data2, ok := other.Get_().(Error_ExportNotFoundException) + return ok && data1.Message.Equals(data2.Message) + } + case Error_GlobalTableAlreadyExistsException: + { + data2, ok := other.Get_().(Error_GlobalTableAlreadyExistsException) + return ok && data1.Message.Equals(data2.Message) + } + case Error_GlobalTableNotFoundException: + { + data2, ok := other.Get_().(Error_GlobalTableNotFoundException) + return ok && data1.Message.Equals(data2.Message) + } + case Error_IdempotentParameterMismatchException: + { + data2, ok := other.Get_().(Error_IdempotentParameterMismatchException) + return ok && data1.Message.Equals(data2.Message) + } + case Error_ImportConflictException: + { + data2, ok := other.Get_().(Error_ImportConflictException) + return ok && data1.Message.Equals(data2.Message) + } + case Error_ImportNotFoundException: + { + data2, ok := other.Get_().(Error_ImportNotFoundException) + return ok && data1.Message.Equals(data2.Message) + } + case Error_IndexNotFoundException: + { + data2, ok := other.Get_().(Error_IndexNotFoundException) + return ok && data1.Message.Equals(data2.Message) + } + case Error_InternalServerError: + { + data2, ok := other.Get_().(Error_InternalServerError) + return ok && data1.Message.Equals(data2.Message) + } + case Error_InvalidEndpointException: + { + data2, ok := other.Get_().(Error_InvalidEndpointException) + return ok && data1.Message.Equals(data2.Message) + } + case Error_InvalidExportTimeException: + { + data2, ok := other.Get_().(Error_InvalidExportTimeException) + return ok && data1.Message.Equals(data2.Message) + } + case Error_InvalidRestoreTimeException: + { + data2, ok := other.Get_().(Error_InvalidRestoreTimeException) + return ok && data1.Message.Equals(data2.Message) + } + case Error_ItemCollectionSizeLimitExceededException: + { + data2, ok := other.Get_().(Error_ItemCollectionSizeLimitExceededException) + return ok && data1.Message.Equals(data2.Message) + } + case Error_LimitExceededException: + { + data2, ok := other.Get_().(Error_LimitExceededException) + return ok && data1.Message.Equals(data2.Message) + } + case Error_PointInTimeRecoveryUnavailableException: + { + data2, ok := other.Get_().(Error_PointInTimeRecoveryUnavailableException) + return ok && data1.Message.Equals(data2.Message) + } + case Error_PolicyNotFoundException: + { + data2, ok := other.Get_().(Error_PolicyNotFoundException) + return ok && data1.Message.Equals(data2.Message) + } + case Error_ProvisionedThroughputExceededException: + { + data2, ok := other.Get_().(Error_ProvisionedThroughputExceededException) + return ok && data1.Message.Equals(data2.Message) + } + case Error_ReplicaAlreadyExistsException: + { + data2, ok := other.Get_().(Error_ReplicaAlreadyExistsException) + return ok && data1.Message.Equals(data2.Message) + } + case Error_ReplicaNotFoundException: + { + data2, ok := other.Get_().(Error_ReplicaNotFoundException) + return ok && data1.Message.Equals(data2.Message) + } + case Error_RequestLimitExceeded: + { + data2, ok := other.Get_().(Error_RequestLimitExceeded) + return ok && data1.Message.Equals(data2.Message) + } + case Error_ResourceInUseException: + { + data2, ok := other.Get_().(Error_ResourceInUseException) + return ok && data1.Message.Equals(data2.Message) + } + case Error_ResourceNotFoundException: + { + data2, ok := other.Get_().(Error_ResourceNotFoundException) + return ok && data1.Message.Equals(data2.Message) + } + case Error_TableAlreadyExistsException: + { + data2, ok := other.Get_().(Error_TableAlreadyExistsException) + return ok && data1.Message.Equals(data2.Message) + } + case Error_TableInUseException: + { + data2, ok := other.Get_().(Error_TableInUseException) + return ok && data1.Message.Equals(data2.Message) + } + case Error_TableNotFoundException: + { + data2, ok := other.Get_().(Error_TableNotFoundException) + return ok && data1.Message.Equals(data2.Message) + } + case Error_TransactionCanceledException: + { + data2, ok := other.Get_().(Error_TransactionCanceledException) + return ok && data1.Message.Equals(data2.Message) && data1.CancellationReasons.Equals(data2.CancellationReasons) + } + case Error_TransactionConflictException: + { + data2, ok := other.Get_().(Error_TransactionConflictException) + return ok && data1.Message.Equals(data2.Message) + } + case Error_TransactionInProgressException: + { + data2, ok := other.Get_().(Error_TransactionInProgressException) + return ok && data1.Message.Equals(data2.Message) + } + case Error_Opaque: + { + data2, ok := other.Get_().(Error_Opaque) + return ok && _dafny.AreEqual(data1.Obj, data2.Obj) + } + case Error_OpaqueWithText: + { + data2, ok := other.Get_().(Error_OpaqueWithText) + return ok && _dafny.AreEqual(data1.Obj, data2.Obj) && data1.ObjMessage.Equals(data2.ObjMessage) + } + default: + { + return false // unexpected + } + } +} + +func (_this Error) EqualsGeneric(other interface{}) bool { + typed, ok := other.(Error) + return ok && _this.Equals(typed) +} + +func Type_Error_() _dafny.TypeDescriptor { + return type_Error_{} +} + +type type_Error_ struct { +} + +func (_this type_Error_) Default() interface{} { + return Companion_Error_.Default() +} + +func (_this type_Error_) String() string { + return "ComAmazonawsDynamodbTypes.Error" +} +func (_this Error) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = Error{} + +// End of datatype Error + +// Definition of class OpaqueError +type OpaqueError struct { +} + +func New_OpaqueError_() *OpaqueError { + _this := OpaqueError{} + + return &_this +} + +type CompanionStruct_OpaqueError_ struct { +} + +var Companion_OpaqueError_ = CompanionStruct_OpaqueError_{} + +func (*OpaqueError) String() string { + return "ComAmazonawsDynamodbTypes.OpaqueError" +} + +// End of class OpaqueError + +func Type_OpaqueError_() _dafny.TypeDescriptor { + return type_OpaqueError_{} +} + +type type_OpaqueError_ struct { +} + +func (_this type_OpaqueError_) Default() interface{} { + return Companion_Error_.Default() +} + +func (_this type_OpaqueError_) String() string { + return "ComAmazonawsDynamodbTypes.OpaqueError" +} +func (_this *CompanionStruct_OpaqueError_) Is_(__source Error) bool { + var _50_e Error = (__source) + _ = _50_e + return ((_50_e).Is_Opaque()) || ((_50_e).Is_OpaqueWithText()) +} + +// Definition of class DummySubsetType +type DummySubsetType struct { +} + +func New_DummySubsetType_() *DummySubsetType { + _this := DummySubsetType{} + + return &_this +} + +type CompanionStruct_DummySubsetType_ struct { +} + +var Companion_DummySubsetType_ = CompanionStruct_DummySubsetType_{} + +func (*DummySubsetType) String() string { + return "ComAmazonawsDynamodbTypes.DummySubsetType" +} +func (_this *CompanionStruct_DummySubsetType_) Witness() _dafny.Int { + return _dafny.One +} + +// End of class DummySubsetType + +func Type_DummySubsetType_() _dafny.TypeDescriptor { + return type_DummySubsetType_{} +} + +type type_DummySubsetType_ struct { +} + +func (_this type_DummySubsetType_) Default() interface{} { + return Companion_DummySubsetType_.Witness() +} + +func (_this type_DummySubsetType_) String() string { + return "ComAmazonawsDynamodbTypes.DummySubsetType" +} +func (_this *CompanionStruct_DummySubsetType_) Is_(__source _dafny.Int) bool { + var _51_x _dafny.Int = (__source) + _ = _51_x + return Companion_Default___.IsDummySubsetType(_51_x) +} diff --git a/customer-preview/dynamodb/Com_Amazonaws_Dynamodb/Com_Amazonaws_Dynamodb.go b/customer-preview/dynamodb/Com_Amazonaws_Dynamodb/Com_Amazonaws_Dynamodb.go new file mode 100644 index 000000000..7f2d2c967 --- /dev/null +++ b/customer-preview/dynamodb/Com_Amazonaws_Dynamodb/Com_Amazonaws_Dynamodb.go @@ -0,0 +1,314 @@ +// Package Com_Amazonaws_Dynamodb +// Dafny module Com_Amazonaws_Dynamodb compiled into Go + +package Com_Amazonaws_Dynamodb + +import ( + os "os" + + m_ComAmazonawsDynamodbTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/ComAmazonawsDynamodbTypes" + m_Actions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Actions" + m_Base64 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64" + m_Base64Lemmas "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64Lemmas" + m_BoundedInts "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/BoundedInts" + m_DivInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternals" + m_DivInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternalsNonlinear" + m_DivMod "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivMod" + m_FileIO "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FileIO" + m_FloatCompare "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FloatCompare" + m_Functions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Functions" + m_GeneralInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GeneralInternals" + m_GetOpt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GetOpt" + m_HexStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/HexStrings" + m_JSON_API "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/JSON_API" + m_JSON_ConcreteSyntax_Spec "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/JSON_ConcreteSyntax_Spec" + m_JSON_ConcreteSyntax_SpecProperties "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/JSON_ConcreteSyntax_SpecProperties" + m_JSON_Deserializer "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/JSON_Deserializer" + m_JSON_Deserializer_ByteStrConversion "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/JSON_Deserializer_ByteStrConversion" + m_JSON_Deserializer_Uint16StrConversion "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/JSON_Deserializer_Uint16StrConversion" + m_JSON_Errors "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/JSON_Errors" + m_JSON_Grammar "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/JSON_Grammar" + m_JSON_Serializer "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/JSON_Serializer" + m_JSON_Serializer_ByteStrConversion "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/JSON_Serializer_ByteStrConversion" + m_JSON_Spec "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/JSON_Spec" + m_JSON_Utils_Cursors "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/JSON_Utils_Cursors" + m_JSON_Utils_Lexers_Core "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/JSON_Utils_Lexers_Core" + m_JSON_Utils_Lexers_Strings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/JSON_Utils_Lexers_Strings" + m_JSON_Utils_Parsers "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/JSON_Utils_Parsers" + m_JSON_Utils_Seq "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/JSON_Utils_Seq" + m_JSON_Utils_Str "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/JSON_Utils_Str" + m_JSON_Utils_Str_CharStrConversion "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/JSON_Utils_Str_CharStrConversion" + m_JSON_Utils_Str_CharStrEscaping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/JSON_Utils_Str_CharStrEscaping" + m_JSON_Utils_Vectors "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/JSON_Utils_Vectors" + m_JSON_Utils_Views_Core "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/JSON_Utils_Views_Core" + m_JSON_Utils_Views_Writers "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/JSON_Utils_Views_Writers" + m_JSON_Values "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/JSON_Values" + m_JSON_ZeroCopy_API "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/JSON_ZeroCopy_API" + m_JSON_ZeroCopy_Deserializer "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/JSON_ZeroCopy_Deserializer" + m_JSON_ZeroCopy_Deserializer_API "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/JSON_ZeroCopy_Deserializer_API" + m_JSON_ZeroCopy_Deserializer_ArrayParams "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/JSON_ZeroCopy_Deserializer_ArrayParams" + m_JSON_ZeroCopy_Deserializer_Arrays "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/JSON_ZeroCopy_Deserializer_Arrays" + m_JSON_ZeroCopy_Deserializer_Constants "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/JSON_ZeroCopy_Deserializer_Constants" + m_JSON_ZeroCopy_Deserializer_Core "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/JSON_ZeroCopy_Deserializer_Core" + m_JSON_ZeroCopy_Deserializer_Numbers "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/JSON_ZeroCopy_Deserializer_Numbers" + m_JSON_ZeroCopy_Deserializer_ObjectParams "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/JSON_ZeroCopy_Deserializer_ObjectParams" + m_JSON_ZeroCopy_Deserializer_Objects "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/JSON_ZeroCopy_Deserializer_Objects" + m_JSON_ZeroCopy_Deserializer_Strings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/JSON_ZeroCopy_Deserializer_Strings" + m_JSON_ZeroCopy_Deserializer_Values "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/JSON_ZeroCopy_Deserializer_Values" + m_JSON_ZeroCopy_Serializer "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/JSON_ZeroCopy_Serializer" + m_Logarithm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Logarithm" + m__Math "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Math_" + m_ModInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternals" + m_ModInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternalsNonlinear" + m_Mul "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Mul" + m_MulInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternals" + m_MulInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternalsNonlinear" + m_Power "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Power" + m_Relations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Relations" + m_Seq "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq" + m_Seq_MergeSort "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq_MergeSort" + m_Sorting "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Sorting" + m_StandardLibrary "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary" + m_StandardLibraryInterop "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibraryInterop" + m_StandardLibrary_Sequence "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_Sequence" + m_StandardLibrary_String "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_String" + m_StandardLibrary_UInt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_UInt" + m_Streams "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Streams" + m_UnicodeStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UnicodeStrings" + m__Unicode "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Unicode_" + m_Utf16EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf16EncodingForm" + m_Utf8EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf8EncodingForm" + m_Wrappers "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers" + m__System "github.com/dafny-lang/DafnyRuntimeGo/v4/System_" + _dafny "github.com/dafny-lang/DafnyRuntimeGo/v4/dafny" +) + +var _ = os.Args +var _ _dafny.Dummy__ +var _ m__System.Dummy__ +var _ m_Wrappers.Dummy__ +var _ m_Relations.Dummy__ +var _ m_Seq_MergeSort.Dummy__ +var _ m__Math.Dummy__ +var _ m_Seq.Dummy__ +var _ m_BoundedInts.Dummy__ +var _ m__Unicode.Dummy__ +var _ m_Functions.Dummy__ +var _ m_Utf8EncodingForm.Dummy__ +var _ m_Utf16EncodingForm.Dummy__ +var _ m_UnicodeStrings.Dummy__ +var _ m_FileIO.Dummy__ +var _ m_GeneralInternals.Dummy__ +var _ m_MulInternalsNonlinear.Dummy__ +var _ m_MulInternals.Dummy__ +var _ m_Mul.Dummy__ +var _ m_ModInternalsNonlinear.Dummy__ +var _ m_DivInternalsNonlinear.Dummy__ +var _ m_ModInternals.Dummy__ +var _ m_DivInternals.Dummy__ +var _ m_DivMod.Dummy__ +var _ m_Power.Dummy__ +var _ m_Logarithm.Dummy__ +var _ m_StandardLibraryInterop.Dummy__ +var _ m_StandardLibrary_UInt.Dummy__ +var _ m_StandardLibrary_Sequence.Dummy__ +var _ m_StandardLibrary_String.Dummy__ +var _ m_StandardLibrary.Dummy__ +var _ m_Streams.Dummy__ +var _ m_Sorting.Dummy__ +var _ m_HexStrings.Dummy__ +var _ m_GetOpt.Dummy__ +var _ m_FloatCompare.Dummy__ +var _ m_Base64.Dummy__ +var _ m_Base64Lemmas.Dummy__ +var _ m_Actions.Dummy__ +var _ m_ComAmazonawsDynamodbTypes.Dummy__ +var _ m_JSON_Utils_Views_Core.Dummy__ +var _ m_JSON_Utils_Views_Writers.Dummy__ +var _ m_JSON_Utils_Lexers_Core.Dummy__ +var _ m_JSON_Utils_Lexers_Strings.Dummy__ +var _ m_JSON_Utils_Cursors.Dummy__ +var _ m_JSON_Utils_Parsers.Dummy__ +var _ m_JSON_Utils_Str_CharStrConversion.Dummy__ +var _ m_JSON_Utils_Str_CharStrEscaping.Dummy__ +var _ m_JSON_Utils_Str.Dummy__ +var _ m_JSON_Utils_Seq.Dummy__ +var _ m_JSON_Utils_Vectors.Dummy__ +var _ m_JSON_Errors.Dummy__ +var _ m_JSON_Values.Dummy__ +var _ m_JSON_Spec.Dummy__ +var _ m_JSON_Grammar.Dummy__ +var _ m_JSON_Serializer_ByteStrConversion.Dummy__ +var _ m_JSON_Serializer.Dummy__ +var _ m_JSON_Deserializer_Uint16StrConversion.Dummy__ +var _ m_JSON_Deserializer_ByteStrConversion.Dummy__ +var _ m_JSON_Deserializer.Dummy__ +var _ m_JSON_ConcreteSyntax_Spec.Dummy__ +var _ m_JSON_ConcreteSyntax_SpecProperties.Dummy__ +var _ m_JSON_ZeroCopy_Serializer.Dummy__ +var _ m_JSON_ZeroCopy_Deserializer_Core.Dummy__ +var _ m_JSON_ZeroCopy_Deserializer_Strings.Dummy__ +var _ m_JSON_ZeroCopy_Deserializer_Numbers.Dummy__ +var _ m_JSON_ZeroCopy_Deserializer_ObjectParams.Dummy__ +var _ m_JSON_ZeroCopy_Deserializer_Objects.Dummy__ +var _ m_JSON_ZeroCopy_Deserializer_ArrayParams.Dummy__ +var _ m_JSON_ZeroCopy_Deserializer_Arrays.Dummy__ +var _ m_JSON_ZeroCopy_Deserializer_Constants.Dummy__ +var _ m_JSON_ZeroCopy_Deserializer_Values.Dummy__ +var _ m_JSON_ZeroCopy_Deserializer_API.Dummy__ +var _ m_JSON_ZeroCopy_Deserializer.Dummy__ +var _ m_JSON_ZeroCopy_API.Dummy__ +var _ m_JSON_API.Dummy__ + +type Dummy__ struct{} + +// Definition of class Default__ +type Default__ struct { + dummy byte +} + +func New_Default___() *Default__ { + _this := Default__{} + + return &_this +} + +type CompanionStruct_Default___ struct { +} + +var Companion_Default___ = CompanionStruct_Default___{} + +func (_this *Default__) Equals(other *Default__) bool { + return _this == other +} + +func (_this *Default__) EqualsGeneric(x interface{}) bool { + other, ok := x.(*Default__) + return ok && _this.Equals(other) +} + +func (*Default__) String() string { + return "Com_Amazonaws_Dynamodb.Default__" +} +func (_this *Default__) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = &Default__{} + +func (_static *CompanionStruct_Default___) DefaultDynamoDBClientConfigType() DynamoDBClientConfigType { + return Companion_DynamoDBClientConfigType_.Create_DynamoDBClientConfigType_() +} +func (_static *CompanionStruct_Default___) CreateSuccessOfClient(client m_ComAmazonawsDynamodbTypes.IDynamoDBClient) m_Wrappers.Result { + return m_Wrappers.Companion_Result_.Create_Success_(client) +} +func (_static *CompanionStruct_Default___) CreateFailureOfError(error_ m_ComAmazonawsDynamodbTypes.Error) m_Wrappers.Result { + return m_Wrappers.Companion_Result_.Create_Failure_(error_) +} + +// End of class Default__ + +// Definition of datatype DynamoDBClientConfigType +type DynamoDBClientConfigType struct { + Data_DynamoDBClientConfigType_ +} + +func (_this DynamoDBClientConfigType) Get_() Data_DynamoDBClientConfigType_ { + return _this.Data_DynamoDBClientConfigType_ +} + +type Data_DynamoDBClientConfigType_ interface { + isDynamoDBClientConfigType() +} + +type CompanionStruct_DynamoDBClientConfigType_ struct { +} + +var Companion_DynamoDBClientConfigType_ = CompanionStruct_DynamoDBClientConfigType_{} + +type DynamoDBClientConfigType_DynamoDBClientConfigType struct { +} + +func (DynamoDBClientConfigType_DynamoDBClientConfigType) isDynamoDBClientConfigType() {} + +func (CompanionStruct_DynamoDBClientConfigType_) Create_DynamoDBClientConfigType_() DynamoDBClientConfigType { + return DynamoDBClientConfigType{DynamoDBClientConfigType_DynamoDBClientConfigType{}} +} + +func (_this DynamoDBClientConfigType) Is_DynamoDBClientConfigType() bool { + _, ok := _this.Get_().(DynamoDBClientConfigType_DynamoDBClientConfigType) + return ok +} + +func (CompanionStruct_DynamoDBClientConfigType_) Default() DynamoDBClientConfigType { + return Companion_DynamoDBClientConfigType_.Create_DynamoDBClientConfigType_() +} + +func (_ CompanionStruct_DynamoDBClientConfigType_) AllSingletonConstructors() _dafny.Iterator { + i := -1 + return func() (interface{}, bool) { + i++ + switch i { + case 0: + return Companion_DynamoDBClientConfigType_.Create_DynamoDBClientConfigType_(), true + default: + return DynamoDBClientConfigType{}, false + } + } +} + +func (_this DynamoDBClientConfigType) String() string { + switch _this.Get_().(type) { + case nil: + return "null" + case DynamoDBClientConfigType_DynamoDBClientConfigType: + { + return "Dynamodb.DynamoDBClientConfigType.DynamoDBClientConfigType" + } + default: + { + return "" + } + } +} + +func (_this DynamoDBClientConfigType) Equals(other DynamoDBClientConfigType) bool { + switch _this.Get_().(type) { + case DynamoDBClientConfigType_DynamoDBClientConfigType: + { + _, ok := other.Get_().(DynamoDBClientConfigType_DynamoDBClientConfigType) + return ok + } + default: + { + return false // unexpected + } + } +} + +func (_this DynamoDBClientConfigType) EqualsGeneric(other interface{}) bool { + typed, ok := other.(DynamoDBClientConfigType) + return ok && _this.Equals(typed) +} + +func Type_DynamoDBClientConfigType_() _dafny.TypeDescriptor { + return type_DynamoDBClientConfigType_{} +} + +type type_DynamoDBClientConfigType_ struct { +} + +func (_this type_DynamoDBClientConfigType_) Default() interface{} { + return Companion_DynamoDBClientConfigType_.Default() +} + +func (_this type_DynamoDBClientConfigType_) String() string { + return "Com_Amazonaws_Dynamodb.DynamoDBClientConfigType" +} +func (_this DynamoDBClientConfigType) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = DynamoDBClientConfigType{} + +// End of datatype DynamoDBClientConfigType diff --git a/customer-preview/dynamodb/Com_Amazonaws_Dynamodb/externs.go b/customer-preview/dynamodb/Com_Amazonaws_Dynamodb/externs.go new file mode 100644 index 000000000..99ab2c6e0 --- /dev/null +++ b/customer-preview/dynamodb/Com_Amazonaws_Dynamodb/externs.go @@ -0,0 +1,51 @@ +package Com_Amazonaws_Dynamodb + +import ( + "context" + + "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/ComAmazonawsDynamodbTypes" + "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/DynamoDBwrapped" + "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers" + "github.com/aws/aws-sdk-go-v2/config" + "github.com/aws/aws-sdk-go-v2/service/dynamodb" + _dafny "github.com/dafny-lang/DafnyRuntimeGo/v4/dafny" +) + +func (_static *CompanionStruct_Default___) DynamoDBClient() Wrappers.Result { + cfg, err := config.LoadDefaultConfig(context.TODO()) + if err != nil { + return Wrappers.Companion_Result_.Create_Failure_(ComAmazonawsDynamodbTypes.Companion_Error_.Create_InternalServerError_(Wrappers.Companion_Option_.Create_Some_(_dafny.SeqOfChars([]_dafny.Char(err.Error())...)))) + + } + return Wrappers.Companion_Result_.Create_Success_(&DynamoDBwrapped.Shim{Client: dynamodb.NewFromConfig(cfg, func(o *dynamodb.Options) {})}) +} + +func (_static *CompanionStruct_Default___) DDBClientForRegion(regionInput _dafny.Sequence) Wrappers.Result { + region := *toString(regionInput) + cfg, err := config.LoadDefaultConfig(context.TODO()) + if err != nil { + return Wrappers.Companion_Result_.Create_Failure_(ComAmazonawsDynamodbTypes.Companion_Error_.Create_InternalServerError_(Wrappers.Companion_Option_.Create_Some_(_dafny.SeqOfChars([]_dafny.Char(err.Error())...)))) + + } + return Wrappers.Companion_Result_.Create_Success_(&DynamoDBwrapped.Shim{Client: dynamodb.NewFromConfig(cfg, func(o *dynamodb.Options) { + o.Region = region + })}) +} + +func (_static *CompanionStruct_Default___) RegionMatch(iDynamodbClient ComAmazonawsDynamodbTypes.IDynamoDBClient, regionInput _dafny.Sequence) Wrappers.Option { + region := toString(regionInput) + var wrappedDynamodbClient = iDynamodbClient.(*DynamoDBwrapped.Shim).Client + return Wrappers.Companion_Option_.Create_Some_(wrappedDynamodbClient.Options().Region == *region) +} + +func toString(input _dafny.Sequence) *string { + var s string + for i := _dafny.Iterate(input); ; { + val, ok := i() + if !ok { + return &[]string{s}[0] + } else { + s = s + string(val.(_dafny.Char)) + } + } +} diff --git a/customer-preview/dynamodb/DynamoDBwrapped/shim.go b/customer-preview/dynamodb/DynamoDBwrapped/shim.go new file mode 100644 index 000000000..284684993 --- /dev/null +++ b/customer-preview/dynamodb/DynamoDBwrapped/shim.go @@ -0,0 +1,531 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package DynamoDBwrapped + +import ( + "context" + + "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/smithy-dafny-standard-library/Wrappers" + "github.com/aws/aws-sdk-go-v2/service/dynamodb" + "github.com/dafny-lang/DafnyRuntimeGo/v4/dafny" +) + +type Shim struct { + ComAmazonawsDynamodbTypes.IDynamoDBClient + Client *dynamodb.Client +} + +func (shim *Shim) BatchExecuteStatement(input ComAmazonawsDynamodbTypes.BatchExecuteStatementInput) Wrappers.Result { + var native_request = comamazonawsdynamodbsmithygenerated.BatchExecuteStatementInput_FromDafny(input) + var native_response, native_error = shim.Client.BatchExecuteStatement(context.Background(), &native_request) + if native_error != nil { + return Wrappers.Companion_Result_.Create_Failure_(comamazonawsdynamodbsmithygenerated.Error_ToDafny(native_error)) + } + return Wrappers.Companion_Result_.Create_Success_(comamazonawsdynamodbsmithygenerated.BatchExecuteStatementOutput_ToDafny(*native_response)) +} + +func (shim *Shim) BatchGetItem(input ComAmazonawsDynamodbTypes.BatchGetItemInput) Wrappers.Result { + var native_request = comamazonawsdynamodbsmithygenerated.BatchGetItemInput_FromDafny(input) + var native_response, native_error = shim.Client.BatchGetItem(context.Background(), &native_request) + if native_error != nil { + return Wrappers.Companion_Result_.Create_Failure_(comamazonawsdynamodbsmithygenerated.Error_ToDafny(native_error)) + } + return Wrappers.Companion_Result_.Create_Success_(comamazonawsdynamodbsmithygenerated.BatchGetItemOutput_ToDafny(*native_response)) +} + +func (shim *Shim) BatchWriteItem(input ComAmazonawsDynamodbTypes.BatchWriteItemInput) Wrappers.Result { + var native_request = comamazonawsdynamodbsmithygenerated.BatchWriteItemInput_FromDafny(input) + var native_response, native_error = shim.Client.BatchWriteItem(context.Background(), &native_request) + if native_error != nil { + return Wrappers.Companion_Result_.Create_Failure_(comamazonawsdynamodbsmithygenerated.Error_ToDafny(native_error)) + } + return Wrappers.Companion_Result_.Create_Success_(comamazonawsdynamodbsmithygenerated.BatchWriteItemOutput_ToDafny(*native_response)) +} + +func (shim *Shim) CreateBackup(input ComAmazonawsDynamodbTypes.CreateBackupInput) Wrappers.Result { + var native_request = comamazonawsdynamodbsmithygenerated.CreateBackupInput_FromDafny(input) + var native_response, native_error = shim.Client.CreateBackup(context.Background(), &native_request) + if native_error != nil { + return Wrappers.Companion_Result_.Create_Failure_(comamazonawsdynamodbsmithygenerated.Error_ToDafny(native_error)) + } + return Wrappers.Companion_Result_.Create_Success_(comamazonawsdynamodbsmithygenerated.CreateBackupOutput_ToDafny(*native_response)) +} + +func (shim *Shim) CreateGlobalTable(input ComAmazonawsDynamodbTypes.CreateGlobalTableInput) Wrappers.Result { + var native_request = comamazonawsdynamodbsmithygenerated.CreateGlobalTableInput_FromDafny(input) + var native_response, native_error = shim.Client.CreateGlobalTable(context.Background(), &native_request) + if native_error != nil { + return Wrappers.Companion_Result_.Create_Failure_(comamazonawsdynamodbsmithygenerated.Error_ToDafny(native_error)) + } + return Wrappers.Companion_Result_.Create_Success_(comamazonawsdynamodbsmithygenerated.CreateGlobalTableOutput_ToDafny(*native_response)) +} + +func (shim *Shim) CreateTable(input ComAmazonawsDynamodbTypes.CreateTableInput) Wrappers.Result { + var native_request = comamazonawsdynamodbsmithygenerated.CreateTableInput_FromDafny(input) + var native_response, native_error = shim.Client.CreateTable(context.Background(), &native_request) + if native_error != nil { + return Wrappers.Companion_Result_.Create_Failure_(comamazonawsdynamodbsmithygenerated.Error_ToDafny(native_error)) + } + return Wrappers.Companion_Result_.Create_Success_(comamazonawsdynamodbsmithygenerated.CreateTableOutput_ToDafny(*native_response)) +} + +func (shim *Shim) DeleteBackup(input ComAmazonawsDynamodbTypes.DeleteBackupInput) Wrappers.Result { + var native_request = comamazonawsdynamodbsmithygenerated.DeleteBackupInput_FromDafny(input) + var native_response, native_error = shim.Client.DeleteBackup(context.Background(), &native_request) + if native_error != nil { + return Wrappers.Companion_Result_.Create_Failure_(comamazonawsdynamodbsmithygenerated.Error_ToDafny(native_error)) + } + return Wrappers.Companion_Result_.Create_Success_(comamazonawsdynamodbsmithygenerated.DeleteBackupOutput_ToDafny(*native_response)) +} + +func (shim *Shim) DeleteItem(input ComAmazonawsDynamodbTypes.DeleteItemInput) Wrappers.Result { + var native_request = comamazonawsdynamodbsmithygenerated.DeleteItemInput_FromDafny(input) + var native_response, native_error = shim.Client.DeleteItem(context.Background(), &native_request) + if native_error != nil { + return Wrappers.Companion_Result_.Create_Failure_(comamazonawsdynamodbsmithygenerated.Error_ToDafny(native_error)) + } + return Wrappers.Companion_Result_.Create_Success_(comamazonawsdynamodbsmithygenerated.DeleteItemOutput_ToDafny(*native_response)) +} + +func (shim *Shim) DeleteResourcePolicy(input ComAmazonawsDynamodbTypes.DeleteResourcePolicyInput) Wrappers.Result { + var native_request = comamazonawsdynamodbsmithygenerated.DeleteResourcePolicyInput_FromDafny(input) + var native_response, native_error = shim.Client.DeleteResourcePolicy(context.Background(), &native_request) + if native_error != nil { + return Wrappers.Companion_Result_.Create_Failure_(comamazonawsdynamodbsmithygenerated.Error_ToDafny(native_error)) + } + return Wrappers.Companion_Result_.Create_Success_(comamazonawsdynamodbsmithygenerated.DeleteResourcePolicyOutput_ToDafny(*native_response)) +} + +func (shim *Shim) DeleteTable(input ComAmazonawsDynamodbTypes.DeleteTableInput) Wrappers.Result { + var native_request = comamazonawsdynamodbsmithygenerated.DeleteTableInput_FromDafny(input) + var native_response, native_error = shim.Client.DeleteTable(context.Background(), &native_request) + if native_error != nil { + return Wrappers.Companion_Result_.Create_Failure_(comamazonawsdynamodbsmithygenerated.Error_ToDafny(native_error)) + } + return Wrappers.Companion_Result_.Create_Success_(comamazonawsdynamodbsmithygenerated.DeleteTableOutput_ToDafny(*native_response)) +} + +func (shim *Shim) DescribeBackup(input ComAmazonawsDynamodbTypes.DescribeBackupInput) Wrappers.Result { + var native_request = comamazonawsdynamodbsmithygenerated.DescribeBackupInput_FromDafny(input) + var native_response, native_error = shim.Client.DescribeBackup(context.Background(), &native_request) + if native_error != nil { + return Wrappers.Companion_Result_.Create_Failure_(comamazonawsdynamodbsmithygenerated.Error_ToDafny(native_error)) + } + return Wrappers.Companion_Result_.Create_Success_(comamazonawsdynamodbsmithygenerated.DescribeBackupOutput_ToDafny(*native_response)) +} + +func (shim *Shim) DescribeContinuousBackups(input ComAmazonawsDynamodbTypes.DescribeContinuousBackupsInput) Wrappers.Result { + var native_request = comamazonawsdynamodbsmithygenerated.DescribeContinuousBackupsInput_FromDafny(input) + var native_response, native_error = shim.Client.DescribeContinuousBackups(context.Background(), &native_request) + if native_error != nil { + return Wrappers.Companion_Result_.Create_Failure_(comamazonawsdynamodbsmithygenerated.Error_ToDafny(native_error)) + } + return Wrappers.Companion_Result_.Create_Success_(comamazonawsdynamodbsmithygenerated.DescribeContinuousBackupsOutput_ToDafny(*native_response)) +} + +func (shim *Shim) DescribeContributorInsights(input ComAmazonawsDynamodbTypes.DescribeContributorInsightsInput) Wrappers.Result { + var native_request = comamazonawsdynamodbsmithygenerated.DescribeContributorInsightsInput_FromDafny(input) + var native_response, native_error = shim.Client.DescribeContributorInsights(context.Background(), &native_request) + if native_error != nil { + return Wrappers.Companion_Result_.Create_Failure_(comamazonawsdynamodbsmithygenerated.Error_ToDafny(native_error)) + } + return Wrappers.Companion_Result_.Create_Success_(comamazonawsdynamodbsmithygenerated.DescribeContributorInsightsOutput_ToDafny(*native_response)) +} + +func (shim *Shim) DescribeEndpoints(input ComAmazonawsDynamodbTypes.DescribeEndpointsRequest) Wrappers.Result { + var native_request = comamazonawsdynamodbsmithygenerated.DescribeEndpointsInput_FromDafny(input) + var native_response, native_error = shim.Client.DescribeEndpoints(context.Background(), &native_request) + if native_error != nil { + return Wrappers.Companion_Result_.Create_Failure_(comamazonawsdynamodbsmithygenerated.Error_ToDafny(native_error)) + } + return Wrappers.Companion_Result_.Create_Success_(comamazonawsdynamodbsmithygenerated.DescribeEndpointsOutput_ToDafny(*native_response)) +} + +func (shim *Shim) DescribeExport(input ComAmazonawsDynamodbTypes.DescribeExportInput) Wrappers.Result { + var native_request = comamazonawsdynamodbsmithygenerated.DescribeExportInput_FromDafny(input) + var native_response, native_error = shim.Client.DescribeExport(context.Background(), &native_request) + if native_error != nil { + return Wrappers.Companion_Result_.Create_Failure_(comamazonawsdynamodbsmithygenerated.Error_ToDafny(native_error)) + } + return Wrappers.Companion_Result_.Create_Success_(comamazonawsdynamodbsmithygenerated.DescribeExportOutput_ToDafny(*native_response)) +} + +func (shim *Shim) DescribeGlobalTable(input ComAmazonawsDynamodbTypes.DescribeGlobalTableInput) Wrappers.Result { + var native_request = comamazonawsdynamodbsmithygenerated.DescribeGlobalTableInput_FromDafny(input) + var native_response, native_error = shim.Client.DescribeGlobalTable(context.Background(), &native_request) + if native_error != nil { + return Wrappers.Companion_Result_.Create_Failure_(comamazonawsdynamodbsmithygenerated.Error_ToDafny(native_error)) + } + return Wrappers.Companion_Result_.Create_Success_(comamazonawsdynamodbsmithygenerated.DescribeGlobalTableOutput_ToDafny(*native_response)) +} + +func (shim *Shim) DescribeGlobalTableSettings(input ComAmazonawsDynamodbTypes.DescribeGlobalTableSettingsInput) Wrappers.Result { + var native_request = comamazonawsdynamodbsmithygenerated.DescribeGlobalTableSettingsInput_FromDafny(input) + var native_response, native_error = shim.Client.DescribeGlobalTableSettings(context.Background(), &native_request) + if native_error != nil { + return Wrappers.Companion_Result_.Create_Failure_(comamazonawsdynamodbsmithygenerated.Error_ToDafny(native_error)) + } + return Wrappers.Companion_Result_.Create_Success_(comamazonawsdynamodbsmithygenerated.DescribeGlobalTableSettingsOutput_ToDafny(*native_response)) +} + +func (shim *Shim) DescribeImport(input ComAmazonawsDynamodbTypes.DescribeImportInput) Wrappers.Result { + var native_request = comamazonawsdynamodbsmithygenerated.DescribeImportInput_FromDafny(input) + var native_response, native_error = shim.Client.DescribeImport(context.Background(), &native_request) + if native_error != nil { + return Wrappers.Companion_Result_.Create_Failure_(comamazonawsdynamodbsmithygenerated.Error_ToDafny(native_error)) + } + return Wrappers.Companion_Result_.Create_Success_(comamazonawsdynamodbsmithygenerated.DescribeImportOutput_ToDafny(*native_response)) +} + +func (shim *Shim) DescribeKinesisStreamingDestination(input ComAmazonawsDynamodbTypes.DescribeKinesisStreamingDestinationInput) Wrappers.Result { + var native_request = comamazonawsdynamodbsmithygenerated.DescribeKinesisStreamingDestinationInput_FromDafny(input) + var native_response, native_error = shim.Client.DescribeKinesisStreamingDestination(context.Background(), &native_request) + if native_error != nil { + return Wrappers.Companion_Result_.Create_Failure_(comamazonawsdynamodbsmithygenerated.Error_ToDafny(native_error)) + } + return Wrappers.Companion_Result_.Create_Success_(comamazonawsdynamodbsmithygenerated.DescribeKinesisStreamingDestinationOutput_ToDafny(*native_response)) +} + +func (shim *Shim) DescribeLimits(input ComAmazonawsDynamodbTypes.DescribeLimitsInput) Wrappers.Result { + var native_request = comamazonawsdynamodbsmithygenerated.DescribeLimitsInput_FromDafny(input) + var native_response, native_error = shim.Client.DescribeLimits(context.Background(), &native_request) + if native_error != nil { + return Wrappers.Companion_Result_.Create_Failure_(comamazonawsdynamodbsmithygenerated.Error_ToDafny(native_error)) + } + return Wrappers.Companion_Result_.Create_Success_(comamazonawsdynamodbsmithygenerated.DescribeLimitsOutput_ToDafny(*native_response)) +} + +func (shim *Shim) DescribeTable(input ComAmazonawsDynamodbTypes.DescribeTableInput) Wrappers.Result { + var native_request = comamazonawsdynamodbsmithygenerated.DescribeTableInput_FromDafny(input) + var native_response, native_error = shim.Client.DescribeTable(context.Background(), &native_request) + if native_error != nil { + return Wrappers.Companion_Result_.Create_Failure_(comamazonawsdynamodbsmithygenerated.Error_ToDafny(native_error)) + } + return Wrappers.Companion_Result_.Create_Success_(comamazonawsdynamodbsmithygenerated.DescribeTableOutput_ToDafny(*native_response)) +} + +func (shim *Shim) DescribeTableReplicaAutoScaling(input ComAmazonawsDynamodbTypes.DescribeTableReplicaAutoScalingInput) Wrappers.Result { + var native_request = comamazonawsdynamodbsmithygenerated.DescribeTableReplicaAutoScalingInput_FromDafny(input) + var native_response, native_error = shim.Client.DescribeTableReplicaAutoScaling(context.Background(), &native_request) + if native_error != nil { + return Wrappers.Companion_Result_.Create_Failure_(comamazonawsdynamodbsmithygenerated.Error_ToDafny(native_error)) + } + return Wrappers.Companion_Result_.Create_Success_(comamazonawsdynamodbsmithygenerated.DescribeTableReplicaAutoScalingOutput_ToDafny(*native_response)) +} + +func (shim *Shim) DescribeTimeToLive(input ComAmazonawsDynamodbTypes.DescribeTimeToLiveInput) Wrappers.Result { + var native_request = comamazonawsdynamodbsmithygenerated.DescribeTimeToLiveInput_FromDafny(input) + var native_response, native_error = shim.Client.DescribeTimeToLive(context.Background(), &native_request) + if native_error != nil { + return Wrappers.Companion_Result_.Create_Failure_(comamazonawsdynamodbsmithygenerated.Error_ToDafny(native_error)) + } + return Wrappers.Companion_Result_.Create_Success_(comamazonawsdynamodbsmithygenerated.DescribeTimeToLiveOutput_ToDafny(*native_response)) +} + +func (shim *Shim) DisableKinesisStreamingDestination(input ComAmazonawsDynamodbTypes.DisableKinesisStreamingDestinationInput) Wrappers.Result { + var native_request = comamazonawsdynamodbsmithygenerated.DisableKinesisStreamingDestinationInput_FromDafny(input) + var native_response, native_error = shim.Client.DisableKinesisStreamingDestination(context.Background(), &native_request) + if native_error != nil { + return Wrappers.Companion_Result_.Create_Failure_(comamazonawsdynamodbsmithygenerated.Error_ToDafny(native_error)) + } + return Wrappers.Companion_Result_.Create_Success_(comamazonawsdynamodbsmithygenerated.DisableKinesisStreamingDestinationOutput_ToDafny(*native_response)) +} + +func (shim *Shim) EnableKinesisStreamingDestination(input ComAmazonawsDynamodbTypes.EnableKinesisStreamingDestinationInput) Wrappers.Result { + var native_request = comamazonawsdynamodbsmithygenerated.EnableKinesisStreamingDestinationInput_FromDafny(input) + var native_response, native_error = shim.Client.EnableKinesisStreamingDestination(context.Background(), &native_request) + if native_error != nil { + return Wrappers.Companion_Result_.Create_Failure_(comamazonawsdynamodbsmithygenerated.Error_ToDafny(native_error)) + } + return Wrappers.Companion_Result_.Create_Success_(comamazonawsdynamodbsmithygenerated.EnableKinesisStreamingDestinationOutput_ToDafny(*native_response)) +} + +func (shim *Shim) ExecuteStatement(input ComAmazonawsDynamodbTypes.ExecuteStatementInput) Wrappers.Result { + var native_request = comamazonawsdynamodbsmithygenerated.ExecuteStatementInput_FromDafny(input) + var native_response, native_error = shim.Client.ExecuteStatement(context.Background(), &native_request) + if native_error != nil { + return Wrappers.Companion_Result_.Create_Failure_(comamazonawsdynamodbsmithygenerated.Error_ToDafny(native_error)) + } + return Wrappers.Companion_Result_.Create_Success_(comamazonawsdynamodbsmithygenerated.ExecuteStatementOutput_ToDafny(*native_response)) +} + +func (shim *Shim) ExecuteTransaction(input ComAmazonawsDynamodbTypes.ExecuteTransactionInput) Wrappers.Result { + var native_request = comamazonawsdynamodbsmithygenerated.ExecuteTransactionInput_FromDafny(input) + var native_response, native_error = shim.Client.ExecuteTransaction(context.Background(), &native_request) + if native_error != nil { + return Wrappers.Companion_Result_.Create_Failure_(comamazonawsdynamodbsmithygenerated.Error_ToDafny(native_error)) + } + return Wrappers.Companion_Result_.Create_Success_(comamazonawsdynamodbsmithygenerated.ExecuteTransactionOutput_ToDafny(*native_response)) +} + +func (shim *Shim) ExportTableToPointInTime(input ComAmazonawsDynamodbTypes.ExportTableToPointInTimeInput) Wrappers.Result { + var native_request = comamazonawsdynamodbsmithygenerated.ExportTableToPointInTimeInput_FromDafny(input) + var native_response, native_error = shim.Client.ExportTableToPointInTime(context.Background(), &native_request) + if native_error != nil { + return Wrappers.Companion_Result_.Create_Failure_(comamazonawsdynamodbsmithygenerated.Error_ToDafny(native_error)) + } + return Wrappers.Companion_Result_.Create_Success_(comamazonawsdynamodbsmithygenerated.ExportTableToPointInTimeOutput_ToDafny(*native_response)) +} + +func (shim *Shim) GetItem(input ComAmazonawsDynamodbTypes.GetItemInput) Wrappers.Result { + var native_request = comamazonawsdynamodbsmithygenerated.GetItemInput_FromDafny(input) + var native_response, native_error = shim.Client.GetItem(context.Background(), &native_request) + if native_error != nil { + return Wrappers.Companion_Result_.Create_Failure_(comamazonawsdynamodbsmithygenerated.Error_ToDafny(native_error)) + } + return Wrappers.Companion_Result_.Create_Success_(comamazonawsdynamodbsmithygenerated.GetItemOutput_ToDafny(*native_response)) +} + +func (shim *Shim) GetResourcePolicy(input ComAmazonawsDynamodbTypes.GetResourcePolicyInput) Wrappers.Result { + var native_request = comamazonawsdynamodbsmithygenerated.GetResourcePolicyInput_FromDafny(input) + var native_response, native_error = shim.Client.GetResourcePolicy(context.Background(), &native_request) + if native_error != nil { + return Wrappers.Companion_Result_.Create_Failure_(comamazonawsdynamodbsmithygenerated.Error_ToDafny(native_error)) + } + return Wrappers.Companion_Result_.Create_Success_(comamazonawsdynamodbsmithygenerated.GetResourcePolicyOutput_ToDafny(*native_response)) +} + +func (shim *Shim) ImportTable(input ComAmazonawsDynamodbTypes.ImportTableInput) Wrappers.Result { + var native_request = comamazonawsdynamodbsmithygenerated.ImportTableInput_FromDafny(input) + var native_response, native_error = shim.Client.ImportTable(context.Background(), &native_request) + if native_error != nil { + return Wrappers.Companion_Result_.Create_Failure_(comamazonawsdynamodbsmithygenerated.Error_ToDafny(native_error)) + } + return Wrappers.Companion_Result_.Create_Success_(comamazonawsdynamodbsmithygenerated.ImportTableOutput_ToDafny(*native_response)) +} + +func (shim *Shim) ListBackups(input ComAmazonawsDynamodbTypes.ListBackupsInput) Wrappers.Result { + var native_request = comamazonawsdynamodbsmithygenerated.ListBackupsInput_FromDafny(input) + var native_response, native_error = shim.Client.ListBackups(context.Background(), &native_request) + if native_error != nil { + return Wrappers.Companion_Result_.Create_Failure_(comamazonawsdynamodbsmithygenerated.Error_ToDafny(native_error)) + } + return Wrappers.Companion_Result_.Create_Success_(comamazonawsdynamodbsmithygenerated.ListBackupsOutput_ToDafny(*native_response)) +} + +func (shim *Shim) ListContributorInsights(input ComAmazonawsDynamodbTypes.ListContributorInsightsInput) Wrappers.Result { + var native_request = comamazonawsdynamodbsmithygenerated.ListContributorInsightsInput_FromDafny(input) + var native_response, native_error = shim.Client.ListContributorInsights(context.Background(), &native_request) + if native_error != nil { + return Wrappers.Companion_Result_.Create_Failure_(comamazonawsdynamodbsmithygenerated.Error_ToDafny(native_error)) + } + return Wrappers.Companion_Result_.Create_Success_(comamazonawsdynamodbsmithygenerated.ListContributorInsightsOutput_ToDafny(*native_response)) +} + +func (shim *Shim) ListExports(input ComAmazonawsDynamodbTypes.ListExportsInput) Wrappers.Result { + var native_request = comamazonawsdynamodbsmithygenerated.ListExportsInput_FromDafny(input) + var native_response, native_error = shim.Client.ListExports(context.Background(), &native_request) + if native_error != nil { + return Wrappers.Companion_Result_.Create_Failure_(comamazonawsdynamodbsmithygenerated.Error_ToDafny(native_error)) + } + return Wrappers.Companion_Result_.Create_Success_(comamazonawsdynamodbsmithygenerated.ListExportsOutput_ToDafny(*native_response)) +} + +func (shim *Shim) ListGlobalTables(input ComAmazonawsDynamodbTypes.ListGlobalTablesInput) Wrappers.Result { + var native_request = comamazonawsdynamodbsmithygenerated.ListGlobalTablesInput_FromDafny(input) + var native_response, native_error = shim.Client.ListGlobalTables(context.Background(), &native_request) + if native_error != nil { + return Wrappers.Companion_Result_.Create_Failure_(comamazonawsdynamodbsmithygenerated.Error_ToDafny(native_error)) + } + return Wrappers.Companion_Result_.Create_Success_(comamazonawsdynamodbsmithygenerated.ListGlobalTablesOutput_ToDafny(*native_response)) +} + +func (shim *Shim) ListImports(input ComAmazonawsDynamodbTypes.ListImportsInput) Wrappers.Result { + var native_request = comamazonawsdynamodbsmithygenerated.ListImportsInput_FromDafny(input) + var native_response, native_error = shim.Client.ListImports(context.Background(), &native_request) + if native_error != nil { + return Wrappers.Companion_Result_.Create_Failure_(comamazonawsdynamodbsmithygenerated.Error_ToDafny(native_error)) + } + return Wrappers.Companion_Result_.Create_Success_(comamazonawsdynamodbsmithygenerated.ListImportsOutput_ToDafny(*native_response)) +} + +func (shim *Shim) ListTables(input ComAmazonawsDynamodbTypes.ListTablesInput) Wrappers.Result { + var native_request = comamazonawsdynamodbsmithygenerated.ListTablesInput_FromDafny(input) + var native_response, native_error = shim.Client.ListTables(context.Background(), &native_request) + if native_error != nil { + return Wrappers.Companion_Result_.Create_Failure_(comamazonawsdynamodbsmithygenerated.Error_ToDafny(native_error)) + } + return Wrappers.Companion_Result_.Create_Success_(comamazonawsdynamodbsmithygenerated.ListTablesOutput_ToDafny(*native_response)) +} + +func (shim *Shim) ListTagsOfResource(input ComAmazonawsDynamodbTypes.ListTagsOfResourceInput) Wrappers.Result { + var native_request = comamazonawsdynamodbsmithygenerated.ListTagsOfResourceInput_FromDafny(input) + var native_response, native_error = shim.Client.ListTagsOfResource(context.Background(), &native_request) + if native_error != nil { + return Wrappers.Companion_Result_.Create_Failure_(comamazonawsdynamodbsmithygenerated.Error_ToDafny(native_error)) + } + return Wrappers.Companion_Result_.Create_Success_(comamazonawsdynamodbsmithygenerated.ListTagsOfResourceOutput_ToDafny(*native_response)) +} + +func (shim *Shim) PutItem(input ComAmazonawsDynamodbTypes.PutItemInput) Wrappers.Result { + var native_request = comamazonawsdynamodbsmithygenerated.PutItemInput_FromDafny(input) + var native_response, native_error = shim.Client.PutItem(context.Background(), &native_request) + if native_error != nil { + return Wrappers.Companion_Result_.Create_Failure_(comamazonawsdynamodbsmithygenerated.Error_ToDafny(native_error)) + } + return Wrappers.Companion_Result_.Create_Success_(comamazonawsdynamodbsmithygenerated.PutItemOutput_ToDafny(*native_response)) +} + +func (shim *Shim) PutResourcePolicy(input ComAmazonawsDynamodbTypes.PutResourcePolicyInput) Wrappers.Result { + var native_request = comamazonawsdynamodbsmithygenerated.PutResourcePolicyInput_FromDafny(input) + var native_response, native_error = shim.Client.PutResourcePolicy(context.Background(), &native_request) + if native_error != nil { + return Wrappers.Companion_Result_.Create_Failure_(comamazonawsdynamodbsmithygenerated.Error_ToDafny(native_error)) + } + return Wrappers.Companion_Result_.Create_Success_(comamazonawsdynamodbsmithygenerated.PutResourcePolicyOutput_ToDafny(*native_response)) +} + +func (shim *Shim) Query(input ComAmazonawsDynamodbTypes.QueryInput) Wrappers.Result { + var native_request = comamazonawsdynamodbsmithygenerated.QueryInput_FromDafny(input) + var native_response, native_error = shim.Client.Query(context.Background(), &native_request) + if native_error != nil { + return Wrappers.Companion_Result_.Create_Failure_(comamazonawsdynamodbsmithygenerated.Error_ToDafny(native_error)) + } + return Wrappers.Companion_Result_.Create_Success_(comamazonawsdynamodbsmithygenerated.QueryOutput_ToDafny(*native_response)) +} + +func (shim *Shim) RestoreTableFromBackup(input ComAmazonawsDynamodbTypes.RestoreTableFromBackupInput) Wrappers.Result { + var native_request = comamazonawsdynamodbsmithygenerated.RestoreTableFromBackupInput_FromDafny(input) + var native_response, native_error = shim.Client.RestoreTableFromBackup(context.Background(), &native_request) + if native_error != nil { + return Wrappers.Companion_Result_.Create_Failure_(comamazonawsdynamodbsmithygenerated.Error_ToDafny(native_error)) + } + return Wrappers.Companion_Result_.Create_Success_(comamazonawsdynamodbsmithygenerated.RestoreTableFromBackupOutput_ToDafny(*native_response)) +} + +func (shim *Shim) RestoreTableToPointInTime(input ComAmazonawsDynamodbTypes.RestoreTableToPointInTimeInput) Wrappers.Result { + var native_request = comamazonawsdynamodbsmithygenerated.RestoreTableToPointInTimeInput_FromDafny(input) + var native_response, native_error = shim.Client.RestoreTableToPointInTime(context.Background(), &native_request) + if native_error != nil { + return Wrappers.Companion_Result_.Create_Failure_(comamazonawsdynamodbsmithygenerated.Error_ToDafny(native_error)) + } + return Wrappers.Companion_Result_.Create_Success_(comamazonawsdynamodbsmithygenerated.RestoreTableToPointInTimeOutput_ToDafny(*native_response)) +} + +func (shim *Shim) Scan(input ComAmazonawsDynamodbTypes.ScanInput) Wrappers.Result { + var native_request = comamazonawsdynamodbsmithygenerated.ScanInput_FromDafny(input) + var native_response, native_error = shim.Client.Scan(context.Background(), &native_request) + if native_error != nil { + return Wrappers.Companion_Result_.Create_Failure_(comamazonawsdynamodbsmithygenerated.Error_ToDafny(native_error)) + } + return Wrappers.Companion_Result_.Create_Success_(comamazonawsdynamodbsmithygenerated.ScanOutput_ToDafny(*native_response)) +} + +func (shim *Shim) TagResource(input ComAmazonawsDynamodbTypes.TagResourceInput) Wrappers.Result { + var native_request = comamazonawsdynamodbsmithygenerated.TagResourceInput_FromDafny(input) + var _, native_error = shim.Client.TagResource(context.Background(), &native_request) + if native_error != nil { + return Wrappers.Companion_Result_.Create_Failure_(comamazonawsdynamodbsmithygenerated.Error_ToDafny(native_error)) + } + return Wrappers.Companion_Result_.Create_Success_(dafny.TupleOf()) +} + +func (shim *Shim) TransactGetItems(input ComAmazonawsDynamodbTypes.TransactGetItemsInput) Wrappers.Result { + var native_request = comamazonawsdynamodbsmithygenerated.TransactGetItemsInput_FromDafny(input) + var native_response, native_error = shim.Client.TransactGetItems(context.Background(), &native_request) + if native_error != nil { + return Wrappers.Companion_Result_.Create_Failure_(comamazonawsdynamodbsmithygenerated.Error_ToDafny(native_error)) + } + return Wrappers.Companion_Result_.Create_Success_(comamazonawsdynamodbsmithygenerated.TransactGetItemsOutput_ToDafny(*native_response)) +} + +func (shim *Shim) TransactWriteItems(input ComAmazonawsDynamodbTypes.TransactWriteItemsInput) Wrappers.Result { + var native_request = comamazonawsdynamodbsmithygenerated.TransactWriteItemsInput_FromDafny(input) + var native_response, native_error = shim.Client.TransactWriteItems(context.Background(), &native_request) + if native_error != nil { + return Wrappers.Companion_Result_.Create_Failure_(comamazonawsdynamodbsmithygenerated.Error_ToDafny(native_error)) + } + return Wrappers.Companion_Result_.Create_Success_(comamazonawsdynamodbsmithygenerated.TransactWriteItemsOutput_ToDafny(*native_response)) +} + +func (shim *Shim) UntagResource(input ComAmazonawsDynamodbTypes.UntagResourceInput) Wrappers.Result { + var native_request = comamazonawsdynamodbsmithygenerated.UntagResourceInput_FromDafny(input) + var _, native_error = shim.Client.UntagResource(context.Background(), &native_request) + if native_error != nil { + return Wrappers.Companion_Result_.Create_Failure_(comamazonawsdynamodbsmithygenerated.Error_ToDafny(native_error)) + } + return Wrappers.Companion_Result_.Create_Success_(dafny.TupleOf()) +} + +func (shim *Shim) UpdateContinuousBackups(input ComAmazonawsDynamodbTypes.UpdateContinuousBackupsInput) Wrappers.Result { + var native_request = comamazonawsdynamodbsmithygenerated.UpdateContinuousBackupsInput_FromDafny(input) + var native_response, native_error = shim.Client.UpdateContinuousBackups(context.Background(), &native_request) + if native_error != nil { + return Wrappers.Companion_Result_.Create_Failure_(comamazonawsdynamodbsmithygenerated.Error_ToDafny(native_error)) + } + return Wrappers.Companion_Result_.Create_Success_(comamazonawsdynamodbsmithygenerated.UpdateContinuousBackupsOutput_ToDafny(*native_response)) +} + +func (shim *Shim) UpdateContributorInsights(input ComAmazonawsDynamodbTypes.UpdateContributorInsightsInput) Wrappers.Result { + var native_request = comamazonawsdynamodbsmithygenerated.UpdateContributorInsightsInput_FromDafny(input) + var native_response, native_error = shim.Client.UpdateContributorInsights(context.Background(), &native_request) + if native_error != nil { + return Wrappers.Companion_Result_.Create_Failure_(comamazonawsdynamodbsmithygenerated.Error_ToDafny(native_error)) + } + return Wrappers.Companion_Result_.Create_Success_(comamazonawsdynamodbsmithygenerated.UpdateContributorInsightsOutput_ToDafny(*native_response)) +} + +func (shim *Shim) UpdateGlobalTable(input ComAmazonawsDynamodbTypes.UpdateGlobalTableInput) Wrappers.Result { + var native_request = comamazonawsdynamodbsmithygenerated.UpdateGlobalTableInput_FromDafny(input) + var native_response, native_error = shim.Client.UpdateGlobalTable(context.Background(), &native_request) + if native_error != nil { + return Wrappers.Companion_Result_.Create_Failure_(comamazonawsdynamodbsmithygenerated.Error_ToDafny(native_error)) + } + return Wrappers.Companion_Result_.Create_Success_(comamazonawsdynamodbsmithygenerated.UpdateGlobalTableOutput_ToDafny(*native_response)) +} + +func (shim *Shim) UpdateGlobalTableSettings(input ComAmazonawsDynamodbTypes.UpdateGlobalTableSettingsInput) Wrappers.Result { + var native_request = comamazonawsdynamodbsmithygenerated.UpdateGlobalTableSettingsInput_FromDafny(input) + var native_response, native_error = shim.Client.UpdateGlobalTableSettings(context.Background(), &native_request) + if native_error != nil { + return Wrappers.Companion_Result_.Create_Failure_(comamazonawsdynamodbsmithygenerated.Error_ToDafny(native_error)) + } + return Wrappers.Companion_Result_.Create_Success_(comamazonawsdynamodbsmithygenerated.UpdateGlobalTableSettingsOutput_ToDafny(*native_response)) +} + +func (shim *Shim) UpdateItem(input ComAmazonawsDynamodbTypes.UpdateItemInput) Wrappers.Result { + var native_request = comamazonawsdynamodbsmithygenerated.UpdateItemInput_FromDafny(input) + var native_response, native_error = shim.Client.UpdateItem(context.Background(), &native_request) + if native_error != nil { + return Wrappers.Companion_Result_.Create_Failure_(comamazonawsdynamodbsmithygenerated.Error_ToDafny(native_error)) + } + return Wrappers.Companion_Result_.Create_Success_(comamazonawsdynamodbsmithygenerated.UpdateItemOutput_ToDafny(*native_response)) +} + +func (shim *Shim) UpdateKinesisStreamingDestination(input ComAmazonawsDynamodbTypes.UpdateKinesisStreamingDestinationInput) Wrappers.Result { + var native_request = comamazonawsdynamodbsmithygenerated.UpdateKinesisStreamingDestinationInput_FromDafny(input) + var native_response, native_error = shim.Client.UpdateKinesisStreamingDestination(context.Background(), &native_request) + if native_error != nil { + return Wrappers.Companion_Result_.Create_Failure_(comamazonawsdynamodbsmithygenerated.Error_ToDafny(native_error)) + } + return Wrappers.Companion_Result_.Create_Success_(comamazonawsdynamodbsmithygenerated.UpdateKinesisStreamingDestinationOutput_ToDafny(*native_response)) +} + +func (shim *Shim) UpdateTable(input ComAmazonawsDynamodbTypes.UpdateTableInput) Wrappers.Result { + var native_request = comamazonawsdynamodbsmithygenerated.UpdateTableInput_FromDafny(input) + var native_response, native_error = shim.Client.UpdateTable(context.Background(), &native_request) + if native_error != nil { + return Wrappers.Companion_Result_.Create_Failure_(comamazonawsdynamodbsmithygenerated.Error_ToDafny(native_error)) + } + return Wrappers.Companion_Result_.Create_Success_(comamazonawsdynamodbsmithygenerated.UpdateTableOutput_ToDafny(*native_response)) +} + +func (shim *Shim) UpdateTableReplicaAutoScaling(input ComAmazonawsDynamodbTypes.UpdateTableReplicaAutoScalingInput) Wrappers.Result { + var native_request = comamazonawsdynamodbsmithygenerated.UpdateTableReplicaAutoScalingInput_FromDafny(input) + var native_response, native_error = shim.Client.UpdateTableReplicaAutoScaling(context.Background(), &native_request) + if native_error != nil { + return Wrappers.Companion_Result_.Create_Failure_(comamazonawsdynamodbsmithygenerated.Error_ToDafny(native_error)) + } + return Wrappers.Companion_Result_.Create_Success_(comamazonawsdynamodbsmithygenerated.UpdateTableReplicaAutoScalingOutput_ToDafny(*native_response)) +} + +func (shim *Shim) UpdateTimeToLive(input ComAmazonawsDynamodbTypes.UpdateTimeToLiveInput) Wrappers.Result { + var native_request = comamazonawsdynamodbsmithygenerated.UpdateTimeToLiveInput_FromDafny(input) + var native_response, native_error = shim.Client.UpdateTimeToLive(context.Background(), &native_request) + if native_error != nil { + return Wrappers.Companion_Result_.Create_Failure_(comamazonawsdynamodbsmithygenerated.Error_ToDafny(native_error)) + } + return Wrappers.Companion_Result_.Create_Success_(comamazonawsdynamodbsmithygenerated.UpdateTimeToLiveOutput_ToDafny(*native_response)) +} diff --git a/customer-preview/dynamodb/comamazonawsdynamodbsmithygenerated/to_dafny.go b/customer-preview/dynamodb/comamazonawsdynamodbsmithygenerated/to_dafny.go new file mode 100644 index 000000000..010c3c9e0 --- /dev/null +++ b/customer-preview/dynamodb/comamazonawsdynamodbsmithygenerated/to_dafny.go @@ -0,0 +1,14333 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package comamazonawsdynamodbsmithygenerated + +import ( + "encoding/binary" + "errors" + "math" + "time" + + "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/ComAmazonawsDynamodbTypes" + "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-sdk-go-v2/service/dynamodb" + "github.com/aws/aws-sdk-go-v2/service/dynamodb/types" + "github.com/dafny-lang/DafnyRuntimeGo/v4/dafny" +) + +func BatchExecuteStatementInput_ToDafny(nativeInput dynamodb.BatchExecuteStatementInput) ComAmazonawsDynamodbTypes.BatchExecuteStatementInput { + + return func() ComAmazonawsDynamodbTypes.BatchExecuteStatementInput { + + return ComAmazonawsDynamodbTypes.Companion_BatchExecuteStatementInput_.Create_BatchExecuteStatementInput_(Com_amazonaws_dynamodb_BatchExecuteStatementInput_Statements_ToDafny(nativeInput.Statements), Com_amazonaws_dynamodb_BatchExecuteStatementInput_ReturnConsumedCapacity_ToDafny(nativeInput.ReturnConsumedCapacity)) + }() + +} + +func BatchExecuteStatementOutput_ToDafny(nativeOutput dynamodb.BatchExecuteStatementOutput) ComAmazonawsDynamodbTypes.BatchExecuteStatementOutput { + + return func() ComAmazonawsDynamodbTypes.BatchExecuteStatementOutput { + + return ComAmazonawsDynamodbTypes.Companion_BatchExecuteStatementOutput_.Create_BatchExecuteStatementOutput_(Com_amazonaws_dynamodb_BatchExecuteStatementOutput_Responses_ToDafny(nativeOutput.Responses), Com_amazonaws_dynamodb_BatchExecuteStatementOutput_ConsumedCapacity_ToDafny(nativeOutput.ConsumedCapacity)) + }() + +} + +func BatchGetItemInput_ToDafny(nativeInput dynamodb.BatchGetItemInput) ComAmazonawsDynamodbTypes.BatchGetItemInput { + + return func() ComAmazonawsDynamodbTypes.BatchGetItemInput { + + return ComAmazonawsDynamodbTypes.Companion_BatchGetItemInput_.Create_BatchGetItemInput_(Com_amazonaws_dynamodb_BatchGetItemInput_RequestItems_ToDafny(nativeInput.RequestItems), Com_amazonaws_dynamodb_BatchGetItemInput_ReturnConsumedCapacity_ToDafny(nativeInput.ReturnConsumedCapacity)) + }() + +} + +func BatchGetItemOutput_ToDafny(nativeOutput dynamodb.BatchGetItemOutput) ComAmazonawsDynamodbTypes.BatchGetItemOutput { + + return func() ComAmazonawsDynamodbTypes.BatchGetItemOutput { + + return ComAmazonawsDynamodbTypes.Companion_BatchGetItemOutput_.Create_BatchGetItemOutput_(Com_amazonaws_dynamodb_BatchGetItemOutput_Responses_ToDafny(nativeOutput.Responses), Com_amazonaws_dynamodb_BatchGetItemOutput_UnprocessedKeys_ToDafny(nativeOutput.UnprocessedKeys), Com_amazonaws_dynamodb_BatchGetItemOutput_ConsumedCapacity_ToDafny(nativeOutput.ConsumedCapacity)) + }() + +} + +func BatchWriteItemInput_ToDafny(nativeInput dynamodb.BatchWriteItemInput) ComAmazonawsDynamodbTypes.BatchWriteItemInput { + + return func() ComAmazonawsDynamodbTypes.BatchWriteItemInput { + + return ComAmazonawsDynamodbTypes.Companion_BatchWriteItemInput_.Create_BatchWriteItemInput_(Com_amazonaws_dynamodb_BatchWriteItemInput_RequestItems_ToDafny(nativeInput.RequestItems), Com_amazonaws_dynamodb_BatchWriteItemInput_ReturnConsumedCapacity_ToDafny(nativeInput.ReturnConsumedCapacity), Com_amazonaws_dynamodb_BatchWriteItemInput_ReturnItemCollectionMetrics_ToDafny(nativeInput.ReturnItemCollectionMetrics)) + }() + +} + +func BatchWriteItemOutput_ToDafny(nativeOutput dynamodb.BatchWriteItemOutput) ComAmazonawsDynamodbTypes.BatchWriteItemOutput { + + return func() ComAmazonawsDynamodbTypes.BatchWriteItemOutput { + + return ComAmazonawsDynamodbTypes.Companion_BatchWriteItemOutput_.Create_BatchWriteItemOutput_(Com_amazonaws_dynamodb_BatchWriteItemOutput_UnprocessedItems_ToDafny(nativeOutput.UnprocessedItems), Com_amazonaws_dynamodb_BatchWriteItemOutput_ItemCollectionMetrics_ToDafny(nativeOutput.ItemCollectionMetrics), Com_amazonaws_dynamodb_BatchWriteItemOutput_ConsumedCapacity_ToDafny(nativeOutput.ConsumedCapacity)) + }() + +} + +func CreateBackupInput_ToDafny(nativeInput dynamodb.CreateBackupInput) ComAmazonawsDynamodbTypes.CreateBackupInput { + + return func() ComAmazonawsDynamodbTypes.CreateBackupInput { + + return ComAmazonawsDynamodbTypes.Companion_CreateBackupInput_.Create_CreateBackupInput_(Com_amazonaws_dynamodb_CreateBackupInput_TableName_ToDafny(nativeInput.TableName), Com_amazonaws_dynamodb_CreateBackupInput_BackupName_ToDafny(nativeInput.BackupName)) + }() + +} + +func CreateBackupOutput_ToDafny(nativeOutput dynamodb.CreateBackupOutput) ComAmazonawsDynamodbTypes.CreateBackupOutput { + + return func() ComAmazonawsDynamodbTypes.CreateBackupOutput { + + return ComAmazonawsDynamodbTypes.Companion_CreateBackupOutput_.Create_CreateBackupOutput_(Com_amazonaws_dynamodb_CreateBackupOutput_BackupDetails_ToDafny(nativeOutput.BackupDetails)) + }() + +} + +func CreateGlobalTableInput_ToDafny(nativeInput dynamodb.CreateGlobalTableInput) ComAmazonawsDynamodbTypes.CreateGlobalTableInput { + + return func() ComAmazonawsDynamodbTypes.CreateGlobalTableInput { + + return ComAmazonawsDynamodbTypes.Companion_CreateGlobalTableInput_.Create_CreateGlobalTableInput_(Com_amazonaws_dynamodb_CreateGlobalTableInput_GlobalTableName_ToDafny(nativeInput.GlobalTableName), Com_amazonaws_dynamodb_CreateGlobalTableInput_ReplicationGroup_ToDafny(nativeInput.ReplicationGroup)) + }() + +} + +func CreateGlobalTableOutput_ToDafny(nativeOutput dynamodb.CreateGlobalTableOutput) ComAmazonawsDynamodbTypes.CreateGlobalTableOutput { + + return func() ComAmazonawsDynamodbTypes.CreateGlobalTableOutput { + + return ComAmazonawsDynamodbTypes.Companion_CreateGlobalTableOutput_.Create_CreateGlobalTableOutput_(Com_amazonaws_dynamodb_CreateGlobalTableOutput_GlobalTableDescription_ToDafny(nativeOutput.GlobalTableDescription)) + }() + +} + +func CreateTableInput_ToDafny(nativeInput dynamodb.CreateTableInput) ComAmazonawsDynamodbTypes.CreateTableInput { + + return func() ComAmazonawsDynamodbTypes.CreateTableInput { + + return ComAmazonawsDynamodbTypes.Companion_CreateTableInput_.Create_CreateTableInput_(Com_amazonaws_dynamodb_CreateTableInput_AttributeDefinitions_ToDafny(nativeInput.AttributeDefinitions), Com_amazonaws_dynamodb_CreateTableInput_TableName_ToDafny(nativeInput.TableName), Com_amazonaws_dynamodb_CreateTableInput_KeySchema_ToDafny(nativeInput.KeySchema), Com_amazonaws_dynamodb_CreateTableInput_LocalSecondaryIndexes_ToDafny(nativeInput.LocalSecondaryIndexes), Com_amazonaws_dynamodb_CreateTableInput_GlobalSecondaryIndexes_ToDafny(nativeInput.GlobalSecondaryIndexes), Com_amazonaws_dynamodb_CreateTableInput_BillingMode_ToDafny(nativeInput.BillingMode), Com_amazonaws_dynamodb_CreateTableInput_ProvisionedThroughput_ToDafny(nativeInput.ProvisionedThroughput), Com_amazonaws_dynamodb_CreateTableInput_StreamSpecification_ToDafny(nativeInput.StreamSpecification), Com_amazonaws_dynamodb_CreateTableInput_SSESpecification_ToDafny(nativeInput.SSESpecification), Com_amazonaws_dynamodb_CreateTableInput_Tags_ToDafny(nativeInput.Tags), Com_amazonaws_dynamodb_CreateTableInput_TableClass_ToDafny(nativeInput.TableClass), Com_amazonaws_dynamodb_CreateTableInput_DeletionProtectionEnabled_ToDafny(nativeInput.DeletionProtectionEnabled), Com_amazonaws_dynamodb_CreateTableInput_ResourcePolicy_ToDafny(nativeInput.ResourcePolicy), Com_amazonaws_dynamodb_CreateTableInput_OnDemandThroughput_ToDafny(nativeInput.OnDemandThroughput)) + }() + +} + +func CreateTableOutput_ToDafny(nativeOutput dynamodb.CreateTableOutput) ComAmazonawsDynamodbTypes.CreateTableOutput { + + return func() ComAmazonawsDynamodbTypes.CreateTableOutput { + + return ComAmazonawsDynamodbTypes.Companion_CreateTableOutput_.Create_CreateTableOutput_(Com_amazonaws_dynamodb_CreateTableOutput_TableDescription_ToDafny(nativeOutput.TableDescription)) + }() + +} + +func DeleteBackupInput_ToDafny(nativeInput dynamodb.DeleteBackupInput) ComAmazonawsDynamodbTypes.DeleteBackupInput { + + return func() ComAmazonawsDynamodbTypes.DeleteBackupInput { + + return ComAmazonawsDynamodbTypes.Companion_DeleteBackupInput_.Create_DeleteBackupInput_(Com_amazonaws_dynamodb_DeleteBackupInput_BackupArn_ToDafny(nativeInput.BackupArn)) + }() + +} + +func DeleteBackupOutput_ToDafny(nativeOutput dynamodb.DeleteBackupOutput) ComAmazonawsDynamodbTypes.DeleteBackupOutput { + + return func() ComAmazonawsDynamodbTypes.DeleteBackupOutput { + + return ComAmazonawsDynamodbTypes.Companion_DeleteBackupOutput_.Create_DeleteBackupOutput_(Com_amazonaws_dynamodb_DeleteBackupOutput_BackupDescription_ToDafny(nativeOutput.BackupDescription)) + }() + +} + +func DeleteItemInput_ToDafny(nativeInput dynamodb.DeleteItemInput) ComAmazonawsDynamodbTypes.DeleteItemInput { + + return func() ComAmazonawsDynamodbTypes.DeleteItemInput { + + return ComAmazonawsDynamodbTypes.Companion_DeleteItemInput_.Create_DeleteItemInput_(Com_amazonaws_dynamodb_DeleteItemInput_TableName_ToDafny(nativeInput.TableName), Com_amazonaws_dynamodb_DeleteItemInput_Key_ToDafny(nativeInput.Key), Com_amazonaws_dynamodb_DeleteItemInput_Expected_ToDafny(nativeInput.Expected), Com_amazonaws_dynamodb_DeleteItemInput_ConditionalOperator_ToDafny(nativeInput.ConditionalOperator), Com_amazonaws_dynamodb_DeleteItemInput_ReturnValues_ToDafny(nativeInput.ReturnValues), Com_amazonaws_dynamodb_DeleteItemInput_ReturnConsumedCapacity_ToDafny(nativeInput.ReturnConsumedCapacity), Com_amazonaws_dynamodb_DeleteItemInput_ReturnItemCollectionMetrics_ToDafny(nativeInput.ReturnItemCollectionMetrics), Com_amazonaws_dynamodb_DeleteItemInput_ConditionExpression_ToDafny(nativeInput.ConditionExpression), Com_amazonaws_dynamodb_DeleteItemInput_ExpressionAttributeNames_ToDafny(nativeInput.ExpressionAttributeNames), Com_amazonaws_dynamodb_DeleteItemInput_ExpressionAttributeValues_ToDafny(nativeInput.ExpressionAttributeValues), Com_amazonaws_dynamodb_DeleteItemInput_ReturnValuesOnConditionCheckFailure_ToDafny(nativeInput.ReturnValuesOnConditionCheckFailure)) + }() + +} + +func DeleteItemOutput_ToDafny(nativeOutput dynamodb.DeleteItemOutput) ComAmazonawsDynamodbTypes.DeleteItemOutput { + + return func() ComAmazonawsDynamodbTypes.DeleteItemOutput { + + return ComAmazonawsDynamodbTypes.Companion_DeleteItemOutput_.Create_DeleteItemOutput_(Com_amazonaws_dynamodb_DeleteItemOutput_Attributes_ToDafny(nativeOutput.Attributes), Com_amazonaws_dynamodb_DeleteItemOutput_ConsumedCapacity_ToDafny(nativeOutput.ConsumedCapacity), Com_amazonaws_dynamodb_DeleteItemOutput_ItemCollectionMetrics_ToDafny(nativeOutput.ItemCollectionMetrics)) + }() + +} + +func DeleteResourcePolicyInput_ToDafny(nativeInput dynamodb.DeleteResourcePolicyInput) ComAmazonawsDynamodbTypes.DeleteResourcePolicyInput { + + return func() ComAmazonawsDynamodbTypes.DeleteResourcePolicyInput { + + return ComAmazonawsDynamodbTypes.Companion_DeleteResourcePolicyInput_.Create_DeleteResourcePolicyInput_(Com_amazonaws_dynamodb_DeleteResourcePolicyInput_ResourceArn_ToDafny(nativeInput.ResourceArn), Com_amazonaws_dynamodb_DeleteResourcePolicyInput_ExpectedRevisionId_ToDafny(nativeInput.ExpectedRevisionId)) + }() + +} + +func DeleteResourcePolicyOutput_ToDafny(nativeOutput dynamodb.DeleteResourcePolicyOutput) ComAmazonawsDynamodbTypes.DeleteResourcePolicyOutput { + + return func() ComAmazonawsDynamodbTypes.DeleteResourcePolicyOutput { + + return ComAmazonawsDynamodbTypes.Companion_DeleteResourcePolicyOutput_.Create_DeleteResourcePolicyOutput_(Com_amazonaws_dynamodb_DeleteResourcePolicyOutput_RevisionId_ToDafny(nativeOutput.RevisionId)) + }() + +} + +func DeleteTableInput_ToDafny(nativeInput dynamodb.DeleteTableInput) ComAmazonawsDynamodbTypes.DeleteTableInput { + + return func() ComAmazonawsDynamodbTypes.DeleteTableInput { + + return ComAmazonawsDynamodbTypes.Companion_DeleteTableInput_.Create_DeleteTableInput_(Com_amazonaws_dynamodb_DeleteTableInput_TableName_ToDafny(nativeInput.TableName)) + }() + +} + +func DeleteTableOutput_ToDafny(nativeOutput dynamodb.DeleteTableOutput) ComAmazonawsDynamodbTypes.DeleteTableOutput { + + return func() ComAmazonawsDynamodbTypes.DeleteTableOutput { + + return ComAmazonawsDynamodbTypes.Companion_DeleteTableOutput_.Create_DeleteTableOutput_(Com_amazonaws_dynamodb_DeleteTableOutput_TableDescription_ToDafny(nativeOutput.TableDescription)) + }() + +} + +func DescribeBackupInput_ToDafny(nativeInput dynamodb.DescribeBackupInput) ComAmazonawsDynamodbTypes.DescribeBackupInput { + + return func() ComAmazonawsDynamodbTypes.DescribeBackupInput { + + return ComAmazonawsDynamodbTypes.Companion_DescribeBackupInput_.Create_DescribeBackupInput_(Com_amazonaws_dynamodb_DescribeBackupInput_BackupArn_ToDafny(nativeInput.BackupArn)) + }() + +} + +func DescribeBackupOutput_ToDafny(nativeOutput dynamodb.DescribeBackupOutput) ComAmazonawsDynamodbTypes.DescribeBackupOutput { + + return func() ComAmazonawsDynamodbTypes.DescribeBackupOutput { + + return ComAmazonawsDynamodbTypes.Companion_DescribeBackupOutput_.Create_DescribeBackupOutput_(Com_amazonaws_dynamodb_DescribeBackupOutput_BackupDescription_ToDafny(nativeOutput.BackupDescription)) + }() + +} + +func DescribeContinuousBackupsInput_ToDafny(nativeInput dynamodb.DescribeContinuousBackupsInput) ComAmazonawsDynamodbTypes.DescribeContinuousBackupsInput { + + return func() ComAmazonawsDynamodbTypes.DescribeContinuousBackupsInput { + + return ComAmazonawsDynamodbTypes.Companion_DescribeContinuousBackupsInput_.Create_DescribeContinuousBackupsInput_(Com_amazonaws_dynamodb_DescribeContinuousBackupsInput_TableName_ToDafny(nativeInput.TableName)) + }() + +} + +func DescribeContinuousBackupsOutput_ToDafny(nativeOutput dynamodb.DescribeContinuousBackupsOutput) ComAmazonawsDynamodbTypes.DescribeContinuousBackupsOutput { + + return func() ComAmazonawsDynamodbTypes.DescribeContinuousBackupsOutput { + + return ComAmazonawsDynamodbTypes.Companion_DescribeContinuousBackupsOutput_.Create_DescribeContinuousBackupsOutput_(Com_amazonaws_dynamodb_DescribeContinuousBackupsOutput_ContinuousBackupsDescription_ToDafny(nativeOutput.ContinuousBackupsDescription)) + }() + +} + +func DescribeContributorInsightsInput_ToDafny(nativeInput dynamodb.DescribeContributorInsightsInput) ComAmazonawsDynamodbTypes.DescribeContributorInsightsInput { + + return func() ComAmazonawsDynamodbTypes.DescribeContributorInsightsInput { + + return ComAmazonawsDynamodbTypes.Companion_DescribeContributorInsightsInput_.Create_DescribeContributorInsightsInput_(Com_amazonaws_dynamodb_DescribeContributorInsightsInput_TableName_ToDafny(nativeInput.TableName), Com_amazonaws_dynamodb_DescribeContributorInsightsInput_IndexName_ToDafny(nativeInput.IndexName)) + }() + +} + +func DescribeContributorInsightsOutput_ToDafny(nativeOutput dynamodb.DescribeContributorInsightsOutput) ComAmazonawsDynamodbTypes.DescribeContributorInsightsOutput { + + return func() ComAmazonawsDynamodbTypes.DescribeContributorInsightsOutput { + + return ComAmazonawsDynamodbTypes.Companion_DescribeContributorInsightsOutput_.Create_DescribeContributorInsightsOutput_(Com_amazonaws_dynamodb_DescribeContributorInsightsOutput_TableName_ToDafny(nativeOutput.TableName), Com_amazonaws_dynamodb_DescribeContributorInsightsOutput_IndexName_ToDafny(nativeOutput.IndexName), Com_amazonaws_dynamodb_DescribeContributorInsightsOutput_ContributorInsightsRuleList_ToDafny(nativeOutput.ContributorInsightsRuleList), Com_amazonaws_dynamodb_DescribeContributorInsightsOutput_ContributorInsightsStatus_ToDafny(nativeOutput.ContributorInsightsStatus), Com_amazonaws_dynamodb_DescribeContributorInsightsOutput_LastUpdateDateTime_ToDafny(nativeOutput.LastUpdateDateTime), Com_amazonaws_dynamodb_DescribeContributorInsightsOutput_FailureException_ToDafny(nativeOutput.FailureException)) + }() + +} + +func DescribeEndpointsInput_ToDafny(nativeInput dynamodb.DescribeEndpointsInput) ComAmazonawsDynamodbTypes.DescribeEndpointsRequest { + + return func() ComAmazonawsDynamodbTypes.DescribeEndpointsRequest { + + return ComAmazonawsDynamodbTypes.Companion_DescribeEndpointsRequest_.Create_DescribeEndpointsRequest_() + }() + +} + +func DescribeEndpointsOutput_ToDafny(nativeOutput dynamodb.DescribeEndpointsOutput) ComAmazonawsDynamodbTypes.DescribeEndpointsResponse { + + return func() ComAmazonawsDynamodbTypes.DescribeEndpointsResponse { + + return ComAmazonawsDynamodbTypes.Companion_DescribeEndpointsResponse_.Create_DescribeEndpointsResponse_(Com_amazonaws_dynamodb_DescribeEndpointsResponse_Endpoints_ToDafny(nativeOutput.Endpoints)) + }() + +} + +func DescribeExportInput_ToDafny(nativeInput dynamodb.DescribeExportInput) ComAmazonawsDynamodbTypes.DescribeExportInput { + + return func() ComAmazonawsDynamodbTypes.DescribeExportInput { + + return ComAmazonawsDynamodbTypes.Companion_DescribeExportInput_.Create_DescribeExportInput_(Com_amazonaws_dynamodb_DescribeExportInput_ExportArn_ToDafny(nativeInput.ExportArn)) + }() + +} + +func DescribeExportOutput_ToDafny(nativeOutput dynamodb.DescribeExportOutput) ComAmazonawsDynamodbTypes.DescribeExportOutput { + + return func() ComAmazonawsDynamodbTypes.DescribeExportOutput { + + return ComAmazonawsDynamodbTypes.Companion_DescribeExportOutput_.Create_DescribeExportOutput_(Com_amazonaws_dynamodb_DescribeExportOutput_ExportDescription_ToDafny(nativeOutput.ExportDescription)) + }() + +} + +func DescribeGlobalTableInput_ToDafny(nativeInput dynamodb.DescribeGlobalTableInput) ComAmazonawsDynamodbTypes.DescribeGlobalTableInput { + + return func() ComAmazonawsDynamodbTypes.DescribeGlobalTableInput { + + return ComAmazonawsDynamodbTypes.Companion_DescribeGlobalTableInput_.Create_DescribeGlobalTableInput_(Com_amazonaws_dynamodb_DescribeGlobalTableInput_GlobalTableName_ToDafny(nativeInput.GlobalTableName)) + }() + +} + +func DescribeGlobalTableOutput_ToDafny(nativeOutput dynamodb.DescribeGlobalTableOutput) ComAmazonawsDynamodbTypes.DescribeGlobalTableOutput { + + return func() ComAmazonawsDynamodbTypes.DescribeGlobalTableOutput { + + return ComAmazonawsDynamodbTypes.Companion_DescribeGlobalTableOutput_.Create_DescribeGlobalTableOutput_(Com_amazonaws_dynamodb_DescribeGlobalTableOutput_GlobalTableDescription_ToDafny(nativeOutput.GlobalTableDescription)) + }() + +} + +func DescribeGlobalTableSettingsInput_ToDafny(nativeInput dynamodb.DescribeGlobalTableSettingsInput) ComAmazonawsDynamodbTypes.DescribeGlobalTableSettingsInput { + + return func() ComAmazonawsDynamodbTypes.DescribeGlobalTableSettingsInput { + + return ComAmazonawsDynamodbTypes.Companion_DescribeGlobalTableSettingsInput_.Create_DescribeGlobalTableSettingsInput_(Com_amazonaws_dynamodb_DescribeGlobalTableSettingsInput_GlobalTableName_ToDafny(nativeInput.GlobalTableName)) + }() + +} + +func DescribeGlobalTableSettingsOutput_ToDafny(nativeOutput dynamodb.DescribeGlobalTableSettingsOutput) ComAmazonawsDynamodbTypes.DescribeGlobalTableSettingsOutput { + + return func() ComAmazonawsDynamodbTypes.DescribeGlobalTableSettingsOutput { + + return ComAmazonawsDynamodbTypes.Companion_DescribeGlobalTableSettingsOutput_.Create_DescribeGlobalTableSettingsOutput_(Com_amazonaws_dynamodb_DescribeGlobalTableSettingsOutput_GlobalTableName_ToDafny(nativeOutput.GlobalTableName), Com_amazonaws_dynamodb_DescribeGlobalTableSettingsOutput_ReplicaSettings_ToDafny(nativeOutput.ReplicaSettings)) + }() + +} + +func DescribeImportInput_ToDafny(nativeInput dynamodb.DescribeImportInput) ComAmazonawsDynamodbTypes.DescribeImportInput { + + return func() ComAmazonawsDynamodbTypes.DescribeImportInput { + + return ComAmazonawsDynamodbTypes.Companion_DescribeImportInput_.Create_DescribeImportInput_(Com_amazonaws_dynamodb_DescribeImportInput_ImportArn_ToDafny(nativeInput.ImportArn)) + }() + +} + +func DescribeImportOutput_ToDafny(nativeOutput dynamodb.DescribeImportOutput) ComAmazonawsDynamodbTypes.DescribeImportOutput { + + return func() ComAmazonawsDynamodbTypes.DescribeImportOutput { + + return ComAmazonawsDynamodbTypes.Companion_DescribeImportOutput_.Create_DescribeImportOutput_(Com_amazonaws_dynamodb_DescribeImportOutput_ImportTableDescription_ToDafny(nativeOutput.ImportTableDescription)) + }() + +} + +func DescribeKinesisStreamingDestinationInput_ToDafny(nativeInput dynamodb.DescribeKinesisStreamingDestinationInput) ComAmazonawsDynamodbTypes.DescribeKinesisStreamingDestinationInput { + + return func() ComAmazonawsDynamodbTypes.DescribeKinesisStreamingDestinationInput { + + return ComAmazonawsDynamodbTypes.Companion_DescribeKinesisStreamingDestinationInput_.Create_DescribeKinesisStreamingDestinationInput_(Com_amazonaws_dynamodb_DescribeKinesisStreamingDestinationInput_TableName_ToDafny(nativeInput.TableName)) + }() + +} + +func DescribeKinesisStreamingDestinationOutput_ToDafny(nativeOutput dynamodb.DescribeKinesisStreamingDestinationOutput) ComAmazonawsDynamodbTypes.DescribeKinesisStreamingDestinationOutput { + + return func() ComAmazonawsDynamodbTypes.DescribeKinesisStreamingDestinationOutput { + + return ComAmazonawsDynamodbTypes.Companion_DescribeKinesisStreamingDestinationOutput_.Create_DescribeKinesisStreamingDestinationOutput_(Com_amazonaws_dynamodb_DescribeKinesisStreamingDestinationOutput_TableName_ToDafny(nativeOutput.TableName), Com_amazonaws_dynamodb_DescribeKinesisStreamingDestinationOutput_KinesisDataStreamDestinations_ToDafny(nativeOutput.KinesisDataStreamDestinations)) + }() + +} + +func DescribeLimitsInput_ToDafny(nativeInput dynamodb.DescribeLimitsInput) ComAmazonawsDynamodbTypes.DescribeLimitsInput { + + return func() ComAmazonawsDynamodbTypes.DescribeLimitsInput { + + return ComAmazonawsDynamodbTypes.Companion_DescribeLimitsInput_.Create_DescribeLimitsInput_() + }() + +} + +func DescribeLimitsOutput_ToDafny(nativeOutput dynamodb.DescribeLimitsOutput) ComAmazonawsDynamodbTypes.DescribeLimitsOutput { + + return func() ComAmazonawsDynamodbTypes.DescribeLimitsOutput { + + return ComAmazonawsDynamodbTypes.Companion_DescribeLimitsOutput_.Create_DescribeLimitsOutput_(Com_amazonaws_dynamodb_DescribeLimitsOutput_AccountMaxReadCapacityUnits_ToDafny(nativeOutput.AccountMaxReadCapacityUnits), Com_amazonaws_dynamodb_DescribeLimitsOutput_AccountMaxWriteCapacityUnits_ToDafny(nativeOutput.AccountMaxWriteCapacityUnits), Com_amazonaws_dynamodb_DescribeLimitsOutput_TableMaxReadCapacityUnits_ToDafny(nativeOutput.TableMaxReadCapacityUnits), Com_amazonaws_dynamodb_DescribeLimitsOutput_TableMaxWriteCapacityUnits_ToDafny(nativeOutput.TableMaxWriteCapacityUnits)) + }() + +} + +func DescribeTableInput_ToDafny(nativeInput dynamodb.DescribeTableInput) ComAmazonawsDynamodbTypes.DescribeTableInput { + + return func() ComAmazonawsDynamodbTypes.DescribeTableInput { + + return ComAmazonawsDynamodbTypes.Companion_DescribeTableInput_.Create_DescribeTableInput_(Com_amazonaws_dynamodb_DescribeTableInput_TableName_ToDafny(nativeInput.TableName)) + }() + +} + +func DescribeTableOutput_ToDafny(nativeOutput dynamodb.DescribeTableOutput) ComAmazonawsDynamodbTypes.DescribeTableOutput { + + return func() ComAmazonawsDynamodbTypes.DescribeTableOutput { + + return ComAmazonawsDynamodbTypes.Companion_DescribeTableOutput_.Create_DescribeTableOutput_(Com_amazonaws_dynamodb_DescribeTableOutput_Table_ToDafny(nativeOutput.Table)) + }() + +} + +func DescribeTableReplicaAutoScalingInput_ToDafny(nativeInput dynamodb.DescribeTableReplicaAutoScalingInput) ComAmazonawsDynamodbTypes.DescribeTableReplicaAutoScalingInput { + + return func() ComAmazonawsDynamodbTypes.DescribeTableReplicaAutoScalingInput { + + return ComAmazonawsDynamodbTypes.Companion_DescribeTableReplicaAutoScalingInput_.Create_DescribeTableReplicaAutoScalingInput_(Com_amazonaws_dynamodb_DescribeTableReplicaAutoScalingInput_TableName_ToDafny(nativeInput.TableName)) + }() + +} + +func DescribeTableReplicaAutoScalingOutput_ToDafny(nativeOutput dynamodb.DescribeTableReplicaAutoScalingOutput) ComAmazonawsDynamodbTypes.DescribeTableReplicaAutoScalingOutput { + + return func() ComAmazonawsDynamodbTypes.DescribeTableReplicaAutoScalingOutput { + + return ComAmazonawsDynamodbTypes.Companion_DescribeTableReplicaAutoScalingOutput_.Create_DescribeTableReplicaAutoScalingOutput_(Com_amazonaws_dynamodb_DescribeTableReplicaAutoScalingOutput_TableAutoScalingDescription_ToDafny(nativeOutput.TableAutoScalingDescription)) + }() + +} + +func DescribeTimeToLiveInput_ToDafny(nativeInput dynamodb.DescribeTimeToLiveInput) ComAmazonawsDynamodbTypes.DescribeTimeToLiveInput { + + return func() ComAmazonawsDynamodbTypes.DescribeTimeToLiveInput { + + return ComAmazonawsDynamodbTypes.Companion_DescribeTimeToLiveInput_.Create_DescribeTimeToLiveInput_(Com_amazonaws_dynamodb_DescribeTimeToLiveInput_TableName_ToDafny(nativeInput.TableName)) + }() + +} + +func DescribeTimeToLiveOutput_ToDafny(nativeOutput dynamodb.DescribeTimeToLiveOutput) ComAmazonawsDynamodbTypes.DescribeTimeToLiveOutput { + + return func() ComAmazonawsDynamodbTypes.DescribeTimeToLiveOutput { + + return ComAmazonawsDynamodbTypes.Companion_DescribeTimeToLiveOutput_.Create_DescribeTimeToLiveOutput_(Com_amazonaws_dynamodb_DescribeTimeToLiveOutput_TimeToLiveDescription_ToDafny(nativeOutput.TimeToLiveDescription)) + }() + +} + +func DisableKinesisStreamingDestinationInput_ToDafny(nativeInput dynamodb.DisableKinesisStreamingDestinationInput) ComAmazonawsDynamodbTypes.DisableKinesisStreamingDestinationInput { + + return func() ComAmazonawsDynamodbTypes.DisableKinesisStreamingDestinationInput { + + return ComAmazonawsDynamodbTypes.Companion_DisableKinesisStreamingDestinationInput_.Create_DisableKinesisStreamingDestinationInput_(Com_amazonaws_dynamodb_DisableKinesisStreamingDestinationInput_TableName_ToDafny(nativeInput.TableName), Com_amazonaws_dynamodb_DisableKinesisStreamingDestinationInput_StreamArn_ToDafny(nativeInput.StreamArn), Com_amazonaws_dynamodb_DisableKinesisStreamingDestinationInput_EnableKinesisStreamingConfiguration_ToDafny(nativeInput.EnableKinesisStreamingConfiguration)) + }() + +} + +func DisableKinesisStreamingDestinationOutput_ToDafny(nativeOutput dynamodb.DisableKinesisStreamingDestinationOutput) ComAmazonawsDynamodbTypes.DisableKinesisStreamingDestinationOutput { + + return func() ComAmazonawsDynamodbTypes.DisableKinesisStreamingDestinationOutput { + + return ComAmazonawsDynamodbTypes.Companion_DisableKinesisStreamingDestinationOutput_.Create_DisableKinesisStreamingDestinationOutput_(Com_amazonaws_dynamodb_DisableKinesisStreamingDestinationOutput_TableName_ToDafny(nativeOutput.TableName), Com_amazonaws_dynamodb_DisableKinesisStreamingDestinationOutput_StreamArn_ToDafny(nativeOutput.StreamArn), Com_amazonaws_dynamodb_DisableKinesisStreamingDestinationOutput_DestinationStatus_ToDafny(nativeOutput.DestinationStatus), Com_amazonaws_dynamodb_DisableKinesisStreamingDestinationOutput_EnableKinesisStreamingConfiguration_ToDafny(nativeOutput.EnableKinesisStreamingConfiguration)) + }() + +} + +func EnableKinesisStreamingDestinationInput_ToDafny(nativeInput dynamodb.EnableKinesisStreamingDestinationInput) ComAmazonawsDynamodbTypes.EnableKinesisStreamingDestinationInput { + + return func() ComAmazonawsDynamodbTypes.EnableKinesisStreamingDestinationInput { + + return ComAmazonawsDynamodbTypes.Companion_EnableKinesisStreamingDestinationInput_.Create_EnableKinesisStreamingDestinationInput_(Com_amazonaws_dynamodb_EnableKinesisStreamingDestinationInput_TableName_ToDafny(nativeInput.TableName), Com_amazonaws_dynamodb_EnableKinesisStreamingDestinationInput_StreamArn_ToDafny(nativeInput.StreamArn), Com_amazonaws_dynamodb_EnableKinesisStreamingDestinationInput_EnableKinesisStreamingConfiguration_ToDafny(nativeInput.EnableKinesisStreamingConfiguration)) + }() + +} + +func EnableKinesisStreamingDestinationOutput_ToDafny(nativeOutput dynamodb.EnableKinesisStreamingDestinationOutput) ComAmazonawsDynamodbTypes.EnableKinesisStreamingDestinationOutput { + + return func() ComAmazonawsDynamodbTypes.EnableKinesisStreamingDestinationOutput { + + return ComAmazonawsDynamodbTypes.Companion_EnableKinesisStreamingDestinationOutput_.Create_EnableKinesisStreamingDestinationOutput_(Com_amazonaws_dynamodb_EnableKinesisStreamingDestinationOutput_TableName_ToDafny(nativeOutput.TableName), Com_amazonaws_dynamodb_EnableKinesisStreamingDestinationOutput_StreamArn_ToDafny(nativeOutput.StreamArn), Com_amazonaws_dynamodb_EnableKinesisStreamingDestinationOutput_DestinationStatus_ToDafny(nativeOutput.DestinationStatus), Com_amazonaws_dynamodb_EnableKinesisStreamingDestinationOutput_EnableKinesisStreamingConfiguration_ToDafny(nativeOutput.EnableKinesisStreamingConfiguration)) + }() + +} + +func ExecuteStatementInput_ToDafny(nativeInput dynamodb.ExecuteStatementInput) ComAmazonawsDynamodbTypes.ExecuteStatementInput { + + return func() ComAmazonawsDynamodbTypes.ExecuteStatementInput { + + return ComAmazonawsDynamodbTypes.Companion_ExecuteStatementInput_.Create_ExecuteStatementInput_(Com_amazonaws_dynamodb_ExecuteStatementInput_Statement_ToDafny(nativeInput.Statement), Com_amazonaws_dynamodb_ExecuteStatementInput_Parameters_ToDafny(nativeInput.Parameters), Com_amazonaws_dynamodb_ExecuteStatementInput_ConsistentRead_ToDafny(nativeInput.ConsistentRead), Com_amazonaws_dynamodb_ExecuteStatementInput_NextToken_ToDafny(nativeInput.NextToken), Com_amazonaws_dynamodb_ExecuteStatementInput_ReturnConsumedCapacity_ToDafny(nativeInput.ReturnConsumedCapacity), Com_amazonaws_dynamodb_ExecuteStatementInput_Limit_ToDafny(nativeInput.Limit), Com_amazonaws_dynamodb_ExecuteStatementInput_ReturnValuesOnConditionCheckFailure_ToDafny(nativeInput.ReturnValuesOnConditionCheckFailure)) + }() + +} + +func ExecuteStatementOutput_ToDafny(nativeOutput dynamodb.ExecuteStatementOutput) ComAmazonawsDynamodbTypes.ExecuteStatementOutput { + + return func() ComAmazonawsDynamodbTypes.ExecuteStatementOutput { + + return ComAmazonawsDynamodbTypes.Companion_ExecuteStatementOutput_.Create_ExecuteStatementOutput_(Com_amazonaws_dynamodb_ExecuteStatementOutput_Items_ToDafny(nativeOutput.Items), Com_amazonaws_dynamodb_ExecuteStatementOutput_NextToken_ToDafny(nativeOutput.NextToken), Com_amazonaws_dynamodb_ExecuteStatementOutput_ConsumedCapacity_ToDafny(nativeOutput.ConsumedCapacity), Com_amazonaws_dynamodb_ExecuteStatementOutput_LastEvaluatedKey_ToDafny(nativeOutput.LastEvaluatedKey)) + }() + +} + +func ExecuteTransactionInput_ToDafny(nativeInput dynamodb.ExecuteTransactionInput) ComAmazonawsDynamodbTypes.ExecuteTransactionInput { + + return func() ComAmazonawsDynamodbTypes.ExecuteTransactionInput { + + return ComAmazonawsDynamodbTypes.Companion_ExecuteTransactionInput_.Create_ExecuteTransactionInput_(Com_amazonaws_dynamodb_ExecuteTransactionInput_TransactStatements_ToDafny(nativeInput.TransactStatements), Com_amazonaws_dynamodb_ExecuteTransactionInput_ClientRequestToken_ToDafny(nativeInput.ClientRequestToken), Com_amazonaws_dynamodb_ExecuteTransactionInput_ReturnConsumedCapacity_ToDafny(nativeInput.ReturnConsumedCapacity)) + }() + +} + +func ExecuteTransactionOutput_ToDafny(nativeOutput dynamodb.ExecuteTransactionOutput) ComAmazonawsDynamodbTypes.ExecuteTransactionOutput { + + return func() ComAmazonawsDynamodbTypes.ExecuteTransactionOutput { + + return ComAmazonawsDynamodbTypes.Companion_ExecuteTransactionOutput_.Create_ExecuteTransactionOutput_(Com_amazonaws_dynamodb_ExecuteTransactionOutput_Responses_ToDafny(nativeOutput.Responses), Com_amazonaws_dynamodb_ExecuteTransactionOutput_ConsumedCapacity_ToDafny(nativeOutput.ConsumedCapacity)) + }() + +} + +func ExportTableToPointInTimeInput_ToDafny(nativeInput dynamodb.ExportTableToPointInTimeInput) ComAmazonawsDynamodbTypes.ExportTableToPointInTimeInput { + + return func() ComAmazonawsDynamodbTypes.ExportTableToPointInTimeInput { + + return ComAmazonawsDynamodbTypes.Companion_ExportTableToPointInTimeInput_.Create_ExportTableToPointInTimeInput_(Com_amazonaws_dynamodb_ExportTableToPointInTimeInput_TableArn_ToDafny(nativeInput.TableArn), Com_amazonaws_dynamodb_ExportTableToPointInTimeInput_ExportTime_ToDafny(nativeInput.ExportTime), Com_amazonaws_dynamodb_ExportTableToPointInTimeInput_ClientToken_ToDafny(nativeInput.ClientToken), Com_amazonaws_dynamodb_ExportTableToPointInTimeInput_S3Bucket_ToDafny(nativeInput.S3Bucket), Com_amazonaws_dynamodb_ExportTableToPointInTimeInput_S3BucketOwner_ToDafny(nativeInput.S3BucketOwner), Com_amazonaws_dynamodb_ExportTableToPointInTimeInput_S3Prefix_ToDafny(nativeInput.S3Prefix), Com_amazonaws_dynamodb_ExportTableToPointInTimeInput_S3SseAlgorithm_ToDafny(nativeInput.S3SseAlgorithm), Com_amazonaws_dynamodb_ExportTableToPointInTimeInput_S3SseKmsKeyId_ToDafny(nativeInput.S3SseKmsKeyId), Com_amazonaws_dynamodb_ExportTableToPointInTimeInput_ExportFormat_ToDafny(nativeInput.ExportFormat), Com_amazonaws_dynamodb_ExportTableToPointInTimeInput_ExportType_ToDafny(nativeInput.ExportType), Com_amazonaws_dynamodb_ExportTableToPointInTimeInput_IncrementalExportSpecification_ToDafny(nativeInput.IncrementalExportSpecification)) + }() + +} + +func ExportTableToPointInTimeOutput_ToDafny(nativeOutput dynamodb.ExportTableToPointInTimeOutput) ComAmazonawsDynamodbTypes.ExportTableToPointInTimeOutput { + + return func() ComAmazonawsDynamodbTypes.ExportTableToPointInTimeOutput { + + return ComAmazonawsDynamodbTypes.Companion_ExportTableToPointInTimeOutput_.Create_ExportTableToPointInTimeOutput_(Com_amazonaws_dynamodb_ExportTableToPointInTimeOutput_ExportDescription_ToDafny(nativeOutput.ExportDescription)) + }() + +} + +func GetItemInput_ToDafny(nativeInput dynamodb.GetItemInput) ComAmazonawsDynamodbTypes.GetItemInput { + + return func() ComAmazonawsDynamodbTypes.GetItemInput { + + return ComAmazonawsDynamodbTypes.Companion_GetItemInput_.Create_GetItemInput_(Com_amazonaws_dynamodb_GetItemInput_TableName_ToDafny(nativeInput.TableName), Com_amazonaws_dynamodb_GetItemInput_Key_ToDafny(nativeInput.Key), Com_amazonaws_dynamodb_GetItemInput_AttributesToGet_ToDafny(nativeInput.AttributesToGet), Com_amazonaws_dynamodb_GetItemInput_ConsistentRead_ToDafny(nativeInput.ConsistentRead), Com_amazonaws_dynamodb_GetItemInput_ReturnConsumedCapacity_ToDafny(nativeInput.ReturnConsumedCapacity), Com_amazonaws_dynamodb_GetItemInput_ProjectionExpression_ToDafny(nativeInput.ProjectionExpression), Com_amazonaws_dynamodb_GetItemInput_ExpressionAttributeNames_ToDafny(nativeInput.ExpressionAttributeNames)) + }() + +} + +func GetItemOutput_ToDafny(nativeOutput dynamodb.GetItemOutput) ComAmazonawsDynamodbTypes.GetItemOutput { + + return func() ComAmazonawsDynamodbTypes.GetItemOutput { + + return ComAmazonawsDynamodbTypes.Companion_GetItemOutput_.Create_GetItemOutput_(Com_amazonaws_dynamodb_GetItemOutput_Item_ToDafny(nativeOutput.Item), Com_amazonaws_dynamodb_GetItemOutput_ConsumedCapacity_ToDafny(nativeOutput.ConsumedCapacity)) + }() + +} + +func GetResourcePolicyInput_ToDafny(nativeInput dynamodb.GetResourcePolicyInput) ComAmazonawsDynamodbTypes.GetResourcePolicyInput { + + return func() ComAmazonawsDynamodbTypes.GetResourcePolicyInput { + + return ComAmazonawsDynamodbTypes.Companion_GetResourcePolicyInput_.Create_GetResourcePolicyInput_(Com_amazonaws_dynamodb_GetResourcePolicyInput_ResourceArn_ToDafny(nativeInput.ResourceArn)) + }() + +} + +func GetResourcePolicyOutput_ToDafny(nativeOutput dynamodb.GetResourcePolicyOutput) ComAmazonawsDynamodbTypes.GetResourcePolicyOutput { + + return func() ComAmazonawsDynamodbTypes.GetResourcePolicyOutput { + + return ComAmazonawsDynamodbTypes.Companion_GetResourcePolicyOutput_.Create_GetResourcePolicyOutput_(Com_amazonaws_dynamodb_GetResourcePolicyOutput_Policy_ToDafny(nativeOutput.Policy), Com_amazonaws_dynamodb_GetResourcePolicyOutput_RevisionId_ToDafny(nativeOutput.RevisionId)) + }() + +} + +func ImportTableInput_ToDafny(nativeInput dynamodb.ImportTableInput) ComAmazonawsDynamodbTypes.ImportTableInput { + + return func() ComAmazonawsDynamodbTypes.ImportTableInput { + + return ComAmazonawsDynamodbTypes.Companion_ImportTableInput_.Create_ImportTableInput_(Com_amazonaws_dynamodb_ImportTableInput_ClientToken_ToDafny(nativeInput.ClientToken), Com_amazonaws_dynamodb_ImportTableInput_S3BucketSource_ToDafny(nativeInput.S3BucketSource), Com_amazonaws_dynamodb_ImportTableInput_InputFormat_ToDafny(nativeInput.InputFormat), Com_amazonaws_dynamodb_ImportTableInput_InputFormatOptions_ToDafny(nativeInput.InputFormatOptions), Com_amazonaws_dynamodb_ImportTableInput_InputCompressionType_ToDafny(nativeInput.InputCompressionType), Com_amazonaws_dynamodb_ImportTableInput_TableCreationParameters_ToDafny(nativeInput.TableCreationParameters)) + }() + +} + +func ImportTableOutput_ToDafny(nativeOutput dynamodb.ImportTableOutput) ComAmazonawsDynamodbTypes.ImportTableOutput { + + return func() ComAmazonawsDynamodbTypes.ImportTableOutput { + + return ComAmazonawsDynamodbTypes.Companion_ImportTableOutput_.Create_ImportTableOutput_(Com_amazonaws_dynamodb_ImportTableOutput_ImportTableDescription_ToDafny(nativeOutput.ImportTableDescription)) + }() + +} + +func ListBackupsInput_ToDafny(nativeInput dynamodb.ListBackupsInput) ComAmazonawsDynamodbTypes.ListBackupsInput { + + return func() ComAmazonawsDynamodbTypes.ListBackupsInput { + + return ComAmazonawsDynamodbTypes.Companion_ListBackupsInput_.Create_ListBackupsInput_(Com_amazonaws_dynamodb_ListBackupsInput_TableName_ToDafny(nativeInput.TableName), Com_amazonaws_dynamodb_ListBackupsInput_Limit_ToDafny(nativeInput.Limit), Com_amazonaws_dynamodb_ListBackupsInput_TimeRangeLowerBound_ToDafny(nativeInput.TimeRangeLowerBound), Com_amazonaws_dynamodb_ListBackupsInput_TimeRangeUpperBound_ToDafny(nativeInput.TimeRangeUpperBound), Com_amazonaws_dynamodb_ListBackupsInput_ExclusiveStartBackupArn_ToDafny(nativeInput.ExclusiveStartBackupArn), Com_amazonaws_dynamodb_ListBackupsInput_BackupType_ToDafny(nativeInput.BackupType)) + }() + +} + +func ListBackupsOutput_ToDafny(nativeOutput dynamodb.ListBackupsOutput) ComAmazonawsDynamodbTypes.ListBackupsOutput { + + return func() ComAmazonawsDynamodbTypes.ListBackupsOutput { + + return ComAmazonawsDynamodbTypes.Companion_ListBackupsOutput_.Create_ListBackupsOutput_(Com_amazonaws_dynamodb_ListBackupsOutput_BackupSummaries_ToDafny(nativeOutput.BackupSummaries), Com_amazonaws_dynamodb_ListBackupsOutput_LastEvaluatedBackupArn_ToDafny(nativeOutput.LastEvaluatedBackupArn)) + }() + +} + +func ListContributorInsightsInput_ToDafny(nativeInput dynamodb.ListContributorInsightsInput) ComAmazonawsDynamodbTypes.ListContributorInsightsInput { + + return func() ComAmazonawsDynamodbTypes.ListContributorInsightsInput { + + return ComAmazonawsDynamodbTypes.Companion_ListContributorInsightsInput_.Create_ListContributorInsightsInput_(Com_amazonaws_dynamodb_ListContributorInsightsInput_TableName_ToDafny(nativeInput.TableName), Com_amazonaws_dynamodb_ListContributorInsightsInput_NextToken_ToDafny(nativeInput.NextToken), Com_amazonaws_dynamodb_ListContributorInsightsInput_MaxResults_ToDafny(nativeInput.MaxResults)) + }() + +} + +func ListContributorInsightsOutput_ToDafny(nativeOutput dynamodb.ListContributorInsightsOutput) ComAmazonawsDynamodbTypes.ListContributorInsightsOutput { + + return func() ComAmazonawsDynamodbTypes.ListContributorInsightsOutput { + + return ComAmazonawsDynamodbTypes.Companion_ListContributorInsightsOutput_.Create_ListContributorInsightsOutput_(Com_amazonaws_dynamodb_ListContributorInsightsOutput_ContributorInsightsSummaries_ToDafny(nativeOutput.ContributorInsightsSummaries), Com_amazonaws_dynamodb_ListContributorInsightsOutput_NextToken_ToDafny(nativeOutput.NextToken)) + }() + +} + +func ListExportsInput_ToDafny(nativeInput dynamodb.ListExportsInput) ComAmazonawsDynamodbTypes.ListExportsInput { + + return func() ComAmazonawsDynamodbTypes.ListExportsInput { + + return ComAmazonawsDynamodbTypes.Companion_ListExportsInput_.Create_ListExportsInput_(Com_amazonaws_dynamodb_ListExportsInput_TableArn_ToDafny(nativeInput.TableArn), Com_amazonaws_dynamodb_ListExportsInput_MaxResults_ToDafny(nativeInput.MaxResults), Com_amazonaws_dynamodb_ListExportsInput_NextToken_ToDafny(nativeInput.NextToken)) + }() + +} + +func ListExportsOutput_ToDafny(nativeOutput dynamodb.ListExportsOutput) ComAmazonawsDynamodbTypes.ListExportsOutput { + + return func() ComAmazonawsDynamodbTypes.ListExportsOutput { + + return ComAmazonawsDynamodbTypes.Companion_ListExportsOutput_.Create_ListExportsOutput_(Com_amazonaws_dynamodb_ListExportsOutput_ExportSummaries_ToDafny(nativeOutput.ExportSummaries), Com_amazonaws_dynamodb_ListExportsOutput_NextToken_ToDafny(nativeOutput.NextToken)) + }() + +} + +func ListGlobalTablesInput_ToDafny(nativeInput dynamodb.ListGlobalTablesInput) ComAmazonawsDynamodbTypes.ListGlobalTablesInput { + + return func() ComAmazonawsDynamodbTypes.ListGlobalTablesInput { + + return ComAmazonawsDynamodbTypes.Companion_ListGlobalTablesInput_.Create_ListGlobalTablesInput_(Com_amazonaws_dynamodb_ListGlobalTablesInput_ExclusiveStartGlobalTableName_ToDafny(nativeInput.ExclusiveStartGlobalTableName), Com_amazonaws_dynamodb_ListGlobalTablesInput_Limit_ToDafny(nativeInput.Limit), Com_amazonaws_dynamodb_ListGlobalTablesInput_RegionName_ToDafny(nativeInput.RegionName)) + }() + +} + +func ListGlobalTablesOutput_ToDafny(nativeOutput dynamodb.ListGlobalTablesOutput) ComAmazonawsDynamodbTypes.ListGlobalTablesOutput { + + return func() ComAmazonawsDynamodbTypes.ListGlobalTablesOutput { + + return ComAmazonawsDynamodbTypes.Companion_ListGlobalTablesOutput_.Create_ListGlobalTablesOutput_(Com_amazonaws_dynamodb_ListGlobalTablesOutput_GlobalTables_ToDafny(nativeOutput.GlobalTables), Com_amazonaws_dynamodb_ListGlobalTablesOutput_LastEvaluatedGlobalTableName_ToDafny(nativeOutput.LastEvaluatedGlobalTableName)) + }() + +} + +func ListImportsInput_ToDafny(nativeInput dynamodb.ListImportsInput) ComAmazonawsDynamodbTypes.ListImportsInput { + + return func() ComAmazonawsDynamodbTypes.ListImportsInput { + + return ComAmazonawsDynamodbTypes.Companion_ListImportsInput_.Create_ListImportsInput_(Com_amazonaws_dynamodb_ListImportsInput_TableArn_ToDafny(nativeInput.TableArn), Com_amazonaws_dynamodb_ListImportsInput_PageSize_ToDafny(nativeInput.PageSize), Com_amazonaws_dynamodb_ListImportsInput_NextToken_ToDafny(nativeInput.NextToken)) + }() + +} + +func ListImportsOutput_ToDafny(nativeOutput dynamodb.ListImportsOutput) ComAmazonawsDynamodbTypes.ListImportsOutput { + + return func() ComAmazonawsDynamodbTypes.ListImportsOutput { + + return ComAmazonawsDynamodbTypes.Companion_ListImportsOutput_.Create_ListImportsOutput_(Com_amazonaws_dynamodb_ListImportsOutput_ImportSummaryList_ToDafny(nativeOutput.ImportSummaryList), Com_amazonaws_dynamodb_ListImportsOutput_NextToken_ToDafny(nativeOutput.NextToken)) + }() + +} + +func ListTablesInput_ToDafny(nativeInput dynamodb.ListTablesInput) ComAmazonawsDynamodbTypes.ListTablesInput { + + return func() ComAmazonawsDynamodbTypes.ListTablesInput { + + return ComAmazonawsDynamodbTypes.Companion_ListTablesInput_.Create_ListTablesInput_(Com_amazonaws_dynamodb_ListTablesInput_ExclusiveStartTableName_ToDafny(nativeInput.ExclusiveStartTableName), Com_amazonaws_dynamodb_ListTablesInput_Limit_ToDafny(nativeInput.Limit)) + }() + +} + +func ListTablesOutput_ToDafny(nativeOutput dynamodb.ListTablesOutput) ComAmazonawsDynamodbTypes.ListTablesOutput { + + return func() ComAmazonawsDynamodbTypes.ListTablesOutput { + + return ComAmazonawsDynamodbTypes.Companion_ListTablesOutput_.Create_ListTablesOutput_(Com_amazonaws_dynamodb_ListTablesOutput_TableNames_ToDafny(nativeOutput.TableNames), Com_amazonaws_dynamodb_ListTablesOutput_LastEvaluatedTableName_ToDafny(nativeOutput.LastEvaluatedTableName)) + }() + +} + +func ListTagsOfResourceInput_ToDafny(nativeInput dynamodb.ListTagsOfResourceInput) ComAmazonawsDynamodbTypes.ListTagsOfResourceInput { + + return func() ComAmazonawsDynamodbTypes.ListTagsOfResourceInput { + + return ComAmazonawsDynamodbTypes.Companion_ListTagsOfResourceInput_.Create_ListTagsOfResourceInput_(Com_amazonaws_dynamodb_ListTagsOfResourceInput_ResourceArn_ToDafny(nativeInput.ResourceArn), Com_amazonaws_dynamodb_ListTagsOfResourceInput_NextToken_ToDafny(nativeInput.NextToken)) + }() + +} + +func ListTagsOfResourceOutput_ToDafny(nativeOutput dynamodb.ListTagsOfResourceOutput) ComAmazonawsDynamodbTypes.ListTagsOfResourceOutput { + + return func() ComAmazonawsDynamodbTypes.ListTagsOfResourceOutput { + + return ComAmazonawsDynamodbTypes.Companion_ListTagsOfResourceOutput_.Create_ListTagsOfResourceOutput_(Com_amazonaws_dynamodb_ListTagsOfResourceOutput_Tags_ToDafny(nativeOutput.Tags), Com_amazonaws_dynamodb_ListTagsOfResourceOutput_NextToken_ToDafny(nativeOutput.NextToken)) + }() + +} + +func PutItemInput_ToDafny(nativeInput dynamodb.PutItemInput) ComAmazonawsDynamodbTypes.PutItemInput { + + return func() ComAmazonawsDynamodbTypes.PutItemInput { + + return ComAmazonawsDynamodbTypes.Companion_PutItemInput_.Create_PutItemInput_(Com_amazonaws_dynamodb_PutItemInput_TableName_ToDafny(nativeInput.TableName), Com_amazonaws_dynamodb_PutItemInput_Item_ToDafny(nativeInput.Item), Com_amazonaws_dynamodb_PutItemInput_Expected_ToDafny(nativeInput.Expected), Com_amazonaws_dynamodb_PutItemInput_ReturnValues_ToDafny(nativeInput.ReturnValues), Com_amazonaws_dynamodb_PutItemInput_ReturnConsumedCapacity_ToDafny(nativeInput.ReturnConsumedCapacity), Com_amazonaws_dynamodb_PutItemInput_ReturnItemCollectionMetrics_ToDafny(nativeInput.ReturnItemCollectionMetrics), Com_amazonaws_dynamodb_PutItemInput_ConditionalOperator_ToDafny(nativeInput.ConditionalOperator), Com_amazonaws_dynamodb_PutItemInput_ConditionExpression_ToDafny(nativeInput.ConditionExpression), Com_amazonaws_dynamodb_PutItemInput_ExpressionAttributeNames_ToDafny(nativeInput.ExpressionAttributeNames), Com_amazonaws_dynamodb_PutItemInput_ExpressionAttributeValues_ToDafny(nativeInput.ExpressionAttributeValues), Com_amazonaws_dynamodb_PutItemInput_ReturnValuesOnConditionCheckFailure_ToDafny(nativeInput.ReturnValuesOnConditionCheckFailure)) + }() + +} + +func PutItemOutput_ToDafny(nativeOutput dynamodb.PutItemOutput) ComAmazonawsDynamodbTypes.PutItemOutput { + + return func() ComAmazonawsDynamodbTypes.PutItemOutput { + + return ComAmazonawsDynamodbTypes.Companion_PutItemOutput_.Create_PutItemOutput_(Com_amazonaws_dynamodb_PutItemOutput_Attributes_ToDafny(nativeOutput.Attributes), Com_amazonaws_dynamodb_PutItemOutput_ConsumedCapacity_ToDafny(nativeOutput.ConsumedCapacity), Com_amazonaws_dynamodb_PutItemOutput_ItemCollectionMetrics_ToDafny(nativeOutput.ItemCollectionMetrics)) + }() + +} + +func PutResourcePolicyInput_ToDafny(nativeInput dynamodb.PutResourcePolicyInput) ComAmazonawsDynamodbTypes.PutResourcePolicyInput { + + return func() ComAmazonawsDynamodbTypes.PutResourcePolicyInput { + + return ComAmazonawsDynamodbTypes.Companion_PutResourcePolicyInput_.Create_PutResourcePolicyInput_(Com_amazonaws_dynamodb_PutResourcePolicyInput_ResourceArn_ToDafny(nativeInput.ResourceArn), Com_amazonaws_dynamodb_PutResourcePolicyInput_Policy_ToDafny(nativeInput.Policy), Com_amazonaws_dynamodb_PutResourcePolicyInput_ExpectedRevisionId_ToDafny(nativeInput.ExpectedRevisionId), Com_amazonaws_dynamodb_PutResourcePolicyInput_ConfirmRemoveSelfResourceAccess_ToDafny(nativeInput.ConfirmRemoveSelfResourceAccess)) + }() + +} + +func PutResourcePolicyOutput_ToDafny(nativeOutput dynamodb.PutResourcePolicyOutput) ComAmazonawsDynamodbTypes.PutResourcePolicyOutput { + + return func() ComAmazonawsDynamodbTypes.PutResourcePolicyOutput { + + return ComAmazonawsDynamodbTypes.Companion_PutResourcePolicyOutput_.Create_PutResourcePolicyOutput_(Com_amazonaws_dynamodb_PutResourcePolicyOutput_RevisionId_ToDafny(nativeOutput.RevisionId)) + }() + +} + +func QueryInput_ToDafny(nativeInput dynamodb.QueryInput) ComAmazonawsDynamodbTypes.QueryInput { + + return func() ComAmazonawsDynamodbTypes.QueryInput { + + return ComAmazonawsDynamodbTypes.Companion_QueryInput_.Create_QueryInput_(Com_amazonaws_dynamodb_QueryInput_TableName_ToDafny(nativeInput.TableName), Com_amazonaws_dynamodb_QueryInput_IndexName_ToDafny(nativeInput.IndexName), Com_amazonaws_dynamodb_QueryInput_Select_ToDafny(nativeInput.Select), Com_amazonaws_dynamodb_QueryInput_AttributesToGet_ToDafny(nativeInput.AttributesToGet), Com_amazonaws_dynamodb_QueryInput_Limit_ToDafny(nativeInput.Limit), Com_amazonaws_dynamodb_QueryInput_ConsistentRead_ToDafny(nativeInput.ConsistentRead), Com_amazonaws_dynamodb_QueryInput_KeyConditions_ToDafny(nativeInput.KeyConditions), Com_amazonaws_dynamodb_QueryInput_QueryFilter_ToDafny(nativeInput.QueryFilter), Com_amazonaws_dynamodb_QueryInput_ConditionalOperator_ToDafny(nativeInput.ConditionalOperator), Com_amazonaws_dynamodb_QueryInput_ScanIndexForward_ToDafny(nativeInput.ScanIndexForward), Com_amazonaws_dynamodb_QueryInput_ExclusiveStartKey_ToDafny(nativeInput.ExclusiveStartKey), Com_amazonaws_dynamodb_QueryInput_ReturnConsumedCapacity_ToDafny(nativeInput.ReturnConsumedCapacity), Com_amazonaws_dynamodb_QueryInput_ProjectionExpression_ToDafny(nativeInput.ProjectionExpression), Com_amazonaws_dynamodb_QueryInput_FilterExpression_ToDafny(nativeInput.FilterExpression), Com_amazonaws_dynamodb_QueryInput_KeyConditionExpression_ToDafny(nativeInput.KeyConditionExpression), Com_amazonaws_dynamodb_QueryInput_ExpressionAttributeNames_ToDafny(nativeInput.ExpressionAttributeNames), Com_amazonaws_dynamodb_QueryInput_ExpressionAttributeValues_ToDafny(nativeInput.ExpressionAttributeValues)) + }() + +} + +func QueryOutput_ToDafny(nativeOutput dynamodb.QueryOutput) ComAmazonawsDynamodbTypes.QueryOutput { + + return func() ComAmazonawsDynamodbTypes.QueryOutput { + + return ComAmazonawsDynamodbTypes.Companion_QueryOutput_.Create_QueryOutput_(Com_amazonaws_dynamodb_QueryOutput_Items_ToDafny(nativeOutput.Items), Com_amazonaws_dynamodb_QueryOutput_Count_ToDafny(nativeOutput.Count), Com_amazonaws_dynamodb_QueryOutput_ScannedCount_ToDafny(nativeOutput.ScannedCount), Com_amazonaws_dynamodb_QueryOutput_LastEvaluatedKey_ToDafny(nativeOutput.LastEvaluatedKey), Com_amazonaws_dynamodb_QueryOutput_ConsumedCapacity_ToDafny(nativeOutput.ConsumedCapacity)) + }() + +} + +func RestoreTableFromBackupInput_ToDafny(nativeInput dynamodb.RestoreTableFromBackupInput) ComAmazonawsDynamodbTypes.RestoreTableFromBackupInput { + + return func() ComAmazonawsDynamodbTypes.RestoreTableFromBackupInput { + + return ComAmazonawsDynamodbTypes.Companion_RestoreTableFromBackupInput_.Create_RestoreTableFromBackupInput_(Com_amazonaws_dynamodb_RestoreTableFromBackupInput_TargetTableName_ToDafny(nativeInput.TargetTableName), Com_amazonaws_dynamodb_RestoreTableFromBackupInput_BackupArn_ToDafny(nativeInput.BackupArn), Com_amazonaws_dynamodb_RestoreTableFromBackupInput_BillingModeOverride_ToDafny(nativeInput.BillingModeOverride), Com_amazonaws_dynamodb_RestoreTableFromBackupInput_GlobalSecondaryIndexOverride_ToDafny(nativeInput.GlobalSecondaryIndexOverride), Com_amazonaws_dynamodb_RestoreTableFromBackupInput_LocalSecondaryIndexOverride_ToDafny(nativeInput.LocalSecondaryIndexOverride), Com_amazonaws_dynamodb_RestoreTableFromBackupInput_ProvisionedThroughputOverride_ToDafny(nativeInput.ProvisionedThroughputOverride), Com_amazonaws_dynamodb_RestoreTableFromBackupInput_OnDemandThroughputOverride_ToDafny(nativeInput.OnDemandThroughputOverride), Com_amazonaws_dynamodb_RestoreTableFromBackupInput_SSESpecificationOverride_ToDafny(nativeInput.SSESpecificationOverride)) + }() + +} + +func RestoreTableFromBackupOutput_ToDafny(nativeOutput dynamodb.RestoreTableFromBackupOutput) ComAmazonawsDynamodbTypes.RestoreTableFromBackupOutput { + + return func() ComAmazonawsDynamodbTypes.RestoreTableFromBackupOutput { + + return ComAmazonawsDynamodbTypes.Companion_RestoreTableFromBackupOutput_.Create_RestoreTableFromBackupOutput_(Com_amazonaws_dynamodb_RestoreTableFromBackupOutput_TableDescription_ToDafny(nativeOutput.TableDescription)) + }() + +} + +func RestoreTableToPointInTimeInput_ToDafny(nativeInput dynamodb.RestoreTableToPointInTimeInput) ComAmazonawsDynamodbTypes.RestoreTableToPointInTimeInput { + + return func() ComAmazonawsDynamodbTypes.RestoreTableToPointInTimeInput { + + return ComAmazonawsDynamodbTypes.Companion_RestoreTableToPointInTimeInput_.Create_RestoreTableToPointInTimeInput_(Com_amazonaws_dynamodb_RestoreTableToPointInTimeInput_SourceTableArn_ToDafny(nativeInput.SourceTableArn), Com_amazonaws_dynamodb_RestoreTableToPointInTimeInput_SourceTableName_ToDafny(nativeInput.SourceTableName), Com_amazonaws_dynamodb_RestoreTableToPointInTimeInput_TargetTableName_ToDafny(nativeInput.TargetTableName), Com_amazonaws_dynamodb_RestoreTableToPointInTimeInput_UseLatestRestorableTime_ToDafny(nativeInput.UseLatestRestorableTime), Com_amazonaws_dynamodb_RestoreTableToPointInTimeInput_RestoreDateTime_ToDafny(nativeInput.RestoreDateTime), Com_amazonaws_dynamodb_RestoreTableToPointInTimeInput_BillingModeOverride_ToDafny(nativeInput.BillingModeOverride), Com_amazonaws_dynamodb_RestoreTableToPointInTimeInput_GlobalSecondaryIndexOverride_ToDafny(nativeInput.GlobalSecondaryIndexOverride), Com_amazonaws_dynamodb_RestoreTableToPointInTimeInput_LocalSecondaryIndexOverride_ToDafny(nativeInput.LocalSecondaryIndexOverride), Com_amazonaws_dynamodb_RestoreTableToPointInTimeInput_ProvisionedThroughputOverride_ToDafny(nativeInput.ProvisionedThroughputOverride), Com_amazonaws_dynamodb_RestoreTableToPointInTimeInput_OnDemandThroughputOverride_ToDafny(nativeInput.OnDemandThroughputOverride), Com_amazonaws_dynamodb_RestoreTableToPointInTimeInput_SSESpecificationOverride_ToDafny(nativeInput.SSESpecificationOverride)) + }() + +} + +func RestoreTableToPointInTimeOutput_ToDafny(nativeOutput dynamodb.RestoreTableToPointInTimeOutput) ComAmazonawsDynamodbTypes.RestoreTableToPointInTimeOutput { + + return func() ComAmazonawsDynamodbTypes.RestoreTableToPointInTimeOutput { + + return ComAmazonawsDynamodbTypes.Companion_RestoreTableToPointInTimeOutput_.Create_RestoreTableToPointInTimeOutput_(Com_amazonaws_dynamodb_RestoreTableToPointInTimeOutput_TableDescription_ToDafny(nativeOutput.TableDescription)) + }() + +} + +func ScanInput_ToDafny(nativeInput dynamodb.ScanInput) ComAmazonawsDynamodbTypes.ScanInput { + + return func() ComAmazonawsDynamodbTypes.ScanInput { + + return ComAmazonawsDynamodbTypes.Companion_ScanInput_.Create_ScanInput_(Com_amazonaws_dynamodb_ScanInput_TableName_ToDafny(nativeInput.TableName), Com_amazonaws_dynamodb_ScanInput_IndexName_ToDafny(nativeInput.IndexName), Com_amazonaws_dynamodb_ScanInput_AttributesToGet_ToDafny(nativeInput.AttributesToGet), Com_amazonaws_dynamodb_ScanInput_Limit_ToDafny(nativeInput.Limit), Com_amazonaws_dynamodb_ScanInput_Select_ToDafny(nativeInput.Select), Com_amazonaws_dynamodb_ScanInput_ScanFilter_ToDafny(nativeInput.ScanFilter), Com_amazonaws_dynamodb_ScanInput_ConditionalOperator_ToDafny(nativeInput.ConditionalOperator), Com_amazonaws_dynamodb_ScanInput_ExclusiveStartKey_ToDafny(nativeInput.ExclusiveStartKey), Com_amazonaws_dynamodb_ScanInput_ReturnConsumedCapacity_ToDafny(nativeInput.ReturnConsumedCapacity), Com_amazonaws_dynamodb_ScanInput_TotalSegments_ToDafny(nativeInput.TotalSegments), Com_amazonaws_dynamodb_ScanInput_Segment_ToDafny(nativeInput.Segment), Com_amazonaws_dynamodb_ScanInput_ProjectionExpression_ToDafny(nativeInput.ProjectionExpression), Com_amazonaws_dynamodb_ScanInput_FilterExpression_ToDafny(nativeInput.FilterExpression), Com_amazonaws_dynamodb_ScanInput_ExpressionAttributeNames_ToDafny(nativeInput.ExpressionAttributeNames), Com_amazonaws_dynamodb_ScanInput_ExpressionAttributeValues_ToDafny(nativeInput.ExpressionAttributeValues), Com_amazonaws_dynamodb_ScanInput_ConsistentRead_ToDafny(nativeInput.ConsistentRead)) + }() + +} + +func ScanOutput_ToDafny(nativeOutput dynamodb.ScanOutput) ComAmazonawsDynamodbTypes.ScanOutput { + + return func() ComAmazonawsDynamodbTypes.ScanOutput { + + return ComAmazonawsDynamodbTypes.Companion_ScanOutput_.Create_ScanOutput_(Com_amazonaws_dynamodb_ScanOutput_Items_ToDafny(nativeOutput.Items), Com_amazonaws_dynamodb_ScanOutput_Count_ToDafny(nativeOutput.Count), Com_amazonaws_dynamodb_ScanOutput_ScannedCount_ToDafny(nativeOutput.ScannedCount), Com_amazonaws_dynamodb_ScanOutput_LastEvaluatedKey_ToDafny(nativeOutput.LastEvaluatedKey), Com_amazonaws_dynamodb_ScanOutput_ConsumedCapacity_ToDafny(nativeOutput.ConsumedCapacity)) + }() + +} + +func TagResourceInput_ToDafny(nativeInput dynamodb.TagResourceInput) ComAmazonawsDynamodbTypes.TagResourceInput { + + return func() ComAmazonawsDynamodbTypes.TagResourceInput { + + return ComAmazonawsDynamodbTypes.Companion_TagResourceInput_.Create_TagResourceInput_(Com_amazonaws_dynamodb_TagResourceInput_ResourceArn_ToDafny(nativeInput.ResourceArn), Com_amazonaws_dynamodb_TagResourceInput_Tags_ToDafny(nativeInput.Tags)) + }() + +} + +func TransactGetItemsInput_ToDafny(nativeInput dynamodb.TransactGetItemsInput) ComAmazonawsDynamodbTypes.TransactGetItemsInput { + + return func() ComAmazonawsDynamodbTypes.TransactGetItemsInput { + + return ComAmazonawsDynamodbTypes.Companion_TransactGetItemsInput_.Create_TransactGetItemsInput_(Com_amazonaws_dynamodb_TransactGetItemsInput_TransactItems_ToDafny(nativeInput.TransactItems), Com_amazonaws_dynamodb_TransactGetItemsInput_ReturnConsumedCapacity_ToDafny(nativeInput.ReturnConsumedCapacity)) + }() + +} + +func TransactGetItemsOutput_ToDafny(nativeOutput dynamodb.TransactGetItemsOutput) ComAmazonawsDynamodbTypes.TransactGetItemsOutput { + + return func() ComAmazonawsDynamodbTypes.TransactGetItemsOutput { + + return ComAmazonawsDynamodbTypes.Companion_TransactGetItemsOutput_.Create_TransactGetItemsOutput_(Com_amazonaws_dynamodb_TransactGetItemsOutput_ConsumedCapacity_ToDafny(nativeOutput.ConsumedCapacity), Com_amazonaws_dynamodb_TransactGetItemsOutput_Responses_ToDafny(nativeOutput.Responses)) + }() + +} + +func TransactWriteItemsInput_ToDafny(nativeInput dynamodb.TransactWriteItemsInput) ComAmazonawsDynamodbTypes.TransactWriteItemsInput { + + return func() ComAmazonawsDynamodbTypes.TransactWriteItemsInput { + + return ComAmazonawsDynamodbTypes.Companion_TransactWriteItemsInput_.Create_TransactWriteItemsInput_(Com_amazonaws_dynamodb_TransactWriteItemsInput_TransactItems_ToDafny(nativeInput.TransactItems), Com_amazonaws_dynamodb_TransactWriteItemsInput_ReturnConsumedCapacity_ToDafny(nativeInput.ReturnConsumedCapacity), Com_amazonaws_dynamodb_TransactWriteItemsInput_ReturnItemCollectionMetrics_ToDafny(nativeInput.ReturnItemCollectionMetrics), Com_amazonaws_dynamodb_TransactWriteItemsInput_ClientRequestToken_ToDafny(nativeInput.ClientRequestToken)) + }() + +} + +func TransactWriteItemsOutput_ToDafny(nativeOutput dynamodb.TransactWriteItemsOutput) ComAmazonawsDynamodbTypes.TransactWriteItemsOutput { + + return func() ComAmazonawsDynamodbTypes.TransactWriteItemsOutput { + + return ComAmazonawsDynamodbTypes.Companion_TransactWriteItemsOutput_.Create_TransactWriteItemsOutput_(Com_amazonaws_dynamodb_TransactWriteItemsOutput_ConsumedCapacity_ToDafny(nativeOutput.ConsumedCapacity), Com_amazonaws_dynamodb_TransactWriteItemsOutput_ItemCollectionMetrics_ToDafny(nativeOutput.ItemCollectionMetrics)) + }() + +} + +func UntagResourceInput_ToDafny(nativeInput dynamodb.UntagResourceInput) ComAmazonawsDynamodbTypes.UntagResourceInput { + + return func() ComAmazonawsDynamodbTypes.UntagResourceInput { + + return ComAmazonawsDynamodbTypes.Companion_UntagResourceInput_.Create_UntagResourceInput_(Com_amazonaws_dynamodb_UntagResourceInput_ResourceArn_ToDafny(nativeInput.ResourceArn), Com_amazonaws_dynamodb_UntagResourceInput_TagKeys_ToDafny(nativeInput.TagKeys)) + }() + +} + +func UpdateContinuousBackupsInput_ToDafny(nativeInput dynamodb.UpdateContinuousBackupsInput) ComAmazonawsDynamodbTypes.UpdateContinuousBackupsInput { + + return func() ComAmazonawsDynamodbTypes.UpdateContinuousBackupsInput { + + return ComAmazonawsDynamodbTypes.Companion_UpdateContinuousBackupsInput_.Create_UpdateContinuousBackupsInput_(Com_amazonaws_dynamodb_UpdateContinuousBackupsInput_TableName_ToDafny(nativeInput.TableName), Com_amazonaws_dynamodb_UpdateContinuousBackupsInput_PointInTimeRecoverySpecification_ToDafny(nativeInput.PointInTimeRecoverySpecification)) + }() + +} + +func UpdateContinuousBackupsOutput_ToDafny(nativeOutput dynamodb.UpdateContinuousBackupsOutput) ComAmazonawsDynamodbTypes.UpdateContinuousBackupsOutput { + + return func() ComAmazonawsDynamodbTypes.UpdateContinuousBackupsOutput { + + return ComAmazonawsDynamodbTypes.Companion_UpdateContinuousBackupsOutput_.Create_UpdateContinuousBackupsOutput_(Com_amazonaws_dynamodb_UpdateContinuousBackupsOutput_ContinuousBackupsDescription_ToDafny(nativeOutput.ContinuousBackupsDescription)) + }() + +} + +func UpdateContributorInsightsInput_ToDafny(nativeInput dynamodb.UpdateContributorInsightsInput) ComAmazonawsDynamodbTypes.UpdateContributorInsightsInput { + + return func() ComAmazonawsDynamodbTypes.UpdateContributorInsightsInput { + + return ComAmazonawsDynamodbTypes.Companion_UpdateContributorInsightsInput_.Create_UpdateContributorInsightsInput_(Com_amazonaws_dynamodb_UpdateContributorInsightsInput_TableName_ToDafny(nativeInput.TableName), Com_amazonaws_dynamodb_UpdateContributorInsightsInput_IndexName_ToDafny(nativeInput.IndexName), Com_amazonaws_dynamodb_UpdateContributorInsightsInput_ContributorInsightsAction_ToDafny(nativeInput.ContributorInsightsAction)) + }() + +} + +func UpdateContributorInsightsOutput_ToDafny(nativeOutput dynamodb.UpdateContributorInsightsOutput) ComAmazonawsDynamodbTypes.UpdateContributorInsightsOutput { + + return func() ComAmazonawsDynamodbTypes.UpdateContributorInsightsOutput { + + return ComAmazonawsDynamodbTypes.Companion_UpdateContributorInsightsOutput_.Create_UpdateContributorInsightsOutput_(Com_amazonaws_dynamodb_UpdateContributorInsightsOutput_TableName_ToDafny(nativeOutput.TableName), Com_amazonaws_dynamodb_UpdateContributorInsightsOutput_IndexName_ToDafny(nativeOutput.IndexName), Com_amazonaws_dynamodb_UpdateContributorInsightsOutput_ContributorInsightsStatus_ToDafny(nativeOutput.ContributorInsightsStatus)) + }() + +} + +func UpdateGlobalTableInput_ToDafny(nativeInput dynamodb.UpdateGlobalTableInput) ComAmazonawsDynamodbTypes.UpdateGlobalTableInput { + + return func() ComAmazonawsDynamodbTypes.UpdateGlobalTableInput { + + return ComAmazonawsDynamodbTypes.Companion_UpdateGlobalTableInput_.Create_UpdateGlobalTableInput_(Com_amazonaws_dynamodb_UpdateGlobalTableInput_GlobalTableName_ToDafny(nativeInput.GlobalTableName), Com_amazonaws_dynamodb_UpdateGlobalTableInput_ReplicaUpdates_ToDafny(nativeInput.ReplicaUpdates)) + }() + +} + +func UpdateGlobalTableOutput_ToDafny(nativeOutput dynamodb.UpdateGlobalTableOutput) ComAmazonawsDynamodbTypes.UpdateGlobalTableOutput { + + return func() ComAmazonawsDynamodbTypes.UpdateGlobalTableOutput { + + return ComAmazonawsDynamodbTypes.Companion_UpdateGlobalTableOutput_.Create_UpdateGlobalTableOutput_(Com_amazonaws_dynamodb_UpdateGlobalTableOutput_GlobalTableDescription_ToDafny(nativeOutput.GlobalTableDescription)) + }() + +} + +func UpdateGlobalTableSettingsInput_ToDafny(nativeInput dynamodb.UpdateGlobalTableSettingsInput) ComAmazonawsDynamodbTypes.UpdateGlobalTableSettingsInput { + + return func() ComAmazonawsDynamodbTypes.UpdateGlobalTableSettingsInput { + + return ComAmazonawsDynamodbTypes.Companion_UpdateGlobalTableSettingsInput_.Create_UpdateGlobalTableSettingsInput_(Com_amazonaws_dynamodb_UpdateGlobalTableSettingsInput_GlobalTableName_ToDafny(nativeInput.GlobalTableName), Com_amazonaws_dynamodb_UpdateGlobalTableSettingsInput_GlobalTableBillingMode_ToDafny(nativeInput.GlobalTableBillingMode), Com_amazonaws_dynamodb_UpdateGlobalTableSettingsInput_GlobalTableProvisionedWriteCapacityUnits_ToDafny(nativeInput.GlobalTableProvisionedWriteCapacityUnits), Com_amazonaws_dynamodb_UpdateGlobalTableSettingsInput_GlobalTableProvisionedWriteCapacityAutoScalingSettingsUpdate_ToDafny(nativeInput.GlobalTableProvisionedWriteCapacityAutoScalingSettingsUpdate), Com_amazonaws_dynamodb_UpdateGlobalTableSettingsInput_GlobalTableGlobalSecondaryIndexSettingsUpdate_ToDafny(nativeInput.GlobalTableGlobalSecondaryIndexSettingsUpdate), Com_amazonaws_dynamodb_UpdateGlobalTableSettingsInput_ReplicaSettingsUpdate_ToDafny(nativeInput.ReplicaSettingsUpdate)) + }() + +} + +func UpdateGlobalTableSettingsOutput_ToDafny(nativeOutput dynamodb.UpdateGlobalTableSettingsOutput) ComAmazonawsDynamodbTypes.UpdateGlobalTableSettingsOutput { + + return func() ComAmazonawsDynamodbTypes.UpdateGlobalTableSettingsOutput { + + return ComAmazonawsDynamodbTypes.Companion_UpdateGlobalTableSettingsOutput_.Create_UpdateGlobalTableSettingsOutput_(Com_amazonaws_dynamodb_UpdateGlobalTableSettingsOutput_GlobalTableName_ToDafny(nativeOutput.GlobalTableName), Com_amazonaws_dynamodb_UpdateGlobalTableSettingsOutput_ReplicaSettings_ToDafny(nativeOutput.ReplicaSettings)) + }() + +} + +func UpdateItemInput_ToDafny(nativeInput dynamodb.UpdateItemInput) ComAmazonawsDynamodbTypes.UpdateItemInput { + + return func() ComAmazonawsDynamodbTypes.UpdateItemInput { + + return ComAmazonawsDynamodbTypes.Companion_UpdateItemInput_.Create_UpdateItemInput_(Com_amazonaws_dynamodb_UpdateItemInput_TableName_ToDafny(nativeInput.TableName), Com_amazonaws_dynamodb_UpdateItemInput_Key_ToDafny(nativeInput.Key), Com_amazonaws_dynamodb_UpdateItemInput_AttributeUpdates_ToDafny(nativeInput.AttributeUpdates), Com_amazonaws_dynamodb_UpdateItemInput_Expected_ToDafny(nativeInput.Expected), Com_amazonaws_dynamodb_UpdateItemInput_ConditionalOperator_ToDafny(nativeInput.ConditionalOperator), Com_amazonaws_dynamodb_UpdateItemInput_ReturnValues_ToDafny(nativeInput.ReturnValues), Com_amazonaws_dynamodb_UpdateItemInput_ReturnConsumedCapacity_ToDafny(nativeInput.ReturnConsumedCapacity), Com_amazonaws_dynamodb_UpdateItemInput_ReturnItemCollectionMetrics_ToDafny(nativeInput.ReturnItemCollectionMetrics), Com_amazonaws_dynamodb_UpdateItemInput_UpdateExpression_ToDafny(nativeInput.UpdateExpression), Com_amazonaws_dynamodb_UpdateItemInput_ConditionExpression_ToDafny(nativeInput.ConditionExpression), Com_amazonaws_dynamodb_UpdateItemInput_ExpressionAttributeNames_ToDafny(nativeInput.ExpressionAttributeNames), Com_amazonaws_dynamodb_UpdateItemInput_ExpressionAttributeValues_ToDafny(nativeInput.ExpressionAttributeValues), Com_amazonaws_dynamodb_UpdateItemInput_ReturnValuesOnConditionCheckFailure_ToDafny(nativeInput.ReturnValuesOnConditionCheckFailure)) + }() + +} + +func UpdateItemOutput_ToDafny(nativeOutput dynamodb.UpdateItemOutput) ComAmazonawsDynamodbTypes.UpdateItemOutput { + + return func() ComAmazonawsDynamodbTypes.UpdateItemOutput { + + return ComAmazonawsDynamodbTypes.Companion_UpdateItemOutput_.Create_UpdateItemOutput_(Com_amazonaws_dynamodb_UpdateItemOutput_Attributes_ToDafny(nativeOutput.Attributes), Com_amazonaws_dynamodb_UpdateItemOutput_ConsumedCapacity_ToDafny(nativeOutput.ConsumedCapacity), Com_amazonaws_dynamodb_UpdateItemOutput_ItemCollectionMetrics_ToDafny(nativeOutput.ItemCollectionMetrics)) + }() + +} + +func UpdateKinesisStreamingDestinationInput_ToDafny(nativeInput dynamodb.UpdateKinesisStreamingDestinationInput) ComAmazonawsDynamodbTypes.UpdateKinesisStreamingDestinationInput { + + return func() ComAmazonawsDynamodbTypes.UpdateKinesisStreamingDestinationInput { + + return ComAmazonawsDynamodbTypes.Companion_UpdateKinesisStreamingDestinationInput_.Create_UpdateKinesisStreamingDestinationInput_(Com_amazonaws_dynamodb_UpdateKinesisStreamingDestinationInput_TableName_ToDafny(nativeInput.TableName), Com_amazonaws_dynamodb_UpdateKinesisStreamingDestinationInput_StreamArn_ToDafny(nativeInput.StreamArn), Com_amazonaws_dynamodb_UpdateKinesisStreamingDestinationInput_UpdateKinesisStreamingConfiguration_ToDafny(nativeInput.UpdateKinesisStreamingConfiguration)) + }() + +} + +func UpdateKinesisStreamingDestinationOutput_ToDafny(nativeOutput dynamodb.UpdateKinesisStreamingDestinationOutput) ComAmazonawsDynamodbTypes.UpdateKinesisStreamingDestinationOutput { + + return func() ComAmazonawsDynamodbTypes.UpdateKinesisStreamingDestinationOutput { + + return ComAmazonawsDynamodbTypes.Companion_UpdateKinesisStreamingDestinationOutput_.Create_UpdateKinesisStreamingDestinationOutput_(Com_amazonaws_dynamodb_UpdateKinesisStreamingDestinationOutput_TableName_ToDafny(nativeOutput.TableName), Com_amazonaws_dynamodb_UpdateKinesisStreamingDestinationOutput_StreamArn_ToDafny(nativeOutput.StreamArn), Com_amazonaws_dynamodb_UpdateKinesisStreamingDestinationOutput_DestinationStatus_ToDafny(nativeOutput.DestinationStatus), Com_amazonaws_dynamodb_UpdateKinesisStreamingDestinationOutput_UpdateKinesisStreamingConfiguration_ToDafny(nativeOutput.UpdateKinesisStreamingConfiguration)) + }() + +} + +func UpdateTableInput_ToDafny(nativeInput dynamodb.UpdateTableInput) ComAmazonawsDynamodbTypes.UpdateTableInput { + + return func() ComAmazonawsDynamodbTypes.UpdateTableInput { + + return ComAmazonawsDynamodbTypes.Companion_UpdateTableInput_.Create_UpdateTableInput_(Com_amazonaws_dynamodb_UpdateTableInput_AttributeDefinitions_ToDafny(nativeInput.AttributeDefinitions), Com_amazonaws_dynamodb_UpdateTableInput_TableName_ToDafny(nativeInput.TableName), Com_amazonaws_dynamodb_UpdateTableInput_BillingMode_ToDafny(nativeInput.BillingMode), Com_amazonaws_dynamodb_UpdateTableInput_ProvisionedThroughput_ToDafny(nativeInput.ProvisionedThroughput), Com_amazonaws_dynamodb_UpdateTableInput_GlobalSecondaryIndexUpdates_ToDafny(nativeInput.GlobalSecondaryIndexUpdates), Com_amazonaws_dynamodb_UpdateTableInput_StreamSpecification_ToDafny(nativeInput.StreamSpecification), Com_amazonaws_dynamodb_UpdateTableInput_SSESpecification_ToDafny(nativeInput.SSESpecification), Com_amazonaws_dynamodb_UpdateTableInput_ReplicaUpdates_ToDafny(nativeInput.ReplicaUpdates), Com_amazonaws_dynamodb_UpdateTableInput_TableClass_ToDafny(nativeInput.TableClass), Com_amazonaws_dynamodb_UpdateTableInput_DeletionProtectionEnabled_ToDafny(nativeInput.DeletionProtectionEnabled), Com_amazonaws_dynamodb_UpdateTableInput_OnDemandThroughput_ToDafny(nativeInput.OnDemandThroughput)) + }() + +} + +func UpdateTableOutput_ToDafny(nativeOutput dynamodb.UpdateTableOutput) ComAmazonawsDynamodbTypes.UpdateTableOutput { + + return func() ComAmazonawsDynamodbTypes.UpdateTableOutput { + + return ComAmazonawsDynamodbTypes.Companion_UpdateTableOutput_.Create_UpdateTableOutput_(Com_amazonaws_dynamodb_UpdateTableOutput_TableDescription_ToDafny(nativeOutput.TableDescription)) + }() + +} + +func UpdateTableReplicaAutoScalingInput_ToDafny(nativeInput dynamodb.UpdateTableReplicaAutoScalingInput) ComAmazonawsDynamodbTypes.UpdateTableReplicaAutoScalingInput { + + return func() ComAmazonawsDynamodbTypes.UpdateTableReplicaAutoScalingInput { + + return ComAmazonawsDynamodbTypes.Companion_UpdateTableReplicaAutoScalingInput_.Create_UpdateTableReplicaAutoScalingInput_(Com_amazonaws_dynamodb_UpdateTableReplicaAutoScalingInput_GlobalSecondaryIndexUpdates_ToDafny(nativeInput.GlobalSecondaryIndexUpdates), Com_amazonaws_dynamodb_UpdateTableReplicaAutoScalingInput_TableName_ToDafny(nativeInput.TableName), Com_amazonaws_dynamodb_UpdateTableReplicaAutoScalingInput_ProvisionedWriteCapacityAutoScalingUpdate_ToDafny(nativeInput.ProvisionedWriteCapacityAutoScalingUpdate), Com_amazonaws_dynamodb_UpdateTableReplicaAutoScalingInput_ReplicaUpdates_ToDafny(nativeInput.ReplicaUpdates)) + }() + +} + +func UpdateTableReplicaAutoScalingOutput_ToDafny(nativeOutput dynamodb.UpdateTableReplicaAutoScalingOutput) ComAmazonawsDynamodbTypes.UpdateTableReplicaAutoScalingOutput { + + return func() ComAmazonawsDynamodbTypes.UpdateTableReplicaAutoScalingOutput { + + return ComAmazonawsDynamodbTypes.Companion_UpdateTableReplicaAutoScalingOutput_.Create_UpdateTableReplicaAutoScalingOutput_(Com_amazonaws_dynamodb_UpdateTableReplicaAutoScalingOutput_TableAutoScalingDescription_ToDafny(nativeOutput.TableAutoScalingDescription)) + }() + +} + +func UpdateTimeToLiveInput_ToDafny(nativeInput dynamodb.UpdateTimeToLiveInput) ComAmazonawsDynamodbTypes.UpdateTimeToLiveInput { + + return func() ComAmazonawsDynamodbTypes.UpdateTimeToLiveInput { + + return ComAmazonawsDynamodbTypes.Companion_UpdateTimeToLiveInput_.Create_UpdateTimeToLiveInput_(Com_amazonaws_dynamodb_UpdateTimeToLiveInput_TableName_ToDafny(nativeInput.TableName), Com_amazonaws_dynamodb_UpdateTimeToLiveInput_TimeToLiveSpecification_ToDafny(nativeInput.TimeToLiveSpecification)) + }() + +} + +func UpdateTimeToLiveOutput_ToDafny(nativeOutput dynamodb.UpdateTimeToLiveOutput) ComAmazonawsDynamodbTypes.UpdateTimeToLiveOutput { + + return func() ComAmazonawsDynamodbTypes.UpdateTimeToLiveOutput { + + return ComAmazonawsDynamodbTypes.Companion_UpdateTimeToLiveOutput_.Create_UpdateTimeToLiveOutput_(Com_amazonaws_dynamodb_UpdateTimeToLiveOutput_TimeToLiveSpecification_ToDafny(nativeOutput.TimeToLiveSpecification)) + }() + +} + +func BackupInUseException_ToDafny(nativeInput types.BackupInUseException) ComAmazonawsDynamodbTypes.Error { + return func() ComAmazonawsDynamodbTypes.Error { + + return ComAmazonawsDynamodbTypes.Companion_Error_.Create_BackupInUseException_(Com_amazonaws_dynamodb_BackupInUseException_message_ToDafny(nativeInput.Message)) + }() + +} + +func BackupNotFoundException_ToDafny(nativeInput types.BackupNotFoundException) ComAmazonawsDynamodbTypes.Error { + return func() ComAmazonawsDynamodbTypes.Error { + + return ComAmazonawsDynamodbTypes.Companion_Error_.Create_BackupNotFoundException_(Com_amazonaws_dynamodb_BackupNotFoundException_message_ToDafny(nativeInput.Message)) + }() + +} + +func ConditionalCheckFailedException_ToDafny(nativeInput types.ConditionalCheckFailedException) ComAmazonawsDynamodbTypes.Error { + return func() ComAmazonawsDynamodbTypes.Error { + + return ComAmazonawsDynamodbTypes.Companion_Error_.Create_ConditionalCheckFailedException_(Com_amazonaws_dynamodb_ConditionalCheckFailedException_message_ToDafny(nativeInput.Message), Com_amazonaws_dynamodb_ConditionalCheckFailedException_Item_ToDafny(nativeInput.Item)) + }() + +} + +func ContinuousBackupsUnavailableException_ToDafny(nativeInput types.ContinuousBackupsUnavailableException) ComAmazonawsDynamodbTypes.Error { + return func() ComAmazonawsDynamodbTypes.Error { + + return ComAmazonawsDynamodbTypes.Companion_Error_.Create_ContinuousBackupsUnavailableException_(Com_amazonaws_dynamodb_ContinuousBackupsUnavailableException_message_ToDafny(nativeInput.Message)) + }() + +} + +func DuplicateItemException_ToDafny(nativeInput types.DuplicateItemException) ComAmazonawsDynamodbTypes.Error { + return func() ComAmazonawsDynamodbTypes.Error { + + return ComAmazonawsDynamodbTypes.Companion_Error_.Create_DuplicateItemException_(Com_amazonaws_dynamodb_DuplicateItemException_message_ToDafny(nativeInput.Message)) + }() + +} + +func ExportConflictException_ToDafny(nativeInput types.ExportConflictException) ComAmazonawsDynamodbTypes.Error { + return func() ComAmazonawsDynamodbTypes.Error { + + return ComAmazonawsDynamodbTypes.Companion_Error_.Create_ExportConflictException_(Com_amazonaws_dynamodb_ExportConflictException_message_ToDafny(nativeInput.Message)) + }() + +} + +func ExportNotFoundException_ToDafny(nativeInput types.ExportNotFoundException) ComAmazonawsDynamodbTypes.Error { + return func() ComAmazonawsDynamodbTypes.Error { + + return ComAmazonawsDynamodbTypes.Companion_Error_.Create_ExportNotFoundException_(Com_amazonaws_dynamodb_ExportNotFoundException_message_ToDafny(nativeInput.Message)) + }() + +} + +func GlobalTableAlreadyExistsException_ToDafny(nativeInput types.GlobalTableAlreadyExistsException) ComAmazonawsDynamodbTypes.Error { + return func() ComAmazonawsDynamodbTypes.Error { + + return ComAmazonawsDynamodbTypes.Companion_Error_.Create_GlobalTableAlreadyExistsException_(Com_amazonaws_dynamodb_GlobalTableAlreadyExistsException_message_ToDafny(nativeInput.Message)) + }() + +} + +func GlobalTableNotFoundException_ToDafny(nativeInput types.GlobalTableNotFoundException) ComAmazonawsDynamodbTypes.Error { + return func() ComAmazonawsDynamodbTypes.Error { + + return ComAmazonawsDynamodbTypes.Companion_Error_.Create_GlobalTableNotFoundException_(Com_amazonaws_dynamodb_GlobalTableNotFoundException_message_ToDafny(nativeInput.Message)) + }() + +} + +func IdempotentParameterMismatchException_ToDafny(nativeInput types.IdempotentParameterMismatchException) ComAmazonawsDynamodbTypes.Error { + return func() ComAmazonawsDynamodbTypes.Error { + + return ComAmazonawsDynamodbTypes.Companion_Error_.Create_IdempotentParameterMismatchException_(Com_amazonaws_dynamodb_IdempotentParameterMismatchException_Message_ToDafny(nativeInput.Message)) + }() + +} + +func ImportConflictException_ToDafny(nativeInput types.ImportConflictException) ComAmazonawsDynamodbTypes.Error { + return func() ComAmazonawsDynamodbTypes.Error { + + return ComAmazonawsDynamodbTypes.Companion_Error_.Create_ImportConflictException_(Com_amazonaws_dynamodb_ImportConflictException_message_ToDafny(nativeInput.Message)) + }() + +} + +func ImportNotFoundException_ToDafny(nativeInput types.ImportNotFoundException) ComAmazonawsDynamodbTypes.Error { + return func() ComAmazonawsDynamodbTypes.Error { + + return ComAmazonawsDynamodbTypes.Companion_Error_.Create_ImportNotFoundException_(Com_amazonaws_dynamodb_ImportNotFoundException_message_ToDafny(nativeInput.Message)) + }() + +} + +func IndexNotFoundException_ToDafny(nativeInput types.IndexNotFoundException) ComAmazonawsDynamodbTypes.Error { + return func() ComAmazonawsDynamodbTypes.Error { + + return ComAmazonawsDynamodbTypes.Companion_Error_.Create_IndexNotFoundException_(Com_amazonaws_dynamodb_IndexNotFoundException_message_ToDafny(nativeInput.Message)) + }() + +} + +func InternalServerError_ToDafny(nativeInput types.InternalServerError) ComAmazonawsDynamodbTypes.Error { + return func() ComAmazonawsDynamodbTypes.Error { + + return ComAmazonawsDynamodbTypes.Companion_Error_.Create_InternalServerError_(Com_amazonaws_dynamodb_InternalServerError_message_ToDafny(nativeInput.Message)) + }() + +} + +func InvalidEndpointException_ToDafny(nativeInput types.InvalidEndpointException) ComAmazonawsDynamodbTypes.Error { + return func() ComAmazonawsDynamodbTypes.Error { + + return ComAmazonawsDynamodbTypes.Companion_Error_.Create_InvalidEndpointException_(Com_amazonaws_dynamodb_InvalidEndpointException_Message_ToDafny(nativeInput.Message)) + }() + +} + +func InvalidExportTimeException_ToDafny(nativeInput types.InvalidExportTimeException) ComAmazonawsDynamodbTypes.Error { + return func() ComAmazonawsDynamodbTypes.Error { + + return ComAmazonawsDynamodbTypes.Companion_Error_.Create_InvalidExportTimeException_(Com_amazonaws_dynamodb_InvalidExportTimeException_message_ToDafny(nativeInput.Message)) + }() + +} + +func InvalidRestoreTimeException_ToDafny(nativeInput types.InvalidRestoreTimeException) ComAmazonawsDynamodbTypes.Error { + return func() ComAmazonawsDynamodbTypes.Error { + + return ComAmazonawsDynamodbTypes.Companion_Error_.Create_InvalidRestoreTimeException_(Com_amazonaws_dynamodb_InvalidRestoreTimeException_message_ToDafny(nativeInput.Message)) + }() + +} + +func ItemCollectionSizeLimitExceededException_ToDafny(nativeInput types.ItemCollectionSizeLimitExceededException) ComAmazonawsDynamodbTypes.Error { + return func() ComAmazonawsDynamodbTypes.Error { + + return ComAmazonawsDynamodbTypes.Companion_Error_.Create_ItemCollectionSizeLimitExceededException_(Com_amazonaws_dynamodb_ItemCollectionSizeLimitExceededException_message_ToDafny(nativeInput.Message)) + }() + +} + +func LimitExceededException_ToDafny(nativeInput types.LimitExceededException) ComAmazonawsDynamodbTypes.Error { + return func() ComAmazonawsDynamodbTypes.Error { + + return ComAmazonawsDynamodbTypes.Companion_Error_.Create_LimitExceededException_(Com_amazonaws_dynamodb_LimitExceededException_message_ToDafny(nativeInput.Message)) + }() + +} + +func PointInTimeRecoveryUnavailableException_ToDafny(nativeInput types.PointInTimeRecoveryUnavailableException) ComAmazonawsDynamodbTypes.Error { + return func() ComAmazonawsDynamodbTypes.Error { + + return ComAmazonawsDynamodbTypes.Companion_Error_.Create_PointInTimeRecoveryUnavailableException_(Com_amazonaws_dynamodb_PointInTimeRecoveryUnavailableException_message_ToDafny(nativeInput.Message)) + }() + +} + +func PolicyNotFoundException_ToDafny(nativeInput types.PolicyNotFoundException) ComAmazonawsDynamodbTypes.Error { + return func() ComAmazonawsDynamodbTypes.Error { + + return ComAmazonawsDynamodbTypes.Companion_Error_.Create_PolicyNotFoundException_(Com_amazonaws_dynamodb_PolicyNotFoundException_message_ToDafny(nativeInput.Message)) + }() + +} + +func ProvisionedThroughputExceededException_ToDafny(nativeInput types.ProvisionedThroughputExceededException) ComAmazonawsDynamodbTypes.Error { + return func() ComAmazonawsDynamodbTypes.Error { + + return ComAmazonawsDynamodbTypes.Companion_Error_.Create_ProvisionedThroughputExceededException_(Com_amazonaws_dynamodb_ProvisionedThroughputExceededException_message_ToDafny(nativeInput.Message)) + }() + +} + +func ReplicaAlreadyExistsException_ToDafny(nativeInput types.ReplicaAlreadyExistsException) ComAmazonawsDynamodbTypes.Error { + return func() ComAmazonawsDynamodbTypes.Error { + + return ComAmazonawsDynamodbTypes.Companion_Error_.Create_ReplicaAlreadyExistsException_(Com_amazonaws_dynamodb_ReplicaAlreadyExistsException_message_ToDafny(nativeInput.Message)) + }() + +} + +func ReplicaNotFoundException_ToDafny(nativeInput types.ReplicaNotFoundException) ComAmazonawsDynamodbTypes.Error { + return func() ComAmazonawsDynamodbTypes.Error { + + return ComAmazonawsDynamodbTypes.Companion_Error_.Create_ReplicaNotFoundException_(Com_amazonaws_dynamodb_ReplicaNotFoundException_message_ToDafny(nativeInput.Message)) + }() + +} + +func RequestLimitExceeded_ToDafny(nativeInput types.RequestLimitExceeded) ComAmazonawsDynamodbTypes.Error { + return func() ComAmazonawsDynamodbTypes.Error { + + return ComAmazonawsDynamodbTypes.Companion_Error_.Create_RequestLimitExceeded_(Com_amazonaws_dynamodb_RequestLimitExceeded_message_ToDafny(nativeInput.Message)) + }() + +} + +func ResourceInUseException_ToDafny(nativeInput types.ResourceInUseException) ComAmazonawsDynamodbTypes.Error { + return func() ComAmazonawsDynamodbTypes.Error { + + return ComAmazonawsDynamodbTypes.Companion_Error_.Create_ResourceInUseException_(Com_amazonaws_dynamodb_ResourceInUseException_message_ToDafny(nativeInput.Message)) + }() + +} + +func ResourceNotFoundException_ToDafny(nativeInput types.ResourceNotFoundException) ComAmazonawsDynamodbTypes.Error { + return func() ComAmazonawsDynamodbTypes.Error { + + return ComAmazonawsDynamodbTypes.Companion_Error_.Create_ResourceNotFoundException_(Com_amazonaws_dynamodb_ResourceNotFoundException_message_ToDafny(nativeInput.Message)) + }() + +} + +func TableAlreadyExistsException_ToDafny(nativeInput types.TableAlreadyExistsException) ComAmazonawsDynamodbTypes.Error { + return func() ComAmazonawsDynamodbTypes.Error { + + return ComAmazonawsDynamodbTypes.Companion_Error_.Create_TableAlreadyExistsException_(Com_amazonaws_dynamodb_TableAlreadyExistsException_message_ToDafny(nativeInput.Message)) + }() + +} + +func TableInUseException_ToDafny(nativeInput types.TableInUseException) ComAmazonawsDynamodbTypes.Error { + return func() ComAmazonawsDynamodbTypes.Error { + + return ComAmazonawsDynamodbTypes.Companion_Error_.Create_TableInUseException_(Com_amazonaws_dynamodb_TableInUseException_message_ToDafny(nativeInput.Message)) + }() + +} + +func TableNotFoundException_ToDafny(nativeInput types.TableNotFoundException) ComAmazonawsDynamodbTypes.Error { + return func() ComAmazonawsDynamodbTypes.Error { + + return ComAmazonawsDynamodbTypes.Companion_Error_.Create_TableNotFoundException_(Com_amazonaws_dynamodb_TableNotFoundException_message_ToDafny(nativeInput.Message)) + }() + +} + +func TransactionCanceledException_ToDafny(nativeInput types.TransactionCanceledException) ComAmazonawsDynamodbTypes.Error { + return func() ComAmazonawsDynamodbTypes.Error { + + return ComAmazonawsDynamodbTypes.Companion_Error_.Create_TransactionCanceledException_(Com_amazonaws_dynamodb_TransactionCanceledException_Message_ToDafny(nativeInput.Message), Com_amazonaws_dynamodb_TransactionCanceledException_CancellationReasons_ToDafny(nativeInput.CancellationReasons)) + }() + +} + +func TransactionConflictException_ToDafny(nativeInput types.TransactionConflictException) ComAmazonawsDynamodbTypes.Error { + return func() ComAmazonawsDynamodbTypes.Error { + + return ComAmazonawsDynamodbTypes.Companion_Error_.Create_TransactionConflictException_(Com_amazonaws_dynamodb_TransactionConflictException_message_ToDafny(nativeInput.Message)) + }() + +} + +func TransactionInProgressException_ToDafny(nativeInput types.TransactionInProgressException) ComAmazonawsDynamodbTypes.Error { + return func() ComAmazonawsDynamodbTypes.Error { + + return ComAmazonawsDynamodbTypes.Companion_Error_.Create_TransactionInProgressException_(Com_amazonaws_dynamodb_TransactionInProgressException_Message_ToDafny(nativeInput.Message)) + }() + +} + +func OpaqueError_Input_ToDafny(nativeInput error) ComAmazonawsDynamodbTypes.Error { + return ComAmazonawsDynamodbTypes.Companion_Error_.Create_OpaqueWithText_(nativeInput, func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(nativeInput.Error())) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }()) +} + +func Error_ToDafny(err error) ComAmazonawsDynamodbTypes.Error { + // Service Errors + var BackupInUseException *types.BackupInUseException + if errors.As(err, &BackupInUseException) { + return BackupInUseException_ToDafny(*BackupInUseException) + } + + var BackupNotFoundException *types.BackupNotFoundException + if errors.As(err, &BackupNotFoundException) { + return BackupNotFoundException_ToDafny(*BackupNotFoundException) + } + + var ConditionalCheckFailedException *types.ConditionalCheckFailedException + if errors.As(err, &ConditionalCheckFailedException) { + return ConditionalCheckFailedException_ToDafny(*ConditionalCheckFailedException) + } + + var ContinuousBackupsUnavailableException *types.ContinuousBackupsUnavailableException + if errors.As(err, &ContinuousBackupsUnavailableException) { + return ContinuousBackupsUnavailableException_ToDafny(*ContinuousBackupsUnavailableException) + } + + var DuplicateItemException *types.DuplicateItemException + if errors.As(err, &DuplicateItemException) { + return DuplicateItemException_ToDafny(*DuplicateItemException) + } + + var ExportConflictException *types.ExportConflictException + if errors.As(err, &ExportConflictException) { + return ExportConflictException_ToDafny(*ExportConflictException) + } + + var ExportNotFoundException *types.ExportNotFoundException + if errors.As(err, &ExportNotFoundException) { + return ExportNotFoundException_ToDafny(*ExportNotFoundException) + } + + var GlobalTableAlreadyExistsException *types.GlobalTableAlreadyExistsException + if errors.As(err, &GlobalTableAlreadyExistsException) { + return GlobalTableAlreadyExistsException_ToDafny(*GlobalTableAlreadyExistsException) + } + + var GlobalTableNotFoundException *types.GlobalTableNotFoundException + if errors.As(err, &GlobalTableNotFoundException) { + return GlobalTableNotFoundException_ToDafny(*GlobalTableNotFoundException) + } + + var IdempotentParameterMismatchException *types.IdempotentParameterMismatchException + if errors.As(err, &IdempotentParameterMismatchException) { + return IdempotentParameterMismatchException_ToDafny(*IdempotentParameterMismatchException) + } + + var ImportConflictException *types.ImportConflictException + if errors.As(err, &ImportConflictException) { + return ImportConflictException_ToDafny(*ImportConflictException) + } + + var ImportNotFoundException *types.ImportNotFoundException + if errors.As(err, &ImportNotFoundException) { + return ImportNotFoundException_ToDafny(*ImportNotFoundException) + } + + var IndexNotFoundException *types.IndexNotFoundException + if errors.As(err, &IndexNotFoundException) { + return IndexNotFoundException_ToDafny(*IndexNotFoundException) + } + + var InternalServerError *types.InternalServerError + if errors.As(err, &InternalServerError) { + return InternalServerError_ToDafny(*InternalServerError) + } + + var InvalidEndpointException *types.InvalidEndpointException + if errors.As(err, &InvalidEndpointException) { + return InvalidEndpointException_ToDafny(*InvalidEndpointException) + } + + var InvalidExportTimeException *types.InvalidExportTimeException + if errors.As(err, &InvalidExportTimeException) { + return InvalidExportTimeException_ToDafny(*InvalidExportTimeException) + } + + var InvalidRestoreTimeException *types.InvalidRestoreTimeException + if errors.As(err, &InvalidRestoreTimeException) { + return InvalidRestoreTimeException_ToDafny(*InvalidRestoreTimeException) + } + + var ItemCollectionSizeLimitExceededException *types.ItemCollectionSizeLimitExceededException + if errors.As(err, &ItemCollectionSizeLimitExceededException) { + return ItemCollectionSizeLimitExceededException_ToDafny(*ItemCollectionSizeLimitExceededException) + } + + var LimitExceededException *types.LimitExceededException + if errors.As(err, &LimitExceededException) { + return LimitExceededException_ToDafny(*LimitExceededException) + } + + var PointInTimeRecoveryUnavailableException *types.PointInTimeRecoveryUnavailableException + if errors.As(err, &PointInTimeRecoveryUnavailableException) { + return PointInTimeRecoveryUnavailableException_ToDafny(*PointInTimeRecoveryUnavailableException) + } + + var PolicyNotFoundException *types.PolicyNotFoundException + if errors.As(err, &PolicyNotFoundException) { + return PolicyNotFoundException_ToDafny(*PolicyNotFoundException) + } + + var ProvisionedThroughputExceededException *types.ProvisionedThroughputExceededException + if errors.As(err, &ProvisionedThroughputExceededException) { + return ProvisionedThroughputExceededException_ToDafny(*ProvisionedThroughputExceededException) + } + + var ReplicaAlreadyExistsException *types.ReplicaAlreadyExistsException + if errors.As(err, &ReplicaAlreadyExistsException) { + return ReplicaAlreadyExistsException_ToDafny(*ReplicaAlreadyExistsException) + } + + var ReplicaNotFoundException *types.ReplicaNotFoundException + if errors.As(err, &ReplicaNotFoundException) { + return ReplicaNotFoundException_ToDafny(*ReplicaNotFoundException) + } + + var RequestLimitExceeded *types.RequestLimitExceeded + if errors.As(err, &RequestLimitExceeded) { + return RequestLimitExceeded_ToDafny(*RequestLimitExceeded) + } + + var ResourceInUseException *types.ResourceInUseException + if errors.As(err, &ResourceInUseException) { + return ResourceInUseException_ToDafny(*ResourceInUseException) + } + + var ResourceNotFoundException *types.ResourceNotFoundException + if errors.As(err, &ResourceNotFoundException) { + return ResourceNotFoundException_ToDafny(*ResourceNotFoundException) + } + + var TableAlreadyExistsException *types.TableAlreadyExistsException + if errors.As(err, &TableAlreadyExistsException) { + return TableAlreadyExistsException_ToDafny(*TableAlreadyExistsException) + } + + var TableInUseException *types.TableInUseException + if errors.As(err, &TableInUseException) { + return TableInUseException_ToDafny(*TableInUseException) + } + + var TableNotFoundException *types.TableNotFoundException + if errors.As(err, &TableNotFoundException) { + return TableNotFoundException_ToDafny(*TableNotFoundException) + } + + var TransactionCanceledException *types.TransactionCanceledException + if errors.As(err, &TransactionCanceledException) { + return TransactionCanceledException_ToDafny(*TransactionCanceledException) + } + + var TransactionConflictException *types.TransactionConflictException + if errors.As(err, &TransactionConflictException) { + return TransactionConflictException_ToDafny(*TransactionConflictException) + } + + var TransactionInProgressException *types.TransactionInProgressException + if errors.As(err, &TransactionInProgressException) { + return TransactionInProgressException_ToDafny(*TransactionInProgressException) + } + + return OpaqueError_Input_ToDafny(err) +} + +func Com_amazonaws_dynamodb_BatchExecuteStatementInput_Statements_ToDafny(input []types.BatchStatementRequest) dafny.Sequence { + return func() dafny.Sequence { + if input == nil { + return nil + } + var fieldValue []interface{} = make([]interface{}, 0) + for _, val := range input { + element := Com_amazonaws_dynamodb_PartiQLBatchRequest_member_ToDafny(val) + fieldValue = append(fieldValue, element) + } + return dafny.SeqOf(fieldValue...) + }() +} + +func Com_amazonaws_dynamodb_PartiQLBatchRequest_member_ToDafny(input types.BatchStatementRequest) ComAmazonawsDynamodbTypes.BatchStatementRequest { + return func() ComAmazonawsDynamodbTypes.BatchStatementRequest { + + return ComAmazonawsDynamodbTypes.Companion_BatchStatementRequest_.Create_BatchStatementRequest_(Com_amazonaws_dynamodb_BatchStatementRequest_Statement_ToDafny(input.Statement), Com_amazonaws_dynamodb_BatchStatementRequest_Parameters_ToDafny(input.Parameters), Com_amazonaws_dynamodb_BatchStatementRequest_ConsistentRead_ToDafny(input.ConsistentRead), Com_amazonaws_dynamodb_BatchStatementRequest_ReturnValuesOnConditionCheckFailure_ToDafny(input.ReturnValuesOnConditionCheckFailure)) + }() +} + +func Com_amazonaws_dynamodb_BatchStatementRequest_Statement_ToDafny(input *string) dafny.Sequence { + return func() dafny.Sequence { + if input == nil { + return nil + } + return func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(*input)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }() + }() +} + +func Com_amazonaws_dynamodb_BatchStatementRequest_Parameters_ToDafny(input []types.AttributeValue) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + var fieldValue []interface{} = make([]interface{}, 0) + for _, val := range input { + element := Com_amazonaws_dynamodb_PreparedStatementParameters_member_ToDafny(val) + fieldValue = append(fieldValue, element) + } + return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(fieldValue...)) + }() +} + +func Com_amazonaws_dynamodb_PreparedStatementParameters_member_ToDafny(input types.AttributeValue) ComAmazonawsDynamodbTypes.AttributeValue { + return func() ComAmazonawsDynamodbTypes.AttributeValue { + switch input.(type) { + case *types.AttributeValueMemberS: + var inputToConversion = Com_amazonaws_dynamodb_AttributeValue_S_ToDafny(input.(*types.AttributeValueMemberS).Value) + return ComAmazonawsDynamodbTypes.CompanionStruct_AttributeValue_{}.Create_S_(inputToConversion.UnwrapOr(nil).(dafny.Sequence)) + case *types.AttributeValueMemberN: + var inputToConversion = Com_amazonaws_dynamodb_AttributeValue_N_ToDafny(input.(*types.AttributeValueMemberN).Value) + return ComAmazonawsDynamodbTypes.CompanionStruct_AttributeValue_{}.Create_N_(inputToConversion.UnwrapOr(nil).(dafny.Sequence)) + case *types.AttributeValueMemberB: + var inputToConversion = Com_amazonaws_dynamodb_AttributeValue_B_ToDafny(input.(*types.AttributeValueMemberB).Value) + return ComAmazonawsDynamodbTypes.CompanionStruct_AttributeValue_{}.Create_B_(inputToConversion.UnwrapOr(nil).(dafny.Sequence)) + case *types.AttributeValueMemberSS: + var inputToConversion = Com_amazonaws_dynamodb_AttributeValue_SS_ToDafny(input.(*types.AttributeValueMemberSS).Value) + return ComAmazonawsDynamodbTypes.CompanionStruct_AttributeValue_{}.Create_SS_(inputToConversion.UnwrapOr(nil).(dafny.Sequence)) + case *types.AttributeValueMemberNS: + var inputToConversion = Com_amazonaws_dynamodb_AttributeValue_NS_ToDafny(input.(*types.AttributeValueMemberNS).Value) + return ComAmazonawsDynamodbTypes.CompanionStruct_AttributeValue_{}.Create_NS_(inputToConversion.UnwrapOr(nil).(dafny.Sequence)) + case *types.AttributeValueMemberBS: + var inputToConversion = Com_amazonaws_dynamodb_AttributeValue_BS_ToDafny(input.(*types.AttributeValueMemberBS).Value) + return ComAmazonawsDynamodbTypes.CompanionStruct_AttributeValue_{}.Create_BS_(inputToConversion.UnwrapOr(nil).(dafny.Sequence)) + case *types.AttributeValueMemberM: + var inputToConversion = Com_amazonaws_dynamodb_AttributeValue_M_ToDafny(input.(*types.AttributeValueMemberM).Value) + return ComAmazonawsDynamodbTypes.CompanionStruct_AttributeValue_{}.Create_M_(inputToConversion.UnwrapOr(nil).(dafny.Map)) + case *types.AttributeValueMemberL: + var inputToConversion = Com_amazonaws_dynamodb_AttributeValue_L_ToDafny(input.(*types.AttributeValueMemberL).Value) + return ComAmazonawsDynamodbTypes.CompanionStruct_AttributeValue_{}.Create_L_(inputToConversion.UnwrapOr(nil).(dafny.Sequence)) + case *types.AttributeValueMemberNULL: + var inputToConversion = Com_amazonaws_dynamodb_AttributeValue_NULL_ToDafny(input.(*types.AttributeValueMemberNULL).Value) + return ComAmazonawsDynamodbTypes.CompanionStruct_AttributeValue_{}.Create_NULL_(inputToConversion.UnwrapOr(nil).(bool)) + case *types.AttributeValueMemberBOOL: + var inputToConversion = Com_amazonaws_dynamodb_AttributeValue_BOOL_ToDafny(input.(*types.AttributeValueMemberBOOL).Value) + return ComAmazonawsDynamodbTypes.CompanionStruct_AttributeValue_{}.Create_BOOL_(inputToConversion.UnwrapOr(nil).(bool)) + + default: + panic("Unhandled union type") + } + }() +} + +func Com_amazonaws_dynamodb_AttributeValue_S_ToDafny(input string) Wrappers.Option { + return func() Wrappers.Option { + + 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 Com_amazonaws_dynamodb_AttributeValue_N_ToDafny(input string) Wrappers.Option { + return func() Wrappers.Option { + + 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 Com_amazonaws_dynamodb_AttributeValue_B_ToDafny(input []byte) Wrappers.Option { + return func() Wrappers.Option { + var v []interface{} + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + for _, e := range input { + v = append(v, e) + } + return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(v...)) + }() +} + +func Com_amazonaws_dynamodb_AttributeValue_SS_ToDafny(input []string) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + var fieldValue []interface{} = make([]interface{}, 0) + for _, val := range input { + element := Com_amazonaws_dynamodb_StringSetAttributeValue_member_ToDafny(val) + fieldValue = append(fieldValue, element) + } + return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(fieldValue...)) + }() +} + +func Com_amazonaws_dynamodb_StringSetAttributeValue_member_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 Com_amazonaws_dynamodb_AttributeValue_NS_ToDafny(input []string) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + var fieldValue []interface{} = make([]interface{}, 0) + for _, val := range input { + element := Com_amazonaws_dynamodb_NumberSetAttributeValue_member_ToDafny(val) + fieldValue = append(fieldValue, element) + } + return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(fieldValue...)) + }() +} + +func Com_amazonaws_dynamodb_NumberSetAttributeValue_member_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 Com_amazonaws_dynamodb_AttributeValue_BS_ToDafny(input [][]byte) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + var fieldValue []interface{} = make([]interface{}, 0) + for _, val := range input { + element := Com_amazonaws_dynamodb_BinarySetAttributeValue_member_ToDafny(val) + fieldValue = append(fieldValue, element) + } + return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(fieldValue...)) + }() +} + +func Com_amazonaws_dynamodb_BinarySetAttributeValue_member_ToDafny(input []byte) dafny.Sequence { + return func() dafny.Sequence { + var v []interface{} + if input == nil { + return nil + } + for _, e := range input { + v = append(v, e) + } + return dafny.SeqOf(v...) + }() +} + +func Com_amazonaws_dynamodb_AttributeValue_M_ToDafny(input map[string]types.AttributeValue) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + fieldValue := dafny.NewMapBuilder() + for key, val := range input { + fieldValue.Add(Com_amazonaws_dynamodb_MapAttributeValue_key_ToDafny(key), Com_amazonaws_dynamodb_MapAttributeValue_value_ToDafny(val)) + } + return Wrappers.Companion_Option_.Create_Some_(fieldValue.ToMap()) + }() +} + +func Com_amazonaws_dynamodb_MapAttributeValue_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 Com_amazonaws_dynamodb_MapAttributeValue_value_ToDafny(input types.AttributeValue) ComAmazonawsDynamodbTypes.AttributeValue { + return func() ComAmazonawsDynamodbTypes.AttributeValue { + switch input.(type) { + case *types.AttributeValueMemberS: + var inputToConversion = Com_amazonaws_dynamodb_AttributeValue_S_ToDafny(input.(*types.AttributeValueMemberS).Value) + return ComAmazonawsDynamodbTypes.CompanionStruct_AttributeValue_{}.Create_S_(inputToConversion.UnwrapOr(nil).(dafny.Sequence)) + case *types.AttributeValueMemberN: + var inputToConversion = Com_amazonaws_dynamodb_AttributeValue_N_ToDafny(input.(*types.AttributeValueMemberN).Value) + return ComAmazonawsDynamodbTypes.CompanionStruct_AttributeValue_{}.Create_N_(inputToConversion.UnwrapOr(nil).(dafny.Sequence)) + case *types.AttributeValueMemberB: + var inputToConversion = Com_amazonaws_dynamodb_AttributeValue_B_ToDafny(input.(*types.AttributeValueMemberB).Value) + return ComAmazonawsDynamodbTypes.CompanionStruct_AttributeValue_{}.Create_B_(inputToConversion.UnwrapOr(nil).(dafny.Sequence)) + case *types.AttributeValueMemberSS: + var inputToConversion = Com_amazonaws_dynamodb_AttributeValue_SS_ToDafny(input.(*types.AttributeValueMemberSS).Value) + return ComAmazonawsDynamodbTypes.CompanionStruct_AttributeValue_{}.Create_SS_(inputToConversion.UnwrapOr(nil).(dafny.Sequence)) + case *types.AttributeValueMemberNS: + var inputToConversion = Com_amazonaws_dynamodb_AttributeValue_NS_ToDafny(input.(*types.AttributeValueMemberNS).Value) + return ComAmazonawsDynamodbTypes.CompanionStruct_AttributeValue_{}.Create_NS_(inputToConversion.UnwrapOr(nil).(dafny.Sequence)) + case *types.AttributeValueMemberBS: + var inputToConversion = Com_amazonaws_dynamodb_AttributeValue_BS_ToDafny(input.(*types.AttributeValueMemberBS).Value) + return ComAmazonawsDynamodbTypes.CompanionStruct_AttributeValue_{}.Create_BS_(inputToConversion.UnwrapOr(nil).(dafny.Sequence)) + case *types.AttributeValueMemberM: + var inputToConversion = Com_amazonaws_dynamodb_AttributeValue_M_ToDafny(input.(*types.AttributeValueMemberM).Value) + return ComAmazonawsDynamodbTypes.CompanionStruct_AttributeValue_{}.Create_M_(inputToConversion.UnwrapOr(nil).(dafny.Map)) + case *types.AttributeValueMemberL: + var inputToConversion = Com_amazonaws_dynamodb_AttributeValue_L_ToDafny(input.(*types.AttributeValueMemberL).Value) + return ComAmazonawsDynamodbTypes.CompanionStruct_AttributeValue_{}.Create_L_(inputToConversion.UnwrapOr(nil).(dafny.Sequence)) + case *types.AttributeValueMemberNULL: + var inputToConversion = Com_amazonaws_dynamodb_AttributeValue_NULL_ToDafny(input.(*types.AttributeValueMemberNULL).Value) + return ComAmazonawsDynamodbTypes.CompanionStruct_AttributeValue_{}.Create_NULL_(inputToConversion.UnwrapOr(nil).(bool)) + case *types.AttributeValueMemberBOOL: + var inputToConversion = Com_amazonaws_dynamodb_AttributeValue_BOOL_ToDafny(input.(*types.AttributeValueMemberBOOL).Value) + return ComAmazonawsDynamodbTypes.CompanionStruct_AttributeValue_{}.Create_BOOL_(inputToConversion.UnwrapOr(nil).(bool)) + + default: + panic("Unhandled union type") + } + }() +} + +func Com_amazonaws_dynamodb_AttributeValue_L_ToDafny(input []types.AttributeValue) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + var fieldValue []interface{} = make([]interface{}, 0) + for _, val := range input { + element := Com_amazonaws_dynamodb_ListAttributeValue_member_ToDafny(val) + fieldValue = append(fieldValue, element) + } + return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(fieldValue...)) + }() +} + +func Com_amazonaws_dynamodb_ListAttributeValue_member_ToDafny(input types.AttributeValue) ComAmazonawsDynamodbTypes.AttributeValue { + return func() ComAmazonawsDynamodbTypes.AttributeValue { + switch input.(type) { + case *types.AttributeValueMemberS: + var inputToConversion = Com_amazonaws_dynamodb_AttributeValue_S_ToDafny(input.(*types.AttributeValueMemberS).Value) + return ComAmazonawsDynamodbTypes.CompanionStruct_AttributeValue_{}.Create_S_(inputToConversion.UnwrapOr(nil).(dafny.Sequence)) + case *types.AttributeValueMemberN: + var inputToConversion = Com_amazonaws_dynamodb_AttributeValue_N_ToDafny(input.(*types.AttributeValueMemberN).Value) + return ComAmazonawsDynamodbTypes.CompanionStruct_AttributeValue_{}.Create_N_(inputToConversion.UnwrapOr(nil).(dafny.Sequence)) + case *types.AttributeValueMemberB: + var inputToConversion = Com_amazonaws_dynamodb_AttributeValue_B_ToDafny(input.(*types.AttributeValueMemberB).Value) + return ComAmazonawsDynamodbTypes.CompanionStruct_AttributeValue_{}.Create_B_(inputToConversion.UnwrapOr(nil).(dafny.Sequence)) + case *types.AttributeValueMemberSS: + var inputToConversion = Com_amazonaws_dynamodb_AttributeValue_SS_ToDafny(input.(*types.AttributeValueMemberSS).Value) + return ComAmazonawsDynamodbTypes.CompanionStruct_AttributeValue_{}.Create_SS_(inputToConversion.UnwrapOr(nil).(dafny.Sequence)) + case *types.AttributeValueMemberNS: + var inputToConversion = Com_amazonaws_dynamodb_AttributeValue_NS_ToDafny(input.(*types.AttributeValueMemberNS).Value) + return ComAmazonawsDynamodbTypes.CompanionStruct_AttributeValue_{}.Create_NS_(inputToConversion.UnwrapOr(nil).(dafny.Sequence)) + case *types.AttributeValueMemberBS: + var inputToConversion = Com_amazonaws_dynamodb_AttributeValue_BS_ToDafny(input.(*types.AttributeValueMemberBS).Value) + return ComAmazonawsDynamodbTypes.CompanionStruct_AttributeValue_{}.Create_BS_(inputToConversion.UnwrapOr(nil).(dafny.Sequence)) + case *types.AttributeValueMemberM: + var inputToConversion = Com_amazonaws_dynamodb_AttributeValue_M_ToDafny(input.(*types.AttributeValueMemberM).Value) + return ComAmazonawsDynamodbTypes.CompanionStruct_AttributeValue_{}.Create_M_(inputToConversion.UnwrapOr(nil).(dafny.Map)) + case *types.AttributeValueMemberL: + var inputToConversion = Com_amazonaws_dynamodb_AttributeValue_L_ToDafny(input.(*types.AttributeValueMemberL).Value) + return ComAmazonawsDynamodbTypes.CompanionStruct_AttributeValue_{}.Create_L_(inputToConversion.UnwrapOr(nil).(dafny.Sequence)) + case *types.AttributeValueMemberNULL: + var inputToConversion = Com_amazonaws_dynamodb_AttributeValue_NULL_ToDafny(input.(*types.AttributeValueMemberNULL).Value) + return ComAmazonawsDynamodbTypes.CompanionStruct_AttributeValue_{}.Create_NULL_(inputToConversion.UnwrapOr(nil).(bool)) + case *types.AttributeValueMemberBOOL: + var inputToConversion = Com_amazonaws_dynamodb_AttributeValue_BOOL_ToDafny(input.(*types.AttributeValueMemberBOOL).Value) + return ComAmazonawsDynamodbTypes.CompanionStruct_AttributeValue_{}.Create_BOOL_(inputToConversion.UnwrapOr(nil).(bool)) + + default: + panic("Unhandled union type") + } + }() +} + +func Com_amazonaws_dynamodb_AttributeValue_NULL_ToDafny(input bool) Wrappers.Option { + return func() Wrappers.Option { + + return Wrappers.Companion_Option_.Create_Some_(input) + }() +} + +func Com_amazonaws_dynamodb_AttributeValue_BOOL_ToDafny(input bool) Wrappers.Option { + return func() Wrappers.Option { + + return Wrappers.Companion_Option_.Create_Some_(input) + }() +} + +func Com_amazonaws_dynamodb_BatchStatementRequest_ConsistentRead_ToDafny(input *bool) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(*input) + }() +} + +func Com_amazonaws_dynamodb_BatchStatementRequest_ReturnValuesOnConditionCheckFailure_ToDafny(input types.ReturnValuesOnConditionCheckFailure) Wrappers.Option { + return func() Wrappers.Option { + var index int + for _, enumVal := range input.Values() { + index++ + if enumVal == input { + break + } + if index == len(input.Values()) { + return Wrappers.Companion_Option_.Create_None_() + } + + } + var enum interface{} + for allEnums, i := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_ReturnValuesOnConditionCheckFailure_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return Wrappers.Companion_Option_.Create_Some_(enum.(ComAmazonawsDynamodbTypes.ReturnValuesOnConditionCheckFailure)) + }() +} + +func Com_amazonaws_dynamodb_BatchExecuteStatementInput_ReturnConsumedCapacity_ToDafny(input types.ReturnConsumedCapacity) Wrappers.Option { + return func() Wrappers.Option { + var index int + for _, enumVal := range input.Values() { + index++ + if enumVal == input { + break + } + if index == len(input.Values()) { + return Wrappers.Companion_Option_.Create_None_() + } + + } + var enum interface{} + for allEnums, i := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_ReturnConsumedCapacity_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return Wrappers.Companion_Option_.Create_Some_(enum.(ComAmazonawsDynamodbTypes.ReturnConsumedCapacity)) + }() +} + +func Com_amazonaws_dynamodb_BatchExecuteStatementOutput_Responses_ToDafny(input []types.BatchStatementResponse) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + var fieldValue []interface{} = make([]interface{}, 0) + for _, val := range input { + element := Com_amazonaws_dynamodb_PartiQLBatchResponse_member_ToDafny(val) + fieldValue = append(fieldValue, element) + } + return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(fieldValue...)) + }() +} + +func Com_amazonaws_dynamodb_PartiQLBatchResponse_member_ToDafny(input types.BatchStatementResponse) ComAmazonawsDynamodbTypes.BatchStatementResponse { + return func() ComAmazonawsDynamodbTypes.BatchStatementResponse { + + return ComAmazonawsDynamodbTypes.Companion_BatchStatementResponse_.Create_BatchStatementResponse_(Com_amazonaws_dynamodb_BatchStatementResponse_Error_ToDafny(input.Error), Com_amazonaws_dynamodb_BatchStatementResponse_TableName_ToDafny(input.TableName), Com_amazonaws_dynamodb_BatchStatementResponse_Item_ToDafny(input.Item)) + }() +} + +func Com_amazonaws_dynamodb_BatchStatementResponse_Error_ToDafny(input *types.BatchStatementError) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(ComAmazonawsDynamodbTypes.Companion_BatchStatementError_.Create_BatchStatementError_(Com_amazonaws_dynamodb_BatchStatementError_Code_ToDafny(input.Code), Com_amazonaws_dynamodb_BatchStatementError_Message_ToDafny(input.Message), Com_amazonaws_dynamodb_BatchStatementError_Item_ToDafny(input.Item))) + }() +} + +func Com_amazonaws_dynamodb_BatchStatementError_Code_ToDafny(input types.BatchStatementErrorCodeEnum) Wrappers.Option { + return func() Wrappers.Option { + var index int + for _, enumVal := range input.Values() { + index++ + if enumVal == input { + break + } + if index == len(input.Values()) { + return Wrappers.Companion_Option_.Create_None_() + } + + } + var enum interface{} + for allEnums, i := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_BatchStatementErrorCodeEnum_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return Wrappers.Companion_Option_.Create_Some_(enum.(ComAmazonawsDynamodbTypes.BatchStatementErrorCodeEnum)) + }() +} + +func Com_amazonaws_dynamodb_BatchStatementError_Message_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 Com_amazonaws_dynamodb_BatchStatementError_Item_ToDafny(input map[string]types.AttributeValue) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + fieldValue := dafny.NewMapBuilder() + for key, val := range input { + fieldValue.Add(Com_amazonaws_dynamodb_AttributeMap_key_ToDafny(key), Com_amazonaws_dynamodb_AttributeMap_value_ToDafny(val)) + } + return Wrappers.Companion_Option_.Create_Some_(fieldValue.ToMap()) + }() +} + +func Com_amazonaws_dynamodb_AttributeMap_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 Com_amazonaws_dynamodb_AttributeMap_value_ToDafny(input types.AttributeValue) ComAmazonawsDynamodbTypes.AttributeValue { + return func() ComAmazonawsDynamodbTypes.AttributeValue { + switch input.(type) { + case *types.AttributeValueMemberS: + var inputToConversion = Com_amazonaws_dynamodb_AttributeValue_S_ToDafny(input.(*types.AttributeValueMemberS).Value) + return ComAmazonawsDynamodbTypes.CompanionStruct_AttributeValue_{}.Create_S_(inputToConversion.UnwrapOr(nil).(dafny.Sequence)) + case *types.AttributeValueMemberN: + var inputToConversion = Com_amazonaws_dynamodb_AttributeValue_N_ToDafny(input.(*types.AttributeValueMemberN).Value) + return ComAmazonawsDynamodbTypes.CompanionStruct_AttributeValue_{}.Create_N_(inputToConversion.UnwrapOr(nil).(dafny.Sequence)) + case *types.AttributeValueMemberB: + var inputToConversion = Com_amazonaws_dynamodb_AttributeValue_B_ToDafny(input.(*types.AttributeValueMemberB).Value) + return ComAmazonawsDynamodbTypes.CompanionStruct_AttributeValue_{}.Create_B_(inputToConversion.UnwrapOr(nil).(dafny.Sequence)) + case *types.AttributeValueMemberSS: + var inputToConversion = Com_amazonaws_dynamodb_AttributeValue_SS_ToDafny(input.(*types.AttributeValueMemberSS).Value) + return ComAmazonawsDynamodbTypes.CompanionStruct_AttributeValue_{}.Create_SS_(inputToConversion.UnwrapOr(nil).(dafny.Sequence)) + case *types.AttributeValueMemberNS: + var inputToConversion = Com_amazonaws_dynamodb_AttributeValue_NS_ToDafny(input.(*types.AttributeValueMemberNS).Value) + return ComAmazonawsDynamodbTypes.CompanionStruct_AttributeValue_{}.Create_NS_(inputToConversion.UnwrapOr(nil).(dafny.Sequence)) + case *types.AttributeValueMemberBS: + var inputToConversion = Com_amazonaws_dynamodb_AttributeValue_BS_ToDafny(input.(*types.AttributeValueMemberBS).Value) + return ComAmazonawsDynamodbTypes.CompanionStruct_AttributeValue_{}.Create_BS_(inputToConversion.UnwrapOr(nil).(dafny.Sequence)) + case *types.AttributeValueMemberM: + var inputToConversion = Com_amazonaws_dynamodb_AttributeValue_M_ToDafny(input.(*types.AttributeValueMemberM).Value) + return ComAmazonawsDynamodbTypes.CompanionStruct_AttributeValue_{}.Create_M_(inputToConversion.UnwrapOr(nil).(dafny.Map)) + case *types.AttributeValueMemberL: + var inputToConversion = Com_amazonaws_dynamodb_AttributeValue_L_ToDafny(input.(*types.AttributeValueMemberL).Value) + return ComAmazonawsDynamodbTypes.CompanionStruct_AttributeValue_{}.Create_L_(inputToConversion.UnwrapOr(nil).(dafny.Sequence)) + case *types.AttributeValueMemberNULL: + var inputToConversion = Com_amazonaws_dynamodb_AttributeValue_NULL_ToDafny(input.(*types.AttributeValueMemberNULL).Value) + return ComAmazonawsDynamodbTypes.CompanionStruct_AttributeValue_{}.Create_NULL_(inputToConversion.UnwrapOr(nil).(bool)) + case *types.AttributeValueMemberBOOL: + var inputToConversion = Com_amazonaws_dynamodb_AttributeValue_BOOL_ToDafny(input.(*types.AttributeValueMemberBOOL).Value) + return ComAmazonawsDynamodbTypes.CompanionStruct_AttributeValue_{}.Create_BOOL_(inputToConversion.UnwrapOr(nil).(bool)) + + default: + panic("Unhandled union type") + } + }() +} + +func Com_amazonaws_dynamodb_BatchStatementResponse_TableName_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 Com_amazonaws_dynamodb_BatchStatementResponse_Item_ToDafny(input map[string]types.AttributeValue) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + fieldValue := dafny.NewMapBuilder() + for key, val := range input { + fieldValue.Add(Com_amazonaws_dynamodb_AttributeMap_key_ToDafny(key), Com_amazonaws_dynamodb_AttributeMap_value_ToDafny(val)) + } + return Wrappers.Companion_Option_.Create_Some_(fieldValue.ToMap()) + }() +} + +func Com_amazonaws_dynamodb_BatchExecuteStatementOutput_ConsumedCapacity_ToDafny(input []types.ConsumedCapacity) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + var fieldValue []interface{} = make([]interface{}, 0) + for _, val := range input { + element := Com_amazonaws_dynamodb_ConsumedCapacityMultiple_member_ToDafny(val) + fieldValue = append(fieldValue, element) + } + return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(fieldValue...)) + }() +} + +func Com_amazonaws_dynamodb_ConsumedCapacityMultiple_member_ToDafny(input types.ConsumedCapacity) ComAmazonawsDynamodbTypes.ConsumedCapacity { + return func() ComAmazonawsDynamodbTypes.ConsumedCapacity { + + return ComAmazonawsDynamodbTypes.Companion_ConsumedCapacity_.Create_ConsumedCapacity_(Com_amazonaws_dynamodb_ConsumedCapacity_TableName_ToDafny(input.TableName), Com_amazonaws_dynamodb_ConsumedCapacity_CapacityUnits_ToDafny(input.CapacityUnits), Com_amazonaws_dynamodb_ConsumedCapacity_ReadCapacityUnits_ToDafny(input.ReadCapacityUnits), Com_amazonaws_dynamodb_ConsumedCapacity_WriteCapacityUnits_ToDafny(input.WriteCapacityUnits), Com_amazonaws_dynamodb_ConsumedCapacity_Table_ToDafny(input.Table), Com_amazonaws_dynamodb_ConsumedCapacity_LocalSecondaryIndexes_ToDafny(input.LocalSecondaryIndexes), Com_amazonaws_dynamodb_ConsumedCapacity_GlobalSecondaryIndexes_ToDafny(input.GlobalSecondaryIndexes)) + }() +} + +func Com_amazonaws_dynamodb_ConsumedCapacity_TableName_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 Com_amazonaws_dynamodb_ConsumedCapacity_CapacityUnits_ToDafny(input *float64) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + var bits = math.Float64bits(*input) + var bytes = make([]byte, 8) + binary.LittleEndian.PutUint64(bytes, bits) + var v []interface{} + for _, e := range bytes { + v = append(v, e) + } + return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(v...)) + }() +} + +func Com_amazonaws_dynamodb_ConsumedCapacity_ReadCapacityUnits_ToDafny(input *float64) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + var bits = math.Float64bits(*input) + var bytes = make([]byte, 8) + binary.LittleEndian.PutUint64(bytes, bits) + var v []interface{} + for _, e := range bytes { + v = append(v, e) + } + return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(v...)) + }() +} + +func Com_amazonaws_dynamodb_ConsumedCapacity_WriteCapacityUnits_ToDafny(input *float64) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + var bits = math.Float64bits(*input) + var bytes = make([]byte, 8) + binary.LittleEndian.PutUint64(bytes, bits) + var v []interface{} + for _, e := range bytes { + v = append(v, e) + } + return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(v...)) + }() +} + +func Com_amazonaws_dynamodb_ConsumedCapacity_Table_ToDafny(input *types.Capacity) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(ComAmazonawsDynamodbTypes.Companion_Capacity_.Create_Capacity_(Com_amazonaws_dynamodb_Capacity_ReadCapacityUnits_ToDafny(input.ReadCapacityUnits), Com_amazonaws_dynamodb_Capacity_WriteCapacityUnits_ToDafny(input.WriteCapacityUnits), Com_amazonaws_dynamodb_Capacity_CapacityUnits_ToDafny(input.CapacityUnits))) + }() +} + +func Com_amazonaws_dynamodb_Capacity_ReadCapacityUnits_ToDafny(input *float64) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + var bits = math.Float64bits(*input) + var bytes = make([]byte, 8) + binary.LittleEndian.PutUint64(bytes, bits) + var v []interface{} + for _, e := range bytes { + v = append(v, e) + } + return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(v...)) + }() +} + +func Com_amazonaws_dynamodb_Capacity_WriteCapacityUnits_ToDafny(input *float64) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + var bits = math.Float64bits(*input) + var bytes = make([]byte, 8) + binary.LittleEndian.PutUint64(bytes, bits) + var v []interface{} + for _, e := range bytes { + v = append(v, e) + } + return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(v...)) + }() +} + +func Com_amazonaws_dynamodb_Capacity_CapacityUnits_ToDafny(input *float64) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + var bits = math.Float64bits(*input) + var bytes = make([]byte, 8) + binary.LittleEndian.PutUint64(bytes, bits) + var v []interface{} + for _, e := range bytes { + v = append(v, e) + } + return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(v...)) + }() +} + +func Com_amazonaws_dynamodb_ConsumedCapacity_LocalSecondaryIndexes_ToDafny(input map[string]types.Capacity) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + fieldValue := dafny.NewMapBuilder() + for key, val := range input { + fieldValue.Add(Com_amazonaws_dynamodb_SecondaryIndexesCapacityMap_key_ToDafny(key), Com_amazonaws_dynamodb_SecondaryIndexesCapacityMap_value_ToDafny(val)) + } + return Wrappers.Companion_Option_.Create_Some_(fieldValue.ToMap()) + }() +} + +func Com_amazonaws_dynamodb_SecondaryIndexesCapacityMap_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 Com_amazonaws_dynamodb_SecondaryIndexesCapacityMap_value_ToDafny(input types.Capacity) ComAmazonawsDynamodbTypes.Capacity { + return func() ComAmazonawsDynamodbTypes.Capacity { + + return ComAmazonawsDynamodbTypes.Companion_Capacity_.Create_Capacity_(Com_amazonaws_dynamodb_Capacity_ReadCapacityUnits_ToDafny(input.ReadCapacityUnits), Com_amazonaws_dynamodb_Capacity_WriteCapacityUnits_ToDafny(input.WriteCapacityUnits), Com_amazonaws_dynamodb_Capacity_CapacityUnits_ToDafny(input.CapacityUnits)) + }() +} + +func Com_amazonaws_dynamodb_ConsumedCapacity_GlobalSecondaryIndexes_ToDafny(input map[string]types.Capacity) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + fieldValue := dafny.NewMapBuilder() + for key, val := range input { + fieldValue.Add(Com_amazonaws_dynamodb_SecondaryIndexesCapacityMap_key_ToDafny(key), Com_amazonaws_dynamodb_SecondaryIndexesCapacityMap_value_ToDafny(val)) + } + return Wrappers.Companion_Option_.Create_Some_(fieldValue.ToMap()) + }() +} + +func Com_amazonaws_dynamodb_BatchGetItemInput_RequestItems_ToDafny(input map[string]types.KeysAndAttributes) dafny.Map { + return func() dafny.Map { + + fieldValue := dafny.NewMapBuilder() + for key, val := range input { + fieldValue.Add(Com_amazonaws_dynamodb_BatchGetRequestMap_key_ToDafny(key), Com_amazonaws_dynamodb_BatchGetRequestMap_value_ToDafny(val)) + } + return fieldValue.ToMap() + }() +} + +func Com_amazonaws_dynamodb_BatchGetRequestMap_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 Com_amazonaws_dynamodb_BatchGetRequestMap_value_ToDafny(input types.KeysAndAttributes) ComAmazonawsDynamodbTypes.KeysAndAttributes { + return func() ComAmazonawsDynamodbTypes.KeysAndAttributes { + + return ComAmazonawsDynamodbTypes.Companion_KeysAndAttributes_.Create_KeysAndAttributes_(Com_amazonaws_dynamodb_KeysAndAttributes_Keys_ToDafny(input.Keys), Com_amazonaws_dynamodb_KeysAndAttributes_AttributesToGet_ToDafny(input.AttributesToGet), Com_amazonaws_dynamodb_KeysAndAttributes_ConsistentRead_ToDafny(input.ConsistentRead), Com_amazonaws_dynamodb_KeysAndAttributes_ProjectionExpression_ToDafny(input.ProjectionExpression), Com_amazonaws_dynamodb_KeysAndAttributes_ExpressionAttributeNames_ToDafny(input.ExpressionAttributeNames)) + }() +} + +func Com_amazonaws_dynamodb_KeysAndAttributes_Keys_ToDafny(input []map[string]types.AttributeValue) dafny.Sequence { + return func() dafny.Sequence { + if input == nil { + return nil + } + var fieldValue []interface{} = make([]interface{}, 0) + for _, val := range input { + element := Com_amazonaws_dynamodb_KeyList_member_ToDafny(val) + fieldValue = append(fieldValue, element) + } + return dafny.SeqOf(fieldValue...) + }() +} + +func Com_amazonaws_dynamodb_KeyList_member_ToDafny(input map[string]types.AttributeValue) dafny.Map { + return func() dafny.Map { + + fieldValue := dafny.NewMapBuilder() + for key, val := range input { + fieldValue.Add(Com_amazonaws_dynamodb_Key_key_ToDafny(key), Com_amazonaws_dynamodb_Key_value_ToDafny(val)) + } + return fieldValue.ToMap() + }() +} + +func Com_amazonaws_dynamodb_Key_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 Com_amazonaws_dynamodb_Key_value_ToDafny(input types.AttributeValue) ComAmazonawsDynamodbTypes.AttributeValue { + return func() ComAmazonawsDynamodbTypes.AttributeValue { + switch input.(type) { + case *types.AttributeValueMemberS: + var inputToConversion = Com_amazonaws_dynamodb_AttributeValue_S_ToDafny(input.(*types.AttributeValueMemberS).Value) + return ComAmazonawsDynamodbTypes.CompanionStruct_AttributeValue_{}.Create_S_(inputToConversion.UnwrapOr(nil).(dafny.Sequence)) + case *types.AttributeValueMemberN: + var inputToConversion = Com_amazonaws_dynamodb_AttributeValue_N_ToDafny(input.(*types.AttributeValueMemberN).Value) + return ComAmazonawsDynamodbTypes.CompanionStruct_AttributeValue_{}.Create_N_(inputToConversion.UnwrapOr(nil).(dafny.Sequence)) + case *types.AttributeValueMemberB: + var inputToConversion = Com_amazonaws_dynamodb_AttributeValue_B_ToDafny(input.(*types.AttributeValueMemberB).Value) + return ComAmazonawsDynamodbTypes.CompanionStruct_AttributeValue_{}.Create_B_(inputToConversion.UnwrapOr(nil).(dafny.Sequence)) + case *types.AttributeValueMemberSS: + var inputToConversion = Com_amazonaws_dynamodb_AttributeValue_SS_ToDafny(input.(*types.AttributeValueMemberSS).Value) + return ComAmazonawsDynamodbTypes.CompanionStruct_AttributeValue_{}.Create_SS_(inputToConversion.UnwrapOr(nil).(dafny.Sequence)) + case *types.AttributeValueMemberNS: + var inputToConversion = Com_amazonaws_dynamodb_AttributeValue_NS_ToDafny(input.(*types.AttributeValueMemberNS).Value) + return ComAmazonawsDynamodbTypes.CompanionStruct_AttributeValue_{}.Create_NS_(inputToConversion.UnwrapOr(nil).(dafny.Sequence)) + case *types.AttributeValueMemberBS: + var inputToConversion = Com_amazonaws_dynamodb_AttributeValue_BS_ToDafny(input.(*types.AttributeValueMemberBS).Value) + return ComAmazonawsDynamodbTypes.CompanionStruct_AttributeValue_{}.Create_BS_(inputToConversion.UnwrapOr(nil).(dafny.Sequence)) + case *types.AttributeValueMemberM: + var inputToConversion = Com_amazonaws_dynamodb_AttributeValue_M_ToDafny(input.(*types.AttributeValueMemberM).Value) + return ComAmazonawsDynamodbTypes.CompanionStruct_AttributeValue_{}.Create_M_(inputToConversion.UnwrapOr(nil).(dafny.Map)) + case *types.AttributeValueMemberL: + var inputToConversion = Com_amazonaws_dynamodb_AttributeValue_L_ToDafny(input.(*types.AttributeValueMemberL).Value) + return ComAmazonawsDynamodbTypes.CompanionStruct_AttributeValue_{}.Create_L_(inputToConversion.UnwrapOr(nil).(dafny.Sequence)) + case *types.AttributeValueMemberNULL: + var inputToConversion = Com_amazonaws_dynamodb_AttributeValue_NULL_ToDafny(input.(*types.AttributeValueMemberNULL).Value) + return ComAmazonawsDynamodbTypes.CompanionStruct_AttributeValue_{}.Create_NULL_(inputToConversion.UnwrapOr(nil).(bool)) + case *types.AttributeValueMemberBOOL: + var inputToConversion = Com_amazonaws_dynamodb_AttributeValue_BOOL_ToDafny(input.(*types.AttributeValueMemberBOOL).Value) + return ComAmazonawsDynamodbTypes.CompanionStruct_AttributeValue_{}.Create_BOOL_(inputToConversion.UnwrapOr(nil).(bool)) + + default: + panic("Unhandled union type") + } + }() +} + +func Com_amazonaws_dynamodb_KeysAndAttributes_AttributesToGet_ToDafny(input []string) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + var fieldValue []interface{} = make([]interface{}, 0) + for _, val := range input { + element := Com_amazonaws_dynamodb_AttributeNameList_member_ToDafny(val) + fieldValue = append(fieldValue, element) + } + return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(fieldValue...)) + }() +} + +func Com_amazonaws_dynamodb_AttributeNameList_member_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 Com_amazonaws_dynamodb_KeysAndAttributes_ConsistentRead_ToDafny(input *bool) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(*input) + }() +} + +func Com_amazonaws_dynamodb_KeysAndAttributes_ProjectionExpression_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 Com_amazonaws_dynamodb_KeysAndAttributes_ExpressionAttributeNames_ToDafny(input map[string]string) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + fieldValue := dafny.NewMapBuilder() + for key, val := range input { + fieldValue.Add(Com_amazonaws_dynamodb_ExpressionAttributeNameMap_key_ToDafny(key), Com_amazonaws_dynamodb_ExpressionAttributeNameMap_value_ToDafny(val)) + } + return Wrappers.Companion_Option_.Create_Some_(fieldValue.ToMap()) + }() +} + +func Com_amazonaws_dynamodb_ExpressionAttributeNameMap_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 Com_amazonaws_dynamodb_ExpressionAttributeNameMap_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 Com_amazonaws_dynamodb_BatchGetItemInput_ReturnConsumedCapacity_ToDafny(input types.ReturnConsumedCapacity) Wrappers.Option { + return func() Wrappers.Option { + var index int + for _, enumVal := range input.Values() { + index++ + if enumVal == input { + break + } + if index == len(input.Values()) { + return Wrappers.Companion_Option_.Create_None_() + } + + } + var enum interface{} + for allEnums, i := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_ReturnConsumedCapacity_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return Wrappers.Companion_Option_.Create_Some_(enum.(ComAmazonawsDynamodbTypes.ReturnConsumedCapacity)) + }() +} + +func Com_amazonaws_dynamodb_BatchGetItemOutput_Responses_ToDafny(input map[string][]map[string]types.AttributeValue) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + fieldValue := dafny.NewMapBuilder() + for key, val := range input { + fieldValue.Add(Com_amazonaws_dynamodb_BatchGetResponseMap_key_ToDafny(key), Com_amazonaws_dynamodb_BatchGetResponseMap_value_ToDafny(val)) + } + return Wrappers.Companion_Option_.Create_Some_(fieldValue.ToMap()) + }() +} + +func Com_amazonaws_dynamodb_BatchGetResponseMap_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 Com_amazonaws_dynamodb_BatchGetResponseMap_value_ToDafny(input []map[string]types.AttributeValue) dafny.Sequence { + return func() dafny.Sequence { + if input == nil { + return nil + } + var fieldValue []interface{} = make([]interface{}, 0) + for _, val := range input { + element := Com_amazonaws_dynamodb_ItemList_member_ToDafny(val) + fieldValue = append(fieldValue, element) + } + return dafny.SeqOf(fieldValue...) + }() +} + +func Com_amazonaws_dynamodb_ItemList_member_ToDafny(input map[string]types.AttributeValue) dafny.Map { + return func() dafny.Map { + + fieldValue := dafny.NewMapBuilder() + for key, val := range input { + fieldValue.Add(Com_amazonaws_dynamodb_AttributeMap_key_ToDafny(key), Com_amazonaws_dynamodb_AttributeMap_value_ToDafny(val)) + } + return fieldValue.ToMap() + }() +} + +func Com_amazonaws_dynamodb_BatchGetItemOutput_UnprocessedKeys_ToDafny(input map[string]types.KeysAndAttributes) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + fieldValue := dafny.NewMapBuilder() + for key, val := range input { + fieldValue.Add(Com_amazonaws_dynamodb_BatchGetRequestMap_key_ToDafny(key), Com_amazonaws_dynamodb_BatchGetRequestMap_value_ToDafny(val)) + } + return Wrappers.Companion_Option_.Create_Some_(fieldValue.ToMap()) + }() +} + +func Com_amazonaws_dynamodb_BatchGetItemOutput_ConsumedCapacity_ToDafny(input []types.ConsumedCapacity) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + var fieldValue []interface{} = make([]interface{}, 0) + for _, val := range input { + element := Com_amazonaws_dynamodb_ConsumedCapacityMultiple_member_ToDafny(val) + fieldValue = append(fieldValue, element) + } + return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(fieldValue...)) + }() +} + +func Com_amazonaws_dynamodb_BatchWriteItemInput_RequestItems_ToDafny(input map[string][]types.WriteRequest) dafny.Map { + return func() dafny.Map { + + fieldValue := dafny.NewMapBuilder() + for key, val := range input { + fieldValue.Add(Com_amazonaws_dynamodb_BatchWriteItemRequestMap_key_ToDafny(key), Com_amazonaws_dynamodb_BatchWriteItemRequestMap_value_ToDafny(val)) + } + return fieldValue.ToMap() + }() +} + +func Com_amazonaws_dynamodb_BatchWriteItemRequestMap_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 Com_amazonaws_dynamodb_BatchWriteItemRequestMap_value_ToDafny(input []types.WriteRequest) dafny.Sequence { + return func() dafny.Sequence { + if input == nil { + return nil + } + var fieldValue []interface{} = make([]interface{}, 0) + for _, val := range input { + element := Com_amazonaws_dynamodb_WriteRequests_member_ToDafny(val) + fieldValue = append(fieldValue, element) + } + return dafny.SeqOf(fieldValue...) + }() +} + +func Com_amazonaws_dynamodb_WriteRequests_member_ToDafny(input types.WriteRequest) ComAmazonawsDynamodbTypes.WriteRequest { + return func() ComAmazonawsDynamodbTypes.WriteRequest { + + return ComAmazonawsDynamodbTypes.Companion_WriteRequest_.Create_WriteRequest_(Com_amazonaws_dynamodb_WriteRequest_PutRequest_ToDafny(input.PutRequest), Com_amazonaws_dynamodb_WriteRequest_DeleteRequest_ToDafny(input.DeleteRequest)) + }() +} + +func Com_amazonaws_dynamodb_WriteRequest_PutRequest_ToDafny(input *types.PutRequest) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(ComAmazonawsDynamodbTypes.Companion_PutRequest_.Create_PutRequest_(Com_amazonaws_dynamodb_PutRequest_Item_ToDafny(input.Item))) + }() +} + +func Com_amazonaws_dynamodb_PutRequest_Item_ToDafny(input map[string]types.AttributeValue) dafny.Map { + return func() dafny.Map { + + fieldValue := dafny.NewMapBuilder() + for key, val := range input { + fieldValue.Add(Com_amazonaws_dynamodb_PutItemInputAttributeMap_key_ToDafny(key), Com_amazonaws_dynamodb_PutItemInputAttributeMap_value_ToDafny(val)) + } + return fieldValue.ToMap() + }() +} + +func Com_amazonaws_dynamodb_PutItemInputAttributeMap_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 Com_amazonaws_dynamodb_PutItemInputAttributeMap_value_ToDafny(input types.AttributeValue) ComAmazonawsDynamodbTypes.AttributeValue { + return func() ComAmazonawsDynamodbTypes.AttributeValue { + switch input.(type) { + case *types.AttributeValueMemberS: + var inputToConversion = Com_amazonaws_dynamodb_AttributeValue_S_ToDafny(input.(*types.AttributeValueMemberS).Value) + return ComAmazonawsDynamodbTypes.CompanionStruct_AttributeValue_{}.Create_S_(inputToConversion.UnwrapOr(nil).(dafny.Sequence)) + case *types.AttributeValueMemberN: + var inputToConversion = Com_amazonaws_dynamodb_AttributeValue_N_ToDafny(input.(*types.AttributeValueMemberN).Value) + return ComAmazonawsDynamodbTypes.CompanionStruct_AttributeValue_{}.Create_N_(inputToConversion.UnwrapOr(nil).(dafny.Sequence)) + case *types.AttributeValueMemberB: + var inputToConversion = Com_amazonaws_dynamodb_AttributeValue_B_ToDafny(input.(*types.AttributeValueMemberB).Value) + return ComAmazonawsDynamodbTypes.CompanionStruct_AttributeValue_{}.Create_B_(inputToConversion.UnwrapOr(nil).(dafny.Sequence)) + case *types.AttributeValueMemberSS: + var inputToConversion = Com_amazonaws_dynamodb_AttributeValue_SS_ToDafny(input.(*types.AttributeValueMemberSS).Value) + return ComAmazonawsDynamodbTypes.CompanionStruct_AttributeValue_{}.Create_SS_(inputToConversion.UnwrapOr(nil).(dafny.Sequence)) + case *types.AttributeValueMemberNS: + var inputToConversion = Com_amazonaws_dynamodb_AttributeValue_NS_ToDafny(input.(*types.AttributeValueMemberNS).Value) + return ComAmazonawsDynamodbTypes.CompanionStruct_AttributeValue_{}.Create_NS_(inputToConversion.UnwrapOr(nil).(dafny.Sequence)) + case *types.AttributeValueMemberBS: + var inputToConversion = Com_amazonaws_dynamodb_AttributeValue_BS_ToDafny(input.(*types.AttributeValueMemberBS).Value) + return ComAmazonawsDynamodbTypes.CompanionStruct_AttributeValue_{}.Create_BS_(inputToConversion.UnwrapOr(nil).(dafny.Sequence)) + case *types.AttributeValueMemberM: + var inputToConversion = Com_amazonaws_dynamodb_AttributeValue_M_ToDafny(input.(*types.AttributeValueMemberM).Value) + return ComAmazonawsDynamodbTypes.CompanionStruct_AttributeValue_{}.Create_M_(inputToConversion.UnwrapOr(nil).(dafny.Map)) + case *types.AttributeValueMemberL: + var inputToConversion = Com_amazonaws_dynamodb_AttributeValue_L_ToDafny(input.(*types.AttributeValueMemberL).Value) + return ComAmazonawsDynamodbTypes.CompanionStruct_AttributeValue_{}.Create_L_(inputToConversion.UnwrapOr(nil).(dafny.Sequence)) + case *types.AttributeValueMemberNULL: + var inputToConversion = Com_amazonaws_dynamodb_AttributeValue_NULL_ToDafny(input.(*types.AttributeValueMemberNULL).Value) + return ComAmazonawsDynamodbTypes.CompanionStruct_AttributeValue_{}.Create_NULL_(inputToConversion.UnwrapOr(nil).(bool)) + case *types.AttributeValueMemberBOOL: + var inputToConversion = Com_amazonaws_dynamodb_AttributeValue_BOOL_ToDafny(input.(*types.AttributeValueMemberBOOL).Value) + return ComAmazonawsDynamodbTypes.CompanionStruct_AttributeValue_{}.Create_BOOL_(inputToConversion.UnwrapOr(nil).(bool)) + + default: + panic("Unhandled union type") + } + }() +} + +func Com_amazonaws_dynamodb_WriteRequest_DeleteRequest_ToDafny(input *types.DeleteRequest) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(ComAmazonawsDynamodbTypes.Companion_DeleteRequest_.Create_DeleteRequest_(Com_amazonaws_dynamodb_DeleteRequest_Key_ToDafny(input.Key))) + }() +} + +func Com_amazonaws_dynamodb_DeleteRequest_Key_ToDafny(input map[string]types.AttributeValue) dafny.Map { + return func() dafny.Map { + + fieldValue := dafny.NewMapBuilder() + for key, val := range input { + fieldValue.Add(Com_amazonaws_dynamodb_Key_key_ToDafny(key), Com_amazonaws_dynamodb_Key_value_ToDafny(val)) + } + return fieldValue.ToMap() + }() +} + +func Com_amazonaws_dynamodb_BatchWriteItemInput_ReturnConsumedCapacity_ToDafny(input types.ReturnConsumedCapacity) Wrappers.Option { + return func() Wrappers.Option { + var index int + for _, enumVal := range input.Values() { + index++ + if enumVal == input { + break + } + if index == len(input.Values()) { + return Wrappers.Companion_Option_.Create_None_() + } + + } + var enum interface{} + for allEnums, i := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_ReturnConsumedCapacity_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return Wrappers.Companion_Option_.Create_Some_(enum.(ComAmazonawsDynamodbTypes.ReturnConsumedCapacity)) + }() +} + +func Com_amazonaws_dynamodb_BatchWriteItemInput_ReturnItemCollectionMetrics_ToDafny(input types.ReturnItemCollectionMetrics) Wrappers.Option { + return func() Wrappers.Option { + var index int + for _, enumVal := range input.Values() { + index++ + if enumVal == input { + break + } + if index == len(input.Values()) { + return Wrappers.Companion_Option_.Create_None_() + } + + } + var enum interface{} + for allEnums, i := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_ReturnItemCollectionMetrics_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return Wrappers.Companion_Option_.Create_Some_(enum.(ComAmazonawsDynamodbTypes.ReturnItemCollectionMetrics)) + }() +} + +func Com_amazonaws_dynamodb_BatchWriteItemOutput_UnprocessedItems_ToDafny(input map[string][]types.WriteRequest) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + fieldValue := dafny.NewMapBuilder() + for key, val := range input { + fieldValue.Add(Com_amazonaws_dynamodb_BatchWriteItemRequestMap_key_ToDafny(key), Com_amazonaws_dynamodb_BatchWriteItemRequestMap_value_ToDafny(val)) + } + return Wrappers.Companion_Option_.Create_Some_(fieldValue.ToMap()) + }() +} + +func Com_amazonaws_dynamodb_BatchWriteItemOutput_ItemCollectionMetrics_ToDafny(input map[string][]types.ItemCollectionMetrics) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + fieldValue := dafny.NewMapBuilder() + for key, val := range input { + fieldValue.Add(Com_amazonaws_dynamodb_ItemCollectionMetricsPerTable_key_ToDafny(key), Com_amazonaws_dynamodb_ItemCollectionMetricsPerTable_value_ToDafny(val)) + } + return Wrappers.Companion_Option_.Create_Some_(fieldValue.ToMap()) + }() +} + +func Com_amazonaws_dynamodb_ItemCollectionMetricsPerTable_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 Com_amazonaws_dynamodb_ItemCollectionMetricsPerTable_value_ToDafny(input []types.ItemCollectionMetrics) dafny.Sequence { + return func() dafny.Sequence { + if input == nil { + return nil + } + var fieldValue []interface{} = make([]interface{}, 0) + for _, val := range input { + element := Com_amazonaws_dynamodb_ItemCollectionMetricsMultiple_member_ToDafny(val) + fieldValue = append(fieldValue, element) + } + return dafny.SeqOf(fieldValue...) + }() +} + +func Com_amazonaws_dynamodb_ItemCollectionMetricsMultiple_member_ToDafny(input types.ItemCollectionMetrics) ComAmazonawsDynamodbTypes.ItemCollectionMetrics { + return func() ComAmazonawsDynamodbTypes.ItemCollectionMetrics { + + return ComAmazonawsDynamodbTypes.Companion_ItemCollectionMetrics_.Create_ItemCollectionMetrics_(Com_amazonaws_dynamodb_ItemCollectionMetrics_ItemCollectionKey_ToDafny(input.ItemCollectionKey), Com_amazonaws_dynamodb_ItemCollectionMetrics_SizeEstimateRangeGB_ToDafny(input.SizeEstimateRangeGB)) + }() +} + +func Com_amazonaws_dynamodb_ItemCollectionMetrics_ItemCollectionKey_ToDafny(input map[string]types.AttributeValue) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + fieldValue := dafny.NewMapBuilder() + for key, val := range input { + fieldValue.Add(Com_amazonaws_dynamodb_ItemCollectionKeyAttributeMap_key_ToDafny(key), Com_amazonaws_dynamodb_ItemCollectionKeyAttributeMap_value_ToDafny(val)) + } + return Wrappers.Companion_Option_.Create_Some_(fieldValue.ToMap()) + }() +} + +func Com_amazonaws_dynamodb_ItemCollectionKeyAttributeMap_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 Com_amazonaws_dynamodb_ItemCollectionKeyAttributeMap_value_ToDafny(input types.AttributeValue) ComAmazonawsDynamodbTypes.AttributeValue { + return func() ComAmazonawsDynamodbTypes.AttributeValue { + switch input.(type) { + case *types.AttributeValueMemberS: + var inputToConversion = Com_amazonaws_dynamodb_AttributeValue_S_ToDafny(input.(*types.AttributeValueMemberS).Value) + return ComAmazonawsDynamodbTypes.CompanionStruct_AttributeValue_{}.Create_S_(inputToConversion.UnwrapOr(nil).(dafny.Sequence)) + case *types.AttributeValueMemberN: + var inputToConversion = Com_amazonaws_dynamodb_AttributeValue_N_ToDafny(input.(*types.AttributeValueMemberN).Value) + return ComAmazonawsDynamodbTypes.CompanionStruct_AttributeValue_{}.Create_N_(inputToConversion.UnwrapOr(nil).(dafny.Sequence)) + case *types.AttributeValueMemberB: + var inputToConversion = Com_amazonaws_dynamodb_AttributeValue_B_ToDafny(input.(*types.AttributeValueMemberB).Value) + return ComAmazonawsDynamodbTypes.CompanionStruct_AttributeValue_{}.Create_B_(inputToConversion.UnwrapOr(nil).(dafny.Sequence)) + case *types.AttributeValueMemberSS: + var inputToConversion = Com_amazonaws_dynamodb_AttributeValue_SS_ToDafny(input.(*types.AttributeValueMemberSS).Value) + return ComAmazonawsDynamodbTypes.CompanionStruct_AttributeValue_{}.Create_SS_(inputToConversion.UnwrapOr(nil).(dafny.Sequence)) + case *types.AttributeValueMemberNS: + var inputToConversion = Com_amazonaws_dynamodb_AttributeValue_NS_ToDafny(input.(*types.AttributeValueMemberNS).Value) + return ComAmazonawsDynamodbTypes.CompanionStruct_AttributeValue_{}.Create_NS_(inputToConversion.UnwrapOr(nil).(dafny.Sequence)) + case *types.AttributeValueMemberBS: + var inputToConversion = Com_amazonaws_dynamodb_AttributeValue_BS_ToDafny(input.(*types.AttributeValueMemberBS).Value) + return ComAmazonawsDynamodbTypes.CompanionStruct_AttributeValue_{}.Create_BS_(inputToConversion.UnwrapOr(nil).(dafny.Sequence)) + case *types.AttributeValueMemberM: + var inputToConversion = Com_amazonaws_dynamodb_AttributeValue_M_ToDafny(input.(*types.AttributeValueMemberM).Value) + return ComAmazonawsDynamodbTypes.CompanionStruct_AttributeValue_{}.Create_M_(inputToConversion.UnwrapOr(nil).(dafny.Map)) + case *types.AttributeValueMemberL: + var inputToConversion = Com_amazonaws_dynamodb_AttributeValue_L_ToDafny(input.(*types.AttributeValueMemberL).Value) + return ComAmazonawsDynamodbTypes.CompanionStruct_AttributeValue_{}.Create_L_(inputToConversion.UnwrapOr(nil).(dafny.Sequence)) + case *types.AttributeValueMemberNULL: + var inputToConversion = Com_amazonaws_dynamodb_AttributeValue_NULL_ToDafny(input.(*types.AttributeValueMemberNULL).Value) + return ComAmazonawsDynamodbTypes.CompanionStruct_AttributeValue_{}.Create_NULL_(inputToConversion.UnwrapOr(nil).(bool)) + case *types.AttributeValueMemberBOOL: + var inputToConversion = Com_amazonaws_dynamodb_AttributeValue_BOOL_ToDafny(input.(*types.AttributeValueMemberBOOL).Value) + return ComAmazonawsDynamodbTypes.CompanionStruct_AttributeValue_{}.Create_BOOL_(inputToConversion.UnwrapOr(nil).(bool)) + + default: + panic("Unhandled union type") + } + }() +} + +func Com_amazonaws_dynamodb_ItemCollectionMetrics_SizeEstimateRangeGB_ToDafny(input []float64) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + var fieldValue []interface{} = make([]interface{}, 0) + for _, val := range input { + element := Com_amazonaws_dynamodb_ItemCollectionSizeEstimateRange_member_ToDafny(val) + fieldValue = append(fieldValue, element) + } + return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(fieldValue...)) + }() +} + +func Com_amazonaws_dynamodb_ItemCollectionSizeEstimateRange_member_ToDafny(input float64) dafny.Sequence { + return func() dafny.Sequence { + + var bits = math.Float64bits(input) + var bytes = make([]byte, 8) + binary.LittleEndian.PutUint64(bytes, bits) + var v []interface{} + for _, e := range bytes { + v = append(v, e) + } + return dafny.SeqOf(v...) + }() +} + +func Com_amazonaws_dynamodb_BatchWriteItemOutput_ConsumedCapacity_ToDafny(input []types.ConsumedCapacity) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + var fieldValue []interface{} = make([]interface{}, 0) + for _, val := range input { + element := Com_amazonaws_dynamodb_ConsumedCapacityMultiple_member_ToDafny(val) + fieldValue = append(fieldValue, element) + } + return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(fieldValue...)) + }() +} + +func Com_amazonaws_dynamodb_CreateBackupInput_TableName_ToDafny(input *string) dafny.Sequence { + return func() dafny.Sequence { + if input == nil { + return nil + } + return func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(*input)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }() + }() +} + +func Com_amazonaws_dynamodb_CreateBackupInput_BackupName_ToDafny(input *string) dafny.Sequence { + return func() dafny.Sequence { + if input == nil { + return nil + } + return func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(*input)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }() + }() +} + +func Com_amazonaws_dynamodb_CreateBackupOutput_BackupDetails_ToDafny(input *types.BackupDetails) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(ComAmazonawsDynamodbTypes.Companion_BackupDetails_.Create_BackupDetails_(Com_amazonaws_dynamodb_BackupDetails_BackupArn_ToDafny(input.BackupArn), Com_amazonaws_dynamodb_BackupDetails_BackupName_ToDafny(input.BackupName), Com_amazonaws_dynamodb_BackupDetails_BackupSizeBytes_ToDafny(input.BackupSizeBytes), Com_amazonaws_dynamodb_BackupDetails_BackupStatus_ToDafny(input.BackupStatus), Com_amazonaws_dynamodb_BackupDetails_BackupType_ToDafny(input.BackupType), Com_amazonaws_dynamodb_BackupDetails_BackupCreationDateTime_ToDafny(input.BackupCreationDateTime), Com_amazonaws_dynamodb_BackupDetails_BackupExpiryDateTime_ToDafny(input.BackupExpiryDateTime))) + }() +} + +func Com_amazonaws_dynamodb_BackupDetails_BackupArn_ToDafny(input *string) dafny.Sequence { + return func() dafny.Sequence { + if input == nil { + return nil + } + return func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(*input)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }() + }() +} + +func Com_amazonaws_dynamodb_BackupDetails_BackupName_ToDafny(input *string) dafny.Sequence { + return func() dafny.Sequence { + if input == nil { + return nil + } + return func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(*input)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }() + }() +} + +func Com_amazonaws_dynamodb_BackupDetails_BackupSizeBytes_ToDafny(input *int64) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(*input) + }() +} + +func Com_amazonaws_dynamodb_BackupDetails_BackupStatus_ToDafny(input types.BackupStatus) ComAmazonawsDynamodbTypes.BackupStatus { + return func() ComAmazonawsDynamodbTypes.BackupStatus { + 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(ComAmazonawsDynamodbTypes.CompanionStruct_BackupStatus_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return enum.(ComAmazonawsDynamodbTypes.BackupStatus) + }() +} + +func Com_amazonaws_dynamodb_BackupDetails_BackupType_ToDafny(input types.BackupType) ComAmazonawsDynamodbTypes.BackupType { + return func() ComAmazonawsDynamodbTypes.BackupType { + 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(ComAmazonawsDynamodbTypes.CompanionStruct_BackupType_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return enum.(ComAmazonawsDynamodbTypes.BackupType) + }() +} + +func Com_amazonaws_dynamodb_BackupDetails_BackupCreationDateTime_ToDafny(input *time.Time) dafny.Sequence { + return func() dafny.Sequence { + if input == nil { + return dafny.SeqOf() + } + formattedTime := input.Format("2006-01-02T15:04:05.999999Z") + return func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(formattedTime)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }() + }() +} + +func Com_amazonaws_dynamodb_BackupDetails_BackupExpiryDateTime_ToDafny(input *time.Time) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + formattedTime := input.Format("2006-01-02T15:04:05.999999Z") + return Wrappers.Companion_Option_.Create_Some_(func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(formattedTime)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }()) + }() +} + +func Com_amazonaws_dynamodb_CreateGlobalTableInput_GlobalTableName_ToDafny(input *string) dafny.Sequence { + return func() dafny.Sequence { + if input == nil { + return nil + } + return func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(*input)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }() + }() +} + +func Com_amazonaws_dynamodb_CreateGlobalTableInput_ReplicationGroup_ToDafny(input []types.Replica) dafny.Sequence { + return func() dafny.Sequence { + if input == nil { + return nil + } + var fieldValue []interface{} = make([]interface{}, 0) + for _, val := range input { + element := Com_amazonaws_dynamodb_ReplicaList_member_ToDafny(val) + fieldValue = append(fieldValue, element) + } + return dafny.SeqOf(fieldValue...) + }() +} + +func Com_amazonaws_dynamodb_ReplicaList_member_ToDafny(input types.Replica) ComAmazonawsDynamodbTypes.Replica { + return func() ComAmazonawsDynamodbTypes.Replica { + + return ComAmazonawsDynamodbTypes.Companion_Replica_.Create_Replica_(Com_amazonaws_dynamodb_Replica_RegionName_ToDafny(input.RegionName)) + }() +} + +func Com_amazonaws_dynamodb_Replica_RegionName_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 Com_amazonaws_dynamodb_CreateGlobalTableOutput_GlobalTableDescription_ToDafny(input *types.GlobalTableDescription) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(ComAmazonawsDynamodbTypes.Companion_GlobalTableDescription_.Create_GlobalTableDescription_(Com_amazonaws_dynamodb_GlobalTableDescription_ReplicationGroup_ToDafny(input.ReplicationGroup), Com_amazonaws_dynamodb_GlobalTableDescription_GlobalTableArn_ToDafny(input.GlobalTableArn), Com_amazonaws_dynamodb_GlobalTableDescription_CreationDateTime_ToDafny(input.CreationDateTime), Com_amazonaws_dynamodb_GlobalTableDescription_GlobalTableStatus_ToDafny(input.GlobalTableStatus), Com_amazonaws_dynamodb_GlobalTableDescription_GlobalTableName_ToDafny(input.GlobalTableName))) + }() +} + +func Com_amazonaws_dynamodb_GlobalTableDescription_ReplicationGroup_ToDafny(input []types.ReplicaDescription) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + var fieldValue []interface{} = make([]interface{}, 0) + for _, val := range input { + element := Com_amazonaws_dynamodb_ReplicaDescriptionList_member_ToDafny(val) + fieldValue = append(fieldValue, element) + } + return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(fieldValue...)) + }() +} + +func Com_amazonaws_dynamodb_ReplicaDescriptionList_member_ToDafny(input types.ReplicaDescription) ComAmazonawsDynamodbTypes.ReplicaDescription { + return func() ComAmazonawsDynamodbTypes.ReplicaDescription { + + return ComAmazonawsDynamodbTypes.Companion_ReplicaDescription_.Create_ReplicaDescription_(Com_amazonaws_dynamodb_ReplicaDescription_RegionName_ToDafny(input.RegionName), Com_amazonaws_dynamodb_ReplicaDescription_ReplicaStatus_ToDafny(input.ReplicaStatus), Com_amazonaws_dynamodb_ReplicaDescription_ReplicaStatusDescription_ToDafny(input.ReplicaStatusDescription), Com_amazonaws_dynamodb_ReplicaDescription_ReplicaStatusPercentProgress_ToDafny(input.ReplicaStatusPercentProgress), Com_amazonaws_dynamodb_ReplicaDescription_KMSMasterKeyId_ToDafny(input.KMSMasterKeyId), Com_amazonaws_dynamodb_ReplicaDescription_ProvisionedThroughputOverride_ToDafny(input.ProvisionedThroughputOverride), Com_amazonaws_dynamodb_ReplicaDescription_OnDemandThroughputOverride_ToDafny(input.OnDemandThroughputOverride), Com_amazonaws_dynamodb_ReplicaDescription_GlobalSecondaryIndexes_ToDafny(input.GlobalSecondaryIndexes), Com_amazonaws_dynamodb_ReplicaDescription_ReplicaInaccessibleDateTime_ToDafny(input.ReplicaInaccessibleDateTime), Com_amazonaws_dynamodb_ReplicaDescription_ReplicaTableClassSummary_ToDafny(input.ReplicaTableClassSummary)) + }() +} + +func Com_amazonaws_dynamodb_ReplicaDescription_RegionName_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 Com_amazonaws_dynamodb_ReplicaDescription_ReplicaStatus_ToDafny(input types.ReplicaStatus) Wrappers.Option { + return func() Wrappers.Option { + var index int + for _, enumVal := range input.Values() { + index++ + if enumVal == input { + break + } + if index == len(input.Values()) { + return Wrappers.Companion_Option_.Create_None_() + } + + } + var enum interface{} + for allEnums, i := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_ReplicaStatus_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return Wrappers.Companion_Option_.Create_Some_(enum.(ComAmazonawsDynamodbTypes.ReplicaStatus)) + }() +} + +func Com_amazonaws_dynamodb_ReplicaDescription_ReplicaStatusDescription_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 Com_amazonaws_dynamodb_ReplicaDescription_ReplicaStatusPercentProgress_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 Com_amazonaws_dynamodb_ReplicaDescription_KMSMasterKeyId_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 Com_amazonaws_dynamodb_ReplicaDescription_ProvisionedThroughputOverride_ToDafny(input *types.ProvisionedThroughputOverride) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(ComAmazonawsDynamodbTypes.Companion_ProvisionedThroughputOverride_.Create_ProvisionedThroughputOverride_(Com_amazonaws_dynamodb_ProvisionedThroughputOverride_ReadCapacityUnits_ToDafny(input.ReadCapacityUnits))) + }() +} + +func Com_amazonaws_dynamodb_ProvisionedThroughputOverride_ReadCapacityUnits_ToDafny(input *int64) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(*input) + }() +} + +func Com_amazonaws_dynamodb_ReplicaDescription_OnDemandThroughputOverride_ToDafny(input *types.OnDemandThroughputOverride) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(ComAmazonawsDynamodbTypes.Companion_OnDemandThroughputOverride_.Create_OnDemandThroughputOverride_(Com_amazonaws_dynamodb_OnDemandThroughputOverride_MaxReadRequestUnits_ToDafny(input.MaxReadRequestUnits))) + }() +} + +func Com_amazonaws_dynamodb_OnDemandThroughputOverride_MaxReadRequestUnits_ToDafny(input *int64) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(*input) + }() +} + +func Com_amazonaws_dynamodb_ReplicaDescription_GlobalSecondaryIndexes_ToDafny(input []types.ReplicaGlobalSecondaryIndexDescription) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + var fieldValue []interface{} = make([]interface{}, 0) + for _, val := range input { + element := Com_amazonaws_dynamodb_ReplicaGlobalSecondaryIndexDescriptionList_member_ToDafny(val) + fieldValue = append(fieldValue, element) + } + return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(fieldValue...)) + }() +} + +func Com_amazonaws_dynamodb_ReplicaGlobalSecondaryIndexDescriptionList_member_ToDafny(input types.ReplicaGlobalSecondaryIndexDescription) ComAmazonawsDynamodbTypes.ReplicaGlobalSecondaryIndexDescription { + return func() ComAmazonawsDynamodbTypes.ReplicaGlobalSecondaryIndexDescription { + + return ComAmazonawsDynamodbTypes.Companion_ReplicaGlobalSecondaryIndexDescription_.Create_ReplicaGlobalSecondaryIndexDescription_(Com_amazonaws_dynamodb_ReplicaGlobalSecondaryIndexDescription_IndexName_ToDafny(input.IndexName), Com_amazonaws_dynamodb_ReplicaGlobalSecondaryIndexDescription_ProvisionedThroughputOverride_ToDafny(input.ProvisionedThroughputOverride), Com_amazonaws_dynamodb_ReplicaGlobalSecondaryIndexDescription_OnDemandThroughputOverride_ToDafny(input.OnDemandThroughputOverride)) + }() +} + +func Com_amazonaws_dynamodb_ReplicaGlobalSecondaryIndexDescription_IndexName_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 Com_amazonaws_dynamodb_ReplicaGlobalSecondaryIndexDescription_ProvisionedThroughputOverride_ToDafny(input *types.ProvisionedThroughputOverride) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(ComAmazonawsDynamodbTypes.Companion_ProvisionedThroughputOverride_.Create_ProvisionedThroughputOverride_(Com_amazonaws_dynamodb_ProvisionedThroughputOverride_ReadCapacityUnits_ToDafny(input.ReadCapacityUnits))) + }() +} + +func Com_amazonaws_dynamodb_ReplicaGlobalSecondaryIndexDescription_OnDemandThroughputOverride_ToDafny(input *types.OnDemandThroughputOverride) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(ComAmazonawsDynamodbTypes.Companion_OnDemandThroughputOverride_.Create_OnDemandThroughputOverride_(Com_amazonaws_dynamodb_OnDemandThroughputOverride_MaxReadRequestUnits_ToDafny(input.MaxReadRequestUnits))) + }() +} + +func Com_amazonaws_dynamodb_ReplicaDescription_ReplicaInaccessibleDateTime_ToDafny(input *time.Time) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + formattedTime := input.Format("2006-01-02T15:04:05.999999Z") + return Wrappers.Companion_Option_.Create_Some_(func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(formattedTime)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }()) + }() +} + +func Com_amazonaws_dynamodb_ReplicaDescription_ReplicaTableClassSummary_ToDafny(input *types.TableClassSummary) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(ComAmazonawsDynamodbTypes.Companion_TableClassSummary_.Create_TableClassSummary_(Com_amazonaws_dynamodb_TableClassSummary_TableClass_ToDafny(input.TableClass), Com_amazonaws_dynamodb_TableClassSummary_LastUpdateDateTime_ToDafny(input.LastUpdateDateTime))) + }() +} + +func Com_amazonaws_dynamodb_TableClassSummary_TableClass_ToDafny(input types.TableClass) Wrappers.Option { + return func() Wrappers.Option { + var index int + for _, enumVal := range input.Values() { + index++ + if enumVal == input { + break + } + if index == len(input.Values()) { + return Wrappers.Companion_Option_.Create_None_() + } + + } + var enum interface{} + for allEnums, i := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_TableClass_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return Wrappers.Companion_Option_.Create_Some_(enum.(ComAmazonawsDynamodbTypes.TableClass)) + }() +} + +func Com_amazonaws_dynamodb_TableClassSummary_LastUpdateDateTime_ToDafny(input *time.Time) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + formattedTime := input.Format("2006-01-02T15:04:05.999999Z") + return Wrappers.Companion_Option_.Create_Some_(func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(formattedTime)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }()) + }() +} + +func Com_amazonaws_dynamodb_GlobalTableDescription_GlobalTableArn_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 Com_amazonaws_dynamodb_GlobalTableDescription_CreationDateTime_ToDafny(input *time.Time) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + formattedTime := input.Format("2006-01-02T15:04:05.999999Z") + return Wrappers.Companion_Option_.Create_Some_(func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(formattedTime)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }()) + }() +} + +func Com_amazonaws_dynamodb_GlobalTableDescription_GlobalTableStatus_ToDafny(input types.GlobalTableStatus) Wrappers.Option { + return func() Wrappers.Option { + var index int + for _, enumVal := range input.Values() { + index++ + if enumVal == input { + break + } + if index == len(input.Values()) { + return Wrappers.Companion_Option_.Create_None_() + } + + } + var enum interface{} + for allEnums, i := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_GlobalTableStatus_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return Wrappers.Companion_Option_.Create_Some_(enum.(ComAmazonawsDynamodbTypes.GlobalTableStatus)) + }() +} + +func Com_amazonaws_dynamodb_GlobalTableDescription_GlobalTableName_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 Com_amazonaws_dynamodb_CreateTableInput_AttributeDefinitions_ToDafny(input []types.AttributeDefinition) dafny.Sequence { + return func() dafny.Sequence { + if input == nil { + return nil + } + var fieldValue []interface{} = make([]interface{}, 0) + for _, val := range input { + element := Com_amazonaws_dynamodb_AttributeDefinitions_member_ToDafny(val) + fieldValue = append(fieldValue, element) + } + return dafny.SeqOf(fieldValue...) + }() +} + +func Com_amazonaws_dynamodb_AttributeDefinitions_member_ToDafny(input types.AttributeDefinition) ComAmazonawsDynamodbTypes.AttributeDefinition { + return func() ComAmazonawsDynamodbTypes.AttributeDefinition { + + return ComAmazonawsDynamodbTypes.Companion_AttributeDefinition_.Create_AttributeDefinition_(Com_amazonaws_dynamodb_AttributeDefinition_AttributeName_ToDafny(input.AttributeName), Com_amazonaws_dynamodb_AttributeDefinition_AttributeType_ToDafny(input.AttributeType)) + }() +} + +func Com_amazonaws_dynamodb_AttributeDefinition_AttributeName_ToDafny(input *string) dafny.Sequence { + return func() dafny.Sequence { + if input == nil { + return nil + } + return func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(*input)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }() + }() +} + +func Com_amazonaws_dynamodb_AttributeDefinition_AttributeType_ToDafny(input types.ScalarAttributeType) ComAmazonawsDynamodbTypes.ScalarAttributeType { + return func() ComAmazonawsDynamodbTypes.ScalarAttributeType { + 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(ComAmazonawsDynamodbTypes.CompanionStruct_ScalarAttributeType_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return enum.(ComAmazonawsDynamodbTypes.ScalarAttributeType) + }() +} + +func Com_amazonaws_dynamodb_CreateTableInput_TableName_ToDafny(input *string) dafny.Sequence { + return func() dafny.Sequence { + if input == nil { + return nil + } + return func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(*input)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }() + }() +} + +func Com_amazonaws_dynamodb_CreateTableInput_KeySchema_ToDafny(input []types.KeySchemaElement) dafny.Sequence { + return func() dafny.Sequence { + if input == nil { + return nil + } + var fieldValue []interface{} = make([]interface{}, 0) + for _, val := range input { + element := Com_amazonaws_dynamodb_KeySchema_member_ToDafny(val) + fieldValue = append(fieldValue, element) + } + return dafny.SeqOf(fieldValue...) + }() +} + +func Com_amazonaws_dynamodb_KeySchema_member_ToDafny(input types.KeySchemaElement) ComAmazonawsDynamodbTypes.KeySchemaElement { + return func() ComAmazonawsDynamodbTypes.KeySchemaElement { + + return ComAmazonawsDynamodbTypes.Companion_KeySchemaElement_.Create_KeySchemaElement_(Com_amazonaws_dynamodb_KeySchemaElement_AttributeName_ToDafny(input.AttributeName), Com_amazonaws_dynamodb_KeySchemaElement_KeyType_ToDafny(input.KeyType)) + }() +} + +func Com_amazonaws_dynamodb_KeySchemaElement_AttributeName_ToDafny(input *string) dafny.Sequence { + return func() dafny.Sequence { + if input == nil { + return nil + } + return func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(*input)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }() + }() +} + +func Com_amazonaws_dynamodb_KeySchemaElement_KeyType_ToDafny(input types.KeyType) ComAmazonawsDynamodbTypes.KeyType { + return func() ComAmazonawsDynamodbTypes.KeyType { + 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(ComAmazonawsDynamodbTypes.CompanionStruct_KeyType_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return enum.(ComAmazonawsDynamodbTypes.KeyType) + }() +} + +func Com_amazonaws_dynamodb_CreateTableInput_LocalSecondaryIndexes_ToDafny(input []types.LocalSecondaryIndex) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + var fieldValue []interface{} = make([]interface{}, 0) + for _, val := range input { + element := Com_amazonaws_dynamodb_LocalSecondaryIndexList_member_ToDafny(val) + fieldValue = append(fieldValue, element) + } + return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(fieldValue...)) + }() +} + +func Com_amazonaws_dynamodb_LocalSecondaryIndexList_member_ToDafny(input types.LocalSecondaryIndex) ComAmazonawsDynamodbTypes.LocalSecondaryIndex { + return func() ComAmazonawsDynamodbTypes.LocalSecondaryIndex { + + return ComAmazonawsDynamodbTypes.Companion_LocalSecondaryIndex_.Create_LocalSecondaryIndex_(Com_amazonaws_dynamodb_LocalSecondaryIndex_IndexName_ToDafny(input.IndexName), Com_amazonaws_dynamodb_LocalSecondaryIndex_KeySchema_ToDafny(input.KeySchema), Com_amazonaws_dynamodb_LocalSecondaryIndex_Projection_ToDafny(input.Projection)) + }() +} + +func Com_amazonaws_dynamodb_LocalSecondaryIndex_IndexName_ToDafny(input *string) dafny.Sequence { + return func() dafny.Sequence { + if input == nil { + return nil + } + return func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(*input)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }() + }() +} + +func Com_amazonaws_dynamodb_LocalSecondaryIndex_KeySchema_ToDafny(input []types.KeySchemaElement) dafny.Sequence { + return func() dafny.Sequence { + if input == nil { + return nil + } + var fieldValue []interface{} = make([]interface{}, 0) + for _, val := range input { + element := Com_amazonaws_dynamodb_KeySchema_member_ToDafny(val) + fieldValue = append(fieldValue, element) + } + return dafny.SeqOf(fieldValue...) + }() +} + +func Com_amazonaws_dynamodb_LocalSecondaryIndex_Projection_ToDafny(input *types.Projection) ComAmazonawsDynamodbTypes.Projection { + return func() ComAmazonawsDynamodbTypes.Projection { + if input == nil { + return ComAmazonawsDynamodbTypes.Projection{} + } + return ComAmazonawsDynamodbTypes.Companion_Projection_.Create_Projection_(Com_amazonaws_dynamodb_Projection_ProjectionType_ToDafny(input.ProjectionType), Com_amazonaws_dynamodb_Projection_NonKeyAttributes_ToDafny(input.NonKeyAttributes)) + }() +} + +func Com_amazonaws_dynamodb_Projection_ProjectionType_ToDafny(input types.ProjectionType) Wrappers.Option { + return func() Wrappers.Option { + var index int + for _, enumVal := range input.Values() { + index++ + if enumVal == input { + break + } + if index == len(input.Values()) { + return Wrappers.Companion_Option_.Create_None_() + } + + } + var enum interface{} + for allEnums, i := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_ProjectionType_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return Wrappers.Companion_Option_.Create_Some_(enum.(ComAmazonawsDynamodbTypes.ProjectionType)) + }() +} + +func Com_amazonaws_dynamodb_Projection_NonKeyAttributes_ToDafny(input []string) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + var fieldValue []interface{} = make([]interface{}, 0) + for _, val := range input { + element := Com_amazonaws_dynamodb_NonKeyAttributeNameList_member_ToDafny(val) + fieldValue = append(fieldValue, element) + } + return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(fieldValue...)) + }() +} + +func Com_amazonaws_dynamodb_NonKeyAttributeNameList_member_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 Com_amazonaws_dynamodb_CreateTableInput_GlobalSecondaryIndexes_ToDafny(input []types.GlobalSecondaryIndex) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + var fieldValue []interface{} = make([]interface{}, 0) + for _, val := range input { + element := Com_amazonaws_dynamodb_GlobalSecondaryIndexList_member_ToDafny(val) + fieldValue = append(fieldValue, element) + } + return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(fieldValue...)) + }() +} + +func Com_amazonaws_dynamodb_GlobalSecondaryIndexList_member_ToDafny(input types.GlobalSecondaryIndex) ComAmazonawsDynamodbTypes.GlobalSecondaryIndex { + return func() ComAmazonawsDynamodbTypes.GlobalSecondaryIndex { + + return ComAmazonawsDynamodbTypes.Companion_GlobalSecondaryIndex_.Create_GlobalSecondaryIndex_(Com_amazonaws_dynamodb_GlobalSecondaryIndex_IndexName_ToDafny(input.IndexName), Com_amazonaws_dynamodb_GlobalSecondaryIndex_KeySchema_ToDafny(input.KeySchema), Com_amazonaws_dynamodb_GlobalSecondaryIndex_Projection_ToDafny(input.Projection), Com_amazonaws_dynamodb_GlobalSecondaryIndex_ProvisionedThroughput_ToDafny(input.ProvisionedThroughput), Com_amazonaws_dynamodb_GlobalSecondaryIndex_OnDemandThroughput_ToDafny(input.OnDemandThroughput)) + }() +} + +func Com_amazonaws_dynamodb_GlobalSecondaryIndex_IndexName_ToDafny(input *string) dafny.Sequence { + return func() dafny.Sequence { + if input == nil { + return nil + } + return func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(*input)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }() + }() +} + +func Com_amazonaws_dynamodb_GlobalSecondaryIndex_KeySchema_ToDafny(input []types.KeySchemaElement) dafny.Sequence { + return func() dafny.Sequence { + if input == nil { + return nil + } + var fieldValue []interface{} = make([]interface{}, 0) + for _, val := range input { + element := Com_amazonaws_dynamodb_KeySchema_member_ToDafny(val) + fieldValue = append(fieldValue, element) + } + return dafny.SeqOf(fieldValue...) + }() +} + +func Com_amazonaws_dynamodb_GlobalSecondaryIndex_Projection_ToDafny(input *types.Projection) ComAmazonawsDynamodbTypes.Projection { + return func() ComAmazonawsDynamodbTypes.Projection { + if input == nil { + return ComAmazonawsDynamodbTypes.Projection{} + } + return ComAmazonawsDynamodbTypes.Companion_Projection_.Create_Projection_(Com_amazonaws_dynamodb_Projection_ProjectionType_ToDafny(input.ProjectionType), Com_amazonaws_dynamodb_Projection_NonKeyAttributes_ToDafny(input.NonKeyAttributes)) + }() +} + +func Com_amazonaws_dynamodb_GlobalSecondaryIndex_ProvisionedThroughput_ToDafny(input *types.ProvisionedThroughput) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(ComAmazonawsDynamodbTypes.Companion_ProvisionedThroughput_.Create_ProvisionedThroughput_(Com_amazonaws_dynamodb_ProvisionedThroughput_ReadCapacityUnits_ToDafny(input.ReadCapacityUnits), Com_amazonaws_dynamodb_ProvisionedThroughput_WriteCapacityUnits_ToDafny(input.WriteCapacityUnits))) + }() +} + +func Com_amazonaws_dynamodb_ProvisionedThroughput_ReadCapacityUnits_ToDafny(input *int64) int64 { + return func() int64 { + if input == nil { + return 0 + } + return *input + }() +} + +func Com_amazonaws_dynamodb_ProvisionedThroughput_WriteCapacityUnits_ToDafny(input *int64) int64 { + return func() int64 { + if input == nil { + return 0 + } + return *input + }() +} + +func Com_amazonaws_dynamodb_GlobalSecondaryIndex_OnDemandThroughput_ToDafny(input *types.OnDemandThroughput) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(ComAmazonawsDynamodbTypes.Companion_OnDemandThroughput_.Create_OnDemandThroughput_(Com_amazonaws_dynamodb_OnDemandThroughput_MaxReadRequestUnits_ToDafny(input.MaxReadRequestUnits), Com_amazonaws_dynamodb_OnDemandThroughput_MaxWriteRequestUnits_ToDafny(input.MaxWriteRequestUnits))) + }() +} + +func Com_amazonaws_dynamodb_OnDemandThroughput_MaxReadRequestUnits_ToDafny(input *int64) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(*input) + }() +} + +func Com_amazonaws_dynamodb_OnDemandThroughput_MaxWriteRequestUnits_ToDafny(input *int64) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(*input) + }() +} + +func Com_amazonaws_dynamodb_CreateTableInput_BillingMode_ToDafny(input types.BillingMode) Wrappers.Option { + return func() Wrappers.Option { + var index int + for _, enumVal := range input.Values() { + index++ + if enumVal == input { + break + } + if index == len(input.Values()) { + return Wrappers.Companion_Option_.Create_None_() + } + + } + var enum interface{} + for allEnums, i := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_BillingMode_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return Wrappers.Companion_Option_.Create_Some_(enum.(ComAmazonawsDynamodbTypes.BillingMode)) + }() +} + +func Com_amazonaws_dynamodb_CreateTableInput_ProvisionedThroughput_ToDafny(input *types.ProvisionedThroughput) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(ComAmazonawsDynamodbTypes.Companion_ProvisionedThroughput_.Create_ProvisionedThroughput_(Com_amazonaws_dynamodb_ProvisionedThroughput_ReadCapacityUnits_ToDafny(input.ReadCapacityUnits), Com_amazonaws_dynamodb_ProvisionedThroughput_WriteCapacityUnits_ToDafny(input.WriteCapacityUnits))) + }() +} + +func Com_amazonaws_dynamodb_CreateTableInput_StreamSpecification_ToDafny(input *types.StreamSpecification) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(ComAmazonawsDynamodbTypes.Companion_StreamSpecification_.Create_StreamSpecification_(Com_amazonaws_dynamodb_StreamSpecification_StreamEnabled_ToDafny(input.StreamEnabled), Com_amazonaws_dynamodb_StreamSpecification_StreamViewType_ToDafny(input.StreamViewType))) + }() +} + +func Com_amazonaws_dynamodb_StreamSpecification_StreamEnabled_ToDafny(input *bool) bool { + return func() bool { + if input == nil { + return false + } + return *input + }() +} + +func Com_amazonaws_dynamodb_StreamSpecification_StreamViewType_ToDafny(input types.StreamViewType) Wrappers.Option { + return func() Wrappers.Option { + var index int + for _, enumVal := range input.Values() { + index++ + if enumVal == input { + break + } + if index == len(input.Values()) { + return Wrappers.Companion_Option_.Create_None_() + } + + } + var enum interface{} + for allEnums, i := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_StreamViewType_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return Wrappers.Companion_Option_.Create_Some_(enum.(ComAmazonawsDynamodbTypes.StreamViewType)) + }() +} + +func Com_amazonaws_dynamodb_CreateTableInput_SSESpecification_ToDafny(input *types.SSESpecification) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(ComAmazonawsDynamodbTypes.Companion_SSESpecification_.Create_SSESpecification_(Com_amazonaws_dynamodb_SSESpecification_Enabled_ToDafny(input.Enabled), Com_amazonaws_dynamodb_SSESpecification_SSEType_ToDafny(input.SSEType), Com_amazonaws_dynamodb_SSESpecification_KMSMasterKeyId_ToDafny(input.KMSMasterKeyId))) + }() +} + +func Com_amazonaws_dynamodb_SSESpecification_Enabled_ToDafny(input *bool) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(*input) + }() +} + +func Com_amazonaws_dynamodb_SSESpecification_SSEType_ToDafny(input types.SSEType) Wrappers.Option { + return func() Wrappers.Option { + var index int + for _, enumVal := range input.Values() { + index++ + if enumVal == input { + break + } + if index == len(input.Values()) { + return Wrappers.Companion_Option_.Create_None_() + } + + } + var enum interface{} + for allEnums, i := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_SSEType_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return Wrappers.Companion_Option_.Create_Some_(enum.(ComAmazonawsDynamodbTypes.SSEType)) + }() +} + +func Com_amazonaws_dynamodb_SSESpecification_KMSMasterKeyId_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 Com_amazonaws_dynamodb_CreateTableInput_Tags_ToDafny(input []types.Tag) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + var fieldValue []interface{} = make([]interface{}, 0) + for _, val := range input { + element := Com_amazonaws_dynamodb_TagList_member_ToDafny(val) + fieldValue = append(fieldValue, element) + } + return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(fieldValue...)) + }() +} + +func Com_amazonaws_dynamodb_TagList_member_ToDafny(input types.Tag) ComAmazonawsDynamodbTypes.Tag { + return func() ComAmazonawsDynamodbTypes.Tag { + + return ComAmazonawsDynamodbTypes.Companion_Tag_.Create_Tag_(Com_amazonaws_dynamodb_Tag_Key_ToDafny(input.Key), Com_amazonaws_dynamodb_Tag_Value_ToDafny(input.Value)) + }() +} + +func Com_amazonaws_dynamodb_Tag_Key_ToDafny(input *string) dafny.Sequence { + return func() dafny.Sequence { + if input == nil { + return nil + } + return func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(*input)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }() + }() +} + +func Com_amazonaws_dynamodb_Tag_Value_ToDafny(input *string) dafny.Sequence { + return func() dafny.Sequence { + if input == nil { + return nil + } + return func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(*input)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }() + }() +} + +func Com_amazonaws_dynamodb_CreateTableInput_TableClass_ToDafny(input types.TableClass) Wrappers.Option { + return func() Wrappers.Option { + var index int + for _, enumVal := range input.Values() { + index++ + if enumVal == input { + break + } + if index == len(input.Values()) { + return Wrappers.Companion_Option_.Create_None_() + } + + } + var enum interface{} + for allEnums, i := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_TableClass_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return Wrappers.Companion_Option_.Create_Some_(enum.(ComAmazonawsDynamodbTypes.TableClass)) + }() +} + +func Com_amazonaws_dynamodb_CreateTableInput_DeletionProtectionEnabled_ToDafny(input *bool) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(*input) + }() +} + +func Com_amazonaws_dynamodb_CreateTableInput_ResourcePolicy_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 Com_amazonaws_dynamodb_CreateTableInput_OnDemandThroughput_ToDafny(input *types.OnDemandThroughput) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(ComAmazonawsDynamodbTypes.Companion_OnDemandThroughput_.Create_OnDemandThroughput_(Com_amazonaws_dynamodb_OnDemandThroughput_MaxReadRequestUnits_ToDafny(input.MaxReadRequestUnits), Com_amazonaws_dynamodb_OnDemandThroughput_MaxWriteRequestUnits_ToDafny(input.MaxWriteRequestUnits))) + }() +} + +func Com_amazonaws_dynamodb_CreateTableOutput_TableDescription_ToDafny(input *types.TableDescription) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(ComAmazonawsDynamodbTypes.Companion_TableDescription_.Create_TableDescription_(Com_amazonaws_dynamodb_TableDescription_AttributeDefinitions_ToDafny(input.AttributeDefinitions), Com_amazonaws_dynamodb_TableDescription_TableName_ToDafny(input.TableName), Com_amazonaws_dynamodb_TableDescription_KeySchema_ToDafny(input.KeySchema), Com_amazonaws_dynamodb_TableDescription_TableStatus_ToDafny(input.TableStatus), Com_amazonaws_dynamodb_TableDescription_CreationDateTime_ToDafny(input.CreationDateTime), Com_amazonaws_dynamodb_TableDescription_ProvisionedThroughput_ToDafny(input.ProvisionedThroughput), Com_amazonaws_dynamodb_TableDescription_TableSizeBytes_ToDafny(input.TableSizeBytes), Com_amazonaws_dynamodb_TableDescription_ItemCount_ToDafny(input.ItemCount), Com_amazonaws_dynamodb_TableDescription_TableArn_ToDafny(input.TableArn), Com_amazonaws_dynamodb_TableDescription_TableId_ToDafny(input.TableId), Com_amazonaws_dynamodb_TableDescription_BillingModeSummary_ToDafny(input.BillingModeSummary), Com_amazonaws_dynamodb_TableDescription_LocalSecondaryIndexes_ToDafny(input.LocalSecondaryIndexes), Com_amazonaws_dynamodb_TableDescription_GlobalSecondaryIndexes_ToDafny(input.GlobalSecondaryIndexes), Com_amazonaws_dynamodb_TableDescription_StreamSpecification_ToDafny(input.StreamSpecification), Com_amazonaws_dynamodb_TableDescription_LatestStreamLabel_ToDafny(input.LatestStreamLabel), Com_amazonaws_dynamodb_TableDescription_LatestStreamArn_ToDafny(input.LatestStreamArn), Com_amazonaws_dynamodb_TableDescription_GlobalTableVersion_ToDafny(input.GlobalTableVersion), Com_amazonaws_dynamodb_TableDescription_Replicas_ToDafny(input.Replicas), Com_amazonaws_dynamodb_TableDescription_RestoreSummary_ToDafny(input.RestoreSummary), Com_amazonaws_dynamodb_TableDescription_SSEDescription_ToDafny(input.SSEDescription), Com_amazonaws_dynamodb_TableDescription_ArchivalSummary_ToDafny(input.ArchivalSummary), Com_amazonaws_dynamodb_TableDescription_TableClassSummary_ToDafny(input.TableClassSummary), Com_amazonaws_dynamodb_TableDescription_DeletionProtectionEnabled_ToDafny(input.DeletionProtectionEnabled), Com_amazonaws_dynamodb_TableDescription_OnDemandThroughput_ToDafny(input.OnDemandThroughput))) + }() +} + +func Com_amazonaws_dynamodb_TableDescription_AttributeDefinitions_ToDafny(input []types.AttributeDefinition) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + var fieldValue []interface{} = make([]interface{}, 0) + for _, val := range input { + element := Com_amazonaws_dynamodb_AttributeDefinitions_member_ToDafny(val) + fieldValue = append(fieldValue, element) + } + return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(fieldValue...)) + }() +} + +func Com_amazonaws_dynamodb_TableDescription_TableName_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 Com_amazonaws_dynamodb_TableDescription_KeySchema_ToDafny(input []types.KeySchemaElement) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + var fieldValue []interface{} = make([]interface{}, 0) + for _, val := range input { + element := Com_amazonaws_dynamodb_KeySchema_member_ToDafny(val) + fieldValue = append(fieldValue, element) + } + return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(fieldValue...)) + }() +} + +func Com_amazonaws_dynamodb_TableDescription_TableStatus_ToDafny(input types.TableStatus) Wrappers.Option { + return func() Wrappers.Option { + var index int + for _, enumVal := range input.Values() { + index++ + if enumVal == input { + break + } + if index == len(input.Values()) { + return Wrappers.Companion_Option_.Create_None_() + } + + } + var enum interface{} + for allEnums, i := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_TableStatus_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return Wrappers.Companion_Option_.Create_Some_(enum.(ComAmazonawsDynamodbTypes.TableStatus)) + }() +} + +func Com_amazonaws_dynamodb_TableDescription_CreationDateTime_ToDafny(input *time.Time) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + formattedTime := input.Format("2006-01-02T15:04:05.999999Z") + return Wrappers.Companion_Option_.Create_Some_(func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(formattedTime)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }()) + }() +} + +func Com_amazonaws_dynamodb_TableDescription_ProvisionedThroughput_ToDafny(input *types.ProvisionedThroughputDescription) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(ComAmazonawsDynamodbTypes.Companion_ProvisionedThroughputDescription_.Create_ProvisionedThroughputDescription_(Com_amazonaws_dynamodb_ProvisionedThroughputDescription_LastIncreaseDateTime_ToDafny(input.LastIncreaseDateTime), Com_amazonaws_dynamodb_ProvisionedThroughputDescription_LastDecreaseDateTime_ToDafny(input.LastDecreaseDateTime), Com_amazonaws_dynamodb_ProvisionedThroughputDescription_NumberOfDecreasesToday_ToDafny(input.NumberOfDecreasesToday), Com_amazonaws_dynamodb_ProvisionedThroughputDescription_ReadCapacityUnits_ToDafny(input.ReadCapacityUnits), Com_amazonaws_dynamodb_ProvisionedThroughputDescription_WriteCapacityUnits_ToDafny(input.WriteCapacityUnits))) + }() +} + +func Com_amazonaws_dynamodb_ProvisionedThroughputDescription_LastIncreaseDateTime_ToDafny(input *time.Time) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + formattedTime := input.Format("2006-01-02T15:04:05.999999Z") + return Wrappers.Companion_Option_.Create_Some_(func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(formattedTime)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }()) + }() +} + +func Com_amazonaws_dynamodb_ProvisionedThroughputDescription_LastDecreaseDateTime_ToDafny(input *time.Time) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + formattedTime := input.Format("2006-01-02T15:04:05.999999Z") + return Wrappers.Companion_Option_.Create_Some_(func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(formattedTime)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }()) + }() +} + +func Com_amazonaws_dynamodb_ProvisionedThroughputDescription_NumberOfDecreasesToday_ToDafny(input *int64) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(*input) + }() +} + +func Com_amazonaws_dynamodb_ProvisionedThroughputDescription_ReadCapacityUnits_ToDafny(input *int64) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(*input) + }() +} + +func Com_amazonaws_dynamodb_ProvisionedThroughputDescription_WriteCapacityUnits_ToDafny(input *int64) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(*input) + }() +} + +func Com_amazonaws_dynamodb_TableDescription_TableSizeBytes_ToDafny(input *int64) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(*input) + }() +} + +func Com_amazonaws_dynamodb_TableDescription_ItemCount_ToDafny(input *int64) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(*input) + }() +} + +func Com_amazonaws_dynamodb_TableDescription_TableArn_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 Com_amazonaws_dynamodb_TableDescription_TableId_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 Com_amazonaws_dynamodb_TableDescription_BillingModeSummary_ToDafny(input *types.BillingModeSummary) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(ComAmazonawsDynamodbTypes.Companion_BillingModeSummary_.Create_BillingModeSummary_(Com_amazonaws_dynamodb_BillingModeSummary_BillingMode_ToDafny(input.BillingMode), Com_amazonaws_dynamodb_BillingModeSummary_LastUpdateToPayPerRequestDateTime_ToDafny(input.LastUpdateToPayPerRequestDateTime))) + }() +} + +func Com_amazonaws_dynamodb_BillingModeSummary_BillingMode_ToDafny(input types.BillingMode) Wrappers.Option { + return func() Wrappers.Option { + var index int + for _, enumVal := range input.Values() { + index++ + if enumVal == input { + break + } + if index == len(input.Values()) { + return Wrappers.Companion_Option_.Create_None_() + } + + } + var enum interface{} + for allEnums, i := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_BillingMode_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return Wrappers.Companion_Option_.Create_Some_(enum.(ComAmazonawsDynamodbTypes.BillingMode)) + }() +} + +func Com_amazonaws_dynamodb_BillingModeSummary_LastUpdateToPayPerRequestDateTime_ToDafny(input *time.Time) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + formattedTime := input.Format("2006-01-02T15:04:05.999999Z") + return Wrappers.Companion_Option_.Create_Some_(func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(formattedTime)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }()) + }() +} + +func Com_amazonaws_dynamodb_TableDescription_LocalSecondaryIndexes_ToDafny(input []types.LocalSecondaryIndexDescription) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + var fieldValue []interface{} = make([]interface{}, 0) + for _, val := range input { + element := Com_amazonaws_dynamodb_LocalSecondaryIndexDescriptionList_member_ToDafny(val) + fieldValue = append(fieldValue, element) + } + return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(fieldValue...)) + }() +} + +func Com_amazonaws_dynamodb_LocalSecondaryIndexDescriptionList_member_ToDafny(input types.LocalSecondaryIndexDescription) ComAmazonawsDynamodbTypes.LocalSecondaryIndexDescription { + return func() ComAmazonawsDynamodbTypes.LocalSecondaryIndexDescription { + + return ComAmazonawsDynamodbTypes.Companion_LocalSecondaryIndexDescription_.Create_LocalSecondaryIndexDescription_(Com_amazonaws_dynamodb_LocalSecondaryIndexDescription_IndexName_ToDafny(input.IndexName), Com_amazonaws_dynamodb_LocalSecondaryIndexDescription_KeySchema_ToDafny(input.KeySchema), Com_amazonaws_dynamodb_LocalSecondaryIndexDescription_Projection_ToDafny(input.Projection), Com_amazonaws_dynamodb_LocalSecondaryIndexDescription_IndexSizeBytes_ToDafny(input.IndexSizeBytes), Com_amazonaws_dynamodb_LocalSecondaryIndexDescription_ItemCount_ToDafny(input.ItemCount), Com_amazonaws_dynamodb_LocalSecondaryIndexDescription_IndexArn_ToDafny(input.IndexArn)) + }() +} + +func Com_amazonaws_dynamodb_LocalSecondaryIndexDescription_IndexName_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 Com_amazonaws_dynamodb_LocalSecondaryIndexDescription_KeySchema_ToDafny(input []types.KeySchemaElement) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + var fieldValue []interface{} = make([]interface{}, 0) + for _, val := range input { + element := Com_amazonaws_dynamodb_KeySchema_member_ToDafny(val) + fieldValue = append(fieldValue, element) + } + return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(fieldValue...)) + }() +} + +func Com_amazonaws_dynamodb_LocalSecondaryIndexDescription_Projection_ToDafny(input *types.Projection) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(ComAmazonawsDynamodbTypes.Companion_Projection_.Create_Projection_(Com_amazonaws_dynamodb_Projection_ProjectionType_ToDafny(input.ProjectionType), Com_amazonaws_dynamodb_Projection_NonKeyAttributes_ToDafny(input.NonKeyAttributes))) + }() +} + +func Com_amazonaws_dynamodb_LocalSecondaryIndexDescription_IndexSizeBytes_ToDafny(input *int64) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(*input) + }() +} + +func Com_amazonaws_dynamodb_LocalSecondaryIndexDescription_ItemCount_ToDafny(input *int64) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(*input) + }() +} + +func Com_amazonaws_dynamodb_LocalSecondaryIndexDescription_IndexArn_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 Com_amazonaws_dynamodb_TableDescription_GlobalSecondaryIndexes_ToDafny(input []types.GlobalSecondaryIndexDescription) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + var fieldValue []interface{} = make([]interface{}, 0) + for _, val := range input { + element := Com_amazonaws_dynamodb_GlobalSecondaryIndexDescriptionList_member_ToDafny(val) + fieldValue = append(fieldValue, element) + } + return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(fieldValue...)) + }() +} + +func Com_amazonaws_dynamodb_GlobalSecondaryIndexDescriptionList_member_ToDafny(input types.GlobalSecondaryIndexDescription) ComAmazonawsDynamodbTypes.GlobalSecondaryIndexDescription { + return func() ComAmazonawsDynamodbTypes.GlobalSecondaryIndexDescription { + + return ComAmazonawsDynamodbTypes.Companion_GlobalSecondaryIndexDescription_.Create_GlobalSecondaryIndexDescription_(Com_amazonaws_dynamodb_GlobalSecondaryIndexDescription_IndexName_ToDafny(input.IndexName), Com_amazonaws_dynamodb_GlobalSecondaryIndexDescription_KeySchema_ToDafny(input.KeySchema), Com_amazonaws_dynamodb_GlobalSecondaryIndexDescription_Projection_ToDafny(input.Projection), Com_amazonaws_dynamodb_GlobalSecondaryIndexDescription_IndexStatus_ToDafny(input.IndexStatus), Com_amazonaws_dynamodb_GlobalSecondaryIndexDescription_Backfilling_ToDafny(input.Backfilling), Com_amazonaws_dynamodb_GlobalSecondaryIndexDescription_ProvisionedThroughput_ToDafny(input.ProvisionedThroughput), Com_amazonaws_dynamodb_GlobalSecondaryIndexDescription_IndexSizeBytes_ToDafny(input.IndexSizeBytes), Com_amazonaws_dynamodb_GlobalSecondaryIndexDescription_ItemCount_ToDafny(input.ItemCount), Com_amazonaws_dynamodb_GlobalSecondaryIndexDescription_IndexArn_ToDafny(input.IndexArn), Com_amazonaws_dynamodb_GlobalSecondaryIndexDescription_OnDemandThroughput_ToDafny(input.OnDemandThroughput)) + }() +} + +func Com_amazonaws_dynamodb_GlobalSecondaryIndexDescription_IndexName_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 Com_amazonaws_dynamodb_GlobalSecondaryIndexDescription_KeySchema_ToDafny(input []types.KeySchemaElement) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + var fieldValue []interface{} = make([]interface{}, 0) + for _, val := range input { + element := Com_amazonaws_dynamodb_KeySchema_member_ToDafny(val) + fieldValue = append(fieldValue, element) + } + return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(fieldValue...)) + }() +} + +func Com_amazonaws_dynamodb_GlobalSecondaryIndexDescription_Projection_ToDafny(input *types.Projection) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(ComAmazonawsDynamodbTypes.Companion_Projection_.Create_Projection_(Com_amazonaws_dynamodb_Projection_ProjectionType_ToDafny(input.ProjectionType), Com_amazonaws_dynamodb_Projection_NonKeyAttributes_ToDafny(input.NonKeyAttributes))) + }() +} + +func Com_amazonaws_dynamodb_GlobalSecondaryIndexDescription_IndexStatus_ToDafny(input types.IndexStatus) Wrappers.Option { + return func() Wrappers.Option { + var index int + for _, enumVal := range input.Values() { + index++ + if enumVal == input { + break + } + if index == len(input.Values()) { + return Wrappers.Companion_Option_.Create_None_() + } + + } + var enum interface{} + for allEnums, i := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_IndexStatus_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return Wrappers.Companion_Option_.Create_Some_(enum.(ComAmazonawsDynamodbTypes.IndexStatus)) + }() +} + +func Com_amazonaws_dynamodb_GlobalSecondaryIndexDescription_Backfilling_ToDafny(input *bool) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(*input) + }() +} + +func Com_amazonaws_dynamodb_GlobalSecondaryIndexDescription_ProvisionedThroughput_ToDafny(input *types.ProvisionedThroughputDescription) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(ComAmazonawsDynamodbTypes.Companion_ProvisionedThroughputDescription_.Create_ProvisionedThroughputDescription_(Com_amazonaws_dynamodb_ProvisionedThroughputDescription_LastIncreaseDateTime_ToDafny(input.LastIncreaseDateTime), Com_amazonaws_dynamodb_ProvisionedThroughputDescription_LastDecreaseDateTime_ToDafny(input.LastDecreaseDateTime), Com_amazonaws_dynamodb_ProvisionedThroughputDescription_NumberOfDecreasesToday_ToDafny(input.NumberOfDecreasesToday), Com_amazonaws_dynamodb_ProvisionedThroughputDescription_ReadCapacityUnits_ToDafny(input.ReadCapacityUnits), Com_amazonaws_dynamodb_ProvisionedThroughputDescription_WriteCapacityUnits_ToDafny(input.WriteCapacityUnits))) + }() +} + +func Com_amazonaws_dynamodb_GlobalSecondaryIndexDescription_IndexSizeBytes_ToDafny(input *int64) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(*input) + }() +} + +func Com_amazonaws_dynamodb_GlobalSecondaryIndexDescription_ItemCount_ToDafny(input *int64) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(*input) + }() +} + +func Com_amazonaws_dynamodb_GlobalSecondaryIndexDescription_IndexArn_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 Com_amazonaws_dynamodb_GlobalSecondaryIndexDescription_OnDemandThroughput_ToDafny(input *types.OnDemandThroughput) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(ComAmazonawsDynamodbTypes.Companion_OnDemandThroughput_.Create_OnDemandThroughput_(Com_amazonaws_dynamodb_OnDemandThroughput_MaxReadRequestUnits_ToDafny(input.MaxReadRequestUnits), Com_amazonaws_dynamodb_OnDemandThroughput_MaxWriteRequestUnits_ToDafny(input.MaxWriteRequestUnits))) + }() +} + +func Com_amazonaws_dynamodb_TableDescription_StreamSpecification_ToDafny(input *types.StreamSpecification) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(ComAmazonawsDynamodbTypes.Companion_StreamSpecification_.Create_StreamSpecification_(Com_amazonaws_dynamodb_StreamSpecification_StreamEnabled_ToDafny(input.StreamEnabled), Com_amazonaws_dynamodb_StreamSpecification_StreamViewType_ToDafny(input.StreamViewType))) + }() +} + +func Com_amazonaws_dynamodb_TableDescription_LatestStreamLabel_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 Com_amazonaws_dynamodb_TableDescription_LatestStreamArn_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 Com_amazonaws_dynamodb_TableDescription_GlobalTableVersion_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 Com_amazonaws_dynamodb_TableDescription_Replicas_ToDafny(input []types.ReplicaDescription) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + var fieldValue []interface{} = make([]interface{}, 0) + for _, val := range input { + element := Com_amazonaws_dynamodb_ReplicaDescriptionList_member_ToDafny(val) + fieldValue = append(fieldValue, element) + } + return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(fieldValue...)) + }() +} + +func Com_amazonaws_dynamodb_TableDescription_RestoreSummary_ToDafny(input *types.RestoreSummary) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(ComAmazonawsDynamodbTypes.Companion_RestoreSummary_.Create_RestoreSummary_(Com_amazonaws_dynamodb_RestoreSummary_SourceBackupArn_ToDafny(input.SourceBackupArn), Com_amazonaws_dynamodb_RestoreSummary_SourceTableArn_ToDafny(input.SourceTableArn), Com_amazonaws_dynamodb_RestoreSummary_RestoreDateTime_ToDafny(input.RestoreDateTime), Com_amazonaws_dynamodb_RestoreSummary_RestoreInProgress_ToDafny(input.RestoreInProgress))) + }() +} + +func Com_amazonaws_dynamodb_RestoreSummary_SourceBackupArn_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 Com_amazonaws_dynamodb_RestoreSummary_SourceTableArn_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 Com_amazonaws_dynamodb_RestoreSummary_RestoreDateTime_ToDafny(input *time.Time) dafny.Sequence { + return func() dafny.Sequence { + if input == nil { + return dafny.SeqOf() + } + formattedTime := input.Format("2006-01-02T15:04:05.999999Z") + return func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(formattedTime)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }() + }() +} + +func Com_amazonaws_dynamodb_RestoreSummary_RestoreInProgress_ToDafny(input *bool) bool { + return func() bool { + if input == nil { + return false + } + return *input + }() +} + +func Com_amazonaws_dynamodb_TableDescription_SSEDescription_ToDafny(input *types.SSEDescription) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(ComAmazonawsDynamodbTypes.Companion_SSEDescription_.Create_SSEDescription_(Com_amazonaws_dynamodb_SSEDescription_Status_ToDafny(input.Status), Com_amazonaws_dynamodb_SSEDescription_SSEType_ToDafny(input.SSEType), Com_amazonaws_dynamodb_SSEDescription_KMSMasterKeyArn_ToDafny(input.KMSMasterKeyArn), Com_amazonaws_dynamodb_SSEDescription_InaccessibleEncryptionDateTime_ToDafny(input.InaccessibleEncryptionDateTime))) + }() +} + +func Com_amazonaws_dynamodb_SSEDescription_Status_ToDafny(input types.SSEStatus) Wrappers.Option { + return func() Wrappers.Option { + var index int + for _, enumVal := range input.Values() { + index++ + if enumVal == input { + break + } + if index == len(input.Values()) { + return Wrappers.Companion_Option_.Create_None_() + } + + } + var enum interface{} + for allEnums, i := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_SSEStatus_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return Wrappers.Companion_Option_.Create_Some_(enum.(ComAmazonawsDynamodbTypes.SSEStatus)) + }() +} + +func Com_amazonaws_dynamodb_SSEDescription_SSEType_ToDafny(input types.SSEType) Wrappers.Option { + return func() Wrappers.Option { + var index int + for _, enumVal := range input.Values() { + index++ + if enumVal == input { + break + } + if index == len(input.Values()) { + return Wrappers.Companion_Option_.Create_None_() + } + + } + var enum interface{} + for allEnums, i := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_SSEType_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return Wrappers.Companion_Option_.Create_Some_(enum.(ComAmazonawsDynamodbTypes.SSEType)) + }() +} + +func Com_amazonaws_dynamodb_SSEDescription_KMSMasterKeyArn_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 Com_amazonaws_dynamodb_SSEDescription_InaccessibleEncryptionDateTime_ToDafny(input *time.Time) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + formattedTime := input.Format("2006-01-02T15:04:05.999999Z") + return Wrappers.Companion_Option_.Create_Some_(func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(formattedTime)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }()) + }() +} + +func Com_amazonaws_dynamodb_TableDescription_ArchivalSummary_ToDafny(input *types.ArchivalSummary) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(ComAmazonawsDynamodbTypes.Companion_ArchivalSummary_.Create_ArchivalSummary_(Com_amazonaws_dynamodb_ArchivalSummary_ArchivalDateTime_ToDafny(input.ArchivalDateTime), Com_amazonaws_dynamodb_ArchivalSummary_ArchivalReason_ToDafny(input.ArchivalReason), Com_amazonaws_dynamodb_ArchivalSummary_ArchivalBackupArn_ToDafny(input.ArchivalBackupArn))) + }() +} + +func Com_amazonaws_dynamodb_ArchivalSummary_ArchivalDateTime_ToDafny(input *time.Time) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + formattedTime := input.Format("2006-01-02T15:04:05.999999Z") + return Wrappers.Companion_Option_.Create_Some_(func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(formattedTime)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }()) + }() +} + +func Com_amazonaws_dynamodb_ArchivalSummary_ArchivalReason_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 Com_amazonaws_dynamodb_ArchivalSummary_ArchivalBackupArn_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 Com_amazonaws_dynamodb_TableDescription_TableClassSummary_ToDafny(input *types.TableClassSummary) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(ComAmazonawsDynamodbTypes.Companion_TableClassSummary_.Create_TableClassSummary_(Com_amazonaws_dynamodb_TableClassSummary_TableClass_ToDafny(input.TableClass), Com_amazonaws_dynamodb_TableClassSummary_LastUpdateDateTime_ToDafny(input.LastUpdateDateTime))) + }() +} + +func Com_amazonaws_dynamodb_TableDescription_DeletionProtectionEnabled_ToDafny(input *bool) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(*input) + }() +} + +func Com_amazonaws_dynamodb_TableDescription_OnDemandThroughput_ToDafny(input *types.OnDemandThroughput) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(ComAmazonawsDynamodbTypes.Companion_OnDemandThroughput_.Create_OnDemandThroughput_(Com_amazonaws_dynamodb_OnDemandThroughput_MaxReadRequestUnits_ToDafny(input.MaxReadRequestUnits), Com_amazonaws_dynamodb_OnDemandThroughput_MaxWriteRequestUnits_ToDafny(input.MaxWriteRequestUnits))) + }() +} + +func Com_amazonaws_dynamodb_DeleteBackupInput_BackupArn_ToDafny(input *string) dafny.Sequence { + return func() dafny.Sequence { + if input == nil { + return nil + } + return func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(*input)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }() + }() +} + +func Com_amazonaws_dynamodb_DeleteBackupOutput_BackupDescription_ToDafny(input *types.BackupDescription) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(ComAmazonawsDynamodbTypes.Companion_BackupDescription_.Create_BackupDescription_(Com_amazonaws_dynamodb_BackupDescription_BackupDetails_ToDafny(input.BackupDetails), Com_amazonaws_dynamodb_BackupDescription_SourceTableDetails_ToDafny(input.SourceTableDetails), Com_amazonaws_dynamodb_BackupDescription_SourceTableFeatureDetails_ToDafny(input.SourceTableFeatureDetails))) + }() +} + +func Com_amazonaws_dynamodb_BackupDescription_BackupDetails_ToDafny(input *types.BackupDetails) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(ComAmazonawsDynamodbTypes.Companion_BackupDetails_.Create_BackupDetails_(Com_amazonaws_dynamodb_BackupDetails_BackupArn_ToDafny(input.BackupArn), Com_amazonaws_dynamodb_BackupDetails_BackupName_ToDafny(input.BackupName), Com_amazonaws_dynamodb_BackupDetails_BackupSizeBytes_ToDafny(input.BackupSizeBytes), Com_amazonaws_dynamodb_BackupDetails_BackupStatus_ToDafny(input.BackupStatus), Com_amazonaws_dynamodb_BackupDetails_BackupType_ToDafny(input.BackupType), Com_amazonaws_dynamodb_BackupDetails_BackupCreationDateTime_ToDafny(input.BackupCreationDateTime), Com_amazonaws_dynamodb_BackupDetails_BackupExpiryDateTime_ToDafny(input.BackupExpiryDateTime))) + }() +} + +func Com_amazonaws_dynamodb_BackupDescription_SourceTableDetails_ToDafny(input *types.SourceTableDetails) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(ComAmazonawsDynamodbTypes.Companion_SourceTableDetails_.Create_SourceTableDetails_(Com_amazonaws_dynamodb_SourceTableDetails_TableName_ToDafny(input.TableName), Com_amazonaws_dynamodb_SourceTableDetails_TableId_ToDafny(input.TableId), Com_amazonaws_dynamodb_SourceTableDetails_TableArn_ToDafny(input.TableArn), Com_amazonaws_dynamodb_SourceTableDetails_TableSizeBytes_ToDafny(input.TableSizeBytes), Com_amazonaws_dynamodb_SourceTableDetails_KeySchema_ToDafny(input.KeySchema), Com_amazonaws_dynamodb_SourceTableDetails_TableCreationDateTime_ToDafny(input.TableCreationDateTime), Com_amazonaws_dynamodb_SourceTableDetails_ProvisionedThroughput_ToDafny(input.ProvisionedThroughput), Com_amazonaws_dynamodb_SourceTableDetails_OnDemandThroughput_ToDafny(input.OnDemandThroughput), Com_amazonaws_dynamodb_SourceTableDetails_ItemCount_ToDafny(input.ItemCount), Com_amazonaws_dynamodb_SourceTableDetails_BillingMode_ToDafny(input.BillingMode))) + }() +} + +func Com_amazonaws_dynamodb_SourceTableDetails_TableName_ToDafny(input *string) dafny.Sequence { + return func() dafny.Sequence { + if input == nil { + return nil + } + return func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(*input)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }() + }() +} + +func Com_amazonaws_dynamodb_SourceTableDetails_TableId_ToDafny(input *string) dafny.Sequence { + return func() dafny.Sequence { + if input == nil { + return nil + } + return func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(*input)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }() + }() +} + +func Com_amazonaws_dynamodb_SourceTableDetails_TableArn_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 Com_amazonaws_dynamodb_SourceTableDetails_TableSizeBytes_ToDafny(input *int64) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(*input) + }() +} + +func Com_amazonaws_dynamodb_SourceTableDetails_KeySchema_ToDafny(input []types.KeySchemaElement) dafny.Sequence { + return func() dafny.Sequence { + if input == nil { + return nil + } + var fieldValue []interface{} = make([]interface{}, 0) + for _, val := range input { + element := Com_amazonaws_dynamodb_KeySchema_member_ToDafny(val) + fieldValue = append(fieldValue, element) + } + return dafny.SeqOf(fieldValue...) + }() +} + +func Com_amazonaws_dynamodb_SourceTableDetails_TableCreationDateTime_ToDafny(input *time.Time) dafny.Sequence { + return func() dafny.Sequence { + if input == nil { + return dafny.SeqOf() + } + formattedTime := input.Format("2006-01-02T15:04:05.999999Z") + return func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(formattedTime)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }() + }() +} + +func Com_amazonaws_dynamodb_SourceTableDetails_ProvisionedThroughput_ToDafny(input *types.ProvisionedThroughput) ComAmazonawsDynamodbTypes.ProvisionedThroughput { + return func() ComAmazonawsDynamodbTypes.ProvisionedThroughput { + if input == nil { + return ComAmazonawsDynamodbTypes.ProvisionedThroughput{} + } + return ComAmazonawsDynamodbTypes.Companion_ProvisionedThroughput_.Create_ProvisionedThroughput_(Com_amazonaws_dynamodb_ProvisionedThroughput_ReadCapacityUnits_ToDafny(input.ReadCapacityUnits), Com_amazonaws_dynamodb_ProvisionedThroughput_WriteCapacityUnits_ToDafny(input.WriteCapacityUnits)) + }() +} + +func Com_amazonaws_dynamodb_SourceTableDetails_OnDemandThroughput_ToDafny(input *types.OnDemandThroughput) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(ComAmazonawsDynamodbTypes.Companion_OnDemandThroughput_.Create_OnDemandThroughput_(Com_amazonaws_dynamodb_OnDemandThroughput_MaxReadRequestUnits_ToDafny(input.MaxReadRequestUnits), Com_amazonaws_dynamodb_OnDemandThroughput_MaxWriteRequestUnits_ToDafny(input.MaxWriteRequestUnits))) + }() +} + +func Com_amazonaws_dynamodb_SourceTableDetails_ItemCount_ToDafny(input *int64) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(*input) + }() +} + +func Com_amazonaws_dynamodb_SourceTableDetails_BillingMode_ToDafny(input types.BillingMode) Wrappers.Option { + return func() Wrappers.Option { + var index int + for _, enumVal := range input.Values() { + index++ + if enumVal == input { + break + } + if index == len(input.Values()) { + return Wrappers.Companion_Option_.Create_None_() + } + + } + var enum interface{} + for allEnums, i := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_BillingMode_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return Wrappers.Companion_Option_.Create_Some_(enum.(ComAmazonawsDynamodbTypes.BillingMode)) + }() +} + +func Com_amazonaws_dynamodb_BackupDescription_SourceTableFeatureDetails_ToDafny(input *types.SourceTableFeatureDetails) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(ComAmazonawsDynamodbTypes.Companion_SourceTableFeatureDetails_.Create_SourceTableFeatureDetails_(Com_amazonaws_dynamodb_SourceTableFeatureDetails_LocalSecondaryIndexes_ToDafny(input.LocalSecondaryIndexes), Com_amazonaws_dynamodb_SourceTableFeatureDetails_GlobalSecondaryIndexes_ToDafny(input.GlobalSecondaryIndexes), Com_amazonaws_dynamodb_SourceTableFeatureDetails_StreamDescription_ToDafny(input.StreamDescription), Com_amazonaws_dynamodb_SourceTableFeatureDetails_TimeToLiveDescription_ToDafny(input.TimeToLiveDescription), Com_amazonaws_dynamodb_SourceTableFeatureDetails_SSEDescription_ToDafny(input.SSEDescription))) + }() +} + +func Com_amazonaws_dynamodb_SourceTableFeatureDetails_LocalSecondaryIndexes_ToDafny(input []types.LocalSecondaryIndexInfo) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + var fieldValue []interface{} = make([]interface{}, 0) + for _, val := range input { + element := Com_amazonaws_dynamodb_LocalSecondaryIndexes_member_ToDafny(val) + fieldValue = append(fieldValue, element) + } + return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(fieldValue...)) + }() +} + +func Com_amazonaws_dynamodb_LocalSecondaryIndexes_member_ToDafny(input types.LocalSecondaryIndexInfo) ComAmazonawsDynamodbTypes.LocalSecondaryIndexInfo { + return func() ComAmazonawsDynamodbTypes.LocalSecondaryIndexInfo { + + return ComAmazonawsDynamodbTypes.Companion_LocalSecondaryIndexInfo_.Create_LocalSecondaryIndexInfo_(Com_amazonaws_dynamodb_LocalSecondaryIndexInfo_IndexName_ToDafny(input.IndexName), Com_amazonaws_dynamodb_LocalSecondaryIndexInfo_KeySchema_ToDafny(input.KeySchema), Com_amazonaws_dynamodb_LocalSecondaryIndexInfo_Projection_ToDafny(input.Projection)) + }() +} + +func Com_amazonaws_dynamodb_LocalSecondaryIndexInfo_IndexName_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 Com_amazonaws_dynamodb_LocalSecondaryIndexInfo_KeySchema_ToDafny(input []types.KeySchemaElement) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + var fieldValue []interface{} = make([]interface{}, 0) + for _, val := range input { + element := Com_amazonaws_dynamodb_KeySchema_member_ToDafny(val) + fieldValue = append(fieldValue, element) + } + return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(fieldValue...)) + }() +} + +func Com_amazonaws_dynamodb_LocalSecondaryIndexInfo_Projection_ToDafny(input *types.Projection) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(ComAmazonawsDynamodbTypes.Companion_Projection_.Create_Projection_(Com_amazonaws_dynamodb_Projection_ProjectionType_ToDafny(input.ProjectionType), Com_amazonaws_dynamodb_Projection_NonKeyAttributes_ToDafny(input.NonKeyAttributes))) + }() +} + +func Com_amazonaws_dynamodb_SourceTableFeatureDetails_GlobalSecondaryIndexes_ToDafny(input []types.GlobalSecondaryIndexInfo) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + var fieldValue []interface{} = make([]interface{}, 0) + for _, val := range input { + element := Com_amazonaws_dynamodb_GlobalSecondaryIndexes_member_ToDafny(val) + fieldValue = append(fieldValue, element) + } + return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(fieldValue...)) + }() +} + +func Com_amazonaws_dynamodb_GlobalSecondaryIndexes_member_ToDafny(input types.GlobalSecondaryIndexInfo) ComAmazonawsDynamodbTypes.GlobalSecondaryIndexInfo { + return func() ComAmazonawsDynamodbTypes.GlobalSecondaryIndexInfo { + + return ComAmazonawsDynamodbTypes.Companion_GlobalSecondaryIndexInfo_.Create_GlobalSecondaryIndexInfo_(Com_amazonaws_dynamodb_GlobalSecondaryIndexInfo_IndexName_ToDafny(input.IndexName), Com_amazonaws_dynamodb_GlobalSecondaryIndexInfo_KeySchema_ToDafny(input.KeySchema), Com_amazonaws_dynamodb_GlobalSecondaryIndexInfo_Projection_ToDafny(input.Projection), Com_amazonaws_dynamodb_GlobalSecondaryIndexInfo_ProvisionedThroughput_ToDafny(input.ProvisionedThroughput), Com_amazonaws_dynamodb_GlobalSecondaryIndexInfo_OnDemandThroughput_ToDafny(input.OnDemandThroughput)) + }() +} + +func Com_amazonaws_dynamodb_GlobalSecondaryIndexInfo_IndexName_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 Com_amazonaws_dynamodb_GlobalSecondaryIndexInfo_KeySchema_ToDafny(input []types.KeySchemaElement) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + var fieldValue []interface{} = make([]interface{}, 0) + for _, val := range input { + element := Com_amazonaws_dynamodb_KeySchema_member_ToDafny(val) + fieldValue = append(fieldValue, element) + } + return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(fieldValue...)) + }() +} + +func Com_amazonaws_dynamodb_GlobalSecondaryIndexInfo_Projection_ToDafny(input *types.Projection) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(ComAmazonawsDynamodbTypes.Companion_Projection_.Create_Projection_(Com_amazonaws_dynamodb_Projection_ProjectionType_ToDafny(input.ProjectionType), Com_amazonaws_dynamodb_Projection_NonKeyAttributes_ToDafny(input.NonKeyAttributes))) + }() +} + +func Com_amazonaws_dynamodb_GlobalSecondaryIndexInfo_ProvisionedThroughput_ToDafny(input *types.ProvisionedThroughput) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(ComAmazonawsDynamodbTypes.Companion_ProvisionedThroughput_.Create_ProvisionedThroughput_(Com_amazonaws_dynamodb_ProvisionedThroughput_ReadCapacityUnits_ToDafny(input.ReadCapacityUnits), Com_amazonaws_dynamodb_ProvisionedThroughput_WriteCapacityUnits_ToDafny(input.WriteCapacityUnits))) + }() +} + +func Com_amazonaws_dynamodb_GlobalSecondaryIndexInfo_OnDemandThroughput_ToDafny(input *types.OnDemandThroughput) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(ComAmazonawsDynamodbTypes.Companion_OnDemandThroughput_.Create_OnDemandThroughput_(Com_amazonaws_dynamodb_OnDemandThroughput_MaxReadRequestUnits_ToDafny(input.MaxReadRequestUnits), Com_amazonaws_dynamodb_OnDemandThroughput_MaxWriteRequestUnits_ToDafny(input.MaxWriteRequestUnits))) + }() +} + +func Com_amazonaws_dynamodb_SourceTableFeatureDetails_StreamDescription_ToDafny(input *types.StreamSpecification) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(ComAmazonawsDynamodbTypes.Companion_StreamSpecification_.Create_StreamSpecification_(Com_amazonaws_dynamodb_StreamSpecification_StreamEnabled_ToDafny(input.StreamEnabled), Com_amazonaws_dynamodb_StreamSpecification_StreamViewType_ToDafny(input.StreamViewType))) + }() +} + +func Com_amazonaws_dynamodb_SourceTableFeatureDetails_TimeToLiveDescription_ToDafny(input *types.TimeToLiveDescription) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(ComAmazonawsDynamodbTypes.Companion_TimeToLiveDescription_.Create_TimeToLiveDescription_(Com_amazonaws_dynamodb_TimeToLiveDescription_TimeToLiveStatus_ToDafny(input.TimeToLiveStatus), Com_amazonaws_dynamodb_TimeToLiveDescription_AttributeName_ToDafny(input.AttributeName))) + }() +} + +func Com_amazonaws_dynamodb_TimeToLiveDescription_TimeToLiveStatus_ToDafny(input types.TimeToLiveStatus) Wrappers.Option { + return func() Wrappers.Option { + var index int + for _, enumVal := range input.Values() { + index++ + if enumVal == input { + break + } + if index == len(input.Values()) { + return Wrappers.Companion_Option_.Create_None_() + } + + } + var enum interface{} + for allEnums, i := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_TimeToLiveStatus_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return Wrappers.Companion_Option_.Create_Some_(enum.(ComAmazonawsDynamodbTypes.TimeToLiveStatus)) + }() +} + +func Com_amazonaws_dynamodb_TimeToLiveDescription_AttributeName_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 Com_amazonaws_dynamodb_SourceTableFeatureDetails_SSEDescription_ToDafny(input *types.SSEDescription) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(ComAmazonawsDynamodbTypes.Companion_SSEDescription_.Create_SSEDescription_(Com_amazonaws_dynamodb_SSEDescription_Status_ToDafny(input.Status), Com_amazonaws_dynamodb_SSEDescription_SSEType_ToDafny(input.SSEType), Com_amazonaws_dynamodb_SSEDescription_KMSMasterKeyArn_ToDafny(input.KMSMasterKeyArn), Com_amazonaws_dynamodb_SSEDescription_InaccessibleEncryptionDateTime_ToDafny(input.InaccessibleEncryptionDateTime))) + }() +} + +func Com_amazonaws_dynamodb_DeleteItemInput_TableName_ToDafny(input *string) dafny.Sequence { + return func() dafny.Sequence { + if input == nil { + return nil + } + return func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(*input)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }() + }() +} + +func Com_amazonaws_dynamodb_DeleteItemInput_Key_ToDafny(input map[string]types.AttributeValue) dafny.Map { + return func() dafny.Map { + + fieldValue := dafny.NewMapBuilder() + for key, val := range input { + fieldValue.Add(Com_amazonaws_dynamodb_Key_key_ToDafny(key), Com_amazonaws_dynamodb_Key_value_ToDafny(val)) + } + return fieldValue.ToMap() + }() +} + +func Com_amazonaws_dynamodb_DeleteItemInput_Expected_ToDafny(input map[string]types.ExpectedAttributeValue) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + fieldValue := dafny.NewMapBuilder() + for key, val := range input { + fieldValue.Add(Com_amazonaws_dynamodb_ExpectedAttributeMap_key_ToDafny(key), Com_amazonaws_dynamodb_ExpectedAttributeMap_value_ToDafny(val)) + } + return Wrappers.Companion_Option_.Create_Some_(fieldValue.ToMap()) + }() +} + +func Com_amazonaws_dynamodb_ExpectedAttributeMap_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 Com_amazonaws_dynamodb_ExpectedAttributeMap_value_ToDafny(input types.ExpectedAttributeValue) ComAmazonawsDynamodbTypes.ExpectedAttributeValue { + return func() ComAmazonawsDynamodbTypes.ExpectedAttributeValue { + + return ComAmazonawsDynamodbTypes.Companion_ExpectedAttributeValue_.Create_ExpectedAttributeValue_(Com_amazonaws_dynamodb_ExpectedAttributeValue_Value_ToDafny(input.Value), Com_amazonaws_dynamodb_ExpectedAttributeValue_Exists_ToDafny(input.Exists), Com_amazonaws_dynamodb_ExpectedAttributeValue_ComparisonOperator_ToDafny(input.ComparisonOperator), Com_amazonaws_dynamodb_ExpectedAttributeValue_AttributeValueList_ToDafny(input.AttributeValueList)) + }() +} + +func Com_amazonaws_dynamodb_ExpectedAttributeValue_Value_ToDafny(input types.AttributeValue) Wrappers.Option { + return func() Wrappers.Option { + switch input.(type) { + case *types.AttributeValueMemberS: + var inputToConversion = Com_amazonaws_dynamodb_AttributeValue_S_ToDafny(input.(*types.AttributeValueMemberS).Value) + return Wrappers.Companion_Option_.Create_Some_(ComAmazonawsDynamodbTypes.CompanionStruct_AttributeValue_{}.Create_S_(inputToConversion.UnwrapOr(nil).(dafny.Sequence))) + case *types.AttributeValueMemberN: + var inputToConversion = Com_amazonaws_dynamodb_AttributeValue_N_ToDafny(input.(*types.AttributeValueMemberN).Value) + return Wrappers.Companion_Option_.Create_Some_(ComAmazonawsDynamodbTypes.CompanionStruct_AttributeValue_{}.Create_N_(inputToConversion.UnwrapOr(nil).(dafny.Sequence))) + case *types.AttributeValueMemberB: + var inputToConversion = Com_amazonaws_dynamodb_AttributeValue_B_ToDafny(input.(*types.AttributeValueMemberB).Value) + return Wrappers.Companion_Option_.Create_Some_(ComAmazonawsDynamodbTypes.CompanionStruct_AttributeValue_{}.Create_B_(inputToConversion.UnwrapOr(nil).(dafny.Sequence))) + case *types.AttributeValueMemberSS: + var inputToConversion = Com_amazonaws_dynamodb_AttributeValue_SS_ToDafny(input.(*types.AttributeValueMemberSS).Value) + return Wrappers.Companion_Option_.Create_Some_(ComAmazonawsDynamodbTypes.CompanionStruct_AttributeValue_{}.Create_SS_(inputToConversion.UnwrapOr(nil).(dafny.Sequence))) + case *types.AttributeValueMemberNS: + var inputToConversion = Com_amazonaws_dynamodb_AttributeValue_NS_ToDafny(input.(*types.AttributeValueMemberNS).Value) + return Wrappers.Companion_Option_.Create_Some_(ComAmazonawsDynamodbTypes.CompanionStruct_AttributeValue_{}.Create_NS_(inputToConversion.UnwrapOr(nil).(dafny.Sequence))) + case *types.AttributeValueMemberBS: + var inputToConversion = Com_amazonaws_dynamodb_AttributeValue_BS_ToDafny(input.(*types.AttributeValueMemberBS).Value) + return Wrappers.Companion_Option_.Create_Some_(ComAmazonawsDynamodbTypes.CompanionStruct_AttributeValue_{}.Create_BS_(inputToConversion.UnwrapOr(nil).(dafny.Sequence))) + case *types.AttributeValueMemberM: + var inputToConversion = Com_amazonaws_dynamodb_AttributeValue_M_ToDafny(input.(*types.AttributeValueMemberM).Value) + return Wrappers.Companion_Option_.Create_Some_(ComAmazonawsDynamodbTypes.CompanionStruct_AttributeValue_{}.Create_M_(inputToConversion.UnwrapOr(nil).(dafny.Map))) + case *types.AttributeValueMemberL: + var inputToConversion = Com_amazonaws_dynamodb_AttributeValue_L_ToDafny(input.(*types.AttributeValueMemberL).Value) + return Wrappers.Companion_Option_.Create_Some_(ComAmazonawsDynamodbTypes.CompanionStruct_AttributeValue_{}.Create_L_(inputToConversion.UnwrapOr(nil).(dafny.Sequence))) + case *types.AttributeValueMemberNULL: + var inputToConversion = Com_amazonaws_dynamodb_AttributeValue_NULL_ToDafny(input.(*types.AttributeValueMemberNULL).Value) + return Wrappers.Companion_Option_.Create_Some_(ComAmazonawsDynamodbTypes.CompanionStruct_AttributeValue_{}.Create_NULL_(inputToConversion.UnwrapOr(nil).(bool))) + case *types.AttributeValueMemberBOOL: + var inputToConversion = Com_amazonaws_dynamodb_AttributeValue_BOOL_ToDafny(input.(*types.AttributeValueMemberBOOL).Value) + return Wrappers.Companion_Option_.Create_Some_(ComAmazonawsDynamodbTypes.CompanionStruct_AttributeValue_{}.Create_BOOL_(inputToConversion.UnwrapOr(nil).(bool))) + + default: + panic("Unhandled union type") + } + }() +} + +func Com_amazonaws_dynamodb_ExpectedAttributeValue_Exists_ToDafny(input *bool) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(*input) + }() +} + +func Com_amazonaws_dynamodb_ExpectedAttributeValue_ComparisonOperator_ToDafny(input types.ComparisonOperator) Wrappers.Option { + return func() Wrappers.Option { + var index int + for _, enumVal := range input.Values() { + index++ + if enumVal == input { + break + } + if index == len(input.Values()) { + return Wrappers.Companion_Option_.Create_None_() + } + + } + var enum interface{} + for allEnums, i := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_ComparisonOperator_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return Wrappers.Companion_Option_.Create_Some_(enum.(ComAmazonawsDynamodbTypes.ComparisonOperator)) + }() +} + +func Com_amazonaws_dynamodb_ExpectedAttributeValue_AttributeValueList_ToDafny(input []types.AttributeValue) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + var fieldValue []interface{} = make([]interface{}, 0) + for _, val := range input { + element := Com_amazonaws_dynamodb_AttributeValueList_member_ToDafny(val) + fieldValue = append(fieldValue, element) + } + return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(fieldValue...)) + }() +} + +func Com_amazonaws_dynamodb_AttributeValueList_member_ToDafny(input types.AttributeValue) ComAmazonawsDynamodbTypes.AttributeValue { + return func() ComAmazonawsDynamodbTypes.AttributeValue { + switch input.(type) { + case *types.AttributeValueMemberS: + var inputToConversion = Com_amazonaws_dynamodb_AttributeValue_S_ToDafny(input.(*types.AttributeValueMemberS).Value) + return ComAmazonawsDynamodbTypes.CompanionStruct_AttributeValue_{}.Create_S_(inputToConversion.UnwrapOr(nil).(dafny.Sequence)) + case *types.AttributeValueMemberN: + var inputToConversion = Com_amazonaws_dynamodb_AttributeValue_N_ToDafny(input.(*types.AttributeValueMemberN).Value) + return ComAmazonawsDynamodbTypes.CompanionStruct_AttributeValue_{}.Create_N_(inputToConversion.UnwrapOr(nil).(dafny.Sequence)) + case *types.AttributeValueMemberB: + var inputToConversion = Com_amazonaws_dynamodb_AttributeValue_B_ToDafny(input.(*types.AttributeValueMemberB).Value) + return ComAmazonawsDynamodbTypes.CompanionStruct_AttributeValue_{}.Create_B_(inputToConversion.UnwrapOr(nil).(dafny.Sequence)) + case *types.AttributeValueMemberSS: + var inputToConversion = Com_amazonaws_dynamodb_AttributeValue_SS_ToDafny(input.(*types.AttributeValueMemberSS).Value) + return ComAmazonawsDynamodbTypes.CompanionStruct_AttributeValue_{}.Create_SS_(inputToConversion.UnwrapOr(nil).(dafny.Sequence)) + case *types.AttributeValueMemberNS: + var inputToConversion = Com_amazonaws_dynamodb_AttributeValue_NS_ToDafny(input.(*types.AttributeValueMemberNS).Value) + return ComAmazonawsDynamodbTypes.CompanionStruct_AttributeValue_{}.Create_NS_(inputToConversion.UnwrapOr(nil).(dafny.Sequence)) + case *types.AttributeValueMemberBS: + var inputToConversion = Com_amazonaws_dynamodb_AttributeValue_BS_ToDafny(input.(*types.AttributeValueMemberBS).Value) + return ComAmazonawsDynamodbTypes.CompanionStruct_AttributeValue_{}.Create_BS_(inputToConversion.UnwrapOr(nil).(dafny.Sequence)) + case *types.AttributeValueMemberM: + var inputToConversion = Com_amazonaws_dynamodb_AttributeValue_M_ToDafny(input.(*types.AttributeValueMemberM).Value) + return ComAmazonawsDynamodbTypes.CompanionStruct_AttributeValue_{}.Create_M_(inputToConversion.UnwrapOr(nil).(dafny.Map)) + case *types.AttributeValueMemberL: + var inputToConversion = Com_amazonaws_dynamodb_AttributeValue_L_ToDafny(input.(*types.AttributeValueMemberL).Value) + return ComAmazonawsDynamodbTypes.CompanionStruct_AttributeValue_{}.Create_L_(inputToConversion.UnwrapOr(nil).(dafny.Sequence)) + case *types.AttributeValueMemberNULL: + var inputToConversion = Com_amazonaws_dynamodb_AttributeValue_NULL_ToDafny(input.(*types.AttributeValueMemberNULL).Value) + return ComAmazonawsDynamodbTypes.CompanionStruct_AttributeValue_{}.Create_NULL_(inputToConversion.UnwrapOr(nil).(bool)) + case *types.AttributeValueMemberBOOL: + var inputToConversion = Com_amazonaws_dynamodb_AttributeValue_BOOL_ToDafny(input.(*types.AttributeValueMemberBOOL).Value) + return ComAmazonawsDynamodbTypes.CompanionStruct_AttributeValue_{}.Create_BOOL_(inputToConversion.UnwrapOr(nil).(bool)) + + default: + panic("Unhandled union type") + } + }() +} + +func Com_amazonaws_dynamodb_DeleteItemInput_ConditionalOperator_ToDafny(input types.ConditionalOperator) Wrappers.Option { + return func() Wrappers.Option { + var index int + for _, enumVal := range input.Values() { + index++ + if enumVal == input { + break + } + if index == len(input.Values()) { + return Wrappers.Companion_Option_.Create_None_() + } + + } + var enum interface{} + for allEnums, i := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_ConditionalOperator_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return Wrappers.Companion_Option_.Create_Some_(enum.(ComAmazonawsDynamodbTypes.ConditionalOperator)) + }() +} + +func Com_amazonaws_dynamodb_DeleteItemInput_ReturnValues_ToDafny(input types.ReturnValue) Wrappers.Option { + return func() Wrappers.Option { + var index int + for _, enumVal := range input.Values() { + index++ + if enumVal == input { + break + } + if index == len(input.Values()) { + return Wrappers.Companion_Option_.Create_None_() + } + + } + var enum interface{} + for allEnums, i := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_ReturnValue_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return Wrappers.Companion_Option_.Create_Some_(enum.(ComAmazonawsDynamodbTypes.ReturnValue)) + }() +} + +func Com_amazonaws_dynamodb_DeleteItemInput_ReturnConsumedCapacity_ToDafny(input types.ReturnConsumedCapacity) Wrappers.Option { + return func() Wrappers.Option { + var index int + for _, enumVal := range input.Values() { + index++ + if enumVal == input { + break + } + if index == len(input.Values()) { + return Wrappers.Companion_Option_.Create_None_() + } + + } + var enum interface{} + for allEnums, i := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_ReturnConsumedCapacity_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return Wrappers.Companion_Option_.Create_Some_(enum.(ComAmazonawsDynamodbTypes.ReturnConsumedCapacity)) + }() +} + +func Com_amazonaws_dynamodb_DeleteItemInput_ReturnItemCollectionMetrics_ToDafny(input types.ReturnItemCollectionMetrics) Wrappers.Option { + return func() Wrappers.Option { + var index int + for _, enumVal := range input.Values() { + index++ + if enumVal == input { + break + } + if index == len(input.Values()) { + return Wrappers.Companion_Option_.Create_None_() + } + + } + var enum interface{} + for allEnums, i := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_ReturnItemCollectionMetrics_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return Wrappers.Companion_Option_.Create_Some_(enum.(ComAmazonawsDynamodbTypes.ReturnItemCollectionMetrics)) + }() +} + +func Com_amazonaws_dynamodb_DeleteItemInput_ConditionExpression_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 Com_amazonaws_dynamodb_DeleteItemInput_ExpressionAttributeNames_ToDafny(input map[string]string) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + fieldValue := dafny.NewMapBuilder() + for key, val := range input { + fieldValue.Add(Com_amazonaws_dynamodb_ExpressionAttributeNameMap_key_ToDafny(key), Com_amazonaws_dynamodb_ExpressionAttributeNameMap_value_ToDafny(val)) + } + return Wrappers.Companion_Option_.Create_Some_(fieldValue.ToMap()) + }() +} + +func Com_amazonaws_dynamodb_DeleteItemInput_ExpressionAttributeValues_ToDafny(input map[string]types.AttributeValue) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + fieldValue := dafny.NewMapBuilder() + for key, val := range input { + fieldValue.Add(Com_amazonaws_dynamodb_ExpressionAttributeValueMap_key_ToDafny(key), Com_amazonaws_dynamodb_ExpressionAttributeValueMap_value_ToDafny(val)) + } + return Wrappers.Companion_Option_.Create_Some_(fieldValue.ToMap()) + }() +} + +func Com_amazonaws_dynamodb_ExpressionAttributeValueMap_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 Com_amazonaws_dynamodb_ExpressionAttributeValueMap_value_ToDafny(input types.AttributeValue) ComAmazonawsDynamodbTypes.AttributeValue { + return func() ComAmazonawsDynamodbTypes.AttributeValue { + switch input.(type) { + case *types.AttributeValueMemberS: + var inputToConversion = Com_amazonaws_dynamodb_AttributeValue_S_ToDafny(input.(*types.AttributeValueMemberS).Value) + return ComAmazonawsDynamodbTypes.CompanionStruct_AttributeValue_{}.Create_S_(inputToConversion.UnwrapOr(nil).(dafny.Sequence)) + case *types.AttributeValueMemberN: + var inputToConversion = Com_amazonaws_dynamodb_AttributeValue_N_ToDafny(input.(*types.AttributeValueMemberN).Value) + return ComAmazonawsDynamodbTypes.CompanionStruct_AttributeValue_{}.Create_N_(inputToConversion.UnwrapOr(nil).(dafny.Sequence)) + case *types.AttributeValueMemberB: + var inputToConversion = Com_amazonaws_dynamodb_AttributeValue_B_ToDafny(input.(*types.AttributeValueMemberB).Value) + return ComAmazonawsDynamodbTypes.CompanionStruct_AttributeValue_{}.Create_B_(inputToConversion.UnwrapOr(nil).(dafny.Sequence)) + case *types.AttributeValueMemberSS: + var inputToConversion = Com_amazonaws_dynamodb_AttributeValue_SS_ToDafny(input.(*types.AttributeValueMemberSS).Value) + return ComAmazonawsDynamodbTypes.CompanionStruct_AttributeValue_{}.Create_SS_(inputToConversion.UnwrapOr(nil).(dafny.Sequence)) + case *types.AttributeValueMemberNS: + var inputToConversion = Com_amazonaws_dynamodb_AttributeValue_NS_ToDafny(input.(*types.AttributeValueMemberNS).Value) + return ComAmazonawsDynamodbTypes.CompanionStruct_AttributeValue_{}.Create_NS_(inputToConversion.UnwrapOr(nil).(dafny.Sequence)) + case *types.AttributeValueMemberBS: + var inputToConversion = Com_amazonaws_dynamodb_AttributeValue_BS_ToDafny(input.(*types.AttributeValueMemberBS).Value) + return ComAmazonawsDynamodbTypes.CompanionStruct_AttributeValue_{}.Create_BS_(inputToConversion.UnwrapOr(nil).(dafny.Sequence)) + case *types.AttributeValueMemberM: + var inputToConversion = Com_amazonaws_dynamodb_AttributeValue_M_ToDafny(input.(*types.AttributeValueMemberM).Value) + return ComAmazonawsDynamodbTypes.CompanionStruct_AttributeValue_{}.Create_M_(inputToConversion.UnwrapOr(nil).(dafny.Map)) + case *types.AttributeValueMemberL: + var inputToConversion = Com_amazonaws_dynamodb_AttributeValue_L_ToDafny(input.(*types.AttributeValueMemberL).Value) + return ComAmazonawsDynamodbTypes.CompanionStruct_AttributeValue_{}.Create_L_(inputToConversion.UnwrapOr(nil).(dafny.Sequence)) + case *types.AttributeValueMemberNULL: + var inputToConversion = Com_amazonaws_dynamodb_AttributeValue_NULL_ToDafny(input.(*types.AttributeValueMemberNULL).Value) + return ComAmazonawsDynamodbTypes.CompanionStruct_AttributeValue_{}.Create_NULL_(inputToConversion.UnwrapOr(nil).(bool)) + case *types.AttributeValueMemberBOOL: + var inputToConversion = Com_amazonaws_dynamodb_AttributeValue_BOOL_ToDafny(input.(*types.AttributeValueMemberBOOL).Value) + return ComAmazonawsDynamodbTypes.CompanionStruct_AttributeValue_{}.Create_BOOL_(inputToConversion.UnwrapOr(nil).(bool)) + + default: + panic("Unhandled union type") + } + }() +} + +func Com_amazonaws_dynamodb_DeleteItemInput_ReturnValuesOnConditionCheckFailure_ToDafny(input types.ReturnValuesOnConditionCheckFailure) Wrappers.Option { + return func() Wrappers.Option { + var index int + for _, enumVal := range input.Values() { + index++ + if enumVal == input { + break + } + if index == len(input.Values()) { + return Wrappers.Companion_Option_.Create_None_() + } + + } + var enum interface{} + for allEnums, i := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_ReturnValuesOnConditionCheckFailure_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return Wrappers.Companion_Option_.Create_Some_(enum.(ComAmazonawsDynamodbTypes.ReturnValuesOnConditionCheckFailure)) + }() +} + +func Com_amazonaws_dynamodb_DeleteItemOutput_Attributes_ToDafny(input map[string]types.AttributeValue) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + fieldValue := dafny.NewMapBuilder() + for key, val := range input { + fieldValue.Add(Com_amazonaws_dynamodb_AttributeMap_key_ToDafny(key), Com_amazonaws_dynamodb_AttributeMap_value_ToDafny(val)) + } + return Wrappers.Companion_Option_.Create_Some_(fieldValue.ToMap()) + }() +} + +func Com_amazonaws_dynamodb_DeleteItemOutput_ConsumedCapacity_ToDafny(input *types.ConsumedCapacity) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(ComAmazonawsDynamodbTypes.Companion_ConsumedCapacity_.Create_ConsumedCapacity_(Com_amazonaws_dynamodb_ConsumedCapacity_TableName_ToDafny(input.TableName), Com_amazonaws_dynamodb_ConsumedCapacity_CapacityUnits_ToDafny(input.CapacityUnits), Com_amazonaws_dynamodb_ConsumedCapacity_ReadCapacityUnits_ToDafny(input.ReadCapacityUnits), Com_amazonaws_dynamodb_ConsumedCapacity_WriteCapacityUnits_ToDafny(input.WriteCapacityUnits), Com_amazonaws_dynamodb_ConsumedCapacity_Table_ToDafny(input.Table), Com_amazonaws_dynamodb_ConsumedCapacity_LocalSecondaryIndexes_ToDafny(input.LocalSecondaryIndexes), Com_amazonaws_dynamodb_ConsumedCapacity_GlobalSecondaryIndexes_ToDafny(input.GlobalSecondaryIndexes))) + }() +} + +func Com_amazonaws_dynamodb_DeleteItemOutput_ItemCollectionMetrics_ToDafny(input *types.ItemCollectionMetrics) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(ComAmazonawsDynamodbTypes.Companion_ItemCollectionMetrics_.Create_ItemCollectionMetrics_(Com_amazonaws_dynamodb_ItemCollectionMetrics_ItemCollectionKey_ToDafny(input.ItemCollectionKey), Com_amazonaws_dynamodb_ItemCollectionMetrics_SizeEstimateRangeGB_ToDafny(input.SizeEstimateRangeGB))) + }() +} + +func Com_amazonaws_dynamodb_DeleteResourcePolicyInput_ResourceArn_ToDafny(input *string) dafny.Sequence { + return func() dafny.Sequence { + if input == nil { + return nil + } + return func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(*input)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }() + }() +} + +func Com_amazonaws_dynamodb_DeleteResourcePolicyInput_ExpectedRevisionId_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 Com_amazonaws_dynamodb_DeleteResourcePolicyOutput_RevisionId_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 Com_amazonaws_dynamodb_DeleteTableInput_TableName_ToDafny(input *string) dafny.Sequence { + return func() dafny.Sequence { + if input == nil { + return nil + } + return func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(*input)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }() + }() +} + +func Com_amazonaws_dynamodb_DeleteTableOutput_TableDescription_ToDafny(input *types.TableDescription) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(ComAmazonawsDynamodbTypes.Companion_TableDescription_.Create_TableDescription_(Com_amazonaws_dynamodb_TableDescription_AttributeDefinitions_ToDafny(input.AttributeDefinitions), Com_amazonaws_dynamodb_TableDescription_TableName_ToDafny(input.TableName), Com_amazonaws_dynamodb_TableDescription_KeySchema_ToDafny(input.KeySchema), Com_amazonaws_dynamodb_TableDescription_TableStatus_ToDafny(input.TableStatus), Com_amazonaws_dynamodb_TableDescription_CreationDateTime_ToDafny(input.CreationDateTime), Com_amazonaws_dynamodb_TableDescription_ProvisionedThroughput_ToDafny(input.ProvisionedThroughput), Com_amazonaws_dynamodb_TableDescription_TableSizeBytes_ToDafny(input.TableSizeBytes), Com_amazonaws_dynamodb_TableDescription_ItemCount_ToDafny(input.ItemCount), Com_amazonaws_dynamodb_TableDescription_TableArn_ToDafny(input.TableArn), Com_amazonaws_dynamodb_TableDescription_TableId_ToDafny(input.TableId), Com_amazonaws_dynamodb_TableDescription_BillingModeSummary_ToDafny(input.BillingModeSummary), Com_amazonaws_dynamodb_TableDescription_LocalSecondaryIndexes_ToDafny(input.LocalSecondaryIndexes), Com_amazonaws_dynamodb_TableDescription_GlobalSecondaryIndexes_ToDafny(input.GlobalSecondaryIndexes), Com_amazonaws_dynamodb_TableDescription_StreamSpecification_ToDafny(input.StreamSpecification), Com_amazonaws_dynamodb_TableDescription_LatestStreamLabel_ToDafny(input.LatestStreamLabel), Com_amazonaws_dynamodb_TableDescription_LatestStreamArn_ToDafny(input.LatestStreamArn), Com_amazonaws_dynamodb_TableDescription_GlobalTableVersion_ToDafny(input.GlobalTableVersion), Com_amazonaws_dynamodb_TableDescription_Replicas_ToDafny(input.Replicas), Com_amazonaws_dynamodb_TableDescription_RestoreSummary_ToDafny(input.RestoreSummary), Com_amazonaws_dynamodb_TableDescription_SSEDescription_ToDafny(input.SSEDescription), Com_amazonaws_dynamodb_TableDescription_ArchivalSummary_ToDafny(input.ArchivalSummary), Com_amazonaws_dynamodb_TableDescription_TableClassSummary_ToDafny(input.TableClassSummary), Com_amazonaws_dynamodb_TableDescription_DeletionProtectionEnabled_ToDafny(input.DeletionProtectionEnabled), Com_amazonaws_dynamodb_TableDescription_OnDemandThroughput_ToDafny(input.OnDemandThroughput))) + }() +} + +func Com_amazonaws_dynamodb_DescribeBackupInput_BackupArn_ToDafny(input *string) dafny.Sequence { + return func() dafny.Sequence { + if input == nil { + return nil + } + return func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(*input)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }() + }() +} + +func Com_amazonaws_dynamodb_DescribeBackupOutput_BackupDescription_ToDafny(input *types.BackupDescription) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(ComAmazonawsDynamodbTypes.Companion_BackupDescription_.Create_BackupDescription_(Com_amazonaws_dynamodb_BackupDescription_BackupDetails_ToDafny(input.BackupDetails), Com_amazonaws_dynamodb_BackupDescription_SourceTableDetails_ToDafny(input.SourceTableDetails), Com_amazonaws_dynamodb_BackupDescription_SourceTableFeatureDetails_ToDafny(input.SourceTableFeatureDetails))) + }() +} + +func Com_amazonaws_dynamodb_DescribeContinuousBackupsInput_TableName_ToDafny(input *string) dafny.Sequence { + return func() dafny.Sequence { + if input == nil { + return nil + } + return func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(*input)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }() + }() +} + +func Com_amazonaws_dynamodb_DescribeContinuousBackupsOutput_ContinuousBackupsDescription_ToDafny(input *types.ContinuousBackupsDescription) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(ComAmazonawsDynamodbTypes.Companion_ContinuousBackupsDescription_.Create_ContinuousBackupsDescription_(Com_amazonaws_dynamodb_ContinuousBackupsDescription_ContinuousBackupsStatus_ToDafny(input.ContinuousBackupsStatus), Com_amazonaws_dynamodb_ContinuousBackupsDescription_PointInTimeRecoveryDescription_ToDafny(input.PointInTimeRecoveryDescription))) + }() +} + +func Com_amazonaws_dynamodb_ContinuousBackupsDescription_ContinuousBackupsStatus_ToDafny(input types.ContinuousBackupsStatus) ComAmazonawsDynamodbTypes.ContinuousBackupsStatus { + return func() ComAmazonawsDynamodbTypes.ContinuousBackupsStatus { + 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(ComAmazonawsDynamodbTypes.CompanionStruct_ContinuousBackupsStatus_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return enum.(ComAmazonawsDynamodbTypes.ContinuousBackupsStatus) + }() +} + +func Com_amazonaws_dynamodb_ContinuousBackupsDescription_PointInTimeRecoveryDescription_ToDafny(input *types.PointInTimeRecoveryDescription) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(ComAmazonawsDynamodbTypes.Companion_PointInTimeRecoveryDescription_.Create_PointInTimeRecoveryDescription_(Com_amazonaws_dynamodb_PointInTimeRecoveryDescription_PointInTimeRecoveryStatus_ToDafny(input.PointInTimeRecoveryStatus), Com_amazonaws_dynamodb_PointInTimeRecoveryDescription_EarliestRestorableDateTime_ToDafny(input.EarliestRestorableDateTime), Com_amazonaws_dynamodb_PointInTimeRecoveryDescription_LatestRestorableDateTime_ToDafny(input.LatestRestorableDateTime))) + }() +} + +func Com_amazonaws_dynamodb_PointInTimeRecoveryDescription_PointInTimeRecoveryStatus_ToDafny(input types.PointInTimeRecoveryStatus) Wrappers.Option { + return func() Wrappers.Option { + var index int + for _, enumVal := range input.Values() { + index++ + if enumVal == input { + break + } + if index == len(input.Values()) { + return Wrappers.Companion_Option_.Create_None_() + } + + } + var enum interface{} + for allEnums, i := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_PointInTimeRecoveryStatus_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return Wrappers.Companion_Option_.Create_Some_(enum.(ComAmazonawsDynamodbTypes.PointInTimeRecoveryStatus)) + }() +} + +func Com_amazonaws_dynamodb_PointInTimeRecoveryDescription_EarliestRestorableDateTime_ToDafny(input *time.Time) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + formattedTime := input.Format("2006-01-02T15:04:05.999999Z") + return Wrappers.Companion_Option_.Create_Some_(func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(formattedTime)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }()) + }() +} + +func Com_amazonaws_dynamodb_PointInTimeRecoveryDescription_LatestRestorableDateTime_ToDafny(input *time.Time) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + formattedTime := input.Format("2006-01-02T15:04:05.999999Z") + return Wrappers.Companion_Option_.Create_Some_(func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(formattedTime)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }()) + }() +} + +func Com_amazonaws_dynamodb_DescribeContributorInsightsInput_TableName_ToDafny(input *string) dafny.Sequence { + return func() dafny.Sequence { + if input == nil { + return nil + } + return func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(*input)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }() + }() +} + +func Com_amazonaws_dynamodb_DescribeContributorInsightsInput_IndexName_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 Com_amazonaws_dynamodb_DescribeContributorInsightsOutput_TableName_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 Com_amazonaws_dynamodb_DescribeContributorInsightsOutput_IndexName_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 Com_amazonaws_dynamodb_DescribeContributorInsightsOutput_ContributorInsightsRuleList_ToDafny(input []string) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + var fieldValue []interface{} = make([]interface{}, 0) + for _, val := range input { + element := Com_amazonaws_dynamodb_ContributorInsightsRuleList_member_ToDafny(val) + fieldValue = append(fieldValue, element) + } + return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(fieldValue...)) + }() +} + +func Com_amazonaws_dynamodb_ContributorInsightsRuleList_member_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 Com_amazonaws_dynamodb_DescribeContributorInsightsOutput_ContributorInsightsStatus_ToDafny(input types.ContributorInsightsStatus) Wrappers.Option { + return func() Wrappers.Option { + var index int + for _, enumVal := range input.Values() { + index++ + if enumVal == input { + break + } + if index == len(input.Values()) { + return Wrappers.Companion_Option_.Create_None_() + } + + } + var enum interface{} + for allEnums, i := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_ContributorInsightsStatus_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return Wrappers.Companion_Option_.Create_Some_(enum.(ComAmazonawsDynamodbTypes.ContributorInsightsStatus)) + }() +} + +func Com_amazonaws_dynamodb_DescribeContributorInsightsOutput_LastUpdateDateTime_ToDafny(input *time.Time) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + formattedTime := input.Format("2006-01-02T15:04:05.999999Z") + return Wrappers.Companion_Option_.Create_Some_(func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(formattedTime)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }()) + }() +} + +func Com_amazonaws_dynamodb_DescribeContributorInsightsOutput_FailureException_ToDafny(input *types.FailureException) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(ComAmazonawsDynamodbTypes.Companion_FailureException_.Create_FailureException_(Com_amazonaws_dynamodb_FailureException_ExceptionName_ToDafny(input.ExceptionName), Com_amazonaws_dynamodb_FailureException_ExceptionDescription_ToDafny(input.ExceptionDescription))) + }() +} + +func Com_amazonaws_dynamodb_FailureException_ExceptionName_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 Com_amazonaws_dynamodb_FailureException_ExceptionDescription_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 Com_amazonaws_dynamodb_DescribeEndpointsResponse_Endpoints_ToDafny(input []types.Endpoint) dafny.Sequence { + return func() dafny.Sequence { + if input == nil { + return nil + } + var fieldValue []interface{} = make([]interface{}, 0) + for _, val := range input { + element := Com_amazonaws_dynamodb_Endpoints_member_ToDafny(val) + fieldValue = append(fieldValue, element) + } + return dafny.SeqOf(fieldValue...) + }() +} + +func Com_amazonaws_dynamodb_Endpoints_member_ToDafny(input types.Endpoint) ComAmazonawsDynamodbTypes.Endpoint { + return func() ComAmazonawsDynamodbTypes.Endpoint { + + return ComAmazonawsDynamodbTypes.Companion_Endpoint_.Create_Endpoint_(Com_amazonaws_dynamodb_Endpoint_Address_ToDafny(input.Address), Com_amazonaws_dynamodb_Endpoint_CachePeriodInMinutes_ToDafny(input.CachePeriodInMinutes)) + }() +} + +func Com_amazonaws_dynamodb_Endpoint_Address_ToDafny(input *string) dafny.Sequence { + return func() dafny.Sequence { + if input == nil { + return nil + } + return func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(*input)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }() + }() +} + +func Com_amazonaws_dynamodb_Endpoint_CachePeriodInMinutes_ToDafny(input int64) int64 { + return func() int64 { + + return input + }() +} + +func Com_amazonaws_dynamodb_DescribeExportInput_ExportArn_ToDafny(input *string) dafny.Sequence { + return func() dafny.Sequence { + if input == nil { + return nil + } + return func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(*input)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }() + }() +} + +func Com_amazonaws_dynamodb_DescribeExportOutput_ExportDescription_ToDafny(input *types.ExportDescription) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(ComAmazonawsDynamodbTypes.Companion_ExportDescription_.Create_ExportDescription_(Com_amazonaws_dynamodb_ExportDescription_ExportArn_ToDafny(input.ExportArn), Com_amazonaws_dynamodb_ExportDescription_ExportStatus_ToDafny(input.ExportStatus), Com_amazonaws_dynamodb_ExportDescription_StartTime_ToDafny(input.StartTime), Com_amazonaws_dynamodb_ExportDescription_EndTime_ToDafny(input.EndTime), Com_amazonaws_dynamodb_ExportDescription_ExportManifest_ToDafny(input.ExportManifest), Com_amazonaws_dynamodb_ExportDescription_TableArn_ToDafny(input.TableArn), Com_amazonaws_dynamodb_ExportDescription_TableId_ToDafny(input.TableId), Com_amazonaws_dynamodb_ExportDescription_ExportTime_ToDafny(input.ExportTime), Com_amazonaws_dynamodb_ExportDescription_ClientToken_ToDafny(input.ClientToken), Com_amazonaws_dynamodb_ExportDescription_S3Bucket_ToDafny(input.S3Bucket), Com_amazonaws_dynamodb_ExportDescription_S3BucketOwner_ToDafny(input.S3BucketOwner), Com_amazonaws_dynamodb_ExportDescription_S3Prefix_ToDafny(input.S3Prefix), Com_amazonaws_dynamodb_ExportDescription_S3SseAlgorithm_ToDafny(input.S3SseAlgorithm), Com_amazonaws_dynamodb_ExportDescription_S3SseKmsKeyId_ToDafny(input.S3SseKmsKeyId), Com_amazonaws_dynamodb_ExportDescription_FailureCode_ToDafny(input.FailureCode), Com_amazonaws_dynamodb_ExportDescription_FailureMessage_ToDafny(input.FailureMessage), Com_amazonaws_dynamodb_ExportDescription_ExportFormat_ToDafny(input.ExportFormat), Com_amazonaws_dynamodb_ExportDescription_BilledSizeBytes_ToDafny(input.BilledSizeBytes), Com_amazonaws_dynamodb_ExportDescription_ItemCount_ToDafny(input.ItemCount), Com_amazonaws_dynamodb_ExportDescription_ExportType_ToDafny(input.ExportType), Com_amazonaws_dynamodb_ExportDescription_IncrementalExportSpecification_ToDafny(input.IncrementalExportSpecification))) + }() +} + +func Com_amazonaws_dynamodb_ExportDescription_ExportArn_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 Com_amazonaws_dynamodb_ExportDescription_ExportStatus_ToDafny(input types.ExportStatus) Wrappers.Option { + return func() Wrappers.Option { + var index int + for _, enumVal := range input.Values() { + index++ + if enumVal == input { + break + } + if index == len(input.Values()) { + return Wrappers.Companion_Option_.Create_None_() + } + + } + var enum interface{} + for allEnums, i := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_ExportStatus_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return Wrappers.Companion_Option_.Create_Some_(enum.(ComAmazonawsDynamodbTypes.ExportStatus)) + }() +} + +func Com_amazonaws_dynamodb_ExportDescription_StartTime_ToDafny(input *time.Time) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + formattedTime := input.Format("2006-01-02T15:04:05.999999Z") + return Wrappers.Companion_Option_.Create_Some_(func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(formattedTime)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }()) + }() +} + +func Com_amazonaws_dynamodb_ExportDescription_EndTime_ToDafny(input *time.Time) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + formattedTime := input.Format("2006-01-02T15:04:05.999999Z") + return Wrappers.Companion_Option_.Create_Some_(func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(formattedTime)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }()) + }() +} + +func Com_amazonaws_dynamodb_ExportDescription_ExportManifest_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 Com_amazonaws_dynamodb_ExportDescription_TableArn_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 Com_amazonaws_dynamodb_ExportDescription_TableId_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 Com_amazonaws_dynamodb_ExportDescription_ExportTime_ToDafny(input *time.Time) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + formattedTime := input.Format("2006-01-02T15:04:05.999999Z") + return Wrappers.Companion_Option_.Create_Some_(func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(formattedTime)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }()) + }() +} + +func Com_amazonaws_dynamodb_ExportDescription_ClientToken_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 Com_amazonaws_dynamodb_ExportDescription_S3Bucket_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 Com_amazonaws_dynamodb_ExportDescription_S3BucketOwner_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 Com_amazonaws_dynamodb_ExportDescription_S3Prefix_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 Com_amazonaws_dynamodb_ExportDescription_S3SseAlgorithm_ToDafny(input types.S3SseAlgorithm) Wrappers.Option { + return func() Wrappers.Option { + var index int + for _, enumVal := range input.Values() { + index++ + if enumVal == input { + break + } + if index == len(input.Values()) { + return Wrappers.Companion_Option_.Create_None_() + } + + } + var enum interface{} + for allEnums, i := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_S3SseAlgorithm_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return Wrappers.Companion_Option_.Create_Some_(enum.(ComAmazonawsDynamodbTypes.S3SseAlgorithm)) + }() +} + +func Com_amazonaws_dynamodb_ExportDescription_S3SseKmsKeyId_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 Com_amazonaws_dynamodb_ExportDescription_FailureCode_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 Com_amazonaws_dynamodb_ExportDescription_FailureMessage_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 Com_amazonaws_dynamodb_ExportDescription_ExportFormat_ToDafny(input types.ExportFormat) Wrappers.Option { + return func() Wrappers.Option { + var index int + for _, enumVal := range input.Values() { + index++ + if enumVal == input { + break + } + if index == len(input.Values()) { + return Wrappers.Companion_Option_.Create_None_() + } + + } + var enum interface{} + for allEnums, i := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_ExportFormat_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return Wrappers.Companion_Option_.Create_Some_(enum.(ComAmazonawsDynamodbTypes.ExportFormat)) + }() +} + +func Com_amazonaws_dynamodb_ExportDescription_BilledSizeBytes_ToDafny(input *int64) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(*input) + }() +} + +func Com_amazonaws_dynamodb_ExportDescription_ItemCount_ToDafny(input *int64) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(*input) + }() +} + +func Com_amazonaws_dynamodb_ExportDescription_ExportType_ToDafny(input types.ExportType) Wrappers.Option { + return func() Wrappers.Option { + var index int + for _, enumVal := range input.Values() { + index++ + if enumVal == input { + break + } + if index == len(input.Values()) { + return Wrappers.Companion_Option_.Create_None_() + } + + } + var enum interface{} + for allEnums, i := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_ExportType_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return Wrappers.Companion_Option_.Create_Some_(enum.(ComAmazonawsDynamodbTypes.ExportType)) + }() +} + +func Com_amazonaws_dynamodb_ExportDescription_IncrementalExportSpecification_ToDafny(input *types.IncrementalExportSpecification) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(ComAmazonawsDynamodbTypes.Companion_IncrementalExportSpecification_.Create_IncrementalExportSpecification_(Com_amazonaws_dynamodb_IncrementalExportSpecification_ExportFromTime_ToDafny(input.ExportFromTime), Com_amazonaws_dynamodb_IncrementalExportSpecification_ExportToTime_ToDafny(input.ExportToTime), Com_amazonaws_dynamodb_IncrementalExportSpecification_ExportViewType_ToDafny(input.ExportViewType))) + }() +} + +func Com_amazonaws_dynamodb_IncrementalExportSpecification_ExportFromTime_ToDafny(input *time.Time) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + formattedTime := input.Format("2006-01-02T15:04:05.999999Z") + return Wrappers.Companion_Option_.Create_Some_(func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(formattedTime)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }()) + }() +} + +func Com_amazonaws_dynamodb_IncrementalExportSpecification_ExportToTime_ToDafny(input *time.Time) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + formattedTime := input.Format("2006-01-02T15:04:05.999999Z") + return Wrappers.Companion_Option_.Create_Some_(func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(formattedTime)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }()) + }() +} + +func Com_amazonaws_dynamodb_IncrementalExportSpecification_ExportViewType_ToDafny(input types.ExportViewType) Wrappers.Option { + return func() Wrappers.Option { + var index int + for _, enumVal := range input.Values() { + index++ + if enumVal == input { + break + } + if index == len(input.Values()) { + return Wrappers.Companion_Option_.Create_None_() + } + + } + var enum interface{} + for allEnums, i := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_ExportViewType_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return Wrappers.Companion_Option_.Create_Some_(enum.(ComAmazonawsDynamodbTypes.ExportViewType)) + }() +} + +func Com_amazonaws_dynamodb_DescribeGlobalTableInput_GlobalTableName_ToDafny(input *string) dafny.Sequence { + return func() dafny.Sequence { + if input == nil { + return nil + } + return func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(*input)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }() + }() +} + +func Com_amazonaws_dynamodb_DescribeGlobalTableOutput_GlobalTableDescription_ToDafny(input *types.GlobalTableDescription) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(ComAmazonawsDynamodbTypes.Companion_GlobalTableDescription_.Create_GlobalTableDescription_(Com_amazonaws_dynamodb_GlobalTableDescription_ReplicationGroup_ToDafny(input.ReplicationGroup), Com_amazonaws_dynamodb_GlobalTableDescription_GlobalTableArn_ToDafny(input.GlobalTableArn), Com_amazonaws_dynamodb_GlobalTableDescription_CreationDateTime_ToDafny(input.CreationDateTime), Com_amazonaws_dynamodb_GlobalTableDescription_GlobalTableStatus_ToDafny(input.GlobalTableStatus), Com_amazonaws_dynamodb_GlobalTableDescription_GlobalTableName_ToDafny(input.GlobalTableName))) + }() +} + +func Com_amazonaws_dynamodb_DescribeGlobalTableSettingsInput_GlobalTableName_ToDafny(input *string) dafny.Sequence { + return func() dafny.Sequence { + if input == nil { + return nil + } + return func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(*input)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }() + }() +} + +func Com_amazonaws_dynamodb_DescribeGlobalTableSettingsOutput_GlobalTableName_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 Com_amazonaws_dynamodb_DescribeGlobalTableSettingsOutput_ReplicaSettings_ToDafny(input []types.ReplicaSettingsDescription) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + var fieldValue []interface{} = make([]interface{}, 0) + for _, val := range input { + element := Com_amazonaws_dynamodb_ReplicaSettingsDescriptionList_member_ToDafny(val) + fieldValue = append(fieldValue, element) + } + return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(fieldValue...)) + }() +} + +func Com_amazonaws_dynamodb_ReplicaSettingsDescriptionList_member_ToDafny(input types.ReplicaSettingsDescription) ComAmazonawsDynamodbTypes.ReplicaSettingsDescription { + return func() ComAmazonawsDynamodbTypes.ReplicaSettingsDescription { + + return ComAmazonawsDynamodbTypes.Companion_ReplicaSettingsDescription_.Create_ReplicaSettingsDescription_(Com_amazonaws_dynamodb_ReplicaSettingsDescription_RegionName_ToDafny(input.RegionName), Com_amazonaws_dynamodb_ReplicaSettingsDescription_ReplicaStatus_ToDafny(input.ReplicaStatus), Com_amazonaws_dynamodb_ReplicaSettingsDescription_ReplicaBillingModeSummary_ToDafny(input.ReplicaBillingModeSummary), Com_amazonaws_dynamodb_ReplicaSettingsDescription_ReplicaProvisionedReadCapacityUnits_ToDafny(input.ReplicaProvisionedReadCapacityUnits), Com_amazonaws_dynamodb_ReplicaSettingsDescription_ReplicaProvisionedReadCapacityAutoScalingSettings_ToDafny(input.ReplicaProvisionedReadCapacityAutoScalingSettings), Com_amazonaws_dynamodb_ReplicaSettingsDescription_ReplicaProvisionedWriteCapacityUnits_ToDafny(input.ReplicaProvisionedWriteCapacityUnits), Com_amazonaws_dynamodb_ReplicaSettingsDescription_ReplicaProvisionedWriteCapacityAutoScalingSettings_ToDafny(input.ReplicaProvisionedWriteCapacityAutoScalingSettings), Com_amazonaws_dynamodb_ReplicaSettingsDescription_ReplicaGlobalSecondaryIndexSettings_ToDafny(input.ReplicaGlobalSecondaryIndexSettings), Com_amazonaws_dynamodb_ReplicaSettingsDescription_ReplicaTableClassSummary_ToDafny(input.ReplicaTableClassSummary)) + }() +} + +func Com_amazonaws_dynamodb_ReplicaSettingsDescription_RegionName_ToDafny(input *string) dafny.Sequence { + return func() dafny.Sequence { + if input == nil { + return nil + } + return func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(*input)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }() + }() +} + +func Com_amazonaws_dynamodb_ReplicaSettingsDescription_ReplicaStatus_ToDafny(input types.ReplicaStatus) Wrappers.Option { + return func() Wrappers.Option { + var index int + for _, enumVal := range input.Values() { + index++ + if enumVal == input { + break + } + if index == len(input.Values()) { + return Wrappers.Companion_Option_.Create_None_() + } + + } + var enum interface{} + for allEnums, i := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_ReplicaStatus_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return Wrappers.Companion_Option_.Create_Some_(enum.(ComAmazonawsDynamodbTypes.ReplicaStatus)) + }() +} + +func Com_amazonaws_dynamodb_ReplicaSettingsDescription_ReplicaBillingModeSummary_ToDafny(input *types.BillingModeSummary) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(ComAmazonawsDynamodbTypes.Companion_BillingModeSummary_.Create_BillingModeSummary_(Com_amazonaws_dynamodb_BillingModeSummary_BillingMode_ToDafny(input.BillingMode), Com_amazonaws_dynamodb_BillingModeSummary_LastUpdateToPayPerRequestDateTime_ToDafny(input.LastUpdateToPayPerRequestDateTime))) + }() +} + +func Com_amazonaws_dynamodb_ReplicaSettingsDescription_ReplicaProvisionedReadCapacityUnits_ToDafny(input *int64) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(*input) + }() +} + +func Com_amazonaws_dynamodb_ReplicaSettingsDescription_ReplicaProvisionedReadCapacityAutoScalingSettings_ToDafny(input *types.AutoScalingSettingsDescription) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(ComAmazonawsDynamodbTypes.Companion_AutoScalingSettingsDescription_.Create_AutoScalingSettingsDescription_(Com_amazonaws_dynamodb_AutoScalingSettingsDescription_MinimumUnits_ToDafny(input.MinimumUnits), Com_amazonaws_dynamodb_AutoScalingSettingsDescription_MaximumUnits_ToDafny(input.MaximumUnits), Com_amazonaws_dynamodb_AutoScalingSettingsDescription_AutoScalingDisabled_ToDafny(input.AutoScalingDisabled), Com_amazonaws_dynamodb_AutoScalingSettingsDescription_AutoScalingRoleArn_ToDafny(input.AutoScalingRoleArn), Com_amazonaws_dynamodb_AutoScalingSettingsDescription_ScalingPolicies_ToDafny(input.ScalingPolicies))) + }() +} + +func Com_amazonaws_dynamodb_AutoScalingSettingsDescription_MinimumUnits_ToDafny(input *int64) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(*input) + }() +} + +func Com_amazonaws_dynamodb_AutoScalingSettingsDescription_MaximumUnits_ToDafny(input *int64) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(*input) + }() +} + +func Com_amazonaws_dynamodb_AutoScalingSettingsDescription_AutoScalingDisabled_ToDafny(input *bool) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(*input) + }() +} + +func Com_amazonaws_dynamodb_AutoScalingSettingsDescription_AutoScalingRoleArn_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 Com_amazonaws_dynamodb_AutoScalingSettingsDescription_ScalingPolicies_ToDafny(input []types.AutoScalingPolicyDescription) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + var fieldValue []interface{} = make([]interface{}, 0) + for _, val := range input { + element := Com_amazonaws_dynamodb_AutoScalingPolicyDescriptionList_member_ToDafny(val) + fieldValue = append(fieldValue, element) + } + return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(fieldValue...)) + }() +} + +func Com_amazonaws_dynamodb_AutoScalingPolicyDescriptionList_member_ToDafny(input types.AutoScalingPolicyDescription) ComAmazonawsDynamodbTypes.AutoScalingPolicyDescription { + return func() ComAmazonawsDynamodbTypes.AutoScalingPolicyDescription { + + return ComAmazonawsDynamodbTypes.Companion_AutoScalingPolicyDescription_.Create_AutoScalingPolicyDescription_(Com_amazonaws_dynamodb_AutoScalingPolicyDescription_PolicyName_ToDafny(input.PolicyName), Com_amazonaws_dynamodb_AutoScalingPolicyDescription_TargetTrackingScalingPolicyConfiguration_ToDafny(input.TargetTrackingScalingPolicyConfiguration)) + }() +} + +func Com_amazonaws_dynamodb_AutoScalingPolicyDescription_PolicyName_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 Com_amazonaws_dynamodb_AutoScalingPolicyDescription_TargetTrackingScalingPolicyConfiguration_ToDafny(input *types.AutoScalingTargetTrackingScalingPolicyConfigurationDescription) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(ComAmazonawsDynamodbTypes.Companion_AutoScalingTargetTrackingScalingPolicyConfigurationDescription_.Create_AutoScalingTargetTrackingScalingPolicyConfigurationDescription_(Com_amazonaws_dynamodb_AutoScalingTargetTrackingScalingPolicyConfigurationDescription_DisableScaleIn_ToDafny(input.DisableScaleIn), Com_amazonaws_dynamodb_AutoScalingTargetTrackingScalingPolicyConfigurationDescription_ScaleInCooldown_ToDafny(input.ScaleInCooldown), Com_amazonaws_dynamodb_AutoScalingTargetTrackingScalingPolicyConfigurationDescription_ScaleOutCooldown_ToDafny(input.ScaleOutCooldown), Com_amazonaws_dynamodb_AutoScalingTargetTrackingScalingPolicyConfigurationDescription_TargetValue_ToDafny(input.TargetValue))) + }() +} + +func Com_amazonaws_dynamodb_AutoScalingTargetTrackingScalingPolicyConfigurationDescription_DisableScaleIn_ToDafny(input *bool) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(*input) + }() +} + +func Com_amazonaws_dynamodb_AutoScalingTargetTrackingScalingPolicyConfigurationDescription_ScaleInCooldown_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 Com_amazonaws_dynamodb_AutoScalingTargetTrackingScalingPolicyConfigurationDescription_ScaleOutCooldown_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 Com_amazonaws_dynamodb_AutoScalingTargetTrackingScalingPolicyConfigurationDescription_TargetValue_ToDafny(input *float64) dafny.Sequence { + return func() dafny.Sequence { + if input == nil { + return dafny.SeqOf() + } + var bits = math.Float64bits(*input) + var bytes = make([]byte, 8) + binary.LittleEndian.PutUint64(bytes, bits) + var v []interface{} + for _, e := range bytes { + v = append(v, e) + } + return dafny.SeqOf(v...) + }() +} + +func Com_amazonaws_dynamodb_ReplicaSettingsDescription_ReplicaProvisionedWriteCapacityUnits_ToDafny(input *int64) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(*input) + }() +} + +func Com_amazonaws_dynamodb_ReplicaSettingsDescription_ReplicaProvisionedWriteCapacityAutoScalingSettings_ToDafny(input *types.AutoScalingSettingsDescription) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(ComAmazonawsDynamodbTypes.Companion_AutoScalingSettingsDescription_.Create_AutoScalingSettingsDescription_(Com_amazonaws_dynamodb_AutoScalingSettingsDescription_MinimumUnits_ToDafny(input.MinimumUnits), Com_amazonaws_dynamodb_AutoScalingSettingsDescription_MaximumUnits_ToDafny(input.MaximumUnits), Com_amazonaws_dynamodb_AutoScalingSettingsDescription_AutoScalingDisabled_ToDafny(input.AutoScalingDisabled), Com_amazonaws_dynamodb_AutoScalingSettingsDescription_AutoScalingRoleArn_ToDafny(input.AutoScalingRoleArn), Com_amazonaws_dynamodb_AutoScalingSettingsDescription_ScalingPolicies_ToDafny(input.ScalingPolicies))) + }() +} + +func Com_amazonaws_dynamodb_ReplicaSettingsDescription_ReplicaGlobalSecondaryIndexSettings_ToDafny(input []types.ReplicaGlobalSecondaryIndexSettingsDescription) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + var fieldValue []interface{} = make([]interface{}, 0) + for _, val := range input { + element := Com_amazonaws_dynamodb_ReplicaGlobalSecondaryIndexSettingsDescriptionList_member_ToDafny(val) + fieldValue = append(fieldValue, element) + } + return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(fieldValue...)) + }() +} + +func Com_amazonaws_dynamodb_ReplicaGlobalSecondaryIndexSettingsDescriptionList_member_ToDafny(input types.ReplicaGlobalSecondaryIndexSettingsDescription) ComAmazonawsDynamodbTypes.ReplicaGlobalSecondaryIndexSettingsDescription { + return func() ComAmazonawsDynamodbTypes.ReplicaGlobalSecondaryIndexSettingsDescription { + + return ComAmazonawsDynamodbTypes.Companion_ReplicaGlobalSecondaryIndexSettingsDescription_.Create_ReplicaGlobalSecondaryIndexSettingsDescription_(Com_amazonaws_dynamodb_ReplicaGlobalSecondaryIndexSettingsDescription_IndexName_ToDafny(input.IndexName), Com_amazonaws_dynamodb_ReplicaGlobalSecondaryIndexSettingsDescription_IndexStatus_ToDafny(input.IndexStatus), Com_amazonaws_dynamodb_ReplicaGlobalSecondaryIndexSettingsDescription_ProvisionedReadCapacityUnits_ToDafny(input.ProvisionedReadCapacityUnits), Com_amazonaws_dynamodb_ReplicaGlobalSecondaryIndexSettingsDescription_ProvisionedReadCapacityAutoScalingSettings_ToDafny(input.ProvisionedReadCapacityAutoScalingSettings), Com_amazonaws_dynamodb_ReplicaGlobalSecondaryIndexSettingsDescription_ProvisionedWriteCapacityUnits_ToDafny(input.ProvisionedWriteCapacityUnits), Com_amazonaws_dynamodb_ReplicaGlobalSecondaryIndexSettingsDescription_ProvisionedWriteCapacityAutoScalingSettings_ToDafny(input.ProvisionedWriteCapacityAutoScalingSettings)) + }() +} + +func Com_amazonaws_dynamodb_ReplicaGlobalSecondaryIndexSettingsDescription_IndexName_ToDafny(input *string) dafny.Sequence { + return func() dafny.Sequence { + if input == nil { + return nil + } + return func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(*input)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }() + }() +} + +func Com_amazonaws_dynamodb_ReplicaGlobalSecondaryIndexSettingsDescription_IndexStatus_ToDafny(input types.IndexStatus) Wrappers.Option { + return func() Wrappers.Option { + var index int + for _, enumVal := range input.Values() { + index++ + if enumVal == input { + break + } + if index == len(input.Values()) { + return Wrappers.Companion_Option_.Create_None_() + } + + } + var enum interface{} + for allEnums, i := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_IndexStatus_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return Wrappers.Companion_Option_.Create_Some_(enum.(ComAmazonawsDynamodbTypes.IndexStatus)) + }() +} + +func Com_amazonaws_dynamodb_ReplicaGlobalSecondaryIndexSettingsDescription_ProvisionedReadCapacityUnits_ToDafny(input *int64) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(*input) + }() +} + +func Com_amazonaws_dynamodb_ReplicaGlobalSecondaryIndexSettingsDescription_ProvisionedReadCapacityAutoScalingSettings_ToDafny(input *types.AutoScalingSettingsDescription) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(ComAmazonawsDynamodbTypes.Companion_AutoScalingSettingsDescription_.Create_AutoScalingSettingsDescription_(Com_amazonaws_dynamodb_AutoScalingSettingsDescription_MinimumUnits_ToDafny(input.MinimumUnits), Com_amazonaws_dynamodb_AutoScalingSettingsDescription_MaximumUnits_ToDafny(input.MaximumUnits), Com_amazonaws_dynamodb_AutoScalingSettingsDescription_AutoScalingDisabled_ToDafny(input.AutoScalingDisabled), Com_amazonaws_dynamodb_AutoScalingSettingsDescription_AutoScalingRoleArn_ToDafny(input.AutoScalingRoleArn), Com_amazonaws_dynamodb_AutoScalingSettingsDescription_ScalingPolicies_ToDafny(input.ScalingPolicies))) + }() +} + +func Com_amazonaws_dynamodb_ReplicaGlobalSecondaryIndexSettingsDescription_ProvisionedWriteCapacityUnits_ToDafny(input *int64) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(*input) + }() +} + +func Com_amazonaws_dynamodb_ReplicaGlobalSecondaryIndexSettingsDescription_ProvisionedWriteCapacityAutoScalingSettings_ToDafny(input *types.AutoScalingSettingsDescription) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(ComAmazonawsDynamodbTypes.Companion_AutoScalingSettingsDescription_.Create_AutoScalingSettingsDescription_(Com_amazonaws_dynamodb_AutoScalingSettingsDescription_MinimumUnits_ToDafny(input.MinimumUnits), Com_amazonaws_dynamodb_AutoScalingSettingsDescription_MaximumUnits_ToDafny(input.MaximumUnits), Com_amazonaws_dynamodb_AutoScalingSettingsDescription_AutoScalingDisabled_ToDafny(input.AutoScalingDisabled), Com_amazonaws_dynamodb_AutoScalingSettingsDescription_AutoScalingRoleArn_ToDafny(input.AutoScalingRoleArn), Com_amazonaws_dynamodb_AutoScalingSettingsDescription_ScalingPolicies_ToDafny(input.ScalingPolicies))) + }() +} + +func Com_amazonaws_dynamodb_ReplicaSettingsDescription_ReplicaTableClassSummary_ToDafny(input *types.TableClassSummary) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(ComAmazonawsDynamodbTypes.Companion_TableClassSummary_.Create_TableClassSummary_(Com_amazonaws_dynamodb_TableClassSummary_TableClass_ToDafny(input.TableClass), Com_amazonaws_dynamodb_TableClassSummary_LastUpdateDateTime_ToDafny(input.LastUpdateDateTime))) + }() +} + +func Com_amazonaws_dynamodb_DescribeImportInput_ImportArn_ToDafny(input *string) dafny.Sequence { + return func() dafny.Sequence { + if input == nil { + return nil + } + return func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(*input)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }() + }() +} + +func Com_amazonaws_dynamodb_DescribeImportOutput_ImportTableDescription_ToDafny(input *types.ImportTableDescription) ComAmazonawsDynamodbTypes.ImportTableDescription { + return func() ComAmazonawsDynamodbTypes.ImportTableDescription { + if input == nil { + return ComAmazonawsDynamodbTypes.ImportTableDescription{} + } + return ComAmazonawsDynamodbTypes.Companion_ImportTableDescription_.Create_ImportTableDescription_(Com_amazonaws_dynamodb_ImportTableDescription_ImportArn_ToDafny(input.ImportArn), Com_amazonaws_dynamodb_ImportTableDescription_ImportStatus_ToDafny(input.ImportStatus), Com_amazonaws_dynamodb_ImportTableDescription_TableArn_ToDafny(input.TableArn), Com_amazonaws_dynamodb_ImportTableDescription_TableId_ToDafny(input.TableId), Com_amazonaws_dynamodb_ImportTableDescription_ClientToken_ToDafny(input.ClientToken), Com_amazonaws_dynamodb_ImportTableDescription_S3BucketSource_ToDafny(input.S3BucketSource), Com_amazonaws_dynamodb_ImportTableDescription_ErrorCount_ToDafny(input.ErrorCount), Com_amazonaws_dynamodb_ImportTableDescription_CloudWatchLogGroupArn_ToDafny(input.CloudWatchLogGroupArn), Com_amazonaws_dynamodb_ImportTableDescription_InputFormat_ToDafny(input.InputFormat), Com_amazonaws_dynamodb_ImportTableDescription_InputFormatOptions_ToDafny(input.InputFormatOptions), Com_amazonaws_dynamodb_ImportTableDescription_InputCompressionType_ToDafny(input.InputCompressionType), Com_amazonaws_dynamodb_ImportTableDescription_TableCreationParameters_ToDafny(input.TableCreationParameters), Com_amazonaws_dynamodb_ImportTableDescription_StartTime_ToDafny(input.StartTime), Com_amazonaws_dynamodb_ImportTableDescription_EndTime_ToDafny(input.EndTime), Com_amazonaws_dynamodb_ImportTableDescription_ProcessedSizeBytes_ToDafny(input.ProcessedSizeBytes), Com_amazonaws_dynamodb_ImportTableDescription_ProcessedItemCount_ToDafny(input.ProcessedItemCount), Com_amazonaws_dynamodb_ImportTableDescription_ImportedItemCount_ToDafny(input.ImportedItemCount), Com_amazonaws_dynamodb_ImportTableDescription_FailureCode_ToDafny(input.FailureCode), Com_amazonaws_dynamodb_ImportTableDescription_FailureMessage_ToDafny(input.FailureMessage)) + }() +} + +func Com_amazonaws_dynamodb_ImportTableDescription_ImportArn_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 Com_amazonaws_dynamodb_ImportTableDescription_ImportStatus_ToDafny(input types.ImportStatus) Wrappers.Option { + return func() Wrappers.Option { + var index int + for _, enumVal := range input.Values() { + index++ + if enumVal == input { + break + } + if index == len(input.Values()) { + return Wrappers.Companion_Option_.Create_None_() + } + + } + var enum interface{} + for allEnums, i := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_ImportStatus_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return Wrappers.Companion_Option_.Create_Some_(enum.(ComAmazonawsDynamodbTypes.ImportStatus)) + }() +} + +func Com_amazonaws_dynamodb_ImportTableDescription_TableArn_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 Com_amazonaws_dynamodb_ImportTableDescription_TableId_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 Com_amazonaws_dynamodb_ImportTableDescription_ClientToken_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 Com_amazonaws_dynamodb_ImportTableDescription_S3BucketSource_ToDafny(input *types.S3BucketSource) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(ComAmazonawsDynamodbTypes.Companion_S3BucketSource_.Create_S3BucketSource_(Com_amazonaws_dynamodb_S3BucketSource_S3BucketOwner_ToDafny(input.S3BucketOwner), Com_amazonaws_dynamodb_S3BucketSource_S3Bucket_ToDafny(input.S3Bucket), Com_amazonaws_dynamodb_S3BucketSource_S3KeyPrefix_ToDafny(input.S3KeyPrefix))) + }() +} + +func Com_amazonaws_dynamodb_S3BucketSource_S3BucketOwner_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 Com_amazonaws_dynamodb_S3BucketSource_S3Bucket_ToDafny(input *string) dafny.Sequence { + return func() dafny.Sequence { + if input == nil { + return nil + } + return func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(*input)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }() + }() +} + +func Com_amazonaws_dynamodb_S3BucketSource_S3KeyPrefix_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 Com_amazonaws_dynamodb_ImportTableDescription_ErrorCount_ToDafny(input int64) Wrappers.Option { + return func() Wrappers.Option { + + return Wrappers.Companion_Option_.Create_Some_(input) + }() +} + +func Com_amazonaws_dynamodb_ImportTableDescription_CloudWatchLogGroupArn_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 Com_amazonaws_dynamodb_ImportTableDescription_InputFormat_ToDafny(input types.InputFormat) Wrappers.Option { + return func() Wrappers.Option { + var index int + for _, enumVal := range input.Values() { + index++ + if enumVal == input { + break + } + if index == len(input.Values()) { + return Wrappers.Companion_Option_.Create_None_() + } + + } + var enum interface{} + for allEnums, i := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_InputFormat_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return Wrappers.Companion_Option_.Create_Some_(enum.(ComAmazonawsDynamodbTypes.InputFormat)) + }() +} + +func Com_amazonaws_dynamodb_ImportTableDescription_InputFormatOptions_ToDafny(input *types.InputFormatOptions) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(ComAmazonawsDynamodbTypes.Companion_InputFormatOptions_.Create_InputFormatOptions_(Com_amazonaws_dynamodb_InputFormatOptions_Csv_ToDafny(input.Csv))) + }() +} + +func Com_amazonaws_dynamodb_InputFormatOptions_Csv_ToDafny(input *types.CsvOptions) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(ComAmazonawsDynamodbTypes.Companion_CsvOptions_.Create_CsvOptions_(Com_amazonaws_dynamodb_CsvOptions_Delimiter_ToDafny(input.Delimiter), Com_amazonaws_dynamodb_CsvOptions_HeaderList_ToDafny(input.HeaderList))) + }() +} + +func Com_amazonaws_dynamodb_CsvOptions_Delimiter_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 Com_amazonaws_dynamodb_CsvOptions_HeaderList_ToDafny(input []string) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + var fieldValue []interface{} = make([]interface{}, 0) + for _, val := range input { + element := Com_amazonaws_dynamodb_CsvHeaderList_member_ToDafny(val) + fieldValue = append(fieldValue, element) + } + return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(fieldValue...)) + }() +} + +func Com_amazonaws_dynamodb_CsvHeaderList_member_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 Com_amazonaws_dynamodb_ImportTableDescription_InputCompressionType_ToDafny(input types.InputCompressionType) Wrappers.Option { + return func() Wrappers.Option { + var index int + for _, enumVal := range input.Values() { + index++ + if enumVal == input { + break + } + if index == len(input.Values()) { + return Wrappers.Companion_Option_.Create_None_() + } + + } + var enum interface{} + for allEnums, i := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_InputCompressionType_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return Wrappers.Companion_Option_.Create_Some_(enum.(ComAmazonawsDynamodbTypes.InputCompressionType)) + }() +} + +func Com_amazonaws_dynamodb_ImportTableDescription_TableCreationParameters_ToDafny(input *types.TableCreationParameters) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(ComAmazonawsDynamodbTypes.Companion_TableCreationParameters_.Create_TableCreationParameters_(Com_amazonaws_dynamodb_TableCreationParameters_TableName_ToDafny(input.TableName), Com_amazonaws_dynamodb_TableCreationParameters_AttributeDefinitions_ToDafny(input.AttributeDefinitions), Com_amazonaws_dynamodb_TableCreationParameters_KeySchema_ToDafny(input.KeySchema), Com_amazonaws_dynamodb_TableCreationParameters_BillingMode_ToDafny(input.BillingMode), Com_amazonaws_dynamodb_TableCreationParameters_ProvisionedThroughput_ToDafny(input.ProvisionedThroughput), Com_amazonaws_dynamodb_TableCreationParameters_OnDemandThroughput_ToDafny(input.OnDemandThroughput), Com_amazonaws_dynamodb_TableCreationParameters_SSESpecification_ToDafny(input.SSESpecification), Com_amazonaws_dynamodb_TableCreationParameters_GlobalSecondaryIndexes_ToDafny(input.GlobalSecondaryIndexes))) + }() +} + +func Com_amazonaws_dynamodb_TableCreationParameters_TableName_ToDafny(input *string) dafny.Sequence { + return func() dafny.Sequence { + if input == nil { + return nil + } + return func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(*input)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }() + }() +} + +func Com_amazonaws_dynamodb_TableCreationParameters_AttributeDefinitions_ToDafny(input []types.AttributeDefinition) dafny.Sequence { + return func() dafny.Sequence { + if input == nil { + return nil + } + var fieldValue []interface{} = make([]interface{}, 0) + for _, val := range input { + element := Com_amazonaws_dynamodb_AttributeDefinitions_member_ToDafny(val) + fieldValue = append(fieldValue, element) + } + return dafny.SeqOf(fieldValue...) + }() +} + +func Com_amazonaws_dynamodb_TableCreationParameters_KeySchema_ToDafny(input []types.KeySchemaElement) dafny.Sequence { + return func() dafny.Sequence { + if input == nil { + return nil + } + var fieldValue []interface{} = make([]interface{}, 0) + for _, val := range input { + element := Com_amazonaws_dynamodb_KeySchema_member_ToDafny(val) + fieldValue = append(fieldValue, element) + } + return dafny.SeqOf(fieldValue...) + }() +} + +func Com_amazonaws_dynamodb_TableCreationParameters_BillingMode_ToDafny(input types.BillingMode) Wrappers.Option { + return func() Wrappers.Option { + var index int + for _, enumVal := range input.Values() { + index++ + if enumVal == input { + break + } + if index == len(input.Values()) { + return Wrappers.Companion_Option_.Create_None_() + } + + } + var enum interface{} + for allEnums, i := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_BillingMode_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return Wrappers.Companion_Option_.Create_Some_(enum.(ComAmazonawsDynamodbTypes.BillingMode)) + }() +} + +func Com_amazonaws_dynamodb_TableCreationParameters_ProvisionedThroughput_ToDafny(input *types.ProvisionedThroughput) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(ComAmazonawsDynamodbTypes.Companion_ProvisionedThroughput_.Create_ProvisionedThroughput_(Com_amazonaws_dynamodb_ProvisionedThroughput_ReadCapacityUnits_ToDafny(input.ReadCapacityUnits), Com_amazonaws_dynamodb_ProvisionedThroughput_WriteCapacityUnits_ToDafny(input.WriteCapacityUnits))) + }() +} + +func Com_amazonaws_dynamodb_TableCreationParameters_OnDemandThroughput_ToDafny(input *types.OnDemandThroughput) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(ComAmazonawsDynamodbTypes.Companion_OnDemandThroughput_.Create_OnDemandThroughput_(Com_amazonaws_dynamodb_OnDemandThroughput_MaxReadRequestUnits_ToDafny(input.MaxReadRequestUnits), Com_amazonaws_dynamodb_OnDemandThroughput_MaxWriteRequestUnits_ToDafny(input.MaxWriteRequestUnits))) + }() +} + +func Com_amazonaws_dynamodb_TableCreationParameters_SSESpecification_ToDafny(input *types.SSESpecification) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(ComAmazonawsDynamodbTypes.Companion_SSESpecification_.Create_SSESpecification_(Com_amazonaws_dynamodb_SSESpecification_Enabled_ToDafny(input.Enabled), Com_amazonaws_dynamodb_SSESpecification_SSEType_ToDafny(input.SSEType), Com_amazonaws_dynamodb_SSESpecification_KMSMasterKeyId_ToDafny(input.KMSMasterKeyId))) + }() +} + +func Com_amazonaws_dynamodb_TableCreationParameters_GlobalSecondaryIndexes_ToDafny(input []types.GlobalSecondaryIndex) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + var fieldValue []interface{} = make([]interface{}, 0) + for _, val := range input { + element := Com_amazonaws_dynamodb_GlobalSecondaryIndexList_member_ToDafny(val) + fieldValue = append(fieldValue, element) + } + return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(fieldValue...)) + }() +} + +func Com_amazonaws_dynamodb_ImportTableDescription_StartTime_ToDafny(input *time.Time) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + formattedTime := input.Format("2006-01-02T15:04:05.999999Z") + return Wrappers.Companion_Option_.Create_Some_(func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(formattedTime)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }()) + }() +} + +func Com_amazonaws_dynamodb_ImportTableDescription_EndTime_ToDafny(input *time.Time) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + formattedTime := input.Format("2006-01-02T15:04:05.999999Z") + return Wrappers.Companion_Option_.Create_Some_(func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(formattedTime)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }()) + }() +} + +func Com_amazonaws_dynamodb_ImportTableDescription_ProcessedSizeBytes_ToDafny(input *int64) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(*input) + }() +} + +func Com_amazonaws_dynamodb_ImportTableDescription_ProcessedItemCount_ToDafny(input int64) Wrappers.Option { + return func() Wrappers.Option { + + return Wrappers.Companion_Option_.Create_Some_(input) + }() +} + +func Com_amazonaws_dynamodb_ImportTableDescription_ImportedItemCount_ToDafny(input int64) Wrappers.Option { + return func() Wrappers.Option { + + return Wrappers.Companion_Option_.Create_Some_(input) + }() +} + +func Com_amazonaws_dynamodb_ImportTableDescription_FailureCode_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 Com_amazonaws_dynamodb_ImportTableDescription_FailureMessage_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 Com_amazonaws_dynamodb_DescribeKinesisStreamingDestinationInput_TableName_ToDafny(input *string) dafny.Sequence { + return func() dafny.Sequence { + if input == nil { + return nil + } + return func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(*input)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }() + }() +} + +func Com_amazonaws_dynamodb_DescribeKinesisStreamingDestinationOutput_TableName_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 Com_amazonaws_dynamodb_DescribeKinesisStreamingDestinationOutput_KinesisDataStreamDestinations_ToDafny(input []types.KinesisDataStreamDestination) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + var fieldValue []interface{} = make([]interface{}, 0) + for _, val := range input { + element := Com_amazonaws_dynamodb_KinesisDataStreamDestinations_member_ToDafny(val) + fieldValue = append(fieldValue, element) + } + return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(fieldValue...)) + }() +} + +func Com_amazonaws_dynamodb_KinesisDataStreamDestinations_member_ToDafny(input types.KinesisDataStreamDestination) ComAmazonawsDynamodbTypes.KinesisDataStreamDestination { + return func() ComAmazonawsDynamodbTypes.KinesisDataStreamDestination { + + return ComAmazonawsDynamodbTypes.Companion_KinesisDataStreamDestination_.Create_KinesisDataStreamDestination_(Com_amazonaws_dynamodb_KinesisDataStreamDestination_StreamArn_ToDafny(input.StreamArn), Com_amazonaws_dynamodb_KinesisDataStreamDestination_DestinationStatus_ToDafny(input.DestinationStatus), Com_amazonaws_dynamodb_KinesisDataStreamDestination_DestinationStatusDescription_ToDafny(input.DestinationStatusDescription), Com_amazonaws_dynamodb_KinesisDataStreamDestination_ApproximateCreationDateTimePrecision_ToDafny(input.ApproximateCreationDateTimePrecision)) + }() +} + +func Com_amazonaws_dynamodb_KinesisDataStreamDestination_StreamArn_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 Com_amazonaws_dynamodb_KinesisDataStreamDestination_DestinationStatus_ToDafny(input types.DestinationStatus) Wrappers.Option { + return func() Wrappers.Option { + var index int + for _, enumVal := range input.Values() { + index++ + if enumVal == input { + break + } + if index == len(input.Values()) { + return Wrappers.Companion_Option_.Create_None_() + } + + } + var enum interface{} + for allEnums, i := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_DestinationStatus_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return Wrappers.Companion_Option_.Create_Some_(enum.(ComAmazonawsDynamodbTypes.DestinationStatus)) + }() +} + +func Com_amazonaws_dynamodb_KinesisDataStreamDestination_DestinationStatusDescription_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 Com_amazonaws_dynamodb_KinesisDataStreamDestination_ApproximateCreationDateTimePrecision_ToDafny(input types.ApproximateCreationDateTimePrecision) Wrappers.Option { + return func() Wrappers.Option { + var index int + for _, enumVal := range input.Values() { + index++ + if enumVal == input { + break + } + if index == len(input.Values()) { + return Wrappers.Companion_Option_.Create_None_() + } + + } + var enum interface{} + for allEnums, i := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_ApproximateCreationDateTimePrecision_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return Wrappers.Companion_Option_.Create_Some_(enum.(ComAmazonawsDynamodbTypes.ApproximateCreationDateTimePrecision)) + }() +} + +func Com_amazonaws_dynamodb_DescribeLimitsOutput_AccountMaxReadCapacityUnits_ToDafny(input *int64) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(*input) + }() +} + +func Com_amazonaws_dynamodb_DescribeLimitsOutput_AccountMaxWriteCapacityUnits_ToDafny(input *int64) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(*input) + }() +} + +func Com_amazonaws_dynamodb_DescribeLimitsOutput_TableMaxReadCapacityUnits_ToDafny(input *int64) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(*input) + }() +} + +func Com_amazonaws_dynamodb_DescribeLimitsOutput_TableMaxWriteCapacityUnits_ToDafny(input *int64) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(*input) + }() +} + +func Com_amazonaws_dynamodb_DescribeTableInput_TableName_ToDafny(input *string) dafny.Sequence { + return func() dafny.Sequence { + if input == nil { + return nil + } + return func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(*input)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }() + }() +} + +func Com_amazonaws_dynamodb_DescribeTableOutput_Table_ToDafny(input *types.TableDescription) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(ComAmazonawsDynamodbTypes.Companion_TableDescription_.Create_TableDescription_(Com_amazonaws_dynamodb_TableDescription_AttributeDefinitions_ToDafny(input.AttributeDefinitions), Com_amazonaws_dynamodb_TableDescription_TableName_ToDafny(input.TableName), Com_amazonaws_dynamodb_TableDescription_KeySchema_ToDafny(input.KeySchema), Com_amazonaws_dynamodb_TableDescription_TableStatus_ToDafny(input.TableStatus), Com_amazonaws_dynamodb_TableDescription_CreationDateTime_ToDafny(input.CreationDateTime), Com_amazonaws_dynamodb_TableDescription_ProvisionedThroughput_ToDafny(input.ProvisionedThroughput), Com_amazonaws_dynamodb_TableDescription_TableSizeBytes_ToDafny(input.TableSizeBytes), Com_amazonaws_dynamodb_TableDescription_ItemCount_ToDafny(input.ItemCount), Com_amazonaws_dynamodb_TableDescription_TableArn_ToDafny(input.TableArn), Com_amazonaws_dynamodb_TableDescription_TableId_ToDafny(input.TableId), Com_amazonaws_dynamodb_TableDescription_BillingModeSummary_ToDafny(input.BillingModeSummary), Com_amazonaws_dynamodb_TableDescription_LocalSecondaryIndexes_ToDafny(input.LocalSecondaryIndexes), Com_amazonaws_dynamodb_TableDescription_GlobalSecondaryIndexes_ToDafny(input.GlobalSecondaryIndexes), Com_amazonaws_dynamodb_TableDescription_StreamSpecification_ToDafny(input.StreamSpecification), Com_amazonaws_dynamodb_TableDescription_LatestStreamLabel_ToDafny(input.LatestStreamLabel), Com_amazonaws_dynamodb_TableDescription_LatestStreamArn_ToDafny(input.LatestStreamArn), Com_amazonaws_dynamodb_TableDescription_GlobalTableVersion_ToDafny(input.GlobalTableVersion), Com_amazonaws_dynamodb_TableDescription_Replicas_ToDafny(input.Replicas), Com_amazonaws_dynamodb_TableDescription_RestoreSummary_ToDafny(input.RestoreSummary), Com_amazonaws_dynamodb_TableDescription_SSEDescription_ToDafny(input.SSEDescription), Com_amazonaws_dynamodb_TableDescription_ArchivalSummary_ToDafny(input.ArchivalSummary), Com_amazonaws_dynamodb_TableDescription_TableClassSummary_ToDafny(input.TableClassSummary), Com_amazonaws_dynamodb_TableDescription_DeletionProtectionEnabled_ToDafny(input.DeletionProtectionEnabled), Com_amazonaws_dynamodb_TableDescription_OnDemandThroughput_ToDafny(input.OnDemandThroughput))) + }() +} + +func Com_amazonaws_dynamodb_DescribeTableReplicaAutoScalingInput_TableName_ToDafny(input *string) dafny.Sequence { + return func() dafny.Sequence { + if input == nil { + return nil + } + return func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(*input)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }() + }() +} + +func Com_amazonaws_dynamodb_DescribeTableReplicaAutoScalingOutput_TableAutoScalingDescription_ToDafny(input *types.TableAutoScalingDescription) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(ComAmazonawsDynamodbTypes.Companion_TableAutoScalingDescription_.Create_TableAutoScalingDescription_(Com_amazonaws_dynamodb_TableAutoScalingDescription_TableName_ToDafny(input.TableName), Com_amazonaws_dynamodb_TableAutoScalingDescription_TableStatus_ToDafny(input.TableStatus), Com_amazonaws_dynamodb_TableAutoScalingDescription_Replicas_ToDafny(input.Replicas))) + }() +} + +func Com_amazonaws_dynamodb_TableAutoScalingDescription_TableName_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 Com_amazonaws_dynamodb_TableAutoScalingDescription_TableStatus_ToDafny(input types.TableStatus) Wrappers.Option { + return func() Wrappers.Option { + var index int + for _, enumVal := range input.Values() { + index++ + if enumVal == input { + break + } + if index == len(input.Values()) { + return Wrappers.Companion_Option_.Create_None_() + } + + } + var enum interface{} + for allEnums, i := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_TableStatus_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return Wrappers.Companion_Option_.Create_Some_(enum.(ComAmazonawsDynamodbTypes.TableStatus)) + }() +} + +func Com_amazonaws_dynamodb_TableAutoScalingDescription_Replicas_ToDafny(input []types.ReplicaAutoScalingDescription) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + var fieldValue []interface{} = make([]interface{}, 0) + for _, val := range input { + element := Com_amazonaws_dynamodb_ReplicaAutoScalingDescriptionList_member_ToDafny(val) + fieldValue = append(fieldValue, element) + } + return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(fieldValue...)) + }() +} + +func Com_amazonaws_dynamodb_ReplicaAutoScalingDescriptionList_member_ToDafny(input types.ReplicaAutoScalingDescription) ComAmazonawsDynamodbTypes.ReplicaAutoScalingDescription { + return func() ComAmazonawsDynamodbTypes.ReplicaAutoScalingDescription { + + return ComAmazonawsDynamodbTypes.Companion_ReplicaAutoScalingDescription_.Create_ReplicaAutoScalingDescription_(Com_amazonaws_dynamodb_ReplicaAutoScalingDescription_RegionName_ToDafny(input.RegionName), Com_amazonaws_dynamodb_ReplicaAutoScalingDescription_GlobalSecondaryIndexes_ToDafny(input.GlobalSecondaryIndexes), Com_amazonaws_dynamodb_ReplicaAutoScalingDescription_ReplicaProvisionedReadCapacityAutoScalingSettings_ToDafny(input.ReplicaProvisionedReadCapacityAutoScalingSettings), Com_amazonaws_dynamodb_ReplicaAutoScalingDescription_ReplicaProvisionedWriteCapacityAutoScalingSettings_ToDafny(input.ReplicaProvisionedWriteCapacityAutoScalingSettings), Com_amazonaws_dynamodb_ReplicaAutoScalingDescription_ReplicaStatus_ToDafny(input.ReplicaStatus)) + }() +} + +func Com_amazonaws_dynamodb_ReplicaAutoScalingDescription_RegionName_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 Com_amazonaws_dynamodb_ReplicaAutoScalingDescription_GlobalSecondaryIndexes_ToDafny(input []types.ReplicaGlobalSecondaryIndexAutoScalingDescription) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + var fieldValue []interface{} = make([]interface{}, 0) + for _, val := range input { + element := Com_amazonaws_dynamodb_ReplicaGlobalSecondaryIndexAutoScalingDescriptionList_member_ToDafny(val) + fieldValue = append(fieldValue, element) + } + return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(fieldValue...)) + }() +} + +func Com_amazonaws_dynamodb_ReplicaGlobalSecondaryIndexAutoScalingDescriptionList_member_ToDafny(input types.ReplicaGlobalSecondaryIndexAutoScalingDescription) ComAmazonawsDynamodbTypes.ReplicaGlobalSecondaryIndexAutoScalingDescription { + return func() ComAmazonawsDynamodbTypes.ReplicaGlobalSecondaryIndexAutoScalingDescription { + + return ComAmazonawsDynamodbTypes.Companion_ReplicaGlobalSecondaryIndexAutoScalingDescription_.Create_ReplicaGlobalSecondaryIndexAutoScalingDescription_(Com_amazonaws_dynamodb_ReplicaGlobalSecondaryIndexAutoScalingDescription_IndexName_ToDafny(input.IndexName), Com_amazonaws_dynamodb_ReplicaGlobalSecondaryIndexAutoScalingDescription_IndexStatus_ToDafny(input.IndexStatus), Com_amazonaws_dynamodb_ReplicaGlobalSecondaryIndexAutoScalingDescription_ProvisionedReadCapacityAutoScalingSettings_ToDafny(input.ProvisionedReadCapacityAutoScalingSettings), Com_amazonaws_dynamodb_ReplicaGlobalSecondaryIndexAutoScalingDescription_ProvisionedWriteCapacityAutoScalingSettings_ToDafny(input.ProvisionedWriteCapacityAutoScalingSettings)) + }() +} + +func Com_amazonaws_dynamodb_ReplicaGlobalSecondaryIndexAutoScalingDescription_IndexName_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 Com_amazonaws_dynamodb_ReplicaGlobalSecondaryIndexAutoScalingDescription_IndexStatus_ToDafny(input types.IndexStatus) Wrappers.Option { + return func() Wrappers.Option { + var index int + for _, enumVal := range input.Values() { + index++ + if enumVal == input { + break + } + if index == len(input.Values()) { + return Wrappers.Companion_Option_.Create_None_() + } + + } + var enum interface{} + for allEnums, i := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_IndexStatus_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return Wrappers.Companion_Option_.Create_Some_(enum.(ComAmazonawsDynamodbTypes.IndexStatus)) + }() +} + +func Com_amazonaws_dynamodb_ReplicaGlobalSecondaryIndexAutoScalingDescription_ProvisionedReadCapacityAutoScalingSettings_ToDafny(input *types.AutoScalingSettingsDescription) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(ComAmazonawsDynamodbTypes.Companion_AutoScalingSettingsDescription_.Create_AutoScalingSettingsDescription_(Com_amazonaws_dynamodb_AutoScalingSettingsDescription_MinimumUnits_ToDafny(input.MinimumUnits), Com_amazonaws_dynamodb_AutoScalingSettingsDescription_MaximumUnits_ToDafny(input.MaximumUnits), Com_amazonaws_dynamodb_AutoScalingSettingsDescription_AutoScalingDisabled_ToDafny(input.AutoScalingDisabled), Com_amazonaws_dynamodb_AutoScalingSettingsDescription_AutoScalingRoleArn_ToDafny(input.AutoScalingRoleArn), Com_amazonaws_dynamodb_AutoScalingSettingsDescription_ScalingPolicies_ToDafny(input.ScalingPolicies))) + }() +} + +func Com_amazonaws_dynamodb_ReplicaGlobalSecondaryIndexAutoScalingDescription_ProvisionedWriteCapacityAutoScalingSettings_ToDafny(input *types.AutoScalingSettingsDescription) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(ComAmazonawsDynamodbTypes.Companion_AutoScalingSettingsDescription_.Create_AutoScalingSettingsDescription_(Com_amazonaws_dynamodb_AutoScalingSettingsDescription_MinimumUnits_ToDafny(input.MinimumUnits), Com_amazonaws_dynamodb_AutoScalingSettingsDescription_MaximumUnits_ToDafny(input.MaximumUnits), Com_amazonaws_dynamodb_AutoScalingSettingsDescription_AutoScalingDisabled_ToDafny(input.AutoScalingDisabled), Com_amazonaws_dynamodb_AutoScalingSettingsDescription_AutoScalingRoleArn_ToDafny(input.AutoScalingRoleArn), Com_amazonaws_dynamodb_AutoScalingSettingsDescription_ScalingPolicies_ToDafny(input.ScalingPolicies))) + }() +} + +func Com_amazonaws_dynamodb_ReplicaAutoScalingDescription_ReplicaProvisionedReadCapacityAutoScalingSettings_ToDafny(input *types.AutoScalingSettingsDescription) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(ComAmazonawsDynamodbTypes.Companion_AutoScalingSettingsDescription_.Create_AutoScalingSettingsDescription_(Com_amazonaws_dynamodb_AutoScalingSettingsDescription_MinimumUnits_ToDafny(input.MinimumUnits), Com_amazonaws_dynamodb_AutoScalingSettingsDescription_MaximumUnits_ToDafny(input.MaximumUnits), Com_amazonaws_dynamodb_AutoScalingSettingsDescription_AutoScalingDisabled_ToDafny(input.AutoScalingDisabled), Com_amazonaws_dynamodb_AutoScalingSettingsDescription_AutoScalingRoleArn_ToDafny(input.AutoScalingRoleArn), Com_amazonaws_dynamodb_AutoScalingSettingsDescription_ScalingPolicies_ToDafny(input.ScalingPolicies))) + }() +} + +func Com_amazonaws_dynamodb_ReplicaAutoScalingDescription_ReplicaProvisionedWriteCapacityAutoScalingSettings_ToDafny(input *types.AutoScalingSettingsDescription) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(ComAmazonawsDynamodbTypes.Companion_AutoScalingSettingsDescription_.Create_AutoScalingSettingsDescription_(Com_amazonaws_dynamodb_AutoScalingSettingsDescription_MinimumUnits_ToDafny(input.MinimumUnits), Com_amazonaws_dynamodb_AutoScalingSettingsDescription_MaximumUnits_ToDafny(input.MaximumUnits), Com_amazonaws_dynamodb_AutoScalingSettingsDescription_AutoScalingDisabled_ToDafny(input.AutoScalingDisabled), Com_amazonaws_dynamodb_AutoScalingSettingsDescription_AutoScalingRoleArn_ToDafny(input.AutoScalingRoleArn), Com_amazonaws_dynamodb_AutoScalingSettingsDescription_ScalingPolicies_ToDafny(input.ScalingPolicies))) + }() +} + +func Com_amazonaws_dynamodb_ReplicaAutoScalingDescription_ReplicaStatus_ToDafny(input types.ReplicaStatus) Wrappers.Option { + return func() Wrappers.Option { + var index int + for _, enumVal := range input.Values() { + index++ + if enumVal == input { + break + } + if index == len(input.Values()) { + return Wrappers.Companion_Option_.Create_None_() + } + + } + var enum interface{} + for allEnums, i := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_ReplicaStatus_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return Wrappers.Companion_Option_.Create_Some_(enum.(ComAmazonawsDynamodbTypes.ReplicaStatus)) + }() +} + +func Com_amazonaws_dynamodb_DescribeTimeToLiveInput_TableName_ToDafny(input *string) dafny.Sequence { + return func() dafny.Sequence { + if input == nil { + return nil + } + return func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(*input)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }() + }() +} + +func Com_amazonaws_dynamodb_DescribeTimeToLiveOutput_TimeToLiveDescription_ToDafny(input *types.TimeToLiveDescription) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(ComAmazonawsDynamodbTypes.Companion_TimeToLiveDescription_.Create_TimeToLiveDescription_(Com_amazonaws_dynamodb_TimeToLiveDescription_TimeToLiveStatus_ToDafny(input.TimeToLiveStatus), Com_amazonaws_dynamodb_TimeToLiveDescription_AttributeName_ToDafny(input.AttributeName))) + }() +} + +func Com_amazonaws_dynamodb_DisableKinesisStreamingDestinationInput_TableName_ToDafny(input *string) dafny.Sequence { + return func() dafny.Sequence { + if input == nil { + return nil + } + return func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(*input)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }() + }() +} + +func Com_amazonaws_dynamodb_DisableKinesisStreamingDestinationInput_StreamArn_ToDafny(input *string) dafny.Sequence { + return func() dafny.Sequence { + if input == nil { + return nil + } + return func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(*input)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }() + }() +} + +func Com_amazonaws_dynamodb_DisableKinesisStreamingDestinationInput_EnableKinesisStreamingConfiguration_ToDafny(input *types.EnableKinesisStreamingConfiguration) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(ComAmazonawsDynamodbTypes.Companion_EnableKinesisStreamingConfiguration_.Create_EnableKinesisStreamingConfiguration_(Com_amazonaws_dynamodb_EnableKinesisStreamingConfiguration_ApproximateCreationDateTimePrecision_ToDafny(input.ApproximateCreationDateTimePrecision))) + }() +} + +func Com_amazonaws_dynamodb_EnableKinesisStreamingConfiguration_ApproximateCreationDateTimePrecision_ToDafny(input types.ApproximateCreationDateTimePrecision) Wrappers.Option { + return func() Wrappers.Option { + var index int + for _, enumVal := range input.Values() { + index++ + if enumVal == input { + break + } + if index == len(input.Values()) { + return Wrappers.Companion_Option_.Create_None_() + } + + } + var enum interface{} + for allEnums, i := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_ApproximateCreationDateTimePrecision_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return Wrappers.Companion_Option_.Create_Some_(enum.(ComAmazonawsDynamodbTypes.ApproximateCreationDateTimePrecision)) + }() +} + +func Com_amazonaws_dynamodb_DisableKinesisStreamingDestinationOutput_TableName_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 Com_amazonaws_dynamodb_DisableKinesisStreamingDestinationOutput_StreamArn_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 Com_amazonaws_dynamodb_DisableKinesisStreamingDestinationOutput_DestinationStatus_ToDafny(input types.DestinationStatus) Wrappers.Option { + return func() Wrappers.Option { + var index int + for _, enumVal := range input.Values() { + index++ + if enumVal == input { + break + } + if index == len(input.Values()) { + return Wrappers.Companion_Option_.Create_None_() + } + + } + var enum interface{} + for allEnums, i := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_DestinationStatus_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return Wrappers.Companion_Option_.Create_Some_(enum.(ComAmazonawsDynamodbTypes.DestinationStatus)) + }() +} + +func Com_amazonaws_dynamodb_DisableKinesisStreamingDestinationOutput_EnableKinesisStreamingConfiguration_ToDafny(input *types.EnableKinesisStreamingConfiguration) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(ComAmazonawsDynamodbTypes.Companion_EnableKinesisStreamingConfiguration_.Create_EnableKinesisStreamingConfiguration_(Com_amazonaws_dynamodb_EnableKinesisStreamingConfiguration_ApproximateCreationDateTimePrecision_ToDafny(input.ApproximateCreationDateTimePrecision))) + }() +} + +func Com_amazonaws_dynamodb_EnableKinesisStreamingDestinationInput_TableName_ToDafny(input *string) dafny.Sequence { + return func() dafny.Sequence { + if input == nil { + return nil + } + return func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(*input)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }() + }() +} + +func Com_amazonaws_dynamodb_EnableKinesisStreamingDestinationInput_StreamArn_ToDafny(input *string) dafny.Sequence { + return func() dafny.Sequence { + if input == nil { + return nil + } + return func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(*input)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }() + }() +} + +func Com_amazonaws_dynamodb_EnableKinesisStreamingDestinationInput_EnableKinesisStreamingConfiguration_ToDafny(input *types.EnableKinesisStreamingConfiguration) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(ComAmazonawsDynamodbTypes.Companion_EnableKinesisStreamingConfiguration_.Create_EnableKinesisStreamingConfiguration_(Com_amazonaws_dynamodb_EnableKinesisStreamingConfiguration_ApproximateCreationDateTimePrecision_ToDafny(input.ApproximateCreationDateTimePrecision))) + }() +} + +func Com_amazonaws_dynamodb_EnableKinesisStreamingDestinationOutput_TableName_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 Com_amazonaws_dynamodb_EnableKinesisStreamingDestinationOutput_StreamArn_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 Com_amazonaws_dynamodb_EnableKinesisStreamingDestinationOutput_DestinationStatus_ToDafny(input types.DestinationStatus) Wrappers.Option { + return func() Wrappers.Option { + var index int + for _, enumVal := range input.Values() { + index++ + if enumVal == input { + break + } + if index == len(input.Values()) { + return Wrappers.Companion_Option_.Create_None_() + } + + } + var enum interface{} + for allEnums, i := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_DestinationStatus_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return Wrappers.Companion_Option_.Create_Some_(enum.(ComAmazonawsDynamodbTypes.DestinationStatus)) + }() +} + +func Com_amazonaws_dynamodb_EnableKinesisStreamingDestinationOutput_EnableKinesisStreamingConfiguration_ToDafny(input *types.EnableKinesisStreamingConfiguration) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(ComAmazonawsDynamodbTypes.Companion_EnableKinesisStreamingConfiguration_.Create_EnableKinesisStreamingConfiguration_(Com_amazonaws_dynamodb_EnableKinesisStreamingConfiguration_ApproximateCreationDateTimePrecision_ToDafny(input.ApproximateCreationDateTimePrecision))) + }() +} + +func Com_amazonaws_dynamodb_ExecuteStatementInput_Statement_ToDafny(input *string) dafny.Sequence { + return func() dafny.Sequence { + if input == nil { + return nil + } + return func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(*input)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }() + }() +} + +func Com_amazonaws_dynamodb_ExecuteStatementInput_Parameters_ToDafny(input []types.AttributeValue) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + var fieldValue []interface{} = make([]interface{}, 0) + for _, val := range input { + element := Com_amazonaws_dynamodb_PreparedStatementParameters_member_ToDafny(val) + fieldValue = append(fieldValue, element) + } + return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(fieldValue...)) + }() +} + +func Com_amazonaws_dynamodb_ExecuteStatementInput_ConsistentRead_ToDafny(input *bool) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(*input) + }() +} + +func Com_amazonaws_dynamodb_ExecuteStatementInput_NextToken_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 Com_amazonaws_dynamodb_ExecuteStatementInput_ReturnConsumedCapacity_ToDafny(input types.ReturnConsumedCapacity) Wrappers.Option { + return func() Wrappers.Option { + var index int + for _, enumVal := range input.Values() { + index++ + if enumVal == input { + break + } + if index == len(input.Values()) { + return Wrappers.Companion_Option_.Create_None_() + } + + } + var enum interface{} + for allEnums, i := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_ReturnConsumedCapacity_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return Wrappers.Companion_Option_.Create_Some_(enum.(ComAmazonawsDynamodbTypes.ReturnConsumedCapacity)) + }() +} + +func Com_amazonaws_dynamodb_ExecuteStatementInput_Limit_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 Com_amazonaws_dynamodb_ExecuteStatementInput_ReturnValuesOnConditionCheckFailure_ToDafny(input types.ReturnValuesOnConditionCheckFailure) Wrappers.Option { + return func() Wrappers.Option { + var index int + for _, enumVal := range input.Values() { + index++ + if enumVal == input { + break + } + if index == len(input.Values()) { + return Wrappers.Companion_Option_.Create_None_() + } + + } + var enum interface{} + for allEnums, i := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_ReturnValuesOnConditionCheckFailure_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return Wrappers.Companion_Option_.Create_Some_(enum.(ComAmazonawsDynamodbTypes.ReturnValuesOnConditionCheckFailure)) + }() +} + +func Com_amazonaws_dynamodb_ExecuteStatementOutput_Items_ToDafny(input []map[string]types.AttributeValue) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + var fieldValue []interface{} = make([]interface{}, 0) + for _, val := range input { + element := Com_amazonaws_dynamodb_ItemList_member_ToDafny(val) + fieldValue = append(fieldValue, element) + } + return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(fieldValue...)) + }() +} + +func Com_amazonaws_dynamodb_ExecuteStatementOutput_NextToken_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 Com_amazonaws_dynamodb_ExecuteStatementOutput_ConsumedCapacity_ToDafny(input *types.ConsumedCapacity) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(ComAmazonawsDynamodbTypes.Companion_ConsumedCapacity_.Create_ConsumedCapacity_(Com_amazonaws_dynamodb_ConsumedCapacity_TableName_ToDafny(input.TableName), Com_amazonaws_dynamodb_ConsumedCapacity_CapacityUnits_ToDafny(input.CapacityUnits), Com_amazonaws_dynamodb_ConsumedCapacity_ReadCapacityUnits_ToDafny(input.ReadCapacityUnits), Com_amazonaws_dynamodb_ConsumedCapacity_WriteCapacityUnits_ToDafny(input.WriteCapacityUnits), Com_amazonaws_dynamodb_ConsumedCapacity_Table_ToDafny(input.Table), Com_amazonaws_dynamodb_ConsumedCapacity_LocalSecondaryIndexes_ToDafny(input.LocalSecondaryIndexes), Com_amazonaws_dynamodb_ConsumedCapacity_GlobalSecondaryIndexes_ToDafny(input.GlobalSecondaryIndexes))) + }() +} + +func Com_amazonaws_dynamodb_ExecuteStatementOutput_LastEvaluatedKey_ToDafny(input map[string]types.AttributeValue) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + fieldValue := dafny.NewMapBuilder() + for key, val := range input { + fieldValue.Add(Com_amazonaws_dynamodb_Key_key_ToDafny(key), Com_amazonaws_dynamodb_Key_value_ToDafny(val)) + } + return Wrappers.Companion_Option_.Create_Some_(fieldValue.ToMap()) + }() +} + +func Com_amazonaws_dynamodb_ExecuteTransactionInput_TransactStatements_ToDafny(input []types.ParameterizedStatement) dafny.Sequence { + return func() dafny.Sequence { + if input == nil { + return nil + } + var fieldValue []interface{} = make([]interface{}, 0) + for _, val := range input { + element := Com_amazonaws_dynamodb_ParameterizedStatements_member_ToDafny(val) + fieldValue = append(fieldValue, element) + } + return dafny.SeqOf(fieldValue...) + }() +} + +func Com_amazonaws_dynamodb_ParameterizedStatements_member_ToDafny(input types.ParameterizedStatement) ComAmazonawsDynamodbTypes.ParameterizedStatement { + return func() ComAmazonawsDynamodbTypes.ParameterizedStatement { + + return ComAmazonawsDynamodbTypes.Companion_ParameterizedStatement_.Create_ParameterizedStatement_(Com_amazonaws_dynamodb_ParameterizedStatement_Statement_ToDafny(input.Statement), Com_amazonaws_dynamodb_ParameterizedStatement_Parameters_ToDafny(input.Parameters), Com_amazonaws_dynamodb_ParameterizedStatement_ReturnValuesOnConditionCheckFailure_ToDafny(input.ReturnValuesOnConditionCheckFailure)) + }() +} + +func Com_amazonaws_dynamodb_ParameterizedStatement_Statement_ToDafny(input *string) dafny.Sequence { + return func() dafny.Sequence { + if input == nil { + return nil + } + return func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(*input)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }() + }() +} + +func Com_amazonaws_dynamodb_ParameterizedStatement_Parameters_ToDafny(input []types.AttributeValue) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + var fieldValue []interface{} = make([]interface{}, 0) + for _, val := range input { + element := Com_amazonaws_dynamodb_PreparedStatementParameters_member_ToDafny(val) + fieldValue = append(fieldValue, element) + } + return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(fieldValue...)) + }() +} + +func Com_amazonaws_dynamodb_ParameterizedStatement_ReturnValuesOnConditionCheckFailure_ToDafny(input types.ReturnValuesOnConditionCheckFailure) Wrappers.Option { + return func() Wrappers.Option { + var index int + for _, enumVal := range input.Values() { + index++ + if enumVal == input { + break + } + if index == len(input.Values()) { + return Wrappers.Companion_Option_.Create_None_() + } + + } + var enum interface{} + for allEnums, i := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_ReturnValuesOnConditionCheckFailure_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return Wrappers.Companion_Option_.Create_Some_(enum.(ComAmazonawsDynamodbTypes.ReturnValuesOnConditionCheckFailure)) + }() +} + +func Com_amazonaws_dynamodb_ExecuteTransactionInput_ClientRequestToken_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 Com_amazonaws_dynamodb_ExecuteTransactionInput_ReturnConsumedCapacity_ToDafny(input types.ReturnConsumedCapacity) Wrappers.Option { + return func() Wrappers.Option { + var index int + for _, enumVal := range input.Values() { + index++ + if enumVal == input { + break + } + if index == len(input.Values()) { + return Wrappers.Companion_Option_.Create_None_() + } + + } + var enum interface{} + for allEnums, i := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_ReturnConsumedCapacity_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return Wrappers.Companion_Option_.Create_Some_(enum.(ComAmazonawsDynamodbTypes.ReturnConsumedCapacity)) + }() +} + +func Com_amazonaws_dynamodb_ExecuteTransactionOutput_Responses_ToDafny(input []types.ItemResponse) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + var fieldValue []interface{} = make([]interface{}, 0) + for _, val := range input { + element := Com_amazonaws_dynamodb_ItemResponseList_member_ToDafny(val) + fieldValue = append(fieldValue, element) + } + return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(fieldValue...)) + }() +} + +func Com_amazonaws_dynamodb_ItemResponseList_member_ToDafny(input types.ItemResponse) ComAmazonawsDynamodbTypes.ItemResponse { + return func() ComAmazonawsDynamodbTypes.ItemResponse { + + return ComAmazonawsDynamodbTypes.Companion_ItemResponse_.Create_ItemResponse_(Com_amazonaws_dynamodb_ItemResponse_Item_ToDafny(input.Item)) + }() +} + +func Com_amazonaws_dynamodb_ItemResponse_Item_ToDafny(input map[string]types.AttributeValue) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + fieldValue := dafny.NewMapBuilder() + for key, val := range input { + fieldValue.Add(Com_amazonaws_dynamodb_AttributeMap_key_ToDafny(key), Com_amazonaws_dynamodb_AttributeMap_value_ToDafny(val)) + } + return Wrappers.Companion_Option_.Create_Some_(fieldValue.ToMap()) + }() +} + +func Com_amazonaws_dynamodb_ExecuteTransactionOutput_ConsumedCapacity_ToDafny(input []types.ConsumedCapacity) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + var fieldValue []interface{} = make([]interface{}, 0) + for _, val := range input { + element := Com_amazonaws_dynamodb_ConsumedCapacityMultiple_member_ToDafny(val) + fieldValue = append(fieldValue, element) + } + return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(fieldValue...)) + }() +} + +func Com_amazonaws_dynamodb_ExportTableToPointInTimeInput_TableArn_ToDafny(input *string) dafny.Sequence { + return func() dafny.Sequence { + if input == nil { + return nil + } + return func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(*input)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }() + }() +} + +func Com_amazonaws_dynamodb_ExportTableToPointInTimeInput_ExportTime_ToDafny(input *time.Time) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + formattedTime := input.Format("2006-01-02T15:04:05.999999Z") + return Wrappers.Companion_Option_.Create_Some_(func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(formattedTime)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }()) + }() +} + +func Com_amazonaws_dynamodb_ExportTableToPointInTimeInput_ClientToken_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 Com_amazonaws_dynamodb_ExportTableToPointInTimeInput_S3Bucket_ToDafny(input *string) dafny.Sequence { + return func() dafny.Sequence { + if input == nil { + return nil + } + return func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(*input)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }() + }() +} + +func Com_amazonaws_dynamodb_ExportTableToPointInTimeInput_S3BucketOwner_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 Com_amazonaws_dynamodb_ExportTableToPointInTimeInput_S3Prefix_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 Com_amazonaws_dynamodb_ExportTableToPointInTimeInput_S3SseAlgorithm_ToDafny(input types.S3SseAlgorithm) Wrappers.Option { + return func() Wrappers.Option { + var index int + for _, enumVal := range input.Values() { + index++ + if enumVal == input { + break + } + if index == len(input.Values()) { + return Wrappers.Companion_Option_.Create_None_() + } + + } + var enum interface{} + for allEnums, i := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_S3SseAlgorithm_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return Wrappers.Companion_Option_.Create_Some_(enum.(ComAmazonawsDynamodbTypes.S3SseAlgorithm)) + }() +} + +func Com_amazonaws_dynamodb_ExportTableToPointInTimeInput_S3SseKmsKeyId_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 Com_amazonaws_dynamodb_ExportTableToPointInTimeInput_ExportFormat_ToDafny(input types.ExportFormat) Wrappers.Option { + return func() Wrappers.Option { + var index int + for _, enumVal := range input.Values() { + index++ + if enumVal == input { + break + } + if index == len(input.Values()) { + return Wrappers.Companion_Option_.Create_None_() + } + + } + var enum interface{} + for allEnums, i := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_ExportFormat_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return Wrappers.Companion_Option_.Create_Some_(enum.(ComAmazonawsDynamodbTypes.ExportFormat)) + }() +} + +func Com_amazonaws_dynamodb_ExportTableToPointInTimeInput_ExportType_ToDafny(input types.ExportType) Wrappers.Option { + return func() Wrappers.Option { + var index int + for _, enumVal := range input.Values() { + index++ + if enumVal == input { + break + } + if index == len(input.Values()) { + return Wrappers.Companion_Option_.Create_None_() + } + + } + var enum interface{} + for allEnums, i := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_ExportType_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return Wrappers.Companion_Option_.Create_Some_(enum.(ComAmazonawsDynamodbTypes.ExportType)) + }() +} + +func Com_amazonaws_dynamodb_ExportTableToPointInTimeInput_IncrementalExportSpecification_ToDafny(input *types.IncrementalExportSpecification) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(ComAmazonawsDynamodbTypes.Companion_IncrementalExportSpecification_.Create_IncrementalExportSpecification_(Com_amazonaws_dynamodb_IncrementalExportSpecification_ExportFromTime_ToDafny(input.ExportFromTime), Com_amazonaws_dynamodb_IncrementalExportSpecification_ExportToTime_ToDafny(input.ExportToTime), Com_amazonaws_dynamodb_IncrementalExportSpecification_ExportViewType_ToDafny(input.ExportViewType))) + }() +} + +func Com_amazonaws_dynamodb_ExportTableToPointInTimeOutput_ExportDescription_ToDafny(input *types.ExportDescription) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(ComAmazonawsDynamodbTypes.Companion_ExportDescription_.Create_ExportDescription_(Com_amazonaws_dynamodb_ExportDescription_ExportArn_ToDafny(input.ExportArn), Com_amazonaws_dynamodb_ExportDescription_ExportStatus_ToDafny(input.ExportStatus), Com_amazonaws_dynamodb_ExportDescription_StartTime_ToDafny(input.StartTime), Com_amazonaws_dynamodb_ExportDescription_EndTime_ToDafny(input.EndTime), Com_amazonaws_dynamodb_ExportDescription_ExportManifest_ToDafny(input.ExportManifest), Com_amazonaws_dynamodb_ExportDescription_TableArn_ToDafny(input.TableArn), Com_amazonaws_dynamodb_ExportDescription_TableId_ToDafny(input.TableId), Com_amazonaws_dynamodb_ExportDescription_ExportTime_ToDafny(input.ExportTime), Com_amazonaws_dynamodb_ExportDescription_ClientToken_ToDafny(input.ClientToken), Com_amazonaws_dynamodb_ExportDescription_S3Bucket_ToDafny(input.S3Bucket), Com_amazonaws_dynamodb_ExportDescription_S3BucketOwner_ToDafny(input.S3BucketOwner), Com_amazonaws_dynamodb_ExportDescription_S3Prefix_ToDafny(input.S3Prefix), Com_amazonaws_dynamodb_ExportDescription_S3SseAlgorithm_ToDafny(input.S3SseAlgorithm), Com_amazonaws_dynamodb_ExportDescription_S3SseKmsKeyId_ToDafny(input.S3SseKmsKeyId), Com_amazonaws_dynamodb_ExportDescription_FailureCode_ToDafny(input.FailureCode), Com_amazonaws_dynamodb_ExportDescription_FailureMessage_ToDafny(input.FailureMessage), Com_amazonaws_dynamodb_ExportDescription_ExportFormat_ToDafny(input.ExportFormat), Com_amazonaws_dynamodb_ExportDescription_BilledSizeBytes_ToDafny(input.BilledSizeBytes), Com_amazonaws_dynamodb_ExportDescription_ItemCount_ToDafny(input.ItemCount), Com_amazonaws_dynamodb_ExportDescription_ExportType_ToDafny(input.ExportType), Com_amazonaws_dynamodb_ExportDescription_IncrementalExportSpecification_ToDafny(input.IncrementalExportSpecification))) + }() +} + +func Com_amazonaws_dynamodb_GetItemInput_TableName_ToDafny(input *string) dafny.Sequence { + return func() dafny.Sequence { + if input == nil { + return nil + } + return func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(*input)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }() + }() +} + +func Com_amazonaws_dynamodb_GetItemInput_Key_ToDafny(input map[string]types.AttributeValue) dafny.Map { + return func() dafny.Map { + + fieldValue := dafny.NewMapBuilder() + for key, val := range input { + fieldValue.Add(Com_amazonaws_dynamodb_Key_key_ToDafny(key), Com_amazonaws_dynamodb_Key_value_ToDafny(val)) + } + return fieldValue.ToMap() + }() +} + +func Com_amazonaws_dynamodb_GetItemInput_AttributesToGet_ToDafny(input []string) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + var fieldValue []interface{} = make([]interface{}, 0) + for _, val := range input { + element := Com_amazonaws_dynamodb_AttributeNameList_member_ToDafny(val) + fieldValue = append(fieldValue, element) + } + return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(fieldValue...)) + }() +} + +func Com_amazonaws_dynamodb_GetItemInput_ConsistentRead_ToDafny(input *bool) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(*input) + }() +} + +func Com_amazonaws_dynamodb_GetItemInput_ReturnConsumedCapacity_ToDafny(input types.ReturnConsumedCapacity) Wrappers.Option { + return func() Wrappers.Option { + var index int + for _, enumVal := range input.Values() { + index++ + if enumVal == input { + break + } + if index == len(input.Values()) { + return Wrappers.Companion_Option_.Create_None_() + } + + } + var enum interface{} + for allEnums, i := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_ReturnConsumedCapacity_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return Wrappers.Companion_Option_.Create_Some_(enum.(ComAmazonawsDynamodbTypes.ReturnConsumedCapacity)) + }() +} + +func Com_amazonaws_dynamodb_GetItemInput_ProjectionExpression_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 Com_amazonaws_dynamodb_GetItemInput_ExpressionAttributeNames_ToDafny(input map[string]string) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + fieldValue := dafny.NewMapBuilder() + for key, val := range input { + fieldValue.Add(Com_amazonaws_dynamodb_ExpressionAttributeNameMap_key_ToDafny(key), Com_amazonaws_dynamodb_ExpressionAttributeNameMap_value_ToDafny(val)) + } + return Wrappers.Companion_Option_.Create_Some_(fieldValue.ToMap()) + }() +} + +func Com_amazonaws_dynamodb_GetItemOutput_Item_ToDafny(input map[string]types.AttributeValue) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + fieldValue := dafny.NewMapBuilder() + for key, val := range input { + fieldValue.Add(Com_amazonaws_dynamodb_AttributeMap_key_ToDafny(key), Com_amazonaws_dynamodb_AttributeMap_value_ToDafny(val)) + } + return Wrappers.Companion_Option_.Create_Some_(fieldValue.ToMap()) + }() +} + +func Com_amazonaws_dynamodb_GetItemOutput_ConsumedCapacity_ToDafny(input *types.ConsumedCapacity) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(ComAmazonawsDynamodbTypes.Companion_ConsumedCapacity_.Create_ConsumedCapacity_(Com_amazonaws_dynamodb_ConsumedCapacity_TableName_ToDafny(input.TableName), Com_amazonaws_dynamodb_ConsumedCapacity_CapacityUnits_ToDafny(input.CapacityUnits), Com_amazonaws_dynamodb_ConsumedCapacity_ReadCapacityUnits_ToDafny(input.ReadCapacityUnits), Com_amazonaws_dynamodb_ConsumedCapacity_WriteCapacityUnits_ToDafny(input.WriteCapacityUnits), Com_amazonaws_dynamodb_ConsumedCapacity_Table_ToDafny(input.Table), Com_amazonaws_dynamodb_ConsumedCapacity_LocalSecondaryIndexes_ToDafny(input.LocalSecondaryIndexes), Com_amazonaws_dynamodb_ConsumedCapacity_GlobalSecondaryIndexes_ToDafny(input.GlobalSecondaryIndexes))) + }() +} + +func Com_amazonaws_dynamodb_GetResourcePolicyInput_ResourceArn_ToDafny(input *string) dafny.Sequence { + return func() dafny.Sequence { + if input == nil { + return nil + } + return func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(*input)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }() + }() +} + +func Com_amazonaws_dynamodb_GetResourcePolicyOutput_Policy_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 Com_amazonaws_dynamodb_GetResourcePolicyOutput_RevisionId_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 Com_amazonaws_dynamodb_ImportTableInput_ClientToken_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 Com_amazonaws_dynamodb_ImportTableInput_S3BucketSource_ToDafny(input *types.S3BucketSource) ComAmazonawsDynamodbTypes.S3BucketSource { + return func() ComAmazonawsDynamodbTypes.S3BucketSource { + if input == nil { + return ComAmazonawsDynamodbTypes.S3BucketSource{} + } + return ComAmazonawsDynamodbTypes.Companion_S3BucketSource_.Create_S3BucketSource_(Com_amazonaws_dynamodb_S3BucketSource_S3BucketOwner_ToDafny(input.S3BucketOwner), Com_amazonaws_dynamodb_S3BucketSource_S3Bucket_ToDafny(input.S3Bucket), Com_amazonaws_dynamodb_S3BucketSource_S3KeyPrefix_ToDafny(input.S3KeyPrefix)) + }() +} + +func Com_amazonaws_dynamodb_ImportTableInput_InputFormat_ToDafny(input types.InputFormat) ComAmazonawsDynamodbTypes.InputFormat { + return func() ComAmazonawsDynamodbTypes.InputFormat { + 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(ComAmazonawsDynamodbTypes.CompanionStruct_InputFormat_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return enum.(ComAmazonawsDynamodbTypes.InputFormat) + }() +} + +func Com_amazonaws_dynamodb_ImportTableInput_InputFormatOptions_ToDafny(input *types.InputFormatOptions) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(ComAmazonawsDynamodbTypes.Companion_InputFormatOptions_.Create_InputFormatOptions_(Com_amazonaws_dynamodb_InputFormatOptions_Csv_ToDafny(input.Csv))) + }() +} + +func Com_amazonaws_dynamodb_ImportTableInput_InputCompressionType_ToDafny(input types.InputCompressionType) Wrappers.Option { + return func() Wrappers.Option { + var index int + for _, enumVal := range input.Values() { + index++ + if enumVal == input { + break + } + if index == len(input.Values()) { + return Wrappers.Companion_Option_.Create_None_() + } + + } + var enum interface{} + for allEnums, i := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_InputCompressionType_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return Wrappers.Companion_Option_.Create_Some_(enum.(ComAmazonawsDynamodbTypes.InputCompressionType)) + }() +} + +func Com_amazonaws_dynamodb_ImportTableInput_TableCreationParameters_ToDafny(input *types.TableCreationParameters) ComAmazonawsDynamodbTypes.TableCreationParameters { + return func() ComAmazonawsDynamodbTypes.TableCreationParameters { + if input == nil { + return ComAmazonawsDynamodbTypes.TableCreationParameters{} + } + return ComAmazonawsDynamodbTypes.Companion_TableCreationParameters_.Create_TableCreationParameters_(Com_amazonaws_dynamodb_TableCreationParameters_TableName_ToDafny(input.TableName), Com_amazonaws_dynamodb_TableCreationParameters_AttributeDefinitions_ToDafny(input.AttributeDefinitions), Com_amazonaws_dynamodb_TableCreationParameters_KeySchema_ToDafny(input.KeySchema), Com_amazonaws_dynamodb_TableCreationParameters_BillingMode_ToDafny(input.BillingMode), Com_amazonaws_dynamodb_TableCreationParameters_ProvisionedThroughput_ToDafny(input.ProvisionedThroughput), Com_amazonaws_dynamodb_TableCreationParameters_OnDemandThroughput_ToDafny(input.OnDemandThroughput), Com_amazonaws_dynamodb_TableCreationParameters_SSESpecification_ToDafny(input.SSESpecification), Com_amazonaws_dynamodb_TableCreationParameters_GlobalSecondaryIndexes_ToDafny(input.GlobalSecondaryIndexes)) + }() +} + +func Com_amazonaws_dynamodb_ImportTableOutput_ImportTableDescription_ToDafny(input *types.ImportTableDescription) ComAmazonawsDynamodbTypes.ImportTableDescription { + return func() ComAmazonawsDynamodbTypes.ImportTableDescription { + if input == nil { + return ComAmazonawsDynamodbTypes.ImportTableDescription{} + } + return ComAmazonawsDynamodbTypes.Companion_ImportTableDescription_.Create_ImportTableDescription_(Com_amazonaws_dynamodb_ImportTableDescription_ImportArn_ToDafny(input.ImportArn), Com_amazonaws_dynamodb_ImportTableDescription_ImportStatus_ToDafny(input.ImportStatus), Com_amazonaws_dynamodb_ImportTableDescription_TableArn_ToDafny(input.TableArn), Com_amazonaws_dynamodb_ImportTableDescription_TableId_ToDafny(input.TableId), Com_amazonaws_dynamodb_ImportTableDescription_ClientToken_ToDafny(input.ClientToken), Com_amazonaws_dynamodb_ImportTableDescription_S3BucketSource_ToDafny(input.S3BucketSource), Com_amazonaws_dynamodb_ImportTableDescription_ErrorCount_ToDafny(input.ErrorCount), Com_amazonaws_dynamodb_ImportTableDescription_CloudWatchLogGroupArn_ToDafny(input.CloudWatchLogGroupArn), Com_amazonaws_dynamodb_ImportTableDescription_InputFormat_ToDafny(input.InputFormat), Com_amazonaws_dynamodb_ImportTableDescription_InputFormatOptions_ToDafny(input.InputFormatOptions), Com_amazonaws_dynamodb_ImportTableDescription_InputCompressionType_ToDafny(input.InputCompressionType), Com_amazonaws_dynamodb_ImportTableDescription_TableCreationParameters_ToDafny(input.TableCreationParameters), Com_amazonaws_dynamodb_ImportTableDescription_StartTime_ToDafny(input.StartTime), Com_amazonaws_dynamodb_ImportTableDescription_EndTime_ToDafny(input.EndTime), Com_amazonaws_dynamodb_ImportTableDescription_ProcessedSizeBytes_ToDafny(input.ProcessedSizeBytes), Com_amazonaws_dynamodb_ImportTableDescription_ProcessedItemCount_ToDafny(input.ProcessedItemCount), Com_amazonaws_dynamodb_ImportTableDescription_ImportedItemCount_ToDafny(input.ImportedItemCount), Com_amazonaws_dynamodb_ImportTableDescription_FailureCode_ToDafny(input.FailureCode), Com_amazonaws_dynamodb_ImportTableDescription_FailureMessage_ToDafny(input.FailureMessage)) + }() +} + +func Com_amazonaws_dynamodb_ListBackupsInput_TableName_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 Com_amazonaws_dynamodb_ListBackupsInput_Limit_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 Com_amazonaws_dynamodb_ListBackupsInput_TimeRangeLowerBound_ToDafny(input *time.Time) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + formattedTime := input.Format("2006-01-02T15:04:05.999999Z") + return Wrappers.Companion_Option_.Create_Some_(func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(formattedTime)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }()) + }() +} + +func Com_amazonaws_dynamodb_ListBackupsInput_TimeRangeUpperBound_ToDafny(input *time.Time) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + formattedTime := input.Format("2006-01-02T15:04:05.999999Z") + return Wrappers.Companion_Option_.Create_Some_(func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(formattedTime)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }()) + }() +} + +func Com_amazonaws_dynamodb_ListBackupsInput_ExclusiveStartBackupArn_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 Com_amazonaws_dynamodb_ListBackupsInput_BackupType_ToDafny(input types.BackupTypeFilter) Wrappers.Option { + return func() Wrappers.Option { + var index int + for _, enumVal := range input.Values() { + index++ + if enumVal == input { + break + } + if index == len(input.Values()) { + return Wrappers.Companion_Option_.Create_None_() + } + + } + var enum interface{} + for allEnums, i := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_BackupTypeFilter_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return Wrappers.Companion_Option_.Create_Some_(enum.(ComAmazonawsDynamodbTypes.BackupTypeFilter)) + }() +} + +func Com_amazonaws_dynamodb_ListBackupsOutput_BackupSummaries_ToDafny(input []types.BackupSummary) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + var fieldValue []interface{} = make([]interface{}, 0) + for _, val := range input { + element := Com_amazonaws_dynamodb_BackupSummaries_member_ToDafny(val) + fieldValue = append(fieldValue, element) + } + return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(fieldValue...)) + }() +} + +func Com_amazonaws_dynamodb_BackupSummaries_member_ToDafny(input types.BackupSummary) ComAmazonawsDynamodbTypes.BackupSummary { + return func() ComAmazonawsDynamodbTypes.BackupSummary { + + return ComAmazonawsDynamodbTypes.Companion_BackupSummary_.Create_BackupSummary_(Com_amazonaws_dynamodb_BackupSummary_TableName_ToDafny(input.TableName), Com_amazonaws_dynamodb_BackupSummary_TableId_ToDafny(input.TableId), Com_amazonaws_dynamodb_BackupSummary_TableArn_ToDafny(input.TableArn), Com_amazonaws_dynamodb_BackupSummary_BackupArn_ToDafny(input.BackupArn), Com_amazonaws_dynamodb_BackupSummary_BackupName_ToDafny(input.BackupName), Com_amazonaws_dynamodb_BackupSummary_BackupCreationDateTime_ToDafny(input.BackupCreationDateTime), Com_amazonaws_dynamodb_BackupSummary_BackupExpiryDateTime_ToDafny(input.BackupExpiryDateTime), Com_amazonaws_dynamodb_BackupSummary_BackupStatus_ToDafny(input.BackupStatus), Com_amazonaws_dynamodb_BackupSummary_BackupType_ToDafny(input.BackupType), Com_amazonaws_dynamodb_BackupSummary_BackupSizeBytes_ToDafny(input.BackupSizeBytes)) + }() +} + +func Com_amazonaws_dynamodb_BackupSummary_TableName_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 Com_amazonaws_dynamodb_BackupSummary_TableId_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 Com_amazonaws_dynamodb_BackupSummary_TableArn_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 Com_amazonaws_dynamodb_BackupSummary_BackupArn_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 Com_amazonaws_dynamodb_BackupSummary_BackupName_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 Com_amazonaws_dynamodb_BackupSummary_BackupCreationDateTime_ToDafny(input *time.Time) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + formattedTime := input.Format("2006-01-02T15:04:05.999999Z") + return Wrappers.Companion_Option_.Create_Some_(func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(formattedTime)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }()) + }() +} + +func Com_amazonaws_dynamodb_BackupSummary_BackupExpiryDateTime_ToDafny(input *time.Time) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + formattedTime := input.Format("2006-01-02T15:04:05.999999Z") + return Wrappers.Companion_Option_.Create_Some_(func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(formattedTime)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }()) + }() +} + +func Com_amazonaws_dynamodb_BackupSummary_BackupStatus_ToDafny(input types.BackupStatus) Wrappers.Option { + return func() Wrappers.Option { + var index int + for _, enumVal := range input.Values() { + index++ + if enumVal == input { + break + } + if index == len(input.Values()) { + return Wrappers.Companion_Option_.Create_None_() + } + + } + var enum interface{} + for allEnums, i := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_BackupStatus_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return Wrappers.Companion_Option_.Create_Some_(enum.(ComAmazonawsDynamodbTypes.BackupStatus)) + }() +} + +func Com_amazonaws_dynamodb_BackupSummary_BackupType_ToDafny(input types.BackupType) Wrappers.Option { + return func() Wrappers.Option { + var index int + for _, enumVal := range input.Values() { + index++ + if enumVal == input { + break + } + if index == len(input.Values()) { + return Wrappers.Companion_Option_.Create_None_() + } + + } + var enum interface{} + for allEnums, i := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_BackupType_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return Wrappers.Companion_Option_.Create_Some_(enum.(ComAmazonawsDynamodbTypes.BackupType)) + }() +} + +func Com_amazonaws_dynamodb_BackupSummary_BackupSizeBytes_ToDafny(input *int64) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(*input) + }() +} + +func Com_amazonaws_dynamodb_ListBackupsOutput_LastEvaluatedBackupArn_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 Com_amazonaws_dynamodb_ListContributorInsightsInput_TableName_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 Com_amazonaws_dynamodb_ListContributorInsightsInput_NextToken_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 Com_amazonaws_dynamodb_ListContributorInsightsInput_MaxResults_ToDafny(input int32) Wrappers.Option { + return func() Wrappers.Option { + + return Wrappers.Companion_Option_.Create_Some_(input) + }() +} + +func Com_amazonaws_dynamodb_ListContributorInsightsOutput_ContributorInsightsSummaries_ToDafny(input []types.ContributorInsightsSummary) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + var fieldValue []interface{} = make([]interface{}, 0) + for _, val := range input { + element := Com_amazonaws_dynamodb_ContributorInsightsSummaries_member_ToDafny(val) + fieldValue = append(fieldValue, element) + } + return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(fieldValue...)) + }() +} + +func Com_amazonaws_dynamodb_ContributorInsightsSummaries_member_ToDafny(input types.ContributorInsightsSummary) ComAmazonawsDynamodbTypes.ContributorInsightsSummary { + return func() ComAmazonawsDynamodbTypes.ContributorInsightsSummary { + + return ComAmazonawsDynamodbTypes.Companion_ContributorInsightsSummary_.Create_ContributorInsightsSummary_(Com_amazonaws_dynamodb_ContributorInsightsSummary_TableName_ToDafny(input.TableName), Com_amazonaws_dynamodb_ContributorInsightsSummary_IndexName_ToDafny(input.IndexName), Com_amazonaws_dynamodb_ContributorInsightsSummary_ContributorInsightsStatus_ToDafny(input.ContributorInsightsStatus)) + }() +} + +func Com_amazonaws_dynamodb_ContributorInsightsSummary_TableName_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 Com_amazonaws_dynamodb_ContributorInsightsSummary_IndexName_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 Com_amazonaws_dynamodb_ContributorInsightsSummary_ContributorInsightsStatus_ToDafny(input types.ContributorInsightsStatus) Wrappers.Option { + return func() Wrappers.Option { + var index int + for _, enumVal := range input.Values() { + index++ + if enumVal == input { + break + } + if index == len(input.Values()) { + return Wrappers.Companion_Option_.Create_None_() + } + + } + var enum interface{} + for allEnums, i := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_ContributorInsightsStatus_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return Wrappers.Companion_Option_.Create_Some_(enum.(ComAmazonawsDynamodbTypes.ContributorInsightsStatus)) + }() +} + +func Com_amazonaws_dynamodb_ListContributorInsightsOutput_NextToken_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 Com_amazonaws_dynamodb_ListExportsInput_TableArn_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 Com_amazonaws_dynamodb_ListExportsInput_MaxResults_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 Com_amazonaws_dynamodb_ListExportsInput_NextToken_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 Com_amazonaws_dynamodb_ListExportsOutput_ExportSummaries_ToDafny(input []types.ExportSummary) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + var fieldValue []interface{} = make([]interface{}, 0) + for _, val := range input { + element := Com_amazonaws_dynamodb_ExportSummaries_member_ToDafny(val) + fieldValue = append(fieldValue, element) + } + return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(fieldValue...)) + }() +} + +func Com_amazonaws_dynamodb_ExportSummaries_member_ToDafny(input types.ExportSummary) ComAmazonawsDynamodbTypes.ExportSummary { + return func() ComAmazonawsDynamodbTypes.ExportSummary { + + return ComAmazonawsDynamodbTypes.Companion_ExportSummary_.Create_ExportSummary_(Com_amazonaws_dynamodb_ExportSummary_ExportArn_ToDafny(input.ExportArn), Com_amazonaws_dynamodb_ExportSummary_ExportStatus_ToDafny(input.ExportStatus), Com_amazonaws_dynamodb_ExportSummary_ExportType_ToDafny(input.ExportType)) + }() +} + +func Com_amazonaws_dynamodb_ExportSummary_ExportArn_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 Com_amazonaws_dynamodb_ExportSummary_ExportStatus_ToDafny(input types.ExportStatus) Wrappers.Option { + return func() Wrappers.Option { + var index int + for _, enumVal := range input.Values() { + index++ + if enumVal == input { + break + } + if index == len(input.Values()) { + return Wrappers.Companion_Option_.Create_None_() + } + + } + var enum interface{} + for allEnums, i := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_ExportStatus_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return Wrappers.Companion_Option_.Create_Some_(enum.(ComAmazonawsDynamodbTypes.ExportStatus)) + }() +} + +func Com_amazonaws_dynamodb_ExportSummary_ExportType_ToDafny(input types.ExportType) Wrappers.Option { + return func() Wrappers.Option { + var index int + for _, enumVal := range input.Values() { + index++ + if enumVal == input { + break + } + if index == len(input.Values()) { + return Wrappers.Companion_Option_.Create_None_() + } + + } + var enum interface{} + for allEnums, i := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_ExportType_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return Wrappers.Companion_Option_.Create_Some_(enum.(ComAmazonawsDynamodbTypes.ExportType)) + }() +} + +func Com_amazonaws_dynamodb_ListExportsOutput_NextToken_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 Com_amazonaws_dynamodb_ListGlobalTablesInput_ExclusiveStartGlobalTableName_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 Com_amazonaws_dynamodb_ListGlobalTablesInput_Limit_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 Com_amazonaws_dynamodb_ListGlobalTablesInput_RegionName_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 Com_amazonaws_dynamodb_ListGlobalTablesOutput_GlobalTables_ToDafny(input []types.GlobalTable) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + var fieldValue []interface{} = make([]interface{}, 0) + for _, val := range input { + element := Com_amazonaws_dynamodb_GlobalTableList_member_ToDafny(val) + fieldValue = append(fieldValue, element) + } + return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(fieldValue...)) + }() +} + +func Com_amazonaws_dynamodb_GlobalTableList_member_ToDafny(input types.GlobalTable) ComAmazonawsDynamodbTypes.GlobalTable { + return func() ComAmazonawsDynamodbTypes.GlobalTable { + + return ComAmazonawsDynamodbTypes.Companion_GlobalTable_.Create_GlobalTable_(Com_amazonaws_dynamodb_GlobalTable_GlobalTableName_ToDafny(input.GlobalTableName), Com_amazonaws_dynamodb_GlobalTable_ReplicationGroup_ToDafny(input.ReplicationGroup)) + }() +} + +func Com_amazonaws_dynamodb_GlobalTable_GlobalTableName_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 Com_amazonaws_dynamodb_GlobalTable_ReplicationGroup_ToDafny(input []types.Replica) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + var fieldValue []interface{} = make([]interface{}, 0) + for _, val := range input { + element := Com_amazonaws_dynamodb_ReplicaList_member_ToDafny(val) + fieldValue = append(fieldValue, element) + } + return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(fieldValue...)) + }() +} + +func Com_amazonaws_dynamodb_ListGlobalTablesOutput_LastEvaluatedGlobalTableName_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 Com_amazonaws_dynamodb_ListImportsInput_TableArn_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 Com_amazonaws_dynamodb_ListImportsInput_PageSize_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 Com_amazonaws_dynamodb_ListImportsInput_NextToken_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 Com_amazonaws_dynamodb_ListImportsOutput_ImportSummaryList_ToDafny(input []types.ImportSummary) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + var fieldValue []interface{} = make([]interface{}, 0) + for _, val := range input { + element := Com_amazonaws_dynamodb_ImportSummaryList_member_ToDafny(val) + fieldValue = append(fieldValue, element) + } + return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(fieldValue...)) + }() +} + +func Com_amazonaws_dynamodb_ImportSummaryList_member_ToDafny(input types.ImportSummary) ComAmazonawsDynamodbTypes.ImportSummary { + return func() ComAmazonawsDynamodbTypes.ImportSummary { + + return ComAmazonawsDynamodbTypes.Companion_ImportSummary_.Create_ImportSummary_(Com_amazonaws_dynamodb_ImportSummary_ImportArn_ToDafny(input.ImportArn), Com_amazonaws_dynamodb_ImportSummary_ImportStatus_ToDafny(input.ImportStatus), Com_amazonaws_dynamodb_ImportSummary_TableArn_ToDafny(input.TableArn), Com_amazonaws_dynamodb_ImportSummary_S3BucketSource_ToDafny(input.S3BucketSource), Com_amazonaws_dynamodb_ImportSummary_CloudWatchLogGroupArn_ToDafny(input.CloudWatchLogGroupArn), Com_amazonaws_dynamodb_ImportSummary_InputFormat_ToDafny(input.InputFormat), Com_amazonaws_dynamodb_ImportSummary_StartTime_ToDafny(input.StartTime), Com_amazonaws_dynamodb_ImportSummary_EndTime_ToDafny(input.EndTime)) + }() +} + +func Com_amazonaws_dynamodb_ImportSummary_ImportArn_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 Com_amazonaws_dynamodb_ImportSummary_ImportStatus_ToDafny(input types.ImportStatus) Wrappers.Option { + return func() Wrappers.Option { + var index int + for _, enumVal := range input.Values() { + index++ + if enumVal == input { + break + } + if index == len(input.Values()) { + return Wrappers.Companion_Option_.Create_None_() + } + + } + var enum interface{} + for allEnums, i := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_ImportStatus_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return Wrappers.Companion_Option_.Create_Some_(enum.(ComAmazonawsDynamodbTypes.ImportStatus)) + }() +} + +func Com_amazonaws_dynamodb_ImportSummary_TableArn_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 Com_amazonaws_dynamodb_ImportSummary_S3BucketSource_ToDafny(input *types.S3BucketSource) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(ComAmazonawsDynamodbTypes.Companion_S3BucketSource_.Create_S3BucketSource_(Com_amazonaws_dynamodb_S3BucketSource_S3BucketOwner_ToDafny(input.S3BucketOwner), Com_amazonaws_dynamodb_S3BucketSource_S3Bucket_ToDafny(input.S3Bucket), Com_amazonaws_dynamodb_S3BucketSource_S3KeyPrefix_ToDafny(input.S3KeyPrefix))) + }() +} + +func Com_amazonaws_dynamodb_ImportSummary_CloudWatchLogGroupArn_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 Com_amazonaws_dynamodb_ImportSummary_InputFormat_ToDafny(input types.InputFormat) Wrappers.Option { + return func() Wrappers.Option { + var index int + for _, enumVal := range input.Values() { + index++ + if enumVal == input { + break + } + if index == len(input.Values()) { + return Wrappers.Companion_Option_.Create_None_() + } + + } + var enum interface{} + for allEnums, i := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_InputFormat_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return Wrappers.Companion_Option_.Create_Some_(enum.(ComAmazonawsDynamodbTypes.InputFormat)) + }() +} + +func Com_amazonaws_dynamodb_ImportSummary_StartTime_ToDafny(input *time.Time) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + formattedTime := input.Format("2006-01-02T15:04:05.999999Z") + return Wrappers.Companion_Option_.Create_Some_(func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(formattedTime)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }()) + }() +} + +func Com_amazonaws_dynamodb_ImportSummary_EndTime_ToDafny(input *time.Time) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + formattedTime := input.Format("2006-01-02T15:04:05.999999Z") + return Wrappers.Companion_Option_.Create_Some_(func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(formattedTime)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }()) + }() +} + +func Com_amazonaws_dynamodb_ListImportsOutput_NextToken_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 Com_amazonaws_dynamodb_ListTablesInput_ExclusiveStartTableName_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 Com_amazonaws_dynamodb_ListTablesInput_Limit_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 Com_amazonaws_dynamodb_ListTablesOutput_TableNames_ToDafny(input []string) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + var fieldValue []interface{} = make([]interface{}, 0) + for _, val := range input { + element := Com_amazonaws_dynamodb_TableNameList_member_ToDafny(val) + fieldValue = append(fieldValue, element) + } + return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(fieldValue...)) + }() +} + +func Com_amazonaws_dynamodb_TableNameList_member_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 Com_amazonaws_dynamodb_ListTablesOutput_LastEvaluatedTableName_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 Com_amazonaws_dynamodb_ListTagsOfResourceInput_ResourceArn_ToDafny(input *string) dafny.Sequence { + return func() dafny.Sequence { + if input == nil { + return nil + } + return func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(*input)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }() + }() +} + +func Com_amazonaws_dynamodb_ListTagsOfResourceInput_NextToken_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 Com_amazonaws_dynamodb_ListTagsOfResourceOutput_Tags_ToDafny(input []types.Tag) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + var fieldValue []interface{} = make([]interface{}, 0) + for _, val := range input { + element := Com_amazonaws_dynamodb_TagList_member_ToDafny(val) + fieldValue = append(fieldValue, element) + } + return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(fieldValue...)) + }() +} + +func Com_amazonaws_dynamodb_ListTagsOfResourceOutput_NextToken_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 Com_amazonaws_dynamodb_PutItemInput_TableName_ToDafny(input *string) dafny.Sequence { + return func() dafny.Sequence { + if input == nil { + return nil + } + return func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(*input)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }() + }() +} + +func Com_amazonaws_dynamodb_PutItemInput_Item_ToDafny(input map[string]types.AttributeValue) dafny.Map { + return func() dafny.Map { + + fieldValue := dafny.NewMapBuilder() + for key, val := range input { + fieldValue.Add(Com_amazonaws_dynamodb_PutItemInputAttributeMap_key_ToDafny(key), Com_amazonaws_dynamodb_PutItemInputAttributeMap_value_ToDafny(val)) + } + return fieldValue.ToMap() + }() +} + +func Com_amazonaws_dynamodb_PutItemInput_Expected_ToDafny(input map[string]types.ExpectedAttributeValue) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + fieldValue := dafny.NewMapBuilder() + for key, val := range input { + fieldValue.Add(Com_amazonaws_dynamodb_ExpectedAttributeMap_key_ToDafny(key), Com_amazonaws_dynamodb_ExpectedAttributeMap_value_ToDafny(val)) + } + return Wrappers.Companion_Option_.Create_Some_(fieldValue.ToMap()) + }() +} + +func Com_amazonaws_dynamodb_PutItemInput_ReturnValues_ToDafny(input types.ReturnValue) Wrappers.Option { + return func() Wrappers.Option { + var index int + for _, enumVal := range input.Values() { + index++ + if enumVal == input { + break + } + if index == len(input.Values()) { + return Wrappers.Companion_Option_.Create_None_() + } + + } + var enum interface{} + for allEnums, i := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_ReturnValue_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return Wrappers.Companion_Option_.Create_Some_(enum.(ComAmazonawsDynamodbTypes.ReturnValue)) + }() +} + +func Com_amazonaws_dynamodb_PutItemInput_ReturnConsumedCapacity_ToDafny(input types.ReturnConsumedCapacity) Wrappers.Option { + return func() Wrappers.Option { + var index int + for _, enumVal := range input.Values() { + index++ + if enumVal == input { + break + } + if index == len(input.Values()) { + return Wrappers.Companion_Option_.Create_None_() + } + + } + var enum interface{} + for allEnums, i := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_ReturnConsumedCapacity_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return Wrappers.Companion_Option_.Create_Some_(enum.(ComAmazonawsDynamodbTypes.ReturnConsumedCapacity)) + }() +} + +func Com_amazonaws_dynamodb_PutItemInput_ReturnItemCollectionMetrics_ToDafny(input types.ReturnItemCollectionMetrics) Wrappers.Option { + return func() Wrappers.Option { + var index int + for _, enumVal := range input.Values() { + index++ + if enumVal == input { + break + } + if index == len(input.Values()) { + return Wrappers.Companion_Option_.Create_None_() + } + + } + var enum interface{} + for allEnums, i := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_ReturnItemCollectionMetrics_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return Wrappers.Companion_Option_.Create_Some_(enum.(ComAmazonawsDynamodbTypes.ReturnItemCollectionMetrics)) + }() +} + +func Com_amazonaws_dynamodb_PutItemInput_ConditionalOperator_ToDafny(input types.ConditionalOperator) Wrappers.Option { + return func() Wrappers.Option { + var index int + for _, enumVal := range input.Values() { + index++ + if enumVal == input { + break + } + if index == len(input.Values()) { + return Wrappers.Companion_Option_.Create_None_() + } + + } + var enum interface{} + for allEnums, i := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_ConditionalOperator_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return Wrappers.Companion_Option_.Create_Some_(enum.(ComAmazonawsDynamodbTypes.ConditionalOperator)) + }() +} + +func Com_amazonaws_dynamodb_PutItemInput_ConditionExpression_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 Com_amazonaws_dynamodb_PutItemInput_ExpressionAttributeNames_ToDafny(input map[string]string) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + fieldValue := dafny.NewMapBuilder() + for key, val := range input { + fieldValue.Add(Com_amazonaws_dynamodb_ExpressionAttributeNameMap_key_ToDafny(key), Com_amazonaws_dynamodb_ExpressionAttributeNameMap_value_ToDafny(val)) + } + return Wrappers.Companion_Option_.Create_Some_(fieldValue.ToMap()) + }() +} + +func Com_amazonaws_dynamodb_PutItemInput_ExpressionAttributeValues_ToDafny(input map[string]types.AttributeValue) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + fieldValue := dafny.NewMapBuilder() + for key, val := range input { + fieldValue.Add(Com_amazonaws_dynamodb_ExpressionAttributeValueMap_key_ToDafny(key), Com_amazonaws_dynamodb_ExpressionAttributeValueMap_value_ToDafny(val)) + } + return Wrappers.Companion_Option_.Create_Some_(fieldValue.ToMap()) + }() +} + +func Com_amazonaws_dynamodb_PutItemInput_ReturnValuesOnConditionCheckFailure_ToDafny(input types.ReturnValuesOnConditionCheckFailure) Wrappers.Option { + return func() Wrappers.Option { + var index int + for _, enumVal := range input.Values() { + index++ + if enumVal == input { + break + } + if index == len(input.Values()) { + return Wrappers.Companion_Option_.Create_None_() + } + + } + var enum interface{} + for allEnums, i := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_ReturnValuesOnConditionCheckFailure_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return Wrappers.Companion_Option_.Create_Some_(enum.(ComAmazonawsDynamodbTypes.ReturnValuesOnConditionCheckFailure)) + }() +} + +func Com_amazonaws_dynamodb_PutItemOutput_Attributes_ToDafny(input map[string]types.AttributeValue) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + fieldValue := dafny.NewMapBuilder() + for key, val := range input { + fieldValue.Add(Com_amazonaws_dynamodb_AttributeMap_key_ToDafny(key), Com_amazonaws_dynamodb_AttributeMap_value_ToDafny(val)) + } + return Wrappers.Companion_Option_.Create_Some_(fieldValue.ToMap()) + }() +} + +func Com_amazonaws_dynamodb_PutItemOutput_ConsumedCapacity_ToDafny(input *types.ConsumedCapacity) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(ComAmazonawsDynamodbTypes.Companion_ConsumedCapacity_.Create_ConsumedCapacity_(Com_amazonaws_dynamodb_ConsumedCapacity_TableName_ToDafny(input.TableName), Com_amazonaws_dynamodb_ConsumedCapacity_CapacityUnits_ToDafny(input.CapacityUnits), Com_amazonaws_dynamodb_ConsumedCapacity_ReadCapacityUnits_ToDafny(input.ReadCapacityUnits), Com_amazonaws_dynamodb_ConsumedCapacity_WriteCapacityUnits_ToDafny(input.WriteCapacityUnits), Com_amazonaws_dynamodb_ConsumedCapacity_Table_ToDafny(input.Table), Com_amazonaws_dynamodb_ConsumedCapacity_LocalSecondaryIndexes_ToDafny(input.LocalSecondaryIndexes), Com_amazonaws_dynamodb_ConsumedCapacity_GlobalSecondaryIndexes_ToDafny(input.GlobalSecondaryIndexes))) + }() +} + +func Com_amazonaws_dynamodb_PutItemOutput_ItemCollectionMetrics_ToDafny(input *types.ItemCollectionMetrics) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(ComAmazonawsDynamodbTypes.Companion_ItemCollectionMetrics_.Create_ItemCollectionMetrics_(Com_amazonaws_dynamodb_ItemCollectionMetrics_ItemCollectionKey_ToDafny(input.ItemCollectionKey), Com_amazonaws_dynamodb_ItemCollectionMetrics_SizeEstimateRangeGB_ToDafny(input.SizeEstimateRangeGB))) + }() +} + +func Com_amazonaws_dynamodb_PutResourcePolicyInput_ResourceArn_ToDafny(input *string) dafny.Sequence { + return func() dafny.Sequence { + if input == nil { + return nil + } + return func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(*input)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }() + }() +} + +func Com_amazonaws_dynamodb_PutResourcePolicyInput_Policy_ToDafny(input *string) dafny.Sequence { + return func() dafny.Sequence { + if input == nil { + return nil + } + return func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(*input)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }() + }() +} + +func Com_amazonaws_dynamodb_PutResourcePolicyInput_ExpectedRevisionId_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 Com_amazonaws_dynamodb_PutResourcePolicyInput_ConfirmRemoveSelfResourceAccess_ToDafny(input bool) Wrappers.Option { + return func() Wrappers.Option { + + return Wrappers.Companion_Option_.Create_Some_(input) + }() +} + +func Com_amazonaws_dynamodb_PutResourcePolicyOutput_RevisionId_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 Com_amazonaws_dynamodb_QueryInput_TableName_ToDafny(input *string) dafny.Sequence { + return func() dafny.Sequence { + if input == nil { + return nil + } + return func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(*input)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }() + }() +} + +func Com_amazonaws_dynamodb_QueryInput_IndexName_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 Com_amazonaws_dynamodb_QueryInput_Select_ToDafny(input types.Select) Wrappers.Option { + return func() Wrappers.Option { + var index int + for _, enumVal := range input.Values() { + index++ + if enumVal == input { + break + } + if index == len(input.Values()) { + return Wrappers.Companion_Option_.Create_None_() + } + + } + var enum interface{} + for allEnums, i := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_Select_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return Wrappers.Companion_Option_.Create_Some_(enum.(ComAmazonawsDynamodbTypes.Select)) + }() +} + +func Com_amazonaws_dynamodb_QueryInput_AttributesToGet_ToDafny(input []string) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + var fieldValue []interface{} = make([]interface{}, 0) + for _, val := range input { + element := Com_amazonaws_dynamodb_AttributeNameList_member_ToDafny(val) + fieldValue = append(fieldValue, element) + } + return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(fieldValue...)) + }() +} + +func Com_amazonaws_dynamodb_QueryInput_Limit_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 Com_amazonaws_dynamodb_QueryInput_ConsistentRead_ToDafny(input *bool) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(*input) + }() +} + +func Com_amazonaws_dynamodb_QueryInput_KeyConditions_ToDafny(input map[string]types.Condition) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + fieldValue := dafny.NewMapBuilder() + for key, val := range input { + fieldValue.Add(Com_amazonaws_dynamodb_KeyConditions_key_ToDafny(key), Com_amazonaws_dynamodb_KeyConditions_value_ToDafny(val)) + } + return Wrappers.Companion_Option_.Create_Some_(fieldValue.ToMap()) + }() +} + +func Com_amazonaws_dynamodb_KeyConditions_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 Com_amazonaws_dynamodb_KeyConditions_value_ToDafny(input types.Condition) ComAmazonawsDynamodbTypes.Condition { + return func() ComAmazonawsDynamodbTypes.Condition { + + return ComAmazonawsDynamodbTypes.Companion_Condition_.Create_Condition_(Com_amazonaws_dynamodb_Condition_AttributeValueList_ToDafny(input.AttributeValueList), Com_amazonaws_dynamodb_Condition_ComparisonOperator_ToDafny(input.ComparisonOperator)) + }() +} + +func Com_amazonaws_dynamodb_Condition_AttributeValueList_ToDafny(input []types.AttributeValue) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + var fieldValue []interface{} = make([]interface{}, 0) + for _, val := range input { + element := Com_amazonaws_dynamodb_AttributeValueList_member_ToDafny(val) + fieldValue = append(fieldValue, element) + } + return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(fieldValue...)) + }() +} + +func Com_amazonaws_dynamodb_Condition_ComparisonOperator_ToDafny(input types.ComparisonOperator) ComAmazonawsDynamodbTypes.ComparisonOperator { + return func() ComAmazonawsDynamodbTypes.ComparisonOperator { + 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(ComAmazonawsDynamodbTypes.CompanionStruct_ComparisonOperator_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return enum.(ComAmazonawsDynamodbTypes.ComparisonOperator) + }() +} + +func Com_amazonaws_dynamodb_QueryInput_QueryFilter_ToDafny(input map[string]types.Condition) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + fieldValue := dafny.NewMapBuilder() + for key, val := range input { + fieldValue.Add(Com_amazonaws_dynamodb_FilterConditionMap_key_ToDafny(key), Com_amazonaws_dynamodb_FilterConditionMap_value_ToDafny(val)) + } + return Wrappers.Companion_Option_.Create_Some_(fieldValue.ToMap()) + }() +} + +func Com_amazonaws_dynamodb_FilterConditionMap_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 Com_amazonaws_dynamodb_FilterConditionMap_value_ToDafny(input types.Condition) ComAmazonawsDynamodbTypes.Condition { + return func() ComAmazonawsDynamodbTypes.Condition { + + return ComAmazonawsDynamodbTypes.Companion_Condition_.Create_Condition_(Com_amazonaws_dynamodb_Condition_AttributeValueList_ToDafny(input.AttributeValueList), Com_amazonaws_dynamodb_Condition_ComparisonOperator_ToDafny(input.ComparisonOperator)) + }() +} + +func Com_amazonaws_dynamodb_QueryInput_ConditionalOperator_ToDafny(input types.ConditionalOperator) Wrappers.Option { + return func() Wrappers.Option { + var index int + for _, enumVal := range input.Values() { + index++ + if enumVal == input { + break + } + if index == len(input.Values()) { + return Wrappers.Companion_Option_.Create_None_() + } + + } + var enum interface{} + for allEnums, i := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_ConditionalOperator_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return Wrappers.Companion_Option_.Create_Some_(enum.(ComAmazonawsDynamodbTypes.ConditionalOperator)) + }() +} + +func Com_amazonaws_dynamodb_QueryInput_ScanIndexForward_ToDafny(input *bool) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(*input) + }() +} + +func Com_amazonaws_dynamodb_QueryInput_ExclusiveStartKey_ToDafny(input map[string]types.AttributeValue) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + fieldValue := dafny.NewMapBuilder() + for key, val := range input { + fieldValue.Add(Com_amazonaws_dynamodb_Key_key_ToDafny(key), Com_amazonaws_dynamodb_Key_value_ToDafny(val)) + } + return Wrappers.Companion_Option_.Create_Some_(fieldValue.ToMap()) + }() +} + +func Com_amazonaws_dynamodb_QueryInput_ReturnConsumedCapacity_ToDafny(input types.ReturnConsumedCapacity) Wrappers.Option { + return func() Wrappers.Option { + var index int + for _, enumVal := range input.Values() { + index++ + if enumVal == input { + break + } + if index == len(input.Values()) { + return Wrappers.Companion_Option_.Create_None_() + } + + } + var enum interface{} + for allEnums, i := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_ReturnConsumedCapacity_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return Wrappers.Companion_Option_.Create_Some_(enum.(ComAmazonawsDynamodbTypes.ReturnConsumedCapacity)) + }() +} + +func Com_amazonaws_dynamodb_QueryInput_ProjectionExpression_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 Com_amazonaws_dynamodb_QueryInput_FilterExpression_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 Com_amazonaws_dynamodb_QueryInput_KeyConditionExpression_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 Com_amazonaws_dynamodb_QueryInput_ExpressionAttributeNames_ToDafny(input map[string]string) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + fieldValue := dafny.NewMapBuilder() + for key, val := range input { + fieldValue.Add(Com_amazonaws_dynamodb_ExpressionAttributeNameMap_key_ToDafny(key), Com_amazonaws_dynamodb_ExpressionAttributeNameMap_value_ToDafny(val)) + } + return Wrappers.Companion_Option_.Create_Some_(fieldValue.ToMap()) + }() +} + +func Com_amazonaws_dynamodb_QueryInput_ExpressionAttributeValues_ToDafny(input map[string]types.AttributeValue) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + fieldValue := dafny.NewMapBuilder() + for key, val := range input { + fieldValue.Add(Com_amazonaws_dynamodb_ExpressionAttributeValueMap_key_ToDafny(key), Com_amazonaws_dynamodb_ExpressionAttributeValueMap_value_ToDafny(val)) + } + return Wrappers.Companion_Option_.Create_Some_(fieldValue.ToMap()) + }() +} + +func Com_amazonaws_dynamodb_QueryOutput_Items_ToDafny(input []map[string]types.AttributeValue) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + var fieldValue []interface{} = make([]interface{}, 0) + for _, val := range input { + element := Com_amazonaws_dynamodb_ItemList_member_ToDafny(val) + fieldValue = append(fieldValue, element) + } + return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(fieldValue...)) + }() +} + +func Com_amazonaws_dynamodb_QueryOutput_Count_ToDafny(input int32) Wrappers.Option { + return func() Wrappers.Option { + + return Wrappers.Companion_Option_.Create_Some_(input) + }() +} + +func Com_amazonaws_dynamodb_QueryOutput_ScannedCount_ToDafny(input int32) Wrappers.Option { + return func() Wrappers.Option { + + return Wrappers.Companion_Option_.Create_Some_(input) + }() +} + +func Com_amazonaws_dynamodb_QueryOutput_LastEvaluatedKey_ToDafny(input map[string]types.AttributeValue) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + fieldValue := dafny.NewMapBuilder() + for key, val := range input { + fieldValue.Add(Com_amazonaws_dynamodb_Key_key_ToDafny(key), Com_amazonaws_dynamodb_Key_value_ToDafny(val)) + } + return Wrappers.Companion_Option_.Create_Some_(fieldValue.ToMap()) + }() +} + +func Com_amazonaws_dynamodb_QueryOutput_ConsumedCapacity_ToDafny(input *types.ConsumedCapacity) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(ComAmazonawsDynamodbTypes.Companion_ConsumedCapacity_.Create_ConsumedCapacity_(Com_amazonaws_dynamodb_ConsumedCapacity_TableName_ToDafny(input.TableName), Com_amazonaws_dynamodb_ConsumedCapacity_CapacityUnits_ToDafny(input.CapacityUnits), Com_amazonaws_dynamodb_ConsumedCapacity_ReadCapacityUnits_ToDafny(input.ReadCapacityUnits), Com_amazonaws_dynamodb_ConsumedCapacity_WriteCapacityUnits_ToDafny(input.WriteCapacityUnits), Com_amazonaws_dynamodb_ConsumedCapacity_Table_ToDafny(input.Table), Com_amazonaws_dynamodb_ConsumedCapacity_LocalSecondaryIndexes_ToDafny(input.LocalSecondaryIndexes), Com_amazonaws_dynamodb_ConsumedCapacity_GlobalSecondaryIndexes_ToDafny(input.GlobalSecondaryIndexes))) + }() +} + +func Com_amazonaws_dynamodb_RestoreTableFromBackupInput_TargetTableName_ToDafny(input *string) dafny.Sequence { + return func() dafny.Sequence { + if input == nil { + return nil + } + return func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(*input)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }() + }() +} + +func Com_amazonaws_dynamodb_RestoreTableFromBackupInput_BackupArn_ToDafny(input *string) dafny.Sequence { + return func() dafny.Sequence { + if input == nil { + return nil + } + return func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(*input)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }() + }() +} + +func Com_amazonaws_dynamodb_RestoreTableFromBackupInput_BillingModeOverride_ToDafny(input types.BillingMode) Wrappers.Option { + return func() Wrappers.Option { + var index int + for _, enumVal := range input.Values() { + index++ + if enumVal == input { + break + } + if index == len(input.Values()) { + return Wrappers.Companion_Option_.Create_None_() + } + + } + var enum interface{} + for allEnums, i := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_BillingMode_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return Wrappers.Companion_Option_.Create_Some_(enum.(ComAmazonawsDynamodbTypes.BillingMode)) + }() +} + +func Com_amazonaws_dynamodb_RestoreTableFromBackupInput_GlobalSecondaryIndexOverride_ToDafny(input []types.GlobalSecondaryIndex) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + var fieldValue []interface{} = make([]interface{}, 0) + for _, val := range input { + element := Com_amazonaws_dynamodb_GlobalSecondaryIndexList_member_ToDafny(val) + fieldValue = append(fieldValue, element) + } + return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(fieldValue...)) + }() +} + +func Com_amazonaws_dynamodb_RestoreTableFromBackupInput_LocalSecondaryIndexOverride_ToDafny(input []types.LocalSecondaryIndex) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + var fieldValue []interface{} = make([]interface{}, 0) + for _, val := range input { + element := Com_amazonaws_dynamodb_LocalSecondaryIndexList_member_ToDafny(val) + fieldValue = append(fieldValue, element) + } + return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(fieldValue...)) + }() +} + +func Com_amazonaws_dynamodb_RestoreTableFromBackupInput_ProvisionedThroughputOverride_ToDafny(input *types.ProvisionedThroughput) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(ComAmazonawsDynamodbTypes.Companion_ProvisionedThroughput_.Create_ProvisionedThroughput_(Com_amazonaws_dynamodb_ProvisionedThroughput_ReadCapacityUnits_ToDafny(input.ReadCapacityUnits), Com_amazonaws_dynamodb_ProvisionedThroughput_WriteCapacityUnits_ToDafny(input.WriteCapacityUnits))) + }() +} + +func Com_amazonaws_dynamodb_RestoreTableFromBackupInput_OnDemandThroughputOverride_ToDafny(input *types.OnDemandThroughput) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(ComAmazonawsDynamodbTypes.Companion_OnDemandThroughput_.Create_OnDemandThroughput_(Com_amazonaws_dynamodb_OnDemandThroughput_MaxReadRequestUnits_ToDafny(input.MaxReadRequestUnits), Com_amazonaws_dynamodb_OnDemandThroughput_MaxWriteRequestUnits_ToDafny(input.MaxWriteRequestUnits))) + }() +} + +func Com_amazonaws_dynamodb_RestoreTableFromBackupInput_SSESpecificationOverride_ToDafny(input *types.SSESpecification) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(ComAmazonawsDynamodbTypes.Companion_SSESpecification_.Create_SSESpecification_(Com_amazonaws_dynamodb_SSESpecification_Enabled_ToDafny(input.Enabled), Com_amazonaws_dynamodb_SSESpecification_SSEType_ToDafny(input.SSEType), Com_amazonaws_dynamodb_SSESpecification_KMSMasterKeyId_ToDafny(input.KMSMasterKeyId))) + }() +} + +func Com_amazonaws_dynamodb_RestoreTableFromBackupOutput_TableDescription_ToDafny(input *types.TableDescription) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(ComAmazonawsDynamodbTypes.Companion_TableDescription_.Create_TableDescription_(Com_amazonaws_dynamodb_TableDescription_AttributeDefinitions_ToDafny(input.AttributeDefinitions), Com_amazonaws_dynamodb_TableDescription_TableName_ToDafny(input.TableName), Com_amazonaws_dynamodb_TableDescription_KeySchema_ToDafny(input.KeySchema), Com_amazonaws_dynamodb_TableDescription_TableStatus_ToDafny(input.TableStatus), Com_amazonaws_dynamodb_TableDescription_CreationDateTime_ToDafny(input.CreationDateTime), Com_amazonaws_dynamodb_TableDescription_ProvisionedThroughput_ToDafny(input.ProvisionedThroughput), Com_amazonaws_dynamodb_TableDescription_TableSizeBytes_ToDafny(input.TableSizeBytes), Com_amazonaws_dynamodb_TableDescription_ItemCount_ToDafny(input.ItemCount), Com_amazonaws_dynamodb_TableDescription_TableArn_ToDafny(input.TableArn), Com_amazonaws_dynamodb_TableDescription_TableId_ToDafny(input.TableId), Com_amazonaws_dynamodb_TableDescription_BillingModeSummary_ToDafny(input.BillingModeSummary), Com_amazonaws_dynamodb_TableDescription_LocalSecondaryIndexes_ToDafny(input.LocalSecondaryIndexes), Com_amazonaws_dynamodb_TableDescription_GlobalSecondaryIndexes_ToDafny(input.GlobalSecondaryIndexes), Com_amazonaws_dynamodb_TableDescription_StreamSpecification_ToDafny(input.StreamSpecification), Com_amazonaws_dynamodb_TableDescription_LatestStreamLabel_ToDafny(input.LatestStreamLabel), Com_amazonaws_dynamodb_TableDescription_LatestStreamArn_ToDafny(input.LatestStreamArn), Com_amazonaws_dynamodb_TableDescription_GlobalTableVersion_ToDafny(input.GlobalTableVersion), Com_amazonaws_dynamodb_TableDescription_Replicas_ToDafny(input.Replicas), Com_amazonaws_dynamodb_TableDescription_RestoreSummary_ToDafny(input.RestoreSummary), Com_amazonaws_dynamodb_TableDescription_SSEDescription_ToDafny(input.SSEDescription), Com_amazonaws_dynamodb_TableDescription_ArchivalSummary_ToDafny(input.ArchivalSummary), Com_amazonaws_dynamodb_TableDescription_TableClassSummary_ToDafny(input.TableClassSummary), Com_amazonaws_dynamodb_TableDescription_DeletionProtectionEnabled_ToDafny(input.DeletionProtectionEnabled), Com_amazonaws_dynamodb_TableDescription_OnDemandThroughput_ToDafny(input.OnDemandThroughput))) + }() +} + +func Com_amazonaws_dynamodb_RestoreTableToPointInTimeInput_SourceTableArn_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 Com_amazonaws_dynamodb_RestoreTableToPointInTimeInput_SourceTableName_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 Com_amazonaws_dynamodb_RestoreTableToPointInTimeInput_TargetTableName_ToDafny(input *string) dafny.Sequence { + return func() dafny.Sequence { + if input == nil { + return nil + } + return func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(*input)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }() + }() +} + +func Com_amazonaws_dynamodb_RestoreTableToPointInTimeInput_UseLatestRestorableTime_ToDafny(input *bool) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(*input) + }() +} + +func Com_amazonaws_dynamodb_RestoreTableToPointInTimeInput_RestoreDateTime_ToDafny(input *time.Time) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + formattedTime := input.Format("2006-01-02T15:04:05.999999Z") + return Wrappers.Companion_Option_.Create_Some_(func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(formattedTime)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }()) + }() +} + +func Com_amazonaws_dynamodb_RestoreTableToPointInTimeInput_BillingModeOverride_ToDafny(input types.BillingMode) Wrappers.Option { + return func() Wrappers.Option { + var index int + for _, enumVal := range input.Values() { + index++ + if enumVal == input { + break + } + if index == len(input.Values()) { + return Wrappers.Companion_Option_.Create_None_() + } + + } + var enum interface{} + for allEnums, i := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_BillingMode_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return Wrappers.Companion_Option_.Create_Some_(enum.(ComAmazonawsDynamodbTypes.BillingMode)) + }() +} + +func Com_amazonaws_dynamodb_RestoreTableToPointInTimeInput_GlobalSecondaryIndexOverride_ToDafny(input []types.GlobalSecondaryIndex) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + var fieldValue []interface{} = make([]interface{}, 0) + for _, val := range input { + element := Com_amazonaws_dynamodb_GlobalSecondaryIndexList_member_ToDafny(val) + fieldValue = append(fieldValue, element) + } + return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(fieldValue...)) + }() +} + +func Com_amazonaws_dynamodb_RestoreTableToPointInTimeInput_LocalSecondaryIndexOverride_ToDafny(input []types.LocalSecondaryIndex) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + var fieldValue []interface{} = make([]interface{}, 0) + for _, val := range input { + element := Com_amazonaws_dynamodb_LocalSecondaryIndexList_member_ToDafny(val) + fieldValue = append(fieldValue, element) + } + return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(fieldValue...)) + }() +} + +func Com_amazonaws_dynamodb_RestoreTableToPointInTimeInput_ProvisionedThroughputOverride_ToDafny(input *types.ProvisionedThroughput) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(ComAmazonawsDynamodbTypes.Companion_ProvisionedThroughput_.Create_ProvisionedThroughput_(Com_amazonaws_dynamodb_ProvisionedThroughput_ReadCapacityUnits_ToDafny(input.ReadCapacityUnits), Com_amazonaws_dynamodb_ProvisionedThroughput_WriteCapacityUnits_ToDafny(input.WriteCapacityUnits))) + }() +} + +func Com_amazonaws_dynamodb_RestoreTableToPointInTimeInput_OnDemandThroughputOverride_ToDafny(input *types.OnDemandThroughput) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(ComAmazonawsDynamodbTypes.Companion_OnDemandThroughput_.Create_OnDemandThroughput_(Com_amazonaws_dynamodb_OnDemandThroughput_MaxReadRequestUnits_ToDafny(input.MaxReadRequestUnits), Com_amazonaws_dynamodb_OnDemandThroughput_MaxWriteRequestUnits_ToDafny(input.MaxWriteRequestUnits))) + }() +} + +func Com_amazonaws_dynamodb_RestoreTableToPointInTimeInput_SSESpecificationOverride_ToDafny(input *types.SSESpecification) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(ComAmazonawsDynamodbTypes.Companion_SSESpecification_.Create_SSESpecification_(Com_amazonaws_dynamodb_SSESpecification_Enabled_ToDafny(input.Enabled), Com_amazonaws_dynamodb_SSESpecification_SSEType_ToDafny(input.SSEType), Com_amazonaws_dynamodb_SSESpecification_KMSMasterKeyId_ToDafny(input.KMSMasterKeyId))) + }() +} + +func Com_amazonaws_dynamodb_RestoreTableToPointInTimeOutput_TableDescription_ToDafny(input *types.TableDescription) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(ComAmazonawsDynamodbTypes.Companion_TableDescription_.Create_TableDescription_(Com_amazonaws_dynamodb_TableDescription_AttributeDefinitions_ToDafny(input.AttributeDefinitions), Com_amazonaws_dynamodb_TableDescription_TableName_ToDafny(input.TableName), Com_amazonaws_dynamodb_TableDescription_KeySchema_ToDafny(input.KeySchema), Com_amazonaws_dynamodb_TableDescription_TableStatus_ToDafny(input.TableStatus), Com_amazonaws_dynamodb_TableDescription_CreationDateTime_ToDafny(input.CreationDateTime), Com_amazonaws_dynamodb_TableDescription_ProvisionedThroughput_ToDafny(input.ProvisionedThroughput), Com_amazonaws_dynamodb_TableDescription_TableSizeBytes_ToDafny(input.TableSizeBytes), Com_amazonaws_dynamodb_TableDescription_ItemCount_ToDafny(input.ItemCount), Com_amazonaws_dynamodb_TableDescription_TableArn_ToDafny(input.TableArn), Com_amazonaws_dynamodb_TableDescription_TableId_ToDafny(input.TableId), Com_amazonaws_dynamodb_TableDescription_BillingModeSummary_ToDafny(input.BillingModeSummary), Com_amazonaws_dynamodb_TableDescription_LocalSecondaryIndexes_ToDafny(input.LocalSecondaryIndexes), Com_amazonaws_dynamodb_TableDescription_GlobalSecondaryIndexes_ToDafny(input.GlobalSecondaryIndexes), Com_amazonaws_dynamodb_TableDescription_StreamSpecification_ToDafny(input.StreamSpecification), Com_amazonaws_dynamodb_TableDescription_LatestStreamLabel_ToDafny(input.LatestStreamLabel), Com_amazonaws_dynamodb_TableDescription_LatestStreamArn_ToDafny(input.LatestStreamArn), Com_amazonaws_dynamodb_TableDescription_GlobalTableVersion_ToDafny(input.GlobalTableVersion), Com_amazonaws_dynamodb_TableDescription_Replicas_ToDafny(input.Replicas), Com_amazonaws_dynamodb_TableDescription_RestoreSummary_ToDafny(input.RestoreSummary), Com_amazonaws_dynamodb_TableDescription_SSEDescription_ToDafny(input.SSEDescription), Com_amazonaws_dynamodb_TableDescription_ArchivalSummary_ToDafny(input.ArchivalSummary), Com_amazonaws_dynamodb_TableDescription_TableClassSummary_ToDafny(input.TableClassSummary), Com_amazonaws_dynamodb_TableDescription_DeletionProtectionEnabled_ToDafny(input.DeletionProtectionEnabled), Com_amazonaws_dynamodb_TableDescription_OnDemandThroughput_ToDafny(input.OnDemandThroughput))) + }() +} + +func Com_amazonaws_dynamodb_ScanInput_TableName_ToDafny(input *string) dafny.Sequence { + return func() dafny.Sequence { + if input == nil { + return nil + } + return func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(*input)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }() + }() +} + +func Com_amazonaws_dynamodb_ScanInput_IndexName_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 Com_amazonaws_dynamodb_ScanInput_AttributesToGet_ToDafny(input []string) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + var fieldValue []interface{} = make([]interface{}, 0) + for _, val := range input { + element := Com_amazonaws_dynamodb_AttributeNameList_member_ToDafny(val) + fieldValue = append(fieldValue, element) + } + return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(fieldValue...)) + }() +} + +func Com_amazonaws_dynamodb_ScanInput_Limit_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 Com_amazonaws_dynamodb_ScanInput_Select_ToDafny(input types.Select) Wrappers.Option { + return func() Wrappers.Option { + var index int + for _, enumVal := range input.Values() { + index++ + if enumVal == input { + break + } + if index == len(input.Values()) { + return Wrappers.Companion_Option_.Create_None_() + } + + } + var enum interface{} + for allEnums, i := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_Select_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return Wrappers.Companion_Option_.Create_Some_(enum.(ComAmazonawsDynamodbTypes.Select)) + }() +} + +func Com_amazonaws_dynamodb_ScanInput_ScanFilter_ToDafny(input map[string]types.Condition) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + fieldValue := dafny.NewMapBuilder() + for key, val := range input { + fieldValue.Add(Com_amazonaws_dynamodb_FilterConditionMap_key_ToDafny(key), Com_amazonaws_dynamodb_FilterConditionMap_value_ToDafny(val)) + } + return Wrappers.Companion_Option_.Create_Some_(fieldValue.ToMap()) + }() +} + +func Com_amazonaws_dynamodb_ScanInput_ConditionalOperator_ToDafny(input types.ConditionalOperator) Wrappers.Option { + return func() Wrappers.Option { + var index int + for _, enumVal := range input.Values() { + index++ + if enumVal == input { + break + } + if index == len(input.Values()) { + return Wrappers.Companion_Option_.Create_None_() + } + + } + var enum interface{} + for allEnums, i := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_ConditionalOperator_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return Wrappers.Companion_Option_.Create_Some_(enum.(ComAmazonawsDynamodbTypes.ConditionalOperator)) + }() +} + +func Com_amazonaws_dynamodb_ScanInput_ExclusiveStartKey_ToDafny(input map[string]types.AttributeValue) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + fieldValue := dafny.NewMapBuilder() + for key, val := range input { + fieldValue.Add(Com_amazonaws_dynamodb_Key_key_ToDafny(key), Com_amazonaws_dynamodb_Key_value_ToDafny(val)) + } + return Wrappers.Companion_Option_.Create_Some_(fieldValue.ToMap()) + }() +} + +func Com_amazonaws_dynamodb_ScanInput_ReturnConsumedCapacity_ToDafny(input types.ReturnConsumedCapacity) Wrappers.Option { + return func() Wrappers.Option { + var index int + for _, enumVal := range input.Values() { + index++ + if enumVal == input { + break + } + if index == len(input.Values()) { + return Wrappers.Companion_Option_.Create_None_() + } + + } + var enum interface{} + for allEnums, i := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_ReturnConsumedCapacity_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return Wrappers.Companion_Option_.Create_Some_(enum.(ComAmazonawsDynamodbTypes.ReturnConsumedCapacity)) + }() +} + +func Com_amazonaws_dynamodb_ScanInput_TotalSegments_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 Com_amazonaws_dynamodb_ScanInput_Segment_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 Com_amazonaws_dynamodb_ScanInput_ProjectionExpression_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 Com_amazonaws_dynamodb_ScanInput_FilterExpression_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 Com_amazonaws_dynamodb_ScanInput_ExpressionAttributeNames_ToDafny(input map[string]string) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + fieldValue := dafny.NewMapBuilder() + for key, val := range input { + fieldValue.Add(Com_amazonaws_dynamodb_ExpressionAttributeNameMap_key_ToDafny(key), Com_amazonaws_dynamodb_ExpressionAttributeNameMap_value_ToDafny(val)) + } + return Wrappers.Companion_Option_.Create_Some_(fieldValue.ToMap()) + }() +} + +func Com_amazonaws_dynamodb_ScanInput_ExpressionAttributeValues_ToDafny(input map[string]types.AttributeValue) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + fieldValue := dafny.NewMapBuilder() + for key, val := range input { + fieldValue.Add(Com_amazonaws_dynamodb_ExpressionAttributeValueMap_key_ToDafny(key), Com_amazonaws_dynamodb_ExpressionAttributeValueMap_value_ToDafny(val)) + } + return Wrappers.Companion_Option_.Create_Some_(fieldValue.ToMap()) + }() +} + +func Com_amazonaws_dynamodb_ScanInput_ConsistentRead_ToDafny(input *bool) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(*input) + }() +} + +func Com_amazonaws_dynamodb_ScanOutput_Items_ToDafny(input []map[string]types.AttributeValue) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + var fieldValue []interface{} = make([]interface{}, 0) + for _, val := range input { + element := Com_amazonaws_dynamodb_ItemList_member_ToDafny(val) + fieldValue = append(fieldValue, element) + } + return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(fieldValue...)) + }() +} + +func Com_amazonaws_dynamodb_ScanOutput_Count_ToDafny(input int32) Wrappers.Option { + return func() Wrappers.Option { + + return Wrappers.Companion_Option_.Create_Some_(input) + }() +} + +func Com_amazonaws_dynamodb_ScanOutput_ScannedCount_ToDafny(input int32) Wrappers.Option { + return func() Wrappers.Option { + + return Wrappers.Companion_Option_.Create_Some_(input) + }() +} + +func Com_amazonaws_dynamodb_ScanOutput_LastEvaluatedKey_ToDafny(input map[string]types.AttributeValue) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + fieldValue := dafny.NewMapBuilder() + for key, val := range input { + fieldValue.Add(Com_amazonaws_dynamodb_Key_key_ToDafny(key), Com_amazonaws_dynamodb_Key_value_ToDafny(val)) + } + return Wrappers.Companion_Option_.Create_Some_(fieldValue.ToMap()) + }() +} + +func Com_amazonaws_dynamodb_ScanOutput_ConsumedCapacity_ToDafny(input *types.ConsumedCapacity) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(ComAmazonawsDynamodbTypes.Companion_ConsumedCapacity_.Create_ConsumedCapacity_(Com_amazonaws_dynamodb_ConsumedCapacity_TableName_ToDafny(input.TableName), Com_amazonaws_dynamodb_ConsumedCapacity_CapacityUnits_ToDafny(input.CapacityUnits), Com_amazonaws_dynamodb_ConsumedCapacity_ReadCapacityUnits_ToDafny(input.ReadCapacityUnits), Com_amazonaws_dynamodb_ConsumedCapacity_WriteCapacityUnits_ToDafny(input.WriteCapacityUnits), Com_amazonaws_dynamodb_ConsumedCapacity_Table_ToDafny(input.Table), Com_amazonaws_dynamodb_ConsumedCapacity_LocalSecondaryIndexes_ToDafny(input.LocalSecondaryIndexes), Com_amazonaws_dynamodb_ConsumedCapacity_GlobalSecondaryIndexes_ToDafny(input.GlobalSecondaryIndexes))) + }() +} + +func Com_amazonaws_dynamodb_TagResourceInput_ResourceArn_ToDafny(input *string) dafny.Sequence { + return func() dafny.Sequence { + if input == nil { + return nil + } + return func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(*input)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }() + }() +} + +func Com_amazonaws_dynamodb_TagResourceInput_Tags_ToDafny(input []types.Tag) dafny.Sequence { + return func() dafny.Sequence { + if input == nil { + return nil + } + var fieldValue []interface{} = make([]interface{}, 0) + for _, val := range input { + element := Com_amazonaws_dynamodb_TagList_member_ToDafny(val) + fieldValue = append(fieldValue, element) + } + return dafny.SeqOf(fieldValue...) + }() +} + +func Com_amazonaws_dynamodb_TransactGetItemsInput_TransactItems_ToDafny(input []types.TransactGetItem) dafny.Sequence { + return func() dafny.Sequence { + if input == nil { + return nil + } + var fieldValue []interface{} = make([]interface{}, 0) + for _, val := range input { + element := Com_amazonaws_dynamodb_TransactGetItemList_member_ToDafny(val) + fieldValue = append(fieldValue, element) + } + return dafny.SeqOf(fieldValue...) + }() +} + +func Com_amazonaws_dynamodb_TransactGetItemList_member_ToDafny(input types.TransactGetItem) ComAmazonawsDynamodbTypes.TransactGetItem { + return func() ComAmazonawsDynamodbTypes.TransactGetItem { + + return ComAmazonawsDynamodbTypes.Companion_TransactGetItem_.Create_TransactGetItem_(Com_amazonaws_dynamodb_TransactGetItem_Get_ToDafny(input.Get)) + }() +} + +func Com_amazonaws_dynamodb_TransactGetItem_Get_ToDafny(input *types.Get) ComAmazonawsDynamodbTypes.Get { + return func() ComAmazonawsDynamodbTypes.Get { + if input == nil { + return ComAmazonawsDynamodbTypes.Get{} + } + return ComAmazonawsDynamodbTypes.Companion_Get_.Create_Get_(Com_amazonaws_dynamodb_Get_Key_ToDafny(input.Key), Com_amazonaws_dynamodb_Get_TableName_ToDafny(input.TableName), Com_amazonaws_dynamodb_Get_ProjectionExpression_ToDafny(input.ProjectionExpression), Com_amazonaws_dynamodb_Get_ExpressionAttributeNames_ToDafny(input.ExpressionAttributeNames)) + }() +} + +func Com_amazonaws_dynamodb_Get_Key_ToDafny(input map[string]types.AttributeValue) dafny.Map { + return func() dafny.Map { + + fieldValue := dafny.NewMapBuilder() + for key, val := range input { + fieldValue.Add(Com_amazonaws_dynamodb_Key_key_ToDafny(key), Com_amazonaws_dynamodb_Key_value_ToDafny(val)) + } + return fieldValue.ToMap() + }() +} + +func Com_amazonaws_dynamodb_Get_TableName_ToDafny(input *string) dafny.Sequence { + return func() dafny.Sequence { + if input == nil { + return nil + } + return func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(*input)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }() + }() +} + +func Com_amazonaws_dynamodb_Get_ProjectionExpression_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 Com_amazonaws_dynamodb_Get_ExpressionAttributeNames_ToDafny(input map[string]string) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + fieldValue := dafny.NewMapBuilder() + for key, val := range input { + fieldValue.Add(Com_amazonaws_dynamodb_ExpressionAttributeNameMap_key_ToDafny(key), Com_amazonaws_dynamodb_ExpressionAttributeNameMap_value_ToDafny(val)) + } + return Wrappers.Companion_Option_.Create_Some_(fieldValue.ToMap()) + }() +} + +func Com_amazonaws_dynamodb_TransactGetItemsInput_ReturnConsumedCapacity_ToDafny(input types.ReturnConsumedCapacity) Wrappers.Option { + return func() Wrappers.Option { + var index int + for _, enumVal := range input.Values() { + index++ + if enumVal == input { + break + } + if index == len(input.Values()) { + return Wrappers.Companion_Option_.Create_None_() + } + + } + var enum interface{} + for allEnums, i := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_ReturnConsumedCapacity_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return Wrappers.Companion_Option_.Create_Some_(enum.(ComAmazonawsDynamodbTypes.ReturnConsumedCapacity)) + }() +} + +func Com_amazonaws_dynamodb_TransactGetItemsOutput_ConsumedCapacity_ToDafny(input []types.ConsumedCapacity) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + var fieldValue []interface{} = make([]interface{}, 0) + for _, val := range input { + element := Com_amazonaws_dynamodb_ConsumedCapacityMultiple_member_ToDafny(val) + fieldValue = append(fieldValue, element) + } + return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(fieldValue...)) + }() +} + +func Com_amazonaws_dynamodb_TransactGetItemsOutput_Responses_ToDafny(input []types.ItemResponse) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + var fieldValue []interface{} = make([]interface{}, 0) + for _, val := range input { + element := Com_amazonaws_dynamodb_ItemResponseList_member_ToDafny(val) + fieldValue = append(fieldValue, element) + } + return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(fieldValue...)) + }() +} + +func Com_amazonaws_dynamodb_TransactWriteItemsInput_TransactItems_ToDafny(input []types.TransactWriteItem) dafny.Sequence { + return func() dafny.Sequence { + if input == nil { + return nil + } + var fieldValue []interface{} = make([]interface{}, 0) + for _, val := range input { + element := Com_amazonaws_dynamodb_TransactWriteItemList_member_ToDafny(val) + fieldValue = append(fieldValue, element) + } + return dafny.SeqOf(fieldValue...) + }() +} + +func Com_amazonaws_dynamodb_TransactWriteItemList_member_ToDafny(input types.TransactWriteItem) ComAmazonawsDynamodbTypes.TransactWriteItem { + return func() ComAmazonawsDynamodbTypes.TransactWriteItem { + + return ComAmazonawsDynamodbTypes.Companion_TransactWriteItem_.Create_TransactWriteItem_(Com_amazonaws_dynamodb_TransactWriteItem_ConditionCheck_ToDafny(input.ConditionCheck), Com_amazonaws_dynamodb_TransactWriteItem_Put_ToDafny(input.Put), Com_amazonaws_dynamodb_TransactWriteItem_Delete_ToDafny(input.Delete), Com_amazonaws_dynamodb_TransactWriteItem_Update_ToDafny(input.Update)) + }() +} + +func Com_amazonaws_dynamodb_TransactWriteItem_ConditionCheck_ToDafny(input *types.ConditionCheck) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(ComAmazonawsDynamodbTypes.Companion_ConditionCheck_.Create_ConditionCheck_(Com_amazonaws_dynamodb_ConditionCheck_Key_ToDafny(input.Key), Com_amazonaws_dynamodb_ConditionCheck_TableName_ToDafny(input.TableName), Com_amazonaws_dynamodb_ConditionCheck_ConditionExpression_ToDafny(input.ConditionExpression), Com_amazonaws_dynamodb_ConditionCheck_ExpressionAttributeNames_ToDafny(input.ExpressionAttributeNames), Com_amazonaws_dynamodb_ConditionCheck_ExpressionAttributeValues_ToDafny(input.ExpressionAttributeValues), Com_amazonaws_dynamodb_ConditionCheck_ReturnValuesOnConditionCheckFailure_ToDafny(input.ReturnValuesOnConditionCheckFailure))) + }() +} + +func Com_amazonaws_dynamodb_ConditionCheck_Key_ToDafny(input map[string]types.AttributeValue) dafny.Map { + return func() dafny.Map { + + fieldValue := dafny.NewMapBuilder() + for key, val := range input { + fieldValue.Add(Com_amazonaws_dynamodb_Key_key_ToDafny(key), Com_amazonaws_dynamodb_Key_value_ToDafny(val)) + } + return fieldValue.ToMap() + }() +} + +func Com_amazonaws_dynamodb_ConditionCheck_TableName_ToDafny(input *string) dafny.Sequence { + return func() dafny.Sequence { + if input == nil { + return nil + } + return func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(*input)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }() + }() +} + +func Com_amazonaws_dynamodb_ConditionCheck_ConditionExpression_ToDafny(input *string) dafny.Sequence { + return func() dafny.Sequence { + if input == nil { + return nil + } + return func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(*input)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }() + }() +} + +func Com_amazonaws_dynamodb_ConditionCheck_ExpressionAttributeNames_ToDafny(input map[string]string) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + fieldValue := dafny.NewMapBuilder() + for key, val := range input { + fieldValue.Add(Com_amazonaws_dynamodb_ExpressionAttributeNameMap_key_ToDafny(key), Com_amazonaws_dynamodb_ExpressionAttributeNameMap_value_ToDafny(val)) + } + return Wrappers.Companion_Option_.Create_Some_(fieldValue.ToMap()) + }() +} + +func Com_amazonaws_dynamodb_ConditionCheck_ExpressionAttributeValues_ToDafny(input map[string]types.AttributeValue) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + fieldValue := dafny.NewMapBuilder() + for key, val := range input { + fieldValue.Add(Com_amazonaws_dynamodb_ExpressionAttributeValueMap_key_ToDafny(key), Com_amazonaws_dynamodb_ExpressionAttributeValueMap_value_ToDafny(val)) + } + return Wrappers.Companion_Option_.Create_Some_(fieldValue.ToMap()) + }() +} + +func Com_amazonaws_dynamodb_ConditionCheck_ReturnValuesOnConditionCheckFailure_ToDafny(input types.ReturnValuesOnConditionCheckFailure) Wrappers.Option { + return func() Wrappers.Option { + var index int + for _, enumVal := range input.Values() { + index++ + if enumVal == input { + break + } + if index == len(input.Values()) { + return Wrappers.Companion_Option_.Create_None_() + } + + } + var enum interface{} + for allEnums, i := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_ReturnValuesOnConditionCheckFailure_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return Wrappers.Companion_Option_.Create_Some_(enum.(ComAmazonawsDynamodbTypes.ReturnValuesOnConditionCheckFailure)) + }() +} + +func Com_amazonaws_dynamodb_TransactWriteItem_Put_ToDafny(input *types.Put) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(ComAmazonawsDynamodbTypes.Companion_Put_.Create_Put_(Com_amazonaws_dynamodb_Put_Item_ToDafny(input.Item), Com_amazonaws_dynamodb_Put_TableName_ToDafny(input.TableName), Com_amazonaws_dynamodb_Put_ConditionExpression_ToDafny(input.ConditionExpression), Com_amazonaws_dynamodb_Put_ExpressionAttributeNames_ToDafny(input.ExpressionAttributeNames), Com_amazonaws_dynamodb_Put_ExpressionAttributeValues_ToDafny(input.ExpressionAttributeValues), Com_amazonaws_dynamodb_Put_ReturnValuesOnConditionCheckFailure_ToDafny(input.ReturnValuesOnConditionCheckFailure))) + }() +} + +func Com_amazonaws_dynamodb_Put_Item_ToDafny(input map[string]types.AttributeValue) dafny.Map { + return func() dafny.Map { + + fieldValue := dafny.NewMapBuilder() + for key, val := range input { + fieldValue.Add(Com_amazonaws_dynamodb_PutItemInputAttributeMap_key_ToDafny(key), Com_amazonaws_dynamodb_PutItemInputAttributeMap_value_ToDafny(val)) + } + return fieldValue.ToMap() + }() +} + +func Com_amazonaws_dynamodb_Put_TableName_ToDafny(input *string) dafny.Sequence { + return func() dafny.Sequence { + if input == nil { + return nil + } + return func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(*input)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }() + }() +} + +func Com_amazonaws_dynamodb_Put_ConditionExpression_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 Com_amazonaws_dynamodb_Put_ExpressionAttributeNames_ToDafny(input map[string]string) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + fieldValue := dafny.NewMapBuilder() + for key, val := range input { + fieldValue.Add(Com_amazonaws_dynamodb_ExpressionAttributeNameMap_key_ToDafny(key), Com_amazonaws_dynamodb_ExpressionAttributeNameMap_value_ToDafny(val)) + } + return Wrappers.Companion_Option_.Create_Some_(fieldValue.ToMap()) + }() +} + +func Com_amazonaws_dynamodb_Put_ExpressionAttributeValues_ToDafny(input map[string]types.AttributeValue) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + fieldValue := dafny.NewMapBuilder() + for key, val := range input { + fieldValue.Add(Com_amazonaws_dynamodb_ExpressionAttributeValueMap_key_ToDafny(key), Com_amazonaws_dynamodb_ExpressionAttributeValueMap_value_ToDafny(val)) + } + return Wrappers.Companion_Option_.Create_Some_(fieldValue.ToMap()) + }() +} + +func Com_amazonaws_dynamodb_Put_ReturnValuesOnConditionCheckFailure_ToDafny(input types.ReturnValuesOnConditionCheckFailure) Wrappers.Option { + return func() Wrappers.Option { + var index int + for _, enumVal := range input.Values() { + index++ + if enumVal == input { + break + } + if index == len(input.Values()) { + return Wrappers.Companion_Option_.Create_None_() + } + + } + var enum interface{} + for allEnums, i := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_ReturnValuesOnConditionCheckFailure_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return Wrappers.Companion_Option_.Create_Some_(enum.(ComAmazonawsDynamodbTypes.ReturnValuesOnConditionCheckFailure)) + }() +} + +func Com_amazonaws_dynamodb_TransactWriteItem_Delete_ToDafny(input *types.Delete) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(ComAmazonawsDynamodbTypes.Companion_Delete_.Create_Delete_(Com_amazonaws_dynamodb_Delete_Key_ToDafny(input.Key), Com_amazonaws_dynamodb_Delete_TableName_ToDafny(input.TableName), Com_amazonaws_dynamodb_Delete_ConditionExpression_ToDafny(input.ConditionExpression), Com_amazonaws_dynamodb_Delete_ExpressionAttributeNames_ToDafny(input.ExpressionAttributeNames), Com_amazonaws_dynamodb_Delete_ExpressionAttributeValues_ToDafny(input.ExpressionAttributeValues), Com_amazonaws_dynamodb_Delete_ReturnValuesOnConditionCheckFailure_ToDafny(input.ReturnValuesOnConditionCheckFailure))) + }() +} + +func Com_amazonaws_dynamodb_Delete_Key_ToDafny(input map[string]types.AttributeValue) dafny.Map { + return func() dafny.Map { + + fieldValue := dafny.NewMapBuilder() + for key, val := range input { + fieldValue.Add(Com_amazonaws_dynamodb_Key_key_ToDafny(key), Com_amazonaws_dynamodb_Key_value_ToDafny(val)) + } + return fieldValue.ToMap() + }() +} + +func Com_amazonaws_dynamodb_Delete_TableName_ToDafny(input *string) dafny.Sequence { + return func() dafny.Sequence { + if input == nil { + return nil + } + return func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(*input)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }() + }() +} + +func Com_amazonaws_dynamodb_Delete_ConditionExpression_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 Com_amazonaws_dynamodb_Delete_ExpressionAttributeNames_ToDafny(input map[string]string) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + fieldValue := dafny.NewMapBuilder() + for key, val := range input { + fieldValue.Add(Com_amazonaws_dynamodb_ExpressionAttributeNameMap_key_ToDafny(key), Com_amazonaws_dynamodb_ExpressionAttributeNameMap_value_ToDafny(val)) + } + return Wrappers.Companion_Option_.Create_Some_(fieldValue.ToMap()) + }() +} + +func Com_amazonaws_dynamodb_Delete_ExpressionAttributeValues_ToDafny(input map[string]types.AttributeValue) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + fieldValue := dafny.NewMapBuilder() + for key, val := range input { + fieldValue.Add(Com_amazonaws_dynamodb_ExpressionAttributeValueMap_key_ToDafny(key), Com_amazonaws_dynamodb_ExpressionAttributeValueMap_value_ToDafny(val)) + } + return Wrappers.Companion_Option_.Create_Some_(fieldValue.ToMap()) + }() +} + +func Com_amazonaws_dynamodb_Delete_ReturnValuesOnConditionCheckFailure_ToDafny(input types.ReturnValuesOnConditionCheckFailure) Wrappers.Option { + return func() Wrappers.Option { + var index int + for _, enumVal := range input.Values() { + index++ + if enumVal == input { + break + } + if index == len(input.Values()) { + return Wrappers.Companion_Option_.Create_None_() + } + + } + var enum interface{} + for allEnums, i := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_ReturnValuesOnConditionCheckFailure_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return Wrappers.Companion_Option_.Create_Some_(enum.(ComAmazonawsDynamodbTypes.ReturnValuesOnConditionCheckFailure)) + }() +} + +func Com_amazonaws_dynamodb_TransactWriteItem_Update_ToDafny(input *types.Update) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(ComAmazonawsDynamodbTypes.Companion_Update_.Create_Update_(Com_amazonaws_dynamodb_Update_Key_ToDafny(input.Key), Com_amazonaws_dynamodb_Update_UpdateExpression_ToDafny(input.UpdateExpression), Com_amazonaws_dynamodb_Update_TableName_ToDafny(input.TableName), Com_amazonaws_dynamodb_Update_ConditionExpression_ToDafny(input.ConditionExpression), Com_amazonaws_dynamodb_Update_ExpressionAttributeNames_ToDafny(input.ExpressionAttributeNames), Com_amazonaws_dynamodb_Update_ExpressionAttributeValues_ToDafny(input.ExpressionAttributeValues), Com_amazonaws_dynamodb_Update_ReturnValuesOnConditionCheckFailure_ToDafny(input.ReturnValuesOnConditionCheckFailure))) + }() +} + +func Com_amazonaws_dynamodb_Update_Key_ToDafny(input map[string]types.AttributeValue) dafny.Map { + return func() dafny.Map { + + fieldValue := dafny.NewMapBuilder() + for key, val := range input { + fieldValue.Add(Com_amazonaws_dynamodb_Key_key_ToDafny(key), Com_amazonaws_dynamodb_Key_value_ToDafny(val)) + } + return fieldValue.ToMap() + }() +} + +func Com_amazonaws_dynamodb_Update_UpdateExpression_ToDafny(input *string) dafny.Sequence { + return func() dafny.Sequence { + if input == nil { + return nil + } + return func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(*input)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }() + }() +} + +func Com_amazonaws_dynamodb_Update_TableName_ToDafny(input *string) dafny.Sequence { + return func() dafny.Sequence { + if input == nil { + return nil + } + return func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(*input)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }() + }() +} + +func Com_amazonaws_dynamodb_Update_ConditionExpression_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 Com_amazonaws_dynamodb_Update_ExpressionAttributeNames_ToDafny(input map[string]string) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + fieldValue := dafny.NewMapBuilder() + for key, val := range input { + fieldValue.Add(Com_amazonaws_dynamodb_ExpressionAttributeNameMap_key_ToDafny(key), Com_amazonaws_dynamodb_ExpressionAttributeNameMap_value_ToDafny(val)) + } + return Wrappers.Companion_Option_.Create_Some_(fieldValue.ToMap()) + }() +} + +func Com_amazonaws_dynamodb_Update_ExpressionAttributeValues_ToDafny(input map[string]types.AttributeValue) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + fieldValue := dafny.NewMapBuilder() + for key, val := range input { + fieldValue.Add(Com_amazonaws_dynamodb_ExpressionAttributeValueMap_key_ToDafny(key), Com_amazonaws_dynamodb_ExpressionAttributeValueMap_value_ToDafny(val)) + } + return Wrappers.Companion_Option_.Create_Some_(fieldValue.ToMap()) + }() +} + +func Com_amazonaws_dynamodb_Update_ReturnValuesOnConditionCheckFailure_ToDafny(input types.ReturnValuesOnConditionCheckFailure) Wrappers.Option { + return func() Wrappers.Option { + var index int + for _, enumVal := range input.Values() { + index++ + if enumVal == input { + break + } + if index == len(input.Values()) { + return Wrappers.Companion_Option_.Create_None_() + } + + } + var enum interface{} + for allEnums, i := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_ReturnValuesOnConditionCheckFailure_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return Wrappers.Companion_Option_.Create_Some_(enum.(ComAmazonawsDynamodbTypes.ReturnValuesOnConditionCheckFailure)) + }() +} + +func Com_amazonaws_dynamodb_TransactWriteItemsInput_ReturnConsumedCapacity_ToDafny(input types.ReturnConsumedCapacity) Wrappers.Option { + return func() Wrappers.Option { + var index int + for _, enumVal := range input.Values() { + index++ + if enumVal == input { + break + } + if index == len(input.Values()) { + return Wrappers.Companion_Option_.Create_None_() + } + + } + var enum interface{} + for allEnums, i := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_ReturnConsumedCapacity_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return Wrappers.Companion_Option_.Create_Some_(enum.(ComAmazonawsDynamodbTypes.ReturnConsumedCapacity)) + }() +} + +func Com_amazonaws_dynamodb_TransactWriteItemsInput_ReturnItemCollectionMetrics_ToDafny(input types.ReturnItemCollectionMetrics) Wrappers.Option { + return func() Wrappers.Option { + var index int + for _, enumVal := range input.Values() { + index++ + if enumVal == input { + break + } + if index == len(input.Values()) { + return Wrappers.Companion_Option_.Create_None_() + } + + } + var enum interface{} + for allEnums, i := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_ReturnItemCollectionMetrics_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return Wrappers.Companion_Option_.Create_Some_(enum.(ComAmazonawsDynamodbTypes.ReturnItemCollectionMetrics)) + }() +} + +func Com_amazonaws_dynamodb_TransactWriteItemsInput_ClientRequestToken_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 Com_amazonaws_dynamodb_TransactWriteItemsOutput_ConsumedCapacity_ToDafny(input []types.ConsumedCapacity) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + var fieldValue []interface{} = make([]interface{}, 0) + for _, val := range input { + element := Com_amazonaws_dynamodb_ConsumedCapacityMultiple_member_ToDafny(val) + fieldValue = append(fieldValue, element) + } + return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(fieldValue...)) + }() +} + +func Com_amazonaws_dynamodb_TransactWriteItemsOutput_ItemCollectionMetrics_ToDafny(input map[string][]types.ItemCollectionMetrics) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + fieldValue := dafny.NewMapBuilder() + for key, val := range input { + fieldValue.Add(Com_amazonaws_dynamodb_ItemCollectionMetricsPerTable_key_ToDafny(key), Com_amazonaws_dynamodb_ItemCollectionMetricsPerTable_value_ToDafny(val)) + } + return Wrappers.Companion_Option_.Create_Some_(fieldValue.ToMap()) + }() +} + +func Com_amazonaws_dynamodb_UntagResourceInput_ResourceArn_ToDafny(input *string) dafny.Sequence { + return func() dafny.Sequence { + if input == nil { + return nil + } + return func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(*input)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }() + }() +} + +func Com_amazonaws_dynamodb_UntagResourceInput_TagKeys_ToDafny(input []string) dafny.Sequence { + return func() dafny.Sequence { + if input == nil { + return nil + } + var fieldValue []interface{} = make([]interface{}, 0) + for _, val := range input { + element := Com_amazonaws_dynamodb_TagKeyList_member_ToDafny(val) + fieldValue = append(fieldValue, element) + } + return dafny.SeqOf(fieldValue...) + }() +} + +func Com_amazonaws_dynamodb_TagKeyList_member_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 Com_amazonaws_dynamodb_UpdateContinuousBackupsInput_TableName_ToDafny(input *string) dafny.Sequence { + return func() dafny.Sequence { + if input == nil { + return nil + } + return func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(*input)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }() + }() +} + +func Com_amazonaws_dynamodb_UpdateContinuousBackupsInput_PointInTimeRecoverySpecification_ToDafny(input *types.PointInTimeRecoverySpecification) ComAmazonawsDynamodbTypes.PointInTimeRecoverySpecification { + return func() ComAmazonawsDynamodbTypes.PointInTimeRecoverySpecification { + if input == nil { + return ComAmazonawsDynamodbTypes.PointInTimeRecoverySpecification{} + } + return ComAmazonawsDynamodbTypes.Companion_PointInTimeRecoverySpecification_.Create_PointInTimeRecoverySpecification_(Com_amazonaws_dynamodb_PointInTimeRecoverySpecification_PointInTimeRecoveryEnabled_ToDafny(input.PointInTimeRecoveryEnabled)) + }() +} + +func Com_amazonaws_dynamodb_PointInTimeRecoverySpecification_PointInTimeRecoveryEnabled_ToDafny(input *bool) bool { + return func() bool { + if input == nil { + return false + } + return *input + }() +} + +func Com_amazonaws_dynamodb_UpdateContinuousBackupsOutput_ContinuousBackupsDescription_ToDafny(input *types.ContinuousBackupsDescription) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(ComAmazonawsDynamodbTypes.Companion_ContinuousBackupsDescription_.Create_ContinuousBackupsDescription_(Com_amazonaws_dynamodb_ContinuousBackupsDescription_ContinuousBackupsStatus_ToDafny(input.ContinuousBackupsStatus), Com_amazonaws_dynamodb_ContinuousBackupsDescription_PointInTimeRecoveryDescription_ToDafny(input.PointInTimeRecoveryDescription))) + }() +} + +func Com_amazonaws_dynamodb_UpdateContributorInsightsInput_TableName_ToDafny(input *string) dafny.Sequence { + return func() dafny.Sequence { + if input == nil { + return nil + } + return func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(*input)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }() + }() +} + +func Com_amazonaws_dynamodb_UpdateContributorInsightsInput_IndexName_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 Com_amazonaws_dynamodb_UpdateContributorInsightsInput_ContributorInsightsAction_ToDafny(input types.ContributorInsightsAction) ComAmazonawsDynamodbTypes.ContributorInsightsAction { + return func() ComAmazonawsDynamodbTypes.ContributorInsightsAction { + 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(ComAmazonawsDynamodbTypes.CompanionStruct_ContributorInsightsAction_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return enum.(ComAmazonawsDynamodbTypes.ContributorInsightsAction) + }() +} + +func Com_amazonaws_dynamodb_UpdateContributorInsightsOutput_TableName_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 Com_amazonaws_dynamodb_UpdateContributorInsightsOutput_IndexName_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 Com_amazonaws_dynamodb_UpdateContributorInsightsOutput_ContributorInsightsStatus_ToDafny(input types.ContributorInsightsStatus) Wrappers.Option { + return func() Wrappers.Option { + var index int + for _, enumVal := range input.Values() { + index++ + if enumVal == input { + break + } + if index == len(input.Values()) { + return Wrappers.Companion_Option_.Create_None_() + } + + } + var enum interface{} + for allEnums, i := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_ContributorInsightsStatus_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return Wrappers.Companion_Option_.Create_Some_(enum.(ComAmazonawsDynamodbTypes.ContributorInsightsStatus)) + }() +} + +func Com_amazonaws_dynamodb_UpdateGlobalTableInput_GlobalTableName_ToDafny(input *string) dafny.Sequence { + return func() dafny.Sequence { + if input == nil { + return nil + } + return func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(*input)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }() + }() +} + +func Com_amazonaws_dynamodb_UpdateGlobalTableInput_ReplicaUpdates_ToDafny(input []types.ReplicaUpdate) dafny.Sequence { + return func() dafny.Sequence { + if input == nil { + return nil + } + var fieldValue []interface{} = make([]interface{}, 0) + for _, val := range input { + element := Com_amazonaws_dynamodb_ReplicaUpdateList_member_ToDafny(val) + fieldValue = append(fieldValue, element) + } + return dafny.SeqOf(fieldValue...) + }() +} + +func Com_amazonaws_dynamodb_ReplicaUpdateList_member_ToDafny(input types.ReplicaUpdate) ComAmazonawsDynamodbTypes.ReplicaUpdate { + return func() ComAmazonawsDynamodbTypes.ReplicaUpdate { + + return ComAmazonawsDynamodbTypes.Companion_ReplicaUpdate_.Create_ReplicaUpdate_(Com_amazonaws_dynamodb_ReplicaUpdate_Create_ToDafny(input.Create), Com_amazonaws_dynamodb_ReplicaUpdate_Delete_ToDafny(input.Delete)) + }() +} + +func Com_amazonaws_dynamodb_ReplicaUpdate_Create_ToDafny(input *types.CreateReplicaAction) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(ComAmazonawsDynamodbTypes.Companion_CreateReplicaAction_.Create_CreateReplicaAction_(Com_amazonaws_dynamodb_CreateReplicaAction_RegionName_ToDafny(input.RegionName))) + }() +} + +func Com_amazonaws_dynamodb_CreateReplicaAction_RegionName_ToDafny(input *string) dafny.Sequence { + return func() dafny.Sequence { + if input == nil { + return nil + } + return func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(*input)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }() + }() +} + +func Com_amazonaws_dynamodb_ReplicaUpdate_Delete_ToDafny(input *types.DeleteReplicaAction) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(ComAmazonawsDynamodbTypes.Companion_DeleteReplicaAction_.Create_DeleteReplicaAction_(Com_amazonaws_dynamodb_DeleteReplicaAction_RegionName_ToDafny(input.RegionName))) + }() +} + +func Com_amazonaws_dynamodb_DeleteReplicaAction_RegionName_ToDafny(input *string) dafny.Sequence { + return func() dafny.Sequence { + if input == nil { + return nil + } + return func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(*input)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }() + }() +} + +func Com_amazonaws_dynamodb_UpdateGlobalTableOutput_GlobalTableDescription_ToDafny(input *types.GlobalTableDescription) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(ComAmazonawsDynamodbTypes.Companion_GlobalTableDescription_.Create_GlobalTableDescription_(Com_amazonaws_dynamodb_GlobalTableDescription_ReplicationGroup_ToDafny(input.ReplicationGroup), Com_amazonaws_dynamodb_GlobalTableDescription_GlobalTableArn_ToDafny(input.GlobalTableArn), Com_amazonaws_dynamodb_GlobalTableDescription_CreationDateTime_ToDafny(input.CreationDateTime), Com_amazonaws_dynamodb_GlobalTableDescription_GlobalTableStatus_ToDafny(input.GlobalTableStatus), Com_amazonaws_dynamodb_GlobalTableDescription_GlobalTableName_ToDafny(input.GlobalTableName))) + }() +} + +func Com_amazonaws_dynamodb_UpdateGlobalTableSettingsInput_GlobalTableName_ToDafny(input *string) dafny.Sequence { + return func() dafny.Sequence { + if input == nil { + return nil + } + return func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(*input)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }() + }() +} + +func Com_amazonaws_dynamodb_UpdateGlobalTableSettingsInput_GlobalTableBillingMode_ToDafny(input types.BillingMode) Wrappers.Option { + return func() Wrappers.Option { + var index int + for _, enumVal := range input.Values() { + index++ + if enumVal == input { + break + } + if index == len(input.Values()) { + return Wrappers.Companion_Option_.Create_None_() + } + + } + var enum interface{} + for allEnums, i := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_BillingMode_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return Wrappers.Companion_Option_.Create_Some_(enum.(ComAmazonawsDynamodbTypes.BillingMode)) + }() +} + +func Com_amazonaws_dynamodb_UpdateGlobalTableSettingsInput_GlobalTableProvisionedWriteCapacityUnits_ToDafny(input *int64) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(*input) + }() +} + +func Com_amazonaws_dynamodb_UpdateGlobalTableSettingsInput_GlobalTableProvisionedWriteCapacityAutoScalingSettingsUpdate_ToDafny(input *types.AutoScalingSettingsUpdate) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(ComAmazonawsDynamodbTypes.Companion_AutoScalingSettingsUpdate_.Create_AutoScalingSettingsUpdate_(Com_amazonaws_dynamodb_AutoScalingSettingsUpdate_MinimumUnits_ToDafny(input.MinimumUnits), Com_amazonaws_dynamodb_AutoScalingSettingsUpdate_MaximumUnits_ToDafny(input.MaximumUnits), Com_amazonaws_dynamodb_AutoScalingSettingsUpdate_AutoScalingDisabled_ToDafny(input.AutoScalingDisabled), Com_amazonaws_dynamodb_AutoScalingSettingsUpdate_AutoScalingRoleArn_ToDafny(input.AutoScalingRoleArn), Com_amazonaws_dynamodb_AutoScalingSettingsUpdate_ScalingPolicyUpdate_ToDafny(input.ScalingPolicyUpdate))) + }() +} + +func Com_amazonaws_dynamodb_AutoScalingSettingsUpdate_MinimumUnits_ToDafny(input *int64) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(*input) + }() +} + +func Com_amazonaws_dynamodb_AutoScalingSettingsUpdate_MaximumUnits_ToDafny(input *int64) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(*input) + }() +} + +func Com_amazonaws_dynamodb_AutoScalingSettingsUpdate_AutoScalingDisabled_ToDafny(input *bool) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(*input) + }() +} + +func Com_amazonaws_dynamodb_AutoScalingSettingsUpdate_AutoScalingRoleArn_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 Com_amazonaws_dynamodb_AutoScalingSettingsUpdate_ScalingPolicyUpdate_ToDafny(input *types.AutoScalingPolicyUpdate) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(ComAmazonawsDynamodbTypes.Companion_AutoScalingPolicyUpdate_.Create_AutoScalingPolicyUpdate_(Com_amazonaws_dynamodb_AutoScalingPolicyUpdate_PolicyName_ToDafny(input.PolicyName), Com_amazonaws_dynamodb_AutoScalingPolicyUpdate_TargetTrackingScalingPolicyConfiguration_ToDafny(input.TargetTrackingScalingPolicyConfiguration))) + }() +} + +func Com_amazonaws_dynamodb_AutoScalingPolicyUpdate_PolicyName_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 Com_amazonaws_dynamodb_AutoScalingPolicyUpdate_TargetTrackingScalingPolicyConfiguration_ToDafny(input *types.AutoScalingTargetTrackingScalingPolicyConfigurationUpdate) ComAmazonawsDynamodbTypes.AutoScalingTargetTrackingScalingPolicyConfigurationUpdate { + return func() ComAmazonawsDynamodbTypes.AutoScalingTargetTrackingScalingPolicyConfigurationUpdate { + if input == nil { + return ComAmazonawsDynamodbTypes.AutoScalingTargetTrackingScalingPolicyConfigurationUpdate{} + } + return ComAmazonawsDynamodbTypes.Companion_AutoScalingTargetTrackingScalingPolicyConfigurationUpdate_.Create_AutoScalingTargetTrackingScalingPolicyConfigurationUpdate_(Com_amazonaws_dynamodb_AutoScalingTargetTrackingScalingPolicyConfigurationUpdate_DisableScaleIn_ToDafny(input.DisableScaleIn), Com_amazonaws_dynamodb_AutoScalingTargetTrackingScalingPolicyConfigurationUpdate_ScaleInCooldown_ToDafny(input.ScaleInCooldown), Com_amazonaws_dynamodb_AutoScalingTargetTrackingScalingPolicyConfigurationUpdate_ScaleOutCooldown_ToDafny(input.ScaleOutCooldown), Com_amazonaws_dynamodb_AutoScalingTargetTrackingScalingPolicyConfigurationUpdate_TargetValue_ToDafny(input.TargetValue)) + }() +} + +func Com_amazonaws_dynamodb_AutoScalingTargetTrackingScalingPolicyConfigurationUpdate_DisableScaleIn_ToDafny(input *bool) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(*input) + }() +} + +func Com_amazonaws_dynamodb_AutoScalingTargetTrackingScalingPolicyConfigurationUpdate_ScaleInCooldown_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 Com_amazonaws_dynamodb_AutoScalingTargetTrackingScalingPolicyConfigurationUpdate_ScaleOutCooldown_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 Com_amazonaws_dynamodb_AutoScalingTargetTrackingScalingPolicyConfigurationUpdate_TargetValue_ToDafny(input *float64) dafny.Sequence { + return func() dafny.Sequence { + if input == nil { + return dafny.SeqOf() + } + var bits = math.Float64bits(*input) + var bytes = make([]byte, 8) + binary.LittleEndian.PutUint64(bytes, bits) + var v []interface{} + for _, e := range bytes { + v = append(v, e) + } + return dafny.SeqOf(v...) + }() +} + +func Com_amazonaws_dynamodb_UpdateGlobalTableSettingsInput_GlobalTableGlobalSecondaryIndexSettingsUpdate_ToDafny(input []types.GlobalTableGlobalSecondaryIndexSettingsUpdate) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + var fieldValue []interface{} = make([]interface{}, 0) + for _, val := range input { + element := Com_amazonaws_dynamodb_GlobalTableGlobalSecondaryIndexSettingsUpdateList_member_ToDafny(val) + fieldValue = append(fieldValue, element) + } + return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(fieldValue...)) + }() +} + +func Com_amazonaws_dynamodb_GlobalTableGlobalSecondaryIndexSettingsUpdateList_member_ToDafny(input types.GlobalTableGlobalSecondaryIndexSettingsUpdate) ComAmazonawsDynamodbTypes.GlobalTableGlobalSecondaryIndexSettingsUpdate { + return func() ComAmazonawsDynamodbTypes.GlobalTableGlobalSecondaryIndexSettingsUpdate { + + return ComAmazonawsDynamodbTypes.Companion_GlobalTableGlobalSecondaryIndexSettingsUpdate_.Create_GlobalTableGlobalSecondaryIndexSettingsUpdate_(Com_amazonaws_dynamodb_GlobalTableGlobalSecondaryIndexSettingsUpdate_IndexName_ToDafny(input.IndexName), Com_amazonaws_dynamodb_GlobalTableGlobalSecondaryIndexSettingsUpdate_ProvisionedWriteCapacityUnits_ToDafny(input.ProvisionedWriteCapacityUnits), Com_amazonaws_dynamodb_GlobalTableGlobalSecondaryIndexSettingsUpdate_ProvisionedWriteCapacityAutoScalingSettingsUpdate_ToDafny(input.ProvisionedWriteCapacityAutoScalingSettingsUpdate)) + }() +} + +func Com_amazonaws_dynamodb_GlobalTableGlobalSecondaryIndexSettingsUpdate_IndexName_ToDafny(input *string) dafny.Sequence { + return func() dafny.Sequence { + if input == nil { + return nil + } + return func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(*input)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }() + }() +} + +func Com_amazonaws_dynamodb_GlobalTableGlobalSecondaryIndexSettingsUpdate_ProvisionedWriteCapacityUnits_ToDafny(input *int64) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(*input) + }() +} + +func Com_amazonaws_dynamodb_GlobalTableGlobalSecondaryIndexSettingsUpdate_ProvisionedWriteCapacityAutoScalingSettingsUpdate_ToDafny(input *types.AutoScalingSettingsUpdate) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(ComAmazonawsDynamodbTypes.Companion_AutoScalingSettingsUpdate_.Create_AutoScalingSettingsUpdate_(Com_amazonaws_dynamodb_AutoScalingSettingsUpdate_MinimumUnits_ToDafny(input.MinimumUnits), Com_amazonaws_dynamodb_AutoScalingSettingsUpdate_MaximumUnits_ToDafny(input.MaximumUnits), Com_amazonaws_dynamodb_AutoScalingSettingsUpdate_AutoScalingDisabled_ToDafny(input.AutoScalingDisabled), Com_amazonaws_dynamodb_AutoScalingSettingsUpdate_AutoScalingRoleArn_ToDafny(input.AutoScalingRoleArn), Com_amazonaws_dynamodb_AutoScalingSettingsUpdate_ScalingPolicyUpdate_ToDafny(input.ScalingPolicyUpdate))) + }() +} + +func Com_amazonaws_dynamodb_UpdateGlobalTableSettingsInput_ReplicaSettingsUpdate_ToDafny(input []types.ReplicaSettingsUpdate) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + var fieldValue []interface{} = make([]interface{}, 0) + for _, val := range input { + element := Com_amazonaws_dynamodb_ReplicaSettingsUpdateList_member_ToDafny(val) + fieldValue = append(fieldValue, element) + } + return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(fieldValue...)) + }() +} + +func Com_amazonaws_dynamodb_ReplicaSettingsUpdateList_member_ToDafny(input types.ReplicaSettingsUpdate) ComAmazonawsDynamodbTypes.ReplicaSettingsUpdate { + return func() ComAmazonawsDynamodbTypes.ReplicaSettingsUpdate { + + return ComAmazonawsDynamodbTypes.Companion_ReplicaSettingsUpdate_.Create_ReplicaSettingsUpdate_(Com_amazonaws_dynamodb_ReplicaSettingsUpdate_RegionName_ToDafny(input.RegionName), Com_amazonaws_dynamodb_ReplicaSettingsUpdate_ReplicaProvisionedReadCapacityUnits_ToDafny(input.ReplicaProvisionedReadCapacityUnits), Com_amazonaws_dynamodb_ReplicaSettingsUpdate_ReplicaProvisionedReadCapacityAutoScalingSettingsUpdate_ToDafny(input.ReplicaProvisionedReadCapacityAutoScalingSettingsUpdate), Com_amazonaws_dynamodb_ReplicaSettingsUpdate_ReplicaGlobalSecondaryIndexSettingsUpdate_ToDafny(input.ReplicaGlobalSecondaryIndexSettingsUpdate), Com_amazonaws_dynamodb_ReplicaSettingsUpdate_ReplicaTableClass_ToDafny(input.ReplicaTableClass)) + }() +} + +func Com_amazonaws_dynamodb_ReplicaSettingsUpdate_RegionName_ToDafny(input *string) dafny.Sequence { + return func() dafny.Sequence { + if input == nil { + return nil + } + return func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(*input)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }() + }() +} + +func Com_amazonaws_dynamodb_ReplicaSettingsUpdate_ReplicaProvisionedReadCapacityUnits_ToDafny(input *int64) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(*input) + }() +} + +func Com_amazonaws_dynamodb_ReplicaSettingsUpdate_ReplicaProvisionedReadCapacityAutoScalingSettingsUpdate_ToDafny(input *types.AutoScalingSettingsUpdate) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(ComAmazonawsDynamodbTypes.Companion_AutoScalingSettingsUpdate_.Create_AutoScalingSettingsUpdate_(Com_amazonaws_dynamodb_AutoScalingSettingsUpdate_MinimumUnits_ToDafny(input.MinimumUnits), Com_amazonaws_dynamodb_AutoScalingSettingsUpdate_MaximumUnits_ToDafny(input.MaximumUnits), Com_amazonaws_dynamodb_AutoScalingSettingsUpdate_AutoScalingDisabled_ToDafny(input.AutoScalingDisabled), Com_amazonaws_dynamodb_AutoScalingSettingsUpdate_AutoScalingRoleArn_ToDafny(input.AutoScalingRoleArn), Com_amazonaws_dynamodb_AutoScalingSettingsUpdate_ScalingPolicyUpdate_ToDafny(input.ScalingPolicyUpdate))) + }() +} + +func Com_amazonaws_dynamodb_ReplicaSettingsUpdate_ReplicaGlobalSecondaryIndexSettingsUpdate_ToDafny(input []types.ReplicaGlobalSecondaryIndexSettingsUpdate) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + var fieldValue []interface{} = make([]interface{}, 0) + for _, val := range input { + element := Com_amazonaws_dynamodb_ReplicaGlobalSecondaryIndexSettingsUpdateList_member_ToDafny(val) + fieldValue = append(fieldValue, element) + } + return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(fieldValue...)) + }() +} + +func Com_amazonaws_dynamodb_ReplicaGlobalSecondaryIndexSettingsUpdateList_member_ToDafny(input types.ReplicaGlobalSecondaryIndexSettingsUpdate) ComAmazonawsDynamodbTypes.ReplicaGlobalSecondaryIndexSettingsUpdate { + return func() ComAmazonawsDynamodbTypes.ReplicaGlobalSecondaryIndexSettingsUpdate { + + return ComAmazonawsDynamodbTypes.Companion_ReplicaGlobalSecondaryIndexSettingsUpdate_.Create_ReplicaGlobalSecondaryIndexSettingsUpdate_(Com_amazonaws_dynamodb_ReplicaGlobalSecondaryIndexSettingsUpdate_IndexName_ToDafny(input.IndexName), Com_amazonaws_dynamodb_ReplicaGlobalSecondaryIndexSettingsUpdate_ProvisionedReadCapacityUnits_ToDafny(input.ProvisionedReadCapacityUnits), Com_amazonaws_dynamodb_ReplicaGlobalSecondaryIndexSettingsUpdate_ProvisionedReadCapacityAutoScalingSettingsUpdate_ToDafny(input.ProvisionedReadCapacityAutoScalingSettingsUpdate)) + }() +} + +func Com_amazonaws_dynamodb_ReplicaGlobalSecondaryIndexSettingsUpdate_IndexName_ToDafny(input *string) dafny.Sequence { + return func() dafny.Sequence { + if input == nil { + return nil + } + return func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(*input)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }() + }() +} + +func Com_amazonaws_dynamodb_ReplicaGlobalSecondaryIndexSettingsUpdate_ProvisionedReadCapacityUnits_ToDafny(input *int64) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(*input) + }() +} + +func Com_amazonaws_dynamodb_ReplicaGlobalSecondaryIndexSettingsUpdate_ProvisionedReadCapacityAutoScalingSettingsUpdate_ToDafny(input *types.AutoScalingSettingsUpdate) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(ComAmazonawsDynamodbTypes.Companion_AutoScalingSettingsUpdate_.Create_AutoScalingSettingsUpdate_(Com_amazonaws_dynamodb_AutoScalingSettingsUpdate_MinimumUnits_ToDafny(input.MinimumUnits), Com_amazonaws_dynamodb_AutoScalingSettingsUpdate_MaximumUnits_ToDafny(input.MaximumUnits), Com_amazonaws_dynamodb_AutoScalingSettingsUpdate_AutoScalingDisabled_ToDafny(input.AutoScalingDisabled), Com_amazonaws_dynamodb_AutoScalingSettingsUpdate_AutoScalingRoleArn_ToDafny(input.AutoScalingRoleArn), Com_amazonaws_dynamodb_AutoScalingSettingsUpdate_ScalingPolicyUpdate_ToDafny(input.ScalingPolicyUpdate))) + }() +} + +func Com_amazonaws_dynamodb_ReplicaSettingsUpdate_ReplicaTableClass_ToDafny(input types.TableClass) Wrappers.Option { + return func() Wrappers.Option { + var index int + for _, enumVal := range input.Values() { + index++ + if enumVal == input { + break + } + if index == len(input.Values()) { + return Wrappers.Companion_Option_.Create_None_() + } + + } + var enum interface{} + for allEnums, i := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_TableClass_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return Wrappers.Companion_Option_.Create_Some_(enum.(ComAmazonawsDynamodbTypes.TableClass)) + }() +} + +func Com_amazonaws_dynamodb_UpdateGlobalTableSettingsOutput_GlobalTableName_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 Com_amazonaws_dynamodb_UpdateGlobalTableSettingsOutput_ReplicaSettings_ToDafny(input []types.ReplicaSettingsDescription) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + var fieldValue []interface{} = make([]interface{}, 0) + for _, val := range input { + element := Com_amazonaws_dynamodb_ReplicaSettingsDescriptionList_member_ToDafny(val) + fieldValue = append(fieldValue, element) + } + return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(fieldValue...)) + }() +} + +func Com_amazonaws_dynamodb_UpdateItemInput_TableName_ToDafny(input *string) dafny.Sequence { + return func() dafny.Sequence { + if input == nil { + return nil + } + return func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(*input)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }() + }() +} + +func Com_amazonaws_dynamodb_UpdateItemInput_Key_ToDafny(input map[string]types.AttributeValue) dafny.Map { + return func() dafny.Map { + + fieldValue := dafny.NewMapBuilder() + for key, val := range input { + fieldValue.Add(Com_amazonaws_dynamodb_Key_key_ToDafny(key), Com_amazonaws_dynamodb_Key_value_ToDafny(val)) + } + return fieldValue.ToMap() + }() +} + +func Com_amazonaws_dynamodb_UpdateItemInput_AttributeUpdates_ToDafny(input map[string]types.AttributeValueUpdate) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + fieldValue := dafny.NewMapBuilder() + for key, val := range input { + fieldValue.Add(Com_amazonaws_dynamodb_AttributeUpdates_key_ToDafny(key), Com_amazonaws_dynamodb_AttributeUpdates_value_ToDafny(val)) + } + return Wrappers.Companion_Option_.Create_Some_(fieldValue.ToMap()) + }() +} + +func Com_amazonaws_dynamodb_AttributeUpdates_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 Com_amazonaws_dynamodb_AttributeUpdates_value_ToDafny(input types.AttributeValueUpdate) ComAmazonawsDynamodbTypes.AttributeValueUpdate { + return func() ComAmazonawsDynamodbTypes.AttributeValueUpdate { + + return ComAmazonawsDynamodbTypes.Companion_AttributeValueUpdate_.Create_AttributeValueUpdate_(Com_amazonaws_dynamodb_AttributeValueUpdate_Value_ToDafny(input.Value), Com_amazonaws_dynamodb_AttributeValueUpdate_Action_ToDafny(input.Action)) + }() +} + +func Com_amazonaws_dynamodb_AttributeValueUpdate_Value_ToDafny(input types.AttributeValue) Wrappers.Option { + return func() Wrappers.Option { + switch input.(type) { + case *types.AttributeValueMemberS: + var inputToConversion = Com_amazonaws_dynamodb_AttributeValue_S_ToDafny(input.(*types.AttributeValueMemberS).Value) + return Wrappers.Companion_Option_.Create_Some_(ComAmazonawsDynamodbTypes.CompanionStruct_AttributeValue_{}.Create_S_(inputToConversion.UnwrapOr(nil).(dafny.Sequence))) + case *types.AttributeValueMemberN: + var inputToConversion = Com_amazonaws_dynamodb_AttributeValue_N_ToDafny(input.(*types.AttributeValueMemberN).Value) + return Wrappers.Companion_Option_.Create_Some_(ComAmazonawsDynamodbTypes.CompanionStruct_AttributeValue_{}.Create_N_(inputToConversion.UnwrapOr(nil).(dafny.Sequence))) + case *types.AttributeValueMemberB: + var inputToConversion = Com_amazonaws_dynamodb_AttributeValue_B_ToDafny(input.(*types.AttributeValueMemberB).Value) + return Wrappers.Companion_Option_.Create_Some_(ComAmazonawsDynamodbTypes.CompanionStruct_AttributeValue_{}.Create_B_(inputToConversion.UnwrapOr(nil).(dafny.Sequence))) + case *types.AttributeValueMemberSS: + var inputToConversion = Com_amazonaws_dynamodb_AttributeValue_SS_ToDafny(input.(*types.AttributeValueMemberSS).Value) + return Wrappers.Companion_Option_.Create_Some_(ComAmazonawsDynamodbTypes.CompanionStruct_AttributeValue_{}.Create_SS_(inputToConversion.UnwrapOr(nil).(dafny.Sequence))) + case *types.AttributeValueMemberNS: + var inputToConversion = Com_amazonaws_dynamodb_AttributeValue_NS_ToDafny(input.(*types.AttributeValueMemberNS).Value) + return Wrappers.Companion_Option_.Create_Some_(ComAmazonawsDynamodbTypes.CompanionStruct_AttributeValue_{}.Create_NS_(inputToConversion.UnwrapOr(nil).(dafny.Sequence))) + case *types.AttributeValueMemberBS: + var inputToConversion = Com_amazonaws_dynamodb_AttributeValue_BS_ToDafny(input.(*types.AttributeValueMemberBS).Value) + return Wrappers.Companion_Option_.Create_Some_(ComAmazonawsDynamodbTypes.CompanionStruct_AttributeValue_{}.Create_BS_(inputToConversion.UnwrapOr(nil).(dafny.Sequence))) + case *types.AttributeValueMemberM: + var inputToConversion = Com_amazonaws_dynamodb_AttributeValue_M_ToDafny(input.(*types.AttributeValueMemberM).Value) + return Wrappers.Companion_Option_.Create_Some_(ComAmazonawsDynamodbTypes.CompanionStruct_AttributeValue_{}.Create_M_(inputToConversion.UnwrapOr(nil).(dafny.Map))) + case *types.AttributeValueMemberL: + var inputToConversion = Com_amazonaws_dynamodb_AttributeValue_L_ToDafny(input.(*types.AttributeValueMemberL).Value) + return Wrappers.Companion_Option_.Create_Some_(ComAmazonawsDynamodbTypes.CompanionStruct_AttributeValue_{}.Create_L_(inputToConversion.UnwrapOr(nil).(dafny.Sequence))) + case *types.AttributeValueMemberNULL: + var inputToConversion = Com_amazonaws_dynamodb_AttributeValue_NULL_ToDafny(input.(*types.AttributeValueMemberNULL).Value) + return Wrappers.Companion_Option_.Create_Some_(ComAmazonawsDynamodbTypes.CompanionStruct_AttributeValue_{}.Create_NULL_(inputToConversion.UnwrapOr(nil).(bool))) + case *types.AttributeValueMemberBOOL: + var inputToConversion = Com_amazonaws_dynamodb_AttributeValue_BOOL_ToDafny(input.(*types.AttributeValueMemberBOOL).Value) + return Wrappers.Companion_Option_.Create_Some_(ComAmazonawsDynamodbTypes.CompanionStruct_AttributeValue_{}.Create_BOOL_(inputToConversion.UnwrapOr(nil).(bool))) + + default: + panic("Unhandled union type") + } + }() +} + +func Com_amazonaws_dynamodb_AttributeValueUpdate_Action_ToDafny(input types.AttributeAction) Wrappers.Option { + return func() Wrappers.Option { + var index int + for _, enumVal := range input.Values() { + index++ + if enumVal == input { + break + } + if index == len(input.Values()) { + return Wrappers.Companion_Option_.Create_None_() + } + + } + var enum interface{} + for allEnums, i := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_AttributeAction_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return Wrappers.Companion_Option_.Create_Some_(enum.(ComAmazonawsDynamodbTypes.AttributeAction)) + }() +} + +func Com_amazonaws_dynamodb_UpdateItemInput_Expected_ToDafny(input map[string]types.ExpectedAttributeValue) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + fieldValue := dafny.NewMapBuilder() + for key, val := range input { + fieldValue.Add(Com_amazonaws_dynamodb_ExpectedAttributeMap_key_ToDafny(key), Com_amazonaws_dynamodb_ExpectedAttributeMap_value_ToDafny(val)) + } + return Wrappers.Companion_Option_.Create_Some_(fieldValue.ToMap()) + }() +} + +func Com_amazonaws_dynamodb_UpdateItemInput_ConditionalOperator_ToDafny(input types.ConditionalOperator) Wrappers.Option { + return func() Wrappers.Option { + var index int + for _, enumVal := range input.Values() { + index++ + if enumVal == input { + break + } + if index == len(input.Values()) { + return Wrappers.Companion_Option_.Create_None_() + } + + } + var enum interface{} + for allEnums, i := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_ConditionalOperator_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return Wrappers.Companion_Option_.Create_Some_(enum.(ComAmazonawsDynamodbTypes.ConditionalOperator)) + }() +} + +func Com_amazonaws_dynamodb_UpdateItemInput_ReturnValues_ToDafny(input types.ReturnValue) Wrappers.Option { + return func() Wrappers.Option { + var index int + for _, enumVal := range input.Values() { + index++ + if enumVal == input { + break + } + if index == len(input.Values()) { + return Wrappers.Companion_Option_.Create_None_() + } + + } + var enum interface{} + for allEnums, i := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_ReturnValue_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return Wrappers.Companion_Option_.Create_Some_(enum.(ComAmazonawsDynamodbTypes.ReturnValue)) + }() +} + +func Com_amazonaws_dynamodb_UpdateItemInput_ReturnConsumedCapacity_ToDafny(input types.ReturnConsumedCapacity) Wrappers.Option { + return func() Wrappers.Option { + var index int + for _, enumVal := range input.Values() { + index++ + if enumVal == input { + break + } + if index == len(input.Values()) { + return Wrappers.Companion_Option_.Create_None_() + } + + } + var enum interface{} + for allEnums, i := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_ReturnConsumedCapacity_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return Wrappers.Companion_Option_.Create_Some_(enum.(ComAmazonawsDynamodbTypes.ReturnConsumedCapacity)) + }() +} + +func Com_amazonaws_dynamodb_UpdateItemInput_ReturnItemCollectionMetrics_ToDafny(input types.ReturnItemCollectionMetrics) Wrappers.Option { + return func() Wrappers.Option { + var index int + for _, enumVal := range input.Values() { + index++ + if enumVal == input { + break + } + if index == len(input.Values()) { + return Wrappers.Companion_Option_.Create_None_() + } + + } + var enum interface{} + for allEnums, i := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_ReturnItemCollectionMetrics_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return Wrappers.Companion_Option_.Create_Some_(enum.(ComAmazonawsDynamodbTypes.ReturnItemCollectionMetrics)) + }() +} + +func Com_amazonaws_dynamodb_UpdateItemInput_UpdateExpression_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 Com_amazonaws_dynamodb_UpdateItemInput_ConditionExpression_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 Com_amazonaws_dynamodb_UpdateItemInput_ExpressionAttributeNames_ToDafny(input map[string]string) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + fieldValue := dafny.NewMapBuilder() + for key, val := range input { + fieldValue.Add(Com_amazonaws_dynamodb_ExpressionAttributeNameMap_key_ToDafny(key), Com_amazonaws_dynamodb_ExpressionAttributeNameMap_value_ToDafny(val)) + } + return Wrappers.Companion_Option_.Create_Some_(fieldValue.ToMap()) + }() +} + +func Com_amazonaws_dynamodb_UpdateItemInput_ExpressionAttributeValues_ToDafny(input map[string]types.AttributeValue) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + fieldValue := dafny.NewMapBuilder() + for key, val := range input { + fieldValue.Add(Com_amazonaws_dynamodb_ExpressionAttributeValueMap_key_ToDafny(key), Com_amazonaws_dynamodb_ExpressionAttributeValueMap_value_ToDafny(val)) + } + return Wrappers.Companion_Option_.Create_Some_(fieldValue.ToMap()) + }() +} + +func Com_amazonaws_dynamodb_UpdateItemInput_ReturnValuesOnConditionCheckFailure_ToDafny(input types.ReturnValuesOnConditionCheckFailure) Wrappers.Option { + return func() Wrappers.Option { + var index int + for _, enumVal := range input.Values() { + index++ + if enumVal == input { + break + } + if index == len(input.Values()) { + return Wrappers.Companion_Option_.Create_None_() + } + + } + var enum interface{} + for allEnums, i := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_ReturnValuesOnConditionCheckFailure_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return Wrappers.Companion_Option_.Create_Some_(enum.(ComAmazonawsDynamodbTypes.ReturnValuesOnConditionCheckFailure)) + }() +} + +func Com_amazonaws_dynamodb_UpdateItemOutput_Attributes_ToDafny(input map[string]types.AttributeValue) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + fieldValue := dafny.NewMapBuilder() + for key, val := range input { + fieldValue.Add(Com_amazonaws_dynamodb_AttributeMap_key_ToDafny(key), Com_amazonaws_dynamodb_AttributeMap_value_ToDafny(val)) + } + return Wrappers.Companion_Option_.Create_Some_(fieldValue.ToMap()) + }() +} + +func Com_amazonaws_dynamodb_UpdateItemOutput_ConsumedCapacity_ToDafny(input *types.ConsumedCapacity) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(ComAmazonawsDynamodbTypes.Companion_ConsumedCapacity_.Create_ConsumedCapacity_(Com_amazonaws_dynamodb_ConsumedCapacity_TableName_ToDafny(input.TableName), Com_amazonaws_dynamodb_ConsumedCapacity_CapacityUnits_ToDafny(input.CapacityUnits), Com_amazonaws_dynamodb_ConsumedCapacity_ReadCapacityUnits_ToDafny(input.ReadCapacityUnits), Com_amazonaws_dynamodb_ConsumedCapacity_WriteCapacityUnits_ToDafny(input.WriteCapacityUnits), Com_amazonaws_dynamodb_ConsumedCapacity_Table_ToDafny(input.Table), Com_amazonaws_dynamodb_ConsumedCapacity_LocalSecondaryIndexes_ToDafny(input.LocalSecondaryIndexes), Com_amazonaws_dynamodb_ConsumedCapacity_GlobalSecondaryIndexes_ToDafny(input.GlobalSecondaryIndexes))) + }() +} + +func Com_amazonaws_dynamodb_UpdateItemOutput_ItemCollectionMetrics_ToDafny(input *types.ItemCollectionMetrics) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(ComAmazonawsDynamodbTypes.Companion_ItemCollectionMetrics_.Create_ItemCollectionMetrics_(Com_amazonaws_dynamodb_ItemCollectionMetrics_ItemCollectionKey_ToDafny(input.ItemCollectionKey), Com_amazonaws_dynamodb_ItemCollectionMetrics_SizeEstimateRangeGB_ToDafny(input.SizeEstimateRangeGB))) + }() +} + +func Com_amazonaws_dynamodb_UpdateKinesisStreamingDestinationInput_TableName_ToDafny(input *string) dafny.Sequence { + return func() dafny.Sequence { + if input == nil { + return nil + } + return func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(*input)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }() + }() +} + +func Com_amazonaws_dynamodb_UpdateKinesisStreamingDestinationInput_StreamArn_ToDafny(input *string) dafny.Sequence { + return func() dafny.Sequence { + if input == nil { + return nil + } + return func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(*input)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }() + }() +} + +func Com_amazonaws_dynamodb_UpdateKinesisStreamingDestinationInput_UpdateKinesisStreamingConfiguration_ToDafny(input *types.UpdateKinesisStreamingConfiguration) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(ComAmazonawsDynamodbTypes.Companion_UpdateKinesisStreamingConfiguration_.Create_UpdateKinesisStreamingConfiguration_(Com_amazonaws_dynamodb_UpdateKinesisStreamingConfiguration_ApproximateCreationDateTimePrecision_ToDafny(input.ApproximateCreationDateTimePrecision))) + }() +} + +func Com_amazonaws_dynamodb_UpdateKinesisStreamingConfiguration_ApproximateCreationDateTimePrecision_ToDafny(input types.ApproximateCreationDateTimePrecision) Wrappers.Option { + return func() Wrappers.Option { + var index int + for _, enumVal := range input.Values() { + index++ + if enumVal == input { + break + } + if index == len(input.Values()) { + return Wrappers.Companion_Option_.Create_None_() + } + + } + var enum interface{} + for allEnums, i := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_ApproximateCreationDateTimePrecision_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return Wrappers.Companion_Option_.Create_Some_(enum.(ComAmazonawsDynamodbTypes.ApproximateCreationDateTimePrecision)) + }() +} + +func Com_amazonaws_dynamodb_UpdateKinesisStreamingDestinationOutput_TableName_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 Com_amazonaws_dynamodb_UpdateKinesisStreamingDestinationOutput_StreamArn_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 Com_amazonaws_dynamodb_UpdateKinesisStreamingDestinationOutput_DestinationStatus_ToDafny(input types.DestinationStatus) Wrappers.Option { + return func() Wrappers.Option { + var index int + for _, enumVal := range input.Values() { + index++ + if enumVal == input { + break + } + if index == len(input.Values()) { + return Wrappers.Companion_Option_.Create_None_() + } + + } + var enum interface{} + for allEnums, i := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_DestinationStatus_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return Wrappers.Companion_Option_.Create_Some_(enum.(ComAmazonawsDynamodbTypes.DestinationStatus)) + }() +} + +func Com_amazonaws_dynamodb_UpdateKinesisStreamingDestinationOutput_UpdateKinesisStreamingConfiguration_ToDafny(input *types.UpdateKinesisStreamingConfiguration) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(ComAmazonawsDynamodbTypes.Companion_UpdateKinesisStreamingConfiguration_.Create_UpdateKinesisStreamingConfiguration_(Com_amazonaws_dynamodb_UpdateKinesisStreamingConfiguration_ApproximateCreationDateTimePrecision_ToDafny(input.ApproximateCreationDateTimePrecision))) + }() +} + +func Com_amazonaws_dynamodb_UpdateTableInput_AttributeDefinitions_ToDafny(input []types.AttributeDefinition) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + var fieldValue []interface{} = make([]interface{}, 0) + for _, val := range input { + element := Com_amazonaws_dynamodb_AttributeDefinitions_member_ToDafny(val) + fieldValue = append(fieldValue, element) + } + return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(fieldValue...)) + }() +} + +func Com_amazonaws_dynamodb_UpdateTableInput_TableName_ToDafny(input *string) dafny.Sequence { + return func() dafny.Sequence { + if input == nil { + return nil + } + return func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(*input)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }() + }() +} + +func Com_amazonaws_dynamodb_UpdateTableInput_BillingMode_ToDafny(input types.BillingMode) Wrappers.Option { + return func() Wrappers.Option { + var index int + for _, enumVal := range input.Values() { + index++ + if enumVal == input { + break + } + if index == len(input.Values()) { + return Wrappers.Companion_Option_.Create_None_() + } + + } + var enum interface{} + for allEnums, i := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_BillingMode_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return Wrappers.Companion_Option_.Create_Some_(enum.(ComAmazonawsDynamodbTypes.BillingMode)) + }() +} + +func Com_amazonaws_dynamodb_UpdateTableInput_ProvisionedThroughput_ToDafny(input *types.ProvisionedThroughput) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(ComAmazonawsDynamodbTypes.Companion_ProvisionedThroughput_.Create_ProvisionedThroughput_(Com_amazonaws_dynamodb_ProvisionedThroughput_ReadCapacityUnits_ToDafny(input.ReadCapacityUnits), Com_amazonaws_dynamodb_ProvisionedThroughput_WriteCapacityUnits_ToDafny(input.WriteCapacityUnits))) + }() +} + +func Com_amazonaws_dynamodb_UpdateTableInput_GlobalSecondaryIndexUpdates_ToDafny(input []types.GlobalSecondaryIndexUpdate) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + var fieldValue []interface{} = make([]interface{}, 0) + for _, val := range input { + element := Com_amazonaws_dynamodb_GlobalSecondaryIndexUpdateList_member_ToDafny(val) + fieldValue = append(fieldValue, element) + } + return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(fieldValue...)) + }() +} + +func Com_amazonaws_dynamodb_GlobalSecondaryIndexUpdateList_member_ToDafny(input types.GlobalSecondaryIndexUpdate) ComAmazonawsDynamodbTypes.GlobalSecondaryIndexUpdate { + return func() ComAmazonawsDynamodbTypes.GlobalSecondaryIndexUpdate { + + return ComAmazonawsDynamodbTypes.Companion_GlobalSecondaryIndexUpdate_.Create_GlobalSecondaryIndexUpdate_(Com_amazonaws_dynamodb_GlobalSecondaryIndexUpdate_Update_ToDafny(input.Update), Com_amazonaws_dynamodb_GlobalSecondaryIndexUpdate_Create_ToDafny(input.Create), Com_amazonaws_dynamodb_GlobalSecondaryIndexUpdate_Delete_ToDafny(input.Delete)) + }() +} + +func Com_amazonaws_dynamodb_GlobalSecondaryIndexUpdate_Update_ToDafny(input *types.UpdateGlobalSecondaryIndexAction) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(ComAmazonawsDynamodbTypes.Companion_UpdateGlobalSecondaryIndexAction_.Create_UpdateGlobalSecondaryIndexAction_(Com_amazonaws_dynamodb_UpdateGlobalSecondaryIndexAction_IndexName_ToDafny(input.IndexName), Com_amazonaws_dynamodb_UpdateGlobalSecondaryIndexAction_ProvisionedThroughput_ToDafny(input.ProvisionedThroughput), Com_amazonaws_dynamodb_UpdateGlobalSecondaryIndexAction_OnDemandThroughput_ToDafny(input.OnDemandThroughput))) + }() +} + +func Com_amazonaws_dynamodb_UpdateGlobalSecondaryIndexAction_IndexName_ToDafny(input *string) dafny.Sequence { + return func() dafny.Sequence { + if input == nil { + return nil + } + return func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(*input)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }() + }() +} + +func Com_amazonaws_dynamodb_UpdateGlobalSecondaryIndexAction_ProvisionedThroughput_ToDafny(input *types.ProvisionedThroughput) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(ComAmazonawsDynamodbTypes.Companion_ProvisionedThroughput_.Create_ProvisionedThroughput_(Com_amazonaws_dynamodb_ProvisionedThroughput_ReadCapacityUnits_ToDafny(input.ReadCapacityUnits), Com_amazonaws_dynamodb_ProvisionedThroughput_WriteCapacityUnits_ToDafny(input.WriteCapacityUnits))) + }() +} + +func Com_amazonaws_dynamodb_UpdateGlobalSecondaryIndexAction_OnDemandThroughput_ToDafny(input *types.OnDemandThroughput) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(ComAmazonawsDynamodbTypes.Companion_OnDemandThroughput_.Create_OnDemandThroughput_(Com_amazonaws_dynamodb_OnDemandThroughput_MaxReadRequestUnits_ToDafny(input.MaxReadRequestUnits), Com_amazonaws_dynamodb_OnDemandThroughput_MaxWriteRequestUnits_ToDafny(input.MaxWriteRequestUnits))) + }() +} + +func Com_amazonaws_dynamodb_GlobalSecondaryIndexUpdate_Create_ToDafny(input *types.CreateGlobalSecondaryIndexAction) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(ComAmazonawsDynamodbTypes.Companion_CreateGlobalSecondaryIndexAction_.Create_CreateGlobalSecondaryIndexAction_(Com_amazonaws_dynamodb_CreateGlobalSecondaryIndexAction_IndexName_ToDafny(input.IndexName), Com_amazonaws_dynamodb_CreateGlobalSecondaryIndexAction_KeySchema_ToDafny(input.KeySchema), Com_amazonaws_dynamodb_CreateGlobalSecondaryIndexAction_Projection_ToDafny(input.Projection), Com_amazonaws_dynamodb_CreateGlobalSecondaryIndexAction_ProvisionedThroughput_ToDafny(input.ProvisionedThroughput), Com_amazonaws_dynamodb_CreateGlobalSecondaryIndexAction_OnDemandThroughput_ToDafny(input.OnDemandThroughput))) + }() +} + +func Com_amazonaws_dynamodb_CreateGlobalSecondaryIndexAction_IndexName_ToDafny(input *string) dafny.Sequence { + return func() dafny.Sequence { + if input == nil { + return nil + } + return func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(*input)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }() + }() +} + +func Com_amazonaws_dynamodb_CreateGlobalSecondaryIndexAction_KeySchema_ToDafny(input []types.KeySchemaElement) dafny.Sequence { + return func() dafny.Sequence { + if input == nil { + return nil + } + var fieldValue []interface{} = make([]interface{}, 0) + for _, val := range input { + element := Com_amazonaws_dynamodb_KeySchema_member_ToDafny(val) + fieldValue = append(fieldValue, element) + } + return dafny.SeqOf(fieldValue...) + }() +} + +func Com_amazonaws_dynamodb_CreateGlobalSecondaryIndexAction_Projection_ToDafny(input *types.Projection) ComAmazonawsDynamodbTypes.Projection { + return func() ComAmazonawsDynamodbTypes.Projection { + if input == nil { + return ComAmazonawsDynamodbTypes.Projection{} + } + return ComAmazonawsDynamodbTypes.Companion_Projection_.Create_Projection_(Com_amazonaws_dynamodb_Projection_ProjectionType_ToDafny(input.ProjectionType), Com_amazonaws_dynamodb_Projection_NonKeyAttributes_ToDafny(input.NonKeyAttributes)) + }() +} + +func Com_amazonaws_dynamodb_CreateGlobalSecondaryIndexAction_ProvisionedThroughput_ToDafny(input *types.ProvisionedThroughput) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(ComAmazonawsDynamodbTypes.Companion_ProvisionedThroughput_.Create_ProvisionedThroughput_(Com_amazonaws_dynamodb_ProvisionedThroughput_ReadCapacityUnits_ToDafny(input.ReadCapacityUnits), Com_amazonaws_dynamodb_ProvisionedThroughput_WriteCapacityUnits_ToDafny(input.WriteCapacityUnits))) + }() +} + +func Com_amazonaws_dynamodb_CreateGlobalSecondaryIndexAction_OnDemandThroughput_ToDafny(input *types.OnDemandThroughput) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(ComAmazonawsDynamodbTypes.Companion_OnDemandThroughput_.Create_OnDemandThroughput_(Com_amazonaws_dynamodb_OnDemandThroughput_MaxReadRequestUnits_ToDafny(input.MaxReadRequestUnits), Com_amazonaws_dynamodb_OnDemandThroughput_MaxWriteRequestUnits_ToDafny(input.MaxWriteRequestUnits))) + }() +} + +func Com_amazonaws_dynamodb_GlobalSecondaryIndexUpdate_Delete_ToDafny(input *types.DeleteGlobalSecondaryIndexAction) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(ComAmazonawsDynamodbTypes.Companion_DeleteGlobalSecondaryIndexAction_.Create_DeleteGlobalSecondaryIndexAction_(Com_amazonaws_dynamodb_DeleteGlobalSecondaryIndexAction_IndexName_ToDafny(input.IndexName))) + }() +} + +func Com_amazonaws_dynamodb_DeleteGlobalSecondaryIndexAction_IndexName_ToDafny(input *string) dafny.Sequence { + return func() dafny.Sequence { + if input == nil { + return nil + } + return func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(*input)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }() + }() +} + +func Com_amazonaws_dynamodb_UpdateTableInput_StreamSpecification_ToDafny(input *types.StreamSpecification) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(ComAmazonawsDynamodbTypes.Companion_StreamSpecification_.Create_StreamSpecification_(Com_amazonaws_dynamodb_StreamSpecification_StreamEnabled_ToDafny(input.StreamEnabled), Com_amazonaws_dynamodb_StreamSpecification_StreamViewType_ToDafny(input.StreamViewType))) + }() +} + +func Com_amazonaws_dynamodb_UpdateTableInput_SSESpecification_ToDafny(input *types.SSESpecification) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(ComAmazonawsDynamodbTypes.Companion_SSESpecification_.Create_SSESpecification_(Com_amazonaws_dynamodb_SSESpecification_Enabled_ToDafny(input.Enabled), Com_amazonaws_dynamodb_SSESpecification_SSEType_ToDafny(input.SSEType), Com_amazonaws_dynamodb_SSESpecification_KMSMasterKeyId_ToDafny(input.KMSMasterKeyId))) + }() +} + +func Com_amazonaws_dynamodb_UpdateTableInput_ReplicaUpdates_ToDafny(input []types.ReplicationGroupUpdate) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + var fieldValue []interface{} = make([]interface{}, 0) + for _, val := range input { + element := Com_amazonaws_dynamodb_ReplicationGroupUpdateList_member_ToDafny(val) + fieldValue = append(fieldValue, element) + } + return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(fieldValue...)) + }() +} + +func Com_amazonaws_dynamodb_ReplicationGroupUpdateList_member_ToDafny(input types.ReplicationGroupUpdate) ComAmazonawsDynamodbTypes.ReplicationGroupUpdate { + return func() ComAmazonawsDynamodbTypes.ReplicationGroupUpdate { + + return ComAmazonawsDynamodbTypes.Companion_ReplicationGroupUpdate_.Create_ReplicationGroupUpdate_(Com_amazonaws_dynamodb_ReplicationGroupUpdate_Create_ToDafny(input.Create), Com_amazonaws_dynamodb_ReplicationGroupUpdate_Update_ToDafny(input.Update), Com_amazonaws_dynamodb_ReplicationGroupUpdate_Delete_ToDafny(input.Delete)) + }() +} + +func Com_amazonaws_dynamodb_ReplicationGroupUpdate_Create_ToDafny(input *types.CreateReplicationGroupMemberAction) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(ComAmazonawsDynamodbTypes.Companion_CreateReplicationGroupMemberAction_.Create_CreateReplicationGroupMemberAction_(Com_amazonaws_dynamodb_CreateReplicationGroupMemberAction_RegionName_ToDafny(input.RegionName), Com_amazonaws_dynamodb_CreateReplicationGroupMemberAction_KMSMasterKeyId_ToDafny(input.KMSMasterKeyId), Com_amazonaws_dynamodb_CreateReplicationGroupMemberAction_ProvisionedThroughputOverride_ToDafny(input.ProvisionedThroughputOverride), Com_amazonaws_dynamodb_CreateReplicationGroupMemberAction_OnDemandThroughputOverride_ToDafny(input.OnDemandThroughputOverride), Com_amazonaws_dynamodb_CreateReplicationGroupMemberAction_GlobalSecondaryIndexes_ToDafny(input.GlobalSecondaryIndexes), Com_amazonaws_dynamodb_CreateReplicationGroupMemberAction_TableClassOverride_ToDafny(input.TableClassOverride))) + }() +} + +func Com_amazonaws_dynamodb_CreateReplicationGroupMemberAction_RegionName_ToDafny(input *string) dafny.Sequence { + return func() dafny.Sequence { + if input == nil { + return nil + } + return func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(*input)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }() + }() +} + +func Com_amazonaws_dynamodb_CreateReplicationGroupMemberAction_KMSMasterKeyId_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 Com_amazonaws_dynamodb_CreateReplicationGroupMemberAction_ProvisionedThroughputOverride_ToDafny(input *types.ProvisionedThroughputOverride) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(ComAmazonawsDynamodbTypes.Companion_ProvisionedThroughputOverride_.Create_ProvisionedThroughputOverride_(Com_amazonaws_dynamodb_ProvisionedThroughputOverride_ReadCapacityUnits_ToDafny(input.ReadCapacityUnits))) + }() +} + +func Com_amazonaws_dynamodb_CreateReplicationGroupMemberAction_OnDemandThroughputOverride_ToDafny(input *types.OnDemandThroughputOverride) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(ComAmazonawsDynamodbTypes.Companion_OnDemandThroughputOverride_.Create_OnDemandThroughputOverride_(Com_amazonaws_dynamodb_OnDemandThroughputOverride_MaxReadRequestUnits_ToDafny(input.MaxReadRequestUnits))) + }() +} + +func Com_amazonaws_dynamodb_CreateReplicationGroupMemberAction_GlobalSecondaryIndexes_ToDafny(input []types.ReplicaGlobalSecondaryIndex) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + var fieldValue []interface{} = make([]interface{}, 0) + for _, val := range input { + element := Com_amazonaws_dynamodb_ReplicaGlobalSecondaryIndexList_member_ToDafny(val) + fieldValue = append(fieldValue, element) + } + return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(fieldValue...)) + }() +} + +func Com_amazonaws_dynamodb_ReplicaGlobalSecondaryIndexList_member_ToDafny(input types.ReplicaGlobalSecondaryIndex) ComAmazonawsDynamodbTypes.ReplicaGlobalSecondaryIndex { + return func() ComAmazonawsDynamodbTypes.ReplicaGlobalSecondaryIndex { + + return ComAmazonawsDynamodbTypes.Companion_ReplicaGlobalSecondaryIndex_.Create_ReplicaGlobalSecondaryIndex_(Com_amazonaws_dynamodb_ReplicaGlobalSecondaryIndex_IndexName_ToDafny(input.IndexName), Com_amazonaws_dynamodb_ReplicaGlobalSecondaryIndex_ProvisionedThroughputOverride_ToDafny(input.ProvisionedThroughputOverride), Com_amazonaws_dynamodb_ReplicaGlobalSecondaryIndex_OnDemandThroughputOverride_ToDafny(input.OnDemandThroughputOverride)) + }() +} + +func Com_amazonaws_dynamodb_ReplicaGlobalSecondaryIndex_IndexName_ToDafny(input *string) dafny.Sequence { + return func() dafny.Sequence { + if input == nil { + return nil + } + return func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(*input)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }() + }() +} + +func Com_amazonaws_dynamodb_ReplicaGlobalSecondaryIndex_ProvisionedThroughputOverride_ToDafny(input *types.ProvisionedThroughputOverride) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(ComAmazonawsDynamodbTypes.Companion_ProvisionedThroughputOverride_.Create_ProvisionedThroughputOverride_(Com_amazonaws_dynamodb_ProvisionedThroughputOverride_ReadCapacityUnits_ToDafny(input.ReadCapacityUnits))) + }() +} + +func Com_amazonaws_dynamodb_ReplicaGlobalSecondaryIndex_OnDemandThroughputOverride_ToDafny(input *types.OnDemandThroughputOverride) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(ComAmazonawsDynamodbTypes.Companion_OnDemandThroughputOverride_.Create_OnDemandThroughputOverride_(Com_amazonaws_dynamodb_OnDemandThroughputOverride_MaxReadRequestUnits_ToDafny(input.MaxReadRequestUnits))) + }() +} + +func Com_amazonaws_dynamodb_CreateReplicationGroupMemberAction_TableClassOverride_ToDafny(input types.TableClass) Wrappers.Option { + return func() Wrappers.Option { + var index int + for _, enumVal := range input.Values() { + index++ + if enumVal == input { + break + } + if index == len(input.Values()) { + return Wrappers.Companion_Option_.Create_None_() + } + + } + var enum interface{} + for allEnums, i := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_TableClass_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return Wrappers.Companion_Option_.Create_Some_(enum.(ComAmazonawsDynamodbTypes.TableClass)) + }() +} + +func Com_amazonaws_dynamodb_ReplicationGroupUpdate_Update_ToDafny(input *types.UpdateReplicationGroupMemberAction) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(ComAmazonawsDynamodbTypes.Companion_UpdateReplicationGroupMemberAction_.Create_UpdateReplicationGroupMemberAction_(Com_amazonaws_dynamodb_UpdateReplicationGroupMemberAction_RegionName_ToDafny(input.RegionName), Com_amazonaws_dynamodb_UpdateReplicationGroupMemberAction_KMSMasterKeyId_ToDafny(input.KMSMasterKeyId), Com_amazonaws_dynamodb_UpdateReplicationGroupMemberAction_ProvisionedThroughputOverride_ToDafny(input.ProvisionedThroughputOverride), Com_amazonaws_dynamodb_UpdateReplicationGroupMemberAction_OnDemandThroughputOverride_ToDafny(input.OnDemandThroughputOverride), Com_amazonaws_dynamodb_UpdateReplicationGroupMemberAction_GlobalSecondaryIndexes_ToDafny(input.GlobalSecondaryIndexes), Com_amazonaws_dynamodb_UpdateReplicationGroupMemberAction_TableClassOverride_ToDafny(input.TableClassOverride))) + }() +} + +func Com_amazonaws_dynamodb_UpdateReplicationGroupMemberAction_RegionName_ToDafny(input *string) dafny.Sequence { + return func() dafny.Sequence { + if input == nil { + return nil + } + return func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(*input)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }() + }() +} + +func Com_amazonaws_dynamodb_UpdateReplicationGroupMemberAction_KMSMasterKeyId_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 Com_amazonaws_dynamodb_UpdateReplicationGroupMemberAction_ProvisionedThroughputOverride_ToDafny(input *types.ProvisionedThroughputOverride) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(ComAmazonawsDynamodbTypes.Companion_ProvisionedThroughputOverride_.Create_ProvisionedThroughputOverride_(Com_amazonaws_dynamodb_ProvisionedThroughputOverride_ReadCapacityUnits_ToDafny(input.ReadCapacityUnits))) + }() +} + +func Com_amazonaws_dynamodb_UpdateReplicationGroupMemberAction_OnDemandThroughputOverride_ToDafny(input *types.OnDemandThroughputOverride) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(ComAmazonawsDynamodbTypes.Companion_OnDemandThroughputOverride_.Create_OnDemandThroughputOverride_(Com_amazonaws_dynamodb_OnDemandThroughputOverride_MaxReadRequestUnits_ToDafny(input.MaxReadRequestUnits))) + }() +} + +func Com_amazonaws_dynamodb_UpdateReplicationGroupMemberAction_GlobalSecondaryIndexes_ToDafny(input []types.ReplicaGlobalSecondaryIndex) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + var fieldValue []interface{} = make([]interface{}, 0) + for _, val := range input { + element := Com_amazonaws_dynamodb_ReplicaGlobalSecondaryIndexList_member_ToDafny(val) + fieldValue = append(fieldValue, element) + } + return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(fieldValue...)) + }() +} + +func Com_amazonaws_dynamodb_UpdateReplicationGroupMemberAction_TableClassOverride_ToDafny(input types.TableClass) Wrappers.Option { + return func() Wrappers.Option { + var index int + for _, enumVal := range input.Values() { + index++ + if enumVal == input { + break + } + if index == len(input.Values()) { + return Wrappers.Companion_Option_.Create_None_() + } + + } + var enum interface{} + for allEnums, i := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_TableClass_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return Wrappers.Companion_Option_.Create_Some_(enum.(ComAmazonawsDynamodbTypes.TableClass)) + }() +} + +func Com_amazonaws_dynamodb_ReplicationGroupUpdate_Delete_ToDafny(input *types.DeleteReplicationGroupMemberAction) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(ComAmazonawsDynamodbTypes.Companion_DeleteReplicationGroupMemberAction_.Create_DeleteReplicationGroupMemberAction_(Com_amazonaws_dynamodb_DeleteReplicationGroupMemberAction_RegionName_ToDafny(input.RegionName))) + }() +} + +func Com_amazonaws_dynamodb_DeleteReplicationGroupMemberAction_RegionName_ToDafny(input *string) dafny.Sequence { + return func() dafny.Sequence { + if input == nil { + return nil + } + return func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(*input)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }() + }() +} + +func Com_amazonaws_dynamodb_UpdateTableInput_TableClass_ToDafny(input types.TableClass) Wrappers.Option { + return func() Wrappers.Option { + var index int + for _, enumVal := range input.Values() { + index++ + if enumVal == input { + break + } + if index == len(input.Values()) { + return Wrappers.Companion_Option_.Create_None_() + } + + } + var enum interface{} + for allEnums, i := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_TableClass_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return Wrappers.Companion_Option_.Create_Some_(enum.(ComAmazonawsDynamodbTypes.TableClass)) + }() +} + +func Com_amazonaws_dynamodb_UpdateTableInput_DeletionProtectionEnabled_ToDafny(input *bool) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(*input) + }() +} + +func Com_amazonaws_dynamodb_UpdateTableInput_OnDemandThroughput_ToDafny(input *types.OnDemandThroughput) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(ComAmazonawsDynamodbTypes.Companion_OnDemandThroughput_.Create_OnDemandThroughput_(Com_amazonaws_dynamodb_OnDemandThroughput_MaxReadRequestUnits_ToDafny(input.MaxReadRequestUnits), Com_amazonaws_dynamodb_OnDemandThroughput_MaxWriteRequestUnits_ToDafny(input.MaxWriteRequestUnits))) + }() +} + +func Com_amazonaws_dynamodb_UpdateTableOutput_TableDescription_ToDafny(input *types.TableDescription) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(ComAmazonawsDynamodbTypes.Companion_TableDescription_.Create_TableDescription_(Com_amazonaws_dynamodb_TableDescription_AttributeDefinitions_ToDafny(input.AttributeDefinitions), Com_amazonaws_dynamodb_TableDescription_TableName_ToDafny(input.TableName), Com_amazonaws_dynamodb_TableDescription_KeySchema_ToDafny(input.KeySchema), Com_amazonaws_dynamodb_TableDescription_TableStatus_ToDafny(input.TableStatus), Com_amazonaws_dynamodb_TableDescription_CreationDateTime_ToDafny(input.CreationDateTime), Com_amazonaws_dynamodb_TableDescription_ProvisionedThroughput_ToDafny(input.ProvisionedThroughput), Com_amazonaws_dynamodb_TableDescription_TableSizeBytes_ToDafny(input.TableSizeBytes), Com_amazonaws_dynamodb_TableDescription_ItemCount_ToDafny(input.ItemCount), Com_amazonaws_dynamodb_TableDescription_TableArn_ToDafny(input.TableArn), Com_amazonaws_dynamodb_TableDescription_TableId_ToDafny(input.TableId), Com_amazonaws_dynamodb_TableDescription_BillingModeSummary_ToDafny(input.BillingModeSummary), Com_amazonaws_dynamodb_TableDescription_LocalSecondaryIndexes_ToDafny(input.LocalSecondaryIndexes), Com_amazonaws_dynamodb_TableDescription_GlobalSecondaryIndexes_ToDafny(input.GlobalSecondaryIndexes), Com_amazonaws_dynamodb_TableDescription_StreamSpecification_ToDafny(input.StreamSpecification), Com_amazonaws_dynamodb_TableDescription_LatestStreamLabel_ToDafny(input.LatestStreamLabel), Com_amazonaws_dynamodb_TableDescription_LatestStreamArn_ToDafny(input.LatestStreamArn), Com_amazonaws_dynamodb_TableDescription_GlobalTableVersion_ToDafny(input.GlobalTableVersion), Com_amazonaws_dynamodb_TableDescription_Replicas_ToDafny(input.Replicas), Com_amazonaws_dynamodb_TableDescription_RestoreSummary_ToDafny(input.RestoreSummary), Com_amazonaws_dynamodb_TableDescription_SSEDescription_ToDafny(input.SSEDescription), Com_amazonaws_dynamodb_TableDescription_ArchivalSummary_ToDafny(input.ArchivalSummary), Com_amazonaws_dynamodb_TableDescription_TableClassSummary_ToDafny(input.TableClassSummary), Com_amazonaws_dynamodb_TableDescription_DeletionProtectionEnabled_ToDafny(input.DeletionProtectionEnabled), Com_amazonaws_dynamodb_TableDescription_OnDemandThroughput_ToDafny(input.OnDemandThroughput))) + }() +} + +func Com_amazonaws_dynamodb_UpdateTableReplicaAutoScalingInput_GlobalSecondaryIndexUpdates_ToDafny(input []types.GlobalSecondaryIndexAutoScalingUpdate) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + var fieldValue []interface{} = make([]interface{}, 0) + for _, val := range input { + element := Com_amazonaws_dynamodb_GlobalSecondaryIndexAutoScalingUpdateList_member_ToDafny(val) + fieldValue = append(fieldValue, element) + } + return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(fieldValue...)) + }() +} + +func Com_amazonaws_dynamodb_GlobalSecondaryIndexAutoScalingUpdateList_member_ToDafny(input types.GlobalSecondaryIndexAutoScalingUpdate) ComAmazonawsDynamodbTypes.GlobalSecondaryIndexAutoScalingUpdate { + return func() ComAmazonawsDynamodbTypes.GlobalSecondaryIndexAutoScalingUpdate { + + return ComAmazonawsDynamodbTypes.Companion_GlobalSecondaryIndexAutoScalingUpdate_.Create_GlobalSecondaryIndexAutoScalingUpdate_(Com_amazonaws_dynamodb_GlobalSecondaryIndexAutoScalingUpdate_IndexName_ToDafny(input.IndexName), Com_amazonaws_dynamodb_GlobalSecondaryIndexAutoScalingUpdate_ProvisionedWriteCapacityAutoScalingUpdate_ToDafny(input.ProvisionedWriteCapacityAutoScalingUpdate)) + }() +} + +func Com_amazonaws_dynamodb_GlobalSecondaryIndexAutoScalingUpdate_IndexName_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 Com_amazonaws_dynamodb_GlobalSecondaryIndexAutoScalingUpdate_ProvisionedWriteCapacityAutoScalingUpdate_ToDafny(input *types.AutoScalingSettingsUpdate) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(ComAmazonawsDynamodbTypes.Companion_AutoScalingSettingsUpdate_.Create_AutoScalingSettingsUpdate_(Com_amazonaws_dynamodb_AutoScalingSettingsUpdate_MinimumUnits_ToDafny(input.MinimumUnits), Com_amazonaws_dynamodb_AutoScalingSettingsUpdate_MaximumUnits_ToDafny(input.MaximumUnits), Com_amazonaws_dynamodb_AutoScalingSettingsUpdate_AutoScalingDisabled_ToDafny(input.AutoScalingDisabled), Com_amazonaws_dynamodb_AutoScalingSettingsUpdate_AutoScalingRoleArn_ToDafny(input.AutoScalingRoleArn), Com_amazonaws_dynamodb_AutoScalingSettingsUpdate_ScalingPolicyUpdate_ToDafny(input.ScalingPolicyUpdate))) + }() +} + +func Com_amazonaws_dynamodb_UpdateTableReplicaAutoScalingInput_TableName_ToDafny(input *string) dafny.Sequence { + return func() dafny.Sequence { + if input == nil { + return nil + } + return func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(*input)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }() + }() +} + +func Com_amazonaws_dynamodb_UpdateTableReplicaAutoScalingInput_ProvisionedWriteCapacityAutoScalingUpdate_ToDafny(input *types.AutoScalingSettingsUpdate) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(ComAmazonawsDynamodbTypes.Companion_AutoScalingSettingsUpdate_.Create_AutoScalingSettingsUpdate_(Com_amazonaws_dynamodb_AutoScalingSettingsUpdate_MinimumUnits_ToDafny(input.MinimumUnits), Com_amazonaws_dynamodb_AutoScalingSettingsUpdate_MaximumUnits_ToDafny(input.MaximumUnits), Com_amazonaws_dynamodb_AutoScalingSettingsUpdate_AutoScalingDisabled_ToDafny(input.AutoScalingDisabled), Com_amazonaws_dynamodb_AutoScalingSettingsUpdate_AutoScalingRoleArn_ToDafny(input.AutoScalingRoleArn), Com_amazonaws_dynamodb_AutoScalingSettingsUpdate_ScalingPolicyUpdate_ToDafny(input.ScalingPolicyUpdate))) + }() +} + +func Com_amazonaws_dynamodb_UpdateTableReplicaAutoScalingInput_ReplicaUpdates_ToDafny(input []types.ReplicaAutoScalingUpdate) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + var fieldValue []interface{} = make([]interface{}, 0) + for _, val := range input { + element := Com_amazonaws_dynamodb_ReplicaAutoScalingUpdateList_member_ToDafny(val) + fieldValue = append(fieldValue, element) + } + return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(fieldValue...)) + }() +} + +func Com_amazonaws_dynamodb_ReplicaAutoScalingUpdateList_member_ToDafny(input types.ReplicaAutoScalingUpdate) ComAmazonawsDynamodbTypes.ReplicaAutoScalingUpdate { + return func() ComAmazonawsDynamodbTypes.ReplicaAutoScalingUpdate { + + return ComAmazonawsDynamodbTypes.Companion_ReplicaAutoScalingUpdate_.Create_ReplicaAutoScalingUpdate_(Com_amazonaws_dynamodb_ReplicaAutoScalingUpdate_RegionName_ToDafny(input.RegionName), Com_amazonaws_dynamodb_ReplicaAutoScalingUpdate_ReplicaGlobalSecondaryIndexUpdates_ToDafny(input.ReplicaGlobalSecondaryIndexUpdates), Com_amazonaws_dynamodb_ReplicaAutoScalingUpdate_ReplicaProvisionedReadCapacityAutoScalingUpdate_ToDafny(input.ReplicaProvisionedReadCapacityAutoScalingUpdate)) + }() +} + +func Com_amazonaws_dynamodb_ReplicaAutoScalingUpdate_RegionName_ToDafny(input *string) dafny.Sequence { + return func() dafny.Sequence { + if input == nil { + return nil + } + return func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(*input)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }() + }() +} + +func Com_amazonaws_dynamodb_ReplicaAutoScalingUpdate_ReplicaGlobalSecondaryIndexUpdates_ToDafny(input []types.ReplicaGlobalSecondaryIndexAutoScalingUpdate) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + var fieldValue []interface{} = make([]interface{}, 0) + for _, val := range input { + element := Com_amazonaws_dynamodb_ReplicaGlobalSecondaryIndexAutoScalingUpdateList_member_ToDafny(val) + fieldValue = append(fieldValue, element) + } + return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(fieldValue...)) + }() +} + +func Com_amazonaws_dynamodb_ReplicaGlobalSecondaryIndexAutoScalingUpdateList_member_ToDafny(input types.ReplicaGlobalSecondaryIndexAutoScalingUpdate) ComAmazonawsDynamodbTypes.ReplicaGlobalSecondaryIndexAutoScalingUpdate { + return func() ComAmazonawsDynamodbTypes.ReplicaGlobalSecondaryIndexAutoScalingUpdate { + + return ComAmazonawsDynamodbTypes.Companion_ReplicaGlobalSecondaryIndexAutoScalingUpdate_.Create_ReplicaGlobalSecondaryIndexAutoScalingUpdate_(Com_amazonaws_dynamodb_ReplicaGlobalSecondaryIndexAutoScalingUpdate_IndexName_ToDafny(input.IndexName), Com_amazonaws_dynamodb_ReplicaGlobalSecondaryIndexAutoScalingUpdate_ProvisionedReadCapacityAutoScalingUpdate_ToDafny(input.ProvisionedReadCapacityAutoScalingUpdate)) + }() +} + +func Com_amazonaws_dynamodb_ReplicaGlobalSecondaryIndexAutoScalingUpdate_IndexName_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 Com_amazonaws_dynamodb_ReplicaGlobalSecondaryIndexAutoScalingUpdate_ProvisionedReadCapacityAutoScalingUpdate_ToDafny(input *types.AutoScalingSettingsUpdate) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(ComAmazonawsDynamodbTypes.Companion_AutoScalingSettingsUpdate_.Create_AutoScalingSettingsUpdate_(Com_amazonaws_dynamodb_AutoScalingSettingsUpdate_MinimumUnits_ToDafny(input.MinimumUnits), Com_amazonaws_dynamodb_AutoScalingSettingsUpdate_MaximumUnits_ToDafny(input.MaximumUnits), Com_amazonaws_dynamodb_AutoScalingSettingsUpdate_AutoScalingDisabled_ToDafny(input.AutoScalingDisabled), Com_amazonaws_dynamodb_AutoScalingSettingsUpdate_AutoScalingRoleArn_ToDafny(input.AutoScalingRoleArn), Com_amazonaws_dynamodb_AutoScalingSettingsUpdate_ScalingPolicyUpdate_ToDafny(input.ScalingPolicyUpdate))) + }() +} + +func Com_amazonaws_dynamodb_ReplicaAutoScalingUpdate_ReplicaProvisionedReadCapacityAutoScalingUpdate_ToDafny(input *types.AutoScalingSettingsUpdate) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(ComAmazonawsDynamodbTypes.Companion_AutoScalingSettingsUpdate_.Create_AutoScalingSettingsUpdate_(Com_amazonaws_dynamodb_AutoScalingSettingsUpdate_MinimumUnits_ToDafny(input.MinimumUnits), Com_amazonaws_dynamodb_AutoScalingSettingsUpdate_MaximumUnits_ToDafny(input.MaximumUnits), Com_amazonaws_dynamodb_AutoScalingSettingsUpdate_AutoScalingDisabled_ToDafny(input.AutoScalingDisabled), Com_amazonaws_dynamodb_AutoScalingSettingsUpdate_AutoScalingRoleArn_ToDafny(input.AutoScalingRoleArn), Com_amazonaws_dynamodb_AutoScalingSettingsUpdate_ScalingPolicyUpdate_ToDafny(input.ScalingPolicyUpdate))) + }() +} + +func Com_amazonaws_dynamodb_UpdateTableReplicaAutoScalingOutput_TableAutoScalingDescription_ToDafny(input *types.TableAutoScalingDescription) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(ComAmazonawsDynamodbTypes.Companion_TableAutoScalingDescription_.Create_TableAutoScalingDescription_(Com_amazonaws_dynamodb_TableAutoScalingDescription_TableName_ToDafny(input.TableName), Com_amazonaws_dynamodb_TableAutoScalingDescription_TableStatus_ToDafny(input.TableStatus), Com_amazonaws_dynamodb_TableAutoScalingDescription_Replicas_ToDafny(input.Replicas))) + }() +} + +func Com_amazonaws_dynamodb_UpdateTimeToLiveInput_TableName_ToDafny(input *string) dafny.Sequence { + return func() dafny.Sequence { + if input == nil { + return nil + } + return func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(*input)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }() + }() +} + +func Com_amazonaws_dynamodb_UpdateTimeToLiveInput_TimeToLiveSpecification_ToDafny(input *types.TimeToLiveSpecification) ComAmazonawsDynamodbTypes.TimeToLiveSpecification { + return func() ComAmazonawsDynamodbTypes.TimeToLiveSpecification { + if input == nil { + return ComAmazonawsDynamodbTypes.TimeToLiveSpecification{} + } + return ComAmazonawsDynamodbTypes.Companion_TimeToLiveSpecification_.Create_TimeToLiveSpecification_(Com_amazonaws_dynamodb_TimeToLiveSpecification_Enabled_ToDafny(input.Enabled), Com_amazonaws_dynamodb_TimeToLiveSpecification_AttributeName_ToDafny(input.AttributeName)) + }() +} + +func Com_amazonaws_dynamodb_TimeToLiveSpecification_Enabled_ToDafny(input *bool) bool { + return func() bool { + if input == nil { + return false + } + return *input + }() +} + +func Com_amazonaws_dynamodb_TimeToLiveSpecification_AttributeName_ToDafny(input *string) dafny.Sequence { + return func() dafny.Sequence { + if input == nil { + return nil + } + return func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(*input)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }() + }() +} + +func Com_amazonaws_dynamodb_UpdateTimeToLiveOutput_TimeToLiveSpecification_ToDafny(input *types.TimeToLiveSpecification) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(ComAmazonawsDynamodbTypes.Companion_TimeToLiveSpecification_.Create_TimeToLiveSpecification_(Com_amazonaws_dynamodb_TimeToLiveSpecification_Enabled_ToDafny(input.Enabled), Com_amazonaws_dynamodb_TimeToLiveSpecification_AttributeName_ToDafny(input.AttributeName))) + }() +} + +func Com_amazonaws_dynamodb_BackupInUseException_message_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 Com_amazonaws_dynamodb_BackupNotFoundException_message_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 Com_amazonaws_dynamodb_ConditionalCheckFailedException_message_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 Com_amazonaws_dynamodb_ConditionalCheckFailedException_Item_ToDafny(input map[string]types.AttributeValue) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + fieldValue := dafny.NewMapBuilder() + for key, val := range input { + fieldValue.Add(Com_amazonaws_dynamodb_AttributeMap_key_ToDafny(key), Com_amazonaws_dynamodb_AttributeMap_value_ToDafny(val)) + } + return Wrappers.Companion_Option_.Create_Some_(fieldValue.ToMap()) + }() +} + +func Com_amazonaws_dynamodb_ContinuousBackupsUnavailableException_message_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 Com_amazonaws_dynamodb_DuplicateItemException_message_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 Com_amazonaws_dynamodb_ExportConflictException_message_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 Com_amazonaws_dynamodb_ExportNotFoundException_message_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 Com_amazonaws_dynamodb_GlobalTableAlreadyExistsException_message_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 Com_amazonaws_dynamodb_GlobalTableNotFoundException_message_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 Com_amazonaws_dynamodb_IdempotentParameterMismatchException_Message_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 Com_amazonaws_dynamodb_ImportConflictException_message_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 Com_amazonaws_dynamodb_ImportNotFoundException_message_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 Com_amazonaws_dynamodb_IndexNotFoundException_message_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 Com_amazonaws_dynamodb_InternalServerError_message_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 Com_amazonaws_dynamodb_InvalidEndpointException_Message_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 Com_amazonaws_dynamodb_InvalidExportTimeException_message_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 Com_amazonaws_dynamodb_InvalidRestoreTimeException_message_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 Com_amazonaws_dynamodb_ItemCollectionSizeLimitExceededException_message_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 Com_amazonaws_dynamodb_LimitExceededException_message_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 Com_amazonaws_dynamodb_PointInTimeRecoveryUnavailableException_message_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 Com_amazonaws_dynamodb_PolicyNotFoundException_message_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 Com_amazonaws_dynamodb_ProvisionedThroughputExceededException_message_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 Com_amazonaws_dynamodb_ReplicaAlreadyExistsException_message_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 Com_amazonaws_dynamodb_ReplicaNotFoundException_message_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 Com_amazonaws_dynamodb_RequestLimitExceeded_message_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 Com_amazonaws_dynamodb_ResourceInUseException_message_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 Com_amazonaws_dynamodb_ResourceNotFoundException_message_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 Com_amazonaws_dynamodb_TableAlreadyExistsException_message_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 Com_amazonaws_dynamodb_TableInUseException_message_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 Com_amazonaws_dynamodb_TableNotFoundException_message_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 Com_amazonaws_dynamodb_TransactionCanceledException_Message_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 Com_amazonaws_dynamodb_TransactionCanceledException_CancellationReasons_ToDafny(input []types.CancellationReason) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + var fieldValue []interface{} = make([]interface{}, 0) + for _, val := range input { + element := Com_amazonaws_dynamodb_CancellationReasonList_member_ToDafny(val) + fieldValue = append(fieldValue, element) + } + return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(fieldValue...)) + }() +} + +func Com_amazonaws_dynamodb_CancellationReasonList_member_ToDafny(input types.CancellationReason) ComAmazonawsDynamodbTypes.CancellationReason { + return func() ComAmazonawsDynamodbTypes.CancellationReason { + + return ComAmazonawsDynamodbTypes.Companion_CancellationReason_.Create_CancellationReason_(Com_amazonaws_dynamodb_CancellationReason_Item_ToDafny(input.Item), Com_amazonaws_dynamodb_CancellationReason_Code_ToDafny(input.Code), Com_amazonaws_dynamodb_CancellationReason_Message_ToDafny(input.Message)) + }() +} + +func Com_amazonaws_dynamodb_CancellationReason_Item_ToDafny(input map[string]types.AttributeValue) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + fieldValue := dafny.NewMapBuilder() + for key, val := range input { + fieldValue.Add(Com_amazonaws_dynamodb_AttributeMap_key_ToDafny(key), Com_amazonaws_dynamodb_AttributeMap_value_ToDafny(val)) + } + return Wrappers.Companion_Option_.Create_Some_(fieldValue.ToMap()) + }() +} + +func Com_amazonaws_dynamodb_CancellationReason_Code_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 Com_amazonaws_dynamodb_CancellationReason_Message_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 Com_amazonaws_dynamodb_TransactionConflictException_message_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 Com_amazonaws_dynamodb_TransactionInProgressException_Message_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 + }()) + }() +} diff --git a/customer-preview/dynamodb/comamazonawsdynamodbsmithygenerated/to_native.go b/customer-preview/dynamodb/comamazonawsdynamodbsmithygenerated/to_native.go new file mode 100644 index 000000000..b1f03b3f3 --- /dev/null +++ b/customer-preview/dynamodb/comamazonawsdynamodbsmithygenerated/to_native.go @@ -0,0 +1,14454 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package comamazonawsdynamodbsmithygenerated + +import ( + "encoding/binary" + "math" + "time" + + "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/ComAmazonawsDynamodbTypes" + "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-sdk-go-v2/service/dynamodb" + "github.com/aws/aws-sdk-go-v2/service/dynamodb/types" + "github.com/aws/smithy-go" + "github.com/dafny-lang/DafnyRuntimeGo/v4/dafny" +) + +func BatchExecuteStatementInput_FromDafny(dafnyInput ComAmazonawsDynamodbTypes.BatchExecuteStatementInput) dynamodb.BatchExecuteStatementInput { + + return func() dynamodb.BatchExecuteStatementInput { + + return dynamodb.BatchExecuteStatementInput{ + Statements: Com_amazonaws_dynamodb_BatchExecuteStatementInput_Statements_FromDafny(dafnyInput.Dtor_Statements()), + ReturnConsumedCapacity: Com_amazonaws_dynamodb_BatchExecuteStatementInput_ReturnConsumedCapacity_FromDafny(dafnyInput.Dtor_ReturnConsumedCapacity().UnwrapOr(nil)), + } + }() + +} + +func BatchExecuteStatementOutput_FromDafny(dafnyOutput ComAmazonawsDynamodbTypes.BatchExecuteStatementOutput) dynamodb.BatchExecuteStatementOutput { + + return func() dynamodb.BatchExecuteStatementOutput { + + return dynamodb.BatchExecuteStatementOutput{ + Responses: Com_amazonaws_dynamodb_BatchExecuteStatementOutput_Responses_FromDafny(dafnyOutput.Dtor_Responses().UnwrapOr(nil)), + ConsumedCapacity: Com_amazonaws_dynamodb_BatchExecuteStatementOutput_ConsumedCapacity_FromDafny(dafnyOutput.Dtor_ConsumedCapacity().UnwrapOr(nil)), + } + }() + +} + +func BatchGetItemInput_FromDafny(dafnyInput ComAmazonawsDynamodbTypes.BatchGetItemInput) dynamodb.BatchGetItemInput { + + return func() dynamodb.BatchGetItemInput { + + return dynamodb.BatchGetItemInput{ + RequestItems: Com_amazonaws_dynamodb_BatchGetItemInput_RequestItems_FromDafny(dafnyInput.Dtor_RequestItems()), + ReturnConsumedCapacity: Com_amazonaws_dynamodb_BatchGetItemInput_ReturnConsumedCapacity_FromDafny(dafnyInput.Dtor_ReturnConsumedCapacity().UnwrapOr(nil)), + } + }() + +} + +func BatchGetItemOutput_FromDafny(dafnyOutput ComAmazonawsDynamodbTypes.BatchGetItemOutput) dynamodb.BatchGetItemOutput { + + return func() dynamodb.BatchGetItemOutput { + + return dynamodb.BatchGetItemOutput{ + Responses: Com_amazonaws_dynamodb_BatchGetItemOutput_Responses_FromDafny(dafnyOutput.Dtor_Responses().UnwrapOr(nil)), + UnprocessedKeys: Com_amazonaws_dynamodb_BatchGetItemOutput_UnprocessedKeys_FromDafny(dafnyOutput.Dtor_UnprocessedKeys().UnwrapOr(nil)), + ConsumedCapacity: Com_amazonaws_dynamodb_BatchGetItemOutput_ConsumedCapacity_FromDafny(dafnyOutput.Dtor_ConsumedCapacity().UnwrapOr(nil)), + } + }() + +} + +func BatchWriteItemInput_FromDafny(dafnyInput ComAmazonawsDynamodbTypes.BatchWriteItemInput) dynamodb.BatchWriteItemInput { + + return func() dynamodb.BatchWriteItemInput { + + return dynamodb.BatchWriteItemInput{ + RequestItems: Com_amazonaws_dynamodb_BatchWriteItemInput_RequestItems_FromDafny(dafnyInput.Dtor_RequestItems()), + ReturnConsumedCapacity: Com_amazonaws_dynamodb_BatchWriteItemInput_ReturnConsumedCapacity_FromDafny(dafnyInput.Dtor_ReturnConsumedCapacity().UnwrapOr(nil)), + ReturnItemCollectionMetrics: Com_amazonaws_dynamodb_BatchWriteItemInput_ReturnItemCollectionMetrics_FromDafny(dafnyInput.Dtor_ReturnItemCollectionMetrics().UnwrapOr(nil)), + } + }() + +} + +func BatchWriteItemOutput_FromDafny(dafnyOutput ComAmazonawsDynamodbTypes.BatchWriteItemOutput) dynamodb.BatchWriteItemOutput { + + return func() dynamodb.BatchWriteItemOutput { + + return dynamodb.BatchWriteItemOutput{ + UnprocessedItems: Com_amazonaws_dynamodb_BatchWriteItemOutput_UnprocessedItems_FromDafny(dafnyOutput.Dtor_UnprocessedItems().UnwrapOr(nil)), + ItemCollectionMetrics: Com_amazonaws_dynamodb_BatchWriteItemOutput_ItemCollectionMetrics_FromDafny(dafnyOutput.Dtor_ItemCollectionMetrics().UnwrapOr(nil)), + ConsumedCapacity: Com_amazonaws_dynamodb_BatchWriteItemOutput_ConsumedCapacity_FromDafny(dafnyOutput.Dtor_ConsumedCapacity().UnwrapOr(nil)), + } + }() + +} + +func CreateBackupInput_FromDafny(dafnyInput ComAmazonawsDynamodbTypes.CreateBackupInput) dynamodb.CreateBackupInput { + + return func() dynamodb.CreateBackupInput { + + return dynamodb.CreateBackupInput{ + TableName: Com_amazonaws_dynamodb_CreateBackupInput_TableName_FromDafny(dafnyInput.Dtor_TableName()), + BackupName: Com_amazonaws_dynamodb_CreateBackupInput_BackupName_FromDafny(dafnyInput.Dtor_BackupName()), + } + }() + +} + +func CreateBackupOutput_FromDafny(dafnyOutput ComAmazonawsDynamodbTypes.CreateBackupOutput) dynamodb.CreateBackupOutput { + + return func() dynamodb.CreateBackupOutput { + + return dynamodb.CreateBackupOutput{ + BackupDetails: Com_amazonaws_dynamodb_CreateBackupOutput_BackupDetails_FromDafny(dafnyOutput.Dtor_BackupDetails().UnwrapOr(nil)), + } + }() + +} + +func CreateGlobalTableInput_FromDafny(dafnyInput ComAmazonawsDynamodbTypes.CreateGlobalTableInput) dynamodb.CreateGlobalTableInput { + + return func() dynamodb.CreateGlobalTableInput { + + return dynamodb.CreateGlobalTableInput{ + GlobalTableName: Com_amazonaws_dynamodb_CreateGlobalTableInput_GlobalTableName_FromDafny(dafnyInput.Dtor_GlobalTableName()), + ReplicationGroup: Com_amazonaws_dynamodb_CreateGlobalTableInput_ReplicationGroup_FromDafny(dafnyInput.Dtor_ReplicationGroup()), + } + }() + +} + +func CreateGlobalTableOutput_FromDafny(dafnyOutput ComAmazonawsDynamodbTypes.CreateGlobalTableOutput) dynamodb.CreateGlobalTableOutput { + + return func() dynamodb.CreateGlobalTableOutput { + + return dynamodb.CreateGlobalTableOutput{ + GlobalTableDescription: Com_amazonaws_dynamodb_CreateGlobalTableOutput_GlobalTableDescription_FromDafny(dafnyOutput.Dtor_GlobalTableDescription().UnwrapOr(nil)), + } + }() + +} + +func CreateTableInput_FromDafny(dafnyInput ComAmazonawsDynamodbTypes.CreateTableInput) dynamodb.CreateTableInput { + + return func() dynamodb.CreateTableInput { + + return dynamodb.CreateTableInput{ + AttributeDefinitions: Com_amazonaws_dynamodb_CreateTableInput_AttributeDefinitions_FromDafny(dafnyInput.Dtor_AttributeDefinitions()), + TableName: Com_amazonaws_dynamodb_CreateTableInput_TableName_FromDafny(dafnyInput.Dtor_TableName()), + KeySchema: Com_amazonaws_dynamodb_CreateTableInput_KeySchema_FromDafny(dafnyInput.Dtor_KeySchema()), + LocalSecondaryIndexes: Com_amazonaws_dynamodb_CreateTableInput_LocalSecondaryIndexes_FromDafny(dafnyInput.Dtor_LocalSecondaryIndexes().UnwrapOr(nil)), + GlobalSecondaryIndexes: Com_amazonaws_dynamodb_CreateTableInput_GlobalSecondaryIndexes_FromDafny(dafnyInput.Dtor_GlobalSecondaryIndexes().UnwrapOr(nil)), + BillingMode: Com_amazonaws_dynamodb_CreateTableInput_BillingMode_FromDafny(dafnyInput.Dtor_BillingMode().UnwrapOr(nil)), + ProvisionedThroughput: Com_amazonaws_dynamodb_CreateTableInput_ProvisionedThroughput_FromDafny(dafnyInput.Dtor_ProvisionedThroughput().UnwrapOr(nil)), + StreamSpecification: Com_amazonaws_dynamodb_CreateTableInput_StreamSpecification_FromDafny(dafnyInput.Dtor_StreamSpecification().UnwrapOr(nil)), + SSESpecification: Com_amazonaws_dynamodb_CreateTableInput_SSESpecification_FromDafny(dafnyInput.Dtor_SSESpecification().UnwrapOr(nil)), + Tags: Com_amazonaws_dynamodb_CreateTableInput_Tags_FromDafny(dafnyInput.Dtor_Tags().UnwrapOr(nil)), + TableClass: Com_amazonaws_dynamodb_CreateTableInput_TableClass_FromDafny(dafnyInput.Dtor_TableClass().UnwrapOr(nil)), + DeletionProtectionEnabled: Com_amazonaws_dynamodb_CreateTableInput_DeletionProtectionEnabled_FromDafny(dafnyInput.Dtor_DeletionProtectionEnabled().UnwrapOr(nil)), + ResourcePolicy: Com_amazonaws_dynamodb_CreateTableInput_ResourcePolicy_FromDafny(dafnyInput.Dtor_ResourcePolicy().UnwrapOr(nil)), + OnDemandThroughput: Com_amazonaws_dynamodb_CreateTableInput_OnDemandThroughput_FromDafny(dafnyInput.Dtor_OnDemandThroughput().UnwrapOr(nil)), + } + }() + +} + +func CreateTableOutput_FromDafny(dafnyOutput ComAmazonawsDynamodbTypes.CreateTableOutput) dynamodb.CreateTableOutput { + + return func() dynamodb.CreateTableOutput { + + return dynamodb.CreateTableOutput{ + TableDescription: Com_amazonaws_dynamodb_CreateTableOutput_TableDescription_FromDafny(dafnyOutput.Dtor_TableDescription().UnwrapOr(nil)), + } + }() + +} + +func DeleteBackupInput_FromDafny(dafnyInput ComAmazonawsDynamodbTypes.DeleteBackupInput) dynamodb.DeleteBackupInput { + + return func() dynamodb.DeleteBackupInput { + + return dynamodb.DeleteBackupInput{ + BackupArn: Com_amazonaws_dynamodb_DeleteBackupInput_BackupArn_FromDafny(dafnyInput.Dtor_BackupArn()), + } + }() + +} + +func DeleteBackupOutput_FromDafny(dafnyOutput ComAmazonawsDynamodbTypes.DeleteBackupOutput) dynamodb.DeleteBackupOutput { + + return func() dynamodb.DeleteBackupOutput { + + return dynamodb.DeleteBackupOutput{ + BackupDescription: Com_amazonaws_dynamodb_DeleteBackupOutput_BackupDescription_FromDafny(dafnyOutput.Dtor_BackupDescription().UnwrapOr(nil)), + } + }() + +} + +func DeleteItemInput_FromDafny(dafnyInput ComAmazonawsDynamodbTypes.DeleteItemInput) dynamodb.DeleteItemInput { + + return func() dynamodb.DeleteItemInput { + + return dynamodb.DeleteItemInput{ + TableName: Com_amazonaws_dynamodb_DeleteItemInput_TableName_FromDafny(dafnyInput.Dtor_TableName()), + Key: Com_amazonaws_dynamodb_DeleteItemInput_Key_FromDafny(dafnyInput.Dtor_Key()), + Expected: Com_amazonaws_dynamodb_DeleteItemInput_Expected_FromDafny(dafnyInput.Dtor_Expected().UnwrapOr(nil)), + ConditionalOperator: Com_amazonaws_dynamodb_DeleteItemInput_ConditionalOperator_FromDafny(dafnyInput.Dtor_ConditionalOperator().UnwrapOr(nil)), + ReturnValues: Com_amazonaws_dynamodb_DeleteItemInput_ReturnValues_FromDafny(dafnyInput.Dtor_ReturnValues().UnwrapOr(nil)), + ReturnConsumedCapacity: Com_amazonaws_dynamodb_DeleteItemInput_ReturnConsumedCapacity_FromDafny(dafnyInput.Dtor_ReturnConsumedCapacity().UnwrapOr(nil)), + ReturnItemCollectionMetrics: Com_amazonaws_dynamodb_DeleteItemInput_ReturnItemCollectionMetrics_FromDafny(dafnyInput.Dtor_ReturnItemCollectionMetrics().UnwrapOr(nil)), + ConditionExpression: Com_amazonaws_dynamodb_DeleteItemInput_ConditionExpression_FromDafny(dafnyInput.Dtor_ConditionExpression().UnwrapOr(nil)), + ExpressionAttributeNames: Com_amazonaws_dynamodb_DeleteItemInput_ExpressionAttributeNames_FromDafny(dafnyInput.Dtor_ExpressionAttributeNames().UnwrapOr(nil)), + ExpressionAttributeValues: Com_amazonaws_dynamodb_DeleteItemInput_ExpressionAttributeValues_FromDafny(dafnyInput.Dtor_ExpressionAttributeValues().UnwrapOr(nil)), + ReturnValuesOnConditionCheckFailure: Com_amazonaws_dynamodb_DeleteItemInput_ReturnValuesOnConditionCheckFailure_FromDafny(dafnyInput.Dtor_ReturnValuesOnConditionCheckFailure().UnwrapOr(nil)), + } + }() + +} + +func DeleteItemOutput_FromDafny(dafnyOutput ComAmazonawsDynamodbTypes.DeleteItemOutput) dynamodb.DeleteItemOutput { + + return func() dynamodb.DeleteItemOutput { + + return dynamodb.DeleteItemOutput{ + Attributes: Com_amazonaws_dynamodb_DeleteItemOutput_Attributes_FromDafny(dafnyOutput.Dtor_Attributes().UnwrapOr(nil)), + ConsumedCapacity: Com_amazonaws_dynamodb_DeleteItemOutput_ConsumedCapacity_FromDafny(dafnyOutput.Dtor_ConsumedCapacity().UnwrapOr(nil)), + ItemCollectionMetrics: Com_amazonaws_dynamodb_DeleteItemOutput_ItemCollectionMetrics_FromDafny(dafnyOutput.Dtor_ItemCollectionMetrics().UnwrapOr(nil)), + } + }() + +} + +func DeleteResourcePolicyInput_FromDafny(dafnyInput ComAmazonawsDynamodbTypes.DeleteResourcePolicyInput) dynamodb.DeleteResourcePolicyInput { + + return func() dynamodb.DeleteResourcePolicyInput { + + return dynamodb.DeleteResourcePolicyInput{ + ResourceArn: Com_amazonaws_dynamodb_DeleteResourcePolicyInput_ResourceArn_FromDafny(dafnyInput.Dtor_ResourceArn()), + ExpectedRevisionId: Com_amazonaws_dynamodb_DeleteResourcePolicyInput_ExpectedRevisionId_FromDafny(dafnyInput.Dtor_ExpectedRevisionId().UnwrapOr(nil)), + } + }() + +} + +func DeleteResourcePolicyOutput_FromDafny(dafnyOutput ComAmazonawsDynamodbTypes.DeleteResourcePolicyOutput) dynamodb.DeleteResourcePolicyOutput { + + return func() dynamodb.DeleteResourcePolicyOutput { + + return dynamodb.DeleteResourcePolicyOutput{ + RevisionId: Com_amazonaws_dynamodb_DeleteResourcePolicyOutput_RevisionId_FromDafny(dafnyOutput.Dtor_RevisionId().UnwrapOr(nil)), + } + }() + +} + +func DeleteTableInput_FromDafny(dafnyInput ComAmazonawsDynamodbTypes.DeleteTableInput) dynamodb.DeleteTableInput { + + return func() dynamodb.DeleteTableInput { + + return dynamodb.DeleteTableInput{ + TableName: Com_amazonaws_dynamodb_DeleteTableInput_TableName_FromDafny(dafnyInput.Dtor_TableName()), + } + }() + +} + +func DeleteTableOutput_FromDafny(dafnyOutput ComAmazonawsDynamodbTypes.DeleteTableOutput) dynamodb.DeleteTableOutput { + + return func() dynamodb.DeleteTableOutput { + + return dynamodb.DeleteTableOutput{ + TableDescription: Com_amazonaws_dynamodb_DeleteTableOutput_TableDescription_FromDafny(dafnyOutput.Dtor_TableDescription().UnwrapOr(nil)), + } + }() + +} + +func DescribeBackupInput_FromDafny(dafnyInput ComAmazonawsDynamodbTypes.DescribeBackupInput) dynamodb.DescribeBackupInput { + + return func() dynamodb.DescribeBackupInput { + + return dynamodb.DescribeBackupInput{ + BackupArn: Com_amazonaws_dynamodb_DescribeBackupInput_BackupArn_FromDafny(dafnyInput.Dtor_BackupArn()), + } + }() + +} + +func DescribeBackupOutput_FromDafny(dafnyOutput ComAmazonawsDynamodbTypes.DescribeBackupOutput) dynamodb.DescribeBackupOutput { + + return func() dynamodb.DescribeBackupOutput { + + return dynamodb.DescribeBackupOutput{ + BackupDescription: Com_amazonaws_dynamodb_DescribeBackupOutput_BackupDescription_FromDafny(dafnyOutput.Dtor_BackupDescription().UnwrapOr(nil)), + } + }() + +} + +func DescribeContinuousBackupsInput_FromDafny(dafnyInput ComAmazonawsDynamodbTypes.DescribeContinuousBackupsInput) dynamodb.DescribeContinuousBackupsInput { + + return func() dynamodb.DescribeContinuousBackupsInput { + + return dynamodb.DescribeContinuousBackupsInput{ + TableName: Com_amazonaws_dynamodb_DescribeContinuousBackupsInput_TableName_FromDafny(dafnyInput.Dtor_TableName()), + } + }() + +} + +func DescribeContinuousBackupsOutput_FromDafny(dafnyOutput ComAmazonawsDynamodbTypes.DescribeContinuousBackupsOutput) dynamodb.DescribeContinuousBackupsOutput { + + return func() dynamodb.DescribeContinuousBackupsOutput { + + return dynamodb.DescribeContinuousBackupsOutput{ + ContinuousBackupsDescription: Com_amazonaws_dynamodb_DescribeContinuousBackupsOutput_ContinuousBackupsDescription_FromDafny(dafnyOutput.Dtor_ContinuousBackupsDescription().UnwrapOr(nil)), + } + }() + +} + +func DescribeContributorInsightsInput_FromDafny(dafnyInput ComAmazonawsDynamodbTypes.DescribeContributorInsightsInput) dynamodb.DescribeContributorInsightsInput { + + return func() dynamodb.DescribeContributorInsightsInput { + + return dynamodb.DescribeContributorInsightsInput{ + TableName: Com_amazonaws_dynamodb_DescribeContributorInsightsInput_TableName_FromDafny(dafnyInput.Dtor_TableName()), + IndexName: Com_amazonaws_dynamodb_DescribeContributorInsightsInput_IndexName_FromDafny(dafnyInput.Dtor_IndexName().UnwrapOr(nil)), + } + }() + +} + +func DescribeContributorInsightsOutput_FromDafny(dafnyOutput ComAmazonawsDynamodbTypes.DescribeContributorInsightsOutput) dynamodb.DescribeContributorInsightsOutput { + + return func() dynamodb.DescribeContributorInsightsOutput { + + return dynamodb.DescribeContributorInsightsOutput{ + TableName: Com_amazonaws_dynamodb_DescribeContributorInsightsOutput_TableName_FromDafny(dafnyOutput.Dtor_TableName().UnwrapOr(nil)), + IndexName: Com_amazonaws_dynamodb_DescribeContributorInsightsOutput_IndexName_FromDafny(dafnyOutput.Dtor_IndexName().UnwrapOr(nil)), + ContributorInsightsRuleList: Com_amazonaws_dynamodb_DescribeContributorInsightsOutput_ContributorInsightsRuleList_FromDafny(dafnyOutput.Dtor_ContributorInsightsRuleList().UnwrapOr(nil)), + ContributorInsightsStatus: Com_amazonaws_dynamodb_DescribeContributorInsightsOutput_ContributorInsightsStatus_FromDafny(dafnyOutput.Dtor_ContributorInsightsStatus().UnwrapOr(nil)), + LastUpdateDateTime: Com_amazonaws_dynamodb_DescribeContributorInsightsOutput_LastUpdateDateTime_FromDafny(dafnyOutput.Dtor_LastUpdateDateTime().UnwrapOr(nil)), + FailureException: Com_amazonaws_dynamodb_DescribeContributorInsightsOutput_FailureException_FromDafny(dafnyOutput.Dtor_FailureException().UnwrapOr(nil)), + } + }() + +} + +func DescribeEndpointsInput_FromDafny(dafnyInput ComAmazonawsDynamodbTypes.DescribeEndpointsRequest) dynamodb.DescribeEndpointsInput { + + return func() dynamodb.DescribeEndpointsInput { + + return dynamodb.DescribeEndpointsInput{} + }() + +} + +func DescribeEndpointsOutput_FromDafny(dafnyOutput ComAmazonawsDynamodbTypes.DescribeEndpointsResponse) dynamodb.DescribeEndpointsOutput { + + return func() dynamodb.DescribeEndpointsOutput { + + return dynamodb.DescribeEndpointsOutput{ + Endpoints: Com_amazonaws_dynamodb_DescribeEndpointsOutput_Endpoints_FromDafny(dafnyOutput.Dtor_Endpoints()), + } + }() + +} + +func DescribeExportInput_FromDafny(dafnyInput ComAmazonawsDynamodbTypes.DescribeExportInput) dynamodb.DescribeExportInput { + + return func() dynamodb.DescribeExportInput { + + return dynamodb.DescribeExportInput{ + ExportArn: Com_amazonaws_dynamodb_DescribeExportInput_ExportArn_FromDafny(dafnyInput.Dtor_ExportArn()), + } + }() + +} + +func DescribeExportOutput_FromDafny(dafnyOutput ComAmazonawsDynamodbTypes.DescribeExportOutput) dynamodb.DescribeExportOutput { + + return func() dynamodb.DescribeExportOutput { + + return dynamodb.DescribeExportOutput{ + ExportDescription: Com_amazonaws_dynamodb_DescribeExportOutput_ExportDescription_FromDafny(dafnyOutput.Dtor_ExportDescription().UnwrapOr(nil)), + } + }() + +} + +func DescribeGlobalTableInput_FromDafny(dafnyInput ComAmazonawsDynamodbTypes.DescribeGlobalTableInput) dynamodb.DescribeGlobalTableInput { + + return func() dynamodb.DescribeGlobalTableInput { + + return dynamodb.DescribeGlobalTableInput{ + GlobalTableName: Com_amazonaws_dynamodb_DescribeGlobalTableInput_GlobalTableName_FromDafny(dafnyInput.Dtor_GlobalTableName()), + } + }() + +} + +func DescribeGlobalTableOutput_FromDafny(dafnyOutput ComAmazonawsDynamodbTypes.DescribeGlobalTableOutput) dynamodb.DescribeGlobalTableOutput { + + return func() dynamodb.DescribeGlobalTableOutput { + + return dynamodb.DescribeGlobalTableOutput{ + GlobalTableDescription: Com_amazonaws_dynamodb_DescribeGlobalTableOutput_GlobalTableDescription_FromDafny(dafnyOutput.Dtor_GlobalTableDescription().UnwrapOr(nil)), + } + }() + +} + +func DescribeGlobalTableSettingsInput_FromDafny(dafnyInput ComAmazonawsDynamodbTypes.DescribeGlobalTableSettingsInput) dynamodb.DescribeGlobalTableSettingsInput { + + return func() dynamodb.DescribeGlobalTableSettingsInput { + + return dynamodb.DescribeGlobalTableSettingsInput{ + GlobalTableName: Com_amazonaws_dynamodb_DescribeGlobalTableSettingsInput_GlobalTableName_FromDafny(dafnyInput.Dtor_GlobalTableName()), + } + }() + +} + +func DescribeGlobalTableSettingsOutput_FromDafny(dafnyOutput ComAmazonawsDynamodbTypes.DescribeGlobalTableSettingsOutput) dynamodb.DescribeGlobalTableSettingsOutput { + + return func() dynamodb.DescribeGlobalTableSettingsOutput { + + return dynamodb.DescribeGlobalTableSettingsOutput{ + GlobalTableName: Com_amazonaws_dynamodb_DescribeGlobalTableSettingsOutput_GlobalTableName_FromDafny(dafnyOutput.Dtor_GlobalTableName().UnwrapOr(nil)), + ReplicaSettings: Com_amazonaws_dynamodb_DescribeGlobalTableSettingsOutput_ReplicaSettings_FromDafny(dafnyOutput.Dtor_ReplicaSettings().UnwrapOr(nil)), + } + }() + +} + +func DescribeImportInput_FromDafny(dafnyInput ComAmazonawsDynamodbTypes.DescribeImportInput) dynamodb.DescribeImportInput { + + return func() dynamodb.DescribeImportInput { + + return dynamodb.DescribeImportInput{ + ImportArn: Com_amazonaws_dynamodb_DescribeImportInput_ImportArn_FromDafny(dafnyInput.Dtor_ImportArn()), + } + }() + +} + +func DescribeImportOutput_FromDafny(dafnyOutput ComAmazonawsDynamodbTypes.DescribeImportOutput) dynamodb.DescribeImportOutput { + + return func() dynamodb.DescribeImportOutput { + + return dynamodb.DescribeImportOutput{ + ImportTableDescription: Com_amazonaws_dynamodb_DescribeImportOutput_ImportTableDescription_FromDafny(dafnyOutput.Dtor_ImportTableDescription()), + } + }() + +} + +func DescribeKinesisStreamingDestinationInput_FromDafny(dafnyInput ComAmazonawsDynamodbTypes.DescribeKinesisStreamingDestinationInput) dynamodb.DescribeKinesisStreamingDestinationInput { + + return func() dynamodb.DescribeKinesisStreamingDestinationInput { + + return dynamodb.DescribeKinesisStreamingDestinationInput{ + TableName: Com_amazonaws_dynamodb_DescribeKinesisStreamingDestinationInput_TableName_FromDafny(dafnyInput.Dtor_TableName()), + } + }() + +} + +func DescribeKinesisStreamingDestinationOutput_FromDafny(dafnyOutput ComAmazonawsDynamodbTypes.DescribeKinesisStreamingDestinationOutput) dynamodb.DescribeKinesisStreamingDestinationOutput { + + return func() dynamodb.DescribeKinesisStreamingDestinationOutput { + + return dynamodb.DescribeKinesisStreamingDestinationOutput{ + TableName: Com_amazonaws_dynamodb_DescribeKinesisStreamingDestinationOutput_TableName_FromDafny(dafnyOutput.Dtor_TableName().UnwrapOr(nil)), + KinesisDataStreamDestinations: Com_amazonaws_dynamodb_DescribeKinesisStreamingDestinationOutput_KinesisDataStreamDestinations_FromDafny(dafnyOutput.Dtor_KinesisDataStreamDestinations().UnwrapOr(nil)), + } + }() + +} + +func DescribeLimitsInput_FromDafny(dafnyInput ComAmazonawsDynamodbTypes.DescribeLimitsInput) dynamodb.DescribeLimitsInput { + + return func() dynamodb.DescribeLimitsInput { + + return dynamodb.DescribeLimitsInput{} + }() + +} + +func DescribeLimitsOutput_FromDafny(dafnyOutput ComAmazonawsDynamodbTypes.DescribeLimitsOutput) dynamodb.DescribeLimitsOutput { + + return func() dynamodb.DescribeLimitsOutput { + + return dynamodb.DescribeLimitsOutput{ + AccountMaxReadCapacityUnits: Com_amazonaws_dynamodb_DescribeLimitsOutput_AccountMaxReadCapacityUnits_FromDafny(dafnyOutput.Dtor_AccountMaxReadCapacityUnits().UnwrapOr(nil)), + AccountMaxWriteCapacityUnits: Com_amazonaws_dynamodb_DescribeLimitsOutput_AccountMaxWriteCapacityUnits_FromDafny(dafnyOutput.Dtor_AccountMaxWriteCapacityUnits().UnwrapOr(nil)), + TableMaxReadCapacityUnits: Com_amazonaws_dynamodb_DescribeLimitsOutput_TableMaxReadCapacityUnits_FromDafny(dafnyOutput.Dtor_TableMaxReadCapacityUnits().UnwrapOr(nil)), + TableMaxWriteCapacityUnits: Com_amazonaws_dynamodb_DescribeLimitsOutput_TableMaxWriteCapacityUnits_FromDafny(dafnyOutput.Dtor_TableMaxWriteCapacityUnits().UnwrapOr(nil)), + } + }() + +} + +func DescribeTableInput_FromDafny(dafnyInput ComAmazonawsDynamodbTypes.DescribeTableInput) dynamodb.DescribeTableInput { + + return func() dynamodb.DescribeTableInput { + + return dynamodb.DescribeTableInput{ + TableName: Com_amazonaws_dynamodb_DescribeTableInput_TableName_FromDafny(dafnyInput.Dtor_TableName()), + } + }() + +} + +func DescribeTableOutput_FromDafny(dafnyOutput ComAmazonawsDynamodbTypes.DescribeTableOutput) dynamodb.DescribeTableOutput { + + return func() dynamodb.DescribeTableOutput { + + return dynamodb.DescribeTableOutput{ + Table: Com_amazonaws_dynamodb_DescribeTableOutput_Table_FromDafny(dafnyOutput.Dtor_Table().UnwrapOr(nil)), + } + }() + +} + +func DescribeTableReplicaAutoScalingInput_FromDafny(dafnyInput ComAmazonawsDynamodbTypes.DescribeTableReplicaAutoScalingInput) dynamodb.DescribeTableReplicaAutoScalingInput { + + return func() dynamodb.DescribeTableReplicaAutoScalingInput { + + return dynamodb.DescribeTableReplicaAutoScalingInput{ + TableName: Com_amazonaws_dynamodb_DescribeTableReplicaAutoScalingInput_TableName_FromDafny(dafnyInput.Dtor_TableName()), + } + }() + +} + +func DescribeTableReplicaAutoScalingOutput_FromDafny(dafnyOutput ComAmazonawsDynamodbTypes.DescribeTableReplicaAutoScalingOutput) dynamodb.DescribeTableReplicaAutoScalingOutput { + + return func() dynamodb.DescribeTableReplicaAutoScalingOutput { + + return dynamodb.DescribeTableReplicaAutoScalingOutput{ + TableAutoScalingDescription: Com_amazonaws_dynamodb_DescribeTableReplicaAutoScalingOutput_TableAutoScalingDescription_FromDafny(dafnyOutput.Dtor_TableAutoScalingDescription().UnwrapOr(nil)), + } + }() + +} + +func DescribeTimeToLiveInput_FromDafny(dafnyInput ComAmazonawsDynamodbTypes.DescribeTimeToLiveInput) dynamodb.DescribeTimeToLiveInput { + + return func() dynamodb.DescribeTimeToLiveInput { + + return dynamodb.DescribeTimeToLiveInput{ + TableName: Com_amazonaws_dynamodb_DescribeTimeToLiveInput_TableName_FromDafny(dafnyInput.Dtor_TableName()), + } + }() + +} + +func DescribeTimeToLiveOutput_FromDafny(dafnyOutput ComAmazonawsDynamodbTypes.DescribeTimeToLiveOutput) dynamodb.DescribeTimeToLiveOutput { + + return func() dynamodb.DescribeTimeToLiveOutput { + + return dynamodb.DescribeTimeToLiveOutput{ + TimeToLiveDescription: Com_amazonaws_dynamodb_DescribeTimeToLiveOutput_TimeToLiveDescription_FromDafny(dafnyOutput.Dtor_TimeToLiveDescription().UnwrapOr(nil)), + } + }() + +} + +func DisableKinesisStreamingDestinationInput_FromDafny(dafnyInput ComAmazonawsDynamodbTypes.DisableKinesisStreamingDestinationInput) dynamodb.DisableKinesisStreamingDestinationInput { + + return func() dynamodb.DisableKinesisStreamingDestinationInput { + + return dynamodb.DisableKinesisStreamingDestinationInput{ + TableName: Com_amazonaws_dynamodb_DisableKinesisStreamingDestinationInput_TableName_FromDafny(dafnyInput.Dtor_TableName()), + StreamArn: Com_amazonaws_dynamodb_DisableKinesisStreamingDestinationInput_StreamArn_FromDafny(dafnyInput.Dtor_StreamArn()), + EnableKinesisStreamingConfiguration: Com_amazonaws_dynamodb_DisableKinesisStreamingDestinationInput_EnableKinesisStreamingConfiguration_FromDafny(dafnyInput.Dtor_EnableKinesisStreamingConfiguration().UnwrapOr(nil)), + } + }() + +} + +func DisableKinesisStreamingDestinationOutput_FromDafny(dafnyOutput ComAmazonawsDynamodbTypes.DisableKinesisStreamingDestinationOutput) dynamodb.DisableKinesisStreamingDestinationOutput { + + return func() dynamodb.DisableKinesisStreamingDestinationOutput { + + return dynamodb.DisableKinesisStreamingDestinationOutput{ + TableName: Com_amazonaws_dynamodb_DisableKinesisStreamingDestinationOutput_TableName_FromDafny(dafnyOutput.Dtor_TableName().UnwrapOr(nil)), + StreamArn: Com_amazonaws_dynamodb_DisableKinesisStreamingDestinationOutput_StreamArn_FromDafny(dafnyOutput.Dtor_StreamArn().UnwrapOr(nil)), + DestinationStatus: Com_amazonaws_dynamodb_DisableKinesisStreamingDestinationOutput_DestinationStatus_FromDafny(dafnyOutput.Dtor_DestinationStatus().UnwrapOr(nil)), + EnableKinesisStreamingConfiguration: Com_amazonaws_dynamodb_DisableKinesisStreamingDestinationOutput_EnableKinesisStreamingConfiguration_FromDafny(dafnyOutput.Dtor_EnableKinesisStreamingConfiguration().UnwrapOr(nil)), + } + }() + +} + +func EnableKinesisStreamingDestinationInput_FromDafny(dafnyInput ComAmazonawsDynamodbTypes.EnableKinesisStreamingDestinationInput) dynamodb.EnableKinesisStreamingDestinationInput { + + return func() dynamodb.EnableKinesisStreamingDestinationInput { + + return dynamodb.EnableKinesisStreamingDestinationInput{ + TableName: Com_amazonaws_dynamodb_EnableKinesisStreamingDestinationInput_TableName_FromDafny(dafnyInput.Dtor_TableName()), + StreamArn: Com_amazonaws_dynamodb_EnableKinesisStreamingDestinationInput_StreamArn_FromDafny(dafnyInput.Dtor_StreamArn()), + EnableKinesisStreamingConfiguration: Com_amazonaws_dynamodb_EnableKinesisStreamingDestinationInput_EnableKinesisStreamingConfiguration_FromDafny(dafnyInput.Dtor_EnableKinesisStreamingConfiguration().UnwrapOr(nil)), + } + }() + +} + +func EnableKinesisStreamingDestinationOutput_FromDafny(dafnyOutput ComAmazonawsDynamodbTypes.EnableKinesisStreamingDestinationOutput) dynamodb.EnableKinesisStreamingDestinationOutput { + + return func() dynamodb.EnableKinesisStreamingDestinationOutput { + + return dynamodb.EnableKinesisStreamingDestinationOutput{ + TableName: Com_amazonaws_dynamodb_EnableKinesisStreamingDestinationOutput_TableName_FromDafny(dafnyOutput.Dtor_TableName().UnwrapOr(nil)), + StreamArn: Com_amazonaws_dynamodb_EnableKinesisStreamingDestinationOutput_StreamArn_FromDafny(dafnyOutput.Dtor_StreamArn().UnwrapOr(nil)), + DestinationStatus: Com_amazonaws_dynamodb_EnableKinesisStreamingDestinationOutput_DestinationStatus_FromDafny(dafnyOutput.Dtor_DestinationStatus().UnwrapOr(nil)), + EnableKinesisStreamingConfiguration: Com_amazonaws_dynamodb_EnableKinesisStreamingDestinationOutput_EnableKinesisStreamingConfiguration_FromDafny(dafnyOutput.Dtor_EnableKinesisStreamingConfiguration().UnwrapOr(nil)), + } + }() + +} + +func ExecuteStatementInput_FromDafny(dafnyInput ComAmazonawsDynamodbTypes.ExecuteStatementInput) dynamodb.ExecuteStatementInput { + + return func() dynamodb.ExecuteStatementInput { + + return dynamodb.ExecuteStatementInput{ + Statement: Com_amazonaws_dynamodb_ExecuteStatementInput_Statement_FromDafny(dafnyInput.Dtor_Statement()), + Parameters: Com_amazonaws_dynamodb_ExecuteStatementInput_Parameters_FromDafny(dafnyInput.Dtor_Parameters().UnwrapOr(nil)), + ConsistentRead: Com_amazonaws_dynamodb_ExecuteStatementInput_ConsistentRead_FromDafny(dafnyInput.Dtor_ConsistentRead().UnwrapOr(nil)), + NextToken: Com_amazonaws_dynamodb_ExecuteStatementInput_NextToken_FromDafny(dafnyInput.Dtor_NextToken().UnwrapOr(nil)), + ReturnConsumedCapacity: Com_amazonaws_dynamodb_ExecuteStatementInput_ReturnConsumedCapacity_FromDafny(dafnyInput.Dtor_ReturnConsumedCapacity().UnwrapOr(nil)), + Limit: Com_amazonaws_dynamodb_ExecuteStatementInput_Limit_FromDafny(dafnyInput.Dtor_Limit().UnwrapOr(nil)), + ReturnValuesOnConditionCheckFailure: Com_amazonaws_dynamodb_ExecuteStatementInput_ReturnValuesOnConditionCheckFailure_FromDafny(dafnyInput.Dtor_ReturnValuesOnConditionCheckFailure().UnwrapOr(nil)), + } + }() + +} + +func ExecuteStatementOutput_FromDafny(dafnyOutput ComAmazonawsDynamodbTypes.ExecuteStatementOutput) dynamodb.ExecuteStatementOutput { + + return func() dynamodb.ExecuteStatementOutput { + + return dynamodb.ExecuteStatementOutput{ + Items: Com_amazonaws_dynamodb_ExecuteStatementOutput_Items_FromDafny(dafnyOutput.Dtor_Items().UnwrapOr(nil)), + NextToken: Com_amazonaws_dynamodb_ExecuteStatementOutput_NextToken_FromDafny(dafnyOutput.Dtor_NextToken().UnwrapOr(nil)), + ConsumedCapacity: Com_amazonaws_dynamodb_ExecuteStatementOutput_ConsumedCapacity_FromDafny(dafnyOutput.Dtor_ConsumedCapacity().UnwrapOr(nil)), + LastEvaluatedKey: Com_amazonaws_dynamodb_ExecuteStatementOutput_LastEvaluatedKey_FromDafny(dafnyOutput.Dtor_LastEvaluatedKey().UnwrapOr(nil)), + } + }() + +} + +func ExecuteTransactionInput_FromDafny(dafnyInput ComAmazonawsDynamodbTypes.ExecuteTransactionInput) dynamodb.ExecuteTransactionInput { + + return func() dynamodb.ExecuteTransactionInput { + + return dynamodb.ExecuteTransactionInput{ + TransactStatements: Com_amazonaws_dynamodb_ExecuteTransactionInput_TransactStatements_FromDafny(dafnyInput.Dtor_TransactStatements()), + ClientRequestToken: Com_amazonaws_dynamodb_ExecuteTransactionInput_ClientRequestToken_FromDafny(dafnyInput.Dtor_ClientRequestToken().UnwrapOr(nil)), + ReturnConsumedCapacity: Com_amazonaws_dynamodb_ExecuteTransactionInput_ReturnConsumedCapacity_FromDafny(dafnyInput.Dtor_ReturnConsumedCapacity().UnwrapOr(nil)), + } + }() + +} + +func ExecuteTransactionOutput_FromDafny(dafnyOutput ComAmazonawsDynamodbTypes.ExecuteTransactionOutput) dynamodb.ExecuteTransactionOutput { + + return func() dynamodb.ExecuteTransactionOutput { + + return dynamodb.ExecuteTransactionOutput{ + Responses: Com_amazonaws_dynamodb_ExecuteTransactionOutput_Responses_FromDafny(dafnyOutput.Dtor_Responses().UnwrapOr(nil)), + ConsumedCapacity: Com_amazonaws_dynamodb_ExecuteTransactionOutput_ConsumedCapacity_FromDafny(dafnyOutput.Dtor_ConsumedCapacity().UnwrapOr(nil)), + } + }() + +} + +func ExportTableToPointInTimeInput_FromDafny(dafnyInput ComAmazonawsDynamodbTypes.ExportTableToPointInTimeInput) dynamodb.ExportTableToPointInTimeInput { + + return func() dynamodb.ExportTableToPointInTimeInput { + + return dynamodb.ExportTableToPointInTimeInput{ + TableArn: Com_amazonaws_dynamodb_ExportTableToPointInTimeInput_TableArn_FromDafny(dafnyInput.Dtor_TableArn()), + ExportTime: Com_amazonaws_dynamodb_ExportTableToPointInTimeInput_ExportTime_FromDafny(dafnyInput.Dtor_ExportTime().UnwrapOr(nil)), + ClientToken: Com_amazonaws_dynamodb_ExportTableToPointInTimeInput_ClientToken_FromDafny(dafnyInput.Dtor_ClientToken().UnwrapOr(nil)), + S3Bucket: Com_amazonaws_dynamodb_ExportTableToPointInTimeInput_S3Bucket_FromDafny(dafnyInput.Dtor_S3Bucket()), + S3BucketOwner: Com_amazonaws_dynamodb_ExportTableToPointInTimeInput_S3BucketOwner_FromDafny(dafnyInput.Dtor_S3BucketOwner().UnwrapOr(nil)), + S3Prefix: Com_amazonaws_dynamodb_ExportTableToPointInTimeInput_S3Prefix_FromDafny(dafnyInput.Dtor_S3Prefix().UnwrapOr(nil)), + S3SseAlgorithm: Com_amazonaws_dynamodb_ExportTableToPointInTimeInput_S3SseAlgorithm_FromDafny(dafnyInput.Dtor_S3SseAlgorithm().UnwrapOr(nil)), + S3SseKmsKeyId: Com_amazonaws_dynamodb_ExportTableToPointInTimeInput_S3SseKmsKeyId_FromDafny(dafnyInput.Dtor_S3SseKmsKeyId().UnwrapOr(nil)), + ExportFormat: Com_amazonaws_dynamodb_ExportTableToPointInTimeInput_ExportFormat_FromDafny(dafnyInput.Dtor_ExportFormat().UnwrapOr(nil)), + ExportType: Com_amazonaws_dynamodb_ExportTableToPointInTimeInput_ExportType_FromDafny(dafnyInput.Dtor_ExportType().UnwrapOr(nil)), + IncrementalExportSpecification: Com_amazonaws_dynamodb_ExportTableToPointInTimeInput_IncrementalExportSpecification_FromDafny(dafnyInput.Dtor_IncrementalExportSpecification().UnwrapOr(nil)), + } + }() + +} + +func ExportTableToPointInTimeOutput_FromDafny(dafnyOutput ComAmazonawsDynamodbTypes.ExportTableToPointInTimeOutput) dynamodb.ExportTableToPointInTimeOutput { + + return func() dynamodb.ExportTableToPointInTimeOutput { + + return dynamodb.ExportTableToPointInTimeOutput{ + ExportDescription: Com_amazonaws_dynamodb_ExportTableToPointInTimeOutput_ExportDescription_FromDafny(dafnyOutput.Dtor_ExportDescription().UnwrapOr(nil)), + } + }() + +} + +func GetItemInput_FromDafny(dafnyInput ComAmazonawsDynamodbTypes.GetItemInput) dynamodb.GetItemInput { + + return func() dynamodb.GetItemInput { + + return dynamodb.GetItemInput{ + TableName: Com_amazonaws_dynamodb_GetItemInput_TableName_FromDafny(dafnyInput.Dtor_TableName()), + Key: Com_amazonaws_dynamodb_GetItemInput_Key_FromDafny(dafnyInput.Dtor_Key()), + AttributesToGet: Com_amazonaws_dynamodb_GetItemInput_AttributesToGet_FromDafny(dafnyInput.Dtor_AttributesToGet().UnwrapOr(nil)), + ConsistentRead: Com_amazonaws_dynamodb_GetItemInput_ConsistentRead_FromDafny(dafnyInput.Dtor_ConsistentRead().UnwrapOr(nil)), + ReturnConsumedCapacity: Com_amazonaws_dynamodb_GetItemInput_ReturnConsumedCapacity_FromDafny(dafnyInput.Dtor_ReturnConsumedCapacity().UnwrapOr(nil)), + ProjectionExpression: Com_amazonaws_dynamodb_GetItemInput_ProjectionExpression_FromDafny(dafnyInput.Dtor_ProjectionExpression().UnwrapOr(nil)), + ExpressionAttributeNames: Com_amazonaws_dynamodb_GetItemInput_ExpressionAttributeNames_FromDafny(dafnyInput.Dtor_ExpressionAttributeNames().UnwrapOr(nil)), + } + }() + +} + +func GetItemOutput_FromDafny(dafnyOutput ComAmazonawsDynamodbTypes.GetItemOutput) dynamodb.GetItemOutput { + + return func() dynamodb.GetItemOutput { + + return dynamodb.GetItemOutput{ + Item: Com_amazonaws_dynamodb_GetItemOutput_Item_FromDafny(dafnyOutput.Dtor_Item().UnwrapOr(nil)), + ConsumedCapacity: Com_amazonaws_dynamodb_GetItemOutput_ConsumedCapacity_FromDafny(dafnyOutput.Dtor_ConsumedCapacity().UnwrapOr(nil)), + } + }() + +} + +func GetResourcePolicyInput_FromDafny(dafnyInput ComAmazonawsDynamodbTypes.GetResourcePolicyInput) dynamodb.GetResourcePolicyInput { + + return func() dynamodb.GetResourcePolicyInput { + + return dynamodb.GetResourcePolicyInput{ + ResourceArn: Com_amazonaws_dynamodb_GetResourcePolicyInput_ResourceArn_FromDafny(dafnyInput.Dtor_ResourceArn()), + } + }() + +} + +func GetResourcePolicyOutput_FromDafny(dafnyOutput ComAmazonawsDynamodbTypes.GetResourcePolicyOutput) dynamodb.GetResourcePolicyOutput { + + return func() dynamodb.GetResourcePolicyOutput { + + return dynamodb.GetResourcePolicyOutput{ + Policy: Com_amazonaws_dynamodb_GetResourcePolicyOutput_Policy_FromDafny(dafnyOutput.Dtor_Policy().UnwrapOr(nil)), + RevisionId: Com_amazonaws_dynamodb_GetResourcePolicyOutput_RevisionId_FromDafny(dafnyOutput.Dtor_RevisionId().UnwrapOr(nil)), + } + }() + +} + +func ImportTableInput_FromDafny(dafnyInput ComAmazonawsDynamodbTypes.ImportTableInput) dynamodb.ImportTableInput { + + return func() dynamodb.ImportTableInput { + + return dynamodb.ImportTableInput{ + ClientToken: Com_amazonaws_dynamodb_ImportTableInput_ClientToken_FromDafny(dafnyInput.Dtor_ClientToken().UnwrapOr(nil)), + S3BucketSource: Com_amazonaws_dynamodb_ImportTableInput_S3BucketSource_FromDafny(dafnyInput.Dtor_S3BucketSource()), + InputFormat: Com_amazonaws_dynamodb_ImportTableInput_InputFormat_FromDafny(dafnyInput.Dtor_InputFormat()), + InputFormatOptions: Com_amazonaws_dynamodb_ImportTableInput_InputFormatOptions_FromDafny(dafnyInput.Dtor_InputFormatOptions().UnwrapOr(nil)), + InputCompressionType: Com_amazonaws_dynamodb_ImportTableInput_InputCompressionType_FromDafny(dafnyInput.Dtor_InputCompressionType().UnwrapOr(nil)), + TableCreationParameters: Com_amazonaws_dynamodb_ImportTableInput_TableCreationParameters_FromDafny(dafnyInput.Dtor_TableCreationParameters()), + } + }() + +} + +func ImportTableOutput_FromDafny(dafnyOutput ComAmazonawsDynamodbTypes.ImportTableOutput) dynamodb.ImportTableOutput { + + return func() dynamodb.ImportTableOutput { + + return dynamodb.ImportTableOutput{ + ImportTableDescription: Com_amazonaws_dynamodb_ImportTableOutput_ImportTableDescription_FromDafny(dafnyOutput.Dtor_ImportTableDescription()), + } + }() + +} + +func ListBackupsInput_FromDafny(dafnyInput ComAmazonawsDynamodbTypes.ListBackupsInput) dynamodb.ListBackupsInput { + + return func() dynamodb.ListBackupsInput { + + return dynamodb.ListBackupsInput{ + TableName: Com_amazonaws_dynamodb_ListBackupsInput_TableName_FromDafny(dafnyInput.Dtor_TableName().UnwrapOr(nil)), + Limit: Com_amazonaws_dynamodb_ListBackupsInput_Limit_FromDafny(dafnyInput.Dtor_Limit().UnwrapOr(nil)), + TimeRangeLowerBound: Com_amazonaws_dynamodb_ListBackupsInput_TimeRangeLowerBound_FromDafny(dafnyInput.Dtor_TimeRangeLowerBound().UnwrapOr(nil)), + TimeRangeUpperBound: Com_amazonaws_dynamodb_ListBackupsInput_TimeRangeUpperBound_FromDafny(dafnyInput.Dtor_TimeRangeUpperBound().UnwrapOr(nil)), + ExclusiveStartBackupArn: Com_amazonaws_dynamodb_ListBackupsInput_ExclusiveStartBackupArn_FromDafny(dafnyInput.Dtor_ExclusiveStartBackupArn().UnwrapOr(nil)), + BackupType: Com_amazonaws_dynamodb_ListBackupsInput_BackupType_FromDafny(dafnyInput.Dtor_BackupType().UnwrapOr(nil)), + } + }() + +} + +func ListBackupsOutput_FromDafny(dafnyOutput ComAmazonawsDynamodbTypes.ListBackupsOutput) dynamodb.ListBackupsOutput { + + return func() dynamodb.ListBackupsOutput { + + return dynamodb.ListBackupsOutput{ + BackupSummaries: Com_amazonaws_dynamodb_ListBackupsOutput_BackupSummaries_FromDafny(dafnyOutput.Dtor_BackupSummaries().UnwrapOr(nil)), + LastEvaluatedBackupArn: Com_amazonaws_dynamodb_ListBackupsOutput_LastEvaluatedBackupArn_FromDafny(dafnyOutput.Dtor_LastEvaluatedBackupArn().UnwrapOr(nil)), + } + }() + +} + +func ListContributorInsightsInput_FromDafny(dafnyInput ComAmazonawsDynamodbTypes.ListContributorInsightsInput) dynamodb.ListContributorInsightsInput { + + return func() dynamodb.ListContributorInsightsInput { + + return dynamodb.ListContributorInsightsInput{ + TableName: Com_amazonaws_dynamodb_ListContributorInsightsInput_TableName_FromDafny(dafnyInput.Dtor_TableName().UnwrapOr(nil)), + NextToken: Com_amazonaws_dynamodb_ListContributorInsightsInput_NextToken_FromDafny(dafnyInput.Dtor_NextToken().UnwrapOr(nil)), + MaxResults: Com_amazonaws_dynamodb_ListContributorInsightsInput_MaxResults_FromDafny(dafnyInput.Dtor_MaxResults().UnwrapOr(nil)), + } + }() + +} + +func ListContributorInsightsOutput_FromDafny(dafnyOutput ComAmazonawsDynamodbTypes.ListContributorInsightsOutput) dynamodb.ListContributorInsightsOutput { + + return func() dynamodb.ListContributorInsightsOutput { + + return dynamodb.ListContributorInsightsOutput{ + ContributorInsightsSummaries: Com_amazonaws_dynamodb_ListContributorInsightsOutput_ContributorInsightsSummaries_FromDafny(dafnyOutput.Dtor_ContributorInsightsSummaries().UnwrapOr(nil)), + NextToken: Com_amazonaws_dynamodb_ListContributorInsightsOutput_NextToken_FromDafny(dafnyOutput.Dtor_NextToken().UnwrapOr(nil)), + } + }() + +} + +func ListExportsInput_FromDafny(dafnyInput ComAmazonawsDynamodbTypes.ListExportsInput) dynamodb.ListExportsInput { + + return func() dynamodb.ListExportsInput { + + return dynamodb.ListExportsInput{ + TableArn: Com_amazonaws_dynamodb_ListExportsInput_TableArn_FromDafny(dafnyInput.Dtor_TableArn().UnwrapOr(nil)), + MaxResults: Com_amazonaws_dynamodb_ListExportsInput_MaxResults_FromDafny(dafnyInput.Dtor_MaxResults().UnwrapOr(nil)), + NextToken: Com_amazonaws_dynamodb_ListExportsInput_NextToken_FromDafny(dafnyInput.Dtor_NextToken().UnwrapOr(nil)), + } + }() + +} + +func ListExportsOutput_FromDafny(dafnyOutput ComAmazonawsDynamodbTypes.ListExportsOutput) dynamodb.ListExportsOutput { + + return func() dynamodb.ListExportsOutput { + + return dynamodb.ListExportsOutput{ + ExportSummaries: Com_amazonaws_dynamodb_ListExportsOutput_ExportSummaries_FromDafny(dafnyOutput.Dtor_ExportSummaries().UnwrapOr(nil)), + NextToken: Com_amazonaws_dynamodb_ListExportsOutput_NextToken_FromDafny(dafnyOutput.Dtor_NextToken().UnwrapOr(nil)), + } + }() + +} + +func ListGlobalTablesInput_FromDafny(dafnyInput ComAmazonawsDynamodbTypes.ListGlobalTablesInput) dynamodb.ListGlobalTablesInput { + + return func() dynamodb.ListGlobalTablesInput { + + return dynamodb.ListGlobalTablesInput{ + ExclusiveStartGlobalTableName: Com_amazonaws_dynamodb_ListGlobalTablesInput_ExclusiveStartGlobalTableName_FromDafny(dafnyInput.Dtor_ExclusiveStartGlobalTableName().UnwrapOr(nil)), + Limit: Com_amazonaws_dynamodb_ListGlobalTablesInput_Limit_FromDafny(dafnyInput.Dtor_Limit().UnwrapOr(nil)), + RegionName: Com_amazonaws_dynamodb_ListGlobalTablesInput_RegionName_FromDafny(dafnyInput.Dtor_RegionName().UnwrapOr(nil)), + } + }() + +} + +func ListGlobalTablesOutput_FromDafny(dafnyOutput ComAmazonawsDynamodbTypes.ListGlobalTablesOutput) dynamodb.ListGlobalTablesOutput { + + return func() dynamodb.ListGlobalTablesOutput { + + return dynamodb.ListGlobalTablesOutput{ + GlobalTables: Com_amazonaws_dynamodb_ListGlobalTablesOutput_GlobalTables_FromDafny(dafnyOutput.Dtor_GlobalTables().UnwrapOr(nil)), + LastEvaluatedGlobalTableName: Com_amazonaws_dynamodb_ListGlobalTablesOutput_LastEvaluatedGlobalTableName_FromDafny(dafnyOutput.Dtor_LastEvaluatedGlobalTableName().UnwrapOr(nil)), + } + }() + +} + +func ListImportsInput_FromDafny(dafnyInput ComAmazonawsDynamodbTypes.ListImportsInput) dynamodb.ListImportsInput { + + return func() dynamodb.ListImportsInput { + + return dynamodb.ListImportsInput{ + TableArn: Com_amazonaws_dynamodb_ListImportsInput_TableArn_FromDafny(dafnyInput.Dtor_TableArn().UnwrapOr(nil)), + PageSize: Com_amazonaws_dynamodb_ListImportsInput_PageSize_FromDafny(dafnyInput.Dtor_PageSize().UnwrapOr(nil)), + NextToken: Com_amazonaws_dynamodb_ListImportsInput_NextToken_FromDafny(dafnyInput.Dtor_NextToken().UnwrapOr(nil)), + } + }() + +} + +func ListImportsOutput_FromDafny(dafnyOutput ComAmazonawsDynamodbTypes.ListImportsOutput) dynamodb.ListImportsOutput { + + return func() dynamodb.ListImportsOutput { + + return dynamodb.ListImportsOutput{ + ImportSummaryList: Com_amazonaws_dynamodb_ListImportsOutput_ImportSummaryList_FromDafny(dafnyOutput.Dtor_ImportSummaryList().UnwrapOr(nil)), + NextToken: Com_amazonaws_dynamodb_ListImportsOutput_NextToken_FromDafny(dafnyOutput.Dtor_NextToken().UnwrapOr(nil)), + } + }() + +} + +func ListTablesInput_FromDafny(dafnyInput ComAmazonawsDynamodbTypes.ListTablesInput) dynamodb.ListTablesInput { + + return func() dynamodb.ListTablesInput { + + return dynamodb.ListTablesInput{ + ExclusiveStartTableName: Com_amazonaws_dynamodb_ListTablesInput_ExclusiveStartTableName_FromDafny(dafnyInput.Dtor_ExclusiveStartTableName().UnwrapOr(nil)), + Limit: Com_amazonaws_dynamodb_ListTablesInput_Limit_FromDafny(dafnyInput.Dtor_Limit().UnwrapOr(nil)), + } + }() + +} + +func ListTablesOutput_FromDafny(dafnyOutput ComAmazonawsDynamodbTypes.ListTablesOutput) dynamodb.ListTablesOutput { + + return func() dynamodb.ListTablesOutput { + + return dynamodb.ListTablesOutput{ + TableNames: Com_amazonaws_dynamodb_ListTablesOutput_TableNames_FromDafny(dafnyOutput.Dtor_TableNames().UnwrapOr(nil)), + LastEvaluatedTableName: Com_amazonaws_dynamodb_ListTablesOutput_LastEvaluatedTableName_FromDafny(dafnyOutput.Dtor_LastEvaluatedTableName().UnwrapOr(nil)), + } + }() + +} + +func ListTagsOfResourceInput_FromDafny(dafnyInput ComAmazonawsDynamodbTypes.ListTagsOfResourceInput) dynamodb.ListTagsOfResourceInput { + + return func() dynamodb.ListTagsOfResourceInput { + + return dynamodb.ListTagsOfResourceInput{ + ResourceArn: Com_amazonaws_dynamodb_ListTagsOfResourceInput_ResourceArn_FromDafny(dafnyInput.Dtor_ResourceArn()), + NextToken: Com_amazonaws_dynamodb_ListTagsOfResourceInput_NextToken_FromDafny(dafnyInput.Dtor_NextToken().UnwrapOr(nil)), + } + }() + +} + +func ListTagsOfResourceOutput_FromDafny(dafnyOutput ComAmazonawsDynamodbTypes.ListTagsOfResourceOutput) dynamodb.ListTagsOfResourceOutput { + + return func() dynamodb.ListTagsOfResourceOutput { + + return dynamodb.ListTagsOfResourceOutput{ + Tags: Com_amazonaws_dynamodb_ListTagsOfResourceOutput_Tags_FromDafny(dafnyOutput.Dtor_Tags().UnwrapOr(nil)), + NextToken: Com_amazonaws_dynamodb_ListTagsOfResourceOutput_NextToken_FromDafny(dafnyOutput.Dtor_NextToken().UnwrapOr(nil)), + } + }() + +} + +func PutItemInput_FromDafny(dafnyInput ComAmazonawsDynamodbTypes.PutItemInput) dynamodb.PutItemInput { + + return func() dynamodb.PutItemInput { + + return dynamodb.PutItemInput{ + TableName: Com_amazonaws_dynamodb_PutItemInput_TableName_FromDafny(dafnyInput.Dtor_TableName()), + Item: Com_amazonaws_dynamodb_PutItemInput_Item_FromDafny(dafnyInput.Dtor_Item()), + Expected: Com_amazonaws_dynamodb_PutItemInput_Expected_FromDafny(dafnyInput.Dtor_Expected().UnwrapOr(nil)), + ReturnValues: Com_amazonaws_dynamodb_PutItemInput_ReturnValues_FromDafny(dafnyInput.Dtor_ReturnValues().UnwrapOr(nil)), + ReturnConsumedCapacity: Com_amazonaws_dynamodb_PutItemInput_ReturnConsumedCapacity_FromDafny(dafnyInput.Dtor_ReturnConsumedCapacity().UnwrapOr(nil)), + ReturnItemCollectionMetrics: Com_amazonaws_dynamodb_PutItemInput_ReturnItemCollectionMetrics_FromDafny(dafnyInput.Dtor_ReturnItemCollectionMetrics().UnwrapOr(nil)), + ConditionalOperator: Com_amazonaws_dynamodb_PutItemInput_ConditionalOperator_FromDafny(dafnyInput.Dtor_ConditionalOperator().UnwrapOr(nil)), + ConditionExpression: Com_amazonaws_dynamodb_PutItemInput_ConditionExpression_FromDafny(dafnyInput.Dtor_ConditionExpression().UnwrapOr(nil)), + ExpressionAttributeNames: Com_amazonaws_dynamodb_PutItemInput_ExpressionAttributeNames_FromDafny(dafnyInput.Dtor_ExpressionAttributeNames().UnwrapOr(nil)), + ExpressionAttributeValues: Com_amazonaws_dynamodb_PutItemInput_ExpressionAttributeValues_FromDafny(dafnyInput.Dtor_ExpressionAttributeValues().UnwrapOr(nil)), + ReturnValuesOnConditionCheckFailure: Com_amazonaws_dynamodb_PutItemInput_ReturnValuesOnConditionCheckFailure_FromDafny(dafnyInput.Dtor_ReturnValuesOnConditionCheckFailure().UnwrapOr(nil)), + } + }() + +} + +func PutItemOutput_FromDafny(dafnyOutput ComAmazonawsDynamodbTypes.PutItemOutput) dynamodb.PutItemOutput { + + return func() dynamodb.PutItemOutput { + + return dynamodb.PutItemOutput{ + Attributes: Com_amazonaws_dynamodb_PutItemOutput_Attributes_FromDafny(dafnyOutput.Dtor_Attributes().UnwrapOr(nil)), + ConsumedCapacity: Com_amazonaws_dynamodb_PutItemOutput_ConsumedCapacity_FromDafny(dafnyOutput.Dtor_ConsumedCapacity().UnwrapOr(nil)), + ItemCollectionMetrics: Com_amazonaws_dynamodb_PutItemOutput_ItemCollectionMetrics_FromDafny(dafnyOutput.Dtor_ItemCollectionMetrics().UnwrapOr(nil)), + } + }() + +} + +func PutResourcePolicyInput_FromDafny(dafnyInput ComAmazonawsDynamodbTypes.PutResourcePolicyInput) dynamodb.PutResourcePolicyInput { + + return func() dynamodb.PutResourcePolicyInput { + + return dynamodb.PutResourcePolicyInput{ + ResourceArn: Com_amazonaws_dynamodb_PutResourcePolicyInput_ResourceArn_FromDafny(dafnyInput.Dtor_ResourceArn()), + Policy: Com_amazonaws_dynamodb_PutResourcePolicyInput_Policy_FromDafny(dafnyInput.Dtor_Policy()), + ExpectedRevisionId: Com_amazonaws_dynamodb_PutResourcePolicyInput_ExpectedRevisionId_FromDafny(dafnyInput.Dtor_ExpectedRevisionId().UnwrapOr(nil)), + ConfirmRemoveSelfResourceAccess: Com_amazonaws_dynamodb_PutResourcePolicyInput_ConfirmRemoveSelfResourceAccess_FromDafny(dafnyInput.Dtor_ConfirmRemoveSelfResourceAccess().UnwrapOr(nil)), + } + }() + +} + +func PutResourcePolicyOutput_FromDafny(dafnyOutput ComAmazonawsDynamodbTypes.PutResourcePolicyOutput) dynamodb.PutResourcePolicyOutput { + + return func() dynamodb.PutResourcePolicyOutput { + + return dynamodb.PutResourcePolicyOutput{ + RevisionId: Com_amazonaws_dynamodb_PutResourcePolicyOutput_RevisionId_FromDafny(dafnyOutput.Dtor_RevisionId().UnwrapOr(nil)), + } + }() + +} + +func QueryInput_FromDafny(dafnyInput ComAmazonawsDynamodbTypes.QueryInput) dynamodb.QueryInput { + + return func() dynamodb.QueryInput { + + return dynamodb.QueryInput{ + TableName: Com_amazonaws_dynamodb_QueryInput_TableName_FromDafny(dafnyInput.Dtor_TableName()), + IndexName: Com_amazonaws_dynamodb_QueryInput_IndexName_FromDafny(dafnyInput.Dtor_IndexName().UnwrapOr(nil)), + Select: Com_amazonaws_dynamodb_QueryInput_Select_FromDafny(dafnyInput.Dtor_Select().UnwrapOr(nil)), + AttributesToGet: Com_amazonaws_dynamodb_QueryInput_AttributesToGet_FromDafny(dafnyInput.Dtor_AttributesToGet().UnwrapOr(nil)), + Limit: Com_amazonaws_dynamodb_QueryInput_Limit_FromDafny(dafnyInput.Dtor_Limit().UnwrapOr(nil)), + ConsistentRead: Com_amazonaws_dynamodb_QueryInput_ConsistentRead_FromDafny(dafnyInput.Dtor_ConsistentRead().UnwrapOr(nil)), + KeyConditions: Com_amazonaws_dynamodb_QueryInput_KeyConditions_FromDafny(dafnyInput.Dtor_KeyConditions().UnwrapOr(nil)), + QueryFilter: Com_amazonaws_dynamodb_QueryInput_QueryFilter_FromDafny(dafnyInput.Dtor_QueryFilter().UnwrapOr(nil)), + ConditionalOperator: Com_amazonaws_dynamodb_QueryInput_ConditionalOperator_FromDafny(dafnyInput.Dtor_ConditionalOperator().UnwrapOr(nil)), + ScanIndexForward: Com_amazonaws_dynamodb_QueryInput_ScanIndexForward_FromDafny(dafnyInput.Dtor_ScanIndexForward().UnwrapOr(nil)), + ExclusiveStartKey: Com_amazonaws_dynamodb_QueryInput_ExclusiveStartKey_FromDafny(dafnyInput.Dtor_ExclusiveStartKey().UnwrapOr(nil)), + ReturnConsumedCapacity: Com_amazonaws_dynamodb_QueryInput_ReturnConsumedCapacity_FromDafny(dafnyInput.Dtor_ReturnConsumedCapacity().UnwrapOr(nil)), + ProjectionExpression: Com_amazonaws_dynamodb_QueryInput_ProjectionExpression_FromDafny(dafnyInput.Dtor_ProjectionExpression().UnwrapOr(nil)), + FilterExpression: Com_amazonaws_dynamodb_QueryInput_FilterExpression_FromDafny(dafnyInput.Dtor_FilterExpression().UnwrapOr(nil)), + KeyConditionExpression: Com_amazonaws_dynamodb_QueryInput_KeyConditionExpression_FromDafny(dafnyInput.Dtor_KeyConditionExpression().UnwrapOr(nil)), + ExpressionAttributeNames: Com_amazonaws_dynamodb_QueryInput_ExpressionAttributeNames_FromDafny(dafnyInput.Dtor_ExpressionAttributeNames().UnwrapOr(nil)), + ExpressionAttributeValues: Com_amazonaws_dynamodb_QueryInput_ExpressionAttributeValues_FromDafny(dafnyInput.Dtor_ExpressionAttributeValues().UnwrapOr(nil)), + } + }() + +} + +func QueryOutput_FromDafny(dafnyOutput ComAmazonawsDynamodbTypes.QueryOutput) dynamodb.QueryOutput { + + return func() dynamodb.QueryOutput { + + return dynamodb.QueryOutput{ + Items: Com_amazonaws_dynamodb_QueryOutput_Items_FromDafny(dafnyOutput.Dtor_Items().UnwrapOr(nil)), + Count: Com_amazonaws_dynamodb_QueryOutput_Count_FromDafny(dafnyOutput.Dtor_Count().UnwrapOr(nil)), + ScannedCount: Com_amazonaws_dynamodb_QueryOutput_ScannedCount_FromDafny(dafnyOutput.Dtor_ScannedCount().UnwrapOr(nil)), + LastEvaluatedKey: Com_amazonaws_dynamodb_QueryOutput_LastEvaluatedKey_FromDafny(dafnyOutput.Dtor_LastEvaluatedKey().UnwrapOr(nil)), + ConsumedCapacity: Com_amazonaws_dynamodb_QueryOutput_ConsumedCapacity_FromDafny(dafnyOutput.Dtor_ConsumedCapacity().UnwrapOr(nil)), + } + }() + +} + +func RestoreTableFromBackupInput_FromDafny(dafnyInput ComAmazonawsDynamodbTypes.RestoreTableFromBackupInput) dynamodb.RestoreTableFromBackupInput { + + return func() dynamodb.RestoreTableFromBackupInput { + + return dynamodb.RestoreTableFromBackupInput{ + TargetTableName: Com_amazonaws_dynamodb_RestoreTableFromBackupInput_TargetTableName_FromDafny(dafnyInput.Dtor_TargetTableName()), + BackupArn: Com_amazonaws_dynamodb_RestoreTableFromBackupInput_BackupArn_FromDafny(dafnyInput.Dtor_BackupArn()), + BillingModeOverride: Com_amazonaws_dynamodb_RestoreTableFromBackupInput_BillingModeOverride_FromDafny(dafnyInput.Dtor_BillingModeOverride().UnwrapOr(nil)), + GlobalSecondaryIndexOverride: Com_amazonaws_dynamodb_RestoreTableFromBackupInput_GlobalSecondaryIndexOverride_FromDafny(dafnyInput.Dtor_GlobalSecondaryIndexOverride().UnwrapOr(nil)), + LocalSecondaryIndexOverride: Com_amazonaws_dynamodb_RestoreTableFromBackupInput_LocalSecondaryIndexOverride_FromDafny(dafnyInput.Dtor_LocalSecondaryIndexOverride().UnwrapOr(nil)), + ProvisionedThroughputOverride: Com_amazonaws_dynamodb_RestoreTableFromBackupInput_ProvisionedThroughputOverride_FromDafny(dafnyInput.Dtor_ProvisionedThroughputOverride().UnwrapOr(nil)), + OnDemandThroughputOverride: Com_amazonaws_dynamodb_RestoreTableFromBackupInput_OnDemandThroughputOverride_FromDafny(dafnyInput.Dtor_OnDemandThroughputOverride().UnwrapOr(nil)), + SSESpecificationOverride: Com_amazonaws_dynamodb_RestoreTableFromBackupInput_SSESpecificationOverride_FromDafny(dafnyInput.Dtor_SSESpecificationOverride().UnwrapOr(nil)), + } + }() + +} + +func RestoreTableFromBackupOutput_FromDafny(dafnyOutput ComAmazonawsDynamodbTypes.RestoreTableFromBackupOutput) dynamodb.RestoreTableFromBackupOutput { + + return func() dynamodb.RestoreTableFromBackupOutput { + + return dynamodb.RestoreTableFromBackupOutput{ + TableDescription: Com_amazonaws_dynamodb_RestoreTableFromBackupOutput_TableDescription_FromDafny(dafnyOutput.Dtor_TableDescription().UnwrapOr(nil)), + } + }() + +} + +func RestoreTableToPointInTimeInput_FromDafny(dafnyInput ComAmazonawsDynamodbTypes.RestoreTableToPointInTimeInput) dynamodb.RestoreTableToPointInTimeInput { + + return func() dynamodb.RestoreTableToPointInTimeInput { + + return dynamodb.RestoreTableToPointInTimeInput{ + SourceTableArn: Com_amazonaws_dynamodb_RestoreTableToPointInTimeInput_SourceTableArn_FromDafny(dafnyInput.Dtor_SourceTableArn().UnwrapOr(nil)), + SourceTableName: Com_amazonaws_dynamodb_RestoreTableToPointInTimeInput_SourceTableName_FromDafny(dafnyInput.Dtor_SourceTableName().UnwrapOr(nil)), + TargetTableName: Com_amazonaws_dynamodb_RestoreTableToPointInTimeInput_TargetTableName_FromDafny(dafnyInput.Dtor_TargetTableName()), + UseLatestRestorableTime: Com_amazonaws_dynamodb_RestoreTableToPointInTimeInput_UseLatestRestorableTime_FromDafny(dafnyInput.Dtor_UseLatestRestorableTime().UnwrapOr(nil)), + RestoreDateTime: Com_amazonaws_dynamodb_RestoreTableToPointInTimeInput_RestoreDateTime_FromDafny(dafnyInput.Dtor_RestoreDateTime().UnwrapOr(nil)), + BillingModeOverride: Com_amazonaws_dynamodb_RestoreTableToPointInTimeInput_BillingModeOverride_FromDafny(dafnyInput.Dtor_BillingModeOverride().UnwrapOr(nil)), + GlobalSecondaryIndexOverride: Com_amazonaws_dynamodb_RestoreTableToPointInTimeInput_GlobalSecondaryIndexOverride_FromDafny(dafnyInput.Dtor_GlobalSecondaryIndexOverride().UnwrapOr(nil)), + LocalSecondaryIndexOverride: Com_amazonaws_dynamodb_RestoreTableToPointInTimeInput_LocalSecondaryIndexOverride_FromDafny(dafnyInput.Dtor_LocalSecondaryIndexOverride().UnwrapOr(nil)), + ProvisionedThroughputOverride: Com_amazonaws_dynamodb_RestoreTableToPointInTimeInput_ProvisionedThroughputOverride_FromDafny(dafnyInput.Dtor_ProvisionedThroughputOverride().UnwrapOr(nil)), + OnDemandThroughputOverride: Com_amazonaws_dynamodb_RestoreTableToPointInTimeInput_OnDemandThroughputOverride_FromDafny(dafnyInput.Dtor_OnDemandThroughputOverride().UnwrapOr(nil)), + SSESpecificationOverride: Com_amazonaws_dynamodb_RestoreTableToPointInTimeInput_SSESpecificationOverride_FromDafny(dafnyInput.Dtor_SSESpecificationOverride().UnwrapOr(nil)), + } + }() + +} + +func RestoreTableToPointInTimeOutput_FromDafny(dafnyOutput ComAmazonawsDynamodbTypes.RestoreTableToPointInTimeOutput) dynamodb.RestoreTableToPointInTimeOutput { + + return func() dynamodb.RestoreTableToPointInTimeOutput { + + return dynamodb.RestoreTableToPointInTimeOutput{ + TableDescription: Com_amazonaws_dynamodb_RestoreTableToPointInTimeOutput_TableDescription_FromDafny(dafnyOutput.Dtor_TableDescription().UnwrapOr(nil)), + } + }() + +} + +func ScanInput_FromDafny(dafnyInput ComAmazonawsDynamodbTypes.ScanInput) dynamodb.ScanInput { + + return func() dynamodb.ScanInput { + + return dynamodb.ScanInput{ + TableName: Com_amazonaws_dynamodb_ScanInput_TableName_FromDafny(dafnyInput.Dtor_TableName()), + IndexName: Com_amazonaws_dynamodb_ScanInput_IndexName_FromDafny(dafnyInput.Dtor_IndexName().UnwrapOr(nil)), + AttributesToGet: Com_amazonaws_dynamodb_ScanInput_AttributesToGet_FromDafny(dafnyInput.Dtor_AttributesToGet().UnwrapOr(nil)), + Limit: Com_amazonaws_dynamodb_ScanInput_Limit_FromDafny(dafnyInput.Dtor_Limit().UnwrapOr(nil)), + Select: Com_amazonaws_dynamodb_ScanInput_Select_FromDafny(dafnyInput.Dtor_Select().UnwrapOr(nil)), + ScanFilter: Com_amazonaws_dynamodb_ScanInput_ScanFilter_FromDafny(dafnyInput.Dtor_ScanFilter().UnwrapOr(nil)), + ConditionalOperator: Com_amazonaws_dynamodb_ScanInput_ConditionalOperator_FromDafny(dafnyInput.Dtor_ConditionalOperator().UnwrapOr(nil)), + ExclusiveStartKey: Com_amazonaws_dynamodb_ScanInput_ExclusiveStartKey_FromDafny(dafnyInput.Dtor_ExclusiveStartKey().UnwrapOr(nil)), + ReturnConsumedCapacity: Com_amazonaws_dynamodb_ScanInput_ReturnConsumedCapacity_FromDafny(dafnyInput.Dtor_ReturnConsumedCapacity().UnwrapOr(nil)), + TotalSegments: Com_amazonaws_dynamodb_ScanInput_TotalSegments_FromDafny(dafnyInput.Dtor_TotalSegments().UnwrapOr(nil)), + Segment: Com_amazonaws_dynamodb_ScanInput_Segment_FromDafny(dafnyInput.Dtor_Segment().UnwrapOr(nil)), + ProjectionExpression: Com_amazonaws_dynamodb_ScanInput_ProjectionExpression_FromDafny(dafnyInput.Dtor_ProjectionExpression().UnwrapOr(nil)), + FilterExpression: Com_amazonaws_dynamodb_ScanInput_FilterExpression_FromDafny(dafnyInput.Dtor_FilterExpression().UnwrapOr(nil)), + ExpressionAttributeNames: Com_amazonaws_dynamodb_ScanInput_ExpressionAttributeNames_FromDafny(dafnyInput.Dtor_ExpressionAttributeNames().UnwrapOr(nil)), + ExpressionAttributeValues: Com_amazonaws_dynamodb_ScanInput_ExpressionAttributeValues_FromDafny(dafnyInput.Dtor_ExpressionAttributeValues().UnwrapOr(nil)), + ConsistentRead: Com_amazonaws_dynamodb_ScanInput_ConsistentRead_FromDafny(dafnyInput.Dtor_ConsistentRead().UnwrapOr(nil)), + } + }() + +} + +func ScanOutput_FromDafny(dafnyOutput ComAmazonawsDynamodbTypes.ScanOutput) dynamodb.ScanOutput { + + return func() dynamodb.ScanOutput { + + return dynamodb.ScanOutput{ + Items: Com_amazonaws_dynamodb_ScanOutput_Items_FromDafny(dafnyOutput.Dtor_Items().UnwrapOr(nil)), + Count: Com_amazonaws_dynamodb_ScanOutput_Count_FromDafny(dafnyOutput.Dtor_Count().UnwrapOr(nil)), + ScannedCount: Com_amazonaws_dynamodb_ScanOutput_ScannedCount_FromDafny(dafnyOutput.Dtor_ScannedCount().UnwrapOr(nil)), + LastEvaluatedKey: Com_amazonaws_dynamodb_ScanOutput_LastEvaluatedKey_FromDafny(dafnyOutput.Dtor_LastEvaluatedKey().UnwrapOr(nil)), + ConsumedCapacity: Com_amazonaws_dynamodb_ScanOutput_ConsumedCapacity_FromDafny(dafnyOutput.Dtor_ConsumedCapacity().UnwrapOr(nil)), + } + }() + +} + +func TagResourceInput_FromDafny(dafnyInput ComAmazonawsDynamodbTypes.TagResourceInput) dynamodb.TagResourceInput { + + return func() dynamodb.TagResourceInput { + + return dynamodb.TagResourceInput{ + ResourceArn: Com_amazonaws_dynamodb_TagResourceInput_ResourceArn_FromDafny(dafnyInput.Dtor_ResourceArn()), + Tags: Com_amazonaws_dynamodb_TagResourceInput_Tags_FromDafny(dafnyInput.Dtor_Tags()), + } + }() + +} + +func TransactGetItemsInput_FromDafny(dafnyInput ComAmazonawsDynamodbTypes.TransactGetItemsInput) dynamodb.TransactGetItemsInput { + + return func() dynamodb.TransactGetItemsInput { + + return dynamodb.TransactGetItemsInput{ + TransactItems: Com_amazonaws_dynamodb_TransactGetItemsInput_TransactItems_FromDafny(dafnyInput.Dtor_TransactItems()), + ReturnConsumedCapacity: Com_amazonaws_dynamodb_TransactGetItemsInput_ReturnConsumedCapacity_FromDafny(dafnyInput.Dtor_ReturnConsumedCapacity().UnwrapOr(nil)), + } + }() + +} + +func TransactGetItemsOutput_FromDafny(dafnyOutput ComAmazonawsDynamodbTypes.TransactGetItemsOutput) dynamodb.TransactGetItemsOutput { + + return func() dynamodb.TransactGetItemsOutput { + + return dynamodb.TransactGetItemsOutput{ + ConsumedCapacity: Com_amazonaws_dynamodb_TransactGetItemsOutput_ConsumedCapacity_FromDafny(dafnyOutput.Dtor_ConsumedCapacity().UnwrapOr(nil)), + Responses: Com_amazonaws_dynamodb_TransactGetItemsOutput_Responses_FromDafny(dafnyOutput.Dtor_Responses().UnwrapOr(nil)), + } + }() + +} + +func TransactWriteItemsInput_FromDafny(dafnyInput ComAmazonawsDynamodbTypes.TransactWriteItemsInput) dynamodb.TransactWriteItemsInput { + + return func() dynamodb.TransactWriteItemsInput { + + return dynamodb.TransactWriteItemsInput{ + TransactItems: Com_amazonaws_dynamodb_TransactWriteItemsInput_TransactItems_FromDafny(dafnyInput.Dtor_TransactItems()), + ReturnConsumedCapacity: Com_amazonaws_dynamodb_TransactWriteItemsInput_ReturnConsumedCapacity_FromDafny(dafnyInput.Dtor_ReturnConsumedCapacity().UnwrapOr(nil)), + ReturnItemCollectionMetrics: Com_amazonaws_dynamodb_TransactWriteItemsInput_ReturnItemCollectionMetrics_FromDafny(dafnyInput.Dtor_ReturnItemCollectionMetrics().UnwrapOr(nil)), + ClientRequestToken: Com_amazonaws_dynamodb_TransactWriteItemsInput_ClientRequestToken_FromDafny(dafnyInput.Dtor_ClientRequestToken().UnwrapOr(nil)), + } + }() + +} + +func TransactWriteItemsOutput_FromDafny(dafnyOutput ComAmazonawsDynamodbTypes.TransactWriteItemsOutput) dynamodb.TransactWriteItemsOutput { + + return func() dynamodb.TransactWriteItemsOutput { + + return dynamodb.TransactWriteItemsOutput{ + ConsumedCapacity: Com_amazonaws_dynamodb_TransactWriteItemsOutput_ConsumedCapacity_FromDafny(dafnyOutput.Dtor_ConsumedCapacity().UnwrapOr(nil)), + ItemCollectionMetrics: Com_amazonaws_dynamodb_TransactWriteItemsOutput_ItemCollectionMetrics_FromDafny(dafnyOutput.Dtor_ItemCollectionMetrics().UnwrapOr(nil)), + } + }() + +} + +func UntagResourceInput_FromDafny(dafnyInput ComAmazonawsDynamodbTypes.UntagResourceInput) dynamodb.UntagResourceInput { + + return func() dynamodb.UntagResourceInput { + + return dynamodb.UntagResourceInput{ + ResourceArn: Com_amazonaws_dynamodb_UntagResourceInput_ResourceArn_FromDafny(dafnyInput.Dtor_ResourceArn()), + TagKeys: Com_amazonaws_dynamodb_UntagResourceInput_TagKeys_FromDafny(dafnyInput.Dtor_TagKeys()), + } + }() + +} + +func UpdateContinuousBackupsInput_FromDafny(dafnyInput ComAmazonawsDynamodbTypes.UpdateContinuousBackupsInput) dynamodb.UpdateContinuousBackupsInput { + + return func() dynamodb.UpdateContinuousBackupsInput { + + return dynamodb.UpdateContinuousBackupsInput{ + TableName: Com_amazonaws_dynamodb_UpdateContinuousBackupsInput_TableName_FromDafny(dafnyInput.Dtor_TableName()), + PointInTimeRecoverySpecification: Com_amazonaws_dynamodb_UpdateContinuousBackupsInput_PointInTimeRecoverySpecification_FromDafny(dafnyInput.Dtor_PointInTimeRecoverySpecification()), + } + }() + +} + +func UpdateContinuousBackupsOutput_FromDafny(dafnyOutput ComAmazonawsDynamodbTypes.UpdateContinuousBackupsOutput) dynamodb.UpdateContinuousBackupsOutput { + + return func() dynamodb.UpdateContinuousBackupsOutput { + + return dynamodb.UpdateContinuousBackupsOutput{ + ContinuousBackupsDescription: Com_amazonaws_dynamodb_UpdateContinuousBackupsOutput_ContinuousBackupsDescription_FromDafny(dafnyOutput.Dtor_ContinuousBackupsDescription().UnwrapOr(nil)), + } + }() + +} + +func UpdateContributorInsightsInput_FromDafny(dafnyInput ComAmazonawsDynamodbTypes.UpdateContributorInsightsInput) dynamodb.UpdateContributorInsightsInput { + + return func() dynamodb.UpdateContributorInsightsInput { + + return dynamodb.UpdateContributorInsightsInput{ + TableName: Com_amazonaws_dynamodb_UpdateContributorInsightsInput_TableName_FromDafny(dafnyInput.Dtor_TableName()), + IndexName: Com_amazonaws_dynamodb_UpdateContributorInsightsInput_IndexName_FromDafny(dafnyInput.Dtor_IndexName().UnwrapOr(nil)), + ContributorInsightsAction: Com_amazonaws_dynamodb_UpdateContributorInsightsInput_ContributorInsightsAction_FromDafny(dafnyInput.Dtor_ContributorInsightsAction()), + } + }() + +} + +func UpdateContributorInsightsOutput_FromDafny(dafnyOutput ComAmazonawsDynamodbTypes.UpdateContributorInsightsOutput) dynamodb.UpdateContributorInsightsOutput { + + return func() dynamodb.UpdateContributorInsightsOutput { + + return dynamodb.UpdateContributorInsightsOutput{ + TableName: Com_amazonaws_dynamodb_UpdateContributorInsightsOutput_TableName_FromDafny(dafnyOutput.Dtor_TableName().UnwrapOr(nil)), + IndexName: Com_amazonaws_dynamodb_UpdateContributorInsightsOutput_IndexName_FromDafny(dafnyOutput.Dtor_IndexName().UnwrapOr(nil)), + ContributorInsightsStatus: Com_amazonaws_dynamodb_UpdateContributorInsightsOutput_ContributorInsightsStatus_FromDafny(dafnyOutput.Dtor_ContributorInsightsStatus().UnwrapOr(nil)), + } + }() + +} + +func UpdateGlobalTableInput_FromDafny(dafnyInput ComAmazonawsDynamodbTypes.UpdateGlobalTableInput) dynamodb.UpdateGlobalTableInput { + + return func() dynamodb.UpdateGlobalTableInput { + + return dynamodb.UpdateGlobalTableInput{ + GlobalTableName: Com_amazonaws_dynamodb_UpdateGlobalTableInput_GlobalTableName_FromDafny(dafnyInput.Dtor_GlobalTableName()), + ReplicaUpdates: Com_amazonaws_dynamodb_UpdateGlobalTableInput_ReplicaUpdates_FromDafny(dafnyInput.Dtor_ReplicaUpdates()), + } + }() + +} + +func UpdateGlobalTableOutput_FromDafny(dafnyOutput ComAmazonawsDynamodbTypes.UpdateGlobalTableOutput) dynamodb.UpdateGlobalTableOutput { + + return func() dynamodb.UpdateGlobalTableOutput { + + return dynamodb.UpdateGlobalTableOutput{ + GlobalTableDescription: Com_amazonaws_dynamodb_UpdateGlobalTableOutput_GlobalTableDescription_FromDafny(dafnyOutput.Dtor_GlobalTableDescription().UnwrapOr(nil)), + } + }() + +} + +func UpdateGlobalTableSettingsInput_FromDafny(dafnyInput ComAmazonawsDynamodbTypes.UpdateGlobalTableSettingsInput) dynamodb.UpdateGlobalTableSettingsInput { + + return func() dynamodb.UpdateGlobalTableSettingsInput { + + return dynamodb.UpdateGlobalTableSettingsInput{ + GlobalTableName: Com_amazonaws_dynamodb_UpdateGlobalTableSettingsInput_GlobalTableName_FromDafny(dafnyInput.Dtor_GlobalTableName()), + GlobalTableBillingMode: Com_amazonaws_dynamodb_UpdateGlobalTableSettingsInput_GlobalTableBillingMode_FromDafny(dafnyInput.Dtor_GlobalTableBillingMode().UnwrapOr(nil)), + GlobalTableProvisionedWriteCapacityUnits: Com_amazonaws_dynamodb_UpdateGlobalTableSettingsInput_GlobalTableProvisionedWriteCapacityUnits_FromDafny(dafnyInput.Dtor_GlobalTableProvisionedWriteCapacityUnits().UnwrapOr(nil)), + GlobalTableProvisionedWriteCapacityAutoScalingSettingsUpdate: Com_amazonaws_dynamodb_UpdateGlobalTableSettingsInput_GlobalTableProvisionedWriteCapacityAutoScalingSettingsUpdate_FromDafny(dafnyInput.Dtor_GlobalTableProvisionedWriteCapacityAutoScalingSettingsUpdate().UnwrapOr(nil)), + GlobalTableGlobalSecondaryIndexSettingsUpdate: Com_amazonaws_dynamodb_UpdateGlobalTableSettingsInput_GlobalTableGlobalSecondaryIndexSettingsUpdate_FromDafny(dafnyInput.Dtor_GlobalTableGlobalSecondaryIndexSettingsUpdate().UnwrapOr(nil)), + ReplicaSettingsUpdate: Com_amazonaws_dynamodb_UpdateGlobalTableSettingsInput_ReplicaSettingsUpdate_FromDafny(dafnyInput.Dtor_ReplicaSettingsUpdate().UnwrapOr(nil)), + } + }() + +} + +func UpdateGlobalTableSettingsOutput_FromDafny(dafnyOutput ComAmazonawsDynamodbTypes.UpdateGlobalTableSettingsOutput) dynamodb.UpdateGlobalTableSettingsOutput { + + return func() dynamodb.UpdateGlobalTableSettingsOutput { + + return dynamodb.UpdateGlobalTableSettingsOutput{ + GlobalTableName: Com_amazonaws_dynamodb_UpdateGlobalTableSettingsOutput_GlobalTableName_FromDafny(dafnyOutput.Dtor_GlobalTableName().UnwrapOr(nil)), + ReplicaSettings: Com_amazonaws_dynamodb_UpdateGlobalTableSettingsOutput_ReplicaSettings_FromDafny(dafnyOutput.Dtor_ReplicaSettings().UnwrapOr(nil)), + } + }() + +} + +func UpdateItemInput_FromDafny(dafnyInput ComAmazonawsDynamodbTypes.UpdateItemInput) dynamodb.UpdateItemInput { + + return func() dynamodb.UpdateItemInput { + + return dynamodb.UpdateItemInput{ + TableName: Com_amazonaws_dynamodb_UpdateItemInput_TableName_FromDafny(dafnyInput.Dtor_TableName()), + Key: Com_amazonaws_dynamodb_UpdateItemInput_Key_FromDafny(dafnyInput.Dtor_Key()), + AttributeUpdates: Com_amazonaws_dynamodb_UpdateItemInput_AttributeUpdates_FromDafny(dafnyInput.Dtor_AttributeUpdates().UnwrapOr(nil)), + Expected: Com_amazonaws_dynamodb_UpdateItemInput_Expected_FromDafny(dafnyInput.Dtor_Expected().UnwrapOr(nil)), + ConditionalOperator: Com_amazonaws_dynamodb_UpdateItemInput_ConditionalOperator_FromDafny(dafnyInput.Dtor_ConditionalOperator().UnwrapOr(nil)), + ReturnValues: Com_amazonaws_dynamodb_UpdateItemInput_ReturnValues_FromDafny(dafnyInput.Dtor_ReturnValues().UnwrapOr(nil)), + ReturnConsumedCapacity: Com_amazonaws_dynamodb_UpdateItemInput_ReturnConsumedCapacity_FromDafny(dafnyInput.Dtor_ReturnConsumedCapacity().UnwrapOr(nil)), + ReturnItemCollectionMetrics: Com_amazonaws_dynamodb_UpdateItemInput_ReturnItemCollectionMetrics_FromDafny(dafnyInput.Dtor_ReturnItemCollectionMetrics().UnwrapOr(nil)), + UpdateExpression: Com_amazonaws_dynamodb_UpdateItemInput_UpdateExpression_FromDafny(dafnyInput.Dtor_UpdateExpression().UnwrapOr(nil)), + ConditionExpression: Com_amazonaws_dynamodb_UpdateItemInput_ConditionExpression_FromDafny(dafnyInput.Dtor_ConditionExpression().UnwrapOr(nil)), + ExpressionAttributeNames: Com_amazonaws_dynamodb_UpdateItemInput_ExpressionAttributeNames_FromDafny(dafnyInput.Dtor_ExpressionAttributeNames().UnwrapOr(nil)), + ExpressionAttributeValues: Com_amazonaws_dynamodb_UpdateItemInput_ExpressionAttributeValues_FromDafny(dafnyInput.Dtor_ExpressionAttributeValues().UnwrapOr(nil)), + ReturnValuesOnConditionCheckFailure: Com_amazonaws_dynamodb_UpdateItemInput_ReturnValuesOnConditionCheckFailure_FromDafny(dafnyInput.Dtor_ReturnValuesOnConditionCheckFailure().UnwrapOr(nil)), + } + }() + +} + +func UpdateItemOutput_FromDafny(dafnyOutput ComAmazonawsDynamodbTypes.UpdateItemOutput) dynamodb.UpdateItemOutput { + + return func() dynamodb.UpdateItemOutput { + + return dynamodb.UpdateItemOutput{ + Attributes: Com_amazonaws_dynamodb_UpdateItemOutput_Attributes_FromDafny(dafnyOutput.Dtor_Attributes().UnwrapOr(nil)), + ConsumedCapacity: Com_amazonaws_dynamodb_UpdateItemOutput_ConsumedCapacity_FromDafny(dafnyOutput.Dtor_ConsumedCapacity().UnwrapOr(nil)), + ItemCollectionMetrics: Com_amazonaws_dynamodb_UpdateItemOutput_ItemCollectionMetrics_FromDafny(dafnyOutput.Dtor_ItemCollectionMetrics().UnwrapOr(nil)), + } + }() + +} + +func UpdateKinesisStreamingDestinationInput_FromDafny(dafnyInput ComAmazonawsDynamodbTypes.UpdateKinesisStreamingDestinationInput) dynamodb.UpdateKinesisStreamingDestinationInput { + + return func() dynamodb.UpdateKinesisStreamingDestinationInput { + + return dynamodb.UpdateKinesisStreamingDestinationInput{ + TableName: Com_amazonaws_dynamodb_UpdateKinesisStreamingDestinationInput_TableName_FromDafny(dafnyInput.Dtor_TableName()), + StreamArn: Com_amazonaws_dynamodb_UpdateKinesisStreamingDestinationInput_StreamArn_FromDafny(dafnyInput.Dtor_StreamArn()), + UpdateKinesisStreamingConfiguration: Com_amazonaws_dynamodb_UpdateKinesisStreamingDestinationInput_UpdateKinesisStreamingConfiguration_FromDafny(dafnyInput.Dtor_UpdateKinesisStreamingConfiguration().UnwrapOr(nil)), + } + }() + +} + +func UpdateKinesisStreamingDestinationOutput_FromDafny(dafnyOutput ComAmazonawsDynamodbTypes.UpdateKinesisStreamingDestinationOutput) dynamodb.UpdateKinesisStreamingDestinationOutput { + + return func() dynamodb.UpdateKinesisStreamingDestinationOutput { + + return dynamodb.UpdateKinesisStreamingDestinationOutput{ + TableName: Com_amazonaws_dynamodb_UpdateKinesisStreamingDestinationOutput_TableName_FromDafny(dafnyOutput.Dtor_TableName().UnwrapOr(nil)), + StreamArn: Com_amazonaws_dynamodb_UpdateKinesisStreamingDestinationOutput_StreamArn_FromDafny(dafnyOutput.Dtor_StreamArn().UnwrapOr(nil)), + DestinationStatus: Com_amazonaws_dynamodb_UpdateKinesisStreamingDestinationOutput_DestinationStatus_FromDafny(dafnyOutput.Dtor_DestinationStatus().UnwrapOr(nil)), + UpdateKinesisStreamingConfiguration: Com_amazonaws_dynamodb_UpdateKinesisStreamingDestinationOutput_UpdateKinesisStreamingConfiguration_FromDafny(dafnyOutput.Dtor_UpdateKinesisStreamingConfiguration().UnwrapOr(nil)), + } + }() + +} + +func UpdateTableInput_FromDafny(dafnyInput ComAmazonawsDynamodbTypes.UpdateTableInput) dynamodb.UpdateTableInput { + + return func() dynamodb.UpdateTableInput { + + return dynamodb.UpdateTableInput{ + AttributeDefinitions: Com_amazonaws_dynamodb_UpdateTableInput_AttributeDefinitions_FromDafny(dafnyInput.Dtor_AttributeDefinitions().UnwrapOr(nil)), + TableName: Com_amazonaws_dynamodb_UpdateTableInput_TableName_FromDafny(dafnyInput.Dtor_TableName()), + BillingMode: Com_amazonaws_dynamodb_UpdateTableInput_BillingMode_FromDafny(dafnyInput.Dtor_BillingMode().UnwrapOr(nil)), + ProvisionedThroughput: Com_amazonaws_dynamodb_UpdateTableInput_ProvisionedThroughput_FromDafny(dafnyInput.Dtor_ProvisionedThroughput().UnwrapOr(nil)), + GlobalSecondaryIndexUpdates: Com_amazonaws_dynamodb_UpdateTableInput_GlobalSecondaryIndexUpdates_FromDafny(dafnyInput.Dtor_GlobalSecondaryIndexUpdates().UnwrapOr(nil)), + StreamSpecification: Com_amazonaws_dynamodb_UpdateTableInput_StreamSpecification_FromDafny(dafnyInput.Dtor_StreamSpecification().UnwrapOr(nil)), + SSESpecification: Com_amazonaws_dynamodb_UpdateTableInput_SSESpecification_FromDafny(dafnyInput.Dtor_SSESpecification().UnwrapOr(nil)), + ReplicaUpdates: Com_amazonaws_dynamodb_UpdateTableInput_ReplicaUpdates_FromDafny(dafnyInput.Dtor_ReplicaUpdates().UnwrapOr(nil)), + TableClass: Com_amazonaws_dynamodb_UpdateTableInput_TableClass_FromDafny(dafnyInput.Dtor_TableClass().UnwrapOr(nil)), + DeletionProtectionEnabled: Com_amazonaws_dynamodb_UpdateTableInput_DeletionProtectionEnabled_FromDafny(dafnyInput.Dtor_DeletionProtectionEnabled().UnwrapOr(nil)), + OnDemandThroughput: Com_amazonaws_dynamodb_UpdateTableInput_OnDemandThroughput_FromDafny(dafnyInput.Dtor_OnDemandThroughput().UnwrapOr(nil)), + } + }() + +} + +func UpdateTableOutput_FromDafny(dafnyOutput ComAmazonawsDynamodbTypes.UpdateTableOutput) dynamodb.UpdateTableOutput { + + return func() dynamodb.UpdateTableOutput { + + return dynamodb.UpdateTableOutput{ + TableDescription: Com_amazonaws_dynamodb_UpdateTableOutput_TableDescription_FromDafny(dafnyOutput.Dtor_TableDescription().UnwrapOr(nil)), + } + }() + +} + +func UpdateTableReplicaAutoScalingInput_FromDafny(dafnyInput ComAmazonawsDynamodbTypes.UpdateTableReplicaAutoScalingInput) dynamodb.UpdateTableReplicaAutoScalingInput { + + return func() dynamodb.UpdateTableReplicaAutoScalingInput { + + return dynamodb.UpdateTableReplicaAutoScalingInput{ + GlobalSecondaryIndexUpdates: Com_amazonaws_dynamodb_UpdateTableReplicaAutoScalingInput_GlobalSecondaryIndexUpdates_FromDafny(dafnyInput.Dtor_GlobalSecondaryIndexUpdates().UnwrapOr(nil)), + TableName: Com_amazonaws_dynamodb_UpdateTableReplicaAutoScalingInput_TableName_FromDafny(dafnyInput.Dtor_TableName()), + ProvisionedWriteCapacityAutoScalingUpdate: Com_amazonaws_dynamodb_UpdateTableReplicaAutoScalingInput_ProvisionedWriteCapacityAutoScalingUpdate_FromDafny(dafnyInput.Dtor_ProvisionedWriteCapacityAutoScalingUpdate().UnwrapOr(nil)), + ReplicaUpdates: Com_amazonaws_dynamodb_UpdateTableReplicaAutoScalingInput_ReplicaUpdates_FromDafny(dafnyInput.Dtor_ReplicaUpdates().UnwrapOr(nil)), + } + }() + +} + +func UpdateTableReplicaAutoScalingOutput_FromDafny(dafnyOutput ComAmazonawsDynamodbTypes.UpdateTableReplicaAutoScalingOutput) dynamodb.UpdateTableReplicaAutoScalingOutput { + + return func() dynamodb.UpdateTableReplicaAutoScalingOutput { + + return dynamodb.UpdateTableReplicaAutoScalingOutput{ + TableAutoScalingDescription: Com_amazonaws_dynamodb_UpdateTableReplicaAutoScalingOutput_TableAutoScalingDescription_FromDafny(dafnyOutput.Dtor_TableAutoScalingDescription().UnwrapOr(nil)), + } + }() + +} + +func UpdateTimeToLiveInput_FromDafny(dafnyInput ComAmazonawsDynamodbTypes.UpdateTimeToLiveInput) dynamodb.UpdateTimeToLiveInput { + + return func() dynamodb.UpdateTimeToLiveInput { + + return dynamodb.UpdateTimeToLiveInput{ + TableName: Com_amazonaws_dynamodb_UpdateTimeToLiveInput_TableName_FromDafny(dafnyInput.Dtor_TableName()), + TimeToLiveSpecification: Com_amazonaws_dynamodb_UpdateTimeToLiveInput_TimeToLiveSpecification_FromDafny(dafnyInput.Dtor_TimeToLiveSpecification()), + } + }() + +} + +func UpdateTimeToLiveOutput_FromDafny(dafnyOutput ComAmazonawsDynamodbTypes.UpdateTimeToLiveOutput) dynamodb.UpdateTimeToLiveOutput { + + return func() dynamodb.UpdateTimeToLiveOutput { + + return dynamodb.UpdateTimeToLiveOutput{ + TimeToLiveSpecification: Com_amazonaws_dynamodb_UpdateTimeToLiveOutput_TimeToLiveSpecification_FromDafny(dafnyOutput.Dtor_TimeToLiveSpecification().UnwrapOr(nil)), + } + }() + +} + +func BackupInUseException_FromDafny(dafnyOutput ComAmazonawsDynamodbTypes.Error) types.BackupInUseException { + return func() types.BackupInUseException { + + return types.BackupInUseException{ + Message: Com_amazonaws_dynamodb_BackupInUseException_message_FromDafny(dafnyOutput.Dtor_message().UnwrapOr(nil)), + } + }() + +} + +func BackupNotFoundException_FromDafny(dafnyOutput ComAmazonawsDynamodbTypes.Error) types.BackupNotFoundException { + return func() types.BackupNotFoundException { + + return types.BackupNotFoundException{ + Message: Com_amazonaws_dynamodb_BackupNotFoundException_message_FromDafny(dafnyOutput.Dtor_message().UnwrapOr(nil)), + } + }() + +} + +func ConditionalCheckFailedException_FromDafny(dafnyOutput ComAmazonawsDynamodbTypes.Error) types.ConditionalCheckFailedException { + return func() types.ConditionalCheckFailedException { + + return types.ConditionalCheckFailedException{ + Message: Com_amazonaws_dynamodb_ConditionalCheckFailedException_message_FromDafny(dafnyOutput.Dtor_message().UnwrapOr(nil)), + Item: Com_amazonaws_dynamodb_ConditionalCheckFailedException_Item_FromDafny(dafnyOutput.Dtor_Item().UnwrapOr(nil)), + } + }() + +} + +func ContinuousBackupsUnavailableException_FromDafny(dafnyOutput ComAmazonawsDynamodbTypes.Error) types.ContinuousBackupsUnavailableException { + return func() types.ContinuousBackupsUnavailableException { + + return types.ContinuousBackupsUnavailableException{ + Message: Com_amazonaws_dynamodb_ContinuousBackupsUnavailableException_message_FromDafny(dafnyOutput.Dtor_message().UnwrapOr(nil)), + } + }() + +} + +func DuplicateItemException_FromDafny(dafnyOutput ComAmazonawsDynamodbTypes.Error) types.DuplicateItemException { + return func() types.DuplicateItemException { + + return types.DuplicateItemException{ + Message: Com_amazonaws_dynamodb_DuplicateItemException_message_FromDafny(dafnyOutput.Dtor_message().UnwrapOr(nil)), + } + }() + +} + +func ExportConflictException_FromDafny(dafnyOutput ComAmazonawsDynamodbTypes.Error) types.ExportConflictException { + return func() types.ExportConflictException { + + return types.ExportConflictException{ + Message: Com_amazonaws_dynamodb_ExportConflictException_message_FromDafny(dafnyOutput.Dtor_message().UnwrapOr(nil)), + } + }() + +} + +func ExportNotFoundException_FromDafny(dafnyOutput ComAmazonawsDynamodbTypes.Error) types.ExportNotFoundException { + return func() types.ExportNotFoundException { + + return types.ExportNotFoundException{ + Message: Com_amazonaws_dynamodb_ExportNotFoundException_message_FromDafny(dafnyOutput.Dtor_message().UnwrapOr(nil)), + } + }() + +} + +func GlobalTableAlreadyExistsException_FromDafny(dafnyOutput ComAmazonawsDynamodbTypes.Error) types.GlobalTableAlreadyExistsException { + return func() types.GlobalTableAlreadyExistsException { + + return types.GlobalTableAlreadyExistsException{ + Message: Com_amazonaws_dynamodb_GlobalTableAlreadyExistsException_message_FromDafny(dafnyOutput.Dtor_message().UnwrapOr(nil)), + } + }() + +} + +func GlobalTableNotFoundException_FromDafny(dafnyOutput ComAmazonawsDynamodbTypes.Error) types.GlobalTableNotFoundException { + return func() types.GlobalTableNotFoundException { + + return types.GlobalTableNotFoundException{ + Message: Com_amazonaws_dynamodb_GlobalTableNotFoundException_message_FromDafny(dafnyOutput.Dtor_message().UnwrapOr(nil)), + } + }() + +} + +func IdempotentParameterMismatchException_FromDafny(dafnyOutput ComAmazonawsDynamodbTypes.Error) types.IdempotentParameterMismatchException { + return func() types.IdempotentParameterMismatchException { + + return types.IdempotentParameterMismatchException{ + Message: Com_amazonaws_dynamodb_IdempotentParameterMismatchException_Message_FromDafny(dafnyOutput.Dtor_Message().UnwrapOr(nil)), + } + }() + +} + +func ImportConflictException_FromDafny(dafnyOutput ComAmazonawsDynamodbTypes.Error) types.ImportConflictException { + return func() types.ImportConflictException { + + return types.ImportConflictException{ + Message: Com_amazonaws_dynamodb_ImportConflictException_message_FromDafny(dafnyOutput.Dtor_message().UnwrapOr(nil)), + } + }() + +} + +func ImportNotFoundException_FromDafny(dafnyOutput ComAmazonawsDynamodbTypes.Error) types.ImportNotFoundException { + return func() types.ImportNotFoundException { + + return types.ImportNotFoundException{ + Message: Com_amazonaws_dynamodb_ImportNotFoundException_message_FromDafny(dafnyOutput.Dtor_message().UnwrapOr(nil)), + } + }() + +} + +func IndexNotFoundException_FromDafny(dafnyOutput ComAmazonawsDynamodbTypes.Error) types.IndexNotFoundException { + return func() types.IndexNotFoundException { + + return types.IndexNotFoundException{ + Message: Com_amazonaws_dynamodb_IndexNotFoundException_message_FromDafny(dafnyOutput.Dtor_message().UnwrapOr(nil)), + } + }() + +} + +func InternalServerError_FromDafny(dafnyOutput ComAmazonawsDynamodbTypes.Error) types.InternalServerError { + return func() types.InternalServerError { + + return types.InternalServerError{ + Message: Com_amazonaws_dynamodb_InternalServerError_message_FromDafny(dafnyOutput.Dtor_message().UnwrapOr(nil)), + } + }() + +} + +func InvalidEndpointException_FromDafny(dafnyOutput ComAmazonawsDynamodbTypes.Error) types.InvalidEndpointException { + return func() types.InvalidEndpointException { + + return types.InvalidEndpointException{ + Message: Com_amazonaws_dynamodb_InvalidEndpointException_Message_FromDafny(dafnyOutput.Dtor_Message().UnwrapOr(nil)), + } + }() + +} + +func InvalidExportTimeException_FromDafny(dafnyOutput ComAmazonawsDynamodbTypes.Error) types.InvalidExportTimeException { + return func() types.InvalidExportTimeException { + + return types.InvalidExportTimeException{ + Message: Com_amazonaws_dynamodb_InvalidExportTimeException_message_FromDafny(dafnyOutput.Dtor_message().UnwrapOr(nil)), + } + }() + +} + +func InvalidRestoreTimeException_FromDafny(dafnyOutput ComAmazonawsDynamodbTypes.Error) types.InvalidRestoreTimeException { + return func() types.InvalidRestoreTimeException { + + return types.InvalidRestoreTimeException{ + Message: Com_amazonaws_dynamodb_InvalidRestoreTimeException_message_FromDafny(dafnyOutput.Dtor_message().UnwrapOr(nil)), + } + }() + +} + +func ItemCollectionSizeLimitExceededException_FromDafny(dafnyOutput ComAmazonawsDynamodbTypes.Error) types.ItemCollectionSizeLimitExceededException { + return func() types.ItemCollectionSizeLimitExceededException { + + return types.ItemCollectionSizeLimitExceededException{ + Message: Com_amazonaws_dynamodb_ItemCollectionSizeLimitExceededException_message_FromDafny(dafnyOutput.Dtor_message().UnwrapOr(nil)), + } + }() + +} + +func LimitExceededException_FromDafny(dafnyOutput ComAmazonawsDynamodbTypes.Error) types.LimitExceededException { + return func() types.LimitExceededException { + + return types.LimitExceededException{ + Message: Com_amazonaws_dynamodb_LimitExceededException_message_FromDafny(dafnyOutput.Dtor_message().UnwrapOr(nil)), + } + }() + +} + +func PointInTimeRecoveryUnavailableException_FromDafny(dafnyOutput ComAmazonawsDynamodbTypes.Error) types.PointInTimeRecoveryUnavailableException { + return func() types.PointInTimeRecoveryUnavailableException { + + return types.PointInTimeRecoveryUnavailableException{ + Message: Com_amazonaws_dynamodb_PointInTimeRecoveryUnavailableException_message_FromDafny(dafnyOutput.Dtor_message().UnwrapOr(nil)), + } + }() + +} + +func PolicyNotFoundException_FromDafny(dafnyOutput ComAmazonawsDynamodbTypes.Error) types.PolicyNotFoundException { + return func() types.PolicyNotFoundException { + + return types.PolicyNotFoundException{ + Message: Com_amazonaws_dynamodb_PolicyNotFoundException_message_FromDafny(dafnyOutput.Dtor_message().UnwrapOr(nil)), + } + }() + +} + +func ProvisionedThroughputExceededException_FromDafny(dafnyOutput ComAmazonawsDynamodbTypes.Error) types.ProvisionedThroughputExceededException { + return func() types.ProvisionedThroughputExceededException { + + return types.ProvisionedThroughputExceededException{ + Message: Com_amazonaws_dynamodb_ProvisionedThroughputExceededException_message_FromDafny(dafnyOutput.Dtor_message().UnwrapOr(nil)), + } + }() + +} + +func ReplicaAlreadyExistsException_FromDafny(dafnyOutput ComAmazonawsDynamodbTypes.Error) types.ReplicaAlreadyExistsException { + return func() types.ReplicaAlreadyExistsException { + + return types.ReplicaAlreadyExistsException{ + Message: Com_amazonaws_dynamodb_ReplicaAlreadyExistsException_message_FromDafny(dafnyOutput.Dtor_message().UnwrapOr(nil)), + } + }() + +} + +func ReplicaNotFoundException_FromDafny(dafnyOutput ComAmazonawsDynamodbTypes.Error) types.ReplicaNotFoundException { + return func() types.ReplicaNotFoundException { + + return types.ReplicaNotFoundException{ + Message: Com_amazonaws_dynamodb_ReplicaNotFoundException_message_FromDafny(dafnyOutput.Dtor_message().UnwrapOr(nil)), + } + }() + +} + +func RequestLimitExceeded_FromDafny(dafnyOutput ComAmazonawsDynamodbTypes.Error) types.RequestLimitExceeded { + return func() types.RequestLimitExceeded { + + return types.RequestLimitExceeded{ + Message: Com_amazonaws_dynamodb_RequestLimitExceeded_message_FromDafny(dafnyOutput.Dtor_message().UnwrapOr(nil)), + } + }() + +} + +func ResourceInUseException_FromDafny(dafnyOutput ComAmazonawsDynamodbTypes.Error) types.ResourceInUseException { + return func() types.ResourceInUseException { + + return types.ResourceInUseException{ + Message: Com_amazonaws_dynamodb_ResourceInUseException_message_FromDafny(dafnyOutput.Dtor_message().UnwrapOr(nil)), + } + }() + +} + +func ResourceNotFoundException_FromDafny(dafnyOutput ComAmazonawsDynamodbTypes.Error) types.ResourceNotFoundException { + return func() types.ResourceNotFoundException { + + return types.ResourceNotFoundException{ + Message: Com_amazonaws_dynamodb_ResourceNotFoundException_message_FromDafny(dafnyOutput.Dtor_message().UnwrapOr(nil)), + } + }() + +} + +func TableAlreadyExistsException_FromDafny(dafnyOutput ComAmazonawsDynamodbTypes.Error) types.TableAlreadyExistsException { + return func() types.TableAlreadyExistsException { + + return types.TableAlreadyExistsException{ + Message: Com_amazonaws_dynamodb_TableAlreadyExistsException_message_FromDafny(dafnyOutput.Dtor_message().UnwrapOr(nil)), + } + }() + +} + +func TableInUseException_FromDafny(dafnyOutput ComAmazonawsDynamodbTypes.Error) types.TableInUseException { + return func() types.TableInUseException { + + return types.TableInUseException{ + Message: Com_amazonaws_dynamodb_TableInUseException_message_FromDafny(dafnyOutput.Dtor_message().UnwrapOr(nil)), + } + }() + +} + +func TableNotFoundException_FromDafny(dafnyOutput ComAmazonawsDynamodbTypes.Error) types.TableNotFoundException { + return func() types.TableNotFoundException { + + return types.TableNotFoundException{ + Message: Com_amazonaws_dynamodb_TableNotFoundException_message_FromDafny(dafnyOutput.Dtor_message().UnwrapOr(nil)), + } + }() + +} + +func TransactionCanceledException_FromDafny(dafnyOutput ComAmazonawsDynamodbTypes.Error) types.TransactionCanceledException { + return func() types.TransactionCanceledException { + + return types.TransactionCanceledException{ + Message: Com_amazonaws_dynamodb_TransactionCanceledException_Message_FromDafny(dafnyOutput.Dtor_Message().UnwrapOr(nil)), + CancellationReasons: Com_amazonaws_dynamodb_TransactionCanceledException_CancellationReasons_FromDafny(dafnyOutput.Dtor_CancellationReasons().UnwrapOr(nil)), + } + }() + +} + +func TransactionConflictException_FromDafny(dafnyOutput ComAmazonawsDynamodbTypes.Error) types.TransactionConflictException { + return func() types.TransactionConflictException { + + return types.TransactionConflictException{ + Message: Com_amazonaws_dynamodb_TransactionConflictException_message_FromDafny(dafnyOutput.Dtor_message().UnwrapOr(nil)), + } + }() + +} + +func TransactionInProgressException_FromDafny(dafnyOutput ComAmazonawsDynamodbTypes.Error) types.TransactionInProgressException { + return func() types.TransactionInProgressException { + + return types.TransactionInProgressException{ + Message: Com_amazonaws_dynamodb_TransactionInProgressException_Message_FromDafny(dafnyOutput.Dtor_Message().UnwrapOr(nil)), + } + }() + +} + +func OpaqueError_Output_FromDafny(dafnyOutput ComAmazonawsDynamodbTypes.Error) error { + responseSmithyOp, ok := dafnyOutput.Dtor_obj().(*smithy.OperationError) + if ok { + return responseSmithyOp + } + responseGenericErr, ok := dafnyOutput.Dtor_obj().(error) + if ok { + return responseGenericErr + } + panic("Invalid Error") +} + +func Error_FromDafny(err ComAmazonawsDynamodbTypes.Error) error { + // Service Errors + if err.Is_BackupInUseException() { + e := BackupInUseException_FromDafny(err) + return &e + } + + if err.Is_BackupNotFoundException() { + e := BackupNotFoundException_FromDafny(err) + return &e + } + + if err.Is_ConditionalCheckFailedException() { + e := ConditionalCheckFailedException_FromDafny(err) + return &e + } + + if err.Is_ContinuousBackupsUnavailableException() { + e := ContinuousBackupsUnavailableException_FromDafny(err) + return &e + } + + if err.Is_DuplicateItemException() { + e := DuplicateItemException_FromDafny(err) + return &e + } + + if err.Is_ExportConflictException() { + e := ExportConflictException_FromDafny(err) + return &e + } + + if err.Is_ExportNotFoundException() { + e := ExportNotFoundException_FromDafny(err) + return &e + } + + if err.Is_GlobalTableAlreadyExistsException() { + e := GlobalTableAlreadyExistsException_FromDafny(err) + return &e + } + + if err.Is_GlobalTableNotFoundException() { + e := GlobalTableNotFoundException_FromDafny(err) + return &e + } + + if err.Is_IdempotentParameterMismatchException() { + e := IdempotentParameterMismatchException_FromDafny(err) + return &e + } + + if err.Is_ImportConflictException() { + e := ImportConflictException_FromDafny(err) + return &e + } + + if err.Is_ImportNotFoundException() { + e := ImportNotFoundException_FromDafny(err) + return &e + } + + if err.Is_IndexNotFoundException() { + e := IndexNotFoundException_FromDafny(err) + return &e + } + + if err.Is_InternalServerError() { + e := InternalServerError_FromDafny(err) + return &e + } + + if err.Is_InvalidEndpointException() { + e := InvalidEndpointException_FromDafny(err) + return &e + } + + if err.Is_InvalidExportTimeException() { + e := InvalidExportTimeException_FromDafny(err) + return &e + } + + if err.Is_InvalidRestoreTimeException() { + e := InvalidRestoreTimeException_FromDafny(err) + return &e + } + + if err.Is_ItemCollectionSizeLimitExceededException() { + e := ItemCollectionSizeLimitExceededException_FromDafny(err) + return &e + } + + if err.Is_LimitExceededException() { + e := LimitExceededException_FromDafny(err) + return &e + } + + if err.Is_PointInTimeRecoveryUnavailableException() { + e := PointInTimeRecoveryUnavailableException_FromDafny(err) + return &e + } + + if err.Is_PolicyNotFoundException() { + e := PolicyNotFoundException_FromDafny(err) + return &e + } + + if err.Is_ProvisionedThroughputExceededException() { + e := ProvisionedThroughputExceededException_FromDafny(err) + return &e + } + + if err.Is_ReplicaAlreadyExistsException() { + e := ReplicaAlreadyExistsException_FromDafny(err) + return &e + } + + if err.Is_ReplicaNotFoundException() { + e := ReplicaNotFoundException_FromDafny(err) + return &e + } + + if err.Is_RequestLimitExceeded() { + e := RequestLimitExceeded_FromDafny(err) + return &e + } + + if err.Is_ResourceInUseException() { + e := ResourceInUseException_FromDafny(err) + return &e + } + + if err.Is_ResourceNotFoundException() { + e := ResourceNotFoundException_FromDafny(err) + return &e + } + + if err.Is_TableAlreadyExistsException() { + e := TableAlreadyExistsException_FromDafny(err) + return &e + } + + if err.Is_TableInUseException() { + e := TableInUseException_FromDafny(err) + return &e + } + + if err.Is_TableNotFoundException() { + e := TableNotFoundException_FromDafny(err) + return &e + } + + if err.Is_TransactionCanceledException() { + e := TransactionCanceledException_FromDafny(err) + return &e + } + + if err.Is_TransactionConflictException() { + e := TransactionConflictException_FromDafny(err) + return &e + } + + if err.Is_TransactionInProgressException() { + e := TransactionInProgressException_FromDafny(err) + return &e + } + + return OpaqueError_Output_FromDafny(err) +} + +func Com_amazonaws_dynamodb_BatchExecuteStatementInput_Statements_FromDafny(input interface{}) []types.BatchStatementRequest { + return func() []types.BatchStatementRequest { + var fieldValue []types.BatchStatementRequest + + for i := dafny.Iterate(input.(dafny.Sequence)); ; { + val, ok := i() + if !ok { + break + } + fieldValue = append(fieldValue, Com_amazonaws_dynamodb_PartiQLBatchRequest_member_FromDafny(val)) + } + return fieldValue + }() +} +func Com_amazonaws_dynamodb_PartiQLBatchRequest_member_FromDafny(input interface{}) types.BatchStatementRequest { + return func() types.BatchStatementRequest { + + return types.BatchStatementRequest{ + Statement: Com_amazonaws_dynamodb_BatchStatementRequest_Statement_FromDafny(input.(ComAmazonawsDynamodbTypes.BatchStatementRequest).Dtor_Statement()), + Parameters: Com_amazonaws_dynamodb_BatchStatementRequest_Parameters_FromDafny(input.(ComAmazonawsDynamodbTypes.BatchStatementRequest).Dtor_Parameters().UnwrapOr(nil)), + ConsistentRead: Com_amazonaws_dynamodb_BatchStatementRequest_ConsistentRead_FromDafny(input.(ComAmazonawsDynamodbTypes.BatchStatementRequest).Dtor_ConsistentRead().UnwrapOr(nil)), + ReturnValuesOnConditionCheckFailure: Com_amazonaws_dynamodb_BatchStatementRequest_ReturnValuesOnConditionCheckFailure_FromDafny(input.(ComAmazonawsDynamodbTypes.BatchStatementRequest).Dtor_ReturnValuesOnConditionCheckFailure().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_dynamodb_BatchStatementRequest_Statement_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 Com_amazonaws_dynamodb_BatchStatementRequest_Parameters_FromDafny(input interface{}) []types.AttributeValue { + return func() []types.AttributeValue { + var fieldValue []types.AttributeValue + if input == nil { + return nil + } + for i := dafny.Iterate(input.(dafny.Sequence).(dafny.Sequence)); ; { + val, ok := i() + if !ok { + break + } + fieldValue = append(fieldValue, Com_amazonaws_dynamodb_PreparedStatementParameters_member_FromDafny(val)) + } + return fieldValue + }() +} +func Com_amazonaws_dynamodb_PreparedStatementParameters_member_FromDafny(input interface{}) types.AttributeValue { + return func() types.AttributeValue { + var union types.AttributeValue + + if (input.(ComAmazonawsDynamodbTypes.AttributeValue)).Is_S() { + var dataSource = Wrappers.Companion_Option_.Create_Some_(input.(ComAmazonawsDynamodbTypes.AttributeValue).Dtor_S()) + union = &types.AttributeValueMemberS{ + Value: (Com_amazonaws_dynamodb_AttributeValue_S_FromDafny(dataSource.UnwrapOr(nil))), + } + } + if (input.(ComAmazonawsDynamodbTypes.AttributeValue)).Is_N() { + var dataSource = Wrappers.Companion_Option_.Create_Some_(input.(ComAmazonawsDynamodbTypes.AttributeValue).Dtor_N()) + union = &types.AttributeValueMemberN{ + Value: (Com_amazonaws_dynamodb_AttributeValue_N_FromDafny(dataSource.UnwrapOr(nil))), + } + } + if (input.(ComAmazonawsDynamodbTypes.AttributeValue)).Is_B() { + var dataSource = Wrappers.Companion_Option_.Create_Some_(input.(ComAmazonawsDynamodbTypes.AttributeValue).Dtor_B()) + union = &types.AttributeValueMemberB{ + Value: (Com_amazonaws_dynamodb_AttributeValue_B_FromDafny(dataSource.UnwrapOr(nil))), + } + } + if (input.(ComAmazonawsDynamodbTypes.AttributeValue)).Is_SS() { + var dataSource = Wrappers.Companion_Option_.Create_Some_(input.(ComAmazonawsDynamodbTypes.AttributeValue).Dtor_SS()) + union = &types.AttributeValueMemberSS{ + Value: (Com_amazonaws_dynamodb_AttributeValue_SS_FromDafny(dataSource.UnwrapOr(nil))), + } + } + if (input.(ComAmazonawsDynamodbTypes.AttributeValue)).Is_NS() { + var dataSource = Wrappers.Companion_Option_.Create_Some_(input.(ComAmazonawsDynamodbTypes.AttributeValue).Dtor_NS()) + union = &types.AttributeValueMemberNS{ + Value: (Com_amazonaws_dynamodb_AttributeValue_NS_FromDafny(dataSource.UnwrapOr(nil))), + } + } + if (input.(ComAmazonawsDynamodbTypes.AttributeValue)).Is_BS() { + var dataSource = Wrappers.Companion_Option_.Create_Some_(input.(ComAmazonawsDynamodbTypes.AttributeValue).Dtor_BS()) + union = &types.AttributeValueMemberBS{ + Value: (Com_amazonaws_dynamodb_AttributeValue_BS_FromDafny(dataSource.UnwrapOr(nil))), + } + } + if (input.(ComAmazonawsDynamodbTypes.AttributeValue)).Is_M() { + var dataSource = Wrappers.Companion_Option_.Create_Some_(input.(ComAmazonawsDynamodbTypes.AttributeValue).Dtor_M()) + union = &types.AttributeValueMemberM{ + Value: (Com_amazonaws_dynamodb_AttributeValue_M_FromDafny(dataSource.UnwrapOr(nil))), + } + } + if (input.(ComAmazonawsDynamodbTypes.AttributeValue)).Is_L() { + var dataSource = Wrappers.Companion_Option_.Create_Some_(input.(ComAmazonawsDynamodbTypes.AttributeValue).Dtor_L()) + union = &types.AttributeValueMemberL{ + Value: (Com_amazonaws_dynamodb_AttributeValue_L_FromDafny(dataSource.UnwrapOr(nil))), + } + } + if (input.(ComAmazonawsDynamodbTypes.AttributeValue)).Is_NULL() { + var dataSource = Wrappers.Companion_Option_.Create_Some_(input.(ComAmazonawsDynamodbTypes.AttributeValue).Dtor_NULL()) + union = &types.AttributeValueMemberNULL{ + Value: (Com_amazonaws_dynamodb_AttributeValue_NULL_FromDafny(dataSource.UnwrapOr(nil))), + } + } + if (input.(ComAmazonawsDynamodbTypes.AttributeValue)).Is_BOOL() { + var dataSource = Wrappers.Companion_Option_.Create_Some_(input.(ComAmazonawsDynamodbTypes.AttributeValue).Dtor_BOOL()) + union = &types.AttributeValueMemberBOOL{ + Value: (Com_amazonaws_dynamodb_AttributeValue_BOOL_FromDafny(dataSource.UnwrapOr(nil))), + } + } + + return union + }() +} +func Com_amazonaws_dynamodb_AttributeValue_S_FromDafny(input interface{}) string { + return func() string { + if input == nil { + return "" + } + a := UTF8.Encode(input.(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return s + }() +} +func Com_amazonaws_dynamodb_AttributeValue_N_FromDafny(input interface{}) string { + return func() string { + if input == nil { + return "" + } + a := UTF8.Encode(input.(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return s + }() +} +func Com_amazonaws_dynamodb_AttributeValue_B_FromDafny(input interface{}) []byte { + return func() []byte { + b := []byte{} + if input == nil { + return nil + } + for i := dafny.Iterate(input); ; { + val, ok := i() + if !ok { + return b + } else { + b = append(b, val.(byte)) + } + } + }() +} +func Com_amazonaws_dynamodb_AttributeValue_SS_FromDafny(input interface{}) []string { + return func() []string { + var fieldValue []string + if input == nil { + return nil + } + for i := dafny.Iterate(input.(dafny.Sequence)); ; { + val, ok := i() + if !ok { + break + } + fieldValue = append(fieldValue, Com_amazonaws_dynamodb_StringSetAttributeValue_member_FromDafny(val)) + } + return fieldValue + }() +} +func Com_amazonaws_dynamodb_StringSetAttributeValue_member_FromDafny(input interface{}) string { + return func() string { + + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return s + }() +} +func Com_amazonaws_dynamodb_AttributeValue_NS_FromDafny(input interface{}) []string { + return func() []string { + var fieldValue []string + if input == nil { + return nil + } + for i := dafny.Iterate(input.(dafny.Sequence)); ; { + val, ok := i() + if !ok { + break + } + fieldValue = append(fieldValue, Com_amazonaws_dynamodb_NumberSetAttributeValue_member_FromDafny(val)) + } + return fieldValue + }() +} +func Com_amazonaws_dynamodb_NumberSetAttributeValue_member_FromDafny(input interface{}) string { + return func() string { + + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return s + }() +} +func Com_amazonaws_dynamodb_AttributeValue_BS_FromDafny(input interface{}) [][]byte { + return func() [][]byte { + var fieldValue [][]byte + if input == nil { + return nil + } + for i := dafny.Iterate(input.(dafny.Sequence)); ; { + val, ok := i() + if !ok { + break + } + fieldValue = append(fieldValue, Com_amazonaws_dynamodb_BinarySetAttributeValue_member_FromDafny(val)) + } + return fieldValue + }() +} +func Com_amazonaws_dynamodb_BinarySetAttributeValue_member_FromDafny(input interface{}) []byte { + return func() []byte { + b := []byte{} + if input == nil { + return nil + } + for i := dafny.Iterate(input.(dafny.Sequence)); ; { + val, ok := i() + if !ok { + return b + } else { + b = append(b, val.(byte)) + } + } + }() +} +func Com_amazonaws_dynamodb_AttributeValue_M_FromDafny(input interface{}) map[string]types.AttributeValue { + return func() map[string]types.AttributeValue { + var m map[string]types.AttributeValue = make(map[string]types.AttributeValue) + if input == nil { + return nil + } + + for i := dafny.Iterate(input.(dafny.Map).Items()); ; { + val, ok := i() + if !ok { + break + } + m[Com_amazonaws_dynamodb_MapAttributeValue_key_FromDafny((*val.(dafny.Tuple).IndexInt(0)))] = Com_amazonaws_dynamodb_MapAttributeValue_value_FromDafny((*val.(dafny.Tuple).IndexInt(1))) + } + return m + }() +} +func Com_amazonaws_dynamodb_MapAttributeValue_key_FromDafny(input interface{}) string { + return func() string { + if input == nil { + return "" + } + a := UTF8.Encode(input.(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return s + }() +} +func Com_amazonaws_dynamodb_MapAttributeValue_value_FromDafny(input interface{}) types.AttributeValue { + return func() types.AttributeValue { + var union types.AttributeValue + + if (input.(ComAmazonawsDynamodbTypes.AttributeValue)).Is_S() { + var dataSource = Wrappers.Companion_Option_.Create_Some_(input.(ComAmazonawsDynamodbTypes.AttributeValue).Dtor_S()) + union = &types.AttributeValueMemberS{ + Value: (Com_amazonaws_dynamodb_AttributeValue_S_FromDafny(dataSource.UnwrapOr(nil))), + } + } + if (input.(ComAmazonawsDynamodbTypes.AttributeValue)).Is_N() { + var dataSource = Wrappers.Companion_Option_.Create_Some_(input.(ComAmazonawsDynamodbTypes.AttributeValue).Dtor_N()) + union = &types.AttributeValueMemberN{ + Value: (Com_amazonaws_dynamodb_AttributeValue_N_FromDafny(dataSource.UnwrapOr(nil))), + } + } + if (input.(ComAmazonawsDynamodbTypes.AttributeValue)).Is_B() { + var dataSource = Wrappers.Companion_Option_.Create_Some_(input.(ComAmazonawsDynamodbTypes.AttributeValue).Dtor_B()) + union = &types.AttributeValueMemberB{ + Value: (Com_amazonaws_dynamodb_AttributeValue_B_FromDafny(dataSource.UnwrapOr(nil))), + } + } + if (input.(ComAmazonawsDynamodbTypes.AttributeValue)).Is_SS() { + var dataSource = Wrappers.Companion_Option_.Create_Some_(input.(ComAmazonawsDynamodbTypes.AttributeValue).Dtor_SS()) + union = &types.AttributeValueMemberSS{ + Value: (Com_amazonaws_dynamodb_AttributeValue_SS_FromDafny(dataSource.UnwrapOr(nil))), + } + } + if (input.(ComAmazonawsDynamodbTypes.AttributeValue)).Is_NS() { + var dataSource = Wrappers.Companion_Option_.Create_Some_(input.(ComAmazonawsDynamodbTypes.AttributeValue).Dtor_NS()) + union = &types.AttributeValueMemberNS{ + Value: (Com_amazonaws_dynamodb_AttributeValue_NS_FromDafny(dataSource.UnwrapOr(nil))), + } + } + if (input.(ComAmazonawsDynamodbTypes.AttributeValue)).Is_BS() { + var dataSource = Wrappers.Companion_Option_.Create_Some_(input.(ComAmazonawsDynamodbTypes.AttributeValue).Dtor_BS()) + union = &types.AttributeValueMemberBS{ + Value: (Com_amazonaws_dynamodb_AttributeValue_BS_FromDafny(dataSource.UnwrapOr(nil))), + } + } + if (input.(ComAmazonawsDynamodbTypes.AttributeValue)).Is_M() { + var dataSource = Wrappers.Companion_Option_.Create_Some_(input.(ComAmazonawsDynamodbTypes.AttributeValue).Dtor_M()) + union = &types.AttributeValueMemberM{ + Value: (Com_amazonaws_dynamodb_AttributeValue_M_FromDafny(dataSource.UnwrapOr(nil))), + } + } + if (input.(ComAmazonawsDynamodbTypes.AttributeValue)).Is_L() { + var dataSource = Wrappers.Companion_Option_.Create_Some_(input.(ComAmazonawsDynamodbTypes.AttributeValue).Dtor_L()) + union = &types.AttributeValueMemberL{ + Value: (Com_amazonaws_dynamodb_AttributeValue_L_FromDafny(dataSource.UnwrapOr(nil))), + } + } + if (input.(ComAmazonawsDynamodbTypes.AttributeValue)).Is_NULL() { + var dataSource = Wrappers.Companion_Option_.Create_Some_(input.(ComAmazonawsDynamodbTypes.AttributeValue).Dtor_NULL()) + union = &types.AttributeValueMemberNULL{ + Value: (Com_amazonaws_dynamodb_AttributeValue_NULL_FromDafny(dataSource.UnwrapOr(nil))), + } + } + if (input.(ComAmazonawsDynamodbTypes.AttributeValue)).Is_BOOL() { + var dataSource = Wrappers.Companion_Option_.Create_Some_(input.(ComAmazonawsDynamodbTypes.AttributeValue).Dtor_BOOL()) + union = &types.AttributeValueMemberBOOL{ + Value: (Com_amazonaws_dynamodb_AttributeValue_BOOL_FromDafny(dataSource.UnwrapOr(nil))), + } + } + + return union + }() +} +func Com_amazonaws_dynamodb_AttributeValue_L_FromDafny(input interface{}) []types.AttributeValue { + return func() []types.AttributeValue { + var fieldValue []types.AttributeValue + if input == nil { + return nil + } + for i := dafny.Iterate(input.(dafny.Sequence)); ; { + val, ok := i() + if !ok { + break + } + fieldValue = append(fieldValue, Com_amazonaws_dynamodb_ListAttributeValue_member_FromDafny(val)) + } + return fieldValue + }() +} +func Com_amazonaws_dynamodb_ListAttributeValue_member_FromDafny(input interface{}) types.AttributeValue { + return func() types.AttributeValue { + var union types.AttributeValue + + if (input.(ComAmazonawsDynamodbTypes.AttributeValue)).Is_S() { + var dataSource = Wrappers.Companion_Option_.Create_Some_(input.(ComAmazonawsDynamodbTypes.AttributeValue).Dtor_S()) + union = &types.AttributeValueMemberS{ + Value: (Com_amazonaws_dynamodb_AttributeValue_S_FromDafny(dataSource.UnwrapOr(nil))), + } + } + if (input.(ComAmazonawsDynamodbTypes.AttributeValue)).Is_N() { + var dataSource = Wrappers.Companion_Option_.Create_Some_(input.(ComAmazonawsDynamodbTypes.AttributeValue).Dtor_N()) + union = &types.AttributeValueMemberN{ + Value: (Com_amazonaws_dynamodb_AttributeValue_N_FromDafny(dataSource.UnwrapOr(nil))), + } + } + if (input.(ComAmazonawsDynamodbTypes.AttributeValue)).Is_B() { + var dataSource = Wrappers.Companion_Option_.Create_Some_(input.(ComAmazonawsDynamodbTypes.AttributeValue).Dtor_B()) + union = &types.AttributeValueMemberB{ + Value: (Com_amazonaws_dynamodb_AttributeValue_B_FromDafny(dataSource.UnwrapOr(nil))), + } + } + if (input.(ComAmazonawsDynamodbTypes.AttributeValue)).Is_SS() { + var dataSource = Wrappers.Companion_Option_.Create_Some_(input.(ComAmazonawsDynamodbTypes.AttributeValue).Dtor_SS()) + union = &types.AttributeValueMemberSS{ + Value: (Com_amazonaws_dynamodb_AttributeValue_SS_FromDafny(dataSource.UnwrapOr(nil))), + } + } + if (input.(ComAmazonawsDynamodbTypes.AttributeValue)).Is_NS() { + var dataSource = Wrappers.Companion_Option_.Create_Some_(input.(ComAmazonawsDynamodbTypes.AttributeValue).Dtor_NS()) + union = &types.AttributeValueMemberNS{ + Value: (Com_amazonaws_dynamodb_AttributeValue_NS_FromDafny(dataSource.UnwrapOr(nil))), + } + } + if (input.(ComAmazonawsDynamodbTypes.AttributeValue)).Is_BS() { + var dataSource = Wrappers.Companion_Option_.Create_Some_(input.(ComAmazonawsDynamodbTypes.AttributeValue).Dtor_BS()) + union = &types.AttributeValueMemberBS{ + Value: (Com_amazonaws_dynamodb_AttributeValue_BS_FromDafny(dataSource.UnwrapOr(nil))), + } + } + if (input.(ComAmazonawsDynamodbTypes.AttributeValue)).Is_M() { + var dataSource = Wrappers.Companion_Option_.Create_Some_(input.(ComAmazonawsDynamodbTypes.AttributeValue).Dtor_M()) + union = &types.AttributeValueMemberM{ + Value: (Com_amazonaws_dynamodb_AttributeValue_M_FromDafny(dataSource.UnwrapOr(nil))), + } + } + if (input.(ComAmazonawsDynamodbTypes.AttributeValue)).Is_L() { + var dataSource = Wrappers.Companion_Option_.Create_Some_(input.(ComAmazonawsDynamodbTypes.AttributeValue).Dtor_L()) + union = &types.AttributeValueMemberL{ + Value: (Com_amazonaws_dynamodb_AttributeValue_L_FromDafny(dataSource.UnwrapOr(nil))), + } + } + if (input.(ComAmazonawsDynamodbTypes.AttributeValue)).Is_NULL() { + var dataSource = Wrappers.Companion_Option_.Create_Some_(input.(ComAmazonawsDynamodbTypes.AttributeValue).Dtor_NULL()) + union = &types.AttributeValueMemberNULL{ + Value: (Com_amazonaws_dynamodb_AttributeValue_NULL_FromDafny(dataSource.UnwrapOr(nil))), + } + } + if (input.(ComAmazonawsDynamodbTypes.AttributeValue)).Is_BOOL() { + var dataSource = Wrappers.Companion_Option_.Create_Some_(input.(ComAmazonawsDynamodbTypes.AttributeValue).Dtor_BOOL()) + union = &types.AttributeValueMemberBOOL{ + Value: (Com_amazonaws_dynamodb_AttributeValue_BOOL_FromDafny(dataSource.UnwrapOr(nil))), + } + } + + return union + }() +} +func Com_amazonaws_dynamodb_AttributeValue_NULL_FromDafny(input interface{}) bool { + return func() bool { + var b bool + if input == nil { + return b + } + b = input.(bool) + return b + }() +} +func Com_amazonaws_dynamodb_AttributeValue_BOOL_FromDafny(input interface{}) bool { + return func() bool { + var b bool + if input == nil { + return b + } + b = input.(bool) + return b + }() +} +func Com_amazonaws_dynamodb_BatchStatementRequest_ConsistentRead_FromDafny(input interface{}) *bool { + return func() *bool { + var b bool + if input == nil { + return nil + } + b = input.(bool) + return &b + }() +} +func Com_amazonaws_dynamodb_BatchStatementRequest_ReturnValuesOnConditionCheckFailure_FromDafny(input interface{}) types.ReturnValuesOnConditionCheckFailure { + return func() types.ReturnValuesOnConditionCheckFailure { + var u types.ReturnValuesOnConditionCheckFailure + if input == nil { + return u + } + + inputEnum := input.(ComAmazonawsDynamodbTypes.ReturnValuesOnConditionCheckFailure) + index := -1 + for allEnums := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_ReturnValuesOnConditionCheckFailure_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(ComAmazonawsDynamodbTypes.ReturnValuesOnConditionCheckFailure).Equals(inputEnum) { + break + } + } + } + return u.Values()[index] + }() +} +func Com_amazonaws_dynamodb_BatchExecuteStatementInput_ReturnConsumedCapacity_FromDafny(input interface{}) types.ReturnConsumedCapacity { + return func() types.ReturnConsumedCapacity { + var u types.ReturnConsumedCapacity + if input == nil { + return u + } + + inputEnum := input.(ComAmazonawsDynamodbTypes.ReturnConsumedCapacity) + index := -1 + for allEnums := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_ReturnConsumedCapacity_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(ComAmazonawsDynamodbTypes.ReturnConsumedCapacity).Equals(inputEnum) { + break + } + } + } + return u.Values()[index] + }() +} +func Com_amazonaws_dynamodb_BatchExecuteStatementOutput_Responses_FromDafny(input interface{}) []types.BatchStatementResponse { + return func() []types.BatchStatementResponse { + var fieldValue []types.BatchStatementResponse + if input == nil { + return nil + } + for i := dafny.Iterate(input.(dafny.Sequence).(dafny.Sequence)); ; { + val, ok := i() + if !ok { + break + } + fieldValue = append(fieldValue, Com_amazonaws_dynamodb_PartiQLBatchResponse_member_FromDafny(val)) + } + return fieldValue + }() +} +func Com_amazonaws_dynamodb_PartiQLBatchResponse_member_FromDafny(input interface{}) types.BatchStatementResponse { + return func() types.BatchStatementResponse { + + return types.BatchStatementResponse{ + Error: Com_amazonaws_dynamodb_BatchStatementResponse_Error_FromDafny(input.(ComAmazonawsDynamodbTypes.BatchStatementResponse).Dtor_Error().UnwrapOr(nil)), + TableName: Com_amazonaws_dynamodb_BatchStatementResponse_TableName_FromDafny(input.(ComAmazonawsDynamodbTypes.BatchStatementResponse).Dtor_TableName().UnwrapOr(nil)), + Item: Com_amazonaws_dynamodb_BatchStatementResponse_Item_FromDafny(input.(ComAmazonawsDynamodbTypes.BatchStatementResponse).Dtor_Item().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_dynamodb_BatchStatementResponse_Error_FromDafny(input interface{}) *types.BatchStatementError { + return func() *types.BatchStatementError { + if input == nil { + return nil + } + return &types.BatchStatementError{ + Code: Com_amazonaws_dynamodb_BatchStatementError_Code_FromDafny(input.(ComAmazonawsDynamodbTypes.BatchStatementError).Dtor_Code().UnwrapOr(nil)), + Message: Com_amazonaws_dynamodb_BatchStatementError_Message_FromDafny(input.(ComAmazonawsDynamodbTypes.BatchStatementError).Dtor_Message().UnwrapOr(nil)), + Item: Com_amazonaws_dynamodb_BatchStatementError_Item_FromDafny(input.(ComAmazonawsDynamodbTypes.BatchStatementError).Dtor_Item().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_dynamodb_BatchStatementError_Code_FromDafny(input interface{}) types.BatchStatementErrorCodeEnum { + return func() types.BatchStatementErrorCodeEnum { + var u types.BatchStatementErrorCodeEnum + if input == nil { + return u + } + + inputEnum := input.(ComAmazonawsDynamodbTypes.BatchStatementErrorCodeEnum) + index := -1 + for allEnums := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_BatchStatementErrorCodeEnum_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(ComAmazonawsDynamodbTypes.BatchStatementErrorCodeEnum).Equals(inputEnum) { + break + } + } + } + return u.Values()[index] + }() +} +func Com_amazonaws_dynamodb_BatchStatementError_Message_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_BatchStatementError_Item_FromDafny(input interface{}) map[string]types.AttributeValue { + return func() map[string]types.AttributeValue { + var m map[string]types.AttributeValue = make(map[string]types.AttributeValue) + if input == nil { + return nil + } + + for i := dafny.Iterate(input.(dafny.Map).Items()); ; { + val, ok := i() + if !ok { + break + } + m[Com_amazonaws_dynamodb_AttributeMap_key_FromDafny((*val.(dafny.Tuple).IndexInt(0)))] = Com_amazonaws_dynamodb_AttributeMap_value_FromDafny((*val.(dafny.Tuple).IndexInt(1))) + } + return m + }() +} +func Com_amazonaws_dynamodb_AttributeMap_key_FromDafny(input interface{}) string { + return func() string { + if input == nil { + return "" + } + a := UTF8.Encode(input.(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return s + }() +} +func Com_amazonaws_dynamodb_AttributeMap_value_FromDafny(input interface{}) types.AttributeValue { + return func() types.AttributeValue { + var union types.AttributeValue + + if (input.(ComAmazonawsDynamodbTypes.AttributeValue)).Is_S() { + var dataSource = Wrappers.Companion_Option_.Create_Some_(input.(ComAmazonawsDynamodbTypes.AttributeValue).Dtor_S()) + union = &types.AttributeValueMemberS{ + Value: (Com_amazonaws_dynamodb_AttributeValue_S_FromDafny(dataSource.UnwrapOr(nil))), + } + } + if (input.(ComAmazonawsDynamodbTypes.AttributeValue)).Is_N() { + var dataSource = Wrappers.Companion_Option_.Create_Some_(input.(ComAmazonawsDynamodbTypes.AttributeValue).Dtor_N()) + union = &types.AttributeValueMemberN{ + Value: (Com_amazonaws_dynamodb_AttributeValue_N_FromDafny(dataSource.UnwrapOr(nil))), + } + } + if (input.(ComAmazonawsDynamodbTypes.AttributeValue)).Is_B() { + var dataSource = Wrappers.Companion_Option_.Create_Some_(input.(ComAmazonawsDynamodbTypes.AttributeValue).Dtor_B()) + union = &types.AttributeValueMemberB{ + Value: (Com_amazonaws_dynamodb_AttributeValue_B_FromDafny(dataSource.UnwrapOr(nil))), + } + } + if (input.(ComAmazonawsDynamodbTypes.AttributeValue)).Is_SS() { + var dataSource = Wrappers.Companion_Option_.Create_Some_(input.(ComAmazonawsDynamodbTypes.AttributeValue).Dtor_SS()) + union = &types.AttributeValueMemberSS{ + Value: (Com_amazonaws_dynamodb_AttributeValue_SS_FromDafny(dataSource.UnwrapOr(nil))), + } + } + if (input.(ComAmazonawsDynamodbTypes.AttributeValue)).Is_NS() { + var dataSource = Wrappers.Companion_Option_.Create_Some_(input.(ComAmazonawsDynamodbTypes.AttributeValue).Dtor_NS()) + union = &types.AttributeValueMemberNS{ + Value: (Com_amazonaws_dynamodb_AttributeValue_NS_FromDafny(dataSource.UnwrapOr(nil))), + } + } + if (input.(ComAmazonawsDynamodbTypes.AttributeValue)).Is_BS() { + var dataSource = Wrappers.Companion_Option_.Create_Some_(input.(ComAmazonawsDynamodbTypes.AttributeValue).Dtor_BS()) + union = &types.AttributeValueMemberBS{ + Value: (Com_amazonaws_dynamodb_AttributeValue_BS_FromDafny(dataSource.UnwrapOr(nil))), + } + } + if (input.(ComAmazonawsDynamodbTypes.AttributeValue)).Is_M() { + var dataSource = Wrappers.Companion_Option_.Create_Some_(input.(ComAmazonawsDynamodbTypes.AttributeValue).Dtor_M()) + union = &types.AttributeValueMemberM{ + Value: (Com_amazonaws_dynamodb_AttributeValue_M_FromDafny(dataSource.UnwrapOr(nil))), + } + } + if (input.(ComAmazonawsDynamodbTypes.AttributeValue)).Is_L() { + var dataSource = Wrappers.Companion_Option_.Create_Some_(input.(ComAmazonawsDynamodbTypes.AttributeValue).Dtor_L()) + union = &types.AttributeValueMemberL{ + Value: (Com_amazonaws_dynamodb_AttributeValue_L_FromDafny(dataSource.UnwrapOr(nil))), + } + } + if (input.(ComAmazonawsDynamodbTypes.AttributeValue)).Is_NULL() { + var dataSource = Wrappers.Companion_Option_.Create_Some_(input.(ComAmazonawsDynamodbTypes.AttributeValue).Dtor_NULL()) + union = &types.AttributeValueMemberNULL{ + Value: (Com_amazonaws_dynamodb_AttributeValue_NULL_FromDafny(dataSource.UnwrapOr(nil))), + } + } + if (input.(ComAmazonawsDynamodbTypes.AttributeValue)).Is_BOOL() { + var dataSource = Wrappers.Companion_Option_.Create_Some_(input.(ComAmazonawsDynamodbTypes.AttributeValue).Dtor_BOOL()) + union = &types.AttributeValueMemberBOOL{ + Value: (Com_amazonaws_dynamodb_AttributeValue_BOOL_FromDafny(dataSource.UnwrapOr(nil))), + } + } + + return union + }() +} +func Com_amazonaws_dynamodb_BatchStatementResponse_TableName_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_BatchStatementResponse_Item_FromDafny(input interface{}) map[string]types.AttributeValue { + return func() map[string]types.AttributeValue { + var m map[string]types.AttributeValue = make(map[string]types.AttributeValue) + if input == nil { + return nil + } + + for i := dafny.Iterate(input.(dafny.Map).Items()); ; { + val, ok := i() + if !ok { + break + } + m[Com_amazonaws_dynamodb_AttributeMap_key_FromDafny((*val.(dafny.Tuple).IndexInt(0)))] = Com_amazonaws_dynamodb_AttributeMap_value_FromDafny((*val.(dafny.Tuple).IndexInt(1))) + } + return m + }() +} +func Com_amazonaws_dynamodb_BatchExecuteStatementOutput_ConsumedCapacity_FromDafny(input interface{}) []types.ConsumedCapacity { + return func() []types.ConsumedCapacity { + var fieldValue []types.ConsumedCapacity + if input == nil { + return nil + } + for i := dafny.Iterate(input.(dafny.Sequence).(dafny.Sequence)); ; { + val, ok := i() + if !ok { + break + } + fieldValue = append(fieldValue, Com_amazonaws_dynamodb_ConsumedCapacityMultiple_member_FromDafny(val)) + } + return fieldValue + }() +} +func Com_amazonaws_dynamodb_ConsumedCapacityMultiple_member_FromDafny(input interface{}) types.ConsumedCapacity { + return func() types.ConsumedCapacity { + + return types.ConsumedCapacity{ + TableName: Com_amazonaws_dynamodb_ConsumedCapacity_TableName_FromDafny(input.(ComAmazonawsDynamodbTypes.ConsumedCapacity).Dtor_TableName().UnwrapOr(nil)), + CapacityUnits: Com_amazonaws_dynamodb_ConsumedCapacity_CapacityUnits_FromDafny(input.(ComAmazonawsDynamodbTypes.ConsumedCapacity).Dtor_CapacityUnits().UnwrapOr(nil)), + ReadCapacityUnits: Com_amazonaws_dynamodb_ConsumedCapacity_ReadCapacityUnits_FromDafny(input.(ComAmazonawsDynamodbTypes.ConsumedCapacity).Dtor_ReadCapacityUnits().UnwrapOr(nil)), + WriteCapacityUnits: Com_amazonaws_dynamodb_ConsumedCapacity_WriteCapacityUnits_FromDafny(input.(ComAmazonawsDynamodbTypes.ConsumedCapacity).Dtor_WriteCapacityUnits().UnwrapOr(nil)), + Table: Com_amazonaws_dynamodb_ConsumedCapacity_Table_FromDafny(input.(ComAmazonawsDynamodbTypes.ConsumedCapacity).Dtor_Table().UnwrapOr(nil)), + LocalSecondaryIndexes: Com_amazonaws_dynamodb_ConsumedCapacity_LocalSecondaryIndexes_FromDafny(input.(ComAmazonawsDynamodbTypes.ConsumedCapacity).Dtor_LocalSecondaryIndexes().UnwrapOr(nil)), + GlobalSecondaryIndexes: Com_amazonaws_dynamodb_ConsumedCapacity_GlobalSecondaryIndexes_FromDafny(input.(ComAmazonawsDynamodbTypes.ConsumedCapacity).Dtor_GlobalSecondaryIndexes().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_dynamodb_ConsumedCapacity_TableName_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_ConsumedCapacity_CapacityUnits_FromDafny(input interface{}) *float64 { + return func() *float64 { + var b []byte + if input == nil { + return nil + } + for i := dafny.Iterate(input.(dafny.Sequence)); ; { + val, ok := i() + if !ok { + return &[]float64{math.Float64frombits(binary.LittleEndian.Uint64(b))}[0] + } else { + b = append(b, val.(byte)) + } + } + }() +} +func Com_amazonaws_dynamodb_ConsumedCapacity_ReadCapacityUnits_FromDafny(input interface{}) *float64 { + return func() *float64 { + var b []byte + if input == nil { + return nil + } + for i := dafny.Iterate(input.(dafny.Sequence)); ; { + val, ok := i() + if !ok { + return &[]float64{math.Float64frombits(binary.LittleEndian.Uint64(b))}[0] + } else { + b = append(b, val.(byte)) + } + } + }() +} +func Com_amazonaws_dynamodb_ConsumedCapacity_WriteCapacityUnits_FromDafny(input interface{}) *float64 { + return func() *float64 { + var b []byte + if input == nil { + return nil + } + for i := dafny.Iterate(input.(dafny.Sequence)); ; { + val, ok := i() + if !ok { + return &[]float64{math.Float64frombits(binary.LittleEndian.Uint64(b))}[0] + } else { + b = append(b, val.(byte)) + } + } + }() +} +func Com_amazonaws_dynamodb_ConsumedCapacity_Table_FromDafny(input interface{}) *types.Capacity { + return func() *types.Capacity { + if input == nil { + return nil + } + return &types.Capacity{ + ReadCapacityUnits: Com_amazonaws_dynamodb_Capacity_ReadCapacityUnits_FromDafny(input.(ComAmazonawsDynamodbTypes.Capacity).Dtor_ReadCapacityUnits().UnwrapOr(nil)), + WriteCapacityUnits: Com_amazonaws_dynamodb_Capacity_WriteCapacityUnits_FromDafny(input.(ComAmazonawsDynamodbTypes.Capacity).Dtor_WriteCapacityUnits().UnwrapOr(nil)), + CapacityUnits: Com_amazonaws_dynamodb_Capacity_CapacityUnits_FromDafny(input.(ComAmazonawsDynamodbTypes.Capacity).Dtor_CapacityUnits().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_dynamodb_Capacity_ReadCapacityUnits_FromDafny(input interface{}) *float64 { + return func() *float64 { + var b []byte + if input == nil { + return nil + } + for i := dafny.Iterate(input.(dafny.Sequence)); ; { + val, ok := i() + if !ok { + return &[]float64{math.Float64frombits(binary.LittleEndian.Uint64(b))}[0] + } else { + b = append(b, val.(byte)) + } + } + }() +} +func Com_amazonaws_dynamodb_Capacity_WriteCapacityUnits_FromDafny(input interface{}) *float64 { + return func() *float64 { + var b []byte + if input == nil { + return nil + } + for i := dafny.Iterate(input.(dafny.Sequence)); ; { + val, ok := i() + if !ok { + return &[]float64{math.Float64frombits(binary.LittleEndian.Uint64(b))}[0] + } else { + b = append(b, val.(byte)) + } + } + }() +} +func Com_amazonaws_dynamodb_Capacity_CapacityUnits_FromDafny(input interface{}) *float64 { + return func() *float64 { + var b []byte + if input == nil { + return nil + } + for i := dafny.Iterate(input.(dafny.Sequence)); ; { + val, ok := i() + if !ok { + return &[]float64{math.Float64frombits(binary.LittleEndian.Uint64(b))}[0] + } else { + b = append(b, val.(byte)) + } + } + }() +} +func Com_amazonaws_dynamodb_ConsumedCapacity_LocalSecondaryIndexes_FromDafny(input interface{}) map[string]types.Capacity { + return func() map[string]types.Capacity { + var m map[string]types.Capacity = make(map[string]types.Capacity) + if input == nil { + return nil + } + + for i := dafny.Iterate(input.(dafny.Map).Items()); ; { + val, ok := i() + if !ok { + break + } + m[Com_amazonaws_dynamodb_SecondaryIndexesCapacityMap_key_FromDafny((*val.(dafny.Tuple).IndexInt(0)))] = Com_amazonaws_dynamodb_SecondaryIndexesCapacityMap_value_FromDafny((*val.(dafny.Tuple).IndexInt(1))) + } + return m + }() +} +func Com_amazonaws_dynamodb_SecondaryIndexesCapacityMap_key_FromDafny(input interface{}) string { + return func() string { + if input == nil { + return "" + } + a := UTF8.Encode(input.(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return s + }() +} +func Com_amazonaws_dynamodb_SecondaryIndexesCapacityMap_value_FromDafny(input interface{}) types.Capacity { + return func() types.Capacity { + + return types.Capacity{ + ReadCapacityUnits: Com_amazonaws_dynamodb_Capacity_ReadCapacityUnits_FromDafny(input.(ComAmazonawsDynamodbTypes.Capacity).Dtor_ReadCapacityUnits().UnwrapOr(nil)), + WriteCapacityUnits: Com_amazonaws_dynamodb_Capacity_WriteCapacityUnits_FromDafny(input.(ComAmazonawsDynamodbTypes.Capacity).Dtor_WriteCapacityUnits().UnwrapOr(nil)), + CapacityUnits: Com_amazonaws_dynamodb_Capacity_CapacityUnits_FromDafny(input.(ComAmazonawsDynamodbTypes.Capacity).Dtor_CapacityUnits().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_dynamodb_ConsumedCapacity_GlobalSecondaryIndexes_FromDafny(input interface{}) map[string]types.Capacity { + return func() map[string]types.Capacity { + var m map[string]types.Capacity = make(map[string]types.Capacity) + if input == nil { + return nil + } + + for i := dafny.Iterate(input.(dafny.Map).Items()); ; { + val, ok := i() + if !ok { + break + } + m[Com_amazonaws_dynamodb_SecondaryIndexesCapacityMap_key_FromDafny((*val.(dafny.Tuple).IndexInt(0)))] = Com_amazonaws_dynamodb_SecondaryIndexesCapacityMap_value_FromDafny((*val.(dafny.Tuple).IndexInt(1))) + } + return m + }() +} +func Com_amazonaws_dynamodb_BatchGetItemInput_RequestItems_FromDafny(input interface{}) map[string]types.KeysAndAttributes { + return func() map[string]types.KeysAndAttributes { + var m map[string]types.KeysAndAttributes = make(map[string]types.KeysAndAttributes) + + for i := dafny.Iterate(input.(dafny.Map).Items()); ; { + val, ok := i() + if !ok { + break + } + m[Com_amazonaws_dynamodb_BatchGetRequestMap_key_FromDafny((*val.(dafny.Tuple).IndexInt(0)))] = Com_amazonaws_dynamodb_BatchGetRequestMap_value_FromDafny((*val.(dafny.Tuple).IndexInt(1))) + } + return m + }() +} +func Com_amazonaws_dynamodb_BatchGetRequestMap_key_FromDafny(input interface{}) string { + return func() string { + if input == nil { + return "" + } + a := UTF8.Encode(input.(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return s + }() +} +func Com_amazonaws_dynamodb_BatchGetRequestMap_value_FromDafny(input interface{}) types.KeysAndAttributes { + return func() types.KeysAndAttributes { + + return types.KeysAndAttributes{ + Keys: Com_amazonaws_dynamodb_KeysAndAttributes_Keys_FromDafny(input.(ComAmazonawsDynamodbTypes.KeysAndAttributes).Dtor_Keys()), + AttributesToGet: Com_amazonaws_dynamodb_KeysAndAttributes_AttributesToGet_FromDafny(input.(ComAmazonawsDynamodbTypes.KeysAndAttributes).Dtor_AttributesToGet().UnwrapOr(nil)), + ConsistentRead: Com_amazonaws_dynamodb_KeysAndAttributes_ConsistentRead_FromDafny(input.(ComAmazonawsDynamodbTypes.KeysAndAttributes).Dtor_ConsistentRead().UnwrapOr(nil)), + ProjectionExpression: Com_amazonaws_dynamodb_KeysAndAttributes_ProjectionExpression_FromDafny(input.(ComAmazonawsDynamodbTypes.KeysAndAttributes).Dtor_ProjectionExpression().UnwrapOr(nil)), + ExpressionAttributeNames: Com_amazonaws_dynamodb_KeysAndAttributes_ExpressionAttributeNames_FromDafny(input.(ComAmazonawsDynamodbTypes.KeysAndAttributes).Dtor_ExpressionAttributeNames().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_dynamodb_KeysAndAttributes_Keys_FromDafny(input interface{}) []map[string]types.AttributeValue { + return func() []map[string]types.AttributeValue { + var fieldValue []map[string]types.AttributeValue + + for i := dafny.Iterate(input.(dafny.Sequence)); ; { + val, ok := i() + if !ok { + break + } + fieldValue = append(fieldValue, Com_amazonaws_dynamodb_KeyList_member_FromDafny(val)) + } + return fieldValue + }() +} +func Com_amazonaws_dynamodb_KeyList_member_FromDafny(input interface{}) map[string]types.AttributeValue { + return func() map[string]types.AttributeValue { + var m map[string]types.AttributeValue = make(map[string]types.AttributeValue) + + for i := dafny.Iterate(input.(dafny.Map).Items()); ; { + val, ok := i() + if !ok { + break + } + m[Com_amazonaws_dynamodb_Key_key_FromDafny((*val.(dafny.Tuple).IndexInt(0)))] = Com_amazonaws_dynamodb_Key_value_FromDafny((*val.(dafny.Tuple).IndexInt(1))) + } + return m + }() +} +func Com_amazonaws_dynamodb_Key_key_FromDafny(input interface{}) string { + return func() string { + if input == nil { + return "" + } + a := UTF8.Encode(input.(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return s + }() +} +func Com_amazonaws_dynamodb_Key_value_FromDafny(input interface{}) types.AttributeValue { + return func() types.AttributeValue { + var union types.AttributeValue + + if (input.(ComAmazonawsDynamodbTypes.AttributeValue)).Is_S() { + var dataSource = Wrappers.Companion_Option_.Create_Some_(input.(ComAmazonawsDynamodbTypes.AttributeValue).Dtor_S()) + union = &types.AttributeValueMemberS{ + Value: (Com_amazonaws_dynamodb_AttributeValue_S_FromDafny(dataSource.UnwrapOr(nil))), + } + } + if (input.(ComAmazonawsDynamodbTypes.AttributeValue)).Is_N() { + var dataSource = Wrappers.Companion_Option_.Create_Some_(input.(ComAmazonawsDynamodbTypes.AttributeValue).Dtor_N()) + union = &types.AttributeValueMemberN{ + Value: (Com_amazonaws_dynamodb_AttributeValue_N_FromDafny(dataSource.UnwrapOr(nil))), + } + } + if (input.(ComAmazonawsDynamodbTypes.AttributeValue)).Is_B() { + var dataSource = Wrappers.Companion_Option_.Create_Some_(input.(ComAmazonawsDynamodbTypes.AttributeValue).Dtor_B()) + union = &types.AttributeValueMemberB{ + Value: (Com_amazonaws_dynamodb_AttributeValue_B_FromDafny(dataSource.UnwrapOr(nil))), + } + } + if (input.(ComAmazonawsDynamodbTypes.AttributeValue)).Is_SS() { + var dataSource = Wrappers.Companion_Option_.Create_Some_(input.(ComAmazonawsDynamodbTypes.AttributeValue).Dtor_SS()) + union = &types.AttributeValueMemberSS{ + Value: (Com_amazonaws_dynamodb_AttributeValue_SS_FromDafny(dataSource.UnwrapOr(nil))), + } + } + if (input.(ComAmazonawsDynamodbTypes.AttributeValue)).Is_NS() { + var dataSource = Wrappers.Companion_Option_.Create_Some_(input.(ComAmazonawsDynamodbTypes.AttributeValue).Dtor_NS()) + union = &types.AttributeValueMemberNS{ + Value: (Com_amazonaws_dynamodb_AttributeValue_NS_FromDafny(dataSource.UnwrapOr(nil))), + } + } + if (input.(ComAmazonawsDynamodbTypes.AttributeValue)).Is_BS() { + var dataSource = Wrappers.Companion_Option_.Create_Some_(input.(ComAmazonawsDynamodbTypes.AttributeValue).Dtor_BS()) + union = &types.AttributeValueMemberBS{ + Value: (Com_amazonaws_dynamodb_AttributeValue_BS_FromDafny(dataSource.UnwrapOr(nil))), + } + } + if (input.(ComAmazonawsDynamodbTypes.AttributeValue)).Is_M() { + var dataSource = Wrappers.Companion_Option_.Create_Some_(input.(ComAmazonawsDynamodbTypes.AttributeValue).Dtor_M()) + union = &types.AttributeValueMemberM{ + Value: (Com_amazonaws_dynamodb_AttributeValue_M_FromDafny(dataSource.UnwrapOr(nil))), + } + } + if (input.(ComAmazonawsDynamodbTypes.AttributeValue)).Is_L() { + var dataSource = Wrappers.Companion_Option_.Create_Some_(input.(ComAmazonawsDynamodbTypes.AttributeValue).Dtor_L()) + union = &types.AttributeValueMemberL{ + Value: (Com_amazonaws_dynamodb_AttributeValue_L_FromDafny(dataSource.UnwrapOr(nil))), + } + } + if (input.(ComAmazonawsDynamodbTypes.AttributeValue)).Is_NULL() { + var dataSource = Wrappers.Companion_Option_.Create_Some_(input.(ComAmazonawsDynamodbTypes.AttributeValue).Dtor_NULL()) + union = &types.AttributeValueMemberNULL{ + Value: (Com_amazonaws_dynamodb_AttributeValue_NULL_FromDafny(dataSource.UnwrapOr(nil))), + } + } + if (input.(ComAmazonawsDynamodbTypes.AttributeValue)).Is_BOOL() { + var dataSource = Wrappers.Companion_Option_.Create_Some_(input.(ComAmazonawsDynamodbTypes.AttributeValue).Dtor_BOOL()) + union = &types.AttributeValueMemberBOOL{ + Value: (Com_amazonaws_dynamodb_AttributeValue_BOOL_FromDafny(dataSource.UnwrapOr(nil))), + } + } + + return union + }() +} +func Com_amazonaws_dynamodb_KeysAndAttributes_AttributesToGet_FromDafny(input interface{}) []string { + return func() []string { + var fieldValue []string + if input == nil { + return nil + } + for i := dafny.Iterate(input.(dafny.Sequence).(dafny.Sequence)); ; { + val, ok := i() + if !ok { + break + } + fieldValue = append(fieldValue, Com_amazonaws_dynamodb_AttributeNameList_member_FromDafny(val)) + } + return fieldValue + }() +} +func Com_amazonaws_dynamodb_AttributeNameList_member_FromDafny(input interface{}) string { + return func() string { + + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return s + }() +} +func Com_amazonaws_dynamodb_KeysAndAttributes_ConsistentRead_FromDafny(input interface{}) *bool { + return func() *bool { + var b bool + if input == nil { + return nil + } + b = input.(bool) + return &b + }() +} +func Com_amazonaws_dynamodb_KeysAndAttributes_ProjectionExpression_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_KeysAndAttributes_ExpressionAttributeNames_FromDafny(input interface{}) map[string]string { + return func() 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[Com_amazonaws_dynamodb_ExpressionAttributeNameMap_key_FromDafny((*val.(dafny.Tuple).IndexInt(0)))] = Com_amazonaws_dynamodb_ExpressionAttributeNameMap_value_FromDafny((*val.(dafny.Tuple).IndexInt(1))) + } + return m + }() +} +func Com_amazonaws_dynamodb_ExpressionAttributeNameMap_key_FromDafny(input interface{}) string { + return func() string { + if input == nil { + return "" + } + a := UTF8.Encode(input.(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return s + }() +} +func Com_amazonaws_dynamodb_ExpressionAttributeNameMap_value_FromDafny(input interface{}) string { + return func() string { + + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return s + }() +} +func Com_amazonaws_dynamodb_BatchGetItemInput_ReturnConsumedCapacity_FromDafny(input interface{}) types.ReturnConsumedCapacity { + return func() types.ReturnConsumedCapacity { + var u types.ReturnConsumedCapacity + if input == nil { + return u + } + + inputEnum := input.(ComAmazonawsDynamodbTypes.ReturnConsumedCapacity) + index := -1 + for allEnums := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_ReturnConsumedCapacity_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(ComAmazonawsDynamodbTypes.ReturnConsumedCapacity).Equals(inputEnum) { + break + } + } + } + return u.Values()[index] + }() +} +func Com_amazonaws_dynamodb_BatchGetItemOutput_Responses_FromDafny(input interface{}) map[string][]map[string]types.AttributeValue { + return func() map[string][]map[string]types.AttributeValue { + var m map[string][]map[string]types.AttributeValue = make(map[string][]map[string]types.AttributeValue) + if input == nil { + return nil + } + + for i := dafny.Iterate(input.(dafny.Map).Items()); ; { + val, ok := i() + if !ok { + break + } + m[Com_amazonaws_dynamodb_BatchGetResponseMap_key_FromDafny((*val.(dafny.Tuple).IndexInt(0)))] = Com_amazonaws_dynamodb_BatchGetResponseMap_value_FromDafny((*val.(dafny.Tuple).IndexInt(1))) + } + return m + }() +} +func Com_amazonaws_dynamodb_BatchGetResponseMap_key_FromDafny(input interface{}) string { + return func() string { + if input == nil { + return "" + } + a := UTF8.Encode(input.(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return s + }() +} +func Com_amazonaws_dynamodb_BatchGetResponseMap_value_FromDafny(input interface{}) []map[string]types.AttributeValue { + return func() []map[string]types.AttributeValue { + var fieldValue []map[string]types.AttributeValue + + for i := dafny.Iterate(input.(dafny.Sequence).(dafny.Sequence)); ; { + val, ok := i() + if !ok { + break + } + fieldValue = append(fieldValue, Com_amazonaws_dynamodb_ItemList_member_FromDafny(val)) + } + return fieldValue + }() +} +func Com_amazonaws_dynamodb_ItemList_member_FromDafny(input interface{}) map[string]types.AttributeValue { + return func() map[string]types.AttributeValue { + var m map[string]types.AttributeValue = make(map[string]types.AttributeValue) + + for i := dafny.Iterate(input.(dafny.Map).Items()); ; { + val, ok := i() + if !ok { + break + } + m[Com_amazonaws_dynamodb_AttributeMap_key_FromDafny((*val.(dafny.Tuple).IndexInt(0)))] = Com_amazonaws_dynamodb_AttributeMap_value_FromDafny((*val.(dafny.Tuple).IndexInt(1))) + } + return m + }() +} +func Com_amazonaws_dynamodb_BatchGetItemOutput_UnprocessedKeys_FromDafny(input interface{}) map[string]types.KeysAndAttributes { + return func() map[string]types.KeysAndAttributes { + var m map[string]types.KeysAndAttributes = make(map[string]types.KeysAndAttributes) + if input == nil { + return nil + } + + for i := dafny.Iterate(input.(dafny.Map).Items()); ; { + val, ok := i() + if !ok { + break + } + m[Com_amazonaws_dynamodb_BatchGetRequestMap_key_FromDafny((*val.(dafny.Tuple).IndexInt(0)))] = Com_amazonaws_dynamodb_BatchGetRequestMap_value_FromDafny((*val.(dafny.Tuple).IndexInt(1))) + } + return m + }() +} +func Com_amazonaws_dynamodb_BatchGetItemOutput_ConsumedCapacity_FromDafny(input interface{}) []types.ConsumedCapacity { + return func() []types.ConsumedCapacity { + var fieldValue []types.ConsumedCapacity + if input == nil { + return nil + } + for i := dafny.Iterate(input.(dafny.Sequence).(dafny.Sequence)); ; { + val, ok := i() + if !ok { + break + } + fieldValue = append(fieldValue, Com_amazonaws_dynamodb_ConsumedCapacityMultiple_member_FromDafny(val)) + } + return fieldValue + }() +} +func Com_amazonaws_dynamodb_BatchWriteItemInput_RequestItems_FromDafny(input interface{}) map[string][]types.WriteRequest { + return func() map[string][]types.WriteRequest { + var m map[string][]types.WriteRequest = make(map[string][]types.WriteRequest) + + for i := dafny.Iterate(input.(dafny.Map).Items()); ; { + val, ok := i() + if !ok { + break + } + m[Com_amazonaws_dynamodb_BatchWriteItemRequestMap_key_FromDafny((*val.(dafny.Tuple).IndexInt(0)))] = Com_amazonaws_dynamodb_BatchWriteItemRequestMap_value_FromDafny((*val.(dafny.Tuple).IndexInt(1))) + } + return m + }() +} +func Com_amazonaws_dynamodb_BatchWriteItemRequestMap_key_FromDafny(input interface{}) string { + return func() string { + if input == nil { + return "" + } + a := UTF8.Encode(input.(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return s + }() +} +func Com_amazonaws_dynamodb_BatchWriteItemRequestMap_value_FromDafny(input interface{}) []types.WriteRequest { + return func() []types.WriteRequest { + var fieldValue []types.WriteRequest + + for i := dafny.Iterate(input.(dafny.Sequence).(dafny.Sequence)); ; { + val, ok := i() + if !ok { + break + } + fieldValue = append(fieldValue, Com_amazonaws_dynamodb_WriteRequests_member_FromDafny(val)) + } + return fieldValue + }() +} +func Com_amazonaws_dynamodb_WriteRequests_member_FromDafny(input interface{}) types.WriteRequest { + return func() types.WriteRequest { + + return types.WriteRequest{ + PutRequest: Com_amazonaws_dynamodb_WriteRequest_PutRequest_FromDafny(input.(ComAmazonawsDynamodbTypes.WriteRequest).Dtor_PutRequest().UnwrapOr(nil)), + DeleteRequest: Com_amazonaws_dynamodb_WriteRequest_DeleteRequest_FromDafny(input.(ComAmazonawsDynamodbTypes.WriteRequest).Dtor_DeleteRequest().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_dynamodb_WriteRequest_PutRequest_FromDafny(input interface{}) *types.PutRequest { + return func() *types.PutRequest { + if input == nil { + return nil + } + return &types.PutRequest{ + Item: Com_amazonaws_dynamodb_PutRequest_Item_FromDafny(input.(ComAmazonawsDynamodbTypes.PutRequest).Dtor_Item()), + } + }() +} +func Com_amazonaws_dynamodb_PutRequest_Item_FromDafny(input interface{}) map[string]types.AttributeValue { + return func() map[string]types.AttributeValue { + var m map[string]types.AttributeValue = make(map[string]types.AttributeValue) + + for i := dafny.Iterate(input.(dafny.Map).Items()); ; { + val, ok := i() + if !ok { + break + } + m[Com_amazonaws_dynamodb_PutItemInputAttributeMap_key_FromDafny((*val.(dafny.Tuple).IndexInt(0)))] = Com_amazonaws_dynamodb_PutItemInputAttributeMap_value_FromDafny((*val.(dafny.Tuple).IndexInt(1))) + } + return m + }() +} +func Com_amazonaws_dynamodb_PutItemInputAttributeMap_key_FromDafny(input interface{}) string { + return func() string { + if input == nil { + return "" + } + a := UTF8.Encode(input.(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return s + }() +} +func Com_amazonaws_dynamodb_PutItemInputAttributeMap_value_FromDafny(input interface{}) types.AttributeValue { + return func() types.AttributeValue { + var union types.AttributeValue + + if (input.(ComAmazonawsDynamodbTypes.AttributeValue)).Is_S() { + var dataSource = Wrappers.Companion_Option_.Create_Some_(input.(ComAmazonawsDynamodbTypes.AttributeValue).Dtor_S()) + union = &types.AttributeValueMemberS{ + Value: (Com_amazonaws_dynamodb_AttributeValue_S_FromDafny(dataSource.UnwrapOr(nil))), + } + } + if (input.(ComAmazonawsDynamodbTypes.AttributeValue)).Is_N() { + var dataSource = Wrappers.Companion_Option_.Create_Some_(input.(ComAmazonawsDynamodbTypes.AttributeValue).Dtor_N()) + union = &types.AttributeValueMemberN{ + Value: (Com_amazonaws_dynamodb_AttributeValue_N_FromDafny(dataSource.UnwrapOr(nil))), + } + } + if (input.(ComAmazonawsDynamodbTypes.AttributeValue)).Is_B() { + var dataSource = Wrappers.Companion_Option_.Create_Some_(input.(ComAmazonawsDynamodbTypes.AttributeValue).Dtor_B()) + union = &types.AttributeValueMemberB{ + Value: (Com_amazonaws_dynamodb_AttributeValue_B_FromDafny(dataSource.UnwrapOr(nil))), + } + } + if (input.(ComAmazonawsDynamodbTypes.AttributeValue)).Is_SS() { + var dataSource = Wrappers.Companion_Option_.Create_Some_(input.(ComAmazonawsDynamodbTypes.AttributeValue).Dtor_SS()) + union = &types.AttributeValueMemberSS{ + Value: (Com_amazonaws_dynamodb_AttributeValue_SS_FromDafny(dataSource.UnwrapOr(nil))), + } + } + if (input.(ComAmazonawsDynamodbTypes.AttributeValue)).Is_NS() { + var dataSource = Wrappers.Companion_Option_.Create_Some_(input.(ComAmazonawsDynamodbTypes.AttributeValue).Dtor_NS()) + union = &types.AttributeValueMemberNS{ + Value: (Com_amazonaws_dynamodb_AttributeValue_NS_FromDafny(dataSource.UnwrapOr(nil))), + } + } + if (input.(ComAmazonawsDynamodbTypes.AttributeValue)).Is_BS() { + var dataSource = Wrappers.Companion_Option_.Create_Some_(input.(ComAmazonawsDynamodbTypes.AttributeValue).Dtor_BS()) + union = &types.AttributeValueMemberBS{ + Value: (Com_amazonaws_dynamodb_AttributeValue_BS_FromDafny(dataSource.UnwrapOr(nil))), + } + } + if (input.(ComAmazonawsDynamodbTypes.AttributeValue)).Is_M() { + var dataSource = Wrappers.Companion_Option_.Create_Some_(input.(ComAmazonawsDynamodbTypes.AttributeValue).Dtor_M()) + union = &types.AttributeValueMemberM{ + Value: (Com_amazonaws_dynamodb_AttributeValue_M_FromDafny(dataSource.UnwrapOr(nil))), + } + } + if (input.(ComAmazonawsDynamodbTypes.AttributeValue)).Is_L() { + var dataSource = Wrappers.Companion_Option_.Create_Some_(input.(ComAmazonawsDynamodbTypes.AttributeValue).Dtor_L()) + union = &types.AttributeValueMemberL{ + Value: (Com_amazonaws_dynamodb_AttributeValue_L_FromDafny(dataSource.UnwrapOr(nil))), + } + } + if (input.(ComAmazonawsDynamodbTypes.AttributeValue)).Is_NULL() { + var dataSource = Wrappers.Companion_Option_.Create_Some_(input.(ComAmazonawsDynamodbTypes.AttributeValue).Dtor_NULL()) + union = &types.AttributeValueMemberNULL{ + Value: (Com_amazonaws_dynamodb_AttributeValue_NULL_FromDafny(dataSource.UnwrapOr(nil))), + } + } + if (input.(ComAmazonawsDynamodbTypes.AttributeValue)).Is_BOOL() { + var dataSource = Wrappers.Companion_Option_.Create_Some_(input.(ComAmazonawsDynamodbTypes.AttributeValue).Dtor_BOOL()) + union = &types.AttributeValueMemberBOOL{ + Value: (Com_amazonaws_dynamodb_AttributeValue_BOOL_FromDafny(dataSource.UnwrapOr(nil))), + } + } + + return union + }() +} +func Com_amazonaws_dynamodb_WriteRequest_DeleteRequest_FromDafny(input interface{}) *types.DeleteRequest { + return func() *types.DeleteRequest { + if input == nil { + return nil + } + return &types.DeleteRequest{ + Key: Com_amazonaws_dynamodb_DeleteRequest_Key_FromDafny(input.(ComAmazonawsDynamodbTypes.DeleteRequest).Dtor_Key()), + } + }() +} +func Com_amazonaws_dynamodb_DeleteRequest_Key_FromDafny(input interface{}) map[string]types.AttributeValue { + return func() map[string]types.AttributeValue { + var m map[string]types.AttributeValue = make(map[string]types.AttributeValue) + + for i := dafny.Iterate(input.(dafny.Map).Items()); ; { + val, ok := i() + if !ok { + break + } + m[Com_amazonaws_dynamodb_Key_key_FromDafny((*val.(dafny.Tuple).IndexInt(0)))] = Com_amazonaws_dynamodb_Key_value_FromDafny((*val.(dafny.Tuple).IndexInt(1))) + } + return m + }() +} +func Com_amazonaws_dynamodb_BatchWriteItemInput_ReturnConsumedCapacity_FromDafny(input interface{}) types.ReturnConsumedCapacity { + return func() types.ReturnConsumedCapacity { + var u types.ReturnConsumedCapacity + if input == nil { + return u + } + + inputEnum := input.(ComAmazonawsDynamodbTypes.ReturnConsumedCapacity) + index := -1 + for allEnums := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_ReturnConsumedCapacity_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(ComAmazonawsDynamodbTypes.ReturnConsumedCapacity).Equals(inputEnum) { + break + } + } + } + return u.Values()[index] + }() +} +func Com_amazonaws_dynamodb_BatchWriteItemInput_ReturnItemCollectionMetrics_FromDafny(input interface{}) types.ReturnItemCollectionMetrics { + return func() types.ReturnItemCollectionMetrics { + var u types.ReturnItemCollectionMetrics + if input == nil { + return u + } + + inputEnum := input.(ComAmazonawsDynamodbTypes.ReturnItemCollectionMetrics) + index := -1 + for allEnums := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_ReturnItemCollectionMetrics_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(ComAmazonawsDynamodbTypes.ReturnItemCollectionMetrics).Equals(inputEnum) { + break + } + } + } + return u.Values()[index] + }() +} +func Com_amazonaws_dynamodb_BatchWriteItemOutput_UnprocessedItems_FromDafny(input interface{}) map[string][]types.WriteRequest { + return func() map[string][]types.WriteRequest { + var m map[string][]types.WriteRequest = make(map[string][]types.WriteRequest) + if input == nil { + return nil + } + + for i := dafny.Iterate(input.(dafny.Map).Items()); ; { + val, ok := i() + if !ok { + break + } + m[Com_amazonaws_dynamodb_BatchWriteItemRequestMap_key_FromDafny((*val.(dafny.Tuple).IndexInt(0)))] = Com_amazonaws_dynamodb_BatchWriteItemRequestMap_value_FromDafny((*val.(dafny.Tuple).IndexInt(1))) + } + return m + }() +} +func Com_amazonaws_dynamodb_BatchWriteItemOutput_ItemCollectionMetrics_FromDafny(input interface{}) map[string][]types.ItemCollectionMetrics { + return func() map[string][]types.ItemCollectionMetrics { + var m map[string][]types.ItemCollectionMetrics = make(map[string][]types.ItemCollectionMetrics) + if input == nil { + return nil + } + + for i := dafny.Iterate(input.(dafny.Map).Items()); ; { + val, ok := i() + if !ok { + break + } + m[Com_amazonaws_dynamodb_ItemCollectionMetricsPerTable_key_FromDafny((*val.(dafny.Tuple).IndexInt(0)))] = Com_amazonaws_dynamodb_ItemCollectionMetricsPerTable_value_FromDafny((*val.(dafny.Tuple).IndexInt(1))) + } + return m + }() +} +func Com_amazonaws_dynamodb_ItemCollectionMetricsPerTable_key_FromDafny(input interface{}) string { + return func() string { + if input == nil { + return "" + } + a := UTF8.Encode(input.(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return s + }() +} +func Com_amazonaws_dynamodb_ItemCollectionMetricsPerTable_value_FromDafny(input interface{}) []types.ItemCollectionMetrics { + return func() []types.ItemCollectionMetrics { + var fieldValue []types.ItemCollectionMetrics + + for i := dafny.Iterate(input.(dafny.Sequence).(dafny.Sequence)); ; { + val, ok := i() + if !ok { + break + } + fieldValue = append(fieldValue, Com_amazonaws_dynamodb_ItemCollectionMetricsMultiple_member_FromDafny(val)) + } + return fieldValue + }() +} +func Com_amazonaws_dynamodb_ItemCollectionMetricsMultiple_member_FromDafny(input interface{}) types.ItemCollectionMetrics { + return func() types.ItemCollectionMetrics { + + return types.ItemCollectionMetrics{ + ItemCollectionKey: Com_amazonaws_dynamodb_ItemCollectionMetrics_ItemCollectionKey_FromDafny(input.(ComAmazonawsDynamodbTypes.ItemCollectionMetrics).Dtor_ItemCollectionKey().UnwrapOr(nil)), + SizeEstimateRangeGB: Com_amazonaws_dynamodb_ItemCollectionMetrics_SizeEstimateRangeGB_FromDafny(input.(ComAmazonawsDynamodbTypes.ItemCollectionMetrics).Dtor_SizeEstimateRangeGB().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_dynamodb_ItemCollectionMetrics_ItemCollectionKey_FromDafny(input interface{}) map[string]types.AttributeValue { + return func() map[string]types.AttributeValue { + var m map[string]types.AttributeValue = make(map[string]types.AttributeValue) + if input == nil { + return nil + } + + for i := dafny.Iterate(input.(dafny.Map).Items()); ; { + val, ok := i() + if !ok { + break + } + m[Com_amazonaws_dynamodb_ItemCollectionKeyAttributeMap_key_FromDafny((*val.(dafny.Tuple).IndexInt(0)))] = Com_amazonaws_dynamodb_ItemCollectionKeyAttributeMap_value_FromDafny((*val.(dafny.Tuple).IndexInt(1))) + } + return m + }() +} +func Com_amazonaws_dynamodb_ItemCollectionKeyAttributeMap_key_FromDafny(input interface{}) string { + return func() string { + if input == nil { + return "" + } + a := UTF8.Encode(input.(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return s + }() +} +func Com_amazonaws_dynamodb_ItemCollectionKeyAttributeMap_value_FromDafny(input interface{}) types.AttributeValue { + return func() types.AttributeValue { + var union types.AttributeValue + + if (input.(ComAmazonawsDynamodbTypes.AttributeValue)).Is_S() { + var dataSource = Wrappers.Companion_Option_.Create_Some_(input.(ComAmazonawsDynamodbTypes.AttributeValue).Dtor_S()) + union = &types.AttributeValueMemberS{ + Value: (Com_amazonaws_dynamodb_AttributeValue_S_FromDafny(dataSource.UnwrapOr(nil))), + } + } + if (input.(ComAmazonawsDynamodbTypes.AttributeValue)).Is_N() { + var dataSource = Wrappers.Companion_Option_.Create_Some_(input.(ComAmazonawsDynamodbTypes.AttributeValue).Dtor_N()) + union = &types.AttributeValueMemberN{ + Value: (Com_amazonaws_dynamodb_AttributeValue_N_FromDafny(dataSource.UnwrapOr(nil))), + } + } + if (input.(ComAmazonawsDynamodbTypes.AttributeValue)).Is_B() { + var dataSource = Wrappers.Companion_Option_.Create_Some_(input.(ComAmazonawsDynamodbTypes.AttributeValue).Dtor_B()) + union = &types.AttributeValueMemberB{ + Value: (Com_amazonaws_dynamodb_AttributeValue_B_FromDafny(dataSource.UnwrapOr(nil))), + } + } + if (input.(ComAmazonawsDynamodbTypes.AttributeValue)).Is_SS() { + var dataSource = Wrappers.Companion_Option_.Create_Some_(input.(ComAmazonawsDynamodbTypes.AttributeValue).Dtor_SS()) + union = &types.AttributeValueMemberSS{ + Value: (Com_amazonaws_dynamodb_AttributeValue_SS_FromDafny(dataSource.UnwrapOr(nil))), + } + } + if (input.(ComAmazonawsDynamodbTypes.AttributeValue)).Is_NS() { + var dataSource = Wrappers.Companion_Option_.Create_Some_(input.(ComAmazonawsDynamodbTypes.AttributeValue).Dtor_NS()) + union = &types.AttributeValueMemberNS{ + Value: (Com_amazonaws_dynamodb_AttributeValue_NS_FromDafny(dataSource.UnwrapOr(nil))), + } + } + if (input.(ComAmazonawsDynamodbTypes.AttributeValue)).Is_BS() { + var dataSource = Wrappers.Companion_Option_.Create_Some_(input.(ComAmazonawsDynamodbTypes.AttributeValue).Dtor_BS()) + union = &types.AttributeValueMemberBS{ + Value: (Com_amazonaws_dynamodb_AttributeValue_BS_FromDafny(dataSource.UnwrapOr(nil))), + } + } + if (input.(ComAmazonawsDynamodbTypes.AttributeValue)).Is_M() { + var dataSource = Wrappers.Companion_Option_.Create_Some_(input.(ComAmazonawsDynamodbTypes.AttributeValue).Dtor_M()) + union = &types.AttributeValueMemberM{ + Value: (Com_amazonaws_dynamodb_AttributeValue_M_FromDafny(dataSource.UnwrapOr(nil))), + } + } + if (input.(ComAmazonawsDynamodbTypes.AttributeValue)).Is_L() { + var dataSource = Wrappers.Companion_Option_.Create_Some_(input.(ComAmazonawsDynamodbTypes.AttributeValue).Dtor_L()) + union = &types.AttributeValueMemberL{ + Value: (Com_amazonaws_dynamodb_AttributeValue_L_FromDafny(dataSource.UnwrapOr(nil))), + } + } + if (input.(ComAmazonawsDynamodbTypes.AttributeValue)).Is_NULL() { + var dataSource = Wrappers.Companion_Option_.Create_Some_(input.(ComAmazonawsDynamodbTypes.AttributeValue).Dtor_NULL()) + union = &types.AttributeValueMemberNULL{ + Value: (Com_amazonaws_dynamodb_AttributeValue_NULL_FromDafny(dataSource.UnwrapOr(nil))), + } + } + if (input.(ComAmazonawsDynamodbTypes.AttributeValue)).Is_BOOL() { + var dataSource = Wrappers.Companion_Option_.Create_Some_(input.(ComAmazonawsDynamodbTypes.AttributeValue).Dtor_BOOL()) + union = &types.AttributeValueMemberBOOL{ + Value: (Com_amazonaws_dynamodb_AttributeValue_BOOL_FromDafny(dataSource.UnwrapOr(nil))), + } + } + + return union + }() +} +func Com_amazonaws_dynamodb_ItemCollectionMetrics_SizeEstimateRangeGB_FromDafny(input interface{}) []float64 { + return func() []float64 { + var fieldValue []float64 + if input == nil { + return nil + } + for i := dafny.Iterate(input.(dafny.Sequence).(dafny.Sequence)); ; { + val, ok := i() + if !ok { + break + } + fieldValue = append(fieldValue, Com_amazonaws_dynamodb_ItemCollectionSizeEstimateRange_member_FromDafny(val)) + } + return fieldValue + }() +} +func Com_amazonaws_dynamodb_ItemCollectionSizeEstimateRange_member_FromDafny(input interface{}) float64 { + return func() float64 { + var b []byte + + for i := dafny.Iterate(input.(dafny.Sequence)); ; { + val, ok := i() + if !ok { + return []float64{math.Float64frombits(binary.LittleEndian.Uint64(b))}[0] + } else { + b = append(b, val.(byte)) + } + } + }() +} +func Com_amazonaws_dynamodb_BatchWriteItemOutput_ConsumedCapacity_FromDafny(input interface{}) []types.ConsumedCapacity { + return func() []types.ConsumedCapacity { + var fieldValue []types.ConsumedCapacity + if input == nil { + return nil + } + for i := dafny.Iterate(input.(dafny.Sequence).(dafny.Sequence)); ; { + val, ok := i() + if !ok { + break + } + fieldValue = append(fieldValue, Com_amazonaws_dynamodb_ConsumedCapacityMultiple_member_FromDafny(val)) + } + return fieldValue + }() +} +func Com_amazonaws_dynamodb_CreateBackupInput_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 Com_amazonaws_dynamodb_CreateBackupInput_BackupName_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 Com_amazonaws_dynamodb_CreateBackupOutput_BackupDetails_FromDafny(input interface{}) *types.BackupDetails { + return func() *types.BackupDetails { + if input == nil { + return nil + } + return &types.BackupDetails{ + BackupArn: Com_amazonaws_dynamodb_BackupDetails_BackupArn_FromDafny(input.(ComAmazonawsDynamodbTypes.BackupDetails).Dtor_BackupArn()), + BackupName: Com_amazonaws_dynamodb_BackupDetails_BackupName_FromDafny(input.(ComAmazonawsDynamodbTypes.BackupDetails).Dtor_BackupName()), + BackupSizeBytes: Com_amazonaws_dynamodb_BackupDetails_BackupSizeBytes_FromDafny(input.(ComAmazonawsDynamodbTypes.BackupDetails).Dtor_BackupSizeBytes().UnwrapOr(nil)), + BackupStatus: Com_amazonaws_dynamodb_BackupDetails_BackupStatus_FromDafny(input.(ComAmazonawsDynamodbTypes.BackupDetails).Dtor_BackupStatus()), + BackupType: Com_amazonaws_dynamodb_BackupDetails_BackupType_FromDafny(input.(ComAmazonawsDynamodbTypes.BackupDetails).Dtor_BackupType()), + BackupCreationDateTime: Com_amazonaws_dynamodb_BackupDetails_BackupCreationDateTime_FromDafny(input.(ComAmazonawsDynamodbTypes.BackupDetails).Dtor_BackupCreationDateTime()), + BackupExpiryDateTime: Com_amazonaws_dynamodb_BackupDetails_BackupExpiryDateTime_FromDafny(input.(ComAmazonawsDynamodbTypes.BackupDetails).Dtor_BackupExpiryDateTime().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_dynamodb_BackupDetails_BackupArn_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 Com_amazonaws_dynamodb_BackupDetails_BackupName_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 Com_amazonaws_dynamodb_BackupDetails_BackupSizeBytes_FromDafny(input interface{}) *int64 { + return func() *int64 { + var i int64 + if input == nil { + return nil + } + i = input.(int64) + return &i + }() +} +func Com_amazonaws_dynamodb_BackupDetails_BackupStatus_FromDafny(input interface{}) types.BackupStatus { + return func() types.BackupStatus { + var u types.BackupStatus + + inputEnum := input.(ComAmazonawsDynamodbTypes.BackupStatus) + index := -1 + for allEnums := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_BackupStatus_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(ComAmazonawsDynamodbTypes.BackupStatus).Equals(inputEnum) { + break + } + } + } + return u.Values()[index] + }() +} +func Com_amazonaws_dynamodb_BackupDetails_BackupType_FromDafny(input interface{}) types.BackupType { + return func() types.BackupType { + var u types.BackupType + + inputEnum := input.(ComAmazonawsDynamodbTypes.BackupType) + index := -1 + for allEnums := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_BackupType_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(ComAmazonawsDynamodbTypes.BackupType).Equals(inputEnum) { + break + } + } + } + return u.Values()[index] + }() +} +func Com_amazonaws_dynamodb_BackupDetails_BackupCreationDateTime_FromDafny(input interface{}) *time.Time { + return func() *time.Time { + + a := UTF8.Encode(input.(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + if len(s) == 0 { + panic("timestamp string is empty") + } else { + t, err := time.Parse("2006-01-02T15:04:05.999999Z", s) + if err != nil { + panic(err) + } + return &t + } + }() +} +func Com_amazonaws_dynamodb_BackupDetails_BackupExpiryDateTime_FromDafny(input interface{}) *time.Time { + return func() *time.Time { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + if len(s) == 0 { + panic("timestamp string is empty") + } else { + t, err := time.Parse("2006-01-02T15:04:05.999999Z", s) + if err != nil { + panic(err) + } + return &t + } + }() +} +func Com_amazonaws_dynamodb_CreateGlobalTableInput_GlobalTableName_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 Com_amazonaws_dynamodb_CreateGlobalTableInput_ReplicationGroup_FromDafny(input interface{}) []types.Replica { + return func() []types.Replica { + var fieldValue []types.Replica + + for i := dafny.Iterate(input.(dafny.Sequence)); ; { + val, ok := i() + if !ok { + break + } + fieldValue = append(fieldValue, Com_amazonaws_dynamodb_ReplicaList_member_FromDafny(val)) + } + return fieldValue + }() +} +func Com_amazonaws_dynamodb_ReplicaList_member_FromDafny(input interface{}) types.Replica { + return func() types.Replica { + + return types.Replica{ + RegionName: Com_amazonaws_dynamodb_Replica_RegionName_FromDafny(input.(ComAmazonawsDynamodbTypes.Replica).Dtor_RegionName().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_dynamodb_Replica_RegionName_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_CreateGlobalTableOutput_GlobalTableDescription_FromDafny(input interface{}) *types.GlobalTableDescription { + return func() *types.GlobalTableDescription { + if input == nil { + return nil + } + return &types.GlobalTableDescription{ + ReplicationGroup: Com_amazonaws_dynamodb_GlobalTableDescription_ReplicationGroup_FromDafny(input.(ComAmazonawsDynamodbTypes.GlobalTableDescription).Dtor_ReplicationGroup().UnwrapOr(nil)), + GlobalTableArn: Com_amazonaws_dynamodb_GlobalTableDescription_GlobalTableArn_FromDafny(input.(ComAmazonawsDynamodbTypes.GlobalTableDescription).Dtor_GlobalTableArn().UnwrapOr(nil)), + CreationDateTime: Com_amazonaws_dynamodb_GlobalTableDescription_CreationDateTime_FromDafny(input.(ComAmazonawsDynamodbTypes.GlobalTableDescription).Dtor_CreationDateTime().UnwrapOr(nil)), + GlobalTableStatus: Com_amazonaws_dynamodb_GlobalTableDescription_GlobalTableStatus_FromDafny(input.(ComAmazonawsDynamodbTypes.GlobalTableDescription).Dtor_GlobalTableStatus().UnwrapOr(nil)), + GlobalTableName: Com_amazonaws_dynamodb_GlobalTableDescription_GlobalTableName_FromDafny(input.(ComAmazonawsDynamodbTypes.GlobalTableDescription).Dtor_GlobalTableName().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_dynamodb_GlobalTableDescription_ReplicationGroup_FromDafny(input interface{}) []types.ReplicaDescription { + return func() []types.ReplicaDescription { + var fieldValue []types.ReplicaDescription + if input == nil { + return nil + } + for i := dafny.Iterate(input.(dafny.Sequence).(dafny.Sequence)); ; { + val, ok := i() + if !ok { + break + } + fieldValue = append(fieldValue, Com_amazonaws_dynamodb_ReplicaDescriptionList_member_FromDafny(val)) + } + return fieldValue + }() +} +func Com_amazonaws_dynamodb_ReplicaDescriptionList_member_FromDafny(input interface{}) types.ReplicaDescription { + return func() types.ReplicaDescription { + + return types.ReplicaDescription{ + RegionName: Com_amazonaws_dynamodb_ReplicaDescription_RegionName_FromDafny(input.(ComAmazonawsDynamodbTypes.ReplicaDescription).Dtor_RegionName().UnwrapOr(nil)), + ReplicaStatus: Com_amazonaws_dynamodb_ReplicaDescription_ReplicaStatus_FromDafny(input.(ComAmazonawsDynamodbTypes.ReplicaDescription).Dtor_ReplicaStatus().UnwrapOr(nil)), + ReplicaStatusDescription: Com_amazonaws_dynamodb_ReplicaDescription_ReplicaStatusDescription_FromDafny(input.(ComAmazonawsDynamodbTypes.ReplicaDescription).Dtor_ReplicaStatusDescription().UnwrapOr(nil)), + ReplicaStatusPercentProgress: Com_amazonaws_dynamodb_ReplicaDescription_ReplicaStatusPercentProgress_FromDafny(input.(ComAmazonawsDynamodbTypes.ReplicaDescription).Dtor_ReplicaStatusPercentProgress().UnwrapOr(nil)), + KMSMasterKeyId: Com_amazonaws_dynamodb_ReplicaDescription_KMSMasterKeyId_FromDafny(input.(ComAmazonawsDynamodbTypes.ReplicaDescription).Dtor_KMSMasterKeyId().UnwrapOr(nil)), + ProvisionedThroughputOverride: Com_amazonaws_dynamodb_ReplicaDescription_ProvisionedThroughputOverride_FromDafny(input.(ComAmazonawsDynamodbTypes.ReplicaDescription).Dtor_ProvisionedThroughputOverride().UnwrapOr(nil)), + OnDemandThroughputOverride: Com_amazonaws_dynamodb_ReplicaDescription_OnDemandThroughputOverride_FromDafny(input.(ComAmazonawsDynamodbTypes.ReplicaDescription).Dtor_OnDemandThroughputOverride().UnwrapOr(nil)), + GlobalSecondaryIndexes: Com_amazonaws_dynamodb_ReplicaDescription_GlobalSecondaryIndexes_FromDafny(input.(ComAmazonawsDynamodbTypes.ReplicaDescription).Dtor_GlobalSecondaryIndexes().UnwrapOr(nil)), + ReplicaInaccessibleDateTime: Com_amazonaws_dynamodb_ReplicaDescription_ReplicaInaccessibleDateTime_FromDafny(input.(ComAmazonawsDynamodbTypes.ReplicaDescription).Dtor_ReplicaInaccessibleDateTime().UnwrapOr(nil)), + ReplicaTableClassSummary: Com_amazonaws_dynamodb_ReplicaDescription_ReplicaTableClassSummary_FromDafny(input.(ComAmazonawsDynamodbTypes.ReplicaDescription).Dtor_ReplicaTableClassSummary().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_dynamodb_ReplicaDescription_RegionName_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_ReplicaDescription_ReplicaStatus_FromDafny(input interface{}) types.ReplicaStatus { + return func() types.ReplicaStatus { + var u types.ReplicaStatus + if input == nil { + return u + } + + inputEnum := input.(ComAmazonawsDynamodbTypes.ReplicaStatus) + index := -1 + for allEnums := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_ReplicaStatus_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(ComAmazonawsDynamodbTypes.ReplicaStatus).Equals(inputEnum) { + break + } + } + } + return u.Values()[index] + }() +} +func Com_amazonaws_dynamodb_ReplicaDescription_ReplicaStatusDescription_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_ReplicaDescription_ReplicaStatusPercentProgress_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_ReplicaDescription_KMSMasterKeyId_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_ReplicaDescription_ProvisionedThroughputOverride_FromDafny(input interface{}) *types.ProvisionedThroughputOverride { + return func() *types.ProvisionedThroughputOverride { + if input == nil { + return nil + } + return &types.ProvisionedThroughputOverride{ + ReadCapacityUnits: Com_amazonaws_dynamodb_ProvisionedThroughputOverride_ReadCapacityUnits_FromDafny(input.(ComAmazonawsDynamodbTypes.ProvisionedThroughputOverride).Dtor_ReadCapacityUnits().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_dynamodb_ProvisionedThroughputOverride_ReadCapacityUnits_FromDafny(input interface{}) *int64 { + return func() *int64 { + var i int64 + if input == nil { + return nil + } + i = input.(int64) + return &i + }() +} +func Com_amazonaws_dynamodb_ReplicaDescription_OnDemandThroughputOverride_FromDafny(input interface{}) *types.OnDemandThroughputOverride { + return func() *types.OnDemandThroughputOverride { + if input == nil { + return nil + } + return &types.OnDemandThroughputOverride{ + MaxReadRequestUnits: Com_amazonaws_dynamodb_OnDemandThroughputOverride_MaxReadRequestUnits_FromDafny(input.(ComAmazonawsDynamodbTypes.OnDemandThroughputOverride).Dtor_MaxReadRequestUnits().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_dynamodb_OnDemandThroughputOverride_MaxReadRequestUnits_FromDafny(input interface{}) *int64 { + return func() *int64 { + var i int64 + if input == nil { + return nil + } + i = input.(int64) + return &i + }() +} +func Com_amazonaws_dynamodb_ReplicaDescription_GlobalSecondaryIndexes_FromDafny(input interface{}) []types.ReplicaGlobalSecondaryIndexDescription { + return func() []types.ReplicaGlobalSecondaryIndexDescription { + var fieldValue []types.ReplicaGlobalSecondaryIndexDescription + if input == nil { + return nil + } + for i := dafny.Iterate(input.(dafny.Sequence).(dafny.Sequence)); ; { + val, ok := i() + if !ok { + break + } + fieldValue = append(fieldValue, Com_amazonaws_dynamodb_ReplicaGlobalSecondaryIndexDescriptionList_member_FromDafny(val)) + } + return fieldValue + }() +} +func Com_amazonaws_dynamodb_ReplicaGlobalSecondaryIndexDescriptionList_member_FromDafny(input interface{}) types.ReplicaGlobalSecondaryIndexDescription { + return func() types.ReplicaGlobalSecondaryIndexDescription { + + return types.ReplicaGlobalSecondaryIndexDescription{ + IndexName: Com_amazonaws_dynamodb_ReplicaGlobalSecondaryIndexDescription_IndexName_FromDafny(input.(ComAmazonawsDynamodbTypes.ReplicaGlobalSecondaryIndexDescription).Dtor_IndexName().UnwrapOr(nil)), + ProvisionedThroughputOverride: Com_amazonaws_dynamodb_ReplicaGlobalSecondaryIndexDescription_ProvisionedThroughputOverride_FromDafny(input.(ComAmazonawsDynamodbTypes.ReplicaGlobalSecondaryIndexDescription).Dtor_ProvisionedThroughputOverride().UnwrapOr(nil)), + OnDemandThroughputOverride: Com_amazonaws_dynamodb_ReplicaGlobalSecondaryIndexDescription_OnDemandThroughputOverride_FromDafny(input.(ComAmazonawsDynamodbTypes.ReplicaGlobalSecondaryIndexDescription).Dtor_OnDemandThroughputOverride().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_dynamodb_ReplicaGlobalSecondaryIndexDescription_IndexName_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_ReplicaGlobalSecondaryIndexDescription_ProvisionedThroughputOverride_FromDafny(input interface{}) *types.ProvisionedThroughputOverride { + return func() *types.ProvisionedThroughputOverride { + if input == nil { + return nil + } + return &types.ProvisionedThroughputOverride{ + ReadCapacityUnits: Com_amazonaws_dynamodb_ProvisionedThroughputOverride_ReadCapacityUnits_FromDafny(input.(ComAmazonawsDynamodbTypes.ProvisionedThroughputOverride).Dtor_ReadCapacityUnits().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_dynamodb_ReplicaGlobalSecondaryIndexDescription_OnDemandThroughputOverride_FromDafny(input interface{}) *types.OnDemandThroughputOverride { + return func() *types.OnDemandThroughputOverride { + if input == nil { + return nil + } + return &types.OnDemandThroughputOverride{ + MaxReadRequestUnits: Com_amazonaws_dynamodb_OnDemandThroughputOverride_MaxReadRequestUnits_FromDafny(input.(ComAmazonawsDynamodbTypes.OnDemandThroughputOverride).Dtor_MaxReadRequestUnits().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_dynamodb_ReplicaDescription_ReplicaInaccessibleDateTime_FromDafny(input interface{}) *time.Time { + return func() *time.Time { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + if len(s) == 0 { + panic("timestamp string is empty") + } else { + t, err := time.Parse("2006-01-02T15:04:05.999999Z", s) + if err != nil { + panic(err) + } + return &t + } + }() +} +func Com_amazonaws_dynamodb_ReplicaDescription_ReplicaTableClassSummary_FromDafny(input interface{}) *types.TableClassSummary { + return func() *types.TableClassSummary { + if input == nil { + return nil + } + return &types.TableClassSummary{ + TableClass: Com_amazonaws_dynamodb_TableClassSummary_TableClass_FromDafny(input.(ComAmazonawsDynamodbTypes.TableClassSummary).Dtor_TableClass().UnwrapOr(nil)), + LastUpdateDateTime: Com_amazonaws_dynamodb_TableClassSummary_LastUpdateDateTime_FromDafny(input.(ComAmazonawsDynamodbTypes.TableClassSummary).Dtor_LastUpdateDateTime().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_dynamodb_TableClassSummary_TableClass_FromDafny(input interface{}) types.TableClass { + return func() types.TableClass { + var u types.TableClass + if input == nil { + return u + } + + inputEnum := input.(ComAmazonawsDynamodbTypes.TableClass) + index := -1 + for allEnums := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_TableClass_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(ComAmazonawsDynamodbTypes.TableClass).Equals(inputEnum) { + break + } + } + } + return u.Values()[index] + }() +} +func Com_amazonaws_dynamodb_TableClassSummary_LastUpdateDateTime_FromDafny(input interface{}) *time.Time { + return func() *time.Time { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + if len(s) == 0 { + panic("timestamp string is empty") + } else { + t, err := time.Parse("2006-01-02T15:04:05.999999Z", s) + if err != nil { + panic(err) + } + return &t + } + }() +} +func Com_amazonaws_dynamodb_GlobalTableDescription_GlobalTableArn_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_GlobalTableDescription_CreationDateTime_FromDafny(input interface{}) *time.Time { + return func() *time.Time { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + if len(s) == 0 { + panic("timestamp string is empty") + } else { + t, err := time.Parse("2006-01-02T15:04:05.999999Z", s) + if err != nil { + panic(err) + } + return &t + } + }() +} +func Com_amazonaws_dynamodb_GlobalTableDescription_GlobalTableStatus_FromDafny(input interface{}) types.GlobalTableStatus { + return func() types.GlobalTableStatus { + var u types.GlobalTableStatus + if input == nil { + return u + } + + inputEnum := input.(ComAmazonawsDynamodbTypes.GlobalTableStatus) + index := -1 + for allEnums := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_GlobalTableStatus_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(ComAmazonawsDynamodbTypes.GlobalTableStatus).Equals(inputEnum) { + break + } + } + } + return u.Values()[index] + }() +} +func Com_amazonaws_dynamodb_GlobalTableDescription_GlobalTableName_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_CreateTableInput_AttributeDefinitions_FromDafny(input interface{}) []types.AttributeDefinition { + return func() []types.AttributeDefinition { + var fieldValue []types.AttributeDefinition + + for i := dafny.Iterate(input.(dafny.Sequence)); ; { + val, ok := i() + if !ok { + break + } + fieldValue = append(fieldValue, Com_amazonaws_dynamodb_AttributeDefinitions_member_FromDafny(val)) + } + return fieldValue + }() +} +func Com_amazonaws_dynamodb_AttributeDefinitions_member_FromDafny(input interface{}) types.AttributeDefinition { + return func() types.AttributeDefinition { + + return types.AttributeDefinition{ + AttributeName: Com_amazonaws_dynamodb_AttributeDefinition_AttributeName_FromDafny(input.(ComAmazonawsDynamodbTypes.AttributeDefinition).Dtor_AttributeName()), + AttributeType: Com_amazonaws_dynamodb_AttributeDefinition_AttributeType_FromDafny(input.(ComAmazonawsDynamodbTypes.AttributeDefinition).Dtor_AttributeType()), + } + }() +} +func Com_amazonaws_dynamodb_AttributeDefinition_AttributeName_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 Com_amazonaws_dynamodb_AttributeDefinition_AttributeType_FromDafny(input interface{}) types.ScalarAttributeType { + return func() types.ScalarAttributeType { + var u types.ScalarAttributeType + + inputEnum := input.(ComAmazonawsDynamodbTypes.ScalarAttributeType) + index := -1 + for allEnums := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_ScalarAttributeType_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(ComAmazonawsDynamodbTypes.ScalarAttributeType).Equals(inputEnum) { + break + } + } + } + return u.Values()[index] + }() +} +func Com_amazonaws_dynamodb_CreateTableInput_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 Com_amazonaws_dynamodb_CreateTableInput_KeySchema_FromDafny(input interface{}) []types.KeySchemaElement { + return func() []types.KeySchemaElement { + var fieldValue []types.KeySchemaElement + + for i := dafny.Iterate(input.(dafny.Sequence)); ; { + val, ok := i() + if !ok { + break + } + fieldValue = append(fieldValue, Com_amazonaws_dynamodb_KeySchema_member_FromDafny(val)) + } + return fieldValue + }() +} +func Com_amazonaws_dynamodb_KeySchema_member_FromDafny(input interface{}) types.KeySchemaElement { + return func() types.KeySchemaElement { + + return types.KeySchemaElement{ + AttributeName: Com_amazonaws_dynamodb_KeySchemaElement_AttributeName_FromDafny(input.(ComAmazonawsDynamodbTypes.KeySchemaElement).Dtor_AttributeName()), + KeyType: Com_amazonaws_dynamodb_KeySchemaElement_KeyType_FromDafny(input.(ComAmazonawsDynamodbTypes.KeySchemaElement).Dtor_KeyType()), + } + }() +} +func Com_amazonaws_dynamodb_KeySchemaElement_AttributeName_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 Com_amazonaws_dynamodb_KeySchemaElement_KeyType_FromDafny(input interface{}) types.KeyType { + return func() types.KeyType { + var u types.KeyType + + inputEnum := input.(ComAmazonawsDynamodbTypes.KeyType) + index := -1 + for allEnums := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_KeyType_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(ComAmazonawsDynamodbTypes.KeyType).Equals(inputEnum) { + break + } + } + } + return u.Values()[index] + }() +} +func Com_amazonaws_dynamodb_CreateTableInput_LocalSecondaryIndexes_FromDafny(input interface{}) []types.LocalSecondaryIndex { + return func() []types.LocalSecondaryIndex { + var fieldValue []types.LocalSecondaryIndex + if input == nil { + return nil + } + for i := dafny.Iterate(input.(dafny.Sequence).(dafny.Sequence)); ; { + val, ok := i() + if !ok { + break + } + fieldValue = append(fieldValue, Com_amazonaws_dynamodb_LocalSecondaryIndexList_member_FromDafny(val)) + } + return fieldValue + }() +} +func Com_amazonaws_dynamodb_LocalSecondaryIndexList_member_FromDafny(input interface{}) types.LocalSecondaryIndex { + return func() types.LocalSecondaryIndex { + + return types.LocalSecondaryIndex{ + IndexName: Com_amazonaws_dynamodb_LocalSecondaryIndex_IndexName_FromDafny(input.(ComAmazonawsDynamodbTypes.LocalSecondaryIndex).Dtor_IndexName()), + KeySchema: Com_amazonaws_dynamodb_LocalSecondaryIndex_KeySchema_FromDafny(input.(ComAmazonawsDynamodbTypes.LocalSecondaryIndex).Dtor_KeySchema()), + Projection: Com_amazonaws_dynamodb_LocalSecondaryIndex_Projection_FromDafny(input.(ComAmazonawsDynamodbTypes.LocalSecondaryIndex).Dtor_Projection()), + } + }() +} +func Com_amazonaws_dynamodb_LocalSecondaryIndex_IndexName_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 Com_amazonaws_dynamodb_LocalSecondaryIndex_KeySchema_FromDafny(input interface{}) []types.KeySchemaElement { + return func() []types.KeySchemaElement { + var fieldValue []types.KeySchemaElement + + for i := dafny.Iterate(input.(dafny.Sequence)); ; { + val, ok := i() + if !ok { + break + } + fieldValue = append(fieldValue, Com_amazonaws_dynamodb_KeySchema_member_FromDafny(val)) + } + return fieldValue + }() +} +func Com_amazonaws_dynamodb_LocalSecondaryIndex_Projection_FromDafny(input interface{}) *types.Projection { + return func() *types.Projection { + + return &types.Projection{ + ProjectionType: Com_amazonaws_dynamodb_Projection_ProjectionType_FromDafny(input.(ComAmazonawsDynamodbTypes.Projection).Dtor_ProjectionType().UnwrapOr(nil)), + NonKeyAttributes: Com_amazonaws_dynamodb_Projection_NonKeyAttributes_FromDafny(input.(ComAmazonawsDynamodbTypes.Projection).Dtor_NonKeyAttributes().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_dynamodb_Projection_ProjectionType_FromDafny(input interface{}) types.ProjectionType { + return func() types.ProjectionType { + var u types.ProjectionType + if input == nil { + return u + } + + inputEnum := input.(ComAmazonawsDynamodbTypes.ProjectionType) + index := -1 + for allEnums := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_ProjectionType_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(ComAmazonawsDynamodbTypes.ProjectionType).Equals(inputEnum) { + break + } + } + } + return u.Values()[index] + }() +} +func Com_amazonaws_dynamodb_Projection_NonKeyAttributes_FromDafny(input interface{}) []string { + return func() []string { + var fieldValue []string + if input == nil { + return nil + } + for i := dafny.Iterate(input.(dafny.Sequence).(dafny.Sequence)); ; { + val, ok := i() + if !ok { + break + } + fieldValue = append(fieldValue, Com_amazonaws_dynamodb_NonKeyAttributeNameList_member_FromDafny(val)) + } + return fieldValue + }() +} +func Com_amazonaws_dynamodb_NonKeyAttributeNameList_member_FromDafny(input interface{}) string { + return func() string { + + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return s + }() +} +func Com_amazonaws_dynamodb_CreateTableInput_GlobalSecondaryIndexes_FromDafny(input interface{}) []types.GlobalSecondaryIndex { + return func() []types.GlobalSecondaryIndex { + var fieldValue []types.GlobalSecondaryIndex + if input == nil { + return nil + } + for i := dafny.Iterate(input.(dafny.Sequence).(dafny.Sequence)); ; { + val, ok := i() + if !ok { + break + } + fieldValue = append(fieldValue, Com_amazonaws_dynamodb_GlobalSecondaryIndexList_member_FromDafny(val)) + } + return fieldValue + }() +} +func Com_amazonaws_dynamodb_GlobalSecondaryIndexList_member_FromDafny(input interface{}) types.GlobalSecondaryIndex { + return func() types.GlobalSecondaryIndex { + + return types.GlobalSecondaryIndex{ + IndexName: Com_amazonaws_dynamodb_GlobalSecondaryIndex_IndexName_FromDafny(input.(ComAmazonawsDynamodbTypes.GlobalSecondaryIndex).Dtor_IndexName()), + KeySchema: Com_amazonaws_dynamodb_GlobalSecondaryIndex_KeySchema_FromDafny(input.(ComAmazonawsDynamodbTypes.GlobalSecondaryIndex).Dtor_KeySchema()), + Projection: Com_amazonaws_dynamodb_GlobalSecondaryIndex_Projection_FromDafny(input.(ComAmazonawsDynamodbTypes.GlobalSecondaryIndex).Dtor_Projection()), + ProvisionedThroughput: Com_amazonaws_dynamodb_GlobalSecondaryIndex_ProvisionedThroughput_FromDafny(input.(ComAmazonawsDynamodbTypes.GlobalSecondaryIndex).Dtor_ProvisionedThroughput().UnwrapOr(nil)), + OnDemandThroughput: Com_amazonaws_dynamodb_GlobalSecondaryIndex_OnDemandThroughput_FromDafny(input.(ComAmazonawsDynamodbTypes.GlobalSecondaryIndex).Dtor_OnDemandThroughput().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_dynamodb_GlobalSecondaryIndex_IndexName_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 Com_amazonaws_dynamodb_GlobalSecondaryIndex_KeySchema_FromDafny(input interface{}) []types.KeySchemaElement { + return func() []types.KeySchemaElement { + var fieldValue []types.KeySchemaElement + + for i := dafny.Iterate(input.(dafny.Sequence)); ; { + val, ok := i() + if !ok { + break + } + fieldValue = append(fieldValue, Com_amazonaws_dynamodb_KeySchema_member_FromDafny(val)) + } + return fieldValue + }() +} +func Com_amazonaws_dynamodb_GlobalSecondaryIndex_Projection_FromDafny(input interface{}) *types.Projection { + return func() *types.Projection { + + return &types.Projection{ + ProjectionType: Com_amazonaws_dynamodb_Projection_ProjectionType_FromDafny(input.(ComAmazonawsDynamodbTypes.Projection).Dtor_ProjectionType().UnwrapOr(nil)), + NonKeyAttributes: Com_amazonaws_dynamodb_Projection_NonKeyAttributes_FromDafny(input.(ComAmazonawsDynamodbTypes.Projection).Dtor_NonKeyAttributes().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_dynamodb_GlobalSecondaryIndex_ProvisionedThroughput_FromDafny(input interface{}) *types.ProvisionedThroughput { + return func() *types.ProvisionedThroughput { + if input == nil { + return nil + } + return &types.ProvisionedThroughput{ + ReadCapacityUnits: Com_amazonaws_dynamodb_ProvisionedThroughput_ReadCapacityUnits_FromDafny(input.(ComAmazonawsDynamodbTypes.ProvisionedThroughput).Dtor_ReadCapacityUnits()), + WriteCapacityUnits: Com_amazonaws_dynamodb_ProvisionedThroughput_WriteCapacityUnits_FromDafny(input.(ComAmazonawsDynamodbTypes.ProvisionedThroughput).Dtor_WriteCapacityUnits()), + } + }() +} +func Com_amazonaws_dynamodb_ProvisionedThroughput_ReadCapacityUnits_FromDafny(input interface{}) *int64 { + return func() *int64 { + var i int64 + + i = input.(int64) + return &i + }() +} +func Com_amazonaws_dynamodb_ProvisionedThroughput_WriteCapacityUnits_FromDafny(input interface{}) *int64 { + return func() *int64 { + var i int64 + + i = input.(int64) + return &i + }() +} +func Com_amazonaws_dynamodb_GlobalSecondaryIndex_OnDemandThroughput_FromDafny(input interface{}) *types.OnDemandThroughput { + return func() *types.OnDemandThroughput { + if input == nil { + return nil + } + return &types.OnDemandThroughput{ + MaxReadRequestUnits: Com_amazonaws_dynamodb_OnDemandThroughput_MaxReadRequestUnits_FromDafny(input.(ComAmazonawsDynamodbTypes.OnDemandThroughput).Dtor_MaxReadRequestUnits().UnwrapOr(nil)), + MaxWriteRequestUnits: Com_amazonaws_dynamodb_OnDemandThroughput_MaxWriteRequestUnits_FromDafny(input.(ComAmazonawsDynamodbTypes.OnDemandThroughput).Dtor_MaxWriteRequestUnits().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_dynamodb_OnDemandThroughput_MaxReadRequestUnits_FromDafny(input interface{}) *int64 { + return func() *int64 { + var i int64 + if input == nil { + return nil + } + i = input.(int64) + return &i + }() +} +func Com_amazonaws_dynamodb_OnDemandThroughput_MaxWriteRequestUnits_FromDafny(input interface{}) *int64 { + return func() *int64 { + var i int64 + if input == nil { + return nil + } + i = input.(int64) + return &i + }() +} +func Com_amazonaws_dynamodb_CreateTableInput_BillingMode_FromDafny(input interface{}) types.BillingMode { + return func() types.BillingMode { + var u types.BillingMode + if input == nil { + return u + } + + inputEnum := input.(ComAmazonawsDynamodbTypes.BillingMode) + index := -1 + for allEnums := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_BillingMode_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(ComAmazonawsDynamodbTypes.BillingMode).Equals(inputEnum) { + break + } + } + } + return u.Values()[index] + }() +} +func Com_amazonaws_dynamodb_CreateTableInput_ProvisionedThroughput_FromDafny(input interface{}) *types.ProvisionedThroughput { + return func() *types.ProvisionedThroughput { + if input == nil { + return nil + } + return &types.ProvisionedThroughput{ + ReadCapacityUnits: Com_amazonaws_dynamodb_ProvisionedThroughput_ReadCapacityUnits_FromDafny(input.(ComAmazonawsDynamodbTypes.ProvisionedThroughput).Dtor_ReadCapacityUnits()), + WriteCapacityUnits: Com_amazonaws_dynamodb_ProvisionedThroughput_WriteCapacityUnits_FromDafny(input.(ComAmazonawsDynamodbTypes.ProvisionedThroughput).Dtor_WriteCapacityUnits()), + } + }() +} +func Com_amazonaws_dynamodb_CreateTableInput_StreamSpecification_FromDafny(input interface{}) *types.StreamSpecification { + return func() *types.StreamSpecification { + if input == nil { + return nil + } + return &types.StreamSpecification{ + StreamEnabled: Com_amazonaws_dynamodb_StreamSpecification_StreamEnabled_FromDafny(input.(ComAmazonawsDynamodbTypes.StreamSpecification).Dtor_StreamEnabled()), + StreamViewType: Com_amazonaws_dynamodb_StreamSpecification_StreamViewType_FromDafny(input.(ComAmazonawsDynamodbTypes.StreamSpecification).Dtor_StreamViewType().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_dynamodb_StreamSpecification_StreamEnabled_FromDafny(input interface{}) *bool { + return func() *bool { + var b bool + + b = input.(bool) + return &b + }() +} +func Com_amazonaws_dynamodb_StreamSpecification_StreamViewType_FromDafny(input interface{}) types.StreamViewType { + return func() types.StreamViewType { + var u types.StreamViewType + if input == nil { + return u + } + + inputEnum := input.(ComAmazonawsDynamodbTypes.StreamViewType) + index := -1 + for allEnums := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_StreamViewType_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(ComAmazonawsDynamodbTypes.StreamViewType).Equals(inputEnum) { + break + } + } + } + return u.Values()[index] + }() +} +func Com_amazonaws_dynamodb_CreateTableInput_SSESpecification_FromDafny(input interface{}) *types.SSESpecification { + return func() *types.SSESpecification { + if input == nil { + return nil + } + return &types.SSESpecification{ + Enabled: Com_amazonaws_dynamodb_SSESpecification_Enabled_FromDafny(input.(ComAmazonawsDynamodbTypes.SSESpecification).Dtor_Enabled().UnwrapOr(nil)), + SSEType: Com_amazonaws_dynamodb_SSESpecification_SSEType_FromDafny(input.(ComAmazonawsDynamodbTypes.SSESpecification).Dtor_SSEType().UnwrapOr(nil)), + KMSMasterKeyId: Com_amazonaws_dynamodb_SSESpecification_KMSMasterKeyId_FromDafny(input.(ComAmazonawsDynamodbTypes.SSESpecification).Dtor_KMSMasterKeyId().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_dynamodb_SSESpecification_Enabled_FromDafny(input interface{}) *bool { + return func() *bool { + var b bool + if input == nil { + return nil + } + b = input.(bool) + return &b + }() +} +func Com_amazonaws_dynamodb_SSESpecification_SSEType_FromDafny(input interface{}) types.SSEType { + return func() types.SSEType { + var u types.SSEType + if input == nil { + return u + } + + inputEnum := input.(ComAmazonawsDynamodbTypes.SSEType) + index := -1 + for allEnums := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_SSEType_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(ComAmazonawsDynamodbTypes.SSEType).Equals(inputEnum) { + break + } + } + } + return u.Values()[index] + }() +} +func Com_amazonaws_dynamodb_SSESpecification_KMSMasterKeyId_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_CreateTableInput_Tags_FromDafny(input interface{}) []types.Tag { + return func() []types.Tag { + var fieldValue []types.Tag + if input == nil { + return nil + } + for i := dafny.Iterate(input.(dafny.Sequence).(dafny.Sequence)); ; { + val, ok := i() + if !ok { + break + } + fieldValue = append(fieldValue, Com_amazonaws_dynamodb_TagList_member_FromDafny(val)) + } + return fieldValue + }() +} +func Com_amazonaws_dynamodb_TagList_member_FromDafny(input interface{}) types.Tag { + return func() types.Tag { + + return types.Tag{ + Key: Com_amazonaws_dynamodb_Tag_Key_FromDafny(input.(ComAmazonawsDynamodbTypes.Tag).Dtor_Key()), + Value: Com_amazonaws_dynamodb_Tag_Value_FromDafny(input.(ComAmazonawsDynamodbTypes.Tag).Dtor_Value()), + } + }() +} +func Com_amazonaws_dynamodb_Tag_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 Com_amazonaws_dynamodb_Tag_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 Com_amazonaws_dynamodb_CreateTableInput_TableClass_FromDafny(input interface{}) types.TableClass { + return func() types.TableClass { + var u types.TableClass + if input == nil { + return u + } + + inputEnum := input.(ComAmazonawsDynamodbTypes.TableClass) + index := -1 + for allEnums := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_TableClass_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(ComAmazonawsDynamodbTypes.TableClass).Equals(inputEnum) { + break + } + } + } + return u.Values()[index] + }() +} +func Com_amazonaws_dynamodb_CreateTableInput_DeletionProtectionEnabled_FromDafny(input interface{}) *bool { + return func() *bool { + var b bool + if input == nil { + return nil + } + b = input.(bool) + return &b + }() +} +func Com_amazonaws_dynamodb_CreateTableInput_ResourcePolicy_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_CreateTableInput_OnDemandThroughput_FromDafny(input interface{}) *types.OnDemandThroughput { + return func() *types.OnDemandThroughput { + if input == nil { + return nil + } + return &types.OnDemandThroughput{ + MaxReadRequestUnits: Com_amazonaws_dynamodb_OnDemandThroughput_MaxReadRequestUnits_FromDafny(input.(ComAmazonawsDynamodbTypes.OnDemandThroughput).Dtor_MaxReadRequestUnits().UnwrapOr(nil)), + MaxWriteRequestUnits: Com_amazonaws_dynamodb_OnDemandThroughput_MaxWriteRequestUnits_FromDafny(input.(ComAmazonawsDynamodbTypes.OnDemandThroughput).Dtor_MaxWriteRequestUnits().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_dynamodb_CreateTableOutput_TableDescription_FromDafny(input interface{}) *types.TableDescription { + return func() *types.TableDescription { + if input == nil { + return nil + } + return &types.TableDescription{ + AttributeDefinitions: Com_amazonaws_dynamodb_TableDescription_AttributeDefinitions_FromDafny(input.(ComAmazonawsDynamodbTypes.TableDescription).Dtor_AttributeDefinitions().UnwrapOr(nil)), + TableName: Com_amazonaws_dynamodb_TableDescription_TableName_FromDafny(input.(ComAmazonawsDynamodbTypes.TableDescription).Dtor_TableName().UnwrapOr(nil)), + KeySchema: Com_amazonaws_dynamodb_TableDescription_KeySchema_FromDafny(input.(ComAmazonawsDynamodbTypes.TableDescription).Dtor_KeySchema().UnwrapOr(nil)), + TableStatus: Com_amazonaws_dynamodb_TableDescription_TableStatus_FromDafny(input.(ComAmazonawsDynamodbTypes.TableDescription).Dtor_TableStatus().UnwrapOr(nil)), + CreationDateTime: Com_amazonaws_dynamodb_TableDescription_CreationDateTime_FromDafny(input.(ComAmazonawsDynamodbTypes.TableDescription).Dtor_CreationDateTime().UnwrapOr(nil)), + ProvisionedThroughput: Com_amazonaws_dynamodb_TableDescription_ProvisionedThroughput_FromDafny(input.(ComAmazonawsDynamodbTypes.TableDescription).Dtor_ProvisionedThroughput().UnwrapOr(nil)), + TableSizeBytes: Com_amazonaws_dynamodb_TableDescription_TableSizeBytes_FromDafny(input.(ComAmazonawsDynamodbTypes.TableDescription).Dtor_TableSizeBytes().UnwrapOr(nil)), + ItemCount: Com_amazonaws_dynamodb_TableDescription_ItemCount_FromDafny(input.(ComAmazonawsDynamodbTypes.TableDescription).Dtor_ItemCount().UnwrapOr(nil)), + TableArn: Com_amazonaws_dynamodb_TableDescription_TableArn_FromDafny(input.(ComAmazonawsDynamodbTypes.TableDescription).Dtor_TableArn().UnwrapOr(nil)), + TableId: Com_amazonaws_dynamodb_TableDescription_TableId_FromDafny(input.(ComAmazonawsDynamodbTypes.TableDescription).Dtor_TableId().UnwrapOr(nil)), + BillingModeSummary: Com_amazonaws_dynamodb_TableDescription_BillingModeSummary_FromDafny(input.(ComAmazonawsDynamodbTypes.TableDescription).Dtor_BillingModeSummary().UnwrapOr(nil)), + LocalSecondaryIndexes: Com_amazonaws_dynamodb_TableDescription_LocalSecondaryIndexes_FromDafny(input.(ComAmazonawsDynamodbTypes.TableDescription).Dtor_LocalSecondaryIndexes().UnwrapOr(nil)), + GlobalSecondaryIndexes: Com_amazonaws_dynamodb_TableDescription_GlobalSecondaryIndexes_FromDafny(input.(ComAmazonawsDynamodbTypes.TableDescription).Dtor_GlobalSecondaryIndexes().UnwrapOr(nil)), + StreamSpecification: Com_amazonaws_dynamodb_TableDescription_StreamSpecification_FromDafny(input.(ComAmazonawsDynamodbTypes.TableDescription).Dtor_StreamSpecification().UnwrapOr(nil)), + LatestStreamLabel: Com_amazonaws_dynamodb_TableDescription_LatestStreamLabel_FromDafny(input.(ComAmazonawsDynamodbTypes.TableDescription).Dtor_LatestStreamLabel().UnwrapOr(nil)), + LatestStreamArn: Com_amazonaws_dynamodb_TableDescription_LatestStreamArn_FromDafny(input.(ComAmazonawsDynamodbTypes.TableDescription).Dtor_LatestStreamArn().UnwrapOr(nil)), + GlobalTableVersion: Com_amazonaws_dynamodb_TableDescription_GlobalTableVersion_FromDafny(input.(ComAmazonawsDynamodbTypes.TableDescription).Dtor_GlobalTableVersion().UnwrapOr(nil)), + Replicas: Com_amazonaws_dynamodb_TableDescription_Replicas_FromDafny(input.(ComAmazonawsDynamodbTypes.TableDescription).Dtor_Replicas().UnwrapOr(nil)), + RestoreSummary: Com_amazonaws_dynamodb_TableDescription_RestoreSummary_FromDafny(input.(ComAmazonawsDynamodbTypes.TableDescription).Dtor_RestoreSummary().UnwrapOr(nil)), + SSEDescription: Com_amazonaws_dynamodb_TableDescription_SSEDescription_FromDafny(input.(ComAmazonawsDynamodbTypes.TableDescription).Dtor_SSEDescription().UnwrapOr(nil)), + ArchivalSummary: Com_amazonaws_dynamodb_TableDescription_ArchivalSummary_FromDafny(input.(ComAmazonawsDynamodbTypes.TableDescription).Dtor_ArchivalSummary().UnwrapOr(nil)), + TableClassSummary: Com_amazonaws_dynamodb_TableDescription_TableClassSummary_FromDafny(input.(ComAmazonawsDynamodbTypes.TableDescription).Dtor_TableClassSummary().UnwrapOr(nil)), + DeletionProtectionEnabled: Com_amazonaws_dynamodb_TableDescription_DeletionProtectionEnabled_FromDafny(input.(ComAmazonawsDynamodbTypes.TableDescription).Dtor_DeletionProtectionEnabled().UnwrapOr(nil)), + OnDemandThroughput: Com_amazonaws_dynamodb_TableDescription_OnDemandThroughput_FromDafny(input.(ComAmazonawsDynamodbTypes.TableDescription).Dtor_OnDemandThroughput().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_dynamodb_TableDescription_AttributeDefinitions_FromDafny(input interface{}) []types.AttributeDefinition { + return func() []types.AttributeDefinition { + var fieldValue []types.AttributeDefinition + if input == nil { + return nil + } + for i := dafny.Iterate(input.(dafny.Sequence).(dafny.Sequence)); ; { + val, ok := i() + if !ok { + break + } + fieldValue = append(fieldValue, Com_amazonaws_dynamodb_AttributeDefinitions_member_FromDafny(val)) + } + return fieldValue + }() +} +func Com_amazonaws_dynamodb_TableDescription_TableName_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_TableDescription_KeySchema_FromDafny(input interface{}) []types.KeySchemaElement { + return func() []types.KeySchemaElement { + var fieldValue []types.KeySchemaElement + if input == nil { + return nil + } + for i := dafny.Iterate(input.(dafny.Sequence).(dafny.Sequence)); ; { + val, ok := i() + if !ok { + break + } + fieldValue = append(fieldValue, Com_amazonaws_dynamodb_KeySchema_member_FromDafny(val)) + } + return fieldValue + }() +} +func Com_amazonaws_dynamodb_TableDescription_TableStatus_FromDafny(input interface{}) types.TableStatus { + return func() types.TableStatus { + var u types.TableStatus + if input == nil { + return u + } + + inputEnum := input.(ComAmazonawsDynamodbTypes.TableStatus) + index := -1 + for allEnums := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_TableStatus_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(ComAmazonawsDynamodbTypes.TableStatus).Equals(inputEnum) { + break + } + } + } + return u.Values()[index] + }() +} +func Com_amazonaws_dynamodb_TableDescription_CreationDateTime_FromDafny(input interface{}) *time.Time { + return func() *time.Time { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + if len(s) == 0 { + panic("timestamp string is empty") + } else { + t, err := time.Parse("2006-01-02T15:04:05.999999Z", s) + if err != nil { + panic(err) + } + return &t + } + }() +} +func Com_amazonaws_dynamodb_TableDescription_ProvisionedThroughput_FromDafny(input interface{}) *types.ProvisionedThroughputDescription { + return func() *types.ProvisionedThroughputDescription { + if input == nil { + return nil + } + return &types.ProvisionedThroughputDescription{ + LastIncreaseDateTime: Com_amazonaws_dynamodb_ProvisionedThroughputDescription_LastIncreaseDateTime_FromDafny(input.(ComAmazonawsDynamodbTypes.ProvisionedThroughputDescription).Dtor_LastIncreaseDateTime().UnwrapOr(nil)), + LastDecreaseDateTime: Com_amazonaws_dynamodb_ProvisionedThroughputDescription_LastDecreaseDateTime_FromDafny(input.(ComAmazonawsDynamodbTypes.ProvisionedThroughputDescription).Dtor_LastDecreaseDateTime().UnwrapOr(nil)), + NumberOfDecreasesToday: Com_amazonaws_dynamodb_ProvisionedThroughputDescription_NumberOfDecreasesToday_FromDafny(input.(ComAmazonawsDynamodbTypes.ProvisionedThroughputDescription).Dtor_NumberOfDecreasesToday().UnwrapOr(nil)), + ReadCapacityUnits: Com_amazonaws_dynamodb_ProvisionedThroughputDescription_ReadCapacityUnits_FromDafny(input.(ComAmazonawsDynamodbTypes.ProvisionedThroughputDescription).Dtor_ReadCapacityUnits().UnwrapOr(nil)), + WriteCapacityUnits: Com_amazonaws_dynamodb_ProvisionedThroughputDescription_WriteCapacityUnits_FromDafny(input.(ComAmazonawsDynamodbTypes.ProvisionedThroughputDescription).Dtor_WriteCapacityUnits().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_dynamodb_ProvisionedThroughputDescription_LastIncreaseDateTime_FromDafny(input interface{}) *time.Time { + return func() *time.Time { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + if len(s) == 0 { + panic("timestamp string is empty") + } else { + t, err := time.Parse("2006-01-02T15:04:05.999999Z", s) + if err != nil { + panic(err) + } + return &t + } + }() +} +func Com_amazonaws_dynamodb_ProvisionedThroughputDescription_LastDecreaseDateTime_FromDafny(input interface{}) *time.Time { + return func() *time.Time { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + if len(s) == 0 { + panic("timestamp string is empty") + } else { + t, err := time.Parse("2006-01-02T15:04:05.999999Z", s) + if err != nil { + panic(err) + } + return &t + } + }() +} +func Com_amazonaws_dynamodb_ProvisionedThroughputDescription_NumberOfDecreasesToday_FromDafny(input interface{}) *int64 { + return func() *int64 { + var i int64 + if input == nil { + return nil + } + i = input.(int64) + return &i + }() +} +func Com_amazonaws_dynamodb_ProvisionedThroughputDescription_ReadCapacityUnits_FromDafny(input interface{}) *int64 { + return func() *int64 { + var i int64 + if input == nil { + return nil + } + i = input.(int64) + return &i + }() +} +func Com_amazonaws_dynamodb_ProvisionedThroughputDescription_WriteCapacityUnits_FromDafny(input interface{}) *int64 { + return func() *int64 { + var i int64 + if input == nil { + return nil + } + i = input.(int64) + return &i + }() +} +func Com_amazonaws_dynamodb_TableDescription_TableSizeBytes_FromDafny(input interface{}) *int64 { + return func() *int64 { + var i int64 + if input == nil { + return nil + } + i = input.(int64) + return &i + }() +} +func Com_amazonaws_dynamodb_TableDescription_ItemCount_FromDafny(input interface{}) *int64 { + return func() *int64 { + var i int64 + if input == nil { + return nil + } + i = input.(int64) + return &i + }() +} +func Com_amazonaws_dynamodb_TableDescription_TableArn_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_TableDescription_TableId_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_TableDescription_BillingModeSummary_FromDafny(input interface{}) *types.BillingModeSummary { + return func() *types.BillingModeSummary { + if input == nil { + return nil + } + return &types.BillingModeSummary{ + BillingMode: Com_amazonaws_dynamodb_BillingModeSummary_BillingMode_FromDafny(input.(ComAmazonawsDynamodbTypes.BillingModeSummary).Dtor_BillingMode().UnwrapOr(nil)), + LastUpdateToPayPerRequestDateTime: Com_amazonaws_dynamodb_BillingModeSummary_LastUpdateToPayPerRequestDateTime_FromDafny(input.(ComAmazonawsDynamodbTypes.BillingModeSummary).Dtor_LastUpdateToPayPerRequestDateTime().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_dynamodb_BillingModeSummary_BillingMode_FromDafny(input interface{}) types.BillingMode { + return func() types.BillingMode { + var u types.BillingMode + if input == nil { + return u + } + + inputEnum := input.(ComAmazonawsDynamodbTypes.BillingMode) + index := -1 + for allEnums := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_BillingMode_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(ComAmazonawsDynamodbTypes.BillingMode).Equals(inputEnum) { + break + } + } + } + return u.Values()[index] + }() +} +func Com_amazonaws_dynamodb_BillingModeSummary_LastUpdateToPayPerRequestDateTime_FromDafny(input interface{}) *time.Time { + return func() *time.Time { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + if len(s) == 0 { + panic("timestamp string is empty") + } else { + t, err := time.Parse("2006-01-02T15:04:05.999999Z", s) + if err != nil { + panic(err) + } + return &t + } + }() +} +func Com_amazonaws_dynamodb_TableDescription_LocalSecondaryIndexes_FromDafny(input interface{}) []types.LocalSecondaryIndexDescription { + return func() []types.LocalSecondaryIndexDescription { + var fieldValue []types.LocalSecondaryIndexDescription + if input == nil { + return nil + } + for i := dafny.Iterate(input.(dafny.Sequence).(dafny.Sequence)); ; { + val, ok := i() + if !ok { + break + } + fieldValue = append(fieldValue, Com_amazonaws_dynamodb_LocalSecondaryIndexDescriptionList_member_FromDafny(val)) + } + return fieldValue + }() +} +func Com_amazonaws_dynamodb_LocalSecondaryIndexDescriptionList_member_FromDafny(input interface{}) types.LocalSecondaryIndexDescription { + return func() types.LocalSecondaryIndexDescription { + + return types.LocalSecondaryIndexDescription{ + IndexName: Com_amazonaws_dynamodb_LocalSecondaryIndexDescription_IndexName_FromDafny(input.(ComAmazonawsDynamodbTypes.LocalSecondaryIndexDescription).Dtor_IndexName().UnwrapOr(nil)), + KeySchema: Com_amazonaws_dynamodb_LocalSecondaryIndexDescription_KeySchema_FromDafny(input.(ComAmazonawsDynamodbTypes.LocalSecondaryIndexDescription).Dtor_KeySchema().UnwrapOr(nil)), + Projection: Com_amazonaws_dynamodb_LocalSecondaryIndexDescription_Projection_FromDafny(input.(ComAmazonawsDynamodbTypes.LocalSecondaryIndexDescription).Dtor_Projection().UnwrapOr(nil)), + IndexSizeBytes: Com_amazonaws_dynamodb_LocalSecondaryIndexDescription_IndexSizeBytes_FromDafny(input.(ComAmazonawsDynamodbTypes.LocalSecondaryIndexDescription).Dtor_IndexSizeBytes().UnwrapOr(nil)), + ItemCount: Com_amazonaws_dynamodb_LocalSecondaryIndexDescription_ItemCount_FromDafny(input.(ComAmazonawsDynamodbTypes.LocalSecondaryIndexDescription).Dtor_ItemCount().UnwrapOr(nil)), + IndexArn: Com_amazonaws_dynamodb_LocalSecondaryIndexDescription_IndexArn_FromDafny(input.(ComAmazonawsDynamodbTypes.LocalSecondaryIndexDescription).Dtor_IndexArn().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_dynamodb_LocalSecondaryIndexDescription_IndexName_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_LocalSecondaryIndexDescription_KeySchema_FromDafny(input interface{}) []types.KeySchemaElement { + return func() []types.KeySchemaElement { + var fieldValue []types.KeySchemaElement + if input == nil { + return nil + } + for i := dafny.Iterate(input.(dafny.Sequence).(dafny.Sequence)); ; { + val, ok := i() + if !ok { + break + } + fieldValue = append(fieldValue, Com_amazonaws_dynamodb_KeySchema_member_FromDafny(val)) + } + return fieldValue + }() +} +func Com_amazonaws_dynamodb_LocalSecondaryIndexDescription_Projection_FromDafny(input interface{}) *types.Projection { + return func() *types.Projection { + if input == nil { + return nil + } + return &types.Projection{ + ProjectionType: Com_amazonaws_dynamodb_Projection_ProjectionType_FromDafny(input.(ComAmazonawsDynamodbTypes.Projection).Dtor_ProjectionType().UnwrapOr(nil)), + NonKeyAttributes: Com_amazonaws_dynamodb_Projection_NonKeyAttributes_FromDafny(input.(ComAmazonawsDynamodbTypes.Projection).Dtor_NonKeyAttributes().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_dynamodb_LocalSecondaryIndexDescription_IndexSizeBytes_FromDafny(input interface{}) *int64 { + return func() *int64 { + var i int64 + if input == nil { + return nil + } + i = input.(int64) + return &i + }() +} +func Com_amazonaws_dynamodb_LocalSecondaryIndexDescription_ItemCount_FromDafny(input interface{}) *int64 { + return func() *int64 { + var i int64 + if input == nil { + return nil + } + i = input.(int64) + return &i + }() +} +func Com_amazonaws_dynamodb_LocalSecondaryIndexDescription_IndexArn_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_TableDescription_GlobalSecondaryIndexes_FromDafny(input interface{}) []types.GlobalSecondaryIndexDescription { + return func() []types.GlobalSecondaryIndexDescription { + var fieldValue []types.GlobalSecondaryIndexDescription + if input == nil { + return nil + } + for i := dafny.Iterate(input.(dafny.Sequence).(dafny.Sequence)); ; { + val, ok := i() + if !ok { + break + } + fieldValue = append(fieldValue, Com_amazonaws_dynamodb_GlobalSecondaryIndexDescriptionList_member_FromDafny(val)) + } + return fieldValue + }() +} +func Com_amazonaws_dynamodb_GlobalSecondaryIndexDescriptionList_member_FromDafny(input interface{}) types.GlobalSecondaryIndexDescription { + return func() types.GlobalSecondaryIndexDescription { + + return types.GlobalSecondaryIndexDescription{ + IndexName: Com_amazonaws_dynamodb_GlobalSecondaryIndexDescription_IndexName_FromDafny(input.(ComAmazonawsDynamodbTypes.GlobalSecondaryIndexDescription).Dtor_IndexName().UnwrapOr(nil)), + KeySchema: Com_amazonaws_dynamodb_GlobalSecondaryIndexDescription_KeySchema_FromDafny(input.(ComAmazonawsDynamodbTypes.GlobalSecondaryIndexDescription).Dtor_KeySchema().UnwrapOr(nil)), + Projection: Com_amazonaws_dynamodb_GlobalSecondaryIndexDescription_Projection_FromDafny(input.(ComAmazonawsDynamodbTypes.GlobalSecondaryIndexDescription).Dtor_Projection().UnwrapOr(nil)), + IndexStatus: Com_amazonaws_dynamodb_GlobalSecondaryIndexDescription_IndexStatus_FromDafny(input.(ComAmazonawsDynamodbTypes.GlobalSecondaryIndexDescription).Dtor_IndexStatus().UnwrapOr(nil)), + Backfilling: Com_amazonaws_dynamodb_GlobalSecondaryIndexDescription_Backfilling_FromDafny(input.(ComAmazonawsDynamodbTypes.GlobalSecondaryIndexDescription).Dtor_Backfilling().UnwrapOr(nil)), + ProvisionedThroughput: Com_amazonaws_dynamodb_GlobalSecondaryIndexDescription_ProvisionedThroughput_FromDafny(input.(ComAmazonawsDynamodbTypes.GlobalSecondaryIndexDescription).Dtor_ProvisionedThroughput().UnwrapOr(nil)), + IndexSizeBytes: Com_amazonaws_dynamodb_GlobalSecondaryIndexDescription_IndexSizeBytes_FromDafny(input.(ComAmazonawsDynamodbTypes.GlobalSecondaryIndexDescription).Dtor_IndexSizeBytes().UnwrapOr(nil)), + ItemCount: Com_amazonaws_dynamodb_GlobalSecondaryIndexDescription_ItemCount_FromDafny(input.(ComAmazonawsDynamodbTypes.GlobalSecondaryIndexDescription).Dtor_ItemCount().UnwrapOr(nil)), + IndexArn: Com_amazonaws_dynamodb_GlobalSecondaryIndexDescription_IndexArn_FromDafny(input.(ComAmazonawsDynamodbTypes.GlobalSecondaryIndexDescription).Dtor_IndexArn().UnwrapOr(nil)), + OnDemandThroughput: Com_amazonaws_dynamodb_GlobalSecondaryIndexDescription_OnDemandThroughput_FromDafny(input.(ComAmazonawsDynamodbTypes.GlobalSecondaryIndexDescription).Dtor_OnDemandThroughput().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_dynamodb_GlobalSecondaryIndexDescription_IndexName_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_GlobalSecondaryIndexDescription_KeySchema_FromDafny(input interface{}) []types.KeySchemaElement { + return func() []types.KeySchemaElement { + var fieldValue []types.KeySchemaElement + if input == nil { + return nil + } + for i := dafny.Iterate(input.(dafny.Sequence).(dafny.Sequence)); ; { + val, ok := i() + if !ok { + break + } + fieldValue = append(fieldValue, Com_amazonaws_dynamodb_KeySchema_member_FromDafny(val)) + } + return fieldValue + }() +} +func Com_amazonaws_dynamodb_GlobalSecondaryIndexDescription_Projection_FromDafny(input interface{}) *types.Projection { + return func() *types.Projection { + if input == nil { + return nil + } + return &types.Projection{ + ProjectionType: Com_amazonaws_dynamodb_Projection_ProjectionType_FromDafny(input.(ComAmazonawsDynamodbTypes.Projection).Dtor_ProjectionType().UnwrapOr(nil)), + NonKeyAttributes: Com_amazonaws_dynamodb_Projection_NonKeyAttributes_FromDafny(input.(ComAmazonawsDynamodbTypes.Projection).Dtor_NonKeyAttributes().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_dynamodb_GlobalSecondaryIndexDescription_IndexStatus_FromDafny(input interface{}) types.IndexStatus { + return func() types.IndexStatus { + var u types.IndexStatus + if input == nil { + return u + } + + inputEnum := input.(ComAmazonawsDynamodbTypes.IndexStatus) + index := -1 + for allEnums := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_IndexStatus_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(ComAmazonawsDynamodbTypes.IndexStatus).Equals(inputEnum) { + break + } + } + } + return u.Values()[index] + }() +} +func Com_amazonaws_dynamodb_GlobalSecondaryIndexDescription_Backfilling_FromDafny(input interface{}) *bool { + return func() *bool { + var b bool + if input == nil { + return nil + } + b = input.(bool) + return &b + }() +} +func Com_amazonaws_dynamodb_GlobalSecondaryIndexDescription_ProvisionedThroughput_FromDafny(input interface{}) *types.ProvisionedThroughputDescription { + return func() *types.ProvisionedThroughputDescription { + if input == nil { + return nil + } + return &types.ProvisionedThroughputDescription{ + LastIncreaseDateTime: Com_amazonaws_dynamodb_ProvisionedThroughputDescription_LastIncreaseDateTime_FromDafny(input.(ComAmazonawsDynamodbTypes.ProvisionedThroughputDescription).Dtor_LastIncreaseDateTime().UnwrapOr(nil)), + LastDecreaseDateTime: Com_amazonaws_dynamodb_ProvisionedThroughputDescription_LastDecreaseDateTime_FromDafny(input.(ComAmazonawsDynamodbTypes.ProvisionedThroughputDescription).Dtor_LastDecreaseDateTime().UnwrapOr(nil)), + NumberOfDecreasesToday: Com_amazonaws_dynamodb_ProvisionedThroughputDescription_NumberOfDecreasesToday_FromDafny(input.(ComAmazonawsDynamodbTypes.ProvisionedThroughputDescription).Dtor_NumberOfDecreasesToday().UnwrapOr(nil)), + ReadCapacityUnits: Com_amazonaws_dynamodb_ProvisionedThroughputDescription_ReadCapacityUnits_FromDafny(input.(ComAmazonawsDynamodbTypes.ProvisionedThroughputDescription).Dtor_ReadCapacityUnits().UnwrapOr(nil)), + WriteCapacityUnits: Com_amazonaws_dynamodb_ProvisionedThroughputDescription_WriteCapacityUnits_FromDafny(input.(ComAmazonawsDynamodbTypes.ProvisionedThroughputDescription).Dtor_WriteCapacityUnits().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_dynamodb_GlobalSecondaryIndexDescription_IndexSizeBytes_FromDafny(input interface{}) *int64 { + return func() *int64 { + var i int64 + if input == nil { + return nil + } + i = input.(int64) + return &i + }() +} +func Com_amazonaws_dynamodb_GlobalSecondaryIndexDescription_ItemCount_FromDafny(input interface{}) *int64 { + return func() *int64 { + var i int64 + if input == nil { + return nil + } + i = input.(int64) + return &i + }() +} +func Com_amazonaws_dynamodb_GlobalSecondaryIndexDescription_IndexArn_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_GlobalSecondaryIndexDescription_OnDemandThroughput_FromDafny(input interface{}) *types.OnDemandThroughput { + return func() *types.OnDemandThroughput { + if input == nil { + return nil + } + return &types.OnDemandThroughput{ + MaxReadRequestUnits: Com_amazonaws_dynamodb_OnDemandThroughput_MaxReadRequestUnits_FromDafny(input.(ComAmazonawsDynamodbTypes.OnDemandThroughput).Dtor_MaxReadRequestUnits().UnwrapOr(nil)), + MaxWriteRequestUnits: Com_amazonaws_dynamodb_OnDemandThroughput_MaxWriteRequestUnits_FromDafny(input.(ComAmazonawsDynamodbTypes.OnDemandThroughput).Dtor_MaxWriteRequestUnits().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_dynamodb_TableDescription_StreamSpecification_FromDafny(input interface{}) *types.StreamSpecification { + return func() *types.StreamSpecification { + if input == nil { + return nil + } + return &types.StreamSpecification{ + StreamEnabled: Com_amazonaws_dynamodb_StreamSpecification_StreamEnabled_FromDafny(input.(ComAmazonawsDynamodbTypes.StreamSpecification).Dtor_StreamEnabled()), + StreamViewType: Com_amazonaws_dynamodb_StreamSpecification_StreamViewType_FromDafny(input.(ComAmazonawsDynamodbTypes.StreamSpecification).Dtor_StreamViewType().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_dynamodb_TableDescription_LatestStreamLabel_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_TableDescription_LatestStreamArn_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_TableDescription_GlobalTableVersion_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_TableDescription_Replicas_FromDafny(input interface{}) []types.ReplicaDescription { + return func() []types.ReplicaDescription { + var fieldValue []types.ReplicaDescription + if input == nil { + return nil + } + for i := dafny.Iterate(input.(dafny.Sequence).(dafny.Sequence)); ; { + val, ok := i() + if !ok { + break + } + fieldValue = append(fieldValue, Com_amazonaws_dynamodb_ReplicaDescriptionList_member_FromDafny(val)) + } + return fieldValue + }() +} +func Com_amazonaws_dynamodb_TableDescription_RestoreSummary_FromDafny(input interface{}) *types.RestoreSummary { + return func() *types.RestoreSummary { + if input == nil { + return nil + } + return &types.RestoreSummary{ + SourceBackupArn: Com_amazonaws_dynamodb_RestoreSummary_SourceBackupArn_FromDafny(input.(ComAmazonawsDynamodbTypes.RestoreSummary).Dtor_SourceBackupArn().UnwrapOr(nil)), + SourceTableArn: Com_amazonaws_dynamodb_RestoreSummary_SourceTableArn_FromDafny(input.(ComAmazonawsDynamodbTypes.RestoreSummary).Dtor_SourceTableArn().UnwrapOr(nil)), + RestoreDateTime: Com_amazonaws_dynamodb_RestoreSummary_RestoreDateTime_FromDafny(input.(ComAmazonawsDynamodbTypes.RestoreSummary).Dtor_RestoreDateTime()), + RestoreInProgress: Com_amazonaws_dynamodb_RestoreSummary_RestoreInProgress_FromDafny(input.(ComAmazonawsDynamodbTypes.RestoreSummary).Dtor_RestoreInProgress()), + } + }() +} +func Com_amazonaws_dynamodb_RestoreSummary_SourceBackupArn_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_RestoreSummary_SourceTableArn_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_RestoreSummary_RestoreDateTime_FromDafny(input interface{}) *time.Time { + return func() *time.Time { + + a := UTF8.Encode(input.(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + if len(s) == 0 { + panic("timestamp string is empty") + } else { + t, err := time.Parse("2006-01-02T15:04:05.999999Z", s) + if err != nil { + panic(err) + } + return &t + } + }() +} +func Com_amazonaws_dynamodb_RestoreSummary_RestoreInProgress_FromDafny(input interface{}) *bool { + return func() *bool { + var b bool + + b = input.(bool) + return &b + }() +} +func Com_amazonaws_dynamodb_TableDescription_SSEDescription_FromDafny(input interface{}) *types.SSEDescription { + return func() *types.SSEDescription { + if input == nil { + return nil + } + return &types.SSEDescription{ + Status: Com_amazonaws_dynamodb_SSEDescription_Status_FromDafny(input.(ComAmazonawsDynamodbTypes.SSEDescription).Dtor_Status().UnwrapOr(nil)), + SSEType: Com_amazonaws_dynamodb_SSEDescription_SSEType_FromDafny(input.(ComAmazonawsDynamodbTypes.SSEDescription).Dtor_SSEType().UnwrapOr(nil)), + KMSMasterKeyArn: Com_amazonaws_dynamodb_SSEDescription_KMSMasterKeyArn_FromDafny(input.(ComAmazonawsDynamodbTypes.SSEDescription).Dtor_KMSMasterKeyArn().UnwrapOr(nil)), + InaccessibleEncryptionDateTime: Com_amazonaws_dynamodb_SSEDescription_InaccessibleEncryptionDateTime_FromDafny(input.(ComAmazonawsDynamodbTypes.SSEDescription).Dtor_InaccessibleEncryptionDateTime().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_dynamodb_SSEDescription_Status_FromDafny(input interface{}) types.SSEStatus { + return func() types.SSEStatus { + var u types.SSEStatus + if input == nil { + return u + } + + inputEnum := input.(ComAmazonawsDynamodbTypes.SSEStatus) + index := -1 + for allEnums := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_SSEStatus_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(ComAmazonawsDynamodbTypes.SSEStatus).Equals(inputEnum) { + break + } + } + } + return u.Values()[index] + }() +} +func Com_amazonaws_dynamodb_SSEDescription_SSEType_FromDafny(input interface{}) types.SSEType { + return func() types.SSEType { + var u types.SSEType + if input == nil { + return u + } + + inputEnum := input.(ComAmazonawsDynamodbTypes.SSEType) + index := -1 + for allEnums := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_SSEType_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(ComAmazonawsDynamodbTypes.SSEType).Equals(inputEnum) { + break + } + } + } + return u.Values()[index] + }() +} +func Com_amazonaws_dynamodb_SSEDescription_KMSMasterKeyArn_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_SSEDescription_InaccessibleEncryptionDateTime_FromDafny(input interface{}) *time.Time { + return func() *time.Time { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + if len(s) == 0 { + panic("timestamp string is empty") + } else { + t, err := time.Parse("2006-01-02T15:04:05.999999Z", s) + if err != nil { + panic(err) + } + return &t + } + }() +} +func Com_amazonaws_dynamodb_TableDescription_ArchivalSummary_FromDafny(input interface{}) *types.ArchivalSummary { + return func() *types.ArchivalSummary { + if input == nil { + return nil + } + return &types.ArchivalSummary{ + ArchivalDateTime: Com_amazonaws_dynamodb_ArchivalSummary_ArchivalDateTime_FromDafny(input.(ComAmazonawsDynamodbTypes.ArchivalSummary).Dtor_ArchivalDateTime().UnwrapOr(nil)), + ArchivalReason: Com_amazonaws_dynamodb_ArchivalSummary_ArchivalReason_FromDafny(input.(ComAmazonawsDynamodbTypes.ArchivalSummary).Dtor_ArchivalReason().UnwrapOr(nil)), + ArchivalBackupArn: Com_amazonaws_dynamodb_ArchivalSummary_ArchivalBackupArn_FromDafny(input.(ComAmazonawsDynamodbTypes.ArchivalSummary).Dtor_ArchivalBackupArn().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_dynamodb_ArchivalSummary_ArchivalDateTime_FromDafny(input interface{}) *time.Time { + return func() *time.Time { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + if len(s) == 0 { + panic("timestamp string is empty") + } else { + t, err := time.Parse("2006-01-02T15:04:05.999999Z", s) + if err != nil { + panic(err) + } + return &t + } + }() +} +func Com_amazonaws_dynamodb_ArchivalSummary_ArchivalReason_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_ArchivalSummary_ArchivalBackupArn_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_TableDescription_TableClassSummary_FromDafny(input interface{}) *types.TableClassSummary { + return func() *types.TableClassSummary { + if input == nil { + return nil + } + return &types.TableClassSummary{ + TableClass: Com_amazonaws_dynamodb_TableClassSummary_TableClass_FromDafny(input.(ComAmazonawsDynamodbTypes.TableClassSummary).Dtor_TableClass().UnwrapOr(nil)), + LastUpdateDateTime: Com_amazonaws_dynamodb_TableClassSummary_LastUpdateDateTime_FromDafny(input.(ComAmazonawsDynamodbTypes.TableClassSummary).Dtor_LastUpdateDateTime().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_dynamodb_TableDescription_DeletionProtectionEnabled_FromDafny(input interface{}) *bool { + return func() *bool { + var b bool + if input == nil { + return nil + } + b = input.(bool) + return &b + }() +} +func Com_amazonaws_dynamodb_TableDescription_OnDemandThroughput_FromDafny(input interface{}) *types.OnDemandThroughput { + return func() *types.OnDemandThroughput { + if input == nil { + return nil + } + return &types.OnDemandThroughput{ + MaxReadRequestUnits: Com_amazonaws_dynamodb_OnDemandThroughput_MaxReadRequestUnits_FromDafny(input.(ComAmazonawsDynamodbTypes.OnDemandThroughput).Dtor_MaxReadRequestUnits().UnwrapOr(nil)), + MaxWriteRequestUnits: Com_amazonaws_dynamodb_OnDemandThroughput_MaxWriteRequestUnits_FromDafny(input.(ComAmazonawsDynamodbTypes.OnDemandThroughput).Dtor_MaxWriteRequestUnits().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_dynamodb_DeleteBackupInput_BackupArn_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 Com_amazonaws_dynamodb_DeleteBackupOutput_BackupDescription_FromDafny(input interface{}) *types.BackupDescription { + return func() *types.BackupDescription { + if input == nil { + return nil + } + return &types.BackupDescription{ + BackupDetails: Com_amazonaws_dynamodb_BackupDescription_BackupDetails_FromDafny(input.(ComAmazonawsDynamodbTypes.BackupDescription).Dtor_BackupDetails().UnwrapOr(nil)), + SourceTableDetails: Com_amazonaws_dynamodb_BackupDescription_SourceTableDetails_FromDafny(input.(ComAmazonawsDynamodbTypes.BackupDescription).Dtor_SourceTableDetails().UnwrapOr(nil)), + SourceTableFeatureDetails: Com_amazonaws_dynamodb_BackupDescription_SourceTableFeatureDetails_FromDafny(input.(ComAmazonawsDynamodbTypes.BackupDescription).Dtor_SourceTableFeatureDetails().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_dynamodb_BackupDescription_BackupDetails_FromDafny(input interface{}) *types.BackupDetails { + return func() *types.BackupDetails { + if input == nil { + return nil + } + return &types.BackupDetails{ + BackupArn: Com_amazonaws_dynamodb_BackupDetails_BackupArn_FromDafny(input.(ComAmazonawsDynamodbTypes.BackupDetails).Dtor_BackupArn()), + BackupName: Com_amazonaws_dynamodb_BackupDetails_BackupName_FromDafny(input.(ComAmazonawsDynamodbTypes.BackupDetails).Dtor_BackupName()), + BackupSizeBytes: Com_amazonaws_dynamodb_BackupDetails_BackupSizeBytes_FromDafny(input.(ComAmazonawsDynamodbTypes.BackupDetails).Dtor_BackupSizeBytes().UnwrapOr(nil)), + BackupStatus: Com_amazonaws_dynamodb_BackupDetails_BackupStatus_FromDafny(input.(ComAmazonawsDynamodbTypes.BackupDetails).Dtor_BackupStatus()), + BackupType: Com_amazonaws_dynamodb_BackupDetails_BackupType_FromDafny(input.(ComAmazonawsDynamodbTypes.BackupDetails).Dtor_BackupType()), + BackupCreationDateTime: Com_amazonaws_dynamodb_BackupDetails_BackupCreationDateTime_FromDafny(input.(ComAmazonawsDynamodbTypes.BackupDetails).Dtor_BackupCreationDateTime()), + BackupExpiryDateTime: Com_amazonaws_dynamodb_BackupDetails_BackupExpiryDateTime_FromDafny(input.(ComAmazonawsDynamodbTypes.BackupDetails).Dtor_BackupExpiryDateTime().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_dynamodb_BackupDescription_SourceTableDetails_FromDafny(input interface{}) *types.SourceTableDetails { + return func() *types.SourceTableDetails { + if input == nil { + return nil + } + return &types.SourceTableDetails{ + TableName: Com_amazonaws_dynamodb_SourceTableDetails_TableName_FromDafny(input.(ComAmazonawsDynamodbTypes.SourceTableDetails).Dtor_TableName()), + TableId: Com_amazonaws_dynamodb_SourceTableDetails_TableId_FromDafny(input.(ComAmazonawsDynamodbTypes.SourceTableDetails).Dtor_TableId()), + TableArn: Com_amazonaws_dynamodb_SourceTableDetails_TableArn_FromDafny(input.(ComAmazonawsDynamodbTypes.SourceTableDetails).Dtor_TableArn().UnwrapOr(nil)), + TableSizeBytes: Com_amazonaws_dynamodb_SourceTableDetails_TableSizeBytes_FromDafny(input.(ComAmazonawsDynamodbTypes.SourceTableDetails).Dtor_TableSizeBytes().UnwrapOr(nil)), + KeySchema: Com_amazonaws_dynamodb_SourceTableDetails_KeySchema_FromDafny(input.(ComAmazonawsDynamodbTypes.SourceTableDetails).Dtor_KeySchema()), + TableCreationDateTime: Com_amazonaws_dynamodb_SourceTableDetails_TableCreationDateTime_FromDafny(input.(ComAmazonawsDynamodbTypes.SourceTableDetails).Dtor_TableCreationDateTime()), + ProvisionedThroughput: Com_amazonaws_dynamodb_SourceTableDetails_ProvisionedThroughput_FromDafny(input.(ComAmazonawsDynamodbTypes.SourceTableDetails).Dtor_ProvisionedThroughput()), + OnDemandThroughput: Com_amazonaws_dynamodb_SourceTableDetails_OnDemandThroughput_FromDafny(input.(ComAmazonawsDynamodbTypes.SourceTableDetails).Dtor_OnDemandThroughput().UnwrapOr(nil)), + ItemCount: Com_amazonaws_dynamodb_SourceTableDetails_ItemCount_FromDafny(input.(ComAmazonawsDynamodbTypes.SourceTableDetails).Dtor_ItemCount().UnwrapOr(nil)), + BillingMode: Com_amazonaws_dynamodb_SourceTableDetails_BillingMode_FromDafny(input.(ComAmazonawsDynamodbTypes.SourceTableDetails).Dtor_BillingMode().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_dynamodb_SourceTableDetails_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 Com_amazonaws_dynamodb_SourceTableDetails_TableId_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 Com_amazonaws_dynamodb_SourceTableDetails_TableArn_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_SourceTableDetails_TableSizeBytes_FromDafny(input interface{}) *int64 { + return func() *int64 { + var i int64 + if input == nil { + return nil + } + i = input.(int64) + return &i + }() +} +func Com_amazonaws_dynamodb_SourceTableDetails_KeySchema_FromDafny(input interface{}) []types.KeySchemaElement { + return func() []types.KeySchemaElement { + var fieldValue []types.KeySchemaElement + + for i := dafny.Iterate(input.(dafny.Sequence)); ; { + val, ok := i() + if !ok { + break + } + fieldValue = append(fieldValue, Com_amazonaws_dynamodb_KeySchema_member_FromDafny(val)) + } + return fieldValue + }() +} +func Com_amazonaws_dynamodb_SourceTableDetails_TableCreationDateTime_FromDafny(input interface{}) *time.Time { + return func() *time.Time { + + a := UTF8.Encode(input.(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + if len(s) == 0 { + panic("timestamp string is empty") + } else { + t, err := time.Parse("2006-01-02T15:04:05.999999Z", s) + if err != nil { + panic(err) + } + return &t + } + }() +} +func Com_amazonaws_dynamodb_SourceTableDetails_ProvisionedThroughput_FromDafny(input interface{}) *types.ProvisionedThroughput { + return func() *types.ProvisionedThroughput { + + return &types.ProvisionedThroughput{ + ReadCapacityUnits: Com_amazonaws_dynamodb_ProvisionedThroughput_ReadCapacityUnits_FromDafny(input.(ComAmazonawsDynamodbTypes.ProvisionedThroughput).Dtor_ReadCapacityUnits()), + WriteCapacityUnits: Com_amazonaws_dynamodb_ProvisionedThroughput_WriteCapacityUnits_FromDafny(input.(ComAmazonawsDynamodbTypes.ProvisionedThroughput).Dtor_WriteCapacityUnits()), + } + }() +} +func Com_amazonaws_dynamodb_SourceTableDetails_OnDemandThroughput_FromDafny(input interface{}) *types.OnDemandThroughput { + return func() *types.OnDemandThroughput { + if input == nil { + return nil + } + return &types.OnDemandThroughput{ + MaxReadRequestUnits: Com_amazonaws_dynamodb_OnDemandThroughput_MaxReadRequestUnits_FromDafny(input.(ComAmazonawsDynamodbTypes.OnDemandThroughput).Dtor_MaxReadRequestUnits().UnwrapOr(nil)), + MaxWriteRequestUnits: Com_amazonaws_dynamodb_OnDemandThroughput_MaxWriteRequestUnits_FromDafny(input.(ComAmazonawsDynamodbTypes.OnDemandThroughput).Dtor_MaxWriteRequestUnits().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_dynamodb_SourceTableDetails_ItemCount_FromDafny(input interface{}) *int64 { + return func() *int64 { + var i int64 + if input == nil { + return nil + } + i = input.(int64) + return &i + }() +} +func Com_amazonaws_dynamodb_SourceTableDetails_BillingMode_FromDafny(input interface{}) types.BillingMode { + return func() types.BillingMode { + var u types.BillingMode + if input == nil { + return u + } + + inputEnum := input.(ComAmazonawsDynamodbTypes.BillingMode) + index := -1 + for allEnums := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_BillingMode_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(ComAmazonawsDynamodbTypes.BillingMode).Equals(inputEnum) { + break + } + } + } + return u.Values()[index] + }() +} +func Com_amazonaws_dynamodb_BackupDescription_SourceTableFeatureDetails_FromDafny(input interface{}) *types.SourceTableFeatureDetails { + return func() *types.SourceTableFeatureDetails { + if input == nil { + return nil + } + return &types.SourceTableFeatureDetails{ + LocalSecondaryIndexes: Com_amazonaws_dynamodb_SourceTableFeatureDetails_LocalSecondaryIndexes_FromDafny(input.(ComAmazonawsDynamodbTypes.SourceTableFeatureDetails).Dtor_LocalSecondaryIndexes().UnwrapOr(nil)), + GlobalSecondaryIndexes: Com_amazonaws_dynamodb_SourceTableFeatureDetails_GlobalSecondaryIndexes_FromDafny(input.(ComAmazonawsDynamodbTypes.SourceTableFeatureDetails).Dtor_GlobalSecondaryIndexes().UnwrapOr(nil)), + StreamDescription: Com_amazonaws_dynamodb_SourceTableFeatureDetails_StreamDescription_FromDafny(input.(ComAmazonawsDynamodbTypes.SourceTableFeatureDetails).Dtor_StreamDescription().UnwrapOr(nil)), + TimeToLiveDescription: Com_amazonaws_dynamodb_SourceTableFeatureDetails_TimeToLiveDescription_FromDafny(input.(ComAmazonawsDynamodbTypes.SourceTableFeatureDetails).Dtor_TimeToLiveDescription().UnwrapOr(nil)), + SSEDescription: Com_amazonaws_dynamodb_SourceTableFeatureDetails_SSEDescription_FromDafny(input.(ComAmazonawsDynamodbTypes.SourceTableFeatureDetails).Dtor_SSEDescription().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_dynamodb_SourceTableFeatureDetails_LocalSecondaryIndexes_FromDafny(input interface{}) []types.LocalSecondaryIndexInfo { + return func() []types.LocalSecondaryIndexInfo { + var fieldValue []types.LocalSecondaryIndexInfo + if input == nil { + return nil + } + for i := dafny.Iterate(input.(dafny.Sequence).(dafny.Sequence)); ; { + val, ok := i() + if !ok { + break + } + fieldValue = append(fieldValue, Com_amazonaws_dynamodb_LocalSecondaryIndexes_member_FromDafny(val)) + } + return fieldValue + }() +} +func Com_amazonaws_dynamodb_LocalSecondaryIndexes_member_FromDafny(input interface{}) types.LocalSecondaryIndexInfo { + return func() types.LocalSecondaryIndexInfo { + + return types.LocalSecondaryIndexInfo{ + IndexName: Com_amazonaws_dynamodb_LocalSecondaryIndexInfo_IndexName_FromDafny(input.(ComAmazonawsDynamodbTypes.LocalSecondaryIndexInfo).Dtor_IndexName().UnwrapOr(nil)), + KeySchema: Com_amazonaws_dynamodb_LocalSecondaryIndexInfo_KeySchema_FromDafny(input.(ComAmazonawsDynamodbTypes.LocalSecondaryIndexInfo).Dtor_KeySchema().UnwrapOr(nil)), + Projection: Com_amazonaws_dynamodb_LocalSecondaryIndexInfo_Projection_FromDafny(input.(ComAmazonawsDynamodbTypes.LocalSecondaryIndexInfo).Dtor_Projection().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_dynamodb_LocalSecondaryIndexInfo_IndexName_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_LocalSecondaryIndexInfo_KeySchema_FromDafny(input interface{}) []types.KeySchemaElement { + return func() []types.KeySchemaElement { + var fieldValue []types.KeySchemaElement + if input == nil { + return nil + } + for i := dafny.Iterate(input.(dafny.Sequence).(dafny.Sequence)); ; { + val, ok := i() + if !ok { + break + } + fieldValue = append(fieldValue, Com_amazonaws_dynamodb_KeySchema_member_FromDafny(val)) + } + return fieldValue + }() +} +func Com_amazonaws_dynamodb_LocalSecondaryIndexInfo_Projection_FromDafny(input interface{}) *types.Projection { + return func() *types.Projection { + if input == nil { + return nil + } + return &types.Projection{ + ProjectionType: Com_amazonaws_dynamodb_Projection_ProjectionType_FromDafny(input.(ComAmazonawsDynamodbTypes.Projection).Dtor_ProjectionType().UnwrapOr(nil)), + NonKeyAttributes: Com_amazonaws_dynamodb_Projection_NonKeyAttributes_FromDafny(input.(ComAmazonawsDynamodbTypes.Projection).Dtor_NonKeyAttributes().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_dynamodb_SourceTableFeatureDetails_GlobalSecondaryIndexes_FromDafny(input interface{}) []types.GlobalSecondaryIndexInfo { + return func() []types.GlobalSecondaryIndexInfo { + var fieldValue []types.GlobalSecondaryIndexInfo + if input == nil { + return nil + } + for i := dafny.Iterate(input.(dafny.Sequence).(dafny.Sequence)); ; { + val, ok := i() + if !ok { + break + } + fieldValue = append(fieldValue, Com_amazonaws_dynamodb_GlobalSecondaryIndexes_member_FromDafny(val)) + } + return fieldValue + }() +} +func Com_amazonaws_dynamodb_GlobalSecondaryIndexes_member_FromDafny(input interface{}) types.GlobalSecondaryIndexInfo { + return func() types.GlobalSecondaryIndexInfo { + + return types.GlobalSecondaryIndexInfo{ + IndexName: Com_amazonaws_dynamodb_GlobalSecondaryIndexInfo_IndexName_FromDafny(input.(ComAmazonawsDynamodbTypes.GlobalSecondaryIndexInfo).Dtor_IndexName().UnwrapOr(nil)), + KeySchema: Com_amazonaws_dynamodb_GlobalSecondaryIndexInfo_KeySchema_FromDafny(input.(ComAmazonawsDynamodbTypes.GlobalSecondaryIndexInfo).Dtor_KeySchema().UnwrapOr(nil)), + Projection: Com_amazonaws_dynamodb_GlobalSecondaryIndexInfo_Projection_FromDafny(input.(ComAmazonawsDynamodbTypes.GlobalSecondaryIndexInfo).Dtor_Projection().UnwrapOr(nil)), + ProvisionedThroughput: Com_amazonaws_dynamodb_GlobalSecondaryIndexInfo_ProvisionedThroughput_FromDafny(input.(ComAmazonawsDynamodbTypes.GlobalSecondaryIndexInfo).Dtor_ProvisionedThroughput().UnwrapOr(nil)), + OnDemandThroughput: Com_amazonaws_dynamodb_GlobalSecondaryIndexInfo_OnDemandThroughput_FromDafny(input.(ComAmazonawsDynamodbTypes.GlobalSecondaryIndexInfo).Dtor_OnDemandThroughput().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_dynamodb_GlobalSecondaryIndexInfo_IndexName_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_GlobalSecondaryIndexInfo_KeySchema_FromDafny(input interface{}) []types.KeySchemaElement { + return func() []types.KeySchemaElement { + var fieldValue []types.KeySchemaElement + if input == nil { + return nil + } + for i := dafny.Iterate(input.(dafny.Sequence).(dafny.Sequence)); ; { + val, ok := i() + if !ok { + break + } + fieldValue = append(fieldValue, Com_amazonaws_dynamodb_KeySchema_member_FromDafny(val)) + } + return fieldValue + }() +} +func Com_amazonaws_dynamodb_GlobalSecondaryIndexInfo_Projection_FromDafny(input interface{}) *types.Projection { + return func() *types.Projection { + if input == nil { + return nil + } + return &types.Projection{ + ProjectionType: Com_amazonaws_dynamodb_Projection_ProjectionType_FromDafny(input.(ComAmazonawsDynamodbTypes.Projection).Dtor_ProjectionType().UnwrapOr(nil)), + NonKeyAttributes: Com_amazonaws_dynamodb_Projection_NonKeyAttributes_FromDafny(input.(ComAmazonawsDynamodbTypes.Projection).Dtor_NonKeyAttributes().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_dynamodb_GlobalSecondaryIndexInfo_ProvisionedThroughput_FromDafny(input interface{}) *types.ProvisionedThroughput { + return func() *types.ProvisionedThroughput { + if input == nil { + return nil + } + return &types.ProvisionedThroughput{ + ReadCapacityUnits: Com_amazonaws_dynamodb_ProvisionedThroughput_ReadCapacityUnits_FromDafny(input.(ComAmazonawsDynamodbTypes.ProvisionedThroughput).Dtor_ReadCapacityUnits()), + WriteCapacityUnits: Com_amazonaws_dynamodb_ProvisionedThroughput_WriteCapacityUnits_FromDafny(input.(ComAmazonawsDynamodbTypes.ProvisionedThroughput).Dtor_WriteCapacityUnits()), + } + }() +} +func Com_amazonaws_dynamodb_GlobalSecondaryIndexInfo_OnDemandThroughput_FromDafny(input interface{}) *types.OnDemandThroughput { + return func() *types.OnDemandThroughput { + if input == nil { + return nil + } + return &types.OnDemandThroughput{ + MaxReadRequestUnits: Com_amazonaws_dynamodb_OnDemandThroughput_MaxReadRequestUnits_FromDafny(input.(ComAmazonawsDynamodbTypes.OnDemandThroughput).Dtor_MaxReadRequestUnits().UnwrapOr(nil)), + MaxWriteRequestUnits: Com_amazonaws_dynamodb_OnDemandThroughput_MaxWriteRequestUnits_FromDafny(input.(ComAmazonawsDynamodbTypes.OnDemandThroughput).Dtor_MaxWriteRequestUnits().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_dynamodb_SourceTableFeatureDetails_StreamDescription_FromDafny(input interface{}) *types.StreamSpecification { + return func() *types.StreamSpecification { + if input == nil { + return nil + } + return &types.StreamSpecification{ + StreamEnabled: Com_amazonaws_dynamodb_StreamSpecification_StreamEnabled_FromDafny(input.(ComAmazonawsDynamodbTypes.StreamSpecification).Dtor_StreamEnabled()), + StreamViewType: Com_amazonaws_dynamodb_StreamSpecification_StreamViewType_FromDafny(input.(ComAmazonawsDynamodbTypes.StreamSpecification).Dtor_StreamViewType().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_dynamodb_SourceTableFeatureDetails_TimeToLiveDescription_FromDafny(input interface{}) *types.TimeToLiveDescription { + return func() *types.TimeToLiveDescription { + if input == nil { + return nil + } + return &types.TimeToLiveDescription{ + TimeToLiveStatus: Com_amazonaws_dynamodb_TimeToLiveDescription_TimeToLiveStatus_FromDafny(input.(ComAmazonawsDynamodbTypes.TimeToLiveDescription).Dtor_TimeToLiveStatus().UnwrapOr(nil)), + AttributeName: Com_amazonaws_dynamodb_TimeToLiveDescription_AttributeName_FromDafny(input.(ComAmazonawsDynamodbTypes.TimeToLiveDescription).Dtor_AttributeName().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_dynamodb_TimeToLiveDescription_TimeToLiveStatus_FromDafny(input interface{}) types.TimeToLiveStatus { + return func() types.TimeToLiveStatus { + var u types.TimeToLiveStatus + if input == nil { + return u + } + + inputEnum := input.(ComAmazonawsDynamodbTypes.TimeToLiveStatus) + index := -1 + for allEnums := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_TimeToLiveStatus_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(ComAmazonawsDynamodbTypes.TimeToLiveStatus).Equals(inputEnum) { + break + } + } + } + return u.Values()[index] + }() +} +func Com_amazonaws_dynamodb_TimeToLiveDescription_AttributeName_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_SourceTableFeatureDetails_SSEDescription_FromDafny(input interface{}) *types.SSEDescription { + return func() *types.SSEDescription { + if input == nil { + return nil + } + return &types.SSEDescription{ + Status: Com_amazonaws_dynamodb_SSEDescription_Status_FromDafny(input.(ComAmazonawsDynamodbTypes.SSEDescription).Dtor_Status().UnwrapOr(nil)), + SSEType: Com_amazonaws_dynamodb_SSEDescription_SSEType_FromDafny(input.(ComAmazonawsDynamodbTypes.SSEDescription).Dtor_SSEType().UnwrapOr(nil)), + KMSMasterKeyArn: Com_amazonaws_dynamodb_SSEDescription_KMSMasterKeyArn_FromDafny(input.(ComAmazonawsDynamodbTypes.SSEDescription).Dtor_KMSMasterKeyArn().UnwrapOr(nil)), + InaccessibleEncryptionDateTime: Com_amazonaws_dynamodb_SSEDescription_InaccessibleEncryptionDateTime_FromDafny(input.(ComAmazonawsDynamodbTypes.SSEDescription).Dtor_InaccessibleEncryptionDateTime().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_dynamodb_DeleteItemInput_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 Com_amazonaws_dynamodb_DeleteItemInput_Key_FromDafny(input interface{}) map[string]types.AttributeValue { + return func() map[string]types.AttributeValue { + var m map[string]types.AttributeValue = make(map[string]types.AttributeValue) + + for i := dafny.Iterate(input.(dafny.Map).Items()); ; { + val, ok := i() + if !ok { + break + } + m[Com_amazonaws_dynamodb_Key_key_FromDafny((*val.(dafny.Tuple).IndexInt(0)))] = Com_amazonaws_dynamodb_Key_value_FromDafny((*val.(dafny.Tuple).IndexInt(1))) + } + return m + }() +} +func Com_amazonaws_dynamodb_DeleteItemInput_Expected_FromDafny(input interface{}) map[string]types.ExpectedAttributeValue { + return func() map[string]types.ExpectedAttributeValue { + var m map[string]types.ExpectedAttributeValue = make(map[string]types.ExpectedAttributeValue) + if input == nil { + return nil + } + + for i := dafny.Iterate(input.(dafny.Map).Items()); ; { + val, ok := i() + if !ok { + break + } + m[Com_amazonaws_dynamodb_ExpectedAttributeMap_key_FromDafny((*val.(dafny.Tuple).IndexInt(0)))] = Com_amazonaws_dynamodb_ExpectedAttributeMap_value_FromDafny((*val.(dafny.Tuple).IndexInt(1))) + } + return m + }() +} +func Com_amazonaws_dynamodb_ExpectedAttributeMap_key_FromDafny(input interface{}) string { + return func() string { + if input == nil { + return "" + } + a := UTF8.Encode(input.(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return s + }() +} +func Com_amazonaws_dynamodb_ExpectedAttributeMap_value_FromDafny(input interface{}) types.ExpectedAttributeValue { + return func() types.ExpectedAttributeValue { + + return types.ExpectedAttributeValue{ + Value: Com_amazonaws_dynamodb_ExpectedAttributeValue_Value_FromDafny(input.(ComAmazonawsDynamodbTypes.ExpectedAttributeValue).Dtor_Value().UnwrapOr(nil)), + Exists: Com_amazonaws_dynamodb_ExpectedAttributeValue_Exists_FromDafny(input.(ComAmazonawsDynamodbTypes.ExpectedAttributeValue).Dtor_Exists().UnwrapOr(nil)), + ComparisonOperator: Com_amazonaws_dynamodb_ExpectedAttributeValue_ComparisonOperator_FromDafny(input.(ComAmazonawsDynamodbTypes.ExpectedAttributeValue).Dtor_ComparisonOperator().UnwrapOr(nil)), + AttributeValueList: Com_amazonaws_dynamodb_ExpectedAttributeValue_AttributeValueList_FromDafny(input.(ComAmazonawsDynamodbTypes.ExpectedAttributeValue).Dtor_AttributeValueList().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_dynamodb_ExpectedAttributeValue_Value_FromDafny(input interface{}) types.AttributeValue { + return func() types.AttributeValue { + var union types.AttributeValue + if input == nil { + return union + } + + if (input.(ComAmazonawsDynamodbTypes.AttributeValue)).Is_S() { + var dataSource = Wrappers.Companion_Option_.Create_Some_(input.(ComAmazonawsDynamodbTypes.AttributeValue).Dtor_S()) + union = &types.AttributeValueMemberS{ + Value: (Com_amazonaws_dynamodb_AttributeValue_S_FromDafny(dataSource.UnwrapOr(nil))), + } + } + if (input.(ComAmazonawsDynamodbTypes.AttributeValue)).Is_N() { + var dataSource = Wrappers.Companion_Option_.Create_Some_(input.(ComAmazonawsDynamodbTypes.AttributeValue).Dtor_N()) + union = &types.AttributeValueMemberN{ + Value: (Com_amazonaws_dynamodb_AttributeValue_N_FromDafny(dataSource.UnwrapOr(nil))), + } + } + if (input.(ComAmazonawsDynamodbTypes.AttributeValue)).Is_B() { + var dataSource = Wrappers.Companion_Option_.Create_Some_(input.(ComAmazonawsDynamodbTypes.AttributeValue).Dtor_B()) + union = &types.AttributeValueMemberB{ + Value: (Com_amazonaws_dynamodb_AttributeValue_B_FromDafny(dataSource.UnwrapOr(nil))), + } + } + if (input.(ComAmazonawsDynamodbTypes.AttributeValue)).Is_SS() { + var dataSource = Wrappers.Companion_Option_.Create_Some_(input.(ComAmazonawsDynamodbTypes.AttributeValue).Dtor_SS()) + union = &types.AttributeValueMemberSS{ + Value: (Com_amazonaws_dynamodb_AttributeValue_SS_FromDafny(dataSource.UnwrapOr(nil))), + } + } + if (input.(ComAmazonawsDynamodbTypes.AttributeValue)).Is_NS() { + var dataSource = Wrappers.Companion_Option_.Create_Some_(input.(ComAmazonawsDynamodbTypes.AttributeValue).Dtor_NS()) + union = &types.AttributeValueMemberNS{ + Value: (Com_amazonaws_dynamodb_AttributeValue_NS_FromDafny(dataSource.UnwrapOr(nil))), + } + } + if (input.(ComAmazonawsDynamodbTypes.AttributeValue)).Is_BS() { + var dataSource = Wrappers.Companion_Option_.Create_Some_(input.(ComAmazonawsDynamodbTypes.AttributeValue).Dtor_BS()) + union = &types.AttributeValueMemberBS{ + Value: (Com_amazonaws_dynamodb_AttributeValue_BS_FromDafny(dataSource.UnwrapOr(nil))), + } + } + if (input.(ComAmazonawsDynamodbTypes.AttributeValue)).Is_M() { + var dataSource = Wrappers.Companion_Option_.Create_Some_(input.(ComAmazonawsDynamodbTypes.AttributeValue).Dtor_M()) + union = &types.AttributeValueMemberM{ + Value: (Com_amazonaws_dynamodb_AttributeValue_M_FromDafny(dataSource.UnwrapOr(nil))), + } + } + if (input.(ComAmazonawsDynamodbTypes.AttributeValue)).Is_L() { + var dataSource = Wrappers.Companion_Option_.Create_Some_(input.(ComAmazonawsDynamodbTypes.AttributeValue).Dtor_L()) + union = &types.AttributeValueMemberL{ + Value: (Com_amazonaws_dynamodb_AttributeValue_L_FromDafny(dataSource.UnwrapOr(nil))), + } + } + if (input.(ComAmazonawsDynamodbTypes.AttributeValue)).Is_NULL() { + var dataSource = Wrappers.Companion_Option_.Create_Some_(input.(ComAmazonawsDynamodbTypes.AttributeValue).Dtor_NULL()) + union = &types.AttributeValueMemberNULL{ + Value: (Com_amazonaws_dynamodb_AttributeValue_NULL_FromDafny(dataSource.UnwrapOr(nil))), + } + } + if (input.(ComAmazonawsDynamodbTypes.AttributeValue)).Is_BOOL() { + var dataSource = Wrappers.Companion_Option_.Create_Some_(input.(ComAmazonawsDynamodbTypes.AttributeValue).Dtor_BOOL()) + union = &types.AttributeValueMemberBOOL{ + Value: (Com_amazonaws_dynamodb_AttributeValue_BOOL_FromDafny(dataSource.UnwrapOr(nil))), + } + } + + return union + }() +} +func Com_amazonaws_dynamodb_ExpectedAttributeValue_Exists_FromDafny(input interface{}) *bool { + return func() *bool { + var b bool + if input == nil { + return nil + } + b = input.(bool) + return &b + }() +} +func Com_amazonaws_dynamodb_ExpectedAttributeValue_ComparisonOperator_FromDafny(input interface{}) types.ComparisonOperator { + return func() types.ComparisonOperator { + var u types.ComparisonOperator + if input == nil { + return u + } + + inputEnum := input.(ComAmazonawsDynamodbTypes.ComparisonOperator) + index := -1 + for allEnums := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_ComparisonOperator_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(ComAmazonawsDynamodbTypes.ComparisonOperator).Equals(inputEnum) { + break + } + } + } + return u.Values()[index] + }() +} +func Com_amazonaws_dynamodb_ExpectedAttributeValue_AttributeValueList_FromDafny(input interface{}) []types.AttributeValue { + return func() []types.AttributeValue { + var fieldValue []types.AttributeValue + if input == nil { + return nil + } + for i := dafny.Iterate(input.(dafny.Sequence).(dafny.Sequence)); ; { + val, ok := i() + if !ok { + break + } + fieldValue = append(fieldValue, Com_amazonaws_dynamodb_AttributeValueList_member_FromDafny(val)) + } + return fieldValue + }() +} +func Com_amazonaws_dynamodb_AttributeValueList_member_FromDafny(input interface{}) types.AttributeValue { + return func() types.AttributeValue { + var union types.AttributeValue + + if (input.(ComAmazonawsDynamodbTypes.AttributeValue)).Is_S() { + var dataSource = Wrappers.Companion_Option_.Create_Some_(input.(ComAmazonawsDynamodbTypes.AttributeValue).Dtor_S()) + union = &types.AttributeValueMemberS{ + Value: (Com_amazonaws_dynamodb_AttributeValue_S_FromDafny(dataSource.UnwrapOr(nil))), + } + } + if (input.(ComAmazonawsDynamodbTypes.AttributeValue)).Is_N() { + var dataSource = Wrappers.Companion_Option_.Create_Some_(input.(ComAmazonawsDynamodbTypes.AttributeValue).Dtor_N()) + union = &types.AttributeValueMemberN{ + Value: (Com_amazonaws_dynamodb_AttributeValue_N_FromDafny(dataSource.UnwrapOr(nil))), + } + } + if (input.(ComAmazonawsDynamodbTypes.AttributeValue)).Is_B() { + var dataSource = Wrappers.Companion_Option_.Create_Some_(input.(ComAmazonawsDynamodbTypes.AttributeValue).Dtor_B()) + union = &types.AttributeValueMemberB{ + Value: (Com_amazonaws_dynamodb_AttributeValue_B_FromDafny(dataSource.UnwrapOr(nil))), + } + } + if (input.(ComAmazonawsDynamodbTypes.AttributeValue)).Is_SS() { + var dataSource = Wrappers.Companion_Option_.Create_Some_(input.(ComAmazonawsDynamodbTypes.AttributeValue).Dtor_SS()) + union = &types.AttributeValueMemberSS{ + Value: (Com_amazonaws_dynamodb_AttributeValue_SS_FromDafny(dataSource.UnwrapOr(nil))), + } + } + if (input.(ComAmazonawsDynamodbTypes.AttributeValue)).Is_NS() { + var dataSource = Wrappers.Companion_Option_.Create_Some_(input.(ComAmazonawsDynamodbTypes.AttributeValue).Dtor_NS()) + union = &types.AttributeValueMemberNS{ + Value: (Com_amazonaws_dynamodb_AttributeValue_NS_FromDafny(dataSource.UnwrapOr(nil))), + } + } + if (input.(ComAmazonawsDynamodbTypes.AttributeValue)).Is_BS() { + var dataSource = Wrappers.Companion_Option_.Create_Some_(input.(ComAmazonawsDynamodbTypes.AttributeValue).Dtor_BS()) + union = &types.AttributeValueMemberBS{ + Value: (Com_amazonaws_dynamodb_AttributeValue_BS_FromDafny(dataSource.UnwrapOr(nil))), + } + } + if (input.(ComAmazonawsDynamodbTypes.AttributeValue)).Is_M() { + var dataSource = Wrappers.Companion_Option_.Create_Some_(input.(ComAmazonawsDynamodbTypes.AttributeValue).Dtor_M()) + union = &types.AttributeValueMemberM{ + Value: (Com_amazonaws_dynamodb_AttributeValue_M_FromDafny(dataSource.UnwrapOr(nil))), + } + } + if (input.(ComAmazonawsDynamodbTypes.AttributeValue)).Is_L() { + var dataSource = Wrappers.Companion_Option_.Create_Some_(input.(ComAmazonawsDynamodbTypes.AttributeValue).Dtor_L()) + union = &types.AttributeValueMemberL{ + Value: (Com_amazonaws_dynamodb_AttributeValue_L_FromDafny(dataSource.UnwrapOr(nil))), + } + } + if (input.(ComAmazonawsDynamodbTypes.AttributeValue)).Is_NULL() { + var dataSource = Wrappers.Companion_Option_.Create_Some_(input.(ComAmazonawsDynamodbTypes.AttributeValue).Dtor_NULL()) + union = &types.AttributeValueMemberNULL{ + Value: (Com_amazonaws_dynamodb_AttributeValue_NULL_FromDafny(dataSource.UnwrapOr(nil))), + } + } + if (input.(ComAmazonawsDynamodbTypes.AttributeValue)).Is_BOOL() { + var dataSource = Wrappers.Companion_Option_.Create_Some_(input.(ComAmazonawsDynamodbTypes.AttributeValue).Dtor_BOOL()) + union = &types.AttributeValueMemberBOOL{ + Value: (Com_amazonaws_dynamodb_AttributeValue_BOOL_FromDafny(dataSource.UnwrapOr(nil))), + } + } + + return union + }() +} +func Com_amazonaws_dynamodb_DeleteItemInput_ConditionalOperator_FromDafny(input interface{}) types.ConditionalOperator { + return func() types.ConditionalOperator { + var u types.ConditionalOperator + if input == nil { + return u + } + + inputEnum := input.(ComAmazonawsDynamodbTypes.ConditionalOperator) + index := -1 + for allEnums := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_ConditionalOperator_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(ComAmazonawsDynamodbTypes.ConditionalOperator).Equals(inputEnum) { + break + } + } + } + return u.Values()[index] + }() +} +func Com_amazonaws_dynamodb_DeleteItemInput_ReturnValues_FromDafny(input interface{}) types.ReturnValue { + return func() types.ReturnValue { + var u types.ReturnValue + if input == nil { + return u + } + + inputEnum := input.(ComAmazonawsDynamodbTypes.ReturnValue) + index := -1 + for allEnums := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_ReturnValue_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(ComAmazonawsDynamodbTypes.ReturnValue).Equals(inputEnum) { + break + } + } + } + return u.Values()[index] + }() +} +func Com_amazonaws_dynamodb_DeleteItemInput_ReturnConsumedCapacity_FromDafny(input interface{}) types.ReturnConsumedCapacity { + return func() types.ReturnConsumedCapacity { + var u types.ReturnConsumedCapacity + if input == nil { + return u + } + + inputEnum := input.(ComAmazonawsDynamodbTypes.ReturnConsumedCapacity) + index := -1 + for allEnums := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_ReturnConsumedCapacity_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(ComAmazonawsDynamodbTypes.ReturnConsumedCapacity).Equals(inputEnum) { + break + } + } + } + return u.Values()[index] + }() +} +func Com_amazonaws_dynamodb_DeleteItemInput_ReturnItemCollectionMetrics_FromDafny(input interface{}) types.ReturnItemCollectionMetrics { + return func() types.ReturnItemCollectionMetrics { + var u types.ReturnItemCollectionMetrics + if input == nil { + return u + } + + inputEnum := input.(ComAmazonawsDynamodbTypes.ReturnItemCollectionMetrics) + index := -1 + for allEnums := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_ReturnItemCollectionMetrics_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(ComAmazonawsDynamodbTypes.ReturnItemCollectionMetrics).Equals(inputEnum) { + break + } + } + } + return u.Values()[index] + }() +} +func Com_amazonaws_dynamodb_DeleteItemInput_ConditionExpression_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_DeleteItemInput_ExpressionAttributeNames_FromDafny(input interface{}) map[string]string { + return func() 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[Com_amazonaws_dynamodb_ExpressionAttributeNameMap_key_FromDafny((*val.(dafny.Tuple).IndexInt(0)))] = Com_amazonaws_dynamodb_ExpressionAttributeNameMap_value_FromDafny((*val.(dafny.Tuple).IndexInt(1))) + } + return m + }() +} +func Com_amazonaws_dynamodb_DeleteItemInput_ExpressionAttributeValues_FromDafny(input interface{}) map[string]types.AttributeValue { + return func() map[string]types.AttributeValue { + var m map[string]types.AttributeValue = make(map[string]types.AttributeValue) + if input == nil { + return nil + } + + for i := dafny.Iterate(input.(dafny.Map).Items()); ; { + val, ok := i() + if !ok { + break + } + m[Com_amazonaws_dynamodb_ExpressionAttributeValueMap_key_FromDafny((*val.(dafny.Tuple).IndexInt(0)))] = Com_amazonaws_dynamodb_ExpressionAttributeValueMap_value_FromDafny((*val.(dafny.Tuple).IndexInt(1))) + } + return m + }() +} +func Com_amazonaws_dynamodb_ExpressionAttributeValueMap_key_FromDafny(input interface{}) string { + return func() string { + if input == nil { + return "" + } + a := UTF8.Encode(input.(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return s + }() +} +func Com_amazonaws_dynamodb_ExpressionAttributeValueMap_value_FromDafny(input interface{}) types.AttributeValue { + return func() types.AttributeValue { + var union types.AttributeValue + + if (input.(ComAmazonawsDynamodbTypes.AttributeValue)).Is_S() { + var dataSource = Wrappers.Companion_Option_.Create_Some_(input.(ComAmazonawsDynamodbTypes.AttributeValue).Dtor_S()) + union = &types.AttributeValueMemberS{ + Value: (Com_amazonaws_dynamodb_AttributeValue_S_FromDafny(dataSource.UnwrapOr(nil))), + } + } + if (input.(ComAmazonawsDynamodbTypes.AttributeValue)).Is_N() { + var dataSource = Wrappers.Companion_Option_.Create_Some_(input.(ComAmazonawsDynamodbTypes.AttributeValue).Dtor_N()) + union = &types.AttributeValueMemberN{ + Value: (Com_amazonaws_dynamodb_AttributeValue_N_FromDafny(dataSource.UnwrapOr(nil))), + } + } + if (input.(ComAmazonawsDynamodbTypes.AttributeValue)).Is_B() { + var dataSource = Wrappers.Companion_Option_.Create_Some_(input.(ComAmazonawsDynamodbTypes.AttributeValue).Dtor_B()) + union = &types.AttributeValueMemberB{ + Value: (Com_amazonaws_dynamodb_AttributeValue_B_FromDafny(dataSource.UnwrapOr(nil))), + } + } + if (input.(ComAmazonawsDynamodbTypes.AttributeValue)).Is_SS() { + var dataSource = Wrappers.Companion_Option_.Create_Some_(input.(ComAmazonawsDynamodbTypes.AttributeValue).Dtor_SS()) + union = &types.AttributeValueMemberSS{ + Value: (Com_amazonaws_dynamodb_AttributeValue_SS_FromDafny(dataSource.UnwrapOr(nil))), + } + } + if (input.(ComAmazonawsDynamodbTypes.AttributeValue)).Is_NS() { + var dataSource = Wrappers.Companion_Option_.Create_Some_(input.(ComAmazonawsDynamodbTypes.AttributeValue).Dtor_NS()) + union = &types.AttributeValueMemberNS{ + Value: (Com_amazonaws_dynamodb_AttributeValue_NS_FromDafny(dataSource.UnwrapOr(nil))), + } + } + if (input.(ComAmazonawsDynamodbTypes.AttributeValue)).Is_BS() { + var dataSource = Wrappers.Companion_Option_.Create_Some_(input.(ComAmazonawsDynamodbTypes.AttributeValue).Dtor_BS()) + union = &types.AttributeValueMemberBS{ + Value: (Com_amazonaws_dynamodb_AttributeValue_BS_FromDafny(dataSource.UnwrapOr(nil))), + } + } + if (input.(ComAmazonawsDynamodbTypes.AttributeValue)).Is_M() { + var dataSource = Wrappers.Companion_Option_.Create_Some_(input.(ComAmazonawsDynamodbTypes.AttributeValue).Dtor_M()) + union = &types.AttributeValueMemberM{ + Value: (Com_amazonaws_dynamodb_AttributeValue_M_FromDafny(dataSource.UnwrapOr(nil))), + } + } + if (input.(ComAmazonawsDynamodbTypes.AttributeValue)).Is_L() { + var dataSource = Wrappers.Companion_Option_.Create_Some_(input.(ComAmazonawsDynamodbTypes.AttributeValue).Dtor_L()) + union = &types.AttributeValueMemberL{ + Value: (Com_amazonaws_dynamodb_AttributeValue_L_FromDafny(dataSource.UnwrapOr(nil))), + } + } + if (input.(ComAmazonawsDynamodbTypes.AttributeValue)).Is_NULL() { + var dataSource = Wrappers.Companion_Option_.Create_Some_(input.(ComAmazonawsDynamodbTypes.AttributeValue).Dtor_NULL()) + union = &types.AttributeValueMemberNULL{ + Value: (Com_amazonaws_dynamodb_AttributeValue_NULL_FromDafny(dataSource.UnwrapOr(nil))), + } + } + if (input.(ComAmazonawsDynamodbTypes.AttributeValue)).Is_BOOL() { + var dataSource = Wrappers.Companion_Option_.Create_Some_(input.(ComAmazonawsDynamodbTypes.AttributeValue).Dtor_BOOL()) + union = &types.AttributeValueMemberBOOL{ + Value: (Com_amazonaws_dynamodb_AttributeValue_BOOL_FromDafny(dataSource.UnwrapOr(nil))), + } + } + + return union + }() +} +func Com_amazonaws_dynamodb_DeleteItemInput_ReturnValuesOnConditionCheckFailure_FromDafny(input interface{}) types.ReturnValuesOnConditionCheckFailure { + return func() types.ReturnValuesOnConditionCheckFailure { + var u types.ReturnValuesOnConditionCheckFailure + if input == nil { + return u + } + + inputEnum := input.(ComAmazonawsDynamodbTypes.ReturnValuesOnConditionCheckFailure) + index := -1 + for allEnums := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_ReturnValuesOnConditionCheckFailure_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(ComAmazonawsDynamodbTypes.ReturnValuesOnConditionCheckFailure).Equals(inputEnum) { + break + } + } + } + return u.Values()[index] + }() +} +func Com_amazonaws_dynamodb_DeleteItemOutput_Attributes_FromDafny(input interface{}) map[string]types.AttributeValue { + return func() map[string]types.AttributeValue { + var m map[string]types.AttributeValue = make(map[string]types.AttributeValue) + if input == nil { + return nil + } + + for i := dafny.Iterate(input.(dafny.Map).Items()); ; { + val, ok := i() + if !ok { + break + } + m[Com_amazonaws_dynamodb_AttributeMap_key_FromDafny((*val.(dafny.Tuple).IndexInt(0)))] = Com_amazonaws_dynamodb_AttributeMap_value_FromDafny((*val.(dafny.Tuple).IndexInt(1))) + } + return m + }() +} +func Com_amazonaws_dynamodb_DeleteItemOutput_ConsumedCapacity_FromDafny(input interface{}) *types.ConsumedCapacity { + return func() *types.ConsumedCapacity { + if input == nil { + return nil + } + return &types.ConsumedCapacity{ + TableName: Com_amazonaws_dynamodb_ConsumedCapacity_TableName_FromDafny(input.(ComAmazonawsDynamodbTypes.ConsumedCapacity).Dtor_TableName().UnwrapOr(nil)), + CapacityUnits: Com_amazonaws_dynamodb_ConsumedCapacity_CapacityUnits_FromDafny(input.(ComAmazonawsDynamodbTypes.ConsumedCapacity).Dtor_CapacityUnits().UnwrapOr(nil)), + ReadCapacityUnits: Com_amazonaws_dynamodb_ConsumedCapacity_ReadCapacityUnits_FromDafny(input.(ComAmazonawsDynamodbTypes.ConsumedCapacity).Dtor_ReadCapacityUnits().UnwrapOr(nil)), + WriteCapacityUnits: Com_amazonaws_dynamodb_ConsumedCapacity_WriteCapacityUnits_FromDafny(input.(ComAmazonawsDynamodbTypes.ConsumedCapacity).Dtor_WriteCapacityUnits().UnwrapOr(nil)), + Table: Com_amazonaws_dynamodb_ConsumedCapacity_Table_FromDafny(input.(ComAmazonawsDynamodbTypes.ConsumedCapacity).Dtor_Table().UnwrapOr(nil)), + LocalSecondaryIndexes: Com_amazonaws_dynamodb_ConsumedCapacity_LocalSecondaryIndexes_FromDafny(input.(ComAmazonawsDynamodbTypes.ConsumedCapacity).Dtor_LocalSecondaryIndexes().UnwrapOr(nil)), + GlobalSecondaryIndexes: Com_amazonaws_dynamodb_ConsumedCapacity_GlobalSecondaryIndexes_FromDafny(input.(ComAmazonawsDynamodbTypes.ConsumedCapacity).Dtor_GlobalSecondaryIndexes().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_dynamodb_DeleteItemOutput_ItemCollectionMetrics_FromDafny(input interface{}) *types.ItemCollectionMetrics { + return func() *types.ItemCollectionMetrics { + if input == nil { + return nil + } + return &types.ItemCollectionMetrics{ + ItemCollectionKey: Com_amazonaws_dynamodb_ItemCollectionMetrics_ItemCollectionKey_FromDafny(input.(ComAmazonawsDynamodbTypes.ItemCollectionMetrics).Dtor_ItemCollectionKey().UnwrapOr(nil)), + SizeEstimateRangeGB: Com_amazonaws_dynamodb_ItemCollectionMetrics_SizeEstimateRangeGB_FromDafny(input.(ComAmazonawsDynamodbTypes.ItemCollectionMetrics).Dtor_SizeEstimateRangeGB().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_dynamodb_DeleteResourcePolicyInput_ResourceArn_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 Com_amazonaws_dynamodb_DeleteResourcePolicyInput_ExpectedRevisionId_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_DeleteResourcePolicyOutput_RevisionId_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_DeleteTableInput_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 Com_amazonaws_dynamodb_DeleteTableOutput_TableDescription_FromDafny(input interface{}) *types.TableDescription { + return func() *types.TableDescription { + if input == nil { + return nil + } + return &types.TableDescription{ + AttributeDefinitions: Com_amazonaws_dynamodb_TableDescription_AttributeDefinitions_FromDafny(input.(ComAmazonawsDynamodbTypes.TableDescription).Dtor_AttributeDefinitions().UnwrapOr(nil)), + TableName: Com_amazonaws_dynamodb_TableDescription_TableName_FromDafny(input.(ComAmazonawsDynamodbTypes.TableDescription).Dtor_TableName().UnwrapOr(nil)), + KeySchema: Com_amazonaws_dynamodb_TableDescription_KeySchema_FromDafny(input.(ComAmazonawsDynamodbTypes.TableDescription).Dtor_KeySchema().UnwrapOr(nil)), + TableStatus: Com_amazonaws_dynamodb_TableDescription_TableStatus_FromDafny(input.(ComAmazonawsDynamodbTypes.TableDescription).Dtor_TableStatus().UnwrapOr(nil)), + CreationDateTime: Com_amazonaws_dynamodb_TableDescription_CreationDateTime_FromDafny(input.(ComAmazonawsDynamodbTypes.TableDescription).Dtor_CreationDateTime().UnwrapOr(nil)), + ProvisionedThroughput: Com_amazonaws_dynamodb_TableDescription_ProvisionedThroughput_FromDafny(input.(ComAmazonawsDynamodbTypes.TableDescription).Dtor_ProvisionedThroughput().UnwrapOr(nil)), + TableSizeBytes: Com_amazonaws_dynamodb_TableDescription_TableSizeBytes_FromDafny(input.(ComAmazonawsDynamodbTypes.TableDescription).Dtor_TableSizeBytes().UnwrapOr(nil)), + ItemCount: Com_amazonaws_dynamodb_TableDescription_ItemCount_FromDafny(input.(ComAmazonawsDynamodbTypes.TableDescription).Dtor_ItemCount().UnwrapOr(nil)), + TableArn: Com_amazonaws_dynamodb_TableDescription_TableArn_FromDafny(input.(ComAmazonawsDynamodbTypes.TableDescription).Dtor_TableArn().UnwrapOr(nil)), + TableId: Com_amazonaws_dynamodb_TableDescription_TableId_FromDafny(input.(ComAmazonawsDynamodbTypes.TableDescription).Dtor_TableId().UnwrapOr(nil)), + BillingModeSummary: Com_amazonaws_dynamodb_TableDescription_BillingModeSummary_FromDafny(input.(ComAmazonawsDynamodbTypes.TableDescription).Dtor_BillingModeSummary().UnwrapOr(nil)), + LocalSecondaryIndexes: Com_amazonaws_dynamodb_TableDescription_LocalSecondaryIndexes_FromDafny(input.(ComAmazonawsDynamodbTypes.TableDescription).Dtor_LocalSecondaryIndexes().UnwrapOr(nil)), + GlobalSecondaryIndexes: Com_amazonaws_dynamodb_TableDescription_GlobalSecondaryIndexes_FromDafny(input.(ComAmazonawsDynamodbTypes.TableDescription).Dtor_GlobalSecondaryIndexes().UnwrapOr(nil)), + StreamSpecification: Com_amazonaws_dynamodb_TableDescription_StreamSpecification_FromDafny(input.(ComAmazonawsDynamodbTypes.TableDescription).Dtor_StreamSpecification().UnwrapOr(nil)), + LatestStreamLabel: Com_amazonaws_dynamodb_TableDescription_LatestStreamLabel_FromDafny(input.(ComAmazonawsDynamodbTypes.TableDescription).Dtor_LatestStreamLabel().UnwrapOr(nil)), + LatestStreamArn: Com_amazonaws_dynamodb_TableDescription_LatestStreamArn_FromDafny(input.(ComAmazonawsDynamodbTypes.TableDescription).Dtor_LatestStreamArn().UnwrapOr(nil)), + GlobalTableVersion: Com_amazonaws_dynamodb_TableDescription_GlobalTableVersion_FromDafny(input.(ComAmazonawsDynamodbTypes.TableDescription).Dtor_GlobalTableVersion().UnwrapOr(nil)), + Replicas: Com_amazonaws_dynamodb_TableDescription_Replicas_FromDafny(input.(ComAmazonawsDynamodbTypes.TableDescription).Dtor_Replicas().UnwrapOr(nil)), + RestoreSummary: Com_amazonaws_dynamodb_TableDescription_RestoreSummary_FromDafny(input.(ComAmazonawsDynamodbTypes.TableDescription).Dtor_RestoreSummary().UnwrapOr(nil)), + SSEDescription: Com_amazonaws_dynamodb_TableDescription_SSEDescription_FromDafny(input.(ComAmazonawsDynamodbTypes.TableDescription).Dtor_SSEDescription().UnwrapOr(nil)), + ArchivalSummary: Com_amazonaws_dynamodb_TableDescription_ArchivalSummary_FromDafny(input.(ComAmazonawsDynamodbTypes.TableDescription).Dtor_ArchivalSummary().UnwrapOr(nil)), + TableClassSummary: Com_amazonaws_dynamodb_TableDescription_TableClassSummary_FromDafny(input.(ComAmazonawsDynamodbTypes.TableDescription).Dtor_TableClassSummary().UnwrapOr(nil)), + DeletionProtectionEnabled: Com_amazonaws_dynamodb_TableDescription_DeletionProtectionEnabled_FromDafny(input.(ComAmazonawsDynamodbTypes.TableDescription).Dtor_DeletionProtectionEnabled().UnwrapOr(nil)), + OnDemandThroughput: Com_amazonaws_dynamodb_TableDescription_OnDemandThroughput_FromDafny(input.(ComAmazonawsDynamodbTypes.TableDescription).Dtor_OnDemandThroughput().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_dynamodb_DescribeBackupInput_BackupArn_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 Com_amazonaws_dynamodb_DescribeBackupOutput_BackupDescription_FromDafny(input interface{}) *types.BackupDescription { + return func() *types.BackupDescription { + if input == nil { + return nil + } + return &types.BackupDescription{ + BackupDetails: Com_amazonaws_dynamodb_BackupDescription_BackupDetails_FromDafny(input.(ComAmazonawsDynamodbTypes.BackupDescription).Dtor_BackupDetails().UnwrapOr(nil)), + SourceTableDetails: Com_amazonaws_dynamodb_BackupDescription_SourceTableDetails_FromDafny(input.(ComAmazonawsDynamodbTypes.BackupDescription).Dtor_SourceTableDetails().UnwrapOr(nil)), + SourceTableFeatureDetails: Com_amazonaws_dynamodb_BackupDescription_SourceTableFeatureDetails_FromDafny(input.(ComAmazonawsDynamodbTypes.BackupDescription).Dtor_SourceTableFeatureDetails().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_dynamodb_DescribeContinuousBackupsInput_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 Com_amazonaws_dynamodb_DescribeContinuousBackupsOutput_ContinuousBackupsDescription_FromDafny(input interface{}) *types.ContinuousBackupsDescription { + return func() *types.ContinuousBackupsDescription { + if input == nil { + return nil + } + return &types.ContinuousBackupsDescription{ + ContinuousBackupsStatus: Com_amazonaws_dynamodb_ContinuousBackupsDescription_ContinuousBackupsStatus_FromDafny(input.(ComAmazonawsDynamodbTypes.ContinuousBackupsDescription).Dtor_ContinuousBackupsStatus()), + PointInTimeRecoveryDescription: Com_amazonaws_dynamodb_ContinuousBackupsDescription_PointInTimeRecoveryDescription_FromDafny(input.(ComAmazonawsDynamodbTypes.ContinuousBackupsDescription).Dtor_PointInTimeRecoveryDescription().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_dynamodb_ContinuousBackupsDescription_ContinuousBackupsStatus_FromDafny(input interface{}) types.ContinuousBackupsStatus { + return func() types.ContinuousBackupsStatus { + var u types.ContinuousBackupsStatus + + inputEnum := input.(ComAmazonawsDynamodbTypes.ContinuousBackupsStatus) + index := -1 + for allEnums := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_ContinuousBackupsStatus_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(ComAmazonawsDynamodbTypes.ContinuousBackupsStatus).Equals(inputEnum) { + break + } + } + } + return u.Values()[index] + }() +} +func Com_amazonaws_dynamodb_ContinuousBackupsDescription_PointInTimeRecoveryDescription_FromDafny(input interface{}) *types.PointInTimeRecoveryDescription { + return func() *types.PointInTimeRecoveryDescription { + if input == nil { + return nil + } + return &types.PointInTimeRecoveryDescription{ + PointInTimeRecoveryStatus: Com_amazonaws_dynamodb_PointInTimeRecoveryDescription_PointInTimeRecoveryStatus_FromDafny(input.(ComAmazonawsDynamodbTypes.PointInTimeRecoveryDescription).Dtor_PointInTimeRecoveryStatus().UnwrapOr(nil)), + EarliestRestorableDateTime: Com_amazonaws_dynamodb_PointInTimeRecoveryDescription_EarliestRestorableDateTime_FromDafny(input.(ComAmazonawsDynamodbTypes.PointInTimeRecoveryDescription).Dtor_EarliestRestorableDateTime().UnwrapOr(nil)), + LatestRestorableDateTime: Com_amazonaws_dynamodb_PointInTimeRecoveryDescription_LatestRestorableDateTime_FromDafny(input.(ComAmazonawsDynamodbTypes.PointInTimeRecoveryDescription).Dtor_LatestRestorableDateTime().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_dynamodb_PointInTimeRecoveryDescription_PointInTimeRecoveryStatus_FromDafny(input interface{}) types.PointInTimeRecoveryStatus { + return func() types.PointInTimeRecoveryStatus { + var u types.PointInTimeRecoveryStatus + if input == nil { + return u + } + + inputEnum := input.(ComAmazonawsDynamodbTypes.PointInTimeRecoveryStatus) + index := -1 + for allEnums := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_PointInTimeRecoveryStatus_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(ComAmazonawsDynamodbTypes.PointInTimeRecoveryStatus).Equals(inputEnum) { + break + } + } + } + return u.Values()[index] + }() +} +func Com_amazonaws_dynamodb_PointInTimeRecoveryDescription_EarliestRestorableDateTime_FromDafny(input interface{}) *time.Time { + return func() *time.Time { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + if len(s) == 0 { + panic("timestamp string is empty") + } else { + t, err := time.Parse("2006-01-02T15:04:05.999999Z", s) + if err != nil { + panic(err) + } + return &t + } + }() +} +func Com_amazonaws_dynamodb_PointInTimeRecoveryDescription_LatestRestorableDateTime_FromDafny(input interface{}) *time.Time { + return func() *time.Time { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + if len(s) == 0 { + panic("timestamp string is empty") + } else { + t, err := time.Parse("2006-01-02T15:04:05.999999Z", s) + if err != nil { + panic(err) + } + return &t + } + }() +} +func Com_amazonaws_dynamodb_DescribeContributorInsightsInput_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 Com_amazonaws_dynamodb_DescribeContributorInsightsInput_IndexName_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_DescribeContributorInsightsOutput_TableName_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_DescribeContributorInsightsOutput_IndexName_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_DescribeContributorInsightsOutput_ContributorInsightsRuleList_FromDafny(input interface{}) []string { + return func() []string { + var fieldValue []string + if input == nil { + return nil + } + for i := dafny.Iterate(input.(dafny.Sequence).(dafny.Sequence)); ; { + val, ok := i() + if !ok { + break + } + fieldValue = append(fieldValue, Com_amazonaws_dynamodb_ContributorInsightsRuleList_member_FromDafny(val)) + } + return fieldValue + }() +} +func Com_amazonaws_dynamodb_ContributorInsightsRuleList_member_FromDafny(input interface{}) string { + return func() string { + + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return s + }() +} +func Com_amazonaws_dynamodb_DescribeContributorInsightsOutput_ContributorInsightsStatus_FromDafny(input interface{}) types.ContributorInsightsStatus { + return func() types.ContributorInsightsStatus { + var u types.ContributorInsightsStatus + if input == nil { + return u + } + + inputEnum := input.(ComAmazonawsDynamodbTypes.ContributorInsightsStatus) + index := -1 + for allEnums := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_ContributorInsightsStatus_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(ComAmazonawsDynamodbTypes.ContributorInsightsStatus).Equals(inputEnum) { + break + } + } + } + return u.Values()[index] + }() +} +func Com_amazonaws_dynamodb_DescribeContributorInsightsOutput_LastUpdateDateTime_FromDafny(input interface{}) *time.Time { + return func() *time.Time { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + if len(s) == 0 { + panic("timestamp string is empty") + } else { + t, err := time.Parse("2006-01-02T15:04:05.999999Z", s) + if err != nil { + panic(err) + } + return &t + } + }() +} +func Com_amazonaws_dynamodb_DescribeContributorInsightsOutput_FailureException_FromDafny(input interface{}) *types.FailureException { + return func() *types.FailureException { + if input == nil { + return nil + } + return &types.FailureException{ + ExceptionName: Com_amazonaws_dynamodb_FailureException_ExceptionName_FromDafny(input.(ComAmazonawsDynamodbTypes.FailureException).Dtor_ExceptionName().UnwrapOr(nil)), + ExceptionDescription: Com_amazonaws_dynamodb_FailureException_ExceptionDescription_FromDafny(input.(ComAmazonawsDynamodbTypes.FailureException).Dtor_ExceptionDescription().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_dynamodb_FailureException_ExceptionName_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_FailureException_ExceptionDescription_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_DescribeEndpointsOutput_Endpoints_FromDafny(input interface{}) []types.Endpoint { + return func() []types.Endpoint { + var fieldValue []types.Endpoint + + for i := dafny.Iterate(input.(dafny.Sequence)); ; { + val, ok := i() + if !ok { + break + } + fieldValue = append(fieldValue, Com_amazonaws_dynamodb_Endpoints_member_FromDafny(val)) + } + return fieldValue + }() +} +func Com_amazonaws_dynamodb_Endpoints_member_FromDafny(input interface{}) types.Endpoint { + return func() types.Endpoint { + + return types.Endpoint{ + Address: Com_amazonaws_dynamodb_Endpoint_Address_FromDafny(input.(ComAmazonawsDynamodbTypes.Endpoint).Dtor_Address()), + CachePeriodInMinutes: Com_amazonaws_dynamodb_Endpoint_CachePeriodInMinutes_FromDafny(input.(ComAmazonawsDynamodbTypes.Endpoint).Dtor_CachePeriodInMinutes()), + } + }() +} +func Com_amazonaws_dynamodb_Endpoint_Address_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 Com_amazonaws_dynamodb_Endpoint_CachePeriodInMinutes_FromDafny(input interface{}) int64 { + return func() int64 { + var i int64 + + i = input.(int64) + return i + }() +} +func Com_amazonaws_dynamodb_DescribeExportInput_ExportArn_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 Com_amazonaws_dynamodb_DescribeExportOutput_ExportDescription_FromDafny(input interface{}) *types.ExportDescription { + return func() *types.ExportDescription { + if input == nil { + return nil + } + return &types.ExportDescription{ + ExportArn: Com_amazonaws_dynamodb_ExportDescription_ExportArn_FromDafny(input.(ComAmazonawsDynamodbTypes.ExportDescription).Dtor_ExportArn().UnwrapOr(nil)), + ExportStatus: Com_amazonaws_dynamodb_ExportDescription_ExportStatus_FromDafny(input.(ComAmazonawsDynamodbTypes.ExportDescription).Dtor_ExportStatus().UnwrapOr(nil)), + StartTime: Com_amazonaws_dynamodb_ExportDescription_StartTime_FromDafny(input.(ComAmazonawsDynamodbTypes.ExportDescription).Dtor_StartTime().UnwrapOr(nil)), + EndTime: Com_amazonaws_dynamodb_ExportDescription_EndTime_FromDafny(input.(ComAmazonawsDynamodbTypes.ExportDescription).Dtor_EndTime().UnwrapOr(nil)), + ExportManifest: Com_amazonaws_dynamodb_ExportDescription_ExportManifest_FromDafny(input.(ComAmazonawsDynamodbTypes.ExportDescription).Dtor_ExportManifest().UnwrapOr(nil)), + TableArn: Com_amazonaws_dynamodb_ExportDescription_TableArn_FromDafny(input.(ComAmazonawsDynamodbTypes.ExportDescription).Dtor_TableArn().UnwrapOr(nil)), + TableId: Com_amazonaws_dynamodb_ExportDescription_TableId_FromDafny(input.(ComAmazonawsDynamodbTypes.ExportDescription).Dtor_TableId().UnwrapOr(nil)), + ExportTime: Com_amazonaws_dynamodb_ExportDescription_ExportTime_FromDafny(input.(ComAmazonawsDynamodbTypes.ExportDescription).Dtor_ExportTime().UnwrapOr(nil)), + ClientToken: Com_amazonaws_dynamodb_ExportDescription_ClientToken_FromDafny(input.(ComAmazonawsDynamodbTypes.ExportDescription).Dtor_ClientToken().UnwrapOr(nil)), + S3Bucket: Com_amazonaws_dynamodb_ExportDescription_S3Bucket_FromDafny(input.(ComAmazonawsDynamodbTypes.ExportDescription).Dtor_S3Bucket().UnwrapOr(nil)), + S3BucketOwner: Com_amazonaws_dynamodb_ExportDescription_S3BucketOwner_FromDafny(input.(ComAmazonawsDynamodbTypes.ExportDescription).Dtor_S3BucketOwner().UnwrapOr(nil)), + S3Prefix: Com_amazonaws_dynamodb_ExportDescription_S3Prefix_FromDafny(input.(ComAmazonawsDynamodbTypes.ExportDescription).Dtor_S3Prefix().UnwrapOr(nil)), + S3SseAlgorithm: Com_amazonaws_dynamodb_ExportDescription_S3SseAlgorithm_FromDafny(input.(ComAmazonawsDynamodbTypes.ExportDescription).Dtor_S3SseAlgorithm().UnwrapOr(nil)), + S3SseKmsKeyId: Com_amazonaws_dynamodb_ExportDescription_S3SseKmsKeyId_FromDafny(input.(ComAmazonawsDynamodbTypes.ExportDescription).Dtor_S3SseKmsKeyId().UnwrapOr(nil)), + FailureCode: Com_amazonaws_dynamodb_ExportDescription_FailureCode_FromDafny(input.(ComAmazonawsDynamodbTypes.ExportDescription).Dtor_FailureCode().UnwrapOr(nil)), + FailureMessage: Com_amazonaws_dynamodb_ExportDescription_FailureMessage_FromDafny(input.(ComAmazonawsDynamodbTypes.ExportDescription).Dtor_FailureMessage().UnwrapOr(nil)), + ExportFormat: Com_amazonaws_dynamodb_ExportDescription_ExportFormat_FromDafny(input.(ComAmazonawsDynamodbTypes.ExportDescription).Dtor_ExportFormat().UnwrapOr(nil)), + BilledSizeBytes: Com_amazonaws_dynamodb_ExportDescription_BilledSizeBytes_FromDafny(input.(ComAmazonawsDynamodbTypes.ExportDescription).Dtor_BilledSizeBytes().UnwrapOr(nil)), + ItemCount: Com_amazonaws_dynamodb_ExportDescription_ItemCount_FromDafny(input.(ComAmazonawsDynamodbTypes.ExportDescription).Dtor_ItemCount().UnwrapOr(nil)), + ExportType: Com_amazonaws_dynamodb_ExportDescription_ExportType_FromDafny(input.(ComAmazonawsDynamodbTypes.ExportDescription).Dtor_ExportType().UnwrapOr(nil)), + IncrementalExportSpecification: Com_amazonaws_dynamodb_ExportDescription_IncrementalExportSpecification_FromDafny(input.(ComAmazonawsDynamodbTypes.ExportDescription).Dtor_IncrementalExportSpecification().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_dynamodb_ExportDescription_ExportArn_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_ExportDescription_ExportStatus_FromDafny(input interface{}) types.ExportStatus { + return func() types.ExportStatus { + var u types.ExportStatus + if input == nil { + return u + } + + inputEnum := input.(ComAmazonawsDynamodbTypes.ExportStatus) + index := -1 + for allEnums := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_ExportStatus_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(ComAmazonawsDynamodbTypes.ExportStatus).Equals(inputEnum) { + break + } + } + } + return u.Values()[index] + }() +} +func Com_amazonaws_dynamodb_ExportDescription_StartTime_FromDafny(input interface{}) *time.Time { + return func() *time.Time { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + if len(s) == 0 { + panic("timestamp string is empty") + } else { + t, err := time.Parse("2006-01-02T15:04:05.999999Z", s) + if err != nil { + panic(err) + } + return &t + } + }() +} +func Com_amazonaws_dynamodb_ExportDescription_EndTime_FromDafny(input interface{}) *time.Time { + return func() *time.Time { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + if len(s) == 0 { + panic("timestamp string is empty") + } else { + t, err := time.Parse("2006-01-02T15:04:05.999999Z", s) + if err != nil { + panic(err) + } + return &t + } + }() +} +func Com_amazonaws_dynamodb_ExportDescription_ExportManifest_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_ExportDescription_TableArn_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_ExportDescription_TableId_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_ExportDescription_ExportTime_FromDafny(input interface{}) *time.Time { + return func() *time.Time { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + if len(s) == 0 { + panic("timestamp string is empty") + } else { + t, err := time.Parse("2006-01-02T15:04:05.999999Z", s) + if err != nil { + panic(err) + } + return &t + } + }() +} +func Com_amazonaws_dynamodb_ExportDescription_ClientToken_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_ExportDescription_S3Bucket_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_ExportDescription_S3BucketOwner_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_ExportDescription_S3Prefix_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_ExportDescription_S3SseAlgorithm_FromDafny(input interface{}) types.S3SseAlgorithm { + return func() types.S3SseAlgorithm { + var u types.S3SseAlgorithm + if input == nil { + return u + } + + inputEnum := input.(ComAmazonawsDynamodbTypes.S3SseAlgorithm) + index := -1 + for allEnums := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_S3SseAlgorithm_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(ComAmazonawsDynamodbTypes.S3SseAlgorithm).Equals(inputEnum) { + break + } + } + } + return u.Values()[index] + }() +} +func Com_amazonaws_dynamodb_ExportDescription_S3SseKmsKeyId_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_ExportDescription_FailureCode_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_ExportDescription_FailureMessage_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_ExportDescription_ExportFormat_FromDafny(input interface{}) types.ExportFormat { + return func() types.ExportFormat { + var u types.ExportFormat + if input == nil { + return u + } + + inputEnum := input.(ComAmazonawsDynamodbTypes.ExportFormat) + index := -1 + for allEnums := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_ExportFormat_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(ComAmazonawsDynamodbTypes.ExportFormat).Equals(inputEnum) { + break + } + } + } + return u.Values()[index] + }() +} +func Com_amazonaws_dynamodb_ExportDescription_BilledSizeBytes_FromDafny(input interface{}) *int64 { + return func() *int64 { + var i int64 + if input == nil { + return nil + } + i = input.(int64) + return &i + }() +} +func Com_amazonaws_dynamodb_ExportDescription_ItemCount_FromDafny(input interface{}) *int64 { + return func() *int64 { + var i int64 + if input == nil { + return nil + } + i = input.(int64) + return &i + }() +} +func Com_amazonaws_dynamodb_ExportDescription_ExportType_FromDafny(input interface{}) types.ExportType { + return func() types.ExportType { + var u types.ExportType + if input == nil { + return u + } + + inputEnum := input.(ComAmazonawsDynamodbTypes.ExportType) + index := -1 + for allEnums := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_ExportType_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(ComAmazonawsDynamodbTypes.ExportType).Equals(inputEnum) { + break + } + } + } + return u.Values()[index] + }() +} +func Com_amazonaws_dynamodb_ExportDescription_IncrementalExportSpecification_FromDafny(input interface{}) *types.IncrementalExportSpecification { + return func() *types.IncrementalExportSpecification { + if input == nil { + return nil + } + return &types.IncrementalExportSpecification{ + ExportFromTime: Com_amazonaws_dynamodb_IncrementalExportSpecification_ExportFromTime_FromDafny(input.(ComAmazonawsDynamodbTypes.IncrementalExportSpecification).Dtor_ExportFromTime().UnwrapOr(nil)), + ExportToTime: Com_amazonaws_dynamodb_IncrementalExportSpecification_ExportToTime_FromDafny(input.(ComAmazonawsDynamodbTypes.IncrementalExportSpecification).Dtor_ExportToTime().UnwrapOr(nil)), + ExportViewType: Com_amazonaws_dynamodb_IncrementalExportSpecification_ExportViewType_FromDafny(input.(ComAmazonawsDynamodbTypes.IncrementalExportSpecification).Dtor_ExportViewType().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_dynamodb_IncrementalExportSpecification_ExportFromTime_FromDafny(input interface{}) *time.Time { + return func() *time.Time { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + if len(s) == 0 { + panic("timestamp string is empty") + } else { + t, err := time.Parse("2006-01-02T15:04:05.999999Z", s) + if err != nil { + panic(err) + } + return &t + } + }() +} +func Com_amazonaws_dynamodb_IncrementalExportSpecification_ExportToTime_FromDafny(input interface{}) *time.Time { + return func() *time.Time { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + if len(s) == 0 { + panic("timestamp string is empty") + } else { + t, err := time.Parse("2006-01-02T15:04:05.999999Z", s) + if err != nil { + panic(err) + } + return &t + } + }() +} +func Com_amazonaws_dynamodb_IncrementalExportSpecification_ExportViewType_FromDafny(input interface{}) types.ExportViewType { + return func() types.ExportViewType { + var u types.ExportViewType + if input == nil { + return u + } + + inputEnum := input.(ComAmazonawsDynamodbTypes.ExportViewType) + index := -1 + for allEnums := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_ExportViewType_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(ComAmazonawsDynamodbTypes.ExportViewType).Equals(inputEnum) { + break + } + } + } + return u.Values()[index] + }() +} +func Com_amazonaws_dynamodb_DescribeGlobalTableInput_GlobalTableName_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 Com_amazonaws_dynamodb_DescribeGlobalTableOutput_GlobalTableDescription_FromDafny(input interface{}) *types.GlobalTableDescription { + return func() *types.GlobalTableDescription { + if input == nil { + return nil + } + return &types.GlobalTableDescription{ + ReplicationGroup: Com_amazonaws_dynamodb_GlobalTableDescription_ReplicationGroup_FromDafny(input.(ComAmazonawsDynamodbTypes.GlobalTableDescription).Dtor_ReplicationGroup().UnwrapOr(nil)), + GlobalTableArn: Com_amazonaws_dynamodb_GlobalTableDescription_GlobalTableArn_FromDafny(input.(ComAmazonawsDynamodbTypes.GlobalTableDescription).Dtor_GlobalTableArn().UnwrapOr(nil)), + CreationDateTime: Com_amazonaws_dynamodb_GlobalTableDescription_CreationDateTime_FromDafny(input.(ComAmazonawsDynamodbTypes.GlobalTableDescription).Dtor_CreationDateTime().UnwrapOr(nil)), + GlobalTableStatus: Com_amazonaws_dynamodb_GlobalTableDescription_GlobalTableStatus_FromDafny(input.(ComAmazonawsDynamodbTypes.GlobalTableDescription).Dtor_GlobalTableStatus().UnwrapOr(nil)), + GlobalTableName: Com_amazonaws_dynamodb_GlobalTableDescription_GlobalTableName_FromDafny(input.(ComAmazonawsDynamodbTypes.GlobalTableDescription).Dtor_GlobalTableName().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_dynamodb_DescribeGlobalTableSettingsInput_GlobalTableName_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 Com_amazonaws_dynamodb_DescribeGlobalTableSettingsOutput_GlobalTableName_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_DescribeGlobalTableSettingsOutput_ReplicaSettings_FromDafny(input interface{}) []types.ReplicaSettingsDescription { + return func() []types.ReplicaSettingsDescription { + var fieldValue []types.ReplicaSettingsDescription + if input == nil { + return nil + } + for i := dafny.Iterate(input.(dafny.Sequence).(dafny.Sequence)); ; { + val, ok := i() + if !ok { + break + } + fieldValue = append(fieldValue, Com_amazonaws_dynamodb_ReplicaSettingsDescriptionList_member_FromDafny(val)) + } + return fieldValue + }() +} +func Com_amazonaws_dynamodb_ReplicaSettingsDescriptionList_member_FromDafny(input interface{}) types.ReplicaSettingsDescription { + return func() types.ReplicaSettingsDescription { + + return types.ReplicaSettingsDescription{ + RegionName: Com_amazonaws_dynamodb_ReplicaSettingsDescription_RegionName_FromDafny(input.(ComAmazonawsDynamodbTypes.ReplicaSettingsDescription).Dtor_RegionName()), + ReplicaStatus: Com_amazonaws_dynamodb_ReplicaSettingsDescription_ReplicaStatus_FromDafny(input.(ComAmazonawsDynamodbTypes.ReplicaSettingsDescription).Dtor_ReplicaStatus().UnwrapOr(nil)), + ReplicaBillingModeSummary: Com_amazonaws_dynamodb_ReplicaSettingsDescription_ReplicaBillingModeSummary_FromDafny(input.(ComAmazonawsDynamodbTypes.ReplicaSettingsDescription).Dtor_ReplicaBillingModeSummary().UnwrapOr(nil)), + ReplicaProvisionedReadCapacityUnits: Com_amazonaws_dynamodb_ReplicaSettingsDescription_ReplicaProvisionedReadCapacityUnits_FromDafny(input.(ComAmazonawsDynamodbTypes.ReplicaSettingsDescription).Dtor_ReplicaProvisionedReadCapacityUnits().UnwrapOr(nil)), + ReplicaProvisionedReadCapacityAutoScalingSettings: Com_amazonaws_dynamodb_ReplicaSettingsDescription_ReplicaProvisionedReadCapacityAutoScalingSettings_FromDafny(input.(ComAmazonawsDynamodbTypes.ReplicaSettingsDescription).Dtor_ReplicaProvisionedReadCapacityAutoScalingSettings().UnwrapOr(nil)), + ReplicaProvisionedWriteCapacityUnits: Com_amazonaws_dynamodb_ReplicaSettingsDescription_ReplicaProvisionedWriteCapacityUnits_FromDafny(input.(ComAmazonawsDynamodbTypes.ReplicaSettingsDescription).Dtor_ReplicaProvisionedWriteCapacityUnits().UnwrapOr(nil)), + ReplicaProvisionedWriteCapacityAutoScalingSettings: Com_amazonaws_dynamodb_ReplicaSettingsDescription_ReplicaProvisionedWriteCapacityAutoScalingSettings_FromDafny(input.(ComAmazonawsDynamodbTypes.ReplicaSettingsDescription).Dtor_ReplicaProvisionedWriteCapacityAutoScalingSettings().UnwrapOr(nil)), + ReplicaGlobalSecondaryIndexSettings: Com_amazonaws_dynamodb_ReplicaSettingsDescription_ReplicaGlobalSecondaryIndexSettings_FromDafny(input.(ComAmazonawsDynamodbTypes.ReplicaSettingsDescription).Dtor_ReplicaGlobalSecondaryIndexSettings().UnwrapOr(nil)), + ReplicaTableClassSummary: Com_amazonaws_dynamodb_ReplicaSettingsDescription_ReplicaTableClassSummary_FromDafny(input.(ComAmazonawsDynamodbTypes.ReplicaSettingsDescription).Dtor_ReplicaTableClassSummary().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_dynamodb_ReplicaSettingsDescription_RegionName_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 Com_amazonaws_dynamodb_ReplicaSettingsDescription_ReplicaStatus_FromDafny(input interface{}) types.ReplicaStatus { + return func() types.ReplicaStatus { + var u types.ReplicaStatus + if input == nil { + return u + } + + inputEnum := input.(ComAmazonawsDynamodbTypes.ReplicaStatus) + index := -1 + for allEnums := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_ReplicaStatus_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(ComAmazonawsDynamodbTypes.ReplicaStatus).Equals(inputEnum) { + break + } + } + } + return u.Values()[index] + }() +} +func Com_amazonaws_dynamodb_ReplicaSettingsDescription_ReplicaBillingModeSummary_FromDafny(input interface{}) *types.BillingModeSummary { + return func() *types.BillingModeSummary { + if input == nil { + return nil + } + return &types.BillingModeSummary{ + BillingMode: Com_amazonaws_dynamodb_BillingModeSummary_BillingMode_FromDafny(input.(ComAmazonawsDynamodbTypes.BillingModeSummary).Dtor_BillingMode().UnwrapOr(nil)), + LastUpdateToPayPerRequestDateTime: Com_amazonaws_dynamodb_BillingModeSummary_LastUpdateToPayPerRequestDateTime_FromDafny(input.(ComAmazonawsDynamodbTypes.BillingModeSummary).Dtor_LastUpdateToPayPerRequestDateTime().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_dynamodb_ReplicaSettingsDescription_ReplicaProvisionedReadCapacityUnits_FromDafny(input interface{}) *int64 { + return func() *int64 { + var i int64 + if input == nil { + return nil + } + i = input.(int64) + return &i + }() +} +func Com_amazonaws_dynamodb_ReplicaSettingsDescription_ReplicaProvisionedReadCapacityAutoScalingSettings_FromDafny(input interface{}) *types.AutoScalingSettingsDescription { + return func() *types.AutoScalingSettingsDescription { + if input == nil { + return nil + } + return &types.AutoScalingSettingsDescription{ + MinimumUnits: Com_amazonaws_dynamodb_AutoScalingSettingsDescription_MinimumUnits_FromDafny(input.(ComAmazonawsDynamodbTypes.AutoScalingSettingsDescription).Dtor_MinimumUnits().UnwrapOr(nil)), + MaximumUnits: Com_amazonaws_dynamodb_AutoScalingSettingsDescription_MaximumUnits_FromDafny(input.(ComAmazonawsDynamodbTypes.AutoScalingSettingsDescription).Dtor_MaximumUnits().UnwrapOr(nil)), + AutoScalingDisabled: Com_amazonaws_dynamodb_AutoScalingSettingsDescription_AutoScalingDisabled_FromDafny(input.(ComAmazonawsDynamodbTypes.AutoScalingSettingsDescription).Dtor_AutoScalingDisabled().UnwrapOr(nil)), + AutoScalingRoleArn: Com_amazonaws_dynamodb_AutoScalingSettingsDescription_AutoScalingRoleArn_FromDafny(input.(ComAmazonawsDynamodbTypes.AutoScalingSettingsDescription).Dtor_AutoScalingRoleArn().UnwrapOr(nil)), + ScalingPolicies: Com_amazonaws_dynamodb_AutoScalingSettingsDescription_ScalingPolicies_FromDafny(input.(ComAmazonawsDynamodbTypes.AutoScalingSettingsDescription).Dtor_ScalingPolicies().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_dynamodb_AutoScalingSettingsDescription_MinimumUnits_FromDafny(input interface{}) *int64 { + return func() *int64 { + var i int64 + if input == nil { + return nil + } + i = input.(int64) + return &i + }() +} +func Com_amazonaws_dynamodb_AutoScalingSettingsDescription_MaximumUnits_FromDafny(input interface{}) *int64 { + return func() *int64 { + var i int64 + if input == nil { + return nil + } + i = input.(int64) + return &i + }() +} +func Com_amazonaws_dynamodb_AutoScalingSettingsDescription_AutoScalingDisabled_FromDafny(input interface{}) *bool { + return func() *bool { + var b bool + if input == nil { + return nil + } + b = input.(bool) + return &b + }() +} +func Com_amazonaws_dynamodb_AutoScalingSettingsDescription_AutoScalingRoleArn_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_AutoScalingSettingsDescription_ScalingPolicies_FromDafny(input interface{}) []types.AutoScalingPolicyDescription { + return func() []types.AutoScalingPolicyDescription { + var fieldValue []types.AutoScalingPolicyDescription + if input == nil { + return nil + } + for i := dafny.Iterate(input.(dafny.Sequence).(dafny.Sequence)); ; { + val, ok := i() + if !ok { + break + } + fieldValue = append(fieldValue, Com_amazonaws_dynamodb_AutoScalingPolicyDescriptionList_member_FromDafny(val)) + } + return fieldValue + }() +} +func Com_amazonaws_dynamodb_AutoScalingPolicyDescriptionList_member_FromDafny(input interface{}) types.AutoScalingPolicyDescription { + return func() types.AutoScalingPolicyDescription { + + return types.AutoScalingPolicyDescription{ + PolicyName: Com_amazonaws_dynamodb_AutoScalingPolicyDescription_PolicyName_FromDafny(input.(ComAmazonawsDynamodbTypes.AutoScalingPolicyDescription).Dtor_PolicyName().UnwrapOr(nil)), + TargetTrackingScalingPolicyConfiguration: Com_amazonaws_dynamodb_AutoScalingPolicyDescription_TargetTrackingScalingPolicyConfiguration_FromDafny(input.(ComAmazonawsDynamodbTypes.AutoScalingPolicyDescription).Dtor_TargetTrackingScalingPolicyConfiguration().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_dynamodb_AutoScalingPolicyDescription_PolicyName_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_AutoScalingPolicyDescription_TargetTrackingScalingPolicyConfiguration_FromDafny(input interface{}) *types.AutoScalingTargetTrackingScalingPolicyConfigurationDescription { + return func() *types.AutoScalingTargetTrackingScalingPolicyConfigurationDescription { + if input == nil { + return nil + } + return &types.AutoScalingTargetTrackingScalingPolicyConfigurationDescription{ + DisableScaleIn: Com_amazonaws_dynamodb_AutoScalingTargetTrackingScalingPolicyConfigurationDescription_DisableScaleIn_FromDafny(input.(ComAmazonawsDynamodbTypes.AutoScalingTargetTrackingScalingPolicyConfigurationDescription).Dtor_DisableScaleIn().UnwrapOr(nil)), + ScaleInCooldown: Com_amazonaws_dynamodb_AutoScalingTargetTrackingScalingPolicyConfigurationDescription_ScaleInCooldown_FromDafny(input.(ComAmazonawsDynamodbTypes.AutoScalingTargetTrackingScalingPolicyConfigurationDescription).Dtor_ScaleInCooldown().UnwrapOr(nil)), + ScaleOutCooldown: Com_amazonaws_dynamodb_AutoScalingTargetTrackingScalingPolicyConfigurationDescription_ScaleOutCooldown_FromDafny(input.(ComAmazonawsDynamodbTypes.AutoScalingTargetTrackingScalingPolicyConfigurationDescription).Dtor_ScaleOutCooldown().UnwrapOr(nil)), + TargetValue: Com_amazonaws_dynamodb_AutoScalingTargetTrackingScalingPolicyConfigurationDescription_TargetValue_FromDafny(input.(ComAmazonawsDynamodbTypes.AutoScalingTargetTrackingScalingPolicyConfigurationDescription).Dtor_TargetValue()), + } + }() +} +func Com_amazonaws_dynamodb_AutoScalingTargetTrackingScalingPolicyConfigurationDescription_DisableScaleIn_FromDafny(input interface{}) *bool { + return func() *bool { + var b bool + if input == nil { + return nil + } + b = input.(bool) + return &b + }() +} +func Com_amazonaws_dynamodb_AutoScalingTargetTrackingScalingPolicyConfigurationDescription_ScaleInCooldown_FromDafny(input interface{}) *int32 { + return func() *int32 { + var i int32 + if input == nil { + return nil + } + i = input.(int32) + return &i + }() +} +func Com_amazonaws_dynamodb_AutoScalingTargetTrackingScalingPolicyConfigurationDescription_ScaleOutCooldown_FromDafny(input interface{}) *int32 { + return func() *int32 { + var i int32 + if input == nil { + return nil + } + i = input.(int32) + return &i + }() +} +func Com_amazonaws_dynamodb_AutoScalingTargetTrackingScalingPolicyConfigurationDescription_TargetValue_FromDafny(input interface{}) *float64 { + return func() *float64 { + var b []byte + + for i := dafny.Iterate(input); ; { + val, ok := i() + if !ok { + return &[]float64{math.Float64frombits(binary.LittleEndian.Uint64(b))}[0] + } else { + b = append(b, val.(byte)) + } + } + }() +} +func Com_amazonaws_dynamodb_ReplicaSettingsDescription_ReplicaProvisionedWriteCapacityUnits_FromDafny(input interface{}) *int64 { + return func() *int64 { + var i int64 + if input == nil { + return nil + } + i = input.(int64) + return &i + }() +} +func Com_amazonaws_dynamodb_ReplicaSettingsDescription_ReplicaProvisionedWriteCapacityAutoScalingSettings_FromDafny(input interface{}) *types.AutoScalingSettingsDescription { + return func() *types.AutoScalingSettingsDescription { + if input == nil { + return nil + } + return &types.AutoScalingSettingsDescription{ + MinimumUnits: Com_amazonaws_dynamodb_AutoScalingSettingsDescription_MinimumUnits_FromDafny(input.(ComAmazonawsDynamodbTypes.AutoScalingSettingsDescription).Dtor_MinimumUnits().UnwrapOr(nil)), + MaximumUnits: Com_amazonaws_dynamodb_AutoScalingSettingsDescription_MaximumUnits_FromDafny(input.(ComAmazonawsDynamodbTypes.AutoScalingSettingsDescription).Dtor_MaximumUnits().UnwrapOr(nil)), + AutoScalingDisabled: Com_amazonaws_dynamodb_AutoScalingSettingsDescription_AutoScalingDisabled_FromDafny(input.(ComAmazonawsDynamodbTypes.AutoScalingSettingsDescription).Dtor_AutoScalingDisabled().UnwrapOr(nil)), + AutoScalingRoleArn: Com_amazonaws_dynamodb_AutoScalingSettingsDescription_AutoScalingRoleArn_FromDafny(input.(ComAmazonawsDynamodbTypes.AutoScalingSettingsDescription).Dtor_AutoScalingRoleArn().UnwrapOr(nil)), + ScalingPolicies: Com_amazonaws_dynamodb_AutoScalingSettingsDescription_ScalingPolicies_FromDafny(input.(ComAmazonawsDynamodbTypes.AutoScalingSettingsDescription).Dtor_ScalingPolicies().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_dynamodb_ReplicaSettingsDescription_ReplicaGlobalSecondaryIndexSettings_FromDafny(input interface{}) []types.ReplicaGlobalSecondaryIndexSettingsDescription { + return func() []types.ReplicaGlobalSecondaryIndexSettingsDescription { + var fieldValue []types.ReplicaGlobalSecondaryIndexSettingsDescription + if input == nil { + return nil + } + for i := dafny.Iterate(input.(dafny.Sequence).(dafny.Sequence)); ; { + val, ok := i() + if !ok { + break + } + fieldValue = append(fieldValue, Com_amazonaws_dynamodb_ReplicaGlobalSecondaryIndexSettingsDescriptionList_member_FromDafny(val)) + } + return fieldValue + }() +} +func Com_amazonaws_dynamodb_ReplicaGlobalSecondaryIndexSettingsDescriptionList_member_FromDafny(input interface{}) types.ReplicaGlobalSecondaryIndexSettingsDescription { + return func() types.ReplicaGlobalSecondaryIndexSettingsDescription { + + return types.ReplicaGlobalSecondaryIndexSettingsDescription{ + IndexName: Com_amazonaws_dynamodb_ReplicaGlobalSecondaryIndexSettingsDescription_IndexName_FromDafny(input.(ComAmazonawsDynamodbTypes.ReplicaGlobalSecondaryIndexSettingsDescription).Dtor_IndexName()), + IndexStatus: Com_amazonaws_dynamodb_ReplicaGlobalSecondaryIndexSettingsDescription_IndexStatus_FromDafny(input.(ComAmazonawsDynamodbTypes.ReplicaGlobalSecondaryIndexSettingsDescription).Dtor_IndexStatus().UnwrapOr(nil)), + ProvisionedReadCapacityUnits: Com_amazonaws_dynamodb_ReplicaGlobalSecondaryIndexSettingsDescription_ProvisionedReadCapacityUnits_FromDafny(input.(ComAmazonawsDynamodbTypes.ReplicaGlobalSecondaryIndexSettingsDescription).Dtor_ProvisionedReadCapacityUnits().UnwrapOr(nil)), + ProvisionedReadCapacityAutoScalingSettings: Com_amazonaws_dynamodb_ReplicaGlobalSecondaryIndexSettingsDescription_ProvisionedReadCapacityAutoScalingSettings_FromDafny(input.(ComAmazonawsDynamodbTypes.ReplicaGlobalSecondaryIndexSettingsDescription).Dtor_ProvisionedReadCapacityAutoScalingSettings().UnwrapOr(nil)), + ProvisionedWriteCapacityUnits: Com_amazonaws_dynamodb_ReplicaGlobalSecondaryIndexSettingsDescription_ProvisionedWriteCapacityUnits_FromDafny(input.(ComAmazonawsDynamodbTypes.ReplicaGlobalSecondaryIndexSettingsDescription).Dtor_ProvisionedWriteCapacityUnits().UnwrapOr(nil)), + ProvisionedWriteCapacityAutoScalingSettings: Com_amazonaws_dynamodb_ReplicaGlobalSecondaryIndexSettingsDescription_ProvisionedWriteCapacityAutoScalingSettings_FromDafny(input.(ComAmazonawsDynamodbTypes.ReplicaGlobalSecondaryIndexSettingsDescription).Dtor_ProvisionedWriteCapacityAutoScalingSettings().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_dynamodb_ReplicaGlobalSecondaryIndexSettingsDescription_IndexName_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 Com_amazonaws_dynamodb_ReplicaGlobalSecondaryIndexSettingsDescription_IndexStatus_FromDafny(input interface{}) types.IndexStatus { + return func() types.IndexStatus { + var u types.IndexStatus + if input == nil { + return u + } + + inputEnum := input.(ComAmazonawsDynamodbTypes.IndexStatus) + index := -1 + for allEnums := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_IndexStatus_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(ComAmazonawsDynamodbTypes.IndexStatus).Equals(inputEnum) { + break + } + } + } + return u.Values()[index] + }() +} +func Com_amazonaws_dynamodb_ReplicaGlobalSecondaryIndexSettingsDescription_ProvisionedReadCapacityUnits_FromDafny(input interface{}) *int64 { + return func() *int64 { + var i int64 + if input == nil { + return nil + } + i = input.(int64) + return &i + }() +} +func Com_amazonaws_dynamodb_ReplicaGlobalSecondaryIndexSettingsDescription_ProvisionedReadCapacityAutoScalingSettings_FromDafny(input interface{}) *types.AutoScalingSettingsDescription { + return func() *types.AutoScalingSettingsDescription { + if input == nil { + return nil + } + return &types.AutoScalingSettingsDescription{ + MinimumUnits: Com_amazonaws_dynamodb_AutoScalingSettingsDescription_MinimumUnits_FromDafny(input.(ComAmazonawsDynamodbTypes.AutoScalingSettingsDescription).Dtor_MinimumUnits().UnwrapOr(nil)), + MaximumUnits: Com_amazonaws_dynamodb_AutoScalingSettingsDescription_MaximumUnits_FromDafny(input.(ComAmazonawsDynamodbTypes.AutoScalingSettingsDescription).Dtor_MaximumUnits().UnwrapOr(nil)), + AutoScalingDisabled: Com_amazonaws_dynamodb_AutoScalingSettingsDescription_AutoScalingDisabled_FromDafny(input.(ComAmazonawsDynamodbTypes.AutoScalingSettingsDescription).Dtor_AutoScalingDisabled().UnwrapOr(nil)), + AutoScalingRoleArn: Com_amazonaws_dynamodb_AutoScalingSettingsDescription_AutoScalingRoleArn_FromDafny(input.(ComAmazonawsDynamodbTypes.AutoScalingSettingsDescription).Dtor_AutoScalingRoleArn().UnwrapOr(nil)), + ScalingPolicies: Com_amazonaws_dynamodb_AutoScalingSettingsDescription_ScalingPolicies_FromDafny(input.(ComAmazonawsDynamodbTypes.AutoScalingSettingsDescription).Dtor_ScalingPolicies().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_dynamodb_ReplicaGlobalSecondaryIndexSettingsDescription_ProvisionedWriteCapacityUnits_FromDafny(input interface{}) *int64 { + return func() *int64 { + var i int64 + if input == nil { + return nil + } + i = input.(int64) + return &i + }() +} +func Com_amazonaws_dynamodb_ReplicaGlobalSecondaryIndexSettingsDescription_ProvisionedWriteCapacityAutoScalingSettings_FromDafny(input interface{}) *types.AutoScalingSettingsDescription { + return func() *types.AutoScalingSettingsDescription { + if input == nil { + return nil + } + return &types.AutoScalingSettingsDescription{ + MinimumUnits: Com_amazonaws_dynamodb_AutoScalingSettingsDescription_MinimumUnits_FromDafny(input.(ComAmazonawsDynamodbTypes.AutoScalingSettingsDescription).Dtor_MinimumUnits().UnwrapOr(nil)), + MaximumUnits: Com_amazonaws_dynamodb_AutoScalingSettingsDescription_MaximumUnits_FromDafny(input.(ComAmazonawsDynamodbTypes.AutoScalingSettingsDescription).Dtor_MaximumUnits().UnwrapOr(nil)), + AutoScalingDisabled: Com_amazonaws_dynamodb_AutoScalingSettingsDescription_AutoScalingDisabled_FromDafny(input.(ComAmazonawsDynamodbTypes.AutoScalingSettingsDescription).Dtor_AutoScalingDisabled().UnwrapOr(nil)), + AutoScalingRoleArn: Com_amazonaws_dynamodb_AutoScalingSettingsDescription_AutoScalingRoleArn_FromDafny(input.(ComAmazonawsDynamodbTypes.AutoScalingSettingsDescription).Dtor_AutoScalingRoleArn().UnwrapOr(nil)), + ScalingPolicies: Com_amazonaws_dynamodb_AutoScalingSettingsDescription_ScalingPolicies_FromDafny(input.(ComAmazonawsDynamodbTypes.AutoScalingSettingsDescription).Dtor_ScalingPolicies().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_dynamodb_ReplicaSettingsDescription_ReplicaTableClassSummary_FromDafny(input interface{}) *types.TableClassSummary { + return func() *types.TableClassSummary { + if input == nil { + return nil + } + return &types.TableClassSummary{ + TableClass: Com_amazonaws_dynamodb_TableClassSummary_TableClass_FromDafny(input.(ComAmazonawsDynamodbTypes.TableClassSummary).Dtor_TableClass().UnwrapOr(nil)), + LastUpdateDateTime: Com_amazonaws_dynamodb_TableClassSummary_LastUpdateDateTime_FromDafny(input.(ComAmazonawsDynamodbTypes.TableClassSummary).Dtor_LastUpdateDateTime().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_dynamodb_DescribeImportInput_ImportArn_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 Com_amazonaws_dynamodb_DescribeImportOutput_ImportTableDescription_FromDafny(input interface{}) *types.ImportTableDescription { + return func() *types.ImportTableDescription { + + return &types.ImportTableDescription{ + ImportArn: Com_amazonaws_dynamodb_ImportTableDescription_ImportArn_FromDafny(input.(ComAmazonawsDynamodbTypes.ImportTableDescription).Dtor_ImportArn().UnwrapOr(nil)), + ImportStatus: Com_amazonaws_dynamodb_ImportTableDescription_ImportStatus_FromDafny(input.(ComAmazonawsDynamodbTypes.ImportTableDescription).Dtor_ImportStatus().UnwrapOr(nil)), + TableArn: Com_amazonaws_dynamodb_ImportTableDescription_TableArn_FromDafny(input.(ComAmazonawsDynamodbTypes.ImportTableDescription).Dtor_TableArn().UnwrapOr(nil)), + TableId: Com_amazonaws_dynamodb_ImportTableDescription_TableId_FromDafny(input.(ComAmazonawsDynamodbTypes.ImportTableDescription).Dtor_TableId().UnwrapOr(nil)), + ClientToken: Com_amazonaws_dynamodb_ImportTableDescription_ClientToken_FromDafny(input.(ComAmazonawsDynamodbTypes.ImportTableDescription).Dtor_ClientToken().UnwrapOr(nil)), + S3BucketSource: Com_amazonaws_dynamodb_ImportTableDescription_S3BucketSource_FromDafny(input.(ComAmazonawsDynamodbTypes.ImportTableDescription).Dtor_S3BucketSource().UnwrapOr(nil)), + ErrorCount: Com_amazonaws_dynamodb_ImportTableDescription_ErrorCount_FromDafny(input.(ComAmazonawsDynamodbTypes.ImportTableDescription).Dtor_ErrorCount().UnwrapOr(nil)), + CloudWatchLogGroupArn: Com_amazonaws_dynamodb_ImportTableDescription_CloudWatchLogGroupArn_FromDafny(input.(ComAmazonawsDynamodbTypes.ImportTableDescription).Dtor_CloudWatchLogGroupArn().UnwrapOr(nil)), + InputFormat: Com_amazonaws_dynamodb_ImportTableDescription_InputFormat_FromDafny(input.(ComAmazonawsDynamodbTypes.ImportTableDescription).Dtor_InputFormat().UnwrapOr(nil)), + InputFormatOptions: Com_amazonaws_dynamodb_ImportTableDescription_InputFormatOptions_FromDafny(input.(ComAmazonawsDynamodbTypes.ImportTableDescription).Dtor_InputFormatOptions().UnwrapOr(nil)), + InputCompressionType: Com_amazonaws_dynamodb_ImportTableDescription_InputCompressionType_FromDafny(input.(ComAmazonawsDynamodbTypes.ImportTableDescription).Dtor_InputCompressionType().UnwrapOr(nil)), + TableCreationParameters: Com_amazonaws_dynamodb_ImportTableDescription_TableCreationParameters_FromDafny(input.(ComAmazonawsDynamodbTypes.ImportTableDescription).Dtor_TableCreationParameters().UnwrapOr(nil)), + StartTime: Com_amazonaws_dynamodb_ImportTableDescription_StartTime_FromDafny(input.(ComAmazonawsDynamodbTypes.ImportTableDescription).Dtor_StartTime().UnwrapOr(nil)), + EndTime: Com_amazonaws_dynamodb_ImportTableDescription_EndTime_FromDafny(input.(ComAmazonawsDynamodbTypes.ImportTableDescription).Dtor_EndTime().UnwrapOr(nil)), + ProcessedSizeBytes: Com_amazonaws_dynamodb_ImportTableDescription_ProcessedSizeBytes_FromDafny(input.(ComAmazonawsDynamodbTypes.ImportTableDescription).Dtor_ProcessedSizeBytes().UnwrapOr(nil)), + ProcessedItemCount: Com_amazonaws_dynamodb_ImportTableDescription_ProcessedItemCount_FromDafny(input.(ComAmazonawsDynamodbTypes.ImportTableDescription).Dtor_ProcessedItemCount().UnwrapOr(nil)), + ImportedItemCount: Com_amazonaws_dynamodb_ImportTableDescription_ImportedItemCount_FromDafny(input.(ComAmazonawsDynamodbTypes.ImportTableDescription).Dtor_ImportedItemCount().UnwrapOr(nil)), + FailureCode: Com_amazonaws_dynamodb_ImportTableDescription_FailureCode_FromDafny(input.(ComAmazonawsDynamodbTypes.ImportTableDescription).Dtor_FailureCode().UnwrapOr(nil)), + FailureMessage: Com_amazonaws_dynamodb_ImportTableDescription_FailureMessage_FromDafny(input.(ComAmazonawsDynamodbTypes.ImportTableDescription).Dtor_FailureMessage().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_dynamodb_ImportTableDescription_ImportArn_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_ImportTableDescription_ImportStatus_FromDafny(input interface{}) types.ImportStatus { + return func() types.ImportStatus { + var u types.ImportStatus + if input == nil { + return u + } + + inputEnum := input.(ComAmazonawsDynamodbTypes.ImportStatus) + index := -1 + for allEnums := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_ImportStatus_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(ComAmazonawsDynamodbTypes.ImportStatus).Equals(inputEnum) { + break + } + } + } + return u.Values()[index] + }() +} +func Com_amazonaws_dynamodb_ImportTableDescription_TableArn_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_ImportTableDescription_TableId_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_ImportTableDescription_ClientToken_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_ImportTableDescription_S3BucketSource_FromDafny(input interface{}) *types.S3BucketSource { + return func() *types.S3BucketSource { + if input == nil { + return nil + } + return &types.S3BucketSource{ + S3BucketOwner: Com_amazonaws_dynamodb_S3BucketSource_S3BucketOwner_FromDafny(input.(ComAmazonawsDynamodbTypes.S3BucketSource).Dtor_S3BucketOwner().UnwrapOr(nil)), + S3Bucket: Com_amazonaws_dynamodb_S3BucketSource_S3Bucket_FromDafny(input.(ComAmazonawsDynamodbTypes.S3BucketSource).Dtor_S3Bucket()), + S3KeyPrefix: Com_amazonaws_dynamodb_S3BucketSource_S3KeyPrefix_FromDafny(input.(ComAmazonawsDynamodbTypes.S3BucketSource).Dtor_S3KeyPrefix().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_dynamodb_S3BucketSource_S3BucketOwner_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_S3BucketSource_S3Bucket_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 Com_amazonaws_dynamodb_S3BucketSource_S3KeyPrefix_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_ImportTableDescription_ErrorCount_FromDafny(input interface{}) int64 { + return func() int64 { + var i int64 + if input == nil { + return i + } + i = input.(int64) + return i + }() +} +func Com_amazonaws_dynamodb_ImportTableDescription_CloudWatchLogGroupArn_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_ImportTableDescription_InputFormat_FromDafny(input interface{}) types.InputFormat { + return func() types.InputFormat { + var u types.InputFormat + if input == nil { + return u + } + + inputEnum := input.(ComAmazonawsDynamodbTypes.InputFormat) + index := -1 + for allEnums := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_InputFormat_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(ComAmazonawsDynamodbTypes.InputFormat).Equals(inputEnum) { + break + } + } + } + return u.Values()[index] + }() +} +func Com_amazonaws_dynamodb_ImportTableDescription_InputFormatOptions_FromDafny(input interface{}) *types.InputFormatOptions { + return func() *types.InputFormatOptions { + if input == nil { + return nil + } + return &types.InputFormatOptions{ + Csv: Com_amazonaws_dynamodb_InputFormatOptions_Csv_FromDafny(input.(ComAmazonawsDynamodbTypes.InputFormatOptions).Dtor_Csv().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_dynamodb_InputFormatOptions_Csv_FromDafny(input interface{}) *types.CsvOptions { + return func() *types.CsvOptions { + if input == nil { + return nil + } + return &types.CsvOptions{ + Delimiter: Com_amazonaws_dynamodb_CsvOptions_Delimiter_FromDafny(input.(ComAmazonawsDynamodbTypes.CsvOptions).Dtor_Delimiter().UnwrapOr(nil)), + HeaderList: Com_amazonaws_dynamodb_CsvOptions_HeaderList_FromDafny(input.(ComAmazonawsDynamodbTypes.CsvOptions).Dtor_HeaderList().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_dynamodb_CsvOptions_Delimiter_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_CsvOptions_HeaderList_FromDafny(input interface{}) []string { + return func() []string { + var fieldValue []string + if input == nil { + return nil + } + for i := dafny.Iterate(input.(dafny.Sequence).(dafny.Sequence)); ; { + val, ok := i() + if !ok { + break + } + fieldValue = append(fieldValue, Com_amazonaws_dynamodb_CsvHeaderList_member_FromDafny(val)) + } + return fieldValue + }() +} +func Com_amazonaws_dynamodb_CsvHeaderList_member_FromDafny(input interface{}) string { + return func() string { + + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return s + }() +} +func Com_amazonaws_dynamodb_ImportTableDescription_InputCompressionType_FromDafny(input interface{}) types.InputCompressionType { + return func() types.InputCompressionType { + var u types.InputCompressionType + if input == nil { + return u + } + + inputEnum := input.(ComAmazonawsDynamodbTypes.InputCompressionType) + index := -1 + for allEnums := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_InputCompressionType_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(ComAmazonawsDynamodbTypes.InputCompressionType).Equals(inputEnum) { + break + } + } + } + return u.Values()[index] + }() +} +func Com_amazonaws_dynamodb_ImportTableDescription_TableCreationParameters_FromDafny(input interface{}) *types.TableCreationParameters { + return func() *types.TableCreationParameters { + if input == nil { + return nil + } + return &types.TableCreationParameters{ + TableName: Com_amazonaws_dynamodb_TableCreationParameters_TableName_FromDafny(input.(ComAmazonawsDynamodbTypes.TableCreationParameters).Dtor_TableName()), + AttributeDefinitions: Com_amazonaws_dynamodb_TableCreationParameters_AttributeDefinitions_FromDafny(input.(ComAmazonawsDynamodbTypes.TableCreationParameters).Dtor_AttributeDefinitions()), + KeySchema: Com_amazonaws_dynamodb_TableCreationParameters_KeySchema_FromDafny(input.(ComAmazonawsDynamodbTypes.TableCreationParameters).Dtor_KeySchema()), + BillingMode: Com_amazonaws_dynamodb_TableCreationParameters_BillingMode_FromDafny(input.(ComAmazonawsDynamodbTypes.TableCreationParameters).Dtor_BillingMode().UnwrapOr(nil)), + ProvisionedThroughput: Com_amazonaws_dynamodb_TableCreationParameters_ProvisionedThroughput_FromDafny(input.(ComAmazonawsDynamodbTypes.TableCreationParameters).Dtor_ProvisionedThroughput().UnwrapOr(nil)), + OnDemandThroughput: Com_amazonaws_dynamodb_TableCreationParameters_OnDemandThroughput_FromDafny(input.(ComAmazonawsDynamodbTypes.TableCreationParameters).Dtor_OnDemandThroughput().UnwrapOr(nil)), + SSESpecification: Com_amazonaws_dynamodb_TableCreationParameters_SSESpecification_FromDafny(input.(ComAmazonawsDynamodbTypes.TableCreationParameters).Dtor_SSESpecification().UnwrapOr(nil)), + GlobalSecondaryIndexes: Com_amazonaws_dynamodb_TableCreationParameters_GlobalSecondaryIndexes_FromDafny(input.(ComAmazonawsDynamodbTypes.TableCreationParameters).Dtor_GlobalSecondaryIndexes().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_dynamodb_TableCreationParameters_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 Com_amazonaws_dynamodb_TableCreationParameters_AttributeDefinitions_FromDafny(input interface{}) []types.AttributeDefinition { + return func() []types.AttributeDefinition { + var fieldValue []types.AttributeDefinition + + for i := dafny.Iterate(input.(dafny.Sequence)); ; { + val, ok := i() + if !ok { + break + } + fieldValue = append(fieldValue, Com_amazonaws_dynamodb_AttributeDefinitions_member_FromDafny(val)) + } + return fieldValue + }() +} +func Com_amazonaws_dynamodb_TableCreationParameters_KeySchema_FromDafny(input interface{}) []types.KeySchemaElement { + return func() []types.KeySchemaElement { + var fieldValue []types.KeySchemaElement + + for i := dafny.Iterate(input.(dafny.Sequence)); ; { + val, ok := i() + if !ok { + break + } + fieldValue = append(fieldValue, Com_amazonaws_dynamodb_KeySchema_member_FromDafny(val)) + } + return fieldValue + }() +} +func Com_amazonaws_dynamodb_TableCreationParameters_BillingMode_FromDafny(input interface{}) types.BillingMode { + return func() types.BillingMode { + var u types.BillingMode + if input == nil { + return u + } + + inputEnum := input.(ComAmazonawsDynamodbTypes.BillingMode) + index := -1 + for allEnums := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_BillingMode_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(ComAmazonawsDynamodbTypes.BillingMode).Equals(inputEnum) { + break + } + } + } + return u.Values()[index] + }() +} +func Com_amazonaws_dynamodb_TableCreationParameters_ProvisionedThroughput_FromDafny(input interface{}) *types.ProvisionedThroughput { + return func() *types.ProvisionedThroughput { + if input == nil { + return nil + } + return &types.ProvisionedThroughput{ + ReadCapacityUnits: Com_amazonaws_dynamodb_ProvisionedThroughput_ReadCapacityUnits_FromDafny(input.(ComAmazonawsDynamodbTypes.ProvisionedThroughput).Dtor_ReadCapacityUnits()), + WriteCapacityUnits: Com_amazonaws_dynamodb_ProvisionedThroughput_WriteCapacityUnits_FromDafny(input.(ComAmazonawsDynamodbTypes.ProvisionedThroughput).Dtor_WriteCapacityUnits()), + } + }() +} +func Com_amazonaws_dynamodb_TableCreationParameters_OnDemandThroughput_FromDafny(input interface{}) *types.OnDemandThroughput { + return func() *types.OnDemandThroughput { + if input == nil { + return nil + } + return &types.OnDemandThroughput{ + MaxReadRequestUnits: Com_amazonaws_dynamodb_OnDemandThroughput_MaxReadRequestUnits_FromDafny(input.(ComAmazonawsDynamodbTypes.OnDemandThroughput).Dtor_MaxReadRequestUnits().UnwrapOr(nil)), + MaxWriteRequestUnits: Com_amazonaws_dynamodb_OnDemandThroughput_MaxWriteRequestUnits_FromDafny(input.(ComAmazonawsDynamodbTypes.OnDemandThroughput).Dtor_MaxWriteRequestUnits().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_dynamodb_TableCreationParameters_SSESpecification_FromDafny(input interface{}) *types.SSESpecification { + return func() *types.SSESpecification { + if input == nil { + return nil + } + return &types.SSESpecification{ + Enabled: Com_amazonaws_dynamodb_SSESpecification_Enabled_FromDafny(input.(ComAmazonawsDynamodbTypes.SSESpecification).Dtor_Enabled().UnwrapOr(nil)), + SSEType: Com_amazonaws_dynamodb_SSESpecification_SSEType_FromDafny(input.(ComAmazonawsDynamodbTypes.SSESpecification).Dtor_SSEType().UnwrapOr(nil)), + KMSMasterKeyId: Com_amazonaws_dynamodb_SSESpecification_KMSMasterKeyId_FromDafny(input.(ComAmazonawsDynamodbTypes.SSESpecification).Dtor_KMSMasterKeyId().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_dynamodb_TableCreationParameters_GlobalSecondaryIndexes_FromDafny(input interface{}) []types.GlobalSecondaryIndex { + return func() []types.GlobalSecondaryIndex { + var fieldValue []types.GlobalSecondaryIndex + if input == nil { + return nil + } + for i := dafny.Iterate(input.(dafny.Sequence).(dafny.Sequence)); ; { + val, ok := i() + if !ok { + break + } + fieldValue = append(fieldValue, Com_amazonaws_dynamodb_GlobalSecondaryIndexList_member_FromDafny(val)) + } + return fieldValue + }() +} +func Com_amazonaws_dynamodb_ImportTableDescription_StartTime_FromDafny(input interface{}) *time.Time { + return func() *time.Time { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + if len(s) == 0 { + panic("timestamp string is empty") + } else { + t, err := time.Parse("2006-01-02T15:04:05.999999Z", s) + if err != nil { + panic(err) + } + return &t + } + }() +} +func Com_amazonaws_dynamodb_ImportTableDescription_EndTime_FromDafny(input interface{}) *time.Time { + return func() *time.Time { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + if len(s) == 0 { + panic("timestamp string is empty") + } else { + t, err := time.Parse("2006-01-02T15:04:05.999999Z", s) + if err != nil { + panic(err) + } + return &t + } + }() +} +func Com_amazonaws_dynamodb_ImportTableDescription_ProcessedSizeBytes_FromDafny(input interface{}) *int64 { + return func() *int64 { + var i int64 + if input == nil { + return nil + } + i = input.(int64) + return &i + }() +} +func Com_amazonaws_dynamodb_ImportTableDescription_ProcessedItemCount_FromDafny(input interface{}) int64 { + return func() int64 { + var i int64 + if input == nil { + return i + } + i = input.(int64) + return i + }() +} +func Com_amazonaws_dynamodb_ImportTableDescription_ImportedItemCount_FromDafny(input interface{}) int64 { + return func() int64 { + var i int64 + if input == nil { + return i + } + i = input.(int64) + return i + }() +} +func Com_amazonaws_dynamodb_ImportTableDescription_FailureCode_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_ImportTableDescription_FailureMessage_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_DescribeKinesisStreamingDestinationInput_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 Com_amazonaws_dynamodb_DescribeKinesisStreamingDestinationOutput_TableName_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_DescribeKinesisStreamingDestinationOutput_KinesisDataStreamDestinations_FromDafny(input interface{}) []types.KinesisDataStreamDestination { + return func() []types.KinesisDataStreamDestination { + var fieldValue []types.KinesisDataStreamDestination + if input == nil { + return nil + } + for i := dafny.Iterate(input.(dafny.Sequence).(dafny.Sequence)); ; { + val, ok := i() + if !ok { + break + } + fieldValue = append(fieldValue, Com_amazonaws_dynamodb_KinesisDataStreamDestinations_member_FromDafny(val)) + } + return fieldValue + }() +} +func Com_amazonaws_dynamodb_KinesisDataStreamDestinations_member_FromDafny(input interface{}) types.KinesisDataStreamDestination { + return func() types.KinesisDataStreamDestination { + + return types.KinesisDataStreamDestination{ + StreamArn: Com_amazonaws_dynamodb_KinesisDataStreamDestination_StreamArn_FromDafny(input.(ComAmazonawsDynamodbTypes.KinesisDataStreamDestination).Dtor_StreamArn().UnwrapOr(nil)), + DestinationStatus: Com_amazonaws_dynamodb_KinesisDataStreamDestination_DestinationStatus_FromDafny(input.(ComAmazonawsDynamodbTypes.KinesisDataStreamDestination).Dtor_DestinationStatus().UnwrapOr(nil)), + DestinationStatusDescription: Com_amazonaws_dynamodb_KinesisDataStreamDestination_DestinationStatusDescription_FromDafny(input.(ComAmazonawsDynamodbTypes.KinesisDataStreamDestination).Dtor_DestinationStatusDescription().UnwrapOr(nil)), + ApproximateCreationDateTimePrecision: Com_amazonaws_dynamodb_KinesisDataStreamDestination_ApproximateCreationDateTimePrecision_FromDafny(input.(ComAmazonawsDynamodbTypes.KinesisDataStreamDestination).Dtor_ApproximateCreationDateTimePrecision().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_dynamodb_KinesisDataStreamDestination_StreamArn_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_KinesisDataStreamDestination_DestinationStatus_FromDafny(input interface{}) types.DestinationStatus { + return func() types.DestinationStatus { + var u types.DestinationStatus + if input == nil { + return u + } + + inputEnum := input.(ComAmazonawsDynamodbTypes.DestinationStatus) + index := -1 + for allEnums := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_DestinationStatus_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(ComAmazonawsDynamodbTypes.DestinationStatus).Equals(inputEnum) { + break + } + } + } + return u.Values()[index] + }() +} +func Com_amazonaws_dynamodb_KinesisDataStreamDestination_DestinationStatusDescription_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_KinesisDataStreamDestination_ApproximateCreationDateTimePrecision_FromDafny(input interface{}) types.ApproximateCreationDateTimePrecision { + return func() types.ApproximateCreationDateTimePrecision { + var u types.ApproximateCreationDateTimePrecision + if input == nil { + return u + } + + inputEnum := input.(ComAmazonawsDynamodbTypes.ApproximateCreationDateTimePrecision) + index := -1 + for allEnums := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_ApproximateCreationDateTimePrecision_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(ComAmazonawsDynamodbTypes.ApproximateCreationDateTimePrecision).Equals(inputEnum) { + break + } + } + } + return u.Values()[index] + }() +} +func Com_amazonaws_dynamodb_DescribeLimitsOutput_AccountMaxReadCapacityUnits_FromDafny(input interface{}) *int64 { + return func() *int64 { + var i int64 + if input == nil { + return nil + } + i = input.(int64) + return &i + }() +} +func Com_amazonaws_dynamodb_DescribeLimitsOutput_AccountMaxWriteCapacityUnits_FromDafny(input interface{}) *int64 { + return func() *int64 { + var i int64 + if input == nil { + return nil + } + i = input.(int64) + return &i + }() +} +func Com_amazonaws_dynamodb_DescribeLimitsOutput_TableMaxReadCapacityUnits_FromDafny(input interface{}) *int64 { + return func() *int64 { + var i int64 + if input == nil { + return nil + } + i = input.(int64) + return &i + }() +} +func Com_amazonaws_dynamodb_DescribeLimitsOutput_TableMaxWriteCapacityUnits_FromDafny(input interface{}) *int64 { + return func() *int64 { + var i int64 + if input == nil { + return nil + } + i = input.(int64) + return &i + }() +} +func Com_amazonaws_dynamodb_DescribeTableInput_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 Com_amazonaws_dynamodb_DescribeTableOutput_Table_FromDafny(input interface{}) *types.TableDescription { + return func() *types.TableDescription { + if input == nil { + return nil + } + return &types.TableDescription{ + AttributeDefinitions: Com_amazonaws_dynamodb_TableDescription_AttributeDefinitions_FromDafny(input.(ComAmazonawsDynamodbTypes.TableDescription).Dtor_AttributeDefinitions().UnwrapOr(nil)), + TableName: Com_amazonaws_dynamodb_TableDescription_TableName_FromDafny(input.(ComAmazonawsDynamodbTypes.TableDescription).Dtor_TableName().UnwrapOr(nil)), + KeySchema: Com_amazonaws_dynamodb_TableDescription_KeySchema_FromDafny(input.(ComAmazonawsDynamodbTypes.TableDescription).Dtor_KeySchema().UnwrapOr(nil)), + TableStatus: Com_amazonaws_dynamodb_TableDescription_TableStatus_FromDafny(input.(ComAmazonawsDynamodbTypes.TableDescription).Dtor_TableStatus().UnwrapOr(nil)), + CreationDateTime: Com_amazonaws_dynamodb_TableDescription_CreationDateTime_FromDafny(input.(ComAmazonawsDynamodbTypes.TableDescription).Dtor_CreationDateTime().UnwrapOr(nil)), + ProvisionedThroughput: Com_amazonaws_dynamodb_TableDescription_ProvisionedThroughput_FromDafny(input.(ComAmazonawsDynamodbTypes.TableDescription).Dtor_ProvisionedThroughput().UnwrapOr(nil)), + TableSizeBytes: Com_amazonaws_dynamodb_TableDescription_TableSizeBytes_FromDafny(input.(ComAmazonawsDynamodbTypes.TableDescription).Dtor_TableSizeBytes().UnwrapOr(nil)), + ItemCount: Com_amazonaws_dynamodb_TableDescription_ItemCount_FromDafny(input.(ComAmazonawsDynamodbTypes.TableDescription).Dtor_ItemCount().UnwrapOr(nil)), + TableArn: Com_amazonaws_dynamodb_TableDescription_TableArn_FromDafny(input.(ComAmazonawsDynamodbTypes.TableDescription).Dtor_TableArn().UnwrapOr(nil)), + TableId: Com_amazonaws_dynamodb_TableDescription_TableId_FromDafny(input.(ComAmazonawsDynamodbTypes.TableDescription).Dtor_TableId().UnwrapOr(nil)), + BillingModeSummary: Com_amazonaws_dynamodb_TableDescription_BillingModeSummary_FromDafny(input.(ComAmazonawsDynamodbTypes.TableDescription).Dtor_BillingModeSummary().UnwrapOr(nil)), + LocalSecondaryIndexes: Com_amazonaws_dynamodb_TableDescription_LocalSecondaryIndexes_FromDafny(input.(ComAmazonawsDynamodbTypes.TableDescription).Dtor_LocalSecondaryIndexes().UnwrapOr(nil)), + GlobalSecondaryIndexes: Com_amazonaws_dynamodb_TableDescription_GlobalSecondaryIndexes_FromDafny(input.(ComAmazonawsDynamodbTypes.TableDescription).Dtor_GlobalSecondaryIndexes().UnwrapOr(nil)), + StreamSpecification: Com_amazonaws_dynamodb_TableDescription_StreamSpecification_FromDafny(input.(ComAmazonawsDynamodbTypes.TableDescription).Dtor_StreamSpecification().UnwrapOr(nil)), + LatestStreamLabel: Com_amazonaws_dynamodb_TableDescription_LatestStreamLabel_FromDafny(input.(ComAmazonawsDynamodbTypes.TableDescription).Dtor_LatestStreamLabel().UnwrapOr(nil)), + LatestStreamArn: Com_amazonaws_dynamodb_TableDescription_LatestStreamArn_FromDafny(input.(ComAmazonawsDynamodbTypes.TableDescription).Dtor_LatestStreamArn().UnwrapOr(nil)), + GlobalTableVersion: Com_amazonaws_dynamodb_TableDescription_GlobalTableVersion_FromDafny(input.(ComAmazonawsDynamodbTypes.TableDescription).Dtor_GlobalTableVersion().UnwrapOr(nil)), + Replicas: Com_amazonaws_dynamodb_TableDescription_Replicas_FromDafny(input.(ComAmazonawsDynamodbTypes.TableDescription).Dtor_Replicas().UnwrapOr(nil)), + RestoreSummary: Com_amazonaws_dynamodb_TableDescription_RestoreSummary_FromDafny(input.(ComAmazonawsDynamodbTypes.TableDescription).Dtor_RestoreSummary().UnwrapOr(nil)), + SSEDescription: Com_amazonaws_dynamodb_TableDescription_SSEDescription_FromDafny(input.(ComAmazonawsDynamodbTypes.TableDescription).Dtor_SSEDescription().UnwrapOr(nil)), + ArchivalSummary: Com_amazonaws_dynamodb_TableDescription_ArchivalSummary_FromDafny(input.(ComAmazonawsDynamodbTypes.TableDescription).Dtor_ArchivalSummary().UnwrapOr(nil)), + TableClassSummary: Com_amazonaws_dynamodb_TableDescription_TableClassSummary_FromDafny(input.(ComAmazonawsDynamodbTypes.TableDescription).Dtor_TableClassSummary().UnwrapOr(nil)), + DeletionProtectionEnabled: Com_amazonaws_dynamodb_TableDescription_DeletionProtectionEnabled_FromDafny(input.(ComAmazonawsDynamodbTypes.TableDescription).Dtor_DeletionProtectionEnabled().UnwrapOr(nil)), + OnDemandThroughput: Com_amazonaws_dynamodb_TableDescription_OnDemandThroughput_FromDafny(input.(ComAmazonawsDynamodbTypes.TableDescription).Dtor_OnDemandThroughput().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_dynamodb_DescribeTableReplicaAutoScalingInput_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 Com_amazonaws_dynamodb_DescribeTableReplicaAutoScalingOutput_TableAutoScalingDescription_FromDafny(input interface{}) *types.TableAutoScalingDescription { + return func() *types.TableAutoScalingDescription { + if input == nil { + return nil + } + return &types.TableAutoScalingDescription{ + TableName: Com_amazonaws_dynamodb_TableAutoScalingDescription_TableName_FromDafny(input.(ComAmazonawsDynamodbTypes.TableAutoScalingDescription).Dtor_TableName().UnwrapOr(nil)), + TableStatus: Com_amazonaws_dynamodb_TableAutoScalingDescription_TableStatus_FromDafny(input.(ComAmazonawsDynamodbTypes.TableAutoScalingDescription).Dtor_TableStatus().UnwrapOr(nil)), + Replicas: Com_amazonaws_dynamodb_TableAutoScalingDescription_Replicas_FromDafny(input.(ComAmazonawsDynamodbTypes.TableAutoScalingDescription).Dtor_Replicas().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_dynamodb_TableAutoScalingDescription_TableName_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_TableAutoScalingDescription_TableStatus_FromDafny(input interface{}) types.TableStatus { + return func() types.TableStatus { + var u types.TableStatus + if input == nil { + return u + } + + inputEnum := input.(ComAmazonawsDynamodbTypes.TableStatus) + index := -1 + for allEnums := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_TableStatus_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(ComAmazonawsDynamodbTypes.TableStatus).Equals(inputEnum) { + break + } + } + } + return u.Values()[index] + }() +} +func Com_amazonaws_dynamodb_TableAutoScalingDescription_Replicas_FromDafny(input interface{}) []types.ReplicaAutoScalingDescription { + return func() []types.ReplicaAutoScalingDescription { + var fieldValue []types.ReplicaAutoScalingDescription + if input == nil { + return nil + } + for i := dafny.Iterate(input.(dafny.Sequence).(dafny.Sequence)); ; { + val, ok := i() + if !ok { + break + } + fieldValue = append(fieldValue, Com_amazonaws_dynamodb_ReplicaAutoScalingDescriptionList_member_FromDafny(val)) + } + return fieldValue + }() +} +func Com_amazonaws_dynamodb_ReplicaAutoScalingDescriptionList_member_FromDafny(input interface{}) types.ReplicaAutoScalingDescription { + return func() types.ReplicaAutoScalingDescription { + + return types.ReplicaAutoScalingDescription{ + RegionName: Com_amazonaws_dynamodb_ReplicaAutoScalingDescription_RegionName_FromDafny(input.(ComAmazonawsDynamodbTypes.ReplicaAutoScalingDescription).Dtor_RegionName().UnwrapOr(nil)), + GlobalSecondaryIndexes: Com_amazonaws_dynamodb_ReplicaAutoScalingDescription_GlobalSecondaryIndexes_FromDafny(input.(ComAmazonawsDynamodbTypes.ReplicaAutoScalingDescription).Dtor_GlobalSecondaryIndexes().UnwrapOr(nil)), + ReplicaProvisionedReadCapacityAutoScalingSettings: Com_amazonaws_dynamodb_ReplicaAutoScalingDescription_ReplicaProvisionedReadCapacityAutoScalingSettings_FromDafny(input.(ComAmazonawsDynamodbTypes.ReplicaAutoScalingDescription).Dtor_ReplicaProvisionedReadCapacityAutoScalingSettings().UnwrapOr(nil)), + ReplicaProvisionedWriteCapacityAutoScalingSettings: Com_amazonaws_dynamodb_ReplicaAutoScalingDescription_ReplicaProvisionedWriteCapacityAutoScalingSettings_FromDafny(input.(ComAmazonawsDynamodbTypes.ReplicaAutoScalingDescription).Dtor_ReplicaProvisionedWriteCapacityAutoScalingSettings().UnwrapOr(nil)), + ReplicaStatus: Com_amazonaws_dynamodb_ReplicaAutoScalingDescription_ReplicaStatus_FromDafny(input.(ComAmazonawsDynamodbTypes.ReplicaAutoScalingDescription).Dtor_ReplicaStatus().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_dynamodb_ReplicaAutoScalingDescription_RegionName_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_ReplicaAutoScalingDescription_GlobalSecondaryIndexes_FromDafny(input interface{}) []types.ReplicaGlobalSecondaryIndexAutoScalingDescription { + return func() []types.ReplicaGlobalSecondaryIndexAutoScalingDescription { + var fieldValue []types.ReplicaGlobalSecondaryIndexAutoScalingDescription + if input == nil { + return nil + } + for i := dafny.Iterate(input.(dafny.Sequence).(dafny.Sequence)); ; { + val, ok := i() + if !ok { + break + } + fieldValue = append(fieldValue, Com_amazonaws_dynamodb_ReplicaGlobalSecondaryIndexAutoScalingDescriptionList_member_FromDafny(val)) + } + return fieldValue + }() +} +func Com_amazonaws_dynamodb_ReplicaGlobalSecondaryIndexAutoScalingDescriptionList_member_FromDafny(input interface{}) types.ReplicaGlobalSecondaryIndexAutoScalingDescription { + return func() types.ReplicaGlobalSecondaryIndexAutoScalingDescription { + + return types.ReplicaGlobalSecondaryIndexAutoScalingDescription{ + IndexName: Com_amazonaws_dynamodb_ReplicaGlobalSecondaryIndexAutoScalingDescription_IndexName_FromDafny(input.(ComAmazonawsDynamodbTypes.ReplicaGlobalSecondaryIndexAutoScalingDescription).Dtor_IndexName().UnwrapOr(nil)), + IndexStatus: Com_amazonaws_dynamodb_ReplicaGlobalSecondaryIndexAutoScalingDescription_IndexStatus_FromDafny(input.(ComAmazonawsDynamodbTypes.ReplicaGlobalSecondaryIndexAutoScalingDescription).Dtor_IndexStatus().UnwrapOr(nil)), + ProvisionedReadCapacityAutoScalingSettings: Com_amazonaws_dynamodb_ReplicaGlobalSecondaryIndexAutoScalingDescription_ProvisionedReadCapacityAutoScalingSettings_FromDafny(input.(ComAmazonawsDynamodbTypes.ReplicaGlobalSecondaryIndexAutoScalingDescription).Dtor_ProvisionedReadCapacityAutoScalingSettings().UnwrapOr(nil)), + ProvisionedWriteCapacityAutoScalingSettings: Com_amazonaws_dynamodb_ReplicaGlobalSecondaryIndexAutoScalingDescription_ProvisionedWriteCapacityAutoScalingSettings_FromDafny(input.(ComAmazonawsDynamodbTypes.ReplicaGlobalSecondaryIndexAutoScalingDescription).Dtor_ProvisionedWriteCapacityAutoScalingSettings().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_dynamodb_ReplicaGlobalSecondaryIndexAutoScalingDescription_IndexName_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_ReplicaGlobalSecondaryIndexAutoScalingDescription_IndexStatus_FromDafny(input interface{}) types.IndexStatus { + return func() types.IndexStatus { + var u types.IndexStatus + if input == nil { + return u + } + + inputEnum := input.(ComAmazonawsDynamodbTypes.IndexStatus) + index := -1 + for allEnums := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_IndexStatus_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(ComAmazonawsDynamodbTypes.IndexStatus).Equals(inputEnum) { + break + } + } + } + return u.Values()[index] + }() +} +func Com_amazonaws_dynamodb_ReplicaGlobalSecondaryIndexAutoScalingDescription_ProvisionedReadCapacityAutoScalingSettings_FromDafny(input interface{}) *types.AutoScalingSettingsDescription { + return func() *types.AutoScalingSettingsDescription { + if input == nil { + return nil + } + return &types.AutoScalingSettingsDescription{ + MinimumUnits: Com_amazonaws_dynamodb_AutoScalingSettingsDescription_MinimumUnits_FromDafny(input.(ComAmazonawsDynamodbTypes.AutoScalingSettingsDescription).Dtor_MinimumUnits().UnwrapOr(nil)), + MaximumUnits: Com_amazonaws_dynamodb_AutoScalingSettingsDescription_MaximumUnits_FromDafny(input.(ComAmazonawsDynamodbTypes.AutoScalingSettingsDescription).Dtor_MaximumUnits().UnwrapOr(nil)), + AutoScalingDisabled: Com_amazonaws_dynamodb_AutoScalingSettingsDescription_AutoScalingDisabled_FromDafny(input.(ComAmazonawsDynamodbTypes.AutoScalingSettingsDescription).Dtor_AutoScalingDisabled().UnwrapOr(nil)), + AutoScalingRoleArn: Com_amazonaws_dynamodb_AutoScalingSettingsDescription_AutoScalingRoleArn_FromDafny(input.(ComAmazonawsDynamodbTypes.AutoScalingSettingsDescription).Dtor_AutoScalingRoleArn().UnwrapOr(nil)), + ScalingPolicies: Com_amazonaws_dynamodb_AutoScalingSettingsDescription_ScalingPolicies_FromDafny(input.(ComAmazonawsDynamodbTypes.AutoScalingSettingsDescription).Dtor_ScalingPolicies().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_dynamodb_ReplicaGlobalSecondaryIndexAutoScalingDescription_ProvisionedWriteCapacityAutoScalingSettings_FromDafny(input interface{}) *types.AutoScalingSettingsDescription { + return func() *types.AutoScalingSettingsDescription { + if input == nil { + return nil + } + return &types.AutoScalingSettingsDescription{ + MinimumUnits: Com_amazonaws_dynamodb_AutoScalingSettingsDescription_MinimumUnits_FromDafny(input.(ComAmazonawsDynamodbTypes.AutoScalingSettingsDescription).Dtor_MinimumUnits().UnwrapOr(nil)), + MaximumUnits: Com_amazonaws_dynamodb_AutoScalingSettingsDescription_MaximumUnits_FromDafny(input.(ComAmazonawsDynamodbTypes.AutoScalingSettingsDescription).Dtor_MaximumUnits().UnwrapOr(nil)), + AutoScalingDisabled: Com_amazonaws_dynamodb_AutoScalingSettingsDescription_AutoScalingDisabled_FromDafny(input.(ComAmazonawsDynamodbTypes.AutoScalingSettingsDescription).Dtor_AutoScalingDisabled().UnwrapOr(nil)), + AutoScalingRoleArn: Com_amazonaws_dynamodb_AutoScalingSettingsDescription_AutoScalingRoleArn_FromDafny(input.(ComAmazonawsDynamodbTypes.AutoScalingSettingsDescription).Dtor_AutoScalingRoleArn().UnwrapOr(nil)), + ScalingPolicies: Com_amazonaws_dynamodb_AutoScalingSettingsDescription_ScalingPolicies_FromDafny(input.(ComAmazonawsDynamodbTypes.AutoScalingSettingsDescription).Dtor_ScalingPolicies().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_dynamodb_ReplicaAutoScalingDescription_ReplicaProvisionedReadCapacityAutoScalingSettings_FromDafny(input interface{}) *types.AutoScalingSettingsDescription { + return func() *types.AutoScalingSettingsDescription { + if input == nil { + return nil + } + return &types.AutoScalingSettingsDescription{ + MinimumUnits: Com_amazonaws_dynamodb_AutoScalingSettingsDescription_MinimumUnits_FromDafny(input.(ComAmazonawsDynamodbTypes.AutoScalingSettingsDescription).Dtor_MinimumUnits().UnwrapOr(nil)), + MaximumUnits: Com_amazonaws_dynamodb_AutoScalingSettingsDescription_MaximumUnits_FromDafny(input.(ComAmazonawsDynamodbTypes.AutoScalingSettingsDescription).Dtor_MaximumUnits().UnwrapOr(nil)), + AutoScalingDisabled: Com_amazonaws_dynamodb_AutoScalingSettingsDescription_AutoScalingDisabled_FromDafny(input.(ComAmazonawsDynamodbTypes.AutoScalingSettingsDescription).Dtor_AutoScalingDisabled().UnwrapOr(nil)), + AutoScalingRoleArn: Com_amazonaws_dynamodb_AutoScalingSettingsDescription_AutoScalingRoleArn_FromDafny(input.(ComAmazonawsDynamodbTypes.AutoScalingSettingsDescription).Dtor_AutoScalingRoleArn().UnwrapOr(nil)), + ScalingPolicies: Com_amazonaws_dynamodb_AutoScalingSettingsDescription_ScalingPolicies_FromDafny(input.(ComAmazonawsDynamodbTypes.AutoScalingSettingsDescription).Dtor_ScalingPolicies().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_dynamodb_ReplicaAutoScalingDescription_ReplicaProvisionedWriteCapacityAutoScalingSettings_FromDafny(input interface{}) *types.AutoScalingSettingsDescription { + return func() *types.AutoScalingSettingsDescription { + if input == nil { + return nil + } + return &types.AutoScalingSettingsDescription{ + MinimumUnits: Com_amazonaws_dynamodb_AutoScalingSettingsDescription_MinimumUnits_FromDafny(input.(ComAmazonawsDynamodbTypes.AutoScalingSettingsDescription).Dtor_MinimumUnits().UnwrapOr(nil)), + MaximumUnits: Com_amazonaws_dynamodb_AutoScalingSettingsDescription_MaximumUnits_FromDafny(input.(ComAmazonawsDynamodbTypes.AutoScalingSettingsDescription).Dtor_MaximumUnits().UnwrapOr(nil)), + AutoScalingDisabled: Com_amazonaws_dynamodb_AutoScalingSettingsDescription_AutoScalingDisabled_FromDafny(input.(ComAmazonawsDynamodbTypes.AutoScalingSettingsDescription).Dtor_AutoScalingDisabled().UnwrapOr(nil)), + AutoScalingRoleArn: Com_amazonaws_dynamodb_AutoScalingSettingsDescription_AutoScalingRoleArn_FromDafny(input.(ComAmazonawsDynamodbTypes.AutoScalingSettingsDescription).Dtor_AutoScalingRoleArn().UnwrapOr(nil)), + ScalingPolicies: Com_amazonaws_dynamodb_AutoScalingSettingsDescription_ScalingPolicies_FromDafny(input.(ComAmazonawsDynamodbTypes.AutoScalingSettingsDescription).Dtor_ScalingPolicies().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_dynamodb_ReplicaAutoScalingDescription_ReplicaStatus_FromDafny(input interface{}) types.ReplicaStatus { + return func() types.ReplicaStatus { + var u types.ReplicaStatus + if input == nil { + return u + } + + inputEnum := input.(ComAmazonawsDynamodbTypes.ReplicaStatus) + index := -1 + for allEnums := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_ReplicaStatus_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(ComAmazonawsDynamodbTypes.ReplicaStatus).Equals(inputEnum) { + break + } + } + } + return u.Values()[index] + }() +} +func Com_amazonaws_dynamodb_DescribeTimeToLiveInput_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 Com_amazonaws_dynamodb_DescribeTimeToLiveOutput_TimeToLiveDescription_FromDafny(input interface{}) *types.TimeToLiveDescription { + return func() *types.TimeToLiveDescription { + if input == nil { + return nil + } + return &types.TimeToLiveDescription{ + TimeToLiveStatus: Com_amazonaws_dynamodb_TimeToLiveDescription_TimeToLiveStatus_FromDafny(input.(ComAmazonawsDynamodbTypes.TimeToLiveDescription).Dtor_TimeToLiveStatus().UnwrapOr(nil)), + AttributeName: Com_amazonaws_dynamodb_TimeToLiveDescription_AttributeName_FromDafny(input.(ComAmazonawsDynamodbTypes.TimeToLiveDescription).Dtor_AttributeName().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_dynamodb_DisableKinesisStreamingDestinationInput_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 Com_amazonaws_dynamodb_DisableKinesisStreamingDestinationInput_StreamArn_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 Com_amazonaws_dynamodb_DisableKinesisStreamingDestinationInput_EnableKinesisStreamingConfiguration_FromDafny(input interface{}) *types.EnableKinesisStreamingConfiguration { + return func() *types.EnableKinesisStreamingConfiguration { + if input == nil { + return nil + } + return &types.EnableKinesisStreamingConfiguration{ + ApproximateCreationDateTimePrecision: Com_amazonaws_dynamodb_EnableKinesisStreamingConfiguration_ApproximateCreationDateTimePrecision_FromDafny(input.(ComAmazonawsDynamodbTypes.EnableKinesisStreamingConfiguration).Dtor_ApproximateCreationDateTimePrecision().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_dynamodb_EnableKinesisStreamingConfiguration_ApproximateCreationDateTimePrecision_FromDafny(input interface{}) types.ApproximateCreationDateTimePrecision { + return func() types.ApproximateCreationDateTimePrecision { + var u types.ApproximateCreationDateTimePrecision + if input == nil { + return u + } + + inputEnum := input.(ComAmazonawsDynamodbTypes.ApproximateCreationDateTimePrecision) + index := -1 + for allEnums := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_ApproximateCreationDateTimePrecision_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(ComAmazonawsDynamodbTypes.ApproximateCreationDateTimePrecision).Equals(inputEnum) { + break + } + } + } + return u.Values()[index] + }() +} +func Com_amazonaws_dynamodb_DisableKinesisStreamingDestinationOutput_TableName_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_DisableKinesisStreamingDestinationOutput_StreamArn_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_DisableKinesisStreamingDestinationOutput_DestinationStatus_FromDafny(input interface{}) types.DestinationStatus { + return func() types.DestinationStatus { + var u types.DestinationStatus + if input == nil { + return u + } + + inputEnum := input.(ComAmazonawsDynamodbTypes.DestinationStatus) + index := -1 + for allEnums := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_DestinationStatus_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(ComAmazonawsDynamodbTypes.DestinationStatus).Equals(inputEnum) { + break + } + } + } + return u.Values()[index] + }() +} +func Com_amazonaws_dynamodb_DisableKinesisStreamingDestinationOutput_EnableKinesisStreamingConfiguration_FromDafny(input interface{}) *types.EnableKinesisStreamingConfiguration { + return func() *types.EnableKinesisStreamingConfiguration { + if input == nil { + return nil + } + return &types.EnableKinesisStreamingConfiguration{ + ApproximateCreationDateTimePrecision: Com_amazonaws_dynamodb_EnableKinesisStreamingConfiguration_ApproximateCreationDateTimePrecision_FromDafny(input.(ComAmazonawsDynamodbTypes.EnableKinesisStreamingConfiguration).Dtor_ApproximateCreationDateTimePrecision().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_dynamodb_EnableKinesisStreamingDestinationInput_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 Com_amazonaws_dynamodb_EnableKinesisStreamingDestinationInput_StreamArn_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 Com_amazonaws_dynamodb_EnableKinesisStreamingDestinationInput_EnableKinesisStreamingConfiguration_FromDafny(input interface{}) *types.EnableKinesisStreamingConfiguration { + return func() *types.EnableKinesisStreamingConfiguration { + if input == nil { + return nil + } + return &types.EnableKinesisStreamingConfiguration{ + ApproximateCreationDateTimePrecision: Com_amazonaws_dynamodb_EnableKinesisStreamingConfiguration_ApproximateCreationDateTimePrecision_FromDafny(input.(ComAmazonawsDynamodbTypes.EnableKinesisStreamingConfiguration).Dtor_ApproximateCreationDateTimePrecision().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_dynamodb_EnableKinesisStreamingDestinationOutput_TableName_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_EnableKinesisStreamingDestinationOutput_StreamArn_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_EnableKinesisStreamingDestinationOutput_DestinationStatus_FromDafny(input interface{}) types.DestinationStatus { + return func() types.DestinationStatus { + var u types.DestinationStatus + if input == nil { + return u + } + + inputEnum := input.(ComAmazonawsDynamodbTypes.DestinationStatus) + index := -1 + for allEnums := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_DestinationStatus_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(ComAmazonawsDynamodbTypes.DestinationStatus).Equals(inputEnum) { + break + } + } + } + return u.Values()[index] + }() +} +func Com_amazonaws_dynamodb_EnableKinesisStreamingDestinationOutput_EnableKinesisStreamingConfiguration_FromDafny(input interface{}) *types.EnableKinesisStreamingConfiguration { + return func() *types.EnableKinesisStreamingConfiguration { + if input == nil { + return nil + } + return &types.EnableKinesisStreamingConfiguration{ + ApproximateCreationDateTimePrecision: Com_amazonaws_dynamodb_EnableKinesisStreamingConfiguration_ApproximateCreationDateTimePrecision_FromDafny(input.(ComAmazonawsDynamodbTypes.EnableKinesisStreamingConfiguration).Dtor_ApproximateCreationDateTimePrecision().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_dynamodb_ExecuteStatementInput_Statement_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 Com_amazonaws_dynamodb_ExecuteStatementInput_Parameters_FromDafny(input interface{}) []types.AttributeValue { + return func() []types.AttributeValue { + var fieldValue []types.AttributeValue + if input == nil { + return nil + } + for i := dafny.Iterate(input.(dafny.Sequence).(dafny.Sequence)); ; { + val, ok := i() + if !ok { + break + } + fieldValue = append(fieldValue, Com_amazonaws_dynamodb_PreparedStatementParameters_member_FromDafny(val)) + } + return fieldValue + }() +} +func Com_amazonaws_dynamodb_ExecuteStatementInput_ConsistentRead_FromDafny(input interface{}) *bool { + return func() *bool { + var b bool + if input == nil { + return nil + } + b = input.(bool) + return &b + }() +} +func Com_amazonaws_dynamodb_ExecuteStatementInput_NextToken_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_ExecuteStatementInput_ReturnConsumedCapacity_FromDafny(input interface{}) types.ReturnConsumedCapacity { + return func() types.ReturnConsumedCapacity { + var u types.ReturnConsumedCapacity + if input == nil { + return u + } + + inputEnum := input.(ComAmazonawsDynamodbTypes.ReturnConsumedCapacity) + index := -1 + for allEnums := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_ReturnConsumedCapacity_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(ComAmazonawsDynamodbTypes.ReturnConsumedCapacity).Equals(inputEnum) { + break + } + } + } + return u.Values()[index] + }() +} +func Com_amazonaws_dynamodb_ExecuteStatementInput_Limit_FromDafny(input interface{}) *int32 { + return func() *int32 { + var i int32 + if input == nil { + return nil + } + i = input.(int32) + return &i + }() +} +func Com_amazonaws_dynamodb_ExecuteStatementInput_ReturnValuesOnConditionCheckFailure_FromDafny(input interface{}) types.ReturnValuesOnConditionCheckFailure { + return func() types.ReturnValuesOnConditionCheckFailure { + var u types.ReturnValuesOnConditionCheckFailure + if input == nil { + return u + } + + inputEnum := input.(ComAmazonawsDynamodbTypes.ReturnValuesOnConditionCheckFailure) + index := -1 + for allEnums := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_ReturnValuesOnConditionCheckFailure_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(ComAmazonawsDynamodbTypes.ReturnValuesOnConditionCheckFailure).Equals(inputEnum) { + break + } + } + } + return u.Values()[index] + }() +} +func Com_amazonaws_dynamodb_ExecuteStatementOutput_Items_FromDafny(input interface{}) []map[string]types.AttributeValue { + return func() []map[string]types.AttributeValue { + var fieldValue []map[string]types.AttributeValue + if input == nil { + return nil + } + for i := dafny.Iterate(input.(dafny.Sequence).(dafny.Sequence)); ; { + val, ok := i() + if !ok { + break + } + fieldValue = append(fieldValue, Com_amazonaws_dynamodb_ItemList_member_FromDafny(val)) + } + return fieldValue + }() +} +func Com_amazonaws_dynamodb_ExecuteStatementOutput_NextToken_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_ExecuteStatementOutput_ConsumedCapacity_FromDafny(input interface{}) *types.ConsumedCapacity { + return func() *types.ConsumedCapacity { + if input == nil { + return nil + } + return &types.ConsumedCapacity{ + TableName: Com_amazonaws_dynamodb_ConsumedCapacity_TableName_FromDafny(input.(ComAmazonawsDynamodbTypes.ConsumedCapacity).Dtor_TableName().UnwrapOr(nil)), + CapacityUnits: Com_amazonaws_dynamodb_ConsumedCapacity_CapacityUnits_FromDafny(input.(ComAmazonawsDynamodbTypes.ConsumedCapacity).Dtor_CapacityUnits().UnwrapOr(nil)), + ReadCapacityUnits: Com_amazonaws_dynamodb_ConsumedCapacity_ReadCapacityUnits_FromDafny(input.(ComAmazonawsDynamodbTypes.ConsumedCapacity).Dtor_ReadCapacityUnits().UnwrapOr(nil)), + WriteCapacityUnits: Com_amazonaws_dynamodb_ConsumedCapacity_WriteCapacityUnits_FromDafny(input.(ComAmazonawsDynamodbTypes.ConsumedCapacity).Dtor_WriteCapacityUnits().UnwrapOr(nil)), + Table: Com_amazonaws_dynamodb_ConsumedCapacity_Table_FromDafny(input.(ComAmazonawsDynamodbTypes.ConsumedCapacity).Dtor_Table().UnwrapOr(nil)), + LocalSecondaryIndexes: Com_amazonaws_dynamodb_ConsumedCapacity_LocalSecondaryIndexes_FromDafny(input.(ComAmazonawsDynamodbTypes.ConsumedCapacity).Dtor_LocalSecondaryIndexes().UnwrapOr(nil)), + GlobalSecondaryIndexes: Com_amazonaws_dynamodb_ConsumedCapacity_GlobalSecondaryIndexes_FromDafny(input.(ComAmazonawsDynamodbTypes.ConsumedCapacity).Dtor_GlobalSecondaryIndexes().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_dynamodb_ExecuteStatementOutput_LastEvaluatedKey_FromDafny(input interface{}) map[string]types.AttributeValue { + return func() map[string]types.AttributeValue { + var m map[string]types.AttributeValue = make(map[string]types.AttributeValue) + if input == nil { + return nil + } + + for i := dafny.Iterate(input.(dafny.Map).Items()); ; { + val, ok := i() + if !ok { + break + } + m[Com_amazonaws_dynamodb_Key_key_FromDafny((*val.(dafny.Tuple).IndexInt(0)))] = Com_amazonaws_dynamodb_Key_value_FromDafny((*val.(dafny.Tuple).IndexInt(1))) + } + return m + }() +} +func Com_amazonaws_dynamodb_ExecuteTransactionInput_TransactStatements_FromDafny(input interface{}) []types.ParameterizedStatement { + return func() []types.ParameterizedStatement { + var fieldValue []types.ParameterizedStatement + + for i := dafny.Iterate(input.(dafny.Sequence)); ; { + val, ok := i() + if !ok { + break + } + fieldValue = append(fieldValue, Com_amazonaws_dynamodb_ParameterizedStatements_member_FromDafny(val)) + } + return fieldValue + }() +} +func Com_amazonaws_dynamodb_ParameterizedStatements_member_FromDafny(input interface{}) types.ParameterizedStatement { + return func() types.ParameterizedStatement { + + return types.ParameterizedStatement{ + Statement: Com_amazonaws_dynamodb_ParameterizedStatement_Statement_FromDafny(input.(ComAmazonawsDynamodbTypes.ParameterizedStatement).Dtor_Statement()), + Parameters: Com_amazonaws_dynamodb_ParameterizedStatement_Parameters_FromDafny(input.(ComAmazonawsDynamodbTypes.ParameterizedStatement).Dtor_Parameters().UnwrapOr(nil)), + ReturnValuesOnConditionCheckFailure: Com_amazonaws_dynamodb_ParameterizedStatement_ReturnValuesOnConditionCheckFailure_FromDafny(input.(ComAmazonawsDynamodbTypes.ParameterizedStatement).Dtor_ReturnValuesOnConditionCheckFailure().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_dynamodb_ParameterizedStatement_Statement_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 Com_amazonaws_dynamodb_ParameterizedStatement_Parameters_FromDafny(input interface{}) []types.AttributeValue { + return func() []types.AttributeValue { + var fieldValue []types.AttributeValue + if input == nil { + return nil + } + for i := dafny.Iterate(input.(dafny.Sequence).(dafny.Sequence)); ; { + val, ok := i() + if !ok { + break + } + fieldValue = append(fieldValue, Com_amazonaws_dynamodb_PreparedStatementParameters_member_FromDafny(val)) + } + return fieldValue + }() +} +func Com_amazonaws_dynamodb_ParameterizedStatement_ReturnValuesOnConditionCheckFailure_FromDafny(input interface{}) types.ReturnValuesOnConditionCheckFailure { + return func() types.ReturnValuesOnConditionCheckFailure { + var u types.ReturnValuesOnConditionCheckFailure + if input == nil { + return u + } + + inputEnum := input.(ComAmazonawsDynamodbTypes.ReturnValuesOnConditionCheckFailure) + index := -1 + for allEnums := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_ReturnValuesOnConditionCheckFailure_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(ComAmazonawsDynamodbTypes.ReturnValuesOnConditionCheckFailure).Equals(inputEnum) { + break + } + } + } + return u.Values()[index] + }() +} +func Com_amazonaws_dynamodb_ExecuteTransactionInput_ClientRequestToken_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_ExecuteTransactionInput_ReturnConsumedCapacity_FromDafny(input interface{}) types.ReturnConsumedCapacity { + return func() types.ReturnConsumedCapacity { + var u types.ReturnConsumedCapacity + if input == nil { + return u + } + + inputEnum := input.(ComAmazonawsDynamodbTypes.ReturnConsumedCapacity) + index := -1 + for allEnums := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_ReturnConsumedCapacity_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(ComAmazonawsDynamodbTypes.ReturnConsumedCapacity).Equals(inputEnum) { + break + } + } + } + return u.Values()[index] + }() +} +func Com_amazonaws_dynamodb_ExecuteTransactionOutput_Responses_FromDafny(input interface{}) []types.ItemResponse { + return func() []types.ItemResponse { + var fieldValue []types.ItemResponse + if input == nil { + return nil + } + for i := dafny.Iterate(input.(dafny.Sequence).(dafny.Sequence)); ; { + val, ok := i() + if !ok { + break + } + fieldValue = append(fieldValue, Com_amazonaws_dynamodb_ItemResponseList_member_FromDafny(val)) + } + return fieldValue + }() +} +func Com_amazonaws_dynamodb_ItemResponseList_member_FromDafny(input interface{}) types.ItemResponse { + return func() types.ItemResponse { + + return types.ItemResponse{ + Item: Com_amazonaws_dynamodb_ItemResponse_Item_FromDafny(input.(ComAmazonawsDynamodbTypes.ItemResponse).Dtor_Item().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_dynamodb_ItemResponse_Item_FromDafny(input interface{}) map[string]types.AttributeValue { + return func() map[string]types.AttributeValue { + var m map[string]types.AttributeValue = make(map[string]types.AttributeValue) + if input == nil { + return nil + } + + for i := dafny.Iterate(input.(dafny.Map).Items()); ; { + val, ok := i() + if !ok { + break + } + m[Com_amazonaws_dynamodb_AttributeMap_key_FromDafny((*val.(dafny.Tuple).IndexInt(0)))] = Com_amazonaws_dynamodb_AttributeMap_value_FromDafny((*val.(dafny.Tuple).IndexInt(1))) + } + return m + }() +} +func Com_amazonaws_dynamodb_ExecuteTransactionOutput_ConsumedCapacity_FromDafny(input interface{}) []types.ConsumedCapacity { + return func() []types.ConsumedCapacity { + var fieldValue []types.ConsumedCapacity + if input == nil { + return nil + } + for i := dafny.Iterate(input.(dafny.Sequence).(dafny.Sequence)); ; { + val, ok := i() + if !ok { + break + } + fieldValue = append(fieldValue, Com_amazonaws_dynamodb_ConsumedCapacityMultiple_member_FromDafny(val)) + } + return fieldValue + }() +} +func Com_amazonaws_dynamodb_ExportTableToPointInTimeInput_TableArn_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 Com_amazonaws_dynamodb_ExportTableToPointInTimeInput_ExportTime_FromDafny(input interface{}) *time.Time { + return func() *time.Time { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + if len(s) == 0 { + panic("timestamp string is empty") + } else { + t, err := time.Parse("2006-01-02T15:04:05.999999Z", s) + if err != nil { + panic(err) + } + return &t + } + }() +} +func Com_amazonaws_dynamodb_ExportTableToPointInTimeInput_ClientToken_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_ExportTableToPointInTimeInput_S3Bucket_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 Com_amazonaws_dynamodb_ExportTableToPointInTimeInput_S3BucketOwner_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_ExportTableToPointInTimeInput_S3Prefix_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_ExportTableToPointInTimeInput_S3SseAlgorithm_FromDafny(input interface{}) types.S3SseAlgorithm { + return func() types.S3SseAlgorithm { + var u types.S3SseAlgorithm + if input == nil { + return u + } + + inputEnum := input.(ComAmazonawsDynamodbTypes.S3SseAlgorithm) + index := -1 + for allEnums := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_S3SseAlgorithm_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(ComAmazonawsDynamodbTypes.S3SseAlgorithm).Equals(inputEnum) { + break + } + } + } + return u.Values()[index] + }() +} +func Com_amazonaws_dynamodb_ExportTableToPointInTimeInput_S3SseKmsKeyId_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_ExportTableToPointInTimeInput_ExportFormat_FromDafny(input interface{}) types.ExportFormat { + return func() types.ExportFormat { + var u types.ExportFormat + if input == nil { + return u + } + + inputEnum := input.(ComAmazonawsDynamodbTypes.ExportFormat) + index := -1 + for allEnums := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_ExportFormat_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(ComAmazonawsDynamodbTypes.ExportFormat).Equals(inputEnum) { + break + } + } + } + return u.Values()[index] + }() +} +func Com_amazonaws_dynamodb_ExportTableToPointInTimeInput_ExportType_FromDafny(input interface{}) types.ExportType { + return func() types.ExportType { + var u types.ExportType + if input == nil { + return u + } + + inputEnum := input.(ComAmazonawsDynamodbTypes.ExportType) + index := -1 + for allEnums := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_ExportType_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(ComAmazonawsDynamodbTypes.ExportType).Equals(inputEnum) { + break + } + } + } + return u.Values()[index] + }() +} +func Com_amazonaws_dynamodb_ExportTableToPointInTimeInput_IncrementalExportSpecification_FromDafny(input interface{}) *types.IncrementalExportSpecification { + return func() *types.IncrementalExportSpecification { + if input == nil { + return nil + } + return &types.IncrementalExportSpecification{ + ExportFromTime: Com_amazonaws_dynamodb_IncrementalExportSpecification_ExportFromTime_FromDafny(input.(ComAmazonawsDynamodbTypes.IncrementalExportSpecification).Dtor_ExportFromTime().UnwrapOr(nil)), + ExportToTime: Com_amazonaws_dynamodb_IncrementalExportSpecification_ExportToTime_FromDafny(input.(ComAmazonawsDynamodbTypes.IncrementalExportSpecification).Dtor_ExportToTime().UnwrapOr(nil)), + ExportViewType: Com_amazonaws_dynamodb_IncrementalExportSpecification_ExportViewType_FromDafny(input.(ComAmazonawsDynamodbTypes.IncrementalExportSpecification).Dtor_ExportViewType().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_dynamodb_ExportTableToPointInTimeOutput_ExportDescription_FromDafny(input interface{}) *types.ExportDescription { + return func() *types.ExportDescription { + if input == nil { + return nil + } + return &types.ExportDescription{ + ExportArn: Com_amazonaws_dynamodb_ExportDescription_ExportArn_FromDafny(input.(ComAmazonawsDynamodbTypes.ExportDescription).Dtor_ExportArn().UnwrapOr(nil)), + ExportStatus: Com_amazonaws_dynamodb_ExportDescription_ExportStatus_FromDafny(input.(ComAmazonawsDynamodbTypes.ExportDescription).Dtor_ExportStatus().UnwrapOr(nil)), + StartTime: Com_amazonaws_dynamodb_ExportDescription_StartTime_FromDafny(input.(ComAmazonawsDynamodbTypes.ExportDescription).Dtor_StartTime().UnwrapOr(nil)), + EndTime: Com_amazonaws_dynamodb_ExportDescription_EndTime_FromDafny(input.(ComAmazonawsDynamodbTypes.ExportDescription).Dtor_EndTime().UnwrapOr(nil)), + ExportManifest: Com_amazonaws_dynamodb_ExportDescription_ExportManifest_FromDafny(input.(ComAmazonawsDynamodbTypes.ExportDescription).Dtor_ExportManifest().UnwrapOr(nil)), + TableArn: Com_amazonaws_dynamodb_ExportDescription_TableArn_FromDafny(input.(ComAmazonawsDynamodbTypes.ExportDescription).Dtor_TableArn().UnwrapOr(nil)), + TableId: Com_amazonaws_dynamodb_ExportDescription_TableId_FromDafny(input.(ComAmazonawsDynamodbTypes.ExportDescription).Dtor_TableId().UnwrapOr(nil)), + ExportTime: Com_amazonaws_dynamodb_ExportDescription_ExportTime_FromDafny(input.(ComAmazonawsDynamodbTypes.ExportDescription).Dtor_ExportTime().UnwrapOr(nil)), + ClientToken: Com_amazonaws_dynamodb_ExportDescription_ClientToken_FromDafny(input.(ComAmazonawsDynamodbTypes.ExportDescription).Dtor_ClientToken().UnwrapOr(nil)), + S3Bucket: Com_amazonaws_dynamodb_ExportDescription_S3Bucket_FromDafny(input.(ComAmazonawsDynamodbTypes.ExportDescription).Dtor_S3Bucket().UnwrapOr(nil)), + S3BucketOwner: Com_amazonaws_dynamodb_ExportDescription_S3BucketOwner_FromDafny(input.(ComAmazonawsDynamodbTypes.ExportDescription).Dtor_S3BucketOwner().UnwrapOr(nil)), + S3Prefix: Com_amazonaws_dynamodb_ExportDescription_S3Prefix_FromDafny(input.(ComAmazonawsDynamodbTypes.ExportDescription).Dtor_S3Prefix().UnwrapOr(nil)), + S3SseAlgorithm: Com_amazonaws_dynamodb_ExportDescription_S3SseAlgorithm_FromDafny(input.(ComAmazonawsDynamodbTypes.ExportDescription).Dtor_S3SseAlgorithm().UnwrapOr(nil)), + S3SseKmsKeyId: Com_amazonaws_dynamodb_ExportDescription_S3SseKmsKeyId_FromDafny(input.(ComAmazonawsDynamodbTypes.ExportDescription).Dtor_S3SseKmsKeyId().UnwrapOr(nil)), + FailureCode: Com_amazonaws_dynamodb_ExportDescription_FailureCode_FromDafny(input.(ComAmazonawsDynamodbTypes.ExportDescription).Dtor_FailureCode().UnwrapOr(nil)), + FailureMessage: Com_amazonaws_dynamodb_ExportDescription_FailureMessage_FromDafny(input.(ComAmazonawsDynamodbTypes.ExportDescription).Dtor_FailureMessage().UnwrapOr(nil)), + ExportFormat: Com_amazonaws_dynamodb_ExportDescription_ExportFormat_FromDafny(input.(ComAmazonawsDynamodbTypes.ExportDescription).Dtor_ExportFormat().UnwrapOr(nil)), + BilledSizeBytes: Com_amazonaws_dynamodb_ExportDescription_BilledSizeBytes_FromDafny(input.(ComAmazonawsDynamodbTypes.ExportDescription).Dtor_BilledSizeBytes().UnwrapOr(nil)), + ItemCount: Com_amazonaws_dynamodb_ExportDescription_ItemCount_FromDafny(input.(ComAmazonawsDynamodbTypes.ExportDescription).Dtor_ItemCount().UnwrapOr(nil)), + ExportType: Com_amazonaws_dynamodb_ExportDescription_ExportType_FromDafny(input.(ComAmazonawsDynamodbTypes.ExportDescription).Dtor_ExportType().UnwrapOr(nil)), + IncrementalExportSpecification: Com_amazonaws_dynamodb_ExportDescription_IncrementalExportSpecification_FromDafny(input.(ComAmazonawsDynamodbTypes.ExportDescription).Dtor_IncrementalExportSpecification().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_dynamodb_GetItemInput_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 Com_amazonaws_dynamodb_GetItemInput_Key_FromDafny(input interface{}) map[string]types.AttributeValue { + return func() map[string]types.AttributeValue { + var m map[string]types.AttributeValue = make(map[string]types.AttributeValue) + + for i := dafny.Iterate(input.(dafny.Map).Items()); ; { + val, ok := i() + if !ok { + break + } + m[Com_amazonaws_dynamodb_Key_key_FromDafny((*val.(dafny.Tuple).IndexInt(0)))] = Com_amazonaws_dynamodb_Key_value_FromDafny((*val.(dafny.Tuple).IndexInt(1))) + } + return m + }() +} +func Com_amazonaws_dynamodb_GetItemInput_AttributesToGet_FromDafny(input interface{}) []string { + return func() []string { + var fieldValue []string + if input == nil { + return nil + } + for i := dafny.Iterate(input.(dafny.Sequence).(dafny.Sequence)); ; { + val, ok := i() + if !ok { + break + } + fieldValue = append(fieldValue, Com_amazonaws_dynamodb_AttributeNameList_member_FromDafny(val)) + } + return fieldValue + }() +} +func Com_amazonaws_dynamodb_GetItemInput_ConsistentRead_FromDafny(input interface{}) *bool { + return func() *bool { + var b bool + if input == nil { + return nil + } + b = input.(bool) + return &b + }() +} +func Com_amazonaws_dynamodb_GetItemInput_ReturnConsumedCapacity_FromDafny(input interface{}) types.ReturnConsumedCapacity { + return func() types.ReturnConsumedCapacity { + var u types.ReturnConsumedCapacity + if input == nil { + return u + } + + inputEnum := input.(ComAmazonawsDynamodbTypes.ReturnConsumedCapacity) + index := -1 + for allEnums := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_ReturnConsumedCapacity_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(ComAmazonawsDynamodbTypes.ReturnConsumedCapacity).Equals(inputEnum) { + break + } + } + } + return u.Values()[index] + }() +} +func Com_amazonaws_dynamodb_GetItemInput_ProjectionExpression_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_GetItemInput_ExpressionAttributeNames_FromDafny(input interface{}) map[string]string { + return func() 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[Com_amazonaws_dynamodb_ExpressionAttributeNameMap_key_FromDafny((*val.(dafny.Tuple).IndexInt(0)))] = Com_amazonaws_dynamodb_ExpressionAttributeNameMap_value_FromDafny((*val.(dafny.Tuple).IndexInt(1))) + } + return m + }() +} +func Com_amazonaws_dynamodb_GetItemOutput_Item_FromDafny(input interface{}) map[string]types.AttributeValue { + return func() map[string]types.AttributeValue { + var m map[string]types.AttributeValue = make(map[string]types.AttributeValue) + if input == nil { + return nil + } + + for i := dafny.Iterate(input.(dafny.Map).Items()); ; { + val, ok := i() + if !ok { + break + } + m[Com_amazonaws_dynamodb_AttributeMap_key_FromDafny((*val.(dafny.Tuple).IndexInt(0)))] = Com_amazonaws_dynamodb_AttributeMap_value_FromDafny((*val.(dafny.Tuple).IndexInt(1))) + } + return m + }() +} +func Com_amazonaws_dynamodb_GetItemOutput_ConsumedCapacity_FromDafny(input interface{}) *types.ConsumedCapacity { + return func() *types.ConsumedCapacity { + if input == nil { + return nil + } + return &types.ConsumedCapacity{ + TableName: Com_amazonaws_dynamodb_ConsumedCapacity_TableName_FromDafny(input.(ComAmazonawsDynamodbTypes.ConsumedCapacity).Dtor_TableName().UnwrapOr(nil)), + CapacityUnits: Com_amazonaws_dynamodb_ConsumedCapacity_CapacityUnits_FromDafny(input.(ComAmazonawsDynamodbTypes.ConsumedCapacity).Dtor_CapacityUnits().UnwrapOr(nil)), + ReadCapacityUnits: Com_amazonaws_dynamodb_ConsumedCapacity_ReadCapacityUnits_FromDafny(input.(ComAmazonawsDynamodbTypes.ConsumedCapacity).Dtor_ReadCapacityUnits().UnwrapOr(nil)), + WriteCapacityUnits: Com_amazonaws_dynamodb_ConsumedCapacity_WriteCapacityUnits_FromDafny(input.(ComAmazonawsDynamodbTypes.ConsumedCapacity).Dtor_WriteCapacityUnits().UnwrapOr(nil)), + Table: Com_amazonaws_dynamodb_ConsumedCapacity_Table_FromDafny(input.(ComAmazonawsDynamodbTypes.ConsumedCapacity).Dtor_Table().UnwrapOr(nil)), + LocalSecondaryIndexes: Com_amazonaws_dynamodb_ConsumedCapacity_LocalSecondaryIndexes_FromDafny(input.(ComAmazonawsDynamodbTypes.ConsumedCapacity).Dtor_LocalSecondaryIndexes().UnwrapOr(nil)), + GlobalSecondaryIndexes: Com_amazonaws_dynamodb_ConsumedCapacity_GlobalSecondaryIndexes_FromDafny(input.(ComAmazonawsDynamodbTypes.ConsumedCapacity).Dtor_GlobalSecondaryIndexes().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_dynamodb_GetResourcePolicyInput_ResourceArn_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 Com_amazonaws_dynamodb_GetResourcePolicyOutput_Policy_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_GetResourcePolicyOutput_RevisionId_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_ImportTableInput_ClientToken_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_ImportTableInput_S3BucketSource_FromDafny(input interface{}) *types.S3BucketSource { + return func() *types.S3BucketSource { + + return &types.S3BucketSource{ + S3BucketOwner: Com_amazonaws_dynamodb_S3BucketSource_S3BucketOwner_FromDafny(input.(ComAmazonawsDynamodbTypes.S3BucketSource).Dtor_S3BucketOwner().UnwrapOr(nil)), + S3Bucket: Com_amazonaws_dynamodb_S3BucketSource_S3Bucket_FromDafny(input.(ComAmazonawsDynamodbTypes.S3BucketSource).Dtor_S3Bucket()), + S3KeyPrefix: Com_amazonaws_dynamodb_S3BucketSource_S3KeyPrefix_FromDafny(input.(ComAmazonawsDynamodbTypes.S3BucketSource).Dtor_S3KeyPrefix().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_dynamodb_ImportTableInput_InputFormat_FromDafny(input interface{}) types.InputFormat { + return func() types.InputFormat { + var u types.InputFormat + + inputEnum := input.(ComAmazonawsDynamodbTypes.InputFormat) + index := -1 + for allEnums := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_InputFormat_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(ComAmazonawsDynamodbTypes.InputFormat).Equals(inputEnum) { + break + } + } + } + return u.Values()[index] + }() +} +func Com_amazonaws_dynamodb_ImportTableInput_InputFormatOptions_FromDafny(input interface{}) *types.InputFormatOptions { + return func() *types.InputFormatOptions { + if input == nil { + return nil + } + return &types.InputFormatOptions{ + Csv: Com_amazonaws_dynamodb_InputFormatOptions_Csv_FromDafny(input.(ComAmazonawsDynamodbTypes.InputFormatOptions).Dtor_Csv().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_dynamodb_ImportTableInput_InputCompressionType_FromDafny(input interface{}) types.InputCompressionType { + return func() types.InputCompressionType { + var u types.InputCompressionType + if input == nil { + return u + } + + inputEnum := input.(ComAmazonawsDynamodbTypes.InputCompressionType) + index := -1 + for allEnums := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_InputCompressionType_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(ComAmazonawsDynamodbTypes.InputCompressionType).Equals(inputEnum) { + break + } + } + } + return u.Values()[index] + }() +} +func Com_amazonaws_dynamodb_ImportTableInput_TableCreationParameters_FromDafny(input interface{}) *types.TableCreationParameters { + return func() *types.TableCreationParameters { + + return &types.TableCreationParameters{ + TableName: Com_amazonaws_dynamodb_TableCreationParameters_TableName_FromDafny(input.(ComAmazonawsDynamodbTypes.TableCreationParameters).Dtor_TableName()), + AttributeDefinitions: Com_amazonaws_dynamodb_TableCreationParameters_AttributeDefinitions_FromDafny(input.(ComAmazonawsDynamodbTypes.TableCreationParameters).Dtor_AttributeDefinitions()), + KeySchema: Com_amazonaws_dynamodb_TableCreationParameters_KeySchema_FromDafny(input.(ComAmazonawsDynamodbTypes.TableCreationParameters).Dtor_KeySchema()), + BillingMode: Com_amazonaws_dynamodb_TableCreationParameters_BillingMode_FromDafny(input.(ComAmazonawsDynamodbTypes.TableCreationParameters).Dtor_BillingMode().UnwrapOr(nil)), + ProvisionedThroughput: Com_amazonaws_dynamodb_TableCreationParameters_ProvisionedThroughput_FromDafny(input.(ComAmazonawsDynamodbTypes.TableCreationParameters).Dtor_ProvisionedThroughput().UnwrapOr(nil)), + OnDemandThroughput: Com_amazonaws_dynamodb_TableCreationParameters_OnDemandThroughput_FromDafny(input.(ComAmazonawsDynamodbTypes.TableCreationParameters).Dtor_OnDemandThroughput().UnwrapOr(nil)), + SSESpecification: Com_amazonaws_dynamodb_TableCreationParameters_SSESpecification_FromDafny(input.(ComAmazonawsDynamodbTypes.TableCreationParameters).Dtor_SSESpecification().UnwrapOr(nil)), + GlobalSecondaryIndexes: Com_amazonaws_dynamodb_TableCreationParameters_GlobalSecondaryIndexes_FromDafny(input.(ComAmazonawsDynamodbTypes.TableCreationParameters).Dtor_GlobalSecondaryIndexes().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_dynamodb_ImportTableOutput_ImportTableDescription_FromDafny(input interface{}) *types.ImportTableDescription { + return func() *types.ImportTableDescription { + + return &types.ImportTableDescription{ + ImportArn: Com_amazonaws_dynamodb_ImportTableDescription_ImportArn_FromDafny(input.(ComAmazonawsDynamodbTypes.ImportTableDescription).Dtor_ImportArn().UnwrapOr(nil)), + ImportStatus: Com_amazonaws_dynamodb_ImportTableDescription_ImportStatus_FromDafny(input.(ComAmazonawsDynamodbTypes.ImportTableDescription).Dtor_ImportStatus().UnwrapOr(nil)), + TableArn: Com_amazonaws_dynamodb_ImportTableDescription_TableArn_FromDafny(input.(ComAmazonawsDynamodbTypes.ImportTableDescription).Dtor_TableArn().UnwrapOr(nil)), + TableId: Com_amazonaws_dynamodb_ImportTableDescription_TableId_FromDafny(input.(ComAmazonawsDynamodbTypes.ImportTableDescription).Dtor_TableId().UnwrapOr(nil)), + ClientToken: Com_amazonaws_dynamodb_ImportTableDescription_ClientToken_FromDafny(input.(ComAmazonawsDynamodbTypes.ImportTableDescription).Dtor_ClientToken().UnwrapOr(nil)), + S3BucketSource: Com_amazonaws_dynamodb_ImportTableDescription_S3BucketSource_FromDafny(input.(ComAmazonawsDynamodbTypes.ImportTableDescription).Dtor_S3BucketSource().UnwrapOr(nil)), + ErrorCount: Com_amazonaws_dynamodb_ImportTableDescription_ErrorCount_FromDafny(input.(ComAmazonawsDynamodbTypes.ImportTableDescription).Dtor_ErrorCount().UnwrapOr(nil)), + CloudWatchLogGroupArn: Com_amazonaws_dynamodb_ImportTableDescription_CloudWatchLogGroupArn_FromDafny(input.(ComAmazonawsDynamodbTypes.ImportTableDescription).Dtor_CloudWatchLogGroupArn().UnwrapOr(nil)), + InputFormat: Com_amazonaws_dynamodb_ImportTableDescription_InputFormat_FromDafny(input.(ComAmazonawsDynamodbTypes.ImportTableDescription).Dtor_InputFormat().UnwrapOr(nil)), + InputFormatOptions: Com_amazonaws_dynamodb_ImportTableDescription_InputFormatOptions_FromDafny(input.(ComAmazonawsDynamodbTypes.ImportTableDescription).Dtor_InputFormatOptions().UnwrapOr(nil)), + InputCompressionType: Com_amazonaws_dynamodb_ImportTableDescription_InputCompressionType_FromDafny(input.(ComAmazonawsDynamodbTypes.ImportTableDescription).Dtor_InputCompressionType().UnwrapOr(nil)), + TableCreationParameters: Com_amazonaws_dynamodb_ImportTableDescription_TableCreationParameters_FromDafny(input.(ComAmazonawsDynamodbTypes.ImportTableDescription).Dtor_TableCreationParameters().UnwrapOr(nil)), + StartTime: Com_amazonaws_dynamodb_ImportTableDescription_StartTime_FromDafny(input.(ComAmazonawsDynamodbTypes.ImportTableDescription).Dtor_StartTime().UnwrapOr(nil)), + EndTime: Com_amazonaws_dynamodb_ImportTableDescription_EndTime_FromDafny(input.(ComAmazonawsDynamodbTypes.ImportTableDescription).Dtor_EndTime().UnwrapOr(nil)), + ProcessedSizeBytes: Com_amazonaws_dynamodb_ImportTableDescription_ProcessedSizeBytes_FromDafny(input.(ComAmazonawsDynamodbTypes.ImportTableDescription).Dtor_ProcessedSizeBytes().UnwrapOr(nil)), + ProcessedItemCount: Com_amazonaws_dynamodb_ImportTableDescription_ProcessedItemCount_FromDafny(input.(ComAmazonawsDynamodbTypes.ImportTableDescription).Dtor_ProcessedItemCount().UnwrapOr(nil)), + ImportedItemCount: Com_amazonaws_dynamodb_ImportTableDescription_ImportedItemCount_FromDafny(input.(ComAmazonawsDynamodbTypes.ImportTableDescription).Dtor_ImportedItemCount().UnwrapOr(nil)), + FailureCode: Com_amazonaws_dynamodb_ImportTableDescription_FailureCode_FromDafny(input.(ComAmazonawsDynamodbTypes.ImportTableDescription).Dtor_FailureCode().UnwrapOr(nil)), + FailureMessage: Com_amazonaws_dynamodb_ImportTableDescription_FailureMessage_FromDafny(input.(ComAmazonawsDynamodbTypes.ImportTableDescription).Dtor_FailureMessage().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_dynamodb_ListBackupsInput_TableName_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_ListBackupsInput_Limit_FromDafny(input interface{}) *int32 { + return func() *int32 { + var i int32 + if input == nil { + return nil + } + i = input.(int32) + return &i + }() +} +func Com_amazonaws_dynamodb_ListBackupsInput_TimeRangeLowerBound_FromDafny(input interface{}) *time.Time { + return func() *time.Time { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + if len(s) == 0 { + panic("timestamp string is empty") + } else { + t, err := time.Parse("2006-01-02T15:04:05.999999Z", s) + if err != nil { + panic(err) + } + return &t + } + }() +} +func Com_amazonaws_dynamodb_ListBackupsInput_TimeRangeUpperBound_FromDafny(input interface{}) *time.Time { + return func() *time.Time { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + if len(s) == 0 { + panic("timestamp string is empty") + } else { + t, err := time.Parse("2006-01-02T15:04:05.999999Z", s) + if err != nil { + panic(err) + } + return &t + } + }() +} +func Com_amazonaws_dynamodb_ListBackupsInput_ExclusiveStartBackupArn_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_ListBackupsInput_BackupType_FromDafny(input interface{}) types.BackupTypeFilter { + return func() types.BackupTypeFilter { + var u types.BackupTypeFilter + if input == nil { + return u + } + + inputEnum := input.(ComAmazonawsDynamodbTypes.BackupTypeFilter) + index := -1 + for allEnums := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_BackupTypeFilter_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(ComAmazonawsDynamodbTypes.BackupTypeFilter).Equals(inputEnum) { + break + } + } + } + return u.Values()[index] + }() +} +func Com_amazonaws_dynamodb_ListBackupsOutput_BackupSummaries_FromDafny(input interface{}) []types.BackupSummary { + return func() []types.BackupSummary { + var fieldValue []types.BackupSummary + if input == nil { + return nil + } + for i := dafny.Iterate(input.(dafny.Sequence).(dafny.Sequence)); ; { + val, ok := i() + if !ok { + break + } + fieldValue = append(fieldValue, Com_amazonaws_dynamodb_BackupSummaries_member_FromDafny(val)) + } + return fieldValue + }() +} +func Com_amazonaws_dynamodb_BackupSummaries_member_FromDafny(input interface{}) types.BackupSummary { + return func() types.BackupSummary { + + return types.BackupSummary{ + TableName: Com_amazonaws_dynamodb_BackupSummary_TableName_FromDafny(input.(ComAmazonawsDynamodbTypes.BackupSummary).Dtor_TableName().UnwrapOr(nil)), + TableId: Com_amazonaws_dynamodb_BackupSummary_TableId_FromDafny(input.(ComAmazonawsDynamodbTypes.BackupSummary).Dtor_TableId().UnwrapOr(nil)), + TableArn: Com_amazonaws_dynamodb_BackupSummary_TableArn_FromDafny(input.(ComAmazonawsDynamodbTypes.BackupSummary).Dtor_TableArn().UnwrapOr(nil)), + BackupArn: Com_amazonaws_dynamodb_BackupSummary_BackupArn_FromDafny(input.(ComAmazonawsDynamodbTypes.BackupSummary).Dtor_BackupArn().UnwrapOr(nil)), + BackupName: Com_amazonaws_dynamodb_BackupSummary_BackupName_FromDafny(input.(ComAmazonawsDynamodbTypes.BackupSummary).Dtor_BackupName().UnwrapOr(nil)), + BackupCreationDateTime: Com_amazonaws_dynamodb_BackupSummary_BackupCreationDateTime_FromDafny(input.(ComAmazonawsDynamodbTypes.BackupSummary).Dtor_BackupCreationDateTime().UnwrapOr(nil)), + BackupExpiryDateTime: Com_amazonaws_dynamodb_BackupSummary_BackupExpiryDateTime_FromDafny(input.(ComAmazonawsDynamodbTypes.BackupSummary).Dtor_BackupExpiryDateTime().UnwrapOr(nil)), + BackupStatus: Com_amazonaws_dynamodb_BackupSummary_BackupStatus_FromDafny(input.(ComAmazonawsDynamodbTypes.BackupSummary).Dtor_BackupStatus().UnwrapOr(nil)), + BackupType: Com_amazonaws_dynamodb_BackupSummary_BackupType_FromDafny(input.(ComAmazonawsDynamodbTypes.BackupSummary).Dtor_BackupType().UnwrapOr(nil)), + BackupSizeBytes: Com_amazonaws_dynamodb_BackupSummary_BackupSizeBytes_FromDafny(input.(ComAmazonawsDynamodbTypes.BackupSummary).Dtor_BackupSizeBytes().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_dynamodb_BackupSummary_TableName_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_BackupSummary_TableId_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_BackupSummary_TableArn_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_BackupSummary_BackupArn_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_BackupSummary_BackupName_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_BackupSummary_BackupCreationDateTime_FromDafny(input interface{}) *time.Time { + return func() *time.Time { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + if len(s) == 0 { + panic("timestamp string is empty") + } else { + t, err := time.Parse("2006-01-02T15:04:05.999999Z", s) + if err != nil { + panic(err) + } + return &t + } + }() +} +func Com_amazonaws_dynamodb_BackupSummary_BackupExpiryDateTime_FromDafny(input interface{}) *time.Time { + return func() *time.Time { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + if len(s) == 0 { + panic("timestamp string is empty") + } else { + t, err := time.Parse("2006-01-02T15:04:05.999999Z", s) + if err != nil { + panic(err) + } + return &t + } + }() +} +func Com_amazonaws_dynamodb_BackupSummary_BackupStatus_FromDafny(input interface{}) types.BackupStatus { + return func() types.BackupStatus { + var u types.BackupStatus + if input == nil { + return u + } + + inputEnum := input.(ComAmazonawsDynamodbTypes.BackupStatus) + index := -1 + for allEnums := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_BackupStatus_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(ComAmazonawsDynamodbTypes.BackupStatus).Equals(inputEnum) { + break + } + } + } + return u.Values()[index] + }() +} +func Com_amazonaws_dynamodb_BackupSummary_BackupType_FromDafny(input interface{}) types.BackupType { + return func() types.BackupType { + var u types.BackupType + if input == nil { + return u + } + + inputEnum := input.(ComAmazonawsDynamodbTypes.BackupType) + index := -1 + for allEnums := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_BackupType_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(ComAmazonawsDynamodbTypes.BackupType).Equals(inputEnum) { + break + } + } + } + return u.Values()[index] + }() +} +func Com_amazonaws_dynamodb_BackupSummary_BackupSizeBytes_FromDafny(input interface{}) *int64 { + return func() *int64 { + var i int64 + if input == nil { + return nil + } + i = input.(int64) + return &i + }() +} +func Com_amazonaws_dynamodb_ListBackupsOutput_LastEvaluatedBackupArn_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_ListContributorInsightsInput_TableName_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_ListContributorInsightsInput_NextToken_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_ListContributorInsightsInput_MaxResults_FromDafny(input interface{}) int32 { + return input.(int32) +} +func Com_amazonaws_dynamodb_ListContributorInsightsOutput_ContributorInsightsSummaries_FromDafny(input interface{}) []types.ContributorInsightsSummary { + return func() []types.ContributorInsightsSummary { + var fieldValue []types.ContributorInsightsSummary + if input == nil { + return nil + } + for i := dafny.Iterate(input.(dafny.Sequence).(dafny.Sequence)); ; { + val, ok := i() + if !ok { + break + } + fieldValue = append(fieldValue, Com_amazonaws_dynamodb_ContributorInsightsSummaries_member_FromDafny(val)) + } + return fieldValue + }() +} +func Com_amazonaws_dynamodb_ContributorInsightsSummaries_member_FromDafny(input interface{}) types.ContributorInsightsSummary { + return func() types.ContributorInsightsSummary { + + return types.ContributorInsightsSummary{ + TableName: Com_amazonaws_dynamodb_ContributorInsightsSummary_TableName_FromDafny(input.(ComAmazonawsDynamodbTypes.ContributorInsightsSummary).Dtor_TableName().UnwrapOr(nil)), + IndexName: Com_amazonaws_dynamodb_ContributorInsightsSummary_IndexName_FromDafny(input.(ComAmazonawsDynamodbTypes.ContributorInsightsSummary).Dtor_IndexName().UnwrapOr(nil)), + ContributorInsightsStatus: Com_amazonaws_dynamodb_ContributorInsightsSummary_ContributorInsightsStatus_FromDafny(input.(ComAmazonawsDynamodbTypes.ContributorInsightsSummary).Dtor_ContributorInsightsStatus().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_dynamodb_ContributorInsightsSummary_TableName_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_ContributorInsightsSummary_IndexName_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_ContributorInsightsSummary_ContributorInsightsStatus_FromDafny(input interface{}) types.ContributorInsightsStatus { + return func() types.ContributorInsightsStatus { + var u types.ContributorInsightsStatus + if input == nil { + return u + } + + inputEnum := input.(ComAmazonawsDynamodbTypes.ContributorInsightsStatus) + index := -1 + for allEnums := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_ContributorInsightsStatus_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(ComAmazonawsDynamodbTypes.ContributorInsightsStatus).Equals(inputEnum) { + break + } + } + } + return u.Values()[index] + }() +} +func Com_amazonaws_dynamodb_ListContributorInsightsOutput_NextToken_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_ListExportsInput_TableArn_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_ListExportsInput_MaxResults_FromDafny(input interface{}) *int32 { + return func() *int32 { + var i int32 + if input == nil { + return nil + } + i = input.(int32) + return &i + }() +} +func Com_amazonaws_dynamodb_ListExportsInput_NextToken_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_ListExportsOutput_ExportSummaries_FromDafny(input interface{}) []types.ExportSummary { + return func() []types.ExportSummary { + var fieldValue []types.ExportSummary + if input == nil { + return nil + } + for i := dafny.Iterate(input.(dafny.Sequence).(dafny.Sequence)); ; { + val, ok := i() + if !ok { + break + } + fieldValue = append(fieldValue, Com_amazonaws_dynamodb_ExportSummaries_member_FromDafny(val)) + } + return fieldValue + }() +} +func Com_amazonaws_dynamodb_ExportSummaries_member_FromDafny(input interface{}) types.ExportSummary { + return func() types.ExportSummary { + + return types.ExportSummary{ + ExportArn: Com_amazonaws_dynamodb_ExportSummary_ExportArn_FromDafny(input.(ComAmazonawsDynamodbTypes.ExportSummary).Dtor_ExportArn().UnwrapOr(nil)), + ExportStatus: Com_amazonaws_dynamodb_ExportSummary_ExportStatus_FromDafny(input.(ComAmazonawsDynamodbTypes.ExportSummary).Dtor_ExportStatus().UnwrapOr(nil)), + ExportType: Com_amazonaws_dynamodb_ExportSummary_ExportType_FromDafny(input.(ComAmazonawsDynamodbTypes.ExportSummary).Dtor_ExportType().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_dynamodb_ExportSummary_ExportArn_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_ExportSummary_ExportStatus_FromDafny(input interface{}) types.ExportStatus { + return func() types.ExportStatus { + var u types.ExportStatus + if input == nil { + return u + } + + inputEnum := input.(ComAmazonawsDynamodbTypes.ExportStatus) + index := -1 + for allEnums := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_ExportStatus_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(ComAmazonawsDynamodbTypes.ExportStatus).Equals(inputEnum) { + break + } + } + } + return u.Values()[index] + }() +} +func Com_amazonaws_dynamodb_ExportSummary_ExportType_FromDafny(input interface{}) types.ExportType { + return func() types.ExportType { + var u types.ExportType + if input == nil { + return u + } + + inputEnum := input.(ComAmazonawsDynamodbTypes.ExportType) + index := -1 + for allEnums := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_ExportType_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(ComAmazonawsDynamodbTypes.ExportType).Equals(inputEnum) { + break + } + } + } + return u.Values()[index] + }() +} +func Com_amazonaws_dynamodb_ListExportsOutput_NextToken_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_ListGlobalTablesInput_ExclusiveStartGlobalTableName_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_ListGlobalTablesInput_Limit_FromDafny(input interface{}) *int32 { + return func() *int32 { + var i int32 + if input == nil { + return nil + } + i = input.(int32) + return &i + }() +} +func Com_amazonaws_dynamodb_ListGlobalTablesInput_RegionName_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_ListGlobalTablesOutput_GlobalTables_FromDafny(input interface{}) []types.GlobalTable { + return func() []types.GlobalTable { + var fieldValue []types.GlobalTable + if input == nil { + return nil + } + for i := dafny.Iterate(input.(dafny.Sequence).(dafny.Sequence)); ; { + val, ok := i() + if !ok { + break + } + fieldValue = append(fieldValue, Com_amazonaws_dynamodb_GlobalTableList_member_FromDafny(val)) + } + return fieldValue + }() +} +func Com_amazonaws_dynamodb_GlobalTableList_member_FromDafny(input interface{}) types.GlobalTable { + return func() types.GlobalTable { + + return types.GlobalTable{ + GlobalTableName: Com_amazonaws_dynamodb_GlobalTable_GlobalTableName_FromDafny(input.(ComAmazonawsDynamodbTypes.GlobalTable).Dtor_GlobalTableName().UnwrapOr(nil)), + ReplicationGroup: Com_amazonaws_dynamodb_GlobalTable_ReplicationGroup_FromDafny(input.(ComAmazonawsDynamodbTypes.GlobalTable).Dtor_ReplicationGroup().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_dynamodb_GlobalTable_GlobalTableName_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_GlobalTable_ReplicationGroup_FromDafny(input interface{}) []types.Replica { + return func() []types.Replica { + var fieldValue []types.Replica + if input == nil { + return nil + } + for i := dafny.Iterate(input.(dafny.Sequence).(dafny.Sequence)); ; { + val, ok := i() + if !ok { + break + } + fieldValue = append(fieldValue, Com_amazonaws_dynamodb_ReplicaList_member_FromDafny(val)) + } + return fieldValue + }() +} +func Com_amazonaws_dynamodb_ListGlobalTablesOutput_LastEvaluatedGlobalTableName_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_ListImportsInput_TableArn_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_ListImportsInput_PageSize_FromDafny(input interface{}) *int32 { + return func() *int32 { + var i int32 + if input == nil { + return nil + } + i = input.(int32) + return &i + }() +} +func Com_amazonaws_dynamodb_ListImportsInput_NextToken_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_ListImportsOutput_ImportSummaryList_FromDafny(input interface{}) []types.ImportSummary { + return func() []types.ImportSummary { + var fieldValue []types.ImportSummary + if input == nil { + return nil + } + for i := dafny.Iterate(input.(dafny.Sequence).(dafny.Sequence)); ; { + val, ok := i() + if !ok { + break + } + fieldValue = append(fieldValue, Com_amazonaws_dynamodb_ImportSummaryList_member_FromDafny(val)) + } + return fieldValue + }() +} +func Com_amazonaws_dynamodb_ImportSummaryList_member_FromDafny(input interface{}) types.ImportSummary { + return func() types.ImportSummary { + + return types.ImportSummary{ + ImportArn: Com_amazonaws_dynamodb_ImportSummary_ImportArn_FromDafny(input.(ComAmazonawsDynamodbTypes.ImportSummary).Dtor_ImportArn().UnwrapOr(nil)), + ImportStatus: Com_amazonaws_dynamodb_ImportSummary_ImportStatus_FromDafny(input.(ComAmazonawsDynamodbTypes.ImportSummary).Dtor_ImportStatus().UnwrapOr(nil)), + TableArn: Com_amazonaws_dynamodb_ImportSummary_TableArn_FromDafny(input.(ComAmazonawsDynamodbTypes.ImportSummary).Dtor_TableArn().UnwrapOr(nil)), + S3BucketSource: Com_amazonaws_dynamodb_ImportSummary_S3BucketSource_FromDafny(input.(ComAmazonawsDynamodbTypes.ImportSummary).Dtor_S3BucketSource().UnwrapOr(nil)), + CloudWatchLogGroupArn: Com_amazonaws_dynamodb_ImportSummary_CloudWatchLogGroupArn_FromDafny(input.(ComAmazonawsDynamodbTypes.ImportSummary).Dtor_CloudWatchLogGroupArn().UnwrapOr(nil)), + InputFormat: Com_amazonaws_dynamodb_ImportSummary_InputFormat_FromDafny(input.(ComAmazonawsDynamodbTypes.ImportSummary).Dtor_InputFormat().UnwrapOr(nil)), + StartTime: Com_amazonaws_dynamodb_ImportSummary_StartTime_FromDafny(input.(ComAmazonawsDynamodbTypes.ImportSummary).Dtor_StartTime().UnwrapOr(nil)), + EndTime: Com_amazonaws_dynamodb_ImportSummary_EndTime_FromDafny(input.(ComAmazonawsDynamodbTypes.ImportSummary).Dtor_EndTime().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_dynamodb_ImportSummary_ImportArn_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_ImportSummary_ImportStatus_FromDafny(input interface{}) types.ImportStatus { + return func() types.ImportStatus { + var u types.ImportStatus + if input == nil { + return u + } + + inputEnum := input.(ComAmazonawsDynamodbTypes.ImportStatus) + index := -1 + for allEnums := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_ImportStatus_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(ComAmazonawsDynamodbTypes.ImportStatus).Equals(inputEnum) { + break + } + } + } + return u.Values()[index] + }() +} +func Com_amazonaws_dynamodb_ImportSummary_TableArn_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_ImportSummary_S3BucketSource_FromDafny(input interface{}) *types.S3BucketSource { + return func() *types.S3BucketSource { + if input == nil { + return nil + } + return &types.S3BucketSource{ + S3BucketOwner: Com_amazonaws_dynamodb_S3BucketSource_S3BucketOwner_FromDafny(input.(ComAmazonawsDynamodbTypes.S3BucketSource).Dtor_S3BucketOwner().UnwrapOr(nil)), + S3Bucket: Com_amazonaws_dynamodb_S3BucketSource_S3Bucket_FromDafny(input.(ComAmazonawsDynamodbTypes.S3BucketSource).Dtor_S3Bucket()), + S3KeyPrefix: Com_amazonaws_dynamodb_S3BucketSource_S3KeyPrefix_FromDafny(input.(ComAmazonawsDynamodbTypes.S3BucketSource).Dtor_S3KeyPrefix().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_dynamodb_ImportSummary_CloudWatchLogGroupArn_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_ImportSummary_InputFormat_FromDafny(input interface{}) types.InputFormat { + return func() types.InputFormat { + var u types.InputFormat + if input == nil { + return u + } + + inputEnum := input.(ComAmazonawsDynamodbTypes.InputFormat) + index := -1 + for allEnums := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_InputFormat_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(ComAmazonawsDynamodbTypes.InputFormat).Equals(inputEnum) { + break + } + } + } + return u.Values()[index] + }() +} +func Com_amazonaws_dynamodb_ImportSummary_StartTime_FromDafny(input interface{}) *time.Time { + return func() *time.Time { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + if len(s) == 0 { + panic("timestamp string is empty") + } else { + t, err := time.Parse("2006-01-02T15:04:05.999999Z", s) + if err != nil { + panic(err) + } + return &t + } + }() +} +func Com_amazonaws_dynamodb_ImportSummary_EndTime_FromDafny(input interface{}) *time.Time { + return func() *time.Time { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + if len(s) == 0 { + panic("timestamp string is empty") + } else { + t, err := time.Parse("2006-01-02T15:04:05.999999Z", s) + if err != nil { + panic(err) + } + return &t + } + }() +} +func Com_amazonaws_dynamodb_ListImportsOutput_NextToken_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_ListTablesInput_ExclusiveStartTableName_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_ListTablesInput_Limit_FromDafny(input interface{}) *int32 { + return func() *int32 { + var i int32 + if input == nil { + return nil + } + i = input.(int32) + return &i + }() +} +func Com_amazonaws_dynamodb_ListTablesOutput_TableNames_FromDafny(input interface{}) []string { + return func() []string { + var fieldValue []string + if input == nil { + return nil + } + for i := dafny.Iterate(input.(dafny.Sequence).(dafny.Sequence)); ; { + val, ok := i() + if !ok { + break + } + fieldValue = append(fieldValue, Com_amazonaws_dynamodb_TableNameList_member_FromDafny(val)) + } + return fieldValue + }() +} +func Com_amazonaws_dynamodb_TableNameList_member_FromDafny(input interface{}) string { + return func() string { + + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return s + }() +} +func Com_amazonaws_dynamodb_ListTablesOutput_LastEvaluatedTableName_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_ListTagsOfResourceInput_ResourceArn_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 Com_amazonaws_dynamodb_ListTagsOfResourceInput_NextToken_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_ListTagsOfResourceOutput_Tags_FromDafny(input interface{}) []types.Tag { + return func() []types.Tag { + var fieldValue []types.Tag + if input == nil { + return nil + } + for i := dafny.Iterate(input.(dafny.Sequence).(dafny.Sequence)); ; { + val, ok := i() + if !ok { + break + } + fieldValue = append(fieldValue, Com_amazonaws_dynamodb_TagList_member_FromDafny(val)) + } + return fieldValue + }() +} +func Com_amazonaws_dynamodb_ListTagsOfResourceOutput_NextToken_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_PutItemInput_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 Com_amazonaws_dynamodb_PutItemInput_Item_FromDafny(input interface{}) map[string]types.AttributeValue { + return func() map[string]types.AttributeValue { + var m map[string]types.AttributeValue = make(map[string]types.AttributeValue) + + for i := dafny.Iterate(input.(dafny.Map).Items()); ; { + val, ok := i() + if !ok { + break + } + m[Com_amazonaws_dynamodb_PutItemInputAttributeMap_key_FromDafny((*val.(dafny.Tuple).IndexInt(0)))] = Com_amazonaws_dynamodb_PutItemInputAttributeMap_value_FromDafny((*val.(dafny.Tuple).IndexInt(1))) + } + return m + }() +} +func Com_amazonaws_dynamodb_PutItemInput_Expected_FromDafny(input interface{}) map[string]types.ExpectedAttributeValue { + return func() map[string]types.ExpectedAttributeValue { + var m map[string]types.ExpectedAttributeValue = make(map[string]types.ExpectedAttributeValue) + if input == nil { + return nil + } + + for i := dafny.Iterate(input.(dafny.Map).Items()); ; { + val, ok := i() + if !ok { + break + } + m[Com_amazonaws_dynamodb_ExpectedAttributeMap_key_FromDafny((*val.(dafny.Tuple).IndexInt(0)))] = Com_amazonaws_dynamodb_ExpectedAttributeMap_value_FromDafny((*val.(dafny.Tuple).IndexInt(1))) + } + return m + }() +} +func Com_amazonaws_dynamodb_PutItemInput_ReturnValues_FromDafny(input interface{}) types.ReturnValue { + return func() types.ReturnValue { + var u types.ReturnValue + if input == nil { + return u + } + + inputEnum := input.(ComAmazonawsDynamodbTypes.ReturnValue) + index := -1 + for allEnums := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_ReturnValue_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(ComAmazonawsDynamodbTypes.ReturnValue).Equals(inputEnum) { + break + } + } + } + return u.Values()[index] + }() +} +func Com_amazonaws_dynamodb_PutItemInput_ReturnConsumedCapacity_FromDafny(input interface{}) types.ReturnConsumedCapacity { + return func() types.ReturnConsumedCapacity { + var u types.ReturnConsumedCapacity + if input == nil { + return u + } + + inputEnum := input.(ComAmazonawsDynamodbTypes.ReturnConsumedCapacity) + index := -1 + for allEnums := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_ReturnConsumedCapacity_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(ComAmazonawsDynamodbTypes.ReturnConsumedCapacity).Equals(inputEnum) { + break + } + } + } + return u.Values()[index] + }() +} +func Com_amazonaws_dynamodb_PutItemInput_ReturnItemCollectionMetrics_FromDafny(input interface{}) types.ReturnItemCollectionMetrics { + return func() types.ReturnItemCollectionMetrics { + var u types.ReturnItemCollectionMetrics + if input == nil { + return u + } + + inputEnum := input.(ComAmazonawsDynamodbTypes.ReturnItemCollectionMetrics) + index := -1 + for allEnums := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_ReturnItemCollectionMetrics_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(ComAmazonawsDynamodbTypes.ReturnItemCollectionMetrics).Equals(inputEnum) { + break + } + } + } + return u.Values()[index] + }() +} +func Com_amazonaws_dynamodb_PutItemInput_ConditionalOperator_FromDafny(input interface{}) types.ConditionalOperator { + return func() types.ConditionalOperator { + var u types.ConditionalOperator + if input == nil { + return u + } + + inputEnum := input.(ComAmazonawsDynamodbTypes.ConditionalOperator) + index := -1 + for allEnums := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_ConditionalOperator_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(ComAmazonawsDynamodbTypes.ConditionalOperator).Equals(inputEnum) { + break + } + } + } + return u.Values()[index] + }() +} +func Com_amazonaws_dynamodb_PutItemInput_ConditionExpression_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_PutItemInput_ExpressionAttributeNames_FromDafny(input interface{}) map[string]string { + return func() 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[Com_amazonaws_dynamodb_ExpressionAttributeNameMap_key_FromDafny((*val.(dafny.Tuple).IndexInt(0)))] = Com_amazonaws_dynamodb_ExpressionAttributeNameMap_value_FromDafny((*val.(dafny.Tuple).IndexInt(1))) + } + return m + }() +} +func Com_amazonaws_dynamodb_PutItemInput_ExpressionAttributeValues_FromDafny(input interface{}) map[string]types.AttributeValue { + return func() map[string]types.AttributeValue { + var m map[string]types.AttributeValue = make(map[string]types.AttributeValue) + if input == nil { + return nil + } + + for i := dafny.Iterate(input.(dafny.Map).Items()); ; { + val, ok := i() + if !ok { + break + } + m[Com_amazonaws_dynamodb_ExpressionAttributeValueMap_key_FromDafny((*val.(dafny.Tuple).IndexInt(0)))] = Com_amazonaws_dynamodb_ExpressionAttributeValueMap_value_FromDafny((*val.(dafny.Tuple).IndexInt(1))) + } + return m + }() +} +func Com_amazonaws_dynamodb_PutItemInput_ReturnValuesOnConditionCheckFailure_FromDafny(input interface{}) types.ReturnValuesOnConditionCheckFailure { + return func() types.ReturnValuesOnConditionCheckFailure { + var u types.ReturnValuesOnConditionCheckFailure + if input == nil { + return u + } + + inputEnum := input.(ComAmazonawsDynamodbTypes.ReturnValuesOnConditionCheckFailure) + index := -1 + for allEnums := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_ReturnValuesOnConditionCheckFailure_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(ComAmazonawsDynamodbTypes.ReturnValuesOnConditionCheckFailure).Equals(inputEnum) { + break + } + } + } + return u.Values()[index] + }() +} +func Com_amazonaws_dynamodb_PutItemOutput_Attributes_FromDafny(input interface{}) map[string]types.AttributeValue { + return func() map[string]types.AttributeValue { + var m map[string]types.AttributeValue = make(map[string]types.AttributeValue) + if input == nil { + return nil + } + + for i := dafny.Iterate(input.(dafny.Map).Items()); ; { + val, ok := i() + if !ok { + break + } + m[Com_amazonaws_dynamodb_AttributeMap_key_FromDafny((*val.(dafny.Tuple).IndexInt(0)))] = Com_amazonaws_dynamodb_AttributeMap_value_FromDafny((*val.(dafny.Tuple).IndexInt(1))) + } + return m + }() +} +func Com_amazonaws_dynamodb_PutItemOutput_ConsumedCapacity_FromDafny(input interface{}) *types.ConsumedCapacity { + return func() *types.ConsumedCapacity { + if input == nil { + return nil + } + return &types.ConsumedCapacity{ + TableName: Com_amazonaws_dynamodb_ConsumedCapacity_TableName_FromDafny(input.(ComAmazonawsDynamodbTypes.ConsumedCapacity).Dtor_TableName().UnwrapOr(nil)), + CapacityUnits: Com_amazonaws_dynamodb_ConsumedCapacity_CapacityUnits_FromDafny(input.(ComAmazonawsDynamodbTypes.ConsumedCapacity).Dtor_CapacityUnits().UnwrapOr(nil)), + ReadCapacityUnits: Com_amazonaws_dynamodb_ConsumedCapacity_ReadCapacityUnits_FromDafny(input.(ComAmazonawsDynamodbTypes.ConsumedCapacity).Dtor_ReadCapacityUnits().UnwrapOr(nil)), + WriteCapacityUnits: Com_amazonaws_dynamodb_ConsumedCapacity_WriteCapacityUnits_FromDafny(input.(ComAmazonawsDynamodbTypes.ConsumedCapacity).Dtor_WriteCapacityUnits().UnwrapOr(nil)), + Table: Com_amazonaws_dynamodb_ConsumedCapacity_Table_FromDafny(input.(ComAmazonawsDynamodbTypes.ConsumedCapacity).Dtor_Table().UnwrapOr(nil)), + LocalSecondaryIndexes: Com_amazonaws_dynamodb_ConsumedCapacity_LocalSecondaryIndexes_FromDafny(input.(ComAmazonawsDynamodbTypes.ConsumedCapacity).Dtor_LocalSecondaryIndexes().UnwrapOr(nil)), + GlobalSecondaryIndexes: Com_amazonaws_dynamodb_ConsumedCapacity_GlobalSecondaryIndexes_FromDafny(input.(ComAmazonawsDynamodbTypes.ConsumedCapacity).Dtor_GlobalSecondaryIndexes().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_dynamodb_PutItemOutput_ItemCollectionMetrics_FromDafny(input interface{}) *types.ItemCollectionMetrics { + return func() *types.ItemCollectionMetrics { + if input == nil { + return nil + } + return &types.ItemCollectionMetrics{ + ItemCollectionKey: Com_amazonaws_dynamodb_ItemCollectionMetrics_ItemCollectionKey_FromDafny(input.(ComAmazonawsDynamodbTypes.ItemCollectionMetrics).Dtor_ItemCollectionKey().UnwrapOr(nil)), + SizeEstimateRangeGB: Com_amazonaws_dynamodb_ItemCollectionMetrics_SizeEstimateRangeGB_FromDafny(input.(ComAmazonawsDynamodbTypes.ItemCollectionMetrics).Dtor_SizeEstimateRangeGB().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_dynamodb_PutResourcePolicyInput_ResourceArn_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 Com_amazonaws_dynamodb_PutResourcePolicyInput_Policy_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 Com_amazonaws_dynamodb_PutResourcePolicyInput_ExpectedRevisionId_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_PutResourcePolicyInput_ConfirmRemoveSelfResourceAccess_FromDafny(input interface{}) bool { + return func() bool { + var b bool + if input == nil { + return b + } + b = input.(bool) + return b + }() +} +func Com_amazonaws_dynamodb_PutResourcePolicyOutput_RevisionId_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_QueryInput_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 Com_amazonaws_dynamodb_QueryInput_IndexName_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_QueryInput_Select_FromDafny(input interface{}) types.Select { + return func() types.Select { + var u types.Select + if input == nil { + return u + } + + inputEnum := input.(ComAmazonawsDynamodbTypes.Select) + index := -1 + for allEnums := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_Select_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(ComAmazonawsDynamodbTypes.Select).Equals(inputEnum) { + break + } + } + } + return u.Values()[index] + }() +} +func Com_amazonaws_dynamodb_QueryInput_AttributesToGet_FromDafny(input interface{}) []string { + return func() []string { + var fieldValue []string + if input == nil { + return nil + } + for i := dafny.Iterate(input.(dafny.Sequence).(dafny.Sequence)); ; { + val, ok := i() + if !ok { + break + } + fieldValue = append(fieldValue, Com_amazonaws_dynamodb_AttributeNameList_member_FromDafny(val)) + } + return fieldValue + }() +} +func Com_amazonaws_dynamodb_QueryInput_Limit_FromDafny(input interface{}) *int32 { + return func() *int32 { + var i int32 + if input == nil { + return nil + } + i = input.(int32) + return &i + }() +} +func Com_amazonaws_dynamodb_QueryInput_ConsistentRead_FromDafny(input interface{}) *bool { + return func() *bool { + var b bool + if input == nil { + return nil + } + b = input.(bool) + return &b + }() +} +func Com_amazonaws_dynamodb_QueryInput_KeyConditions_FromDafny(input interface{}) map[string]types.Condition { + return func() map[string]types.Condition { + var m map[string]types.Condition = make(map[string]types.Condition) + if input == nil { + return nil + } + + for i := dafny.Iterate(input.(dafny.Map).Items()); ; { + val, ok := i() + if !ok { + break + } + m[Com_amazonaws_dynamodb_KeyConditions_key_FromDafny((*val.(dafny.Tuple).IndexInt(0)))] = Com_amazonaws_dynamodb_KeyConditions_value_FromDafny((*val.(dafny.Tuple).IndexInt(1))) + } + return m + }() +} +func Com_amazonaws_dynamodb_KeyConditions_key_FromDafny(input interface{}) string { + return func() string { + if input == nil { + return "" + } + a := UTF8.Encode(input.(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return s + }() +} +func Com_amazonaws_dynamodb_KeyConditions_value_FromDafny(input interface{}) types.Condition { + return func() types.Condition { + + return types.Condition{ + AttributeValueList: Com_amazonaws_dynamodb_Condition_AttributeValueList_FromDafny(input.(ComAmazonawsDynamodbTypes.Condition).Dtor_AttributeValueList().UnwrapOr(nil)), + ComparisonOperator: Com_amazonaws_dynamodb_Condition_ComparisonOperator_FromDafny(input.(ComAmazonawsDynamodbTypes.Condition).Dtor_ComparisonOperator()), + } + }() +} +func Com_amazonaws_dynamodb_Condition_AttributeValueList_FromDafny(input interface{}) []types.AttributeValue { + return func() []types.AttributeValue { + var fieldValue []types.AttributeValue + if input == nil { + return nil + } + for i := dafny.Iterate(input.(dafny.Sequence).(dafny.Sequence)); ; { + val, ok := i() + if !ok { + break + } + fieldValue = append(fieldValue, Com_amazonaws_dynamodb_AttributeValueList_member_FromDafny(val)) + } + return fieldValue + }() +} +func Com_amazonaws_dynamodb_Condition_ComparisonOperator_FromDafny(input interface{}) types.ComparisonOperator { + return func() types.ComparisonOperator { + var u types.ComparisonOperator + + inputEnum := input.(ComAmazonawsDynamodbTypes.ComparisonOperator) + index := -1 + for allEnums := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_ComparisonOperator_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(ComAmazonawsDynamodbTypes.ComparisonOperator).Equals(inputEnum) { + break + } + } + } + return u.Values()[index] + }() +} +func Com_amazonaws_dynamodb_QueryInput_QueryFilter_FromDafny(input interface{}) map[string]types.Condition { + return func() map[string]types.Condition { + var m map[string]types.Condition = make(map[string]types.Condition) + if input == nil { + return nil + } + + for i := dafny.Iterate(input.(dafny.Map).Items()); ; { + val, ok := i() + if !ok { + break + } + m[Com_amazonaws_dynamodb_FilterConditionMap_key_FromDafny((*val.(dafny.Tuple).IndexInt(0)))] = Com_amazonaws_dynamodb_FilterConditionMap_value_FromDafny((*val.(dafny.Tuple).IndexInt(1))) + } + return m + }() +} +func Com_amazonaws_dynamodb_FilterConditionMap_key_FromDafny(input interface{}) string { + return func() string { + if input == nil { + return "" + } + a := UTF8.Encode(input.(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return s + }() +} +func Com_amazonaws_dynamodb_FilterConditionMap_value_FromDafny(input interface{}) types.Condition { + return func() types.Condition { + + return types.Condition{ + AttributeValueList: Com_amazonaws_dynamodb_Condition_AttributeValueList_FromDafny(input.(ComAmazonawsDynamodbTypes.Condition).Dtor_AttributeValueList().UnwrapOr(nil)), + ComparisonOperator: Com_amazonaws_dynamodb_Condition_ComparisonOperator_FromDafny(input.(ComAmazonawsDynamodbTypes.Condition).Dtor_ComparisonOperator()), + } + }() +} +func Com_amazonaws_dynamodb_QueryInput_ConditionalOperator_FromDafny(input interface{}) types.ConditionalOperator { + return func() types.ConditionalOperator { + var u types.ConditionalOperator + if input == nil { + return u + } + + inputEnum := input.(ComAmazonawsDynamodbTypes.ConditionalOperator) + index := -1 + for allEnums := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_ConditionalOperator_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(ComAmazonawsDynamodbTypes.ConditionalOperator).Equals(inputEnum) { + break + } + } + } + return u.Values()[index] + }() +} +func Com_amazonaws_dynamodb_QueryInput_ScanIndexForward_FromDafny(input interface{}) *bool { + return func() *bool { + var b bool + if input == nil { + return nil + } + b = input.(bool) + return &b + }() +} +func Com_amazonaws_dynamodb_QueryInput_ExclusiveStartKey_FromDafny(input interface{}) map[string]types.AttributeValue { + return func() map[string]types.AttributeValue { + var m map[string]types.AttributeValue = make(map[string]types.AttributeValue) + if input == nil { + return nil + } + + for i := dafny.Iterate(input.(dafny.Map).Items()); ; { + val, ok := i() + if !ok { + break + } + m[Com_amazonaws_dynamodb_Key_key_FromDafny((*val.(dafny.Tuple).IndexInt(0)))] = Com_amazonaws_dynamodb_Key_value_FromDafny((*val.(dafny.Tuple).IndexInt(1))) + } + return m + }() +} +func Com_amazonaws_dynamodb_QueryInput_ReturnConsumedCapacity_FromDafny(input interface{}) types.ReturnConsumedCapacity { + return func() types.ReturnConsumedCapacity { + var u types.ReturnConsumedCapacity + if input == nil { + return u + } + + inputEnum := input.(ComAmazonawsDynamodbTypes.ReturnConsumedCapacity) + index := -1 + for allEnums := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_ReturnConsumedCapacity_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(ComAmazonawsDynamodbTypes.ReturnConsumedCapacity).Equals(inputEnum) { + break + } + } + } + return u.Values()[index] + }() +} +func Com_amazonaws_dynamodb_QueryInput_ProjectionExpression_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_QueryInput_FilterExpression_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_QueryInput_KeyConditionExpression_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_QueryInput_ExpressionAttributeNames_FromDafny(input interface{}) map[string]string { + return func() 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[Com_amazonaws_dynamodb_ExpressionAttributeNameMap_key_FromDafny((*val.(dafny.Tuple).IndexInt(0)))] = Com_amazonaws_dynamodb_ExpressionAttributeNameMap_value_FromDafny((*val.(dafny.Tuple).IndexInt(1))) + } + return m + }() +} +func Com_amazonaws_dynamodb_QueryInput_ExpressionAttributeValues_FromDafny(input interface{}) map[string]types.AttributeValue { + return func() map[string]types.AttributeValue { + var m map[string]types.AttributeValue = make(map[string]types.AttributeValue) + if input == nil { + return nil + } + + for i := dafny.Iterate(input.(dafny.Map).Items()); ; { + val, ok := i() + if !ok { + break + } + m[Com_amazonaws_dynamodb_ExpressionAttributeValueMap_key_FromDafny((*val.(dafny.Tuple).IndexInt(0)))] = Com_amazonaws_dynamodb_ExpressionAttributeValueMap_value_FromDafny((*val.(dafny.Tuple).IndexInt(1))) + } + return m + }() +} +func Com_amazonaws_dynamodb_QueryOutput_Items_FromDafny(input interface{}) []map[string]types.AttributeValue { + return func() []map[string]types.AttributeValue { + var fieldValue []map[string]types.AttributeValue + if input == nil { + return nil + } + for i := dafny.Iterate(input.(dafny.Sequence).(dafny.Sequence)); ; { + val, ok := i() + if !ok { + break + } + fieldValue = append(fieldValue, Com_amazonaws_dynamodb_ItemList_member_FromDafny(val)) + } + return fieldValue + }() +} +func Com_amazonaws_dynamodb_QueryOutput_Count_FromDafny(input interface{}) int32 { + return input.(int32) +} +func Com_amazonaws_dynamodb_QueryOutput_ScannedCount_FromDafny(input interface{}) int32 { + return input.(int32) +} +func Com_amazonaws_dynamodb_QueryOutput_LastEvaluatedKey_FromDafny(input interface{}) map[string]types.AttributeValue { + return func() map[string]types.AttributeValue { + var m map[string]types.AttributeValue = make(map[string]types.AttributeValue) + if input == nil { + return nil + } + + for i := dafny.Iterate(input.(dafny.Map).Items()); ; { + val, ok := i() + if !ok { + break + } + m[Com_amazonaws_dynamodb_Key_key_FromDafny((*val.(dafny.Tuple).IndexInt(0)))] = Com_amazonaws_dynamodb_Key_value_FromDafny((*val.(dafny.Tuple).IndexInt(1))) + } + return m + }() +} +func Com_amazonaws_dynamodb_QueryOutput_ConsumedCapacity_FromDafny(input interface{}) *types.ConsumedCapacity { + return func() *types.ConsumedCapacity { + if input == nil { + return nil + } + return &types.ConsumedCapacity{ + TableName: Com_amazonaws_dynamodb_ConsumedCapacity_TableName_FromDafny(input.(ComAmazonawsDynamodbTypes.ConsumedCapacity).Dtor_TableName().UnwrapOr(nil)), + CapacityUnits: Com_amazonaws_dynamodb_ConsumedCapacity_CapacityUnits_FromDafny(input.(ComAmazonawsDynamodbTypes.ConsumedCapacity).Dtor_CapacityUnits().UnwrapOr(nil)), + ReadCapacityUnits: Com_amazonaws_dynamodb_ConsumedCapacity_ReadCapacityUnits_FromDafny(input.(ComAmazonawsDynamodbTypes.ConsumedCapacity).Dtor_ReadCapacityUnits().UnwrapOr(nil)), + WriteCapacityUnits: Com_amazonaws_dynamodb_ConsumedCapacity_WriteCapacityUnits_FromDafny(input.(ComAmazonawsDynamodbTypes.ConsumedCapacity).Dtor_WriteCapacityUnits().UnwrapOr(nil)), + Table: Com_amazonaws_dynamodb_ConsumedCapacity_Table_FromDafny(input.(ComAmazonawsDynamodbTypes.ConsumedCapacity).Dtor_Table().UnwrapOr(nil)), + LocalSecondaryIndexes: Com_amazonaws_dynamodb_ConsumedCapacity_LocalSecondaryIndexes_FromDafny(input.(ComAmazonawsDynamodbTypes.ConsumedCapacity).Dtor_LocalSecondaryIndexes().UnwrapOr(nil)), + GlobalSecondaryIndexes: Com_amazonaws_dynamodb_ConsumedCapacity_GlobalSecondaryIndexes_FromDafny(input.(ComAmazonawsDynamodbTypes.ConsumedCapacity).Dtor_GlobalSecondaryIndexes().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_dynamodb_RestoreTableFromBackupInput_TargetTableName_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 Com_amazonaws_dynamodb_RestoreTableFromBackupInput_BackupArn_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 Com_amazonaws_dynamodb_RestoreTableFromBackupInput_BillingModeOverride_FromDafny(input interface{}) types.BillingMode { + return func() types.BillingMode { + var u types.BillingMode + if input == nil { + return u + } + + inputEnum := input.(ComAmazonawsDynamodbTypes.BillingMode) + index := -1 + for allEnums := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_BillingMode_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(ComAmazonawsDynamodbTypes.BillingMode).Equals(inputEnum) { + break + } + } + } + return u.Values()[index] + }() +} +func Com_amazonaws_dynamodb_RestoreTableFromBackupInput_GlobalSecondaryIndexOverride_FromDafny(input interface{}) []types.GlobalSecondaryIndex { + return func() []types.GlobalSecondaryIndex { + var fieldValue []types.GlobalSecondaryIndex + if input == nil { + return nil + } + for i := dafny.Iterate(input.(dafny.Sequence).(dafny.Sequence)); ; { + val, ok := i() + if !ok { + break + } + fieldValue = append(fieldValue, Com_amazonaws_dynamodb_GlobalSecondaryIndexList_member_FromDafny(val)) + } + return fieldValue + }() +} +func Com_amazonaws_dynamodb_RestoreTableFromBackupInput_LocalSecondaryIndexOverride_FromDafny(input interface{}) []types.LocalSecondaryIndex { + return func() []types.LocalSecondaryIndex { + var fieldValue []types.LocalSecondaryIndex + if input == nil { + return nil + } + for i := dafny.Iterate(input.(dafny.Sequence).(dafny.Sequence)); ; { + val, ok := i() + if !ok { + break + } + fieldValue = append(fieldValue, Com_amazonaws_dynamodb_LocalSecondaryIndexList_member_FromDafny(val)) + } + return fieldValue + }() +} +func Com_amazonaws_dynamodb_RestoreTableFromBackupInput_ProvisionedThroughputOverride_FromDafny(input interface{}) *types.ProvisionedThroughput { + return func() *types.ProvisionedThroughput { + if input == nil { + return nil + } + return &types.ProvisionedThroughput{ + ReadCapacityUnits: Com_amazonaws_dynamodb_ProvisionedThroughput_ReadCapacityUnits_FromDafny(input.(ComAmazonawsDynamodbTypes.ProvisionedThroughput).Dtor_ReadCapacityUnits()), + WriteCapacityUnits: Com_amazonaws_dynamodb_ProvisionedThroughput_WriteCapacityUnits_FromDafny(input.(ComAmazonawsDynamodbTypes.ProvisionedThroughput).Dtor_WriteCapacityUnits()), + } + }() +} +func Com_amazonaws_dynamodb_RestoreTableFromBackupInput_OnDemandThroughputOverride_FromDafny(input interface{}) *types.OnDemandThroughput { + return func() *types.OnDemandThroughput { + if input == nil { + return nil + } + return &types.OnDemandThroughput{ + MaxReadRequestUnits: Com_amazonaws_dynamodb_OnDemandThroughput_MaxReadRequestUnits_FromDafny(input.(ComAmazonawsDynamodbTypes.OnDemandThroughput).Dtor_MaxReadRequestUnits().UnwrapOr(nil)), + MaxWriteRequestUnits: Com_amazonaws_dynamodb_OnDemandThroughput_MaxWriteRequestUnits_FromDafny(input.(ComAmazonawsDynamodbTypes.OnDemandThroughput).Dtor_MaxWriteRequestUnits().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_dynamodb_RestoreTableFromBackupInput_SSESpecificationOverride_FromDafny(input interface{}) *types.SSESpecification { + return func() *types.SSESpecification { + if input == nil { + return nil + } + return &types.SSESpecification{ + Enabled: Com_amazonaws_dynamodb_SSESpecification_Enabled_FromDafny(input.(ComAmazonawsDynamodbTypes.SSESpecification).Dtor_Enabled().UnwrapOr(nil)), + SSEType: Com_amazonaws_dynamodb_SSESpecification_SSEType_FromDafny(input.(ComAmazonawsDynamodbTypes.SSESpecification).Dtor_SSEType().UnwrapOr(nil)), + KMSMasterKeyId: Com_amazonaws_dynamodb_SSESpecification_KMSMasterKeyId_FromDafny(input.(ComAmazonawsDynamodbTypes.SSESpecification).Dtor_KMSMasterKeyId().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_dynamodb_RestoreTableFromBackupOutput_TableDescription_FromDafny(input interface{}) *types.TableDescription { + return func() *types.TableDescription { + if input == nil { + return nil + } + return &types.TableDescription{ + AttributeDefinitions: Com_amazonaws_dynamodb_TableDescription_AttributeDefinitions_FromDafny(input.(ComAmazonawsDynamodbTypes.TableDescription).Dtor_AttributeDefinitions().UnwrapOr(nil)), + TableName: Com_amazonaws_dynamodb_TableDescription_TableName_FromDafny(input.(ComAmazonawsDynamodbTypes.TableDescription).Dtor_TableName().UnwrapOr(nil)), + KeySchema: Com_amazonaws_dynamodb_TableDescription_KeySchema_FromDafny(input.(ComAmazonawsDynamodbTypes.TableDescription).Dtor_KeySchema().UnwrapOr(nil)), + TableStatus: Com_amazonaws_dynamodb_TableDescription_TableStatus_FromDafny(input.(ComAmazonawsDynamodbTypes.TableDescription).Dtor_TableStatus().UnwrapOr(nil)), + CreationDateTime: Com_amazonaws_dynamodb_TableDescription_CreationDateTime_FromDafny(input.(ComAmazonawsDynamodbTypes.TableDescription).Dtor_CreationDateTime().UnwrapOr(nil)), + ProvisionedThroughput: Com_amazonaws_dynamodb_TableDescription_ProvisionedThroughput_FromDafny(input.(ComAmazonawsDynamodbTypes.TableDescription).Dtor_ProvisionedThroughput().UnwrapOr(nil)), + TableSizeBytes: Com_amazonaws_dynamodb_TableDescription_TableSizeBytes_FromDafny(input.(ComAmazonawsDynamodbTypes.TableDescription).Dtor_TableSizeBytes().UnwrapOr(nil)), + ItemCount: Com_amazonaws_dynamodb_TableDescription_ItemCount_FromDafny(input.(ComAmazonawsDynamodbTypes.TableDescription).Dtor_ItemCount().UnwrapOr(nil)), + TableArn: Com_amazonaws_dynamodb_TableDescription_TableArn_FromDafny(input.(ComAmazonawsDynamodbTypes.TableDescription).Dtor_TableArn().UnwrapOr(nil)), + TableId: Com_amazonaws_dynamodb_TableDescription_TableId_FromDafny(input.(ComAmazonawsDynamodbTypes.TableDescription).Dtor_TableId().UnwrapOr(nil)), + BillingModeSummary: Com_amazonaws_dynamodb_TableDescription_BillingModeSummary_FromDafny(input.(ComAmazonawsDynamodbTypes.TableDescription).Dtor_BillingModeSummary().UnwrapOr(nil)), + LocalSecondaryIndexes: Com_amazonaws_dynamodb_TableDescription_LocalSecondaryIndexes_FromDafny(input.(ComAmazonawsDynamodbTypes.TableDescription).Dtor_LocalSecondaryIndexes().UnwrapOr(nil)), + GlobalSecondaryIndexes: Com_amazonaws_dynamodb_TableDescription_GlobalSecondaryIndexes_FromDafny(input.(ComAmazonawsDynamodbTypes.TableDescription).Dtor_GlobalSecondaryIndexes().UnwrapOr(nil)), + StreamSpecification: Com_amazonaws_dynamodb_TableDescription_StreamSpecification_FromDafny(input.(ComAmazonawsDynamodbTypes.TableDescription).Dtor_StreamSpecification().UnwrapOr(nil)), + LatestStreamLabel: Com_amazonaws_dynamodb_TableDescription_LatestStreamLabel_FromDafny(input.(ComAmazonawsDynamodbTypes.TableDescription).Dtor_LatestStreamLabel().UnwrapOr(nil)), + LatestStreamArn: Com_amazonaws_dynamodb_TableDescription_LatestStreamArn_FromDafny(input.(ComAmazonawsDynamodbTypes.TableDescription).Dtor_LatestStreamArn().UnwrapOr(nil)), + GlobalTableVersion: Com_amazonaws_dynamodb_TableDescription_GlobalTableVersion_FromDafny(input.(ComAmazonawsDynamodbTypes.TableDescription).Dtor_GlobalTableVersion().UnwrapOr(nil)), + Replicas: Com_amazonaws_dynamodb_TableDescription_Replicas_FromDafny(input.(ComAmazonawsDynamodbTypes.TableDescription).Dtor_Replicas().UnwrapOr(nil)), + RestoreSummary: Com_amazonaws_dynamodb_TableDescription_RestoreSummary_FromDafny(input.(ComAmazonawsDynamodbTypes.TableDescription).Dtor_RestoreSummary().UnwrapOr(nil)), + SSEDescription: Com_amazonaws_dynamodb_TableDescription_SSEDescription_FromDafny(input.(ComAmazonawsDynamodbTypes.TableDescription).Dtor_SSEDescription().UnwrapOr(nil)), + ArchivalSummary: Com_amazonaws_dynamodb_TableDescription_ArchivalSummary_FromDafny(input.(ComAmazonawsDynamodbTypes.TableDescription).Dtor_ArchivalSummary().UnwrapOr(nil)), + TableClassSummary: Com_amazonaws_dynamodb_TableDescription_TableClassSummary_FromDafny(input.(ComAmazonawsDynamodbTypes.TableDescription).Dtor_TableClassSummary().UnwrapOr(nil)), + DeletionProtectionEnabled: Com_amazonaws_dynamodb_TableDescription_DeletionProtectionEnabled_FromDafny(input.(ComAmazonawsDynamodbTypes.TableDescription).Dtor_DeletionProtectionEnabled().UnwrapOr(nil)), + OnDemandThroughput: Com_amazonaws_dynamodb_TableDescription_OnDemandThroughput_FromDafny(input.(ComAmazonawsDynamodbTypes.TableDescription).Dtor_OnDemandThroughput().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_dynamodb_RestoreTableToPointInTimeInput_SourceTableArn_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_RestoreTableToPointInTimeInput_SourceTableName_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_RestoreTableToPointInTimeInput_TargetTableName_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 Com_amazonaws_dynamodb_RestoreTableToPointInTimeInput_UseLatestRestorableTime_FromDafny(input interface{}) *bool { + return func() *bool { + var b bool + if input == nil { + return nil + } + b = input.(bool) + return &b + }() +} +func Com_amazonaws_dynamodb_RestoreTableToPointInTimeInput_RestoreDateTime_FromDafny(input interface{}) *time.Time { + return func() *time.Time { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + if len(s) == 0 { + panic("timestamp string is empty") + } else { + t, err := time.Parse("2006-01-02T15:04:05.999999Z", s) + if err != nil { + panic(err) + } + return &t + } + }() +} +func Com_amazonaws_dynamodb_RestoreTableToPointInTimeInput_BillingModeOverride_FromDafny(input interface{}) types.BillingMode { + return func() types.BillingMode { + var u types.BillingMode + if input == nil { + return u + } + + inputEnum := input.(ComAmazonawsDynamodbTypes.BillingMode) + index := -1 + for allEnums := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_BillingMode_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(ComAmazonawsDynamodbTypes.BillingMode).Equals(inputEnum) { + break + } + } + } + return u.Values()[index] + }() +} +func Com_amazonaws_dynamodb_RestoreTableToPointInTimeInput_GlobalSecondaryIndexOverride_FromDafny(input interface{}) []types.GlobalSecondaryIndex { + return func() []types.GlobalSecondaryIndex { + var fieldValue []types.GlobalSecondaryIndex + if input == nil { + return nil + } + for i := dafny.Iterate(input.(dafny.Sequence).(dafny.Sequence)); ; { + val, ok := i() + if !ok { + break + } + fieldValue = append(fieldValue, Com_amazonaws_dynamodb_GlobalSecondaryIndexList_member_FromDafny(val)) + } + return fieldValue + }() +} +func Com_amazonaws_dynamodb_RestoreTableToPointInTimeInput_LocalSecondaryIndexOverride_FromDafny(input interface{}) []types.LocalSecondaryIndex { + return func() []types.LocalSecondaryIndex { + var fieldValue []types.LocalSecondaryIndex + if input == nil { + return nil + } + for i := dafny.Iterate(input.(dafny.Sequence).(dafny.Sequence)); ; { + val, ok := i() + if !ok { + break + } + fieldValue = append(fieldValue, Com_amazonaws_dynamodb_LocalSecondaryIndexList_member_FromDafny(val)) + } + return fieldValue + }() +} +func Com_amazonaws_dynamodb_RestoreTableToPointInTimeInput_ProvisionedThroughputOverride_FromDafny(input interface{}) *types.ProvisionedThroughput { + return func() *types.ProvisionedThroughput { + if input == nil { + return nil + } + return &types.ProvisionedThroughput{ + ReadCapacityUnits: Com_amazonaws_dynamodb_ProvisionedThroughput_ReadCapacityUnits_FromDafny(input.(ComAmazonawsDynamodbTypes.ProvisionedThroughput).Dtor_ReadCapacityUnits()), + WriteCapacityUnits: Com_amazonaws_dynamodb_ProvisionedThroughput_WriteCapacityUnits_FromDafny(input.(ComAmazonawsDynamodbTypes.ProvisionedThroughput).Dtor_WriteCapacityUnits()), + } + }() +} +func Com_amazonaws_dynamodb_RestoreTableToPointInTimeInput_OnDemandThroughputOverride_FromDafny(input interface{}) *types.OnDemandThroughput { + return func() *types.OnDemandThroughput { + if input == nil { + return nil + } + return &types.OnDemandThroughput{ + MaxReadRequestUnits: Com_amazonaws_dynamodb_OnDemandThroughput_MaxReadRequestUnits_FromDafny(input.(ComAmazonawsDynamodbTypes.OnDemandThroughput).Dtor_MaxReadRequestUnits().UnwrapOr(nil)), + MaxWriteRequestUnits: Com_amazonaws_dynamodb_OnDemandThroughput_MaxWriteRequestUnits_FromDafny(input.(ComAmazonawsDynamodbTypes.OnDemandThroughput).Dtor_MaxWriteRequestUnits().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_dynamodb_RestoreTableToPointInTimeInput_SSESpecificationOverride_FromDafny(input interface{}) *types.SSESpecification { + return func() *types.SSESpecification { + if input == nil { + return nil + } + return &types.SSESpecification{ + Enabled: Com_amazonaws_dynamodb_SSESpecification_Enabled_FromDafny(input.(ComAmazonawsDynamodbTypes.SSESpecification).Dtor_Enabled().UnwrapOr(nil)), + SSEType: Com_amazonaws_dynamodb_SSESpecification_SSEType_FromDafny(input.(ComAmazonawsDynamodbTypes.SSESpecification).Dtor_SSEType().UnwrapOr(nil)), + KMSMasterKeyId: Com_amazonaws_dynamodb_SSESpecification_KMSMasterKeyId_FromDafny(input.(ComAmazonawsDynamodbTypes.SSESpecification).Dtor_KMSMasterKeyId().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_dynamodb_RestoreTableToPointInTimeOutput_TableDescription_FromDafny(input interface{}) *types.TableDescription { + return func() *types.TableDescription { + if input == nil { + return nil + } + return &types.TableDescription{ + AttributeDefinitions: Com_amazonaws_dynamodb_TableDescription_AttributeDefinitions_FromDafny(input.(ComAmazonawsDynamodbTypes.TableDescription).Dtor_AttributeDefinitions().UnwrapOr(nil)), + TableName: Com_amazonaws_dynamodb_TableDescription_TableName_FromDafny(input.(ComAmazonawsDynamodbTypes.TableDescription).Dtor_TableName().UnwrapOr(nil)), + KeySchema: Com_amazonaws_dynamodb_TableDescription_KeySchema_FromDafny(input.(ComAmazonawsDynamodbTypes.TableDescription).Dtor_KeySchema().UnwrapOr(nil)), + TableStatus: Com_amazonaws_dynamodb_TableDescription_TableStatus_FromDafny(input.(ComAmazonawsDynamodbTypes.TableDescription).Dtor_TableStatus().UnwrapOr(nil)), + CreationDateTime: Com_amazonaws_dynamodb_TableDescription_CreationDateTime_FromDafny(input.(ComAmazonawsDynamodbTypes.TableDescription).Dtor_CreationDateTime().UnwrapOr(nil)), + ProvisionedThroughput: Com_amazonaws_dynamodb_TableDescription_ProvisionedThroughput_FromDafny(input.(ComAmazonawsDynamodbTypes.TableDescription).Dtor_ProvisionedThroughput().UnwrapOr(nil)), + TableSizeBytes: Com_amazonaws_dynamodb_TableDescription_TableSizeBytes_FromDafny(input.(ComAmazonawsDynamodbTypes.TableDescription).Dtor_TableSizeBytes().UnwrapOr(nil)), + ItemCount: Com_amazonaws_dynamodb_TableDescription_ItemCount_FromDafny(input.(ComAmazonawsDynamodbTypes.TableDescription).Dtor_ItemCount().UnwrapOr(nil)), + TableArn: Com_amazonaws_dynamodb_TableDescription_TableArn_FromDafny(input.(ComAmazonawsDynamodbTypes.TableDescription).Dtor_TableArn().UnwrapOr(nil)), + TableId: Com_amazonaws_dynamodb_TableDescription_TableId_FromDafny(input.(ComAmazonawsDynamodbTypes.TableDescription).Dtor_TableId().UnwrapOr(nil)), + BillingModeSummary: Com_amazonaws_dynamodb_TableDescription_BillingModeSummary_FromDafny(input.(ComAmazonawsDynamodbTypes.TableDescription).Dtor_BillingModeSummary().UnwrapOr(nil)), + LocalSecondaryIndexes: Com_amazonaws_dynamodb_TableDescription_LocalSecondaryIndexes_FromDafny(input.(ComAmazonawsDynamodbTypes.TableDescription).Dtor_LocalSecondaryIndexes().UnwrapOr(nil)), + GlobalSecondaryIndexes: Com_amazonaws_dynamodb_TableDescription_GlobalSecondaryIndexes_FromDafny(input.(ComAmazonawsDynamodbTypes.TableDescription).Dtor_GlobalSecondaryIndexes().UnwrapOr(nil)), + StreamSpecification: Com_amazonaws_dynamodb_TableDescription_StreamSpecification_FromDafny(input.(ComAmazonawsDynamodbTypes.TableDescription).Dtor_StreamSpecification().UnwrapOr(nil)), + LatestStreamLabel: Com_amazonaws_dynamodb_TableDescription_LatestStreamLabel_FromDafny(input.(ComAmazonawsDynamodbTypes.TableDescription).Dtor_LatestStreamLabel().UnwrapOr(nil)), + LatestStreamArn: Com_amazonaws_dynamodb_TableDescription_LatestStreamArn_FromDafny(input.(ComAmazonawsDynamodbTypes.TableDescription).Dtor_LatestStreamArn().UnwrapOr(nil)), + GlobalTableVersion: Com_amazonaws_dynamodb_TableDescription_GlobalTableVersion_FromDafny(input.(ComAmazonawsDynamodbTypes.TableDescription).Dtor_GlobalTableVersion().UnwrapOr(nil)), + Replicas: Com_amazonaws_dynamodb_TableDescription_Replicas_FromDafny(input.(ComAmazonawsDynamodbTypes.TableDescription).Dtor_Replicas().UnwrapOr(nil)), + RestoreSummary: Com_amazonaws_dynamodb_TableDescription_RestoreSummary_FromDafny(input.(ComAmazonawsDynamodbTypes.TableDescription).Dtor_RestoreSummary().UnwrapOr(nil)), + SSEDescription: Com_amazonaws_dynamodb_TableDescription_SSEDescription_FromDafny(input.(ComAmazonawsDynamodbTypes.TableDescription).Dtor_SSEDescription().UnwrapOr(nil)), + ArchivalSummary: Com_amazonaws_dynamodb_TableDescription_ArchivalSummary_FromDafny(input.(ComAmazonawsDynamodbTypes.TableDescription).Dtor_ArchivalSummary().UnwrapOr(nil)), + TableClassSummary: Com_amazonaws_dynamodb_TableDescription_TableClassSummary_FromDafny(input.(ComAmazonawsDynamodbTypes.TableDescription).Dtor_TableClassSummary().UnwrapOr(nil)), + DeletionProtectionEnabled: Com_amazonaws_dynamodb_TableDescription_DeletionProtectionEnabled_FromDafny(input.(ComAmazonawsDynamodbTypes.TableDescription).Dtor_DeletionProtectionEnabled().UnwrapOr(nil)), + OnDemandThroughput: Com_amazonaws_dynamodb_TableDescription_OnDemandThroughput_FromDafny(input.(ComAmazonawsDynamodbTypes.TableDescription).Dtor_OnDemandThroughput().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_dynamodb_ScanInput_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 Com_amazonaws_dynamodb_ScanInput_IndexName_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_ScanInput_AttributesToGet_FromDafny(input interface{}) []string { + return func() []string { + var fieldValue []string + if input == nil { + return nil + } + for i := dafny.Iterate(input.(dafny.Sequence).(dafny.Sequence)); ; { + val, ok := i() + if !ok { + break + } + fieldValue = append(fieldValue, Com_amazonaws_dynamodb_AttributeNameList_member_FromDafny(val)) + } + return fieldValue + }() +} +func Com_amazonaws_dynamodb_ScanInput_Limit_FromDafny(input interface{}) *int32 { + return func() *int32 { + var i int32 + if input == nil { + return nil + } + i = input.(int32) + return &i + }() +} +func Com_amazonaws_dynamodb_ScanInput_Select_FromDafny(input interface{}) types.Select { + return func() types.Select { + var u types.Select + if input == nil { + return u + } + + inputEnum := input.(ComAmazonawsDynamodbTypes.Select) + index := -1 + for allEnums := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_Select_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(ComAmazonawsDynamodbTypes.Select).Equals(inputEnum) { + break + } + } + } + return u.Values()[index] + }() +} +func Com_amazonaws_dynamodb_ScanInput_ScanFilter_FromDafny(input interface{}) map[string]types.Condition { + return func() map[string]types.Condition { + var m map[string]types.Condition = make(map[string]types.Condition) + if input == nil { + return nil + } + + for i := dafny.Iterate(input.(dafny.Map).Items()); ; { + val, ok := i() + if !ok { + break + } + m[Com_amazonaws_dynamodb_FilterConditionMap_key_FromDafny((*val.(dafny.Tuple).IndexInt(0)))] = Com_amazonaws_dynamodb_FilterConditionMap_value_FromDafny((*val.(dafny.Tuple).IndexInt(1))) + } + return m + }() +} +func Com_amazonaws_dynamodb_ScanInput_ConditionalOperator_FromDafny(input interface{}) types.ConditionalOperator { + return func() types.ConditionalOperator { + var u types.ConditionalOperator + if input == nil { + return u + } + + inputEnum := input.(ComAmazonawsDynamodbTypes.ConditionalOperator) + index := -1 + for allEnums := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_ConditionalOperator_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(ComAmazonawsDynamodbTypes.ConditionalOperator).Equals(inputEnum) { + break + } + } + } + return u.Values()[index] + }() +} +func Com_amazonaws_dynamodb_ScanInput_ExclusiveStartKey_FromDafny(input interface{}) map[string]types.AttributeValue { + return func() map[string]types.AttributeValue { + var m map[string]types.AttributeValue = make(map[string]types.AttributeValue) + if input == nil { + return nil + } + + for i := dafny.Iterate(input.(dafny.Map).Items()); ; { + val, ok := i() + if !ok { + break + } + m[Com_amazonaws_dynamodb_Key_key_FromDafny((*val.(dafny.Tuple).IndexInt(0)))] = Com_amazonaws_dynamodb_Key_value_FromDafny((*val.(dafny.Tuple).IndexInt(1))) + } + return m + }() +} +func Com_amazonaws_dynamodb_ScanInput_ReturnConsumedCapacity_FromDafny(input interface{}) types.ReturnConsumedCapacity { + return func() types.ReturnConsumedCapacity { + var u types.ReturnConsumedCapacity + if input == nil { + return u + } + + inputEnum := input.(ComAmazonawsDynamodbTypes.ReturnConsumedCapacity) + index := -1 + for allEnums := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_ReturnConsumedCapacity_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(ComAmazonawsDynamodbTypes.ReturnConsumedCapacity).Equals(inputEnum) { + break + } + } + } + return u.Values()[index] + }() +} +func Com_amazonaws_dynamodb_ScanInput_TotalSegments_FromDafny(input interface{}) *int32 { + return func() *int32 { + var i int32 + if input == nil { + return nil + } + i = input.(int32) + return &i + }() +} +func Com_amazonaws_dynamodb_ScanInput_Segment_FromDafny(input interface{}) *int32 { + return func() *int32 { + var i int32 + if input == nil { + return nil + } + i = input.(int32) + return &i + }() +} +func Com_amazonaws_dynamodb_ScanInput_ProjectionExpression_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_ScanInput_FilterExpression_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_ScanInput_ExpressionAttributeNames_FromDafny(input interface{}) map[string]string { + return func() 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[Com_amazonaws_dynamodb_ExpressionAttributeNameMap_key_FromDafny((*val.(dafny.Tuple).IndexInt(0)))] = Com_amazonaws_dynamodb_ExpressionAttributeNameMap_value_FromDafny((*val.(dafny.Tuple).IndexInt(1))) + } + return m + }() +} +func Com_amazonaws_dynamodb_ScanInput_ExpressionAttributeValues_FromDafny(input interface{}) map[string]types.AttributeValue { + return func() map[string]types.AttributeValue { + var m map[string]types.AttributeValue = make(map[string]types.AttributeValue) + if input == nil { + return nil + } + + for i := dafny.Iterate(input.(dafny.Map).Items()); ; { + val, ok := i() + if !ok { + break + } + m[Com_amazonaws_dynamodb_ExpressionAttributeValueMap_key_FromDafny((*val.(dafny.Tuple).IndexInt(0)))] = Com_amazonaws_dynamodb_ExpressionAttributeValueMap_value_FromDafny((*val.(dafny.Tuple).IndexInt(1))) + } + return m + }() +} +func Com_amazonaws_dynamodb_ScanInput_ConsistentRead_FromDafny(input interface{}) *bool { + return func() *bool { + var b bool + if input == nil { + return nil + } + b = input.(bool) + return &b + }() +} +func Com_amazonaws_dynamodb_ScanOutput_Items_FromDafny(input interface{}) []map[string]types.AttributeValue { + return func() []map[string]types.AttributeValue { + var fieldValue []map[string]types.AttributeValue + if input == nil { + return nil + } + for i := dafny.Iterate(input.(dafny.Sequence).(dafny.Sequence)); ; { + val, ok := i() + if !ok { + break + } + fieldValue = append(fieldValue, Com_amazonaws_dynamodb_ItemList_member_FromDafny(val)) + } + return fieldValue + }() +} +func Com_amazonaws_dynamodb_ScanOutput_Count_FromDafny(input interface{}) int32 { + return input.(int32) +} +func Com_amazonaws_dynamodb_ScanOutput_ScannedCount_FromDafny(input interface{}) int32 { + return input.(int32) +} +func Com_amazonaws_dynamodb_ScanOutput_LastEvaluatedKey_FromDafny(input interface{}) map[string]types.AttributeValue { + return func() map[string]types.AttributeValue { + var m map[string]types.AttributeValue = make(map[string]types.AttributeValue) + if input == nil { + return nil + } + + for i := dafny.Iterate(input.(dafny.Map).Items()); ; { + val, ok := i() + if !ok { + break + } + m[Com_amazonaws_dynamodb_Key_key_FromDafny((*val.(dafny.Tuple).IndexInt(0)))] = Com_amazonaws_dynamodb_Key_value_FromDafny((*val.(dafny.Tuple).IndexInt(1))) + } + return m + }() +} +func Com_amazonaws_dynamodb_ScanOutput_ConsumedCapacity_FromDafny(input interface{}) *types.ConsumedCapacity { + return func() *types.ConsumedCapacity { + if input == nil { + return nil + } + return &types.ConsumedCapacity{ + TableName: Com_amazonaws_dynamodb_ConsumedCapacity_TableName_FromDafny(input.(ComAmazonawsDynamodbTypes.ConsumedCapacity).Dtor_TableName().UnwrapOr(nil)), + CapacityUnits: Com_amazonaws_dynamodb_ConsumedCapacity_CapacityUnits_FromDafny(input.(ComAmazonawsDynamodbTypes.ConsumedCapacity).Dtor_CapacityUnits().UnwrapOr(nil)), + ReadCapacityUnits: Com_amazonaws_dynamodb_ConsumedCapacity_ReadCapacityUnits_FromDafny(input.(ComAmazonawsDynamodbTypes.ConsumedCapacity).Dtor_ReadCapacityUnits().UnwrapOr(nil)), + WriteCapacityUnits: Com_amazonaws_dynamodb_ConsumedCapacity_WriteCapacityUnits_FromDafny(input.(ComAmazonawsDynamodbTypes.ConsumedCapacity).Dtor_WriteCapacityUnits().UnwrapOr(nil)), + Table: Com_amazonaws_dynamodb_ConsumedCapacity_Table_FromDafny(input.(ComAmazonawsDynamodbTypes.ConsumedCapacity).Dtor_Table().UnwrapOr(nil)), + LocalSecondaryIndexes: Com_amazonaws_dynamodb_ConsumedCapacity_LocalSecondaryIndexes_FromDafny(input.(ComAmazonawsDynamodbTypes.ConsumedCapacity).Dtor_LocalSecondaryIndexes().UnwrapOr(nil)), + GlobalSecondaryIndexes: Com_amazonaws_dynamodb_ConsumedCapacity_GlobalSecondaryIndexes_FromDafny(input.(ComAmazonawsDynamodbTypes.ConsumedCapacity).Dtor_GlobalSecondaryIndexes().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_dynamodb_TagResourceInput_ResourceArn_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 Com_amazonaws_dynamodb_TagResourceInput_Tags_FromDafny(input interface{}) []types.Tag { + return func() []types.Tag { + var fieldValue []types.Tag + + for i := dafny.Iterate(input.(dafny.Sequence)); ; { + val, ok := i() + if !ok { + break + } + fieldValue = append(fieldValue, Com_amazonaws_dynamodb_TagList_member_FromDafny(val)) + } + return fieldValue + }() +} +func Com_amazonaws_dynamodb_TransactGetItemsInput_TransactItems_FromDafny(input interface{}) []types.TransactGetItem { + return func() []types.TransactGetItem { + var fieldValue []types.TransactGetItem + + for i := dafny.Iterate(input.(dafny.Sequence)); ; { + val, ok := i() + if !ok { + break + } + fieldValue = append(fieldValue, Com_amazonaws_dynamodb_TransactGetItemList_member_FromDafny(val)) + } + return fieldValue + }() +} +func Com_amazonaws_dynamodb_TransactGetItemList_member_FromDafny(input interface{}) types.TransactGetItem { + return func() types.TransactGetItem { + + return types.TransactGetItem{ + Get: Com_amazonaws_dynamodb_TransactGetItem_Get_FromDafny(input.(ComAmazonawsDynamodbTypes.TransactGetItem).Dtor_Get()), + } + }() +} +func Com_amazonaws_dynamodb_TransactGetItem_Get_FromDafny(input interface{}) *types.Get { + return func() *types.Get { + + return &types.Get{ + Key: Com_amazonaws_dynamodb_Get_Key_FromDafny(input.(ComAmazonawsDynamodbTypes.Get).Dtor_Key()), + TableName: Com_amazonaws_dynamodb_Get_TableName_FromDafny(input.(ComAmazonawsDynamodbTypes.Get).Dtor_TableName()), + ProjectionExpression: Com_amazonaws_dynamodb_Get_ProjectionExpression_FromDafny(input.(ComAmazonawsDynamodbTypes.Get).Dtor_ProjectionExpression().UnwrapOr(nil)), + ExpressionAttributeNames: Com_amazonaws_dynamodb_Get_ExpressionAttributeNames_FromDafny(input.(ComAmazonawsDynamodbTypes.Get).Dtor_ExpressionAttributeNames().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_dynamodb_Get_Key_FromDafny(input interface{}) map[string]types.AttributeValue { + return func() map[string]types.AttributeValue { + var m map[string]types.AttributeValue = make(map[string]types.AttributeValue) + + for i := dafny.Iterate(input.(dafny.Map).Items()); ; { + val, ok := i() + if !ok { + break + } + m[Com_amazonaws_dynamodb_Key_key_FromDafny((*val.(dafny.Tuple).IndexInt(0)))] = Com_amazonaws_dynamodb_Key_value_FromDafny((*val.(dafny.Tuple).IndexInt(1))) + } + return m + }() +} +func Com_amazonaws_dynamodb_Get_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 Com_amazonaws_dynamodb_Get_ProjectionExpression_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_Get_ExpressionAttributeNames_FromDafny(input interface{}) map[string]string { + return func() 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[Com_amazonaws_dynamodb_ExpressionAttributeNameMap_key_FromDafny((*val.(dafny.Tuple).IndexInt(0)))] = Com_amazonaws_dynamodb_ExpressionAttributeNameMap_value_FromDafny((*val.(dafny.Tuple).IndexInt(1))) + } + return m + }() +} +func Com_amazonaws_dynamodb_TransactGetItemsInput_ReturnConsumedCapacity_FromDafny(input interface{}) types.ReturnConsumedCapacity { + return func() types.ReturnConsumedCapacity { + var u types.ReturnConsumedCapacity + if input == nil { + return u + } + + inputEnum := input.(ComAmazonawsDynamodbTypes.ReturnConsumedCapacity) + index := -1 + for allEnums := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_ReturnConsumedCapacity_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(ComAmazonawsDynamodbTypes.ReturnConsumedCapacity).Equals(inputEnum) { + break + } + } + } + return u.Values()[index] + }() +} +func Com_amazonaws_dynamodb_TransactGetItemsOutput_ConsumedCapacity_FromDafny(input interface{}) []types.ConsumedCapacity { + return func() []types.ConsumedCapacity { + var fieldValue []types.ConsumedCapacity + if input == nil { + return nil + } + for i := dafny.Iterate(input.(dafny.Sequence).(dafny.Sequence)); ; { + val, ok := i() + if !ok { + break + } + fieldValue = append(fieldValue, Com_amazonaws_dynamodb_ConsumedCapacityMultiple_member_FromDafny(val)) + } + return fieldValue + }() +} +func Com_amazonaws_dynamodb_TransactGetItemsOutput_Responses_FromDafny(input interface{}) []types.ItemResponse { + return func() []types.ItemResponse { + var fieldValue []types.ItemResponse + if input == nil { + return nil + } + for i := dafny.Iterate(input.(dafny.Sequence).(dafny.Sequence)); ; { + val, ok := i() + if !ok { + break + } + fieldValue = append(fieldValue, Com_amazonaws_dynamodb_ItemResponseList_member_FromDafny(val)) + } + return fieldValue + }() +} +func Com_amazonaws_dynamodb_TransactWriteItemsInput_TransactItems_FromDafny(input interface{}) []types.TransactWriteItem { + return func() []types.TransactWriteItem { + var fieldValue []types.TransactWriteItem + + for i := dafny.Iterate(input.(dafny.Sequence)); ; { + val, ok := i() + if !ok { + break + } + fieldValue = append(fieldValue, Com_amazonaws_dynamodb_TransactWriteItemList_member_FromDafny(val)) + } + return fieldValue + }() +} +func Com_amazonaws_dynamodb_TransactWriteItemList_member_FromDafny(input interface{}) types.TransactWriteItem { + return func() types.TransactWriteItem { + + return types.TransactWriteItem{ + ConditionCheck: Com_amazonaws_dynamodb_TransactWriteItem_ConditionCheck_FromDafny(input.(ComAmazonawsDynamodbTypes.TransactWriteItem).Dtor_ConditionCheck().UnwrapOr(nil)), + Put: Com_amazonaws_dynamodb_TransactWriteItem_Put_FromDafny(input.(ComAmazonawsDynamodbTypes.TransactWriteItem).Dtor_Put().UnwrapOr(nil)), + Delete: Com_amazonaws_dynamodb_TransactWriteItem_Delete_FromDafny(input.(ComAmazonawsDynamodbTypes.TransactWriteItem).Dtor_Delete().UnwrapOr(nil)), + Update: Com_amazonaws_dynamodb_TransactWriteItem_Update_FromDafny(input.(ComAmazonawsDynamodbTypes.TransactWriteItem).Dtor_Update().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_dynamodb_TransactWriteItem_ConditionCheck_FromDafny(input interface{}) *types.ConditionCheck { + return func() *types.ConditionCheck { + if input == nil { + return nil + } + return &types.ConditionCheck{ + Key: Com_amazonaws_dynamodb_ConditionCheck_Key_FromDafny(input.(ComAmazonawsDynamodbTypes.ConditionCheck).Dtor_Key()), + TableName: Com_amazonaws_dynamodb_ConditionCheck_TableName_FromDafny(input.(ComAmazonawsDynamodbTypes.ConditionCheck).Dtor_TableName()), + ConditionExpression: Com_amazonaws_dynamodb_ConditionCheck_ConditionExpression_FromDafny(input.(ComAmazonawsDynamodbTypes.ConditionCheck).Dtor_ConditionExpression()), + ExpressionAttributeNames: Com_amazonaws_dynamodb_ConditionCheck_ExpressionAttributeNames_FromDafny(input.(ComAmazonawsDynamodbTypes.ConditionCheck).Dtor_ExpressionAttributeNames().UnwrapOr(nil)), + ExpressionAttributeValues: Com_amazonaws_dynamodb_ConditionCheck_ExpressionAttributeValues_FromDafny(input.(ComAmazonawsDynamodbTypes.ConditionCheck).Dtor_ExpressionAttributeValues().UnwrapOr(nil)), + ReturnValuesOnConditionCheckFailure: Com_amazonaws_dynamodb_ConditionCheck_ReturnValuesOnConditionCheckFailure_FromDafny(input.(ComAmazonawsDynamodbTypes.ConditionCheck).Dtor_ReturnValuesOnConditionCheckFailure().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_dynamodb_ConditionCheck_Key_FromDafny(input interface{}) map[string]types.AttributeValue { + return func() map[string]types.AttributeValue { + var m map[string]types.AttributeValue = make(map[string]types.AttributeValue) + + for i := dafny.Iterate(input.(dafny.Map).Items()); ; { + val, ok := i() + if !ok { + break + } + m[Com_amazonaws_dynamodb_Key_key_FromDafny((*val.(dafny.Tuple).IndexInt(0)))] = Com_amazonaws_dynamodb_Key_value_FromDafny((*val.(dafny.Tuple).IndexInt(1))) + } + return m + }() +} +func Com_amazonaws_dynamodb_ConditionCheck_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 Com_amazonaws_dynamodb_ConditionCheck_ConditionExpression_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 Com_amazonaws_dynamodb_ConditionCheck_ExpressionAttributeNames_FromDafny(input interface{}) map[string]string { + return func() 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[Com_amazonaws_dynamodb_ExpressionAttributeNameMap_key_FromDafny((*val.(dafny.Tuple).IndexInt(0)))] = Com_amazonaws_dynamodb_ExpressionAttributeNameMap_value_FromDafny((*val.(dafny.Tuple).IndexInt(1))) + } + return m + }() +} +func Com_amazonaws_dynamodb_ConditionCheck_ExpressionAttributeValues_FromDafny(input interface{}) map[string]types.AttributeValue { + return func() map[string]types.AttributeValue { + var m map[string]types.AttributeValue = make(map[string]types.AttributeValue) + if input == nil { + return nil + } + + for i := dafny.Iterate(input.(dafny.Map).Items()); ; { + val, ok := i() + if !ok { + break + } + m[Com_amazonaws_dynamodb_ExpressionAttributeValueMap_key_FromDafny((*val.(dafny.Tuple).IndexInt(0)))] = Com_amazonaws_dynamodb_ExpressionAttributeValueMap_value_FromDafny((*val.(dafny.Tuple).IndexInt(1))) + } + return m + }() +} +func Com_amazonaws_dynamodb_ConditionCheck_ReturnValuesOnConditionCheckFailure_FromDafny(input interface{}) types.ReturnValuesOnConditionCheckFailure { + return func() types.ReturnValuesOnConditionCheckFailure { + var u types.ReturnValuesOnConditionCheckFailure + if input == nil { + return u + } + + inputEnum := input.(ComAmazonawsDynamodbTypes.ReturnValuesOnConditionCheckFailure) + index := -1 + for allEnums := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_ReturnValuesOnConditionCheckFailure_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(ComAmazonawsDynamodbTypes.ReturnValuesOnConditionCheckFailure).Equals(inputEnum) { + break + } + } + } + return u.Values()[index] + }() +} +func Com_amazonaws_dynamodb_TransactWriteItem_Put_FromDafny(input interface{}) *types.Put { + return func() *types.Put { + if input == nil { + return nil + } + return &types.Put{ + Item: Com_amazonaws_dynamodb_Put_Item_FromDafny(input.(ComAmazonawsDynamodbTypes.Put).Dtor_Item()), + TableName: Com_amazonaws_dynamodb_Put_TableName_FromDafny(input.(ComAmazonawsDynamodbTypes.Put).Dtor_TableName()), + ConditionExpression: Com_amazonaws_dynamodb_Put_ConditionExpression_FromDafny(input.(ComAmazonawsDynamodbTypes.Put).Dtor_ConditionExpression().UnwrapOr(nil)), + ExpressionAttributeNames: Com_amazonaws_dynamodb_Put_ExpressionAttributeNames_FromDafny(input.(ComAmazonawsDynamodbTypes.Put).Dtor_ExpressionAttributeNames().UnwrapOr(nil)), + ExpressionAttributeValues: Com_amazonaws_dynamodb_Put_ExpressionAttributeValues_FromDafny(input.(ComAmazonawsDynamodbTypes.Put).Dtor_ExpressionAttributeValues().UnwrapOr(nil)), + ReturnValuesOnConditionCheckFailure: Com_amazonaws_dynamodb_Put_ReturnValuesOnConditionCheckFailure_FromDafny(input.(ComAmazonawsDynamodbTypes.Put).Dtor_ReturnValuesOnConditionCheckFailure().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_dynamodb_Put_Item_FromDafny(input interface{}) map[string]types.AttributeValue { + return func() map[string]types.AttributeValue { + var m map[string]types.AttributeValue = make(map[string]types.AttributeValue) + + for i := dafny.Iterate(input.(dafny.Map).Items()); ; { + val, ok := i() + if !ok { + break + } + m[Com_amazonaws_dynamodb_PutItemInputAttributeMap_key_FromDafny((*val.(dafny.Tuple).IndexInt(0)))] = Com_amazonaws_dynamodb_PutItemInputAttributeMap_value_FromDafny((*val.(dafny.Tuple).IndexInt(1))) + } + return m + }() +} +func Com_amazonaws_dynamodb_Put_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 Com_amazonaws_dynamodb_Put_ConditionExpression_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_Put_ExpressionAttributeNames_FromDafny(input interface{}) map[string]string { + return func() 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[Com_amazonaws_dynamodb_ExpressionAttributeNameMap_key_FromDafny((*val.(dafny.Tuple).IndexInt(0)))] = Com_amazonaws_dynamodb_ExpressionAttributeNameMap_value_FromDafny((*val.(dafny.Tuple).IndexInt(1))) + } + return m + }() +} +func Com_amazonaws_dynamodb_Put_ExpressionAttributeValues_FromDafny(input interface{}) map[string]types.AttributeValue { + return func() map[string]types.AttributeValue { + var m map[string]types.AttributeValue = make(map[string]types.AttributeValue) + if input == nil { + return nil + } + + for i := dafny.Iterate(input.(dafny.Map).Items()); ; { + val, ok := i() + if !ok { + break + } + m[Com_amazonaws_dynamodb_ExpressionAttributeValueMap_key_FromDafny((*val.(dafny.Tuple).IndexInt(0)))] = Com_amazonaws_dynamodb_ExpressionAttributeValueMap_value_FromDafny((*val.(dafny.Tuple).IndexInt(1))) + } + return m + }() +} +func Com_amazonaws_dynamodb_Put_ReturnValuesOnConditionCheckFailure_FromDafny(input interface{}) types.ReturnValuesOnConditionCheckFailure { + return func() types.ReturnValuesOnConditionCheckFailure { + var u types.ReturnValuesOnConditionCheckFailure + if input == nil { + return u + } + + inputEnum := input.(ComAmazonawsDynamodbTypes.ReturnValuesOnConditionCheckFailure) + index := -1 + for allEnums := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_ReturnValuesOnConditionCheckFailure_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(ComAmazonawsDynamodbTypes.ReturnValuesOnConditionCheckFailure).Equals(inputEnum) { + break + } + } + } + return u.Values()[index] + }() +} +func Com_amazonaws_dynamodb_TransactWriteItem_Delete_FromDafny(input interface{}) *types.Delete { + return func() *types.Delete { + if input == nil { + return nil + } + return &types.Delete{ + Key: Com_amazonaws_dynamodb_Delete_Key_FromDafny(input.(ComAmazonawsDynamodbTypes.Delete).Dtor_Key()), + TableName: Com_amazonaws_dynamodb_Delete_TableName_FromDafny(input.(ComAmazonawsDynamodbTypes.Delete).Dtor_TableName()), + ConditionExpression: Com_amazonaws_dynamodb_Delete_ConditionExpression_FromDafny(input.(ComAmazonawsDynamodbTypes.Delete).Dtor_ConditionExpression().UnwrapOr(nil)), + ExpressionAttributeNames: Com_amazonaws_dynamodb_Delete_ExpressionAttributeNames_FromDafny(input.(ComAmazonawsDynamodbTypes.Delete).Dtor_ExpressionAttributeNames().UnwrapOr(nil)), + ExpressionAttributeValues: Com_amazonaws_dynamodb_Delete_ExpressionAttributeValues_FromDafny(input.(ComAmazonawsDynamodbTypes.Delete).Dtor_ExpressionAttributeValues().UnwrapOr(nil)), + ReturnValuesOnConditionCheckFailure: Com_amazonaws_dynamodb_Delete_ReturnValuesOnConditionCheckFailure_FromDafny(input.(ComAmazonawsDynamodbTypes.Delete).Dtor_ReturnValuesOnConditionCheckFailure().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_dynamodb_Delete_Key_FromDafny(input interface{}) map[string]types.AttributeValue { + return func() map[string]types.AttributeValue { + var m map[string]types.AttributeValue = make(map[string]types.AttributeValue) + + for i := dafny.Iterate(input.(dafny.Map).Items()); ; { + val, ok := i() + if !ok { + break + } + m[Com_amazonaws_dynamodb_Key_key_FromDafny((*val.(dafny.Tuple).IndexInt(0)))] = Com_amazonaws_dynamodb_Key_value_FromDafny((*val.(dafny.Tuple).IndexInt(1))) + } + return m + }() +} +func Com_amazonaws_dynamodb_Delete_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 Com_amazonaws_dynamodb_Delete_ConditionExpression_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_Delete_ExpressionAttributeNames_FromDafny(input interface{}) map[string]string { + return func() 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[Com_amazonaws_dynamodb_ExpressionAttributeNameMap_key_FromDafny((*val.(dafny.Tuple).IndexInt(0)))] = Com_amazonaws_dynamodb_ExpressionAttributeNameMap_value_FromDafny((*val.(dafny.Tuple).IndexInt(1))) + } + return m + }() +} +func Com_amazonaws_dynamodb_Delete_ExpressionAttributeValues_FromDafny(input interface{}) map[string]types.AttributeValue { + return func() map[string]types.AttributeValue { + var m map[string]types.AttributeValue = make(map[string]types.AttributeValue) + if input == nil { + return nil + } + + for i := dafny.Iterate(input.(dafny.Map).Items()); ; { + val, ok := i() + if !ok { + break + } + m[Com_amazonaws_dynamodb_ExpressionAttributeValueMap_key_FromDafny((*val.(dafny.Tuple).IndexInt(0)))] = Com_amazonaws_dynamodb_ExpressionAttributeValueMap_value_FromDafny((*val.(dafny.Tuple).IndexInt(1))) + } + return m + }() +} +func Com_amazonaws_dynamodb_Delete_ReturnValuesOnConditionCheckFailure_FromDafny(input interface{}) types.ReturnValuesOnConditionCheckFailure { + return func() types.ReturnValuesOnConditionCheckFailure { + var u types.ReturnValuesOnConditionCheckFailure + if input == nil { + return u + } + + inputEnum := input.(ComAmazonawsDynamodbTypes.ReturnValuesOnConditionCheckFailure) + index := -1 + for allEnums := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_ReturnValuesOnConditionCheckFailure_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(ComAmazonawsDynamodbTypes.ReturnValuesOnConditionCheckFailure).Equals(inputEnum) { + break + } + } + } + return u.Values()[index] + }() +} +func Com_amazonaws_dynamodb_TransactWriteItem_Update_FromDafny(input interface{}) *types.Update { + return func() *types.Update { + if input == nil { + return nil + } + return &types.Update{ + Key: Com_amazonaws_dynamodb_Update_Key_FromDafny(input.(ComAmazonawsDynamodbTypes.Update).Dtor_Key()), + UpdateExpression: Com_amazonaws_dynamodb_Update_UpdateExpression_FromDafny(input.(ComAmazonawsDynamodbTypes.Update).Dtor_UpdateExpression()), + TableName: Com_amazonaws_dynamodb_Update_TableName_FromDafny(input.(ComAmazonawsDynamodbTypes.Update).Dtor_TableName()), + ConditionExpression: Com_amazonaws_dynamodb_Update_ConditionExpression_FromDafny(input.(ComAmazonawsDynamodbTypes.Update).Dtor_ConditionExpression().UnwrapOr(nil)), + ExpressionAttributeNames: Com_amazonaws_dynamodb_Update_ExpressionAttributeNames_FromDafny(input.(ComAmazonawsDynamodbTypes.Update).Dtor_ExpressionAttributeNames().UnwrapOr(nil)), + ExpressionAttributeValues: Com_amazonaws_dynamodb_Update_ExpressionAttributeValues_FromDafny(input.(ComAmazonawsDynamodbTypes.Update).Dtor_ExpressionAttributeValues().UnwrapOr(nil)), + ReturnValuesOnConditionCheckFailure: Com_amazonaws_dynamodb_Update_ReturnValuesOnConditionCheckFailure_FromDafny(input.(ComAmazonawsDynamodbTypes.Update).Dtor_ReturnValuesOnConditionCheckFailure().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_dynamodb_Update_Key_FromDafny(input interface{}) map[string]types.AttributeValue { + return func() map[string]types.AttributeValue { + var m map[string]types.AttributeValue = make(map[string]types.AttributeValue) + + for i := dafny.Iterate(input.(dafny.Map).Items()); ; { + val, ok := i() + if !ok { + break + } + m[Com_amazonaws_dynamodb_Key_key_FromDafny((*val.(dafny.Tuple).IndexInt(0)))] = Com_amazonaws_dynamodb_Key_value_FromDafny((*val.(dafny.Tuple).IndexInt(1))) + } + return m + }() +} +func Com_amazonaws_dynamodb_Update_UpdateExpression_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 Com_amazonaws_dynamodb_Update_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 Com_amazonaws_dynamodb_Update_ConditionExpression_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_Update_ExpressionAttributeNames_FromDafny(input interface{}) map[string]string { + return func() 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[Com_amazonaws_dynamodb_ExpressionAttributeNameMap_key_FromDafny((*val.(dafny.Tuple).IndexInt(0)))] = Com_amazonaws_dynamodb_ExpressionAttributeNameMap_value_FromDafny((*val.(dafny.Tuple).IndexInt(1))) + } + return m + }() +} +func Com_amazonaws_dynamodb_Update_ExpressionAttributeValues_FromDafny(input interface{}) map[string]types.AttributeValue { + return func() map[string]types.AttributeValue { + var m map[string]types.AttributeValue = make(map[string]types.AttributeValue) + if input == nil { + return nil + } + + for i := dafny.Iterate(input.(dafny.Map).Items()); ; { + val, ok := i() + if !ok { + break + } + m[Com_amazonaws_dynamodb_ExpressionAttributeValueMap_key_FromDafny((*val.(dafny.Tuple).IndexInt(0)))] = Com_amazonaws_dynamodb_ExpressionAttributeValueMap_value_FromDafny((*val.(dafny.Tuple).IndexInt(1))) + } + return m + }() +} +func Com_amazonaws_dynamodb_Update_ReturnValuesOnConditionCheckFailure_FromDafny(input interface{}) types.ReturnValuesOnConditionCheckFailure { + return func() types.ReturnValuesOnConditionCheckFailure { + var u types.ReturnValuesOnConditionCheckFailure + if input == nil { + return u + } + + inputEnum := input.(ComAmazonawsDynamodbTypes.ReturnValuesOnConditionCheckFailure) + index := -1 + for allEnums := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_ReturnValuesOnConditionCheckFailure_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(ComAmazonawsDynamodbTypes.ReturnValuesOnConditionCheckFailure).Equals(inputEnum) { + break + } + } + } + return u.Values()[index] + }() +} +func Com_amazonaws_dynamodb_TransactWriteItemsInput_ReturnConsumedCapacity_FromDafny(input interface{}) types.ReturnConsumedCapacity { + return func() types.ReturnConsumedCapacity { + var u types.ReturnConsumedCapacity + if input == nil { + return u + } + + inputEnum := input.(ComAmazonawsDynamodbTypes.ReturnConsumedCapacity) + index := -1 + for allEnums := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_ReturnConsumedCapacity_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(ComAmazonawsDynamodbTypes.ReturnConsumedCapacity).Equals(inputEnum) { + break + } + } + } + return u.Values()[index] + }() +} +func Com_amazonaws_dynamodb_TransactWriteItemsInput_ReturnItemCollectionMetrics_FromDafny(input interface{}) types.ReturnItemCollectionMetrics { + return func() types.ReturnItemCollectionMetrics { + var u types.ReturnItemCollectionMetrics + if input == nil { + return u + } + + inputEnum := input.(ComAmazonawsDynamodbTypes.ReturnItemCollectionMetrics) + index := -1 + for allEnums := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_ReturnItemCollectionMetrics_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(ComAmazonawsDynamodbTypes.ReturnItemCollectionMetrics).Equals(inputEnum) { + break + } + } + } + return u.Values()[index] + }() +} +func Com_amazonaws_dynamodb_TransactWriteItemsInput_ClientRequestToken_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_TransactWriteItemsOutput_ConsumedCapacity_FromDafny(input interface{}) []types.ConsumedCapacity { + return func() []types.ConsumedCapacity { + var fieldValue []types.ConsumedCapacity + if input == nil { + return nil + } + for i := dafny.Iterate(input.(dafny.Sequence).(dafny.Sequence)); ; { + val, ok := i() + if !ok { + break + } + fieldValue = append(fieldValue, Com_amazonaws_dynamodb_ConsumedCapacityMultiple_member_FromDafny(val)) + } + return fieldValue + }() +} +func Com_amazonaws_dynamodb_TransactWriteItemsOutput_ItemCollectionMetrics_FromDafny(input interface{}) map[string][]types.ItemCollectionMetrics { + return func() map[string][]types.ItemCollectionMetrics { + var m map[string][]types.ItemCollectionMetrics = make(map[string][]types.ItemCollectionMetrics) + if input == nil { + return nil + } + + for i := dafny.Iterate(input.(dafny.Map).Items()); ; { + val, ok := i() + if !ok { + break + } + m[Com_amazonaws_dynamodb_ItemCollectionMetricsPerTable_key_FromDafny((*val.(dafny.Tuple).IndexInt(0)))] = Com_amazonaws_dynamodb_ItemCollectionMetricsPerTable_value_FromDafny((*val.(dafny.Tuple).IndexInt(1))) + } + return m + }() +} +func Com_amazonaws_dynamodb_UntagResourceInput_ResourceArn_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 Com_amazonaws_dynamodb_UntagResourceInput_TagKeys_FromDafny(input interface{}) []string { + return func() []string { + var fieldValue []string + + for i := dafny.Iterate(input.(dafny.Sequence)); ; { + val, ok := i() + if !ok { + break + } + fieldValue = append(fieldValue, Com_amazonaws_dynamodb_TagKeyList_member_FromDafny(val)) + } + return fieldValue + }() +} +func Com_amazonaws_dynamodb_TagKeyList_member_FromDafny(input interface{}) string { + return func() string { + + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return s + }() +} +func Com_amazonaws_dynamodb_UpdateContinuousBackupsInput_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 Com_amazonaws_dynamodb_UpdateContinuousBackupsInput_PointInTimeRecoverySpecification_FromDafny(input interface{}) *types.PointInTimeRecoverySpecification { + return func() *types.PointInTimeRecoverySpecification { + + return &types.PointInTimeRecoverySpecification{ + PointInTimeRecoveryEnabled: Com_amazonaws_dynamodb_PointInTimeRecoverySpecification_PointInTimeRecoveryEnabled_FromDafny(input.(ComAmazonawsDynamodbTypes.PointInTimeRecoverySpecification).Dtor_PointInTimeRecoveryEnabled()), + } + }() +} +func Com_amazonaws_dynamodb_PointInTimeRecoverySpecification_PointInTimeRecoveryEnabled_FromDafny(input interface{}) *bool { + return func() *bool { + var b bool + + b = input.(bool) + return &b + }() +} +func Com_amazonaws_dynamodb_UpdateContinuousBackupsOutput_ContinuousBackupsDescription_FromDafny(input interface{}) *types.ContinuousBackupsDescription { + return func() *types.ContinuousBackupsDescription { + if input == nil { + return nil + } + return &types.ContinuousBackupsDescription{ + ContinuousBackupsStatus: Com_amazonaws_dynamodb_ContinuousBackupsDescription_ContinuousBackupsStatus_FromDafny(input.(ComAmazonawsDynamodbTypes.ContinuousBackupsDescription).Dtor_ContinuousBackupsStatus()), + PointInTimeRecoveryDescription: Com_amazonaws_dynamodb_ContinuousBackupsDescription_PointInTimeRecoveryDescription_FromDafny(input.(ComAmazonawsDynamodbTypes.ContinuousBackupsDescription).Dtor_PointInTimeRecoveryDescription().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_dynamodb_UpdateContributorInsightsInput_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 Com_amazonaws_dynamodb_UpdateContributorInsightsInput_IndexName_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_UpdateContributorInsightsInput_ContributorInsightsAction_FromDafny(input interface{}) types.ContributorInsightsAction { + return func() types.ContributorInsightsAction { + var u types.ContributorInsightsAction + + inputEnum := input.(ComAmazonawsDynamodbTypes.ContributorInsightsAction) + index := -1 + for allEnums := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_ContributorInsightsAction_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(ComAmazonawsDynamodbTypes.ContributorInsightsAction).Equals(inputEnum) { + break + } + } + } + return u.Values()[index] + }() +} +func Com_amazonaws_dynamodb_UpdateContributorInsightsOutput_TableName_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_UpdateContributorInsightsOutput_IndexName_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_UpdateContributorInsightsOutput_ContributorInsightsStatus_FromDafny(input interface{}) types.ContributorInsightsStatus { + return func() types.ContributorInsightsStatus { + var u types.ContributorInsightsStatus + if input == nil { + return u + } + + inputEnum := input.(ComAmazonawsDynamodbTypes.ContributorInsightsStatus) + index := -1 + for allEnums := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_ContributorInsightsStatus_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(ComAmazonawsDynamodbTypes.ContributorInsightsStatus).Equals(inputEnum) { + break + } + } + } + return u.Values()[index] + }() +} +func Com_amazonaws_dynamodb_UpdateGlobalTableInput_GlobalTableName_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 Com_amazonaws_dynamodb_UpdateGlobalTableInput_ReplicaUpdates_FromDafny(input interface{}) []types.ReplicaUpdate { + return func() []types.ReplicaUpdate { + var fieldValue []types.ReplicaUpdate + + for i := dafny.Iterate(input.(dafny.Sequence)); ; { + val, ok := i() + if !ok { + break + } + fieldValue = append(fieldValue, Com_amazonaws_dynamodb_ReplicaUpdateList_member_FromDafny(val)) + } + return fieldValue + }() +} +func Com_amazonaws_dynamodb_ReplicaUpdateList_member_FromDafny(input interface{}) types.ReplicaUpdate { + return func() types.ReplicaUpdate { + + return types.ReplicaUpdate{ + Create: Com_amazonaws_dynamodb_ReplicaUpdate_Create_FromDafny(input.(ComAmazonawsDynamodbTypes.ReplicaUpdate).Dtor_Create().UnwrapOr(nil)), + Delete: Com_amazonaws_dynamodb_ReplicaUpdate_Delete_FromDafny(input.(ComAmazonawsDynamodbTypes.ReplicaUpdate).Dtor_Delete().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_dynamodb_ReplicaUpdate_Create_FromDafny(input interface{}) *types.CreateReplicaAction { + return func() *types.CreateReplicaAction { + if input == nil { + return nil + } + return &types.CreateReplicaAction{ + RegionName: Com_amazonaws_dynamodb_CreateReplicaAction_RegionName_FromDafny(input.(ComAmazonawsDynamodbTypes.CreateReplicaAction).Dtor_RegionName()), + } + }() +} +func Com_amazonaws_dynamodb_CreateReplicaAction_RegionName_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 Com_amazonaws_dynamodb_ReplicaUpdate_Delete_FromDafny(input interface{}) *types.DeleteReplicaAction { + return func() *types.DeleteReplicaAction { + if input == nil { + return nil + } + return &types.DeleteReplicaAction{ + RegionName: Com_amazonaws_dynamodb_DeleteReplicaAction_RegionName_FromDafny(input.(ComAmazonawsDynamodbTypes.DeleteReplicaAction).Dtor_RegionName()), + } + }() +} +func Com_amazonaws_dynamodb_DeleteReplicaAction_RegionName_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 Com_amazonaws_dynamodb_UpdateGlobalTableOutput_GlobalTableDescription_FromDafny(input interface{}) *types.GlobalTableDescription { + return func() *types.GlobalTableDescription { + if input == nil { + return nil + } + return &types.GlobalTableDescription{ + ReplicationGroup: Com_amazonaws_dynamodb_GlobalTableDescription_ReplicationGroup_FromDafny(input.(ComAmazonawsDynamodbTypes.GlobalTableDescription).Dtor_ReplicationGroup().UnwrapOr(nil)), + GlobalTableArn: Com_amazonaws_dynamodb_GlobalTableDescription_GlobalTableArn_FromDafny(input.(ComAmazonawsDynamodbTypes.GlobalTableDescription).Dtor_GlobalTableArn().UnwrapOr(nil)), + CreationDateTime: Com_amazonaws_dynamodb_GlobalTableDescription_CreationDateTime_FromDafny(input.(ComAmazonawsDynamodbTypes.GlobalTableDescription).Dtor_CreationDateTime().UnwrapOr(nil)), + GlobalTableStatus: Com_amazonaws_dynamodb_GlobalTableDescription_GlobalTableStatus_FromDafny(input.(ComAmazonawsDynamodbTypes.GlobalTableDescription).Dtor_GlobalTableStatus().UnwrapOr(nil)), + GlobalTableName: Com_amazonaws_dynamodb_GlobalTableDescription_GlobalTableName_FromDafny(input.(ComAmazonawsDynamodbTypes.GlobalTableDescription).Dtor_GlobalTableName().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_dynamodb_UpdateGlobalTableSettingsInput_GlobalTableName_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 Com_amazonaws_dynamodb_UpdateGlobalTableSettingsInput_GlobalTableBillingMode_FromDafny(input interface{}) types.BillingMode { + return func() types.BillingMode { + var u types.BillingMode + if input == nil { + return u + } + + inputEnum := input.(ComAmazonawsDynamodbTypes.BillingMode) + index := -1 + for allEnums := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_BillingMode_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(ComAmazonawsDynamodbTypes.BillingMode).Equals(inputEnum) { + break + } + } + } + return u.Values()[index] + }() +} +func Com_amazonaws_dynamodb_UpdateGlobalTableSettingsInput_GlobalTableProvisionedWriteCapacityUnits_FromDafny(input interface{}) *int64 { + return func() *int64 { + var i int64 + if input == nil { + return nil + } + i = input.(int64) + return &i + }() +} +func Com_amazonaws_dynamodb_UpdateGlobalTableSettingsInput_GlobalTableProvisionedWriteCapacityAutoScalingSettingsUpdate_FromDafny(input interface{}) *types.AutoScalingSettingsUpdate { + return func() *types.AutoScalingSettingsUpdate { + if input == nil { + return nil + } + return &types.AutoScalingSettingsUpdate{ + MinimumUnits: Com_amazonaws_dynamodb_AutoScalingSettingsUpdate_MinimumUnits_FromDafny(input.(ComAmazonawsDynamodbTypes.AutoScalingSettingsUpdate).Dtor_MinimumUnits().UnwrapOr(nil)), + MaximumUnits: Com_amazonaws_dynamodb_AutoScalingSettingsUpdate_MaximumUnits_FromDafny(input.(ComAmazonawsDynamodbTypes.AutoScalingSettingsUpdate).Dtor_MaximumUnits().UnwrapOr(nil)), + AutoScalingDisabled: Com_amazonaws_dynamodb_AutoScalingSettingsUpdate_AutoScalingDisabled_FromDafny(input.(ComAmazonawsDynamodbTypes.AutoScalingSettingsUpdate).Dtor_AutoScalingDisabled().UnwrapOr(nil)), + AutoScalingRoleArn: Com_amazonaws_dynamodb_AutoScalingSettingsUpdate_AutoScalingRoleArn_FromDafny(input.(ComAmazonawsDynamodbTypes.AutoScalingSettingsUpdate).Dtor_AutoScalingRoleArn().UnwrapOr(nil)), + ScalingPolicyUpdate: Com_amazonaws_dynamodb_AutoScalingSettingsUpdate_ScalingPolicyUpdate_FromDafny(input.(ComAmazonawsDynamodbTypes.AutoScalingSettingsUpdate).Dtor_ScalingPolicyUpdate().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_dynamodb_AutoScalingSettingsUpdate_MinimumUnits_FromDafny(input interface{}) *int64 { + return func() *int64 { + var i int64 + if input == nil { + return nil + } + i = input.(int64) + return &i + }() +} +func Com_amazonaws_dynamodb_AutoScalingSettingsUpdate_MaximumUnits_FromDafny(input interface{}) *int64 { + return func() *int64 { + var i int64 + if input == nil { + return nil + } + i = input.(int64) + return &i + }() +} +func Com_amazonaws_dynamodb_AutoScalingSettingsUpdate_AutoScalingDisabled_FromDafny(input interface{}) *bool { + return func() *bool { + var b bool + if input == nil { + return nil + } + b = input.(bool) + return &b + }() +} +func Com_amazonaws_dynamodb_AutoScalingSettingsUpdate_AutoScalingRoleArn_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_AutoScalingSettingsUpdate_ScalingPolicyUpdate_FromDafny(input interface{}) *types.AutoScalingPolicyUpdate { + return func() *types.AutoScalingPolicyUpdate { + if input == nil { + return nil + } + return &types.AutoScalingPolicyUpdate{ + PolicyName: Com_amazonaws_dynamodb_AutoScalingPolicyUpdate_PolicyName_FromDafny(input.(ComAmazonawsDynamodbTypes.AutoScalingPolicyUpdate).Dtor_PolicyName().UnwrapOr(nil)), + TargetTrackingScalingPolicyConfiguration: Com_amazonaws_dynamodb_AutoScalingPolicyUpdate_TargetTrackingScalingPolicyConfiguration_FromDafny(input.(ComAmazonawsDynamodbTypes.AutoScalingPolicyUpdate).Dtor_TargetTrackingScalingPolicyConfiguration()), + } + }() +} +func Com_amazonaws_dynamodb_AutoScalingPolicyUpdate_PolicyName_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_AutoScalingPolicyUpdate_TargetTrackingScalingPolicyConfiguration_FromDafny(input interface{}) *types.AutoScalingTargetTrackingScalingPolicyConfigurationUpdate { + return func() *types.AutoScalingTargetTrackingScalingPolicyConfigurationUpdate { + + return &types.AutoScalingTargetTrackingScalingPolicyConfigurationUpdate{ + DisableScaleIn: Com_amazonaws_dynamodb_AutoScalingTargetTrackingScalingPolicyConfigurationUpdate_DisableScaleIn_FromDafny(input.(ComAmazonawsDynamodbTypes.AutoScalingTargetTrackingScalingPolicyConfigurationUpdate).Dtor_DisableScaleIn().UnwrapOr(nil)), + ScaleInCooldown: Com_amazonaws_dynamodb_AutoScalingTargetTrackingScalingPolicyConfigurationUpdate_ScaleInCooldown_FromDafny(input.(ComAmazonawsDynamodbTypes.AutoScalingTargetTrackingScalingPolicyConfigurationUpdate).Dtor_ScaleInCooldown().UnwrapOr(nil)), + ScaleOutCooldown: Com_amazonaws_dynamodb_AutoScalingTargetTrackingScalingPolicyConfigurationUpdate_ScaleOutCooldown_FromDafny(input.(ComAmazonawsDynamodbTypes.AutoScalingTargetTrackingScalingPolicyConfigurationUpdate).Dtor_ScaleOutCooldown().UnwrapOr(nil)), + TargetValue: Com_amazonaws_dynamodb_AutoScalingTargetTrackingScalingPolicyConfigurationUpdate_TargetValue_FromDafny(input.(ComAmazonawsDynamodbTypes.AutoScalingTargetTrackingScalingPolicyConfigurationUpdate).Dtor_TargetValue()), + } + }() +} +func Com_amazonaws_dynamodb_AutoScalingTargetTrackingScalingPolicyConfigurationUpdate_DisableScaleIn_FromDafny(input interface{}) *bool { + return func() *bool { + var b bool + if input == nil { + return nil + } + b = input.(bool) + return &b + }() +} +func Com_amazonaws_dynamodb_AutoScalingTargetTrackingScalingPolicyConfigurationUpdate_ScaleInCooldown_FromDafny(input interface{}) *int32 { + return func() *int32 { + var i int32 + if input == nil { + return nil + } + i = input.(int32) + return &i + }() +} +func Com_amazonaws_dynamodb_AutoScalingTargetTrackingScalingPolicyConfigurationUpdate_ScaleOutCooldown_FromDafny(input interface{}) *int32 { + return func() *int32 { + var i int32 + if input == nil { + return nil + } + i = input.(int32) + return &i + }() +} +func Com_amazonaws_dynamodb_AutoScalingTargetTrackingScalingPolicyConfigurationUpdate_TargetValue_FromDafny(input interface{}) *float64 { + return func() *float64 { + var b []byte + + for i := dafny.Iterate(input); ; { + val, ok := i() + if !ok { + return &[]float64{math.Float64frombits(binary.LittleEndian.Uint64(b))}[0] + } else { + b = append(b, val.(byte)) + } + } + }() +} +func Com_amazonaws_dynamodb_UpdateGlobalTableSettingsInput_GlobalTableGlobalSecondaryIndexSettingsUpdate_FromDafny(input interface{}) []types.GlobalTableGlobalSecondaryIndexSettingsUpdate { + return func() []types.GlobalTableGlobalSecondaryIndexSettingsUpdate { + var fieldValue []types.GlobalTableGlobalSecondaryIndexSettingsUpdate + if input == nil { + return nil + } + for i := dafny.Iterate(input.(dafny.Sequence).(dafny.Sequence)); ; { + val, ok := i() + if !ok { + break + } + fieldValue = append(fieldValue, Com_amazonaws_dynamodb_GlobalTableGlobalSecondaryIndexSettingsUpdateList_member_FromDafny(val)) + } + return fieldValue + }() +} +func Com_amazonaws_dynamodb_GlobalTableGlobalSecondaryIndexSettingsUpdateList_member_FromDafny(input interface{}) types.GlobalTableGlobalSecondaryIndexSettingsUpdate { + return func() types.GlobalTableGlobalSecondaryIndexSettingsUpdate { + + return types.GlobalTableGlobalSecondaryIndexSettingsUpdate{ + IndexName: Com_amazonaws_dynamodb_GlobalTableGlobalSecondaryIndexSettingsUpdate_IndexName_FromDafny(input.(ComAmazonawsDynamodbTypes.GlobalTableGlobalSecondaryIndexSettingsUpdate).Dtor_IndexName()), + ProvisionedWriteCapacityUnits: Com_amazonaws_dynamodb_GlobalTableGlobalSecondaryIndexSettingsUpdate_ProvisionedWriteCapacityUnits_FromDafny(input.(ComAmazonawsDynamodbTypes.GlobalTableGlobalSecondaryIndexSettingsUpdate).Dtor_ProvisionedWriteCapacityUnits().UnwrapOr(nil)), + ProvisionedWriteCapacityAutoScalingSettingsUpdate: Com_amazonaws_dynamodb_GlobalTableGlobalSecondaryIndexSettingsUpdate_ProvisionedWriteCapacityAutoScalingSettingsUpdate_FromDafny(input.(ComAmazonawsDynamodbTypes.GlobalTableGlobalSecondaryIndexSettingsUpdate).Dtor_ProvisionedWriteCapacityAutoScalingSettingsUpdate().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_dynamodb_GlobalTableGlobalSecondaryIndexSettingsUpdate_IndexName_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 Com_amazonaws_dynamodb_GlobalTableGlobalSecondaryIndexSettingsUpdate_ProvisionedWriteCapacityUnits_FromDafny(input interface{}) *int64 { + return func() *int64 { + var i int64 + if input == nil { + return nil + } + i = input.(int64) + return &i + }() +} +func Com_amazonaws_dynamodb_GlobalTableGlobalSecondaryIndexSettingsUpdate_ProvisionedWriteCapacityAutoScalingSettingsUpdate_FromDafny(input interface{}) *types.AutoScalingSettingsUpdate { + return func() *types.AutoScalingSettingsUpdate { + if input == nil { + return nil + } + return &types.AutoScalingSettingsUpdate{ + MinimumUnits: Com_amazonaws_dynamodb_AutoScalingSettingsUpdate_MinimumUnits_FromDafny(input.(ComAmazonawsDynamodbTypes.AutoScalingSettingsUpdate).Dtor_MinimumUnits().UnwrapOr(nil)), + MaximumUnits: Com_amazonaws_dynamodb_AutoScalingSettingsUpdate_MaximumUnits_FromDafny(input.(ComAmazonawsDynamodbTypes.AutoScalingSettingsUpdate).Dtor_MaximumUnits().UnwrapOr(nil)), + AutoScalingDisabled: Com_amazonaws_dynamodb_AutoScalingSettingsUpdate_AutoScalingDisabled_FromDafny(input.(ComAmazonawsDynamodbTypes.AutoScalingSettingsUpdate).Dtor_AutoScalingDisabled().UnwrapOr(nil)), + AutoScalingRoleArn: Com_amazonaws_dynamodb_AutoScalingSettingsUpdate_AutoScalingRoleArn_FromDafny(input.(ComAmazonawsDynamodbTypes.AutoScalingSettingsUpdate).Dtor_AutoScalingRoleArn().UnwrapOr(nil)), + ScalingPolicyUpdate: Com_amazonaws_dynamodb_AutoScalingSettingsUpdate_ScalingPolicyUpdate_FromDafny(input.(ComAmazonawsDynamodbTypes.AutoScalingSettingsUpdate).Dtor_ScalingPolicyUpdate().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_dynamodb_UpdateGlobalTableSettingsInput_ReplicaSettingsUpdate_FromDafny(input interface{}) []types.ReplicaSettingsUpdate { + return func() []types.ReplicaSettingsUpdate { + var fieldValue []types.ReplicaSettingsUpdate + if input == nil { + return nil + } + for i := dafny.Iterate(input.(dafny.Sequence).(dafny.Sequence)); ; { + val, ok := i() + if !ok { + break + } + fieldValue = append(fieldValue, Com_amazonaws_dynamodb_ReplicaSettingsUpdateList_member_FromDafny(val)) + } + return fieldValue + }() +} +func Com_amazonaws_dynamodb_ReplicaSettingsUpdateList_member_FromDafny(input interface{}) types.ReplicaSettingsUpdate { + return func() types.ReplicaSettingsUpdate { + + return types.ReplicaSettingsUpdate{ + RegionName: Com_amazonaws_dynamodb_ReplicaSettingsUpdate_RegionName_FromDafny(input.(ComAmazonawsDynamodbTypes.ReplicaSettingsUpdate).Dtor_RegionName()), + ReplicaProvisionedReadCapacityUnits: Com_amazonaws_dynamodb_ReplicaSettingsUpdate_ReplicaProvisionedReadCapacityUnits_FromDafny(input.(ComAmazonawsDynamodbTypes.ReplicaSettingsUpdate).Dtor_ReplicaProvisionedReadCapacityUnits().UnwrapOr(nil)), + ReplicaProvisionedReadCapacityAutoScalingSettingsUpdate: Com_amazonaws_dynamodb_ReplicaSettingsUpdate_ReplicaProvisionedReadCapacityAutoScalingSettingsUpdate_FromDafny(input.(ComAmazonawsDynamodbTypes.ReplicaSettingsUpdate).Dtor_ReplicaProvisionedReadCapacityAutoScalingSettingsUpdate().UnwrapOr(nil)), + ReplicaGlobalSecondaryIndexSettingsUpdate: Com_amazonaws_dynamodb_ReplicaSettingsUpdate_ReplicaGlobalSecondaryIndexSettingsUpdate_FromDafny(input.(ComAmazonawsDynamodbTypes.ReplicaSettingsUpdate).Dtor_ReplicaGlobalSecondaryIndexSettingsUpdate().UnwrapOr(nil)), + ReplicaTableClass: Com_amazonaws_dynamodb_ReplicaSettingsUpdate_ReplicaTableClass_FromDafny(input.(ComAmazonawsDynamodbTypes.ReplicaSettingsUpdate).Dtor_ReplicaTableClass().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_dynamodb_ReplicaSettingsUpdate_RegionName_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 Com_amazonaws_dynamodb_ReplicaSettingsUpdate_ReplicaProvisionedReadCapacityUnits_FromDafny(input interface{}) *int64 { + return func() *int64 { + var i int64 + if input == nil { + return nil + } + i = input.(int64) + return &i + }() +} +func Com_amazonaws_dynamodb_ReplicaSettingsUpdate_ReplicaProvisionedReadCapacityAutoScalingSettingsUpdate_FromDafny(input interface{}) *types.AutoScalingSettingsUpdate { + return func() *types.AutoScalingSettingsUpdate { + if input == nil { + return nil + } + return &types.AutoScalingSettingsUpdate{ + MinimumUnits: Com_amazonaws_dynamodb_AutoScalingSettingsUpdate_MinimumUnits_FromDafny(input.(ComAmazonawsDynamodbTypes.AutoScalingSettingsUpdate).Dtor_MinimumUnits().UnwrapOr(nil)), + MaximumUnits: Com_amazonaws_dynamodb_AutoScalingSettingsUpdate_MaximumUnits_FromDafny(input.(ComAmazonawsDynamodbTypes.AutoScalingSettingsUpdate).Dtor_MaximumUnits().UnwrapOr(nil)), + AutoScalingDisabled: Com_amazonaws_dynamodb_AutoScalingSettingsUpdate_AutoScalingDisabled_FromDafny(input.(ComAmazonawsDynamodbTypes.AutoScalingSettingsUpdate).Dtor_AutoScalingDisabled().UnwrapOr(nil)), + AutoScalingRoleArn: Com_amazonaws_dynamodb_AutoScalingSettingsUpdate_AutoScalingRoleArn_FromDafny(input.(ComAmazonawsDynamodbTypes.AutoScalingSettingsUpdate).Dtor_AutoScalingRoleArn().UnwrapOr(nil)), + ScalingPolicyUpdate: Com_amazonaws_dynamodb_AutoScalingSettingsUpdate_ScalingPolicyUpdate_FromDafny(input.(ComAmazonawsDynamodbTypes.AutoScalingSettingsUpdate).Dtor_ScalingPolicyUpdate().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_dynamodb_ReplicaSettingsUpdate_ReplicaGlobalSecondaryIndexSettingsUpdate_FromDafny(input interface{}) []types.ReplicaGlobalSecondaryIndexSettingsUpdate { + return func() []types.ReplicaGlobalSecondaryIndexSettingsUpdate { + var fieldValue []types.ReplicaGlobalSecondaryIndexSettingsUpdate + if input == nil { + return nil + } + for i := dafny.Iterate(input.(dafny.Sequence).(dafny.Sequence)); ; { + val, ok := i() + if !ok { + break + } + fieldValue = append(fieldValue, Com_amazonaws_dynamodb_ReplicaGlobalSecondaryIndexSettingsUpdateList_member_FromDafny(val)) + } + return fieldValue + }() +} +func Com_amazonaws_dynamodb_ReplicaGlobalSecondaryIndexSettingsUpdateList_member_FromDafny(input interface{}) types.ReplicaGlobalSecondaryIndexSettingsUpdate { + return func() types.ReplicaGlobalSecondaryIndexSettingsUpdate { + + return types.ReplicaGlobalSecondaryIndexSettingsUpdate{ + IndexName: Com_amazonaws_dynamodb_ReplicaGlobalSecondaryIndexSettingsUpdate_IndexName_FromDafny(input.(ComAmazonawsDynamodbTypes.ReplicaGlobalSecondaryIndexSettingsUpdate).Dtor_IndexName()), + ProvisionedReadCapacityUnits: Com_amazonaws_dynamodb_ReplicaGlobalSecondaryIndexSettingsUpdate_ProvisionedReadCapacityUnits_FromDafny(input.(ComAmazonawsDynamodbTypes.ReplicaGlobalSecondaryIndexSettingsUpdate).Dtor_ProvisionedReadCapacityUnits().UnwrapOr(nil)), + ProvisionedReadCapacityAutoScalingSettingsUpdate: Com_amazonaws_dynamodb_ReplicaGlobalSecondaryIndexSettingsUpdate_ProvisionedReadCapacityAutoScalingSettingsUpdate_FromDafny(input.(ComAmazonawsDynamodbTypes.ReplicaGlobalSecondaryIndexSettingsUpdate).Dtor_ProvisionedReadCapacityAutoScalingSettingsUpdate().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_dynamodb_ReplicaGlobalSecondaryIndexSettingsUpdate_IndexName_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 Com_amazonaws_dynamodb_ReplicaGlobalSecondaryIndexSettingsUpdate_ProvisionedReadCapacityUnits_FromDafny(input interface{}) *int64 { + return func() *int64 { + var i int64 + if input == nil { + return nil + } + i = input.(int64) + return &i + }() +} +func Com_amazonaws_dynamodb_ReplicaGlobalSecondaryIndexSettingsUpdate_ProvisionedReadCapacityAutoScalingSettingsUpdate_FromDafny(input interface{}) *types.AutoScalingSettingsUpdate { + return func() *types.AutoScalingSettingsUpdate { + if input == nil { + return nil + } + return &types.AutoScalingSettingsUpdate{ + MinimumUnits: Com_amazonaws_dynamodb_AutoScalingSettingsUpdate_MinimumUnits_FromDafny(input.(ComAmazonawsDynamodbTypes.AutoScalingSettingsUpdate).Dtor_MinimumUnits().UnwrapOr(nil)), + MaximumUnits: Com_amazonaws_dynamodb_AutoScalingSettingsUpdate_MaximumUnits_FromDafny(input.(ComAmazonawsDynamodbTypes.AutoScalingSettingsUpdate).Dtor_MaximumUnits().UnwrapOr(nil)), + AutoScalingDisabled: Com_amazonaws_dynamodb_AutoScalingSettingsUpdate_AutoScalingDisabled_FromDafny(input.(ComAmazonawsDynamodbTypes.AutoScalingSettingsUpdate).Dtor_AutoScalingDisabled().UnwrapOr(nil)), + AutoScalingRoleArn: Com_amazonaws_dynamodb_AutoScalingSettingsUpdate_AutoScalingRoleArn_FromDafny(input.(ComAmazonawsDynamodbTypes.AutoScalingSettingsUpdate).Dtor_AutoScalingRoleArn().UnwrapOr(nil)), + ScalingPolicyUpdate: Com_amazonaws_dynamodb_AutoScalingSettingsUpdate_ScalingPolicyUpdate_FromDafny(input.(ComAmazonawsDynamodbTypes.AutoScalingSettingsUpdate).Dtor_ScalingPolicyUpdate().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_dynamodb_ReplicaSettingsUpdate_ReplicaTableClass_FromDafny(input interface{}) types.TableClass { + return func() types.TableClass { + var u types.TableClass + if input == nil { + return u + } + + inputEnum := input.(ComAmazonawsDynamodbTypes.TableClass) + index := -1 + for allEnums := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_TableClass_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(ComAmazonawsDynamodbTypes.TableClass).Equals(inputEnum) { + break + } + } + } + return u.Values()[index] + }() +} +func Com_amazonaws_dynamodb_UpdateGlobalTableSettingsOutput_GlobalTableName_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_UpdateGlobalTableSettingsOutput_ReplicaSettings_FromDafny(input interface{}) []types.ReplicaSettingsDescription { + return func() []types.ReplicaSettingsDescription { + var fieldValue []types.ReplicaSettingsDescription + if input == nil { + return nil + } + for i := dafny.Iterate(input.(dafny.Sequence).(dafny.Sequence)); ; { + val, ok := i() + if !ok { + break + } + fieldValue = append(fieldValue, Com_amazonaws_dynamodb_ReplicaSettingsDescriptionList_member_FromDafny(val)) + } + return fieldValue + }() +} +func Com_amazonaws_dynamodb_UpdateItemInput_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 Com_amazonaws_dynamodb_UpdateItemInput_Key_FromDafny(input interface{}) map[string]types.AttributeValue { + return func() map[string]types.AttributeValue { + var m map[string]types.AttributeValue = make(map[string]types.AttributeValue) + + for i := dafny.Iterate(input.(dafny.Map).Items()); ; { + val, ok := i() + if !ok { + break + } + m[Com_amazonaws_dynamodb_Key_key_FromDafny((*val.(dafny.Tuple).IndexInt(0)))] = Com_amazonaws_dynamodb_Key_value_FromDafny((*val.(dafny.Tuple).IndexInt(1))) + } + return m + }() +} +func Com_amazonaws_dynamodb_UpdateItemInput_AttributeUpdates_FromDafny(input interface{}) map[string]types.AttributeValueUpdate { + return func() map[string]types.AttributeValueUpdate { + var m map[string]types.AttributeValueUpdate = make(map[string]types.AttributeValueUpdate) + if input == nil { + return nil + } + + for i := dafny.Iterate(input.(dafny.Map).Items()); ; { + val, ok := i() + if !ok { + break + } + m[Com_amazonaws_dynamodb_AttributeUpdates_key_FromDafny((*val.(dafny.Tuple).IndexInt(0)))] = Com_amazonaws_dynamodb_AttributeUpdates_value_FromDafny((*val.(dafny.Tuple).IndexInt(1))) + } + return m + }() +} +func Com_amazonaws_dynamodb_AttributeUpdates_key_FromDafny(input interface{}) string { + return func() string { + if input == nil { + return "" + } + a := UTF8.Encode(input.(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return s + }() +} +func Com_amazonaws_dynamodb_AttributeUpdates_value_FromDafny(input interface{}) types.AttributeValueUpdate { + return func() types.AttributeValueUpdate { + + return types.AttributeValueUpdate{ + Value: Com_amazonaws_dynamodb_AttributeValueUpdate_Value_FromDafny(input.(ComAmazonawsDynamodbTypes.AttributeValueUpdate).Dtor_Value().UnwrapOr(nil)), + Action: Com_amazonaws_dynamodb_AttributeValueUpdate_Action_FromDafny(input.(ComAmazonawsDynamodbTypes.AttributeValueUpdate).Dtor_Action().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_dynamodb_AttributeValueUpdate_Value_FromDafny(input interface{}) types.AttributeValue { + return func() types.AttributeValue { + var union types.AttributeValue + if input == nil { + return union + } + + if (input.(ComAmazonawsDynamodbTypes.AttributeValue)).Is_S() { + var dataSource = Wrappers.Companion_Option_.Create_Some_(input.(ComAmazonawsDynamodbTypes.AttributeValue).Dtor_S()) + union = &types.AttributeValueMemberS{ + Value: (Com_amazonaws_dynamodb_AttributeValue_S_FromDafny(dataSource.UnwrapOr(nil))), + } + } + if (input.(ComAmazonawsDynamodbTypes.AttributeValue)).Is_N() { + var dataSource = Wrappers.Companion_Option_.Create_Some_(input.(ComAmazonawsDynamodbTypes.AttributeValue).Dtor_N()) + union = &types.AttributeValueMemberN{ + Value: (Com_amazonaws_dynamodb_AttributeValue_N_FromDafny(dataSource.UnwrapOr(nil))), + } + } + if (input.(ComAmazonawsDynamodbTypes.AttributeValue)).Is_B() { + var dataSource = Wrappers.Companion_Option_.Create_Some_(input.(ComAmazonawsDynamodbTypes.AttributeValue).Dtor_B()) + union = &types.AttributeValueMemberB{ + Value: (Com_amazonaws_dynamodb_AttributeValue_B_FromDafny(dataSource.UnwrapOr(nil))), + } + } + if (input.(ComAmazonawsDynamodbTypes.AttributeValue)).Is_SS() { + var dataSource = Wrappers.Companion_Option_.Create_Some_(input.(ComAmazonawsDynamodbTypes.AttributeValue).Dtor_SS()) + union = &types.AttributeValueMemberSS{ + Value: (Com_amazonaws_dynamodb_AttributeValue_SS_FromDafny(dataSource.UnwrapOr(nil))), + } + } + if (input.(ComAmazonawsDynamodbTypes.AttributeValue)).Is_NS() { + var dataSource = Wrappers.Companion_Option_.Create_Some_(input.(ComAmazonawsDynamodbTypes.AttributeValue).Dtor_NS()) + union = &types.AttributeValueMemberNS{ + Value: (Com_amazonaws_dynamodb_AttributeValue_NS_FromDafny(dataSource.UnwrapOr(nil))), + } + } + if (input.(ComAmazonawsDynamodbTypes.AttributeValue)).Is_BS() { + var dataSource = Wrappers.Companion_Option_.Create_Some_(input.(ComAmazonawsDynamodbTypes.AttributeValue).Dtor_BS()) + union = &types.AttributeValueMemberBS{ + Value: (Com_amazonaws_dynamodb_AttributeValue_BS_FromDafny(dataSource.UnwrapOr(nil))), + } + } + if (input.(ComAmazonawsDynamodbTypes.AttributeValue)).Is_M() { + var dataSource = Wrappers.Companion_Option_.Create_Some_(input.(ComAmazonawsDynamodbTypes.AttributeValue).Dtor_M()) + union = &types.AttributeValueMemberM{ + Value: (Com_amazonaws_dynamodb_AttributeValue_M_FromDafny(dataSource.UnwrapOr(nil))), + } + } + if (input.(ComAmazonawsDynamodbTypes.AttributeValue)).Is_L() { + var dataSource = Wrappers.Companion_Option_.Create_Some_(input.(ComAmazonawsDynamodbTypes.AttributeValue).Dtor_L()) + union = &types.AttributeValueMemberL{ + Value: (Com_amazonaws_dynamodb_AttributeValue_L_FromDafny(dataSource.UnwrapOr(nil))), + } + } + if (input.(ComAmazonawsDynamodbTypes.AttributeValue)).Is_NULL() { + var dataSource = Wrappers.Companion_Option_.Create_Some_(input.(ComAmazonawsDynamodbTypes.AttributeValue).Dtor_NULL()) + union = &types.AttributeValueMemberNULL{ + Value: (Com_amazonaws_dynamodb_AttributeValue_NULL_FromDafny(dataSource.UnwrapOr(nil))), + } + } + if (input.(ComAmazonawsDynamodbTypes.AttributeValue)).Is_BOOL() { + var dataSource = Wrappers.Companion_Option_.Create_Some_(input.(ComAmazonawsDynamodbTypes.AttributeValue).Dtor_BOOL()) + union = &types.AttributeValueMemberBOOL{ + Value: (Com_amazonaws_dynamodb_AttributeValue_BOOL_FromDafny(dataSource.UnwrapOr(nil))), + } + } + + return union + }() +} +func Com_amazonaws_dynamodb_AttributeValueUpdate_Action_FromDafny(input interface{}) types.AttributeAction { + return func() types.AttributeAction { + var u types.AttributeAction + if input == nil { + return u + } + + inputEnum := input.(ComAmazonawsDynamodbTypes.AttributeAction) + index := -1 + for allEnums := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_AttributeAction_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(ComAmazonawsDynamodbTypes.AttributeAction).Equals(inputEnum) { + break + } + } + } + return u.Values()[index] + }() +} +func Com_amazonaws_dynamodb_UpdateItemInput_Expected_FromDafny(input interface{}) map[string]types.ExpectedAttributeValue { + return func() map[string]types.ExpectedAttributeValue { + var m map[string]types.ExpectedAttributeValue = make(map[string]types.ExpectedAttributeValue) + if input == nil { + return nil + } + + for i := dafny.Iterate(input.(dafny.Map).Items()); ; { + val, ok := i() + if !ok { + break + } + m[Com_amazonaws_dynamodb_ExpectedAttributeMap_key_FromDafny((*val.(dafny.Tuple).IndexInt(0)))] = Com_amazonaws_dynamodb_ExpectedAttributeMap_value_FromDafny((*val.(dafny.Tuple).IndexInt(1))) + } + return m + }() +} +func Com_amazonaws_dynamodb_UpdateItemInput_ConditionalOperator_FromDafny(input interface{}) types.ConditionalOperator { + return func() types.ConditionalOperator { + var u types.ConditionalOperator + if input == nil { + return u + } + + inputEnum := input.(ComAmazonawsDynamodbTypes.ConditionalOperator) + index := -1 + for allEnums := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_ConditionalOperator_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(ComAmazonawsDynamodbTypes.ConditionalOperator).Equals(inputEnum) { + break + } + } + } + return u.Values()[index] + }() +} +func Com_amazonaws_dynamodb_UpdateItemInput_ReturnValues_FromDafny(input interface{}) types.ReturnValue { + return func() types.ReturnValue { + var u types.ReturnValue + if input == nil { + return u + } + + inputEnum := input.(ComAmazonawsDynamodbTypes.ReturnValue) + index := -1 + for allEnums := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_ReturnValue_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(ComAmazonawsDynamodbTypes.ReturnValue).Equals(inputEnum) { + break + } + } + } + return u.Values()[index] + }() +} +func Com_amazonaws_dynamodb_UpdateItemInput_ReturnConsumedCapacity_FromDafny(input interface{}) types.ReturnConsumedCapacity { + return func() types.ReturnConsumedCapacity { + var u types.ReturnConsumedCapacity + if input == nil { + return u + } + + inputEnum := input.(ComAmazonawsDynamodbTypes.ReturnConsumedCapacity) + index := -1 + for allEnums := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_ReturnConsumedCapacity_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(ComAmazonawsDynamodbTypes.ReturnConsumedCapacity).Equals(inputEnum) { + break + } + } + } + return u.Values()[index] + }() +} +func Com_amazonaws_dynamodb_UpdateItemInput_ReturnItemCollectionMetrics_FromDafny(input interface{}) types.ReturnItemCollectionMetrics { + return func() types.ReturnItemCollectionMetrics { + var u types.ReturnItemCollectionMetrics + if input == nil { + return u + } + + inputEnum := input.(ComAmazonawsDynamodbTypes.ReturnItemCollectionMetrics) + index := -1 + for allEnums := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_ReturnItemCollectionMetrics_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(ComAmazonawsDynamodbTypes.ReturnItemCollectionMetrics).Equals(inputEnum) { + break + } + } + } + return u.Values()[index] + }() +} +func Com_amazonaws_dynamodb_UpdateItemInput_UpdateExpression_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_UpdateItemInput_ConditionExpression_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_UpdateItemInput_ExpressionAttributeNames_FromDafny(input interface{}) map[string]string { + return func() 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[Com_amazonaws_dynamodb_ExpressionAttributeNameMap_key_FromDafny((*val.(dafny.Tuple).IndexInt(0)))] = Com_amazonaws_dynamodb_ExpressionAttributeNameMap_value_FromDafny((*val.(dafny.Tuple).IndexInt(1))) + } + return m + }() +} +func Com_amazonaws_dynamodb_UpdateItemInput_ExpressionAttributeValues_FromDafny(input interface{}) map[string]types.AttributeValue { + return func() map[string]types.AttributeValue { + var m map[string]types.AttributeValue = make(map[string]types.AttributeValue) + if input == nil { + return nil + } + + for i := dafny.Iterate(input.(dafny.Map).Items()); ; { + val, ok := i() + if !ok { + break + } + m[Com_amazonaws_dynamodb_ExpressionAttributeValueMap_key_FromDafny((*val.(dafny.Tuple).IndexInt(0)))] = Com_amazonaws_dynamodb_ExpressionAttributeValueMap_value_FromDafny((*val.(dafny.Tuple).IndexInt(1))) + } + return m + }() +} +func Com_amazonaws_dynamodb_UpdateItemInput_ReturnValuesOnConditionCheckFailure_FromDafny(input interface{}) types.ReturnValuesOnConditionCheckFailure { + return func() types.ReturnValuesOnConditionCheckFailure { + var u types.ReturnValuesOnConditionCheckFailure + if input == nil { + return u + } + + inputEnum := input.(ComAmazonawsDynamodbTypes.ReturnValuesOnConditionCheckFailure) + index := -1 + for allEnums := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_ReturnValuesOnConditionCheckFailure_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(ComAmazonawsDynamodbTypes.ReturnValuesOnConditionCheckFailure).Equals(inputEnum) { + break + } + } + } + return u.Values()[index] + }() +} +func Com_amazonaws_dynamodb_UpdateItemOutput_Attributes_FromDafny(input interface{}) map[string]types.AttributeValue { + return func() map[string]types.AttributeValue { + var m map[string]types.AttributeValue = make(map[string]types.AttributeValue) + if input == nil { + return nil + } + + for i := dafny.Iterate(input.(dafny.Map).Items()); ; { + val, ok := i() + if !ok { + break + } + m[Com_amazonaws_dynamodb_AttributeMap_key_FromDafny((*val.(dafny.Tuple).IndexInt(0)))] = Com_amazonaws_dynamodb_AttributeMap_value_FromDafny((*val.(dafny.Tuple).IndexInt(1))) + } + return m + }() +} +func Com_amazonaws_dynamodb_UpdateItemOutput_ConsumedCapacity_FromDafny(input interface{}) *types.ConsumedCapacity { + return func() *types.ConsumedCapacity { + if input == nil { + return nil + } + return &types.ConsumedCapacity{ + TableName: Com_amazonaws_dynamodb_ConsumedCapacity_TableName_FromDafny(input.(ComAmazonawsDynamodbTypes.ConsumedCapacity).Dtor_TableName().UnwrapOr(nil)), + CapacityUnits: Com_amazonaws_dynamodb_ConsumedCapacity_CapacityUnits_FromDafny(input.(ComAmazonawsDynamodbTypes.ConsumedCapacity).Dtor_CapacityUnits().UnwrapOr(nil)), + ReadCapacityUnits: Com_amazonaws_dynamodb_ConsumedCapacity_ReadCapacityUnits_FromDafny(input.(ComAmazonawsDynamodbTypes.ConsumedCapacity).Dtor_ReadCapacityUnits().UnwrapOr(nil)), + WriteCapacityUnits: Com_amazonaws_dynamodb_ConsumedCapacity_WriteCapacityUnits_FromDafny(input.(ComAmazonawsDynamodbTypes.ConsumedCapacity).Dtor_WriteCapacityUnits().UnwrapOr(nil)), + Table: Com_amazonaws_dynamodb_ConsumedCapacity_Table_FromDafny(input.(ComAmazonawsDynamodbTypes.ConsumedCapacity).Dtor_Table().UnwrapOr(nil)), + LocalSecondaryIndexes: Com_amazonaws_dynamodb_ConsumedCapacity_LocalSecondaryIndexes_FromDafny(input.(ComAmazonawsDynamodbTypes.ConsumedCapacity).Dtor_LocalSecondaryIndexes().UnwrapOr(nil)), + GlobalSecondaryIndexes: Com_amazonaws_dynamodb_ConsumedCapacity_GlobalSecondaryIndexes_FromDafny(input.(ComAmazonawsDynamodbTypes.ConsumedCapacity).Dtor_GlobalSecondaryIndexes().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_dynamodb_UpdateItemOutput_ItemCollectionMetrics_FromDafny(input interface{}) *types.ItemCollectionMetrics { + return func() *types.ItemCollectionMetrics { + if input == nil { + return nil + } + return &types.ItemCollectionMetrics{ + ItemCollectionKey: Com_amazonaws_dynamodb_ItemCollectionMetrics_ItemCollectionKey_FromDafny(input.(ComAmazonawsDynamodbTypes.ItemCollectionMetrics).Dtor_ItemCollectionKey().UnwrapOr(nil)), + SizeEstimateRangeGB: Com_amazonaws_dynamodb_ItemCollectionMetrics_SizeEstimateRangeGB_FromDafny(input.(ComAmazonawsDynamodbTypes.ItemCollectionMetrics).Dtor_SizeEstimateRangeGB().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_dynamodb_UpdateKinesisStreamingDestinationInput_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 Com_amazonaws_dynamodb_UpdateKinesisStreamingDestinationInput_StreamArn_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 Com_amazonaws_dynamodb_UpdateKinesisStreamingDestinationInput_UpdateKinesisStreamingConfiguration_FromDafny(input interface{}) *types.UpdateKinesisStreamingConfiguration { + return func() *types.UpdateKinesisStreamingConfiguration { + if input == nil { + return nil + } + return &types.UpdateKinesisStreamingConfiguration{ + ApproximateCreationDateTimePrecision: Com_amazonaws_dynamodb_UpdateKinesisStreamingConfiguration_ApproximateCreationDateTimePrecision_FromDafny(input.(ComAmazonawsDynamodbTypes.UpdateKinesisStreamingConfiguration).Dtor_ApproximateCreationDateTimePrecision().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_dynamodb_UpdateKinesisStreamingConfiguration_ApproximateCreationDateTimePrecision_FromDafny(input interface{}) types.ApproximateCreationDateTimePrecision { + return func() types.ApproximateCreationDateTimePrecision { + var u types.ApproximateCreationDateTimePrecision + if input == nil { + return u + } + + inputEnum := input.(ComAmazonawsDynamodbTypes.ApproximateCreationDateTimePrecision) + index := -1 + for allEnums := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_ApproximateCreationDateTimePrecision_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(ComAmazonawsDynamodbTypes.ApproximateCreationDateTimePrecision).Equals(inputEnum) { + break + } + } + } + return u.Values()[index] + }() +} +func Com_amazonaws_dynamodb_UpdateKinesisStreamingDestinationOutput_TableName_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_UpdateKinesisStreamingDestinationOutput_StreamArn_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_UpdateKinesisStreamingDestinationOutput_DestinationStatus_FromDafny(input interface{}) types.DestinationStatus { + return func() types.DestinationStatus { + var u types.DestinationStatus + if input == nil { + return u + } + + inputEnum := input.(ComAmazonawsDynamodbTypes.DestinationStatus) + index := -1 + for allEnums := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_DestinationStatus_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(ComAmazonawsDynamodbTypes.DestinationStatus).Equals(inputEnum) { + break + } + } + } + return u.Values()[index] + }() +} +func Com_amazonaws_dynamodb_UpdateKinesisStreamingDestinationOutput_UpdateKinesisStreamingConfiguration_FromDafny(input interface{}) *types.UpdateKinesisStreamingConfiguration { + return func() *types.UpdateKinesisStreamingConfiguration { + if input == nil { + return nil + } + return &types.UpdateKinesisStreamingConfiguration{ + ApproximateCreationDateTimePrecision: Com_amazonaws_dynamodb_UpdateKinesisStreamingConfiguration_ApproximateCreationDateTimePrecision_FromDafny(input.(ComAmazonawsDynamodbTypes.UpdateKinesisStreamingConfiguration).Dtor_ApproximateCreationDateTimePrecision().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_dynamodb_UpdateTableInput_AttributeDefinitions_FromDafny(input interface{}) []types.AttributeDefinition { + return func() []types.AttributeDefinition { + var fieldValue []types.AttributeDefinition + if input == nil { + return nil + } + for i := dafny.Iterate(input.(dafny.Sequence).(dafny.Sequence)); ; { + val, ok := i() + if !ok { + break + } + fieldValue = append(fieldValue, Com_amazonaws_dynamodb_AttributeDefinitions_member_FromDafny(val)) + } + return fieldValue + }() +} +func Com_amazonaws_dynamodb_UpdateTableInput_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 Com_amazonaws_dynamodb_UpdateTableInput_BillingMode_FromDafny(input interface{}) types.BillingMode { + return func() types.BillingMode { + var u types.BillingMode + if input == nil { + return u + } + + inputEnum := input.(ComAmazonawsDynamodbTypes.BillingMode) + index := -1 + for allEnums := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_BillingMode_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(ComAmazonawsDynamodbTypes.BillingMode).Equals(inputEnum) { + break + } + } + } + return u.Values()[index] + }() +} +func Com_amazonaws_dynamodb_UpdateTableInput_ProvisionedThroughput_FromDafny(input interface{}) *types.ProvisionedThroughput { + return func() *types.ProvisionedThroughput { + if input == nil { + return nil + } + return &types.ProvisionedThroughput{ + ReadCapacityUnits: Com_amazonaws_dynamodb_ProvisionedThroughput_ReadCapacityUnits_FromDafny(input.(ComAmazonawsDynamodbTypes.ProvisionedThroughput).Dtor_ReadCapacityUnits()), + WriteCapacityUnits: Com_amazonaws_dynamodb_ProvisionedThroughput_WriteCapacityUnits_FromDafny(input.(ComAmazonawsDynamodbTypes.ProvisionedThroughput).Dtor_WriteCapacityUnits()), + } + }() +} +func Com_amazonaws_dynamodb_UpdateTableInput_GlobalSecondaryIndexUpdates_FromDafny(input interface{}) []types.GlobalSecondaryIndexUpdate { + return func() []types.GlobalSecondaryIndexUpdate { + var fieldValue []types.GlobalSecondaryIndexUpdate + if input == nil { + return nil + } + for i := dafny.Iterate(input.(dafny.Sequence).(dafny.Sequence)); ; { + val, ok := i() + if !ok { + break + } + fieldValue = append(fieldValue, Com_amazonaws_dynamodb_GlobalSecondaryIndexUpdateList_member_FromDafny(val)) + } + return fieldValue + }() +} +func Com_amazonaws_dynamodb_GlobalSecondaryIndexUpdateList_member_FromDafny(input interface{}) types.GlobalSecondaryIndexUpdate { + return func() types.GlobalSecondaryIndexUpdate { + + return types.GlobalSecondaryIndexUpdate{ + Update: Com_amazonaws_dynamodb_GlobalSecondaryIndexUpdate_Update_FromDafny(input.(ComAmazonawsDynamodbTypes.GlobalSecondaryIndexUpdate).Dtor_Update().UnwrapOr(nil)), + Create: Com_amazonaws_dynamodb_GlobalSecondaryIndexUpdate_Create_FromDafny(input.(ComAmazonawsDynamodbTypes.GlobalSecondaryIndexUpdate).Dtor_Create().UnwrapOr(nil)), + Delete: Com_amazonaws_dynamodb_GlobalSecondaryIndexUpdate_Delete_FromDafny(input.(ComAmazonawsDynamodbTypes.GlobalSecondaryIndexUpdate).Dtor_Delete().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_dynamodb_GlobalSecondaryIndexUpdate_Update_FromDafny(input interface{}) *types.UpdateGlobalSecondaryIndexAction { + return func() *types.UpdateGlobalSecondaryIndexAction { + if input == nil { + return nil + } + return &types.UpdateGlobalSecondaryIndexAction{ + IndexName: Com_amazonaws_dynamodb_UpdateGlobalSecondaryIndexAction_IndexName_FromDafny(input.(ComAmazonawsDynamodbTypes.UpdateGlobalSecondaryIndexAction).Dtor_IndexName()), + ProvisionedThroughput: Com_amazonaws_dynamodb_UpdateGlobalSecondaryIndexAction_ProvisionedThroughput_FromDafny(input.(ComAmazonawsDynamodbTypes.UpdateGlobalSecondaryIndexAction).Dtor_ProvisionedThroughput().UnwrapOr(nil)), + OnDemandThroughput: Com_amazonaws_dynamodb_UpdateGlobalSecondaryIndexAction_OnDemandThroughput_FromDafny(input.(ComAmazonawsDynamodbTypes.UpdateGlobalSecondaryIndexAction).Dtor_OnDemandThroughput().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_dynamodb_UpdateGlobalSecondaryIndexAction_IndexName_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 Com_amazonaws_dynamodb_UpdateGlobalSecondaryIndexAction_ProvisionedThroughput_FromDafny(input interface{}) *types.ProvisionedThroughput { + return func() *types.ProvisionedThroughput { + if input == nil { + return nil + } + return &types.ProvisionedThroughput{ + ReadCapacityUnits: Com_amazonaws_dynamodb_ProvisionedThroughput_ReadCapacityUnits_FromDafny(input.(ComAmazonawsDynamodbTypes.ProvisionedThroughput).Dtor_ReadCapacityUnits()), + WriteCapacityUnits: Com_amazonaws_dynamodb_ProvisionedThroughput_WriteCapacityUnits_FromDafny(input.(ComAmazonawsDynamodbTypes.ProvisionedThroughput).Dtor_WriteCapacityUnits()), + } + }() +} +func Com_amazonaws_dynamodb_UpdateGlobalSecondaryIndexAction_OnDemandThroughput_FromDafny(input interface{}) *types.OnDemandThroughput { + return func() *types.OnDemandThroughput { + if input == nil { + return nil + } + return &types.OnDemandThroughput{ + MaxReadRequestUnits: Com_amazonaws_dynamodb_OnDemandThroughput_MaxReadRequestUnits_FromDafny(input.(ComAmazonawsDynamodbTypes.OnDemandThroughput).Dtor_MaxReadRequestUnits().UnwrapOr(nil)), + MaxWriteRequestUnits: Com_amazonaws_dynamodb_OnDemandThroughput_MaxWriteRequestUnits_FromDafny(input.(ComAmazonawsDynamodbTypes.OnDemandThroughput).Dtor_MaxWriteRequestUnits().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_dynamodb_GlobalSecondaryIndexUpdate_Create_FromDafny(input interface{}) *types.CreateGlobalSecondaryIndexAction { + return func() *types.CreateGlobalSecondaryIndexAction { + if input == nil { + return nil + } + return &types.CreateGlobalSecondaryIndexAction{ + IndexName: Com_amazonaws_dynamodb_CreateGlobalSecondaryIndexAction_IndexName_FromDafny(input.(ComAmazonawsDynamodbTypes.CreateGlobalSecondaryIndexAction).Dtor_IndexName()), + KeySchema: Com_amazonaws_dynamodb_CreateGlobalSecondaryIndexAction_KeySchema_FromDafny(input.(ComAmazonawsDynamodbTypes.CreateGlobalSecondaryIndexAction).Dtor_KeySchema()), + Projection: Com_amazonaws_dynamodb_CreateGlobalSecondaryIndexAction_Projection_FromDafny(input.(ComAmazonawsDynamodbTypes.CreateGlobalSecondaryIndexAction).Dtor_Projection()), + ProvisionedThroughput: Com_amazonaws_dynamodb_CreateGlobalSecondaryIndexAction_ProvisionedThroughput_FromDafny(input.(ComAmazonawsDynamodbTypes.CreateGlobalSecondaryIndexAction).Dtor_ProvisionedThroughput().UnwrapOr(nil)), + OnDemandThroughput: Com_amazonaws_dynamodb_CreateGlobalSecondaryIndexAction_OnDemandThroughput_FromDafny(input.(ComAmazonawsDynamodbTypes.CreateGlobalSecondaryIndexAction).Dtor_OnDemandThroughput().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_dynamodb_CreateGlobalSecondaryIndexAction_IndexName_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 Com_amazonaws_dynamodb_CreateGlobalSecondaryIndexAction_KeySchema_FromDafny(input interface{}) []types.KeySchemaElement { + return func() []types.KeySchemaElement { + var fieldValue []types.KeySchemaElement + + for i := dafny.Iterate(input.(dafny.Sequence)); ; { + val, ok := i() + if !ok { + break + } + fieldValue = append(fieldValue, Com_amazonaws_dynamodb_KeySchema_member_FromDafny(val)) + } + return fieldValue + }() +} +func Com_amazonaws_dynamodb_CreateGlobalSecondaryIndexAction_Projection_FromDafny(input interface{}) *types.Projection { + return func() *types.Projection { + + return &types.Projection{ + ProjectionType: Com_amazonaws_dynamodb_Projection_ProjectionType_FromDafny(input.(ComAmazonawsDynamodbTypes.Projection).Dtor_ProjectionType().UnwrapOr(nil)), + NonKeyAttributes: Com_amazonaws_dynamodb_Projection_NonKeyAttributes_FromDafny(input.(ComAmazonawsDynamodbTypes.Projection).Dtor_NonKeyAttributes().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_dynamodb_CreateGlobalSecondaryIndexAction_ProvisionedThroughput_FromDafny(input interface{}) *types.ProvisionedThroughput { + return func() *types.ProvisionedThroughput { + if input == nil { + return nil + } + return &types.ProvisionedThroughput{ + ReadCapacityUnits: Com_amazonaws_dynamodb_ProvisionedThroughput_ReadCapacityUnits_FromDafny(input.(ComAmazonawsDynamodbTypes.ProvisionedThroughput).Dtor_ReadCapacityUnits()), + WriteCapacityUnits: Com_amazonaws_dynamodb_ProvisionedThroughput_WriteCapacityUnits_FromDafny(input.(ComAmazonawsDynamodbTypes.ProvisionedThroughput).Dtor_WriteCapacityUnits()), + } + }() +} +func Com_amazonaws_dynamodb_CreateGlobalSecondaryIndexAction_OnDemandThroughput_FromDafny(input interface{}) *types.OnDemandThroughput { + return func() *types.OnDemandThroughput { + if input == nil { + return nil + } + return &types.OnDemandThroughput{ + MaxReadRequestUnits: Com_amazonaws_dynamodb_OnDemandThroughput_MaxReadRequestUnits_FromDafny(input.(ComAmazonawsDynamodbTypes.OnDemandThroughput).Dtor_MaxReadRequestUnits().UnwrapOr(nil)), + MaxWriteRequestUnits: Com_amazonaws_dynamodb_OnDemandThroughput_MaxWriteRequestUnits_FromDafny(input.(ComAmazonawsDynamodbTypes.OnDemandThroughput).Dtor_MaxWriteRequestUnits().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_dynamodb_GlobalSecondaryIndexUpdate_Delete_FromDafny(input interface{}) *types.DeleteGlobalSecondaryIndexAction { + return func() *types.DeleteGlobalSecondaryIndexAction { + if input == nil { + return nil + } + return &types.DeleteGlobalSecondaryIndexAction{ + IndexName: Com_amazonaws_dynamodb_DeleteGlobalSecondaryIndexAction_IndexName_FromDafny(input.(ComAmazonawsDynamodbTypes.DeleteGlobalSecondaryIndexAction).Dtor_IndexName()), + } + }() +} +func Com_amazonaws_dynamodb_DeleteGlobalSecondaryIndexAction_IndexName_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 Com_amazonaws_dynamodb_UpdateTableInput_StreamSpecification_FromDafny(input interface{}) *types.StreamSpecification { + return func() *types.StreamSpecification { + if input == nil { + return nil + } + return &types.StreamSpecification{ + StreamEnabled: Com_amazonaws_dynamodb_StreamSpecification_StreamEnabled_FromDafny(input.(ComAmazonawsDynamodbTypes.StreamSpecification).Dtor_StreamEnabled()), + StreamViewType: Com_amazonaws_dynamodb_StreamSpecification_StreamViewType_FromDafny(input.(ComAmazonawsDynamodbTypes.StreamSpecification).Dtor_StreamViewType().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_dynamodb_UpdateTableInput_SSESpecification_FromDafny(input interface{}) *types.SSESpecification { + return func() *types.SSESpecification { + if input == nil { + return nil + } + return &types.SSESpecification{ + Enabled: Com_amazonaws_dynamodb_SSESpecification_Enabled_FromDafny(input.(ComAmazonawsDynamodbTypes.SSESpecification).Dtor_Enabled().UnwrapOr(nil)), + SSEType: Com_amazonaws_dynamodb_SSESpecification_SSEType_FromDafny(input.(ComAmazonawsDynamodbTypes.SSESpecification).Dtor_SSEType().UnwrapOr(nil)), + KMSMasterKeyId: Com_amazonaws_dynamodb_SSESpecification_KMSMasterKeyId_FromDafny(input.(ComAmazonawsDynamodbTypes.SSESpecification).Dtor_KMSMasterKeyId().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_dynamodb_UpdateTableInput_ReplicaUpdates_FromDafny(input interface{}) []types.ReplicationGroupUpdate { + return func() []types.ReplicationGroupUpdate { + var fieldValue []types.ReplicationGroupUpdate + if input == nil { + return nil + } + for i := dafny.Iterate(input.(dafny.Sequence).(dafny.Sequence)); ; { + val, ok := i() + if !ok { + break + } + fieldValue = append(fieldValue, Com_amazonaws_dynamodb_ReplicationGroupUpdateList_member_FromDafny(val)) + } + return fieldValue + }() +} +func Com_amazonaws_dynamodb_ReplicationGroupUpdateList_member_FromDafny(input interface{}) types.ReplicationGroupUpdate { + return func() types.ReplicationGroupUpdate { + + return types.ReplicationGroupUpdate{ + Create: Com_amazonaws_dynamodb_ReplicationGroupUpdate_Create_FromDafny(input.(ComAmazonawsDynamodbTypes.ReplicationGroupUpdate).Dtor_Create().UnwrapOr(nil)), + Update: Com_amazonaws_dynamodb_ReplicationGroupUpdate_Update_FromDafny(input.(ComAmazonawsDynamodbTypes.ReplicationGroupUpdate).Dtor_Update().UnwrapOr(nil)), + Delete: Com_amazonaws_dynamodb_ReplicationGroupUpdate_Delete_FromDafny(input.(ComAmazonawsDynamodbTypes.ReplicationGroupUpdate).Dtor_Delete().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_dynamodb_ReplicationGroupUpdate_Create_FromDafny(input interface{}) *types.CreateReplicationGroupMemberAction { + return func() *types.CreateReplicationGroupMemberAction { + if input == nil { + return nil + } + return &types.CreateReplicationGroupMemberAction{ + RegionName: Com_amazonaws_dynamodb_CreateReplicationGroupMemberAction_RegionName_FromDafny(input.(ComAmazonawsDynamodbTypes.CreateReplicationGroupMemberAction).Dtor_RegionName()), + KMSMasterKeyId: Com_amazonaws_dynamodb_CreateReplicationGroupMemberAction_KMSMasterKeyId_FromDafny(input.(ComAmazonawsDynamodbTypes.CreateReplicationGroupMemberAction).Dtor_KMSMasterKeyId().UnwrapOr(nil)), + ProvisionedThroughputOverride: Com_amazonaws_dynamodb_CreateReplicationGroupMemberAction_ProvisionedThroughputOverride_FromDafny(input.(ComAmazonawsDynamodbTypes.CreateReplicationGroupMemberAction).Dtor_ProvisionedThroughputOverride().UnwrapOr(nil)), + OnDemandThroughputOverride: Com_amazonaws_dynamodb_CreateReplicationGroupMemberAction_OnDemandThroughputOverride_FromDafny(input.(ComAmazonawsDynamodbTypes.CreateReplicationGroupMemberAction).Dtor_OnDemandThroughputOverride().UnwrapOr(nil)), + GlobalSecondaryIndexes: Com_amazonaws_dynamodb_CreateReplicationGroupMemberAction_GlobalSecondaryIndexes_FromDafny(input.(ComAmazonawsDynamodbTypes.CreateReplicationGroupMemberAction).Dtor_GlobalSecondaryIndexes().UnwrapOr(nil)), + TableClassOverride: Com_amazonaws_dynamodb_CreateReplicationGroupMemberAction_TableClassOverride_FromDafny(input.(ComAmazonawsDynamodbTypes.CreateReplicationGroupMemberAction).Dtor_TableClassOverride().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_dynamodb_CreateReplicationGroupMemberAction_RegionName_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 Com_amazonaws_dynamodb_CreateReplicationGroupMemberAction_KMSMasterKeyId_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_CreateReplicationGroupMemberAction_ProvisionedThroughputOverride_FromDafny(input interface{}) *types.ProvisionedThroughputOverride { + return func() *types.ProvisionedThroughputOverride { + if input == nil { + return nil + } + return &types.ProvisionedThroughputOverride{ + ReadCapacityUnits: Com_amazonaws_dynamodb_ProvisionedThroughputOverride_ReadCapacityUnits_FromDafny(input.(ComAmazonawsDynamodbTypes.ProvisionedThroughputOverride).Dtor_ReadCapacityUnits().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_dynamodb_CreateReplicationGroupMemberAction_OnDemandThroughputOverride_FromDafny(input interface{}) *types.OnDemandThroughputOverride { + return func() *types.OnDemandThroughputOverride { + if input == nil { + return nil + } + return &types.OnDemandThroughputOverride{ + MaxReadRequestUnits: Com_amazonaws_dynamodb_OnDemandThroughputOverride_MaxReadRequestUnits_FromDafny(input.(ComAmazonawsDynamodbTypes.OnDemandThroughputOverride).Dtor_MaxReadRequestUnits().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_dynamodb_CreateReplicationGroupMemberAction_GlobalSecondaryIndexes_FromDafny(input interface{}) []types.ReplicaGlobalSecondaryIndex { + return func() []types.ReplicaGlobalSecondaryIndex { + var fieldValue []types.ReplicaGlobalSecondaryIndex + if input == nil { + return nil + } + for i := dafny.Iterate(input.(dafny.Sequence).(dafny.Sequence)); ; { + val, ok := i() + if !ok { + break + } + fieldValue = append(fieldValue, Com_amazonaws_dynamodb_ReplicaGlobalSecondaryIndexList_member_FromDafny(val)) + } + return fieldValue + }() +} +func Com_amazonaws_dynamodb_ReplicaGlobalSecondaryIndexList_member_FromDafny(input interface{}) types.ReplicaGlobalSecondaryIndex { + return func() types.ReplicaGlobalSecondaryIndex { + + return types.ReplicaGlobalSecondaryIndex{ + IndexName: Com_amazonaws_dynamodb_ReplicaGlobalSecondaryIndex_IndexName_FromDafny(input.(ComAmazonawsDynamodbTypes.ReplicaGlobalSecondaryIndex).Dtor_IndexName()), + ProvisionedThroughputOverride: Com_amazonaws_dynamodb_ReplicaGlobalSecondaryIndex_ProvisionedThroughputOverride_FromDafny(input.(ComAmazonawsDynamodbTypes.ReplicaGlobalSecondaryIndex).Dtor_ProvisionedThroughputOverride().UnwrapOr(nil)), + OnDemandThroughputOverride: Com_amazonaws_dynamodb_ReplicaGlobalSecondaryIndex_OnDemandThroughputOverride_FromDafny(input.(ComAmazonawsDynamodbTypes.ReplicaGlobalSecondaryIndex).Dtor_OnDemandThroughputOverride().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_dynamodb_ReplicaGlobalSecondaryIndex_IndexName_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 Com_amazonaws_dynamodb_ReplicaGlobalSecondaryIndex_ProvisionedThroughputOverride_FromDafny(input interface{}) *types.ProvisionedThroughputOverride { + return func() *types.ProvisionedThroughputOverride { + if input == nil { + return nil + } + return &types.ProvisionedThroughputOverride{ + ReadCapacityUnits: Com_amazonaws_dynamodb_ProvisionedThroughputOverride_ReadCapacityUnits_FromDafny(input.(ComAmazonawsDynamodbTypes.ProvisionedThroughputOverride).Dtor_ReadCapacityUnits().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_dynamodb_ReplicaGlobalSecondaryIndex_OnDemandThroughputOverride_FromDafny(input interface{}) *types.OnDemandThroughputOverride { + return func() *types.OnDemandThroughputOverride { + if input == nil { + return nil + } + return &types.OnDemandThroughputOverride{ + MaxReadRequestUnits: Com_amazonaws_dynamodb_OnDemandThroughputOverride_MaxReadRequestUnits_FromDafny(input.(ComAmazonawsDynamodbTypes.OnDemandThroughputOverride).Dtor_MaxReadRequestUnits().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_dynamodb_CreateReplicationGroupMemberAction_TableClassOverride_FromDafny(input interface{}) types.TableClass { + return func() types.TableClass { + var u types.TableClass + if input == nil { + return u + } + + inputEnum := input.(ComAmazonawsDynamodbTypes.TableClass) + index := -1 + for allEnums := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_TableClass_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(ComAmazonawsDynamodbTypes.TableClass).Equals(inputEnum) { + break + } + } + } + return u.Values()[index] + }() +} +func Com_amazonaws_dynamodb_ReplicationGroupUpdate_Update_FromDafny(input interface{}) *types.UpdateReplicationGroupMemberAction { + return func() *types.UpdateReplicationGroupMemberAction { + if input == nil { + return nil + } + return &types.UpdateReplicationGroupMemberAction{ + RegionName: Com_amazonaws_dynamodb_UpdateReplicationGroupMemberAction_RegionName_FromDafny(input.(ComAmazonawsDynamodbTypes.UpdateReplicationGroupMemberAction).Dtor_RegionName()), + KMSMasterKeyId: Com_amazonaws_dynamodb_UpdateReplicationGroupMemberAction_KMSMasterKeyId_FromDafny(input.(ComAmazonawsDynamodbTypes.UpdateReplicationGroupMemberAction).Dtor_KMSMasterKeyId().UnwrapOr(nil)), + ProvisionedThroughputOverride: Com_amazonaws_dynamodb_UpdateReplicationGroupMemberAction_ProvisionedThroughputOverride_FromDafny(input.(ComAmazonawsDynamodbTypes.UpdateReplicationGroupMemberAction).Dtor_ProvisionedThroughputOverride().UnwrapOr(nil)), + OnDemandThroughputOverride: Com_amazonaws_dynamodb_UpdateReplicationGroupMemberAction_OnDemandThroughputOverride_FromDafny(input.(ComAmazonawsDynamodbTypes.UpdateReplicationGroupMemberAction).Dtor_OnDemandThroughputOverride().UnwrapOr(nil)), + GlobalSecondaryIndexes: Com_amazonaws_dynamodb_UpdateReplicationGroupMemberAction_GlobalSecondaryIndexes_FromDafny(input.(ComAmazonawsDynamodbTypes.UpdateReplicationGroupMemberAction).Dtor_GlobalSecondaryIndexes().UnwrapOr(nil)), + TableClassOverride: Com_amazonaws_dynamodb_UpdateReplicationGroupMemberAction_TableClassOverride_FromDafny(input.(ComAmazonawsDynamodbTypes.UpdateReplicationGroupMemberAction).Dtor_TableClassOverride().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_dynamodb_UpdateReplicationGroupMemberAction_RegionName_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 Com_amazonaws_dynamodb_UpdateReplicationGroupMemberAction_KMSMasterKeyId_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_UpdateReplicationGroupMemberAction_ProvisionedThroughputOverride_FromDafny(input interface{}) *types.ProvisionedThroughputOverride { + return func() *types.ProvisionedThroughputOverride { + if input == nil { + return nil + } + return &types.ProvisionedThroughputOverride{ + ReadCapacityUnits: Com_amazonaws_dynamodb_ProvisionedThroughputOverride_ReadCapacityUnits_FromDafny(input.(ComAmazonawsDynamodbTypes.ProvisionedThroughputOverride).Dtor_ReadCapacityUnits().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_dynamodb_UpdateReplicationGroupMemberAction_OnDemandThroughputOverride_FromDafny(input interface{}) *types.OnDemandThroughputOverride { + return func() *types.OnDemandThroughputOverride { + if input == nil { + return nil + } + return &types.OnDemandThroughputOverride{ + MaxReadRequestUnits: Com_amazonaws_dynamodb_OnDemandThroughputOverride_MaxReadRequestUnits_FromDafny(input.(ComAmazonawsDynamodbTypes.OnDemandThroughputOverride).Dtor_MaxReadRequestUnits().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_dynamodb_UpdateReplicationGroupMemberAction_GlobalSecondaryIndexes_FromDafny(input interface{}) []types.ReplicaGlobalSecondaryIndex { + return func() []types.ReplicaGlobalSecondaryIndex { + var fieldValue []types.ReplicaGlobalSecondaryIndex + if input == nil { + return nil + } + for i := dafny.Iterate(input.(dafny.Sequence).(dafny.Sequence)); ; { + val, ok := i() + if !ok { + break + } + fieldValue = append(fieldValue, Com_amazonaws_dynamodb_ReplicaGlobalSecondaryIndexList_member_FromDafny(val)) + } + return fieldValue + }() +} +func Com_amazonaws_dynamodb_UpdateReplicationGroupMemberAction_TableClassOverride_FromDafny(input interface{}) types.TableClass { + return func() types.TableClass { + var u types.TableClass + if input == nil { + return u + } + + inputEnum := input.(ComAmazonawsDynamodbTypes.TableClass) + index := -1 + for allEnums := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_TableClass_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(ComAmazonawsDynamodbTypes.TableClass).Equals(inputEnum) { + break + } + } + } + return u.Values()[index] + }() +} +func Com_amazonaws_dynamodb_ReplicationGroupUpdate_Delete_FromDafny(input interface{}) *types.DeleteReplicationGroupMemberAction { + return func() *types.DeleteReplicationGroupMemberAction { + if input == nil { + return nil + } + return &types.DeleteReplicationGroupMemberAction{ + RegionName: Com_amazonaws_dynamodb_DeleteReplicationGroupMemberAction_RegionName_FromDafny(input.(ComAmazonawsDynamodbTypes.DeleteReplicationGroupMemberAction).Dtor_RegionName()), + } + }() +} +func Com_amazonaws_dynamodb_DeleteReplicationGroupMemberAction_RegionName_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 Com_amazonaws_dynamodb_UpdateTableInput_TableClass_FromDafny(input interface{}) types.TableClass { + return func() types.TableClass { + var u types.TableClass + if input == nil { + return u + } + + inputEnum := input.(ComAmazonawsDynamodbTypes.TableClass) + index := -1 + for allEnums := dafny.Iterate(ComAmazonawsDynamodbTypes.CompanionStruct_TableClass_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(ComAmazonawsDynamodbTypes.TableClass).Equals(inputEnum) { + break + } + } + } + return u.Values()[index] + }() +} +func Com_amazonaws_dynamodb_UpdateTableInput_DeletionProtectionEnabled_FromDafny(input interface{}) *bool { + return func() *bool { + var b bool + if input == nil { + return nil + } + b = input.(bool) + return &b + }() +} +func Com_amazonaws_dynamodb_UpdateTableInput_OnDemandThroughput_FromDafny(input interface{}) *types.OnDemandThroughput { + return func() *types.OnDemandThroughput { + if input == nil { + return nil + } + return &types.OnDemandThroughput{ + MaxReadRequestUnits: Com_amazonaws_dynamodb_OnDemandThroughput_MaxReadRequestUnits_FromDafny(input.(ComAmazonawsDynamodbTypes.OnDemandThroughput).Dtor_MaxReadRequestUnits().UnwrapOr(nil)), + MaxWriteRequestUnits: Com_amazonaws_dynamodb_OnDemandThroughput_MaxWriteRequestUnits_FromDafny(input.(ComAmazonawsDynamodbTypes.OnDemandThroughput).Dtor_MaxWriteRequestUnits().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_dynamodb_UpdateTableOutput_TableDescription_FromDafny(input interface{}) *types.TableDescription { + return func() *types.TableDescription { + if input == nil { + return nil + } + return &types.TableDescription{ + AttributeDefinitions: Com_amazonaws_dynamodb_TableDescription_AttributeDefinitions_FromDafny(input.(ComAmazonawsDynamodbTypes.TableDescription).Dtor_AttributeDefinitions().UnwrapOr(nil)), + TableName: Com_amazonaws_dynamodb_TableDescription_TableName_FromDafny(input.(ComAmazonawsDynamodbTypes.TableDescription).Dtor_TableName().UnwrapOr(nil)), + KeySchema: Com_amazonaws_dynamodb_TableDescription_KeySchema_FromDafny(input.(ComAmazonawsDynamodbTypes.TableDescription).Dtor_KeySchema().UnwrapOr(nil)), + TableStatus: Com_amazonaws_dynamodb_TableDescription_TableStatus_FromDafny(input.(ComAmazonawsDynamodbTypes.TableDescription).Dtor_TableStatus().UnwrapOr(nil)), + CreationDateTime: Com_amazonaws_dynamodb_TableDescription_CreationDateTime_FromDafny(input.(ComAmazonawsDynamodbTypes.TableDescription).Dtor_CreationDateTime().UnwrapOr(nil)), + ProvisionedThroughput: Com_amazonaws_dynamodb_TableDescription_ProvisionedThroughput_FromDafny(input.(ComAmazonawsDynamodbTypes.TableDescription).Dtor_ProvisionedThroughput().UnwrapOr(nil)), + TableSizeBytes: Com_amazonaws_dynamodb_TableDescription_TableSizeBytes_FromDafny(input.(ComAmazonawsDynamodbTypes.TableDescription).Dtor_TableSizeBytes().UnwrapOr(nil)), + ItemCount: Com_amazonaws_dynamodb_TableDescription_ItemCount_FromDafny(input.(ComAmazonawsDynamodbTypes.TableDescription).Dtor_ItemCount().UnwrapOr(nil)), + TableArn: Com_amazonaws_dynamodb_TableDescription_TableArn_FromDafny(input.(ComAmazonawsDynamodbTypes.TableDescription).Dtor_TableArn().UnwrapOr(nil)), + TableId: Com_amazonaws_dynamodb_TableDescription_TableId_FromDafny(input.(ComAmazonawsDynamodbTypes.TableDescription).Dtor_TableId().UnwrapOr(nil)), + BillingModeSummary: Com_amazonaws_dynamodb_TableDescription_BillingModeSummary_FromDafny(input.(ComAmazonawsDynamodbTypes.TableDescription).Dtor_BillingModeSummary().UnwrapOr(nil)), + LocalSecondaryIndexes: Com_amazonaws_dynamodb_TableDescription_LocalSecondaryIndexes_FromDafny(input.(ComAmazonawsDynamodbTypes.TableDescription).Dtor_LocalSecondaryIndexes().UnwrapOr(nil)), + GlobalSecondaryIndexes: Com_amazonaws_dynamodb_TableDescription_GlobalSecondaryIndexes_FromDafny(input.(ComAmazonawsDynamodbTypes.TableDescription).Dtor_GlobalSecondaryIndexes().UnwrapOr(nil)), + StreamSpecification: Com_amazonaws_dynamodb_TableDescription_StreamSpecification_FromDafny(input.(ComAmazonawsDynamodbTypes.TableDescription).Dtor_StreamSpecification().UnwrapOr(nil)), + LatestStreamLabel: Com_amazonaws_dynamodb_TableDescription_LatestStreamLabel_FromDafny(input.(ComAmazonawsDynamodbTypes.TableDescription).Dtor_LatestStreamLabel().UnwrapOr(nil)), + LatestStreamArn: Com_amazonaws_dynamodb_TableDescription_LatestStreamArn_FromDafny(input.(ComAmazonawsDynamodbTypes.TableDescription).Dtor_LatestStreamArn().UnwrapOr(nil)), + GlobalTableVersion: Com_amazonaws_dynamodb_TableDescription_GlobalTableVersion_FromDafny(input.(ComAmazonawsDynamodbTypes.TableDescription).Dtor_GlobalTableVersion().UnwrapOr(nil)), + Replicas: Com_amazonaws_dynamodb_TableDescription_Replicas_FromDafny(input.(ComAmazonawsDynamodbTypes.TableDescription).Dtor_Replicas().UnwrapOr(nil)), + RestoreSummary: Com_amazonaws_dynamodb_TableDescription_RestoreSummary_FromDafny(input.(ComAmazonawsDynamodbTypes.TableDescription).Dtor_RestoreSummary().UnwrapOr(nil)), + SSEDescription: Com_amazonaws_dynamodb_TableDescription_SSEDescription_FromDafny(input.(ComAmazonawsDynamodbTypes.TableDescription).Dtor_SSEDescription().UnwrapOr(nil)), + ArchivalSummary: Com_amazonaws_dynamodb_TableDescription_ArchivalSummary_FromDafny(input.(ComAmazonawsDynamodbTypes.TableDescription).Dtor_ArchivalSummary().UnwrapOr(nil)), + TableClassSummary: Com_amazonaws_dynamodb_TableDescription_TableClassSummary_FromDafny(input.(ComAmazonawsDynamodbTypes.TableDescription).Dtor_TableClassSummary().UnwrapOr(nil)), + DeletionProtectionEnabled: Com_amazonaws_dynamodb_TableDescription_DeletionProtectionEnabled_FromDafny(input.(ComAmazonawsDynamodbTypes.TableDescription).Dtor_DeletionProtectionEnabled().UnwrapOr(nil)), + OnDemandThroughput: Com_amazonaws_dynamodb_TableDescription_OnDemandThroughput_FromDafny(input.(ComAmazonawsDynamodbTypes.TableDescription).Dtor_OnDemandThroughput().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_dynamodb_UpdateTableReplicaAutoScalingInput_GlobalSecondaryIndexUpdates_FromDafny(input interface{}) []types.GlobalSecondaryIndexAutoScalingUpdate { + return func() []types.GlobalSecondaryIndexAutoScalingUpdate { + var fieldValue []types.GlobalSecondaryIndexAutoScalingUpdate + if input == nil { + return nil + } + for i := dafny.Iterate(input.(dafny.Sequence).(dafny.Sequence)); ; { + val, ok := i() + if !ok { + break + } + fieldValue = append(fieldValue, Com_amazonaws_dynamodb_GlobalSecondaryIndexAutoScalingUpdateList_member_FromDafny(val)) + } + return fieldValue + }() +} +func Com_amazonaws_dynamodb_GlobalSecondaryIndexAutoScalingUpdateList_member_FromDafny(input interface{}) types.GlobalSecondaryIndexAutoScalingUpdate { + return func() types.GlobalSecondaryIndexAutoScalingUpdate { + + return types.GlobalSecondaryIndexAutoScalingUpdate{ + IndexName: Com_amazonaws_dynamodb_GlobalSecondaryIndexAutoScalingUpdate_IndexName_FromDafny(input.(ComAmazonawsDynamodbTypes.GlobalSecondaryIndexAutoScalingUpdate).Dtor_IndexName().UnwrapOr(nil)), + ProvisionedWriteCapacityAutoScalingUpdate: Com_amazonaws_dynamodb_GlobalSecondaryIndexAutoScalingUpdate_ProvisionedWriteCapacityAutoScalingUpdate_FromDafny(input.(ComAmazonawsDynamodbTypes.GlobalSecondaryIndexAutoScalingUpdate).Dtor_ProvisionedWriteCapacityAutoScalingUpdate().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_dynamodb_GlobalSecondaryIndexAutoScalingUpdate_IndexName_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_GlobalSecondaryIndexAutoScalingUpdate_ProvisionedWriteCapacityAutoScalingUpdate_FromDafny(input interface{}) *types.AutoScalingSettingsUpdate { + return func() *types.AutoScalingSettingsUpdate { + if input == nil { + return nil + } + return &types.AutoScalingSettingsUpdate{ + MinimumUnits: Com_amazonaws_dynamodb_AutoScalingSettingsUpdate_MinimumUnits_FromDafny(input.(ComAmazonawsDynamodbTypes.AutoScalingSettingsUpdate).Dtor_MinimumUnits().UnwrapOr(nil)), + MaximumUnits: Com_amazonaws_dynamodb_AutoScalingSettingsUpdate_MaximumUnits_FromDafny(input.(ComAmazonawsDynamodbTypes.AutoScalingSettingsUpdate).Dtor_MaximumUnits().UnwrapOr(nil)), + AutoScalingDisabled: Com_amazonaws_dynamodb_AutoScalingSettingsUpdate_AutoScalingDisabled_FromDafny(input.(ComAmazonawsDynamodbTypes.AutoScalingSettingsUpdate).Dtor_AutoScalingDisabled().UnwrapOr(nil)), + AutoScalingRoleArn: Com_amazonaws_dynamodb_AutoScalingSettingsUpdate_AutoScalingRoleArn_FromDafny(input.(ComAmazonawsDynamodbTypes.AutoScalingSettingsUpdate).Dtor_AutoScalingRoleArn().UnwrapOr(nil)), + ScalingPolicyUpdate: Com_amazonaws_dynamodb_AutoScalingSettingsUpdate_ScalingPolicyUpdate_FromDafny(input.(ComAmazonawsDynamodbTypes.AutoScalingSettingsUpdate).Dtor_ScalingPolicyUpdate().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_dynamodb_UpdateTableReplicaAutoScalingInput_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 Com_amazonaws_dynamodb_UpdateTableReplicaAutoScalingInput_ProvisionedWriteCapacityAutoScalingUpdate_FromDafny(input interface{}) *types.AutoScalingSettingsUpdate { + return func() *types.AutoScalingSettingsUpdate { + if input == nil { + return nil + } + return &types.AutoScalingSettingsUpdate{ + MinimumUnits: Com_amazonaws_dynamodb_AutoScalingSettingsUpdate_MinimumUnits_FromDafny(input.(ComAmazonawsDynamodbTypes.AutoScalingSettingsUpdate).Dtor_MinimumUnits().UnwrapOr(nil)), + MaximumUnits: Com_amazonaws_dynamodb_AutoScalingSettingsUpdate_MaximumUnits_FromDafny(input.(ComAmazonawsDynamodbTypes.AutoScalingSettingsUpdate).Dtor_MaximumUnits().UnwrapOr(nil)), + AutoScalingDisabled: Com_amazonaws_dynamodb_AutoScalingSettingsUpdate_AutoScalingDisabled_FromDafny(input.(ComAmazonawsDynamodbTypes.AutoScalingSettingsUpdate).Dtor_AutoScalingDisabled().UnwrapOr(nil)), + AutoScalingRoleArn: Com_amazonaws_dynamodb_AutoScalingSettingsUpdate_AutoScalingRoleArn_FromDafny(input.(ComAmazonawsDynamodbTypes.AutoScalingSettingsUpdate).Dtor_AutoScalingRoleArn().UnwrapOr(nil)), + ScalingPolicyUpdate: Com_amazonaws_dynamodb_AutoScalingSettingsUpdate_ScalingPolicyUpdate_FromDafny(input.(ComAmazonawsDynamodbTypes.AutoScalingSettingsUpdate).Dtor_ScalingPolicyUpdate().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_dynamodb_UpdateTableReplicaAutoScalingInput_ReplicaUpdates_FromDafny(input interface{}) []types.ReplicaAutoScalingUpdate { + return func() []types.ReplicaAutoScalingUpdate { + var fieldValue []types.ReplicaAutoScalingUpdate + if input == nil { + return nil + } + for i := dafny.Iterate(input.(dafny.Sequence).(dafny.Sequence)); ; { + val, ok := i() + if !ok { + break + } + fieldValue = append(fieldValue, Com_amazonaws_dynamodb_ReplicaAutoScalingUpdateList_member_FromDafny(val)) + } + return fieldValue + }() +} +func Com_amazonaws_dynamodb_ReplicaAutoScalingUpdateList_member_FromDafny(input interface{}) types.ReplicaAutoScalingUpdate { + return func() types.ReplicaAutoScalingUpdate { + + return types.ReplicaAutoScalingUpdate{ + RegionName: Com_amazonaws_dynamodb_ReplicaAutoScalingUpdate_RegionName_FromDafny(input.(ComAmazonawsDynamodbTypes.ReplicaAutoScalingUpdate).Dtor_RegionName()), + ReplicaGlobalSecondaryIndexUpdates: Com_amazonaws_dynamodb_ReplicaAutoScalingUpdate_ReplicaGlobalSecondaryIndexUpdates_FromDafny(input.(ComAmazonawsDynamodbTypes.ReplicaAutoScalingUpdate).Dtor_ReplicaGlobalSecondaryIndexUpdates().UnwrapOr(nil)), + ReplicaProvisionedReadCapacityAutoScalingUpdate: Com_amazonaws_dynamodb_ReplicaAutoScalingUpdate_ReplicaProvisionedReadCapacityAutoScalingUpdate_FromDafny(input.(ComAmazonawsDynamodbTypes.ReplicaAutoScalingUpdate).Dtor_ReplicaProvisionedReadCapacityAutoScalingUpdate().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_dynamodb_ReplicaAutoScalingUpdate_RegionName_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 Com_amazonaws_dynamodb_ReplicaAutoScalingUpdate_ReplicaGlobalSecondaryIndexUpdates_FromDafny(input interface{}) []types.ReplicaGlobalSecondaryIndexAutoScalingUpdate { + return func() []types.ReplicaGlobalSecondaryIndexAutoScalingUpdate { + var fieldValue []types.ReplicaGlobalSecondaryIndexAutoScalingUpdate + if input == nil { + return nil + } + for i := dafny.Iterate(input.(dafny.Sequence).(dafny.Sequence)); ; { + val, ok := i() + if !ok { + break + } + fieldValue = append(fieldValue, Com_amazonaws_dynamodb_ReplicaGlobalSecondaryIndexAutoScalingUpdateList_member_FromDafny(val)) + } + return fieldValue + }() +} +func Com_amazonaws_dynamodb_ReplicaGlobalSecondaryIndexAutoScalingUpdateList_member_FromDafny(input interface{}) types.ReplicaGlobalSecondaryIndexAutoScalingUpdate { + return func() types.ReplicaGlobalSecondaryIndexAutoScalingUpdate { + + return types.ReplicaGlobalSecondaryIndexAutoScalingUpdate{ + IndexName: Com_amazonaws_dynamodb_ReplicaGlobalSecondaryIndexAutoScalingUpdate_IndexName_FromDafny(input.(ComAmazonawsDynamodbTypes.ReplicaGlobalSecondaryIndexAutoScalingUpdate).Dtor_IndexName().UnwrapOr(nil)), + ProvisionedReadCapacityAutoScalingUpdate: Com_amazonaws_dynamodb_ReplicaGlobalSecondaryIndexAutoScalingUpdate_ProvisionedReadCapacityAutoScalingUpdate_FromDafny(input.(ComAmazonawsDynamodbTypes.ReplicaGlobalSecondaryIndexAutoScalingUpdate).Dtor_ProvisionedReadCapacityAutoScalingUpdate().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_dynamodb_ReplicaGlobalSecondaryIndexAutoScalingUpdate_IndexName_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_ReplicaGlobalSecondaryIndexAutoScalingUpdate_ProvisionedReadCapacityAutoScalingUpdate_FromDafny(input interface{}) *types.AutoScalingSettingsUpdate { + return func() *types.AutoScalingSettingsUpdate { + if input == nil { + return nil + } + return &types.AutoScalingSettingsUpdate{ + MinimumUnits: Com_amazonaws_dynamodb_AutoScalingSettingsUpdate_MinimumUnits_FromDafny(input.(ComAmazonawsDynamodbTypes.AutoScalingSettingsUpdate).Dtor_MinimumUnits().UnwrapOr(nil)), + MaximumUnits: Com_amazonaws_dynamodb_AutoScalingSettingsUpdate_MaximumUnits_FromDafny(input.(ComAmazonawsDynamodbTypes.AutoScalingSettingsUpdate).Dtor_MaximumUnits().UnwrapOr(nil)), + AutoScalingDisabled: Com_amazonaws_dynamodb_AutoScalingSettingsUpdate_AutoScalingDisabled_FromDafny(input.(ComAmazonawsDynamodbTypes.AutoScalingSettingsUpdate).Dtor_AutoScalingDisabled().UnwrapOr(nil)), + AutoScalingRoleArn: Com_amazonaws_dynamodb_AutoScalingSettingsUpdate_AutoScalingRoleArn_FromDafny(input.(ComAmazonawsDynamodbTypes.AutoScalingSettingsUpdate).Dtor_AutoScalingRoleArn().UnwrapOr(nil)), + ScalingPolicyUpdate: Com_amazonaws_dynamodb_AutoScalingSettingsUpdate_ScalingPolicyUpdate_FromDafny(input.(ComAmazonawsDynamodbTypes.AutoScalingSettingsUpdate).Dtor_ScalingPolicyUpdate().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_dynamodb_ReplicaAutoScalingUpdate_ReplicaProvisionedReadCapacityAutoScalingUpdate_FromDafny(input interface{}) *types.AutoScalingSettingsUpdate { + return func() *types.AutoScalingSettingsUpdate { + if input == nil { + return nil + } + return &types.AutoScalingSettingsUpdate{ + MinimumUnits: Com_amazonaws_dynamodb_AutoScalingSettingsUpdate_MinimumUnits_FromDafny(input.(ComAmazonawsDynamodbTypes.AutoScalingSettingsUpdate).Dtor_MinimumUnits().UnwrapOr(nil)), + MaximumUnits: Com_amazonaws_dynamodb_AutoScalingSettingsUpdate_MaximumUnits_FromDafny(input.(ComAmazonawsDynamodbTypes.AutoScalingSettingsUpdate).Dtor_MaximumUnits().UnwrapOr(nil)), + AutoScalingDisabled: Com_amazonaws_dynamodb_AutoScalingSettingsUpdate_AutoScalingDisabled_FromDafny(input.(ComAmazonawsDynamodbTypes.AutoScalingSettingsUpdate).Dtor_AutoScalingDisabled().UnwrapOr(nil)), + AutoScalingRoleArn: Com_amazonaws_dynamodb_AutoScalingSettingsUpdate_AutoScalingRoleArn_FromDafny(input.(ComAmazonawsDynamodbTypes.AutoScalingSettingsUpdate).Dtor_AutoScalingRoleArn().UnwrapOr(nil)), + ScalingPolicyUpdate: Com_amazonaws_dynamodb_AutoScalingSettingsUpdate_ScalingPolicyUpdate_FromDafny(input.(ComAmazonawsDynamodbTypes.AutoScalingSettingsUpdate).Dtor_ScalingPolicyUpdate().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_dynamodb_UpdateTableReplicaAutoScalingOutput_TableAutoScalingDescription_FromDafny(input interface{}) *types.TableAutoScalingDescription { + return func() *types.TableAutoScalingDescription { + if input == nil { + return nil + } + return &types.TableAutoScalingDescription{ + TableName: Com_amazonaws_dynamodb_TableAutoScalingDescription_TableName_FromDafny(input.(ComAmazonawsDynamodbTypes.TableAutoScalingDescription).Dtor_TableName().UnwrapOr(nil)), + TableStatus: Com_amazonaws_dynamodb_TableAutoScalingDescription_TableStatus_FromDafny(input.(ComAmazonawsDynamodbTypes.TableAutoScalingDescription).Dtor_TableStatus().UnwrapOr(nil)), + Replicas: Com_amazonaws_dynamodb_TableAutoScalingDescription_Replicas_FromDafny(input.(ComAmazonawsDynamodbTypes.TableAutoScalingDescription).Dtor_Replicas().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_dynamodb_UpdateTimeToLiveInput_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 Com_amazonaws_dynamodb_UpdateTimeToLiveInput_TimeToLiveSpecification_FromDafny(input interface{}) *types.TimeToLiveSpecification { + return func() *types.TimeToLiveSpecification { + + return &types.TimeToLiveSpecification{ + Enabled: Com_amazonaws_dynamodb_TimeToLiveSpecification_Enabled_FromDafny(input.(ComAmazonawsDynamodbTypes.TimeToLiveSpecification).Dtor_Enabled()), + AttributeName: Com_amazonaws_dynamodb_TimeToLiveSpecification_AttributeName_FromDafny(input.(ComAmazonawsDynamodbTypes.TimeToLiveSpecification).Dtor_AttributeName()), + } + }() +} +func Com_amazonaws_dynamodb_TimeToLiveSpecification_Enabled_FromDafny(input interface{}) *bool { + return func() *bool { + var b bool + + b = input.(bool) + return &b + }() +} +func Com_amazonaws_dynamodb_TimeToLiveSpecification_AttributeName_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 Com_amazonaws_dynamodb_UpdateTimeToLiveOutput_TimeToLiveSpecification_FromDafny(input interface{}) *types.TimeToLiveSpecification { + return func() *types.TimeToLiveSpecification { + if input == nil { + return nil + } + return &types.TimeToLiveSpecification{ + Enabled: Com_amazonaws_dynamodb_TimeToLiveSpecification_Enabled_FromDafny(input.(ComAmazonawsDynamodbTypes.TimeToLiveSpecification).Dtor_Enabled()), + AttributeName: Com_amazonaws_dynamodb_TimeToLiveSpecification_AttributeName_FromDafny(input.(ComAmazonawsDynamodbTypes.TimeToLiveSpecification).Dtor_AttributeName()), + } + }() +} +func Com_amazonaws_dynamodb_BackupInUseException_message_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_BackupNotFoundException_message_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_ConditionalCheckFailedException_message_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_ConditionalCheckFailedException_Item_FromDafny(input interface{}) map[string]types.AttributeValue { + return func() map[string]types.AttributeValue { + var m map[string]types.AttributeValue = make(map[string]types.AttributeValue) + if input == nil { + return nil + } + + for i := dafny.Iterate(input.(dafny.Map).Items()); ; { + val, ok := i() + if !ok { + break + } + m[Com_amazonaws_dynamodb_AttributeMap_key_FromDafny((*val.(dafny.Tuple).IndexInt(0)))] = Com_amazonaws_dynamodb_AttributeMap_value_FromDafny((*val.(dafny.Tuple).IndexInt(1))) + } + return m + }() +} +func Com_amazonaws_dynamodb_ContinuousBackupsUnavailableException_message_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_DuplicateItemException_message_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_ExportConflictException_message_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_ExportNotFoundException_message_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_GlobalTableAlreadyExistsException_message_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_GlobalTableNotFoundException_message_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_IdempotentParameterMismatchException_Message_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_ImportConflictException_message_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_ImportNotFoundException_message_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_IndexNotFoundException_message_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_InternalServerError_message_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_InvalidEndpointException_Message_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_InvalidExportTimeException_message_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_InvalidRestoreTimeException_message_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_ItemCollectionSizeLimitExceededException_message_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_LimitExceededException_message_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_PointInTimeRecoveryUnavailableException_message_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_PolicyNotFoundException_message_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_ProvisionedThroughputExceededException_message_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_ReplicaAlreadyExistsException_message_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_ReplicaNotFoundException_message_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_RequestLimitExceeded_message_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_ResourceInUseException_message_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_ResourceNotFoundException_message_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_TableAlreadyExistsException_message_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_TableInUseException_message_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_TableNotFoundException_message_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_TransactionCanceledException_Message_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_TransactionCanceledException_CancellationReasons_FromDafny(input interface{}) []types.CancellationReason { + return func() []types.CancellationReason { + var fieldValue []types.CancellationReason + if input == nil { + return nil + } + for i := dafny.Iterate(input.(dafny.Sequence).(dafny.Sequence)); ; { + val, ok := i() + if !ok { + break + } + fieldValue = append(fieldValue, Com_amazonaws_dynamodb_CancellationReasonList_member_FromDafny(val)) + } + return fieldValue + }() +} +func Com_amazonaws_dynamodb_CancellationReasonList_member_FromDafny(input interface{}) types.CancellationReason { + return func() types.CancellationReason { + + return types.CancellationReason{ + Item: Com_amazonaws_dynamodb_CancellationReason_Item_FromDafny(input.(ComAmazonawsDynamodbTypes.CancellationReason).Dtor_Item().UnwrapOr(nil)), + Code: Com_amazonaws_dynamodb_CancellationReason_Code_FromDafny(input.(ComAmazonawsDynamodbTypes.CancellationReason).Dtor_Code().UnwrapOr(nil)), + Message: Com_amazonaws_dynamodb_CancellationReason_Message_FromDafny(input.(ComAmazonawsDynamodbTypes.CancellationReason).Dtor_Message().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_dynamodb_CancellationReason_Item_FromDafny(input interface{}) map[string]types.AttributeValue { + return func() map[string]types.AttributeValue { + var m map[string]types.AttributeValue = make(map[string]types.AttributeValue) + if input == nil { + return nil + } + + for i := dafny.Iterate(input.(dafny.Map).Items()); ; { + val, ok := i() + if !ok { + break + } + m[Com_amazonaws_dynamodb_AttributeMap_key_FromDafny((*val.(dafny.Tuple).IndexInt(0)))] = Com_amazonaws_dynamodb_AttributeMap_value_FromDafny((*val.(dafny.Tuple).IndexInt(1))) + } + return m + }() +} +func Com_amazonaws_dynamodb_CancellationReason_Code_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_CancellationReason_Message_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_TransactionConflictException_message_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_dynamodb_TransactionInProgressException_Message_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} diff --git a/customer-preview/dynamodb/go.mod b/customer-preview/dynamodb/go.mod new file mode 100644 index 000000000..727922491 --- /dev/null +++ b/customer-preview/dynamodb/go.mod @@ -0,0 +1,27 @@ +module github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb + +go 1.23.0 + +require ( + github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library v0.2.0 + github.com/aws/aws-sdk-go-v2/config v1.28.10 + github.com/aws/aws-sdk-go-v2/service/dynamodb v1.39.2 + github.com/aws/smithy-go v1.22.1 + github.com/dafny-lang/DafnyRuntimeGo/v4 v4.9.2 +) + +require ( + github.com/aws/aws-sdk-go-v2 v1.32.8 // indirect + github.com/aws/aws-sdk-go-v2/credentials v1.17.51 // indirect + github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.23 // indirect + github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.27 // indirect + github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.27 // indirect + github.com/aws/aws-sdk-go-v2/internal/ini v1.8.1 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.1 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/endpoint-discovery v1.10.8 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.8 // indirect + github.com/aws/aws-sdk-go-v2/service/sso v1.24.9 // indirect + github.com/aws/aws-sdk-go-v2/service/ssooidc v1.28.8 // indirect + github.com/aws/aws-sdk-go-v2/service/sts v1.33.6 // indirect + github.com/jmespath/go-jmespath v0.4.0 // indirect +) diff --git a/customer-preview/dynamodb/go.sum b/customer-preview/dynamodb/go.sum new file mode 100644 index 000000000..131b85978 --- /dev/null +++ b/customer-preview/dynamodb/go.sum @@ -0,0 +1,46 @@ +github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library v0.2.0 h1:NhVxn86bWyWc/uOnE+oTikZdj75yOW6kMCfZNBf2x5E= +github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library v0.2.0/go.mod h1:m3mzHKiNiSC0LWeWX6ZAxSe6mKbJHgliux1Yu/sjCYI= +github.com/aws/aws-sdk-go-v2 v1.32.8 h1:cZV+NUS/eGxKXMtmyhtYPJ7Z4YLoI/V8bkTdRZfYhGo= +github.com/aws/aws-sdk-go-v2 v1.32.8/go.mod h1:P5WJBrYqqbWVaOxgH0X/FYYD47/nooaPOZPlQdmiN2U= +github.com/aws/aws-sdk-go-v2/config v1.28.10 h1:fKODZHfqQu06pCzR69KJ3GuttraRJkhlC8g80RZ0Dfg= +github.com/aws/aws-sdk-go-v2/config v1.28.10/go.mod h1:PvdxRYZ5Um9QMq9PQ0zHHNdtKK+he2NHtFCUFMXWXeg= +github.com/aws/aws-sdk-go-v2/credentials v1.17.51 h1:F/9Sm6Y6k4LqDesZDPJCLxQGXNNHd/ZtJiWd0lCZKRk= +github.com/aws/aws-sdk-go-v2/credentials v1.17.51/go.mod h1:TKbzCHm43AoPyA+iLGGcruXd4AFhF8tOmLex2R9jWNQ= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.23 h1:IBAoD/1d8A8/1aA8g4MBVtTRHhXRiNAgwdbo/xRM2DI= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.23/go.mod h1:vfENuCM7dofkgKpYzuzf1VT1UKkA/YL3qanfBn7HCaA= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.27 h1:jSJjSBzw8VDIbWv+mmvBSP8ezsztMYJGH+eKqi9AmNs= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.27/go.mod h1:/DAhLbFRgwhmvJdOfSm+WwikZrCuUJiA4WgJG0fTNSw= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.27 h1:l+X4K77Dui85pIj5foXDhPlnqcNRG2QUyvca300lXh8= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.27/go.mod h1:KvZXSFEXm6x84yE8qffKvT3x8J5clWnVFXphpohhzJ8= +github.com/aws/aws-sdk-go-v2/internal/ini v1.8.1 h1:VaRN3TlFdd6KxX1x3ILT5ynH6HvKgqdiXoTxAF4HQcQ= +github.com/aws/aws-sdk-go-v2/internal/ini v1.8.1/go.mod h1:FbtygfRFze9usAadmnGJNc8KsP346kEe+y2/oyhGAGc= +github.com/aws/aws-sdk-go-v2/service/dynamodb v1.39.2 h1:XcdIh35yg1J8bAiUOLtL/PoPMSGsD72Zanwmim8jEXc= +github.com/aws/aws-sdk-go-v2/service/dynamodb v1.39.2/go.mod h1:516U/KQM3zdcahNBjHUZKGWNfNnIYyt7sxLeqOx78b0= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.1 h1:iXtILhvDxB6kPvEXgsDhGaZCSC6LQET5ZHSdJozeI0Y= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.1/go.mod h1:9nu0fVANtYiAePIBh2/pFUSwtJ402hLnp854CNoDOeE= +github.com/aws/aws-sdk-go-v2/service/internal/endpoint-discovery v1.10.8 h1:h56mLNgpqWIL7RZOIQO634Xr569bXGTlIE83t/a0LSE= +github.com/aws/aws-sdk-go-v2/service/internal/endpoint-discovery v1.10.8/go.mod h1:kK04550Xx95KI0sNmwoB7ciS9QkRwt9TojhoTMXyJdo= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.8 h1:cWno7lefSH6Pp+mSznagKCgfDGeZRin66UvYUqAkyeA= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.8/go.mod h1:tPD+VjU3ABTBoEJ3nctu5Nyg4P4yjqSH5bJGGkY4+XE= +github.com/aws/aws-sdk-go-v2/service/sso v1.24.9 h1:YqtxripbjWb2QLyzRK9pByfEDvgg95gpC2AyDq4hFE8= +github.com/aws/aws-sdk-go-v2/service/sso v1.24.9/go.mod h1:lV8iQpg6OLOfBnqbGMBKYjilBlf633qwHnBEiMSPoHY= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.28.8 h1:6dBT1Lz8fK11m22R+AqfRsFn8320K0T5DTGxxOQBSMw= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.28.8/go.mod h1:/kiBvRQXBc6xeJTYzhSdGvJ5vm1tjaDEjH+MSeRJnlY= +github.com/aws/aws-sdk-go-v2/service/sts v1.33.6 h1:VwhTrsTuVn52an4mXx29PqRzs2Dvu921NpGk7y43tAM= +github.com/aws/aws-sdk-go-v2/service/sts v1.33.6/go.mod h1:+8h7PZb3yY5ftmVLD7ocEoE98hdc8PoKS0H3wfx1dlc= +github.com/aws/smithy-go v1.22.1 h1:/HPHZQ0g7f4eUeK6HKglFz8uwVfZKgoI25rb/J+dnro= +github.com/aws/smithy-go v1.22.1/go.mod h1:irrKGvNn1InZwb2d7fkIRNucdfwR8R+Ts3wxYa/cJHg= +github.com/dafny-lang/DafnyRuntimeGo/v4 v4.9.2 h1:g/xAj4F7Zt9wXJ6QjfbfocVi/ZYlAFpNddHCFyfzRDg= +github.com/dafny-lang/DafnyRuntimeGo/v4 v4.9.2/go.mod h1:l2Tm4N2DKuq3ljONC2vOATeM9PUpXbIc8SgXdwwqEto= +github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8= +github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/jmespath/go-jmespath v0.4.0 h1:BEgLn5cpjn8UN1mAw4NjwDrS35OdebyEtFe+9YPoQUg= +github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo= +github.com/jmespath/go-jmespath/internal/testify v1.5.1 h1:shLQSRRSCCPj3f2gpwzGwWFoC7ycTf1rcQZHOlsJ6N8= +github.com/jmespath/go-jmespath/internal/testify v1.5.1/go.mod h1:L3OGu8Wl2/fWfCI6z80xFu9LTZmf1ZRjMHUOPmWr69U= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/yaml.v2 v2.2.8 h1:obN1ZagJSUGI0Ek/LBmuj4SNLPfIny3KsKFopxRdj10= +gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= diff --git a/customer-preview/examples/go.mod b/customer-preview/examples/go.mod new file mode 100644 index 000000000..2b523ce8a --- /dev/null +++ b/customer-preview/examples/go.mod @@ -0,0 +1,42 @@ +module github.com/aws/aws-database-encryption-sdk-dynamodb/examples + +go 1.23.2 + +replace ( + github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk => ../ddb-esdk + github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl => ../mpl + github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives => ../primitives + github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb => ../dynamodb + github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms => ../kms +) + +require ( + github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl v0.0.0 + github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk v0.0.0 + github.com/aws/aws-sdk-go-v2 v1.32.8 + github.com/aws/aws-sdk-go-v2/config v1.28.10 + github.com/aws/aws-sdk-go-v2/service/dynamodb v1.39.2 + github.com/aws/aws-sdk-go-v2/service/kms v1.36.0 +) + +require ( + github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb v0.0.0 // indirect + github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms v0.0.0 // indirect + github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives v0.0.0 // indirect + github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library v0.2.0 // indirect + github.com/aws/aws-sdk-go-v2/credentials v1.17.51 // indirect + github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.23 // indirect + github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.27 // indirect + github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.27 // indirect + github.com/aws/aws-sdk-go-v2/internal/ini v1.8.1 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.1 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/endpoint-discovery v1.10.8 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.8 // indirect + github.com/aws/aws-sdk-go-v2/service/sso v1.24.9 // indirect + github.com/aws/aws-sdk-go-v2/service/ssooidc v1.28.8 // indirect + github.com/aws/aws-sdk-go-v2/service/sts v1.33.6 // indirect + github.com/aws/smithy-go v1.22.1 // indirect + github.com/dafny-lang/DafnyRuntimeGo/v4 v4.9.2 // indirect + github.com/google/uuid v1.6.0 // indirect + github.com/jmespath/go-jmespath v0.4.0 // indirect +) diff --git a/customer-preview/examples/go.sum b/customer-preview/examples/go.sum new file mode 100644 index 000000000..e34f1fe40 --- /dev/null +++ b/customer-preview/examples/go.sum @@ -0,0 +1,50 @@ +github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library v0.2.0 h1:NhVxn86bWyWc/uOnE+oTikZdj75yOW6kMCfZNBf2x5E= +github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library v0.2.0/go.mod h1:m3mzHKiNiSC0LWeWX6ZAxSe6mKbJHgliux1Yu/sjCYI= +github.com/aws/aws-sdk-go-v2 v1.32.8 h1:cZV+NUS/eGxKXMtmyhtYPJ7Z4YLoI/V8bkTdRZfYhGo= +github.com/aws/aws-sdk-go-v2 v1.32.8/go.mod h1:P5WJBrYqqbWVaOxgH0X/FYYD47/nooaPOZPlQdmiN2U= +github.com/aws/aws-sdk-go-v2/config v1.28.10 h1:fKODZHfqQu06pCzR69KJ3GuttraRJkhlC8g80RZ0Dfg= +github.com/aws/aws-sdk-go-v2/config v1.28.10/go.mod h1:PvdxRYZ5Um9QMq9PQ0zHHNdtKK+he2NHtFCUFMXWXeg= +github.com/aws/aws-sdk-go-v2/credentials v1.17.51 h1:F/9Sm6Y6k4LqDesZDPJCLxQGXNNHd/ZtJiWd0lCZKRk= +github.com/aws/aws-sdk-go-v2/credentials v1.17.51/go.mod h1:TKbzCHm43AoPyA+iLGGcruXd4AFhF8tOmLex2R9jWNQ= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.23 h1:IBAoD/1d8A8/1aA8g4MBVtTRHhXRiNAgwdbo/xRM2DI= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.23/go.mod h1:vfENuCM7dofkgKpYzuzf1VT1UKkA/YL3qanfBn7HCaA= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.27 h1:jSJjSBzw8VDIbWv+mmvBSP8ezsztMYJGH+eKqi9AmNs= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.27/go.mod h1:/DAhLbFRgwhmvJdOfSm+WwikZrCuUJiA4WgJG0fTNSw= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.27 h1:l+X4K77Dui85pIj5foXDhPlnqcNRG2QUyvca300lXh8= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.27/go.mod h1:KvZXSFEXm6x84yE8qffKvT3x8J5clWnVFXphpohhzJ8= +github.com/aws/aws-sdk-go-v2/internal/ini v1.8.1 h1:VaRN3TlFdd6KxX1x3ILT5ynH6HvKgqdiXoTxAF4HQcQ= +github.com/aws/aws-sdk-go-v2/internal/ini v1.8.1/go.mod h1:FbtygfRFze9usAadmnGJNc8KsP346kEe+y2/oyhGAGc= +github.com/aws/aws-sdk-go-v2/service/dynamodb v1.39.2 h1:XcdIh35yg1J8bAiUOLtL/PoPMSGsD72Zanwmim8jEXc= +github.com/aws/aws-sdk-go-v2/service/dynamodb v1.39.2/go.mod h1:516U/KQM3zdcahNBjHUZKGWNfNnIYyt7sxLeqOx78b0= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.1 h1:iXtILhvDxB6kPvEXgsDhGaZCSC6LQET5ZHSdJozeI0Y= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.1/go.mod h1:9nu0fVANtYiAePIBh2/pFUSwtJ402hLnp854CNoDOeE= +github.com/aws/aws-sdk-go-v2/service/internal/endpoint-discovery v1.10.8 h1:h56mLNgpqWIL7RZOIQO634Xr569bXGTlIE83t/a0LSE= +github.com/aws/aws-sdk-go-v2/service/internal/endpoint-discovery v1.10.8/go.mod h1:kK04550Xx95KI0sNmwoB7ciS9QkRwt9TojhoTMXyJdo= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.8 h1:cWno7lefSH6Pp+mSznagKCgfDGeZRin66UvYUqAkyeA= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.8/go.mod h1:tPD+VjU3ABTBoEJ3nctu5Nyg4P4yjqSH5bJGGkY4+XE= +github.com/aws/aws-sdk-go-v2/service/kms v1.36.0 h1:jwWMpQ/1obJRdHaix9k10zWSnSMZGdDTZIDiS5CGzq8= +github.com/aws/aws-sdk-go-v2/service/kms v1.36.0/go.mod h1:OHmlX4+o0XIlJAQGAHPIy0N9yZcYS/vNG+T7geSNcFw= +github.com/aws/aws-sdk-go-v2/service/sso v1.24.9 h1:YqtxripbjWb2QLyzRK9pByfEDvgg95gpC2AyDq4hFE8= +github.com/aws/aws-sdk-go-v2/service/sso v1.24.9/go.mod h1:lV8iQpg6OLOfBnqbGMBKYjilBlf633qwHnBEiMSPoHY= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.28.8 h1:6dBT1Lz8fK11m22R+AqfRsFn8320K0T5DTGxxOQBSMw= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.28.8/go.mod h1:/kiBvRQXBc6xeJTYzhSdGvJ5vm1tjaDEjH+MSeRJnlY= +github.com/aws/aws-sdk-go-v2/service/sts v1.33.6 h1:VwhTrsTuVn52an4mXx29PqRzs2Dvu921NpGk7y43tAM= +github.com/aws/aws-sdk-go-v2/service/sts v1.33.6/go.mod h1:+8h7PZb3yY5ftmVLD7ocEoE98hdc8PoKS0H3wfx1dlc= +github.com/aws/smithy-go v1.22.1 h1:/HPHZQ0g7f4eUeK6HKglFz8uwVfZKgoI25rb/J+dnro= +github.com/aws/smithy-go v1.22.1/go.mod h1:irrKGvNn1InZwb2d7fkIRNucdfwR8R+Ts3wxYa/cJHg= +github.com/dafny-lang/DafnyRuntimeGo/v4 v4.9.2 h1:g/xAj4F7Zt9wXJ6QjfbfocVi/ZYlAFpNddHCFyfzRDg= +github.com/dafny-lang/DafnyRuntimeGo/v4 v4.9.2/go.mod h1:l2Tm4N2DKuq3ljONC2vOATeM9PUpXbIc8SgXdwwqEto= +github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8= +github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= +github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/jmespath/go-jmespath v0.4.0 h1:BEgLn5cpjn8UN1mAw4NjwDrS35OdebyEtFe+9YPoQUg= +github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo= +github.com/jmespath/go-jmespath/internal/testify v1.5.1 h1:shLQSRRSCCPj3f2gpwzGwWFoC7ycTf1rcQZHOlsJ6N8= +github.com/jmespath/go-jmespath/internal/testify v1.5.1/go.mod h1:L3OGu8Wl2/fWfCI6z80xFu9LTZmf1ZRjMHUOPmWr69U= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/yaml.v2 v2.2.8 h1:obN1ZagJSUGI0Ek/LBmuj4SNLPfIny3KsKFopxRdj10= +gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= diff --git a/customer-preview/examples/keyring/awskmskeyring.go b/customer-preview/examples/keyring/awskmskeyring.go new file mode 100644 index 000000000..0d4692ddc --- /dev/null +++ b/customer-preview/examples/keyring/awskmskeyring.go @@ -0,0 +1,179 @@ +// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +package keyring + +import ( + "context" + "fmt" + "reflect" + + mpl "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/awscryptographymaterialproviderssmithygenerated" + mpltypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/awscryptographymaterialproviderssmithygeneratedtypes" + dbesdkdynamodbencryptiontypes "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes" + dbesdkstructuredencryptiontypes "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes" + "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/dbesdkmiddleware" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/config" + "github.com/aws/aws-sdk-go-v2/service/dynamodb" + "github.com/aws/aws-sdk-go-v2/service/dynamodb/types" + "github.com/aws/aws-sdk-go-v2/service/kms" +) + +/* +This example sets up DynamoDb Encryption for the AWS SDK client +and uses the low level PutItem and GetItem DDB APIs to demonstrate +putting a client-side encrypted item into DynamoDb +and then retrieving and decrypting that item from DynamoDb. + +Running this example requires access to the DDB Table whose name +is provided in CLI arguments. +This table must be configured with the following +primary key configuration: + - Partition key is named "partition_key" with type (S) + - Sort key is named "sort_key" with type (N) +*/ +func AwsKmsKeyringExample(kmsKeyID, ddbTableName string) { + // 1. Create a Keyring. This Keyring will be responsible for protecting the data keys that protect your data. + // For this example, we will create a AWS KMS Keyring with the AWS KMS Key we want to use. + // We will use the `CreateMrkMultiKeyring` method to create this keyring, + // as it will correctly handle both single region and Multi-Region KMS Keys. + cfg, err := config.LoadDefaultConfig(context.TODO()) + if err != nil { + panic(err) + } + // Create KMS client + kmsClient := kms.NewFromConfig(cfg, func(o *kms.Options) { + o.Region = "us-west-2" + }) + // Initialize the mpl client + matProv, err := mpl.NewClient(mpltypes.MaterialProvidersConfig{}) + if err != nil { + panic(err) + } + // Create the Aws Kms Keyring + awsKmsKeyringInput := mpltypes.CreateAwsKmsKeyringInput{ + KmsClient: kmsClient, + KmsKeyId: kmsKeyID, + } + keyring, err := matProv.CreateAwsKmsKeyring(context.Background(), awsKmsKeyringInput) + if err != nil { + panic(err) + } + + // 2. Configure which attributes are encrypted and/or signed when writing new items. + // For each attribute that may exist on the items we plan to write to our DynamoDbTable, + // we must explicitly configure how they should be treated during item encryption: + // - ENCRYPT_AND_SIGN: The attribute is encrypted and included in the signature + // - SIGN_ONLY: The attribute not encrypted, but is still included in the signature + // - DO_NOTHING: The attribute is not encrypted and not included in the signature + attributeActions := map[string]dbesdkstructuredencryptiontypes.CryptoAction{ + "partition_key": dbesdkstructuredencryptiontypes.CryptoActionSignOnly, // Partition key must be SIGN_ONLY + "sort_key": dbesdkstructuredencryptiontypes.CryptoActionSignOnly, // Sort key must be SIGN_ONLY + "attribute1": dbesdkstructuredencryptiontypes.CryptoActionEncryptAndSign, + "attribute2": dbesdkstructuredencryptiontypes.CryptoActionSignOnly, + ":attribute3": dbesdkstructuredencryptiontypes.CryptoActionDoNothing, + } + + // 3. Configure which attributes we expect to be included in the signature + // when reading items. There are two options for configuring this: + // + // - (Recommended) Configure `allowedUnsignedAttributesPrefix`: + // When defining your DynamoDb schema and deciding on attribute names, + // choose a distinguishing prefix (such as ":") for all attributes that + // you do not want to include in the signature. + // This has two main benefits: + // - It is easier to reason about the security and authenticity of data within your item + // when all unauthenticated data is easily distinguishable by their attribute name. + // - If you need to add new unauthenticated attributes in the future, + // you can easily make the corresponding update to your `attributeActionsOnEncrypt` + // and immediately start writing to that new attribute, without + // any other configuration update needed. + // Once you configure this field, it is not safe to update it. + // + // - Configure `allowedUnsignedAttributes`: You may also explicitly list + // a set of attributes that should be considered unauthenticated when encountered + // on read. Be careful if you use this configuration. Do not remove an attribute + // name from this configuration, even if you are no longer writing with that attribute, + // as old items may still include this attribute, and our configuration needs to know + // to continue to exclude this attribute from the signature scope. + // If you add new attribute names to this field, you must first deploy the update to this + // field to all readers in your host fleet before deploying the update to start writing + // with that new attribute. + // + // For this example, we have designed our DynamoDb table such that any attribute name with + // the ":" prefix should be considered unauthenticated. + allowedUnsignedAttributePrefix := ":" + + // 4. Create the DynamoDb Encryption configuration for the table we will be writing to. + partitionKey := "partition_key" + sortKeyName := "sort_key" + algorithmSuiteId := mpltypes.DBEAlgorithmSuiteIdAlgAes256GcmHkdfSha512CommitKeyEcdsaP384SymsigHmacSha384 + tableConfig := dbesdkdynamodbencryptiontypes.DynamoDbTableEncryptionConfig{ + LogicalTableName: ddbTableName, + PartitionKeyName: partitionKey, + SortKeyName: &sortKeyName, + AttributeActionsOnEncrypt: attributeActions, + Keyring: keyring, + AllowedUnsignedAttributePrefix: &allowedUnsignedAttributePrefix, + AlgorithmSuiteId: &algorithmSuiteId, + } + tableConfigsMap := make(map[string]dbesdkdynamodbencryptiontypes.DynamoDbTableEncryptionConfig) + tableConfigsMap[ddbTableName] = tableConfig + listOfTableConfigs := dbesdkdynamodbencryptiontypes.DynamoDbTablesEncryptionConfig{ + TableEncryptionConfigs: tableConfigsMap, + } + // 5. Create a new AWS SDK DynamoDb client using the TableEncryptionConfigs + dbEsdkMiddleware, err := dbesdkmiddleware.NewDBEsdkMiddleware(listOfTableConfigs) + if err != nil { + panic(err) + } + ddb := dynamodb.NewFromConfig(cfg, dbEsdkMiddleware.CreateMiddleware()) + + // 6. Put an item into our table using the above client. + // Before the item gets sent to DynamoDb, it will be encrypted + // client-side, according to our configuration. + item := map[string]types.AttributeValue{ + "partition_key": &types.AttributeValueMemberS{Value: "BasicPutGetExample"}, + "sort_key": &types.AttributeValueMemberN{Value: "0"}, + "attribute1": &types.AttributeValueMemberS{Value: "encrypt and sign me!"}, + "attribute2": &types.AttributeValueMemberS{Value: "sign me!"}, + ":attribute3": &types.AttributeValueMemberS{Value: "ignore me!"}, + } + putInput := &dynamodb.PutItemInput{ + TableName: aws.String(ddbTableName), + Item: item, + } + _, err = ddb.PutItem(context.TODO(), putInput) + if err != nil { + panic(err) + } + + // 7. Get the item back from our table using the same client. + // The client will decrypt the item client-side, and return + // back the original item. + key := map[string]types.AttributeValue{ + "partition_key": &types.AttributeValueMemberS{Value: "BasicPutGetExample"}, + "sort_key": &types.AttributeValueMemberN{Value: "0"}, + } + getInput := &dynamodb.GetItemInput{ + TableName: aws.String(ddbTableName), + Key: key, + // In this example we configure a strongly consistent read + // because we perform a read immediately after a write (for demonstrative purposes). + // By default, reads are only eventually consistent. + // Read our docs to determine which read consistency to use for your application: + // https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ReadConsistency.html + ConsistentRead: aws.Bool(true), + } + result, err := ddb.GetItem(context.TODO(), getInput) + if err != nil { + panic(err) + } + // Verify the decrypted item + if !reflect.DeepEqual(item, result.Item) { + panic("Decrypted item does not match original item") + } + fmt.Println("Aws Kms Keyring Example successful.") +} diff --git a/customer-preview/examples/keyring/rawaeskeyring.go b/customer-preview/examples/keyring/rawaeskeyring.go new file mode 100644 index 000000000..f7a075411 --- /dev/null +++ b/customer-preview/examples/keyring/rawaeskeyring.go @@ -0,0 +1,197 @@ +// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +package keyring + +import ( + "context" + "crypto/rand" + "fmt" + "reflect" + + mpl "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/awscryptographymaterialproviderssmithygenerated" + mpltypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/awscryptographymaterialproviderssmithygeneratedtypes" + dbesdkdynamodbencryptiontypes "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes" + dbesdkstructuredencryptiontypes "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes" + "github.com/aws/aws-database-encryption-sdk-dynamodb/releases/go/ddb-esdk/dbesdkmiddleware" + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/config" + "github.com/aws/aws-sdk-go-v2/service/dynamodb" + "github.com/aws/aws-sdk-go-v2/service/dynamodb/types" +) + +/* + This example sets up DynamoDb Encryption for the AWS SDK client + using the raw AES Keyring. This keyring takes in an AES key + and uses that key to protect the data keys that encrypt and + decrypt DynamoDb table items. + + This example takes in an `aesKeyBytes` parameter. This parameter + should be a ByteBuffer representing a 256-bit AES key. If this example + is run through the class' main method, it will create a new key. + In practice, users of this library should not randomly generate a key, + and should instead retrieve an existing key from a secure key + management system (e.g. an HSM). + + This example encrypts a test item using the provided AES key and puts the + encrypted item to the provided DynamoDb table. Then, it gets the + item from the table and decrypts it. + + Running this example requires access to the DDB Table whose name + is provided in CLI arguments. + This table must be configured with the following + primary key configuration: + - Partition key is named "partition_key" with type (S) + - Sort key is named "sort_key" with type (S) +*/ + +func RawAesExample(ddbTableName string) { + aesKeyBytes, err := generateAes256KeyBytes() + if err != nil { + panic(err) + } + // 1. Create the keyring. + // The DynamoDb encryption client uses this to encrypt and decrypt items. + + // Initialize the mpl client + matProv, err := mpl.NewClient(mpltypes.MaterialProvidersConfig{}) + if err != nil { + panic(err) + } + // Create the Raw Aes Keyring + var keyNamespace = "my-key-namespace" + var keyName = "my-aes-key-name" + rawAesKeyRingInput := mpltypes.CreateRawAesKeyringInput{ + KeyName: keyName, + KeyNamespace: keyNamespace, + WrappingKey: aesKeyBytes, + WrappingAlg: mpltypes.AesWrappingAlgAlgAes256GcmIv12Tag16, + } + rawAesKeyring, err := matProv.CreateRawAesKeyring(context.Background(), rawAesKeyRingInput) + if err != nil { + panic(err) + } + // 2. Configure which attributes are encrypted and/or signed when writing new items. + // For each attribute that may exist on the items we plan to write to our DynamoDbTable, + // we must explicitly configure how they should be treated during item encryption: + // - ENCRYPT_AND_SIGN: The attribute is encrypted and included in the signature + // - SIGN_ONLY: The attribute not encrypted, but is still included in the signature + // - DO_NOTHING: The attribute is not encrypted and not included in the signature + attributeActionsOnEncrypt := map[string]dbesdkstructuredencryptiontypes.CryptoAction{ + "partition_key": dbesdkstructuredencryptiontypes.CryptoActionSignOnly, // Partition key must be SIGN_ONLY + "sort_key": dbesdkstructuredencryptiontypes.CryptoActionSignOnly, // Sort key must be SIGN_ONLY + "sensitive_data": dbesdkstructuredencryptiontypes.CryptoActionEncryptAndSign, + } + // 3. Configure which attributes we expect to be included in the signature + // when reading items. There are two options for configuring this: + // + // - (Recommended) Configure `allowedUnsignedAttributesPrefix`: + // When defining your DynamoDb schema and deciding on attribute names, + // choose a distinguishing prefix (such as ":") for all attributes that + // you do not want to include in the signature. + // This has two main benefits: + // - It is easier to reason about the security and authenticity of data within your item + // when all unauthenticated data is easily distinguishable by their attribute name. + // - If you need to add new unauthenticated attributes in the future, + // you can easily make the corresponding update to your `attributeActionsOnEncrypt` + // and immediately start writing to that new attribute, without + // any other configuration update needed. + // Once you configure this field, it is not safe to update it. + // + // - Configure `allowedUnsignedAttributes`: You may also explicitly list + // a set of attributes that should be considered unauthenticated when encountered + // on read. Be careful if you use this configuration. Do not remove an attribute + // name from this configuration, even if you are no longer writing with that attribute, + // as old items may still include this attribute, and our configuration needs to know + // to continue to exclude this attribute from the signature scope. + // If you add new attribute names to this field, you must first deploy the update to this + // field to all readers in your host fleet before deploying the update to start writing + // with that new attribute. + // + // For this example, we currently authenticate all attributes. To make it easier to + // add unauthenticated attributes in the future, we define a prefix ":" for such attributes. + unsignedAttrPrefix := ":" + + // 4. Create the DynamoDb Encryption configuration for the table we will be writing to. + partitionKey := "partition_key" + sortKeyName := "sort_key" + tableConfig := dbesdkdynamodbencryptiontypes.DynamoDbTableEncryptionConfig{ + LogicalTableName: ddbTableName, + PartitionKeyName: partitionKey, + SortKeyName: &sortKeyName, + AttributeActionsOnEncrypt: attributeActionsOnEncrypt, + Keyring: rawAesKeyring, + AllowedUnsignedAttributePrefix: &unsignedAttrPrefix, + } + tableConfigsMap := make(map[string]dbesdkdynamodbencryptiontypes.DynamoDbTableEncryptionConfig) + tableConfigsMap[ddbTableName] = tableConfig + listOfTableConfigs := dbesdkdynamodbencryptiontypes.DynamoDbTablesEncryptionConfig{ + TableEncryptionConfigs: tableConfigsMap, + } + // 5. Create a new AWS SDK DynamoDb client using the Config above + + // Create DBESDK middleware + dbEsdkMiddleware, err := dbesdkmiddleware.NewDBEsdkMiddleware(listOfTableConfigs) + if err != nil { + panic(err) + } + // Create aws config + cfg, err := config.LoadDefaultConfig(context.TODO()) + if err != nil { + panic(err) + } + ddb := dynamodb.NewFromConfig(cfg, dbEsdkMiddleware.CreateMiddleware()) + + // 6. Put an item into our table using the above client. + // Before the item gets sent to DynamoDb, it will be encrypted + // client-side, according to our configuration. + item := map[string]types.AttributeValue{ + "partition_key": &types.AttributeValueMemberS{Value: "rawAesKeyringItem"}, + "sort_key": &types.AttributeValueMemberN{Value: "0"}, + "sensitive_data": &types.AttributeValueMemberS{Value: "encrypt and sign me!"}, + } + putInput := &dynamodb.PutItemInput{ + TableName: aws.String(ddbTableName), + Item: item, + } + _, err = ddb.PutItem(context.TODO(), putInput) + if err != nil { + panic(err) + } + // 7. Get the item back from our table using the same client. + // The client will decrypt the item client-side, and return + // back the original item. + key := map[string]types.AttributeValue{ + "partition_key": &types.AttributeValueMemberS{Value: "rawAesKeyringItem"}, + "sort_key": &types.AttributeValueMemberN{Value: "0"}, + } + getInput := &dynamodb.GetItemInput{ + TableName: aws.String(ddbTableName), + Key: key, + // In this example we configure a strongly consistent read + // because we perform a read immediately after a write (for demonstrative purposes). + // By default, reads are only eventually consistent. + // Read our docs to determine which read consistency to use for your application: + // https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ReadConsistency.html + ConsistentRead: aws.Bool(true), + } + result, err := ddb.GetItem(context.TODO(), getInput) + if err != nil { + panic(err) + } + // Verify the decrypted item + if !reflect.DeepEqual(item, result.Item) { + panic("Decrypted item does not match original item") + } + fmt.Println("Raw Aes Example successful.") +} + +func generateAes256KeyBytes() ([]byte, error) { + key := make([]byte, 32) // 256 bits = 32 bytes + // Use crypto/rand for cryptographically secure random numbers + _, err := rand.Read(key) + if err != nil { + return nil, err + } + return key, nil +} diff --git a/customer-preview/examples/main.go b/customer-preview/examples/main.go new file mode 100644 index 000000000..88aaefd33 --- /dev/null +++ b/customer-preview/examples/main.go @@ -0,0 +1,11 @@ +package main + +import ( + "github.com/aws/aws-database-encryption-sdk-dynamodb/examples/keyring" + "github.com/aws/aws-database-encryption-sdk-dynamodb/examples/utils" +) + +func main() { + keyring.AwsKmsKeyringExample(utils.KmsKeyID(), utils.DdbTableName()) + keyring.RawAesExample(utils.DdbTableName()) +} diff --git a/customer-preview/examples/utils/exampleUtils.go b/customer-preview/examples/utils/exampleUtils.go new file mode 100644 index 000000000..f11dc14d0 --- /dev/null +++ b/customer-preview/examples/utils/exampleUtils.go @@ -0,0 +1,31 @@ +// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +package utils + +const ( + kmsKeyID = "arn:aws:kms:us-west-2:658956600833:key/b3537ef1-d8dc-4780-9f5a-55776cbb2f7f" + ddbTableName = "DynamoDbEncryptionInterceptorTestTableCS" +) + +func KmsKeyID() string { + return kmsKeyID +} + +func DdbTableName() string { + return ddbTableName +} + +func AreMapsEqual(map1, map2 map[string]string) bool { + if len(map1) != len(map2) { + return false + } + + for key, value1 := range map1 { + value2, exists := map2[key] + if !exists || value1 != value2 { + return false + } + } + return true +} diff --git a/customer-preview/kms/ComAmazonawsKmsTypes/ComAmazonawsKmsTypes.go b/customer-preview/kms/ComAmazonawsKmsTypes/ComAmazonawsKmsTypes.go new file mode 100644 index 000000000..6ee93acc7 --- /dev/null +++ b/customer-preview/kms/ComAmazonawsKmsTypes/ComAmazonawsKmsTypes.go @@ -0,0 +1,20043 @@ +// Package ComAmazonawsKmsTypes +// Dafny module ComAmazonawsKmsTypes compiled into Go + +package ComAmazonawsKmsTypes + +import ( + os "os" + + m_Actions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Actions" + m_Base64 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64" + m_Base64Lemmas "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64Lemmas" + m_BoundedInts "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/BoundedInts" + m_DivInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternals" + m_DivInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternalsNonlinear" + m_DivMod "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivMod" + m_FileIO "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FileIO" + m_FloatCompare "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FloatCompare" + m_Functions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Functions" + m_GeneralInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GeneralInternals" + m_GetOpt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GetOpt" + m_HexStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/HexStrings" + m_Logarithm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Logarithm" + m__Math "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Math_" + m_ModInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternals" + m_ModInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternalsNonlinear" + m_Mul "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Mul" + m_MulInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternals" + m_MulInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternalsNonlinear" + m_Power "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Power" + m_Relations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Relations" + m_Seq "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq" + m_Seq_MergeSort "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq_MergeSort" + m_Sorting "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Sorting" + m_StandardLibrary "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary" + m_StandardLibraryInterop "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibraryInterop" + m_StandardLibrary_Sequence "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_Sequence" + m_StandardLibrary_String "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_String" + m_StandardLibrary_UInt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_UInt" + m_Streams "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Streams" + m_UnicodeStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UnicodeStrings" + m__Unicode "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Unicode_" + m_Utf16EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf16EncodingForm" + m_Utf8EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf8EncodingForm" + m_Wrappers "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers" + m__System "github.com/dafny-lang/DafnyRuntimeGo/v4/System_" + _dafny "github.com/dafny-lang/DafnyRuntimeGo/v4/dafny" +) + +var _ = os.Args +var _ _dafny.Dummy__ +var _ m__System.Dummy__ +var _ m_Wrappers.Dummy__ +var _ m_Relations.Dummy__ +var _ m_Seq_MergeSort.Dummy__ +var _ m__Math.Dummy__ +var _ m_Seq.Dummy__ +var _ m_BoundedInts.Dummy__ +var _ m__Unicode.Dummy__ +var _ m_Functions.Dummy__ +var _ m_Utf8EncodingForm.Dummy__ +var _ m_Utf16EncodingForm.Dummy__ +var _ m_UnicodeStrings.Dummy__ +var _ m_FileIO.Dummy__ +var _ m_GeneralInternals.Dummy__ +var _ m_MulInternalsNonlinear.Dummy__ +var _ m_MulInternals.Dummy__ +var _ m_Mul.Dummy__ +var _ m_ModInternalsNonlinear.Dummy__ +var _ m_DivInternalsNonlinear.Dummy__ +var _ m_ModInternals.Dummy__ +var _ m_DivInternals.Dummy__ +var _ m_DivMod.Dummy__ +var _ m_Power.Dummy__ +var _ m_Logarithm.Dummy__ +var _ m_StandardLibraryInterop.Dummy__ +var _ m_StandardLibrary_UInt.Dummy__ +var _ m_StandardLibrary_Sequence.Dummy__ +var _ m_StandardLibrary_String.Dummy__ +var _ m_StandardLibrary.Dummy__ +var _ m_Streams.Dummy__ +var _ m_Sorting.Dummy__ +var _ m_HexStrings.Dummy__ +var _ m_GetOpt.Dummy__ +var _ m_FloatCompare.Dummy__ +var _ m_Base64.Dummy__ +var _ m_Base64Lemmas.Dummy__ +var _ m_Actions.Dummy__ + +type Dummy__ struct{} + +// Definition of class Default__ +type Default__ struct { + dummy byte +} + +func New_Default___() *Default__ { + _this := Default__{} + + return &_this +} + +type CompanionStruct_Default___ struct { +} + +var Companion_Default___ = CompanionStruct_Default___{} + +func (_this *Default__) Equals(other *Default__) bool { + return _this == other +} + +func (_this *Default__) EqualsGeneric(x interface{}) bool { + other, ok := x.(*Default__) + return ok && _this.Equals(other) +} + +func (*Default__) String() string { + return "ComAmazonawsKmsTypes.Default__" +} +func (_this *Default__) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = &Default__{} + +func (_static *CompanionStruct_Default___) IsValid__AliasNameType(x _dafny.Sequence) bool { + return ((_dafny.One).Cmp(_dafny.IntOfUint32((x).Cardinality())) <= 0) && ((_dafny.IntOfUint32((x).Cardinality())).Cmp(_dafny.IntOfInt64(256)) <= 0) +} +func (_static *CompanionStruct_Default___) IsValid__ArnType(x _dafny.Sequence) bool { + return ((_dafny.IntOfInt64(20)).Cmp(_dafny.IntOfUint32((x).Cardinality())) <= 0) && ((_dafny.IntOfUint32((x).Cardinality())).Cmp(_dafny.IntOfInt64(2048)) <= 0) +} +func (_static *CompanionStruct_Default___) IsValid__AttestationDocumentType(x _dafny.Sequence) bool { + return ((_dafny.One).Cmp(_dafny.IntOfUint32((x).Cardinality())) <= 0) && ((_dafny.IntOfUint32((x).Cardinality())).Cmp(_dafny.IntOfInt64(262144)) <= 0) +} +func (_static *CompanionStruct_Default___) IsValid__CiphertextType(x _dafny.Sequence) bool { + return ((_dafny.One).Cmp(_dafny.IntOfUint32((x).Cardinality())) <= 0) && ((_dafny.IntOfUint32((x).Cardinality())).Cmp(_dafny.IntOfInt64(6144)) <= 0) +} +func (_static *CompanionStruct_Default___) IsValid__CloudHsmClusterIdType(x _dafny.Sequence) bool { + return ((_dafny.IntOfInt64(19)).Cmp(_dafny.IntOfUint32((x).Cardinality())) <= 0) && ((_dafny.IntOfUint32((x).Cardinality())).Cmp(_dafny.IntOfInt64(24)) <= 0) +} +func (_static *CompanionStruct_Default___) IsValid__CustomKeyStoreIdType(x _dafny.Sequence) bool { + return ((_dafny.One).Cmp(_dafny.IntOfUint32((x).Cardinality())) <= 0) && ((_dafny.IntOfUint32((x).Cardinality())).Cmp(_dafny.IntOfInt64(64)) <= 0) +} +func (_static *CompanionStruct_Default___) IsValid__CustomKeyStoreNameType(x _dafny.Sequence) bool { + return ((_dafny.One).Cmp(_dafny.IntOfUint32((x).Cardinality())) <= 0) && ((_dafny.IntOfUint32((x).Cardinality())).Cmp(_dafny.IntOfInt64(256)) <= 0) +} +func (_static *CompanionStruct_Default___) IsValid__DescriptionType(x _dafny.Sequence) bool { + return ((_dafny.IntOfUint32((x).Cardinality())).Sign() != -1) && ((_dafny.IntOfUint32((x).Cardinality())).Cmp(_dafny.IntOfInt64(8192)) <= 0) +} +func (_static *CompanionStruct_Default___) IsValid__GrantIdType(x _dafny.Sequence) bool { + return ((_dafny.One).Cmp(_dafny.IntOfUint32((x).Cardinality())) <= 0) && ((_dafny.IntOfUint32((x).Cardinality())).Cmp(_dafny.IntOfInt64(128)) <= 0) +} +func (_static *CompanionStruct_Default___) IsValid__GrantNameType(x _dafny.Sequence) bool { + return ((_dafny.One).Cmp(_dafny.IntOfUint32((x).Cardinality())) <= 0) && ((_dafny.IntOfUint32((x).Cardinality())).Cmp(_dafny.IntOfInt64(256)) <= 0) +} +func (_static *CompanionStruct_Default___) IsValid__GrantTokenList(x _dafny.Sequence) bool { + return ((_dafny.IntOfUint32((x).Cardinality())).Sign() != -1) && ((_dafny.IntOfUint32((x).Cardinality())).Cmp(_dafny.IntOfInt64(10)) <= 0) +} +func (_static *CompanionStruct_Default___) IsValid__GrantTokenType(x _dafny.Sequence) bool { + return ((_dafny.One).Cmp(_dafny.IntOfUint32((x).Cardinality())) <= 0) && ((_dafny.IntOfUint32((x).Cardinality())).Cmp(_dafny.IntOfInt64(8192)) <= 0) +} +func (_static *CompanionStruct_Default___) IsValid__KeyIdType(x _dafny.Sequence) bool { + return ((_dafny.One).Cmp(_dafny.IntOfUint32((x).Cardinality())) <= 0) && ((_dafny.IntOfUint32((x).Cardinality())).Cmp(_dafny.IntOfInt64(2048)) <= 0) +} +func (_static *CompanionStruct_Default___) IsValid__KeyStorePasswordType(x _dafny.Sequence) bool { + return ((_dafny.IntOfInt64(7)).Cmp(_dafny.IntOfUint32((x).Cardinality())) <= 0) && ((_dafny.IntOfUint32((x).Cardinality())).Cmp(_dafny.IntOfInt64(32)) <= 0) +} +func (_static *CompanionStruct_Default___) IsValid__LimitType(x int32) bool { + return ((int32(1)) <= (x)) && ((x) <= (int32(1000))) +} +func (_static *CompanionStruct_Default___) IsValid__MarkerType(x _dafny.Sequence) bool { + return ((_dafny.One).Cmp(_dafny.IntOfUint32((x).Cardinality())) <= 0) && ((_dafny.IntOfUint32((x).Cardinality())).Cmp(_dafny.IntOfInt64(1024)) <= 0) +} +func (_static *CompanionStruct_Default___) IsValid__NumberOfBytesType(x int32) bool { + return ((int32(1)) <= (x)) && ((x) <= (int32(1024))) +} +func (_static *CompanionStruct_Default___) IsValid__PendingWindowInDaysType(x int32) bool { + return ((int32(1)) <= (x)) && ((x) <= (int32(365))) +} +func (_static *CompanionStruct_Default___) IsValid__PlaintextType(x _dafny.Sequence) bool { + return ((_dafny.One).Cmp(_dafny.IntOfUint32((x).Cardinality())) <= 0) && ((_dafny.IntOfUint32((x).Cardinality())).Cmp(_dafny.IntOfInt64(4096)) <= 0) +} +func (_static *CompanionStruct_Default___) IsValid__PolicyNameType(x _dafny.Sequence) bool { + return ((_dafny.One).Cmp(_dafny.IntOfUint32((x).Cardinality())) <= 0) && ((_dafny.IntOfUint32((x).Cardinality())).Cmp(_dafny.IntOfInt64(128)) <= 0) +} +func (_static *CompanionStruct_Default___) IsValid__PolicyType(x _dafny.Sequence) bool { + return ((_dafny.One).Cmp(_dafny.IntOfUint32((x).Cardinality())) <= 0) && ((_dafny.IntOfUint32((x).Cardinality())).Cmp(_dafny.IntOfInt64(131072)) <= 0) +} +func (_static *CompanionStruct_Default___) IsValid__PrincipalIdType(x _dafny.Sequence) bool { + return ((_dafny.One).Cmp(_dafny.IntOfUint32((x).Cardinality())) <= 0) && ((_dafny.IntOfUint32((x).Cardinality())).Cmp(_dafny.IntOfInt64(256)) <= 0) +} +func (_static *CompanionStruct_Default___) IsValid__PublicKeyType(x _dafny.Sequence) bool { + return ((_dafny.One).Cmp(_dafny.IntOfUint32((x).Cardinality())) <= 0) && ((_dafny.IntOfUint32((x).Cardinality())).Cmp(_dafny.IntOfInt64(8192)) <= 0) +} +func (_static *CompanionStruct_Default___) IsValid__RegionType(x _dafny.Sequence) bool { + return ((_dafny.One).Cmp(_dafny.IntOfUint32((x).Cardinality())) <= 0) && ((_dafny.IntOfUint32((x).Cardinality())).Cmp(_dafny.IntOfInt64(32)) <= 0) +} +func (_static *CompanionStruct_Default___) IsValid__RotationPeriodInDaysType(x int32) bool { + return ((int32(90)) <= (x)) && ((x) <= (int32(2560))) +} +func (_static *CompanionStruct_Default___) IsValid__TagKeyType(x _dafny.Sequence) bool { + return ((_dafny.One).Cmp(_dafny.IntOfUint32((x).Cardinality())) <= 0) && ((_dafny.IntOfUint32((x).Cardinality())).Cmp(_dafny.IntOfInt64(128)) <= 0) +} +func (_static *CompanionStruct_Default___) IsValid__TagValueType(x _dafny.Sequence) bool { + return ((_dafny.IntOfUint32((x).Cardinality())).Sign() != -1) && ((_dafny.IntOfUint32((x).Cardinality())).Cmp(_dafny.IntOfInt64(256)) <= 0) +} +func (_static *CompanionStruct_Default___) IsValid__TrustAnchorCertificateType(x _dafny.Sequence) bool { + return ((_dafny.One).Cmp(_dafny.IntOfUint32((x).Cardinality())) <= 0) && ((_dafny.IntOfUint32((x).Cardinality())).Cmp(_dafny.IntOfInt64(5000)) <= 0) +} +func (_static *CompanionStruct_Default___) IsValid__XksKeyIdType(x _dafny.Sequence) bool { + return ((_dafny.One).Cmp(_dafny.IntOfUint32((x).Cardinality())) <= 0) && ((_dafny.IntOfUint32((x).Cardinality())).Cmp(_dafny.IntOfInt64(128)) <= 0) +} +func (_static *CompanionStruct_Default___) IsValid__XksProxyAuthenticationAccessKeyIdType(x _dafny.Sequence) bool { + return ((_dafny.IntOfInt64(20)).Cmp(_dafny.IntOfUint32((x).Cardinality())) <= 0) && ((_dafny.IntOfUint32((x).Cardinality())).Cmp(_dafny.IntOfInt64(30)) <= 0) +} +func (_static *CompanionStruct_Default___) IsValid__XksProxyAuthenticationRawSecretAccessKeyType(x _dafny.Sequence) bool { + return ((_dafny.IntOfInt64(43)).Cmp(_dafny.IntOfUint32((x).Cardinality())) <= 0) && ((_dafny.IntOfUint32((x).Cardinality())).Cmp(_dafny.IntOfInt64(64)) <= 0) +} +func (_static *CompanionStruct_Default___) IsValid__XksProxyUriEndpointType(x _dafny.Sequence) bool { + return ((_dafny.IntOfInt64(10)).Cmp(_dafny.IntOfUint32((x).Cardinality())) <= 0) && ((_dafny.IntOfUint32((x).Cardinality())).Cmp(_dafny.IntOfInt64(128)) <= 0) +} +func (_static *CompanionStruct_Default___) IsValid__XksProxyUriPathType(x _dafny.Sequence) bool { + return ((_dafny.IntOfInt64(10)).Cmp(_dafny.IntOfUint32((x).Cardinality())) <= 0) && ((_dafny.IntOfUint32((x).Cardinality())).Cmp(_dafny.IntOfInt64(128)) <= 0) +} +func (_static *CompanionStruct_Default___) IsValid__XksProxyVpcEndpointServiceNameType(x _dafny.Sequence) bool { + return ((_dafny.IntOfInt64(20)).Cmp(_dafny.IntOfUint32((x).Cardinality())) <= 0) && ((_dafny.IntOfUint32((x).Cardinality())).Cmp(_dafny.IntOfInt64(64)) <= 0) +} +func (_static *CompanionStruct_Default___) IsDummySubsetType(x _dafny.Int) bool { + return (x).Sign() == 1 +} + +// End of class Default__ + +// Definition of datatype DafnyCallEvent +type DafnyCallEvent struct { + Data_DafnyCallEvent_ +} + +func (_this DafnyCallEvent) Get_() Data_DafnyCallEvent_ { + return _this.Data_DafnyCallEvent_ +} + +type Data_DafnyCallEvent_ interface { + isDafnyCallEvent() +} + +type CompanionStruct_DafnyCallEvent_ struct { +} + +var Companion_DafnyCallEvent_ = CompanionStruct_DafnyCallEvent_{} + +type DafnyCallEvent_DafnyCallEvent struct { + Input interface{} + Output interface{} +} + +func (DafnyCallEvent_DafnyCallEvent) isDafnyCallEvent() {} + +func (CompanionStruct_DafnyCallEvent_) Create_DafnyCallEvent_(Input interface{}, Output interface{}) DafnyCallEvent { + return DafnyCallEvent{DafnyCallEvent_DafnyCallEvent{Input, Output}} +} + +func (_this DafnyCallEvent) Is_DafnyCallEvent() bool { + _, ok := _this.Get_().(DafnyCallEvent_DafnyCallEvent) + return ok +} + +func (CompanionStruct_DafnyCallEvent_) Default(_default_I interface{}, _default_O interface{}) DafnyCallEvent { + return Companion_DafnyCallEvent_.Create_DafnyCallEvent_(_default_I, _default_O) +} + +func (_this DafnyCallEvent) Dtor_input() interface{} { + return _this.Get_().(DafnyCallEvent_DafnyCallEvent).Input +} + +func (_this DafnyCallEvent) Dtor_output() interface{} { + return _this.Get_().(DafnyCallEvent_DafnyCallEvent).Output +} + +func (_this DafnyCallEvent) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case DafnyCallEvent_DafnyCallEvent: + { + return "ComAmazonawsKmsTypes.DafnyCallEvent.DafnyCallEvent" + "(" + _dafny.String(data.Input) + ", " + _dafny.String(data.Output) + ")" + } + default: + { + return "" + } + } +} + +func (_this DafnyCallEvent) Equals(other DafnyCallEvent) bool { + switch data1 := _this.Get_().(type) { + case DafnyCallEvent_DafnyCallEvent: + { + data2, ok := other.Get_().(DafnyCallEvent_DafnyCallEvent) + return ok && _dafny.AreEqual(data1.Input, data2.Input) && _dafny.AreEqual(data1.Output, data2.Output) + } + default: + { + return false // unexpected + } + } +} + +func (_this DafnyCallEvent) EqualsGeneric(other interface{}) bool { + typed, ok := other.(DafnyCallEvent) + return ok && _this.Equals(typed) +} + +func Type_DafnyCallEvent_(Type_I_ _dafny.TypeDescriptor, Type_O_ _dafny.TypeDescriptor) _dafny.TypeDescriptor { + return type_DafnyCallEvent_{Type_I_, Type_O_} +} + +type type_DafnyCallEvent_ struct { + Type_I_ _dafny.TypeDescriptor + Type_O_ _dafny.TypeDescriptor +} + +func (_this type_DafnyCallEvent_) Default() interface{} { + Type_I_ := _this.Type_I_ + _ = Type_I_ + Type_O_ := _this.Type_O_ + _ = Type_O_ + return Companion_DafnyCallEvent_.Default(Type_I_.Default(), Type_O_.Default()) +} + +func (_this type_DafnyCallEvent_) String() string { + return "ComAmazonawsKmsTypes.DafnyCallEvent" +} +func (_this DafnyCallEvent) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = DafnyCallEvent{} + +// End of datatype DafnyCallEvent + +// Definition of datatype AlgorithmSpec +type AlgorithmSpec struct { + Data_AlgorithmSpec_ +} + +func (_this AlgorithmSpec) Get_() Data_AlgorithmSpec_ { + return _this.Data_AlgorithmSpec_ +} + +type Data_AlgorithmSpec_ interface { + isAlgorithmSpec() +} + +type CompanionStruct_AlgorithmSpec_ struct { +} + +var Companion_AlgorithmSpec_ = CompanionStruct_AlgorithmSpec_{} + +type AlgorithmSpec_RSAES__PKCS1__V1__5 struct { +} + +func (AlgorithmSpec_RSAES__PKCS1__V1__5) isAlgorithmSpec() {} + +func (CompanionStruct_AlgorithmSpec_) Create_RSAES__PKCS1__V1__5_() AlgorithmSpec { + return AlgorithmSpec{AlgorithmSpec_RSAES__PKCS1__V1__5{}} +} + +func (_this AlgorithmSpec) Is_RSAES__PKCS1__V1__5() bool { + _, ok := _this.Get_().(AlgorithmSpec_RSAES__PKCS1__V1__5) + return ok +} + +type AlgorithmSpec_RSAES__OAEP__SHA__1 struct { +} + +func (AlgorithmSpec_RSAES__OAEP__SHA__1) isAlgorithmSpec() {} + +func (CompanionStruct_AlgorithmSpec_) Create_RSAES__OAEP__SHA__1_() AlgorithmSpec { + return AlgorithmSpec{AlgorithmSpec_RSAES__OAEP__SHA__1{}} +} + +func (_this AlgorithmSpec) Is_RSAES__OAEP__SHA__1() bool { + _, ok := _this.Get_().(AlgorithmSpec_RSAES__OAEP__SHA__1) + return ok +} + +type AlgorithmSpec_RSAES__OAEP__SHA__256 struct { +} + +func (AlgorithmSpec_RSAES__OAEP__SHA__256) isAlgorithmSpec() {} + +func (CompanionStruct_AlgorithmSpec_) Create_RSAES__OAEP__SHA__256_() AlgorithmSpec { + return AlgorithmSpec{AlgorithmSpec_RSAES__OAEP__SHA__256{}} +} + +func (_this AlgorithmSpec) Is_RSAES__OAEP__SHA__256() bool { + _, ok := _this.Get_().(AlgorithmSpec_RSAES__OAEP__SHA__256) + return ok +} + +type AlgorithmSpec_RSA__AES__KEY__WRAP__SHA__1 struct { +} + +func (AlgorithmSpec_RSA__AES__KEY__WRAP__SHA__1) isAlgorithmSpec() {} + +func (CompanionStruct_AlgorithmSpec_) Create_RSA__AES__KEY__WRAP__SHA__1_() AlgorithmSpec { + return AlgorithmSpec{AlgorithmSpec_RSA__AES__KEY__WRAP__SHA__1{}} +} + +func (_this AlgorithmSpec) Is_RSA__AES__KEY__WRAP__SHA__1() bool { + _, ok := _this.Get_().(AlgorithmSpec_RSA__AES__KEY__WRAP__SHA__1) + return ok +} + +type AlgorithmSpec_RSA__AES__KEY__WRAP__SHA__256 struct { +} + +func (AlgorithmSpec_RSA__AES__KEY__WRAP__SHA__256) isAlgorithmSpec() {} + +func (CompanionStruct_AlgorithmSpec_) Create_RSA__AES__KEY__WRAP__SHA__256_() AlgorithmSpec { + return AlgorithmSpec{AlgorithmSpec_RSA__AES__KEY__WRAP__SHA__256{}} +} + +func (_this AlgorithmSpec) Is_RSA__AES__KEY__WRAP__SHA__256() bool { + _, ok := _this.Get_().(AlgorithmSpec_RSA__AES__KEY__WRAP__SHA__256) + return ok +} + +type AlgorithmSpec_SM2PKE struct { +} + +func (AlgorithmSpec_SM2PKE) isAlgorithmSpec() {} + +func (CompanionStruct_AlgorithmSpec_) Create_SM2PKE_() AlgorithmSpec { + return AlgorithmSpec{AlgorithmSpec_SM2PKE{}} +} + +func (_this AlgorithmSpec) Is_SM2PKE() bool { + _, ok := _this.Get_().(AlgorithmSpec_SM2PKE) + return ok +} + +func (CompanionStruct_AlgorithmSpec_) Default() AlgorithmSpec { + return Companion_AlgorithmSpec_.Create_RSAES__PKCS1__V1__5_() +} + +func (_ CompanionStruct_AlgorithmSpec_) AllSingletonConstructors() _dafny.Iterator { + i := -1 + return func() (interface{}, bool) { + i++ + switch i { + case 0: + return Companion_AlgorithmSpec_.Create_RSAES__PKCS1__V1__5_(), true + case 1: + return Companion_AlgorithmSpec_.Create_RSAES__OAEP__SHA__1_(), true + case 2: + return Companion_AlgorithmSpec_.Create_RSAES__OAEP__SHA__256_(), true + case 3: + return Companion_AlgorithmSpec_.Create_RSA__AES__KEY__WRAP__SHA__1_(), true + case 4: + return Companion_AlgorithmSpec_.Create_RSA__AES__KEY__WRAP__SHA__256_(), true + case 5: + return Companion_AlgorithmSpec_.Create_SM2PKE_(), true + default: + return AlgorithmSpec{}, false + } + } +} + +func (_this AlgorithmSpec) String() string { + switch _this.Get_().(type) { + case nil: + return "null" + case AlgorithmSpec_RSAES__PKCS1__V1__5: + { + return "ComAmazonawsKmsTypes.AlgorithmSpec.RSAES_PKCS1_V1_5" + } + case AlgorithmSpec_RSAES__OAEP__SHA__1: + { + return "ComAmazonawsKmsTypes.AlgorithmSpec.RSAES_OAEP_SHA_1" + } + case AlgorithmSpec_RSAES__OAEP__SHA__256: + { + return "ComAmazonawsKmsTypes.AlgorithmSpec.RSAES_OAEP_SHA_256" + } + case AlgorithmSpec_RSA__AES__KEY__WRAP__SHA__1: + { + return "ComAmazonawsKmsTypes.AlgorithmSpec.RSA_AES_KEY_WRAP_SHA_1" + } + case AlgorithmSpec_RSA__AES__KEY__WRAP__SHA__256: + { + return "ComAmazonawsKmsTypes.AlgorithmSpec.RSA_AES_KEY_WRAP_SHA_256" + } + case AlgorithmSpec_SM2PKE: + { + return "ComAmazonawsKmsTypes.AlgorithmSpec.SM2PKE" + } + default: + { + return "" + } + } +} + +func (_this AlgorithmSpec) Equals(other AlgorithmSpec) bool { + switch _this.Get_().(type) { + case AlgorithmSpec_RSAES__PKCS1__V1__5: + { + _, ok := other.Get_().(AlgorithmSpec_RSAES__PKCS1__V1__5) + return ok + } + case AlgorithmSpec_RSAES__OAEP__SHA__1: + { + _, ok := other.Get_().(AlgorithmSpec_RSAES__OAEP__SHA__1) + return ok + } + case AlgorithmSpec_RSAES__OAEP__SHA__256: + { + _, ok := other.Get_().(AlgorithmSpec_RSAES__OAEP__SHA__256) + return ok + } + case AlgorithmSpec_RSA__AES__KEY__WRAP__SHA__1: + { + _, ok := other.Get_().(AlgorithmSpec_RSA__AES__KEY__WRAP__SHA__1) + return ok + } + case AlgorithmSpec_RSA__AES__KEY__WRAP__SHA__256: + { + _, ok := other.Get_().(AlgorithmSpec_RSA__AES__KEY__WRAP__SHA__256) + return ok + } + case AlgorithmSpec_SM2PKE: + { + _, ok := other.Get_().(AlgorithmSpec_SM2PKE) + return ok + } + default: + { + return false // unexpected + } + } +} + +func (_this AlgorithmSpec) EqualsGeneric(other interface{}) bool { + typed, ok := other.(AlgorithmSpec) + return ok && _this.Equals(typed) +} + +func Type_AlgorithmSpec_() _dafny.TypeDescriptor { + return type_AlgorithmSpec_{} +} + +type type_AlgorithmSpec_ struct { +} + +func (_this type_AlgorithmSpec_) Default() interface{} { + return Companion_AlgorithmSpec_.Default() +} + +func (_this type_AlgorithmSpec_) String() string { + return "ComAmazonawsKmsTypes.AlgorithmSpec" +} +func (_this AlgorithmSpec) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = AlgorithmSpec{} + +// End of datatype AlgorithmSpec + +// Definition of datatype AliasListEntry +type AliasListEntry struct { + Data_AliasListEntry_ +} + +func (_this AliasListEntry) Get_() Data_AliasListEntry_ { + return _this.Data_AliasListEntry_ +} + +type Data_AliasListEntry_ interface { + isAliasListEntry() +} + +type CompanionStruct_AliasListEntry_ struct { +} + +var Companion_AliasListEntry_ = CompanionStruct_AliasListEntry_{} + +type AliasListEntry_AliasListEntry struct { + AliasName m_Wrappers.Option + AliasArn m_Wrappers.Option + TargetKeyId m_Wrappers.Option + CreationDate m_Wrappers.Option + LastUpdatedDate m_Wrappers.Option +} + +func (AliasListEntry_AliasListEntry) isAliasListEntry() {} + +func (CompanionStruct_AliasListEntry_) Create_AliasListEntry_(AliasName m_Wrappers.Option, AliasArn m_Wrappers.Option, TargetKeyId m_Wrappers.Option, CreationDate m_Wrappers.Option, LastUpdatedDate m_Wrappers.Option) AliasListEntry { + return AliasListEntry{AliasListEntry_AliasListEntry{AliasName, AliasArn, TargetKeyId, CreationDate, LastUpdatedDate}} +} + +func (_this AliasListEntry) Is_AliasListEntry() bool { + _, ok := _this.Get_().(AliasListEntry_AliasListEntry) + return ok +} + +func (CompanionStruct_AliasListEntry_) Default() AliasListEntry { + return Companion_AliasListEntry_.Create_AliasListEntry_(m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this AliasListEntry) Dtor_AliasName() m_Wrappers.Option { + return _this.Get_().(AliasListEntry_AliasListEntry).AliasName +} + +func (_this AliasListEntry) Dtor_AliasArn() m_Wrappers.Option { + return _this.Get_().(AliasListEntry_AliasListEntry).AliasArn +} + +func (_this AliasListEntry) Dtor_TargetKeyId() m_Wrappers.Option { + return _this.Get_().(AliasListEntry_AliasListEntry).TargetKeyId +} + +func (_this AliasListEntry) Dtor_CreationDate() m_Wrappers.Option { + return _this.Get_().(AliasListEntry_AliasListEntry).CreationDate +} + +func (_this AliasListEntry) Dtor_LastUpdatedDate() m_Wrappers.Option { + return _this.Get_().(AliasListEntry_AliasListEntry).LastUpdatedDate +} + +func (_this AliasListEntry) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case AliasListEntry_AliasListEntry: + { + return "ComAmazonawsKmsTypes.AliasListEntry.AliasListEntry" + "(" + _dafny.String(data.AliasName) + ", " + _dafny.String(data.AliasArn) + ", " + _dafny.String(data.TargetKeyId) + ", " + _dafny.String(data.CreationDate) + ", " + _dafny.String(data.LastUpdatedDate) + ")" + } + default: + { + return "" + } + } +} + +func (_this AliasListEntry) Equals(other AliasListEntry) bool { + switch data1 := _this.Get_().(type) { + case AliasListEntry_AliasListEntry: + { + data2, ok := other.Get_().(AliasListEntry_AliasListEntry) + return ok && data1.AliasName.Equals(data2.AliasName) && data1.AliasArn.Equals(data2.AliasArn) && data1.TargetKeyId.Equals(data2.TargetKeyId) && data1.CreationDate.Equals(data2.CreationDate) && data1.LastUpdatedDate.Equals(data2.LastUpdatedDate) + } + default: + { + return false // unexpected + } + } +} + +func (_this AliasListEntry) EqualsGeneric(other interface{}) bool { + typed, ok := other.(AliasListEntry) + return ok && _this.Equals(typed) +} + +func Type_AliasListEntry_() _dafny.TypeDescriptor { + return type_AliasListEntry_{} +} + +type type_AliasListEntry_ struct { +} + +func (_this type_AliasListEntry_) Default() interface{} { + return Companion_AliasListEntry_.Default() +} + +func (_this type_AliasListEntry_) String() string { + return "ComAmazonawsKmsTypes.AliasListEntry" +} +func (_this AliasListEntry) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = AliasListEntry{} + +// End of datatype AliasListEntry + +// Definition of class AliasNameType +type AliasNameType struct { +} + +func New_AliasNameType_() *AliasNameType { + _this := AliasNameType{} + + return &_this +} + +type CompanionStruct_AliasNameType_ struct { +} + +var Companion_AliasNameType_ = CompanionStruct_AliasNameType_{} + +func (*AliasNameType) String() string { + return "ComAmazonawsKmsTypes.AliasNameType" +} + +// End of class AliasNameType + +func Type_AliasNameType_() _dafny.TypeDescriptor { + return type_AliasNameType_{} +} + +type type_AliasNameType_ struct { +} + +func (_this type_AliasNameType_) Default() interface{} { + return _dafny.EmptySeq.SetString() +} + +func (_this type_AliasNameType_) String() string { + return "ComAmazonawsKmsTypes.AliasNameType" +} +func (_this *CompanionStruct_AliasNameType_) Is_(__source _dafny.Sequence) bool { + var _0_x _dafny.Sequence = (__source) + _ = _0_x + return Companion_Default___.IsValid__AliasNameType(_0_x) +} + +// Definition of class ArnType +type ArnType struct { +} + +func New_ArnType_() *ArnType { + _this := ArnType{} + + return &_this +} + +type CompanionStruct_ArnType_ struct { +} + +var Companion_ArnType_ = CompanionStruct_ArnType_{} + +func (*ArnType) String() string { + return "ComAmazonawsKmsTypes.ArnType" +} + +// End of class ArnType + +func Type_ArnType_() _dafny.TypeDescriptor { + return type_ArnType_{} +} + +type type_ArnType_ struct { +} + +func (_this type_ArnType_) Default() interface{} { + return _dafny.EmptySeq.SetString() +} + +func (_this type_ArnType_) String() string { + return "ComAmazonawsKmsTypes.ArnType" +} +func (_this *CompanionStruct_ArnType_) Is_(__source _dafny.Sequence) bool { + var _1_x _dafny.Sequence = (__source) + _ = _1_x + return Companion_Default___.IsValid__ArnType(_1_x) +} + +// Definition of class AttestationDocumentType +type AttestationDocumentType struct { +} + +func New_AttestationDocumentType_() *AttestationDocumentType { + _this := AttestationDocumentType{} + + return &_this +} + +type CompanionStruct_AttestationDocumentType_ struct { +} + +var Companion_AttestationDocumentType_ = CompanionStruct_AttestationDocumentType_{} + +func (*AttestationDocumentType) String() string { + return "ComAmazonawsKmsTypes.AttestationDocumentType" +} + +// End of class AttestationDocumentType + +func Type_AttestationDocumentType_() _dafny.TypeDescriptor { + return type_AttestationDocumentType_{} +} + +type type_AttestationDocumentType_ struct { +} + +func (_this type_AttestationDocumentType_) Default() interface{} { + return _dafny.EmptySeq +} + +func (_this type_AttestationDocumentType_) String() string { + return "ComAmazonawsKmsTypes.AttestationDocumentType" +} +func (_this *CompanionStruct_AttestationDocumentType_) Is_(__source _dafny.Sequence) bool { + var _2_x _dafny.Sequence = (__source) + _ = _2_x + return Companion_Default___.IsValid__AttestationDocumentType(_2_x) +} + +// Definition of datatype CancelKeyDeletionRequest +type CancelKeyDeletionRequest struct { + Data_CancelKeyDeletionRequest_ +} + +func (_this CancelKeyDeletionRequest) Get_() Data_CancelKeyDeletionRequest_ { + return _this.Data_CancelKeyDeletionRequest_ +} + +type Data_CancelKeyDeletionRequest_ interface { + isCancelKeyDeletionRequest() +} + +type CompanionStruct_CancelKeyDeletionRequest_ struct { +} + +var Companion_CancelKeyDeletionRequest_ = CompanionStruct_CancelKeyDeletionRequest_{} + +type CancelKeyDeletionRequest_CancelKeyDeletionRequest struct { + KeyId _dafny.Sequence +} + +func (CancelKeyDeletionRequest_CancelKeyDeletionRequest) isCancelKeyDeletionRequest() {} + +func (CompanionStruct_CancelKeyDeletionRequest_) Create_CancelKeyDeletionRequest_(KeyId _dafny.Sequence) CancelKeyDeletionRequest { + return CancelKeyDeletionRequest{CancelKeyDeletionRequest_CancelKeyDeletionRequest{KeyId}} +} + +func (_this CancelKeyDeletionRequest) Is_CancelKeyDeletionRequest() bool { + _, ok := _this.Get_().(CancelKeyDeletionRequest_CancelKeyDeletionRequest) + return ok +} + +func (CompanionStruct_CancelKeyDeletionRequest_) Default() CancelKeyDeletionRequest { + return Companion_CancelKeyDeletionRequest_.Create_CancelKeyDeletionRequest_(_dafny.EmptySeq.SetString()) +} + +func (_this CancelKeyDeletionRequest) Dtor_KeyId() _dafny.Sequence { + return _this.Get_().(CancelKeyDeletionRequest_CancelKeyDeletionRequest).KeyId +} + +func (_this CancelKeyDeletionRequest) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case CancelKeyDeletionRequest_CancelKeyDeletionRequest: + { + return "ComAmazonawsKmsTypes.CancelKeyDeletionRequest.CancelKeyDeletionRequest" + "(" + _dafny.String(data.KeyId) + ")" + } + default: + { + return "" + } + } +} + +func (_this CancelKeyDeletionRequest) Equals(other CancelKeyDeletionRequest) bool { + switch data1 := _this.Get_().(type) { + case CancelKeyDeletionRequest_CancelKeyDeletionRequest: + { + data2, ok := other.Get_().(CancelKeyDeletionRequest_CancelKeyDeletionRequest) + return ok && data1.KeyId.Equals(data2.KeyId) + } + default: + { + return false // unexpected + } + } +} + +func (_this CancelKeyDeletionRequest) EqualsGeneric(other interface{}) bool { + typed, ok := other.(CancelKeyDeletionRequest) + return ok && _this.Equals(typed) +} + +func Type_CancelKeyDeletionRequest_() _dafny.TypeDescriptor { + return type_CancelKeyDeletionRequest_{} +} + +type type_CancelKeyDeletionRequest_ struct { +} + +func (_this type_CancelKeyDeletionRequest_) Default() interface{} { + return Companion_CancelKeyDeletionRequest_.Default() +} + +func (_this type_CancelKeyDeletionRequest_) String() string { + return "ComAmazonawsKmsTypes.CancelKeyDeletionRequest" +} +func (_this CancelKeyDeletionRequest) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = CancelKeyDeletionRequest{} + +// End of datatype CancelKeyDeletionRequest + +// Definition of datatype CancelKeyDeletionResponse +type CancelKeyDeletionResponse struct { + Data_CancelKeyDeletionResponse_ +} + +func (_this CancelKeyDeletionResponse) Get_() Data_CancelKeyDeletionResponse_ { + return _this.Data_CancelKeyDeletionResponse_ +} + +type Data_CancelKeyDeletionResponse_ interface { + isCancelKeyDeletionResponse() +} + +type CompanionStruct_CancelKeyDeletionResponse_ struct { +} + +var Companion_CancelKeyDeletionResponse_ = CompanionStruct_CancelKeyDeletionResponse_{} + +type CancelKeyDeletionResponse_CancelKeyDeletionResponse struct { + KeyId m_Wrappers.Option +} + +func (CancelKeyDeletionResponse_CancelKeyDeletionResponse) isCancelKeyDeletionResponse() {} + +func (CompanionStruct_CancelKeyDeletionResponse_) Create_CancelKeyDeletionResponse_(KeyId m_Wrappers.Option) CancelKeyDeletionResponse { + return CancelKeyDeletionResponse{CancelKeyDeletionResponse_CancelKeyDeletionResponse{KeyId}} +} + +func (_this CancelKeyDeletionResponse) Is_CancelKeyDeletionResponse() bool { + _, ok := _this.Get_().(CancelKeyDeletionResponse_CancelKeyDeletionResponse) + return ok +} + +func (CompanionStruct_CancelKeyDeletionResponse_) Default() CancelKeyDeletionResponse { + return Companion_CancelKeyDeletionResponse_.Create_CancelKeyDeletionResponse_(m_Wrappers.Companion_Option_.Default()) +} + +func (_this CancelKeyDeletionResponse) Dtor_KeyId() m_Wrappers.Option { + return _this.Get_().(CancelKeyDeletionResponse_CancelKeyDeletionResponse).KeyId +} + +func (_this CancelKeyDeletionResponse) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case CancelKeyDeletionResponse_CancelKeyDeletionResponse: + { + return "ComAmazonawsKmsTypes.CancelKeyDeletionResponse.CancelKeyDeletionResponse" + "(" + _dafny.String(data.KeyId) + ")" + } + default: + { + return "" + } + } +} + +func (_this CancelKeyDeletionResponse) Equals(other CancelKeyDeletionResponse) bool { + switch data1 := _this.Get_().(type) { + case CancelKeyDeletionResponse_CancelKeyDeletionResponse: + { + data2, ok := other.Get_().(CancelKeyDeletionResponse_CancelKeyDeletionResponse) + return ok && data1.KeyId.Equals(data2.KeyId) + } + default: + { + return false // unexpected + } + } +} + +func (_this CancelKeyDeletionResponse) EqualsGeneric(other interface{}) bool { + typed, ok := other.(CancelKeyDeletionResponse) + return ok && _this.Equals(typed) +} + +func Type_CancelKeyDeletionResponse_() _dafny.TypeDescriptor { + return type_CancelKeyDeletionResponse_{} +} + +type type_CancelKeyDeletionResponse_ struct { +} + +func (_this type_CancelKeyDeletionResponse_) Default() interface{} { + return Companion_CancelKeyDeletionResponse_.Default() +} + +func (_this type_CancelKeyDeletionResponse_) String() string { + return "ComAmazonawsKmsTypes.CancelKeyDeletionResponse" +} +func (_this CancelKeyDeletionResponse) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = CancelKeyDeletionResponse{} + +// End of datatype CancelKeyDeletionResponse + +// Definition of class CiphertextType +type CiphertextType struct { +} + +func New_CiphertextType_() *CiphertextType { + _this := CiphertextType{} + + return &_this +} + +type CompanionStruct_CiphertextType_ struct { +} + +var Companion_CiphertextType_ = CompanionStruct_CiphertextType_{} + +func (*CiphertextType) String() string { + return "ComAmazonawsKmsTypes.CiphertextType" +} + +// End of class CiphertextType + +func Type_CiphertextType_() _dafny.TypeDescriptor { + return type_CiphertextType_{} +} + +type type_CiphertextType_ struct { +} + +func (_this type_CiphertextType_) Default() interface{} { + return _dafny.EmptySeq +} + +func (_this type_CiphertextType_) String() string { + return "ComAmazonawsKmsTypes.CiphertextType" +} +func (_this *CompanionStruct_CiphertextType_) Is_(__source _dafny.Sequence) bool { + var _3_x _dafny.Sequence = (__source) + _ = _3_x + return Companion_Default___.IsValid__CiphertextType(_3_x) +} + +// Definition of class CloudHsmClusterIdType +type CloudHsmClusterIdType struct { +} + +func New_CloudHsmClusterIdType_() *CloudHsmClusterIdType { + _this := CloudHsmClusterIdType{} + + return &_this +} + +type CompanionStruct_CloudHsmClusterIdType_ struct { +} + +var Companion_CloudHsmClusterIdType_ = CompanionStruct_CloudHsmClusterIdType_{} + +func (*CloudHsmClusterIdType) String() string { + return "ComAmazonawsKmsTypes.CloudHsmClusterIdType" +} + +// End of class CloudHsmClusterIdType + +func Type_CloudHsmClusterIdType_() _dafny.TypeDescriptor { + return type_CloudHsmClusterIdType_{} +} + +type type_CloudHsmClusterIdType_ struct { +} + +func (_this type_CloudHsmClusterIdType_) Default() interface{} { + return _dafny.EmptySeq.SetString() +} + +func (_this type_CloudHsmClusterIdType_) String() string { + return "ComAmazonawsKmsTypes.CloudHsmClusterIdType" +} +func (_this *CompanionStruct_CloudHsmClusterIdType_) Is_(__source _dafny.Sequence) bool { + var _4_x _dafny.Sequence = (__source) + _ = _4_x + return Companion_Default___.IsValid__CloudHsmClusterIdType(_4_x) +} + +// Definition of datatype ConnectCustomKeyStoreRequest +type ConnectCustomKeyStoreRequest struct { + Data_ConnectCustomKeyStoreRequest_ +} + +func (_this ConnectCustomKeyStoreRequest) Get_() Data_ConnectCustomKeyStoreRequest_ { + return _this.Data_ConnectCustomKeyStoreRequest_ +} + +type Data_ConnectCustomKeyStoreRequest_ interface { + isConnectCustomKeyStoreRequest() +} + +type CompanionStruct_ConnectCustomKeyStoreRequest_ struct { +} + +var Companion_ConnectCustomKeyStoreRequest_ = CompanionStruct_ConnectCustomKeyStoreRequest_{} + +type ConnectCustomKeyStoreRequest_ConnectCustomKeyStoreRequest struct { + CustomKeyStoreId _dafny.Sequence +} + +func (ConnectCustomKeyStoreRequest_ConnectCustomKeyStoreRequest) isConnectCustomKeyStoreRequest() {} + +func (CompanionStruct_ConnectCustomKeyStoreRequest_) Create_ConnectCustomKeyStoreRequest_(CustomKeyStoreId _dafny.Sequence) ConnectCustomKeyStoreRequest { + return ConnectCustomKeyStoreRequest{ConnectCustomKeyStoreRequest_ConnectCustomKeyStoreRequest{CustomKeyStoreId}} +} + +func (_this ConnectCustomKeyStoreRequest) Is_ConnectCustomKeyStoreRequest() bool { + _, ok := _this.Get_().(ConnectCustomKeyStoreRequest_ConnectCustomKeyStoreRequest) + return ok +} + +func (CompanionStruct_ConnectCustomKeyStoreRequest_) Default() ConnectCustomKeyStoreRequest { + return Companion_ConnectCustomKeyStoreRequest_.Create_ConnectCustomKeyStoreRequest_(_dafny.EmptySeq.SetString()) +} + +func (_this ConnectCustomKeyStoreRequest) Dtor_CustomKeyStoreId() _dafny.Sequence { + return _this.Get_().(ConnectCustomKeyStoreRequest_ConnectCustomKeyStoreRequest).CustomKeyStoreId +} + +func (_this ConnectCustomKeyStoreRequest) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case ConnectCustomKeyStoreRequest_ConnectCustomKeyStoreRequest: + { + return "ComAmazonawsKmsTypes.ConnectCustomKeyStoreRequest.ConnectCustomKeyStoreRequest" + "(" + _dafny.String(data.CustomKeyStoreId) + ")" + } + default: + { + return "" + } + } +} + +func (_this ConnectCustomKeyStoreRequest) Equals(other ConnectCustomKeyStoreRequest) bool { + switch data1 := _this.Get_().(type) { + case ConnectCustomKeyStoreRequest_ConnectCustomKeyStoreRequest: + { + data2, ok := other.Get_().(ConnectCustomKeyStoreRequest_ConnectCustomKeyStoreRequest) + return ok && data1.CustomKeyStoreId.Equals(data2.CustomKeyStoreId) + } + default: + { + return false // unexpected + } + } +} + +func (_this ConnectCustomKeyStoreRequest) EqualsGeneric(other interface{}) bool { + typed, ok := other.(ConnectCustomKeyStoreRequest) + return ok && _this.Equals(typed) +} + +func Type_ConnectCustomKeyStoreRequest_() _dafny.TypeDescriptor { + return type_ConnectCustomKeyStoreRequest_{} +} + +type type_ConnectCustomKeyStoreRequest_ struct { +} + +func (_this type_ConnectCustomKeyStoreRequest_) Default() interface{} { + return Companion_ConnectCustomKeyStoreRequest_.Default() +} + +func (_this type_ConnectCustomKeyStoreRequest_) String() string { + return "ComAmazonawsKmsTypes.ConnectCustomKeyStoreRequest" +} +func (_this ConnectCustomKeyStoreRequest) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = ConnectCustomKeyStoreRequest{} + +// End of datatype ConnectCustomKeyStoreRequest + +// Definition of datatype ConnectCustomKeyStoreResponse +type ConnectCustomKeyStoreResponse struct { + Data_ConnectCustomKeyStoreResponse_ +} + +func (_this ConnectCustomKeyStoreResponse) Get_() Data_ConnectCustomKeyStoreResponse_ { + return _this.Data_ConnectCustomKeyStoreResponse_ +} + +type Data_ConnectCustomKeyStoreResponse_ interface { + isConnectCustomKeyStoreResponse() +} + +type CompanionStruct_ConnectCustomKeyStoreResponse_ struct { +} + +var Companion_ConnectCustomKeyStoreResponse_ = CompanionStruct_ConnectCustomKeyStoreResponse_{} + +type ConnectCustomKeyStoreResponse_ConnectCustomKeyStoreResponse struct { +} + +func (ConnectCustomKeyStoreResponse_ConnectCustomKeyStoreResponse) isConnectCustomKeyStoreResponse() { +} + +func (CompanionStruct_ConnectCustomKeyStoreResponse_) Create_ConnectCustomKeyStoreResponse_() ConnectCustomKeyStoreResponse { + return ConnectCustomKeyStoreResponse{ConnectCustomKeyStoreResponse_ConnectCustomKeyStoreResponse{}} +} + +func (_this ConnectCustomKeyStoreResponse) Is_ConnectCustomKeyStoreResponse() bool { + _, ok := _this.Get_().(ConnectCustomKeyStoreResponse_ConnectCustomKeyStoreResponse) + return ok +} + +func (CompanionStruct_ConnectCustomKeyStoreResponse_) Default() ConnectCustomKeyStoreResponse { + return Companion_ConnectCustomKeyStoreResponse_.Create_ConnectCustomKeyStoreResponse_() +} + +func (_ CompanionStruct_ConnectCustomKeyStoreResponse_) AllSingletonConstructors() _dafny.Iterator { + i := -1 + return func() (interface{}, bool) { + i++ + switch i { + case 0: + return Companion_ConnectCustomKeyStoreResponse_.Create_ConnectCustomKeyStoreResponse_(), true + default: + return ConnectCustomKeyStoreResponse{}, false + } + } +} + +func (_this ConnectCustomKeyStoreResponse) String() string { + switch _this.Get_().(type) { + case nil: + return "null" + case ConnectCustomKeyStoreResponse_ConnectCustomKeyStoreResponse: + { + return "ComAmazonawsKmsTypes.ConnectCustomKeyStoreResponse.ConnectCustomKeyStoreResponse" + } + default: + { + return "" + } + } +} + +func (_this ConnectCustomKeyStoreResponse) Equals(other ConnectCustomKeyStoreResponse) bool { + switch _this.Get_().(type) { + case ConnectCustomKeyStoreResponse_ConnectCustomKeyStoreResponse: + { + _, ok := other.Get_().(ConnectCustomKeyStoreResponse_ConnectCustomKeyStoreResponse) + return ok + } + default: + { + return false // unexpected + } + } +} + +func (_this ConnectCustomKeyStoreResponse) EqualsGeneric(other interface{}) bool { + typed, ok := other.(ConnectCustomKeyStoreResponse) + return ok && _this.Equals(typed) +} + +func Type_ConnectCustomKeyStoreResponse_() _dafny.TypeDescriptor { + return type_ConnectCustomKeyStoreResponse_{} +} + +type type_ConnectCustomKeyStoreResponse_ struct { +} + +func (_this type_ConnectCustomKeyStoreResponse_) Default() interface{} { + return Companion_ConnectCustomKeyStoreResponse_.Default() +} + +func (_this type_ConnectCustomKeyStoreResponse_) String() string { + return "ComAmazonawsKmsTypes.ConnectCustomKeyStoreResponse" +} +func (_this ConnectCustomKeyStoreResponse) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = ConnectCustomKeyStoreResponse{} + +// End of datatype ConnectCustomKeyStoreResponse + +// Definition of datatype ConnectionErrorCodeType +type ConnectionErrorCodeType struct { + Data_ConnectionErrorCodeType_ +} + +func (_this ConnectionErrorCodeType) Get_() Data_ConnectionErrorCodeType_ { + return _this.Data_ConnectionErrorCodeType_ +} + +type Data_ConnectionErrorCodeType_ interface { + isConnectionErrorCodeType() +} + +type CompanionStruct_ConnectionErrorCodeType_ struct { +} + +var Companion_ConnectionErrorCodeType_ = CompanionStruct_ConnectionErrorCodeType_{} + +type ConnectionErrorCodeType_INVALID__CREDENTIALS struct { +} + +func (ConnectionErrorCodeType_INVALID__CREDENTIALS) isConnectionErrorCodeType() {} + +func (CompanionStruct_ConnectionErrorCodeType_) Create_INVALID__CREDENTIALS_() ConnectionErrorCodeType { + return ConnectionErrorCodeType{ConnectionErrorCodeType_INVALID__CREDENTIALS{}} +} + +func (_this ConnectionErrorCodeType) Is_INVALID__CREDENTIALS() bool { + _, ok := _this.Get_().(ConnectionErrorCodeType_INVALID__CREDENTIALS) + return ok +} + +type ConnectionErrorCodeType_CLUSTER__NOT__FOUND struct { +} + +func (ConnectionErrorCodeType_CLUSTER__NOT__FOUND) isConnectionErrorCodeType() {} + +func (CompanionStruct_ConnectionErrorCodeType_) Create_CLUSTER__NOT__FOUND_() ConnectionErrorCodeType { + return ConnectionErrorCodeType{ConnectionErrorCodeType_CLUSTER__NOT__FOUND{}} +} + +func (_this ConnectionErrorCodeType) Is_CLUSTER__NOT__FOUND() bool { + _, ok := _this.Get_().(ConnectionErrorCodeType_CLUSTER__NOT__FOUND) + return ok +} + +type ConnectionErrorCodeType_NETWORK__ERRORS struct { +} + +func (ConnectionErrorCodeType_NETWORK__ERRORS) isConnectionErrorCodeType() {} + +func (CompanionStruct_ConnectionErrorCodeType_) Create_NETWORK__ERRORS_() ConnectionErrorCodeType { + return ConnectionErrorCodeType{ConnectionErrorCodeType_NETWORK__ERRORS{}} +} + +func (_this ConnectionErrorCodeType) Is_NETWORK__ERRORS() bool { + _, ok := _this.Get_().(ConnectionErrorCodeType_NETWORK__ERRORS) + return ok +} + +type ConnectionErrorCodeType_INTERNAL__ERROR struct { +} + +func (ConnectionErrorCodeType_INTERNAL__ERROR) isConnectionErrorCodeType() {} + +func (CompanionStruct_ConnectionErrorCodeType_) Create_INTERNAL__ERROR_() ConnectionErrorCodeType { + return ConnectionErrorCodeType{ConnectionErrorCodeType_INTERNAL__ERROR{}} +} + +func (_this ConnectionErrorCodeType) Is_INTERNAL__ERROR() bool { + _, ok := _this.Get_().(ConnectionErrorCodeType_INTERNAL__ERROR) + return ok +} + +type ConnectionErrorCodeType_INSUFFICIENT__CLOUDHSM__HSMS struct { +} + +func (ConnectionErrorCodeType_INSUFFICIENT__CLOUDHSM__HSMS) isConnectionErrorCodeType() {} + +func (CompanionStruct_ConnectionErrorCodeType_) Create_INSUFFICIENT__CLOUDHSM__HSMS_() ConnectionErrorCodeType { + return ConnectionErrorCodeType{ConnectionErrorCodeType_INSUFFICIENT__CLOUDHSM__HSMS{}} +} + +func (_this ConnectionErrorCodeType) Is_INSUFFICIENT__CLOUDHSM__HSMS() bool { + _, ok := _this.Get_().(ConnectionErrorCodeType_INSUFFICIENT__CLOUDHSM__HSMS) + return ok +} + +type ConnectionErrorCodeType_USER__LOCKED__OUT struct { +} + +func (ConnectionErrorCodeType_USER__LOCKED__OUT) isConnectionErrorCodeType() {} + +func (CompanionStruct_ConnectionErrorCodeType_) Create_USER__LOCKED__OUT_() ConnectionErrorCodeType { + return ConnectionErrorCodeType{ConnectionErrorCodeType_USER__LOCKED__OUT{}} +} + +func (_this ConnectionErrorCodeType) Is_USER__LOCKED__OUT() bool { + _, ok := _this.Get_().(ConnectionErrorCodeType_USER__LOCKED__OUT) + return ok +} + +type ConnectionErrorCodeType_USER__NOT__FOUND struct { +} + +func (ConnectionErrorCodeType_USER__NOT__FOUND) isConnectionErrorCodeType() {} + +func (CompanionStruct_ConnectionErrorCodeType_) Create_USER__NOT__FOUND_() ConnectionErrorCodeType { + return ConnectionErrorCodeType{ConnectionErrorCodeType_USER__NOT__FOUND{}} +} + +func (_this ConnectionErrorCodeType) Is_USER__NOT__FOUND() bool { + _, ok := _this.Get_().(ConnectionErrorCodeType_USER__NOT__FOUND) + return ok +} + +type ConnectionErrorCodeType_USER__LOGGED__IN struct { +} + +func (ConnectionErrorCodeType_USER__LOGGED__IN) isConnectionErrorCodeType() {} + +func (CompanionStruct_ConnectionErrorCodeType_) Create_USER__LOGGED__IN_() ConnectionErrorCodeType { + return ConnectionErrorCodeType{ConnectionErrorCodeType_USER__LOGGED__IN{}} +} + +func (_this ConnectionErrorCodeType) Is_USER__LOGGED__IN() bool { + _, ok := _this.Get_().(ConnectionErrorCodeType_USER__LOGGED__IN) + return ok +} + +type ConnectionErrorCodeType_SUBNET__NOT__FOUND struct { +} + +func (ConnectionErrorCodeType_SUBNET__NOT__FOUND) isConnectionErrorCodeType() {} + +func (CompanionStruct_ConnectionErrorCodeType_) Create_SUBNET__NOT__FOUND_() ConnectionErrorCodeType { + return ConnectionErrorCodeType{ConnectionErrorCodeType_SUBNET__NOT__FOUND{}} +} + +func (_this ConnectionErrorCodeType) Is_SUBNET__NOT__FOUND() bool { + _, ok := _this.Get_().(ConnectionErrorCodeType_SUBNET__NOT__FOUND) + return ok +} + +type ConnectionErrorCodeType_INSUFFICIENT__FREE__ADDRESSES__IN__SUBNET struct { +} + +func (ConnectionErrorCodeType_INSUFFICIENT__FREE__ADDRESSES__IN__SUBNET) isConnectionErrorCodeType() { +} + +func (CompanionStruct_ConnectionErrorCodeType_) Create_INSUFFICIENT__FREE__ADDRESSES__IN__SUBNET_() ConnectionErrorCodeType { + return ConnectionErrorCodeType{ConnectionErrorCodeType_INSUFFICIENT__FREE__ADDRESSES__IN__SUBNET{}} +} + +func (_this ConnectionErrorCodeType) Is_INSUFFICIENT__FREE__ADDRESSES__IN__SUBNET() bool { + _, ok := _this.Get_().(ConnectionErrorCodeType_INSUFFICIENT__FREE__ADDRESSES__IN__SUBNET) + return ok +} + +type ConnectionErrorCodeType_XKS__PROXY__ACCESS__DENIED struct { +} + +func (ConnectionErrorCodeType_XKS__PROXY__ACCESS__DENIED) isConnectionErrorCodeType() {} + +func (CompanionStruct_ConnectionErrorCodeType_) Create_XKS__PROXY__ACCESS__DENIED_() ConnectionErrorCodeType { + return ConnectionErrorCodeType{ConnectionErrorCodeType_XKS__PROXY__ACCESS__DENIED{}} +} + +func (_this ConnectionErrorCodeType) Is_XKS__PROXY__ACCESS__DENIED() bool { + _, ok := _this.Get_().(ConnectionErrorCodeType_XKS__PROXY__ACCESS__DENIED) + return ok +} + +type ConnectionErrorCodeType_XKS__PROXY__NOT__REACHABLE struct { +} + +func (ConnectionErrorCodeType_XKS__PROXY__NOT__REACHABLE) isConnectionErrorCodeType() {} + +func (CompanionStruct_ConnectionErrorCodeType_) Create_XKS__PROXY__NOT__REACHABLE_() ConnectionErrorCodeType { + return ConnectionErrorCodeType{ConnectionErrorCodeType_XKS__PROXY__NOT__REACHABLE{}} +} + +func (_this ConnectionErrorCodeType) Is_XKS__PROXY__NOT__REACHABLE() bool { + _, ok := _this.Get_().(ConnectionErrorCodeType_XKS__PROXY__NOT__REACHABLE) + return ok +} + +type ConnectionErrorCodeType_XKS__VPC__ENDPOINT__SERVICE__NOT__FOUND struct { +} + +func (ConnectionErrorCodeType_XKS__VPC__ENDPOINT__SERVICE__NOT__FOUND) isConnectionErrorCodeType() {} + +func (CompanionStruct_ConnectionErrorCodeType_) Create_XKS__VPC__ENDPOINT__SERVICE__NOT__FOUND_() ConnectionErrorCodeType { + return ConnectionErrorCodeType{ConnectionErrorCodeType_XKS__VPC__ENDPOINT__SERVICE__NOT__FOUND{}} +} + +func (_this ConnectionErrorCodeType) Is_XKS__VPC__ENDPOINT__SERVICE__NOT__FOUND() bool { + _, ok := _this.Get_().(ConnectionErrorCodeType_XKS__VPC__ENDPOINT__SERVICE__NOT__FOUND) + return ok +} + +type ConnectionErrorCodeType_XKS__PROXY__INVALID__RESPONSE struct { +} + +func (ConnectionErrorCodeType_XKS__PROXY__INVALID__RESPONSE) isConnectionErrorCodeType() {} + +func (CompanionStruct_ConnectionErrorCodeType_) Create_XKS__PROXY__INVALID__RESPONSE_() ConnectionErrorCodeType { + return ConnectionErrorCodeType{ConnectionErrorCodeType_XKS__PROXY__INVALID__RESPONSE{}} +} + +func (_this ConnectionErrorCodeType) Is_XKS__PROXY__INVALID__RESPONSE() bool { + _, ok := _this.Get_().(ConnectionErrorCodeType_XKS__PROXY__INVALID__RESPONSE) + return ok +} + +type ConnectionErrorCodeType_XKS__PROXY__INVALID__CONFIGURATION struct { +} + +func (ConnectionErrorCodeType_XKS__PROXY__INVALID__CONFIGURATION) isConnectionErrorCodeType() {} + +func (CompanionStruct_ConnectionErrorCodeType_) Create_XKS__PROXY__INVALID__CONFIGURATION_() ConnectionErrorCodeType { + return ConnectionErrorCodeType{ConnectionErrorCodeType_XKS__PROXY__INVALID__CONFIGURATION{}} +} + +func (_this ConnectionErrorCodeType) Is_XKS__PROXY__INVALID__CONFIGURATION() bool { + _, ok := _this.Get_().(ConnectionErrorCodeType_XKS__PROXY__INVALID__CONFIGURATION) + return ok +} + +type ConnectionErrorCodeType_XKS__VPC__ENDPOINT__SERVICE__INVALID__CONFIGURATION struct { +} + +func (ConnectionErrorCodeType_XKS__VPC__ENDPOINT__SERVICE__INVALID__CONFIGURATION) isConnectionErrorCodeType() { +} + +func (CompanionStruct_ConnectionErrorCodeType_) Create_XKS__VPC__ENDPOINT__SERVICE__INVALID__CONFIGURATION_() ConnectionErrorCodeType { + return ConnectionErrorCodeType{ConnectionErrorCodeType_XKS__VPC__ENDPOINT__SERVICE__INVALID__CONFIGURATION{}} +} + +func (_this ConnectionErrorCodeType) Is_XKS__VPC__ENDPOINT__SERVICE__INVALID__CONFIGURATION() bool { + _, ok := _this.Get_().(ConnectionErrorCodeType_XKS__VPC__ENDPOINT__SERVICE__INVALID__CONFIGURATION) + return ok +} + +type ConnectionErrorCodeType_XKS__PROXY__TIMED__OUT struct { +} + +func (ConnectionErrorCodeType_XKS__PROXY__TIMED__OUT) isConnectionErrorCodeType() {} + +func (CompanionStruct_ConnectionErrorCodeType_) Create_XKS__PROXY__TIMED__OUT_() ConnectionErrorCodeType { + return ConnectionErrorCodeType{ConnectionErrorCodeType_XKS__PROXY__TIMED__OUT{}} +} + +func (_this ConnectionErrorCodeType) Is_XKS__PROXY__TIMED__OUT() bool { + _, ok := _this.Get_().(ConnectionErrorCodeType_XKS__PROXY__TIMED__OUT) + return ok +} + +type ConnectionErrorCodeType_XKS__PROXY__INVALID__TLS__CONFIGURATION struct { +} + +func (ConnectionErrorCodeType_XKS__PROXY__INVALID__TLS__CONFIGURATION) isConnectionErrorCodeType() {} + +func (CompanionStruct_ConnectionErrorCodeType_) Create_XKS__PROXY__INVALID__TLS__CONFIGURATION_() ConnectionErrorCodeType { + return ConnectionErrorCodeType{ConnectionErrorCodeType_XKS__PROXY__INVALID__TLS__CONFIGURATION{}} +} + +func (_this ConnectionErrorCodeType) Is_XKS__PROXY__INVALID__TLS__CONFIGURATION() bool { + _, ok := _this.Get_().(ConnectionErrorCodeType_XKS__PROXY__INVALID__TLS__CONFIGURATION) + return ok +} + +func (CompanionStruct_ConnectionErrorCodeType_) Default() ConnectionErrorCodeType { + return Companion_ConnectionErrorCodeType_.Create_INVALID__CREDENTIALS_() +} + +func (_ CompanionStruct_ConnectionErrorCodeType_) AllSingletonConstructors() _dafny.Iterator { + i := -1 + return func() (interface{}, bool) { + i++ + switch i { + case 0: + return Companion_ConnectionErrorCodeType_.Create_INVALID__CREDENTIALS_(), true + case 1: + return Companion_ConnectionErrorCodeType_.Create_CLUSTER__NOT__FOUND_(), true + case 2: + return Companion_ConnectionErrorCodeType_.Create_NETWORK__ERRORS_(), true + case 3: + return Companion_ConnectionErrorCodeType_.Create_INTERNAL__ERROR_(), true + case 4: + return Companion_ConnectionErrorCodeType_.Create_INSUFFICIENT__CLOUDHSM__HSMS_(), true + case 5: + return Companion_ConnectionErrorCodeType_.Create_USER__LOCKED__OUT_(), true + case 6: + return Companion_ConnectionErrorCodeType_.Create_USER__NOT__FOUND_(), true + case 7: + return Companion_ConnectionErrorCodeType_.Create_USER__LOGGED__IN_(), true + case 8: + return Companion_ConnectionErrorCodeType_.Create_SUBNET__NOT__FOUND_(), true + case 9: + return Companion_ConnectionErrorCodeType_.Create_INSUFFICIENT__FREE__ADDRESSES__IN__SUBNET_(), true + case 10: + return Companion_ConnectionErrorCodeType_.Create_XKS__PROXY__ACCESS__DENIED_(), true + case 11: + return Companion_ConnectionErrorCodeType_.Create_XKS__PROXY__NOT__REACHABLE_(), true + case 12: + return Companion_ConnectionErrorCodeType_.Create_XKS__VPC__ENDPOINT__SERVICE__NOT__FOUND_(), true + case 13: + return Companion_ConnectionErrorCodeType_.Create_XKS__PROXY__INVALID__RESPONSE_(), true + case 14: + return Companion_ConnectionErrorCodeType_.Create_XKS__PROXY__INVALID__CONFIGURATION_(), true + case 15: + return Companion_ConnectionErrorCodeType_.Create_XKS__VPC__ENDPOINT__SERVICE__INVALID__CONFIGURATION_(), true + case 16: + return Companion_ConnectionErrorCodeType_.Create_XKS__PROXY__TIMED__OUT_(), true + case 17: + return Companion_ConnectionErrorCodeType_.Create_XKS__PROXY__INVALID__TLS__CONFIGURATION_(), true + default: + return ConnectionErrorCodeType{}, false + } + } +} + +func (_this ConnectionErrorCodeType) String() string { + switch _this.Get_().(type) { + case nil: + return "null" + case ConnectionErrorCodeType_INVALID__CREDENTIALS: + { + return "ComAmazonawsKmsTypes.ConnectionErrorCodeType.INVALID_CREDENTIALS" + } + case ConnectionErrorCodeType_CLUSTER__NOT__FOUND: + { + return "ComAmazonawsKmsTypes.ConnectionErrorCodeType.CLUSTER_NOT_FOUND" + } + case ConnectionErrorCodeType_NETWORK__ERRORS: + { + return "ComAmazonawsKmsTypes.ConnectionErrorCodeType.NETWORK_ERRORS" + } + case ConnectionErrorCodeType_INTERNAL__ERROR: + { + return "ComAmazonawsKmsTypes.ConnectionErrorCodeType.INTERNAL_ERROR" + } + case ConnectionErrorCodeType_INSUFFICIENT__CLOUDHSM__HSMS: + { + return "ComAmazonawsKmsTypes.ConnectionErrorCodeType.INSUFFICIENT_CLOUDHSM_HSMS" + } + case ConnectionErrorCodeType_USER__LOCKED__OUT: + { + return "ComAmazonawsKmsTypes.ConnectionErrorCodeType.USER_LOCKED_OUT" + } + case ConnectionErrorCodeType_USER__NOT__FOUND: + { + return "ComAmazonawsKmsTypes.ConnectionErrorCodeType.USER_NOT_FOUND" + } + case ConnectionErrorCodeType_USER__LOGGED__IN: + { + return "ComAmazonawsKmsTypes.ConnectionErrorCodeType.USER_LOGGED_IN" + } + case ConnectionErrorCodeType_SUBNET__NOT__FOUND: + { + return "ComAmazonawsKmsTypes.ConnectionErrorCodeType.SUBNET_NOT_FOUND" + } + case ConnectionErrorCodeType_INSUFFICIENT__FREE__ADDRESSES__IN__SUBNET: + { + return "ComAmazonawsKmsTypes.ConnectionErrorCodeType.INSUFFICIENT_FREE_ADDRESSES_IN_SUBNET" + } + case ConnectionErrorCodeType_XKS__PROXY__ACCESS__DENIED: + { + return "ComAmazonawsKmsTypes.ConnectionErrorCodeType.XKS_PROXY_ACCESS_DENIED" + } + case ConnectionErrorCodeType_XKS__PROXY__NOT__REACHABLE: + { + return "ComAmazonawsKmsTypes.ConnectionErrorCodeType.XKS_PROXY_NOT_REACHABLE" + } + case ConnectionErrorCodeType_XKS__VPC__ENDPOINT__SERVICE__NOT__FOUND: + { + return "ComAmazonawsKmsTypes.ConnectionErrorCodeType.XKS_VPC_ENDPOINT_SERVICE_NOT_FOUND" + } + case ConnectionErrorCodeType_XKS__PROXY__INVALID__RESPONSE: + { + return "ComAmazonawsKmsTypes.ConnectionErrorCodeType.XKS_PROXY_INVALID_RESPONSE" + } + case ConnectionErrorCodeType_XKS__PROXY__INVALID__CONFIGURATION: + { + return "ComAmazonawsKmsTypes.ConnectionErrorCodeType.XKS_PROXY_INVALID_CONFIGURATION" + } + case ConnectionErrorCodeType_XKS__VPC__ENDPOINT__SERVICE__INVALID__CONFIGURATION: + { + return "ComAmazonawsKmsTypes.ConnectionErrorCodeType.XKS_VPC_ENDPOINT_SERVICE_INVALID_CONFIGURATION" + } + case ConnectionErrorCodeType_XKS__PROXY__TIMED__OUT: + { + return "ComAmazonawsKmsTypes.ConnectionErrorCodeType.XKS_PROXY_TIMED_OUT" + } + case ConnectionErrorCodeType_XKS__PROXY__INVALID__TLS__CONFIGURATION: + { + return "ComAmazonawsKmsTypes.ConnectionErrorCodeType.XKS_PROXY_INVALID_TLS_CONFIGURATION" + } + default: + { + return "" + } + } +} + +func (_this ConnectionErrorCodeType) Equals(other ConnectionErrorCodeType) bool { + switch _this.Get_().(type) { + case ConnectionErrorCodeType_INVALID__CREDENTIALS: + { + _, ok := other.Get_().(ConnectionErrorCodeType_INVALID__CREDENTIALS) + return ok + } + case ConnectionErrorCodeType_CLUSTER__NOT__FOUND: + { + _, ok := other.Get_().(ConnectionErrorCodeType_CLUSTER__NOT__FOUND) + return ok + } + case ConnectionErrorCodeType_NETWORK__ERRORS: + { + _, ok := other.Get_().(ConnectionErrorCodeType_NETWORK__ERRORS) + return ok + } + case ConnectionErrorCodeType_INTERNAL__ERROR: + { + _, ok := other.Get_().(ConnectionErrorCodeType_INTERNAL__ERROR) + return ok + } + case ConnectionErrorCodeType_INSUFFICIENT__CLOUDHSM__HSMS: + { + _, ok := other.Get_().(ConnectionErrorCodeType_INSUFFICIENT__CLOUDHSM__HSMS) + return ok + } + case ConnectionErrorCodeType_USER__LOCKED__OUT: + { + _, ok := other.Get_().(ConnectionErrorCodeType_USER__LOCKED__OUT) + return ok + } + case ConnectionErrorCodeType_USER__NOT__FOUND: + { + _, ok := other.Get_().(ConnectionErrorCodeType_USER__NOT__FOUND) + return ok + } + case ConnectionErrorCodeType_USER__LOGGED__IN: + { + _, ok := other.Get_().(ConnectionErrorCodeType_USER__LOGGED__IN) + return ok + } + case ConnectionErrorCodeType_SUBNET__NOT__FOUND: + { + _, ok := other.Get_().(ConnectionErrorCodeType_SUBNET__NOT__FOUND) + return ok + } + case ConnectionErrorCodeType_INSUFFICIENT__FREE__ADDRESSES__IN__SUBNET: + { + _, ok := other.Get_().(ConnectionErrorCodeType_INSUFFICIENT__FREE__ADDRESSES__IN__SUBNET) + return ok + } + case ConnectionErrorCodeType_XKS__PROXY__ACCESS__DENIED: + { + _, ok := other.Get_().(ConnectionErrorCodeType_XKS__PROXY__ACCESS__DENIED) + return ok + } + case ConnectionErrorCodeType_XKS__PROXY__NOT__REACHABLE: + { + _, ok := other.Get_().(ConnectionErrorCodeType_XKS__PROXY__NOT__REACHABLE) + return ok + } + case ConnectionErrorCodeType_XKS__VPC__ENDPOINT__SERVICE__NOT__FOUND: + { + _, ok := other.Get_().(ConnectionErrorCodeType_XKS__VPC__ENDPOINT__SERVICE__NOT__FOUND) + return ok + } + case ConnectionErrorCodeType_XKS__PROXY__INVALID__RESPONSE: + { + _, ok := other.Get_().(ConnectionErrorCodeType_XKS__PROXY__INVALID__RESPONSE) + return ok + } + case ConnectionErrorCodeType_XKS__PROXY__INVALID__CONFIGURATION: + { + _, ok := other.Get_().(ConnectionErrorCodeType_XKS__PROXY__INVALID__CONFIGURATION) + return ok + } + case ConnectionErrorCodeType_XKS__VPC__ENDPOINT__SERVICE__INVALID__CONFIGURATION: + { + _, ok := other.Get_().(ConnectionErrorCodeType_XKS__VPC__ENDPOINT__SERVICE__INVALID__CONFIGURATION) + return ok + } + case ConnectionErrorCodeType_XKS__PROXY__TIMED__OUT: + { + _, ok := other.Get_().(ConnectionErrorCodeType_XKS__PROXY__TIMED__OUT) + return ok + } + case ConnectionErrorCodeType_XKS__PROXY__INVALID__TLS__CONFIGURATION: + { + _, ok := other.Get_().(ConnectionErrorCodeType_XKS__PROXY__INVALID__TLS__CONFIGURATION) + return ok + } + default: + { + return false // unexpected + } + } +} + +func (_this ConnectionErrorCodeType) EqualsGeneric(other interface{}) bool { + typed, ok := other.(ConnectionErrorCodeType) + return ok && _this.Equals(typed) +} + +func Type_ConnectionErrorCodeType_() _dafny.TypeDescriptor { + return type_ConnectionErrorCodeType_{} +} + +type type_ConnectionErrorCodeType_ struct { +} + +func (_this type_ConnectionErrorCodeType_) Default() interface{} { + return Companion_ConnectionErrorCodeType_.Default() +} + +func (_this type_ConnectionErrorCodeType_) String() string { + return "ComAmazonawsKmsTypes.ConnectionErrorCodeType" +} +func (_this ConnectionErrorCodeType) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = ConnectionErrorCodeType{} + +// End of datatype ConnectionErrorCodeType + +// Definition of datatype ConnectionStateType +type ConnectionStateType struct { + Data_ConnectionStateType_ +} + +func (_this ConnectionStateType) Get_() Data_ConnectionStateType_ { + return _this.Data_ConnectionStateType_ +} + +type Data_ConnectionStateType_ interface { + isConnectionStateType() +} + +type CompanionStruct_ConnectionStateType_ struct { +} + +var Companion_ConnectionStateType_ = CompanionStruct_ConnectionStateType_{} + +type ConnectionStateType_CONNECTED struct { +} + +func (ConnectionStateType_CONNECTED) isConnectionStateType() {} + +func (CompanionStruct_ConnectionStateType_) Create_CONNECTED_() ConnectionStateType { + return ConnectionStateType{ConnectionStateType_CONNECTED{}} +} + +func (_this ConnectionStateType) Is_CONNECTED() bool { + _, ok := _this.Get_().(ConnectionStateType_CONNECTED) + return ok +} + +type ConnectionStateType_CONNECTING struct { +} + +func (ConnectionStateType_CONNECTING) isConnectionStateType() {} + +func (CompanionStruct_ConnectionStateType_) Create_CONNECTING_() ConnectionStateType { + return ConnectionStateType{ConnectionStateType_CONNECTING{}} +} + +func (_this ConnectionStateType) Is_CONNECTING() bool { + _, ok := _this.Get_().(ConnectionStateType_CONNECTING) + return ok +} + +type ConnectionStateType_FAILED struct { +} + +func (ConnectionStateType_FAILED) isConnectionStateType() {} + +func (CompanionStruct_ConnectionStateType_) Create_FAILED_() ConnectionStateType { + return ConnectionStateType{ConnectionStateType_FAILED{}} +} + +func (_this ConnectionStateType) Is_FAILED() bool { + _, ok := _this.Get_().(ConnectionStateType_FAILED) + return ok +} + +type ConnectionStateType_DISCONNECTED struct { +} + +func (ConnectionStateType_DISCONNECTED) isConnectionStateType() {} + +func (CompanionStruct_ConnectionStateType_) Create_DISCONNECTED_() ConnectionStateType { + return ConnectionStateType{ConnectionStateType_DISCONNECTED{}} +} + +func (_this ConnectionStateType) Is_DISCONNECTED() bool { + _, ok := _this.Get_().(ConnectionStateType_DISCONNECTED) + return ok +} + +type ConnectionStateType_DISCONNECTING struct { +} + +func (ConnectionStateType_DISCONNECTING) isConnectionStateType() {} + +func (CompanionStruct_ConnectionStateType_) Create_DISCONNECTING_() ConnectionStateType { + return ConnectionStateType{ConnectionStateType_DISCONNECTING{}} +} + +func (_this ConnectionStateType) Is_DISCONNECTING() bool { + _, ok := _this.Get_().(ConnectionStateType_DISCONNECTING) + return ok +} + +func (CompanionStruct_ConnectionStateType_) Default() ConnectionStateType { + return Companion_ConnectionStateType_.Create_CONNECTED_() +} + +func (_ CompanionStruct_ConnectionStateType_) AllSingletonConstructors() _dafny.Iterator { + i := -1 + return func() (interface{}, bool) { + i++ + switch i { + case 0: + return Companion_ConnectionStateType_.Create_CONNECTED_(), true + case 1: + return Companion_ConnectionStateType_.Create_CONNECTING_(), true + case 2: + return Companion_ConnectionStateType_.Create_FAILED_(), true + case 3: + return Companion_ConnectionStateType_.Create_DISCONNECTED_(), true + case 4: + return Companion_ConnectionStateType_.Create_DISCONNECTING_(), true + default: + return ConnectionStateType{}, false + } + } +} + +func (_this ConnectionStateType) String() string { + switch _this.Get_().(type) { + case nil: + return "null" + case ConnectionStateType_CONNECTED: + { + return "ComAmazonawsKmsTypes.ConnectionStateType.CONNECTED" + } + case ConnectionStateType_CONNECTING: + { + return "ComAmazonawsKmsTypes.ConnectionStateType.CONNECTING" + } + case ConnectionStateType_FAILED: + { + return "ComAmazonawsKmsTypes.ConnectionStateType.FAILED" + } + case ConnectionStateType_DISCONNECTED: + { + return "ComAmazonawsKmsTypes.ConnectionStateType.DISCONNECTED" + } + case ConnectionStateType_DISCONNECTING: + { + return "ComAmazonawsKmsTypes.ConnectionStateType.DISCONNECTING" + } + default: + { + return "" + } + } +} + +func (_this ConnectionStateType) Equals(other ConnectionStateType) bool { + switch _this.Get_().(type) { + case ConnectionStateType_CONNECTED: + { + _, ok := other.Get_().(ConnectionStateType_CONNECTED) + return ok + } + case ConnectionStateType_CONNECTING: + { + _, ok := other.Get_().(ConnectionStateType_CONNECTING) + return ok + } + case ConnectionStateType_FAILED: + { + _, ok := other.Get_().(ConnectionStateType_FAILED) + return ok + } + case ConnectionStateType_DISCONNECTED: + { + _, ok := other.Get_().(ConnectionStateType_DISCONNECTED) + return ok + } + case ConnectionStateType_DISCONNECTING: + { + _, ok := other.Get_().(ConnectionStateType_DISCONNECTING) + return ok + } + default: + { + return false // unexpected + } + } +} + +func (_this ConnectionStateType) EqualsGeneric(other interface{}) bool { + typed, ok := other.(ConnectionStateType) + return ok && _this.Equals(typed) +} + +func Type_ConnectionStateType_() _dafny.TypeDescriptor { + return type_ConnectionStateType_{} +} + +type type_ConnectionStateType_ struct { +} + +func (_this type_ConnectionStateType_) Default() interface{} { + return Companion_ConnectionStateType_.Default() +} + +func (_this type_ConnectionStateType_) String() string { + return "ComAmazonawsKmsTypes.ConnectionStateType" +} +func (_this ConnectionStateType) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = ConnectionStateType{} + +// End of datatype ConnectionStateType + +// Definition of datatype CreateAliasRequest +type CreateAliasRequest struct { + Data_CreateAliasRequest_ +} + +func (_this CreateAliasRequest) Get_() Data_CreateAliasRequest_ { + return _this.Data_CreateAliasRequest_ +} + +type Data_CreateAliasRequest_ interface { + isCreateAliasRequest() +} + +type CompanionStruct_CreateAliasRequest_ struct { +} + +var Companion_CreateAliasRequest_ = CompanionStruct_CreateAliasRequest_{} + +type CreateAliasRequest_CreateAliasRequest struct { + AliasName _dafny.Sequence + TargetKeyId _dafny.Sequence +} + +func (CreateAliasRequest_CreateAliasRequest) isCreateAliasRequest() {} + +func (CompanionStruct_CreateAliasRequest_) Create_CreateAliasRequest_(AliasName _dafny.Sequence, TargetKeyId _dafny.Sequence) CreateAliasRequest { + return CreateAliasRequest{CreateAliasRequest_CreateAliasRequest{AliasName, TargetKeyId}} +} + +func (_this CreateAliasRequest) Is_CreateAliasRequest() bool { + _, ok := _this.Get_().(CreateAliasRequest_CreateAliasRequest) + return ok +} + +func (CompanionStruct_CreateAliasRequest_) Default() CreateAliasRequest { + return Companion_CreateAliasRequest_.Create_CreateAliasRequest_(_dafny.EmptySeq.SetString(), _dafny.EmptySeq.SetString()) +} + +func (_this CreateAliasRequest) Dtor_AliasName() _dafny.Sequence { + return _this.Get_().(CreateAliasRequest_CreateAliasRequest).AliasName +} + +func (_this CreateAliasRequest) Dtor_TargetKeyId() _dafny.Sequence { + return _this.Get_().(CreateAliasRequest_CreateAliasRequest).TargetKeyId +} + +func (_this CreateAliasRequest) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case CreateAliasRequest_CreateAliasRequest: + { + return "ComAmazonawsKmsTypes.CreateAliasRequest.CreateAliasRequest" + "(" + _dafny.String(data.AliasName) + ", " + _dafny.String(data.TargetKeyId) + ")" + } + default: + { + return "" + } + } +} + +func (_this CreateAliasRequest) Equals(other CreateAliasRequest) bool { + switch data1 := _this.Get_().(type) { + case CreateAliasRequest_CreateAliasRequest: + { + data2, ok := other.Get_().(CreateAliasRequest_CreateAliasRequest) + return ok && data1.AliasName.Equals(data2.AliasName) && data1.TargetKeyId.Equals(data2.TargetKeyId) + } + default: + { + return false // unexpected + } + } +} + +func (_this CreateAliasRequest) EqualsGeneric(other interface{}) bool { + typed, ok := other.(CreateAliasRequest) + return ok && _this.Equals(typed) +} + +func Type_CreateAliasRequest_() _dafny.TypeDescriptor { + return type_CreateAliasRequest_{} +} + +type type_CreateAliasRequest_ struct { +} + +func (_this type_CreateAliasRequest_) Default() interface{} { + return Companion_CreateAliasRequest_.Default() +} + +func (_this type_CreateAliasRequest_) String() string { + return "ComAmazonawsKmsTypes.CreateAliasRequest" +} +func (_this CreateAliasRequest) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = CreateAliasRequest{} + +// End of datatype CreateAliasRequest + +// Definition of datatype CreateCustomKeyStoreRequest +type CreateCustomKeyStoreRequest struct { + Data_CreateCustomKeyStoreRequest_ +} + +func (_this CreateCustomKeyStoreRequest) Get_() Data_CreateCustomKeyStoreRequest_ { + return _this.Data_CreateCustomKeyStoreRequest_ +} + +type Data_CreateCustomKeyStoreRequest_ interface { + isCreateCustomKeyStoreRequest() +} + +type CompanionStruct_CreateCustomKeyStoreRequest_ struct { +} + +var Companion_CreateCustomKeyStoreRequest_ = CompanionStruct_CreateCustomKeyStoreRequest_{} + +type CreateCustomKeyStoreRequest_CreateCustomKeyStoreRequest struct { + CustomKeyStoreName _dafny.Sequence + CloudHsmClusterId m_Wrappers.Option + TrustAnchorCertificate m_Wrappers.Option + KeyStorePassword m_Wrappers.Option + CustomKeyStoreType m_Wrappers.Option + XksProxyUriEndpoint m_Wrappers.Option + XksProxyUriPath m_Wrappers.Option + XksProxyVpcEndpointServiceName m_Wrappers.Option + XksProxyAuthenticationCredential m_Wrappers.Option + XksProxyConnectivity m_Wrappers.Option +} + +func (CreateCustomKeyStoreRequest_CreateCustomKeyStoreRequest) isCreateCustomKeyStoreRequest() {} + +func (CompanionStruct_CreateCustomKeyStoreRequest_) Create_CreateCustomKeyStoreRequest_(CustomKeyStoreName _dafny.Sequence, CloudHsmClusterId m_Wrappers.Option, TrustAnchorCertificate m_Wrappers.Option, KeyStorePassword m_Wrappers.Option, CustomKeyStoreType m_Wrappers.Option, XksProxyUriEndpoint m_Wrappers.Option, XksProxyUriPath m_Wrappers.Option, XksProxyVpcEndpointServiceName m_Wrappers.Option, XksProxyAuthenticationCredential m_Wrappers.Option, XksProxyConnectivity m_Wrappers.Option) CreateCustomKeyStoreRequest { + return CreateCustomKeyStoreRequest{CreateCustomKeyStoreRequest_CreateCustomKeyStoreRequest{CustomKeyStoreName, CloudHsmClusterId, TrustAnchorCertificate, KeyStorePassword, CustomKeyStoreType, XksProxyUriEndpoint, XksProxyUriPath, XksProxyVpcEndpointServiceName, XksProxyAuthenticationCredential, XksProxyConnectivity}} +} + +func (_this CreateCustomKeyStoreRequest) Is_CreateCustomKeyStoreRequest() bool { + _, ok := _this.Get_().(CreateCustomKeyStoreRequest_CreateCustomKeyStoreRequest) + return ok +} + +func (CompanionStruct_CreateCustomKeyStoreRequest_) Default() CreateCustomKeyStoreRequest { + return Companion_CreateCustomKeyStoreRequest_.Create_CreateCustomKeyStoreRequest_(_dafny.EmptySeq.SetString(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this CreateCustomKeyStoreRequest) Dtor_CustomKeyStoreName() _dafny.Sequence { + return _this.Get_().(CreateCustomKeyStoreRequest_CreateCustomKeyStoreRequest).CustomKeyStoreName +} + +func (_this CreateCustomKeyStoreRequest) Dtor_CloudHsmClusterId() m_Wrappers.Option { + return _this.Get_().(CreateCustomKeyStoreRequest_CreateCustomKeyStoreRequest).CloudHsmClusterId +} + +func (_this CreateCustomKeyStoreRequest) Dtor_TrustAnchorCertificate() m_Wrappers.Option { + return _this.Get_().(CreateCustomKeyStoreRequest_CreateCustomKeyStoreRequest).TrustAnchorCertificate +} + +func (_this CreateCustomKeyStoreRequest) Dtor_KeyStorePassword() m_Wrappers.Option { + return _this.Get_().(CreateCustomKeyStoreRequest_CreateCustomKeyStoreRequest).KeyStorePassword +} + +func (_this CreateCustomKeyStoreRequest) Dtor_CustomKeyStoreType() m_Wrappers.Option { + return _this.Get_().(CreateCustomKeyStoreRequest_CreateCustomKeyStoreRequest).CustomKeyStoreType +} + +func (_this CreateCustomKeyStoreRequest) Dtor_XksProxyUriEndpoint() m_Wrappers.Option { + return _this.Get_().(CreateCustomKeyStoreRequest_CreateCustomKeyStoreRequest).XksProxyUriEndpoint +} + +func (_this CreateCustomKeyStoreRequest) Dtor_XksProxyUriPath() m_Wrappers.Option { + return _this.Get_().(CreateCustomKeyStoreRequest_CreateCustomKeyStoreRequest).XksProxyUriPath +} + +func (_this CreateCustomKeyStoreRequest) Dtor_XksProxyVpcEndpointServiceName() m_Wrappers.Option { + return _this.Get_().(CreateCustomKeyStoreRequest_CreateCustomKeyStoreRequest).XksProxyVpcEndpointServiceName +} + +func (_this CreateCustomKeyStoreRequest) Dtor_XksProxyAuthenticationCredential() m_Wrappers.Option { + return _this.Get_().(CreateCustomKeyStoreRequest_CreateCustomKeyStoreRequest).XksProxyAuthenticationCredential +} + +func (_this CreateCustomKeyStoreRequest) Dtor_XksProxyConnectivity() m_Wrappers.Option { + return _this.Get_().(CreateCustomKeyStoreRequest_CreateCustomKeyStoreRequest).XksProxyConnectivity +} + +func (_this CreateCustomKeyStoreRequest) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case CreateCustomKeyStoreRequest_CreateCustomKeyStoreRequest: + { + return "ComAmazonawsKmsTypes.CreateCustomKeyStoreRequest.CreateCustomKeyStoreRequest" + "(" + _dafny.String(data.CustomKeyStoreName) + ", " + _dafny.String(data.CloudHsmClusterId) + ", " + _dafny.String(data.TrustAnchorCertificate) + ", " + _dafny.String(data.KeyStorePassword) + ", " + _dafny.String(data.CustomKeyStoreType) + ", " + _dafny.String(data.XksProxyUriEndpoint) + ", " + _dafny.String(data.XksProxyUriPath) + ", " + _dafny.String(data.XksProxyVpcEndpointServiceName) + ", " + _dafny.String(data.XksProxyAuthenticationCredential) + ", " + _dafny.String(data.XksProxyConnectivity) + ")" + } + default: + { + return "" + } + } +} + +func (_this CreateCustomKeyStoreRequest) Equals(other CreateCustomKeyStoreRequest) bool { + switch data1 := _this.Get_().(type) { + case CreateCustomKeyStoreRequest_CreateCustomKeyStoreRequest: + { + data2, ok := other.Get_().(CreateCustomKeyStoreRequest_CreateCustomKeyStoreRequest) + return ok && data1.CustomKeyStoreName.Equals(data2.CustomKeyStoreName) && data1.CloudHsmClusterId.Equals(data2.CloudHsmClusterId) && data1.TrustAnchorCertificate.Equals(data2.TrustAnchorCertificate) && data1.KeyStorePassword.Equals(data2.KeyStorePassword) && data1.CustomKeyStoreType.Equals(data2.CustomKeyStoreType) && data1.XksProxyUriEndpoint.Equals(data2.XksProxyUriEndpoint) && data1.XksProxyUriPath.Equals(data2.XksProxyUriPath) && data1.XksProxyVpcEndpointServiceName.Equals(data2.XksProxyVpcEndpointServiceName) && data1.XksProxyAuthenticationCredential.Equals(data2.XksProxyAuthenticationCredential) && data1.XksProxyConnectivity.Equals(data2.XksProxyConnectivity) + } + default: + { + return false // unexpected + } + } +} + +func (_this CreateCustomKeyStoreRequest) EqualsGeneric(other interface{}) bool { + typed, ok := other.(CreateCustomKeyStoreRequest) + return ok && _this.Equals(typed) +} + +func Type_CreateCustomKeyStoreRequest_() _dafny.TypeDescriptor { + return type_CreateCustomKeyStoreRequest_{} +} + +type type_CreateCustomKeyStoreRequest_ struct { +} + +func (_this type_CreateCustomKeyStoreRequest_) Default() interface{} { + return Companion_CreateCustomKeyStoreRequest_.Default() +} + +func (_this type_CreateCustomKeyStoreRequest_) String() string { + return "ComAmazonawsKmsTypes.CreateCustomKeyStoreRequest" +} +func (_this CreateCustomKeyStoreRequest) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = CreateCustomKeyStoreRequest{} + +// End of datatype CreateCustomKeyStoreRequest + +// Definition of datatype CreateCustomKeyStoreResponse +type CreateCustomKeyStoreResponse struct { + Data_CreateCustomKeyStoreResponse_ +} + +func (_this CreateCustomKeyStoreResponse) Get_() Data_CreateCustomKeyStoreResponse_ { + return _this.Data_CreateCustomKeyStoreResponse_ +} + +type Data_CreateCustomKeyStoreResponse_ interface { + isCreateCustomKeyStoreResponse() +} + +type CompanionStruct_CreateCustomKeyStoreResponse_ struct { +} + +var Companion_CreateCustomKeyStoreResponse_ = CompanionStruct_CreateCustomKeyStoreResponse_{} + +type CreateCustomKeyStoreResponse_CreateCustomKeyStoreResponse struct { + CustomKeyStoreId m_Wrappers.Option +} + +func (CreateCustomKeyStoreResponse_CreateCustomKeyStoreResponse) isCreateCustomKeyStoreResponse() {} + +func (CompanionStruct_CreateCustomKeyStoreResponse_) Create_CreateCustomKeyStoreResponse_(CustomKeyStoreId m_Wrappers.Option) CreateCustomKeyStoreResponse { + return CreateCustomKeyStoreResponse{CreateCustomKeyStoreResponse_CreateCustomKeyStoreResponse{CustomKeyStoreId}} +} + +func (_this CreateCustomKeyStoreResponse) Is_CreateCustomKeyStoreResponse() bool { + _, ok := _this.Get_().(CreateCustomKeyStoreResponse_CreateCustomKeyStoreResponse) + return ok +} + +func (CompanionStruct_CreateCustomKeyStoreResponse_) Default() CreateCustomKeyStoreResponse { + return Companion_CreateCustomKeyStoreResponse_.Create_CreateCustomKeyStoreResponse_(m_Wrappers.Companion_Option_.Default()) +} + +func (_this CreateCustomKeyStoreResponse) Dtor_CustomKeyStoreId() m_Wrappers.Option { + return _this.Get_().(CreateCustomKeyStoreResponse_CreateCustomKeyStoreResponse).CustomKeyStoreId +} + +func (_this CreateCustomKeyStoreResponse) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case CreateCustomKeyStoreResponse_CreateCustomKeyStoreResponse: + { + return "ComAmazonawsKmsTypes.CreateCustomKeyStoreResponse.CreateCustomKeyStoreResponse" + "(" + _dafny.String(data.CustomKeyStoreId) + ")" + } + default: + { + return "" + } + } +} + +func (_this CreateCustomKeyStoreResponse) Equals(other CreateCustomKeyStoreResponse) bool { + switch data1 := _this.Get_().(type) { + case CreateCustomKeyStoreResponse_CreateCustomKeyStoreResponse: + { + data2, ok := other.Get_().(CreateCustomKeyStoreResponse_CreateCustomKeyStoreResponse) + return ok && data1.CustomKeyStoreId.Equals(data2.CustomKeyStoreId) + } + default: + { + return false // unexpected + } + } +} + +func (_this CreateCustomKeyStoreResponse) EqualsGeneric(other interface{}) bool { + typed, ok := other.(CreateCustomKeyStoreResponse) + return ok && _this.Equals(typed) +} + +func Type_CreateCustomKeyStoreResponse_() _dafny.TypeDescriptor { + return type_CreateCustomKeyStoreResponse_{} +} + +type type_CreateCustomKeyStoreResponse_ struct { +} + +func (_this type_CreateCustomKeyStoreResponse_) Default() interface{} { + return Companion_CreateCustomKeyStoreResponse_.Default() +} + +func (_this type_CreateCustomKeyStoreResponse_) String() string { + return "ComAmazonawsKmsTypes.CreateCustomKeyStoreResponse" +} +func (_this CreateCustomKeyStoreResponse) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = CreateCustomKeyStoreResponse{} + +// End of datatype CreateCustomKeyStoreResponse + +// Definition of datatype CreateGrantRequest +type CreateGrantRequest struct { + Data_CreateGrantRequest_ +} + +func (_this CreateGrantRequest) Get_() Data_CreateGrantRequest_ { + return _this.Data_CreateGrantRequest_ +} + +type Data_CreateGrantRequest_ interface { + isCreateGrantRequest() +} + +type CompanionStruct_CreateGrantRequest_ struct { +} + +var Companion_CreateGrantRequest_ = CompanionStruct_CreateGrantRequest_{} + +type CreateGrantRequest_CreateGrantRequest struct { + KeyId _dafny.Sequence + GranteePrincipal _dafny.Sequence + RetiringPrincipal m_Wrappers.Option + Operations _dafny.Sequence + Constraints m_Wrappers.Option + GrantTokens m_Wrappers.Option + Name m_Wrappers.Option + DryRun m_Wrappers.Option +} + +func (CreateGrantRequest_CreateGrantRequest) isCreateGrantRequest() {} + +func (CompanionStruct_CreateGrantRequest_) Create_CreateGrantRequest_(KeyId _dafny.Sequence, GranteePrincipal _dafny.Sequence, RetiringPrincipal m_Wrappers.Option, Operations _dafny.Sequence, Constraints m_Wrappers.Option, GrantTokens m_Wrappers.Option, Name m_Wrappers.Option, DryRun m_Wrappers.Option) CreateGrantRequest { + return CreateGrantRequest{CreateGrantRequest_CreateGrantRequest{KeyId, GranteePrincipal, RetiringPrincipal, Operations, Constraints, GrantTokens, Name, DryRun}} +} + +func (_this CreateGrantRequest) Is_CreateGrantRequest() bool { + _, ok := _this.Get_().(CreateGrantRequest_CreateGrantRequest) + return ok +} + +func (CompanionStruct_CreateGrantRequest_) Default() CreateGrantRequest { + return Companion_CreateGrantRequest_.Create_CreateGrantRequest_(_dafny.EmptySeq.SetString(), _dafny.EmptySeq.SetString(), m_Wrappers.Companion_Option_.Default(), _dafny.EmptySeq, m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this CreateGrantRequest) Dtor_KeyId() _dafny.Sequence { + return _this.Get_().(CreateGrantRequest_CreateGrantRequest).KeyId +} + +func (_this CreateGrantRequest) Dtor_GranteePrincipal() _dafny.Sequence { + return _this.Get_().(CreateGrantRequest_CreateGrantRequest).GranteePrincipal +} + +func (_this CreateGrantRequest) Dtor_RetiringPrincipal() m_Wrappers.Option { + return _this.Get_().(CreateGrantRequest_CreateGrantRequest).RetiringPrincipal +} + +func (_this CreateGrantRequest) Dtor_Operations() _dafny.Sequence { + return _this.Get_().(CreateGrantRequest_CreateGrantRequest).Operations +} + +func (_this CreateGrantRequest) Dtor_Constraints() m_Wrappers.Option { + return _this.Get_().(CreateGrantRequest_CreateGrantRequest).Constraints +} + +func (_this CreateGrantRequest) Dtor_GrantTokens() m_Wrappers.Option { + return _this.Get_().(CreateGrantRequest_CreateGrantRequest).GrantTokens +} + +func (_this CreateGrantRequest) Dtor_Name() m_Wrappers.Option { + return _this.Get_().(CreateGrantRequest_CreateGrantRequest).Name +} + +func (_this CreateGrantRequest) Dtor_DryRun() m_Wrappers.Option { + return _this.Get_().(CreateGrantRequest_CreateGrantRequest).DryRun +} + +func (_this CreateGrantRequest) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case CreateGrantRequest_CreateGrantRequest: + { + return "ComAmazonawsKmsTypes.CreateGrantRequest.CreateGrantRequest" + "(" + _dafny.String(data.KeyId) + ", " + _dafny.String(data.GranteePrincipal) + ", " + _dafny.String(data.RetiringPrincipal) + ", " + _dafny.String(data.Operations) + ", " + _dafny.String(data.Constraints) + ", " + _dafny.String(data.GrantTokens) + ", " + _dafny.String(data.Name) + ", " + _dafny.String(data.DryRun) + ")" + } + default: + { + return "" + } + } +} + +func (_this CreateGrantRequest) Equals(other CreateGrantRequest) bool { + switch data1 := _this.Get_().(type) { + case CreateGrantRequest_CreateGrantRequest: + { + data2, ok := other.Get_().(CreateGrantRequest_CreateGrantRequest) + return ok && data1.KeyId.Equals(data2.KeyId) && data1.GranteePrincipal.Equals(data2.GranteePrincipal) && data1.RetiringPrincipal.Equals(data2.RetiringPrincipal) && data1.Operations.Equals(data2.Operations) && data1.Constraints.Equals(data2.Constraints) && data1.GrantTokens.Equals(data2.GrantTokens) && data1.Name.Equals(data2.Name) && data1.DryRun.Equals(data2.DryRun) + } + default: + { + return false // unexpected + } + } +} + +func (_this CreateGrantRequest) EqualsGeneric(other interface{}) bool { + typed, ok := other.(CreateGrantRequest) + return ok && _this.Equals(typed) +} + +func Type_CreateGrantRequest_() _dafny.TypeDescriptor { + return type_CreateGrantRequest_{} +} + +type type_CreateGrantRequest_ struct { +} + +func (_this type_CreateGrantRequest_) Default() interface{} { + return Companion_CreateGrantRequest_.Default() +} + +func (_this type_CreateGrantRequest_) String() string { + return "ComAmazonawsKmsTypes.CreateGrantRequest" +} +func (_this CreateGrantRequest) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = CreateGrantRequest{} + +// End of datatype CreateGrantRequest + +// Definition of datatype CreateGrantResponse +type CreateGrantResponse struct { + Data_CreateGrantResponse_ +} + +func (_this CreateGrantResponse) Get_() Data_CreateGrantResponse_ { + return _this.Data_CreateGrantResponse_ +} + +type Data_CreateGrantResponse_ interface { + isCreateGrantResponse() +} + +type CompanionStruct_CreateGrantResponse_ struct { +} + +var Companion_CreateGrantResponse_ = CompanionStruct_CreateGrantResponse_{} + +type CreateGrantResponse_CreateGrantResponse struct { + GrantToken m_Wrappers.Option + GrantId m_Wrappers.Option +} + +func (CreateGrantResponse_CreateGrantResponse) isCreateGrantResponse() {} + +func (CompanionStruct_CreateGrantResponse_) Create_CreateGrantResponse_(GrantToken m_Wrappers.Option, GrantId m_Wrappers.Option) CreateGrantResponse { + return CreateGrantResponse{CreateGrantResponse_CreateGrantResponse{GrantToken, GrantId}} +} + +func (_this CreateGrantResponse) Is_CreateGrantResponse() bool { + _, ok := _this.Get_().(CreateGrantResponse_CreateGrantResponse) + return ok +} + +func (CompanionStruct_CreateGrantResponse_) Default() CreateGrantResponse { + return Companion_CreateGrantResponse_.Create_CreateGrantResponse_(m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this CreateGrantResponse) Dtor_GrantToken() m_Wrappers.Option { + return _this.Get_().(CreateGrantResponse_CreateGrantResponse).GrantToken +} + +func (_this CreateGrantResponse) Dtor_GrantId() m_Wrappers.Option { + return _this.Get_().(CreateGrantResponse_CreateGrantResponse).GrantId +} + +func (_this CreateGrantResponse) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case CreateGrantResponse_CreateGrantResponse: + { + return "ComAmazonawsKmsTypes.CreateGrantResponse.CreateGrantResponse" + "(" + _dafny.String(data.GrantToken) + ", " + _dafny.String(data.GrantId) + ")" + } + default: + { + return "" + } + } +} + +func (_this CreateGrantResponse) Equals(other CreateGrantResponse) bool { + switch data1 := _this.Get_().(type) { + case CreateGrantResponse_CreateGrantResponse: + { + data2, ok := other.Get_().(CreateGrantResponse_CreateGrantResponse) + return ok && data1.GrantToken.Equals(data2.GrantToken) && data1.GrantId.Equals(data2.GrantId) + } + default: + { + return false // unexpected + } + } +} + +func (_this CreateGrantResponse) EqualsGeneric(other interface{}) bool { + typed, ok := other.(CreateGrantResponse) + return ok && _this.Equals(typed) +} + +func Type_CreateGrantResponse_() _dafny.TypeDescriptor { + return type_CreateGrantResponse_{} +} + +type type_CreateGrantResponse_ struct { +} + +func (_this type_CreateGrantResponse_) Default() interface{} { + return Companion_CreateGrantResponse_.Default() +} + +func (_this type_CreateGrantResponse_) String() string { + return "ComAmazonawsKmsTypes.CreateGrantResponse" +} +func (_this CreateGrantResponse) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = CreateGrantResponse{} + +// End of datatype CreateGrantResponse + +// Definition of datatype CreateKeyRequest +type CreateKeyRequest struct { + Data_CreateKeyRequest_ +} + +func (_this CreateKeyRequest) Get_() Data_CreateKeyRequest_ { + return _this.Data_CreateKeyRequest_ +} + +type Data_CreateKeyRequest_ interface { + isCreateKeyRequest() +} + +type CompanionStruct_CreateKeyRequest_ struct { +} + +var Companion_CreateKeyRequest_ = CompanionStruct_CreateKeyRequest_{} + +type CreateKeyRequest_CreateKeyRequest struct { + Policy m_Wrappers.Option + Description m_Wrappers.Option + KeyUsage m_Wrappers.Option + CustomerMasterKeySpec m_Wrappers.Option + KeySpec m_Wrappers.Option + Origin m_Wrappers.Option + CustomKeyStoreId m_Wrappers.Option + BypassPolicyLockoutSafetyCheck m_Wrappers.Option + Tags m_Wrappers.Option + MultiRegion m_Wrappers.Option + XksKeyId m_Wrappers.Option +} + +func (CreateKeyRequest_CreateKeyRequest) isCreateKeyRequest() {} + +func (CompanionStruct_CreateKeyRequest_) Create_CreateKeyRequest_(Policy m_Wrappers.Option, Description m_Wrappers.Option, KeyUsage m_Wrappers.Option, CustomerMasterKeySpec m_Wrappers.Option, KeySpec m_Wrappers.Option, Origin m_Wrappers.Option, CustomKeyStoreId m_Wrappers.Option, BypassPolicyLockoutSafetyCheck m_Wrappers.Option, Tags m_Wrappers.Option, MultiRegion m_Wrappers.Option, XksKeyId m_Wrappers.Option) CreateKeyRequest { + return CreateKeyRequest{CreateKeyRequest_CreateKeyRequest{Policy, Description, KeyUsage, CustomerMasterKeySpec, KeySpec, Origin, CustomKeyStoreId, BypassPolicyLockoutSafetyCheck, Tags, MultiRegion, XksKeyId}} +} + +func (_this CreateKeyRequest) Is_CreateKeyRequest() bool { + _, ok := _this.Get_().(CreateKeyRequest_CreateKeyRequest) + return ok +} + +func (CompanionStruct_CreateKeyRequest_) Default() CreateKeyRequest { + return Companion_CreateKeyRequest_.Create_CreateKeyRequest_(m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this CreateKeyRequest) Dtor_Policy() m_Wrappers.Option { + return _this.Get_().(CreateKeyRequest_CreateKeyRequest).Policy +} + +func (_this CreateKeyRequest) Dtor_Description() m_Wrappers.Option { + return _this.Get_().(CreateKeyRequest_CreateKeyRequest).Description +} + +func (_this CreateKeyRequest) Dtor_KeyUsage() m_Wrappers.Option { + return _this.Get_().(CreateKeyRequest_CreateKeyRequest).KeyUsage +} + +func (_this CreateKeyRequest) Dtor_CustomerMasterKeySpec() m_Wrappers.Option { + return _this.Get_().(CreateKeyRequest_CreateKeyRequest).CustomerMasterKeySpec +} + +func (_this CreateKeyRequest) Dtor_KeySpec() m_Wrappers.Option { + return _this.Get_().(CreateKeyRequest_CreateKeyRequest).KeySpec +} + +func (_this CreateKeyRequest) Dtor_Origin() m_Wrappers.Option { + return _this.Get_().(CreateKeyRequest_CreateKeyRequest).Origin +} + +func (_this CreateKeyRequest) Dtor_CustomKeyStoreId() m_Wrappers.Option { + return _this.Get_().(CreateKeyRequest_CreateKeyRequest).CustomKeyStoreId +} + +func (_this CreateKeyRequest) Dtor_BypassPolicyLockoutSafetyCheck() m_Wrappers.Option { + return _this.Get_().(CreateKeyRequest_CreateKeyRequest).BypassPolicyLockoutSafetyCheck +} + +func (_this CreateKeyRequest) Dtor_Tags() m_Wrappers.Option { + return _this.Get_().(CreateKeyRequest_CreateKeyRequest).Tags +} + +func (_this CreateKeyRequest) Dtor_MultiRegion() m_Wrappers.Option { + return _this.Get_().(CreateKeyRequest_CreateKeyRequest).MultiRegion +} + +func (_this CreateKeyRequest) Dtor_XksKeyId() m_Wrappers.Option { + return _this.Get_().(CreateKeyRequest_CreateKeyRequest).XksKeyId +} + +func (_this CreateKeyRequest) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case CreateKeyRequest_CreateKeyRequest: + { + return "ComAmazonawsKmsTypes.CreateKeyRequest.CreateKeyRequest" + "(" + _dafny.String(data.Policy) + ", " + _dafny.String(data.Description) + ", " + _dafny.String(data.KeyUsage) + ", " + _dafny.String(data.CustomerMasterKeySpec) + ", " + _dafny.String(data.KeySpec) + ", " + _dafny.String(data.Origin) + ", " + _dafny.String(data.CustomKeyStoreId) + ", " + _dafny.String(data.BypassPolicyLockoutSafetyCheck) + ", " + _dafny.String(data.Tags) + ", " + _dafny.String(data.MultiRegion) + ", " + _dafny.String(data.XksKeyId) + ")" + } + default: + { + return "" + } + } +} + +func (_this CreateKeyRequest) Equals(other CreateKeyRequest) bool { + switch data1 := _this.Get_().(type) { + case CreateKeyRequest_CreateKeyRequest: + { + data2, ok := other.Get_().(CreateKeyRequest_CreateKeyRequest) + return ok && data1.Policy.Equals(data2.Policy) && data1.Description.Equals(data2.Description) && data1.KeyUsage.Equals(data2.KeyUsage) && data1.CustomerMasterKeySpec.Equals(data2.CustomerMasterKeySpec) && data1.KeySpec.Equals(data2.KeySpec) && data1.Origin.Equals(data2.Origin) && data1.CustomKeyStoreId.Equals(data2.CustomKeyStoreId) && data1.BypassPolicyLockoutSafetyCheck.Equals(data2.BypassPolicyLockoutSafetyCheck) && data1.Tags.Equals(data2.Tags) && data1.MultiRegion.Equals(data2.MultiRegion) && data1.XksKeyId.Equals(data2.XksKeyId) + } + default: + { + return false // unexpected + } + } +} + +func (_this CreateKeyRequest) EqualsGeneric(other interface{}) bool { + typed, ok := other.(CreateKeyRequest) + return ok && _this.Equals(typed) +} + +func Type_CreateKeyRequest_() _dafny.TypeDescriptor { + return type_CreateKeyRequest_{} +} + +type type_CreateKeyRequest_ struct { +} + +func (_this type_CreateKeyRequest_) Default() interface{} { + return Companion_CreateKeyRequest_.Default() +} + +func (_this type_CreateKeyRequest_) String() string { + return "ComAmazonawsKmsTypes.CreateKeyRequest" +} +func (_this CreateKeyRequest) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = CreateKeyRequest{} + +// End of datatype CreateKeyRequest + +// Definition of datatype CreateKeyResponse +type CreateKeyResponse struct { + Data_CreateKeyResponse_ +} + +func (_this CreateKeyResponse) Get_() Data_CreateKeyResponse_ { + return _this.Data_CreateKeyResponse_ +} + +type Data_CreateKeyResponse_ interface { + isCreateKeyResponse() +} + +type CompanionStruct_CreateKeyResponse_ struct { +} + +var Companion_CreateKeyResponse_ = CompanionStruct_CreateKeyResponse_{} + +type CreateKeyResponse_CreateKeyResponse struct { + KeyMetadata m_Wrappers.Option +} + +func (CreateKeyResponse_CreateKeyResponse) isCreateKeyResponse() {} + +func (CompanionStruct_CreateKeyResponse_) Create_CreateKeyResponse_(KeyMetadata m_Wrappers.Option) CreateKeyResponse { + return CreateKeyResponse{CreateKeyResponse_CreateKeyResponse{KeyMetadata}} +} + +func (_this CreateKeyResponse) Is_CreateKeyResponse() bool { + _, ok := _this.Get_().(CreateKeyResponse_CreateKeyResponse) + return ok +} + +func (CompanionStruct_CreateKeyResponse_) Default() CreateKeyResponse { + return Companion_CreateKeyResponse_.Create_CreateKeyResponse_(m_Wrappers.Companion_Option_.Default()) +} + +func (_this CreateKeyResponse) Dtor_KeyMetadata() m_Wrappers.Option { + return _this.Get_().(CreateKeyResponse_CreateKeyResponse).KeyMetadata +} + +func (_this CreateKeyResponse) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case CreateKeyResponse_CreateKeyResponse: + { + return "ComAmazonawsKmsTypes.CreateKeyResponse.CreateKeyResponse" + "(" + _dafny.String(data.KeyMetadata) + ")" + } + default: + { + return "" + } + } +} + +func (_this CreateKeyResponse) Equals(other CreateKeyResponse) bool { + switch data1 := _this.Get_().(type) { + case CreateKeyResponse_CreateKeyResponse: + { + data2, ok := other.Get_().(CreateKeyResponse_CreateKeyResponse) + return ok && data1.KeyMetadata.Equals(data2.KeyMetadata) + } + default: + { + return false // unexpected + } + } +} + +func (_this CreateKeyResponse) EqualsGeneric(other interface{}) bool { + typed, ok := other.(CreateKeyResponse) + return ok && _this.Equals(typed) +} + +func Type_CreateKeyResponse_() _dafny.TypeDescriptor { + return type_CreateKeyResponse_{} +} + +type type_CreateKeyResponse_ struct { +} + +func (_this type_CreateKeyResponse_) Default() interface{} { + return Companion_CreateKeyResponse_.Default() +} + +func (_this type_CreateKeyResponse_) String() string { + return "ComAmazonawsKmsTypes.CreateKeyResponse" +} +func (_this CreateKeyResponse) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = CreateKeyResponse{} + +// End of datatype CreateKeyResponse + +// Definition of datatype CustomerMasterKeySpec +type CustomerMasterKeySpec struct { + Data_CustomerMasterKeySpec_ +} + +func (_this CustomerMasterKeySpec) Get_() Data_CustomerMasterKeySpec_ { + return _this.Data_CustomerMasterKeySpec_ +} + +type Data_CustomerMasterKeySpec_ interface { + isCustomerMasterKeySpec() +} + +type CompanionStruct_CustomerMasterKeySpec_ struct { +} + +var Companion_CustomerMasterKeySpec_ = CompanionStruct_CustomerMasterKeySpec_{} + +type CustomerMasterKeySpec_RSA__2048 struct { +} + +func (CustomerMasterKeySpec_RSA__2048) isCustomerMasterKeySpec() {} + +func (CompanionStruct_CustomerMasterKeySpec_) Create_RSA__2048_() CustomerMasterKeySpec { + return CustomerMasterKeySpec{CustomerMasterKeySpec_RSA__2048{}} +} + +func (_this CustomerMasterKeySpec) Is_RSA__2048() bool { + _, ok := _this.Get_().(CustomerMasterKeySpec_RSA__2048) + return ok +} + +type CustomerMasterKeySpec_RSA__3072 struct { +} + +func (CustomerMasterKeySpec_RSA__3072) isCustomerMasterKeySpec() {} + +func (CompanionStruct_CustomerMasterKeySpec_) Create_RSA__3072_() CustomerMasterKeySpec { + return CustomerMasterKeySpec{CustomerMasterKeySpec_RSA__3072{}} +} + +func (_this CustomerMasterKeySpec) Is_RSA__3072() bool { + _, ok := _this.Get_().(CustomerMasterKeySpec_RSA__3072) + return ok +} + +type CustomerMasterKeySpec_RSA__4096 struct { +} + +func (CustomerMasterKeySpec_RSA__4096) isCustomerMasterKeySpec() {} + +func (CompanionStruct_CustomerMasterKeySpec_) Create_RSA__4096_() CustomerMasterKeySpec { + return CustomerMasterKeySpec{CustomerMasterKeySpec_RSA__4096{}} +} + +func (_this CustomerMasterKeySpec) Is_RSA__4096() bool { + _, ok := _this.Get_().(CustomerMasterKeySpec_RSA__4096) + return ok +} + +type CustomerMasterKeySpec_ECC__NIST__P256 struct { +} + +func (CustomerMasterKeySpec_ECC__NIST__P256) isCustomerMasterKeySpec() {} + +func (CompanionStruct_CustomerMasterKeySpec_) Create_ECC__NIST__P256_() CustomerMasterKeySpec { + return CustomerMasterKeySpec{CustomerMasterKeySpec_ECC__NIST__P256{}} +} + +func (_this CustomerMasterKeySpec) Is_ECC__NIST__P256() bool { + _, ok := _this.Get_().(CustomerMasterKeySpec_ECC__NIST__P256) + return ok +} + +type CustomerMasterKeySpec_ECC__NIST__P384 struct { +} + +func (CustomerMasterKeySpec_ECC__NIST__P384) isCustomerMasterKeySpec() {} + +func (CompanionStruct_CustomerMasterKeySpec_) Create_ECC__NIST__P384_() CustomerMasterKeySpec { + return CustomerMasterKeySpec{CustomerMasterKeySpec_ECC__NIST__P384{}} +} + +func (_this CustomerMasterKeySpec) Is_ECC__NIST__P384() bool { + _, ok := _this.Get_().(CustomerMasterKeySpec_ECC__NIST__P384) + return ok +} + +type CustomerMasterKeySpec_ECC__NIST__P521 struct { +} + +func (CustomerMasterKeySpec_ECC__NIST__P521) isCustomerMasterKeySpec() {} + +func (CompanionStruct_CustomerMasterKeySpec_) Create_ECC__NIST__P521_() CustomerMasterKeySpec { + return CustomerMasterKeySpec{CustomerMasterKeySpec_ECC__NIST__P521{}} +} + +func (_this CustomerMasterKeySpec) Is_ECC__NIST__P521() bool { + _, ok := _this.Get_().(CustomerMasterKeySpec_ECC__NIST__P521) + return ok +} + +type CustomerMasterKeySpec_ECC__SECG__P256K1 struct { +} + +func (CustomerMasterKeySpec_ECC__SECG__P256K1) isCustomerMasterKeySpec() {} + +func (CompanionStruct_CustomerMasterKeySpec_) Create_ECC__SECG__P256K1_() CustomerMasterKeySpec { + return CustomerMasterKeySpec{CustomerMasterKeySpec_ECC__SECG__P256K1{}} +} + +func (_this CustomerMasterKeySpec) Is_ECC__SECG__P256K1() bool { + _, ok := _this.Get_().(CustomerMasterKeySpec_ECC__SECG__P256K1) + return ok +} + +type CustomerMasterKeySpec_SYMMETRIC__DEFAULT struct { +} + +func (CustomerMasterKeySpec_SYMMETRIC__DEFAULT) isCustomerMasterKeySpec() {} + +func (CompanionStruct_CustomerMasterKeySpec_) Create_SYMMETRIC__DEFAULT_() CustomerMasterKeySpec { + return CustomerMasterKeySpec{CustomerMasterKeySpec_SYMMETRIC__DEFAULT{}} +} + +func (_this CustomerMasterKeySpec) Is_SYMMETRIC__DEFAULT() bool { + _, ok := _this.Get_().(CustomerMasterKeySpec_SYMMETRIC__DEFAULT) + return ok +} + +type CustomerMasterKeySpec_HMAC__224 struct { +} + +func (CustomerMasterKeySpec_HMAC__224) isCustomerMasterKeySpec() {} + +func (CompanionStruct_CustomerMasterKeySpec_) Create_HMAC__224_() CustomerMasterKeySpec { + return CustomerMasterKeySpec{CustomerMasterKeySpec_HMAC__224{}} +} + +func (_this CustomerMasterKeySpec) Is_HMAC__224() bool { + _, ok := _this.Get_().(CustomerMasterKeySpec_HMAC__224) + return ok +} + +type CustomerMasterKeySpec_HMAC__256 struct { +} + +func (CustomerMasterKeySpec_HMAC__256) isCustomerMasterKeySpec() {} + +func (CompanionStruct_CustomerMasterKeySpec_) Create_HMAC__256_() CustomerMasterKeySpec { + return CustomerMasterKeySpec{CustomerMasterKeySpec_HMAC__256{}} +} + +func (_this CustomerMasterKeySpec) Is_HMAC__256() bool { + _, ok := _this.Get_().(CustomerMasterKeySpec_HMAC__256) + return ok +} + +type CustomerMasterKeySpec_HMAC__384 struct { +} + +func (CustomerMasterKeySpec_HMAC__384) isCustomerMasterKeySpec() {} + +func (CompanionStruct_CustomerMasterKeySpec_) Create_HMAC__384_() CustomerMasterKeySpec { + return CustomerMasterKeySpec{CustomerMasterKeySpec_HMAC__384{}} +} + +func (_this CustomerMasterKeySpec) Is_HMAC__384() bool { + _, ok := _this.Get_().(CustomerMasterKeySpec_HMAC__384) + return ok +} + +type CustomerMasterKeySpec_HMAC__512 struct { +} + +func (CustomerMasterKeySpec_HMAC__512) isCustomerMasterKeySpec() {} + +func (CompanionStruct_CustomerMasterKeySpec_) Create_HMAC__512_() CustomerMasterKeySpec { + return CustomerMasterKeySpec{CustomerMasterKeySpec_HMAC__512{}} +} + +func (_this CustomerMasterKeySpec) Is_HMAC__512() bool { + _, ok := _this.Get_().(CustomerMasterKeySpec_HMAC__512) + return ok +} + +type CustomerMasterKeySpec_SM2 struct { +} + +func (CustomerMasterKeySpec_SM2) isCustomerMasterKeySpec() {} + +func (CompanionStruct_CustomerMasterKeySpec_) Create_SM2_() CustomerMasterKeySpec { + return CustomerMasterKeySpec{CustomerMasterKeySpec_SM2{}} +} + +func (_this CustomerMasterKeySpec) Is_SM2() bool { + _, ok := _this.Get_().(CustomerMasterKeySpec_SM2) + return ok +} + +func (CompanionStruct_CustomerMasterKeySpec_) Default() CustomerMasterKeySpec { + return Companion_CustomerMasterKeySpec_.Create_RSA__2048_() +} + +func (_ CompanionStruct_CustomerMasterKeySpec_) AllSingletonConstructors() _dafny.Iterator { + i := -1 + return func() (interface{}, bool) { + i++ + switch i { + case 0: + return Companion_CustomerMasterKeySpec_.Create_RSA__2048_(), true + case 1: + return Companion_CustomerMasterKeySpec_.Create_RSA__3072_(), true + case 2: + return Companion_CustomerMasterKeySpec_.Create_RSA__4096_(), true + case 3: + return Companion_CustomerMasterKeySpec_.Create_ECC__NIST__P256_(), true + case 4: + return Companion_CustomerMasterKeySpec_.Create_ECC__NIST__P384_(), true + case 5: + return Companion_CustomerMasterKeySpec_.Create_ECC__NIST__P521_(), true + case 6: + return Companion_CustomerMasterKeySpec_.Create_ECC__SECG__P256K1_(), true + case 7: + return Companion_CustomerMasterKeySpec_.Create_SYMMETRIC__DEFAULT_(), true + case 8: + return Companion_CustomerMasterKeySpec_.Create_HMAC__224_(), true + case 9: + return Companion_CustomerMasterKeySpec_.Create_HMAC__256_(), true + case 10: + return Companion_CustomerMasterKeySpec_.Create_HMAC__384_(), true + case 11: + return Companion_CustomerMasterKeySpec_.Create_HMAC__512_(), true + case 12: + return Companion_CustomerMasterKeySpec_.Create_SM2_(), true + default: + return CustomerMasterKeySpec{}, false + } + } +} + +func (_this CustomerMasterKeySpec) String() string { + switch _this.Get_().(type) { + case nil: + return "null" + case CustomerMasterKeySpec_RSA__2048: + { + return "ComAmazonawsKmsTypes.CustomerMasterKeySpec.RSA_2048" + } + case CustomerMasterKeySpec_RSA__3072: + { + return "ComAmazonawsKmsTypes.CustomerMasterKeySpec.RSA_3072" + } + case CustomerMasterKeySpec_RSA__4096: + { + return "ComAmazonawsKmsTypes.CustomerMasterKeySpec.RSA_4096" + } + case CustomerMasterKeySpec_ECC__NIST__P256: + { + return "ComAmazonawsKmsTypes.CustomerMasterKeySpec.ECC_NIST_P256" + } + case CustomerMasterKeySpec_ECC__NIST__P384: + { + return "ComAmazonawsKmsTypes.CustomerMasterKeySpec.ECC_NIST_P384" + } + case CustomerMasterKeySpec_ECC__NIST__P521: + { + return "ComAmazonawsKmsTypes.CustomerMasterKeySpec.ECC_NIST_P521" + } + case CustomerMasterKeySpec_ECC__SECG__P256K1: + { + return "ComAmazonawsKmsTypes.CustomerMasterKeySpec.ECC_SECG_P256K1" + } + case CustomerMasterKeySpec_SYMMETRIC__DEFAULT: + { + return "ComAmazonawsKmsTypes.CustomerMasterKeySpec.SYMMETRIC_DEFAULT" + } + case CustomerMasterKeySpec_HMAC__224: + { + return "ComAmazonawsKmsTypes.CustomerMasterKeySpec.HMAC_224" + } + case CustomerMasterKeySpec_HMAC__256: + { + return "ComAmazonawsKmsTypes.CustomerMasterKeySpec.HMAC_256" + } + case CustomerMasterKeySpec_HMAC__384: + { + return "ComAmazonawsKmsTypes.CustomerMasterKeySpec.HMAC_384" + } + case CustomerMasterKeySpec_HMAC__512: + { + return "ComAmazonawsKmsTypes.CustomerMasterKeySpec.HMAC_512" + } + case CustomerMasterKeySpec_SM2: + { + return "ComAmazonawsKmsTypes.CustomerMasterKeySpec.SM2" + } + default: + { + return "" + } + } +} + +func (_this CustomerMasterKeySpec) Equals(other CustomerMasterKeySpec) bool { + switch _this.Get_().(type) { + case CustomerMasterKeySpec_RSA__2048: + { + _, ok := other.Get_().(CustomerMasterKeySpec_RSA__2048) + return ok + } + case CustomerMasterKeySpec_RSA__3072: + { + _, ok := other.Get_().(CustomerMasterKeySpec_RSA__3072) + return ok + } + case CustomerMasterKeySpec_RSA__4096: + { + _, ok := other.Get_().(CustomerMasterKeySpec_RSA__4096) + return ok + } + case CustomerMasterKeySpec_ECC__NIST__P256: + { + _, ok := other.Get_().(CustomerMasterKeySpec_ECC__NIST__P256) + return ok + } + case CustomerMasterKeySpec_ECC__NIST__P384: + { + _, ok := other.Get_().(CustomerMasterKeySpec_ECC__NIST__P384) + return ok + } + case CustomerMasterKeySpec_ECC__NIST__P521: + { + _, ok := other.Get_().(CustomerMasterKeySpec_ECC__NIST__P521) + return ok + } + case CustomerMasterKeySpec_ECC__SECG__P256K1: + { + _, ok := other.Get_().(CustomerMasterKeySpec_ECC__SECG__P256K1) + return ok + } + case CustomerMasterKeySpec_SYMMETRIC__DEFAULT: + { + _, ok := other.Get_().(CustomerMasterKeySpec_SYMMETRIC__DEFAULT) + return ok + } + case CustomerMasterKeySpec_HMAC__224: + { + _, ok := other.Get_().(CustomerMasterKeySpec_HMAC__224) + return ok + } + case CustomerMasterKeySpec_HMAC__256: + { + _, ok := other.Get_().(CustomerMasterKeySpec_HMAC__256) + return ok + } + case CustomerMasterKeySpec_HMAC__384: + { + _, ok := other.Get_().(CustomerMasterKeySpec_HMAC__384) + return ok + } + case CustomerMasterKeySpec_HMAC__512: + { + _, ok := other.Get_().(CustomerMasterKeySpec_HMAC__512) + return ok + } + case CustomerMasterKeySpec_SM2: + { + _, ok := other.Get_().(CustomerMasterKeySpec_SM2) + return ok + } + default: + { + return false // unexpected + } + } +} + +func (_this CustomerMasterKeySpec) EqualsGeneric(other interface{}) bool { + typed, ok := other.(CustomerMasterKeySpec) + return ok && _this.Equals(typed) +} + +func Type_CustomerMasterKeySpec_() _dafny.TypeDescriptor { + return type_CustomerMasterKeySpec_{} +} + +type type_CustomerMasterKeySpec_ struct { +} + +func (_this type_CustomerMasterKeySpec_) Default() interface{} { + return Companion_CustomerMasterKeySpec_.Default() +} + +func (_this type_CustomerMasterKeySpec_) String() string { + return "ComAmazonawsKmsTypes.CustomerMasterKeySpec" +} +func (_this CustomerMasterKeySpec) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = CustomerMasterKeySpec{} + +// End of datatype CustomerMasterKeySpec + +// Definition of class CustomKeyStoreIdType +type CustomKeyStoreIdType struct { +} + +func New_CustomKeyStoreIdType_() *CustomKeyStoreIdType { + _this := CustomKeyStoreIdType{} + + return &_this +} + +type CompanionStruct_CustomKeyStoreIdType_ struct { +} + +var Companion_CustomKeyStoreIdType_ = CompanionStruct_CustomKeyStoreIdType_{} + +func (*CustomKeyStoreIdType) String() string { + return "ComAmazonawsKmsTypes.CustomKeyStoreIdType" +} + +// End of class CustomKeyStoreIdType + +func Type_CustomKeyStoreIdType_() _dafny.TypeDescriptor { + return type_CustomKeyStoreIdType_{} +} + +type type_CustomKeyStoreIdType_ struct { +} + +func (_this type_CustomKeyStoreIdType_) Default() interface{} { + return _dafny.EmptySeq.SetString() +} + +func (_this type_CustomKeyStoreIdType_) String() string { + return "ComAmazonawsKmsTypes.CustomKeyStoreIdType" +} +func (_this *CompanionStruct_CustomKeyStoreIdType_) Is_(__source _dafny.Sequence) bool { + var _5_x _dafny.Sequence = (__source) + _ = _5_x + return Companion_Default___.IsValid__CustomKeyStoreIdType(_5_x) +} + +// Definition of class CustomKeyStoreNameType +type CustomKeyStoreNameType struct { +} + +func New_CustomKeyStoreNameType_() *CustomKeyStoreNameType { + _this := CustomKeyStoreNameType{} + + return &_this +} + +type CompanionStruct_CustomKeyStoreNameType_ struct { +} + +var Companion_CustomKeyStoreNameType_ = CompanionStruct_CustomKeyStoreNameType_{} + +func (*CustomKeyStoreNameType) String() string { + return "ComAmazonawsKmsTypes.CustomKeyStoreNameType" +} + +// End of class CustomKeyStoreNameType + +func Type_CustomKeyStoreNameType_() _dafny.TypeDescriptor { + return type_CustomKeyStoreNameType_{} +} + +type type_CustomKeyStoreNameType_ struct { +} + +func (_this type_CustomKeyStoreNameType_) Default() interface{} { + return _dafny.EmptySeq.SetString() +} + +func (_this type_CustomKeyStoreNameType_) String() string { + return "ComAmazonawsKmsTypes.CustomKeyStoreNameType" +} +func (_this *CompanionStruct_CustomKeyStoreNameType_) Is_(__source _dafny.Sequence) bool { + var _6_x _dafny.Sequence = (__source) + _ = _6_x + return Companion_Default___.IsValid__CustomKeyStoreNameType(_6_x) +} + +// Definition of datatype CustomKeyStoresListEntry +type CustomKeyStoresListEntry struct { + Data_CustomKeyStoresListEntry_ +} + +func (_this CustomKeyStoresListEntry) Get_() Data_CustomKeyStoresListEntry_ { + return _this.Data_CustomKeyStoresListEntry_ +} + +type Data_CustomKeyStoresListEntry_ interface { + isCustomKeyStoresListEntry() +} + +type CompanionStruct_CustomKeyStoresListEntry_ struct { +} + +var Companion_CustomKeyStoresListEntry_ = CompanionStruct_CustomKeyStoresListEntry_{} + +type CustomKeyStoresListEntry_CustomKeyStoresListEntry struct { + CustomKeyStoreId m_Wrappers.Option + CustomKeyStoreName m_Wrappers.Option + CloudHsmClusterId m_Wrappers.Option + TrustAnchorCertificate m_Wrappers.Option + ConnectionState m_Wrappers.Option + ConnectionErrorCode m_Wrappers.Option + CreationDate m_Wrappers.Option + CustomKeyStoreType m_Wrappers.Option + XksProxyConfiguration m_Wrappers.Option +} + +func (CustomKeyStoresListEntry_CustomKeyStoresListEntry) isCustomKeyStoresListEntry() {} + +func (CompanionStruct_CustomKeyStoresListEntry_) Create_CustomKeyStoresListEntry_(CustomKeyStoreId m_Wrappers.Option, CustomKeyStoreName m_Wrappers.Option, CloudHsmClusterId m_Wrappers.Option, TrustAnchorCertificate m_Wrappers.Option, ConnectionState m_Wrappers.Option, ConnectionErrorCode m_Wrappers.Option, CreationDate m_Wrappers.Option, CustomKeyStoreType m_Wrappers.Option, XksProxyConfiguration m_Wrappers.Option) CustomKeyStoresListEntry { + return CustomKeyStoresListEntry{CustomKeyStoresListEntry_CustomKeyStoresListEntry{CustomKeyStoreId, CustomKeyStoreName, CloudHsmClusterId, TrustAnchorCertificate, ConnectionState, ConnectionErrorCode, CreationDate, CustomKeyStoreType, XksProxyConfiguration}} +} + +func (_this CustomKeyStoresListEntry) Is_CustomKeyStoresListEntry() bool { + _, ok := _this.Get_().(CustomKeyStoresListEntry_CustomKeyStoresListEntry) + return ok +} + +func (CompanionStruct_CustomKeyStoresListEntry_) Default() CustomKeyStoresListEntry { + return Companion_CustomKeyStoresListEntry_.Create_CustomKeyStoresListEntry_(m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this CustomKeyStoresListEntry) Dtor_CustomKeyStoreId() m_Wrappers.Option { + return _this.Get_().(CustomKeyStoresListEntry_CustomKeyStoresListEntry).CustomKeyStoreId +} + +func (_this CustomKeyStoresListEntry) Dtor_CustomKeyStoreName() m_Wrappers.Option { + return _this.Get_().(CustomKeyStoresListEntry_CustomKeyStoresListEntry).CustomKeyStoreName +} + +func (_this CustomKeyStoresListEntry) Dtor_CloudHsmClusterId() m_Wrappers.Option { + return _this.Get_().(CustomKeyStoresListEntry_CustomKeyStoresListEntry).CloudHsmClusterId +} + +func (_this CustomKeyStoresListEntry) Dtor_TrustAnchorCertificate() m_Wrappers.Option { + return _this.Get_().(CustomKeyStoresListEntry_CustomKeyStoresListEntry).TrustAnchorCertificate +} + +func (_this CustomKeyStoresListEntry) Dtor_ConnectionState() m_Wrappers.Option { + return _this.Get_().(CustomKeyStoresListEntry_CustomKeyStoresListEntry).ConnectionState +} + +func (_this CustomKeyStoresListEntry) Dtor_ConnectionErrorCode() m_Wrappers.Option { + return _this.Get_().(CustomKeyStoresListEntry_CustomKeyStoresListEntry).ConnectionErrorCode +} + +func (_this CustomKeyStoresListEntry) Dtor_CreationDate() m_Wrappers.Option { + return _this.Get_().(CustomKeyStoresListEntry_CustomKeyStoresListEntry).CreationDate +} + +func (_this CustomKeyStoresListEntry) Dtor_CustomKeyStoreType() m_Wrappers.Option { + return _this.Get_().(CustomKeyStoresListEntry_CustomKeyStoresListEntry).CustomKeyStoreType +} + +func (_this CustomKeyStoresListEntry) Dtor_XksProxyConfiguration() m_Wrappers.Option { + return _this.Get_().(CustomKeyStoresListEntry_CustomKeyStoresListEntry).XksProxyConfiguration +} + +func (_this CustomKeyStoresListEntry) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case CustomKeyStoresListEntry_CustomKeyStoresListEntry: + { + return "ComAmazonawsKmsTypes.CustomKeyStoresListEntry.CustomKeyStoresListEntry" + "(" + _dafny.String(data.CustomKeyStoreId) + ", " + _dafny.String(data.CustomKeyStoreName) + ", " + _dafny.String(data.CloudHsmClusterId) + ", " + _dafny.String(data.TrustAnchorCertificate) + ", " + _dafny.String(data.ConnectionState) + ", " + _dafny.String(data.ConnectionErrorCode) + ", " + _dafny.String(data.CreationDate) + ", " + _dafny.String(data.CustomKeyStoreType) + ", " + _dafny.String(data.XksProxyConfiguration) + ")" + } + default: + { + return "" + } + } +} + +func (_this CustomKeyStoresListEntry) Equals(other CustomKeyStoresListEntry) bool { + switch data1 := _this.Get_().(type) { + case CustomKeyStoresListEntry_CustomKeyStoresListEntry: + { + data2, ok := other.Get_().(CustomKeyStoresListEntry_CustomKeyStoresListEntry) + return ok && data1.CustomKeyStoreId.Equals(data2.CustomKeyStoreId) && data1.CustomKeyStoreName.Equals(data2.CustomKeyStoreName) && data1.CloudHsmClusterId.Equals(data2.CloudHsmClusterId) && data1.TrustAnchorCertificate.Equals(data2.TrustAnchorCertificate) && data1.ConnectionState.Equals(data2.ConnectionState) && data1.ConnectionErrorCode.Equals(data2.ConnectionErrorCode) && data1.CreationDate.Equals(data2.CreationDate) && data1.CustomKeyStoreType.Equals(data2.CustomKeyStoreType) && data1.XksProxyConfiguration.Equals(data2.XksProxyConfiguration) + } + default: + { + return false // unexpected + } + } +} + +func (_this CustomKeyStoresListEntry) EqualsGeneric(other interface{}) bool { + typed, ok := other.(CustomKeyStoresListEntry) + return ok && _this.Equals(typed) +} + +func Type_CustomKeyStoresListEntry_() _dafny.TypeDescriptor { + return type_CustomKeyStoresListEntry_{} +} + +type type_CustomKeyStoresListEntry_ struct { +} + +func (_this type_CustomKeyStoresListEntry_) Default() interface{} { + return Companion_CustomKeyStoresListEntry_.Default() +} + +func (_this type_CustomKeyStoresListEntry_) String() string { + return "ComAmazonawsKmsTypes.CustomKeyStoresListEntry" +} +func (_this CustomKeyStoresListEntry) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = CustomKeyStoresListEntry{} + +// End of datatype CustomKeyStoresListEntry + +// Definition of datatype CustomKeyStoreType +type CustomKeyStoreType struct { + Data_CustomKeyStoreType_ +} + +func (_this CustomKeyStoreType) Get_() Data_CustomKeyStoreType_ { + return _this.Data_CustomKeyStoreType_ +} + +type Data_CustomKeyStoreType_ interface { + isCustomKeyStoreType() +} + +type CompanionStruct_CustomKeyStoreType_ struct { +} + +var Companion_CustomKeyStoreType_ = CompanionStruct_CustomKeyStoreType_{} + +type CustomKeyStoreType_AWS__CLOUDHSM struct { +} + +func (CustomKeyStoreType_AWS__CLOUDHSM) isCustomKeyStoreType() {} + +func (CompanionStruct_CustomKeyStoreType_) Create_AWS__CLOUDHSM_() CustomKeyStoreType { + return CustomKeyStoreType{CustomKeyStoreType_AWS__CLOUDHSM{}} +} + +func (_this CustomKeyStoreType) Is_AWS__CLOUDHSM() bool { + _, ok := _this.Get_().(CustomKeyStoreType_AWS__CLOUDHSM) + return ok +} + +type CustomKeyStoreType_EXTERNAL__KEY__STORE struct { +} + +func (CustomKeyStoreType_EXTERNAL__KEY__STORE) isCustomKeyStoreType() {} + +func (CompanionStruct_CustomKeyStoreType_) Create_EXTERNAL__KEY__STORE_() CustomKeyStoreType { + return CustomKeyStoreType{CustomKeyStoreType_EXTERNAL__KEY__STORE{}} +} + +func (_this CustomKeyStoreType) Is_EXTERNAL__KEY__STORE() bool { + _, ok := _this.Get_().(CustomKeyStoreType_EXTERNAL__KEY__STORE) + return ok +} + +func (CompanionStruct_CustomKeyStoreType_) Default() CustomKeyStoreType { + return Companion_CustomKeyStoreType_.Create_AWS__CLOUDHSM_() +} + +func (_ CompanionStruct_CustomKeyStoreType_) AllSingletonConstructors() _dafny.Iterator { + i := -1 + return func() (interface{}, bool) { + i++ + switch i { + case 0: + return Companion_CustomKeyStoreType_.Create_AWS__CLOUDHSM_(), true + case 1: + return Companion_CustomKeyStoreType_.Create_EXTERNAL__KEY__STORE_(), true + default: + return CustomKeyStoreType{}, false + } + } +} + +func (_this CustomKeyStoreType) String() string { + switch _this.Get_().(type) { + case nil: + return "null" + case CustomKeyStoreType_AWS__CLOUDHSM: + { + return "ComAmazonawsKmsTypes.CustomKeyStoreType.AWS_CLOUDHSM" + } + case CustomKeyStoreType_EXTERNAL__KEY__STORE: + { + return "ComAmazonawsKmsTypes.CustomKeyStoreType.EXTERNAL_KEY_STORE" + } + default: + { + return "" + } + } +} + +func (_this CustomKeyStoreType) Equals(other CustomKeyStoreType) bool { + switch _this.Get_().(type) { + case CustomKeyStoreType_AWS__CLOUDHSM: + { + _, ok := other.Get_().(CustomKeyStoreType_AWS__CLOUDHSM) + return ok + } + case CustomKeyStoreType_EXTERNAL__KEY__STORE: + { + _, ok := other.Get_().(CustomKeyStoreType_EXTERNAL__KEY__STORE) + return ok + } + default: + { + return false // unexpected + } + } +} + +func (_this CustomKeyStoreType) EqualsGeneric(other interface{}) bool { + typed, ok := other.(CustomKeyStoreType) + return ok && _this.Equals(typed) +} + +func Type_CustomKeyStoreType_() _dafny.TypeDescriptor { + return type_CustomKeyStoreType_{} +} + +type type_CustomKeyStoreType_ struct { +} + +func (_this type_CustomKeyStoreType_) Default() interface{} { + return Companion_CustomKeyStoreType_.Default() +} + +func (_this type_CustomKeyStoreType_) String() string { + return "ComAmazonawsKmsTypes.CustomKeyStoreType" +} +func (_this CustomKeyStoreType) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = CustomKeyStoreType{} + +// End of datatype CustomKeyStoreType + +// Definition of datatype DataKeyPairSpec +type DataKeyPairSpec struct { + Data_DataKeyPairSpec_ +} + +func (_this DataKeyPairSpec) Get_() Data_DataKeyPairSpec_ { + return _this.Data_DataKeyPairSpec_ +} + +type Data_DataKeyPairSpec_ interface { + isDataKeyPairSpec() +} + +type CompanionStruct_DataKeyPairSpec_ struct { +} + +var Companion_DataKeyPairSpec_ = CompanionStruct_DataKeyPairSpec_{} + +type DataKeyPairSpec_RSA__2048 struct { +} + +func (DataKeyPairSpec_RSA__2048) isDataKeyPairSpec() {} + +func (CompanionStruct_DataKeyPairSpec_) Create_RSA__2048_() DataKeyPairSpec { + return DataKeyPairSpec{DataKeyPairSpec_RSA__2048{}} +} + +func (_this DataKeyPairSpec) Is_RSA__2048() bool { + _, ok := _this.Get_().(DataKeyPairSpec_RSA__2048) + return ok +} + +type DataKeyPairSpec_RSA__3072 struct { +} + +func (DataKeyPairSpec_RSA__3072) isDataKeyPairSpec() {} + +func (CompanionStruct_DataKeyPairSpec_) Create_RSA__3072_() DataKeyPairSpec { + return DataKeyPairSpec{DataKeyPairSpec_RSA__3072{}} +} + +func (_this DataKeyPairSpec) Is_RSA__3072() bool { + _, ok := _this.Get_().(DataKeyPairSpec_RSA__3072) + return ok +} + +type DataKeyPairSpec_RSA__4096 struct { +} + +func (DataKeyPairSpec_RSA__4096) isDataKeyPairSpec() {} + +func (CompanionStruct_DataKeyPairSpec_) Create_RSA__4096_() DataKeyPairSpec { + return DataKeyPairSpec{DataKeyPairSpec_RSA__4096{}} +} + +func (_this DataKeyPairSpec) Is_RSA__4096() bool { + _, ok := _this.Get_().(DataKeyPairSpec_RSA__4096) + return ok +} + +type DataKeyPairSpec_ECC__NIST__P256 struct { +} + +func (DataKeyPairSpec_ECC__NIST__P256) isDataKeyPairSpec() {} + +func (CompanionStruct_DataKeyPairSpec_) Create_ECC__NIST__P256_() DataKeyPairSpec { + return DataKeyPairSpec{DataKeyPairSpec_ECC__NIST__P256{}} +} + +func (_this DataKeyPairSpec) Is_ECC__NIST__P256() bool { + _, ok := _this.Get_().(DataKeyPairSpec_ECC__NIST__P256) + return ok +} + +type DataKeyPairSpec_ECC__NIST__P384 struct { +} + +func (DataKeyPairSpec_ECC__NIST__P384) isDataKeyPairSpec() {} + +func (CompanionStruct_DataKeyPairSpec_) Create_ECC__NIST__P384_() DataKeyPairSpec { + return DataKeyPairSpec{DataKeyPairSpec_ECC__NIST__P384{}} +} + +func (_this DataKeyPairSpec) Is_ECC__NIST__P384() bool { + _, ok := _this.Get_().(DataKeyPairSpec_ECC__NIST__P384) + return ok +} + +type DataKeyPairSpec_ECC__NIST__P521 struct { +} + +func (DataKeyPairSpec_ECC__NIST__P521) isDataKeyPairSpec() {} + +func (CompanionStruct_DataKeyPairSpec_) Create_ECC__NIST__P521_() DataKeyPairSpec { + return DataKeyPairSpec{DataKeyPairSpec_ECC__NIST__P521{}} +} + +func (_this DataKeyPairSpec) Is_ECC__NIST__P521() bool { + _, ok := _this.Get_().(DataKeyPairSpec_ECC__NIST__P521) + return ok +} + +type DataKeyPairSpec_ECC__SECG__P256K1 struct { +} + +func (DataKeyPairSpec_ECC__SECG__P256K1) isDataKeyPairSpec() {} + +func (CompanionStruct_DataKeyPairSpec_) Create_ECC__SECG__P256K1_() DataKeyPairSpec { + return DataKeyPairSpec{DataKeyPairSpec_ECC__SECG__P256K1{}} +} + +func (_this DataKeyPairSpec) Is_ECC__SECG__P256K1() bool { + _, ok := _this.Get_().(DataKeyPairSpec_ECC__SECG__P256K1) + return ok +} + +type DataKeyPairSpec_SM2 struct { +} + +func (DataKeyPairSpec_SM2) isDataKeyPairSpec() {} + +func (CompanionStruct_DataKeyPairSpec_) Create_SM2_() DataKeyPairSpec { + return DataKeyPairSpec{DataKeyPairSpec_SM2{}} +} + +func (_this DataKeyPairSpec) Is_SM2() bool { + _, ok := _this.Get_().(DataKeyPairSpec_SM2) + return ok +} + +func (CompanionStruct_DataKeyPairSpec_) Default() DataKeyPairSpec { + return Companion_DataKeyPairSpec_.Create_RSA__2048_() +} + +func (_ CompanionStruct_DataKeyPairSpec_) AllSingletonConstructors() _dafny.Iterator { + i := -1 + return func() (interface{}, bool) { + i++ + switch i { + case 0: + return Companion_DataKeyPairSpec_.Create_RSA__2048_(), true + case 1: + return Companion_DataKeyPairSpec_.Create_RSA__3072_(), true + case 2: + return Companion_DataKeyPairSpec_.Create_RSA__4096_(), true + case 3: + return Companion_DataKeyPairSpec_.Create_ECC__NIST__P256_(), true + case 4: + return Companion_DataKeyPairSpec_.Create_ECC__NIST__P384_(), true + case 5: + return Companion_DataKeyPairSpec_.Create_ECC__NIST__P521_(), true + case 6: + return Companion_DataKeyPairSpec_.Create_ECC__SECG__P256K1_(), true + case 7: + return Companion_DataKeyPairSpec_.Create_SM2_(), true + default: + return DataKeyPairSpec{}, false + } + } +} + +func (_this DataKeyPairSpec) String() string { + switch _this.Get_().(type) { + case nil: + return "null" + case DataKeyPairSpec_RSA__2048: + { + return "ComAmazonawsKmsTypes.DataKeyPairSpec.RSA_2048" + } + case DataKeyPairSpec_RSA__3072: + { + return "ComAmazonawsKmsTypes.DataKeyPairSpec.RSA_3072" + } + case DataKeyPairSpec_RSA__4096: + { + return "ComAmazonawsKmsTypes.DataKeyPairSpec.RSA_4096" + } + case DataKeyPairSpec_ECC__NIST__P256: + { + return "ComAmazonawsKmsTypes.DataKeyPairSpec.ECC_NIST_P256" + } + case DataKeyPairSpec_ECC__NIST__P384: + { + return "ComAmazonawsKmsTypes.DataKeyPairSpec.ECC_NIST_P384" + } + case DataKeyPairSpec_ECC__NIST__P521: + { + return "ComAmazonawsKmsTypes.DataKeyPairSpec.ECC_NIST_P521" + } + case DataKeyPairSpec_ECC__SECG__P256K1: + { + return "ComAmazonawsKmsTypes.DataKeyPairSpec.ECC_SECG_P256K1" + } + case DataKeyPairSpec_SM2: + { + return "ComAmazonawsKmsTypes.DataKeyPairSpec.SM2" + } + default: + { + return "" + } + } +} + +func (_this DataKeyPairSpec) Equals(other DataKeyPairSpec) bool { + switch _this.Get_().(type) { + case DataKeyPairSpec_RSA__2048: + { + _, ok := other.Get_().(DataKeyPairSpec_RSA__2048) + return ok + } + case DataKeyPairSpec_RSA__3072: + { + _, ok := other.Get_().(DataKeyPairSpec_RSA__3072) + return ok + } + case DataKeyPairSpec_RSA__4096: + { + _, ok := other.Get_().(DataKeyPairSpec_RSA__4096) + return ok + } + case DataKeyPairSpec_ECC__NIST__P256: + { + _, ok := other.Get_().(DataKeyPairSpec_ECC__NIST__P256) + return ok + } + case DataKeyPairSpec_ECC__NIST__P384: + { + _, ok := other.Get_().(DataKeyPairSpec_ECC__NIST__P384) + return ok + } + case DataKeyPairSpec_ECC__NIST__P521: + { + _, ok := other.Get_().(DataKeyPairSpec_ECC__NIST__P521) + return ok + } + case DataKeyPairSpec_ECC__SECG__P256K1: + { + _, ok := other.Get_().(DataKeyPairSpec_ECC__SECG__P256K1) + return ok + } + case DataKeyPairSpec_SM2: + { + _, ok := other.Get_().(DataKeyPairSpec_SM2) + return ok + } + default: + { + return false // unexpected + } + } +} + +func (_this DataKeyPairSpec) EqualsGeneric(other interface{}) bool { + typed, ok := other.(DataKeyPairSpec) + return ok && _this.Equals(typed) +} + +func Type_DataKeyPairSpec_() _dafny.TypeDescriptor { + return type_DataKeyPairSpec_{} +} + +type type_DataKeyPairSpec_ struct { +} + +func (_this type_DataKeyPairSpec_) Default() interface{} { + return Companion_DataKeyPairSpec_.Default() +} + +func (_this type_DataKeyPairSpec_) String() string { + return "ComAmazonawsKmsTypes.DataKeyPairSpec" +} +func (_this DataKeyPairSpec) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = DataKeyPairSpec{} + +// End of datatype DataKeyPairSpec + +// Definition of datatype DataKeySpec +type DataKeySpec struct { + Data_DataKeySpec_ +} + +func (_this DataKeySpec) Get_() Data_DataKeySpec_ { + return _this.Data_DataKeySpec_ +} + +type Data_DataKeySpec_ interface { + isDataKeySpec() +} + +type CompanionStruct_DataKeySpec_ struct { +} + +var Companion_DataKeySpec_ = CompanionStruct_DataKeySpec_{} + +type DataKeySpec_AES__256 struct { +} + +func (DataKeySpec_AES__256) isDataKeySpec() {} + +func (CompanionStruct_DataKeySpec_) Create_AES__256_() DataKeySpec { + return DataKeySpec{DataKeySpec_AES__256{}} +} + +func (_this DataKeySpec) Is_AES__256() bool { + _, ok := _this.Get_().(DataKeySpec_AES__256) + return ok +} + +type DataKeySpec_AES__128 struct { +} + +func (DataKeySpec_AES__128) isDataKeySpec() {} + +func (CompanionStruct_DataKeySpec_) Create_AES__128_() DataKeySpec { + return DataKeySpec{DataKeySpec_AES__128{}} +} + +func (_this DataKeySpec) Is_AES__128() bool { + _, ok := _this.Get_().(DataKeySpec_AES__128) + return ok +} + +func (CompanionStruct_DataKeySpec_) Default() DataKeySpec { + return Companion_DataKeySpec_.Create_AES__256_() +} + +func (_ CompanionStruct_DataKeySpec_) AllSingletonConstructors() _dafny.Iterator { + i := -1 + return func() (interface{}, bool) { + i++ + switch i { + case 0: + return Companion_DataKeySpec_.Create_AES__256_(), true + case 1: + return Companion_DataKeySpec_.Create_AES__128_(), true + default: + return DataKeySpec{}, false + } + } +} + +func (_this DataKeySpec) String() string { + switch _this.Get_().(type) { + case nil: + return "null" + case DataKeySpec_AES__256: + { + return "ComAmazonawsKmsTypes.DataKeySpec.AES_256" + } + case DataKeySpec_AES__128: + { + return "ComAmazonawsKmsTypes.DataKeySpec.AES_128" + } + default: + { + return "" + } + } +} + +func (_this DataKeySpec) Equals(other DataKeySpec) bool { + switch _this.Get_().(type) { + case DataKeySpec_AES__256: + { + _, ok := other.Get_().(DataKeySpec_AES__256) + return ok + } + case DataKeySpec_AES__128: + { + _, ok := other.Get_().(DataKeySpec_AES__128) + return ok + } + default: + { + return false // unexpected + } + } +} + +func (_this DataKeySpec) EqualsGeneric(other interface{}) bool { + typed, ok := other.(DataKeySpec) + return ok && _this.Equals(typed) +} + +func Type_DataKeySpec_() _dafny.TypeDescriptor { + return type_DataKeySpec_{} +} + +type type_DataKeySpec_ struct { +} + +func (_this type_DataKeySpec_) Default() interface{} { + return Companion_DataKeySpec_.Default() +} + +func (_this type_DataKeySpec_) String() string { + return "ComAmazonawsKmsTypes.DataKeySpec" +} +func (_this DataKeySpec) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = DataKeySpec{} + +// End of datatype DataKeySpec + +// Definition of datatype DecryptRequest +type DecryptRequest struct { + Data_DecryptRequest_ +} + +func (_this DecryptRequest) Get_() Data_DecryptRequest_ { + return _this.Data_DecryptRequest_ +} + +type Data_DecryptRequest_ interface { + isDecryptRequest() +} + +type CompanionStruct_DecryptRequest_ struct { +} + +var Companion_DecryptRequest_ = CompanionStruct_DecryptRequest_{} + +type DecryptRequest_DecryptRequest struct { + CiphertextBlob _dafny.Sequence + EncryptionContext m_Wrappers.Option + GrantTokens m_Wrappers.Option + KeyId m_Wrappers.Option + EncryptionAlgorithm m_Wrappers.Option + Recipient m_Wrappers.Option + DryRun m_Wrappers.Option +} + +func (DecryptRequest_DecryptRequest) isDecryptRequest() {} + +func (CompanionStruct_DecryptRequest_) Create_DecryptRequest_(CiphertextBlob _dafny.Sequence, EncryptionContext m_Wrappers.Option, GrantTokens m_Wrappers.Option, KeyId m_Wrappers.Option, EncryptionAlgorithm m_Wrappers.Option, Recipient m_Wrappers.Option, DryRun m_Wrappers.Option) DecryptRequest { + return DecryptRequest{DecryptRequest_DecryptRequest{CiphertextBlob, EncryptionContext, GrantTokens, KeyId, EncryptionAlgorithm, Recipient, DryRun}} +} + +func (_this DecryptRequest) Is_DecryptRequest() bool { + _, ok := _this.Get_().(DecryptRequest_DecryptRequest) + return ok +} + +func (CompanionStruct_DecryptRequest_) Default() DecryptRequest { + return Companion_DecryptRequest_.Create_DecryptRequest_(_dafny.EmptySeq, m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this DecryptRequest) Dtor_CiphertextBlob() _dafny.Sequence { + return _this.Get_().(DecryptRequest_DecryptRequest).CiphertextBlob +} + +func (_this DecryptRequest) Dtor_EncryptionContext() m_Wrappers.Option { + return _this.Get_().(DecryptRequest_DecryptRequest).EncryptionContext +} + +func (_this DecryptRequest) Dtor_GrantTokens() m_Wrappers.Option { + return _this.Get_().(DecryptRequest_DecryptRequest).GrantTokens +} + +func (_this DecryptRequest) Dtor_KeyId() m_Wrappers.Option { + return _this.Get_().(DecryptRequest_DecryptRequest).KeyId +} + +func (_this DecryptRequest) Dtor_EncryptionAlgorithm() m_Wrappers.Option { + return _this.Get_().(DecryptRequest_DecryptRequest).EncryptionAlgorithm +} + +func (_this DecryptRequest) Dtor_Recipient() m_Wrappers.Option { + return _this.Get_().(DecryptRequest_DecryptRequest).Recipient +} + +func (_this DecryptRequest) Dtor_DryRun() m_Wrappers.Option { + return _this.Get_().(DecryptRequest_DecryptRequest).DryRun +} + +func (_this DecryptRequest) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case DecryptRequest_DecryptRequest: + { + return "ComAmazonawsKmsTypes.DecryptRequest.DecryptRequest" + "(" + _dafny.String(data.CiphertextBlob) + ", " + _dafny.String(data.EncryptionContext) + ", " + _dafny.String(data.GrantTokens) + ", " + _dafny.String(data.KeyId) + ", " + _dafny.String(data.EncryptionAlgorithm) + ", " + _dafny.String(data.Recipient) + ", " + _dafny.String(data.DryRun) + ")" + } + default: + { + return "" + } + } +} + +func (_this DecryptRequest) Equals(other DecryptRequest) bool { + switch data1 := _this.Get_().(type) { + case DecryptRequest_DecryptRequest: + { + data2, ok := other.Get_().(DecryptRequest_DecryptRequest) + return ok && data1.CiphertextBlob.Equals(data2.CiphertextBlob) && data1.EncryptionContext.Equals(data2.EncryptionContext) && data1.GrantTokens.Equals(data2.GrantTokens) && data1.KeyId.Equals(data2.KeyId) && data1.EncryptionAlgorithm.Equals(data2.EncryptionAlgorithm) && data1.Recipient.Equals(data2.Recipient) && data1.DryRun.Equals(data2.DryRun) + } + default: + { + return false // unexpected + } + } +} + +func (_this DecryptRequest) EqualsGeneric(other interface{}) bool { + typed, ok := other.(DecryptRequest) + return ok && _this.Equals(typed) +} + +func Type_DecryptRequest_() _dafny.TypeDescriptor { + return type_DecryptRequest_{} +} + +type type_DecryptRequest_ struct { +} + +func (_this type_DecryptRequest_) Default() interface{} { + return Companion_DecryptRequest_.Default() +} + +func (_this type_DecryptRequest_) String() string { + return "ComAmazonawsKmsTypes.DecryptRequest" +} +func (_this DecryptRequest) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = DecryptRequest{} + +// End of datatype DecryptRequest + +// Definition of datatype DecryptResponse +type DecryptResponse struct { + Data_DecryptResponse_ +} + +func (_this DecryptResponse) Get_() Data_DecryptResponse_ { + return _this.Data_DecryptResponse_ +} + +type Data_DecryptResponse_ interface { + isDecryptResponse() +} + +type CompanionStruct_DecryptResponse_ struct { +} + +var Companion_DecryptResponse_ = CompanionStruct_DecryptResponse_{} + +type DecryptResponse_DecryptResponse struct { + KeyId m_Wrappers.Option + Plaintext m_Wrappers.Option + EncryptionAlgorithm m_Wrappers.Option + CiphertextForRecipient m_Wrappers.Option +} + +func (DecryptResponse_DecryptResponse) isDecryptResponse() {} + +func (CompanionStruct_DecryptResponse_) Create_DecryptResponse_(KeyId m_Wrappers.Option, Plaintext m_Wrappers.Option, EncryptionAlgorithm m_Wrappers.Option, CiphertextForRecipient m_Wrappers.Option) DecryptResponse { + return DecryptResponse{DecryptResponse_DecryptResponse{KeyId, Plaintext, EncryptionAlgorithm, CiphertextForRecipient}} +} + +func (_this DecryptResponse) Is_DecryptResponse() bool { + _, ok := _this.Get_().(DecryptResponse_DecryptResponse) + return ok +} + +func (CompanionStruct_DecryptResponse_) Default() DecryptResponse { + return Companion_DecryptResponse_.Create_DecryptResponse_(m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this DecryptResponse) Dtor_KeyId() m_Wrappers.Option { + return _this.Get_().(DecryptResponse_DecryptResponse).KeyId +} + +func (_this DecryptResponse) Dtor_Plaintext() m_Wrappers.Option { + return _this.Get_().(DecryptResponse_DecryptResponse).Plaintext +} + +func (_this DecryptResponse) Dtor_EncryptionAlgorithm() m_Wrappers.Option { + return _this.Get_().(DecryptResponse_DecryptResponse).EncryptionAlgorithm +} + +func (_this DecryptResponse) Dtor_CiphertextForRecipient() m_Wrappers.Option { + return _this.Get_().(DecryptResponse_DecryptResponse).CiphertextForRecipient +} + +func (_this DecryptResponse) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case DecryptResponse_DecryptResponse: + { + return "ComAmazonawsKmsTypes.DecryptResponse.DecryptResponse" + "(" + _dafny.String(data.KeyId) + ", " + _dafny.String(data.Plaintext) + ", " + _dafny.String(data.EncryptionAlgorithm) + ", " + _dafny.String(data.CiphertextForRecipient) + ")" + } + default: + { + return "" + } + } +} + +func (_this DecryptResponse) Equals(other DecryptResponse) bool { + switch data1 := _this.Get_().(type) { + case DecryptResponse_DecryptResponse: + { + data2, ok := other.Get_().(DecryptResponse_DecryptResponse) + return ok && data1.KeyId.Equals(data2.KeyId) && data1.Plaintext.Equals(data2.Plaintext) && data1.EncryptionAlgorithm.Equals(data2.EncryptionAlgorithm) && data1.CiphertextForRecipient.Equals(data2.CiphertextForRecipient) + } + default: + { + return false // unexpected + } + } +} + +func (_this DecryptResponse) EqualsGeneric(other interface{}) bool { + typed, ok := other.(DecryptResponse) + return ok && _this.Equals(typed) +} + +func Type_DecryptResponse_() _dafny.TypeDescriptor { + return type_DecryptResponse_{} +} + +type type_DecryptResponse_ struct { +} + +func (_this type_DecryptResponse_) Default() interface{} { + return Companion_DecryptResponse_.Default() +} + +func (_this type_DecryptResponse_) String() string { + return "ComAmazonawsKmsTypes.DecryptResponse" +} +func (_this DecryptResponse) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = DecryptResponse{} + +// End of datatype DecryptResponse + +// Definition of datatype DeleteAliasRequest +type DeleteAliasRequest struct { + Data_DeleteAliasRequest_ +} + +func (_this DeleteAliasRequest) Get_() Data_DeleteAliasRequest_ { + return _this.Data_DeleteAliasRequest_ +} + +type Data_DeleteAliasRequest_ interface { + isDeleteAliasRequest() +} + +type CompanionStruct_DeleteAliasRequest_ struct { +} + +var Companion_DeleteAliasRequest_ = CompanionStruct_DeleteAliasRequest_{} + +type DeleteAliasRequest_DeleteAliasRequest struct { + AliasName _dafny.Sequence +} + +func (DeleteAliasRequest_DeleteAliasRequest) isDeleteAliasRequest() {} + +func (CompanionStruct_DeleteAliasRequest_) Create_DeleteAliasRequest_(AliasName _dafny.Sequence) DeleteAliasRequest { + return DeleteAliasRequest{DeleteAliasRequest_DeleteAliasRequest{AliasName}} +} + +func (_this DeleteAliasRequest) Is_DeleteAliasRequest() bool { + _, ok := _this.Get_().(DeleteAliasRequest_DeleteAliasRequest) + return ok +} + +func (CompanionStruct_DeleteAliasRequest_) Default() DeleteAliasRequest { + return Companion_DeleteAliasRequest_.Create_DeleteAliasRequest_(_dafny.EmptySeq.SetString()) +} + +func (_this DeleteAliasRequest) Dtor_AliasName() _dafny.Sequence { + return _this.Get_().(DeleteAliasRequest_DeleteAliasRequest).AliasName +} + +func (_this DeleteAliasRequest) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case DeleteAliasRequest_DeleteAliasRequest: + { + return "ComAmazonawsKmsTypes.DeleteAliasRequest.DeleteAliasRequest" + "(" + _dafny.String(data.AliasName) + ")" + } + default: + { + return "" + } + } +} + +func (_this DeleteAliasRequest) Equals(other DeleteAliasRequest) bool { + switch data1 := _this.Get_().(type) { + case DeleteAliasRequest_DeleteAliasRequest: + { + data2, ok := other.Get_().(DeleteAliasRequest_DeleteAliasRequest) + return ok && data1.AliasName.Equals(data2.AliasName) + } + default: + { + return false // unexpected + } + } +} + +func (_this DeleteAliasRequest) EqualsGeneric(other interface{}) bool { + typed, ok := other.(DeleteAliasRequest) + return ok && _this.Equals(typed) +} + +func Type_DeleteAliasRequest_() _dafny.TypeDescriptor { + return type_DeleteAliasRequest_{} +} + +type type_DeleteAliasRequest_ struct { +} + +func (_this type_DeleteAliasRequest_) Default() interface{} { + return Companion_DeleteAliasRequest_.Default() +} + +func (_this type_DeleteAliasRequest_) String() string { + return "ComAmazonawsKmsTypes.DeleteAliasRequest" +} +func (_this DeleteAliasRequest) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = DeleteAliasRequest{} + +// End of datatype DeleteAliasRequest + +// Definition of datatype DeleteCustomKeyStoreRequest +type DeleteCustomKeyStoreRequest struct { + Data_DeleteCustomKeyStoreRequest_ +} + +func (_this DeleteCustomKeyStoreRequest) Get_() Data_DeleteCustomKeyStoreRequest_ { + return _this.Data_DeleteCustomKeyStoreRequest_ +} + +type Data_DeleteCustomKeyStoreRequest_ interface { + isDeleteCustomKeyStoreRequest() +} + +type CompanionStruct_DeleteCustomKeyStoreRequest_ struct { +} + +var Companion_DeleteCustomKeyStoreRequest_ = CompanionStruct_DeleteCustomKeyStoreRequest_{} + +type DeleteCustomKeyStoreRequest_DeleteCustomKeyStoreRequest struct { + CustomKeyStoreId _dafny.Sequence +} + +func (DeleteCustomKeyStoreRequest_DeleteCustomKeyStoreRequest) isDeleteCustomKeyStoreRequest() {} + +func (CompanionStruct_DeleteCustomKeyStoreRequest_) Create_DeleteCustomKeyStoreRequest_(CustomKeyStoreId _dafny.Sequence) DeleteCustomKeyStoreRequest { + return DeleteCustomKeyStoreRequest{DeleteCustomKeyStoreRequest_DeleteCustomKeyStoreRequest{CustomKeyStoreId}} +} + +func (_this DeleteCustomKeyStoreRequest) Is_DeleteCustomKeyStoreRequest() bool { + _, ok := _this.Get_().(DeleteCustomKeyStoreRequest_DeleteCustomKeyStoreRequest) + return ok +} + +func (CompanionStruct_DeleteCustomKeyStoreRequest_) Default() DeleteCustomKeyStoreRequest { + return Companion_DeleteCustomKeyStoreRequest_.Create_DeleteCustomKeyStoreRequest_(_dafny.EmptySeq.SetString()) +} + +func (_this DeleteCustomKeyStoreRequest) Dtor_CustomKeyStoreId() _dafny.Sequence { + return _this.Get_().(DeleteCustomKeyStoreRequest_DeleteCustomKeyStoreRequest).CustomKeyStoreId +} + +func (_this DeleteCustomKeyStoreRequest) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case DeleteCustomKeyStoreRequest_DeleteCustomKeyStoreRequest: + { + return "ComAmazonawsKmsTypes.DeleteCustomKeyStoreRequest.DeleteCustomKeyStoreRequest" + "(" + _dafny.String(data.CustomKeyStoreId) + ")" + } + default: + { + return "" + } + } +} + +func (_this DeleteCustomKeyStoreRequest) Equals(other DeleteCustomKeyStoreRequest) bool { + switch data1 := _this.Get_().(type) { + case DeleteCustomKeyStoreRequest_DeleteCustomKeyStoreRequest: + { + data2, ok := other.Get_().(DeleteCustomKeyStoreRequest_DeleteCustomKeyStoreRequest) + return ok && data1.CustomKeyStoreId.Equals(data2.CustomKeyStoreId) + } + default: + { + return false // unexpected + } + } +} + +func (_this DeleteCustomKeyStoreRequest) EqualsGeneric(other interface{}) bool { + typed, ok := other.(DeleteCustomKeyStoreRequest) + return ok && _this.Equals(typed) +} + +func Type_DeleteCustomKeyStoreRequest_() _dafny.TypeDescriptor { + return type_DeleteCustomKeyStoreRequest_{} +} + +type type_DeleteCustomKeyStoreRequest_ struct { +} + +func (_this type_DeleteCustomKeyStoreRequest_) Default() interface{} { + return Companion_DeleteCustomKeyStoreRequest_.Default() +} + +func (_this type_DeleteCustomKeyStoreRequest_) String() string { + return "ComAmazonawsKmsTypes.DeleteCustomKeyStoreRequest" +} +func (_this DeleteCustomKeyStoreRequest) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = DeleteCustomKeyStoreRequest{} + +// End of datatype DeleteCustomKeyStoreRequest + +// Definition of datatype DeleteCustomKeyStoreResponse +type DeleteCustomKeyStoreResponse struct { + Data_DeleteCustomKeyStoreResponse_ +} + +func (_this DeleteCustomKeyStoreResponse) Get_() Data_DeleteCustomKeyStoreResponse_ { + return _this.Data_DeleteCustomKeyStoreResponse_ +} + +type Data_DeleteCustomKeyStoreResponse_ interface { + isDeleteCustomKeyStoreResponse() +} + +type CompanionStruct_DeleteCustomKeyStoreResponse_ struct { +} + +var Companion_DeleteCustomKeyStoreResponse_ = CompanionStruct_DeleteCustomKeyStoreResponse_{} + +type DeleteCustomKeyStoreResponse_DeleteCustomKeyStoreResponse struct { +} + +func (DeleteCustomKeyStoreResponse_DeleteCustomKeyStoreResponse) isDeleteCustomKeyStoreResponse() {} + +func (CompanionStruct_DeleteCustomKeyStoreResponse_) Create_DeleteCustomKeyStoreResponse_() DeleteCustomKeyStoreResponse { + return DeleteCustomKeyStoreResponse{DeleteCustomKeyStoreResponse_DeleteCustomKeyStoreResponse{}} +} + +func (_this DeleteCustomKeyStoreResponse) Is_DeleteCustomKeyStoreResponse() bool { + _, ok := _this.Get_().(DeleteCustomKeyStoreResponse_DeleteCustomKeyStoreResponse) + return ok +} + +func (CompanionStruct_DeleteCustomKeyStoreResponse_) Default() DeleteCustomKeyStoreResponse { + return Companion_DeleteCustomKeyStoreResponse_.Create_DeleteCustomKeyStoreResponse_() +} + +func (_ CompanionStruct_DeleteCustomKeyStoreResponse_) AllSingletonConstructors() _dafny.Iterator { + i := -1 + return func() (interface{}, bool) { + i++ + switch i { + case 0: + return Companion_DeleteCustomKeyStoreResponse_.Create_DeleteCustomKeyStoreResponse_(), true + default: + return DeleteCustomKeyStoreResponse{}, false + } + } +} + +func (_this DeleteCustomKeyStoreResponse) String() string { + switch _this.Get_().(type) { + case nil: + return "null" + case DeleteCustomKeyStoreResponse_DeleteCustomKeyStoreResponse: + { + return "ComAmazonawsKmsTypes.DeleteCustomKeyStoreResponse.DeleteCustomKeyStoreResponse" + } + default: + { + return "" + } + } +} + +func (_this DeleteCustomKeyStoreResponse) Equals(other DeleteCustomKeyStoreResponse) bool { + switch _this.Get_().(type) { + case DeleteCustomKeyStoreResponse_DeleteCustomKeyStoreResponse: + { + _, ok := other.Get_().(DeleteCustomKeyStoreResponse_DeleteCustomKeyStoreResponse) + return ok + } + default: + { + return false // unexpected + } + } +} + +func (_this DeleteCustomKeyStoreResponse) EqualsGeneric(other interface{}) bool { + typed, ok := other.(DeleteCustomKeyStoreResponse) + return ok && _this.Equals(typed) +} + +func Type_DeleteCustomKeyStoreResponse_() _dafny.TypeDescriptor { + return type_DeleteCustomKeyStoreResponse_{} +} + +type type_DeleteCustomKeyStoreResponse_ struct { +} + +func (_this type_DeleteCustomKeyStoreResponse_) Default() interface{} { + return Companion_DeleteCustomKeyStoreResponse_.Default() +} + +func (_this type_DeleteCustomKeyStoreResponse_) String() string { + return "ComAmazonawsKmsTypes.DeleteCustomKeyStoreResponse" +} +func (_this DeleteCustomKeyStoreResponse) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = DeleteCustomKeyStoreResponse{} + +// End of datatype DeleteCustomKeyStoreResponse + +// Definition of datatype DeleteImportedKeyMaterialRequest +type DeleteImportedKeyMaterialRequest struct { + Data_DeleteImportedKeyMaterialRequest_ +} + +func (_this DeleteImportedKeyMaterialRequest) Get_() Data_DeleteImportedKeyMaterialRequest_ { + return _this.Data_DeleteImportedKeyMaterialRequest_ +} + +type Data_DeleteImportedKeyMaterialRequest_ interface { + isDeleteImportedKeyMaterialRequest() +} + +type CompanionStruct_DeleteImportedKeyMaterialRequest_ struct { +} + +var Companion_DeleteImportedKeyMaterialRequest_ = CompanionStruct_DeleteImportedKeyMaterialRequest_{} + +type DeleteImportedKeyMaterialRequest_DeleteImportedKeyMaterialRequest struct { + KeyId _dafny.Sequence +} + +func (DeleteImportedKeyMaterialRequest_DeleteImportedKeyMaterialRequest) isDeleteImportedKeyMaterialRequest() { +} + +func (CompanionStruct_DeleteImportedKeyMaterialRequest_) Create_DeleteImportedKeyMaterialRequest_(KeyId _dafny.Sequence) DeleteImportedKeyMaterialRequest { + return DeleteImportedKeyMaterialRequest{DeleteImportedKeyMaterialRequest_DeleteImportedKeyMaterialRequest{KeyId}} +} + +func (_this DeleteImportedKeyMaterialRequest) Is_DeleteImportedKeyMaterialRequest() bool { + _, ok := _this.Get_().(DeleteImportedKeyMaterialRequest_DeleteImportedKeyMaterialRequest) + return ok +} + +func (CompanionStruct_DeleteImportedKeyMaterialRequest_) Default() DeleteImportedKeyMaterialRequest { + return Companion_DeleteImportedKeyMaterialRequest_.Create_DeleteImportedKeyMaterialRequest_(_dafny.EmptySeq.SetString()) +} + +func (_this DeleteImportedKeyMaterialRequest) Dtor_KeyId() _dafny.Sequence { + return _this.Get_().(DeleteImportedKeyMaterialRequest_DeleteImportedKeyMaterialRequest).KeyId +} + +func (_this DeleteImportedKeyMaterialRequest) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case DeleteImportedKeyMaterialRequest_DeleteImportedKeyMaterialRequest: + { + return "ComAmazonawsKmsTypes.DeleteImportedKeyMaterialRequest.DeleteImportedKeyMaterialRequest" + "(" + _dafny.String(data.KeyId) + ")" + } + default: + { + return "" + } + } +} + +func (_this DeleteImportedKeyMaterialRequest) Equals(other DeleteImportedKeyMaterialRequest) bool { + switch data1 := _this.Get_().(type) { + case DeleteImportedKeyMaterialRequest_DeleteImportedKeyMaterialRequest: + { + data2, ok := other.Get_().(DeleteImportedKeyMaterialRequest_DeleteImportedKeyMaterialRequest) + return ok && data1.KeyId.Equals(data2.KeyId) + } + default: + { + return false // unexpected + } + } +} + +func (_this DeleteImportedKeyMaterialRequest) EqualsGeneric(other interface{}) bool { + typed, ok := other.(DeleteImportedKeyMaterialRequest) + return ok && _this.Equals(typed) +} + +func Type_DeleteImportedKeyMaterialRequest_() _dafny.TypeDescriptor { + return type_DeleteImportedKeyMaterialRequest_{} +} + +type type_DeleteImportedKeyMaterialRequest_ struct { +} + +func (_this type_DeleteImportedKeyMaterialRequest_) Default() interface{} { + return Companion_DeleteImportedKeyMaterialRequest_.Default() +} + +func (_this type_DeleteImportedKeyMaterialRequest_) String() string { + return "ComAmazonawsKmsTypes.DeleteImportedKeyMaterialRequest" +} +func (_this DeleteImportedKeyMaterialRequest) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = DeleteImportedKeyMaterialRequest{} + +// End of datatype DeleteImportedKeyMaterialRequest + +// Definition of datatype DeriveSharedSecretRequest +type DeriveSharedSecretRequest struct { + Data_DeriveSharedSecretRequest_ +} + +func (_this DeriveSharedSecretRequest) Get_() Data_DeriveSharedSecretRequest_ { + return _this.Data_DeriveSharedSecretRequest_ +} + +type Data_DeriveSharedSecretRequest_ interface { + isDeriveSharedSecretRequest() +} + +type CompanionStruct_DeriveSharedSecretRequest_ struct { +} + +var Companion_DeriveSharedSecretRequest_ = CompanionStruct_DeriveSharedSecretRequest_{} + +type DeriveSharedSecretRequest_DeriveSharedSecretRequest struct { + KeyId _dafny.Sequence + KeyAgreementAlgorithm KeyAgreementAlgorithmSpec + PublicKey _dafny.Sequence + GrantTokens m_Wrappers.Option + DryRun m_Wrappers.Option + Recipient m_Wrappers.Option +} + +func (DeriveSharedSecretRequest_DeriveSharedSecretRequest) isDeriveSharedSecretRequest() {} + +func (CompanionStruct_DeriveSharedSecretRequest_) Create_DeriveSharedSecretRequest_(KeyId _dafny.Sequence, KeyAgreementAlgorithm KeyAgreementAlgorithmSpec, PublicKey _dafny.Sequence, GrantTokens m_Wrappers.Option, DryRun m_Wrappers.Option, Recipient m_Wrappers.Option) DeriveSharedSecretRequest { + return DeriveSharedSecretRequest{DeriveSharedSecretRequest_DeriveSharedSecretRequest{KeyId, KeyAgreementAlgorithm, PublicKey, GrantTokens, DryRun, Recipient}} +} + +func (_this DeriveSharedSecretRequest) Is_DeriveSharedSecretRequest() bool { + _, ok := _this.Get_().(DeriveSharedSecretRequest_DeriveSharedSecretRequest) + return ok +} + +func (CompanionStruct_DeriveSharedSecretRequest_) Default() DeriveSharedSecretRequest { + return Companion_DeriveSharedSecretRequest_.Create_DeriveSharedSecretRequest_(_dafny.EmptySeq.SetString(), Companion_KeyAgreementAlgorithmSpec_.Default(), _dafny.EmptySeq, m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this DeriveSharedSecretRequest) Dtor_KeyId() _dafny.Sequence { + return _this.Get_().(DeriveSharedSecretRequest_DeriveSharedSecretRequest).KeyId +} + +func (_this DeriveSharedSecretRequest) Dtor_KeyAgreementAlgorithm() KeyAgreementAlgorithmSpec { + return _this.Get_().(DeriveSharedSecretRequest_DeriveSharedSecretRequest).KeyAgreementAlgorithm +} + +func (_this DeriveSharedSecretRequest) Dtor_PublicKey() _dafny.Sequence { + return _this.Get_().(DeriveSharedSecretRequest_DeriveSharedSecretRequest).PublicKey +} + +func (_this DeriveSharedSecretRequest) Dtor_GrantTokens() m_Wrappers.Option { + return _this.Get_().(DeriveSharedSecretRequest_DeriveSharedSecretRequest).GrantTokens +} + +func (_this DeriveSharedSecretRequest) Dtor_DryRun() m_Wrappers.Option { + return _this.Get_().(DeriveSharedSecretRequest_DeriveSharedSecretRequest).DryRun +} + +func (_this DeriveSharedSecretRequest) Dtor_Recipient() m_Wrappers.Option { + return _this.Get_().(DeriveSharedSecretRequest_DeriveSharedSecretRequest).Recipient +} + +func (_this DeriveSharedSecretRequest) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case DeriveSharedSecretRequest_DeriveSharedSecretRequest: + { + return "ComAmazonawsKmsTypes.DeriveSharedSecretRequest.DeriveSharedSecretRequest" + "(" + _dafny.String(data.KeyId) + ", " + _dafny.String(data.KeyAgreementAlgorithm) + ", " + _dafny.String(data.PublicKey) + ", " + _dafny.String(data.GrantTokens) + ", " + _dafny.String(data.DryRun) + ", " + _dafny.String(data.Recipient) + ")" + } + default: + { + return "" + } + } +} + +func (_this DeriveSharedSecretRequest) Equals(other DeriveSharedSecretRequest) bool { + switch data1 := _this.Get_().(type) { + case DeriveSharedSecretRequest_DeriveSharedSecretRequest: + { + data2, ok := other.Get_().(DeriveSharedSecretRequest_DeriveSharedSecretRequest) + return ok && data1.KeyId.Equals(data2.KeyId) && data1.KeyAgreementAlgorithm.Equals(data2.KeyAgreementAlgorithm) && data1.PublicKey.Equals(data2.PublicKey) && data1.GrantTokens.Equals(data2.GrantTokens) && data1.DryRun.Equals(data2.DryRun) && data1.Recipient.Equals(data2.Recipient) + } + default: + { + return false // unexpected + } + } +} + +func (_this DeriveSharedSecretRequest) EqualsGeneric(other interface{}) bool { + typed, ok := other.(DeriveSharedSecretRequest) + return ok && _this.Equals(typed) +} + +func Type_DeriveSharedSecretRequest_() _dafny.TypeDescriptor { + return type_DeriveSharedSecretRequest_{} +} + +type type_DeriveSharedSecretRequest_ struct { +} + +func (_this type_DeriveSharedSecretRequest_) Default() interface{} { + return Companion_DeriveSharedSecretRequest_.Default() +} + +func (_this type_DeriveSharedSecretRequest_) String() string { + return "ComAmazonawsKmsTypes.DeriveSharedSecretRequest" +} +func (_this DeriveSharedSecretRequest) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = DeriveSharedSecretRequest{} + +// End of datatype DeriveSharedSecretRequest + +// Definition of datatype DeriveSharedSecretResponse +type DeriveSharedSecretResponse struct { + Data_DeriveSharedSecretResponse_ +} + +func (_this DeriveSharedSecretResponse) Get_() Data_DeriveSharedSecretResponse_ { + return _this.Data_DeriveSharedSecretResponse_ +} + +type Data_DeriveSharedSecretResponse_ interface { + isDeriveSharedSecretResponse() +} + +type CompanionStruct_DeriveSharedSecretResponse_ struct { +} + +var Companion_DeriveSharedSecretResponse_ = CompanionStruct_DeriveSharedSecretResponse_{} + +type DeriveSharedSecretResponse_DeriveSharedSecretResponse struct { + KeyId m_Wrappers.Option + SharedSecret m_Wrappers.Option + CiphertextForRecipient m_Wrappers.Option + KeyAgreementAlgorithm m_Wrappers.Option + KeyOrigin m_Wrappers.Option +} + +func (DeriveSharedSecretResponse_DeriveSharedSecretResponse) isDeriveSharedSecretResponse() {} + +func (CompanionStruct_DeriveSharedSecretResponse_) Create_DeriveSharedSecretResponse_(KeyId m_Wrappers.Option, SharedSecret m_Wrappers.Option, CiphertextForRecipient m_Wrappers.Option, KeyAgreementAlgorithm m_Wrappers.Option, KeyOrigin m_Wrappers.Option) DeriveSharedSecretResponse { + return DeriveSharedSecretResponse{DeriveSharedSecretResponse_DeriveSharedSecretResponse{KeyId, SharedSecret, CiphertextForRecipient, KeyAgreementAlgorithm, KeyOrigin}} +} + +func (_this DeriveSharedSecretResponse) Is_DeriveSharedSecretResponse() bool { + _, ok := _this.Get_().(DeriveSharedSecretResponse_DeriveSharedSecretResponse) + return ok +} + +func (CompanionStruct_DeriveSharedSecretResponse_) Default() DeriveSharedSecretResponse { + return Companion_DeriveSharedSecretResponse_.Create_DeriveSharedSecretResponse_(m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this DeriveSharedSecretResponse) Dtor_KeyId() m_Wrappers.Option { + return _this.Get_().(DeriveSharedSecretResponse_DeriveSharedSecretResponse).KeyId +} + +func (_this DeriveSharedSecretResponse) Dtor_SharedSecret() m_Wrappers.Option { + return _this.Get_().(DeriveSharedSecretResponse_DeriveSharedSecretResponse).SharedSecret +} + +func (_this DeriveSharedSecretResponse) Dtor_CiphertextForRecipient() m_Wrappers.Option { + return _this.Get_().(DeriveSharedSecretResponse_DeriveSharedSecretResponse).CiphertextForRecipient +} + +func (_this DeriveSharedSecretResponse) Dtor_KeyAgreementAlgorithm() m_Wrappers.Option { + return _this.Get_().(DeriveSharedSecretResponse_DeriveSharedSecretResponse).KeyAgreementAlgorithm +} + +func (_this DeriveSharedSecretResponse) Dtor_KeyOrigin() m_Wrappers.Option { + return _this.Get_().(DeriveSharedSecretResponse_DeriveSharedSecretResponse).KeyOrigin +} + +func (_this DeriveSharedSecretResponse) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case DeriveSharedSecretResponse_DeriveSharedSecretResponse: + { + return "ComAmazonawsKmsTypes.DeriveSharedSecretResponse.DeriveSharedSecretResponse" + "(" + _dafny.String(data.KeyId) + ", " + _dafny.String(data.SharedSecret) + ", " + _dafny.String(data.CiphertextForRecipient) + ", " + _dafny.String(data.KeyAgreementAlgorithm) + ", " + _dafny.String(data.KeyOrigin) + ")" + } + default: + { + return "" + } + } +} + +func (_this DeriveSharedSecretResponse) Equals(other DeriveSharedSecretResponse) bool { + switch data1 := _this.Get_().(type) { + case DeriveSharedSecretResponse_DeriveSharedSecretResponse: + { + data2, ok := other.Get_().(DeriveSharedSecretResponse_DeriveSharedSecretResponse) + return ok && data1.KeyId.Equals(data2.KeyId) && data1.SharedSecret.Equals(data2.SharedSecret) && data1.CiphertextForRecipient.Equals(data2.CiphertextForRecipient) && data1.KeyAgreementAlgorithm.Equals(data2.KeyAgreementAlgorithm) && data1.KeyOrigin.Equals(data2.KeyOrigin) + } + default: + { + return false // unexpected + } + } +} + +func (_this DeriveSharedSecretResponse) EqualsGeneric(other interface{}) bool { + typed, ok := other.(DeriveSharedSecretResponse) + return ok && _this.Equals(typed) +} + +func Type_DeriveSharedSecretResponse_() _dafny.TypeDescriptor { + return type_DeriveSharedSecretResponse_{} +} + +type type_DeriveSharedSecretResponse_ struct { +} + +func (_this type_DeriveSharedSecretResponse_) Default() interface{} { + return Companion_DeriveSharedSecretResponse_.Default() +} + +func (_this type_DeriveSharedSecretResponse_) String() string { + return "ComAmazonawsKmsTypes.DeriveSharedSecretResponse" +} +func (_this DeriveSharedSecretResponse) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = DeriveSharedSecretResponse{} + +// End of datatype DeriveSharedSecretResponse + +// Definition of datatype DescribeCustomKeyStoresRequest +type DescribeCustomKeyStoresRequest struct { + Data_DescribeCustomKeyStoresRequest_ +} + +func (_this DescribeCustomKeyStoresRequest) Get_() Data_DescribeCustomKeyStoresRequest_ { + return _this.Data_DescribeCustomKeyStoresRequest_ +} + +type Data_DescribeCustomKeyStoresRequest_ interface { + isDescribeCustomKeyStoresRequest() +} + +type CompanionStruct_DescribeCustomKeyStoresRequest_ struct { +} + +var Companion_DescribeCustomKeyStoresRequest_ = CompanionStruct_DescribeCustomKeyStoresRequest_{} + +type DescribeCustomKeyStoresRequest_DescribeCustomKeyStoresRequest struct { + CustomKeyStoreId m_Wrappers.Option + CustomKeyStoreName m_Wrappers.Option + Limit m_Wrappers.Option + Marker m_Wrappers.Option +} + +func (DescribeCustomKeyStoresRequest_DescribeCustomKeyStoresRequest) isDescribeCustomKeyStoresRequest() { +} + +func (CompanionStruct_DescribeCustomKeyStoresRequest_) Create_DescribeCustomKeyStoresRequest_(CustomKeyStoreId m_Wrappers.Option, CustomKeyStoreName m_Wrappers.Option, Limit m_Wrappers.Option, Marker m_Wrappers.Option) DescribeCustomKeyStoresRequest { + return DescribeCustomKeyStoresRequest{DescribeCustomKeyStoresRequest_DescribeCustomKeyStoresRequest{CustomKeyStoreId, CustomKeyStoreName, Limit, Marker}} +} + +func (_this DescribeCustomKeyStoresRequest) Is_DescribeCustomKeyStoresRequest() bool { + _, ok := _this.Get_().(DescribeCustomKeyStoresRequest_DescribeCustomKeyStoresRequest) + return ok +} + +func (CompanionStruct_DescribeCustomKeyStoresRequest_) Default() DescribeCustomKeyStoresRequest { + return Companion_DescribeCustomKeyStoresRequest_.Create_DescribeCustomKeyStoresRequest_(m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this DescribeCustomKeyStoresRequest) Dtor_CustomKeyStoreId() m_Wrappers.Option { + return _this.Get_().(DescribeCustomKeyStoresRequest_DescribeCustomKeyStoresRequest).CustomKeyStoreId +} + +func (_this DescribeCustomKeyStoresRequest) Dtor_CustomKeyStoreName() m_Wrappers.Option { + return _this.Get_().(DescribeCustomKeyStoresRequest_DescribeCustomKeyStoresRequest).CustomKeyStoreName +} + +func (_this DescribeCustomKeyStoresRequest) Dtor_Limit() m_Wrappers.Option { + return _this.Get_().(DescribeCustomKeyStoresRequest_DescribeCustomKeyStoresRequest).Limit +} + +func (_this DescribeCustomKeyStoresRequest) Dtor_Marker() m_Wrappers.Option { + return _this.Get_().(DescribeCustomKeyStoresRequest_DescribeCustomKeyStoresRequest).Marker +} + +func (_this DescribeCustomKeyStoresRequest) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case DescribeCustomKeyStoresRequest_DescribeCustomKeyStoresRequest: + { + return "ComAmazonawsKmsTypes.DescribeCustomKeyStoresRequest.DescribeCustomKeyStoresRequest" + "(" + _dafny.String(data.CustomKeyStoreId) + ", " + _dafny.String(data.CustomKeyStoreName) + ", " + _dafny.String(data.Limit) + ", " + _dafny.String(data.Marker) + ")" + } + default: + { + return "" + } + } +} + +func (_this DescribeCustomKeyStoresRequest) Equals(other DescribeCustomKeyStoresRequest) bool { + switch data1 := _this.Get_().(type) { + case DescribeCustomKeyStoresRequest_DescribeCustomKeyStoresRequest: + { + data2, ok := other.Get_().(DescribeCustomKeyStoresRequest_DescribeCustomKeyStoresRequest) + return ok && data1.CustomKeyStoreId.Equals(data2.CustomKeyStoreId) && data1.CustomKeyStoreName.Equals(data2.CustomKeyStoreName) && data1.Limit.Equals(data2.Limit) && data1.Marker.Equals(data2.Marker) + } + default: + { + return false // unexpected + } + } +} + +func (_this DescribeCustomKeyStoresRequest) EqualsGeneric(other interface{}) bool { + typed, ok := other.(DescribeCustomKeyStoresRequest) + return ok && _this.Equals(typed) +} + +func Type_DescribeCustomKeyStoresRequest_() _dafny.TypeDescriptor { + return type_DescribeCustomKeyStoresRequest_{} +} + +type type_DescribeCustomKeyStoresRequest_ struct { +} + +func (_this type_DescribeCustomKeyStoresRequest_) Default() interface{} { + return Companion_DescribeCustomKeyStoresRequest_.Default() +} + +func (_this type_DescribeCustomKeyStoresRequest_) String() string { + return "ComAmazonawsKmsTypes.DescribeCustomKeyStoresRequest" +} +func (_this DescribeCustomKeyStoresRequest) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = DescribeCustomKeyStoresRequest{} + +// End of datatype DescribeCustomKeyStoresRequest + +// Definition of datatype DescribeCustomKeyStoresResponse +type DescribeCustomKeyStoresResponse struct { + Data_DescribeCustomKeyStoresResponse_ +} + +func (_this DescribeCustomKeyStoresResponse) Get_() Data_DescribeCustomKeyStoresResponse_ { + return _this.Data_DescribeCustomKeyStoresResponse_ +} + +type Data_DescribeCustomKeyStoresResponse_ interface { + isDescribeCustomKeyStoresResponse() +} + +type CompanionStruct_DescribeCustomKeyStoresResponse_ struct { +} + +var Companion_DescribeCustomKeyStoresResponse_ = CompanionStruct_DescribeCustomKeyStoresResponse_{} + +type DescribeCustomKeyStoresResponse_DescribeCustomKeyStoresResponse struct { + CustomKeyStores m_Wrappers.Option + NextMarker m_Wrappers.Option + Truncated m_Wrappers.Option +} + +func (DescribeCustomKeyStoresResponse_DescribeCustomKeyStoresResponse) isDescribeCustomKeyStoresResponse() { +} + +func (CompanionStruct_DescribeCustomKeyStoresResponse_) Create_DescribeCustomKeyStoresResponse_(CustomKeyStores m_Wrappers.Option, NextMarker m_Wrappers.Option, Truncated m_Wrappers.Option) DescribeCustomKeyStoresResponse { + return DescribeCustomKeyStoresResponse{DescribeCustomKeyStoresResponse_DescribeCustomKeyStoresResponse{CustomKeyStores, NextMarker, Truncated}} +} + +func (_this DescribeCustomKeyStoresResponse) Is_DescribeCustomKeyStoresResponse() bool { + _, ok := _this.Get_().(DescribeCustomKeyStoresResponse_DescribeCustomKeyStoresResponse) + return ok +} + +func (CompanionStruct_DescribeCustomKeyStoresResponse_) Default() DescribeCustomKeyStoresResponse { + return Companion_DescribeCustomKeyStoresResponse_.Create_DescribeCustomKeyStoresResponse_(m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this DescribeCustomKeyStoresResponse) Dtor_CustomKeyStores() m_Wrappers.Option { + return _this.Get_().(DescribeCustomKeyStoresResponse_DescribeCustomKeyStoresResponse).CustomKeyStores +} + +func (_this DescribeCustomKeyStoresResponse) Dtor_NextMarker() m_Wrappers.Option { + return _this.Get_().(DescribeCustomKeyStoresResponse_DescribeCustomKeyStoresResponse).NextMarker +} + +func (_this DescribeCustomKeyStoresResponse) Dtor_Truncated() m_Wrappers.Option { + return _this.Get_().(DescribeCustomKeyStoresResponse_DescribeCustomKeyStoresResponse).Truncated +} + +func (_this DescribeCustomKeyStoresResponse) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case DescribeCustomKeyStoresResponse_DescribeCustomKeyStoresResponse: + { + return "ComAmazonawsKmsTypes.DescribeCustomKeyStoresResponse.DescribeCustomKeyStoresResponse" + "(" + _dafny.String(data.CustomKeyStores) + ", " + _dafny.String(data.NextMarker) + ", " + _dafny.String(data.Truncated) + ")" + } + default: + { + return "" + } + } +} + +func (_this DescribeCustomKeyStoresResponse) Equals(other DescribeCustomKeyStoresResponse) bool { + switch data1 := _this.Get_().(type) { + case DescribeCustomKeyStoresResponse_DescribeCustomKeyStoresResponse: + { + data2, ok := other.Get_().(DescribeCustomKeyStoresResponse_DescribeCustomKeyStoresResponse) + return ok && data1.CustomKeyStores.Equals(data2.CustomKeyStores) && data1.NextMarker.Equals(data2.NextMarker) && data1.Truncated.Equals(data2.Truncated) + } + default: + { + return false // unexpected + } + } +} + +func (_this DescribeCustomKeyStoresResponse) EqualsGeneric(other interface{}) bool { + typed, ok := other.(DescribeCustomKeyStoresResponse) + return ok && _this.Equals(typed) +} + +func Type_DescribeCustomKeyStoresResponse_() _dafny.TypeDescriptor { + return type_DescribeCustomKeyStoresResponse_{} +} + +type type_DescribeCustomKeyStoresResponse_ struct { +} + +func (_this type_DescribeCustomKeyStoresResponse_) Default() interface{} { + return Companion_DescribeCustomKeyStoresResponse_.Default() +} + +func (_this type_DescribeCustomKeyStoresResponse_) String() string { + return "ComAmazonawsKmsTypes.DescribeCustomKeyStoresResponse" +} +func (_this DescribeCustomKeyStoresResponse) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = DescribeCustomKeyStoresResponse{} + +// End of datatype DescribeCustomKeyStoresResponse + +// Definition of datatype DescribeKeyRequest +type DescribeKeyRequest struct { + Data_DescribeKeyRequest_ +} + +func (_this DescribeKeyRequest) Get_() Data_DescribeKeyRequest_ { + return _this.Data_DescribeKeyRequest_ +} + +type Data_DescribeKeyRequest_ interface { + isDescribeKeyRequest() +} + +type CompanionStruct_DescribeKeyRequest_ struct { +} + +var Companion_DescribeKeyRequest_ = CompanionStruct_DescribeKeyRequest_{} + +type DescribeKeyRequest_DescribeKeyRequest struct { + KeyId _dafny.Sequence + GrantTokens m_Wrappers.Option +} + +func (DescribeKeyRequest_DescribeKeyRequest) isDescribeKeyRequest() {} + +func (CompanionStruct_DescribeKeyRequest_) Create_DescribeKeyRequest_(KeyId _dafny.Sequence, GrantTokens m_Wrappers.Option) DescribeKeyRequest { + return DescribeKeyRequest{DescribeKeyRequest_DescribeKeyRequest{KeyId, GrantTokens}} +} + +func (_this DescribeKeyRequest) Is_DescribeKeyRequest() bool { + _, ok := _this.Get_().(DescribeKeyRequest_DescribeKeyRequest) + return ok +} + +func (CompanionStruct_DescribeKeyRequest_) Default() DescribeKeyRequest { + return Companion_DescribeKeyRequest_.Create_DescribeKeyRequest_(_dafny.EmptySeq.SetString(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this DescribeKeyRequest) Dtor_KeyId() _dafny.Sequence { + return _this.Get_().(DescribeKeyRequest_DescribeKeyRequest).KeyId +} + +func (_this DescribeKeyRequest) Dtor_GrantTokens() m_Wrappers.Option { + return _this.Get_().(DescribeKeyRequest_DescribeKeyRequest).GrantTokens +} + +func (_this DescribeKeyRequest) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case DescribeKeyRequest_DescribeKeyRequest: + { + return "ComAmazonawsKmsTypes.DescribeKeyRequest.DescribeKeyRequest" + "(" + _dafny.String(data.KeyId) + ", " + _dafny.String(data.GrantTokens) + ")" + } + default: + { + return "" + } + } +} + +func (_this DescribeKeyRequest) Equals(other DescribeKeyRequest) bool { + switch data1 := _this.Get_().(type) { + case DescribeKeyRequest_DescribeKeyRequest: + { + data2, ok := other.Get_().(DescribeKeyRequest_DescribeKeyRequest) + return ok && data1.KeyId.Equals(data2.KeyId) && data1.GrantTokens.Equals(data2.GrantTokens) + } + default: + { + return false // unexpected + } + } +} + +func (_this DescribeKeyRequest) EqualsGeneric(other interface{}) bool { + typed, ok := other.(DescribeKeyRequest) + return ok && _this.Equals(typed) +} + +func Type_DescribeKeyRequest_() _dafny.TypeDescriptor { + return type_DescribeKeyRequest_{} +} + +type type_DescribeKeyRequest_ struct { +} + +func (_this type_DescribeKeyRequest_) Default() interface{} { + return Companion_DescribeKeyRequest_.Default() +} + +func (_this type_DescribeKeyRequest_) String() string { + return "ComAmazonawsKmsTypes.DescribeKeyRequest" +} +func (_this DescribeKeyRequest) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = DescribeKeyRequest{} + +// End of datatype DescribeKeyRequest + +// Definition of datatype DescribeKeyResponse +type DescribeKeyResponse struct { + Data_DescribeKeyResponse_ +} + +func (_this DescribeKeyResponse) Get_() Data_DescribeKeyResponse_ { + return _this.Data_DescribeKeyResponse_ +} + +type Data_DescribeKeyResponse_ interface { + isDescribeKeyResponse() +} + +type CompanionStruct_DescribeKeyResponse_ struct { +} + +var Companion_DescribeKeyResponse_ = CompanionStruct_DescribeKeyResponse_{} + +type DescribeKeyResponse_DescribeKeyResponse struct { + KeyMetadata m_Wrappers.Option +} + +func (DescribeKeyResponse_DescribeKeyResponse) isDescribeKeyResponse() {} + +func (CompanionStruct_DescribeKeyResponse_) Create_DescribeKeyResponse_(KeyMetadata m_Wrappers.Option) DescribeKeyResponse { + return DescribeKeyResponse{DescribeKeyResponse_DescribeKeyResponse{KeyMetadata}} +} + +func (_this DescribeKeyResponse) Is_DescribeKeyResponse() bool { + _, ok := _this.Get_().(DescribeKeyResponse_DescribeKeyResponse) + return ok +} + +func (CompanionStruct_DescribeKeyResponse_) Default() DescribeKeyResponse { + return Companion_DescribeKeyResponse_.Create_DescribeKeyResponse_(m_Wrappers.Companion_Option_.Default()) +} + +func (_this DescribeKeyResponse) Dtor_KeyMetadata() m_Wrappers.Option { + return _this.Get_().(DescribeKeyResponse_DescribeKeyResponse).KeyMetadata +} + +func (_this DescribeKeyResponse) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case DescribeKeyResponse_DescribeKeyResponse: + { + return "ComAmazonawsKmsTypes.DescribeKeyResponse.DescribeKeyResponse" + "(" + _dafny.String(data.KeyMetadata) + ")" + } + default: + { + return "" + } + } +} + +func (_this DescribeKeyResponse) Equals(other DescribeKeyResponse) bool { + switch data1 := _this.Get_().(type) { + case DescribeKeyResponse_DescribeKeyResponse: + { + data2, ok := other.Get_().(DescribeKeyResponse_DescribeKeyResponse) + return ok && data1.KeyMetadata.Equals(data2.KeyMetadata) + } + default: + { + return false // unexpected + } + } +} + +func (_this DescribeKeyResponse) EqualsGeneric(other interface{}) bool { + typed, ok := other.(DescribeKeyResponse) + return ok && _this.Equals(typed) +} + +func Type_DescribeKeyResponse_() _dafny.TypeDescriptor { + return type_DescribeKeyResponse_{} +} + +type type_DescribeKeyResponse_ struct { +} + +func (_this type_DescribeKeyResponse_) Default() interface{} { + return Companion_DescribeKeyResponse_.Default() +} + +func (_this type_DescribeKeyResponse_) String() string { + return "ComAmazonawsKmsTypes.DescribeKeyResponse" +} +func (_this DescribeKeyResponse) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = DescribeKeyResponse{} + +// End of datatype DescribeKeyResponse + +// Definition of class DescriptionType +type DescriptionType struct { +} + +func New_DescriptionType_() *DescriptionType { + _this := DescriptionType{} + + return &_this +} + +type CompanionStruct_DescriptionType_ struct { +} + +var Companion_DescriptionType_ = CompanionStruct_DescriptionType_{} + +func (*DescriptionType) String() string { + return "ComAmazonawsKmsTypes.DescriptionType" +} + +// End of class DescriptionType + +func Type_DescriptionType_() _dafny.TypeDescriptor { + return type_DescriptionType_{} +} + +type type_DescriptionType_ struct { +} + +func (_this type_DescriptionType_) Default() interface{} { + return _dafny.EmptySeq.SetString() +} + +func (_this type_DescriptionType_) String() string { + return "ComAmazonawsKmsTypes.DescriptionType" +} +func (_this *CompanionStruct_DescriptionType_) Is_(__source _dafny.Sequence) bool { + var _7_x _dafny.Sequence = (__source) + _ = _7_x + return Companion_Default___.IsValid__DescriptionType(_7_x) +} + +// Definition of datatype DisableKeyRequest +type DisableKeyRequest struct { + Data_DisableKeyRequest_ +} + +func (_this DisableKeyRequest) Get_() Data_DisableKeyRequest_ { + return _this.Data_DisableKeyRequest_ +} + +type Data_DisableKeyRequest_ interface { + isDisableKeyRequest() +} + +type CompanionStruct_DisableKeyRequest_ struct { +} + +var Companion_DisableKeyRequest_ = CompanionStruct_DisableKeyRequest_{} + +type DisableKeyRequest_DisableKeyRequest struct { + KeyId _dafny.Sequence +} + +func (DisableKeyRequest_DisableKeyRequest) isDisableKeyRequest() {} + +func (CompanionStruct_DisableKeyRequest_) Create_DisableKeyRequest_(KeyId _dafny.Sequence) DisableKeyRequest { + return DisableKeyRequest{DisableKeyRequest_DisableKeyRequest{KeyId}} +} + +func (_this DisableKeyRequest) Is_DisableKeyRequest() bool { + _, ok := _this.Get_().(DisableKeyRequest_DisableKeyRequest) + return ok +} + +func (CompanionStruct_DisableKeyRequest_) Default() DisableKeyRequest { + return Companion_DisableKeyRequest_.Create_DisableKeyRequest_(_dafny.EmptySeq.SetString()) +} + +func (_this DisableKeyRequest) Dtor_KeyId() _dafny.Sequence { + return _this.Get_().(DisableKeyRequest_DisableKeyRequest).KeyId +} + +func (_this DisableKeyRequest) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case DisableKeyRequest_DisableKeyRequest: + { + return "ComAmazonawsKmsTypes.DisableKeyRequest.DisableKeyRequest" + "(" + _dafny.String(data.KeyId) + ")" + } + default: + { + return "" + } + } +} + +func (_this DisableKeyRequest) Equals(other DisableKeyRequest) bool { + switch data1 := _this.Get_().(type) { + case DisableKeyRequest_DisableKeyRequest: + { + data2, ok := other.Get_().(DisableKeyRequest_DisableKeyRequest) + return ok && data1.KeyId.Equals(data2.KeyId) + } + default: + { + return false // unexpected + } + } +} + +func (_this DisableKeyRequest) EqualsGeneric(other interface{}) bool { + typed, ok := other.(DisableKeyRequest) + return ok && _this.Equals(typed) +} + +func Type_DisableKeyRequest_() _dafny.TypeDescriptor { + return type_DisableKeyRequest_{} +} + +type type_DisableKeyRequest_ struct { +} + +func (_this type_DisableKeyRequest_) Default() interface{} { + return Companion_DisableKeyRequest_.Default() +} + +func (_this type_DisableKeyRequest_) String() string { + return "ComAmazonawsKmsTypes.DisableKeyRequest" +} +func (_this DisableKeyRequest) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = DisableKeyRequest{} + +// End of datatype DisableKeyRequest + +// Definition of datatype DisableKeyRotationRequest +type DisableKeyRotationRequest struct { + Data_DisableKeyRotationRequest_ +} + +func (_this DisableKeyRotationRequest) Get_() Data_DisableKeyRotationRequest_ { + return _this.Data_DisableKeyRotationRequest_ +} + +type Data_DisableKeyRotationRequest_ interface { + isDisableKeyRotationRequest() +} + +type CompanionStruct_DisableKeyRotationRequest_ struct { +} + +var Companion_DisableKeyRotationRequest_ = CompanionStruct_DisableKeyRotationRequest_{} + +type DisableKeyRotationRequest_DisableKeyRotationRequest struct { + KeyId _dafny.Sequence +} + +func (DisableKeyRotationRequest_DisableKeyRotationRequest) isDisableKeyRotationRequest() {} + +func (CompanionStruct_DisableKeyRotationRequest_) Create_DisableKeyRotationRequest_(KeyId _dafny.Sequence) DisableKeyRotationRequest { + return DisableKeyRotationRequest{DisableKeyRotationRequest_DisableKeyRotationRequest{KeyId}} +} + +func (_this DisableKeyRotationRequest) Is_DisableKeyRotationRequest() bool { + _, ok := _this.Get_().(DisableKeyRotationRequest_DisableKeyRotationRequest) + return ok +} + +func (CompanionStruct_DisableKeyRotationRequest_) Default() DisableKeyRotationRequest { + return Companion_DisableKeyRotationRequest_.Create_DisableKeyRotationRequest_(_dafny.EmptySeq.SetString()) +} + +func (_this DisableKeyRotationRequest) Dtor_KeyId() _dafny.Sequence { + return _this.Get_().(DisableKeyRotationRequest_DisableKeyRotationRequest).KeyId +} + +func (_this DisableKeyRotationRequest) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case DisableKeyRotationRequest_DisableKeyRotationRequest: + { + return "ComAmazonawsKmsTypes.DisableKeyRotationRequest.DisableKeyRotationRequest" + "(" + _dafny.String(data.KeyId) + ")" + } + default: + { + return "" + } + } +} + +func (_this DisableKeyRotationRequest) Equals(other DisableKeyRotationRequest) bool { + switch data1 := _this.Get_().(type) { + case DisableKeyRotationRequest_DisableKeyRotationRequest: + { + data2, ok := other.Get_().(DisableKeyRotationRequest_DisableKeyRotationRequest) + return ok && data1.KeyId.Equals(data2.KeyId) + } + default: + { + return false // unexpected + } + } +} + +func (_this DisableKeyRotationRequest) EqualsGeneric(other interface{}) bool { + typed, ok := other.(DisableKeyRotationRequest) + return ok && _this.Equals(typed) +} + +func Type_DisableKeyRotationRequest_() _dafny.TypeDescriptor { + return type_DisableKeyRotationRequest_{} +} + +type type_DisableKeyRotationRequest_ struct { +} + +func (_this type_DisableKeyRotationRequest_) Default() interface{} { + return Companion_DisableKeyRotationRequest_.Default() +} + +func (_this type_DisableKeyRotationRequest_) String() string { + return "ComAmazonawsKmsTypes.DisableKeyRotationRequest" +} +func (_this DisableKeyRotationRequest) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = DisableKeyRotationRequest{} + +// End of datatype DisableKeyRotationRequest + +// Definition of datatype DisconnectCustomKeyStoreRequest +type DisconnectCustomKeyStoreRequest struct { + Data_DisconnectCustomKeyStoreRequest_ +} + +func (_this DisconnectCustomKeyStoreRequest) Get_() Data_DisconnectCustomKeyStoreRequest_ { + return _this.Data_DisconnectCustomKeyStoreRequest_ +} + +type Data_DisconnectCustomKeyStoreRequest_ interface { + isDisconnectCustomKeyStoreRequest() +} + +type CompanionStruct_DisconnectCustomKeyStoreRequest_ struct { +} + +var Companion_DisconnectCustomKeyStoreRequest_ = CompanionStruct_DisconnectCustomKeyStoreRequest_{} + +type DisconnectCustomKeyStoreRequest_DisconnectCustomKeyStoreRequest struct { + CustomKeyStoreId _dafny.Sequence +} + +func (DisconnectCustomKeyStoreRequest_DisconnectCustomKeyStoreRequest) isDisconnectCustomKeyStoreRequest() { +} + +func (CompanionStruct_DisconnectCustomKeyStoreRequest_) Create_DisconnectCustomKeyStoreRequest_(CustomKeyStoreId _dafny.Sequence) DisconnectCustomKeyStoreRequest { + return DisconnectCustomKeyStoreRequest{DisconnectCustomKeyStoreRequest_DisconnectCustomKeyStoreRequest{CustomKeyStoreId}} +} + +func (_this DisconnectCustomKeyStoreRequest) Is_DisconnectCustomKeyStoreRequest() bool { + _, ok := _this.Get_().(DisconnectCustomKeyStoreRequest_DisconnectCustomKeyStoreRequest) + return ok +} + +func (CompanionStruct_DisconnectCustomKeyStoreRequest_) Default() DisconnectCustomKeyStoreRequest { + return Companion_DisconnectCustomKeyStoreRequest_.Create_DisconnectCustomKeyStoreRequest_(_dafny.EmptySeq.SetString()) +} + +func (_this DisconnectCustomKeyStoreRequest) Dtor_CustomKeyStoreId() _dafny.Sequence { + return _this.Get_().(DisconnectCustomKeyStoreRequest_DisconnectCustomKeyStoreRequest).CustomKeyStoreId +} + +func (_this DisconnectCustomKeyStoreRequest) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case DisconnectCustomKeyStoreRequest_DisconnectCustomKeyStoreRequest: + { + return "ComAmazonawsKmsTypes.DisconnectCustomKeyStoreRequest.DisconnectCustomKeyStoreRequest" + "(" + _dafny.String(data.CustomKeyStoreId) + ")" + } + default: + { + return "" + } + } +} + +func (_this DisconnectCustomKeyStoreRequest) Equals(other DisconnectCustomKeyStoreRequest) bool { + switch data1 := _this.Get_().(type) { + case DisconnectCustomKeyStoreRequest_DisconnectCustomKeyStoreRequest: + { + data2, ok := other.Get_().(DisconnectCustomKeyStoreRequest_DisconnectCustomKeyStoreRequest) + return ok && data1.CustomKeyStoreId.Equals(data2.CustomKeyStoreId) + } + default: + { + return false // unexpected + } + } +} + +func (_this DisconnectCustomKeyStoreRequest) EqualsGeneric(other interface{}) bool { + typed, ok := other.(DisconnectCustomKeyStoreRequest) + return ok && _this.Equals(typed) +} + +func Type_DisconnectCustomKeyStoreRequest_() _dafny.TypeDescriptor { + return type_DisconnectCustomKeyStoreRequest_{} +} + +type type_DisconnectCustomKeyStoreRequest_ struct { +} + +func (_this type_DisconnectCustomKeyStoreRequest_) Default() interface{} { + return Companion_DisconnectCustomKeyStoreRequest_.Default() +} + +func (_this type_DisconnectCustomKeyStoreRequest_) String() string { + return "ComAmazonawsKmsTypes.DisconnectCustomKeyStoreRequest" +} +func (_this DisconnectCustomKeyStoreRequest) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = DisconnectCustomKeyStoreRequest{} + +// End of datatype DisconnectCustomKeyStoreRequest + +// Definition of datatype DisconnectCustomKeyStoreResponse +type DisconnectCustomKeyStoreResponse struct { + Data_DisconnectCustomKeyStoreResponse_ +} + +func (_this DisconnectCustomKeyStoreResponse) Get_() Data_DisconnectCustomKeyStoreResponse_ { + return _this.Data_DisconnectCustomKeyStoreResponse_ +} + +type Data_DisconnectCustomKeyStoreResponse_ interface { + isDisconnectCustomKeyStoreResponse() +} + +type CompanionStruct_DisconnectCustomKeyStoreResponse_ struct { +} + +var Companion_DisconnectCustomKeyStoreResponse_ = CompanionStruct_DisconnectCustomKeyStoreResponse_{} + +type DisconnectCustomKeyStoreResponse_DisconnectCustomKeyStoreResponse struct { +} + +func (DisconnectCustomKeyStoreResponse_DisconnectCustomKeyStoreResponse) isDisconnectCustomKeyStoreResponse() { +} + +func (CompanionStruct_DisconnectCustomKeyStoreResponse_) Create_DisconnectCustomKeyStoreResponse_() DisconnectCustomKeyStoreResponse { + return DisconnectCustomKeyStoreResponse{DisconnectCustomKeyStoreResponse_DisconnectCustomKeyStoreResponse{}} +} + +func (_this DisconnectCustomKeyStoreResponse) Is_DisconnectCustomKeyStoreResponse() bool { + _, ok := _this.Get_().(DisconnectCustomKeyStoreResponse_DisconnectCustomKeyStoreResponse) + return ok +} + +func (CompanionStruct_DisconnectCustomKeyStoreResponse_) Default() DisconnectCustomKeyStoreResponse { + return Companion_DisconnectCustomKeyStoreResponse_.Create_DisconnectCustomKeyStoreResponse_() +} + +func (_ CompanionStruct_DisconnectCustomKeyStoreResponse_) AllSingletonConstructors() _dafny.Iterator { + i := -1 + return func() (interface{}, bool) { + i++ + switch i { + case 0: + return Companion_DisconnectCustomKeyStoreResponse_.Create_DisconnectCustomKeyStoreResponse_(), true + default: + return DisconnectCustomKeyStoreResponse{}, false + } + } +} + +func (_this DisconnectCustomKeyStoreResponse) String() string { + switch _this.Get_().(type) { + case nil: + return "null" + case DisconnectCustomKeyStoreResponse_DisconnectCustomKeyStoreResponse: + { + return "ComAmazonawsKmsTypes.DisconnectCustomKeyStoreResponse.DisconnectCustomKeyStoreResponse" + } + default: + { + return "" + } + } +} + +func (_this DisconnectCustomKeyStoreResponse) Equals(other DisconnectCustomKeyStoreResponse) bool { + switch _this.Get_().(type) { + case DisconnectCustomKeyStoreResponse_DisconnectCustomKeyStoreResponse: + { + _, ok := other.Get_().(DisconnectCustomKeyStoreResponse_DisconnectCustomKeyStoreResponse) + return ok + } + default: + { + return false // unexpected + } + } +} + +func (_this DisconnectCustomKeyStoreResponse) EqualsGeneric(other interface{}) bool { + typed, ok := other.(DisconnectCustomKeyStoreResponse) + return ok && _this.Equals(typed) +} + +func Type_DisconnectCustomKeyStoreResponse_() _dafny.TypeDescriptor { + return type_DisconnectCustomKeyStoreResponse_{} +} + +type type_DisconnectCustomKeyStoreResponse_ struct { +} + +func (_this type_DisconnectCustomKeyStoreResponse_) Default() interface{} { + return Companion_DisconnectCustomKeyStoreResponse_.Default() +} + +func (_this type_DisconnectCustomKeyStoreResponse_) String() string { + return "ComAmazonawsKmsTypes.DisconnectCustomKeyStoreResponse" +} +func (_this DisconnectCustomKeyStoreResponse) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = DisconnectCustomKeyStoreResponse{} + +// End of datatype DisconnectCustomKeyStoreResponse + +// Definition of datatype EnableKeyRequest +type EnableKeyRequest struct { + Data_EnableKeyRequest_ +} + +func (_this EnableKeyRequest) Get_() Data_EnableKeyRequest_ { + return _this.Data_EnableKeyRequest_ +} + +type Data_EnableKeyRequest_ interface { + isEnableKeyRequest() +} + +type CompanionStruct_EnableKeyRequest_ struct { +} + +var Companion_EnableKeyRequest_ = CompanionStruct_EnableKeyRequest_{} + +type EnableKeyRequest_EnableKeyRequest struct { + KeyId _dafny.Sequence +} + +func (EnableKeyRequest_EnableKeyRequest) isEnableKeyRequest() {} + +func (CompanionStruct_EnableKeyRequest_) Create_EnableKeyRequest_(KeyId _dafny.Sequence) EnableKeyRequest { + return EnableKeyRequest{EnableKeyRequest_EnableKeyRequest{KeyId}} +} + +func (_this EnableKeyRequest) Is_EnableKeyRequest() bool { + _, ok := _this.Get_().(EnableKeyRequest_EnableKeyRequest) + return ok +} + +func (CompanionStruct_EnableKeyRequest_) Default() EnableKeyRequest { + return Companion_EnableKeyRequest_.Create_EnableKeyRequest_(_dafny.EmptySeq.SetString()) +} + +func (_this EnableKeyRequest) Dtor_KeyId() _dafny.Sequence { + return _this.Get_().(EnableKeyRequest_EnableKeyRequest).KeyId +} + +func (_this EnableKeyRequest) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case EnableKeyRequest_EnableKeyRequest: + { + return "ComAmazonawsKmsTypes.EnableKeyRequest.EnableKeyRequest" + "(" + _dafny.String(data.KeyId) + ")" + } + default: + { + return "" + } + } +} + +func (_this EnableKeyRequest) Equals(other EnableKeyRequest) bool { + switch data1 := _this.Get_().(type) { + case EnableKeyRequest_EnableKeyRequest: + { + data2, ok := other.Get_().(EnableKeyRequest_EnableKeyRequest) + return ok && data1.KeyId.Equals(data2.KeyId) + } + default: + { + return false // unexpected + } + } +} + +func (_this EnableKeyRequest) EqualsGeneric(other interface{}) bool { + typed, ok := other.(EnableKeyRequest) + return ok && _this.Equals(typed) +} + +func Type_EnableKeyRequest_() _dafny.TypeDescriptor { + return type_EnableKeyRequest_{} +} + +type type_EnableKeyRequest_ struct { +} + +func (_this type_EnableKeyRequest_) Default() interface{} { + return Companion_EnableKeyRequest_.Default() +} + +func (_this type_EnableKeyRequest_) String() string { + return "ComAmazonawsKmsTypes.EnableKeyRequest" +} +func (_this EnableKeyRequest) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = EnableKeyRequest{} + +// End of datatype EnableKeyRequest + +// Definition of datatype EnableKeyRotationRequest +type EnableKeyRotationRequest struct { + Data_EnableKeyRotationRequest_ +} + +func (_this EnableKeyRotationRequest) Get_() Data_EnableKeyRotationRequest_ { + return _this.Data_EnableKeyRotationRequest_ +} + +type Data_EnableKeyRotationRequest_ interface { + isEnableKeyRotationRequest() +} + +type CompanionStruct_EnableKeyRotationRequest_ struct { +} + +var Companion_EnableKeyRotationRequest_ = CompanionStruct_EnableKeyRotationRequest_{} + +type EnableKeyRotationRequest_EnableKeyRotationRequest struct { + KeyId _dafny.Sequence + RotationPeriodInDays m_Wrappers.Option +} + +func (EnableKeyRotationRequest_EnableKeyRotationRequest) isEnableKeyRotationRequest() {} + +func (CompanionStruct_EnableKeyRotationRequest_) Create_EnableKeyRotationRequest_(KeyId _dafny.Sequence, RotationPeriodInDays m_Wrappers.Option) EnableKeyRotationRequest { + return EnableKeyRotationRequest{EnableKeyRotationRequest_EnableKeyRotationRequest{KeyId, RotationPeriodInDays}} +} + +func (_this EnableKeyRotationRequest) Is_EnableKeyRotationRequest() bool { + _, ok := _this.Get_().(EnableKeyRotationRequest_EnableKeyRotationRequest) + return ok +} + +func (CompanionStruct_EnableKeyRotationRequest_) Default() EnableKeyRotationRequest { + return Companion_EnableKeyRotationRequest_.Create_EnableKeyRotationRequest_(_dafny.EmptySeq.SetString(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this EnableKeyRotationRequest) Dtor_KeyId() _dafny.Sequence { + return _this.Get_().(EnableKeyRotationRequest_EnableKeyRotationRequest).KeyId +} + +func (_this EnableKeyRotationRequest) Dtor_RotationPeriodInDays() m_Wrappers.Option { + return _this.Get_().(EnableKeyRotationRequest_EnableKeyRotationRequest).RotationPeriodInDays +} + +func (_this EnableKeyRotationRequest) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case EnableKeyRotationRequest_EnableKeyRotationRequest: + { + return "ComAmazonawsKmsTypes.EnableKeyRotationRequest.EnableKeyRotationRequest" + "(" + _dafny.String(data.KeyId) + ", " + _dafny.String(data.RotationPeriodInDays) + ")" + } + default: + { + return "" + } + } +} + +func (_this EnableKeyRotationRequest) Equals(other EnableKeyRotationRequest) bool { + switch data1 := _this.Get_().(type) { + case EnableKeyRotationRequest_EnableKeyRotationRequest: + { + data2, ok := other.Get_().(EnableKeyRotationRequest_EnableKeyRotationRequest) + return ok && data1.KeyId.Equals(data2.KeyId) && data1.RotationPeriodInDays.Equals(data2.RotationPeriodInDays) + } + default: + { + return false // unexpected + } + } +} + +func (_this EnableKeyRotationRequest) EqualsGeneric(other interface{}) bool { + typed, ok := other.(EnableKeyRotationRequest) + return ok && _this.Equals(typed) +} + +func Type_EnableKeyRotationRequest_() _dafny.TypeDescriptor { + return type_EnableKeyRotationRequest_{} +} + +type type_EnableKeyRotationRequest_ struct { +} + +func (_this type_EnableKeyRotationRequest_) Default() interface{} { + return Companion_EnableKeyRotationRequest_.Default() +} + +func (_this type_EnableKeyRotationRequest_) String() string { + return "ComAmazonawsKmsTypes.EnableKeyRotationRequest" +} +func (_this EnableKeyRotationRequest) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = EnableKeyRotationRequest{} + +// End of datatype EnableKeyRotationRequest + +// Definition of datatype EncryptionAlgorithmSpec +type EncryptionAlgorithmSpec struct { + Data_EncryptionAlgorithmSpec_ +} + +func (_this EncryptionAlgorithmSpec) Get_() Data_EncryptionAlgorithmSpec_ { + return _this.Data_EncryptionAlgorithmSpec_ +} + +type Data_EncryptionAlgorithmSpec_ interface { + isEncryptionAlgorithmSpec() +} + +type CompanionStruct_EncryptionAlgorithmSpec_ struct { +} + +var Companion_EncryptionAlgorithmSpec_ = CompanionStruct_EncryptionAlgorithmSpec_{} + +type EncryptionAlgorithmSpec_SYMMETRIC__DEFAULT struct { +} + +func (EncryptionAlgorithmSpec_SYMMETRIC__DEFAULT) isEncryptionAlgorithmSpec() {} + +func (CompanionStruct_EncryptionAlgorithmSpec_) Create_SYMMETRIC__DEFAULT_() EncryptionAlgorithmSpec { + return EncryptionAlgorithmSpec{EncryptionAlgorithmSpec_SYMMETRIC__DEFAULT{}} +} + +func (_this EncryptionAlgorithmSpec) Is_SYMMETRIC__DEFAULT() bool { + _, ok := _this.Get_().(EncryptionAlgorithmSpec_SYMMETRIC__DEFAULT) + return ok +} + +type EncryptionAlgorithmSpec_RSAES__OAEP__SHA__1 struct { +} + +func (EncryptionAlgorithmSpec_RSAES__OAEP__SHA__1) isEncryptionAlgorithmSpec() {} + +func (CompanionStruct_EncryptionAlgorithmSpec_) Create_RSAES__OAEP__SHA__1_() EncryptionAlgorithmSpec { + return EncryptionAlgorithmSpec{EncryptionAlgorithmSpec_RSAES__OAEP__SHA__1{}} +} + +func (_this EncryptionAlgorithmSpec) Is_RSAES__OAEP__SHA__1() bool { + _, ok := _this.Get_().(EncryptionAlgorithmSpec_RSAES__OAEP__SHA__1) + return ok +} + +type EncryptionAlgorithmSpec_RSAES__OAEP__SHA__256 struct { +} + +func (EncryptionAlgorithmSpec_RSAES__OAEP__SHA__256) isEncryptionAlgorithmSpec() {} + +func (CompanionStruct_EncryptionAlgorithmSpec_) Create_RSAES__OAEP__SHA__256_() EncryptionAlgorithmSpec { + return EncryptionAlgorithmSpec{EncryptionAlgorithmSpec_RSAES__OAEP__SHA__256{}} +} + +func (_this EncryptionAlgorithmSpec) Is_RSAES__OAEP__SHA__256() bool { + _, ok := _this.Get_().(EncryptionAlgorithmSpec_RSAES__OAEP__SHA__256) + return ok +} + +func (CompanionStruct_EncryptionAlgorithmSpec_) Default() EncryptionAlgorithmSpec { + return Companion_EncryptionAlgorithmSpec_.Create_SYMMETRIC__DEFAULT_() +} + +func (_ CompanionStruct_EncryptionAlgorithmSpec_) AllSingletonConstructors() _dafny.Iterator { + i := -1 + return func() (interface{}, bool) { + i++ + switch i { + case 0: + return Companion_EncryptionAlgorithmSpec_.Create_SYMMETRIC__DEFAULT_(), true + case 1: + return Companion_EncryptionAlgorithmSpec_.Create_RSAES__OAEP__SHA__1_(), true + case 2: + return Companion_EncryptionAlgorithmSpec_.Create_RSAES__OAEP__SHA__256_(), true + default: + return EncryptionAlgorithmSpec{}, false + } + } +} + +func (_this EncryptionAlgorithmSpec) String() string { + switch _this.Get_().(type) { + case nil: + return "null" + case EncryptionAlgorithmSpec_SYMMETRIC__DEFAULT: + { + return "ComAmazonawsKmsTypes.EncryptionAlgorithmSpec.SYMMETRIC_DEFAULT" + } + case EncryptionAlgorithmSpec_RSAES__OAEP__SHA__1: + { + return "ComAmazonawsKmsTypes.EncryptionAlgorithmSpec.RSAES_OAEP_SHA_1" + } + case EncryptionAlgorithmSpec_RSAES__OAEP__SHA__256: + { + return "ComAmazonawsKmsTypes.EncryptionAlgorithmSpec.RSAES_OAEP_SHA_256" + } + default: + { + return "" + } + } +} + +func (_this EncryptionAlgorithmSpec) Equals(other EncryptionAlgorithmSpec) bool { + switch _this.Get_().(type) { + case EncryptionAlgorithmSpec_SYMMETRIC__DEFAULT: + { + _, ok := other.Get_().(EncryptionAlgorithmSpec_SYMMETRIC__DEFAULT) + return ok + } + case EncryptionAlgorithmSpec_RSAES__OAEP__SHA__1: + { + _, ok := other.Get_().(EncryptionAlgorithmSpec_RSAES__OAEP__SHA__1) + return ok + } + case EncryptionAlgorithmSpec_RSAES__OAEP__SHA__256: + { + _, ok := other.Get_().(EncryptionAlgorithmSpec_RSAES__OAEP__SHA__256) + return ok + } + default: + { + return false // unexpected + } + } +} + +func (_this EncryptionAlgorithmSpec) EqualsGeneric(other interface{}) bool { + typed, ok := other.(EncryptionAlgorithmSpec) + return ok && _this.Equals(typed) +} + +func Type_EncryptionAlgorithmSpec_() _dafny.TypeDescriptor { + return type_EncryptionAlgorithmSpec_{} +} + +type type_EncryptionAlgorithmSpec_ struct { +} + +func (_this type_EncryptionAlgorithmSpec_) Default() interface{} { + return Companion_EncryptionAlgorithmSpec_.Default() +} + +func (_this type_EncryptionAlgorithmSpec_) String() string { + return "ComAmazonawsKmsTypes.EncryptionAlgorithmSpec" +} +func (_this EncryptionAlgorithmSpec) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = EncryptionAlgorithmSpec{} + +// End of datatype EncryptionAlgorithmSpec + +// Definition of datatype EncryptRequest +type EncryptRequest struct { + Data_EncryptRequest_ +} + +func (_this EncryptRequest) Get_() Data_EncryptRequest_ { + return _this.Data_EncryptRequest_ +} + +type Data_EncryptRequest_ interface { + isEncryptRequest() +} + +type CompanionStruct_EncryptRequest_ struct { +} + +var Companion_EncryptRequest_ = CompanionStruct_EncryptRequest_{} + +type EncryptRequest_EncryptRequest struct { + KeyId _dafny.Sequence + Plaintext _dafny.Sequence + EncryptionContext m_Wrappers.Option + GrantTokens m_Wrappers.Option + EncryptionAlgorithm m_Wrappers.Option + DryRun m_Wrappers.Option +} + +func (EncryptRequest_EncryptRequest) isEncryptRequest() {} + +func (CompanionStruct_EncryptRequest_) Create_EncryptRequest_(KeyId _dafny.Sequence, Plaintext _dafny.Sequence, EncryptionContext m_Wrappers.Option, GrantTokens m_Wrappers.Option, EncryptionAlgorithm m_Wrappers.Option, DryRun m_Wrappers.Option) EncryptRequest { + return EncryptRequest{EncryptRequest_EncryptRequest{KeyId, Plaintext, EncryptionContext, GrantTokens, EncryptionAlgorithm, DryRun}} +} + +func (_this EncryptRequest) Is_EncryptRequest() bool { + _, ok := _this.Get_().(EncryptRequest_EncryptRequest) + return ok +} + +func (CompanionStruct_EncryptRequest_) Default() EncryptRequest { + return Companion_EncryptRequest_.Create_EncryptRequest_(_dafny.EmptySeq.SetString(), _dafny.EmptySeq, m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this EncryptRequest) Dtor_KeyId() _dafny.Sequence { + return _this.Get_().(EncryptRequest_EncryptRequest).KeyId +} + +func (_this EncryptRequest) Dtor_Plaintext() _dafny.Sequence { + return _this.Get_().(EncryptRequest_EncryptRequest).Plaintext +} + +func (_this EncryptRequest) Dtor_EncryptionContext() m_Wrappers.Option { + return _this.Get_().(EncryptRequest_EncryptRequest).EncryptionContext +} + +func (_this EncryptRequest) Dtor_GrantTokens() m_Wrappers.Option { + return _this.Get_().(EncryptRequest_EncryptRequest).GrantTokens +} + +func (_this EncryptRequest) Dtor_EncryptionAlgorithm() m_Wrappers.Option { + return _this.Get_().(EncryptRequest_EncryptRequest).EncryptionAlgorithm +} + +func (_this EncryptRequest) Dtor_DryRun() m_Wrappers.Option { + return _this.Get_().(EncryptRequest_EncryptRequest).DryRun +} + +func (_this EncryptRequest) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case EncryptRequest_EncryptRequest: + { + return "ComAmazonawsKmsTypes.EncryptRequest.EncryptRequest" + "(" + _dafny.String(data.KeyId) + ", " + _dafny.String(data.Plaintext) + ", " + _dafny.String(data.EncryptionContext) + ", " + _dafny.String(data.GrantTokens) + ", " + _dafny.String(data.EncryptionAlgorithm) + ", " + _dafny.String(data.DryRun) + ")" + } + default: + { + return "" + } + } +} + +func (_this EncryptRequest) Equals(other EncryptRequest) bool { + switch data1 := _this.Get_().(type) { + case EncryptRequest_EncryptRequest: + { + data2, ok := other.Get_().(EncryptRequest_EncryptRequest) + return ok && data1.KeyId.Equals(data2.KeyId) && data1.Plaintext.Equals(data2.Plaintext) && data1.EncryptionContext.Equals(data2.EncryptionContext) && data1.GrantTokens.Equals(data2.GrantTokens) && data1.EncryptionAlgorithm.Equals(data2.EncryptionAlgorithm) && data1.DryRun.Equals(data2.DryRun) + } + default: + { + return false // unexpected + } + } +} + +func (_this EncryptRequest) EqualsGeneric(other interface{}) bool { + typed, ok := other.(EncryptRequest) + return ok && _this.Equals(typed) +} + +func Type_EncryptRequest_() _dafny.TypeDescriptor { + return type_EncryptRequest_{} +} + +type type_EncryptRequest_ struct { +} + +func (_this type_EncryptRequest_) Default() interface{} { + return Companion_EncryptRequest_.Default() +} + +func (_this type_EncryptRequest_) String() string { + return "ComAmazonawsKmsTypes.EncryptRequest" +} +func (_this EncryptRequest) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = EncryptRequest{} + +// End of datatype EncryptRequest + +// Definition of datatype EncryptResponse +type EncryptResponse struct { + Data_EncryptResponse_ +} + +func (_this EncryptResponse) Get_() Data_EncryptResponse_ { + return _this.Data_EncryptResponse_ +} + +type Data_EncryptResponse_ interface { + isEncryptResponse() +} + +type CompanionStruct_EncryptResponse_ struct { +} + +var Companion_EncryptResponse_ = CompanionStruct_EncryptResponse_{} + +type EncryptResponse_EncryptResponse struct { + CiphertextBlob m_Wrappers.Option + KeyId m_Wrappers.Option + EncryptionAlgorithm m_Wrappers.Option +} + +func (EncryptResponse_EncryptResponse) isEncryptResponse() {} + +func (CompanionStruct_EncryptResponse_) Create_EncryptResponse_(CiphertextBlob m_Wrappers.Option, KeyId m_Wrappers.Option, EncryptionAlgorithm m_Wrappers.Option) EncryptResponse { + return EncryptResponse{EncryptResponse_EncryptResponse{CiphertextBlob, KeyId, EncryptionAlgorithm}} +} + +func (_this EncryptResponse) Is_EncryptResponse() bool { + _, ok := _this.Get_().(EncryptResponse_EncryptResponse) + return ok +} + +func (CompanionStruct_EncryptResponse_) Default() EncryptResponse { + return Companion_EncryptResponse_.Create_EncryptResponse_(m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this EncryptResponse) Dtor_CiphertextBlob() m_Wrappers.Option { + return _this.Get_().(EncryptResponse_EncryptResponse).CiphertextBlob +} + +func (_this EncryptResponse) Dtor_KeyId() m_Wrappers.Option { + return _this.Get_().(EncryptResponse_EncryptResponse).KeyId +} + +func (_this EncryptResponse) Dtor_EncryptionAlgorithm() m_Wrappers.Option { + return _this.Get_().(EncryptResponse_EncryptResponse).EncryptionAlgorithm +} + +func (_this EncryptResponse) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case EncryptResponse_EncryptResponse: + { + return "ComAmazonawsKmsTypes.EncryptResponse.EncryptResponse" + "(" + _dafny.String(data.CiphertextBlob) + ", " + _dafny.String(data.KeyId) + ", " + _dafny.String(data.EncryptionAlgorithm) + ")" + } + default: + { + return "" + } + } +} + +func (_this EncryptResponse) Equals(other EncryptResponse) bool { + switch data1 := _this.Get_().(type) { + case EncryptResponse_EncryptResponse: + { + data2, ok := other.Get_().(EncryptResponse_EncryptResponse) + return ok && data1.CiphertextBlob.Equals(data2.CiphertextBlob) && data1.KeyId.Equals(data2.KeyId) && data1.EncryptionAlgorithm.Equals(data2.EncryptionAlgorithm) + } + default: + { + return false // unexpected + } + } +} + +func (_this EncryptResponse) EqualsGeneric(other interface{}) bool { + typed, ok := other.(EncryptResponse) + return ok && _this.Equals(typed) +} + +func Type_EncryptResponse_() _dafny.TypeDescriptor { + return type_EncryptResponse_{} +} + +type type_EncryptResponse_ struct { +} + +func (_this type_EncryptResponse_) Default() interface{} { + return Companion_EncryptResponse_.Default() +} + +func (_this type_EncryptResponse_) String() string { + return "ComAmazonawsKmsTypes.EncryptResponse" +} +func (_this EncryptResponse) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = EncryptResponse{} + +// End of datatype EncryptResponse + +// Definition of datatype ExpirationModelType +type ExpirationModelType struct { + Data_ExpirationModelType_ +} + +func (_this ExpirationModelType) Get_() Data_ExpirationModelType_ { + return _this.Data_ExpirationModelType_ +} + +type Data_ExpirationModelType_ interface { + isExpirationModelType() +} + +type CompanionStruct_ExpirationModelType_ struct { +} + +var Companion_ExpirationModelType_ = CompanionStruct_ExpirationModelType_{} + +type ExpirationModelType_KEY__MATERIAL__EXPIRES struct { +} + +func (ExpirationModelType_KEY__MATERIAL__EXPIRES) isExpirationModelType() {} + +func (CompanionStruct_ExpirationModelType_) Create_KEY__MATERIAL__EXPIRES_() ExpirationModelType { + return ExpirationModelType{ExpirationModelType_KEY__MATERIAL__EXPIRES{}} +} + +func (_this ExpirationModelType) Is_KEY__MATERIAL__EXPIRES() bool { + _, ok := _this.Get_().(ExpirationModelType_KEY__MATERIAL__EXPIRES) + return ok +} + +type ExpirationModelType_KEY__MATERIAL__DOES__NOT__EXPIRE struct { +} + +func (ExpirationModelType_KEY__MATERIAL__DOES__NOT__EXPIRE) isExpirationModelType() {} + +func (CompanionStruct_ExpirationModelType_) Create_KEY__MATERIAL__DOES__NOT__EXPIRE_() ExpirationModelType { + return ExpirationModelType{ExpirationModelType_KEY__MATERIAL__DOES__NOT__EXPIRE{}} +} + +func (_this ExpirationModelType) Is_KEY__MATERIAL__DOES__NOT__EXPIRE() bool { + _, ok := _this.Get_().(ExpirationModelType_KEY__MATERIAL__DOES__NOT__EXPIRE) + return ok +} + +func (CompanionStruct_ExpirationModelType_) Default() ExpirationModelType { + return Companion_ExpirationModelType_.Create_KEY__MATERIAL__EXPIRES_() +} + +func (_ CompanionStruct_ExpirationModelType_) AllSingletonConstructors() _dafny.Iterator { + i := -1 + return func() (interface{}, bool) { + i++ + switch i { + case 0: + return Companion_ExpirationModelType_.Create_KEY__MATERIAL__EXPIRES_(), true + case 1: + return Companion_ExpirationModelType_.Create_KEY__MATERIAL__DOES__NOT__EXPIRE_(), true + default: + return ExpirationModelType{}, false + } + } +} + +func (_this ExpirationModelType) String() string { + switch _this.Get_().(type) { + case nil: + return "null" + case ExpirationModelType_KEY__MATERIAL__EXPIRES: + { + return "ComAmazonawsKmsTypes.ExpirationModelType.KEY_MATERIAL_EXPIRES" + } + case ExpirationModelType_KEY__MATERIAL__DOES__NOT__EXPIRE: + { + return "ComAmazonawsKmsTypes.ExpirationModelType.KEY_MATERIAL_DOES_NOT_EXPIRE" + } + default: + { + return "" + } + } +} + +func (_this ExpirationModelType) Equals(other ExpirationModelType) bool { + switch _this.Get_().(type) { + case ExpirationModelType_KEY__MATERIAL__EXPIRES: + { + _, ok := other.Get_().(ExpirationModelType_KEY__MATERIAL__EXPIRES) + return ok + } + case ExpirationModelType_KEY__MATERIAL__DOES__NOT__EXPIRE: + { + _, ok := other.Get_().(ExpirationModelType_KEY__MATERIAL__DOES__NOT__EXPIRE) + return ok + } + default: + { + return false // unexpected + } + } +} + +func (_this ExpirationModelType) EqualsGeneric(other interface{}) bool { + typed, ok := other.(ExpirationModelType) + return ok && _this.Equals(typed) +} + +func Type_ExpirationModelType_() _dafny.TypeDescriptor { + return type_ExpirationModelType_{} +} + +type type_ExpirationModelType_ struct { +} + +func (_this type_ExpirationModelType_) Default() interface{} { + return Companion_ExpirationModelType_.Default() +} + +func (_this type_ExpirationModelType_) String() string { + return "ComAmazonawsKmsTypes.ExpirationModelType" +} +func (_this ExpirationModelType) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = ExpirationModelType{} + +// End of datatype ExpirationModelType + +// Definition of datatype GenerateDataKeyPairRequest +type GenerateDataKeyPairRequest struct { + Data_GenerateDataKeyPairRequest_ +} + +func (_this GenerateDataKeyPairRequest) Get_() Data_GenerateDataKeyPairRequest_ { + return _this.Data_GenerateDataKeyPairRequest_ +} + +type Data_GenerateDataKeyPairRequest_ interface { + isGenerateDataKeyPairRequest() +} + +type CompanionStruct_GenerateDataKeyPairRequest_ struct { +} + +var Companion_GenerateDataKeyPairRequest_ = CompanionStruct_GenerateDataKeyPairRequest_{} + +type GenerateDataKeyPairRequest_GenerateDataKeyPairRequest struct { + EncryptionContext m_Wrappers.Option + KeyId _dafny.Sequence + KeyPairSpec DataKeyPairSpec + GrantTokens m_Wrappers.Option + Recipient m_Wrappers.Option + DryRun m_Wrappers.Option +} + +func (GenerateDataKeyPairRequest_GenerateDataKeyPairRequest) isGenerateDataKeyPairRequest() {} + +func (CompanionStruct_GenerateDataKeyPairRequest_) Create_GenerateDataKeyPairRequest_(EncryptionContext m_Wrappers.Option, KeyId _dafny.Sequence, KeyPairSpec DataKeyPairSpec, GrantTokens m_Wrappers.Option, Recipient m_Wrappers.Option, DryRun m_Wrappers.Option) GenerateDataKeyPairRequest { + return GenerateDataKeyPairRequest{GenerateDataKeyPairRequest_GenerateDataKeyPairRequest{EncryptionContext, KeyId, KeyPairSpec, GrantTokens, Recipient, DryRun}} +} + +func (_this GenerateDataKeyPairRequest) Is_GenerateDataKeyPairRequest() bool { + _, ok := _this.Get_().(GenerateDataKeyPairRequest_GenerateDataKeyPairRequest) + return ok +} + +func (CompanionStruct_GenerateDataKeyPairRequest_) Default() GenerateDataKeyPairRequest { + return Companion_GenerateDataKeyPairRequest_.Create_GenerateDataKeyPairRequest_(m_Wrappers.Companion_Option_.Default(), _dafny.EmptySeq.SetString(), Companion_DataKeyPairSpec_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this GenerateDataKeyPairRequest) Dtor_EncryptionContext() m_Wrappers.Option { + return _this.Get_().(GenerateDataKeyPairRequest_GenerateDataKeyPairRequest).EncryptionContext +} + +func (_this GenerateDataKeyPairRequest) Dtor_KeyId() _dafny.Sequence { + return _this.Get_().(GenerateDataKeyPairRequest_GenerateDataKeyPairRequest).KeyId +} + +func (_this GenerateDataKeyPairRequest) Dtor_KeyPairSpec() DataKeyPairSpec { + return _this.Get_().(GenerateDataKeyPairRequest_GenerateDataKeyPairRequest).KeyPairSpec +} + +func (_this GenerateDataKeyPairRequest) Dtor_GrantTokens() m_Wrappers.Option { + return _this.Get_().(GenerateDataKeyPairRequest_GenerateDataKeyPairRequest).GrantTokens +} + +func (_this GenerateDataKeyPairRequest) Dtor_Recipient() m_Wrappers.Option { + return _this.Get_().(GenerateDataKeyPairRequest_GenerateDataKeyPairRequest).Recipient +} + +func (_this GenerateDataKeyPairRequest) Dtor_DryRun() m_Wrappers.Option { + return _this.Get_().(GenerateDataKeyPairRequest_GenerateDataKeyPairRequest).DryRun +} + +func (_this GenerateDataKeyPairRequest) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case GenerateDataKeyPairRequest_GenerateDataKeyPairRequest: + { + return "ComAmazonawsKmsTypes.GenerateDataKeyPairRequest.GenerateDataKeyPairRequest" + "(" + _dafny.String(data.EncryptionContext) + ", " + _dafny.String(data.KeyId) + ", " + _dafny.String(data.KeyPairSpec) + ", " + _dafny.String(data.GrantTokens) + ", " + _dafny.String(data.Recipient) + ", " + _dafny.String(data.DryRun) + ")" + } + default: + { + return "" + } + } +} + +func (_this GenerateDataKeyPairRequest) Equals(other GenerateDataKeyPairRequest) bool { + switch data1 := _this.Get_().(type) { + case GenerateDataKeyPairRequest_GenerateDataKeyPairRequest: + { + data2, ok := other.Get_().(GenerateDataKeyPairRequest_GenerateDataKeyPairRequest) + return ok && data1.EncryptionContext.Equals(data2.EncryptionContext) && data1.KeyId.Equals(data2.KeyId) && data1.KeyPairSpec.Equals(data2.KeyPairSpec) && data1.GrantTokens.Equals(data2.GrantTokens) && data1.Recipient.Equals(data2.Recipient) && data1.DryRun.Equals(data2.DryRun) + } + default: + { + return false // unexpected + } + } +} + +func (_this GenerateDataKeyPairRequest) EqualsGeneric(other interface{}) bool { + typed, ok := other.(GenerateDataKeyPairRequest) + return ok && _this.Equals(typed) +} + +func Type_GenerateDataKeyPairRequest_() _dafny.TypeDescriptor { + return type_GenerateDataKeyPairRequest_{} +} + +type type_GenerateDataKeyPairRequest_ struct { +} + +func (_this type_GenerateDataKeyPairRequest_) Default() interface{} { + return Companion_GenerateDataKeyPairRequest_.Default() +} + +func (_this type_GenerateDataKeyPairRequest_) String() string { + return "ComAmazonawsKmsTypes.GenerateDataKeyPairRequest" +} +func (_this GenerateDataKeyPairRequest) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = GenerateDataKeyPairRequest{} + +// End of datatype GenerateDataKeyPairRequest + +// Definition of datatype GenerateDataKeyPairResponse +type GenerateDataKeyPairResponse struct { + Data_GenerateDataKeyPairResponse_ +} + +func (_this GenerateDataKeyPairResponse) Get_() Data_GenerateDataKeyPairResponse_ { + return _this.Data_GenerateDataKeyPairResponse_ +} + +type Data_GenerateDataKeyPairResponse_ interface { + isGenerateDataKeyPairResponse() +} + +type CompanionStruct_GenerateDataKeyPairResponse_ struct { +} + +var Companion_GenerateDataKeyPairResponse_ = CompanionStruct_GenerateDataKeyPairResponse_{} + +type GenerateDataKeyPairResponse_GenerateDataKeyPairResponse struct { + PrivateKeyCiphertextBlob m_Wrappers.Option + PrivateKeyPlaintext m_Wrappers.Option + PublicKey m_Wrappers.Option + KeyId m_Wrappers.Option + KeyPairSpec m_Wrappers.Option + CiphertextForRecipient m_Wrappers.Option +} + +func (GenerateDataKeyPairResponse_GenerateDataKeyPairResponse) isGenerateDataKeyPairResponse() {} + +func (CompanionStruct_GenerateDataKeyPairResponse_) Create_GenerateDataKeyPairResponse_(PrivateKeyCiphertextBlob m_Wrappers.Option, PrivateKeyPlaintext m_Wrappers.Option, PublicKey m_Wrappers.Option, KeyId m_Wrappers.Option, KeyPairSpec m_Wrappers.Option, CiphertextForRecipient m_Wrappers.Option) GenerateDataKeyPairResponse { + return GenerateDataKeyPairResponse{GenerateDataKeyPairResponse_GenerateDataKeyPairResponse{PrivateKeyCiphertextBlob, PrivateKeyPlaintext, PublicKey, KeyId, KeyPairSpec, CiphertextForRecipient}} +} + +func (_this GenerateDataKeyPairResponse) Is_GenerateDataKeyPairResponse() bool { + _, ok := _this.Get_().(GenerateDataKeyPairResponse_GenerateDataKeyPairResponse) + return ok +} + +func (CompanionStruct_GenerateDataKeyPairResponse_) Default() GenerateDataKeyPairResponse { + return Companion_GenerateDataKeyPairResponse_.Create_GenerateDataKeyPairResponse_(m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this GenerateDataKeyPairResponse) Dtor_PrivateKeyCiphertextBlob() m_Wrappers.Option { + return _this.Get_().(GenerateDataKeyPairResponse_GenerateDataKeyPairResponse).PrivateKeyCiphertextBlob +} + +func (_this GenerateDataKeyPairResponse) Dtor_PrivateKeyPlaintext() m_Wrappers.Option { + return _this.Get_().(GenerateDataKeyPairResponse_GenerateDataKeyPairResponse).PrivateKeyPlaintext +} + +func (_this GenerateDataKeyPairResponse) Dtor_PublicKey() m_Wrappers.Option { + return _this.Get_().(GenerateDataKeyPairResponse_GenerateDataKeyPairResponse).PublicKey +} + +func (_this GenerateDataKeyPairResponse) Dtor_KeyId() m_Wrappers.Option { + return _this.Get_().(GenerateDataKeyPairResponse_GenerateDataKeyPairResponse).KeyId +} + +func (_this GenerateDataKeyPairResponse) Dtor_KeyPairSpec() m_Wrappers.Option { + return _this.Get_().(GenerateDataKeyPairResponse_GenerateDataKeyPairResponse).KeyPairSpec +} + +func (_this GenerateDataKeyPairResponse) Dtor_CiphertextForRecipient() m_Wrappers.Option { + return _this.Get_().(GenerateDataKeyPairResponse_GenerateDataKeyPairResponse).CiphertextForRecipient +} + +func (_this GenerateDataKeyPairResponse) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case GenerateDataKeyPairResponse_GenerateDataKeyPairResponse: + { + return "ComAmazonawsKmsTypes.GenerateDataKeyPairResponse.GenerateDataKeyPairResponse" + "(" + _dafny.String(data.PrivateKeyCiphertextBlob) + ", " + _dafny.String(data.PrivateKeyPlaintext) + ", " + _dafny.String(data.PublicKey) + ", " + _dafny.String(data.KeyId) + ", " + _dafny.String(data.KeyPairSpec) + ", " + _dafny.String(data.CiphertextForRecipient) + ")" + } + default: + { + return "" + } + } +} + +func (_this GenerateDataKeyPairResponse) Equals(other GenerateDataKeyPairResponse) bool { + switch data1 := _this.Get_().(type) { + case GenerateDataKeyPairResponse_GenerateDataKeyPairResponse: + { + data2, ok := other.Get_().(GenerateDataKeyPairResponse_GenerateDataKeyPairResponse) + return ok && data1.PrivateKeyCiphertextBlob.Equals(data2.PrivateKeyCiphertextBlob) && data1.PrivateKeyPlaintext.Equals(data2.PrivateKeyPlaintext) && data1.PublicKey.Equals(data2.PublicKey) && data1.KeyId.Equals(data2.KeyId) && data1.KeyPairSpec.Equals(data2.KeyPairSpec) && data1.CiphertextForRecipient.Equals(data2.CiphertextForRecipient) + } + default: + { + return false // unexpected + } + } +} + +func (_this GenerateDataKeyPairResponse) EqualsGeneric(other interface{}) bool { + typed, ok := other.(GenerateDataKeyPairResponse) + return ok && _this.Equals(typed) +} + +func Type_GenerateDataKeyPairResponse_() _dafny.TypeDescriptor { + return type_GenerateDataKeyPairResponse_{} +} + +type type_GenerateDataKeyPairResponse_ struct { +} + +func (_this type_GenerateDataKeyPairResponse_) Default() interface{} { + return Companion_GenerateDataKeyPairResponse_.Default() +} + +func (_this type_GenerateDataKeyPairResponse_) String() string { + return "ComAmazonawsKmsTypes.GenerateDataKeyPairResponse" +} +func (_this GenerateDataKeyPairResponse) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = GenerateDataKeyPairResponse{} + +// End of datatype GenerateDataKeyPairResponse + +// Definition of datatype GenerateDataKeyPairWithoutPlaintextRequest +type GenerateDataKeyPairWithoutPlaintextRequest struct { + Data_GenerateDataKeyPairWithoutPlaintextRequest_ +} + +func (_this GenerateDataKeyPairWithoutPlaintextRequest) Get_() Data_GenerateDataKeyPairWithoutPlaintextRequest_ { + return _this.Data_GenerateDataKeyPairWithoutPlaintextRequest_ +} + +type Data_GenerateDataKeyPairWithoutPlaintextRequest_ interface { + isGenerateDataKeyPairWithoutPlaintextRequest() +} + +type CompanionStruct_GenerateDataKeyPairWithoutPlaintextRequest_ struct { +} + +var Companion_GenerateDataKeyPairWithoutPlaintextRequest_ = CompanionStruct_GenerateDataKeyPairWithoutPlaintextRequest_{} + +type GenerateDataKeyPairWithoutPlaintextRequest_GenerateDataKeyPairWithoutPlaintextRequest struct { + EncryptionContext m_Wrappers.Option + KeyId _dafny.Sequence + KeyPairSpec DataKeyPairSpec + GrantTokens m_Wrappers.Option + DryRun m_Wrappers.Option +} + +func (GenerateDataKeyPairWithoutPlaintextRequest_GenerateDataKeyPairWithoutPlaintextRequest) isGenerateDataKeyPairWithoutPlaintextRequest() { +} + +func (CompanionStruct_GenerateDataKeyPairWithoutPlaintextRequest_) Create_GenerateDataKeyPairWithoutPlaintextRequest_(EncryptionContext m_Wrappers.Option, KeyId _dafny.Sequence, KeyPairSpec DataKeyPairSpec, GrantTokens m_Wrappers.Option, DryRun m_Wrappers.Option) GenerateDataKeyPairWithoutPlaintextRequest { + return GenerateDataKeyPairWithoutPlaintextRequest{GenerateDataKeyPairWithoutPlaintextRequest_GenerateDataKeyPairWithoutPlaintextRequest{EncryptionContext, KeyId, KeyPairSpec, GrantTokens, DryRun}} +} + +func (_this GenerateDataKeyPairWithoutPlaintextRequest) Is_GenerateDataKeyPairWithoutPlaintextRequest() bool { + _, ok := _this.Get_().(GenerateDataKeyPairWithoutPlaintextRequest_GenerateDataKeyPairWithoutPlaintextRequest) + return ok +} + +func (CompanionStruct_GenerateDataKeyPairWithoutPlaintextRequest_) Default() GenerateDataKeyPairWithoutPlaintextRequest { + return Companion_GenerateDataKeyPairWithoutPlaintextRequest_.Create_GenerateDataKeyPairWithoutPlaintextRequest_(m_Wrappers.Companion_Option_.Default(), _dafny.EmptySeq.SetString(), Companion_DataKeyPairSpec_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this GenerateDataKeyPairWithoutPlaintextRequest) Dtor_EncryptionContext() m_Wrappers.Option { + return _this.Get_().(GenerateDataKeyPairWithoutPlaintextRequest_GenerateDataKeyPairWithoutPlaintextRequest).EncryptionContext +} + +func (_this GenerateDataKeyPairWithoutPlaintextRequest) Dtor_KeyId() _dafny.Sequence { + return _this.Get_().(GenerateDataKeyPairWithoutPlaintextRequest_GenerateDataKeyPairWithoutPlaintextRequest).KeyId +} + +func (_this GenerateDataKeyPairWithoutPlaintextRequest) Dtor_KeyPairSpec() DataKeyPairSpec { + return _this.Get_().(GenerateDataKeyPairWithoutPlaintextRequest_GenerateDataKeyPairWithoutPlaintextRequest).KeyPairSpec +} + +func (_this GenerateDataKeyPairWithoutPlaintextRequest) Dtor_GrantTokens() m_Wrappers.Option { + return _this.Get_().(GenerateDataKeyPairWithoutPlaintextRequest_GenerateDataKeyPairWithoutPlaintextRequest).GrantTokens +} + +func (_this GenerateDataKeyPairWithoutPlaintextRequest) Dtor_DryRun() m_Wrappers.Option { + return _this.Get_().(GenerateDataKeyPairWithoutPlaintextRequest_GenerateDataKeyPairWithoutPlaintextRequest).DryRun +} + +func (_this GenerateDataKeyPairWithoutPlaintextRequest) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case GenerateDataKeyPairWithoutPlaintextRequest_GenerateDataKeyPairWithoutPlaintextRequest: + { + return "ComAmazonawsKmsTypes.GenerateDataKeyPairWithoutPlaintextRequest.GenerateDataKeyPairWithoutPlaintextRequest" + "(" + _dafny.String(data.EncryptionContext) + ", " + _dafny.String(data.KeyId) + ", " + _dafny.String(data.KeyPairSpec) + ", " + _dafny.String(data.GrantTokens) + ", " + _dafny.String(data.DryRun) + ")" + } + default: + { + return "" + } + } +} + +func (_this GenerateDataKeyPairWithoutPlaintextRequest) Equals(other GenerateDataKeyPairWithoutPlaintextRequest) bool { + switch data1 := _this.Get_().(type) { + case GenerateDataKeyPairWithoutPlaintextRequest_GenerateDataKeyPairWithoutPlaintextRequest: + { + data2, ok := other.Get_().(GenerateDataKeyPairWithoutPlaintextRequest_GenerateDataKeyPairWithoutPlaintextRequest) + return ok && data1.EncryptionContext.Equals(data2.EncryptionContext) && data1.KeyId.Equals(data2.KeyId) && data1.KeyPairSpec.Equals(data2.KeyPairSpec) && data1.GrantTokens.Equals(data2.GrantTokens) && data1.DryRun.Equals(data2.DryRun) + } + default: + { + return false // unexpected + } + } +} + +func (_this GenerateDataKeyPairWithoutPlaintextRequest) EqualsGeneric(other interface{}) bool { + typed, ok := other.(GenerateDataKeyPairWithoutPlaintextRequest) + return ok && _this.Equals(typed) +} + +func Type_GenerateDataKeyPairWithoutPlaintextRequest_() _dafny.TypeDescriptor { + return type_GenerateDataKeyPairWithoutPlaintextRequest_{} +} + +type type_GenerateDataKeyPairWithoutPlaintextRequest_ struct { +} + +func (_this type_GenerateDataKeyPairWithoutPlaintextRequest_) Default() interface{} { + return Companion_GenerateDataKeyPairWithoutPlaintextRequest_.Default() +} + +func (_this type_GenerateDataKeyPairWithoutPlaintextRequest_) String() string { + return "ComAmazonawsKmsTypes.GenerateDataKeyPairWithoutPlaintextRequest" +} +func (_this GenerateDataKeyPairWithoutPlaintextRequest) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = GenerateDataKeyPairWithoutPlaintextRequest{} + +// End of datatype GenerateDataKeyPairWithoutPlaintextRequest + +// Definition of datatype GenerateDataKeyPairWithoutPlaintextResponse +type GenerateDataKeyPairWithoutPlaintextResponse struct { + Data_GenerateDataKeyPairWithoutPlaintextResponse_ +} + +func (_this GenerateDataKeyPairWithoutPlaintextResponse) Get_() Data_GenerateDataKeyPairWithoutPlaintextResponse_ { + return _this.Data_GenerateDataKeyPairWithoutPlaintextResponse_ +} + +type Data_GenerateDataKeyPairWithoutPlaintextResponse_ interface { + isGenerateDataKeyPairWithoutPlaintextResponse() +} + +type CompanionStruct_GenerateDataKeyPairWithoutPlaintextResponse_ struct { +} + +var Companion_GenerateDataKeyPairWithoutPlaintextResponse_ = CompanionStruct_GenerateDataKeyPairWithoutPlaintextResponse_{} + +type GenerateDataKeyPairWithoutPlaintextResponse_GenerateDataKeyPairWithoutPlaintextResponse struct { + PrivateKeyCiphertextBlob m_Wrappers.Option + PublicKey m_Wrappers.Option + KeyId m_Wrappers.Option + KeyPairSpec m_Wrappers.Option +} + +func (GenerateDataKeyPairWithoutPlaintextResponse_GenerateDataKeyPairWithoutPlaintextResponse) isGenerateDataKeyPairWithoutPlaintextResponse() { +} + +func (CompanionStruct_GenerateDataKeyPairWithoutPlaintextResponse_) Create_GenerateDataKeyPairWithoutPlaintextResponse_(PrivateKeyCiphertextBlob m_Wrappers.Option, PublicKey m_Wrappers.Option, KeyId m_Wrappers.Option, KeyPairSpec m_Wrappers.Option) GenerateDataKeyPairWithoutPlaintextResponse { + return GenerateDataKeyPairWithoutPlaintextResponse{GenerateDataKeyPairWithoutPlaintextResponse_GenerateDataKeyPairWithoutPlaintextResponse{PrivateKeyCiphertextBlob, PublicKey, KeyId, KeyPairSpec}} +} + +func (_this GenerateDataKeyPairWithoutPlaintextResponse) Is_GenerateDataKeyPairWithoutPlaintextResponse() bool { + _, ok := _this.Get_().(GenerateDataKeyPairWithoutPlaintextResponse_GenerateDataKeyPairWithoutPlaintextResponse) + return ok +} + +func (CompanionStruct_GenerateDataKeyPairWithoutPlaintextResponse_) Default() GenerateDataKeyPairWithoutPlaintextResponse { + return Companion_GenerateDataKeyPairWithoutPlaintextResponse_.Create_GenerateDataKeyPairWithoutPlaintextResponse_(m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this GenerateDataKeyPairWithoutPlaintextResponse) Dtor_PrivateKeyCiphertextBlob() m_Wrappers.Option { + return _this.Get_().(GenerateDataKeyPairWithoutPlaintextResponse_GenerateDataKeyPairWithoutPlaintextResponse).PrivateKeyCiphertextBlob +} + +func (_this GenerateDataKeyPairWithoutPlaintextResponse) Dtor_PublicKey() m_Wrappers.Option { + return _this.Get_().(GenerateDataKeyPairWithoutPlaintextResponse_GenerateDataKeyPairWithoutPlaintextResponse).PublicKey +} + +func (_this GenerateDataKeyPairWithoutPlaintextResponse) Dtor_KeyId() m_Wrappers.Option { + return _this.Get_().(GenerateDataKeyPairWithoutPlaintextResponse_GenerateDataKeyPairWithoutPlaintextResponse).KeyId +} + +func (_this GenerateDataKeyPairWithoutPlaintextResponse) Dtor_KeyPairSpec() m_Wrappers.Option { + return _this.Get_().(GenerateDataKeyPairWithoutPlaintextResponse_GenerateDataKeyPairWithoutPlaintextResponse).KeyPairSpec +} + +func (_this GenerateDataKeyPairWithoutPlaintextResponse) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case GenerateDataKeyPairWithoutPlaintextResponse_GenerateDataKeyPairWithoutPlaintextResponse: + { + return "ComAmazonawsKmsTypes.GenerateDataKeyPairWithoutPlaintextResponse.GenerateDataKeyPairWithoutPlaintextResponse" + "(" + _dafny.String(data.PrivateKeyCiphertextBlob) + ", " + _dafny.String(data.PublicKey) + ", " + _dafny.String(data.KeyId) + ", " + _dafny.String(data.KeyPairSpec) + ")" + } + default: + { + return "" + } + } +} + +func (_this GenerateDataKeyPairWithoutPlaintextResponse) Equals(other GenerateDataKeyPairWithoutPlaintextResponse) bool { + switch data1 := _this.Get_().(type) { + case GenerateDataKeyPairWithoutPlaintextResponse_GenerateDataKeyPairWithoutPlaintextResponse: + { + data2, ok := other.Get_().(GenerateDataKeyPairWithoutPlaintextResponse_GenerateDataKeyPairWithoutPlaintextResponse) + return ok && data1.PrivateKeyCiphertextBlob.Equals(data2.PrivateKeyCiphertextBlob) && data1.PublicKey.Equals(data2.PublicKey) && data1.KeyId.Equals(data2.KeyId) && data1.KeyPairSpec.Equals(data2.KeyPairSpec) + } + default: + { + return false // unexpected + } + } +} + +func (_this GenerateDataKeyPairWithoutPlaintextResponse) EqualsGeneric(other interface{}) bool { + typed, ok := other.(GenerateDataKeyPairWithoutPlaintextResponse) + return ok && _this.Equals(typed) +} + +func Type_GenerateDataKeyPairWithoutPlaintextResponse_() _dafny.TypeDescriptor { + return type_GenerateDataKeyPairWithoutPlaintextResponse_{} +} + +type type_GenerateDataKeyPairWithoutPlaintextResponse_ struct { +} + +func (_this type_GenerateDataKeyPairWithoutPlaintextResponse_) Default() interface{} { + return Companion_GenerateDataKeyPairWithoutPlaintextResponse_.Default() +} + +func (_this type_GenerateDataKeyPairWithoutPlaintextResponse_) String() string { + return "ComAmazonawsKmsTypes.GenerateDataKeyPairWithoutPlaintextResponse" +} +func (_this GenerateDataKeyPairWithoutPlaintextResponse) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = GenerateDataKeyPairWithoutPlaintextResponse{} + +// End of datatype GenerateDataKeyPairWithoutPlaintextResponse + +// Definition of datatype GenerateDataKeyRequest +type GenerateDataKeyRequest struct { + Data_GenerateDataKeyRequest_ +} + +func (_this GenerateDataKeyRequest) Get_() Data_GenerateDataKeyRequest_ { + return _this.Data_GenerateDataKeyRequest_ +} + +type Data_GenerateDataKeyRequest_ interface { + isGenerateDataKeyRequest() +} + +type CompanionStruct_GenerateDataKeyRequest_ struct { +} + +var Companion_GenerateDataKeyRequest_ = CompanionStruct_GenerateDataKeyRequest_{} + +type GenerateDataKeyRequest_GenerateDataKeyRequest struct { + KeyId _dafny.Sequence + EncryptionContext m_Wrappers.Option + NumberOfBytes m_Wrappers.Option + KeySpec m_Wrappers.Option + GrantTokens m_Wrappers.Option + Recipient m_Wrappers.Option + DryRun m_Wrappers.Option +} + +func (GenerateDataKeyRequest_GenerateDataKeyRequest) isGenerateDataKeyRequest() {} + +func (CompanionStruct_GenerateDataKeyRequest_) Create_GenerateDataKeyRequest_(KeyId _dafny.Sequence, EncryptionContext m_Wrappers.Option, NumberOfBytes m_Wrappers.Option, KeySpec m_Wrappers.Option, GrantTokens m_Wrappers.Option, Recipient m_Wrappers.Option, DryRun m_Wrappers.Option) GenerateDataKeyRequest { + return GenerateDataKeyRequest{GenerateDataKeyRequest_GenerateDataKeyRequest{KeyId, EncryptionContext, NumberOfBytes, KeySpec, GrantTokens, Recipient, DryRun}} +} + +func (_this GenerateDataKeyRequest) Is_GenerateDataKeyRequest() bool { + _, ok := _this.Get_().(GenerateDataKeyRequest_GenerateDataKeyRequest) + return ok +} + +func (CompanionStruct_GenerateDataKeyRequest_) Default() GenerateDataKeyRequest { + return Companion_GenerateDataKeyRequest_.Create_GenerateDataKeyRequest_(_dafny.EmptySeq.SetString(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this GenerateDataKeyRequest) Dtor_KeyId() _dafny.Sequence { + return _this.Get_().(GenerateDataKeyRequest_GenerateDataKeyRequest).KeyId +} + +func (_this GenerateDataKeyRequest) Dtor_EncryptionContext() m_Wrappers.Option { + return _this.Get_().(GenerateDataKeyRequest_GenerateDataKeyRequest).EncryptionContext +} + +func (_this GenerateDataKeyRequest) Dtor_NumberOfBytes() m_Wrappers.Option { + return _this.Get_().(GenerateDataKeyRequest_GenerateDataKeyRequest).NumberOfBytes +} + +func (_this GenerateDataKeyRequest) Dtor_KeySpec() m_Wrappers.Option { + return _this.Get_().(GenerateDataKeyRequest_GenerateDataKeyRequest).KeySpec +} + +func (_this GenerateDataKeyRequest) Dtor_GrantTokens() m_Wrappers.Option { + return _this.Get_().(GenerateDataKeyRequest_GenerateDataKeyRequest).GrantTokens +} + +func (_this GenerateDataKeyRequest) Dtor_Recipient() m_Wrappers.Option { + return _this.Get_().(GenerateDataKeyRequest_GenerateDataKeyRequest).Recipient +} + +func (_this GenerateDataKeyRequest) Dtor_DryRun() m_Wrappers.Option { + return _this.Get_().(GenerateDataKeyRequest_GenerateDataKeyRequest).DryRun +} + +func (_this GenerateDataKeyRequest) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case GenerateDataKeyRequest_GenerateDataKeyRequest: + { + return "ComAmazonawsKmsTypes.GenerateDataKeyRequest.GenerateDataKeyRequest" + "(" + _dafny.String(data.KeyId) + ", " + _dafny.String(data.EncryptionContext) + ", " + _dafny.String(data.NumberOfBytes) + ", " + _dafny.String(data.KeySpec) + ", " + _dafny.String(data.GrantTokens) + ", " + _dafny.String(data.Recipient) + ", " + _dafny.String(data.DryRun) + ")" + } + default: + { + return "" + } + } +} + +func (_this GenerateDataKeyRequest) Equals(other GenerateDataKeyRequest) bool { + switch data1 := _this.Get_().(type) { + case GenerateDataKeyRequest_GenerateDataKeyRequest: + { + data2, ok := other.Get_().(GenerateDataKeyRequest_GenerateDataKeyRequest) + return ok && data1.KeyId.Equals(data2.KeyId) && data1.EncryptionContext.Equals(data2.EncryptionContext) && data1.NumberOfBytes.Equals(data2.NumberOfBytes) && data1.KeySpec.Equals(data2.KeySpec) && data1.GrantTokens.Equals(data2.GrantTokens) && data1.Recipient.Equals(data2.Recipient) && data1.DryRun.Equals(data2.DryRun) + } + default: + { + return false // unexpected + } + } +} + +func (_this GenerateDataKeyRequest) EqualsGeneric(other interface{}) bool { + typed, ok := other.(GenerateDataKeyRequest) + return ok && _this.Equals(typed) +} + +func Type_GenerateDataKeyRequest_() _dafny.TypeDescriptor { + return type_GenerateDataKeyRequest_{} +} + +type type_GenerateDataKeyRequest_ struct { +} + +func (_this type_GenerateDataKeyRequest_) Default() interface{} { + return Companion_GenerateDataKeyRequest_.Default() +} + +func (_this type_GenerateDataKeyRequest_) String() string { + return "ComAmazonawsKmsTypes.GenerateDataKeyRequest" +} +func (_this GenerateDataKeyRequest) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = GenerateDataKeyRequest{} + +// End of datatype GenerateDataKeyRequest + +// Definition of datatype GenerateDataKeyResponse +type GenerateDataKeyResponse struct { + Data_GenerateDataKeyResponse_ +} + +func (_this GenerateDataKeyResponse) Get_() Data_GenerateDataKeyResponse_ { + return _this.Data_GenerateDataKeyResponse_ +} + +type Data_GenerateDataKeyResponse_ interface { + isGenerateDataKeyResponse() +} + +type CompanionStruct_GenerateDataKeyResponse_ struct { +} + +var Companion_GenerateDataKeyResponse_ = CompanionStruct_GenerateDataKeyResponse_{} + +type GenerateDataKeyResponse_GenerateDataKeyResponse struct { + CiphertextBlob m_Wrappers.Option + Plaintext m_Wrappers.Option + KeyId m_Wrappers.Option + CiphertextForRecipient m_Wrappers.Option +} + +func (GenerateDataKeyResponse_GenerateDataKeyResponse) isGenerateDataKeyResponse() {} + +func (CompanionStruct_GenerateDataKeyResponse_) Create_GenerateDataKeyResponse_(CiphertextBlob m_Wrappers.Option, Plaintext m_Wrappers.Option, KeyId m_Wrappers.Option, CiphertextForRecipient m_Wrappers.Option) GenerateDataKeyResponse { + return GenerateDataKeyResponse{GenerateDataKeyResponse_GenerateDataKeyResponse{CiphertextBlob, Plaintext, KeyId, CiphertextForRecipient}} +} + +func (_this GenerateDataKeyResponse) Is_GenerateDataKeyResponse() bool { + _, ok := _this.Get_().(GenerateDataKeyResponse_GenerateDataKeyResponse) + return ok +} + +func (CompanionStruct_GenerateDataKeyResponse_) Default() GenerateDataKeyResponse { + return Companion_GenerateDataKeyResponse_.Create_GenerateDataKeyResponse_(m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this GenerateDataKeyResponse) Dtor_CiphertextBlob() m_Wrappers.Option { + return _this.Get_().(GenerateDataKeyResponse_GenerateDataKeyResponse).CiphertextBlob +} + +func (_this GenerateDataKeyResponse) Dtor_Plaintext() m_Wrappers.Option { + return _this.Get_().(GenerateDataKeyResponse_GenerateDataKeyResponse).Plaintext +} + +func (_this GenerateDataKeyResponse) Dtor_KeyId() m_Wrappers.Option { + return _this.Get_().(GenerateDataKeyResponse_GenerateDataKeyResponse).KeyId +} + +func (_this GenerateDataKeyResponse) Dtor_CiphertextForRecipient() m_Wrappers.Option { + return _this.Get_().(GenerateDataKeyResponse_GenerateDataKeyResponse).CiphertextForRecipient +} + +func (_this GenerateDataKeyResponse) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case GenerateDataKeyResponse_GenerateDataKeyResponse: + { + return "ComAmazonawsKmsTypes.GenerateDataKeyResponse.GenerateDataKeyResponse" + "(" + _dafny.String(data.CiphertextBlob) + ", " + _dafny.String(data.Plaintext) + ", " + _dafny.String(data.KeyId) + ", " + _dafny.String(data.CiphertextForRecipient) + ")" + } + default: + { + return "" + } + } +} + +func (_this GenerateDataKeyResponse) Equals(other GenerateDataKeyResponse) bool { + switch data1 := _this.Get_().(type) { + case GenerateDataKeyResponse_GenerateDataKeyResponse: + { + data2, ok := other.Get_().(GenerateDataKeyResponse_GenerateDataKeyResponse) + return ok && data1.CiphertextBlob.Equals(data2.CiphertextBlob) && data1.Plaintext.Equals(data2.Plaintext) && data1.KeyId.Equals(data2.KeyId) && data1.CiphertextForRecipient.Equals(data2.CiphertextForRecipient) + } + default: + { + return false // unexpected + } + } +} + +func (_this GenerateDataKeyResponse) EqualsGeneric(other interface{}) bool { + typed, ok := other.(GenerateDataKeyResponse) + return ok && _this.Equals(typed) +} + +func Type_GenerateDataKeyResponse_() _dafny.TypeDescriptor { + return type_GenerateDataKeyResponse_{} +} + +type type_GenerateDataKeyResponse_ struct { +} + +func (_this type_GenerateDataKeyResponse_) Default() interface{} { + return Companion_GenerateDataKeyResponse_.Default() +} + +func (_this type_GenerateDataKeyResponse_) String() string { + return "ComAmazonawsKmsTypes.GenerateDataKeyResponse" +} +func (_this GenerateDataKeyResponse) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = GenerateDataKeyResponse{} + +// End of datatype GenerateDataKeyResponse + +// Definition of datatype GenerateDataKeyWithoutPlaintextRequest +type GenerateDataKeyWithoutPlaintextRequest struct { + Data_GenerateDataKeyWithoutPlaintextRequest_ +} + +func (_this GenerateDataKeyWithoutPlaintextRequest) Get_() Data_GenerateDataKeyWithoutPlaintextRequest_ { + return _this.Data_GenerateDataKeyWithoutPlaintextRequest_ +} + +type Data_GenerateDataKeyWithoutPlaintextRequest_ interface { + isGenerateDataKeyWithoutPlaintextRequest() +} + +type CompanionStruct_GenerateDataKeyWithoutPlaintextRequest_ struct { +} + +var Companion_GenerateDataKeyWithoutPlaintextRequest_ = CompanionStruct_GenerateDataKeyWithoutPlaintextRequest_{} + +type GenerateDataKeyWithoutPlaintextRequest_GenerateDataKeyWithoutPlaintextRequest struct { + KeyId _dafny.Sequence + EncryptionContext m_Wrappers.Option + KeySpec m_Wrappers.Option + NumberOfBytes m_Wrappers.Option + GrantTokens m_Wrappers.Option + DryRun m_Wrappers.Option +} + +func (GenerateDataKeyWithoutPlaintextRequest_GenerateDataKeyWithoutPlaintextRequest) isGenerateDataKeyWithoutPlaintextRequest() { +} + +func (CompanionStruct_GenerateDataKeyWithoutPlaintextRequest_) Create_GenerateDataKeyWithoutPlaintextRequest_(KeyId _dafny.Sequence, EncryptionContext m_Wrappers.Option, KeySpec m_Wrappers.Option, NumberOfBytes m_Wrappers.Option, GrantTokens m_Wrappers.Option, DryRun m_Wrappers.Option) GenerateDataKeyWithoutPlaintextRequest { + return GenerateDataKeyWithoutPlaintextRequest{GenerateDataKeyWithoutPlaintextRequest_GenerateDataKeyWithoutPlaintextRequest{KeyId, EncryptionContext, KeySpec, NumberOfBytes, GrantTokens, DryRun}} +} + +func (_this GenerateDataKeyWithoutPlaintextRequest) Is_GenerateDataKeyWithoutPlaintextRequest() bool { + _, ok := _this.Get_().(GenerateDataKeyWithoutPlaintextRequest_GenerateDataKeyWithoutPlaintextRequest) + return ok +} + +func (CompanionStruct_GenerateDataKeyWithoutPlaintextRequest_) Default() GenerateDataKeyWithoutPlaintextRequest { + return Companion_GenerateDataKeyWithoutPlaintextRequest_.Create_GenerateDataKeyWithoutPlaintextRequest_(_dafny.EmptySeq.SetString(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this GenerateDataKeyWithoutPlaintextRequest) Dtor_KeyId() _dafny.Sequence { + return _this.Get_().(GenerateDataKeyWithoutPlaintextRequest_GenerateDataKeyWithoutPlaintextRequest).KeyId +} + +func (_this GenerateDataKeyWithoutPlaintextRequest) Dtor_EncryptionContext() m_Wrappers.Option { + return _this.Get_().(GenerateDataKeyWithoutPlaintextRequest_GenerateDataKeyWithoutPlaintextRequest).EncryptionContext +} + +func (_this GenerateDataKeyWithoutPlaintextRequest) Dtor_KeySpec() m_Wrappers.Option { + return _this.Get_().(GenerateDataKeyWithoutPlaintextRequest_GenerateDataKeyWithoutPlaintextRequest).KeySpec +} + +func (_this GenerateDataKeyWithoutPlaintextRequest) Dtor_NumberOfBytes() m_Wrappers.Option { + return _this.Get_().(GenerateDataKeyWithoutPlaintextRequest_GenerateDataKeyWithoutPlaintextRequest).NumberOfBytes +} + +func (_this GenerateDataKeyWithoutPlaintextRequest) Dtor_GrantTokens() m_Wrappers.Option { + return _this.Get_().(GenerateDataKeyWithoutPlaintextRequest_GenerateDataKeyWithoutPlaintextRequest).GrantTokens +} + +func (_this GenerateDataKeyWithoutPlaintextRequest) Dtor_DryRun() m_Wrappers.Option { + return _this.Get_().(GenerateDataKeyWithoutPlaintextRequest_GenerateDataKeyWithoutPlaintextRequest).DryRun +} + +func (_this GenerateDataKeyWithoutPlaintextRequest) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case GenerateDataKeyWithoutPlaintextRequest_GenerateDataKeyWithoutPlaintextRequest: + { + return "ComAmazonawsKmsTypes.GenerateDataKeyWithoutPlaintextRequest.GenerateDataKeyWithoutPlaintextRequest" + "(" + _dafny.String(data.KeyId) + ", " + _dafny.String(data.EncryptionContext) + ", " + _dafny.String(data.KeySpec) + ", " + _dafny.String(data.NumberOfBytes) + ", " + _dafny.String(data.GrantTokens) + ", " + _dafny.String(data.DryRun) + ")" + } + default: + { + return "" + } + } +} + +func (_this GenerateDataKeyWithoutPlaintextRequest) Equals(other GenerateDataKeyWithoutPlaintextRequest) bool { + switch data1 := _this.Get_().(type) { + case GenerateDataKeyWithoutPlaintextRequest_GenerateDataKeyWithoutPlaintextRequest: + { + data2, ok := other.Get_().(GenerateDataKeyWithoutPlaintextRequest_GenerateDataKeyWithoutPlaintextRequest) + return ok && data1.KeyId.Equals(data2.KeyId) && data1.EncryptionContext.Equals(data2.EncryptionContext) && data1.KeySpec.Equals(data2.KeySpec) && data1.NumberOfBytes.Equals(data2.NumberOfBytes) && data1.GrantTokens.Equals(data2.GrantTokens) && data1.DryRun.Equals(data2.DryRun) + } + default: + { + return false // unexpected + } + } +} + +func (_this GenerateDataKeyWithoutPlaintextRequest) EqualsGeneric(other interface{}) bool { + typed, ok := other.(GenerateDataKeyWithoutPlaintextRequest) + return ok && _this.Equals(typed) +} + +func Type_GenerateDataKeyWithoutPlaintextRequest_() _dafny.TypeDescriptor { + return type_GenerateDataKeyWithoutPlaintextRequest_{} +} + +type type_GenerateDataKeyWithoutPlaintextRequest_ struct { +} + +func (_this type_GenerateDataKeyWithoutPlaintextRequest_) Default() interface{} { + return Companion_GenerateDataKeyWithoutPlaintextRequest_.Default() +} + +func (_this type_GenerateDataKeyWithoutPlaintextRequest_) String() string { + return "ComAmazonawsKmsTypes.GenerateDataKeyWithoutPlaintextRequest" +} +func (_this GenerateDataKeyWithoutPlaintextRequest) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = GenerateDataKeyWithoutPlaintextRequest{} + +// End of datatype GenerateDataKeyWithoutPlaintextRequest + +// Definition of datatype GenerateDataKeyWithoutPlaintextResponse +type GenerateDataKeyWithoutPlaintextResponse struct { + Data_GenerateDataKeyWithoutPlaintextResponse_ +} + +func (_this GenerateDataKeyWithoutPlaintextResponse) Get_() Data_GenerateDataKeyWithoutPlaintextResponse_ { + return _this.Data_GenerateDataKeyWithoutPlaintextResponse_ +} + +type Data_GenerateDataKeyWithoutPlaintextResponse_ interface { + isGenerateDataKeyWithoutPlaintextResponse() +} + +type CompanionStruct_GenerateDataKeyWithoutPlaintextResponse_ struct { +} + +var Companion_GenerateDataKeyWithoutPlaintextResponse_ = CompanionStruct_GenerateDataKeyWithoutPlaintextResponse_{} + +type GenerateDataKeyWithoutPlaintextResponse_GenerateDataKeyWithoutPlaintextResponse struct { + CiphertextBlob m_Wrappers.Option + KeyId m_Wrappers.Option +} + +func (GenerateDataKeyWithoutPlaintextResponse_GenerateDataKeyWithoutPlaintextResponse) isGenerateDataKeyWithoutPlaintextResponse() { +} + +func (CompanionStruct_GenerateDataKeyWithoutPlaintextResponse_) Create_GenerateDataKeyWithoutPlaintextResponse_(CiphertextBlob m_Wrappers.Option, KeyId m_Wrappers.Option) GenerateDataKeyWithoutPlaintextResponse { + return GenerateDataKeyWithoutPlaintextResponse{GenerateDataKeyWithoutPlaintextResponse_GenerateDataKeyWithoutPlaintextResponse{CiphertextBlob, KeyId}} +} + +func (_this GenerateDataKeyWithoutPlaintextResponse) Is_GenerateDataKeyWithoutPlaintextResponse() bool { + _, ok := _this.Get_().(GenerateDataKeyWithoutPlaintextResponse_GenerateDataKeyWithoutPlaintextResponse) + return ok +} + +func (CompanionStruct_GenerateDataKeyWithoutPlaintextResponse_) Default() GenerateDataKeyWithoutPlaintextResponse { + return Companion_GenerateDataKeyWithoutPlaintextResponse_.Create_GenerateDataKeyWithoutPlaintextResponse_(m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this GenerateDataKeyWithoutPlaintextResponse) Dtor_CiphertextBlob() m_Wrappers.Option { + return _this.Get_().(GenerateDataKeyWithoutPlaintextResponse_GenerateDataKeyWithoutPlaintextResponse).CiphertextBlob +} + +func (_this GenerateDataKeyWithoutPlaintextResponse) Dtor_KeyId() m_Wrappers.Option { + return _this.Get_().(GenerateDataKeyWithoutPlaintextResponse_GenerateDataKeyWithoutPlaintextResponse).KeyId +} + +func (_this GenerateDataKeyWithoutPlaintextResponse) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case GenerateDataKeyWithoutPlaintextResponse_GenerateDataKeyWithoutPlaintextResponse: + { + return "ComAmazonawsKmsTypes.GenerateDataKeyWithoutPlaintextResponse.GenerateDataKeyWithoutPlaintextResponse" + "(" + _dafny.String(data.CiphertextBlob) + ", " + _dafny.String(data.KeyId) + ")" + } + default: + { + return "" + } + } +} + +func (_this GenerateDataKeyWithoutPlaintextResponse) Equals(other GenerateDataKeyWithoutPlaintextResponse) bool { + switch data1 := _this.Get_().(type) { + case GenerateDataKeyWithoutPlaintextResponse_GenerateDataKeyWithoutPlaintextResponse: + { + data2, ok := other.Get_().(GenerateDataKeyWithoutPlaintextResponse_GenerateDataKeyWithoutPlaintextResponse) + return ok && data1.CiphertextBlob.Equals(data2.CiphertextBlob) && data1.KeyId.Equals(data2.KeyId) + } + default: + { + return false // unexpected + } + } +} + +func (_this GenerateDataKeyWithoutPlaintextResponse) EqualsGeneric(other interface{}) bool { + typed, ok := other.(GenerateDataKeyWithoutPlaintextResponse) + return ok && _this.Equals(typed) +} + +func Type_GenerateDataKeyWithoutPlaintextResponse_() _dafny.TypeDescriptor { + return type_GenerateDataKeyWithoutPlaintextResponse_{} +} + +type type_GenerateDataKeyWithoutPlaintextResponse_ struct { +} + +func (_this type_GenerateDataKeyWithoutPlaintextResponse_) Default() interface{} { + return Companion_GenerateDataKeyWithoutPlaintextResponse_.Default() +} + +func (_this type_GenerateDataKeyWithoutPlaintextResponse_) String() string { + return "ComAmazonawsKmsTypes.GenerateDataKeyWithoutPlaintextResponse" +} +func (_this GenerateDataKeyWithoutPlaintextResponse) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = GenerateDataKeyWithoutPlaintextResponse{} + +// End of datatype GenerateDataKeyWithoutPlaintextResponse + +// Definition of datatype GenerateMacRequest +type GenerateMacRequest struct { + Data_GenerateMacRequest_ +} + +func (_this GenerateMacRequest) Get_() Data_GenerateMacRequest_ { + return _this.Data_GenerateMacRequest_ +} + +type Data_GenerateMacRequest_ interface { + isGenerateMacRequest() +} + +type CompanionStruct_GenerateMacRequest_ struct { +} + +var Companion_GenerateMacRequest_ = CompanionStruct_GenerateMacRequest_{} + +type GenerateMacRequest_GenerateMacRequest struct { + Message _dafny.Sequence + KeyId _dafny.Sequence + MacAlgorithm MacAlgorithmSpec + GrantTokens m_Wrappers.Option + DryRun m_Wrappers.Option +} + +func (GenerateMacRequest_GenerateMacRequest) isGenerateMacRequest() {} + +func (CompanionStruct_GenerateMacRequest_) Create_GenerateMacRequest_(Message _dafny.Sequence, KeyId _dafny.Sequence, MacAlgorithm MacAlgorithmSpec, GrantTokens m_Wrappers.Option, DryRun m_Wrappers.Option) GenerateMacRequest { + return GenerateMacRequest{GenerateMacRequest_GenerateMacRequest{Message, KeyId, MacAlgorithm, GrantTokens, DryRun}} +} + +func (_this GenerateMacRequest) Is_GenerateMacRequest() bool { + _, ok := _this.Get_().(GenerateMacRequest_GenerateMacRequest) + return ok +} + +func (CompanionStruct_GenerateMacRequest_) Default() GenerateMacRequest { + return Companion_GenerateMacRequest_.Create_GenerateMacRequest_(_dafny.EmptySeq, _dafny.EmptySeq.SetString(), Companion_MacAlgorithmSpec_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this GenerateMacRequest) Dtor_Message() _dafny.Sequence { + return _this.Get_().(GenerateMacRequest_GenerateMacRequest).Message +} + +func (_this GenerateMacRequest) Dtor_KeyId() _dafny.Sequence { + return _this.Get_().(GenerateMacRequest_GenerateMacRequest).KeyId +} + +func (_this GenerateMacRequest) Dtor_MacAlgorithm() MacAlgorithmSpec { + return _this.Get_().(GenerateMacRequest_GenerateMacRequest).MacAlgorithm +} + +func (_this GenerateMacRequest) Dtor_GrantTokens() m_Wrappers.Option { + return _this.Get_().(GenerateMacRequest_GenerateMacRequest).GrantTokens +} + +func (_this GenerateMacRequest) Dtor_DryRun() m_Wrappers.Option { + return _this.Get_().(GenerateMacRequest_GenerateMacRequest).DryRun +} + +func (_this GenerateMacRequest) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case GenerateMacRequest_GenerateMacRequest: + { + return "ComAmazonawsKmsTypes.GenerateMacRequest.GenerateMacRequest" + "(" + _dafny.String(data.Message) + ", " + _dafny.String(data.KeyId) + ", " + _dafny.String(data.MacAlgorithm) + ", " + _dafny.String(data.GrantTokens) + ", " + _dafny.String(data.DryRun) + ")" + } + default: + { + return "" + } + } +} + +func (_this GenerateMacRequest) Equals(other GenerateMacRequest) bool { + switch data1 := _this.Get_().(type) { + case GenerateMacRequest_GenerateMacRequest: + { + data2, ok := other.Get_().(GenerateMacRequest_GenerateMacRequest) + return ok && data1.Message.Equals(data2.Message) && data1.KeyId.Equals(data2.KeyId) && data1.MacAlgorithm.Equals(data2.MacAlgorithm) && data1.GrantTokens.Equals(data2.GrantTokens) && data1.DryRun.Equals(data2.DryRun) + } + default: + { + return false // unexpected + } + } +} + +func (_this GenerateMacRequest) EqualsGeneric(other interface{}) bool { + typed, ok := other.(GenerateMacRequest) + return ok && _this.Equals(typed) +} + +func Type_GenerateMacRequest_() _dafny.TypeDescriptor { + return type_GenerateMacRequest_{} +} + +type type_GenerateMacRequest_ struct { +} + +func (_this type_GenerateMacRequest_) Default() interface{} { + return Companion_GenerateMacRequest_.Default() +} + +func (_this type_GenerateMacRequest_) String() string { + return "ComAmazonawsKmsTypes.GenerateMacRequest" +} +func (_this GenerateMacRequest) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = GenerateMacRequest{} + +// End of datatype GenerateMacRequest + +// Definition of datatype GenerateMacResponse +type GenerateMacResponse struct { + Data_GenerateMacResponse_ +} + +func (_this GenerateMacResponse) Get_() Data_GenerateMacResponse_ { + return _this.Data_GenerateMacResponse_ +} + +type Data_GenerateMacResponse_ interface { + isGenerateMacResponse() +} + +type CompanionStruct_GenerateMacResponse_ struct { +} + +var Companion_GenerateMacResponse_ = CompanionStruct_GenerateMacResponse_{} + +type GenerateMacResponse_GenerateMacResponse struct { + Mac m_Wrappers.Option + MacAlgorithm m_Wrappers.Option + KeyId m_Wrappers.Option +} + +func (GenerateMacResponse_GenerateMacResponse) isGenerateMacResponse() {} + +func (CompanionStruct_GenerateMacResponse_) Create_GenerateMacResponse_(Mac m_Wrappers.Option, MacAlgorithm m_Wrappers.Option, KeyId m_Wrappers.Option) GenerateMacResponse { + return GenerateMacResponse{GenerateMacResponse_GenerateMacResponse{Mac, MacAlgorithm, KeyId}} +} + +func (_this GenerateMacResponse) Is_GenerateMacResponse() bool { + _, ok := _this.Get_().(GenerateMacResponse_GenerateMacResponse) + return ok +} + +func (CompanionStruct_GenerateMacResponse_) Default() GenerateMacResponse { + return Companion_GenerateMacResponse_.Create_GenerateMacResponse_(m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this GenerateMacResponse) Dtor_Mac() m_Wrappers.Option { + return _this.Get_().(GenerateMacResponse_GenerateMacResponse).Mac +} + +func (_this GenerateMacResponse) Dtor_MacAlgorithm() m_Wrappers.Option { + return _this.Get_().(GenerateMacResponse_GenerateMacResponse).MacAlgorithm +} + +func (_this GenerateMacResponse) Dtor_KeyId() m_Wrappers.Option { + return _this.Get_().(GenerateMacResponse_GenerateMacResponse).KeyId +} + +func (_this GenerateMacResponse) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case GenerateMacResponse_GenerateMacResponse: + { + return "ComAmazonawsKmsTypes.GenerateMacResponse.GenerateMacResponse" + "(" + _dafny.String(data.Mac) + ", " + _dafny.String(data.MacAlgorithm) + ", " + _dafny.String(data.KeyId) + ")" + } + default: + { + return "" + } + } +} + +func (_this GenerateMacResponse) Equals(other GenerateMacResponse) bool { + switch data1 := _this.Get_().(type) { + case GenerateMacResponse_GenerateMacResponse: + { + data2, ok := other.Get_().(GenerateMacResponse_GenerateMacResponse) + return ok && data1.Mac.Equals(data2.Mac) && data1.MacAlgorithm.Equals(data2.MacAlgorithm) && data1.KeyId.Equals(data2.KeyId) + } + default: + { + return false // unexpected + } + } +} + +func (_this GenerateMacResponse) EqualsGeneric(other interface{}) bool { + typed, ok := other.(GenerateMacResponse) + return ok && _this.Equals(typed) +} + +func Type_GenerateMacResponse_() _dafny.TypeDescriptor { + return type_GenerateMacResponse_{} +} + +type type_GenerateMacResponse_ struct { +} + +func (_this type_GenerateMacResponse_) Default() interface{} { + return Companion_GenerateMacResponse_.Default() +} + +func (_this type_GenerateMacResponse_) String() string { + return "ComAmazonawsKmsTypes.GenerateMacResponse" +} +func (_this GenerateMacResponse) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = GenerateMacResponse{} + +// End of datatype GenerateMacResponse + +// Definition of datatype GenerateRandomRequest +type GenerateRandomRequest struct { + Data_GenerateRandomRequest_ +} + +func (_this GenerateRandomRequest) Get_() Data_GenerateRandomRequest_ { + return _this.Data_GenerateRandomRequest_ +} + +type Data_GenerateRandomRequest_ interface { + isGenerateRandomRequest() +} + +type CompanionStruct_GenerateRandomRequest_ struct { +} + +var Companion_GenerateRandomRequest_ = CompanionStruct_GenerateRandomRequest_{} + +type GenerateRandomRequest_GenerateRandomRequest struct { + NumberOfBytes m_Wrappers.Option + CustomKeyStoreId m_Wrappers.Option + Recipient m_Wrappers.Option +} + +func (GenerateRandomRequest_GenerateRandomRequest) isGenerateRandomRequest() {} + +func (CompanionStruct_GenerateRandomRequest_) Create_GenerateRandomRequest_(NumberOfBytes m_Wrappers.Option, CustomKeyStoreId m_Wrappers.Option, Recipient m_Wrappers.Option) GenerateRandomRequest { + return GenerateRandomRequest{GenerateRandomRequest_GenerateRandomRequest{NumberOfBytes, CustomKeyStoreId, Recipient}} +} + +func (_this GenerateRandomRequest) Is_GenerateRandomRequest() bool { + _, ok := _this.Get_().(GenerateRandomRequest_GenerateRandomRequest) + return ok +} + +func (CompanionStruct_GenerateRandomRequest_) Default() GenerateRandomRequest { + return Companion_GenerateRandomRequest_.Create_GenerateRandomRequest_(m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this GenerateRandomRequest) Dtor_NumberOfBytes() m_Wrappers.Option { + return _this.Get_().(GenerateRandomRequest_GenerateRandomRequest).NumberOfBytes +} + +func (_this GenerateRandomRequest) Dtor_CustomKeyStoreId() m_Wrappers.Option { + return _this.Get_().(GenerateRandomRequest_GenerateRandomRequest).CustomKeyStoreId +} + +func (_this GenerateRandomRequest) Dtor_Recipient() m_Wrappers.Option { + return _this.Get_().(GenerateRandomRequest_GenerateRandomRequest).Recipient +} + +func (_this GenerateRandomRequest) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case GenerateRandomRequest_GenerateRandomRequest: + { + return "ComAmazonawsKmsTypes.GenerateRandomRequest.GenerateRandomRequest" + "(" + _dafny.String(data.NumberOfBytes) + ", " + _dafny.String(data.CustomKeyStoreId) + ", " + _dafny.String(data.Recipient) + ")" + } + default: + { + return "" + } + } +} + +func (_this GenerateRandomRequest) Equals(other GenerateRandomRequest) bool { + switch data1 := _this.Get_().(type) { + case GenerateRandomRequest_GenerateRandomRequest: + { + data2, ok := other.Get_().(GenerateRandomRequest_GenerateRandomRequest) + return ok && data1.NumberOfBytes.Equals(data2.NumberOfBytes) && data1.CustomKeyStoreId.Equals(data2.CustomKeyStoreId) && data1.Recipient.Equals(data2.Recipient) + } + default: + { + return false // unexpected + } + } +} + +func (_this GenerateRandomRequest) EqualsGeneric(other interface{}) bool { + typed, ok := other.(GenerateRandomRequest) + return ok && _this.Equals(typed) +} + +func Type_GenerateRandomRequest_() _dafny.TypeDescriptor { + return type_GenerateRandomRequest_{} +} + +type type_GenerateRandomRequest_ struct { +} + +func (_this type_GenerateRandomRequest_) Default() interface{} { + return Companion_GenerateRandomRequest_.Default() +} + +func (_this type_GenerateRandomRequest_) String() string { + return "ComAmazonawsKmsTypes.GenerateRandomRequest" +} +func (_this GenerateRandomRequest) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = GenerateRandomRequest{} + +// End of datatype GenerateRandomRequest + +// Definition of datatype GenerateRandomResponse +type GenerateRandomResponse struct { + Data_GenerateRandomResponse_ +} + +func (_this GenerateRandomResponse) Get_() Data_GenerateRandomResponse_ { + return _this.Data_GenerateRandomResponse_ +} + +type Data_GenerateRandomResponse_ interface { + isGenerateRandomResponse() +} + +type CompanionStruct_GenerateRandomResponse_ struct { +} + +var Companion_GenerateRandomResponse_ = CompanionStruct_GenerateRandomResponse_{} + +type GenerateRandomResponse_GenerateRandomResponse struct { + Plaintext m_Wrappers.Option + CiphertextForRecipient m_Wrappers.Option +} + +func (GenerateRandomResponse_GenerateRandomResponse) isGenerateRandomResponse() {} + +func (CompanionStruct_GenerateRandomResponse_) Create_GenerateRandomResponse_(Plaintext m_Wrappers.Option, CiphertextForRecipient m_Wrappers.Option) GenerateRandomResponse { + return GenerateRandomResponse{GenerateRandomResponse_GenerateRandomResponse{Plaintext, CiphertextForRecipient}} +} + +func (_this GenerateRandomResponse) Is_GenerateRandomResponse() bool { + _, ok := _this.Get_().(GenerateRandomResponse_GenerateRandomResponse) + return ok +} + +func (CompanionStruct_GenerateRandomResponse_) Default() GenerateRandomResponse { + return Companion_GenerateRandomResponse_.Create_GenerateRandomResponse_(m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this GenerateRandomResponse) Dtor_Plaintext() m_Wrappers.Option { + return _this.Get_().(GenerateRandomResponse_GenerateRandomResponse).Plaintext +} + +func (_this GenerateRandomResponse) Dtor_CiphertextForRecipient() m_Wrappers.Option { + return _this.Get_().(GenerateRandomResponse_GenerateRandomResponse).CiphertextForRecipient +} + +func (_this GenerateRandomResponse) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case GenerateRandomResponse_GenerateRandomResponse: + { + return "ComAmazonawsKmsTypes.GenerateRandomResponse.GenerateRandomResponse" + "(" + _dafny.String(data.Plaintext) + ", " + _dafny.String(data.CiphertextForRecipient) + ")" + } + default: + { + return "" + } + } +} + +func (_this GenerateRandomResponse) Equals(other GenerateRandomResponse) bool { + switch data1 := _this.Get_().(type) { + case GenerateRandomResponse_GenerateRandomResponse: + { + data2, ok := other.Get_().(GenerateRandomResponse_GenerateRandomResponse) + return ok && data1.Plaintext.Equals(data2.Plaintext) && data1.CiphertextForRecipient.Equals(data2.CiphertextForRecipient) + } + default: + { + return false // unexpected + } + } +} + +func (_this GenerateRandomResponse) EqualsGeneric(other interface{}) bool { + typed, ok := other.(GenerateRandomResponse) + return ok && _this.Equals(typed) +} + +func Type_GenerateRandomResponse_() _dafny.TypeDescriptor { + return type_GenerateRandomResponse_{} +} + +type type_GenerateRandomResponse_ struct { +} + +func (_this type_GenerateRandomResponse_) Default() interface{} { + return Companion_GenerateRandomResponse_.Default() +} + +func (_this type_GenerateRandomResponse_) String() string { + return "ComAmazonawsKmsTypes.GenerateRandomResponse" +} +func (_this GenerateRandomResponse) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = GenerateRandomResponse{} + +// End of datatype GenerateRandomResponse + +// Definition of datatype GetKeyPolicyRequest +type GetKeyPolicyRequest struct { + Data_GetKeyPolicyRequest_ +} + +func (_this GetKeyPolicyRequest) Get_() Data_GetKeyPolicyRequest_ { + return _this.Data_GetKeyPolicyRequest_ +} + +type Data_GetKeyPolicyRequest_ interface { + isGetKeyPolicyRequest() +} + +type CompanionStruct_GetKeyPolicyRequest_ struct { +} + +var Companion_GetKeyPolicyRequest_ = CompanionStruct_GetKeyPolicyRequest_{} + +type GetKeyPolicyRequest_GetKeyPolicyRequest struct { + KeyId _dafny.Sequence + PolicyName m_Wrappers.Option +} + +func (GetKeyPolicyRequest_GetKeyPolicyRequest) isGetKeyPolicyRequest() {} + +func (CompanionStruct_GetKeyPolicyRequest_) Create_GetKeyPolicyRequest_(KeyId _dafny.Sequence, PolicyName m_Wrappers.Option) GetKeyPolicyRequest { + return GetKeyPolicyRequest{GetKeyPolicyRequest_GetKeyPolicyRequest{KeyId, PolicyName}} +} + +func (_this GetKeyPolicyRequest) Is_GetKeyPolicyRequest() bool { + _, ok := _this.Get_().(GetKeyPolicyRequest_GetKeyPolicyRequest) + return ok +} + +func (CompanionStruct_GetKeyPolicyRequest_) Default() GetKeyPolicyRequest { + return Companion_GetKeyPolicyRequest_.Create_GetKeyPolicyRequest_(_dafny.EmptySeq.SetString(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this GetKeyPolicyRequest) Dtor_KeyId() _dafny.Sequence { + return _this.Get_().(GetKeyPolicyRequest_GetKeyPolicyRequest).KeyId +} + +func (_this GetKeyPolicyRequest) Dtor_PolicyName() m_Wrappers.Option { + return _this.Get_().(GetKeyPolicyRequest_GetKeyPolicyRequest).PolicyName +} + +func (_this GetKeyPolicyRequest) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case GetKeyPolicyRequest_GetKeyPolicyRequest: + { + return "ComAmazonawsKmsTypes.GetKeyPolicyRequest.GetKeyPolicyRequest" + "(" + _dafny.String(data.KeyId) + ", " + _dafny.String(data.PolicyName) + ")" + } + default: + { + return "" + } + } +} + +func (_this GetKeyPolicyRequest) Equals(other GetKeyPolicyRequest) bool { + switch data1 := _this.Get_().(type) { + case GetKeyPolicyRequest_GetKeyPolicyRequest: + { + data2, ok := other.Get_().(GetKeyPolicyRequest_GetKeyPolicyRequest) + return ok && data1.KeyId.Equals(data2.KeyId) && data1.PolicyName.Equals(data2.PolicyName) + } + default: + { + return false // unexpected + } + } +} + +func (_this GetKeyPolicyRequest) EqualsGeneric(other interface{}) bool { + typed, ok := other.(GetKeyPolicyRequest) + return ok && _this.Equals(typed) +} + +func Type_GetKeyPolicyRequest_() _dafny.TypeDescriptor { + return type_GetKeyPolicyRequest_{} +} + +type type_GetKeyPolicyRequest_ struct { +} + +func (_this type_GetKeyPolicyRequest_) Default() interface{} { + return Companion_GetKeyPolicyRequest_.Default() +} + +func (_this type_GetKeyPolicyRequest_) String() string { + return "ComAmazonawsKmsTypes.GetKeyPolicyRequest" +} +func (_this GetKeyPolicyRequest) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = GetKeyPolicyRequest{} + +// End of datatype GetKeyPolicyRequest + +// Definition of datatype GetKeyPolicyResponse +type GetKeyPolicyResponse struct { + Data_GetKeyPolicyResponse_ +} + +func (_this GetKeyPolicyResponse) Get_() Data_GetKeyPolicyResponse_ { + return _this.Data_GetKeyPolicyResponse_ +} + +type Data_GetKeyPolicyResponse_ interface { + isGetKeyPolicyResponse() +} + +type CompanionStruct_GetKeyPolicyResponse_ struct { +} + +var Companion_GetKeyPolicyResponse_ = CompanionStruct_GetKeyPolicyResponse_{} + +type GetKeyPolicyResponse_GetKeyPolicyResponse struct { + Policy m_Wrappers.Option + PolicyName m_Wrappers.Option +} + +func (GetKeyPolicyResponse_GetKeyPolicyResponse) isGetKeyPolicyResponse() {} + +func (CompanionStruct_GetKeyPolicyResponse_) Create_GetKeyPolicyResponse_(Policy m_Wrappers.Option, PolicyName m_Wrappers.Option) GetKeyPolicyResponse { + return GetKeyPolicyResponse{GetKeyPolicyResponse_GetKeyPolicyResponse{Policy, PolicyName}} +} + +func (_this GetKeyPolicyResponse) Is_GetKeyPolicyResponse() bool { + _, ok := _this.Get_().(GetKeyPolicyResponse_GetKeyPolicyResponse) + return ok +} + +func (CompanionStruct_GetKeyPolicyResponse_) Default() GetKeyPolicyResponse { + return Companion_GetKeyPolicyResponse_.Create_GetKeyPolicyResponse_(m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this GetKeyPolicyResponse) Dtor_Policy() m_Wrappers.Option { + return _this.Get_().(GetKeyPolicyResponse_GetKeyPolicyResponse).Policy +} + +func (_this GetKeyPolicyResponse) Dtor_PolicyName() m_Wrappers.Option { + return _this.Get_().(GetKeyPolicyResponse_GetKeyPolicyResponse).PolicyName +} + +func (_this GetKeyPolicyResponse) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case GetKeyPolicyResponse_GetKeyPolicyResponse: + { + return "ComAmazonawsKmsTypes.GetKeyPolicyResponse.GetKeyPolicyResponse" + "(" + _dafny.String(data.Policy) + ", " + _dafny.String(data.PolicyName) + ")" + } + default: + { + return "" + } + } +} + +func (_this GetKeyPolicyResponse) Equals(other GetKeyPolicyResponse) bool { + switch data1 := _this.Get_().(type) { + case GetKeyPolicyResponse_GetKeyPolicyResponse: + { + data2, ok := other.Get_().(GetKeyPolicyResponse_GetKeyPolicyResponse) + return ok && data1.Policy.Equals(data2.Policy) && data1.PolicyName.Equals(data2.PolicyName) + } + default: + { + return false // unexpected + } + } +} + +func (_this GetKeyPolicyResponse) EqualsGeneric(other interface{}) bool { + typed, ok := other.(GetKeyPolicyResponse) + return ok && _this.Equals(typed) +} + +func Type_GetKeyPolicyResponse_() _dafny.TypeDescriptor { + return type_GetKeyPolicyResponse_{} +} + +type type_GetKeyPolicyResponse_ struct { +} + +func (_this type_GetKeyPolicyResponse_) Default() interface{} { + return Companion_GetKeyPolicyResponse_.Default() +} + +func (_this type_GetKeyPolicyResponse_) String() string { + return "ComAmazonawsKmsTypes.GetKeyPolicyResponse" +} +func (_this GetKeyPolicyResponse) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = GetKeyPolicyResponse{} + +// End of datatype GetKeyPolicyResponse + +// Definition of datatype GetKeyRotationStatusRequest +type GetKeyRotationStatusRequest struct { + Data_GetKeyRotationStatusRequest_ +} + +func (_this GetKeyRotationStatusRequest) Get_() Data_GetKeyRotationStatusRequest_ { + return _this.Data_GetKeyRotationStatusRequest_ +} + +type Data_GetKeyRotationStatusRequest_ interface { + isGetKeyRotationStatusRequest() +} + +type CompanionStruct_GetKeyRotationStatusRequest_ struct { +} + +var Companion_GetKeyRotationStatusRequest_ = CompanionStruct_GetKeyRotationStatusRequest_{} + +type GetKeyRotationStatusRequest_GetKeyRotationStatusRequest struct { + KeyId _dafny.Sequence +} + +func (GetKeyRotationStatusRequest_GetKeyRotationStatusRequest) isGetKeyRotationStatusRequest() {} + +func (CompanionStruct_GetKeyRotationStatusRequest_) Create_GetKeyRotationStatusRequest_(KeyId _dafny.Sequence) GetKeyRotationStatusRequest { + return GetKeyRotationStatusRequest{GetKeyRotationStatusRequest_GetKeyRotationStatusRequest{KeyId}} +} + +func (_this GetKeyRotationStatusRequest) Is_GetKeyRotationStatusRequest() bool { + _, ok := _this.Get_().(GetKeyRotationStatusRequest_GetKeyRotationStatusRequest) + return ok +} + +func (CompanionStruct_GetKeyRotationStatusRequest_) Default() GetKeyRotationStatusRequest { + return Companion_GetKeyRotationStatusRequest_.Create_GetKeyRotationStatusRequest_(_dafny.EmptySeq.SetString()) +} + +func (_this GetKeyRotationStatusRequest) Dtor_KeyId() _dafny.Sequence { + return _this.Get_().(GetKeyRotationStatusRequest_GetKeyRotationStatusRequest).KeyId +} + +func (_this GetKeyRotationStatusRequest) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case GetKeyRotationStatusRequest_GetKeyRotationStatusRequest: + { + return "ComAmazonawsKmsTypes.GetKeyRotationStatusRequest.GetKeyRotationStatusRequest" + "(" + _dafny.String(data.KeyId) + ")" + } + default: + { + return "" + } + } +} + +func (_this GetKeyRotationStatusRequest) Equals(other GetKeyRotationStatusRequest) bool { + switch data1 := _this.Get_().(type) { + case GetKeyRotationStatusRequest_GetKeyRotationStatusRequest: + { + data2, ok := other.Get_().(GetKeyRotationStatusRequest_GetKeyRotationStatusRequest) + return ok && data1.KeyId.Equals(data2.KeyId) + } + default: + { + return false // unexpected + } + } +} + +func (_this GetKeyRotationStatusRequest) EqualsGeneric(other interface{}) bool { + typed, ok := other.(GetKeyRotationStatusRequest) + return ok && _this.Equals(typed) +} + +func Type_GetKeyRotationStatusRequest_() _dafny.TypeDescriptor { + return type_GetKeyRotationStatusRequest_{} +} + +type type_GetKeyRotationStatusRequest_ struct { +} + +func (_this type_GetKeyRotationStatusRequest_) Default() interface{} { + return Companion_GetKeyRotationStatusRequest_.Default() +} + +func (_this type_GetKeyRotationStatusRequest_) String() string { + return "ComAmazonawsKmsTypes.GetKeyRotationStatusRequest" +} +func (_this GetKeyRotationStatusRequest) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = GetKeyRotationStatusRequest{} + +// End of datatype GetKeyRotationStatusRequest + +// Definition of datatype GetKeyRotationStatusResponse +type GetKeyRotationStatusResponse struct { + Data_GetKeyRotationStatusResponse_ +} + +func (_this GetKeyRotationStatusResponse) Get_() Data_GetKeyRotationStatusResponse_ { + return _this.Data_GetKeyRotationStatusResponse_ +} + +type Data_GetKeyRotationStatusResponse_ interface { + isGetKeyRotationStatusResponse() +} + +type CompanionStruct_GetKeyRotationStatusResponse_ struct { +} + +var Companion_GetKeyRotationStatusResponse_ = CompanionStruct_GetKeyRotationStatusResponse_{} + +type GetKeyRotationStatusResponse_GetKeyRotationStatusResponse struct { + KeyRotationEnabled m_Wrappers.Option + KeyId m_Wrappers.Option + RotationPeriodInDays m_Wrappers.Option + NextRotationDate m_Wrappers.Option + OnDemandRotationStartDate m_Wrappers.Option +} + +func (GetKeyRotationStatusResponse_GetKeyRotationStatusResponse) isGetKeyRotationStatusResponse() {} + +func (CompanionStruct_GetKeyRotationStatusResponse_) Create_GetKeyRotationStatusResponse_(KeyRotationEnabled m_Wrappers.Option, KeyId m_Wrappers.Option, RotationPeriodInDays m_Wrappers.Option, NextRotationDate m_Wrappers.Option, OnDemandRotationStartDate m_Wrappers.Option) GetKeyRotationStatusResponse { + return GetKeyRotationStatusResponse{GetKeyRotationStatusResponse_GetKeyRotationStatusResponse{KeyRotationEnabled, KeyId, RotationPeriodInDays, NextRotationDate, OnDemandRotationStartDate}} +} + +func (_this GetKeyRotationStatusResponse) Is_GetKeyRotationStatusResponse() bool { + _, ok := _this.Get_().(GetKeyRotationStatusResponse_GetKeyRotationStatusResponse) + return ok +} + +func (CompanionStruct_GetKeyRotationStatusResponse_) Default() GetKeyRotationStatusResponse { + return Companion_GetKeyRotationStatusResponse_.Create_GetKeyRotationStatusResponse_(m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this GetKeyRotationStatusResponse) Dtor_KeyRotationEnabled() m_Wrappers.Option { + return _this.Get_().(GetKeyRotationStatusResponse_GetKeyRotationStatusResponse).KeyRotationEnabled +} + +func (_this GetKeyRotationStatusResponse) Dtor_KeyId() m_Wrappers.Option { + return _this.Get_().(GetKeyRotationStatusResponse_GetKeyRotationStatusResponse).KeyId +} + +func (_this GetKeyRotationStatusResponse) Dtor_RotationPeriodInDays() m_Wrappers.Option { + return _this.Get_().(GetKeyRotationStatusResponse_GetKeyRotationStatusResponse).RotationPeriodInDays +} + +func (_this GetKeyRotationStatusResponse) Dtor_NextRotationDate() m_Wrappers.Option { + return _this.Get_().(GetKeyRotationStatusResponse_GetKeyRotationStatusResponse).NextRotationDate +} + +func (_this GetKeyRotationStatusResponse) Dtor_OnDemandRotationStartDate() m_Wrappers.Option { + return _this.Get_().(GetKeyRotationStatusResponse_GetKeyRotationStatusResponse).OnDemandRotationStartDate +} + +func (_this GetKeyRotationStatusResponse) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case GetKeyRotationStatusResponse_GetKeyRotationStatusResponse: + { + return "ComAmazonawsKmsTypes.GetKeyRotationStatusResponse.GetKeyRotationStatusResponse" + "(" + _dafny.String(data.KeyRotationEnabled) + ", " + _dafny.String(data.KeyId) + ", " + _dafny.String(data.RotationPeriodInDays) + ", " + _dafny.String(data.NextRotationDate) + ", " + _dafny.String(data.OnDemandRotationStartDate) + ")" + } + default: + { + return "" + } + } +} + +func (_this GetKeyRotationStatusResponse) Equals(other GetKeyRotationStatusResponse) bool { + switch data1 := _this.Get_().(type) { + case GetKeyRotationStatusResponse_GetKeyRotationStatusResponse: + { + data2, ok := other.Get_().(GetKeyRotationStatusResponse_GetKeyRotationStatusResponse) + return ok && data1.KeyRotationEnabled.Equals(data2.KeyRotationEnabled) && data1.KeyId.Equals(data2.KeyId) && data1.RotationPeriodInDays.Equals(data2.RotationPeriodInDays) && data1.NextRotationDate.Equals(data2.NextRotationDate) && data1.OnDemandRotationStartDate.Equals(data2.OnDemandRotationStartDate) + } + default: + { + return false // unexpected + } + } +} + +func (_this GetKeyRotationStatusResponse) EqualsGeneric(other interface{}) bool { + typed, ok := other.(GetKeyRotationStatusResponse) + return ok && _this.Equals(typed) +} + +func Type_GetKeyRotationStatusResponse_() _dafny.TypeDescriptor { + return type_GetKeyRotationStatusResponse_{} +} + +type type_GetKeyRotationStatusResponse_ struct { +} + +func (_this type_GetKeyRotationStatusResponse_) Default() interface{} { + return Companion_GetKeyRotationStatusResponse_.Default() +} + +func (_this type_GetKeyRotationStatusResponse_) String() string { + return "ComAmazonawsKmsTypes.GetKeyRotationStatusResponse" +} +func (_this GetKeyRotationStatusResponse) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = GetKeyRotationStatusResponse{} + +// End of datatype GetKeyRotationStatusResponse + +// Definition of datatype GetParametersForImportRequest +type GetParametersForImportRequest struct { + Data_GetParametersForImportRequest_ +} + +func (_this GetParametersForImportRequest) Get_() Data_GetParametersForImportRequest_ { + return _this.Data_GetParametersForImportRequest_ +} + +type Data_GetParametersForImportRequest_ interface { + isGetParametersForImportRequest() +} + +type CompanionStruct_GetParametersForImportRequest_ struct { +} + +var Companion_GetParametersForImportRequest_ = CompanionStruct_GetParametersForImportRequest_{} + +type GetParametersForImportRequest_GetParametersForImportRequest struct { + KeyId _dafny.Sequence + WrappingAlgorithm AlgorithmSpec + WrappingKeySpec WrappingKeySpec +} + +func (GetParametersForImportRequest_GetParametersForImportRequest) isGetParametersForImportRequest() { +} + +func (CompanionStruct_GetParametersForImportRequest_) Create_GetParametersForImportRequest_(KeyId _dafny.Sequence, WrappingAlgorithm AlgorithmSpec, WrappingKeySpec WrappingKeySpec) GetParametersForImportRequest { + return GetParametersForImportRequest{GetParametersForImportRequest_GetParametersForImportRequest{KeyId, WrappingAlgorithm, WrappingKeySpec}} +} + +func (_this GetParametersForImportRequest) Is_GetParametersForImportRequest() bool { + _, ok := _this.Get_().(GetParametersForImportRequest_GetParametersForImportRequest) + return ok +} + +func (CompanionStruct_GetParametersForImportRequest_) Default() GetParametersForImportRequest { + return Companion_GetParametersForImportRequest_.Create_GetParametersForImportRequest_(_dafny.EmptySeq.SetString(), Companion_AlgorithmSpec_.Default(), Companion_WrappingKeySpec_.Default()) +} + +func (_this GetParametersForImportRequest) Dtor_KeyId() _dafny.Sequence { + return _this.Get_().(GetParametersForImportRequest_GetParametersForImportRequest).KeyId +} + +func (_this GetParametersForImportRequest) Dtor_WrappingAlgorithm() AlgorithmSpec { + return _this.Get_().(GetParametersForImportRequest_GetParametersForImportRequest).WrappingAlgorithm +} + +func (_this GetParametersForImportRequest) Dtor_WrappingKeySpec() WrappingKeySpec { + return _this.Get_().(GetParametersForImportRequest_GetParametersForImportRequest).WrappingKeySpec +} + +func (_this GetParametersForImportRequest) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case GetParametersForImportRequest_GetParametersForImportRequest: + { + return "ComAmazonawsKmsTypes.GetParametersForImportRequest.GetParametersForImportRequest" + "(" + _dafny.String(data.KeyId) + ", " + _dafny.String(data.WrappingAlgorithm) + ", " + _dafny.String(data.WrappingKeySpec) + ")" + } + default: + { + return "" + } + } +} + +func (_this GetParametersForImportRequest) Equals(other GetParametersForImportRequest) bool { + switch data1 := _this.Get_().(type) { + case GetParametersForImportRequest_GetParametersForImportRequest: + { + data2, ok := other.Get_().(GetParametersForImportRequest_GetParametersForImportRequest) + return ok && data1.KeyId.Equals(data2.KeyId) && data1.WrappingAlgorithm.Equals(data2.WrappingAlgorithm) && data1.WrappingKeySpec.Equals(data2.WrappingKeySpec) + } + default: + { + return false // unexpected + } + } +} + +func (_this GetParametersForImportRequest) EqualsGeneric(other interface{}) bool { + typed, ok := other.(GetParametersForImportRequest) + return ok && _this.Equals(typed) +} + +func Type_GetParametersForImportRequest_() _dafny.TypeDescriptor { + return type_GetParametersForImportRequest_{} +} + +type type_GetParametersForImportRequest_ struct { +} + +func (_this type_GetParametersForImportRequest_) Default() interface{} { + return Companion_GetParametersForImportRequest_.Default() +} + +func (_this type_GetParametersForImportRequest_) String() string { + return "ComAmazonawsKmsTypes.GetParametersForImportRequest" +} +func (_this GetParametersForImportRequest) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = GetParametersForImportRequest{} + +// End of datatype GetParametersForImportRequest + +// Definition of datatype GetParametersForImportResponse +type GetParametersForImportResponse struct { + Data_GetParametersForImportResponse_ +} + +func (_this GetParametersForImportResponse) Get_() Data_GetParametersForImportResponse_ { + return _this.Data_GetParametersForImportResponse_ +} + +type Data_GetParametersForImportResponse_ interface { + isGetParametersForImportResponse() +} + +type CompanionStruct_GetParametersForImportResponse_ struct { +} + +var Companion_GetParametersForImportResponse_ = CompanionStruct_GetParametersForImportResponse_{} + +type GetParametersForImportResponse_GetParametersForImportResponse struct { + KeyId m_Wrappers.Option + ImportToken m_Wrappers.Option + PublicKey m_Wrappers.Option + ParametersValidTo m_Wrappers.Option +} + +func (GetParametersForImportResponse_GetParametersForImportResponse) isGetParametersForImportResponse() { +} + +func (CompanionStruct_GetParametersForImportResponse_) Create_GetParametersForImportResponse_(KeyId m_Wrappers.Option, ImportToken m_Wrappers.Option, PublicKey m_Wrappers.Option, ParametersValidTo m_Wrappers.Option) GetParametersForImportResponse { + return GetParametersForImportResponse{GetParametersForImportResponse_GetParametersForImportResponse{KeyId, ImportToken, PublicKey, ParametersValidTo}} +} + +func (_this GetParametersForImportResponse) Is_GetParametersForImportResponse() bool { + _, ok := _this.Get_().(GetParametersForImportResponse_GetParametersForImportResponse) + return ok +} + +func (CompanionStruct_GetParametersForImportResponse_) Default() GetParametersForImportResponse { + return Companion_GetParametersForImportResponse_.Create_GetParametersForImportResponse_(m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this GetParametersForImportResponse) Dtor_KeyId() m_Wrappers.Option { + return _this.Get_().(GetParametersForImportResponse_GetParametersForImportResponse).KeyId +} + +func (_this GetParametersForImportResponse) Dtor_ImportToken() m_Wrappers.Option { + return _this.Get_().(GetParametersForImportResponse_GetParametersForImportResponse).ImportToken +} + +func (_this GetParametersForImportResponse) Dtor_PublicKey() m_Wrappers.Option { + return _this.Get_().(GetParametersForImportResponse_GetParametersForImportResponse).PublicKey +} + +func (_this GetParametersForImportResponse) Dtor_ParametersValidTo() m_Wrappers.Option { + return _this.Get_().(GetParametersForImportResponse_GetParametersForImportResponse).ParametersValidTo +} + +func (_this GetParametersForImportResponse) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case GetParametersForImportResponse_GetParametersForImportResponse: + { + return "ComAmazonawsKmsTypes.GetParametersForImportResponse.GetParametersForImportResponse" + "(" + _dafny.String(data.KeyId) + ", " + _dafny.String(data.ImportToken) + ", " + _dafny.String(data.PublicKey) + ", " + _dafny.String(data.ParametersValidTo) + ")" + } + default: + { + return "" + } + } +} + +func (_this GetParametersForImportResponse) Equals(other GetParametersForImportResponse) bool { + switch data1 := _this.Get_().(type) { + case GetParametersForImportResponse_GetParametersForImportResponse: + { + data2, ok := other.Get_().(GetParametersForImportResponse_GetParametersForImportResponse) + return ok && data1.KeyId.Equals(data2.KeyId) && data1.ImportToken.Equals(data2.ImportToken) && data1.PublicKey.Equals(data2.PublicKey) && data1.ParametersValidTo.Equals(data2.ParametersValidTo) + } + default: + { + return false // unexpected + } + } +} + +func (_this GetParametersForImportResponse) EqualsGeneric(other interface{}) bool { + typed, ok := other.(GetParametersForImportResponse) + return ok && _this.Equals(typed) +} + +func Type_GetParametersForImportResponse_() _dafny.TypeDescriptor { + return type_GetParametersForImportResponse_{} +} + +type type_GetParametersForImportResponse_ struct { +} + +func (_this type_GetParametersForImportResponse_) Default() interface{} { + return Companion_GetParametersForImportResponse_.Default() +} + +func (_this type_GetParametersForImportResponse_) String() string { + return "ComAmazonawsKmsTypes.GetParametersForImportResponse" +} +func (_this GetParametersForImportResponse) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = GetParametersForImportResponse{} + +// End of datatype GetParametersForImportResponse + +// Definition of datatype GetPublicKeyRequest +type GetPublicKeyRequest struct { + Data_GetPublicKeyRequest_ +} + +func (_this GetPublicKeyRequest) Get_() Data_GetPublicKeyRequest_ { + return _this.Data_GetPublicKeyRequest_ +} + +type Data_GetPublicKeyRequest_ interface { + isGetPublicKeyRequest() +} + +type CompanionStruct_GetPublicKeyRequest_ struct { +} + +var Companion_GetPublicKeyRequest_ = CompanionStruct_GetPublicKeyRequest_{} + +type GetPublicKeyRequest_GetPublicKeyRequest struct { + KeyId _dafny.Sequence + GrantTokens m_Wrappers.Option +} + +func (GetPublicKeyRequest_GetPublicKeyRequest) isGetPublicKeyRequest() {} + +func (CompanionStruct_GetPublicKeyRequest_) Create_GetPublicKeyRequest_(KeyId _dafny.Sequence, GrantTokens m_Wrappers.Option) GetPublicKeyRequest { + return GetPublicKeyRequest{GetPublicKeyRequest_GetPublicKeyRequest{KeyId, GrantTokens}} +} + +func (_this GetPublicKeyRequest) Is_GetPublicKeyRequest() bool { + _, ok := _this.Get_().(GetPublicKeyRequest_GetPublicKeyRequest) + return ok +} + +func (CompanionStruct_GetPublicKeyRequest_) Default() GetPublicKeyRequest { + return Companion_GetPublicKeyRequest_.Create_GetPublicKeyRequest_(_dafny.EmptySeq.SetString(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this GetPublicKeyRequest) Dtor_KeyId() _dafny.Sequence { + return _this.Get_().(GetPublicKeyRequest_GetPublicKeyRequest).KeyId +} + +func (_this GetPublicKeyRequest) Dtor_GrantTokens() m_Wrappers.Option { + return _this.Get_().(GetPublicKeyRequest_GetPublicKeyRequest).GrantTokens +} + +func (_this GetPublicKeyRequest) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case GetPublicKeyRequest_GetPublicKeyRequest: + { + return "ComAmazonawsKmsTypes.GetPublicKeyRequest.GetPublicKeyRequest" + "(" + _dafny.String(data.KeyId) + ", " + _dafny.String(data.GrantTokens) + ")" + } + default: + { + return "" + } + } +} + +func (_this GetPublicKeyRequest) Equals(other GetPublicKeyRequest) bool { + switch data1 := _this.Get_().(type) { + case GetPublicKeyRequest_GetPublicKeyRequest: + { + data2, ok := other.Get_().(GetPublicKeyRequest_GetPublicKeyRequest) + return ok && data1.KeyId.Equals(data2.KeyId) && data1.GrantTokens.Equals(data2.GrantTokens) + } + default: + { + return false // unexpected + } + } +} + +func (_this GetPublicKeyRequest) EqualsGeneric(other interface{}) bool { + typed, ok := other.(GetPublicKeyRequest) + return ok && _this.Equals(typed) +} + +func Type_GetPublicKeyRequest_() _dafny.TypeDescriptor { + return type_GetPublicKeyRequest_{} +} + +type type_GetPublicKeyRequest_ struct { +} + +func (_this type_GetPublicKeyRequest_) Default() interface{} { + return Companion_GetPublicKeyRequest_.Default() +} + +func (_this type_GetPublicKeyRequest_) String() string { + return "ComAmazonawsKmsTypes.GetPublicKeyRequest" +} +func (_this GetPublicKeyRequest) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = GetPublicKeyRequest{} + +// End of datatype GetPublicKeyRequest + +// Definition of datatype GetPublicKeyResponse +type GetPublicKeyResponse struct { + Data_GetPublicKeyResponse_ +} + +func (_this GetPublicKeyResponse) Get_() Data_GetPublicKeyResponse_ { + return _this.Data_GetPublicKeyResponse_ +} + +type Data_GetPublicKeyResponse_ interface { + isGetPublicKeyResponse() +} + +type CompanionStruct_GetPublicKeyResponse_ struct { +} + +var Companion_GetPublicKeyResponse_ = CompanionStruct_GetPublicKeyResponse_{} + +type GetPublicKeyResponse_GetPublicKeyResponse struct { + KeyId m_Wrappers.Option + PublicKey m_Wrappers.Option + CustomerMasterKeySpec m_Wrappers.Option + KeySpec m_Wrappers.Option + KeyUsage m_Wrappers.Option + EncryptionAlgorithms m_Wrappers.Option + SigningAlgorithms m_Wrappers.Option + KeyAgreementAlgorithms m_Wrappers.Option +} + +func (GetPublicKeyResponse_GetPublicKeyResponse) isGetPublicKeyResponse() {} + +func (CompanionStruct_GetPublicKeyResponse_) Create_GetPublicKeyResponse_(KeyId m_Wrappers.Option, PublicKey m_Wrappers.Option, CustomerMasterKeySpec m_Wrappers.Option, KeySpec m_Wrappers.Option, KeyUsage m_Wrappers.Option, EncryptionAlgorithms m_Wrappers.Option, SigningAlgorithms m_Wrappers.Option, KeyAgreementAlgorithms m_Wrappers.Option) GetPublicKeyResponse { + return GetPublicKeyResponse{GetPublicKeyResponse_GetPublicKeyResponse{KeyId, PublicKey, CustomerMasterKeySpec, KeySpec, KeyUsage, EncryptionAlgorithms, SigningAlgorithms, KeyAgreementAlgorithms}} +} + +func (_this GetPublicKeyResponse) Is_GetPublicKeyResponse() bool { + _, ok := _this.Get_().(GetPublicKeyResponse_GetPublicKeyResponse) + return ok +} + +func (CompanionStruct_GetPublicKeyResponse_) Default() GetPublicKeyResponse { + return Companion_GetPublicKeyResponse_.Create_GetPublicKeyResponse_(m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this GetPublicKeyResponse) Dtor_KeyId() m_Wrappers.Option { + return _this.Get_().(GetPublicKeyResponse_GetPublicKeyResponse).KeyId +} + +func (_this GetPublicKeyResponse) Dtor_PublicKey() m_Wrappers.Option { + return _this.Get_().(GetPublicKeyResponse_GetPublicKeyResponse).PublicKey +} + +func (_this GetPublicKeyResponse) Dtor_CustomerMasterKeySpec() m_Wrappers.Option { + return _this.Get_().(GetPublicKeyResponse_GetPublicKeyResponse).CustomerMasterKeySpec +} + +func (_this GetPublicKeyResponse) Dtor_KeySpec() m_Wrappers.Option { + return _this.Get_().(GetPublicKeyResponse_GetPublicKeyResponse).KeySpec +} + +func (_this GetPublicKeyResponse) Dtor_KeyUsage() m_Wrappers.Option { + return _this.Get_().(GetPublicKeyResponse_GetPublicKeyResponse).KeyUsage +} + +func (_this GetPublicKeyResponse) Dtor_EncryptionAlgorithms() m_Wrappers.Option { + return _this.Get_().(GetPublicKeyResponse_GetPublicKeyResponse).EncryptionAlgorithms +} + +func (_this GetPublicKeyResponse) Dtor_SigningAlgorithms() m_Wrappers.Option { + return _this.Get_().(GetPublicKeyResponse_GetPublicKeyResponse).SigningAlgorithms +} + +func (_this GetPublicKeyResponse) Dtor_KeyAgreementAlgorithms() m_Wrappers.Option { + return _this.Get_().(GetPublicKeyResponse_GetPublicKeyResponse).KeyAgreementAlgorithms +} + +func (_this GetPublicKeyResponse) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case GetPublicKeyResponse_GetPublicKeyResponse: + { + return "ComAmazonawsKmsTypes.GetPublicKeyResponse.GetPublicKeyResponse" + "(" + _dafny.String(data.KeyId) + ", " + _dafny.String(data.PublicKey) + ", " + _dafny.String(data.CustomerMasterKeySpec) + ", " + _dafny.String(data.KeySpec) + ", " + _dafny.String(data.KeyUsage) + ", " + _dafny.String(data.EncryptionAlgorithms) + ", " + _dafny.String(data.SigningAlgorithms) + ", " + _dafny.String(data.KeyAgreementAlgorithms) + ")" + } + default: + { + return "" + } + } +} + +func (_this GetPublicKeyResponse) Equals(other GetPublicKeyResponse) bool { + switch data1 := _this.Get_().(type) { + case GetPublicKeyResponse_GetPublicKeyResponse: + { + data2, ok := other.Get_().(GetPublicKeyResponse_GetPublicKeyResponse) + return ok && data1.KeyId.Equals(data2.KeyId) && data1.PublicKey.Equals(data2.PublicKey) && data1.CustomerMasterKeySpec.Equals(data2.CustomerMasterKeySpec) && data1.KeySpec.Equals(data2.KeySpec) && data1.KeyUsage.Equals(data2.KeyUsage) && data1.EncryptionAlgorithms.Equals(data2.EncryptionAlgorithms) && data1.SigningAlgorithms.Equals(data2.SigningAlgorithms) && data1.KeyAgreementAlgorithms.Equals(data2.KeyAgreementAlgorithms) + } + default: + { + return false // unexpected + } + } +} + +func (_this GetPublicKeyResponse) EqualsGeneric(other interface{}) bool { + typed, ok := other.(GetPublicKeyResponse) + return ok && _this.Equals(typed) +} + +func Type_GetPublicKeyResponse_() _dafny.TypeDescriptor { + return type_GetPublicKeyResponse_{} +} + +type type_GetPublicKeyResponse_ struct { +} + +func (_this type_GetPublicKeyResponse_) Default() interface{} { + return Companion_GetPublicKeyResponse_.Default() +} + +func (_this type_GetPublicKeyResponse_) String() string { + return "ComAmazonawsKmsTypes.GetPublicKeyResponse" +} +func (_this GetPublicKeyResponse) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = GetPublicKeyResponse{} + +// End of datatype GetPublicKeyResponse + +// Definition of datatype GrantConstraints +type GrantConstraints struct { + Data_GrantConstraints_ +} + +func (_this GrantConstraints) Get_() Data_GrantConstraints_ { + return _this.Data_GrantConstraints_ +} + +type Data_GrantConstraints_ interface { + isGrantConstraints() +} + +type CompanionStruct_GrantConstraints_ struct { +} + +var Companion_GrantConstraints_ = CompanionStruct_GrantConstraints_{} + +type GrantConstraints_GrantConstraints struct { + EncryptionContextSubset m_Wrappers.Option + EncryptionContextEquals m_Wrappers.Option +} + +func (GrantConstraints_GrantConstraints) isGrantConstraints() {} + +func (CompanionStruct_GrantConstraints_) Create_GrantConstraints_(EncryptionContextSubset m_Wrappers.Option, EncryptionContextEquals m_Wrappers.Option) GrantConstraints { + return GrantConstraints{GrantConstraints_GrantConstraints{EncryptionContextSubset, EncryptionContextEquals}} +} + +func (_this GrantConstraints) Is_GrantConstraints() bool { + _, ok := _this.Get_().(GrantConstraints_GrantConstraints) + return ok +} + +func (CompanionStruct_GrantConstraints_) Default() GrantConstraints { + return Companion_GrantConstraints_.Create_GrantConstraints_(m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this GrantConstraints) Dtor_EncryptionContextSubset() m_Wrappers.Option { + return _this.Get_().(GrantConstraints_GrantConstraints).EncryptionContextSubset +} + +func (_this GrantConstraints) Dtor_EncryptionContextEquals() m_Wrappers.Option { + return _this.Get_().(GrantConstraints_GrantConstraints).EncryptionContextEquals +} + +func (_this GrantConstraints) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case GrantConstraints_GrantConstraints: + { + return "ComAmazonawsKmsTypes.GrantConstraints.GrantConstraints" + "(" + _dafny.String(data.EncryptionContextSubset) + ", " + _dafny.String(data.EncryptionContextEquals) + ")" + } + default: + { + return "" + } + } +} + +func (_this GrantConstraints) Equals(other GrantConstraints) bool { + switch data1 := _this.Get_().(type) { + case GrantConstraints_GrantConstraints: + { + data2, ok := other.Get_().(GrantConstraints_GrantConstraints) + return ok && data1.EncryptionContextSubset.Equals(data2.EncryptionContextSubset) && data1.EncryptionContextEquals.Equals(data2.EncryptionContextEquals) + } + default: + { + return false // unexpected + } + } +} + +func (_this GrantConstraints) EqualsGeneric(other interface{}) bool { + typed, ok := other.(GrantConstraints) + return ok && _this.Equals(typed) +} + +func Type_GrantConstraints_() _dafny.TypeDescriptor { + return type_GrantConstraints_{} +} + +type type_GrantConstraints_ struct { +} + +func (_this type_GrantConstraints_) Default() interface{} { + return Companion_GrantConstraints_.Default() +} + +func (_this type_GrantConstraints_) String() string { + return "ComAmazonawsKmsTypes.GrantConstraints" +} +func (_this GrantConstraints) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = GrantConstraints{} + +// End of datatype GrantConstraints + +// Definition of class GrantIdType +type GrantIdType struct { +} + +func New_GrantIdType_() *GrantIdType { + _this := GrantIdType{} + + return &_this +} + +type CompanionStruct_GrantIdType_ struct { +} + +var Companion_GrantIdType_ = CompanionStruct_GrantIdType_{} + +func (*GrantIdType) String() string { + return "ComAmazonawsKmsTypes.GrantIdType" +} + +// End of class GrantIdType + +func Type_GrantIdType_() _dafny.TypeDescriptor { + return type_GrantIdType_{} +} + +type type_GrantIdType_ struct { +} + +func (_this type_GrantIdType_) Default() interface{} { + return _dafny.EmptySeq.SetString() +} + +func (_this type_GrantIdType_) String() string { + return "ComAmazonawsKmsTypes.GrantIdType" +} +func (_this *CompanionStruct_GrantIdType_) Is_(__source _dafny.Sequence) bool { + var _8_x _dafny.Sequence = (__source) + _ = _8_x + return Companion_Default___.IsValid__GrantIdType(_8_x) +} + +// Definition of datatype GrantListEntry +type GrantListEntry struct { + Data_GrantListEntry_ +} + +func (_this GrantListEntry) Get_() Data_GrantListEntry_ { + return _this.Data_GrantListEntry_ +} + +type Data_GrantListEntry_ interface { + isGrantListEntry() +} + +type CompanionStruct_GrantListEntry_ struct { +} + +var Companion_GrantListEntry_ = CompanionStruct_GrantListEntry_{} + +type GrantListEntry_GrantListEntry struct { + KeyId m_Wrappers.Option + GrantId m_Wrappers.Option + Name m_Wrappers.Option + CreationDate m_Wrappers.Option + GranteePrincipal m_Wrappers.Option + RetiringPrincipal m_Wrappers.Option + IssuingAccount m_Wrappers.Option + Operations m_Wrappers.Option + Constraints m_Wrappers.Option +} + +func (GrantListEntry_GrantListEntry) isGrantListEntry() {} + +func (CompanionStruct_GrantListEntry_) Create_GrantListEntry_(KeyId m_Wrappers.Option, GrantId m_Wrappers.Option, Name m_Wrappers.Option, CreationDate m_Wrappers.Option, GranteePrincipal m_Wrappers.Option, RetiringPrincipal m_Wrappers.Option, IssuingAccount m_Wrappers.Option, Operations m_Wrappers.Option, Constraints m_Wrappers.Option) GrantListEntry { + return GrantListEntry{GrantListEntry_GrantListEntry{KeyId, GrantId, Name, CreationDate, GranteePrincipal, RetiringPrincipal, IssuingAccount, Operations, Constraints}} +} + +func (_this GrantListEntry) Is_GrantListEntry() bool { + _, ok := _this.Get_().(GrantListEntry_GrantListEntry) + return ok +} + +func (CompanionStruct_GrantListEntry_) Default() GrantListEntry { + return Companion_GrantListEntry_.Create_GrantListEntry_(m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this GrantListEntry) Dtor_KeyId() m_Wrappers.Option { + return _this.Get_().(GrantListEntry_GrantListEntry).KeyId +} + +func (_this GrantListEntry) Dtor_GrantId() m_Wrappers.Option { + return _this.Get_().(GrantListEntry_GrantListEntry).GrantId +} + +func (_this GrantListEntry) Dtor_Name() m_Wrappers.Option { + return _this.Get_().(GrantListEntry_GrantListEntry).Name +} + +func (_this GrantListEntry) Dtor_CreationDate() m_Wrappers.Option { + return _this.Get_().(GrantListEntry_GrantListEntry).CreationDate +} + +func (_this GrantListEntry) Dtor_GranteePrincipal() m_Wrappers.Option { + return _this.Get_().(GrantListEntry_GrantListEntry).GranteePrincipal +} + +func (_this GrantListEntry) Dtor_RetiringPrincipal() m_Wrappers.Option { + return _this.Get_().(GrantListEntry_GrantListEntry).RetiringPrincipal +} + +func (_this GrantListEntry) Dtor_IssuingAccount() m_Wrappers.Option { + return _this.Get_().(GrantListEntry_GrantListEntry).IssuingAccount +} + +func (_this GrantListEntry) Dtor_Operations() m_Wrappers.Option { + return _this.Get_().(GrantListEntry_GrantListEntry).Operations +} + +func (_this GrantListEntry) Dtor_Constraints() m_Wrappers.Option { + return _this.Get_().(GrantListEntry_GrantListEntry).Constraints +} + +func (_this GrantListEntry) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case GrantListEntry_GrantListEntry: + { + return "ComAmazonawsKmsTypes.GrantListEntry.GrantListEntry" + "(" + _dafny.String(data.KeyId) + ", " + _dafny.String(data.GrantId) + ", " + _dafny.String(data.Name) + ", " + _dafny.String(data.CreationDate) + ", " + _dafny.String(data.GranteePrincipal) + ", " + _dafny.String(data.RetiringPrincipal) + ", " + _dafny.String(data.IssuingAccount) + ", " + _dafny.String(data.Operations) + ", " + _dafny.String(data.Constraints) + ")" + } + default: + { + return "" + } + } +} + +func (_this GrantListEntry) Equals(other GrantListEntry) bool { + switch data1 := _this.Get_().(type) { + case GrantListEntry_GrantListEntry: + { + data2, ok := other.Get_().(GrantListEntry_GrantListEntry) + return ok && data1.KeyId.Equals(data2.KeyId) && data1.GrantId.Equals(data2.GrantId) && data1.Name.Equals(data2.Name) && data1.CreationDate.Equals(data2.CreationDate) && data1.GranteePrincipal.Equals(data2.GranteePrincipal) && data1.RetiringPrincipal.Equals(data2.RetiringPrincipal) && data1.IssuingAccount.Equals(data2.IssuingAccount) && data1.Operations.Equals(data2.Operations) && data1.Constraints.Equals(data2.Constraints) + } + default: + { + return false // unexpected + } + } +} + +func (_this GrantListEntry) EqualsGeneric(other interface{}) bool { + typed, ok := other.(GrantListEntry) + return ok && _this.Equals(typed) +} + +func Type_GrantListEntry_() _dafny.TypeDescriptor { + return type_GrantListEntry_{} +} + +type type_GrantListEntry_ struct { +} + +func (_this type_GrantListEntry_) Default() interface{} { + return Companion_GrantListEntry_.Default() +} + +func (_this type_GrantListEntry_) String() string { + return "ComAmazonawsKmsTypes.GrantListEntry" +} +func (_this GrantListEntry) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = GrantListEntry{} + +// End of datatype GrantListEntry + +// Definition of class GrantNameType +type GrantNameType struct { +} + +func New_GrantNameType_() *GrantNameType { + _this := GrantNameType{} + + return &_this +} + +type CompanionStruct_GrantNameType_ struct { +} + +var Companion_GrantNameType_ = CompanionStruct_GrantNameType_{} + +func (*GrantNameType) String() string { + return "ComAmazonawsKmsTypes.GrantNameType" +} + +// End of class GrantNameType + +func Type_GrantNameType_() _dafny.TypeDescriptor { + return type_GrantNameType_{} +} + +type type_GrantNameType_ struct { +} + +func (_this type_GrantNameType_) Default() interface{} { + return _dafny.EmptySeq.SetString() +} + +func (_this type_GrantNameType_) String() string { + return "ComAmazonawsKmsTypes.GrantNameType" +} +func (_this *CompanionStruct_GrantNameType_) Is_(__source _dafny.Sequence) bool { + var _9_x _dafny.Sequence = (__source) + _ = _9_x + return Companion_Default___.IsValid__GrantNameType(_9_x) +} + +// Definition of datatype GrantOperation +type GrantOperation struct { + Data_GrantOperation_ +} + +func (_this GrantOperation) Get_() Data_GrantOperation_ { + return _this.Data_GrantOperation_ +} + +type Data_GrantOperation_ interface { + isGrantOperation() +} + +type CompanionStruct_GrantOperation_ struct { +} + +var Companion_GrantOperation_ = CompanionStruct_GrantOperation_{} + +type GrantOperation_Decrypt struct { +} + +func (GrantOperation_Decrypt) isGrantOperation() {} + +func (CompanionStruct_GrantOperation_) Create_Decrypt_() GrantOperation { + return GrantOperation{GrantOperation_Decrypt{}} +} + +func (_this GrantOperation) Is_Decrypt() bool { + _, ok := _this.Get_().(GrantOperation_Decrypt) + return ok +} + +type GrantOperation_Encrypt struct { +} + +func (GrantOperation_Encrypt) isGrantOperation() {} + +func (CompanionStruct_GrantOperation_) Create_Encrypt_() GrantOperation { + return GrantOperation{GrantOperation_Encrypt{}} +} + +func (_this GrantOperation) Is_Encrypt() bool { + _, ok := _this.Get_().(GrantOperation_Encrypt) + return ok +} + +type GrantOperation_GenerateDataKey struct { +} + +func (GrantOperation_GenerateDataKey) isGrantOperation() {} + +func (CompanionStruct_GrantOperation_) Create_GenerateDataKey_() GrantOperation { + return GrantOperation{GrantOperation_GenerateDataKey{}} +} + +func (_this GrantOperation) Is_GenerateDataKey() bool { + _, ok := _this.Get_().(GrantOperation_GenerateDataKey) + return ok +} + +type GrantOperation_GenerateDataKeyWithoutPlaintext struct { +} + +func (GrantOperation_GenerateDataKeyWithoutPlaintext) isGrantOperation() {} + +func (CompanionStruct_GrantOperation_) Create_GenerateDataKeyWithoutPlaintext_() GrantOperation { + return GrantOperation{GrantOperation_GenerateDataKeyWithoutPlaintext{}} +} + +func (_this GrantOperation) Is_GenerateDataKeyWithoutPlaintext() bool { + _, ok := _this.Get_().(GrantOperation_GenerateDataKeyWithoutPlaintext) + return ok +} + +type GrantOperation_ReEncryptFrom struct { +} + +func (GrantOperation_ReEncryptFrom) isGrantOperation() {} + +func (CompanionStruct_GrantOperation_) Create_ReEncryptFrom_() GrantOperation { + return GrantOperation{GrantOperation_ReEncryptFrom{}} +} + +func (_this GrantOperation) Is_ReEncryptFrom() bool { + _, ok := _this.Get_().(GrantOperation_ReEncryptFrom) + return ok +} + +type GrantOperation_ReEncryptTo struct { +} + +func (GrantOperation_ReEncryptTo) isGrantOperation() {} + +func (CompanionStruct_GrantOperation_) Create_ReEncryptTo_() GrantOperation { + return GrantOperation{GrantOperation_ReEncryptTo{}} +} + +func (_this GrantOperation) Is_ReEncryptTo() bool { + _, ok := _this.Get_().(GrantOperation_ReEncryptTo) + return ok +} + +type GrantOperation_Sign struct { +} + +func (GrantOperation_Sign) isGrantOperation() {} + +func (CompanionStruct_GrantOperation_) Create_Sign_() GrantOperation { + return GrantOperation{GrantOperation_Sign{}} +} + +func (_this GrantOperation) Is_Sign() bool { + _, ok := _this.Get_().(GrantOperation_Sign) + return ok +} + +type GrantOperation_Verify struct { +} + +func (GrantOperation_Verify) isGrantOperation() {} + +func (CompanionStruct_GrantOperation_) Create_Verify_() GrantOperation { + return GrantOperation{GrantOperation_Verify{}} +} + +func (_this GrantOperation) Is_Verify() bool { + _, ok := _this.Get_().(GrantOperation_Verify) + return ok +} + +type GrantOperation_GetPublicKey struct { +} + +func (GrantOperation_GetPublicKey) isGrantOperation() {} + +func (CompanionStruct_GrantOperation_) Create_GetPublicKey_() GrantOperation { + return GrantOperation{GrantOperation_GetPublicKey{}} +} + +func (_this GrantOperation) Is_GetPublicKey() bool { + _, ok := _this.Get_().(GrantOperation_GetPublicKey) + return ok +} + +type GrantOperation_CreateGrant struct { +} + +func (GrantOperation_CreateGrant) isGrantOperation() {} + +func (CompanionStruct_GrantOperation_) Create_CreateGrant_() GrantOperation { + return GrantOperation{GrantOperation_CreateGrant{}} +} + +func (_this GrantOperation) Is_CreateGrant() bool { + _, ok := _this.Get_().(GrantOperation_CreateGrant) + return ok +} + +type GrantOperation_RetireGrant struct { +} + +func (GrantOperation_RetireGrant) isGrantOperation() {} + +func (CompanionStruct_GrantOperation_) Create_RetireGrant_() GrantOperation { + return GrantOperation{GrantOperation_RetireGrant{}} +} + +func (_this GrantOperation) Is_RetireGrant() bool { + _, ok := _this.Get_().(GrantOperation_RetireGrant) + return ok +} + +type GrantOperation_DescribeKey struct { +} + +func (GrantOperation_DescribeKey) isGrantOperation() {} + +func (CompanionStruct_GrantOperation_) Create_DescribeKey_() GrantOperation { + return GrantOperation{GrantOperation_DescribeKey{}} +} + +func (_this GrantOperation) Is_DescribeKey() bool { + _, ok := _this.Get_().(GrantOperation_DescribeKey) + return ok +} + +type GrantOperation_GenerateDataKeyPair struct { +} + +func (GrantOperation_GenerateDataKeyPair) isGrantOperation() {} + +func (CompanionStruct_GrantOperation_) Create_GenerateDataKeyPair_() GrantOperation { + return GrantOperation{GrantOperation_GenerateDataKeyPair{}} +} + +func (_this GrantOperation) Is_GenerateDataKeyPair() bool { + _, ok := _this.Get_().(GrantOperation_GenerateDataKeyPair) + return ok +} + +type GrantOperation_GenerateDataKeyPairWithoutPlaintext struct { +} + +func (GrantOperation_GenerateDataKeyPairWithoutPlaintext) isGrantOperation() {} + +func (CompanionStruct_GrantOperation_) Create_GenerateDataKeyPairWithoutPlaintext_() GrantOperation { + return GrantOperation{GrantOperation_GenerateDataKeyPairWithoutPlaintext{}} +} + +func (_this GrantOperation) Is_GenerateDataKeyPairWithoutPlaintext() bool { + _, ok := _this.Get_().(GrantOperation_GenerateDataKeyPairWithoutPlaintext) + return ok +} + +type GrantOperation_GenerateMac struct { +} + +func (GrantOperation_GenerateMac) isGrantOperation() {} + +func (CompanionStruct_GrantOperation_) Create_GenerateMac_() GrantOperation { + return GrantOperation{GrantOperation_GenerateMac{}} +} + +func (_this GrantOperation) Is_GenerateMac() bool { + _, ok := _this.Get_().(GrantOperation_GenerateMac) + return ok +} + +type GrantOperation_VerifyMac struct { +} + +func (GrantOperation_VerifyMac) isGrantOperation() {} + +func (CompanionStruct_GrantOperation_) Create_VerifyMac_() GrantOperation { + return GrantOperation{GrantOperation_VerifyMac{}} +} + +func (_this GrantOperation) Is_VerifyMac() bool { + _, ok := _this.Get_().(GrantOperation_VerifyMac) + return ok +} + +type GrantOperation_DeriveSharedSecret struct { +} + +func (GrantOperation_DeriveSharedSecret) isGrantOperation() {} + +func (CompanionStruct_GrantOperation_) Create_DeriveSharedSecret_() GrantOperation { + return GrantOperation{GrantOperation_DeriveSharedSecret{}} +} + +func (_this GrantOperation) Is_DeriveSharedSecret() bool { + _, ok := _this.Get_().(GrantOperation_DeriveSharedSecret) + return ok +} + +func (CompanionStruct_GrantOperation_) Default() GrantOperation { + return Companion_GrantOperation_.Create_Decrypt_() +} + +func (_ CompanionStruct_GrantOperation_) AllSingletonConstructors() _dafny.Iterator { + i := -1 + return func() (interface{}, bool) { + i++ + switch i { + case 0: + return Companion_GrantOperation_.Create_Decrypt_(), true + case 1: + return Companion_GrantOperation_.Create_Encrypt_(), true + case 2: + return Companion_GrantOperation_.Create_GenerateDataKey_(), true + case 3: + return Companion_GrantOperation_.Create_GenerateDataKeyWithoutPlaintext_(), true + case 4: + return Companion_GrantOperation_.Create_ReEncryptFrom_(), true + case 5: + return Companion_GrantOperation_.Create_ReEncryptTo_(), true + case 6: + return Companion_GrantOperation_.Create_Sign_(), true + case 7: + return Companion_GrantOperation_.Create_Verify_(), true + case 8: + return Companion_GrantOperation_.Create_GetPublicKey_(), true + case 9: + return Companion_GrantOperation_.Create_CreateGrant_(), true + case 10: + return Companion_GrantOperation_.Create_RetireGrant_(), true + case 11: + return Companion_GrantOperation_.Create_DescribeKey_(), true + case 12: + return Companion_GrantOperation_.Create_GenerateDataKeyPair_(), true + case 13: + return Companion_GrantOperation_.Create_GenerateDataKeyPairWithoutPlaintext_(), true + case 14: + return Companion_GrantOperation_.Create_GenerateMac_(), true + case 15: + return Companion_GrantOperation_.Create_VerifyMac_(), true + case 16: + return Companion_GrantOperation_.Create_DeriveSharedSecret_(), true + default: + return GrantOperation{}, false + } + } +} + +func (_this GrantOperation) String() string { + switch _this.Get_().(type) { + case nil: + return "null" + case GrantOperation_Decrypt: + { + return "ComAmazonawsKmsTypes.GrantOperation.Decrypt" + } + case GrantOperation_Encrypt: + { + return "ComAmazonawsKmsTypes.GrantOperation.Encrypt" + } + case GrantOperation_GenerateDataKey: + { + return "ComAmazonawsKmsTypes.GrantOperation.GenerateDataKey" + } + case GrantOperation_GenerateDataKeyWithoutPlaintext: + { + return "ComAmazonawsKmsTypes.GrantOperation.GenerateDataKeyWithoutPlaintext" + } + case GrantOperation_ReEncryptFrom: + { + return "ComAmazonawsKmsTypes.GrantOperation.ReEncryptFrom" + } + case GrantOperation_ReEncryptTo: + { + return "ComAmazonawsKmsTypes.GrantOperation.ReEncryptTo" + } + case GrantOperation_Sign: + { + return "ComAmazonawsKmsTypes.GrantOperation.Sign" + } + case GrantOperation_Verify: + { + return "ComAmazonawsKmsTypes.GrantOperation.Verify" + } + case GrantOperation_GetPublicKey: + { + return "ComAmazonawsKmsTypes.GrantOperation.GetPublicKey" + } + case GrantOperation_CreateGrant: + { + return "ComAmazonawsKmsTypes.GrantOperation.CreateGrant" + } + case GrantOperation_RetireGrant: + { + return "ComAmazonawsKmsTypes.GrantOperation.RetireGrant" + } + case GrantOperation_DescribeKey: + { + return "ComAmazonawsKmsTypes.GrantOperation.DescribeKey" + } + case GrantOperation_GenerateDataKeyPair: + { + return "ComAmazonawsKmsTypes.GrantOperation.GenerateDataKeyPair" + } + case GrantOperation_GenerateDataKeyPairWithoutPlaintext: + { + return "ComAmazonawsKmsTypes.GrantOperation.GenerateDataKeyPairWithoutPlaintext" + } + case GrantOperation_GenerateMac: + { + return "ComAmazonawsKmsTypes.GrantOperation.GenerateMac" + } + case GrantOperation_VerifyMac: + { + return "ComAmazonawsKmsTypes.GrantOperation.VerifyMac" + } + case GrantOperation_DeriveSharedSecret: + { + return "ComAmazonawsKmsTypes.GrantOperation.DeriveSharedSecret" + } + default: + { + return "" + } + } +} + +func (_this GrantOperation) Equals(other GrantOperation) bool { + switch _this.Get_().(type) { + case GrantOperation_Decrypt: + { + _, ok := other.Get_().(GrantOperation_Decrypt) + return ok + } + case GrantOperation_Encrypt: + { + _, ok := other.Get_().(GrantOperation_Encrypt) + return ok + } + case GrantOperation_GenerateDataKey: + { + _, ok := other.Get_().(GrantOperation_GenerateDataKey) + return ok + } + case GrantOperation_GenerateDataKeyWithoutPlaintext: + { + _, ok := other.Get_().(GrantOperation_GenerateDataKeyWithoutPlaintext) + return ok + } + case GrantOperation_ReEncryptFrom: + { + _, ok := other.Get_().(GrantOperation_ReEncryptFrom) + return ok + } + case GrantOperation_ReEncryptTo: + { + _, ok := other.Get_().(GrantOperation_ReEncryptTo) + return ok + } + case GrantOperation_Sign: + { + _, ok := other.Get_().(GrantOperation_Sign) + return ok + } + case GrantOperation_Verify: + { + _, ok := other.Get_().(GrantOperation_Verify) + return ok + } + case GrantOperation_GetPublicKey: + { + _, ok := other.Get_().(GrantOperation_GetPublicKey) + return ok + } + case GrantOperation_CreateGrant: + { + _, ok := other.Get_().(GrantOperation_CreateGrant) + return ok + } + case GrantOperation_RetireGrant: + { + _, ok := other.Get_().(GrantOperation_RetireGrant) + return ok + } + case GrantOperation_DescribeKey: + { + _, ok := other.Get_().(GrantOperation_DescribeKey) + return ok + } + case GrantOperation_GenerateDataKeyPair: + { + _, ok := other.Get_().(GrantOperation_GenerateDataKeyPair) + return ok + } + case GrantOperation_GenerateDataKeyPairWithoutPlaintext: + { + _, ok := other.Get_().(GrantOperation_GenerateDataKeyPairWithoutPlaintext) + return ok + } + case GrantOperation_GenerateMac: + { + _, ok := other.Get_().(GrantOperation_GenerateMac) + return ok + } + case GrantOperation_VerifyMac: + { + _, ok := other.Get_().(GrantOperation_VerifyMac) + return ok + } + case GrantOperation_DeriveSharedSecret: + { + _, ok := other.Get_().(GrantOperation_DeriveSharedSecret) + return ok + } + default: + { + return false // unexpected + } + } +} + +func (_this GrantOperation) EqualsGeneric(other interface{}) bool { + typed, ok := other.(GrantOperation) + return ok && _this.Equals(typed) +} + +func Type_GrantOperation_() _dafny.TypeDescriptor { + return type_GrantOperation_{} +} + +type type_GrantOperation_ struct { +} + +func (_this type_GrantOperation_) Default() interface{} { + return Companion_GrantOperation_.Default() +} + +func (_this type_GrantOperation_) String() string { + return "ComAmazonawsKmsTypes.GrantOperation" +} +func (_this GrantOperation) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = GrantOperation{} + +// End of datatype GrantOperation + +// Definition of class GrantTokenList +type GrantTokenList struct { +} + +func New_GrantTokenList_() *GrantTokenList { + _this := GrantTokenList{} + + return &_this +} + +type CompanionStruct_GrantTokenList_ struct { +} + +var Companion_GrantTokenList_ = CompanionStruct_GrantTokenList_{} + +func (*GrantTokenList) String() string { + return "ComAmazonawsKmsTypes.GrantTokenList" +} + +// End of class GrantTokenList + +func Type_GrantTokenList_() _dafny.TypeDescriptor { + return type_GrantTokenList_{} +} + +type type_GrantTokenList_ struct { +} + +func (_this type_GrantTokenList_) Default() interface{} { + return _dafny.EmptySeq +} + +func (_this type_GrantTokenList_) String() string { + return "ComAmazonawsKmsTypes.GrantTokenList" +} +func (_this *CompanionStruct_GrantTokenList_) Is_(__source _dafny.Sequence) bool { + var _10_x _dafny.Sequence = (__source) + _ = _10_x + return Companion_Default___.IsValid__GrantTokenList(_10_x) +} + +// Definition of class GrantTokenType +type GrantTokenType struct { +} + +func New_GrantTokenType_() *GrantTokenType { + _this := GrantTokenType{} + + return &_this +} + +type CompanionStruct_GrantTokenType_ struct { +} + +var Companion_GrantTokenType_ = CompanionStruct_GrantTokenType_{} + +func (*GrantTokenType) String() string { + return "ComAmazonawsKmsTypes.GrantTokenType" +} + +// End of class GrantTokenType + +func Type_GrantTokenType_() _dafny.TypeDescriptor { + return type_GrantTokenType_{} +} + +type type_GrantTokenType_ struct { +} + +func (_this type_GrantTokenType_) Default() interface{} { + return _dafny.EmptySeq.SetString() +} + +func (_this type_GrantTokenType_) String() string { + return "ComAmazonawsKmsTypes.GrantTokenType" +} +func (_this *CompanionStruct_GrantTokenType_) Is_(__source _dafny.Sequence) bool { + var _11_x _dafny.Sequence = (__source) + _ = _11_x + return Companion_Default___.IsValid__GrantTokenType(_11_x) +} + +// Definition of datatype ImportKeyMaterialRequest +type ImportKeyMaterialRequest struct { + Data_ImportKeyMaterialRequest_ +} + +func (_this ImportKeyMaterialRequest) Get_() Data_ImportKeyMaterialRequest_ { + return _this.Data_ImportKeyMaterialRequest_ +} + +type Data_ImportKeyMaterialRequest_ interface { + isImportKeyMaterialRequest() +} + +type CompanionStruct_ImportKeyMaterialRequest_ struct { +} + +var Companion_ImportKeyMaterialRequest_ = CompanionStruct_ImportKeyMaterialRequest_{} + +type ImportKeyMaterialRequest_ImportKeyMaterialRequest struct { + KeyId _dafny.Sequence + ImportToken _dafny.Sequence + EncryptedKeyMaterial _dafny.Sequence + ValidTo m_Wrappers.Option + ExpirationModel m_Wrappers.Option +} + +func (ImportKeyMaterialRequest_ImportKeyMaterialRequest) isImportKeyMaterialRequest() {} + +func (CompanionStruct_ImportKeyMaterialRequest_) Create_ImportKeyMaterialRequest_(KeyId _dafny.Sequence, ImportToken _dafny.Sequence, EncryptedKeyMaterial _dafny.Sequence, ValidTo m_Wrappers.Option, ExpirationModel m_Wrappers.Option) ImportKeyMaterialRequest { + return ImportKeyMaterialRequest{ImportKeyMaterialRequest_ImportKeyMaterialRequest{KeyId, ImportToken, EncryptedKeyMaterial, ValidTo, ExpirationModel}} +} + +func (_this ImportKeyMaterialRequest) Is_ImportKeyMaterialRequest() bool { + _, ok := _this.Get_().(ImportKeyMaterialRequest_ImportKeyMaterialRequest) + return ok +} + +func (CompanionStruct_ImportKeyMaterialRequest_) Default() ImportKeyMaterialRequest { + return Companion_ImportKeyMaterialRequest_.Create_ImportKeyMaterialRequest_(_dafny.EmptySeq.SetString(), _dafny.EmptySeq, _dafny.EmptySeq, m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this ImportKeyMaterialRequest) Dtor_KeyId() _dafny.Sequence { + return _this.Get_().(ImportKeyMaterialRequest_ImportKeyMaterialRequest).KeyId +} + +func (_this ImportKeyMaterialRequest) Dtor_ImportToken() _dafny.Sequence { + return _this.Get_().(ImportKeyMaterialRequest_ImportKeyMaterialRequest).ImportToken +} + +func (_this ImportKeyMaterialRequest) Dtor_EncryptedKeyMaterial() _dafny.Sequence { + return _this.Get_().(ImportKeyMaterialRequest_ImportKeyMaterialRequest).EncryptedKeyMaterial +} + +func (_this ImportKeyMaterialRequest) Dtor_ValidTo() m_Wrappers.Option { + return _this.Get_().(ImportKeyMaterialRequest_ImportKeyMaterialRequest).ValidTo +} + +func (_this ImportKeyMaterialRequest) Dtor_ExpirationModel() m_Wrappers.Option { + return _this.Get_().(ImportKeyMaterialRequest_ImportKeyMaterialRequest).ExpirationModel +} + +func (_this ImportKeyMaterialRequest) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case ImportKeyMaterialRequest_ImportKeyMaterialRequest: + { + return "ComAmazonawsKmsTypes.ImportKeyMaterialRequest.ImportKeyMaterialRequest" + "(" + _dafny.String(data.KeyId) + ", " + _dafny.String(data.ImportToken) + ", " + _dafny.String(data.EncryptedKeyMaterial) + ", " + _dafny.String(data.ValidTo) + ", " + _dafny.String(data.ExpirationModel) + ")" + } + default: + { + return "" + } + } +} + +func (_this ImportKeyMaterialRequest) Equals(other ImportKeyMaterialRequest) bool { + switch data1 := _this.Get_().(type) { + case ImportKeyMaterialRequest_ImportKeyMaterialRequest: + { + data2, ok := other.Get_().(ImportKeyMaterialRequest_ImportKeyMaterialRequest) + return ok && data1.KeyId.Equals(data2.KeyId) && data1.ImportToken.Equals(data2.ImportToken) && data1.EncryptedKeyMaterial.Equals(data2.EncryptedKeyMaterial) && data1.ValidTo.Equals(data2.ValidTo) && data1.ExpirationModel.Equals(data2.ExpirationModel) + } + default: + { + return false // unexpected + } + } +} + +func (_this ImportKeyMaterialRequest) EqualsGeneric(other interface{}) bool { + typed, ok := other.(ImportKeyMaterialRequest) + return ok && _this.Equals(typed) +} + +func Type_ImportKeyMaterialRequest_() _dafny.TypeDescriptor { + return type_ImportKeyMaterialRequest_{} +} + +type type_ImportKeyMaterialRequest_ struct { +} + +func (_this type_ImportKeyMaterialRequest_) Default() interface{} { + return Companion_ImportKeyMaterialRequest_.Default() +} + +func (_this type_ImportKeyMaterialRequest_) String() string { + return "ComAmazonawsKmsTypes.ImportKeyMaterialRequest" +} +func (_this ImportKeyMaterialRequest) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = ImportKeyMaterialRequest{} + +// End of datatype ImportKeyMaterialRequest + +// Definition of datatype ImportKeyMaterialResponse +type ImportKeyMaterialResponse struct { + Data_ImportKeyMaterialResponse_ +} + +func (_this ImportKeyMaterialResponse) Get_() Data_ImportKeyMaterialResponse_ { + return _this.Data_ImportKeyMaterialResponse_ +} + +type Data_ImportKeyMaterialResponse_ interface { + isImportKeyMaterialResponse() +} + +type CompanionStruct_ImportKeyMaterialResponse_ struct { +} + +var Companion_ImportKeyMaterialResponse_ = CompanionStruct_ImportKeyMaterialResponse_{} + +type ImportKeyMaterialResponse_ImportKeyMaterialResponse struct { +} + +func (ImportKeyMaterialResponse_ImportKeyMaterialResponse) isImportKeyMaterialResponse() {} + +func (CompanionStruct_ImportKeyMaterialResponse_) Create_ImportKeyMaterialResponse_() ImportKeyMaterialResponse { + return ImportKeyMaterialResponse{ImportKeyMaterialResponse_ImportKeyMaterialResponse{}} +} + +func (_this ImportKeyMaterialResponse) Is_ImportKeyMaterialResponse() bool { + _, ok := _this.Get_().(ImportKeyMaterialResponse_ImportKeyMaterialResponse) + return ok +} + +func (CompanionStruct_ImportKeyMaterialResponse_) Default() ImportKeyMaterialResponse { + return Companion_ImportKeyMaterialResponse_.Create_ImportKeyMaterialResponse_() +} + +func (_ CompanionStruct_ImportKeyMaterialResponse_) AllSingletonConstructors() _dafny.Iterator { + i := -1 + return func() (interface{}, bool) { + i++ + switch i { + case 0: + return Companion_ImportKeyMaterialResponse_.Create_ImportKeyMaterialResponse_(), true + default: + return ImportKeyMaterialResponse{}, false + } + } +} + +func (_this ImportKeyMaterialResponse) String() string { + switch _this.Get_().(type) { + case nil: + return "null" + case ImportKeyMaterialResponse_ImportKeyMaterialResponse: + { + return "ComAmazonawsKmsTypes.ImportKeyMaterialResponse.ImportKeyMaterialResponse" + } + default: + { + return "" + } + } +} + +func (_this ImportKeyMaterialResponse) Equals(other ImportKeyMaterialResponse) bool { + switch _this.Get_().(type) { + case ImportKeyMaterialResponse_ImportKeyMaterialResponse: + { + _, ok := other.Get_().(ImportKeyMaterialResponse_ImportKeyMaterialResponse) + return ok + } + default: + { + return false // unexpected + } + } +} + +func (_this ImportKeyMaterialResponse) EqualsGeneric(other interface{}) bool { + typed, ok := other.(ImportKeyMaterialResponse) + return ok && _this.Equals(typed) +} + +func Type_ImportKeyMaterialResponse_() _dafny.TypeDescriptor { + return type_ImportKeyMaterialResponse_{} +} + +type type_ImportKeyMaterialResponse_ struct { +} + +func (_this type_ImportKeyMaterialResponse_) Default() interface{} { + return Companion_ImportKeyMaterialResponse_.Default() +} + +func (_this type_ImportKeyMaterialResponse_) String() string { + return "ComAmazonawsKmsTypes.ImportKeyMaterialResponse" +} +func (_this ImportKeyMaterialResponse) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = ImportKeyMaterialResponse{} + +// End of datatype ImportKeyMaterialResponse + +// Definition of datatype KeyAgreementAlgorithmSpec +type KeyAgreementAlgorithmSpec struct { + Data_KeyAgreementAlgorithmSpec_ +} + +func (_this KeyAgreementAlgorithmSpec) Get_() Data_KeyAgreementAlgorithmSpec_ { + return _this.Data_KeyAgreementAlgorithmSpec_ +} + +type Data_KeyAgreementAlgorithmSpec_ interface { + isKeyAgreementAlgorithmSpec() +} + +type CompanionStruct_KeyAgreementAlgorithmSpec_ struct { +} + +var Companion_KeyAgreementAlgorithmSpec_ = CompanionStruct_KeyAgreementAlgorithmSpec_{} + +type KeyAgreementAlgorithmSpec_ECDH struct { +} + +func (KeyAgreementAlgorithmSpec_ECDH) isKeyAgreementAlgorithmSpec() {} + +func (CompanionStruct_KeyAgreementAlgorithmSpec_) Create_ECDH_() KeyAgreementAlgorithmSpec { + return KeyAgreementAlgorithmSpec{KeyAgreementAlgorithmSpec_ECDH{}} +} + +func (_this KeyAgreementAlgorithmSpec) Is_ECDH() bool { + _, ok := _this.Get_().(KeyAgreementAlgorithmSpec_ECDH) + return ok +} + +func (CompanionStruct_KeyAgreementAlgorithmSpec_) Default() KeyAgreementAlgorithmSpec { + return Companion_KeyAgreementAlgorithmSpec_.Create_ECDH_() +} + +func (_ CompanionStruct_KeyAgreementAlgorithmSpec_) AllSingletonConstructors() _dafny.Iterator { + i := -1 + return func() (interface{}, bool) { + i++ + switch i { + case 0: + return Companion_KeyAgreementAlgorithmSpec_.Create_ECDH_(), true + default: + return KeyAgreementAlgorithmSpec{}, false + } + } +} + +func (_this KeyAgreementAlgorithmSpec) String() string { + switch _this.Get_().(type) { + case nil: + return "null" + case KeyAgreementAlgorithmSpec_ECDH: + { + return "ComAmazonawsKmsTypes.KeyAgreementAlgorithmSpec.ECDH" + } + default: + { + return "" + } + } +} + +func (_this KeyAgreementAlgorithmSpec) Equals(other KeyAgreementAlgorithmSpec) bool { + switch _this.Get_().(type) { + case KeyAgreementAlgorithmSpec_ECDH: + { + _, ok := other.Get_().(KeyAgreementAlgorithmSpec_ECDH) + return ok + } + default: + { + return false // unexpected + } + } +} + +func (_this KeyAgreementAlgorithmSpec) EqualsGeneric(other interface{}) bool { + typed, ok := other.(KeyAgreementAlgorithmSpec) + return ok && _this.Equals(typed) +} + +func Type_KeyAgreementAlgorithmSpec_() _dafny.TypeDescriptor { + return type_KeyAgreementAlgorithmSpec_{} +} + +type type_KeyAgreementAlgorithmSpec_ struct { +} + +func (_this type_KeyAgreementAlgorithmSpec_) Default() interface{} { + return Companion_KeyAgreementAlgorithmSpec_.Default() +} + +func (_this type_KeyAgreementAlgorithmSpec_) String() string { + return "ComAmazonawsKmsTypes.KeyAgreementAlgorithmSpec" +} +func (_this KeyAgreementAlgorithmSpec) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = KeyAgreementAlgorithmSpec{} + +// End of datatype KeyAgreementAlgorithmSpec + +// Definition of datatype KeyEncryptionMechanism +type KeyEncryptionMechanism struct { + Data_KeyEncryptionMechanism_ +} + +func (_this KeyEncryptionMechanism) Get_() Data_KeyEncryptionMechanism_ { + return _this.Data_KeyEncryptionMechanism_ +} + +type Data_KeyEncryptionMechanism_ interface { + isKeyEncryptionMechanism() +} + +type CompanionStruct_KeyEncryptionMechanism_ struct { +} + +var Companion_KeyEncryptionMechanism_ = CompanionStruct_KeyEncryptionMechanism_{} + +type KeyEncryptionMechanism_RSAES__OAEP__SHA__256 struct { +} + +func (KeyEncryptionMechanism_RSAES__OAEP__SHA__256) isKeyEncryptionMechanism() {} + +func (CompanionStruct_KeyEncryptionMechanism_) Create_RSAES__OAEP__SHA__256_() KeyEncryptionMechanism { + return KeyEncryptionMechanism{KeyEncryptionMechanism_RSAES__OAEP__SHA__256{}} +} + +func (_this KeyEncryptionMechanism) Is_RSAES__OAEP__SHA__256() bool { + _, ok := _this.Get_().(KeyEncryptionMechanism_RSAES__OAEP__SHA__256) + return ok +} + +func (CompanionStruct_KeyEncryptionMechanism_) Default() KeyEncryptionMechanism { + return Companion_KeyEncryptionMechanism_.Create_RSAES__OAEP__SHA__256_() +} + +func (_ CompanionStruct_KeyEncryptionMechanism_) AllSingletonConstructors() _dafny.Iterator { + i := -1 + return func() (interface{}, bool) { + i++ + switch i { + case 0: + return Companion_KeyEncryptionMechanism_.Create_RSAES__OAEP__SHA__256_(), true + default: + return KeyEncryptionMechanism{}, false + } + } +} + +func (_this KeyEncryptionMechanism) String() string { + switch _this.Get_().(type) { + case nil: + return "null" + case KeyEncryptionMechanism_RSAES__OAEP__SHA__256: + { + return "ComAmazonawsKmsTypes.KeyEncryptionMechanism.RSAES_OAEP_SHA_256" + } + default: + { + return "" + } + } +} + +func (_this KeyEncryptionMechanism) Equals(other KeyEncryptionMechanism) bool { + switch _this.Get_().(type) { + case KeyEncryptionMechanism_RSAES__OAEP__SHA__256: + { + _, ok := other.Get_().(KeyEncryptionMechanism_RSAES__OAEP__SHA__256) + return ok + } + default: + { + return false // unexpected + } + } +} + +func (_this KeyEncryptionMechanism) EqualsGeneric(other interface{}) bool { + typed, ok := other.(KeyEncryptionMechanism) + return ok && _this.Equals(typed) +} + +func Type_KeyEncryptionMechanism_() _dafny.TypeDescriptor { + return type_KeyEncryptionMechanism_{} +} + +type type_KeyEncryptionMechanism_ struct { +} + +func (_this type_KeyEncryptionMechanism_) Default() interface{} { + return Companion_KeyEncryptionMechanism_.Default() +} + +func (_this type_KeyEncryptionMechanism_) String() string { + return "ComAmazonawsKmsTypes.KeyEncryptionMechanism" +} +func (_this KeyEncryptionMechanism) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = KeyEncryptionMechanism{} + +// End of datatype KeyEncryptionMechanism + +// Definition of class KeyIdType +type KeyIdType struct { +} + +func New_KeyIdType_() *KeyIdType { + _this := KeyIdType{} + + return &_this +} + +type CompanionStruct_KeyIdType_ struct { +} + +var Companion_KeyIdType_ = CompanionStruct_KeyIdType_{} + +func (*KeyIdType) String() string { + return "ComAmazonawsKmsTypes.KeyIdType" +} + +// End of class KeyIdType + +func Type_KeyIdType_() _dafny.TypeDescriptor { + return type_KeyIdType_{} +} + +type type_KeyIdType_ struct { +} + +func (_this type_KeyIdType_) Default() interface{} { + return _dafny.EmptySeq.SetString() +} + +func (_this type_KeyIdType_) String() string { + return "ComAmazonawsKmsTypes.KeyIdType" +} +func (_this *CompanionStruct_KeyIdType_) Is_(__source _dafny.Sequence) bool { + var _12_x _dafny.Sequence = (__source) + _ = _12_x + return Companion_Default___.IsValid__KeyIdType(_12_x) +} + +// Definition of datatype KeyListEntry +type KeyListEntry struct { + Data_KeyListEntry_ +} + +func (_this KeyListEntry) Get_() Data_KeyListEntry_ { + return _this.Data_KeyListEntry_ +} + +type Data_KeyListEntry_ interface { + isKeyListEntry() +} + +type CompanionStruct_KeyListEntry_ struct { +} + +var Companion_KeyListEntry_ = CompanionStruct_KeyListEntry_{} + +type KeyListEntry_KeyListEntry struct { + KeyId m_Wrappers.Option + KeyArn m_Wrappers.Option +} + +func (KeyListEntry_KeyListEntry) isKeyListEntry() {} + +func (CompanionStruct_KeyListEntry_) Create_KeyListEntry_(KeyId m_Wrappers.Option, KeyArn m_Wrappers.Option) KeyListEntry { + return KeyListEntry{KeyListEntry_KeyListEntry{KeyId, KeyArn}} +} + +func (_this KeyListEntry) Is_KeyListEntry() bool { + _, ok := _this.Get_().(KeyListEntry_KeyListEntry) + return ok +} + +func (CompanionStruct_KeyListEntry_) Default() KeyListEntry { + return Companion_KeyListEntry_.Create_KeyListEntry_(m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this KeyListEntry) Dtor_KeyId() m_Wrappers.Option { + return _this.Get_().(KeyListEntry_KeyListEntry).KeyId +} + +func (_this KeyListEntry) Dtor_KeyArn() m_Wrappers.Option { + return _this.Get_().(KeyListEntry_KeyListEntry).KeyArn +} + +func (_this KeyListEntry) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case KeyListEntry_KeyListEntry: + { + return "ComAmazonawsKmsTypes.KeyListEntry.KeyListEntry" + "(" + _dafny.String(data.KeyId) + ", " + _dafny.String(data.KeyArn) + ")" + } + default: + { + return "" + } + } +} + +func (_this KeyListEntry) Equals(other KeyListEntry) bool { + switch data1 := _this.Get_().(type) { + case KeyListEntry_KeyListEntry: + { + data2, ok := other.Get_().(KeyListEntry_KeyListEntry) + return ok && data1.KeyId.Equals(data2.KeyId) && data1.KeyArn.Equals(data2.KeyArn) + } + default: + { + return false // unexpected + } + } +} + +func (_this KeyListEntry) EqualsGeneric(other interface{}) bool { + typed, ok := other.(KeyListEntry) + return ok && _this.Equals(typed) +} + +func Type_KeyListEntry_() _dafny.TypeDescriptor { + return type_KeyListEntry_{} +} + +type type_KeyListEntry_ struct { +} + +func (_this type_KeyListEntry_) Default() interface{} { + return Companion_KeyListEntry_.Default() +} + +func (_this type_KeyListEntry_) String() string { + return "ComAmazonawsKmsTypes.KeyListEntry" +} +func (_this KeyListEntry) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = KeyListEntry{} + +// End of datatype KeyListEntry + +// Definition of datatype KeyManagerType +type KeyManagerType struct { + Data_KeyManagerType_ +} + +func (_this KeyManagerType) Get_() Data_KeyManagerType_ { + return _this.Data_KeyManagerType_ +} + +type Data_KeyManagerType_ interface { + isKeyManagerType() +} + +type CompanionStruct_KeyManagerType_ struct { +} + +var Companion_KeyManagerType_ = CompanionStruct_KeyManagerType_{} + +type KeyManagerType_AWS struct { +} + +func (KeyManagerType_AWS) isKeyManagerType() {} + +func (CompanionStruct_KeyManagerType_) Create_AWS_() KeyManagerType { + return KeyManagerType{KeyManagerType_AWS{}} +} + +func (_this KeyManagerType) Is_AWS() bool { + _, ok := _this.Get_().(KeyManagerType_AWS) + return ok +} + +type KeyManagerType_CUSTOMER struct { +} + +func (KeyManagerType_CUSTOMER) isKeyManagerType() {} + +func (CompanionStruct_KeyManagerType_) Create_CUSTOMER_() KeyManagerType { + return KeyManagerType{KeyManagerType_CUSTOMER{}} +} + +func (_this KeyManagerType) Is_CUSTOMER() bool { + _, ok := _this.Get_().(KeyManagerType_CUSTOMER) + return ok +} + +func (CompanionStruct_KeyManagerType_) Default() KeyManagerType { + return Companion_KeyManagerType_.Create_AWS_() +} + +func (_ CompanionStruct_KeyManagerType_) AllSingletonConstructors() _dafny.Iterator { + i := -1 + return func() (interface{}, bool) { + i++ + switch i { + case 0: + return Companion_KeyManagerType_.Create_AWS_(), true + case 1: + return Companion_KeyManagerType_.Create_CUSTOMER_(), true + default: + return KeyManagerType{}, false + } + } +} + +func (_this KeyManagerType) String() string { + switch _this.Get_().(type) { + case nil: + return "null" + case KeyManagerType_AWS: + { + return "ComAmazonawsKmsTypes.KeyManagerType.AWS" + } + case KeyManagerType_CUSTOMER: + { + return "ComAmazonawsKmsTypes.KeyManagerType.CUSTOMER" + } + default: + { + return "" + } + } +} + +func (_this KeyManagerType) Equals(other KeyManagerType) bool { + switch _this.Get_().(type) { + case KeyManagerType_AWS: + { + _, ok := other.Get_().(KeyManagerType_AWS) + return ok + } + case KeyManagerType_CUSTOMER: + { + _, ok := other.Get_().(KeyManagerType_CUSTOMER) + return ok + } + default: + { + return false // unexpected + } + } +} + +func (_this KeyManagerType) EqualsGeneric(other interface{}) bool { + typed, ok := other.(KeyManagerType) + return ok && _this.Equals(typed) +} + +func Type_KeyManagerType_() _dafny.TypeDescriptor { + return type_KeyManagerType_{} +} + +type type_KeyManagerType_ struct { +} + +func (_this type_KeyManagerType_) Default() interface{} { + return Companion_KeyManagerType_.Default() +} + +func (_this type_KeyManagerType_) String() string { + return "ComAmazonawsKmsTypes.KeyManagerType" +} +func (_this KeyManagerType) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = KeyManagerType{} + +// End of datatype KeyManagerType + +// Definition of datatype KeyMetadata +type KeyMetadata struct { + Data_KeyMetadata_ +} + +func (_this KeyMetadata) Get_() Data_KeyMetadata_ { + return _this.Data_KeyMetadata_ +} + +type Data_KeyMetadata_ interface { + isKeyMetadata() +} + +type CompanionStruct_KeyMetadata_ struct { +} + +var Companion_KeyMetadata_ = CompanionStruct_KeyMetadata_{} + +type KeyMetadata_KeyMetadata struct { + AWSAccountId m_Wrappers.Option + KeyId _dafny.Sequence + Arn m_Wrappers.Option + CreationDate m_Wrappers.Option + Enabled m_Wrappers.Option + Description m_Wrappers.Option + KeyUsage m_Wrappers.Option + KeyState m_Wrappers.Option + DeletionDate m_Wrappers.Option + ValidTo m_Wrappers.Option + Origin m_Wrappers.Option + CustomKeyStoreId m_Wrappers.Option + CloudHsmClusterId m_Wrappers.Option + ExpirationModel m_Wrappers.Option + KeyManager m_Wrappers.Option + CustomerMasterKeySpec m_Wrappers.Option + KeySpec m_Wrappers.Option + EncryptionAlgorithms m_Wrappers.Option + SigningAlgorithms m_Wrappers.Option + KeyAgreementAlgorithms m_Wrappers.Option + MultiRegion m_Wrappers.Option + MultiRegionConfiguration m_Wrappers.Option + PendingDeletionWindowInDays m_Wrappers.Option + MacAlgorithms m_Wrappers.Option + XksKeyConfiguration m_Wrappers.Option +} + +func (KeyMetadata_KeyMetadata) isKeyMetadata() {} + +func (CompanionStruct_KeyMetadata_) Create_KeyMetadata_(AWSAccountId m_Wrappers.Option, KeyId _dafny.Sequence, Arn m_Wrappers.Option, CreationDate m_Wrappers.Option, Enabled m_Wrappers.Option, Description m_Wrappers.Option, KeyUsage m_Wrappers.Option, KeyState m_Wrappers.Option, DeletionDate m_Wrappers.Option, ValidTo m_Wrappers.Option, Origin m_Wrappers.Option, CustomKeyStoreId m_Wrappers.Option, CloudHsmClusterId m_Wrappers.Option, ExpirationModel m_Wrappers.Option, KeyManager m_Wrappers.Option, CustomerMasterKeySpec m_Wrappers.Option, KeySpec m_Wrappers.Option, EncryptionAlgorithms m_Wrappers.Option, SigningAlgorithms m_Wrappers.Option, KeyAgreementAlgorithms m_Wrappers.Option, MultiRegion m_Wrappers.Option, MultiRegionConfiguration m_Wrappers.Option, PendingDeletionWindowInDays m_Wrappers.Option, MacAlgorithms m_Wrappers.Option, XksKeyConfiguration m_Wrappers.Option) KeyMetadata { + return KeyMetadata{KeyMetadata_KeyMetadata{AWSAccountId, KeyId, Arn, CreationDate, Enabled, Description, KeyUsage, KeyState, DeletionDate, ValidTo, Origin, CustomKeyStoreId, CloudHsmClusterId, ExpirationModel, KeyManager, CustomerMasterKeySpec, KeySpec, EncryptionAlgorithms, SigningAlgorithms, KeyAgreementAlgorithms, MultiRegion, MultiRegionConfiguration, PendingDeletionWindowInDays, MacAlgorithms, XksKeyConfiguration}} +} + +func (_this KeyMetadata) Is_KeyMetadata() bool { + _, ok := _this.Get_().(KeyMetadata_KeyMetadata) + return ok +} + +func (CompanionStruct_KeyMetadata_) Default() KeyMetadata { + return Companion_KeyMetadata_.Create_KeyMetadata_(m_Wrappers.Companion_Option_.Default(), _dafny.EmptySeq.SetString(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this KeyMetadata) Dtor_AWSAccountId() m_Wrappers.Option { + return _this.Get_().(KeyMetadata_KeyMetadata).AWSAccountId +} + +func (_this KeyMetadata) Dtor_KeyId() _dafny.Sequence { + return _this.Get_().(KeyMetadata_KeyMetadata).KeyId +} + +func (_this KeyMetadata) Dtor_Arn() m_Wrappers.Option { + return _this.Get_().(KeyMetadata_KeyMetadata).Arn +} + +func (_this KeyMetadata) Dtor_CreationDate() m_Wrappers.Option { + return _this.Get_().(KeyMetadata_KeyMetadata).CreationDate +} + +func (_this KeyMetadata) Dtor_Enabled() m_Wrappers.Option { + return _this.Get_().(KeyMetadata_KeyMetadata).Enabled +} + +func (_this KeyMetadata) Dtor_Description() m_Wrappers.Option { + return _this.Get_().(KeyMetadata_KeyMetadata).Description +} + +func (_this KeyMetadata) Dtor_KeyUsage() m_Wrappers.Option { + return _this.Get_().(KeyMetadata_KeyMetadata).KeyUsage +} + +func (_this KeyMetadata) Dtor_KeyState() m_Wrappers.Option { + return _this.Get_().(KeyMetadata_KeyMetadata).KeyState +} + +func (_this KeyMetadata) Dtor_DeletionDate() m_Wrappers.Option { + return _this.Get_().(KeyMetadata_KeyMetadata).DeletionDate +} + +func (_this KeyMetadata) Dtor_ValidTo() m_Wrappers.Option { + return _this.Get_().(KeyMetadata_KeyMetadata).ValidTo +} + +func (_this KeyMetadata) Dtor_Origin() m_Wrappers.Option { + return _this.Get_().(KeyMetadata_KeyMetadata).Origin +} + +func (_this KeyMetadata) Dtor_CustomKeyStoreId() m_Wrappers.Option { + return _this.Get_().(KeyMetadata_KeyMetadata).CustomKeyStoreId +} + +func (_this KeyMetadata) Dtor_CloudHsmClusterId() m_Wrappers.Option { + return _this.Get_().(KeyMetadata_KeyMetadata).CloudHsmClusterId +} + +func (_this KeyMetadata) Dtor_ExpirationModel() m_Wrappers.Option { + return _this.Get_().(KeyMetadata_KeyMetadata).ExpirationModel +} + +func (_this KeyMetadata) Dtor_KeyManager() m_Wrappers.Option { + return _this.Get_().(KeyMetadata_KeyMetadata).KeyManager +} + +func (_this KeyMetadata) Dtor_CustomerMasterKeySpec() m_Wrappers.Option { + return _this.Get_().(KeyMetadata_KeyMetadata).CustomerMasterKeySpec +} + +func (_this KeyMetadata) Dtor_KeySpec() m_Wrappers.Option { + return _this.Get_().(KeyMetadata_KeyMetadata).KeySpec +} + +func (_this KeyMetadata) Dtor_EncryptionAlgorithms() m_Wrappers.Option { + return _this.Get_().(KeyMetadata_KeyMetadata).EncryptionAlgorithms +} + +func (_this KeyMetadata) Dtor_SigningAlgorithms() m_Wrappers.Option { + return _this.Get_().(KeyMetadata_KeyMetadata).SigningAlgorithms +} + +func (_this KeyMetadata) Dtor_KeyAgreementAlgorithms() m_Wrappers.Option { + return _this.Get_().(KeyMetadata_KeyMetadata).KeyAgreementAlgorithms +} + +func (_this KeyMetadata) Dtor_MultiRegion() m_Wrappers.Option { + return _this.Get_().(KeyMetadata_KeyMetadata).MultiRegion +} + +func (_this KeyMetadata) Dtor_MultiRegionConfiguration() m_Wrappers.Option { + return _this.Get_().(KeyMetadata_KeyMetadata).MultiRegionConfiguration +} + +func (_this KeyMetadata) Dtor_PendingDeletionWindowInDays() m_Wrappers.Option { + return _this.Get_().(KeyMetadata_KeyMetadata).PendingDeletionWindowInDays +} + +func (_this KeyMetadata) Dtor_MacAlgorithms() m_Wrappers.Option { + return _this.Get_().(KeyMetadata_KeyMetadata).MacAlgorithms +} + +func (_this KeyMetadata) Dtor_XksKeyConfiguration() m_Wrappers.Option { + return _this.Get_().(KeyMetadata_KeyMetadata).XksKeyConfiguration +} + +func (_this KeyMetadata) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case KeyMetadata_KeyMetadata: + { + return "ComAmazonawsKmsTypes.KeyMetadata.KeyMetadata" + "(" + _dafny.String(data.AWSAccountId) + ", " + _dafny.String(data.KeyId) + ", " + _dafny.String(data.Arn) + ", " + _dafny.String(data.CreationDate) + ", " + _dafny.String(data.Enabled) + ", " + _dafny.String(data.Description) + ", " + _dafny.String(data.KeyUsage) + ", " + _dafny.String(data.KeyState) + ", " + _dafny.String(data.DeletionDate) + ", " + _dafny.String(data.ValidTo) + ", " + _dafny.String(data.Origin) + ", " + _dafny.String(data.CustomKeyStoreId) + ", " + _dafny.String(data.CloudHsmClusterId) + ", " + _dafny.String(data.ExpirationModel) + ", " + _dafny.String(data.KeyManager) + ", " + _dafny.String(data.CustomerMasterKeySpec) + ", " + _dafny.String(data.KeySpec) + ", " + _dafny.String(data.EncryptionAlgorithms) + ", " + _dafny.String(data.SigningAlgorithms) + ", " + _dafny.String(data.KeyAgreementAlgorithms) + ", " + _dafny.String(data.MultiRegion) + ", " + _dafny.String(data.MultiRegionConfiguration) + ", " + _dafny.String(data.PendingDeletionWindowInDays) + ", " + _dafny.String(data.MacAlgorithms) + ", " + _dafny.String(data.XksKeyConfiguration) + ")" + } + default: + { + return "" + } + } +} + +func (_this KeyMetadata) Equals(other KeyMetadata) bool { + switch data1 := _this.Get_().(type) { + case KeyMetadata_KeyMetadata: + { + data2, ok := other.Get_().(KeyMetadata_KeyMetadata) + return ok && data1.AWSAccountId.Equals(data2.AWSAccountId) && data1.KeyId.Equals(data2.KeyId) && data1.Arn.Equals(data2.Arn) && data1.CreationDate.Equals(data2.CreationDate) && data1.Enabled.Equals(data2.Enabled) && data1.Description.Equals(data2.Description) && data1.KeyUsage.Equals(data2.KeyUsage) && data1.KeyState.Equals(data2.KeyState) && data1.DeletionDate.Equals(data2.DeletionDate) && data1.ValidTo.Equals(data2.ValidTo) && data1.Origin.Equals(data2.Origin) && data1.CustomKeyStoreId.Equals(data2.CustomKeyStoreId) && data1.CloudHsmClusterId.Equals(data2.CloudHsmClusterId) && data1.ExpirationModel.Equals(data2.ExpirationModel) && data1.KeyManager.Equals(data2.KeyManager) && data1.CustomerMasterKeySpec.Equals(data2.CustomerMasterKeySpec) && data1.KeySpec.Equals(data2.KeySpec) && data1.EncryptionAlgorithms.Equals(data2.EncryptionAlgorithms) && data1.SigningAlgorithms.Equals(data2.SigningAlgorithms) && data1.KeyAgreementAlgorithms.Equals(data2.KeyAgreementAlgorithms) && data1.MultiRegion.Equals(data2.MultiRegion) && data1.MultiRegionConfiguration.Equals(data2.MultiRegionConfiguration) && data1.PendingDeletionWindowInDays.Equals(data2.PendingDeletionWindowInDays) && data1.MacAlgorithms.Equals(data2.MacAlgorithms) && data1.XksKeyConfiguration.Equals(data2.XksKeyConfiguration) + } + default: + { + return false // unexpected + } + } +} + +func (_this KeyMetadata) EqualsGeneric(other interface{}) bool { + typed, ok := other.(KeyMetadata) + return ok && _this.Equals(typed) +} + +func Type_KeyMetadata_() _dafny.TypeDescriptor { + return type_KeyMetadata_{} +} + +type type_KeyMetadata_ struct { +} + +func (_this type_KeyMetadata_) Default() interface{} { + return Companion_KeyMetadata_.Default() +} + +func (_this type_KeyMetadata_) String() string { + return "ComAmazonawsKmsTypes.KeyMetadata" +} +func (_this KeyMetadata) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = KeyMetadata{} + +// End of datatype KeyMetadata + +// Definition of datatype KeySpec +type KeySpec struct { + Data_KeySpec_ +} + +func (_this KeySpec) Get_() Data_KeySpec_ { + return _this.Data_KeySpec_ +} + +type Data_KeySpec_ interface { + isKeySpec() +} + +type CompanionStruct_KeySpec_ struct { +} + +var Companion_KeySpec_ = CompanionStruct_KeySpec_{} + +type KeySpec_RSA__2048 struct { +} + +func (KeySpec_RSA__2048) isKeySpec() {} + +func (CompanionStruct_KeySpec_) Create_RSA__2048_() KeySpec { + return KeySpec{KeySpec_RSA__2048{}} +} + +func (_this KeySpec) Is_RSA__2048() bool { + _, ok := _this.Get_().(KeySpec_RSA__2048) + return ok +} + +type KeySpec_RSA__3072 struct { +} + +func (KeySpec_RSA__3072) isKeySpec() {} + +func (CompanionStruct_KeySpec_) Create_RSA__3072_() KeySpec { + return KeySpec{KeySpec_RSA__3072{}} +} + +func (_this KeySpec) Is_RSA__3072() bool { + _, ok := _this.Get_().(KeySpec_RSA__3072) + return ok +} + +type KeySpec_RSA__4096 struct { +} + +func (KeySpec_RSA__4096) isKeySpec() {} + +func (CompanionStruct_KeySpec_) Create_RSA__4096_() KeySpec { + return KeySpec{KeySpec_RSA__4096{}} +} + +func (_this KeySpec) Is_RSA__4096() bool { + _, ok := _this.Get_().(KeySpec_RSA__4096) + return ok +} + +type KeySpec_ECC__NIST__P256 struct { +} + +func (KeySpec_ECC__NIST__P256) isKeySpec() {} + +func (CompanionStruct_KeySpec_) Create_ECC__NIST__P256_() KeySpec { + return KeySpec{KeySpec_ECC__NIST__P256{}} +} + +func (_this KeySpec) Is_ECC__NIST__P256() bool { + _, ok := _this.Get_().(KeySpec_ECC__NIST__P256) + return ok +} + +type KeySpec_ECC__NIST__P384 struct { +} + +func (KeySpec_ECC__NIST__P384) isKeySpec() {} + +func (CompanionStruct_KeySpec_) Create_ECC__NIST__P384_() KeySpec { + return KeySpec{KeySpec_ECC__NIST__P384{}} +} + +func (_this KeySpec) Is_ECC__NIST__P384() bool { + _, ok := _this.Get_().(KeySpec_ECC__NIST__P384) + return ok +} + +type KeySpec_ECC__NIST__P521 struct { +} + +func (KeySpec_ECC__NIST__P521) isKeySpec() {} + +func (CompanionStruct_KeySpec_) Create_ECC__NIST__P521_() KeySpec { + return KeySpec{KeySpec_ECC__NIST__P521{}} +} + +func (_this KeySpec) Is_ECC__NIST__P521() bool { + _, ok := _this.Get_().(KeySpec_ECC__NIST__P521) + return ok +} + +type KeySpec_ECC__SECG__P256K1 struct { +} + +func (KeySpec_ECC__SECG__P256K1) isKeySpec() {} + +func (CompanionStruct_KeySpec_) Create_ECC__SECG__P256K1_() KeySpec { + return KeySpec{KeySpec_ECC__SECG__P256K1{}} +} + +func (_this KeySpec) Is_ECC__SECG__P256K1() bool { + _, ok := _this.Get_().(KeySpec_ECC__SECG__P256K1) + return ok +} + +type KeySpec_SYMMETRIC__DEFAULT struct { +} + +func (KeySpec_SYMMETRIC__DEFAULT) isKeySpec() {} + +func (CompanionStruct_KeySpec_) Create_SYMMETRIC__DEFAULT_() KeySpec { + return KeySpec{KeySpec_SYMMETRIC__DEFAULT{}} +} + +func (_this KeySpec) Is_SYMMETRIC__DEFAULT() bool { + _, ok := _this.Get_().(KeySpec_SYMMETRIC__DEFAULT) + return ok +} + +type KeySpec_HMAC__224 struct { +} + +func (KeySpec_HMAC__224) isKeySpec() {} + +func (CompanionStruct_KeySpec_) Create_HMAC__224_() KeySpec { + return KeySpec{KeySpec_HMAC__224{}} +} + +func (_this KeySpec) Is_HMAC__224() bool { + _, ok := _this.Get_().(KeySpec_HMAC__224) + return ok +} + +type KeySpec_HMAC__256 struct { +} + +func (KeySpec_HMAC__256) isKeySpec() {} + +func (CompanionStruct_KeySpec_) Create_HMAC__256_() KeySpec { + return KeySpec{KeySpec_HMAC__256{}} +} + +func (_this KeySpec) Is_HMAC__256() bool { + _, ok := _this.Get_().(KeySpec_HMAC__256) + return ok +} + +type KeySpec_HMAC__384 struct { +} + +func (KeySpec_HMAC__384) isKeySpec() {} + +func (CompanionStruct_KeySpec_) Create_HMAC__384_() KeySpec { + return KeySpec{KeySpec_HMAC__384{}} +} + +func (_this KeySpec) Is_HMAC__384() bool { + _, ok := _this.Get_().(KeySpec_HMAC__384) + return ok +} + +type KeySpec_HMAC__512 struct { +} + +func (KeySpec_HMAC__512) isKeySpec() {} + +func (CompanionStruct_KeySpec_) Create_HMAC__512_() KeySpec { + return KeySpec{KeySpec_HMAC__512{}} +} + +func (_this KeySpec) Is_HMAC__512() bool { + _, ok := _this.Get_().(KeySpec_HMAC__512) + return ok +} + +type KeySpec_SM2 struct { +} + +func (KeySpec_SM2) isKeySpec() {} + +func (CompanionStruct_KeySpec_) Create_SM2_() KeySpec { + return KeySpec{KeySpec_SM2{}} +} + +func (_this KeySpec) Is_SM2() bool { + _, ok := _this.Get_().(KeySpec_SM2) + return ok +} + +func (CompanionStruct_KeySpec_) Default() KeySpec { + return Companion_KeySpec_.Create_RSA__2048_() +} + +func (_ CompanionStruct_KeySpec_) AllSingletonConstructors() _dafny.Iterator { + i := -1 + return func() (interface{}, bool) { + i++ + switch i { + case 0: + return Companion_KeySpec_.Create_RSA__2048_(), true + case 1: + return Companion_KeySpec_.Create_RSA__3072_(), true + case 2: + return Companion_KeySpec_.Create_RSA__4096_(), true + case 3: + return Companion_KeySpec_.Create_ECC__NIST__P256_(), true + case 4: + return Companion_KeySpec_.Create_ECC__NIST__P384_(), true + case 5: + return Companion_KeySpec_.Create_ECC__NIST__P521_(), true + case 6: + return Companion_KeySpec_.Create_ECC__SECG__P256K1_(), true + case 7: + return Companion_KeySpec_.Create_SYMMETRIC__DEFAULT_(), true + case 8: + return Companion_KeySpec_.Create_HMAC__224_(), true + case 9: + return Companion_KeySpec_.Create_HMAC__256_(), true + case 10: + return Companion_KeySpec_.Create_HMAC__384_(), true + case 11: + return Companion_KeySpec_.Create_HMAC__512_(), true + case 12: + return Companion_KeySpec_.Create_SM2_(), true + default: + return KeySpec{}, false + } + } +} + +func (_this KeySpec) String() string { + switch _this.Get_().(type) { + case nil: + return "null" + case KeySpec_RSA__2048: + { + return "ComAmazonawsKmsTypes.KeySpec.RSA_2048" + } + case KeySpec_RSA__3072: + { + return "ComAmazonawsKmsTypes.KeySpec.RSA_3072" + } + case KeySpec_RSA__4096: + { + return "ComAmazonawsKmsTypes.KeySpec.RSA_4096" + } + case KeySpec_ECC__NIST__P256: + { + return "ComAmazonawsKmsTypes.KeySpec.ECC_NIST_P256" + } + case KeySpec_ECC__NIST__P384: + { + return "ComAmazonawsKmsTypes.KeySpec.ECC_NIST_P384" + } + case KeySpec_ECC__NIST__P521: + { + return "ComAmazonawsKmsTypes.KeySpec.ECC_NIST_P521" + } + case KeySpec_ECC__SECG__P256K1: + { + return "ComAmazonawsKmsTypes.KeySpec.ECC_SECG_P256K1" + } + case KeySpec_SYMMETRIC__DEFAULT: + { + return "ComAmazonawsKmsTypes.KeySpec.SYMMETRIC_DEFAULT" + } + case KeySpec_HMAC__224: + { + return "ComAmazonawsKmsTypes.KeySpec.HMAC_224" + } + case KeySpec_HMAC__256: + { + return "ComAmazonawsKmsTypes.KeySpec.HMAC_256" + } + case KeySpec_HMAC__384: + { + return "ComAmazonawsKmsTypes.KeySpec.HMAC_384" + } + case KeySpec_HMAC__512: + { + return "ComAmazonawsKmsTypes.KeySpec.HMAC_512" + } + case KeySpec_SM2: + { + return "ComAmazonawsKmsTypes.KeySpec.SM2" + } + default: + { + return "" + } + } +} + +func (_this KeySpec) Equals(other KeySpec) bool { + switch _this.Get_().(type) { + case KeySpec_RSA__2048: + { + _, ok := other.Get_().(KeySpec_RSA__2048) + return ok + } + case KeySpec_RSA__3072: + { + _, ok := other.Get_().(KeySpec_RSA__3072) + return ok + } + case KeySpec_RSA__4096: + { + _, ok := other.Get_().(KeySpec_RSA__4096) + return ok + } + case KeySpec_ECC__NIST__P256: + { + _, ok := other.Get_().(KeySpec_ECC__NIST__P256) + return ok + } + case KeySpec_ECC__NIST__P384: + { + _, ok := other.Get_().(KeySpec_ECC__NIST__P384) + return ok + } + case KeySpec_ECC__NIST__P521: + { + _, ok := other.Get_().(KeySpec_ECC__NIST__P521) + return ok + } + case KeySpec_ECC__SECG__P256K1: + { + _, ok := other.Get_().(KeySpec_ECC__SECG__P256K1) + return ok + } + case KeySpec_SYMMETRIC__DEFAULT: + { + _, ok := other.Get_().(KeySpec_SYMMETRIC__DEFAULT) + return ok + } + case KeySpec_HMAC__224: + { + _, ok := other.Get_().(KeySpec_HMAC__224) + return ok + } + case KeySpec_HMAC__256: + { + _, ok := other.Get_().(KeySpec_HMAC__256) + return ok + } + case KeySpec_HMAC__384: + { + _, ok := other.Get_().(KeySpec_HMAC__384) + return ok + } + case KeySpec_HMAC__512: + { + _, ok := other.Get_().(KeySpec_HMAC__512) + return ok + } + case KeySpec_SM2: + { + _, ok := other.Get_().(KeySpec_SM2) + return ok + } + default: + { + return false // unexpected + } + } +} + +func (_this KeySpec) EqualsGeneric(other interface{}) bool { + typed, ok := other.(KeySpec) + return ok && _this.Equals(typed) +} + +func Type_KeySpec_() _dafny.TypeDescriptor { + return type_KeySpec_{} +} + +type type_KeySpec_ struct { +} + +func (_this type_KeySpec_) Default() interface{} { + return Companion_KeySpec_.Default() +} + +func (_this type_KeySpec_) String() string { + return "ComAmazonawsKmsTypes.KeySpec" +} +func (_this KeySpec) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = KeySpec{} + +// End of datatype KeySpec + +// Definition of datatype KeyState +type KeyState struct { + Data_KeyState_ +} + +func (_this KeyState) Get_() Data_KeyState_ { + return _this.Data_KeyState_ +} + +type Data_KeyState_ interface { + isKeyState() +} + +type CompanionStruct_KeyState_ struct { +} + +var Companion_KeyState_ = CompanionStruct_KeyState_{} + +type KeyState_Creating struct { +} + +func (KeyState_Creating) isKeyState() {} + +func (CompanionStruct_KeyState_) Create_Creating_() KeyState { + return KeyState{KeyState_Creating{}} +} + +func (_this KeyState) Is_Creating() bool { + _, ok := _this.Get_().(KeyState_Creating) + return ok +} + +type KeyState_Enabled struct { +} + +func (KeyState_Enabled) isKeyState() {} + +func (CompanionStruct_KeyState_) Create_Enabled_() KeyState { + return KeyState{KeyState_Enabled{}} +} + +func (_this KeyState) Is_Enabled() bool { + _, ok := _this.Get_().(KeyState_Enabled) + return ok +} + +type KeyState_Disabled struct { +} + +func (KeyState_Disabled) isKeyState() {} + +func (CompanionStruct_KeyState_) Create_Disabled_() KeyState { + return KeyState{KeyState_Disabled{}} +} + +func (_this KeyState) Is_Disabled() bool { + _, ok := _this.Get_().(KeyState_Disabled) + return ok +} + +type KeyState_PendingDeletion struct { +} + +func (KeyState_PendingDeletion) isKeyState() {} + +func (CompanionStruct_KeyState_) Create_PendingDeletion_() KeyState { + return KeyState{KeyState_PendingDeletion{}} +} + +func (_this KeyState) Is_PendingDeletion() bool { + _, ok := _this.Get_().(KeyState_PendingDeletion) + return ok +} + +type KeyState_PendingImport struct { +} + +func (KeyState_PendingImport) isKeyState() {} + +func (CompanionStruct_KeyState_) Create_PendingImport_() KeyState { + return KeyState{KeyState_PendingImport{}} +} + +func (_this KeyState) Is_PendingImport() bool { + _, ok := _this.Get_().(KeyState_PendingImport) + return ok +} + +type KeyState_PendingReplicaDeletion struct { +} + +func (KeyState_PendingReplicaDeletion) isKeyState() {} + +func (CompanionStruct_KeyState_) Create_PendingReplicaDeletion_() KeyState { + return KeyState{KeyState_PendingReplicaDeletion{}} +} + +func (_this KeyState) Is_PendingReplicaDeletion() bool { + _, ok := _this.Get_().(KeyState_PendingReplicaDeletion) + return ok +} + +type KeyState_Unavailable struct { +} + +func (KeyState_Unavailable) isKeyState() {} + +func (CompanionStruct_KeyState_) Create_Unavailable_() KeyState { + return KeyState{KeyState_Unavailable{}} +} + +func (_this KeyState) Is_Unavailable() bool { + _, ok := _this.Get_().(KeyState_Unavailable) + return ok +} + +type KeyState_Updating struct { +} + +func (KeyState_Updating) isKeyState() {} + +func (CompanionStruct_KeyState_) Create_Updating_() KeyState { + return KeyState{KeyState_Updating{}} +} + +func (_this KeyState) Is_Updating() bool { + _, ok := _this.Get_().(KeyState_Updating) + return ok +} + +func (CompanionStruct_KeyState_) Default() KeyState { + return Companion_KeyState_.Create_Creating_() +} + +func (_ CompanionStruct_KeyState_) AllSingletonConstructors() _dafny.Iterator { + i := -1 + return func() (interface{}, bool) { + i++ + switch i { + case 0: + return Companion_KeyState_.Create_Creating_(), true + case 1: + return Companion_KeyState_.Create_Enabled_(), true + case 2: + return Companion_KeyState_.Create_Disabled_(), true + case 3: + return Companion_KeyState_.Create_PendingDeletion_(), true + case 4: + return Companion_KeyState_.Create_PendingImport_(), true + case 5: + return Companion_KeyState_.Create_PendingReplicaDeletion_(), true + case 6: + return Companion_KeyState_.Create_Unavailable_(), true + case 7: + return Companion_KeyState_.Create_Updating_(), true + default: + return KeyState{}, false + } + } +} + +func (_this KeyState) String() string { + switch _this.Get_().(type) { + case nil: + return "null" + case KeyState_Creating: + { + return "ComAmazonawsKmsTypes.KeyState.Creating" + } + case KeyState_Enabled: + { + return "ComAmazonawsKmsTypes.KeyState.Enabled" + } + case KeyState_Disabled: + { + return "ComAmazonawsKmsTypes.KeyState.Disabled" + } + case KeyState_PendingDeletion: + { + return "ComAmazonawsKmsTypes.KeyState.PendingDeletion" + } + case KeyState_PendingImport: + { + return "ComAmazonawsKmsTypes.KeyState.PendingImport" + } + case KeyState_PendingReplicaDeletion: + { + return "ComAmazonawsKmsTypes.KeyState.PendingReplicaDeletion" + } + case KeyState_Unavailable: + { + return "ComAmazonawsKmsTypes.KeyState.Unavailable" + } + case KeyState_Updating: + { + return "ComAmazonawsKmsTypes.KeyState.Updating" + } + default: + { + return "" + } + } +} + +func (_this KeyState) Equals(other KeyState) bool { + switch _this.Get_().(type) { + case KeyState_Creating: + { + _, ok := other.Get_().(KeyState_Creating) + return ok + } + case KeyState_Enabled: + { + _, ok := other.Get_().(KeyState_Enabled) + return ok + } + case KeyState_Disabled: + { + _, ok := other.Get_().(KeyState_Disabled) + return ok + } + case KeyState_PendingDeletion: + { + _, ok := other.Get_().(KeyState_PendingDeletion) + return ok + } + case KeyState_PendingImport: + { + _, ok := other.Get_().(KeyState_PendingImport) + return ok + } + case KeyState_PendingReplicaDeletion: + { + _, ok := other.Get_().(KeyState_PendingReplicaDeletion) + return ok + } + case KeyState_Unavailable: + { + _, ok := other.Get_().(KeyState_Unavailable) + return ok + } + case KeyState_Updating: + { + _, ok := other.Get_().(KeyState_Updating) + return ok + } + default: + { + return false // unexpected + } + } +} + +func (_this KeyState) EqualsGeneric(other interface{}) bool { + typed, ok := other.(KeyState) + return ok && _this.Equals(typed) +} + +func Type_KeyState_() _dafny.TypeDescriptor { + return type_KeyState_{} +} + +type type_KeyState_ struct { +} + +func (_this type_KeyState_) Default() interface{} { + return Companion_KeyState_.Default() +} + +func (_this type_KeyState_) String() string { + return "ComAmazonawsKmsTypes.KeyState" +} +func (_this KeyState) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = KeyState{} + +// End of datatype KeyState + +// Definition of class KeyStorePasswordType +type KeyStorePasswordType struct { +} + +func New_KeyStorePasswordType_() *KeyStorePasswordType { + _this := KeyStorePasswordType{} + + return &_this +} + +type CompanionStruct_KeyStorePasswordType_ struct { +} + +var Companion_KeyStorePasswordType_ = CompanionStruct_KeyStorePasswordType_{} + +func (*KeyStorePasswordType) String() string { + return "ComAmazonawsKmsTypes.KeyStorePasswordType" +} + +// End of class KeyStorePasswordType + +func Type_KeyStorePasswordType_() _dafny.TypeDescriptor { + return type_KeyStorePasswordType_{} +} + +type type_KeyStorePasswordType_ struct { +} + +func (_this type_KeyStorePasswordType_) Default() interface{} { + return _dafny.EmptySeq.SetString() +} + +func (_this type_KeyStorePasswordType_) String() string { + return "ComAmazonawsKmsTypes.KeyStorePasswordType" +} +func (_this *CompanionStruct_KeyStorePasswordType_) Is_(__source _dafny.Sequence) bool { + var _13_x _dafny.Sequence = (__source) + _ = _13_x + return Companion_Default___.IsValid__KeyStorePasswordType(_13_x) +} + +// Definition of datatype KeyUsageType +type KeyUsageType struct { + Data_KeyUsageType_ +} + +func (_this KeyUsageType) Get_() Data_KeyUsageType_ { + return _this.Data_KeyUsageType_ +} + +type Data_KeyUsageType_ interface { + isKeyUsageType() +} + +type CompanionStruct_KeyUsageType_ struct { +} + +var Companion_KeyUsageType_ = CompanionStruct_KeyUsageType_{} + +type KeyUsageType_SIGN__VERIFY struct { +} + +func (KeyUsageType_SIGN__VERIFY) isKeyUsageType() {} + +func (CompanionStruct_KeyUsageType_) Create_SIGN__VERIFY_() KeyUsageType { + return KeyUsageType{KeyUsageType_SIGN__VERIFY{}} +} + +func (_this KeyUsageType) Is_SIGN__VERIFY() bool { + _, ok := _this.Get_().(KeyUsageType_SIGN__VERIFY) + return ok +} + +type KeyUsageType_ENCRYPT__DECRYPT struct { +} + +func (KeyUsageType_ENCRYPT__DECRYPT) isKeyUsageType() {} + +func (CompanionStruct_KeyUsageType_) Create_ENCRYPT__DECRYPT_() KeyUsageType { + return KeyUsageType{KeyUsageType_ENCRYPT__DECRYPT{}} +} + +func (_this KeyUsageType) Is_ENCRYPT__DECRYPT() bool { + _, ok := _this.Get_().(KeyUsageType_ENCRYPT__DECRYPT) + return ok +} + +type KeyUsageType_GENERATE__VERIFY__MAC struct { +} + +func (KeyUsageType_GENERATE__VERIFY__MAC) isKeyUsageType() {} + +func (CompanionStruct_KeyUsageType_) Create_GENERATE__VERIFY__MAC_() KeyUsageType { + return KeyUsageType{KeyUsageType_GENERATE__VERIFY__MAC{}} +} + +func (_this KeyUsageType) Is_GENERATE__VERIFY__MAC() bool { + _, ok := _this.Get_().(KeyUsageType_GENERATE__VERIFY__MAC) + return ok +} + +type KeyUsageType_KEY__AGREEMENT struct { +} + +func (KeyUsageType_KEY__AGREEMENT) isKeyUsageType() {} + +func (CompanionStruct_KeyUsageType_) Create_KEY__AGREEMENT_() KeyUsageType { + return KeyUsageType{KeyUsageType_KEY__AGREEMENT{}} +} + +func (_this KeyUsageType) Is_KEY__AGREEMENT() bool { + _, ok := _this.Get_().(KeyUsageType_KEY__AGREEMENT) + return ok +} + +func (CompanionStruct_KeyUsageType_) Default() KeyUsageType { + return Companion_KeyUsageType_.Create_SIGN__VERIFY_() +} + +func (_ CompanionStruct_KeyUsageType_) AllSingletonConstructors() _dafny.Iterator { + i := -1 + return func() (interface{}, bool) { + i++ + switch i { + case 0: + return Companion_KeyUsageType_.Create_SIGN__VERIFY_(), true + case 1: + return Companion_KeyUsageType_.Create_ENCRYPT__DECRYPT_(), true + case 2: + return Companion_KeyUsageType_.Create_GENERATE__VERIFY__MAC_(), true + case 3: + return Companion_KeyUsageType_.Create_KEY__AGREEMENT_(), true + default: + return KeyUsageType{}, false + } + } +} + +func (_this KeyUsageType) String() string { + switch _this.Get_().(type) { + case nil: + return "null" + case KeyUsageType_SIGN__VERIFY: + { + return "ComAmazonawsKmsTypes.KeyUsageType.SIGN_VERIFY" + } + case KeyUsageType_ENCRYPT__DECRYPT: + { + return "ComAmazonawsKmsTypes.KeyUsageType.ENCRYPT_DECRYPT" + } + case KeyUsageType_GENERATE__VERIFY__MAC: + { + return "ComAmazonawsKmsTypes.KeyUsageType.GENERATE_VERIFY_MAC" + } + case KeyUsageType_KEY__AGREEMENT: + { + return "ComAmazonawsKmsTypes.KeyUsageType.KEY_AGREEMENT" + } + default: + { + return "" + } + } +} + +func (_this KeyUsageType) Equals(other KeyUsageType) bool { + switch _this.Get_().(type) { + case KeyUsageType_SIGN__VERIFY: + { + _, ok := other.Get_().(KeyUsageType_SIGN__VERIFY) + return ok + } + case KeyUsageType_ENCRYPT__DECRYPT: + { + _, ok := other.Get_().(KeyUsageType_ENCRYPT__DECRYPT) + return ok + } + case KeyUsageType_GENERATE__VERIFY__MAC: + { + _, ok := other.Get_().(KeyUsageType_GENERATE__VERIFY__MAC) + return ok + } + case KeyUsageType_KEY__AGREEMENT: + { + _, ok := other.Get_().(KeyUsageType_KEY__AGREEMENT) + return ok + } + default: + { + return false // unexpected + } + } +} + +func (_this KeyUsageType) EqualsGeneric(other interface{}) bool { + typed, ok := other.(KeyUsageType) + return ok && _this.Equals(typed) +} + +func Type_KeyUsageType_() _dafny.TypeDescriptor { + return type_KeyUsageType_{} +} + +type type_KeyUsageType_ struct { +} + +func (_this type_KeyUsageType_) Default() interface{} { + return Companion_KeyUsageType_.Default() +} + +func (_this type_KeyUsageType_) String() string { + return "ComAmazonawsKmsTypes.KeyUsageType" +} +func (_this KeyUsageType) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = KeyUsageType{} + +// End of datatype KeyUsageType + +// Definition of class LimitType +type LimitType struct { +} + +func New_LimitType_() *LimitType { + _this := LimitType{} + + return &_this +} + +type CompanionStruct_LimitType_ struct { +} + +var Companion_LimitType_ = CompanionStruct_LimitType_{} + +func (*LimitType) String() string { + return "ComAmazonawsKmsTypes.LimitType" +} + +// End of class LimitType + +func Type_LimitType_() _dafny.TypeDescriptor { + return type_LimitType_{} +} + +type type_LimitType_ struct { +} + +func (_this type_LimitType_) Default() interface{} { + return int32(0) +} + +func (_this type_LimitType_) String() string { + return "ComAmazonawsKmsTypes.LimitType" +} +func (_this *CompanionStruct_LimitType_) Is_(__source int32) bool { + var _14_x int32 = (__source) + _ = _14_x + if true { + return Companion_Default___.IsValid__LimitType(_14_x) + } + return false +} + +// Definition of datatype ListAliasesRequest +type ListAliasesRequest struct { + Data_ListAliasesRequest_ +} + +func (_this ListAliasesRequest) Get_() Data_ListAliasesRequest_ { + return _this.Data_ListAliasesRequest_ +} + +type Data_ListAliasesRequest_ interface { + isListAliasesRequest() +} + +type CompanionStruct_ListAliasesRequest_ struct { +} + +var Companion_ListAliasesRequest_ = CompanionStruct_ListAliasesRequest_{} + +type ListAliasesRequest_ListAliasesRequest struct { + KeyId m_Wrappers.Option + Limit m_Wrappers.Option + Marker m_Wrappers.Option +} + +func (ListAliasesRequest_ListAliasesRequest) isListAliasesRequest() {} + +func (CompanionStruct_ListAliasesRequest_) Create_ListAliasesRequest_(KeyId m_Wrappers.Option, Limit m_Wrappers.Option, Marker m_Wrappers.Option) ListAliasesRequest { + return ListAliasesRequest{ListAliasesRequest_ListAliasesRequest{KeyId, Limit, Marker}} +} + +func (_this ListAliasesRequest) Is_ListAliasesRequest() bool { + _, ok := _this.Get_().(ListAliasesRequest_ListAliasesRequest) + return ok +} + +func (CompanionStruct_ListAliasesRequest_) Default() ListAliasesRequest { + return Companion_ListAliasesRequest_.Create_ListAliasesRequest_(m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this ListAliasesRequest) Dtor_KeyId() m_Wrappers.Option { + return _this.Get_().(ListAliasesRequest_ListAliasesRequest).KeyId +} + +func (_this ListAliasesRequest) Dtor_Limit() m_Wrappers.Option { + return _this.Get_().(ListAliasesRequest_ListAliasesRequest).Limit +} + +func (_this ListAliasesRequest) Dtor_Marker() m_Wrappers.Option { + return _this.Get_().(ListAliasesRequest_ListAliasesRequest).Marker +} + +func (_this ListAliasesRequest) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case ListAliasesRequest_ListAliasesRequest: + { + return "ComAmazonawsKmsTypes.ListAliasesRequest.ListAliasesRequest" + "(" + _dafny.String(data.KeyId) + ", " + _dafny.String(data.Limit) + ", " + _dafny.String(data.Marker) + ")" + } + default: + { + return "" + } + } +} + +func (_this ListAliasesRequest) Equals(other ListAliasesRequest) bool { + switch data1 := _this.Get_().(type) { + case ListAliasesRequest_ListAliasesRequest: + { + data2, ok := other.Get_().(ListAliasesRequest_ListAliasesRequest) + return ok && data1.KeyId.Equals(data2.KeyId) && data1.Limit.Equals(data2.Limit) && data1.Marker.Equals(data2.Marker) + } + default: + { + return false // unexpected + } + } +} + +func (_this ListAliasesRequest) EqualsGeneric(other interface{}) bool { + typed, ok := other.(ListAliasesRequest) + return ok && _this.Equals(typed) +} + +func Type_ListAliasesRequest_() _dafny.TypeDescriptor { + return type_ListAliasesRequest_{} +} + +type type_ListAliasesRequest_ struct { +} + +func (_this type_ListAliasesRequest_) Default() interface{} { + return Companion_ListAliasesRequest_.Default() +} + +func (_this type_ListAliasesRequest_) String() string { + return "ComAmazonawsKmsTypes.ListAliasesRequest" +} +func (_this ListAliasesRequest) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = ListAliasesRequest{} + +// End of datatype ListAliasesRequest + +// Definition of datatype ListAliasesResponse +type ListAliasesResponse struct { + Data_ListAliasesResponse_ +} + +func (_this ListAliasesResponse) Get_() Data_ListAliasesResponse_ { + return _this.Data_ListAliasesResponse_ +} + +type Data_ListAliasesResponse_ interface { + isListAliasesResponse() +} + +type CompanionStruct_ListAliasesResponse_ struct { +} + +var Companion_ListAliasesResponse_ = CompanionStruct_ListAliasesResponse_{} + +type ListAliasesResponse_ListAliasesResponse struct { + Aliases m_Wrappers.Option + NextMarker m_Wrappers.Option + Truncated m_Wrappers.Option +} + +func (ListAliasesResponse_ListAliasesResponse) isListAliasesResponse() {} + +func (CompanionStruct_ListAliasesResponse_) Create_ListAliasesResponse_(Aliases m_Wrappers.Option, NextMarker m_Wrappers.Option, Truncated m_Wrappers.Option) ListAliasesResponse { + return ListAliasesResponse{ListAliasesResponse_ListAliasesResponse{Aliases, NextMarker, Truncated}} +} + +func (_this ListAliasesResponse) Is_ListAliasesResponse() bool { + _, ok := _this.Get_().(ListAliasesResponse_ListAliasesResponse) + return ok +} + +func (CompanionStruct_ListAliasesResponse_) Default() ListAliasesResponse { + return Companion_ListAliasesResponse_.Create_ListAliasesResponse_(m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this ListAliasesResponse) Dtor_Aliases() m_Wrappers.Option { + return _this.Get_().(ListAliasesResponse_ListAliasesResponse).Aliases +} + +func (_this ListAliasesResponse) Dtor_NextMarker() m_Wrappers.Option { + return _this.Get_().(ListAliasesResponse_ListAliasesResponse).NextMarker +} + +func (_this ListAliasesResponse) Dtor_Truncated() m_Wrappers.Option { + return _this.Get_().(ListAliasesResponse_ListAliasesResponse).Truncated +} + +func (_this ListAliasesResponse) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case ListAliasesResponse_ListAliasesResponse: + { + return "ComAmazonawsKmsTypes.ListAliasesResponse.ListAliasesResponse" + "(" + _dafny.String(data.Aliases) + ", " + _dafny.String(data.NextMarker) + ", " + _dafny.String(data.Truncated) + ")" + } + default: + { + return "" + } + } +} + +func (_this ListAliasesResponse) Equals(other ListAliasesResponse) bool { + switch data1 := _this.Get_().(type) { + case ListAliasesResponse_ListAliasesResponse: + { + data2, ok := other.Get_().(ListAliasesResponse_ListAliasesResponse) + return ok && data1.Aliases.Equals(data2.Aliases) && data1.NextMarker.Equals(data2.NextMarker) && data1.Truncated.Equals(data2.Truncated) + } + default: + { + return false // unexpected + } + } +} + +func (_this ListAliasesResponse) EqualsGeneric(other interface{}) bool { + typed, ok := other.(ListAliasesResponse) + return ok && _this.Equals(typed) +} + +func Type_ListAliasesResponse_() _dafny.TypeDescriptor { + return type_ListAliasesResponse_{} +} + +type type_ListAliasesResponse_ struct { +} + +func (_this type_ListAliasesResponse_) Default() interface{} { + return Companion_ListAliasesResponse_.Default() +} + +func (_this type_ListAliasesResponse_) String() string { + return "ComAmazonawsKmsTypes.ListAliasesResponse" +} +func (_this ListAliasesResponse) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = ListAliasesResponse{} + +// End of datatype ListAliasesResponse + +// Definition of datatype ListGrantsRequest +type ListGrantsRequest struct { + Data_ListGrantsRequest_ +} + +func (_this ListGrantsRequest) Get_() Data_ListGrantsRequest_ { + return _this.Data_ListGrantsRequest_ +} + +type Data_ListGrantsRequest_ interface { + isListGrantsRequest() +} + +type CompanionStruct_ListGrantsRequest_ struct { +} + +var Companion_ListGrantsRequest_ = CompanionStruct_ListGrantsRequest_{} + +type ListGrantsRequest_ListGrantsRequest struct { + Limit m_Wrappers.Option + Marker m_Wrappers.Option + KeyId _dafny.Sequence + GrantId m_Wrappers.Option + GranteePrincipal m_Wrappers.Option +} + +func (ListGrantsRequest_ListGrantsRequest) isListGrantsRequest() {} + +func (CompanionStruct_ListGrantsRequest_) Create_ListGrantsRequest_(Limit m_Wrappers.Option, Marker m_Wrappers.Option, KeyId _dafny.Sequence, GrantId m_Wrappers.Option, GranteePrincipal m_Wrappers.Option) ListGrantsRequest { + return ListGrantsRequest{ListGrantsRequest_ListGrantsRequest{Limit, Marker, KeyId, GrantId, GranteePrincipal}} +} + +func (_this ListGrantsRequest) Is_ListGrantsRequest() bool { + _, ok := _this.Get_().(ListGrantsRequest_ListGrantsRequest) + return ok +} + +func (CompanionStruct_ListGrantsRequest_) Default() ListGrantsRequest { + return Companion_ListGrantsRequest_.Create_ListGrantsRequest_(m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), _dafny.EmptySeq.SetString(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this ListGrantsRequest) Dtor_Limit() m_Wrappers.Option { + return _this.Get_().(ListGrantsRequest_ListGrantsRequest).Limit +} + +func (_this ListGrantsRequest) Dtor_Marker() m_Wrappers.Option { + return _this.Get_().(ListGrantsRequest_ListGrantsRequest).Marker +} + +func (_this ListGrantsRequest) Dtor_KeyId() _dafny.Sequence { + return _this.Get_().(ListGrantsRequest_ListGrantsRequest).KeyId +} + +func (_this ListGrantsRequest) Dtor_GrantId() m_Wrappers.Option { + return _this.Get_().(ListGrantsRequest_ListGrantsRequest).GrantId +} + +func (_this ListGrantsRequest) Dtor_GranteePrincipal() m_Wrappers.Option { + return _this.Get_().(ListGrantsRequest_ListGrantsRequest).GranteePrincipal +} + +func (_this ListGrantsRequest) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case ListGrantsRequest_ListGrantsRequest: + { + return "ComAmazonawsKmsTypes.ListGrantsRequest.ListGrantsRequest" + "(" + _dafny.String(data.Limit) + ", " + _dafny.String(data.Marker) + ", " + _dafny.String(data.KeyId) + ", " + _dafny.String(data.GrantId) + ", " + _dafny.String(data.GranteePrincipal) + ")" + } + default: + { + return "" + } + } +} + +func (_this ListGrantsRequest) Equals(other ListGrantsRequest) bool { + switch data1 := _this.Get_().(type) { + case ListGrantsRequest_ListGrantsRequest: + { + data2, ok := other.Get_().(ListGrantsRequest_ListGrantsRequest) + return ok && data1.Limit.Equals(data2.Limit) && data1.Marker.Equals(data2.Marker) && data1.KeyId.Equals(data2.KeyId) && data1.GrantId.Equals(data2.GrantId) && data1.GranteePrincipal.Equals(data2.GranteePrincipal) + } + default: + { + return false // unexpected + } + } +} + +func (_this ListGrantsRequest) EqualsGeneric(other interface{}) bool { + typed, ok := other.(ListGrantsRequest) + return ok && _this.Equals(typed) +} + +func Type_ListGrantsRequest_() _dafny.TypeDescriptor { + return type_ListGrantsRequest_{} +} + +type type_ListGrantsRequest_ struct { +} + +func (_this type_ListGrantsRequest_) Default() interface{} { + return Companion_ListGrantsRequest_.Default() +} + +func (_this type_ListGrantsRequest_) String() string { + return "ComAmazonawsKmsTypes.ListGrantsRequest" +} +func (_this ListGrantsRequest) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = ListGrantsRequest{} + +// End of datatype ListGrantsRequest + +// Definition of datatype ListGrantsResponse +type ListGrantsResponse struct { + Data_ListGrantsResponse_ +} + +func (_this ListGrantsResponse) Get_() Data_ListGrantsResponse_ { + return _this.Data_ListGrantsResponse_ +} + +type Data_ListGrantsResponse_ interface { + isListGrantsResponse() +} + +type CompanionStruct_ListGrantsResponse_ struct { +} + +var Companion_ListGrantsResponse_ = CompanionStruct_ListGrantsResponse_{} + +type ListGrantsResponse_ListGrantsResponse struct { + Grants m_Wrappers.Option + NextMarker m_Wrappers.Option + Truncated m_Wrappers.Option +} + +func (ListGrantsResponse_ListGrantsResponse) isListGrantsResponse() {} + +func (CompanionStruct_ListGrantsResponse_) Create_ListGrantsResponse_(Grants m_Wrappers.Option, NextMarker m_Wrappers.Option, Truncated m_Wrappers.Option) ListGrantsResponse { + return ListGrantsResponse{ListGrantsResponse_ListGrantsResponse{Grants, NextMarker, Truncated}} +} + +func (_this ListGrantsResponse) Is_ListGrantsResponse() bool { + _, ok := _this.Get_().(ListGrantsResponse_ListGrantsResponse) + return ok +} + +func (CompanionStruct_ListGrantsResponse_) Default() ListGrantsResponse { + return Companion_ListGrantsResponse_.Create_ListGrantsResponse_(m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this ListGrantsResponse) Dtor_Grants() m_Wrappers.Option { + return _this.Get_().(ListGrantsResponse_ListGrantsResponse).Grants +} + +func (_this ListGrantsResponse) Dtor_NextMarker() m_Wrappers.Option { + return _this.Get_().(ListGrantsResponse_ListGrantsResponse).NextMarker +} + +func (_this ListGrantsResponse) Dtor_Truncated() m_Wrappers.Option { + return _this.Get_().(ListGrantsResponse_ListGrantsResponse).Truncated +} + +func (_this ListGrantsResponse) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case ListGrantsResponse_ListGrantsResponse: + { + return "ComAmazonawsKmsTypes.ListGrantsResponse.ListGrantsResponse" + "(" + _dafny.String(data.Grants) + ", " + _dafny.String(data.NextMarker) + ", " + _dafny.String(data.Truncated) + ")" + } + default: + { + return "" + } + } +} + +func (_this ListGrantsResponse) Equals(other ListGrantsResponse) bool { + switch data1 := _this.Get_().(type) { + case ListGrantsResponse_ListGrantsResponse: + { + data2, ok := other.Get_().(ListGrantsResponse_ListGrantsResponse) + return ok && data1.Grants.Equals(data2.Grants) && data1.NextMarker.Equals(data2.NextMarker) && data1.Truncated.Equals(data2.Truncated) + } + default: + { + return false // unexpected + } + } +} + +func (_this ListGrantsResponse) EqualsGeneric(other interface{}) bool { + typed, ok := other.(ListGrantsResponse) + return ok && _this.Equals(typed) +} + +func Type_ListGrantsResponse_() _dafny.TypeDescriptor { + return type_ListGrantsResponse_{} +} + +type type_ListGrantsResponse_ struct { +} + +func (_this type_ListGrantsResponse_) Default() interface{} { + return Companion_ListGrantsResponse_.Default() +} + +func (_this type_ListGrantsResponse_) String() string { + return "ComAmazonawsKmsTypes.ListGrantsResponse" +} +func (_this ListGrantsResponse) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = ListGrantsResponse{} + +// End of datatype ListGrantsResponse + +// Definition of datatype ListKeyPoliciesRequest +type ListKeyPoliciesRequest struct { + Data_ListKeyPoliciesRequest_ +} + +func (_this ListKeyPoliciesRequest) Get_() Data_ListKeyPoliciesRequest_ { + return _this.Data_ListKeyPoliciesRequest_ +} + +type Data_ListKeyPoliciesRequest_ interface { + isListKeyPoliciesRequest() +} + +type CompanionStruct_ListKeyPoliciesRequest_ struct { +} + +var Companion_ListKeyPoliciesRequest_ = CompanionStruct_ListKeyPoliciesRequest_{} + +type ListKeyPoliciesRequest_ListKeyPoliciesRequest struct { + KeyId _dafny.Sequence + Limit m_Wrappers.Option + Marker m_Wrappers.Option +} + +func (ListKeyPoliciesRequest_ListKeyPoliciesRequest) isListKeyPoliciesRequest() {} + +func (CompanionStruct_ListKeyPoliciesRequest_) Create_ListKeyPoliciesRequest_(KeyId _dafny.Sequence, Limit m_Wrappers.Option, Marker m_Wrappers.Option) ListKeyPoliciesRequest { + return ListKeyPoliciesRequest{ListKeyPoliciesRequest_ListKeyPoliciesRequest{KeyId, Limit, Marker}} +} + +func (_this ListKeyPoliciesRequest) Is_ListKeyPoliciesRequest() bool { + _, ok := _this.Get_().(ListKeyPoliciesRequest_ListKeyPoliciesRequest) + return ok +} + +func (CompanionStruct_ListKeyPoliciesRequest_) Default() ListKeyPoliciesRequest { + return Companion_ListKeyPoliciesRequest_.Create_ListKeyPoliciesRequest_(_dafny.EmptySeq.SetString(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this ListKeyPoliciesRequest) Dtor_KeyId() _dafny.Sequence { + return _this.Get_().(ListKeyPoliciesRequest_ListKeyPoliciesRequest).KeyId +} + +func (_this ListKeyPoliciesRequest) Dtor_Limit() m_Wrappers.Option { + return _this.Get_().(ListKeyPoliciesRequest_ListKeyPoliciesRequest).Limit +} + +func (_this ListKeyPoliciesRequest) Dtor_Marker() m_Wrappers.Option { + return _this.Get_().(ListKeyPoliciesRequest_ListKeyPoliciesRequest).Marker +} + +func (_this ListKeyPoliciesRequest) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case ListKeyPoliciesRequest_ListKeyPoliciesRequest: + { + return "ComAmazonawsKmsTypes.ListKeyPoliciesRequest.ListKeyPoliciesRequest" + "(" + _dafny.String(data.KeyId) + ", " + _dafny.String(data.Limit) + ", " + _dafny.String(data.Marker) + ")" + } + default: + { + return "" + } + } +} + +func (_this ListKeyPoliciesRequest) Equals(other ListKeyPoliciesRequest) bool { + switch data1 := _this.Get_().(type) { + case ListKeyPoliciesRequest_ListKeyPoliciesRequest: + { + data2, ok := other.Get_().(ListKeyPoliciesRequest_ListKeyPoliciesRequest) + return ok && data1.KeyId.Equals(data2.KeyId) && data1.Limit.Equals(data2.Limit) && data1.Marker.Equals(data2.Marker) + } + default: + { + return false // unexpected + } + } +} + +func (_this ListKeyPoliciesRequest) EqualsGeneric(other interface{}) bool { + typed, ok := other.(ListKeyPoliciesRequest) + return ok && _this.Equals(typed) +} + +func Type_ListKeyPoliciesRequest_() _dafny.TypeDescriptor { + return type_ListKeyPoliciesRequest_{} +} + +type type_ListKeyPoliciesRequest_ struct { +} + +func (_this type_ListKeyPoliciesRequest_) Default() interface{} { + return Companion_ListKeyPoliciesRequest_.Default() +} + +func (_this type_ListKeyPoliciesRequest_) String() string { + return "ComAmazonawsKmsTypes.ListKeyPoliciesRequest" +} +func (_this ListKeyPoliciesRequest) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = ListKeyPoliciesRequest{} + +// End of datatype ListKeyPoliciesRequest + +// Definition of datatype ListKeyPoliciesResponse +type ListKeyPoliciesResponse struct { + Data_ListKeyPoliciesResponse_ +} + +func (_this ListKeyPoliciesResponse) Get_() Data_ListKeyPoliciesResponse_ { + return _this.Data_ListKeyPoliciesResponse_ +} + +type Data_ListKeyPoliciesResponse_ interface { + isListKeyPoliciesResponse() +} + +type CompanionStruct_ListKeyPoliciesResponse_ struct { +} + +var Companion_ListKeyPoliciesResponse_ = CompanionStruct_ListKeyPoliciesResponse_{} + +type ListKeyPoliciesResponse_ListKeyPoliciesResponse struct { + PolicyNames m_Wrappers.Option + NextMarker m_Wrappers.Option + Truncated m_Wrappers.Option +} + +func (ListKeyPoliciesResponse_ListKeyPoliciesResponse) isListKeyPoliciesResponse() {} + +func (CompanionStruct_ListKeyPoliciesResponse_) Create_ListKeyPoliciesResponse_(PolicyNames m_Wrappers.Option, NextMarker m_Wrappers.Option, Truncated m_Wrappers.Option) ListKeyPoliciesResponse { + return ListKeyPoliciesResponse{ListKeyPoliciesResponse_ListKeyPoliciesResponse{PolicyNames, NextMarker, Truncated}} +} + +func (_this ListKeyPoliciesResponse) Is_ListKeyPoliciesResponse() bool { + _, ok := _this.Get_().(ListKeyPoliciesResponse_ListKeyPoliciesResponse) + return ok +} + +func (CompanionStruct_ListKeyPoliciesResponse_) Default() ListKeyPoliciesResponse { + return Companion_ListKeyPoliciesResponse_.Create_ListKeyPoliciesResponse_(m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this ListKeyPoliciesResponse) Dtor_PolicyNames() m_Wrappers.Option { + return _this.Get_().(ListKeyPoliciesResponse_ListKeyPoliciesResponse).PolicyNames +} + +func (_this ListKeyPoliciesResponse) Dtor_NextMarker() m_Wrappers.Option { + return _this.Get_().(ListKeyPoliciesResponse_ListKeyPoliciesResponse).NextMarker +} + +func (_this ListKeyPoliciesResponse) Dtor_Truncated() m_Wrappers.Option { + return _this.Get_().(ListKeyPoliciesResponse_ListKeyPoliciesResponse).Truncated +} + +func (_this ListKeyPoliciesResponse) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case ListKeyPoliciesResponse_ListKeyPoliciesResponse: + { + return "ComAmazonawsKmsTypes.ListKeyPoliciesResponse.ListKeyPoliciesResponse" + "(" + _dafny.String(data.PolicyNames) + ", " + _dafny.String(data.NextMarker) + ", " + _dafny.String(data.Truncated) + ")" + } + default: + { + return "" + } + } +} + +func (_this ListKeyPoliciesResponse) Equals(other ListKeyPoliciesResponse) bool { + switch data1 := _this.Get_().(type) { + case ListKeyPoliciesResponse_ListKeyPoliciesResponse: + { + data2, ok := other.Get_().(ListKeyPoliciesResponse_ListKeyPoliciesResponse) + return ok && data1.PolicyNames.Equals(data2.PolicyNames) && data1.NextMarker.Equals(data2.NextMarker) && data1.Truncated.Equals(data2.Truncated) + } + default: + { + return false // unexpected + } + } +} + +func (_this ListKeyPoliciesResponse) EqualsGeneric(other interface{}) bool { + typed, ok := other.(ListKeyPoliciesResponse) + return ok && _this.Equals(typed) +} + +func Type_ListKeyPoliciesResponse_() _dafny.TypeDescriptor { + return type_ListKeyPoliciesResponse_{} +} + +type type_ListKeyPoliciesResponse_ struct { +} + +func (_this type_ListKeyPoliciesResponse_) Default() interface{} { + return Companion_ListKeyPoliciesResponse_.Default() +} + +func (_this type_ListKeyPoliciesResponse_) String() string { + return "ComAmazonawsKmsTypes.ListKeyPoliciesResponse" +} +func (_this ListKeyPoliciesResponse) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = ListKeyPoliciesResponse{} + +// End of datatype ListKeyPoliciesResponse + +// Definition of datatype ListKeyRotationsRequest +type ListKeyRotationsRequest struct { + Data_ListKeyRotationsRequest_ +} + +func (_this ListKeyRotationsRequest) Get_() Data_ListKeyRotationsRequest_ { + return _this.Data_ListKeyRotationsRequest_ +} + +type Data_ListKeyRotationsRequest_ interface { + isListKeyRotationsRequest() +} + +type CompanionStruct_ListKeyRotationsRequest_ struct { +} + +var Companion_ListKeyRotationsRequest_ = CompanionStruct_ListKeyRotationsRequest_{} + +type ListKeyRotationsRequest_ListKeyRotationsRequest struct { + KeyId _dafny.Sequence + Limit m_Wrappers.Option + Marker m_Wrappers.Option +} + +func (ListKeyRotationsRequest_ListKeyRotationsRequest) isListKeyRotationsRequest() {} + +func (CompanionStruct_ListKeyRotationsRequest_) Create_ListKeyRotationsRequest_(KeyId _dafny.Sequence, Limit m_Wrappers.Option, Marker m_Wrappers.Option) ListKeyRotationsRequest { + return ListKeyRotationsRequest{ListKeyRotationsRequest_ListKeyRotationsRequest{KeyId, Limit, Marker}} +} + +func (_this ListKeyRotationsRequest) Is_ListKeyRotationsRequest() bool { + _, ok := _this.Get_().(ListKeyRotationsRequest_ListKeyRotationsRequest) + return ok +} + +func (CompanionStruct_ListKeyRotationsRequest_) Default() ListKeyRotationsRequest { + return Companion_ListKeyRotationsRequest_.Create_ListKeyRotationsRequest_(_dafny.EmptySeq.SetString(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this ListKeyRotationsRequest) Dtor_KeyId() _dafny.Sequence { + return _this.Get_().(ListKeyRotationsRequest_ListKeyRotationsRequest).KeyId +} + +func (_this ListKeyRotationsRequest) Dtor_Limit() m_Wrappers.Option { + return _this.Get_().(ListKeyRotationsRequest_ListKeyRotationsRequest).Limit +} + +func (_this ListKeyRotationsRequest) Dtor_Marker() m_Wrappers.Option { + return _this.Get_().(ListKeyRotationsRequest_ListKeyRotationsRequest).Marker +} + +func (_this ListKeyRotationsRequest) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case ListKeyRotationsRequest_ListKeyRotationsRequest: + { + return "ComAmazonawsKmsTypes.ListKeyRotationsRequest.ListKeyRotationsRequest" + "(" + _dafny.String(data.KeyId) + ", " + _dafny.String(data.Limit) + ", " + _dafny.String(data.Marker) + ")" + } + default: + { + return "" + } + } +} + +func (_this ListKeyRotationsRequest) Equals(other ListKeyRotationsRequest) bool { + switch data1 := _this.Get_().(type) { + case ListKeyRotationsRequest_ListKeyRotationsRequest: + { + data2, ok := other.Get_().(ListKeyRotationsRequest_ListKeyRotationsRequest) + return ok && data1.KeyId.Equals(data2.KeyId) && data1.Limit.Equals(data2.Limit) && data1.Marker.Equals(data2.Marker) + } + default: + { + return false // unexpected + } + } +} + +func (_this ListKeyRotationsRequest) EqualsGeneric(other interface{}) bool { + typed, ok := other.(ListKeyRotationsRequest) + return ok && _this.Equals(typed) +} + +func Type_ListKeyRotationsRequest_() _dafny.TypeDescriptor { + return type_ListKeyRotationsRequest_{} +} + +type type_ListKeyRotationsRequest_ struct { +} + +func (_this type_ListKeyRotationsRequest_) Default() interface{} { + return Companion_ListKeyRotationsRequest_.Default() +} + +func (_this type_ListKeyRotationsRequest_) String() string { + return "ComAmazonawsKmsTypes.ListKeyRotationsRequest" +} +func (_this ListKeyRotationsRequest) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = ListKeyRotationsRequest{} + +// End of datatype ListKeyRotationsRequest + +// Definition of datatype ListKeyRotationsResponse +type ListKeyRotationsResponse struct { + Data_ListKeyRotationsResponse_ +} + +func (_this ListKeyRotationsResponse) Get_() Data_ListKeyRotationsResponse_ { + return _this.Data_ListKeyRotationsResponse_ +} + +type Data_ListKeyRotationsResponse_ interface { + isListKeyRotationsResponse() +} + +type CompanionStruct_ListKeyRotationsResponse_ struct { +} + +var Companion_ListKeyRotationsResponse_ = CompanionStruct_ListKeyRotationsResponse_{} + +type ListKeyRotationsResponse_ListKeyRotationsResponse struct { + Rotations m_Wrappers.Option + NextMarker m_Wrappers.Option + Truncated m_Wrappers.Option +} + +func (ListKeyRotationsResponse_ListKeyRotationsResponse) isListKeyRotationsResponse() {} + +func (CompanionStruct_ListKeyRotationsResponse_) Create_ListKeyRotationsResponse_(Rotations m_Wrappers.Option, NextMarker m_Wrappers.Option, Truncated m_Wrappers.Option) ListKeyRotationsResponse { + return ListKeyRotationsResponse{ListKeyRotationsResponse_ListKeyRotationsResponse{Rotations, NextMarker, Truncated}} +} + +func (_this ListKeyRotationsResponse) Is_ListKeyRotationsResponse() bool { + _, ok := _this.Get_().(ListKeyRotationsResponse_ListKeyRotationsResponse) + return ok +} + +func (CompanionStruct_ListKeyRotationsResponse_) Default() ListKeyRotationsResponse { + return Companion_ListKeyRotationsResponse_.Create_ListKeyRotationsResponse_(m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this ListKeyRotationsResponse) Dtor_Rotations() m_Wrappers.Option { + return _this.Get_().(ListKeyRotationsResponse_ListKeyRotationsResponse).Rotations +} + +func (_this ListKeyRotationsResponse) Dtor_NextMarker() m_Wrappers.Option { + return _this.Get_().(ListKeyRotationsResponse_ListKeyRotationsResponse).NextMarker +} + +func (_this ListKeyRotationsResponse) Dtor_Truncated() m_Wrappers.Option { + return _this.Get_().(ListKeyRotationsResponse_ListKeyRotationsResponse).Truncated +} + +func (_this ListKeyRotationsResponse) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case ListKeyRotationsResponse_ListKeyRotationsResponse: + { + return "ComAmazonawsKmsTypes.ListKeyRotationsResponse.ListKeyRotationsResponse" + "(" + _dafny.String(data.Rotations) + ", " + _dafny.String(data.NextMarker) + ", " + _dafny.String(data.Truncated) + ")" + } + default: + { + return "" + } + } +} + +func (_this ListKeyRotationsResponse) Equals(other ListKeyRotationsResponse) bool { + switch data1 := _this.Get_().(type) { + case ListKeyRotationsResponse_ListKeyRotationsResponse: + { + data2, ok := other.Get_().(ListKeyRotationsResponse_ListKeyRotationsResponse) + return ok && data1.Rotations.Equals(data2.Rotations) && data1.NextMarker.Equals(data2.NextMarker) && data1.Truncated.Equals(data2.Truncated) + } + default: + { + return false // unexpected + } + } +} + +func (_this ListKeyRotationsResponse) EqualsGeneric(other interface{}) bool { + typed, ok := other.(ListKeyRotationsResponse) + return ok && _this.Equals(typed) +} + +func Type_ListKeyRotationsResponse_() _dafny.TypeDescriptor { + return type_ListKeyRotationsResponse_{} +} + +type type_ListKeyRotationsResponse_ struct { +} + +func (_this type_ListKeyRotationsResponse_) Default() interface{} { + return Companion_ListKeyRotationsResponse_.Default() +} + +func (_this type_ListKeyRotationsResponse_) String() string { + return "ComAmazonawsKmsTypes.ListKeyRotationsResponse" +} +func (_this ListKeyRotationsResponse) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = ListKeyRotationsResponse{} + +// End of datatype ListKeyRotationsResponse + +// Definition of datatype ListKeysRequest +type ListKeysRequest struct { + Data_ListKeysRequest_ +} + +func (_this ListKeysRequest) Get_() Data_ListKeysRequest_ { + return _this.Data_ListKeysRequest_ +} + +type Data_ListKeysRequest_ interface { + isListKeysRequest() +} + +type CompanionStruct_ListKeysRequest_ struct { +} + +var Companion_ListKeysRequest_ = CompanionStruct_ListKeysRequest_{} + +type ListKeysRequest_ListKeysRequest struct { + Limit m_Wrappers.Option + Marker m_Wrappers.Option +} + +func (ListKeysRequest_ListKeysRequest) isListKeysRequest() {} + +func (CompanionStruct_ListKeysRequest_) Create_ListKeysRequest_(Limit m_Wrappers.Option, Marker m_Wrappers.Option) ListKeysRequest { + return ListKeysRequest{ListKeysRequest_ListKeysRequest{Limit, Marker}} +} + +func (_this ListKeysRequest) Is_ListKeysRequest() bool { + _, ok := _this.Get_().(ListKeysRequest_ListKeysRequest) + return ok +} + +func (CompanionStruct_ListKeysRequest_) Default() ListKeysRequest { + return Companion_ListKeysRequest_.Create_ListKeysRequest_(m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this ListKeysRequest) Dtor_Limit() m_Wrappers.Option { + return _this.Get_().(ListKeysRequest_ListKeysRequest).Limit +} + +func (_this ListKeysRequest) Dtor_Marker() m_Wrappers.Option { + return _this.Get_().(ListKeysRequest_ListKeysRequest).Marker +} + +func (_this ListKeysRequest) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case ListKeysRequest_ListKeysRequest: + { + return "ComAmazonawsKmsTypes.ListKeysRequest.ListKeysRequest" + "(" + _dafny.String(data.Limit) + ", " + _dafny.String(data.Marker) + ")" + } + default: + { + return "" + } + } +} + +func (_this ListKeysRequest) Equals(other ListKeysRequest) bool { + switch data1 := _this.Get_().(type) { + case ListKeysRequest_ListKeysRequest: + { + data2, ok := other.Get_().(ListKeysRequest_ListKeysRequest) + return ok && data1.Limit.Equals(data2.Limit) && data1.Marker.Equals(data2.Marker) + } + default: + { + return false // unexpected + } + } +} + +func (_this ListKeysRequest) EqualsGeneric(other interface{}) bool { + typed, ok := other.(ListKeysRequest) + return ok && _this.Equals(typed) +} + +func Type_ListKeysRequest_() _dafny.TypeDescriptor { + return type_ListKeysRequest_{} +} + +type type_ListKeysRequest_ struct { +} + +func (_this type_ListKeysRequest_) Default() interface{} { + return Companion_ListKeysRequest_.Default() +} + +func (_this type_ListKeysRequest_) String() string { + return "ComAmazonawsKmsTypes.ListKeysRequest" +} +func (_this ListKeysRequest) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = ListKeysRequest{} + +// End of datatype ListKeysRequest + +// Definition of datatype ListKeysResponse +type ListKeysResponse struct { + Data_ListKeysResponse_ +} + +func (_this ListKeysResponse) Get_() Data_ListKeysResponse_ { + return _this.Data_ListKeysResponse_ +} + +type Data_ListKeysResponse_ interface { + isListKeysResponse() +} + +type CompanionStruct_ListKeysResponse_ struct { +} + +var Companion_ListKeysResponse_ = CompanionStruct_ListKeysResponse_{} + +type ListKeysResponse_ListKeysResponse struct { + Keys m_Wrappers.Option + NextMarker m_Wrappers.Option + Truncated m_Wrappers.Option +} + +func (ListKeysResponse_ListKeysResponse) isListKeysResponse() {} + +func (CompanionStruct_ListKeysResponse_) Create_ListKeysResponse_(Keys m_Wrappers.Option, NextMarker m_Wrappers.Option, Truncated m_Wrappers.Option) ListKeysResponse { + return ListKeysResponse{ListKeysResponse_ListKeysResponse{Keys, NextMarker, Truncated}} +} + +func (_this ListKeysResponse) Is_ListKeysResponse() bool { + _, ok := _this.Get_().(ListKeysResponse_ListKeysResponse) + return ok +} + +func (CompanionStruct_ListKeysResponse_) Default() ListKeysResponse { + return Companion_ListKeysResponse_.Create_ListKeysResponse_(m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this ListKeysResponse) Dtor_Keys() m_Wrappers.Option { + return _this.Get_().(ListKeysResponse_ListKeysResponse).Keys +} + +func (_this ListKeysResponse) Dtor_NextMarker() m_Wrappers.Option { + return _this.Get_().(ListKeysResponse_ListKeysResponse).NextMarker +} + +func (_this ListKeysResponse) Dtor_Truncated() m_Wrappers.Option { + return _this.Get_().(ListKeysResponse_ListKeysResponse).Truncated +} + +func (_this ListKeysResponse) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case ListKeysResponse_ListKeysResponse: + { + return "ComAmazonawsKmsTypes.ListKeysResponse.ListKeysResponse" + "(" + _dafny.String(data.Keys) + ", " + _dafny.String(data.NextMarker) + ", " + _dafny.String(data.Truncated) + ")" + } + default: + { + return "" + } + } +} + +func (_this ListKeysResponse) Equals(other ListKeysResponse) bool { + switch data1 := _this.Get_().(type) { + case ListKeysResponse_ListKeysResponse: + { + data2, ok := other.Get_().(ListKeysResponse_ListKeysResponse) + return ok && data1.Keys.Equals(data2.Keys) && data1.NextMarker.Equals(data2.NextMarker) && data1.Truncated.Equals(data2.Truncated) + } + default: + { + return false // unexpected + } + } +} + +func (_this ListKeysResponse) EqualsGeneric(other interface{}) bool { + typed, ok := other.(ListKeysResponse) + return ok && _this.Equals(typed) +} + +func Type_ListKeysResponse_() _dafny.TypeDescriptor { + return type_ListKeysResponse_{} +} + +type type_ListKeysResponse_ struct { +} + +func (_this type_ListKeysResponse_) Default() interface{} { + return Companion_ListKeysResponse_.Default() +} + +func (_this type_ListKeysResponse_) String() string { + return "ComAmazonawsKmsTypes.ListKeysResponse" +} +func (_this ListKeysResponse) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = ListKeysResponse{} + +// End of datatype ListKeysResponse + +// Definition of datatype ListResourceTagsRequest +type ListResourceTagsRequest struct { + Data_ListResourceTagsRequest_ +} + +func (_this ListResourceTagsRequest) Get_() Data_ListResourceTagsRequest_ { + return _this.Data_ListResourceTagsRequest_ +} + +type Data_ListResourceTagsRequest_ interface { + isListResourceTagsRequest() +} + +type CompanionStruct_ListResourceTagsRequest_ struct { +} + +var Companion_ListResourceTagsRequest_ = CompanionStruct_ListResourceTagsRequest_{} + +type ListResourceTagsRequest_ListResourceTagsRequest struct { + KeyId _dafny.Sequence + Limit m_Wrappers.Option + Marker m_Wrappers.Option +} + +func (ListResourceTagsRequest_ListResourceTagsRequest) isListResourceTagsRequest() {} + +func (CompanionStruct_ListResourceTagsRequest_) Create_ListResourceTagsRequest_(KeyId _dafny.Sequence, Limit m_Wrappers.Option, Marker m_Wrappers.Option) ListResourceTagsRequest { + return ListResourceTagsRequest{ListResourceTagsRequest_ListResourceTagsRequest{KeyId, Limit, Marker}} +} + +func (_this ListResourceTagsRequest) Is_ListResourceTagsRequest() bool { + _, ok := _this.Get_().(ListResourceTagsRequest_ListResourceTagsRequest) + return ok +} + +func (CompanionStruct_ListResourceTagsRequest_) Default() ListResourceTagsRequest { + return Companion_ListResourceTagsRequest_.Create_ListResourceTagsRequest_(_dafny.EmptySeq.SetString(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this ListResourceTagsRequest) Dtor_KeyId() _dafny.Sequence { + return _this.Get_().(ListResourceTagsRequest_ListResourceTagsRequest).KeyId +} + +func (_this ListResourceTagsRequest) Dtor_Limit() m_Wrappers.Option { + return _this.Get_().(ListResourceTagsRequest_ListResourceTagsRequest).Limit +} + +func (_this ListResourceTagsRequest) Dtor_Marker() m_Wrappers.Option { + return _this.Get_().(ListResourceTagsRequest_ListResourceTagsRequest).Marker +} + +func (_this ListResourceTagsRequest) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case ListResourceTagsRequest_ListResourceTagsRequest: + { + return "ComAmazonawsKmsTypes.ListResourceTagsRequest.ListResourceTagsRequest" + "(" + _dafny.String(data.KeyId) + ", " + _dafny.String(data.Limit) + ", " + _dafny.String(data.Marker) + ")" + } + default: + { + return "" + } + } +} + +func (_this ListResourceTagsRequest) Equals(other ListResourceTagsRequest) bool { + switch data1 := _this.Get_().(type) { + case ListResourceTagsRequest_ListResourceTagsRequest: + { + data2, ok := other.Get_().(ListResourceTagsRequest_ListResourceTagsRequest) + return ok && data1.KeyId.Equals(data2.KeyId) && data1.Limit.Equals(data2.Limit) && data1.Marker.Equals(data2.Marker) + } + default: + { + return false // unexpected + } + } +} + +func (_this ListResourceTagsRequest) EqualsGeneric(other interface{}) bool { + typed, ok := other.(ListResourceTagsRequest) + return ok && _this.Equals(typed) +} + +func Type_ListResourceTagsRequest_() _dafny.TypeDescriptor { + return type_ListResourceTagsRequest_{} +} + +type type_ListResourceTagsRequest_ struct { +} + +func (_this type_ListResourceTagsRequest_) Default() interface{} { + return Companion_ListResourceTagsRequest_.Default() +} + +func (_this type_ListResourceTagsRequest_) String() string { + return "ComAmazonawsKmsTypes.ListResourceTagsRequest" +} +func (_this ListResourceTagsRequest) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = ListResourceTagsRequest{} + +// End of datatype ListResourceTagsRequest + +// Definition of datatype ListResourceTagsResponse +type ListResourceTagsResponse struct { + Data_ListResourceTagsResponse_ +} + +func (_this ListResourceTagsResponse) Get_() Data_ListResourceTagsResponse_ { + return _this.Data_ListResourceTagsResponse_ +} + +type Data_ListResourceTagsResponse_ interface { + isListResourceTagsResponse() +} + +type CompanionStruct_ListResourceTagsResponse_ struct { +} + +var Companion_ListResourceTagsResponse_ = CompanionStruct_ListResourceTagsResponse_{} + +type ListResourceTagsResponse_ListResourceTagsResponse struct { + Tags m_Wrappers.Option + NextMarker m_Wrappers.Option + Truncated m_Wrappers.Option +} + +func (ListResourceTagsResponse_ListResourceTagsResponse) isListResourceTagsResponse() {} + +func (CompanionStruct_ListResourceTagsResponse_) Create_ListResourceTagsResponse_(Tags m_Wrappers.Option, NextMarker m_Wrappers.Option, Truncated m_Wrappers.Option) ListResourceTagsResponse { + return ListResourceTagsResponse{ListResourceTagsResponse_ListResourceTagsResponse{Tags, NextMarker, Truncated}} +} + +func (_this ListResourceTagsResponse) Is_ListResourceTagsResponse() bool { + _, ok := _this.Get_().(ListResourceTagsResponse_ListResourceTagsResponse) + return ok +} + +func (CompanionStruct_ListResourceTagsResponse_) Default() ListResourceTagsResponse { + return Companion_ListResourceTagsResponse_.Create_ListResourceTagsResponse_(m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this ListResourceTagsResponse) Dtor_Tags() m_Wrappers.Option { + return _this.Get_().(ListResourceTagsResponse_ListResourceTagsResponse).Tags +} + +func (_this ListResourceTagsResponse) Dtor_NextMarker() m_Wrappers.Option { + return _this.Get_().(ListResourceTagsResponse_ListResourceTagsResponse).NextMarker +} + +func (_this ListResourceTagsResponse) Dtor_Truncated() m_Wrappers.Option { + return _this.Get_().(ListResourceTagsResponse_ListResourceTagsResponse).Truncated +} + +func (_this ListResourceTagsResponse) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case ListResourceTagsResponse_ListResourceTagsResponse: + { + return "ComAmazonawsKmsTypes.ListResourceTagsResponse.ListResourceTagsResponse" + "(" + _dafny.String(data.Tags) + ", " + _dafny.String(data.NextMarker) + ", " + _dafny.String(data.Truncated) + ")" + } + default: + { + return "" + } + } +} + +func (_this ListResourceTagsResponse) Equals(other ListResourceTagsResponse) bool { + switch data1 := _this.Get_().(type) { + case ListResourceTagsResponse_ListResourceTagsResponse: + { + data2, ok := other.Get_().(ListResourceTagsResponse_ListResourceTagsResponse) + return ok && data1.Tags.Equals(data2.Tags) && data1.NextMarker.Equals(data2.NextMarker) && data1.Truncated.Equals(data2.Truncated) + } + default: + { + return false // unexpected + } + } +} + +func (_this ListResourceTagsResponse) EqualsGeneric(other interface{}) bool { + typed, ok := other.(ListResourceTagsResponse) + return ok && _this.Equals(typed) +} + +func Type_ListResourceTagsResponse_() _dafny.TypeDescriptor { + return type_ListResourceTagsResponse_{} +} + +type type_ListResourceTagsResponse_ struct { +} + +func (_this type_ListResourceTagsResponse_) Default() interface{} { + return Companion_ListResourceTagsResponse_.Default() +} + +func (_this type_ListResourceTagsResponse_) String() string { + return "ComAmazonawsKmsTypes.ListResourceTagsResponse" +} +func (_this ListResourceTagsResponse) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = ListResourceTagsResponse{} + +// End of datatype ListResourceTagsResponse + +// Definition of datatype MacAlgorithmSpec +type MacAlgorithmSpec struct { + Data_MacAlgorithmSpec_ +} + +func (_this MacAlgorithmSpec) Get_() Data_MacAlgorithmSpec_ { + return _this.Data_MacAlgorithmSpec_ +} + +type Data_MacAlgorithmSpec_ interface { + isMacAlgorithmSpec() +} + +type CompanionStruct_MacAlgorithmSpec_ struct { +} + +var Companion_MacAlgorithmSpec_ = CompanionStruct_MacAlgorithmSpec_{} + +type MacAlgorithmSpec_HMAC__SHA__224 struct { +} + +func (MacAlgorithmSpec_HMAC__SHA__224) isMacAlgorithmSpec() {} + +func (CompanionStruct_MacAlgorithmSpec_) Create_HMAC__SHA__224_() MacAlgorithmSpec { + return MacAlgorithmSpec{MacAlgorithmSpec_HMAC__SHA__224{}} +} + +func (_this MacAlgorithmSpec) Is_HMAC__SHA__224() bool { + _, ok := _this.Get_().(MacAlgorithmSpec_HMAC__SHA__224) + return ok +} + +type MacAlgorithmSpec_HMAC__SHA__256 struct { +} + +func (MacAlgorithmSpec_HMAC__SHA__256) isMacAlgorithmSpec() {} + +func (CompanionStruct_MacAlgorithmSpec_) Create_HMAC__SHA__256_() MacAlgorithmSpec { + return MacAlgorithmSpec{MacAlgorithmSpec_HMAC__SHA__256{}} +} + +func (_this MacAlgorithmSpec) Is_HMAC__SHA__256() bool { + _, ok := _this.Get_().(MacAlgorithmSpec_HMAC__SHA__256) + return ok +} + +type MacAlgorithmSpec_HMAC__SHA__384 struct { +} + +func (MacAlgorithmSpec_HMAC__SHA__384) isMacAlgorithmSpec() {} + +func (CompanionStruct_MacAlgorithmSpec_) Create_HMAC__SHA__384_() MacAlgorithmSpec { + return MacAlgorithmSpec{MacAlgorithmSpec_HMAC__SHA__384{}} +} + +func (_this MacAlgorithmSpec) Is_HMAC__SHA__384() bool { + _, ok := _this.Get_().(MacAlgorithmSpec_HMAC__SHA__384) + return ok +} + +type MacAlgorithmSpec_HMAC__SHA__512 struct { +} + +func (MacAlgorithmSpec_HMAC__SHA__512) isMacAlgorithmSpec() {} + +func (CompanionStruct_MacAlgorithmSpec_) Create_HMAC__SHA__512_() MacAlgorithmSpec { + return MacAlgorithmSpec{MacAlgorithmSpec_HMAC__SHA__512{}} +} + +func (_this MacAlgorithmSpec) Is_HMAC__SHA__512() bool { + _, ok := _this.Get_().(MacAlgorithmSpec_HMAC__SHA__512) + return ok +} + +func (CompanionStruct_MacAlgorithmSpec_) Default() MacAlgorithmSpec { + return Companion_MacAlgorithmSpec_.Create_HMAC__SHA__224_() +} + +func (_ CompanionStruct_MacAlgorithmSpec_) AllSingletonConstructors() _dafny.Iterator { + i := -1 + return func() (interface{}, bool) { + i++ + switch i { + case 0: + return Companion_MacAlgorithmSpec_.Create_HMAC__SHA__224_(), true + case 1: + return Companion_MacAlgorithmSpec_.Create_HMAC__SHA__256_(), true + case 2: + return Companion_MacAlgorithmSpec_.Create_HMAC__SHA__384_(), true + case 3: + return Companion_MacAlgorithmSpec_.Create_HMAC__SHA__512_(), true + default: + return MacAlgorithmSpec{}, false + } + } +} + +func (_this MacAlgorithmSpec) String() string { + switch _this.Get_().(type) { + case nil: + return "null" + case MacAlgorithmSpec_HMAC__SHA__224: + { + return "ComAmazonawsKmsTypes.MacAlgorithmSpec.HMAC_SHA_224" + } + case MacAlgorithmSpec_HMAC__SHA__256: + { + return "ComAmazonawsKmsTypes.MacAlgorithmSpec.HMAC_SHA_256" + } + case MacAlgorithmSpec_HMAC__SHA__384: + { + return "ComAmazonawsKmsTypes.MacAlgorithmSpec.HMAC_SHA_384" + } + case MacAlgorithmSpec_HMAC__SHA__512: + { + return "ComAmazonawsKmsTypes.MacAlgorithmSpec.HMAC_SHA_512" + } + default: + { + return "" + } + } +} + +func (_this MacAlgorithmSpec) Equals(other MacAlgorithmSpec) bool { + switch _this.Get_().(type) { + case MacAlgorithmSpec_HMAC__SHA__224: + { + _, ok := other.Get_().(MacAlgorithmSpec_HMAC__SHA__224) + return ok + } + case MacAlgorithmSpec_HMAC__SHA__256: + { + _, ok := other.Get_().(MacAlgorithmSpec_HMAC__SHA__256) + return ok + } + case MacAlgorithmSpec_HMAC__SHA__384: + { + _, ok := other.Get_().(MacAlgorithmSpec_HMAC__SHA__384) + return ok + } + case MacAlgorithmSpec_HMAC__SHA__512: + { + _, ok := other.Get_().(MacAlgorithmSpec_HMAC__SHA__512) + return ok + } + default: + { + return false // unexpected + } + } +} + +func (_this MacAlgorithmSpec) EqualsGeneric(other interface{}) bool { + typed, ok := other.(MacAlgorithmSpec) + return ok && _this.Equals(typed) +} + +func Type_MacAlgorithmSpec_() _dafny.TypeDescriptor { + return type_MacAlgorithmSpec_{} +} + +type type_MacAlgorithmSpec_ struct { +} + +func (_this type_MacAlgorithmSpec_) Default() interface{} { + return Companion_MacAlgorithmSpec_.Default() +} + +func (_this type_MacAlgorithmSpec_) String() string { + return "ComAmazonawsKmsTypes.MacAlgorithmSpec" +} +func (_this MacAlgorithmSpec) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = MacAlgorithmSpec{} + +// End of datatype MacAlgorithmSpec + +// Definition of class MarkerType +type MarkerType struct { +} + +func New_MarkerType_() *MarkerType { + _this := MarkerType{} + + return &_this +} + +type CompanionStruct_MarkerType_ struct { +} + +var Companion_MarkerType_ = CompanionStruct_MarkerType_{} + +func (*MarkerType) String() string { + return "ComAmazonawsKmsTypes.MarkerType" +} + +// End of class MarkerType + +func Type_MarkerType_() _dafny.TypeDescriptor { + return type_MarkerType_{} +} + +type type_MarkerType_ struct { +} + +func (_this type_MarkerType_) Default() interface{} { + return _dafny.EmptySeq.SetString() +} + +func (_this type_MarkerType_) String() string { + return "ComAmazonawsKmsTypes.MarkerType" +} +func (_this *CompanionStruct_MarkerType_) Is_(__source _dafny.Sequence) bool { + var _15_x _dafny.Sequence = (__source) + _ = _15_x + return Companion_Default___.IsValid__MarkerType(_15_x) +} + +// Definition of datatype MessageType +type MessageType struct { + Data_MessageType_ +} + +func (_this MessageType) Get_() Data_MessageType_ { + return _this.Data_MessageType_ +} + +type Data_MessageType_ interface { + isMessageType() +} + +type CompanionStruct_MessageType_ struct { +} + +var Companion_MessageType_ = CompanionStruct_MessageType_{} + +type MessageType_RAW struct { +} + +func (MessageType_RAW) isMessageType() {} + +func (CompanionStruct_MessageType_) Create_RAW_() MessageType { + return MessageType{MessageType_RAW{}} +} + +func (_this MessageType) Is_RAW() bool { + _, ok := _this.Get_().(MessageType_RAW) + return ok +} + +type MessageType_DIGEST struct { +} + +func (MessageType_DIGEST) isMessageType() {} + +func (CompanionStruct_MessageType_) Create_DIGEST_() MessageType { + return MessageType{MessageType_DIGEST{}} +} + +func (_this MessageType) Is_DIGEST() bool { + _, ok := _this.Get_().(MessageType_DIGEST) + return ok +} + +func (CompanionStruct_MessageType_) Default() MessageType { + return Companion_MessageType_.Create_RAW_() +} + +func (_ CompanionStruct_MessageType_) AllSingletonConstructors() _dafny.Iterator { + i := -1 + return func() (interface{}, bool) { + i++ + switch i { + case 0: + return Companion_MessageType_.Create_RAW_(), true + case 1: + return Companion_MessageType_.Create_DIGEST_(), true + default: + return MessageType{}, false + } + } +} + +func (_this MessageType) String() string { + switch _this.Get_().(type) { + case nil: + return "null" + case MessageType_RAW: + { + return "ComAmazonawsKmsTypes.MessageType.RAW" + } + case MessageType_DIGEST: + { + return "ComAmazonawsKmsTypes.MessageType.DIGEST" + } + default: + { + return "" + } + } +} + +func (_this MessageType) Equals(other MessageType) bool { + switch _this.Get_().(type) { + case MessageType_RAW: + { + _, ok := other.Get_().(MessageType_RAW) + return ok + } + case MessageType_DIGEST: + { + _, ok := other.Get_().(MessageType_DIGEST) + return ok + } + default: + { + return false // unexpected + } + } +} + +func (_this MessageType) EqualsGeneric(other interface{}) bool { + typed, ok := other.(MessageType) + return ok && _this.Equals(typed) +} + +func Type_MessageType_() _dafny.TypeDescriptor { + return type_MessageType_{} +} + +type type_MessageType_ struct { +} + +func (_this type_MessageType_) Default() interface{} { + return Companion_MessageType_.Default() +} + +func (_this type_MessageType_) String() string { + return "ComAmazonawsKmsTypes.MessageType" +} +func (_this MessageType) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = MessageType{} + +// End of datatype MessageType + +// Definition of datatype MultiRegionConfiguration +type MultiRegionConfiguration struct { + Data_MultiRegionConfiguration_ +} + +func (_this MultiRegionConfiguration) Get_() Data_MultiRegionConfiguration_ { + return _this.Data_MultiRegionConfiguration_ +} + +type Data_MultiRegionConfiguration_ interface { + isMultiRegionConfiguration() +} + +type CompanionStruct_MultiRegionConfiguration_ struct { +} + +var Companion_MultiRegionConfiguration_ = CompanionStruct_MultiRegionConfiguration_{} + +type MultiRegionConfiguration_MultiRegionConfiguration struct { + MultiRegionKeyType m_Wrappers.Option + PrimaryKey m_Wrappers.Option + ReplicaKeys m_Wrappers.Option +} + +func (MultiRegionConfiguration_MultiRegionConfiguration) isMultiRegionConfiguration() {} + +func (CompanionStruct_MultiRegionConfiguration_) Create_MultiRegionConfiguration_(MultiRegionKeyType m_Wrappers.Option, PrimaryKey m_Wrappers.Option, ReplicaKeys m_Wrappers.Option) MultiRegionConfiguration { + return MultiRegionConfiguration{MultiRegionConfiguration_MultiRegionConfiguration{MultiRegionKeyType, PrimaryKey, ReplicaKeys}} +} + +func (_this MultiRegionConfiguration) Is_MultiRegionConfiguration() bool { + _, ok := _this.Get_().(MultiRegionConfiguration_MultiRegionConfiguration) + return ok +} + +func (CompanionStruct_MultiRegionConfiguration_) Default() MultiRegionConfiguration { + return Companion_MultiRegionConfiguration_.Create_MultiRegionConfiguration_(m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this MultiRegionConfiguration) Dtor_MultiRegionKeyType() m_Wrappers.Option { + return _this.Get_().(MultiRegionConfiguration_MultiRegionConfiguration).MultiRegionKeyType +} + +func (_this MultiRegionConfiguration) Dtor_PrimaryKey() m_Wrappers.Option { + return _this.Get_().(MultiRegionConfiguration_MultiRegionConfiguration).PrimaryKey +} + +func (_this MultiRegionConfiguration) Dtor_ReplicaKeys() m_Wrappers.Option { + return _this.Get_().(MultiRegionConfiguration_MultiRegionConfiguration).ReplicaKeys +} + +func (_this MultiRegionConfiguration) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case MultiRegionConfiguration_MultiRegionConfiguration: + { + return "ComAmazonawsKmsTypes.MultiRegionConfiguration.MultiRegionConfiguration" + "(" + _dafny.String(data.MultiRegionKeyType) + ", " + _dafny.String(data.PrimaryKey) + ", " + _dafny.String(data.ReplicaKeys) + ")" + } + default: + { + return "" + } + } +} + +func (_this MultiRegionConfiguration) Equals(other MultiRegionConfiguration) bool { + switch data1 := _this.Get_().(type) { + case MultiRegionConfiguration_MultiRegionConfiguration: + { + data2, ok := other.Get_().(MultiRegionConfiguration_MultiRegionConfiguration) + return ok && data1.MultiRegionKeyType.Equals(data2.MultiRegionKeyType) && data1.PrimaryKey.Equals(data2.PrimaryKey) && data1.ReplicaKeys.Equals(data2.ReplicaKeys) + } + default: + { + return false // unexpected + } + } +} + +func (_this MultiRegionConfiguration) EqualsGeneric(other interface{}) bool { + typed, ok := other.(MultiRegionConfiguration) + return ok && _this.Equals(typed) +} + +func Type_MultiRegionConfiguration_() _dafny.TypeDescriptor { + return type_MultiRegionConfiguration_{} +} + +type type_MultiRegionConfiguration_ struct { +} + +func (_this type_MultiRegionConfiguration_) Default() interface{} { + return Companion_MultiRegionConfiguration_.Default() +} + +func (_this type_MultiRegionConfiguration_) String() string { + return "ComAmazonawsKmsTypes.MultiRegionConfiguration" +} +func (_this MultiRegionConfiguration) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = MultiRegionConfiguration{} + +// End of datatype MultiRegionConfiguration + +// Definition of datatype MultiRegionKey +type MultiRegionKey struct { + Data_MultiRegionKey_ +} + +func (_this MultiRegionKey) Get_() Data_MultiRegionKey_ { + return _this.Data_MultiRegionKey_ +} + +type Data_MultiRegionKey_ interface { + isMultiRegionKey() +} + +type CompanionStruct_MultiRegionKey_ struct { +} + +var Companion_MultiRegionKey_ = CompanionStruct_MultiRegionKey_{} + +type MultiRegionKey_MultiRegionKey struct { + Arn m_Wrappers.Option + Region m_Wrappers.Option +} + +func (MultiRegionKey_MultiRegionKey) isMultiRegionKey() {} + +func (CompanionStruct_MultiRegionKey_) Create_MultiRegionKey_(Arn m_Wrappers.Option, Region m_Wrappers.Option) MultiRegionKey { + return MultiRegionKey{MultiRegionKey_MultiRegionKey{Arn, Region}} +} + +func (_this MultiRegionKey) Is_MultiRegionKey() bool { + _, ok := _this.Get_().(MultiRegionKey_MultiRegionKey) + return ok +} + +func (CompanionStruct_MultiRegionKey_) Default() MultiRegionKey { + return Companion_MultiRegionKey_.Create_MultiRegionKey_(m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this MultiRegionKey) Dtor_Arn() m_Wrappers.Option { + return _this.Get_().(MultiRegionKey_MultiRegionKey).Arn +} + +func (_this MultiRegionKey) Dtor_Region() m_Wrappers.Option { + return _this.Get_().(MultiRegionKey_MultiRegionKey).Region +} + +func (_this MultiRegionKey) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case MultiRegionKey_MultiRegionKey: + { + return "ComAmazonawsKmsTypes.MultiRegionKey.MultiRegionKey" + "(" + _dafny.String(data.Arn) + ", " + _dafny.String(data.Region) + ")" + } + default: + { + return "" + } + } +} + +func (_this MultiRegionKey) Equals(other MultiRegionKey) bool { + switch data1 := _this.Get_().(type) { + case MultiRegionKey_MultiRegionKey: + { + data2, ok := other.Get_().(MultiRegionKey_MultiRegionKey) + return ok && data1.Arn.Equals(data2.Arn) && data1.Region.Equals(data2.Region) + } + default: + { + return false // unexpected + } + } +} + +func (_this MultiRegionKey) EqualsGeneric(other interface{}) bool { + typed, ok := other.(MultiRegionKey) + return ok && _this.Equals(typed) +} + +func Type_MultiRegionKey_() _dafny.TypeDescriptor { + return type_MultiRegionKey_{} +} + +type type_MultiRegionKey_ struct { +} + +func (_this type_MultiRegionKey_) Default() interface{} { + return Companion_MultiRegionKey_.Default() +} + +func (_this type_MultiRegionKey_) String() string { + return "ComAmazonawsKmsTypes.MultiRegionKey" +} +func (_this MultiRegionKey) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = MultiRegionKey{} + +// End of datatype MultiRegionKey + +// Definition of datatype MultiRegionKeyType +type MultiRegionKeyType struct { + Data_MultiRegionKeyType_ +} + +func (_this MultiRegionKeyType) Get_() Data_MultiRegionKeyType_ { + return _this.Data_MultiRegionKeyType_ +} + +type Data_MultiRegionKeyType_ interface { + isMultiRegionKeyType() +} + +type CompanionStruct_MultiRegionKeyType_ struct { +} + +var Companion_MultiRegionKeyType_ = CompanionStruct_MultiRegionKeyType_{} + +type MultiRegionKeyType_PRIMARY struct { +} + +func (MultiRegionKeyType_PRIMARY) isMultiRegionKeyType() {} + +func (CompanionStruct_MultiRegionKeyType_) Create_PRIMARY_() MultiRegionKeyType { + return MultiRegionKeyType{MultiRegionKeyType_PRIMARY{}} +} + +func (_this MultiRegionKeyType) Is_PRIMARY() bool { + _, ok := _this.Get_().(MultiRegionKeyType_PRIMARY) + return ok +} + +type MultiRegionKeyType_REPLICA struct { +} + +func (MultiRegionKeyType_REPLICA) isMultiRegionKeyType() {} + +func (CompanionStruct_MultiRegionKeyType_) Create_REPLICA_() MultiRegionKeyType { + return MultiRegionKeyType{MultiRegionKeyType_REPLICA{}} +} + +func (_this MultiRegionKeyType) Is_REPLICA() bool { + _, ok := _this.Get_().(MultiRegionKeyType_REPLICA) + return ok +} + +func (CompanionStruct_MultiRegionKeyType_) Default() MultiRegionKeyType { + return Companion_MultiRegionKeyType_.Create_PRIMARY_() +} + +func (_ CompanionStruct_MultiRegionKeyType_) AllSingletonConstructors() _dafny.Iterator { + i := -1 + return func() (interface{}, bool) { + i++ + switch i { + case 0: + return Companion_MultiRegionKeyType_.Create_PRIMARY_(), true + case 1: + return Companion_MultiRegionKeyType_.Create_REPLICA_(), true + default: + return MultiRegionKeyType{}, false + } + } +} + +func (_this MultiRegionKeyType) String() string { + switch _this.Get_().(type) { + case nil: + return "null" + case MultiRegionKeyType_PRIMARY: + { + return "ComAmazonawsKmsTypes.MultiRegionKeyType.PRIMARY" + } + case MultiRegionKeyType_REPLICA: + { + return "ComAmazonawsKmsTypes.MultiRegionKeyType.REPLICA" + } + default: + { + return "" + } + } +} + +func (_this MultiRegionKeyType) Equals(other MultiRegionKeyType) bool { + switch _this.Get_().(type) { + case MultiRegionKeyType_PRIMARY: + { + _, ok := other.Get_().(MultiRegionKeyType_PRIMARY) + return ok + } + case MultiRegionKeyType_REPLICA: + { + _, ok := other.Get_().(MultiRegionKeyType_REPLICA) + return ok + } + default: + { + return false // unexpected + } + } +} + +func (_this MultiRegionKeyType) EqualsGeneric(other interface{}) bool { + typed, ok := other.(MultiRegionKeyType) + return ok && _this.Equals(typed) +} + +func Type_MultiRegionKeyType_() _dafny.TypeDescriptor { + return type_MultiRegionKeyType_{} +} + +type type_MultiRegionKeyType_ struct { +} + +func (_this type_MultiRegionKeyType_) Default() interface{} { + return Companion_MultiRegionKeyType_.Default() +} + +func (_this type_MultiRegionKeyType_) String() string { + return "ComAmazonawsKmsTypes.MultiRegionKeyType" +} +func (_this MultiRegionKeyType) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = MultiRegionKeyType{} + +// End of datatype MultiRegionKeyType + +// Definition of class NumberOfBytesType +type NumberOfBytesType struct { +} + +func New_NumberOfBytesType_() *NumberOfBytesType { + _this := NumberOfBytesType{} + + return &_this +} + +type CompanionStruct_NumberOfBytesType_ struct { +} + +var Companion_NumberOfBytesType_ = CompanionStruct_NumberOfBytesType_{} + +func (*NumberOfBytesType) String() string { + return "ComAmazonawsKmsTypes.NumberOfBytesType" +} + +// End of class NumberOfBytesType + +func Type_NumberOfBytesType_() _dafny.TypeDescriptor { + return type_NumberOfBytesType_{} +} + +type type_NumberOfBytesType_ struct { +} + +func (_this type_NumberOfBytesType_) Default() interface{} { + return int32(0) +} + +func (_this type_NumberOfBytesType_) String() string { + return "ComAmazonawsKmsTypes.NumberOfBytesType" +} +func (_this *CompanionStruct_NumberOfBytesType_) Is_(__source int32) bool { + var _16_x int32 = (__source) + _ = _16_x + if true { + return Companion_Default___.IsValid__NumberOfBytesType(_16_x) + } + return false +} + +// Definition of datatype OriginType +type OriginType struct { + Data_OriginType_ +} + +func (_this OriginType) Get_() Data_OriginType_ { + return _this.Data_OriginType_ +} + +type Data_OriginType_ interface { + isOriginType() +} + +type CompanionStruct_OriginType_ struct { +} + +var Companion_OriginType_ = CompanionStruct_OriginType_{} + +type OriginType_AWS__KMS struct { +} + +func (OriginType_AWS__KMS) isOriginType() {} + +func (CompanionStruct_OriginType_) Create_AWS__KMS_() OriginType { + return OriginType{OriginType_AWS__KMS{}} +} + +func (_this OriginType) Is_AWS__KMS() bool { + _, ok := _this.Get_().(OriginType_AWS__KMS) + return ok +} + +type OriginType_EXTERNAL struct { +} + +func (OriginType_EXTERNAL) isOriginType() {} + +func (CompanionStruct_OriginType_) Create_EXTERNAL_() OriginType { + return OriginType{OriginType_EXTERNAL{}} +} + +func (_this OriginType) Is_EXTERNAL() bool { + _, ok := _this.Get_().(OriginType_EXTERNAL) + return ok +} + +type OriginType_AWS__CLOUDHSM struct { +} + +func (OriginType_AWS__CLOUDHSM) isOriginType() {} + +func (CompanionStruct_OriginType_) Create_AWS__CLOUDHSM_() OriginType { + return OriginType{OriginType_AWS__CLOUDHSM{}} +} + +func (_this OriginType) Is_AWS__CLOUDHSM() bool { + _, ok := _this.Get_().(OriginType_AWS__CLOUDHSM) + return ok +} + +type OriginType_EXTERNAL__KEY__STORE struct { +} + +func (OriginType_EXTERNAL__KEY__STORE) isOriginType() {} + +func (CompanionStruct_OriginType_) Create_EXTERNAL__KEY__STORE_() OriginType { + return OriginType{OriginType_EXTERNAL__KEY__STORE{}} +} + +func (_this OriginType) Is_EXTERNAL__KEY__STORE() bool { + _, ok := _this.Get_().(OriginType_EXTERNAL__KEY__STORE) + return ok +} + +func (CompanionStruct_OriginType_) Default() OriginType { + return Companion_OriginType_.Create_AWS__KMS_() +} + +func (_ CompanionStruct_OriginType_) AllSingletonConstructors() _dafny.Iterator { + i := -1 + return func() (interface{}, bool) { + i++ + switch i { + case 0: + return Companion_OriginType_.Create_AWS__KMS_(), true + case 1: + return Companion_OriginType_.Create_EXTERNAL_(), true + case 2: + return Companion_OriginType_.Create_AWS__CLOUDHSM_(), true + case 3: + return Companion_OriginType_.Create_EXTERNAL__KEY__STORE_(), true + default: + return OriginType{}, false + } + } +} + +func (_this OriginType) String() string { + switch _this.Get_().(type) { + case nil: + return "null" + case OriginType_AWS__KMS: + { + return "ComAmazonawsKmsTypes.OriginType.AWS_KMS" + } + case OriginType_EXTERNAL: + { + return "ComAmazonawsKmsTypes.OriginType.EXTERNAL" + } + case OriginType_AWS__CLOUDHSM: + { + return "ComAmazonawsKmsTypes.OriginType.AWS_CLOUDHSM" + } + case OriginType_EXTERNAL__KEY__STORE: + { + return "ComAmazonawsKmsTypes.OriginType.EXTERNAL_KEY_STORE" + } + default: + { + return "" + } + } +} + +func (_this OriginType) Equals(other OriginType) bool { + switch _this.Get_().(type) { + case OriginType_AWS__KMS: + { + _, ok := other.Get_().(OriginType_AWS__KMS) + return ok + } + case OriginType_EXTERNAL: + { + _, ok := other.Get_().(OriginType_EXTERNAL) + return ok + } + case OriginType_AWS__CLOUDHSM: + { + _, ok := other.Get_().(OriginType_AWS__CLOUDHSM) + return ok + } + case OriginType_EXTERNAL__KEY__STORE: + { + _, ok := other.Get_().(OriginType_EXTERNAL__KEY__STORE) + return ok + } + default: + { + return false // unexpected + } + } +} + +func (_this OriginType) EqualsGeneric(other interface{}) bool { + typed, ok := other.(OriginType) + return ok && _this.Equals(typed) +} + +func Type_OriginType_() _dafny.TypeDescriptor { + return type_OriginType_{} +} + +type type_OriginType_ struct { +} + +func (_this type_OriginType_) Default() interface{} { + return Companion_OriginType_.Default() +} + +func (_this type_OriginType_) String() string { + return "ComAmazonawsKmsTypes.OriginType" +} +func (_this OriginType) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = OriginType{} + +// End of datatype OriginType + +// Definition of class PendingWindowInDaysType +type PendingWindowInDaysType struct { +} + +func New_PendingWindowInDaysType_() *PendingWindowInDaysType { + _this := PendingWindowInDaysType{} + + return &_this +} + +type CompanionStruct_PendingWindowInDaysType_ struct { +} + +var Companion_PendingWindowInDaysType_ = CompanionStruct_PendingWindowInDaysType_{} + +func (*PendingWindowInDaysType) String() string { + return "ComAmazonawsKmsTypes.PendingWindowInDaysType" +} + +// End of class PendingWindowInDaysType + +func Type_PendingWindowInDaysType_() _dafny.TypeDescriptor { + return type_PendingWindowInDaysType_{} +} + +type type_PendingWindowInDaysType_ struct { +} + +func (_this type_PendingWindowInDaysType_) Default() interface{} { + return int32(0) +} + +func (_this type_PendingWindowInDaysType_) String() string { + return "ComAmazonawsKmsTypes.PendingWindowInDaysType" +} +func (_this *CompanionStruct_PendingWindowInDaysType_) Is_(__source int32) bool { + var _17_x int32 = (__source) + _ = _17_x + if true { + return Companion_Default___.IsValid__PendingWindowInDaysType(_17_x) + } + return false +} + +// Definition of class PlaintextType +type PlaintextType struct { +} + +func New_PlaintextType_() *PlaintextType { + _this := PlaintextType{} + + return &_this +} + +type CompanionStruct_PlaintextType_ struct { +} + +var Companion_PlaintextType_ = CompanionStruct_PlaintextType_{} + +func (*PlaintextType) String() string { + return "ComAmazonawsKmsTypes.PlaintextType" +} + +// End of class PlaintextType + +func Type_PlaintextType_() _dafny.TypeDescriptor { + return type_PlaintextType_{} +} + +type type_PlaintextType_ struct { +} + +func (_this type_PlaintextType_) Default() interface{} { + return _dafny.EmptySeq +} + +func (_this type_PlaintextType_) String() string { + return "ComAmazonawsKmsTypes.PlaintextType" +} +func (_this *CompanionStruct_PlaintextType_) Is_(__source _dafny.Sequence) bool { + var _18_x _dafny.Sequence = (__source) + _ = _18_x + return Companion_Default___.IsValid__PlaintextType(_18_x) +} + +// Definition of class PolicyNameType +type PolicyNameType struct { +} + +func New_PolicyNameType_() *PolicyNameType { + _this := PolicyNameType{} + + return &_this +} + +type CompanionStruct_PolicyNameType_ struct { +} + +var Companion_PolicyNameType_ = CompanionStruct_PolicyNameType_{} + +func (*PolicyNameType) String() string { + return "ComAmazonawsKmsTypes.PolicyNameType" +} + +// End of class PolicyNameType + +func Type_PolicyNameType_() _dafny.TypeDescriptor { + return type_PolicyNameType_{} +} + +type type_PolicyNameType_ struct { +} + +func (_this type_PolicyNameType_) Default() interface{} { + return _dafny.EmptySeq.SetString() +} + +func (_this type_PolicyNameType_) String() string { + return "ComAmazonawsKmsTypes.PolicyNameType" +} +func (_this *CompanionStruct_PolicyNameType_) Is_(__source _dafny.Sequence) bool { + var _19_x _dafny.Sequence = (__source) + _ = _19_x + return Companion_Default___.IsValid__PolicyNameType(_19_x) +} + +// Definition of class PolicyType +type PolicyType struct { +} + +func New_PolicyType_() *PolicyType { + _this := PolicyType{} + + return &_this +} + +type CompanionStruct_PolicyType_ struct { +} + +var Companion_PolicyType_ = CompanionStruct_PolicyType_{} + +func (*PolicyType) String() string { + return "ComAmazonawsKmsTypes.PolicyType" +} + +// End of class PolicyType + +func Type_PolicyType_() _dafny.TypeDescriptor { + return type_PolicyType_{} +} + +type type_PolicyType_ struct { +} + +func (_this type_PolicyType_) Default() interface{} { + return _dafny.EmptySeq.SetString() +} + +func (_this type_PolicyType_) String() string { + return "ComAmazonawsKmsTypes.PolicyType" +} +func (_this *CompanionStruct_PolicyType_) Is_(__source _dafny.Sequence) bool { + var _20_x _dafny.Sequence = (__source) + _ = _20_x + return Companion_Default___.IsValid__PolicyType(_20_x) +} + +// Definition of class PrincipalIdType +type PrincipalIdType struct { +} + +func New_PrincipalIdType_() *PrincipalIdType { + _this := PrincipalIdType{} + + return &_this +} + +type CompanionStruct_PrincipalIdType_ struct { +} + +var Companion_PrincipalIdType_ = CompanionStruct_PrincipalIdType_{} + +func (*PrincipalIdType) String() string { + return "ComAmazonawsKmsTypes.PrincipalIdType" +} + +// End of class PrincipalIdType + +func Type_PrincipalIdType_() _dafny.TypeDescriptor { + return type_PrincipalIdType_{} +} + +type type_PrincipalIdType_ struct { +} + +func (_this type_PrincipalIdType_) Default() interface{} { + return _dafny.EmptySeq.SetString() +} + +func (_this type_PrincipalIdType_) String() string { + return "ComAmazonawsKmsTypes.PrincipalIdType" +} +func (_this *CompanionStruct_PrincipalIdType_) Is_(__source _dafny.Sequence) bool { + var _21_x _dafny.Sequence = (__source) + _ = _21_x + return Companion_Default___.IsValid__PrincipalIdType(_21_x) +} + +// Definition of class PublicKeyType +type PublicKeyType struct { +} + +func New_PublicKeyType_() *PublicKeyType { + _this := PublicKeyType{} + + return &_this +} + +type CompanionStruct_PublicKeyType_ struct { +} + +var Companion_PublicKeyType_ = CompanionStruct_PublicKeyType_{} + +func (*PublicKeyType) String() string { + return "ComAmazonawsKmsTypes.PublicKeyType" +} + +// End of class PublicKeyType + +func Type_PublicKeyType_() _dafny.TypeDescriptor { + return type_PublicKeyType_{} +} + +type type_PublicKeyType_ struct { +} + +func (_this type_PublicKeyType_) Default() interface{} { + return _dafny.EmptySeq +} + +func (_this type_PublicKeyType_) String() string { + return "ComAmazonawsKmsTypes.PublicKeyType" +} +func (_this *CompanionStruct_PublicKeyType_) Is_(__source _dafny.Sequence) bool { + var _22_x _dafny.Sequence = (__source) + _ = _22_x + return Companion_Default___.IsValid__PublicKeyType(_22_x) +} + +// Definition of datatype PutKeyPolicyRequest +type PutKeyPolicyRequest struct { + Data_PutKeyPolicyRequest_ +} + +func (_this PutKeyPolicyRequest) Get_() Data_PutKeyPolicyRequest_ { + return _this.Data_PutKeyPolicyRequest_ +} + +type Data_PutKeyPolicyRequest_ interface { + isPutKeyPolicyRequest() +} + +type CompanionStruct_PutKeyPolicyRequest_ struct { +} + +var Companion_PutKeyPolicyRequest_ = CompanionStruct_PutKeyPolicyRequest_{} + +type PutKeyPolicyRequest_PutKeyPolicyRequest struct { + KeyId _dafny.Sequence + PolicyName m_Wrappers.Option + Policy _dafny.Sequence + BypassPolicyLockoutSafetyCheck m_Wrappers.Option +} + +func (PutKeyPolicyRequest_PutKeyPolicyRequest) isPutKeyPolicyRequest() {} + +func (CompanionStruct_PutKeyPolicyRequest_) Create_PutKeyPolicyRequest_(KeyId _dafny.Sequence, PolicyName m_Wrappers.Option, Policy _dafny.Sequence, BypassPolicyLockoutSafetyCheck m_Wrappers.Option) PutKeyPolicyRequest { + return PutKeyPolicyRequest{PutKeyPolicyRequest_PutKeyPolicyRequest{KeyId, PolicyName, Policy, BypassPolicyLockoutSafetyCheck}} +} + +func (_this PutKeyPolicyRequest) Is_PutKeyPolicyRequest() bool { + _, ok := _this.Get_().(PutKeyPolicyRequest_PutKeyPolicyRequest) + return ok +} + +func (CompanionStruct_PutKeyPolicyRequest_) Default() PutKeyPolicyRequest { + return Companion_PutKeyPolicyRequest_.Create_PutKeyPolicyRequest_(_dafny.EmptySeq.SetString(), m_Wrappers.Companion_Option_.Default(), _dafny.EmptySeq.SetString(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this PutKeyPolicyRequest) Dtor_KeyId() _dafny.Sequence { + return _this.Get_().(PutKeyPolicyRequest_PutKeyPolicyRequest).KeyId +} + +func (_this PutKeyPolicyRequest) Dtor_PolicyName() m_Wrappers.Option { + return _this.Get_().(PutKeyPolicyRequest_PutKeyPolicyRequest).PolicyName +} + +func (_this PutKeyPolicyRequest) Dtor_Policy() _dafny.Sequence { + return _this.Get_().(PutKeyPolicyRequest_PutKeyPolicyRequest).Policy +} + +func (_this PutKeyPolicyRequest) Dtor_BypassPolicyLockoutSafetyCheck() m_Wrappers.Option { + return _this.Get_().(PutKeyPolicyRequest_PutKeyPolicyRequest).BypassPolicyLockoutSafetyCheck +} + +func (_this PutKeyPolicyRequest) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case PutKeyPolicyRequest_PutKeyPolicyRequest: + { + return "ComAmazonawsKmsTypes.PutKeyPolicyRequest.PutKeyPolicyRequest" + "(" + _dafny.String(data.KeyId) + ", " + _dafny.String(data.PolicyName) + ", " + _dafny.String(data.Policy) + ", " + _dafny.String(data.BypassPolicyLockoutSafetyCheck) + ")" + } + default: + { + return "" + } + } +} + +func (_this PutKeyPolicyRequest) Equals(other PutKeyPolicyRequest) bool { + switch data1 := _this.Get_().(type) { + case PutKeyPolicyRequest_PutKeyPolicyRequest: + { + data2, ok := other.Get_().(PutKeyPolicyRequest_PutKeyPolicyRequest) + return ok && data1.KeyId.Equals(data2.KeyId) && data1.PolicyName.Equals(data2.PolicyName) && data1.Policy.Equals(data2.Policy) && data1.BypassPolicyLockoutSafetyCheck.Equals(data2.BypassPolicyLockoutSafetyCheck) + } + default: + { + return false // unexpected + } + } +} + +func (_this PutKeyPolicyRequest) EqualsGeneric(other interface{}) bool { + typed, ok := other.(PutKeyPolicyRequest) + return ok && _this.Equals(typed) +} + +func Type_PutKeyPolicyRequest_() _dafny.TypeDescriptor { + return type_PutKeyPolicyRequest_{} +} + +type type_PutKeyPolicyRequest_ struct { +} + +func (_this type_PutKeyPolicyRequest_) Default() interface{} { + return Companion_PutKeyPolicyRequest_.Default() +} + +func (_this type_PutKeyPolicyRequest_) String() string { + return "ComAmazonawsKmsTypes.PutKeyPolicyRequest" +} +func (_this PutKeyPolicyRequest) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = PutKeyPolicyRequest{} + +// End of datatype PutKeyPolicyRequest + +// Definition of datatype RecipientInfo +type RecipientInfo struct { + Data_RecipientInfo_ +} + +func (_this RecipientInfo) Get_() Data_RecipientInfo_ { + return _this.Data_RecipientInfo_ +} + +type Data_RecipientInfo_ interface { + isRecipientInfo() +} + +type CompanionStruct_RecipientInfo_ struct { +} + +var Companion_RecipientInfo_ = CompanionStruct_RecipientInfo_{} + +type RecipientInfo_RecipientInfo struct { + KeyEncryptionAlgorithm m_Wrappers.Option + AttestationDocument m_Wrappers.Option +} + +func (RecipientInfo_RecipientInfo) isRecipientInfo() {} + +func (CompanionStruct_RecipientInfo_) Create_RecipientInfo_(KeyEncryptionAlgorithm m_Wrappers.Option, AttestationDocument m_Wrappers.Option) RecipientInfo { + return RecipientInfo{RecipientInfo_RecipientInfo{KeyEncryptionAlgorithm, AttestationDocument}} +} + +func (_this RecipientInfo) Is_RecipientInfo() bool { + _, ok := _this.Get_().(RecipientInfo_RecipientInfo) + return ok +} + +func (CompanionStruct_RecipientInfo_) Default() RecipientInfo { + return Companion_RecipientInfo_.Create_RecipientInfo_(m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this RecipientInfo) Dtor_KeyEncryptionAlgorithm() m_Wrappers.Option { + return _this.Get_().(RecipientInfo_RecipientInfo).KeyEncryptionAlgorithm +} + +func (_this RecipientInfo) Dtor_AttestationDocument() m_Wrappers.Option { + return _this.Get_().(RecipientInfo_RecipientInfo).AttestationDocument +} + +func (_this RecipientInfo) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case RecipientInfo_RecipientInfo: + { + return "ComAmazonawsKmsTypes.RecipientInfo.RecipientInfo" + "(" + _dafny.String(data.KeyEncryptionAlgorithm) + ", " + _dafny.String(data.AttestationDocument) + ")" + } + default: + { + return "" + } + } +} + +func (_this RecipientInfo) Equals(other RecipientInfo) bool { + switch data1 := _this.Get_().(type) { + case RecipientInfo_RecipientInfo: + { + data2, ok := other.Get_().(RecipientInfo_RecipientInfo) + return ok && data1.KeyEncryptionAlgorithm.Equals(data2.KeyEncryptionAlgorithm) && data1.AttestationDocument.Equals(data2.AttestationDocument) + } + default: + { + return false // unexpected + } + } +} + +func (_this RecipientInfo) EqualsGeneric(other interface{}) bool { + typed, ok := other.(RecipientInfo) + return ok && _this.Equals(typed) +} + +func Type_RecipientInfo_() _dafny.TypeDescriptor { + return type_RecipientInfo_{} +} + +type type_RecipientInfo_ struct { +} + +func (_this type_RecipientInfo_) Default() interface{} { + return Companion_RecipientInfo_.Default() +} + +func (_this type_RecipientInfo_) String() string { + return "ComAmazonawsKmsTypes.RecipientInfo" +} +func (_this RecipientInfo) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = RecipientInfo{} + +// End of datatype RecipientInfo + +// Definition of datatype ReEncryptRequest +type ReEncryptRequest struct { + Data_ReEncryptRequest_ +} + +func (_this ReEncryptRequest) Get_() Data_ReEncryptRequest_ { + return _this.Data_ReEncryptRequest_ +} + +type Data_ReEncryptRequest_ interface { + isReEncryptRequest() +} + +type CompanionStruct_ReEncryptRequest_ struct { +} + +var Companion_ReEncryptRequest_ = CompanionStruct_ReEncryptRequest_{} + +type ReEncryptRequest_ReEncryptRequest struct { + CiphertextBlob _dafny.Sequence + SourceEncryptionContext m_Wrappers.Option + SourceKeyId m_Wrappers.Option + DestinationKeyId _dafny.Sequence + DestinationEncryptionContext m_Wrappers.Option + SourceEncryptionAlgorithm m_Wrappers.Option + DestinationEncryptionAlgorithm m_Wrappers.Option + GrantTokens m_Wrappers.Option + DryRun m_Wrappers.Option +} + +func (ReEncryptRequest_ReEncryptRequest) isReEncryptRequest() {} + +func (CompanionStruct_ReEncryptRequest_) Create_ReEncryptRequest_(CiphertextBlob _dafny.Sequence, SourceEncryptionContext m_Wrappers.Option, SourceKeyId m_Wrappers.Option, DestinationKeyId _dafny.Sequence, DestinationEncryptionContext m_Wrappers.Option, SourceEncryptionAlgorithm m_Wrappers.Option, DestinationEncryptionAlgorithm m_Wrappers.Option, GrantTokens m_Wrappers.Option, DryRun m_Wrappers.Option) ReEncryptRequest { + return ReEncryptRequest{ReEncryptRequest_ReEncryptRequest{CiphertextBlob, SourceEncryptionContext, SourceKeyId, DestinationKeyId, DestinationEncryptionContext, SourceEncryptionAlgorithm, DestinationEncryptionAlgorithm, GrantTokens, DryRun}} +} + +func (_this ReEncryptRequest) Is_ReEncryptRequest() bool { + _, ok := _this.Get_().(ReEncryptRequest_ReEncryptRequest) + return ok +} + +func (CompanionStruct_ReEncryptRequest_) Default() ReEncryptRequest { + return Companion_ReEncryptRequest_.Create_ReEncryptRequest_(_dafny.EmptySeq, m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), _dafny.EmptySeq.SetString(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this ReEncryptRequest) Dtor_CiphertextBlob() _dafny.Sequence { + return _this.Get_().(ReEncryptRequest_ReEncryptRequest).CiphertextBlob +} + +func (_this ReEncryptRequest) Dtor_SourceEncryptionContext() m_Wrappers.Option { + return _this.Get_().(ReEncryptRequest_ReEncryptRequest).SourceEncryptionContext +} + +func (_this ReEncryptRequest) Dtor_SourceKeyId() m_Wrappers.Option { + return _this.Get_().(ReEncryptRequest_ReEncryptRequest).SourceKeyId +} + +func (_this ReEncryptRequest) Dtor_DestinationKeyId() _dafny.Sequence { + return _this.Get_().(ReEncryptRequest_ReEncryptRequest).DestinationKeyId +} + +func (_this ReEncryptRequest) Dtor_DestinationEncryptionContext() m_Wrappers.Option { + return _this.Get_().(ReEncryptRequest_ReEncryptRequest).DestinationEncryptionContext +} + +func (_this ReEncryptRequest) Dtor_SourceEncryptionAlgorithm() m_Wrappers.Option { + return _this.Get_().(ReEncryptRequest_ReEncryptRequest).SourceEncryptionAlgorithm +} + +func (_this ReEncryptRequest) Dtor_DestinationEncryptionAlgorithm() m_Wrappers.Option { + return _this.Get_().(ReEncryptRequest_ReEncryptRequest).DestinationEncryptionAlgorithm +} + +func (_this ReEncryptRequest) Dtor_GrantTokens() m_Wrappers.Option { + return _this.Get_().(ReEncryptRequest_ReEncryptRequest).GrantTokens +} + +func (_this ReEncryptRequest) Dtor_DryRun() m_Wrappers.Option { + return _this.Get_().(ReEncryptRequest_ReEncryptRequest).DryRun +} + +func (_this ReEncryptRequest) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case ReEncryptRequest_ReEncryptRequest: + { + return "ComAmazonawsKmsTypes.ReEncryptRequest.ReEncryptRequest" + "(" + _dafny.String(data.CiphertextBlob) + ", " + _dafny.String(data.SourceEncryptionContext) + ", " + _dafny.String(data.SourceKeyId) + ", " + _dafny.String(data.DestinationKeyId) + ", " + _dafny.String(data.DestinationEncryptionContext) + ", " + _dafny.String(data.SourceEncryptionAlgorithm) + ", " + _dafny.String(data.DestinationEncryptionAlgorithm) + ", " + _dafny.String(data.GrantTokens) + ", " + _dafny.String(data.DryRun) + ")" + } + default: + { + return "" + } + } +} + +func (_this ReEncryptRequest) Equals(other ReEncryptRequest) bool { + switch data1 := _this.Get_().(type) { + case ReEncryptRequest_ReEncryptRequest: + { + data2, ok := other.Get_().(ReEncryptRequest_ReEncryptRequest) + return ok && data1.CiphertextBlob.Equals(data2.CiphertextBlob) && data1.SourceEncryptionContext.Equals(data2.SourceEncryptionContext) && data1.SourceKeyId.Equals(data2.SourceKeyId) && data1.DestinationKeyId.Equals(data2.DestinationKeyId) && data1.DestinationEncryptionContext.Equals(data2.DestinationEncryptionContext) && data1.SourceEncryptionAlgorithm.Equals(data2.SourceEncryptionAlgorithm) && data1.DestinationEncryptionAlgorithm.Equals(data2.DestinationEncryptionAlgorithm) && data1.GrantTokens.Equals(data2.GrantTokens) && data1.DryRun.Equals(data2.DryRun) + } + default: + { + return false // unexpected + } + } +} + +func (_this ReEncryptRequest) EqualsGeneric(other interface{}) bool { + typed, ok := other.(ReEncryptRequest) + return ok && _this.Equals(typed) +} + +func Type_ReEncryptRequest_() _dafny.TypeDescriptor { + return type_ReEncryptRequest_{} +} + +type type_ReEncryptRequest_ struct { +} + +func (_this type_ReEncryptRequest_) Default() interface{} { + return Companion_ReEncryptRequest_.Default() +} + +func (_this type_ReEncryptRequest_) String() string { + return "ComAmazonawsKmsTypes.ReEncryptRequest" +} +func (_this ReEncryptRequest) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = ReEncryptRequest{} + +// End of datatype ReEncryptRequest + +// Definition of datatype ReEncryptResponse +type ReEncryptResponse struct { + Data_ReEncryptResponse_ +} + +func (_this ReEncryptResponse) Get_() Data_ReEncryptResponse_ { + return _this.Data_ReEncryptResponse_ +} + +type Data_ReEncryptResponse_ interface { + isReEncryptResponse() +} + +type CompanionStruct_ReEncryptResponse_ struct { +} + +var Companion_ReEncryptResponse_ = CompanionStruct_ReEncryptResponse_{} + +type ReEncryptResponse_ReEncryptResponse struct { + CiphertextBlob m_Wrappers.Option + SourceKeyId m_Wrappers.Option + KeyId m_Wrappers.Option + SourceEncryptionAlgorithm m_Wrappers.Option + DestinationEncryptionAlgorithm m_Wrappers.Option +} + +func (ReEncryptResponse_ReEncryptResponse) isReEncryptResponse() {} + +func (CompanionStruct_ReEncryptResponse_) Create_ReEncryptResponse_(CiphertextBlob m_Wrappers.Option, SourceKeyId m_Wrappers.Option, KeyId m_Wrappers.Option, SourceEncryptionAlgorithm m_Wrappers.Option, DestinationEncryptionAlgorithm m_Wrappers.Option) ReEncryptResponse { + return ReEncryptResponse{ReEncryptResponse_ReEncryptResponse{CiphertextBlob, SourceKeyId, KeyId, SourceEncryptionAlgorithm, DestinationEncryptionAlgorithm}} +} + +func (_this ReEncryptResponse) Is_ReEncryptResponse() bool { + _, ok := _this.Get_().(ReEncryptResponse_ReEncryptResponse) + return ok +} + +func (CompanionStruct_ReEncryptResponse_) Default() ReEncryptResponse { + return Companion_ReEncryptResponse_.Create_ReEncryptResponse_(m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this ReEncryptResponse) Dtor_CiphertextBlob() m_Wrappers.Option { + return _this.Get_().(ReEncryptResponse_ReEncryptResponse).CiphertextBlob +} + +func (_this ReEncryptResponse) Dtor_SourceKeyId() m_Wrappers.Option { + return _this.Get_().(ReEncryptResponse_ReEncryptResponse).SourceKeyId +} + +func (_this ReEncryptResponse) Dtor_KeyId() m_Wrappers.Option { + return _this.Get_().(ReEncryptResponse_ReEncryptResponse).KeyId +} + +func (_this ReEncryptResponse) Dtor_SourceEncryptionAlgorithm() m_Wrappers.Option { + return _this.Get_().(ReEncryptResponse_ReEncryptResponse).SourceEncryptionAlgorithm +} + +func (_this ReEncryptResponse) Dtor_DestinationEncryptionAlgorithm() m_Wrappers.Option { + return _this.Get_().(ReEncryptResponse_ReEncryptResponse).DestinationEncryptionAlgorithm +} + +func (_this ReEncryptResponse) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case ReEncryptResponse_ReEncryptResponse: + { + return "ComAmazonawsKmsTypes.ReEncryptResponse.ReEncryptResponse" + "(" + _dafny.String(data.CiphertextBlob) + ", " + _dafny.String(data.SourceKeyId) + ", " + _dafny.String(data.KeyId) + ", " + _dafny.String(data.SourceEncryptionAlgorithm) + ", " + _dafny.String(data.DestinationEncryptionAlgorithm) + ")" + } + default: + { + return "" + } + } +} + +func (_this ReEncryptResponse) Equals(other ReEncryptResponse) bool { + switch data1 := _this.Get_().(type) { + case ReEncryptResponse_ReEncryptResponse: + { + data2, ok := other.Get_().(ReEncryptResponse_ReEncryptResponse) + return ok && data1.CiphertextBlob.Equals(data2.CiphertextBlob) && data1.SourceKeyId.Equals(data2.SourceKeyId) && data1.KeyId.Equals(data2.KeyId) && data1.SourceEncryptionAlgorithm.Equals(data2.SourceEncryptionAlgorithm) && data1.DestinationEncryptionAlgorithm.Equals(data2.DestinationEncryptionAlgorithm) + } + default: + { + return false // unexpected + } + } +} + +func (_this ReEncryptResponse) EqualsGeneric(other interface{}) bool { + typed, ok := other.(ReEncryptResponse) + return ok && _this.Equals(typed) +} + +func Type_ReEncryptResponse_() _dafny.TypeDescriptor { + return type_ReEncryptResponse_{} +} + +type type_ReEncryptResponse_ struct { +} + +func (_this type_ReEncryptResponse_) Default() interface{} { + return Companion_ReEncryptResponse_.Default() +} + +func (_this type_ReEncryptResponse_) String() string { + return "ComAmazonawsKmsTypes.ReEncryptResponse" +} +func (_this ReEncryptResponse) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = ReEncryptResponse{} + +// End of datatype ReEncryptResponse + +// Definition of class RegionType +type RegionType struct { +} + +func New_RegionType_() *RegionType { + _this := RegionType{} + + return &_this +} + +type CompanionStruct_RegionType_ struct { +} + +var Companion_RegionType_ = CompanionStruct_RegionType_{} + +func (*RegionType) String() string { + return "ComAmazonawsKmsTypes.RegionType" +} + +// End of class RegionType + +func Type_RegionType_() _dafny.TypeDescriptor { + return type_RegionType_{} +} + +type type_RegionType_ struct { +} + +func (_this type_RegionType_) Default() interface{} { + return _dafny.EmptySeq.SetString() +} + +func (_this type_RegionType_) String() string { + return "ComAmazonawsKmsTypes.RegionType" +} +func (_this *CompanionStruct_RegionType_) Is_(__source _dafny.Sequence) bool { + var _23_x _dafny.Sequence = (__source) + _ = _23_x + return Companion_Default___.IsValid__RegionType(_23_x) +} + +// Definition of datatype ReplicateKeyRequest +type ReplicateKeyRequest struct { + Data_ReplicateKeyRequest_ +} + +func (_this ReplicateKeyRequest) Get_() Data_ReplicateKeyRequest_ { + return _this.Data_ReplicateKeyRequest_ +} + +type Data_ReplicateKeyRequest_ interface { + isReplicateKeyRequest() +} + +type CompanionStruct_ReplicateKeyRequest_ struct { +} + +var Companion_ReplicateKeyRequest_ = CompanionStruct_ReplicateKeyRequest_{} + +type ReplicateKeyRequest_ReplicateKeyRequest struct { + KeyId _dafny.Sequence + ReplicaRegion _dafny.Sequence + Policy m_Wrappers.Option + BypassPolicyLockoutSafetyCheck m_Wrappers.Option + Description m_Wrappers.Option + Tags m_Wrappers.Option +} + +func (ReplicateKeyRequest_ReplicateKeyRequest) isReplicateKeyRequest() {} + +func (CompanionStruct_ReplicateKeyRequest_) Create_ReplicateKeyRequest_(KeyId _dafny.Sequence, ReplicaRegion _dafny.Sequence, Policy m_Wrappers.Option, BypassPolicyLockoutSafetyCheck m_Wrappers.Option, Description m_Wrappers.Option, Tags m_Wrappers.Option) ReplicateKeyRequest { + return ReplicateKeyRequest{ReplicateKeyRequest_ReplicateKeyRequest{KeyId, ReplicaRegion, Policy, BypassPolicyLockoutSafetyCheck, Description, Tags}} +} + +func (_this ReplicateKeyRequest) Is_ReplicateKeyRequest() bool { + _, ok := _this.Get_().(ReplicateKeyRequest_ReplicateKeyRequest) + return ok +} + +func (CompanionStruct_ReplicateKeyRequest_) Default() ReplicateKeyRequest { + return Companion_ReplicateKeyRequest_.Create_ReplicateKeyRequest_(_dafny.EmptySeq.SetString(), _dafny.EmptySeq.SetString(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this ReplicateKeyRequest) Dtor_KeyId() _dafny.Sequence { + return _this.Get_().(ReplicateKeyRequest_ReplicateKeyRequest).KeyId +} + +func (_this ReplicateKeyRequest) Dtor_ReplicaRegion() _dafny.Sequence { + return _this.Get_().(ReplicateKeyRequest_ReplicateKeyRequest).ReplicaRegion +} + +func (_this ReplicateKeyRequest) Dtor_Policy() m_Wrappers.Option { + return _this.Get_().(ReplicateKeyRequest_ReplicateKeyRequest).Policy +} + +func (_this ReplicateKeyRequest) Dtor_BypassPolicyLockoutSafetyCheck() m_Wrappers.Option { + return _this.Get_().(ReplicateKeyRequest_ReplicateKeyRequest).BypassPolicyLockoutSafetyCheck +} + +func (_this ReplicateKeyRequest) Dtor_Description() m_Wrappers.Option { + return _this.Get_().(ReplicateKeyRequest_ReplicateKeyRequest).Description +} + +func (_this ReplicateKeyRequest) Dtor_Tags() m_Wrappers.Option { + return _this.Get_().(ReplicateKeyRequest_ReplicateKeyRequest).Tags +} + +func (_this ReplicateKeyRequest) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case ReplicateKeyRequest_ReplicateKeyRequest: + { + return "ComAmazonawsKmsTypes.ReplicateKeyRequest.ReplicateKeyRequest" + "(" + _dafny.String(data.KeyId) + ", " + _dafny.String(data.ReplicaRegion) + ", " + _dafny.String(data.Policy) + ", " + _dafny.String(data.BypassPolicyLockoutSafetyCheck) + ", " + _dafny.String(data.Description) + ", " + _dafny.String(data.Tags) + ")" + } + default: + { + return "" + } + } +} + +func (_this ReplicateKeyRequest) Equals(other ReplicateKeyRequest) bool { + switch data1 := _this.Get_().(type) { + case ReplicateKeyRequest_ReplicateKeyRequest: + { + data2, ok := other.Get_().(ReplicateKeyRequest_ReplicateKeyRequest) + return ok && data1.KeyId.Equals(data2.KeyId) && data1.ReplicaRegion.Equals(data2.ReplicaRegion) && data1.Policy.Equals(data2.Policy) && data1.BypassPolicyLockoutSafetyCheck.Equals(data2.BypassPolicyLockoutSafetyCheck) && data1.Description.Equals(data2.Description) && data1.Tags.Equals(data2.Tags) + } + default: + { + return false // unexpected + } + } +} + +func (_this ReplicateKeyRequest) EqualsGeneric(other interface{}) bool { + typed, ok := other.(ReplicateKeyRequest) + return ok && _this.Equals(typed) +} + +func Type_ReplicateKeyRequest_() _dafny.TypeDescriptor { + return type_ReplicateKeyRequest_{} +} + +type type_ReplicateKeyRequest_ struct { +} + +func (_this type_ReplicateKeyRequest_) Default() interface{} { + return Companion_ReplicateKeyRequest_.Default() +} + +func (_this type_ReplicateKeyRequest_) String() string { + return "ComAmazonawsKmsTypes.ReplicateKeyRequest" +} +func (_this ReplicateKeyRequest) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = ReplicateKeyRequest{} + +// End of datatype ReplicateKeyRequest + +// Definition of datatype ReplicateKeyResponse +type ReplicateKeyResponse struct { + Data_ReplicateKeyResponse_ +} + +func (_this ReplicateKeyResponse) Get_() Data_ReplicateKeyResponse_ { + return _this.Data_ReplicateKeyResponse_ +} + +type Data_ReplicateKeyResponse_ interface { + isReplicateKeyResponse() +} + +type CompanionStruct_ReplicateKeyResponse_ struct { +} + +var Companion_ReplicateKeyResponse_ = CompanionStruct_ReplicateKeyResponse_{} + +type ReplicateKeyResponse_ReplicateKeyResponse struct { + ReplicaKeyMetadata m_Wrappers.Option + ReplicaPolicy m_Wrappers.Option + ReplicaTags m_Wrappers.Option +} + +func (ReplicateKeyResponse_ReplicateKeyResponse) isReplicateKeyResponse() {} + +func (CompanionStruct_ReplicateKeyResponse_) Create_ReplicateKeyResponse_(ReplicaKeyMetadata m_Wrappers.Option, ReplicaPolicy m_Wrappers.Option, ReplicaTags m_Wrappers.Option) ReplicateKeyResponse { + return ReplicateKeyResponse{ReplicateKeyResponse_ReplicateKeyResponse{ReplicaKeyMetadata, ReplicaPolicy, ReplicaTags}} +} + +func (_this ReplicateKeyResponse) Is_ReplicateKeyResponse() bool { + _, ok := _this.Get_().(ReplicateKeyResponse_ReplicateKeyResponse) + return ok +} + +func (CompanionStruct_ReplicateKeyResponse_) Default() ReplicateKeyResponse { + return Companion_ReplicateKeyResponse_.Create_ReplicateKeyResponse_(m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this ReplicateKeyResponse) Dtor_ReplicaKeyMetadata() m_Wrappers.Option { + return _this.Get_().(ReplicateKeyResponse_ReplicateKeyResponse).ReplicaKeyMetadata +} + +func (_this ReplicateKeyResponse) Dtor_ReplicaPolicy() m_Wrappers.Option { + return _this.Get_().(ReplicateKeyResponse_ReplicateKeyResponse).ReplicaPolicy +} + +func (_this ReplicateKeyResponse) Dtor_ReplicaTags() m_Wrappers.Option { + return _this.Get_().(ReplicateKeyResponse_ReplicateKeyResponse).ReplicaTags +} + +func (_this ReplicateKeyResponse) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case ReplicateKeyResponse_ReplicateKeyResponse: + { + return "ComAmazonawsKmsTypes.ReplicateKeyResponse.ReplicateKeyResponse" + "(" + _dafny.String(data.ReplicaKeyMetadata) + ", " + _dafny.String(data.ReplicaPolicy) + ", " + _dafny.String(data.ReplicaTags) + ")" + } + default: + { + return "" + } + } +} + +func (_this ReplicateKeyResponse) Equals(other ReplicateKeyResponse) bool { + switch data1 := _this.Get_().(type) { + case ReplicateKeyResponse_ReplicateKeyResponse: + { + data2, ok := other.Get_().(ReplicateKeyResponse_ReplicateKeyResponse) + return ok && data1.ReplicaKeyMetadata.Equals(data2.ReplicaKeyMetadata) && data1.ReplicaPolicy.Equals(data2.ReplicaPolicy) && data1.ReplicaTags.Equals(data2.ReplicaTags) + } + default: + { + return false // unexpected + } + } +} + +func (_this ReplicateKeyResponse) EqualsGeneric(other interface{}) bool { + typed, ok := other.(ReplicateKeyResponse) + return ok && _this.Equals(typed) +} + +func Type_ReplicateKeyResponse_() _dafny.TypeDescriptor { + return type_ReplicateKeyResponse_{} +} + +type type_ReplicateKeyResponse_ struct { +} + +func (_this type_ReplicateKeyResponse_) Default() interface{} { + return Companion_ReplicateKeyResponse_.Default() +} + +func (_this type_ReplicateKeyResponse_) String() string { + return "ComAmazonawsKmsTypes.ReplicateKeyResponse" +} +func (_this ReplicateKeyResponse) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = ReplicateKeyResponse{} + +// End of datatype ReplicateKeyResponse + +// Definition of datatype RetireGrantRequest +type RetireGrantRequest struct { + Data_RetireGrantRequest_ +} + +func (_this RetireGrantRequest) Get_() Data_RetireGrantRequest_ { + return _this.Data_RetireGrantRequest_ +} + +type Data_RetireGrantRequest_ interface { + isRetireGrantRequest() +} + +type CompanionStruct_RetireGrantRequest_ struct { +} + +var Companion_RetireGrantRequest_ = CompanionStruct_RetireGrantRequest_{} + +type RetireGrantRequest_RetireGrantRequest struct { + GrantToken m_Wrappers.Option + KeyId m_Wrappers.Option + GrantId m_Wrappers.Option + DryRun m_Wrappers.Option +} + +func (RetireGrantRequest_RetireGrantRequest) isRetireGrantRequest() {} + +func (CompanionStruct_RetireGrantRequest_) Create_RetireGrantRequest_(GrantToken m_Wrappers.Option, KeyId m_Wrappers.Option, GrantId m_Wrappers.Option, DryRun m_Wrappers.Option) RetireGrantRequest { + return RetireGrantRequest{RetireGrantRequest_RetireGrantRequest{GrantToken, KeyId, GrantId, DryRun}} +} + +func (_this RetireGrantRequest) Is_RetireGrantRequest() bool { + _, ok := _this.Get_().(RetireGrantRequest_RetireGrantRequest) + return ok +} + +func (CompanionStruct_RetireGrantRequest_) Default() RetireGrantRequest { + return Companion_RetireGrantRequest_.Create_RetireGrantRequest_(m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this RetireGrantRequest) Dtor_GrantToken() m_Wrappers.Option { + return _this.Get_().(RetireGrantRequest_RetireGrantRequest).GrantToken +} + +func (_this RetireGrantRequest) Dtor_KeyId() m_Wrappers.Option { + return _this.Get_().(RetireGrantRequest_RetireGrantRequest).KeyId +} + +func (_this RetireGrantRequest) Dtor_GrantId() m_Wrappers.Option { + return _this.Get_().(RetireGrantRequest_RetireGrantRequest).GrantId +} + +func (_this RetireGrantRequest) Dtor_DryRun() m_Wrappers.Option { + return _this.Get_().(RetireGrantRequest_RetireGrantRequest).DryRun +} + +func (_this RetireGrantRequest) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case RetireGrantRequest_RetireGrantRequest: + { + return "ComAmazonawsKmsTypes.RetireGrantRequest.RetireGrantRequest" + "(" + _dafny.String(data.GrantToken) + ", " + _dafny.String(data.KeyId) + ", " + _dafny.String(data.GrantId) + ", " + _dafny.String(data.DryRun) + ")" + } + default: + { + return "" + } + } +} + +func (_this RetireGrantRequest) Equals(other RetireGrantRequest) bool { + switch data1 := _this.Get_().(type) { + case RetireGrantRequest_RetireGrantRequest: + { + data2, ok := other.Get_().(RetireGrantRequest_RetireGrantRequest) + return ok && data1.GrantToken.Equals(data2.GrantToken) && data1.KeyId.Equals(data2.KeyId) && data1.GrantId.Equals(data2.GrantId) && data1.DryRun.Equals(data2.DryRun) + } + default: + { + return false // unexpected + } + } +} + +func (_this RetireGrantRequest) EqualsGeneric(other interface{}) bool { + typed, ok := other.(RetireGrantRequest) + return ok && _this.Equals(typed) +} + +func Type_RetireGrantRequest_() _dafny.TypeDescriptor { + return type_RetireGrantRequest_{} +} + +type type_RetireGrantRequest_ struct { +} + +func (_this type_RetireGrantRequest_) Default() interface{} { + return Companion_RetireGrantRequest_.Default() +} + +func (_this type_RetireGrantRequest_) String() string { + return "ComAmazonawsKmsTypes.RetireGrantRequest" +} +func (_this RetireGrantRequest) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = RetireGrantRequest{} + +// End of datatype RetireGrantRequest + +// Definition of datatype RevokeGrantRequest +type RevokeGrantRequest struct { + Data_RevokeGrantRequest_ +} + +func (_this RevokeGrantRequest) Get_() Data_RevokeGrantRequest_ { + return _this.Data_RevokeGrantRequest_ +} + +type Data_RevokeGrantRequest_ interface { + isRevokeGrantRequest() +} + +type CompanionStruct_RevokeGrantRequest_ struct { +} + +var Companion_RevokeGrantRequest_ = CompanionStruct_RevokeGrantRequest_{} + +type RevokeGrantRequest_RevokeGrantRequest struct { + KeyId _dafny.Sequence + GrantId _dafny.Sequence + DryRun m_Wrappers.Option +} + +func (RevokeGrantRequest_RevokeGrantRequest) isRevokeGrantRequest() {} + +func (CompanionStruct_RevokeGrantRequest_) Create_RevokeGrantRequest_(KeyId _dafny.Sequence, GrantId _dafny.Sequence, DryRun m_Wrappers.Option) RevokeGrantRequest { + return RevokeGrantRequest{RevokeGrantRequest_RevokeGrantRequest{KeyId, GrantId, DryRun}} +} + +func (_this RevokeGrantRequest) Is_RevokeGrantRequest() bool { + _, ok := _this.Get_().(RevokeGrantRequest_RevokeGrantRequest) + return ok +} + +func (CompanionStruct_RevokeGrantRequest_) Default() RevokeGrantRequest { + return Companion_RevokeGrantRequest_.Create_RevokeGrantRequest_(_dafny.EmptySeq.SetString(), _dafny.EmptySeq.SetString(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this RevokeGrantRequest) Dtor_KeyId() _dafny.Sequence { + return _this.Get_().(RevokeGrantRequest_RevokeGrantRequest).KeyId +} + +func (_this RevokeGrantRequest) Dtor_GrantId() _dafny.Sequence { + return _this.Get_().(RevokeGrantRequest_RevokeGrantRequest).GrantId +} + +func (_this RevokeGrantRequest) Dtor_DryRun() m_Wrappers.Option { + return _this.Get_().(RevokeGrantRequest_RevokeGrantRequest).DryRun +} + +func (_this RevokeGrantRequest) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case RevokeGrantRequest_RevokeGrantRequest: + { + return "ComAmazonawsKmsTypes.RevokeGrantRequest.RevokeGrantRequest" + "(" + _dafny.String(data.KeyId) + ", " + _dafny.String(data.GrantId) + ", " + _dafny.String(data.DryRun) + ")" + } + default: + { + return "" + } + } +} + +func (_this RevokeGrantRequest) Equals(other RevokeGrantRequest) bool { + switch data1 := _this.Get_().(type) { + case RevokeGrantRequest_RevokeGrantRequest: + { + data2, ok := other.Get_().(RevokeGrantRequest_RevokeGrantRequest) + return ok && data1.KeyId.Equals(data2.KeyId) && data1.GrantId.Equals(data2.GrantId) && data1.DryRun.Equals(data2.DryRun) + } + default: + { + return false // unexpected + } + } +} + +func (_this RevokeGrantRequest) EqualsGeneric(other interface{}) bool { + typed, ok := other.(RevokeGrantRequest) + return ok && _this.Equals(typed) +} + +func Type_RevokeGrantRequest_() _dafny.TypeDescriptor { + return type_RevokeGrantRequest_{} +} + +type type_RevokeGrantRequest_ struct { +} + +func (_this type_RevokeGrantRequest_) Default() interface{} { + return Companion_RevokeGrantRequest_.Default() +} + +func (_this type_RevokeGrantRequest_) String() string { + return "ComAmazonawsKmsTypes.RevokeGrantRequest" +} +func (_this RevokeGrantRequest) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = RevokeGrantRequest{} + +// End of datatype RevokeGrantRequest + +// Definition of datatype RotateKeyOnDemandRequest +type RotateKeyOnDemandRequest struct { + Data_RotateKeyOnDemandRequest_ +} + +func (_this RotateKeyOnDemandRequest) Get_() Data_RotateKeyOnDemandRequest_ { + return _this.Data_RotateKeyOnDemandRequest_ +} + +type Data_RotateKeyOnDemandRequest_ interface { + isRotateKeyOnDemandRequest() +} + +type CompanionStruct_RotateKeyOnDemandRequest_ struct { +} + +var Companion_RotateKeyOnDemandRequest_ = CompanionStruct_RotateKeyOnDemandRequest_{} + +type RotateKeyOnDemandRequest_RotateKeyOnDemandRequest struct { + KeyId _dafny.Sequence +} + +func (RotateKeyOnDemandRequest_RotateKeyOnDemandRequest) isRotateKeyOnDemandRequest() {} + +func (CompanionStruct_RotateKeyOnDemandRequest_) Create_RotateKeyOnDemandRequest_(KeyId _dafny.Sequence) RotateKeyOnDemandRequest { + return RotateKeyOnDemandRequest{RotateKeyOnDemandRequest_RotateKeyOnDemandRequest{KeyId}} +} + +func (_this RotateKeyOnDemandRequest) Is_RotateKeyOnDemandRequest() bool { + _, ok := _this.Get_().(RotateKeyOnDemandRequest_RotateKeyOnDemandRequest) + return ok +} + +func (CompanionStruct_RotateKeyOnDemandRequest_) Default() RotateKeyOnDemandRequest { + return Companion_RotateKeyOnDemandRequest_.Create_RotateKeyOnDemandRequest_(_dafny.EmptySeq.SetString()) +} + +func (_this RotateKeyOnDemandRequest) Dtor_KeyId() _dafny.Sequence { + return _this.Get_().(RotateKeyOnDemandRequest_RotateKeyOnDemandRequest).KeyId +} + +func (_this RotateKeyOnDemandRequest) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case RotateKeyOnDemandRequest_RotateKeyOnDemandRequest: + { + return "ComAmazonawsKmsTypes.RotateKeyOnDemandRequest.RotateKeyOnDemandRequest" + "(" + _dafny.String(data.KeyId) + ")" + } + default: + { + return "" + } + } +} + +func (_this RotateKeyOnDemandRequest) Equals(other RotateKeyOnDemandRequest) bool { + switch data1 := _this.Get_().(type) { + case RotateKeyOnDemandRequest_RotateKeyOnDemandRequest: + { + data2, ok := other.Get_().(RotateKeyOnDemandRequest_RotateKeyOnDemandRequest) + return ok && data1.KeyId.Equals(data2.KeyId) + } + default: + { + return false // unexpected + } + } +} + +func (_this RotateKeyOnDemandRequest) EqualsGeneric(other interface{}) bool { + typed, ok := other.(RotateKeyOnDemandRequest) + return ok && _this.Equals(typed) +} + +func Type_RotateKeyOnDemandRequest_() _dafny.TypeDescriptor { + return type_RotateKeyOnDemandRequest_{} +} + +type type_RotateKeyOnDemandRequest_ struct { +} + +func (_this type_RotateKeyOnDemandRequest_) Default() interface{} { + return Companion_RotateKeyOnDemandRequest_.Default() +} + +func (_this type_RotateKeyOnDemandRequest_) String() string { + return "ComAmazonawsKmsTypes.RotateKeyOnDemandRequest" +} +func (_this RotateKeyOnDemandRequest) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = RotateKeyOnDemandRequest{} + +// End of datatype RotateKeyOnDemandRequest + +// Definition of datatype RotateKeyOnDemandResponse +type RotateKeyOnDemandResponse struct { + Data_RotateKeyOnDemandResponse_ +} + +func (_this RotateKeyOnDemandResponse) Get_() Data_RotateKeyOnDemandResponse_ { + return _this.Data_RotateKeyOnDemandResponse_ +} + +type Data_RotateKeyOnDemandResponse_ interface { + isRotateKeyOnDemandResponse() +} + +type CompanionStruct_RotateKeyOnDemandResponse_ struct { +} + +var Companion_RotateKeyOnDemandResponse_ = CompanionStruct_RotateKeyOnDemandResponse_{} + +type RotateKeyOnDemandResponse_RotateKeyOnDemandResponse struct { + KeyId m_Wrappers.Option +} + +func (RotateKeyOnDemandResponse_RotateKeyOnDemandResponse) isRotateKeyOnDemandResponse() {} + +func (CompanionStruct_RotateKeyOnDemandResponse_) Create_RotateKeyOnDemandResponse_(KeyId m_Wrappers.Option) RotateKeyOnDemandResponse { + return RotateKeyOnDemandResponse{RotateKeyOnDemandResponse_RotateKeyOnDemandResponse{KeyId}} +} + +func (_this RotateKeyOnDemandResponse) Is_RotateKeyOnDemandResponse() bool { + _, ok := _this.Get_().(RotateKeyOnDemandResponse_RotateKeyOnDemandResponse) + return ok +} + +func (CompanionStruct_RotateKeyOnDemandResponse_) Default() RotateKeyOnDemandResponse { + return Companion_RotateKeyOnDemandResponse_.Create_RotateKeyOnDemandResponse_(m_Wrappers.Companion_Option_.Default()) +} + +func (_this RotateKeyOnDemandResponse) Dtor_KeyId() m_Wrappers.Option { + return _this.Get_().(RotateKeyOnDemandResponse_RotateKeyOnDemandResponse).KeyId +} + +func (_this RotateKeyOnDemandResponse) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case RotateKeyOnDemandResponse_RotateKeyOnDemandResponse: + { + return "ComAmazonawsKmsTypes.RotateKeyOnDemandResponse.RotateKeyOnDemandResponse" + "(" + _dafny.String(data.KeyId) + ")" + } + default: + { + return "" + } + } +} + +func (_this RotateKeyOnDemandResponse) Equals(other RotateKeyOnDemandResponse) bool { + switch data1 := _this.Get_().(type) { + case RotateKeyOnDemandResponse_RotateKeyOnDemandResponse: + { + data2, ok := other.Get_().(RotateKeyOnDemandResponse_RotateKeyOnDemandResponse) + return ok && data1.KeyId.Equals(data2.KeyId) + } + default: + { + return false // unexpected + } + } +} + +func (_this RotateKeyOnDemandResponse) EqualsGeneric(other interface{}) bool { + typed, ok := other.(RotateKeyOnDemandResponse) + return ok && _this.Equals(typed) +} + +func Type_RotateKeyOnDemandResponse_() _dafny.TypeDescriptor { + return type_RotateKeyOnDemandResponse_{} +} + +type type_RotateKeyOnDemandResponse_ struct { +} + +func (_this type_RotateKeyOnDemandResponse_) Default() interface{} { + return Companion_RotateKeyOnDemandResponse_.Default() +} + +func (_this type_RotateKeyOnDemandResponse_) String() string { + return "ComAmazonawsKmsTypes.RotateKeyOnDemandResponse" +} +func (_this RotateKeyOnDemandResponse) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = RotateKeyOnDemandResponse{} + +// End of datatype RotateKeyOnDemandResponse + +// Definition of class RotationPeriodInDaysType +type RotationPeriodInDaysType struct { +} + +func New_RotationPeriodInDaysType_() *RotationPeriodInDaysType { + _this := RotationPeriodInDaysType{} + + return &_this +} + +type CompanionStruct_RotationPeriodInDaysType_ struct { +} + +var Companion_RotationPeriodInDaysType_ = CompanionStruct_RotationPeriodInDaysType_{} + +func (*RotationPeriodInDaysType) String() string { + return "ComAmazonawsKmsTypes.RotationPeriodInDaysType" +} + +// End of class RotationPeriodInDaysType + +func Type_RotationPeriodInDaysType_() _dafny.TypeDescriptor { + return type_RotationPeriodInDaysType_{} +} + +type type_RotationPeriodInDaysType_ struct { +} + +func (_this type_RotationPeriodInDaysType_) Default() interface{} { + return int32(0) +} + +func (_this type_RotationPeriodInDaysType_) String() string { + return "ComAmazonawsKmsTypes.RotationPeriodInDaysType" +} +func (_this *CompanionStruct_RotationPeriodInDaysType_) Is_(__source int32) bool { + var _24_x int32 = (__source) + _ = _24_x + if true { + return Companion_Default___.IsValid__RotationPeriodInDaysType(_24_x) + } + return false +} + +// Definition of datatype RotationsListEntry +type RotationsListEntry struct { + Data_RotationsListEntry_ +} + +func (_this RotationsListEntry) Get_() Data_RotationsListEntry_ { + return _this.Data_RotationsListEntry_ +} + +type Data_RotationsListEntry_ interface { + isRotationsListEntry() +} + +type CompanionStruct_RotationsListEntry_ struct { +} + +var Companion_RotationsListEntry_ = CompanionStruct_RotationsListEntry_{} + +type RotationsListEntry_RotationsListEntry struct { + KeyId m_Wrappers.Option + RotationDate m_Wrappers.Option + RotationType m_Wrappers.Option +} + +func (RotationsListEntry_RotationsListEntry) isRotationsListEntry() {} + +func (CompanionStruct_RotationsListEntry_) Create_RotationsListEntry_(KeyId m_Wrappers.Option, RotationDate m_Wrappers.Option, RotationType m_Wrappers.Option) RotationsListEntry { + return RotationsListEntry{RotationsListEntry_RotationsListEntry{KeyId, RotationDate, RotationType}} +} + +func (_this RotationsListEntry) Is_RotationsListEntry() bool { + _, ok := _this.Get_().(RotationsListEntry_RotationsListEntry) + return ok +} + +func (CompanionStruct_RotationsListEntry_) Default() RotationsListEntry { + return Companion_RotationsListEntry_.Create_RotationsListEntry_(m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this RotationsListEntry) Dtor_KeyId() m_Wrappers.Option { + return _this.Get_().(RotationsListEntry_RotationsListEntry).KeyId +} + +func (_this RotationsListEntry) Dtor_RotationDate() m_Wrappers.Option { + return _this.Get_().(RotationsListEntry_RotationsListEntry).RotationDate +} + +func (_this RotationsListEntry) Dtor_RotationType() m_Wrappers.Option { + return _this.Get_().(RotationsListEntry_RotationsListEntry).RotationType +} + +func (_this RotationsListEntry) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case RotationsListEntry_RotationsListEntry: + { + return "ComAmazonawsKmsTypes.RotationsListEntry.RotationsListEntry" + "(" + _dafny.String(data.KeyId) + ", " + _dafny.String(data.RotationDate) + ", " + _dafny.String(data.RotationType) + ")" + } + default: + { + return "" + } + } +} + +func (_this RotationsListEntry) Equals(other RotationsListEntry) bool { + switch data1 := _this.Get_().(type) { + case RotationsListEntry_RotationsListEntry: + { + data2, ok := other.Get_().(RotationsListEntry_RotationsListEntry) + return ok && data1.KeyId.Equals(data2.KeyId) && data1.RotationDate.Equals(data2.RotationDate) && data1.RotationType.Equals(data2.RotationType) + } + default: + { + return false // unexpected + } + } +} + +func (_this RotationsListEntry) EqualsGeneric(other interface{}) bool { + typed, ok := other.(RotationsListEntry) + return ok && _this.Equals(typed) +} + +func Type_RotationsListEntry_() _dafny.TypeDescriptor { + return type_RotationsListEntry_{} +} + +type type_RotationsListEntry_ struct { +} + +func (_this type_RotationsListEntry_) Default() interface{} { + return Companion_RotationsListEntry_.Default() +} + +func (_this type_RotationsListEntry_) String() string { + return "ComAmazonawsKmsTypes.RotationsListEntry" +} +func (_this RotationsListEntry) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = RotationsListEntry{} + +// End of datatype RotationsListEntry + +// Definition of datatype RotationType +type RotationType struct { + Data_RotationType_ +} + +func (_this RotationType) Get_() Data_RotationType_ { + return _this.Data_RotationType_ +} + +type Data_RotationType_ interface { + isRotationType() +} + +type CompanionStruct_RotationType_ struct { +} + +var Companion_RotationType_ = CompanionStruct_RotationType_{} + +type RotationType_AUTOMATIC struct { +} + +func (RotationType_AUTOMATIC) isRotationType() {} + +func (CompanionStruct_RotationType_) Create_AUTOMATIC_() RotationType { + return RotationType{RotationType_AUTOMATIC{}} +} + +func (_this RotationType) Is_AUTOMATIC() bool { + _, ok := _this.Get_().(RotationType_AUTOMATIC) + return ok +} + +type RotationType_ON__DEMAND struct { +} + +func (RotationType_ON__DEMAND) isRotationType() {} + +func (CompanionStruct_RotationType_) Create_ON__DEMAND_() RotationType { + return RotationType{RotationType_ON__DEMAND{}} +} + +func (_this RotationType) Is_ON__DEMAND() bool { + _, ok := _this.Get_().(RotationType_ON__DEMAND) + return ok +} + +func (CompanionStruct_RotationType_) Default() RotationType { + return Companion_RotationType_.Create_AUTOMATIC_() +} + +func (_ CompanionStruct_RotationType_) AllSingletonConstructors() _dafny.Iterator { + i := -1 + return func() (interface{}, bool) { + i++ + switch i { + case 0: + return Companion_RotationType_.Create_AUTOMATIC_(), true + case 1: + return Companion_RotationType_.Create_ON__DEMAND_(), true + default: + return RotationType{}, false + } + } +} + +func (_this RotationType) String() string { + switch _this.Get_().(type) { + case nil: + return "null" + case RotationType_AUTOMATIC: + { + return "ComAmazonawsKmsTypes.RotationType.AUTOMATIC" + } + case RotationType_ON__DEMAND: + { + return "ComAmazonawsKmsTypes.RotationType.ON_DEMAND" + } + default: + { + return "" + } + } +} + +func (_this RotationType) Equals(other RotationType) bool { + switch _this.Get_().(type) { + case RotationType_AUTOMATIC: + { + _, ok := other.Get_().(RotationType_AUTOMATIC) + return ok + } + case RotationType_ON__DEMAND: + { + _, ok := other.Get_().(RotationType_ON__DEMAND) + return ok + } + default: + { + return false // unexpected + } + } +} + +func (_this RotationType) EqualsGeneric(other interface{}) bool { + typed, ok := other.(RotationType) + return ok && _this.Equals(typed) +} + +func Type_RotationType_() _dafny.TypeDescriptor { + return type_RotationType_{} +} + +type type_RotationType_ struct { +} + +func (_this type_RotationType_) Default() interface{} { + return Companion_RotationType_.Default() +} + +func (_this type_RotationType_) String() string { + return "ComAmazonawsKmsTypes.RotationType" +} +func (_this RotationType) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = RotationType{} + +// End of datatype RotationType + +// Definition of datatype ScheduleKeyDeletionRequest +type ScheduleKeyDeletionRequest struct { + Data_ScheduleKeyDeletionRequest_ +} + +func (_this ScheduleKeyDeletionRequest) Get_() Data_ScheduleKeyDeletionRequest_ { + return _this.Data_ScheduleKeyDeletionRequest_ +} + +type Data_ScheduleKeyDeletionRequest_ interface { + isScheduleKeyDeletionRequest() +} + +type CompanionStruct_ScheduleKeyDeletionRequest_ struct { +} + +var Companion_ScheduleKeyDeletionRequest_ = CompanionStruct_ScheduleKeyDeletionRequest_{} + +type ScheduleKeyDeletionRequest_ScheduleKeyDeletionRequest struct { + KeyId _dafny.Sequence + PendingWindowInDays m_Wrappers.Option +} + +func (ScheduleKeyDeletionRequest_ScheduleKeyDeletionRequest) isScheduleKeyDeletionRequest() {} + +func (CompanionStruct_ScheduleKeyDeletionRequest_) Create_ScheduleKeyDeletionRequest_(KeyId _dafny.Sequence, PendingWindowInDays m_Wrappers.Option) ScheduleKeyDeletionRequest { + return ScheduleKeyDeletionRequest{ScheduleKeyDeletionRequest_ScheduleKeyDeletionRequest{KeyId, PendingWindowInDays}} +} + +func (_this ScheduleKeyDeletionRequest) Is_ScheduleKeyDeletionRequest() bool { + _, ok := _this.Get_().(ScheduleKeyDeletionRequest_ScheduleKeyDeletionRequest) + return ok +} + +func (CompanionStruct_ScheduleKeyDeletionRequest_) Default() ScheduleKeyDeletionRequest { + return Companion_ScheduleKeyDeletionRequest_.Create_ScheduleKeyDeletionRequest_(_dafny.EmptySeq.SetString(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this ScheduleKeyDeletionRequest) Dtor_KeyId() _dafny.Sequence { + return _this.Get_().(ScheduleKeyDeletionRequest_ScheduleKeyDeletionRequest).KeyId +} + +func (_this ScheduleKeyDeletionRequest) Dtor_PendingWindowInDays() m_Wrappers.Option { + return _this.Get_().(ScheduleKeyDeletionRequest_ScheduleKeyDeletionRequest).PendingWindowInDays +} + +func (_this ScheduleKeyDeletionRequest) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case ScheduleKeyDeletionRequest_ScheduleKeyDeletionRequest: + { + return "ComAmazonawsKmsTypes.ScheduleKeyDeletionRequest.ScheduleKeyDeletionRequest" + "(" + _dafny.String(data.KeyId) + ", " + _dafny.String(data.PendingWindowInDays) + ")" + } + default: + { + return "" + } + } +} + +func (_this ScheduleKeyDeletionRequest) Equals(other ScheduleKeyDeletionRequest) bool { + switch data1 := _this.Get_().(type) { + case ScheduleKeyDeletionRequest_ScheduleKeyDeletionRequest: + { + data2, ok := other.Get_().(ScheduleKeyDeletionRequest_ScheduleKeyDeletionRequest) + return ok && data1.KeyId.Equals(data2.KeyId) && data1.PendingWindowInDays.Equals(data2.PendingWindowInDays) + } + default: + { + return false // unexpected + } + } +} + +func (_this ScheduleKeyDeletionRequest) EqualsGeneric(other interface{}) bool { + typed, ok := other.(ScheduleKeyDeletionRequest) + return ok && _this.Equals(typed) +} + +func Type_ScheduleKeyDeletionRequest_() _dafny.TypeDescriptor { + return type_ScheduleKeyDeletionRequest_{} +} + +type type_ScheduleKeyDeletionRequest_ struct { +} + +func (_this type_ScheduleKeyDeletionRequest_) Default() interface{} { + return Companion_ScheduleKeyDeletionRequest_.Default() +} + +func (_this type_ScheduleKeyDeletionRequest_) String() string { + return "ComAmazonawsKmsTypes.ScheduleKeyDeletionRequest" +} +func (_this ScheduleKeyDeletionRequest) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = ScheduleKeyDeletionRequest{} + +// End of datatype ScheduleKeyDeletionRequest + +// Definition of datatype ScheduleKeyDeletionResponse +type ScheduleKeyDeletionResponse struct { + Data_ScheduleKeyDeletionResponse_ +} + +func (_this ScheduleKeyDeletionResponse) Get_() Data_ScheduleKeyDeletionResponse_ { + return _this.Data_ScheduleKeyDeletionResponse_ +} + +type Data_ScheduleKeyDeletionResponse_ interface { + isScheduleKeyDeletionResponse() +} + +type CompanionStruct_ScheduleKeyDeletionResponse_ struct { +} + +var Companion_ScheduleKeyDeletionResponse_ = CompanionStruct_ScheduleKeyDeletionResponse_{} + +type ScheduleKeyDeletionResponse_ScheduleKeyDeletionResponse struct { + KeyId m_Wrappers.Option + DeletionDate m_Wrappers.Option + KeyState m_Wrappers.Option + PendingWindowInDays m_Wrappers.Option +} + +func (ScheduleKeyDeletionResponse_ScheduleKeyDeletionResponse) isScheduleKeyDeletionResponse() {} + +func (CompanionStruct_ScheduleKeyDeletionResponse_) Create_ScheduleKeyDeletionResponse_(KeyId m_Wrappers.Option, DeletionDate m_Wrappers.Option, KeyState m_Wrappers.Option, PendingWindowInDays m_Wrappers.Option) ScheduleKeyDeletionResponse { + return ScheduleKeyDeletionResponse{ScheduleKeyDeletionResponse_ScheduleKeyDeletionResponse{KeyId, DeletionDate, KeyState, PendingWindowInDays}} +} + +func (_this ScheduleKeyDeletionResponse) Is_ScheduleKeyDeletionResponse() bool { + _, ok := _this.Get_().(ScheduleKeyDeletionResponse_ScheduleKeyDeletionResponse) + return ok +} + +func (CompanionStruct_ScheduleKeyDeletionResponse_) Default() ScheduleKeyDeletionResponse { + return Companion_ScheduleKeyDeletionResponse_.Create_ScheduleKeyDeletionResponse_(m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this ScheduleKeyDeletionResponse) Dtor_KeyId() m_Wrappers.Option { + return _this.Get_().(ScheduleKeyDeletionResponse_ScheduleKeyDeletionResponse).KeyId +} + +func (_this ScheduleKeyDeletionResponse) Dtor_DeletionDate() m_Wrappers.Option { + return _this.Get_().(ScheduleKeyDeletionResponse_ScheduleKeyDeletionResponse).DeletionDate +} + +func (_this ScheduleKeyDeletionResponse) Dtor_KeyState() m_Wrappers.Option { + return _this.Get_().(ScheduleKeyDeletionResponse_ScheduleKeyDeletionResponse).KeyState +} + +func (_this ScheduleKeyDeletionResponse) Dtor_PendingWindowInDays() m_Wrappers.Option { + return _this.Get_().(ScheduleKeyDeletionResponse_ScheduleKeyDeletionResponse).PendingWindowInDays +} + +func (_this ScheduleKeyDeletionResponse) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case ScheduleKeyDeletionResponse_ScheduleKeyDeletionResponse: + { + return "ComAmazonawsKmsTypes.ScheduleKeyDeletionResponse.ScheduleKeyDeletionResponse" + "(" + _dafny.String(data.KeyId) + ", " + _dafny.String(data.DeletionDate) + ", " + _dafny.String(data.KeyState) + ", " + _dafny.String(data.PendingWindowInDays) + ")" + } + default: + { + return "" + } + } +} + +func (_this ScheduleKeyDeletionResponse) Equals(other ScheduleKeyDeletionResponse) bool { + switch data1 := _this.Get_().(type) { + case ScheduleKeyDeletionResponse_ScheduleKeyDeletionResponse: + { + data2, ok := other.Get_().(ScheduleKeyDeletionResponse_ScheduleKeyDeletionResponse) + return ok && data1.KeyId.Equals(data2.KeyId) && data1.DeletionDate.Equals(data2.DeletionDate) && data1.KeyState.Equals(data2.KeyState) && data1.PendingWindowInDays.Equals(data2.PendingWindowInDays) + } + default: + { + return false // unexpected + } + } +} + +func (_this ScheduleKeyDeletionResponse) EqualsGeneric(other interface{}) bool { + typed, ok := other.(ScheduleKeyDeletionResponse) + return ok && _this.Equals(typed) +} + +func Type_ScheduleKeyDeletionResponse_() _dafny.TypeDescriptor { + return type_ScheduleKeyDeletionResponse_{} +} + +type type_ScheduleKeyDeletionResponse_ struct { +} + +func (_this type_ScheduleKeyDeletionResponse_) Default() interface{} { + return Companion_ScheduleKeyDeletionResponse_.Default() +} + +func (_this type_ScheduleKeyDeletionResponse_) String() string { + return "ComAmazonawsKmsTypes.ScheduleKeyDeletionResponse" +} +func (_this ScheduleKeyDeletionResponse) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = ScheduleKeyDeletionResponse{} + +// End of datatype ScheduleKeyDeletionResponse + +// Definition of datatype SigningAlgorithmSpec +type SigningAlgorithmSpec struct { + Data_SigningAlgorithmSpec_ +} + +func (_this SigningAlgorithmSpec) Get_() Data_SigningAlgorithmSpec_ { + return _this.Data_SigningAlgorithmSpec_ +} + +type Data_SigningAlgorithmSpec_ interface { + isSigningAlgorithmSpec() +} + +type CompanionStruct_SigningAlgorithmSpec_ struct { +} + +var Companion_SigningAlgorithmSpec_ = CompanionStruct_SigningAlgorithmSpec_{} + +type SigningAlgorithmSpec_RSASSA__PSS__SHA__256 struct { +} + +func (SigningAlgorithmSpec_RSASSA__PSS__SHA__256) isSigningAlgorithmSpec() {} + +func (CompanionStruct_SigningAlgorithmSpec_) Create_RSASSA__PSS__SHA__256_() SigningAlgorithmSpec { + return SigningAlgorithmSpec{SigningAlgorithmSpec_RSASSA__PSS__SHA__256{}} +} + +func (_this SigningAlgorithmSpec) Is_RSASSA__PSS__SHA__256() bool { + _, ok := _this.Get_().(SigningAlgorithmSpec_RSASSA__PSS__SHA__256) + return ok +} + +type SigningAlgorithmSpec_RSASSA__PSS__SHA__384 struct { +} + +func (SigningAlgorithmSpec_RSASSA__PSS__SHA__384) isSigningAlgorithmSpec() {} + +func (CompanionStruct_SigningAlgorithmSpec_) Create_RSASSA__PSS__SHA__384_() SigningAlgorithmSpec { + return SigningAlgorithmSpec{SigningAlgorithmSpec_RSASSA__PSS__SHA__384{}} +} + +func (_this SigningAlgorithmSpec) Is_RSASSA__PSS__SHA__384() bool { + _, ok := _this.Get_().(SigningAlgorithmSpec_RSASSA__PSS__SHA__384) + return ok +} + +type SigningAlgorithmSpec_RSASSA__PSS__SHA__512 struct { +} + +func (SigningAlgorithmSpec_RSASSA__PSS__SHA__512) isSigningAlgorithmSpec() {} + +func (CompanionStruct_SigningAlgorithmSpec_) Create_RSASSA__PSS__SHA__512_() SigningAlgorithmSpec { + return SigningAlgorithmSpec{SigningAlgorithmSpec_RSASSA__PSS__SHA__512{}} +} + +func (_this SigningAlgorithmSpec) Is_RSASSA__PSS__SHA__512() bool { + _, ok := _this.Get_().(SigningAlgorithmSpec_RSASSA__PSS__SHA__512) + return ok +} + +type SigningAlgorithmSpec_RSASSA__PKCS1__V1__5__SHA__256 struct { +} + +func (SigningAlgorithmSpec_RSASSA__PKCS1__V1__5__SHA__256) isSigningAlgorithmSpec() {} + +func (CompanionStruct_SigningAlgorithmSpec_) Create_RSASSA__PKCS1__V1__5__SHA__256_() SigningAlgorithmSpec { + return SigningAlgorithmSpec{SigningAlgorithmSpec_RSASSA__PKCS1__V1__5__SHA__256{}} +} + +func (_this SigningAlgorithmSpec) Is_RSASSA__PKCS1__V1__5__SHA__256() bool { + _, ok := _this.Get_().(SigningAlgorithmSpec_RSASSA__PKCS1__V1__5__SHA__256) + return ok +} + +type SigningAlgorithmSpec_RSASSA__PKCS1__V1__5__SHA__384 struct { +} + +func (SigningAlgorithmSpec_RSASSA__PKCS1__V1__5__SHA__384) isSigningAlgorithmSpec() {} + +func (CompanionStruct_SigningAlgorithmSpec_) Create_RSASSA__PKCS1__V1__5__SHA__384_() SigningAlgorithmSpec { + return SigningAlgorithmSpec{SigningAlgorithmSpec_RSASSA__PKCS1__V1__5__SHA__384{}} +} + +func (_this SigningAlgorithmSpec) Is_RSASSA__PKCS1__V1__5__SHA__384() bool { + _, ok := _this.Get_().(SigningAlgorithmSpec_RSASSA__PKCS1__V1__5__SHA__384) + return ok +} + +type SigningAlgorithmSpec_RSASSA__PKCS1__V1__5__SHA__512 struct { +} + +func (SigningAlgorithmSpec_RSASSA__PKCS1__V1__5__SHA__512) isSigningAlgorithmSpec() {} + +func (CompanionStruct_SigningAlgorithmSpec_) Create_RSASSA__PKCS1__V1__5__SHA__512_() SigningAlgorithmSpec { + return SigningAlgorithmSpec{SigningAlgorithmSpec_RSASSA__PKCS1__V1__5__SHA__512{}} +} + +func (_this SigningAlgorithmSpec) Is_RSASSA__PKCS1__V1__5__SHA__512() bool { + _, ok := _this.Get_().(SigningAlgorithmSpec_RSASSA__PKCS1__V1__5__SHA__512) + return ok +} + +type SigningAlgorithmSpec_ECDSA__SHA__256 struct { +} + +func (SigningAlgorithmSpec_ECDSA__SHA__256) isSigningAlgorithmSpec() {} + +func (CompanionStruct_SigningAlgorithmSpec_) Create_ECDSA__SHA__256_() SigningAlgorithmSpec { + return SigningAlgorithmSpec{SigningAlgorithmSpec_ECDSA__SHA__256{}} +} + +func (_this SigningAlgorithmSpec) Is_ECDSA__SHA__256() bool { + _, ok := _this.Get_().(SigningAlgorithmSpec_ECDSA__SHA__256) + return ok +} + +type SigningAlgorithmSpec_ECDSA__SHA__384 struct { +} + +func (SigningAlgorithmSpec_ECDSA__SHA__384) isSigningAlgorithmSpec() {} + +func (CompanionStruct_SigningAlgorithmSpec_) Create_ECDSA__SHA__384_() SigningAlgorithmSpec { + return SigningAlgorithmSpec{SigningAlgorithmSpec_ECDSA__SHA__384{}} +} + +func (_this SigningAlgorithmSpec) Is_ECDSA__SHA__384() bool { + _, ok := _this.Get_().(SigningAlgorithmSpec_ECDSA__SHA__384) + return ok +} + +type SigningAlgorithmSpec_ECDSA__SHA__512 struct { +} + +func (SigningAlgorithmSpec_ECDSA__SHA__512) isSigningAlgorithmSpec() {} + +func (CompanionStruct_SigningAlgorithmSpec_) Create_ECDSA__SHA__512_() SigningAlgorithmSpec { + return SigningAlgorithmSpec{SigningAlgorithmSpec_ECDSA__SHA__512{}} +} + +func (_this SigningAlgorithmSpec) Is_ECDSA__SHA__512() bool { + _, ok := _this.Get_().(SigningAlgorithmSpec_ECDSA__SHA__512) + return ok +} + +type SigningAlgorithmSpec_SM2DSA struct { +} + +func (SigningAlgorithmSpec_SM2DSA) isSigningAlgorithmSpec() {} + +func (CompanionStruct_SigningAlgorithmSpec_) Create_SM2DSA_() SigningAlgorithmSpec { + return SigningAlgorithmSpec{SigningAlgorithmSpec_SM2DSA{}} +} + +func (_this SigningAlgorithmSpec) Is_SM2DSA() bool { + _, ok := _this.Get_().(SigningAlgorithmSpec_SM2DSA) + return ok +} + +func (CompanionStruct_SigningAlgorithmSpec_) Default() SigningAlgorithmSpec { + return Companion_SigningAlgorithmSpec_.Create_RSASSA__PSS__SHA__256_() +} + +func (_ CompanionStruct_SigningAlgorithmSpec_) AllSingletonConstructors() _dafny.Iterator { + i := -1 + return func() (interface{}, bool) { + i++ + switch i { + case 0: + return Companion_SigningAlgorithmSpec_.Create_RSASSA__PSS__SHA__256_(), true + case 1: + return Companion_SigningAlgorithmSpec_.Create_RSASSA__PSS__SHA__384_(), true + case 2: + return Companion_SigningAlgorithmSpec_.Create_RSASSA__PSS__SHA__512_(), true + case 3: + return Companion_SigningAlgorithmSpec_.Create_RSASSA__PKCS1__V1__5__SHA__256_(), true + case 4: + return Companion_SigningAlgorithmSpec_.Create_RSASSA__PKCS1__V1__5__SHA__384_(), true + case 5: + return Companion_SigningAlgorithmSpec_.Create_RSASSA__PKCS1__V1__5__SHA__512_(), true + case 6: + return Companion_SigningAlgorithmSpec_.Create_ECDSA__SHA__256_(), true + case 7: + return Companion_SigningAlgorithmSpec_.Create_ECDSA__SHA__384_(), true + case 8: + return Companion_SigningAlgorithmSpec_.Create_ECDSA__SHA__512_(), true + case 9: + return Companion_SigningAlgorithmSpec_.Create_SM2DSA_(), true + default: + return SigningAlgorithmSpec{}, false + } + } +} + +func (_this SigningAlgorithmSpec) String() string { + switch _this.Get_().(type) { + case nil: + return "null" + case SigningAlgorithmSpec_RSASSA__PSS__SHA__256: + { + return "ComAmazonawsKmsTypes.SigningAlgorithmSpec.RSASSA_PSS_SHA_256" + } + case SigningAlgorithmSpec_RSASSA__PSS__SHA__384: + { + return "ComAmazonawsKmsTypes.SigningAlgorithmSpec.RSASSA_PSS_SHA_384" + } + case SigningAlgorithmSpec_RSASSA__PSS__SHA__512: + { + return "ComAmazonawsKmsTypes.SigningAlgorithmSpec.RSASSA_PSS_SHA_512" + } + case SigningAlgorithmSpec_RSASSA__PKCS1__V1__5__SHA__256: + { + return "ComAmazonawsKmsTypes.SigningAlgorithmSpec.RSASSA_PKCS1_V1_5_SHA_256" + } + case SigningAlgorithmSpec_RSASSA__PKCS1__V1__5__SHA__384: + { + return "ComAmazonawsKmsTypes.SigningAlgorithmSpec.RSASSA_PKCS1_V1_5_SHA_384" + } + case SigningAlgorithmSpec_RSASSA__PKCS1__V1__5__SHA__512: + { + return "ComAmazonawsKmsTypes.SigningAlgorithmSpec.RSASSA_PKCS1_V1_5_SHA_512" + } + case SigningAlgorithmSpec_ECDSA__SHA__256: + { + return "ComAmazonawsKmsTypes.SigningAlgorithmSpec.ECDSA_SHA_256" + } + case SigningAlgorithmSpec_ECDSA__SHA__384: + { + return "ComAmazonawsKmsTypes.SigningAlgorithmSpec.ECDSA_SHA_384" + } + case SigningAlgorithmSpec_ECDSA__SHA__512: + { + return "ComAmazonawsKmsTypes.SigningAlgorithmSpec.ECDSA_SHA_512" + } + case SigningAlgorithmSpec_SM2DSA: + { + return "ComAmazonawsKmsTypes.SigningAlgorithmSpec.SM2DSA" + } + default: + { + return "" + } + } +} + +func (_this SigningAlgorithmSpec) Equals(other SigningAlgorithmSpec) bool { + switch _this.Get_().(type) { + case SigningAlgorithmSpec_RSASSA__PSS__SHA__256: + { + _, ok := other.Get_().(SigningAlgorithmSpec_RSASSA__PSS__SHA__256) + return ok + } + case SigningAlgorithmSpec_RSASSA__PSS__SHA__384: + { + _, ok := other.Get_().(SigningAlgorithmSpec_RSASSA__PSS__SHA__384) + return ok + } + case SigningAlgorithmSpec_RSASSA__PSS__SHA__512: + { + _, ok := other.Get_().(SigningAlgorithmSpec_RSASSA__PSS__SHA__512) + return ok + } + case SigningAlgorithmSpec_RSASSA__PKCS1__V1__5__SHA__256: + { + _, ok := other.Get_().(SigningAlgorithmSpec_RSASSA__PKCS1__V1__5__SHA__256) + return ok + } + case SigningAlgorithmSpec_RSASSA__PKCS1__V1__5__SHA__384: + { + _, ok := other.Get_().(SigningAlgorithmSpec_RSASSA__PKCS1__V1__5__SHA__384) + return ok + } + case SigningAlgorithmSpec_RSASSA__PKCS1__V1__5__SHA__512: + { + _, ok := other.Get_().(SigningAlgorithmSpec_RSASSA__PKCS1__V1__5__SHA__512) + return ok + } + case SigningAlgorithmSpec_ECDSA__SHA__256: + { + _, ok := other.Get_().(SigningAlgorithmSpec_ECDSA__SHA__256) + return ok + } + case SigningAlgorithmSpec_ECDSA__SHA__384: + { + _, ok := other.Get_().(SigningAlgorithmSpec_ECDSA__SHA__384) + return ok + } + case SigningAlgorithmSpec_ECDSA__SHA__512: + { + _, ok := other.Get_().(SigningAlgorithmSpec_ECDSA__SHA__512) + return ok + } + case SigningAlgorithmSpec_SM2DSA: + { + _, ok := other.Get_().(SigningAlgorithmSpec_SM2DSA) + return ok + } + default: + { + return false // unexpected + } + } +} + +func (_this SigningAlgorithmSpec) EqualsGeneric(other interface{}) bool { + typed, ok := other.(SigningAlgorithmSpec) + return ok && _this.Equals(typed) +} + +func Type_SigningAlgorithmSpec_() _dafny.TypeDescriptor { + return type_SigningAlgorithmSpec_{} +} + +type type_SigningAlgorithmSpec_ struct { +} + +func (_this type_SigningAlgorithmSpec_) Default() interface{} { + return Companion_SigningAlgorithmSpec_.Default() +} + +func (_this type_SigningAlgorithmSpec_) String() string { + return "ComAmazonawsKmsTypes.SigningAlgorithmSpec" +} +func (_this SigningAlgorithmSpec) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = SigningAlgorithmSpec{} + +// End of datatype SigningAlgorithmSpec + +// Definition of datatype SignRequest +type SignRequest struct { + Data_SignRequest_ +} + +func (_this SignRequest) Get_() Data_SignRequest_ { + return _this.Data_SignRequest_ +} + +type Data_SignRequest_ interface { + isSignRequest() +} + +type CompanionStruct_SignRequest_ struct { +} + +var Companion_SignRequest_ = CompanionStruct_SignRequest_{} + +type SignRequest_SignRequest struct { + KeyId _dafny.Sequence + Message _dafny.Sequence + MessageType m_Wrappers.Option + GrantTokens m_Wrappers.Option + SigningAlgorithm SigningAlgorithmSpec + DryRun m_Wrappers.Option +} + +func (SignRequest_SignRequest) isSignRequest() {} + +func (CompanionStruct_SignRequest_) Create_SignRequest_(KeyId _dafny.Sequence, Message _dafny.Sequence, MessageType m_Wrappers.Option, GrantTokens m_Wrappers.Option, SigningAlgorithm SigningAlgorithmSpec, DryRun m_Wrappers.Option) SignRequest { + return SignRequest{SignRequest_SignRequest{KeyId, Message, MessageType, GrantTokens, SigningAlgorithm, DryRun}} +} + +func (_this SignRequest) Is_SignRequest() bool { + _, ok := _this.Get_().(SignRequest_SignRequest) + return ok +} + +func (CompanionStruct_SignRequest_) Default() SignRequest { + return Companion_SignRequest_.Create_SignRequest_(_dafny.EmptySeq.SetString(), _dafny.EmptySeq, m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), Companion_SigningAlgorithmSpec_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this SignRequest) Dtor_KeyId() _dafny.Sequence { + return _this.Get_().(SignRequest_SignRequest).KeyId +} + +func (_this SignRequest) Dtor_Message() _dafny.Sequence { + return _this.Get_().(SignRequest_SignRequest).Message +} + +func (_this SignRequest) Dtor_MessageType() m_Wrappers.Option { + return _this.Get_().(SignRequest_SignRequest).MessageType +} + +func (_this SignRequest) Dtor_GrantTokens() m_Wrappers.Option { + return _this.Get_().(SignRequest_SignRequest).GrantTokens +} + +func (_this SignRequest) Dtor_SigningAlgorithm() SigningAlgorithmSpec { + return _this.Get_().(SignRequest_SignRequest).SigningAlgorithm +} + +func (_this SignRequest) Dtor_DryRun() m_Wrappers.Option { + return _this.Get_().(SignRequest_SignRequest).DryRun +} + +func (_this SignRequest) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case SignRequest_SignRequest: + { + return "ComAmazonawsKmsTypes.SignRequest.SignRequest" + "(" + _dafny.String(data.KeyId) + ", " + _dafny.String(data.Message) + ", " + _dafny.String(data.MessageType) + ", " + _dafny.String(data.GrantTokens) + ", " + _dafny.String(data.SigningAlgorithm) + ", " + _dafny.String(data.DryRun) + ")" + } + default: + { + return "" + } + } +} + +func (_this SignRequest) Equals(other SignRequest) bool { + switch data1 := _this.Get_().(type) { + case SignRequest_SignRequest: + { + data2, ok := other.Get_().(SignRequest_SignRequest) + return ok && data1.KeyId.Equals(data2.KeyId) && data1.Message.Equals(data2.Message) && data1.MessageType.Equals(data2.MessageType) && data1.GrantTokens.Equals(data2.GrantTokens) && data1.SigningAlgorithm.Equals(data2.SigningAlgorithm) && data1.DryRun.Equals(data2.DryRun) + } + default: + { + return false // unexpected + } + } +} + +func (_this SignRequest) EqualsGeneric(other interface{}) bool { + typed, ok := other.(SignRequest) + return ok && _this.Equals(typed) +} + +func Type_SignRequest_() _dafny.TypeDescriptor { + return type_SignRequest_{} +} + +type type_SignRequest_ struct { +} + +func (_this type_SignRequest_) Default() interface{} { + return Companion_SignRequest_.Default() +} + +func (_this type_SignRequest_) String() string { + return "ComAmazonawsKmsTypes.SignRequest" +} +func (_this SignRequest) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = SignRequest{} + +// End of datatype SignRequest + +// Definition of datatype SignResponse +type SignResponse struct { + Data_SignResponse_ +} + +func (_this SignResponse) Get_() Data_SignResponse_ { + return _this.Data_SignResponse_ +} + +type Data_SignResponse_ interface { + isSignResponse() +} + +type CompanionStruct_SignResponse_ struct { +} + +var Companion_SignResponse_ = CompanionStruct_SignResponse_{} + +type SignResponse_SignResponse struct { + KeyId m_Wrappers.Option + Signature m_Wrappers.Option + SigningAlgorithm m_Wrappers.Option +} + +func (SignResponse_SignResponse) isSignResponse() {} + +func (CompanionStruct_SignResponse_) Create_SignResponse_(KeyId m_Wrappers.Option, Signature m_Wrappers.Option, SigningAlgorithm m_Wrappers.Option) SignResponse { + return SignResponse{SignResponse_SignResponse{KeyId, Signature, SigningAlgorithm}} +} + +func (_this SignResponse) Is_SignResponse() bool { + _, ok := _this.Get_().(SignResponse_SignResponse) + return ok +} + +func (CompanionStruct_SignResponse_) Default() SignResponse { + return Companion_SignResponse_.Create_SignResponse_(m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this SignResponse) Dtor_KeyId() m_Wrappers.Option { + return _this.Get_().(SignResponse_SignResponse).KeyId +} + +func (_this SignResponse) Dtor_Signature() m_Wrappers.Option { + return _this.Get_().(SignResponse_SignResponse).Signature +} + +func (_this SignResponse) Dtor_SigningAlgorithm() m_Wrappers.Option { + return _this.Get_().(SignResponse_SignResponse).SigningAlgorithm +} + +func (_this SignResponse) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case SignResponse_SignResponse: + { + return "ComAmazonawsKmsTypes.SignResponse.SignResponse" + "(" + _dafny.String(data.KeyId) + ", " + _dafny.String(data.Signature) + ", " + _dafny.String(data.SigningAlgorithm) + ")" + } + default: + { + return "" + } + } +} + +func (_this SignResponse) Equals(other SignResponse) bool { + switch data1 := _this.Get_().(type) { + case SignResponse_SignResponse: + { + data2, ok := other.Get_().(SignResponse_SignResponse) + return ok && data1.KeyId.Equals(data2.KeyId) && data1.Signature.Equals(data2.Signature) && data1.SigningAlgorithm.Equals(data2.SigningAlgorithm) + } + default: + { + return false // unexpected + } + } +} + +func (_this SignResponse) EqualsGeneric(other interface{}) bool { + typed, ok := other.(SignResponse) + return ok && _this.Equals(typed) +} + +func Type_SignResponse_() _dafny.TypeDescriptor { + return type_SignResponse_{} +} + +type type_SignResponse_ struct { +} + +func (_this type_SignResponse_) Default() interface{} { + return Companion_SignResponse_.Default() +} + +func (_this type_SignResponse_) String() string { + return "ComAmazonawsKmsTypes.SignResponse" +} +func (_this SignResponse) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = SignResponse{} + +// End of datatype SignResponse + +// Definition of datatype Tag +type Tag struct { + Data_Tag_ +} + +func (_this Tag) Get_() Data_Tag_ { + return _this.Data_Tag_ +} + +type Data_Tag_ interface { + isTag() +} + +type CompanionStruct_Tag_ struct { +} + +var Companion_Tag_ = CompanionStruct_Tag_{} + +type Tag_Tag struct { + TagKey _dafny.Sequence + TagValue _dafny.Sequence +} + +func (Tag_Tag) isTag() {} + +func (CompanionStruct_Tag_) Create_Tag_(TagKey _dafny.Sequence, TagValue _dafny.Sequence) Tag { + return Tag{Tag_Tag{TagKey, TagValue}} +} + +func (_this Tag) Is_Tag() bool { + _, ok := _this.Get_().(Tag_Tag) + return ok +} + +func (CompanionStruct_Tag_) Default() Tag { + return Companion_Tag_.Create_Tag_(_dafny.EmptySeq.SetString(), _dafny.EmptySeq.SetString()) +} + +func (_this Tag) Dtor_TagKey() _dafny.Sequence { + return _this.Get_().(Tag_Tag).TagKey +} + +func (_this Tag) Dtor_TagValue() _dafny.Sequence { + return _this.Get_().(Tag_Tag).TagValue +} + +func (_this Tag) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case Tag_Tag: + { + return "ComAmazonawsKmsTypes.Tag.Tag" + "(" + _dafny.String(data.TagKey) + ", " + _dafny.String(data.TagValue) + ")" + } + default: + { + return "" + } + } +} + +func (_this Tag) Equals(other Tag) bool { + switch data1 := _this.Get_().(type) { + case Tag_Tag: + { + data2, ok := other.Get_().(Tag_Tag) + return ok && data1.TagKey.Equals(data2.TagKey) && data1.TagValue.Equals(data2.TagValue) + } + default: + { + return false // unexpected + } + } +} + +func (_this Tag) EqualsGeneric(other interface{}) bool { + typed, ok := other.(Tag) + return ok && _this.Equals(typed) +} + +func Type_Tag_() _dafny.TypeDescriptor { + return type_Tag_{} +} + +type type_Tag_ struct { +} + +func (_this type_Tag_) Default() interface{} { + return Companion_Tag_.Default() +} + +func (_this type_Tag_) String() string { + return "ComAmazonawsKmsTypes.Tag" +} +func (_this Tag) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = Tag{} + +// End of datatype Tag + +// Definition of class TagKeyType +type TagKeyType struct { +} + +func New_TagKeyType_() *TagKeyType { + _this := TagKeyType{} + + return &_this +} + +type CompanionStruct_TagKeyType_ struct { +} + +var Companion_TagKeyType_ = CompanionStruct_TagKeyType_{} + +func (*TagKeyType) String() string { + return "ComAmazonawsKmsTypes.TagKeyType" +} + +// End of class TagKeyType + +func Type_TagKeyType_() _dafny.TypeDescriptor { + return type_TagKeyType_{} +} + +type type_TagKeyType_ struct { +} + +func (_this type_TagKeyType_) Default() interface{} { + return _dafny.EmptySeq.SetString() +} + +func (_this type_TagKeyType_) String() string { + return "ComAmazonawsKmsTypes.TagKeyType" +} +func (_this *CompanionStruct_TagKeyType_) Is_(__source _dafny.Sequence) bool { + var _25_x _dafny.Sequence = (__source) + _ = _25_x + return Companion_Default___.IsValid__TagKeyType(_25_x) +} + +// Definition of datatype TagResourceRequest +type TagResourceRequest struct { + Data_TagResourceRequest_ +} + +func (_this TagResourceRequest) Get_() Data_TagResourceRequest_ { + return _this.Data_TagResourceRequest_ +} + +type Data_TagResourceRequest_ interface { + isTagResourceRequest() +} + +type CompanionStruct_TagResourceRequest_ struct { +} + +var Companion_TagResourceRequest_ = CompanionStruct_TagResourceRequest_{} + +type TagResourceRequest_TagResourceRequest struct { + KeyId _dafny.Sequence + Tags _dafny.Sequence +} + +func (TagResourceRequest_TagResourceRequest) isTagResourceRequest() {} + +func (CompanionStruct_TagResourceRequest_) Create_TagResourceRequest_(KeyId _dafny.Sequence, Tags _dafny.Sequence) TagResourceRequest { + return TagResourceRequest{TagResourceRequest_TagResourceRequest{KeyId, Tags}} +} + +func (_this TagResourceRequest) Is_TagResourceRequest() bool { + _, ok := _this.Get_().(TagResourceRequest_TagResourceRequest) + return ok +} + +func (CompanionStruct_TagResourceRequest_) Default() TagResourceRequest { + return Companion_TagResourceRequest_.Create_TagResourceRequest_(_dafny.EmptySeq.SetString(), _dafny.EmptySeq) +} + +func (_this TagResourceRequest) Dtor_KeyId() _dafny.Sequence { + return _this.Get_().(TagResourceRequest_TagResourceRequest).KeyId +} + +func (_this TagResourceRequest) Dtor_Tags() _dafny.Sequence { + return _this.Get_().(TagResourceRequest_TagResourceRequest).Tags +} + +func (_this TagResourceRequest) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case TagResourceRequest_TagResourceRequest: + { + return "ComAmazonawsKmsTypes.TagResourceRequest.TagResourceRequest" + "(" + _dafny.String(data.KeyId) + ", " + _dafny.String(data.Tags) + ")" + } + default: + { + return "" + } + } +} + +func (_this TagResourceRequest) Equals(other TagResourceRequest) bool { + switch data1 := _this.Get_().(type) { + case TagResourceRequest_TagResourceRequest: + { + data2, ok := other.Get_().(TagResourceRequest_TagResourceRequest) + return ok && data1.KeyId.Equals(data2.KeyId) && data1.Tags.Equals(data2.Tags) + } + default: + { + return false // unexpected + } + } +} + +func (_this TagResourceRequest) EqualsGeneric(other interface{}) bool { + typed, ok := other.(TagResourceRequest) + return ok && _this.Equals(typed) +} + +func Type_TagResourceRequest_() _dafny.TypeDescriptor { + return type_TagResourceRequest_{} +} + +type type_TagResourceRequest_ struct { +} + +func (_this type_TagResourceRequest_) Default() interface{} { + return Companion_TagResourceRequest_.Default() +} + +func (_this type_TagResourceRequest_) String() string { + return "ComAmazonawsKmsTypes.TagResourceRequest" +} +func (_this TagResourceRequest) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = TagResourceRequest{} + +// End of datatype TagResourceRequest + +// Definition of class TagValueType +type TagValueType struct { +} + +func New_TagValueType_() *TagValueType { + _this := TagValueType{} + + return &_this +} + +type CompanionStruct_TagValueType_ struct { +} + +var Companion_TagValueType_ = CompanionStruct_TagValueType_{} + +func (*TagValueType) String() string { + return "ComAmazonawsKmsTypes.TagValueType" +} + +// End of class TagValueType + +func Type_TagValueType_() _dafny.TypeDescriptor { + return type_TagValueType_{} +} + +type type_TagValueType_ struct { +} + +func (_this type_TagValueType_) Default() interface{} { + return _dafny.EmptySeq.SetString() +} + +func (_this type_TagValueType_) String() string { + return "ComAmazonawsKmsTypes.TagValueType" +} +func (_this *CompanionStruct_TagValueType_) Is_(__source _dafny.Sequence) bool { + var _26_x _dafny.Sequence = (__source) + _ = _26_x + return Companion_Default___.IsValid__TagValueType(_26_x) +} + +// Definition of class IKMSClientCallHistory +type IKMSClientCallHistory struct { + dummy byte +} + +func New_IKMSClientCallHistory_() *IKMSClientCallHistory { + _this := IKMSClientCallHistory{} + + return &_this +} + +type CompanionStruct_IKMSClientCallHistory_ struct { +} + +var Companion_IKMSClientCallHistory_ = CompanionStruct_IKMSClientCallHistory_{} + +func (_this *IKMSClientCallHistory) Equals(other *IKMSClientCallHistory) bool { + return _this == other +} + +func (_this *IKMSClientCallHistory) EqualsGeneric(x interface{}) bool { + other, ok := x.(*IKMSClientCallHistory) + return ok && _this.Equals(other) +} + +func (*IKMSClientCallHistory) String() string { + return "ComAmazonawsKmsTypes.IKMSClientCallHistory" +} + +func Type_IKMSClientCallHistory_() _dafny.TypeDescriptor { + return type_IKMSClientCallHistory_{} +} + +type type_IKMSClientCallHistory_ struct { +} + +func (_this type_IKMSClientCallHistory_) Default() interface{} { + return (*IKMSClientCallHistory)(nil) +} + +func (_this type_IKMSClientCallHistory_) String() string { + return "ComAmazonawsKmsTypes.IKMSClientCallHistory" +} +func (_this *IKMSClientCallHistory) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = &IKMSClientCallHistory{} + +// End of class IKMSClientCallHistory + +// Definition of trait IKMSClient +type IKMSClient interface { + String() string + CancelKeyDeletion(input CancelKeyDeletionRequest) m_Wrappers.Result + ConnectCustomKeyStore(input ConnectCustomKeyStoreRequest) m_Wrappers.Result + CreateAlias(input CreateAliasRequest) m_Wrappers.Result + CreateCustomKeyStore(input CreateCustomKeyStoreRequest) m_Wrappers.Result + CreateGrant(input CreateGrantRequest) m_Wrappers.Result + CreateKey(input CreateKeyRequest) m_Wrappers.Result + Decrypt(input DecryptRequest) m_Wrappers.Result + DeleteAlias(input DeleteAliasRequest) m_Wrappers.Result + DeleteCustomKeyStore(input DeleteCustomKeyStoreRequest) m_Wrappers.Result + DeleteImportedKeyMaterial(input DeleteImportedKeyMaterialRequest) m_Wrappers.Result + DeriveSharedSecret(input DeriveSharedSecretRequest) m_Wrappers.Result + DescribeCustomKeyStores(input DescribeCustomKeyStoresRequest) m_Wrappers.Result + DescribeKey(input DescribeKeyRequest) m_Wrappers.Result + DisableKey(input DisableKeyRequest) m_Wrappers.Result + DisableKeyRotation(input DisableKeyRotationRequest) m_Wrappers.Result + DisconnectCustomKeyStore(input DisconnectCustomKeyStoreRequest) m_Wrappers.Result + EnableKey(input EnableKeyRequest) m_Wrappers.Result + EnableKeyRotation(input EnableKeyRotationRequest) m_Wrappers.Result + Encrypt(input EncryptRequest) m_Wrappers.Result + GenerateDataKey(input GenerateDataKeyRequest) m_Wrappers.Result + GenerateDataKeyPair(input GenerateDataKeyPairRequest) m_Wrappers.Result + GenerateDataKeyPairWithoutPlaintext(input GenerateDataKeyPairWithoutPlaintextRequest) m_Wrappers.Result + GenerateDataKeyWithoutPlaintext(input GenerateDataKeyWithoutPlaintextRequest) m_Wrappers.Result + GenerateMac(input GenerateMacRequest) m_Wrappers.Result + GenerateRandom(input GenerateRandomRequest) m_Wrappers.Result + GetKeyPolicy(input GetKeyPolicyRequest) m_Wrappers.Result + GetKeyRotationStatus(input GetKeyRotationStatusRequest) m_Wrappers.Result + GetParametersForImport(input GetParametersForImportRequest) m_Wrappers.Result + GetPublicKey(input GetPublicKeyRequest) m_Wrappers.Result + ImportKeyMaterial(input ImportKeyMaterialRequest) m_Wrappers.Result + ListAliases(input ListAliasesRequest) m_Wrappers.Result + ListGrants(input ListGrantsRequest) m_Wrappers.Result + ListKeyPolicies(input ListKeyPoliciesRequest) m_Wrappers.Result + ListKeyRotations(input ListKeyRotationsRequest) m_Wrappers.Result + ListKeys(input ListKeysRequest) m_Wrappers.Result + ListResourceTags(input ListResourceTagsRequest) m_Wrappers.Result + PutKeyPolicy(input PutKeyPolicyRequest) m_Wrappers.Result + ReEncrypt(input ReEncryptRequest) m_Wrappers.Result + ReplicateKey(input ReplicateKeyRequest) m_Wrappers.Result + RetireGrant(input RetireGrantRequest) m_Wrappers.Result + RevokeGrant(input RevokeGrantRequest) m_Wrappers.Result + RotateKeyOnDemand(input RotateKeyOnDemandRequest) m_Wrappers.Result + ScheduleKeyDeletion(input ScheduleKeyDeletionRequest) m_Wrappers.Result + Sign(input SignRequest) m_Wrappers.Result + TagResource(input TagResourceRequest) m_Wrappers.Result + UntagResource(input UntagResourceRequest) m_Wrappers.Result + UpdateAlias(input UpdateAliasRequest) m_Wrappers.Result + UpdateCustomKeyStore(input UpdateCustomKeyStoreRequest) m_Wrappers.Result + UpdateKeyDescription(input UpdateKeyDescriptionRequest) m_Wrappers.Result + UpdatePrimaryRegion(input UpdatePrimaryRegionRequest) m_Wrappers.Result + Verify(input VerifyRequest) m_Wrappers.Result + VerifyMac(input VerifyMacRequest) m_Wrappers.Result +} +type CompanionStruct_IKMSClient_ struct { + TraitID_ *_dafny.TraitID +} + +var Companion_IKMSClient_ = CompanionStruct_IKMSClient_{ + TraitID_: &_dafny.TraitID{}, +} + +func (CompanionStruct_IKMSClient_) CastTo_(x interface{}) IKMSClient { + var t IKMSClient + t, _ = x.(IKMSClient) + return t +} + +// End of trait IKMSClient + +// Definition of class TrustAnchorCertificateType +type TrustAnchorCertificateType struct { +} + +func New_TrustAnchorCertificateType_() *TrustAnchorCertificateType { + _this := TrustAnchorCertificateType{} + + return &_this +} + +type CompanionStruct_TrustAnchorCertificateType_ struct { +} + +var Companion_TrustAnchorCertificateType_ = CompanionStruct_TrustAnchorCertificateType_{} + +func (*TrustAnchorCertificateType) String() string { + return "ComAmazonawsKmsTypes.TrustAnchorCertificateType" +} + +// End of class TrustAnchorCertificateType + +func Type_TrustAnchorCertificateType_() _dafny.TypeDescriptor { + return type_TrustAnchorCertificateType_{} +} + +type type_TrustAnchorCertificateType_ struct { +} + +func (_this type_TrustAnchorCertificateType_) Default() interface{} { + return _dafny.EmptySeq.SetString() +} + +func (_this type_TrustAnchorCertificateType_) String() string { + return "ComAmazonawsKmsTypes.TrustAnchorCertificateType" +} +func (_this *CompanionStruct_TrustAnchorCertificateType_) Is_(__source _dafny.Sequence) bool { + var _0_x _dafny.Sequence = (__source) + _ = _0_x + return Companion_Default___.IsValid__TrustAnchorCertificateType(_0_x) +} + +// Definition of datatype UntagResourceRequest +type UntagResourceRequest struct { + Data_UntagResourceRequest_ +} + +func (_this UntagResourceRequest) Get_() Data_UntagResourceRequest_ { + return _this.Data_UntagResourceRequest_ +} + +type Data_UntagResourceRequest_ interface { + isUntagResourceRequest() +} + +type CompanionStruct_UntagResourceRequest_ struct { +} + +var Companion_UntagResourceRequest_ = CompanionStruct_UntagResourceRequest_{} + +type UntagResourceRequest_UntagResourceRequest struct { + KeyId _dafny.Sequence + TagKeys _dafny.Sequence +} + +func (UntagResourceRequest_UntagResourceRequest) isUntagResourceRequest() {} + +func (CompanionStruct_UntagResourceRequest_) Create_UntagResourceRequest_(KeyId _dafny.Sequence, TagKeys _dafny.Sequence) UntagResourceRequest { + return UntagResourceRequest{UntagResourceRequest_UntagResourceRequest{KeyId, TagKeys}} +} + +func (_this UntagResourceRequest) Is_UntagResourceRequest() bool { + _, ok := _this.Get_().(UntagResourceRequest_UntagResourceRequest) + return ok +} + +func (CompanionStruct_UntagResourceRequest_) Default() UntagResourceRequest { + return Companion_UntagResourceRequest_.Create_UntagResourceRequest_(_dafny.EmptySeq.SetString(), _dafny.EmptySeq) +} + +func (_this UntagResourceRequest) Dtor_KeyId() _dafny.Sequence { + return _this.Get_().(UntagResourceRequest_UntagResourceRequest).KeyId +} + +func (_this UntagResourceRequest) Dtor_TagKeys() _dafny.Sequence { + return _this.Get_().(UntagResourceRequest_UntagResourceRequest).TagKeys +} + +func (_this UntagResourceRequest) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case UntagResourceRequest_UntagResourceRequest: + { + return "ComAmazonawsKmsTypes.UntagResourceRequest.UntagResourceRequest" + "(" + _dafny.String(data.KeyId) + ", " + _dafny.String(data.TagKeys) + ")" + } + default: + { + return "" + } + } +} + +func (_this UntagResourceRequest) Equals(other UntagResourceRequest) bool { + switch data1 := _this.Get_().(type) { + case UntagResourceRequest_UntagResourceRequest: + { + data2, ok := other.Get_().(UntagResourceRequest_UntagResourceRequest) + return ok && data1.KeyId.Equals(data2.KeyId) && data1.TagKeys.Equals(data2.TagKeys) + } + default: + { + return false // unexpected + } + } +} + +func (_this UntagResourceRequest) EqualsGeneric(other interface{}) bool { + typed, ok := other.(UntagResourceRequest) + return ok && _this.Equals(typed) +} + +func Type_UntagResourceRequest_() _dafny.TypeDescriptor { + return type_UntagResourceRequest_{} +} + +type type_UntagResourceRequest_ struct { +} + +func (_this type_UntagResourceRequest_) Default() interface{} { + return Companion_UntagResourceRequest_.Default() +} + +func (_this type_UntagResourceRequest_) String() string { + return "ComAmazonawsKmsTypes.UntagResourceRequest" +} +func (_this UntagResourceRequest) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = UntagResourceRequest{} + +// End of datatype UntagResourceRequest + +// Definition of datatype UpdateAliasRequest +type UpdateAliasRequest struct { + Data_UpdateAliasRequest_ +} + +func (_this UpdateAliasRequest) Get_() Data_UpdateAliasRequest_ { + return _this.Data_UpdateAliasRequest_ +} + +type Data_UpdateAliasRequest_ interface { + isUpdateAliasRequest() +} + +type CompanionStruct_UpdateAliasRequest_ struct { +} + +var Companion_UpdateAliasRequest_ = CompanionStruct_UpdateAliasRequest_{} + +type UpdateAliasRequest_UpdateAliasRequest struct { + AliasName _dafny.Sequence + TargetKeyId _dafny.Sequence +} + +func (UpdateAliasRequest_UpdateAliasRequest) isUpdateAliasRequest() {} + +func (CompanionStruct_UpdateAliasRequest_) Create_UpdateAliasRequest_(AliasName _dafny.Sequence, TargetKeyId _dafny.Sequence) UpdateAliasRequest { + return UpdateAliasRequest{UpdateAliasRequest_UpdateAliasRequest{AliasName, TargetKeyId}} +} + +func (_this UpdateAliasRequest) Is_UpdateAliasRequest() bool { + _, ok := _this.Get_().(UpdateAliasRequest_UpdateAliasRequest) + return ok +} + +func (CompanionStruct_UpdateAliasRequest_) Default() UpdateAliasRequest { + return Companion_UpdateAliasRequest_.Create_UpdateAliasRequest_(_dafny.EmptySeq.SetString(), _dafny.EmptySeq.SetString()) +} + +func (_this UpdateAliasRequest) Dtor_AliasName() _dafny.Sequence { + return _this.Get_().(UpdateAliasRequest_UpdateAliasRequest).AliasName +} + +func (_this UpdateAliasRequest) Dtor_TargetKeyId() _dafny.Sequence { + return _this.Get_().(UpdateAliasRequest_UpdateAliasRequest).TargetKeyId +} + +func (_this UpdateAliasRequest) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case UpdateAliasRequest_UpdateAliasRequest: + { + return "ComAmazonawsKmsTypes.UpdateAliasRequest.UpdateAliasRequest" + "(" + _dafny.String(data.AliasName) + ", " + _dafny.String(data.TargetKeyId) + ")" + } + default: + { + return "" + } + } +} + +func (_this UpdateAliasRequest) Equals(other UpdateAliasRequest) bool { + switch data1 := _this.Get_().(type) { + case UpdateAliasRequest_UpdateAliasRequest: + { + data2, ok := other.Get_().(UpdateAliasRequest_UpdateAliasRequest) + return ok && data1.AliasName.Equals(data2.AliasName) && data1.TargetKeyId.Equals(data2.TargetKeyId) + } + default: + { + return false // unexpected + } + } +} + +func (_this UpdateAliasRequest) EqualsGeneric(other interface{}) bool { + typed, ok := other.(UpdateAliasRequest) + return ok && _this.Equals(typed) +} + +func Type_UpdateAliasRequest_() _dafny.TypeDescriptor { + return type_UpdateAliasRequest_{} +} + +type type_UpdateAliasRequest_ struct { +} + +func (_this type_UpdateAliasRequest_) Default() interface{} { + return Companion_UpdateAliasRequest_.Default() +} + +func (_this type_UpdateAliasRequest_) String() string { + return "ComAmazonawsKmsTypes.UpdateAliasRequest" +} +func (_this UpdateAliasRequest) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = UpdateAliasRequest{} + +// End of datatype UpdateAliasRequest + +// Definition of datatype UpdateCustomKeyStoreRequest +type UpdateCustomKeyStoreRequest struct { + Data_UpdateCustomKeyStoreRequest_ +} + +func (_this UpdateCustomKeyStoreRequest) Get_() Data_UpdateCustomKeyStoreRequest_ { + return _this.Data_UpdateCustomKeyStoreRequest_ +} + +type Data_UpdateCustomKeyStoreRequest_ interface { + isUpdateCustomKeyStoreRequest() +} + +type CompanionStruct_UpdateCustomKeyStoreRequest_ struct { +} + +var Companion_UpdateCustomKeyStoreRequest_ = CompanionStruct_UpdateCustomKeyStoreRequest_{} + +type UpdateCustomKeyStoreRequest_UpdateCustomKeyStoreRequest struct { + CustomKeyStoreId _dafny.Sequence + NewCustomKeyStoreName m_Wrappers.Option + KeyStorePassword m_Wrappers.Option + CloudHsmClusterId m_Wrappers.Option + XksProxyUriEndpoint m_Wrappers.Option + XksProxyUriPath m_Wrappers.Option + XksProxyVpcEndpointServiceName m_Wrappers.Option + XksProxyAuthenticationCredential m_Wrappers.Option + XksProxyConnectivity m_Wrappers.Option +} + +func (UpdateCustomKeyStoreRequest_UpdateCustomKeyStoreRequest) isUpdateCustomKeyStoreRequest() {} + +func (CompanionStruct_UpdateCustomKeyStoreRequest_) Create_UpdateCustomKeyStoreRequest_(CustomKeyStoreId _dafny.Sequence, NewCustomKeyStoreName m_Wrappers.Option, KeyStorePassword m_Wrappers.Option, CloudHsmClusterId m_Wrappers.Option, XksProxyUriEndpoint m_Wrappers.Option, XksProxyUriPath m_Wrappers.Option, XksProxyVpcEndpointServiceName m_Wrappers.Option, XksProxyAuthenticationCredential m_Wrappers.Option, XksProxyConnectivity m_Wrappers.Option) UpdateCustomKeyStoreRequest { + return UpdateCustomKeyStoreRequest{UpdateCustomKeyStoreRequest_UpdateCustomKeyStoreRequest{CustomKeyStoreId, NewCustomKeyStoreName, KeyStorePassword, CloudHsmClusterId, XksProxyUriEndpoint, XksProxyUriPath, XksProxyVpcEndpointServiceName, XksProxyAuthenticationCredential, XksProxyConnectivity}} +} + +func (_this UpdateCustomKeyStoreRequest) Is_UpdateCustomKeyStoreRequest() bool { + _, ok := _this.Get_().(UpdateCustomKeyStoreRequest_UpdateCustomKeyStoreRequest) + return ok +} + +func (CompanionStruct_UpdateCustomKeyStoreRequest_) Default() UpdateCustomKeyStoreRequest { + return Companion_UpdateCustomKeyStoreRequest_.Create_UpdateCustomKeyStoreRequest_(_dafny.EmptySeq.SetString(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this UpdateCustomKeyStoreRequest) Dtor_CustomKeyStoreId() _dafny.Sequence { + return _this.Get_().(UpdateCustomKeyStoreRequest_UpdateCustomKeyStoreRequest).CustomKeyStoreId +} + +func (_this UpdateCustomKeyStoreRequest) Dtor_NewCustomKeyStoreName() m_Wrappers.Option { + return _this.Get_().(UpdateCustomKeyStoreRequest_UpdateCustomKeyStoreRequest).NewCustomKeyStoreName +} + +func (_this UpdateCustomKeyStoreRequest) Dtor_KeyStorePassword() m_Wrappers.Option { + return _this.Get_().(UpdateCustomKeyStoreRequest_UpdateCustomKeyStoreRequest).KeyStorePassword +} + +func (_this UpdateCustomKeyStoreRequest) Dtor_CloudHsmClusterId() m_Wrappers.Option { + return _this.Get_().(UpdateCustomKeyStoreRequest_UpdateCustomKeyStoreRequest).CloudHsmClusterId +} + +func (_this UpdateCustomKeyStoreRequest) Dtor_XksProxyUriEndpoint() m_Wrappers.Option { + return _this.Get_().(UpdateCustomKeyStoreRequest_UpdateCustomKeyStoreRequest).XksProxyUriEndpoint +} + +func (_this UpdateCustomKeyStoreRequest) Dtor_XksProxyUriPath() m_Wrappers.Option { + return _this.Get_().(UpdateCustomKeyStoreRequest_UpdateCustomKeyStoreRequest).XksProxyUriPath +} + +func (_this UpdateCustomKeyStoreRequest) Dtor_XksProxyVpcEndpointServiceName() m_Wrappers.Option { + return _this.Get_().(UpdateCustomKeyStoreRequest_UpdateCustomKeyStoreRequest).XksProxyVpcEndpointServiceName +} + +func (_this UpdateCustomKeyStoreRequest) Dtor_XksProxyAuthenticationCredential() m_Wrappers.Option { + return _this.Get_().(UpdateCustomKeyStoreRequest_UpdateCustomKeyStoreRequest).XksProxyAuthenticationCredential +} + +func (_this UpdateCustomKeyStoreRequest) Dtor_XksProxyConnectivity() m_Wrappers.Option { + return _this.Get_().(UpdateCustomKeyStoreRequest_UpdateCustomKeyStoreRequest).XksProxyConnectivity +} + +func (_this UpdateCustomKeyStoreRequest) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case UpdateCustomKeyStoreRequest_UpdateCustomKeyStoreRequest: + { + return "ComAmazonawsKmsTypes.UpdateCustomKeyStoreRequest.UpdateCustomKeyStoreRequest" + "(" + _dafny.String(data.CustomKeyStoreId) + ", " + _dafny.String(data.NewCustomKeyStoreName) + ", " + _dafny.String(data.KeyStorePassword) + ", " + _dafny.String(data.CloudHsmClusterId) + ", " + _dafny.String(data.XksProxyUriEndpoint) + ", " + _dafny.String(data.XksProxyUriPath) + ", " + _dafny.String(data.XksProxyVpcEndpointServiceName) + ", " + _dafny.String(data.XksProxyAuthenticationCredential) + ", " + _dafny.String(data.XksProxyConnectivity) + ")" + } + default: + { + return "" + } + } +} + +func (_this UpdateCustomKeyStoreRequest) Equals(other UpdateCustomKeyStoreRequest) bool { + switch data1 := _this.Get_().(type) { + case UpdateCustomKeyStoreRequest_UpdateCustomKeyStoreRequest: + { + data2, ok := other.Get_().(UpdateCustomKeyStoreRequest_UpdateCustomKeyStoreRequest) + return ok && data1.CustomKeyStoreId.Equals(data2.CustomKeyStoreId) && data1.NewCustomKeyStoreName.Equals(data2.NewCustomKeyStoreName) && data1.KeyStorePassword.Equals(data2.KeyStorePassword) && data1.CloudHsmClusterId.Equals(data2.CloudHsmClusterId) && data1.XksProxyUriEndpoint.Equals(data2.XksProxyUriEndpoint) && data1.XksProxyUriPath.Equals(data2.XksProxyUriPath) && data1.XksProxyVpcEndpointServiceName.Equals(data2.XksProxyVpcEndpointServiceName) && data1.XksProxyAuthenticationCredential.Equals(data2.XksProxyAuthenticationCredential) && data1.XksProxyConnectivity.Equals(data2.XksProxyConnectivity) + } + default: + { + return false // unexpected + } + } +} + +func (_this UpdateCustomKeyStoreRequest) EqualsGeneric(other interface{}) bool { + typed, ok := other.(UpdateCustomKeyStoreRequest) + return ok && _this.Equals(typed) +} + +func Type_UpdateCustomKeyStoreRequest_() _dafny.TypeDescriptor { + return type_UpdateCustomKeyStoreRequest_{} +} + +type type_UpdateCustomKeyStoreRequest_ struct { +} + +func (_this type_UpdateCustomKeyStoreRequest_) Default() interface{} { + return Companion_UpdateCustomKeyStoreRequest_.Default() +} + +func (_this type_UpdateCustomKeyStoreRequest_) String() string { + return "ComAmazonawsKmsTypes.UpdateCustomKeyStoreRequest" +} +func (_this UpdateCustomKeyStoreRequest) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = UpdateCustomKeyStoreRequest{} + +// End of datatype UpdateCustomKeyStoreRequest + +// Definition of datatype UpdateCustomKeyStoreResponse +type UpdateCustomKeyStoreResponse struct { + Data_UpdateCustomKeyStoreResponse_ +} + +func (_this UpdateCustomKeyStoreResponse) Get_() Data_UpdateCustomKeyStoreResponse_ { + return _this.Data_UpdateCustomKeyStoreResponse_ +} + +type Data_UpdateCustomKeyStoreResponse_ interface { + isUpdateCustomKeyStoreResponse() +} + +type CompanionStruct_UpdateCustomKeyStoreResponse_ struct { +} + +var Companion_UpdateCustomKeyStoreResponse_ = CompanionStruct_UpdateCustomKeyStoreResponse_{} + +type UpdateCustomKeyStoreResponse_UpdateCustomKeyStoreResponse struct { +} + +func (UpdateCustomKeyStoreResponse_UpdateCustomKeyStoreResponse) isUpdateCustomKeyStoreResponse() {} + +func (CompanionStruct_UpdateCustomKeyStoreResponse_) Create_UpdateCustomKeyStoreResponse_() UpdateCustomKeyStoreResponse { + return UpdateCustomKeyStoreResponse{UpdateCustomKeyStoreResponse_UpdateCustomKeyStoreResponse{}} +} + +func (_this UpdateCustomKeyStoreResponse) Is_UpdateCustomKeyStoreResponse() bool { + _, ok := _this.Get_().(UpdateCustomKeyStoreResponse_UpdateCustomKeyStoreResponse) + return ok +} + +func (CompanionStruct_UpdateCustomKeyStoreResponse_) Default() UpdateCustomKeyStoreResponse { + return Companion_UpdateCustomKeyStoreResponse_.Create_UpdateCustomKeyStoreResponse_() +} + +func (_ CompanionStruct_UpdateCustomKeyStoreResponse_) AllSingletonConstructors() _dafny.Iterator { + i := -1 + return func() (interface{}, bool) { + i++ + switch i { + case 0: + return Companion_UpdateCustomKeyStoreResponse_.Create_UpdateCustomKeyStoreResponse_(), true + default: + return UpdateCustomKeyStoreResponse{}, false + } + } +} + +func (_this UpdateCustomKeyStoreResponse) String() string { + switch _this.Get_().(type) { + case nil: + return "null" + case UpdateCustomKeyStoreResponse_UpdateCustomKeyStoreResponse: + { + return "ComAmazonawsKmsTypes.UpdateCustomKeyStoreResponse.UpdateCustomKeyStoreResponse" + } + default: + { + return "" + } + } +} + +func (_this UpdateCustomKeyStoreResponse) Equals(other UpdateCustomKeyStoreResponse) bool { + switch _this.Get_().(type) { + case UpdateCustomKeyStoreResponse_UpdateCustomKeyStoreResponse: + { + _, ok := other.Get_().(UpdateCustomKeyStoreResponse_UpdateCustomKeyStoreResponse) + return ok + } + default: + { + return false // unexpected + } + } +} + +func (_this UpdateCustomKeyStoreResponse) EqualsGeneric(other interface{}) bool { + typed, ok := other.(UpdateCustomKeyStoreResponse) + return ok && _this.Equals(typed) +} + +func Type_UpdateCustomKeyStoreResponse_() _dafny.TypeDescriptor { + return type_UpdateCustomKeyStoreResponse_{} +} + +type type_UpdateCustomKeyStoreResponse_ struct { +} + +func (_this type_UpdateCustomKeyStoreResponse_) Default() interface{} { + return Companion_UpdateCustomKeyStoreResponse_.Default() +} + +func (_this type_UpdateCustomKeyStoreResponse_) String() string { + return "ComAmazonawsKmsTypes.UpdateCustomKeyStoreResponse" +} +func (_this UpdateCustomKeyStoreResponse) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = UpdateCustomKeyStoreResponse{} + +// End of datatype UpdateCustomKeyStoreResponse + +// Definition of datatype UpdateKeyDescriptionRequest +type UpdateKeyDescriptionRequest struct { + Data_UpdateKeyDescriptionRequest_ +} + +func (_this UpdateKeyDescriptionRequest) Get_() Data_UpdateKeyDescriptionRequest_ { + return _this.Data_UpdateKeyDescriptionRequest_ +} + +type Data_UpdateKeyDescriptionRequest_ interface { + isUpdateKeyDescriptionRequest() +} + +type CompanionStruct_UpdateKeyDescriptionRequest_ struct { +} + +var Companion_UpdateKeyDescriptionRequest_ = CompanionStruct_UpdateKeyDescriptionRequest_{} + +type UpdateKeyDescriptionRequest_UpdateKeyDescriptionRequest struct { + KeyId _dafny.Sequence + Description _dafny.Sequence +} + +func (UpdateKeyDescriptionRequest_UpdateKeyDescriptionRequest) isUpdateKeyDescriptionRequest() {} + +func (CompanionStruct_UpdateKeyDescriptionRequest_) Create_UpdateKeyDescriptionRequest_(KeyId _dafny.Sequence, Description _dafny.Sequence) UpdateKeyDescriptionRequest { + return UpdateKeyDescriptionRequest{UpdateKeyDescriptionRequest_UpdateKeyDescriptionRequest{KeyId, Description}} +} + +func (_this UpdateKeyDescriptionRequest) Is_UpdateKeyDescriptionRequest() bool { + _, ok := _this.Get_().(UpdateKeyDescriptionRequest_UpdateKeyDescriptionRequest) + return ok +} + +func (CompanionStruct_UpdateKeyDescriptionRequest_) Default() UpdateKeyDescriptionRequest { + return Companion_UpdateKeyDescriptionRequest_.Create_UpdateKeyDescriptionRequest_(_dafny.EmptySeq.SetString(), _dafny.EmptySeq.SetString()) +} + +func (_this UpdateKeyDescriptionRequest) Dtor_KeyId() _dafny.Sequence { + return _this.Get_().(UpdateKeyDescriptionRequest_UpdateKeyDescriptionRequest).KeyId +} + +func (_this UpdateKeyDescriptionRequest) Dtor_Description() _dafny.Sequence { + return _this.Get_().(UpdateKeyDescriptionRequest_UpdateKeyDescriptionRequest).Description +} + +func (_this UpdateKeyDescriptionRequest) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case UpdateKeyDescriptionRequest_UpdateKeyDescriptionRequest: + { + return "ComAmazonawsKmsTypes.UpdateKeyDescriptionRequest.UpdateKeyDescriptionRequest" + "(" + _dafny.String(data.KeyId) + ", " + _dafny.String(data.Description) + ")" + } + default: + { + return "" + } + } +} + +func (_this UpdateKeyDescriptionRequest) Equals(other UpdateKeyDescriptionRequest) bool { + switch data1 := _this.Get_().(type) { + case UpdateKeyDescriptionRequest_UpdateKeyDescriptionRequest: + { + data2, ok := other.Get_().(UpdateKeyDescriptionRequest_UpdateKeyDescriptionRequest) + return ok && data1.KeyId.Equals(data2.KeyId) && data1.Description.Equals(data2.Description) + } + default: + { + return false // unexpected + } + } +} + +func (_this UpdateKeyDescriptionRequest) EqualsGeneric(other interface{}) bool { + typed, ok := other.(UpdateKeyDescriptionRequest) + return ok && _this.Equals(typed) +} + +func Type_UpdateKeyDescriptionRequest_() _dafny.TypeDescriptor { + return type_UpdateKeyDescriptionRequest_{} +} + +type type_UpdateKeyDescriptionRequest_ struct { +} + +func (_this type_UpdateKeyDescriptionRequest_) Default() interface{} { + return Companion_UpdateKeyDescriptionRequest_.Default() +} + +func (_this type_UpdateKeyDescriptionRequest_) String() string { + return "ComAmazonawsKmsTypes.UpdateKeyDescriptionRequest" +} +func (_this UpdateKeyDescriptionRequest) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = UpdateKeyDescriptionRequest{} + +// End of datatype UpdateKeyDescriptionRequest + +// Definition of datatype UpdatePrimaryRegionRequest +type UpdatePrimaryRegionRequest struct { + Data_UpdatePrimaryRegionRequest_ +} + +func (_this UpdatePrimaryRegionRequest) Get_() Data_UpdatePrimaryRegionRequest_ { + return _this.Data_UpdatePrimaryRegionRequest_ +} + +type Data_UpdatePrimaryRegionRequest_ interface { + isUpdatePrimaryRegionRequest() +} + +type CompanionStruct_UpdatePrimaryRegionRequest_ struct { +} + +var Companion_UpdatePrimaryRegionRequest_ = CompanionStruct_UpdatePrimaryRegionRequest_{} + +type UpdatePrimaryRegionRequest_UpdatePrimaryRegionRequest struct { + KeyId _dafny.Sequence + PrimaryRegion _dafny.Sequence +} + +func (UpdatePrimaryRegionRequest_UpdatePrimaryRegionRequest) isUpdatePrimaryRegionRequest() {} + +func (CompanionStruct_UpdatePrimaryRegionRequest_) Create_UpdatePrimaryRegionRequest_(KeyId _dafny.Sequence, PrimaryRegion _dafny.Sequence) UpdatePrimaryRegionRequest { + return UpdatePrimaryRegionRequest{UpdatePrimaryRegionRequest_UpdatePrimaryRegionRequest{KeyId, PrimaryRegion}} +} + +func (_this UpdatePrimaryRegionRequest) Is_UpdatePrimaryRegionRequest() bool { + _, ok := _this.Get_().(UpdatePrimaryRegionRequest_UpdatePrimaryRegionRequest) + return ok +} + +func (CompanionStruct_UpdatePrimaryRegionRequest_) Default() UpdatePrimaryRegionRequest { + return Companion_UpdatePrimaryRegionRequest_.Create_UpdatePrimaryRegionRequest_(_dafny.EmptySeq.SetString(), _dafny.EmptySeq.SetString()) +} + +func (_this UpdatePrimaryRegionRequest) Dtor_KeyId() _dafny.Sequence { + return _this.Get_().(UpdatePrimaryRegionRequest_UpdatePrimaryRegionRequest).KeyId +} + +func (_this UpdatePrimaryRegionRequest) Dtor_PrimaryRegion() _dafny.Sequence { + return _this.Get_().(UpdatePrimaryRegionRequest_UpdatePrimaryRegionRequest).PrimaryRegion +} + +func (_this UpdatePrimaryRegionRequest) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case UpdatePrimaryRegionRequest_UpdatePrimaryRegionRequest: + { + return "ComAmazonawsKmsTypes.UpdatePrimaryRegionRequest.UpdatePrimaryRegionRequest" + "(" + _dafny.String(data.KeyId) + ", " + _dafny.String(data.PrimaryRegion) + ")" + } + default: + { + return "" + } + } +} + +func (_this UpdatePrimaryRegionRequest) Equals(other UpdatePrimaryRegionRequest) bool { + switch data1 := _this.Get_().(type) { + case UpdatePrimaryRegionRequest_UpdatePrimaryRegionRequest: + { + data2, ok := other.Get_().(UpdatePrimaryRegionRequest_UpdatePrimaryRegionRequest) + return ok && data1.KeyId.Equals(data2.KeyId) && data1.PrimaryRegion.Equals(data2.PrimaryRegion) + } + default: + { + return false // unexpected + } + } +} + +func (_this UpdatePrimaryRegionRequest) EqualsGeneric(other interface{}) bool { + typed, ok := other.(UpdatePrimaryRegionRequest) + return ok && _this.Equals(typed) +} + +func Type_UpdatePrimaryRegionRequest_() _dafny.TypeDescriptor { + return type_UpdatePrimaryRegionRequest_{} +} + +type type_UpdatePrimaryRegionRequest_ struct { +} + +func (_this type_UpdatePrimaryRegionRequest_) Default() interface{} { + return Companion_UpdatePrimaryRegionRequest_.Default() +} + +func (_this type_UpdatePrimaryRegionRequest_) String() string { + return "ComAmazonawsKmsTypes.UpdatePrimaryRegionRequest" +} +func (_this UpdatePrimaryRegionRequest) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = UpdatePrimaryRegionRequest{} + +// End of datatype UpdatePrimaryRegionRequest + +// Definition of datatype VerifyMacRequest +type VerifyMacRequest struct { + Data_VerifyMacRequest_ +} + +func (_this VerifyMacRequest) Get_() Data_VerifyMacRequest_ { + return _this.Data_VerifyMacRequest_ +} + +type Data_VerifyMacRequest_ interface { + isVerifyMacRequest() +} + +type CompanionStruct_VerifyMacRequest_ struct { +} + +var Companion_VerifyMacRequest_ = CompanionStruct_VerifyMacRequest_{} + +type VerifyMacRequest_VerifyMacRequest struct { + Message _dafny.Sequence + KeyId _dafny.Sequence + MacAlgorithm MacAlgorithmSpec + Mac _dafny.Sequence + GrantTokens m_Wrappers.Option + DryRun m_Wrappers.Option +} + +func (VerifyMacRequest_VerifyMacRequest) isVerifyMacRequest() {} + +func (CompanionStruct_VerifyMacRequest_) Create_VerifyMacRequest_(Message _dafny.Sequence, KeyId _dafny.Sequence, MacAlgorithm MacAlgorithmSpec, Mac _dafny.Sequence, GrantTokens m_Wrappers.Option, DryRun m_Wrappers.Option) VerifyMacRequest { + return VerifyMacRequest{VerifyMacRequest_VerifyMacRequest{Message, KeyId, MacAlgorithm, Mac, GrantTokens, DryRun}} +} + +func (_this VerifyMacRequest) Is_VerifyMacRequest() bool { + _, ok := _this.Get_().(VerifyMacRequest_VerifyMacRequest) + return ok +} + +func (CompanionStruct_VerifyMacRequest_) Default() VerifyMacRequest { + return Companion_VerifyMacRequest_.Create_VerifyMacRequest_(_dafny.EmptySeq, _dafny.EmptySeq.SetString(), Companion_MacAlgorithmSpec_.Default(), _dafny.EmptySeq, m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this VerifyMacRequest) Dtor_Message() _dafny.Sequence { + return _this.Get_().(VerifyMacRequest_VerifyMacRequest).Message +} + +func (_this VerifyMacRequest) Dtor_KeyId() _dafny.Sequence { + return _this.Get_().(VerifyMacRequest_VerifyMacRequest).KeyId +} + +func (_this VerifyMacRequest) Dtor_MacAlgorithm() MacAlgorithmSpec { + return _this.Get_().(VerifyMacRequest_VerifyMacRequest).MacAlgorithm +} + +func (_this VerifyMacRequest) Dtor_Mac() _dafny.Sequence { + return _this.Get_().(VerifyMacRequest_VerifyMacRequest).Mac +} + +func (_this VerifyMacRequest) Dtor_GrantTokens() m_Wrappers.Option { + return _this.Get_().(VerifyMacRequest_VerifyMacRequest).GrantTokens +} + +func (_this VerifyMacRequest) Dtor_DryRun() m_Wrappers.Option { + return _this.Get_().(VerifyMacRequest_VerifyMacRequest).DryRun +} + +func (_this VerifyMacRequest) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case VerifyMacRequest_VerifyMacRequest: + { + return "ComAmazonawsKmsTypes.VerifyMacRequest.VerifyMacRequest" + "(" + _dafny.String(data.Message) + ", " + _dafny.String(data.KeyId) + ", " + _dafny.String(data.MacAlgorithm) + ", " + _dafny.String(data.Mac) + ", " + _dafny.String(data.GrantTokens) + ", " + _dafny.String(data.DryRun) + ")" + } + default: + { + return "" + } + } +} + +func (_this VerifyMacRequest) Equals(other VerifyMacRequest) bool { + switch data1 := _this.Get_().(type) { + case VerifyMacRequest_VerifyMacRequest: + { + data2, ok := other.Get_().(VerifyMacRequest_VerifyMacRequest) + return ok && data1.Message.Equals(data2.Message) && data1.KeyId.Equals(data2.KeyId) && data1.MacAlgorithm.Equals(data2.MacAlgorithm) && data1.Mac.Equals(data2.Mac) && data1.GrantTokens.Equals(data2.GrantTokens) && data1.DryRun.Equals(data2.DryRun) + } + default: + { + return false // unexpected + } + } +} + +func (_this VerifyMacRequest) EqualsGeneric(other interface{}) bool { + typed, ok := other.(VerifyMacRequest) + return ok && _this.Equals(typed) +} + +func Type_VerifyMacRequest_() _dafny.TypeDescriptor { + return type_VerifyMacRequest_{} +} + +type type_VerifyMacRequest_ struct { +} + +func (_this type_VerifyMacRequest_) Default() interface{} { + return Companion_VerifyMacRequest_.Default() +} + +func (_this type_VerifyMacRequest_) String() string { + return "ComAmazonawsKmsTypes.VerifyMacRequest" +} +func (_this VerifyMacRequest) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = VerifyMacRequest{} + +// End of datatype VerifyMacRequest + +// Definition of datatype VerifyMacResponse +type VerifyMacResponse struct { + Data_VerifyMacResponse_ +} + +func (_this VerifyMacResponse) Get_() Data_VerifyMacResponse_ { + return _this.Data_VerifyMacResponse_ +} + +type Data_VerifyMacResponse_ interface { + isVerifyMacResponse() +} + +type CompanionStruct_VerifyMacResponse_ struct { +} + +var Companion_VerifyMacResponse_ = CompanionStruct_VerifyMacResponse_{} + +type VerifyMacResponse_VerifyMacResponse struct { + KeyId m_Wrappers.Option + MacValid m_Wrappers.Option + MacAlgorithm m_Wrappers.Option +} + +func (VerifyMacResponse_VerifyMacResponse) isVerifyMacResponse() {} + +func (CompanionStruct_VerifyMacResponse_) Create_VerifyMacResponse_(KeyId m_Wrappers.Option, MacValid m_Wrappers.Option, MacAlgorithm m_Wrappers.Option) VerifyMacResponse { + return VerifyMacResponse{VerifyMacResponse_VerifyMacResponse{KeyId, MacValid, MacAlgorithm}} +} + +func (_this VerifyMacResponse) Is_VerifyMacResponse() bool { + _, ok := _this.Get_().(VerifyMacResponse_VerifyMacResponse) + return ok +} + +func (CompanionStruct_VerifyMacResponse_) Default() VerifyMacResponse { + return Companion_VerifyMacResponse_.Create_VerifyMacResponse_(m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this VerifyMacResponse) Dtor_KeyId() m_Wrappers.Option { + return _this.Get_().(VerifyMacResponse_VerifyMacResponse).KeyId +} + +func (_this VerifyMacResponse) Dtor_MacValid() m_Wrappers.Option { + return _this.Get_().(VerifyMacResponse_VerifyMacResponse).MacValid +} + +func (_this VerifyMacResponse) Dtor_MacAlgorithm() m_Wrappers.Option { + return _this.Get_().(VerifyMacResponse_VerifyMacResponse).MacAlgorithm +} + +func (_this VerifyMacResponse) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case VerifyMacResponse_VerifyMacResponse: + { + return "ComAmazonawsKmsTypes.VerifyMacResponse.VerifyMacResponse" + "(" + _dafny.String(data.KeyId) + ", " + _dafny.String(data.MacValid) + ", " + _dafny.String(data.MacAlgorithm) + ")" + } + default: + { + return "" + } + } +} + +func (_this VerifyMacResponse) Equals(other VerifyMacResponse) bool { + switch data1 := _this.Get_().(type) { + case VerifyMacResponse_VerifyMacResponse: + { + data2, ok := other.Get_().(VerifyMacResponse_VerifyMacResponse) + return ok && data1.KeyId.Equals(data2.KeyId) && data1.MacValid.Equals(data2.MacValid) && data1.MacAlgorithm.Equals(data2.MacAlgorithm) + } + default: + { + return false // unexpected + } + } +} + +func (_this VerifyMacResponse) EqualsGeneric(other interface{}) bool { + typed, ok := other.(VerifyMacResponse) + return ok && _this.Equals(typed) +} + +func Type_VerifyMacResponse_() _dafny.TypeDescriptor { + return type_VerifyMacResponse_{} +} + +type type_VerifyMacResponse_ struct { +} + +func (_this type_VerifyMacResponse_) Default() interface{} { + return Companion_VerifyMacResponse_.Default() +} + +func (_this type_VerifyMacResponse_) String() string { + return "ComAmazonawsKmsTypes.VerifyMacResponse" +} +func (_this VerifyMacResponse) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = VerifyMacResponse{} + +// End of datatype VerifyMacResponse + +// Definition of datatype VerifyRequest +type VerifyRequest struct { + Data_VerifyRequest_ +} + +func (_this VerifyRequest) Get_() Data_VerifyRequest_ { + return _this.Data_VerifyRequest_ +} + +type Data_VerifyRequest_ interface { + isVerifyRequest() +} + +type CompanionStruct_VerifyRequest_ struct { +} + +var Companion_VerifyRequest_ = CompanionStruct_VerifyRequest_{} + +type VerifyRequest_VerifyRequest struct { + KeyId _dafny.Sequence + Message _dafny.Sequence + MessageType m_Wrappers.Option + Signature _dafny.Sequence + SigningAlgorithm SigningAlgorithmSpec + GrantTokens m_Wrappers.Option + DryRun m_Wrappers.Option +} + +func (VerifyRequest_VerifyRequest) isVerifyRequest() {} + +func (CompanionStruct_VerifyRequest_) Create_VerifyRequest_(KeyId _dafny.Sequence, Message _dafny.Sequence, MessageType m_Wrappers.Option, Signature _dafny.Sequence, SigningAlgorithm SigningAlgorithmSpec, GrantTokens m_Wrappers.Option, DryRun m_Wrappers.Option) VerifyRequest { + return VerifyRequest{VerifyRequest_VerifyRequest{KeyId, Message, MessageType, Signature, SigningAlgorithm, GrantTokens, DryRun}} +} + +func (_this VerifyRequest) Is_VerifyRequest() bool { + _, ok := _this.Get_().(VerifyRequest_VerifyRequest) + return ok +} + +func (CompanionStruct_VerifyRequest_) Default() VerifyRequest { + return Companion_VerifyRequest_.Create_VerifyRequest_(_dafny.EmptySeq.SetString(), _dafny.EmptySeq, m_Wrappers.Companion_Option_.Default(), _dafny.EmptySeq, Companion_SigningAlgorithmSpec_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this VerifyRequest) Dtor_KeyId() _dafny.Sequence { + return _this.Get_().(VerifyRequest_VerifyRequest).KeyId +} + +func (_this VerifyRequest) Dtor_Message() _dafny.Sequence { + return _this.Get_().(VerifyRequest_VerifyRequest).Message +} + +func (_this VerifyRequest) Dtor_MessageType() m_Wrappers.Option { + return _this.Get_().(VerifyRequest_VerifyRequest).MessageType +} + +func (_this VerifyRequest) Dtor_Signature() _dafny.Sequence { + return _this.Get_().(VerifyRequest_VerifyRequest).Signature +} + +func (_this VerifyRequest) Dtor_SigningAlgorithm() SigningAlgorithmSpec { + return _this.Get_().(VerifyRequest_VerifyRequest).SigningAlgorithm +} + +func (_this VerifyRequest) Dtor_GrantTokens() m_Wrappers.Option { + return _this.Get_().(VerifyRequest_VerifyRequest).GrantTokens +} + +func (_this VerifyRequest) Dtor_DryRun() m_Wrappers.Option { + return _this.Get_().(VerifyRequest_VerifyRequest).DryRun +} + +func (_this VerifyRequest) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case VerifyRequest_VerifyRequest: + { + return "ComAmazonawsKmsTypes.VerifyRequest.VerifyRequest" + "(" + _dafny.String(data.KeyId) + ", " + _dafny.String(data.Message) + ", " + _dafny.String(data.MessageType) + ", " + _dafny.String(data.Signature) + ", " + _dafny.String(data.SigningAlgorithm) + ", " + _dafny.String(data.GrantTokens) + ", " + _dafny.String(data.DryRun) + ")" + } + default: + { + return "" + } + } +} + +func (_this VerifyRequest) Equals(other VerifyRequest) bool { + switch data1 := _this.Get_().(type) { + case VerifyRequest_VerifyRequest: + { + data2, ok := other.Get_().(VerifyRequest_VerifyRequest) + return ok && data1.KeyId.Equals(data2.KeyId) && data1.Message.Equals(data2.Message) && data1.MessageType.Equals(data2.MessageType) && data1.Signature.Equals(data2.Signature) && data1.SigningAlgorithm.Equals(data2.SigningAlgorithm) && data1.GrantTokens.Equals(data2.GrantTokens) && data1.DryRun.Equals(data2.DryRun) + } + default: + { + return false // unexpected + } + } +} + +func (_this VerifyRequest) EqualsGeneric(other interface{}) bool { + typed, ok := other.(VerifyRequest) + return ok && _this.Equals(typed) +} + +func Type_VerifyRequest_() _dafny.TypeDescriptor { + return type_VerifyRequest_{} +} + +type type_VerifyRequest_ struct { +} + +func (_this type_VerifyRequest_) Default() interface{} { + return Companion_VerifyRequest_.Default() +} + +func (_this type_VerifyRequest_) String() string { + return "ComAmazonawsKmsTypes.VerifyRequest" +} +func (_this VerifyRequest) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = VerifyRequest{} + +// End of datatype VerifyRequest + +// Definition of datatype VerifyResponse +type VerifyResponse struct { + Data_VerifyResponse_ +} + +func (_this VerifyResponse) Get_() Data_VerifyResponse_ { + return _this.Data_VerifyResponse_ +} + +type Data_VerifyResponse_ interface { + isVerifyResponse() +} + +type CompanionStruct_VerifyResponse_ struct { +} + +var Companion_VerifyResponse_ = CompanionStruct_VerifyResponse_{} + +type VerifyResponse_VerifyResponse struct { + KeyId m_Wrappers.Option + SignatureValid m_Wrappers.Option + SigningAlgorithm m_Wrappers.Option +} + +func (VerifyResponse_VerifyResponse) isVerifyResponse() {} + +func (CompanionStruct_VerifyResponse_) Create_VerifyResponse_(KeyId m_Wrappers.Option, SignatureValid m_Wrappers.Option, SigningAlgorithm m_Wrappers.Option) VerifyResponse { + return VerifyResponse{VerifyResponse_VerifyResponse{KeyId, SignatureValid, SigningAlgorithm}} +} + +func (_this VerifyResponse) Is_VerifyResponse() bool { + _, ok := _this.Get_().(VerifyResponse_VerifyResponse) + return ok +} + +func (CompanionStruct_VerifyResponse_) Default() VerifyResponse { + return Companion_VerifyResponse_.Create_VerifyResponse_(m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this VerifyResponse) Dtor_KeyId() m_Wrappers.Option { + return _this.Get_().(VerifyResponse_VerifyResponse).KeyId +} + +func (_this VerifyResponse) Dtor_SignatureValid() m_Wrappers.Option { + return _this.Get_().(VerifyResponse_VerifyResponse).SignatureValid +} + +func (_this VerifyResponse) Dtor_SigningAlgorithm() m_Wrappers.Option { + return _this.Get_().(VerifyResponse_VerifyResponse).SigningAlgorithm +} + +func (_this VerifyResponse) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case VerifyResponse_VerifyResponse: + { + return "ComAmazonawsKmsTypes.VerifyResponse.VerifyResponse" + "(" + _dafny.String(data.KeyId) + ", " + _dafny.String(data.SignatureValid) + ", " + _dafny.String(data.SigningAlgorithm) + ")" + } + default: + { + return "" + } + } +} + +func (_this VerifyResponse) Equals(other VerifyResponse) bool { + switch data1 := _this.Get_().(type) { + case VerifyResponse_VerifyResponse: + { + data2, ok := other.Get_().(VerifyResponse_VerifyResponse) + return ok && data1.KeyId.Equals(data2.KeyId) && data1.SignatureValid.Equals(data2.SignatureValid) && data1.SigningAlgorithm.Equals(data2.SigningAlgorithm) + } + default: + { + return false // unexpected + } + } +} + +func (_this VerifyResponse) EqualsGeneric(other interface{}) bool { + typed, ok := other.(VerifyResponse) + return ok && _this.Equals(typed) +} + +func Type_VerifyResponse_() _dafny.TypeDescriptor { + return type_VerifyResponse_{} +} + +type type_VerifyResponse_ struct { +} + +func (_this type_VerifyResponse_) Default() interface{} { + return Companion_VerifyResponse_.Default() +} + +func (_this type_VerifyResponse_) String() string { + return "ComAmazonawsKmsTypes.VerifyResponse" +} +func (_this VerifyResponse) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = VerifyResponse{} + +// End of datatype VerifyResponse + +// Definition of datatype WrappingKeySpec +type WrappingKeySpec struct { + Data_WrappingKeySpec_ +} + +func (_this WrappingKeySpec) Get_() Data_WrappingKeySpec_ { + return _this.Data_WrappingKeySpec_ +} + +type Data_WrappingKeySpec_ interface { + isWrappingKeySpec() +} + +type CompanionStruct_WrappingKeySpec_ struct { +} + +var Companion_WrappingKeySpec_ = CompanionStruct_WrappingKeySpec_{} + +type WrappingKeySpec_RSA__2048 struct { +} + +func (WrappingKeySpec_RSA__2048) isWrappingKeySpec() {} + +func (CompanionStruct_WrappingKeySpec_) Create_RSA__2048_() WrappingKeySpec { + return WrappingKeySpec{WrappingKeySpec_RSA__2048{}} +} + +func (_this WrappingKeySpec) Is_RSA__2048() bool { + _, ok := _this.Get_().(WrappingKeySpec_RSA__2048) + return ok +} + +type WrappingKeySpec_RSA__3072 struct { +} + +func (WrappingKeySpec_RSA__3072) isWrappingKeySpec() {} + +func (CompanionStruct_WrappingKeySpec_) Create_RSA__3072_() WrappingKeySpec { + return WrappingKeySpec{WrappingKeySpec_RSA__3072{}} +} + +func (_this WrappingKeySpec) Is_RSA__3072() bool { + _, ok := _this.Get_().(WrappingKeySpec_RSA__3072) + return ok +} + +type WrappingKeySpec_RSA__4096 struct { +} + +func (WrappingKeySpec_RSA__4096) isWrappingKeySpec() {} + +func (CompanionStruct_WrappingKeySpec_) Create_RSA__4096_() WrappingKeySpec { + return WrappingKeySpec{WrappingKeySpec_RSA__4096{}} +} + +func (_this WrappingKeySpec) Is_RSA__4096() bool { + _, ok := _this.Get_().(WrappingKeySpec_RSA__4096) + return ok +} + +type WrappingKeySpec_SM2 struct { +} + +func (WrappingKeySpec_SM2) isWrappingKeySpec() {} + +func (CompanionStruct_WrappingKeySpec_) Create_SM2_() WrappingKeySpec { + return WrappingKeySpec{WrappingKeySpec_SM2{}} +} + +func (_this WrappingKeySpec) Is_SM2() bool { + _, ok := _this.Get_().(WrappingKeySpec_SM2) + return ok +} + +func (CompanionStruct_WrappingKeySpec_) Default() WrappingKeySpec { + return Companion_WrappingKeySpec_.Create_RSA__2048_() +} + +func (_ CompanionStruct_WrappingKeySpec_) AllSingletonConstructors() _dafny.Iterator { + i := -1 + return func() (interface{}, bool) { + i++ + switch i { + case 0: + return Companion_WrappingKeySpec_.Create_RSA__2048_(), true + case 1: + return Companion_WrappingKeySpec_.Create_RSA__3072_(), true + case 2: + return Companion_WrappingKeySpec_.Create_RSA__4096_(), true + case 3: + return Companion_WrappingKeySpec_.Create_SM2_(), true + default: + return WrappingKeySpec{}, false + } + } +} + +func (_this WrappingKeySpec) String() string { + switch _this.Get_().(type) { + case nil: + return "null" + case WrappingKeySpec_RSA__2048: + { + return "ComAmazonawsKmsTypes.WrappingKeySpec.RSA_2048" + } + case WrappingKeySpec_RSA__3072: + { + return "ComAmazonawsKmsTypes.WrappingKeySpec.RSA_3072" + } + case WrappingKeySpec_RSA__4096: + { + return "ComAmazonawsKmsTypes.WrappingKeySpec.RSA_4096" + } + case WrappingKeySpec_SM2: + { + return "ComAmazonawsKmsTypes.WrappingKeySpec.SM2" + } + default: + { + return "" + } + } +} + +func (_this WrappingKeySpec) Equals(other WrappingKeySpec) bool { + switch _this.Get_().(type) { + case WrappingKeySpec_RSA__2048: + { + _, ok := other.Get_().(WrappingKeySpec_RSA__2048) + return ok + } + case WrappingKeySpec_RSA__3072: + { + _, ok := other.Get_().(WrappingKeySpec_RSA__3072) + return ok + } + case WrappingKeySpec_RSA__4096: + { + _, ok := other.Get_().(WrappingKeySpec_RSA__4096) + return ok + } + case WrappingKeySpec_SM2: + { + _, ok := other.Get_().(WrappingKeySpec_SM2) + return ok + } + default: + { + return false // unexpected + } + } +} + +func (_this WrappingKeySpec) EqualsGeneric(other interface{}) bool { + typed, ok := other.(WrappingKeySpec) + return ok && _this.Equals(typed) +} + +func Type_WrappingKeySpec_() _dafny.TypeDescriptor { + return type_WrappingKeySpec_{} +} + +type type_WrappingKeySpec_ struct { +} + +func (_this type_WrappingKeySpec_) Default() interface{} { + return Companion_WrappingKeySpec_.Default() +} + +func (_this type_WrappingKeySpec_) String() string { + return "ComAmazonawsKmsTypes.WrappingKeySpec" +} +func (_this WrappingKeySpec) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = WrappingKeySpec{} + +// End of datatype WrappingKeySpec + +// Definition of datatype XksKeyConfigurationType +type XksKeyConfigurationType struct { + Data_XksKeyConfigurationType_ +} + +func (_this XksKeyConfigurationType) Get_() Data_XksKeyConfigurationType_ { + return _this.Data_XksKeyConfigurationType_ +} + +type Data_XksKeyConfigurationType_ interface { + isXksKeyConfigurationType() +} + +type CompanionStruct_XksKeyConfigurationType_ struct { +} + +var Companion_XksKeyConfigurationType_ = CompanionStruct_XksKeyConfigurationType_{} + +type XksKeyConfigurationType_XksKeyConfigurationType struct { + Id m_Wrappers.Option +} + +func (XksKeyConfigurationType_XksKeyConfigurationType) isXksKeyConfigurationType() {} + +func (CompanionStruct_XksKeyConfigurationType_) Create_XksKeyConfigurationType_(Id m_Wrappers.Option) XksKeyConfigurationType { + return XksKeyConfigurationType{XksKeyConfigurationType_XksKeyConfigurationType{Id}} +} + +func (_this XksKeyConfigurationType) Is_XksKeyConfigurationType() bool { + _, ok := _this.Get_().(XksKeyConfigurationType_XksKeyConfigurationType) + return ok +} + +func (CompanionStruct_XksKeyConfigurationType_) Default() XksKeyConfigurationType { + return Companion_XksKeyConfigurationType_.Create_XksKeyConfigurationType_(m_Wrappers.Companion_Option_.Default()) +} + +func (_this XksKeyConfigurationType) Dtor_Id() m_Wrappers.Option { + return _this.Get_().(XksKeyConfigurationType_XksKeyConfigurationType).Id +} + +func (_this XksKeyConfigurationType) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case XksKeyConfigurationType_XksKeyConfigurationType: + { + return "ComAmazonawsKmsTypes.XksKeyConfigurationType.XksKeyConfigurationType" + "(" + _dafny.String(data.Id) + ")" + } + default: + { + return "" + } + } +} + +func (_this XksKeyConfigurationType) Equals(other XksKeyConfigurationType) bool { + switch data1 := _this.Get_().(type) { + case XksKeyConfigurationType_XksKeyConfigurationType: + { + data2, ok := other.Get_().(XksKeyConfigurationType_XksKeyConfigurationType) + return ok && data1.Id.Equals(data2.Id) + } + default: + { + return false // unexpected + } + } +} + +func (_this XksKeyConfigurationType) EqualsGeneric(other interface{}) bool { + typed, ok := other.(XksKeyConfigurationType) + return ok && _this.Equals(typed) +} + +func Type_XksKeyConfigurationType_() _dafny.TypeDescriptor { + return type_XksKeyConfigurationType_{} +} + +type type_XksKeyConfigurationType_ struct { +} + +func (_this type_XksKeyConfigurationType_) Default() interface{} { + return Companion_XksKeyConfigurationType_.Default() +} + +func (_this type_XksKeyConfigurationType_) String() string { + return "ComAmazonawsKmsTypes.XksKeyConfigurationType" +} +func (_this XksKeyConfigurationType) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = XksKeyConfigurationType{} + +// End of datatype XksKeyConfigurationType + +// Definition of class XksKeyIdType +type XksKeyIdType struct { +} + +func New_XksKeyIdType_() *XksKeyIdType { + _this := XksKeyIdType{} + + return &_this +} + +type CompanionStruct_XksKeyIdType_ struct { +} + +var Companion_XksKeyIdType_ = CompanionStruct_XksKeyIdType_{} + +func (*XksKeyIdType) String() string { + return "ComAmazonawsKmsTypes.XksKeyIdType" +} + +// End of class XksKeyIdType + +func Type_XksKeyIdType_() _dafny.TypeDescriptor { + return type_XksKeyIdType_{} +} + +type type_XksKeyIdType_ struct { +} + +func (_this type_XksKeyIdType_) Default() interface{} { + return _dafny.EmptySeq.SetString() +} + +func (_this type_XksKeyIdType_) String() string { + return "ComAmazonawsKmsTypes.XksKeyIdType" +} +func (_this *CompanionStruct_XksKeyIdType_) Is_(__source _dafny.Sequence) bool { + var _1_x _dafny.Sequence = (__source) + _ = _1_x + return Companion_Default___.IsValid__XksKeyIdType(_1_x) +} + +// Definition of class XksProxyAuthenticationAccessKeyIdType +type XksProxyAuthenticationAccessKeyIdType struct { +} + +func New_XksProxyAuthenticationAccessKeyIdType_() *XksProxyAuthenticationAccessKeyIdType { + _this := XksProxyAuthenticationAccessKeyIdType{} + + return &_this +} + +type CompanionStruct_XksProxyAuthenticationAccessKeyIdType_ struct { +} + +var Companion_XksProxyAuthenticationAccessKeyIdType_ = CompanionStruct_XksProxyAuthenticationAccessKeyIdType_{} + +func (*XksProxyAuthenticationAccessKeyIdType) String() string { + return "ComAmazonawsKmsTypes.XksProxyAuthenticationAccessKeyIdType" +} + +// End of class XksProxyAuthenticationAccessKeyIdType + +func Type_XksProxyAuthenticationAccessKeyIdType_() _dafny.TypeDescriptor { + return type_XksProxyAuthenticationAccessKeyIdType_{} +} + +type type_XksProxyAuthenticationAccessKeyIdType_ struct { +} + +func (_this type_XksProxyAuthenticationAccessKeyIdType_) Default() interface{} { + return _dafny.EmptySeq.SetString() +} + +func (_this type_XksProxyAuthenticationAccessKeyIdType_) String() string { + return "ComAmazonawsKmsTypes.XksProxyAuthenticationAccessKeyIdType" +} +func (_this *CompanionStruct_XksProxyAuthenticationAccessKeyIdType_) Is_(__source _dafny.Sequence) bool { + var _2_x _dafny.Sequence = (__source) + _ = _2_x + return Companion_Default___.IsValid__XksProxyAuthenticationAccessKeyIdType(_2_x) +} + +// Definition of datatype XksProxyAuthenticationCredentialType +type XksProxyAuthenticationCredentialType struct { + Data_XksProxyAuthenticationCredentialType_ +} + +func (_this XksProxyAuthenticationCredentialType) Get_() Data_XksProxyAuthenticationCredentialType_ { + return _this.Data_XksProxyAuthenticationCredentialType_ +} + +type Data_XksProxyAuthenticationCredentialType_ interface { + isXksProxyAuthenticationCredentialType() +} + +type CompanionStruct_XksProxyAuthenticationCredentialType_ struct { +} + +var Companion_XksProxyAuthenticationCredentialType_ = CompanionStruct_XksProxyAuthenticationCredentialType_{} + +type XksProxyAuthenticationCredentialType_XksProxyAuthenticationCredentialType struct { + AccessKeyId _dafny.Sequence + RawSecretAccessKey _dafny.Sequence +} + +func (XksProxyAuthenticationCredentialType_XksProxyAuthenticationCredentialType) isXksProxyAuthenticationCredentialType() { +} + +func (CompanionStruct_XksProxyAuthenticationCredentialType_) Create_XksProxyAuthenticationCredentialType_(AccessKeyId _dafny.Sequence, RawSecretAccessKey _dafny.Sequence) XksProxyAuthenticationCredentialType { + return XksProxyAuthenticationCredentialType{XksProxyAuthenticationCredentialType_XksProxyAuthenticationCredentialType{AccessKeyId, RawSecretAccessKey}} +} + +func (_this XksProxyAuthenticationCredentialType) Is_XksProxyAuthenticationCredentialType() bool { + _, ok := _this.Get_().(XksProxyAuthenticationCredentialType_XksProxyAuthenticationCredentialType) + return ok +} + +func (CompanionStruct_XksProxyAuthenticationCredentialType_) Default() XksProxyAuthenticationCredentialType { + return Companion_XksProxyAuthenticationCredentialType_.Create_XksProxyAuthenticationCredentialType_(_dafny.EmptySeq.SetString(), _dafny.EmptySeq.SetString()) +} + +func (_this XksProxyAuthenticationCredentialType) Dtor_AccessKeyId() _dafny.Sequence { + return _this.Get_().(XksProxyAuthenticationCredentialType_XksProxyAuthenticationCredentialType).AccessKeyId +} + +func (_this XksProxyAuthenticationCredentialType) Dtor_RawSecretAccessKey() _dafny.Sequence { + return _this.Get_().(XksProxyAuthenticationCredentialType_XksProxyAuthenticationCredentialType).RawSecretAccessKey +} + +func (_this XksProxyAuthenticationCredentialType) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case XksProxyAuthenticationCredentialType_XksProxyAuthenticationCredentialType: + { + return "ComAmazonawsKmsTypes.XksProxyAuthenticationCredentialType.XksProxyAuthenticationCredentialType" + "(" + _dafny.String(data.AccessKeyId) + ", " + _dafny.String(data.RawSecretAccessKey) + ")" + } + default: + { + return "" + } + } +} + +func (_this XksProxyAuthenticationCredentialType) Equals(other XksProxyAuthenticationCredentialType) bool { + switch data1 := _this.Get_().(type) { + case XksProxyAuthenticationCredentialType_XksProxyAuthenticationCredentialType: + { + data2, ok := other.Get_().(XksProxyAuthenticationCredentialType_XksProxyAuthenticationCredentialType) + return ok && data1.AccessKeyId.Equals(data2.AccessKeyId) && data1.RawSecretAccessKey.Equals(data2.RawSecretAccessKey) + } + default: + { + return false // unexpected + } + } +} + +func (_this XksProxyAuthenticationCredentialType) EqualsGeneric(other interface{}) bool { + typed, ok := other.(XksProxyAuthenticationCredentialType) + return ok && _this.Equals(typed) +} + +func Type_XksProxyAuthenticationCredentialType_() _dafny.TypeDescriptor { + return type_XksProxyAuthenticationCredentialType_{} +} + +type type_XksProxyAuthenticationCredentialType_ struct { +} + +func (_this type_XksProxyAuthenticationCredentialType_) Default() interface{} { + return Companion_XksProxyAuthenticationCredentialType_.Default() +} + +func (_this type_XksProxyAuthenticationCredentialType_) String() string { + return "ComAmazonawsKmsTypes.XksProxyAuthenticationCredentialType" +} +func (_this XksProxyAuthenticationCredentialType) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = XksProxyAuthenticationCredentialType{} + +// End of datatype XksProxyAuthenticationCredentialType + +// Definition of class XksProxyAuthenticationRawSecretAccessKeyType +type XksProxyAuthenticationRawSecretAccessKeyType struct { +} + +func New_XksProxyAuthenticationRawSecretAccessKeyType_() *XksProxyAuthenticationRawSecretAccessKeyType { + _this := XksProxyAuthenticationRawSecretAccessKeyType{} + + return &_this +} + +type CompanionStruct_XksProxyAuthenticationRawSecretAccessKeyType_ struct { +} + +var Companion_XksProxyAuthenticationRawSecretAccessKeyType_ = CompanionStruct_XksProxyAuthenticationRawSecretAccessKeyType_{} + +func (*XksProxyAuthenticationRawSecretAccessKeyType) String() string { + return "ComAmazonawsKmsTypes.XksProxyAuthenticationRawSecretAccessKeyType" +} + +// End of class XksProxyAuthenticationRawSecretAccessKeyType + +func Type_XksProxyAuthenticationRawSecretAccessKeyType_() _dafny.TypeDescriptor { + return type_XksProxyAuthenticationRawSecretAccessKeyType_{} +} + +type type_XksProxyAuthenticationRawSecretAccessKeyType_ struct { +} + +func (_this type_XksProxyAuthenticationRawSecretAccessKeyType_) Default() interface{} { + return _dafny.EmptySeq.SetString() +} + +func (_this type_XksProxyAuthenticationRawSecretAccessKeyType_) String() string { + return "ComAmazonawsKmsTypes.XksProxyAuthenticationRawSecretAccessKeyType" +} +func (_this *CompanionStruct_XksProxyAuthenticationRawSecretAccessKeyType_) Is_(__source _dafny.Sequence) bool { + var _3_x _dafny.Sequence = (__source) + _ = _3_x + return Companion_Default___.IsValid__XksProxyAuthenticationRawSecretAccessKeyType(_3_x) +} + +// Definition of datatype XksProxyConfigurationType +type XksProxyConfigurationType struct { + Data_XksProxyConfigurationType_ +} + +func (_this XksProxyConfigurationType) Get_() Data_XksProxyConfigurationType_ { + return _this.Data_XksProxyConfigurationType_ +} + +type Data_XksProxyConfigurationType_ interface { + isXksProxyConfigurationType() +} + +type CompanionStruct_XksProxyConfigurationType_ struct { +} + +var Companion_XksProxyConfigurationType_ = CompanionStruct_XksProxyConfigurationType_{} + +type XksProxyConfigurationType_XksProxyConfigurationType struct { + Connectivity m_Wrappers.Option + AccessKeyId m_Wrappers.Option + UriEndpoint m_Wrappers.Option + UriPath m_Wrappers.Option + VpcEndpointServiceName m_Wrappers.Option +} + +func (XksProxyConfigurationType_XksProxyConfigurationType) isXksProxyConfigurationType() {} + +func (CompanionStruct_XksProxyConfigurationType_) Create_XksProxyConfigurationType_(Connectivity m_Wrappers.Option, AccessKeyId m_Wrappers.Option, UriEndpoint m_Wrappers.Option, UriPath m_Wrappers.Option, VpcEndpointServiceName m_Wrappers.Option) XksProxyConfigurationType { + return XksProxyConfigurationType{XksProxyConfigurationType_XksProxyConfigurationType{Connectivity, AccessKeyId, UriEndpoint, UriPath, VpcEndpointServiceName}} +} + +func (_this XksProxyConfigurationType) Is_XksProxyConfigurationType() bool { + _, ok := _this.Get_().(XksProxyConfigurationType_XksProxyConfigurationType) + return ok +} + +func (CompanionStruct_XksProxyConfigurationType_) Default() XksProxyConfigurationType { + return Companion_XksProxyConfigurationType_.Create_XksProxyConfigurationType_(m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this XksProxyConfigurationType) Dtor_Connectivity() m_Wrappers.Option { + return _this.Get_().(XksProxyConfigurationType_XksProxyConfigurationType).Connectivity +} + +func (_this XksProxyConfigurationType) Dtor_AccessKeyId() m_Wrappers.Option { + return _this.Get_().(XksProxyConfigurationType_XksProxyConfigurationType).AccessKeyId +} + +func (_this XksProxyConfigurationType) Dtor_UriEndpoint() m_Wrappers.Option { + return _this.Get_().(XksProxyConfigurationType_XksProxyConfigurationType).UriEndpoint +} + +func (_this XksProxyConfigurationType) Dtor_UriPath() m_Wrappers.Option { + return _this.Get_().(XksProxyConfigurationType_XksProxyConfigurationType).UriPath +} + +func (_this XksProxyConfigurationType) Dtor_VpcEndpointServiceName() m_Wrappers.Option { + return _this.Get_().(XksProxyConfigurationType_XksProxyConfigurationType).VpcEndpointServiceName +} + +func (_this XksProxyConfigurationType) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case XksProxyConfigurationType_XksProxyConfigurationType: + { + return "ComAmazonawsKmsTypes.XksProxyConfigurationType.XksProxyConfigurationType" + "(" + _dafny.String(data.Connectivity) + ", " + _dafny.String(data.AccessKeyId) + ", " + _dafny.String(data.UriEndpoint) + ", " + _dafny.String(data.UriPath) + ", " + _dafny.String(data.VpcEndpointServiceName) + ")" + } + default: + { + return "" + } + } +} + +func (_this XksProxyConfigurationType) Equals(other XksProxyConfigurationType) bool { + switch data1 := _this.Get_().(type) { + case XksProxyConfigurationType_XksProxyConfigurationType: + { + data2, ok := other.Get_().(XksProxyConfigurationType_XksProxyConfigurationType) + return ok && data1.Connectivity.Equals(data2.Connectivity) && data1.AccessKeyId.Equals(data2.AccessKeyId) && data1.UriEndpoint.Equals(data2.UriEndpoint) && data1.UriPath.Equals(data2.UriPath) && data1.VpcEndpointServiceName.Equals(data2.VpcEndpointServiceName) + } + default: + { + return false // unexpected + } + } +} + +func (_this XksProxyConfigurationType) EqualsGeneric(other interface{}) bool { + typed, ok := other.(XksProxyConfigurationType) + return ok && _this.Equals(typed) +} + +func Type_XksProxyConfigurationType_() _dafny.TypeDescriptor { + return type_XksProxyConfigurationType_{} +} + +type type_XksProxyConfigurationType_ struct { +} + +func (_this type_XksProxyConfigurationType_) Default() interface{} { + return Companion_XksProxyConfigurationType_.Default() +} + +func (_this type_XksProxyConfigurationType_) String() string { + return "ComAmazonawsKmsTypes.XksProxyConfigurationType" +} +func (_this XksProxyConfigurationType) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = XksProxyConfigurationType{} + +// End of datatype XksProxyConfigurationType + +// Definition of datatype XksProxyConnectivityType +type XksProxyConnectivityType struct { + Data_XksProxyConnectivityType_ +} + +func (_this XksProxyConnectivityType) Get_() Data_XksProxyConnectivityType_ { + return _this.Data_XksProxyConnectivityType_ +} + +type Data_XksProxyConnectivityType_ interface { + isXksProxyConnectivityType() +} + +type CompanionStruct_XksProxyConnectivityType_ struct { +} + +var Companion_XksProxyConnectivityType_ = CompanionStruct_XksProxyConnectivityType_{} + +type XksProxyConnectivityType_PUBLIC__ENDPOINT struct { +} + +func (XksProxyConnectivityType_PUBLIC__ENDPOINT) isXksProxyConnectivityType() {} + +func (CompanionStruct_XksProxyConnectivityType_) Create_PUBLIC__ENDPOINT_() XksProxyConnectivityType { + return XksProxyConnectivityType{XksProxyConnectivityType_PUBLIC__ENDPOINT{}} +} + +func (_this XksProxyConnectivityType) Is_PUBLIC__ENDPOINT() bool { + _, ok := _this.Get_().(XksProxyConnectivityType_PUBLIC__ENDPOINT) + return ok +} + +type XksProxyConnectivityType_VPC__ENDPOINT__SERVICE struct { +} + +func (XksProxyConnectivityType_VPC__ENDPOINT__SERVICE) isXksProxyConnectivityType() {} + +func (CompanionStruct_XksProxyConnectivityType_) Create_VPC__ENDPOINT__SERVICE_() XksProxyConnectivityType { + return XksProxyConnectivityType{XksProxyConnectivityType_VPC__ENDPOINT__SERVICE{}} +} + +func (_this XksProxyConnectivityType) Is_VPC__ENDPOINT__SERVICE() bool { + _, ok := _this.Get_().(XksProxyConnectivityType_VPC__ENDPOINT__SERVICE) + return ok +} + +func (CompanionStruct_XksProxyConnectivityType_) Default() XksProxyConnectivityType { + return Companion_XksProxyConnectivityType_.Create_PUBLIC__ENDPOINT_() +} + +func (_ CompanionStruct_XksProxyConnectivityType_) AllSingletonConstructors() _dafny.Iterator { + i := -1 + return func() (interface{}, bool) { + i++ + switch i { + case 0: + return Companion_XksProxyConnectivityType_.Create_PUBLIC__ENDPOINT_(), true + case 1: + return Companion_XksProxyConnectivityType_.Create_VPC__ENDPOINT__SERVICE_(), true + default: + return XksProxyConnectivityType{}, false + } + } +} + +func (_this XksProxyConnectivityType) String() string { + switch _this.Get_().(type) { + case nil: + return "null" + case XksProxyConnectivityType_PUBLIC__ENDPOINT: + { + return "ComAmazonawsKmsTypes.XksProxyConnectivityType.PUBLIC_ENDPOINT" + } + case XksProxyConnectivityType_VPC__ENDPOINT__SERVICE: + { + return "ComAmazonawsKmsTypes.XksProxyConnectivityType.VPC_ENDPOINT_SERVICE" + } + default: + { + return "" + } + } +} + +func (_this XksProxyConnectivityType) Equals(other XksProxyConnectivityType) bool { + switch _this.Get_().(type) { + case XksProxyConnectivityType_PUBLIC__ENDPOINT: + { + _, ok := other.Get_().(XksProxyConnectivityType_PUBLIC__ENDPOINT) + return ok + } + case XksProxyConnectivityType_VPC__ENDPOINT__SERVICE: + { + _, ok := other.Get_().(XksProxyConnectivityType_VPC__ENDPOINT__SERVICE) + return ok + } + default: + { + return false // unexpected + } + } +} + +func (_this XksProxyConnectivityType) EqualsGeneric(other interface{}) bool { + typed, ok := other.(XksProxyConnectivityType) + return ok && _this.Equals(typed) +} + +func Type_XksProxyConnectivityType_() _dafny.TypeDescriptor { + return type_XksProxyConnectivityType_{} +} + +type type_XksProxyConnectivityType_ struct { +} + +func (_this type_XksProxyConnectivityType_) Default() interface{} { + return Companion_XksProxyConnectivityType_.Default() +} + +func (_this type_XksProxyConnectivityType_) String() string { + return "ComAmazonawsKmsTypes.XksProxyConnectivityType" +} +func (_this XksProxyConnectivityType) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = XksProxyConnectivityType{} + +// End of datatype XksProxyConnectivityType + +// Definition of class XksProxyUriEndpointType +type XksProxyUriEndpointType struct { +} + +func New_XksProxyUriEndpointType_() *XksProxyUriEndpointType { + _this := XksProxyUriEndpointType{} + + return &_this +} + +type CompanionStruct_XksProxyUriEndpointType_ struct { +} + +var Companion_XksProxyUriEndpointType_ = CompanionStruct_XksProxyUriEndpointType_{} + +func (*XksProxyUriEndpointType) String() string { + return "ComAmazonawsKmsTypes.XksProxyUriEndpointType" +} + +// End of class XksProxyUriEndpointType + +func Type_XksProxyUriEndpointType_() _dafny.TypeDescriptor { + return type_XksProxyUriEndpointType_{} +} + +type type_XksProxyUriEndpointType_ struct { +} + +func (_this type_XksProxyUriEndpointType_) Default() interface{} { + return _dafny.EmptySeq.SetString() +} + +func (_this type_XksProxyUriEndpointType_) String() string { + return "ComAmazonawsKmsTypes.XksProxyUriEndpointType" +} +func (_this *CompanionStruct_XksProxyUriEndpointType_) Is_(__source _dafny.Sequence) bool { + var _4_x _dafny.Sequence = (__source) + _ = _4_x + return Companion_Default___.IsValid__XksProxyUriEndpointType(_4_x) +} + +// Definition of class XksProxyUriPathType +type XksProxyUriPathType struct { +} + +func New_XksProxyUriPathType_() *XksProxyUriPathType { + _this := XksProxyUriPathType{} + + return &_this +} + +type CompanionStruct_XksProxyUriPathType_ struct { +} + +var Companion_XksProxyUriPathType_ = CompanionStruct_XksProxyUriPathType_{} + +func (*XksProxyUriPathType) String() string { + return "ComAmazonawsKmsTypes.XksProxyUriPathType" +} + +// End of class XksProxyUriPathType + +func Type_XksProxyUriPathType_() _dafny.TypeDescriptor { + return type_XksProxyUriPathType_{} +} + +type type_XksProxyUriPathType_ struct { +} + +func (_this type_XksProxyUriPathType_) Default() interface{} { + return _dafny.EmptySeq.SetString() +} + +func (_this type_XksProxyUriPathType_) String() string { + return "ComAmazonawsKmsTypes.XksProxyUriPathType" +} +func (_this *CompanionStruct_XksProxyUriPathType_) Is_(__source _dafny.Sequence) bool { + var _5_x _dafny.Sequence = (__source) + _ = _5_x + return Companion_Default___.IsValid__XksProxyUriPathType(_5_x) +} + +// Definition of class XksProxyVpcEndpointServiceNameType +type XksProxyVpcEndpointServiceNameType struct { +} + +func New_XksProxyVpcEndpointServiceNameType_() *XksProxyVpcEndpointServiceNameType { + _this := XksProxyVpcEndpointServiceNameType{} + + return &_this +} + +type CompanionStruct_XksProxyVpcEndpointServiceNameType_ struct { +} + +var Companion_XksProxyVpcEndpointServiceNameType_ = CompanionStruct_XksProxyVpcEndpointServiceNameType_{} + +func (*XksProxyVpcEndpointServiceNameType) String() string { + return "ComAmazonawsKmsTypes.XksProxyVpcEndpointServiceNameType" +} + +// End of class XksProxyVpcEndpointServiceNameType + +func Type_XksProxyVpcEndpointServiceNameType_() _dafny.TypeDescriptor { + return type_XksProxyVpcEndpointServiceNameType_{} +} + +type type_XksProxyVpcEndpointServiceNameType_ struct { +} + +func (_this type_XksProxyVpcEndpointServiceNameType_) Default() interface{} { + return _dafny.EmptySeq.SetString() +} + +func (_this type_XksProxyVpcEndpointServiceNameType_) String() string { + return "ComAmazonawsKmsTypes.XksProxyVpcEndpointServiceNameType" +} +func (_this *CompanionStruct_XksProxyVpcEndpointServiceNameType_) Is_(__source _dafny.Sequence) bool { + var _6_x _dafny.Sequence = (__source) + _ = _6_x + return Companion_Default___.IsValid__XksProxyVpcEndpointServiceNameType(_6_x) +} + +// Definition of datatype Error +type Error struct { + Data_Error_ +} + +func (_this Error) Get_() Data_Error_ { + return _this.Data_Error_ +} + +type Data_Error_ interface { + isError() +} + +type CompanionStruct_Error_ struct { +} + +var Companion_Error_ = CompanionStruct_Error_{} + +type Error_AlreadyExistsException struct { + Message m_Wrappers.Option +} + +func (Error_AlreadyExistsException) isError() {} + +func (CompanionStruct_Error_) Create_AlreadyExistsException_(Message m_Wrappers.Option) Error { + return Error{Error_AlreadyExistsException{Message}} +} + +func (_this Error) Is_AlreadyExistsException() bool { + _, ok := _this.Get_().(Error_AlreadyExistsException) + return ok +} + +type Error_CloudHsmClusterInUseException struct { + Message m_Wrappers.Option +} + +func (Error_CloudHsmClusterInUseException) isError() {} + +func (CompanionStruct_Error_) Create_CloudHsmClusterInUseException_(Message m_Wrappers.Option) Error { + return Error{Error_CloudHsmClusterInUseException{Message}} +} + +func (_this Error) Is_CloudHsmClusterInUseException() bool { + _, ok := _this.Get_().(Error_CloudHsmClusterInUseException) + return ok +} + +type Error_CloudHsmClusterInvalidConfigurationException struct { + Message m_Wrappers.Option +} + +func (Error_CloudHsmClusterInvalidConfigurationException) isError() {} + +func (CompanionStruct_Error_) Create_CloudHsmClusterInvalidConfigurationException_(Message m_Wrappers.Option) Error { + return Error{Error_CloudHsmClusterInvalidConfigurationException{Message}} +} + +func (_this Error) Is_CloudHsmClusterInvalidConfigurationException() bool { + _, ok := _this.Get_().(Error_CloudHsmClusterInvalidConfigurationException) + return ok +} + +type Error_CloudHsmClusterNotActiveException struct { + Message m_Wrappers.Option +} + +func (Error_CloudHsmClusterNotActiveException) isError() {} + +func (CompanionStruct_Error_) Create_CloudHsmClusterNotActiveException_(Message m_Wrappers.Option) Error { + return Error{Error_CloudHsmClusterNotActiveException{Message}} +} + +func (_this Error) Is_CloudHsmClusterNotActiveException() bool { + _, ok := _this.Get_().(Error_CloudHsmClusterNotActiveException) + return ok +} + +type Error_CloudHsmClusterNotFoundException struct { + Message m_Wrappers.Option +} + +func (Error_CloudHsmClusterNotFoundException) isError() {} + +func (CompanionStruct_Error_) Create_CloudHsmClusterNotFoundException_(Message m_Wrappers.Option) Error { + return Error{Error_CloudHsmClusterNotFoundException{Message}} +} + +func (_this Error) Is_CloudHsmClusterNotFoundException() bool { + _, ok := _this.Get_().(Error_CloudHsmClusterNotFoundException) + return ok +} + +type Error_CloudHsmClusterNotRelatedException struct { + Message m_Wrappers.Option +} + +func (Error_CloudHsmClusterNotRelatedException) isError() {} + +func (CompanionStruct_Error_) Create_CloudHsmClusterNotRelatedException_(Message m_Wrappers.Option) Error { + return Error{Error_CloudHsmClusterNotRelatedException{Message}} +} + +func (_this Error) Is_CloudHsmClusterNotRelatedException() bool { + _, ok := _this.Get_().(Error_CloudHsmClusterNotRelatedException) + return ok +} + +type Error_ConflictException struct { + Message m_Wrappers.Option +} + +func (Error_ConflictException) isError() {} + +func (CompanionStruct_Error_) Create_ConflictException_(Message m_Wrappers.Option) Error { + return Error{Error_ConflictException{Message}} +} + +func (_this Error) Is_ConflictException() bool { + _, ok := _this.Get_().(Error_ConflictException) + return ok +} + +type Error_CustomKeyStoreHasCMKsException struct { + Message m_Wrappers.Option +} + +func (Error_CustomKeyStoreHasCMKsException) isError() {} + +func (CompanionStruct_Error_) Create_CustomKeyStoreHasCMKsException_(Message m_Wrappers.Option) Error { + return Error{Error_CustomKeyStoreHasCMKsException{Message}} +} + +func (_this Error) Is_CustomKeyStoreHasCMKsException() bool { + _, ok := _this.Get_().(Error_CustomKeyStoreHasCMKsException) + return ok +} + +type Error_CustomKeyStoreInvalidStateException struct { + Message m_Wrappers.Option +} + +func (Error_CustomKeyStoreInvalidStateException) isError() {} + +func (CompanionStruct_Error_) Create_CustomKeyStoreInvalidStateException_(Message m_Wrappers.Option) Error { + return Error{Error_CustomKeyStoreInvalidStateException{Message}} +} + +func (_this Error) Is_CustomKeyStoreInvalidStateException() bool { + _, ok := _this.Get_().(Error_CustomKeyStoreInvalidStateException) + return ok +} + +type Error_CustomKeyStoreNameInUseException struct { + Message m_Wrappers.Option +} + +func (Error_CustomKeyStoreNameInUseException) isError() {} + +func (CompanionStruct_Error_) Create_CustomKeyStoreNameInUseException_(Message m_Wrappers.Option) Error { + return Error{Error_CustomKeyStoreNameInUseException{Message}} +} + +func (_this Error) Is_CustomKeyStoreNameInUseException() bool { + _, ok := _this.Get_().(Error_CustomKeyStoreNameInUseException) + return ok +} + +type Error_CustomKeyStoreNotFoundException struct { + Message m_Wrappers.Option +} + +func (Error_CustomKeyStoreNotFoundException) isError() {} + +func (CompanionStruct_Error_) Create_CustomKeyStoreNotFoundException_(Message m_Wrappers.Option) Error { + return Error{Error_CustomKeyStoreNotFoundException{Message}} +} + +func (_this Error) Is_CustomKeyStoreNotFoundException() bool { + _, ok := _this.Get_().(Error_CustomKeyStoreNotFoundException) + return ok +} + +type Error_DependencyTimeoutException struct { + Message m_Wrappers.Option +} + +func (Error_DependencyTimeoutException) isError() {} + +func (CompanionStruct_Error_) Create_DependencyTimeoutException_(Message m_Wrappers.Option) Error { + return Error{Error_DependencyTimeoutException{Message}} +} + +func (_this Error) Is_DependencyTimeoutException() bool { + _, ok := _this.Get_().(Error_DependencyTimeoutException) + return ok +} + +type Error_DisabledException struct { + Message m_Wrappers.Option +} + +func (Error_DisabledException) isError() {} + +func (CompanionStruct_Error_) Create_DisabledException_(Message m_Wrappers.Option) Error { + return Error{Error_DisabledException{Message}} +} + +func (_this Error) Is_DisabledException() bool { + _, ok := _this.Get_().(Error_DisabledException) + return ok +} + +type Error_DryRunOperationException struct { + Message m_Wrappers.Option +} + +func (Error_DryRunOperationException) isError() {} + +func (CompanionStruct_Error_) Create_DryRunOperationException_(Message m_Wrappers.Option) Error { + return Error{Error_DryRunOperationException{Message}} +} + +func (_this Error) Is_DryRunOperationException() bool { + _, ok := _this.Get_().(Error_DryRunOperationException) + return ok +} + +type Error_ExpiredImportTokenException struct { + Message m_Wrappers.Option +} + +func (Error_ExpiredImportTokenException) isError() {} + +func (CompanionStruct_Error_) Create_ExpiredImportTokenException_(Message m_Wrappers.Option) Error { + return Error{Error_ExpiredImportTokenException{Message}} +} + +func (_this Error) Is_ExpiredImportTokenException() bool { + _, ok := _this.Get_().(Error_ExpiredImportTokenException) + return ok +} + +type Error_IncorrectKeyException struct { + Message m_Wrappers.Option +} + +func (Error_IncorrectKeyException) isError() {} + +func (CompanionStruct_Error_) Create_IncorrectKeyException_(Message m_Wrappers.Option) Error { + return Error{Error_IncorrectKeyException{Message}} +} + +func (_this Error) Is_IncorrectKeyException() bool { + _, ok := _this.Get_().(Error_IncorrectKeyException) + return ok +} + +type Error_IncorrectKeyMaterialException struct { + Message m_Wrappers.Option +} + +func (Error_IncorrectKeyMaterialException) isError() {} + +func (CompanionStruct_Error_) Create_IncorrectKeyMaterialException_(Message m_Wrappers.Option) Error { + return Error{Error_IncorrectKeyMaterialException{Message}} +} + +func (_this Error) Is_IncorrectKeyMaterialException() bool { + _, ok := _this.Get_().(Error_IncorrectKeyMaterialException) + return ok +} + +type Error_IncorrectTrustAnchorException struct { + Message m_Wrappers.Option +} + +func (Error_IncorrectTrustAnchorException) isError() {} + +func (CompanionStruct_Error_) Create_IncorrectTrustAnchorException_(Message m_Wrappers.Option) Error { + return Error{Error_IncorrectTrustAnchorException{Message}} +} + +func (_this Error) Is_IncorrectTrustAnchorException() bool { + _, ok := _this.Get_().(Error_IncorrectTrustAnchorException) + return ok +} + +type Error_InvalidAliasNameException struct { + Message m_Wrappers.Option +} + +func (Error_InvalidAliasNameException) isError() {} + +func (CompanionStruct_Error_) Create_InvalidAliasNameException_(Message m_Wrappers.Option) Error { + return Error{Error_InvalidAliasNameException{Message}} +} + +func (_this Error) Is_InvalidAliasNameException() bool { + _, ok := _this.Get_().(Error_InvalidAliasNameException) + return ok +} + +type Error_InvalidArnException struct { + Message m_Wrappers.Option +} + +func (Error_InvalidArnException) isError() {} + +func (CompanionStruct_Error_) Create_InvalidArnException_(Message m_Wrappers.Option) Error { + return Error{Error_InvalidArnException{Message}} +} + +func (_this Error) Is_InvalidArnException() bool { + _, ok := _this.Get_().(Error_InvalidArnException) + return ok +} + +type Error_InvalidCiphertextException struct { + Message m_Wrappers.Option +} + +func (Error_InvalidCiphertextException) isError() {} + +func (CompanionStruct_Error_) Create_InvalidCiphertextException_(Message m_Wrappers.Option) Error { + return Error{Error_InvalidCiphertextException{Message}} +} + +func (_this Error) Is_InvalidCiphertextException() bool { + _, ok := _this.Get_().(Error_InvalidCiphertextException) + return ok +} + +type Error_InvalidGrantIdException struct { + Message m_Wrappers.Option +} + +func (Error_InvalidGrantIdException) isError() {} + +func (CompanionStruct_Error_) Create_InvalidGrantIdException_(Message m_Wrappers.Option) Error { + return Error{Error_InvalidGrantIdException{Message}} +} + +func (_this Error) Is_InvalidGrantIdException() bool { + _, ok := _this.Get_().(Error_InvalidGrantIdException) + return ok +} + +type Error_InvalidGrantTokenException struct { + Message m_Wrappers.Option +} + +func (Error_InvalidGrantTokenException) isError() {} + +func (CompanionStruct_Error_) Create_InvalidGrantTokenException_(Message m_Wrappers.Option) Error { + return Error{Error_InvalidGrantTokenException{Message}} +} + +func (_this Error) Is_InvalidGrantTokenException() bool { + _, ok := _this.Get_().(Error_InvalidGrantTokenException) + return ok +} + +type Error_InvalidImportTokenException struct { + Message m_Wrappers.Option +} + +func (Error_InvalidImportTokenException) isError() {} + +func (CompanionStruct_Error_) Create_InvalidImportTokenException_(Message m_Wrappers.Option) Error { + return Error{Error_InvalidImportTokenException{Message}} +} + +func (_this Error) Is_InvalidImportTokenException() bool { + _, ok := _this.Get_().(Error_InvalidImportTokenException) + return ok +} + +type Error_InvalidKeyUsageException struct { + Message m_Wrappers.Option +} + +func (Error_InvalidKeyUsageException) isError() {} + +func (CompanionStruct_Error_) Create_InvalidKeyUsageException_(Message m_Wrappers.Option) Error { + return Error{Error_InvalidKeyUsageException{Message}} +} + +func (_this Error) Is_InvalidKeyUsageException() bool { + _, ok := _this.Get_().(Error_InvalidKeyUsageException) + return ok +} + +type Error_InvalidMarkerException struct { + Message m_Wrappers.Option +} + +func (Error_InvalidMarkerException) isError() {} + +func (CompanionStruct_Error_) Create_InvalidMarkerException_(Message m_Wrappers.Option) Error { + return Error{Error_InvalidMarkerException{Message}} +} + +func (_this Error) Is_InvalidMarkerException() bool { + _, ok := _this.Get_().(Error_InvalidMarkerException) + return ok +} + +type Error_KeyUnavailableException struct { + Message m_Wrappers.Option +} + +func (Error_KeyUnavailableException) isError() {} + +func (CompanionStruct_Error_) Create_KeyUnavailableException_(Message m_Wrappers.Option) Error { + return Error{Error_KeyUnavailableException{Message}} +} + +func (_this Error) Is_KeyUnavailableException() bool { + _, ok := _this.Get_().(Error_KeyUnavailableException) + return ok +} + +type Error_KMSInternalException struct { + Message m_Wrappers.Option +} + +func (Error_KMSInternalException) isError() {} + +func (CompanionStruct_Error_) Create_KMSInternalException_(Message m_Wrappers.Option) Error { + return Error{Error_KMSInternalException{Message}} +} + +func (_this Error) Is_KMSInternalException() bool { + _, ok := _this.Get_().(Error_KMSInternalException) + return ok +} + +type Error_KMSInvalidMacException struct { + Message m_Wrappers.Option +} + +func (Error_KMSInvalidMacException) isError() {} + +func (CompanionStruct_Error_) Create_KMSInvalidMacException_(Message m_Wrappers.Option) Error { + return Error{Error_KMSInvalidMacException{Message}} +} + +func (_this Error) Is_KMSInvalidMacException() bool { + _, ok := _this.Get_().(Error_KMSInvalidMacException) + return ok +} + +type Error_KMSInvalidSignatureException struct { + Message m_Wrappers.Option +} + +func (Error_KMSInvalidSignatureException) isError() {} + +func (CompanionStruct_Error_) Create_KMSInvalidSignatureException_(Message m_Wrappers.Option) Error { + return Error{Error_KMSInvalidSignatureException{Message}} +} + +func (_this Error) Is_KMSInvalidSignatureException() bool { + _, ok := _this.Get_().(Error_KMSInvalidSignatureException) + return ok +} + +type Error_KMSInvalidStateException struct { + Message m_Wrappers.Option +} + +func (Error_KMSInvalidStateException) isError() {} + +func (CompanionStruct_Error_) Create_KMSInvalidStateException_(Message m_Wrappers.Option) Error { + return Error{Error_KMSInvalidStateException{Message}} +} + +func (_this Error) Is_KMSInvalidStateException() bool { + _, ok := _this.Get_().(Error_KMSInvalidStateException) + return ok +} + +type Error_LimitExceededException struct { + Message m_Wrappers.Option +} + +func (Error_LimitExceededException) isError() {} + +func (CompanionStruct_Error_) Create_LimitExceededException_(Message m_Wrappers.Option) Error { + return Error{Error_LimitExceededException{Message}} +} + +func (_this Error) Is_LimitExceededException() bool { + _, ok := _this.Get_().(Error_LimitExceededException) + return ok +} + +type Error_MalformedPolicyDocumentException struct { + Message m_Wrappers.Option +} + +func (Error_MalformedPolicyDocumentException) isError() {} + +func (CompanionStruct_Error_) Create_MalformedPolicyDocumentException_(Message m_Wrappers.Option) Error { + return Error{Error_MalformedPolicyDocumentException{Message}} +} + +func (_this Error) Is_MalformedPolicyDocumentException() bool { + _, ok := _this.Get_().(Error_MalformedPolicyDocumentException) + return ok +} + +type Error_NotFoundException struct { + Message m_Wrappers.Option +} + +func (Error_NotFoundException) isError() {} + +func (CompanionStruct_Error_) Create_NotFoundException_(Message m_Wrappers.Option) Error { + return Error{Error_NotFoundException{Message}} +} + +func (_this Error) Is_NotFoundException() bool { + _, ok := _this.Get_().(Error_NotFoundException) + return ok +} + +type Error_TagException struct { + Message m_Wrappers.Option +} + +func (Error_TagException) isError() {} + +func (CompanionStruct_Error_) Create_TagException_(Message m_Wrappers.Option) Error { + return Error{Error_TagException{Message}} +} + +func (_this Error) Is_TagException() bool { + _, ok := _this.Get_().(Error_TagException) + return ok +} + +type Error_UnsupportedOperationException struct { + Message m_Wrappers.Option +} + +func (Error_UnsupportedOperationException) isError() {} + +func (CompanionStruct_Error_) Create_UnsupportedOperationException_(Message m_Wrappers.Option) Error { + return Error{Error_UnsupportedOperationException{Message}} +} + +func (_this Error) Is_UnsupportedOperationException() bool { + _, ok := _this.Get_().(Error_UnsupportedOperationException) + return ok +} + +type Error_XksKeyAlreadyInUseException struct { + Message m_Wrappers.Option +} + +func (Error_XksKeyAlreadyInUseException) isError() {} + +func (CompanionStruct_Error_) Create_XksKeyAlreadyInUseException_(Message m_Wrappers.Option) Error { + return Error{Error_XksKeyAlreadyInUseException{Message}} +} + +func (_this Error) Is_XksKeyAlreadyInUseException() bool { + _, ok := _this.Get_().(Error_XksKeyAlreadyInUseException) + return ok +} + +type Error_XksKeyInvalidConfigurationException struct { + Message m_Wrappers.Option +} + +func (Error_XksKeyInvalidConfigurationException) isError() {} + +func (CompanionStruct_Error_) Create_XksKeyInvalidConfigurationException_(Message m_Wrappers.Option) Error { + return Error{Error_XksKeyInvalidConfigurationException{Message}} +} + +func (_this Error) Is_XksKeyInvalidConfigurationException() bool { + _, ok := _this.Get_().(Error_XksKeyInvalidConfigurationException) + return ok +} + +type Error_XksKeyNotFoundException struct { + Message m_Wrappers.Option +} + +func (Error_XksKeyNotFoundException) isError() {} + +func (CompanionStruct_Error_) Create_XksKeyNotFoundException_(Message m_Wrappers.Option) Error { + return Error{Error_XksKeyNotFoundException{Message}} +} + +func (_this Error) Is_XksKeyNotFoundException() bool { + _, ok := _this.Get_().(Error_XksKeyNotFoundException) + return ok +} + +type Error_XksProxyIncorrectAuthenticationCredentialException struct { + Message m_Wrappers.Option +} + +func (Error_XksProxyIncorrectAuthenticationCredentialException) isError() {} + +func (CompanionStruct_Error_) Create_XksProxyIncorrectAuthenticationCredentialException_(Message m_Wrappers.Option) Error { + return Error{Error_XksProxyIncorrectAuthenticationCredentialException{Message}} +} + +func (_this Error) Is_XksProxyIncorrectAuthenticationCredentialException() bool { + _, ok := _this.Get_().(Error_XksProxyIncorrectAuthenticationCredentialException) + return ok +} + +type Error_XksProxyInvalidConfigurationException struct { + Message m_Wrappers.Option +} + +func (Error_XksProxyInvalidConfigurationException) isError() {} + +func (CompanionStruct_Error_) Create_XksProxyInvalidConfigurationException_(Message m_Wrappers.Option) Error { + return Error{Error_XksProxyInvalidConfigurationException{Message}} +} + +func (_this Error) Is_XksProxyInvalidConfigurationException() bool { + _, ok := _this.Get_().(Error_XksProxyInvalidConfigurationException) + return ok +} + +type Error_XksProxyInvalidResponseException struct { + Message m_Wrappers.Option +} + +func (Error_XksProxyInvalidResponseException) isError() {} + +func (CompanionStruct_Error_) Create_XksProxyInvalidResponseException_(Message m_Wrappers.Option) Error { + return Error{Error_XksProxyInvalidResponseException{Message}} +} + +func (_this Error) Is_XksProxyInvalidResponseException() bool { + _, ok := _this.Get_().(Error_XksProxyInvalidResponseException) + return ok +} + +type Error_XksProxyUriEndpointInUseException struct { + Message m_Wrappers.Option +} + +func (Error_XksProxyUriEndpointInUseException) isError() {} + +func (CompanionStruct_Error_) Create_XksProxyUriEndpointInUseException_(Message m_Wrappers.Option) Error { + return Error{Error_XksProxyUriEndpointInUseException{Message}} +} + +func (_this Error) Is_XksProxyUriEndpointInUseException() bool { + _, ok := _this.Get_().(Error_XksProxyUriEndpointInUseException) + return ok +} + +type Error_XksProxyUriInUseException struct { + Message m_Wrappers.Option +} + +func (Error_XksProxyUriInUseException) isError() {} + +func (CompanionStruct_Error_) Create_XksProxyUriInUseException_(Message m_Wrappers.Option) Error { + return Error{Error_XksProxyUriInUseException{Message}} +} + +func (_this Error) Is_XksProxyUriInUseException() bool { + _, ok := _this.Get_().(Error_XksProxyUriInUseException) + return ok +} + +type Error_XksProxyUriUnreachableException struct { + Message m_Wrappers.Option +} + +func (Error_XksProxyUriUnreachableException) isError() {} + +func (CompanionStruct_Error_) Create_XksProxyUriUnreachableException_(Message m_Wrappers.Option) Error { + return Error{Error_XksProxyUriUnreachableException{Message}} +} + +func (_this Error) Is_XksProxyUriUnreachableException() bool { + _, ok := _this.Get_().(Error_XksProxyUriUnreachableException) + return ok +} + +type Error_XksProxyVpcEndpointServiceInUseException struct { + Message m_Wrappers.Option +} + +func (Error_XksProxyVpcEndpointServiceInUseException) isError() {} + +func (CompanionStruct_Error_) Create_XksProxyVpcEndpointServiceInUseException_(Message m_Wrappers.Option) Error { + return Error{Error_XksProxyVpcEndpointServiceInUseException{Message}} +} + +func (_this Error) Is_XksProxyVpcEndpointServiceInUseException() bool { + _, ok := _this.Get_().(Error_XksProxyVpcEndpointServiceInUseException) + return ok +} + +type Error_XksProxyVpcEndpointServiceInvalidConfigurationException struct { + Message m_Wrappers.Option +} + +func (Error_XksProxyVpcEndpointServiceInvalidConfigurationException) isError() {} + +func (CompanionStruct_Error_) Create_XksProxyVpcEndpointServiceInvalidConfigurationException_(Message m_Wrappers.Option) Error { + return Error{Error_XksProxyVpcEndpointServiceInvalidConfigurationException{Message}} +} + +func (_this Error) Is_XksProxyVpcEndpointServiceInvalidConfigurationException() bool { + _, ok := _this.Get_().(Error_XksProxyVpcEndpointServiceInvalidConfigurationException) + return ok +} + +type Error_XksProxyVpcEndpointServiceNotFoundException struct { + Message m_Wrappers.Option +} + +func (Error_XksProxyVpcEndpointServiceNotFoundException) isError() {} + +func (CompanionStruct_Error_) Create_XksProxyVpcEndpointServiceNotFoundException_(Message m_Wrappers.Option) Error { + return Error{Error_XksProxyVpcEndpointServiceNotFoundException{Message}} +} + +func (_this Error) Is_XksProxyVpcEndpointServiceNotFoundException() bool { + _, ok := _this.Get_().(Error_XksProxyVpcEndpointServiceNotFoundException) + return ok +} + +type Error_Opaque struct { + Obj interface{} +} + +func (Error_Opaque) isError() {} + +func (CompanionStruct_Error_) Create_Opaque_(Obj interface{}) Error { + return Error{Error_Opaque{Obj}} +} + +func (_this Error) Is_Opaque() bool { + _, ok := _this.Get_().(Error_Opaque) + return ok +} + +type Error_OpaqueWithText struct { + Obj interface{} + ObjMessage _dafny.Sequence +} + +func (Error_OpaqueWithText) isError() {} + +func (CompanionStruct_Error_) Create_OpaqueWithText_(Obj interface{}, ObjMessage _dafny.Sequence) Error { + return Error{Error_OpaqueWithText{Obj, ObjMessage}} +} + +func (_this Error) Is_OpaqueWithText() bool { + _, ok := _this.Get_().(Error_OpaqueWithText) + return ok +} + +func (CompanionStruct_Error_) Default() Error { + return Companion_Error_.Create_AlreadyExistsException_(m_Wrappers.Companion_Option_.Default()) +} + +func (_this Error) Dtor_message() m_Wrappers.Option { + switch data := _this.Get_().(type) { + case Error_AlreadyExistsException: + return data.Message + case Error_CloudHsmClusterInUseException: + return data.Message + case Error_CloudHsmClusterInvalidConfigurationException: + return data.Message + case Error_CloudHsmClusterNotActiveException: + return data.Message + case Error_CloudHsmClusterNotFoundException: + return data.Message + case Error_CloudHsmClusterNotRelatedException: + return data.Message + case Error_ConflictException: + return data.Message + case Error_CustomKeyStoreHasCMKsException: + return data.Message + case Error_CustomKeyStoreInvalidStateException: + return data.Message + case Error_CustomKeyStoreNameInUseException: + return data.Message + case Error_CustomKeyStoreNotFoundException: + return data.Message + case Error_DependencyTimeoutException: + return data.Message + case Error_DisabledException: + return data.Message + case Error_DryRunOperationException: + return data.Message + case Error_ExpiredImportTokenException: + return data.Message + case Error_IncorrectKeyException: + return data.Message + case Error_IncorrectKeyMaterialException: + return data.Message + case Error_IncorrectTrustAnchorException: + return data.Message + case Error_InvalidAliasNameException: + return data.Message + case Error_InvalidArnException: + return data.Message + case Error_InvalidCiphertextException: + return data.Message + case Error_InvalidGrantIdException: + return data.Message + case Error_InvalidGrantTokenException: + return data.Message + case Error_InvalidImportTokenException: + return data.Message + case Error_InvalidKeyUsageException: + return data.Message + case Error_InvalidMarkerException: + return data.Message + case Error_KeyUnavailableException: + return data.Message + case Error_KMSInternalException: + return data.Message + case Error_KMSInvalidMacException: + return data.Message + case Error_KMSInvalidSignatureException: + return data.Message + case Error_KMSInvalidStateException: + return data.Message + case Error_LimitExceededException: + return data.Message + case Error_MalformedPolicyDocumentException: + return data.Message + case Error_NotFoundException: + return data.Message + case Error_TagException: + return data.Message + case Error_UnsupportedOperationException: + return data.Message + case Error_XksKeyAlreadyInUseException: + return data.Message + case Error_XksKeyInvalidConfigurationException: + return data.Message + case Error_XksKeyNotFoundException: + return data.Message + case Error_XksProxyIncorrectAuthenticationCredentialException: + return data.Message + case Error_XksProxyInvalidConfigurationException: + return data.Message + case Error_XksProxyInvalidResponseException: + return data.Message + case Error_XksProxyUriEndpointInUseException: + return data.Message + case Error_XksProxyUriInUseException: + return data.Message + case Error_XksProxyUriUnreachableException: + return data.Message + case Error_XksProxyVpcEndpointServiceInUseException: + return data.Message + case Error_XksProxyVpcEndpointServiceInvalidConfigurationException: + return data.Message + default: + return data.(Error_XksProxyVpcEndpointServiceNotFoundException).Message + } +} + +func (_this Error) Dtor_obj() interface{} { + switch data := _this.Get_().(type) { + case Error_Opaque: + return data.Obj + default: + return data.(Error_OpaqueWithText).Obj + } +} + +func (_this Error) Dtor_objMessage() _dafny.Sequence { + return _this.Get_().(Error_OpaqueWithText).ObjMessage +} + +func (_this Error) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case Error_AlreadyExistsException: + { + return "ComAmazonawsKmsTypes.Error.AlreadyExistsException" + "(" + _dafny.String(data.Message) + ")" + } + case Error_CloudHsmClusterInUseException: + { + return "ComAmazonawsKmsTypes.Error.CloudHsmClusterInUseException" + "(" + _dafny.String(data.Message) + ")" + } + case Error_CloudHsmClusterInvalidConfigurationException: + { + return "ComAmazonawsKmsTypes.Error.CloudHsmClusterInvalidConfigurationException" + "(" + _dafny.String(data.Message) + ")" + } + case Error_CloudHsmClusterNotActiveException: + { + return "ComAmazonawsKmsTypes.Error.CloudHsmClusterNotActiveException" + "(" + _dafny.String(data.Message) + ")" + } + case Error_CloudHsmClusterNotFoundException: + { + return "ComAmazonawsKmsTypes.Error.CloudHsmClusterNotFoundException" + "(" + _dafny.String(data.Message) + ")" + } + case Error_CloudHsmClusterNotRelatedException: + { + return "ComAmazonawsKmsTypes.Error.CloudHsmClusterNotRelatedException" + "(" + _dafny.String(data.Message) + ")" + } + case Error_ConflictException: + { + return "ComAmazonawsKmsTypes.Error.ConflictException" + "(" + _dafny.String(data.Message) + ")" + } + case Error_CustomKeyStoreHasCMKsException: + { + return "ComAmazonawsKmsTypes.Error.CustomKeyStoreHasCMKsException" + "(" + _dafny.String(data.Message) + ")" + } + case Error_CustomKeyStoreInvalidStateException: + { + return "ComAmazonawsKmsTypes.Error.CustomKeyStoreInvalidStateException" + "(" + _dafny.String(data.Message) + ")" + } + case Error_CustomKeyStoreNameInUseException: + { + return "ComAmazonawsKmsTypes.Error.CustomKeyStoreNameInUseException" + "(" + _dafny.String(data.Message) + ")" + } + case Error_CustomKeyStoreNotFoundException: + { + return "ComAmazonawsKmsTypes.Error.CustomKeyStoreNotFoundException" + "(" + _dafny.String(data.Message) + ")" + } + case Error_DependencyTimeoutException: + { + return "ComAmazonawsKmsTypes.Error.DependencyTimeoutException" + "(" + _dafny.String(data.Message) + ")" + } + case Error_DisabledException: + { + return "ComAmazonawsKmsTypes.Error.DisabledException" + "(" + _dafny.String(data.Message) + ")" + } + case Error_DryRunOperationException: + { + return "ComAmazonawsKmsTypes.Error.DryRunOperationException" + "(" + _dafny.String(data.Message) + ")" + } + case Error_ExpiredImportTokenException: + { + return "ComAmazonawsKmsTypes.Error.ExpiredImportTokenException" + "(" + _dafny.String(data.Message) + ")" + } + case Error_IncorrectKeyException: + { + return "ComAmazonawsKmsTypes.Error.IncorrectKeyException" + "(" + _dafny.String(data.Message) + ")" + } + case Error_IncorrectKeyMaterialException: + { + return "ComAmazonawsKmsTypes.Error.IncorrectKeyMaterialException" + "(" + _dafny.String(data.Message) + ")" + } + case Error_IncorrectTrustAnchorException: + { + return "ComAmazonawsKmsTypes.Error.IncorrectTrustAnchorException" + "(" + _dafny.String(data.Message) + ")" + } + case Error_InvalidAliasNameException: + { + return "ComAmazonawsKmsTypes.Error.InvalidAliasNameException" + "(" + _dafny.String(data.Message) + ")" + } + case Error_InvalidArnException: + { + return "ComAmazonawsKmsTypes.Error.InvalidArnException" + "(" + _dafny.String(data.Message) + ")" + } + case Error_InvalidCiphertextException: + { + return "ComAmazonawsKmsTypes.Error.InvalidCiphertextException" + "(" + _dafny.String(data.Message) + ")" + } + case Error_InvalidGrantIdException: + { + return "ComAmazonawsKmsTypes.Error.InvalidGrantIdException" + "(" + _dafny.String(data.Message) + ")" + } + case Error_InvalidGrantTokenException: + { + return "ComAmazonawsKmsTypes.Error.InvalidGrantTokenException" + "(" + _dafny.String(data.Message) + ")" + } + case Error_InvalidImportTokenException: + { + return "ComAmazonawsKmsTypes.Error.InvalidImportTokenException" + "(" + _dafny.String(data.Message) + ")" + } + case Error_InvalidKeyUsageException: + { + return "ComAmazonawsKmsTypes.Error.InvalidKeyUsageException" + "(" + _dafny.String(data.Message) + ")" + } + case Error_InvalidMarkerException: + { + return "ComAmazonawsKmsTypes.Error.InvalidMarkerException" + "(" + _dafny.String(data.Message) + ")" + } + case Error_KeyUnavailableException: + { + return "ComAmazonawsKmsTypes.Error.KeyUnavailableException" + "(" + _dafny.String(data.Message) + ")" + } + case Error_KMSInternalException: + { + return "ComAmazonawsKmsTypes.Error.KMSInternalException" + "(" + _dafny.String(data.Message) + ")" + } + case Error_KMSInvalidMacException: + { + return "ComAmazonawsKmsTypes.Error.KMSInvalidMacException" + "(" + _dafny.String(data.Message) + ")" + } + case Error_KMSInvalidSignatureException: + { + return "ComAmazonawsKmsTypes.Error.KMSInvalidSignatureException" + "(" + _dafny.String(data.Message) + ")" + } + case Error_KMSInvalidStateException: + { + return "ComAmazonawsKmsTypes.Error.KMSInvalidStateException" + "(" + _dafny.String(data.Message) + ")" + } + case Error_LimitExceededException: + { + return "ComAmazonawsKmsTypes.Error.LimitExceededException" + "(" + _dafny.String(data.Message) + ")" + } + case Error_MalformedPolicyDocumentException: + { + return "ComAmazonawsKmsTypes.Error.MalformedPolicyDocumentException" + "(" + _dafny.String(data.Message) + ")" + } + case Error_NotFoundException: + { + return "ComAmazonawsKmsTypes.Error.NotFoundException" + "(" + _dafny.String(data.Message) + ")" + } + case Error_TagException: + { + return "ComAmazonawsKmsTypes.Error.TagException" + "(" + _dafny.String(data.Message) + ")" + } + case Error_UnsupportedOperationException: + { + return "ComAmazonawsKmsTypes.Error.UnsupportedOperationException" + "(" + _dafny.String(data.Message) + ")" + } + case Error_XksKeyAlreadyInUseException: + { + return "ComAmazonawsKmsTypes.Error.XksKeyAlreadyInUseException" + "(" + _dafny.String(data.Message) + ")" + } + case Error_XksKeyInvalidConfigurationException: + { + return "ComAmazonawsKmsTypes.Error.XksKeyInvalidConfigurationException" + "(" + _dafny.String(data.Message) + ")" + } + case Error_XksKeyNotFoundException: + { + return "ComAmazonawsKmsTypes.Error.XksKeyNotFoundException" + "(" + _dafny.String(data.Message) + ")" + } + case Error_XksProxyIncorrectAuthenticationCredentialException: + { + return "ComAmazonawsKmsTypes.Error.XksProxyIncorrectAuthenticationCredentialException" + "(" + _dafny.String(data.Message) + ")" + } + case Error_XksProxyInvalidConfigurationException: + { + return "ComAmazonawsKmsTypes.Error.XksProxyInvalidConfigurationException" + "(" + _dafny.String(data.Message) + ")" + } + case Error_XksProxyInvalidResponseException: + { + return "ComAmazonawsKmsTypes.Error.XksProxyInvalidResponseException" + "(" + _dafny.String(data.Message) + ")" + } + case Error_XksProxyUriEndpointInUseException: + { + return "ComAmazonawsKmsTypes.Error.XksProxyUriEndpointInUseException" + "(" + _dafny.String(data.Message) + ")" + } + case Error_XksProxyUriInUseException: + { + return "ComAmazonawsKmsTypes.Error.XksProxyUriInUseException" + "(" + _dafny.String(data.Message) + ")" + } + case Error_XksProxyUriUnreachableException: + { + return "ComAmazonawsKmsTypes.Error.XksProxyUriUnreachableException" + "(" + _dafny.String(data.Message) + ")" + } + case Error_XksProxyVpcEndpointServiceInUseException: + { + return "ComAmazonawsKmsTypes.Error.XksProxyVpcEndpointServiceInUseException" + "(" + _dafny.String(data.Message) + ")" + } + case Error_XksProxyVpcEndpointServiceInvalidConfigurationException: + { + return "ComAmazonawsKmsTypes.Error.XksProxyVpcEndpointServiceInvalidConfigurationException" + "(" + _dafny.String(data.Message) + ")" + } + case Error_XksProxyVpcEndpointServiceNotFoundException: + { + return "ComAmazonawsKmsTypes.Error.XksProxyVpcEndpointServiceNotFoundException" + "(" + _dafny.String(data.Message) + ")" + } + case Error_Opaque: + { + return "ComAmazonawsKmsTypes.Error.Opaque" + "(" + _dafny.String(data.Obj) + ")" + } + case Error_OpaqueWithText: + { + return "ComAmazonawsKmsTypes.Error.OpaqueWithText" + "(" + _dafny.String(data.Obj) + ", " + _dafny.String(data.ObjMessage) + ")" + } + default: + { + return "" + } + } +} + +func (_this Error) Equals(other Error) bool { + switch data1 := _this.Get_().(type) { + case Error_AlreadyExistsException: + { + data2, ok := other.Get_().(Error_AlreadyExistsException) + return ok && data1.Message.Equals(data2.Message) + } + case Error_CloudHsmClusterInUseException: + { + data2, ok := other.Get_().(Error_CloudHsmClusterInUseException) + return ok && data1.Message.Equals(data2.Message) + } + case Error_CloudHsmClusterInvalidConfigurationException: + { + data2, ok := other.Get_().(Error_CloudHsmClusterInvalidConfigurationException) + return ok && data1.Message.Equals(data2.Message) + } + case Error_CloudHsmClusterNotActiveException: + { + data2, ok := other.Get_().(Error_CloudHsmClusterNotActiveException) + return ok && data1.Message.Equals(data2.Message) + } + case Error_CloudHsmClusterNotFoundException: + { + data2, ok := other.Get_().(Error_CloudHsmClusterNotFoundException) + return ok && data1.Message.Equals(data2.Message) + } + case Error_CloudHsmClusterNotRelatedException: + { + data2, ok := other.Get_().(Error_CloudHsmClusterNotRelatedException) + return ok && data1.Message.Equals(data2.Message) + } + case Error_ConflictException: + { + data2, ok := other.Get_().(Error_ConflictException) + return ok && data1.Message.Equals(data2.Message) + } + case Error_CustomKeyStoreHasCMKsException: + { + data2, ok := other.Get_().(Error_CustomKeyStoreHasCMKsException) + return ok && data1.Message.Equals(data2.Message) + } + case Error_CustomKeyStoreInvalidStateException: + { + data2, ok := other.Get_().(Error_CustomKeyStoreInvalidStateException) + return ok && data1.Message.Equals(data2.Message) + } + case Error_CustomKeyStoreNameInUseException: + { + data2, ok := other.Get_().(Error_CustomKeyStoreNameInUseException) + return ok && data1.Message.Equals(data2.Message) + } + case Error_CustomKeyStoreNotFoundException: + { + data2, ok := other.Get_().(Error_CustomKeyStoreNotFoundException) + return ok && data1.Message.Equals(data2.Message) + } + case Error_DependencyTimeoutException: + { + data2, ok := other.Get_().(Error_DependencyTimeoutException) + return ok && data1.Message.Equals(data2.Message) + } + case Error_DisabledException: + { + data2, ok := other.Get_().(Error_DisabledException) + return ok && data1.Message.Equals(data2.Message) + } + case Error_DryRunOperationException: + { + data2, ok := other.Get_().(Error_DryRunOperationException) + return ok && data1.Message.Equals(data2.Message) + } + case Error_ExpiredImportTokenException: + { + data2, ok := other.Get_().(Error_ExpiredImportTokenException) + return ok && data1.Message.Equals(data2.Message) + } + case Error_IncorrectKeyException: + { + data2, ok := other.Get_().(Error_IncorrectKeyException) + return ok && data1.Message.Equals(data2.Message) + } + case Error_IncorrectKeyMaterialException: + { + data2, ok := other.Get_().(Error_IncorrectKeyMaterialException) + return ok && data1.Message.Equals(data2.Message) + } + case Error_IncorrectTrustAnchorException: + { + data2, ok := other.Get_().(Error_IncorrectTrustAnchorException) + return ok && data1.Message.Equals(data2.Message) + } + case Error_InvalidAliasNameException: + { + data2, ok := other.Get_().(Error_InvalidAliasNameException) + return ok && data1.Message.Equals(data2.Message) + } + case Error_InvalidArnException: + { + data2, ok := other.Get_().(Error_InvalidArnException) + return ok && data1.Message.Equals(data2.Message) + } + case Error_InvalidCiphertextException: + { + data2, ok := other.Get_().(Error_InvalidCiphertextException) + return ok && data1.Message.Equals(data2.Message) + } + case Error_InvalidGrantIdException: + { + data2, ok := other.Get_().(Error_InvalidGrantIdException) + return ok && data1.Message.Equals(data2.Message) + } + case Error_InvalidGrantTokenException: + { + data2, ok := other.Get_().(Error_InvalidGrantTokenException) + return ok && data1.Message.Equals(data2.Message) + } + case Error_InvalidImportTokenException: + { + data2, ok := other.Get_().(Error_InvalidImportTokenException) + return ok && data1.Message.Equals(data2.Message) + } + case Error_InvalidKeyUsageException: + { + data2, ok := other.Get_().(Error_InvalidKeyUsageException) + return ok && data1.Message.Equals(data2.Message) + } + case Error_InvalidMarkerException: + { + data2, ok := other.Get_().(Error_InvalidMarkerException) + return ok && data1.Message.Equals(data2.Message) + } + case Error_KeyUnavailableException: + { + data2, ok := other.Get_().(Error_KeyUnavailableException) + return ok && data1.Message.Equals(data2.Message) + } + case Error_KMSInternalException: + { + data2, ok := other.Get_().(Error_KMSInternalException) + return ok && data1.Message.Equals(data2.Message) + } + case Error_KMSInvalidMacException: + { + data2, ok := other.Get_().(Error_KMSInvalidMacException) + return ok && data1.Message.Equals(data2.Message) + } + case Error_KMSInvalidSignatureException: + { + data2, ok := other.Get_().(Error_KMSInvalidSignatureException) + return ok && data1.Message.Equals(data2.Message) + } + case Error_KMSInvalidStateException: + { + data2, ok := other.Get_().(Error_KMSInvalidStateException) + return ok && data1.Message.Equals(data2.Message) + } + case Error_LimitExceededException: + { + data2, ok := other.Get_().(Error_LimitExceededException) + return ok && data1.Message.Equals(data2.Message) + } + case Error_MalformedPolicyDocumentException: + { + data2, ok := other.Get_().(Error_MalformedPolicyDocumentException) + return ok && data1.Message.Equals(data2.Message) + } + case Error_NotFoundException: + { + data2, ok := other.Get_().(Error_NotFoundException) + return ok && data1.Message.Equals(data2.Message) + } + case Error_TagException: + { + data2, ok := other.Get_().(Error_TagException) + return ok && data1.Message.Equals(data2.Message) + } + case Error_UnsupportedOperationException: + { + data2, ok := other.Get_().(Error_UnsupportedOperationException) + return ok && data1.Message.Equals(data2.Message) + } + case Error_XksKeyAlreadyInUseException: + { + data2, ok := other.Get_().(Error_XksKeyAlreadyInUseException) + return ok && data1.Message.Equals(data2.Message) + } + case Error_XksKeyInvalidConfigurationException: + { + data2, ok := other.Get_().(Error_XksKeyInvalidConfigurationException) + return ok && data1.Message.Equals(data2.Message) + } + case Error_XksKeyNotFoundException: + { + data2, ok := other.Get_().(Error_XksKeyNotFoundException) + return ok && data1.Message.Equals(data2.Message) + } + case Error_XksProxyIncorrectAuthenticationCredentialException: + { + data2, ok := other.Get_().(Error_XksProxyIncorrectAuthenticationCredentialException) + return ok && data1.Message.Equals(data2.Message) + } + case Error_XksProxyInvalidConfigurationException: + { + data2, ok := other.Get_().(Error_XksProxyInvalidConfigurationException) + return ok && data1.Message.Equals(data2.Message) + } + case Error_XksProxyInvalidResponseException: + { + data2, ok := other.Get_().(Error_XksProxyInvalidResponseException) + return ok && data1.Message.Equals(data2.Message) + } + case Error_XksProxyUriEndpointInUseException: + { + data2, ok := other.Get_().(Error_XksProxyUriEndpointInUseException) + return ok && data1.Message.Equals(data2.Message) + } + case Error_XksProxyUriInUseException: + { + data2, ok := other.Get_().(Error_XksProxyUriInUseException) + return ok && data1.Message.Equals(data2.Message) + } + case Error_XksProxyUriUnreachableException: + { + data2, ok := other.Get_().(Error_XksProxyUriUnreachableException) + return ok && data1.Message.Equals(data2.Message) + } + case Error_XksProxyVpcEndpointServiceInUseException: + { + data2, ok := other.Get_().(Error_XksProxyVpcEndpointServiceInUseException) + return ok && data1.Message.Equals(data2.Message) + } + case Error_XksProxyVpcEndpointServiceInvalidConfigurationException: + { + data2, ok := other.Get_().(Error_XksProxyVpcEndpointServiceInvalidConfigurationException) + return ok && data1.Message.Equals(data2.Message) + } + case Error_XksProxyVpcEndpointServiceNotFoundException: + { + data2, ok := other.Get_().(Error_XksProxyVpcEndpointServiceNotFoundException) + return ok && data1.Message.Equals(data2.Message) + } + case Error_Opaque: + { + data2, ok := other.Get_().(Error_Opaque) + return ok && _dafny.AreEqual(data1.Obj, data2.Obj) + } + case Error_OpaqueWithText: + { + data2, ok := other.Get_().(Error_OpaqueWithText) + return ok && _dafny.AreEqual(data1.Obj, data2.Obj) && data1.ObjMessage.Equals(data2.ObjMessage) + } + default: + { + return false // unexpected + } + } +} + +func (_this Error) EqualsGeneric(other interface{}) bool { + typed, ok := other.(Error) + return ok && _this.Equals(typed) +} + +func Type_Error_() _dafny.TypeDescriptor { + return type_Error_{} +} + +type type_Error_ struct { +} + +func (_this type_Error_) Default() interface{} { + return Companion_Error_.Default() +} + +func (_this type_Error_) String() string { + return "ComAmazonawsKmsTypes.Error" +} +func (_this Error) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = Error{} + +// End of datatype Error + +// Definition of class OpaqueError +type OpaqueError struct { +} + +func New_OpaqueError_() *OpaqueError { + _this := OpaqueError{} + + return &_this +} + +type CompanionStruct_OpaqueError_ struct { +} + +var Companion_OpaqueError_ = CompanionStruct_OpaqueError_{} + +func (*OpaqueError) String() string { + return "ComAmazonawsKmsTypes.OpaqueError" +} + +// End of class OpaqueError + +func Type_OpaqueError_() _dafny.TypeDescriptor { + return type_OpaqueError_{} +} + +type type_OpaqueError_ struct { +} + +func (_this type_OpaqueError_) Default() interface{} { + return Companion_Error_.Default() +} + +func (_this type_OpaqueError_) String() string { + return "ComAmazonawsKmsTypes.OpaqueError" +} +func (_this *CompanionStruct_OpaqueError_) Is_(__source Error) bool { + var _7_e Error = (__source) + _ = _7_e + return ((_7_e).Is_Opaque()) || ((_7_e).Is_OpaqueWithText()) +} + +// Definition of class DummySubsetType +type DummySubsetType struct { +} + +func New_DummySubsetType_() *DummySubsetType { + _this := DummySubsetType{} + + return &_this +} + +type CompanionStruct_DummySubsetType_ struct { +} + +var Companion_DummySubsetType_ = CompanionStruct_DummySubsetType_{} + +func (*DummySubsetType) String() string { + return "ComAmazonawsKmsTypes.DummySubsetType" +} +func (_this *CompanionStruct_DummySubsetType_) Witness() _dafny.Int { + return _dafny.One +} + +// End of class DummySubsetType + +func Type_DummySubsetType_() _dafny.TypeDescriptor { + return type_DummySubsetType_{} +} + +type type_DummySubsetType_ struct { +} + +func (_this type_DummySubsetType_) Default() interface{} { + return Companion_DummySubsetType_.Witness() +} + +func (_this type_DummySubsetType_) String() string { + return "ComAmazonawsKmsTypes.DummySubsetType" +} +func (_this *CompanionStruct_DummySubsetType_) Is_(__source _dafny.Int) bool { + var _8_x _dafny.Int = (__source) + _ = _8_x + return Companion_Default___.IsDummySubsetType(_8_x) +} diff --git a/customer-preview/kms/Com_Amazonaws_Kms/Com_Amazonaws_Kms.go b/customer-preview/kms/Com_Amazonaws_Kms/Com_Amazonaws_Kms.go new file mode 100644 index 000000000..7d8dc3c4c --- /dev/null +++ b/customer-preview/kms/Com_Amazonaws_Kms/Com_Amazonaws_Kms.go @@ -0,0 +1,319 @@ +// Package Com_Amazonaws_Kms +// Dafny module Com_Amazonaws_Kms compiled into Go + +package Com_Amazonaws_Kms + +import ( + os "os" + + m_ComAmazonawsKmsTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/ComAmazonawsKmsTypes" + m_Actions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Actions" + m_Base64 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64" + m_Base64Lemmas "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64Lemmas" + m_BoundedInts "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/BoundedInts" + m_DivInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternals" + m_DivInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternalsNonlinear" + m_DivMod "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivMod" + m_FileIO "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FileIO" + m_FloatCompare "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FloatCompare" + m_Functions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Functions" + m_GeneralInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GeneralInternals" + m_GetOpt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GetOpt" + m_HexStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/HexStrings" + m_JSON_API "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/JSON_API" + m_JSON_ConcreteSyntax_Spec "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/JSON_ConcreteSyntax_Spec" + m_JSON_ConcreteSyntax_SpecProperties "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/JSON_ConcreteSyntax_SpecProperties" + m_JSON_Deserializer "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/JSON_Deserializer" + m_JSON_Deserializer_ByteStrConversion "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/JSON_Deserializer_ByteStrConversion" + m_JSON_Deserializer_Uint16StrConversion "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/JSON_Deserializer_Uint16StrConversion" + m_JSON_Errors "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/JSON_Errors" + m_JSON_Grammar "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/JSON_Grammar" + m_JSON_Serializer "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/JSON_Serializer" + m_JSON_Serializer_ByteStrConversion "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/JSON_Serializer_ByteStrConversion" + m_JSON_Spec "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/JSON_Spec" + m_JSON_Utils_Cursors "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/JSON_Utils_Cursors" + m_JSON_Utils_Lexers_Core "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/JSON_Utils_Lexers_Core" + m_JSON_Utils_Lexers_Strings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/JSON_Utils_Lexers_Strings" + m_JSON_Utils_Parsers "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/JSON_Utils_Parsers" + m_JSON_Utils_Seq "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/JSON_Utils_Seq" + m_JSON_Utils_Str "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/JSON_Utils_Str" + m_JSON_Utils_Str_CharStrConversion "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/JSON_Utils_Str_CharStrConversion" + m_JSON_Utils_Str_CharStrEscaping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/JSON_Utils_Str_CharStrEscaping" + m_JSON_Utils_Vectors "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/JSON_Utils_Vectors" + m_JSON_Utils_Views_Core "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/JSON_Utils_Views_Core" + m_JSON_Utils_Views_Writers "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/JSON_Utils_Views_Writers" + m_JSON_Values "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/JSON_Values" + m_JSON_ZeroCopy_API "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/JSON_ZeroCopy_API" + m_JSON_ZeroCopy_Deserializer "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/JSON_ZeroCopy_Deserializer" + m_JSON_ZeroCopy_Deserializer_API "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/JSON_ZeroCopy_Deserializer_API" + m_JSON_ZeroCopy_Deserializer_ArrayParams "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/JSON_ZeroCopy_Deserializer_ArrayParams" + m_JSON_ZeroCopy_Deserializer_Arrays "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/JSON_ZeroCopy_Deserializer_Arrays" + m_JSON_ZeroCopy_Deserializer_Constants "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/JSON_ZeroCopy_Deserializer_Constants" + m_JSON_ZeroCopy_Deserializer_Core "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/JSON_ZeroCopy_Deserializer_Core" + m_JSON_ZeroCopy_Deserializer_Numbers "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/JSON_ZeroCopy_Deserializer_Numbers" + m_JSON_ZeroCopy_Deserializer_ObjectParams "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/JSON_ZeroCopy_Deserializer_ObjectParams" + m_JSON_ZeroCopy_Deserializer_Objects "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/JSON_ZeroCopy_Deserializer_Objects" + m_JSON_ZeroCopy_Deserializer_Strings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/JSON_ZeroCopy_Deserializer_Strings" + m_JSON_ZeroCopy_Deserializer_Values "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/JSON_ZeroCopy_Deserializer_Values" + m_JSON_ZeroCopy_Serializer "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/JSON_ZeroCopy_Serializer" + m_Logarithm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Logarithm" + m__Math "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Math_" + m_ModInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternals" + m_ModInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternalsNonlinear" + m_Mul "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Mul" + m_MulInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternals" + m_MulInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternalsNonlinear" + m_Power "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Power" + m_Relations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Relations" + m_Seq "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq" + m_Seq_MergeSort "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq_MergeSort" + m_Sorting "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Sorting" + m_StandardLibrary "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary" + m_StandardLibraryInterop "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibraryInterop" + m_StandardLibrary_Sequence "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_Sequence" + m_StandardLibrary_String "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_String" + m_StandardLibrary_UInt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_UInt" + m_Streams "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Streams" + m_UnicodeStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UnicodeStrings" + m__Unicode "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Unicode_" + m_Utf16EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf16EncodingForm" + m_Utf8EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf8EncodingForm" + m_Wrappers "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers" + m__System "github.com/dafny-lang/DafnyRuntimeGo/v4/System_" + _dafny "github.com/dafny-lang/DafnyRuntimeGo/v4/dafny" +) + +var _ = os.Args +var _ _dafny.Dummy__ +var _ m__System.Dummy__ +var _ m_Wrappers.Dummy__ +var _ m_Relations.Dummy__ +var _ m_Seq_MergeSort.Dummy__ +var _ m__Math.Dummy__ +var _ m_Seq.Dummy__ +var _ m_BoundedInts.Dummy__ +var _ m__Unicode.Dummy__ +var _ m_Functions.Dummy__ +var _ m_Utf8EncodingForm.Dummy__ +var _ m_Utf16EncodingForm.Dummy__ +var _ m_UnicodeStrings.Dummy__ +var _ m_FileIO.Dummy__ +var _ m_GeneralInternals.Dummy__ +var _ m_MulInternalsNonlinear.Dummy__ +var _ m_MulInternals.Dummy__ +var _ m_Mul.Dummy__ +var _ m_ModInternalsNonlinear.Dummy__ +var _ m_DivInternalsNonlinear.Dummy__ +var _ m_ModInternals.Dummy__ +var _ m_DivInternals.Dummy__ +var _ m_DivMod.Dummy__ +var _ m_Power.Dummy__ +var _ m_Logarithm.Dummy__ +var _ m_StandardLibraryInterop.Dummy__ +var _ m_StandardLibrary_UInt.Dummy__ +var _ m_StandardLibrary_Sequence.Dummy__ +var _ m_StandardLibrary_String.Dummy__ +var _ m_StandardLibrary.Dummy__ +var _ m_Streams.Dummy__ +var _ m_Sorting.Dummy__ +var _ m_HexStrings.Dummy__ +var _ m_GetOpt.Dummy__ +var _ m_FloatCompare.Dummy__ +var _ m_Base64.Dummy__ +var _ m_Base64Lemmas.Dummy__ +var _ m_Actions.Dummy__ +var _ m_ComAmazonawsKmsTypes.Dummy__ +var _ m_JSON_Utils_Views_Core.Dummy__ +var _ m_JSON_Utils_Views_Writers.Dummy__ +var _ m_JSON_Utils_Lexers_Core.Dummy__ +var _ m_JSON_Utils_Lexers_Strings.Dummy__ +var _ m_JSON_Utils_Cursors.Dummy__ +var _ m_JSON_Utils_Parsers.Dummy__ +var _ m_JSON_Utils_Str_CharStrConversion.Dummy__ +var _ m_JSON_Utils_Str_CharStrEscaping.Dummy__ +var _ m_JSON_Utils_Str.Dummy__ +var _ m_JSON_Utils_Seq.Dummy__ +var _ m_JSON_Utils_Vectors.Dummy__ +var _ m_JSON_Errors.Dummy__ +var _ m_JSON_Values.Dummy__ +var _ m_JSON_Spec.Dummy__ +var _ m_JSON_Grammar.Dummy__ +var _ m_JSON_Serializer_ByteStrConversion.Dummy__ +var _ m_JSON_Serializer.Dummy__ +var _ m_JSON_Deserializer_Uint16StrConversion.Dummy__ +var _ m_JSON_Deserializer_ByteStrConversion.Dummy__ +var _ m_JSON_Deserializer.Dummy__ +var _ m_JSON_ConcreteSyntax_Spec.Dummy__ +var _ m_JSON_ConcreteSyntax_SpecProperties.Dummy__ +var _ m_JSON_ZeroCopy_Serializer.Dummy__ +var _ m_JSON_ZeroCopy_Deserializer_Core.Dummy__ +var _ m_JSON_ZeroCopy_Deserializer_Strings.Dummy__ +var _ m_JSON_ZeroCopy_Deserializer_Numbers.Dummy__ +var _ m_JSON_ZeroCopy_Deserializer_ObjectParams.Dummy__ +var _ m_JSON_ZeroCopy_Deserializer_Objects.Dummy__ +var _ m_JSON_ZeroCopy_Deserializer_ArrayParams.Dummy__ +var _ m_JSON_ZeroCopy_Deserializer_Arrays.Dummy__ +var _ m_JSON_ZeroCopy_Deserializer_Constants.Dummy__ +var _ m_JSON_ZeroCopy_Deserializer_Values.Dummy__ +var _ m_JSON_ZeroCopy_Deserializer_API.Dummy__ +var _ m_JSON_ZeroCopy_Deserializer.Dummy__ +var _ m_JSON_ZeroCopy_API.Dummy__ +var _ m_JSON_API.Dummy__ + +type Dummy__ struct{} + +// Definition of class Default__ +type Default__ struct { + dummy byte +} + +func New_Default___() *Default__ { + _this := Default__{} + + return &_this +} + +type CompanionStruct_Default___ struct { +} + +var Companion_Default___ = CompanionStruct_Default___{} + +func (_this *Default__) Equals(other *Default__) bool { + return _this == other +} + +func (_this *Default__) EqualsGeneric(x interface{}) bool { + other, ok := x.(*Default__) + return ok && _this.Equals(other) +} + +func (*Default__) String() string { + return "Com_Amazonaws_Kms.Default__" +} +func (_this *Default__) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = &Default__{} + +func (_static *CompanionStruct_Default___) DefaultKMSClientConfigType() KMSClientConfigType { + return Companion_KMSClientConfigType_.Create_KMSClientConfigType_() +} +func (_static *CompanionStruct_Default___) DafnyUserAgentSuffix(runtime _dafny.Sequence) _dafny.Sequence { + var _0_version _dafny.Sequence = _dafny.SeqOfString("1.0.1") + _ = _0_version + return _dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.SeqOfString("AwsCryptographicMPL/"), runtime), _dafny.SeqOfString("/")), _0_version) +} +func (_static *CompanionStruct_Default___) CreateSuccessOfClient(client m_ComAmazonawsKmsTypes.IKMSClient) m_Wrappers.Result { + return m_Wrappers.Companion_Result_.Create_Success_(client) +} +func (_static *CompanionStruct_Default___) CreateFailureOfError(error_ m_ComAmazonawsKmsTypes.Error) m_Wrappers.Result { + return m_Wrappers.Companion_Result_.Create_Failure_(error_) +} + +// End of class Default__ + +// Definition of datatype KMSClientConfigType +type KMSClientConfigType struct { + Data_KMSClientConfigType_ +} + +func (_this KMSClientConfigType) Get_() Data_KMSClientConfigType_ { + return _this.Data_KMSClientConfigType_ +} + +type Data_KMSClientConfigType_ interface { + isKMSClientConfigType() +} + +type CompanionStruct_KMSClientConfigType_ struct { +} + +var Companion_KMSClientConfigType_ = CompanionStruct_KMSClientConfigType_{} + +type KMSClientConfigType_KMSClientConfigType struct { +} + +func (KMSClientConfigType_KMSClientConfigType) isKMSClientConfigType() {} + +func (CompanionStruct_KMSClientConfigType_) Create_KMSClientConfigType_() KMSClientConfigType { + return KMSClientConfigType{KMSClientConfigType_KMSClientConfigType{}} +} + +func (_this KMSClientConfigType) Is_KMSClientConfigType() bool { + _, ok := _this.Get_().(KMSClientConfigType_KMSClientConfigType) + return ok +} + +func (CompanionStruct_KMSClientConfigType_) Default() KMSClientConfigType { + return Companion_KMSClientConfigType_.Create_KMSClientConfigType_() +} + +func (_ CompanionStruct_KMSClientConfigType_) AllSingletonConstructors() _dafny.Iterator { + i := -1 + return func() (interface{}, bool) { + i++ + switch i { + case 0: + return Companion_KMSClientConfigType_.Create_KMSClientConfigType_(), true + default: + return KMSClientConfigType{}, false + } + } +} + +func (_this KMSClientConfigType) String() string { + switch _this.Get_().(type) { + case nil: + return "null" + case KMSClientConfigType_KMSClientConfigType: + { + return "Kms.KMSClientConfigType.KMSClientConfigType" + } + default: + { + return "" + } + } +} + +func (_this KMSClientConfigType) Equals(other KMSClientConfigType) bool { + switch _this.Get_().(type) { + case KMSClientConfigType_KMSClientConfigType: + { + _, ok := other.Get_().(KMSClientConfigType_KMSClientConfigType) + return ok + } + default: + { + return false // unexpected + } + } +} + +func (_this KMSClientConfigType) EqualsGeneric(other interface{}) bool { + typed, ok := other.(KMSClientConfigType) + return ok && _this.Equals(typed) +} + +func Type_KMSClientConfigType_() _dafny.TypeDescriptor { + return type_KMSClientConfigType_{} +} + +type type_KMSClientConfigType_ struct { +} + +func (_this type_KMSClientConfigType_) Default() interface{} { + return Companion_KMSClientConfigType_.Default() +} + +func (_this type_KMSClientConfigType_) String() string { + return "Com_Amazonaws_Kms.KMSClientConfigType" +} +func (_this KMSClientConfigType) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = KMSClientConfigType{} + +// End of datatype KMSClientConfigType diff --git a/customer-preview/kms/Com_Amazonaws_Kms/externs.go b/customer-preview/kms/Com_Amazonaws_Kms/externs.go new file mode 100644 index 000000000..1f0b88cb0 --- /dev/null +++ b/customer-preview/kms/Com_Amazonaws_Kms/externs.go @@ -0,0 +1,49 @@ +package Com_Amazonaws_Kms + +import ( + "context" + + ComAmazonawsKmsTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/ComAmazonawsKmsTypes" + "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/KMSwrapped" + "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers" + "github.com/aws/aws-sdk-go-v2/config" + "github.com/aws/aws-sdk-go-v2/service/kms" + _dafny "github.com/dafny-lang/DafnyRuntimeGo/v4/dafny" +) + +func (_static *CompanionStruct_Default___) KMSClientForRegion(regionInput _dafny.Sequence) Wrappers.Result { + region := *toString(regionInput) + cfg, err := config.LoadDefaultConfig(context.TODO()) + if err != nil { + return Wrappers.Companion_Result_.Create_Failure_(ComAmazonawsKmsTypes.Companion_Error_.Create_KMSInternalException_(Wrappers.Companion_Option_.Create_Some_(_dafny.SeqOfChars([]_dafny.Char(err.Error())...)))) + } + return Wrappers.Companion_Result_.Create_Success_(&KMSwrapped.Shim{Client: kms.NewFromConfig(cfg, func(o *kms.Options) { + o.Region = region + })}) +} + +func (_static *CompanionStruct_Default___) KMSClient() Wrappers.Result { + cfg, err := config.LoadDefaultConfig(context.TODO()) + if err != nil { + return Wrappers.Companion_Result_.Create_Failure_(ComAmazonawsKmsTypes.Companion_Error_.Create_KMSInternalException_(Wrappers.Companion_Option_.Create_Some_(_dafny.SeqOfChars([]_dafny.Char(err.Error())...)))) + } + return Wrappers.Companion_Result_.Create_Success_(&KMSwrapped.Shim{Client: kms.NewFromConfig(cfg)}) +} + +func (_static *CompanionStruct_Default___) RegionMatch(ikmsClient ComAmazonawsKmsTypes.IKMSClient, regionInput _dafny.Sequence) Wrappers.Option { + region := toString(regionInput) + var kmsShim = ikmsClient.(*KMSwrapped.Shim).Client + return Wrappers.Companion_Option_.Create_Some_(kmsShim.Options().Region == *region) +} + +func toString(input _dafny.Sequence) *string { + var s string + for i := _dafny.Iterate(input); ; { + val, ok := i() + if !ok { + return &[]string{s}[0] + } else { + s = s + string(val.(_dafny.Char)) + } + } +} diff --git a/customer-preview/kms/KMSwrapped/shim.go b/customer-preview/kms/KMSwrapped/shim.go new file mode 100644 index 000000000..2ddc9e4dd --- /dev/null +++ b/customer-preview/kms/KMSwrapped/shim.go @@ -0,0 +1,486 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package KMSwrapped + +import ( + "context" + + "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/ComAmazonawsKmsTypes" + "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/comamazonawskmssmithygenerated" + "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers" + "github.com/aws/aws-sdk-go-v2/service/kms" + "github.com/dafny-lang/DafnyRuntimeGo/v4/dafny" +) + +type Shim struct { + ComAmazonawsKmsTypes.IKMSClient + Client *kms.Client +} + +func (shim *Shim) CancelKeyDeletion(input ComAmazonawsKmsTypes.CancelKeyDeletionRequest) Wrappers.Result { + var native_request = comamazonawskmssmithygenerated.CancelKeyDeletionInput_FromDafny(input) + var native_response, native_error = shim.Client.CancelKeyDeletion(context.Background(), &native_request) + if native_error != nil { + return Wrappers.Companion_Result_.Create_Failure_(comamazonawskmssmithygenerated.Error_ToDafny(native_error)) + } + return Wrappers.Companion_Result_.Create_Success_(comamazonawskmssmithygenerated.CancelKeyDeletionOutput_ToDafny(*native_response)) +} + +func (shim *Shim) ConnectCustomKeyStore(input ComAmazonawsKmsTypes.ConnectCustomKeyStoreRequest) Wrappers.Result { + var native_request = comamazonawskmssmithygenerated.ConnectCustomKeyStoreInput_FromDafny(input) + var native_response, native_error = shim.Client.ConnectCustomKeyStore(context.Background(), &native_request) + if native_error != nil { + return Wrappers.Companion_Result_.Create_Failure_(comamazonawskmssmithygenerated.Error_ToDafny(native_error)) + } + return Wrappers.Companion_Result_.Create_Success_(comamazonawskmssmithygenerated.ConnectCustomKeyStoreOutput_ToDafny(*native_response)) +} + +func (shim *Shim) CreateAlias(input ComAmazonawsKmsTypes.CreateAliasRequest) Wrappers.Result { + var native_request = comamazonawskmssmithygenerated.CreateAliasInput_FromDafny(input) + var _, native_error = shim.Client.CreateAlias(context.Background(), &native_request) + if native_error != nil { + return Wrappers.Companion_Result_.Create_Failure_(comamazonawskmssmithygenerated.Error_ToDafny(native_error)) + } + return Wrappers.Companion_Result_.Create_Success_(dafny.TupleOf()) +} + +func (shim *Shim) CreateCustomKeyStore(input ComAmazonawsKmsTypes.CreateCustomKeyStoreRequest) Wrappers.Result { + var native_request = comamazonawskmssmithygenerated.CreateCustomKeyStoreInput_FromDafny(input) + var native_response, native_error = shim.Client.CreateCustomKeyStore(context.Background(), &native_request) + if native_error != nil { + return Wrappers.Companion_Result_.Create_Failure_(comamazonawskmssmithygenerated.Error_ToDafny(native_error)) + } + return Wrappers.Companion_Result_.Create_Success_(comamazonawskmssmithygenerated.CreateCustomKeyStoreOutput_ToDafny(*native_response)) +} + +func (shim *Shim) CreateGrant(input ComAmazonawsKmsTypes.CreateGrantRequest) Wrappers.Result { + var native_request = comamazonawskmssmithygenerated.CreateGrantInput_FromDafny(input) + var native_response, native_error = shim.Client.CreateGrant(context.Background(), &native_request) + if native_error != nil { + return Wrappers.Companion_Result_.Create_Failure_(comamazonawskmssmithygenerated.Error_ToDafny(native_error)) + } + return Wrappers.Companion_Result_.Create_Success_(comamazonawskmssmithygenerated.CreateGrantOutput_ToDafny(*native_response)) +} + +func (shim *Shim) CreateKey(input ComAmazonawsKmsTypes.CreateKeyRequest) Wrappers.Result { + var native_request = comamazonawskmssmithygenerated.CreateKeyInput_FromDafny(input) + var native_response, native_error = shim.Client.CreateKey(context.Background(), &native_request) + if native_error != nil { + return Wrappers.Companion_Result_.Create_Failure_(comamazonawskmssmithygenerated.Error_ToDafny(native_error)) + } + return Wrappers.Companion_Result_.Create_Success_(comamazonawskmssmithygenerated.CreateKeyOutput_ToDafny(*native_response)) +} + +func (shim *Shim) Decrypt(input ComAmazonawsKmsTypes.DecryptRequest) Wrappers.Result { + var native_request = comamazonawskmssmithygenerated.DecryptInput_FromDafny(input) + var native_response, native_error = shim.Client.Decrypt(context.Background(), &native_request) + if native_error != nil { + return Wrappers.Companion_Result_.Create_Failure_(comamazonawskmssmithygenerated.Error_ToDafny(native_error)) + } + return Wrappers.Companion_Result_.Create_Success_(comamazonawskmssmithygenerated.DecryptOutput_ToDafny(*native_response)) +} + +func (shim *Shim) DeleteAlias(input ComAmazonawsKmsTypes.DeleteAliasRequest) Wrappers.Result { + var native_request = comamazonawskmssmithygenerated.DeleteAliasInput_FromDafny(input) + var _, native_error = shim.Client.DeleteAlias(context.Background(), &native_request) + if native_error != nil { + return Wrappers.Companion_Result_.Create_Failure_(comamazonawskmssmithygenerated.Error_ToDafny(native_error)) + } + return Wrappers.Companion_Result_.Create_Success_(dafny.TupleOf()) +} + +func (shim *Shim) DeleteCustomKeyStore(input ComAmazonawsKmsTypes.DeleteCustomKeyStoreRequest) Wrappers.Result { + var native_request = comamazonawskmssmithygenerated.DeleteCustomKeyStoreInput_FromDafny(input) + var native_response, native_error = shim.Client.DeleteCustomKeyStore(context.Background(), &native_request) + if native_error != nil { + return Wrappers.Companion_Result_.Create_Failure_(comamazonawskmssmithygenerated.Error_ToDafny(native_error)) + } + return Wrappers.Companion_Result_.Create_Success_(comamazonawskmssmithygenerated.DeleteCustomKeyStoreOutput_ToDafny(*native_response)) +} + +func (shim *Shim) DeleteImportedKeyMaterial(input ComAmazonawsKmsTypes.DeleteImportedKeyMaterialRequest) Wrappers.Result { + var native_request = comamazonawskmssmithygenerated.DeleteImportedKeyMaterialInput_FromDafny(input) + var _, native_error = shim.Client.DeleteImportedKeyMaterial(context.Background(), &native_request) + if native_error != nil { + return Wrappers.Companion_Result_.Create_Failure_(comamazonawskmssmithygenerated.Error_ToDafny(native_error)) + } + return Wrappers.Companion_Result_.Create_Success_(dafny.TupleOf()) +} + +func (shim *Shim) DeriveSharedSecret(input ComAmazonawsKmsTypes.DeriveSharedSecretRequest) Wrappers.Result { + var native_request = comamazonawskmssmithygenerated.DeriveSharedSecretInput_FromDafny(input) + var native_response, native_error = shim.Client.DeriveSharedSecret(context.Background(), &native_request) + if native_error != nil { + return Wrappers.Companion_Result_.Create_Failure_(comamazonawskmssmithygenerated.Error_ToDafny(native_error)) + } + return Wrappers.Companion_Result_.Create_Success_(comamazonawskmssmithygenerated.DeriveSharedSecretOutput_ToDafny(*native_response)) +} + +func (shim *Shim) DescribeCustomKeyStores(input ComAmazonawsKmsTypes.DescribeCustomKeyStoresRequest) Wrappers.Result { + var native_request = comamazonawskmssmithygenerated.DescribeCustomKeyStoresInput_FromDafny(input) + var native_response, native_error = shim.Client.DescribeCustomKeyStores(context.Background(), &native_request) + if native_error != nil { + return Wrappers.Companion_Result_.Create_Failure_(comamazonawskmssmithygenerated.Error_ToDafny(native_error)) + } + return Wrappers.Companion_Result_.Create_Success_(comamazonawskmssmithygenerated.DescribeCustomKeyStoresOutput_ToDafny(*native_response)) +} + +func (shim *Shim) DescribeKey(input ComAmazonawsKmsTypes.DescribeKeyRequest) Wrappers.Result { + var native_request = comamazonawskmssmithygenerated.DescribeKeyInput_FromDafny(input) + var native_response, native_error = shim.Client.DescribeKey(context.Background(), &native_request) + if native_error != nil { + return Wrappers.Companion_Result_.Create_Failure_(comamazonawskmssmithygenerated.Error_ToDafny(native_error)) + } + return Wrappers.Companion_Result_.Create_Success_(comamazonawskmssmithygenerated.DescribeKeyOutput_ToDafny(*native_response)) +} + +func (shim *Shim) DisableKey(input ComAmazonawsKmsTypes.DisableKeyRequest) Wrappers.Result { + var native_request = comamazonawskmssmithygenerated.DisableKeyInput_FromDafny(input) + var _, native_error = shim.Client.DisableKey(context.Background(), &native_request) + if native_error != nil { + return Wrappers.Companion_Result_.Create_Failure_(comamazonawskmssmithygenerated.Error_ToDafny(native_error)) + } + return Wrappers.Companion_Result_.Create_Success_(dafny.TupleOf()) +} + +func (shim *Shim) DisableKeyRotation(input ComAmazonawsKmsTypes.DisableKeyRotationRequest) Wrappers.Result { + var native_request = comamazonawskmssmithygenerated.DisableKeyRotationInput_FromDafny(input) + var _, native_error = shim.Client.DisableKeyRotation(context.Background(), &native_request) + if native_error != nil { + return Wrappers.Companion_Result_.Create_Failure_(comamazonawskmssmithygenerated.Error_ToDafny(native_error)) + } + return Wrappers.Companion_Result_.Create_Success_(dafny.TupleOf()) +} + +func (shim *Shim) DisconnectCustomKeyStore(input ComAmazonawsKmsTypes.DisconnectCustomKeyStoreRequest) Wrappers.Result { + var native_request = comamazonawskmssmithygenerated.DisconnectCustomKeyStoreInput_FromDafny(input) + var native_response, native_error = shim.Client.DisconnectCustomKeyStore(context.Background(), &native_request) + if native_error != nil { + return Wrappers.Companion_Result_.Create_Failure_(comamazonawskmssmithygenerated.Error_ToDafny(native_error)) + } + return Wrappers.Companion_Result_.Create_Success_(comamazonawskmssmithygenerated.DisconnectCustomKeyStoreOutput_ToDafny(*native_response)) +} + +func (shim *Shim) EnableKey(input ComAmazonawsKmsTypes.EnableKeyRequest) Wrappers.Result { + var native_request = comamazonawskmssmithygenerated.EnableKeyInput_FromDafny(input) + var _, native_error = shim.Client.EnableKey(context.Background(), &native_request) + if native_error != nil { + return Wrappers.Companion_Result_.Create_Failure_(comamazonawskmssmithygenerated.Error_ToDafny(native_error)) + } + return Wrappers.Companion_Result_.Create_Success_(dafny.TupleOf()) +} + +func (shim *Shim) EnableKeyRotation(input ComAmazonawsKmsTypes.EnableKeyRotationRequest) Wrappers.Result { + var native_request = comamazonawskmssmithygenerated.EnableKeyRotationInput_FromDafny(input) + var _, native_error = shim.Client.EnableKeyRotation(context.Background(), &native_request) + if native_error != nil { + return Wrappers.Companion_Result_.Create_Failure_(comamazonawskmssmithygenerated.Error_ToDafny(native_error)) + } + return Wrappers.Companion_Result_.Create_Success_(dafny.TupleOf()) +} + +func (shim *Shim) Encrypt(input ComAmazonawsKmsTypes.EncryptRequest) Wrappers.Result { + var native_request = comamazonawskmssmithygenerated.EncryptInput_FromDafny(input) + var native_response, native_error = shim.Client.Encrypt(context.Background(), &native_request) + if native_error != nil { + return Wrappers.Companion_Result_.Create_Failure_(comamazonawskmssmithygenerated.Error_ToDafny(native_error)) + } + return Wrappers.Companion_Result_.Create_Success_(comamazonawskmssmithygenerated.EncryptOutput_ToDafny(*native_response)) +} + +func (shim *Shim) GenerateDataKey(input ComAmazonawsKmsTypes.GenerateDataKeyRequest) Wrappers.Result { + var native_request = comamazonawskmssmithygenerated.GenerateDataKeyInput_FromDafny(input) + var native_response, native_error = shim.Client.GenerateDataKey(context.Background(), &native_request) + if native_error != nil { + return Wrappers.Companion_Result_.Create_Failure_(comamazonawskmssmithygenerated.Error_ToDafny(native_error)) + } + return Wrappers.Companion_Result_.Create_Success_(comamazonawskmssmithygenerated.GenerateDataKeyOutput_ToDafny(*native_response)) +} + +func (shim *Shim) GenerateDataKeyPair(input ComAmazonawsKmsTypes.GenerateDataKeyPairRequest) Wrappers.Result { + var native_request = comamazonawskmssmithygenerated.GenerateDataKeyPairInput_FromDafny(input) + var native_response, native_error = shim.Client.GenerateDataKeyPair(context.Background(), &native_request) + if native_error != nil { + return Wrappers.Companion_Result_.Create_Failure_(comamazonawskmssmithygenerated.Error_ToDafny(native_error)) + } + return Wrappers.Companion_Result_.Create_Success_(comamazonawskmssmithygenerated.GenerateDataKeyPairOutput_ToDafny(*native_response)) +} + +func (shim *Shim) GenerateDataKeyPairWithoutPlaintext(input ComAmazonawsKmsTypes.GenerateDataKeyPairWithoutPlaintextRequest) Wrappers.Result { + var native_request = comamazonawskmssmithygenerated.GenerateDataKeyPairWithoutPlaintextInput_FromDafny(input) + var native_response, native_error = shim.Client.GenerateDataKeyPairWithoutPlaintext(context.Background(), &native_request) + if native_error != nil { + return Wrappers.Companion_Result_.Create_Failure_(comamazonawskmssmithygenerated.Error_ToDafny(native_error)) + } + return Wrappers.Companion_Result_.Create_Success_(comamazonawskmssmithygenerated.GenerateDataKeyPairWithoutPlaintextOutput_ToDafny(*native_response)) +} + +func (shim *Shim) GenerateDataKeyWithoutPlaintext(input ComAmazonawsKmsTypes.GenerateDataKeyWithoutPlaintextRequest) Wrappers.Result { + var native_request = comamazonawskmssmithygenerated.GenerateDataKeyWithoutPlaintextInput_FromDafny(input) + var native_response, native_error = shim.Client.GenerateDataKeyWithoutPlaintext(context.Background(), &native_request) + if native_error != nil { + return Wrappers.Companion_Result_.Create_Failure_(comamazonawskmssmithygenerated.Error_ToDafny(native_error)) + } + return Wrappers.Companion_Result_.Create_Success_(comamazonawskmssmithygenerated.GenerateDataKeyWithoutPlaintextOutput_ToDafny(*native_response)) +} + +func (shim *Shim) GenerateMac(input ComAmazonawsKmsTypes.GenerateMacRequest) Wrappers.Result { + var native_request = comamazonawskmssmithygenerated.GenerateMacInput_FromDafny(input) + var native_response, native_error = shim.Client.GenerateMac(context.Background(), &native_request) + if native_error != nil { + return Wrappers.Companion_Result_.Create_Failure_(comamazonawskmssmithygenerated.Error_ToDafny(native_error)) + } + return Wrappers.Companion_Result_.Create_Success_(comamazonawskmssmithygenerated.GenerateMacOutput_ToDafny(*native_response)) +} + +func (shim *Shim) GenerateRandom(input ComAmazonawsKmsTypes.GenerateRandomRequest) Wrappers.Result { + var native_request = comamazonawskmssmithygenerated.GenerateRandomInput_FromDafny(input) + var native_response, native_error = shim.Client.GenerateRandom(context.Background(), &native_request) + if native_error != nil { + return Wrappers.Companion_Result_.Create_Failure_(comamazonawskmssmithygenerated.Error_ToDafny(native_error)) + } + return Wrappers.Companion_Result_.Create_Success_(comamazonawskmssmithygenerated.GenerateRandomOutput_ToDafny(*native_response)) +} + +func (shim *Shim) GetKeyPolicy(input ComAmazonawsKmsTypes.GetKeyPolicyRequest) Wrappers.Result { + var native_request = comamazonawskmssmithygenerated.GetKeyPolicyInput_FromDafny(input) + var native_response, native_error = shim.Client.GetKeyPolicy(context.Background(), &native_request) + if native_error != nil { + return Wrappers.Companion_Result_.Create_Failure_(comamazonawskmssmithygenerated.Error_ToDafny(native_error)) + } + return Wrappers.Companion_Result_.Create_Success_(comamazonawskmssmithygenerated.GetKeyPolicyOutput_ToDafny(*native_response)) +} + +func (shim *Shim) GetKeyRotationStatus(input ComAmazonawsKmsTypes.GetKeyRotationStatusRequest) Wrappers.Result { + var native_request = comamazonawskmssmithygenerated.GetKeyRotationStatusInput_FromDafny(input) + var native_response, native_error = shim.Client.GetKeyRotationStatus(context.Background(), &native_request) + if native_error != nil { + return Wrappers.Companion_Result_.Create_Failure_(comamazonawskmssmithygenerated.Error_ToDafny(native_error)) + } + return Wrappers.Companion_Result_.Create_Success_(comamazonawskmssmithygenerated.GetKeyRotationStatusOutput_ToDafny(*native_response)) +} + +func (shim *Shim) GetParametersForImport(input ComAmazonawsKmsTypes.GetParametersForImportRequest) Wrappers.Result { + var native_request = comamazonawskmssmithygenerated.GetParametersForImportInput_FromDafny(input) + var native_response, native_error = shim.Client.GetParametersForImport(context.Background(), &native_request) + if native_error != nil { + return Wrappers.Companion_Result_.Create_Failure_(comamazonawskmssmithygenerated.Error_ToDafny(native_error)) + } + return Wrappers.Companion_Result_.Create_Success_(comamazonawskmssmithygenerated.GetParametersForImportOutput_ToDafny(*native_response)) +} + +func (shim *Shim) GetPublicKey(input ComAmazonawsKmsTypes.GetPublicKeyRequest) Wrappers.Result { + var native_request = comamazonawskmssmithygenerated.GetPublicKeyInput_FromDafny(input) + var native_response, native_error = shim.Client.GetPublicKey(context.Background(), &native_request) + if native_error != nil { + return Wrappers.Companion_Result_.Create_Failure_(comamazonawskmssmithygenerated.Error_ToDafny(native_error)) + } + return Wrappers.Companion_Result_.Create_Success_(comamazonawskmssmithygenerated.GetPublicKeyOutput_ToDafny(*native_response)) +} + +func (shim *Shim) ImportKeyMaterial(input ComAmazonawsKmsTypes.ImportKeyMaterialRequest) Wrappers.Result { + var native_request = comamazonawskmssmithygenerated.ImportKeyMaterialInput_FromDafny(input) + var native_response, native_error = shim.Client.ImportKeyMaterial(context.Background(), &native_request) + if native_error != nil { + return Wrappers.Companion_Result_.Create_Failure_(comamazonawskmssmithygenerated.Error_ToDafny(native_error)) + } + return Wrappers.Companion_Result_.Create_Success_(comamazonawskmssmithygenerated.ImportKeyMaterialOutput_ToDafny(*native_response)) +} + +func (shim *Shim) ListAliases(input ComAmazonawsKmsTypes.ListAliasesRequest) Wrappers.Result { + var native_request = comamazonawskmssmithygenerated.ListAliasesInput_FromDafny(input) + var native_response, native_error = shim.Client.ListAliases(context.Background(), &native_request) + if native_error != nil { + return Wrappers.Companion_Result_.Create_Failure_(comamazonawskmssmithygenerated.Error_ToDafny(native_error)) + } + return Wrappers.Companion_Result_.Create_Success_(comamazonawskmssmithygenerated.ListAliasesOutput_ToDafny(*native_response)) +} + +func (shim *Shim) ListGrants(input ComAmazonawsKmsTypes.ListGrantsRequest) Wrappers.Result { + var native_request = comamazonawskmssmithygenerated.ListGrantsInput_FromDafny(input) + var native_response, native_error = shim.Client.ListGrants(context.Background(), &native_request) + if native_error != nil { + return Wrappers.Companion_Result_.Create_Failure_(comamazonawskmssmithygenerated.Error_ToDafny(native_error)) + } + return Wrappers.Companion_Result_.Create_Success_(comamazonawskmssmithygenerated.ListGrantsOutput_ToDafny(*native_response)) +} + +func (shim *Shim) ListKeyPolicies(input ComAmazonawsKmsTypes.ListKeyPoliciesRequest) Wrappers.Result { + var native_request = comamazonawskmssmithygenerated.ListKeyPoliciesInput_FromDafny(input) + var native_response, native_error = shim.Client.ListKeyPolicies(context.Background(), &native_request) + if native_error != nil { + return Wrappers.Companion_Result_.Create_Failure_(comamazonawskmssmithygenerated.Error_ToDafny(native_error)) + } + return Wrappers.Companion_Result_.Create_Success_(comamazonawskmssmithygenerated.ListKeyPoliciesOutput_ToDafny(*native_response)) +} + +func (shim *Shim) ListKeyRotations(input ComAmazonawsKmsTypes.ListKeyRotationsRequest) Wrappers.Result { + var native_request = comamazonawskmssmithygenerated.ListKeyRotationsInput_FromDafny(input) + var native_response, native_error = shim.Client.ListKeyRotations(context.Background(), &native_request) + if native_error != nil { + return Wrappers.Companion_Result_.Create_Failure_(comamazonawskmssmithygenerated.Error_ToDafny(native_error)) + } + return Wrappers.Companion_Result_.Create_Success_(comamazonawskmssmithygenerated.ListKeyRotationsOutput_ToDafny(*native_response)) +} + +func (shim *Shim) ListKeys(input ComAmazonawsKmsTypes.ListKeysRequest) Wrappers.Result { + var native_request = comamazonawskmssmithygenerated.ListKeysInput_FromDafny(input) + var native_response, native_error = shim.Client.ListKeys(context.Background(), &native_request) + if native_error != nil { + return Wrappers.Companion_Result_.Create_Failure_(comamazonawskmssmithygenerated.Error_ToDafny(native_error)) + } + return Wrappers.Companion_Result_.Create_Success_(comamazonawskmssmithygenerated.ListKeysOutput_ToDafny(*native_response)) +} + +func (shim *Shim) ListResourceTags(input ComAmazonawsKmsTypes.ListResourceTagsRequest) Wrappers.Result { + var native_request = comamazonawskmssmithygenerated.ListResourceTagsInput_FromDafny(input) + var native_response, native_error = shim.Client.ListResourceTags(context.Background(), &native_request) + if native_error != nil { + return Wrappers.Companion_Result_.Create_Failure_(comamazonawskmssmithygenerated.Error_ToDafny(native_error)) + } + return Wrappers.Companion_Result_.Create_Success_(comamazonawskmssmithygenerated.ListResourceTagsOutput_ToDafny(*native_response)) +} + +func (shim *Shim) PutKeyPolicy(input ComAmazonawsKmsTypes.PutKeyPolicyRequest) Wrappers.Result { + var native_request = comamazonawskmssmithygenerated.PutKeyPolicyInput_FromDafny(input) + var _, native_error = shim.Client.PutKeyPolicy(context.Background(), &native_request) + if native_error != nil { + return Wrappers.Companion_Result_.Create_Failure_(comamazonawskmssmithygenerated.Error_ToDafny(native_error)) + } + return Wrappers.Companion_Result_.Create_Success_(dafny.TupleOf()) +} + +func (shim *Shim) ReEncrypt(input ComAmazonawsKmsTypes.ReEncryptRequest) Wrappers.Result { + var native_request = comamazonawskmssmithygenerated.ReEncryptInput_FromDafny(input) + var native_response, native_error = shim.Client.ReEncrypt(context.Background(), &native_request) + if native_error != nil { + return Wrappers.Companion_Result_.Create_Failure_(comamazonawskmssmithygenerated.Error_ToDafny(native_error)) + } + return Wrappers.Companion_Result_.Create_Success_(comamazonawskmssmithygenerated.ReEncryptOutput_ToDafny(*native_response)) +} + +func (shim *Shim) ReplicateKey(input ComAmazonawsKmsTypes.ReplicateKeyRequest) Wrappers.Result { + var native_request = comamazonawskmssmithygenerated.ReplicateKeyInput_FromDafny(input) + var native_response, native_error = shim.Client.ReplicateKey(context.Background(), &native_request) + if native_error != nil { + return Wrappers.Companion_Result_.Create_Failure_(comamazonawskmssmithygenerated.Error_ToDafny(native_error)) + } + return Wrappers.Companion_Result_.Create_Success_(comamazonawskmssmithygenerated.ReplicateKeyOutput_ToDafny(*native_response)) +} + +func (shim *Shim) RetireGrant(input ComAmazonawsKmsTypes.RetireGrantRequest) Wrappers.Result { + var native_request = comamazonawskmssmithygenerated.RetireGrantInput_FromDafny(input) + var _, native_error = shim.Client.RetireGrant(context.Background(), &native_request) + if native_error != nil { + return Wrappers.Companion_Result_.Create_Failure_(comamazonawskmssmithygenerated.Error_ToDafny(native_error)) + } + return Wrappers.Companion_Result_.Create_Success_(dafny.TupleOf()) +} + +func (shim *Shim) RevokeGrant(input ComAmazonawsKmsTypes.RevokeGrantRequest) Wrappers.Result { + var native_request = comamazonawskmssmithygenerated.RevokeGrantInput_FromDafny(input) + var _, native_error = shim.Client.RevokeGrant(context.Background(), &native_request) + if native_error != nil { + return Wrappers.Companion_Result_.Create_Failure_(comamazonawskmssmithygenerated.Error_ToDafny(native_error)) + } + return Wrappers.Companion_Result_.Create_Success_(dafny.TupleOf()) +} + +func (shim *Shim) RotateKeyOnDemand(input ComAmazonawsKmsTypes.RotateKeyOnDemandRequest) Wrappers.Result { + var native_request = comamazonawskmssmithygenerated.RotateKeyOnDemandInput_FromDafny(input) + var native_response, native_error = shim.Client.RotateKeyOnDemand(context.Background(), &native_request) + if native_error != nil { + return Wrappers.Companion_Result_.Create_Failure_(comamazonawskmssmithygenerated.Error_ToDafny(native_error)) + } + return Wrappers.Companion_Result_.Create_Success_(comamazonawskmssmithygenerated.RotateKeyOnDemandOutput_ToDafny(*native_response)) +} + +func (shim *Shim) ScheduleKeyDeletion(input ComAmazonawsKmsTypes.ScheduleKeyDeletionRequest) Wrappers.Result { + var native_request = comamazonawskmssmithygenerated.ScheduleKeyDeletionInput_FromDafny(input) + var native_response, native_error = shim.Client.ScheduleKeyDeletion(context.Background(), &native_request) + if native_error != nil { + return Wrappers.Companion_Result_.Create_Failure_(comamazonawskmssmithygenerated.Error_ToDafny(native_error)) + } + return Wrappers.Companion_Result_.Create_Success_(comamazonawskmssmithygenerated.ScheduleKeyDeletionOutput_ToDafny(*native_response)) +} + +func (shim *Shim) Sign(input ComAmazonawsKmsTypes.SignRequest) Wrappers.Result { + var native_request = comamazonawskmssmithygenerated.SignInput_FromDafny(input) + var native_response, native_error = shim.Client.Sign(context.Background(), &native_request) + if native_error != nil { + return Wrappers.Companion_Result_.Create_Failure_(comamazonawskmssmithygenerated.Error_ToDafny(native_error)) + } + return Wrappers.Companion_Result_.Create_Success_(comamazonawskmssmithygenerated.SignOutput_ToDafny(*native_response)) +} + +func (shim *Shim) TagResource(input ComAmazonawsKmsTypes.TagResourceRequest) Wrappers.Result { + var native_request = comamazonawskmssmithygenerated.TagResourceInput_FromDafny(input) + var _, native_error = shim.Client.TagResource(context.Background(), &native_request) + if native_error != nil { + return Wrappers.Companion_Result_.Create_Failure_(comamazonawskmssmithygenerated.Error_ToDafny(native_error)) + } + return Wrappers.Companion_Result_.Create_Success_(dafny.TupleOf()) +} + +func (shim *Shim) UntagResource(input ComAmazonawsKmsTypes.UntagResourceRequest) Wrappers.Result { + var native_request = comamazonawskmssmithygenerated.UntagResourceInput_FromDafny(input) + var _, native_error = shim.Client.UntagResource(context.Background(), &native_request) + if native_error != nil { + return Wrappers.Companion_Result_.Create_Failure_(comamazonawskmssmithygenerated.Error_ToDafny(native_error)) + } + return Wrappers.Companion_Result_.Create_Success_(dafny.TupleOf()) +} + +func (shim *Shim) UpdateAlias(input ComAmazonawsKmsTypes.UpdateAliasRequest) Wrappers.Result { + var native_request = comamazonawskmssmithygenerated.UpdateAliasInput_FromDafny(input) + var _, native_error = shim.Client.UpdateAlias(context.Background(), &native_request) + if native_error != nil { + return Wrappers.Companion_Result_.Create_Failure_(comamazonawskmssmithygenerated.Error_ToDafny(native_error)) + } + return Wrappers.Companion_Result_.Create_Success_(dafny.TupleOf()) +} + +func (shim *Shim) UpdateCustomKeyStore(input ComAmazonawsKmsTypes.UpdateCustomKeyStoreRequest) Wrappers.Result { + var native_request = comamazonawskmssmithygenerated.UpdateCustomKeyStoreInput_FromDafny(input) + var native_response, native_error = shim.Client.UpdateCustomKeyStore(context.Background(), &native_request) + if native_error != nil { + return Wrappers.Companion_Result_.Create_Failure_(comamazonawskmssmithygenerated.Error_ToDafny(native_error)) + } + return Wrappers.Companion_Result_.Create_Success_(comamazonawskmssmithygenerated.UpdateCustomKeyStoreOutput_ToDafny(*native_response)) +} + +func (shim *Shim) UpdateKeyDescription(input ComAmazonawsKmsTypes.UpdateKeyDescriptionRequest) Wrappers.Result { + var native_request = comamazonawskmssmithygenerated.UpdateKeyDescriptionInput_FromDafny(input) + var _, native_error = shim.Client.UpdateKeyDescription(context.Background(), &native_request) + if native_error != nil { + return Wrappers.Companion_Result_.Create_Failure_(comamazonawskmssmithygenerated.Error_ToDafny(native_error)) + } + return Wrappers.Companion_Result_.Create_Success_(dafny.TupleOf()) +} + +func (shim *Shim) UpdatePrimaryRegion(input ComAmazonawsKmsTypes.UpdatePrimaryRegionRequest) Wrappers.Result { + var native_request = comamazonawskmssmithygenerated.UpdatePrimaryRegionInput_FromDafny(input) + var _, native_error = shim.Client.UpdatePrimaryRegion(context.Background(), &native_request) + if native_error != nil { + return Wrappers.Companion_Result_.Create_Failure_(comamazonawskmssmithygenerated.Error_ToDafny(native_error)) + } + return Wrappers.Companion_Result_.Create_Success_(dafny.TupleOf()) +} + +func (shim *Shim) Verify(input ComAmazonawsKmsTypes.VerifyRequest) Wrappers.Result { + var native_request = comamazonawskmssmithygenerated.VerifyInput_FromDafny(input) + var native_response, native_error = shim.Client.Verify(context.Background(), &native_request) + if native_error != nil { + return Wrappers.Companion_Result_.Create_Failure_(comamazonawskmssmithygenerated.Error_ToDafny(native_error)) + } + return Wrappers.Companion_Result_.Create_Success_(comamazonawskmssmithygenerated.VerifyOutput_ToDafny(*native_response)) +} + +func (shim *Shim) VerifyMac(input ComAmazonawsKmsTypes.VerifyMacRequest) Wrappers.Result { + var native_request = comamazonawskmssmithygenerated.VerifyMacInput_FromDafny(input) + var native_response, native_error = shim.Client.VerifyMac(context.Background(), &native_request) + if native_error != nil { + return Wrappers.Companion_Result_.Create_Failure_(comamazonawskmssmithygenerated.Error_ToDafny(native_error)) + } + return Wrappers.Companion_Result_.Create_Success_(comamazonawskmssmithygenerated.VerifyMacOutput_ToDafny(*native_response)) +} diff --git a/customer-preview/kms/comamazonawskmssmithygenerated/to_dafny.go b/customer-preview/kms/comamazonawskmssmithygenerated/to_dafny.go new file mode 100644 index 000000000..a79549b57 --- /dev/null +++ b/customer-preview/kms/comamazonawskmssmithygenerated/to_dafny.go @@ -0,0 +1,8013 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package comamazonawskmssmithygenerated + +import ( + "errors" + "time" + + "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/ComAmazonawsKmsTypes" + "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-sdk-go-v2/service/kms" + "github.com/aws/aws-sdk-go-v2/service/kms/types" + "github.com/dafny-lang/DafnyRuntimeGo/v4/dafny" +) + +func CancelKeyDeletionInput_ToDafny(nativeInput kms.CancelKeyDeletionInput) ComAmazonawsKmsTypes.CancelKeyDeletionRequest { + + return func() ComAmazonawsKmsTypes.CancelKeyDeletionRequest { + + return ComAmazonawsKmsTypes.Companion_CancelKeyDeletionRequest_.Create_CancelKeyDeletionRequest_(Com_amazonaws_kms_CancelKeyDeletionRequest_KeyId_ToDafny(nativeInput.KeyId)) + }() + +} + +func CancelKeyDeletionOutput_ToDafny(nativeOutput kms.CancelKeyDeletionOutput) ComAmazonawsKmsTypes.CancelKeyDeletionResponse { + + return func() ComAmazonawsKmsTypes.CancelKeyDeletionResponse { + + return ComAmazonawsKmsTypes.Companion_CancelKeyDeletionResponse_.Create_CancelKeyDeletionResponse_(Com_amazonaws_kms_CancelKeyDeletionResponse_KeyId_ToDafny(nativeOutput.KeyId)) + }() + +} + +func ConnectCustomKeyStoreInput_ToDafny(nativeInput kms.ConnectCustomKeyStoreInput) ComAmazonawsKmsTypes.ConnectCustomKeyStoreRequest { + + return func() ComAmazonawsKmsTypes.ConnectCustomKeyStoreRequest { + + return ComAmazonawsKmsTypes.Companion_ConnectCustomKeyStoreRequest_.Create_ConnectCustomKeyStoreRequest_(Com_amazonaws_kms_ConnectCustomKeyStoreRequest_CustomKeyStoreId_ToDafny(nativeInput.CustomKeyStoreId)) + }() + +} + +func ConnectCustomKeyStoreOutput_ToDafny(nativeOutput kms.ConnectCustomKeyStoreOutput) ComAmazonawsKmsTypes.ConnectCustomKeyStoreResponse { + + return func() ComAmazonawsKmsTypes.ConnectCustomKeyStoreResponse { + + return ComAmazonawsKmsTypes.Companion_ConnectCustomKeyStoreResponse_.Create_ConnectCustomKeyStoreResponse_() + }() + +} + +func CreateAliasInput_ToDafny(nativeInput kms.CreateAliasInput) ComAmazonawsKmsTypes.CreateAliasRequest { + + return func() ComAmazonawsKmsTypes.CreateAliasRequest { + + return ComAmazonawsKmsTypes.Companion_CreateAliasRequest_.Create_CreateAliasRequest_(Com_amazonaws_kms_CreateAliasRequest_AliasName_ToDafny(nativeInput.AliasName), Com_amazonaws_kms_CreateAliasRequest_TargetKeyId_ToDafny(nativeInput.TargetKeyId)) + }() + +} + +func CreateCustomKeyStoreInput_ToDafny(nativeInput kms.CreateCustomKeyStoreInput) ComAmazonawsKmsTypes.CreateCustomKeyStoreRequest { + + return func() ComAmazonawsKmsTypes.CreateCustomKeyStoreRequest { + + return ComAmazonawsKmsTypes.Companion_CreateCustomKeyStoreRequest_.Create_CreateCustomKeyStoreRequest_(Com_amazonaws_kms_CreateCustomKeyStoreRequest_CustomKeyStoreName_ToDafny(nativeInput.CustomKeyStoreName), Com_amazonaws_kms_CreateCustomKeyStoreRequest_CloudHsmClusterId_ToDafny(nativeInput.CloudHsmClusterId), Com_amazonaws_kms_CreateCustomKeyStoreRequest_TrustAnchorCertificate_ToDafny(nativeInput.TrustAnchorCertificate), Com_amazonaws_kms_CreateCustomKeyStoreRequest_KeyStorePassword_ToDafny(nativeInput.KeyStorePassword), Com_amazonaws_kms_CreateCustomKeyStoreRequest_CustomKeyStoreType_ToDafny(nativeInput.CustomKeyStoreType), Com_amazonaws_kms_CreateCustomKeyStoreRequest_XksProxyUriEndpoint_ToDafny(nativeInput.XksProxyUriEndpoint), Com_amazonaws_kms_CreateCustomKeyStoreRequest_XksProxyUriPath_ToDafny(nativeInput.XksProxyUriPath), Com_amazonaws_kms_CreateCustomKeyStoreRequest_XksProxyVpcEndpointServiceName_ToDafny(nativeInput.XksProxyVpcEndpointServiceName), Com_amazonaws_kms_CreateCustomKeyStoreRequest_XksProxyAuthenticationCredential_ToDafny(nativeInput.XksProxyAuthenticationCredential), Com_amazonaws_kms_CreateCustomKeyStoreRequest_XksProxyConnectivity_ToDafny(nativeInput.XksProxyConnectivity)) + }() + +} + +func CreateCustomKeyStoreOutput_ToDafny(nativeOutput kms.CreateCustomKeyStoreOutput) ComAmazonawsKmsTypes.CreateCustomKeyStoreResponse { + + return func() ComAmazonawsKmsTypes.CreateCustomKeyStoreResponse { + + return ComAmazonawsKmsTypes.Companion_CreateCustomKeyStoreResponse_.Create_CreateCustomKeyStoreResponse_(Com_amazonaws_kms_CreateCustomKeyStoreResponse_CustomKeyStoreId_ToDafny(nativeOutput.CustomKeyStoreId)) + }() + +} + +func CreateGrantInput_ToDafny(nativeInput kms.CreateGrantInput) ComAmazonawsKmsTypes.CreateGrantRequest { + + return func() ComAmazonawsKmsTypes.CreateGrantRequest { + + return ComAmazonawsKmsTypes.Companion_CreateGrantRequest_.Create_CreateGrantRequest_(Com_amazonaws_kms_CreateGrantRequest_KeyId_ToDafny(nativeInput.KeyId), Com_amazonaws_kms_CreateGrantRequest_GranteePrincipal_ToDafny(nativeInput.GranteePrincipal), Com_amazonaws_kms_CreateGrantRequest_RetiringPrincipal_ToDafny(nativeInput.RetiringPrincipal), Com_amazonaws_kms_CreateGrantRequest_Operations_ToDafny(nativeInput.Operations), Com_amazonaws_kms_CreateGrantRequest_Constraints_ToDafny(nativeInput.Constraints), Com_amazonaws_kms_CreateGrantRequest_GrantTokens_ToDafny(nativeInput.GrantTokens), Com_amazonaws_kms_CreateGrantRequest_Name_ToDafny(nativeInput.Name), Com_amazonaws_kms_CreateGrantRequest_DryRun_ToDafny(nativeInput.DryRun)) + }() + +} + +func CreateGrantOutput_ToDafny(nativeOutput kms.CreateGrantOutput) ComAmazonawsKmsTypes.CreateGrantResponse { + + return func() ComAmazonawsKmsTypes.CreateGrantResponse { + + return ComAmazonawsKmsTypes.Companion_CreateGrantResponse_.Create_CreateGrantResponse_(Com_amazonaws_kms_CreateGrantResponse_GrantToken_ToDafny(nativeOutput.GrantToken), Com_amazonaws_kms_CreateGrantResponse_GrantId_ToDafny(nativeOutput.GrantId)) + }() + +} + +func CreateKeyInput_ToDafny(nativeInput kms.CreateKeyInput) ComAmazonawsKmsTypes.CreateKeyRequest { + + return func() ComAmazonawsKmsTypes.CreateKeyRequest { + + return ComAmazonawsKmsTypes.Companion_CreateKeyRequest_.Create_CreateKeyRequest_(Com_amazonaws_kms_CreateKeyRequest_Policy_ToDafny(nativeInput.Policy), Com_amazonaws_kms_CreateKeyRequest_Description_ToDafny(nativeInput.Description), Com_amazonaws_kms_CreateKeyRequest_KeyUsage_ToDafny(nativeInput.KeyUsage), Com_amazonaws_kms_CreateKeyRequest_CustomerMasterKeySpec_ToDafny(nativeInput.CustomerMasterKeySpec), Com_amazonaws_kms_CreateKeyRequest_KeySpec_ToDafny(nativeInput.KeySpec), Com_amazonaws_kms_CreateKeyRequest_Origin_ToDafny(nativeInput.Origin), Com_amazonaws_kms_CreateKeyRequest_CustomKeyStoreId_ToDafny(nativeInput.CustomKeyStoreId), Com_amazonaws_kms_CreateKeyRequest_BypassPolicyLockoutSafetyCheck_ToDafny(nativeInput.BypassPolicyLockoutSafetyCheck), Com_amazonaws_kms_CreateKeyRequest_Tags_ToDafny(nativeInput.Tags), Com_amazonaws_kms_CreateKeyRequest_MultiRegion_ToDafny(nativeInput.MultiRegion), Com_amazonaws_kms_CreateKeyRequest_XksKeyId_ToDafny(nativeInput.XksKeyId)) + }() + +} + +func CreateKeyOutput_ToDafny(nativeOutput kms.CreateKeyOutput) ComAmazonawsKmsTypes.CreateKeyResponse { + + return func() ComAmazonawsKmsTypes.CreateKeyResponse { + + return ComAmazonawsKmsTypes.Companion_CreateKeyResponse_.Create_CreateKeyResponse_(Com_amazonaws_kms_CreateKeyResponse_KeyMetadata_ToDafny(nativeOutput.KeyMetadata)) + }() + +} + +func DecryptInput_ToDafny(nativeInput kms.DecryptInput) ComAmazonawsKmsTypes.DecryptRequest { + + return func() ComAmazonawsKmsTypes.DecryptRequest { + + return ComAmazonawsKmsTypes.Companion_DecryptRequest_.Create_DecryptRequest_(Com_amazonaws_kms_DecryptRequest_CiphertextBlob_ToDafny(nativeInput.CiphertextBlob), Com_amazonaws_kms_DecryptRequest_EncryptionContext_ToDafny(nativeInput.EncryptionContext), Com_amazonaws_kms_DecryptRequest_GrantTokens_ToDafny(nativeInput.GrantTokens), Com_amazonaws_kms_DecryptRequest_KeyId_ToDafny(nativeInput.KeyId), Com_amazonaws_kms_DecryptRequest_EncryptionAlgorithm_ToDafny(nativeInput.EncryptionAlgorithm), Com_amazonaws_kms_DecryptRequest_Recipient_ToDafny(nativeInput.Recipient), Com_amazonaws_kms_DecryptRequest_DryRun_ToDafny(nativeInput.DryRun)) + }() + +} + +func DecryptOutput_ToDafny(nativeOutput kms.DecryptOutput) ComAmazonawsKmsTypes.DecryptResponse { + + return func() ComAmazonawsKmsTypes.DecryptResponse { + + return ComAmazonawsKmsTypes.Companion_DecryptResponse_.Create_DecryptResponse_(Com_amazonaws_kms_DecryptResponse_KeyId_ToDafny(nativeOutput.KeyId), Com_amazonaws_kms_DecryptResponse_Plaintext_ToDafny(nativeOutput.Plaintext), Com_amazonaws_kms_DecryptResponse_EncryptionAlgorithm_ToDafny(nativeOutput.EncryptionAlgorithm), Com_amazonaws_kms_DecryptResponse_CiphertextForRecipient_ToDafny(nativeOutput.CiphertextForRecipient)) + }() + +} + +func DeleteAliasInput_ToDafny(nativeInput kms.DeleteAliasInput) ComAmazonawsKmsTypes.DeleteAliasRequest { + + return func() ComAmazonawsKmsTypes.DeleteAliasRequest { + + return ComAmazonawsKmsTypes.Companion_DeleteAliasRequest_.Create_DeleteAliasRequest_(Com_amazonaws_kms_DeleteAliasRequest_AliasName_ToDafny(nativeInput.AliasName)) + }() + +} + +func DeleteCustomKeyStoreInput_ToDafny(nativeInput kms.DeleteCustomKeyStoreInput) ComAmazonawsKmsTypes.DeleteCustomKeyStoreRequest { + + return func() ComAmazonawsKmsTypes.DeleteCustomKeyStoreRequest { + + return ComAmazonawsKmsTypes.Companion_DeleteCustomKeyStoreRequest_.Create_DeleteCustomKeyStoreRequest_(Com_amazonaws_kms_DeleteCustomKeyStoreRequest_CustomKeyStoreId_ToDafny(nativeInput.CustomKeyStoreId)) + }() + +} + +func DeleteCustomKeyStoreOutput_ToDafny(nativeOutput kms.DeleteCustomKeyStoreOutput) ComAmazonawsKmsTypes.DeleteCustomKeyStoreResponse { + + return func() ComAmazonawsKmsTypes.DeleteCustomKeyStoreResponse { + + return ComAmazonawsKmsTypes.Companion_DeleteCustomKeyStoreResponse_.Create_DeleteCustomKeyStoreResponse_() + }() + +} + +func DeleteImportedKeyMaterialInput_ToDafny(nativeInput kms.DeleteImportedKeyMaterialInput) ComAmazonawsKmsTypes.DeleteImportedKeyMaterialRequest { + + return func() ComAmazonawsKmsTypes.DeleteImportedKeyMaterialRequest { + + return ComAmazonawsKmsTypes.Companion_DeleteImportedKeyMaterialRequest_.Create_DeleteImportedKeyMaterialRequest_(Com_amazonaws_kms_DeleteImportedKeyMaterialRequest_KeyId_ToDafny(nativeInput.KeyId)) + }() + +} + +func DeriveSharedSecretInput_ToDafny(nativeInput kms.DeriveSharedSecretInput) ComAmazonawsKmsTypes.DeriveSharedSecretRequest { + + return func() ComAmazonawsKmsTypes.DeriveSharedSecretRequest { + + return ComAmazonawsKmsTypes.Companion_DeriveSharedSecretRequest_.Create_DeriveSharedSecretRequest_(Com_amazonaws_kms_DeriveSharedSecretRequest_KeyId_ToDafny(nativeInput.KeyId), Com_amazonaws_kms_DeriveSharedSecretRequest_KeyAgreementAlgorithm_ToDafny(nativeInput.KeyAgreementAlgorithm), Com_amazonaws_kms_DeriveSharedSecretRequest_PublicKey_ToDafny(nativeInput.PublicKey), Com_amazonaws_kms_DeriveSharedSecretRequest_GrantTokens_ToDafny(nativeInput.GrantTokens), Com_amazonaws_kms_DeriveSharedSecretRequest_DryRun_ToDafny(nativeInput.DryRun), Com_amazonaws_kms_DeriveSharedSecretRequest_Recipient_ToDafny(nativeInput.Recipient)) + }() + +} + +func DeriveSharedSecretOutput_ToDafny(nativeOutput kms.DeriveSharedSecretOutput) ComAmazonawsKmsTypes.DeriveSharedSecretResponse { + + return func() ComAmazonawsKmsTypes.DeriveSharedSecretResponse { + + return ComAmazonawsKmsTypes.Companion_DeriveSharedSecretResponse_.Create_DeriveSharedSecretResponse_(Com_amazonaws_kms_DeriveSharedSecretResponse_KeyId_ToDafny(nativeOutput.KeyId), Com_amazonaws_kms_DeriveSharedSecretResponse_SharedSecret_ToDafny(nativeOutput.SharedSecret), Com_amazonaws_kms_DeriveSharedSecretResponse_CiphertextForRecipient_ToDafny(nativeOutput.CiphertextForRecipient), Com_amazonaws_kms_DeriveSharedSecretResponse_KeyAgreementAlgorithm_ToDafny(nativeOutput.KeyAgreementAlgorithm), Com_amazonaws_kms_DeriveSharedSecretResponse_KeyOrigin_ToDafny(nativeOutput.KeyOrigin)) + }() + +} + +func DescribeCustomKeyStoresInput_ToDafny(nativeInput kms.DescribeCustomKeyStoresInput) ComAmazonawsKmsTypes.DescribeCustomKeyStoresRequest { + + return func() ComAmazonawsKmsTypes.DescribeCustomKeyStoresRequest { + + return ComAmazonawsKmsTypes.Companion_DescribeCustomKeyStoresRequest_.Create_DescribeCustomKeyStoresRequest_(Com_amazonaws_kms_DescribeCustomKeyStoresRequest_CustomKeyStoreId_ToDafny(nativeInput.CustomKeyStoreId), Com_amazonaws_kms_DescribeCustomKeyStoresRequest_CustomKeyStoreName_ToDafny(nativeInput.CustomKeyStoreName), Com_amazonaws_kms_DescribeCustomKeyStoresRequest_Limit_ToDafny(nativeInput.Limit), Com_amazonaws_kms_DescribeCustomKeyStoresRequest_Marker_ToDafny(nativeInput.Marker)) + }() + +} + +func DescribeCustomKeyStoresOutput_ToDafny(nativeOutput kms.DescribeCustomKeyStoresOutput) ComAmazonawsKmsTypes.DescribeCustomKeyStoresResponse { + + return func() ComAmazonawsKmsTypes.DescribeCustomKeyStoresResponse { + + return ComAmazonawsKmsTypes.Companion_DescribeCustomKeyStoresResponse_.Create_DescribeCustomKeyStoresResponse_(Com_amazonaws_kms_DescribeCustomKeyStoresResponse_CustomKeyStores_ToDafny(nativeOutput.CustomKeyStores), Com_amazonaws_kms_DescribeCustomKeyStoresResponse_NextMarker_ToDafny(nativeOutput.NextMarker), Com_amazonaws_kms_DescribeCustomKeyStoresResponse_Truncated_ToDafny(nativeOutput.Truncated)) + }() + +} + +func DescribeKeyInput_ToDafny(nativeInput kms.DescribeKeyInput) ComAmazonawsKmsTypes.DescribeKeyRequest { + + return func() ComAmazonawsKmsTypes.DescribeKeyRequest { + + return ComAmazonawsKmsTypes.Companion_DescribeKeyRequest_.Create_DescribeKeyRequest_(Com_amazonaws_kms_DescribeKeyRequest_KeyId_ToDafny(nativeInput.KeyId), Com_amazonaws_kms_DescribeKeyRequest_GrantTokens_ToDafny(nativeInput.GrantTokens)) + }() + +} + +func DescribeKeyOutput_ToDafny(nativeOutput kms.DescribeKeyOutput) ComAmazonawsKmsTypes.DescribeKeyResponse { + + return func() ComAmazonawsKmsTypes.DescribeKeyResponse { + + return ComAmazonawsKmsTypes.Companion_DescribeKeyResponse_.Create_DescribeKeyResponse_(Com_amazonaws_kms_DescribeKeyResponse_KeyMetadata_ToDafny(nativeOutput.KeyMetadata)) + }() + +} + +func DisableKeyInput_ToDafny(nativeInput kms.DisableKeyInput) ComAmazonawsKmsTypes.DisableKeyRequest { + + return func() ComAmazonawsKmsTypes.DisableKeyRequest { + + return ComAmazonawsKmsTypes.Companion_DisableKeyRequest_.Create_DisableKeyRequest_(Com_amazonaws_kms_DisableKeyRequest_KeyId_ToDafny(nativeInput.KeyId)) + }() + +} + +func DisableKeyRotationInput_ToDafny(nativeInput kms.DisableKeyRotationInput) ComAmazonawsKmsTypes.DisableKeyRotationRequest { + + return func() ComAmazonawsKmsTypes.DisableKeyRotationRequest { + + return ComAmazonawsKmsTypes.Companion_DisableKeyRotationRequest_.Create_DisableKeyRotationRequest_(Com_amazonaws_kms_DisableKeyRotationRequest_KeyId_ToDafny(nativeInput.KeyId)) + }() + +} + +func DisconnectCustomKeyStoreInput_ToDafny(nativeInput kms.DisconnectCustomKeyStoreInput) ComAmazonawsKmsTypes.DisconnectCustomKeyStoreRequest { + + return func() ComAmazonawsKmsTypes.DisconnectCustomKeyStoreRequest { + + return ComAmazonawsKmsTypes.Companion_DisconnectCustomKeyStoreRequest_.Create_DisconnectCustomKeyStoreRequest_(Com_amazonaws_kms_DisconnectCustomKeyStoreRequest_CustomKeyStoreId_ToDafny(nativeInput.CustomKeyStoreId)) + }() + +} + +func DisconnectCustomKeyStoreOutput_ToDafny(nativeOutput kms.DisconnectCustomKeyStoreOutput) ComAmazonawsKmsTypes.DisconnectCustomKeyStoreResponse { + + return func() ComAmazonawsKmsTypes.DisconnectCustomKeyStoreResponse { + + return ComAmazonawsKmsTypes.Companion_DisconnectCustomKeyStoreResponse_.Create_DisconnectCustomKeyStoreResponse_() + }() + +} + +func EnableKeyInput_ToDafny(nativeInput kms.EnableKeyInput) ComAmazonawsKmsTypes.EnableKeyRequest { + + return func() ComAmazonawsKmsTypes.EnableKeyRequest { + + return ComAmazonawsKmsTypes.Companion_EnableKeyRequest_.Create_EnableKeyRequest_(Com_amazonaws_kms_EnableKeyRequest_KeyId_ToDafny(nativeInput.KeyId)) + }() + +} + +func EnableKeyRotationInput_ToDafny(nativeInput kms.EnableKeyRotationInput) ComAmazonawsKmsTypes.EnableKeyRotationRequest { + + return func() ComAmazonawsKmsTypes.EnableKeyRotationRequest { + + return ComAmazonawsKmsTypes.Companion_EnableKeyRotationRequest_.Create_EnableKeyRotationRequest_(Com_amazonaws_kms_EnableKeyRotationRequest_KeyId_ToDafny(nativeInput.KeyId), Com_amazonaws_kms_EnableKeyRotationRequest_RotationPeriodInDays_ToDafny(nativeInput.RotationPeriodInDays)) + }() + +} + +func EncryptInput_ToDafny(nativeInput kms.EncryptInput) ComAmazonawsKmsTypes.EncryptRequest { + + return func() ComAmazonawsKmsTypes.EncryptRequest { + + return ComAmazonawsKmsTypes.Companion_EncryptRequest_.Create_EncryptRequest_(Com_amazonaws_kms_EncryptRequest_KeyId_ToDafny(nativeInput.KeyId), Com_amazonaws_kms_EncryptRequest_Plaintext_ToDafny(nativeInput.Plaintext), Com_amazonaws_kms_EncryptRequest_EncryptionContext_ToDafny(nativeInput.EncryptionContext), Com_amazonaws_kms_EncryptRequest_GrantTokens_ToDafny(nativeInput.GrantTokens), Com_amazonaws_kms_EncryptRequest_EncryptionAlgorithm_ToDafny(nativeInput.EncryptionAlgorithm), Com_amazonaws_kms_EncryptRequest_DryRun_ToDafny(nativeInput.DryRun)) + }() + +} + +func EncryptOutput_ToDafny(nativeOutput kms.EncryptOutput) ComAmazonawsKmsTypes.EncryptResponse { + + return func() ComAmazonawsKmsTypes.EncryptResponse { + + return ComAmazonawsKmsTypes.Companion_EncryptResponse_.Create_EncryptResponse_(Com_amazonaws_kms_EncryptResponse_CiphertextBlob_ToDafny(nativeOutput.CiphertextBlob), Com_amazonaws_kms_EncryptResponse_KeyId_ToDafny(nativeOutput.KeyId), Com_amazonaws_kms_EncryptResponse_EncryptionAlgorithm_ToDafny(nativeOutput.EncryptionAlgorithm)) + }() + +} + +func GenerateDataKeyInput_ToDafny(nativeInput kms.GenerateDataKeyInput) ComAmazonawsKmsTypes.GenerateDataKeyRequest { + + return func() ComAmazonawsKmsTypes.GenerateDataKeyRequest { + + return ComAmazonawsKmsTypes.Companion_GenerateDataKeyRequest_.Create_GenerateDataKeyRequest_(Com_amazonaws_kms_GenerateDataKeyRequest_KeyId_ToDafny(nativeInput.KeyId), Com_amazonaws_kms_GenerateDataKeyRequest_EncryptionContext_ToDafny(nativeInput.EncryptionContext), Com_amazonaws_kms_GenerateDataKeyRequest_NumberOfBytes_ToDafny(nativeInput.NumberOfBytes), Com_amazonaws_kms_GenerateDataKeyRequest_KeySpec_ToDafny(nativeInput.KeySpec), Com_amazonaws_kms_GenerateDataKeyRequest_GrantTokens_ToDafny(nativeInput.GrantTokens), Com_amazonaws_kms_GenerateDataKeyRequest_Recipient_ToDafny(nativeInput.Recipient), Com_amazonaws_kms_GenerateDataKeyRequest_DryRun_ToDafny(nativeInput.DryRun)) + }() + +} + +func GenerateDataKeyOutput_ToDafny(nativeOutput kms.GenerateDataKeyOutput) ComAmazonawsKmsTypes.GenerateDataKeyResponse { + + return func() ComAmazonawsKmsTypes.GenerateDataKeyResponse { + + return ComAmazonawsKmsTypes.Companion_GenerateDataKeyResponse_.Create_GenerateDataKeyResponse_(Com_amazonaws_kms_GenerateDataKeyResponse_CiphertextBlob_ToDafny(nativeOutput.CiphertextBlob), Com_amazonaws_kms_GenerateDataKeyResponse_Plaintext_ToDafny(nativeOutput.Plaintext), Com_amazonaws_kms_GenerateDataKeyResponse_KeyId_ToDafny(nativeOutput.KeyId), Com_amazonaws_kms_GenerateDataKeyResponse_CiphertextForRecipient_ToDafny(nativeOutput.CiphertextForRecipient)) + }() + +} + +func GenerateDataKeyPairInput_ToDafny(nativeInput kms.GenerateDataKeyPairInput) ComAmazonawsKmsTypes.GenerateDataKeyPairRequest { + + return func() ComAmazonawsKmsTypes.GenerateDataKeyPairRequest { + + return ComAmazonawsKmsTypes.Companion_GenerateDataKeyPairRequest_.Create_GenerateDataKeyPairRequest_(Com_amazonaws_kms_GenerateDataKeyPairRequest_EncryptionContext_ToDafny(nativeInput.EncryptionContext), Com_amazonaws_kms_GenerateDataKeyPairRequest_KeyId_ToDafny(nativeInput.KeyId), Com_amazonaws_kms_GenerateDataKeyPairRequest_KeyPairSpec_ToDafny(nativeInput.KeyPairSpec), Com_amazonaws_kms_GenerateDataKeyPairRequest_GrantTokens_ToDafny(nativeInput.GrantTokens), Com_amazonaws_kms_GenerateDataKeyPairRequest_Recipient_ToDafny(nativeInput.Recipient), Com_amazonaws_kms_GenerateDataKeyPairRequest_DryRun_ToDafny(nativeInput.DryRun)) + }() + +} + +func GenerateDataKeyPairOutput_ToDafny(nativeOutput kms.GenerateDataKeyPairOutput) ComAmazonawsKmsTypes.GenerateDataKeyPairResponse { + + return func() ComAmazonawsKmsTypes.GenerateDataKeyPairResponse { + + return ComAmazonawsKmsTypes.Companion_GenerateDataKeyPairResponse_.Create_GenerateDataKeyPairResponse_(Com_amazonaws_kms_GenerateDataKeyPairResponse_PrivateKeyCiphertextBlob_ToDafny(nativeOutput.PrivateKeyCiphertextBlob), Com_amazonaws_kms_GenerateDataKeyPairResponse_PrivateKeyPlaintext_ToDafny(nativeOutput.PrivateKeyPlaintext), Com_amazonaws_kms_GenerateDataKeyPairResponse_PublicKey_ToDafny(nativeOutput.PublicKey), Com_amazonaws_kms_GenerateDataKeyPairResponse_KeyId_ToDafny(nativeOutput.KeyId), Com_amazonaws_kms_GenerateDataKeyPairResponse_KeyPairSpec_ToDafny(nativeOutput.KeyPairSpec), Com_amazonaws_kms_GenerateDataKeyPairResponse_CiphertextForRecipient_ToDafny(nativeOutput.CiphertextForRecipient)) + }() + +} + +func GenerateDataKeyPairWithoutPlaintextInput_ToDafny(nativeInput kms.GenerateDataKeyPairWithoutPlaintextInput) ComAmazonawsKmsTypes.GenerateDataKeyPairWithoutPlaintextRequest { + + return func() ComAmazonawsKmsTypes.GenerateDataKeyPairWithoutPlaintextRequest { + + return ComAmazonawsKmsTypes.Companion_GenerateDataKeyPairWithoutPlaintextRequest_.Create_GenerateDataKeyPairWithoutPlaintextRequest_(Com_amazonaws_kms_GenerateDataKeyPairWithoutPlaintextRequest_EncryptionContext_ToDafny(nativeInput.EncryptionContext), Com_amazonaws_kms_GenerateDataKeyPairWithoutPlaintextRequest_KeyId_ToDafny(nativeInput.KeyId), Com_amazonaws_kms_GenerateDataKeyPairWithoutPlaintextRequest_KeyPairSpec_ToDafny(nativeInput.KeyPairSpec), Com_amazonaws_kms_GenerateDataKeyPairWithoutPlaintextRequest_GrantTokens_ToDafny(nativeInput.GrantTokens), Com_amazonaws_kms_GenerateDataKeyPairWithoutPlaintextRequest_DryRun_ToDafny(nativeInput.DryRun)) + }() + +} + +func GenerateDataKeyPairWithoutPlaintextOutput_ToDafny(nativeOutput kms.GenerateDataKeyPairWithoutPlaintextOutput) ComAmazonawsKmsTypes.GenerateDataKeyPairWithoutPlaintextResponse { + + return func() ComAmazonawsKmsTypes.GenerateDataKeyPairWithoutPlaintextResponse { + + return ComAmazonawsKmsTypes.Companion_GenerateDataKeyPairWithoutPlaintextResponse_.Create_GenerateDataKeyPairWithoutPlaintextResponse_(Com_amazonaws_kms_GenerateDataKeyPairWithoutPlaintextResponse_PrivateKeyCiphertextBlob_ToDafny(nativeOutput.PrivateKeyCiphertextBlob), Com_amazonaws_kms_GenerateDataKeyPairWithoutPlaintextResponse_PublicKey_ToDafny(nativeOutput.PublicKey), Com_amazonaws_kms_GenerateDataKeyPairWithoutPlaintextResponse_KeyId_ToDafny(nativeOutput.KeyId), Com_amazonaws_kms_GenerateDataKeyPairWithoutPlaintextResponse_KeyPairSpec_ToDafny(nativeOutput.KeyPairSpec)) + }() + +} + +func GenerateDataKeyWithoutPlaintextInput_ToDafny(nativeInput kms.GenerateDataKeyWithoutPlaintextInput) ComAmazonawsKmsTypes.GenerateDataKeyWithoutPlaintextRequest { + + return func() ComAmazonawsKmsTypes.GenerateDataKeyWithoutPlaintextRequest { + + return ComAmazonawsKmsTypes.Companion_GenerateDataKeyWithoutPlaintextRequest_.Create_GenerateDataKeyWithoutPlaintextRequest_(Com_amazonaws_kms_GenerateDataKeyWithoutPlaintextRequest_KeyId_ToDafny(nativeInput.KeyId), Com_amazonaws_kms_GenerateDataKeyWithoutPlaintextRequest_EncryptionContext_ToDafny(nativeInput.EncryptionContext), Com_amazonaws_kms_GenerateDataKeyWithoutPlaintextRequest_KeySpec_ToDafny(nativeInput.KeySpec), Com_amazonaws_kms_GenerateDataKeyWithoutPlaintextRequest_NumberOfBytes_ToDafny(nativeInput.NumberOfBytes), Com_amazonaws_kms_GenerateDataKeyWithoutPlaintextRequest_GrantTokens_ToDafny(nativeInput.GrantTokens), Com_amazonaws_kms_GenerateDataKeyWithoutPlaintextRequest_DryRun_ToDafny(nativeInput.DryRun)) + }() + +} + +func GenerateDataKeyWithoutPlaintextOutput_ToDafny(nativeOutput kms.GenerateDataKeyWithoutPlaintextOutput) ComAmazonawsKmsTypes.GenerateDataKeyWithoutPlaintextResponse { + + return func() ComAmazonawsKmsTypes.GenerateDataKeyWithoutPlaintextResponse { + + return ComAmazonawsKmsTypes.Companion_GenerateDataKeyWithoutPlaintextResponse_.Create_GenerateDataKeyWithoutPlaintextResponse_(Com_amazonaws_kms_GenerateDataKeyWithoutPlaintextResponse_CiphertextBlob_ToDafny(nativeOutput.CiphertextBlob), Com_amazonaws_kms_GenerateDataKeyWithoutPlaintextResponse_KeyId_ToDafny(nativeOutput.KeyId)) + }() + +} + +func GenerateMacInput_ToDafny(nativeInput kms.GenerateMacInput) ComAmazonawsKmsTypes.GenerateMacRequest { + + return func() ComAmazonawsKmsTypes.GenerateMacRequest { + + return ComAmazonawsKmsTypes.Companion_GenerateMacRequest_.Create_GenerateMacRequest_(Com_amazonaws_kms_GenerateMacRequest_Message_ToDafny(nativeInput.Message), Com_amazonaws_kms_GenerateMacRequest_KeyId_ToDafny(nativeInput.KeyId), Com_amazonaws_kms_GenerateMacRequest_MacAlgorithm_ToDafny(nativeInput.MacAlgorithm), Com_amazonaws_kms_GenerateMacRequest_GrantTokens_ToDafny(nativeInput.GrantTokens), Com_amazonaws_kms_GenerateMacRequest_DryRun_ToDafny(nativeInput.DryRun)) + }() + +} + +func GenerateMacOutput_ToDafny(nativeOutput kms.GenerateMacOutput) ComAmazonawsKmsTypes.GenerateMacResponse { + + return func() ComAmazonawsKmsTypes.GenerateMacResponse { + + return ComAmazonawsKmsTypes.Companion_GenerateMacResponse_.Create_GenerateMacResponse_(Com_amazonaws_kms_GenerateMacResponse_Mac_ToDafny(nativeOutput.Mac), Com_amazonaws_kms_GenerateMacResponse_MacAlgorithm_ToDafny(nativeOutput.MacAlgorithm), Com_amazonaws_kms_GenerateMacResponse_KeyId_ToDafny(nativeOutput.KeyId)) + }() + +} + +func GenerateRandomInput_ToDafny(nativeInput kms.GenerateRandomInput) ComAmazonawsKmsTypes.GenerateRandomRequest { + + return func() ComAmazonawsKmsTypes.GenerateRandomRequest { + + return ComAmazonawsKmsTypes.Companion_GenerateRandomRequest_.Create_GenerateRandomRequest_(Com_amazonaws_kms_GenerateRandomRequest_NumberOfBytes_ToDafny(nativeInput.NumberOfBytes), Com_amazonaws_kms_GenerateRandomRequest_CustomKeyStoreId_ToDafny(nativeInput.CustomKeyStoreId), Com_amazonaws_kms_GenerateRandomRequest_Recipient_ToDafny(nativeInput.Recipient)) + }() + +} + +func GenerateRandomOutput_ToDafny(nativeOutput kms.GenerateRandomOutput) ComAmazonawsKmsTypes.GenerateRandomResponse { + + return func() ComAmazonawsKmsTypes.GenerateRandomResponse { + + return ComAmazonawsKmsTypes.Companion_GenerateRandomResponse_.Create_GenerateRandomResponse_(Com_amazonaws_kms_GenerateRandomResponse_Plaintext_ToDafny(nativeOutput.Plaintext), Com_amazonaws_kms_GenerateRandomResponse_CiphertextForRecipient_ToDafny(nativeOutput.CiphertextForRecipient)) + }() + +} + +func GetKeyPolicyInput_ToDafny(nativeInput kms.GetKeyPolicyInput) ComAmazonawsKmsTypes.GetKeyPolicyRequest { + + return func() ComAmazonawsKmsTypes.GetKeyPolicyRequest { + + return ComAmazonawsKmsTypes.Companion_GetKeyPolicyRequest_.Create_GetKeyPolicyRequest_(Com_amazonaws_kms_GetKeyPolicyRequest_KeyId_ToDafny(nativeInput.KeyId), Com_amazonaws_kms_GetKeyPolicyRequest_PolicyName_ToDafny(nativeInput.PolicyName)) + }() + +} + +func GetKeyPolicyOutput_ToDafny(nativeOutput kms.GetKeyPolicyOutput) ComAmazonawsKmsTypes.GetKeyPolicyResponse { + + return func() ComAmazonawsKmsTypes.GetKeyPolicyResponse { + + return ComAmazonawsKmsTypes.Companion_GetKeyPolicyResponse_.Create_GetKeyPolicyResponse_(Com_amazonaws_kms_GetKeyPolicyResponse_Policy_ToDafny(nativeOutput.Policy), Com_amazonaws_kms_GetKeyPolicyResponse_PolicyName_ToDafny(nativeOutput.PolicyName)) + }() + +} + +func GetKeyRotationStatusInput_ToDafny(nativeInput kms.GetKeyRotationStatusInput) ComAmazonawsKmsTypes.GetKeyRotationStatusRequest { + + return func() ComAmazonawsKmsTypes.GetKeyRotationStatusRequest { + + return ComAmazonawsKmsTypes.Companion_GetKeyRotationStatusRequest_.Create_GetKeyRotationStatusRequest_(Com_amazonaws_kms_GetKeyRotationStatusRequest_KeyId_ToDafny(nativeInput.KeyId)) + }() + +} + +func GetKeyRotationStatusOutput_ToDafny(nativeOutput kms.GetKeyRotationStatusOutput) ComAmazonawsKmsTypes.GetKeyRotationStatusResponse { + + return func() ComAmazonawsKmsTypes.GetKeyRotationStatusResponse { + + return ComAmazonawsKmsTypes.Companion_GetKeyRotationStatusResponse_.Create_GetKeyRotationStatusResponse_(Com_amazonaws_kms_GetKeyRotationStatusResponse_KeyRotationEnabled_ToDafny(nativeOutput.KeyRotationEnabled), Com_amazonaws_kms_GetKeyRotationStatusResponse_KeyId_ToDafny(nativeOutput.KeyId), Com_amazonaws_kms_GetKeyRotationStatusResponse_RotationPeriodInDays_ToDafny(nativeOutput.RotationPeriodInDays), Com_amazonaws_kms_GetKeyRotationStatusResponse_NextRotationDate_ToDafny(nativeOutput.NextRotationDate), Com_amazonaws_kms_GetKeyRotationStatusResponse_OnDemandRotationStartDate_ToDafny(nativeOutput.OnDemandRotationStartDate)) + }() + +} + +func GetParametersForImportInput_ToDafny(nativeInput kms.GetParametersForImportInput) ComAmazonawsKmsTypes.GetParametersForImportRequest { + + return func() ComAmazonawsKmsTypes.GetParametersForImportRequest { + + return ComAmazonawsKmsTypes.Companion_GetParametersForImportRequest_.Create_GetParametersForImportRequest_(Com_amazonaws_kms_GetParametersForImportRequest_KeyId_ToDafny(nativeInput.KeyId), Com_amazonaws_kms_GetParametersForImportRequest_WrappingAlgorithm_ToDafny(nativeInput.WrappingAlgorithm), Com_amazonaws_kms_GetParametersForImportRequest_WrappingKeySpec_ToDafny(nativeInput.WrappingKeySpec)) + }() + +} + +func GetParametersForImportOutput_ToDafny(nativeOutput kms.GetParametersForImportOutput) ComAmazonawsKmsTypes.GetParametersForImportResponse { + + return func() ComAmazonawsKmsTypes.GetParametersForImportResponse { + + return ComAmazonawsKmsTypes.Companion_GetParametersForImportResponse_.Create_GetParametersForImportResponse_(Com_amazonaws_kms_GetParametersForImportResponse_KeyId_ToDafny(nativeOutput.KeyId), Com_amazonaws_kms_GetParametersForImportResponse_ImportToken_ToDafny(nativeOutput.ImportToken), Com_amazonaws_kms_GetParametersForImportResponse_PublicKey_ToDafny(nativeOutput.PublicKey), Com_amazonaws_kms_GetParametersForImportResponse_ParametersValidTo_ToDafny(nativeOutput.ParametersValidTo)) + }() + +} + +func GetPublicKeyInput_ToDafny(nativeInput kms.GetPublicKeyInput) ComAmazonawsKmsTypes.GetPublicKeyRequest { + + return func() ComAmazonawsKmsTypes.GetPublicKeyRequest { + + return ComAmazonawsKmsTypes.Companion_GetPublicKeyRequest_.Create_GetPublicKeyRequest_(Com_amazonaws_kms_GetPublicKeyRequest_KeyId_ToDafny(nativeInput.KeyId), Com_amazonaws_kms_GetPublicKeyRequest_GrantTokens_ToDafny(nativeInput.GrantTokens)) + }() + +} + +func GetPublicKeyOutput_ToDafny(nativeOutput kms.GetPublicKeyOutput) ComAmazonawsKmsTypes.GetPublicKeyResponse { + + return func() ComAmazonawsKmsTypes.GetPublicKeyResponse { + + return ComAmazonawsKmsTypes.Companion_GetPublicKeyResponse_.Create_GetPublicKeyResponse_(Com_amazonaws_kms_GetPublicKeyResponse_KeyId_ToDafny(nativeOutput.KeyId), Com_amazonaws_kms_GetPublicKeyResponse_PublicKey_ToDafny(nativeOutput.PublicKey), Com_amazonaws_kms_GetPublicKeyResponse_CustomerMasterKeySpec_ToDafny(nativeOutput.CustomerMasterKeySpec), Com_amazonaws_kms_GetPublicKeyResponse_KeySpec_ToDafny(nativeOutput.KeySpec), Com_amazonaws_kms_GetPublicKeyResponse_KeyUsage_ToDafny(nativeOutput.KeyUsage), Com_amazonaws_kms_GetPublicKeyResponse_EncryptionAlgorithms_ToDafny(nativeOutput.EncryptionAlgorithms), Com_amazonaws_kms_GetPublicKeyResponse_SigningAlgorithms_ToDafny(nativeOutput.SigningAlgorithms), Com_amazonaws_kms_GetPublicKeyResponse_KeyAgreementAlgorithms_ToDafny(nativeOutput.KeyAgreementAlgorithms)) + }() + +} + +func ImportKeyMaterialInput_ToDafny(nativeInput kms.ImportKeyMaterialInput) ComAmazonawsKmsTypes.ImportKeyMaterialRequest { + + return func() ComAmazonawsKmsTypes.ImportKeyMaterialRequest { + + return ComAmazonawsKmsTypes.Companion_ImportKeyMaterialRequest_.Create_ImportKeyMaterialRequest_(Com_amazonaws_kms_ImportKeyMaterialRequest_KeyId_ToDafny(nativeInput.KeyId), Com_amazonaws_kms_ImportKeyMaterialRequest_ImportToken_ToDafny(nativeInput.ImportToken), Com_amazonaws_kms_ImportKeyMaterialRequest_EncryptedKeyMaterial_ToDafny(nativeInput.EncryptedKeyMaterial), Com_amazonaws_kms_ImportKeyMaterialRequest_ValidTo_ToDafny(nativeInput.ValidTo), Com_amazonaws_kms_ImportKeyMaterialRequest_ExpirationModel_ToDafny(nativeInput.ExpirationModel)) + }() + +} + +func ImportKeyMaterialOutput_ToDafny(nativeOutput kms.ImportKeyMaterialOutput) ComAmazonawsKmsTypes.ImportKeyMaterialResponse { + + return func() ComAmazonawsKmsTypes.ImportKeyMaterialResponse { + + return ComAmazonawsKmsTypes.Companion_ImportKeyMaterialResponse_.Create_ImportKeyMaterialResponse_() + }() + +} + +func ListAliasesInput_ToDafny(nativeInput kms.ListAliasesInput) ComAmazonawsKmsTypes.ListAliasesRequest { + + return func() ComAmazonawsKmsTypes.ListAliasesRequest { + + return ComAmazonawsKmsTypes.Companion_ListAliasesRequest_.Create_ListAliasesRequest_(Com_amazonaws_kms_ListAliasesRequest_KeyId_ToDafny(nativeInput.KeyId), Com_amazonaws_kms_ListAliasesRequest_Limit_ToDafny(nativeInput.Limit), Com_amazonaws_kms_ListAliasesRequest_Marker_ToDafny(nativeInput.Marker)) + }() + +} + +func ListAliasesOutput_ToDafny(nativeOutput kms.ListAliasesOutput) ComAmazonawsKmsTypes.ListAliasesResponse { + + return func() ComAmazonawsKmsTypes.ListAliasesResponse { + + return ComAmazonawsKmsTypes.Companion_ListAliasesResponse_.Create_ListAliasesResponse_(Com_amazonaws_kms_ListAliasesResponse_Aliases_ToDafny(nativeOutput.Aliases), Com_amazonaws_kms_ListAliasesResponse_NextMarker_ToDafny(nativeOutput.NextMarker), Com_amazonaws_kms_ListAliasesResponse_Truncated_ToDafny(nativeOutput.Truncated)) + }() + +} + +func ListGrantsInput_ToDafny(nativeInput kms.ListGrantsInput) ComAmazonawsKmsTypes.ListGrantsRequest { + + return func() ComAmazonawsKmsTypes.ListGrantsRequest { + + return ComAmazonawsKmsTypes.Companion_ListGrantsRequest_.Create_ListGrantsRequest_(Com_amazonaws_kms_ListGrantsRequest_Limit_ToDafny(nativeInput.Limit), Com_amazonaws_kms_ListGrantsRequest_Marker_ToDafny(nativeInput.Marker), Com_amazonaws_kms_ListGrantsRequest_KeyId_ToDafny(nativeInput.KeyId), Com_amazonaws_kms_ListGrantsRequest_GrantId_ToDafny(nativeInput.GrantId), Com_amazonaws_kms_ListGrantsRequest_GranteePrincipal_ToDafny(nativeInput.GranteePrincipal)) + }() + +} + +func ListGrantsOutput_ToDafny(nativeOutput kms.ListGrantsOutput) ComAmazonawsKmsTypes.ListGrantsResponse { + + return func() ComAmazonawsKmsTypes.ListGrantsResponse { + + return ComAmazonawsKmsTypes.Companion_ListGrantsResponse_.Create_ListGrantsResponse_(Com_amazonaws_kms_ListGrantsResponse_Grants_ToDafny(nativeOutput.Grants), Com_amazonaws_kms_ListGrantsResponse_NextMarker_ToDafny(nativeOutput.NextMarker), Com_amazonaws_kms_ListGrantsResponse_Truncated_ToDafny(nativeOutput.Truncated)) + }() + +} + +func ListKeyPoliciesInput_ToDafny(nativeInput kms.ListKeyPoliciesInput) ComAmazonawsKmsTypes.ListKeyPoliciesRequest { + + return func() ComAmazonawsKmsTypes.ListKeyPoliciesRequest { + + return ComAmazonawsKmsTypes.Companion_ListKeyPoliciesRequest_.Create_ListKeyPoliciesRequest_(Com_amazonaws_kms_ListKeyPoliciesRequest_KeyId_ToDafny(nativeInput.KeyId), Com_amazonaws_kms_ListKeyPoliciesRequest_Limit_ToDafny(nativeInput.Limit), Com_amazonaws_kms_ListKeyPoliciesRequest_Marker_ToDafny(nativeInput.Marker)) + }() + +} + +func ListKeyPoliciesOutput_ToDafny(nativeOutput kms.ListKeyPoliciesOutput) ComAmazonawsKmsTypes.ListKeyPoliciesResponse { + + return func() ComAmazonawsKmsTypes.ListKeyPoliciesResponse { + + return ComAmazonawsKmsTypes.Companion_ListKeyPoliciesResponse_.Create_ListKeyPoliciesResponse_(Com_amazonaws_kms_ListKeyPoliciesResponse_PolicyNames_ToDafny(nativeOutput.PolicyNames), Com_amazonaws_kms_ListKeyPoliciesResponse_NextMarker_ToDafny(nativeOutput.NextMarker), Com_amazonaws_kms_ListKeyPoliciesResponse_Truncated_ToDafny(nativeOutput.Truncated)) + }() + +} + +func ListKeyRotationsInput_ToDafny(nativeInput kms.ListKeyRotationsInput) ComAmazonawsKmsTypes.ListKeyRotationsRequest { + + return func() ComAmazonawsKmsTypes.ListKeyRotationsRequest { + + return ComAmazonawsKmsTypes.Companion_ListKeyRotationsRequest_.Create_ListKeyRotationsRequest_(Com_amazonaws_kms_ListKeyRotationsRequest_KeyId_ToDafny(nativeInput.KeyId), Com_amazonaws_kms_ListKeyRotationsRequest_Limit_ToDafny(nativeInput.Limit), Com_amazonaws_kms_ListKeyRotationsRequest_Marker_ToDafny(nativeInput.Marker)) + }() + +} + +func ListKeyRotationsOutput_ToDafny(nativeOutput kms.ListKeyRotationsOutput) ComAmazonawsKmsTypes.ListKeyRotationsResponse { + + return func() ComAmazonawsKmsTypes.ListKeyRotationsResponse { + + return ComAmazonawsKmsTypes.Companion_ListKeyRotationsResponse_.Create_ListKeyRotationsResponse_(Com_amazonaws_kms_ListKeyRotationsResponse_Rotations_ToDafny(nativeOutput.Rotations), Com_amazonaws_kms_ListKeyRotationsResponse_NextMarker_ToDafny(nativeOutput.NextMarker), Com_amazonaws_kms_ListKeyRotationsResponse_Truncated_ToDafny(nativeOutput.Truncated)) + }() + +} + +func ListKeysInput_ToDafny(nativeInput kms.ListKeysInput) ComAmazonawsKmsTypes.ListKeysRequest { + + return func() ComAmazonawsKmsTypes.ListKeysRequest { + + return ComAmazonawsKmsTypes.Companion_ListKeysRequest_.Create_ListKeysRequest_(Com_amazonaws_kms_ListKeysRequest_Limit_ToDafny(nativeInput.Limit), Com_amazonaws_kms_ListKeysRequest_Marker_ToDafny(nativeInput.Marker)) + }() + +} + +func ListKeysOutput_ToDafny(nativeOutput kms.ListKeysOutput) ComAmazonawsKmsTypes.ListKeysResponse { + + return func() ComAmazonawsKmsTypes.ListKeysResponse { + + return ComAmazonawsKmsTypes.Companion_ListKeysResponse_.Create_ListKeysResponse_(Com_amazonaws_kms_ListKeysResponse_Keys_ToDafny(nativeOutput.Keys), Com_amazonaws_kms_ListKeysResponse_NextMarker_ToDafny(nativeOutput.NextMarker), Com_amazonaws_kms_ListKeysResponse_Truncated_ToDafny(nativeOutput.Truncated)) + }() + +} + +func ListResourceTagsInput_ToDafny(nativeInput kms.ListResourceTagsInput) ComAmazonawsKmsTypes.ListResourceTagsRequest { + + return func() ComAmazonawsKmsTypes.ListResourceTagsRequest { + + return ComAmazonawsKmsTypes.Companion_ListResourceTagsRequest_.Create_ListResourceTagsRequest_(Com_amazonaws_kms_ListResourceTagsRequest_KeyId_ToDafny(nativeInput.KeyId), Com_amazonaws_kms_ListResourceTagsRequest_Limit_ToDafny(nativeInput.Limit), Com_amazonaws_kms_ListResourceTagsRequest_Marker_ToDafny(nativeInput.Marker)) + }() + +} + +func ListResourceTagsOutput_ToDafny(nativeOutput kms.ListResourceTagsOutput) ComAmazonawsKmsTypes.ListResourceTagsResponse { + + return func() ComAmazonawsKmsTypes.ListResourceTagsResponse { + + return ComAmazonawsKmsTypes.Companion_ListResourceTagsResponse_.Create_ListResourceTagsResponse_(Com_amazonaws_kms_ListResourceTagsResponse_Tags_ToDafny(nativeOutput.Tags), Com_amazonaws_kms_ListResourceTagsResponse_NextMarker_ToDafny(nativeOutput.NextMarker), Com_amazonaws_kms_ListResourceTagsResponse_Truncated_ToDafny(nativeOutput.Truncated)) + }() + +} + +func PutKeyPolicyInput_ToDafny(nativeInput kms.PutKeyPolicyInput) ComAmazonawsKmsTypes.PutKeyPolicyRequest { + + return func() ComAmazonawsKmsTypes.PutKeyPolicyRequest { + + return ComAmazonawsKmsTypes.Companion_PutKeyPolicyRequest_.Create_PutKeyPolicyRequest_(Com_amazonaws_kms_PutKeyPolicyRequest_KeyId_ToDafny(nativeInput.KeyId), Com_amazonaws_kms_PutKeyPolicyRequest_PolicyName_ToDafny(nativeInput.PolicyName), Com_amazonaws_kms_PutKeyPolicyRequest_Policy_ToDafny(nativeInput.Policy), Com_amazonaws_kms_PutKeyPolicyRequest_BypassPolicyLockoutSafetyCheck_ToDafny(nativeInput.BypassPolicyLockoutSafetyCheck)) + }() + +} + +func ReEncryptInput_ToDafny(nativeInput kms.ReEncryptInput) ComAmazonawsKmsTypes.ReEncryptRequest { + + return func() ComAmazonawsKmsTypes.ReEncryptRequest { + + return ComAmazonawsKmsTypes.Companion_ReEncryptRequest_.Create_ReEncryptRequest_(Com_amazonaws_kms_ReEncryptRequest_CiphertextBlob_ToDafny(nativeInput.CiphertextBlob), Com_amazonaws_kms_ReEncryptRequest_SourceEncryptionContext_ToDafny(nativeInput.SourceEncryptionContext), Com_amazonaws_kms_ReEncryptRequest_SourceKeyId_ToDafny(nativeInput.SourceKeyId), Com_amazonaws_kms_ReEncryptRequest_DestinationKeyId_ToDafny(nativeInput.DestinationKeyId), Com_amazonaws_kms_ReEncryptRequest_DestinationEncryptionContext_ToDafny(nativeInput.DestinationEncryptionContext), Com_amazonaws_kms_ReEncryptRequest_SourceEncryptionAlgorithm_ToDafny(nativeInput.SourceEncryptionAlgorithm), Com_amazonaws_kms_ReEncryptRequest_DestinationEncryptionAlgorithm_ToDafny(nativeInput.DestinationEncryptionAlgorithm), Com_amazonaws_kms_ReEncryptRequest_GrantTokens_ToDafny(nativeInput.GrantTokens), Com_amazonaws_kms_ReEncryptRequest_DryRun_ToDafny(nativeInput.DryRun)) + }() + +} + +func ReEncryptOutput_ToDafny(nativeOutput kms.ReEncryptOutput) ComAmazonawsKmsTypes.ReEncryptResponse { + + return func() ComAmazonawsKmsTypes.ReEncryptResponse { + + return ComAmazonawsKmsTypes.Companion_ReEncryptResponse_.Create_ReEncryptResponse_(Com_amazonaws_kms_ReEncryptResponse_CiphertextBlob_ToDafny(nativeOutput.CiphertextBlob), Com_amazonaws_kms_ReEncryptResponse_SourceKeyId_ToDafny(nativeOutput.SourceKeyId), Com_amazonaws_kms_ReEncryptResponse_KeyId_ToDafny(nativeOutput.KeyId), Com_amazonaws_kms_ReEncryptResponse_SourceEncryptionAlgorithm_ToDafny(nativeOutput.SourceEncryptionAlgorithm), Com_amazonaws_kms_ReEncryptResponse_DestinationEncryptionAlgorithm_ToDafny(nativeOutput.DestinationEncryptionAlgorithm)) + }() + +} + +func ReplicateKeyInput_ToDafny(nativeInput kms.ReplicateKeyInput) ComAmazonawsKmsTypes.ReplicateKeyRequest { + + return func() ComAmazonawsKmsTypes.ReplicateKeyRequest { + + return ComAmazonawsKmsTypes.Companion_ReplicateKeyRequest_.Create_ReplicateKeyRequest_(Com_amazonaws_kms_ReplicateKeyRequest_KeyId_ToDafny(nativeInput.KeyId), Com_amazonaws_kms_ReplicateKeyRequest_ReplicaRegion_ToDafny(nativeInput.ReplicaRegion), Com_amazonaws_kms_ReplicateKeyRequest_Policy_ToDafny(nativeInput.Policy), Com_amazonaws_kms_ReplicateKeyRequest_BypassPolicyLockoutSafetyCheck_ToDafny(nativeInput.BypassPolicyLockoutSafetyCheck), Com_amazonaws_kms_ReplicateKeyRequest_Description_ToDafny(nativeInput.Description), Com_amazonaws_kms_ReplicateKeyRequest_Tags_ToDafny(nativeInput.Tags)) + }() + +} + +func ReplicateKeyOutput_ToDafny(nativeOutput kms.ReplicateKeyOutput) ComAmazonawsKmsTypes.ReplicateKeyResponse { + + return func() ComAmazonawsKmsTypes.ReplicateKeyResponse { + + return ComAmazonawsKmsTypes.Companion_ReplicateKeyResponse_.Create_ReplicateKeyResponse_(Com_amazonaws_kms_ReplicateKeyResponse_ReplicaKeyMetadata_ToDafny(nativeOutput.ReplicaKeyMetadata), Com_amazonaws_kms_ReplicateKeyResponse_ReplicaPolicy_ToDafny(nativeOutput.ReplicaPolicy), Com_amazonaws_kms_ReplicateKeyResponse_ReplicaTags_ToDafny(nativeOutput.ReplicaTags)) + }() + +} + +func RetireGrantInput_ToDafny(nativeInput kms.RetireGrantInput) ComAmazonawsKmsTypes.RetireGrantRequest { + + return func() ComAmazonawsKmsTypes.RetireGrantRequest { + + return ComAmazonawsKmsTypes.Companion_RetireGrantRequest_.Create_RetireGrantRequest_(Com_amazonaws_kms_RetireGrantRequest_GrantToken_ToDafny(nativeInput.GrantToken), Com_amazonaws_kms_RetireGrantRequest_KeyId_ToDafny(nativeInput.KeyId), Com_amazonaws_kms_RetireGrantRequest_GrantId_ToDafny(nativeInput.GrantId), Com_amazonaws_kms_RetireGrantRequest_DryRun_ToDafny(nativeInput.DryRun)) + }() + +} + +func RevokeGrantInput_ToDafny(nativeInput kms.RevokeGrantInput) ComAmazonawsKmsTypes.RevokeGrantRequest { + + return func() ComAmazonawsKmsTypes.RevokeGrantRequest { + + return ComAmazonawsKmsTypes.Companion_RevokeGrantRequest_.Create_RevokeGrantRequest_(Com_amazonaws_kms_RevokeGrantRequest_KeyId_ToDafny(nativeInput.KeyId), Com_amazonaws_kms_RevokeGrantRequest_GrantId_ToDafny(nativeInput.GrantId), Com_amazonaws_kms_RevokeGrantRequest_DryRun_ToDafny(nativeInput.DryRun)) + }() + +} + +func RotateKeyOnDemandInput_ToDafny(nativeInput kms.RotateKeyOnDemandInput) ComAmazonawsKmsTypes.RotateKeyOnDemandRequest { + + return func() ComAmazonawsKmsTypes.RotateKeyOnDemandRequest { + + return ComAmazonawsKmsTypes.Companion_RotateKeyOnDemandRequest_.Create_RotateKeyOnDemandRequest_(Com_amazonaws_kms_RotateKeyOnDemandRequest_KeyId_ToDafny(nativeInput.KeyId)) + }() + +} + +func RotateKeyOnDemandOutput_ToDafny(nativeOutput kms.RotateKeyOnDemandOutput) ComAmazonawsKmsTypes.RotateKeyOnDemandResponse { + + return func() ComAmazonawsKmsTypes.RotateKeyOnDemandResponse { + + return ComAmazonawsKmsTypes.Companion_RotateKeyOnDemandResponse_.Create_RotateKeyOnDemandResponse_(Com_amazonaws_kms_RotateKeyOnDemandResponse_KeyId_ToDafny(nativeOutput.KeyId)) + }() + +} + +func ScheduleKeyDeletionInput_ToDafny(nativeInput kms.ScheduleKeyDeletionInput) ComAmazonawsKmsTypes.ScheduleKeyDeletionRequest { + + return func() ComAmazonawsKmsTypes.ScheduleKeyDeletionRequest { + + return ComAmazonawsKmsTypes.Companion_ScheduleKeyDeletionRequest_.Create_ScheduleKeyDeletionRequest_(Com_amazonaws_kms_ScheduleKeyDeletionRequest_KeyId_ToDafny(nativeInput.KeyId), Com_amazonaws_kms_ScheduleKeyDeletionRequest_PendingWindowInDays_ToDafny(nativeInput.PendingWindowInDays)) + }() + +} + +func ScheduleKeyDeletionOutput_ToDafny(nativeOutput kms.ScheduleKeyDeletionOutput) ComAmazonawsKmsTypes.ScheduleKeyDeletionResponse { + + return func() ComAmazonawsKmsTypes.ScheduleKeyDeletionResponse { + + return ComAmazonawsKmsTypes.Companion_ScheduleKeyDeletionResponse_.Create_ScheduleKeyDeletionResponse_(Com_amazonaws_kms_ScheduleKeyDeletionResponse_KeyId_ToDafny(nativeOutput.KeyId), Com_amazonaws_kms_ScheduleKeyDeletionResponse_DeletionDate_ToDafny(nativeOutput.DeletionDate), Com_amazonaws_kms_ScheduleKeyDeletionResponse_KeyState_ToDafny(nativeOutput.KeyState), Com_amazonaws_kms_ScheduleKeyDeletionResponse_PendingWindowInDays_ToDafny(nativeOutput.PendingWindowInDays)) + }() + +} + +func SignInput_ToDafny(nativeInput kms.SignInput) ComAmazonawsKmsTypes.SignRequest { + + return func() ComAmazonawsKmsTypes.SignRequest { + + return ComAmazonawsKmsTypes.Companion_SignRequest_.Create_SignRequest_(Com_amazonaws_kms_SignRequest_KeyId_ToDafny(nativeInput.KeyId), Com_amazonaws_kms_SignRequest_Message_ToDafny(nativeInput.Message), Com_amazonaws_kms_SignRequest_MessageType_ToDafny(nativeInput.MessageType), Com_amazonaws_kms_SignRequest_GrantTokens_ToDafny(nativeInput.GrantTokens), Com_amazonaws_kms_SignRequest_SigningAlgorithm_ToDafny(nativeInput.SigningAlgorithm), Com_amazonaws_kms_SignRequest_DryRun_ToDafny(nativeInput.DryRun)) + }() + +} + +func SignOutput_ToDafny(nativeOutput kms.SignOutput) ComAmazonawsKmsTypes.SignResponse { + + return func() ComAmazonawsKmsTypes.SignResponse { + + return ComAmazonawsKmsTypes.Companion_SignResponse_.Create_SignResponse_(Com_amazonaws_kms_SignResponse_KeyId_ToDafny(nativeOutput.KeyId), Com_amazonaws_kms_SignResponse_Signature_ToDafny(nativeOutput.Signature), Com_amazonaws_kms_SignResponse_SigningAlgorithm_ToDafny(nativeOutput.SigningAlgorithm)) + }() + +} + +func TagResourceInput_ToDafny(nativeInput kms.TagResourceInput) ComAmazonawsKmsTypes.TagResourceRequest { + + return func() ComAmazonawsKmsTypes.TagResourceRequest { + + return ComAmazonawsKmsTypes.Companion_TagResourceRequest_.Create_TagResourceRequest_(Com_amazonaws_kms_TagResourceRequest_KeyId_ToDafny(nativeInput.KeyId), Com_amazonaws_kms_TagResourceRequest_Tags_ToDafny(nativeInput.Tags)) + }() + +} + +func UntagResourceInput_ToDafny(nativeInput kms.UntagResourceInput) ComAmazonawsKmsTypes.UntagResourceRequest { + + return func() ComAmazonawsKmsTypes.UntagResourceRequest { + + return ComAmazonawsKmsTypes.Companion_UntagResourceRequest_.Create_UntagResourceRequest_(Com_amazonaws_kms_UntagResourceRequest_KeyId_ToDafny(nativeInput.KeyId), Com_amazonaws_kms_UntagResourceRequest_TagKeys_ToDafny(nativeInput.TagKeys)) + }() + +} + +func UpdateAliasInput_ToDafny(nativeInput kms.UpdateAliasInput) ComAmazonawsKmsTypes.UpdateAliasRequest { + + return func() ComAmazonawsKmsTypes.UpdateAliasRequest { + + return ComAmazonawsKmsTypes.Companion_UpdateAliasRequest_.Create_UpdateAliasRequest_(Com_amazonaws_kms_UpdateAliasRequest_AliasName_ToDafny(nativeInput.AliasName), Com_amazonaws_kms_UpdateAliasRequest_TargetKeyId_ToDafny(nativeInput.TargetKeyId)) + }() + +} + +func UpdateCustomKeyStoreInput_ToDafny(nativeInput kms.UpdateCustomKeyStoreInput) ComAmazonawsKmsTypes.UpdateCustomKeyStoreRequest { + + return func() ComAmazonawsKmsTypes.UpdateCustomKeyStoreRequest { + + return ComAmazonawsKmsTypes.Companion_UpdateCustomKeyStoreRequest_.Create_UpdateCustomKeyStoreRequest_(Com_amazonaws_kms_UpdateCustomKeyStoreRequest_CustomKeyStoreId_ToDafny(nativeInput.CustomKeyStoreId), Com_amazonaws_kms_UpdateCustomKeyStoreRequest_NewCustomKeyStoreName_ToDafny(nativeInput.NewCustomKeyStoreName), Com_amazonaws_kms_UpdateCustomKeyStoreRequest_KeyStorePassword_ToDafny(nativeInput.KeyStorePassword), Com_amazonaws_kms_UpdateCustomKeyStoreRequest_CloudHsmClusterId_ToDafny(nativeInput.CloudHsmClusterId), Com_amazonaws_kms_UpdateCustomKeyStoreRequest_XksProxyUriEndpoint_ToDafny(nativeInput.XksProxyUriEndpoint), Com_amazonaws_kms_UpdateCustomKeyStoreRequest_XksProxyUriPath_ToDafny(nativeInput.XksProxyUriPath), Com_amazonaws_kms_UpdateCustomKeyStoreRequest_XksProxyVpcEndpointServiceName_ToDafny(nativeInput.XksProxyVpcEndpointServiceName), Com_amazonaws_kms_UpdateCustomKeyStoreRequest_XksProxyAuthenticationCredential_ToDafny(nativeInput.XksProxyAuthenticationCredential), Com_amazonaws_kms_UpdateCustomKeyStoreRequest_XksProxyConnectivity_ToDafny(nativeInput.XksProxyConnectivity)) + }() + +} + +func UpdateCustomKeyStoreOutput_ToDafny(nativeOutput kms.UpdateCustomKeyStoreOutput) ComAmazonawsKmsTypes.UpdateCustomKeyStoreResponse { + + return func() ComAmazonawsKmsTypes.UpdateCustomKeyStoreResponse { + + return ComAmazonawsKmsTypes.Companion_UpdateCustomKeyStoreResponse_.Create_UpdateCustomKeyStoreResponse_() + }() + +} + +func UpdateKeyDescriptionInput_ToDafny(nativeInput kms.UpdateKeyDescriptionInput) ComAmazonawsKmsTypes.UpdateKeyDescriptionRequest { + + return func() ComAmazonawsKmsTypes.UpdateKeyDescriptionRequest { + + return ComAmazonawsKmsTypes.Companion_UpdateKeyDescriptionRequest_.Create_UpdateKeyDescriptionRequest_(Com_amazonaws_kms_UpdateKeyDescriptionRequest_KeyId_ToDafny(nativeInput.KeyId), Com_amazonaws_kms_UpdateKeyDescriptionRequest_Description_ToDafny(nativeInput.Description)) + }() + +} + +func UpdatePrimaryRegionInput_ToDafny(nativeInput kms.UpdatePrimaryRegionInput) ComAmazonawsKmsTypes.UpdatePrimaryRegionRequest { + + return func() ComAmazonawsKmsTypes.UpdatePrimaryRegionRequest { + + return ComAmazonawsKmsTypes.Companion_UpdatePrimaryRegionRequest_.Create_UpdatePrimaryRegionRequest_(Com_amazonaws_kms_UpdatePrimaryRegionRequest_KeyId_ToDafny(nativeInput.KeyId), Com_amazonaws_kms_UpdatePrimaryRegionRequest_PrimaryRegion_ToDafny(nativeInput.PrimaryRegion)) + }() + +} + +func VerifyInput_ToDafny(nativeInput kms.VerifyInput) ComAmazonawsKmsTypes.VerifyRequest { + + return func() ComAmazonawsKmsTypes.VerifyRequest { + + return ComAmazonawsKmsTypes.Companion_VerifyRequest_.Create_VerifyRequest_(Com_amazonaws_kms_VerifyRequest_KeyId_ToDafny(nativeInput.KeyId), Com_amazonaws_kms_VerifyRequest_Message_ToDafny(nativeInput.Message), Com_amazonaws_kms_VerifyRequest_MessageType_ToDafny(nativeInput.MessageType), Com_amazonaws_kms_VerifyRequest_Signature_ToDafny(nativeInput.Signature), Com_amazonaws_kms_VerifyRequest_SigningAlgorithm_ToDafny(nativeInput.SigningAlgorithm), Com_amazonaws_kms_VerifyRequest_GrantTokens_ToDafny(nativeInput.GrantTokens), Com_amazonaws_kms_VerifyRequest_DryRun_ToDafny(nativeInput.DryRun)) + }() + +} + +func VerifyOutput_ToDafny(nativeOutput kms.VerifyOutput) ComAmazonawsKmsTypes.VerifyResponse { + + return func() ComAmazonawsKmsTypes.VerifyResponse { + + return ComAmazonawsKmsTypes.Companion_VerifyResponse_.Create_VerifyResponse_(Com_amazonaws_kms_VerifyResponse_KeyId_ToDafny(nativeOutput.KeyId), Com_amazonaws_kms_VerifyResponse_SignatureValid_ToDafny(nativeOutput.SignatureValid), Com_amazonaws_kms_VerifyResponse_SigningAlgorithm_ToDafny(nativeOutput.SigningAlgorithm)) + }() + +} + +func VerifyMacInput_ToDafny(nativeInput kms.VerifyMacInput) ComAmazonawsKmsTypes.VerifyMacRequest { + + return func() ComAmazonawsKmsTypes.VerifyMacRequest { + + return ComAmazonawsKmsTypes.Companion_VerifyMacRequest_.Create_VerifyMacRequest_(Com_amazonaws_kms_VerifyMacRequest_Message_ToDafny(nativeInput.Message), Com_amazonaws_kms_VerifyMacRequest_KeyId_ToDafny(nativeInput.KeyId), Com_amazonaws_kms_VerifyMacRequest_MacAlgorithm_ToDafny(nativeInput.MacAlgorithm), Com_amazonaws_kms_VerifyMacRequest_Mac_ToDafny(nativeInput.Mac), Com_amazonaws_kms_VerifyMacRequest_GrantTokens_ToDafny(nativeInput.GrantTokens), Com_amazonaws_kms_VerifyMacRequest_DryRun_ToDafny(nativeInput.DryRun)) + }() + +} + +func VerifyMacOutput_ToDafny(nativeOutput kms.VerifyMacOutput) ComAmazonawsKmsTypes.VerifyMacResponse { + + return func() ComAmazonawsKmsTypes.VerifyMacResponse { + + return ComAmazonawsKmsTypes.Companion_VerifyMacResponse_.Create_VerifyMacResponse_(Com_amazonaws_kms_VerifyMacResponse_KeyId_ToDafny(nativeOutput.KeyId), Com_amazonaws_kms_VerifyMacResponse_MacValid_ToDafny(nativeOutput.MacValid), Com_amazonaws_kms_VerifyMacResponse_MacAlgorithm_ToDafny(nativeOutput.MacAlgorithm)) + }() + +} + +func AlreadyExistsException_ToDafny(nativeInput types.AlreadyExistsException) ComAmazonawsKmsTypes.Error { + return func() ComAmazonawsKmsTypes.Error { + + return ComAmazonawsKmsTypes.Companion_Error_.Create_AlreadyExistsException_(Com_amazonaws_kms_AlreadyExistsException_message_ToDafny(nativeInput.Message)) + }() + +} + +func CloudHsmClusterInUseException_ToDafny(nativeInput types.CloudHsmClusterInUseException) ComAmazonawsKmsTypes.Error { + return func() ComAmazonawsKmsTypes.Error { + + return ComAmazonawsKmsTypes.Companion_Error_.Create_CloudHsmClusterInUseException_(Com_amazonaws_kms_CloudHsmClusterInUseException_message_ToDafny(nativeInput.Message)) + }() + +} + +func CloudHsmClusterInvalidConfigurationException_ToDafny(nativeInput types.CloudHsmClusterInvalidConfigurationException) ComAmazonawsKmsTypes.Error { + return func() ComAmazonawsKmsTypes.Error { + + return ComAmazonawsKmsTypes.Companion_Error_.Create_CloudHsmClusterInvalidConfigurationException_(Com_amazonaws_kms_CloudHsmClusterInvalidConfigurationException_message_ToDafny(nativeInput.Message)) + }() + +} + +func CloudHsmClusterNotActiveException_ToDafny(nativeInput types.CloudHsmClusterNotActiveException) ComAmazonawsKmsTypes.Error { + return func() ComAmazonawsKmsTypes.Error { + + return ComAmazonawsKmsTypes.Companion_Error_.Create_CloudHsmClusterNotActiveException_(Com_amazonaws_kms_CloudHsmClusterNotActiveException_message_ToDafny(nativeInput.Message)) + }() + +} + +func CloudHsmClusterNotFoundException_ToDafny(nativeInput types.CloudHsmClusterNotFoundException) ComAmazonawsKmsTypes.Error { + return func() ComAmazonawsKmsTypes.Error { + + return ComAmazonawsKmsTypes.Companion_Error_.Create_CloudHsmClusterNotFoundException_(Com_amazonaws_kms_CloudHsmClusterNotFoundException_message_ToDafny(nativeInput.Message)) + }() + +} + +func CloudHsmClusterNotRelatedException_ToDafny(nativeInput types.CloudHsmClusterNotRelatedException) ComAmazonawsKmsTypes.Error { + return func() ComAmazonawsKmsTypes.Error { + + return ComAmazonawsKmsTypes.Companion_Error_.Create_CloudHsmClusterNotRelatedException_(Com_amazonaws_kms_CloudHsmClusterNotRelatedException_message_ToDafny(nativeInput.Message)) + }() + +} + +func ConflictException_ToDafny(nativeInput types.ConflictException) ComAmazonawsKmsTypes.Error { + return func() ComAmazonawsKmsTypes.Error { + + return ComAmazonawsKmsTypes.Companion_Error_.Create_ConflictException_(Com_amazonaws_kms_ConflictException_message_ToDafny(nativeInput.Message)) + }() + +} + +func CustomKeyStoreHasCMKsException_ToDafny(nativeInput types.CustomKeyStoreHasCMKsException) ComAmazonawsKmsTypes.Error { + return func() ComAmazonawsKmsTypes.Error { + + return ComAmazonawsKmsTypes.Companion_Error_.Create_CustomKeyStoreHasCMKsException_(Com_amazonaws_kms_CustomKeyStoreHasCMKsException_message_ToDafny(nativeInput.Message)) + }() + +} + +func CustomKeyStoreInvalidStateException_ToDafny(nativeInput types.CustomKeyStoreInvalidStateException) ComAmazonawsKmsTypes.Error { + return func() ComAmazonawsKmsTypes.Error { + + return ComAmazonawsKmsTypes.Companion_Error_.Create_CustomKeyStoreInvalidStateException_(Com_amazonaws_kms_CustomKeyStoreInvalidStateException_message_ToDafny(nativeInput.Message)) + }() + +} + +func CustomKeyStoreNameInUseException_ToDafny(nativeInput types.CustomKeyStoreNameInUseException) ComAmazonawsKmsTypes.Error { + return func() ComAmazonawsKmsTypes.Error { + + return ComAmazonawsKmsTypes.Companion_Error_.Create_CustomKeyStoreNameInUseException_(Com_amazonaws_kms_CustomKeyStoreNameInUseException_message_ToDafny(nativeInput.Message)) + }() + +} + +func CustomKeyStoreNotFoundException_ToDafny(nativeInput types.CustomKeyStoreNotFoundException) ComAmazonawsKmsTypes.Error { + return func() ComAmazonawsKmsTypes.Error { + + return ComAmazonawsKmsTypes.Companion_Error_.Create_CustomKeyStoreNotFoundException_(Com_amazonaws_kms_CustomKeyStoreNotFoundException_message_ToDafny(nativeInput.Message)) + }() + +} + +func DependencyTimeoutException_ToDafny(nativeInput types.DependencyTimeoutException) ComAmazonawsKmsTypes.Error { + return func() ComAmazonawsKmsTypes.Error { + + return ComAmazonawsKmsTypes.Companion_Error_.Create_DependencyTimeoutException_(Com_amazonaws_kms_DependencyTimeoutException_message_ToDafny(nativeInput.Message)) + }() + +} + +func DisabledException_ToDafny(nativeInput types.DisabledException) ComAmazonawsKmsTypes.Error { + return func() ComAmazonawsKmsTypes.Error { + + return ComAmazonawsKmsTypes.Companion_Error_.Create_DisabledException_(Com_amazonaws_kms_DisabledException_message_ToDafny(nativeInput.Message)) + }() + +} + +func DryRunOperationException_ToDafny(nativeInput types.DryRunOperationException) ComAmazonawsKmsTypes.Error { + return func() ComAmazonawsKmsTypes.Error { + + return ComAmazonawsKmsTypes.Companion_Error_.Create_DryRunOperationException_(Com_amazonaws_kms_DryRunOperationException_message_ToDafny(nativeInput.Message)) + }() + +} + +func ExpiredImportTokenException_ToDafny(nativeInput types.ExpiredImportTokenException) ComAmazonawsKmsTypes.Error { + return func() ComAmazonawsKmsTypes.Error { + + return ComAmazonawsKmsTypes.Companion_Error_.Create_ExpiredImportTokenException_(Com_amazonaws_kms_ExpiredImportTokenException_message_ToDafny(nativeInput.Message)) + }() + +} + +func IncorrectKeyException_ToDafny(nativeInput types.IncorrectKeyException) ComAmazonawsKmsTypes.Error { + return func() ComAmazonawsKmsTypes.Error { + + return ComAmazonawsKmsTypes.Companion_Error_.Create_IncorrectKeyException_(Com_amazonaws_kms_IncorrectKeyException_message_ToDafny(nativeInput.Message)) + }() + +} + +func IncorrectKeyMaterialException_ToDafny(nativeInput types.IncorrectKeyMaterialException) ComAmazonawsKmsTypes.Error { + return func() ComAmazonawsKmsTypes.Error { + + return ComAmazonawsKmsTypes.Companion_Error_.Create_IncorrectKeyMaterialException_(Com_amazonaws_kms_IncorrectKeyMaterialException_message_ToDafny(nativeInput.Message)) + }() + +} + +func IncorrectTrustAnchorException_ToDafny(nativeInput types.IncorrectTrustAnchorException) ComAmazonawsKmsTypes.Error { + return func() ComAmazonawsKmsTypes.Error { + + return ComAmazonawsKmsTypes.Companion_Error_.Create_IncorrectTrustAnchorException_(Com_amazonaws_kms_IncorrectTrustAnchorException_message_ToDafny(nativeInput.Message)) + }() + +} + +func InvalidAliasNameException_ToDafny(nativeInput types.InvalidAliasNameException) ComAmazonawsKmsTypes.Error { + return func() ComAmazonawsKmsTypes.Error { + + return ComAmazonawsKmsTypes.Companion_Error_.Create_InvalidAliasNameException_(Com_amazonaws_kms_InvalidAliasNameException_message_ToDafny(nativeInput.Message)) + }() + +} + +func InvalidArnException_ToDafny(nativeInput types.InvalidArnException) ComAmazonawsKmsTypes.Error { + return func() ComAmazonawsKmsTypes.Error { + + return ComAmazonawsKmsTypes.Companion_Error_.Create_InvalidArnException_(Com_amazonaws_kms_InvalidArnException_message_ToDafny(nativeInput.Message)) + }() + +} + +func InvalidCiphertextException_ToDafny(nativeInput types.InvalidCiphertextException) ComAmazonawsKmsTypes.Error { + return func() ComAmazonawsKmsTypes.Error { + + return ComAmazonawsKmsTypes.Companion_Error_.Create_InvalidCiphertextException_(Com_amazonaws_kms_InvalidCiphertextException_message_ToDafny(nativeInput.Message)) + }() + +} + +func InvalidGrantIdException_ToDafny(nativeInput types.InvalidGrantIdException) ComAmazonawsKmsTypes.Error { + return func() ComAmazonawsKmsTypes.Error { + + return ComAmazonawsKmsTypes.Companion_Error_.Create_InvalidGrantIdException_(Com_amazonaws_kms_InvalidGrantIdException_message_ToDafny(nativeInput.Message)) + }() + +} + +func InvalidGrantTokenException_ToDafny(nativeInput types.InvalidGrantTokenException) ComAmazonawsKmsTypes.Error { + return func() ComAmazonawsKmsTypes.Error { + + return ComAmazonawsKmsTypes.Companion_Error_.Create_InvalidGrantTokenException_(Com_amazonaws_kms_InvalidGrantTokenException_message_ToDafny(nativeInput.Message)) + }() + +} + +func InvalidImportTokenException_ToDafny(nativeInput types.InvalidImportTokenException) ComAmazonawsKmsTypes.Error { + return func() ComAmazonawsKmsTypes.Error { + + return ComAmazonawsKmsTypes.Companion_Error_.Create_InvalidImportTokenException_(Com_amazonaws_kms_InvalidImportTokenException_message_ToDafny(nativeInput.Message)) + }() + +} + +func InvalidKeyUsageException_ToDafny(nativeInput types.InvalidKeyUsageException) ComAmazonawsKmsTypes.Error { + return func() ComAmazonawsKmsTypes.Error { + + return ComAmazonawsKmsTypes.Companion_Error_.Create_InvalidKeyUsageException_(Com_amazonaws_kms_InvalidKeyUsageException_message_ToDafny(nativeInput.Message)) + }() + +} + +func InvalidMarkerException_ToDafny(nativeInput types.InvalidMarkerException) ComAmazonawsKmsTypes.Error { + return func() ComAmazonawsKmsTypes.Error { + + return ComAmazonawsKmsTypes.Companion_Error_.Create_InvalidMarkerException_(Com_amazonaws_kms_InvalidMarkerException_message_ToDafny(nativeInput.Message)) + }() + +} + +func KeyUnavailableException_ToDafny(nativeInput types.KeyUnavailableException) ComAmazonawsKmsTypes.Error { + return func() ComAmazonawsKmsTypes.Error { + + return ComAmazonawsKmsTypes.Companion_Error_.Create_KeyUnavailableException_(Com_amazonaws_kms_KeyUnavailableException_message_ToDafny(nativeInput.Message)) + }() + +} + +func KMSInternalException_ToDafny(nativeInput types.KMSInternalException) ComAmazonawsKmsTypes.Error { + return func() ComAmazonawsKmsTypes.Error { + + return ComAmazonawsKmsTypes.Companion_Error_.Create_KMSInternalException_(Com_amazonaws_kms_KMSInternalException_message_ToDafny(nativeInput.Message)) + }() + +} + +func KMSInvalidMacException_ToDafny(nativeInput types.KMSInvalidMacException) ComAmazonawsKmsTypes.Error { + return func() ComAmazonawsKmsTypes.Error { + + return ComAmazonawsKmsTypes.Companion_Error_.Create_KMSInvalidMacException_(Com_amazonaws_kms_KMSInvalidMacException_message_ToDafny(nativeInput.Message)) + }() + +} + +func KMSInvalidSignatureException_ToDafny(nativeInput types.KMSInvalidSignatureException) ComAmazonawsKmsTypes.Error { + return func() ComAmazonawsKmsTypes.Error { + + return ComAmazonawsKmsTypes.Companion_Error_.Create_KMSInvalidSignatureException_(Com_amazonaws_kms_KMSInvalidSignatureException_message_ToDafny(nativeInput.Message)) + }() + +} + +func KMSInvalidStateException_ToDafny(nativeInput types.KMSInvalidStateException) ComAmazonawsKmsTypes.Error { + return func() ComAmazonawsKmsTypes.Error { + + return ComAmazonawsKmsTypes.Companion_Error_.Create_KMSInvalidStateException_(Com_amazonaws_kms_KMSInvalidStateException_message_ToDafny(nativeInput.Message)) + }() + +} + +func LimitExceededException_ToDafny(nativeInput types.LimitExceededException) ComAmazonawsKmsTypes.Error { + return func() ComAmazonawsKmsTypes.Error { + + return ComAmazonawsKmsTypes.Companion_Error_.Create_LimitExceededException_(Com_amazonaws_kms_LimitExceededException_message_ToDafny(nativeInput.Message)) + }() + +} + +func MalformedPolicyDocumentException_ToDafny(nativeInput types.MalformedPolicyDocumentException) ComAmazonawsKmsTypes.Error { + return func() ComAmazonawsKmsTypes.Error { + + return ComAmazonawsKmsTypes.Companion_Error_.Create_MalformedPolicyDocumentException_(Com_amazonaws_kms_MalformedPolicyDocumentException_message_ToDafny(nativeInput.Message)) + }() + +} + +func NotFoundException_ToDafny(nativeInput types.NotFoundException) ComAmazonawsKmsTypes.Error { + return func() ComAmazonawsKmsTypes.Error { + + return ComAmazonawsKmsTypes.Companion_Error_.Create_NotFoundException_(Com_amazonaws_kms_NotFoundException_message_ToDafny(nativeInput.Message)) + }() + +} + +func TagException_ToDafny(nativeInput types.TagException) ComAmazonawsKmsTypes.Error { + return func() ComAmazonawsKmsTypes.Error { + + return ComAmazonawsKmsTypes.Companion_Error_.Create_TagException_(Com_amazonaws_kms_TagException_message_ToDafny(nativeInput.Message)) + }() + +} + +func UnsupportedOperationException_ToDafny(nativeInput types.UnsupportedOperationException) ComAmazonawsKmsTypes.Error { + return func() ComAmazonawsKmsTypes.Error { + + return ComAmazonawsKmsTypes.Companion_Error_.Create_UnsupportedOperationException_(Com_amazonaws_kms_UnsupportedOperationException_message_ToDafny(nativeInput.Message)) + }() + +} + +func XksKeyAlreadyInUseException_ToDafny(nativeInput types.XksKeyAlreadyInUseException) ComAmazonawsKmsTypes.Error { + return func() ComAmazonawsKmsTypes.Error { + + return ComAmazonawsKmsTypes.Companion_Error_.Create_XksKeyAlreadyInUseException_(Com_amazonaws_kms_XksKeyAlreadyInUseException_message_ToDafny(nativeInput.Message)) + }() + +} + +func XksKeyInvalidConfigurationException_ToDafny(nativeInput types.XksKeyInvalidConfigurationException) ComAmazonawsKmsTypes.Error { + return func() ComAmazonawsKmsTypes.Error { + + return ComAmazonawsKmsTypes.Companion_Error_.Create_XksKeyInvalidConfigurationException_(Com_amazonaws_kms_XksKeyInvalidConfigurationException_message_ToDafny(nativeInput.Message)) + }() + +} + +func XksKeyNotFoundException_ToDafny(nativeInput types.XksKeyNotFoundException) ComAmazonawsKmsTypes.Error { + return func() ComAmazonawsKmsTypes.Error { + + return ComAmazonawsKmsTypes.Companion_Error_.Create_XksKeyNotFoundException_(Com_amazonaws_kms_XksKeyNotFoundException_message_ToDafny(nativeInput.Message)) + }() + +} + +func XksProxyIncorrectAuthenticationCredentialException_ToDafny(nativeInput types.XksProxyIncorrectAuthenticationCredentialException) ComAmazonawsKmsTypes.Error { + return func() ComAmazonawsKmsTypes.Error { + + return ComAmazonawsKmsTypes.Companion_Error_.Create_XksProxyIncorrectAuthenticationCredentialException_(Com_amazonaws_kms_XksProxyIncorrectAuthenticationCredentialException_message_ToDafny(nativeInput.Message)) + }() + +} + +func XksProxyInvalidConfigurationException_ToDafny(nativeInput types.XksProxyInvalidConfigurationException) ComAmazonawsKmsTypes.Error { + return func() ComAmazonawsKmsTypes.Error { + + return ComAmazonawsKmsTypes.Companion_Error_.Create_XksProxyInvalidConfigurationException_(Com_amazonaws_kms_XksProxyInvalidConfigurationException_message_ToDafny(nativeInput.Message)) + }() + +} + +func XksProxyInvalidResponseException_ToDafny(nativeInput types.XksProxyInvalidResponseException) ComAmazonawsKmsTypes.Error { + return func() ComAmazonawsKmsTypes.Error { + + return ComAmazonawsKmsTypes.Companion_Error_.Create_XksProxyInvalidResponseException_(Com_amazonaws_kms_XksProxyInvalidResponseException_message_ToDafny(nativeInput.Message)) + }() + +} + +func XksProxyUriEndpointInUseException_ToDafny(nativeInput types.XksProxyUriEndpointInUseException) ComAmazonawsKmsTypes.Error { + return func() ComAmazonawsKmsTypes.Error { + + return ComAmazonawsKmsTypes.Companion_Error_.Create_XksProxyUriEndpointInUseException_(Com_amazonaws_kms_XksProxyUriEndpointInUseException_message_ToDafny(nativeInput.Message)) + }() + +} + +func XksProxyUriInUseException_ToDafny(nativeInput types.XksProxyUriInUseException) ComAmazonawsKmsTypes.Error { + return func() ComAmazonawsKmsTypes.Error { + + return ComAmazonawsKmsTypes.Companion_Error_.Create_XksProxyUriInUseException_(Com_amazonaws_kms_XksProxyUriInUseException_message_ToDafny(nativeInput.Message)) + }() + +} + +func XksProxyUriUnreachableException_ToDafny(nativeInput types.XksProxyUriUnreachableException) ComAmazonawsKmsTypes.Error { + return func() ComAmazonawsKmsTypes.Error { + + return ComAmazonawsKmsTypes.Companion_Error_.Create_XksProxyUriUnreachableException_(Com_amazonaws_kms_XksProxyUriUnreachableException_message_ToDafny(nativeInput.Message)) + }() + +} + +func XksProxyVpcEndpointServiceInUseException_ToDafny(nativeInput types.XksProxyVpcEndpointServiceInUseException) ComAmazonawsKmsTypes.Error { + return func() ComAmazonawsKmsTypes.Error { + + return ComAmazonawsKmsTypes.Companion_Error_.Create_XksProxyVpcEndpointServiceInUseException_(Com_amazonaws_kms_XksProxyVpcEndpointServiceInUseException_message_ToDafny(nativeInput.Message)) + }() + +} + +func XksProxyVpcEndpointServiceInvalidConfigurationException_ToDafny(nativeInput types.XksProxyVpcEndpointServiceInvalidConfigurationException) ComAmazonawsKmsTypes.Error { + return func() ComAmazonawsKmsTypes.Error { + + return ComAmazonawsKmsTypes.Companion_Error_.Create_XksProxyVpcEndpointServiceInvalidConfigurationException_(Com_amazonaws_kms_XksProxyVpcEndpointServiceInvalidConfigurationException_message_ToDafny(nativeInput.Message)) + }() + +} + +func XksProxyVpcEndpointServiceNotFoundException_ToDafny(nativeInput types.XksProxyVpcEndpointServiceNotFoundException) ComAmazonawsKmsTypes.Error { + return func() ComAmazonawsKmsTypes.Error { + + return ComAmazonawsKmsTypes.Companion_Error_.Create_XksProxyVpcEndpointServiceNotFoundException_(Com_amazonaws_kms_XksProxyVpcEndpointServiceNotFoundException_message_ToDafny(nativeInput.Message)) + }() + +} + +func OpaqueError_Input_ToDafny(nativeInput error) ComAmazonawsKmsTypes.Error { + return ComAmazonawsKmsTypes.Companion_Error_.Create_OpaqueWithText_(nativeInput, func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(nativeInput.Error())) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }()) +} + +func Error_ToDafny(err error) ComAmazonawsKmsTypes.Error { + // Service Errors + var AlreadyExistsException *types.AlreadyExistsException + if errors.As(err, &AlreadyExistsException) { + return AlreadyExistsException_ToDafny(*AlreadyExistsException) + } + + var CloudHsmClusterInUseException *types.CloudHsmClusterInUseException + if errors.As(err, &CloudHsmClusterInUseException) { + return CloudHsmClusterInUseException_ToDafny(*CloudHsmClusterInUseException) + } + + var CloudHsmClusterInvalidConfigurationException *types.CloudHsmClusterInvalidConfigurationException + if errors.As(err, &CloudHsmClusterInvalidConfigurationException) { + return CloudHsmClusterInvalidConfigurationException_ToDafny(*CloudHsmClusterInvalidConfigurationException) + } + + var CloudHsmClusterNotActiveException *types.CloudHsmClusterNotActiveException + if errors.As(err, &CloudHsmClusterNotActiveException) { + return CloudHsmClusterNotActiveException_ToDafny(*CloudHsmClusterNotActiveException) + } + + var CloudHsmClusterNotFoundException *types.CloudHsmClusterNotFoundException + if errors.As(err, &CloudHsmClusterNotFoundException) { + return CloudHsmClusterNotFoundException_ToDafny(*CloudHsmClusterNotFoundException) + } + + var CloudHsmClusterNotRelatedException *types.CloudHsmClusterNotRelatedException + if errors.As(err, &CloudHsmClusterNotRelatedException) { + return CloudHsmClusterNotRelatedException_ToDafny(*CloudHsmClusterNotRelatedException) + } + + var ConflictException *types.ConflictException + if errors.As(err, &ConflictException) { + return ConflictException_ToDafny(*ConflictException) + } + + var CustomKeyStoreHasCMKsException *types.CustomKeyStoreHasCMKsException + if errors.As(err, &CustomKeyStoreHasCMKsException) { + return CustomKeyStoreHasCMKsException_ToDafny(*CustomKeyStoreHasCMKsException) + } + + var CustomKeyStoreInvalidStateException *types.CustomKeyStoreInvalidStateException + if errors.As(err, &CustomKeyStoreInvalidStateException) { + return CustomKeyStoreInvalidStateException_ToDafny(*CustomKeyStoreInvalidStateException) + } + + var CustomKeyStoreNameInUseException *types.CustomKeyStoreNameInUseException + if errors.As(err, &CustomKeyStoreNameInUseException) { + return CustomKeyStoreNameInUseException_ToDafny(*CustomKeyStoreNameInUseException) + } + + var CustomKeyStoreNotFoundException *types.CustomKeyStoreNotFoundException + if errors.As(err, &CustomKeyStoreNotFoundException) { + return CustomKeyStoreNotFoundException_ToDafny(*CustomKeyStoreNotFoundException) + } + + var DependencyTimeoutException *types.DependencyTimeoutException + if errors.As(err, &DependencyTimeoutException) { + return DependencyTimeoutException_ToDafny(*DependencyTimeoutException) + } + + var DisabledException *types.DisabledException + if errors.As(err, &DisabledException) { + return DisabledException_ToDafny(*DisabledException) + } + + var DryRunOperationException *types.DryRunOperationException + if errors.As(err, &DryRunOperationException) { + return DryRunOperationException_ToDafny(*DryRunOperationException) + } + + var ExpiredImportTokenException *types.ExpiredImportTokenException + if errors.As(err, &ExpiredImportTokenException) { + return ExpiredImportTokenException_ToDafny(*ExpiredImportTokenException) + } + + var IncorrectKeyException *types.IncorrectKeyException + if errors.As(err, &IncorrectKeyException) { + return IncorrectKeyException_ToDafny(*IncorrectKeyException) + } + + var IncorrectKeyMaterialException *types.IncorrectKeyMaterialException + if errors.As(err, &IncorrectKeyMaterialException) { + return IncorrectKeyMaterialException_ToDafny(*IncorrectKeyMaterialException) + } + + var IncorrectTrustAnchorException *types.IncorrectTrustAnchorException + if errors.As(err, &IncorrectTrustAnchorException) { + return IncorrectTrustAnchorException_ToDafny(*IncorrectTrustAnchorException) + } + + var InvalidAliasNameException *types.InvalidAliasNameException + if errors.As(err, &InvalidAliasNameException) { + return InvalidAliasNameException_ToDafny(*InvalidAliasNameException) + } + + var InvalidArnException *types.InvalidArnException + if errors.As(err, &InvalidArnException) { + return InvalidArnException_ToDafny(*InvalidArnException) + } + + var InvalidCiphertextException *types.InvalidCiphertextException + if errors.As(err, &InvalidCiphertextException) { + return InvalidCiphertextException_ToDafny(*InvalidCiphertextException) + } + + var InvalidGrantIdException *types.InvalidGrantIdException + if errors.As(err, &InvalidGrantIdException) { + return InvalidGrantIdException_ToDafny(*InvalidGrantIdException) + } + + var InvalidGrantTokenException *types.InvalidGrantTokenException + if errors.As(err, &InvalidGrantTokenException) { + return InvalidGrantTokenException_ToDafny(*InvalidGrantTokenException) + } + + var InvalidImportTokenException *types.InvalidImportTokenException + if errors.As(err, &InvalidImportTokenException) { + return InvalidImportTokenException_ToDafny(*InvalidImportTokenException) + } + + var InvalidKeyUsageException *types.InvalidKeyUsageException + if errors.As(err, &InvalidKeyUsageException) { + return InvalidKeyUsageException_ToDafny(*InvalidKeyUsageException) + } + + var InvalidMarkerException *types.InvalidMarkerException + if errors.As(err, &InvalidMarkerException) { + return InvalidMarkerException_ToDafny(*InvalidMarkerException) + } + + var KeyUnavailableException *types.KeyUnavailableException + if errors.As(err, &KeyUnavailableException) { + return KeyUnavailableException_ToDafny(*KeyUnavailableException) + } + + var KMSInternalException *types.KMSInternalException + if errors.As(err, &KMSInternalException) { + return KMSInternalException_ToDafny(*KMSInternalException) + } + + var KMSInvalidMacException *types.KMSInvalidMacException + if errors.As(err, &KMSInvalidMacException) { + return KMSInvalidMacException_ToDafny(*KMSInvalidMacException) + } + + var KMSInvalidSignatureException *types.KMSInvalidSignatureException + if errors.As(err, &KMSInvalidSignatureException) { + return KMSInvalidSignatureException_ToDafny(*KMSInvalidSignatureException) + } + + var KMSInvalidStateException *types.KMSInvalidStateException + if errors.As(err, &KMSInvalidStateException) { + return KMSInvalidStateException_ToDafny(*KMSInvalidStateException) + } + + var LimitExceededException *types.LimitExceededException + if errors.As(err, &LimitExceededException) { + return LimitExceededException_ToDafny(*LimitExceededException) + } + + var MalformedPolicyDocumentException *types.MalformedPolicyDocumentException + if errors.As(err, &MalformedPolicyDocumentException) { + return MalformedPolicyDocumentException_ToDafny(*MalformedPolicyDocumentException) + } + + var NotFoundException *types.NotFoundException + if errors.As(err, &NotFoundException) { + return NotFoundException_ToDafny(*NotFoundException) + } + + var TagException *types.TagException + if errors.As(err, &TagException) { + return TagException_ToDafny(*TagException) + } + + var UnsupportedOperationException *types.UnsupportedOperationException + if errors.As(err, &UnsupportedOperationException) { + return UnsupportedOperationException_ToDafny(*UnsupportedOperationException) + } + + var XksKeyAlreadyInUseException *types.XksKeyAlreadyInUseException + if errors.As(err, &XksKeyAlreadyInUseException) { + return XksKeyAlreadyInUseException_ToDafny(*XksKeyAlreadyInUseException) + } + + var XksKeyInvalidConfigurationException *types.XksKeyInvalidConfigurationException + if errors.As(err, &XksKeyInvalidConfigurationException) { + return XksKeyInvalidConfigurationException_ToDafny(*XksKeyInvalidConfigurationException) + } + + var XksKeyNotFoundException *types.XksKeyNotFoundException + if errors.As(err, &XksKeyNotFoundException) { + return XksKeyNotFoundException_ToDafny(*XksKeyNotFoundException) + } + + var XksProxyIncorrectAuthenticationCredentialException *types.XksProxyIncorrectAuthenticationCredentialException + if errors.As(err, &XksProxyIncorrectAuthenticationCredentialException) { + return XksProxyIncorrectAuthenticationCredentialException_ToDafny(*XksProxyIncorrectAuthenticationCredentialException) + } + + var XksProxyInvalidConfigurationException *types.XksProxyInvalidConfigurationException + if errors.As(err, &XksProxyInvalidConfigurationException) { + return XksProxyInvalidConfigurationException_ToDafny(*XksProxyInvalidConfigurationException) + } + + var XksProxyInvalidResponseException *types.XksProxyInvalidResponseException + if errors.As(err, &XksProxyInvalidResponseException) { + return XksProxyInvalidResponseException_ToDafny(*XksProxyInvalidResponseException) + } + + var XksProxyUriEndpointInUseException *types.XksProxyUriEndpointInUseException + if errors.As(err, &XksProxyUriEndpointInUseException) { + return XksProxyUriEndpointInUseException_ToDafny(*XksProxyUriEndpointInUseException) + } + + var XksProxyUriInUseException *types.XksProxyUriInUseException + if errors.As(err, &XksProxyUriInUseException) { + return XksProxyUriInUseException_ToDafny(*XksProxyUriInUseException) + } + + var XksProxyUriUnreachableException *types.XksProxyUriUnreachableException + if errors.As(err, &XksProxyUriUnreachableException) { + return XksProxyUriUnreachableException_ToDafny(*XksProxyUriUnreachableException) + } + + var XksProxyVpcEndpointServiceInUseException *types.XksProxyVpcEndpointServiceInUseException + if errors.As(err, &XksProxyVpcEndpointServiceInUseException) { + return XksProxyVpcEndpointServiceInUseException_ToDafny(*XksProxyVpcEndpointServiceInUseException) + } + + var XksProxyVpcEndpointServiceInvalidConfigurationException *types.XksProxyVpcEndpointServiceInvalidConfigurationException + if errors.As(err, &XksProxyVpcEndpointServiceInvalidConfigurationException) { + return XksProxyVpcEndpointServiceInvalidConfigurationException_ToDafny(*XksProxyVpcEndpointServiceInvalidConfigurationException) + } + + var XksProxyVpcEndpointServiceNotFoundException *types.XksProxyVpcEndpointServiceNotFoundException + if errors.As(err, &XksProxyVpcEndpointServiceNotFoundException) { + return XksProxyVpcEndpointServiceNotFoundException_ToDafny(*XksProxyVpcEndpointServiceNotFoundException) + } + + return OpaqueError_Input_ToDafny(err) +} + +func Com_amazonaws_kms_CancelKeyDeletionRequest_KeyId_ToDafny(input *string) dafny.Sequence { + return func() dafny.Sequence { + if input == nil { + return nil + } + return func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(*input)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }() + }() +} + +func Com_amazonaws_kms_CancelKeyDeletionResponse_KeyId_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 Com_amazonaws_kms_ConnectCustomKeyStoreRequest_CustomKeyStoreId_ToDafny(input *string) dafny.Sequence { + return func() dafny.Sequence { + if input == nil { + return nil + } + return func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(*input)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }() + }() +} + +func Com_amazonaws_kms_CreateAliasRequest_AliasName_ToDafny(input *string) dafny.Sequence { + return func() dafny.Sequence { + if input == nil { + return nil + } + return func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(*input)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }() + }() +} + +func Com_amazonaws_kms_CreateAliasRequest_TargetKeyId_ToDafny(input *string) dafny.Sequence { + return func() dafny.Sequence { + if input == nil { + return nil + } + return func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(*input)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }() + }() +} + +func Com_amazonaws_kms_CreateCustomKeyStoreRequest_CustomKeyStoreName_ToDafny(input *string) dafny.Sequence { + return func() dafny.Sequence { + if input == nil { + return nil + } + return func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(*input)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }() + }() +} + +func Com_amazonaws_kms_CreateCustomKeyStoreRequest_CloudHsmClusterId_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 Com_amazonaws_kms_CreateCustomKeyStoreRequest_TrustAnchorCertificate_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 Com_amazonaws_kms_CreateCustomKeyStoreRequest_KeyStorePassword_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 Com_amazonaws_kms_CreateCustomKeyStoreRequest_CustomKeyStoreType_ToDafny(input types.CustomKeyStoreType) Wrappers.Option { + return func() Wrappers.Option { + var index int + for _, enumVal := range input.Values() { + index++ + if enumVal == input { + break + } + if index == len(input.Values()) { + return Wrappers.Companion_Option_.Create_None_() + } + + } + var enum interface{} + for allEnums, i := dafny.Iterate(ComAmazonawsKmsTypes.CompanionStruct_CustomKeyStoreType_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return Wrappers.Companion_Option_.Create_Some_(enum.(ComAmazonawsKmsTypes.CustomKeyStoreType)) + }() +} + +func Com_amazonaws_kms_CreateCustomKeyStoreRequest_XksProxyUriEndpoint_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 Com_amazonaws_kms_CreateCustomKeyStoreRequest_XksProxyUriPath_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 Com_amazonaws_kms_CreateCustomKeyStoreRequest_XksProxyVpcEndpointServiceName_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 Com_amazonaws_kms_CreateCustomKeyStoreRequest_XksProxyAuthenticationCredential_ToDafny(input *types.XksProxyAuthenticationCredentialType) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(ComAmazonawsKmsTypes.Companion_XksProxyAuthenticationCredentialType_.Create_XksProxyAuthenticationCredentialType_(Com_amazonaws_kms_XksProxyAuthenticationCredentialType_AccessKeyId_ToDafny(input.AccessKeyId), Com_amazonaws_kms_XksProxyAuthenticationCredentialType_RawSecretAccessKey_ToDafny(input.RawSecretAccessKey))) + }() +} + +func Com_amazonaws_kms_XksProxyAuthenticationCredentialType_AccessKeyId_ToDafny(input *string) dafny.Sequence { + return func() dafny.Sequence { + if input == nil { + return nil + } + return func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(*input)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }() + }() +} + +func Com_amazonaws_kms_XksProxyAuthenticationCredentialType_RawSecretAccessKey_ToDafny(input *string) dafny.Sequence { + return func() dafny.Sequence { + if input == nil { + return nil + } + return func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(*input)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }() + }() +} + +func Com_amazonaws_kms_CreateCustomKeyStoreRequest_XksProxyConnectivity_ToDafny(input types.XksProxyConnectivityType) Wrappers.Option { + return func() Wrappers.Option { + var index int + for _, enumVal := range input.Values() { + index++ + if enumVal == input { + break + } + if index == len(input.Values()) { + return Wrappers.Companion_Option_.Create_None_() + } + + } + var enum interface{} + for allEnums, i := dafny.Iterate(ComAmazonawsKmsTypes.CompanionStruct_XksProxyConnectivityType_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return Wrappers.Companion_Option_.Create_Some_(enum.(ComAmazonawsKmsTypes.XksProxyConnectivityType)) + }() +} + +func Com_amazonaws_kms_CreateCustomKeyStoreResponse_CustomKeyStoreId_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 Com_amazonaws_kms_CreateGrantRequest_KeyId_ToDafny(input *string) dafny.Sequence { + return func() dafny.Sequence { + if input == nil { + return nil + } + return func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(*input)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }() + }() +} + +func Com_amazonaws_kms_CreateGrantRequest_GranteePrincipal_ToDafny(input *string) dafny.Sequence { + return func() dafny.Sequence { + if input == nil { + return nil + } + return func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(*input)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }() + }() +} + +func Com_amazonaws_kms_CreateGrantRequest_RetiringPrincipal_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 Com_amazonaws_kms_CreateGrantRequest_Operations_ToDafny(input []types.GrantOperation) dafny.Sequence { + return func() dafny.Sequence { + if input == nil { + return nil + } + var fieldValue []interface{} = make([]interface{}, 0) + for _, val := range input { + element := Com_amazonaws_kms_GrantOperationList_member_ToDafny(val) + fieldValue = append(fieldValue, element) + } + return dafny.SeqOf(fieldValue...) + }() +} + +func Com_amazonaws_kms_GrantOperationList_member_ToDafny(input types.GrantOperation) ComAmazonawsKmsTypes.GrantOperation { + return func() ComAmazonawsKmsTypes.GrantOperation { + 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(ComAmazonawsKmsTypes.CompanionStruct_GrantOperation_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return enum.(ComAmazonawsKmsTypes.GrantOperation) + }() +} + +func Com_amazonaws_kms_CreateGrantRequest_Constraints_ToDafny(input *types.GrantConstraints) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(ComAmazonawsKmsTypes.Companion_GrantConstraints_.Create_GrantConstraints_(Com_amazonaws_kms_GrantConstraints_EncryptionContextSubset_ToDafny(input.EncryptionContextSubset), Com_amazonaws_kms_GrantConstraints_EncryptionContextEquals_ToDafny(input.EncryptionContextEquals))) + }() +} + +func Com_amazonaws_kms_GrantConstraints_EncryptionContextSubset_ToDafny(input map[string]string) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + fieldValue := dafny.NewMapBuilder() + for key, val := range input { + fieldValue.Add(Com_amazonaws_kms_EncryptionContextType_key_ToDafny(key), Com_amazonaws_kms_EncryptionContextType_value_ToDafny(val)) + } + return Wrappers.Companion_Option_.Create_Some_(fieldValue.ToMap()) + }() +} + +func Com_amazonaws_kms_EncryptionContextType_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 Com_amazonaws_kms_EncryptionContextType_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 Com_amazonaws_kms_GrantConstraints_EncryptionContextEquals_ToDafny(input map[string]string) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + fieldValue := dafny.NewMapBuilder() + for key, val := range input { + fieldValue.Add(Com_amazonaws_kms_EncryptionContextType_key_ToDafny(key), Com_amazonaws_kms_EncryptionContextType_value_ToDafny(val)) + } + return Wrappers.Companion_Option_.Create_Some_(fieldValue.ToMap()) + }() +} + +func Com_amazonaws_kms_CreateGrantRequest_GrantTokens_ToDafny(input []string) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + var fieldValue []interface{} = make([]interface{}, 0) + for _, val := range input { + element := Com_amazonaws_kms_GrantTokenList_member_ToDafny(val) + fieldValue = append(fieldValue, element) + } + return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(fieldValue...)) + }() +} + +func Com_amazonaws_kms_GrantTokenList_member_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 Com_amazonaws_kms_CreateGrantRequest_Name_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 Com_amazonaws_kms_CreateGrantRequest_DryRun_ToDafny(input *bool) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(*input) + }() +} + +func Com_amazonaws_kms_CreateGrantResponse_GrantToken_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 Com_amazonaws_kms_CreateGrantResponse_GrantId_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 Com_amazonaws_kms_CreateKeyRequest_Policy_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 Com_amazonaws_kms_CreateKeyRequest_Description_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 Com_amazonaws_kms_CreateKeyRequest_KeyUsage_ToDafny(input types.KeyUsageType) Wrappers.Option { + return func() Wrappers.Option { + var index int + for _, enumVal := range input.Values() { + index++ + if enumVal == input { + break + } + if index == len(input.Values()) { + return Wrappers.Companion_Option_.Create_None_() + } + + } + var enum interface{} + for allEnums, i := dafny.Iterate(ComAmazonawsKmsTypes.CompanionStruct_KeyUsageType_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return Wrappers.Companion_Option_.Create_Some_(enum.(ComAmazonawsKmsTypes.KeyUsageType)) + }() +} + +func Com_amazonaws_kms_CreateKeyRequest_CustomerMasterKeySpec_ToDafny(input types.CustomerMasterKeySpec) Wrappers.Option { + return func() Wrappers.Option { + var index int + for _, enumVal := range input.Values() { + index++ + if enumVal == input { + break + } + if index == len(input.Values()) { + return Wrappers.Companion_Option_.Create_None_() + } + + } + var enum interface{} + for allEnums, i := dafny.Iterate(ComAmazonawsKmsTypes.CompanionStruct_CustomerMasterKeySpec_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return Wrappers.Companion_Option_.Create_Some_(enum.(ComAmazonawsKmsTypes.CustomerMasterKeySpec)) + }() +} + +func Com_amazonaws_kms_CreateKeyRequest_KeySpec_ToDafny(input types.KeySpec) Wrappers.Option { + return func() Wrappers.Option { + var index int + for _, enumVal := range input.Values() { + index++ + if enumVal == input { + break + } + if index == len(input.Values()) { + return Wrappers.Companion_Option_.Create_None_() + } + + } + var enum interface{} + for allEnums, i := dafny.Iterate(ComAmazonawsKmsTypes.CompanionStruct_KeySpec_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return Wrappers.Companion_Option_.Create_Some_(enum.(ComAmazonawsKmsTypes.KeySpec)) + }() +} + +func Com_amazonaws_kms_CreateKeyRequest_Origin_ToDafny(input types.OriginType) Wrappers.Option { + return func() Wrappers.Option { + var index int + for _, enumVal := range input.Values() { + index++ + if enumVal == input { + break + } + if index == len(input.Values()) { + return Wrappers.Companion_Option_.Create_None_() + } + + } + var enum interface{} + for allEnums, i := dafny.Iterate(ComAmazonawsKmsTypes.CompanionStruct_OriginType_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return Wrappers.Companion_Option_.Create_Some_(enum.(ComAmazonawsKmsTypes.OriginType)) + }() +} + +func Com_amazonaws_kms_CreateKeyRequest_CustomKeyStoreId_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 Com_amazonaws_kms_CreateKeyRequest_BypassPolicyLockoutSafetyCheck_ToDafny(input bool) Wrappers.Option { + return func() Wrappers.Option { + + return Wrappers.Companion_Option_.Create_Some_(input) + }() +} + +func Com_amazonaws_kms_CreateKeyRequest_Tags_ToDafny(input []types.Tag) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + var fieldValue []interface{} = make([]interface{}, 0) + for _, val := range input { + element := Com_amazonaws_kms_TagList_member_ToDafny(val) + fieldValue = append(fieldValue, element) + } + return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(fieldValue...)) + }() +} + +func Com_amazonaws_kms_TagList_member_ToDafny(input types.Tag) ComAmazonawsKmsTypes.Tag { + return func() ComAmazonawsKmsTypes.Tag { + + return ComAmazonawsKmsTypes.Companion_Tag_.Create_Tag_(Com_amazonaws_kms_Tag_TagKey_ToDafny(input.TagKey), Com_amazonaws_kms_Tag_TagValue_ToDafny(input.TagValue)) + }() +} + +func Com_amazonaws_kms_Tag_TagKey_ToDafny(input *string) dafny.Sequence { + return func() dafny.Sequence { + if input == nil { + return nil + } + return func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(*input)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }() + }() +} + +func Com_amazonaws_kms_Tag_TagValue_ToDafny(input *string) dafny.Sequence { + return func() dafny.Sequence { + if input == nil { + return nil + } + return func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(*input)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }() + }() +} + +func Com_amazonaws_kms_CreateKeyRequest_MultiRegion_ToDafny(input *bool) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(*input) + }() +} + +func Com_amazonaws_kms_CreateKeyRequest_XksKeyId_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 Com_amazonaws_kms_CreateKeyResponse_KeyMetadata_ToDafny(input *types.KeyMetadata) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(ComAmazonawsKmsTypes.Companion_KeyMetadata_.Create_KeyMetadata_(Com_amazonaws_kms_KeyMetadata_AWSAccountId_ToDafny(input.AWSAccountId), Com_amazonaws_kms_KeyMetadata_KeyId_ToDafny(input.KeyId), Com_amazonaws_kms_KeyMetadata_Arn_ToDafny(input.Arn), Com_amazonaws_kms_KeyMetadata_CreationDate_ToDafny(input.CreationDate), Com_amazonaws_kms_KeyMetadata_Enabled_ToDafny(input.Enabled), Com_amazonaws_kms_KeyMetadata_Description_ToDafny(input.Description), Com_amazonaws_kms_KeyMetadata_KeyUsage_ToDafny(input.KeyUsage), Com_amazonaws_kms_KeyMetadata_KeyState_ToDafny(input.KeyState), Com_amazonaws_kms_KeyMetadata_DeletionDate_ToDafny(input.DeletionDate), Com_amazonaws_kms_KeyMetadata_ValidTo_ToDafny(input.ValidTo), Com_amazonaws_kms_KeyMetadata_Origin_ToDafny(input.Origin), Com_amazonaws_kms_KeyMetadata_CustomKeyStoreId_ToDafny(input.CustomKeyStoreId), Com_amazonaws_kms_KeyMetadata_CloudHsmClusterId_ToDafny(input.CloudHsmClusterId), Com_amazonaws_kms_KeyMetadata_ExpirationModel_ToDafny(input.ExpirationModel), Com_amazonaws_kms_KeyMetadata_KeyManager_ToDafny(input.KeyManager), Com_amazonaws_kms_KeyMetadata_CustomerMasterKeySpec_ToDafny(input.CustomerMasterKeySpec), Com_amazonaws_kms_KeyMetadata_KeySpec_ToDafny(input.KeySpec), Com_amazonaws_kms_KeyMetadata_EncryptionAlgorithms_ToDafny(input.EncryptionAlgorithms), Com_amazonaws_kms_KeyMetadata_SigningAlgorithms_ToDafny(input.SigningAlgorithms), Com_amazonaws_kms_KeyMetadata_KeyAgreementAlgorithms_ToDafny(input.KeyAgreementAlgorithms), Com_amazonaws_kms_KeyMetadata_MultiRegion_ToDafny(input.MultiRegion), Com_amazonaws_kms_KeyMetadata_MultiRegionConfiguration_ToDafny(input.MultiRegionConfiguration), Com_amazonaws_kms_KeyMetadata_PendingDeletionWindowInDays_ToDafny(input.PendingDeletionWindowInDays), Com_amazonaws_kms_KeyMetadata_MacAlgorithms_ToDafny(input.MacAlgorithms), Com_amazonaws_kms_KeyMetadata_XksKeyConfiguration_ToDafny(input.XksKeyConfiguration))) + }() +} + +func Com_amazonaws_kms_KeyMetadata_AWSAccountId_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 Com_amazonaws_kms_KeyMetadata_KeyId_ToDafny(input *string) dafny.Sequence { + return func() dafny.Sequence { + if input == nil { + return nil + } + return func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(*input)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }() + }() +} + +func Com_amazonaws_kms_KeyMetadata_Arn_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 Com_amazonaws_kms_KeyMetadata_CreationDate_ToDafny(input *time.Time) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + formattedTime := input.Format("2006-01-02T15:04:05.999999Z") + return Wrappers.Companion_Option_.Create_Some_(func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(formattedTime)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }()) + }() +} + +func Com_amazonaws_kms_KeyMetadata_Enabled_ToDafny(input bool) Wrappers.Option { + return func() Wrappers.Option { + + return Wrappers.Companion_Option_.Create_Some_(input) + }() +} + +func Com_amazonaws_kms_KeyMetadata_Description_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 Com_amazonaws_kms_KeyMetadata_KeyUsage_ToDafny(input types.KeyUsageType) Wrappers.Option { + return func() Wrappers.Option { + var index int + for _, enumVal := range input.Values() { + index++ + if enumVal == input { + break + } + if index == len(input.Values()) { + return Wrappers.Companion_Option_.Create_None_() + } + + } + var enum interface{} + for allEnums, i := dafny.Iterate(ComAmazonawsKmsTypes.CompanionStruct_KeyUsageType_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return Wrappers.Companion_Option_.Create_Some_(enum.(ComAmazonawsKmsTypes.KeyUsageType)) + }() +} + +func Com_amazonaws_kms_KeyMetadata_KeyState_ToDafny(input types.KeyState) Wrappers.Option { + return func() Wrappers.Option { + var index int + for _, enumVal := range input.Values() { + index++ + if enumVal == input { + break + } + if index == len(input.Values()) { + return Wrappers.Companion_Option_.Create_None_() + } + + } + var enum interface{} + for allEnums, i := dafny.Iterate(ComAmazonawsKmsTypes.CompanionStruct_KeyState_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return Wrappers.Companion_Option_.Create_Some_(enum.(ComAmazonawsKmsTypes.KeyState)) + }() +} + +func Com_amazonaws_kms_KeyMetadata_DeletionDate_ToDafny(input *time.Time) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + formattedTime := input.Format("2006-01-02T15:04:05.999999Z") + return Wrappers.Companion_Option_.Create_Some_(func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(formattedTime)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }()) + }() +} + +func Com_amazonaws_kms_KeyMetadata_ValidTo_ToDafny(input *time.Time) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + formattedTime := input.Format("2006-01-02T15:04:05.999999Z") + return Wrappers.Companion_Option_.Create_Some_(func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(formattedTime)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }()) + }() +} + +func Com_amazonaws_kms_KeyMetadata_Origin_ToDafny(input types.OriginType) Wrappers.Option { + return func() Wrappers.Option { + var index int + for _, enumVal := range input.Values() { + index++ + if enumVal == input { + break + } + if index == len(input.Values()) { + return Wrappers.Companion_Option_.Create_None_() + } + + } + var enum interface{} + for allEnums, i := dafny.Iterate(ComAmazonawsKmsTypes.CompanionStruct_OriginType_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return Wrappers.Companion_Option_.Create_Some_(enum.(ComAmazonawsKmsTypes.OriginType)) + }() +} + +func Com_amazonaws_kms_KeyMetadata_CustomKeyStoreId_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 Com_amazonaws_kms_KeyMetadata_CloudHsmClusterId_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 Com_amazonaws_kms_KeyMetadata_ExpirationModel_ToDafny(input types.ExpirationModelType) Wrappers.Option { + return func() Wrappers.Option { + var index int + for _, enumVal := range input.Values() { + index++ + if enumVal == input { + break + } + if index == len(input.Values()) { + return Wrappers.Companion_Option_.Create_None_() + } + + } + var enum interface{} + for allEnums, i := dafny.Iterate(ComAmazonawsKmsTypes.CompanionStruct_ExpirationModelType_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return Wrappers.Companion_Option_.Create_Some_(enum.(ComAmazonawsKmsTypes.ExpirationModelType)) + }() +} + +func Com_amazonaws_kms_KeyMetadata_KeyManager_ToDafny(input types.KeyManagerType) Wrappers.Option { + return func() Wrappers.Option { + var index int + for _, enumVal := range input.Values() { + index++ + if enumVal == input { + break + } + if index == len(input.Values()) { + return Wrappers.Companion_Option_.Create_None_() + } + + } + var enum interface{} + for allEnums, i := dafny.Iterate(ComAmazonawsKmsTypes.CompanionStruct_KeyManagerType_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return Wrappers.Companion_Option_.Create_Some_(enum.(ComAmazonawsKmsTypes.KeyManagerType)) + }() +} + +func Com_amazonaws_kms_KeyMetadata_CustomerMasterKeySpec_ToDafny(input types.CustomerMasterKeySpec) Wrappers.Option { + return func() Wrappers.Option { + var index int + for _, enumVal := range input.Values() { + index++ + if enumVal == input { + break + } + if index == len(input.Values()) { + return Wrappers.Companion_Option_.Create_None_() + } + + } + var enum interface{} + for allEnums, i := dafny.Iterate(ComAmazonawsKmsTypes.CompanionStruct_CustomerMasterKeySpec_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return Wrappers.Companion_Option_.Create_Some_(enum.(ComAmazonawsKmsTypes.CustomerMasterKeySpec)) + }() +} + +func Com_amazonaws_kms_KeyMetadata_KeySpec_ToDafny(input types.KeySpec) Wrappers.Option { + return func() Wrappers.Option { + var index int + for _, enumVal := range input.Values() { + index++ + if enumVal == input { + break + } + if index == len(input.Values()) { + return Wrappers.Companion_Option_.Create_None_() + } + + } + var enum interface{} + for allEnums, i := dafny.Iterate(ComAmazonawsKmsTypes.CompanionStruct_KeySpec_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return Wrappers.Companion_Option_.Create_Some_(enum.(ComAmazonawsKmsTypes.KeySpec)) + }() +} + +func Com_amazonaws_kms_KeyMetadata_EncryptionAlgorithms_ToDafny(input []types.EncryptionAlgorithmSpec) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + var fieldValue []interface{} = make([]interface{}, 0) + for _, val := range input { + element := Com_amazonaws_kms_EncryptionAlgorithmSpecList_member_ToDafny(val) + fieldValue = append(fieldValue, element) + } + return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(fieldValue...)) + }() +} + +func Com_amazonaws_kms_EncryptionAlgorithmSpecList_member_ToDafny(input types.EncryptionAlgorithmSpec) ComAmazonawsKmsTypes.EncryptionAlgorithmSpec { + return func() ComAmazonawsKmsTypes.EncryptionAlgorithmSpec { + 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(ComAmazonawsKmsTypes.CompanionStruct_EncryptionAlgorithmSpec_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return enum.(ComAmazonawsKmsTypes.EncryptionAlgorithmSpec) + }() +} + +func Com_amazonaws_kms_KeyMetadata_SigningAlgorithms_ToDafny(input []types.SigningAlgorithmSpec) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + var fieldValue []interface{} = make([]interface{}, 0) + for _, val := range input { + element := Com_amazonaws_kms_SigningAlgorithmSpecList_member_ToDafny(val) + fieldValue = append(fieldValue, element) + } + return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(fieldValue...)) + }() +} + +func Com_amazonaws_kms_SigningAlgorithmSpecList_member_ToDafny(input types.SigningAlgorithmSpec) ComAmazonawsKmsTypes.SigningAlgorithmSpec { + return func() ComAmazonawsKmsTypes.SigningAlgorithmSpec { + 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(ComAmazonawsKmsTypes.CompanionStruct_SigningAlgorithmSpec_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return enum.(ComAmazonawsKmsTypes.SigningAlgorithmSpec) + }() +} + +func Com_amazonaws_kms_KeyMetadata_KeyAgreementAlgorithms_ToDafny(input []types.KeyAgreementAlgorithmSpec) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + var fieldValue []interface{} = make([]interface{}, 0) + for _, val := range input { + element := Com_amazonaws_kms_KeyAgreementAlgorithmSpecList_member_ToDafny(val) + fieldValue = append(fieldValue, element) + } + return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(fieldValue...)) + }() +} + +func Com_amazonaws_kms_KeyAgreementAlgorithmSpecList_member_ToDafny(input types.KeyAgreementAlgorithmSpec) ComAmazonawsKmsTypes.KeyAgreementAlgorithmSpec { + return func() ComAmazonawsKmsTypes.KeyAgreementAlgorithmSpec { + 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(ComAmazonawsKmsTypes.CompanionStruct_KeyAgreementAlgorithmSpec_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return enum.(ComAmazonawsKmsTypes.KeyAgreementAlgorithmSpec) + }() +} + +func Com_amazonaws_kms_KeyMetadata_MultiRegion_ToDafny(input *bool) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(*input) + }() +} + +func Com_amazonaws_kms_KeyMetadata_MultiRegionConfiguration_ToDafny(input *types.MultiRegionConfiguration) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(ComAmazonawsKmsTypes.Companion_MultiRegionConfiguration_.Create_MultiRegionConfiguration_(Com_amazonaws_kms_MultiRegionConfiguration_MultiRegionKeyType_ToDafny(input.MultiRegionKeyType), Com_amazonaws_kms_MultiRegionConfiguration_PrimaryKey_ToDafny(input.PrimaryKey), Com_amazonaws_kms_MultiRegionConfiguration_ReplicaKeys_ToDafny(input.ReplicaKeys))) + }() +} + +func Com_amazonaws_kms_MultiRegionConfiguration_MultiRegionKeyType_ToDafny(input types.MultiRegionKeyType) Wrappers.Option { + return func() Wrappers.Option { + var index int + for _, enumVal := range input.Values() { + index++ + if enumVal == input { + break + } + if index == len(input.Values()) { + return Wrappers.Companion_Option_.Create_None_() + } + + } + var enum interface{} + for allEnums, i := dafny.Iterate(ComAmazonawsKmsTypes.CompanionStruct_MultiRegionKeyType_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return Wrappers.Companion_Option_.Create_Some_(enum.(ComAmazonawsKmsTypes.MultiRegionKeyType)) + }() +} + +func Com_amazonaws_kms_MultiRegionConfiguration_PrimaryKey_ToDafny(input *types.MultiRegionKey) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(ComAmazonawsKmsTypes.Companion_MultiRegionKey_.Create_MultiRegionKey_(Com_amazonaws_kms_MultiRegionKey_Arn_ToDafny(input.Arn), Com_amazonaws_kms_MultiRegionKey_Region_ToDafny(input.Region))) + }() +} + +func Com_amazonaws_kms_MultiRegionKey_Arn_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 Com_amazonaws_kms_MultiRegionKey_Region_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 Com_amazonaws_kms_MultiRegionConfiguration_ReplicaKeys_ToDafny(input []types.MultiRegionKey) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + var fieldValue []interface{} = make([]interface{}, 0) + for _, val := range input { + element := Com_amazonaws_kms_MultiRegionKeyList_member_ToDafny(val) + fieldValue = append(fieldValue, element) + } + return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(fieldValue...)) + }() +} + +func Com_amazonaws_kms_MultiRegionKeyList_member_ToDafny(input types.MultiRegionKey) ComAmazonawsKmsTypes.MultiRegionKey { + return func() ComAmazonawsKmsTypes.MultiRegionKey { + + return ComAmazonawsKmsTypes.Companion_MultiRegionKey_.Create_MultiRegionKey_(Com_amazonaws_kms_MultiRegionKey_Arn_ToDafny(input.Arn), Com_amazonaws_kms_MultiRegionKey_Region_ToDafny(input.Region)) + }() +} + +func Com_amazonaws_kms_KeyMetadata_PendingDeletionWindowInDays_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 Com_amazonaws_kms_KeyMetadata_MacAlgorithms_ToDafny(input []types.MacAlgorithmSpec) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + var fieldValue []interface{} = make([]interface{}, 0) + for _, val := range input { + element := Com_amazonaws_kms_MacAlgorithmSpecList_member_ToDafny(val) + fieldValue = append(fieldValue, element) + } + return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(fieldValue...)) + }() +} + +func Com_amazonaws_kms_MacAlgorithmSpecList_member_ToDafny(input types.MacAlgorithmSpec) ComAmazonawsKmsTypes.MacAlgorithmSpec { + return func() ComAmazonawsKmsTypes.MacAlgorithmSpec { + 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(ComAmazonawsKmsTypes.CompanionStruct_MacAlgorithmSpec_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return enum.(ComAmazonawsKmsTypes.MacAlgorithmSpec) + }() +} + +func Com_amazonaws_kms_KeyMetadata_XksKeyConfiguration_ToDafny(input *types.XksKeyConfigurationType) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(ComAmazonawsKmsTypes.Companion_XksKeyConfigurationType_.Create_XksKeyConfigurationType_(Com_amazonaws_kms_XksKeyConfigurationType_Id_ToDafny(input.Id))) + }() +} + +func Com_amazonaws_kms_XksKeyConfigurationType_Id_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 Com_amazonaws_kms_DecryptRequest_CiphertextBlob_ToDafny(input []byte) dafny.Sequence { + return func() dafny.Sequence { + var v []interface{} + if input == nil { + return nil + } + for _, e := range input { + v = append(v, e) + } + return dafny.SeqOf(v...) + }() +} + +func Com_amazonaws_kms_DecryptRequest_EncryptionContext_ToDafny(input map[string]string) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + fieldValue := dafny.NewMapBuilder() + for key, val := range input { + fieldValue.Add(Com_amazonaws_kms_EncryptionContextType_key_ToDafny(key), Com_amazonaws_kms_EncryptionContextType_value_ToDafny(val)) + } + return Wrappers.Companion_Option_.Create_Some_(fieldValue.ToMap()) + }() +} + +func Com_amazonaws_kms_DecryptRequest_GrantTokens_ToDafny(input []string) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + var fieldValue []interface{} = make([]interface{}, 0) + for _, val := range input { + element := Com_amazonaws_kms_GrantTokenList_member_ToDafny(val) + fieldValue = append(fieldValue, element) + } + return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(fieldValue...)) + }() +} + +func Com_amazonaws_kms_DecryptRequest_KeyId_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 Com_amazonaws_kms_DecryptRequest_EncryptionAlgorithm_ToDafny(input types.EncryptionAlgorithmSpec) Wrappers.Option { + return func() Wrappers.Option { + var index int + for _, enumVal := range input.Values() { + index++ + if enumVal == input { + break + } + if index == len(input.Values()) { + return Wrappers.Companion_Option_.Create_None_() + } + + } + var enum interface{} + for allEnums, i := dafny.Iterate(ComAmazonawsKmsTypes.CompanionStruct_EncryptionAlgorithmSpec_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return Wrappers.Companion_Option_.Create_Some_(enum.(ComAmazonawsKmsTypes.EncryptionAlgorithmSpec)) + }() +} + +func Com_amazonaws_kms_DecryptRequest_Recipient_ToDafny(input *types.RecipientInfo) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(ComAmazonawsKmsTypes.Companion_RecipientInfo_.Create_RecipientInfo_(Com_amazonaws_kms_RecipientInfo_KeyEncryptionAlgorithm_ToDafny(input.KeyEncryptionAlgorithm), Com_amazonaws_kms_RecipientInfo_AttestationDocument_ToDafny(input.AttestationDocument))) + }() +} + +func Com_amazonaws_kms_RecipientInfo_KeyEncryptionAlgorithm_ToDafny(input types.KeyEncryptionMechanism) Wrappers.Option { + return func() Wrappers.Option { + var index int + for _, enumVal := range input.Values() { + index++ + if enumVal == input { + break + } + if index == len(input.Values()) { + return Wrappers.Companion_Option_.Create_None_() + } + + } + var enum interface{} + for allEnums, i := dafny.Iterate(ComAmazonawsKmsTypes.CompanionStruct_KeyEncryptionMechanism_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return Wrappers.Companion_Option_.Create_Some_(enum.(ComAmazonawsKmsTypes.KeyEncryptionMechanism)) + }() +} + +func Com_amazonaws_kms_RecipientInfo_AttestationDocument_ToDafny(input []byte) Wrappers.Option { + return func() Wrappers.Option { + var v []interface{} + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + for _, e := range input { + v = append(v, e) + } + return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(v...)) + }() +} + +func Com_amazonaws_kms_DecryptRequest_DryRun_ToDafny(input *bool) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(*input) + }() +} + +func Com_amazonaws_kms_DecryptResponse_KeyId_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 Com_amazonaws_kms_DecryptResponse_Plaintext_ToDafny(input []byte) Wrappers.Option { + return func() Wrappers.Option { + var v []interface{} + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + for _, e := range input { + v = append(v, e) + } + return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(v...)) + }() +} + +func Com_amazonaws_kms_DecryptResponse_EncryptionAlgorithm_ToDafny(input types.EncryptionAlgorithmSpec) Wrappers.Option { + return func() Wrappers.Option { + var index int + for _, enumVal := range input.Values() { + index++ + if enumVal == input { + break + } + if index == len(input.Values()) { + return Wrappers.Companion_Option_.Create_None_() + } + + } + var enum interface{} + for allEnums, i := dafny.Iterate(ComAmazonawsKmsTypes.CompanionStruct_EncryptionAlgorithmSpec_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return Wrappers.Companion_Option_.Create_Some_(enum.(ComAmazonawsKmsTypes.EncryptionAlgorithmSpec)) + }() +} + +func Com_amazonaws_kms_DecryptResponse_CiphertextForRecipient_ToDafny(input []byte) Wrappers.Option { + return func() Wrappers.Option { + var v []interface{} + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + for _, e := range input { + v = append(v, e) + } + return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(v...)) + }() +} + +func Com_amazonaws_kms_DeleteAliasRequest_AliasName_ToDafny(input *string) dafny.Sequence { + return func() dafny.Sequence { + if input == nil { + return nil + } + return func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(*input)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }() + }() +} + +func Com_amazonaws_kms_DeleteCustomKeyStoreRequest_CustomKeyStoreId_ToDafny(input *string) dafny.Sequence { + return func() dafny.Sequence { + if input == nil { + return nil + } + return func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(*input)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }() + }() +} + +func Com_amazonaws_kms_DeleteImportedKeyMaterialRequest_KeyId_ToDafny(input *string) dafny.Sequence { + return func() dafny.Sequence { + if input == nil { + return nil + } + return func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(*input)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }() + }() +} + +func Com_amazonaws_kms_DeriveSharedSecretRequest_KeyId_ToDafny(input *string) dafny.Sequence { + return func() dafny.Sequence { + if input == nil { + return nil + } + return func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(*input)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }() + }() +} + +func Com_amazonaws_kms_DeriveSharedSecretRequest_KeyAgreementAlgorithm_ToDafny(input types.KeyAgreementAlgorithmSpec) ComAmazonawsKmsTypes.KeyAgreementAlgorithmSpec { + return func() ComAmazonawsKmsTypes.KeyAgreementAlgorithmSpec { + 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(ComAmazonawsKmsTypes.CompanionStruct_KeyAgreementAlgorithmSpec_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return enum.(ComAmazonawsKmsTypes.KeyAgreementAlgorithmSpec) + }() +} + +func Com_amazonaws_kms_DeriveSharedSecretRequest_PublicKey_ToDafny(input []byte) dafny.Sequence { + return func() dafny.Sequence { + var v []interface{} + if input == nil { + return nil + } + for _, e := range input { + v = append(v, e) + } + return dafny.SeqOf(v...) + }() +} + +func Com_amazonaws_kms_DeriveSharedSecretRequest_GrantTokens_ToDafny(input []string) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + var fieldValue []interface{} = make([]interface{}, 0) + for _, val := range input { + element := Com_amazonaws_kms_GrantTokenList_member_ToDafny(val) + fieldValue = append(fieldValue, element) + } + return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(fieldValue...)) + }() +} + +func Com_amazonaws_kms_DeriveSharedSecretRequest_DryRun_ToDafny(input *bool) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(*input) + }() +} + +func Com_amazonaws_kms_DeriveSharedSecretRequest_Recipient_ToDafny(input *types.RecipientInfo) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(ComAmazonawsKmsTypes.Companion_RecipientInfo_.Create_RecipientInfo_(Com_amazonaws_kms_RecipientInfo_KeyEncryptionAlgorithm_ToDafny(input.KeyEncryptionAlgorithm), Com_amazonaws_kms_RecipientInfo_AttestationDocument_ToDafny(input.AttestationDocument))) + }() +} + +func Com_amazonaws_kms_DeriveSharedSecretResponse_KeyId_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 Com_amazonaws_kms_DeriveSharedSecretResponse_SharedSecret_ToDafny(input []byte) Wrappers.Option { + return func() Wrappers.Option { + var v []interface{} + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + for _, e := range input { + v = append(v, e) + } + return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(v...)) + }() +} + +func Com_amazonaws_kms_DeriveSharedSecretResponse_CiphertextForRecipient_ToDafny(input []byte) Wrappers.Option { + return func() Wrappers.Option { + var v []interface{} + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + for _, e := range input { + v = append(v, e) + } + return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(v...)) + }() +} + +func Com_amazonaws_kms_DeriveSharedSecretResponse_KeyAgreementAlgorithm_ToDafny(input types.KeyAgreementAlgorithmSpec) Wrappers.Option { + return func() Wrappers.Option { + var index int + for _, enumVal := range input.Values() { + index++ + if enumVal == input { + break + } + if index == len(input.Values()) { + return Wrappers.Companion_Option_.Create_None_() + } + + } + var enum interface{} + for allEnums, i := dafny.Iterate(ComAmazonawsKmsTypes.CompanionStruct_KeyAgreementAlgorithmSpec_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return Wrappers.Companion_Option_.Create_Some_(enum.(ComAmazonawsKmsTypes.KeyAgreementAlgorithmSpec)) + }() +} + +func Com_amazonaws_kms_DeriveSharedSecretResponse_KeyOrigin_ToDafny(input types.OriginType) Wrappers.Option { + return func() Wrappers.Option { + var index int + for _, enumVal := range input.Values() { + index++ + if enumVal == input { + break + } + if index == len(input.Values()) { + return Wrappers.Companion_Option_.Create_None_() + } + + } + var enum interface{} + for allEnums, i := dafny.Iterate(ComAmazonawsKmsTypes.CompanionStruct_OriginType_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return Wrappers.Companion_Option_.Create_Some_(enum.(ComAmazonawsKmsTypes.OriginType)) + }() +} + +func Com_amazonaws_kms_DescribeCustomKeyStoresRequest_CustomKeyStoreId_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 Com_amazonaws_kms_DescribeCustomKeyStoresRequest_CustomKeyStoreName_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 Com_amazonaws_kms_DescribeCustomKeyStoresRequest_Limit_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 Com_amazonaws_kms_DescribeCustomKeyStoresRequest_Marker_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 Com_amazonaws_kms_DescribeCustomKeyStoresResponse_CustomKeyStores_ToDafny(input []types.CustomKeyStoresListEntry) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + var fieldValue []interface{} = make([]interface{}, 0) + for _, val := range input { + element := Com_amazonaws_kms_CustomKeyStoresList_member_ToDafny(val) + fieldValue = append(fieldValue, element) + } + return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(fieldValue...)) + }() +} + +func Com_amazonaws_kms_CustomKeyStoresList_member_ToDafny(input types.CustomKeyStoresListEntry) ComAmazonawsKmsTypes.CustomKeyStoresListEntry { + return func() ComAmazonawsKmsTypes.CustomKeyStoresListEntry { + + return ComAmazonawsKmsTypes.Companion_CustomKeyStoresListEntry_.Create_CustomKeyStoresListEntry_(Com_amazonaws_kms_CustomKeyStoresListEntry_CustomKeyStoreId_ToDafny(input.CustomKeyStoreId), Com_amazonaws_kms_CustomKeyStoresListEntry_CustomKeyStoreName_ToDafny(input.CustomKeyStoreName), Com_amazonaws_kms_CustomKeyStoresListEntry_CloudHsmClusterId_ToDafny(input.CloudHsmClusterId), Com_amazonaws_kms_CustomKeyStoresListEntry_TrustAnchorCertificate_ToDafny(input.TrustAnchorCertificate), Com_amazonaws_kms_CustomKeyStoresListEntry_ConnectionState_ToDafny(input.ConnectionState), Com_amazonaws_kms_CustomKeyStoresListEntry_ConnectionErrorCode_ToDafny(input.ConnectionErrorCode), Com_amazonaws_kms_CustomKeyStoresListEntry_CreationDate_ToDafny(input.CreationDate), Com_amazonaws_kms_CustomKeyStoresListEntry_CustomKeyStoreType_ToDafny(input.CustomKeyStoreType), Com_amazonaws_kms_CustomKeyStoresListEntry_XksProxyConfiguration_ToDafny(input.XksProxyConfiguration)) + }() +} + +func Com_amazonaws_kms_CustomKeyStoresListEntry_CustomKeyStoreId_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 Com_amazonaws_kms_CustomKeyStoresListEntry_CustomKeyStoreName_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 Com_amazonaws_kms_CustomKeyStoresListEntry_CloudHsmClusterId_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 Com_amazonaws_kms_CustomKeyStoresListEntry_TrustAnchorCertificate_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 Com_amazonaws_kms_CustomKeyStoresListEntry_ConnectionState_ToDafny(input types.ConnectionStateType) Wrappers.Option { + return func() Wrappers.Option { + var index int + for _, enumVal := range input.Values() { + index++ + if enumVal == input { + break + } + if index == len(input.Values()) { + return Wrappers.Companion_Option_.Create_None_() + } + + } + var enum interface{} + for allEnums, i := dafny.Iterate(ComAmazonawsKmsTypes.CompanionStruct_ConnectionStateType_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return Wrappers.Companion_Option_.Create_Some_(enum.(ComAmazonawsKmsTypes.ConnectionStateType)) + }() +} + +func Com_amazonaws_kms_CustomKeyStoresListEntry_ConnectionErrorCode_ToDafny(input types.ConnectionErrorCodeType) Wrappers.Option { + return func() Wrappers.Option { + var index int + for _, enumVal := range input.Values() { + index++ + if enumVal == input { + break + } + if index == len(input.Values()) { + return Wrappers.Companion_Option_.Create_None_() + } + + } + var enum interface{} + for allEnums, i := dafny.Iterate(ComAmazonawsKmsTypes.CompanionStruct_ConnectionErrorCodeType_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return Wrappers.Companion_Option_.Create_Some_(enum.(ComAmazonawsKmsTypes.ConnectionErrorCodeType)) + }() +} + +func Com_amazonaws_kms_CustomKeyStoresListEntry_CreationDate_ToDafny(input *time.Time) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + formattedTime := input.Format("2006-01-02T15:04:05.999999Z") + return Wrappers.Companion_Option_.Create_Some_(func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(formattedTime)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }()) + }() +} + +func Com_amazonaws_kms_CustomKeyStoresListEntry_CustomKeyStoreType_ToDafny(input types.CustomKeyStoreType) Wrappers.Option { + return func() Wrappers.Option { + var index int + for _, enumVal := range input.Values() { + index++ + if enumVal == input { + break + } + if index == len(input.Values()) { + return Wrappers.Companion_Option_.Create_None_() + } + + } + var enum interface{} + for allEnums, i := dafny.Iterate(ComAmazonawsKmsTypes.CompanionStruct_CustomKeyStoreType_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return Wrappers.Companion_Option_.Create_Some_(enum.(ComAmazonawsKmsTypes.CustomKeyStoreType)) + }() +} + +func Com_amazonaws_kms_CustomKeyStoresListEntry_XksProxyConfiguration_ToDafny(input *types.XksProxyConfigurationType) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(ComAmazonawsKmsTypes.Companion_XksProxyConfigurationType_.Create_XksProxyConfigurationType_(Com_amazonaws_kms_XksProxyConfigurationType_Connectivity_ToDafny(input.Connectivity), Com_amazonaws_kms_XksProxyConfigurationType_AccessKeyId_ToDafny(input.AccessKeyId), Com_amazonaws_kms_XksProxyConfigurationType_UriEndpoint_ToDafny(input.UriEndpoint), Com_amazonaws_kms_XksProxyConfigurationType_UriPath_ToDafny(input.UriPath), Com_amazonaws_kms_XksProxyConfigurationType_VpcEndpointServiceName_ToDafny(input.VpcEndpointServiceName))) + }() +} + +func Com_amazonaws_kms_XksProxyConfigurationType_Connectivity_ToDafny(input types.XksProxyConnectivityType) Wrappers.Option { + return func() Wrappers.Option { + var index int + for _, enumVal := range input.Values() { + index++ + if enumVal == input { + break + } + if index == len(input.Values()) { + return Wrappers.Companion_Option_.Create_None_() + } + + } + var enum interface{} + for allEnums, i := dafny.Iterate(ComAmazonawsKmsTypes.CompanionStruct_XksProxyConnectivityType_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return Wrappers.Companion_Option_.Create_Some_(enum.(ComAmazonawsKmsTypes.XksProxyConnectivityType)) + }() +} + +func Com_amazonaws_kms_XksProxyConfigurationType_AccessKeyId_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 Com_amazonaws_kms_XksProxyConfigurationType_UriEndpoint_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 Com_amazonaws_kms_XksProxyConfigurationType_UriPath_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 Com_amazonaws_kms_XksProxyConfigurationType_VpcEndpointServiceName_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 Com_amazonaws_kms_DescribeCustomKeyStoresResponse_NextMarker_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 Com_amazonaws_kms_DescribeCustomKeyStoresResponse_Truncated_ToDafny(input bool) Wrappers.Option { + return func() Wrappers.Option { + + return Wrappers.Companion_Option_.Create_Some_(input) + }() +} + +func Com_amazonaws_kms_DescribeKeyRequest_KeyId_ToDafny(input *string) dafny.Sequence { + return func() dafny.Sequence { + if input == nil { + return nil + } + return func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(*input)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }() + }() +} + +func Com_amazonaws_kms_DescribeKeyRequest_GrantTokens_ToDafny(input []string) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + var fieldValue []interface{} = make([]interface{}, 0) + for _, val := range input { + element := Com_amazonaws_kms_GrantTokenList_member_ToDafny(val) + fieldValue = append(fieldValue, element) + } + return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(fieldValue...)) + }() +} + +func Com_amazonaws_kms_DescribeKeyResponse_KeyMetadata_ToDafny(input *types.KeyMetadata) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(ComAmazonawsKmsTypes.Companion_KeyMetadata_.Create_KeyMetadata_(Com_amazonaws_kms_KeyMetadata_AWSAccountId_ToDafny(input.AWSAccountId), Com_amazonaws_kms_KeyMetadata_KeyId_ToDafny(input.KeyId), Com_amazonaws_kms_KeyMetadata_Arn_ToDafny(input.Arn), Com_amazonaws_kms_KeyMetadata_CreationDate_ToDafny(input.CreationDate), Com_amazonaws_kms_KeyMetadata_Enabled_ToDafny(input.Enabled), Com_amazonaws_kms_KeyMetadata_Description_ToDafny(input.Description), Com_amazonaws_kms_KeyMetadata_KeyUsage_ToDafny(input.KeyUsage), Com_amazonaws_kms_KeyMetadata_KeyState_ToDafny(input.KeyState), Com_amazonaws_kms_KeyMetadata_DeletionDate_ToDafny(input.DeletionDate), Com_amazonaws_kms_KeyMetadata_ValidTo_ToDafny(input.ValidTo), Com_amazonaws_kms_KeyMetadata_Origin_ToDafny(input.Origin), Com_amazonaws_kms_KeyMetadata_CustomKeyStoreId_ToDafny(input.CustomKeyStoreId), Com_amazonaws_kms_KeyMetadata_CloudHsmClusterId_ToDafny(input.CloudHsmClusterId), Com_amazonaws_kms_KeyMetadata_ExpirationModel_ToDafny(input.ExpirationModel), Com_amazonaws_kms_KeyMetadata_KeyManager_ToDafny(input.KeyManager), Com_amazonaws_kms_KeyMetadata_CustomerMasterKeySpec_ToDafny(input.CustomerMasterKeySpec), Com_amazonaws_kms_KeyMetadata_KeySpec_ToDafny(input.KeySpec), Com_amazonaws_kms_KeyMetadata_EncryptionAlgorithms_ToDafny(input.EncryptionAlgorithms), Com_amazonaws_kms_KeyMetadata_SigningAlgorithms_ToDafny(input.SigningAlgorithms), Com_amazonaws_kms_KeyMetadata_KeyAgreementAlgorithms_ToDafny(input.KeyAgreementAlgorithms), Com_amazonaws_kms_KeyMetadata_MultiRegion_ToDafny(input.MultiRegion), Com_amazonaws_kms_KeyMetadata_MultiRegionConfiguration_ToDafny(input.MultiRegionConfiguration), Com_amazonaws_kms_KeyMetadata_PendingDeletionWindowInDays_ToDafny(input.PendingDeletionWindowInDays), Com_amazonaws_kms_KeyMetadata_MacAlgorithms_ToDafny(input.MacAlgorithms), Com_amazonaws_kms_KeyMetadata_XksKeyConfiguration_ToDafny(input.XksKeyConfiguration))) + }() +} + +func Com_amazonaws_kms_DisableKeyRequest_KeyId_ToDafny(input *string) dafny.Sequence { + return func() dafny.Sequence { + if input == nil { + return nil + } + return func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(*input)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }() + }() +} + +func Com_amazonaws_kms_DisableKeyRotationRequest_KeyId_ToDafny(input *string) dafny.Sequence { + return func() dafny.Sequence { + if input == nil { + return nil + } + return func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(*input)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }() + }() +} + +func Com_amazonaws_kms_DisconnectCustomKeyStoreRequest_CustomKeyStoreId_ToDafny(input *string) dafny.Sequence { + return func() dafny.Sequence { + if input == nil { + return nil + } + return func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(*input)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }() + }() +} + +func Com_amazonaws_kms_EnableKeyRequest_KeyId_ToDafny(input *string) dafny.Sequence { + return func() dafny.Sequence { + if input == nil { + return nil + } + return func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(*input)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }() + }() +} + +func Com_amazonaws_kms_EnableKeyRotationRequest_KeyId_ToDafny(input *string) dafny.Sequence { + return func() dafny.Sequence { + if input == nil { + return nil + } + return func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(*input)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }() + }() +} + +func Com_amazonaws_kms_EnableKeyRotationRequest_RotationPeriodInDays_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 Com_amazonaws_kms_EncryptRequest_KeyId_ToDafny(input *string) dafny.Sequence { + return func() dafny.Sequence { + if input == nil { + return nil + } + return func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(*input)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }() + }() +} + +func Com_amazonaws_kms_EncryptRequest_Plaintext_ToDafny(input []byte) dafny.Sequence { + return func() dafny.Sequence { + var v []interface{} + if input == nil { + return nil + } + for _, e := range input { + v = append(v, e) + } + return dafny.SeqOf(v...) + }() +} + +func Com_amazonaws_kms_EncryptRequest_EncryptionContext_ToDafny(input map[string]string) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + fieldValue := dafny.NewMapBuilder() + for key, val := range input { + fieldValue.Add(Com_amazonaws_kms_EncryptionContextType_key_ToDafny(key), Com_amazonaws_kms_EncryptionContextType_value_ToDafny(val)) + } + return Wrappers.Companion_Option_.Create_Some_(fieldValue.ToMap()) + }() +} + +func Com_amazonaws_kms_EncryptRequest_GrantTokens_ToDafny(input []string) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + var fieldValue []interface{} = make([]interface{}, 0) + for _, val := range input { + element := Com_amazonaws_kms_GrantTokenList_member_ToDafny(val) + fieldValue = append(fieldValue, element) + } + return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(fieldValue...)) + }() +} + +func Com_amazonaws_kms_EncryptRequest_EncryptionAlgorithm_ToDafny(input types.EncryptionAlgorithmSpec) Wrappers.Option { + return func() Wrappers.Option { + var index int + for _, enumVal := range input.Values() { + index++ + if enumVal == input { + break + } + if index == len(input.Values()) { + return Wrappers.Companion_Option_.Create_None_() + } + + } + var enum interface{} + for allEnums, i := dafny.Iterate(ComAmazonawsKmsTypes.CompanionStruct_EncryptionAlgorithmSpec_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return Wrappers.Companion_Option_.Create_Some_(enum.(ComAmazonawsKmsTypes.EncryptionAlgorithmSpec)) + }() +} + +func Com_amazonaws_kms_EncryptRequest_DryRun_ToDafny(input *bool) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(*input) + }() +} + +func Com_amazonaws_kms_EncryptResponse_CiphertextBlob_ToDafny(input []byte) Wrappers.Option { + return func() Wrappers.Option { + var v []interface{} + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + for _, e := range input { + v = append(v, e) + } + return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(v...)) + }() +} + +func Com_amazonaws_kms_EncryptResponse_KeyId_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 Com_amazonaws_kms_EncryptResponse_EncryptionAlgorithm_ToDafny(input types.EncryptionAlgorithmSpec) Wrappers.Option { + return func() Wrappers.Option { + var index int + for _, enumVal := range input.Values() { + index++ + if enumVal == input { + break + } + if index == len(input.Values()) { + return Wrappers.Companion_Option_.Create_None_() + } + + } + var enum interface{} + for allEnums, i := dafny.Iterate(ComAmazonawsKmsTypes.CompanionStruct_EncryptionAlgorithmSpec_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return Wrappers.Companion_Option_.Create_Some_(enum.(ComAmazonawsKmsTypes.EncryptionAlgorithmSpec)) + }() +} + +func Com_amazonaws_kms_GenerateDataKeyRequest_KeyId_ToDafny(input *string) dafny.Sequence { + return func() dafny.Sequence { + if input == nil { + return nil + } + return func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(*input)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }() + }() +} + +func Com_amazonaws_kms_GenerateDataKeyRequest_EncryptionContext_ToDafny(input map[string]string) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + fieldValue := dafny.NewMapBuilder() + for key, val := range input { + fieldValue.Add(Com_amazonaws_kms_EncryptionContextType_key_ToDafny(key), Com_amazonaws_kms_EncryptionContextType_value_ToDafny(val)) + } + return Wrappers.Companion_Option_.Create_Some_(fieldValue.ToMap()) + }() +} + +func Com_amazonaws_kms_GenerateDataKeyRequest_NumberOfBytes_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 Com_amazonaws_kms_GenerateDataKeyRequest_KeySpec_ToDafny(input types.DataKeySpec) Wrappers.Option { + return func() Wrappers.Option { + var index int + for _, enumVal := range input.Values() { + index++ + if enumVal == input { + break + } + if index == len(input.Values()) { + return Wrappers.Companion_Option_.Create_None_() + } + + } + var enum interface{} + for allEnums, i := dafny.Iterate(ComAmazonawsKmsTypes.CompanionStruct_DataKeySpec_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return Wrappers.Companion_Option_.Create_Some_(enum.(ComAmazonawsKmsTypes.DataKeySpec)) + }() +} + +func Com_amazonaws_kms_GenerateDataKeyRequest_GrantTokens_ToDafny(input []string) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + var fieldValue []interface{} = make([]interface{}, 0) + for _, val := range input { + element := Com_amazonaws_kms_GrantTokenList_member_ToDafny(val) + fieldValue = append(fieldValue, element) + } + return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(fieldValue...)) + }() +} + +func Com_amazonaws_kms_GenerateDataKeyRequest_Recipient_ToDafny(input *types.RecipientInfo) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(ComAmazonawsKmsTypes.Companion_RecipientInfo_.Create_RecipientInfo_(Com_amazonaws_kms_RecipientInfo_KeyEncryptionAlgorithm_ToDafny(input.KeyEncryptionAlgorithm), Com_amazonaws_kms_RecipientInfo_AttestationDocument_ToDafny(input.AttestationDocument))) + }() +} + +func Com_amazonaws_kms_GenerateDataKeyRequest_DryRun_ToDafny(input *bool) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(*input) + }() +} + +func Com_amazonaws_kms_GenerateDataKeyResponse_CiphertextBlob_ToDafny(input []byte) Wrappers.Option { + return func() Wrappers.Option { + var v []interface{} + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + for _, e := range input { + v = append(v, e) + } + return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(v...)) + }() +} + +func Com_amazonaws_kms_GenerateDataKeyResponse_Plaintext_ToDafny(input []byte) Wrappers.Option { + return func() Wrappers.Option { + var v []interface{} + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + for _, e := range input { + v = append(v, e) + } + return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(v...)) + }() +} + +func Com_amazonaws_kms_GenerateDataKeyResponse_KeyId_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 Com_amazonaws_kms_GenerateDataKeyResponse_CiphertextForRecipient_ToDafny(input []byte) Wrappers.Option { + return func() Wrappers.Option { + var v []interface{} + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + for _, e := range input { + v = append(v, e) + } + return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(v...)) + }() +} + +func Com_amazonaws_kms_GenerateDataKeyPairRequest_EncryptionContext_ToDafny(input map[string]string) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + fieldValue := dafny.NewMapBuilder() + for key, val := range input { + fieldValue.Add(Com_amazonaws_kms_EncryptionContextType_key_ToDafny(key), Com_amazonaws_kms_EncryptionContextType_value_ToDafny(val)) + } + return Wrappers.Companion_Option_.Create_Some_(fieldValue.ToMap()) + }() +} + +func Com_amazonaws_kms_GenerateDataKeyPairRequest_KeyId_ToDafny(input *string) dafny.Sequence { + return func() dafny.Sequence { + if input == nil { + return nil + } + return func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(*input)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }() + }() +} + +func Com_amazonaws_kms_GenerateDataKeyPairRequest_KeyPairSpec_ToDafny(input types.DataKeyPairSpec) ComAmazonawsKmsTypes.DataKeyPairSpec { + return func() ComAmazonawsKmsTypes.DataKeyPairSpec { + 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(ComAmazonawsKmsTypes.CompanionStruct_DataKeyPairSpec_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return enum.(ComAmazonawsKmsTypes.DataKeyPairSpec) + }() +} + +func Com_amazonaws_kms_GenerateDataKeyPairRequest_GrantTokens_ToDafny(input []string) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + var fieldValue []interface{} = make([]interface{}, 0) + for _, val := range input { + element := Com_amazonaws_kms_GrantTokenList_member_ToDafny(val) + fieldValue = append(fieldValue, element) + } + return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(fieldValue...)) + }() +} + +func Com_amazonaws_kms_GenerateDataKeyPairRequest_Recipient_ToDafny(input *types.RecipientInfo) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(ComAmazonawsKmsTypes.Companion_RecipientInfo_.Create_RecipientInfo_(Com_amazonaws_kms_RecipientInfo_KeyEncryptionAlgorithm_ToDafny(input.KeyEncryptionAlgorithm), Com_amazonaws_kms_RecipientInfo_AttestationDocument_ToDafny(input.AttestationDocument))) + }() +} + +func Com_amazonaws_kms_GenerateDataKeyPairRequest_DryRun_ToDafny(input *bool) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(*input) + }() +} + +func Com_amazonaws_kms_GenerateDataKeyPairResponse_PrivateKeyCiphertextBlob_ToDafny(input []byte) Wrappers.Option { + return func() Wrappers.Option { + var v []interface{} + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + for _, e := range input { + v = append(v, e) + } + return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(v...)) + }() +} + +func Com_amazonaws_kms_GenerateDataKeyPairResponse_PrivateKeyPlaintext_ToDafny(input []byte) Wrappers.Option { + return func() Wrappers.Option { + var v []interface{} + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + for _, e := range input { + v = append(v, e) + } + return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(v...)) + }() +} + +func Com_amazonaws_kms_GenerateDataKeyPairResponse_PublicKey_ToDafny(input []byte) Wrappers.Option { + return func() Wrappers.Option { + var v []interface{} + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + for _, e := range input { + v = append(v, e) + } + return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(v...)) + }() +} + +func Com_amazonaws_kms_GenerateDataKeyPairResponse_KeyId_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 Com_amazonaws_kms_GenerateDataKeyPairResponse_KeyPairSpec_ToDafny(input types.DataKeyPairSpec) Wrappers.Option { + return func() Wrappers.Option { + var index int + for _, enumVal := range input.Values() { + index++ + if enumVal == input { + break + } + if index == len(input.Values()) { + return Wrappers.Companion_Option_.Create_None_() + } + + } + var enum interface{} + for allEnums, i := dafny.Iterate(ComAmazonawsKmsTypes.CompanionStruct_DataKeyPairSpec_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return Wrappers.Companion_Option_.Create_Some_(enum.(ComAmazonawsKmsTypes.DataKeyPairSpec)) + }() +} + +func Com_amazonaws_kms_GenerateDataKeyPairResponse_CiphertextForRecipient_ToDafny(input []byte) Wrappers.Option { + return func() Wrappers.Option { + var v []interface{} + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + for _, e := range input { + v = append(v, e) + } + return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(v...)) + }() +} + +func Com_amazonaws_kms_GenerateDataKeyPairWithoutPlaintextRequest_EncryptionContext_ToDafny(input map[string]string) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + fieldValue := dafny.NewMapBuilder() + for key, val := range input { + fieldValue.Add(Com_amazonaws_kms_EncryptionContextType_key_ToDafny(key), Com_amazonaws_kms_EncryptionContextType_value_ToDafny(val)) + } + return Wrappers.Companion_Option_.Create_Some_(fieldValue.ToMap()) + }() +} + +func Com_amazonaws_kms_GenerateDataKeyPairWithoutPlaintextRequest_KeyId_ToDafny(input *string) dafny.Sequence { + return func() dafny.Sequence { + if input == nil { + return nil + } + return func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(*input)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }() + }() +} + +func Com_amazonaws_kms_GenerateDataKeyPairWithoutPlaintextRequest_KeyPairSpec_ToDafny(input types.DataKeyPairSpec) ComAmazonawsKmsTypes.DataKeyPairSpec { + return func() ComAmazonawsKmsTypes.DataKeyPairSpec { + 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(ComAmazonawsKmsTypes.CompanionStruct_DataKeyPairSpec_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return enum.(ComAmazonawsKmsTypes.DataKeyPairSpec) + }() +} + +func Com_amazonaws_kms_GenerateDataKeyPairWithoutPlaintextRequest_GrantTokens_ToDafny(input []string) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + var fieldValue []interface{} = make([]interface{}, 0) + for _, val := range input { + element := Com_amazonaws_kms_GrantTokenList_member_ToDafny(val) + fieldValue = append(fieldValue, element) + } + return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(fieldValue...)) + }() +} + +func Com_amazonaws_kms_GenerateDataKeyPairWithoutPlaintextRequest_DryRun_ToDafny(input *bool) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(*input) + }() +} + +func Com_amazonaws_kms_GenerateDataKeyPairWithoutPlaintextResponse_PrivateKeyCiphertextBlob_ToDafny(input []byte) Wrappers.Option { + return func() Wrappers.Option { + var v []interface{} + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + for _, e := range input { + v = append(v, e) + } + return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(v...)) + }() +} + +func Com_amazonaws_kms_GenerateDataKeyPairWithoutPlaintextResponse_PublicKey_ToDafny(input []byte) Wrappers.Option { + return func() Wrappers.Option { + var v []interface{} + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + for _, e := range input { + v = append(v, e) + } + return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(v...)) + }() +} + +func Com_amazonaws_kms_GenerateDataKeyPairWithoutPlaintextResponse_KeyId_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 Com_amazonaws_kms_GenerateDataKeyPairWithoutPlaintextResponse_KeyPairSpec_ToDafny(input types.DataKeyPairSpec) Wrappers.Option { + return func() Wrappers.Option { + var index int + for _, enumVal := range input.Values() { + index++ + if enumVal == input { + break + } + if index == len(input.Values()) { + return Wrappers.Companion_Option_.Create_None_() + } + + } + var enum interface{} + for allEnums, i := dafny.Iterate(ComAmazonawsKmsTypes.CompanionStruct_DataKeyPairSpec_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return Wrappers.Companion_Option_.Create_Some_(enum.(ComAmazonawsKmsTypes.DataKeyPairSpec)) + }() +} + +func Com_amazonaws_kms_GenerateDataKeyWithoutPlaintextRequest_KeyId_ToDafny(input *string) dafny.Sequence { + return func() dafny.Sequence { + if input == nil { + return nil + } + return func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(*input)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }() + }() +} + +func Com_amazonaws_kms_GenerateDataKeyWithoutPlaintextRequest_EncryptionContext_ToDafny(input map[string]string) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + fieldValue := dafny.NewMapBuilder() + for key, val := range input { + fieldValue.Add(Com_amazonaws_kms_EncryptionContextType_key_ToDafny(key), Com_amazonaws_kms_EncryptionContextType_value_ToDafny(val)) + } + return Wrappers.Companion_Option_.Create_Some_(fieldValue.ToMap()) + }() +} + +func Com_amazonaws_kms_GenerateDataKeyWithoutPlaintextRequest_KeySpec_ToDafny(input types.DataKeySpec) Wrappers.Option { + return func() Wrappers.Option { + var index int + for _, enumVal := range input.Values() { + index++ + if enumVal == input { + break + } + if index == len(input.Values()) { + return Wrappers.Companion_Option_.Create_None_() + } + + } + var enum interface{} + for allEnums, i := dafny.Iterate(ComAmazonawsKmsTypes.CompanionStruct_DataKeySpec_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return Wrappers.Companion_Option_.Create_Some_(enum.(ComAmazonawsKmsTypes.DataKeySpec)) + }() +} + +func Com_amazonaws_kms_GenerateDataKeyWithoutPlaintextRequest_NumberOfBytes_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 Com_amazonaws_kms_GenerateDataKeyWithoutPlaintextRequest_GrantTokens_ToDafny(input []string) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + var fieldValue []interface{} = make([]interface{}, 0) + for _, val := range input { + element := Com_amazonaws_kms_GrantTokenList_member_ToDafny(val) + fieldValue = append(fieldValue, element) + } + return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(fieldValue...)) + }() +} + +func Com_amazonaws_kms_GenerateDataKeyWithoutPlaintextRequest_DryRun_ToDafny(input *bool) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(*input) + }() +} + +func Com_amazonaws_kms_GenerateDataKeyWithoutPlaintextResponse_CiphertextBlob_ToDafny(input []byte) Wrappers.Option { + return func() Wrappers.Option { + var v []interface{} + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + for _, e := range input { + v = append(v, e) + } + return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(v...)) + }() +} + +func Com_amazonaws_kms_GenerateDataKeyWithoutPlaintextResponse_KeyId_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 Com_amazonaws_kms_GenerateMacRequest_Message_ToDafny(input []byte) dafny.Sequence { + return func() dafny.Sequence { + var v []interface{} + if input == nil { + return nil + } + for _, e := range input { + v = append(v, e) + } + return dafny.SeqOf(v...) + }() +} + +func Com_amazonaws_kms_GenerateMacRequest_KeyId_ToDafny(input *string) dafny.Sequence { + return func() dafny.Sequence { + if input == nil { + return nil + } + return func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(*input)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }() + }() +} + +func Com_amazonaws_kms_GenerateMacRequest_MacAlgorithm_ToDafny(input types.MacAlgorithmSpec) ComAmazonawsKmsTypes.MacAlgorithmSpec { + return func() ComAmazonawsKmsTypes.MacAlgorithmSpec { + 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(ComAmazonawsKmsTypes.CompanionStruct_MacAlgorithmSpec_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return enum.(ComAmazonawsKmsTypes.MacAlgorithmSpec) + }() +} + +func Com_amazonaws_kms_GenerateMacRequest_GrantTokens_ToDafny(input []string) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + var fieldValue []interface{} = make([]interface{}, 0) + for _, val := range input { + element := Com_amazonaws_kms_GrantTokenList_member_ToDafny(val) + fieldValue = append(fieldValue, element) + } + return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(fieldValue...)) + }() +} + +func Com_amazonaws_kms_GenerateMacRequest_DryRun_ToDafny(input *bool) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(*input) + }() +} + +func Com_amazonaws_kms_GenerateMacResponse_Mac_ToDafny(input []byte) Wrappers.Option { + return func() Wrappers.Option { + var v []interface{} + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + for _, e := range input { + v = append(v, e) + } + return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(v...)) + }() +} + +func Com_amazonaws_kms_GenerateMacResponse_MacAlgorithm_ToDafny(input types.MacAlgorithmSpec) Wrappers.Option { + return func() Wrappers.Option { + var index int + for _, enumVal := range input.Values() { + index++ + if enumVal == input { + break + } + if index == len(input.Values()) { + return Wrappers.Companion_Option_.Create_None_() + } + + } + var enum interface{} + for allEnums, i := dafny.Iterate(ComAmazonawsKmsTypes.CompanionStruct_MacAlgorithmSpec_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return Wrappers.Companion_Option_.Create_Some_(enum.(ComAmazonawsKmsTypes.MacAlgorithmSpec)) + }() +} + +func Com_amazonaws_kms_GenerateMacResponse_KeyId_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 Com_amazonaws_kms_GenerateRandomRequest_NumberOfBytes_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 Com_amazonaws_kms_GenerateRandomRequest_CustomKeyStoreId_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 Com_amazonaws_kms_GenerateRandomRequest_Recipient_ToDafny(input *types.RecipientInfo) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(ComAmazonawsKmsTypes.Companion_RecipientInfo_.Create_RecipientInfo_(Com_amazonaws_kms_RecipientInfo_KeyEncryptionAlgorithm_ToDafny(input.KeyEncryptionAlgorithm), Com_amazonaws_kms_RecipientInfo_AttestationDocument_ToDafny(input.AttestationDocument))) + }() +} + +func Com_amazonaws_kms_GenerateRandomResponse_Plaintext_ToDafny(input []byte) Wrappers.Option { + return func() Wrappers.Option { + var v []interface{} + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + for _, e := range input { + v = append(v, e) + } + return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(v...)) + }() +} + +func Com_amazonaws_kms_GenerateRandomResponse_CiphertextForRecipient_ToDafny(input []byte) Wrappers.Option { + return func() Wrappers.Option { + var v []interface{} + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + for _, e := range input { + v = append(v, e) + } + return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(v...)) + }() +} + +func Com_amazonaws_kms_GetKeyPolicyRequest_KeyId_ToDafny(input *string) dafny.Sequence { + return func() dafny.Sequence { + if input == nil { + return nil + } + return func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(*input)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }() + }() +} + +func Com_amazonaws_kms_GetKeyPolicyRequest_PolicyName_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 Com_amazonaws_kms_GetKeyPolicyResponse_Policy_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 Com_amazonaws_kms_GetKeyPolicyResponse_PolicyName_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 Com_amazonaws_kms_GetKeyRotationStatusRequest_KeyId_ToDafny(input *string) dafny.Sequence { + return func() dafny.Sequence { + if input == nil { + return nil + } + return func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(*input)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }() + }() +} + +func Com_amazonaws_kms_GetKeyRotationStatusResponse_KeyRotationEnabled_ToDafny(input bool) Wrappers.Option { + return func() Wrappers.Option { + + return Wrappers.Companion_Option_.Create_Some_(input) + }() +} + +func Com_amazonaws_kms_GetKeyRotationStatusResponse_KeyId_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 Com_amazonaws_kms_GetKeyRotationStatusResponse_RotationPeriodInDays_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 Com_amazonaws_kms_GetKeyRotationStatusResponse_NextRotationDate_ToDafny(input *time.Time) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + formattedTime := input.Format("2006-01-02T15:04:05.999999Z") + return Wrappers.Companion_Option_.Create_Some_(func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(formattedTime)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }()) + }() +} + +func Com_amazonaws_kms_GetKeyRotationStatusResponse_OnDemandRotationStartDate_ToDafny(input *time.Time) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + formattedTime := input.Format("2006-01-02T15:04:05.999999Z") + return Wrappers.Companion_Option_.Create_Some_(func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(formattedTime)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }()) + }() +} + +func Com_amazonaws_kms_GetParametersForImportRequest_KeyId_ToDafny(input *string) dafny.Sequence { + return func() dafny.Sequence { + if input == nil { + return nil + } + return func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(*input)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }() + }() +} + +func Com_amazonaws_kms_GetParametersForImportRequest_WrappingAlgorithm_ToDafny(input types.AlgorithmSpec) ComAmazonawsKmsTypes.AlgorithmSpec { + return func() ComAmazonawsKmsTypes.AlgorithmSpec { + 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(ComAmazonawsKmsTypes.CompanionStruct_AlgorithmSpec_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return enum.(ComAmazonawsKmsTypes.AlgorithmSpec) + }() +} + +func Com_amazonaws_kms_GetParametersForImportRequest_WrappingKeySpec_ToDafny(input types.WrappingKeySpec) ComAmazonawsKmsTypes.WrappingKeySpec { + return func() ComAmazonawsKmsTypes.WrappingKeySpec { + 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(ComAmazonawsKmsTypes.CompanionStruct_WrappingKeySpec_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return enum.(ComAmazonawsKmsTypes.WrappingKeySpec) + }() +} + +func Com_amazonaws_kms_GetParametersForImportResponse_KeyId_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 Com_amazonaws_kms_GetParametersForImportResponse_ImportToken_ToDafny(input []byte) Wrappers.Option { + return func() Wrappers.Option { + var v []interface{} + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + for _, e := range input { + v = append(v, e) + } + return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(v...)) + }() +} + +func Com_amazonaws_kms_GetParametersForImportResponse_PublicKey_ToDafny(input []byte) Wrappers.Option { + return func() Wrappers.Option { + var v []interface{} + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + for _, e := range input { + v = append(v, e) + } + return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(v...)) + }() +} + +func Com_amazonaws_kms_GetParametersForImportResponse_ParametersValidTo_ToDafny(input *time.Time) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + formattedTime := input.Format("2006-01-02T15:04:05.999999Z") + return Wrappers.Companion_Option_.Create_Some_(func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(formattedTime)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }()) + }() +} + +func Com_amazonaws_kms_GetPublicKeyRequest_KeyId_ToDafny(input *string) dafny.Sequence { + return func() dafny.Sequence { + if input == nil { + return nil + } + return func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(*input)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }() + }() +} + +func Com_amazonaws_kms_GetPublicKeyRequest_GrantTokens_ToDafny(input []string) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + var fieldValue []interface{} = make([]interface{}, 0) + for _, val := range input { + element := Com_amazonaws_kms_GrantTokenList_member_ToDafny(val) + fieldValue = append(fieldValue, element) + } + return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(fieldValue...)) + }() +} + +func Com_amazonaws_kms_GetPublicKeyResponse_KeyId_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 Com_amazonaws_kms_GetPublicKeyResponse_PublicKey_ToDafny(input []byte) Wrappers.Option { + return func() Wrappers.Option { + var v []interface{} + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + for _, e := range input { + v = append(v, e) + } + return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(v...)) + }() +} + +func Com_amazonaws_kms_GetPublicKeyResponse_CustomerMasterKeySpec_ToDafny(input types.CustomerMasterKeySpec) Wrappers.Option { + return func() Wrappers.Option { + var index int + for _, enumVal := range input.Values() { + index++ + if enumVal == input { + break + } + if index == len(input.Values()) { + return Wrappers.Companion_Option_.Create_None_() + } + + } + var enum interface{} + for allEnums, i := dafny.Iterate(ComAmazonawsKmsTypes.CompanionStruct_CustomerMasterKeySpec_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return Wrappers.Companion_Option_.Create_Some_(enum.(ComAmazonawsKmsTypes.CustomerMasterKeySpec)) + }() +} + +func Com_amazonaws_kms_GetPublicKeyResponse_KeySpec_ToDafny(input types.KeySpec) Wrappers.Option { + return func() Wrappers.Option { + var index int + for _, enumVal := range input.Values() { + index++ + if enumVal == input { + break + } + if index == len(input.Values()) { + return Wrappers.Companion_Option_.Create_None_() + } + + } + var enum interface{} + for allEnums, i := dafny.Iterate(ComAmazonawsKmsTypes.CompanionStruct_KeySpec_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return Wrappers.Companion_Option_.Create_Some_(enum.(ComAmazonawsKmsTypes.KeySpec)) + }() +} + +func Com_amazonaws_kms_GetPublicKeyResponse_KeyUsage_ToDafny(input types.KeyUsageType) Wrappers.Option { + return func() Wrappers.Option { + var index int + for _, enumVal := range input.Values() { + index++ + if enumVal == input { + break + } + if index == len(input.Values()) { + return Wrappers.Companion_Option_.Create_None_() + } + + } + var enum interface{} + for allEnums, i := dafny.Iterate(ComAmazonawsKmsTypes.CompanionStruct_KeyUsageType_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return Wrappers.Companion_Option_.Create_Some_(enum.(ComAmazonawsKmsTypes.KeyUsageType)) + }() +} + +func Com_amazonaws_kms_GetPublicKeyResponse_EncryptionAlgorithms_ToDafny(input []types.EncryptionAlgorithmSpec) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + var fieldValue []interface{} = make([]interface{}, 0) + for _, val := range input { + element := Com_amazonaws_kms_EncryptionAlgorithmSpecList_member_ToDafny(val) + fieldValue = append(fieldValue, element) + } + return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(fieldValue...)) + }() +} + +func Com_amazonaws_kms_GetPublicKeyResponse_SigningAlgorithms_ToDafny(input []types.SigningAlgorithmSpec) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + var fieldValue []interface{} = make([]interface{}, 0) + for _, val := range input { + element := Com_amazonaws_kms_SigningAlgorithmSpecList_member_ToDafny(val) + fieldValue = append(fieldValue, element) + } + return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(fieldValue...)) + }() +} + +func Com_amazonaws_kms_GetPublicKeyResponse_KeyAgreementAlgorithms_ToDafny(input []types.KeyAgreementAlgorithmSpec) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + var fieldValue []interface{} = make([]interface{}, 0) + for _, val := range input { + element := Com_amazonaws_kms_KeyAgreementAlgorithmSpecList_member_ToDafny(val) + fieldValue = append(fieldValue, element) + } + return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(fieldValue...)) + }() +} + +func Com_amazonaws_kms_ImportKeyMaterialRequest_KeyId_ToDafny(input *string) dafny.Sequence { + return func() dafny.Sequence { + if input == nil { + return nil + } + return func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(*input)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }() + }() +} + +func Com_amazonaws_kms_ImportKeyMaterialRequest_ImportToken_ToDafny(input []byte) dafny.Sequence { + return func() dafny.Sequence { + var v []interface{} + if input == nil { + return nil + } + for _, e := range input { + v = append(v, e) + } + return dafny.SeqOf(v...) + }() +} + +func Com_amazonaws_kms_ImportKeyMaterialRequest_EncryptedKeyMaterial_ToDafny(input []byte) dafny.Sequence { + return func() dafny.Sequence { + var v []interface{} + if input == nil { + return nil + } + for _, e := range input { + v = append(v, e) + } + return dafny.SeqOf(v...) + }() +} + +func Com_amazonaws_kms_ImportKeyMaterialRequest_ValidTo_ToDafny(input *time.Time) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + formattedTime := input.Format("2006-01-02T15:04:05.999999Z") + return Wrappers.Companion_Option_.Create_Some_(func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(formattedTime)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }()) + }() +} + +func Com_amazonaws_kms_ImportKeyMaterialRequest_ExpirationModel_ToDafny(input types.ExpirationModelType) Wrappers.Option { + return func() Wrappers.Option { + var index int + for _, enumVal := range input.Values() { + index++ + if enumVal == input { + break + } + if index == len(input.Values()) { + return Wrappers.Companion_Option_.Create_None_() + } + + } + var enum interface{} + for allEnums, i := dafny.Iterate(ComAmazonawsKmsTypes.CompanionStruct_ExpirationModelType_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return Wrappers.Companion_Option_.Create_Some_(enum.(ComAmazonawsKmsTypes.ExpirationModelType)) + }() +} + +func Com_amazonaws_kms_ListAliasesRequest_KeyId_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 Com_amazonaws_kms_ListAliasesRequest_Limit_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 Com_amazonaws_kms_ListAliasesRequest_Marker_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 Com_amazonaws_kms_ListAliasesResponse_Aliases_ToDafny(input []types.AliasListEntry) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + var fieldValue []interface{} = make([]interface{}, 0) + for _, val := range input { + element := Com_amazonaws_kms_AliasList_member_ToDafny(val) + fieldValue = append(fieldValue, element) + } + return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(fieldValue...)) + }() +} + +func Com_amazonaws_kms_AliasList_member_ToDafny(input types.AliasListEntry) ComAmazonawsKmsTypes.AliasListEntry { + return func() ComAmazonawsKmsTypes.AliasListEntry { + + return ComAmazonawsKmsTypes.Companion_AliasListEntry_.Create_AliasListEntry_(Com_amazonaws_kms_AliasListEntry_AliasName_ToDafny(input.AliasName), Com_amazonaws_kms_AliasListEntry_AliasArn_ToDafny(input.AliasArn), Com_amazonaws_kms_AliasListEntry_TargetKeyId_ToDafny(input.TargetKeyId), Com_amazonaws_kms_AliasListEntry_CreationDate_ToDafny(input.CreationDate), Com_amazonaws_kms_AliasListEntry_LastUpdatedDate_ToDafny(input.LastUpdatedDate)) + }() +} + +func Com_amazonaws_kms_AliasListEntry_AliasName_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 Com_amazonaws_kms_AliasListEntry_AliasArn_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 Com_amazonaws_kms_AliasListEntry_TargetKeyId_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 Com_amazonaws_kms_AliasListEntry_CreationDate_ToDafny(input *time.Time) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + formattedTime := input.Format("2006-01-02T15:04:05.999999Z") + return Wrappers.Companion_Option_.Create_Some_(func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(formattedTime)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }()) + }() +} + +func Com_amazonaws_kms_AliasListEntry_LastUpdatedDate_ToDafny(input *time.Time) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + formattedTime := input.Format("2006-01-02T15:04:05.999999Z") + return Wrappers.Companion_Option_.Create_Some_(func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(formattedTime)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }()) + }() +} + +func Com_amazonaws_kms_ListAliasesResponse_NextMarker_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 Com_amazonaws_kms_ListAliasesResponse_Truncated_ToDafny(input bool) Wrappers.Option { + return func() Wrappers.Option { + + return Wrappers.Companion_Option_.Create_Some_(input) + }() +} + +func Com_amazonaws_kms_ListGrantsRequest_Limit_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 Com_amazonaws_kms_ListGrantsRequest_Marker_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 Com_amazonaws_kms_ListGrantsRequest_KeyId_ToDafny(input *string) dafny.Sequence { + return func() dafny.Sequence { + if input == nil { + return nil + } + return func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(*input)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }() + }() +} + +func Com_amazonaws_kms_ListGrantsRequest_GrantId_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 Com_amazonaws_kms_ListGrantsRequest_GranteePrincipal_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 Com_amazonaws_kms_ListGrantsResponse_Grants_ToDafny(input []types.GrantListEntry) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + var fieldValue []interface{} = make([]interface{}, 0) + for _, val := range input { + element := Com_amazonaws_kms_GrantList_member_ToDafny(val) + fieldValue = append(fieldValue, element) + } + return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(fieldValue...)) + }() +} + +func Com_amazonaws_kms_GrantList_member_ToDafny(input types.GrantListEntry) ComAmazonawsKmsTypes.GrantListEntry { + return func() ComAmazonawsKmsTypes.GrantListEntry { + + return ComAmazonawsKmsTypes.Companion_GrantListEntry_.Create_GrantListEntry_(Com_amazonaws_kms_GrantListEntry_KeyId_ToDafny(input.KeyId), Com_amazonaws_kms_GrantListEntry_GrantId_ToDafny(input.GrantId), Com_amazonaws_kms_GrantListEntry_Name_ToDafny(input.Name), Com_amazonaws_kms_GrantListEntry_CreationDate_ToDafny(input.CreationDate), Com_amazonaws_kms_GrantListEntry_GranteePrincipal_ToDafny(input.GranteePrincipal), Com_amazonaws_kms_GrantListEntry_RetiringPrincipal_ToDafny(input.RetiringPrincipal), Com_amazonaws_kms_GrantListEntry_IssuingAccount_ToDafny(input.IssuingAccount), Com_amazonaws_kms_GrantListEntry_Operations_ToDafny(input.Operations), Com_amazonaws_kms_GrantListEntry_Constraints_ToDafny(input.Constraints)) + }() +} + +func Com_amazonaws_kms_GrantListEntry_KeyId_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 Com_amazonaws_kms_GrantListEntry_GrantId_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 Com_amazonaws_kms_GrantListEntry_Name_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 Com_amazonaws_kms_GrantListEntry_CreationDate_ToDafny(input *time.Time) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + formattedTime := input.Format("2006-01-02T15:04:05.999999Z") + return Wrappers.Companion_Option_.Create_Some_(func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(formattedTime)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }()) + }() +} + +func Com_amazonaws_kms_GrantListEntry_GranteePrincipal_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 Com_amazonaws_kms_GrantListEntry_RetiringPrincipal_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 Com_amazonaws_kms_GrantListEntry_IssuingAccount_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 Com_amazonaws_kms_GrantListEntry_Operations_ToDafny(input []types.GrantOperation) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + var fieldValue []interface{} = make([]interface{}, 0) + for _, val := range input { + element := Com_amazonaws_kms_GrantOperationList_member_ToDafny(val) + fieldValue = append(fieldValue, element) + } + return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(fieldValue...)) + }() +} + +func Com_amazonaws_kms_GrantListEntry_Constraints_ToDafny(input *types.GrantConstraints) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(ComAmazonawsKmsTypes.Companion_GrantConstraints_.Create_GrantConstraints_(Com_amazonaws_kms_GrantConstraints_EncryptionContextSubset_ToDafny(input.EncryptionContextSubset), Com_amazonaws_kms_GrantConstraints_EncryptionContextEquals_ToDafny(input.EncryptionContextEquals))) + }() +} + +func Com_amazonaws_kms_ListGrantsResponse_NextMarker_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 Com_amazonaws_kms_ListGrantsResponse_Truncated_ToDafny(input bool) Wrappers.Option { + return func() Wrappers.Option { + + return Wrappers.Companion_Option_.Create_Some_(input) + }() +} + +func Com_amazonaws_kms_ListKeyPoliciesRequest_KeyId_ToDafny(input *string) dafny.Sequence { + return func() dafny.Sequence { + if input == nil { + return nil + } + return func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(*input)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }() + }() +} + +func Com_amazonaws_kms_ListKeyPoliciesRequest_Limit_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 Com_amazonaws_kms_ListKeyPoliciesRequest_Marker_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 Com_amazonaws_kms_ListKeyPoliciesResponse_PolicyNames_ToDafny(input []string) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + var fieldValue []interface{} = make([]interface{}, 0) + for _, val := range input { + element := Com_amazonaws_kms_PolicyNameList_member_ToDafny(val) + fieldValue = append(fieldValue, element) + } + return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(fieldValue...)) + }() +} + +func Com_amazonaws_kms_PolicyNameList_member_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 Com_amazonaws_kms_ListKeyPoliciesResponse_NextMarker_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 Com_amazonaws_kms_ListKeyPoliciesResponse_Truncated_ToDafny(input bool) Wrappers.Option { + return func() Wrappers.Option { + + return Wrappers.Companion_Option_.Create_Some_(input) + }() +} + +func Com_amazonaws_kms_ListKeyRotationsRequest_KeyId_ToDafny(input *string) dafny.Sequence { + return func() dafny.Sequence { + if input == nil { + return nil + } + return func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(*input)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }() + }() +} + +func Com_amazonaws_kms_ListKeyRotationsRequest_Limit_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 Com_amazonaws_kms_ListKeyRotationsRequest_Marker_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 Com_amazonaws_kms_ListKeyRotationsResponse_Rotations_ToDafny(input []types.RotationsListEntry) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + var fieldValue []interface{} = make([]interface{}, 0) + for _, val := range input { + element := Com_amazonaws_kms_RotationsList_member_ToDafny(val) + fieldValue = append(fieldValue, element) + } + return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(fieldValue...)) + }() +} + +func Com_amazonaws_kms_RotationsList_member_ToDafny(input types.RotationsListEntry) ComAmazonawsKmsTypes.RotationsListEntry { + return func() ComAmazonawsKmsTypes.RotationsListEntry { + + return ComAmazonawsKmsTypes.Companion_RotationsListEntry_.Create_RotationsListEntry_(Com_amazonaws_kms_RotationsListEntry_KeyId_ToDafny(input.KeyId), Com_amazonaws_kms_RotationsListEntry_RotationDate_ToDafny(input.RotationDate), Com_amazonaws_kms_RotationsListEntry_RotationType_ToDafny(input.RotationType)) + }() +} + +func Com_amazonaws_kms_RotationsListEntry_KeyId_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 Com_amazonaws_kms_RotationsListEntry_RotationDate_ToDafny(input *time.Time) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + formattedTime := input.Format("2006-01-02T15:04:05.999999Z") + return Wrappers.Companion_Option_.Create_Some_(func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(formattedTime)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }()) + }() +} + +func Com_amazonaws_kms_RotationsListEntry_RotationType_ToDafny(input types.RotationType) Wrappers.Option { + return func() Wrappers.Option { + var index int + for _, enumVal := range input.Values() { + index++ + if enumVal == input { + break + } + if index == len(input.Values()) { + return Wrappers.Companion_Option_.Create_None_() + } + + } + var enum interface{} + for allEnums, i := dafny.Iterate(ComAmazonawsKmsTypes.CompanionStruct_RotationType_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return Wrappers.Companion_Option_.Create_Some_(enum.(ComAmazonawsKmsTypes.RotationType)) + }() +} + +func Com_amazonaws_kms_ListKeyRotationsResponse_NextMarker_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 Com_amazonaws_kms_ListKeyRotationsResponse_Truncated_ToDafny(input bool) Wrappers.Option { + return func() Wrappers.Option { + + return Wrappers.Companion_Option_.Create_Some_(input) + }() +} + +func Com_amazonaws_kms_ListKeysRequest_Limit_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 Com_amazonaws_kms_ListKeysRequest_Marker_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 Com_amazonaws_kms_ListKeysResponse_Keys_ToDafny(input []types.KeyListEntry) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + var fieldValue []interface{} = make([]interface{}, 0) + for _, val := range input { + element := Com_amazonaws_kms_KeyList_member_ToDafny(val) + fieldValue = append(fieldValue, element) + } + return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(fieldValue...)) + }() +} + +func Com_amazonaws_kms_KeyList_member_ToDafny(input types.KeyListEntry) ComAmazonawsKmsTypes.KeyListEntry { + return func() ComAmazonawsKmsTypes.KeyListEntry { + + return ComAmazonawsKmsTypes.Companion_KeyListEntry_.Create_KeyListEntry_(Com_amazonaws_kms_KeyListEntry_KeyId_ToDafny(input.KeyId), Com_amazonaws_kms_KeyListEntry_KeyArn_ToDafny(input.KeyArn)) + }() +} + +func Com_amazonaws_kms_KeyListEntry_KeyId_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 Com_amazonaws_kms_KeyListEntry_KeyArn_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 Com_amazonaws_kms_ListKeysResponse_NextMarker_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 Com_amazonaws_kms_ListKeysResponse_Truncated_ToDafny(input bool) Wrappers.Option { + return func() Wrappers.Option { + + return Wrappers.Companion_Option_.Create_Some_(input) + }() +} + +func Com_amazonaws_kms_ListResourceTagsRequest_KeyId_ToDafny(input *string) dafny.Sequence { + return func() dafny.Sequence { + if input == nil { + return nil + } + return func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(*input)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }() + }() +} + +func Com_amazonaws_kms_ListResourceTagsRequest_Limit_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 Com_amazonaws_kms_ListResourceTagsRequest_Marker_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 Com_amazonaws_kms_ListResourceTagsResponse_Tags_ToDafny(input []types.Tag) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + var fieldValue []interface{} = make([]interface{}, 0) + for _, val := range input { + element := Com_amazonaws_kms_TagList_member_ToDafny(val) + fieldValue = append(fieldValue, element) + } + return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(fieldValue...)) + }() +} + +func Com_amazonaws_kms_ListResourceTagsResponse_NextMarker_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 Com_amazonaws_kms_ListResourceTagsResponse_Truncated_ToDafny(input bool) Wrappers.Option { + return func() Wrappers.Option { + + return Wrappers.Companion_Option_.Create_Some_(input) + }() +} + +func Com_amazonaws_kms_PutKeyPolicyRequest_KeyId_ToDafny(input *string) dafny.Sequence { + return func() dafny.Sequence { + if input == nil { + return nil + } + return func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(*input)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }() + }() +} + +func Com_amazonaws_kms_PutKeyPolicyRequest_PolicyName_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 Com_amazonaws_kms_PutKeyPolicyRequest_Policy_ToDafny(input *string) dafny.Sequence { + return func() dafny.Sequence { + if input == nil { + return nil + } + return func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(*input)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }() + }() +} + +func Com_amazonaws_kms_PutKeyPolicyRequest_BypassPolicyLockoutSafetyCheck_ToDafny(input bool) Wrappers.Option { + return func() Wrappers.Option { + + return Wrappers.Companion_Option_.Create_Some_(input) + }() +} + +func Com_amazonaws_kms_ReEncryptRequest_CiphertextBlob_ToDafny(input []byte) dafny.Sequence { + return func() dafny.Sequence { + var v []interface{} + if input == nil { + return nil + } + for _, e := range input { + v = append(v, e) + } + return dafny.SeqOf(v...) + }() +} + +func Com_amazonaws_kms_ReEncryptRequest_SourceEncryptionContext_ToDafny(input map[string]string) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + fieldValue := dafny.NewMapBuilder() + for key, val := range input { + fieldValue.Add(Com_amazonaws_kms_EncryptionContextType_key_ToDafny(key), Com_amazonaws_kms_EncryptionContextType_value_ToDafny(val)) + } + return Wrappers.Companion_Option_.Create_Some_(fieldValue.ToMap()) + }() +} + +func Com_amazonaws_kms_ReEncryptRequest_SourceKeyId_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 Com_amazonaws_kms_ReEncryptRequest_DestinationKeyId_ToDafny(input *string) dafny.Sequence { + return func() dafny.Sequence { + if input == nil { + return nil + } + return func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(*input)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }() + }() +} + +func Com_amazonaws_kms_ReEncryptRequest_DestinationEncryptionContext_ToDafny(input map[string]string) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + fieldValue := dafny.NewMapBuilder() + for key, val := range input { + fieldValue.Add(Com_amazonaws_kms_EncryptionContextType_key_ToDafny(key), Com_amazonaws_kms_EncryptionContextType_value_ToDafny(val)) + } + return Wrappers.Companion_Option_.Create_Some_(fieldValue.ToMap()) + }() +} + +func Com_amazonaws_kms_ReEncryptRequest_SourceEncryptionAlgorithm_ToDafny(input types.EncryptionAlgorithmSpec) Wrappers.Option { + return func() Wrappers.Option { + var index int + for _, enumVal := range input.Values() { + index++ + if enumVal == input { + break + } + if index == len(input.Values()) { + return Wrappers.Companion_Option_.Create_None_() + } + + } + var enum interface{} + for allEnums, i := dafny.Iterate(ComAmazonawsKmsTypes.CompanionStruct_EncryptionAlgorithmSpec_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return Wrappers.Companion_Option_.Create_Some_(enum.(ComAmazonawsKmsTypes.EncryptionAlgorithmSpec)) + }() +} + +func Com_amazonaws_kms_ReEncryptRequest_DestinationEncryptionAlgorithm_ToDafny(input types.EncryptionAlgorithmSpec) Wrappers.Option { + return func() Wrappers.Option { + var index int + for _, enumVal := range input.Values() { + index++ + if enumVal == input { + break + } + if index == len(input.Values()) { + return Wrappers.Companion_Option_.Create_None_() + } + + } + var enum interface{} + for allEnums, i := dafny.Iterate(ComAmazonawsKmsTypes.CompanionStruct_EncryptionAlgorithmSpec_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return Wrappers.Companion_Option_.Create_Some_(enum.(ComAmazonawsKmsTypes.EncryptionAlgorithmSpec)) + }() +} + +func Com_amazonaws_kms_ReEncryptRequest_GrantTokens_ToDafny(input []string) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + var fieldValue []interface{} = make([]interface{}, 0) + for _, val := range input { + element := Com_amazonaws_kms_GrantTokenList_member_ToDafny(val) + fieldValue = append(fieldValue, element) + } + return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(fieldValue...)) + }() +} + +func Com_amazonaws_kms_ReEncryptRequest_DryRun_ToDafny(input *bool) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(*input) + }() +} + +func Com_amazonaws_kms_ReEncryptResponse_CiphertextBlob_ToDafny(input []byte) Wrappers.Option { + return func() Wrappers.Option { + var v []interface{} + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + for _, e := range input { + v = append(v, e) + } + return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(v...)) + }() +} + +func Com_amazonaws_kms_ReEncryptResponse_SourceKeyId_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 Com_amazonaws_kms_ReEncryptResponse_KeyId_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 Com_amazonaws_kms_ReEncryptResponse_SourceEncryptionAlgorithm_ToDafny(input types.EncryptionAlgorithmSpec) Wrappers.Option { + return func() Wrappers.Option { + var index int + for _, enumVal := range input.Values() { + index++ + if enumVal == input { + break + } + if index == len(input.Values()) { + return Wrappers.Companion_Option_.Create_None_() + } + + } + var enum interface{} + for allEnums, i := dafny.Iterate(ComAmazonawsKmsTypes.CompanionStruct_EncryptionAlgorithmSpec_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return Wrappers.Companion_Option_.Create_Some_(enum.(ComAmazonawsKmsTypes.EncryptionAlgorithmSpec)) + }() +} + +func Com_amazonaws_kms_ReEncryptResponse_DestinationEncryptionAlgorithm_ToDafny(input types.EncryptionAlgorithmSpec) Wrappers.Option { + return func() Wrappers.Option { + var index int + for _, enumVal := range input.Values() { + index++ + if enumVal == input { + break + } + if index == len(input.Values()) { + return Wrappers.Companion_Option_.Create_None_() + } + + } + var enum interface{} + for allEnums, i := dafny.Iterate(ComAmazonawsKmsTypes.CompanionStruct_EncryptionAlgorithmSpec_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return Wrappers.Companion_Option_.Create_Some_(enum.(ComAmazonawsKmsTypes.EncryptionAlgorithmSpec)) + }() +} + +func Com_amazonaws_kms_ReplicateKeyRequest_KeyId_ToDafny(input *string) dafny.Sequence { + return func() dafny.Sequence { + if input == nil { + return nil + } + return func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(*input)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }() + }() +} + +func Com_amazonaws_kms_ReplicateKeyRequest_ReplicaRegion_ToDafny(input *string) dafny.Sequence { + return func() dafny.Sequence { + if input == nil { + return nil + } + return func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(*input)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }() + }() +} + +func Com_amazonaws_kms_ReplicateKeyRequest_Policy_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 Com_amazonaws_kms_ReplicateKeyRequest_BypassPolicyLockoutSafetyCheck_ToDafny(input bool) Wrappers.Option { + return func() Wrappers.Option { + + return Wrappers.Companion_Option_.Create_Some_(input) + }() +} + +func Com_amazonaws_kms_ReplicateKeyRequest_Description_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 Com_amazonaws_kms_ReplicateKeyRequest_Tags_ToDafny(input []types.Tag) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + var fieldValue []interface{} = make([]interface{}, 0) + for _, val := range input { + element := Com_amazonaws_kms_TagList_member_ToDafny(val) + fieldValue = append(fieldValue, element) + } + return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(fieldValue...)) + }() +} + +func Com_amazonaws_kms_ReplicateKeyResponse_ReplicaKeyMetadata_ToDafny(input *types.KeyMetadata) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(ComAmazonawsKmsTypes.Companion_KeyMetadata_.Create_KeyMetadata_(Com_amazonaws_kms_KeyMetadata_AWSAccountId_ToDafny(input.AWSAccountId), Com_amazonaws_kms_KeyMetadata_KeyId_ToDafny(input.KeyId), Com_amazonaws_kms_KeyMetadata_Arn_ToDafny(input.Arn), Com_amazonaws_kms_KeyMetadata_CreationDate_ToDafny(input.CreationDate), Com_amazonaws_kms_KeyMetadata_Enabled_ToDafny(input.Enabled), Com_amazonaws_kms_KeyMetadata_Description_ToDafny(input.Description), Com_amazonaws_kms_KeyMetadata_KeyUsage_ToDafny(input.KeyUsage), Com_amazonaws_kms_KeyMetadata_KeyState_ToDafny(input.KeyState), Com_amazonaws_kms_KeyMetadata_DeletionDate_ToDafny(input.DeletionDate), Com_amazonaws_kms_KeyMetadata_ValidTo_ToDafny(input.ValidTo), Com_amazonaws_kms_KeyMetadata_Origin_ToDafny(input.Origin), Com_amazonaws_kms_KeyMetadata_CustomKeyStoreId_ToDafny(input.CustomKeyStoreId), Com_amazonaws_kms_KeyMetadata_CloudHsmClusterId_ToDafny(input.CloudHsmClusterId), Com_amazonaws_kms_KeyMetadata_ExpirationModel_ToDafny(input.ExpirationModel), Com_amazonaws_kms_KeyMetadata_KeyManager_ToDafny(input.KeyManager), Com_amazonaws_kms_KeyMetadata_CustomerMasterKeySpec_ToDafny(input.CustomerMasterKeySpec), Com_amazonaws_kms_KeyMetadata_KeySpec_ToDafny(input.KeySpec), Com_amazonaws_kms_KeyMetadata_EncryptionAlgorithms_ToDafny(input.EncryptionAlgorithms), Com_amazonaws_kms_KeyMetadata_SigningAlgorithms_ToDafny(input.SigningAlgorithms), Com_amazonaws_kms_KeyMetadata_KeyAgreementAlgorithms_ToDafny(input.KeyAgreementAlgorithms), Com_amazonaws_kms_KeyMetadata_MultiRegion_ToDafny(input.MultiRegion), Com_amazonaws_kms_KeyMetadata_MultiRegionConfiguration_ToDafny(input.MultiRegionConfiguration), Com_amazonaws_kms_KeyMetadata_PendingDeletionWindowInDays_ToDafny(input.PendingDeletionWindowInDays), Com_amazonaws_kms_KeyMetadata_MacAlgorithms_ToDafny(input.MacAlgorithms), Com_amazonaws_kms_KeyMetadata_XksKeyConfiguration_ToDafny(input.XksKeyConfiguration))) + }() +} + +func Com_amazonaws_kms_ReplicateKeyResponse_ReplicaPolicy_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 Com_amazonaws_kms_ReplicateKeyResponse_ReplicaTags_ToDafny(input []types.Tag) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + var fieldValue []interface{} = make([]interface{}, 0) + for _, val := range input { + element := Com_amazonaws_kms_TagList_member_ToDafny(val) + fieldValue = append(fieldValue, element) + } + return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(fieldValue...)) + }() +} + +func Com_amazonaws_kms_RetireGrantRequest_GrantToken_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 Com_amazonaws_kms_RetireGrantRequest_KeyId_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 Com_amazonaws_kms_RetireGrantRequest_GrantId_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 Com_amazonaws_kms_RetireGrantRequest_DryRun_ToDafny(input *bool) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(*input) + }() +} + +func Com_amazonaws_kms_RevokeGrantRequest_KeyId_ToDafny(input *string) dafny.Sequence { + return func() dafny.Sequence { + if input == nil { + return nil + } + return func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(*input)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }() + }() +} + +func Com_amazonaws_kms_RevokeGrantRequest_GrantId_ToDafny(input *string) dafny.Sequence { + return func() dafny.Sequence { + if input == nil { + return nil + } + return func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(*input)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }() + }() +} + +func Com_amazonaws_kms_RevokeGrantRequest_DryRun_ToDafny(input *bool) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(*input) + }() +} + +func Com_amazonaws_kms_RotateKeyOnDemandRequest_KeyId_ToDafny(input *string) dafny.Sequence { + return func() dafny.Sequence { + if input == nil { + return nil + } + return func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(*input)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }() + }() +} + +func Com_amazonaws_kms_RotateKeyOnDemandResponse_KeyId_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 Com_amazonaws_kms_ScheduleKeyDeletionRequest_KeyId_ToDafny(input *string) dafny.Sequence { + return func() dafny.Sequence { + if input == nil { + return nil + } + return func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(*input)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }() + }() +} + +func Com_amazonaws_kms_ScheduleKeyDeletionRequest_PendingWindowInDays_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 Com_amazonaws_kms_ScheduleKeyDeletionResponse_KeyId_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 Com_amazonaws_kms_ScheduleKeyDeletionResponse_DeletionDate_ToDafny(input *time.Time) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + formattedTime := input.Format("2006-01-02T15:04:05.999999Z") + return Wrappers.Companion_Option_.Create_Some_(func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(formattedTime)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }()) + }() +} + +func Com_amazonaws_kms_ScheduleKeyDeletionResponse_KeyState_ToDafny(input types.KeyState) Wrappers.Option { + return func() Wrappers.Option { + var index int + for _, enumVal := range input.Values() { + index++ + if enumVal == input { + break + } + if index == len(input.Values()) { + return Wrappers.Companion_Option_.Create_None_() + } + + } + var enum interface{} + for allEnums, i := dafny.Iterate(ComAmazonawsKmsTypes.CompanionStruct_KeyState_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return Wrappers.Companion_Option_.Create_Some_(enum.(ComAmazonawsKmsTypes.KeyState)) + }() +} + +func Com_amazonaws_kms_ScheduleKeyDeletionResponse_PendingWindowInDays_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 Com_amazonaws_kms_SignRequest_KeyId_ToDafny(input *string) dafny.Sequence { + return func() dafny.Sequence { + if input == nil { + return nil + } + return func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(*input)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }() + }() +} + +func Com_amazonaws_kms_SignRequest_Message_ToDafny(input []byte) dafny.Sequence { + return func() dafny.Sequence { + var v []interface{} + if input == nil { + return nil + } + for _, e := range input { + v = append(v, e) + } + return dafny.SeqOf(v...) + }() +} + +func Com_amazonaws_kms_SignRequest_MessageType_ToDafny(input types.MessageType) Wrappers.Option { + return func() Wrappers.Option { + var index int + for _, enumVal := range input.Values() { + index++ + if enumVal == input { + break + } + if index == len(input.Values()) { + return Wrappers.Companion_Option_.Create_None_() + } + + } + var enum interface{} + for allEnums, i := dafny.Iterate(ComAmazonawsKmsTypes.CompanionStruct_MessageType_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return Wrappers.Companion_Option_.Create_Some_(enum.(ComAmazonawsKmsTypes.MessageType)) + }() +} + +func Com_amazonaws_kms_SignRequest_GrantTokens_ToDafny(input []string) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + var fieldValue []interface{} = make([]interface{}, 0) + for _, val := range input { + element := Com_amazonaws_kms_GrantTokenList_member_ToDafny(val) + fieldValue = append(fieldValue, element) + } + return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(fieldValue...)) + }() +} + +func Com_amazonaws_kms_SignRequest_SigningAlgorithm_ToDafny(input types.SigningAlgorithmSpec) ComAmazonawsKmsTypes.SigningAlgorithmSpec { + return func() ComAmazonawsKmsTypes.SigningAlgorithmSpec { + 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(ComAmazonawsKmsTypes.CompanionStruct_SigningAlgorithmSpec_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return enum.(ComAmazonawsKmsTypes.SigningAlgorithmSpec) + }() +} + +func Com_amazonaws_kms_SignRequest_DryRun_ToDafny(input *bool) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(*input) + }() +} + +func Com_amazonaws_kms_SignResponse_KeyId_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 Com_amazonaws_kms_SignResponse_Signature_ToDafny(input []byte) Wrappers.Option { + return func() Wrappers.Option { + var v []interface{} + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + for _, e := range input { + v = append(v, e) + } + return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(v...)) + }() +} + +func Com_amazonaws_kms_SignResponse_SigningAlgorithm_ToDafny(input types.SigningAlgorithmSpec) Wrappers.Option { + return func() Wrappers.Option { + var index int + for _, enumVal := range input.Values() { + index++ + if enumVal == input { + break + } + if index == len(input.Values()) { + return Wrappers.Companion_Option_.Create_None_() + } + + } + var enum interface{} + for allEnums, i := dafny.Iterate(ComAmazonawsKmsTypes.CompanionStruct_SigningAlgorithmSpec_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return Wrappers.Companion_Option_.Create_Some_(enum.(ComAmazonawsKmsTypes.SigningAlgorithmSpec)) + }() +} + +func Com_amazonaws_kms_TagResourceRequest_KeyId_ToDafny(input *string) dafny.Sequence { + return func() dafny.Sequence { + if input == nil { + return nil + } + return func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(*input)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }() + }() +} + +func Com_amazonaws_kms_TagResourceRequest_Tags_ToDafny(input []types.Tag) dafny.Sequence { + return func() dafny.Sequence { + if input == nil { + return nil + } + var fieldValue []interface{} = make([]interface{}, 0) + for _, val := range input { + element := Com_amazonaws_kms_TagList_member_ToDafny(val) + fieldValue = append(fieldValue, element) + } + return dafny.SeqOf(fieldValue...) + }() +} + +func Com_amazonaws_kms_UntagResourceRequest_KeyId_ToDafny(input *string) dafny.Sequence { + return func() dafny.Sequence { + if input == nil { + return nil + } + return func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(*input)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }() + }() +} + +func Com_amazonaws_kms_UntagResourceRequest_TagKeys_ToDafny(input []string) dafny.Sequence { + return func() dafny.Sequence { + if input == nil { + return nil + } + var fieldValue []interface{} = make([]interface{}, 0) + for _, val := range input { + element := Com_amazonaws_kms_TagKeyList_member_ToDafny(val) + fieldValue = append(fieldValue, element) + } + return dafny.SeqOf(fieldValue...) + }() +} + +func Com_amazonaws_kms_TagKeyList_member_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 Com_amazonaws_kms_UpdateAliasRequest_AliasName_ToDafny(input *string) dafny.Sequence { + return func() dafny.Sequence { + if input == nil { + return nil + } + return func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(*input)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }() + }() +} + +func Com_amazonaws_kms_UpdateAliasRequest_TargetKeyId_ToDafny(input *string) dafny.Sequence { + return func() dafny.Sequence { + if input == nil { + return nil + } + return func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(*input)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }() + }() +} + +func Com_amazonaws_kms_UpdateCustomKeyStoreRequest_CustomKeyStoreId_ToDafny(input *string) dafny.Sequence { + return func() dafny.Sequence { + if input == nil { + return nil + } + return func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(*input)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }() + }() +} + +func Com_amazonaws_kms_UpdateCustomKeyStoreRequest_NewCustomKeyStoreName_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 Com_amazonaws_kms_UpdateCustomKeyStoreRequest_KeyStorePassword_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 Com_amazonaws_kms_UpdateCustomKeyStoreRequest_CloudHsmClusterId_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 Com_amazonaws_kms_UpdateCustomKeyStoreRequest_XksProxyUriEndpoint_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 Com_amazonaws_kms_UpdateCustomKeyStoreRequest_XksProxyUriPath_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 Com_amazonaws_kms_UpdateCustomKeyStoreRequest_XksProxyVpcEndpointServiceName_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 Com_amazonaws_kms_UpdateCustomKeyStoreRequest_XksProxyAuthenticationCredential_ToDafny(input *types.XksProxyAuthenticationCredentialType) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(ComAmazonawsKmsTypes.Companion_XksProxyAuthenticationCredentialType_.Create_XksProxyAuthenticationCredentialType_(Com_amazonaws_kms_XksProxyAuthenticationCredentialType_AccessKeyId_ToDafny(input.AccessKeyId), Com_amazonaws_kms_XksProxyAuthenticationCredentialType_RawSecretAccessKey_ToDafny(input.RawSecretAccessKey))) + }() +} + +func Com_amazonaws_kms_UpdateCustomKeyStoreRequest_XksProxyConnectivity_ToDafny(input types.XksProxyConnectivityType) Wrappers.Option { + return func() Wrappers.Option { + var index int + for _, enumVal := range input.Values() { + index++ + if enumVal == input { + break + } + if index == len(input.Values()) { + return Wrappers.Companion_Option_.Create_None_() + } + + } + var enum interface{} + for allEnums, i := dafny.Iterate(ComAmazonawsKmsTypes.CompanionStruct_XksProxyConnectivityType_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return Wrappers.Companion_Option_.Create_Some_(enum.(ComAmazonawsKmsTypes.XksProxyConnectivityType)) + }() +} + +func Com_amazonaws_kms_UpdateKeyDescriptionRequest_KeyId_ToDafny(input *string) dafny.Sequence { + return func() dafny.Sequence { + if input == nil { + return nil + } + return func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(*input)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }() + }() +} + +func Com_amazonaws_kms_UpdateKeyDescriptionRequest_Description_ToDafny(input *string) dafny.Sequence { + return func() dafny.Sequence { + if input == nil { + return nil + } + return func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(*input)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }() + }() +} + +func Com_amazonaws_kms_UpdatePrimaryRegionRequest_KeyId_ToDafny(input *string) dafny.Sequence { + return func() dafny.Sequence { + if input == nil { + return nil + } + return func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(*input)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }() + }() +} + +func Com_amazonaws_kms_UpdatePrimaryRegionRequest_PrimaryRegion_ToDafny(input *string) dafny.Sequence { + return func() dafny.Sequence { + if input == nil { + return nil + } + return func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(*input)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }() + }() +} + +func Com_amazonaws_kms_VerifyRequest_KeyId_ToDafny(input *string) dafny.Sequence { + return func() dafny.Sequence { + if input == nil { + return nil + } + return func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(*input)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }() + }() +} + +func Com_amazonaws_kms_VerifyRequest_Message_ToDafny(input []byte) dafny.Sequence { + return func() dafny.Sequence { + var v []interface{} + if input == nil { + return nil + } + for _, e := range input { + v = append(v, e) + } + return dafny.SeqOf(v...) + }() +} + +func Com_amazonaws_kms_VerifyRequest_MessageType_ToDafny(input types.MessageType) Wrappers.Option { + return func() Wrappers.Option { + var index int + for _, enumVal := range input.Values() { + index++ + if enumVal == input { + break + } + if index == len(input.Values()) { + return Wrappers.Companion_Option_.Create_None_() + } + + } + var enum interface{} + for allEnums, i := dafny.Iterate(ComAmazonawsKmsTypes.CompanionStruct_MessageType_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return Wrappers.Companion_Option_.Create_Some_(enum.(ComAmazonawsKmsTypes.MessageType)) + }() +} + +func Com_amazonaws_kms_VerifyRequest_Signature_ToDafny(input []byte) dafny.Sequence { + return func() dafny.Sequence { + var v []interface{} + if input == nil { + return nil + } + for _, e := range input { + v = append(v, e) + } + return dafny.SeqOf(v...) + }() +} + +func Com_amazonaws_kms_VerifyRequest_SigningAlgorithm_ToDafny(input types.SigningAlgorithmSpec) ComAmazonawsKmsTypes.SigningAlgorithmSpec { + return func() ComAmazonawsKmsTypes.SigningAlgorithmSpec { + 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(ComAmazonawsKmsTypes.CompanionStruct_SigningAlgorithmSpec_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return enum.(ComAmazonawsKmsTypes.SigningAlgorithmSpec) + }() +} + +func Com_amazonaws_kms_VerifyRequest_GrantTokens_ToDafny(input []string) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + var fieldValue []interface{} = make([]interface{}, 0) + for _, val := range input { + element := Com_amazonaws_kms_GrantTokenList_member_ToDafny(val) + fieldValue = append(fieldValue, element) + } + return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(fieldValue...)) + }() +} + +func Com_amazonaws_kms_VerifyRequest_DryRun_ToDafny(input *bool) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(*input) + }() +} + +func Com_amazonaws_kms_VerifyResponse_KeyId_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 Com_amazonaws_kms_VerifyResponse_SignatureValid_ToDafny(input bool) Wrappers.Option { + return func() Wrappers.Option { + + return Wrappers.Companion_Option_.Create_Some_(input) + }() +} + +func Com_amazonaws_kms_VerifyResponse_SigningAlgorithm_ToDafny(input types.SigningAlgorithmSpec) Wrappers.Option { + return func() Wrappers.Option { + var index int + for _, enumVal := range input.Values() { + index++ + if enumVal == input { + break + } + if index == len(input.Values()) { + return Wrappers.Companion_Option_.Create_None_() + } + + } + var enum interface{} + for allEnums, i := dafny.Iterate(ComAmazonawsKmsTypes.CompanionStruct_SigningAlgorithmSpec_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return Wrappers.Companion_Option_.Create_Some_(enum.(ComAmazonawsKmsTypes.SigningAlgorithmSpec)) + }() +} + +func Com_amazonaws_kms_VerifyMacRequest_Message_ToDafny(input []byte) dafny.Sequence { + return func() dafny.Sequence { + var v []interface{} + if input == nil { + return nil + } + for _, e := range input { + v = append(v, e) + } + return dafny.SeqOf(v...) + }() +} + +func Com_amazonaws_kms_VerifyMacRequest_KeyId_ToDafny(input *string) dafny.Sequence { + return func() dafny.Sequence { + if input == nil { + return nil + } + return func() dafny.Sequence { + res, err := UTF8.DecodeFromNativeGoByteArray([]byte(*input)) + if err != nil { + panic("invalid utf8 input provided") + } + return res + }() + }() +} + +func Com_amazonaws_kms_VerifyMacRequest_MacAlgorithm_ToDafny(input types.MacAlgorithmSpec) ComAmazonawsKmsTypes.MacAlgorithmSpec { + return func() ComAmazonawsKmsTypes.MacAlgorithmSpec { + 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(ComAmazonawsKmsTypes.CompanionStruct_MacAlgorithmSpec_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return enum.(ComAmazonawsKmsTypes.MacAlgorithmSpec) + }() +} + +func Com_amazonaws_kms_VerifyMacRequest_Mac_ToDafny(input []byte) dafny.Sequence { + return func() dafny.Sequence { + var v []interface{} + if input == nil { + return nil + } + for _, e := range input { + v = append(v, e) + } + return dafny.SeqOf(v...) + }() +} + +func Com_amazonaws_kms_VerifyMacRequest_GrantTokens_ToDafny(input []string) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + var fieldValue []interface{} = make([]interface{}, 0) + for _, val := range input { + element := Com_amazonaws_kms_GrantTokenList_member_ToDafny(val) + fieldValue = append(fieldValue, element) + } + return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(fieldValue...)) + }() +} + +func Com_amazonaws_kms_VerifyMacRequest_DryRun_ToDafny(input *bool) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(*input) + }() +} + +func Com_amazonaws_kms_VerifyMacResponse_KeyId_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 Com_amazonaws_kms_VerifyMacResponse_MacValid_ToDafny(input bool) Wrappers.Option { + return func() Wrappers.Option { + + return Wrappers.Companion_Option_.Create_Some_(input) + }() +} + +func Com_amazonaws_kms_VerifyMacResponse_MacAlgorithm_ToDafny(input types.MacAlgorithmSpec) Wrappers.Option { + return func() Wrappers.Option { + var index int + for _, enumVal := range input.Values() { + index++ + if enumVal == input { + break + } + if index == len(input.Values()) { + return Wrappers.Companion_Option_.Create_None_() + } + + } + var enum interface{} + for allEnums, i := dafny.Iterate(ComAmazonawsKmsTypes.CompanionStruct_MacAlgorithmSpec_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return Wrappers.Companion_Option_.Create_Some_(enum.(ComAmazonawsKmsTypes.MacAlgorithmSpec)) + }() +} + +func Com_amazonaws_kms_AlreadyExistsException_message_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 Com_amazonaws_kms_CloudHsmClusterInUseException_message_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 Com_amazonaws_kms_CloudHsmClusterInvalidConfigurationException_message_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 Com_amazonaws_kms_CloudHsmClusterNotActiveException_message_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 Com_amazonaws_kms_CloudHsmClusterNotFoundException_message_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 Com_amazonaws_kms_CloudHsmClusterNotRelatedException_message_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 Com_amazonaws_kms_ConflictException_message_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 Com_amazonaws_kms_CustomKeyStoreHasCMKsException_message_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 Com_amazonaws_kms_CustomKeyStoreInvalidStateException_message_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 Com_amazonaws_kms_CustomKeyStoreNameInUseException_message_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 Com_amazonaws_kms_CustomKeyStoreNotFoundException_message_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 Com_amazonaws_kms_DependencyTimeoutException_message_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 Com_amazonaws_kms_DisabledException_message_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 Com_amazonaws_kms_DryRunOperationException_message_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 Com_amazonaws_kms_ExpiredImportTokenException_message_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 Com_amazonaws_kms_IncorrectKeyException_message_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 Com_amazonaws_kms_IncorrectKeyMaterialException_message_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 Com_amazonaws_kms_IncorrectTrustAnchorException_message_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 Com_amazonaws_kms_InvalidAliasNameException_message_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 Com_amazonaws_kms_InvalidArnException_message_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 Com_amazonaws_kms_InvalidCiphertextException_message_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 Com_amazonaws_kms_InvalidGrantIdException_message_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 Com_amazonaws_kms_InvalidGrantTokenException_message_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 Com_amazonaws_kms_InvalidImportTokenException_message_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 Com_amazonaws_kms_InvalidKeyUsageException_message_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 Com_amazonaws_kms_InvalidMarkerException_message_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 Com_amazonaws_kms_KeyUnavailableException_message_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 Com_amazonaws_kms_KMSInternalException_message_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 Com_amazonaws_kms_KMSInvalidMacException_message_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 Com_amazonaws_kms_KMSInvalidSignatureException_message_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 Com_amazonaws_kms_KMSInvalidStateException_message_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 Com_amazonaws_kms_LimitExceededException_message_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 Com_amazonaws_kms_MalformedPolicyDocumentException_message_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 Com_amazonaws_kms_NotFoundException_message_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 Com_amazonaws_kms_TagException_message_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 Com_amazonaws_kms_UnsupportedOperationException_message_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 Com_amazonaws_kms_XksKeyAlreadyInUseException_message_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 Com_amazonaws_kms_XksKeyInvalidConfigurationException_message_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 Com_amazonaws_kms_XksKeyNotFoundException_message_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 Com_amazonaws_kms_XksProxyIncorrectAuthenticationCredentialException_message_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 Com_amazonaws_kms_XksProxyInvalidConfigurationException_message_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 Com_amazonaws_kms_XksProxyInvalidResponseException_message_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 Com_amazonaws_kms_XksProxyUriEndpointInUseException_message_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 Com_amazonaws_kms_XksProxyUriInUseException_message_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 Com_amazonaws_kms_XksProxyUriUnreachableException_message_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 Com_amazonaws_kms_XksProxyVpcEndpointServiceInUseException_message_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 Com_amazonaws_kms_XksProxyVpcEndpointServiceInvalidConfigurationException_message_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 Com_amazonaws_kms_XksProxyVpcEndpointServiceNotFoundException_message_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 + }()) + }() +} diff --git a/customer-preview/kms/comamazonawskmssmithygenerated/to_native.go b/customer-preview/kms/comamazonawskmssmithygenerated/to_native.go new file mode 100644 index 000000000..dfb67b701 --- /dev/null +++ b/customer-preview/kms/comamazonawskmssmithygenerated/to_native.go @@ -0,0 +1,7495 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package comamazonawskmssmithygenerated + +import ( + "time" + + "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/ComAmazonawsKmsTypes" + "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UTF8" + "github.com/aws/aws-sdk-go-v2/service/kms" + "github.com/aws/aws-sdk-go-v2/service/kms/types" + "github.com/aws/smithy-go" + "github.com/dafny-lang/DafnyRuntimeGo/v4/dafny" +) + +func CancelKeyDeletionInput_FromDafny(dafnyInput ComAmazonawsKmsTypes.CancelKeyDeletionRequest) kms.CancelKeyDeletionInput { + + return func() kms.CancelKeyDeletionInput { + + return kms.CancelKeyDeletionInput{ + KeyId: Com_amazonaws_kms_CancelKeyDeletionInput_KeyId_FromDafny(dafnyInput.Dtor_KeyId()), + } + }() + +} + +func CancelKeyDeletionOutput_FromDafny(dafnyOutput ComAmazonawsKmsTypes.CancelKeyDeletionResponse) kms.CancelKeyDeletionOutput { + + return func() kms.CancelKeyDeletionOutput { + + return kms.CancelKeyDeletionOutput{ + KeyId: Com_amazonaws_kms_CancelKeyDeletionOutput_KeyId_FromDafny(dafnyOutput.Dtor_KeyId().UnwrapOr(nil)), + } + }() + +} + +func ConnectCustomKeyStoreInput_FromDafny(dafnyInput ComAmazonawsKmsTypes.ConnectCustomKeyStoreRequest) kms.ConnectCustomKeyStoreInput { + + return func() kms.ConnectCustomKeyStoreInput { + + return kms.ConnectCustomKeyStoreInput{ + CustomKeyStoreId: Com_amazonaws_kms_ConnectCustomKeyStoreInput_CustomKeyStoreId_FromDafny(dafnyInput.Dtor_CustomKeyStoreId()), + } + }() + +} + +func ConnectCustomKeyStoreOutput_FromDafny(dafnyOutput ComAmazonawsKmsTypes.ConnectCustomKeyStoreResponse) kms.ConnectCustomKeyStoreOutput { + + return func() kms.ConnectCustomKeyStoreOutput { + + return kms.ConnectCustomKeyStoreOutput{} + }() + +} + +func CreateAliasInput_FromDafny(dafnyInput ComAmazonawsKmsTypes.CreateAliasRequest) kms.CreateAliasInput { + + return func() kms.CreateAliasInput { + + return kms.CreateAliasInput{ + AliasName: Com_amazonaws_kms_CreateAliasInput_AliasName_FromDafny(dafnyInput.Dtor_AliasName()), + TargetKeyId: Com_amazonaws_kms_CreateAliasInput_TargetKeyId_FromDafny(dafnyInput.Dtor_TargetKeyId()), + } + }() + +} + +func CreateCustomKeyStoreInput_FromDafny(dafnyInput ComAmazonawsKmsTypes.CreateCustomKeyStoreRequest) kms.CreateCustomKeyStoreInput { + + return func() kms.CreateCustomKeyStoreInput { + + return kms.CreateCustomKeyStoreInput{ + CustomKeyStoreName: Com_amazonaws_kms_CreateCustomKeyStoreInput_CustomKeyStoreName_FromDafny(dafnyInput.Dtor_CustomKeyStoreName()), + CloudHsmClusterId: Com_amazonaws_kms_CreateCustomKeyStoreInput_CloudHsmClusterId_FromDafny(dafnyInput.Dtor_CloudHsmClusterId().UnwrapOr(nil)), + TrustAnchorCertificate: Com_amazonaws_kms_CreateCustomKeyStoreInput_TrustAnchorCertificate_FromDafny(dafnyInput.Dtor_TrustAnchorCertificate().UnwrapOr(nil)), + KeyStorePassword: Com_amazonaws_kms_CreateCustomKeyStoreInput_KeyStorePassword_FromDafny(dafnyInput.Dtor_KeyStorePassword().UnwrapOr(nil)), + CustomKeyStoreType: Com_amazonaws_kms_CreateCustomKeyStoreInput_CustomKeyStoreType_FromDafny(dafnyInput.Dtor_CustomKeyStoreType().UnwrapOr(nil)), + XksProxyUriEndpoint: Com_amazonaws_kms_CreateCustomKeyStoreInput_XksProxyUriEndpoint_FromDafny(dafnyInput.Dtor_XksProxyUriEndpoint().UnwrapOr(nil)), + XksProxyUriPath: Com_amazonaws_kms_CreateCustomKeyStoreInput_XksProxyUriPath_FromDafny(dafnyInput.Dtor_XksProxyUriPath().UnwrapOr(nil)), + XksProxyVpcEndpointServiceName: Com_amazonaws_kms_CreateCustomKeyStoreInput_XksProxyVpcEndpointServiceName_FromDafny(dafnyInput.Dtor_XksProxyVpcEndpointServiceName().UnwrapOr(nil)), + XksProxyAuthenticationCredential: Com_amazonaws_kms_CreateCustomKeyStoreInput_XksProxyAuthenticationCredential_FromDafny(dafnyInput.Dtor_XksProxyAuthenticationCredential().UnwrapOr(nil)), + XksProxyConnectivity: Com_amazonaws_kms_CreateCustomKeyStoreInput_XksProxyConnectivity_FromDafny(dafnyInput.Dtor_XksProxyConnectivity().UnwrapOr(nil)), + } + }() + +} + +func CreateCustomKeyStoreOutput_FromDafny(dafnyOutput ComAmazonawsKmsTypes.CreateCustomKeyStoreResponse) kms.CreateCustomKeyStoreOutput { + + return func() kms.CreateCustomKeyStoreOutput { + + return kms.CreateCustomKeyStoreOutput{ + CustomKeyStoreId: Com_amazonaws_kms_CreateCustomKeyStoreOutput_CustomKeyStoreId_FromDafny(dafnyOutput.Dtor_CustomKeyStoreId().UnwrapOr(nil)), + } + }() + +} + +func CreateGrantInput_FromDafny(dafnyInput ComAmazonawsKmsTypes.CreateGrantRequest) kms.CreateGrantInput { + + return func() kms.CreateGrantInput { + + return kms.CreateGrantInput{ + KeyId: Com_amazonaws_kms_CreateGrantInput_KeyId_FromDafny(dafnyInput.Dtor_KeyId()), + GranteePrincipal: Com_amazonaws_kms_CreateGrantInput_GranteePrincipal_FromDafny(dafnyInput.Dtor_GranteePrincipal()), + RetiringPrincipal: Com_amazonaws_kms_CreateGrantInput_RetiringPrincipal_FromDafny(dafnyInput.Dtor_RetiringPrincipal().UnwrapOr(nil)), + Operations: Com_amazonaws_kms_CreateGrantInput_Operations_FromDafny(dafnyInput.Dtor_Operations()), + Constraints: Com_amazonaws_kms_CreateGrantInput_Constraints_FromDafny(dafnyInput.Dtor_Constraints().UnwrapOr(nil)), + GrantTokens: Com_amazonaws_kms_CreateGrantInput_GrantTokens_FromDafny(dafnyInput.Dtor_GrantTokens().UnwrapOr(nil)), + Name: Com_amazonaws_kms_CreateGrantInput_Name_FromDafny(dafnyInput.Dtor_Name().UnwrapOr(nil)), + DryRun: Com_amazonaws_kms_CreateGrantInput_DryRun_FromDafny(dafnyInput.Dtor_DryRun().UnwrapOr(nil)), + } + }() + +} + +func CreateGrantOutput_FromDafny(dafnyOutput ComAmazonawsKmsTypes.CreateGrantResponse) kms.CreateGrantOutput { + + return func() kms.CreateGrantOutput { + + return kms.CreateGrantOutput{ + GrantToken: Com_amazonaws_kms_CreateGrantOutput_GrantToken_FromDafny(dafnyOutput.Dtor_GrantToken().UnwrapOr(nil)), + GrantId: Com_amazonaws_kms_CreateGrantOutput_GrantId_FromDafny(dafnyOutput.Dtor_GrantId().UnwrapOr(nil)), + } + }() + +} + +func CreateKeyInput_FromDafny(dafnyInput ComAmazonawsKmsTypes.CreateKeyRequest) kms.CreateKeyInput { + + return func() kms.CreateKeyInput { + + return kms.CreateKeyInput{ + Policy: Com_amazonaws_kms_CreateKeyInput_Policy_FromDafny(dafnyInput.Dtor_Policy().UnwrapOr(nil)), + Description: Com_amazonaws_kms_CreateKeyInput_Description_FromDafny(dafnyInput.Dtor_Description().UnwrapOr(nil)), + KeyUsage: Com_amazonaws_kms_CreateKeyInput_KeyUsage_FromDafny(dafnyInput.Dtor_KeyUsage().UnwrapOr(nil)), + CustomerMasterKeySpec: Com_amazonaws_kms_CreateKeyInput_CustomerMasterKeySpec_FromDafny(dafnyInput.Dtor_CustomerMasterKeySpec().UnwrapOr(nil)), + KeySpec: Com_amazonaws_kms_CreateKeyInput_KeySpec_FromDafny(dafnyInput.Dtor_KeySpec().UnwrapOr(nil)), + Origin: Com_amazonaws_kms_CreateKeyInput_Origin_FromDafny(dafnyInput.Dtor_Origin().UnwrapOr(nil)), + CustomKeyStoreId: Com_amazonaws_kms_CreateKeyInput_CustomKeyStoreId_FromDafny(dafnyInput.Dtor_CustomKeyStoreId().UnwrapOr(nil)), + BypassPolicyLockoutSafetyCheck: Com_amazonaws_kms_CreateKeyInput_BypassPolicyLockoutSafetyCheck_FromDafny(dafnyInput.Dtor_BypassPolicyLockoutSafetyCheck().UnwrapOr(nil)), + Tags: Com_amazonaws_kms_CreateKeyInput_Tags_FromDafny(dafnyInput.Dtor_Tags().UnwrapOr(nil)), + MultiRegion: Com_amazonaws_kms_CreateKeyInput_MultiRegion_FromDafny(dafnyInput.Dtor_MultiRegion().UnwrapOr(nil)), + XksKeyId: Com_amazonaws_kms_CreateKeyInput_XksKeyId_FromDafny(dafnyInput.Dtor_XksKeyId().UnwrapOr(nil)), + } + }() + +} + +func CreateKeyOutput_FromDafny(dafnyOutput ComAmazonawsKmsTypes.CreateKeyResponse) kms.CreateKeyOutput { + + return func() kms.CreateKeyOutput { + + return kms.CreateKeyOutput{ + KeyMetadata: Com_amazonaws_kms_CreateKeyOutput_KeyMetadata_FromDafny(dafnyOutput.Dtor_KeyMetadata().UnwrapOr(nil)), + } + }() + +} + +func DecryptInput_FromDafny(dafnyInput ComAmazonawsKmsTypes.DecryptRequest) kms.DecryptInput { + + return func() kms.DecryptInput { + + return kms.DecryptInput{ + CiphertextBlob: Com_amazonaws_kms_DecryptInput_CiphertextBlob_FromDafny(dafnyInput.Dtor_CiphertextBlob()), + EncryptionContext: Com_amazonaws_kms_DecryptInput_EncryptionContext_FromDafny(dafnyInput.Dtor_EncryptionContext().UnwrapOr(nil)), + GrantTokens: Com_amazonaws_kms_DecryptInput_GrantTokens_FromDafny(dafnyInput.Dtor_GrantTokens().UnwrapOr(nil)), + KeyId: Com_amazonaws_kms_DecryptInput_KeyId_FromDafny(dafnyInput.Dtor_KeyId().UnwrapOr(nil)), + EncryptionAlgorithm: Com_amazonaws_kms_DecryptInput_EncryptionAlgorithm_FromDafny(dafnyInput.Dtor_EncryptionAlgorithm().UnwrapOr(nil)), + Recipient: Com_amazonaws_kms_DecryptInput_Recipient_FromDafny(dafnyInput.Dtor_Recipient().UnwrapOr(nil)), + DryRun: Com_amazonaws_kms_DecryptInput_DryRun_FromDafny(dafnyInput.Dtor_DryRun().UnwrapOr(nil)), + } + }() + +} + +func DecryptOutput_FromDafny(dafnyOutput ComAmazonawsKmsTypes.DecryptResponse) kms.DecryptOutput { + + return func() kms.DecryptOutput { + + return kms.DecryptOutput{ + KeyId: Com_amazonaws_kms_DecryptOutput_KeyId_FromDafny(dafnyOutput.Dtor_KeyId().UnwrapOr(nil)), + Plaintext: Com_amazonaws_kms_DecryptOutput_Plaintext_FromDafny(dafnyOutput.Dtor_Plaintext().UnwrapOr(nil)), + EncryptionAlgorithm: Com_amazonaws_kms_DecryptOutput_EncryptionAlgorithm_FromDafny(dafnyOutput.Dtor_EncryptionAlgorithm().UnwrapOr(nil)), + CiphertextForRecipient: Com_amazonaws_kms_DecryptOutput_CiphertextForRecipient_FromDafny(dafnyOutput.Dtor_CiphertextForRecipient().UnwrapOr(nil)), + } + }() + +} + +func DeleteAliasInput_FromDafny(dafnyInput ComAmazonawsKmsTypes.DeleteAliasRequest) kms.DeleteAliasInput { + + return func() kms.DeleteAliasInput { + + return kms.DeleteAliasInput{ + AliasName: Com_amazonaws_kms_DeleteAliasInput_AliasName_FromDafny(dafnyInput.Dtor_AliasName()), + } + }() + +} + +func DeleteCustomKeyStoreInput_FromDafny(dafnyInput ComAmazonawsKmsTypes.DeleteCustomKeyStoreRequest) kms.DeleteCustomKeyStoreInput { + + return func() kms.DeleteCustomKeyStoreInput { + + return kms.DeleteCustomKeyStoreInput{ + CustomKeyStoreId: Com_amazonaws_kms_DeleteCustomKeyStoreInput_CustomKeyStoreId_FromDafny(dafnyInput.Dtor_CustomKeyStoreId()), + } + }() + +} + +func DeleteCustomKeyStoreOutput_FromDafny(dafnyOutput ComAmazonawsKmsTypes.DeleteCustomKeyStoreResponse) kms.DeleteCustomKeyStoreOutput { + + return func() kms.DeleteCustomKeyStoreOutput { + + return kms.DeleteCustomKeyStoreOutput{} + }() + +} + +func DeleteImportedKeyMaterialInput_FromDafny(dafnyInput ComAmazonawsKmsTypes.DeleteImportedKeyMaterialRequest) kms.DeleteImportedKeyMaterialInput { + + return func() kms.DeleteImportedKeyMaterialInput { + + return kms.DeleteImportedKeyMaterialInput{ + KeyId: Com_amazonaws_kms_DeleteImportedKeyMaterialInput_KeyId_FromDafny(dafnyInput.Dtor_KeyId()), + } + }() + +} + +func DeriveSharedSecretInput_FromDafny(dafnyInput ComAmazonawsKmsTypes.DeriveSharedSecretRequest) kms.DeriveSharedSecretInput { + + return func() kms.DeriveSharedSecretInput { + + return kms.DeriveSharedSecretInput{ + KeyId: Com_amazonaws_kms_DeriveSharedSecretInput_KeyId_FromDafny(dafnyInput.Dtor_KeyId()), + KeyAgreementAlgorithm: Com_amazonaws_kms_DeriveSharedSecretInput_KeyAgreementAlgorithm_FromDafny(dafnyInput.Dtor_KeyAgreementAlgorithm()), + PublicKey: Com_amazonaws_kms_DeriveSharedSecretInput_PublicKey_FromDafny(dafnyInput.Dtor_PublicKey()), + GrantTokens: Com_amazonaws_kms_DeriveSharedSecretInput_GrantTokens_FromDafny(dafnyInput.Dtor_GrantTokens().UnwrapOr(nil)), + DryRun: Com_amazonaws_kms_DeriveSharedSecretInput_DryRun_FromDafny(dafnyInput.Dtor_DryRun().UnwrapOr(nil)), + Recipient: Com_amazonaws_kms_DeriveSharedSecretInput_Recipient_FromDafny(dafnyInput.Dtor_Recipient().UnwrapOr(nil)), + } + }() + +} + +func DeriveSharedSecretOutput_FromDafny(dafnyOutput ComAmazonawsKmsTypes.DeriveSharedSecretResponse) kms.DeriveSharedSecretOutput { + + return func() kms.DeriveSharedSecretOutput { + + return kms.DeriveSharedSecretOutput{ + KeyId: Com_amazonaws_kms_DeriveSharedSecretOutput_KeyId_FromDafny(dafnyOutput.Dtor_KeyId().UnwrapOr(nil)), + SharedSecret: Com_amazonaws_kms_DeriveSharedSecretOutput_SharedSecret_FromDafny(dafnyOutput.Dtor_SharedSecret().UnwrapOr(nil)), + CiphertextForRecipient: Com_amazonaws_kms_DeriveSharedSecretOutput_CiphertextForRecipient_FromDafny(dafnyOutput.Dtor_CiphertextForRecipient().UnwrapOr(nil)), + KeyAgreementAlgorithm: Com_amazonaws_kms_DeriveSharedSecretOutput_KeyAgreementAlgorithm_FromDafny(dafnyOutput.Dtor_KeyAgreementAlgorithm().UnwrapOr(nil)), + KeyOrigin: Com_amazonaws_kms_DeriveSharedSecretOutput_KeyOrigin_FromDafny(dafnyOutput.Dtor_KeyOrigin().UnwrapOr(nil)), + } + }() + +} + +func DescribeCustomKeyStoresInput_FromDafny(dafnyInput ComAmazonawsKmsTypes.DescribeCustomKeyStoresRequest) kms.DescribeCustomKeyStoresInput { + + return func() kms.DescribeCustomKeyStoresInput { + + return kms.DescribeCustomKeyStoresInput{ + CustomKeyStoreId: Com_amazonaws_kms_DescribeCustomKeyStoresInput_CustomKeyStoreId_FromDafny(dafnyInput.Dtor_CustomKeyStoreId().UnwrapOr(nil)), + CustomKeyStoreName: Com_amazonaws_kms_DescribeCustomKeyStoresInput_CustomKeyStoreName_FromDafny(dafnyInput.Dtor_CustomKeyStoreName().UnwrapOr(nil)), + Limit: Com_amazonaws_kms_DescribeCustomKeyStoresInput_Limit_FromDafny(dafnyInput.Dtor_Limit().UnwrapOr(nil)), + Marker: Com_amazonaws_kms_DescribeCustomKeyStoresInput_Marker_FromDafny(dafnyInput.Dtor_Marker().UnwrapOr(nil)), + } + }() + +} + +func DescribeCustomKeyStoresOutput_FromDafny(dafnyOutput ComAmazonawsKmsTypes.DescribeCustomKeyStoresResponse) kms.DescribeCustomKeyStoresOutput { + + return func() kms.DescribeCustomKeyStoresOutput { + + return kms.DescribeCustomKeyStoresOutput{ + CustomKeyStores: Com_amazonaws_kms_DescribeCustomKeyStoresOutput_CustomKeyStores_FromDafny(dafnyOutput.Dtor_CustomKeyStores().UnwrapOr(nil)), + NextMarker: Com_amazonaws_kms_DescribeCustomKeyStoresOutput_NextMarker_FromDafny(dafnyOutput.Dtor_NextMarker().UnwrapOr(nil)), + Truncated: Com_amazonaws_kms_DescribeCustomKeyStoresOutput_Truncated_FromDafny(dafnyOutput.Dtor_Truncated().UnwrapOr(nil)), + } + }() + +} + +func DescribeKeyInput_FromDafny(dafnyInput ComAmazonawsKmsTypes.DescribeKeyRequest) kms.DescribeKeyInput { + + return func() kms.DescribeKeyInput { + + return kms.DescribeKeyInput{ + KeyId: Com_amazonaws_kms_DescribeKeyInput_KeyId_FromDafny(dafnyInput.Dtor_KeyId()), + GrantTokens: Com_amazonaws_kms_DescribeKeyInput_GrantTokens_FromDafny(dafnyInput.Dtor_GrantTokens().UnwrapOr(nil)), + } + }() + +} + +func DescribeKeyOutput_FromDafny(dafnyOutput ComAmazonawsKmsTypes.DescribeKeyResponse) kms.DescribeKeyOutput { + + return func() kms.DescribeKeyOutput { + + return kms.DescribeKeyOutput{ + KeyMetadata: Com_amazonaws_kms_DescribeKeyOutput_KeyMetadata_FromDafny(dafnyOutput.Dtor_KeyMetadata().UnwrapOr(nil)), + } + }() + +} + +func DisableKeyInput_FromDafny(dafnyInput ComAmazonawsKmsTypes.DisableKeyRequest) kms.DisableKeyInput { + + return func() kms.DisableKeyInput { + + return kms.DisableKeyInput{ + KeyId: Com_amazonaws_kms_DisableKeyInput_KeyId_FromDafny(dafnyInput.Dtor_KeyId()), + } + }() + +} + +func DisableKeyRotationInput_FromDafny(dafnyInput ComAmazonawsKmsTypes.DisableKeyRotationRequest) kms.DisableKeyRotationInput { + + return func() kms.DisableKeyRotationInput { + + return kms.DisableKeyRotationInput{ + KeyId: Com_amazonaws_kms_DisableKeyRotationInput_KeyId_FromDafny(dafnyInput.Dtor_KeyId()), + } + }() + +} + +func DisconnectCustomKeyStoreInput_FromDafny(dafnyInput ComAmazonawsKmsTypes.DisconnectCustomKeyStoreRequest) kms.DisconnectCustomKeyStoreInput { + + return func() kms.DisconnectCustomKeyStoreInput { + + return kms.DisconnectCustomKeyStoreInput{ + CustomKeyStoreId: Com_amazonaws_kms_DisconnectCustomKeyStoreInput_CustomKeyStoreId_FromDafny(dafnyInput.Dtor_CustomKeyStoreId()), + } + }() + +} + +func DisconnectCustomKeyStoreOutput_FromDafny(dafnyOutput ComAmazonawsKmsTypes.DisconnectCustomKeyStoreResponse) kms.DisconnectCustomKeyStoreOutput { + + return func() kms.DisconnectCustomKeyStoreOutput { + + return kms.DisconnectCustomKeyStoreOutput{} + }() + +} + +func EnableKeyInput_FromDafny(dafnyInput ComAmazonawsKmsTypes.EnableKeyRequest) kms.EnableKeyInput { + + return func() kms.EnableKeyInput { + + return kms.EnableKeyInput{ + KeyId: Com_amazonaws_kms_EnableKeyInput_KeyId_FromDafny(dafnyInput.Dtor_KeyId()), + } + }() + +} + +func EnableKeyRotationInput_FromDafny(dafnyInput ComAmazonawsKmsTypes.EnableKeyRotationRequest) kms.EnableKeyRotationInput { + + return func() kms.EnableKeyRotationInput { + + return kms.EnableKeyRotationInput{ + KeyId: Com_amazonaws_kms_EnableKeyRotationInput_KeyId_FromDafny(dafnyInput.Dtor_KeyId()), + RotationPeriodInDays: Com_amazonaws_kms_EnableKeyRotationInput_RotationPeriodInDays_FromDafny(dafnyInput.Dtor_RotationPeriodInDays().UnwrapOr(nil)), + } + }() + +} + +func EncryptInput_FromDafny(dafnyInput ComAmazonawsKmsTypes.EncryptRequest) kms.EncryptInput { + + return func() kms.EncryptInput { + + return kms.EncryptInput{ + KeyId: Com_amazonaws_kms_EncryptInput_KeyId_FromDafny(dafnyInput.Dtor_KeyId()), + Plaintext: Com_amazonaws_kms_EncryptInput_Plaintext_FromDafny(dafnyInput.Dtor_Plaintext()), + EncryptionContext: Com_amazonaws_kms_EncryptInput_EncryptionContext_FromDafny(dafnyInput.Dtor_EncryptionContext().UnwrapOr(nil)), + GrantTokens: Com_amazonaws_kms_EncryptInput_GrantTokens_FromDafny(dafnyInput.Dtor_GrantTokens().UnwrapOr(nil)), + EncryptionAlgorithm: Com_amazonaws_kms_EncryptInput_EncryptionAlgorithm_FromDafny(dafnyInput.Dtor_EncryptionAlgorithm().UnwrapOr(nil)), + DryRun: Com_amazonaws_kms_EncryptInput_DryRun_FromDafny(dafnyInput.Dtor_DryRun().UnwrapOr(nil)), + } + }() + +} + +func EncryptOutput_FromDafny(dafnyOutput ComAmazonawsKmsTypes.EncryptResponse) kms.EncryptOutput { + + return func() kms.EncryptOutput { + + return kms.EncryptOutput{ + CiphertextBlob: Com_amazonaws_kms_EncryptOutput_CiphertextBlob_FromDafny(dafnyOutput.Dtor_CiphertextBlob().UnwrapOr(nil)), + KeyId: Com_amazonaws_kms_EncryptOutput_KeyId_FromDafny(dafnyOutput.Dtor_KeyId().UnwrapOr(nil)), + EncryptionAlgorithm: Com_amazonaws_kms_EncryptOutput_EncryptionAlgorithm_FromDafny(dafnyOutput.Dtor_EncryptionAlgorithm().UnwrapOr(nil)), + } + }() + +} + +func GenerateDataKeyInput_FromDafny(dafnyInput ComAmazonawsKmsTypes.GenerateDataKeyRequest) kms.GenerateDataKeyInput { + + return func() kms.GenerateDataKeyInput { + + return kms.GenerateDataKeyInput{ + KeyId: Com_amazonaws_kms_GenerateDataKeyInput_KeyId_FromDafny(dafnyInput.Dtor_KeyId()), + EncryptionContext: Com_amazonaws_kms_GenerateDataKeyInput_EncryptionContext_FromDafny(dafnyInput.Dtor_EncryptionContext().UnwrapOr(nil)), + NumberOfBytes: Com_amazonaws_kms_GenerateDataKeyInput_NumberOfBytes_FromDafny(dafnyInput.Dtor_NumberOfBytes().UnwrapOr(nil)), + KeySpec: Com_amazonaws_kms_GenerateDataKeyInput_KeySpec_FromDafny(dafnyInput.Dtor_KeySpec().UnwrapOr(nil)), + GrantTokens: Com_amazonaws_kms_GenerateDataKeyInput_GrantTokens_FromDafny(dafnyInput.Dtor_GrantTokens().UnwrapOr(nil)), + Recipient: Com_amazonaws_kms_GenerateDataKeyInput_Recipient_FromDafny(dafnyInput.Dtor_Recipient().UnwrapOr(nil)), + DryRun: Com_amazonaws_kms_GenerateDataKeyInput_DryRun_FromDafny(dafnyInput.Dtor_DryRun().UnwrapOr(nil)), + } + }() + +} + +func GenerateDataKeyOutput_FromDafny(dafnyOutput ComAmazonawsKmsTypes.GenerateDataKeyResponse) kms.GenerateDataKeyOutput { + + return func() kms.GenerateDataKeyOutput { + + return kms.GenerateDataKeyOutput{ + CiphertextBlob: Com_amazonaws_kms_GenerateDataKeyOutput_CiphertextBlob_FromDafny(dafnyOutput.Dtor_CiphertextBlob().UnwrapOr(nil)), + Plaintext: Com_amazonaws_kms_GenerateDataKeyOutput_Plaintext_FromDafny(dafnyOutput.Dtor_Plaintext().UnwrapOr(nil)), + KeyId: Com_amazonaws_kms_GenerateDataKeyOutput_KeyId_FromDafny(dafnyOutput.Dtor_KeyId().UnwrapOr(nil)), + CiphertextForRecipient: Com_amazonaws_kms_GenerateDataKeyOutput_CiphertextForRecipient_FromDafny(dafnyOutput.Dtor_CiphertextForRecipient().UnwrapOr(nil)), + } + }() + +} + +func GenerateDataKeyPairInput_FromDafny(dafnyInput ComAmazonawsKmsTypes.GenerateDataKeyPairRequest) kms.GenerateDataKeyPairInput { + + return func() kms.GenerateDataKeyPairInput { + + return kms.GenerateDataKeyPairInput{ + EncryptionContext: Com_amazonaws_kms_GenerateDataKeyPairInput_EncryptionContext_FromDafny(dafnyInput.Dtor_EncryptionContext().UnwrapOr(nil)), + KeyId: Com_amazonaws_kms_GenerateDataKeyPairInput_KeyId_FromDafny(dafnyInput.Dtor_KeyId()), + KeyPairSpec: Com_amazonaws_kms_GenerateDataKeyPairInput_KeyPairSpec_FromDafny(dafnyInput.Dtor_KeyPairSpec()), + GrantTokens: Com_amazonaws_kms_GenerateDataKeyPairInput_GrantTokens_FromDafny(dafnyInput.Dtor_GrantTokens().UnwrapOr(nil)), + Recipient: Com_amazonaws_kms_GenerateDataKeyPairInput_Recipient_FromDafny(dafnyInput.Dtor_Recipient().UnwrapOr(nil)), + DryRun: Com_amazonaws_kms_GenerateDataKeyPairInput_DryRun_FromDafny(dafnyInput.Dtor_DryRun().UnwrapOr(nil)), + } + }() + +} + +func GenerateDataKeyPairOutput_FromDafny(dafnyOutput ComAmazonawsKmsTypes.GenerateDataKeyPairResponse) kms.GenerateDataKeyPairOutput { + + return func() kms.GenerateDataKeyPairOutput { + + return kms.GenerateDataKeyPairOutput{ + PrivateKeyCiphertextBlob: Com_amazonaws_kms_GenerateDataKeyPairOutput_PrivateKeyCiphertextBlob_FromDafny(dafnyOutput.Dtor_PrivateKeyCiphertextBlob().UnwrapOr(nil)), + PrivateKeyPlaintext: Com_amazonaws_kms_GenerateDataKeyPairOutput_PrivateKeyPlaintext_FromDafny(dafnyOutput.Dtor_PrivateKeyPlaintext().UnwrapOr(nil)), + PublicKey: Com_amazonaws_kms_GenerateDataKeyPairOutput_PublicKey_FromDafny(dafnyOutput.Dtor_PublicKey().UnwrapOr(nil)), + KeyId: Com_amazonaws_kms_GenerateDataKeyPairOutput_KeyId_FromDafny(dafnyOutput.Dtor_KeyId().UnwrapOr(nil)), + KeyPairSpec: Com_amazonaws_kms_GenerateDataKeyPairOutput_KeyPairSpec_FromDafny(dafnyOutput.Dtor_KeyPairSpec().UnwrapOr(nil)), + CiphertextForRecipient: Com_amazonaws_kms_GenerateDataKeyPairOutput_CiphertextForRecipient_FromDafny(dafnyOutput.Dtor_CiphertextForRecipient().UnwrapOr(nil)), + } + }() + +} + +func GenerateDataKeyPairWithoutPlaintextInput_FromDafny(dafnyInput ComAmazonawsKmsTypes.GenerateDataKeyPairWithoutPlaintextRequest) kms.GenerateDataKeyPairWithoutPlaintextInput { + + return func() kms.GenerateDataKeyPairWithoutPlaintextInput { + + return kms.GenerateDataKeyPairWithoutPlaintextInput{ + EncryptionContext: Com_amazonaws_kms_GenerateDataKeyPairWithoutPlaintextInput_EncryptionContext_FromDafny(dafnyInput.Dtor_EncryptionContext().UnwrapOr(nil)), + KeyId: Com_amazonaws_kms_GenerateDataKeyPairWithoutPlaintextInput_KeyId_FromDafny(dafnyInput.Dtor_KeyId()), + KeyPairSpec: Com_amazonaws_kms_GenerateDataKeyPairWithoutPlaintextInput_KeyPairSpec_FromDafny(dafnyInput.Dtor_KeyPairSpec()), + GrantTokens: Com_amazonaws_kms_GenerateDataKeyPairWithoutPlaintextInput_GrantTokens_FromDafny(dafnyInput.Dtor_GrantTokens().UnwrapOr(nil)), + DryRun: Com_amazonaws_kms_GenerateDataKeyPairWithoutPlaintextInput_DryRun_FromDafny(dafnyInput.Dtor_DryRun().UnwrapOr(nil)), + } + }() + +} + +func GenerateDataKeyPairWithoutPlaintextOutput_FromDafny(dafnyOutput ComAmazonawsKmsTypes.GenerateDataKeyPairWithoutPlaintextResponse) kms.GenerateDataKeyPairWithoutPlaintextOutput { + + return func() kms.GenerateDataKeyPairWithoutPlaintextOutput { + + return kms.GenerateDataKeyPairWithoutPlaintextOutput{ + PrivateKeyCiphertextBlob: Com_amazonaws_kms_GenerateDataKeyPairWithoutPlaintextOutput_PrivateKeyCiphertextBlob_FromDafny(dafnyOutput.Dtor_PrivateKeyCiphertextBlob().UnwrapOr(nil)), + PublicKey: Com_amazonaws_kms_GenerateDataKeyPairWithoutPlaintextOutput_PublicKey_FromDafny(dafnyOutput.Dtor_PublicKey().UnwrapOr(nil)), + KeyId: Com_amazonaws_kms_GenerateDataKeyPairWithoutPlaintextOutput_KeyId_FromDafny(dafnyOutput.Dtor_KeyId().UnwrapOr(nil)), + KeyPairSpec: Com_amazonaws_kms_GenerateDataKeyPairWithoutPlaintextOutput_KeyPairSpec_FromDafny(dafnyOutput.Dtor_KeyPairSpec().UnwrapOr(nil)), + } + }() + +} + +func GenerateDataKeyWithoutPlaintextInput_FromDafny(dafnyInput ComAmazonawsKmsTypes.GenerateDataKeyWithoutPlaintextRequest) kms.GenerateDataKeyWithoutPlaintextInput { + + return func() kms.GenerateDataKeyWithoutPlaintextInput { + + return kms.GenerateDataKeyWithoutPlaintextInput{ + KeyId: Com_amazonaws_kms_GenerateDataKeyWithoutPlaintextInput_KeyId_FromDafny(dafnyInput.Dtor_KeyId()), + EncryptionContext: Com_amazonaws_kms_GenerateDataKeyWithoutPlaintextInput_EncryptionContext_FromDafny(dafnyInput.Dtor_EncryptionContext().UnwrapOr(nil)), + KeySpec: Com_amazonaws_kms_GenerateDataKeyWithoutPlaintextInput_KeySpec_FromDafny(dafnyInput.Dtor_KeySpec().UnwrapOr(nil)), + NumberOfBytes: Com_amazonaws_kms_GenerateDataKeyWithoutPlaintextInput_NumberOfBytes_FromDafny(dafnyInput.Dtor_NumberOfBytes().UnwrapOr(nil)), + GrantTokens: Com_amazonaws_kms_GenerateDataKeyWithoutPlaintextInput_GrantTokens_FromDafny(dafnyInput.Dtor_GrantTokens().UnwrapOr(nil)), + DryRun: Com_amazonaws_kms_GenerateDataKeyWithoutPlaintextInput_DryRun_FromDafny(dafnyInput.Dtor_DryRun().UnwrapOr(nil)), + } + }() + +} + +func GenerateDataKeyWithoutPlaintextOutput_FromDafny(dafnyOutput ComAmazonawsKmsTypes.GenerateDataKeyWithoutPlaintextResponse) kms.GenerateDataKeyWithoutPlaintextOutput { + + return func() kms.GenerateDataKeyWithoutPlaintextOutput { + + return kms.GenerateDataKeyWithoutPlaintextOutput{ + CiphertextBlob: Com_amazonaws_kms_GenerateDataKeyWithoutPlaintextOutput_CiphertextBlob_FromDafny(dafnyOutput.Dtor_CiphertextBlob().UnwrapOr(nil)), + KeyId: Com_amazonaws_kms_GenerateDataKeyWithoutPlaintextOutput_KeyId_FromDafny(dafnyOutput.Dtor_KeyId().UnwrapOr(nil)), + } + }() + +} + +func GenerateMacInput_FromDafny(dafnyInput ComAmazonawsKmsTypes.GenerateMacRequest) kms.GenerateMacInput { + + return func() kms.GenerateMacInput { + + return kms.GenerateMacInput{ + Message: Com_amazonaws_kms_GenerateMacInput_Message_FromDafny(dafnyInput.Dtor_Message()), + KeyId: Com_amazonaws_kms_GenerateMacInput_KeyId_FromDafny(dafnyInput.Dtor_KeyId()), + MacAlgorithm: Com_amazonaws_kms_GenerateMacInput_MacAlgorithm_FromDafny(dafnyInput.Dtor_MacAlgorithm()), + GrantTokens: Com_amazonaws_kms_GenerateMacInput_GrantTokens_FromDafny(dafnyInput.Dtor_GrantTokens().UnwrapOr(nil)), + DryRun: Com_amazonaws_kms_GenerateMacInput_DryRun_FromDafny(dafnyInput.Dtor_DryRun().UnwrapOr(nil)), + } + }() + +} + +func GenerateMacOutput_FromDafny(dafnyOutput ComAmazonawsKmsTypes.GenerateMacResponse) kms.GenerateMacOutput { + + return func() kms.GenerateMacOutput { + + return kms.GenerateMacOutput{ + Mac: Com_amazonaws_kms_GenerateMacOutput_Mac_FromDafny(dafnyOutput.Dtor_Mac().UnwrapOr(nil)), + MacAlgorithm: Com_amazonaws_kms_GenerateMacOutput_MacAlgorithm_FromDafny(dafnyOutput.Dtor_MacAlgorithm().UnwrapOr(nil)), + KeyId: Com_amazonaws_kms_GenerateMacOutput_KeyId_FromDafny(dafnyOutput.Dtor_KeyId().UnwrapOr(nil)), + } + }() + +} + +func GenerateRandomInput_FromDafny(dafnyInput ComAmazonawsKmsTypes.GenerateRandomRequest) kms.GenerateRandomInput { + + return func() kms.GenerateRandomInput { + + return kms.GenerateRandomInput{ + NumberOfBytes: Com_amazonaws_kms_GenerateRandomInput_NumberOfBytes_FromDafny(dafnyInput.Dtor_NumberOfBytes().UnwrapOr(nil)), + CustomKeyStoreId: Com_amazonaws_kms_GenerateRandomInput_CustomKeyStoreId_FromDafny(dafnyInput.Dtor_CustomKeyStoreId().UnwrapOr(nil)), + Recipient: Com_amazonaws_kms_GenerateRandomInput_Recipient_FromDafny(dafnyInput.Dtor_Recipient().UnwrapOr(nil)), + } + }() + +} + +func GenerateRandomOutput_FromDafny(dafnyOutput ComAmazonawsKmsTypes.GenerateRandomResponse) kms.GenerateRandomOutput { + + return func() kms.GenerateRandomOutput { + + return kms.GenerateRandomOutput{ + Plaintext: Com_amazonaws_kms_GenerateRandomOutput_Plaintext_FromDafny(dafnyOutput.Dtor_Plaintext().UnwrapOr(nil)), + CiphertextForRecipient: Com_amazonaws_kms_GenerateRandomOutput_CiphertextForRecipient_FromDafny(dafnyOutput.Dtor_CiphertextForRecipient().UnwrapOr(nil)), + } + }() + +} + +func GetKeyPolicyInput_FromDafny(dafnyInput ComAmazonawsKmsTypes.GetKeyPolicyRequest) kms.GetKeyPolicyInput { + + return func() kms.GetKeyPolicyInput { + + return kms.GetKeyPolicyInput{ + KeyId: Com_amazonaws_kms_GetKeyPolicyInput_KeyId_FromDafny(dafnyInput.Dtor_KeyId()), + PolicyName: Com_amazonaws_kms_GetKeyPolicyInput_PolicyName_FromDafny(dafnyInput.Dtor_PolicyName().UnwrapOr(nil)), + } + }() + +} + +func GetKeyPolicyOutput_FromDafny(dafnyOutput ComAmazonawsKmsTypes.GetKeyPolicyResponse) kms.GetKeyPolicyOutput { + + return func() kms.GetKeyPolicyOutput { + + return kms.GetKeyPolicyOutput{ + Policy: Com_amazonaws_kms_GetKeyPolicyOutput_Policy_FromDafny(dafnyOutput.Dtor_Policy().UnwrapOr(nil)), + PolicyName: Com_amazonaws_kms_GetKeyPolicyOutput_PolicyName_FromDafny(dafnyOutput.Dtor_PolicyName().UnwrapOr(nil)), + } + }() + +} + +func GetKeyRotationStatusInput_FromDafny(dafnyInput ComAmazonawsKmsTypes.GetKeyRotationStatusRequest) kms.GetKeyRotationStatusInput { + + return func() kms.GetKeyRotationStatusInput { + + return kms.GetKeyRotationStatusInput{ + KeyId: Com_amazonaws_kms_GetKeyRotationStatusInput_KeyId_FromDafny(dafnyInput.Dtor_KeyId()), + } + }() + +} + +func GetKeyRotationStatusOutput_FromDafny(dafnyOutput ComAmazonawsKmsTypes.GetKeyRotationStatusResponse) kms.GetKeyRotationStatusOutput { + + return func() kms.GetKeyRotationStatusOutput { + + return kms.GetKeyRotationStatusOutput{ + KeyRotationEnabled: Com_amazonaws_kms_GetKeyRotationStatusOutput_KeyRotationEnabled_FromDafny(dafnyOutput.Dtor_KeyRotationEnabled().UnwrapOr(nil)), + KeyId: Com_amazonaws_kms_GetKeyRotationStatusOutput_KeyId_FromDafny(dafnyOutput.Dtor_KeyId().UnwrapOr(nil)), + RotationPeriodInDays: Com_amazonaws_kms_GetKeyRotationStatusOutput_RotationPeriodInDays_FromDafny(dafnyOutput.Dtor_RotationPeriodInDays().UnwrapOr(nil)), + NextRotationDate: Com_amazonaws_kms_GetKeyRotationStatusOutput_NextRotationDate_FromDafny(dafnyOutput.Dtor_NextRotationDate().UnwrapOr(nil)), + OnDemandRotationStartDate: Com_amazonaws_kms_GetKeyRotationStatusOutput_OnDemandRotationStartDate_FromDafny(dafnyOutput.Dtor_OnDemandRotationStartDate().UnwrapOr(nil)), + } + }() + +} + +func GetParametersForImportInput_FromDafny(dafnyInput ComAmazonawsKmsTypes.GetParametersForImportRequest) kms.GetParametersForImportInput { + + return func() kms.GetParametersForImportInput { + + return kms.GetParametersForImportInput{ + KeyId: Com_amazonaws_kms_GetParametersForImportInput_KeyId_FromDafny(dafnyInput.Dtor_KeyId()), + WrappingAlgorithm: Com_amazonaws_kms_GetParametersForImportInput_WrappingAlgorithm_FromDafny(dafnyInput.Dtor_WrappingAlgorithm()), + WrappingKeySpec: Com_amazonaws_kms_GetParametersForImportInput_WrappingKeySpec_FromDafny(dafnyInput.Dtor_WrappingKeySpec()), + } + }() + +} + +func GetParametersForImportOutput_FromDafny(dafnyOutput ComAmazonawsKmsTypes.GetParametersForImportResponse) kms.GetParametersForImportOutput { + + return func() kms.GetParametersForImportOutput { + + return kms.GetParametersForImportOutput{ + KeyId: Com_amazonaws_kms_GetParametersForImportOutput_KeyId_FromDafny(dafnyOutput.Dtor_KeyId().UnwrapOr(nil)), + ImportToken: Com_amazonaws_kms_GetParametersForImportOutput_ImportToken_FromDafny(dafnyOutput.Dtor_ImportToken().UnwrapOr(nil)), + PublicKey: Com_amazonaws_kms_GetParametersForImportOutput_PublicKey_FromDafny(dafnyOutput.Dtor_PublicKey().UnwrapOr(nil)), + ParametersValidTo: Com_amazonaws_kms_GetParametersForImportOutput_ParametersValidTo_FromDafny(dafnyOutput.Dtor_ParametersValidTo().UnwrapOr(nil)), + } + }() + +} + +func GetPublicKeyInput_FromDafny(dafnyInput ComAmazonawsKmsTypes.GetPublicKeyRequest) kms.GetPublicKeyInput { + + return func() kms.GetPublicKeyInput { + + return kms.GetPublicKeyInput{ + KeyId: Com_amazonaws_kms_GetPublicKeyInput_KeyId_FromDafny(dafnyInput.Dtor_KeyId()), + GrantTokens: Com_amazonaws_kms_GetPublicKeyInput_GrantTokens_FromDafny(dafnyInput.Dtor_GrantTokens().UnwrapOr(nil)), + } + }() + +} + +func GetPublicKeyOutput_FromDafny(dafnyOutput ComAmazonawsKmsTypes.GetPublicKeyResponse) kms.GetPublicKeyOutput { + + return func() kms.GetPublicKeyOutput { + + return kms.GetPublicKeyOutput{ + KeyId: Com_amazonaws_kms_GetPublicKeyOutput_KeyId_FromDafny(dafnyOutput.Dtor_KeyId().UnwrapOr(nil)), + PublicKey: Com_amazonaws_kms_GetPublicKeyOutput_PublicKey_FromDafny(dafnyOutput.Dtor_PublicKey().UnwrapOr(nil)), + CustomerMasterKeySpec: Com_amazonaws_kms_GetPublicKeyOutput_CustomerMasterKeySpec_FromDafny(dafnyOutput.Dtor_CustomerMasterKeySpec().UnwrapOr(nil)), + KeySpec: Com_amazonaws_kms_GetPublicKeyOutput_KeySpec_FromDafny(dafnyOutput.Dtor_KeySpec().UnwrapOr(nil)), + KeyUsage: Com_amazonaws_kms_GetPublicKeyOutput_KeyUsage_FromDafny(dafnyOutput.Dtor_KeyUsage().UnwrapOr(nil)), + EncryptionAlgorithms: Com_amazonaws_kms_GetPublicKeyOutput_EncryptionAlgorithms_FromDafny(dafnyOutput.Dtor_EncryptionAlgorithms().UnwrapOr(nil)), + SigningAlgorithms: Com_amazonaws_kms_GetPublicKeyOutput_SigningAlgorithms_FromDafny(dafnyOutput.Dtor_SigningAlgorithms().UnwrapOr(nil)), + KeyAgreementAlgorithms: Com_amazonaws_kms_GetPublicKeyOutput_KeyAgreementAlgorithms_FromDafny(dafnyOutput.Dtor_KeyAgreementAlgorithms().UnwrapOr(nil)), + } + }() + +} + +func ImportKeyMaterialInput_FromDafny(dafnyInput ComAmazonawsKmsTypes.ImportKeyMaterialRequest) kms.ImportKeyMaterialInput { + + return func() kms.ImportKeyMaterialInput { + + return kms.ImportKeyMaterialInput{ + KeyId: Com_amazonaws_kms_ImportKeyMaterialInput_KeyId_FromDafny(dafnyInput.Dtor_KeyId()), + ImportToken: Com_amazonaws_kms_ImportKeyMaterialInput_ImportToken_FromDafny(dafnyInput.Dtor_ImportToken()), + EncryptedKeyMaterial: Com_amazonaws_kms_ImportKeyMaterialInput_EncryptedKeyMaterial_FromDafny(dafnyInput.Dtor_EncryptedKeyMaterial()), + ValidTo: Com_amazonaws_kms_ImportKeyMaterialInput_ValidTo_FromDafny(dafnyInput.Dtor_ValidTo().UnwrapOr(nil)), + ExpirationModel: Com_amazonaws_kms_ImportKeyMaterialInput_ExpirationModel_FromDafny(dafnyInput.Dtor_ExpirationModel().UnwrapOr(nil)), + } + }() + +} + +func ImportKeyMaterialOutput_FromDafny(dafnyOutput ComAmazonawsKmsTypes.ImportKeyMaterialResponse) kms.ImportKeyMaterialOutput { + + return func() kms.ImportKeyMaterialOutput { + + return kms.ImportKeyMaterialOutput{} + }() + +} + +func ListAliasesInput_FromDafny(dafnyInput ComAmazonawsKmsTypes.ListAliasesRequest) kms.ListAliasesInput { + + return func() kms.ListAliasesInput { + + return kms.ListAliasesInput{ + KeyId: Com_amazonaws_kms_ListAliasesInput_KeyId_FromDafny(dafnyInput.Dtor_KeyId().UnwrapOr(nil)), + Limit: Com_amazonaws_kms_ListAliasesInput_Limit_FromDafny(dafnyInput.Dtor_Limit().UnwrapOr(nil)), + Marker: Com_amazonaws_kms_ListAliasesInput_Marker_FromDafny(dafnyInput.Dtor_Marker().UnwrapOr(nil)), + } + }() + +} + +func ListAliasesOutput_FromDafny(dafnyOutput ComAmazonawsKmsTypes.ListAliasesResponse) kms.ListAliasesOutput { + + return func() kms.ListAliasesOutput { + + return kms.ListAliasesOutput{ + Aliases: Com_amazonaws_kms_ListAliasesOutput_Aliases_FromDafny(dafnyOutput.Dtor_Aliases().UnwrapOr(nil)), + NextMarker: Com_amazonaws_kms_ListAliasesOutput_NextMarker_FromDafny(dafnyOutput.Dtor_NextMarker().UnwrapOr(nil)), + Truncated: Com_amazonaws_kms_ListAliasesOutput_Truncated_FromDafny(dafnyOutput.Dtor_Truncated().UnwrapOr(nil)), + } + }() + +} + +func ListGrantsInput_FromDafny(dafnyInput ComAmazonawsKmsTypes.ListGrantsRequest) kms.ListGrantsInput { + + return func() kms.ListGrantsInput { + + return kms.ListGrantsInput{ + Limit: Com_amazonaws_kms_ListGrantsInput_Limit_FromDafny(dafnyInput.Dtor_Limit().UnwrapOr(nil)), + Marker: Com_amazonaws_kms_ListGrantsInput_Marker_FromDafny(dafnyInput.Dtor_Marker().UnwrapOr(nil)), + KeyId: Com_amazonaws_kms_ListGrantsInput_KeyId_FromDafny(dafnyInput.Dtor_KeyId()), + GrantId: Com_amazonaws_kms_ListGrantsInput_GrantId_FromDafny(dafnyInput.Dtor_GrantId().UnwrapOr(nil)), + GranteePrincipal: Com_amazonaws_kms_ListGrantsInput_GranteePrincipal_FromDafny(dafnyInput.Dtor_GranteePrincipal().UnwrapOr(nil)), + } + }() + +} + +func ListGrantsOutput_FromDafny(dafnyOutput ComAmazonawsKmsTypes.ListGrantsResponse) kms.ListGrantsOutput { + + return func() kms.ListGrantsOutput { + + return kms.ListGrantsOutput{ + Grants: Com_amazonaws_kms_ListGrantsOutput_Grants_FromDafny(dafnyOutput.Dtor_Grants().UnwrapOr(nil)), + NextMarker: Com_amazonaws_kms_ListGrantsOutput_NextMarker_FromDafny(dafnyOutput.Dtor_NextMarker().UnwrapOr(nil)), + Truncated: Com_amazonaws_kms_ListGrantsOutput_Truncated_FromDafny(dafnyOutput.Dtor_Truncated().UnwrapOr(nil)), + } + }() + +} + +func ListKeyPoliciesInput_FromDafny(dafnyInput ComAmazonawsKmsTypes.ListKeyPoliciesRequest) kms.ListKeyPoliciesInput { + + return func() kms.ListKeyPoliciesInput { + + return kms.ListKeyPoliciesInput{ + KeyId: Com_amazonaws_kms_ListKeyPoliciesInput_KeyId_FromDafny(dafnyInput.Dtor_KeyId()), + Limit: Com_amazonaws_kms_ListKeyPoliciesInput_Limit_FromDafny(dafnyInput.Dtor_Limit().UnwrapOr(nil)), + Marker: Com_amazonaws_kms_ListKeyPoliciesInput_Marker_FromDafny(dafnyInput.Dtor_Marker().UnwrapOr(nil)), + } + }() + +} + +func ListKeyPoliciesOutput_FromDafny(dafnyOutput ComAmazonawsKmsTypes.ListKeyPoliciesResponse) kms.ListKeyPoliciesOutput { + + return func() kms.ListKeyPoliciesOutput { + + return kms.ListKeyPoliciesOutput{ + PolicyNames: Com_amazonaws_kms_ListKeyPoliciesOutput_PolicyNames_FromDafny(dafnyOutput.Dtor_PolicyNames().UnwrapOr(nil)), + NextMarker: Com_amazonaws_kms_ListKeyPoliciesOutput_NextMarker_FromDafny(dafnyOutput.Dtor_NextMarker().UnwrapOr(nil)), + Truncated: Com_amazonaws_kms_ListKeyPoliciesOutput_Truncated_FromDafny(dafnyOutput.Dtor_Truncated().UnwrapOr(nil)), + } + }() + +} + +func ListKeyRotationsInput_FromDafny(dafnyInput ComAmazonawsKmsTypes.ListKeyRotationsRequest) kms.ListKeyRotationsInput { + + return func() kms.ListKeyRotationsInput { + + return kms.ListKeyRotationsInput{ + KeyId: Com_amazonaws_kms_ListKeyRotationsInput_KeyId_FromDafny(dafnyInput.Dtor_KeyId()), + Limit: Com_amazonaws_kms_ListKeyRotationsInput_Limit_FromDafny(dafnyInput.Dtor_Limit().UnwrapOr(nil)), + Marker: Com_amazonaws_kms_ListKeyRotationsInput_Marker_FromDafny(dafnyInput.Dtor_Marker().UnwrapOr(nil)), + } + }() + +} + +func ListKeyRotationsOutput_FromDafny(dafnyOutput ComAmazonawsKmsTypes.ListKeyRotationsResponse) kms.ListKeyRotationsOutput { + + return func() kms.ListKeyRotationsOutput { + + return kms.ListKeyRotationsOutput{ + Rotations: Com_amazonaws_kms_ListKeyRotationsOutput_Rotations_FromDafny(dafnyOutput.Dtor_Rotations().UnwrapOr(nil)), + NextMarker: Com_amazonaws_kms_ListKeyRotationsOutput_NextMarker_FromDafny(dafnyOutput.Dtor_NextMarker().UnwrapOr(nil)), + Truncated: Com_amazonaws_kms_ListKeyRotationsOutput_Truncated_FromDafny(dafnyOutput.Dtor_Truncated().UnwrapOr(nil)), + } + }() + +} + +func ListKeysInput_FromDafny(dafnyInput ComAmazonawsKmsTypes.ListKeysRequest) kms.ListKeysInput { + + return func() kms.ListKeysInput { + + return kms.ListKeysInput{ + Limit: Com_amazonaws_kms_ListKeysInput_Limit_FromDafny(dafnyInput.Dtor_Limit().UnwrapOr(nil)), + Marker: Com_amazonaws_kms_ListKeysInput_Marker_FromDafny(dafnyInput.Dtor_Marker().UnwrapOr(nil)), + } + }() + +} + +func ListKeysOutput_FromDafny(dafnyOutput ComAmazonawsKmsTypes.ListKeysResponse) kms.ListKeysOutput { + + return func() kms.ListKeysOutput { + + return kms.ListKeysOutput{ + Keys: Com_amazonaws_kms_ListKeysOutput_Keys_FromDafny(dafnyOutput.Dtor_Keys().UnwrapOr(nil)), + NextMarker: Com_amazonaws_kms_ListKeysOutput_NextMarker_FromDafny(dafnyOutput.Dtor_NextMarker().UnwrapOr(nil)), + Truncated: Com_amazonaws_kms_ListKeysOutput_Truncated_FromDafny(dafnyOutput.Dtor_Truncated().UnwrapOr(nil)), + } + }() + +} + +func ListResourceTagsInput_FromDafny(dafnyInput ComAmazonawsKmsTypes.ListResourceTagsRequest) kms.ListResourceTagsInput { + + return func() kms.ListResourceTagsInput { + + return kms.ListResourceTagsInput{ + KeyId: Com_amazonaws_kms_ListResourceTagsInput_KeyId_FromDafny(dafnyInput.Dtor_KeyId()), + Limit: Com_amazonaws_kms_ListResourceTagsInput_Limit_FromDafny(dafnyInput.Dtor_Limit().UnwrapOr(nil)), + Marker: Com_amazonaws_kms_ListResourceTagsInput_Marker_FromDafny(dafnyInput.Dtor_Marker().UnwrapOr(nil)), + } + }() + +} + +func ListResourceTagsOutput_FromDafny(dafnyOutput ComAmazonawsKmsTypes.ListResourceTagsResponse) kms.ListResourceTagsOutput { + + return func() kms.ListResourceTagsOutput { + + return kms.ListResourceTagsOutput{ + Tags: Com_amazonaws_kms_ListResourceTagsOutput_Tags_FromDafny(dafnyOutput.Dtor_Tags().UnwrapOr(nil)), + NextMarker: Com_amazonaws_kms_ListResourceTagsOutput_NextMarker_FromDafny(dafnyOutput.Dtor_NextMarker().UnwrapOr(nil)), + Truncated: Com_amazonaws_kms_ListResourceTagsOutput_Truncated_FromDafny(dafnyOutput.Dtor_Truncated().UnwrapOr(nil)), + } + }() + +} + +func PutKeyPolicyInput_FromDafny(dafnyInput ComAmazonawsKmsTypes.PutKeyPolicyRequest) kms.PutKeyPolicyInput { + + return func() kms.PutKeyPolicyInput { + + return kms.PutKeyPolicyInput{ + KeyId: Com_amazonaws_kms_PutKeyPolicyInput_KeyId_FromDafny(dafnyInput.Dtor_KeyId()), + PolicyName: Com_amazonaws_kms_PutKeyPolicyInput_PolicyName_FromDafny(dafnyInput.Dtor_PolicyName().UnwrapOr(nil)), + Policy: Com_amazonaws_kms_PutKeyPolicyInput_Policy_FromDafny(dafnyInput.Dtor_Policy()), + BypassPolicyLockoutSafetyCheck: Com_amazonaws_kms_PutKeyPolicyInput_BypassPolicyLockoutSafetyCheck_FromDafny(dafnyInput.Dtor_BypassPolicyLockoutSafetyCheck().UnwrapOr(nil)), + } + }() + +} + +func ReEncryptInput_FromDafny(dafnyInput ComAmazonawsKmsTypes.ReEncryptRequest) kms.ReEncryptInput { + + return func() kms.ReEncryptInput { + + return kms.ReEncryptInput{ + CiphertextBlob: Com_amazonaws_kms_ReEncryptInput_CiphertextBlob_FromDafny(dafnyInput.Dtor_CiphertextBlob()), + SourceEncryptionContext: Com_amazonaws_kms_ReEncryptInput_SourceEncryptionContext_FromDafny(dafnyInput.Dtor_SourceEncryptionContext().UnwrapOr(nil)), + SourceKeyId: Com_amazonaws_kms_ReEncryptInput_SourceKeyId_FromDafny(dafnyInput.Dtor_SourceKeyId().UnwrapOr(nil)), + DestinationKeyId: Com_amazonaws_kms_ReEncryptInput_DestinationKeyId_FromDafny(dafnyInput.Dtor_DestinationKeyId()), + DestinationEncryptionContext: Com_amazonaws_kms_ReEncryptInput_DestinationEncryptionContext_FromDafny(dafnyInput.Dtor_DestinationEncryptionContext().UnwrapOr(nil)), + SourceEncryptionAlgorithm: Com_amazonaws_kms_ReEncryptInput_SourceEncryptionAlgorithm_FromDafny(dafnyInput.Dtor_SourceEncryptionAlgorithm().UnwrapOr(nil)), + DestinationEncryptionAlgorithm: Com_amazonaws_kms_ReEncryptInput_DestinationEncryptionAlgorithm_FromDafny(dafnyInput.Dtor_DestinationEncryptionAlgorithm().UnwrapOr(nil)), + GrantTokens: Com_amazonaws_kms_ReEncryptInput_GrantTokens_FromDafny(dafnyInput.Dtor_GrantTokens().UnwrapOr(nil)), + DryRun: Com_amazonaws_kms_ReEncryptInput_DryRun_FromDafny(dafnyInput.Dtor_DryRun().UnwrapOr(nil)), + } + }() + +} + +func ReEncryptOutput_FromDafny(dafnyOutput ComAmazonawsKmsTypes.ReEncryptResponse) kms.ReEncryptOutput { + + return func() kms.ReEncryptOutput { + + return kms.ReEncryptOutput{ + CiphertextBlob: Com_amazonaws_kms_ReEncryptOutput_CiphertextBlob_FromDafny(dafnyOutput.Dtor_CiphertextBlob().UnwrapOr(nil)), + SourceKeyId: Com_amazonaws_kms_ReEncryptOutput_SourceKeyId_FromDafny(dafnyOutput.Dtor_SourceKeyId().UnwrapOr(nil)), + KeyId: Com_amazonaws_kms_ReEncryptOutput_KeyId_FromDafny(dafnyOutput.Dtor_KeyId().UnwrapOr(nil)), + SourceEncryptionAlgorithm: Com_amazonaws_kms_ReEncryptOutput_SourceEncryptionAlgorithm_FromDafny(dafnyOutput.Dtor_SourceEncryptionAlgorithm().UnwrapOr(nil)), + DestinationEncryptionAlgorithm: Com_amazonaws_kms_ReEncryptOutput_DestinationEncryptionAlgorithm_FromDafny(dafnyOutput.Dtor_DestinationEncryptionAlgorithm().UnwrapOr(nil)), + } + }() + +} + +func ReplicateKeyInput_FromDafny(dafnyInput ComAmazonawsKmsTypes.ReplicateKeyRequest) kms.ReplicateKeyInput { + + return func() kms.ReplicateKeyInput { + + return kms.ReplicateKeyInput{ + KeyId: Com_amazonaws_kms_ReplicateKeyInput_KeyId_FromDafny(dafnyInput.Dtor_KeyId()), + ReplicaRegion: Com_amazonaws_kms_ReplicateKeyInput_ReplicaRegion_FromDafny(dafnyInput.Dtor_ReplicaRegion()), + Policy: Com_amazonaws_kms_ReplicateKeyInput_Policy_FromDafny(dafnyInput.Dtor_Policy().UnwrapOr(nil)), + BypassPolicyLockoutSafetyCheck: Com_amazonaws_kms_ReplicateKeyInput_BypassPolicyLockoutSafetyCheck_FromDafny(dafnyInput.Dtor_BypassPolicyLockoutSafetyCheck().UnwrapOr(nil)), + Description: Com_amazonaws_kms_ReplicateKeyInput_Description_FromDafny(dafnyInput.Dtor_Description().UnwrapOr(nil)), + Tags: Com_amazonaws_kms_ReplicateKeyInput_Tags_FromDafny(dafnyInput.Dtor_Tags().UnwrapOr(nil)), + } + }() + +} + +func ReplicateKeyOutput_FromDafny(dafnyOutput ComAmazonawsKmsTypes.ReplicateKeyResponse) kms.ReplicateKeyOutput { + + return func() kms.ReplicateKeyOutput { + + return kms.ReplicateKeyOutput{ + ReplicaKeyMetadata: Com_amazonaws_kms_ReplicateKeyOutput_ReplicaKeyMetadata_FromDafny(dafnyOutput.Dtor_ReplicaKeyMetadata().UnwrapOr(nil)), + ReplicaPolicy: Com_amazonaws_kms_ReplicateKeyOutput_ReplicaPolicy_FromDafny(dafnyOutput.Dtor_ReplicaPolicy().UnwrapOr(nil)), + ReplicaTags: Com_amazonaws_kms_ReplicateKeyOutput_ReplicaTags_FromDafny(dafnyOutput.Dtor_ReplicaTags().UnwrapOr(nil)), + } + }() + +} + +func RetireGrantInput_FromDafny(dafnyInput ComAmazonawsKmsTypes.RetireGrantRequest) kms.RetireGrantInput { + + return func() kms.RetireGrantInput { + + return kms.RetireGrantInput{ + GrantToken: Com_amazonaws_kms_RetireGrantInput_GrantToken_FromDafny(dafnyInput.Dtor_GrantToken().UnwrapOr(nil)), + KeyId: Com_amazonaws_kms_RetireGrantInput_KeyId_FromDafny(dafnyInput.Dtor_KeyId().UnwrapOr(nil)), + GrantId: Com_amazonaws_kms_RetireGrantInput_GrantId_FromDafny(dafnyInput.Dtor_GrantId().UnwrapOr(nil)), + DryRun: Com_amazonaws_kms_RetireGrantInput_DryRun_FromDafny(dafnyInput.Dtor_DryRun().UnwrapOr(nil)), + } + }() + +} + +func RevokeGrantInput_FromDafny(dafnyInput ComAmazonawsKmsTypes.RevokeGrantRequest) kms.RevokeGrantInput { + + return func() kms.RevokeGrantInput { + + return kms.RevokeGrantInput{ + KeyId: Com_amazonaws_kms_RevokeGrantInput_KeyId_FromDafny(dafnyInput.Dtor_KeyId()), + GrantId: Com_amazonaws_kms_RevokeGrantInput_GrantId_FromDafny(dafnyInput.Dtor_GrantId()), + DryRun: Com_amazonaws_kms_RevokeGrantInput_DryRun_FromDafny(dafnyInput.Dtor_DryRun().UnwrapOr(nil)), + } + }() + +} + +func RotateKeyOnDemandInput_FromDafny(dafnyInput ComAmazonawsKmsTypes.RotateKeyOnDemandRequest) kms.RotateKeyOnDemandInput { + + return func() kms.RotateKeyOnDemandInput { + + return kms.RotateKeyOnDemandInput{ + KeyId: Com_amazonaws_kms_RotateKeyOnDemandInput_KeyId_FromDafny(dafnyInput.Dtor_KeyId()), + } + }() + +} + +func RotateKeyOnDemandOutput_FromDafny(dafnyOutput ComAmazonawsKmsTypes.RotateKeyOnDemandResponse) kms.RotateKeyOnDemandOutput { + + return func() kms.RotateKeyOnDemandOutput { + + return kms.RotateKeyOnDemandOutput{ + KeyId: Com_amazonaws_kms_RotateKeyOnDemandOutput_KeyId_FromDafny(dafnyOutput.Dtor_KeyId().UnwrapOr(nil)), + } + }() + +} + +func ScheduleKeyDeletionInput_FromDafny(dafnyInput ComAmazonawsKmsTypes.ScheduleKeyDeletionRequest) kms.ScheduleKeyDeletionInput { + + return func() kms.ScheduleKeyDeletionInput { + + return kms.ScheduleKeyDeletionInput{ + KeyId: Com_amazonaws_kms_ScheduleKeyDeletionInput_KeyId_FromDafny(dafnyInput.Dtor_KeyId()), + PendingWindowInDays: Com_amazonaws_kms_ScheduleKeyDeletionInput_PendingWindowInDays_FromDafny(dafnyInput.Dtor_PendingWindowInDays().UnwrapOr(nil)), + } + }() + +} + +func ScheduleKeyDeletionOutput_FromDafny(dafnyOutput ComAmazonawsKmsTypes.ScheduleKeyDeletionResponse) kms.ScheduleKeyDeletionOutput { + + return func() kms.ScheduleKeyDeletionOutput { + + return kms.ScheduleKeyDeletionOutput{ + KeyId: Com_amazonaws_kms_ScheduleKeyDeletionOutput_KeyId_FromDafny(dafnyOutput.Dtor_KeyId().UnwrapOr(nil)), + DeletionDate: Com_amazonaws_kms_ScheduleKeyDeletionOutput_DeletionDate_FromDafny(dafnyOutput.Dtor_DeletionDate().UnwrapOr(nil)), + KeyState: Com_amazonaws_kms_ScheduleKeyDeletionOutput_KeyState_FromDafny(dafnyOutput.Dtor_KeyState().UnwrapOr(nil)), + PendingWindowInDays: Com_amazonaws_kms_ScheduleKeyDeletionOutput_PendingWindowInDays_FromDafny(dafnyOutput.Dtor_PendingWindowInDays().UnwrapOr(nil)), + } + }() + +} + +func SignInput_FromDafny(dafnyInput ComAmazonawsKmsTypes.SignRequest) kms.SignInput { + + return func() kms.SignInput { + + return kms.SignInput{ + KeyId: Com_amazonaws_kms_SignInput_KeyId_FromDafny(dafnyInput.Dtor_KeyId()), + Message: Com_amazonaws_kms_SignInput_Message_FromDafny(dafnyInput.Dtor_Message()), + MessageType: Com_amazonaws_kms_SignInput_MessageType_FromDafny(dafnyInput.Dtor_MessageType().UnwrapOr(nil)), + GrantTokens: Com_amazonaws_kms_SignInput_GrantTokens_FromDafny(dafnyInput.Dtor_GrantTokens().UnwrapOr(nil)), + SigningAlgorithm: Com_amazonaws_kms_SignInput_SigningAlgorithm_FromDafny(dafnyInput.Dtor_SigningAlgorithm()), + DryRun: Com_amazonaws_kms_SignInput_DryRun_FromDafny(dafnyInput.Dtor_DryRun().UnwrapOr(nil)), + } + }() + +} + +func SignOutput_FromDafny(dafnyOutput ComAmazonawsKmsTypes.SignResponse) kms.SignOutput { + + return func() kms.SignOutput { + + return kms.SignOutput{ + KeyId: Com_amazonaws_kms_SignOutput_KeyId_FromDafny(dafnyOutput.Dtor_KeyId().UnwrapOr(nil)), + Signature: Com_amazonaws_kms_SignOutput_Signature_FromDafny(dafnyOutput.Dtor_Signature().UnwrapOr(nil)), + SigningAlgorithm: Com_amazonaws_kms_SignOutput_SigningAlgorithm_FromDafny(dafnyOutput.Dtor_SigningAlgorithm().UnwrapOr(nil)), + } + }() + +} + +func TagResourceInput_FromDafny(dafnyInput ComAmazonawsKmsTypes.TagResourceRequest) kms.TagResourceInput { + + return func() kms.TagResourceInput { + + return kms.TagResourceInput{ + KeyId: Com_amazonaws_kms_TagResourceInput_KeyId_FromDafny(dafnyInput.Dtor_KeyId()), + Tags: Com_amazonaws_kms_TagResourceInput_Tags_FromDafny(dafnyInput.Dtor_Tags()), + } + }() + +} + +func UntagResourceInput_FromDafny(dafnyInput ComAmazonawsKmsTypes.UntagResourceRequest) kms.UntagResourceInput { + + return func() kms.UntagResourceInput { + + return kms.UntagResourceInput{ + KeyId: Com_amazonaws_kms_UntagResourceInput_KeyId_FromDafny(dafnyInput.Dtor_KeyId()), + TagKeys: Com_amazonaws_kms_UntagResourceInput_TagKeys_FromDafny(dafnyInput.Dtor_TagKeys()), + } + }() + +} + +func UpdateAliasInput_FromDafny(dafnyInput ComAmazonawsKmsTypes.UpdateAliasRequest) kms.UpdateAliasInput { + + return func() kms.UpdateAliasInput { + + return kms.UpdateAliasInput{ + AliasName: Com_amazonaws_kms_UpdateAliasInput_AliasName_FromDafny(dafnyInput.Dtor_AliasName()), + TargetKeyId: Com_amazonaws_kms_UpdateAliasInput_TargetKeyId_FromDafny(dafnyInput.Dtor_TargetKeyId()), + } + }() + +} + +func UpdateCustomKeyStoreInput_FromDafny(dafnyInput ComAmazonawsKmsTypes.UpdateCustomKeyStoreRequest) kms.UpdateCustomKeyStoreInput { + + return func() kms.UpdateCustomKeyStoreInput { + + return kms.UpdateCustomKeyStoreInput{ + CustomKeyStoreId: Com_amazonaws_kms_UpdateCustomKeyStoreInput_CustomKeyStoreId_FromDafny(dafnyInput.Dtor_CustomKeyStoreId()), + NewCustomKeyStoreName: Com_amazonaws_kms_UpdateCustomKeyStoreInput_NewCustomKeyStoreName_FromDafny(dafnyInput.Dtor_NewCustomKeyStoreName().UnwrapOr(nil)), + KeyStorePassword: Com_amazonaws_kms_UpdateCustomKeyStoreInput_KeyStorePassword_FromDafny(dafnyInput.Dtor_KeyStorePassword().UnwrapOr(nil)), + CloudHsmClusterId: Com_amazonaws_kms_UpdateCustomKeyStoreInput_CloudHsmClusterId_FromDafny(dafnyInput.Dtor_CloudHsmClusterId().UnwrapOr(nil)), + XksProxyUriEndpoint: Com_amazonaws_kms_UpdateCustomKeyStoreInput_XksProxyUriEndpoint_FromDafny(dafnyInput.Dtor_XksProxyUriEndpoint().UnwrapOr(nil)), + XksProxyUriPath: Com_amazonaws_kms_UpdateCustomKeyStoreInput_XksProxyUriPath_FromDafny(dafnyInput.Dtor_XksProxyUriPath().UnwrapOr(nil)), + XksProxyVpcEndpointServiceName: Com_amazonaws_kms_UpdateCustomKeyStoreInput_XksProxyVpcEndpointServiceName_FromDafny(dafnyInput.Dtor_XksProxyVpcEndpointServiceName().UnwrapOr(nil)), + XksProxyAuthenticationCredential: Com_amazonaws_kms_UpdateCustomKeyStoreInput_XksProxyAuthenticationCredential_FromDafny(dafnyInput.Dtor_XksProxyAuthenticationCredential().UnwrapOr(nil)), + XksProxyConnectivity: Com_amazonaws_kms_UpdateCustomKeyStoreInput_XksProxyConnectivity_FromDafny(dafnyInput.Dtor_XksProxyConnectivity().UnwrapOr(nil)), + } + }() + +} + +func UpdateCustomKeyStoreOutput_FromDafny(dafnyOutput ComAmazonawsKmsTypes.UpdateCustomKeyStoreResponse) kms.UpdateCustomKeyStoreOutput { + + return func() kms.UpdateCustomKeyStoreOutput { + + return kms.UpdateCustomKeyStoreOutput{} + }() + +} + +func UpdateKeyDescriptionInput_FromDafny(dafnyInput ComAmazonawsKmsTypes.UpdateKeyDescriptionRequest) kms.UpdateKeyDescriptionInput { + + return func() kms.UpdateKeyDescriptionInput { + + return kms.UpdateKeyDescriptionInput{ + KeyId: Com_amazonaws_kms_UpdateKeyDescriptionInput_KeyId_FromDafny(dafnyInput.Dtor_KeyId()), + Description: Com_amazonaws_kms_UpdateKeyDescriptionInput_Description_FromDafny(dafnyInput.Dtor_Description()), + } + }() + +} + +func UpdatePrimaryRegionInput_FromDafny(dafnyInput ComAmazonawsKmsTypes.UpdatePrimaryRegionRequest) kms.UpdatePrimaryRegionInput { + + return func() kms.UpdatePrimaryRegionInput { + + return kms.UpdatePrimaryRegionInput{ + KeyId: Com_amazonaws_kms_UpdatePrimaryRegionInput_KeyId_FromDafny(dafnyInput.Dtor_KeyId()), + PrimaryRegion: Com_amazonaws_kms_UpdatePrimaryRegionInput_PrimaryRegion_FromDafny(dafnyInput.Dtor_PrimaryRegion()), + } + }() + +} + +func VerifyInput_FromDafny(dafnyInput ComAmazonawsKmsTypes.VerifyRequest) kms.VerifyInput { + + return func() kms.VerifyInput { + + return kms.VerifyInput{ + KeyId: Com_amazonaws_kms_VerifyInput_KeyId_FromDafny(dafnyInput.Dtor_KeyId()), + Message: Com_amazonaws_kms_VerifyInput_Message_FromDafny(dafnyInput.Dtor_Message()), + MessageType: Com_amazonaws_kms_VerifyInput_MessageType_FromDafny(dafnyInput.Dtor_MessageType().UnwrapOr(nil)), + Signature: Com_amazonaws_kms_VerifyInput_Signature_FromDafny(dafnyInput.Dtor_Signature()), + SigningAlgorithm: Com_amazonaws_kms_VerifyInput_SigningAlgorithm_FromDafny(dafnyInput.Dtor_SigningAlgorithm()), + GrantTokens: Com_amazonaws_kms_VerifyInput_GrantTokens_FromDafny(dafnyInput.Dtor_GrantTokens().UnwrapOr(nil)), + DryRun: Com_amazonaws_kms_VerifyInput_DryRun_FromDafny(dafnyInput.Dtor_DryRun().UnwrapOr(nil)), + } + }() + +} + +func VerifyOutput_FromDafny(dafnyOutput ComAmazonawsKmsTypes.VerifyResponse) kms.VerifyOutput { + + return func() kms.VerifyOutput { + + return kms.VerifyOutput{ + KeyId: Com_amazonaws_kms_VerifyOutput_KeyId_FromDafny(dafnyOutput.Dtor_KeyId().UnwrapOr(nil)), + SignatureValid: Com_amazonaws_kms_VerifyOutput_SignatureValid_FromDafny(dafnyOutput.Dtor_SignatureValid().UnwrapOr(nil)), + SigningAlgorithm: Com_amazonaws_kms_VerifyOutput_SigningAlgorithm_FromDafny(dafnyOutput.Dtor_SigningAlgorithm().UnwrapOr(nil)), + } + }() + +} + +func VerifyMacInput_FromDafny(dafnyInput ComAmazonawsKmsTypes.VerifyMacRequest) kms.VerifyMacInput { + + return func() kms.VerifyMacInput { + + return kms.VerifyMacInput{ + Message: Com_amazonaws_kms_VerifyMacInput_Message_FromDafny(dafnyInput.Dtor_Message()), + KeyId: Com_amazonaws_kms_VerifyMacInput_KeyId_FromDafny(dafnyInput.Dtor_KeyId()), + MacAlgorithm: Com_amazonaws_kms_VerifyMacInput_MacAlgorithm_FromDafny(dafnyInput.Dtor_MacAlgorithm()), + Mac: Com_amazonaws_kms_VerifyMacInput_Mac_FromDafny(dafnyInput.Dtor_Mac()), + GrantTokens: Com_amazonaws_kms_VerifyMacInput_GrantTokens_FromDafny(dafnyInput.Dtor_GrantTokens().UnwrapOr(nil)), + DryRun: Com_amazonaws_kms_VerifyMacInput_DryRun_FromDafny(dafnyInput.Dtor_DryRun().UnwrapOr(nil)), + } + }() + +} + +func VerifyMacOutput_FromDafny(dafnyOutput ComAmazonawsKmsTypes.VerifyMacResponse) kms.VerifyMacOutput { + + return func() kms.VerifyMacOutput { + + return kms.VerifyMacOutput{ + KeyId: Com_amazonaws_kms_VerifyMacOutput_KeyId_FromDafny(dafnyOutput.Dtor_KeyId().UnwrapOr(nil)), + MacValid: Com_amazonaws_kms_VerifyMacOutput_MacValid_FromDafny(dafnyOutput.Dtor_MacValid().UnwrapOr(nil)), + MacAlgorithm: Com_amazonaws_kms_VerifyMacOutput_MacAlgorithm_FromDafny(dafnyOutput.Dtor_MacAlgorithm().UnwrapOr(nil)), + } + }() + +} + +func AlreadyExistsException_FromDafny(dafnyOutput ComAmazonawsKmsTypes.Error) types.AlreadyExistsException { + return func() types.AlreadyExistsException { + + return types.AlreadyExistsException{ + Message: Com_amazonaws_kms_AlreadyExistsException_message_FromDafny(dafnyOutput.Dtor_message().UnwrapOr(nil)), + } + }() + +} + +func CloudHsmClusterInUseException_FromDafny(dafnyOutput ComAmazonawsKmsTypes.Error) types.CloudHsmClusterInUseException { + return func() types.CloudHsmClusterInUseException { + + return types.CloudHsmClusterInUseException{ + Message: Com_amazonaws_kms_CloudHsmClusterInUseException_message_FromDafny(dafnyOutput.Dtor_message().UnwrapOr(nil)), + } + }() + +} + +func CloudHsmClusterInvalidConfigurationException_FromDafny(dafnyOutput ComAmazonawsKmsTypes.Error) types.CloudHsmClusterInvalidConfigurationException { + return func() types.CloudHsmClusterInvalidConfigurationException { + + return types.CloudHsmClusterInvalidConfigurationException{ + Message: Com_amazonaws_kms_CloudHsmClusterInvalidConfigurationException_message_FromDafny(dafnyOutput.Dtor_message().UnwrapOr(nil)), + } + }() + +} + +func CloudHsmClusterNotActiveException_FromDafny(dafnyOutput ComAmazonawsKmsTypes.Error) types.CloudHsmClusterNotActiveException { + return func() types.CloudHsmClusterNotActiveException { + + return types.CloudHsmClusterNotActiveException{ + Message: Com_amazonaws_kms_CloudHsmClusterNotActiveException_message_FromDafny(dafnyOutput.Dtor_message().UnwrapOr(nil)), + } + }() + +} + +func CloudHsmClusterNotFoundException_FromDafny(dafnyOutput ComAmazonawsKmsTypes.Error) types.CloudHsmClusterNotFoundException { + return func() types.CloudHsmClusterNotFoundException { + + return types.CloudHsmClusterNotFoundException{ + Message: Com_amazonaws_kms_CloudHsmClusterNotFoundException_message_FromDafny(dafnyOutput.Dtor_message().UnwrapOr(nil)), + } + }() + +} + +func CloudHsmClusterNotRelatedException_FromDafny(dafnyOutput ComAmazonawsKmsTypes.Error) types.CloudHsmClusterNotRelatedException { + return func() types.CloudHsmClusterNotRelatedException { + + return types.CloudHsmClusterNotRelatedException{ + Message: Com_amazonaws_kms_CloudHsmClusterNotRelatedException_message_FromDafny(dafnyOutput.Dtor_message().UnwrapOr(nil)), + } + }() + +} + +func ConflictException_FromDafny(dafnyOutput ComAmazonawsKmsTypes.Error) types.ConflictException { + return func() types.ConflictException { + + return types.ConflictException{ + Message: Com_amazonaws_kms_ConflictException_message_FromDafny(dafnyOutput.Dtor_message().UnwrapOr(nil)), + } + }() + +} + +func CustomKeyStoreHasCMKsException_FromDafny(dafnyOutput ComAmazonawsKmsTypes.Error) types.CustomKeyStoreHasCMKsException { + return func() types.CustomKeyStoreHasCMKsException { + + return types.CustomKeyStoreHasCMKsException{ + Message: Com_amazonaws_kms_CustomKeyStoreHasCMKsException_message_FromDafny(dafnyOutput.Dtor_message().UnwrapOr(nil)), + } + }() + +} + +func CustomKeyStoreInvalidStateException_FromDafny(dafnyOutput ComAmazonawsKmsTypes.Error) types.CustomKeyStoreInvalidStateException { + return func() types.CustomKeyStoreInvalidStateException { + + return types.CustomKeyStoreInvalidStateException{ + Message: Com_amazonaws_kms_CustomKeyStoreInvalidStateException_message_FromDafny(dafnyOutput.Dtor_message().UnwrapOr(nil)), + } + }() + +} + +func CustomKeyStoreNameInUseException_FromDafny(dafnyOutput ComAmazonawsKmsTypes.Error) types.CustomKeyStoreNameInUseException { + return func() types.CustomKeyStoreNameInUseException { + + return types.CustomKeyStoreNameInUseException{ + Message: Com_amazonaws_kms_CustomKeyStoreNameInUseException_message_FromDafny(dafnyOutput.Dtor_message().UnwrapOr(nil)), + } + }() + +} + +func CustomKeyStoreNotFoundException_FromDafny(dafnyOutput ComAmazonawsKmsTypes.Error) types.CustomKeyStoreNotFoundException { + return func() types.CustomKeyStoreNotFoundException { + + return types.CustomKeyStoreNotFoundException{ + Message: Com_amazonaws_kms_CustomKeyStoreNotFoundException_message_FromDafny(dafnyOutput.Dtor_message().UnwrapOr(nil)), + } + }() + +} + +func DependencyTimeoutException_FromDafny(dafnyOutput ComAmazonawsKmsTypes.Error) types.DependencyTimeoutException { + return func() types.DependencyTimeoutException { + + return types.DependencyTimeoutException{ + Message: Com_amazonaws_kms_DependencyTimeoutException_message_FromDafny(dafnyOutput.Dtor_message().UnwrapOr(nil)), + } + }() + +} + +func DisabledException_FromDafny(dafnyOutput ComAmazonawsKmsTypes.Error) types.DisabledException { + return func() types.DisabledException { + + return types.DisabledException{ + Message: Com_amazonaws_kms_DisabledException_message_FromDafny(dafnyOutput.Dtor_message().UnwrapOr(nil)), + } + }() + +} + +func DryRunOperationException_FromDafny(dafnyOutput ComAmazonawsKmsTypes.Error) types.DryRunOperationException { + return func() types.DryRunOperationException { + + return types.DryRunOperationException{ + Message: Com_amazonaws_kms_DryRunOperationException_message_FromDafny(dafnyOutput.Dtor_message().UnwrapOr(nil)), + } + }() + +} + +func ExpiredImportTokenException_FromDafny(dafnyOutput ComAmazonawsKmsTypes.Error) types.ExpiredImportTokenException { + return func() types.ExpiredImportTokenException { + + return types.ExpiredImportTokenException{ + Message: Com_amazonaws_kms_ExpiredImportTokenException_message_FromDafny(dafnyOutput.Dtor_message().UnwrapOr(nil)), + } + }() + +} + +func IncorrectKeyException_FromDafny(dafnyOutput ComAmazonawsKmsTypes.Error) types.IncorrectKeyException { + return func() types.IncorrectKeyException { + + return types.IncorrectKeyException{ + Message: Com_amazonaws_kms_IncorrectKeyException_message_FromDafny(dafnyOutput.Dtor_message().UnwrapOr(nil)), + } + }() + +} + +func IncorrectKeyMaterialException_FromDafny(dafnyOutput ComAmazonawsKmsTypes.Error) types.IncorrectKeyMaterialException { + return func() types.IncorrectKeyMaterialException { + + return types.IncorrectKeyMaterialException{ + Message: Com_amazonaws_kms_IncorrectKeyMaterialException_message_FromDafny(dafnyOutput.Dtor_message().UnwrapOr(nil)), + } + }() + +} + +func IncorrectTrustAnchorException_FromDafny(dafnyOutput ComAmazonawsKmsTypes.Error) types.IncorrectTrustAnchorException { + return func() types.IncorrectTrustAnchorException { + + return types.IncorrectTrustAnchorException{ + Message: Com_amazonaws_kms_IncorrectTrustAnchorException_message_FromDafny(dafnyOutput.Dtor_message().UnwrapOr(nil)), + } + }() + +} + +func InvalidAliasNameException_FromDafny(dafnyOutput ComAmazonawsKmsTypes.Error) types.InvalidAliasNameException { + return func() types.InvalidAliasNameException { + + return types.InvalidAliasNameException{ + Message: Com_amazonaws_kms_InvalidAliasNameException_message_FromDafny(dafnyOutput.Dtor_message().UnwrapOr(nil)), + } + }() + +} + +func InvalidArnException_FromDafny(dafnyOutput ComAmazonawsKmsTypes.Error) types.InvalidArnException { + return func() types.InvalidArnException { + + return types.InvalidArnException{ + Message: Com_amazonaws_kms_InvalidArnException_message_FromDafny(dafnyOutput.Dtor_message().UnwrapOr(nil)), + } + }() + +} + +func InvalidCiphertextException_FromDafny(dafnyOutput ComAmazonawsKmsTypes.Error) types.InvalidCiphertextException { + return func() types.InvalidCiphertextException { + + return types.InvalidCiphertextException{ + Message: Com_amazonaws_kms_InvalidCiphertextException_message_FromDafny(dafnyOutput.Dtor_message().UnwrapOr(nil)), + } + }() + +} + +func InvalidGrantIdException_FromDafny(dafnyOutput ComAmazonawsKmsTypes.Error) types.InvalidGrantIdException { + return func() types.InvalidGrantIdException { + + return types.InvalidGrantIdException{ + Message: Com_amazonaws_kms_InvalidGrantIdException_message_FromDafny(dafnyOutput.Dtor_message().UnwrapOr(nil)), + } + }() + +} + +func InvalidGrantTokenException_FromDafny(dafnyOutput ComAmazonawsKmsTypes.Error) types.InvalidGrantTokenException { + return func() types.InvalidGrantTokenException { + + return types.InvalidGrantTokenException{ + Message: Com_amazonaws_kms_InvalidGrantTokenException_message_FromDafny(dafnyOutput.Dtor_message().UnwrapOr(nil)), + } + }() + +} + +func InvalidImportTokenException_FromDafny(dafnyOutput ComAmazonawsKmsTypes.Error) types.InvalidImportTokenException { + return func() types.InvalidImportTokenException { + + return types.InvalidImportTokenException{ + Message: Com_amazonaws_kms_InvalidImportTokenException_message_FromDafny(dafnyOutput.Dtor_message().UnwrapOr(nil)), + } + }() + +} + +func InvalidKeyUsageException_FromDafny(dafnyOutput ComAmazonawsKmsTypes.Error) types.InvalidKeyUsageException { + return func() types.InvalidKeyUsageException { + + return types.InvalidKeyUsageException{ + Message: Com_amazonaws_kms_InvalidKeyUsageException_message_FromDafny(dafnyOutput.Dtor_message().UnwrapOr(nil)), + } + }() + +} + +func InvalidMarkerException_FromDafny(dafnyOutput ComAmazonawsKmsTypes.Error) types.InvalidMarkerException { + return func() types.InvalidMarkerException { + + return types.InvalidMarkerException{ + Message: Com_amazonaws_kms_InvalidMarkerException_message_FromDafny(dafnyOutput.Dtor_message().UnwrapOr(nil)), + } + }() + +} + +func KeyUnavailableException_FromDafny(dafnyOutput ComAmazonawsKmsTypes.Error) types.KeyUnavailableException { + return func() types.KeyUnavailableException { + + return types.KeyUnavailableException{ + Message: Com_amazonaws_kms_KeyUnavailableException_message_FromDafny(dafnyOutput.Dtor_message().UnwrapOr(nil)), + } + }() + +} + +func KMSInternalException_FromDafny(dafnyOutput ComAmazonawsKmsTypes.Error) types.KMSInternalException { + return func() types.KMSInternalException { + + return types.KMSInternalException{ + Message: Com_amazonaws_kms_KMSInternalException_message_FromDafny(dafnyOutput.Dtor_message().UnwrapOr(nil)), + } + }() + +} + +func KMSInvalidMacException_FromDafny(dafnyOutput ComAmazonawsKmsTypes.Error) types.KMSInvalidMacException { + return func() types.KMSInvalidMacException { + + return types.KMSInvalidMacException{ + Message: Com_amazonaws_kms_KMSInvalidMacException_message_FromDafny(dafnyOutput.Dtor_message().UnwrapOr(nil)), + } + }() + +} + +func KMSInvalidSignatureException_FromDafny(dafnyOutput ComAmazonawsKmsTypes.Error) types.KMSInvalidSignatureException { + return func() types.KMSInvalidSignatureException { + + return types.KMSInvalidSignatureException{ + Message: Com_amazonaws_kms_KMSInvalidSignatureException_message_FromDafny(dafnyOutput.Dtor_message().UnwrapOr(nil)), + } + }() + +} + +func KMSInvalidStateException_FromDafny(dafnyOutput ComAmazonawsKmsTypes.Error) types.KMSInvalidStateException { + return func() types.KMSInvalidStateException { + + return types.KMSInvalidStateException{ + Message: Com_amazonaws_kms_KMSInvalidStateException_message_FromDafny(dafnyOutput.Dtor_message().UnwrapOr(nil)), + } + }() + +} + +func LimitExceededException_FromDafny(dafnyOutput ComAmazonawsKmsTypes.Error) types.LimitExceededException { + return func() types.LimitExceededException { + + return types.LimitExceededException{ + Message: Com_amazonaws_kms_LimitExceededException_message_FromDafny(dafnyOutput.Dtor_message().UnwrapOr(nil)), + } + }() + +} + +func MalformedPolicyDocumentException_FromDafny(dafnyOutput ComAmazonawsKmsTypes.Error) types.MalformedPolicyDocumentException { + return func() types.MalformedPolicyDocumentException { + + return types.MalformedPolicyDocumentException{ + Message: Com_amazonaws_kms_MalformedPolicyDocumentException_message_FromDafny(dafnyOutput.Dtor_message().UnwrapOr(nil)), + } + }() + +} + +func NotFoundException_FromDafny(dafnyOutput ComAmazonawsKmsTypes.Error) types.NotFoundException { + return func() types.NotFoundException { + + return types.NotFoundException{ + Message: Com_amazonaws_kms_NotFoundException_message_FromDafny(dafnyOutput.Dtor_message().UnwrapOr(nil)), + } + }() + +} + +func TagException_FromDafny(dafnyOutput ComAmazonawsKmsTypes.Error) types.TagException { + return func() types.TagException { + + return types.TagException{ + Message: Com_amazonaws_kms_TagException_message_FromDafny(dafnyOutput.Dtor_message().UnwrapOr(nil)), + } + }() + +} + +func UnsupportedOperationException_FromDafny(dafnyOutput ComAmazonawsKmsTypes.Error) types.UnsupportedOperationException { + return func() types.UnsupportedOperationException { + + return types.UnsupportedOperationException{ + Message: Com_amazonaws_kms_UnsupportedOperationException_message_FromDafny(dafnyOutput.Dtor_message().UnwrapOr(nil)), + } + }() + +} + +func XksKeyAlreadyInUseException_FromDafny(dafnyOutput ComAmazonawsKmsTypes.Error) types.XksKeyAlreadyInUseException { + return func() types.XksKeyAlreadyInUseException { + + return types.XksKeyAlreadyInUseException{ + Message: Com_amazonaws_kms_XksKeyAlreadyInUseException_message_FromDafny(dafnyOutput.Dtor_message().UnwrapOr(nil)), + } + }() + +} + +func XksKeyInvalidConfigurationException_FromDafny(dafnyOutput ComAmazonawsKmsTypes.Error) types.XksKeyInvalidConfigurationException { + return func() types.XksKeyInvalidConfigurationException { + + return types.XksKeyInvalidConfigurationException{ + Message: Com_amazonaws_kms_XksKeyInvalidConfigurationException_message_FromDafny(dafnyOutput.Dtor_message().UnwrapOr(nil)), + } + }() + +} + +func XksKeyNotFoundException_FromDafny(dafnyOutput ComAmazonawsKmsTypes.Error) types.XksKeyNotFoundException { + return func() types.XksKeyNotFoundException { + + return types.XksKeyNotFoundException{ + Message: Com_amazonaws_kms_XksKeyNotFoundException_message_FromDafny(dafnyOutput.Dtor_message().UnwrapOr(nil)), + } + }() + +} + +func XksProxyIncorrectAuthenticationCredentialException_FromDafny(dafnyOutput ComAmazonawsKmsTypes.Error) types.XksProxyIncorrectAuthenticationCredentialException { + return func() types.XksProxyIncorrectAuthenticationCredentialException { + + return types.XksProxyIncorrectAuthenticationCredentialException{ + Message: Com_amazonaws_kms_XksProxyIncorrectAuthenticationCredentialException_message_FromDafny(dafnyOutput.Dtor_message().UnwrapOr(nil)), + } + }() + +} + +func XksProxyInvalidConfigurationException_FromDafny(dafnyOutput ComAmazonawsKmsTypes.Error) types.XksProxyInvalidConfigurationException { + return func() types.XksProxyInvalidConfigurationException { + + return types.XksProxyInvalidConfigurationException{ + Message: Com_amazonaws_kms_XksProxyInvalidConfigurationException_message_FromDafny(dafnyOutput.Dtor_message().UnwrapOr(nil)), + } + }() + +} + +func XksProxyInvalidResponseException_FromDafny(dafnyOutput ComAmazonawsKmsTypes.Error) types.XksProxyInvalidResponseException { + return func() types.XksProxyInvalidResponseException { + + return types.XksProxyInvalidResponseException{ + Message: Com_amazonaws_kms_XksProxyInvalidResponseException_message_FromDafny(dafnyOutput.Dtor_message().UnwrapOr(nil)), + } + }() + +} + +func XksProxyUriEndpointInUseException_FromDafny(dafnyOutput ComAmazonawsKmsTypes.Error) types.XksProxyUriEndpointInUseException { + return func() types.XksProxyUriEndpointInUseException { + + return types.XksProxyUriEndpointInUseException{ + Message: Com_amazonaws_kms_XksProxyUriEndpointInUseException_message_FromDafny(dafnyOutput.Dtor_message().UnwrapOr(nil)), + } + }() + +} + +func XksProxyUriInUseException_FromDafny(dafnyOutput ComAmazonawsKmsTypes.Error) types.XksProxyUriInUseException { + return func() types.XksProxyUriInUseException { + + return types.XksProxyUriInUseException{ + Message: Com_amazonaws_kms_XksProxyUriInUseException_message_FromDafny(dafnyOutput.Dtor_message().UnwrapOr(nil)), + } + }() + +} + +func XksProxyUriUnreachableException_FromDafny(dafnyOutput ComAmazonawsKmsTypes.Error) types.XksProxyUriUnreachableException { + return func() types.XksProxyUriUnreachableException { + + return types.XksProxyUriUnreachableException{ + Message: Com_amazonaws_kms_XksProxyUriUnreachableException_message_FromDafny(dafnyOutput.Dtor_message().UnwrapOr(nil)), + } + }() + +} + +func XksProxyVpcEndpointServiceInUseException_FromDafny(dafnyOutput ComAmazonawsKmsTypes.Error) types.XksProxyVpcEndpointServiceInUseException { + return func() types.XksProxyVpcEndpointServiceInUseException { + + return types.XksProxyVpcEndpointServiceInUseException{ + Message: Com_amazonaws_kms_XksProxyVpcEndpointServiceInUseException_message_FromDafny(dafnyOutput.Dtor_message().UnwrapOr(nil)), + } + }() + +} + +func XksProxyVpcEndpointServiceInvalidConfigurationException_FromDafny(dafnyOutput ComAmazonawsKmsTypes.Error) types.XksProxyVpcEndpointServiceInvalidConfigurationException { + return func() types.XksProxyVpcEndpointServiceInvalidConfigurationException { + + return types.XksProxyVpcEndpointServiceInvalidConfigurationException{ + Message: Com_amazonaws_kms_XksProxyVpcEndpointServiceInvalidConfigurationException_message_FromDafny(dafnyOutput.Dtor_message().UnwrapOr(nil)), + } + }() + +} + +func XksProxyVpcEndpointServiceNotFoundException_FromDafny(dafnyOutput ComAmazonawsKmsTypes.Error) types.XksProxyVpcEndpointServiceNotFoundException { + return func() types.XksProxyVpcEndpointServiceNotFoundException { + + return types.XksProxyVpcEndpointServiceNotFoundException{ + Message: Com_amazonaws_kms_XksProxyVpcEndpointServiceNotFoundException_message_FromDafny(dafnyOutput.Dtor_message().UnwrapOr(nil)), + } + }() + +} + +func OpaqueError_Output_FromDafny(dafnyOutput ComAmazonawsKmsTypes.Error) error { + responseSmithyOp, ok := dafnyOutput.Dtor_obj().(*smithy.OperationError) + if ok { + return responseSmithyOp + } + responseGenericErr, ok := dafnyOutput.Dtor_obj().(error) + if ok { + return responseGenericErr + } + panic("Invalid Error") +} + +func Error_FromDafny(err ComAmazonawsKmsTypes.Error) error { + // Service Errors + if err.Is_AlreadyExistsException() { + e := AlreadyExistsException_FromDafny(err) + return &e + } + + if err.Is_CloudHsmClusterInUseException() { + e := CloudHsmClusterInUseException_FromDafny(err) + return &e + } + + if err.Is_CloudHsmClusterInvalidConfigurationException() { + e := CloudHsmClusterInvalidConfigurationException_FromDafny(err) + return &e + } + + if err.Is_CloudHsmClusterNotActiveException() { + e := CloudHsmClusterNotActiveException_FromDafny(err) + return &e + } + + if err.Is_CloudHsmClusterNotFoundException() { + e := CloudHsmClusterNotFoundException_FromDafny(err) + return &e + } + + if err.Is_CloudHsmClusterNotRelatedException() { + e := CloudHsmClusterNotRelatedException_FromDafny(err) + return &e + } + + if err.Is_ConflictException() { + e := ConflictException_FromDafny(err) + return &e + } + + if err.Is_CustomKeyStoreHasCMKsException() { + e := CustomKeyStoreHasCMKsException_FromDafny(err) + return &e + } + + if err.Is_CustomKeyStoreInvalidStateException() { + e := CustomKeyStoreInvalidStateException_FromDafny(err) + return &e + } + + if err.Is_CustomKeyStoreNameInUseException() { + e := CustomKeyStoreNameInUseException_FromDafny(err) + return &e + } + + if err.Is_CustomKeyStoreNotFoundException() { + e := CustomKeyStoreNotFoundException_FromDafny(err) + return &e + } + + if err.Is_DependencyTimeoutException() { + e := DependencyTimeoutException_FromDafny(err) + return &e + } + + if err.Is_DisabledException() { + e := DisabledException_FromDafny(err) + return &e + } + + if err.Is_DryRunOperationException() { + e := DryRunOperationException_FromDafny(err) + return &e + } + + if err.Is_ExpiredImportTokenException() { + e := ExpiredImportTokenException_FromDafny(err) + return &e + } + + if err.Is_IncorrectKeyException() { + e := IncorrectKeyException_FromDafny(err) + return &e + } + + if err.Is_IncorrectKeyMaterialException() { + e := IncorrectKeyMaterialException_FromDafny(err) + return &e + } + + if err.Is_IncorrectTrustAnchorException() { + e := IncorrectTrustAnchorException_FromDafny(err) + return &e + } + + if err.Is_InvalidAliasNameException() { + e := InvalidAliasNameException_FromDafny(err) + return &e + } + + if err.Is_InvalidArnException() { + e := InvalidArnException_FromDafny(err) + return &e + } + + if err.Is_InvalidCiphertextException() { + e := InvalidCiphertextException_FromDafny(err) + return &e + } + + if err.Is_InvalidGrantIdException() { + e := InvalidGrantIdException_FromDafny(err) + return &e + } + + if err.Is_InvalidGrantTokenException() { + e := InvalidGrantTokenException_FromDafny(err) + return &e + } + + if err.Is_InvalidImportTokenException() { + e := InvalidImportTokenException_FromDafny(err) + return &e + } + + if err.Is_InvalidKeyUsageException() { + e := InvalidKeyUsageException_FromDafny(err) + return &e + } + + if err.Is_InvalidMarkerException() { + e := InvalidMarkerException_FromDafny(err) + return &e + } + + if err.Is_KeyUnavailableException() { + e := KeyUnavailableException_FromDafny(err) + return &e + } + + if err.Is_KMSInternalException() { + e := KMSInternalException_FromDafny(err) + return &e + } + + if err.Is_KMSInvalidMacException() { + e := KMSInvalidMacException_FromDafny(err) + return &e + } + + if err.Is_KMSInvalidSignatureException() { + e := KMSInvalidSignatureException_FromDafny(err) + return &e + } + + if err.Is_KMSInvalidStateException() { + e := KMSInvalidStateException_FromDafny(err) + return &e + } + + if err.Is_LimitExceededException() { + e := LimitExceededException_FromDafny(err) + return &e + } + + if err.Is_MalformedPolicyDocumentException() { + e := MalformedPolicyDocumentException_FromDafny(err) + return &e + } + + if err.Is_NotFoundException() { + e := NotFoundException_FromDafny(err) + return &e + } + + if err.Is_TagException() { + e := TagException_FromDafny(err) + return &e + } + + if err.Is_UnsupportedOperationException() { + e := UnsupportedOperationException_FromDafny(err) + return &e + } + + if err.Is_XksKeyAlreadyInUseException() { + e := XksKeyAlreadyInUseException_FromDafny(err) + return &e + } + + if err.Is_XksKeyInvalidConfigurationException() { + e := XksKeyInvalidConfigurationException_FromDafny(err) + return &e + } + + if err.Is_XksKeyNotFoundException() { + e := XksKeyNotFoundException_FromDafny(err) + return &e + } + + if err.Is_XksProxyIncorrectAuthenticationCredentialException() { + e := XksProxyIncorrectAuthenticationCredentialException_FromDafny(err) + return &e + } + + if err.Is_XksProxyInvalidConfigurationException() { + e := XksProxyInvalidConfigurationException_FromDafny(err) + return &e + } + + if err.Is_XksProxyInvalidResponseException() { + e := XksProxyInvalidResponseException_FromDafny(err) + return &e + } + + if err.Is_XksProxyUriEndpointInUseException() { + e := XksProxyUriEndpointInUseException_FromDafny(err) + return &e + } + + if err.Is_XksProxyUriInUseException() { + e := XksProxyUriInUseException_FromDafny(err) + return &e + } + + if err.Is_XksProxyUriUnreachableException() { + e := XksProxyUriUnreachableException_FromDafny(err) + return &e + } + + if err.Is_XksProxyVpcEndpointServiceInUseException() { + e := XksProxyVpcEndpointServiceInUseException_FromDafny(err) + return &e + } + + if err.Is_XksProxyVpcEndpointServiceInvalidConfigurationException() { + e := XksProxyVpcEndpointServiceInvalidConfigurationException_FromDafny(err) + return &e + } + + if err.Is_XksProxyVpcEndpointServiceNotFoundException() { + e := XksProxyVpcEndpointServiceNotFoundException_FromDafny(err) + return &e + } + + return OpaqueError_Output_FromDafny(err) +} + +func Com_amazonaws_kms_CancelKeyDeletionInput_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 Com_amazonaws_kms_CancelKeyDeletionOutput_KeyId_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_kms_ConnectCustomKeyStoreInput_CustomKeyStoreId_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 Com_amazonaws_kms_CreateAliasInput_AliasName_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 Com_amazonaws_kms_CreateAliasInput_TargetKeyId_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 Com_amazonaws_kms_CreateCustomKeyStoreInput_CustomKeyStoreName_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 Com_amazonaws_kms_CreateCustomKeyStoreInput_CloudHsmClusterId_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_kms_CreateCustomKeyStoreInput_TrustAnchorCertificate_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_kms_CreateCustomKeyStoreInput_KeyStorePassword_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_kms_CreateCustomKeyStoreInput_CustomKeyStoreType_FromDafny(input interface{}) types.CustomKeyStoreType { + return func() types.CustomKeyStoreType { + var u types.CustomKeyStoreType + if input == nil { + return u + } + + inputEnum := input.(ComAmazonawsKmsTypes.CustomKeyStoreType) + index := -1 + for allEnums := dafny.Iterate(ComAmazonawsKmsTypes.CompanionStruct_CustomKeyStoreType_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(ComAmazonawsKmsTypes.CustomKeyStoreType).Equals(inputEnum) { + break + } + } + } + return u.Values()[index] + }() +} +func Com_amazonaws_kms_CreateCustomKeyStoreInput_XksProxyUriEndpoint_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_kms_CreateCustomKeyStoreInput_XksProxyUriPath_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_kms_CreateCustomKeyStoreInput_XksProxyVpcEndpointServiceName_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_kms_CreateCustomKeyStoreInput_XksProxyAuthenticationCredential_FromDafny(input interface{}) *types.XksProxyAuthenticationCredentialType { + return func() *types.XksProxyAuthenticationCredentialType { + if input == nil { + return nil + } + return &types.XksProxyAuthenticationCredentialType{ + AccessKeyId: Com_amazonaws_kms_XksProxyAuthenticationCredentialType_AccessKeyId_FromDafny(input.(ComAmazonawsKmsTypes.XksProxyAuthenticationCredentialType).Dtor_AccessKeyId()), + RawSecretAccessKey: Com_amazonaws_kms_XksProxyAuthenticationCredentialType_RawSecretAccessKey_FromDafny(input.(ComAmazonawsKmsTypes.XksProxyAuthenticationCredentialType).Dtor_RawSecretAccessKey()), + } + }() +} +func Com_amazonaws_kms_XksProxyAuthenticationCredentialType_AccessKeyId_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 Com_amazonaws_kms_XksProxyAuthenticationCredentialType_RawSecretAccessKey_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 Com_amazonaws_kms_CreateCustomKeyStoreInput_XksProxyConnectivity_FromDafny(input interface{}) types.XksProxyConnectivityType { + return func() types.XksProxyConnectivityType { + var u types.XksProxyConnectivityType + if input == nil { + return u + } + + inputEnum := input.(ComAmazonawsKmsTypes.XksProxyConnectivityType) + index := -1 + for allEnums := dafny.Iterate(ComAmazonawsKmsTypes.CompanionStruct_XksProxyConnectivityType_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(ComAmazonawsKmsTypes.XksProxyConnectivityType).Equals(inputEnum) { + break + } + } + } + return u.Values()[index] + }() +} +func Com_amazonaws_kms_CreateCustomKeyStoreOutput_CustomKeyStoreId_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_kms_CreateGrantInput_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 Com_amazonaws_kms_CreateGrantInput_GranteePrincipal_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 Com_amazonaws_kms_CreateGrantInput_RetiringPrincipal_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_kms_CreateGrantInput_Operations_FromDafny(input interface{}) []types.GrantOperation { + return func() []types.GrantOperation { + var fieldValue []types.GrantOperation + + for i := dafny.Iterate(input.(dafny.Sequence)); ; { + val, ok := i() + if !ok { + break + } + fieldValue = append(fieldValue, Com_amazonaws_kms_GrantOperationList_member_FromDafny(val)) + } + return fieldValue + }() +} +func Com_amazonaws_kms_GrantOperationList_member_FromDafny(input interface{}) types.GrantOperation { + return func() types.GrantOperation { + var u types.GrantOperation + + inputEnum := input.(ComAmazonawsKmsTypes.GrantOperation) + index := -1 + for allEnums := dafny.Iterate(ComAmazonawsKmsTypes.CompanionStruct_GrantOperation_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(ComAmazonawsKmsTypes.GrantOperation).Equals(inputEnum) { + break + } + } + } + return u.Values()[index] + }() +} +func Com_amazonaws_kms_CreateGrantInput_Constraints_FromDafny(input interface{}) *types.GrantConstraints { + return func() *types.GrantConstraints { + if input == nil { + return nil + } + return &types.GrantConstraints{ + EncryptionContextSubset: Com_amazonaws_kms_GrantConstraints_EncryptionContextSubset_FromDafny(input.(ComAmazonawsKmsTypes.GrantConstraints).Dtor_EncryptionContextSubset().UnwrapOr(nil)), + EncryptionContextEquals: Com_amazonaws_kms_GrantConstraints_EncryptionContextEquals_FromDafny(input.(ComAmazonawsKmsTypes.GrantConstraints).Dtor_EncryptionContextEquals().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_kms_GrantConstraints_EncryptionContextSubset_FromDafny(input interface{}) map[string]string { + return func() 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[Com_amazonaws_kms_EncryptionContextType_key_FromDafny((*val.(dafny.Tuple).IndexInt(0)))] = Com_amazonaws_kms_EncryptionContextType_value_FromDafny((*val.(dafny.Tuple).IndexInt(1))) + } + return m + }() +} +func Com_amazonaws_kms_EncryptionContextType_key_FromDafny(input interface{}) string { + return func() string { + if input == nil { + return "" + } + a := UTF8.Encode(input.(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return s + }() +} +func Com_amazonaws_kms_EncryptionContextType_value_FromDafny(input interface{}) string { + return func() string { + + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return s + }() +} +func Com_amazonaws_kms_GrantConstraints_EncryptionContextEquals_FromDafny(input interface{}) map[string]string { + return func() 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[Com_amazonaws_kms_EncryptionContextType_key_FromDafny((*val.(dafny.Tuple).IndexInt(0)))] = Com_amazonaws_kms_EncryptionContextType_value_FromDafny((*val.(dafny.Tuple).IndexInt(1))) + } + return m + }() +} +func Com_amazonaws_kms_CreateGrantInput_GrantTokens_FromDafny(input interface{}) []string { + return func() []string { + var fieldValue []string + if input == nil { + return nil + } + for i := dafny.Iterate(input.(dafny.Sequence).(dafny.Sequence)); ; { + val, ok := i() + if !ok { + break + } + fieldValue = append(fieldValue, Com_amazonaws_kms_GrantTokenList_member_FromDafny(val)) + } + return fieldValue + }() +} +func Com_amazonaws_kms_GrantTokenList_member_FromDafny(input interface{}) string { + return func() string { + + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return s + }() +} +func Com_amazonaws_kms_CreateGrantInput_Name_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_kms_CreateGrantInput_DryRun_FromDafny(input interface{}) *bool { + return func() *bool { + var b bool + if input == nil { + return nil + } + b = input.(bool) + return &b + }() +} +func Com_amazonaws_kms_CreateGrantOutput_GrantToken_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_kms_CreateGrantOutput_GrantId_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_kms_CreateKeyInput_Policy_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_kms_CreateKeyInput_Description_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_kms_CreateKeyInput_KeyUsage_FromDafny(input interface{}) types.KeyUsageType { + return func() types.KeyUsageType { + var u types.KeyUsageType + if input == nil { + return u + } + + inputEnum := input.(ComAmazonawsKmsTypes.KeyUsageType) + index := -1 + for allEnums := dafny.Iterate(ComAmazonawsKmsTypes.CompanionStruct_KeyUsageType_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(ComAmazonawsKmsTypes.KeyUsageType).Equals(inputEnum) { + break + } + } + } + return u.Values()[index] + }() +} +func Com_amazonaws_kms_CreateKeyInput_CustomerMasterKeySpec_FromDafny(input interface{}) types.CustomerMasterKeySpec { + return func() types.CustomerMasterKeySpec { + var u types.CustomerMasterKeySpec + if input == nil { + return u + } + + inputEnum := input.(ComAmazonawsKmsTypes.CustomerMasterKeySpec) + index := -1 + for allEnums := dafny.Iterate(ComAmazonawsKmsTypes.CompanionStruct_CustomerMasterKeySpec_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(ComAmazonawsKmsTypes.CustomerMasterKeySpec).Equals(inputEnum) { + break + } + } + } + return u.Values()[index] + }() +} +func Com_amazonaws_kms_CreateKeyInput_KeySpec_FromDafny(input interface{}) types.KeySpec { + return func() types.KeySpec { + var u types.KeySpec + if input == nil { + return u + } + + inputEnum := input.(ComAmazonawsKmsTypes.KeySpec) + index := -1 + for allEnums := dafny.Iterate(ComAmazonawsKmsTypes.CompanionStruct_KeySpec_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(ComAmazonawsKmsTypes.KeySpec).Equals(inputEnum) { + break + } + } + } + return u.Values()[index] + }() +} +func Com_amazonaws_kms_CreateKeyInput_Origin_FromDafny(input interface{}) types.OriginType { + return func() types.OriginType { + var u types.OriginType + if input == nil { + return u + } + + inputEnum := input.(ComAmazonawsKmsTypes.OriginType) + index := -1 + for allEnums := dafny.Iterate(ComAmazonawsKmsTypes.CompanionStruct_OriginType_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(ComAmazonawsKmsTypes.OriginType).Equals(inputEnum) { + break + } + } + } + return u.Values()[index] + }() +} +func Com_amazonaws_kms_CreateKeyInput_CustomKeyStoreId_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_kms_CreateKeyInput_BypassPolicyLockoutSafetyCheck_FromDafny(input interface{}) bool { + return func() bool { + var b bool + if input == nil { + return b + } + b = input.(bool) + return b + }() +} +func Com_amazonaws_kms_CreateKeyInput_Tags_FromDafny(input interface{}) []types.Tag { + return func() []types.Tag { + var fieldValue []types.Tag + if input == nil { + return nil + } + for i := dafny.Iterate(input.(dafny.Sequence).(dafny.Sequence)); ; { + val, ok := i() + if !ok { + break + } + fieldValue = append(fieldValue, Com_amazonaws_kms_TagList_member_FromDafny(val)) + } + return fieldValue + }() +} +func Com_amazonaws_kms_TagList_member_FromDafny(input interface{}) types.Tag { + return func() types.Tag { + + return types.Tag{ + TagKey: Com_amazonaws_kms_Tag_TagKey_FromDafny(input.(ComAmazonawsKmsTypes.Tag).Dtor_TagKey()), + TagValue: Com_amazonaws_kms_Tag_TagValue_FromDafny(input.(ComAmazonawsKmsTypes.Tag).Dtor_TagValue()), + } + }() +} +func Com_amazonaws_kms_Tag_TagKey_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 Com_amazonaws_kms_Tag_TagValue_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 Com_amazonaws_kms_CreateKeyInput_MultiRegion_FromDafny(input interface{}) *bool { + return func() *bool { + var b bool + if input == nil { + return nil + } + b = input.(bool) + return &b + }() +} +func Com_amazonaws_kms_CreateKeyInput_XksKeyId_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_kms_CreateKeyOutput_KeyMetadata_FromDafny(input interface{}) *types.KeyMetadata { + return func() *types.KeyMetadata { + if input == nil { + return nil + } + return &types.KeyMetadata{ + AWSAccountId: Com_amazonaws_kms_KeyMetadata_AWSAccountId_FromDafny(input.(ComAmazonawsKmsTypes.KeyMetadata).Dtor_AWSAccountId().UnwrapOr(nil)), + KeyId: Com_amazonaws_kms_KeyMetadata_KeyId_FromDafny(input.(ComAmazonawsKmsTypes.KeyMetadata).Dtor_KeyId()), + Arn: Com_amazonaws_kms_KeyMetadata_Arn_FromDafny(input.(ComAmazonawsKmsTypes.KeyMetadata).Dtor_Arn().UnwrapOr(nil)), + CreationDate: Com_amazonaws_kms_KeyMetadata_CreationDate_FromDafny(input.(ComAmazonawsKmsTypes.KeyMetadata).Dtor_CreationDate().UnwrapOr(nil)), + Enabled: Com_amazonaws_kms_KeyMetadata_Enabled_FromDafny(input.(ComAmazonawsKmsTypes.KeyMetadata).Dtor_Enabled().UnwrapOr(nil)), + Description: Com_amazonaws_kms_KeyMetadata_Description_FromDafny(input.(ComAmazonawsKmsTypes.KeyMetadata).Dtor_Description().UnwrapOr(nil)), + KeyUsage: Com_amazonaws_kms_KeyMetadata_KeyUsage_FromDafny(input.(ComAmazonawsKmsTypes.KeyMetadata).Dtor_KeyUsage().UnwrapOr(nil)), + KeyState: Com_amazonaws_kms_KeyMetadata_KeyState_FromDafny(input.(ComAmazonawsKmsTypes.KeyMetadata).Dtor_KeyState().UnwrapOr(nil)), + DeletionDate: Com_amazonaws_kms_KeyMetadata_DeletionDate_FromDafny(input.(ComAmazonawsKmsTypes.KeyMetadata).Dtor_DeletionDate().UnwrapOr(nil)), + ValidTo: Com_amazonaws_kms_KeyMetadata_ValidTo_FromDafny(input.(ComAmazonawsKmsTypes.KeyMetadata).Dtor_ValidTo().UnwrapOr(nil)), + Origin: Com_amazonaws_kms_KeyMetadata_Origin_FromDafny(input.(ComAmazonawsKmsTypes.KeyMetadata).Dtor_Origin().UnwrapOr(nil)), + CustomKeyStoreId: Com_amazonaws_kms_KeyMetadata_CustomKeyStoreId_FromDafny(input.(ComAmazonawsKmsTypes.KeyMetadata).Dtor_CustomKeyStoreId().UnwrapOr(nil)), + CloudHsmClusterId: Com_amazonaws_kms_KeyMetadata_CloudHsmClusterId_FromDafny(input.(ComAmazonawsKmsTypes.KeyMetadata).Dtor_CloudHsmClusterId().UnwrapOr(nil)), + ExpirationModel: Com_amazonaws_kms_KeyMetadata_ExpirationModel_FromDafny(input.(ComAmazonawsKmsTypes.KeyMetadata).Dtor_ExpirationModel().UnwrapOr(nil)), + KeyManager: Com_amazonaws_kms_KeyMetadata_KeyManager_FromDafny(input.(ComAmazonawsKmsTypes.KeyMetadata).Dtor_KeyManager().UnwrapOr(nil)), + CustomerMasterKeySpec: Com_amazonaws_kms_KeyMetadata_CustomerMasterKeySpec_FromDafny(input.(ComAmazonawsKmsTypes.KeyMetadata).Dtor_CustomerMasterKeySpec().UnwrapOr(nil)), + KeySpec: Com_amazonaws_kms_KeyMetadata_KeySpec_FromDafny(input.(ComAmazonawsKmsTypes.KeyMetadata).Dtor_KeySpec().UnwrapOr(nil)), + EncryptionAlgorithms: Com_amazonaws_kms_KeyMetadata_EncryptionAlgorithms_FromDafny(input.(ComAmazonawsKmsTypes.KeyMetadata).Dtor_EncryptionAlgorithms().UnwrapOr(nil)), + SigningAlgorithms: Com_amazonaws_kms_KeyMetadata_SigningAlgorithms_FromDafny(input.(ComAmazonawsKmsTypes.KeyMetadata).Dtor_SigningAlgorithms().UnwrapOr(nil)), + KeyAgreementAlgorithms: Com_amazonaws_kms_KeyMetadata_KeyAgreementAlgorithms_FromDafny(input.(ComAmazonawsKmsTypes.KeyMetadata).Dtor_KeyAgreementAlgorithms().UnwrapOr(nil)), + MultiRegion: Com_amazonaws_kms_KeyMetadata_MultiRegion_FromDafny(input.(ComAmazonawsKmsTypes.KeyMetadata).Dtor_MultiRegion().UnwrapOr(nil)), + MultiRegionConfiguration: Com_amazonaws_kms_KeyMetadata_MultiRegionConfiguration_FromDafny(input.(ComAmazonawsKmsTypes.KeyMetadata).Dtor_MultiRegionConfiguration().UnwrapOr(nil)), + PendingDeletionWindowInDays: Com_amazonaws_kms_KeyMetadata_PendingDeletionWindowInDays_FromDafny(input.(ComAmazonawsKmsTypes.KeyMetadata).Dtor_PendingDeletionWindowInDays().UnwrapOr(nil)), + MacAlgorithms: Com_amazonaws_kms_KeyMetadata_MacAlgorithms_FromDafny(input.(ComAmazonawsKmsTypes.KeyMetadata).Dtor_MacAlgorithms().UnwrapOr(nil)), + XksKeyConfiguration: Com_amazonaws_kms_KeyMetadata_XksKeyConfiguration_FromDafny(input.(ComAmazonawsKmsTypes.KeyMetadata).Dtor_XksKeyConfiguration().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_kms_KeyMetadata_AWSAccountId_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_kms_KeyMetadata_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 Com_amazonaws_kms_KeyMetadata_Arn_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_kms_KeyMetadata_CreationDate_FromDafny(input interface{}) *time.Time { + return func() *time.Time { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + if len(s) == 0 { + panic("timestamp string is empty") + } else { + t, err := time.Parse("2006-01-02T15:04:05.999999Z", s) + if err != nil { + panic(err) + } + return &t + } + }() +} +func Com_amazonaws_kms_KeyMetadata_Enabled_FromDafny(input interface{}) bool { + return func() bool { + var b bool + if input == nil { + return b + } + b = input.(bool) + return b + }() +} +func Com_amazonaws_kms_KeyMetadata_Description_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_kms_KeyMetadata_KeyUsage_FromDafny(input interface{}) types.KeyUsageType { + return func() types.KeyUsageType { + var u types.KeyUsageType + if input == nil { + return u + } + + inputEnum := input.(ComAmazonawsKmsTypes.KeyUsageType) + index := -1 + for allEnums := dafny.Iterate(ComAmazonawsKmsTypes.CompanionStruct_KeyUsageType_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(ComAmazonawsKmsTypes.KeyUsageType).Equals(inputEnum) { + break + } + } + } + return u.Values()[index] + }() +} +func Com_amazonaws_kms_KeyMetadata_KeyState_FromDafny(input interface{}) types.KeyState { + return func() types.KeyState { + var u types.KeyState + if input == nil { + return u + } + + inputEnum := input.(ComAmazonawsKmsTypes.KeyState) + index := -1 + for allEnums := dafny.Iterate(ComAmazonawsKmsTypes.CompanionStruct_KeyState_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(ComAmazonawsKmsTypes.KeyState).Equals(inputEnum) { + break + } + } + } + return u.Values()[index] + }() +} +func Com_amazonaws_kms_KeyMetadata_DeletionDate_FromDafny(input interface{}) *time.Time { + return func() *time.Time { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + if len(s) == 0 { + panic("timestamp string is empty") + } else { + t, err := time.Parse("2006-01-02T15:04:05.999999Z", s) + if err != nil { + panic(err) + } + return &t + } + }() +} +func Com_amazonaws_kms_KeyMetadata_ValidTo_FromDafny(input interface{}) *time.Time { + return func() *time.Time { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + if len(s) == 0 { + panic("timestamp string is empty") + } else { + t, err := time.Parse("2006-01-02T15:04:05.999999Z", s) + if err != nil { + panic(err) + } + return &t + } + }() +} +func Com_amazonaws_kms_KeyMetadata_Origin_FromDafny(input interface{}) types.OriginType { + return func() types.OriginType { + var u types.OriginType + if input == nil { + return u + } + + inputEnum := input.(ComAmazonawsKmsTypes.OriginType) + index := -1 + for allEnums := dafny.Iterate(ComAmazonawsKmsTypes.CompanionStruct_OriginType_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(ComAmazonawsKmsTypes.OriginType).Equals(inputEnum) { + break + } + } + } + return u.Values()[index] + }() +} +func Com_amazonaws_kms_KeyMetadata_CustomKeyStoreId_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_kms_KeyMetadata_CloudHsmClusterId_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_kms_KeyMetadata_ExpirationModel_FromDafny(input interface{}) types.ExpirationModelType { + return func() types.ExpirationModelType { + var u types.ExpirationModelType + if input == nil { + return u + } + + inputEnum := input.(ComAmazonawsKmsTypes.ExpirationModelType) + index := -1 + for allEnums := dafny.Iterate(ComAmazonawsKmsTypes.CompanionStruct_ExpirationModelType_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(ComAmazonawsKmsTypes.ExpirationModelType).Equals(inputEnum) { + break + } + } + } + return u.Values()[index] + }() +} +func Com_amazonaws_kms_KeyMetadata_KeyManager_FromDafny(input interface{}) types.KeyManagerType { + return func() types.KeyManagerType { + var u types.KeyManagerType + if input == nil { + return u + } + + inputEnum := input.(ComAmazonawsKmsTypes.KeyManagerType) + index := -1 + for allEnums := dafny.Iterate(ComAmazonawsKmsTypes.CompanionStruct_KeyManagerType_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(ComAmazonawsKmsTypes.KeyManagerType).Equals(inputEnum) { + break + } + } + } + return u.Values()[index] + }() +} +func Com_amazonaws_kms_KeyMetadata_CustomerMasterKeySpec_FromDafny(input interface{}) types.CustomerMasterKeySpec { + return func() types.CustomerMasterKeySpec { + var u types.CustomerMasterKeySpec + if input == nil { + return u + } + + inputEnum := input.(ComAmazonawsKmsTypes.CustomerMasterKeySpec) + index := -1 + for allEnums := dafny.Iterate(ComAmazonawsKmsTypes.CompanionStruct_CustomerMasterKeySpec_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(ComAmazonawsKmsTypes.CustomerMasterKeySpec).Equals(inputEnum) { + break + } + } + } + return u.Values()[index] + }() +} +func Com_amazonaws_kms_KeyMetadata_KeySpec_FromDafny(input interface{}) types.KeySpec { + return func() types.KeySpec { + var u types.KeySpec + if input == nil { + return u + } + + inputEnum := input.(ComAmazonawsKmsTypes.KeySpec) + index := -1 + for allEnums := dafny.Iterate(ComAmazonawsKmsTypes.CompanionStruct_KeySpec_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(ComAmazonawsKmsTypes.KeySpec).Equals(inputEnum) { + break + } + } + } + return u.Values()[index] + }() +} +func Com_amazonaws_kms_KeyMetadata_EncryptionAlgorithms_FromDafny(input interface{}) []types.EncryptionAlgorithmSpec { + return func() []types.EncryptionAlgorithmSpec { + var fieldValue []types.EncryptionAlgorithmSpec + if input == nil { + return nil + } + for i := dafny.Iterate(input.(dafny.Sequence).(dafny.Sequence)); ; { + val, ok := i() + if !ok { + break + } + fieldValue = append(fieldValue, Com_amazonaws_kms_EncryptionAlgorithmSpecList_member_FromDafny(val)) + } + return fieldValue + }() +} +func Com_amazonaws_kms_EncryptionAlgorithmSpecList_member_FromDafny(input interface{}) types.EncryptionAlgorithmSpec { + return func() types.EncryptionAlgorithmSpec { + var u types.EncryptionAlgorithmSpec + + inputEnum := input.(ComAmazonawsKmsTypes.EncryptionAlgorithmSpec) + index := -1 + for allEnums := dafny.Iterate(ComAmazonawsKmsTypes.CompanionStruct_EncryptionAlgorithmSpec_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(ComAmazonawsKmsTypes.EncryptionAlgorithmSpec).Equals(inputEnum) { + break + } + } + } + return u.Values()[index] + }() +} +func Com_amazonaws_kms_KeyMetadata_SigningAlgorithms_FromDafny(input interface{}) []types.SigningAlgorithmSpec { + return func() []types.SigningAlgorithmSpec { + var fieldValue []types.SigningAlgorithmSpec + if input == nil { + return nil + } + for i := dafny.Iterate(input.(dafny.Sequence).(dafny.Sequence)); ; { + val, ok := i() + if !ok { + break + } + fieldValue = append(fieldValue, Com_amazonaws_kms_SigningAlgorithmSpecList_member_FromDafny(val)) + } + return fieldValue + }() +} +func Com_amazonaws_kms_SigningAlgorithmSpecList_member_FromDafny(input interface{}) types.SigningAlgorithmSpec { + return func() types.SigningAlgorithmSpec { + var u types.SigningAlgorithmSpec + + inputEnum := input.(ComAmazonawsKmsTypes.SigningAlgorithmSpec) + index := -1 + for allEnums := dafny.Iterate(ComAmazonawsKmsTypes.CompanionStruct_SigningAlgorithmSpec_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(ComAmazonawsKmsTypes.SigningAlgorithmSpec).Equals(inputEnum) { + break + } + } + } + return u.Values()[index] + }() +} +func Com_amazonaws_kms_KeyMetadata_KeyAgreementAlgorithms_FromDafny(input interface{}) []types.KeyAgreementAlgorithmSpec { + return func() []types.KeyAgreementAlgorithmSpec { + var fieldValue []types.KeyAgreementAlgorithmSpec + if input == nil { + return nil + } + for i := dafny.Iterate(input.(dafny.Sequence).(dafny.Sequence)); ; { + val, ok := i() + if !ok { + break + } + fieldValue = append(fieldValue, Com_amazonaws_kms_KeyAgreementAlgorithmSpecList_member_FromDafny(val)) + } + return fieldValue + }() +} +func Com_amazonaws_kms_KeyAgreementAlgorithmSpecList_member_FromDafny(input interface{}) types.KeyAgreementAlgorithmSpec { + return func() types.KeyAgreementAlgorithmSpec { + var u types.KeyAgreementAlgorithmSpec + + inputEnum := input.(ComAmazonawsKmsTypes.KeyAgreementAlgorithmSpec) + index := -1 + for allEnums := dafny.Iterate(ComAmazonawsKmsTypes.CompanionStruct_KeyAgreementAlgorithmSpec_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(ComAmazonawsKmsTypes.KeyAgreementAlgorithmSpec).Equals(inputEnum) { + break + } + } + } + return u.Values()[index] + }() +} +func Com_amazonaws_kms_KeyMetadata_MultiRegion_FromDafny(input interface{}) *bool { + return func() *bool { + var b bool + if input == nil { + return nil + } + b = input.(bool) + return &b + }() +} +func Com_amazonaws_kms_KeyMetadata_MultiRegionConfiguration_FromDafny(input interface{}) *types.MultiRegionConfiguration { + return func() *types.MultiRegionConfiguration { + if input == nil { + return nil + } + return &types.MultiRegionConfiguration{ + MultiRegionKeyType: Com_amazonaws_kms_MultiRegionConfiguration_MultiRegionKeyType_FromDafny(input.(ComAmazonawsKmsTypes.MultiRegionConfiguration).Dtor_MultiRegionKeyType().UnwrapOr(nil)), + PrimaryKey: Com_amazonaws_kms_MultiRegionConfiguration_PrimaryKey_FromDafny(input.(ComAmazonawsKmsTypes.MultiRegionConfiguration).Dtor_PrimaryKey().UnwrapOr(nil)), + ReplicaKeys: Com_amazonaws_kms_MultiRegionConfiguration_ReplicaKeys_FromDafny(input.(ComAmazonawsKmsTypes.MultiRegionConfiguration).Dtor_ReplicaKeys().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_kms_MultiRegionConfiguration_MultiRegionKeyType_FromDafny(input interface{}) types.MultiRegionKeyType { + return func() types.MultiRegionKeyType { + var u types.MultiRegionKeyType + if input == nil { + return u + } + + inputEnum := input.(ComAmazonawsKmsTypes.MultiRegionKeyType) + index := -1 + for allEnums := dafny.Iterate(ComAmazonawsKmsTypes.CompanionStruct_MultiRegionKeyType_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(ComAmazonawsKmsTypes.MultiRegionKeyType).Equals(inputEnum) { + break + } + } + } + return u.Values()[index] + }() +} +func Com_amazonaws_kms_MultiRegionConfiguration_PrimaryKey_FromDafny(input interface{}) *types.MultiRegionKey { + return func() *types.MultiRegionKey { + if input == nil { + return nil + } + return &types.MultiRegionKey{ + Arn: Com_amazonaws_kms_MultiRegionKey_Arn_FromDafny(input.(ComAmazonawsKmsTypes.MultiRegionKey).Dtor_Arn().UnwrapOr(nil)), + Region: Com_amazonaws_kms_MultiRegionKey_Region_FromDafny(input.(ComAmazonawsKmsTypes.MultiRegionKey).Dtor_Region().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_kms_MultiRegionKey_Arn_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_kms_MultiRegionKey_Region_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_kms_MultiRegionConfiguration_ReplicaKeys_FromDafny(input interface{}) []types.MultiRegionKey { + return func() []types.MultiRegionKey { + var fieldValue []types.MultiRegionKey + if input == nil { + return nil + } + for i := dafny.Iterate(input.(dafny.Sequence).(dafny.Sequence)); ; { + val, ok := i() + if !ok { + break + } + fieldValue = append(fieldValue, Com_amazonaws_kms_MultiRegionKeyList_member_FromDafny(val)) + } + return fieldValue + }() +} +func Com_amazonaws_kms_MultiRegionKeyList_member_FromDafny(input interface{}) types.MultiRegionKey { + return func() types.MultiRegionKey { + + return types.MultiRegionKey{ + Arn: Com_amazonaws_kms_MultiRegionKey_Arn_FromDafny(input.(ComAmazonawsKmsTypes.MultiRegionKey).Dtor_Arn().UnwrapOr(nil)), + Region: Com_amazonaws_kms_MultiRegionKey_Region_FromDafny(input.(ComAmazonawsKmsTypes.MultiRegionKey).Dtor_Region().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_kms_KeyMetadata_PendingDeletionWindowInDays_FromDafny(input interface{}) *int32 { + return func() *int32 { + var i int32 + if input == nil { + return nil + } + i = input.(int32) + return &i + }() +} +func Com_amazonaws_kms_KeyMetadata_MacAlgorithms_FromDafny(input interface{}) []types.MacAlgorithmSpec { + return func() []types.MacAlgorithmSpec { + var fieldValue []types.MacAlgorithmSpec + if input == nil { + return nil + } + for i := dafny.Iterate(input.(dafny.Sequence).(dafny.Sequence)); ; { + val, ok := i() + if !ok { + break + } + fieldValue = append(fieldValue, Com_amazonaws_kms_MacAlgorithmSpecList_member_FromDafny(val)) + } + return fieldValue + }() +} +func Com_amazonaws_kms_MacAlgorithmSpecList_member_FromDafny(input interface{}) types.MacAlgorithmSpec { + return func() types.MacAlgorithmSpec { + var u types.MacAlgorithmSpec + + inputEnum := input.(ComAmazonawsKmsTypes.MacAlgorithmSpec) + index := -1 + for allEnums := dafny.Iterate(ComAmazonawsKmsTypes.CompanionStruct_MacAlgorithmSpec_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(ComAmazonawsKmsTypes.MacAlgorithmSpec).Equals(inputEnum) { + break + } + } + } + return u.Values()[index] + }() +} +func Com_amazonaws_kms_KeyMetadata_XksKeyConfiguration_FromDafny(input interface{}) *types.XksKeyConfigurationType { + return func() *types.XksKeyConfigurationType { + if input == nil { + return nil + } + return &types.XksKeyConfigurationType{ + Id: Com_amazonaws_kms_XksKeyConfigurationType_Id_FromDafny(input.(ComAmazonawsKmsTypes.XksKeyConfigurationType).Dtor_Id().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_kms_XksKeyConfigurationType_Id_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_kms_DecryptInput_CiphertextBlob_FromDafny(input interface{}) []byte { + return func() []byte { + b := []byte{} + if input == nil { + return nil + } + for i := dafny.Iterate(input); ; { + val, ok := i() + if !ok { + return b + } else { + b = append(b, val.(byte)) + } + } + }() +} +func Com_amazonaws_kms_DecryptInput_EncryptionContext_FromDafny(input interface{}) map[string]string { + return func() 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[Com_amazonaws_kms_EncryptionContextType_key_FromDafny((*val.(dafny.Tuple).IndexInt(0)))] = Com_amazonaws_kms_EncryptionContextType_value_FromDafny((*val.(dafny.Tuple).IndexInt(1))) + } + return m + }() +} +func Com_amazonaws_kms_DecryptInput_GrantTokens_FromDafny(input interface{}) []string { + return func() []string { + var fieldValue []string + if input == nil { + return nil + } + for i := dafny.Iterate(input.(dafny.Sequence).(dafny.Sequence)); ; { + val, ok := i() + if !ok { + break + } + fieldValue = append(fieldValue, Com_amazonaws_kms_GrantTokenList_member_FromDafny(val)) + } + return fieldValue + }() +} +func Com_amazonaws_kms_DecryptInput_KeyId_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_kms_DecryptInput_EncryptionAlgorithm_FromDafny(input interface{}) types.EncryptionAlgorithmSpec { + return func() types.EncryptionAlgorithmSpec { + var u types.EncryptionAlgorithmSpec + if input == nil { + return u + } + + inputEnum := input.(ComAmazonawsKmsTypes.EncryptionAlgorithmSpec) + index := -1 + for allEnums := dafny.Iterate(ComAmazonawsKmsTypes.CompanionStruct_EncryptionAlgorithmSpec_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(ComAmazonawsKmsTypes.EncryptionAlgorithmSpec).Equals(inputEnum) { + break + } + } + } + return u.Values()[index] + }() +} +func Com_amazonaws_kms_DecryptInput_Recipient_FromDafny(input interface{}) *types.RecipientInfo { + return func() *types.RecipientInfo { + if input == nil { + return nil + } + return &types.RecipientInfo{ + KeyEncryptionAlgorithm: Com_amazonaws_kms_RecipientInfo_KeyEncryptionAlgorithm_FromDafny(input.(ComAmazonawsKmsTypes.RecipientInfo).Dtor_KeyEncryptionAlgorithm().UnwrapOr(nil)), + AttestationDocument: Com_amazonaws_kms_RecipientInfo_AttestationDocument_FromDafny(input.(ComAmazonawsKmsTypes.RecipientInfo).Dtor_AttestationDocument().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_kms_RecipientInfo_KeyEncryptionAlgorithm_FromDafny(input interface{}) types.KeyEncryptionMechanism { + return func() types.KeyEncryptionMechanism { + var u types.KeyEncryptionMechanism + if input == nil { + return u + } + + inputEnum := input.(ComAmazonawsKmsTypes.KeyEncryptionMechanism) + index := -1 + for allEnums := dafny.Iterate(ComAmazonawsKmsTypes.CompanionStruct_KeyEncryptionMechanism_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(ComAmazonawsKmsTypes.KeyEncryptionMechanism).Equals(inputEnum) { + break + } + } + } + return u.Values()[index] + }() +} +func Com_amazonaws_kms_RecipientInfo_AttestationDocument_FromDafny(input interface{}) []byte { + return func() []byte { + b := []byte{} + if input == nil { + return nil + } + for i := dafny.Iterate(input.(dafny.Sequence)); ; { + val, ok := i() + if !ok { + return b + } else { + b = append(b, val.(byte)) + } + } + }() +} +func Com_amazonaws_kms_DecryptInput_DryRun_FromDafny(input interface{}) *bool { + return func() *bool { + var b bool + if input == nil { + return nil + } + b = input.(bool) + return &b + }() +} +func Com_amazonaws_kms_DecryptOutput_KeyId_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_kms_DecryptOutput_Plaintext_FromDafny(input interface{}) []byte { + return func() []byte { + b := []byte{} + if input == nil { + return nil + } + for i := dafny.Iterate(input.(dafny.Sequence)); ; { + val, ok := i() + if !ok { + return b + } else { + b = append(b, val.(byte)) + } + } + }() +} +func Com_amazonaws_kms_DecryptOutput_EncryptionAlgorithm_FromDafny(input interface{}) types.EncryptionAlgorithmSpec { + return func() types.EncryptionAlgorithmSpec { + var u types.EncryptionAlgorithmSpec + if input == nil { + return u + } + + inputEnum := input.(ComAmazonawsKmsTypes.EncryptionAlgorithmSpec) + index := -1 + for allEnums := dafny.Iterate(ComAmazonawsKmsTypes.CompanionStruct_EncryptionAlgorithmSpec_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(ComAmazonawsKmsTypes.EncryptionAlgorithmSpec).Equals(inputEnum) { + break + } + } + } + return u.Values()[index] + }() +} +func Com_amazonaws_kms_DecryptOutput_CiphertextForRecipient_FromDafny(input interface{}) []byte { + return func() []byte { + b := []byte{} + if input == nil { + return nil + } + for i := dafny.Iterate(input.(dafny.Sequence)); ; { + val, ok := i() + if !ok { + return b + } else { + b = append(b, val.(byte)) + } + } + }() +} +func Com_amazonaws_kms_DeleteAliasInput_AliasName_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 Com_amazonaws_kms_DeleteCustomKeyStoreInput_CustomKeyStoreId_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 Com_amazonaws_kms_DeleteImportedKeyMaterialInput_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 Com_amazonaws_kms_DeriveSharedSecretInput_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 Com_amazonaws_kms_DeriveSharedSecretInput_KeyAgreementAlgorithm_FromDafny(input interface{}) types.KeyAgreementAlgorithmSpec { + return func() types.KeyAgreementAlgorithmSpec { + var u types.KeyAgreementAlgorithmSpec + + inputEnum := input.(ComAmazonawsKmsTypes.KeyAgreementAlgorithmSpec) + index := -1 + for allEnums := dafny.Iterate(ComAmazonawsKmsTypes.CompanionStruct_KeyAgreementAlgorithmSpec_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(ComAmazonawsKmsTypes.KeyAgreementAlgorithmSpec).Equals(inputEnum) { + break + } + } + } + return u.Values()[index] + }() +} +func Com_amazonaws_kms_DeriveSharedSecretInput_PublicKey_FromDafny(input interface{}) []byte { + return func() []byte { + b := []byte{} + if input == nil { + return nil + } + for i := dafny.Iterate(input); ; { + val, ok := i() + if !ok { + return b + } else { + b = append(b, val.(byte)) + } + } + }() +} +func Com_amazonaws_kms_DeriveSharedSecretInput_GrantTokens_FromDafny(input interface{}) []string { + return func() []string { + var fieldValue []string + if input == nil { + return nil + } + for i := dafny.Iterate(input.(dafny.Sequence).(dafny.Sequence)); ; { + val, ok := i() + if !ok { + break + } + fieldValue = append(fieldValue, Com_amazonaws_kms_GrantTokenList_member_FromDafny(val)) + } + return fieldValue + }() +} +func Com_amazonaws_kms_DeriveSharedSecretInput_DryRun_FromDafny(input interface{}) *bool { + return func() *bool { + var b bool + if input == nil { + return nil + } + b = input.(bool) + return &b + }() +} +func Com_amazonaws_kms_DeriveSharedSecretInput_Recipient_FromDafny(input interface{}) *types.RecipientInfo { + return func() *types.RecipientInfo { + if input == nil { + return nil + } + return &types.RecipientInfo{ + KeyEncryptionAlgorithm: Com_amazonaws_kms_RecipientInfo_KeyEncryptionAlgorithm_FromDafny(input.(ComAmazonawsKmsTypes.RecipientInfo).Dtor_KeyEncryptionAlgorithm().UnwrapOr(nil)), + AttestationDocument: Com_amazonaws_kms_RecipientInfo_AttestationDocument_FromDafny(input.(ComAmazonawsKmsTypes.RecipientInfo).Dtor_AttestationDocument().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_kms_DeriveSharedSecretOutput_KeyId_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_kms_DeriveSharedSecretOutput_SharedSecret_FromDafny(input interface{}) []byte { + return func() []byte { + b := []byte{} + if input == nil { + return nil + } + for i := dafny.Iterate(input.(dafny.Sequence)); ; { + val, ok := i() + if !ok { + return b + } else { + b = append(b, val.(byte)) + } + } + }() +} +func Com_amazonaws_kms_DeriveSharedSecretOutput_CiphertextForRecipient_FromDafny(input interface{}) []byte { + return func() []byte { + b := []byte{} + if input == nil { + return nil + } + for i := dafny.Iterate(input.(dafny.Sequence)); ; { + val, ok := i() + if !ok { + return b + } else { + b = append(b, val.(byte)) + } + } + }() +} +func Com_amazonaws_kms_DeriveSharedSecretOutput_KeyAgreementAlgorithm_FromDafny(input interface{}) types.KeyAgreementAlgorithmSpec { + return func() types.KeyAgreementAlgorithmSpec { + var u types.KeyAgreementAlgorithmSpec + if input == nil { + return u + } + + inputEnum := input.(ComAmazonawsKmsTypes.KeyAgreementAlgorithmSpec) + index := -1 + for allEnums := dafny.Iterate(ComAmazonawsKmsTypes.CompanionStruct_KeyAgreementAlgorithmSpec_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(ComAmazonawsKmsTypes.KeyAgreementAlgorithmSpec).Equals(inputEnum) { + break + } + } + } + return u.Values()[index] + }() +} +func Com_amazonaws_kms_DeriveSharedSecretOutput_KeyOrigin_FromDafny(input interface{}) types.OriginType { + return func() types.OriginType { + var u types.OriginType + if input == nil { + return u + } + + inputEnum := input.(ComAmazonawsKmsTypes.OriginType) + index := -1 + for allEnums := dafny.Iterate(ComAmazonawsKmsTypes.CompanionStruct_OriginType_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(ComAmazonawsKmsTypes.OriginType).Equals(inputEnum) { + break + } + } + } + return u.Values()[index] + }() +} +func Com_amazonaws_kms_DescribeCustomKeyStoresInput_CustomKeyStoreId_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_kms_DescribeCustomKeyStoresInput_CustomKeyStoreName_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_kms_DescribeCustomKeyStoresInput_Limit_FromDafny(input interface{}) *int32 { + return func() *int32 { + var i int32 + if input == nil { + return nil + } + i = input.(int32) + return &i + }() +} +func Com_amazonaws_kms_DescribeCustomKeyStoresInput_Marker_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_kms_DescribeCustomKeyStoresOutput_CustomKeyStores_FromDafny(input interface{}) []types.CustomKeyStoresListEntry { + return func() []types.CustomKeyStoresListEntry { + var fieldValue []types.CustomKeyStoresListEntry + if input == nil { + return nil + } + for i := dafny.Iterate(input.(dafny.Sequence).(dafny.Sequence)); ; { + val, ok := i() + if !ok { + break + } + fieldValue = append(fieldValue, Com_amazonaws_kms_CustomKeyStoresList_member_FromDafny(val)) + } + return fieldValue + }() +} +func Com_amazonaws_kms_CustomKeyStoresList_member_FromDafny(input interface{}) types.CustomKeyStoresListEntry { + return func() types.CustomKeyStoresListEntry { + + return types.CustomKeyStoresListEntry{ + CustomKeyStoreId: Com_amazonaws_kms_CustomKeyStoresListEntry_CustomKeyStoreId_FromDafny(input.(ComAmazonawsKmsTypes.CustomKeyStoresListEntry).Dtor_CustomKeyStoreId().UnwrapOr(nil)), + CustomKeyStoreName: Com_amazonaws_kms_CustomKeyStoresListEntry_CustomKeyStoreName_FromDafny(input.(ComAmazonawsKmsTypes.CustomKeyStoresListEntry).Dtor_CustomKeyStoreName().UnwrapOr(nil)), + CloudHsmClusterId: Com_amazonaws_kms_CustomKeyStoresListEntry_CloudHsmClusterId_FromDafny(input.(ComAmazonawsKmsTypes.CustomKeyStoresListEntry).Dtor_CloudHsmClusterId().UnwrapOr(nil)), + TrustAnchorCertificate: Com_amazonaws_kms_CustomKeyStoresListEntry_TrustAnchorCertificate_FromDafny(input.(ComAmazonawsKmsTypes.CustomKeyStoresListEntry).Dtor_TrustAnchorCertificate().UnwrapOr(nil)), + ConnectionState: Com_amazonaws_kms_CustomKeyStoresListEntry_ConnectionState_FromDafny(input.(ComAmazonawsKmsTypes.CustomKeyStoresListEntry).Dtor_ConnectionState().UnwrapOr(nil)), + ConnectionErrorCode: Com_amazonaws_kms_CustomKeyStoresListEntry_ConnectionErrorCode_FromDafny(input.(ComAmazonawsKmsTypes.CustomKeyStoresListEntry).Dtor_ConnectionErrorCode().UnwrapOr(nil)), + CreationDate: Com_amazonaws_kms_CustomKeyStoresListEntry_CreationDate_FromDafny(input.(ComAmazonawsKmsTypes.CustomKeyStoresListEntry).Dtor_CreationDate().UnwrapOr(nil)), + CustomKeyStoreType: Com_amazonaws_kms_CustomKeyStoresListEntry_CustomKeyStoreType_FromDafny(input.(ComAmazonawsKmsTypes.CustomKeyStoresListEntry).Dtor_CustomKeyStoreType().UnwrapOr(nil)), + XksProxyConfiguration: Com_amazonaws_kms_CustomKeyStoresListEntry_XksProxyConfiguration_FromDafny(input.(ComAmazonawsKmsTypes.CustomKeyStoresListEntry).Dtor_XksProxyConfiguration().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_kms_CustomKeyStoresListEntry_CustomKeyStoreId_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_kms_CustomKeyStoresListEntry_CustomKeyStoreName_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_kms_CustomKeyStoresListEntry_CloudHsmClusterId_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_kms_CustomKeyStoresListEntry_TrustAnchorCertificate_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_kms_CustomKeyStoresListEntry_ConnectionState_FromDafny(input interface{}) types.ConnectionStateType { + return func() types.ConnectionStateType { + var u types.ConnectionStateType + if input == nil { + return u + } + + inputEnum := input.(ComAmazonawsKmsTypes.ConnectionStateType) + index := -1 + for allEnums := dafny.Iterate(ComAmazonawsKmsTypes.CompanionStruct_ConnectionStateType_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(ComAmazonawsKmsTypes.ConnectionStateType).Equals(inputEnum) { + break + } + } + } + return u.Values()[index] + }() +} +func Com_amazonaws_kms_CustomKeyStoresListEntry_ConnectionErrorCode_FromDafny(input interface{}) types.ConnectionErrorCodeType { + return func() types.ConnectionErrorCodeType { + var u types.ConnectionErrorCodeType + if input == nil { + return u + } + + inputEnum := input.(ComAmazonawsKmsTypes.ConnectionErrorCodeType) + index := -1 + for allEnums := dafny.Iterate(ComAmazonawsKmsTypes.CompanionStruct_ConnectionErrorCodeType_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(ComAmazonawsKmsTypes.ConnectionErrorCodeType).Equals(inputEnum) { + break + } + } + } + return u.Values()[index] + }() +} +func Com_amazonaws_kms_CustomKeyStoresListEntry_CreationDate_FromDafny(input interface{}) *time.Time { + return func() *time.Time { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + if len(s) == 0 { + panic("timestamp string is empty") + } else { + t, err := time.Parse("2006-01-02T15:04:05.999999Z", s) + if err != nil { + panic(err) + } + return &t + } + }() +} +func Com_amazonaws_kms_CustomKeyStoresListEntry_CustomKeyStoreType_FromDafny(input interface{}) types.CustomKeyStoreType { + return func() types.CustomKeyStoreType { + var u types.CustomKeyStoreType + if input == nil { + return u + } + + inputEnum := input.(ComAmazonawsKmsTypes.CustomKeyStoreType) + index := -1 + for allEnums := dafny.Iterate(ComAmazonawsKmsTypes.CompanionStruct_CustomKeyStoreType_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(ComAmazonawsKmsTypes.CustomKeyStoreType).Equals(inputEnum) { + break + } + } + } + return u.Values()[index] + }() +} +func Com_amazonaws_kms_CustomKeyStoresListEntry_XksProxyConfiguration_FromDafny(input interface{}) *types.XksProxyConfigurationType { + return func() *types.XksProxyConfigurationType { + if input == nil { + return nil + } + return &types.XksProxyConfigurationType{ + Connectivity: Com_amazonaws_kms_XksProxyConfigurationType_Connectivity_FromDafny(input.(ComAmazonawsKmsTypes.XksProxyConfigurationType).Dtor_Connectivity().UnwrapOr(nil)), + AccessKeyId: Com_amazonaws_kms_XksProxyConfigurationType_AccessKeyId_FromDafny(input.(ComAmazonawsKmsTypes.XksProxyConfigurationType).Dtor_AccessKeyId().UnwrapOr(nil)), + UriEndpoint: Com_amazonaws_kms_XksProxyConfigurationType_UriEndpoint_FromDafny(input.(ComAmazonawsKmsTypes.XksProxyConfigurationType).Dtor_UriEndpoint().UnwrapOr(nil)), + UriPath: Com_amazonaws_kms_XksProxyConfigurationType_UriPath_FromDafny(input.(ComAmazonawsKmsTypes.XksProxyConfigurationType).Dtor_UriPath().UnwrapOr(nil)), + VpcEndpointServiceName: Com_amazonaws_kms_XksProxyConfigurationType_VpcEndpointServiceName_FromDafny(input.(ComAmazonawsKmsTypes.XksProxyConfigurationType).Dtor_VpcEndpointServiceName().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_kms_XksProxyConfigurationType_Connectivity_FromDafny(input interface{}) types.XksProxyConnectivityType { + return func() types.XksProxyConnectivityType { + var u types.XksProxyConnectivityType + if input == nil { + return u + } + + inputEnum := input.(ComAmazonawsKmsTypes.XksProxyConnectivityType) + index := -1 + for allEnums := dafny.Iterate(ComAmazonawsKmsTypes.CompanionStruct_XksProxyConnectivityType_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(ComAmazonawsKmsTypes.XksProxyConnectivityType).Equals(inputEnum) { + break + } + } + } + return u.Values()[index] + }() +} +func Com_amazonaws_kms_XksProxyConfigurationType_AccessKeyId_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_kms_XksProxyConfigurationType_UriEndpoint_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_kms_XksProxyConfigurationType_UriPath_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_kms_XksProxyConfigurationType_VpcEndpointServiceName_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_kms_DescribeCustomKeyStoresOutput_NextMarker_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_kms_DescribeCustomKeyStoresOutput_Truncated_FromDafny(input interface{}) bool { + return func() bool { + var b bool + if input == nil { + return b + } + b = input.(bool) + return b + }() +} +func Com_amazonaws_kms_DescribeKeyInput_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 Com_amazonaws_kms_DescribeKeyInput_GrantTokens_FromDafny(input interface{}) []string { + return func() []string { + var fieldValue []string + if input == nil { + return nil + } + for i := dafny.Iterate(input.(dafny.Sequence).(dafny.Sequence)); ; { + val, ok := i() + if !ok { + break + } + fieldValue = append(fieldValue, Com_amazonaws_kms_GrantTokenList_member_FromDafny(val)) + } + return fieldValue + }() +} +func Com_amazonaws_kms_DescribeKeyOutput_KeyMetadata_FromDafny(input interface{}) *types.KeyMetadata { + return func() *types.KeyMetadata { + if input == nil { + return nil + } + return &types.KeyMetadata{ + AWSAccountId: Com_amazonaws_kms_KeyMetadata_AWSAccountId_FromDafny(input.(ComAmazonawsKmsTypes.KeyMetadata).Dtor_AWSAccountId().UnwrapOr(nil)), + KeyId: Com_amazonaws_kms_KeyMetadata_KeyId_FromDafny(input.(ComAmazonawsKmsTypes.KeyMetadata).Dtor_KeyId()), + Arn: Com_amazonaws_kms_KeyMetadata_Arn_FromDafny(input.(ComAmazonawsKmsTypes.KeyMetadata).Dtor_Arn().UnwrapOr(nil)), + CreationDate: Com_amazonaws_kms_KeyMetadata_CreationDate_FromDafny(input.(ComAmazonawsKmsTypes.KeyMetadata).Dtor_CreationDate().UnwrapOr(nil)), + Enabled: Com_amazonaws_kms_KeyMetadata_Enabled_FromDafny(input.(ComAmazonawsKmsTypes.KeyMetadata).Dtor_Enabled().UnwrapOr(nil)), + Description: Com_amazonaws_kms_KeyMetadata_Description_FromDafny(input.(ComAmazonawsKmsTypes.KeyMetadata).Dtor_Description().UnwrapOr(nil)), + KeyUsage: Com_amazonaws_kms_KeyMetadata_KeyUsage_FromDafny(input.(ComAmazonawsKmsTypes.KeyMetadata).Dtor_KeyUsage().UnwrapOr(nil)), + KeyState: Com_amazonaws_kms_KeyMetadata_KeyState_FromDafny(input.(ComAmazonawsKmsTypes.KeyMetadata).Dtor_KeyState().UnwrapOr(nil)), + DeletionDate: Com_amazonaws_kms_KeyMetadata_DeletionDate_FromDafny(input.(ComAmazonawsKmsTypes.KeyMetadata).Dtor_DeletionDate().UnwrapOr(nil)), + ValidTo: Com_amazonaws_kms_KeyMetadata_ValidTo_FromDafny(input.(ComAmazonawsKmsTypes.KeyMetadata).Dtor_ValidTo().UnwrapOr(nil)), + Origin: Com_amazonaws_kms_KeyMetadata_Origin_FromDafny(input.(ComAmazonawsKmsTypes.KeyMetadata).Dtor_Origin().UnwrapOr(nil)), + CustomKeyStoreId: Com_amazonaws_kms_KeyMetadata_CustomKeyStoreId_FromDafny(input.(ComAmazonawsKmsTypes.KeyMetadata).Dtor_CustomKeyStoreId().UnwrapOr(nil)), + CloudHsmClusterId: Com_amazonaws_kms_KeyMetadata_CloudHsmClusterId_FromDafny(input.(ComAmazonawsKmsTypes.KeyMetadata).Dtor_CloudHsmClusterId().UnwrapOr(nil)), + ExpirationModel: Com_amazonaws_kms_KeyMetadata_ExpirationModel_FromDafny(input.(ComAmazonawsKmsTypes.KeyMetadata).Dtor_ExpirationModel().UnwrapOr(nil)), + KeyManager: Com_amazonaws_kms_KeyMetadata_KeyManager_FromDafny(input.(ComAmazonawsKmsTypes.KeyMetadata).Dtor_KeyManager().UnwrapOr(nil)), + CustomerMasterKeySpec: Com_amazonaws_kms_KeyMetadata_CustomerMasterKeySpec_FromDafny(input.(ComAmazonawsKmsTypes.KeyMetadata).Dtor_CustomerMasterKeySpec().UnwrapOr(nil)), + KeySpec: Com_amazonaws_kms_KeyMetadata_KeySpec_FromDafny(input.(ComAmazonawsKmsTypes.KeyMetadata).Dtor_KeySpec().UnwrapOr(nil)), + EncryptionAlgorithms: Com_amazonaws_kms_KeyMetadata_EncryptionAlgorithms_FromDafny(input.(ComAmazonawsKmsTypes.KeyMetadata).Dtor_EncryptionAlgorithms().UnwrapOr(nil)), + SigningAlgorithms: Com_amazonaws_kms_KeyMetadata_SigningAlgorithms_FromDafny(input.(ComAmazonawsKmsTypes.KeyMetadata).Dtor_SigningAlgorithms().UnwrapOr(nil)), + KeyAgreementAlgorithms: Com_amazonaws_kms_KeyMetadata_KeyAgreementAlgorithms_FromDafny(input.(ComAmazonawsKmsTypes.KeyMetadata).Dtor_KeyAgreementAlgorithms().UnwrapOr(nil)), + MultiRegion: Com_amazonaws_kms_KeyMetadata_MultiRegion_FromDafny(input.(ComAmazonawsKmsTypes.KeyMetadata).Dtor_MultiRegion().UnwrapOr(nil)), + MultiRegionConfiguration: Com_amazonaws_kms_KeyMetadata_MultiRegionConfiguration_FromDafny(input.(ComAmazonawsKmsTypes.KeyMetadata).Dtor_MultiRegionConfiguration().UnwrapOr(nil)), + PendingDeletionWindowInDays: Com_amazonaws_kms_KeyMetadata_PendingDeletionWindowInDays_FromDafny(input.(ComAmazonawsKmsTypes.KeyMetadata).Dtor_PendingDeletionWindowInDays().UnwrapOr(nil)), + MacAlgorithms: Com_amazonaws_kms_KeyMetadata_MacAlgorithms_FromDafny(input.(ComAmazonawsKmsTypes.KeyMetadata).Dtor_MacAlgorithms().UnwrapOr(nil)), + XksKeyConfiguration: Com_amazonaws_kms_KeyMetadata_XksKeyConfiguration_FromDafny(input.(ComAmazonawsKmsTypes.KeyMetadata).Dtor_XksKeyConfiguration().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_kms_DisableKeyInput_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 Com_amazonaws_kms_DisableKeyRotationInput_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 Com_amazonaws_kms_DisconnectCustomKeyStoreInput_CustomKeyStoreId_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 Com_amazonaws_kms_EnableKeyInput_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 Com_amazonaws_kms_EnableKeyRotationInput_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 Com_amazonaws_kms_EnableKeyRotationInput_RotationPeriodInDays_FromDafny(input interface{}) *int32 { + return func() *int32 { + var i int32 + if input == nil { + return nil + } + i = input.(int32) + return &i + }() +} +func Com_amazonaws_kms_EncryptInput_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 Com_amazonaws_kms_EncryptInput_Plaintext_FromDafny(input interface{}) []byte { + return func() []byte { + b := []byte{} + if input == nil { + return nil + } + for i := dafny.Iterate(input); ; { + val, ok := i() + if !ok { + return b + } else { + b = append(b, val.(byte)) + } + } + }() +} +func Com_amazonaws_kms_EncryptInput_EncryptionContext_FromDafny(input interface{}) map[string]string { + return func() 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[Com_amazonaws_kms_EncryptionContextType_key_FromDafny((*val.(dafny.Tuple).IndexInt(0)))] = Com_amazonaws_kms_EncryptionContextType_value_FromDafny((*val.(dafny.Tuple).IndexInt(1))) + } + return m + }() +} +func Com_amazonaws_kms_EncryptInput_GrantTokens_FromDafny(input interface{}) []string { + return func() []string { + var fieldValue []string + if input == nil { + return nil + } + for i := dafny.Iterate(input.(dafny.Sequence).(dafny.Sequence)); ; { + val, ok := i() + if !ok { + break + } + fieldValue = append(fieldValue, Com_amazonaws_kms_GrantTokenList_member_FromDafny(val)) + } + return fieldValue + }() +} +func Com_amazonaws_kms_EncryptInput_EncryptionAlgorithm_FromDafny(input interface{}) types.EncryptionAlgorithmSpec { + return func() types.EncryptionAlgorithmSpec { + var u types.EncryptionAlgorithmSpec + if input == nil { + return u + } + + inputEnum := input.(ComAmazonawsKmsTypes.EncryptionAlgorithmSpec) + index := -1 + for allEnums := dafny.Iterate(ComAmazonawsKmsTypes.CompanionStruct_EncryptionAlgorithmSpec_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(ComAmazonawsKmsTypes.EncryptionAlgorithmSpec).Equals(inputEnum) { + break + } + } + } + return u.Values()[index] + }() +} +func Com_amazonaws_kms_EncryptInput_DryRun_FromDafny(input interface{}) *bool { + return func() *bool { + var b bool + if input == nil { + return nil + } + b = input.(bool) + return &b + }() +} +func Com_amazonaws_kms_EncryptOutput_CiphertextBlob_FromDafny(input interface{}) []byte { + return func() []byte { + b := []byte{} + if input == nil { + return nil + } + for i := dafny.Iterate(input.(dafny.Sequence)); ; { + val, ok := i() + if !ok { + return b + } else { + b = append(b, val.(byte)) + } + } + }() +} +func Com_amazonaws_kms_EncryptOutput_KeyId_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_kms_EncryptOutput_EncryptionAlgorithm_FromDafny(input interface{}) types.EncryptionAlgorithmSpec { + return func() types.EncryptionAlgorithmSpec { + var u types.EncryptionAlgorithmSpec + if input == nil { + return u + } + + inputEnum := input.(ComAmazonawsKmsTypes.EncryptionAlgorithmSpec) + index := -1 + for allEnums := dafny.Iterate(ComAmazonawsKmsTypes.CompanionStruct_EncryptionAlgorithmSpec_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(ComAmazonawsKmsTypes.EncryptionAlgorithmSpec).Equals(inputEnum) { + break + } + } + } + return u.Values()[index] + }() +} +func Com_amazonaws_kms_GenerateDataKeyInput_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 Com_amazonaws_kms_GenerateDataKeyInput_EncryptionContext_FromDafny(input interface{}) map[string]string { + return func() 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[Com_amazonaws_kms_EncryptionContextType_key_FromDafny((*val.(dafny.Tuple).IndexInt(0)))] = Com_amazonaws_kms_EncryptionContextType_value_FromDafny((*val.(dafny.Tuple).IndexInt(1))) + } + return m + }() +} +func Com_amazonaws_kms_GenerateDataKeyInput_NumberOfBytes_FromDafny(input interface{}) *int32 { + return func() *int32 { + var i int32 + if input == nil { + return nil + } + i = input.(int32) + return &i + }() +} +func Com_amazonaws_kms_GenerateDataKeyInput_KeySpec_FromDafny(input interface{}) types.DataKeySpec { + return func() types.DataKeySpec { + var u types.DataKeySpec + if input == nil { + return u + } + + inputEnum := input.(ComAmazonawsKmsTypes.DataKeySpec) + index := -1 + for allEnums := dafny.Iterate(ComAmazonawsKmsTypes.CompanionStruct_DataKeySpec_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(ComAmazonawsKmsTypes.DataKeySpec).Equals(inputEnum) { + break + } + } + } + return u.Values()[index] + }() +} +func Com_amazonaws_kms_GenerateDataKeyInput_GrantTokens_FromDafny(input interface{}) []string { + return func() []string { + var fieldValue []string + if input == nil { + return nil + } + for i := dafny.Iterate(input.(dafny.Sequence).(dafny.Sequence)); ; { + val, ok := i() + if !ok { + break + } + fieldValue = append(fieldValue, Com_amazonaws_kms_GrantTokenList_member_FromDafny(val)) + } + return fieldValue + }() +} +func Com_amazonaws_kms_GenerateDataKeyInput_Recipient_FromDafny(input interface{}) *types.RecipientInfo { + return func() *types.RecipientInfo { + if input == nil { + return nil + } + return &types.RecipientInfo{ + KeyEncryptionAlgorithm: Com_amazonaws_kms_RecipientInfo_KeyEncryptionAlgorithm_FromDafny(input.(ComAmazonawsKmsTypes.RecipientInfo).Dtor_KeyEncryptionAlgorithm().UnwrapOr(nil)), + AttestationDocument: Com_amazonaws_kms_RecipientInfo_AttestationDocument_FromDafny(input.(ComAmazonawsKmsTypes.RecipientInfo).Dtor_AttestationDocument().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_kms_GenerateDataKeyInput_DryRun_FromDafny(input interface{}) *bool { + return func() *bool { + var b bool + if input == nil { + return nil + } + b = input.(bool) + return &b + }() +} +func Com_amazonaws_kms_GenerateDataKeyOutput_CiphertextBlob_FromDafny(input interface{}) []byte { + return func() []byte { + b := []byte{} + if input == nil { + return nil + } + for i := dafny.Iterate(input.(dafny.Sequence)); ; { + val, ok := i() + if !ok { + return b + } else { + b = append(b, val.(byte)) + } + } + }() +} +func Com_amazonaws_kms_GenerateDataKeyOutput_Plaintext_FromDafny(input interface{}) []byte { + return func() []byte { + b := []byte{} + if input == nil { + return nil + } + for i := dafny.Iterate(input.(dafny.Sequence)); ; { + val, ok := i() + if !ok { + return b + } else { + b = append(b, val.(byte)) + } + } + }() +} +func Com_amazonaws_kms_GenerateDataKeyOutput_KeyId_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_kms_GenerateDataKeyOutput_CiphertextForRecipient_FromDafny(input interface{}) []byte { + return func() []byte { + b := []byte{} + if input == nil { + return nil + } + for i := dafny.Iterate(input.(dafny.Sequence)); ; { + val, ok := i() + if !ok { + return b + } else { + b = append(b, val.(byte)) + } + } + }() +} +func Com_amazonaws_kms_GenerateDataKeyPairInput_EncryptionContext_FromDafny(input interface{}) map[string]string { + return func() 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[Com_amazonaws_kms_EncryptionContextType_key_FromDafny((*val.(dafny.Tuple).IndexInt(0)))] = Com_amazonaws_kms_EncryptionContextType_value_FromDafny((*val.(dafny.Tuple).IndexInt(1))) + } + return m + }() +} +func Com_amazonaws_kms_GenerateDataKeyPairInput_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 Com_amazonaws_kms_GenerateDataKeyPairInput_KeyPairSpec_FromDafny(input interface{}) types.DataKeyPairSpec { + return func() types.DataKeyPairSpec { + var u types.DataKeyPairSpec + + inputEnum := input.(ComAmazonawsKmsTypes.DataKeyPairSpec) + index := -1 + for allEnums := dafny.Iterate(ComAmazonawsKmsTypes.CompanionStruct_DataKeyPairSpec_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(ComAmazonawsKmsTypes.DataKeyPairSpec).Equals(inputEnum) { + break + } + } + } + return u.Values()[index] + }() +} +func Com_amazonaws_kms_GenerateDataKeyPairInput_GrantTokens_FromDafny(input interface{}) []string { + return func() []string { + var fieldValue []string + if input == nil { + return nil + } + for i := dafny.Iterate(input.(dafny.Sequence).(dafny.Sequence)); ; { + val, ok := i() + if !ok { + break + } + fieldValue = append(fieldValue, Com_amazonaws_kms_GrantTokenList_member_FromDafny(val)) + } + return fieldValue + }() +} +func Com_amazonaws_kms_GenerateDataKeyPairInput_Recipient_FromDafny(input interface{}) *types.RecipientInfo { + return func() *types.RecipientInfo { + if input == nil { + return nil + } + return &types.RecipientInfo{ + KeyEncryptionAlgorithm: Com_amazonaws_kms_RecipientInfo_KeyEncryptionAlgorithm_FromDafny(input.(ComAmazonawsKmsTypes.RecipientInfo).Dtor_KeyEncryptionAlgorithm().UnwrapOr(nil)), + AttestationDocument: Com_amazonaws_kms_RecipientInfo_AttestationDocument_FromDafny(input.(ComAmazonawsKmsTypes.RecipientInfo).Dtor_AttestationDocument().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_kms_GenerateDataKeyPairInput_DryRun_FromDafny(input interface{}) *bool { + return func() *bool { + var b bool + if input == nil { + return nil + } + b = input.(bool) + return &b + }() +} +func Com_amazonaws_kms_GenerateDataKeyPairOutput_PrivateKeyCiphertextBlob_FromDafny(input interface{}) []byte { + return func() []byte { + b := []byte{} + if input == nil { + return nil + } + for i := dafny.Iterate(input.(dafny.Sequence)); ; { + val, ok := i() + if !ok { + return b + } else { + b = append(b, val.(byte)) + } + } + }() +} +func Com_amazonaws_kms_GenerateDataKeyPairOutput_PrivateKeyPlaintext_FromDafny(input interface{}) []byte { + return func() []byte { + b := []byte{} + if input == nil { + return nil + } + for i := dafny.Iterate(input.(dafny.Sequence)); ; { + val, ok := i() + if !ok { + return b + } else { + b = append(b, val.(byte)) + } + } + }() +} +func Com_amazonaws_kms_GenerateDataKeyPairOutput_PublicKey_FromDafny(input interface{}) []byte { + return func() []byte { + b := []byte{} + if input == nil { + return nil + } + for i := dafny.Iterate(input.(dafny.Sequence)); ; { + val, ok := i() + if !ok { + return b + } else { + b = append(b, val.(byte)) + } + } + }() +} +func Com_amazonaws_kms_GenerateDataKeyPairOutput_KeyId_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_kms_GenerateDataKeyPairOutput_KeyPairSpec_FromDafny(input interface{}) types.DataKeyPairSpec { + return func() types.DataKeyPairSpec { + var u types.DataKeyPairSpec + if input == nil { + return u + } + + inputEnum := input.(ComAmazonawsKmsTypes.DataKeyPairSpec) + index := -1 + for allEnums := dafny.Iterate(ComAmazonawsKmsTypes.CompanionStruct_DataKeyPairSpec_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(ComAmazonawsKmsTypes.DataKeyPairSpec).Equals(inputEnum) { + break + } + } + } + return u.Values()[index] + }() +} +func Com_amazonaws_kms_GenerateDataKeyPairOutput_CiphertextForRecipient_FromDafny(input interface{}) []byte { + return func() []byte { + b := []byte{} + if input == nil { + return nil + } + for i := dafny.Iterate(input.(dafny.Sequence)); ; { + val, ok := i() + if !ok { + return b + } else { + b = append(b, val.(byte)) + } + } + }() +} +func Com_amazonaws_kms_GenerateDataKeyPairWithoutPlaintextInput_EncryptionContext_FromDafny(input interface{}) map[string]string { + return func() 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[Com_amazonaws_kms_EncryptionContextType_key_FromDafny((*val.(dafny.Tuple).IndexInt(0)))] = Com_amazonaws_kms_EncryptionContextType_value_FromDafny((*val.(dafny.Tuple).IndexInt(1))) + } + return m + }() +} +func Com_amazonaws_kms_GenerateDataKeyPairWithoutPlaintextInput_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 Com_amazonaws_kms_GenerateDataKeyPairWithoutPlaintextInput_KeyPairSpec_FromDafny(input interface{}) types.DataKeyPairSpec { + return func() types.DataKeyPairSpec { + var u types.DataKeyPairSpec + + inputEnum := input.(ComAmazonawsKmsTypes.DataKeyPairSpec) + index := -1 + for allEnums := dafny.Iterate(ComAmazonawsKmsTypes.CompanionStruct_DataKeyPairSpec_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(ComAmazonawsKmsTypes.DataKeyPairSpec).Equals(inputEnum) { + break + } + } + } + return u.Values()[index] + }() +} +func Com_amazonaws_kms_GenerateDataKeyPairWithoutPlaintextInput_GrantTokens_FromDafny(input interface{}) []string { + return func() []string { + var fieldValue []string + if input == nil { + return nil + } + for i := dafny.Iterate(input.(dafny.Sequence).(dafny.Sequence)); ; { + val, ok := i() + if !ok { + break + } + fieldValue = append(fieldValue, Com_amazonaws_kms_GrantTokenList_member_FromDafny(val)) + } + return fieldValue + }() +} +func Com_amazonaws_kms_GenerateDataKeyPairWithoutPlaintextInput_DryRun_FromDafny(input interface{}) *bool { + return func() *bool { + var b bool + if input == nil { + return nil + } + b = input.(bool) + return &b + }() +} +func Com_amazonaws_kms_GenerateDataKeyPairWithoutPlaintextOutput_PrivateKeyCiphertextBlob_FromDafny(input interface{}) []byte { + return func() []byte { + b := []byte{} + if input == nil { + return nil + } + for i := dafny.Iterate(input.(dafny.Sequence)); ; { + val, ok := i() + if !ok { + return b + } else { + b = append(b, val.(byte)) + } + } + }() +} +func Com_amazonaws_kms_GenerateDataKeyPairWithoutPlaintextOutput_PublicKey_FromDafny(input interface{}) []byte { + return func() []byte { + b := []byte{} + if input == nil { + return nil + } + for i := dafny.Iterate(input.(dafny.Sequence)); ; { + val, ok := i() + if !ok { + return b + } else { + b = append(b, val.(byte)) + } + } + }() +} +func Com_amazonaws_kms_GenerateDataKeyPairWithoutPlaintextOutput_KeyId_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_kms_GenerateDataKeyPairWithoutPlaintextOutput_KeyPairSpec_FromDafny(input interface{}) types.DataKeyPairSpec { + return func() types.DataKeyPairSpec { + var u types.DataKeyPairSpec + if input == nil { + return u + } + + inputEnum := input.(ComAmazonawsKmsTypes.DataKeyPairSpec) + index := -1 + for allEnums := dafny.Iterate(ComAmazonawsKmsTypes.CompanionStruct_DataKeyPairSpec_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(ComAmazonawsKmsTypes.DataKeyPairSpec).Equals(inputEnum) { + break + } + } + } + return u.Values()[index] + }() +} +func Com_amazonaws_kms_GenerateDataKeyWithoutPlaintextInput_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 Com_amazonaws_kms_GenerateDataKeyWithoutPlaintextInput_EncryptionContext_FromDafny(input interface{}) map[string]string { + return func() 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[Com_amazonaws_kms_EncryptionContextType_key_FromDafny((*val.(dafny.Tuple).IndexInt(0)))] = Com_amazonaws_kms_EncryptionContextType_value_FromDafny((*val.(dafny.Tuple).IndexInt(1))) + } + return m + }() +} +func Com_amazonaws_kms_GenerateDataKeyWithoutPlaintextInput_KeySpec_FromDafny(input interface{}) types.DataKeySpec { + return func() types.DataKeySpec { + var u types.DataKeySpec + if input == nil { + return u + } + + inputEnum := input.(ComAmazonawsKmsTypes.DataKeySpec) + index := -1 + for allEnums := dafny.Iterate(ComAmazonawsKmsTypes.CompanionStruct_DataKeySpec_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(ComAmazonawsKmsTypes.DataKeySpec).Equals(inputEnum) { + break + } + } + } + return u.Values()[index] + }() +} +func Com_amazonaws_kms_GenerateDataKeyWithoutPlaintextInput_NumberOfBytes_FromDafny(input interface{}) *int32 { + return func() *int32 { + var i int32 + if input == nil { + return nil + } + i = input.(int32) + return &i + }() +} +func Com_amazonaws_kms_GenerateDataKeyWithoutPlaintextInput_GrantTokens_FromDafny(input interface{}) []string { + return func() []string { + var fieldValue []string + if input == nil { + return nil + } + for i := dafny.Iterate(input.(dafny.Sequence).(dafny.Sequence)); ; { + val, ok := i() + if !ok { + break + } + fieldValue = append(fieldValue, Com_amazonaws_kms_GrantTokenList_member_FromDafny(val)) + } + return fieldValue + }() +} +func Com_amazonaws_kms_GenerateDataKeyWithoutPlaintextInput_DryRun_FromDafny(input interface{}) *bool { + return func() *bool { + var b bool + if input == nil { + return nil + } + b = input.(bool) + return &b + }() +} +func Com_amazonaws_kms_GenerateDataKeyWithoutPlaintextOutput_CiphertextBlob_FromDafny(input interface{}) []byte { + return func() []byte { + b := []byte{} + if input == nil { + return nil + } + for i := dafny.Iterate(input.(dafny.Sequence)); ; { + val, ok := i() + if !ok { + return b + } else { + b = append(b, val.(byte)) + } + } + }() +} +func Com_amazonaws_kms_GenerateDataKeyWithoutPlaintextOutput_KeyId_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_kms_GenerateMacInput_Message_FromDafny(input interface{}) []byte { + return func() []byte { + b := []byte{} + if input == nil { + return nil + } + for i := dafny.Iterate(input); ; { + val, ok := i() + if !ok { + return b + } else { + b = append(b, val.(byte)) + } + } + }() +} +func Com_amazonaws_kms_GenerateMacInput_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 Com_amazonaws_kms_GenerateMacInput_MacAlgorithm_FromDafny(input interface{}) types.MacAlgorithmSpec { + return func() types.MacAlgorithmSpec { + var u types.MacAlgorithmSpec + + inputEnum := input.(ComAmazonawsKmsTypes.MacAlgorithmSpec) + index := -1 + for allEnums := dafny.Iterate(ComAmazonawsKmsTypes.CompanionStruct_MacAlgorithmSpec_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(ComAmazonawsKmsTypes.MacAlgorithmSpec).Equals(inputEnum) { + break + } + } + } + return u.Values()[index] + }() +} +func Com_amazonaws_kms_GenerateMacInput_GrantTokens_FromDafny(input interface{}) []string { + return func() []string { + var fieldValue []string + if input == nil { + return nil + } + for i := dafny.Iterate(input.(dafny.Sequence).(dafny.Sequence)); ; { + val, ok := i() + if !ok { + break + } + fieldValue = append(fieldValue, Com_amazonaws_kms_GrantTokenList_member_FromDafny(val)) + } + return fieldValue + }() +} +func Com_amazonaws_kms_GenerateMacInput_DryRun_FromDafny(input interface{}) *bool { + return func() *bool { + var b bool + if input == nil { + return nil + } + b = input.(bool) + return &b + }() +} +func Com_amazonaws_kms_GenerateMacOutput_Mac_FromDafny(input interface{}) []byte { + return func() []byte { + b := []byte{} + if input == nil { + return nil + } + for i := dafny.Iterate(input.(dafny.Sequence)); ; { + val, ok := i() + if !ok { + return b + } else { + b = append(b, val.(byte)) + } + } + }() +} +func Com_amazonaws_kms_GenerateMacOutput_MacAlgorithm_FromDafny(input interface{}) types.MacAlgorithmSpec { + return func() types.MacAlgorithmSpec { + var u types.MacAlgorithmSpec + if input == nil { + return u + } + + inputEnum := input.(ComAmazonawsKmsTypes.MacAlgorithmSpec) + index := -1 + for allEnums := dafny.Iterate(ComAmazonawsKmsTypes.CompanionStruct_MacAlgorithmSpec_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(ComAmazonawsKmsTypes.MacAlgorithmSpec).Equals(inputEnum) { + break + } + } + } + return u.Values()[index] + }() +} +func Com_amazonaws_kms_GenerateMacOutput_KeyId_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_kms_GenerateRandomInput_NumberOfBytes_FromDafny(input interface{}) *int32 { + return func() *int32 { + var i int32 + if input == nil { + return nil + } + i = input.(int32) + return &i + }() +} +func Com_amazonaws_kms_GenerateRandomInput_CustomKeyStoreId_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_kms_GenerateRandomInput_Recipient_FromDafny(input interface{}) *types.RecipientInfo { + return func() *types.RecipientInfo { + if input == nil { + return nil + } + return &types.RecipientInfo{ + KeyEncryptionAlgorithm: Com_amazonaws_kms_RecipientInfo_KeyEncryptionAlgorithm_FromDafny(input.(ComAmazonawsKmsTypes.RecipientInfo).Dtor_KeyEncryptionAlgorithm().UnwrapOr(nil)), + AttestationDocument: Com_amazonaws_kms_RecipientInfo_AttestationDocument_FromDafny(input.(ComAmazonawsKmsTypes.RecipientInfo).Dtor_AttestationDocument().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_kms_GenerateRandomOutput_Plaintext_FromDafny(input interface{}) []byte { + return func() []byte { + b := []byte{} + if input == nil { + return nil + } + for i := dafny.Iterate(input.(dafny.Sequence)); ; { + val, ok := i() + if !ok { + return b + } else { + b = append(b, val.(byte)) + } + } + }() +} +func Com_amazonaws_kms_GenerateRandomOutput_CiphertextForRecipient_FromDafny(input interface{}) []byte { + return func() []byte { + b := []byte{} + if input == nil { + return nil + } + for i := dafny.Iterate(input.(dafny.Sequence)); ; { + val, ok := i() + if !ok { + return b + } else { + b = append(b, val.(byte)) + } + } + }() +} +func Com_amazonaws_kms_GetKeyPolicyInput_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 Com_amazonaws_kms_GetKeyPolicyInput_PolicyName_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_kms_GetKeyPolicyOutput_Policy_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_kms_GetKeyPolicyOutput_PolicyName_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_kms_GetKeyRotationStatusInput_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 Com_amazonaws_kms_GetKeyRotationStatusOutput_KeyRotationEnabled_FromDafny(input interface{}) bool { + return func() bool { + var b bool + if input == nil { + return b + } + b = input.(bool) + return b + }() +} +func Com_amazonaws_kms_GetKeyRotationStatusOutput_KeyId_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_kms_GetKeyRotationStatusOutput_RotationPeriodInDays_FromDafny(input interface{}) *int32 { + return func() *int32 { + var i int32 + if input == nil { + return nil + } + i = input.(int32) + return &i + }() +} +func Com_amazonaws_kms_GetKeyRotationStatusOutput_NextRotationDate_FromDafny(input interface{}) *time.Time { + return func() *time.Time { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + if len(s) == 0 { + panic("timestamp string is empty") + } else { + t, err := time.Parse("2006-01-02T15:04:05.999999Z", s) + if err != nil { + panic(err) + } + return &t + } + }() +} +func Com_amazonaws_kms_GetKeyRotationStatusOutput_OnDemandRotationStartDate_FromDafny(input interface{}) *time.Time { + return func() *time.Time { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + if len(s) == 0 { + panic("timestamp string is empty") + } else { + t, err := time.Parse("2006-01-02T15:04:05.999999Z", s) + if err != nil { + panic(err) + } + return &t + } + }() +} +func Com_amazonaws_kms_GetParametersForImportInput_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 Com_amazonaws_kms_GetParametersForImportInput_WrappingAlgorithm_FromDafny(input interface{}) types.AlgorithmSpec { + return func() types.AlgorithmSpec { + var u types.AlgorithmSpec + + inputEnum := input.(ComAmazonawsKmsTypes.AlgorithmSpec) + index := -1 + for allEnums := dafny.Iterate(ComAmazonawsKmsTypes.CompanionStruct_AlgorithmSpec_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(ComAmazonawsKmsTypes.AlgorithmSpec).Equals(inputEnum) { + break + } + } + } + return u.Values()[index] + }() +} +func Com_amazonaws_kms_GetParametersForImportInput_WrappingKeySpec_FromDafny(input interface{}) types.WrappingKeySpec { + return func() types.WrappingKeySpec { + var u types.WrappingKeySpec + + inputEnum := input.(ComAmazonawsKmsTypes.WrappingKeySpec) + index := -1 + for allEnums := dafny.Iterate(ComAmazonawsKmsTypes.CompanionStruct_WrappingKeySpec_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(ComAmazonawsKmsTypes.WrappingKeySpec).Equals(inputEnum) { + break + } + } + } + return u.Values()[index] + }() +} +func Com_amazonaws_kms_GetParametersForImportOutput_KeyId_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_kms_GetParametersForImportOutput_ImportToken_FromDafny(input interface{}) []byte { + return func() []byte { + b := []byte{} + if input == nil { + return nil + } + for i := dafny.Iterate(input.(dafny.Sequence)); ; { + val, ok := i() + if !ok { + return b + } else { + b = append(b, val.(byte)) + } + } + }() +} +func Com_amazonaws_kms_GetParametersForImportOutput_PublicKey_FromDafny(input interface{}) []byte { + return func() []byte { + b := []byte{} + if input == nil { + return nil + } + for i := dafny.Iterate(input.(dafny.Sequence)); ; { + val, ok := i() + if !ok { + return b + } else { + b = append(b, val.(byte)) + } + } + }() +} +func Com_amazonaws_kms_GetParametersForImportOutput_ParametersValidTo_FromDafny(input interface{}) *time.Time { + return func() *time.Time { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + if len(s) == 0 { + panic("timestamp string is empty") + } else { + t, err := time.Parse("2006-01-02T15:04:05.999999Z", s) + if err != nil { + panic(err) + } + return &t + } + }() +} +func Com_amazonaws_kms_GetPublicKeyInput_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 Com_amazonaws_kms_GetPublicKeyInput_GrantTokens_FromDafny(input interface{}) []string { + return func() []string { + var fieldValue []string + if input == nil { + return nil + } + for i := dafny.Iterate(input.(dafny.Sequence).(dafny.Sequence)); ; { + val, ok := i() + if !ok { + break + } + fieldValue = append(fieldValue, Com_amazonaws_kms_GrantTokenList_member_FromDafny(val)) + } + return fieldValue + }() +} +func Com_amazonaws_kms_GetPublicKeyOutput_KeyId_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_kms_GetPublicKeyOutput_PublicKey_FromDafny(input interface{}) []byte { + return func() []byte { + b := []byte{} + if input == nil { + return nil + } + for i := dafny.Iterate(input.(dafny.Sequence)); ; { + val, ok := i() + if !ok { + return b + } else { + b = append(b, val.(byte)) + } + } + }() +} +func Com_amazonaws_kms_GetPublicKeyOutput_CustomerMasterKeySpec_FromDafny(input interface{}) types.CustomerMasterKeySpec { + return func() types.CustomerMasterKeySpec { + var u types.CustomerMasterKeySpec + if input == nil { + return u + } + + inputEnum := input.(ComAmazonawsKmsTypes.CustomerMasterKeySpec) + index := -1 + for allEnums := dafny.Iterate(ComAmazonawsKmsTypes.CompanionStruct_CustomerMasterKeySpec_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(ComAmazonawsKmsTypes.CustomerMasterKeySpec).Equals(inputEnum) { + break + } + } + } + return u.Values()[index] + }() +} +func Com_amazonaws_kms_GetPublicKeyOutput_KeySpec_FromDafny(input interface{}) types.KeySpec { + return func() types.KeySpec { + var u types.KeySpec + if input == nil { + return u + } + + inputEnum := input.(ComAmazonawsKmsTypes.KeySpec) + index := -1 + for allEnums := dafny.Iterate(ComAmazonawsKmsTypes.CompanionStruct_KeySpec_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(ComAmazonawsKmsTypes.KeySpec).Equals(inputEnum) { + break + } + } + } + return u.Values()[index] + }() +} +func Com_amazonaws_kms_GetPublicKeyOutput_KeyUsage_FromDafny(input interface{}) types.KeyUsageType { + return func() types.KeyUsageType { + var u types.KeyUsageType + if input == nil { + return u + } + + inputEnum := input.(ComAmazonawsKmsTypes.KeyUsageType) + index := -1 + for allEnums := dafny.Iterate(ComAmazonawsKmsTypes.CompanionStruct_KeyUsageType_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(ComAmazonawsKmsTypes.KeyUsageType).Equals(inputEnum) { + break + } + } + } + return u.Values()[index] + }() +} +func Com_amazonaws_kms_GetPublicKeyOutput_EncryptionAlgorithms_FromDafny(input interface{}) []types.EncryptionAlgorithmSpec { + return func() []types.EncryptionAlgorithmSpec { + var fieldValue []types.EncryptionAlgorithmSpec + if input == nil { + return nil + } + for i := dafny.Iterate(input.(dafny.Sequence).(dafny.Sequence)); ; { + val, ok := i() + if !ok { + break + } + fieldValue = append(fieldValue, Com_amazonaws_kms_EncryptionAlgorithmSpecList_member_FromDafny(val)) + } + return fieldValue + }() +} +func Com_amazonaws_kms_GetPublicKeyOutput_SigningAlgorithms_FromDafny(input interface{}) []types.SigningAlgorithmSpec { + return func() []types.SigningAlgorithmSpec { + var fieldValue []types.SigningAlgorithmSpec + if input == nil { + return nil + } + for i := dafny.Iterate(input.(dafny.Sequence).(dafny.Sequence)); ; { + val, ok := i() + if !ok { + break + } + fieldValue = append(fieldValue, Com_amazonaws_kms_SigningAlgorithmSpecList_member_FromDafny(val)) + } + return fieldValue + }() +} +func Com_amazonaws_kms_GetPublicKeyOutput_KeyAgreementAlgorithms_FromDafny(input interface{}) []types.KeyAgreementAlgorithmSpec { + return func() []types.KeyAgreementAlgorithmSpec { + var fieldValue []types.KeyAgreementAlgorithmSpec + if input == nil { + return nil + } + for i := dafny.Iterate(input.(dafny.Sequence).(dafny.Sequence)); ; { + val, ok := i() + if !ok { + break + } + fieldValue = append(fieldValue, Com_amazonaws_kms_KeyAgreementAlgorithmSpecList_member_FromDafny(val)) + } + return fieldValue + }() +} +func Com_amazonaws_kms_ImportKeyMaterialInput_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 Com_amazonaws_kms_ImportKeyMaterialInput_ImportToken_FromDafny(input interface{}) []byte { + return func() []byte { + b := []byte{} + if input == nil { + return nil + } + for i := dafny.Iterate(input); ; { + val, ok := i() + if !ok { + return b + } else { + b = append(b, val.(byte)) + } + } + }() +} +func Com_amazonaws_kms_ImportKeyMaterialInput_EncryptedKeyMaterial_FromDafny(input interface{}) []byte { + return func() []byte { + b := []byte{} + if input == nil { + return nil + } + for i := dafny.Iterate(input); ; { + val, ok := i() + if !ok { + return b + } else { + b = append(b, val.(byte)) + } + } + }() +} +func Com_amazonaws_kms_ImportKeyMaterialInput_ValidTo_FromDafny(input interface{}) *time.Time { + return func() *time.Time { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + if len(s) == 0 { + panic("timestamp string is empty") + } else { + t, err := time.Parse("2006-01-02T15:04:05.999999Z", s) + if err != nil { + panic(err) + } + return &t + } + }() +} +func Com_amazonaws_kms_ImportKeyMaterialInput_ExpirationModel_FromDafny(input interface{}) types.ExpirationModelType { + return func() types.ExpirationModelType { + var u types.ExpirationModelType + if input == nil { + return u + } + + inputEnum := input.(ComAmazonawsKmsTypes.ExpirationModelType) + index := -1 + for allEnums := dafny.Iterate(ComAmazonawsKmsTypes.CompanionStruct_ExpirationModelType_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(ComAmazonawsKmsTypes.ExpirationModelType).Equals(inputEnum) { + break + } + } + } + return u.Values()[index] + }() +} +func Com_amazonaws_kms_ListAliasesInput_KeyId_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_kms_ListAliasesInput_Limit_FromDafny(input interface{}) *int32 { + return func() *int32 { + var i int32 + if input == nil { + return nil + } + i = input.(int32) + return &i + }() +} +func Com_amazonaws_kms_ListAliasesInput_Marker_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_kms_ListAliasesOutput_Aliases_FromDafny(input interface{}) []types.AliasListEntry { + return func() []types.AliasListEntry { + var fieldValue []types.AliasListEntry + if input == nil { + return nil + } + for i := dafny.Iterate(input.(dafny.Sequence).(dafny.Sequence)); ; { + val, ok := i() + if !ok { + break + } + fieldValue = append(fieldValue, Com_amazonaws_kms_AliasList_member_FromDafny(val)) + } + return fieldValue + }() +} +func Com_amazonaws_kms_AliasList_member_FromDafny(input interface{}) types.AliasListEntry { + return func() types.AliasListEntry { + + return types.AliasListEntry{ + AliasName: Com_amazonaws_kms_AliasListEntry_AliasName_FromDafny(input.(ComAmazonawsKmsTypes.AliasListEntry).Dtor_AliasName().UnwrapOr(nil)), + AliasArn: Com_amazonaws_kms_AliasListEntry_AliasArn_FromDafny(input.(ComAmazonawsKmsTypes.AliasListEntry).Dtor_AliasArn().UnwrapOr(nil)), + TargetKeyId: Com_amazonaws_kms_AliasListEntry_TargetKeyId_FromDafny(input.(ComAmazonawsKmsTypes.AliasListEntry).Dtor_TargetKeyId().UnwrapOr(nil)), + CreationDate: Com_amazonaws_kms_AliasListEntry_CreationDate_FromDafny(input.(ComAmazonawsKmsTypes.AliasListEntry).Dtor_CreationDate().UnwrapOr(nil)), + LastUpdatedDate: Com_amazonaws_kms_AliasListEntry_LastUpdatedDate_FromDafny(input.(ComAmazonawsKmsTypes.AliasListEntry).Dtor_LastUpdatedDate().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_kms_AliasListEntry_AliasName_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_kms_AliasListEntry_AliasArn_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_kms_AliasListEntry_TargetKeyId_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_kms_AliasListEntry_CreationDate_FromDafny(input interface{}) *time.Time { + return func() *time.Time { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + if len(s) == 0 { + panic("timestamp string is empty") + } else { + t, err := time.Parse("2006-01-02T15:04:05.999999Z", s) + if err != nil { + panic(err) + } + return &t + } + }() +} +func Com_amazonaws_kms_AliasListEntry_LastUpdatedDate_FromDafny(input interface{}) *time.Time { + return func() *time.Time { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + if len(s) == 0 { + panic("timestamp string is empty") + } else { + t, err := time.Parse("2006-01-02T15:04:05.999999Z", s) + if err != nil { + panic(err) + } + return &t + } + }() +} +func Com_amazonaws_kms_ListAliasesOutput_NextMarker_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_kms_ListAliasesOutput_Truncated_FromDafny(input interface{}) bool { + return func() bool { + var b bool + if input == nil { + return b + } + b = input.(bool) + return b + }() +} +func Com_amazonaws_kms_ListGrantsInput_Limit_FromDafny(input interface{}) *int32 { + return func() *int32 { + var i int32 + if input == nil { + return nil + } + i = input.(int32) + return &i + }() +} +func Com_amazonaws_kms_ListGrantsInput_Marker_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_kms_ListGrantsInput_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 Com_amazonaws_kms_ListGrantsInput_GrantId_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_kms_ListGrantsInput_GranteePrincipal_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_kms_ListGrantsOutput_Grants_FromDafny(input interface{}) []types.GrantListEntry { + return func() []types.GrantListEntry { + var fieldValue []types.GrantListEntry + if input == nil { + return nil + } + for i := dafny.Iterate(input.(dafny.Sequence).(dafny.Sequence)); ; { + val, ok := i() + if !ok { + break + } + fieldValue = append(fieldValue, Com_amazonaws_kms_GrantList_member_FromDafny(val)) + } + return fieldValue + }() +} +func Com_amazonaws_kms_GrantList_member_FromDafny(input interface{}) types.GrantListEntry { + return func() types.GrantListEntry { + + return types.GrantListEntry{ + KeyId: Com_amazonaws_kms_GrantListEntry_KeyId_FromDafny(input.(ComAmazonawsKmsTypes.GrantListEntry).Dtor_KeyId().UnwrapOr(nil)), + GrantId: Com_amazonaws_kms_GrantListEntry_GrantId_FromDafny(input.(ComAmazonawsKmsTypes.GrantListEntry).Dtor_GrantId().UnwrapOr(nil)), + Name: Com_amazonaws_kms_GrantListEntry_Name_FromDafny(input.(ComAmazonawsKmsTypes.GrantListEntry).Dtor_Name().UnwrapOr(nil)), + CreationDate: Com_amazonaws_kms_GrantListEntry_CreationDate_FromDafny(input.(ComAmazonawsKmsTypes.GrantListEntry).Dtor_CreationDate().UnwrapOr(nil)), + GranteePrincipal: Com_amazonaws_kms_GrantListEntry_GranteePrincipal_FromDafny(input.(ComAmazonawsKmsTypes.GrantListEntry).Dtor_GranteePrincipal().UnwrapOr(nil)), + RetiringPrincipal: Com_amazonaws_kms_GrantListEntry_RetiringPrincipal_FromDafny(input.(ComAmazonawsKmsTypes.GrantListEntry).Dtor_RetiringPrincipal().UnwrapOr(nil)), + IssuingAccount: Com_amazonaws_kms_GrantListEntry_IssuingAccount_FromDafny(input.(ComAmazonawsKmsTypes.GrantListEntry).Dtor_IssuingAccount().UnwrapOr(nil)), + Operations: Com_amazonaws_kms_GrantListEntry_Operations_FromDafny(input.(ComAmazonawsKmsTypes.GrantListEntry).Dtor_Operations().UnwrapOr(nil)), + Constraints: Com_amazonaws_kms_GrantListEntry_Constraints_FromDafny(input.(ComAmazonawsKmsTypes.GrantListEntry).Dtor_Constraints().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_kms_GrantListEntry_KeyId_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_kms_GrantListEntry_GrantId_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_kms_GrantListEntry_Name_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_kms_GrantListEntry_CreationDate_FromDafny(input interface{}) *time.Time { + return func() *time.Time { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + if len(s) == 0 { + panic("timestamp string is empty") + } else { + t, err := time.Parse("2006-01-02T15:04:05.999999Z", s) + if err != nil { + panic(err) + } + return &t + } + }() +} +func Com_amazonaws_kms_GrantListEntry_GranteePrincipal_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_kms_GrantListEntry_RetiringPrincipal_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_kms_GrantListEntry_IssuingAccount_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_kms_GrantListEntry_Operations_FromDafny(input interface{}) []types.GrantOperation { + return func() []types.GrantOperation { + var fieldValue []types.GrantOperation + if input == nil { + return nil + } + for i := dafny.Iterate(input.(dafny.Sequence).(dafny.Sequence)); ; { + val, ok := i() + if !ok { + break + } + fieldValue = append(fieldValue, Com_amazonaws_kms_GrantOperationList_member_FromDafny(val)) + } + return fieldValue + }() +} +func Com_amazonaws_kms_GrantListEntry_Constraints_FromDafny(input interface{}) *types.GrantConstraints { + return func() *types.GrantConstraints { + if input == nil { + return nil + } + return &types.GrantConstraints{ + EncryptionContextSubset: Com_amazonaws_kms_GrantConstraints_EncryptionContextSubset_FromDafny(input.(ComAmazonawsKmsTypes.GrantConstraints).Dtor_EncryptionContextSubset().UnwrapOr(nil)), + EncryptionContextEquals: Com_amazonaws_kms_GrantConstraints_EncryptionContextEquals_FromDafny(input.(ComAmazonawsKmsTypes.GrantConstraints).Dtor_EncryptionContextEquals().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_kms_ListGrantsOutput_NextMarker_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_kms_ListGrantsOutput_Truncated_FromDafny(input interface{}) bool { + return func() bool { + var b bool + if input == nil { + return b + } + b = input.(bool) + return b + }() +} +func Com_amazonaws_kms_ListKeyPoliciesInput_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 Com_amazonaws_kms_ListKeyPoliciesInput_Limit_FromDafny(input interface{}) *int32 { + return func() *int32 { + var i int32 + if input == nil { + return nil + } + i = input.(int32) + return &i + }() +} +func Com_amazonaws_kms_ListKeyPoliciesInput_Marker_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_kms_ListKeyPoliciesOutput_PolicyNames_FromDafny(input interface{}) []string { + return func() []string { + var fieldValue []string + if input == nil { + return nil + } + for i := dafny.Iterate(input.(dafny.Sequence).(dafny.Sequence)); ; { + val, ok := i() + if !ok { + break + } + fieldValue = append(fieldValue, Com_amazonaws_kms_PolicyNameList_member_FromDafny(val)) + } + return fieldValue + }() +} +func Com_amazonaws_kms_PolicyNameList_member_FromDafny(input interface{}) string { + return func() string { + + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return s + }() +} +func Com_amazonaws_kms_ListKeyPoliciesOutput_NextMarker_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_kms_ListKeyPoliciesOutput_Truncated_FromDafny(input interface{}) bool { + return func() bool { + var b bool + if input == nil { + return b + } + b = input.(bool) + return b + }() +} +func Com_amazonaws_kms_ListKeyRotationsInput_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 Com_amazonaws_kms_ListKeyRotationsInput_Limit_FromDafny(input interface{}) *int32 { + return func() *int32 { + var i int32 + if input == nil { + return nil + } + i = input.(int32) + return &i + }() +} +func Com_amazonaws_kms_ListKeyRotationsInput_Marker_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_kms_ListKeyRotationsOutput_Rotations_FromDafny(input interface{}) []types.RotationsListEntry { + return func() []types.RotationsListEntry { + var fieldValue []types.RotationsListEntry + if input == nil { + return nil + } + for i := dafny.Iterate(input.(dafny.Sequence).(dafny.Sequence)); ; { + val, ok := i() + if !ok { + break + } + fieldValue = append(fieldValue, Com_amazonaws_kms_RotationsList_member_FromDafny(val)) + } + return fieldValue + }() +} +func Com_amazonaws_kms_RotationsList_member_FromDafny(input interface{}) types.RotationsListEntry { + return func() types.RotationsListEntry { + + return types.RotationsListEntry{ + KeyId: Com_amazonaws_kms_RotationsListEntry_KeyId_FromDafny(input.(ComAmazonawsKmsTypes.RotationsListEntry).Dtor_KeyId().UnwrapOr(nil)), + RotationDate: Com_amazonaws_kms_RotationsListEntry_RotationDate_FromDafny(input.(ComAmazonawsKmsTypes.RotationsListEntry).Dtor_RotationDate().UnwrapOr(nil)), + RotationType: Com_amazonaws_kms_RotationsListEntry_RotationType_FromDafny(input.(ComAmazonawsKmsTypes.RotationsListEntry).Dtor_RotationType().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_kms_RotationsListEntry_KeyId_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_kms_RotationsListEntry_RotationDate_FromDafny(input interface{}) *time.Time { + return func() *time.Time { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + if len(s) == 0 { + panic("timestamp string is empty") + } else { + t, err := time.Parse("2006-01-02T15:04:05.999999Z", s) + if err != nil { + panic(err) + } + return &t + } + }() +} +func Com_amazonaws_kms_RotationsListEntry_RotationType_FromDafny(input interface{}) types.RotationType { + return func() types.RotationType { + var u types.RotationType + if input == nil { + return u + } + + inputEnum := input.(ComAmazonawsKmsTypes.RotationType) + index := -1 + for allEnums := dafny.Iterate(ComAmazonawsKmsTypes.CompanionStruct_RotationType_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(ComAmazonawsKmsTypes.RotationType).Equals(inputEnum) { + break + } + } + } + return u.Values()[index] + }() +} +func Com_amazonaws_kms_ListKeyRotationsOutput_NextMarker_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_kms_ListKeyRotationsOutput_Truncated_FromDafny(input interface{}) bool { + return func() bool { + var b bool + if input == nil { + return b + } + b = input.(bool) + return b + }() +} +func Com_amazonaws_kms_ListKeysInput_Limit_FromDafny(input interface{}) *int32 { + return func() *int32 { + var i int32 + if input == nil { + return nil + } + i = input.(int32) + return &i + }() +} +func Com_amazonaws_kms_ListKeysInput_Marker_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_kms_ListKeysOutput_Keys_FromDafny(input interface{}) []types.KeyListEntry { + return func() []types.KeyListEntry { + var fieldValue []types.KeyListEntry + if input == nil { + return nil + } + for i := dafny.Iterate(input.(dafny.Sequence).(dafny.Sequence)); ; { + val, ok := i() + if !ok { + break + } + fieldValue = append(fieldValue, Com_amazonaws_kms_KeyList_member_FromDafny(val)) + } + return fieldValue + }() +} +func Com_amazonaws_kms_KeyList_member_FromDafny(input interface{}) types.KeyListEntry { + return func() types.KeyListEntry { + + return types.KeyListEntry{ + KeyId: Com_amazonaws_kms_KeyListEntry_KeyId_FromDafny(input.(ComAmazonawsKmsTypes.KeyListEntry).Dtor_KeyId().UnwrapOr(nil)), + KeyArn: Com_amazonaws_kms_KeyListEntry_KeyArn_FromDafny(input.(ComAmazonawsKmsTypes.KeyListEntry).Dtor_KeyArn().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_kms_KeyListEntry_KeyId_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_kms_KeyListEntry_KeyArn_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_kms_ListKeysOutput_NextMarker_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_kms_ListKeysOutput_Truncated_FromDafny(input interface{}) bool { + return func() bool { + var b bool + if input == nil { + return b + } + b = input.(bool) + return b + }() +} +func Com_amazonaws_kms_ListResourceTagsInput_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 Com_amazonaws_kms_ListResourceTagsInput_Limit_FromDafny(input interface{}) *int32 { + return func() *int32 { + var i int32 + if input == nil { + return nil + } + i = input.(int32) + return &i + }() +} +func Com_amazonaws_kms_ListResourceTagsInput_Marker_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_kms_ListResourceTagsOutput_Tags_FromDafny(input interface{}) []types.Tag { + return func() []types.Tag { + var fieldValue []types.Tag + if input == nil { + return nil + } + for i := dafny.Iterate(input.(dafny.Sequence).(dafny.Sequence)); ; { + val, ok := i() + if !ok { + break + } + fieldValue = append(fieldValue, Com_amazonaws_kms_TagList_member_FromDafny(val)) + } + return fieldValue + }() +} +func Com_amazonaws_kms_ListResourceTagsOutput_NextMarker_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_kms_ListResourceTagsOutput_Truncated_FromDafny(input interface{}) bool { + return func() bool { + var b bool + if input == nil { + return b + } + b = input.(bool) + return b + }() +} +func Com_amazonaws_kms_PutKeyPolicyInput_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 Com_amazonaws_kms_PutKeyPolicyInput_PolicyName_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_kms_PutKeyPolicyInput_Policy_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 Com_amazonaws_kms_PutKeyPolicyInput_BypassPolicyLockoutSafetyCheck_FromDafny(input interface{}) bool { + return func() bool { + var b bool + if input == nil { + return b + } + b = input.(bool) + return b + }() +} +func Com_amazonaws_kms_ReEncryptInput_CiphertextBlob_FromDafny(input interface{}) []byte { + return func() []byte { + b := []byte{} + if input == nil { + return nil + } + for i := dafny.Iterate(input); ; { + val, ok := i() + if !ok { + return b + } else { + b = append(b, val.(byte)) + } + } + }() +} +func Com_amazonaws_kms_ReEncryptInput_SourceEncryptionContext_FromDafny(input interface{}) map[string]string { + return func() 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[Com_amazonaws_kms_EncryptionContextType_key_FromDafny((*val.(dafny.Tuple).IndexInt(0)))] = Com_amazonaws_kms_EncryptionContextType_value_FromDafny((*val.(dafny.Tuple).IndexInt(1))) + } + return m + }() +} +func Com_amazonaws_kms_ReEncryptInput_SourceKeyId_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_kms_ReEncryptInput_DestinationKeyId_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 Com_amazonaws_kms_ReEncryptInput_DestinationEncryptionContext_FromDafny(input interface{}) map[string]string { + return func() 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[Com_amazonaws_kms_EncryptionContextType_key_FromDafny((*val.(dafny.Tuple).IndexInt(0)))] = Com_amazonaws_kms_EncryptionContextType_value_FromDafny((*val.(dafny.Tuple).IndexInt(1))) + } + return m + }() +} +func Com_amazonaws_kms_ReEncryptInput_SourceEncryptionAlgorithm_FromDafny(input interface{}) types.EncryptionAlgorithmSpec { + return func() types.EncryptionAlgorithmSpec { + var u types.EncryptionAlgorithmSpec + if input == nil { + return u + } + + inputEnum := input.(ComAmazonawsKmsTypes.EncryptionAlgorithmSpec) + index := -1 + for allEnums := dafny.Iterate(ComAmazonawsKmsTypes.CompanionStruct_EncryptionAlgorithmSpec_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(ComAmazonawsKmsTypes.EncryptionAlgorithmSpec).Equals(inputEnum) { + break + } + } + } + return u.Values()[index] + }() +} +func Com_amazonaws_kms_ReEncryptInput_DestinationEncryptionAlgorithm_FromDafny(input interface{}) types.EncryptionAlgorithmSpec { + return func() types.EncryptionAlgorithmSpec { + var u types.EncryptionAlgorithmSpec + if input == nil { + return u + } + + inputEnum := input.(ComAmazonawsKmsTypes.EncryptionAlgorithmSpec) + index := -1 + for allEnums := dafny.Iterate(ComAmazonawsKmsTypes.CompanionStruct_EncryptionAlgorithmSpec_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(ComAmazonawsKmsTypes.EncryptionAlgorithmSpec).Equals(inputEnum) { + break + } + } + } + return u.Values()[index] + }() +} +func Com_amazonaws_kms_ReEncryptInput_GrantTokens_FromDafny(input interface{}) []string { + return func() []string { + var fieldValue []string + if input == nil { + return nil + } + for i := dafny.Iterate(input.(dafny.Sequence).(dafny.Sequence)); ; { + val, ok := i() + if !ok { + break + } + fieldValue = append(fieldValue, Com_amazonaws_kms_GrantTokenList_member_FromDafny(val)) + } + return fieldValue + }() +} +func Com_amazonaws_kms_ReEncryptInput_DryRun_FromDafny(input interface{}) *bool { + return func() *bool { + var b bool + if input == nil { + return nil + } + b = input.(bool) + return &b + }() +} +func Com_amazonaws_kms_ReEncryptOutput_CiphertextBlob_FromDafny(input interface{}) []byte { + return func() []byte { + b := []byte{} + if input == nil { + return nil + } + for i := dafny.Iterate(input.(dafny.Sequence)); ; { + val, ok := i() + if !ok { + return b + } else { + b = append(b, val.(byte)) + } + } + }() +} +func Com_amazonaws_kms_ReEncryptOutput_SourceKeyId_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_kms_ReEncryptOutput_KeyId_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_kms_ReEncryptOutput_SourceEncryptionAlgorithm_FromDafny(input interface{}) types.EncryptionAlgorithmSpec { + return func() types.EncryptionAlgorithmSpec { + var u types.EncryptionAlgorithmSpec + if input == nil { + return u + } + + inputEnum := input.(ComAmazonawsKmsTypes.EncryptionAlgorithmSpec) + index := -1 + for allEnums := dafny.Iterate(ComAmazonawsKmsTypes.CompanionStruct_EncryptionAlgorithmSpec_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(ComAmazonawsKmsTypes.EncryptionAlgorithmSpec).Equals(inputEnum) { + break + } + } + } + return u.Values()[index] + }() +} +func Com_amazonaws_kms_ReEncryptOutput_DestinationEncryptionAlgorithm_FromDafny(input interface{}) types.EncryptionAlgorithmSpec { + return func() types.EncryptionAlgorithmSpec { + var u types.EncryptionAlgorithmSpec + if input == nil { + return u + } + + inputEnum := input.(ComAmazonawsKmsTypes.EncryptionAlgorithmSpec) + index := -1 + for allEnums := dafny.Iterate(ComAmazonawsKmsTypes.CompanionStruct_EncryptionAlgorithmSpec_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(ComAmazonawsKmsTypes.EncryptionAlgorithmSpec).Equals(inputEnum) { + break + } + } + } + return u.Values()[index] + }() +} +func Com_amazonaws_kms_ReplicateKeyInput_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 Com_amazonaws_kms_ReplicateKeyInput_ReplicaRegion_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 Com_amazonaws_kms_ReplicateKeyInput_Policy_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_kms_ReplicateKeyInput_BypassPolicyLockoutSafetyCheck_FromDafny(input interface{}) bool { + return func() bool { + var b bool + if input == nil { + return b + } + b = input.(bool) + return b + }() +} +func Com_amazonaws_kms_ReplicateKeyInput_Description_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_kms_ReplicateKeyInput_Tags_FromDafny(input interface{}) []types.Tag { + return func() []types.Tag { + var fieldValue []types.Tag + if input == nil { + return nil + } + for i := dafny.Iterate(input.(dafny.Sequence).(dafny.Sequence)); ; { + val, ok := i() + if !ok { + break + } + fieldValue = append(fieldValue, Com_amazonaws_kms_TagList_member_FromDafny(val)) + } + return fieldValue + }() +} +func Com_amazonaws_kms_ReplicateKeyOutput_ReplicaKeyMetadata_FromDafny(input interface{}) *types.KeyMetadata { + return func() *types.KeyMetadata { + if input == nil { + return nil + } + return &types.KeyMetadata{ + AWSAccountId: Com_amazonaws_kms_KeyMetadata_AWSAccountId_FromDafny(input.(ComAmazonawsKmsTypes.KeyMetadata).Dtor_AWSAccountId().UnwrapOr(nil)), + KeyId: Com_amazonaws_kms_KeyMetadata_KeyId_FromDafny(input.(ComAmazonawsKmsTypes.KeyMetadata).Dtor_KeyId()), + Arn: Com_amazonaws_kms_KeyMetadata_Arn_FromDafny(input.(ComAmazonawsKmsTypes.KeyMetadata).Dtor_Arn().UnwrapOr(nil)), + CreationDate: Com_amazonaws_kms_KeyMetadata_CreationDate_FromDafny(input.(ComAmazonawsKmsTypes.KeyMetadata).Dtor_CreationDate().UnwrapOr(nil)), + Enabled: Com_amazonaws_kms_KeyMetadata_Enabled_FromDafny(input.(ComAmazonawsKmsTypes.KeyMetadata).Dtor_Enabled().UnwrapOr(nil)), + Description: Com_amazonaws_kms_KeyMetadata_Description_FromDafny(input.(ComAmazonawsKmsTypes.KeyMetadata).Dtor_Description().UnwrapOr(nil)), + KeyUsage: Com_amazonaws_kms_KeyMetadata_KeyUsage_FromDafny(input.(ComAmazonawsKmsTypes.KeyMetadata).Dtor_KeyUsage().UnwrapOr(nil)), + KeyState: Com_amazonaws_kms_KeyMetadata_KeyState_FromDafny(input.(ComAmazonawsKmsTypes.KeyMetadata).Dtor_KeyState().UnwrapOr(nil)), + DeletionDate: Com_amazonaws_kms_KeyMetadata_DeletionDate_FromDafny(input.(ComAmazonawsKmsTypes.KeyMetadata).Dtor_DeletionDate().UnwrapOr(nil)), + ValidTo: Com_amazonaws_kms_KeyMetadata_ValidTo_FromDafny(input.(ComAmazonawsKmsTypes.KeyMetadata).Dtor_ValidTo().UnwrapOr(nil)), + Origin: Com_amazonaws_kms_KeyMetadata_Origin_FromDafny(input.(ComAmazonawsKmsTypes.KeyMetadata).Dtor_Origin().UnwrapOr(nil)), + CustomKeyStoreId: Com_amazonaws_kms_KeyMetadata_CustomKeyStoreId_FromDafny(input.(ComAmazonawsKmsTypes.KeyMetadata).Dtor_CustomKeyStoreId().UnwrapOr(nil)), + CloudHsmClusterId: Com_amazonaws_kms_KeyMetadata_CloudHsmClusterId_FromDafny(input.(ComAmazonawsKmsTypes.KeyMetadata).Dtor_CloudHsmClusterId().UnwrapOr(nil)), + ExpirationModel: Com_amazonaws_kms_KeyMetadata_ExpirationModel_FromDafny(input.(ComAmazonawsKmsTypes.KeyMetadata).Dtor_ExpirationModel().UnwrapOr(nil)), + KeyManager: Com_amazonaws_kms_KeyMetadata_KeyManager_FromDafny(input.(ComAmazonawsKmsTypes.KeyMetadata).Dtor_KeyManager().UnwrapOr(nil)), + CustomerMasterKeySpec: Com_amazonaws_kms_KeyMetadata_CustomerMasterKeySpec_FromDafny(input.(ComAmazonawsKmsTypes.KeyMetadata).Dtor_CustomerMasterKeySpec().UnwrapOr(nil)), + KeySpec: Com_amazonaws_kms_KeyMetadata_KeySpec_FromDafny(input.(ComAmazonawsKmsTypes.KeyMetadata).Dtor_KeySpec().UnwrapOr(nil)), + EncryptionAlgorithms: Com_amazonaws_kms_KeyMetadata_EncryptionAlgorithms_FromDafny(input.(ComAmazonawsKmsTypes.KeyMetadata).Dtor_EncryptionAlgorithms().UnwrapOr(nil)), + SigningAlgorithms: Com_amazonaws_kms_KeyMetadata_SigningAlgorithms_FromDafny(input.(ComAmazonawsKmsTypes.KeyMetadata).Dtor_SigningAlgorithms().UnwrapOr(nil)), + KeyAgreementAlgorithms: Com_amazonaws_kms_KeyMetadata_KeyAgreementAlgorithms_FromDafny(input.(ComAmazonawsKmsTypes.KeyMetadata).Dtor_KeyAgreementAlgorithms().UnwrapOr(nil)), + MultiRegion: Com_amazonaws_kms_KeyMetadata_MultiRegion_FromDafny(input.(ComAmazonawsKmsTypes.KeyMetadata).Dtor_MultiRegion().UnwrapOr(nil)), + MultiRegionConfiguration: Com_amazonaws_kms_KeyMetadata_MultiRegionConfiguration_FromDafny(input.(ComAmazonawsKmsTypes.KeyMetadata).Dtor_MultiRegionConfiguration().UnwrapOr(nil)), + PendingDeletionWindowInDays: Com_amazonaws_kms_KeyMetadata_PendingDeletionWindowInDays_FromDafny(input.(ComAmazonawsKmsTypes.KeyMetadata).Dtor_PendingDeletionWindowInDays().UnwrapOr(nil)), + MacAlgorithms: Com_amazonaws_kms_KeyMetadata_MacAlgorithms_FromDafny(input.(ComAmazonawsKmsTypes.KeyMetadata).Dtor_MacAlgorithms().UnwrapOr(nil)), + XksKeyConfiguration: Com_amazonaws_kms_KeyMetadata_XksKeyConfiguration_FromDafny(input.(ComAmazonawsKmsTypes.KeyMetadata).Dtor_XksKeyConfiguration().UnwrapOr(nil)), + } + }() +} +func Com_amazonaws_kms_ReplicateKeyOutput_ReplicaPolicy_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_kms_ReplicateKeyOutput_ReplicaTags_FromDafny(input interface{}) []types.Tag { + return func() []types.Tag { + var fieldValue []types.Tag + if input == nil { + return nil + } + for i := dafny.Iterate(input.(dafny.Sequence).(dafny.Sequence)); ; { + val, ok := i() + if !ok { + break + } + fieldValue = append(fieldValue, Com_amazonaws_kms_TagList_member_FromDafny(val)) + } + return fieldValue + }() +} +func Com_amazonaws_kms_RetireGrantInput_GrantToken_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_kms_RetireGrantInput_KeyId_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_kms_RetireGrantInput_GrantId_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_kms_RetireGrantInput_DryRun_FromDafny(input interface{}) *bool { + return func() *bool { + var b bool + if input == nil { + return nil + } + b = input.(bool) + return &b + }() +} +func Com_amazonaws_kms_RevokeGrantInput_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 Com_amazonaws_kms_RevokeGrantInput_GrantId_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 Com_amazonaws_kms_RevokeGrantInput_DryRun_FromDafny(input interface{}) *bool { + return func() *bool { + var b bool + if input == nil { + return nil + } + b = input.(bool) + return &b + }() +} +func Com_amazonaws_kms_RotateKeyOnDemandInput_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 Com_amazonaws_kms_RotateKeyOnDemandOutput_KeyId_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_kms_ScheduleKeyDeletionInput_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 Com_amazonaws_kms_ScheduleKeyDeletionInput_PendingWindowInDays_FromDafny(input interface{}) *int32 { + return func() *int32 { + var i int32 + if input == nil { + return nil + } + i = input.(int32) + return &i + }() +} +func Com_amazonaws_kms_ScheduleKeyDeletionOutput_KeyId_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_kms_ScheduleKeyDeletionOutput_DeletionDate_FromDafny(input interface{}) *time.Time { + return func() *time.Time { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + if len(s) == 0 { + panic("timestamp string is empty") + } else { + t, err := time.Parse("2006-01-02T15:04:05.999999Z", s) + if err != nil { + panic(err) + } + return &t + } + }() +} +func Com_amazonaws_kms_ScheduleKeyDeletionOutput_KeyState_FromDafny(input interface{}) types.KeyState { + return func() types.KeyState { + var u types.KeyState + if input == nil { + return u + } + + inputEnum := input.(ComAmazonawsKmsTypes.KeyState) + index := -1 + for allEnums := dafny.Iterate(ComAmazonawsKmsTypes.CompanionStruct_KeyState_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(ComAmazonawsKmsTypes.KeyState).Equals(inputEnum) { + break + } + } + } + return u.Values()[index] + }() +} +func Com_amazonaws_kms_ScheduleKeyDeletionOutput_PendingWindowInDays_FromDafny(input interface{}) *int32 { + return func() *int32 { + var i int32 + if input == nil { + return nil + } + i = input.(int32) + return &i + }() +} +func Com_amazonaws_kms_SignInput_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 Com_amazonaws_kms_SignInput_Message_FromDafny(input interface{}) []byte { + return func() []byte { + b := []byte{} + if input == nil { + return nil + } + for i := dafny.Iterate(input); ; { + val, ok := i() + if !ok { + return b + } else { + b = append(b, val.(byte)) + } + } + }() +} +func Com_amazonaws_kms_SignInput_MessageType_FromDafny(input interface{}) types.MessageType { + return func() types.MessageType { + var u types.MessageType + if input == nil { + return u + } + + inputEnum := input.(ComAmazonawsKmsTypes.MessageType) + index := -1 + for allEnums := dafny.Iterate(ComAmazonawsKmsTypes.CompanionStruct_MessageType_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(ComAmazonawsKmsTypes.MessageType).Equals(inputEnum) { + break + } + } + } + return u.Values()[index] + }() +} +func Com_amazonaws_kms_SignInput_GrantTokens_FromDafny(input interface{}) []string { + return func() []string { + var fieldValue []string + if input == nil { + return nil + } + for i := dafny.Iterate(input.(dafny.Sequence).(dafny.Sequence)); ; { + val, ok := i() + if !ok { + break + } + fieldValue = append(fieldValue, Com_amazonaws_kms_GrantTokenList_member_FromDafny(val)) + } + return fieldValue + }() +} +func Com_amazonaws_kms_SignInput_SigningAlgorithm_FromDafny(input interface{}) types.SigningAlgorithmSpec { + return func() types.SigningAlgorithmSpec { + var u types.SigningAlgorithmSpec + + inputEnum := input.(ComAmazonawsKmsTypes.SigningAlgorithmSpec) + index := -1 + for allEnums := dafny.Iterate(ComAmazonawsKmsTypes.CompanionStruct_SigningAlgorithmSpec_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(ComAmazonawsKmsTypes.SigningAlgorithmSpec).Equals(inputEnum) { + break + } + } + } + return u.Values()[index] + }() +} +func Com_amazonaws_kms_SignInput_DryRun_FromDafny(input interface{}) *bool { + return func() *bool { + var b bool + if input == nil { + return nil + } + b = input.(bool) + return &b + }() +} +func Com_amazonaws_kms_SignOutput_KeyId_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_kms_SignOutput_Signature_FromDafny(input interface{}) []byte { + return func() []byte { + b := []byte{} + if input == nil { + return nil + } + for i := dafny.Iterate(input.(dafny.Sequence)); ; { + val, ok := i() + if !ok { + return b + } else { + b = append(b, val.(byte)) + } + } + }() +} +func Com_amazonaws_kms_SignOutput_SigningAlgorithm_FromDafny(input interface{}) types.SigningAlgorithmSpec { + return func() types.SigningAlgorithmSpec { + var u types.SigningAlgorithmSpec + if input == nil { + return u + } + + inputEnum := input.(ComAmazonawsKmsTypes.SigningAlgorithmSpec) + index := -1 + for allEnums := dafny.Iterate(ComAmazonawsKmsTypes.CompanionStruct_SigningAlgorithmSpec_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(ComAmazonawsKmsTypes.SigningAlgorithmSpec).Equals(inputEnum) { + break + } + } + } + return u.Values()[index] + }() +} +func Com_amazonaws_kms_TagResourceInput_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 Com_amazonaws_kms_TagResourceInput_Tags_FromDafny(input interface{}) []types.Tag { + return func() []types.Tag { + var fieldValue []types.Tag + + for i := dafny.Iterate(input.(dafny.Sequence)); ; { + val, ok := i() + if !ok { + break + } + fieldValue = append(fieldValue, Com_amazonaws_kms_TagList_member_FromDafny(val)) + } + return fieldValue + }() +} +func Com_amazonaws_kms_UntagResourceInput_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 Com_amazonaws_kms_UntagResourceInput_TagKeys_FromDafny(input interface{}) []string { + return func() []string { + var fieldValue []string + + for i := dafny.Iterate(input.(dafny.Sequence)); ; { + val, ok := i() + if !ok { + break + } + fieldValue = append(fieldValue, Com_amazonaws_kms_TagKeyList_member_FromDafny(val)) + } + return fieldValue + }() +} +func Com_amazonaws_kms_TagKeyList_member_FromDafny(input interface{}) string { + return func() string { + + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return s + }() +} +func Com_amazonaws_kms_UpdateAliasInput_AliasName_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 Com_amazonaws_kms_UpdateAliasInput_TargetKeyId_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 Com_amazonaws_kms_UpdateCustomKeyStoreInput_CustomKeyStoreId_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 Com_amazonaws_kms_UpdateCustomKeyStoreInput_NewCustomKeyStoreName_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_kms_UpdateCustomKeyStoreInput_KeyStorePassword_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_kms_UpdateCustomKeyStoreInput_CloudHsmClusterId_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_kms_UpdateCustomKeyStoreInput_XksProxyUriEndpoint_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_kms_UpdateCustomKeyStoreInput_XksProxyUriPath_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_kms_UpdateCustomKeyStoreInput_XksProxyVpcEndpointServiceName_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_kms_UpdateCustomKeyStoreInput_XksProxyAuthenticationCredential_FromDafny(input interface{}) *types.XksProxyAuthenticationCredentialType { + return func() *types.XksProxyAuthenticationCredentialType { + if input == nil { + return nil + } + return &types.XksProxyAuthenticationCredentialType{ + AccessKeyId: Com_amazonaws_kms_XksProxyAuthenticationCredentialType_AccessKeyId_FromDafny(input.(ComAmazonawsKmsTypes.XksProxyAuthenticationCredentialType).Dtor_AccessKeyId()), + RawSecretAccessKey: Com_amazonaws_kms_XksProxyAuthenticationCredentialType_RawSecretAccessKey_FromDafny(input.(ComAmazonawsKmsTypes.XksProxyAuthenticationCredentialType).Dtor_RawSecretAccessKey()), + } + }() +} +func Com_amazonaws_kms_UpdateCustomKeyStoreInput_XksProxyConnectivity_FromDafny(input interface{}) types.XksProxyConnectivityType { + return func() types.XksProxyConnectivityType { + var u types.XksProxyConnectivityType + if input == nil { + return u + } + + inputEnum := input.(ComAmazonawsKmsTypes.XksProxyConnectivityType) + index := -1 + for allEnums := dafny.Iterate(ComAmazonawsKmsTypes.CompanionStruct_XksProxyConnectivityType_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(ComAmazonawsKmsTypes.XksProxyConnectivityType).Equals(inputEnum) { + break + } + } + } + return u.Values()[index] + }() +} +func Com_amazonaws_kms_UpdateKeyDescriptionInput_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 Com_amazonaws_kms_UpdateKeyDescriptionInput_Description_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 Com_amazonaws_kms_UpdatePrimaryRegionInput_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 Com_amazonaws_kms_UpdatePrimaryRegionInput_PrimaryRegion_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 Com_amazonaws_kms_VerifyInput_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 Com_amazonaws_kms_VerifyInput_Message_FromDafny(input interface{}) []byte { + return func() []byte { + b := []byte{} + if input == nil { + return nil + } + for i := dafny.Iterate(input); ; { + val, ok := i() + if !ok { + return b + } else { + b = append(b, val.(byte)) + } + } + }() +} +func Com_amazonaws_kms_VerifyInput_MessageType_FromDafny(input interface{}) types.MessageType { + return func() types.MessageType { + var u types.MessageType + if input == nil { + return u + } + + inputEnum := input.(ComAmazonawsKmsTypes.MessageType) + index := -1 + for allEnums := dafny.Iterate(ComAmazonawsKmsTypes.CompanionStruct_MessageType_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(ComAmazonawsKmsTypes.MessageType).Equals(inputEnum) { + break + } + } + } + return u.Values()[index] + }() +} +func Com_amazonaws_kms_VerifyInput_Signature_FromDafny(input interface{}) []byte { + return func() []byte { + b := []byte{} + if input == nil { + return nil + } + for i := dafny.Iterate(input); ; { + val, ok := i() + if !ok { + return b + } else { + b = append(b, val.(byte)) + } + } + }() +} +func Com_amazonaws_kms_VerifyInput_SigningAlgorithm_FromDafny(input interface{}) types.SigningAlgorithmSpec { + return func() types.SigningAlgorithmSpec { + var u types.SigningAlgorithmSpec + + inputEnum := input.(ComAmazonawsKmsTypes.SigningAlgorithmSpec) + index := -1 + for allEnums := dafny.Iterate(ComAmazonawsKmsTypes.CompanionStruct_SigningAlgorithmSpec_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(ComAmazonawsKmsTypes.SigningAlgorithmSpec).Equals(inputEnum) { + break + } + } + } + return u.Values()[index] + }() +} +func Com_amazonaws_kms_VerifyInput_GrantTokens_FromDafny(input interface{}) []string { + return func() []string { + var fieldValue []string + if input == nil { + return nil + } + for i := dafny.Iterate(input.(dafny.Sequence).(dafny.Sequence)); ; { + val, ok := i() + if !ok { + break + } + fieldValue = append(fieldValue, Com_amazonaws_kms_GrantTokenList_member_FromDafny(val)) + } + return fieldValue + }() +} +func Com_amazonaws_kms_VerifyInput_DryRun_FromDafny(input interface{}) *bool { + return func() *bool { + var b bool + if input == nil { + return nil + } + b = input.(bool) + return &b + }() +} +func Com_amazonaws_kms_VerifyOutput_KeyId_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_kms_VerifyOutput_SignatureValid_FromDafny(input interface{}) bool { + return func() bool { + var b bool + if input == nil { + return b + } + b = input.(bool) + return b + }() +} +func Com_amazonaws_kms_VerifyOutput_SigningAlgorithm_FromDafny(input interface{}) types.SigningAlgorithmSpec { + return func() types.SigningAlgorithmSpec { + var u types.SigningAlgorithmSpec + if input == nil { + return u + } + + inputEnum := input.(ComAmazonawsKmsTypes.SigningAlgorithmSpec) + index := -1 + for allEnums := dafny.Iterate(ComAmazonawsKmsTypes.CompanionStruct_SigningAlgorithmSpec_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(ComAmazonawsKmsTypes.SigningAlgorithmSpec).Equals(inputEnum) { + break + } + } + } + return u.Values()[index] + }() +} +func Com_amazonaws_kms_VerifyMacInput_Message_FromDafny(input interface{}) []byte { + return func() []byte { + b := []byte{} + if input == nil { + return nil + } + for i := dafny.Iterate(input); ; { + val, ok := i() + if !ok { + return b + } else { + b = append(b, val.(byte)) + } + } + }() +} +func Com_amazonaws_kms_VerifyMacInput_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 Com_amazonaws_kms_VerifyMacInput_MacAlgorithm_FromDafny(input interface{}) types.MacAlgorithmSpec { + return func() types.MacAlgorithmSpec { + var u types.MacAlgorithmSpec + + inputEnum := input.(ComAmazonawsKmsTypes.MacAlgorithmSpec) + index := -1 + for allEnums := dafny.Iterate(ComAmazonawsKmsTypes.CompanionStruct_MacAlgorithmSpec_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(ComAmazonawsKmsTypes.MacAlgorithmSpec).Equals(inputEnum) { + break + } + } + } + return u.Values()[index] + }() +} +func Com_amazonaws_kms_VerifyMacInput_Mac_FromDafny(input interface{}) []byte { + return func() []byte { + b := []byte{} + if input == nil { + return nil + } + for i := dafny.Iterate(input); ; { + val, ok := i() + if !ok { + return b + } else { + b = append(b, val.(byte)) + } + } + }() +} +func Com_amazonaws_kms_VerifyMacInput_GrantTokens_FromDafny(input interface{}) []string { + return func() []string { + var fieldValue []string + if input == nil { + return nil + } + for i := dafny.Iterate(input.(dafny.Sequence).(dafny.Sequence)); ; { + val, ok := i() + if !ok { + break + } + fieldValue = append(fieldValue, Com_amazonaws_kms_GrantTokenList_member_FromDafny(val)) + } + return fieldValue + }() +} +func Com_amazonaws_kms_VerifyMacInput_DryRun_FromDafny(input interface{}) *bool { + return func() *bool { + var b bool + if input == nil { + return nil + } + b = input.(bool) + return &b + }() +} +func Com_amazonaws_kms_VerifyMacOutput_KeyId_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_kms_VerifyMacOutput_MacValid_FromDafny(input interface{}) bool { + return func() bool { + var b bool + if input == nil { + return b + } + b = input.(bool) + return b + }() +} +func Com_amazonaws_kms_VerifyMacOutput_MacAlgorithm_FromDafny(input interface{}) types.MacAlgorithmSpec { + return func() types.MacAlgorithmSpec { + var u types.MacAlgorithmSpec + if input == nil { + return u + } + + inputEnum := input.(ComAmazonawsKmsTypes.MacAlgorithmSpec) + index := -1 + for allEnums := dafny.Iterate(ComAmazonawsKmsTypes.CompanionStruct_MacAlgorithmSpec_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(ComAmazonawsKmsTypes.MacAlgorithmSpec).Equals(inputEnum) { + break + } + } + } + return u.Values()[index] + }() +} +func Com_amazonaws_kms_AlreadyExistsException_message_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_kms_CloudHsmClusterInUseException_message_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_kms_CloudHsmClusterInvalidConfigurationException_message_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_kms_CloudHsmClusterNotActiveException_message_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_kms_CloudHsmClusterNotFoundException_message_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_kms_CloudHsmClusterNotRelatedException_message_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_kms_ConflictException_message_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_kms_CustomKeyStoreHasCMKsException_message_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_kms_CustomKeyStoreInvalidStateException_message_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_kms_CustomKeyStoreNameInUseException_message_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_kms_CustomKeyStoreNotFoundException_message_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_kms_DependencyTimeoutException_message_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_kms_DisabledException_message_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_kms_DryRunOperationException_message_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_kms_ExpiredImportTokenException_message_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_kms_IncorrectKeyException_message_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_kms_IncorrectKeyMaterialException_message_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_kms_IncorrectTrustAnchorException_message_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_kms_InvalidAliasNameException_message_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_kms_InvalidArnException_message_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_kms_InvalidCiphertextException_message_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_kms_InvalidGrantIdException_message_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_kms_InvalidGrantTokenException_message_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_kms_InvalidImportTokenException_message_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_kms_InvalidKeyUsageException_message_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_kms_InvalidMarkerException_message_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_kms_KeyUnavailableException_message_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_kms_KMSInternalException_message_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_kms_KMSInvalidMacException_message_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_kms_KMSInvalidSignatureException_message_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_kms_KMSInvalidStateException_message_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_kms_LimitExceededException_message_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_kms_MalformedPolicyDocumentException_message_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_kms_NotFoundException_message_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_kms_TagException_message_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_kms_UnsupportedOperationException_message_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_kms_XksKeyAlreadyInUseException_message_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_kms_XksKeyInvalidConfigurationException_message_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_kms_XksKeyNotFoundException_message_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_kms_XksProxyIncorrectAuthenticationCredentialException_message_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_kms_XksProxyInvalidConfigurationException_message_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_kms_XksProxyInvalidResponseException_message_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_kms_XksProxyUriEndpointInUseException_message_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_kms_XksProxyUriInUseException_message_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_kms_XksProxyUriUnreachableException_message_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_kms_XksProxyVpcEndpointServiceInUseException_message_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_kms_XksProxyVpcEndpointServiceInvalidConfigurationException_message_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} +func Com_amazonaws_kms_XksProxyVpcEndpointServiceNotFoundException_message_FromDafny(input interface{}) *string { + return func() *string { + if input == nil { + return nil + } + a := UTF8.Encode(input.(dafny.Sequence).(dafny.Sequence)).Dtor_value() + s := string(dafny.ToByteArray(a.(dafny.Sequence))) + return &s + }() +} diff --git a/customer-preview/kms/go.mod b/customer-preview/kms/go.mod new file mode 100644 index 000000000..5defc7349 --- /dev/null +++ b/customer-preview/kms/go.mod @@ -0,0 +1,25 @@ +module github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms + +go 1.23.0 + +require ( + github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library v0.2.0 + github.com/aws/aws-sdk-go-v2/config v1.27.36 + github.com/aws/aws-sdk-go-v2/service/kms v1.36.0 + github.com/aws/smithy-go v1.21.0 + github.com/dafny-lang/DafnyRuntimeGo/v4 v4.9.2 +) + +require ( + github.com/aws/aws-sdk-go-v2 v1.31.0 // indirect + github.com/aws/aws-sdk-go-v2/credentials v1.17.34 // indirect + github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.14 // indirect + github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.18 // indirect + github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.18 // indirect + github.com/aws/aws-sdk-go-v2/internal/ini v1.8.1 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.5 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.20 // indirect + github.com/aws/aws-sdk-go-v2/service/sso v1.23.0 // indirect + github.com/aws/aws-sdk-go-v2/service/ssooidc v1.27.0 // indirect + github.com/aws/aws-sdk-go-v2/service/sts v1.31.0 // indirect +) diff --git a/customer-preview/kms/go.sum b/customer-preview/kms/go.sum new file mode 100644 index 000000000..fbaa4ca93 --- /dev/null +++ b/customer-preview/kms/go.sum @@ -0,0 +1,32 @@ +github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library v0.2.0 h1:NhVxn86bWyWc/uOnE+oTikZdj75yOW6kMCfZNBf2x5E= +github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library v0.2.0/go.mod h1:m3mzHKiNiSC0LWeWX6ZAxSe6mKbJHgliux1Yu/sjCYI= +github.com/aws/aws-sdk-go-v2 v1.31.0 h1:3V05LbxTSItI5kUqNwhJrrrY1BAXxXt0sN0l72QmG5U= +github.com/aws/aws-sdk-go-v2 v1.31.0/go.mod h1:ztolYtaEUtdpf9Wftr31CJfLVjOnD/CVRkKOOYgF8hA= +github.com/aws/aws-sdk-go-v2/config v1.27.36 h1:4IlvHh6Olc7+61O1ktesh0jOcqmq/4WG6C2Aj5SKXy0= +github.com/aws/aws-sdk-go-v2/config v1.27.36/go.mod h1:IiBpC0HPAGq9Le0Xxb1wpAKzEfAQ3XlYgJLYKEVYcfw= +github.com/aws/aws-sdk-go-v2/credentials v1.17.34 h1:gmkk1l/cDGSowPRzkdxYi8edw+gN4HmVK151D/pqGNc= +github.com/aws/aws-sdk-go-v2/credentials v1.17.34/go.mod h1:4R9OEV3tgFMsok4ZeFpExn7zQaZRa9MRGFYnI/xC/vs= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.14 h1:C/d03NAmh8C4BZXhuRNboF/DqhBkBCeDiJDcaqIT5pA= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.14/go.mod h1:7I0Ju7p9mCIdlrfS+JCgqcYD0VXz/N4yozsox+0o078= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.18 h1:kYQ3H1u0ANr9KEKlGs/jTLrBFPo8P8NaH/w7A01NeeM= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.18/go.mod h1:r506HmK5JDUh9+Mw4CfGJGSSoqIiLCndAuqXuhbv67Y= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.18 h1:Z7IdFUONvTcvS7YuhtVxN99v2cCoHRXOS4mTr0B/pUc= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.18/go.mod h1:DkKMmksZVVyat+Y+r1dEOgJEfUeA7UngIHWeKsi0yNc= +github.com/aws/aws-sdk-go-v2/internal/ini v1.8.1 h1:VaRN3TlFdd6KxX1x3ILT5ynH6HvKgqdiXoTxAF4HQcQ= +github.com/aws/aws-sdk-go-v2/internal/ini v1.8.1/go.mod h1:FbtygfRFze9usAadmnGJNc8KsP346kEe+y2/oyhGAGc= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.5 h1:QFASJGfT8wMXtuP3D5CRmMjARHv9ZmzFUMJznHDOY3w= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.5/go.mod h1:QdZ3OmoIjSX+8D1OPAzPxDfjXASbBMDsz9qvtyIhtik= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.20 h1:Xbwbmk44URTiHNx6PNo0ujDE6ERlsCKJD3u1zfnzAPg= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.20/go.mod h1:oAfOFzUB14ltPZj1rWwRc3d/6OgD76R8KlvU3EqM9Fg= +github.com/aws/aws-sdk-go-v2/service/kms v1.36.0 h1:jwWMpQ/1obJRdHaix9k10zWSnSMZGdDTZIDiS5CGzq8= +github.com/aws/aws-sdk-go-v2/service/kms v1.36.0/go.mod h1:OHmlX4+o0XIlJAQGAHPIy0N9yZcYS/vNG+T7geSNcFw= +github.com/aws/aws-sdk-go-v2/service/sso v1.23.0 h1:fHySkG0IGj2nepgGJPmmhZYL9ndnsq1Tvc6MeuVQCaQ= +github.com/aws/aws-sdk-go-v2/service/sso v1.23.0/go.mod h1:XRlMvmad0ZNL+75C5FYdMvbbLkd6qiqz6foR1nA1PXY= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.27.0 h1:cU/OeQPNReyMj1JEBgjE29aclYZYtXcsPMXbTkVGMFk= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.27.0/go.mod h1:FnvDM4sfa+isJ3kDXIzAB9GAwVSzFzSy97uZ3IsHo4E= +github.com/aws/aws-sdk-go-v2/service/sts v1.31.0 h1:GNVxIHBTi2EgwCxpNiozhNasMOK+ROUA2Z3X+cSBX58= +github.com/aws/aws-sdk-go-v2/service/sts v1.31.0/go.mod h1:yMWe0F+XG0DkRZK5ODZhG7BEFYhLXi2dqGsv6tX0cgI= +github.com/aws/smithy-go v1.21.0 h1:H7L8dtDRk0P1Qm6y0ji7MCYMQObJ5R9CRpyPhRUkLYA= +github.com/aws/smithy-go v1.21.0/go.mod h1:irrKGvNn1InZwb2d7fkIRNucdfwR8R+Ts3wxYa/cJHg= +github.com/dafny-lang/DafnyRuntimeGo/v4 v4.9.2 h1:g/xAj4F7Zt9wXJ6QjfbfocVi/ZYlAFpNddHCFyfzRDg= +github.com/dafny-lang/DafnyRuntimeGo/v4 v4.9.2/go.mod h1:l2Tm4N2DKuq3ljONC2vOATeM9PUpXbIc8SgXdwwqEto= diff --git a/customer-preview/mpl/AlgorithmSuites/AlgorithmSuites.go b/customer-preview/mpl/AlgorithmSuites/AlgorithmSuites.go new file mode 100644 index 000000000..811030d55 --- /dev/null +++ b/customer-preview/mpl/AlgorithmSuites/AlgorithmSuites.go @@ -0,0 +1,471 @@ +// Package AlgorithmSuites +// Dafny module AlgorithmSuites compiled into Go + +package AlgorithmSuites + +import ( + os "os" + + m_ComAmazonawsDynamodbTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/ComAmazonawsDynamodbTypes" + m_Com_Amazonaws_Dynamodb "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/Com_Amazonaws_Dynamodb" + m_ComAmazonawsKmsTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/ComAmazonawsKmsTypes" + m_Com_Amazonaws_Kms "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/Com_Amazonaws_Kms" + m_AwsArnParsing "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsArnParsing" + m_AwsCryptographyKeyStoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreOperations" + m_AwsCryptographyKeyStoreTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreTypes" + m_AwsCryptographyMaterialProvidersTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersTypes" + m_AwsKmsMrkMatchForDecrypt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkMatchForDecrypt" + m_AwsKmsUtils "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsUtils" + m_CreateKeyStoreTable "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeyStoreTable" + m_CreateKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeys" + m_DDBKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DDBKeystoreOperations" + m_GetKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/GetKeys" + m_KMSKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KMSKeystoreOperations" + m_KeyStore "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStore" + m_KeyStoreErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStoreErrorMessages" + m_KmsArn "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KmsArn" + m_Structure "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Structure" + m_AtomicPrimitives "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AtomicPrimitives" + m_AwsCryptographyPrimitivesOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesOperations" + m_AwsCryptographyPrimitivesTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesTypes" + m_Digest "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Digest" + m_HKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/HKDF" + m_KdfCtr "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/KdfCtr" + m_Random "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Random" + m_WrappedHKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHKDF" + m_WrappedHMAC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHMAC" + m_Actions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Actions" + m_Base64 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64" + m_Base64Lemmas "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64Lemmas" + m_BoundedInts "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/BoundedInts" + m_DivInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternals" + m_DivInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternalsNonlinear" + m_DivMod "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivMod" + m_FileIO "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FileIO" + m_FloatCompare "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FloatCompare" + m_Functions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Functions" + m_GeneralInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GeneralInternals" + m_GetOpt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GetOpt" + m_HexStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/HexStrings" + m_Logarithm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Logarithm" + m__Math "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Math_" + m_ModInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternals" + m_ModInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternalsNonlinear" + m_Mul "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Mul" + m_MulInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternals" + m_MulInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternalsNonlinear" + m_Power "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Power" + m_Relations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Relations" + m_Seq "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq" + m_Seq_MergeSort "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq_MergeSort" + m_Sorting "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Sorting" + m_StandardLibrary "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary" + m_StandardLibraryInterop "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibraryInterop" + m_StandardLibrary_Sequence "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_Sequence" + m_StandardLibrary_String "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_String" + m_StandardLibrary_UInt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_UInt" + m_Streams "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Streams" + m_UnicodeStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UnicodeStrings" + m__Unicode "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Unicode_" + m_Utf16EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf16EncodingForm" + m_Utf8EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf8EncodingForm" + m_Wrappers "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers" + m__System "github.com/dafny-lang/DafnyRuntimeGo/v4/System_" + _dafny "github.com/dafny-lang/DafnyRuntimeGo/v4/dafny" +) + +var _ = os.Args +var _ _dafny.Dummy__ +var _ m__System.Dummy__ +var _ m_Wrappers.Dummy__ +var _ m_BoundedInts.Dummy__ +var _ m_StandardLibrary_UInt.Dummy__ +var _ m_StandardLibrary_Sequence.Dummy__ +var _ m_StandardLibrary_String.Dummy__ +var _ m_StandardLibrary.Dummy__ +var _ m_AwsCryptographyPrimitivesTypes.Dummy__ +var _ m_Random.Dummy__ +var _ m_Digest.Dummy__ +var _ m_WrappedHMAC.Dummy__ +var _ m_HKDF.Dummy__ +var _ m_WrappedHKDF.Dummy__ +var _ m_KdfCtr.Dummy__ +var _ m_AwsCryptographyPrimitivesOperations.Dummy__ +var _ m_AtomicPrimitives.Dummy__ +var _ m_ComAmazonawsDynamodbTypes.Dummy__ +var _ m_ComAmazonawsKmsTypes.Dummy__ +var _ m_Relations.Dummy__ +var _ m_Seq_MergeSort.Dummy__ +var _ m__Math.Dummy__ +var _ m_Seq.Dummy__ +var _ m__Unicode.Dummy__ +var _ m_Functions.Dummy__ +var _ m_Utf8EncodingForm.Dummy__ +var _ m_Utf16EncodingForm.Dummy__ +var _ m_UnicodeStrings.Dummy__ +var _ m_FileIO.Dummy__ +var _ m_GeneralInternals.Dummy__ +var _ m_MulInternalsNonlinear.Dummy__ +var _ m_MulInternals.Dummy__ +var _ m_Mul.Dummy__ +var _ m_ModInternalsNonlinear.Dummy__ +var _ m_DivInternalsNonlinear.Dummy__ +var _ m_ModInternals.Dummy__ +var _ m_DivInternals.Dummy__ +var _ m_DivMod.Dummy__ +var _ m_Power.Dummy__ +var _ m_Logarithm.Dummy__ +var _ m_StandardLibraryInterop.Dummy__ +var _ m_Streams.Dummy__ +var _ m_Sorting.Dummy__ +var _ m_HexStrings.Dummy__ +var _ m_GetOpt.Dummy__ +var _ m_FloatCompare.Dummy__ +var _ m_Base64.Dummy__ +var _ m_Base64Lemmas.Dummy__ +var _ m_Actions.Dummy__ +var _ m_AwsCryptographyKeyStoreTypes.Dummy__ +var _ m_AwsCryptographyMaterialProvidersTypes.Dummy__ +var _ m_AwsArnParsing.Dummy__ +var _ m_AwsKmsMrkMatchForDecrypt.Dummy__ +var _ m_AwsKmsUtils.Dummy__ +var _ m_KeyStoreErrorMessages.Dummy__ +var _ m_KmsArn.Dummy__ +var _ m_Structure.Dummy__ +var _ m_KMSKeystoreOperations.Dummy__ +var _ m_DDBKeystoreOperations.Dummy__ +var _ m_CreateKeys.Dummy__ +var _ m_CreateKeyStoreTable.Dummy__ +var _ m_GetKeys.Dummy__ +var _ m_AwsCryptographyKeyStoreOperations.Dummy__ +var _ m_Com_Amazonaws_Kms.Dummy__ +var _ m_Com_Amazonaws_Dynamodb.Dummy__ +var _ m_KeyStore.Dummy__ + +type Dummy__ struct{} + +// Definition of class Default__ +type Default__ struct { + dummy byte +} + +func New_Default___() *Default__ { + _this := Default__{} + + return &_this +} + +type CompanionStruct_Default___ struct { +} + +var Companion_Default___ = CompanionStruct_Default___{} + +func (_this *Default__) Equals(other *Default__) bool { + return _this == other +} + +func (_this *Default__) EqualsGeneric(x interface{}) bool { + other, ok := x.(*Default__) + return ok && _this.Equals(other) +} + +func (*Default__) String() string { + return "AlgorithmSuites.Default__" +} +func (_this *Default__) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = &Default__{} + +func (_static *CompanionStruct_Default___) SupportedESDKEncrypt_q(e m_AwsCryptographyMaterialProvidersTypes.Encrypt) bool { + return (((true) && ((((((e).Dtor_AES__GCM()).Dtor_keyLength()) == (int32(32))) || ((((e).Dtor_AES__GCM()).Dtor_keyLength()) == (int32(24)))) || ((((e).Dtor_AES__GCM()).Dtor_keyLength()) == (int32(16))))) && ((((e).Dtor_AES__GCM()).Dtor_tagLength()) == (int32(16)))) && ((((e).Dtor_AES__GCM()).Dtor_ivLength()) == (int32(12))) +} +func (_static *CompanionStruct_Default___) SupportedDBEEncrypt_q(e m_AwsCryptographyMaterialProvidersTypes.Encrypt) bool { + return (((true) && ((((e).Dtor_AES__GCM()).Dtor_keyLength()) == (int32(32)))) && ((((e).Dtor_AES__GCM()).Dtor_tagLength()) == (int32(16)))) && ((((e).Dtor_AES__GCM()).Dtor_ivLength()) == (int32(12))) +} +func (_static *CompanionStruct_Default___) SupportedDBEEDKWrapping_q(p m_AwsCryptographyMaterialProvidersTypes.EdkWrappingAlgorithm) bool { + return (((((((p).Is_IntermediateKeyWrapping()) && (true)) && ((((((p).Dtor_IntermediateKeyWrapping()).Dtor_pdkEncryptAlgorithm()).Dtor_AES__GCM()).Dtor_keyLength()) == (int32(32)))) && ((((((p).Dtor_IntermediateKeyWrapping()).Dtor_pdkEncryptAlgorithm()).Dtor_AES__GCM()).Dtor_tagLength()) == (int32(16)))) && ((((((p).Dtor_IntermediateKeyWrapping()).Dtor_pdkEncryptAlgorithm()).Dtor_AES__GCM()).Dtor_ivLength()) == (int32(12)))) && ((((p).Dtor_IntermediateKeyWrapping()).Dtor_macKeyKdf()).Is_HKDF())) && ((((p).Dtor_IntermediateKeyWrapping()).Dtor_keyEncryptionKeyKdf()).Is_HKDF()) +} +func (_static *CompanionStruct_Default___) KeyDerivationAlgorithm_q(kdf m_AwsCryptographyMaterialProvidersTypes.DerivationAlgorithm) bool { + return (!((true) && ((kdf).Is_HKDF())) || (((((kdf).Dtor_HKDF()).Dtor_inputKeyLength()) == (((kdf).Dtor_HKDF()).Dtor_outputKeyLength())) && (!((((kdf).Dtor_HKDF()).Dtor_hmac()).Equals(m_AwsCryptographyPrimitivesTypes.Companion_DigestAlgorithm_.Create_SHA__512_())) || ((((kdf).Dtor_HKDF()).Dtor_inputKeyLength()) == (int32(32)))))) && (!((kdf).Is_None())) +} +func (_static *CompanionStruct_Default___) CommitmentDerivationAlgorithm_q(kdf m_AwsCryptographyMaterialProvidersTypes.DerivationAlgorithm) bool { + return (!((true) && ((kdf).Is_HKDF())) || (((((((kdf).Dtor_HKDF()).Dtor_hmac()).Is_SHA__512()) && ((((kdf).Dtor_HKDF()).Dtor_saltLength()) == (int32(32)))) && ((((kdf).Dtor_HKDF()).Dtor_inputKeyLength()) == (int32(32)))) && ((((kdf).Dtor_HKDF()).Dtor_outputKeyLength()) == (int32(32))))) && (!((kdf).Is_IDENTITY())) +} +func (_static *CompanionStruct_Default___) EdkWrappingAlgorithm_q(alg m_AwsCryptographyMaterialProvidersTypes.EdkWrappingAlgorithm) bool { + return ((((((alg).Is_IntermediateKeyWrapping()) && ((((alg).Dtor_IntermediateKeyWrapping()).Dtor_keyEncryptionKeyKdf()).Is_HKDF())) && ((((alg).Dtor_IntermediateKeyWrapping()).Dtor_macKeyKdf()).Is_HKDF())) && (true)) && ((((((alg).Dtor_IntermediateKeyWrapping()).Dtor_pdkEncryptAlgorithm()).Dtor_AES__GCM()).Dtor_keyLength()) == (int32(32)))) || ((alg).Is_DIRECT__KEY__WRAPPING()) +} +func (_static *CompanionStruct_Default___) AlgorithmSuiteInfo_q(a m_AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo) bool { + return ((((((((Companion_Default___.KeyDerivationAlgorithm_q((a).Dtor_kdf())) && (Companion_Default___.CommitmentDerivationAlgorithm_q((a).Dtor_commitment()))) && (Companion_Default___.EdkWrappingAlgorithm_q((a).Dtor_edkWrapping()))) && (!(((a).Dtor_kdf()).Is_HKDF()) || ((true) && (((((a).Dtor_kdf()).Dtor_HKDF()).Dtor_outputKeyLength()) == ((((a).Dtor_encrypt()).Dtor_AES__GCM()).Dtor_keyLength()))))) && (!(((a).Dtor_signature()).Is_ECDSA()) || (((a).Dtor_kdf()).Is_HKDF()))) && (!(((a).Dtor_commitment()).Is_HKDF()) || ((((((a).Dtor_commitment()).Dtor_HKDF()).Dtor_saltLength()) == (int32(32))) && (((a).Dtor_commitment()).Equals((a).Dtor_kdf()))))) && (!(((a).Dtor_edkWrapping()).Is_IntermediateKeyWrapping()) || (((((a).Dtor_kdf()).Is_HKDF()) && (((((a).Dtor_edkWrapping()).Dtor_IntermediateKeyWrapping()).Dtor_keyEncryptionKeyKdf()).Equals((a).Dtor_kdf()))) && (((((a).Dtor_edkWrapping()).Dtor_IntermediateKeyWrapping()).Dtor_macKeyKdf()).Equals((a).Dtor_kdf()))))) && (!((((a).Dtor_kdf()).Is_HKDF()) && (((a).Dtor_commitment()).Is_None())) || (((((a).Dtor_kdf()).Dtor_HKDF()).Dtor_saltLength()) == (int32(0))))) && (!(!(((a).Dtor_symmetricSignature()).Is_None())) || ((true) && (((a).Dtor_edkWrapping()).Is_IntermediateKeyWrapping()))) +} +func (_static *CompanionStruct_Default___) ESDKAlgorithmSuite_q(a m_AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo) bool { + return ((Companion_Default___.AlgorithmSuiteInfo_q(a)) && (Companion_Default___.SupportedESDKEncrypt_q((a).Dtor_encrypt()))) && (func() bool { + var _source0 m_AwsCryptographyMaterialProvidersTypes.ESDKAlgorithmSuiteId = ((a).Dtor_id()).Dtor_ESDK() + _ = _source0 + { + if _source0.Is_ALG__AES__128__GCM__IV12__TAG16__NO__KDF() { + return ((((((((_dafny.Companion_Sequence_.Equal((a).Dtor_binaryId(), _dafny.SeqOf(uint8(0), uint8(20)))) && (((a).Dtor_messageVersion()) == (int32(1)))) && (true)) && (((((a).Dtor_encrypt()).Dtor_AES__GCM()).Dtor_keyLength()) == (int32(16)))) && (((a).Dtor_kdf()).Is_IDENTITY())) && (((a).Dtor_signature()).Is_None())) && (((a).Dtor_commitment()).Is_None())) && (((a).Dtor_symmetricSignature()).Is_None())) && (((a).Dtor_edkWrapping()).Is_DIRECT__KEY__WRAPPING()) + } + } + { + if _source0.Is_ALG__AES__192__GCM__IV12__TAG16__NO__KDF() { + return ((((((((_dafny.Companion_Sequence_.Equal((a).Dtor_binaryId(), _dafny.SeqOf(uint8(0), uint8(70)))) && (((a).Dtor_messageVersion()) == (int32(1)))) && (true)) && (((((a).Dtor_encrypt()).Dtor_AES__GCM()).Dtor_keyLength()) == (int32(24)))) && (((a).Dtor_kdf()).Is_IDENTITY())) && (((a).Dtor_signature()).Is_None())) && (((a).Dtor_commitment()).Is_None())) && (((a).Dtor_symmetricSignature()).Is_None())) && (((a).Dtor_edkWrapping()).Is_DIRECT__KEY__WRAPPING()) + } + } + { + if _source0.Is_ALG__AES__256__GCM__IV12__TAG16__NO__KDF() { + return ((((((((_dafny.Companion_Sequence_.Equal((a).Dtor_binaryId(), _dafny.SeqOf(uint8(0), uint8(120)))) && (((a).Dtor_messageVersion()) == (int32(1)))) && (true)) && (((((a).Dtor_encrypt()).Dtor_AES__GCM()).Dtor_keyLength()) == (int32(32)))) && (((a).Dtor_kdf()).Is_IDENTITY())) && (((a).Dtor_signature()).Is_None())) && (((a).Dtor_commitment()).Is_None())) && (((a).Dtor_symmetricSignature()).Is_None())) && (((a).Dtor_edkWrapping()).Is_DIRECT__KEY__WRAPPING()) + } + } + { + if _source0.Is_ALG__AES__128__GCM__IV12__TAG16__HKDF__SHA256() { + return (((((((((_dafny.Companion_Sequence_.Equal((a).Dtor_binaryId(), _dafny.SeqOf(uint8(1), uint8(20)))) && (((a).Dtor_messageVersion()) == (int32(1)))) && (true)) && (((((a).Dtor_encrypt()).Dtor_AES__GCM()).Dtor_keyLength()) == (int32(16)))) && (((a).Dtor_kdf()).Is_HKDF())) && (((((a).Dtor_kdf()).Dtor_HKDF()).Dtor_hmac()).Equals(m_AwsCryptographyPrimitivesTypes.Companion_DigestAlgorithm_.Create_SHA__256_()))) && (((a).Dtor_signature()).Is_None())) && (((a).Dtor_commitment()).Is_None())) && (((a).Dtor_symmetricSignature()).Is_None())) && (((a).Dtor_edkWrapping()).Is_DIRECT__KEY__WRAPPING()) + } + } + { + if _source0.Is_ALG__AES__192__GCM__IV12__TAG16__HKDF__SHA256() { + return (((((((((_dafny.Companion_Sequence_.Equal((a).Dtor_binaryId(), _dafny.SeqOf(uint8(1), uint8(70)))) && (((a).Dtor_messageVersion()) == (int32(1)))) && (true)) && (((((a).Dtor_encrypt()).Dtor_AES__GCM()).Dtor_keyLength()) == (int32(24)))) && (((a).Dtor_kdf()).Is_HKDF())) && (((((a).Dtor_kdf()).Dtor_HKDF()).Dtor_hmac()).Equals(m_AwsCryptographyPrimitivesTypes.Companion_DigestAlgorithm_.Create_SHA__256_()))) && (((a).Dtor_signature()).Is_None())) && (((a).Dtor_commitment()).Is_None())) && (((a).Dtor_symmetricSignature()).Is_None())) && (((a).Dtor_edkWrapping()).Is_DIRECT__KEY__WRAPPING()) + } + } + { + if _source0.Is_ALG__AES__256__GCM__IV12__TAG16__HKDF__SHA256() { + return (((((((((_dafny.Companion_Sequence_.Equal((a).Dtor_binaryId(), _dafny.SeqOf(uint8(1), uint8(120)))) && (((a).Dtor_messageVersion()) == (int32(1)))) && (true)) && (((((a).Dtor_encrypt()).Dtor_AES__GCM()).Dtor_keyLength()) == (int32(32)))) && (((a).Dtor_kdf()).Is_HKDF())) && (((((a).Dtor_kdf()).Dtor_HKDF()).Dtor_hmac()).Equals(m_AwsCryptographyPrimitivesTypes.Companion_DigestAlgorithm_.Create_SHA__256_()))) && (((a).Dtor_signature()).Is_None())) && (((a).Dtor_commitment()).Is_None())) && (((a).Dtor_symmetricSignature()).Is_None())) && (((a).Dtor_edkWrapping()).Is_DIRECT__KEY__WRAPPING()) + } + } + { + if _source0.Is_ALG__AES__128__GCM__IV12__TAG16__HKDF__SHA256__ECDSA__P256() { + return ((((((((((_dafny.Companion_Sequence_.Equal((a).Dtor_binaryId(), _dafny.SeqOf(uint8(2), uint8(20)))) && (((a).Dtor_messageVersion()) == (int32(1)))) && (true)) && (((((a).Dtor_encrypt()).Dtor_AES__GCM()).Dtor_keyLength()) == (int32(16)))) && (((a).Dtor_kdf()).Is_HKDF())) && (((((a).Dtor_kdf()).Dtor_HKDF()).Dtor_hmac()).Equals(m_AwsCryptographyPrimitivesTypes.Companion_DigestAlgorithm_.Create_SHA__256_()))) && (((a).Dtor_signature()).Is_ECDSA())) && (((((a).Dtor_signature()).Dtor_ECDSA()).Dtor_curve()).Equals(m_AwsCryptographyPrimitivesTypes.Companion_ECDSASignatureAlgorithm_.Create_ECDSA__P256_()))) && (((a).Dtor_commitment()).Is_None())) && (((a).Dtor_symmetricSignature()).Is_None())) && (((a).Dtor_edkWrapping()).Is_DIRECT__KEY__WRAPPING()) + } + } + { + if _source0.Is_ALG__AES__192__GCM__IV12__TAG16__HKDF__SHA384__ECDSA__P384() { + return ((((((((((_dafny.Companion_Sequence_.Equal((a).Dtor_binaryId(), _dafny.SeqOf(uint8(3), uint8(70)))) && (((a).Dtor_messageVersion()) == (int32(1)))) && (true)) && (((((a).Dtor_encrypt()).Dtor_AES__GCM()).Dtor_keyLength()) == (int32(24)))) && (((a).Dtor_kdf()).Is_HKDF())) && (((((a).Dtor_kdf()).Dtor_HKDF()).Dtor_hmac()).Equals(m_AwsCryptographyPrimitivesTypes.Companion_DigestAlgorithm_.Create_SHA__384_()))) && (((a).Dtor_signature()).Is_ECDSA())) && (((((a).Dtor_signature()).Dtor_ECDSA()).Dtor_curve()).Equals(m_AwsCryptographyPrimitivesTypes.Companion_ECDSASignatureAlgorithm_.Create_ECDSA__P384_()))) && (((a).Dtor_commitment()).Is_None())) && (((a).Dtor_symmetricSignature()).Is_None())) && (((a).Dtor_edkWrapping()).Is_DIRECT__KEY__WRAPPING()) + } + } + { + if _source0.Is_ALG__AES__256__GCM__IV12__TAG16__HKDF__SHA384__ECDSA__P384() { + return ((((((((((_dafny.Companion_Sequence_.Equal((a).Dtor_binaryId(), _dafny.SeqOf(uint8(3), uint8(120)))) && (((a).Dtor_messageVersion()) == (int32(1)))) && (true)) && (((((a).Dtor_encrypt()).Dtor_AES__GCM()).Dtor_keyLength()) == (int32(32)))) && (((a).Dtor_kdf()).Is_HKDF())) && (((((a).Dtor_kdf()).Dtor_HKDF()).Dtor_hmac()).Equals(m_AwsCryptographyPrimitivesTypes.Companion_DigestAlgorithm_.Create_SHA__384_()))) && (((a).Dtor_signature()).Is_ECDSA())) && (((((a).Dtor_signature()).Dtor_ECDSA()).Dtor_curve()).Equals(m_AwsCryptographyPrimitivesTypes.Companion_ECDSASignatureAlgorithm_.Create_ECDSA__P384_()))) && (((a).Dtor_commitment()).Is_None())) && (((a).Dtor_symmetricSignature()).Is_None())) && (((a).Dtor_edkWrapping()).Is_DIRECT__KEY__WRAPPING()) + } + } + { + if _source0.Is_ALG__AES__256__GCM__HKDF__SHA512__COMMIT__KEY() { + return (((((((((_dafny.Companion_Sequence_.Equal((a).Dtor_binaryId(), _dafny.SeqOf(uint8(4), uint8(120)))) && (((a).Dtor_messageVersion()) == (int32(2)))) && (true)) && (((((a).Dtor_encrypt()).Dtor_AES__GCM()).Dtor_keyLength()) == (int32(32)))) && (((a).Dtor_kdf()).Is_HKDF())) && (((((a).Dtor_kdf()).Dtor_HKDF()).Dtor_hmac()).Equals(m_AwsCryptographyPrimitivesTypes.Companion_DigestAlgorithm_.Create_SHA__512_()))) && (((a).Dtor_signature()).Is_None())) && (((a).Dtor_commitment()).Is_HKDF())) && (((a).Dtor_symmetricSignature()).Is_None())) && (((a).Dtor_edkWrapping()).Is_DIRECT__KEY__WRAPPING()) + } + } + { + return ((((((((((_dafny.Companion_Sequence_.Equal((a).Dtor_binaryId(), _dafny.SeqOf(uint8(5), uint8(120)))) && (((a).Dtor_messageVersion()) == (int32(2)))) && (true)) && (((((a).Dtor_encrypt()).Dtor_AES__GCM()).Dtor_keyLength()) == (int32(32)))) && (((a).Dtor_kdf()).Is_HKDF())) && (((((a).Dtor_kdf()).Dtor_HKDF()).Dtor_hmac()).Equals(m_AwsCryptographyPrimitivesTypes.Companion_DigestAlgorithm_.Create_SHA__512_()))) && (((a).Dtor_signature()).Is_ECDSA())) && (((((a).Dtor_signature()).Dtor_ECDSA()).Dtor_curve()).Equals(m_AwsCryptographyPrimitivesTypes.Companion_ECDSASignatureAlgorithm_.Create_ECDSA__P384_()))) && (((a).Dtor_commitment()).Is_HKDF())) && (((a).Dtor_symmetricSignature()).Is_None())) && (((a).Dtor_edkWrapping()).Is_DIRECT__KEY__WRAPPING()) + } + }()) +} +func (_static *CompanionStruct_Default___) DBEAlgorithmSuite_q(a m_AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo) bool { + return (((Companion_Default___.AlgorithmSuiteInfo_q(a)) && (Companion_Default___.SupportedDBEEncrypt_q((a).Dtor_encrypt()))) && (Companion_Default___.SupportedDBEEDKWrapping_q((a).Dtor_edkWrapping()))) && (func() bool { + var _source0 m_AwsCryptographyMaterialProvidersTypes.DBEAlgorithmSuiteId = ((a).Dtor_id()).Dtor_DBE() + _ = _source0 + { + if _source0.Is_ALG__AES__256__GCM__HKDF__SHA512__COMMIT__KEY__SYMSIG__HMAC__SHA384() { + return ((((((((((((_dafny.Companion_Sequence_.Equal((a).Dtor_binaryId(), _dafny.SeqOf(uint8(103), uint8(0)))) && (((a).Dtor_messageVersion()) == (int32(1)))) && (true)) && (((((a).Dtor_encrypt()).Dtor_AES__GCM()).Dtor_keyLength()) == (int32(32)))) && (((a).Dtor_kdf()).Is_HKDF())) && (((((a).Dtor_kdf()).Dtor_HKDF()).Dtor_hmac()).Equals(m_AwsCryptographyPrimitivesTypes.Companion_DigestAlgorithm_.Create_SHA__512_()))) && (((a).Dtor_signature()).Is_None())) && (((a).Dtor_commitment()).Is_HKDF())) && (((a).Dtor_symmetricSignature()).Is_HMAC())) && ((((a).Dtor_symmetricSignature()).Dtor_HMAC()).Equals(m_AwsCryptographyPrimitivesTypes.Companion_DigestAlgorithm_.Create_SHA__384_()))) && (((a).Dtor_edkWrapping()).Is_IntermediateKeyWrapping())) && (true)) && (((((((a).Dtor_edkWrapping()).Dtor_IntermediateKeyWrapping()).Dtor_pdkEncryptAlgorithm()).Dtor_AES__GCM()).Dtor_keyLength()) == (int32(32))) + } + } + { + return (((((((((((((_dafny.Companion_Sequence_.Equal((a).Dtor_binaryId(), _dafny.SeqOf(uint8(103), uint8(1)))) && (((a).Dtor_messageVersion()) == (int32(1)))) && (true)) && (((((a).Dtor_encrypt()).Dtor_AES__GCM()).Dtor_keyLength()) == (int32(32)))) && (((a).Dtor_kdf()).Is_HKDF())) && (((((a).Dtor_kdf()).Dtor_HKDF()).Dtor_hmac()).Equals(m_AwsCryptographyPrimitivesTypes.Companion_DigestAlgorithm_.Create_SHA__512_()))) && (((a).Dtor_signature()).Is_ECDSA())) && (((((a).Dtor_signature()).Dtor_ECDSA()).Dtor_curve()).Equals(m_AwsCryptographyPrimitivesTypes.Companion_ECDSASignatureAlgorithm_.Create_ECDSA__P384_()))) && (((a).Dtor_commitment()).Is_HKDF())) && (((a).Dtor_symmetricSignature()).Is_HMAC())) && ((((a).Dtor_symmetricSignature()).Dtor_HMAC()).Equals(m_AwsCryptographyPrimitivesTypes.Companion_DigestAlgorithm_.Create_SHA__384_()))) && (((a).Dtor_edkWrapping()).Is_IntermediateKeyWrapping())) && (true)) && (((((((a).Dtor_edkWrapping()).Dtor_IntermediateKeyWrapping()).Dtor_pdkEncryptAlgorithm()).Dtor_AES__GCM()).Dtor_keyLength()) == (int32(32))) + } + }()) +} +func (_static *CompanionStruct_Default___) AlgorithmSuite_q(a m_AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo) bool { + var _source0 m_AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteId = (a).Dtor_id() + _ = _source0 + { + if _source0.Is_ESDK() { + return Companion_Default___.ESDKAlgorithmSuite_q(a) + } + } + { + return Companion_Default___.DBEAlgorithmSuite_q(a) + } +} +func (_static *CompanionStruct_Default___) HKDF__SHA__256(keyLength int32) m_AwsCryptographyMaterialProvidersTypes.DerivationAlgorithm { + return m_AwsCryptographyMaterialProvidersTypes.Companion_DerivationAlgorithm_.Create_HKDF_(m_AwsCryptographyMaterialProvidersTypes.Companion_HKDF_.Create_HKDF_(m_AwsCryptographyPrimitivesTypes.Companion_DigestAlgorithm_.Create_SHA__256_(), int32(0), keyLength, keyLength)) +} +func (_static *CompanionStruct_Default___) HKDF__SHA__384(keyLength int32) m_AwsCryptographyMaterialProvidersTypes.DerivationAlgorithm { + return m_AwsCryptographyMaterialProvidersTypes.Companion_DerivationAlgorithm_.Create_HKDF_(m_AwsCryptographyMaterialProvidersTypes.Companion_HKDF_.Create_HKDF_(m_AwsCryptographyPrimitivesTypes.Companion_DigestAlgorithm_.Create_SHA__384_(), int32(0), keyLength, keyLength)) +} +func (_static *CompanionStruct_Default___) HKDF__SHA__512(keyLength int32) m_AwsCryptographyMaterialProvidersTypes.DerivationAlgorithm { + return m_AwsCryptographyMaterialProvidersTypes.Companion_DerivationAlgorithm_.Create_HKDF_(m_AwsCryptographyMaterialProvidersTypes.Companion_HKDF_.Create_HKDF_(m_AwsCryptographyPrimitivesTypes.Companion_DigestAlgorithm_.Create_SHA__512_(), int32(32), keyLength, keyLength)) +} +func (_static *CompanionStruct_Default___) GetSuite(id m_AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteId) m_AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo { + var _source0 m_AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteId = id + _ = _source0 + { + if _source0.Is_ESDK() { + var _0_e m_AwsCryptographyMaterialProvidersTypes.ESDKAlgorithmSuiteId = _source0.Get_().(m_AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteId_ESDK).ESDK + _ = _0_e + return Companion_Default___.GetESDKSuite(_0_e) + } + } + { + var _1_e m_AwsCryptographyMaterialProvidersTypes.DBEAlgorithmSuiteId = _source0.Get_().(m_AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteId_DBE).DBE + _ = _1_e + return Companion_Default___.GetDBESuite(_1_e) + } +} +func (_static *CompanionStruct_Default___) GetDBESuite(id m_AwsCryptographyMaterialProvidersTypes.DBEAlgorithmSuiteId) m_AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo { + return (Companion_Default___.SupportedDBEAlgorithmSuites()).Get(id).(m_AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo) +} +func (_static *CompanionStruct_Default___) GetESDKSuite(id m_AwsCryptographyMaterialProvidersTypes.ESDKAlgorithmSuiteId) m_AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo { + return (Companion_Default___.SupportedESDKAlgorithmSuites()).Get(id).(m_AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo) +} +func (_static *CompanionStruct_Default___) GetEncryptKeyLength(a m_AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo) int32 { + var _source0 m_AwsCryptographyMaterialProvidersTypes.Encrypt = (a).Dtor_encrypt() + _ = _source0 + { + var _0_e m_AwsCryptographyPrimitivesTypes.AES__GCM = _source0.Get_().(m_AwsCryptographyMaterialProvidersTypes.Encrypt_AES__GCM).AES__GCM + _ = _0_e + return (_0_e).Dtor_keyLength() + } +} +func (_static *CompanionStruct_Default___) GetEncryptTagLength(a m_AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo) int32 { + var _source0 m_AwsCryptographyMaterialProvidersTypes.Encrypt = (a).Dtor_encrypt() + _ = _source0 + { + var _0_e m_AwsCryptographyPrimitivesTypes.AES__GCM = _source0.Get_().(m_AwsCryptographyMaterialProvidersTypes.Encrypt_AES__GCM).AES__GCM + _ = _0_e + return (_0_e).Dtor_tagLength() + } +} +func (_static *CompanionStruct_Default___) GetEncryptIvLength(a m_AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo) int32 { + var _source0 m_AwsCryptographyMaterialProvidersTypes.Encrypt = (a).Dtor_encrypt() + _ = _source0 + { + var _0_e m_AwsCryptographyPrimitivesTypes.AES__GCM = _source0.Get_().(m_AwsCryptographyMaterialProvidersTypes.Encrypt_AES__GCM).AES__GCM + _ = _0_e + return (_0_e).Dtor_ivLength() + } +} +func (_static *CompanionStruct_Default___) GetAlgorithmSuiteInfo(binaryId_q _dafny.Sequence) m_Wrappers.Result { + var _0_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need((Companion_Default___.AlgorithmSuiteInfoByBinaryId()).Contains(binaryId_q), m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.SeqOfString("Invalid BinaryId"))) + _ = _0_valueOrError0 + if (_0_valueOrError0).IsFailure() { + return (_0_valueOrError0).PropagateFailure() + } else { + return m_Wrappers.Companion_Result_.Create_Success_((Companion_Default___.AlgorithmSuiteInfoByBinaryId()).Get(binaryId_q).(m_AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo)) + } +} +func (_static *CompanionStruct_Default___) Bits128() int32 { + return int32(16) +} +func (_static *CompanionStruct_Default___) TagLen() int32 { + return int32(16) +} +func (_static *CompanionStruct_Default___) IvLen() int32 { + return int32(12) +} +func (_static *CompanionStruct_Default___) AES__128__GCM__IV12__TAG16() m_AwsCryptographyMaterialProvidersTypes.Encrypt { + return m_AwsCryptographyMaterialProvidersTypes.Companion_Encrypt_.Create_AES__GCM_(m_AwsCryptographyPrimitivesTypes.Companion_AES__GCM_.Create_AES__GCM_(Companion_Default___.Bits128(), Companion_Default___.TagLen(), Companion_Default___.IvLen())) +} +func (_static *CompanionStruct_Default___) Bits192() int32 { + return int32(24) +} +func (_static *CompanionStruct_Default___) AES__192__GCM__IV12__TAG16() m_AwsCryptographyMaterialProvidersTypes.Encrypt { + return m_AwsCryptographyMaterialProvidersTypes.Companion_Encrypt_.Create_AES__GCM_(m_AwsCryptographyPrimitivesTypes.Companion_AES__GCM_.Create_AES__GCM_(Companion_Default___.Bits192(), Companion_Default___.TagLen(), Companion_Default___.IvLen())) +} +func (_static *CompanionStruct_Default___) Bits256() int32 { + return int32(32) +} +func (_static *CompanionStruct_Default___) AES__256__GCM__IV12__TAG16() m_AwsCryptographyMaterialProvidersTypes.Encrypt { + return m_AwsCryptographyMaterialProvidersTypes.Companion_Encrypt_.Create_AES__GCM_(m_AwsCryptographyPrimitivesTypes.Companion_AES__GCM_.Create_AES__GCM_(Companion_Default___.Bits256(), Companion_Default___.TagLen(), Companion_Default___.IvLen())) +} +func (_static *CompanionStruct_Default___) EDK__INTERMEDIATE__WRAPPING__AES__GCM__256__HKDF__SHA__512() m_AwsCryptographyMaterialProvidersTypes.EdkWrappingAlgorithm { + return m_AwsCryptographyMaterialProvidersTypes.Companion_EdkWrappingAlgorithm_.Create_IntermediateKeyWrapping_(m_AwsCryptographyMaterialProvidersTypes.Companion_IntermediateKeyWrapping_.Create_IntermediateKeyWrapping_(Companion_Default___.HKDF__SHA__512(Companion_Default___.Bits256()), Companion_Default___.HKDF__SHA__512(Companion_Default___.Bits256()), Companion_Default___.AES__256__GCM__IV12__TAG16())) +} +func (_static *CompanionStruct_Default___) DBE__ALG__AES__256__GCM__HKDF__SHA512__COMMIT__KEY__SYMSIG__HMAC__SHA384() m_AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo { + return m_AwsCryptographyMaterialProvidersTypes.Companion_AlgorithmSuiteInfo_.Create_AlgorithmSuiteInfo_(m_AwsCryptographyMaterialProvidersTypes.Companion_AlgorithmSuiteId_.Create_DBE_(m_AwsCryptographyMaterialProvidersTypes.Companion_DBEAlgorithmSuiteId_.Create_ALG__AES__256__GCM__HKDF__SHA512__COMMIT__KEY__SYMSIG__HMAC__SHA384_()), _dafny.SeqOf(uint8(103), uint8(0)), int32(1), Companion_Default___.AES__256__GCM__IV12__TAG16(), Companion_Default___.HKDF__SHA__512(Companion_Default___.Bits256()), Companion_Default___.HKDF__SHA__512(Companion_Default___.Bits256()), m_AwsCryptographyMaterialProvidersTypes.Companion_SignatureAlgorithm_.Create_None_(m_AwsCryptographyMaterialProvidersTypes.Companion_None_.Create_None_()), m_AwsCryptographyMaterialProvidersTypes.Companion_SymmetricSignatureAlgorithm_.Create_HMAC_(m_AwsCryptographyPrimitivesTypes.Companion_DigestAlgorithm_.Create_SHA__384_()), Companion_Default___.EDK__INTERMEDIATE__WRAPPING__AES__GCM__256__HKDF__SHA__512()) +} +func (_static *CompanionStruct_Default___) DBE__ALG__AES__256__GCM__HKDF__SHA512__COMMIT__KEY__ECDSA__P384__SYMSIG__HMAC__SHA384() m_AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo { + return m_AwsCryptographyMaterialProvidersTypes.Companion_AlgorithmSuiteInfo_.Create_AlgorithmSuiteInfo_(m_AwsCryptographyMaterialProvidersTypes.Companion_AlgorithmSuiteId_.Create_DBE_(m_AwsCryptographyMaterialProvidersTypes.Companion_DBEAlgorithmSuiteId_.Create_ALG__AES__256__GCM__HKDF__SHA512__COMMIT__KEY__ECDSA__P384__SYMSIG__HMAC__SHA384_()), _dafny.SeqOf(uint8(103), uint8(1)), int32(1), Companion_Default___.AES__256__GCM__IV12__TAG16(), Companion_Default___.HKDF__SHA__512(Companion_Default___.Bits256()), Companion_Default___.HKDF__SHA__512(Companion_Default___.Bits256()), m_AwsCryptographyMaterialProvidersTypes.Companion_SignatureAlgorithm_.Create_ECDSA_(m_AwsCryptographyMaterialProvidersTypes.Companion_ECDSA_.Create_ECDSA_(m_AwsCryptographyPrimitivesTypes.Companion_ECDSASignatureAlgorithm_.Create_ECDSA__P384_())), m_AwsCryptographyMaterialProvidersTypes.Companion_SymmetricSignatureAlgorithm_.Create_HMAC_(m_AwsCryptographyPrimitivesTypes.Companion_DigestAlgorithm_.Create_SHA__384_()), Companion_Default___.EDK__INTERMEDIATE__WRAPPING__AES__GCM__256__HKDF__SHA__512()) +} +func (_static *CompanionStruct_Default___) ESDK__ALG__AES__128__GCM__IV12__TAG16__NO__KDF() m_AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo { + return m_AwsCryptographyMaterialProvidersTypes.Companion_AlgorithmSuiteInfo_.Create_AlgorithmSuiteInfo_(m_AwsCryptographyMaterialProvidersTypes.Companion_AlgorithmSuiteId_.Create_ESDK_(m_AwsCryptographyMaterialProvidersTypes.Companion_ESDKAlgorithmSuiteId_.Create_ALG__AES__128__GCM__IV12__TAG16__NO__KDF_()), _dafny.SeqOf(uint8(0), uint8(20)), int32(1), Companion_Default___.AES__128__GCM__IV12__TAG16(), m_AwsCryptographyMaterialProvidersTypes.Companion_DerivationAlgorithm_.Create_IDENTITY_(m_AwsCryptographyMaterialProvidersTypes.Companion_IDENTITY_.Create_IDENTITY_()), m_AwsCryptographyMaterialProvidersTypes.Companion_DerivationAlgorithm_.Create_None_(m_AwsCryptographyMaterialProvidersTypes.Companion_None_.Create_None_()), m_AwsCryptographyMaterialProvidersTypes.Companion_SignatureAlgorithm_.Create_None_(m_AwsCryptographyMaterialProvidersTypes.Companion_None_.Create_None_()), m_AwsCryptographyMaterialProvidersTypes.Companion_SymmetricSignatureAlgorithm_.Create_None_(m_AwsCryptographyMaterialProvidersTypes.Companion_None_.Create_None_()), m_AwsCryptographyMaterialProvidersTypes.Companion_EdkWrappingAlgorithm_.Create_DIRECT__KEY__WRAPPING_(m_AwsCryptographyMaterialProvidersTypes.Companion_DIRECT__KEY__WRAPPING_.Create_DIRECT__KEY__WRAPPING_())) +} +func (_static *CompanionStruct_Default___) ESDK__ALG__AES__192__GCM__IV12__TAG16__NO__KDF() m_AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo { + return m_AwsCryptographyMaterialProvidersTypes.Companion_AlgorithmSuiteInfo_.Create_AlgorithmSuiteInfo_(m_AwsCryptographyMaterialProvidersTypes.Companion_AlgorithmSuiteId_.Create_ESDK_(m_AwsCryptographyMaterialProvidersTypes.Companion_ESDKAlgorithmSuiteId_.Create_ALG__AES__192__GCM__IV12__TAG16__NO__KDF_()), _dafny.SeqOf(uint8(0), uint8(70)), int32(1), Companion_Default___.AES__192__GCM__IV12__TAG16(), m_AwsCryptographyMaterialProvidersTypes.Companion_DerivationAlgorithm_.Create_IDENTITY_(m_AwsCryptographyMaterialProvidersTypes.Companion_IDENTITY_.Create_IDENTITY_()), m_AwsCryptographyMaterialProvidersTypes.Companion_DerivationAlgorithm_.Create_None_(m_AwsCryptographyMaterialProvidersTypes.Companion_None_.Create_None_()), m_AwsCryptographyMaterialProvidersTypes.Companion_SignatureAlgorithm_.Create_None_(m_AwsCryptographyMaterialProvidersTypes.Companion_None_.Create_None_()), m_AwsCryptographyMaterialProvidersTypes.Companion_SymmetricSignatureAlgorithm_.Create_None_(m_AwsCryptographyMaterialProvidersTypes.Companion_None_.Create_None_()), m_AwsCryptographyMaterialProvidersTypes.Companion_EdkWrappingAlgorithm_.Create_DIRECT__KEY__WRAPPING_(m_AwsCryptographyMaterialProvidersTypes.Companion_DIRECT__KEY__WRAPPING_.Create_DIRECT__KEY__WRAPPING_())) +} +func (_static *CompanionStruct_Default___) ESDK__ALG__AES__256__GCM__IV12__TAG16__NO__KDF() m_AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo { + return m_AwsCryptographyMaterialProvidersTypes.Companion_AlgorithmSuiteInfo_.Create_AlgorithmSuiteInfo_(m_AwsCryptographyMaterialProvidersTypes.Companion_AlgorithmSuiteId_.Create_ESDK_(m_AwsCryptographyMaterialProvidersTypes.Companion_ESDKAlgorithmSuiteId_.Create_ALG__AES__256__GCM__IV12__TAG16__NO__KDF_()), _dafny.SeqOf(uint8(0), uint8(120)), int32(1), Companion_Default___.AES__256__GCM__IV12__TAG16(), m_AwsCryptographyMaterialProvidersTypes.Companion_DerivationAlgorithm_.Create_IDENTITY_(m_AwsCryptographyMaterialProvidersTypes.Companion_IDENTITY_.Create_IDENTITY_()), m_AwsCryptographyMaterialProvidersTypes.Companion_DerivationAlgorithm_.Create_None_(m_AwsCryptographyMaterialProvidersTypes.Companion_None_.Create_None_()), m_AwsCryptographyMaterialProvidersTypes.Companion_SignatureAlgorithm_.Create_None_(m_AwsCryptographyMaterialProvidersTypes.Companion_None_.Create_None_()), m_AwsCryptographyMaterialProvidersTypes.Companion_SymmetricSignatureAlgorithm_.Create_None_(m_AwsCryptographyMaterialProvidersTypes.Companion_None_.Create_None_()), m_AwsCryptographyMaterialProvidersTypes.Companion_EdkWrappingAlgorithm_.Create_DIRECT__KEY__WRAPPING_(m_AwsCryptographyMaterialProvidersTypes.Companion_DIRECT__KEY__WRAPPING_.Create_DIRECT__KEY__WRAPPING_())) +} +func (_static *CompanionStruct_Default___) ESDK__ALG__AES__128__GCM__IV12__TAG16__HKDF__SHA256() m_AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo { + return m_AwsCryptographyMaterialProvidersTypes.Companion_AlgorithmSuiteInfo_.Create_AlgorithmSuiteInfo_(m_AwsCryptographyMaterialProvidersTypes.Companion_AlgorithmSuiteId_.Create_ESDK_(m_AwsCryptographyMaterialProvidersTypes.Companion_ESDKAlgorithmSuiteId_.Create_ALG__AES__128__GCM__IV12__TAG16__HKDF__SHA256_()), _dafny.SeqOf(uint8(1), uint8(20)), int32(1), Companion_Default___.AES__128__GCM__IV12__TAG16(), Companion_Default___.HKDF__SHA__256(Companion_Default___.Bits128()), m_AwsCryptographyMaterialProvidersTypes.Companion_DerivationAlgorithm_.Create_None_(m_AwsCryptographyMaterialProvidersTypes.Companion_None_.Create_None_()), m_AwsCryptographyMaterialProvidersTypes.Companion_SignatureAlgorithm_.Create_None_(m_AwsCryptographyMaterialProvidersTypes.Companion_None_.Create_None_()), m_AwsCryptographyMaterialProvidersTypes.Companion_SymmetricSignatureAlgorithm_.Create_None_(m_AwsCryptographyMaterialProvidersTypes.Companion_None_.Create_None_()), m_AwsCryptographyMaterialProvidersTypes.Companion_EdkWrappingAlgorithm_.Create_DIRECT__KEY__WRAPPING_(m_AwsCryptographyMaterialProvidersTypes.Companion_DIRECT__KEY__WRAPPING_.Create_DIRECT__KEY__WRAPPING_())) +} +func (_static *CompanionStruct_Default___) ESDK__ALG__AES__192__GCM__IV12__TAG16__HKDF__SHA256() m_AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo { + return m_AwsCryptographyMaterialProvidersTypes.Companion_AlgorithmSuiteInfo_.Create_AlgorithmSuiteInfo_(m_AwsCryptographyMaterialProvidersTypes.Companion_AlgorithmSuiteId_.Create_ESDK_(m_AwsCryptographyMaterialProvidersTypes.Companion_ESDKAlgorithmSuiteId_.Create_ALG__AES__192__GCM__IV12__TAG16__HKDF__SHA256_()), _dafny.SeqOf(uint8(1), uint8(70)), int32(1), Companion_Default___.AES__192__GCM__IV12__TAG16(), Companion_Default___.HKDF__SHA__256(Companion_Default___.Bits192()), m_AwsCryptographyMaterialProvidersTypes.Companion_DerivationAlgorithm_.Create_None_(m_AwsCryptographyMaterialProvidersTypes.Companion_None_.Create_None_()), m_AwsCryptographyMaterialProvidersTypes.Companion_SignatureAlgorithm_.Create_None_(m_AwsCryptographyMaterialProvidersTypes.Companion_None_.Create_None_()), m_AwsCryptographyMaterialProvidersTypes.Companion_SymmetricSignatureAlgorithm_.Create_None_(m_AwsCryptographyMaterialProvidersTypes.Companion_None_.Create_None_()), m_AwsCryptographyMaterialProvidersTypes.Companion_EdkWrappingAlgorithm_.Create_DIRECT__KEY__WRAPPING_(m_AwsCryptographyMaterialProvidersTypes.Companion_DIRECT__KEY__WRAPPING_.Create_DIRECT__KEY__WRAPPING_())) +} +func (_static *CompanionStruct_Default___) ESDK__ALG__AES__256__GCM__IV12__TAG16__HKDF__SHA256() m_AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo { + return m_AwsCryptographyMaterialProvidersTypes.Companion_AlgorithmSuiteInfo_.Create_AlgorithmSuiteInfo_(m_AwsCryptographyMaterialProvidersTypes.Companion_AlgorithmSuiteId_.Create_ESDK_(m_AwsCryptographyMaterialProvidersTypes.Companion_ESDKAlgorithmSuiteId_.Create_ALG__AES__256__GCM__IV12__TAG16__HKDF__SHA256_()), _dafny.SeqOf(uint8(1), uint8(120)), int32(1), Companion_Default___.AES__256__GCM__IV12__TAG16(), Companion_Default___.HKDF__SHA__256(Companion_Default___.Bits256()), m_AwsCryptographyMaterialProvidersTypes.Companion_DerivationAlgorithm_.Create_None_(m_AwsCryptographyMaterialProvidersTypes.Companion_None_.Create_None_()), m_AwsCryptographyMaterialProvidersTypes.Companion_SignatureAlgorithm_.Create_None_(m_AwsCryptographyMaterialProvidersTypes.Companion_None_.Create_None_()), m_AwsCryptographyMaterialProvidersTypes.Companion_SymmetricSignatureAlgorithm_.Create_None_(m_AwsCryptographyMaterialProvidersTypes.Companion_None_.Create_None_()), m_AwsCryptographyMaterialProvidersTypes.Companion_EdkWrappingAlgorithm_.Create_DIRECT__KEY__WRAPPING_(m_AwsCryptographyMaterialProvidersTypes.Companion_DIRECT__KEY__WRAPPING_.Create_DIRECT__KEY__WRAPPING_())) +} +func (_static *CompanionStruct_Default___) ESDK__ALG__AES__128__GCM__IV12__TAG16__HKDF__SHA256__ECDSA__P256() m_AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo { + return m_AwsCryptographyMaterialProvidersTypes.Companion_AlgorithmSuiteInfo_.Create_AlgorithmSuiteInfo_(m_AwsCryptographyMaterialProvidersTypes.Companion_AlgorithmSuiteId_.Create_ESDK_(m_AwsCryptographyMaterialProvidersTypes.Companion_ESDKAlgorithmSuiteId_.Create_ALG__AES__128__GCM__IV12__TAG16__HKDF__SHA256__ECDSA__P256_()), _dafny.SeqOf(uint8(2), uint8(20)), int32(1), Companion_Default___.AES__128__GCM__IV12__TAG16(), Companion_Default___.HKDF__SHA__256(Companion_Default___.Bits128()), m_AwsCryptographyMaterialProvidersTypes.Companion_DerivationAlgorithm_.Create_None_(m_AwsCryptographyMaterialProvidersTypes.Companion_None_.Create_None_()), m_AwsCryptographyMaterialProvidersTypes.Companion_SignatureAlgorithm_.Create_ECDSA_(m_AwsCryptographyMaterialProvidersTypes.Companion_ECDSA_.Create_ECDSA_(m_AwsCryptographyPrimitivesTypes.Companion_ECDSASignatureAlgorithm_.Create_ECDSA__P256_())), m_AwsCryptographyMaterialProvidersTypes.Companion_SymmetricSignatureAlgorithm_.Create_None_(m_AwsCryptographyMaterialProvidersTypes.Companion_None_.Create_None_()), m_AwsCryptographyMaterialProvidersTypes.Companion_EdkWrappingAlgorithm_.Create_DIRECT__KEY__WRAPPING_(m_AwsCryptographyMaterialProvidersTypes.Companion_DIRECT__KEY__WRAPPING_.Create_DIRECT__KEY__WRAPPING_())) +} +func (_static *CompanionStruct_Default___) ESDK__ALG__AES__192__GCM__IV12__TAG16__HKDF__SHA384__ECDSA__P384() m_AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo { + return m_AwsCryptographyMaterialProvidersTypes.Companion_AlgorithmSuiteInfo_.Create_AlgorithmSuiteInfo_(m_AwsCryptographyMaterialProvidersTypes.Companion_AlgorithmSuiteId_.Create_ESDK_(m_AwsCryptographyMaterialProvidersTypes.Companion_ESDKAlgorithmSuiteId_.Create_ALG__AES__192__GCM__IV12__TAG16__HKDF__SHA384__ECDSA__P384_()), _dafny.SeqOf(uint8(3), uint8(70)), int32(1), Companion_Default___.AES__192__GCM__IV12__TAG16(), Companion_Default___.HKDF__SHA__384(Companion_Default___.Bits192()), m_AwsCryptographyMaterialProvidersTypes.Companion_DerivationAlgorithm_.Create_None_(m_AwsCryptographyMaterialProvidersTypes.Companion_None_.Create_None_()), m_AwsCryptographyMaterialProvidersTypes.Companion_SignatureAlgorithm_.Create_ECDSA_(m_AwsCryptographyMaterialProvidersTypes.Companion_ECDSA_.Create_ECDSA_(m_AwsCryptographyPrimitivesTypes.Companion_ECDSASignatureAlgorithm_.Create_ECDSA__P384_())), m_AwsCryptographyMaterialProvidersTypes.Companion_SymmetricSignatureAlgorithm_.Create_None_(m_AwsCryptographyMaterialProvidersTypes.Companion_None_.Create_None_()), m_AwsCryptographyMaterialProvidersTypes.Companion_EdkWrappingAlgorithm_.Create_DIRECT__KEY__WRAPPING_(m_AwsCryptographyMaterialProvidersTypes.Companion_DIRECT__KEY__WRAPPING_.Create_DIRECT__KEY__WRAPPING_())) +} +func (_static *CompanionStruct_Default___) ESDK__ALG__AES__256__GCM__IV12__TAG16__HKDF__SHA384__ECDSA__P384() m_AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo { + return m_AwsCryptographyMaterialProvidersTypes.Companion_AlgorithmSuiteInfo_.Create_AlgorithmSuiteInfo_(m_AwsCryptographyMaterialProvidersTypes.Companion_AlgorithmSuiteId_.Create_ESDK_(m_AwsCryptographyMaterialProvidersTypes.Companion_ESDKAlgorithmSuiteId_.Create_ALG__AES__256__GCM__IV12__TAG16__HKDF__SHA384__ECDSA__P384_()), _dafny.SeqOf(uint8(3), uint8(120)), int32(1), Companion_Default___.AES__256__GCM__IV12__TAG16(), Companion_Default___.HKDF__SHA__384(Companion_Default___.Bits256()), m_AwsCryptographyMaterialProvidersTypes.Companion_DerivationAlgorithm_.Create_None_(m_AwsCryptographyMaterialProvidersTypes.Companion_None_.Create_None_()), m_AwsCryptographyMaterialProvidersTypes.Companion_SignatureAlgorithm_.Create_ECDSA_(m_AwsCryptographyMaterialProvidersTypes.Companion_ECDSA_.Create_ECDSA_(m_AwsCryptographyPrimitivesTypes.Companion_ECDSASignatureAlgorithm_.Create_ECDSA__P384_())), m_AwsCryptographyMaterialProvidersTypes.Companion_SymmetricSignatureAlgorithm_.Create_None_(m_AwsCryptographyMaterialProvidersTypes.Companion_None_.Create_None_()), m_AwsCryptographyMaterialProvidersTypes.Companion_EdkWrappingAlgorithm_.Create_DIRECT__KEY__WRAPPING_(m_AwsCryptographyMaterialProvidersTypes.Companion_DIRECT__KEY__WRAPPING_.Create_DIRECT__KEY__WRAPPING_())) +} +func (_static *CompanionStruct_Default___) ESDK__ALG__AES__256__GCM__HKDF__SHA512__COMMIT__KEY() m_AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo { + return m_AwsCryptographyMaterialProvidersTypes.Companion_AlgorithmSuiteInfo_.Create_AlgorithmSuiteInfo_(m_AwsCryptographyMaterialProvidersTypes.Companion_AlgorithmSuiteId_.Create_ESDK_(m_AwsCryptographyMaterialProvidersTypes.Companion_ESDKAlgorithmSuiteId_.Create_ALG__AES__256__GCM__HKDF__SHA512__COMMIT__KEY_()), _dafny.SeqOf(uint8(4), uint8(120)), int32(2), Companion_Default___.AES__256__GCM__IV12__TAG16(), Companion_Default___.HKDF__SHA__512(Companion_Default___.Bits256()), Companion_Default___.HKDF__SHA__512(Companion_Default___.Bits256()), m_AwsCryptographyMaterialProvidersTypes.Companion_SignatureAlgorithm_.Create_None_(m_AwsCryptographyMaterialProvidersTypes.Companion_None_.Create_None_()), m_AwsCryptographyMaterialProvidersTypes.Companion_SymmetricSignatureAlgorithm_.Create_None_(m_AwsCryptographyMaterialProvidersTypes.Companion_None_.Create_None_()), m_AwsCryptographyMaterialProvidersTypes.Companion_EdkWrappingAlgorithm_.Create_DIRECT__KEY__WRAPPING_(m_AwsCryptographyMaterialProvidersTypes.Companion_DIRECT__KEY__WRAPPING_.Create_DIRECT__KEY__WRAPPING_())) +} +func (_static *CompanionStruct_Default___) ESDK__ALG__AES__256__GCM__HKDF__SHA512__COMMIT__KEY__ECDSA__P384() m_AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo { + return m_AwsCryptographyMaterialProvidersTypes.Companion_AlgorithmSuiteInfo_.Create_AlgorithmSuiteInfo_(m_AwsCryptographyMaterialProvidersTypes.Companion_AlgorithmSuiteId_.Create_ESDK_(m_AwsCryptographyMaterialProvidersTypes.Companion_ESDKAlgorithmSuiteId_.Create_ALG__AES__256__GCM__HKDF__SHA512__COMMIT__KEY__ECDSA__P384_()), _dafny.SeqOf(uint8(5), uint8(120)), int32(2), Companion_Default___.AES__256__GCM__IV12__TAG16(), Companion_Default___.HKDF__SHA__512(Companion_Default___.Bits256()), Companion_Default___.HKDF__SHA__512(Companion_Default___.Bits256()), m_AwsCryptographyMaterialProvidersTypes.Companion_SignatureAlgorithm_.Create_ECDSA_(m_AwsCryptographyMaterialProvidersTypes.Companion_ECDSA_.Create_ECDSA_(m_AwsCryptographyPrimitivesTypes.Companion_ECDSASignatureAlgorithm_.Create_ECDSA__P384_())), m_AwsCryptographyMaterialProvidersTypes.Companion_SymmetricSignatureAlgorithm_.Create_None_(m_AwsCryptographyMaterialProvidersTypes.Companion_None_.Create_None_()), m_AwsCryptographyMaterialProvidersTypes.Companion_EdkWrappingAlgorithm_.Create_DIRECT__KEY__WRAPPING_(m_AwsCryptographyMaterialProvidersTypes.Companion_DIRECT__KEY__WRAPPING_.Create_DIRECT__KEY__WRAPPING_())) +} +func (_static *CompanionStruct_Default___) SupportedESDKAlgorithmSuites() _dafny.Map { + return _dafny.NewMapBuilder().ToMap().UpdateUnsafe(m_AwsCryptographyMaterialProvidersTypes.Companion_ESDKAlgorithmSuiteId_.Create_ALG__AES__128__GCM__IV12__TAG16__NO__KDF_(), Companion_Default___.ESDK__ALG__AES__128__GCM__IV12__TAG16__NO__KDF()).UpdateUnsafe(m_AwsCryptographyMaterialProvidersTypes.Companion_ESDKAlgorithmSuiteId_.Create_ALG__AES__192__GCM__IV12__TAG16__NO__KDF_(), Companion_Default___.ESDK__ALG__AES__192__GCM__IV12__TAG16__NO__KDF()).UpdateUnsafe(m_AwsCryptographyMaterialProvidersTypes.Companion_ESDKAlgorithmSuiteId_.Create_ALG__AES__256__GCM__IV12__TAG16__NO__KDF_(), Companion_Default___.ESDK__ALG__AES__256__GCM__IV12__TAG16__NO__KDF()).UpdateUnsafe(m_AwsCryptographyMaterialProvidersTypes.Companion_ESDKAlgorithmSuiteId_.Create_ALG__AES__128__GCM__IV12__TAG16__HKDF__SHA256_(), Companion_Default___.ESDK__ALG__AES__128__GCM__IV12__TAG16__HKDF__SHA256()).UpdateUnsafe(m_AwsCryptographyMaterialProvidersTypes.Companion_ESDKAlgorithmSuiteId_.Create_ALG__AES__192__GCM__IV12__TAG16__HKDF__SHA256_(), Companion_Default___.ESDK__ALG__AES__192__GCM__IV12__TAG16__HKDF__SHA256()).UpdateUnsafe(m_AwsCryptographyMaterialProvidersTypes.Companion_ESDKAlgorithmSuiteId_.Create_ALG__AES__256__GCM__IV12__TAG16__HKDF__SHA256_(), Companion_Default___.ESDK__ALG__AES__256__GCM__IV12__TAG16__HKDF__SHA256()).UpdateUnsafe(m_AwsCryptographyMaterialProvidersTypes.Companion_ESDKAlgorithmSuiteId_.Create_ALG__AES__128__GCM__IV12__TAG16__HKDF__SHA256__ECDSA__P256_(), Companion_Default___.ESDK__ALG__AES__128__GCM__IV12__TAG16__HKDF__SHA256__ECDSA__P256()).UpdateUnsafe(m_AwsCryptographyMaterialProvidersTypes.Companion_ESDKAlgorithmSuiteId_.Create_ALG__AES__192__GCM__IV12__TAG16__HKDF__SHA384__ECDSA__P384_(), Companion_Default___.ESDK__ALG__AES__192__GCM__IV12__TAG16__HKDF__SHA384__ECDSA__P384()).UpdateUnsafe(m_AwsCryptographyMaterialProvidersTypes.Companion_ESDKAlgorithmSuiteId_.Create_ALG__AES__256__GCM__IV12__TAG16__HKDF__SHA384__ECDSA__P384_(), Companion_Default___.ESDK__ALG__AES__256__GCM__IV12__TAG16__HKDF__SHA384__ECDSA__P384()).UpdateUnsafe(m_AwsCryptographyMaterialProvidersTypes.Companion_ESDKAlgorithmSuiteId_.Create_ALG__AES__256__GCM__HKDF__SHA512__COMMIT__KEY_(), Companion_Default___.ESDK__ALG__AES__256__GCM__HKDF__SHA512__COMMIT__KEY()).UpdateUnsafe(m_AwsCryptographyMaterialProvidersTypes.Companion_ESDKAlgorithmSuiteId_.Create_ALG__AES__256__GCM__HKDF__SHA512__COMMIT__KEY__ECDSA__P384_(), Companion_Default___.ESDK__ALG__AES__256__GCM__HKDF__SHA512__COMMIT__KEY__ECDSA__P384()) +} +func (_static *CompanionStruct_Default___) SupportedDBEAlgorithmSuites() _dafny.Map { + return _dafny.NewMapBuilder().ToMap().UpdateUnsafe(m_AwsCryptographyMaterialProvidersTypes.Companion_DBEAlgorithmSuiteId_.Create_ALG__AES__256__GCM__HKDF__SHA512__COMMIT__KEY__SYMSIG__HMAC__SHA384_(), Companion_Default___.DBE__ALG__AES__256__GCM__HKDF__SHA512__COMMIT__KEY__SYMSIG__HMAC__SHA384()).UpdateUnsafe(m_AwsCryptographyMaterialProvidersTypes.Companion_DBEAlgorithmSuiteId_.Create_ALG__AES__256__GCM__HKDF__SHA512__COMMIT__KEY__ECDSA__P384__SYMSIG__HMAC__SHA384_(), Companion_Default___.DBE__ALG__AES__256__GCM__HKDF__SHA512__COMMIT__KEY__ECDSA__P384__SYMSIG__HMAC__SHA384()) +} +func (_static *CompanionStruct_Default___) AlgorithmSuiteInfoByBinaryId() _dafny.Map { + return _dafny.NewMapBuilder().ToMap().UpdateUnsafe(_dafny.SeqOf(uint8(0), uint8(20)), Companion_Default___.ESDK__ALG__AES__128__GCM__IV12__TAG16__NO__KDF()).UpdateUnsafe(_dafny.SeqOf(uint8(0), uint8(70)), Companion_Default___.ESDK__ALG__AES__192__GCM__IV12__TAG16__NO__KDF()).UpdateUnsafe(_dafny.SeqOf(uint8(0), uint8(120)), Companion_Default___.ESDK__ALG__AES__256__GCM__IV12__TAG16__NO__KDF()).UpdateUnsafe(_dafny.SeqOf(uint8(1), uint8(20)), Companion_Default___.ESDK__ALG__AES__128__GCM__IV12__TAG16__HKDF__SHA256()).UpdateUnsafe(_dafny.SeqOf(uint8(1), uint8(70)), Companion_Default___.ESDK__ALG__AES__192__GCM__IV12__TAG16__HKDF__SHA256()).UpdateUnsafe(_dafny.SeqOf(uint8(1), uint8(120)), Companion_Default___.ESDK__ALG__AES__256__GCM__IV12__TAG16__HKDF__SHA256()).UpdateUnsafe(_dafny.SeqOf(uint8(2), uint8(20)), Companion_Default___.ESDK__ALG__AES__128__GCM__IV12__TAG16__HKDF__SHA256__ECDSA__P256()).UpdateUnsafe(_dafny.SeqOf(uint8(3), uint8(70)), Companion_Default___.ESDK__ALG__AES__192__GCM__IV12__TAG16__HKDF__SHA384__ECDSA__P384()).UpdateUnsafe(_dafny.SeqOf(uint8(3), uint8(120)), Companion_Default___.ESDK__ALG__AES__256__GCM__IV12__TAG16__HKDF__SHA384__ECDSA__P384()).UpdateUnsafe(_dafny.SeqOf(uint8(4), uint8(120)), Companion_Default___.ESDK__ALG__AES__256__GCM__HKDF__SHA512__COMMIT__KEY()).UpdateUnsafe(_dafny.SeqOf(uint8(5), uint8(120)), Companion_Default___.ESDK__ALG__AES__256__GCM__HKDF__SHA512__COMMIT__KEY__ECDSA__P384()).UpdateUnsafe(_dafny.SeqOf(uint8(103), uint8(0)), Companion_Default___.DBE__ALG__AES__256__GCM__HKDF__SHA512__COMMIT__KEY__SYMSIG__HMAC__SHA384()).UpdateUnsafe(_dafny.SeqOf(uint8(103), uint8(1)), Companion_Default___.DBE__ALG__AES__256__GCM__HKDF__SHA512__COMMIT__KEY__ECDSA__P384__SYMSIG__HMAC__SHA384()) +} + +// End of class Default__ + +// Definition of class AlgorithmSuite +type AlgorithmSuite struct { +} + +func New_AlgorithmSuite_() *AlgorithmSuite { + _this := AlgorithmSuite{} + + return &_this +} + +type CompanionStruct_AlgorithmSuite_ struct { +} + +var Companion_AlgorithmSuite_ = CompanionStruct_AlgorithmSuite_{} + +func (*AlgorithmSuite) String() string { + return "AlgorithmSuites.AlgorithmSuite" +} + +// End of class AlgorithmSuite + +func Type_AlgorithmSuite_() _dafny.TypeDescriptor { + return type_AlgorithmSuite_{} +} + +type type_AlgorithmSuite_ struct { +} + +func (_this type_AlgorithmSuite_) Default() interface{} { + return m_AwsCryptographyMaterialProvidersTypes.Companion_AlgorithmSuiteInfo_.Default() +} + +func (_this type_AlgorithmSuite_) String() string { + return "AlgorithmSuites.AlgorithmSuite" +} +func (_this *CompanionStruct_AlgorithmSuite_) Is_(__source m_AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo) bool { + var _0_a m_AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo = (__source) + _ = _0_a + return Companion_Default___.AlgorithmSuite_q(_0_a) +} diff --git a/customer-preview/mpl/AwsArnParsing/AwsArnParsing.go b/customer-preview/mpl/AwsArnParsing/AwsArnParsing.go new file mode 100644 index 000000000..51002acf1 --- /dev/null +++ b/customer-preview/mpl/AwsArnParsing/AwsArnParsing.go @@ -0,0 +1,1135 @@ +// Package AwsArnParsing +// Dafny module AwsArnParsing compiled into Go + +package AwsArnParsing + +import ( + os "os" + + m_ComAmazonawsDynamodbTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/ComAmazonawsDynamodbTypes" + m_ComAmazonawsKmsTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/ComAmazonawsKmsTypes" + m_AwsCryptographyKeyStoreTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreTypes" + m_AwsCryptographyMaterialProvidersTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersTypes" + m_AtomicPrimitives "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AtomicPrimitives" + m_AwsCryptographyPrimitivesOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesOperations" + m_AwsCryptographyPrimitivesTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesTypes" + m_Digest "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Digest" + m_HKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/HKDF" + m_KdfCtr "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/KdfCtr" + m_Random "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Random" + m_WrappedHKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHKDF" + m_WrappedHMAC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHMAC" + m_Actions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Actions" + m_Base64 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64" + m_Base64Lemmas "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64Lemmas" + m_BoundedInts "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/BoundedInts" + m_DivInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternals" + m_DivInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternalsNonlinear" + m_DivMod "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivMod" + m_FileIO "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FileIO" + m_FloatCompare "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FloatCompare" + m_Functions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Functions" + m_GeneralInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GeneralInternals" + m_GetOpt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GetOpt" + m_HexStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/HexStrings" + m_Logarithm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Logarithm" + m__Math "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Math_" + m_ModInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternals" + m_ModInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternalsNonlinear" + m_Mul "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Mul" + m_MulInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternals" + m_MulInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternalsNonlinear" + m_Power "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Power" + m_Relations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Relations" + m_Seq "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq" + m_Seq_MergeSort "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq_MergeSort" + m_Sorting "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Sorting" + m_StandardLibrary "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary" + m_StandardLibraryInterop "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibraryInterop" + m_StandardLibrary_Sequence "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_Sequence" + m_StandardLibrary_String "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_String" + m_StandardLibrary_UInt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_UInt" + m_Streams "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Streams" + m_UTF8 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UTF8" + m_UnicodeStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UnicodeStrings" + m__Unicode "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Unicode_" + m_Utf16EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf16EncodingForm" + m_Utf8EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf8EncodingForm" + m_Wrappers "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers" + m__System "github.com/dafny-lang/DafnyRuntimeGo/v4/System_" + _dafny "github.com/dafny-lang/DafnyRuntimeGo/v4/dafny" +) + +var _ = os.Args +var _ _dafny.Dummy__ +var _ m__System.Dummy__ +var _ m_Wrappers.Dummy__ +var _ m_BoundedInts.Dummy__ +var _ m_StandardLibrary_UInt.Dummy__ +var _ m_StandardLibrary_Sequence.Dummy__ +var _ m_StandardLibrary_String.Dummy__ +var _ m_StandardLibrary.Dummy__ +var _ m_AwsCryptographyPrimitivesTypes.Dummy__ +var _ m_Random.Dummy__ +var _ m_Digest.Dummy__ +var _ m_WrappedHMAC.Dummy__ +var _ m_HKDF.Dummy__ +var _ m_WrappedHKDF.Dummy__ +var _ m_KdfCtr.Dummy__ +var _ m_AwsCryptographyPrimitivesOperations.Dummy__ +var _ m_AtomicPrimitives.Dummy__ +var _ m_ComAmazonawsDynamodbTypes.Dummy__ +var _ m_ComAmazonawsKmsTypes.Dummy__ +var _ m_Relations.Dummy__ +var _ m_Seq_MergeSort.Dummy__ +var _ m__Math.Dummy__ +var _ m_Seq.Dummy__ +var _ m__Unicode.Dummy__ +var _ m_Functions.Dummy__ +var _ m_Utf8EncodingForm.Dummy__ +var _ m_Utf16EncodingForm.Dummy__ +var _ m_UnicodeStrings.Dummy__ +var _ m_FileIO.Dummy__ +var _ m_GeneralInternals.Dummy__ +var _ m_MulInternalsNonlinear.Dummy__ +var _ m_MulInternals.Dummy__ +var _ m_Mul.Dummy__ +var _ m_ModInternalsNonlinear.Dummy__ +var _ m_DivInternalsNonlinear.Dummy__ +var _ m_ModInternals.Dummy__ +var _ m_DivInternals.Dummy__ +var _ m_DivMod.Dummy__ +var _ m_Power.Dummy__ +var _ m_Logarithm.Dummy__ +var _ m_StandardLibraryInterop.Dummy__ +var _ m_Streams.Dummy__ +var _ m_Sorting.Dummy__ +var _ m_HexStrings.Dummy__ +var _ m_GetOpt.Dummy__ +var _ m_FloatCompare.Dummy__ +var _ m_Base64.Dummy__ +var _ m_Base64Lemmas.Dummy__ +var _ m_Actions.Dummy__ +var _ m_AwsCryptographyKeyStoreTypes.Dummy__ +var _ m_AwsCryptographyMaterialProvidersTypes.Dummy__ + +type Dummy__ struct{} + +// Definition of class Default__ +type Default__ struct { + dummy byte +} + +func New_Default___() *Default__ { + _this := Default__{} + + return &_this +} + +type CompanionStruct_Default___ struct { +} + +var Companion_Default___ = CompanionStruct_Default___{} + +func (_this *Default__) Equals(other *Default__) bool { + return _this == other +} + +func (_this *Default__) EqualsGeneric(x interface{}) bool { + other, ok := x.(*Default__) + return ok && _this.Equals(other) +} + +func (*Default__) String() string { + return "AwsArnParsing.Default__" +} +func (_this *Default__) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = &Default__{} + +func (_static *CompanionStruct_Default___) ValidAwsKmsResource(resource AwsResource) bool { + return ((resource).Valid()) && ((_dafny.Companion_Sequence_.Equal((resource).Dtor_resourceType(), _dafny.SeqOfString("key"))) || (_dafny.Companion_Sequence_.Equal((resource).Dtor_resourceType(), _dafny.SeqOfString("alias")))) +} +func (_static *CompanionStruct_Default___) ValidAwsKmsArn(arn AwsArn) bool { + return (((arn).Valid()) && (_dafny.Companion_Sequence_.Equal((arn).Dtor_service(), _dafny.SeqOfString("kms")))) && (Companion_Default___.ValidAwsKmsResource((arn).Dtor_resource())) +} +func (_static *CompanionStruct_Default___) ParseAwsKmsRawResources(identifier _dafny.Sequence) m_Wrappers.Result { + var _0_info _dafny.Sequence = m_StandardLibrary.Companion_Default___.Split(identifier, _dafny.Char('/')) + _ = _0_info + var _1_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need(!_dafny.Companion_Sequence_.Equal((_0_info).Select(0).(_dafny.Sequence), _dafny.SeqOfString("key")), _dafny.Companion_Sequence_.Concatenate(_dafny.SeqOfString("Malformed raw key id: "), identifier)) + _ = _1_valueOrError0 + if (_1_valueOrError0).IsFailure() { + return (_1_valueOrError0).PropagateFailure() + } else if (_dafny.IntOfUint32((_0_info).Cardinality())).Cmp(_dafny.One) == 0 { + return Companion_Default___.ParseAwsKmsResources(_dafny.Companion_Sequence_.Concatenate(_dafny.SeqOfString("key/"), identifier)) + } else { + return Companion_Default___.ParseAwsKmsResources(identifier) + } +} +func (_static *CompanionStruct_Default___) ParseAwsKmsResources(identifier _dafny.Sequence) m_Wrappers.Result { + var _0_info _dafny.Sequence = m_StandardLibrary.Companion_Default___.Split(identifier, _dafny.Char('/')) + _ = _0_info + var _1_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need((_dafny.IntOfUint32((_0_info).Cardinality())).Cmp(_dafny.One) > 0, _dafny.Companion_Sequence_.Concatenate(_dafny.SeqOfString("Malformed resource: "), identifier)) + _ = _1_valueOrError0 + if (_1_valueOrError0).IsFailure() { + return (_1_valueOrError0).PropagateFailure() + } else { + var _2_resourceType _dafny.Sequence = (_0_info).Select(0).(_dafny.Sequence) + _ = _2_resourceType + var _3_value _dafny.Sequence = m_StandardLibrary.Companion_Default___.Join((_0_info).Drop(1), _dafny.SeqOfString("/")) + _ = _3_value + var _4_resource AwsResource = Companion_AwsResource_.Create_AwsResource_(_2_resourceType, _3_value) + _ = _4_resource + var _5_valueOrError1 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need(Companion_Default___.ValidAwsKmsResource(_4_resource), _dafny.Companion_Sequence_.Concatenate(_dafny.SeqOfString("Malformed resource: "), identifier)) + _ = _5_valueOrError1 + if (_5_valueOrError1).IsFailure() { + return (_5_valueOrError1).PropagateFailure() + } else { + return m_Wrappers.Companion_Result_.Create_Success_(_4_resource) + } + } +} +func (_static *CompanionStruct_Default___) ValidAmazonDynamodbResource(resource AwsResource) bool { + return ((resource).Valid()) && (_dafny.Companion_Sequence_.Equal((resource).Dtor_resourceType(), _dafny.SeqOfString("table"))) +} +func (_static *CompanionStruct_Default___) ValidAmazonDynamodbArn(arn AwsArn) bool { + return (((arn).Valid()) && (_dafny.Companion_Sequence_.Equal((arn).Dtor_service(), _dafny.SeqOfString("dynamodb")))) && (Companion_Default___.ValidAmazonDynamodbResource((arn).Dtor_resource())) +} +func (_static *CompanionStruct_Default___) ParseAmazonDynamodbResources(identifier _dafny.Sequence) m_Wrappers.Result { + var _0_info m_Wrappers.Option = m_StandardLibrary.Companion_Default___.SplitOnce_q(identifier, _dafny.Char('/')) + _ = _0_info + var _1_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need((_0_info).Is_Some(), _dafny.Companion_Sequence_.Concatenate(_dafny.SeqOfString("Malformed resource: "), identifier)) + _ = _1_valueOrError0 + if (_1_valueOrError0).IsFailure() { + return (_1_valueOrError0).PropagateFailure() + } else { + var _2_resourceType _dafny.Sequence = (*((_0_info).Dtor_value().(_dafny.Tuple)).IndexInt(0)).(_dafny.Sequence) + _ = _2_resourceType + var _3_value _dafny.Sequence = (*((_0_info).Dtor_value().(_dafny.Tuple)).IndexInt(1)).(_dafny.Sequence) + _ = _3_value + var _4_valueOrError1 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need(m_ComAmazonawsDynamodbTypes.Companion_Default___.IsValid__TableName(_3_value), _dafny.Companion_Sequence_.Concatenate(_dafny.SeqOfString("Table Name invalid: "), identifier)) + _ = _4_valueOrError1 + if (_4_valueOrError1).IsFailure() { + return (_4_valueOrError1).PropagateFailure() + } else { + var _5_resource AwsResource = Companion_AwsResource_.Create_AwsResource_(_2_resourceType, _3_value) + _ = _5_resource + var _6_valueOrError2 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need(Companion_Default___.ValidAmazonDynamodbResource(_5_resource), _dafny.Companion_Sequence_.Concatenate(_dafny.SeqOfString("Malformed resource: "), identifier)) + _ = _6_valueOrError2 + if (_6_valueOrError2).IsFailure() { + return (_6_valueOrError2).PropagateFailure() + } else { + return m_Wrappers.Companion_Result_.Create_Success_(_5_resource) + } + } + } +} +func (_static *CompanionStruct_Default___) ParseAwsKmsArn(identifier _dafny.Sequence) m_Wrappers.Result { + var _0_components _dafny.Sequence = m_StandardLibrary.Companion_Default___.Split(identifier, _dafny.Char(':')) + _ = _0_components + var _1_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need((_dafny.IntOfInt64(6)).Cmp(_dafny.IntOfUint32((_0_components).Cardinality())) == 0, _dafny.Companion_Sequence_.Concatenate(_dafny.SeqOfString("Malformed arn: "), identifier)) + _ = _1_valueOrError0 + if (_1_valueOrError0).IsFailure() { + return (_1_valueOrError0).PropagateFailure() + } else { + var _2_valueOrError1 m_Wrappers.Result = Companion_Default___.ParseAwsKmsResources((_0_components).Select(5).(_dafny.Sequence)) + _ = _2_valueOrError1 + if (_2_valueOrError1).IsFailure() { + return (_2_valueOrError1).PropagateFailure() + } else { + var _3_resource AwsResource = (_2_valueOrError1).Extract().(AwsResource) + _ = _3_resource + var _4_arn AwsArn = Companion_AwsArn_.Create_AwsArn_((_0_components).Select(0).(_dafny.Sequence), (_0_components).Select(1).(_dafny.Sequence), (_0_components).Select(2).(_dafny.Sequence), (_0_components).Select(3).(_dafny.Sequence), (_0_components).Select(4).(_dafny.Sequence), _3_resource) + _ = _4_arn + var _5_valueOrError2 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need(Companion_Default___.ValidAwsKmsArn(_4_arn), _dafny.Companion_Sequence_.Concatenate(_dafny.SeqOfString("Malformed Arn:"), identifier)) + _ = _5_valueOrError2 + if (_5_valueOrError2).IsFailure() { + return (_5_valueOrError2).PropagateFailure() + } else { + return m_Wrappers.Companion_Result_.Create_Success_(_4_arn) + } + } + } +} +func (_static *CompanionStruct_Default___) ParseAmazonDynamodbTableArn(identifier _dafny.Sequence) m_Wrappers.Result { + var _0_components _dafny.Sequence = m_StandardLibrary.Companion_Default___.Split(identifier, _dafny.Char(':')) + _ = _0_components + var _1_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need((_dafny.IntOfInt64(6)).Cmp(_dafny.IntOfUint32((_0_components).Cardinality())) == 0, _dafny.Companion_Sequence_.Concatenate(_dafny.SeqOfString("Malformed arn: "), identifier)) + _ = _1_valueOrError0 + if (_1_valueOrError0).IsFailure() { + return (_1_valueOrError0).PropagateFailure() + } else { + var _2_valueOrError1 m_Wrappers.Result = Companion_Default___.ParseAmazonDynamodbResources((_0_components).Select(5).(_dafny.Sequence)) + _ = _2_valueOrError1 + if (_2_valueOrError1).IsFailure() { + return (_2_valueOrError1).PropagateFailure() + } else { + var _3_resource AwsResource = (_2_valueOrError1).Extract().(AwsResource) + _ = _3_resource + var _4_arn AwsArn = Companion_AwsArn_.Create_AwsArn_((_0_components).Select(0).(_dafny.Sequence), (_0_components).Select(1).(_dafny.Sequence), (_0_components).Select(2).(_dafny.Sequence), (_0_components).Select(3).(_dafny.Sequence), (_0_components).Select(4).(_dafny.Sequence), _3_resource) + _ = _4_arn + var _5_valueOrError2 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need(Companion_Default___.ValidAmazonDynamodbArn(_4_arn), _dafny.Companion_Sequence_.Concatenate(_dafny.SeqOfString("Malformed Arn:"), identifier)) + _ = _5_valueOrError2 + if (_5_valueOrError2).IsFailure() { + return (_5_valueOrError2).PropagateFailure() + } else { + return m_Wrappers.Companion_Result_.Create_Success_(_4_arn) + } + } + } +} +func (_static *CompanionStruct_Default___) ParseAwsKmsIdentifier(identifier _dafny.Sequence) m_Wrappers.Result { + if _dafny.Companion_Sequence_.IsPrefixOf(_dafny.SeqOfString("arn:"), identifier) { + var _0_valueOrError0 m_Wrappers.Result = Companion_Default___.ParseAwsKmsArn(identifier) + _ = _0_valueOrError0 + if (_0_valueOrError0).IsFailure() { + return (_0_valueOrError0).PropagateFailure() + } else { + var _1_arn AwsArn = (_0_valueOrError0).Extract().(AwsArn) + _ = _1_arn + return m_Wrappers.Companion_Result_.Create_Success_(Companion_AwsKmsIdentifier_.Create_AwsKmsArnIdentifier_(_1_arn)) + } + } else { + var _2_valueOrError1 m_Wrappers.Result = Companion_Default___.ParseAwsKmsRawResources(identifier) + _ = _2_valueOrError1 + if (_2_valueOrError1).IsFailure() { + return (_2_valueOrError1).PropagateFailure() + } else { + var _3_r AwsResource = (_2_valueOrError1).Extract().(AwsResource) + _ = _3_r + return m_Wrappers.Companion_Result_.Create_Success_(Companion_AwsKmsIdentifier_.Create_AwsKmsRawResourceIdentifier_(_3_r)) + } + } +} +func (_static *CompanionStruct_Default___) ParseAmazonDynamodbTableName(identifier _dafny.Sequence) m_Wrappers.Result { + var _0_valueOrError0 m_Wrappers.Result = Companion_Default___.ParseAmazonDynamodbTableArn(identifier) + _ = _0_valueOrError0 + if (_0_valueOrError0).IsFailure() { + return (_0_valueOrError0).PropagateFailure() + } else { + var _1_arn AwsArn = (_0_valueOrError0).Extract().(AwsArn) + _ = _1_arn + var _2_tableArn AmazonDynamodbTableName = Companion_AmazonDynamodbTableName_.Create_AmazonDynamodbTableArn_(_1_arn) + _ = _2_tableArn + var _3_tableName _dafny.Sequence = (_2_tableArn).GetTableName() + _ = _3_tableName + return m_Wrappers.Companion_Result_.Create_Success_(_3_tableName) + } +} +func (_static *CompanionStruct_Default___) IsMultiRegionAwsKmsArn(arn AwsArn) bool { + return Companion_Default___.IsMultiRegionAwsKmsResource((arn).Dtor_resource()) +} +func (_static *CompanionStruct_Default___) IsMultiRegionAwsKmsIdentifier(identifier AwsKmsIdentifier) bool { + var _source0 AwsKmsIdentifier = identifier + _ = _source0 + { + if _source0.Is_AwsKmsArnIdentifier() { + var _0_arn AwsArn = _source0.Get_().(AwsKmsIdentifier_AwsKmsArnIdentifier).A + _ = _0_arn + return Companion_Default___.IsMultiRegionAwsKmsArn(_0_arn) + } + } + { + var _1_r AwsResource = _source0.Get_().(AwsKmsIdentifier_AwsKmsRawResourceIdentifier).R + _ = _1_r + return Companion_Default___.IsMultiRegionAwsKmsResource(_1_r) + } +} +func (_static *CompanionStruct_Default___) IsMultiRegionAwsKmsResource(resource AwsResource) bool { + return (_dafny.Companion_Sequence_.Equal((resource).Dtor_resourceType(), _dafny.SeqOfString("key"))) && (_dafny.Companion_Sequence_.IsPrefixOf(_dafny.SeqOfString("mrk-"), (resource).Dtor_value())) +} +func (_static *CompanionStruct_Default___) GetRegion(identifier AwsKmsIdentifier) m_Wrappers.Option { + var _source0 AwsKmsIdentifier = identifier + _ = _source0 + { + if _source0.Is_AwsKmsArnIdentifier() { + var _0_a AwsArn = _source0.Get_().(AwsKmsIdentifier_AwsKmsArnIdentifier).A + _ = _0_a + return m_Wrappers.Companion_Option_.Create_Some_((_0_a).Dtor_region()) + } + } + { + return m_Wrappers.Companion_Option_.Create_None_() + } +} +func (_static *CompanionStruct_Default___) IsAwsKmsIdentifierString(s _dafny.Sequence) m_Wrappers.Result { + var _0_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need(m_UTF8.Companion_Default___.IsASCIIString(s), _dafny.SeqOfString("Not a valid ASCII string.")) + _ = _0_valueOrError0 + if (_0_valueOrError0).IsFailure() { + return (_0_valueOrError0).PropagateFailure() + } else { + var _1_valueOrError1 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need(((_dafny.IntOfUint32((s).Cardinality())).Sign() == 1) && ((_dafny.IntOfUint32((s).Cardinality())).Cmp(Companion_Default___.MAX__AWS__KMS__IDENTIFIER__LENGTH()) <= 0), _dafny.SeqOfString("Identifier exceeds maximum length.")) + _ = _1_valueOrError1 + if (_1_valueOrError1).IsFailure() { + return (_1_valueOrError1).PropagateFailure() + } else { + return Companion_Default___.ParseAwsKmsIdentifier(s) + } + } +} +func (_static *CompanionStruct_Default___) Error(s _dafny.Sequence) m_AwsCryptographyMaterialProvidersTypes.Error { + return m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(s) +} +func (_static *CompanionStruct_Default___) ValidateDdbTableArn(tableArn _dafny.Sequence) m_Wrappers.Result { + var _0_valueOrError0 m_Wrappers.Result = (Companion_Default___.ParseAmazonDynamodbTableName(tableArn)).MapFailure(func(coer0 func(_dafny.Sequence) m_AwsCryptographyMaterialProvidersTypes.Error) func(interface{}) interface{} { + return func(arg0 interface{}) interface{} { + return coer0(arg0.(_dafny.Sequence)) + } + }(Companion_Default___.Error)) + _ = _0_valueOrError0 + if (_0_valueOrError0).IsFailure() { + return (_0_valueOrError0).PropagateFailure() + } else { + var _1___v1 _dafny.Sequence = (_0_valueOrError0).Extract().(_dafny.Sequence) + _ = _1___v1 + var _2_valueOrError1 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need(m_UTF8.Companion_Default___.IsASCIIString(tableArn), m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.SeqOfString("Table Arn is not ASCII"))) + _ = _2_valueOrError1 + if (_2_valueOrError1).IsFailure() { + return (_2_valueOrError1).PropagateFailure() + } else { + var _3_valueOrError2 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need(m_ComAmazonawsDynamodbTypes.Companion_Default___.IsValid__TableName((Companion_Default___.ParseAmazonDynamodbTableName(tableArn)).Dtor_value().(_dafny.Sequence)), m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.SeqOfString("Table Name is too long"))) + _ = _3_valueOrError2 + if (_3_valueOrError2).IsFailure() { + return (_3_valueOrError2).PropagateFailure() + } else { + return m_Wrappers.Companion_Result_.Create_Success_(_dafny.TupleOf()) + } + } + } +} +func (_static *CompanionStruct_Default___) MAX__AWS__KMS__IDENTIFIER__LENGTH() _dafny.Int { + return _dafny.IntOfInt64(2048) +} + +// End of class Default__ + +// Definition of datatype AwsResource +type AwsResource struct { + Data_AwsResource_ +} + +func (_this AwsResource) Get_() Data_AwsResource_ { + return _this.Data_AwsResource_ +} + +type Data_AwsResource_ interface { + isAwsResource() +} + +type CompanionStruct_AwsResource_ struct { +} + +var Companion_AwsResource_ = CompanionStruct_AwsResource_{} + +type AwsResource_AwsResource struct { + ResourceType _dafny.Sequence + Value _dafny.Sequence +} + +func (AwsResource_AwsResource) isAwsResource() {} + +func (CompanionStruct_AwsResource_) Create_AwsResource_(ResourceType _dafny.Sequence, Value _dafny.Sequence) AwsResource { + return AwsResource{AwsResource_AwsResource{ResourceType, Value}} +} + +func (_this AwsResource) Is_AwsResource() bool { + _, ok := _this.Get_().(AwsResource_AwsResource) + return ok +} + +func (CompanionStruct_AwsResource_) Default() AwsResource { + return Companion_AwsResource_.Create_AwsResource_(_dafny.EmptySeq.SetString(), _dafny.EmptySeq.SetString()) +} + +func (_this AwsResource) Dtor_resourceType() _dafny.Sequence { + return _this.Get_().(AwsResource_AwsResource).ResourceType +} + +func (_this AwsResource) Dtor_value() _dafny.Sequence { + return _this.Get_().(AwsResource_AwsResource).Value +} + +func (_this AwsResource) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case AwsResource_AwsResource: + { + return "AwsArnParsing.AwsResource.AwsResource" + "(" + _dafny.String(data.ResourceType) + ", " + _dafny.String(data.Value) + ")" + } + default: + { + return "" + } + } +} + +func (_this AwsResource) Equals(other AwsResource) bool { + switch data1 := _this.Get_().(type) { + case AwsResource_AwsResource: + { + data2, ok := other.Get_().(AwsResource_AwsResource) + return ok && data1.ResourceType.Equals(data2.ResourceType) && data1.Value.Equals(data2.Value) + } + default: + { + return false // unexpected + } + } +} + +func (_this AwsResource) EqualsGeneric(other interface{}) bool { + typed, ok := other.(AwsResource) + return ok && _this.Equals(typed) +} + +func Type_AwsResource_() _dafny.TypeDescriptor { + return type_AwsResource_{} +} + +type type_AwsResource_ struct { +} + +func (_this type_AwsResource_) Default() interface{} { + return Companion_AwsResource_.Default() +} + +func (_this type_AwsResource_) String() string { + return "AwsArnParsing.AwsResource" +} +func (_this AwsResource) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = AwsResource{} + +func (_this AwsResource) Valid() bool { + { + return (true) && ((_dafny.IntOfUint32(((_this).Dtor_value()).Cardinality())).Sign() == 1) + } +} +func (_this AwsResource) ToString() _dafny.Sequence { + { + return _dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate((_this).Dtor_resourceType(), _dafny.SeqOfString("/")), (_this).Dtor_value()) + } +} + +// End of datatype AwsResource + +// Definition of datatype AwsArn +type AwsArn struct { + Data_AwsArn_ +} + +func (_this AwsArn) Get_() Data_AwsArn_ { + return _this.Data_AwsArn_ +} + +type Data_AwsArn_ interface { + isAwsArn() +} + +type CompanionStruct_AwsArn_ struct { +} + +var Companion_AwsArn_ = CompanionStruct_AwsArn_{} + +type AwsArn_AwsArn struct { + ArnLiteral _dafny.Sequence + Partition _dafny.Sequence + Service _dafny.Sequence + Region _dafny.Sequence + Account _dafny.Sequence + Resource AwsResource +} + +func (AwsArn_AwsArn) isAwsArn() {} + +func (CompanionStruct_AwsArn_) Create_AwsArn_(ArnLiteral _dafny.Sequence, Partition _dafny.Sequence, Service _dafny.Sequence, Region _dafny.Sequence, Account _dafny.Sequence, Resource AwsResource) AwsArn { + return AwsArn{AwsArn_AwsArn{ArnLiteral, Partition, Service, Region, Account, Resource}} +} + +func (_this AwsArn) Is_AwsArn() bool { + _, ok := _this.Get_().(AwsArn_AwsArn) + return ok +} + +func (CompanionStruct_AwsArn_) Default() AwsArn { + return Companion_AwsArn_.Create_AwsArn_(_dafny.EmptySeq.SetString(), _dafny.EmptySeq.SetString(), _dafny.EmptySeq.SetString(), _dafny.EmptySeq.SetString(), _dafny.EmptySeq.SetString(), Companion_AwsResource_.Default()) +} + +func (_this AwsArn) Dtor_arnLiteral() _dafny.Sequence { + return _this.Get_().(AwsArn_AwsArn).ArnLiteral +} + +func (_this AwsArn) Dtor_partition() _dafny.Sequence { + return _this.Get_().(AwsArn_AwsArn).Partition +} + +func (_this AwsArn) Dtor_service() _dafny.Sequence { + return _this.Get_().(AwsArn_AwsArn).Service +} + +func (_this AwsArn) Dtor_region() _dafny.Sequence { + return _this.Get_().(AwsArn_AwsArn).Region +} + +func (_this AwsArn) Dtor_account() _dafny.Sequence { + return _this.Get_().(AwsArn_AwsArn).Account +} + +func (_this AwsArn) Dtor_resource() AwsResource { + return _this.Get_().(AwsArn_AwsArn).Resource +} + +func (_this AwsArn) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case AwsArn_AwsArn: + { + return "AwsArnParsing.AwsArn.AwsArn" + "(" + _dafny.String(data.ArnLiteral) + ", " + _dafny.String(data.Partition) + ", " + _dafny.String(data.Service) + ", " + _dafny.String(data.Region) + ", " + _dafny.String(data.Account) + ", " + _dafny.String(data.Resource) + ")" + } + default: + { + return "" + } + } +} + +func (_this AwsArn) Equals(other AwsArn) bool { + switch data1 := _this.Get_().(type) { + case AwsArn_AwsArn: + { + data2, ok := other.Get_().(AwsArn_AwsArn) + return ok && data1.ArnLiteral.Equals(data2.ArnLiteral) && data1.Partition.Equals(data2.Partition) && data1.Service.Equals(data2.Service) && data1.Region.Equals(data2.Region) && data1.Account.Equals(data2.Account) && data1.Resource.Equals(data2.Resource) + } + default: + { + return false // unexpected + } + } +} + +func (_this AwsArn) EqualsGeneric(other interface{}) bool { + typed, ok := other.(AwsArn) + return ok && _this.Equals(typed) +} + +func Type_AwsArn_() _dafny.TypeDescriptor { + return type_AwsArn_{} +} + +type type_AwsArn_ struct { +} + +func (_this type_AwsArn_) Default() interface{} { + return Companion_AwsArn_.Default() +} + +func (_this type_AwsArn_) String() string { + return "AwsArnParsing.AwsArn" +} +func (_this AwsArn) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = AwsArn{} + +func (_this AwsArn) Valid() bool { + { + return (((((_dafny.Companion_Sequence_.Equal((_this).Dtor_arnLiteral(), _dafny.SeqOfString("arn"))) && ((_dafny.IntOfUint32(((_this).Dtor_partition()).Cardinality())).Sign() == 1)) && ((_dafny.IntOfUint32(((_this).Dtor_service()).Cardinality())).Sign() == 1)) && ((_dafny.IntOfUint32(((_this).Dtor_region()).Cardinality())).Sign() == 1)) && ((_dafny.IntOfUint32(((_this).Dtor_account()).Cardinality())).Sign() == 1)) && (((_this).Dtor_resource()).Valid()) + } +} +func (_this AwsArn) ToString() _dafny.Sequence { + { + return (_this).ToArnString(m_Wrappers.Companion_Option_.Create_None_()) + } +} +func (_this AwsArn) ToArnString(customRegion m_Wrappers.Option) _dafny.Sequence { + { + goto TAIL_CALL_START + TAIL_CALL_START: + var _source0 m_Wrappers.Option = customRegion + _ = _source0 + { + if _source0.Is_None() { + var _in0 AwsArn = _this + _ = _in0 + var _in1 m_Wrappers.Option = m_Wrappers.Companion_Option_.Create_Some_((_this).Dtor_region()) + _ = _in1 + _this = _in0 + + customRegion = _in1 + goto TAIL_CALL_START + } + } + { + var _0_customRegion _dafny.Sequence = _source0.Get_().(m_Wrappers.Option_Some).Value.(_dafny.Sequence) + _ = _0_customRegion + return m_StandardLibrary.Companion_Default___.Join(_dafny.SeqOf((_this).Dtor_arnLiteral(), (_this).Dtor_partition(), (_this).Dtor_service(), _0_customRegion, (_this).Dtor_account(), ((_this).Dtor_resource()).ToString()), _dafny.SeqOfString(":")) + } + } +} + +// End of datatype AwsArn + +// Definition of class AwsKmsArn +type AwsKmsArn struct { +} + +func New_AwsKmsArn_() *AwsKmsArn { + _this := AwsKmsArn{} + + return &_this +} + +type CompanionStruct_AwsKmsArn_ struct { +} + +var Companion_AwsKmsArn_ = CompanionStruct_AwsKmsArn_{} + +func (*AwsKmsArn) String() string { + return "AwsArnParsing.AwsKmsArn" +} + +// End of class AwsKmsArn + +func Type_AwsKmsArn_() _dafny.TypeDescriptor { + return type_AwsKmsArn_{} +} + +type type_AwsKmsArn_ struct { +} + +func (_this type_AwsKmsArn_) Default() interface{} { + return Companion_AwsArn_.Default() +} + +func (_this type_AwsKmsArn_) String() string { + return "AwsArnParsing.AwsKmsArn" +} +func (_this *CompanionStruct_AwsKmsArn_) Is_(__source AwsArn) bool { + var _1_a AwsArn = (__source) + _ = _1_a + return Companion_Default___.ValidAwsKmsArn(_1_a) +} + +// Definition of class AwsKmsResource +type AwsKmsResource struct { +} + +func New_AwsKmsResource_() *AwsKmsResource { + _this := AwsKmsResource{} + + return &_this +} + +type CompanionStruct_AwsKmsResource_ struct { +} + +var Companion_AwsKmsResource_ = CompanionStruct_AwsKmsResource_{} + +func (*AwsKmsResource) String() string { + return "AwsArnParsing.AwsKmsResource" +} + +// End of class AwsKmsResource + +func Type_AwsKmsResource_() _dafny.TypeDescriptor { + return type_AwsKmsResource_{} +} + +type type_AwsKmsResource_ struct { +} + +func (_this type_AwsKmsResource_) Default() interface{} { + return Companion_AwsResource_.Default() +} + +func (_this type_AwsKmsResource_) String() string { + return "AwsArnParsing.AwsKmsResource" +} +func (_this *CompanionStruct_AwsKmsResource_) Is_(__source AwsResource) bool { + var _2_r AwsResource = (__source) + _ = _2_r + return Companion_Default___.ValidAwsKmsResource(_2_r) +} + +// Definition of datatype AwsKmsIdentifier +type AwsKmsIdentifier struct { + Data_AwsKmsIdentifier_ +} + +func (_this AwsKmsIdentifier) Get_() Data_AwsKmsIdentifier_ { + return _this.Data_AwsKmsIdentifier_ +} + +type Data_AwsKmsIdentifier_ interface { + isAwsKmsIdentifier() +} + +type CompanionStruct_AwsKmsIdentifier_ struct { +} + +var Companion_AwsKmsIdentifier_ = CompanionStruct_AwsKmsIdentifier_{} + +type AwsKmsIdentifier_AwsKmsArnIdentifier struct { + A AwsArn +} + +func (AwsKmsIdentifier_AwsKmsArnIdentifier) isAwsKmsIdentifier() {} + +func (CompanionStruct_AwsKmsIdentifier_) Create_AwsKmsArnIdentifier_(A AwsArn) AwsKmsIdentifier { + return AwsKmsIdentifier{AwsKmsIdentifier_AwsKmsArnIdentifier{A}} +} + +func (_this AwsKmsIdentifier) Is_AwsKmsArnIdentifier() bool { + _, ok := _this.Get_().(AwsKmsIdentifier_AwsKmsArnIdentifier) + return ok +} + +type AwsKmsIdentifier_AwsKmsRawResourceIdentifier struct { + R AwsResource +} + +func (AwsKmsIdentifier_AwsKmsRawResourceIdentifier) isAwsKmsIdentifier() {} + +func (CompanionStruct_AwsKmsIdentifier_) Create_AwsKmsRawResourceIdentifier_(R AwsResource) AwsKmsIdentifier { + return AwsKmsIdentifier{AwsKmsIdentifier_AwsKmsRawResourceIdentifier{R}} +} + +func (_this AwsKmsIdentifier) Is_AwsKmsRawResourceIdentifier() bool { + _, ok := _this.Get_().(AwsKmsIdentifier_AwsKmsRawResourceIdentifier) + return ok +} + +func (CompanionStruct_AwsKmsIdentifier_) Default() AwsKmsIdentifier { + return Companion_AwsKmsIdentifier_.Create_AwsKmsArnIdentifier_(Companion_AwsArn_.Default()) +} + +func (_this AwsKmsIdentifier) Dtor_a() AwsArn { + return _this.Get_().(AwsKmsIdentifier_AwsKmsArnIdentifier).A +} + +func (_this AwsKmsIdentifier) Dtor_r() AwsResource { + return _this.Get_().(AwsKmsIdentifier_AwsKmsRawResourceIdentifier).R +} + +func (_this AwsKmsIdentifier) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case AwsKmsIdentifier_AwsKmsArnIdentifier: + { + return "AwsArnParsing.AwsKmsIdentifier.AwsKmsArnIdentifier" + "(" + _dafny.String(data.A) + ")" + } + case AwsKmsIdentifier_AwsKmsRawResourceIdentifier: + { + return "AwsArnParsing.AwsKmsIdentifier.AwsKmsRawResourceIdentifier" + "(" + _dafny.String(data.R) + ")" + } + default: + { + return "" + } + } +} + +func (_this AwsKmsIdentifier) Equals(other AwsKmsIdentifier) bool { + switch data1 := _this.Get_().(type) { + case AwsKmsIdentifier_AwsKmsArnIdentifier: + { + data2, ok := other.Get_().(AwsKmsIdentifier_AwsKmsArnIdentifier) + return ok && data1.A.Equals(data2.A) + } + case AwsKmsIdentifier_AwsKmsRawResourceIdentifier: + { + data2, ok := other.Get_().(AwsKmsIdentifier_AwsKmsRawResourceIdentifier) + return ok && data1.R.Equals(data2.R) + } + default: + { + return false // unexpected + } + } +} + +func (_this AwsKmsIdentifier) EqualsGeneric(other interface{}) bool { + typed, ok := other.(AwsKmsIdentifier) + return ok && _this.Equals(typed) +} + +func Type_AwsKmsIdentifier_() _dafny.TypeDescriptor { + return type_AwsKmsIdentifier_{} +} + +type type_AwsKmsIdentifier_ struct { +} + +func (_this type_AwsKmsIdentifier_) Default() interface{} { + return Companion_AwsKmsIdentifier_.Default() +} + +func (_this type_AwsKmsIdentifier_) String() string { + return "AwsArnParsing.AwsKmsIdentifier" +} +func (_this AwsKmsIdentifier) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = AwsKmsIdentifier{} + +func (_this AwsKmsIdentifier) ToString() _dafny.Sequence { + { + var _source0 AwsKmsIdentifier = _this + _ = _source0 + { + if _source0.Is_AwsKmsArnIdentifier() { + var _0_a AwsArn = _source0.Get_().(AwsKmsIdentifier_AwsKmsArnIdentifier).A + _ = _0_a + return (_0_a).ToString() + } + } + { + var _1_r AwsResource = _source0.Get_().(AwsKmsIdentifier_AwsKmsRawResourceIdentifier).R + _ = _1_r + return (_1_r).ToString() + } + } +} + +// End of datatype AwsKmsIdentifier + +// Definition of class AmazonDynamodbTableArn +type AmazonDynamodbTableArn struct { +} + +func New_AmazonDynamodbTableArn_() *AmazonDynamodbTableArn { + _this := AmazonDynamodbTableArn{} + + return &_this +} + +type CompanionStruct_AmazonDynamodbTableArn_ struct { +} + +var Companion_AmazonDynamodbTableArn_ = CompanionStruct_AmazonDynamodbTableArn_{} + +func (*AmazonDynamodbTableArn) String() string { + return "AwsArnParsing.AmazonDynamodbTableArn" +} + +// End of class AmazonDynamodbTableArn + +func Type_AmazonDynamodbTableArn_() _dafny.TypeDescriptor { + return type_AmazonDynamodbTableArn_{} +} + +type type_AmazonDynamodbTableArn_ struct { +} + +func (_this type_AmazonDynamodbTableArn_) Default() interface{} { + return Companion_AwsArn_.Default() +} + +func (_this type_AmazonDynamodbTableArn_) String() string { + return "AwsArnParsing.AmazonDynamodbTableArn" +} +func (_this *CompanionStruct_AmazonDynamodbTableArn_) Is_(__source AwsArn) bool { + var _2_a AwsArn = (__source) + _ = _2_a + return Companion_Default___.ValidAmazonDynamodbArn(_2_a) +} + +// Definition of class AmazonDynamodbResource +type AmazonDynamodbResource struct { +} + +func New_AmazonDynamodbResource_() *AmazonDynamodbResource { + _this := AmazonDynamodbResource{} + + return &_this +} + +type CompanionStruct_AmazonDynamodbResource_ struct { +} + +var Companion_AmazonDynamodbResource_ = CompanionStruct_AmazonDynamodbResource_{} + +func (*AmazonDynamodbResource) String() string { + return "AwsArnParsing.AmazonDynamodbResource" +} + +// End of class AmazonDynamodbResource + +func Type_AmazonDynamodbResource_() _dafny.TypeDescriptor { + return type_AmazonDynamodbResource_{} +} + +type type_AmazonDynamodbResource_ struct { +} + +func (_this type_AmazonDynamodbResource_) Default() interface{} { + return Companion_AwsResource_.Default() +} + +func (_this type_AmazonDynamodbResource_) String() string { + return "AwsArnParsing.AmazonDynamodbResource" +} +func (_this *CompanionStruct_AmazonDynamodbResource_) Is_(__source AwsResource) bool { + var _3_r AwsResource = (__source) + _ = _3_r + return Companion_Default___.ValidAmazonDynamodbResource(_3_r) +} + +// Definition of datatype AmazonDynamodbTableName +type AmazonDynamodbTableName struct { + Data_AmazonDynamodbTableName_ +} + +func (_this AmazonDynamodbTableName) Get_() Data_AmazonDynamodbTableName_ { + return _this.Data_AmazonDynamodbTableName_ +} + +type Data_AmazonDynamodbTableName_ interface { + isAmazonDynamodbTableName() +} + +type CompanionStruct_AmazonDynamodbTableName_ struct { +} + +var Companion_AmazonDynamodbTableName_ = CompanionStruct_AmazonDynamodbTableName_{} + +type AmazonDynamodbTableName_AmazonDynamodbTableArn struct { + A AwsArn +} + +func (AmazonDynamodbTableName_AmazonDynamodbTableArn) isAmazonDynamodbTableName() {} + +func (CompanionStruct_AmazonDynamodbTableName_) Create_AmazonDynamodbTableArn_(A AwsArn) AmazonDynamodbTableName { + return AmazonDynamodbTableName{AmazonDynamodbTableName_AmazonDynamodbTableArn{A}} +} + +func (_this AmazonDynamodbTableName) Is_AmazonDynamodbTableArn() bool { + _, ok := _this.Get_().(AmazonDynamodbTableName_AmazonDynamodbTableArn) + return ok +} + +func (CompanionStruct_AmazonDynamodbTableName_) Default() AmazonDynamodbTableName { + return Companion_AmazonDynamodbTableName_.Create_AmazonDynamodbTableArn_(Companion_AwsArn_.Default()) +} + +func (_this AmazonDynamodbTableName) Dtor_a() AwsArn { + return _this.Get_().(AmazonDynamodbTableName_AmazonDynamodbTableArn).A +} + +func (_this AmazonDynamodbTableName) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case AmazonDynamodbTableName_AmazonDynamodbTableArn: + { + return "AwsArnParsing.AmazonDynamodbTableName.AmazonDynamodbTableArn" + "(" + _dafny.String(data.A) + ")" + } + default: + { + return "" + } + } +} + +func (_this AmazonDynamodbTableName) Equals(other AmazonDynamodbTableName) bool { + switch data1 := _this.Get_().(type) { + case AmazonDynamodbTableName_AmazonDynamodbTableArn: + { + data2, ok := other.Get_().(AmazonDynamodbTableName_AmazonDynamodbTableArn) + return ok && data1.A.Equals(data2.A) + } + default: + { + return false // unexpected + } + } +} + +func (_this AmazonDynamodbTableName) EqualsGeneric(other interface{}) bool { + typed, ok := other.(AmazonDynamodbTableName) + return ok && _this.Equals(typed) +} + +func Type_AmazonDynamodbTableName_() _dafny.TypeDescriptor { + return type_AmazonDynamodbTableName_{} +} + +type type_AmazonDynamodbTableName_ struct { +} + +func (_this type_AmazonDynamodbTableName_) Default() interface{} { + return Companion_AmazonDynamodbTableName_.Default() +} + +func (_this type_AmazonDynamodbTableName_) String() string { + return "AwsArnParsing.AmazonDynamodbTableName" +} +func (_this AmazonDynamodbTableName) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = AmazonDynamodbTableName{} + +func (_this AmazonDynamodbTableName) GetTableName() _dafny.Sequence { + { + var _source0 AmazonDynamodbTableName = _this + _ = _source0 + { + var _0_a AwsArn = _source0.Get_().(AmazonDynamodbTableName_AmazonDynamodbTableArn).A + _ = _0_a + return ((_0_a).Dtor_resource()).Dtor_value() + } + } +} + +// End of datatype AmazonDynamodbTableName + +// Definition of class AwsKmsIdentifierString +type AwsKmsIdentifierString struct { +} + +func New_AwsKmsIdentifierString_() *AwsKmsIdentifierString { + _this := AwsKmsIdentifierString{} + + return &_this +} + +type CompanionStruct_AwsKmsIdentifierString_ struct { +} + +var Companion_AwsKmsIdentifierString_ = CompanionStruct_AwsKmsIdentifierString_{} + +func (*AwsKmsIdentifierString) String() string { + return "AwsArnParsing.AwsKmsIdentifierString" +} + +// End of class AwsKmsIdentifierString + +func Type_AwsKmsIdentifierString_() _dafny.TypeDescriptor { + return type_AwsKmsIdentifierString_{} +} + +type type_AwsKmsIdentifierString_ struct { +} + +func (_this type_AwsKmsIdentifierString_) Default() interface{} { + return _dafny.EmptySeq.SetString() +} + +func (_this type_AwsKmsIdentifierString_) String() string { + return "AwsArnParsing.AwsKmsIdentifierString" +} +func (_this *CompanionStruct_AwsKmsIdentifierString_) Is_(__source _dafny.Sequence) bool { + var _1_s _dafny.Sequence = (__source) + _ = _1_s + return (Companion_Default___.IsAwsKmsIdentifierString(_1_s)).Is_Success() +} diff --git a/customer-preview/mpl/AwsCryptographyKeyStoreOperations/AwsCryptographyKeyStoreOperations.go b/customer-preview/mpl/AwsCryptographyKeyStoreOperations/AwsCryptographyKeyStoreOperations.go new file mode 100644 index 000000000..d2fe0fa41 --- /dev/null +++ b/customer-preview/mpl/AwsCryptographyKeyStoreOperations/AwsCryptographyKeyStoreOperations.go @@ -0,0 +1,586 @@ +// Package AwsCryptographyKeyStoreOperations +// Dafny module AwsCryptographyKeyStoreOperations compiled into Go + +package AwsCryptographyKeyStoreOperations + +import ( + os "os" + + m_ComAmazonawsDynamodbTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/ComAmazonawsDynamodbTypes" + m_ComAmazonawsKmsTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/ComAmazonawsKmsTypes" + m_AwsArnParsing "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsArnParsing" + m_AwsCryptographyKeyStoreTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreTypes" + m_AwsCryptographyMaterialProvidersTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersTypes" + m_AwsKmsMrkMatchForDecrypt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkMatchForDecrypt" + m_AwsKmsUtils "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsUtils" + m_CreateKeyStoreTable "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeyStoreTable" + m_CreateKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeys" + m_DDBKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DDBKeystoreOperations" + m_GetKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/GetKeys" + m_KMSKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KMSKeystoreOperations" + m_KeyStoreErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStoreErrorMessages" + m_KmsArn "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KmsArn" + m_Structure "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Structure" + m_AtomicPrimitives "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AtomicPrimitives" + m_AwsCryptographyPrimitivesOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesOperations" + m_AwsCryptographyPrimitivesTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesTypes" + m_Digest "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Digest" + m_HKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/HKDF" + m_KdfCtr "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/KdfCtr" + m_Random "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Random" + m_WrappedHKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHKDF" + m_WrappedHMAC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHMAC" + m_Actions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Actions" + m_Base64 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64" + m_Base64Lemmas "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64Lemmas" + m_BoundedInts "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/BoundedInts" + m_DivInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternals" + m_DivInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternalsNonlinear" + m_DivMod "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivMod" + m_FileIO "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FileIO" + m_FloatCompare "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FloatCompare" + m_Functions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Functions" + m_GeneralInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GeneralInternals" + m_GetOpt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GetOpt" + m_HexStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/HexStrings" + m_Logarithm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Logarithm" + m__Math "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Math_" + m_ModInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternals" + m_ModInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternalsNonlinear" + m_Mul "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Mul" + m_MulInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternals" + m_MulInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternalsNonlinear" + m_Power "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Power" + m_Relations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Relations" + m_Seq "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq" + m_Seq_MergeSort "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq_MergeSort" + m_Sorting "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Sorting" + m_StandardLibrary "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary" + m_StandardLibraryInterop "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibraryInterop" + m_StandardLibrary_Sequence "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_Sequence" + m_StandardLibrary_String "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_String" + m_StandardLibrary_UInt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_UInt" + m_Streams "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Streams" + m__Time "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Time_" + m_UTF8 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UTF8" + m_UUID "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UUID" + m_UnicodeStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UnicodeStrings" + m__Unicode "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Unicode_" + m_Utf16EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf16EncodingForm" + m_Utf8EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf8EncodingForm" + m_Wrappers "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers" + m__System "github.com/dafny-lang/DafnyRuntimeGo/v4/System_" + _dafny "github.com/dafny-lang/DafnyRuntimeGo/v4/dafny" +) + +var _ = os.Args +var _ _dafny.Dummy__ +var _ m__System.Dummy__ +var _ m_Wrappers.Dummy__ +var _ m_BoundedInts.Dummy__ +var _ m_StandardLibrary_UInt.Dummy__ +var _ m_StandardLibrary_Sequence.Dummy__ +var _ m_StandardLibrary_String.Dummy__ +var _ m_StandardLibrary.Dummy__ +var _ m_AwsCryptographyPrimitivesTypes.Dummy__ +var _ m_Random.Dummy__ +var _ m_Digest.Dummy__ +var _ m_WrappedHMAC.Dummy__ +var _ m_HKDF.Dummy__ +var _ m_WrappedHKDF.Dummy__ +var _ m_KdfCtr.Dummy__ +var _ m_AwsCryptographyPrimitivesOperations.Dummy__ +var _ m_AtomicPrimitives.Dummy__ +var _ m_ComAmazonawsDynamodbTypes.Dummy__ +var _ m_ComAmazonawsKmsTypes.Dummy__ +var _ m_Relations.Dummy__ +var _ m_Seq_MergeSort.Dummy__ +var _ m__Math.Dummy__ +var _ m_Seq.Dummy__ +var _ m__Unicode.Dummy__ +var _ m_Functions.Dummy__ +var _ m_Utf8EncodingForm.Dummy__ +var _ m_Utf16EncodingForm.Dummy__ +var _ m_UnicodeStrings.Dummy__ +var _ m_FileIO.Dummy__ +var _ m_GeneralInternals.Dummy__ +var _ m_MulInternalsNonlinear.Dummy__ +var _ m_MulInternals.Dummy__ +var _ m_Mul.Dummy__ +var _ m_ModInternalsNonlinear.Dummy__ +var _ m_DivInternalsNonlinear.Dummy__ +var _ m_ModInternals.Dummy__ +var _ m_DivInternals.Dummy__ +var _ m_DivMod.Dummy__ +var _ m_Power.Dummy__ +var _ m_Logarithm.Dummy__ +var _ m_StandardLibraryInterop.Dummy__ +var _ m_Streams.Dummy__ +var _ m_Sorting.Dummy__ +var _ m_HexStrings.Dummy__ +var _ m_GetOpt.Dummy__ +var _ m_FloatCompare.Dummy__ +var _ m_Base64.Dummy__ +var _ m_Base64Lemmas.Dummy__ +var _ m_Actions.Dummy__ +var _ m_AwsCryptographyKeyStoreTypes.Dummy__ +var _ m_AwsCryptographyMaterialProvidersTypes.Dummy__ +var _ m_AwsArnParsing.Dummy__ +var _ m_AwsKmsMrkMatchForDecrypt.Dummy__ +var _ m_AwsKmsUtils.Dummy__ +var _ m_KeyStoreErrorMessages.Dummy__ +var _ m_KmsArn.Dummy__ +var _ m_Structure.Dummy__ +var _ m_KMSKeystoreOperations.Dummy__ +var _ m_DDBKeystoreOperations.Dummy__ +var _ m_CreateKeys.Dummy__ +var _ m_CreateKeyStoreTable.Dummy__ +var _ m_GetKeys.Dummy__ + +type Dummy__ struct{} + +// Definition of class Default__ +type Default__ struct { + dummy byte +} + +func New_Default___() *Default__ { + _this := Default__{} + + return &_this +} + +type CompanionStruct_Default___ struct { +} + +var Companion_Default___ = CompanionStruct_Default___{} + +func (_this *Default__) Equals(other *Default__) bool { + return _this == other +} + +func (_this *Default__) EqualsGeneric(x interface{}) bool { + other, ok := x.(*Default__) + return ok && _this.Equals(other) +} + +func (*Default__) String() string { + return "AwsCryptographyKeyStoreOperations.Default__" +} +func (_this *Default__) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = &Default__{} + +func (_static *CompanionStruct_Default___) GetKeyStoreInfo(config Config) m_Wrappers.Result { + var output m_Wrappers.Result = m_Wrappers.Result{} + _ = output + output = m_Wrappers.Companion_Result_.Create_Success_(m_AwsCryptographyKeyStoreTypes.Companion_GetKeyStoreInfoOutput_.Create_GetKeyStoreInfoOutput_((config).Dtor_id(), (config).Dtor_ddbTableName(), (config).Dtor_logicalKeyStoreName(), (config).Dtor_grantTokens(), (config).Dtor_kmsConfiguration())) + return output +} +func (_static *CompanionStruct_Default___) CreateKeyStore(config Config, input m_AwsCryptographyKeyStoreTypes.CreateKeyStoreInput) m_Wrappers.Result { + var output m_Wrappers.Result = m_Wrappers.Result{} + _ = output + var _0_valueOrError0 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq.SetString()) + _ = _0_valueOrError0 + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_CreateKeyStoreTable.Companion_Default___.CreateKeyStoreTable((config).Dtor_ddbTableName(), (config).Dtor_ddbClient()) + _0_valueOrError0 = _out0 + if (_0_valueOrError0).IsFailure() { + output = (_0_valueOrError0).PropagateFailure() + return output + } + var _1_ddbTableArn _dafny.Sequence + _ = _1_ddbTableArn + _1_ddbTableArn = (_0_valueOrError0).Extract().(_dafny.Sequence) + var _2_tableName m_Wrappers.Result + _ = _2_tableName + _2_tableName = m_AwsArnParsing.Companion_Default___.ParseAmazonDynamodbTableName(_1_ddbTableArn) + var _3_valueOrError1 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _3_valueOrError1 + _3_valueOrError1 = m_Wrappers.Companion_Default___.Need(((_2_tableName).Is_Success()) && (_dafny.Companion_Sequence_.Equal((_2_tableName).Dtor_value().(_dafny.Sequence), (config).Dtor_ddbTableName())), m_AwsCryptographyKeyStoreTypes.Companion_Error_.Create_KeyStoreException_(_dafny.SeqOfString("Configured DDB Table Name does not match parsed Table Name from DDB Table Arn."))) + if (_3_valueOrError1).IsFailure() { + output = (_3_valueOrError1).PropagateFailure() + return output + } + output = m_Wrappers.Companion_Result_.Create_Success_(m_AwsCryptographyKeyStoreTypes.Companion_CreateKeyStoreOutput_.Create_CreateKeyStoreOutput_(_1_ddbTableArn)) + return output +} +func (_static *CompanionStruct_Default___) CreateKey(config Config, input m_AwsCryptographyKeyStoreTypes.CreateKeyInput) m_Wrappers.Result { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_AwsCryptographyKeyStoreTypes.Companion_CreateKeyOutput_.Default()) + _ = output + var _0_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _0_valueOrError0 + _0_valueOrError0 = m_Wrappers.Companion_Default___.Need(!(((input).Dtor_branchKeyIdentifier()).Is_Some()) || ((((input).Dtor_encryptionContext()).Is_Some()) && (((((input).Dtor_encryptionContext()).Dtor_value().(_dafny.Map)).Cardinality()).Sign() == 1)), m_AwsCryptographyKeyStoreTypes.Companion_Error_.Create_KeyStoreException_(m_KeyStoreErrorMessages.Companion_Default___.CUSTOM__BRANCH__KEY__ID__NEED__EC())) + if (_0_valueOrError0).IsFailure() { + output = (_0_valueOrError0).PropagateFailure() + return output + } + var _1_valueOrError1 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _1_valueOrError1 + _1_valueOrError1 = m_Wrappers.Companion_Default___.Need(m_KMSKeystoreOperations.Companion_Default___.HasKeyId((config).Dtor_kmsConfiguration()), m_AwsCryptographyKeyStoreTypes.Companion_Error_.Create_KeyStoreException_(m_KeyStoreErrorMessages.Companion_Default___.DISCOVERY__CREATE__KEY__NOT__SUPPORTED())) + if (_1_valueOrError1).IsFailure() { + output = (_1_valueOrError1).PropagateFailure() + return output + } + var _2_branchKeyIdentifier _dafny.Sequence = _dafny.EmptySeq.SetString() + _ = _2_branchKeyIdentifier + if ((input).Dtor_branchKeyIdentifier()).Is_None() { + var _3_maybeBranchKeyId m_Wrappers.Result + _ = _3_maybeBranchKeyId + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_UUID.GenerateUUID() + _3_maybeBranchKeyId = _out0 + var _4_valueOrError2 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq.SetString()) + _ = _4_valueOrError2 + _4_valueOrError2 = (_3_maybeBranchKeyId).MapFailure(func(coer19 func(_dafny.Sequence) m_AwsCryptographyKeyStoreTypes.Error) func(interface{}) interface{} { + return func(arg19 interface{}) interface{} { + return coer19(arg19.(_dafny.Sequence)) + } + }(func(_5_e _dafny.Sequence) m_AwsCryptographyKeyStoreTypes.Error { + return m_AwsCryptographyKeyStoreTypes.Companion_Error_.Create_KeyStoreException_(_5_e) + })) + if (_4_valueOrError2).IsFailure() { + output = (_4_valueOrError2).PropagateFailure() + return output + } + _2_branchKeyIdentifier = (_4_valueOrError2).Extract().(_dafny.Sequence) + } else { + var _6_valueOrError3 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _6_valueOrError3 + _6_valueOrError3 = m_Wrappers.Companion_Default___.Need((_dafny.IntOfUint32((((input).Dtor_branchKeyIdentifier()).Dtor_value().(_dafny.Sequence)).Cardinality())).Sign() == 1, m_AwsCryptographyKeyStoreTypes.Companion_Error_.Create_KeyStoreException_(_dafny.SeqOfString("Custom branch key id can not be an empty string."))) + if (_6_valueOrError3).IsFailure() { + output = (_6_valueOrError3).PropagateFailure() + return output + } + _2_branchKeyIdentifier = ((input).Dtor_branchKeyIdentifier()).Dtor_value().(_dafny.Sequence) + } + var _7_timestamp_q m_Wrappers.Result + _ = _7_timestamp_q + var _out1 m_Wrappers.Result + _ = _out1 + _out1 = m__Time.GetCurrentTimeStamp() + _7_timestamp_q = _out1 + var _8_valueOrError4 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq.SetString()) + _ = _8_valueOrError4 + _8_valueOrError4 = (_7_timestamp_q).MapFailure(func(coer20 func(_dafny.Sequence) m_AwsCryptographyKeyStoreTypes.Error) func(interface{}) interface{} { + return func(arg20 interface{}) interface{} { + return coer20(arg20.(_dafny.Sequence)) + } + }(func(_9_e _dafny.Sequence) m_AwsCryptographyKeyStoreTypes.Error { + return m_AwsCryptographyKeyStoreTypes.Companion_Error_.Create_KeyStoreException_(_9_e) + })) + if (_8_valueOrError4).IsFailure() { + output = (_8_valueOrError4).PropagateFailure() + return output + } + var _10_timestamp _dafny.Sequence + _ = _10_timestamp + _10_timestamp = (_8_valueOrError4).Extract().(_dafny.Sequence) + var _11_maybeBranchKeyVersion m_Wrappers.Result + _ = _11_maybeBranchKeyVersion + var _out2 m_Wrappers.Result + _ = _out2 + _out2 = m_UUID.GenerateUUID() + _11_maybeBranchKeyVersion = _out2 + var _12_valueOrError5 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq.SetString()) + _ = _12_valueOrError5 + _12_valueOrError5 = (_11_maybeBranchKeyVersion).MapFailure(func(coer21 func(_dafny.Sequence) m_AwsCryptographyKeyStoreTypes.Error) func(interface{}) interface{} { + return func(arg21 interface{}) interface{} { + return coer21(arg21.(_dafny.Sequence)) + } + }(func(_13_e _dafny.Sequence) m_AwsCryptographyKeyStoreTypes.Error { + return m_AwsCryptographyKeyStoreTypes.Companion_Error_.Create_KeyStoreException_(_13_e) + })) + if (_12_valueOrError5).IsFailure() { + output = (_12_valueOrError5).PropagateFailure() + return output + } + var _14_branchKeyVersion _dafny.Sequence + _ = _14_branchKeyVersion + _14_branchKeyVersion = (_12_valueOrError5).Extract().(_dafny.Sequence) + var _15_unwrapEncryptionContext _dafny.Map + _ = _15_unwrapEncryptionContext + _15_unwrapEncryptionContext = ((input).Dtor_encryptionContext()).UnwrapOr(_dafny.NewMapBuilder().ToMap()).(_dafny.Map) + var _16_encodedEncryptionContext _dafny.Set + _ = _16_encodedEncryptionContext + _16_encodedEncryptionContext = func() _dafny.Set { + var _coll0 = _dafny.NewBuilder() + _ = _coll0 + for _iter7 := _dafny.Iterate((_15_unwrapEncryptionContext).Keys().Elements()); ; { + _compr_0, _ok7 := _iter7() + if !_ok7 { + break + } + var _17_k _dafny.Sequence + _17_k = interface{}(_compr_0).(_dafny.Sequence) + if m_UTF8.Companion_ValidUTF8Bytes_.Is_(_17_k) { + if (_15_unwrapEncryptionContext).Contains(_17_k) { + _coll0.Add(_dafny.TupleOf(m_UTF8.Decode(_17_k), m_UTF8.Decode((_15_unwrapEncryptionContext).Get(_17_k).(_dafny.Sequence)), _17_k)) + } + } + } + return _coll0.ToSet() + }() + var _18_valueOrError6 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _18_valueOrError6 + _18_valueOrError6 = m_Wrappers.Companion_Default___.Need(_dafny.Quantifier((_16_encodedEncryptionContext).Elements(), true, func(_forall_var_0 _dafny.Tuple) bool { + var _19_i _dafny.Tuple + _19_i = interface{}(_forall_var_0).(_dafny.Tuple) + return !((_16_encodedEncryptionContext).Contains(_19_i)) || ((((((*(_19_i).IndexInt(0)).(m_Wrappers.Result)).Is_Success()) && (((*(_19_i).IndexInt(1)).(m_Wrappers.Result)).Is_Success())) && (m_ComAmazonawsDynamodbTypes.Companion_Default___.IsValid__AttributeName(_dafny.Companion_Sequence_.Concatenate(m_Structure.Companion_Default___.ENCRYPTION__CONTEXT__PREFIX(), ((*(_19_i).IndexInt(0)).(m_Wrappers.Result)).Dtor_value().(_dafny.Sequence))))) && (func(_pat_let1_0 m_Wrappers.Result) bool { + return func(_20_encoded m_Wrappers.Result) bool { + return ((_20_encoded).Is_Success()) && (_dafny.Companion_Sequence_.Equal((*(_19_i).IndexInt(2)).(_dafny.Sequence), (_20_encoded).Dtor_value().(_dafny.Sequence))) + }(_pat_let1_0) + }(m_UTF8.Encode(((*(_19_i).IndexInt(0)).(m_Wrappers.Result)).Dtor_value().(_dafny.Sequence))))) + }), m_AwsCryptographyKeyStoreTypes.Companion_Error_.Create_KeyStoreException_(m_KeyStoreErrorMessages.Companion_Default___.UTF8__ENCODING__ENCRYPTION__CONTEXT__ERROR())) + if (_18_valueOrError6).IsFailure() { + output = (_18_valueOrError6).PropagateFailure() + return output + } + var _out3 m_Wrappers.Result + _ = _out3 + _out3 = m_CreateKeys.Companion_Default___.CreateBranchAndBeaconKeys(_2_branchKeyIdentifier, func() _dafny.Map { + var _coll1 = _dafny.NewMapBuilder() + _ = _coll1 + for _iter8 := _dafny.Iterate((_16_encodedEncryptionContext).Elements()); ; { + _compr_1, _ok8 := _iter8() + if !_ok8 { + break + } + var _21_i _dafny.Tuple + _21_i = interface{}(_compr_1).(_dafny.Tuple) + if (_16_encodedEncryptionContext).Contains(_21_i) { + _coll1.Add(((*(_21_i).IndexInt(0)).(m_Wrappers.Result)).Dtor_value().(_dafny.Sequence), ((*(_21_i).IndexInt(1)).(m_Wrappers.Result)).Dtor_value().(_dafny.Sequence)) + } + } + return _coll1.ToMap() + }(), _10_timestamp, _14_branchKeyVersion, (config).Dtor_ddbTableName(), (config).Dtor_logicalKeyStoreName(), (config).Dtor_kmsConfiguration(), (config).Dtor_grantTokens(), (config).Dtor_kmsClient(), (config).Dtor_ddbClient()) + output = _out3 + return output +} +func (_static *CompanionStruct_Default___) VersionKey(config Config, input m_AwsCryptographyKeyStoreTypes.VersionKeyInput) m_Wrappers.Result { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_AwsCryptographyKeyStoreTypes.Companion_VersionKeyOutput_.Default()) + _ = output + var _0_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _0_valueOrError0 + _0_valueOrError0 = m_Wrappers.Companion_Default___.Need(m_KMSKeystoreOperations.Companion_Default___.HasKeyId((config).Dtor_kmsConfiguration()), m_AwsCryptographyKeyStoreTypes.Companion_Error_.Create_KeyStoreException_(m_KeyStoreErrorMessages.Companion_Default___.DISCOVERY__VERSION__KEY__NOT__SUPPORTED())) + if (_0_valueOrError0).IsFailure() { + output = (_0_valueOrError0).PropagateFailure() + return output + } + var _1_valueOrError1 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _1_valueOrError1 + _1_valueOrError1 = m_Wrappers.Companion_Default___.Need((_dafny.IntOfUint32(((input).Dtor_branchKeyIdentifier()).Cardinality())).Sign() == 1, m_AwsCryptographyKeyStoreTypes.Companion_Error_.Create_KeyStoreException_(m_KeyStoreErrorMessages.Companion_Default___.BRANCH__KEY__ID__NEEDED())) + if (_1_valueOrError1).IsFailure() { + output = (_1_valueOrError1).PropagateFailure() + return output + } + var _2_timestamp_q m_Wrappers.Result + _ = _2_timestamp_q + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m__Time.GetCurrentTimeStamp() + _2_timestamp_q = _out0 + var _3_valueOrError2 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq.SetString()) + _ = _3_valueOrError2 + _3_valueOrError2 = (_2_timestamp_q).MapFailure(func(coer22 func(_dafny.Sequence) m_AwsCryptographyKeyStoreTypes.Error) func(interface{}) interface{} { + return func(arg22 interface{}) interface{} { + return coer22(arg22.(_dafny.Sequence)) + } + }(func(_4_e _dafny.Sequence) m_AwsCryptographyKeyStoreTypes.Error { + return m_AwsCryptographyKeyStoreTypes.Companion_Error_.Create_KeyStoreException_(_4_e) + })) + if (_3_valueOrError2).IsFailure() { + output = (_3_valueOrError2).PropagateFailure() + return output + } + var _5_timestamp _dafny.Sequence + _ = _5_timestamp + _5_timestamp = (_3_valueOrError2).Extract().(_dafny.Sequence) + var _6_maybeBranchKeyVersion m_Wrappers.Result + _ = _6_maybeBranchKeyVersion + var _out1 m_Wrappers.Result + _ = _out1 + _out1 = m_UUID.GenerateUUID() + _6_maybeBranchKeyVersion = _out1 + var _7_valueOrError3 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq.SetString()) + _ = _7_valueOrError3 + _7_valueOrError3 = (_6_maybeBranchKeyVersion).MapFailure(func(coer23 func(_dafny.Sequence) m_AwsCryptographyKeyStoreTypes.Error) func(interface{}) interface{} { + return func(arg23 interface{}) interface{} { + return coer23(arg23.(_dafny.Sequence)) + } + }(func(_8_e _dafny.Sequence) m_AwsCryptographyKeyStoreTypes.Error { + return m_AwsCryptographyKeyStoreTypes.Companion_Error_.Create_KeyStoreException_(_8_e) + })) + if (_7_valueOrError3).IsFailure() { + output = (_7_valueOrError3).PropagateFailure() + return output + } + var _9_branchKeyVersion _dafny.Sequence + _ = _9_branchKeyVersion + _9_branchKeyVersion = (_7_valueOrError3).Extract().(_dafny.Sequence) + var _out2 m_Wrappers.Result + _ = _out2 + _out2 = m_CreateKeys.Companion_Default___.VersionActiveBranchKey(input, _5_timestamp, _9_branchKeyVersion, (config).Dtor_ddbTableName(), (config).Dtor_logicalKeyStoreName(), (config).Dtor_kmsConfiguration(), (config).Dtor_grantTokens(), (config).Dtor_kmsClient(), (config).Dtor_ddbClient()) + output = _out2 + return output +} +func (_static *CompanionStruct_Default___) GetActiveBranchKey(config Config, input m_AwsCryptographyKeyStoreTypes.GetActiveBranchKeyInput) m_Wrappers.Result { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_AwsCryptographyKeyStoreTypes.Companion_GetActiveBranchKeyOutput_.Default()) + _ = output + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_GetKeys.Companion_Default___.GetActiveKeyAndUnwrap(input, (config).Dtor_ddbTableName(), (config).Dtor_logicalKeyStoreName(), (config).Dtor_kmsConfiguration(), (config).Dtor_grantTokens(), (config).Dtor_kmsClient(), (config).Dtor_ddbClient()) + output = _out0 + return output +} +func (_static *CompanionStruct_Default___) GetBranchKeyVersion(config Config, input m_AwsCryptographyKeyStoreTypes.GetBranchKeyVersionInput) m_Wrappers.Result { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_AwsCryptographyKeyStoreTypes.Companion_GetBranchKeyVersionOutput_.Default()) + _ = output + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_GetKeys.Companion_Default___.GetBranchKeyVersion(input, (config).Dtor_ddbTableName(), (config).Dtor_logicalKeyStoreName(), (config).Dtor_kmsConfiguration(), (config).Dtor_grantTokens(), (config).Dtor_kmsClient(), (config).Dtor_ddbClient()) + output = _out0 + return output +} +func (_static *CompanionStruct_Default___) GetBeaconKey(config Config, input m_AwsCryptographyKeyStoreTypes.GetBeaconKeyInput) m_Wrappers.Result { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_AwsCryptographyKeyStoreTypes.Companion_GetBeaconKeyOutput_.Default()) + _ = output + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_GetKeys.Companion_Default___.GetBeaconKeyAndUnwrap(input, (config).Dtor_ddbTableName(), (config).Dtor_logicalKeyStoreName(), (config).Dtor_kmsConfiguration(), (config).Dtor_grantTokens(), (config).Dtor_kmsClient(), (config).Dtor_ddbClient()) + output = _out0 + return output +} + +// End of class Default__ + +// Definition of datatype Config +type Config struct { + Data_Config_ +} + +func (_this Config) Get_() Data_Config_ { + return _this.Data_Config_ +} + +type Data_Config_ interface { + isConfig() +} + +type CompanionStruct_Config_ struct { +} + +var Companion_Config_ = CompanionStruct_Config_{} + +type Config_Config struct { + Id _dafny.Sequence + DdbTableName _dafny.Sequence + LogicalKeyStoreName _dafny.Sequence + KmsConfiguration m_AwsCryptographyKeyStoreTypes.KMSConfiguration + GrantTokens _dafny.Sequence + KmsClient m_ComAmazonawsKmsTypes.IKMSClient + DdbClient m_ComAmazonawsDynamodbTypes.IDynamoDBClient +} + +func (Config_Config) isConfig() {} + +func (CompanionStruct_Config_) Create_Config_(Id _dafny.Sequence, DdbTableName _dafny.Sequence, LogicalKeyStoreName _dafny.Sequence, KmsConfiguration m_AwsCryptographyKeyStoreTypes.KMSConfiguration, GrantTokens _dafny.Sequence, KmsClient m_ComAmazonawsKmsTypes.IKMSClient, DdbClient m_ComAmazonawsDynamodbTypes.IDynamoDBClient) Config { + return Config{Config_Config{Id, DdbTableName, LogicalKeyStoreName, KmsConfiguration, GrantTokens, KmsClient, DdbClient}} +} + +func (_this Config) Is_Config() bool { + _, ok := _this.Get_().(Config_Config) + return ok +} + +func (CompanionStruct_Config_) Default() Config { + return Companion_Config_.Create_Config_(_dafny.EmptySeq.SetString(), _dafny.EmptySeq.SetString(), _dafny.EmptySeq.SetString(), m_AwsCryptographyKeyStoreTypes.Companion_KMSConfiguration_.Default(), _dafny.EmptySeq, (m_ComAmazonawsKmsTypes.IKMSClient)(nil), (m_ComAmazonawsDynamodbTypes.IDynamoDBClient)(nil)) +} + +func (_this Config) Dtor_id() _dafny.Sequence { + return _this.Get_().(Config_Config).Id +} + +func (_this Config) Dtor_ddbTableName() _dafny.Sequence { + return _this.Get_().(Config_Config).DdbTableName +} + +func (_this Config) Dtor_logicalKeyStoreName() _dafny.Sequence { + return _this.Get_().(Config_Config).LogicalKeyStoreName +} + +func (_this Config) Dtor_kmsConfiguration() m_AwsCryptographyKeyStoreTypes.KMSConfiguration { + return _this.Get_().(Config_Config).KmsConfiguration +} + +func (_this Config) Dtor_grantTokens() _dafny.Sequence { + return _this.Get_().(Config_Config).GrantTokens +} + +func (_this Config) Dtor_kmsClient() m_ComAmazonawsKmsTypes.IKMSClient { + return _this.Get_().(Config_Config).KmsClient +} + +func (_this Config) Dtor_ddbClient() m_ComAmazonawsDynamodbTypes.IDynamoDBClient { + return _this.Get_().(Config_Config).DdbClient +} + +func (_this Config) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case Config_Config: + { + return "AwsCryptographyKeyStoreOperations.Config.Config" + "(" + _dafny.String(data.Id) + ", " + _dafny.String(data.DdbTableName) + ", " + _dafny.String(data.LogicalKeyStoreName) + ", " + _dafny.String(data.KmsConfiguration) + ", " + _dafny.String(data.GrantTokens) + ", " + _dafny.String(data.KmsClient) + ", " + _dafny.String(data.DdbClient) + ")" + } + default: + { + return "" + } + } +} + +func (_this Config) Equals(other Config) bool { + switch data1 := _this.Get_().(type) { + case Config_Config: + { + data2, ok := other.Get_().(Config_Config) + return ok && data1.Id.Equals(data2.Id) && data1.DdbTableName.Equals(data2.DdbTableName) && data1.LogicalKeyStoreName.Equals(data2.LogicalKeyStoreName) && data1.KmsConfiguration.Equals(data2.KmsConfiguration) && data1.GrantTokens.Equals(data2.GrantTokens) && _dafny.AreEqual(data1.KmsClient, data2.KmsClient) && _dafny.AreEqual(data1.DdbClient, data2.DdbClient) + } + default: + { + return false // unexpected + } + } +} + +func (_this Config) EqualsGeneric(other interface{}) bool { + typed, ok := other.(Config) + return ok && _this.Equals(typed) +} + +func Type_Config_() _dafny.TypeDescriptor { + return type_Config_{} +} + +type type_Config_ struct { +} + +func (_this type_Config_) Default() interface{} { + return Companion_Config_.Default() +} + +func (_this type_Config_) String() string { + return "AwsCryptographyKeyStoreOperations.Config" +} +func (_this Config) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = Config{} + +// End of datatype Config diff --git a/customer-preview/mpl/AwsCryptographyKeyStoreTypes/AwsCryptographyKeyStoreTypes.go b/customer-preview/mpl/AwsCryptographyKeyStoreTypes/AwsCryptographyKeyStoreTypes.go new file mode 100644 index 000000000..f9fe1c246 --- /dev/null +++ b/customer-preview/mpl/AwsCryptographyKeyStoreTypes/AwsCryptographyKeyStoreTypes.go @@ -0,0 +1,2713 @@ +// Package AwsCryptographyKeyStoreTypes +// Dafny module AwsCryptographyKeyStoreTypes compiled into Go + +package AwsCryptographyKeyStoreTypes + +import ( + os "os" + + m_ComAmazonawsDynamodbTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/ComAmazonawsDynamodbTypes" + m_ComAmazonawsKmsTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/ComAmazonawsKmsTypes" + m_AtomicPrimitives "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AtomicPrimitives" + m_AwsCryptographyPrimitivesOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesOperations" + m_AwsCryptographyPrimitivesTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesTypes" + m_Digest "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Digest" + m_HKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/HKDF" + m_KdfCtr "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/KdfCtr" + m_Random "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Random" + m_WrappedHKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHKDF" + m_WrappedHMAC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHMAC" + m_Actions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Actions" + m_Base64 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64" + m_Base64Lemmas "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64Lemmas" + m_BoundedInts "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/BoundedInts" + m_DivInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternals" + m_DivInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternalsNonlinear" + m_DivMod "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivMod" + m_FileIO "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FileIO" + m_FloatCompare "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FloatCompare" + m_Functions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Functions" + m_GeneralInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GeneralInternals" + m_GetOpt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GetOpt" + m_HexStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/HexStrings" + m_Logarithm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Logarithm" + m__Math "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Math_" + m_ModInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternals" + m_ModInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternalsNonlinear" + m_Mul "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Mul" + m_MulInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternals" + m_MulInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternalsNonlinear" + m_Power "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Power" + m_Relations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Relations" + m_Seq "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq" + m_Seq_MergeSort "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq_MergeSort" + m_Sorting "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Sorting" + m_StandardLibrary "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary" + m_StandardLibraryInterop "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibraryInterop" + m_StandardLibrary_Sequence "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_Sequence" + m_StandardLibrary_String "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_String" + m_StandardLibrary_UInt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_UInt" + m_Streams "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Streams" + m_UTF8 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UTF8" + m_UnicodeStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UnicodeStrings" + m__Unicode "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Unicode_" + m_Utf16EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf16EncodingForm" + m_Utf8EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf8EncodingForm" + m_Wrappers "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers" + m__System "github.com/dafny-lang/DafnyRuntimeGo/v4/System_" + _dafny "github.com/dafny-lang/DafnyRuntimeGo/v4/dafny" +) + +var _ = os.Args +var _ _dafny.Dummy__ +var _ m__System.Dummy__ +var _ m_Wrappers.Dummy__ +var _ m_BoundedInts.Dummy__ +var _ m_StandardLibrary_UInt.Dummy__ +var _ m_StandardLibrary_Sequence.Dummy__ +var _ m_StandardLibrary_String.Dummy__ +var _ m_StandardLibrary.Dummy__ +var _ m_AwsCryptographyPrimitivesTypes.Dummy__ +var _ m_Random.Dummy__ +var _ m_Digest.Dummy__ +var _ m_WrappedHMAC.Dummy__ +var _ m_HKDF.Dummy__ +var _ m_WrappedHKDF.Dummy__ +var _ m_KdfCtr.Dummy__ +var _ m_AwsCryptographyPrimitivesOperations.Dummy__ +var _ m_AtomicPrimitives.Dummy__ +var _ m_ComAmazonawsDynamodbTypes.Dummy__ +var _ m_ComAmazonawsKmsTypes.Dummy__ +var _ m_Relations.Dummy__ +var _ m_Seq_MergeSort.Dummy__ +var _ m__Math.Dummy__ +var _ m_Seq.Dummy__ +var _ m__Unicode.Dummy__ +var _ m_Functions.Dummy__ +var _ m_Utf8EncodingForm.Dummy__ +var _ m_Utf16EncodingForm.Dummy__ +var _ m_UnicodeStrings.Dummy__ +var _ m_FileIO.Dummy__ +var _ m_GeneralInternals.Dummy__ +var _ m_MulInternalsNonlinear.Dummy__ +var _ m_MulInternals.Dummy__ +var _ m_Mul.Dummy__ +var _ m_ModInternalsNonlinear.Dummy__ +var _ m_DivInternalsNonlinear.Dummy__ +var _ m_ModInternals.Dummy__ +var _ m_DivInternals.Dummy__ +var _ m_DivMod.Dummy__ +var _ m_Power.Dummy__ +var _ m_Logarithm.Dummy__ +var _ m_StandardLibraryInterop.Dummy__ +var _ m_Streams.Dummy__ +var _ m_Sorting.Dummy__ +var _ m_HexStrings.Dummy__ +var _ m_GetOpt.Dummy__ +var _ m_FloatCompare.Dummy__ +var _ m_Base64.Dummy__ +var _ m_Base64Lemmas.Dummy__ +var _ m_Actions.Dummy__ + +type Dummy__ struct{} + +// Definition of class Default__ +type Default__ struct { + dummy byte +} + +func New_Default___() *Default__ { + _this := Default__{} + + return &_this +} + +type CompanionStruct_Default___ struct { +} + +var Companion_Default___ = CompanionStruct_Default___{} + +func (_this *Default__) Equals(other *Default__) bool { + return _this == other +} + +func (_this *Default__) EqualsGeneric(x interface{}) bool { + other, ok := x.(*Default__) + return ok && _this.Equals(other) +} + +func (*Default__) String() string { + return "AwsCryptographyKeyStoreTypes.Default__" +} +func (_this *Default__) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = &Default__{} + +func (_static *CompanionStruct_Default___) IsDummySubsetType(x _dafny.Int) bool { + return (x).Sign() == 1 +} + +// End of class Default__ + +// Definition of datatype DafnyCallEvent +type DafnyCallEvent struct { + Data_DafnyCallEvent_ +} + +func (_this DafnyCallEvent) Get_() Data_DafnyCallEvent_ { + return _this.Data_DafnyCallEvent_ +} + +type Data_DafnyCallEvent_ interface { + isDafnyCallEvent() +} + +type CompanionStruct_DafnyCallEvent_ struct { +} + +var Companion_DafnyCallEvent_ = CompanionStruct_DafnyCallEvent_{} + +type DafnyCallEvent_DafnyCallEvent struct { + Input interface{} + Output interface{} +} + +func (DafnyCallEvent_DafnyCallEvent) isDafnyCallEvent() {} + +func (CompanionStruct_DafnyCallEvent_) Create_DafnyCallEvent_(Input interface{}, Output interface{}) DafnyCallEvent { + return DafnyCallEvent{DafnyCallEvent_DafnyCallEvent{Input, Output}} +} + +func (_this DafnyCallEvent) Is_DafnyCallEvent() bool { + _, ok := _this.Get_().(DafnyCallEvent_DafnyCallEvent) + return ok +} + +func (CompanionStruct_DafnyCallEvent_) Default(_default_I interface{}, _default_O interface{}) DafnyCallEvent { + return Companion_DafnyCallEvent_.Create_DafnyCallEvent_(_default_I, _default_O) +} + +func (_this DafnyCallEvent) Dtor_input() interface{} { + return _this.Get_().(DafnyCallEvent_DafnyCallEvent).Input +} + +func (_this DafnyCallEvent) Dtor_output() interface{} { + return _this.Get_().(DafnyCallEvent_DafnyCallEvent).Output +} + +func (_this DafnyCallEvent) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case DafnyCallEvent_DafnyCallEvent: + { + return "AwsCryptographyKeyStoreTypes.DafnyCallEvent.DafnyCallEvent" + "(" + _dafny.String(data.Input) + ", " + _dafny.String(data.Output) + ")" + } + default: + { + return "" + } + } +} + +func (_this DafnyCallEvent) Equals(other DafnyCallEvent) bool { + switch data1 := _this.Get_().(type) { + case DafnyCallEvent_DafnyCallEvent: + { + data2, ok := other.Get_().(DafnyCallEvent_DafnyCallEvent) + return ok && _dafny.AreEqual(data1.Input, data2.Input) && _dafny.AreEqual(data1.Output, data2.Output) + } + default: + { + return false // unexpected + } + } +} + +func (_this DafnyCallEvent) EqualsGeneric(other interface{}) bool { + typed, ok := other.(DafnyCallEvent) + return ok && _this.Equals(typed) +} + +func Type_DafnyCallEvent_(Type_I_ _dafny.TypeDescriptor, Type_O_ _dafny.TypeDescriptor) _dafny.TypeDescriptor { + return type_DafnyCallEvent_{Type_I_, Type_O_} +} + +type type_DafnyCallEvent_ struct { + Type_I_ _dafny.TypeDescriptor + Type_O_ _dafny.TypeDescriptor +} + +func (_this type_DafnyCallEvent_) Default() interface{} { + Type_I_ := _this.Type_I_ + _ = Type_I_ + Type_O_ := _this.Type_O_ + _ = Type_O_ + return Companion_DafnyCallEvent_.Default(Type_I_.Default(), Type_O_.Default()) +} + +func (_this type_DafnyCallEvent_) String() string { + return "AwsCryptographyKeyStoreTypes.DafnyCallEvent" +} +func (_this DafnyCallEvent) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = DafnyCallEvent{} + +// End of datatype DafnyCallEvent + +// Definition of datatype BeaconKeyMaterials +type BeaconKeyMaterials struct { + Data_BeaconKeyMaterials_ +} + +func (_this BeaconKeyMaterials) Get_() Data_BeaconKeyMaterials_ { + return _this.Data_BeaconKeyMaterials_ +} + +type Data_BeaconKeyMaterials_ interface { + isBeaconKeyMaterials() +} + +type CompanionStruct_BeaconKeyMaterials_ struct { +} + +var Companion_BeaconKeyMaterials_ = CompanionStruct_BeaconKeyMaterials_{} + +type BeaconKeyMaterials_BeaconKeyMaterials struct { + BeaconKeyIdentifier _dafny.Sequence + EncryptionContext _dafny.Map + BeaconKey m_Wrappers.Option + HmacKeys m_Wrappers.Option +} + +func (BeaconKeyMaterials_BeaconKeyMaterials) isBeaconKeyMaterials() {} + +func (CompanionStruct_BeaconKeyMaterials_) Create_BeaconKeyMaterials_(BeaconKeyIdentifier _dafny.Sequence, EncryptionContext _dafny.Map, BeaconKey m_Wrappers.Option, HmacKeys m_Wrappers.Option) BeaconKeyMaterials { + return BeaconKeyMaterials{BeaconKeyMaterials_BeaconKeyMaterials{BeaconKeyIdentifier, EncryptionContext, BeaconKey, HmacKeys}} +} + +func (_this BeaconKeyMaterials) Is_BeaconKeyMaterials() bool { + _, ok := _this.Get_().(BeaconKeyMaterials_BeaconKeyMaterials) + return ok +} + +func (CompanionStruct_BeaconKeyMaterials_) Default() BeaconKeyMaterials { + return Companion_BeaconKeyMaterials_.Create_BeaconKeyMaterials_(_dafny.EmptySeq.SetString(), _dafny.EmptyMap, m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this BeaconKeyMaterials) Dtor_beaconKeyIdentifier() _dafny.Sequence { + return _this.Get_().(BeaconKeyMaterials_BeaconKeyMaterials).BeaconKeyIdentifier +} + +func (_this BeaconKeyMaterials) Dtor_encryptionContext() _dafny.Map { + return _this.Get_().(BeaconKeyMaterials_BeaconKeyMaterials).EncryptionContext +} + +func (_this BeaconKeyMaterials) Dtor_beaconKey() m_Wrappers.Option { + return _this.Get_().(BeaconKeyMaterials_BeaconKeyMaterials).BeaconKey +} + +func (_this BeaconKeyMaterials) Dtor_hmacKeys() m_Wrappers.Option { + return _this.Get_().(BeaconKeyMaterials_BeaconKeyMaterials).HmacKeys +} + +func (_this BeaconKeyMaterials) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case BeaconKeyMaterials_BeaconKeyMaterials: + { + return "AwsCryptographyKeyStoreTypes.BeaconKeyMaterials.BeaconKeyMaterials" + "(" + _dafny.String(data.BeaconKeyIdentifier) + ", " + _dafny.String(data.EncryptionContext) + ", " + _dafny.String(data.BeaconKey) + ", " + _dafny.String(data.HmacKeys) + ")" + } + default: + { + return "" + } + } +} + +func (_this BeaconKeyMaterials) Equals(other BeaconKeyMaterials) bool { + switch data1 := _this.Get_().(type) { + case BeaconKeyMaterials_BeaconKeyMaterials: + { + data2, ok := other.Get_().(BeaconKeyMaterials_BeaconKeyMaterials) + return ok && data1.BeaconKeyIdentifier.Equals(data2.BeaconKeyIdentifier) && data1.EncryptionContext.Equals(data2.EncryptionContext) && data1.BeaconKey.Equals(data2.BeaconKey) && data1.HmacKeys.Equals(data2.HmacKeys) + } + default: + { + return false // unexpected + } + } +} + +func (_this BeaconKeyMaterials) EqualsGeneric(other interface{}) bool { + typed, ok := other.(BeaconKeyMaterials) + return ok && _this.Equals(typed) +} + +func Type_BeaconKeyMaterials_() _dafny.TypeDescriptor { + return type_BeaconKeyMaterials_{} +} + +type type_BeaconKeyMaterials_ struct { +} + +func (_this type_BeaconKeyMaterials_) Default() interface{} { + return Companion_BeaconKeyMaterials_.Default() +} + +func (_this type_BeaconKeyMaterials_) String() string { + return "AwsCryptographyKeyStoreTypes.BeaconKeyMaterials" +} +func (_this BeaconKeyMaterials) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = BeaconKeyMaterials{} + +// End of datatype BeaconKeyMaterials + +// Definition of datatype BranchKeyMaterials +type BranchKeyMaterials struct { + Data_BranchKeyMaterials_ +} + +func (_this BranchKeyMaterials) Get_() Data_BranchKeyMaterials_ { + return _this.Data_BranchKeyMaterials_ +} + +type Data_BranchKeyMaterials_ interface { + isBranchKeyMaterials() +} + +type CompanionStruct_BranchKeyMaterials_ struct { +} + +var Companion_BranchKeyMaterials_ = CompanionStruct_BranchKeyMaterials_{} + +type BranchKeyMaterials_BranchKeyMaterials struct { + BranchKeyIdentifier _dafny.Sequence + BranchKeyVersion _dafny.Sequence + EncryptionContext _dafny.Map + BranchKey _dafny.Sequence +} + +func (BranchKeyMaterials_BranchKeyMaterials) isBranchKeyMaterials() {} + +func (CompanionStruct_BranchKeyMaterials_) Create_BranchKeyMaterials_(BranchKeyIdentifier _dafny.Sequence, BranchKeyVersion _dafny.Sequence, EncryptionContext _dafny.Map, BranchKey _dafny.Sequence) BranchKeyMaterials { + return BranchKeyMaterials{BranchKeyMaterials_BranchKeyMaterials{BranchKeyIdentifier, BranchKeyVersion, EncryptionContext, BranchKey}} +} + +func (_this BranchKeyMaterials) Is_BranchKeyMaterials() bool { + _, ok := _this.Get_().(BranchKeyMaterials_BranchKeyMaterials) + return ok +} + +func (CompanionStruct_BranchKeyMaterials_) Default() BranchKeyMaterials { + return Companion_BranchKeyMaterials_.Create_BranchKeyMaterials_(_dafny.EmptySeq.SetString(), m_UTF8.Companion_ValidUTF8Bytes_.Witness(), _dafny.EmptyMap, _dafny.EmptySeq) +} + +func (_this BranchKeyMaterials) Dtor_branchKeyIdentifier() _dafny.Sequence { + return _this.Get_().(BranchKeyMaterials_BranchKeyMaterials).BranchKeyIdentifier +} + +func (_this BranchKeyMaterials) Dtor_branchKeyVersion() _dafny.Sequence { + return _this.Get_().(BranchKeyMaterials_BranchKeyMaterials).BranchKeyVersion +} + +func (_this BranchKeyMaterials) Dtor_encryptionContext() _dafny.Map { + return _this.Get_().(BranchKeyMaterials_BranchKeyMaterials).EncryptionContext +} + +func (_this BranchKeyMaterials) Dtor_branchKey() _dafny.Sequence { + return _this.Get_().(BranchKeyMaterials_BranchKeyMaterials).BranchKey +} + +func (_this BranchKeyMaterials) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case BranchKeyMaterials_BranchKeyMaterials: + { + return "AwsCryptographyKeyStoreTypes.BranchKeyMaterials.BranchKeyMaterials" + "(" + _dafny.String(data.BranchKeyIdentifier) + ", " + _dafny.String(data.BranchKeyVersion) + ", " + _dafny.String(data.EncryptionContext) + ", " + _dafny.String(data.BranchKey) + ")" + } + default: + { + return "" + } + } +} + +func (_this BranchKeyMaterials) Equals(other BranchKeyMaterials) bool { + switch data1 := _this.Get_().(type) { + case BranchKeyMaterials_BranchKeyMaterials: + { + data2, ok := other.Get_().(BranchKeyMaterials_BranchKeyMaterials) + return ok && data1.BranchKeyIdentifier.Equals(data2.BranchKeyIdentifier) && data1.BranchKeyVersion.Equals(data2.BranchKeyVersion) && data1.EncryptionContext.Equals(data2.EncryptionContext) && data1.BranchKey.Equals(data2.BranchKey) + } + default: + { + return false // unexpected + } + } +} + +func (_this BranchKeyMaterials) EqualsGeneric(other interface{}) bool { + typed, ok := other.(BranchKeyMaterials) + return ok && _this.Equals(typed) +} + +func Type_BranchKeyMaterials_() _dafny.TypeDescriptor { + return type_BranchKeyMaterials_{} +} + +type type_BranchKeyMaterials_ struct { +} + +func (_this type_BranchKeyMaterials_) Default() interface{} { + return Companion_BranchKeyMaterials_.Default() +} + +func (_this type_BranchKeyMaterials_) String() string { + return "AwsCryptographyKeyStoreTypes.BranchKeyMaterials" +} +func (_this BranchKeyMaterials) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = BranchKeyMaterials{} + +// End of datatype BranchKeyMaterials + +// Definition of datatype CreateKeyInput +type CreateKeyInput struct { + Data_CreateKeyInput_ +} + +func (_this CreateKeyInput) Get_() Data_CreateKeyInput_ { + return _this.Data_CreateKeyInput_ +} + +type Data_CreateKeyInput_ interface { + isCreateKeyInput() +} + +type CompanionStruct_CreateKeyInput_ struct { +} + +var Companion_CreateKeyInput_ = CompanionStruct_CreateKeyInput_{} + +type CreateKeyInput_CreateKeyInput struct { + BranchKeyIdentifier m_Wrappers.Option + EncryptionContext m_Wrappers.Option +} + +func (CreateKeyInput_CreateKeyInput) isCreateKeyInput() {} + +func (CompanionStruct_CreateKeyInput_) Create_CreateKeyInput_(BranchKeyIdentifier m_Wrappers.Option, EncryptionContext m_Wrappers.Option) CreateKeyInput { + return CreateKeyInput{CreateKeyInput_CreateKeyInput{BranchKeyIdentifier, EncryptionContext}} +} + +func (_this CreateKeyInput) Is_CreateKeyInput() bool { + _, ok := _this.Get_().(CreateKeyInput_CreateKeyInput) + return ok +} + +func (CompanionStruct_CreateKeyInput_) Default() CreateKeyInput { + return Companion_CreateKeyInput_.Create_CreateKeyInput_(m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this CreateKeyInput) Dtor_branchKeyIdentifier() m_Wrappers.Option { + return _this.Get_().(CreateKeyInput_CreateKeyInput).BranchKeyIdentifier +} + +func (_this CreateKeyInput) Dtor_encryptionContext() m_Wrappers.Option { + return _this.Get_().(CreateKeyInput_CreateKeyInput).EncryptionContext +} + +func (_this CreateKeyInput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case CreateKeyInput_CreateKeyInput: + { + return "AwsCryptographyKeyStoreTypes.CreateKeyInput.CreateKeyInput" + "(" + _dafny.String(data.BranchKeyIdentifier) + ", " + _dafny.String(data.EncryptionContext) + ")" + } + default: + { + return "" + } + } +} + +func (_this CreateKeyInput) Equals(other CreateKeyInput) bool { + switch data1 := _this.Get_().(type) { + case CreateKeyInput_CreateKeyInput: + { + data2, ok := other.Get_().(CreateKeyInput_CreateKeyInput) + return ok && data1.BranchKeyIdentifier.Equals(data2.BranchKeyIdentifier) && data1.EncryptionContext.Equals(data2.EncryptionContext) + } + default: + { + return false // unexpected + } + } +} + +func (_this CreateKeyInput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(CreateKeyInput) + return ok && _this.Equals(typed) +} + +func Type_CreateKeyInput_() _dafny.TypeDescriptor { + return type_CreateKeyInput_{} +} + +type type_CreateKeyInput_ struct { +} + +func (_this type_CreateKeyInput_) Default() interface{} { + return Companion_CreateKeyInput_.Default() +} + +func (_this type_CreateKeyInput_) String() string { + return "AwsCryptographyKeyStoreTypes.CreateKeyInput" +} +func (_this CreateKeyInput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = CreateKeyInput{} + +// End of datatype CreateKeyInput + +// Definition of datatype CreateKeyOutput +type CreateKeyOutput struct { + Data_CreateKeyOutput_ +} + +func (_this CreateKeyOutput) Get_() Data_CreateKeyOutput_ { + return _this.Data_CreateKeyOutput_ +} + +type Data_CreateKeyOutput_ interface { + isCreateKeyOutput() +} + +type CompanionStruct_CreateKeyOutput_ struct { +} + +var Companion_CreateKeyOutput_ = CompanionStruct_CreateKeyOutput_{} + +type CreateKeyOutput_CreateKeyOutput struct { + BranchKeyIdentifier _dafny.Sequence +} + +func (CreateKeyOutput_CreateKeyOutput) isCreateKeyOutput() {} + +func (CompanionStruct_CreateKeyOutput_) Create_CreateKeyOutput_(BranchKeyIdentifier _dafny.Sequence) CreateKeyOutput { + return CreateKeyOutput{CreateKeyOutput_CreateKeyOutput{BranchKeyIdentifier}} +} + +func (_this CreateKeyOutput) Is_CreateKeyOutput() bool { + _, ok := _this.Get_().(CreateKeyOutput_CreateKeyOutput) + return ok +} + +func (CompanionStruct_CreateKeyOutput_) Default() CreateKeyOutput { + return Companion_CreateKeyOutput_.Create_CreateKeyOutput_(_dafny.EmptySeq.SetString()) +} + +func (_this CreateKeyOutput) Dtor_branchKeyIdentifier() _dafny.Sequence { + return _this.Get_().(CreateKeyOutput_CreateKeyOutput).BranchKeyIdentifier +} + +func (_this CreateKeyOutput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case CreateKeyOutput_CreateKeyOutput: + { + return "AwsCryptographyKeyStoreTypes.CreateKeyOutput.CreateKeyOutput" + "(" + _dafny.String(data.BranchKeyIdentifier) + ")" + } + default: + { + return "" + } + } +} + +func (_this CreateKeyOutput) Equals(other CreateKeyOutput) bool { + switch data1 := _this.Get_().(type) { + case CreateKeyOutput_CreateKeyOutput: + { + data2, ok := other.Get_().(CreateKeyOutput_CreateKeyOutput) + return ok && data1.BranchKeyIdentifier.Equals(data2.BranchKeyIdentifier) + } + default: + { + return false // unexpected + } + } +} + +func (_this CreateKeyOutput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(CreateKeyOutput) + return ok && _this.Equals(typed) +} + +func Type_CreateKeyOutput_() _dafny.TypeDescriptor { + return type_CreateKeyOutput_{} +} + +type type_CreateKeyOutput_ struct { +} + +func (_this type_CreateKeyOutput_) Default() interface{} { + return Companion_CreateKeyOutput_.Default() +} + +func (_this type_CreateKeyOutput_) String() string { + return "AwsCryptographyKeyStoreTypes.CreateKeyOutput" +} +func (_this CreateKeyOutput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = CreateKeyOutput{} + +// End of datatype CreateKeyOutput + +// Definition of datatype CreateKeyStoreInput +type CreateKeyStoreInput struct { + Data_CreateKeyStoreInput_ +} + +func (_this CreateKeyStoreInput) Get_() Data_CreateKeyStoreInput_ { + return _this.Data_CreateKeyStoreInput_ +} + +type Data_CreateKeyStoreInput_ interface { + isCreateKeyStoreInput() +} + +type CompanionStruct_CreateKeyStoreInput_ struct { +} + +var Companion_CreateKeyStoreInput_ = CompanionStruct_CreateKeyStoreInput_{} + +type CreateKeyStoreInput_CreateKeyStoreInput struct { +} + +func (CreateKeyStoreInput_CreateKeyStoreInput) isCreateKeyStoreInput() {} + +func (CompanionStruct_CreateKeyStoreInput_) Create_CreateKeyStoreInput_() CreateKeyStoreInput { + return CreateKeyStoreInput{CreateKeyStoreInput_CreateKeyStoreInput{}} +} + +func (_this CreateKeyStoreInput) Is_CreateKeyStoreInput() bool { + _, ok := _this.Get_().(CreateKeyStoreInput_CreateKeyStoreInput) + return ok +} + +func (CompanionStruct_CreateKeyStoreInput_) Default() CreateKeyStoreInput { + return Companion_CreateKeyStoreInput_.Create_CreateKeyStoreInput_() +} + +func (_ CompanionStruct_CreateKeyStoreInput_) AllSingletonConstructors() _dafny.Iterator { + i := -1 + return func() (interface{}, bool) { + i++ + switch i { + case 0: + return Companion_CreateKeyStoreInput_.Create_CreateKeyStoreInput_(), true + default: + return CreateKeyStoreInput{}, false + } + } +} + +func (_this CreateKeyStoreInput) String() string { + switch _this.Get_().(type) { + case nil: + return "null" + case CreateKeyStoreInput_CreateKeyStoreInput: + { + return "AwsCryptographyKeyStoreTypes.CreateKeyStoreInput.CreateKeyStoreInput" + } + default: + { + return "" + } + } +} + +func (_this CreateKeyStoreInput) Equals(other CreateKeyStoreInput) bool { + switch _this.Get_().(type) { + case CreateKeyStoreInput_CreateKeyStoreInput: + { + _, ok := other.Get_().(CreateKeyStoreInput_CreateKeyStoreInput) + return ok + } + default: + { + return false // unexpected + } + } +} + +func (_this CreateKeyStoreInput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(CreateKeyStoreInput) + return ok && _this.Equals(typed) +} + +func Type_CreateKeyStoreInput_() _dafny.TypeDescriptor { + return type_CreateKeyStoreInput_{} +} + +type type_CreateKeyStoreInput_ struct { +} + +func (_this type_CreateKeyStoreInput_) Default() interface{} { + return Companion_CreateKeyStoreInput_.Default() +} + +func (_this type_CreateKeyStoreInput_) String() string { + return "AwsCryptographyKeyStoreTypes.CreateKeyStoreInput" +} +func (_this CreateKeyStoreInput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = CreateKeyStoreInput{} + +// End of datatype CreateKeyStoreInput + +// Definition of datatype CreateKeyStoreOutput +type CreateKeyStoreOutput struct { + Data_CreateKeyStoreOutput_ +} + +func (_this CreateKeyStoreOutput) Get_() Data_CreateKeyStoreOutput_ { + return _this.Data_CreateKeyStoreOutput_ +} + +type Data_CreateKeyStoreOutput_ interface { + isCreateKeyStoreOutput() +} + +type CompanionStruct_CreateKeyStoreOutput_ struct { +} + +var Companion_CreateKeyStoreOutput_ = CompanionStruct_CreateKeyStoreOutput_{} + +type CreateKeyStoreOutput_CreateKeyStoreOutput struct { + TableArn _dafny.Sequence +} + +func (CreateKeyStoreOutput_CreateKeyStoreOutput) isCreateKeyStoreOutput() {} + +func (CompanionStruct_CreateKeyStoreOutput_) Create_CreateKeyStoreOutput_(TableArn _dafny.Sequence) CreateKeyStoreOutput { + return CreateKeyStoreOutput{CreateKeyStoreOutput_CreateKeyStoreOutput{TableArn}} +} + +func (_this CreateKeyStoreOutput) Is_CreateKeyStoreOutput() bool { + _, ok := _this.Get_().(CreateKeyStoreOutput_CreateKeyStoreOutput) + return ok +} + +func (CompanionStruct_CreateKeyStoreOutput_) Default() CreateKeyStoreOutput { + return Companion_CreateKeyStoreOutput_.Create_CreateKeyStoreOutput_(_dafny.EmptySeq.SetString()) +} + +func (_this CreateKeyStoreOutput) Dtor_tableArn() _dafny.Sequence { + return _this.Get_().(CreateKeyStoreOutput_CreateKeyStoreOutput).TableArn +} + +func (_this CreateKeyStoreOutput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case CreateKeyStoreOutput_CreateKeyStoreOutput: + { + return "AwsCryptographyKeyStoreTypes.CreateKeyStoreOutput.CreateKeyStoreOutput" + "(" + _dafny.String(data.TableArn) + ")" + } + default: + { + return "" + } + } +} + +func (_this CreateKeyStoreOutput) Equals(other CreateKeyStoreOutput) bool { + switch data1 := _this.Get_().(type) { + case CreateKeyStoreOutput_CreateKeyStoreOutput: + { + data2, ok := other.Get_().(CreateKeyStoreOutput_CreateKeyStoreOutput) + return ok && data1.TableArn.Equals(data2.TableArn) + } + default: + { + return false // unexpected + } + } +} + +func (_this CreateKeyStoreOutput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(CreateKeyStoreOutput) + return ok && _this.Equals(typed) +} + +func Type_CreateKeyStoreOutput_() _dafny.TypeDescriptor { + return type_CreateKeyStoreOutput_{} +} + +type type_CreateKeyStoreOutput_ struct { +} + +func (_this type_CreateKeyStoreOutput_) Default() interface{} { + return Companion_CreateKeyStoreOutput_.Default() +} + +func (_this type_CreateKeyStoreOutput_) String() string { + return "AwsCryptographyKeyStoreTypes.CreateKeyStoreOutput" +} +func (_this CreateKeyStoreOutput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = CreateKeyStoreOutput{} + +// End of datatype CreateKeyStoreOutput + +// Definition of datatype Discovery +type Discovery struct { + Data_Discovery_ +} + +func (_this Discovery) Get_() Data_Discovery_ { + return _this.Data_Discovery_ +} + +type Data_Discovery_ interface { + isDiscovery() +} + +type CompanionStruct_Discovery_ struct { +} + +var Companion_Discovery_ = CompanionStruct_Discovery_{} + +type Discovery_Discovery struct { +} + +func (Discovery_Discovery) isDiscovery() {} + +func (CompanionStruct_Discovery_) Create_Discovery_() Discovery { + return Discovery{Discovery_Discovery{}} +} + +func (_this Discovery) Is_Discovery() bool { + _, ok := _this.Get_().(Discovery_Discovery) + return ok +} + +func (CompanionStruct_Discovery_) Default() Discovery { + return Companion_Discovery_.Create_Discovery_() +} + +func (_ CompanionStruct_Discovery_) AllSingletonConstructors() _dafny.Iterator { + i := -1 + return func() (interface{}, bool) { + i++ + switch i { + case 0: + return Companion_Discovery_.Create_Discovery_(), true + default: + return Discovery{}, false + } + } +} + +func (_this Discovery) String() string { + switch _this.Get_().(type) { + case nil: + return "null" + case Discovery_Discovery: + { + return "AwsCryptographyKeyStoreTypes.Discovery.Discovery" + } + default: + { + return "" + } + } +} + +func (_this Discovery) Equals(other Discovery) bool { + switch _this.Get_().(type) { + case Discovery_Discovery: + { + _, ok := other.Get_().(Discovery_Discovery) + return ok + } + default: + { + return false // unexpected + } + } +} + +func (_this Discovery) EqualsGeneric(other interface{}) bool { + typed, ok := other.(Discovery) + return ok && _this.Equals(typed) +} + +func Type_Discovery_() _dafny.TypeDescriptor { + return type_Discovery_{} +} + +type type_Discovery_ struct { +} + +func (_this type_Discovery_) Default() interface{} { + return Companion_Discovery_.Default() +} + +func (_this type_Discovery_) String() string { + return "AwsCryptographyKeyStoreTypes.Discovery" +} +func (_this Discovery) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = Discovery{} + +// End of datatype Discovery + +// Definition of datatype GetActiveBranchKeyInput +type GetActiveBranchKeyInput struct { + Data_GetActiveBranchKeyInput_ +} + +func (_this GetActiveBranchKeyInput) Get_() Data_GetActiveBranchKeyInput_ { + return _this.Data_GetActiveBranchKeyInput_ +} + +type Data_GetActiveBranchKeyInput_ interface { + isGetActiveBranchKeyInput() +} + +type CompanionStruct_GetActiveBranchKeyInput_ struct { +} + +var Companion_GetActiveBranchKeyInput_ = CompanionStruct_GetActiveBranchKeyInput_{} + +type GetActiveBranchKeyInput_GetActiveBranchKeyInput struct { + BranchKeyIdentifier _dafny.Sequence +} + +func (GetActiveBranchKeyInput_GetActiveBranchKeyInput) isGetActiveBranchKeyInput() {} + +func (CompanionStruct_GetActiveBranchKeyInput_) Create_GetActiveBranchKeyInput_(BranchKeyIdentifier _dafny.Sequence) GetActiveBranchKeyInput { + return GetActiveBranchKeyInput{GetActiveBranchKeyInput_GetActiveBranchKeyInput{BranchKeyIdentifier}} +} + +func (_this GetActiveBranchKeyInput) Is_GetActiveBranchKeyInput() bool { + _, ok := _this.Get_().(GetActiveBranchKeyInput_GetActiveBranchKeyInput) + return ok +} + +func (CompanionStruct_GetActiveBranchKeyInput_) Default() GetActiveBranchKeyInput { + return Companion_GetActiveBranchKeyInput_.Create_GetActiveBranchKeyInput_(_dafny.EmptySeq.SetString()) +} + +func (_this GetActiveBranchKeyInput) Dtor_branchKeyIdentifier() _dafny.Sequence { + return _this.Get_().(GetActiveBranchKeyInput_GetActiveBranchKeyInput).BranchKeyIdentifier +} + +func (_this GetActiveBranchKeyInput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case GetActiveBranchKeyInput_GetActiveBranchKeyInput: + { + return "AwsCryptographyKeyStoreTypes.GetActiveBranchKeyInput.GetActiveBranchKeyInput" + "(" + _dafny.String(data.BranchKeyIdentifier) + ")" + } + default: + { + return "" + } + } +} + +func (_this GetActiveBranchKeyInput) Equals(other GetActiveBranchKeyInput) bool { + switch data1 := _this.Get_().(type) { + case GetActiveBranchKeyInput_GetActiveBranchKeyInput: + { + data2, ok := other.Get_().(GetActiveBranchKeyInput_GetActiveBranchKeyInput) + return ok && data1.BranchKeyIdentifier.Equals(data2.BranchKeyIdentifier) + } + default: + { + return false // unexpected + } + } +} + +func (_this GetActiveBranchKeyInput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(GetActiveBranchKeyInput) + return ok && _this.Equals(typed) +} + +func Type_GetActiveBranchKeyInput_() _dafny.TypeDescriptor { + return type_GetActiveBranchKeyInput_{} +} + +type type_GetActiveBranchKeyInput_ struct { +} + +func (_this type_GetActiveBranchKeyInput_) Default() interface{} { + return Companion_GetActiveBranchKeyInput_.Default() +} + +func (_this type_GetActiveBranchKeyInput_) String() string { + return "AwsCryptographyKeyStoreTypes.GetActiveBranchKeyInput" +} +func (_this GetActiveBranchKeyInput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = GetActiveBranchKeyInput{} + +// End of datatype GetActiveBranchKeyInput + +// Definition of datatype GetActiveBranchKeyOutput +type GetActiveBranchKeyOutput struct { + Data_GetActiveBranchKeyOutput_ +} + +func (_this GetActiveBranchKeyOutput) Get_() Data_GetActiveBranchKeyOutput_ { + return _this.Data_GetActiveBranchKeyOutput_ +} + +type Data_GetActiveBranchKeyOutput_ interface { + isGetActiveBranchKeyOutput() +} + +type CompanionStruct_GetActiveBranchKeyOutput_ struct { +} + +var Companion_GetActiveBranchKeyOutput_ = CompanionStruct_GetActiveBranchKeyOutput_{} + +type GetActiveBranchKeyOutput_GetActiveBranchKeyOutput struct { + BranchKeyMaterials BranchKeyMaterials +} + +func (GetActiveBranchKeyOutput_GetActiveBranchKeyOutput) isGetActiveBranchKeyOutput() {} + +func (CompanionStruct_GetActiveBranchKeyOutput_) Create_GetActiveBranchKeyOutput_(BranchKeyMaterials BranchKeyMaterials) GetActiveBranchKeyOutput { + return GetActiveBranchKeyOutput{GetActiveBranchKeyOutput_GetActiveBranchKeyOutput{BranchKeyMaterials}} +} + +func (_this GetActiveBranchKeyOutput) Is_GetActiveBranchKeyOutput() bool { + _, ok := _this.Get_().(GetActiveBranchKeyOutput_GetActiveBranchKeyOutput) + return ok +} + +func (CompanionStruct_GetActiveBranchKeyOutput_) Default() GetActiveBranchKeyOutput { + return Companion_GetActiveBranchKeyOutput_.Create_GetActiveBranchKeyOutput_(Companion_BranchKeyMaterials_.Default()) +} + +func (_this GetActiveBranchKeyOutput) Dtor_branchKeyMaterials() BranchKeyMaterials { + return _this.Get_().(GetActiveBranchKeyOutput_GetActiveBranchKeyOutput).BranchKeyMaterials +} + +func (_this GetActiveBranchKeyOutput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case GetActiveBranchKeyOutput_GetActiveBranchKeyOutput: + { + return "AwsCryptographyKeyStoreTypes.GetActiveBranchKeyOutput.GetActiveBranchKeyOutput" + "(" + _dafny.String(data.BranchKeyMaterials) + ")" + } + default: + { + return "" + } + } +} + +func (_this GetActiveBranchKeyOutput) Equals(other GetActiveBranchKeyOutput) bool { + switch data1 := _this.Get_().(type) { + case GetActiveBranchKeyOutput_GetActiveBranchKeyOutput: + { + data2, ok := other.Get_().(GetActiveBranchKeyOutput_GetActiveBranchKeyOutput) + return ok && data1.BranchKeyMaterials.Equals(data2.BranchKeyMaterials) + } + default: + { + return false // unexpected + } + } +} + +func (_this GetActiveBranchKeyOutput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(GetActiveBranchKeyOutput) + return ok && _this.Equals(typed) +} + +func Type_GetActiveBranchKeyOutput_() _dafny.TypeDescriptor { + return type_GetActiveBranchKeyOutput_{} +} + +type type_GetActiveBranchKeyOutput_ struct { +} + +func (_this type_GetActiveBranchKeyOutput_) Default() interface{} { + return Companion_GetActiveBranchKeyOutput_.Default() +} + +func (_this type_GetActiveBranchKeyOutput_) String() string { + return "AwsCryptographyKeyStoreTypes.GetActiveBranchKeyOutput" +} +func (_this GetActiveBranchKeyOutput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = GetActiveBranchKeyOutput{} + +// End of datatype GetActiveBranchKeyOutput + +// Definition of datatype GetBeaconKeyInput +type GetBeaconKeyInput struct { + Data_GetBeaconKeyInput_ +} + +func (_this GetBeaconKeyInput) Get_() Data_GetBeaconKeyInput_ { + return _this.Data_GetBeaconKeyInput_ +} + +type Data_GetBeaconKeyInput_ interface { + isGetBeaconKeyInput() +} + +type CompanionStruct_GetBeaconKeyInput_ struct { +} + +var Companion_GetBeaconKeyInput_ = CompanionStruct_GetBeaconKeyInput_{} + +type GetBeaconKeyInput_GetBeaconKeyInput struct { + BranchKeyIdentifier _dafny.Sequence +} + +func (GetBeaconKeyInput_GetBeaconKeyInput) isGetBeaconKeyInput() {} + +func (CompanionStruct_GetBeaconKeyInput_) Create_GetBeaconKeyInput_(BranchKeyIdentifier _dafny.Sequence) GetBeaconKeyInput { + return GetBeaconKeyInput{GetBeaconKeyInput_GetBeaconKeyInput{BranchKeyIdentifier}} +} + +func (_this GetBeaconKeyInput) Is_GetBeaconKeyInput() bool { + _, ok := _this.Get_().(GetBeaconKeyInput_GetBeaconKeyInput) + return ok +} + +func (CompanionStruct_GetBeaconKeyInput_) Default() GetBeaconKeyInput { + return Companion_GetBeaconKeyInput_.Create_GetBeaconKeyInput_(_dafny.EmptySeq.SetString()) +} + +func (_this GetBeaconKeyInput) Dtor_branchKeyIdentifier() _dafny.Sequence { + return _this.Get_().(GetBeaconKeyInput_GetBeaconKeyInput).BranchKeyIdentifier +} + +func (_this GetBeaconKeyInput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case GetBeaconKeyInput_GetBeaconKeyInput: + { + return "AwsCryptographyKeyStoreTypes.GetBeaconKeyInput.GetBeaconKeyInput" + "(" + _dafny.String(data.BranchKeyIdentifier) + ")" + } + default: + { + return "" + } + } +} + +func (_this GetBeaconKeyInput) Equals(other GetBeaconKeyInput) bool { + switch data1 := _this.Get_().(type) { + case GetBeaconKeyInput_GetBeaconKeyInput: + { + data2, ok := other.Get_().(GetBeaconKeyInput_GetBeaconKeyInput) + return ok && data1.BranchKeyIdentifier.Equals(data2.BranchKeyIdentifier) + } + default: + { + return false // unexpected + } + } +} + +func (_this GetBeaconKeyInput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(GetBeaconKeyInput) + return ok && _this.Equals(typed) +} + +func Type_GetBeaconKeyInput_() _dafny.TypeDescriptor { + return type_GetBeaconKeyInput_{} +} + +type type_GetBeaconKeyInput_ struct { +} + +func (_this type_GetBeaconKeyInput_) Default() interface{} { + return Companion_GetBeaconKeyInput_.Default() +} + +func (_this type_GetBeaconKeyInput_) String() string { + return "AwsCryptographyKeyStoreTypes.GetBeaconKeyInput" +} +func (_this GetBeaconKeyInput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = GetBeaconKeyInput{} + +// End of datatype GetBeaconKeyInput + +// Definition of datatype GetBeaconKeyOutput +type GetBeaconKeyOutput struct { + Data_GetBeaconKeyOutput_ +} + +func (_this GetBeaconKeyOutput) Get_() Data_GetBeaconKeyOutput_ { + return _this.Data_GetBeaconKeyOutput_ +} + +type Data_GetBeaconKeyOutput_ interface { + isGetBeaconKeyOutput() +} + +type CompanionStruct_GetBeaconKeyOutput_ struct { +} + +var Companion_GetBeaconKeyOutput_ = CompanionStruct_GetBeaconKeyOutput_{} + +type GetBeaconKeyOutput_GetBeaconKeyOutput struct { + BeaconKeyMaterials BeaconKeyMaterials +} + +func (GetBeaconKeyOutput_GetBeaconKeyOutput) isGetBeaconKeyOutput() {} + +func (CompanionStruct_GetBeaconKeyOutput_) Create_GetBeaconKeyOutput_(BeaconKeyMaterials BeaconKeyMaterials) GetBeaconKeyOutput { + return GetBeaconKeyOutput{GetBeaconKeyOutput_GetBeaconKeyOutput{BeaconKeyMaterials}} +} + +func (_this GetBeaconKeyOutput) Is_GetBeaconKeyOutput() bool { + _, ok := _this.Get_().(GetBeaconKeyOutput_GetBeaconKeyOutput) + return ok +} + +func (CompanionStruct_GetBeaconKeyOutput_) Default() GetBeaconKeyOutput { + return Companion_GetBeaconKeyOutput_.Create_GetBeaconKeyOutput_(Companion_BeaconKeyMaterials_.Default()) +} + +func (_this GetBeaconKeyOutput) Dtor_beaconKeyMaterials() BeaconKeyMaterials { + return _this.Get_().(GetBeaconKeyOutput_GetBeaconKeyOutput).BeaconKeyMaterials +} + +func (_this GetBeaconKeyOutput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case GetBeaconKeyOutput_GetBeaconKeyOutput: + { + return "AwsCryptographyKeyStoreTypes.GetBeaconKeyOutput.GetBeaconKeyOutput" + "(" + _dafny.String(data.BeaconKeyMaterials) + ")" + } + default: + { + return "" + } + } +} + +func (_this GetBeaconKeyOutput) Equals(other GetBeaconKeyOutput) bool { + switch data1 := _this.Get_().(type) { + case GetBeaconKeyOutput_GetBeaconKeyOutput: + { + data2, ok := other.Get_().(GetBeaconKeyOutput_GetBeaconKeyOutput) + return ok && data1.BeaconKeyMaterials.Equals(data2.BeaconKeyMaterials) + } + default: + { + return false // unexpected + } + } +} + +func (_this GetBeaconKeyOutput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(GetBeaconKeyOutput) + return ok && _this.Equals(typed) +} + +func Type_GetBeaconKeyOutput_() _dafny.TypeDescriptor { + return type_GetBeaconKeyOutput_{} +} + +type type_GetBeaconKeyOutput_ struct { +} + +func (_this type_GetBeaconKeyOutput_) Default() interface{} { + return Companion_GetBeaconKeyOutput_.Default() +} + +func (_this type_GetBeaconKeyOutput_) String() string { + return "AwsCryptographyKeyStoreTypes.GetBeaconKeyOutput" +} +func (_this GetBeaconKeyOutput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = GetBeaconKeyOutput{} + +// End of datatype GetBeaconKeyOutput + +// Definition of datatype GetBranchKeyVersionInput +type GetBranchKeyVersionInput struct { + Data_GetBranchKeyVersionInput_ +} + +func (_this GetBranchKeyVersionInput) Get_() Data_GetBranchKeyVersionInput_ { + return _this.Data_GetBranchKeyVersionInput_ +} + +type Data_GetBranchKeyVersionInput_ interface { + isGetBranchKeyVersionInput() +} + +type CompanionStruct_GetBranchKeyVersionInput_ struct { +} + +var Companion_GetBranchKeyVersionInput_ = CompanionStruct_GetBranchKeyVersionInput_{} + +type GetBranchKeyVersionInput_GetBranchKeyVersionInput struct { + BranchKeyIdentifier _dafny.Sequence + BranchKeyVersion _dafny.Sequence +} + +func (GetBranchKeyVersionInput_GetBranchKeyVersionInput) isGetBranchKeyVersionInput() {} + +func (CompanionStruct_GetBranchKeyVersionInput_) Create_GetBranchKeyVersionInput_(BranchKeyIdentifier _dafny.Sequence, BranchKeyVersion _dafny.Sequence) GetBranchKeyVersionInput { + return GetBranchKeyVersionInput{GetBranchKeyVersionInput_GetBranchKeyVersionInput{BranchKeyIdentifier, BranchKeyVersion}} +} + +func (_this GetBranchKeyVersionInput) Is_GetBranchKeyVersionInput() bool { + _, ok := _this.Get_().(GetBranchKeyVersionInput_GetBranchKeyVersionInput) + return ok +} + +func (CompanionStruct_GetBranchKeyVersionInput_) Default() GetBranchKeyVersionInput { + return Companion_GetBranchKeyVersionInput_.Create_GetBranchKeyVersionInput_(_dafny.EmptySeq.SetString(), _dafny.EmptySeq.SetString()) +} + +func (_this GetBranchKeyVersionInput) Dtor_branchKeyIdentifier() _dafny.Sequence { + return _this.Get_().(GetBranchKeyVersionInput_GetBranchKeyVersionInput).BranchKeyIdentifier +} + +func (_this GetBranchKeyVersionInput) Dtor_branchKeyVersion() _dafny.Sequence { + return _this.Get_().(GetBranchKeyVersionInput_GetBranchKeyVersionInput).BranchKeyVersion +} + +func (_this GetBranchKeyVersionInput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case GetBranchKeyVersionInput_GetBranchKeyVersionInput: + { + return "AwsCryptographyKeyStoreTypes.GetBranchKeyVersionInput.GetBranchKeyVersionInput" + "(" + _dafny.String(data.BranchKeyIdentifier) + ", " + _dafny.String(data.BranchKeyVersion) + ")" + } + default: + { + return "" + } + } +} + +func (_this GetBranchKeyVersionInput) Equals(other GetBranchKeyVersionInput) bool { + switch data1 := _this.Get_().(type) { + case GetBranchKeyVersionInput_GetBranchKeyVersionInput: + { + data2, ok := other.Get_().(GetBranchKeyVersionInput_GetBranchKeyVersionInput) + return ok && data1.BranchKeyIdentifier.Equals(data2.BranchKeyIdentifier) && data1.BranchKeyVersion.Equals(data2.BranchKeyVersion) + } + default: + { + return false // unexpected + } + } +} + +func (_this GetBranchKeyVersionInput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(GetBranchKeyVersionInput) + return ok && _this.Equals(typed) +} + +func Type_GetBranchKeyVersionInput_() _dafny.TypeDescriptor { + return type_GetBranchKeyVersionInput_{} +} + +type type_GetBranchKeyVersionInput_ struct { +} + +func (_this type_GetBranchKeyVersionInput_) Default() interface{} { + return Companion_GetBranchKeyVersionInput_.Default() +} + +func (_this type_GetBranchKeyVersionInput_) String() string { + return "AwsCryptographyKeyStoreTypes.GetBranchKeyVersionInput" +} +func (_this GetBranchKeyVersionInput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = GetBranchKeyVersionInput{} + +// End of datatype GetBranchKeyVersionInput + +// Definition of datatype GetBranchKeyVersionOutput +type GetBranchKeyVersionOutput struct { + Data_GetBranchKeyVersionOutput_ +} + +func (_this GetBranchKeyVersionOutput) Get_() Data_GetBranchKeyVersionOutput_ { + return _this.Data_GetBranchKeyVersionOutput_ +} + +type Data_GetBranchKeyVersionOutput_ interface { + isGetBranchKeyVersionOutput() +} + +type CompanionStruct_GetBranchKeyVersionOutput_ struct { +} + +var Companion_GetBranchKeyVersionOutput_ = CompanionStruct_GetBranchKeyVersionOutput_{} + +type GetBranchKeyVersionOutput_GetBranchKeyVersionOutput struct { + BranchKeyMaterials BranchKeyMaterials +} + +func (GetBranchKeyVersionOutput_GetBranchKeyVersionOutput) isGetBranchKeyVersionOutput() {} + +func (CompanionStruct_GetBranchKeyVersionOutput_) Create_GetBranchKeyVersionOutput_(BranchKeyMaterials BranchKeyMaterials) GetBranchKeyVersionOutput { + return GetBranchKeyVersionOutput{GetBranchKeyVersionOutput_GetBranchKeyVersionOutput{BranchKeyMaterials}} +} + +func (_this GetBranchKeyVersionOutput) Is_GetBranchKeyVersionOutput() bool { + _, ok := _this.Get_().(GetBranchKeyVersionOutput_GetBranchKeyVersionOutput) + return ok +} + +func (CompanionStruct_GetBranchKeyVersionOutput_) Default() GetBranchKeyVersionOutput { + return Companion_GetBranchKeyVersionOutput_.Create_GetBranchKeyVersionOutput_(Companion_BranchKeyMaterials_.Default()) +} + +func (_this GetBranchKeyVersionOutput) Dtor_branchKeyMaterials() BranchKeyMaterials { + return _this.Get_().(GetBranchKeyVersionOutput_GetBranchKeyVersionOutput).BranchKeyMaterials +} + +func (_this GetBranchKeyVersionOutput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case GetBranchKeyVersionOutput_GetBranchKeyVersionOutput: + { + return "AwsCryptographyKeyStoreTypes.GetBranchKeyVersionOutput.GetBranchKeyVersionOutput" + "(" + _dafny.String(data.BranchKeyMaterials) + ")" + } + default: + { + return "" + } + } +} + +func (_this GetBranchKeyVersionOutput) Equals(other GetBranchKeyVersionOutput) bool { + switch data1 := _this.Get_().(type) { + case GetBranchKeyVersionOutput_GetBranchKeyVersionOutput: + { + data2, ok := other.Get_().(GetBranchKeyVersionOutput_GetBranchKeyVersionOutput) + return ok && data1.BranchKeyMaterials.Equals(data2.BranchKeyMaterials) + } + default: + { + return false // unexpected + } + } +} + +func (_this GetBranchKeyVersionOutput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(GetBranchKeyVersionOutput) + return ok && _this.Equals(typed) +} + +func Type_GetBranchKeyVersionOutput_() _dafny.TypeDescriptor { + return type_GetBranchKeyVersionOutput_{} +} + +type type_GetBranchKeyVersionOutput_ struct { +} + +func (_this type_GetBranchKeyVersionOutput_) Default() interface{} { + return Companion_GetBranchKeyVersionOutput_.Default() +} + +func (_this type_GetBranchKeyVersionOutput_) String() string { + return "AwsCryptographyKeyStoreTypes.GetBranchKeyVersionOutput" +} +func (_this GetBranchKeyVersionOutput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = GetBranchKeyVersionOutput{} + +// End of datatype GetBranchKeyVersionOutput + +// Definition of datatype GetKeyStoreInfoOutput +type GetKeyStoreInfoOutput struct { + Data_GetKeyStoreInfoOutput_ +} + +func (_this GetKeyStoreInfoOutput) Get_() Data_GetKeyStoreInfoOutput_ { + return _this.Data_GetKeyStoreInfoOutput_ +} + +type Data_GetKeyStoreInfoOutput_ interface { + isGetKeyStoreInfoOutput() +} + +type CompanionStruct_GetKeyStoreInfoOutput_ struct { +} + +var Companion_GetKeyStoreInfoOutput_ = CompanionStruct_GetKeyStoreInfoOutput_{} + +type GetKeyStoreInfoOutput_GetKeyStoreInfoOutput struct { + KeyStoreId _dafny.Sequence + KeyStoreName _dafny.Sequence + LogicalKeyStoreName _dafny.Sequence + GrantTokens _dafny.Sequence + KmsConfiguration KMSConfiguration +} + +func (GetKeyStoreInfoOutput_GetKeyStoreInfoOutput) isGetKeyStoreInfoOutput() {} + +func (CompanionStruct_GetKeyStoreInfoOutput_) Create_GetKeyStoreInfoOutput_(KeyStoreId _dafny.Sequence, KeyStoreName _dafny.Sequence, LogicalKeyStoreName _dafny.Sequence, GrantTokens _dafny.Sequence, KmsConfiguration KMSConfiguration) GetKeyStoreInfoOutput { + return GetKeyStoreInfoOutput{GetKeyStoreInfoOutput_GetKeyStoreInfoOutput{KeyStoreId, KeyStoreName, LogicalKeyStoreName, GrantTokens, KmsConfiguration}} +} + +func (_this GetKeyStoreInfoOutput) Is_GetKeyStoreInfoOutput() bool { + _, ok := _this.Get_().(GetKeyStoreInfoOutput_GetKeyStoreInfoOutput) + return ok +} + +func (CompanionStruct_GetKeyStoreInfoOutput_) Default() GetKeyStoreInfoOutput { + return Companion_GetKeyStoreInfoOutput_.Create_GetKeyStoreInfoOutput_(_dafny.EmptySeq.SetString(), _dafny.EmptySeq.SetString(), _dafny.EmptySeq.SetString(), _dafny.EmptySeq, Companion_KMSConfiguration_.Default()) +} + +func (_this GetKeyStoreInfoOutput) Dtor_keyStoreId() _dafny.Sequence { + return _this.Get_().(GetKeyStoreInfoOutput_GetKeyStoreInfoOutput).KeyStoreId +} + +func (_this GetKeyStoreInfoOutput) Dtor_keyStoreName() _dafny.Sequence { + return _this.Get_().(GetKeyStoreInfoOutput_GetKeyStoreInfoOutput).KeyStoreName +} + +func (_this GetKeyStoreInfoOutput) Dtor_logicalKeyStoreName() _dafny.Sequence { + return _this.Get_().(GetKeyStoreInfoOutput_GetKeyStoreInfoOutput).LogicalKeyStoreName +} + +func (_this GetKeyStoreInfoOutput) Dtor_grantTokens() _dafny.Sequence { + return _this.Get_().(GetKeyStoreInfoOutput_GetKeyStoreInfoOutput).GrantTokens +} + +func (_this GetKeyStoreInfoOutput) Dtor_kmsConfiguration() KMSConfiguration { + return _this.Get_().(GetKeyStoreInfoOutput_GetKeyStoreInfoOutput).KmsConfiguration +} + +func (_this GetKeyStoreInfoOutput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case GetKeyStoreInfoOutput_GetKeyStoreInfoOutput: + { + return "AwsCryptographyKeyStoreTypes.GetKeyStoreInfoOutput.GetKeyStoreInfoOutput" + "(" + _dafny.String(data.KeyStoreId) + ", " + _dafny.String(data.KeyStoreName) + ", " + _dafny.String(data.LogicalKeyStoreName) + ", " + _dafny.String(data.GrantTokens) + ", " + _dafny.String(data.KmsConfiguration) + ")" + } + default: + { + return "" + } + } +} + +func (_this GetKeyStoreInfoOutput) Equals(other GetKeyStoreInfoOutput) bool { + switch data1 := _this.Get_().(type) { + case GetKeyStoreInfoOutput_GetKeyStoreInfoOutput: + { + data2, ok := other.Get_().(GetKeyStoreInfoOutput_GetKeyStoreInfoOutput) + return ok && data1.KeyStoreId.Equals(data2.KeyStoreId) && data1.KeyStoreName.Equals(data2.KeyStoreName) && data1.LogicalKeyStoreName.Equals(data2.LogicalKeyStoreName) && data1.GrantTokens.Equals(data2.GrantTokens) && data1.KmsConfiguration.Equals(data2.KmsConfiguration) + } + default: + { + return false // unexpected + } + } +} + +func (_this GetKeyStoreInfoOutput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(GetKeyStoreInfoOutput) + return ok && _this.Equals(typed) +} + +func Type_GetKeyStoreInfoOutput_() _dafny.TypeDescriptor { + return type_GetKeyStoreInfoOutput_{} +} + +type type_GetKeyStoreInfoOutput_ struct { +} + +func (_this type_GetKeyStoreInfoOutput_) Default() interface{} { + return Companion_GetKeyStoreInfoOutput_.Default() +} + +func (_this type_GetKeyStoreInfoOutput_) String() string { + return "AwsCryptographyKeyStoreTypes.GetKeyStoreInfoOutput" +} +func (_this GetKeyStoreInfoOutput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = GetKeyStoreInfoOutput{} + +// End of datatype GetKeyStoreInfoOutput + +// Definition of class IKeyStoreClientCallHistory +type IKeyStoreClientCallHistory struct { + dummy byte +} + +func New_IKeyStoreClientCallHistory_() *IKeyStoreClientCallHistory { + _this := IKeyStoreClientCallHistory{} + + return &_this +} + +type CompanionStruct_IKeyStoreClientCallHistory_ struct { +} + +var Companion_IKeyStoreClientCallHistory_ = CompanionStruct_IKeyStoreClientCallHistory_{} + +func (_this *IKeyStoreClientCallHistory) Equals(other *IKeyStoreClientCallHistory) bool { + return _this == other +} + +func (_this *IKeyStoreClientCallHistory) EqualsGeneric(x interface{}) bool { + other, ok := x.(*IKeyStoreClientCallHistory) + return ok && _this.Equals(other) +} + +func (*IKeyStoreClientCallHistory) String() string { + return "AwsCryptographyKeyStoreTypes.IKeyStoreClientCallHistory" +} + +func Type_IKeyStoreClientCallHistory_() _dafny.TypeDescriptor { + return type_IKeyStoreClientCallHistory_{} +} + +type type_IKeyStoreClientCallHistory_ struct { +} + +func (_this type_IKeyStoreClientCallHistory_) Default() interface{} { + return (*IKeyStoreClientCallHistory)(nil) +} + +func (_this type_IKeyStoreClientCallHistory_) String() string { + return "AwsCryptographyKeyStoreTypes.IKeyStoreClientCallHistory" +} +func (_this *IKeyStoreClientCallHistory) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = &IKeyStoreClientCallHistory{} + +// End of class IKeyStoreClientCallHistory + +// Definition of trait IKeyStoreClient +type IKeyStoreClient interface { + String() string + GetKeyStoreInfo() m_Wrappers.Result + CreateKeyStore(input CreateKeyStoreInput) m_Wrappers.Result + CreateKey(input CreateKeyInput) m_Wrappers.Result + VersionKey(input VersionKeyInput) m_Wrappers.Result + GetActiveBranchKey(input GetActiveBranchKeyInput) m_Wrappers.Result + GetBranchKeyVersion(input GetBranchKeyVersionInput) m_Wrappers.Result + GetBeaconKey(input GetBeaconKeyInput) m_Wrappers.Result +} +type CompanionStruct_IKeyStoreClient_ struct { + TraitID_ *_dafny.TraitID +} + +var Companion_IKeyStoreClient_ = CompanionStruct_IKeyStoreClient_{ + TraitID_: &_dafny.TraitID{}, +} + +func (CompanionStruct_IKeyStoreClient_) CastTo_(x interface{}) IKeyStoreClient { + var t IKeyStoreClient + t, _ = x.(IKeyStoreClient) + return t +} + +// End of trait IKeyStoreClient + +// Definition of datatype KeyStoreConfig +type KeyStoreConfig struct { + Data_KeyStoreConfig_ +} + +func (_this KeyStoreConfig) Get_() Data_KeyStoreConfig_ { + return _this.Data_KeyStoreConfig_ +} + +type Data_KeyStoreConfig_ interface { + isKeyStoreConfig() +} + +type CompanionStruct_KeyStoreConfig_ struct { +} + +var Companion_KeyStoreConfig_ = CompanionStruct_KeyStoreConfig_{} + +type KeyStoreConfig_KeyStoreConfig struct { + DdbTableName _dafny.Sequence + KmsConfiguration KMSConfiguration + LogicalKeyStoreName _dafny.Sequence + Id m_Wrappers.Option + GrantTokens m_Wrappers.Option + DdbClient m_Wrappers.Option + KmsClient m_Wrappers.Option +} + +func (KeyStoreConfig_KeyStoreConfig) isKeyStoreConfig() {} + +func (CompanionStruct_KeyStoreConfig_) Create_KeyStoreConfig_(DdbTableName _dafny.Sequence, KmsConfiguration KMSConfiguration, LogicalKeyStoreName _dafny.Sequence, Id m_Wrappers.Option, GrantTokens m_Wrappers.Option, DdbClient m_Wrappers.Option, KmsClient m_Wrappers.Option) KeyStoreConfig { + return KeyStoreConfig{KeyStoreConfig_KeyStoreConfig{DdbTableName, KmsConfiguration, LogicalKeyStoreName, Id, GrantTokens, DdbClient, KmsClient}} +} + +func (_this KeyStoreConfig) Is_KeyStoreConfig() bool { + _, ok := _this.Get_().(KeyStoreConfig_KeyStoreConfig) + return ok +} + +func (CompanionStruct_KeyStoreConfig_) Default() KeyStoreConfig { + return Companion_KeyStoreConfig_.Create_KeyStoreConfig_(_dafny.EmptySeq.SetString(), Companion_KMSConfiguration_.Default(), _dafny.EmptySeq.SetString(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this KeyStoreConfig) Dtor_ddbTableName() _dafny.Sequence { + return _this.Get_().(KeyStoreConfig_KeyStoreConfig).DdbTableName +} + +func (_this KeyStoreConfig) Dtor_kmsConfiguration() KMSConfiguration { + return _this.Get_().(KeyStoreConfig_KeyStoreConfig).KmsConfiguration +} + +func (_this KeyStoreConfig) Dtor_logicalKeyStoreName() _dafny.Sequence { + return _this.Get_().(KeyStoreConfig_KeyStoreConfig).LogicalKeyStoreName +} + +func (_this KeyStoreConfig) Dtor_id() m_Wrappers.Option { + return _this.Get_().(KeyStoreConfig_KeyStoreConfig).Id +} + +func (_this KeyStoreConfig) Dtor_grantTokens() m_Wrappers.Option { + return _this.Get_().(KeyStoreConfig_KeyStoreConfig).GrantTokens +} + +func (_this KeyStoreConfig) Dtor_ddbClient() m_Wrappers.Option { + return _this.Get_().(KeyStoreConfig_KeyStoreConfig).DdbClient +} + +func (_this KeyStoreConfig) Dtor_kmsClient() m_Wrappers.Option { + return _this.Get_().(KeyStoreConfig_KeyStoreConfig).KmsClient +} + +func (_this KeyStoreConfig) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case KeyStoreConfig_KeyStoreConfig: + { + return "AwsCryptographyKeyStoreTypes.KeyStoreConfig.KeyStoreConfig" + "(" + _dafny.String(data.DdbTableName) + ", " + _dafny.String(data.KmsConfiguration) + ", " + _dafny.String(data.LogicalKeyStoreName) + ", " + _dafny.String(data.Id) + ", " + _dafny.String(data.GrantTokens) + ", " + _dafny.String(data.DdbClient) + ", " + _dafny.String(data.KmsClient) + ")" + } + default: + { + return "" + } + } +} + +func (_this KeyStoreConfig) Equals(other KeyStoreConfig) bool { + switch data1 := _this.Get_().(type) { + case KeyStoreConfig_KeyStoreConfig: + { + data2, ok := other.Get_().(KeyStoreConfig_KeyStoreConfig) + return ok && data1.DdbTableName.Equals(data2.DdbTableName) && data1.KmsConfiguration.Equals(data2.KmsConfiguration) && data1.LogicalKeyStoreName.Equals(data2.LogicalKeyStoreName) && data1.Id.Equals(data2.Id) && data1.GrantTokens.Equals(data2.GrantTokens) && data1.DdbClient.Equals(data2.DdbClient) && data1.KmsClient.Equals(data2.KmsClient) + } + default: + { + return false // unexpected + } + } +} + +func (_this KeyStoreConfig) EqualsGeneric(other interface{}) bool { + typed, ok := other.(KeyStoreConfig) + return ok && _this.Equals(typed) +} + +func Type_KeyStoreConfig_() _dafny.TypeDescriptor { + return type_KeyStoreConfig_{} +} + +type type_KeyStoreConfig_ struct { +} + +func (_this type_KeyStoreConfig_) Default() interface{} { + return Companion_KeyStoreConfig_.Default() +} + +func (_this type_KeyStoreConfig_) String() string { + return "AwsCryptographyKeyStoreTypes.KeyStoreConfig" +} +func (_this KeyStoreConfig) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = KeyStoreConfig{} + +// End of datatype KeyStoreConfig + +// Definition of datatype KMSConfiguration +type KMSConfiguration struct { + Data_KMSConfiguration_ +} + +func (_this KMSConfiguration) Get_() Data_KMSConfiguration_ { + return _this.Data_KMSConfiguration_ +} + +type Data_KMSConfiguration_ interface { + isKMSConfiguration() +} + +type CompanionStruct_KMSConfiguration_ struct { +} + +var Companion_KMSConfiguration_ = CompanionStruct_KMSConfiguration_{} + +type KMSConfiguration_kmsKeyArn struct { + KmsKeyArn _dafny.Sequence +} + +func (KMSConfiguration_kmsKeyArn) isKMSConfiguration() {} + +func (CompanionStruct_KMSConfiguration_) Create_kmsKeyArn_(KmsKeyArn _dafny.Sequence) KMSConfiguration { + return KMSConfiguration{KMSConfiguration_kmsKeyArn{KmsKeyArn}} +} + +func (_this KMSConfiguration) Is_kmsKeyArn() bool { + _, ok := _this.Get_().(KMSConfiguration_kmsKeyArn) + return ok +} + +type KMSConfiguration_kmsMRKeyArn struct { + KmsMRKeyArn _dafny.Sequence +} + +func (KMSConfiguration_kmsMRKeyArn) isKMSConfiguration() {} + +func (CompanionStruct_KMSConfiguration_) Create_kmsMRKeyArn_(KmsMRKeyArn _dafny.Sequence) KMSConfiguration { + return KMSConfiguration{KMSConfiguration_kmsMRKeyArn{KmsMRKeyArn}} +} + +func (_this KMSConfiguration) Is_kmsMRKeyArn() bool { + _, ok := _this.Get_().(KMSConfiguration_kmsMRKeyArn) + return ok +} + +type KMSConfiguration_discovery struct { + Discovery Discovery +} + +func (KMSConfiguration_discovery) isKMSConfiguration() {} + +func (CompanionStruct_KMSConfiguration_) Create_discovery_(Discovery Discovery) KMSConfiguration { + return KMSConfiguration{KMSConfiguration_discovery{Discovery}} +} + +func (_this KMSConfiguration) Is_discovery() bool { + _, ok := _this.Get_().(KMSConfiguration_discovery) + return ok +} + +type KMSConfiguration_mrDiscovery struct { + MrDiscovery MRDiscovery +} + +func (KMSConfiguration_mrDiscovery) isKMSConfiguration() {} + +func (CompanionStruct_KMSConfiguration_) Create_mrDiscovery_(MrDiscovery MRDiscovery) KMSConfiguration { + return KMSConfiguration{KMSConfiguration_mrDiscovery{MrDiscovery}} +} + +func (_this KMSConfiguration) Is_mrDiscovery() bool { + _, ok := _this.Get_().(KMSConfiguration_mrDiscovery) + return ok +} + +func (CompanionStruct_KMSConfiguration_) Default() KMSConfiguration { + return Companion_KMSConfiguration_.Create_kmsKeyArn_(_dafny.EmptySeq.SetString()) +} + +func (_this KMSConfiguration) Dtor_kmsKeyArn() _dafny.Sequence { + return _this.Get_().(KMSConfiguration_kmsKeyArn).KmsKeyArn +} + +func (_this KMSConfiguration) Dtor_kmsMRKeyArn() _dafny.Sequence { + return _this.Get_().(KMSConfiguration_kmsMRKeyArn).KmsMRKeyArn +} + +func (_this KMSConfiguration) Dtor_discovery() Discovery { + return _this.Get_().(KMSConfiguration_discovery).Discovery +} + +func (_this KMSConfiguration) Dtor_mrDiscovery() MRDiscovery { + return _this.Get_().(KMSConfiguration_mrDiscovery).MrDiscovery +} + +func (_this KMSConfiguration) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case KMSConfiguration_kmsKeyArn: + { + return "AwsCryptographyKeyStoreTypes.KMSConfiguration.kmsKeyArn" + "(" + _dafny.String(data.KmsKeyArn) + ")" + } + case KMSConfiguration_kmsMRKeyArn: + { + return "AwsCryptographyKeyStoreTypes.KMSConfiguration.kmsMRKeyArn" + "(" + _dafny.String(data.KmsMRKeyArn) + ")" + } + case KMSConfiguration_discovery: + { + return "AwsCryptographyKeyStoreTypes.KMSConfiguration.discovery" + "(" + _dafny.String(data.Discovery) + ")" + } + case KMSConfiguration_mrDiscovery: + { + return "AwsCryptographyKeyStoreTypes.KMSConfiguration.mrDiscovery" + "(" + _dafny.String(data.MrDiscovery) + ")" + } + default: + { + return "" + } + } +} + +func (_this KMSConfiguration) Equals(other KMSConfiguration) bool { + switch data1 := _this.Get_().(type) { + case KMSConfiguration_kmsKeyArn: + { + data2, ok := other.Get_().(KMSConfiguration_kmsKeyArn) + return ok && data1.KmsKeyArn.Equals(data2.KmsKeyArn) + } + case KMSConfiguration_kmsMRKeyArn: + { + data2, ok := other.Get_().(KMSConfiguration_kmsMRKeyArn) + return ok && data1.KmsMRKeyArn.Equals(data2.KmsMRKeyArn) + } + case KMSConfiguration_discovery: + { + data2, ok := other.Get_().(KMSConfiguration_discovery) + return ok && data1.Discovery.Equals(data2.Discovery) + } + case KMSConfiguration_mrDiscovery: + { + data2, ok := other.Get_().(KMSConfiguration_mrDiscovery) + return ok && data1.MrDiscovery.Equals(data2.MrDiscovery) + } + default: + { + return false // unexpected + } + } +} + +func (_this KMSConfiguration) EqualsGeneric(other interface{}) bool { + typed, ok := other.(KMSConfiguration) + return ok && _this.Equals(typed) +} + +func Type_KMSConfiguration_() _dafny.TypeDescriptor { + return type_KMSConfiguration_{} +} + +type type_KMSConfiguration_ struct { +} + +func (_this type_KMSConfiguration_) Default() interface{} { + return Companion_KMSConfiguration_.Default() +} + +func (_this type_KMSConfiguration_) String() string { + return "AwsCryptographyKeyStoreTypes.KMSConfiguration" +} +func (_this KMSConfiguration) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = KMSConfiguration{} + +// End of datatype KMSConfiguration + +// Definition of datatype MRDiscovery +type MRDiscovery struct { + Data_MRDiscovery_ +} + +func (_this MRDiscovery) Get_() Data_MRDiscovery_ { + return _this.Data_MRDiscovery_ +} + +type Data_MRDiscovery_ interface { + isMRDiscovery() +} + +type CompanionStruct_MRDiscovery_ struct { +} + +var Companion_MRDiscovery_ = CompanionStruct_MRDiscovery_{} + +type MRDiscovery_MRDiscovery struct { + Region _dafny.Sequence +} + +func (MRDiscovery_MRDiscovery) isMRDiscovery() {} + +func (CompanionStruct_MRDiscovery_) Create_MRDiscovery_(Region _dafny.Sequence) MRDiscovery { + return MRDiscovery{MRDiscovery_MRDiscovery{Region}} +} + +func (_this MRDiscovery) Is_MRDiscovery() bool { + _, ok := _this.Get_().(MRDiscovery_MRDiscovery) + return ok +} + +func (CompanionStruct_MRDiscovery_) Default() MRDiscovery { + return Companion_MRDiscovery_.Create_MRDiscovery_(_dafny.EmptySeq.SetString()) +} + +func (_this MRDiscovery) Dtor_region() _dafny.Sequence { + return _this.Get_().(MRDiscovery_MRDiscovery).Region +} + +func (_this MRDiscovery) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case MRDiscovery_MRDiscovery: + { + return "AwsCryptographyKeyStoreTypes.MRDiscovery.MRDiscovery" + "(" + _dafny.String(data.Region) + ")" + } + default: + { + return "" + } + } +} + +func (_this MRDiscovery) Equals(other MRDiscovery) bool { + switch data1 := _this.Get_().(type) { + case MRDiscovery_MRDiscovery: + { + data2, ok := other.Get_().(MRDiscovery_MRDiscovery) + return ok && data1.Region.Equals(data2.Region) + } + default: + { + return false // unexpected + } + } +} + +func (_this MRDiscovery) EqualsGeneric(other interface{}) bool { + typed, ok := other.(MRDiscovery) + return ok && _this.Equals(typed) +} + +func Type_MRDiscovery_() _dafny.TypeDescriptor { + return type_MRDiscovery_{} +} + +type type_MRDiscovery_ struct { +} + +func (_this type_MRDiscovery_) Default() interface{} { + return Companion_MRDiscovery_.Default() +} + +func (_this type_MRDiscovery_) String() string { + return "AwsCryptographyKeyStoreTypes.MRDiscovery" +} +func (_this MRDiscovery) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = MRDiscovery{} + +// End of datatype MRDiscovery + +// Definition of datatype VersionKeyInput +type VersionKeyInput struct { + Data_VersionKeyInput_ +} + +func (_this VersionKeyInput) Get_() Data_VersionKeyInput_ { + return _this.Data_VersionKeyInput_ +} + +type Data_VersionKeyInput_ interface { + isVersionKeyInput() +} + +type CompanionStruct_VersionKeyInput_ struct { +} + +var Companion_VersionKeyInput_ = CompanionStruct_VersionKeyInput_{} + +type VersionKeyInput_VersionKeyInput struct { + BranchKeyIdentifier _dafny.Sequence +} + +func (VersionKeyInput_VersionKeyInput) isVersionKeyInput() {} + +func (CompanionStruct_VersionKeyInput_) Create_VersionKeyInput_(BranchKeyIdentifier _dafny.Sequence) VersionKeyInput { + return VersionKeyInput{VersionKeyInput_VersionKeyInput{BranchKeyIdentifier}} +} + +func (_this VersionKeyInput) Is_VersionKeyInput() bool { + _, ok := _this.Get_().(VersionKeyInput_VersionKeyInput) + return ok +} + +func (CompanionStruct_VersionKeyInput_) Default() VersionKeyInput { + return Companion_VersionKeyInput_.Create_VersionKeyInput_(_dafny.EmptySeq.SetString()) +} + +func (_this VersionKeyInput) Dtor_branchKeyIdentifier() _dafny.Sequence { + return _this.Get_().(VersionKeyInput_VersionKeyInput).BranchKeyIdentifier +} + +func (_this VersionKeyInput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case VersionKeyInput_VersionKeyInput: + { + return "AwsCryptographyKeyStoreTypes.VersionKeyInput.VersionKeyInput" + "(" + _dafny.String(data.BranchKeyIdentifier) + ")" + } + default: + { + return "" + } + } +} + +func (_this VersionKeyInput) Equals(other VersionKeyInput) bool { + switch data1 := _this.Get_().(type) { + case VersionKeyInput_VersionKeyInput: + { + data2, ok := other.Get_().(VersionKeyInput_VersionKeyInput) + return ok && data1.BranchKeyIdentifier.Equals(data2.BranchKeyIdentifier) + } + default: + { + return false // unexpected + } + } +} + +func (_this VersionKeyInput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(VersionKeyInput) + return ok && _this.Equals(typed) +} + +func Type_VersionKeyInput_() _dafny.TypeDescriptor { + return type_VersionKeyInput_{} +} + +type type_VersionKeyInput_ struct { +} + +func (_this type_VersionKeyInput_) Default() interface{} { + return Companion_VersionKeyInput_.Default() +} + +func (_this type_VersionKeyInput_) String() string { + return "AwsCryptographyKeyStoreTypes.VersionKeyInput" +} +func (_this VersionKeyInput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = VersionKeyInput{} + +// End of datatype VersionKeyInput + +// Definition of datatype VersionKeyOutput +type VersionKeyOutput struct { + Data_VersionKeyOutput_ +} + +func (_this VersionKeyOutput) Get_() Data_VersionKeyOutput_ { + return _this.Data_VersionKeyOutput_ +} + +type Data_VersionKeyOutput_ interface { + isVersionKeyOutput() +} + +type CompanionStruct_VersionKeyOutput_ struct { +} + +var Companion_VersionKeyOutput_ = CompanionStruct_VersionKeyOutput_{} + +type VersionKeyOutput_VersionKeyOutput struct { +} + +func (VersionKeyOutput_VersionKeyOutput) isVersionKeyOutput() {} + +func (CompanionStruct_VersionKeyOutput_) Create_VersionKeyOutput_() VersionKeyOutput { + return VersionKeyOutput{VersionKeyOutput_VersionKeyOutput{}} +} + +func (_this VersionKeyOutput) Is_VersionKeyOutput() bool { + _, ok := _this.Get_().(VersionKeyOutput_VersionKeyOutput) + return ok +} + +func (CompanionStruct_VersionKeyOutput_) Default() VersionKeyOutput { + return Companion_VersionKeyOutput_.Create_VersionKeyOutput_() +} + +func (_ CompanionStruct_VersionKeyOutput_) AllSingletonConstructors() _dafny.Iterator { + i := -1 + return func() (interface{}, bool) { + i++ + switch i { + case 0: + return Companion_VersionKeyOutput_.Create_VersionKeyOutput_(), true + default: + return VersionKeyOutput{}, false + } + } +} + +func (_this VersionKeyOutput) String() string { + switch _this.Get_().(type) { + case nil: + return "null" + case VersionKeyOutput_VersionKeyOutput: + { + return "AwsCryptographyKeyStoreTypes.VersionKeyOutput.VersionKeyOutput" + } + default: + { + return "" + } + } +} + +func (_this VersionKeyOutput) Equals(other VersionKeyOutput) bool { + switch _this.Get_().(type) { + case VersionKeyOutput_VersionKeyOutput: + { + _, ok := other.Get_().(VersionKeyOutput_VersionKeyOutput) + return ok + } + default: + { + return false // unexpected + } + } +} + +func (_this VersionKeyOutput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(VersionKeyOutput) + return ok && _this.Equals(typed) +} + +func Type_VersionKeyOutput_() _dafny.TypeDescriptor { + return type_VersionKeyOutput_{} +} + +type type_VersionKeyOutput_ struct { +} + +func (_this type_VersionKeyOutput_) Default() interface{} { + return Companion_VersionKeyOutput_.Default() +} + +func (_this type_VersionKeyOutput_) String() string { + return "AwsCryptographyKeyStoreTypes.VersionKeyOutput" +} +func (_this VersionKeyOutput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = VersionKeyOutput{} + +// End of datatype VersionKeyOutput + +// Definition of datatype Error +type Error struct { + Data_Error_ +} + +func (_this Error) Get_() Data_Error_ { + return _this.Data_Error_ +} + +type Data_Error_ interface { + isError() +} + +type CompanionStruct_Error_ struct { +} + +var Companion_Error_ = CompanionStruct_Error_{} + +type Error_KeyStoreException struct { + Message _dafny.Sequence +} + +func (Error_KeyStoreException) isError() {} + +func (CompanionStruct_Error_) Create_KeyStoreException_(Message _dafny.Sequence) Error { + return Error{Error_KeyStoreException{Message}} +} + +func (_this Error) Is_KeyStoreException() bool { + _, ok := _this.Get_().(Error_KeyStoreException) + return ok +} + +type Error_ComAmazonawsDynamodb struct { + ComAmazonawsDynamodb m_ComAmazonawsDynamodbTypes.Error +} + +func (Error_ComAmazonawsDynamodb) isError() {} + +func (CompanionStruct_Error_) Create_ComAmazonawsDynamodb_(ComAmazonawsDynamodb m_ComAmazonawsDynamodbTypes.Error) Error { + return Error{Error_ComAmazonawsDynamodb{ComAmazonawsDynamodb}} +} + +func (_this Error) Is_ComAmazonawsDynamodb() bool { + _, ok := _this.Get_().(Error_ComAmazonawsDynamodb) + return ok +} + +type Error_ComAmazonawsKms struct { + ComAmazonawsKms m_ComAmazonawsKmsTypes.Error +} + +func (Error_ComAmazonawsKms) isError() {} + +func (CompanionStruct_Error_) Create_ComAmazonawsKms_(ComAmazonawsKms m_ComAmazonawsKmsTypes.Error) Error { + return Error{Error_ComAmazonawsKms{ComAmazonawsKms}} +} + +func (_this Error) Is_ComAmazonawsKms() bool { + _, ok := _this.Get_().(Error_ComAmazonawsKms) + return ok +} + +type Error_CollectionOfErrors struct { + List _dafny.Sequence + Message _dafny.Sequence +} + +func (Error_CollectionOfErrors) isError() {} + +func (CompanionStruct_Error_) Create_CollectionOfErrors_(List _dafny.Sequence, Message _dafny.Sequence) Error { + return Error{Error_CollectionOfErrors{List, Message}} +} + +func (_this Error) Is_CollectionOfErrors() bool { + _, ok := _this.Get_().(Error_CollectionOfErrors) + return ok +} + +type Error_Opaque struct { + Obj interface{} +} + +func (Error_Opaque) isError() {} + +func (CompanionStruct_Error_) Create_Opaque_(Obj interface{}) Error { + return Error{Error_Opaque{Obj}} +} + +func (_this Error) Is_Opaque() bool { + _, ok := _this.Get_().(Error_Opaque) + return ok +} + +type Error_OpaqueWithText struct { + Obj interface{} + ObjMessage _dafny.Sequence +} + +func (Error_OpaqueWithText) isError() {} + +func (CompanionStruct_Error_) Create_OpaqueWithText_(Obj interface{}, ObjMessage _dafny.Sequence) Error { + return Error{Error_OpaqueWithText{Obj, ObjMessage}} +} + +func (_this Error) Is_OpaqueWithText() bool { + _, ok := _this.Get_().(Error_OpaqueWithText) + return ok +} + +func (CompanionStruct_Error_) Default() Error { + return Companion_Error_.Create_KeyStoreException_(_dafny.EmptySeq.SetString()) +} + +func (_this Error) Dtor_message() _dafny.Sequence { + switch data := _this.Get_().(type) { + case Error_KeyStoreException: + return data.Message + default: + return data.(Error_CollectionOfErrors).Message + } +} + +func (_this Error) Dtor_ComAmazonawsDynamodb() m_ComAmazonawsDynamodbTypes.Error { + return _this.Get_().(Error_ComAmazonawsDynamodb).ComAmazonawsDynamodb +} + +func (_this Error) Dtor_ComAmazonawsKms() m_ComAmazonawsKmsTypes.Error { + return _this.Get_().(Error_ComAmazonawsKms).ComAmazonawsKms +} + +func (_this Error) Dtor_list() _dafny.Sequence { + return _this.Get_().(Error_CollectionOfErrors).List +} + +func (_this Error) Dtor_obj() interface{} { + switch data := _this.Get_().(type) { + case Error_Opaque: + return data.Obj + default: + return data.(Error_OpaqueWithText).Obj + } +} + +func (_this Error) Dtor_objMessage() _dafny.Sequence { + return _this.Get_().(Error_OpaqueWithText).ObjMessage +} + +func (_this Error) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case Error_KeyStoreException: + { + return "AwsCryptographyKeyStoreTypes.Error.KeyStoreException" + "(" + _dafny.String(data.Message) + ")" + } + case Error_ComAmazonawsDynamodb: + { + return "AwsCryptographyKeyStoreTypes.Error.ComAmazonawsDynamodb" + "(" + _dafny.String(data.ComAmazonawsDynamodb) + ")" + } + case Error_ComAmazonawsKms: + { + return "AwsCryptographyKeyStoreTypes.Error.ComAmazonawsKms" + "(" + _dafny.String(data.ComAmazonawsKms) + ")" + } + case Error_CollectionOfErrors: + { + return "AwsCryptographyKeyStoreTypes.Error.CollectionOfErrors" + "(" + _dafny.String(data.List) + ", " + _dafny.String(data.Message) + ")" + } + case Error_Opaque: + { + return "AwsCryptographyKeyStoreTypes.Error.Opaque" + "(" + _dafny.String(data.Obj) + ")" + } + case Error_OpaqueWithText: + { + return "AwsCryptographyKeyStoreTypes.Error.OpaqueWithText" + "(" + _dafny.String(data.Obj) + ", " + _dafny.String(data.ObjMessage) + ")" + } + default: + { + return "" + } + } +} + +func (_this Error) Equals(other Error) bool { + switch data1 := _this.Get_().(type) { + case Error_KeyStoreException: + { + data2, ok := other.Get_().(Error_KeyStoreException) + return ok && data1.Message.Equals(data2.Message) + } + case Error_ComAmazonawsDynamodb: + { + data2, ok := other.Get_().(Error_ComAmazonawsDynamodb) + return ok && data1.ComAmazonawsDynamodb.Equals(data2.ComAmazonawsDynamodb) + } + case Error_ComAmazonawsKms: + { + data2, ok := other.Get_().(Error_ComAmazonawsKms) + return ok && data1.ComAmazonawsKms.Equals(data2.ComAmazonawsKms) + } + case Error_CollectionOfErrors: + { + data2, ok := other.Get_().(Error_CollectionOfErrors) + return ok && data1.List.Equals(data2.List) && data1.Message.Equals(data2.Message) + } + case Error_Opaque: + { + data2, ok := other.Get_().(Error_Opaque) + return ok && _dafny.AreEqual(data1.Obj, data2.Obj) + } + case Error_OpaqueWithText: + { + data2, ok := other.Get_().(Error_OpaqueWithText) + return ok && _dafny.AreEqual(data1.Obj, data2.Obj) && data1.ObjMessage.Equals(data2.ObjMessage) + } + default: + { + return false // unexpected + } + } +} + +func (_this Error) EqualsGeneric(other interface{}) bool { + typed, ok := other.(Error) + return ok && _this.Equals(typed) +} + +func Type_Error_() _dafny.TypeDescriptor { + return type_Error_{} +} + +type type_Error_ struct { +} + +func (_this type_Error_) Default() interface{} { + return Companion_Error_.Default() +} + +func (_this type_Error_) String() string { + return "AwsCryptographyKeyStoreTypes.Error" +} +func (_this Error) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = Error{} + +// End of datatype Error + +// Definition of class OpaqueError +type OpaqueError struct { +} + +func New_OpaqueError_() *OpaqueError { + _this := OpaqueError{} + + return &_this +} + +type CompanionStruct_OpaqueError_ struct { +} + +var Companion_OpaqueError_ = CompanionStruct_OpaqueError_{} + +func (*OpaqueError) String() string { + return "AwsCryptographyKeyStoreTypes.OpaqueError" +} + +// End of class OpaqueError + +func Type_OpaqueError_() _dafny.TypeDescriptor { + return type_OpaqueError_{} +} + +type type_OpaqueError_ struct { +} + +func (_this type_OpaqueError_) Default() interface{} { + return Companion_Error_.Default() +} + +func (_this type_OpaqueError_) String() string { + return "AwsCryptographyKeyStoreTypes.OpaqueError" +} +func (_this *CompanionStruct_OpaqueError_) Is_(__source Error) bool { + var _0_e Error = (__source) + _ = _0_e + return ((_0_e).Is_Opaque()) || ((_0_e).Is_OpaqueWithText()) +} + +// Definition of class DummySubsetType +type DummySubsetType struct { +} + +func New_DummySubsetType_() *DummySubsetType { + _this := DummySubsetType{} + + return &_this +} + +type CompanionStruct_DummySubsetType_ struct { +} + +var Companion_DummySubsetType_ = CompanionStruct_DummySubsetType_{} + +func (*DummySubsetType) String() string { + return "AwsCryptographyKeyStoreTypes.DummySubsetType" +} +func (_this *CompanionStruct_DummySubsetType_) Witness() _dafny.Int { + return _dafny.One +} + +// End of class DummySubsetType + +func Type_DummySubsetType_() _dafny.TypeDescriptor { + return type_DummySubsetType_{} +} + +type type_DummySubsetType_ struct { +} + +func (_this type_DummySubsetType_) Default() interface{} { + return Companion_DummySubsetType_.Witness() +} + +func (_this type_DummySubsetType_) String() string { + return "AwsCryptographyKeyStoreTypes.DummySubsetType" +} +func (_this *CompanionStruct_DummySubsetType_) Is_(__source _dafny.Int) bool { + var _1_x _dafny.Int = (__source) + _ = _1_x + return Companion_Default___.IsDummySubsetType(_1_x) +} diff --git a/customer-preview/mpl/AwsCryptographyMaterialProvidersOperations/AwsCryptographyMaterialProvidersOperations.go b/customer-preview/mpl/AwsCryptographyMaterialProvidersOperations/AwsCryptographyMaterialProvidersOperations.go new file mode 100644 index 000000000..b9377eb7b --- /dev/null +++ b/customer-preview/mpl/AwsCryptographyMaterialProvidersOperations/AwsCryptographyMaterialProvidersOperations.go @@ -0,0 +1,1786 @@ +// Package AwsCryptographyMaterialProvidersOperations +// Dafny module AwsCryptographyMaterialProvidersOperations compiled into Go + +package AwsCryptographyMaterialProvidersOperations + +import ( + os "os" + + m_ComAmazonawsDynamodbTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/ComAmazonawsDynamodbTypes" + m_Com_Amazonaws_Dynamodb "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/Com_Amazonaws_Dynamodb" + m_ComAmazonawsKmsTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/ComAmazonawsKmsTypes" + m_Com_Amazonaws_Kms "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/Com_Amazonaws_Kms" + m_AlgorithmSuites "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AlgorithmSuites" + m_AwsArnParsing "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsArnParsing" + m_AwsCryptographyKeyStoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreOperations" + m_AwsCryptographyKeyStoreTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreTypes" + m_AwsCryptographyMaterialProvidersTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersTypes" + m_AwsKmsDiscoveryKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsDiscoveryKeyring" + m_AwsKmsEcdhKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsEcdhKeyring" + m_AwsKmsHierarchicalKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsHierarchicalKeyring" + m_AwsKmsKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsKeyring" + m_AwsKmsMrkAreUnique "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkAreUnique" + m_AwsKmsMrkDiscoveryKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkDiscoveryKeyring" + m_AwsKmsMrkKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkKeyring" + m_AwsKmsMrkMatchForDecrypt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkMatchForDecrypt" + m_AwsKmsRsaKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsRsaKeyring" + m_AwsKmsUtils "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsUtils" + m_CMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CMM" + m_CacheConstants "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CacheConstants" + m_CanonicalEncryptionContext "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CanonicalEncryptionContext" + m_Commitment "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Commitment" + m_Constants "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Constants" + m_CreateKeyStoreTable "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeyStoreTable" + m_CreateKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeys" + m_DDBKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DDBKeystoreOperations" + m_DefaultCMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DefaultCMM" + m_DefaultClientSupplier "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DefaultClientSupplier" + m_Defaults "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Defaults" + m_DiscoveryMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DiscoveryMultiKeyring" + m_EcdhEdkWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/EcdhEdkWrapping" + m_EdkWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/EdkWrapping" + m_ErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/ErrorMessages" + m_GetKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/GetKeys" + m_IntermediateKeyWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/IntermediateKeyWrapping" + m_KMSKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KMSKeystoreOperations" + m_KeyStore "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStore" + m_KeyStoreErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStoreErrorMessages" + m_Keyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Keyring" + m_KmsArn "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KmsArn" + m_LocalCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/LocalCMC" + m_MaterialWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MaterialWrapping" + m_Materials "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Materials" + m_MrkAwareDiscoveryMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MrkAwareDiscoveryMultiKeyring" + m_MrkAwareStrictMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MrkAwareStrictMultiKeyring" + m_MultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MultiKeyring" + m_RawAESKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawAESKeyring" + m_RawECDHKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawECDHKeyring" + m_RawRSAKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawRSAKeyring" + m_RequiredEncryptionContextCMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RequiredEncryptionContextCMM" + m_StormTracker "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StormTracker" + m_StormTrackingCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StormTrackingCMC" + m_StrictMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StrictMultiKeyring" + m_Structure "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Structure" + m_SynchronizedLocalCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/SynchronizedLocalCMC" + m_Utils "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Utils" + m_AtomicPrimitives "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AtomicPrimitives" + m_AwsCryptographyPrimitivesOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesOperations" + m_AwsCryptographyPrimitivesTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesTypes" + m_Digest "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Digest" + m_HKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/HKDF" + m_KdfCtr "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/KdfCtr" + m_Random "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Random" + m_WrappedHKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHKDF" + m_WrappedHMAC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHMAC" + m_Actions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Actions" + m_Base64 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64" + m_Base64Lemmas "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64Lemmas" + m_BoundedInts "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/BoundedInts" + m_DivInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternals" + m_DivInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternalsNonlinear" + m_DivMod "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivMod" + m_FileIO "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FileIO" + m_FloatCompare "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FloatCompare" + m_Functions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Functions" + m_GeneralInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GeneralInternals" + m_GetOpt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GetOpt" + m_HexStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/HexStrings" + m_Logarithm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Logarithm" + m__Math "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Math_" + m_ModInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternals" + m_ModInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternalsNonlinear" + m_Mul "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Mul" + m_MulInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternals" + m_MulInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternalsNonlinear" + m_Power "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Power" + m_Relations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Relations" + m_Seq "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq" + m_Seq_MergeSort "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq_MergeSort" + m_Sorting "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Sorting" + m_StandardLibrary "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary" + m_StandardLibraryInterop "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibraryInterop" + m_StandardLibrary_Sequence "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_Sequence" + m_StandardLibrary_String "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_String" + m_StandardLibrary_UInt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_UInt" + m_Streams "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Streams" + m_UTF8 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UTF8" + m_UUID "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UUID" + m_UnicodeStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UnicodeStrings" + m__Unicode "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Unicode_" + m_Utf16EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf16EncodingForm" + m_Utf8EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf8EncodingForm" + m_Wrappers "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers" + m__System "github.com/dafny-lang/DafnyRuntimeGo/v4/System_" + _dafny "github.com/dafny-lang/DafnyRuntimeGo/v4/dafny" +) + +var _ = os.Args +var _ _dafny.Dummy__ +var _ m__System.Dummy__ +var _ m_Wrappers.Dummy__ +var _ m_BoundedInts.Dummy__ +var _ m_StandardLibrary_UInt.Dummy__ +var _ m_StandardLibrary_Sequence.Dummy__ +var _ m_StandardLibrary_String.Dummy__ +var _ m_StandardLibrary.Dummy__ +var _ m_AwsCryptographyPrimitivesTypes.Dummy__ +var _ m_Random.Dummy__ +var _ m_Digest.Dummy__ +var _ m_WrappedHMAC.Dummy__ +var _ m_HKDF.Dummy__ +var _ m_WrappedHKDF.Dummy__ +var _ m_KdfCtr.Dummy__ +var _ m_AwsCryptographyPrimitivesOperations.Dummy__ +var _ m_AtomicPrimitives.Dummy__ +var _ m_ComAmazonawsDynamodbTypes.Dummy__ +var _ m_ComAmazonawsKmsTypes.Dummy__ +var _ m_Relations.Dummy__ +var _ m_Seq_MergeSort.Dummy__ +var _ m__Math.Dummy__ +var _ m_Seq.Dummy__ +var _ m__Unicode.Dummy__ +var _ m_Functions.Dummy__ +var _ m_Utf8EncodingForm.Dummy__ +var _ m_Utf16EncodingForm.Dummy__ +var _ m_UnicodeStrings.Dummy__ +var _ m_FileIO.Dummy__ +var _ m_GeneralInternals.Dummy__ +var _ m_MulInternalsNonlinear.Dummy__ +var _ m_MulInternals.Dummy__ +var _ m_Mul.Dummy__ +var _ m_ModInternalsNonlinear.Dummy__ +var _ m_DivInternalsNonlinear.Dummy__ +var _ m_ModInternals.Dummy__ +var _ m_DivInternals.Dummy__ +var _ m_DivMod.Dummy__ +var _ m_Power.Dummy__ +var _ m_Logarithm.Dummy__ +var _ m_StandardLibraryInterop.Dummy__ +var _ m_Streams.Dummy__ +var _ m_Sorting.Dummy__ +var _ m_HexStrings.Dummy__ +var _ m_GetOpt.Dummy__ +var _ m_FloatCompare.Dummy__ +var _ m_Base64.Dummy__ +var _ m_Base64Lemmas.Dummy__ +var _ m_Actions.Dummy__ +var _ m_AwsCryptographyKeyStoreTypes.Dummy__ +var _ m_AwsCryptographyMaterialProvidersTypes.Dummy__ +var _ m_AwsArnParsing.Dummy__ +var _ m_AwsKmsMrkMatchForDecrypt.Dummy__ +var _ m_AwsKmsUtils.Dummy__ +var _ m_KeyStoreErrorMessages.Dummy__ +var _ m_KmsArn.Dummy__ +var _ m_Structure.Dummy__ +var _ m_KMSKeystoreOperations.Dummy__ +var _ m_DDBKeystoreOperations.Dummy__ +var _ m_CreateKeys.Dummy__ +var _ m_CreateKeyStoreTable.Dummy__ +var _ m_GetKeys.Dummy__ +var _ m_AwsCryptographyKeyStoreOperations.Dummy__ +var _ m_Com_Amazonaws_Kms.Dummy__ +var _ m_Com_Amazonaws_Dynamodb.Dummy__ +var _ m_KeyStore.Dummy__ +var _ m_AlgorithmSuites.Dummy__ +var _ m_Materials.Dummy__ +var _ m_Keyring.Dummy__ +var _ m_MultiKeyring.Dummy__ +var _ m_AwsKmsMrkAreUnique.Dummy__ +var _ m_Constants.Dummy__ +var _ m_MaterialWrapping.Dummy__ +var _ m_CanonicalEncryptionContext.Dummy__ +var _ m_IntermediateKeyWrapping.Dummy__ +var _ m_EdkWrapping.Dummy__ +var _ m_ErrorMessages.Dummy__ +var _ m_AwsKmsKeyring.Dummy__ +var _ m_StrictMultiKeyring.Dummy__ +var _ m_AwsKmsDiscoveryKeyring.Dummy__ +var _ m_DiscoveryMultiKeyring.Dummy__ +var _ m_AwsKmsMrkDiscoveryKeyring.Dummy__ +var _ m_MrkAwareDiscoveryMultiKeyring.Dummy__ +var _ m_AwsKmsMrkKeyring.Dummy__ +var _ m_MrkAwareStrictMultiKeyring.Dummy__ +var _ m_LocalCMC.Dummy__ +var _ m_SynchronizedLocalCMC.Dummy__ +var _ m_StormTracker.Dummy__ +var _ m_StormTrackingCMC.Dummy__ +var _ m_CacheConstants.Dummy__ +var _ m_AwsKmsHierarchicalKeyring.Dummy__ +var _ m_AwsKmsRsaKeyring.Dummy__ +var _ m_EcdhEdkWrapping.Dummy__ +var _ m_RawECDHKeyring.Dummy__ +var _ m_AwsKmsEcdhKeyring.Dummy__ +var _ m_RawAESKeyring.Dummy__ +var _ m_RawRSAKeyring.Dummy__ +var _ m_CMM.Dummy__ +var _ m_Defaults.Dummy__ +var _ m_Commitment.Dummy__ +var _ m_DefaultCMM.Dummy__ +var _ m_DefaultClientSupplier.Dummy__ +var _ m_Utils.Dummy__ +var _ m_RequiredEncryptionContextCMM.Dummy__ + +type Dummy__ struct{} + +// Definition of class Default__ +type Default__ struct { + dummy byte +} + +func New_Default___() *Default__ { + _this := Default__{} + + return &_this +} + +type CompanionStruct_Default___ struct { +} + +var Companion_Default___ = CompanionStruct_Default___{} + +func (_this *Default__) Equals(other *Default__) bool { + return _this == other +} + +func (_this *Default__) EqualsGeneric(x interface{}) bool { + other, ok := x.(*Default__) + return ok && _this.Equals(other) +} + +func (*Default__) String() string { + return "AwsCryptographyMaterialProvidersOperations.Default__" +} +func (_this *Default__) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = &Default__{} + +func (_static *CompanionStruct_Default___) CreateAwsKmsKeyring(config Config, input m_AwsCryptographyMaterialProvidersTypes.CreateAwsKmsKeyringInput) m_Wrappers.Result { + var output m_Wrappers.Result = m_Wrappers.Result{} + _ = output + var _0_valueOrError0 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.TupleOf()) + _ = _0_valueOrError0 + _0_valueOrError0 = m_AwsKmsUtils.Companion_Default___.ValidateKmsKeyId((input).Dtor_kmsKeyId()) + if (_0_valueOrError0).IsFailure() { + output = (_0_valueOrError0).PropagateFailure() + return output + } + var _1___v0 _dafny.Tuple + _ = _1___v0 + _1___v0 = (_0_valueOrError0).Extract().(_dafny.Tuple) + var _2_valueOrError1 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = _2_valueOrError1 + _2_valueOrError1 = m_AwsKmsUtils.Companion_Default___.GetValidGrantTokens((input).Dtor_grantTokens()) + if (_2_valueOrError1).IsFailure() { + output = (_2_valueOrError1).PropagateFailure() + return output + } + var _3_grantTokens _dafny.Sequence + _ = _3_grantTokens + _3_grantTokens = (_2_valueOrError1).Extract().(_dafny.Sequence) + var _4_keyring *m_AwsKmsKeyring.AwsKmsKeyring + _ = _4_keyring + var _nw0 *m_AwsKmsKeyring.AwsKmsKeyring = m_AwsKmsKeyring.New_AwsKmsKeyring_() + _ = _nw0 + _nw0.Ctor__((input).Dtor_kmsClient(), (input).Dtor_kmsKeyId(), _3_grantTokens) + _4_keyring = _nw0 + output = m_Wrappers.Companion_Result_.Create_Success_(_4_keyring) + return output + return output +} +func (_static *CompanionStruct_Default___) CreateAwsKmsDiscoveryKeyring(config Config, input m_AwsCryptographyMaterialProvidersTypes.CreateAwsKmsDiscoveryKeyringInput) m_Wrappers.Result { + var output m_Wrappers.Result = m_Wrappers.Result{} + _ = output + if ((input).Dtor_discoveryFilter()).Is_Some() { + var _0_valueOrError0 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.TupleOf()) + _ = _0_valueOrError0 + _0_valueOrError0 = m_AwsKmsUtils.Companion_Default___.ValidateDiscoveryFilter(((input).Dtor_discoveryFilter()).Dtor_value().(m_AwsCryptographyMaterialProvidersTypes.DiscoveryFilter)) + if (_0_valueOrError0).IsFailure() { + output = (_0_valueOrError0).PropagateFailure() + return output + } + var _1___v1 _dafny.Tuple + _ = _1___v1 + _1___v1 = (_0_valueOrError0).Extract().(_dafny.Tuple) + } + var _2_valueOrError1 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = _2_valueOrError1 + _2_valueOrError1 = m_AwsKmsUtils.Companion_Default___.GetValidGrantTokens((input).Dtor_grantTokens()) + if (_2_valueOrError1).IsFailure() { + output = (_2_valueOrError1).PropagateFailure() + return output + } + var _3_grantTokens _dafny.Sequence + _ = _3_grantTokens + _3_grantTokens = (_2_valueOrError1).Extract().(_dafny.Sequence) + var _4_keyring *m_AwsKmsDiscoveryKeyring.AwsKmsDiscoveryKeyring + _ = _4_keyring + var _nw0 *m_AwsKmsDiscoveryKeyring.AwsKmsDiscoveryKeyring = m_AwsKmsDiscoveryKeyring.New_AwsKmsDiscoveryKeyring_() + _ = _nw0 + _nw0.Ctor__((input).Dtor_kmsClient(), (input).Dtor_discoveryFilter(), _3_grantTokens) + _4_keyring = _nw0 + output = m_Wrappers.Companion_Result_.Create_Success_(_4_keyring) + return output + return output +} +func (_static *CompanionStruct_Default___) CreateAwsKmsMultiKeyring(config Config, input m_AwsCryptographyMaterialProvidersTypes.CreateAwsKmsMultiKeyringInput) m_Wrappers.Result { + var output m_Wrappers.Result = m_Wrappers.Result{} + _ = output + var _0_valueOrError0 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = _0_valueOrError0 + _0_valueOrError0 = m_AwsKmsUtils.Companion_Default___.GetValidGrantTokens((input).Dtor_grantTokens()) + if (_0_valueOrError0).IsFailure() { + output = (_0_valueOrError0).PropagateFailure() + return output + } + var _1_grantTokens _dafny.Sequence + _ = _1_grantTokens + _1_grantTokens = (_0_valueOrError0).Extract().(_dafny.Sequence) + if ((input).Dtor_clientSupplier()).Is_Some() { + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_StrictMultiKeyring.Companion_Default___.StrictMultiKeyring((input).Dtor_generator(), (input).Dtor_kmsKeyIds(), m_AwsCryptographyMaterialProvidersTypes.Companion_IClientSupplier_.CastTo_(((input).Dtor_clientSupplier()).Dtor_value()), m_Wrappers.Companion_Option_.Create_Some_(_1_grantTokens)) + output = _out0 + } else { + var _2_valueOrError1 m_Wrappers.Result = m_Wrappers.Result{} + _ = _2_valueOrError1 + var _out1 m_Wrappers.Result + _ = _out1 + _out1 = Companion_Default___.CreateDefaultClientSupplier(config, m_AwsCryptographyMaterialProvidersTypes.Companion_CreateDefaultClientSupplierInput_.Create_CreateDefaultClientSupplierInput_()) + _2_valueOrError1 = _out1 + if (_2_valueOrError1).IsFailure() { + output = (_2_valueOrError1).PropagateFailure() + return output + } + var _3_clientSupplier m_AwsCryptographyMaterialProvidersTypes.IClientSupplier + _ = _3_clientSupplier + _3_clientSupplier = m_AwsCryptographyMaterialProvidersTypes.Companion_IClientSupplier_.CastTo_((_2_valueOrError1).Extract()) + var _out2 m_Wrappers.Result + _ = _out2 + _out2 = m_StrictMultiKeyring.Companion_Default___.StrictMultiKeyring((input).Dtor_generator(), (input).Dtor_kmsKeyIds(), _3_clientSupplier, m_Wrappers.Companion_Option_.Create_Some_(_1_grantTokens)) + output = _out2 + } + return output +} +func (_static *CompanionStruct_Default___) CreateAwsKmsDiscoveryMultiKeyring(config Config, input m_AwsCryptographyMaterialProvidersTypes.CreateAwsKmsDiscoveryMultiKeyringInput) m_Wrappers.Result { + var output m_Wrappers.Result = m_Wrappers.Result{} + _ = output + var _0_valueOrError0 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = _0_valueOrError0 + _0_valueOrError0 = m_AwsKmsUtils.Companion_Default___.GetValidGrantTokens((input).Dtor_grantTokens()) + if (_0_valueOrError0).IsFailure() { + output = (_0_valueOrError0).PropagateFailure() + return output + } + var _1_grantTokens _dafny.Sequence + _ = _1_grantTokens + _1_grantTokens = (_0_valueOrError0).Extract().(_dafny.Sequence) + var _2_clientSupplier m_AwsCryptographyMaterialProvidersTypes.IClientSupplier = (m_AwsCryptographyMaterialProvidersTypes.IClientSupplier)(nil) + _ = _2_clientSupplier + if ((input).Dtor_clientSupplier()).Is_None() { + var _3_valueOrError1 m_Wrappers.Result = m_Wrappers.Result{} + _ = _3_valueOrError1 + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = Companion_Default___.CreateDefaultClientSupplier(config, m_AwsCryptographyMaterialProvidersTypes.Companion_CreateDefaultClientSupplierInput_.Create_CreateDefaultClientSupplierInput_()) + _3_valueOrError1 = _out0 + if (_3_valueOrError1).IsFailure() { + output = (_3_valueOrError1).PropagateFailure() + return output + } + _2_clientSupplier = m_AwsCryptographyMaterialProvidersTypes.Companion_IClientSupplier_.CastTo_((_3_valueOrError1).Extract()) + } else { + _2_clientSupplier = m_AwsCryptographyMaterialProvidersTypes.Companion_IClientSupplier_.CastTo_(((input).Dtor_clientSupplier()).Dtor_value()) + } + var _out1 m_Wrappers.Result + _ = _out1 + _out1 = m_DiscoveryMultiKeyring.Companion_Default___.DiscoveryMultiKeyring((input).Dtor_regions(), (input).Dtor_discoveryFilter(), _2_clientSupplier, m_Wrappers.Companion_Option_.Create_Some_(_1_grantTokens)) + output = _out1 + return output +} +func (_static *CompanionStruct_Default___) CreateAwsKmsMrkKeyring(config Config, input m_AwsCryptographyMaterialProvidersTypes.CreateAwsKmsMrkKeyringInput) m_Wrappers.Result { + var output m_Wrappers.Result = m_Wrappers.Result{} + _ = output + var _0_valueOrError0 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.TupleOf()) + _ = _0_valueOrError0 + _0_valueOrError0 = m_AwsKmsUtils.Companion_Default___.ValidateKmsKeyId((input).Dtor_kmsKeyId()) + if (_0_valueOrError0).IsFailure() { + output = (_0_valueOrError0).PropagateFailure() + return output + } + var _1___v2 _dafny.Tuple + _ = _1___v2 + _1___v2 = (_0_valueOrError0).Extract().(_dafny.Tuple) + var _2_valueOrError1 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = _2_valueOrError1 + _2_valueOrError1 = m_AwsKmsUtils.Companion_Default___.GetValidGrantTokens((input).Dtor_grantTokens()) + if (_2_valueOrError1).IsFailure() { + output = (_2_valueOrError1).PropagateFailure() + return output + } + var _3_grantTokens _dafny.Sequence + _ = _3_grantTokens + _3_grantTokens = (_2_valueOrError1).Extract().(_dafny.Sequence) + var _4_keyring *m_AwsKmsMrkKeyring.AwsKmsMrkKeyring + _ = _4_keyring + var _nw0 *m_AwsKmsMrkKeyring.AwsKmsMrkKeyring = m_AwsKmsMrkKeyring.New_AwsKmsMrkKeyring_() + _ = _nw0 + _nw0.Ctor__((input).Dtor_kmsClient(), (input).Dtor_kmsKeyId(), _3_grantTokens) + _4_keyring = _nw0 + output = m_Wrappers.Companion_Result_.Create_Success_(_4_keyring) + return output + return output +} +func (_static *CompanionStruct_Default___) CreateAwsKmsMrkMultiKeyring(config Config, input m_AwsCryptographyMaterialProvidersTypes.CreateAwsKmsMrkMultiKeyringInput) m_Wrappers.Result { + var output m_Wrappers.Result = m_Wrappers.Result{} + _ = output + var _0_valueOrError0 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = _0_valueOrError0 + _0_valueOrError0 = m_AwsKmsUtils.Companion_Default___.GetValidGrantTokens((input).Dtor_grantTokens()) + if (_0_valueOrError0).IsFailure() { + output = (_0_valueOrError0).PropagateFailure() + return output + } + var _1_grantTokens _dafny.Sequence + _ = _1_grantTokens + _1_grantTokens = (_0_valueOrError0).Extract().(_dafny.Sequence) + var _2_clientSupplier m_AwsCryptographyMaterialProvidersTypes.IClientSupplier = (m_AwsCryptographyMaterialProvidersTypes.IClientSupplier)(nil) + _ = _2_clientSupplier + if ((input).Dtor_clientSupplier()).Is_None() { + var _3_valueOrError1 m_Wrappers.Result = m_Wrappers.Result{} + _ = _3_valueOrError1 + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = Companion_Default___.CreateDefaultClientSupplier(config, m_AwsCryptographyMaterialProvidersTypes.Companion_CreateDefaultClientSupplierInput_.Create_CreateDefaultClientSupplierInput_()) + _3_valueOrError1 = _out0 + if (_3_valueOrError1).IsFailure() { + output = (_3_valueOrError1).PropagateFailure() + return output + } + _2_clientSupplier = m_AwsCryptographyMaterialProvidersTypes.Companion_IClientSupplier_.CastTo_((_3_valueOrError1).Extract()) + } else { + _2_clientSupplier = m_AwsCryptographyMaterialProvidersTypes.Companion_IClientSupplier_.CastTo_(((input).Dtor_clientSupplier()).Dtor_value()) + } + var _out1 m_Wrappers.Result + _ = _out1 + _out1 = m_MrkAwareStrictMultiKeyring.Companion_Default___.MrkAwareStrictMultiKeyring((input).Dtor_generator(), (input).Dtor_kmsKeyIds(), _2_clientSupplier, m_Wrappers.Companion_Option_.Create_Some_(_1_grantTokens)) + output = _out1 + return output +} +func (_static *CompanionStruct_Default___) CreateAwsKmsMrkDiscoveryKeyring(config Config, input m_AwsCryptographyMaterialProvidersTypes.CreateAwsKmsMrkDiscoveryKeyringInput) m_Wrappers.Result { + var output m_Wrappers.Result = m_Wrappers.Result{} + _ = output + if ((input).Dtor_discoveryFilter()).Is_Some() { + var _0_valueOrError0 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.TupleOf()) + _ = _0_valueOrError0 + _0_valueOrError0 = m_AwsKmsUtils.Companion_Default___.ValidateDiscoveryFilter(((input).Dtor_discoveryFilter()).Dtor_value().(m_AwsCryptographyMaterialProvidersTypes.DiscoveryFilter)) + if (_0_valueOrError0).IsFailure() { + output = (_0_valueOrError0).PropagateFailure() + return output + } + var _1___v3 _dafny.Tuple + _ = _1___v3 + _1___v3 = (_0_valueOrError0).Extract().(_dafny.Tuple) + } + var _2_regionMatch m_Wrappers.Option + _ = _2_regionMatch + _2_regionMatch = m_Com_Amazonaws_Kms.Companion_Default___.RegionMatch((input).Dtor_kmsClient(), (input).Dtor_region()) + var _3_valueOrError1 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _3_valueOrError1 + _3_valueOrError1 = m_Wrappers.Companion_Default___.Need(!(_2_regionMatch).Equals(m_Wrappers.Companion_Option_.Create_Some_(false)), m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.SeqOfString("Provided client and region do not match"))) + if (_3_valueOrError1).IsFailure() { + output = (_3_valueOrError1).PropagateFailure() + return output + } + var _4_valueOrError2 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = _4_valueOrError2 + _4_valueOrError2 = m_AwsKmsUtils.Companion_Default___.GetValidGrantTokens((input).Dtor_grantTokens()) + if (_4_valueOrError2).IsFailure() { + output = (_4_valueOrError2).PropagateFailure() + return output + } + var _5_grantTokens _dafny.Sequence + _ = _5_grantTokens + _5_grantTokens = (_4_valueOrError2).Extract().(_dafny.Sequence) + var _6_keyring *m_AwsKmsMrkDiscoveryKeyring.AwsKmsMrkDiscoveryKeyring + _ = _6_keyring + var _nw0 *m_AwsKmsMrkDiscoveryKeyring.AwsKmsMrkDiscoveryKeyring = m_AwsKmsMrkDiscoveryKeyring.New_AwsKmsMrkDiscoveryKeyring_() + _ = _nw0 + _nw0.Ctor__((input).Dtor_kmsClient(), (input).Dtor_region(), (input).Dtor_discoveryFilter(), _5_grantTokens) + _6_keyring = _nw0 + output = m_Wrappers.Companion_Result_.Create_Success_(_6_keyring) + return output + return output +} +func (_static *CompanionStruct_Default___) CreateAwsKmsMrkDiscoveryMultiKeyring(config Config, input m_AwsCryptographyMaterialProvidersTypes.CreateAwsKmsMrkDiscoveryMultiKeyringInput) m_Wrappers.Result { + var output m_Wrappers.Result = m_Wrappers.Result{} + _ = output + var _0_valueOrError0 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = _0_valueOrError0 + _0_valueOrError0 = m_AwsKmsUtils.Companion_Default___.GetValidGrantTokens((input).Dtor_grantTokens()) + if (_0_valueOrError0).IsFailure() { + output = (_0_valueOrError0).PropagateFailure() + return output + } + var _1_grantTokens _dafny.Sequence + _ = _1_grantTokens + _1_grantTokens = (_0_valueOrError0).Extract().(_dafny.Sequence) + var _2_clientSupplier m_AwsCryptographyMaterialProvidersTypes.IClientSupplier = (m_AwsCryptographyMaterialProvidersTypes.IClientSupplier)(nil) + _ = _2_clientSupplier + if ((input).Dtor_clientSupplier()).Is_None() { + var _3_valueOrError1 m_Wrappers.Result = m_Wrappers.Result{} + _ = _3_valueOrError1 + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = Companion_Default___.CreateDefaultClientSupplier(config, m_AwsCryptographyMaterialProvidersTypes.Companion_CreateDefaultClientSupplierInput_.Create_CreateDefaultClientSupplierInput_()) + _3_valueOrError1 = _out0 + if (_3_valueOrError1).IsFailure() { + output = (_3_valueOrError1).PropagateFailure() + return output + } + _2_clientSupplier = m_AwsCryptographyMaterialProvidersTypes.Companion_IClientSupplier_.CastTo_((_3_valueOrError1).Extract()) + } else { + _2_clientSupplier = m_AwsCryptographyMaterialProvidersTypes.Companion_IClientSupplier_.CastTo_(((input).Dtor_clientSupplier()).Dtor_value()) + } + var _out1 m_Wrappers.Result + _ = _out1 + _out1 = m_MrkAwareDiscoveryMultiKeyring.Companion_Default___.MrkAwareDiscoveryMultiKeyring((input).Dtor_regions(), (input).Dtor_discoveryFilter(), _2_clientSupplier, m_Wrappers.Companion_Option_.Create_Some_(_1_grantTokens)) + output = _out1 + return output +} +func (_static *CompanionStruct_Default___) N(n int64) _dafny.Sequence { + return m_StandardLibrary_String.Companion_Default___.Base10Int2String(_dafny.IntOfInt64(n)) +} +func (_static *CompanionStruct_Default___) CheckCache(cache m_AwsCryptographyMaterialProvidersTypes.CacheType, ttlSeconds int64) m_Wrappers.Outcome { + var output m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = output + if (cache).Is_StormTracking() { + var _0_gracePeriod int64 + _ = _0_gracePeriod + if ((((cache).Dtor_StormTracking()).Dtor_timeUnits()).UnwrapOr(m_AwsCryptographyMaterialProvidersTypes.Companion_TimeUnits_.Create_Seconds_()).(m_AwsCryptographyMaterialProvidersTypes.TimeUnits)).Is_Seconds() { + _0_gracePeriod = int64(((cache).Dtor_StormTracking()).Dtor_gracePeriod()) + } else { + _0_gracePeriod = _dafny.DivInt64(int64(((cache).Dtor_StormTracking()).Dtor_gracePeriod()), int64(1000)) + } + var _1_storm m_AwsCryptographyMaterialProvidersTypes.StormTrackingCache + _ = _1_storm + _1_storm = (cache).Dtor_StormTracking() + if (ttlSeconds) <= (_0_gracePeriod) { + var _2_msg _dafny.Sequence + _ = _2_msg + _2_msg = _dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.SeqOfString("When creating an AwsKmsHierarchicalKeyring with a StormCache, "), _dafny.SeqOfString("the ttlSeconds of the KeyRing must be greater than the gracePeriod of the StormCache ")), _dafny.SeqOfString("yet the ttlSeconds is ")), Companion_Default___.N(ttlSeconds)), _dafny.SeqOfString(" and the gracePeriod is ")), Companion_Default___.N(_0_gracePeriod)), _dafny.SeqOfString(".")) + output = m_Wrappers.Companion_Outcome_.Create_Fail_(m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_2_msg)) + return output + } + output = m_Wrappers.Companion_Outcome_.Create_Pass_() + return output + } else { + output = m_Wrappers.Companion_Outcome_.Create_Pass_() + return output + } + return output +} +func (_static *CompanionStruct_Default___) CreateAwsKmsHierarchicalKeyring(config Config, input m_AwsCryptographyMaterialProvidersTypes.CreateAwsKmsHierarchicalKeyringInput) m_Wrappers.Result { + var output m_Wrappers.Result = m_Wrappers.Result{} + _ = output + var _0_cmc m_AwsCryptographyMaterialProvidersTypes.ICryptographicMaterialsCache = (m_AwsCryptographyMaterialProvidersTypes.ICryptographicMaterialsCache)(nil) + _ = _0_cmc + if ((input).Dtor_cache()).Is_Some() { + var _1_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _1_valueOrError0 + var _out0 m_Wrappers.Outcome + _ = _out0 + _out0 = Companion_Default___.CheckCache(((input).Dtor_cache()).Dtor_value().(m_AwsCryptographyMaterialProvidersTypes.CacheType), (input).Dtor_ttlSeconds()) + _1_valueOrError0 = _out0 + if (_1_valueOrError0).IsFailure() { + output = (_1_valueOrError0).PropagateFailure() + return output + } + var _source0 m_AwsCryptographyMaterialProvidersTypes.CacheType = ((input).Dtor_cache()).Dtor_value().(m_AwsCryptographyMaterialProvidersTypes.CacheType) + _ = _source0 + { + { + if _source0.Is_Shared() { + var _2_c m_AwsCryptographyMaterialProvidersTypes.ICryptographicMaterialsCache = _source0.Get_().(m_AwsCryptographyMaterialProvidersTypes.CacheType_Shared).Shared + _ = _2_c + _0_cmc = _2_c + goto Lmatch0 + } + } + { + var _3_valueOrError1 m_Wrappers.Result = m_Wrappers.Result{} + _ = _3_valueOrError1 + var _out1 m_Wrappers.Result + _ = _out1 + _out1 = Companion_Default___.CreateCryptographicMaterialsCache(config, m_AwsCryptographyMaterialProvidersTypes.Companion_CreateCryptographicMaterialsCacheInput_.Create_CreateCryptographicMaterialsCacheInput_(((input).Dtor_cache()).Dtor_value().(m_AwsCryptographyMaterialProvidersTypes.CacheType))) + _3_valueOrError1 = _out1 + if (_3_valueOrError1).IsFailure() { + output = (_3_valueOrError1).PropagateFailure() + return output + } + _0_cmc = m_AwsCryptographyMaterialProvidersTypes.Companion_ICryptographicMaterialsCache_.CastTo_((_3_valueOrError1).Extract()) + } + goto Lmatch0 + } + Lmatch0: + } else { + var _4_valueOrError2 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _4_valueOrError2 + var _out2 m_Wrappers.Outcome + _ = _out2 + _out2 = Companion_Default___.CheckCache(m_AwsCryptographyMaterialProvidersTypes.Companion_CacheType_.Create_StormTracking_(m_StormTracker.Companion_Default___.DefaultStorm()), (input).Dtor_ttlSeconds()) + _4_valueOrError2 = _out2 + if (_4_valueOrError2).IsFailure() { + output = (_4_valueOrError2).PropagateFailure() + return output + } + var _5_valueOrError3 m_Wrappers.Result = m_Wrappers.Result{} + _ = _5_valueOrError3 + var _out3 m_Wrappers.Result + _ = _out3 + _out3 = Companion_Default___.CreateCryptographicMaterialsCache(config, m_AwsCryptographyMaterialProvidersTypes.Companion_CreateCryptographicMaterialsCacheInput_.Create_CreateCryptographicMaterialsCacheInput_(m_AwsCryptographyMaterialProvidersTypes.Companion_CacheType_.Create_Default_(m_AwsCryptographyMaterialProvidersTypes.Companion_DefaultCache_.Create_DefaultCache_(int32(1000))))) + _5_valueOrError3 = _out3 + if (_5_valueOrError3).IsFailure() { + output = (_5_valueOrError3).PropagateFailure() + return output + } + _0_cmc = m_AwsCryptographyMaterialProvidersTypes.Companion_ICryptographicMaterialsCache_.CastTo_((_5_valueOrError3).Extract()) + } + var _6_partitionIdBytes _dafny.Sequence = _dafny.EmptySeq + _ = _6_partitionIdBytes + if ((input).Dtor_partitionId()).Is_Some() { + var _7_valueOrError4 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_UTF8.Companion_ValidUTF8Bytes_.Witness()) + _ = _7_valueOrError4 + _7_valueOrError4 = (m_UTF8.Encode(((input).Dtor_partitionId()).Dtor_value().(_dafny.Sequence))).MapFailure(func(coer132 func(_dafny.Sequence) m_AwsCryptographyMaterialProvidersTypes.Error) func(interface{}) interface{} { + return func(arg133 interface{}) interface{} { + return coer132(arg133.(_dafny.Sequence)) + } + }(func(_8_e _dafny.Sequence) m_AwsCryptographyMaterialProvidersTypes.Error { + return m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.Companion_Sequence_.Concatenate(_dafny.SeqOfString("Could not UTF-8 Encode Partition ID: "), _8_e)) + })) + if (_7_valueOrError4).IsFailure() { + output = (_7_valueOrError4).PropagateFailure() + return output + } + _6_partitionIdBytes = (_7_valueOrError4).Extract().(_dafny.Sequence) + } else { + var _9_uuid_q m_Wrappers.Result + _ = _9_uuid_q + var _out4 m_Wrappers.Result + _ = _out4 + _out4 = m_UUID.GenerateUUID() + _9_uuid_q = _out4 + var _10_valueOrError5 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq.SetString()) + _ = _10_valueOrError5 + _10_valueOrError5 = (_9_uuid_q).MapFailure(func(coer133 func(_dafny.Sequence) m_AwsCryptographyMaterialProvidersTypes.Error) func(interface{}) interface{} { + return func(arg134 interface{}) interface{} { + return coer133(arg134.(_dafny.Sequence)) + } + }(func(_11_e _dafny.Sequence) m_AwsCryptographyMaterialProvidersTypes.Error { + return m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_11_e) + })) + if (_10_valueOrError5).IsFailure() { + output = (_10_valueOrError5).PropagateFailure() + return output + } + var _12_uuid _dafny.Sequence + _ = _12_uuid + _12_uuid = (_10_valueOrError5).Extract().(_dafny.Sequence) + var _13_valueOrError6 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = _13_valueOrError6 + _13_valueOrError6 = (m_UUID.ToByteArray(_12_uuid)).MapFailure(func(coer134 func(_dafny.Sequence) m_AwsCryptographyMaterialProvidersTypes.Error) func(interface{}) interface{} { + return func(arg135 interface{}) interface{} { + return coer134(arg135.(_dafny.Sequence)) + } + }(func(_14_e _dafny.Sequence) m_AwsCryptographyMaterialProvidersTypes.Error { + return m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_14_e) + })) + if (_13_valueOrError6).IsFailure() { + output = (_13_valueOrError6).PropagateFailure() + return output + } + _6_partitionIdBytes = (_13_valueOrError6).Extract().(_dafny.Sequence) + } + var _15_getKeyStoreInfoOutput_q m_Wrappers.Result + _ = _15_getKeyStoreInfoOutput_q + var _out5 m_Wrappers.Result + _ = _out5 + _out5 = ((input).Dtor_keyStore()).GetKeyStoreInfo() + _15_getKeyStoreInfoOutput_q = _out5 + var _16_valueOrError7 m_Wrappers.Result = m_Wrappers.Result{} + _ = _16_valueOrError7 + _16_valueOrError7 = (_15_getKeyStoreInfoOutput_q).MapFailure(func(coer135 func(m_AwsCryptographyKeyStoreTypes.Error) m_AwsCryptographyMaterialProvidersTypes.Error) func(interface{}) interface{} { + return func(arg136 interface{}) interface{} { + return coer135(arg136.(m_AwsCryptographyKeyStoreTypes.Error)) + } + }(func(_17_e m_AwsCryptographyKeyStoreTypes.Error) m_AwsCryptographyMaterialProvidersTypes.Error { + return m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographyKeyStore_(_17_e) + })) + if (_16_valueOrError7).IsFailure() { + output = (_16_valueOrError7).PropagateFailure() + return output + } + var _18_getKeyStoreInfoOutput m_AwsCryptographyKeyStoreTypes.GetKeyStoreInfoOutput + _ = _18_getKeyStoreInfoOutput + _18_getKeyStoreInfoOutput = (_16_valueOrError7).Extract().(m_AwsCryptographyKeyStoreTypes.GetKeyStoreInfoOutput) + var _19_logicalKeyStoreName _dafny.Sequence + _ = _19_logicalKeyStoreName + _19_logicalKeyStoreName = (_18_getKeyStoreInfoOutput).Dtor_logicalKeyStoreName() + var _20_valueOrError8 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_UTF8.Companion_ValidUTF8Bytes_.Witness()) + _ = _20_valueOrError8 + _20_valueOrError8 = (m_UTF8.Encode(_19_logicalKeyStoreName)).MapFailure(func(coer136 func(_dafny.Sequence) m_AwsCryptographyMaterialProvidersTypes.Error) func(interface{}) interface{} { + return func(arg137 interface{}) interface{} { + return coer136(arg137.(_dafny.Sequence)) + } + }(func(_21_e _dafny.Sequence) m_AwsCryptographyMaterialProvidersTypes.Error { + return m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.Companion_Sequence_.Concatenate(_dafny.SeqOfString("Could not UTF-8 Encode Logical Key Store Name: "), _21_e)) + })) + if (_20_valueOrError8).IsFailure() { + output = (_20_valueOrError8).PropagateFailure() + return output + } + var _22_logicalKeyStoreNameBytes _dafny.Sequence + _ = _22_logicalKeyStoreNameBytes + _22_logicalKeyStoreNameBytes = (_20_valueOrError8).Extract().(_dafny.Sequence) + var _23_valueOrError9 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _23_valueOrError9 + _23_valueOrError9 = m_Wrappers.Companion_Default___.Need((((input).Dtor_branchKeyId()).Is_None()) || (((input).Dtor_branchKeyIdSupplier()).Is_None()), m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.SeqOfString("Cannot initialize keyring with both a branchKeyId and BranchKeyIdSupplier."))) + if (_23_valueOrError9).IsFailure() { + output = (_23_valueOrError9).PropagateFailure() + return output + } + var _24_valueOrError10 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _24_valueOrError10 + _24_valueOrError10 = m_Wrappers.Companion_Default___.Need((((input).Dtor_branchKeyId()).Is_Some()) || (((input).Dtor_branchKeyIdSupplier()).Is_Some()), m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.SeqOfString("Must initialize keyring with either branchKeyId or BranchKeyIdSupplier."))) + if (_24_valueOrError10).IsFailure() { + output = (_24_valueOrError10).PropagateFailure() + return output + } + var _25_keyring *m_AwsKmsHierarchicalKeyring.AwsKmsHierarchicalKeyring + _ = _25_keyring + var _nw0 *m_AwsKmsHierarchicalKeyring.AwsKmsHierarchicalKeyring = m_AwsKmsHierarchicalKeyring.New_AwsKmsHierarchicalKeyring_() + _ = _nw0 + _nw0.Ctor__((input).Dtor_keyStore(), (input).Dtor_branchKeyId(), (input).Dtor_branchKeyIdSupplier(), (input).Dtor_ttlSeconds(), _0_cmc, _6_partitionIdBytes, _22_logicalKeyStoreNameBytes, (config).Dtor_crypto()) + _25_keyring = _nw0 + output = m_Wrappers.Companion_Result_.Create_Success_(_25_keyring) + return output + return output +} +func (_static *CompanionStruct_Default___) CreateAwsKmsEcdhKeyring(config Config, input m_AwsCryptographyMaterialProvidersTypes.CreateAwsKmsEcdhKeyringInput) m_Wrappers.Result { + var output m_Wrappers.Result = m_Wrappers.Result{} + _ = output + var _0_valueOrError0 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = _0_valueOrError0 + _0_valueOrError0 = m_AwsKmsUtils.Companion_Default___.GetValidGrantTokens((input).Dtor_grantTokens()) + if (_0_valueOrError0).IsFailure() { + output = (_0_valueOrError0).PropagateFailure() + return output + } + var _1_grantTokens _dafny.Sequence + _ = _1_grantTokens + _1_grantTokens = (_0_valueOrError0).Extract().(_dafny.Sequence) + var _2_recipientPublicKey _dafny.Sequence = _dafny.EmptySeq + _ = _2_recipientPublicKey + var _3_senderPublicKey m_Wrappers.Option = m_Wrappers.Companion_Option_.Default() + _ = _3_senderPublicKey + var _4_compressedSenderPublicKey m_Wrappers.Option = m_Wrappers.Companion_Option_.Default() + _ = _4_compressedSenderPublicKey + var _source0 m_AwsCryptographyMaterialProvidersTypes.KmsEcdhStaticConfigurations = (input).Dtor_KeyAgreementScheme() + _ = _source0 + { + { + if _source0.Is_KmsPublicKeyDiscovery() { + var _5_kmsPublicKeyDiscovery m_AwsCryptographyMaterialProvidersTypes.KmsPublicKeyDiscoveryInput = _source0.Get_().(m_AwsCryptographyMaterialProvidersTypes.KmsEcdhStaticConfigurations_KmsPublicKeyDiscovery).KmsPublicKeyDiscovery + _ = _5_kmsPublicKeyDiscovery + { + var _6_valueOrError1 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.TupleOf()) + _ = _6_valueOrError1 + _6_valueOrError1 = m_AwsKmsUtils.Companion_Default___.ValidateKmsKeyId((_5_kmsPublicKeyDiscovery).Dtor_recipientKmsIdentifier()) + if (_6_valueOrError1).IsFailure() { + output = (_6_valueOrError1).PropagateFailure() + return output + } + var _7___v5 _dafny.Tuple + _ = _7___v5 + _7___v5 = (_6_valueOrError1).Extract().(_dafny.Tuple) + var _8_valueOrError2 m_Wrappers.Result = m_Wrappers.Result{} + _ = _8_valueOrError2 + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_AwsKmsUtils.Companion_Default___.GetEcdhPublicKey((input).Dtor_kmsClient(), (_5_kmsPublicKeyDiscovery).Dtor_recipientKmsIdentifier()) + _8_valueOrError2 = _out0 + if (_8_valueOrError2).IsFailure() { + output = (_8_valueOrError2).PropagateFailure() + return output + } + _2_recipientPublicKey = (_8_valueOrError2).Extract().(_dafny.Sequence) + _3_senderPublicKey = m_Wrappers.Companion_Option_.Create_None_() + _4_compressedSenderPublicKey = m_Wrappers.Companion_Option_.Create_None_() + } + goto Lmatch0 + } + } + { + var _9_kmsPrivateKeyToStaticPublicKey m_AwsCryptographyMaterialProvidersTypes.KmsPrivateKeyToStaticPublicKeyInput = _source0.Get_().(m_AwsCryptographyMaterialProvidersTypes.KmsEcdhStaticConfigurations_KmsPrivateKeyToStaticPublicKey).KmsPrivateKeyToStaticPublicKey + _ = _9_kmsPrivateKeyToStaticPublicKey + { + if ((_9_kmsPrivateKeyToStaticPublicKey).Dtor_senderPublicKey()).Is_Some() { + var _10_valueOrError3 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _10_valueOrError3 + _10_valueOrError3 = m_Wrappers.Companion_Default___.Need(m_ComAmazonawsKmsTypes.Companion_Default___.IsValid__PublicKeyType(((_9_kmsPrivateKeyToStaticPublicKey).Dtor_senderPublicKey()).Dtor_value().(_dafny.Sequence)), m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.SeqOfString("Invalid SenderPublicKey length."))) + if (_10_valueOrError3).IsFailure() { + output = (_10_valueOrError3).PropagateFailure() + return output + } + _3_senderPublicKey = m_Wrappers.Companion_Option_.Create_Some_(((_9_kmsPrivateKeyToStaticPublicKey).Dtor_senderPublicKey()).Dtor_value().(_dafny.Sequence)) + var _11_valueOrError4 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = _11_valueOrError4 + var _out1 m_Wrappers.Result + _ = _out1 + _out1 = m_RawECDHKeyring.Companion_Default___.CompressPublicKey(m_AwsCryptographyPrimitivesTypes.Companion_ECCPublicKey_.Create_ECCPublicKey_((_3_senderPublicKey).Dtor_value().(_dafny.Sequence)), (input).Dtor_curveSpec(), (config).Dtor_crypto()) + _11_valueOrError4 = _out1 + if (_11_valueOrError4).IsFailure() { + output = (_11_valueOrError4).PropagateFailure() + return output + } + var _12_compressedPKU _dafny.Sequence + _ = _12_compressedPKU + _12_compressedPKU = (_11_valueOrError4).Extract().(_dafny.Sequence) + _4_compressedSenderPublicKey = m_Wrappers.Companion_Option_.Create_Some_(_12_compressedPKU) + } else { + var _13_valueOrError5 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.TupleOf()) + _ = _13_valueOrError5 + _13_valueOrError5 = m_AwsKmsUtils.Companion_Default___.ValidateKmsKeyId((_9_kmsPrivateKeyToStaticPublicKey).Dtor_senderKmsIdentifier()) + if (_13_valueOrError5).IsFailure() { + output = (_13_valueOrError5).PropagateFailure() + return output + } + var _14___v6 _dafny.Tuple + _ = _14___v6 + _14___v6 = (_13_valueOrError5).Extract().(_dafny.Tuple) + var _15_valueOrError6 m_Wrappers.Result = m_Wrappers.Result{} + _ = _15_valueOrError6 + var _out2 m_Wrappers.Result + _ = _out2 + _out2 = m_AwsKmsUtils.Companion_Default___.GetEcdhPublicKey((input).Dtor_kmsClient(), (_9_kmsPrivateKeyToStaticPublicKey).Dtor_senderKmsIdentifier()) + _15_valueOrError6 = _out2 + if (_15_valueOrError6).IsFailure() { + output = (_15_valueOrError6).PropagateFailure() + return output + } + var _16_senderPublicKeyResponse _dafny.Sequence + _ = _16_senderPublicKeyResponse + _16_senderPublicKeyResponse = (_15_valueOrError6).Extract().(_dafny.Sequence) + var _17_valueOrError7 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = _17_valueOrError7 + var _out3 m_Wrappers.Result + _ = _out3 + _out3 = m_RawECDHKeyring.Companion_Default___.CompressPublicKey(m_AwsCryptographyPrimitivesTypes.Companion_ECCPublicKey_.Create_ECCPublicKey_(_16_senderPublicKeyResponse), (input).Dtor_curveSpec(), (config).Dtor_crypto()) + _17_valueOrError7 = _out3 + if (_17_valueOrError7).IsFailure() { + output = (_17_valueOrError7).PropagateFailure() + return output + } + var _18_compressedPKU _dafny.Sequence + _ = _18_compressedPKU + _18_compressedPKU = (_17_valueOrError7).Extract().(_dafny.Sequence) + _3_senderPublicKey = m_Wrappers.Companion_Option_.Create_Some_(_16_senderPublicKeyResponse) + _4_compressedSenderPublicKey = m_Wrappers.Companion_Option_.Create_Some_(_18_compressedPKU) + } + var _19_valueOrError8 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _19_valueOrError8 + _19_valueOrError8 = m_Wrappers.Companion_Default___.Need(m_ComAmazonawsKmsTypes.Companion_Default___.IsValid__PublicKeyType((_9_kmsPrivateKeyToStaticPublicKey).Dtor_recipientPublicKey()), m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.SeqOfString("Invalid RecipientPublicKey length."))) + if (_19_valueOrError8).IsFailure() { + output = (_19_valueOrError8).PropagateFailure() + return output + } + _2_recipientPublicKey = (_9_kmsPrivateKeyToStaticPublicKey).Dtor_recipientPublicKey() + } + } + goto Lmatch0 + } +Lmatch0: + var _20_valueOrError9 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(false) + _ = _20_valueOrError9 + var _out4 m_Wrappers.Result + _ = _out4 + _out4 = m_RawECDHKeyring.Companion_Default___.ValidatePublicKey((config).Dtor_crypto(), (input).Dtor_curveSpec(), _2_recipientPublicKey) + _20_valueOrError9 = _out4 + if (_20_valueOrError9).IsFailure() { + output = (_20_valueOrError9).PropagateFailure() + return output + } + var _21___v7 bool + _ = _21___v7 + _21___v7 = (_20_valueOrError9).Extract().(bool) + var _22_valueOrError10 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = _22_valueOrError10 + var _out5 m_Wrappers.Result + _ = _out5 + _out5 = m_RawECDHKeyring.Companion_Default___.CompressPublicKey(m_AwsCryptographyPrimitivesTypes.Companion_ECCPublicKey_.Create_ECCPublicKey_(_2_recipientPublicKey), (input).Dtor_curveSpec(), (config).Dtor_crypto()) + _22_valueOrError10 = _out5 + if (_22_valueOrError10).IsFailure() { + output = (_22_valueOrError10).PropagateFailure() + return output + } + var _23_compressedRecipientPublicKey _dafny.Sequence + _ = _23_compressedRecipientPublicKey + _23_compressedRecipientPublicKey = (_22_valueOrError10).Extract().(_dafny.Sequence) + var _24_senderKmsKeyId m_Wrappers.Option + _ = _24_senderKmsKeyId + if ((input).Dtor_KeyAgreementScheme()).Is_KmsPublicKeyDiscovery() { + _24_senderKmsKeyId = m_Wrappers.Companion_Option_.Create_None_() + } else { + _24_senderKmsKeyId = m_Wrappers.Companion_Option_.Create_Some_((((input).Dtor_KeyAgreementScheme()).Dtor_KmsPrivateKeyToStaticPublicKey()).Dtor_senderKmsIdentifier()) + } + if (_24_senderKmsKeyId).Is_Some() { + var _25_valueOrError11 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.TupleOf()) + _ = _25_valueOrError11 + _25_valueOrError11 = m_AwsKmsUtils.Companion_Default___.ValidateKmsKeyId((_24_senderKmsKeyId).Dtor_value().(_dafny.Sequence)) + if (_25_valueOrError11).IsFailure() { + output = (_25_valueOrError11).PropagateFailure() + return output + } + var _26___v8 _dafny.Tuple + _ = _26___v8 + _26___v8 = (_25_valueOrError11).Extract().(_dafny.Tuple) + } + if (_3_senderPublicKey).Is_Some() { + var _27_valueOrError12 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(false) + _ = _27_valueOrError12 + var _out6 m_Wrappers.Result + _ = _out6 + _out6 = m_RawECDHKeyring.Companion_Default___.ValidatePublicKey((config).Dtor_crypto(), (input).Dtor_curveSpec(), (_3_senderPublicKey).Dtor_value().(_dafny.Sequence)) + _27_valueOrError12 = _out6 + if (_27_valueOrError12).IsFailure() { + output = (_27_valueOrError12).PropagateFailure() + return output + } + var _28___v9 bool + _ = _28___v9 + _28___v9 = (_27_valueOrError12).Extract().(bool) + } + var _29_keyring *m_AwsKmsEcdhKeyring.AwsKmsEcdhKeyring + _ = _29_keyring + var _nw0 *m_AwsKmsEcdhKeyring.AwsKmsEcdhKeyring = m_AwsKmsEcdhKeyring.New_AwsKmsEcdhKeyring_() + _ = _nw0 + _nw0.Ctor__((input).Dtor_KeyAgreementScheme(), (input).Dtor_curveSpec(), (input).Dtor_kmsClient(), _1_grantTokens, _24_senderKmsKeyId, _3_senderPublicKey, _2_recipientPublicKey, _4_compressedSenderPublicKey, _23_compressedRecipientPublicKey, (config).Dtor_crypto()) + _29_keyring = _nw0 + output = m_Wrappers.Companion_Result_.Create_Success_(_29_keyring) + return output + return output +} +func (_static *CompanionStruct_Default___) CreateMultiKeyring(config Config, input m_AwsCryptographyMaterialProvidersTypes.CreateMultiKeyringInput) m_Wrappers.Result { + var output m_Wrappers.Result = m_Wrappers.Result{} + _ = output + var _0_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _0_valueOrError0 + _0_valueOrError0 = m_Wrappers.Companion_Default___.Need((((input).Dtor_generator()).Is_Some()) || ((_dafny.IntOfUint32(((input).Dtor_childKeyrings()).Cardinality())).Sign() == 1), m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.SeqOfString("Must include a generator keyring and/or at least one child keyring"))) + if (_0_valueOrError0).IsFailure() { + output = (_0_valueOrError0).PropagateFailure() + return output + } + var _1_keyring *m_MultiKeyring.MultiKeyring + _ = _1_keyring + var _nw0 *m_MultiKeyring.MultiKeyring = m_MultiKeyring.New_MultiKeyring_() + _ = _nw0 + _nw0.Ctor__((input).Dtor_generator(), (input).Dtor_childKeyrings()) + _1_keyring = _nw0 + output = m_Wrappers.Companion_Result_.Create_Success_(_1_keyring) + return output + return output +} +func (_static *CompanionStruct_Default___) CreateRawAesKeyring(config Config, input m_AwsCryptographyMaterialProvidersTypes.CreateRawAesKeyringInput) m_Wrappers.Result { + var output m_Wrappers.Result = m_Wrappers.Result{} + _ = output + var _0_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _0_valueOrError0 + _0_valueOrError0 = m_Wrappers.Companion_Default___.Need(!_dafny.Companion_Sequence_.Equal((input).Dtor_keyNamespace(), _dafny.SeqOfString("aws-kms")), m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.SeqOfString("keyNamespace must not be `aws-kms`"))) + if (_0_valueOrError0).IsFailure() { + output = (_0_valueOrError0).PropagateFailure() + return output + } + var _1_wrappingAlg m_AwsCryptographyPrimitivesTypes.AES__GCM + _ = _1_wrappingAlg + var _source0 m_AwsCryptographyMaterialProvidersTypes.AesWrappingAlg = (input).Dtor_wrappingAlg() + _ = _source0 + { + { + if _source0.Is_ALG__AES128__GCM__IV12__TAG16() { + _1_wrappingAlg = m_AwsCryptographyPrimitivesTypes.Companion_AES__GCM_.Create_AES__GCM_(int32(16), int32(16), int32(12)) + goto Lmatch0 + } + } + { + if _source0.Is_ALG__AES192__GCM__IV12__TAG16() { + _1_wrappingAlg = m_AwsCryptographyPrimitivesTypes.Companion_AES__GCM_.Create_AES__GCM_(int32(24), int32(16), int32(12)) + goto Lmatch0 + } + } + { + _1_wrappingAlg = m_AwsCryptographyPrimitivesTypes.Companion_AES__GCM_.Create_AES__GCM_(int32(32), int32(16), int32(12)) + } + goto Lmatch0 + } +Lmatch0: + var _2_valueOrError1 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.TupleOf(m_UTF8.Companion_ValidUTF8Bytes_.Witness(), m_UTF8.Companion_ValidUTF8Bytes_.Witness())) + _ = _2_valueOrError1 + _2_valueOrError1 = m_AwsKmsUtils.Companion_Default___.ParseKeyNamespaceAndName((input).Dtor_keyNamespace(), (input).Dtor_keyName()) + if (_2_valueOrError1).IsFailure() { + output = (_2_valueOrError1).PropagateFailure() + return output + } + var _3_namespaceAndName _dafny.Tuple + _ = _3_namespaceAndName + _3_namespaceAndName = (_2_valueOrError1).Extract().(_dafny.Tuple) + var _let_tmp_rhs0 _dafny.Tuple = _3_namespaceAndName + _ = _let_tmp_rhs0 + var _4_namespace _dafny.Sequence = (*(_let_tmp_rhs0).IndexInt(0)).(_dafny.Sequence) + _ = _4_namespace + var _5_name _dafny.Sequence = (*(_let_tmp_rhs0).IndexInt(1)).(_dafny.Sequence) + _ = _5_name + var _6_valueOrError2 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _6_valueOrError2 + _6_valueOrError2 = m_Wrappers.Companion_Default___.Need((((_dafny.IntOfUint32(((input).Dtor_wrappingKey()).Cardinality())).Cmp(_dafny.IntOfInt64(16)) == 0) || ((_dafny.IntOfUint32(((input).Dtor_wrappingKey()).Cardinality())).Cmp(_dafny.IntOfInt64(24)) == 0)) || ((_dafny.IntOfUint32(((input).Dtor_wrappingKey()).Cardinality())).Cmp(_dafny.IntOfInt64(32)) == 0), m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.SeqOfString("Invalid wrapping key length"))) + if (_6_valueOrError2).IsFailure() { + output = (_6_valueOrError2).PropagateFailure() + return output + } + var _7_valueOrError3 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _7_valueOrError3 + _7_valueOrError3 = m_Wrappers.Companion_Default___.Need((_dafny.IntOfUint32(((input).Dtor_wrappingKey()).Cardinality())).Cmp(_dafny.IntOfInt32((_1_wrappingAlg).Dtor_keyLength())) == 0, m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.SeqOfString("Wrapping key length does not match specified wrapping algorithm"))) + if (_7_valueOrError3).IsFailure() { + output = (_7_valueOrError3).PropagateFailure() + return output + } + var _8_keyring *m_RawAESKeyring.RawAESKeyring + _ = _8_keyring + var _nw0 *m_RawAESKeyring.RawAESKeyring = m_RawAESKeyring.New_RawAESKeyring_() + _ = _nw0 + _nw0.Ctor__(_4_namespace, _5_name, (input).Dtor_wrappingKey(), _1_wrappingAlg, (config).Dtor_crypto()) + _8_keyring = _nw0 + output = m_Wrappers.Companion_Result_.Create_Success_(_8_keyring) + return output + return output +} +func (_static *CompanionStruct_Default___) CreateRawRsaKeyring(config Config, input m_AwsCryptographyMaterialProvidersTypes.CreateRawRsaKeyringInput) m_Wrappers.Result { + var output m_Wrappers.Result = m_Wrappers.Result{} + _ = output + var _0_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _0_valueOrError0 + _0_valueOrError0 = m_Wrappers.Companion_Default___.Need(!_dafny.Companion_Sequence_.Equal((input).Dtor_keyNamespace(), _dafny.SeqOfString("aws-kms")), m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.SeqOfString("keyNamespace must not be `aws-kms`"))) + if (_0_valueOrError0).IsFailure() { + output = (_0_valueOrError0).PropagateFailure() + return output + } + var _1_valueOrError1 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _1_valueOrError1 + _1_valueOrError1 = m_Wrappers.Companion_Default___.Need((((input).Dtor_publicKey()).Is_Some()) || (((input).Dtor_privateKey()).Is_Some()), m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.SeqOfString("A publicKey or a privateKey is required"))) + if (_1_valueOrError1).IsFailure() { + output = (_1_valueOrError1).PropagateFailure() + return output + } + var _2_padding m_AwsCryptographyPrimitivesTypes.RSAPaddingMode + _ = _2_padding + var _source0 m_AwsCryptographyMaterialProvidersTypes.PaddingScheme = (input).Dtor_paddingScheme() + _ = _source0 + { + { + if _source0.Is_PKCS1() { + _2_padding = m_AwsCryptographyPrimitivesTypes.Companion_RSAPaddingMode_.Create_PKCS1_() + goto Lmatch0 + } + } + { + if _source0.Is_OAEP__SHA1__MGF1() { + _2_padding = m_AwsCryptographyPrimitivesTypes.Companion_RSAPaddingMode_.Create_OAEP__SHA1_() + goto Lmatch0 + } + } + { + if _source0.Is_OAEP__SHA256__MGF1() { + _2_padding = m_AwsCryptographyPrimitivesTypes.Companion_RSAPaddingMode_.Create_OAEP__SHA256_() + goto Lmatch0 + } + } + { + if _source0.Is_OAEP__SHA384__MGF1() { + _2_padding = m_AwsCryptographyPrimitivesTypes.Companion_RSAPaddingMode_.Create_OAEP__SHA384_() + goto Lmatch0 + } + } + { + _2_padding = m_AwsCryptographyPrimitivesTypes.Companion_RSAPaddingMode_.Create_OAEP__SHA512_() + } + goto Lmatch0 + } +Lmatch0: + var _3_valueOrError2 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.TupleOf(m_UTF8.Companion_ValidUTF8Bytes_.Witness(), m_UTF8.Companion_ValidUTF8Bytes_.Witness())) + _ = _3_valueOrError2 + _3_valueOrError2 = m_AwsKmsUtils.Companion_Default___.ParseKeyNamespaceAndName((input).Dtor_keyNamespace(), (input).Dtor_keyName()) + if (_3_valueOrError2).IsFailure() { + output = (_3_valueOrError2).PropagateFailure() + return output + } + var _4_namespaceAndName _dafny.Tuple + _ = _4_namespaceAndName + _4_namespaceAndName = (_3_valueOrError2).Extract().(_dafny.Tuple) + var _let_tmp_rhs0 _dafny.Tuple = _4_namespaceAndName + _ = _let_tmp_rhs0 + var _5_namespace _dafny.Sequence = (*(_let_tmp_rhs0).IndexInt(0)).(_dafny.Sequence) + _ = _5_namespace + var _6_name _dafny.Sequence = (*(_let_tmp_rhs0).IndexInt(1)).(_dafny.Sequence) + _ = _6_name + var _7_keyring *m_RawRSAKeyring.RawRSAKeyring + _ = _7_keyring + var _nw0 *m_RawRSAKeyring.RawRSAKeyring = m_RawRSAKeyring.New_RawRSAKeyring_() + _ = _nw0 + _nw0.Ctor__(_5_namespace, _6_name, (input).Dtor_publicKey(), (input).Dtor_privateKey(), _2_padding, (config).Dtor_crypto()) + _7_keyring = _nw0 + output = m_Wrappers.Companion_Result_.Create_Success_(_7_keyring) + return output + return output +} +func (_static *CompanionStruct_Default___) CreateRawEcdhKeyring(config Config, input m_AwsCryptographyMaterialProvidersTypes.CreateRawEcdhKeyringInput) m_Wrappers.Result { + var output m_Wrappers.Result = m_Wrappers.Result{} + _ = output + var _0_recipientPublicKey _dafny.Sequence = _dafny.EmptySeq + _ = _0_recipientPublicKey + var _1_senderPrivateKey m_Wrappers.Option = m_Wrappers.Companion_Option_.Default() + _ = _1_senderPrivateKey + var _2_senderPublicKey m_Wrappers.Option = m_Wrappers.Companion_Option_.Default() + _ = _2_senderPublicKey + var _3_compressedSenderPublicKey m_Wrappers.Option = m_Wrappers.Companion_Option_.Default() + _ = _3_compressedSenderPublicKey + var _source0 m_AwsCryptographyMaterialProvidersTypes.RawEcdhStaticConfigurations = (input).Dtor_KeyAgreementScheme() + _ = _source0 + { + { + if _source0.Is_RawPrivateKeyToStaticPublicKey() { + var _4_rawPrivateKeyToStaticPublicKey m_AwsCryptographyMaterialProvidersTypes.RawPrivateKeyToStaticPublicKeyInput = _source0.Get_().(m_AwsCryptographyMaterialProvidersTypes.RawEcdhStaticConfigurations_RawPrivateKeyToStaticPublicKey).RawPrivateKeyToStaticPublicKey + _ = _4_rawPrivateKeyToStaticPublicKey + { + _0_recipientPublicKey = (_4_rawPrivateKeyToStaticPublicKey).Dtor_recipientPublicKey() + _1_senderPrivateKey = m_Wrappers.Companion_Option_.Create_Some_((_4_rawPrivateKeyToStaticPublicKey).Dtor_senderStaticPrivateKey()) + var _5_valueOrError0 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = _5_valueOrError0 + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_Utils.Companion_Default___.GetPublicKey((input).Dtor_curveSpec(), m_AwsCryptographyPrimitivesTypes.Companion_ECCPrivateKey_.Create_ECCPrivateKey_((_1_senderPrivateKey).Dtor_value().(_dafny.Sequence)), (config).Dtor_crypto()) + _5_valueOrError0 = _out0 + if (_5_valueOrError0).IsFailure() { + output = (_5_valueOrError0).PropagateFailure() + return output + } + var _6_reproducedPublicKey _dafny.Sequence + _ = _6_reproducedPublicKey + _6_reproducedPublicKey = (_5_valueOrError0).Extract().(_dafny.Sequence) + var _7_valueOrError1 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(false) + _ = _7_valueOrError1 + var _out1 m_Wrappers.Result + _ = _out1 + _out1 = m_RawECDHKeyring.Companion_Default___.ValidatePublicKey((config).Dtor_crypto(), (input).Dtor_curveSpec(), _6_reproducedPublicKey) + _7_valueOrError1 = _out1 + if (_7_valueOrError1).IsFailure() { + output = (_7_valueOrError1).PropagateFailure() + return output + } + var _8___v10 bool + _ = _8___v10 + _8___v10 = (_7_valueOrError1).Extract().(bool) + _2_senderPublicKey = m_Wrappers.Companion_Option_.Create_Some_(_6_reproducedPublicKey) + var _9_valueOrError2 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = _9_valueOrError2 + var _out2 m_Wrappers.Result + _ = _out2 + _out2 = m_RawECDHKeyring.Companion_Default___.CompressPublicKey(m_AwsCryptographyPrimitivesTypes.Companion_ECCPublicKey_.Create_ECCPublicKey_(_6_reproducedPublicKey), (input).Dtor_curveSpec(), (config).Dtor_crypto()) + _9_valueOrError2 = _out2 + if (_9_valueOrError2).IsFailure() { + output = (_9_valueOrError2).PropagateFailure() + return output + } + var _10_compressedSenderPublicKey_q _dafny.Sequence + _ = _10_compressedSenderPublicKey_q + _10_compressedSenderPublicKey_q = (_9_valueOrError2).Extract().(_dafny.Sequence) + _3_compressedSenderPublicKey = m_Wrappers.Companion_Option_.Create_Some_(_10_compressedSenderPublicKey_q) + } + goto Lmatch0 + } + } + { + if _source0.Is_EphemeralPrivateKeyToStaticPublicKey() { + var _11_ephemeralPrivateKeyToStaticPublicKey m_AwsCryptographyMaterialProvidersTypes.EphemeralPrivateKeyToStaticPublicKeyInput = _source0.Get_().(m_AwsCryptographyMaterialProvidersTypes.RawEcdhStaticConfigurations_EphemeralPrivateKeyToStaticPublicKey).EphemeralPrivateKeyToStaticPublicKey + _ = _11_ephemeralPrivateKeyToStaticPublicKey + { + _0_recipientPublicKey = (_11_ephemeralPrivateKeyToStaticPublicKey).Dtor_recipientPublicKey() + _1_senderPrivateKey = m_Wrappers.Companion_Option_.Create_None_() + _2_senderPublicKey = m_Wrappers.Companion_Option_.Create_None_() + _3_compressedSenderPublicKey = m_Wrappers.Companion_Option_.Create_None_() + } + goto Lmatch0 + } + } + { + var _12_publicKeyDiscovery m_AwsCryptographyMaterialProvidersTypes.PublicKeyDiscoveryInput = _source0.Get_().(m_AwsCryptographyMaterialProvidersTypes.RawEcdhStaticConfigurations_PublicKeyDiscovery).PublicKeyDiscovery + _ = _12_publicKeyDiscovery + { + var _13_valueOrError3 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = _13_valueOrError3 + var _out3 m_Wrappers.Result + _ = _out3 + _out3 = m_Utils.Companion_Default___.GetPublicKey((input).Dtor_curveSpec(), m_AwsCryptographyPrimitivesTypes.Companion_ECCPrivateKey_.Create_ECCPrivateKey_((_12_publicKeyDiscovery).Dtor_recipientStaticPrivateKey()), (config).Dtor_crypto()) + _13_valueOrError3 = _out3 + if (_13_valueOrError3).IsFailure() { + output = (_13_valueOrError3).PropagateFailure() + return output + } + var _14_reproducedPublicKey _dafny.Sequence + _ = _14_reproducedPublicKey + _14_reproducedPublicKey = (_13_valueOrError3).Extract().(_dafny.Sequence) + _0_recipientPublicKey = _14_reproducedPublicKey + _1_senderPrivateKey = m_Wrappers.Companion_Option_.Create_None_() + _2_senderPublicKey = m_Wrappers.Companion_Option_.Create_None_() + _3_compressedSenderPublicKey = m_Wrappers.Companion_Option_.Create_None_() + } + } + goto Lmatch0 + } +Lmatch0: + var _15_valueOrError4 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = _15_valueOrError4 + var _out4 m_Wrappers.Result + _ = _out4 + _out4 = m_RawECDHKeyring.Companion_Default___.CompressPublicKey(m_AwsCryptographyPrimitivesTypes.Companion_ECCPublicKey_.Create_ECCPublicKey_(_0_recipientPublicKey), (input).Dtor_curveSpec(), (config).Dtor_crypto()) + _15_valueOrError4 = _out4 + if (_15_valueOrError4).IsFailure() { + output = (_15_valueOrError4).PropagateFailure() + return output + } + var _16_compressedRecipientPublicKey _dafny.Sequence + _ = _16_compressedRecipientPublicKey + _16_compressedRecipientPublicKey = (_15_valueOrError4).Extract().(_dafny.Sequence) + var _17_valueOrError5 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(false) + _ = _17_valueOrError5 + var _out5 m_Wrappers.Result + _ = _out5 + _out5 = m_RawECDHKeyring.Companion_Default___.ValidatePublicKey((config).Dtor_crypto(), (input).Dtor_curveSpec(), _0_recipientPublicKey) + _17_valueOrError5 = _out5 + if (_17_valueOrError5).IsFailure() { + output = (_17_valueOrError5).PropagateFailure() + return output + } + var _18___v11 bool + _ = _18___v11 + _18___v11 = (_17_valueOrError5).Extract().(bool) + if (_2_senderPublicKey).Is_Some() { + var _19_valueOrError6 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(false) + _ = _19_valueOrError6 + var _out6 m_Wrappers.Result + _ = _out6 + _out6 = m_RawECDHKeyring.Companion_Default___.ValidatePublicKey((config).Dtor_crypto(), (input).Dtor_curveSpec(), (_2_senderPublicKey).Dtor_value().(_dafny.Sequence)) + _19_valueOrError6 = _out6 + if (_19_valueOrError6).IsFailure() { + output = (_19_valueOrError6).PropagateFailure() + return output + } + var _20___v12 bool + _ = _20___v12 + _20___v12 = (_19_valueOrError6).Extract().(bool) + var _21_valueOrError7 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _21_valueOrError7 + _21_valueOrError7 = m_Wrappers.Companion_Default___.Need(m_RawECDHKeyring.Companion_Default___.ValidPublicKeyLength((_2_senderPublicKey).Dtor_value().(_dafny.Sequence)), m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.SeqOfString("Invalid sender public key length"))) + if (_21_valueOrError7).IsFailure() { + output = (_21_valueOrError7).PropagateFailure() + return output + } + } + var _22_valueOrError8 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _22_valueOrError8 + _22_valueOrError8 = m_Wrappers.Companion_Default___.Need(m_RawECDHKeyring.Companion_Default___.ValidPublicKeyLength(_0_recipientPublicKey), m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.SeqOfString("Invalid recipient public key length"))) + if (_22_valueOrError8).IsFailure() { + output = (_22_valueOrError8).PropagateFailure() + return output + } + var _23_keyring *m_RawECDHKeyring.RawEcdhKeyring + _ = _23_keyring + var _nw0 *m_RawECDHKeyring.RawEcdhKeyring = m_RawECDHKeyring.New_RawEcdhKeyring_() + _ = _nw0 + _nw0.Ctor__((input).Dtor_KeyAgreementScheme(), (input).Dtor_curveSpec(), _1_senderPrivateKey, _2_senderPublicKey, _0_recipientPublicKey, _3_compressedSenderPublicKey, _16_compressedRecipientPublicKey, (config).Dtor_crypto()) + _23_keyring = _nw0 + output = m_Wrappers.Companion_Result_.Create_Success_(_23_keyring) + return output + return output +} +func (_static *CompanionStruct_Default___) CreateAwsKmsRsaKeyring(config Config, input m_AwsCryptographyMaterialProvidersTypes.CreateAwsKmsRsaKeyringInput) m_Wrappers.Result { + var output m_Wrappers.Result = m_Wrappers.Result{} + _ = output + var _0_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _0_valueOrError0 + _0_valueOrError0 = m_Wrappers.Companion_Default___.Need((((input).Dtor_publicKey()).Is_Some()) || (((input).Dtor_kmsClient()).Is_Some()), m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.SeqOfString("A publicKey or a kmsClient is required"))) + if (_0_valueOrError0).IsFailure() { + output = (_0_valueOrError0).PropagateFailure() + return output + } + var _1_valueOrError1 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _1_valueOrError1 + _1_valueOrError1 = m_Wrappers.Companion_Default___.Need((((input).Dtor_encryptionAlgorithm()).Is_RSAES__OAEP__SHA__1()) || (((input).Dtor_encryptionAlgorithm()).Is_RSAES__OAEP__SHA__256()), m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.SeqOfString("Unsupported EncryptionAlgorithmSpec"))) + if (_1_valueOrError1).IsFailure() { + output = (_1_valueOrError1).PropagateFailure() + return output + } + var _2_valueOrError2 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _2_valueOrError2 + _2_valueOrError2 = m_Wrappers.Companion_Default___.Need((m_ComAmazonawsKmsTypes.Companion_Default___.IsValid__KeyIdType((input).Dtor_kmsKeyId())) && ((m_AwsArnParsing.Companion_Default___.ParseAwsKmsArn((input).Dtor_kmsKeyId())).Is_Success()), m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.SeqOfString("Kms Key ID must be a KMS Key ARN"))) + if (_2_valueOrError2).IsFailure() { + output = (_2_valueOrError2).PropagateFailure() + return output + } + if ((input).Dtor_publicKey()).Is_Some() { + var _3_lengthOutputRes m_Wrappers.Result + _ = _3_lengthOutputRes + _3_lengthOutputRes = ((config).Dtor_crypto()).GetRSAKeyModulusLength(m_AwsCryptographyPrimitivesTypes.Companion_GetRSAKeyModulusLengthInput_.Create_GetRSAKeyModulusLengthInput_(((input).Dtor_publicKey()).Dtor_value().(_dafny.Sequence))) + var _4_valueOrError3 m_Wrappers.Result = m_Wrappers.Result{} + _ = _4_valueOrError3 + _4_valueOrError3 = (_3_lengthOutputRes).MapFailure(func(coer137 func(m_AwsCryptographyPrimitivesTypes.Error) m_AwsCryptographyMaterialProvidersTypes.Error) func(interface{}) interface{} { + return func(arg138 interface{}) interface{} { + return coer137(arg138.(m_AwsCryptographyPrimitivesTypes.Error)) + } + }(func(_5_e m_AwsCryptographyPrimitivesTypes.Error) m_AwsCryptographyMaterialProvidersTypes.Error { + return m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographyPrimitives_(_5_e) + })) + if (_4_valueOrError3).IsFailure() { + output = (_4_valueOrError3).PropagateFailure() + return output + } + var _6_lengthOutput m_AwsCryptographyPrimitivesTypes.GetRSAKeyModulusLengthOutput + _ = _6_lengthOutput + _6_lengthOutput = (_4_valueOrError3).Extract().(m_AwsCryptographyPrimitivesTypes.GetRSAKeyModulusLengthOutput) + var _7_valueOrError4 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _7_valueOrError4 + _7_valueOrError4 = m_Wrappers.Companion_Default___.Need(((_6_lengthOutput).Dtor_length()) >= (m_AwsKmsRsaKeyring.Companion_Default___.MIN__KMS__RSA__KEY__LEN()), m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.SeqOfString("Invalid public key length"))) + if (_7_valueOrError4).IsFailure() { + output = (_7_valueOrError4).PropagateFailure() + return output + } + } + var _8_valueOrError5 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.TupleOf()) + _ = _8_valueOrError5 + _8_valueOrError5 = m_AwsKmsUtils.Companion_Default___.ValidateKmsKeyId((input).Dtor_kmsKeyId()) + if (_8_valueOrError5).IsFailure() { + output = (_8_valueOrError5).PropagateFailure() + return output + } + var _9___v13 _dafny.Tuple + _ = _9___v13 + _9___v13 = (_8_valueOrError5).Extract().(_dafny.Tuple) + var _10_valueOrError6 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = _10_valueOrError6 + _10_valueOrError6 = m_AwsKmsUtils.Companion_Default___.GetValidGrantTokens((input).Dtor_grantTokens()) + if (_10_valueOrError6).IsFailure() { + output = (_10_valueOrError6).PropagateFailure() + return output + } + var _11_grantTokens _dafny.Sequence + _ = _11_grantTokens + _11_grantTokens = (_10_valueOrError6).Extract().(_dafny.Sequence) + var _12_keyring *m_AwsKmsRsaKeyring.AwsKmsRsaKeyring + _ = _12_keyring + var _nw0 *m_AwsKmsRsaKeyring.AwsKmsRsaKeyring = m_AwsKmsRsaKeyring.New_AwsKmsRsaKeyring_() + _ = _nw0 + _nw0.Ctor__((input).Dtor_publicKey(), (input).Dtor_kmsKeyId(), (input).Dtor_encryptionAlgorithm(), (input).Dtor_kmsClient(), (config).Dtor_crypto(), _11_grantTokens) + _12_keyring = _nw0 + output = m_Wrappers.Companion_Result_.Create_Success_(_12_keyring) + return output + return output +} +func (_static *CompanionStruct_Default___) CreateDefaultCryptographicMaterialsManager(config Config, input m_AwsCryptographyMaterialProvidersTypes.CreateDefaultCryptographicMaterialsManagerInput) m_Wrappers.Result { + var output m_Wrappers.Result = m_Wrappers.Result{} + _ = output + var _0_cmm *m_DefaultCMM.DefaultCMM + _ = _0_cmm + var _nw0 *m_DefaultCMM.DefaultCMM = m_DefaultCMM.New_DefaultCMM_() + _ = _nw0 + _nw0.OfKeyring((input).Dtor_keyring(), (config).Dtor_crypto()) + _0_cmm = _nw0 + output = m_Wrappers.Companion_Result_.Create_Success_(_0_cmm) + return output + return output +} +func (_static *CompanionStruct_Default___) CmpError(s _dafny.Sequence) m_AwsCryptographyMaterialProvidersTypes.Error { + return m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(s) +} +func (_static *CompanionStruct_Default___) CreateRequiredEncryptionContextCMM(config Config, input m_AwsCryptographyMaterialProvidersTypes.CreateRequiredEncryptionContextCMMInput) m_Wrappers.Result { + var output m_Wrappers.Result = m_Wrappers.Result{} + _ = output + var _0_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _0_valueOrError0 + _0_valueOrError0 = m_Wrappers.Companion_Default___.Need((((input).Dtor_underlyingCMM()).Is_Some()) && (((input).Dtor_keyring()).Is_None()), Companion_Default___.CmpError(_dafny.SeqOfString("CreateRequiredEncryptionContextCMM currently only supports cmm."))) + if (_0_valueOrError0).IsFailure() { + output = (_0_valueOrError0).PropagateFailure() + return output + } + var _1_keySet _dafny.Set + _ = _1_keySet + _1_keySet = func() _dafny.Set { + var _coll0 = _dafny.NewBuilder() + _ = _coll0 + for _iter10 := _dafny.Iterate(((input).Dtor_requiredEncryptionContextKeys()).Elements()); ; { + _compr_0, _ok10 := _iter10() + if !_ok10 { + break + } + var _2_k _dafny.Sequence + _2_k = interface{}(_compr_0).(_dafny.Sequence) + if m_UTF8.Companion_ValidUTF8Bytes_.Is_(_2_k) { + if _dafny.Companion_Sequence_.Contains((input).Dtor_requiredEncryptionContextKeys(), _2_k) { + _coll0.Add(_2_k) + } + } + } + return _coll0.ToSet() + }() + var _3_valueOrError1 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _3_valueOrError1 + _3_valueOrError1 = m_Wrappers.Companion_Default___.Need(((_1_keySet).Cardinality()).Sign() == 1, Companion_Default___.CmpError(_dafny.SeqOfString("RequiredEncryptionContextCMM needs at least one requiredEncryptionContextKey."))) + if (_3_valueOrError1).IsFailure() { + output = (_3_valueOrError1).PropagateFailure() + return output + } + var _4_cmm *m_RequiredEncryptionContextCMM.RequiredEncryptionContextCMM + _ = _4_cmm + var _nw0 *m_RequiredEncryptionContextCMM.RequiredEncryptionContextCMM = m_RequiredEncryptionContextCMM.New_RequiredEncryptionContextCMM_() + _ = _nw0 + _nw0.Ctor__(m_AwsCryptographyMaterialProvidersTypes.Companion_ICryptographicMaterialsManager_.CastTo_(((input).Dtor_underlyingCMM()).Dtor_value()), _1_keySet) + _4_cmm = _nw0 + output = m_Wrappers.Companion_Result_.Create_Success_(_4_cmm) + return output + return output +} +func (_static *CompanionStruct_Default___) CreateCryptographicMaterialsCache(config Config, input m_AwsCryptographyMaterialProvidersTypes.CreateCryptographicMaterialsCacheInput) m_Wrappers.Result { + var output m_Wrappers.Result = m_Wrappers.Result{} + _ = output + var _source0 m_AwsCryptographyMaterialProvidersTypes.CacheType = (input).Dtor_cache() + _ = _source0 + { + { + if _source0.Is_Default() { + var _0_c m_AwsCryptographyMaterialProvidersTypes.DefaultCache = _source0.Get_().(m_AwsCryptographyMaterialProvidersTypes.CacheType_Default).Default + _ = _0_c + var _1_cache m_AwsCryptographyMaterialProvidersTypes.StormTrackingCache + _ = _1_cache + var _2_dt__update__tmp_h0 m_AwsCryptographyMaterialProvidersTypes.StormTrackingCache = m_StormTracker.Companion_Default___.DefaultStorm() + _ = _2_dt__update__tmp_h0 + var _3_dt__update_hentryCapacity_h0 int32 = (_0_c).Dtor_entryCapacity() + _ = _3_dt__update_hentryCapacity_h0 + _1_cache = m_AwsCryptographyMaterialProvidersTypes.Companion_StormTrackingCache_.Create_StormTrackingCache_(_3_dt__update_hentryCapacity_h0, (_2_dt__update__tmp_h0).Dtor_entryPruningTailSize(), (_2_dt__update__tmp_h0).Dtor_gracePeriod(), (_2_dt__update__tmp_h0).Dtor_graceInterval(), (_2_dt__update__tmp_h0).Dtor_fanOut(), (_2_dt__update__tmp_h0).Dtor_inFlightTTL(), (_2_dt__update__tmp_h0).Dtor_sleepMilli(), (_2_dt__update__tmp_h0).Dtor_timeUnits()) + var _4_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _4_valueOrError0 + _4_valueOrError0 = m_StormTracker.Companion_Default___.CheckSettings(_1_cache) + if (_4_valueOrError0).IsFailure() { + output = (_4_valueOrError0).PropagateFailure() + return output + } + var _5_cmc *m_StormTracker.StormTracker + _ = _5_cmc + var _nw0 *m_StormTracker.StormTracker = m_StormTracker.New_StormTracker_() + _ = _nw0 + _nw0.Ctor__(_1_cache) + _5_cmc = _nw0 + var _6_synCmc *m_StormTrackingCMC.StormTrackingCMC + _ = _6_synCmc + var _nw1 *m_StormTrackingCMC.StormTrackingCMC = m_StormTrackingCMC.New_StormTrackingCMC_(_5_cmc) + _ = _nw1 + _6_synCmc = _nw1 + output = m_Wrappers.Companion_Result_.Create_Success_(_6_synCmc) + return output + goto Lmatch0 + } + } + { + if _source0.Is_No() { + var _7_cmc *m_LocalCMC.LocalCMC + _ = _7_cmc + var _nw2 *m_LocalCMC.LocalCMC = m_LocalCMC.New_LocalCMC_() + _ = _nw2 + _nw2.Ctor__(_dafny.Zero, _dafny.One) + _7_cmc = _nw2 + output = m_Wrappers.Companion_Result_.Create_Success_(_7_cmc) + return output + goto Lmatch0 + } + } + { + if _source0.Is_SingleThreaded() { + var _8_c m_AwsCryptographyMaterialProvidersTypes.SingleThreadedCache = _source0.Get_().(m_AwsCryptographyMaterialProvidersTypes.CacheType_SingleThreaded).SingleThreaded + _ = _8_c + var _9_cmc *m_LocalCMC.LocalCMC + _ = _9_cmc + var _nw3 *m_LocalCMC.LocalCMC = m_LocalCMC.New_LocalCMC_() + _ = _nw3 + _nw3.Ctor__(_dafny.IntOfInt32((_8_c).Dtor_entryCapacity()), _dafny.IntOfInt32((Companion_Default___.OptionalCountingNumber((_8_c).Dtor_entryPruningTailSize())).UnwrapOr(int32(1)).(int32))) + _9_cmc = _nw3 + output = m_Wrappers.Companion_Result_.Create_Success_(_9_cmc) + return output + goto Lmatch0 + } + } + { + if _source0.Is_MultiThreaded() { + var _10_c m_AwsCryptographyMaterialProvidersTypes.MultiThreadedCache = _source0.Get_().(m_AwsCryptographyMaterialProvidersTypes.CacheType_MultiThreaded).MultiThreaded + _ = _10_c + var _11_cmc *m_LocalCMC.LocalCMC + _ = _11_cmc + var _nw4 *m_LocalCMC.LocalCMC = m_LocalCMC.New_LocalCMC_() + _ = _nw4 + _nw4.Ctor__(_dafny.IntOfInt32((_10_c).Dtor_entryCapacity()), _dafny.IntOfInt32((Companion_Default___.OptionalCountingNumber((_10_c).Dtor_entryPruningTailSize())).UnwrapOr(int32(1)).(int32))) + _11_cmc = _nw4 + var _12_synCmc *m_SynchronizedLocalCMC.SynchronizedLocalCMC + _ = _12_synCmc + var _nw5 *m_SynchronizedLocalCMC.SynchronizedLocalCMC = m_SynchronizedLocalCMC.New_SynchronizedLocalCMC_(_11_cmc) + _ = _nw5 + _12_synCmc = _nw5 + output = m_Wrappers.Companion_Result_.Create_Success_(_12_synCmc) + return output + goto Lmatch0 + } + } + { + if _source0.Is_StormTracking() { + var _13_c m_AwsCryptographyMaterialProvidersTypes.StormTrackingCache = _source0.Get_().(m_AwsCryptographyMaterialProvidersTypes.CacheType_StormTracking).StormTracking + _ = _13_c + var _14_cache m_AwsCryptographyMaterialProvidersTypes.StormTrackingCache + _ = _14_cache + var _15_dt__update__tmp_h1 m_AwsCryptographyMaterialProvidersTypes.StormTrackingCache = _13_c + _ = _15_dt__update__tmp_h1 + var _16_dt__update_hentryPruningTailSize_h0 m_Wrappers.Option = Companion_Default___.OptionalCountingNumber((_13_c).Dtor_entryPruningTailSize()) + _ = _16_dt__update_hentryPruningTailSize_h0 + _14_cache = m_AwsCryptographyMaterialProvidersTypes.Companion_StormTrackingCache_.Create_StormTrackingCache_((_15_dt__update__tmp_h1).Dtor_entryCapacity(), _16_dt__update_hentryPruningTailSize_h0, (_15_dt__update__tmp_h1).Dtor_gracePeriod(), (_15_dt__update__tmp_h1).Dtor_graceInterval(), (_15_dt__update__tmp_h1).Dtor_fanOut(), (_15_dt__update__tmp_h1).Dtor_inFlightTTL(), (_15_dt__update__tmp_h1).Dtor_sleepMilli(), (_15_dt__update__tmp_h1).Dtor_timeUnits()) + var _17_valueOrError1 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _17_valueOrError1 + _17_valueOrError1 = m_StormTracker.Companion_Default___.CheckSettings(_14_cache) + if (_17_valueOrError1).IsFailure() { + output = (_17_valueOrError1).PropagateFailure() + return output + } + var _18_cmc *m_StormTracker.StormTracker + _ = _18_cmc + var _nw6 *m_StormTracker.StormTracker = m_StormTracker.New_StormTracker_() + _ = _nw6 + _nw6.Ctor__(_14_cache) + _18_cmc = _nw6 + var _19_synCmc *m_StormTrackingCMC.StormTrackingCMC + _ = _19_synCmc + var _nw7 *m_StormTrackingCMC.StormTrackingCMC = m_StormTrackingCMC.New_StormTrackingCMC_(_18_cmc) + _ = _nw7 + _19_synCmc = _nw7 + output = m_Wrappers.Companion_Result_.Create_Success_(_19_synCmc) + return output + goto Lmatch0 + } + } + { + var _20_c m_AwsCryptographyMaterialProvidersTypes.ICryptographicMaterialsCache = _source0.Get_().(m_AwsCryptographyMaterialProvidersTypes.CacheType_Shared).Shared + _ = _20_c + var _21_exception m_AwsCryptographyMaterialProvidersTypes.Error + _ = _21_exception + _21_exception = m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.SeqOfString("CreateCryptographicMaterialsCache should never be called with Shared CacheType.")) + output = m_Wrappers.Companion_Result_.Create_Failure_(_21_exception) + return output + } + goto Lmatch0 + } +Lmatch0: + return output +} +func (_static *CompanionStruct_Default___) OptionalCountingNumber(c m_Wrappers.Option) m_Wrappers.Option { + if ((c).Is_Some()) && (((c).Dtor_value().(int32)) <= (int32(0))) { + return m_Wrappers.Companion_Option_.Create_None_() + } else { + return c + } +} +func (_static *CompanionStruct_Default___) CreateDefaultClientSupplier(config Config, input m_AwsCryptographyMaterialProvidersTypes.CreateDefaultClientSupplierInput) m_Wrappers.Result { + var output m_Wrappers.Result = m_Wrappers.Result{} + _ = output + var _0_clientSupplier *m_DefaultClientSupplier.DefaultClientSupplier + _ = _0_clientSupplier + var _nw0 *m_DefaultClientSupplier.DefaultClientSupplier = m_DefaultClientSupplier.New_DefaultClientSupplier_() + _ = _nw0 + _nw0.Ctor__() + _0_clientSupplier = _nw0 + output = m_Wrappers.Companion_Result_.Create_Success_(_0_clientSupplier) + return output + return output +} +func (_static *CompanionStruct_Default___) InitializeEncryptionMaterials(config Config, input m_AwsCryptographyMaterialProvidersTypes.InitializeEncryptionMaterialsInput) m_Wrappers.Result { + return m_Materials.Companion_Default___.InitializeEncryptionMaterials(input) +} +func (_static *CompanionStruct_Default___) InitializeDecryptionMaterials(config Config, input m_AwsCryptographyMaterialProvidersTypes.InitializeDecryptionMaterialsInput) m_Wrappers.Result { + return m_Materials.Companion_Default___.InitializeDecryptionMaterials(input) +} +func (_static *CompanionStruct_Default___) ValidEncryptionMaterialsTransition(config Config, input m_AwsCryptographyMaterialProvidersTypes.ValidEncryptionMaterialsTransitionInput) m_Wrappers.Result { + var _0_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need(m_Materials.Companion_Default___.ValidEncryptionMaterialsTransition((input).Dtor_start(), (input).Dtor_stop()), m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_InvalidEncryptionMaterialsTransition_(_dafny.SeqOfString("Invalid Encryption Materials Transition"))) + _ = _0_valueOrError0 + if (_0_valueOrError0).IsFailure() { + return (_0_valueOrError0).PropagateFailure() + } else { + return m_Wrappers.Companion_Result_.Create_Success_(_dafny.TupleOf()) + } +} +func (_static *CompanionStruct_Default___) ValidDecryptionMaterialsTransition(config Config, input m_AwsCryptographyMaterialProvidersTypes.ValidDecryptionMaterialsTransitionInput) m_Wrappers.Result { + var _0_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need(m_Materials.Companion_Default___.DecryptionMaterialsTransitionIsValid((input).Dtor_start(), (input).Dtor_stop()), m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_InvalidDecryptionMaterialsTransition_(_dafny.SeqOfString("Invalid Decryption Materials Transition"))) + _ = _0_valueOrError0 + if (_0_valueOrError0).IsFailure() { + return (_0_valueOrError0).PropagateFailure() + } else { + return m_Wrappers.Companion_Result_.Create_Success_(_dafny.TupleOf()) + } +} +func (_static *CompanionStruct_Default___) EncryptionMaterialsHasPlaintextDataKey(config Config, input m_AwsCryptographyMaterialProvidersTypes.EncryptionMaterials) m_Wrappers.Result { + var _0_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need(m_Materials.Companion_Default___.EncryptionMaterialsHasPlaintextDataKey(input), m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_InvalidDecryptionMaterials_(_dafny.SeqOfString("Invalid Encryption Materials"))) + _ = _0_valueOrError0 + if (_0_valueOrError0).IsFailure() { + return (_0_valueOrError0).PropagateFailure() + } else { + return m_Wrappers.Companion_Result_.Create_Success_(_dafny.TupleOf()) + } +} +func (_static *CompanionStruct_Default___) DecryptionMaterialsWithPlaintextDataKey(config Config, input m_AwsCryptographyMaterialProvidersTypes.DecryptionMaterials) m_Wrappers.Result { + var _0_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need(m_Materials.Companion_Default___.DecryptionMaterialsWithPlaintextDataKey(input), m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_InvalidDecryptionMaterials_(_dafny.SeqOfString("Invalid Decryption Materials"))) + _ = _0_valueOrError0 + if (_0_valueOrError0).IsFailure() { + return (_0_valueOrError0).PropagateFailure() + } else { + return m_Wrappers.Companion_Result_.Create_Success_(_dafny.TupleOf()) + } +} +func (_static *CompanionStruct_Default___) GetAlgorithmSuiteInfo(config Config, input _dafny.Sequence) m_Wrappers.Result { + return m_AlgorithmSuites.Companion_Default___.GetAlgorithmSuiteInfo(input) +} +func (_static *CompanionStruct_Default___) ValidAlgorithmSuiteInfo(config Config, input m_AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo) m_Wrappers.Result { + var _0_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need(m_AlgorithmSuites.Companion_Default___.AlgorithmSuite_q(input), m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_InvalidAlgorithmSuiteInfo_(_dafny.SeqOfString("Invalid AlgorithmSuiteInfo"))) + _ = _0_valueOrError0 + if (_0_valueOrError0).IsFailure() { + return (_0_valueOrError0).PropagateFailure() + } else { + return m_Wrappers.Companion_Result_.Create_Success_(_dafny.TupleOf()) + } +} +func (_static *CompanionStruct_Default___) ValidateCommitmentPolicyOnEncrypt(config Config, input m_AwsCryptographyMaterialProvidersTypes.ValidateCommitmentPolicyOnEncryptInput) m_Wrappers.Result { + var _0_valueOrError0 m_Wrappers.Outcome = m_Commitment.Companion_Default___.ValidateCommitmentPolicyOnEncrypt((input).Dtor_algorithm(), (input).Dtor_commitmentPolicy()) + _ = _0_valueOrError0 + if (_0_valueOrError0).IsFailure() { + return (_0_valueOrError0).PropagateFailure() + } else { + return m_Wrappers.Companion_Result_.Create_Success_(_dafny.TupleOf()) + } +} +func (_static *CompanionStruct_Default___) ValidateCommitmentPolicyOnDecrypt(config Config, input m_AwsCryptographyMaterialProvidersTypes.ValidateCommitmentPolicyOnDecryptInput) m_Wrappers.Result { + var _0_valueOrError0 m_Wrappers.Outcome = m_Commitment.Companion_Default___.ValidateCommitmentPolicyOnDecrypt((input).Dtor_algorithm(), (input).Dtor_commitmentPolicy()) + _ = _0_valueOrError0 + if (_0_valueOrError0).IsFailure() { + return (_0_valueOrError0).PropagateFailure() + } else { + return m_Wrappers.Companion_Result_.Create_Success_(_dafny.TupleOf()) + } +} + +// End of class Default__ + +// Definition of datatype Config +type Config struct { + Data_Config_ +} + +func (_this Config) Get_() Data_Config_ { + return _this.Data_Config_ +} + +type Data_Config_ interface { + isConfig() +} + +type CompanionStruct_Config_ struct { +} + +var Companion_Config_ = CompanionStruct_Config_{} + +type Config_Config struct { + Crypto *m_AtomicPrimitives.AtomicPrimitivesClient +} + +func (Config_Config) isConfig() {} + +func (CompanionStruct_Config_) Create_Config_(Crypto *m_AtomicPrimitives.AtomicPrimitivesClient) Config { + return Config{Config_Config{Crypto}} +} + +func (_this Config) Is_Config() bool { + _, ok := _this.Get_().(Config_Config) + return ok +} + +func (CompanionStruct_Config_) Default() Config { + return Companion_Config_.Create_Config_((*m_AtomicPrimitives.AtomicPrimitivesClient)(nil)) +} + +func (_this Config) Dtor_crypto() *m_AtomicPrimitives.AtomicPrimitivesClient { + return _this.Get_().(Config_Config).Crypto +} + +func (_this Config) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case Config_Config: + { + return "AwsCryptographyMaterialProvidersOperations.Config.Config" + "(" + _dafny.String(data.Crypto) + ")" + } + default: + { + return "" + } + } +} + +func (_this Config) Equals(other Config) bool { + switch data1 := _this.Get_().(type) { + case Config_Config: + { + data2, ok := other.Get_().(Config_Config) + return ok && data1.Crypto == data2.Crypto + } + default: + { + return false // unexpected + } + } +} + +func (_this Config) EqualsGeneric(other interface{}) bool { + typed, ok := other.(Config) + return ok && _this.Equals(typed) +} + +func Type_Config_() _dafny.TypeDescriptor { + return type_Config_{} +} + +type type_Config_ struct { +} + +func (_this type_Config_) Default() interface{} { + return Companion_Config_.Default() +} + +func (_this type_Config_) String() string { + return "AwsCryptographyMaterialProvidersOperations.Config" +} +func (_this Config) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = Config{} + +// End of datatype Config diff --git a/customer-preview/mpl/AwsCryptographyMaterialProvidersTypes/AwsCryptographyMaterialProvidersTypes.go b/customer-preview/mpl/AwsCryptographyMaterialProvidersTypes/AwsCryptographyMaterialProvidersTypes.go new file mode 100644 index 000000000..1eb902d84 --- /dev/null +++ b/customer-preview/mpl/AwsCryptographyMaterialProvidersTypes/AwsCryptographyMaterialProvidersTypes.go @@ -0,0 +1,11427 @@ +// Package AwsCryptographyMaterialProvidersTypes +// Dafny module AwsCryptographyMaterialProvidersTypes compiled into Go + +package AwsCryptographyMaterialProvidersTypes + +import ( + os "os" + + m_ComAmazonawsDynamodbTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/ComAmazonawsDynamodbTypes" + m_ComAmazonawsKmsTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/ComAmazonawsKmsTypes" + m_AwsCryptographyKeyStoreTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreTypes" + m_AtomicPrimitives "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AtomicPrimitives" + m_AwsCryptographyPrimitivesOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesOperations" + m_AwsCryptographyPrimitivesTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesTypes" + m_Digest "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Digest" + m_HKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/HKDF" + m_KdfCtr "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/KdfCtr" + m_Random "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Random" + m_WrappedHKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHKDF" + m_WrappedHMAC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHMAC" + m_Actions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Actions" + m_Base64 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64" + m_Base64Lemmas "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64Lemmas" + m_BoundedInts "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/BoundedInts" + m_DivInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternals" + m_DivInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternalsNonlinear" + m_DivMod "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivMod" + m_FileIO "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FileIO" + m_FloatCompare "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FloatCompare" + m_Functions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Functions" + m_GeneralInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GeneralInternals" + m_GetOpt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GetOpt" + m_HexStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/HexStrings" + m_Logarithm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Logarithm" + m__Math "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Math_" + m_ModInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternals" + m_ModInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternalsNonlinear" + m_Mul "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Mul" + m_MulInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternals" + m_MulInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternalsNonlinear" + m_Power "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Power" + m_Relations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Relations" + m_Seq "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq" + m_Seq_MergeSort "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq_MergeSort" + m_Sorting "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Sorting" + m_StandardLibrary "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary" + m_StandardLibraryInterop "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibraryInterop" + m_StandardLibrary_Sequence "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_Sequence" + m_StandardLibrary_String "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_String" + m_StandardLibrary_UInt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_UInt" + m_Streams "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Streams" + m_UTF8 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UTF8" + m_UnicodeStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UnicodeStrings" + m__Unicode "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Unicode_" + m_Utf16EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf16EncodingForm" + m_Utf8EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf8EncodingForm" + m_Wrappers "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers" + m__System "github.com/dafny-lang/DafnyRuntimeGo/v4/System_" + _dafny "github.com/dafny-lang/DafnyRuntimeGo/v4/dafny" +) + +var _ = os.Args +var _ _dafny.Dummy__ +var _ m__System.Dummy__ +var _ m_Wrappers.Dummy__ +var _ m_BoundedInts.Dummy__ +var _ m_StandardLibrary_UInt.Dummy__ +var _ m_StandardLibrary_Sequence.Dummy__ +var _ m_StandardLibrary_String.Dummy__ +var _ m_StandardLibrary.Dummy__ +var _ m_AwsCryptographyPrimitivesTypes.Dummy__ +var _ m_Random.Dummy__ +var _ m_Digest.Dummy__ +var _ m_WrappedHMAC.Dummy__ +var _ m_HKDF.Dummy__ +var _ m_WrappedHKDF.Dummy__ +var _ m_KdfCtr.Dummy__ +var _ m_AwsCryptographyPrimitivesOperations.Dummy__ +var _ m_AtomicPrimitives.Dummy__ +var _ m_ComAmazonawsDynamodbTypes.Dummy__ +var _ m_ComAmazonawsKmsTypes.Dummy__ +var _ m_Relations.Dummy__ +var _ m_Seq_MergeSort.Dummy__ +var _ m__Math.Dummy__ +var _ m_Seq.Dummy__ +var _ m__Unicode.Dummy__ +var _ m_Functions.Dummy__ +var _ m_Utf8EncodingForm.Dummy__ +var _ m_Utf16EncodingForm.Dummy__ +var _ m_UnicodeStrings.Dummy__ +var _ m_FileIO.Dummy__ +var _ m_GeneralInternals.Dummy__ +var _ m_MulInternalsNonlinear.Dummy__ +var _ m_MulInternals.Dummy__ +var _ m_Mul.Dummy__ +var _ m_ModInternalsNonlinear.Dummy__ +var _ m_DivInternalsNonlinear.Dummy__ +var _ m_ModInternals.Dummy__ +var _ m_DivInternals.Dummy__ +var _ m_DivMod.Dummy__ +var _ m_Power.Dummy__ +var _ m_Logarithm.Dummy__ +var _ m_StandardLibraryInterop.Dummy__ +var _ m_Streams.Dummy__ +var _ m_Sorting.Dummy__ +var _ m_HexStrings.Dummy__ +var _ m_GetOpt.Dummy__ +var _ m_FloatCompare.Dummy__ +var _ m_Base64.Dummy__ +var _ m_Base64Lemmas.Dummy__ +var _ m_Actions.Dummy__ +var _ m_AwsCryptographyKeyStoreTypes.Dummy__ + +type Dummy__ struct{} + +// Definition of class Default__ +type Default__ struct { + dummy byte +} + +func New_Default___() *Default__ { + _this := Default__{} + + return &_this +} + +type CompanionStruct_Default___ struct { +} + +var Companion_Default___ = CompanionStruct_Default___{} + +func (_this *Default__) Equals(other *Default__) bool { + return _this == other +} + +func (_this *Default__) EqualsGeneric(x interface{}) bool { + other, ok := x.(*Default__) + return ok && _this.Equals(other) +} + +func (*Default__) String() string { + return "AwsCryptographyMaterialProvidersTypes.Default__" +} +func (_this *Default__) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = &Default__{} + +func (_static *CompanionStruct_Default___) IsValid__CountingNumber(x int32) bool { + return (int32(1)) <= (x) +} +func (_static *CompanionStruct_Default___) IsValid__PositiveInteger(x int32) bool { + return (int32(0)) <= (x) +} +func (_static *CompanionStruct_Default___) IsValid__PositiveLong(x int64) bool { + return (int64(0)) <= (x) +} +func (_static *CompanionStruct_Default___) IsDummySubsetType(x _dafny.Int) bool { + return (x).Sign() == 1 +} + +// End of class Default__ + +// Definition of datatype DafnyCallEvent +type DafnyCallEvent struct { + Data_DafnyCallEvent_ +} + +func (_this DafnyCallEvent) Get_() Data_DafnyCallEvent_ { + return _this.Data_DafnyCallEvent_ +} + +type Data_DafnyCallEvent_ interface { + isDafnyCallEvent() +} + +type CompanionStruct_DafnyCallEvent_ struct { +} + +var Companion_DafnyCallEvent_ = CompanionStruct_DafnyCallEvent_{} + +type DafnyCallEvent_DafnyCallEvent struct { + Input interface{} + Output interface{} +} + +func (DafnyCallEvent_DafnyCallEvent) isDafnyCallEvent() {} + +func (CompanionStruct_DafnyCallEvent_) Create_DafnyCallEvent_(Input interface{}, Output interface{}) DafnyCallEvent { + return DafnyCallEvent{DafnyCallEvent_DafnyCallEvent{Input, Output}} +} + +func (_this DafnyCallEvent) Is_DafnyCallEvent() bool { + _, ok := _this.Get_().(DafnyCallEvent_DafnyCallEvent) + return ok +} + +func (CompanionStruct_DafnyCallEvent_) Default(_default_I interface{}, _default_O interface{}) DafnyCallEvent { + return Companion_DafnyCallEvent_.Create_DafnyCallEvent_(_default_I, _default_O) +} + +func (_this DafnyCallEvent) Dtor_input() interface{} { + return _this.Get_().(DafnyCallEvent_DafnyCallEvent).Input +} + +func (_this DafnyCallEvent) Dtor_output() interface{} { + return _this.Get_().(DafnyCallEvent_DafnyCallEvent).Output +} + +func (_this DafnyCallEvent) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case DafnyCallEvent_DafnyCallEvent: + { + return "AwsCryptographyMaterialProvidersTypes.DafnyCallEvent.DafnyCallEvent" + "(" + _dafny.String(data.Input) + ", " + _dafny.String(data.Output) + ")" + } + default: + { + return "" + } + } +} + +func (_this DafnyCallEvent) Equals(other DafnyCallEvent) bool { + switch data1 := _this.Get_().(type) { + case DafnyCallEvent_DafnyCallEvent: + { + data2, ok := other.Get_().(DafnyCallEvent_DafnyCallEvent) + return ok && _dafny.AreEqual(data1.Input, data2.Input) && _dafny.AreEqual(data1.Output, data2.Output) + } + default: + { + return false // unexpected + } + } +} + +func (_this DafnyCallEvent) EqualsGeneric(other interface{}) bool { + typed, ok := other.(DafnyCallEvent) + return ok && _this.Equals(typed) +} + +func Type_DafnyCallEvent_(Type_I_ _dafny.TypeDescriptor, Type_O_ _dafny.TypeDescriptor) _dafny.TypeDescriptor { + return type_DafnyCallEvent_{Type_I_, Type_O_} +} + +type type_DafnyCallEvent_ struct { + Type_I_ _dafny.TypeDescriptor + Type_O_ _dafny.TypeDescriptor +} + +func (_this type_DafnyCallEvent_) Default() interface{} { + Type_I_ := _this.Type_I_ + _ = Type_I_ + Type_O_ := _this.Type_O_ + _ = Type_O_ + return Companion_DafnyCallEvent_.Default(Type_I_.Default(), Type_O_.Default()) +} + +func (_this type_DafnyCallEvent_) String() string { + return "AwsCryptographyMaterialProvidersTypes.DafnyCallEvent" +} +func (_this DafnyCallEvent) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = DafnyCallEvent{} + +// End of datatype DafnyCallEvent + +// Definition of datatype AesWrappingAlg +type AesWrappingAlg struct { + Data_AesWrappingAlg_ +} + +func (_this AesWrappingAlg) Get_() Data_AesWrappingAlg_ { + return _this.Data_AesWrappingAlg_ +} + +type Data_AesWrappingAlg_ interface { + isAesWrappingAlg() +} + +type CompanionStruct_AesWrappingAlg_ struct { +} + +var Companion_AesWrappingAlg_ = CompanionStruct_AesWrappingAlg_{} + +type AesWrappingAlg_ALG__AES128__GCM__IV12__TAG16 struct { +} + +func (AesWrappingAlg_ALG__AES128__GCM__IV12__TAG16) isAesWrappingAlg() {} + +func (CompanionStruct_AesWrappingAlg_) Create_ALG__AES128__GCM__IV12__TAG16_() AesWrappingAlg { + return AesWrappingAlg{AesWrappingAlg_ALG__AES128__GCM__IV12__TAG16{}} +} + +func (_this AesWrappingAlg) Is_ALG__AES128__GCM__IV12__TAG16() bool { + _, ok := _this.Get_().(AesWrappingAlg_ALG__AES128__GCM__IV12__TAG16) + return ok +} + +type AesWrappingAlg_ALG__AES192__GCM__IV12__TAG16 struct { +} + +func (AesWrappingAlg_ALG__AES192__GCM__IV12__TAG16) isAesWrappingAlg() {} + +func (CompanionStruct_AesWrappingAlg_) Create_ALG__AES192__GCM__IV12__TAG16_() AesWrappingAlg { + return AesWrappingAlg{AesWrappingAlg_ALG__AES192__GCM__IV12__TAG16{}} +} + +func (_this AesWrappingAlg) Is_ALG__AES192__GCM__IV12__TAG16() bool { + _, ok := _this.Get_().(AesWrappingAlg_ALG__AES192__GCM__IV12__TAG16) + return ok +} + +type AesWrappingAlg_ALG__AES256__GCM__IV12__TAG16 struct { +} + +func (AesWrappingAlg_ALG__AES256__GCM__IV12__TAG16) isAesWrappingAlg() {} + +func (CompanionStruct_AesWrappingAlg_) Create_ALG__AES256__GCM__IV12__TAG16_() AesWrappingAlg { + return AesWrappingAlg{AesWrappingAlg_ALG__AES256__GCM__IV12__TAG16{}} +} + +func (_this AesWrappingAlg) Is_ALG__AES256__GCM__IV12__TAG16() bool { + _, ok := _this.Get_().(AesWrappingAlg_ALG__AES256__GCM__IV12__TAG16) + return ok +} + +func (CompanionStruct_AesWrappingAlg_) Default() AesWrappingAlg { + return Companion_AesWrappingAlg_.Create_ALG__AES128__GCM__IV12__TAG16_() +} + +func (_ CompanionStruct_AesWrappingAlg_) AllSingletonConstructors() _dafny.Iterator { + i := -1 + return func() (interface{}, bool) { + i++ + switch i { + case 0: + return Companion_AesWrappingAlg_.Create_ALG__AES128__GCM__IV12__TAG16_(), true + case 1: + return Companion_AesWrappingAlg_.Create_ALG__AES192__GCM__IV12__TAG16_(), true + case 2: + return Companion_AesWrappingAlg_.Create_ALG__AES256__GCM__IV12__TAG16_(), true + default: + return AesWrappingAlg{}, false + } + } +} + +func (_this AesWrappingAlg) String() string { + switch _this.Get_().(type) { + case nil: + return "null" + case AesWrappingAlg_ALG__AES128__GCM__IV12__TAG16: + { + return "AwsCryptographyMaterialProvidersTypes.AesWrappingAlg.ALG_AES128_GCM_IV12_TAG16" + } + case AesWrappingAlg_ALG__AES192__GCM__IV12__TAG16: + { + return "AwsCryptographyMaterialProvidersTypes.AesWrappingAlg.ALG_AES192_GCM_IV12_TAG16" + } + case AesWrappingAlg_ALG__AES256__GCM__IV12__TAG16: + { + return "AwsCryptographyMaterialProvidersTypes.AesWrappingAlg.ALG_AES256_GCM_IV12_TAG16" + } + default: + { + return "" + } + } +} + +func (_this AesWrappingAlg) Equals(other AesWrappingAlg) bool { + switch _this.Get_().(type) { + case AesWrappingAlg_ALG__AES128__GCM__IV12__TAG16: + { + _, ok := other.Get_().(AesWrappingAlg_ALG__AES128__GCM__IV12__TAG16) + return ok + } + case AesWrappingAlg_ALG__AES192__GCM__IV12__TAG16: + { + _, ok := other.Get_().(AesWrappingAlg_ALG__AES192__GCM__IV12__TAG16) + return ok + } + case AesWrappingAlg_ALG__AES256__GCM__IV12__TAG16: + { + _, ok := other.Get_().(AesWrappingAlg_ALG__AES256__GCM__IV12__TAG16) + return ok + } + default: + { + return false // unexpected + } + } +} + +func (_this AesWrappingAlg) EqualsGeneric(other interface{}) bool { + typed, ok := other.(AesWrappingAlg) + return ok && _this.Equals(typed) +} + +func Type_AesWrappingAlg_() _dafny.TypeDescriptor { + return type_AesWrappingAlg_{} +} + +type type_AesWrappingAlg_ struct { +} + +func (_this type_AesWrappingAlg_) Default() interface{} { + return Companion_AesWrappingAlg_.Default() +} + +func (_this type_AesWrappingAlg_) String() string { + return "AwsCryptographyMaterialProvidersTypes.AesWrappingAlg" +} +func (_this AesWrappingAlg) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = AesWrappingAlg{} + +// End of datatype AesWrappingAlg + +// Definition of datatype AlgorithmSuiteId +type AlgorithmSuiteId struct { + Data_AlgorithmSuiteId_ +} + +func (_this AlgorithmSuiteId) Get_() Data_AlgorithmSuiteId_ { + return _this.Data_AlgorithmSuiteId_ +} + +type Data_AlgorithmSuiteId_ interface { + isAlgorithmSuiteId() +} + +type CompanionStruct_AlgorithmSuiteId_ struct { +} + +var Companion_AlgorithmSuiteId_ = CompanionStruct_AlgorithmSuiteId_{} + +type AlgorithmSuiteId_ESDK struct { + ESDK ESDKAlgorithmSuiteId +} + +func (AlgorithmSuiteId_ESDK) isAlgorithmSuiteId() {} + +func (CompanionStruct_AlgorithmSuiteId_) Create_ESDK_(ESDK ESDKAlgorithmSuiteId) AlgorithmSuiteId { + return AlgorithmSuiteId{AlgorithmSuiteId_ESDK{ESDK}} +} + +func (_this AlgorithmSuiteId) Is_ESDK() bool { + _, ok := _this.Get_().(AlgorithmSuiteId_ESDK) + return ok +} + +type AlgorithmSuiteId_DBE struct { + DBE DBEAlgorithmSuiteId +} + +func (AlgorithmSuiteId_DBE) isAlgorithmSuiteId() {} + +func (CompanionStruct_AlgorithmSuiteId_) Create_DBE_(DBE DBEAlgorithmSuiteId) AlgorithmSuiteId { + return AlgorithmSuiteId{AlgorithmSuiteId_DBE{DBE}} +} + +func (_this AlgorithmSuiteId) Is_DBE() bool { + _, ok := _this.Get_().(AlgorithmSuiteId_DBE) + return ok +} + +func (CompanionStruct_AlgorithmSuiteId_) Default() AlgorithmSuiteId { + return Companion_AlgorithmSuiteId_.Create_ESDK_(Companion_ESDKAlgorithmSuiteId_.Default()) +} + +func (_this AlgorithmSuiteId) Dtor_ESDK() ESDKAlgorithmSuiteId { + return _this.Get_().(AlgorithmSuiteId_ESDK).ESDK +} + +func (_this AlgorithmSuiteId) Dtor_DBE() DBEAlgorithmSuiteId { + return _this.Get_().(AlgorithmSuiteId_DBE).DBE +} + +func (_this AlgorithmSuiteId) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case AlgorithmSuiteId_ESDK: + { + return "AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteId.ESDK" + "(" + _dafny.String(data.ESDK) + ")" + } + case AlgorithmSuiteId_DBE: + { + return "AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteId.DBE" + "(" + _dafny.String(data.DBE) + ")" + } + default: + { + return "" + } + } +} + +func (_this AlgorithmSuiteId) Equals(other AlgorithmSuiteId) bool { + switch data1 := _this.Get_().(type) { + case AlgorithmSuiteId_ESDK: + { + data2, ok := other.Get_().(AlgorithmSuiteId_ESDK) + return ok && data1.ESDK.Equals(data2.ESDK) + } + case AlgorithmSuiteId_DBE: + { + data2, ok := other.Get_().(AlgorithmSuiteId_DBE) + return ok && data1.DBE.Equals(data2.DBE) + } + default: + { + return false // unexpected + } + } +} + +func (_this AlgorithmSuiteId) EqualsGeneric(other interface{}) bool { + typed, ok := other.(AlgorithmSuiteId) + return ok && _this.Equals(typed) +} + +func Type_AlgorithmSuiteId_() _dafny.TypeDescriptor { + return type_AlgorithmSuiteId_{} +} + +type type_AlgorithmSuiteId_ struct { +} + +func (_this type_AlgorithmSuiteId_) Default() interface{} { + return Companion_AlgorithmSuiteId_.Default() +} + +func (_this type_AlgorithmSuiteId_) String() string { + return "AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteId" +} +func (_this AlgorithmSuiteId) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = AlgorithmSuiteId{} + +// End of datatype AlgorithmSuiteId + +// Definition of datatype AlgorithmSuiteInfo +type AlgorithmSuiteInfo struct { + Data_AlgorithmSuiteInfo_ +} + +func (_this AlgorithmSuiteInfo) Get_() Data_AlgorithmSuiteInfo_ { + return _this.Data_AlgorithmSuiteInfo_ +} + +type Data_AlgorithmSuiteInfo_ interface { + isAlgorithmSuiteInfo() +} + +type CompanionStruct_AlgorithmSuiteInfo_ struct { +} + +var Companion_AlgorithmSuiteInfo_ = CompanionStruct_AlgorithmSuiteInfo_{} + +type AlgorithmSuiteInfo_AlgorithmSuiteInfo struct { + Id AlgorithmSuiteId + BinaryId _dafny.Sequence + MessageVersion int32 + Encrypt Encrypt + Kdf DerivationAlgorithm + Commitment DerivationAlgorithm + Signature SignatureAlgorithm + SymmetricSignature SymmetricSignatureAlgorithm + EdkWrapping EdkWrappingAlgorithm +} + +func (AlgorithmSuiteInfo_AlgorithmSuiteInfo) isAlgorithmSuiteInfo() {} + +func (CompanionStruct_AlgorithmSuiteInfo_) Create_AlgorithmSuiteInfo_(Id AlgorithmSuiteId, BinaryId _dafny.Sequence, MessageVersion int32, Encrypt Encrypt, Kdf DerivationAlgorithm, Commitment DerivationAlgorithm, Signature SignatureAlgorithm, SymmetricSignature SymmetricSignatureAlgorithm, EdkWrapping EdkWrappingAlgorithm) AlgorithmSuiteInfo { + return AlgorithmSuiteInfo{AlgorithmSuiteInfo_AlgorithmSuiteInfo{Id, BinaryId, MessageVersion, Encrypt, Kdf, Commitment, Signature, SymmetricSignature, EdkWrapping}} +} + +func (_this AlgorithmSuiteInfo) Is_AlgorithmSuiteInfo() bool { + _, ok := _this.Get_().(AlgorithmSuiteInfo_AlgorithmSuiteInfo) + return ok +} + +func (CompanionStruct_AlgorithmSuiteInfo_) Default() AlgorithmSuiteInfo { + return Companion_AlgorithmSuiteInfo_.Create_AlgorithmSuiteInfo_(Companion_AlgorithmSuiteId_.Default(), _dafny.EmptySeq, int32(0), Companion_Encrypt_.Default(), Companion_DerivationAlgorithm_.Default(), Companion_DerivationAlgorithm_.Default(), Companion_SignatureAlgorithm_.Default(), Companion_SymmetricSignatureAlgorithm_.Default(), Companion_EdkWrappingAlgorithm_.Default()) +} + +func (_this AlgorithmSuiteInfo) Dtor_id() AlgorithmSuiteId { + return _this.Get_().(AlgorithmSuiteInfo_AlgorithmSuiteInfo).Id +} + +func (_this AlgorithmSuiteInfo) Dtor_binaryId() _dafny.Sequence { + return _this.Get_().(AlgorithmSuiteInfo_AlgorithmSuiteInfo).BinaryId +} + +func (_this AlgorithmSuiteInfo) Dtor_messageVersion() int32 { + return _this.Get_().(AlgorithmSuiteInfo_AlgorithmSuiteInfo).MessageVersion +} + +func (_this AlgorithmSuiteInfo) Dtor_encrypt() Encrypt { + return _this.Get_().(AlgorithmSuiteInfo_AlgorithmSuiteInfo).Encrypt +} + +func (_this AlgorithmSuiteInfo) Dtor_kdf() DerivationAlgorithm { + return _this.Get_().(AlgorithmSuiteInfo_AlgorithmSuiteInfo).Kdf +} + +func (_this AlgorithmSuiteInfo) Dtor_commitment() DerivationAlgorithm { + return _this.Get_().(AlgorithmSuiteInfo_AlgorithmSuiteInfo).Commitment +} + +func (_this AlgorithmSuiteInfo) Dtor_signature() SignatureAlgorithm { + return _this.Get_().(AlgorithmSuiteInfo_AlgorithmSuiteInfo).Signature +} + +func (_this AlgorithmSuiteInfo) Dtor_symmetricSignature() SymmetricSignatureAlgorithm { + return _this.Get_().(AlgorithmSuiteInfo_AlgorithmSuiteInfo).SymmetricSignature +} + +func (_this AlgorithmSuiteInfo) Dtor_edkWrapping() EdkWrappingAlgorithm { + return _this.Get_().(AlgorithmSuiteInfo_AlgorithmSuiteInfo).EdkWrapping +} + +func (_this AlgorithmSuiteInfo) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case AlgorithmSuiteInfo_AlgorithmSuiteInfo: + { + return "AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo.AlgorithmSuiteInfo" + "(" + _dafny.String(data.Id) + ", " + _dafny.String(data.BinaryId) + ", " + _dafny.String(data.MessageVersion) + ", " + _dafny.String(data.Encrypt) + ", " + _dafny.String(data.Kdf) + ", " + _dafny.String(data.Commitment) + ", " + _dafny.String(data.Signature) + ", " + _dafny.String(data.SymmetricSignature) + ", " + _dafny.String(data.EdkWrapping) + ")" + } + default: + { + return "" + } + } +} + +func (_this AlgorithmSuiteInfo) Equals(other AlgorithmSuiteInfo) bool { + switch data1 := _this.Get_().(type) { + case AlgorithmSuiteInfo_AlgorithmSuiteInfo: + { + data2, ok := other.Get_().(AlgorithmSuiteInfo_AlgorithmSuiteInfo) + return ok && data1.Id.Equals(data2.Id) && data1.BinaryId.Equals(data2.BinaryId) && data1.MessageVersion == data2.MessageVersion && data1.Encrypt.Equals(data2.Encrypt) && data1.Kdf.Equals(data2.Kdf) && data1.Commitment.Equals(data2.Commitment) && data1.Signature.Equals(data2.Signature) && data1.SymmetricSignature.Equals(data2.SymmetricSignature) && data1.EdkWrapping.Equals(data2.EdkWrapping) + } + default: + { + return false // unexpected + } + } +} + +func (_this AlgorithmSuiteInfo) EqualsGeneric(other interface{}) bool { + typed, ok := other.(AlgorithmSuiteInfo) + return ok && _this.Equals(typed) +} + +func Type_AlgorithmSuiteInfo_() _dafny.TypeDescriptor { + return type_AlgorithmSuiteInfo_{} +} + +type type_AlgorithmSuiteInfo_ struct { +} + +func (_this type_AlgorithmSuiteInfo_) Default() interface{} { + return Companion_AlgorithmSuiteInfo_.Default() +} + +func (_this type_AlgorithmSuiteInfo_) String() string { + return "AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo" +} +func (_this AlgorithmSuiteInfo) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = AlgorithmSuiteInfo{} + +// End of datatype AlgorithmSuiteInfo + +// Definition of class IAwsCryptographicMaterialProvidersClientCallHistory +type IAwsCryptographicMaterialProvidersClientCallHistory struct { + dummy byte +} + +func New_IAwsCryptographicMaterialProvidersClientCallHistory_() *IAwsCryptographicMaterialProvidersClientCallHistory { + _this := IAwsCryptographicMaterialProvidersClientCallHistory{} + + return &_this +} + +type CompanionStruct_IAwsCryptographicMaterialProvidersClientCallHistory_ struct { +} + +var Companion_IAwsCryptographicMaterialProvidersClientCallHistory_ = CompanionStruct_IAwsCryptographicMaterialProvidersClientCallHistory_{} + +func (_this *IAwsCryptographicMaterialProvidersClientCallHistory) Equals(other *IAwsCryptographicMaterialProvidersClientCallHistory) bool { + return _this == other +} + +func (_this *IAwsCryptographicMaterialProvidersClientCallHistory) EqualsGeneric(x interface{}) bool { + other, ok := x.(*IAwsCryptographicMaterialProvidersClientCallHistory) + return ok && _this.Equals(other) +} + +func (*IAwsCryptographicMaterialProvidersClientCallHistory) String() string { + return "AwsCryptographyMaterialProvidersTypes.IAwsCryptographicMaterialProvidersClientCallHistory" +} + +func Type_IAwsCryptographicMaterialProvidersClientCallHistory_() _dafny.TypeDescriptor { + return type_IAwsCryptographicMaterialProvidersClientCallHistory_{} +} + +type type_IAwsCryptographicMaterialProvidersClientCallHistory_ struct { +} + +func (_this type_IAwsCryptographicMaterialProvidersClientCallHistory_) Default() interface{} { + return (*IAwsCryptographicMaterialProvidersClientCallHistory)(nil) +} + +func (_this type_IAwsCryptographicMaterialProvidersClientCallHistory_) String() string { + return "AwsCryptographyMaterialProvidersTypes.IAwsCryptographicMaterialProvidersClientCallHistory" +} +func (_this *IAwsCryptographicMaterialProvidersClientCallHistory) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = &IAwsCryptographicMaterialProvidersClientCallHistory{} + +// End of class IAwsCryptographicMaterialProvidersClientCallHistory + +// Definition of trait IAwsCryptographicMaterialProvidersClient +type IAwsCryptographicMaterialProvidersClient interface { + String() string + CreateAwsKmsKeyring(input CreateAwsKmsKeyringInput) m_Wrappers.Result + CreateAwsKmsDiscoveryKeyring(input CreateAwsKmsDiscoveryKeyringInput) m_Wrappers.Result + CreateAwsKmsMultiKeyring(input CreateAwsKmsMultiKeyringInput) m_Wrappers.Result + CreateAwsKmsDiscoveryMultiKeyring(input CreateAwsKmsDiscoveryMultiKeyringInput) m_Wrappers.Result + CreateAwsKmsMrkKeyring(input CreateAwsKmsMrkKeyringInput) m_Wrappers.Result + CreateAwsKmsMrkMultiKeyring(input CreateAwsKmsMrkMultiKeyringInput) m_Wrappers.Result + CreateAwsKmsMrkDiscoveryKeyring(input CreateAwsKmsMrkDiscoveryKeyringInput) m_Wrappers.Result + CreateAwsKmsMrkDiscoveryMultiKeyring(input CreateAwsKmsMrkDiscoveryMultiKeyringInput) m_Wrappers.Result + CreateAwsKmsHierarchicalKeyring(input CreateAwsKmsHierarchicalKeyringInput) m_Wrappers.Result + CreateAwsKmsRsaKeyring(input CreateAwsKmsRsaKeyringInput) m_Wrappers.Result + CreateAwsKmsEcdhKeyring(input CreateAwsKmsEcdhKeyringInput) m_Wrappers.Result + CreateMultiKeyring(input CreateMultiKeyringInput) m_Wrappers.Result + CreateRawAesKeyring(input CreateRawAesKeyringInput) m_Wrappers.Result + CreateRawRsaKeyring(input CreateRawRsaKeyringInput) m_Wrappers.Result + CreateRawEcdhKeyring(input CreateRawEcdhKeyringInput) m_Wrappers.Result + CreateDefaultCryptographicMaterialsManager(input CreateDefaultCryptographicMaterialsManagerInput) m_Wrappers.Result + CreateRequiredEncryptionContextCMM(input CreateRequiredEncryptionContextCMMInput) m_Wrappers.Result + CreateCryptographicMaterialsCache(input CreateCryptographicMaterialsCacheInput) m_Wrappers.Result + CreateDefaultClientSupplier(input CreateDefaultClientSupplierInput) m_Wrappers.Result + InitializeEncryptionMaterials(input InitializeEncryptionMaterialsInput) m_Wrappers.Result + InitializeDecryptionMaterials(input InitializeDecryptionMaterialsInput) m_Wrappers.Result + ValidEncryptionMaterialsTransition(input ValidEncryptionMaterialsTransitionInput) m_Wrappers.Result + ValidDecryptionMaterialsTransition(input ValidDecryptionMaterialsTransitionInput) m_Wrappers.Result + EncryptionMaterialsHasPlaintextDataKey(input EncryptionMaterials) m_Wrappers.Result + DecryptionMaterialsWithPlaintextDataKey(input DecryptionMaterials) m_Wrappers.Result + GetAlgorithmSuiteInfo(input _dafny.Sequence) m_Wrappers.Result + ValidAlgorithmSuiteInfo(input AlgorithmSuiteInfo) m_Wrappers.Result + ValidateCommitmentPolicyOnEncrypt(input ValidateCommitmentPolicyOnEncryptInput) m_Wrappers.Result + ValidateCommitmentPolicyOnDecrypt(input ValidateCommitmentPolicyOnDecryptInput) m_Wrappers.Result +} +type CompanionStruct_IAwsCryptographicMaterialProvidersClient_ struct { + TraitID_ *_dafny.TraitID +} + +var Companion_IAwsCryptographicMaterialProvidersClient_ = CompanionStruct_IAwsCryptographicMaterialProvidersClient_{ + TraitID_: &_dafny.TraitID{}, +} + +func (CompanionStruct_IAwsCryptographicMaterialProvidersClient_) CastTo_(x interface{}) IAwsCryptographicMaterialProvidersClient { + var t IAwsCryptographicMaterialProvidersClient + t, _ = x.(IAwsCryptographicMaterialProvidersClient) + return t +} + +// End of trait IAwsCryptographicMaterialProvidersClient + +// Definition of class IBranchKeyIdSupplierCallHistory +type IBranchKeyIdSupplierCallHistory struct { + dummy byte +} + +func New_IBranchKeyIdSupplierCallHistory_() *IBranchKeyIdSupplierCallHistory { + _this := IBranchKeyIdSupplierCallHistory{} + + return &_this +} + +type CompanionStruct_IBranchKeyIdSupplierCallHistory_ struct { +} + +var Companion_IBranchKeyIdSupplierCallHistory_ = CompanionStruct_IBranchKeyIdSupplierCallHistory_{} + +func (_this *IBranchKeyIdSupplierCallHistory) Equals(other *IBranchKeyIdSupplierCallHistory) bool { + return _this == other +} + +func (_this *IBranchKeyIdSupplierCallHistory) EqualsGeneric(x interface{}) bool { + other, ok := x.(*IBranchKeyIdSupplierCallHistory) + return ok && _this.Equals(other) +} + +func (*IBranchKeyIdSupplierCallHistory) String() string { + return "AwsCryptographyMaterialProvidersTypes.IBranchKeyIdSupplierCallHistory" +} + +func Type_IBranchKeyIdSupplierCallHistory_() _dafny.TypeDescriptor { + return type_IBranchKeyIdSupplierCallHistory_{} +} + +type type_IBranchKeyIdSupplierCallHistory_ struct { +} + +func (_this type_IBranchKeyIdSupplierCallHistory_) Default() interface{} { + return (*IBranchKeyIdSupplierCallHistory)(nil) +} + +func (_this type_IBranchKeyIdSupplierCallHistory_) String() string { + return "AwsCryptographyMaterialProvidersTypes.IBranchKeyIdSupplierCallHistory" +} +func (_this *IBranchKeyIdSupplierCallHistory) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = &IBranchKeyIdSupplierCallHistory{} + +// End of class IBranchKeyIdSupplierCallHistory + +// Definition of trait IBranchKeyIdSupplier +type IBranchKeyIdSupplier interface { + String() string + GetBranchKeyId(input GetBranchKeyIdInput) m_Wrappers.Result + GetBranchKeyId_k(input GetBranchKeyIdInput) m_Wrappers.Result +} + +func (_static *CompanionStruct_IBranchKeyIdSupplier_) GetBranchKeyId(_this IBranchKeyIdSupplier, input GetBranchKeyIdInput) m_Wrappers.Result { + { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(Companion_GetBranchKeyIdOutput_.Default()) + _ = output + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = (_this).GetBranchKeyId_k(input) + output = _out0 + return output + } +} + +type CompanionStruct_IBranchKeyIdSupplier_ struct { + TraitID_ *_dafny.TraitID +} + +var Companion_IBranchKeyIdSupplier_ = CompanionStruct_IBranchKeyIdSupplier_{ + TraitID_: &_dafny.TraitID{}, +} + +func (CompanionStruct_IBranchKeyIdSupplier_) CastTo_(x interface{}) IBranchKeyIdSupplier { + var t IBranchKeyIdSupplier + t, _ = x.(IBranchKeyIdSupplier) + return t +} + +// End of trait IBranchKeyIdSupplier + +// Definition of datatype CacheType +type CacheType struct { + Data_CacheType_ +} + +func (_this CacheType) Get_() Data_CacheType_ { + return _this.Data_CacheType_ +} + +type Data_CacheType_ interface { + isCacheType() +} + +type CompanionStruct_CacheType_ struct { +} + +var Companion_CacheType_ = CompanionStruct_CacheType_{} + +type CacheType_Default struct { + Default DefaultCache +} + +func (CacheType_Default) isCacheType() {} + +func (CompanionStruct_CacheType_) Create_Default_(Default DefaultCache) CacheType { + return CacheType{CacheType_Default{Default}} +} + +func (_this CacheType) Is_Default() bool { + _, ok := _this.Get_().(CacheType_Default) + return ok +} + +type CacheType_No struct { + No NoCache +} + +func (CacheType_No) isCacheType() {} + +func (CompanionStruct_CacheType_) Create_No_(No NoCache) CacheType { + return CacheType{CacheType_No{No}} +} + +func (_this CacheType) Is_No() bool { + _, ok := _this.Get_().(CacheType_No) + return ok +} + +type CacheType_SingleThreaded struct { + SingleThreaded SingleThreadedCache +} + +func (CacheType_SingleThreaded) isCacheType() {} + +func (CompanionStruct_CacheType_) Create_SingleThreaded_(SingleThreaded SingleThreadedCache) CacheType { + return CacheType{CacheType_SingleThreaded{SingleThreaded}} +} + +func (_this CacheType) Is_SingleThreaded() bool { + _, ok := _this.Get_().(CacheType_SingleThreaded) + return ok +} + +type CacheType_MultiThreaded struct { + MultiThreaded MultiThreadedCache +} + +func (CacheType_MultiThreaded) isCacheType() {} + +func (CompanionStruct_CacheType_) Create_MultiThreaded_(MultiThreaded MultiThreadedCache) CacheType { + return CacheType{CacheType_MultiThreaded{MultiThreaded}} +} + +func (_this CacheType) Is_MultiThreaded() bool { + _, ok := _this.Get_().(CacheType_MultiThreaded) + return ok +} + +type CacheType_StormTracking struct { + StormTracking StormTrackingCache +} + +func (CacheType_StormTracking) isCacheType() {} + +func (CompanionStruct_CacheType_) Create_StormTracking_(StormTracking StormTrackingCache) CacheType { + return CacheType{CacheType_StormTracking{StormTracking}} +} + +func (_this CacheType) Is_StormTracking() bool { + _, ok := _this.Get_().(CacheType_StormTracking) + return ok +} + +type CacheType_Shared struct { + Shared ICryptographicMaterialsCache +} + +func (CacheType_Shared) isCacheType() {} + +func (CompanionStruct_CacheType_) Create_Shared_(Shared ICryptographicMaterialsCache) CacheType { + return CacheType{CacheType_Shared{Shared}} +} + +func (_this CacheType) Is_Shared() bool { + _, ok := _this.Get_().(CacheType_Shared) + return ok +} + +func (CompanionStruct_CacheType_) Default() CacheType { + return Companion_CacheType_.Create_Default_(Companion_DefaultCache_.Default()) +} + +func (_this CacheType) Dtor_Default() DefaultCache { + return _this.Get_().(CacheType_Default).Default +} + +func (_this CacheType) Dtor_No() NoCache { + return _this.Get_().(CacheType_No).No +} + +func (_this CacheType) Dtor_SingleThreaded() SingleThreadedCache { + return _this.Get_().(CacheType_SingleThreaded).SingleThreaded +} + +func (_this CacheType) Dtor_MultiThreaded() MultiThreadedCache { + return _this.Get_().(CacheType_MultiThreaded).MultiThreaded +} + +func (_this CacheType) Dtor_StormTracking() StormTrackingCache { + return _this.Get_().(CacheType_StormTracking).StormTracking +} + +func (_this CacheType) Dtor_Shared() ICryptographicMaterialsCache { + return _this.Get_().(CacheType_Shared).Shared +} + +func (_this CacheType) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case CacheType_Default: + { + return "AwsCryptographyMaterialProvidersTypes.CacheType.Default" + "(" + _dafny.String(data.Default) + ")" + } + case CacheType_No: + { + return "AwsCryptographyMaterialProvidersTypes.CacheType.No" + "(" + _dafny.String(data.No) + ")" + } + case CacheType_SingleThreaded: + { + return "AwsCryptographyMaterialProvidersTypes.CacheType.SingleThreaded" + "(" + _dafny.String(data.SingleThreaded) + ")" + } + case CacheType_MultiThreaded: + { + return "AwsCryptographyMaterialProvidersTypes.CacheType.MultiThreaded" + "(" + _dafny.String(data.MultiThreaded) + ")" + } + case CacheType_StormTracking: + { + return "AwsCryptographyMaterialProvidersTypes.CacheType.StormTracking" + "(" + _dafny.String(data.StormTracking) + ")" + } + case CacheType_Shared: + { + return "AwsCryptographyMaterialProvidersTypes.CacheType.Shared" + "(" + _dafny.String(data.Shared) + ")" + } + default: + { + return "" + } + } +} + +func (_this CacheType) Equals(other CacheType) bool { + switch data1 := _this.Get_().(type) { + case CacheType_Default: + { + data2, ok := other.Get_().(CacheType_Default) + return ok && data1.Default.Equals(data2.Default) + } + case CacheType_No: + { + data2, ok := other.Get_().(CacheType_No) + return ok && data1.No.Equals(data2.No) + } + case CacheType_SingleThreaded: + { + data2, ok := other.Get_().(CacheType_SingleThreaded) + return ok && data1.SingleThreaded.Equals(data2.SingleThreaded) + } + case CacheType_MultiThreaded: + { + data2, ok := other.Get_().(CacheType_MultiThreaded) + return ok && data1.MultiThreaded.Equals(data2.MultiThreaded) + } + case CacheType_StormTracking: + { + data2, ok := other.Get_().(CacheType_StormTracking) + return ok && data1.StormTracking.Equals(data2.StormTracking) + } + case CacheType_Shared: + { + data2, ok := other.Get_().(CacheType_Shared) + return ok && _dafny.AreEqual(data1.Shared, data2.Shared) + } + default: + { + return false // unexpected + } + } +} + +func (_this CacheType) EqualsGeneric(other interface{}) bool { + typed, ok := other.(CacheType) + return ok && _this.Equals(typed) +} + +func Type_CacheType_() _dafny.TypeDescriptor { + return type_CacheType_{} +} + +type type_CacheType_ struct { +} + +func (_this type_CacheType_) Default() interface{} { + return Companion_CacheType_.Default() +} + +func (_this type_CacheType_) String() string { + return "AwsCryptographyMaterialProvidersTypes.CacheType" +} +func (_this CacheType) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = CacheType{} + +// End of datatype CacheType + +// Definition of class IClientSupplierCallHistory +type IClientSupplierCallHistory struct { + dummy byte +} + +func New_IClientSupplierCallHistory_() *IClientSupplierCallHistory { + _this := IClientSupplierCallHistory{} + + return &_this +} + +type CompanionStruct_IClientSupplierCallHistory_ struct { +} + +var Companion_IClientSupplierCallHistory_ = CompanionStruct_IClientSupplierCallHistory_{} + +func (_this *IClientSupplierCallHistory) Equals(other *IClientSupplierCallHistory) bool { + return _this == other +} + +func (_this *IClientSupplierCallHistory) EqualsGeneric(x interface{}) bool { + other, ok := x.(*IClientSupplierCallHistory) + return ok && _this.Equals(other) +} + +func (*IClientSupplierCallHistory) String() string { + return "AwsCryptographyMaterialProvidersTypes.IClientSupplierCallHistory" +} + +func Type_IClientSupplierCallHistory_() _dafny.TypeDescriptor { + return type_IClientSupplierCallHistory_{} +} + +type type_IClientSupplierCallHistory_ struct { +} + +func (_this type_IClientSupplierCallHistory_) Default() interface{} { + return (*IClientSupplierCallHistory)(nil) +} + +func (_this type_IClientSupplierCallHistory_) String() string { + return "AwsCryptographyMaterialProvidersTypes.IClientSupplierCallHistory" +} +func (_this *IClientSupplierCallHistory) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = &IClientSupplierCallHistory{} + +// End of class IClientSupplierCallHistory + +// Definition of trait IClientSupplier +type IClientSupplier interface { + String() string + GetClient(input GetClientInput) m_Wrappers.Result + GetClient_k(input GetClientInput) m_Wrappers.Result +} + +func (_static *CompanionStruct_IClientSupplier_) GetClient(_this IClientSupplier, input GetClientInput) m_Wrappers.Result { + { + var output m_Wrappers.Result = m_Wrappers.Result{} + _ = output + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = (_this).GetClient_k(input) + output = _out0 + return output + } +} + +type CompanionStruct_IClientSupplier_ struct { + TraitID_ *_dafny.TraitID +} + +var Companion_IClientSupplier_ = CompanionStruct_IClientSupplier_{ + TraitID_: &_dafny.TraitID{}, +} + +func (CompanionStruct_IClientSupplier_) CastTo_(x interface{}) IClientSupplier { + var t IClientSupplier + t, _ = x.(IClientSupplier) + return t +} + +// End of trait IClientSupplier + +// Definition of datatype CommitmentPolicy +type CommitmentPolicy struct { + Data_CommitmentPolicy_ +} + +func (_this CommitmentPolicy) Get_() Data_CommitmentPolicy_ { + return _this.Data_CommitmentPolicy_ +} + +type Data_CommitmentPolicy_ interface { + isCommitmentPolicy() +} + +type CompanionStruct_CommitmentPolicy_ struct { +} + +var Companion_CommitmentPolicy_ = CompanionStruct_CommitmentPolicy_{} + +type CommitmentPolicy_ESDK struct { + ESDK ESDKCommitmentPolicy +} + +func (CommitmentPolicy_ESDK) isCommitmentPolicy() {} + +func (CompanionStruct_CommitmentPolicy_) Create_ESDK_(ESDK ESDKCommitmentPolicy) CommitmentPolicy { + return CommitmentPolicy{CommitmentPolicy_ESDK{ESDK}} +} + +func (_this CommitmentPolicy) Is_ESDK() bool { + _, ok := _this.Get_().(CommitmentPolicy_ESDK) + return ok +} + +type CommitmentPolicy_DBE struct { + DBE DBECommitmentPolicy +} + +func (CommitmentPolicy_DBE) isCommitmentPolicy() {} + +func (CompanionStruct_CommitmentPolicy_) Create_DBE_(DBE DBECommitmentPolicy) CommitmentPolicy { + return CommitmentPolicy{CommitmentPolicy_DBE{DBE}} +} + +func (_this CommitmentPolicy) Is_DBE() bool { + _, ok := _this.Get_().(CommitmentPolicy_DBE) + return ok +} + +func (CompanionStruct_CommitmentPolicy_) Default() CommitmentPolicy { + return Companion_CommitmentPolicy_.Create_ESDK_(Companion_ESDKCommitmentPolicy_.Default()) +} + +func (_this CommitmentPolicy) Dtor_ESDK() ESDKCommitmentPolicy { + return _this.Get_().(CommitmentPolicy_ESDK).ESDK +} + +func (_this CommitmentPolicy) Dtor_DBE() DBECommitmentPolicy { + return _this.Get_().(CommitmentPolicy_DBE).DBE +} + +func (_this CommitmentPolicy) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case CommitmentPolicy_ESDK: + { + return "AwsCryptographyMaterialProvidersTypes.CommitmentPolicy.ESDK" + "(" + _dafny.String(data.ESDK) + ")" + } + case CommitmentPolicy_DBE: + { + return "AwsCryptographyMaterialProvidersTypes.CommitmentPolicy.DBE" + "(" + _dafny.String(data.DBE) + ")" + } + default: + { + return "" + } + } +} + +func (_this CommitmentPolicy) Equals(other CommitmentPolicy) bool { + switch data1 := _this.Get_().(type) { + case CommitmentPolicy_ESDK: + { + data2, ok := other.Get_().(CommitmentPolicy_ESDK) + return ok && data1.ESDK.Equals(data2.ESDK) + } + case CommitmentPolicy_DBE: + { + data2, ok := other.Get_().(CommitmentPolicy_DBE) + return ok && data1.DBE.Equals(data2.DBE) + } + default: + { + return false // unexpected + } + } +} + +func (_this CommitmentPolicy) EqualsGeneric(other interface{}) bool { + typed, ok := other.(CommitmentPolicy) + return ok && _this.Equals(typed) +} + +func Type_CommitmentPolicy_() _dafny.TypeDescriptor { + return type_CommitmentPolicy_{} +} + +type type_CommitmentPolicy_ struct { +} + +func (_this type_CommitmentPolicy_) Default() interface{} { + return Companion_CommitmentPolicy_.Default() +} + +func (_this type_CommitmentPolicy_) String() string { + return "AwsCryptographyMaterialProvidersTypes.CommitmentPolicy" +} +func (_this CommitmentPolicy) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = CommitmentPolicy{} + +// End of datatype CommitmentPolicy + +// Definition of class CountingNumber +type CountingNumber struct { +} + +func New_CountingNumber_() *CountingNumber { + _this := CountingNumber{} + + return &_this +} + +type CompanionStruct_CountingNumber_ struct { +} + +var Companion_CountingNumber_ = CompanionStruct_CountingNumber_{} + +func (*CountingNumber) String() string { + return "AwsCryptographyMaterialProvidersTypes.CountingNumber" +} + +// End of class CountingNumber + +func Type_CountingNumber_() _dafny.TypeDescriptor { + return type_CountingNumber_{} +} + +type type_CountingNumber_ struct { +} + +func (_this type_CountingNumber_) Default() interface{} { + return int32(0) +} + +func (_this type_CountingNumber_) String() string { + return "AwsCryptographyMaterialProvidersTypes.CountingNumber" +} +func (_this *CompanionStruct_CountingNumber_) Is_(__source int32) bool { + var _0_x int32 = (__source) + _ = _0_x + if true { + return Companion_Default___.IsValid__CountingNumber(_0_x) + } + return false +} + +// Definition of datatype CreateAwsKmsDiscoveryKeyringInput +type CreateAwsKmsDiscoveryKeyringInput struct { + Data_CreateAwsKmsDiscoveryKeyringInput_ +} + +func (_this CreateAwsKmsDiscoveryKeyringInput) Get_() Data_CreateAwsKmsDiscoveryKeyringInput_ { + return _this.Data_CreateAwsKmsDiscoveryKeyringInput_ +} + +type Data_CreateAwsKmsDiscoveryKeyringInput_ interface { + isCreateAwsKmsDiscoveryKeyringInput() +} + +type CompanionStruct_CreateAwsKmsDiscoveryKeyringInput_ struct { +} + +var Companion_CreateAwsKmsDiscoveryKeyringInput_ = CompanionStruct_CreateAwsKmsDiscoveryKeyringInput_{} + +type CreateAwsKmsDiscoveryKeyringInput_CreateAwsKmsDiscoveryKeyringInput struct { + KmsClient m_ComAmazonawsKmsTypes.IKMSClient + DiscoveryFilter m_Wrappers.Option + GrantTokens m_Wrappers.Option +} + +func (CreateAwsKmsDiscoveryKeyringInput_CreateAwsKmsDiscoveryKeyringInput) isCreateAwsKmsDiscoveryKeyringInput() { +} + +func (CompanionStruct_CreateAwsKmsDiscoveryKeyringInput_) Create_CreateAwsKmsDiscoveryKeyringInput_(KmsClient m_ComAmazonawsKmsTypes.IKMSClient, DiscoveryFilter m_Wrappers.Option, GrantTokens m_Wrappers.Option) CreateAwsKmsDiscoveryKeyringInput { + return CreateAwsKmsDiscoveryKeyringInput{CreateAwsKmsDiscoveryKeyringInput_CreateAwsKmsDiscoveryKeyringInput{KmsClient, DiscoveryFilter, GrantTokens}} +} + +func (_this CreateAwsKmsDiscoveryKeyringInput) Is_CreateAwsKmsDiscoveryKeyringInput() bool { + _, ok := _this.Get_().(CreateAwsKmsDiscoveryKeyringInput_CreateAwsKmsDiscoveryKeyringInput) + return ok +} + +func (CompanionStruct_CreateAwsKmsDiscoveryKeyringInput_) Default() CreateAwsKmsDiscoveryKeyringInput { + return Companion_CreateAwsKmsDiscoveryKeyringInput_.Create_CreateAwsKmsDiscoveryKeyringInput_((m_ComAmazonawsKmsTypes.IKMSClient)(nil), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this CreateAwsKmsDiscoveryKeyringInput) Dtor_kmsClient() m_ComAmazonawsKmsTypes.IKMSClient { + return _this.Get_().(CreateAwsKmsDiscoveryKeyringInput_CreateAwsKmsDiscoveryKeyringInput).KmsClient +} + +func (_this CreateAwsKmsDiscoveryKeyringInput) Dtor_discoveryFilter() m_Wrappers.Option { + return _this.Get_().(CreateAwsKmsDiscoveryKeyringInput_CreateAwsKmsDiscoveryKeyringInput).DiscoveryFilter +} + +func (_this CreateAwsKmsDiscoveryKeyringInput) Dtor_grantTokens() m_Wrappers.Option { + return _this.Get_().(CreateAwsKmsDiscoveryKeyringInput_CreateAwsKmsDiscoveryKeyringInput).GrantTokens +} + +func (_this CreateAwsKmsDiscoveryKeyringInput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case CreateAwsKmsDiscoveryKeyringInput_CreateAwsKmsDiscoveryKeyringInput: + { + return "AwsCryptographyMaterialProvidersTypes.CreateAwsKmsDiscoveryKeyringInput.CreateAwsKmsDiscoveryKeyringInput" + "(" + _dafny.String(data.KmsClient) + ", " + _dafny.String(data.DiscoveryFilter) + ", " + _dafny.String(data.GrantTokens) + ")" + } + default: + { + return "" + } + } +} + +func (_this CreateAwsKmsDiscoveryKeyringInput) Equals(other CreateAwsKmsDiscoveryKeyringInput) bool { + switch data1 := _this.Get_().(type) { + case CreateAwsKmsDiscoveryKeyringInput_CreateAwsKmsDiscoveryKeyringInput: + { + data2, ok := other.Get_().(CreateAwsKmsDiscoveryKeyringInput_CreateAwsKmsDiscoveryKeyringInput) + return ok && _dafny.AreEqual(data1.KmsClient, data2.KmsClient) && data1.DiscoveryFilter.Equals(data2.DiscoveryFilter) && data1.GrantTokens.Equals(data2.GrantTokens) + } + default: + { + return false // unexpected + } + } +} + +func (_this CreateAwsKmsDiscoveryKeyringInput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(CreateAwsKmsDiscoveryKeyringInput) + return ok && _this.Equals(typed) +} + +func Type_CreateAwsKmsDiscoveryKeyringInput_() _dafny.TypeDescriptor { + return type_CreateAwsKmsDiscoveryKeyringInput_{} +} + +type type_CreateAwsKmsDiscoveryKeyringInput_ struct { +} + +func (_this type_CreateAwsKmsDiscoveryKeyringInput_) Default() interface{} { + return Companion_CreateAwsKmsDiscoveryKeyringInput_.Default() +} + +func (_this type_CreateAwsKmsDiscoveryKeyringInput_) String() string { + return "AwsCryptographyMaterialProvidersTypes.CreateAwsKmsDiscoveryKeyringInput" +} +func (_this CreateAwsKmsDiscoveryKeyringInput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = CreateAwsKmsDiscoveryKeyringInput{} + +// End of datatype CreateAwsKmsDiscoveryKeyringInput + +// Definition of datatype CreateAwsKmsDiscoveryMultiKeyringInput +type CreateAwsKmsDiscoveryMultiKeyringInput struct { + Data_CreateAwsKmsDiscoveryMultiKeyringInput_ +} + +func (_this CreateAwsKmsDiscoveryMultiKeyringInput) Get_() Data_CreateAwsKmsDiscoveryMultiKeyringInput_ { + return _this.Data_CreateAwsKmsDiscoveryMultiKeyringInput_ +} + +type Data_CreateAwsKmsDiscoveryMultiKeyringInput_ interface { + isCreateAwsKmsDiscoveryMultiKeyringInput() +} + +type CompanionStruct_CreateAwsKmsDiscoveryMultiKeyringInput_ struct { +} + +var Companion_CreateAwsKmsDiscoveryMultiKeyringInput_ = CompanionStruct_CreateAwsKmsDiscoveryMultiKeyringInput_{} + +type CreateAwsKmsDiscoveryMultiKeyringInput_CreateAwsKmsDiscoveryMultiKeyringInput struct { + Regions _dafny.Sequence + DiscoveryFilter m_Wrappers.Option + ClientSupplier m_Wrappers.Option + GrantTokens m_Wrappers.Option +} + +func (CreateAwsKmsDiscoveryMultiKeyringInput_CreateAwsKmsDiscoveryMultiKeyringInput) isCreateAwsKmsDiscoveryMultiKeyringInput() { +} + +func (CompanionStruct_CreateAwsKmsDiscoveryMultiKeyringInput_) Create_CreateAwsKmsDiscoveryMultiKeyringInput_(Regions _dafny.Sequence, DiscoveryFilter m_Wrappers.Option, ClientSupplier m_Wrappers.Option, GrantTokens m_Wrappers.Option) CreateAwsKmsDiscoveryMultiKeyringInput { + return CreateAwsKmsDiscoveryMultiKeyringInput{CreateAwsKmsDiscoveryMultiKeyringInput_CreateAwsKmsDiscoveryMultiKeyringInput{Regions, DiscoveryFilter, ClientSupplier, GrantTokens}} +} + +func (_this CreateAwsKmsDiscoveryMultiKeyringInput) Is_CreateAwsKmsDiscoveryMultiKeyringInput() bool { + _, ok := _this.Get_().(CreateAwsKmsDiscoveryMultiKeyringInput_CreateAwsKmsDiscoveryMultiKeyringInput) + return ok +} + +func (CompanionStruct_CreateAwsKmsDiscoveryMultiKeyringInput_) Default() CreateAwsKmsDiscoveryMultiKeyringInput { + return Companion_CreateAwsKmsDiscoveryMultiKeyringInput_.Create_CreateAwsKmsDiscoveryMultiKeyringInput_(_dafny.EmptySeq, m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this CreateAwsKmsDiscoveryMultiKeyringInput) Dtor_regions() _dafny.Sequence { + return _this.Get_().(CreateAwsKmsDiscoveryMultiKeyringInput_CreateAwsKmsDiscoveryMultiKeyringInput).Regions +} + +func (_this CreateAwsKmsDiscoveryMultiKeyringInput) Dtor_discoveryFilter() m_Wrappers.Option { + return _this.Get_().(CreateAwsKmsDiscoveryMultiKeyringInput_CreateAwsKmsDiscoveryMultiKeyringInput).DiscoveryFilter +} + +func (_this CreateAwsKmsDiscoveryMultiKeyringInput) Dtor_clientSupplier() m_Wrappers.Option { + return _this.Get_().(CreateAwsKmsDiscoveryMultiKeyringInput_CreateAwsKmsDiscoveryMultiKeyringInput).ClientSupplier +} + +func (_this CreateAwsKmsDiscoveryMultiKeyringInput) Dtor_grantTokens() m_Wrappers.Option { + return _this.Get_().(CreateAwsKmsDiscoveryMultiKeyringInput_CreateAwsKmsDiscoveryMultiKeyringInput).GrantTokens +} + +func (_this CreateAwsKmsDiscoveryMultiKeyringInput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case CreateAwsKmsDiscoveryMultiKeyringInput_CreateAwsKmsDiscoveryMultiKeyringInput: + { + return "AwsCryptographyMaterialProvidersTypes.CreateAwsKmsDiscoveryMultiKeyringInput.CreateAwsKmsDiscoveryMultiKeyringInput" + "(" + _dafny.String(data.Regions) + ", " + _dafny.String(data.DiscoveryFilter) + ", " + _dafny.String(data.ClientSupplier) + ", " + _dafny.String(data.GrantTokens) + ")" + } + default: + { + return "" + } + } +} + +func (_this CreateAwsKmsDiscoveryMultiKeyringInput) Equals(other CreateAwsKmsDiscoveryMultiKeyringInput) bool { + switch data1 := _this.Get_().(type) { + case CreateAwsKmsDiscoveryMultiKeyringInput_CreateAwsKmsDiscoveryMultiKeyringInput: + { + data2, ok := other.Get_().(CreateAwsKmsDiscoveryMultiKeyringInput_CreateAwsKmsDiscoveryMultiKeyringInput) + return ok && data1.Regions.Equals(data2.Regions) && data1.DiscoveryFilter.Equals(data2.DiscoveryFilter) && data1.ClientSupplier.Equals(data2.ClientSupplier) && data1.GrantTokens.Equals(data2.GrantTokens) + } + default: + { + return false // unexpected + } + } +} + +func (_this CreateAwsKmsDiscoveryMultiKeyringInput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(CreateAwsKmsDiscoveryMultiKeyringInput) + return ok && _this.Equals(typed) +} + +func Type_CreateAwsKmsDiscoveryMultiKeyringInput_() _dafny.TypeDescriptor { + return type_CreateAwsKmsDiscoveryMultiKeyringInput_{} +} + +type type_CreateAwsKmsDiscoveryMultiKeyringInput_ struct { +} + +func (_this type_CreateAwsKmsDiscoveryMultiKeyringInput_) Default() interface{} { + return Companion_CreateAwsKmsDiscoveryMultiKeyringInput_.Default() +} + +func (_this type_CreateAwsKmsDiscoveryMultiKeyringInput_) String() string { + return "AwsCryptographyMaterialProvidersTypes.CreateAwsKmsDiscoveryMultiKeyringInput" +} +func (_this CreateAwsKmsDiscoveryMultiKeyringInput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = CreateAwsKmsDiscoveryMultiKeyringInput{} + +// End of datatype CreateAwsKmsDiscoveryMultiKeyringInput + +// Definition of datatype CreateAwsKmsEcdhKeyringInput +type CreateAwsKmsEcdhKeyringInput struct { + Data_CreateAwsKmsEcdhKeyringInput_ +} + +func (_this CreateAwsKmsEcdhKeyringInput) Get_() Data_CreateAwsKmsEcdhKeyringInput_ { + return _this.Data_CreateAwsKmsEcdhKeyringInput_ +} + +type Data_CreateAwsKmsEcdhKeyringInput_ interface { + isCreateAwsKmsEcdhKeyringInput() +} + +type CompanionStruct_CreateAwsKmsEcdhKeyringInput_ struct { +} + +var Companion_CreateAwsKmsEcdhKeyringInput_ = CompanionStruct_CreateAwsKmsEcdhKeyringInput_{} + +type CreateAwsKmsEcdhKeyringInput_CreateAwsKmsEcdhKeyringInput struct { + KeyAgreementScheme KmsEcdhStaticConfigurations + CurveSpec m_AwsCryptographyPrimitivesTypes.ECDHCurveSpec + KmsClient m_ComAmazonawsKmsTypes.IKMSClient + GrantTokens m_Wrappers.Option +} + +func (CreateAwsKmsEcdhKeyringInput_CreateAwsKmsEcdhKeyringInput) isCreateAwsKmsEcdhKeyringInput() {} + +func (CompanionStruct_CreateAwsKmsEcdhKeyringInput_) Create_CreateAwsKmsEcdhKeyringInput_(KeyAgreementScheme KmsEcdhStaticConfigurations, CurveSpec m_AwsCryptographyPrimitivesTypes.ECDHCurveSpec, KmsClient m_ComAmazonawsKmsTypes.IKMSClient, GrantTokens m_Wrappers.Option) CreateAwsKmsEcdhKeyringInput { + return CreateAwsKmsEcdhKeyringInput{CreateAwsKmsEcdhKeyringInput_CreateAwsKmsEcdhKeyringInput{KeyAgreementScheme, CurveSpec, KmsClient, GrantTokens}} +} + +func (_this CreateAwsKmsEcdhKeyringInput) Is_CreateAwsKmsEcdhKeyringInput() bool { + _, ok := _this.Get_().(CreateAwsKmsEcdhKeyringInput_CreateAwsKmsEcdhKeyringInput) + return ok +} + +func (CompanionStruct_CreateAwsKmsEcdhKeyringInput_) Default() CreateAwsKmsEcdhKeyringInput { + return Companion_CreateAwsKmsEcdhKeyringInput_.Create_CreateAwsKmsEcdhKeyringInput_(Companion_KmsEcdhStaticConfigurations_.Default(), m_AwsCryptographyPrimitivesTypes.Companion_ECDHCurveSpec_.Default(), (m_ComAmazonawsKmsTypes.IKMSClient)(nil), m_Wrappers.Companion_Option_.Default()) +} + +func (_this CreateAwsKmsEcdhKeyringInput) Dtor_KeyAgreementScheme() KmsEcdhStaticConfigurations { + return _this.Get_().(CreateAwsKmsEcdhKeyringInput_CreateAwsKmsEcdhKeyringInput).KeyAgreementScheme +} + +func (_this CreateAwsKmsEcdhKeyringInput) Dtor_curveSpec() m_AwsCryptographyPrimitivesTypes.ECDHCurveSpec { + return _this.Get_().(CreateAwsKmsEcdhKeyringInput_CreateAwsKmsEcdhKeyringInput).CurveSpec +} + +func (_this CreateAwsKmsEcdhKeyringInput) Dtor_kmsClient() m_ComAmazonawsKmsTypes.IKMSClient { + return _this.Get_().(CreateAwsKmsEcdhKeyringInput_CreateAwsKmsEcdhKeyringInput).KmsClient +} + +func (_this CreateAwsKmsEcdhKeyringInput) Dtor_grantTokens() m_Wrappers.Option { + return _this.Get_().(CreateAwsKmsEcdhKeyringInput_CreateAwsKmsEcdhKeyringInput).GrantTokens +} + +func (_this CreateAwsKmsEcdhKeyringInput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case CreateAwsKmsEcdhKeyringInput_CreateAwsKmsEcdhKeyringInput: + { + return "AwsCryptographyMaterialProvidersTypes.CreateAwsKmsEcdhKeyringInput.CreateAwsKmsEcdhKeyringInput" + "(" + _dafny.String(data.KeyAgreementScheme) + ", " + _dafny.String(data.CurveSpec) + ", " + _dafny.String(data.KmsClient) + ", " + _dafny.String(data.GrantTokens) + ")" + } + default: + { + return "" + } + } +} + +func (_this CreateAwsKmsEcdhKeyringInput) Equals(other CreateAwsKmsEcdhKeyringInput) bool { + switch data1 := _this.Get_().(type) { + case CreateAwsKmsEcdhKeyringInput_CreateAwsKmsEcdhKeyringInput: + { + data2, ok := other.Get_().(CreateAwsKmsEcdhKeyringInput_CreateAwsKmsEcdhKeyringInput) + return ok && data1.KeyAgreementScheme.Equals(data2.KeyAgreementScheme) && data1.CurveSpec.Equals(data2.CurveSpec) && _dafny.AreEqual(data1.KmsClient, data2.KmsClient) && data1.GrantTokens.Equals(data2.GrantTokens) + } + default: + { + return false // unexpected + } + } +} + +func (_this CreateAwsKmsEcdhKeyringInput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(CreateAwsKmsEcdhKeyringInput) + return ok && _this.Equals(typed) +} + +func Type_CreateAwsKmsEcdhKeyringInput_() _dafny.TypeDescriptor { + return type_CreateAwsKmsEcdhKeyringInput_{} +} + +type type_CreateAwsKmsEcdhKeyringInput_ struct { +} + +func (_this type_CreateAwsKmsEcdhKeyringInput_) Default() interface{} { + return Companion_CreateAwsKmsEcdhKeyringInput_.Default() +} + +func (_this type_CreateAwsKmsEcdhKeyringInput_) String() string { + return "AwsCryptographyMaterialProvidersTypes.CreateAwsKmsEcdhKeyringInput" +} +func (_this CreateAwsKmsEcdhKeyringInput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = CreateAwsKmsEcdhKeyringInput{} + +// End of datatype CreateAwsKmsEcdhKeyringInput + +// Definition of datatype CreateAwsKmsHierarchicalKeyringInput +type CreateAwsKmsHierarchicalKeyringInput struct { + Data_CreateAwsKmsHierarchicalKeyringInput_ +} + +func (_this CreateAwsKmsHierarchicalKeyringInput) Get_() Data_CreateAwsKmsHierarchicalKeyringInput_ { + return _this.Data_CreateAwsKmsHierarchicalKeyringInput_ +} + +type Data_CreateAwsKmsHierarchicalKeyringInput_ interface { + isCreateAwsKmsHierarchicalKeyringInput() +} + +type CompanionStruct_CreateAwsKmsHierarchicalKeyringInput_ struct { +} + +var Companion_CreateAwsKmsHierarchicalKeyringInput_ = CompanionStruct_CreateAwsKmsHierarchicalKeyringInput_{} + +type CreateAwsKmsHierarchicalKeyringInput_CreateAwsKmsHierarchicalKeyringInput struct { + BranchKeyId m_Wrappers.Option + BranchKeyIdSupplier m_Wrappers.Option + KeyStore m_AwsCryptographyKeyStoreTypes.IKeyStoreClient + TtlSeconds int64 + Cache m_Wrappers.Option + PartitionId m_Wrappers.Option +} + +func (CreateAwsKmsHierarchicalKeyringInput_CreateAwsKmsHierarchicalKeyringInput) isCreateAwsKmsHierarchicalKeyringInput() { +} + +func (CompanionStruct_CreateAwsKmsHierarchicalKeyringInput_) Create_CreateAwsKmsHierarchicalKeyringInput_(BranchKeyId m_Wrappers.Option, BranchKeyIdSupplier m_Wrappers.Option, KeyStore m_AwsCryptographyKeyStoreTypes.IKeyStoreClient, TtlSeconds int64, Cache m_Wrappers.Option, PartitionId m_Wrappers.Option) CreateAwsKmsHierarchicalKeyringInput { + return CreateAwsKmsHierarchicalKeyringInput{CreateAwsKmsHierarchicalKeyringInput_CreateAwsKmsHierarchicalKeyringInput{BranchKeyId, BranchKeyIdSupplier, KeyStore, TtlSeconds, Cache, PartitionId}} +} + +func (_this CreateAwsKmsHierarchicalKeyringInput) Is_CreateAwsKmsHierarchicalKeyringInput() bool { + _, ok := _this.Get_().(CreateAwsKmsHierarchicalKeyringInput_CreateAwsKmsHierarchicalKeyringInput) + return ok +} + +func (CompanionStruct_CreateAwsKmsHierarchicalKeyringInput_) Default() CreateAwsKmsHierarchicalKeyringInput { + return Companion_CreateAwsKmsHierarchicalKeyringInput_.Create_CreateAwsKmsHierarchicalKeyringInput_(m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), (m_AwsCryptographyKeyStoreTypes.IKeyStoreClient)(nil), int64(0), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this CreateAwsKmsHierarchicalKeyringInput) Dtor_branchKeyId() m_Wrappers.Option { + return _this.Get_().(CreateAwsKmsHierarchicalKeyringInput_CreateAwsKmsHierarchicalKeyringInput).BranchKeyId +} + +func (_this CreateAwsKmsHierarchicalKeyringInput) Dtor_branchKeyIdSupplier() m_Wrappers.Option { + return _this.Get_().(CreateAwsKmsHierarchicalKeyringInput_CreateAwsKmsHierarchicalKeyringInput).BranchKeyIdSupplier +} + +func (_this CreateAwsKmsHierarchicalKeyringInput) Dtor_keyStore() m_AwsCryptographyKeyStoreTypes.IKeyStoreClient { + return _this.Get_().(CreateAwsKmsHierarchicalKeyringInput_CreateAwsKmsHierarchicalKeyringInput).KeyStore +} + +func (_this CreateAwsKmsHierarchicalKeyringInput) Dtor_ttlSeconds() int64 { + return _this.Get_().(CreateAwsKmsHierarchicalKeyringInput_CreateAwsKmsHierarchicalKeyringInput).TtlSeconds +} + +func (_this CreateAwsKmsHierarchicalKeyringInput) Dtor_cache() m_Wrappers.Option { + return _this.Get_().(CreateAwsKmsHierarchicalKeyringInput_CreateAwsKmsHierarchicalKeyringInput).Cache +} + +func (_this CreateAwsKmsHierarchicalKeyringInput) Dtor_partitionId() m_Wrappers.Option { + return _this.Get_().(CreateAwsKmsHierarchicalKeyringInput_CreateAwsKmsHierarchicalKeyringInput).PartitionId +} + +func (_this CreateAwsKmsHierarchicalKeyringInput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case CreateAwsKmsHierarchicalKeyringInput_CreateAwsKmsHierarchicalKeyringInput: + { + return "AwsCryptographyMaterialProvidersTypes.CreateAwsKmsHierarchicalKeyringInput.CreateAwsKmsHierarchicalKeyringInput" + "(" + _dafny.String(data.BranchKeyId) + ", " + _dafny.String(data.BranchKeyIdSupplier) + ", " + _dafny.String(data.KeyStore) + ", " + _dafny.String(data.TtlSeconds) + ", " + _dafny.String(data.Cache) + ", " + _dafny.String(data.PartitionId) + ")" + } + default: + { + return "" + } + } +} + +func (_this CreateAwsKmsHierarchicalKeyringInput) Equals(other CreateAwsKmsHierarchicalKeyringInput) bool { + switch data1 := _this.Get_().(type) { + case CreateAwsKmsHierarchicalKeyringInput_CreateAwsKmsHierarchicalKeyringInput: + { + data2, ok := other.Get_().(CreateAwsKmsHierarchicalKeyringInput_CreateAwsKmsHierarchicalKeyringInput) + return ok && data1.BranchKeyId.Equals(data2.BranchKeyId) && data1.BranchKeyIdSupplier.Equals(data2.BranchKeyIdSupplier) && _dafny.AreEqual(data1.KeyStore, data2.KeyStore) && data1.TtlSeconds == data2.TtlSeconds && data1.Cache.Equals(data2.Cache) && data1.PartitionId.Equals(data2.PartitionId) + } + default: + { + return false // unexpected + } + } +} + +func (_this CreateAwsKmsHierarchicalKeyringInput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(CreateAwsKmsHierarchicalKeyringInput) + return ok && _this.Equals(typed) +} + +func Type_CreateAwsKmsHierarchicalKeyringInput_() _dafny.TypeDescriptor { + return type_CreateAwsKmsHierarchicalKeyringInput_{} +} + +type type_CreateAwsKmsHierarchicalKeyringInput_ struct { +} + +func (_this type_CreateAwsKmsHierarchicalKeyringInput_) Default() interface{} { + return Companion_CreateAwsKmsHierarchicalKeyringInput_.Default() +} + +func (_this type_CreateAwsKmsHierarchicalKeyringInput_) String() string { + return "AwsCryptographyMaterialProvidersTypes.CreateAwsKmsHierarchicalKeyringInput" +} +func (_this CreateAwsKmsHierarchicalKeyringInput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = CreateAwsKmsHierarchicalKeyringInput{} + +// End of datatype CreateAwsKmsHierarchicalKeyringInput + +// Definition of datatype CreateAwsKmsKeyringInput +type CreateAwsKmsKeyringInput struct { + Data_CreateAwsKmsKeyringInput_ +} + +func (_this CreateAwsKmsKeyringInput) Get_() Data_CreateAwsKmsKeyringInput_ { + return _this.Data_CreateAwsKmsKeyringInput_ +} + +type Data_CreateAwsKmsKeyringInput_ interface { + isCreateAwsKmsKeyringInput() +} + +type CompanionStruct_CreateAwsKmsKeyringInput_ struct { +} + +var Companion_CreateAwsKmsKeyringInput_ = CompanionStruct_CreateAwsKmsKeyringInput_{} + +type CreateAwsKmsKeyringInput_CreateAwsKmsKeyringInput struct { + KmsKeyId _dafny.Sequence + KmsClient m_ComAmazonawsKmsTypes.IKMSClient + GrantTokens m_Wrappers.Option +} + +func (CreateAwsKmsKeyringInput_CreateAwsKmsKeyringInput) isCreateAwsKmsKeyringInput() {} + +func (CompanionStruct_CreateAwsKmsKeyringInput_) Create_CreateAwsKmsKeyringInput_(KmsKeyId _dafny.Sequence, KmsClient m_ComAmazonawsKmsTypes.IKMSClient, GrantTokens m_Wrappers.Option) CreateAwsKmsKeyringInput { + return CreateAwsKmsKeyringInput{CreateAwsKmsKeyringInput_CreateAwsKmsKeyringInput{KmsKeyId, KmsClient, GrantTokens}} +} + +func (_this CreateAwsKmsKeyringInput) Is_CreateAwsKmsKeyringInput() bool { + _, ok := _this.Get_().(CreateAwsKmsKeyringInput_CreateAwsKmsKeyringInput) + return ok +} + +func (CompanionStruct_CreateAwsKmsKeyringInput_) Default() CreateAwsKmsKeyringInput { + return Companion_CreateAwsKmsKeyringInput_.Create_CreateAwsKmsKeyringInput_(_dafny.EmptySeq.SetString(), (m_ComAmazonawsKmsTypes.IKMSClient)(nil), m_Wrappers.Companion_Option_.Default()) +} + +func (_this CreateAwsKmsKeyringInput) Dtor_kmsKeyId() _dafny.Sequence { + return _this.Get_().(CreateAwsKmsKeyringInput_CreateAwsKmsKeyringInput).KmsKeyId +} + +func (_this CreateAwsKmsKeyringInput) Dtor_kmsClient() m_ComAmazonawsKmsTypes.IKMSClient { + return _this.Get_().(CreateAwsKmsKeyringInput_CreateAwsKmsKeyringInput).KmsClient +} + +func (_this CreateAwsKmsKeyringInput) Dtor_grantTokens() m_Wrappers.Option { + return _this.Get_().(CreateAwsKmsKeyringInput_CreateAwsKmsKeyringInput).GrantTokens +} + +func (_this CreateAwsKmsKeyringInput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case CreateAwsKmsKeyringInput_CreateAwsKmsKeyringInput: + { + return "AwsCryptographyMaterialProvidersTypes.CreateAwsKmsKeyringInput.CreateAwsKmsKeyringInput" + "(" + _dafny.String(data.KmsKeyId) + ", " + _dafny.String(data.KmsClient) + ", " + _dafny.String(data.GrantTokens) + ")" + } + default: + { + return "" + } + } +} + +func (_this CreateAwsKmsKeyringInput) Equals(other CreateAwsKmsKeyringInput) bool { + switch data1 := _this.Get_().(type) { + case CreateAwsKmsKeyringInput_CreateAwsKmsKeyringInput: + { + data2, ok := other.Get_().(CreateAwsKmsKeyringInput_CreateAwsKmsKeyringInput) + return ok && data1.KmsKeyId.Equals(data2.KmsKeyId) && _dafny.AreEqual(data1.KmsClient, data2.KmsClient) && data1.GrantTokens.Equals(data2.GrantTokens) + } + default: + { + return false // unexpected + } + } +} + +func (_this CreateAwsKmsKeyringInput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(CreateAwsKmsKeyringInput) + return ok && _this.Equals(typed) +} + +func Type_CreateAwsKmsKeyringInput_() _dafny.TypeDescriptor { + return type_CreateAwsKmsKeyringInput_{} +} + +type type_CreateAwsKmsKeyringInput_ struct { +} + +func (_this type_CreateAwsKmsKeyringInput_) Default() interface{} { + return Companion_CreateAwsKmsKeyringInput_.Default() +} + +func (_this type_CreateAwsKmsKeyringInput_) String() string { + return "AwsCryptographyMaterialProvidersTypes.CreateAwsKmsKeyringInput" +} +func (_this CreateAwsKmsKeyringInput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = CreateAwsKmsKeyringInput{} + +// End of datatype CreateAwsKmsKeyringInput + +// Definition of datatype CreateAwsKmsMrkDiscoveryKeyringInput +type CreateAwsKmsMrkDiscoveryKeyringInput struct { + Data_CreateAwsKmsMrkDiscoveryKeyringInput_ +} + +func (_this CreateAwsKmsMrkDiscoveryKeyringInput) Get_() Data_CreateAwsKmsMrkDiscoveryKeyringInput_ { + return _this.Data_CreateAwsKmsMrkDiscoveryKeyringInput_ +} + +type Data_CreateAwsKmsMrkDiscoveryKeyringInput_ interface { + isCreateAwsKmsMrkDiscoveryKeyringInput() +} + +type CompanionStruct_CreateAwsKmsMrkDiscoveryKeyringInput_ struct { +} + +var Companion_CreateAwsKmsMrkDiscoveryKeyringInput_ = CompanionStruct_CreateAwsKmsMrkDiscoveryKeyringInput_{} + +type CreateAwsKmsMrkDiscoveryKeyringInput_CreateAwsKmsMrkDiscoveryKeyringInput struct { + KmsClient m_ComAmazonawsKmsTypes.IKMSClient + DiscoveryFilter m_Wrappers.Option + GrantTokens m_Wrappers.Option + Region _dafny.Sequence +} + +func (CreateAwsKmsMrkDiscoveryKeyringInput_CreateAwsKmsMrkDiscoveryKeyringInput) isCreateAwsKmsMrkDiscoveryKeyringInput() { +} + +func (CompanionStruct_CreateAwsKmsMrkDiscoveryKeyringInput_) Create_CreateAwsKmsMrkDiscoveryKeyringInput_(KmsClient m_ComAmazonawsKmsTypes.IKMSClient, DiscoveryFilter m_Wrappers.Option, GrantTokens m_Wrappers.Option, Region _dafny.Sequence) CreateAwsKmsMrkDiscoveryKeyringInput { + return CreateAwsKmsMrkDiscoveryKeyringInput{CreateAwsKmsMrkDiscoveryKeyringInput_CreateAwsKmsMrkDiscoveryKeyringInput{KmsClient, DiscoveryFilter, GrantTokens, Region}} +} + +func (_this CreateAwsKmsMrkDiscoveryKeyringInput) Is_CreateAwsKmsMrkDiscoveryKeyringInput() bool { + _, ok := _this.Get_().(CreateAwsKmsMrkDiscoveryKeyringInput_CreateAwsKmsMrkDiscoveryKeyringInput) + return ok +} + +func (CompanionStruct_CreateAwsKmsMrkDiscoveryKeyringInput_) Default() CreateAwsKmsMrkDiscoveryKeyringInput { + return Companion_CreateAwsKmsMrkDiscoveryKeyringInput_.Create_CreateAwsKmsMrkDiscoveryKeyringInput_((m_ComAmazonawsKmsTypes.IKMSClient)(nil), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), _dafny.EmptySeq.SetString()) +} + +func (_this CreateAwsKmsMrkDiscoveryKeyringInput) Dtor_kmsClient() m_ComAmazonawsKmsTypes.IKMSClient { + return _this.Get_().(CreateAwsKmsMrkDiscoveryKeyringInput_CreateAwsKmsMrkDiscoveryKeyringInput).KmsClient +} + +func (_this CreateAwsKmsMrkDiscoveryKeyringInput) Dtor_discoveryFilter() m_Wrappers.Option { + return _this.Get_().(CreateAwsKmsMrkDiscoveryKeyringInput_CreateAwsKmsMrkDiscoveryKeyringInput).DiscoveryFilter +} + +func (_this CreateAwsKmsMrkDiscoveryKeyringInput) Dtor_grantTokens() m_Wrappers.Option { + return _this.Get_().(CreateAwsKmsMrkDiscoveryKeyringInput_CreateAwsKmsMrkDiscoveryKeyringInput).GrantTokens +} + +func (_this CreateAwsKmsMrkDiscoveryKeyringInput) Dtor_region() _dafny.Sequence { + return _this.Get_().(CreateAwsKmsMrkDiscoveryKeyringInput_CreateAwsKmsMrkDiscoveryKeyringInput).Region +} + +func (_this CreateAwsKmsMrkDiscoveryKeyringInput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case CreateAwsKmsMrkDiscoveryKeyringInput_CreateAwsKmsMrkDiscoveryKeyringInput: + { + return "AwsCryptographyMaterialProvidersTypes.CreateAwsKmsMrkDiscoveryKeyringInput.CreateAwsKmsMrkDiscoveryKeyringInput" + "(" + _dafny.String(data.KmsClient) + ", " + _dafny.String(data.DiscoveryFilter) + ", " + _dafny.String(data.GrantTokens) + ", " + _dafny.String(data.Region) + ")" + } + default: + { + return "" + } + } +} + +func (_this CreateAwsKmsMrkDiscoveryKeyringInput) Equals(other CreateAwsKmsMrkDiscoveryKeyringInput) bool { + switch data1 := _this.Get_().(type) { + case CreateAwsKmsMrkDiscoveryKeyringInput_CreateAwsKmsMrkDiscoveryKeyringInput: + { + data2, ok := other.Get_().(CreateAwsKmsMrkDiscoveryKeyringInput_CreateAwsKmsMrkDiscoveryKeyringInput) + return ok && _dafny.AreEqual(data1.KmsClient, data2.KmsClient) && data1.DiscoveryFilter.Equals(data2.DiscoveryFilter) && data1.GrantTokens.Equals(data2.GrantTokens) && data1.Region.Equals(data2.Region) + } + default: + { + return false // unexpected + } + } +} + +func (_this CreateAwsKmsMrkDiscoveryKeyringInput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(CreateAwsKmsMrkDiscoveryKeyringInput) + return ok && _this.Equals(typed) +} + +func Type_CreateAwsKmsMrkDiscoveryKeyringInput_() _dafny.TypeDescriptor { + return type_CreateAwsKmsMrkDiscoveryKeyringInput_{} +} + +type type_CreateAwsKmsMrkDiscoveryKeyringInput_ struct { +} + +func (_this type_CreateAwsKmsMrkDiscoveryKeyringInput_) Default() interface{} { + return Companion_CreateAwsKmsMrkDiscoveryKeyringInput_.Default() +} + +func (_this type_CreateAwsKmsMrkDiscoveryKeyringInput_) String() string { + return "AwsCryptographyMaterialProvidersTypes.CreateAwsKmsMrkDiscoveryKeyringInput" +} +func (_this CreateAwsKmsMrkDiscoveryKeyringInput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = CreateAwsKmsMrkDiscoveryKeyringInput{} + +// End of datatype CreateAwsKmsMrkDiscoveryKeyringInput + +// Definition of datatype CreateAwsKmsMrkDiscoveryMultiKeyringInput +type CreateAwsKmsMrkDiscoveryMultiKeyringInput struct { + Data_CreateAwsKmsMrkDiscoveryMultiKeyringInput_ +} + +func (_this CreateAwsKmsMrkDiscoveryMultiKeyringInput) Get_() Data_CreateAwsKmsMrkDiscoveryMultiKeyringInput_ { + return _this.Data_CreateAwsKmsMrkDiscoveryMultiKeyringInput_ +} + +type Data_CreateAwsKmsMrkDiscoveryMultiKeyringInput_ interface { + isCreateAwsKmsMrkDiscoveryMultiKeyringInput() +} + +type CompanionStruct_CreateAwsKmsMrkDiscoveryMultiKeyringInput_ struct { +} + +var Companion_CreateAwsKmsMrkDiscoveryMultiKeyringInput_ = CompanionStruct_CreateAwsKmsMrkDiscoveryMultiKeyringInput_{} + +type CreateAwsKmsMrkDiscoveryMultiKeyringInput_CreateAwsKmsMrkDiscoveryMultiKeyringInput struct { + Regions _dafny.Sequence + DiscoveryFilter m_Wrappers.Option + ClientSupplier m_Wrappers.Option + GrantTokens m_Wrappers.Option +} + +func (CreateAwsKmsMrkDiscoveryMultiKeyringInput_CreateAwsKmsMrkDiscoveryMultiKeyringInput) isCreateAwsKmsMrkDiscoveryMultiKeyringInput() { +} + +func (CompanionStruct_CreateAwsKmsMrkDiscoveryMultiKeyringInput_) Create_CreateAwsKmsMrkDiscoveryMultiKeyringInput_(Regions _dafny.Sequence, DiscoveryFilter m_Wrappers.Option, ClientSupplier m_Wrappers.Option, GrantTokens m_Wrappers.Option) CreateAwsKmsMrkDiscoveryMultiKeyringInput { + return CreateAwsKmsMrkDiscoveryMultiKeyringInput{CreateAwsKmsMrkDiscoveryMultiKeyringInput_CreateAwsKmsMrkDiscoveryMultiKeyringInput{Regions, DiscoveryFilter, ClientSupplier, GrantTokens}} +} + +func (_this CreateAwsKmsMrkDiscoveryMultiKeyringInput) Is_CreateAwsKmsMrkDiscoveryMultiKeyringInput() bool { + _, ok := _this.Get_().(CreateAwsKmsMrkDiscoveryMultiKeyringInput_CreateAwsKmsMrkDiscoveryMultiKeyringInput) + return ok +} + +func (CompanionStruct_CreateAwsKmsMrkDiscoveryMultiKeyringInput_) Default() CreateAwsKmsMrkDiscoveryMultiKeyringInput { + return Companion_CreateAwsKmsMrkDiscoveryMultiKeyringInput_.Create_CreateAwsKmsMrkDiscoveryMultiKeyringInput_(_dafny.EmptySeq, m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this CreateAwsKmsMrkDiscoveryMultiKeyringInput) Dtor_regions() _dafny.Sequence { + return _this.Get_().(CreateAwsKmsMrkDiscoveryMultiKeyringInput_CreateAwsKmsMrkDiscoveryMultiKeyringInput).Regions +} + +func (_this CreateAwsKmsMrkDiscoveryMultiKeyringInput) Dtor_discoveryFilter() m_Wrappers.Option { + return _this.Get_().(CreateAwsKmsMrkDiscoveryMultiKeyringInput_CreateAwsKmsMrkDiscoveryMultiKeyringInput).DiscoveryFilter +} + +func (_this CreateAwsKmsMrkDiscoveryMultiKeyringInput) Dtor_clientSupplier() m_Wrappers.Option { + return _this.Get_().(CreateAwsKmsMrkDiscoveryMultiKeyringInput_CreateAwsKmsMrkDiscoveryMultiKeyringInput).ClientSupplier +} + +func (_this CreateAwsKmsMrkDiscoveryMultiKeyringInput) Dtor_grantTokens() m_Wrappers.Option { + return _this.Get_().(CreateAwsKmsMrkDiscoveryMultiKeyringInput_CreateAwsKmsMrkDiscoveryMultiKeyringInput).GrantTokens +} + +func (_this CreateAwsKmsMrkDiscoveryMultiKeyringInput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case CreateAwsKmsMrkDiscoveryMultiKeyringInput_CreateAwsKmsMrkDiscoveryMultiKeyringInput: + { + return "AwsCryptographyMaterialProvidersTypes.CreateAwsKmsMrkDiscoveryMultiKeyringInput.CreateAwsKmsMrkDiscoveryMultiKeyringInput" + "(" + _dafny.String(data.Regions) + ", " + _dafny.String(data.DiscoveryFilter) + ", " + _dafny.String(data.ClientSupplier) + ", " + _dafny.String(data.GrantTokens) + ")" + } + default: + { + return "" + } + } +} + +func (_this CreateAwsKmsMrkDiscoveryMultiKeyringInput) Equals(other CreateAwsKmsMrkDiscoveryMultiKeyringInput) bool { + switch data1 := _this.Get_().(type) { + case CreateAwsKmsMrkDiscoveryMultiKeyringInput_CreateAwsKmsMrkDiscoveryMultiKeyringInput: + { + data2, ok := other.Get_().(CreateAwsKmsMrkDiscoveryMultiKeyringInput_CreateAwsKmsMrkDiscoveryMultiKeyringInput) + return ok && data1.Regions.Equals(data2.Regions) && data1.DiscoveryFilter.Equals(data2.DiscoveryFilter) && data1.ClientSupplier.Equals(data2.ClientSupplier) && data1.GrantTokens.Equals(data2.GrantTokens) + } + default: + { + return false // unexpected + } + } +} + +func (_this CreateAwsKmsMrkDiscoveryMultiKeyringInput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(CreateAwsKmsMrkDiscoveryMultiKeyringInput) + return ok && _this.Equals(typed) +} + +func Type_CreateAwsKmsMrkDiscoveryMultiKeyringInput_() _dafny.TypeDescriptor { + return type_CreateAwsKmsMrkDiscoveryMultiKeyringInput_{} +} + +type type_CreateAwsKmsMrkDiscoveryMultiKeyringInput_ struct { +} + +func (_this type_CreateAwsKmsMrkDiscoveryMultiKeyringInput_) Default() interface{} { + return Companion_CreateAwsKmsMrkDiscoveryMultiKeyringInput_.Default() +} + +func (_this type_CreateAwsKmsMrkDiscoveryMultiKeyringInput_) String() string { + return "AwsCryptographyMaterialProvidersTypes.CreateAwsKmsMrkDiscoveryMultiKeyringInput" +} +func (_this CreateAwsKmsMrkDiscoveryMultiKeyringInput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = CreateAwsKmsMrkDiscoveryMultiKeyringInput{} + +// End of datatype CreateAwsKmsMrkDiscoveryMultiKeyringInput + +// Definition of datatype CreateAwsKmsMrkKeyringInput +type CreateAwsKmsMrkKeyringInput struct { + Data_CreateAwsKmsMrkKeyringInput_ +} + +func (_this CreateAwsKmsMrkKeyringInput) Get_() Data_CreateAwsKmsMrkKeyringInput_ { + return _this.Data_CreateAwsKmsMrkKeyringInput_ +} + +type Data_CreateAwsKmsMrkKeyringInput_ interface { + isCreateAwsKmsMrkKeyringInput() +} + +type CompanionStruct_CreateAwsKmsMrkKeyringInput_ struct { +} + +var Companion_CreateAwsKmsMrkKeyringInput_ = CompanionStruct_CreateAwsKmsMrkKeyringInput_{} + +type CreateAwsKmsMrkKeyringInput_CreateAwsKmsMrkKeyringInput struct { + KmsKeyId _dafny.Sequence + KmsClient m_ComAmazonawsKmsTypes.IKMSClient + GrantTokens m_Wrappers.Option +} + +func (CreateAwsKmsMrkKeyringInput_CreateAwsKmsMrkKeyringInput) isCreateAwsKmsMrkKeyringInput() {} + +func (CompanionStruct_CreateAwsKmsMrkKeyringInput_) Create_CreateAwsKmsMrkKeyringInput_(KmsKeyId _dafny.Sequence, KmsClient m_ComAmazonawsKmsTypes.IKMSClient, GrantTokens m_Wrappers.Option) CreateAwsKmsMrkKeyringInput { + return CreateAwsKmsMrkKeyringInput{CreateAwsKmsMrkKeyringInput_CreateAwsKmsMrkKeyringInput{KmsKeyId, KmsClient, GrantTokens}} +} + +func (_this CreateAwsKmsMrkKeyringInput) Is_CreateAwsKmsMrkKeyringInput() bool { + _, ok := _this.Get_().(CreateAwsKmsMrkKeyringInput_CreateAwsKmsMrkKeyringInput) + return ok +} + +func (CompanionStruct_CreateAwsKmsMrkKeyringInput_) Default() CreateAwsKmsMrkKeyringInput { + return Companion_CreateAwsKmsMrkKeyringInput_.Create_CreateAwsKmsMrkKeyringInput_(_dafny.EmptySeq.SetString(), (m_ComAmazonawsKmsTypes.IKMSClient)(nil), m_Wrappers.Companion_Option_.Default()) +} + +func (_this CreateAwsKmsMrkKeyringInput) Dtor_kmsKeyId() _dafny.Sequence { + return _this.Get_().(CreateAwsKmsMrkKeyringInput_CreateAwsKmsMrkKeyringInput).KmsKeyId +} + +func (_this CreateAwsKmsMrkKeyringInput) Dtor_kmsClient() m_ComAmazonawsKmsTypes.IKMSClient { + return _this.Get_().(CreateAwsKmsMrkKeyringInput_CreateAwsKmsMrkKeyringInput).KmsClient +} + +func (_this CreateAwsKmsMrkKeyringInput) Dtor_grantTokens() m_Wrappers.Option { + return _this.Get_().(CreateAwsKmsMrkKeyringInput_CreateAwsKmsMrkKeyringInput).GrantTokens +} + +func (_this CreateAwsKmsMrkKeyringInput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case CreateAwsKmsMrkKeyringInput_CreateAwsKmsMrkKeyringInput: + { + return "AwsCryptographyMaterialProvidersTypes.CreateAwsKmsMrkKeyringInput.CreateAwsKmsMrkKeyringInput" + "(" + _dafny.String(data.KmsKeyId) + ", " + _dafny.String(data.KmsClient) + ", " + _dafny.String(data.GrantTokens) + ")" + } + default: + { + return "" + } + } +} + +func (_this CreateAwsKmsMrkKeyringInput) Equals(other CreateAwsKmsMrkKeyringInput) bool { + switch data1 := _this.Get_().(type) { + case CreateAwsKmsMrkKeyringInput_CreateAwsKmsMrkKeyringInput: + { + data2, ok := other.Get_().(CreateAwsKmsMrkKeyringInput_CreateAwsKmsMrkKeyringInput) + return ok && data1.KmsKeyId.Equals(data2.KmsKeyId) && _dafny.AreEqual(data1.KmsClient, data2.KmsClient) && data1.GrantTokens.Equals(data2.GrantTokens) + } + default: + { + return false // unexpected + } + } +} + +func (_this CreateAwsKmsMrkKeyringInput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(CreateAwsKmsMrkKeyringInput) + return ok && _this.Equals(typed) +} + +func Type_CreateAwsKmsMrkKeyringInput_() _dafny.TypeDescriptor { + return type_CreateAwsKmsMrkKeyringInput_{} +} + +type type_CreateAwsKmsMrkKeyringInput_ struct { +} + +func (_this type_CreateAwsKmsMrkKeyringInput_) Default() interface{} { + return Companion_CreateAwsKmsMrkKeyringInput_.Default() +} + +func (_this type_CreateAwsKmsMrkKeyringInput_) String() string { + return "AwsCryptographyMaterialProvidersTypes.CreateAwsKmsMrkKeyringInput" +} +func (_this CreateAwsKmsMrkKeyringInput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = CreateAwsKmsMrkKeyringInput{} + +// End of datatype CreateAwsKmsMrkKeyringInput + +// Definition of datatype CreateAwsKmsMrkMultiKeyringInput +type CreateAwsKmsMrkMultiKeyringInput struct { + Data_CreateAwsKmsMrkMultiKeyringInput_ +} + +func (_this CreateAwsKmsMrkMultiKeyringInput) Get_() Data_CreateAwsKmsMrkMultiKeyringInput_ { + return _this.Data_CreateAwsKmsMrkMultiKeyringInput_ +} + +type Data_CreateAwsKmsMrkMultiKeyringInput_ interface { + isCreateAwsKmsMrkMultiKeyringInput() +} + +type CompanionStruct_CreateAwsKmsMrkMultiKeyringInput_ struct { +} + +var Companion_CreateAwsKmsMrkMultiKeyringInput_ = CompanionStruct_CreateAwsKmsMrkMultiKeyringInput_{} + +type CreateAwsKmsMrkMultiKeyringInput_CreateAwsKmsMrkMultiKeyringInput struct { + Generator m_Wrappers.Option + KmsKeyIds m_Wrappers.Option + ClientSupplier m_Wrappers.Option + GrantTokens m_Wrappers.Option +} + +func (CreateAwsKmsMrkMultiKeyringInput_CreateAwsKmsMrkMultiKeyringInput) isCreateAwsKmsMrkMultiKeyringInput() { +} + +func (CompanionStruct_CreateAwsKmsMrkMultiKeyringInput_) Create_CreateAwsKmsMrkMultiKeyringInput_(Generator m_Wrappers.Option, KmsKeyIds m_Wrappers.Option, ClientSupplier m_Wrappers.Option, GrantTokens m_Wrappers.Option) CreateAwsKmsMrkMultiKeyringInput { + return CreateAwsKmsMrkMultiKeyringInput{CreateAwsKmsMrkMultiKeyringInput_CreateAwsKmsMrkMultiKeyringInput{Generator, KmsKeyIds, ClientSupplier, GrantTokens}} +} + +func (_this CreateAwsKmsMrkMultiKeyringInput) Is_CreateAwsKmsMrkMultiKeyringInput() bool { + _, ok := _this.Get_().(CreateAwsKmsMrkMultiKeyringInput_CreateAwsKmsMrkMultiKeyringInput) + return ok +} + +func (CompanionStruct_CreateAwsKmsMrkMultiKeyringInput_) Default() CreateAwsKmsMrkMultiKeyringInput { + return Companion_CreateAwsKmsMrkMultiKeyringInput_.Create_CreateAwsKmsMrkMultiKeyringInput_(m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this CreateAwsKmsMrkMultiKeyringInput) Dtor_generator() m_Wrappers.Option { + return _this.Get_().(CreateAwsKmsMrkMultiKeyringInput_CreateAwsKmsMrkMultiKeyringInput).Generator +} + +func (_this CreateAwsKmsMrkMultiKeyringInput) Dtor_kmsKeyIds() m_Wrappers.Option { + return _this.Get_().(CreateAwsKmsMrkMultiKeyringInput_CreateAwsKmsMrkMultiKeyringInput).KmsKeyIds +} + +func (_this CreateAwsKmsMrkMultiKeyringInput) Dtor_clientSupplier() m_Wrappers.Option { + return _this.Get_().(CreateAwsKmsMrkMultiKeyringInput_CreateAwsKmsMrkMultiKeyringInput).ClientSupplier +} + +func (_this CreateAwsKmsMrkMultiKeyringInput) Dtor_grantTokens() m_Wrappers.Option { + return _this.Get_().(CreateAwsKmsMrkMultiKeyringInput_CreateAwsKmsMrkMultiKeyringInput).GrantTokens +} + +func (_this CreateAwsKmsMrkMultiKeyringInput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case CreateAwsKmsMrkMultiKeyringInput_CreateAwsKmsMrkMultiKeyringInput: + { + return "AwsCryptographyMaterialProvidersTypes.CreateAwsKmsMrkMultiKeyringInput.CreateAwsKmsMrkMultiKeyringInput" + "(" + _dafny.String(data.Generator) + ", " + _dafny.String(data.KmsKeyIds) + ", " + _dafny.String(data.ClientSupplier) + ", " + _dafny.String(data.GrantTokens) + ")" + } + default: + { + return "" + } + } +} + +func (_this CreateAwsKmsMrkMultiKeyringInput) Equals(other CreateAwsKmsMrkMultiKeyringInput) bool { + switch data1 := _this.Get_().(type) { + case CreateAwsKmsMrkMultiKeyringInput_CreateAwsKmsMrkMultiKeyringInput: + { + data2, ok := other.Get_().(CreateAwsKmsMrkMultiKeyringInput_CreateAwsKmsMrkMultiKeyringInput) + return ok && data1.Generator.Equals(data2.Generator) && data1.KmsKeyIds.Equals(data2.KmsKeyIds) && data1.ClientSupplier.Equals(data2.ClientSupplier) && data1.GrantTokens.Equals(data2.GrantTokens) + } + default: + { + return false // unexpected + } + } +} + +func (_this CreateAwsKmsMrkMultiKeyringInput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(CreateAwsKmsMrkMultiKeyringInput) + return ok && _this.Equals(typed) +} + +func Type_CreateAwsKmsMrkMultiKeyringInput_() _dafny.TypeDescriptor { + return type_CreateAwsKmsMrkMultiKeyringInput_{} +} + +type type_CreateAwsKmsMrkMultiKeyringInput_ struct { +} + +func (_this type_CreateAwsKmsMrkMultiKeyringInput_) Default() interface{} { + return Companion_CreateAwsKmsMrkMultiKeyringInput_.Default() +} + +func (_this type_CreateAwsKmsMrkMultiKeyringInput_) String() string { + return "AwsCryptographyMaterialProvidersTypes.CreateAwsKmsMrkMultiKeyringInput" +} +func (_this CreateAwsKmsMrkMultiKeyringInput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = CreateAwsKmsMrkMultiKeyringInput{} + +// End of datatype CreateAwsKmsMrkMultiKeyringInput + +// Definition of datatype CreateAwsKmsMultiKeyringInput +type CreateAwsKmsMultiKeyringInput struct { + Data_CreateAwsKmsMultiKeyringInput_ +} + +func (_this CreateAwsKmsMultiKeyringInput) Get_() Data_CreateAwsKmsMultiKeyringInput_ { + return _this.Data_CreateAwsKmsMultiKeyringInput_ +} + +type Data_CreateAwsKmsMultiKeyringInput_ interface { + isCreateAwsKmsMultiKeyringInput() +} + +type CompanionStruct_CreateAwsKmsMultiKeyringInput_ struct { +} + +var Companion_CreateAwsKmsMultiKeyringInput_ = CompanionStruct_CreateAwsKmsMultiKeyringInput_{} + +type CreateAwsKmsMultiKeyringInput_CreateAwsKmsMultiKeyringInput struct { + Generator m_Wrappers.Option + KmsKeyIds m_Wrappers.Option + ClientSupplier m_Wrappers.Option + GrantTokens m_Wrappers.Option +} + +func (CreateAwsKmsMultiKeyringInput_CreateAwsKmsMultiKeyringInput) isCreateAwsKmsMultiKeyringInput() { +} + +func (CompanionStruct_CreateAwsKmsMultiKeyringInput_) Create_CreateAwsKmsMultiKeyringInput_(Generator m_Wrappers.Option, KmsKeyIds m_Wrappers.Option, ClientSupplier m_Wrappers.Option, GrantTokens m_Wrappers.Option) CreateAwsKmsMultiKeyringInput { + return CreateAwsKmsMultiKeyringInput{CreateAwsKmsMultiKeyringInput_CreateAwsKmsMultiKeyringInput{Generator, KmsKeyIds, ClientSupplier, GrantTokens}} +} + +func (_this CreateAwsKmsMultiKeyringInput) Is_CreateAwsKmsMultiKeyringInput() bool { + _, ok := _this.Get_().(CreateAwsKmsMultiKeyringInput_CreateAwsKmsMultiKeyringInput) + return ok +} + +func (CompanionStruct_CreateAwsKmsMultiKeyringInput_) Default() CreateAwsKmsMultiKeyringInput { + return Companion_CreateAwsKmsMultiKeyringInput_.Create_CreateAwsKmsMultiKeyringInput_(m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this CreateAwsKmsMultiKeyringInput) Dtor_generator() m_Wrappers.Option { + return _this.Get_().(CreateAwsKmsMultiKeyringInput_CreateAwsKmsMultiKeyringInput).Generator +} + +func (_this CreateAwsKmsMultiKeyringInput) Dtor_kmsKeyIds() m_Wrappers.Option { + return _this.Get_().(CreateAwsKmsMultiKeyringInput_CreateAwsKmsMultiKeyringInput).KmsKeyIds +} + +func (_this CreateAwsKmsMultiKeyringInput) Dtor_clientSupplier() m_Wrappers.Option { + return _this.Get_().(CreateAwsKmsMultiKeyringInput_CreateAwsKmsMultiKeyringInput).ClientSupplier +} + +func (_this CreateAwsKmsMultiKeyringInput) Dtor_grantTokens() m_Wrappers.Option { + return _this.Get_().(CreateAwsKmsMultiKeyringInput_CreateAwsKmsMultiKeyringInput).GrantTokens +} + +func (_this CreateAwsKmsMultiKeyringInput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case CreateAwsKmsMultiKeyringInput_CreateAwsKmsMultiKeyringInput: + { + return "AwsCryptographyMaterialProvidersTypes.CreateAwsKmsMultiKeyringInput.CreateAwsKmsMultiKeyringInput" + "(" + _dafny.String(data.Generator) + ", " + _dafny.String(data.KmsKeyIds) + ", " + _dafny.String(data.ClientSupplier) + ", " + _dafny.String(data.GrantTokens) + ")" + } + default: + { + return "" + } + } +} + +func (_this CreateAwsKmsMultiKeyringInput) Equals(other CreateAwsKmsMultiKeyringInput) bool { + switch data1 := _this.Get_().(type) { + case CreateAwsKmsMultiKeyringInput_CreateAwsKmsMultiKeyringInput: + { + data2, ok := other.Get_().(CreateAwsKmsMultiKeyringInput_CreateAwsKmsMultiKeyringInput) + return ok && data1.Generator.Equals(data2.Generator) && data1.KmsKeyIds.Equals(data2.KmsKeyIds) && data1.ClientSupplier.Equals(data2.ClientSupplier) && data1.GrantTokens.Equals(data2.GrantTokens) + } + default: + { + return false // unexpected + } + } +} + +func (_this CreateAwsKmsMultiKeyringInput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(CreateAwsKmsMultiKeyringInput) + return ok && _this.Equals(typed) +} + +func Type_CreateAwsKmsMultiKeyringInput_() _dafny.TypeDescriptor { + return type_CreateAwsKmsMultiKeyringInput_{} +} + +type type_CreateAwsKmsMultiKeyringInput_ struct { +} + +func (_this type_CreateAwsKmsMultiKeyringInput_) Default() interface{} { + return Companion_CreateAwsKmsMultiKeyringInput_.Default() +} + +func (_this type_CreateAwsKmsMultiKeyringInput_) String() string { + return "AwsCryptographyMaterialProvidersTypes.CreateAwsKmsMultiKeyringInput" +} +func (_this CreateAwsKmsMultiKeyringInput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = CreateAwsKmsMultiKeyringInput{} + +// End of datatype CreateAwsKmsMultiKeyringInput + +// Definition of datatype CreateAwsKmsRsaKeyringInput +type CreateAwsKmsRsaKeyringInput struct { + Data_CreateAwsKmsRsaKeyringInput_ +} + +func (_this CreateAwsKmsRsaKeyringInput) Get_() Data_CreateAwsKmsRsaKeyringInput_ { + return _this.Data_CreateAwsKmsRsaKeyringInput_ +} + +type Data_CreateAwsKmsRsaKeyringInput_ interface { + isCreateAwsKmsRsaKeyringInput() +} + +type CompanionStruct_CreateAwsKmsRsaKeyringInput_ struct { +} + +var Companion_CreateAwsKmsRsaKeyringInput_ = CompanionStruct_CreateAwsKmsRsaKeyringInput_{} + +type CreateAwsKmsRsaKeyringInput_CreateAwsKmsRsaKeyringInput struct { + PublicKey m_Wrappers.Option + KmsKeyId _dafny.Sequence + EncryptionAlgorithm m_ComAmazonawsKmsTypes.EncryptionAlgorithmSpec + KmsClient m_Wrappers.Option + GrantTokens m_Wrappers.Option +} + +func (CreateAwsKmsRsaKeyringInput_CreateAwsKmsRsaKeyringInput) isCreateAwsKmsRsaKeyringInput() {} + +func (CompanionStruct_CreateAwsKmsRsaKeyringInput_) Create_CreateAwsKmsRsaKeyringInput_(PublicKey m_Wrappers.Option, KmsKeyId _dafny.Sequence, EncryptionAlgorithm m_ComAmazonawsKmsTypes.EncryptionAlgorithmSpec, KmsClient m_Wrappers.Option, GrantTokens m_Wrappers.Option) CreateAwsKmsRsaKeyringInput { + return CreateAwsKmsRsaKeyringInput{CreateAwsKmsRsaKeyringInput_CreateAwsKmsRsaKeyringInput{PublicKey, KmsKeyId, EncryptionAlgorithm, KmsClient, GrantTokens}} +} + +func (_this CreateAwsKmsRsaKeyringInput) Is_CreateAwsKmsRsaKeyringInput() bool { + _, ok := _this.Get_().(CreateAwsKmsRsaKeyringInput_CreateAwsKmsRsaKeyringInput) + return ok +} + +func (CompanionStruct_CreateAwsKmsRsaKeyringInput_) Default() CreateAwsKmsRsaKeyringInput { + return Companion_CreateAwsKmsRsaKeyringInput_.Create_CreateAwsKmsRsaKeyringInput_(m_Wrappers.Companion_Option_.Default(), _dafny.EmptySeq.SetString(), m_ComAmazonawsKmsTypes.Companion_EncryptionAlgorithmSpec_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this CreateAwsKmsRsaKeyringInput) Dtor_publicKey() m_Wrappers.Option { + return _this.Get_().(CreateAwsKmsRsaKeyringInput_CreateAwsKmsRsaKeyringInput).PublicKey +} + +func (_this CreateAwsKmsRsaKeyringInput) Dtor_kmsKeyId() _dafny.Sequence { + return _this.Get_().(CreateAwsKmsRsaKeyringInput_CreateAwsKmsRsaKeyringInput).KmsKeyId +} + +func (_this CreateAwsKmsRsaKeyringInput) Dtor_encryptionAlgorithm() m_ComAmazonawsKmsTypes.EncryptionAlgorithmSpec { + return _this.Get_().(CreateAwsKmsRsaKeyringInput_CreateAwsKmsRsaKeyringInput).EncryptionAlgorithm +} + +func (_this CreateAwsKmsRsaKeyringInput) Dtor_kmsClient() m_Wrappers.Option { + return _this.Get_().(CreateAwsKmsRsaKeyringInput_CreateAwsKmsRsaKeyringInput).KmsClient +} + +func (_this CreateAwsKmsRsaKeyringInput) Dtor_grantTokens() m_Wrappers.Option { + return _this.Get_().(CreateAwsKmsRsaKeyringInput_CreateAwsKmsRsaKeyringInput).GrantTokens +} + +func (_this CreateAwsKmsRsaKeyringInput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case CreateAwsKmsRsaKeyringInput_CreateAwsKmsRsaKeyringInput: + { + return "AwsCryptographyMaterialProvidersTypes.CreateAwsKmsRsaKeyringInput.CreateAwsKmsRsaKeyringInput" + "(" + _dafny.String(data.PublicKey) + ", " + _dafny.String(data.KmsKeyId) + ", " + _dafny.String(data.EncryptionAlgorithm) + ", " + _dafny.String(data.KmsClient) + ", " + _dafny.String(data.GrantTokens) + ")" + } + default: + { + return "" + } + } +} + +func (_this CreateAwsKmsRsaKeyringInput) Equals(other CreateAwsKmsRsaKeyringInput) bool { + switch data1 := _this.Get_().(type) { + case CreateAwsKmsRsaKeyringInput_CreateAwsKmsRsaKeyringInput: + { + data2, ok := other.Get_().(CreateAwsKmsRsaKeyringInput_CreateAwsKmsRsaKeyringInput) + return ok && data1.PublicKey.Equals(data2.PublicKey) && data1.KmsKeyId.Equals(data2.KmsKeyId) && data1.EncryptionAlgorithm.Equals(data2.EncryptionAlgorithm) && data1.KmsClient.Equals(data2.KmsClient) && data1.GrantTokens.Equals(data2.GrantTokens) + } + default: + { + return false // unexpected + } + } +} + +func (_this CreateAwsKmsRsaKeyringInput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(CreateAwsKmsRsaKeyringInput) + return ok && _this.Equals(typed) +} + +func Type_CreateAwsKmsRsaKeyringInput_() _dafny.TypeDescriptor { + return type_CreateAwsKmsRsaKeyringInput_{} +} + +type type_CreateAwsKmsRsaKeyringInput_ struct { +} + +func (_this type_CreateAwsKmsRsaKeyringInput_) Default() interface{} { + return Companion_CreateAwsKmsRsaKeyringInput_.Default() +} + +func (_this type_CreateAwsKmsRsaKeyringInput_) String() string { + return "AwsCryptographyMaterialProvidersTypes.CreateAwsKmsRsaKeyringInput" +} +func (_this CreateAwsKmsRsaKeyringInput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = CreateAwsKmsRsaKeyringInput{} + +// End of datatype CreateAwsKmsRsaKeyringInput + +// Definition of datatype CreateCryptographicMaterialsCacheInput +type CreateCryptographicMaterialsCacheInput struct { + Data_CreateCryptographicMaterialsCacheInput_ +} + +func (_this CreateCryptographicMaterialsCacheInput) Get_() Data_CreateCryptographicMaterialsCacheInput_ { + return _this.Data_CreateCryptographicMaterialsCacheInput_ +} + +type Data_CreateCryptographicMaterialsCacheInput_ interface { + isCreateCryptographicMaterialsCacheInput() +} + +type CompanionStruct_CreateCryptographicMaterialsCacheInput_ struct { +} + +var Companion_CreateCryptographicMaterialsCacheInput_ = CompanionStruct_CreateCryptographicMaterialsCacheInput_{} + +type CreateCryptographicMaterialsCacheInput_CreateCryptographicMaterialsCacheInput struct { + Cache CacheType +} + +func (CreateCryptographicMaterialsCacheInput_CreateCryptographicMaterialsCacheInput) isCreateCryptographicMaterialsCacheInput() { +} + +func (CompanionStruct_CreateCryptographicMaterialsCacheInput_) Create_CreateCryptographicMaterialsCacheInput_(Cache CacheType) CreateCryptographicMaterialsCacheInput { + return CreateCryptographicMaterialsCacheInput{CreateCryptographicMaterialsCacheInput_CreateCryptographicMaterialsCacheInput{Cache}} +} + +func (_this CreateCryptographicMaterialsCacheInput) Is_CreateCryptographicMaterialsCacheInput() bool { + _, ok := _this.Get_().(CreateCryptographicMaterialsCacheInput_CreateCryptographicMaterialsCacheInput) + return ok +} + +func (CompanionStruct_CreateCryptographicMaterialsCacheInput_) Default() CreateCryptographicMaterialsCacheInput { + return Companion_CreateCryptographicMaterialsCacheInput_.Create_CreateCryptographicMaterialsCacheInput_(Companion_CacheType_.Default()) +} + +func (_this CreateCryptographicMaterialsCacheInput) Dtor_cache() CacheType { + return _this.Get_().(CreateCryptographicMaterialsCacheInput_CreateCryptographicMaterialsCacheInput).Cache +} + +func (_this CreateCryptographicMaterialsCacheInput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case CreateCryptographicMaterialsCacheInput_CreateCryptographicMaterialsCacheInput: + { + return "AwsCryptographyMaterialProvidersTypes.CreateCryptographicMaterialsCacheInput.CreateCryptographicMaterialsCacheInput" + "(" + _dafny.String(data.Cache) + ")" + } + default: + { + return "" + } + } +} + +func (_this CreateCryptographicMaterialsCacheInput) Equals(other CreateCryptographicMaterialsCacheInput) bool { + switch data1 := _this.Get_().(type) { + case CreateCryptographicMaterialsCacheInput_CreateCryptographicMaterialsCacheInput: + { + data2, ok := other.Get_().(CreateCryptographicMaterialsCacheInput_CreateCryptographicMaterialsCacheInput) + return ok && data1.Cache.Equals(data2.Cache) + } + default: + { + return false // unexpected + } + } +} + +func (_this CreateCryptographicMaterialsCacheInput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(CreateCryptographicMaterialsCacheInput) + return ok && _this.Equals(typed) +} + +func Type_CreateCryptographicMaterialsCacheInput_() _dafny.TypeDescriptor { + return type_CreateCryptographicMaterialsCacheInput_{} +} + +type type_CreateCryptographicMaterialsCacheInput_ struct { +} + +func (_this type_CreateCryptographicMaterialsCacheInput_) Default() interface{} { + return Companion_CreateCryptographicMaterialsCacheInput_.Default() +} + +func (_this type_CreateCryptographicMaterialsCacheInput_) String() string { + return "AwsCryptographyMaterialProvidersTypes.CreateCryptographicMaterialsCacheInput" +} +func (_this CreateCryptographicMaterialsCacheInput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = CreateCryptographicMaterialsCacheInput{} + +// End of datatype CreateCryptographicMaterialsCacheInput + +// Definition of datatype CreateDefaultClientSupplierInput +type CreateDefaultClientSupplierInput struct { + Data_CreateDefaultClientSupplierInput_ +} + +func (_this CreateDefaultClientSupplierInput) Get_() Data_CreateDefaultClientSupplierInput_ { + return _this.Data_CreateDefaultClientSupplierInput_ +} + +type Data_CreateDefaultClientSupplierInput_ interface { + isCreateDefaultClientSupplierInput() +} + +type CompanionStruct_CreateDefaultClientSupplierInput_ struct { +} + +var Companion_CreateDefaultClientSupplierInput_ = CompanionStruct_CreateDefaultClientSupplierInput_{} + +type CreateDefaultClientSupplierInput_CreateDefaultClientSupplierInput struct { +} + +func (CreateDefaultClientSupplierInput_CreateDefaultClientSupplierInput) isCreateDefaultClientSupplierInput() { +} + +func (CompanionStruct_CreateDefaultClientSupplierInput_) Create_CreateDefaultClientSupplierInput_() CreateDefaultClientSupplierInput { + return CreateDefaultClientSupplierInput{CreateDefaultClientSupplierInput_CreateDefaultClientSupplierInput{}} +} + +func (_this CreateDefaultClientSupplierInput) Is_CreateDefaultClientSupplierInput() bool { + _, ok := _this.Get_().(CreateDefaultClientSupplierInput_CreateDefaultClientSupplierInput) + return ok +} + +func (CompanionStruct_CreateDefaultClientSupplierInput_) Default() CreateDefaultClientSupplierInput { + return Companion_CreateDefaultClientSupplierInput_.Create_CreateDefaultClientSupplierInput_() +} + +func (_ CompanionStruct_CreateDefaultClientSupplierInput_) AllSingletonConstructors() _dafny.Iterator { + i := -1 + return func() (interface{}, bool) { + i++ + switch i { + case 0: + return Companion_CreateDefaultClientSupplierInput_.Create_CreateDefaultClientSupplierInput_(), true + default: + return CreateDefaultClientSupplierInput{}, false + } + } +} + +func (_this CreateDefaultClientSupplierInput) String() string { + switch _this.Get_().(type) { + case nil: + return "null" + case CreateDefaultClientSupplierInput_CreateDefaultClientSupplierInput: + { + return "AwsCryptographyMaterialProvidersTypes.CreateDefaultClientSupplierInput.CreateDefaultClientSupplierInput" + } + default: + { + return "" + } + } +} + +func (_this CreateDefaultClientSupplierInput) Equals(other CreateDefaultClientSupplierInput) bool { + switch _this.Get_().(type) { + case CreateDefaultClientSupplierInput_CreateDefaultClientSupplierInput: + { + _, ok := other.Get_().(CreateDefaultClientSupplierInput_CreateDefaultClientSupplierInput) + return ok + } + default: + { + return false // unexpected + } + } +} + +func (_this CreateDefaultClientSupplierInput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(CreateDefaultClientSupplierInput) + return ok && _this.Equals(typed) +} + +func Type_CreateDefaultClientSupplierInput_() _dafny.TypeDescriptor { + return type_CreateDefaultClientSupplierInput_{} +} + +type type_CreateDefaultClientSupplierInput_ struct { +} + +func (_this type_CreateDefaultClientSupplierInput_) Default() interface{} { + return Companion_CreateDefaultClientSupplierInput_.Default() +} + +func (_this type_CreateDefaultClientSupplierInput_) String() string { + return "AwsCryptographyMaterialProvidersTypes.CreateDefaultClientSupplierInput" +} +func (_this CreateDefaultClientSupplierInput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = CreateDefaultClientSupplierInput{} + +// End of datatype CreateDefaultClientSupplierInput + +// Definition of datatype CreateDefaultCryptographicMaterialsManagerInput +type CreateDefaultCryptographicMaterialsManagerInput struct { + Data_CreateDefaultCryptographicMaterialsManagerInput_ +} + +func (_this CreateDefaultCryptographicMaterialsManagerInput) Get_() Data_CreateDefaultCryptographicMaterialsManagerInput_ { + return _this.Data_CreateDefaultCryptographicMaterialsManagerInput_ +} + +type Data_CreateDefaultCryptographicMaterialsManagerInput_ interface { + isCreateDefaultCryptographicMaterialsManagerInput() +} + +type CompanionStruct_CreateDefaultCryptographicMaterialsManagerInput_ struct { +} + +var Companion_CreateDefaultCryptographicMaterialsManagerInput_ = CompanionStruct_CreateDefaultCryptographicMaterialsManagerInput_{} + +type CreateDefaultCryptographicMaterialsManagerInput_CreateDefaultCryptographicMaterialsManagerInput struct { + Keyring IKeyring +} + +func (CreateDefaultCryptographicMaterialsManagerInput_CreateDefaultCryptographicMaterialsManagerInput) isCreateDefaultCryptographicMaterialsManagerInput() { +} + +func (CompanionStruct_CreateDefaultCryptographicMaterialsManagerInput_) Create_CreateDefaultCryptographicMaterialsManagerInput_(Keyring IKeyring) CreateDefaultCryptographicMaterialsManagerInput { + return CreateDefaultCryptographicMaterialsManagerInput{CreateDefaultCryptographicMaterialsManagerInput_CreateDefaultCryptographicMaterialsManagerInput{Keyring}} +} + +func (_this CreateDefaultCryptographicMaterialsManagerInput) Is_CreateDefaultCryptographicMaterialsManagerInput() bool { + _, ok := _this.Get_().(CreateDefaultCryptographicMaterialsManagerInput_CreateDefaultCryptographicMaterialsManagerInput) + return ok +} + +func (CompanionStruct_CreateDefaultCryptographicMaterialsManagerInput_) Default() CreateDefaultCryptographicMaterialsManagerInput { + return Companion_CreateDefaultCryptographicMaterialsManagerInput_.Create_CreateDefaultCryptographicMaterialsManagerInput_((IKeyring)(nil)) +} + +func (_this CreateDefaultCryptographicMaterialsManagerInput) Dtor_keyring() IKeyring { + return _this.Get_().(CreateDefaultCryptographicMaterialsManagerInput_CreateDefaultCryptographicMaterialsManagerInput).Keyring +} + +func (_this CreateDefaultCryptographicMaterialsManagerInput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case CreateDefaultCryptographicMaterialsManagerInput_CreateDefaultCryptographicMaterialsManagerInput: + { + return "AwsCryptographyMaterialProvidersTypes.CreateDefaultCryptographicMaterialsManagerInput.CreateDefaultCryptographicMaterialsManagerInput" + "(" + _dafny.String(data.Keyring) + ")" + } + default: + { + return "" + } + } +} + +func (_this CreateDefaultCryptographicMaterialsManagerInput) Equals(other CreateDefaultCryptographicMaterialsManagerInput) bool { + switch data1 := _this.Get_().(type) { + case CreateDefaultCryptographicMaterialsManagerInput_CreateDefaultCryptographicMaterialsManagerInput: + { + data2, ok := other.Get_().(CreateDefaultCryptographicMaterialsManagerInput_CreateDefaultCryptographicMaterialsManagerInput) + return ok && _dafny.AreEqual(data1.Keyring, data2.Keyring) + } + default: + { + return false // unexpected + } + } +} + +func (_this CreateDefaultCryptographicMaterialsManagerInput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(CreateDefaultCryptographicMaterialsManagerInput) + return ok && _this.Equals(typed) +} + +func Type_CreateDefaultCryptographicMaterialsManagerInput_() _dafny.TypeDescriptor { + return type_CreateDefaultCryptographicMaterialsManagerInput_{} +} + +type type_CreateDefaultCryptographicMaterialsManagerInput_ struct { +} + +func (_this type_CreateDefaultCryptographicMaterialsManagerInput_) Default() interface{} { + return Companion_CreateDefaultCryptographicMaterialsManagerInput_.Default() +} + +func (_this type_CreateDefaultCryptographicMaterialsManagerInput_) String() string { + return "AwsCryptographyMaterialProvidersTypes.CreateDefaultCryptographicMaterialsManagerInput" +} +func (_this CreateDefaultCryptographicMaterialsManagerInput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = CreateDefaultCryptographicMaterialsManagerInput{} + +// End of datatype CreateDefaultCryptographicMaterialsManagerInput + +// Definition of datatype CreateMultiKeyringInput +type CreateMultiKeyringInput struct { + Data_CreateMultiKeyringInput_ +} + +func (_this CreateMultiKeyringInput) Get_() Data_CreateMultiKeyringInput_ { + return _this.Data_CreateMultiKeyringInput_ +} + +type Data_CreateMultiKeyringInput_ interface { + isCreateMultiKeyringInput() +} + +type CompanionStruct_CreateMultiKeyringInput_ struct { +} + +var Companion_CreateMultiKeyringInput_ = CompanionStruct_CreateMultiKeyringInput_{} + +type CreateMultiKeyringInput_CreateMultiKeyringInput struct { + Generator m_Wrappers.Option + ChildKeyrings _dafny.Sequence +} + +func (CreateMultiKeyringInput_CreateMultiKeyringInput) isCreateMultiKeyringInput() {} + +func (CompanionStruct_CreateMultiKeyringInput_) Create_CreateMultiKeyringInput_(Generator m_Wrappers.Option, ChildKeyrings _dafny.Sequence) CreateMultiKeyringInput { + return CreateMultiKeyringInput{CreateMultiKeyringInput_CreateMultiKeyringInput{Generator, ChildKeyrings}} +} + +func (_this CreateMultiKeyringInput) Is_CreateMultiKeyringInput() bool { + _, ok := _this.Get_().(CreateMultiKeyringInput_CreateMultiKeyringInput) + return ok +} + +func (CompanionStruct_CreateMultiKeyringInput_) Default() CreateMultiKeyringInput { + return Companion_CreateMultiKeyringInput_.Create_CreateMultiKeyringInput_(m_Wrappers.Companion_Option_.Default(), _dafny.EmptySeq) +} + +func (_this CreateMultiKeyringInput) Dtor_generator() m_Wrappers.Option { + return _this.Get_().(CreateMultiKeyringInput_CreateMultiKeyringInput).Generator +} + +func (_this CreateMultiKeyringInput) Dtor_childKeyrings() _dafny.Sequence { + return _this.Get_().(CreateMultiKeyringInput_CreateMultiKeyringInput).ChildKeyrings +} + +func (_this CreateMultiKeyringInput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case CreateMultiKeyringInput_CreateMultiKeyringInput: + { + return "AwsCryptographyMaterialProvidersTypes.CreateMultiKeyringInput.CreateMultiKeyringInput" + "(" + _dafny.String(data.Generator) + ", " + _dafny.String(data.ChildKeyrings) + ")" + } + default: + { + return "" + } + } +} + +func (_this CreateMultiKeyringInput) Equals(other CreateMultiKeyringInput) bool { + switch data1 := _this.Get_().(type) { + case CreateMultiKeyringInput_CreateMultiKeyringInput: + { + data2, ok := other.Get_().(CreateMultiKeyringInput_CreateMultiKeyringInput) + return ok && data1.Generator.Equals(data2.Generator) && data1.ChildKeyrings.Equals(data2.ChildKeyrings) + } + default: + { + return false // unexpected + } + } +} + +func (_this CreateMultiKeyringInput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(CreateMultiKeyringInput) + return ok && _this.Equals(typed) +} + +func Type_CreateMultiKeyringInput_() _dafny.TypeDescriptor { + return type_CreateMultiKeyringInput_{} +} + +type type_CreateMultiKeyringInput_ struct { +} + +func (_this type_CreateMultiKeyringInput_) Default() interface{} { + return Companion_CreateMultiKeyringInput_.Default() +} + +func (_this type_CreateMultiKeyringInput_) String() string { + return "AwsCryptographyMaterialProvidersTypes.CreateMultiKeyringInput" +} +func (_this CreateMultiKeyringInput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = CreateMultiKeyringInput{} + +// End of datatype CreateMultiKeyringInput + +// Definition of datatype CreateRawAesKeyringInput +type CreateRawAesKeyringInput struct { + Data_CreateRawAesKeyringInput_ +} + +func (_this CreateRawAesKeyringInput) Get_() Data_CreateRawAesKeyringInput_ { + return _this.Data_CreateRawAesKeyringInput_ +} + +type Data_CreateRawAesKeyringInput_ interface { + isCreateRawAesKeyringInput() +} + +type CompanionStruct_CreateRawAesKeyringInput_ struct { +} + +var Companion_CreateRawAesKeyringInput_ = CompanionStruct_CreateRawAesKeyringInput_{} + +type CreateRawAesKeyringInput_CreateRawAesKeyringInput struct { + KeyNamespace _dafny.Sequence + KeyName _dafny.Sequence + WrappingKey _dafny.Sequence + WrappingAlg AesWrappingAlg +} + +func (CreateRawAesKeyringInput_CreateRawAesKeyringInput) isCreateRawAesKeyringInput() {} + +func (CompanionStruct_CreateRawAesKeyringInput_) Create_CreateRawAesKeyringInput_(KeyNamespace _dafny.Sequence, KeyName _dafny.Sequence, WrappingKey _dafny.Sequence, WrappingAlg AesWrappingAlg) CreateRawAesKeyringInput { + return CreateRawAesKeyringInput{CreateRawAesKeyringInput_CreateRawAesKeyringInput{KeyNamespace, KeyName, WrappingKey, WrappingAlg}} +} + +func (_this CreateRawAesKeyringInput) Is_CreateRawAesKeyringInput() bool { + _, ok := _this.Get_().(CreateRawAesKeyringInput_CreateRawAesKeyringInput) + return ok +} + +func (CompanionStruct_CreateRawAesKeyringInput_) Default() CreateRawAesKeyringInput { + return Companion_CreateRawAesKeyringInput_.Create_CreateRawAesKeyringInput_(_dafny.EmptySeq.SetString(), _dafny.EmptySeq.SetString(), _dafny.EmptySeq, Companion_AesWrappingAlg_.Default()) +} + +func (_this CreateRawAesKeyringInput) Dtor_keyNamespace() _dafny.Sequence { + return _this.Get_().(CreateRawAesKeyringInput_CreateRawAesKeyringInput).KeyNamespace +} + +func (_this CreateRawAesKeyringInput) Dtor_keyName() _dafny.Sequence { + return _this.Get_().(CreateRawAesKeyringInput_CreateRawAesKeyringInput).KeyName +} + +func (_this CreateRawAesKeyringInput) Dtor_wrappingKey() _dafny.Sequence { + return _this.Get_().(CreateRawAesKeyringInput_CreateRawAesKeyringInput).WrappingKey +} + +func (_this CreateRawAesKeyringInput) Dtor_wrappingAlg() AesWrappingAlg { + return _this.Get_().(CreateRawAesKeyringInput_CreateRawAesKeyringInput).WrappingAlg +} + +func (_this CreateRawAesKeyringInput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case CreateRawAesKeyringInput_CreateRawAesKeyringInput: + { + return "AwsCryptographyMaterialProvidersTypes.CreateRawAesKeyringInput.CreateRawAesKeyringInput" + "(" + _dafny.String(data.KeyNamespace) + ", " + _dafny.String(data.KeyName) + ", " + _dafny.String(data.WrappingKey) + ", " + _dafny.String(data.WrappingAlg) + ")" + } + default: + { + return "" + } + } +} + +func (_this CreateRawAesKeyringInput) Equals(other CreateRawAesKeyringInput) bool { + switch data1 := _this.Get_().(type) { + case CreateRawAesKeyringInput_CreateRawAesKeyringInput: + { + data2, ok := other.Get_().(CreateRawAesKeyringInput_CreateRawAesKeyringInput) + return ok && data1.KeyNamespace.Equals(data2.KeyNamespace) && data1.KeyName.Equals(data2.KeyName) && data1.WrappingKey.Equals(data2.WrappingKey) && data1.WrappingAlg.Equals(data2.WrappingAlg) + } + default: + { + return false // unexpected + } + } +} + +func (_this CreateRawAesKeyringInput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(CreateRawAesKeyringInput) + return ok && _this.Equals(typed) +} + +func Type_CreateRawAesKeyringInput_() _dafny.TypeDescriptor { + return type_CreateRawAesKeyringInput_{} +} + +type type_CreateRawAesKeyringInput_ struct { +} + +func (_this type_CreateRawAesKeyringInput_) Default() interface{} { + return Companion_CreateRawAesKeyringInput_.Default() +} + +func (_this type_CreateRawAesKeyringInput_) String() string { + return "AwsCryptographyMaterialProvidersTypes.CreateRawAesKeyringInput" +} +func (_this CreateRawAesKeyringInput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = CreateRawAesKeyringInput{} + +// End of datatype CreateRawAesKeyringInput + +// Definition of datatype CreateRawEcdhKeyringInput +type CreateRawEcdhKeyringInput struct { + Data_CreateRawEcdhKeyringInput_ +} + +func (_this CreateRawEcdhKeyringInput) Get_() Data_CreateRawEcdhKeyringInput_ { + return _this.Data_CreateRawEcdhKeyringInput_ +} + +type Data_CreateRawEcdhKeyringInput_ interface { + isCreateRawEcdhKeyringInput() +} + +type CompanionStruct_CreateRawEcdhKeyringInput_ struct { +} + +var Companion_CreateRawEcdhKeyringInput_ = CompanionStruct_CreateRawEcdhKeyringInput_{} + +type CreateRawEcdhKeyringInput_CreateRawEcdhKeyringInput struct { + KeyAgreementScheme RawEcdhStaticConfigurations + CurveSpec m_AwsCryptographyPrimitivesTypes.ECDHCurveSpec +} + +func (CreateRawEcdhKeyringInput_CreateRawEcdhKeyringInput) isCreateRawEcdhKeyringInput() {} + +func (CompanionStruct_CreateRawEcdhKeyringInput_) Create_CreateRawEcdhKeyringInput_(KeyAgreementScheme RawEcdhStaticConfigurations, CurveSpec m_AwsCryptographyPrimitivesTypes.ECDHCurveSpec) CreateRawEcdhKeyringInput { + return CreateRawEcdhKeyringInput{CreateRawEcdhKeyringInput_CreateRawEcdhKeyringInput{KeyAgreementScheme, CurveSpec}} +} + +func (_this CreateRawEcdhKeyringInput) Is_CreateRawEcdhKeyringInput() bool { + _, ok := _this.Get_().(CreateRawEcdhKeyringInput_CreateRawEcdhKeyringInput) + return ok +} + +func (CompanionStruct_CreateRawEcdhKeyringInput_) Default() CreateRawEcdhKeyringInput { + return Companion_CreateRawEcdhKeyringInput_.Create_CreateRawEcdhKeyringInput_(Companion_RawEcdhStaticConfigurations_.Default(), m_AwsCryptographyPrimitivesTypes.Companion_ECDHCurveSpec_.Default()) +} + +func (_this CreateRawEcdhKeyringInput) Dtor_KeyAgreementScheme() RawEcdhStaticConfigurations { + return _this.Get_().(CreateRawEcdhKeyringInput_CreateRawEcdhKeyringInput).KeyAgreementScheme +} + +func (_this CreateRawEcdhKeyringInput) Dtor_curveSpec() m_AwsCryptographyPrimitivesTypes.ECDHCurveSpec { + return _this.Get_().(CreateRawEcdhKeyringInput_CreateRawEcdhKeyringInput).CurveSpec +} + +func (_this CreateRawEcdhKeyringInput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case CreateRawEcdhKeyringInput_CreateRawEcdhKeyringInput: + { + return "AwsCryptographyMaterialProvidersTypes.CreateRawEcdhKeyringInput.CreateRawEcdhKeyringInput" + "(" + _dafny.String(data.KeyAgreementScheme) + ", " + _dafny.String(data.CurveSpec) + ")" + } + default: + { + return "" + } + } +} + +func (_this CreateRawEcdhKeyringInput) Equals(other CreateRawEcdhKeyringInput) bool { + switch data1 := _this.Get_().(type) { + case CreateRawEcdhKeyringInput_CreateRawEcdhKeyringInput: + { + data2, ok := other.Get_().(CreateRawEcdhKeyringInput_CreateRawEcdhKeyringInput) + return ok && data1.KeyAgreementScheme.Equals(data2.KeyAgreementScheme) && data1.CurveSpec.Equals(data2.CurveSpec) + } + default: + { + return false // unexpected + } + } +} + +func (_this CreateRawEcdhKeyringInput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(CreateRawEcdhKeyringInput) + return ok && _this.Equals(typed) +} + +func Type_CreateRawEcdhKeyringInput_() _dafny.TypeDescriptor { + return type_CreateRawEcdhKeyringInput_{} +} + +type type_CreateRawEcdhKeyringInput_ struct { +} + +func (_this type_CreateRawEcdhKeyringInput_) Default() interface{} { + return Companion_CreateRawEcdhKeyringInput_.Default() +} + +func (_this type_CreateRawEcdhKeyringInput_) String() string { + return "AwsCryptographyMaterialProvidersTypes.CreateRawEcdhKeyringInput" +} +func (_this CreateRawEcdhKeyringInput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = CreateRawEcdhKeyringInput{} + +// End of datatype CreateRawEcdhKeyringInput + +// Definition of datatype CreateRawRsaKeyringInput +type CreateRawRsaKeyringInput struct { + Data_CreateRawRsaKeyringInput_ +} + +func (_this CreateRawRsaKeyringInput) Get_() Data_CreateRawRsaKeyringInput_ { + return _this.Data_CreateRawRsaKeyringInput_ +} + +type Data_CreateRawRsaKeyringInput_ interface { + isCreateRawRsaKeyringInput() +} + +type CompanionStruct_CreateRawRsaKeyringInput_ struct { +} + +var Companion_CreateRawRsaKeyringInput_ = CompanionStruct_CreateRawRsaKeyringInput_{} + +type CreateRawRsaKeyringInput_CreateRawRsaKeyringInput struct { + KeyNamespace _dafny.Sequence + KeyName _dafny.Sequence + PaddingScheme PaddingScheme + PublicKey m_Wrappers.Option + PrivateKey m_Wrappers.Option +} + +func (CreateRawRsaKeyringInput_CreateRawRsaKeyringInput) isCreateRawRsaKeyringInput() {} + +func (CompanionStruct_CreateRawRsaKeyringInput_) Create_CreateRawRsaKeyringInput_(KeyNamespace _dafny.Sequence, KeyName _dafny.Sequence, PaddingScheme PaddingScheme, PublicKey m_Wrappers.Option, PrivateKey m_Wrappers.Option) CreateRawRsaKeyringInput { + return CreateRawRsaKeyringInput{CreateRawRsaKeyringInput_CreateRawRsaKeyringInput{KeyNamespace, KeyName, PaddingScheme, PublicKey, PrivateKey}} +} + +func (_this CreateRawRsaKeyringInput) Is_CreateRawRsaKeyringInput() bool { + _, ok := _this.Get_().(CreateRawRsaKeyringInput_CreateRawRsaKeyringInput) + return ok +} + +func (CompanionStruct_CreateRawRsaKeyringInput_) Default() CreateRawRsaKeyringInput { + return Companion_CreateRawRsaKeyringInput_.Create_CreateRawRsaKeyringInput_(_dafny.EmptySeq.SetString(), _dafny.EmptySeq.SetString(), Companion_PaddingScheme_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this CreateRawRsaKeyringInput) Dtor_keyNamespace() _dafny.Sequence { + return _this.Get_().(CreateRawRsaKeyringInput_CreateRawRsaKeyringInput).KeyNamespace +} + +func (_this CreateRawRsaKeyringInput) Dtor_keyName() _dafny.Sequence { + return _this.Get_().(CreateRawRsaKeyringInput_CreateRawRsaKeyringInput).KeyName +} + +func (_this CreateRawRsaKeyringInput) Dtor_paddingScheme() PaddingScheme { + return _this.Get_().(CreateRawRsaKeyringInput_CreateRawRsaKeyringInput).PaddingScheme +} + +func (_this CreateRawRsaKeyringInput) Dtor_publicKey() m_Wrappers.Option { + return _this.Get_().(CreateRawRsaKeyringInput_CreateRawRsaKeyringInput).PublicKey +} + +func (_this CreateRawRsaKeyringInput) Dtor_privateKey() m_Wrappers.Option { + return _this.Get_().(CreateRawRsaKeyringInput_CreateRawRsaKeyringInput).PrivateKey +} + +func (_this CreateRawRsaKeyringInput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case CreateRawRsaKeyringInput_CreateRawRsaKeyringInput: + { + return "AwsCryptographyMaterialProvidersTypes.CreateRawRsaKeyringInput.CreateRawRsaKeyringInput" + "(" + _dafny.String(data.KeyNamespace) + ", " + _dafny.String(data.KeyName) + ", " + _dafny.String(data.PaddingScheme) + ", " + _dafny.String(data.PublicKey) + ", " + _dafny.String(data.PrivateKey) + ")" + } + default: + { + return "" + } + } +} + +func (_this CreateRawRsaKeyringInput) Equals(other CreateRawRsaKeyringInput) bool { + switch data1 := _this.Get_().(type) { + case CreateRawRsaKeyringInput_CreateRawRsaKeyringInput: + { + data2, ok := other.Get_().(CreateRawRsaKeyringInput_CreateRawRsaKeyringInput) + return ok && data1.KeyNamespace.Equals(data2.KeyNamespace) && data1.KeyName.Equals(data2.KeyName) && data1.PaddingScheme.Equals(data2.PaddingScheme) && data1.PublicKey.Equals(data2.PublicKey) && data1.PrivateKey.Equals(data2.PrivateKey) + } + default: + { + return false // unexpected + } + } +} + +func (_this CreateRawRsaKeyringInput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(CreateRawRsaKeyringInput) + return ok && _this.Equals(typed) +} + +func Type_CreateRawRsaKeyringInput_() _dafny.TypeDescriptor { + return type_CreateRawRsaKeyringInput_{} +} + +type type_CreateRawRsaKeyringInput_ struct { +} + +func (_this type_CreateRawRsaKeyringInput_) Default() interface{} { + return Companion_CreateRawRsaKeyringInput_.Default() +} + +func (_this type_CreateRawRsaKeyringInput_) String() string { + return "AwsCryptographyMaterialProvidersTypes.CreateRawRsaKeyringInput" +} +func (_this CreateRawRsaKeyringInput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = CreateRawRsaKeyringInput{} + +// End of datatype CreateRawRsaKeyringInput + +// Definition of datatype CreateRequiredEncryptionContextCMMInput +type CreateRequiredEncryptionContextCMMInput struct { + Data_CreateRequiredEncryptionContextCMMInput_ +} + +func (_this CreateRequiredEncryptionContextCMMInput) Get_() Data_CreateRequiredEncryptionContextCMMInput_ { + return _this.Data_CreateRequiredEncryptionContextCMMInput_ +} + +type Data_CreateRequiredEncryptionContextCMMInput_ interface { + isCreateRequiredEncryptionContextCMMInput() +} + +type CompanionStruct_CreateRequiredEncryptionContextCMMInput_ struct { +} + +var Companion_CreateRequiredEncryptionContextCMMInput_ = CompanionStruct_CreateRequiredEncryptionContextCMMInput_{} + +type CreateRequiredEncryptionContextCMMInput_CreateRequiredEncryptionContextCMMInput struct { + UnderlyingCMM m_Wrappers.Option + Keyring m_Wrappers.Option + RequiredEncryptionContextKeys _dafny.Sequence +} + +func (CreateRequiredEncryptionContextCMMInput_CreateRequiredEncryptionContextCMMInput) isCreateRequiredEncryptionContextCMMInput() { +} + +func (CompanionStruct_CreateRequiredEncryptionContextCMMInput_) Create_CreateRequiredEncryptionContextCMMInput_(UnderlyingCMM m_Wrappers.Option, Keyring m_Wrappers.Option, RequiredEncryptionContextKeys _dafny.Sequence) CreateRequiredEncryptionContextCMMInput { + return CreateRequiredEncryptionContextCMMInput{CreateRequiredEncryptionContextCMMInput_CreateRequiredEncryptionContextCMMInput{UnderlyingCMM, Keyring, RequiredEncryptionContextKeys}} +} + +func (_this CreateRequiredEncryptionContextCMMInput) Is_CreateRequiredEncryptionContextCMMInput() bool { + _, ok := _this.Get_().(CreateRequiredEncryptionContextCMMInput_CreateRequiredEncryptionContextCMMInput) + return ok +} + +func (CompanionStruct_CreateRequiredEncryptionContextCMMInput_) Default() CreateRequiredEncryptionContextCMMInput { + return Companion_CreateRequiredEncryptionContextCMMInput_.Create_CreateRequiredEncryptionContextCMMInput_(m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), _dafny.EmptySeq) +} + +func (_this CreateRequiredEncryptionContextCMMInput) Dtor_underlyingCMM() m_Wrappers.Option { + return _this.Get_().(CreateRequiredEncryptionContextCMMInput_CreateRequiredEncryptionContextCMMInput).UnderlyingCMM +} + +func (_this CreateRequiredEncryptionContextCMMInput) Dtor_keyring() m_Wrappers.Option { + return _this.Get_().(CreateRequiredEncryptionContextCMMInput_CreateRequiredEncryptionContextCMMInput).Keyring +} + +func (_this CreateRequiredEncryptionContextCMMInput) Dtor_requiredEncryptionContextKeys() _dafny.Sequence { + return _this.Get_().(CreateRequiredEncryptionContextCMMInput_CreateRequiredEncryptionContextCMMInput).RequiredEncryptionContextKeys +} + +func (_this CreateRequiredEncryptionContextCMMInput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case CreateRequiredEncryptionContextCMMInput_CreateRequiredEncryptionContextCMMInput: + { + return "AwsCryptographyMaterialProvidersTypes.CreateRequiredEncryptionContextCMMInput.CreateRequiredEncryptionContextCMMInput" + "(" + _dafny.String(data.UnderlyingCMM) + ", " + _dafny.String(data.Keyring) + ", " + _dafny.String(data.RequiredEncryptionContextKeys) + ")" + } + default: + { + return "" + } + } +} + +func (_this CreateRequiredEncryptionContextCMMInput) Equals(other CreateRequiredEncryptionContextCMMInput) bool { + switch data1 := _this.Get_().(type) { + case CreateRequiredEncryptionContextCMMInput_CreateRequiredEncryptionContextCMMInput: + { + data2, ok := other.Get_().(CreateRequiredEncryptionContextCMMInput_CreateRequiredEncryptionContextCMMInput) + return ok && data1.UnderlyingCMM.Equals(data2.UnderlyingCMM) && data1.Keyring.Equals(data2.Keyring) && data1.RequiredEncryptionContextKeys.Equals(data2.RequiredEncryptionContextKeys) + } + default: + { + return false // unexpected + } + } +} + +func (_this CreateRequiredEncryptionContextCMMInput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(CreateRequiredEncryptionContextCMMInput) + return ok && _this.Equals(typed) +} + +func Type_CreateRequiredEncryptionContextCMMInput_() _dafny.TypeDescriptor { + return type_CreateRequiredEncryptionContextCMMInput_{} +} + +type type_CreateRequiredEncryptionContextCMMInput_ struct { +} + +func (_this type_CreateRequiredEncryptionContextCMMInput_) Default() interface{} { + return Companion_CreateRequiredEncryptionContextCMMInput_.Default() +} + +func (_this type_CreateRequiredEncryptionContextCMMInput_) String() string { + return "AwsCryptographyMaterialProvidersTypes.CreateRequiredEncryptionContextCMMInput" +} +func (_this CreateRequiredEncryptionContextCMMInput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = CreateRequiredEncryptionContextCMMInput{} + +// End of datatype CreateRequiredEncryptionContextCMMInput + +// Definition of class ICryptographicMaterialsCacheCallHistory +type ICryptographicMaterialsCacheCallHistory struct { + dummy byte +} + +func New_ICryptographicMaterialsCacheCallHistory_() *ICryptographicMaterialsCacheCallHistory { + _this := ICryptographicMaterialsCacheCallHistory{} + + return &_this +} + +type CompanionStruct_ICryptographicMaterialsCacheCallHistory_ struct { +} + +var Companion_ICryptographicMaterialsCacheCallHistory_ = CompanionStruct_ICryptographicMaterialsCacheCallHistory_{} + +func (_this *ICryptographicMaterialsCacheCallHistory) Equals(other *ICryptographicMaterialsCacheCallHistory) bool { + return _this == other +} + +func (_this *ICryptographicMaterialsCacheCallHistory) EqualsGeneric(x interface{}) bool { + other, ok := x.(*ICryptographicMaterialsCacheCallHistory) + return ok && _this.Equals(other) +} + +func (*ICryptographicMaterialsCacheCallHistory) String() string { + return "AwsCryptographyMaterialProvidersTypes.ICryptographicMaterialsCacheCallHistory" +} + +func Type_ICryptographicMaterialsCacheCallHistory_() _dafny.TypeDescriptor { + return type_ICryptographicMaterialsCacheCallHistory_{} +} + +type type_ICryptographicMaterialsCacheCallHistory_ struct { +} + +func (_this type_ICryptographicMaterialsCacheCallHistory_) Default() interface{} { + return (*ICryptographicMaterialsCacheCallHistory)(nil) +} + +func (_this type_ICryptographicMaterialsCacheCallHistory_) String() string { + return "AwsCryptographyMaterialProvidersTypes.ICryptographicMaterialsCacheCallHistory" +} +func (_this *ICryptographicMaterialsCacheCallHistory) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = &ICryptographicMaterialsCacheCallHistory{} + +// End of class ICryptographicMaterialsCacheCallHistory + +// Definition of trait ICryptographicMaterialsCache +type ICryptographicMaterialsCache interface { + String() string + PutCacheEntry(input PutCacheEntryInput) m_Wrappers.Result + PutCacheEntry_k(input PutCacheEntryInput) m_Wrappers.Result + UpdateUsageMetadata(input UpdateUsageMetadataInput) m_Wrappers.Result + UpdateUsageMetadata_k(input UpdateUsageMetadataInput) m_Wrappers.Result + GetCacheEntry(input GetCacheEntryInput) m_Wrappers.Result + GetCacheEntry_k(input GetCacheEntryInput) m_Wrappers.Result + DeleteCacheEntry(input DeleteCacheEntryInput) m_Wrappers.Result + DeleteCacheEntry_k(input DeleteCacheEntryInput) m_Wrappers.Result +} + +func (_static *CompanionStruct_ICryptographicMaterialsCache_) PutCacheEntry(_this ICryptographicMaterialsCache, input PutCacheEntryInput) m_Wrappers.Result { + { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.TupleOf()) + _ = output + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = (_this).PutCacheEntry_k(input) + output = _out0 + return output + } +} +func (_static *CompanionStruct_ICryptographicMaterialsCache_) UpdateUsageMetadata(_this ICryptographicMaterialsCache, input UpdateUsageMetadataInput) m_Wrappers.Result { + { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.TupleOf()) + _ = output + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = (_this).UpdateUsageMetadata_k(input) + output = _out0 + return output + } +} +func (_static *CompanionStruct_ICryptographicMaterialsCache_) GetCacheEntry(_this ICryptographicMaterialsCache, input GetCacheEntryInput) m_Wrappers.Result { + { + var output m_Wrappers.Result = m_Wrappers.Result{} + _ = output + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = (_this).GetCacheEntry_k(input) + output = _out0 + return output + } +} +func (_static *CompanionStruct_ICryptographicMaterialsCache_) DeleteCacheEntry(_this ICryptographicMaterialsCache, input DeleteCacheEntryInput) m_Wrappers.Result { + { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.TupleOf()) + _ = output + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = (_this).DeleteCacheEntry_k(input) + output = _out0 + return output + } +} + +type CompanionStruct_ICryptographicMaterialsCache_ struct { + TraitID_ *_dafny.TraitID +} + +var Companion_ICryptographicMaterialsCache_ = CompanionStruct_ICryptographicMaterialsCache_{ + TraitID_: &_dafny.TraitID{}, +} + +func (CompanionStruct_ICryptographicMaterialsCache_) CastTo_(x interface{}) ICryptographicMaterialsCache { + var t ICryptographicMaterialsCache + t, _ = x.(ICryptographicMaterialsCache) + return t +} + +// End of trait ICryptographicMaterialsCache + +// Definition of class ICryptographicMaterialsManagerCallHistory +type ICryptographicMaterialsManagerCallHistory struct { + dummy byte +} + +func New_ICryptographicMaterialsManagerCallHistory_() *ICryptographicMaterialsManagerCallHistory { + _this := ICryptographicMaterialsManagerCallHistory{} + + return &_this +} + +type CompanionStruct_ICryptographicMaterialsManagerCallHistory_ struct { +} + +var Companion_ICryptographicMaterialsManagerCallHistory_ = CompanionStruct_ICryptographicMaterialsManagerCallHistory_{} + +func (_this *ICryptographicMaterialsManagerCallHistory) Equals(other *ICryptographicMaterialsManagerCallHistory) bool { + return _this == other +} + +func (_this *ICryptographicMaterialsManagerCallHistory) EqualsGeneric(x interface{}) bool { + other, ok := x.(*ICryptographicMaterialsManagerCallHistory) + return ok && _this.Equals(other) +} + +func (*ICryptographicMaterialsManagerCallHistory) String() string { + return "AwsCryptographyMaterialProvidersTypes.ICryptographicMaterialsManagerCallHistory" +} + +func Type_ICryptographicMaterialsManagerCallHistory_() _dafny.TypeDescriptor { + return type_ICryptographicMaterialsManagerCallHistory_{} +} + +type type_ICryptographicMaterialsManagerCallHistory_ struct { +} + +func (_this type_ICryptographicMaterialsManagerCallHistory_) Default() interface{} { + return (*ICryptographicMaterialsManagerCallHistory)(nil) +} + +func (_this type_ICryptographicMaterialsManagerCallHistory_) String() string { + return "AwsCryptographyMaterialProvidersTypes.ICryptographicMaterialsManagerCallHistory" +} +func (_this *ICryptographicMaterialsManagerCallHistory) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = &ICryptographicMaterialsManagerCallHistory{} + +// End of class ICryptographicMaterialsManagerCallHistory + +// Definition of trait ICryptographicMaterialsManager +type ICryptographicMaterialsManager interface { + String() string + GetEncryptionMaterials(input GetEncryptionMaterialsInput) m_Wrappers.Result + GetEncryptionMaterials_k(input GetEncryptionMaterialsInput) m_Wrappers.Result + DecryptMaterials(input DecryptMaterialsInput) m_Wrappers.Result + DecryptMaterials_k(input DecryptMaterialsInput) m_Wrappers.Result +} + +func (_static *CompanionStruct_ICryptographicMaterialsManager_) GetEncryptionMaterials(_this ICryptographicMaterialsManager, input GetEncryptionMaterialsInput) m_Wrappers.Result { + { + var output m_Wrappers.Result = m_Wrappers.Result{} + _ = output + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = (_this).GetEncryptionMaterials_k(input) + output = _out0 + return output + } +} +func (_static *CompanionStruct_ICryptographicMaterialsManager_) DecryptMaterials(_this ICryptographicMaterialsManager, input DecryptMaterialsInput) m_Wrappers.Result { + { + var output m_Wrappers.Result = m_Wrappers.Result{} + _ = output + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = (_this).DecryptMaterials_k(input) + output = _out0 + return output + } +} + +type CompanionStruct_ICryptographicMaterialsManager_ struct { + TraitID_ *_dafny.TraitID +} + +var Companion_ICryptographicMaterialsManager_ = CompanionStruct_ICryptographicMaterialsManager_{ + TraitID_: &_dafny.TraitID{}, +} + +func (CompanionStruct_ICryptographicMaterialsManager_) CastTo_(x interface{}) ICryptographicMaterialsManager { + var t ICryptographicMaterialsManager + t, _ = x.(ICryptographicMaterialsManager) + return t +} + +// End of trait ICryptographicMaterialsManager + +// Definition of datatype DBEAlgorithmSuiteId +type DBEAlgorithmSuiteId struct { + Data_DBEAlgorithmSuiteId_ +} + +func (_this DBEAlgorithmSuiteId) Get_() Data_DBEAlgorithmSuiteId_ { + return _this.Data_DBEAlgorithmSuiteId_ +} + +type Data_DBEAlgorithmSuiteId_ interface { + isDBEAlgorithmSuiteId() +} + +type CompanionStruct_DBEAlgorithmSuiteId_ struct { +} + +var Companion_DBEAlgorithmSuiteId_ = CompanionStruct_DBEAlgorithmSuiteId_{} + +type DBEAlgorithmSuiteId_ALG__AES__256__GCM__HKDF__SHA512__COMMIT__KEY__SYMSIG__HMAC__SHA384 struct { +} + +func (DBEAlgorithmSuiteId_ALG__AES__256__GCM__HKDF__SHA512__COMMIT__KEY__SYMSIG__HMAC__SHA384) isDBEAlgorithmSuiteId() { +} + +func (CompanionStruct_DBEAlgorithmSuiteId_) Create_ALG__AES__256__GCM__HKDF__SHA512__COMMIT__KEY__SYMSIG__HMAC__SHA384_() DBEAlgorithmSuiteId { + return DBEAlgorithmSuiteId{DBEAlgorithmSuiteId_ALG__AES__256__GCM__HKDF__SHA512__COMMIT__KEY__SYMSIG__HMAC__SHA384{}} +} + +func (_this DBEAlgorithmSuiteId) Is_ALG__AES__256__GCM__HKDF__SHA512__COMMIT__KEY__SYMSIG__HMAC__SHA384() bool { + _, ok := _this.Get_().(DBEAlgorithmSuiteId_ALG__AES__256__GCM__HKDF__SHA512__COMMIT__KEY__SYMSIG__HMAC__SHA384) + return ok +} + +type DBEAlgorithmSuiteId_ALG__AES__256__GCM__HKDF__SHA512__COMMIT__KEY__ECDSA__P384__SYMSIG__HMAC__SHA384 struct { +} + +func (DBEAlgorithmSuiteId_ALG__AES__256__GCM__HKDF__SHA512__COMMIT__KEY__ECDSA__P384__SYMSIG__HMAC__SHA384) isDBEAlgorithmSuiteId() { +} + +func (CompanionStruct_DBEAlgorithmSuiteId_) Create_ALG__AES__256__GCM__HKDF__SHA512__COMMIT__KEY__ECDSA__P384__SYMSIG__HMAC__SHA384_() DBEAlgorithmSuiteId { + return DBEAlgorithmSuiteId{DBEAlgorithmSuiteId_ALG__AES__256__GCM__HKDF__SHA512__COMMIT__KEY__ECDSA__P384__SYMSIG__HMAC__SHA384{}} +} + +func (_this DBEAlgorithmSuiteId) Is_ALG__AES__256__GCM__HKDF__SHA512__COMMIT__KEY__ECDSA__P384__SYMSIG__HMAC__SHA384() bool { + _, ok := _this.Get_().(DBEAlgorithmSuiteId_ALG__AES__256__GCM__HKDF__SHA512__COMMIT__KEY__ECDSA__P384__SYMSIG__HMAC__SHA384) + return ok +} + +func (CompanionStruct_DBEAlgorithmSuiteId_) Default() DBEAlgorithmSuiteId { + return Companion_DBEAlgorithmSuiteId_.Create_ALG__AES__256__GCM__HKDF__SHA512__COMMIT__KEY__SYMSIG__HMAC__SHA384_() +} + +func (_ CompanionStruct_DBEAlgorithmSuiteId_) AllSingletonConstructors() _dafny.Iterator { + i := -1 + return func() (interface{}, bool) { + i++ + switch i { + case 0: + return Companion_DBEAlgorithmSuiteId_.Create_ALG__AES__256__GCM__HKDF__SHA512__COMMIT__KEY__SYMSIG__HMAC__SHA384_(), true + case 1: + return Companion_DBEAlgorithmSuiteId_.Create_ALG__AES__256__GCM__HKDF__SHA512__COMMIT__KEY__ECDSA__P384__SYMSIG__HMAC__SHA384_(), true + default: + return DBEAlgorithmSuiteId{}, false + } + } +} + +func (_this DBEAlgorithmSuiteId) String() string { + switch _this.Get_().(type) { + case nil: + return "null" + case DBEAlgorithmSuiteId_ALG__AES__256__GCM__HKDF__SHA512__COMMIT__KEY__SYMSIG__HMAC__SHA384: + { + return "AwsCryptographyMaterialProvidersTypes.DBEAlgorithmSuiteId.ALG_AES_256_GCM_HKDF_SHA512_COMMIT_KEY_SYMSIG_HMAC_SHA384" + } + case DBEAlgorithmSuiteId_ALG__AES__256__GCM__HKDF__SHA512__COMMIT__KEY__ECDSA__P384__SYMSIG__HMAC__SHA384: + { + return "AwsCryptographyMaterialProvidersTypes.DBEAlgorithmSuiteId.ALG_AES_256_GCM_HKDF_SHA512_COMMIT_KEY_ECDSA_P384_SYMSIG_HMAC_SHA384" + } + default: + { + return "" + } + } +} + +func (_this DBEAlgorithmSuiteId) Equals(other DBEAlgorithmSuiteId) bool { + switch _this.Get_().(type) { + case DBEAlgorithmSuiteId_ALG__AES__256__GCM__HKDF__SHA512__COMMIT__KEY__SYMSIG__HMAC__SHA384: + { + _, ok := other.Get_().(DBEAlgorithmSuiteId_ALG__AES__256__GCM__HKDF__SHA512__COMMIT__KEY__SYMSIG__HMAC__SHA384) + return ok + } + case DBEAlgorithmSuiteId_ALG__AES__256__GCM__HKDF__SHA512__COMMIT__KEY__ECDSA__P384__SYMSIG__HMAC__SHA384: + { + _, ok := other.Get_().(DBEAlgorithmSuiteId_ALG__AES__256__GCM__HKDF__SHA512__COMMIT__KEY__ECDSA__P384__SYMSIG__HMAC__SHA384) + return ok + } + default: + { + return false // unexpected + } + } +} + +func (_this DBEAlgorithmSuiteId) EqualsGeneric(other interface{}) bool { + typed, ok := other.(DBEAlgorithmSuiteId) + return ok && _this.Equals(typed) +} + +func Type_DBEAlgorithmSuiteId_() _dafny.TypeDescriptor { + return type_DBEAlgorithmSuiteId_{} +} + +type type_DBEAlgorithmSuiteId_ struct { +} + +func (_this type_DBEAlgorithmSuiteId_) Default() interface{} { + return Companion_DBEAlgorithmSuiteId_.Default() +} + +func (_this type_DBEAlgorithmSuiteId_) String() string { + return "AwsCryptographyMaterialProvidersTypes.DBEAlgorithmSuiteId" +} +func (_this DBEAlgorithmSuiteId) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = DBEAlgorithmSuiteId{} + +// End of datatype DBEAlgorithmSuiteId + +// Definition of datatype DBECommitmentPolicy +type DBECommitmentPolicy struct { + Data_DBECommitmentPolicy_ +} + +func (_this DBECommitmentPolicy) Get_() Data_DBECommitmentPolicy_ { + return _this.Data_DBECommitmentPolicy_ +} + +type Data_DBECommitmentPolicy_ interface { + isDBECommitmentPolicy() +} + +type CompanionStruct_DBECommitmentPolicy_ struct { +} + +var Companion_DBECommitmentPolicy_ = CompanionStruct_DBECommitmentPolicy_{} + +type DBECommitmentPolicy_REQUIRE__ENCRYPT__REQUIRE__DECRYPT struct { +} + +func (DBECommitmentPolicy_REQUIRE__ENCRYPT__REQUIRE__DECRYPT) isDBECommitmentPolicy() {} + +func (CompanionStruct_DBECommitmentPolicy_) Create_REQUIRE__ENCRYPT__REQUIRE__DECRYPT_() DBECommitmentPolicy { + return DBECommitmentPolicy{DBECommitmentPolicy_REQUIRE__ENCRYPT__REQUIRE__DECRYPT{}} +} + +func (_this DBECommitmentPolicy) Is_REQUIRE__ENCRYPT__REQUIRE__DECRYPT() bool { + _, ok := _this.Get_().(DBECommitmentPolicy_REQUIRE__ENCRYPT__REQUIRE__DECRYPT) + return ok +} + +func (CompanionStruct_DBECommitmentPolicy_) Default() DBECommitmentPolicy { + return Companion_DBECommitmentPolicy_.Create_REQUIRE__ENCRYPT__REQUIRE__DECRYPT_() +} + +func (_ CompanionStruct_DBECommitmentPolicy_) AllSingletonConstructors() _dafny.Iterator { + i := -1 + return func() (interface{}, bool) { + i++ + switch i { + case 0: + return Companion_DBECommitmentPolicy_.Create_REQUIRE__ENCRYPT__REQUIRE__DECRYPT_(), true + default: + return DBECommitmentPolicy{}, false + } + } +} + +func (_this DBECommitmentPolicy) String() string { + switch _this.Get_().(type) { + case nil: + return "null" + case DBECommitmentPolicy_REQUIRE__ENCRYPT__REQUIRE__DECRYPT: + { + return "AwsCryptographyMaterialProvidersTypes.DBECommitmentPolicy.REQUIRE_ENCRYPT_REQUIRE_DECRYPT" + } + default: + { + return "" + } + } +} + +func (_this DBECommitmentPolicy) Equals(other DBECommitmentPolicy) bool { + switch _this.Get_().(type) { + case DBECommitmentPolicy_REQUIRE__ENCRYPT__REQUIRE__DECRYPT: + { + _, ok := other.Get_().(DBECommitmentPolicy_REQUIRE__ENCRYPT__REQUIRE__DECRYPT) + return ok + } + default: + { + return false // unexpected + } + } +} + +func (_this DBECommitmentPolicy) EqualsGeneric(other interface{}) bool { + typed, ok := other.(DBECommitmentPolicy) + return ok && _this.Equals(typed) +} + +func Type_DBECommitmentPolicy_() _dafny.TypeDescriptor { + return type_DBECommitmentPolicy_{} +} + +type type_DBECommitmentPolicy_ struct { +} + +func (_this type_DBECommitmentPolicy_) Default() interface{} { + return Companion_DBECommitmentPolicy_.Default() +} + +func (_this type_DBECommitmentPolicy_) String() string { + return "AwsCryptographyMaterialProvidersTypes.DBECommitmentPolicy" +} +func (_this DBECommitmentPolicy) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = DBECommitmentPolicy{} + +// End of datatype DBECommitmentPolicy + +// Definition of datatype DecryptionMaterials +type DecryptionMaterials struct { + Data_DecryptionMaterials_ +} + +func (_this DecryptionMaterials) Get_() Data_DecryptionMaterials_ { + return _this.Data_DecryptionMaterials_ +} + +type Data_DecryptionMaterials_ interface { + isDecryptionMaterials() +} + +type CompanionStruct_DecryptionMaterials_ struct { +} + +var Companion_DecryptionMaterials_ = CompanionStruct_DecryptionMaterials_{} + +type DecryptionMaterials_DecryptionMaterials struct { + AlgorithmSuite AlgorithmSuiteInfo + EncryptionContext _dafny.Map + RequiredEncryptionContextKeys _dafny.Sequence + PlaintextDataKey m_Wrappers.Option + VerificationKey m_Wrappers.Option + SymmetricSigningKey m_Wrappers.Option +} + +func (DecryptionMaterials_DecryptionMaterials) isDecryptionMaterials() {} + +func (CompanionStruct_DecryptionMaterials_) Create_DecryptionMaterials_(AlgorithmSuite AlgorithmSuiteInfo, EncryptionContext _dafny.Map, RequiredEncryptionContextKeys _dafny.Sequence, PlaintextDataKey m_Wrappers.Option, VerificationKey m_Wrappers.Option, SymmetricSigningKey m_Wrappers.Option) DecryptionMaterials { + return DecryptionMaterials{DecryptionMaterials_DecryptionMaterials{AlgorithmSuite, EncryptionContext, RequiredEncryptionContextKeys, PlaintextDataKey, VerificationKey, SymmetricSigningKey}} +} + +func (_this DecryptionMaterials) Is_DecryptionMaterials() bool { + _, ok := _this.Get_().(DecryptionMaterials_DecryptionMaterials) + return ok +} + +func (CompanionStruct_DecryptionMaterials_) Default() DecryptionMaterials { + return Companion_DecryptionMaterials_.Create_DecryptionMaterials_(Companion_AlgorithmSuiteInfo_.Default(), _dafny.EmptyMap, _dafny.EmptySeq, m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this DecryptionMaterials) Dtor_algorithmSuite() AlgorithmSuiteInfo { + return _this.Get_().(DecryptionMaterials_DecryptionMaterials).AlgorithmSuite +} + +func (_this DecryptionMaterials) Dtor_encryptionContext() _dafny.Map { + return _this.Get_().(DecryptionMaterials_DecryptionMaterials).EncryptionContext +} + +func (_this DecryptionMaterials) Dtor_requiredEncryptionContextKeys() _dafny.Sequence { + return _this.Get_().(DecryptionMaterials_DecryptionMaterials).RequiredEncryptionContextKeys +} + +func (_this DecryptionMaterials) Dtor_plaintextDataKey() m_Wrappers.Option { + return _this.Get_().(DecryptionMaterials_DecryptionMaterials).PlaintextDataKey +} + +func (_this DecryptionMaterials) Dtor_verificationKey() m_Wrappers.Option { + return _this.Get_().(DecryptionMaterials_DecryptionMaterials).VerificationKey +} + +func (_this DecryptionMaterials) Dtor_symmetricSigningKey() m_Wrappers.Option { + return _this.Get_().(DecryptionMaterials_DecryptionMaterials).SymmetricSigningKey +} + +func (_this DecryptionMaterials) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case DecryptionMaterials_DecryptionMaterials: + { + return "AwsCryptographyMaterialProvidersTypes.DecryptionMaterials.DecryptionMaterials" + "(" + _dafny.String(data.AlgorithmSuite) + ", " + _dafny.String(data.EncryptionContext) + ", " + _dafny.String(data.RequiredEncryptionContextKeys) + ", " + _dafny.String(data.PlaintextDataKey) + ", " + _dafny.String(data.VerificationKey) + ", " + _dafny.String(data.SymmetricSigningKey) + ")" + } + default: + { + return "" + } + } +} + +func (_this DecryptionMaterials) Equals(other DecryptionMaterials) bool { + switch data1 := _this.Get_().(type) { + case DecryptionMaterials_DecryptionMaterials: + { + data2, ok := other.Get_().(DecryptionMaterials_DecryptionMaterials) + return ok && data1.AlgorithmSuite.Equals(data2.AlgorithmSuite) && data1.EncryptionContext.Equals(data2.EncryptionContext) && data1.RequiredEncryptionContextKeys.Equals(data2.RequiredEncryptionContextKeys) && data1.PlaintextDataKey.Equals(data2.PlaintextDataKey) && data1.VerificationKey.Equals(data2.VerificationKey) && data1.SymmetricSigningKey.Equals(data2.SymmetricSigningKey) + } + default: + { + return false // unexpected + } + } +} + +func (_this DecryptionMaterials) EqualsGeneric(other interface{}) bool { + typed, ok := other.(DecryptionMaterials) + return ok && _this.Equals(typed) +} + +func Type_DecryptionMaterials_() _dafny.TypeDescriptor { + return type_DecryptionMaterials_{} +} + +type type_DecryptionMaterials_ struct { +} + +func (_this type_DecryptionMaterials_) Default() interface{} { + return Companion_DecryptionMaterials_.Default() +} + +func (_this type_DecryptionMaterials_) String() string { + return "AwsCryptographyMaterialProvidersTypes.DecryptionMaterials" +} +func (_this DecryptionMaterials) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = DecryptionMaterials{} + +// End of datatype DecryptionMaterials + +// Definition of datatype DecryptMaterialsInput +type DecryptMaterialsInput struct { + Data_DecryptMaterialsInput_ +} + +func (_this DecryptMaterialsInput) Get_() Data_DecryptMaterialsInput_ { + return _this.Data_DecryptMaterialsInput_ +} + +type Data_DecryptMaterialsInput_ interface { + isDecryptMaterialsInput() +} + +type CompanionStruct_DecryptMaterialsInput_ struct { +} + +var Companion_DecryptMaterialsInput_ = CompanionStruct_DecryptMaterialsInput_{} + +type DecryptMaterialsInput_DecryptMaterialsInput struct { + AlgorithmSuiteId AlgorithmSuiteId + CommitmentPolicy CommitmentPolicy + EncryptedDataKeys _dafny.Sequence + EncryptionContext _dafny.Map + ReproducedEncryptionContext m_Wrappers.Option +} + +func (DecryptMaterialsInput_DecryptMaterialsInput) isDecryptMaterialsInput() {} + +func (CompanionStruct_DecryptMaterialsInput_) Create_DecryptMaterialsInput_(AlgorithmSuiteId AlgorithmSuiteId, CommitmentPolicy CommitmentPolicy, EncryptedDataKeys _dafny.Sequence, EncryptionContext _dafny.Map, ReproducedEncryptionContext m_Wrappers.Option) DecryptMaterialsInput { + return DecryptMaterialsInput{DecryptMaterialsInput_DecryptMaterialsInput{AlgorithmSuiteId, CommitmentPolicy, EncryptedDataKeys, EncryptionContext, ReproducedEncryptionContext}} +} + +func (_this DecryptMaterialsInput) Is_DecryptMaterialsInput() bool { + _, ok := _this.Get_().(DecryptMaterialsInput_DecryptMaterialsInput) + return ok +} + +func (CompanionStruct_DecryptMaterialsInput_) Default() DecryptMaterialsInput { + return Companion_DecryptMaterialsInput_.Create_DecryptMaterialsInput_(Companion_AlgorithmSuiteId_.Default(), Companion_CommitmentPolicy_.Default(), _dafny.EmptySeq, _dafny.EmptyMap, m_Wrappers.Companion_Option_.Default()) +} + +func (_this DecryptMaterialsInput) Dtor_algorithmSuiteId() AlgorithmSuiteId { + return _this.Get_().(DecryptMaterialsInput_DecryptMaterialsInput).AlgorithmSuiteId +} + +func (_this DecryptMaterialsInput) Dtor_commitmentPolicy() CommitmentPolicy { + return _this.Get_().(DecryptMaterialsInput_DecryptMaterialsInput).CommitmentPolicy +} + +func (_this DecryptMaterialsInput) Dtor_encryptedDataKeys() _dafny.Sequence { + return _this.Get_().(DecryptMaterialsInput_DecryptMaterialsInput).EncryptedDataKeys +} + +func (_this DecryptMaterialsInput) Dtor_encryptionContext() _dafny.Map { + return _this.Get_().(DecryptMaterialsInput_DecryptMaterialsInput).EncryptionContext +} + +func (_this DecryptMaterialsInput) Dtor_reproducedEncryptionContext() m_Wrappers.Option { + return _this.Get_().(DecryptMaterialsInput_DecryptMaterialsInput).ReproducedEncryptionContext +} + +func (_this DecryptMaterialsInput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case DecryptMaterialsInput_DecryptMaterialsInput: + { + return "AwsCryptographyMaterialProvidersTypes.DecryptMaterialsInput.DecryptMaterialsInput" + "(" + _dafny.String(data.AlgorithmSuiteId) + ", " + _dafny.String(data.CommitmentPolicy) + ", " + _dafny.String(data.EncryptedDataKeys) + ", " + _dafny.String(data.EncryptionContext) + ", " + _dafny.String(data.ReproducedEncryptionContext) + ")" + } + default: + { + return "" + } + } +} + +func (_this DecryptMaterialsInput) Equals(other DecryptMaterialsInput) bool { + switch data1 := _this.Get_().(type) { + case DecryptMaterialsInput_DecryptMaterialsInput: + { + data2, ok := other.Get_().(DecryptMaterialsInput_DecryptMaterialsInput) + return ok && data1.AlgorithmSuiteId.Equals(data2.AlgorithmSuiteId) && data1.CommitmentPolicy.Equals(data2.CommitmentPolicy) && data1.EncryptedDataKeys.Equals(data2.EncryptedDataKeys) && data1.EncryptionContext.Equals(data2.EncryptionContext) && data1.ReproducedEncryptionContext.Equals(data2.ReproducedEncryptionContext) + } + default: + { + return false // unexpected + } + } +} + +func (_this DecryptMaterialsInput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(DecryptMaterialsInput) + return ok && _this.Equals(typed) +} + +func Type_DecryptMaterialsInput_() _dafny.TypeDescriptor { + return type_DecryptMaterialsInput_{} +} + +type type_DecryptMaterialsInput_ struct { +} + +func (_this type_DecryptMaterialsInput_) Default() interface{} { + return Companion_DecryptMaterialsInput_.Default() +} + +func (_this type_DecryptMaterialsInput_) String() string { + return "AwsCryptographyMaterialProvidersTypes.DecryptMaterialsInput" +} +func (_this DecryptMaterialsInput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = DecryptMaterialsInput{} + +// End of datatype DecryptMaterialsInput + +// Definition of datatype DecryptMaterialsOutput +type DecryptMaterialsOutput struct { + Data_DecryptMaterialsOutput_ +} + +func (_this DecryptMaterialsOutput) Get_() Data_DecryptMaterialsOutput_ { + return _this.Data_DecryptMaterialsOutput_ +} + +type Data_DecryptMaterialsOutput_ interface { + isDecryptMaterialsOutput() +} + +type CompanionStruct_DecryptMaterialsOutput_ struct { +} + +var Companion_DecryptMaterialsOutput_ = CompanionStruct_DecryptMaterialsOutput_{} + +type DecryptMaterialsOutput_DecryptMaterialsOutput struct { + DecryptionMaterials DecryptionMaterials +} + +func (DecryptMaterialsOutput_DecryptMaterialsOutput) isDecryptMaterialsOutput() {} + +func (CompanionStruct_DecryptMaterialsOutput_) Create_DecryptMaterialsOutput_(DecryptionMaterials DecryptionMaterials) DecryptMaterialsOutput { + return DecryptMaterialsOutput{DecryptMaterialsOutput_DecryptMaterialsOutput{DecryptionMaterials}} +} + +func (_this DecryptMaterialsOutput) Is_DecryptMaterialsOutput() bool { + _, ok := _this.Get_().(DecryptMaterialsOutput_DecryptMaterialsOutput) + return ok +} + +func (CompanionStruct_DecryptMaterialsOutput_) Default() DecryptMaterialsOutput { + return Companion_DecryptMaterialsOutput_.Create_DecryptMaterialsOutput_(Companion_DecryptionMaterials_.Default()) +} + +func (_this DecryptMaterialsOutput) Dtor_decryptionMaterials() DecryptionMaterials { + return _this.Get_().(DecryptMaterialsOutput_DecryptMaterialsOutput).DecryptionMaterials +} + +func (_this DecryptMaterialsOutput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case DecryptMaterialsOutput_DecryptMaterialsOutput: + { + return "AwsCryptographyMaterialProvidersTypes.DecryptMaterialsOutput.DecryptMaterialsOutput" + "(" + _dafny.String(data.DecryptionMaterials) + ")" + } + default: + { + return "" + } + } +} + +func (_this DecryptMaterialsOutput) Equals(other DecryptMaterialsOutput) bool { + switch data1 := _this.Get_().(type) { + case DecryptMaterialsOutput_DecryptMaterialsOutput: + { + data2, ok := other.Get_().(DecryptMaterialsOutput_DecryptMaterialsOutput) + return ok && data1.DecryptionMaterials.Equals(data2.DecryptionMaterials) + } + default: + { + return false // unexpected + } + } +} + +func (_this DecryptMaterialsOutput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(DecryptMaterialsOutput) + return ok && _this.Equals(typed) +} + +func Type_DecryptMaterialsOutput_() _dafny.TypeDescriptor { + return type_DecryptMaterialsOutput_{} +} + +type type_DecryptMaterialsOutput_ struct { +} + +func (_this type_DecryptMaterialsOutput_) Default() interface{} { + return Companion_DecryptMaterialsOutput_.Default() +} + +func (_this type_DecryptMaterialsOutput_) String() string { + return "AwsCryptographyMaterialProvidersTypes.DecryptMaterialsOutput" +} +func (_this DecryptMaterialsOutput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = DecryptMaterialsOutput{} + +// End of datatype DecryptMaterialsOutput + +// Definition of datatype DefaultCache +type DefaultCache struct { + Data_DefaultCache_ +} + +func (_this DefaultCache) Get_() Data_DefaultCache_ { + return _this.Data_DefaultCache_ +} + +type Data_DefaultCache_ interface { + isDefaultCache() +} + +type CompanionStruct_DefaultCache_ struct { +} + +var Companion_DefaultCache_ = CompanionStruct_DefaultCache_{} + +type DefaultCache_DefaultCache struct { + EntryCapacity int32 +} + +func (DefaultCache_DefaultCache) isDefaultCache() {} + +func (CompanionStruct_DefaultCache_) Create_DefaultCache_(EntryCapacity int32) DefaultCache { + return DefaultCache{DefaultCache_DefaultCache{EntryCapacity}} +} + +func (_this DefaultCache) Is_DefaultCache() bool { + _, ok := _this.Get_().(DefaultCache_DefaultCache) + return ok +} + +func (CompanionStruct_DefaultCache_) Default() DefaultCache { + return Companion_DefaultCache_.Create_DefaultCache_(int32(0)) +} + +func (_this DefaultCache) Dtor_entryCapacity() int32 { + return _this.Get_().(DefaultCache_DefaultCache).EntryCapacity +} + +func (_this DefaultCache) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case DefaultCache_DefaultCache: + { + return "AwsCryptographyMaterialProvidersTypes.DefaultCache.DefaultCache" + "(" + _dafny.String(data.EntryCapacity) + ")" + } + default: + { + return "" + } + } +} + +func (_this DefaultCache) Equals(other DefaultCache) bool { + switch data1 := _this.Get_().(type) { + case DefaultCache_DefaultCache: + { + data2, ok := other.Get_().(DefaultCache_DefaultCache) + return ok && data1.EntryCapacity == data2.EntryCapacity + } + default: + { + return false // unexpected + } + } +} + +func (_this DefaultCache) EqualsGeneric(other interface{}) bool { + typed, ok := other.(DefaultCache) + return ok && _this.Equals(typed) +} + +func Type_DefaultCache_() _dafny.TypeDescriptor { + return type_DefaultCache_{} +} + +type type_DefaultCache_ struct { +} + +func (_this type_DefaultCache_) Default() interface{} { + return Companion_DefaultCache_.Default() +} + +func (_this type_DefaultCache_) String() string { + return "AwsCryptographyMaterialProvidersTypes.DefaultCache" +} +func (_this DefaultCache) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = DefaultCache{} + +// End of datatype DefaultCache + +// Definition of datatype DeleteCacheEntryInput +type DeleteCacheEntryInput struct { + Data_DeleteCacheEntryInput_ +} + +func (_this DeleteCacheEntryInput) Get_() Data_DeleteCacheEntryInput_ { + return _this.Data_DeleteCacheEntryInput_ +} + +type Data_DeleteCacheEntryInput_ interface { + isDeleteCacheEntryInput() +} + +type CompanionStruct_DeleteCacheEntryInput_ struct { +} + +var Companion_DeleteCacheEntryInput_ = CompanionStruct_DeleteCacheEntryInput_{} + +type DeleteCacheEntryInput_DeleteCacheEntryInput struct { + Identifier _dafny.Sequence +} + +func (DeleteCacheEntryInput_DeleteCacheEntryInput) isDeleteCacheEntryInput() {} + +func (CompanionStruct_DeleteCacheEntryInput_) Create_DeleteCacheEntryInput_(Identifier _dafny.Sequence) DeleteCacheEntryInput { + return DeleteCacheEntryInput{DeleteCacheEntryInput_DeleteCacheEntryInput{Identifier}} +} + +func (_this DeleteCacheEntryInput) Is_DeleteCacheEntryInput() bool { + _, ok := _this.Get_().(DeleteCacheEntryInput_DeleteCacheEntryInput) + return ok +} + +func (CompanionStruct_DeleteCacheEntryInput_) Default() DeleteCacheEntryInput { + return Companion_DeleteCacheEntryInput_.Create_DeleteCacheEntryInput_(_dafny.EmptySeq) +} + +func (_this DeleteCacheEntryInput) Dtor_identifier() _dafny.Sequence { + return _this.Get_().(DeleteCacheEntryInput_DeleteCacheEntryInput).Identifier +} + +func (_this DeleteCacheEntryInput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case DeleteCacheEntryInput_DeleteCacheEntryInput: + { + return "AwsCryptographyMaterialProvidersTypes.DeleteCacheEntryInput.DeleteCacheEntryInput" + "(" + _dafny.String(data.Identifier) + ")" + } + default: + { + return "" + } + } +} + +func (_this DeleteCacheEntryInput) Equals(other DeleteCacheEntryInput) bool { + switch data1 := _this.Get_().(type) { + case DeleteCacheEntryInput_DeleteCacheEntryInput: + { + data2, ok := other.Get_().(DeleteCacheEntryInput_DeleteCacheEntryInput) + return ok && data1.Identifier.Equals(data2.Identifier) + } + default: + { + return false // unexpected + } + } +} + +func (_this DeleteCacheEntryInput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(DeleteCacheEntryInput) + return ok && _this.Equals(typed) +} + +func Type_DeleteCacheEntryInput_() _dafny.TypeDescriptor { + return type_DeleteCacheEntryInput_{} +} + +type type_DeleteCacheEntryInput_ struct { +} + +func (_this type_DeleteCacheEntryInput_) Default() interface{} { + return Companion_DeleteCacheEntryInput_.Default() +} + +func (_this type_DeleteCacheEntryInput_) String() string { + return "AwsCryptographyMaterialProvidersTypes.DeleteCacheEntryInput" +} +func (_this DeleteCacheEntryInput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = DeleteCacheEntryInput{} + +// End of datatype DeleteCacheEntryInput + +// Definition of datatype DerivationAlgorithm +type DerivationAlgorithm struct { + Data_DerivationAlgorithm_ +} + +func (_this DerivationAlgorithm) Get_() Data_DerivationAlgorithm_ { + return _this.Data_DerivationAlgorithm_ +} + +type Data_DerivationAlgorithm_ interface { + isDerivationAlgorithm() +} + +type CompanionStruct_DerivationAlgorithm_ struct { +} + +var Companion_DerivationAlgorithm_ = CompanionStruct_DerivationAlgorithm_{} + +type DerivationAlgorithm_HKDF struct { + HKDF HKDF +} + +func (DerivationAlgorithm_HKDF) isDerivationAlgorithm() {} + +func (CompanionStruct_DerivationAlgorithm_) Create_HKDF_(HKDF HKDF) DerivationAlgorithm { + return DerivationAlgorithm{DerivationAlgorithm_HKDF{HKDF}} +} + +func (_this DerivationAlgorithm) Is_HKDF() bool { + _, ok := _this.Get_().(DerivationAlgorithm_HKDF) + return ok +} + +type DerivationAlgorithm_IDENTITY struct { + IDENTITY IDENTITY +} + +func (DerivationAlgorithm_IDENTITY) isDerivationAlgorithm() {} + +func (CompanionStruct_DerivationAlgorithm_) Create_IDENTITY_(IDENTITY IDENTITY) DerivationAlgorithm { + return DerivationAlgorithm{DerivationAlgorithm_IDENTITY{IDENTITY}} +} + +func (_this DerivationAlgorithm) Is_IDENTITY() bool { + _, ok := _this.Get_().(DerivationAlgorithm_IDENTITY) + return ok +} + +type DerivationAlgorithm_None struct { + None None +} + +func (DerivationAlgorithm_None) isDerivationAlgorithm() {} + +func (CompanionStruct_DerivationAlgorithm_) Create_None_(None None) DerivationAlgorithm { + return DerivationAlgorithm{DerivationAlgorithm_None{None}} +} + +func (_this DerivationAlgorithm) Is_None() bool { + _, ok := _this.Get_().(DerivationAlgorithm_None) + return ok +} + +func (CompanionStruct_DerivationAlgorithm_) Default() DerivationAlgorithm { + return Companion_DerivationAlgorithm_.Create_HKDF_(Companion_HKDF_.Default()) +} + +func (_this DerivationAlgorithm) Dtor_HKDF() HKDF { + return _this.Get_().(DerivationAlgorithm_HKDF).HKDF +} + +func (_this DerivationAlgorithm) Dtor_IDENTITY() IDENTITY { + return _this.Get_().(DerivationAlgorithm_IDENTITY).IDENTITY +} + +func (_this DerivationAlgorithm) Dtor_None() None { + return _this.Get_().(DerivationAlgorithm_None).None +} + +func (_this DerivationAlgorithm) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case DerivationAlgorithm_HKDF: + { + return "AwsCryptographyMaterialProvidersTypes.DerivationAlgorithm.HKDF" + "(" + _dafny.String(data.HKDF) + ")" + } + case DerivationAlgorithm_IDENTITY: + { + return "AwsCryptographyMaterialProvidersTypes.DerivationAlgorithm.IDENTITY" + "(" + _dafny.String(data.IDENTITY) + ")" + } + case DerivationAlgorithm_None: + { + return "AwsCryptographyMaterialProvidersTypes.DerivationAlgorithm.None" + "(" + _dafny.String(data.None) + ")" + } + default: + { + return "" + } + } +} + +func (_this DerivationAlgorithm) Equals(other DerivationAlgorithm) bool { + switch data1 := _this.Get_().(type) { + case DerivationAlgorithm_HKDF: + { + data2, ok := other.Get_().(DerivationAlgorithm_HKDF) + return ok && data1.HKDF.Equals(data2.HKDF) + } + case DerivationAlgorithm_IDENTITY: + { + data2, ok := other.Get_().(DerivationAlgorithm_IDENTITY) + return ok && data1.IDENTITY.Equals(data2.IDENTITY) + } + case DerivationAlgorithm_None: + { + data2, ok := other.Get_().(DerivationAlgorithm_None) + return ok && data1.None.Equals(data2.None) + } + default: + { + return false // unexpected + } + } +} + +func (_this DerivationAlgorithm) EqualsGeneric(other interface{}) bool { + typed, ok := other.(DerivationAlgorithm) + return ok && _this.Equals(typed) +} + +func Type_DerivationAlgorithm_() _dafny.TypeDescriptor { + return type_DerivationAlgorithm_{} +} + +type type_DerivationAlgorithm_ struct { +} + +func (_this type_DerivationAlgorithm_) Default() interface{} { + return Companion_DerivationAlgorithm_.Default() +} + +func (_this type_DerivationAlgorithm_) String() string { + return "AwsCryptographyMaterialProvidersTypes.DerivationAlgorithm" +} +func (_this DerivationAlgorithm) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = DerivationAlgorithm{} + +// End of datatype DerivationAlgorithm + +// Definition of datatype DIRECT__KEY__WRAPPING +type DIRECT__KEY__WRAPPING struct { + Data_DIRECT__KEY__WRAPPING_ +} + +func (_this DIRECT__KEY__WRAPPING) Get_() Data_DIRECT__KEY__WRAPPING_ { + return _this.Data_DIRECT__KEY__WRAPPING_ +} + +type Data_DIRECT__KEY__WRAPPING_ interface { + isDIRECT__KEY__WRAPPING() +} + +type CompanionStruct_DIRECT__KEY__WRAPPING_ struct { +} + +var Companion_DIRECT__KEY__WRAPPING_ = CompanionStruct_DIRECT__KEY__WRAPPING_{} + +type DIRECT__KEY__WRAPPING_DIRECT__KEY__WRAPPING struct { +} + +func (DIRECT__KEY__WRAPPING_DIRECT__KEY__WRAPPING) isDIRECT__KEY__WRAPPING() {} + +func (CompanionStruct_DIRECT__KEY__WRAPPING_) Create_DIRECT__KEY__WRAPPING_() DIRECT__KEY__WRAPPING { + return DIRECT__KEY__WRAPPING{DIRECT__KEY__WRAPPING_DIRECT__KEY__WRAPPING{}} +} + +func (_this DIRECT__KEY__WRAPPING) Is_DIRECT__KEY__WRAPPING() bool { + _, ok := _this.Get_().(DIRECT__KEY__WRAPPING_DIRECT__KEY__WRAPPING) + return ok +} + +func (CompanionStruct_DIRECT__KEY__WRAPPING_) Default() DIRECT__KEY__WRAPPING { + return Companion_DIRECT__KEY__WRAPPING_.Create_DIRECT__KEY__WRAPPING_() +} + +func (_ CompanionStruct_DIRECT__KEY__WRAPPING_) AllSingletonConstructors() _dafny.Iterator { + i := -1 + return func() (interface{}, bool) { + i++ + switch i { + case 0: + return Companion_DIRECT__KEY__WRAPPING_.Create_DIRECT__KEY__WRAPPING_(), true + default: + return DIRECT__KEY__WRAPPING{}, false + } + } +} + +func (_this DIRECT__KEY__WRAPPING) String() string { + switch _this.Get_().(type) { + case nil: + return "null" + case DIRECT__KEY__WRAPPING_DIRECT__KEY__WRAPPING: + { + return "AwsCryptographyMaterialProvidersTypes.DIRECT_KEY_WRAPPING.DIRECT_KEY_WRAPPING" + } + default: + { + return "" + } + } +} + +func (_this DIRECT__KEY__WRAPPING) Equals(other DIRECT__KEY__WRAPPING) bool { + switch _this.Get_().(type) { + case DIRECT__KEY__WRAPPING_DIRECT__KEY__WRAPPING: + { + _, ok := other.Get_().(DIRECT__KEY__WRAPPING_DIRECT__KEY__WRAPPING) + return ok + } + default: + { + return false // unexpected + } + } +} + +func (_this DIRECT__KEY__WRAPPING) EqualsGeneric(other interface{}) bool { + typed, ok := other.(DIRECT__KEY__WRAPPING) + return ok && _this.Equals(typed) +} + +func Type_DIRECT__KEY__WRAPPING_() _dafny.TypeDescriptor { + return type_DIRECT__KEY__WRAPPING_{} +} + +type type_DIRECT__KEY__WRAPPING_ struct { +} + +func (_this type_DIRECT__KEY__WRAPPING_) Default() interface{} { + return Companion_DIRECT__KEY__WRAPPING_.Default() +} + +func (_this type_DIRECT__KEY__WRAPPING_) String() string { + return "AwsCryptographyMaterialProvidersTypes.DIRECT__KEY__WRAPPING" +} +func (_this DIRECT__KEY__WRAPPING) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = DIRECT__KEY__WRAPPING{} + +// End of datatype DIRECT__KEY__WRAPPING + +// Definition of datatype DiscoveryFilter +type DiscoveryFilter struct { + Data_DiscoveryFilter_ +} + +func (_this DiscoveryFilter) Get_() Data_DiscoveryFilter_ { + return _this.Data_DiscoveryFilter_ +} + +type Data_DiscoveryFilter_ interface { + isDiscoveryFilter() +} + +type CompanionStruct_DiscoveryFilter_ struct { +} + +var Companion_DiscoveryFilter_ = CompanionStruct_DiscoveryFilter_{} + +type DiscoveryFilter_DiscoveryFilter struct { + AccountIds _dafny.Sequence + Partition _dafny.Sequence +} + +func (DiscoveryFilter_DiscoveryFilter) isDiscoveryFilter() {} + +func (CompanionStruct_DiscoveryFilter_) Create_DiscoveryFilter_(AccountIds _dafny.Sequence, Partition _dafny.Sequence) DiscoveryFilter { + return DiscoveryFilter{DiscoveryFilter_DiscoveryFilter{AccountIds, Partition}} +} + +func (_this DiscoveryFilter) Is_DiscoveryFilter() bool { + _, ok := _this.Get_().(DiscoveryFilter_DiscoveryFilter) + return ok +} + +func (CompanionStruct_DiscoveryFilter_) Default() DiscoveryFilter { + return Companion_DiscoveryFilter_.Create_DiscoveryFilter_(_dafny.EmptySeq, _dafny.EmptySeq.SetString()) +} + +func (_this DiscoveryFilter) Dtor_accountIds() _dafny.Sequence { + return _this.Get_().(DiscoveryFilter_DiscoveryFilter).AccountIds +} + +func (_this DiscoveryFilter) Dtor_partition() _dafny.Sequence { + return _this.Get_().(DiscoveryFilter_DiscoveryFilter).Partition +} + +func (_this DiscoveryFilter) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case DiscoveryFilter_DiscoveryFilter: + { + return "AwsCryptographyMaterialProvidersTypes.DiscoveryFilter.DiscoveryFilter" + "(" + _dafny.String(data.AccountIds) + ", " + _dafny.String(data.Partition) + ")" + } + default: + { + return "" + } + } +} + +func (_this DiscoveryFilter) Equals(other DiscoveryFilter) bool { + switch data1 := _this.Get_().(type) { + case DiscoveryFilter_DiscoveryFilter: + { + data2, ok := other.Get_().(DiscoveryFilter_DiscoveryFilter) + return ok && data1.AccountIds.Equals(data2.AccountIds) && data1.Partition.Equals(data2.Partition) + } + default: + { + return false // unexpected + } + } +} + +func (_this DiscoveryFilter) EqualsGeneric(other interface{}) bool { + typed, ok := other.(DiscoveryFilter) + return ok && _this.Equals(typed) +} + +func Type_DiscoveryFilter_() _dafny.TypeDescriptor { + return type_DiscoveryFilter_{} +} + +type type_DiscoveryFilter_ struct { +} + +func (_this type_DiscoveryFilter_) Default() interface{} { + return Companion_DiscoveryFilter_.Default() +} + +func (_this type_DiscoveryFilter_) String() string { + return "AwsCryptographyMaterialProvidersTypes.DiscoveryFilter" +} +func (_this DiscoveryFilter) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = DiscoveryFilter{} + +// End of datatype DiscoveryFilter + +// Definition of datatype ECDSA +type ECDSA struct { + Data_ECDSA_ +} + +func (_this ECDSA) Get_() Data_ECDSA_ { + return _this.Data_ECDSA_ +} + +type Data_ECDSA_ interface { + isECDSA() +} + +type CompanionStruct_ECDSA_ struct { +} + +var Companion_ECDSA_ = CompanionStruct_ECDSA_{} + +type ECDSA_ECDSA struct { + Curve m_AwsCryptographyPrimitivesTypes.ECDSASignatureAlgorithm +} + +func (ECDSA_ECDSA) isECDSA() {} + +func (CompanionStruct_ECDSA_) Create_ECDSA_(Curve m_AwsCryptographyPrimitivesTypes.ECDSASignatureAlgorithm) ECDSA { + return ECDSA{ECDSA_ECDSA{Curve}} +} + +func (_this ECDSA) Is_ECDSA() bool { + _, ok := _this.Get_().(ECDSA_ECDSA) + return ok +} + +func (CompanionStruct_ECDSA_) Default() ECDSA { + return Companion_ECDSA_.Create_ECDSA_(m_AwsCryptographyPrimitivesTypes.Companion_ECDSASignatureAlgorithm_.Default()) +} + +func (_this ECDSA) Dtor_curve() m_AwsCryptographyPrimitivesTypes.ECDSASignatureAlgorithm { + return _this.Get_().(ECDSA_ECDSA).Curve +} + +func (_this ECDSA) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case ECDSA_ECDSA: + { + return "AwsCryptographyMaterialProvidersTypes.ECDSA.ECDSA" + "(" + _dafny.String(data.Curve) + ")" + } + default: + { + return "" + } + } +} + +func (_this ECDSA) Equals(other ECDSA) bool { + switch data1 := _this.Get_().(type) { + case ECDSA_ECDSA: + { + data2, ok := other.Get_().(ECDSA_ECDSA) + return ok && data1.Curve.Equals(data2.Curve) + } + default: + { + return false // unexpected + } + } +} + +func (_this ECDSA) EqualsGeneric(other interface{}) bool { + typed, ok := other.(ECDSA) + return ok && _this.Equals(typed) +} + +func Type_ECDSA_() _dafny.TypeDescriptor { + return type_ECDSA_{} +} + +type type_ECDSA_ struct { +} + +func (_this type_ECDSA_) Default() interface{} { + return Companion_ECDSA_.Default() +} + +func (_this type_ECDSA_) String() string { + return "AwsCryptographyMaterialProvidersTypes.ECDSA" +} +func (_this ECDSA) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = ECDSA{} + +// End of datatype ECDSA + +// Definition of datatype EdkWrappingAlgorithm +type EdkWrappingAlgorithm struct { + Data_EdkWrappingAlgorithm_ +} + +func (_this EdkWrappingAlgorithm) Get_() Data_EdkWrappingAlgorithm_ { + return _this.Data_EdkWrappingAlgorithm_ +} + +type Data_EdkWrappingAlgorithm_ interface { + isEdkWrappingAlgorithm() +} + +type CompanionStruct_EdkWrappingAlgorithm_ struct { +} + +var Companion_EdkWrappingAlgorithm_ = CompanionStruct_EdkWrappingAlgorithm_{} + +type EdkWrappingAlgorithm_DIRECT__KEY__WRAPPING struct { + DIRECT__KEY__WRAPPING DIRECT__KEY__WRAPPING +} + +func (EdkWrappingAlgorithm_DIRECT__KEY__WRAPPING) isEdkWrappingAlgorithm() {} + +func (CompanionStruct_EdkWrappingAlgorithm_) Create_DIRECT__KEY__WRAPPING_(DIRECT__KEY__WRAPPING DIRECT__KEY__WRAPPING) EdkWrappingAlgorithm { + return EdkWrappingAlgorithm{EdkWrappingAlgorithm_DIRECT__KEY__WRAPPING{DIRECT__KEY__WRAPPING}} +} + +func (_this EdkWrappingAlgorithm) Is_DIRECT__KEY__WRAPPING() bool { + _, ok := _this.Get_().(EdkWrappingAlgorithm_DIRECT__KEY__WRAPPING) + return ok +} + +type EdkWrappingAlgorithm_IntermediateKeyWrapping struct { + IntermediateKeyWrapping IntermediateKeyWrapping +} + +func (EdkWrappingAlgorithm_IntermediateKeyWrapping) isEdkWrappingAlgorithm() {} + +func (CompanionStruct_EdkWrappingAlgorithm_) Create_IntermediateKeyWrapping_(IntermediateKeyWrapping IntermediateKeyWrapping) EdkWrappingAlgorithm { + return EdkWrappingAlgorithm{EdkWrappingAlgorithm_IntermediateKeyWrapping{IntermediateKeyWrapping}} +} + +func (_this EdkWrappingAlgorithm) Is_IntermediateKeyWrapping() bool { + _, ok := _this.Get_().(EdkWrappingAlgorithm_IntermediateKeyWrapping) + return ok +} + +func (CompanionStruct_EdkWrappingAlgorithm_) Default() EdkWrappingAlgorithm { + return Companion_EdkWrappingAlgorithm_.Create_DIRECT__KEY__WRAPPING_(Companion_DIRECT__KEY__WRAPPING_.Default()) +} + +func (_this EdkWrappingAlgorithm) Dtor_DIRECT__KEY__WRAPPING() DIRECT__KEY__WRAPPING { + return _this.Get_().(EdkWrappingAlgorithm_DIRECT__KEY__WRAPPING).DIRECT__KEY__WRAPPING +} + +func (_this EdkWrappingAlgorithm) Dtor_IntermediateKeyWrapping() IntermediateKeyWrapping { + return _this.Get_().(EdkWrappingAlgorithm_IntermediateKeyWrapping).IntermediateKeyWrapping +} + +func (_this EdkWrappingAlgorithm) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case EdkWrappingAlgorithm_DIRECT__KEY__WRAPPING: + { + return "AwsCryptographyMaterialProvidersTypes.EdkWrappingAlgorithm.DIRECT_KEY_WRAPPING" + "(" + _dafny.String(data.DIRECT__KEY__WRAPPING) + ")" + } + case EdkWrappingAlgorithm_IntermediateKeyWrapping: + { + return "AwsCryptographyMaterialProvidersTypes.EdkWrappingAlgorithm.IntermediateKeyWrapping" + "(" + _dafny.String(data.IntermediateKeyWrapping) + ")" + } + default: + { + return "" + } + } +} + +func (_this EdkWrappingAlgorithm) Equals(other EdkWrappingAlgorithm) bool { + switch data1 := _this.Get_().(type) { + case EdkWrappingAlgorithm_DIRECT__KEY__WRAPPING: + { + data2, ok := other.Get_().(EdkWrappingAlgorithm_DIRECT__KEY__WRAPPING) + return ok && data1.DIRECT__KEY__WRAPPING.Equals(data2.DIRECT__KEY__WRAPPING) + } + case EdkWrappingAlgorithm_IntermediateKeyWrapping: + { + data2, ok := other.Get_().(EdkWrappingAlgorithm_IntermediateKeyWrapping) + return ok && data1.IntermediateKeyWrapping.Equals(data2.IntermediateKeyWrapping) + } + default: + { + return false // unexpected + } + } +} + +func (_this EdkWrappingAlgorithm) EqualsGeneric(other interface{}) bool { + typed, ok := other.(EdkWrappingAlgorithm) + return ok && _this.Equals(typed) +} + +func Type_EdkWrappingAlgorithm_() _dafny.TypeDescriptor { + return type_EdkWrappingAlgorithm_{} +} + +type type_EdkWrappingAlgorithm_ struct { +} + +func (_this type_EdkWrappingAlgorithm_) Default() interface{} { + return Companion_EdkWrappingAlgorithm_.Default() +} + +func (_this type_EdkWrappingAlgorithm_) String() string { + return "AwsCryptographyMaterialProvidersTypes.EdkWrappingAlgorithm" +} +func (_this EdkWrappingAlgorithm) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = EdkWrappingAlgorithm{} + +// End of datatype EdkWrappingAlgorithm + +// Definition of datatype Encrypt +type Encrypt struct { + Data_Encrypt_ +} + +func (_this Encrypt) Get_() Data_Encrypt_ { + return _this.Data_Encrypt_ +} + +type Data_Encrypt_ interface { + isEncrypt() +} + +type CompanionStruct_Encrypt_ struct { +} + +var Companion_Encrypt_ = CompanionStruct_Encrypt_{} + +type Encrypt_AES__GCM struct { + AES__GCM m_AwsCryptographyPrimitivesTypes.AES__GCM +} + +func (Encrypt_AES__GCM) isEncrypt() {} + +func (CompanionStruct_Encrypt_) Create_AES__GCM_(AES__GCM m_AwsCryptographyPrimitivesTypes.AES__GCM) Encrypt { + return Encrypt{Encrypt_AES__GCM{AES__GCM}} +} + +func (_this Encrypt) Is_AES__GCM() bool { + _, ok := _this.Get_().(Encrypt_AES__GCM) + return ok +} + +func (CompanionStruct_Encrypt_) Default() Encrypt { + return Companion_Encrypt_.Create_AES__GCM_(m_AwsCryptographyPrimitivesTypes.Companion_AES__GCM_.Default()) +} + +func (_this Encrypt) Dtor_AES__GCM() m_AwsCryptographyPrimitivesTypes.AES__GCM { + return _this.Get_().(Encrypt_AES__GCM).AES__GCM +} + +func (_this Encrypt) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case Encrypt_AES__GCM: + { + return "AwsCryptographyMaterialProvidersTypes.Encrypt.AES_GCM" + "(" + _dafny.String(data.AES__GCM) + ")" + } + default: + { + return "" + } + } +} + +func (_this Encrypt) Equals(other Encrypt) bool { + switch data1 := _this.Get_().(type) { + case Encrypt_AES__GCM: + { + data2, ok := other.Get_().(Encrypt_AES__GCM) + return ok && data1.AES__GCM.Equals(data2.AES__GCM) + } + default: + { + return false // unexpected + } + } +} + +func (_this Encrypt) EqualsGeneric(other interface{}) bool { + typed, ok := other.(Encrypt) + return ok && _this.Equals(typed) +} + +func Type_Encrypt_() _dafny.TypeDescriptor { + return type_Encrypt_{} +} + +type type_Encrypt_ struct { +} + +func (_this type_Encrypt_) Default() interface{} { + return Companion_Encrypt_.Default() +} + +func (_this type_Encrypt_) String() string { + return "AwsCryptographyMaterialProvidersTypes.Encrypt" +} +func (_this Encrypt) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = Encrypt{} + +// End of datatype Encrypt + +// Definition of datatype EncryptedDataKey +type EncryptedDataKey struct { + Data_EncryptedDataKey_ +} + +func (_this EncryptedDataKey) Get_() Data_EncryptedDataKey_ { + return _this.Data_EncryptedDataKey_ +} + +type Data_EncryptedDataKey_ interface { + isEncryptedDataKey() +} + +type CompanionStruct_EncryptedDataKey_ struct { +} + +var Companion_EncryptedDataKey_ = CompanionStruct_EncryptedDataKey_{} + +type EncryptedDataKey_EncryptedDataKey struct { + KeyProviderId _dafny.Sequence + KeyProviderInfo _dafny.Sequence + Ciphertext _dafny.Sequence +} + +func (EncryptedDataKey_EncryptedDataKey) isEncryptedDataKey() {} + +func (CompanionStruct_EncryptedDataKey_) Create_EncryptedDataKey_(KeyProviderId _dafny.Sequence, KeyProviderInfo _dafny.Sequence, Ciphertext _dafny.Sequence) EncryptedDataKey { + return EncryptedDataKey{EncryptedDataKey_EncryptedDataKey{KeyProviderId, KeyProviderInfo, Ciphertext}} +} + +func (_this EncryptedDataKey) Is_EncryptedDataKey() bool { + _, ok := _this.Get_().(EncryptedDataKey_EncryptedDataKey) + return ok +} + +func (CompanionStruct_EncryptedDataKey_) Default() EncryptedDataKey { + return Companion_EncryptedDataKey_.Create_EncryptedDataKey_(m_UTF8.Companion_ValidUTF8Bytes_.Witness(), _dafny.EmptySeq, _dafny.EmptySeq) +} + +func (_this EncryptedDataKey) Dtor_keyProviderId() _dafny.Sequence { + return _this.Get_().(EncryptedDataKey_EncryptedDataKey).KeyProviderId +} + +func (_this EncryptedDataKey) Dtor_keyProviderInfo() _dafny.Sequence { + return _this.Get_().(EncryptedDataKey_EncryptedDataKey).KeyProviderInfo +} + +func (_this EncryptedDataKey) Dtor_ciphertext() _dafny.Sequence { + return _this.Get_().(EncryptedDataKey_EncryptedDataKey).Ciphertext +} + +func (_this EncryptedDataKey) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case EncryptedDataKey_EncryptedDataKey: + { + return "AwsCryptographyMaterialProvidersTypes.EncryptedDataKey.EncryptedDataKey" + "(" + _dafny.String(data.KeyProviderId) + ", " + _dafny.String(data.KeyProviderInfo) + ", " + _dafny.String(data.Ciphertext) + ")" + } + default: + { + return "" + } + } +} + +func (_this EncryptedDataKey) Equals(other EncryptedDataKey) bool { + switch data1 := _this.Get_().(type) { + case EncryptedDataKey_EncryptedDataKey: + { + data2, ok := other.Get_().(EncryptedDataKey_EncryptedDataKey) + return ok && data1.KeyProviderId.Equals(data2.KeyProviderId) && data1.KeyProviderInfo.Equals(data2.KeyProviderInfo) && data1.Ciphertext.Equals(data2.Ciphertext) + } + default: + { + return false // unexpected + } + } +} + +func (_this EncryptedDataKey) EqualsGeneric(other interface{}) bool { + typed, ok := other.(EncryptedDataKey) + return ok && _this.Equals(typed) +} + +func Type_EncryptedDataKey_() _dafny.TypeDescriptor { + return type_EncryptedDataKey_{} +} + +type type_EncryptedDataKey_ struct { +} + +func (_this type_EncryptedDataKey_) Default() interface{} { + return Companion_EncryptedDataKey_.Default() +} + +func (_this type_EncryptedDataKey_) String() string { + return "AwsCryptographyMaterialProvidersTypes.EncryptedDataKey" +} +func (_this EncryptedDataKey) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = EncryptedDataKey{} + +// End of datatype EncryptedDataKey + +// Definition of datatype EncryptionMaterials +type EncryptionMaterials struct { + Data_EncryptionMaterials_ +} + +func (_this EncryptionMaterials) Get_() Data_EncryptionMaterials_ { + return _this.Data_EncryptionMaterials_ +} + +type Data_EncryptionMaterials_ interface { + isEncryptionMaterials() +} + +type CompanionStruct_EncryptionMaterials_ struct { +} + +var Companion_EncryptionMaterials_ = CompanionStruct_EncryptionMaterials_{} + +type EncryptionMaterials_EncryptionMaterials struct { + AlgorithmSuite AlgorithmSuiteInfo + EncryptionContext _dafny.Map + EncryptedDataKeys _dafny.Sequence + RequiredEncryptionContextKeys _dafny.Sequence + PlaintextDataKey m_Wrappers.Option + SigningKey m_Wrappers.Option + SymmetricSigningKeys m_Wrappers.Option +} + +func (EncryptionMaterials_EncryptionMaterials) isEncryptionMaterials() {} + +func (CompanionStruct_EncryptionMaterials_) Create_EncryptionMaterials_(AlgorithmSuite AlgorithmSuiteInfo, EncryptionContext _dafny.Map, EncryptedDataKeys _dafny.Sequence, RequiredEncryptionContextKeys _dafny.Sequence, PlaintextDataKey m_Wrappers.Option, SigningKey m_Wrappers.Option, SymmetricSigningKeys m_Wrappers.Option) EncryptionMaterials { + return EncryptionMaterials{EncryptionMaterials_EncryptionMaterials{AlgorithmSuite, EncryptionContext, EncryptedDataKeys, RequiredEncryptionContextKeys, PlaintextDataKey, SigningKey, SymmetricSigningKeys}} +} + +func (_this EncryptionMaterials) Is_EncryptionMaterials() bool { + _, ok := _this.Get_().(EncryptionMaterials_EncryptionMaterials) + return ok +} + +func (CompanionStruct_EncryptionMaterials_) Default() EncryptionMaterials { + return Companion_EncryptionMaterials_.Create_EncryptionMaterials_(Companion_AlgorithmSuiteInfo_.Default(), _dafny.EmptyMap, _dafny.EmptySeq, _dafny.EmptySeq, m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this EncryptionMaterials) Dtor_algorithmSuite() AlgorithmSuiteInfo { + return _this.Get_().(EncryptionMaterials_EncryptionMaterials).AlgorithmSuite +} + +func (_this EncryptionMaterials) Dtor_encryptionContext() _dafny.Map { + return _this.Get_().(EncryptionMaterials_EncryptionMaterials).EncryptionContext +} + +func (_this EncryptionMaterials) Dtor_encryptedDataKeys() _dafny.Sequence { + return _this.Get_().(EncryptionMaterials_EncryptionMaterials).EncryptedDataKeys +} + +func (_this EncryptionMaterials) Dtor_requiredEncryptionContextKeys() _dafny.Sequence { + return _this.Get_().(EncryptionMaterials_EncryptionMaterials).RequiredEncryptionContextKeys +} + +func (_this EncryptionMaterials) Dtor_plaintextDataKey() m_Wrappers.Option { + return _this.Get_().(EncryptionMaterials_EncryptionMaterials).PlaintextDataKey +} + +func (_this EncryptionMaterials) Dtor_signingKey() m_Wrappers.Option { + return _this.Get_().(EncryptionMaterials_EncryptionMaterials).SigningKey +} + +func (_this EncryptionMaterials) Dtor_symmetricSigningKeys() m_Wrappers.Option { + return _this.Get_().(EncryptionMaterials_EncryptionMaterials).SymmetricSigningKeys +} + +func (_this EncryptionMaterials) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case EncryptionMaterials_EncryptionMaterials: + { + return "AwsCryptographyMaterialProvidersTypes.EncryptionMaterials.EncryptionMaterials" + "(" + _dafny.String(data.AlgorithmSuite) + ", " + _dafny.String(data.EncryptionContext) + ", " + _dafny.String(data.EncryptedDataKeys) + ", " + _dafny.String(data.RequiredEncryptionContextKeys) + ", " + _dafny.String(data.PlaintextDataKey) + ", " + _dafny.String(data.SigningKey) + ", " + _dafny.String(data.SymmetricSigningKeys) + ")" + } + default: + { + return "" + } + } +} + +func (_this EncryptionMaterials) Equals(other EncryptionMaterials) bool { + switch data1 := _this.Get_().(type) { + case EncryptionMaterials_EncryptionMaterials: + { + data2, ok := other.Get_().(EncryptionMaterials_EncryptionMaterials) + return ok && data1.AlgorithmSuite.Equals(data2.AlgorithmSuite) && data1.EncryptionContext.Equals(data2.EncryptionContext) && data1.EncryptedDataKeys.Equals(data2.EncryptedDataKeys) && data1.RequiredEncryptionContextKeys.Equals(data2.RequiredEncryptionContextKeys) && data1.PlaintextDataKey.Equals(data2.PlaintextDataKey) && data1.SigningKey.Equals(data2.SigningKey) && data1.SymmetricSigningKeys.Equals(data2.SymmetricSigningKeys) + } + default: + { + return false // unexpected + } + } +} + +func (_this EncryptionMaterials) EqualsGeneric(other interface{}) bool { + typed, ok := other.(EncryptionMaterials) + return ok && _this.Equals(typed) +} + +func Type_EncryptionMaterials_() _dafny.TypeDescriptor { + return type_EncryptionMaterials_{} +} + +type type_EncryptionMaterials_ struct { +} + +func (_this type_EncryptionMaterials_) Default() interface{} { + return Companion_EncryptionMaterials_.Default() +} + +func (_this type_EncryptionMaterials_) String() string { + return "AwsCryptographyMaterialProvidersTypes.EncryptionMaterials" +} +func (_this EncryptionMaterials) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = EncryptionMaterials{} + +// End of datatype EncryptionMaterials + +// Definition of datatype EphemeralPrivateKeyToStaticPublicKeyInput +type EphemeralPrivateKeyToStaticPublicKeyInput struct { + Data_EphemeralPrivateKeyToStaticPublicKeyInput_ +} + +func (_this EphemeralPrivateKeyToStaticPublicKeyInput) Get_() Data_EphemeralPrivateKeyToStaticPublicKeyInput_ { + return _this.Data_EphemeralPrivateKeyToStaticPublicKeyInput_ +} + +type Data_EphemeralPrivateKeyToStaticPublicKeyInput_ interface { + isEphemeralPrivateKeyToStaticPublicKeyInput() +} + +type CompanionStruct_EphemeralPrivateKeyToStaticPublicKeyInput_ struct { +} + +var Companion_EphemeralPrivateKeyToStaticPublicKeyInput_ = CompanionStruct_EphemeralPrivateKeyToStaticPublicKeyInput_{} + +type EphemeralPrivateKeyToStaticPublicKeyInput_EphemeralPrivateKeyToStaticPublicKeyInput struct { + RecipientPublicKey _dafny.Sequence +} + +func (EphemeralPrivateKeyToStaticPublicKeyInput_EphemeralPrivateKeyToStaticPublicKeyInput) isEphemeralPrivateKeyToStaticPublicKeyInput() { +} + +func (CompanionStruct_EphemeralPrivateKeyToStaticPublicKeyInput_) Create_EphemeralPrivateKeyToStaticPublicKeyInput_(RecipientPublicKey _dafny.Sequence) EphemeralPrivateKeyToStaticPublicKeyInput { + return EphemeralPrivateKeyToStaticPublicKeyInput{EphemeralPrivateKeyToStaticPublicKeyInput_EphemeralPrivateKeyToStaticPublicKeyInput{RecipientPublicKey}} +} + +func (_this EphemeralPrivateKeyToStaticPublicKeyInput) Is_EphemeralPrivateKeyToStaticPublicKeyInput() bool { + _, ok := _this.Get_().(EphemeralPrivateKeyToStaticPublicKeyInput_EphemeralPrivateKeyToStaticPublicKeyInput) + return ok +} + +func (CompanionStruct_EphemeralPrivateKeyToStaticPublicKeyInput_) Default() EphemeralPrivateKeyToStaticPublicKeyInput { + return Companion_EphemeralPrivateKeyToStaticPublicKeyInput_.Create_EphemeralPrivateKeyToStaticPublicKeyInput_(_dafny.EmptySeq) +} + +func (_this EphemeralPrivateKeyToStaticPublicKeyInput) Dtor_recipientPublicKey() _dafny.Sequence { + return _this.Get_().(EphemeralPrivateKeyToStaticPublicKeyInput_EphemeralPrivateKeyToStaticPublicKeyInput).RecipientPublicKey +} + +func (_this EphemeralPrivateKeyToStaticPublicKeyInput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case EphemeralPrivateKeyToStaticPublicKeyInput_EphemeralPrivateKeyToStaticPublicKeyInput: + { + return "AwsCryptographyMaterialProvidersTypes.EphemeralPrivateKeyToStaticPublicKeyInput.EphemeralPrivateKeyToStaticPublicKeyInput" + "(" + _dafny.String(data.RecipientPublicKey) + ")" + } + default: + { + return "" + } + } +} + +func (_this EphemeralPrivateKeyToStaticPublicKeyInput) Equals(other EphemeralPrivateKeyToStaticPublicKeyInput) bool { + switch data1 := _this.Get_().(type) { + case EphemeralPrivateKeyToStaticPublicKeyInput_EphemeralPrivateKeyToStaticPublicKeyInput: + { + data2, ok := other.Get_().(EphemeralPrivateKeyToStaticPublicKeyInput_EphemeralPrivateKeyToStaticPublicKeyInput) + return ok && data1.RecipientPublicKey.Equals(data2.RecipientPublicKey) + } + default: + { + return false // unexpected + } + } +} + +func (_this EphemeralPrivateKeyToStaticPublicKeyInput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(EphemeralPrivateKeyToStaticPublicKeyInput) + return ok && _this.Equals(typed) +} + +func Type_EphemeralPrivateKeyToStaticPublicKeyInput_() _dafny.TypeDescriptor { + return type_EphemeralPrivateKeyToStaticPublicKeyInput_{} +} + +type type_EphemeralPrivateKeyToStaticPublicKeyInput_ struct { +} + +func (_this type_EphemeralPrivateKeyToStaticPublicKeyInput_) Default() interface{} { + return Companion_EphemeralPrivateKeyToStaticPublicKeyInput_.Default() +} + +func (_this type_EphemeralPrivateKeyToStaticPublicKeyInput_) String() string { + return "AwsCryptographyMaterialProvidersTypes.EphemeralPrivateKeyToStaticPublicKeyInput" +} +func (_this EphemeralPrivateKeyToStaticPublicKeyInput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = EphemeralPrivateKeyToStaticPublicKeyInput{} + +// End of datatype EphemeralPrivateKeyToStaticPublicKeyInput + +// Definition of datatype ESDKAlgorithmSuiteId +type ESDKAlgorithmSuiteId struct { + Data_ESDKAlgorithmSuiteId_ +} + +func (_this ESDKAlgorithmSuiteId) Get_() Data_ESDKAlgorithmSuiteId_ { + return _this.Data_ESDKAlgorithmSuiteId_ +} + +type Data_ESDKAlgorithmSuiteId_ interface { + isESDKAlgorithmSuiteId() +} + +type CompanionStruct_ESDKAlgorithmSuiteId_ struct { +} + +var Companion_ESDKAlgorithmSuiteId_ = CompanionStruct_ESDKAlgorithmSuiteId_{} + +type ESDKAlgorithmSuiteId_ALG__AES__128__GCM__IV12__TAG16__NO__KDF struct { +} + +func (ESDKAlgorithmSuiteId_ALG__AES__128__GCM__IV12__TAG16__NO__KDF) isESDKAlgorithmSuiteId() {} + +func (CompanionStruct_ESDKAlgorithmSuiteId_) Create_ALG__AES__128__GCM__IV12__TAG16__NO__KDF_() ESDKAlgorithmSuiteId { + return ESDKAlgorithmSuiteId{ESDKAlgorithmSuiteId_ALG__AES__128__GCM__IV12__TAG16__NO__KDF{}} +} + +func (_this ESDKAlgorithmSuiteId) Is_ALG__AES__128__GCM__IV12__TAG16__NO__KDF() bool { + _, ok := _this.Get_().(ESDKAlgorithmSuiteId_ALG__AES__128__GCM__IV12__TAG16__NO__KDF) + return ok +} + +type ESDKAlgorithmSuiteId_ALG__AES__192__GCM__IV12__TAG16__NO__KDF struct { +} + +func (ESDKAlgorithmSuiteId_ALG__AES__192__GCM__IV12__TAG16__NO__KDF) isESDKAlgorithmSuiteId() {} + +func (CompanionStruct_ESDKAlgorithmSuiteId_) Create_ALG__AES__192__GCM__IV12__TAG16__NO__KDF_() ESDKAlgorithmSuiteId { + return ESDKAlgorithmSuiteId{ESDKAlgorithmSuiteId_ALG__AES__192__GCM__IV12__TAG16__NO__KDF{}} +} + +func (_this ESDKAlgorithmSuiteId) Is_ALG__AES__192__GCM__IV12__TAG16__NO__KDF() bool { + _, ok := _this.Get_().(ESDKAlgorithmSuiteId_ALG__AES__192__GCM__IV12__TAG16__NO__KDF) + return ok +} + +type ESDKAlgorithmSuiteId_ALG__AES__256__GCM__IV12__TAG16__NO__KDF struct { +} + +func (ESDKAlgorithmSuiteId_ALG__AES__256__GCM__IV12__TAG16__NO__KDF) isESDKAlgorithmSuiteId() {} + +func (CompanionStruct_ESDKAlgorithmSuiteId_) Create_ALG__AES__256__GCM__IV12__TAG16__NO__KDF_() ESDKAlgorithmSuiteId { + return ESDKAlgorithmSuiteId{ESDKAlgorithmSuiteId_ALG__AES__256__GCM__IV12__TAG16__NO__KDF{}} +} + +func (_this ESDKAlgorithmSuiteId) Is_ALG__AES__256__GCM__IV12__TAG16__NO__KDF() bool { + _, ok := _this.Get_().(ESDKAlgorithmSuiteId_ALG__AES__256__GCM__IV12__TAG16__NO__KDF) + return ok +} + +type ESDKAlgorithmSuiteId_ALG__AES__128__GCM__IV12__TAG16__HKDF__SHA256 struct { +} + +func (ESDKAlgorithmSuiteId_ALG__AES__128__GCM__IV12__TAG16__HKDF__SHA256) isESDKAlgorithmSuiteId() {} + +func (CompanionStruct_ESDKAlgorithmSuiteId_) Create_ALG__AES__128__GCM__IV12__TAG16__HKDF__SHA256_() ESDKAlgorithmSuiteId { + return ESDKAlgorithmSuiteId{ESDKAlgorithmSuiteId_ALG__AES__128__GCM__IV12__TAG16__HKDF__SHA256{}} +} + +func (_this ESDKAlgorithmSuiteId) Is_ALG__AES__128__GCM__IV12__TAG16__HKDF__SHA256() bool { + _, ok := _this.Get_().(ESDKAlgorithmSuiteId_ALG__AES__128__GCM__IV12__TAG16__HKDF__SHA256) + return ok +} + +type ESDKAlgorithmSuiteId_ALG__AES__192__GCM__IV12__TAG16__HKDF__SHA256 struct { +} + +func (ESDKAlgorithmSuiteId_ALG__AES__192__GCM__IV12__TAG16__HKDF__SHA256) isESDKAlgorithmSuiteId() {} + +func (CompanionStruct_ESDKAlgorithmSuiteId_) Create_ALG__AES__192__GCM__IV12__TAG16__HKDF__SHA256_() ESDKAlgorithmSuiteId { + return ESDKAlgorithmSuiteId{ESDKAlgorithmSuiteId_ALG__AES__192__GCM__IV12__TAG16__HKDF__SHA256{}} +} + +func (_this ESDKAlgorithmSuiteId) Is_ALG__AES__192__GCM__IV12__TAG16__HKDF__SHA256() bool { + _, ok := _this.Get_().(ESDKAlgorithmSuiteId_ALG__AES__192__GCM__IV12__TAG16__HKDF__SHA256) + return ok +} + +type ESDKAlgorithmSuiteId_ALG__AES__256__GCM__IV12__TAG16__HKDF__SHA256 struct { +} + +func (ESDKAlgorithmSuiteId_ALG__AES__256__GCM__IV12__TAG16__HKDF__SHA256) isESDKAlgorithmSuiteId() {} + +func (CompanionStruct_ESDKAlgorithmSuiteId_) Create_ALG__AES__256__GCM__IV12__TAG16__HKDF__SHA256_() ESDKAlgorithmSuiteId { + return ESDKAlgorithmSuiteId{ESDKAlgorithmSuiteId_ALG__AES__256__GCM__IV12__TAG16__HKDF__SHA256{}} +} + +func (_this ESDKAlgorithmSuiteId) Is_ALG__AES__256__GCM__IV12__TAG16__HKDF__SHA256() bool { + _, ok := _this.Get_().(ESDKAlgorithmSuiteId_ALG__AES__256__GCM__IV12__TAG16__HKDF__SHA256) + return ok +} + +type ESDKAlgorithmSuiteId_ALG__AES__128__GCM__IV12__TAG16__HKDF__SHA256__ECDSA__P256 struct { +} + +func (ESDKAlgorithmSuiteId_ALG__AES__128__GCM__IV12__TAG16__HKDF__SHA256__ECDSA__P256) isESDKAlgorithmSuiteId() { +} + +func (CompanionStruct_ESDKAlgorithmSuiteId_) Create_ALG__AES__128__GCM__IV12__TAG16__HKDF__SHA256__ECDSA__P256_() ESDKAlgorithmSuiteId { + return ESDKAlgorithmSuiteId{ESDKAlgorithmSuiteId_ALG__AES__128__GCM__IV12__TAG16__HKDF__SHA256__ECDSA__P256{}} +} + +func (_this ESDKAlgorithmSuiteId) Is_ALG__AES__128__GCM__IV12__TAG16__HKDF__SHA256__ECDSA__P256() bool { + _, ok := _this.Get_().(ESDKAlgorithmSuiteId_ALG__AES__128__GCM__IV12__TAG16__HKDF__SHA256__ECDSA__P256) + return ok +} + +type ESDKAlgorithmSuiteId_ALG__AES__192__GCM__IV12__TAG16__HKDF__SHA384__ECDSA__P384 struct { +} + +func (ESDKAlgorithmSuiteId_ALG__AES__192__GCM__IV12__TAG16__HKDF__SHA384__ECDSA__P384) isESDKAlgorithmSuiteId() { +} + +func (CompanionStruct_ESDKAlgorithmSuiteId_) Create_ALG__AES__192__GCM__IV12__TAG16__HKDF__SHA384__ECDSA__P384_() ESDKAlgorithmSuiteId { + return ESDKAlgorithmSuiteId{ESDKAlgorithmSuiteId_ALG__AES__192__GCM__IV12__TAG16__HKDF__SHA384__ECDSA__P384{}} +} + +func (_this ESDKAlgorithmSuiteId) Is_ALG__AES__192__GCM__IV12__TAG16__HKDF__SHA384__ECDSA__P384() bool { + _, ok := _this.Get_().(ESDKAlgorithmSuiteId_ALG__AES__192__GCM__IV12__TAG16__HKDF__SHA384__ECDSA__P384) + return ok +} + +type ESDKAlgorithmSuiteId_ALG__AES__256__GCM__IV12__TAG16__HKDF__SHA384__ECDSA__P384 struct { +} + +func (ESDKAlgorithmSuiteId_ALG__AES__256__GCM__IV12__TAG16__HKDF__SHA384__ECDSA__P384) isESDKAlgorithmSuiteId() { +} + +func (CompanionStruct_ESDKAlgorithmSuiteId_) Create_ALG__AES__256__GCM__IV12__TAG16__HKDF__SHA384__ECDSA__P384_() ESDKAlgorithmSuiteId { + return ESDKAlgorithmSuiteId{ESDKAlgorithmSuiteId_ALG__AES__256__GCM__IV12__TAG16__HKDF__SHA384__ECDSA__P384{}} +} + +func (_this ESDKAlgorithmSuiteId) Is_ALG__AES__256__GCM__IV12__TAG16__HKDF__SHA384__ECDSA__P384() bool { + _, ok := _this.Get_().(ESDKAlgorithmSuiteId_ALG__AES__256__GCM__IV12__TAG16__HKDF__SHA384__ECDSA__P384) + return ok +} + +type ESDKAlgorithmSuiteId_ALG__AES__256__GCM__HKDF__SHA512__COMMIT__KEY struct { +} + +func (ESDKAlgorithmSuiteId_ALG__AES__256__GCM__HKDF__SHA512__COMMIT__KEY) isESDKAlgorithmSuiteId() {} + +func (CompanionStruct_ESDKAlgorithmSuiteId_) Create_ALG__AES__256__GCM__HKDF__SHA512__COMMIT__KEY_() ESDKAlgorithmSuiteId { + return ESDKAlgorithmSuiteId{ESDKAlgorithmSuiteId_ALG__AES__256__GCM__HKDF__SHA512__COMMIT__KEY{}} +} + +func (_this ESDKAlgorithmSuiteId) Is_ALG__AES__256__GCM__HKDF__SHA512__COMMIT__KEY() bool { + _, ok := _this.Get_().(ESDKAlgorithmSuiteId_ALG__AES__256__GCM__HKDF__SHA512__COMMIT__KEY) + return ok +} + +type ESDKAlgorithmSuiteId_ALG__AES__256__GCM__HKDF__SHA512__COMMIT__KEY__ECDSA__P384 struct { +} + +func (ESDKAlgorithmSuiteId_ALG__AES__256__GCM__HKDF__SHA512__COMMIT__KEY__ECDSA__P384) isESDKAlgorithmSuiteId() { +} + +func (CompanionStruct_ESDKAlgorithmSuiteId_) Create_ALG__AES__256__GCM__HKDF__SHA512__COMMIT__KEY__ECDSA__P384_() ESDKAlgorithmSuiteId { + return ESDKAlgorithmSuiteId{ESDKAlgorithmSuiteId_ALG__AES__256__GCM__HKDF__SHA512__COMMIT__KEY__ECDSA__P384{}} +} + +func (_this ESDKAlgorithmSuiteId) Is_ALG__AES__256__GCM__HKDF__SHA512__COMMIT__KEY__ECDSA__P384() bool { + _, ok := _this.Get_().(ESDKAlgorithmSuiteId_ALG__AES__256__GCM__HKDF__SHA512__COMMIT__KEY__ECDSA__P384) + return ok +} + +func (CompanionStruct_ESDKAlgorithmSuiteId_) Default() ESDKAlgorithmSuiteId { + return Companion_ESDKAlgorithmSuiteId_.Create_ALG__AES__128__GCM__IV12__TAG16__NO__KDF_() +} + +func (_ CompanionStruct_ESDKAlgorithmSuiteId_) AllSingletonConstructors() _dafny.Iterator { + i := -1 + return func() (interface{}, bool) { + i++ + switch i { + case 0: + return Companion_ESDKAlgorithmSuiteId_.Create_ALG__AES__128__GCM__IV12__TAG16__NO__KDF_(), true + case 1: + return Companion_ESDKAlgorithmSuiteId_.Create_ALG__AES__192__GCM__IV12__TAG16__NO__KDF_(), true + case 2: + return Companion_ESDKAlgorithmSuiteId_.Create_ALG__AES__256__GCM__IV12__TAG16__NO__KDF_(), true + case 3: + return Companion_ESDKAlgorithmSuiteId_.Create_ALG__AES__128__GCM__IV12__TAG16__HKDF__SHA256_(), true + case 4: + return Companion_ESDKAlgorithmSuiteId_.Create_ALG__AES__192__GCM__IV12__TAG16__HKDF__SHA256_(), true + case 5: + return Companion_ESDKAlgorithmSuiteId_.Create_ALG__AES__256__GCM__IV12__TAG16__HKDF__SHA256_(), true + case 6: + return Companion_ESDKAlgorithmSuiteId_.Create_ALG__AES__128__GCM__IV12__TAG16__HKDF__SHA256__ECDSA__P256_(), true + case 7: + return Companion_ESDKAlgorithmSuiteId_.Create_ALG__AES__192__GCM__IV12__TAG16__HKDF__SHA384__ECDSA__P384_(), true + case 8: + return Companion_ESDKAlgorithmSuiteId_.Create_ALG__AES__256__GCM__IV12__TAG16__HKDF__SHA384__ECDSA__P384_(), true + case 9: + return Companion_ESDKAlgorithmSuiteId_.Create_ALG__AES__256__GCM__HKDF__SHA512__COMMIT__KEY_(), true + case 10: + return Companion_ESDKAlgorithmSuiteId_.Create_ALG__AES__256__GCM__HKDF__SHA512__COMMIT__KEY__ECDSA__P384_(), true + default: + return ESDKAlgorithmSuiteId{}, false + } + } +} + +func (_this ESDKAlgorithmSuiteId) String() string { + switch _this.Get_().(type) { + case nil: + return "null" + case ESDKAlgorithmSuiteId_ALG__AES__128__GCM__IV12__TAG16__NO__KDF: + { + return "AwsCryptographyMaterialProvidersTypes.ESDKAlgorithmSuiteId.ALG_AES_128_GCM_IV12_TAG16_NO_KDF" + } + case ESDKAlgorithmSuiteId_ALG__AES__192__GCM__IV12__TAG16__NO__KDF: + { + return "AwsCryptographyMaterialProvidersTypes.ESDKAlgorithmSuiteId.ALG_AES_192_GCM_IV12_TAG16_NO_KDF" + } + case ESDKAlgorithmSuiteId_ALG__AES__256__GCM__IV12__TAG16__NO__KDF: + { + return "AwsCryptographyMaterialProvidersTypes.ESDKAlgorithmSuiteId.ALG_AES_256_GCM_IV12_TAG16_NO_KDF" + } + case ESDKAlgorithmSuiteId_ALG__AES__128__GCM__IV12__TAG16__HKDF__SHA256: + { + return "AwsCryptographyMaterialProvidersTypes.ESDKAlgorithmSuiteId.ALG_AES_128_GCM_IV12_TAG16_HKDF_SHA256" + } + case ESDKAlgorithmSuiteId_ALG__AES__192__GCM__IV12__TAG16__HKDF__SHA256: + { + return "AwsCryptographyMaterialProvidersTypes.ESDKAlgorithmSuiteId.ALG_AES_192_GCM_IV12_TAG16_HKDF_SHA256" + } + case ESDKAlgorithmSuiteId_ALG__AES__256__GCM__IV12__TAG16__HKDF__SHA256: + { + return "AwsCryptographyMaterialProvidersTypes.ESDKAlgorithmSuiteId.ALG_AES_256_GCM_IV12_TAG16_HKDF_SHA256" + } + case ESDKAlgorithmSuiteId_ALG__AES__128__GCM__IV12__TAG16__HKDF__SHA256__ECDSA__P256: + { + return "AwsCryptographyMaterialProvidersTypes.ESDKAlgorithmSuiteId.ALG_AES_128_GCM_IV12_TAG16_HKDF_SHA256_ECDSA_P256" + } + case ESDKAlgorithmSuiteId_ALG__AES__192__GCM__IV12__TAG16__HKDF__SHA384__ECDSA__P384: + { + return "AwsCryptographyMaterialProvidersTypes.ESDKAlgorithmSuiteId.ALG_AES_192_GCM_IV12_TAG16_HKDF_SHA384_ECDSA_P384" + } + case ESDKAlgorithmSuiteId_ALG__AES__256__GCM__IV12__TAG16__HKDF__SHA384__ECDSA__P384: + { + return "AwsCryptographyMaterialProvidersTypes.ESDKAlgorithmSuiteId.ALG_AES_256_GCM_IV12_TAG16_HKDF_SHA384_ECDSA_P384" + } + case ESDKAlgorithmSuiteId_ALG__AES__256__GCM__HKDF__SHA512__COMMIT__KEY: + { + return "AwsCryptographyMaterialProvidersTypes.ESDKAlgorithmSuiteId.ALG_AES_256_GCM_HKDF_SHA512_COMMIT_KEY" + } + case ESDKAlgorithmSuiteId_ALG__AES__256__GCM__HKDF__SHA512__COMMIT__KEY__ECDSA__P384: + { + return "AwsCryptographyMaterialProvidersTypes.ESDKAlgorithmSuiteId.ALG_AES_256_GCM_HKDF_SHA512_COMMIT_KEY_ECDSA_P384" + } + default: + { + return "" + } + } +} + +func (_this ESDKAlgorithmSuiteId) Equals(other ESDKAlgorithmSuiteId) bool { + switch _this.Get_().(type) { + case ESDKAlgorithmSuiteId_ALG__AES__128__GCM__IV12__TAG16__NO__KDF: + { + _, ok := other.Get_().(ESDKAlgorithmSuiteId_ALG__AES__128__GCM__IV12__TAG16__NO__KDF) + return ok + } + case ESDKAlgorithmSuiteId_ALG__AES__192__GCM__IV12__TAG16__NO__KDF: + { + _, ok := other.Get_().(ESDKAlgorithmSuiteId_ALG__AES__192__GCM__IV12__TAG16__NO__KDF) + return ok + } + case ESDKAlgorithmSuiteId_ALG__AES__256__GCM__IV12__TAG16__NO__KDF: + { + _, ok := other.Get_().(ESDKAlgorithmSuiteId_ALG__AES__256__GCM__IV12__TAG16__NO__KDF) + return ok + } + case ESDKAlgorithmSuiteId_ALG__AES__128__GCM__IV12__TAG16__HKDF__SHA256: + { + _, ok := other.Get_().(ESDKAlgorithmSuiteId_ALG__AES__128__GCM__IV12__TAG16__HKDF__SHA256) + return ok + } + case ESDKAlgorithmSuiteId_ALG__AES__192__GCM__IV12__TAG16__HKDF__SHA256: + { + _, ok := other.Get_().(ESDKAlgorithmSuiteId_ALG__AES__192__GCM__IV12__TAG16__HKDF__SHA256) + return ok + } + case ESDKAlgorithmSuiteId_ALG__AES__256__GCM__IV12__TAG16__HKDF__SHA256: + { + _, ok := other.Get_().(ESDKAlgorithmSuiteId_ALG__AES__256__GCM__IV12__TAG16__HKDF__SHA256) + return ok + } + case ESDKAlgorithmSuiteId_ALG__AES__128__GCM__IV12__TAG16__HKDF__SHA256__ECDSA__P256: + { + _, ok := other.Get_().(ESDKAlgorithmSuiteId_ALG__AES__128__GCM__IV12__TAG16__HKDF__SHA256__ECDSA__P256) + return ok + } + case ESDKAlgorithmSuiteId_ALG__AES__192__GCM__IV12__TAG16__HKDF__SHA384__ECDSA__P384: + { + _, ok := other.Get_().(ESDKAlgorithmSuiteId_ALG__AES__192__GCM__IV12__TAG16__HKDF__SHA384__ECDSA__P384) + return ok + } + case ESDKAlgorithmSuiteId_ALG__AES__256__GCM__IV12__TAG16__HKDF__SHA384__ECDSA__P384: + { + _, ok := other.Get_().(ESDKAlgorithmSuiteId_ALG__AES__256__GCM__IV12__TAG16__HKDF__SHA384__ECDSA__P384) + return ok + } + case ESDKAlgorithmSuiteId_ALG__AES__256__GCM__HKDF__SHA512__COMMIT__KEY: + { + _, ok := other.Get_().(ESDKAlgorithmSuiteId_ALG__AES__256__GCM__HKDF__SHA512__COMMIT__KEY) + return ok + } + case ESDKAlgorithmSuiteId_ALG__AES__256__GCM__HKDF__SHA512__COMMIT__KEY__ECDSA__P384: + { + _, ok := other.Get_().(ESDKAlgorithmSuiteId_ALG__AES__256__GCM__HKDF__SHA512__COMMIT__KEY__ECDSA__P384) + return ok + } + default: + { + return false // unexpected + } + } +} + +func (_this ESDKAlgorithmSuiteId) EqualsGeneric(other interface{}) bool { + typed, ok := other.(ESDKAlgorithmSuiteId) + return ok && _this.Equals(typed) +} + +func Type_ESDKAlgorithmSuiteId_() _dafny.TypeDescriptor { + return type_ESDKAlgorithmSuiteId_{} +} + +type type_ESDKAlgorithmSuiteId_ struct { +} + +func (_this type_ESDKAlgorithmSuiteId_) Default() interface{} { + return Companion_ESDKAlgorithmSuiteId_.Default() +} + +func (_this type_ESDKAlgorithmSuiteId_) String() string { + return "AwsCryptographyMaterialProvidersTypes.ESDKAlgorithmSuiteId" +} +func (_this ESDKAlgorithmSuiteId) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = ESDKAlgorithmSuiteId{} + +// End of datatype ESDKAlgorithmSuiteId + +// Definition of datatype ESDKCommitmentPolicy +type ESDKCommitmentPolicy struct { + Data_ESDKCommitmentPolicy_ +} + +func (_this ESDKCommitmentPolicy) Get_() Data_ESDKCommitmentPolicy_ { + return _this.Data_ESDKCommitmentPolicy_ +} + +type Data_ESDKCommitmentPolicy_ interface { + isESDKCommitmentPolicy() +} + +type CompanionStruct_ESDKCommitmentPolicy_ struct { +} + +var Companion_ESDKCommitmentPolicy_ = CompanionStruct_ESDKCommitmentPolicy_{} + +type ESDKCommitmentPolicy_FORBID__ENCRYPT__ALLOW__DECRYPT struct { +} + +func (ESDKCommitmentPolicy_FORBID__ENCRYPT__ALLOW__DECRYPT) isESDKCommitmentPolicy() {} + +func (CompanionStruct_ESDKCommitmentPolicy_) Create_FORBID__ENCRYPT__ALLOW__DECRYPT_() ESDKCommitmentPolicy { + return ESDKCommitmentPolicy{ESDKCommitmentPolicy_FORBID__ENCRYPT__ALLOW__DECRYPT{}} +} + +func (_this ESDKCommitmentPolicy) Is_FORBID__ENCRYPT__ALLOW__DECRYPT() bool { + _, ok := _this.Get_().(ESDKCommitmentPolicy_FORBID__ENCRYPT__ALLOW__DECRYPT) + return ok +} + +type ESDKCommitmentPolicy_REQUIRE__ENCRYPT__ALLOW__DECRYPT struct { +} + +func (ESDKCommitmentPolicy_REQUIRE__ENCRYPT__ALLOW__DECRYPT) isESDKCommitmentPolicy() {} + +func (CompanionStruct_ESDKCommitmentPolicy_) Create_REQUIRE__ENCRYPT__ALLOW__DECRYPT_() ESDKCommitmentPolicy { + return ESDKCommitmentPolicy{ESDKCommitmentPolicy_REQUIRE__ENCRYPT__ALLOW__DECRYPT{}} +} + +func (_this ESDKCommitmentPolicy) Is_REQUIRE__ENCRYPT__ALLOW__DECRYPT() bool { + _, ok := _this.Get_().(ESDKCommitmentPolicy_REQUIRE__ENCRYPT__ALLOW__DECRYPT) + return ok +} + +type ESDKCommitmentPolicy_REQUIRE__ENCRYPT__REQUIRE__DECRYPT struct { +} + +func (ESDKCommitmentPolicy_REQUIRE__ENCRYPT__REQUIRE__DECRYPT) isESDKCommitmentPolicy() {} + +func (CompanionStruct_ESDKCommitmentPolicy_) Create_REQUIRE__ENCRYPT__REQUIRE__DECRYPT_() ESDKCommitmentPolicy { + return ESDKCommitmentPolicy{ESDKCommitmentPolicy_REQUIRE__ENCRYPT__REQUIRE__DECRYPT{}} +} + +func (_this ESDKCommitmentPolicy) Is_REQUIRE__ENCRYPT__REQUIRE__DECRYPT() bool { + _, ok := _this.Get_().(ESDKCommitmentPolicy_REQUIRE__ENCRYPT__REQUIRE__DECRYPT) + return ok +} + +func (CompanionStruct_ESDKCommitmentPolicy_) Default() ESDKCommitmentPolicy { + return Companion_ESDKCommitmentPolicy_.Create_FORBID__ENCRYPT__ALLOW__DECRYPT_() +} + +func (_ CompanionStruct_ESDKCommitmentPolicy_) AllSingletonConstructors() _dafny.Iterator { + i := -1 + return func() (interface{}, bool) { + i++ + switch i { + case 0: + return Companion_ESDKCommitmentPolicy_.Create_FORBID__ENCRYPT__ALLOW__DECRYPT_(), true + case 1: + return Companion_ESDKCommitmentPolicy_.Create_REQUIRE__ENCRYPT__ALLOW__DECRYPT_(), true + case 2: + return Companion_ESDKCommitmentPolicy_.Create_REQUIRE__ENCRYPT__REQUIRE__DECRYPT_(), true + default: + return ESDKCommitmentPolicy{}, false + } + } +} + +func (_this ESDKCommitmentPolicy) String() string { + switch _this.Get_().(type) { + case nil: + return "null" + case ESDKCommitmentPolicy_FORBID__ENCRYPT__ALLOW__DECRYPT: + { + return "AwsCryptographyMaterialProvidersTypes.ESDKCommitmentPolicy.FORBID_ENCRYPT_ALLOW_DECRYPT" + } + case ESDKCommitmentPolicy_REQUIRE__ENCRYPT__ALLOW__DECRYPT: + { + return "AwsCryptographyMaterialProvidersTypes.ESDKCommitmentPolicy.REQUIRE_ENCRYPT_ALLOW_DECRYPT" + } + case ESDKCommitmentPolicy_REQUIRE__ENCRYPT__REQUIRE__DECRYPT: + { + return "AwsCryptographyMaterialProvidersTypes.ESDKCommitmentPolicy.REQUIRE_ENCRYPT_REQUIRE_DECRYPT" + } + default: + { + return "" + } + } +} + +func (_this ESDKCommitmentPolicy) Equals(other ESDKCommitmentPolicy) bool { + switch _this.Get_().(type) { + case ESDKCommitmentPolicy_FORBID__ENCRYPT__ALLOW__DECRYPT: + { + _, ok := other.Get_().(ESDKCommitmentPolicy_FORBID__ENCRYPT__ALLOW__DECRYPT) + return ok + } + case ESDKCommitmentPolicy_REQUIRE__ENCRYPT__ALLOW__DECRYPT: + { + _, ok := other.Get_().(ESDKCommitmentPolicy_REQUIRE__ENCRYPT__ALLOW__DECRYPT) + return ok + } + case ESDKCommitmentPolicy_REQUIRE__ENCRYPT__REQUIRE__DECRYPT: + { + _, ok := other.Get_().(ESDKCommitmentPolicy_REQUIRE__ENCRYPT__REQUIRE__DECRYPT) + return ok + } + default: + { + return false // unexpected + } + } +} + +func (_this ESDKCommitmentPolicy) EqualsGeneric(other interface{}) bool { + typed, ok := other.(ESDKCommitmentPolicy) + return ok && _this.Equals(typed) +} + +func Type_ESDKCommitmentPolicy_() _dafny.TypeDescriptor { + return type_ESDKCommitmentPolicy_{} +} + +type type_ESDKCommitmentPolicy_ struct { +} + +func (_this type_ESDKCommitmentPolicy_) Default() interface{} { + return Companion_ESDKCommitmentPolicy_.Default() +} + +func (_this type_ESDKCommitmentPolicy_) String() string { + return "AwsCryptographyMaterialProvidersTypes.ESDKCommitmentPolicy" +} +func (_this ESDKCommitmentPolicy) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = ESDKCommitmentPolicy{} + +// End of datatype ESDKCommitmentPolicy + +// Definition of datatype GetBranchKeyIdInput +type GetBranchKeyIdInput struct { + Data_GetBranchKeyIdInput_ +} + +func (_this GetBranchKeyIdInput) Get_() Data_GetBranchKeyIdInput_ { + return _this.Data_GetBranchKeyIdInput_ +} + +type Data_GetBranchKeyIdInput_ interface { + isGetBranchKeyIdInput() +} + +type CompanionStruct_GetBranchKeyIdInput_ struct { +} + +var Companion_GetBranchKeyIdInput_ = CompanionStruct_GetBranchKeyIdInput_{} + +type GetBranchKeyIdInput_GetBranchKeyIdInput struct { + EncryptionContext _dafny.Map +} + +func (GetBranchKeyIdInput_GetBranchKeyIdInput) isGetBranchKeyIdInput() {} + +func (CompanionStruct_GetBranchKeyIdInput_) Create_GetBranchKeyIdInput_(EncryptionContext _dafny.Map) GetBranchKeyIdInput { + return GetBranchKeyIdInput{GetBranchKeyIdInput_GetBranchKeyIdInput{EncryptionContext}} +} + +func (_this GetBranchKeyIdInput) Is_GetBranchKeyIdInput() bool { + _, ok := _this.Get_().(GetBranchKeyIdInput_GetBranchKeyIdInput) + return ok +} + +func (CompanionStruct_GetBranchKeyIdInput_) Default() GetBranchKeyIdInput { + return Companion_GetBranchKeyIdInput_.Create_GetBranchKeyIdInput_(_dafny.EmptyMap) +} + +func (_this GetBranchKeyIdInput) Dtor_encryptionContext() _dafny.Map { + return _this.Get_().(GetBranchKeyIdInput_GetBranchKeyIdInput).EncryptionContext +} + +func (_this GetBranchKeyIdInput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case GetBranchKeyIdInput_GetBranchKeyIdInput: + { + return "AwsCryptographyMaterialProvidersTypes.GetBranchKeyIdInput.GetBranchKeyIdInput" + "(" + _dafny.String(data.EncryptionContext) + ")" + } + default: + { + return "" + } + } +} + +func (_this GetBranchKeyIdInput) Equals(other GetBranchKeyIdInput) bool { + switch data1 := _this.Get_().(type) { + case GetBranchKeyIdInput_GetBranchKeyIdInput: + { + data2, ok := other.Get_().(GetBranchKeyIdInput_GetBranchKeyIdInput) + return ok && data1.EncryptionContext.Equals(data2.EncryptionContext) + } + default: + { + return false // unexpected + } + } +} + +func (_this GetBranchKeyIdInput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(GetBranchKeyIdInput) + return ok && _this.Equals(typed) +} + +func Type_GetBranchKeyIdInput_() _dafny.TypeDescriptor { + return type_GetBranchKeyIdInput_{} +} + +type type_GetBranchKeyIdInput_ struct { +} + +func (_this type_GetBranchKeyIdInput_) Default() interface{} { + return Companion_GetBranchKeyIdInput_.Default() +} + +func (_this type_GetBranchKeyIdInput_) String() string { + return "AwsCryptographyMaterialProvidersTypes.GetBranchKeyIdInput" +} +func (_this GetBranchKeyIdInput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = GetBranchKeyIdInput{} + +// End of datatype GetBranchKeyIdInput + +// Definition of datatype GetBranchKeyIdOutput +type GetBranchKeyIdOutput struct { + Data_GetBranchKeyIdOutput_ +} + +func (_this GetBranchKeyIdOutput) Get_() Data_GetBranchKeyIdOutput_ { + return _this.Data_GetBranchKeyIdOutput_ +} + +type Data_GetBranchKeyIdOutput_ interface { + isGetBranchKeyIdOutput() +} + +type CompanionStruct_GetBranchKeyIdOutput_ struct { +} + +var Companion_GetBranchKeyIdOutput_ = CompanionStruct_GetBranchKeyIdOutput_{} + +type GetBranchKeyIdOutput_GetBranchKeyIdOutput struct { + BranchKeyId _dafny.Sequence +} + +func (GetBranchKeyIdOutput_GetBranchKeyIdOutput) isGetBranchKeyIdOutput() {} + +func (CompanionStruct_GetBranchKeyIdOutput_) Create_GetBranchKeyIdOutput_(BranchKeyId _dafny.Sequence) GetBranchKeyIdOutput { + return GetBranchKeyIdOutput{GetBranchKeyIdOutput_GetBranchKeyIdOutput{BranchKeyId}} +} + +func (_this GetBranchKeyIdOutput) Is_GetBranchKeyIdOutput() bool { + _, ok := _this.Get_().(GetBranchKeyIdOutput_GetBranchKeyIdOutput) + return ok +} + +func (CompanionStruct_GetBranchKeyIdOutput_) Default() GetBranchKeyIdOutput { + return Companion_GetBranchKeyIdOutput_.Create_GetBranchKeyIdOutput_(_dafny.EmptySeq.SetString()) +} + +func (_this GetBranchKeyIdOutput) Dtor_branchKeyId() _dafny.Sequence { + return _this.Get_().(GetBranchKeyIdOutput_GetBranchKeyIdOutput).BranchKeyId +} + +func (_this GetBranchKeyIdOutput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case GetBranchKeyIdOutput_GetBranchKeyIdOutput: + { + return "AwsCryptographyMaterialProvidersTypes.GetBranchKeyIdOutput.GetBranchKeyIdOutput" + "(" + _dafny.String(data.BranchKeyId) + ")" + } + default: + { + return "" + } + } +} + +func (_this GetBranchKeyIdOutput) Equals(other GetBranchKeyIdOutput) bool { + switch data1 := _this.Get_().(type) { + case GetBranchKeyIdOutput_GetBranchKeyIdOutput: + { + data2, ok := other.Get_().(GetBranchKeyIdOutput_GetBranchKeyIdOutput) + return ok && data1.BranchKeyId.Equals(data2.BranchKeyId) + } + default: + { + return false // unexpected + } + } +} + +func (_this GetBranchKeyIdOutput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(GetBranchKeyIdOutput) + return ok && _this.Equals(typed) +} + +func Type_GetBranchKeyIdOutput_() _dafny.TypeDescriptor { + return type_GetBranchKeyIdOutput_{} +} + +type type_GetBranchKeyIdOutput_ struct { +} + +func (_this type_GetBranchKeyIdOutput_) Default() interface{} { + return Companion_GetBranchKeyIdOutput_.Default() +} + +func (_this type_GetBranchKeyIdOutput_) String() string { + return "AwsCryptographyMaterialProvidersTypes.GetBranchKeyIdOutput" +} +func (_this GetBranchKeyIdOutput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = GetBranchKeyIdOutput{} + +// End of datatype GetBranchKeyIdOutput + +// Definition of datatype GetCacheEntryInput +type GetCacheEntryInput struct { + Data_GetCacheEntryInput_ +} + +func (_this GetCacheEntryInput) Get_() Data_GetCacheEntryInput_ { + return _this.Data_GetCacheEntryInput_ +} + +type Data_GetCacheEntryInput_ interface { + isGetCacheEntryInput() +} + +type CompanionStruct_GetCacheEntryInput_ struct { +} + +var Companion_GetCacheEntryInput_ = CompanionStruct_GetCacheEntryInput_{} + +type GetCacheEntryInput_GetCacheEntryInput struct { + Identifier _dafny.Sequence + BytesUsed m_Wrappers.Option +} + +func (GetCacheEntryInput_GetCacheEntryInput) isGetCacheEntryInput() {} + +func (CompanionStruct_GetCacheEntryInput_) Create_GetCacheEntryInput_(Identifier _dafny.Sequence, BytesUsed m_Wrappers.Option) GetCacheEntryInput { + return GetCacheEntryInput{GetCacheEntryInput_GetCacheEntryInput{Identifier, BytesUsed}} +} + +func (_this GetCacheEntryInput) Is_GetCacheEntryInput() bool { + _, ok := _this.Get_().(GetCacheEntryInput_GetCacheEntryInput) + return ok +} + +func (CompanionStruct_GetCacheEntryInput_) Default() GetCacheEntryInput { + return Companion_GetCacheEntryInput_.Create_GetCacheEntryInput_(_dafny.EmptySeq, m_Wrappers.Companion_Option_.Default()) +} + +func (_this GetCacheEntryInput) Dtor_identifier() _dafny.Sequence { + return _this.Get_().(GetCacheEntryInput_GetCacheEntryInput).Identifier +} + +func (_this GetCacheEntryInput) Dtor_bytesUsed() m_Wrappers.Option { + return _this.Get_().(GetCacheEntryInput_GetCacheEntryInput).BytesUsed +} + +func (_this GetCacheEntryInput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case GetCacheEntryInput_GetCacheEntryInput: + { + return "AwsCryptographyMaterialProvidersTypes.GetCacheEntryInput.GetCacheEntryInput" + "(" + _dafny.String(data.Identifier) + ", " + _dafny.String(data.BytesUsed) + ")" + } + default: + { + return "" + } + } +} + +func (_this GetCacheEntryInput) Equals(other GetCacheEntryInput) bool { + switch data1 := _this.Get_().(type) { + case GetCacheEntryInput_GetCacheEntryInput: + { + data2, ok := other.Get_().(GetCacheEntryInput_GetCacheEntryInput) + return ok && data1.Identifier.Equals(data2.Identifier) && data1.BytesUsed.Equals(data2.BytesUsed) + } + default: + { + return false // unexpected + } + } +} + +func (_this GetCacheEntryInput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(GetCacheEntryInput) + return ok && _this.Equals(typed) +} + +func Type_GetCacheEntryInput_() _dafny.TypeDescriptor { + return type_GetCacheEntryInput_{} +} + +type type_GetCacheEntryInput_ struct { +} + +func (_this type_GetCacheEntryInput_) Default() interface{} { + return Companion_GetCacheEntryInput_.Default() +} + +func (_this type_GetCacheEntryInput_) String() string { + return "AwsCryptographyMaterialProvidersTypes.GetCacheEntryInput" +} +func (_this GetCacheEntryInput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = GetCacheEntryInput{} + +// End of datatype GetCacheEntryInput + +// Definition of datatype GetCacheEntryOutput +type GetCacheEntryOutput struct { + Data_GetCacheEntryOutput_ +} + +func (_this GetCacheEntryOutput) Get_() Data_GetCacheEntryOutput_ { + return _this.Data_GetCacheEntryOutput_ +} + +type Data_GetCacheEntryOutput_ interface { + isGetCacheEntryOutput() +} + +type CompanionStruct_GetCacheEntryOutput_ struct { +} + +var Companion_GetCacheEntryOutput_ = CompanionStruct_GetCacheEntryOutput_{} + +type GetCacheEntryOutput_GetCacheEntryOutput struct { + Materials Materials + CreationTime int64 + ExpiryTime int64 + MessagesUsed int32 + BytesUsed int32 +} + +func (GetCacheEntryOutput_GetCacheEntryOutput) isGetCacheEntryOutput() {} + +func (CompanionStruct_GetCacheEntryOutput_) Create_GetCacheEntryOutput_(Materials Materials, CreationTime int64, ExpiryTime int64, MessagesUsed int32, BytesUsed int32) GetCacheEntryOutput { + return GetCacheEntryOutput{GetCacheEntryOutput_GetCacheEntryOutput{Materials, CreationTime, ExpiryTime, MessagesUsed, BytesUsed}} +} + +func (_this GetCacheEntryOutput) Is_GetCacheEntryOutput() bool { + _, ok := _this.Get_().(GetCacheEntryOutput_GetCacheEntryOutput) + return ok +} + +func (CompanionStruct_GetCacheEntryOutput_) Default() GetCacheEntryOutput { + return Companion_GetCacheEntryOutput_.Create_GetCacheEntryOutput_(Companion_Materials_.Default(), int64(0), int64(0), int32(0), int32(0)) +} + +func (_this GetCacheEntryOutput) Dtor_materials() Materials { + return _this.Get_().(GetCacheEntryOutput_GetCacheEntryOutput).Materials +} + +func (_this GetCacheEntryOutput) Dtor_creationTime() int64 { + return _this.Get_().(GetCacheEntryOutput_GetCacheEntryOutput).CreationTime +} + +func (_this GetCacheEntryOutput) Dtor_expiryTime() int64 { + return _this.Get_().(GetCacheEntryOutput_GetCacheEntryOutput).ExpiryTime +} + +func (_this GetCacheEntryOutput) Dtor_messagesUsed() int32 { + return _this.Get_().(GetCacheEntryOutput_GetCacheEntryOutput).MessagesUsed +} + +func (_this GetCacheEntryOutput) Dtor_bytesUsed() int32 { + return _this.Get_().(GetCacheEntryOutput_GetCacheEntryOutput).BytesUsed +} + +func (_this GetCacheEntryOutput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case GetCacheEntryOutput_GetCacheEntryOutput: + { + return "AwsCryptographyMaterialProvidersTypes.GetCacheEntryOutput.GetCacheEntryOutput" + "(" + _dafny.String(data.Materials) + ", " + _dafny.String(data.CreationTime) + ", " + _dafny.String(data.ExpiryTime) + ", " + _dafny.String(data.MessagesUsed) + ", " + _dafny.String(data.BytesUsed) + ")" + } + default: + { + return "" + } + } +} + +func (_this GetCacheEntryOutput) Equals(other GetCacheEntryOutput) bool { + switch data1 := _this.Get_().(type) { + case GetCacheEntryOutput_GetCacheEntryOutput: + { + data2, ok := other.Get_().(GetCacheEntryOutput_GetCacheEntryOutput) + return ok && data1.Materials.Equals(data2.Materials) && data1.CreationTime == data2.CreationTime && data1.ExpiryTime == data2.ExpiryTime && data1.MessagesUsed == data2.MessagesUsed && data1.BytesUsed == data2.BytesUsed + } + default: + { + return false // unexpected + } + } +} + +func (_this GetCacheEntryOutput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(GetCacheEntryOutput) + return ok && _this.Equals(typed) +} + +func Type_GetCacheEntryOutput_() _dafny.TypeDescriptor { + return type_GetCacheEntryOutput_{} +} + +type type_GetCacheEntryOutput_ struct { +} + +func (_this type_GetCacheEntryOutput_) Default() interface{} { + return Companion_GetCacheEntryOutput_.Default() +} + +func (_this type_GetCacheEntryOutput_) String() string { + return "AwsCryptographyMaterialProvidersTypes.GetCacheEntryOutput" +} +func (_this GetCacheEntryOutput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = GetCacheEntryOutput{} + +// End of datatype GetCacheEntryOutput + +// Definition of datatype GetClientInput +type GetClientInput struct { + Data_GetClientInput_ +} + +func (_this GetClientInput) Get_() Data_GetClientInput_ { + return _this.Data_GetClientInput_ +} + +type Data_GetClientInput_ interface { + isGetClientInput() +} + +type CompanionStruct_GetClientInput_ struct { +} + +var Companion_GetClientInput_ = CompanionStruct_GetClientInput_{} + +type GetClientInput_GetClientInput struct { + Region _dafny.Sequence +} + +func (GetClientInput_GetClientInput) isGetClientInput() {} + +func (CompanionStruct_GetClientInput_) Create_GetClientInput_(Region _dafny.Sequence) GetClientInput { + return GetClientInput{GetClientInput_GetClientInput{Region}} +} + +func (_this GetClientInput) Is_GetClientInput() bool { + _, ok := _this.Get_().(GetClientInput_GetClientInput) + return ok +} + +func (CompanionStruct_GetClientInput_) Default() GetClientInput { + return Companion_GetClientInput_.Create_GetClientInput_(_dafny.EmptySeq.SetString()) +} + +func (_this GetClientInput) Dtor_region() _dafny.Sequence { + return _this.Get_().(GetClientInput_GetClientInput).Region +} + +func (_this GetClientInput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case GetClientInput_GetClientInput: + { + return "AwsCryptographyMaterialProvidersTypes.GetClientInput.GetClientInput" + "(" + _dafny.String(data.Region) + ")" + } + default: + { + return "" + } + } +} + +func (_this GetClientInput) Equals(other GetClientInput) bool { + switch data1 := _this.Get_().(type) { + case GetClientInput_GetClientInput: + { + data2, ok := other.Get_().(GetClientInput_GetClientInput) + return ok && data1.Region.Equals(data2.Region) + } + default: + { + return false // unexpected + } + } +} + +func (_this GetClientInput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(GetClientInput) + return ok && _this.Equals(typed) +} + +func Type_GetClientInput_() _dafny.TypeDescriptor { + return type_GetClientInput_{} +} + +type type_GetClientInput_ struct { +} + +func (_this type_GetClientInput_) Default() interface{} { + return Companion_GetClientInput_.Default() +} + +func (_this type_GetClientInput_) String() string { + return "AwsCryptographyMaterialProvidersTypes.GetClientInput" +} +func (_this GetClientInput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = GetClientInput{} + +// End of datatype GetClientInput + +// Definition of datatype GetEncryptionMaterialsInput +type GetEncryptionMaterialsInput struct { + Data_GetEncryptionMaterialsInput_ +} + +func (_this GetEncryptionMaterialsInput) Get_() Data_GetEncryptionMaterialsInput_ { + return _this.Data_GetEncryptionMaterialsInput_ +} + +type Data_GetEncryptionMaterialsInput_ interface { + isGetEncryptionMaterialsInput() +} + +type CompanionStruct_GetEncryptionMaterialsInput_ struct { +} + +var Companion_GetEncryptionMaterialsInput_ = CompanionStruct_GetEncryptionMaterialsInput_{} + +type GetEncryptionMaterialsInput_GetEncryptionMaterialsInput struct { + EncryptionContext _dafny.Map + CommitmentPolicy CommitmentPolicy + AlgorithmSuiteId m_Wrappers.Option + MaxPlaintextLength m_Wrappers.Option + RequiredEncryptionContextKeys m_Wrappers.Option +} + +func (GetEncryptionMaterialsInput_GetEncryptionMaterialsInput) isGetEncryptionMaterialsInput() {} + +func (CompanionStruct_GetEncryptionMaterialsInput_) Create_GetEncryptionMaterialsInput_(EncryptionContext _dafny.Map, CommitmentPolicy CommitmentPolicy, AlgorithmSuiteId m_Wrappers.Option, MaxPlaintextLength m_Wrappers.Option, RequiredEncryptionContextKeys m_Wrappers.Option) GetEncryptionMaterialsInput { + return GetEncryptionMaterialsInput{GetEncryptionMaterialsInput_GetEncryptionMaterialsInput{EncryptionContext, CommitmentPolicy, AlgorithmSuiteId, MaxPlaintextLength, RequiredEncryptionContextKeys}} +} + +func (_this GetEncryptionMaterialsInput) Is_GetEncryptionMaterialsInput() bool { + _, ok := _this.Get_().(GetEncryptionMaterialsInput_GetEncryptionMaterialsInput) + return ok +} + +func (CompanionStruct_GetEncryptionMaterialsInput_) Default() GetEncryptionMaterialsInput { + return Companion_GetEncryptionMaterialsInput_.Create_GetEncryptionMaterialsInput_(_dafny.EmptyMap, Companion_CommitmentPolicy_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this GetEncryptionMaterialsInput) Dtor_encryptionContext() _dafny.Map { + return _this.Get_().(GetEncryptionMaterialsInput_GetEncryptionMaterialsInput).EncryptionContext +} + +func (_this GetEncryptionMaterialsInput) Dtor_commitmentPolicy() CommitmentPolicy { + return _this.Get_().(GetEncryptionMaterialsInput_GetEncryptionMaterialsInput).CommitmentPolicy +} + +func (_this GetEncryptionMaterialsInput) Dtor_algorithmSuiteId() m_Wrappers.Option { + return _this.Get_().(GetEncryptionMaterialsInput_GetEncryptionMaterialsInput).AlgorithmSuiteId +} + +func (_this GetEncryptionMaterialsInput) Dtor_maxPlaintextLength() m_Wrappers.Option { + return _this.Get_().(GetEncryptionMaterialsInput_GetEncryptionMaterialsInput).MaxPlaintextLength +} + +func (_this GetEncryptionMaterialsInput) Dtor_requiredEncryptionContextKeys() m_Wrappers.Option { + return _this.Get_().(GetEncryptionMaterialsInput_GetEncryptionMaterialsInput).RequiredEncryptionContextKeys +} + +func (_this GetEncryptionMaterialsInput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case GetEncryptionMaterialsInput_GetEncryptionMaterialsInput: + { + return "AwsCryptographyMaterialProvidersTypes.GetEncryptionMaterialsInput.GetEncryptionMaterialsInput" + "(" + _dafny.String(data.EncryptionContext) + ", " + _dafny.String(data.CommitmentPolicy) + ", " + _dafny.String(data.AlgorithmSuiteId) + ", " + _dafny.String(data.MaxPlaintextLength) + ", " + _dafny.String(data.RequiredEncryptionContextKeys) + ")" + } + default: + { + return "" + } + } +} + +func (_this GetEncryptionMaterialsInput) Equals(other GetEncryptionMaterialsInput) bool { + switch data1 := _this.Get_().(type) { + case GetEncryptionMaterialsInput_GetEncryptionMaterialsInput: + { + data2, ok := other.Get_().(GetEncryptionMaterialsInput_GetEncryptionMaterialsInput) + return ok && data1.EncryptionContext.Equals(data2.EncryptionContext) && data1.CommitmentPolicy.Equals(data2.CommitmentPolicy) && data1.AlgorithmSuiteId.Equals(data2.AlgorithmSuiteId) && data1.MaxPlaintextLength.Equals(data2.MaxPlaintextLength) && data1.RequiredEncryptionContextKeys.Equals(data2.RequiredEncryptionContextKeys) + } + default: + { + return false // unexpected + } + } +} + +func (_this GetEncryptionMaterialsInput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(GetEncryptionMaterialsInput) + return ok && _this.Equals(typed) +} + +func Type_GetEncryptionMaterialsInput_() _dafny.TypeDescriptor { + return type_GetEncryptionMaterialsInput_{} +} + +type type_GetEncryptionMaterialsInput_ struct { +} + +func (_this type_GetEncryptionMaterialsInput_) Default() interface{} { + return Companion_GetEncryptionMaterialsInput_.Default() +} + +func (_this type_GetEncryptionMaterialsInput_) String() string { + return "AwsCryptographyMaterialProvidersTypes.GetEncryptionMaterialsInput" +} +func (_this GetEncryptionMaterialsInput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = GetEncryptionMaterialsInput{} + +// End of datatype GetEncryptionMaterialsInput + +// Definition of datatype GetEncryptionMaterialsOutput +type GetEncryptionMaterialsOutput struct { + Data_GetEncryptionMaterialsOutput_ +} + +func (_this GetEncryptionMaterialsOutput) Get_() Data_GetEncryptionMaterialsOutput_ { + return _this.Data_GetEncryptionMaterialsOutput_ +} + +type Data_GetEncryptionMaterialsOutput_ interface { + isGetEncryptionMaterialsOutput() +} + +type CompanionStruct_GetEncryptionMaterialsOutput_ struct { +} + +var Companion_GetEncryptionMaterialsOutput_ = CompanionStruct_GetEncryptionMaterialsOutput_{} + +type GetEncryptionMaterialsOutput_GetEncryptionMaterialsOutput struct { + EncryptionMaterials EncryptionMaterials +} + +func (GetEncryptionMaterialsOutput_GetEncryptionMaterialsOutput) isGetEncryptionMaterialsOutput() {} + +func (CompanionStruct_GetEncryptionMaterialsOutput_) Create_GetEncryptionMaterialsOutput_(EncryptionMaterials EncryptionMaterials) GetEncryptionMaterialsOutput { + return GetEncryptionMaterialsOutput{GetEncryptionMaterialsOutput_GetEncryptionMaterialsOutput{EncryptionMaterials}} +} + +func (_this GetEncryptionMaterialsOutput) Is_GetEncryptionMaterialsOutput() bool { + _, ok := _this.Get_().(GetEncryptionMaterialsOutput_GetEncryptionMaterialsOutput) + return ok +} + +func (CompanionStruct_GetEncryptionMaterialsOutput_) Default() GetEncryptionMaterialsOutput { + return Companion_GetEncryptionMaterialsOutput_.Create_GetEncryptionMaterialsOutput_(Companion_EncryptionMaterials_.Default()) +} + +func (_this GetEncryptionMaterialsOutput) Dtor_encryptionMaterials() EncryptionMaterials { + return _this.Get_().(GetEncryptionMaterialsOutput_GetEncryptionMaterialsOutput).EncryptionMaterials +} + +func (_this GetEncryptionMaterialsOutput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case GetEncryptionMaterialsOutput_GetEncryptionMaterialsOutput: + { + return "AwsCryptographyMaterialProvidersTypes.GetEncryptionMaterialsOutput.GetEncryptionMaterialsOutput" + "(" + _dafny.String(data.EncryptionMaterials) + ")" + } + default: + { + return "" + } + } +} + +func (_this GetEncryptionMaterialsOutput) Equals(other GetEncryptionMaterialsOutput) bool { + switch data1 := _this.Get_().(type) { + case GetEncryptionMaterialsOutput_GetEncryptionMaterialsOutput: + { + data2, ok := other.Get_().(GetEncryptionMaterialsOutput_GetEncryptionMaterialsOutput) + return ok && data1.EncryptionMaterials.Equals(data2.EncryptionMaterials) + } + default: + { + return false // unexpected + } + } +} + +func (_this GetEncryptionMaterialsOutput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(GetEncryptionMaterialsOutput) + return ok && _this.Equals(typed) +} + +func Type_GetEncryptionMaterialsOutput_() _dafny.TypeDescriptor { + return type_GetEncryptionMaterialsOutput_{} +} + +type type_GetEncryptionMaterialsOutput_ struct { +} + +func (_this type_GetEncryptionMaterialsOutput_) Default() interface{} { + return Companion_GetEncryptionMaterialsOutput_.Default() +} + +func (_this type_GetEncryptionMaterialsOutput_) String() string { + return "AwsCryptographyMaterialProvidersTypes.GetEncryptionMaterialsOutput" +} +func (_this GetEncryptionMaterialsOutput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = GetEncryptionMaterialsOutput{} + +// End of datatype GetEncryptionMaterialsOutput + +// Definition of datatype HKDF +type HKDF struct { + Data_HKDF_ +} + +func (_this HKDF) Get_() Data_HKDF_ { + return _this.Data_HKDF_ +} + +type Data_HKDF_ interface { + isHKDF() +} + +type CompanionStruct_HKDF_ struct { +} + +var Companion_HKDF_ = CompanionStruct_HKDF_{} + +type HKDF_HKDF struct { + Hmac m_AwsCryptographyPrimitivesTypes.DigestAlgorithm + SaltLength int32 + InputKeyLength int32 + OutputKeyLength int32 +} + +func (HKDF_HKDF) isHKDF() {} + +func (CompanionStruct_HKDF_) Create_HKDF_(Hmac m_AwsCryptographyPrimitivesTypes.DigestAlgorithm, SaltLength int32, InputKeyLength int32, OutputKeyLength int32) HKDF { + return HKDF{HKDF_HKDF{Hmac, SaltLength, InputKeyLength, OutputKeyLength}} +} + +func (_this HKDF) Is_HKDF() bool { + _, ok := _this.Get_().(HKDF_HKDF) + return ok +} + +func (CompanionStruct_HKDF_) Default() HKDF { + return Companion_HKDF_.Create_HKDF_(m_AwsCryptographyPrimitivesTypes.Companion_DigestAlgorithm_.Default(), int32(0), int32(0), int32(0)) +} + +func (_this HKDF) Dtor_hmac() m_AwsCryptographyPrimitivesTypes.DigestAlgorithm { + return _this.Get_().(HKDF_HKDF).Hmac +} + +func (_this HKDF) Dtor_saltLength() int32 { + return _this.Get_().(HKDF_HKDF).SaltLength +} + +func (_this HKDF) Dtor_inputKeyLength() int32 { + return _this.Get_().(HKDF_HKDF).InputKeyLength +} + +func (_this HKDF) Dtor_outputKeyLength() int32 { + return _this.Get_().(HKDF_HKDF).OutputKeyLength +} + +func (_this HKDF) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case HKDF_HKDF: + { + return "AwsCryptographyMaterialProvidersTypes.HKDF.HKDF" + "(" + _dafny.String(data.Hmac) + ", " + _dafny.String(data.SaltLength) + ", " + _dafny.String(data.InputKeyLength) + ", " + _dafny.String(data.OutputKeyLength) + ")" + } + default: + { + return "" + } + } +} + +func (_this HKDF) Equals(other HKDF) bool { + switch data1 := _this.Get_().(type) { + case HKDF_HKDF: + { + data2, ok := other.Get_().(HKDF_HKDF) + return ok && data1.Hmac.Equals(data2.Hmac) && data1.SaltLength == data2.SaltLength && data1.InputKeyLength == data2.InputKeyLength && data1.OutputKeyLength == data2.OutputKeyLength + } + default: + { + return false // unexpected + } + } +} + +func (_this HKDF) EqualsGeneric(other interface{}) bool { + typed, ok := other.(HKDF) + return ok && _this.Equals(typed) +} + +func Type_HKDF_() _dafny.TypeDescriptor { + return type_HKDF_{} +} + +type type_HKDF_ struct { +} + +func (_this type_HKDF_) Default() interface{} { + return Companion_HKDF_.Default() +} + +func (_this type_HKDF_) String() string { + return "AwsCryptographyMaterialProvidersTypes.HKDF" +} +func (_this HKDF) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = HKDF{} + +// End of datatype HKDF + +// Definition of datatype IDENTITY +type IDENTITY struct { + Data_IDENTITY_ +} + +func (_this IDENTITY) Get_() Data_IDENTITY_ { + return _this.Data_IDENTITY_ +} + +type Data_IDENTITY_ interface { + isIDENTITY() +} + +type CompanionStruct_IDENTITY_ struct { +} + +var Companion_IDENTITY_ = CompanionStruct_IDENTITY_{} + +type IDENTITY_IDENTITY struct { +} + +func (IDENTITY_IDENTITY) isIDENTITY() {} + +func (CompanionStruct_IDENTITY_) Create_IDENTITY_() IDENTITY { + return IDENTITY{IDENTITY_IDENTITY{}} +} + +func (_this IDENTITY) Is_IDENTITY() bool { + _, ok := _this.Get_().(IDENTITY_IDENTITY) + return ok +} + +func (CompanionStruct_IDENTITY_) Default() IDENTITY { + return Companion_IDENTITY_.Create_IDENTITY_() +} + +func (_ CompanionStruct_IDENTITY_) AllSingletonConstructors() _dafny.Iterator { + i := -1 + return func() (interface{}, bool) { + i++ + switch i { + case 0: + return Companion_IDENTITY_.Create_IDENTITY_(), true + default: + return IDENTITY{}, false + } + } +} + +func (_this IDENTITY) String() string { + switch _this.Get_().(type) { + case nil: + return "null" + case IDENTITY_IDENTITY: + { + return "AwsCryptographyMaterialProvidersTypes.IDENTITY.IDENTITY" + } + default: + { + return "" + } + } +} + +func (_this IDENTITY) Equals(other IDENTITY) bool { + switch _this.Get_().(type) { + case IDENTITY_IDENTITY: + { + _, ok := other.Get_().(IDENTITY_IDENTITY) + return ok + } + default: + { + return false // unexpected + } + } +} + +func (_this IDENTITY) EqualsGeneric(other interface{}) bool { + typed, ok := other.(IDENTITY) + return ok && _this.Equals(typed) +} + +func Type_IDENTITY_() _dafny.TypeDescriptor { + return type_IDENTITY_{} +} + +type type_IDENTITY_ struct { +} + +func (_this type_IDENTITY_) Default() interface{} { + return Companion_IDENTITY_.Default() +} + +func (_this type_IDENTITY_) String() string { + return "AwsCryptographyMaterialProvidersTypes.IDENTITY" +} +func (_this IDENTITY) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = IDENTITY{} + +// End of datatype IDENTITY + +// Definition of datatype InitializeDecryptionMaterialsInput +type InitializeDecryptionMaterialsInput struct { + Data_InitializeDecryptionMaterialsInput_ +} + +func (_this InitializeDecryptionMaterialsInput) Get_() Data_InitializeDecryptionMaterialsInput_ { + return _this.Data_InitializeDecryptionMaterialsInput_ +} + +type Data_InitializeDecryptionMaterialsInput_ interface { + isInitializeDecryptionMaterialsInput() +} + +type CompanionStruct_InitializeDecryptionMaterialsInput_ struct { +} + +var Companion_InitializeDecryptionMaterialsInput_ = CompanionStruct_InitializeDecryptionMaterialsInput_{} + +type InitializeDecryptionMaterialsInput_InitializeDecryptionMaterialsInput struct { + AlgorithmSuiteId AlgorithmSuiteId + EncryptionContext _dafny.Map + RequiredEncryptionContextKeys _dafny.Sequence +} + +func (InitializeDecryptionMaterialsInput_InitializeDecryptionMaterialsInput) isInitializeDecryptionMaterialsInput() { +} + +func (CompanionStruct_InitializeDecryptionMaterialsInput_) Create_InitializeDecryptionMaterialsInput_(AlgorithmSuiteId AlgorithmSuiteId, EncryptionContext _dafny.Map, RequiredEncryptionContextKeys _dafny.Sequence) InitializeDecryptionMaterialsInput { + return InitializeDecryptionMaterialsInput{InitializeDecryptionMaterialsInput_InitializeDecryptionMaterialsInput{AlgorithmSuiteId, EncryptionContext, RequiredEncryptionContextKeys}} +} + +func (_this InitializeDecryptionMaterialsInput) Is_InitializeDecryptionMaterialsInput() bool { + _, ok := _this.Get_().(InitializeDecryptionMaterialsInput_InitializeDecryptionMaterialsInput) + return ok +} + +func (CompanionStruct_InitializeDecryptionMaterialsInput_) Default() InitializeDecryptionMaterialsInput { + return Companion_InitializeDecryptionMaterialsInput_.Create_InitializeDecryptionMaterialsInput_(Companion_AlgorithmSuiteId_.Default(), _dafny.EmptyMap, _dafny.EmptySeq) +} + +func (_this InitializeDecryptionMaterialsInput) Dtor_algorithmSuiteId() AlgorithmSuiteId { + return _this.Get_().(InitializeDecryptionMaterialsInput_InitializeDecryptionMaterialsInput).AlgorithmSuiteId +} + +func (_this InitializeDecryptionMaterialsInput) Dtor_encryptionContext() _dafny.Map { + return _this.Get_().(InitializeDecryptionMaterialsInput_InitializeDecryptionMaterialsInput).EncryptionContext +} + +func (_this InitializeDecryptionMaterialsInput) Dtor_requiredEncryptionContextKeys() _dafny.Sequence { + return _this.Get_().(InitializeDecryptionMaterialsInput_InitializeDecryptionMaterialsInput).RequiredEncryptionContextKeys +} + +func (_this InitializeDecryptionMaterialsInput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case InitializeDecryptionMaterialsInput_InitializeDecryptionMaterialsInput: + { + return "AwsCryptographyMaterialProvidersTypes.InitializeDecryptionMaterialsInput.InitializeDecryptionMaterialsInput" + "(" + _dafny.String(data.AlgorithmSuiteId) + ", " + _dafny.String(data.EncryptionContext) + ", " + _dafny.String(data.RequiredEncryptionContextKeys) + ")" + } + default: + { + return "" + } + } +} + +func (_this InitializeDecryptionMaterialsInput) Equals(other InitializeDecryptionMaterialsInput) bool { + switch data1 := _this.Get_().(type) { + case InitializeDecryptionMaterialsInput_InitializeDecryptionMaterialsInput: + { + data2, ok := other.Get_().(InitializeDecryptionMaterialsInput_InitializeDecryptionMaterialsInput) + return ok && data1.AlgorithmSuiteId.Equals(data2.AlgorithmSuiteId) && data1.EncryptionContext.Equals(data2.EncryptionContext) && data1.RequiredEncryptionContextKeys.Equals(data2.RequiredEncryptionContextKeys) + } + default: + { + return false // unexpected + } + } +} + +func (_this InitializeDecryptionMaterialsInput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(InitializeDecryptionMaterialsInput) + return ok && _this.Equals(typed) +} + +func Type_InitializeDecryptionMaterialsInput_() _dafny.TypeDescriptor { + return type_InitializeDecryptionMaterialsInput_{} +} + +type type_InitializeDecryptionMaterialsInput_ struct { +} + +func (_this type_InitializeDecryptionMaterialsInput_) Default() interface{} { + return Companion_InitializeDecryptionMaterialsInput_.Default() +} + +func (_this type_InitializeDecryptionMaterialsInput_) String() string { + return "AwsCryptographyMaterialProvidersTypes.InitializeDecryptionMaterialsInput" +} +func (_this InitializeDecryptionMaterialsInput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = InitializeDecryptionMaterialsInput{} + +// End of datatype InitializeDecryptionMaterialsInput + +// Definition of datatype InitializeEncryptionMaterialsInput +type InitializeEncryptionMaterialsInput struct { + Data_InitializeEncryptionMaterialsInput_ +} + +func (_this InitializeEncryptionMaterialsInput) Get_() Data_InitializeEncryptionMaterialsInput_ { + return _this.Data_InitializeEncryptionMaterialsInput_ +} + +type Data_InitializeEncryptionMaterialsInput_ interface { + isInitializeEncryptionMaterialsInput() +} + +type CompanionStruct_InitializeEncryptionMaterialsInput_ struct { +} + +var Companion_InitializeEncryptionMaterialsInput_ = CompanionStruct_InitializeEncryptionMaterialsInput_{} + +type InitializeEncryptionMaterialsInput_InitializeEncryptionMaterialsInput struct { + AlgorithmSuiteId AlgorithmSuiteId + EncryptionContext _dafny.Map + RequiredEncryptionContextKeys _dafny.Sequence + SigningKey m_Wrappers.Option + VerificationKey m_Wrappers.Option +} + +func (InitializeEncryptionMaterialsInput_InitializeEncryptionMaterialsInput) isInitializeEncryptionMaterialsInput() { +} + +func (CompanionStruct_InitializeEncryptionMaterialsInput_) Create_InitializeEncryptionMaterialsInput_(AlgorithmSuiteId AlgorithmSuiteId, EncryptionContext _dafny.Map, RequiredEncryptionContextKeys _dafny.Sequence, SigningKey m_Wrappers.Option, VerificationKey m_Wrappers.Option) InitializeEncryptionMaterialsInput { + return InitializeEncryptionMaterialsInput{InitializeEncryptionMaterialsInput_InitializeEncryptionMaterialsInput{AlgorithmSuiteId, EncryptionContext, RequiredEncryptionContextKeys, SigningKey, VerificationKey}} +} + +func (_this InitializeEncryptionMaterialsInput) Is_InitializeEncryptionMaterialsInput() bool { + _, ok := _this.Get_().(InitializeEncryptionMaterialsInput_InitializeEncryptionMaterialsInput) + return ok +} + +func (CompanionStruct_InitializeEncryptionMaterialsInput_) Default() InitializeEncryptionMaterialsInput { + return Companion_InitializeEncryptionMaterialsInput_.Create_InitializeEncryptionMaterialsInput_(Companion_AlgorithmSuiteId_.Default(), _dafny.EmptyMap, _dafny.EmptySeq, m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this InitializeEncryptionMaterialsInput) Dtor_algorithmSuiteId() AlgorithmSuiteId { + return _this.Get_().(InitializeEncryptionMaterialsInput_InitializeEncryptionMaterialsInput).AlgorithmSuiteId +} + +func (_this InitializeEncryptionMaterialsInput) Dtor_encryptionContext() _dafny.Map { + return _this.Get_().(InitializeEncryptionMaterialsInput_InitializeEncryptionMaterialsInput).EncryptionContext +} + +func (_this InitializeEncryptionMaterialsInput) Dtor_requiredEncryptionContextKeys() _dafny.Sequence { + return _this.Get_().(InitializeEncryptionMaterialsInput_InitializeEncryptionMaterialsInput).RequiredEncryptionContextKeys +} + +func (_this InitializeEncryptionMaterialsInput) Dtor_signingKey() m_Wrappers.Option { + return _this.Get_().(InitializeEncryptionMaterialsInput_InitializeEncryptionMaterialsInput).SigningKey +} + +func (_this InitializeEncryptionMaterialsInput) Dtor_verificationKey() m_Wrappers.Option { + return _this.Get_().(InitializeEncryptionMaterialsInput_InitializeEncryptionMaterialsInput).VerificationKey +} + +func (_this InitializeEncryptionMaterialsInput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case InitializeEncryptionMaterialsInput_InitializeEncryptionMaterialsInput: + { + return "AwsCryptographyMaterialProvidersTypes.InitializeEncryptionMaterialsInput.InitializeEncryptionMaterialsInput" + "(" + _dafny.String(data.AlgorithmSuiteId) + ", " + _dafny.String(data.EncryptionContext) + ", " + _dafny.String(data.RequiredEncryptionContextKeys) + ", " + _dafny.String(data.SigningKey) + ", " + _dafny.String(data.VerificationKey) + ")" + } + default: + { + return "" + } + } +} + +func (_this InitializeEncryptionMaterialsInput) Equals(other InitializeEncryptionMaterialsInput) bool { + switch data1 := _this.Get_().(type) { + case InitializeEncryptionMaterialsInput_InitializeEncryptionMaterialsInput: + { + data2, ok := other.Get_().(InitializeEncryptionMaterialsInput_InitializeEncryptionMaterialsInput) + return ok && data1.AlgorithmSuiteId.Equals(data2.AlgorithmSuiteId) && data1.EncryptionContext.Equals(data2.EncryptionContext) && data1.RequiredEncryptionContextKeys.Equals(data2.RequiredEncryptionContextKeys) && data1.SigningKey.Equals(data2.SigningKey) && data1.VerificationKey.Equals(data2.VerificationKey) + } + default: + { + return false // unexpected + } + } +} + +func (_this InitializeEncryptionMaterialsInput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(InitializeEncryptionMaterialsInput) + return ok && _this.Equals(typed) +} + +func Type_InitializeEncryptionMaterialsInput_() _dafny.TypeDescriptor { + return type_InitializeEncryptionMaterialsInput_{} +} + +type type_InitializeEncryptionMaterialsInput_ struct { +} + +func (_this type_InitializeEncryptionMaterialsInput_) Default() interface{} { + return Companion_InitializeEncryptionMaterialsInput_.Default() +} + +func (_this type_InitializeEncryptionMaterialsInput_) String() string { + return "AwsCryptographyMaterialProvidersTypes.InitializeEncryptionMaterialsInput" +} +func (_this InitializeEncryptionMaterialsInput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = InitializeEncryptionMaterialsInput{} + +// End of datatype InitializeEncryptionMaterialsInput + +// Definition of datatype IntermediateKeyWrapping +type IntermediateKeyWrapping struct { + Data_IntermediateKeyWrapping_ +} + +func (_this IntermediateKeyWrapping) Get_() Data_IntermediateKeyWrapping_ { + return _this.Data_IntermediateKeyWrapping_ +} + +type Data_IntermediateKeyWrapping_ interface { + isIntermediateKeyWrapping() +} + +type CompanionStruct_IntermediateKeyWrapping_ struct { +} + +var Companion_IntermediateKeyWrapping_ = CompanionStruct_IntermediateKeyWrapping_{} + +type IntermediateKeyWrapping_IntermediateKeyWrapping struct { + KeyEncryptionKeyKdf DerivationAlgorithm + MacKeyKdf DerivationAlgorithm + PdkEncryptAlgorithm Encrypt +} + +func (IntermediateKeyWrapping_IntermediateKeyWrapping) isIntermediateKeyWrapping() {} + +func (CompanionStruct_IntermediateKeyWrapping_) Create_IntermediateKeyWrapping_(KeyEncryptionKeyKdf DerivationAlgorithm, MacKeyKdf DerivationAlgorithm, PdkEncryptAlgorithm Encrypt) IntermediateKeyWrapping { + return IntermediateKeyWrapping{IntermediateKeyWrapping_IntermediateKeyWrapping{KeyEncryptionKeyKdf, MacKeyKdf, PdkEncryptAlgorithm}} +} + +func (_this IntermediateKeyWrapping) Is_IntermediateKeyWrapping() bool { + _, ok := _this.Get_().(IntermediateKeyWrapping_IntermediateKeyWrapping) + return ok +} + +func (CompanionStruct_IntermediateKeyWrapping_) Default() IntermediateKeyWrapping { + return Companion_IntermediateKeyWrapping_.Create_IntermediateKeyWrapping_(Companion_DerivationAlgorithm_.Default(), Companion_DerivationAlgorithm_.Default(), Companion_Encrypt_.Default()) +} + +func (_this IntermediateKeyWrapping) Dtor_keyEncryptionKeyKdf() DerivationAlgorithm { + return _this.Get_().(IntermediateKeyWrapping_IntermediateKeyWrapping).KeyEncryptionKeyKdf +} + +func (_this IntermediateKeyWrapping) Dtor_macKeyKdf() DerivationAlgorithm { + return _this.Get_().(IntermediateKeyWrapping_IntermediateKeyWrapping).MacKeyKdf +} + +func (_this IntermediateKeyWrapping) Dtor_pdkEncryptAlgorithm() Encrypt { + return _this.Get_().(IntermediateKeyWrapping_IntermediateKeyWrapping).PdkEncryptAlgorithm +} + +func (_this IntermediateKeyWrapping) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case IntermediateKeyWrapping_IntermediateKeyWrapping: + { + return "AwsCryptographyMaterialProvidersTypes.IntermediateKeyWrapping.IntermediateKeyWrapping" + "(" + _dafny.String(data.KeyEncryptionKeyKdf) + ", " + _dafny.String(data.MacKeyKdf) + ", " + _dafny.String(data.PdkEncryptAlgorithm) + ")" + } + default: + { + return "" + } + } +} + +func (_this IntermediateKeyWrapping) Equals(other IntermediateKeyWrapping) bool { + switch data1 := _this.Get_().(type) { + case IntermediateKeyWrapping_IntermediateKeyWrapping: + { + data2, ok := other.Get_().(IntermediateKeyWrapping_IntermediateKeyWrapping) + return ok && data1.KeyEncryptionKeyKdf.Equals(data2.KeyEncryptionKeyKdf) && data1.MacKeyKdf.Equals(data2.MacKeyKdf) && data1.PdkEncryptAlgorithm.Equals(data2.PdkEncryptAlgorithm) + } + default: + { + return false // unexpected + } + } +} + +func (_this IntermediateKeyWrapping) EqualsGeneric(other interface{}) bool { + typed, ok := other.(IntermediateKeyWrapping) + return ok && _this.Equals(typed) +} + +func Type_IntermediateKeyWrapping_() _dafny.TypeDescriptor { + return type_IntermediateKeyWrapping_{} +} + +type type_IntermediateKeyWrapping_ struct { +} + +func (_this type_IntermediateKeyWrapping_) Default() interface{} { + return Companion_IntermediateKeyWrapping_.Default() +} + +func (_this type_IntermediateKeyWrapping_) String() string { + return "AwsCryptographyMaterialProvidersTypes.IntermediateKeyWrapping" +} +func (_this IntermediateKeyWrapping) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = IntermediateKeyWrapping{} + +// End of datatype IntermediateKeyWrapping + +// Definition of datatype KeyAgreementScheme +type KeyAgreementScheme struct { + Data_KeyAgreementScheme_ +} + +func (_this KeyAgreementScheme) Get_() Data_KeyAgreementScheme_ { + return _this.Data_KeyAgreementScheme_ +} + +type Data_KeyAgreementScheme_ interface { + isKeyAgreementScheme() +} + +type CompanionStruct_KeyAgreementScheme_ struct { +} + +var Companion_KeyAgreementScheme_ = CompanionStruct_KeyAgreementScheme_{} + +type KeyAgreementScheme_StaticConfiguration struct { + StaticConfiguration StaticConfigurations +} + +func (KeyAgreementScheme_StaticConfiguration) isKeyAgreementScheme() {} + +func (CompanionStruct_KeyAgreementScheme_) Create_StaticConfiguration_(StaticConfiguration StaticConfigurations) KeyAgreementScheme { + return KeyAgreementScheme{KeyAgreementScheme_StaticConfiguration{StaticConfiguration}} +} + +func (_this KeyAgreementScheme) Is_StaticConfiguration() bool { + _, ok := _this.Get_().(KeyAgreementScheme_StaticConfiguration) + return ok +} + +func (CompanionStruct_KeyAgreementScheme_) Default() KeyAgreementScheme { + return Companion_KeyAgreementScheme_.Create_StaticConfiguration_(Companion_StaticConfigurations_.Default()) +} + +func (_this KeyAgreementScheme) Dtor_StaticConfiguration() StaticConfigurations { + return _this.Get_().(KeyAgreementScheme_StaticConfiguration).StaticConfiguration +} + +func (_this KeyAgreementScheme) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case KeyAgreementScheme_StaticConfiguration: + { + return "AwsCryptographyMaterialProvidersTypes.KeyAgreementScheme.StaticConfiguration" + "(" + _dafny.String(data.StaticConfiguration) + ")" + } + default: + { + return "" + } + } +} + +func (_this KeyAgreementScheme) Equals(other KeyAgreementScheme) bool { + switch data1 := _this.Get_().(type) { + case KeyAgreementScheme_StaticConfiguration: + { + data2, ok := other.Get_().(KeyAgreementScheme_StaticConfiguration) + return ok && data1.StaticConfiguration.Equals(data2.StaticConfiguration) + } + default: + { + return false // unexpected + } + } +} + +func (_this KeyAgreementScheme) EqualsGeneric(other interface{}) bool { + typed, ok := other.(KeyAgreementScheme) + return ok && _this.Equals(typed) +} + +func Type_KeyAgreementScheme_() _dafny.TypeDescriptor { + return type_KeyAgreementScheme_{} +} + +type type_KeyAgreementScheme_ struct { +} + +func (_this type_KeyAgreementScheme_) Default() interface{} { + return Companion_KeyAgreementScheme_.Default() +} + +func (_this type_KeyAgreementScheme_) String() string { + return "AwsCryptographyMaterialProvidersTypes.KeyAgreementScheme" +} +func (_this KeyAgreementScheme) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = KeyAgreementScheme{} + +// End of datatype KeyAgreementScheme + +// Definition of class IKeyringCallHistory +type IKeyringCallHistory struct { + dummy byte +} + +func New_IKeyringCallHistory_() *IKeyringCallHistory { + _this := IKeyringCallHistory{} + + return &_this +} + +type CompanionStruct_IKeyringCallHistory_ struct { +} + +var Companion_IKeyringCallHistory_ = CompanionStruct_IKeyringCallHistory_{} + +func (_this *IKeyringCallHistory) Equals(other *IKeyringCallHistory) bool { + return _this == other +} + +func (_this *IKeyringCallHistory) EqualsGeneric(x interface{}) bool { + other, ok := x.(*IKeyringCallHistory) + return ok && _this.Equals(other) +} + +func (*IKeyringCallHistory) String() string { + return "AwsCryptographyMaterialProvidersTypes.IKeyringCallHistory" +} + +func Type_IKeyringCallHistory_() _dafny.TypeDescriptor { + return type_IKeyringCallHistory_{} +} + +type type_IKeyringCallHistory_ struct { +} + +func (_this type_IKeyringCallHistory_) Default() interface{} { + return (*IKeyringCallHistory)(nil) +} + +func (_this type_IKeyringCallHistory_) String() string { + return "AwsCryptographyMaterialProvidersTypes.IKeyringCallHistory" +} +func (_this *IKeyringCallHistory) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = &IKeyringCallHistory{} + +// End of class IKeyringCallHistory + +// Definition of trait IKeyring +type IKeyring interface { + String() string + OnEncrypt(input OnEncryptInput) m_Wrappers.Result + OnEncrypt_k(input OnEncryptInput) m_Wrappers.Result + OnDecrypt(input OnDecryptInput) m_Wrappers.Result + OnDecrypt_k(input OnDecryptInput) m_Wrappers.Result +} + +func (_static *CompanionStruct_IKeyring_) OnEncrypt(_this IKeyring, input OnEncryptInput) m_Wrappers.Result { + { + var output m_Wrappers.Result = m_Wrappers.Result{} + _ = output + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = (_this).OnEncrypt_k(input) + output = _out0 + return output + } +} +func (_static *CompanionStruct_IKeyring_) OnDecrypt(_this IKeyring, input OnDecryptInput) m_Wrappers.Result { + { + var output m_Wrappers.Result = m_Wrappers.Result{} + _ = output + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = (_this).OnDecrypt_k(input) + output = _out0 + return output + } +} + +type CompanionStruct_IKeyring_ struct { + TraitID_ *_dafny.TraitID +} + +var Companion_IKeyring_ = CompanionStruct_IKeyring_{ + TraitID_: &_dafny.TraitID{}, +} + +func (CompanionStruct_IKeyring_) CastTo_(x interface{}) IKeyring { + var t IKeyring + t, _ = x.(IKeyring) + return t +} + +// End of trait IKeyring + +// Definition of datatype KmsEcdhStaticConfigurations +type KmsEcdhStaticConfigurations struct { + Data_KmsEcdhStaticConfigurations_ +} + +func (_this KmsEcdhStaticConfigurations) Get_() Data_KmsEcdhStaticConfigurations_ { + return _this.Data_KmsEcdhStaticConfigurations_ +} + +type Data_KmsEcdhStaticConfigurations_ interface { + isKmsEcdhStaticConfigurations() +} + +type CompanionStruct_KmsEcdhStaticConfigurations_ struct { +} + +var Companion_KmsEcdhStaticConfigurations_ = CompanionStruct_KmsEcdhStaticConfigurations_{} + +type KmsEcdhStaticConfigurations_KmsPublicKeyDiscovery struct { + KmsPublicKeyDiscovery KmsPublicKeyDiscoveryInput +} + +func (KmsEcdhStaticConfigurations_KmsPublicKeyDiscovery) isKmsEcdhStaticConfigurations() {} + +func (CompanionStruct_KmsEcdhStaticConfigurations_) Create_KmsPublicKeyDiscovery_(KmsPublicKeyDiscovery KmsPublicKeyDiscoveryInput) KmsEcdhStaticConfigurations { + return KmsEcdhStaticConfigurations{KmsEcdhStaticConfigurations_KmsPublicKeyDiscovery{KmsPublicKeyDiscovery}} +} + +func (_this KmsEcdhStaticConfigurations) Is_KmsPublicKeyDiscovery() bool { + _, ok := _this.Get_().(KmsEcdhStaticConfigurations_KmsPublicKeyDiscovery) + return ok +} + +type KmsEcdhStaticConfigurations_KmsPrivateKeyToStaticPublicKey struct { + KmsPrivateKeyToStaticPublicKey KmsPrivateKeyToStaticPublicKeyInput +} + +func (KmsEcdhStaticConfigurations_KmsPrivateKeyToStaticPublicKey) isKmsEcdhStaticConfigurations() {} + +func (CompanionStruct_KmsEcdhStaticConfigurations_) Create_KmsPrivateKeyToStaticPublicKey_(KmsPrivateKeyToStaticPublicKey KmsPrivateKeyToStaticPublicKeyInput) KmsEcdhStaticConfigurations { + return KmsEcdhStaticConfigurations{KmsEcdhStaticConfigurations_KmsPrivateKeyToStaticPublicKey{KmsPrivateKeyToStaticPublicKey}} +} + +func (_this KmsEcdhStaticConfigurations) Is_KmsPrivateKeyToStaticPublicKey() bool { + _, ok := _this.Get_().(KmsEcdhStaticConfigurations_KmsPrivateKeyToStaticPublicKey) + return ok +} + +func (CompanionStruct_KmsEcdhStaticConfigurations_) Default() KmsEcdhStaticConfigurations { + return Companion_KmsEcdhStaticConfigurations_.Create_KmsPublicKeyDiscovery_(Companion_KmsPublicKeyDiscoveryInput_.Default()) +} + +func (_this KmsEcdhStaticConfigurations) Dtor_KmsPublicKeyDiscovery() KmsPublicKeyDiscoveryInput { + return _this.Get_().(KmsEcdhStaticConfigurations_KmsPublicKeyDiscovery).KmsPublicKeyDiscovery +} + +func (_this KmsEcdhStaticConfigurations) Dtor_KmsPrivateKeyToStaticPublicKey() KmsPrivateKeyToStaticPublicKeyInput { + return _this.Get_().(KmsEcdhStaticConfigurations_KmsPrivateKeyToStaticPublicKey).KmsPrivateKeyToStaticPublicKey +} + +func (_this KmsEcdhStaticConfigurations) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case KmsEcdhStaticConfigurations_KmsPublicKeyDiscovery: + { + return "AwsCryptographyMaterialProvidersTypes.KmsEcdhStaticConfigurations.KmsPublicKeyDiscovery" + "(" + _dafny.String(data.KmsPublicKeyDiscovery) + ")" + } + case KmsEcdhStaticConfigurations_KmsPrivateKeyToStaticPublicKey: + { + return "AwsCryptographyMaterialProvidersTypes.KmsEcdhStaticConfigurations.KmsPrivateKeyToStaticPublicKey" + "(" + _dafny.String(data.KmsPrivateKeyToStaticPublicKey) + ")" + } + default: + { + return "" + } + } +} + +func (_this KmsEcdhStaticConfigurations) Equals(other KmsEcdhStaticConfigurations) bool { + switch data1 := _this.Get_().(type) { + case KmsEcdhStaticConfigurations_KmsPublicKeyDiscovery: + { + data2, ok := other.Get_().(KmsEcdhStaticConfigurations_KmsPublicKeyDiscovery) + return ok && data1.KmsPublicKeyDiscovery.Equals(data2.KmsPublicKeyDiscovery) + } + case KmsEcdhStaticConfigurations_KmsPrivateKeyToStaticPublicKey: + { + data2, ok := other.Get_().(KmsEcdhStaticConfigurations_KmsPrivateKeyToStaticPublicKey) + return ok && data1.KmsPrivateKeyToStaticPublicKey.Equals(data2.KmsPrivateKeyToStaticPublicKey) + } + default: + { + return false // unexpected + } + } +} + +func (_this KmsEcdhStaticConfigurations) EqualsGeneric(other interface{}) bool { + typed, ok := other.(KmsEcdhStaticConfigurations) + return ok && _this.Equals(typed) +} + +func Type_KmsEcdhStaticConfigurations_() _dafny.TypeDescriptor { + return type_KmsEcdhStaticConfigurations_{} +} + +type type_KmsEcdhStaticConfigurations_ struct { +} + +func (_this type_KmsEcdhStaticConfigurations_) Default() interface{} { + return Companion_KmsEcdhStaticConfigurations_.Default() +} + +func (_this type_KmsEcdhStaticConfigurations_) String() string { + return "AwsCryptographyMaterialProvidersTypes.KmsEcdhStaticConfigurations" +} +func (_this KmsEcdhStaticConfigurations) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = KmsEcdhStaticConfigurations{} + +// End of datatype KmsEcdhStaticConfigurations + +// Definition of datatype KmsPrivateKeyToStaticPublicKeyInput +type KmsPrivateKeyToStaticPublicKeyInput struct { + Data_KmsPrivateKeyToStaticPublicKeyInput_ +} + +func (_this KmsPrivateKeyToStaticPublicKeyInput) Get_() Data_KmsPrivateKeyToStaticPublicKeyInput_ { + return _this.Data_KmsPrivateKeyToStaticPublicKeyInput_ +} + +type Data_KmsPrivateKeyToStaticPublicKeyInput_ interface { + isKmsPrivateKeyToStaticPublicKeyInput() +} + +type CompanionStruct_KmsPrivateKeyToStaticPublicKeyInput_ struct { +} + +var Companion_KmsPrivateKeyToStaticPublicKeyInput_ = CompanionStruct_KmsPrivateKeyToStaticPublicKeyInput_{} + +type KmsPrivateKeyToStaticPublicKeyInput_KmsPrivateKeyToStaticPublicKeyInput struct { + SenderKmsIdentifier _dafny.Sequence + SenderPublicKey m_Wrappers.Option + RecipientPublicKey _dafny.Sequence +} + +func (KmsPrivateKeyToStaticPublicKeyInput_KmsPrivateKeyToStaticPublicKeyInput) isKmsPrivateKeyToStaticPublicKeyInput() { +} + +func (CompanionStruct_KmsPrivateKeyToStaticPublicKeyInput_) Create_KmsPrivateKeyToStaticPublicKeyInput_(SenderKmsIdentifier _dafny.Sequence, SenderPublicKey m_Wrappers.Option, RecipientPublicKey _dafny.Sequence) KmsPrivateKeyToStaticPublicKeyInput { + return KmsPrivateKeyToStaticPublicKeyInput{KmsPrivateKeyToStaticPublicKeyInput_KmsPrivateKeyToStaticPublicKeyInput{SenderKmsIdentifier, SenderPublicKey, RecipientPublicKey}} +} + +func (_this KmsPrivateKeyToStaticPublicKeyInput) Is_KmsPrivateKeyToStaticPublicKeyInput() bool { + _, ok := _this.Get_().(KmsPrivateKeyToStaticPublicKeyInput_KmsPrivateKeyToStaticPublicKeyInput) + return ok +} + +func (CompanionStruct_KmsPrivateKeyToStaticPublicKeyInput_) Default() KmsPrivateKeyToStaticPublicKeyInput { + return Companion_KmsPrivateKeyToStaticPublicKeyInput_.Create_KmsPrivateKeyToStaticPublicKeyInput_(_dafny.EmptySeq.SetString(), m_Wrappers.Companion_Option_.Default(), _dafny.EmptySeq) +} + +func (_this KmsPrivateKeyToStaticPublicKeyInput) Dtor_senderKmsIdentifier() _dafny.Sequence { + return _this.Get_().(KmsPrivateKeyToStaticPublicKeyInput_KmsPrivateKeyToStaticPublicKeyInput).SenderKmsIdentifier +} + +func (_this KmsPrivateKeyToStaticPublicKeyInput) Dtor_senderPublicKey() m_Wrappers.Option { + return _this.Get_().(KmsPrivateKeyToStaticPublicKeyInput_KmsPrivateKeyToStaticPublicKeyInput).SenderPublicKey +} + +func (_this KmsPrivateKeyToStaticPublicKeyInput) Dtor_recipientPublicKey() _dafny.Sequence { + return _this.Get_().(KmsPrivateKeyToStaticPublicKeyInput_KmsPrivateKeyToStaticPublicKeyInput).RecipientPublicKey +} + +func (_this KmsPrivateKeyToStaticPublicKeyInput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case KmsPrivateKeyToStaticPublicKeyInput_KmsPrivateKeyToStaticPublicKeyInput: + { + return "AwsCryptographyMaterialProvidersTypes.KmsPrivateKeyToStaticPublicKeyInput.KmsPrivateKeyToStaticPublicKeyInput" + "(" + _dafny.String(data.SenderKmsIdentifier) + ", " + _dafny.String(data.SenderPublicKey) + ", " + _dafny.String(data.RecipientPublicKey) + ")" + } + default: + { + return "" + } + } +} + +func (_this KmsPrivateKeyToStaticPublicKeyInput) Equals(other KmsPrivateKeyToStaticPublicKeyInput) bool { + switch data1 := _this.Get_().(type) { + case KmsPrivateKeyToStaticPublicKeyInput_KmsPrivateKeyToStaticPublicKeyInput: + { + data2, ok := other.Get_().(KmsPrivateKeyToStaticPublicKeyInput_KmsPrivateKeyToStaticPublicKeyInput) + return ok && data1.SenderKmsIdentifier.Equals(data2.SenderKmsIdentifier) && data1.SenderPublicKey.Equals(data2.SenderPublicKey) && data1.RecipientPublicKey.Equals(data2.RecipientPublicKey) + } + default: + { + return false // unexpected + } + } +} + +func (_this KmsPrivateKeyToStaticPublicKeyInput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(KmsPrivateKeyToStaticPublicKeyInput) + return ok && _this.Equals(typed) +} + +func Type_KmsPrivateKeyToStaticPublicKeyInput_() _dafny.TypeDescriptor { + return type_KmsPrivateKeyToStaticPublicKeyInput_{} +} + +type type_KmsPrivateKeyToStaticPublicKeyInput_ struct { +} + +func (_this type_KmsPrivateKeyToStaticPublicKeyInput_) Default() interface{} { + return Companion_KmsPrivateKeyToStaticPublicKeyInput_.Default() +} + +func (_this type_KmsPrivateKeyToStaticPublicKeyInput_) String() string { + return "AwsCryptographyMaterialProvidersTypes.KmsPrivateKeyToStaticPublicKeyInput" +} +func (_this KmsPrivateKeyToStaticPublicKeyInput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = KmsPrivateKeyToStaticPublicKeyInput{} + +// End of datatype KmsPrivateKeyToStaticPublicKeyInput + +// Definition of datatype KmsPublicKeyDiscoveryInput +type KmsPublicKeyDiscoveryInput struct { + Data_KmsPublicKeyDiscoveryInput_ +} + +func (_this KmsPublicKeyDiscoveryInput) Get_() Data_KmsPublicKeyDiscoveryInput_ { + return _this.Data_KmsPublicKeyDiscoveryInput_ +} + +type Data_KmsPublicKeyDiscoveryInput_ interface { + isKmsPublicKeyDiscoveryInput() +} + +type CompanionStruct_KmsPublicKeyDiscoveryInput_ struct { +} + +var Companion_KmsPublicKeyDiscoveryInput_ = CompanionStruct_KmsPublicKeyDiscoveryInput_{} + +type KmsPublicKeyDiscoveryInput_KmsPublicKeyDiscoveryInput struct { + RecipientKmsIdentifier _dafny.Sequence +} + +func (KmsPublicKeyDiscoveryInput_KmsPublicKeyDiscoveryInput) isKmsPublicKeyDiscoveryInput() {} + +func (CompanionStruct_KmsPublicKeyDiscoveryInput_) Create_KmsPublicKeyDiscoveryInput_(RecipientKmsIdentifier _dafny.Sequence) KmsPublicKeyDiscoveryInput { + return KmsPublicKeyDiscoveryInput{KmsPublicKeyDiscoveryInput_KmsPublicKeyDiscoveryInput{RecipientKmsIdentifier}} +} + +func (_this KmsPublicKeyDiscoveryInput) Is_KmsPublicKeyDiscoveryInput() bool { + _, ok := _this.Get_().(KmsPublicKeyDiscoveryInput_KmsPublicKeyDiscoveryInput) + return ok +} + +func (CompanionStruct_KmsPublicKeyDiscoveryInput_) Default() KmsPublicKeyDiscoveryInput { + return Companion_KmsPublicKeyDiscoveryInput_.Create_KmsPublicKeyDiscoveryInput_(_dafny.EmptySeq.SetString()) +} + +func (_this KmsPublicKeyDiscoveryInput) Dtor_recipientKmsIdentifier() _dafny.Sequence { + return _this.Get_().(KmsPublicKeyDiscoveryInput_KmsPublicKeyDiscoveryInput).RecipientKmsIdentifier +} + +func (_this KmsPublicKeyDiscoveryInput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case KmsPublicKeyDiscoveryInput_KmsPublicKeyDiscoveryInput: + { + return "AwsCryptographyMaterialProvidersTypes.KmsPublicKeyDiscoveryInput.KmsPublicKeyDiscoveryInput" + "(" + _dafny.String(data.RecipientKmsIdentifier) + ")" + } + default: + { + return "" + } + } +} + +func (_this KmsPublicKeyDiscoveryInput) Equals(other KmsPublicKeyDiscoveryInput) bool { + switch data1 := _this.Get_().(type) { + case KmsPublicKeyDiscoveryInput_KmsPublicKeyDiscoveryInput: + { + data2, ok := other.Get_().(KmsPublicKeyDiscoveryInput_KmsPublicKeyDiscoveryInput) + return ok && data1.RecipientKmsIdentifier.Equals(data2.RecipientKmsIdentifier) + } + default: + { + return false // unexpected + } + } +} + +func (_this KmsPublicKeyDiscoveryInput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(KmsPublicKeyDiscoveryInput) + return ok && _this.Equals(typed) +} + +func Type_KmsPublicKeyDiscoveryInput_() _dafny.TypeDescriptor { + return type_KmsPublicKeyDiscoveryInput_{} +} + +type type_KmsPublicKeyDiscoveryInput_ struct { +} + +func (_this type_KmsPublicKeyDiscoveryInput_) Default() interface{} { + return Companion_KmsPublicKeyDiscoveryInput_.Default() +} + +func (_this type_KmsPublicKeyDiscoveryInput_) String() string { + return "AwsCryptographyMaterialProvidersTypes.KmsPublicKeyDiscoveryInput" +} +func (_this KmsPublicKeyDiscoveryInput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = KmsPublicKeyDiscoveryInput{} + +// End of datatype KmsPublicKeyDiscoveryInput + +// Definition of datatype MaterialProvidersConfig +type MaterialProvidersConfig struct { + Data_MaterialProvidersConfig_ +} + +func (_this MaterialProvidersConfig) Get_() Data_MaterialProvidersConfig_ { + return _this.Data_MaterialProvidersConfig_ +} + +type Data_MaterialProvidersConfig_ interface { + isMaterialProvidersConfig() +} + +type CompanionStruct_MaterialProvidersConfig_ struct { +} + +var Companion_MaterialProvidersConfig_ = CompanionStruct_MaterialProvidersConfig_{} + +type MaterialProvidersConfig_MaterialProvidersConfig struct { +} + +func (MaterialProvidersConfig_MaterialProvidersConfig) isMaterialProvidersConfig() {} + +func (CompanionStruct_MaterialProvidersConfig_) Create_MaterialProvidersConfig_() MaterialProvidersConfig { + return MaterialProvidersConfig{MaterialProvidersConfig_MaterialProvidersConfig{}} +} + +func (_this MaterialProvidersConfig) Is_MaterialProvidersConfig() bool { + _, ok := _this.Get_().(MaterialProvidersConfig_MaterialProvidersConfig) + return ok +} + +func (CompanionStruct_MaterialProvidersConfig_) Default() MaterialProvidersConfig { + return Companion_MaterialProvidersConfig_.Create_MaterialProvidersConfig_() +} + +func (_ CompanionStruct_MaterialProvidersConfig_) AllSingletonConstructors() _dafny.Iterator { + i := -1 + return func() (interface{}, bool) { + i++ + switch i { + case 0: + return Companion_MaterialProvidersConfig_.Create_MaterialProvidersConfig_(), true + default: + return MaterialProvidersConfig{}, false + } + } +} + +func (_this MaterialProvidersConfig) String() string { + switch _this.Get_().(type) { + case nil: + return "null" + case MaterialProvidersConfig_MaterialProvidersConfig: + { + return "AwsCryptographyMaterialProvidersTypes.MaterialProvidersConfig.MaterialProvidersConfig" + } + default: + { + return "" + } + } +} + +func (_this MaterialProvidersConfig) Equals(other MaterialProvidersConfig) bool { + switch _this.Get_().(type) { + case MaterialProvidersConfig_MaterialProvidersConfig: + { + _, ok := other.Get_().(MaterialProvidersConfig_MaterialProvidersConfig) + return ok + } + default: + { + return false // unexpected + } + } +} + +func (_this MaterialProvidersConfig) EqualsGeneric(other interface{}) bool { + typed, ok := other.(MaterialProvidersConfig) + return ok && _this.Equals(typed) +} + +func Type_MaterialProvidersConfig_() _dafny.TypeDescriptor { + return type_MaterialProvidersConfig_{} +} + +type type_MaterialProvidersConfig_ struct { +} + +func (_this type_MaterialProvidersConfig_) Default() interface{} { + return Companion_MaterialProvidersConfig_.Default() +} + +func (_this type_MaterialProvidersConfig_) String() string { + return "AwsCryptographyMaterialProvidersTypes.MaterialProvidersConfig" +} +func (_this MaterialProvidersConfig) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = MaterialProvidersConfig{} + +// End of datatype MaterialProvidersConfig + +// Definition of datatype Materials +type Materials struct { + Data_Materials_ +} + +func (_this Materials) Get_() Data_Materials_ { + return _this.Data_Materials_ +} + +type Data_Materials_ interface { + isMaterials() +} + +type CompanionStruct_Materials_ struct { +} + +var Companion_Materials_ = CompanionStruct_Materials_{} + +type Materials_Encryption struct { + Encryption EncryptionMaterials +} + +func (Materials_Encryption) isMaterials() {} + +func (CompanionStruct_Materials_) Create_Encryption_(Encryption EncryptionMaterials) Materials { + return Materials{Materials_Encryption{Encryption}} +} + +func (_this Materials) Is_Encryption() bool { + _, ok := _this.Get_().(Materials_Encryption) + return ok +} + +type Materials_Decryption struct { + Decryption DecryptionMaterials +} + +func (Materials_Decryption) isMaterials() {} + +func (CompanionStruct_Materials_) Create_Decryption_(Decryption DecryptionMaterials) Materials { + return Materials{Materials_Decryption{Decryption}} +} + +func (_this Materials) Is_Decryption() bool { + _, ok := _this.Get_().(Materials_Decryption) + return ok +} + +type Materials_BranchKey struct { + BranchKey m_AwsCryptographyKeyStoreTypes.BranchKeyMaterials +} + +func (Materials_BranchKey) isMaterials() {} + +func (CompanionStruct_Materials_) Create_BranchKey_(BranchKey m_AwsCryptographyKeyStoreTypes.BranchKeyMaterials) Materials { + return Materials{Materials_BranchKey{BranchKey}} +} + +func (_this Materials) Is_BranchKey() bool { + _, ok := _this.Get_().(Materials_BranchKey) + return ok +} + +type Materials_BeaconKey struct { + BeaconKey m_AwsCryptographyKeyStoreTypes.BeaconKeyMaterials +} + +func (Materials_BeaconKey) isMaterials() {} + +func (CompanionStruct_Materials_) Create_BeaconKey_(BeaconKey m_AwsCryptographyKeyStoreTypes.BeaconKeyMaterials) Materials { + return Materials{Materials_BeaconKey{BeaconKey}} +} + +func (_this Materials) Is_BeaconKey() bool { + _, ok := _this.Get_().(Materials_BeaconKey) + return ok +} + +func (CompanionStruct_Materials_) Default() Materials { + return Companion_Materials_.Create_Encryption_(Companion_EncryptionMaterials_.Default()) +} + +func (_this Materials) Dtor_Encryption() EncryptionMaterials { + return _this.Get_().(Materials_Encryption).Encryption +} + +func (_this Materials) Dtor_Decryption() DecryptionMaterials { + return _this.Get_().(Materials_Decryption).Decryption +} + +func (_this Materials) Dtor_BranchKey() m_AwsCryptographyKeyStoreTypes.BranchKeyMaterials { + return _this.Get_().(Materials_BranchKey).BranchKey +} + +func (_this Materials) Dtor_BeaconKey() m_AwsCryptographyKeyStoreTypes.BeaconKeyMaterials { + return _this.Get_().(Materials_BeaconKey).BeaconKey +} + +func (_this Materials) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case Materials_Encryption: + { + return "AwsCryptographyMaterialProvidersTypes.Materials.Encryption" + "(" + _dafny.String(data.Encryption) + ")" + } + case Materials_Decryption: + { + return "AwsCryptographyMaterialProvidersTypes.Materials.Decryption" + "(" + _dafny.String(data.Decryption) + ")" + } + case Materials_BranchKey: + { + return "AwsCryptographyMaterialProvidersTypes.Materials.BranchKey" + "(" + _dafny.String(data.BranchKey) + ")" + } + case Materials_BeaconKey: + { + return "AwsCryptographyMaterialProvidersTypes.Materials.BeaconKey" + "(" + _dafny.String(data.BeaconKey) + ")" + } + default: + { + return "" + } + } +} + +func (_this Materials) Equals(other Materials) bool { + switch data1 := _this.Get_().(type) { + case Materials_Encryption: + { + data2, ok := other.Get_().(Materials_Encryption) + return ok && data1.Encryption.Equals(data2.Encryption) + } + case Materials_Decryption: + { + data2, ok := other.Get_().(Materials_Decryption) + return ok && data1.Decryption.Equals(data2.Decryption) + } + case Materials_BranchKey: + { + data2, ok := other.Get_().(Materials_BranchKey) + return ok && data1.BranchKey.Equals(data2.BranchKey) + } + case Materials_BeaconKey: + { + data2, ok := other.Get_().(Materials_BeaconKey) + return ok && data1.BeaconKey.Equals(data2.BeaconKey) + } + default: + { + return false // unexpected + } + } +} + +func (_this Materials) EqualsGeneric(other interface{}) bool { + typed, ok := other.(Materials) + return ok && _this.Equals(typed) +} + +func Type_Materials_() _dafny.TypeDescriptor { + return type_Materials_{} +} + +type type_Materials_ struct { +} + +func (_this type_Materials_) Default() interface{} { + return Companion_Materials_.Default() +} + +func (_this type_Materials_) String() string { + return "AwsCryptographyMaterialProvidersTypes.Materials" +} +func (_this Materials) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = Materials{} + +// End of datatype Materials + +// Definition of datatype MultiThreadedCache +type MultiThreadedCache struct { + Data_MultiThreadedCache_ +} + +func (_this MultiThreadedCache) Get_() Data_MultiThreadedCache_ { + return _this.Data_MultiThreadedCache_ +} + +type Data_MultiThreadedCache_ interface { + isMultiThreadedCache() +} + +type CompanionStruct_MultiThreadedCache_ struct { +} + +var Companion_MultiThreadedCache_ = CompanionStruct_MultiThreadedCache_{} + +type MultiThreadedCache_MultiThreadedCache struct { + EntryCapacity int32 + EntryPruningTailSize m_Wrappers.Option +} + +func (MultiThreadedCache_MultiThreadedCache) isMultiThreadedCache() {} + +func (CompanionStruct_MultiThreadedCache_) Create_MultiThreadedCache_(EntryCapacity int32, EntryPruningTailSize m_Wrappers.Option) MultiThreadedCache { + return MultiThreadedCache{MultiThreadedCache_MultiThreadedCache{EntryCapacity, EntryPruningTailSize}} +} + +func (_this MultiThreadedCache) Is_MultiThreadedCache() bool { + _, ok := _this.Get_().(MultiThreadedCache_MultiThreadedCache) + return ok +} + +func (CompanionStruct_MultiThreadedCache_) Default() MultiThreadedCache { + return Companion_MultiThreadedCache_.Create_MultiThreadedCache_(int32(0), m_Wrappers.Companion_Option_.Default()) +} + +func (_this MultiThreadedCache) Dtor_entryCapacity() int32 { + return _this.Get_().(MultiThreadedCache_MultiThreadedCache).EntryCapacity +} + +func (_this MultiThreadedCache) Dtor_entryPruningTailSize() m_Wrappers.Option { + return _this.Get_().(MultiThreadedCache_MultiThreadedCache).EntryPruningTailSize +} + +func (_this MultiThreadedCache) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case MultiThreadedCache_MultiThreadedCache: + { + return "AwsCryptographyMaterialProvidersTypes.MultiThreadedCache.MultiThreadedCache" + "(" + _dafny.String(data.EntryCapacity) + ", " + _dafny.String(data.EntryPruningTailSize) + ")" + } + default: + { + return "" + } + } +} + +func (_this MultiThreadedCache) Equals(other MultiThreadedCache) bool { + switch data1 := _this.Get_().(type) { + case MultiThreadedCache_MultiThreadedCache: + { + data2, ok := other.Get_().(MultiThreadedCache_MultiThreadedCache) + return ok && data1.EntryCapacity == data2.EntryCapacity && data1.EntryPruningTailSize.Equals(data2.EntryPruningTailSize) + } + default: + { + return false // unexpected + } + } +} + +func (_this MultiThreadedCache) EqualsGeneric(other interface{}) bool { + typed, ok := other.(MultiThreadedCache) + return ok && _this.Equals(typed) +} + +func Type_MultiThreadedCache_() _dafny.TypeDescriptor { + return type_MultiThreadedCache_{} +} + +type type_MultiThreadedCache_ struct { +} + +func (_this type_MultiThreadedCache_) Default() interface{} { + return Companion_MultiThreadedCache_.Default() +} + +func (_this type_MultiThreadedCache_) String() string { + return "AwsCryptographyMaterialProvidersTypes.MultiThreadedCache" +} +func (_this MultiThreadedCache) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = MultiThreadedCache{} + +// End of datatype MultiThreadedCache + +// Definition of datatype NoCache +type NoCache struct { + Data_NoCache_ +} + +func (_this NoCache) Get_() Data_NoCache_ { + return _this.Data_NoCache_ +} + +type Data_NoCache_ interface { + isNoCache() +} + +type CompanionStruct_NoCache_ struct { +} + +var Companion_NoCache_ = CompanionStruct_NoCache_{} + +type NoCache_NoCache struct { +} + +func (NoCache_NoCache) isNoCache() {} + +func (CompanionStruct_NoCache_) Create_NoCache_() NoCache { + return NoCache{NoCache_NoCache{}} +} + +func (_this NoCache) Is_NoCache() bool { + _, ok := _this.Get_().(NoCache_NoCache) + return ok +} + +func (CompanionStruct_NoCache_) Default() NoCache { + return Companion_NoCache_.Create_NoCache_() +} + +func (_ CompanionStruct_NoCache_) AllSingletonConstructors() _dafny.Iterator { + i := -1 + return func() (interface{}, bool) { + i++ + switch i { + case 0: + return Companion_NoCache_.Create_NoCache_(), true + default: + return NoCache{}, false + } + } +} + +func (_this NoCache) String() string { + switch _this.Get_().(type) { + case nil: + return "null" + case NoCache_NoCache: + { + return "AwsCryptographyMaterialProvidersTypes.NoCache.NoCache" + } + default: + { + return "" + } + } +} + +func (_this NoCache) Equals(other NoCache) bool { + switch _this.Get_().(type) { + case NoCache_NoCache: + { + _, ok := other.Get_().(NoCache_NoCache) + return ok + } + default: + { + return false // unexpected + } + } +} + +func (_this NoCache) EqualsGeneric(other interface{}) bool { + typed, ok := other.(NoCache) + return ok && _this.Equals(typed) +} + +func Type_NoCache_() _dafny.TypeDescriptor { + return type_NoCache_{} +} + +type type_NoCache_ struct { +} + +func (_this type_NoCache_) Default() interface{} { + return Companion_NoCache_.Default() +} + +func (_this type_NoCache_) String() string { + return "AwsCryptographyMaterialProvidersTypes.NoCache" +} +func (_this NoCache) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = NoCache{} + +// End of datatype NoCache + +// Definition of datatype None +type None struct { + Data_None_ +} + +func (_this None) Get_() Data_None_ { + return _this.Data_None_ +} + +type Data_None_ interface { + isNone() +} + +type CompanionStruct_None_ struct { +} + +var Companion_None_ = CompanionStruct_None_{} + +type None_None struct { +} + +func (None_None) isNone() {} + +func (CompanionStruct_None_) Create_None_() None { + return None{None_None{}} +} + +func (_this None) Is_None() bool { + _, ok := _this.Get_().(None_None) + return ok +} + +func (CompanionStruct_None_) Default() None { + return Companion_None_.Create_None_() +} + +func (_ CompanionStruct_None_) AllSingletonConstructors() _dafny.Iterator { + i := -1 + return func() (interface{}, bool) { + i++ + switch i { + case 0: + return Companion_None_.Create_None_(), true + default: + return None{}, false + } + } +} + +func (_this None) String() string { + switch _this.Get_().(type) { + case nil: + return "null" + case None_None: + { + return "AwsCryptographyMaterialProvidersTypes.None.None" + } + default: + { + return "" + } + } +} + +func (_this None) Equals(other None) bool { + switch _this.Get_().(type) { + case None_None: + { + _, ok := other.Get_().(None_None) + return ok + } + default: + { + return false // unexpected + } + } +} + +func (_this None) EqualsGeneric(other interface{}) bool { + typed, ok := other.(None) + return ok && _this.Equals(typed) +} + +func Type_None_() _dafny.TypeDescriptor { + return type_None_{} +} + +type type_None_ struct { +} + +func (_this type_None_) Default() interface{} { + return Companion_None_.Default() +} + +func (_this type_None_) String() string { + return "AwsCryptographyMaterialProvidersTypes.None" +} +func (_this None) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = None{} + +// End of datatype None + +// Definition of datatype OnDecryptInput +type OnDecryptInput struct { + Data_OnDecryptInput_ +} + +func (_this OnDecryptInput) Get_() Data_OnDecryptInput_ { + return _this.Data_OnDecryptInput_ +} + +type Data_OnDecryptInput_ interface { + isOnDecryptInput() +} + +type CompanionStruct_OnDecryptInput_ struct { +} + +var Companion_OnDecryptInput_ = CompanionStruct_OnDecryptInput_{} + +type OnDecryptInput_OnDecryptInput struct { + Materials DecryptionMaterials + EncryptedDataKeys _dafny.Sequence +} + +func (OnDecryptInput_OnDecryptInput) isOnDecryptInput() {} + +func (CompanionStruct_OnDecryptInput_) Create_OnDecryptInput_(Materials DecryptionMaterials, EncryptedDataKeys _dafny.Sequence) OnDecryptInput { + return OnDecryptInput{OnDecryptInput_OnDecryptInput{Materials, EncryptedDataKeys}} +} + +func (_this OnDecryptInput) Is_OnDecryptInput() bool { + _, ok := _this.Get_().(OnDecryptInput_OnDecryptInput) + return ok +} + +func (CompanionStruct_OnDecryptInput_) Default() OnDecryptInput { + return Companion_OnDecryptInput_.Create_OnDecryptInput_(Companion_DecryptionMaterials_.Default(), _dafny.EmptySeq) +} + +func (_this OnDecryptInput) Dtor_materials() DecryptionMaterials { + return _this.Get_().(OnDecryptInput_OnDecryptInput).Materials +} + +func (_this OnDecryptInput) Dtor_encryptedDataKeys() _dafny.Sequence { + return _this.Get_().(OnDecryptInput_OnDecryptInput).EncryptedDataKeys +} + +func (_this OnDecryptInput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case OnDecryptInput_OnDecryptInput: + { + return "AwsCryptographyMaterialProvidersTypes.OnDecryptInput.OnDecryptInput" + "(" + _dafny.String(data.Materials) + ", " + _dafny.String(data.EncryptedDataKeys) + ")" + } + default: + { + return "" + } + } +} + +func (_this OnDecryptInput) Equals(other OnDecryptInput) bool { + switch data1 := _this.Get_().(type) { + case OnDecryptInput_OnDecryptInput: + { + data2, ok := other.Get_().(OnDecryptInput_OnDecryptInput) + return ok && data1.Materials.Equals(data2.Materials) && data1.EncryptedDataKeys.Equals(data2.EncryptedDataKeys) + } + default: + { + return false // unexpected + } + } +} + +func (_this OnDecryptInput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(OnDecryptInput) + return ok && _this.Equals(typed) +} + +func Type_OnDecryptInput_() _dafny.TypeDescriptor { + return type_OnDecryptInput_{} +} + +type type_OnDecryptInput_ struct { +} + +func (_this type_OnDecryptInput_) Default() interface{} { + return Companion_OnDecryptInput_.Default() +} + +func (_this type_OnDecryptInput_) String() string { + return "AwsCryptographyMaterialProvidersTypes.OnDecryptInput" +} +func (_this OnDecryptInput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = OnDecryptInput{} + +// End of datatype OnDecryptInput + +// Definition of datatype OnDecryptOutput +type OnDecryptOutput struct { + Data_OnDecryptOutput_ +} + +func (_this OnDecryptOutput) Get_() Data_OnDecryptOutput_ { + return _this.Data_OnDecryptOutput_ +} + +type Data_OnDecryptOutput_ interface { + isOnDecryptOutput() +} + +type CompanionStruct_OnDecryptOutput_ struct { +} + +var Companion_OnDecryptOutput_ = CompanionStruct_OnDecryptOutput_{} + +type OnDecryptOutput_OnDecryptOutput struct { + Materials DecryptionMaterials +} + +func (OnDecryptOutput_OnDecryptOutput) isOnDecryptOutput() {} + +func (CompanionStruct_OnDecryptOutput_) Create_OnDecryptOutput_(Materials DecryptionMaterials) OnDecryptOutput { + return OnDecryptOutput{OnDecryptOutput_OnDecryptOutput{Materials}} +} + +func (_this OnDecryptOutput) Is_OnDecryptOutput() bool { + _, ok := _this.Get_().(OnDecryptOutput_OnDecryptOutput) + return ok +} + +func (CompanionStruct_OnDecryptOutput_) Default() OnDecryptOutput { + return Companion_OnDecryptOutput_.Create_OnDecryptOutput_(Companion_DecryptionMaterials_.Default()) +} + +func (_this OnDecryptOutput) Dtor_materials() DecryptionMaterials { + return _this.Get_().(OnDecryptOutput_OnDecryptOutput).Materials +} + +func (_this OnDecryptOutput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case OnDecryptOutput_OnDecryptOutput: + { + return "AwsCryptographyMaterialProvidersTypes.OnDecryptOutput.OnDecryptOutput" + "(" + _dafny.String(data.Materials) + ")" + } + default: + { + return "" + } + } +} + +func (_this OnDecryptOutput) Equals(other OnDecryptOutput) bool { + switch data1 := _this.Get_().(type) { + case OnDecryptOutput_OnDecryptOutput: + { + data2, ok := other.Get_().(OnDecryptOutput_OnDecryptOutput) + return ok && data1.Materials.Equals(data2.Materials) + } + default: + { + return false // unexpected + } + } +} + +func (_this OnDecryptOutput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(OnDecryptOutput) + return ok && _this.Equals(typed) +} + +func Type_OnDecryptOutput_() _dafny.TypeDescriptor { + return type_OnDecryptOutput_{} +} + +type type_OnDecryptOutput_ struct { +} + +func (_this type_OnDecryptOutput_) Default() interface{} { + return Companion_OnDecryptOutput_.Default() +} + +func (_this type_OnDecryptOutput_) String() string { + return "AwsCryptographyMaterialProvidersTypes.OnDecryptOutput" +} +func (_this OnDecryptOutput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = OnDecryptOutput{} + +// End of datatype OnDecryptOutput + +// Definition of datatype OnEncryptInput +type OnEncryptInput struct { + Data_OnEncryptInput_ +} + +func (_this OnEncryptInput) Get_() Data_OnEncryptInput_ { + return _this.Data_OnEncryptInput_ +} + +type Data_OnEncryptInput_ interface { + isOnEncryptInput() +} + +type CompanionStruct_OnEncryptInput_ struct { +} + +var Companion_OnEncryptInput_ = CompanionStruct_OnEncryptInput_{} + +type OnEncryptInput_OnEncryptInput struct { + Materials EncryptionMaterials +} + +func (OnEncryptInput_OnEncryptInput) isOnEncryptInput() {} + +func (CompanionStruct_OnEncryptInput_) Create_OnEncryptInput_(Materials EncryptionMaterials) OnEncryptInput { + return OnEncryptInput{OnEncryptInput_OnEncryptInput{Materials}} +} + +func (_this OnEncryptInput) Is_OnEncryptInput() bool { + _, ok := _this.Get_().(OnEncryptInput_OnEncryptInput) + return ok +} + +func (CompanionStruct_OnEncryptInput_) Default() OnEncryptInput { + return Companion_OnEncryptInput_.Create_OnEncryptInput_(Companion_EncryptionMaterials_.Default()) +} + +func (_this OnEncryptInput) Dtor_materials() EncryptionMaterials { + return _this.Get_().(OnEncryptInput_OnEncryptInput).Materials +} + +func (_this OnEncryptInput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case OnEncryptInput_OnEncryptInput: + { + return "AwsCryptographyMaterialProvidersTypes.OnEncryptInput.OnEncryptInput" + "(" + _dafny.String(data.Materials) + ")" + } + default: + { + return "" + } + } +} + +func (_this OnEncryptInput) Equals(other OnEncryptInput) bool { + switch data1 := _this.Get_().(type) { + case OnEncryptInput_OnEncryptInput: + { + data2, ok := other.Get_().(OnEncryptInput_OnEncryptInput) + return ok && data1.Materials.Equals(data2.Materials) + } + default: + { + return false // unexpected + } + } +} + +func (_this OnEncryptInput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(OnEncryptInput) + return ok && _this.Equals(typed) +} + +func Type_OnEncryptInput_() _dafny.TypeDescriptor { + return type_OnEncryptInput_{} +} + +type type_OnEncryptInput_ struct { +} + +func (_this type_OnEncryptInput_) Default() interface{} { + return Companion_OnEncryptInput_.Default() +} + +func (_this type_OnEncryptInput_) String() string { + return "AwsCryptographyMaterialProvidersTypes.OnEncryptInput" +} +func (_this OnEncryptInput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = OnEncryptInput{} + +// End of datatype OnEncryptInput + +// Definition of datatype OnEncryptOutput +type OnEncryptOutput struct { + Data_OnEncryptOutput_ +} + +func (_this OnEncryptOutput) Get_() Data_OnEncryptOutput_ { + return _this.Data_OnEncryptOutput_ +} + +type Data_OnEncryptOutput_ interface { + isOnEncryptOutput() +} + +type CompanionStruct_OnEncryptOutput_ struct { +} + +var Companion_OnEncryptOutput_ = CompanionStruct_OnEncryptOutput_{} + +type OnEncryptOutput_OnEncryptOutput struct { + Materials EncryptionMaterials +} + +func (OnEncryptOutput_OnEncryptOutput) isOnEncryptOutput() {} + +func (CompanionStruct_OnEncryptOutput_) Create_OnEncryptOutput_(Materials EncryptionMaterials) OnEncryptOutput { + return OnEncryptOutput{OnEncryptOutput_OnEncryptOutput{Materials}} +} + +func (_this OnEncryptOutput) Is_OnEncryptOutput() bool { + _, ok := _this.Get_().(OnEncryptOutput_OnEncryptOutput) + return ok +} + +func (CompanionStruct_OnEncryptOutput_) Default() OnEncryptOutput { + return Companion_OnEncryptOutput_.Create_OnEncryptOutput_(Companion_EncryptionMaterials_.Default()) +} + +func (_this OnEncryptOutput) Dtor_materials() EncryptionMaterials { + return _this.Get_().(OnEncryptOutput_OnEncryptOutput).Materials +} + +func (_this OnEncryptOutput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case OnEncryptOutput_OnEncryptOutput: + { + return "AwsCryptographyMaterialProvidersTypes.OnEncryptOutput.OnEncryptOutput" + "(" + _dafny.String(data.Materials) + ")" + } + default: + { + return "" + } + } +} + +func (_this OnEncryptOutput) Equals(other OnEncryptOutput) bool { + switch data1 := _this.Get_().(type) { + case OnEncryptOutput_OnEncryptOutput: + { + data2, ok := other.Get_().(OnEncryptOutput_OnEncryptOutput) + return ok && data1.Materials.Equals(data2.Materials) + } + default: + { + return false // unexpected + } + } +} + +func (_this OnEncryptOutput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(OnEncryptOutput) + return ok && _this.Equals(typed) +} + +func Type_OnEncryptOutput_() _dafny.TypeDescriptor { + return type_OnEncryptOutput_{} +} + +type type_OnEncryptOutput_ struct { +} + +func (_this type_OnEncryptOutput_) Default() interface{} { + return Companion_OnEncryptOutput_.Default() +} + +func (_this type_OnEncryptOutput_) String() string { + return "AwsCryptographyMaterialProvidersTypes.OnEncryptOutput" +} +func (_this OnEncryptOutput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = OnEncryptOutput{} + +// End of datatype OnEncryptOutput + +// Definition of datatype PaddingScheme +type PaddingScheme struct { + Data_PaddingScheme_ +} + +func (_this PaddingScheme) Get_() Data_PaddingScheme_ { + return _this.Data_PaddingScheme_ +} + +type Data_PaddingScheme_ interface { + isPaddingScheme() +} + +type CompanionStruct_PaddingScheme_ struct { +} + +var Companion_PaddingScheme_ = CompanionStruct_PaddingScheme_{} + +type PaddingScheme_PKCS1 struct { +} + +func (PaddingScheme_PKCS1) isPaddingScheme() {} + +func (CompanionStruct_PaddingScheme_) Create_PKCS1_() PaddingScheme { + return PaddingScheme{PaddingScheme_PKCS1{}} +} + +func (_this PaddingScheme) Is_PKCS1() bool { + _, ok := _this.Get_().(PaddingScheme_PKCS1) + return ok +} + +type PaddingScheme_OAEP__SHA1__MGF1 struct { +} + +func (PaddingScheme_OAEP__SHA1__MGF1) isPaddingScheme() {} + +func (CompanionStruct_PaddingScheme_) Create_OAEP__SHA1__MGF1_() PaddingScheme { + return PaddingScheme{PaddingScheme_OAEP__SHA1__MGF1{}} +} + +func (_this PaddingScheme) Is_OAEP__SHA1__MGF1() bool { + _, ok := _this.Get_().(PaddingScheme_OAEP__SHA1__MGF1) + return ok +} + +type PaddingScheme_OAEP__SHA256__MGF1 struct { +} + +func (PaddingScheme_OAEP__SHA256__MGF1) isPaddingScheme() {} + +func (CompanionStruct_PaddingScheme_) Create_OAEP__SHA256__MGF1_() PaddingScheme { + return PaddingScheme{PaddingScheme_OAEP__SHA256__MGF1{}} +} + +func (_this PaddingScheme) Is_OAEP__SHA256__MGF1() bool { + _, ok := _this.Get_().(PaddingScheme_OAEP__SHA256__MGF1) + return ok +} + +type PaddingScheme_OAEP__SHA384__MGF1 struct { +} + +func (PaddingScheme_OAEP__SHA384__MGF1) isPaddingScheme() {} + +func (CompanionStruct_PaddingScheme_) Create_OAEP__SHA384__MGF1_() PaddingScheme { + return PaddingScheme{PaddingScheme_OAEP__SHA384__MGF1{}} +} + +func (_this PaddingScheme) Is_OAEP__SHA384__MGF1() bool { + _, ok := _this.Get_().(PaddingScheme_OAEP__SHA384__MGF1) + return ok +} + +type PaddingScheme_OAEP__SHA512__MGF1 struct { +} + +func (PaddingScheme_OAEP__SHA512__MGF1) isPaddingScheme() {} + +func (CompanionStruct_PaddingScheme_) Create_OAEP__SHA512__MGF1_() PaddingScheme { + return PaddingScheme{PaddingScheme_OAEP__SHA512__MGF1{}} +} + +func (_this PaddingScheme) Is_OAEP__SHA512__MGF1() bool { + _, ok := _this.Get_().(PaddingScheme_OAEP__SHA512__MGF1) + return ok +} + +func (CompanionStruct_PaddingScheme_) Default() PaddingScheme { + return Companion_PaddingScheme_.Create_PKCS1_() +} + +func (_ CompanionStruct_PaddingScheme_) AllSingletonConstructors() _dafny.Iterator { + i := -1 + return func() (interface{}, bool) { + i++ + switch i { + case 0: + return Companion_PaddingScheme_.Create_PKCS1_(), true + case 1: + return Companion_PaddingScheme_.Create_OAEP__SHA1__MGF1_(), true + case 2: + return Companion_PaddingScheme_.Create_OAEP__SHA256__MGF1_(), true + case 3: + return Companion_PaddingScheme_.Create_OAEP__SHA384__MGF1_(), true + case 4: + return Companion_PaddingScheme_.Create_OAEP__SHA512__MGF1_(), true + default: + return PaddingScheme{}, false + } + } +} + +func (_this PaddingScheme) String() string { + switch _this.Get_().(type) { + case nil: + return "null" + case PaddingScheme_PKCS1: + { + return "AwsCryptographyMaterialProvidersTypes.PaddingScheme.PKCS1" + } + case PaddingScheme_OAEP__SHA1__MGF1: + { + return "AwsCryptographyMaterialProvidersTypes.PaddingScheme.OAEP_SHA1_MGF1" + } + case PaddingScheme_OAEP__SHA256__MGF1: + { + return "AwsCryptographyMaterialProvidersTypes.PaddingScheme.OAEP_SHA256_MGF1" + } + case PaddingScheme_OAEP__SHA384__MGF1: + { + return "AwsCryptographyMaterialProvidersTypes.PaddingScheme.OAEP_SHA384_MGF1" + } + case PaddingScheme_OAEP__SHA512__MGF1: + { + return "AwsCryptographyMaterialProvidersTypes.PaddingScheme.OAEP_SHA512_MGF1" + } + default: + { + return "" + } + } +} + +func (_this PaddingScheme) Equals(other PaddingScheme) bool { + switch _this.Get_().(type) { + case PaddingScheme_PKCS1: + { + _, ok := other.Get_().(PaddingScheme_PKCS1) + return ok + } + case PaddingScheme_OAEP__SHA1__MGF1: + { + _, ok := other.Get_().(PaddingScheme_OAEP__SHA1__MGF1) + return ok + } + case PaddingScheme_OAEP__SHA256__MGF1: + { + _, ok := other.Get_().(PaddingScheme_OAEP__SHA256__MGF1) + return ok + } + case PaddingScheme_OAEP__SHA384__MGF1: + { + _, ok := other.Get_().(PaddingScheme_OAEP__SHA384__MGF1) + return ok + } + case PaddingScheme_OAEP__SHA512__MGF1: + { + _, ok := other.Get_().(PaddingScheme_OAEP__SHA512__MGF1) + return ok + } + default: + { + return false // unexpected + } + } +} + +func (_this PaddingScheme) EqualsGeneric(other interface{}) bool { + typed, ok := other.(PaddingScheme) + return ok && _this.Equals(typed) +} + +func Type_PaddingScheme_() _dafny.TypeDescriptor { + return type_PaddingScheme_{} +} + +type type_PaddingScheme_ struct { +} + +func (_this type_PaddingScheme_) Default() interface{} { + return Companion_PaddingScheme_.Default() +} + +func (_this type_PaddingScheme_) String() string { + return "AwsCryptographyMaterialProvidersTypes.PaddingScheme" +} +func (_this PaddingScheme) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = PaddingScheme{} + +// End of datatype PaddingScheme + +// Definition of class PositiveInteger +type PositiveInteger struct { +} + +func New_PositiveInteger_() *PositiveInteger { + _this := PositiveInteger{} + + return &_this +} + +type CompanionStruct_PositiveInteger_ struct { +} + +var Companion_PositiveInteger_ = CompanionStruct_PositiveInteger_{} + +func (*PositiveInteger) String() string { + return "AwsCryptographyMaterialProvidersTypes.PositiveInteger" +} + +// End of class PositiveInteger + +func Type_PositiveInteger_() _dafny.TypeDescriptor { + return type_PositiveInteger_{} +} + +type type_PositiveInteger_ struct { +} + +func (_this type_PositiveInteger_) Default() interface{} { + return int32(0) +} + +func (_this type_PositiveInteger_) String() string { + return "AwsCryptographyMaterialProvidersTypes.PositiveInteger" +} +func (_this *CompanionStruct_PositiveInteger_) Is_(__source int32) bool { + var _0_x int32 = (__source) + _ = _0_x + if true { + return Companion_Default___.IsValid__PositiveInteger(_0_x) + } + return false +} + +// Definition of class PositiveLong +type PositiveLong struct { +} + +func New_PositiveLong_() *PositiveLong { + _this := PositiveLong{} + + return &_this +} + +type CompanionStruct_PositiveLong_ struct { +} + +var Companion_PositiveLong_ = CompanionStruct_PositiveLong_{} + +func (*PositiveLong) String() string { + return "AwsCryptographyMaterialProvidersTypes.PositiveLong" +} + +// End of class PositiveLong + +func Type_PositiveLong_() _dafny.TypeDescriptor { + return type_PositiveLong_{} +} + +type type_PositiveLong_ struct { +} + +func (_this type_PositiveLong_) Default() interface{} { + return int64(0) +} + +func (_this type_PositiveLong_) String() string { + return "AwsCryptographyMaterialProvidersTypes.PositiveLong" +} +func (_this *CompanionStruct_PositiveLong_) Is_(__source int64) bool { + var _1_x int64 = (__source) + _ = _1_x + if true { + return Companion_Default___.IsValid__PositiveLong(_1_x) + } + return false +} + +// Definition of datatype PublicKeyDiscoveryInput +type PublicKeyDiscoveryInput struct { + Data_PublicKeyDiscoveryInput_ +} + +func (_this PublicKeyDiscoveryInput) Get_() Data_PublicKeyDiscoveryInput_ { + return _this.Data_PublicKeyDiscoveryInput_ +} + +type Data_PublicKeyDiscoveryInput_ interface { + isPublicKeyDiscoveryInput() +} + +type CompanionStruct_PublicKeyDiscoveryInput_ struct { +} + +var Companion_PublicKeyDiscoveryInput_ = CompanionStruct_PublicKeyDiscoveryInput_{} + +type PublicKeyDiscoveryInput_PublicKeyDiscoveryInput struct { + RecipientStaticPrivateKey _dafny.Sequence +} + +func (PublicKeyDiscoveryInput_PublicKeyDiscoveryInput) isPublicKeyDiscoveryInput() {} + +func (CompanionStruct_PublicKeyDiscoveryInput_) Create_PublicKeyDiscoveryInput_(RecipientStaticPrivateKey _dafny.Sequence) PublicKeyDiscoveryInput { + return PublicKeyDiscoveryInput{PublicKeyDiscoveryInput_PublicKeyDiscoveryInput{RecipientStaticPrivateKey}} +} + +func (_this PublicKeyDiscoveryInput) Is_PublicKeyDiscoveryInput() bool { + _, ok := _this.Get_().(PublicKeyDiscoveryInput_PublicKeyDiscoveryInput) + return ok +} + +func (CompanionStruct_PublicKeyDiscoveryInput_) Default() PublicKeyDiscoveryInput { + return Companion_PublicKeyDiscoveryInput_.Create_PublicKeyDiscoveryInput_(_dafny.EmptySeq) +} + +func (_this PublicKeyDiscoveryInput) Dtor_recipientStaticPrivateKey() _dafny.Sequence { + return _this.Get_().(PublicKeyDiscoveryInput_PublicKeyDiscoveryInput).RecipientStaticPrivateKey +} + +func (_this PublicKeyDiscoveryInput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case PublicKeyDiscoveryInput_PublicKeyDiscoveryInput: + { + return "AwsCryptographyMaterialProvidersTypes.PublicKeyDiscoveryInput.PublicKeyDiscoveryInput" + "(" + _dafny.String(data.RecipientStaticPrivateKey) + ")" + } + default: + { + return "" + } + } +} + +func (_this PublicKeyDiscoveryInput) Equals(other PublicKeyDiscoveryInput) bool { + switch data1 := _this.Get_().(type) { + case PublicKeyDiscoveryInput_PublicKeyDiscoveryInput: + { + data2, ok := other.Get_().(PublicKeyDiscoveryInput_PublicKeyDiscoveryInput) + return ok && data1.RecipientStaticPrivateKey.Equals(data2.RecipientStaticPrivateKey) + } + default: + { + return false // unexpected + } + } +} + +func (_this PublicKeyDiscoveryInput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(PublicKeyDiscoveryInput) + return ok && _this.Equals(typed) +} + +func Type_PublicKeyDiscoveryInput_() _dafny.TypeDescriptor { + return type_PublicKeyDiscoveryInput_{} +} + +type type_PublicKeyDiscoveryInput_ struct { +} + +func (_this type_PublicKeyDiscoveryInput_) Default() interface{} { + return Companion_PublicKeyDiscoveryInput_.Default() +} + +func (_this type_PublicKeyDiscoveryInput_) String() string { + return "AwsCryptographyMaterialProvidersTypes.PublicKeyDiscoveryInput" +} +func (_this PublicKeyDiscoveryInput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = PublicKeyDiscoveryInput{} + +// End of datatype PublicKeyDiscoveryInput + +// Definition of datatype PutCacheEntryInput +type PutCacheEntryInput struct { + Data_PutCacheEntryInput_ +} + +func (_this PutCacheEntryInput) Get_() Data_PutCacheEntryInput_ { + return _this.Data_PutCacheEntryInput_ +} + +type Data_PutCacheEntryInput_ interface { + isPutCacheEntryInput() +} + +type CompanionStruct_PutCacheEntryInput_ struct { +} + +var Companion_PutCacheEntryInput_ = CompanionStruct_PutCacheEntryInput_{} + +type PutCacheEntryInput_PutCacheEntryInput struct { + Identifier _dafny.Sequence + Materials Materials + CreationTime int64 + ExpiryTime int64 + MessagesUsed m_Wrappers.Option + BytesUsed m_Wrappers.Option +} + +func (PutCacheEntryInput_PutCacheEntryInput) isPutCacheEntryInput() {} + +func (CompanionStruct_PutCacheEntryInput_) Create_PutCacheEntryInput_(Identifier _dafny.Sequence, Materials Materials, CreationTime int64, ExpiryTime int64, MessagesUsed m_Wrappers.Option, BytesUsed m_Wrappers.Option) PutCacheEntryInput { + return PutCacheEntryInput{PutCacheEntryInput_PutCacheEntryInput{Identifier, Materials, CreationTime, ExpiryTime, MessagesUsed, BytesUsed}} +} + +func (_this PutCacheEntryInput) Is_PutCacheEntryInput() bool { + _, ok := _this.Get_().(PutCacheEntryInput_PutCacheEntryInput) + return ok +} + +func (CompanionStruct_PutCacheEntryInput_) Default() PutCacheEntryInput { + return Companion_PutCacheEntryInput_.Create_PutCacheEntryInput_(_dafny.EmptySeq, Companion_Materials_.Default(), int64(0), int64(0), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this PutCacheEntryInput) Dtor_identifier() _dafny.Sequence { + return _this.Get_().(PutCacheEntryInput_PutCacheEntryInput).Identifier +} + +func (_this PutCacheEntryInput) Dtor_materials() Materials { + return _this.Get_().(PutCacheEntryInput_PutCacheEntryInput).Materials +} + +func (_this PutCacheEntryInput) Dtor_creationTime() int64 { + return _this.Get_().(PutCacheEntryInput_PutCacheEntryInput).CreationTime +} + +func (_this PutCacheEntryInput) Dtor_expiryTime() int64 { + return _this.Get_().(PutCacheEntryInput_PutCacheEntryInput).ExpiryTime +} + +func (_this PutCacheEntryInput) Dtor_messagesUsed() m_Wrappers.Option { + return _this.Get_().(PutCacheEntryInput_PutCacheEntryInput).MessagesUsed +} + +func (_this PutCacheEntryInput) Dtor_bytesUsed() m_Wrappers.Option { + return _this.Get_().(PutCacheEntryInput_PutCacheEntryInput).BytesUsed +} + +func (_this PutCacheEntryInput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case PutCacheEntryInput_PutCacheEntryInput: + { + return "AwsCryptographyMaterialProvidersTypes.PutCacheEntryInput.PutCacheEntryInput" + "(" + _dafny.String(data.Identifier) + ", " + _dafny.String(data.Materials) + ", " + _dafny.String(data.CreationTime) + ", " + _dafny.String(data.ExpiryTime) + ", " + _dafny.String(data.MessagesUsed) + ", " + _dafny.String(data.BytesUsed) + ")" + } + default: + { + return "" + } + } +} + +func (_this PutCacheEntryInput) Equals(other PutCacheEntryInput) bool { + switch data1 := _this.Get_().(type) { + case PutCacheEntryInput_PutCacheEntryInput: + { + data2, ok := other.Get_().(PutCacheEntryInput_PutCacheEntryInput) + return ok && data1.Identifier.Equals(data2.Identifier) && data1.Materials.Equals(data2.Materials) && data1.CreationTime == data2.CreationTime && data1.ExpiryTime == data2.ExpiryTime && data1.MessagesUsed.Equals(data2.MessagesUsed) && data1.BytesUsed.Equals(data2.BytesUsed) + } + default: + { + return false // unexpected + } + } +} + +func (_this PutCacheEntryInput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(PutCacheEntryInput) + return ok && _this.Equals(typed) +} + +func Type_PutCacheEntryInput_() _dafny.TypeDescriptor { + return type_PutCacheEntryInput_{} +} + +type type_PutCacheEntryInput_ struct { +} + +func (_this type_PutCacheEntryInput_) Default() interface{} { + return Companion_PutCacheEntryInput_.Default() +} + +func (_this type_PutCacheEntryInput_) String() string { + return "AwsCryptographyMaterialProvidersTypes.PutCacheEntryInput" +} +func (_this PutCacheEntryInput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = PutCacheEntryInput{} + +// End of datatype PutCacheEntryInput + +// Definition of datatype RawEcdhStaticConfigurations +type RawEcdhStaticConfigurations struct { + Data_RawEcdhStaticConfigurations_ +} + +func (_this RawEcdhStaticConfigurations) Get_() Data_RawEcdhStaticConfigurations_ { + return _this.Data_RawEcdhStaticConfigurations_ +} + +type Data_RawEcdhStaticConfigurations_ interface { + isRawEcdhStaticConfigurations() +} + +type CompanionStruct_RawEcdhStaticConfigurations_ struct { +} + +var Companion_RawEcdhStaticConfigurations_ = CompanionStruct_RawEcdhStaticConfigurations_{} + +type RawEcdhStaticConfigurations_PublicKeyDiscovery struct { + PublicKeyDiscovery PublicKeyDiscoveryInput +} + +func (RawEcdhStaticConfigurations_PublicKeyDiscovery) isRawEcdhStaticConfigurations() {} + +func (CompanionStruct_RawEcdhStaticConfigurations_) Create_PublicKeyDiscovery_(PublicKeyDiscovery PublicKeyDiscoveryInput) RawEcdhStaticConfigurations { + return RawEcdhStaticConfigurations{RawEcdhStaticConfigurations_PublicKeyDiscovery{PublicKeyDiscovery}} +} + +func (_this RawEcdhStaticConfigurations) Is_PublicKeyDiscovery() bool { + _, ok := _this.Get_().(RawEcdhStaticConfigurations_PublicKeyDiscovery) + return ok +} + +type RawEcdhStaticConfigurations_RawPrivateKeyToStaticPublicKey struct { + RawPrivateKeyToStaticPublicKey RawPrivateKeyToStaticPublicKeyInput +} + +func (RawEcdhStaticConfigurations_RawPrivateKeyToStaticPublicKey) isRawEcdhStaticConfigurations() {} + +func (CompanionStruct_RawEcdhStaticConfigurations_) Create_RawPrivateKeyToStaticPublicKey_(RawPrivateKeyToStaticPublicKey RawPrivateKeyToStaticPublicKeyInput) RawEcdhStaticConfigurations { + return RawEcdhStaticConfigurations{RawEcdhStaticConfigurations_RawPrivateKeyToStaticPublicKey{RawPrivateKeyToStaticPublicKey}} +} + +func (_this RawEcdhStaticConfigurations) Is_RawPrivateKeyToStaticPublicKey() bool { + _, ok := _this.Get_().(RawEcdhStaticConfigurations_RawPrivateKeyToStaticPublicKey) + return ok +} + +type RawEcdhStaticConfigurations_EphemeralPrivateKeyToStaticPublicKey struct { + EphemeralPrivateKeyToStaticPublicKey EphemeralPrivateKeyToStaticPublicKeyInput +} + +func (RawEcdhStaticConfigurations_EphemeralPrivateKeyToStaticPublicKey) isRawEcdhStaticConfigurations() { +} + +func (CompanionStruct_RawEcdhStaticConfigurations_) Create_EphemeralPrivateKeyToStaticPublicKey_(EphemeralPrivateKeyToStaticPublicKey EphemeralPrivateKeyToStaticPublicKeyInput) RawEcdhStaticConfigurations { + return RawEcdhStaticConfigurations{RawEcdhStaticConfigurations_EphemeralPrivateKeyToStaticPublicKey{EphemeralPrivateKeyToStaticPublicKey}} +} + +func (_this RawEcdhStaticConfigurations) Is_EphemeralPrivateKeyToStaticPublicKey() bool { + _, ok := _this.Get_().(RawEcdhStaticConfigurations_EphemeralPrivateKeyToStaticPublicKey) + return ok +} + +func (CompanionStruct_RawEcdhStaticConfigurations_) Default() RawEcdhStaticConfigurations { + return Companion_RawEcdhStaticConfigurations_.Create_PublicKeyDiscovery_(Companion_PublicKeyDiscoveryInput_.Default()) +} + +func (_this RawEcdhStaticConfigurations) Dtor_PublicKeyDiscovery() PublicKeyDiscoveryInput { + return _this.Get_().(RawEcdhStaticConfigurations_PublicKeyDiscovery).PublicKeyDiscovery +} + +func (_this RawEcdhStaticConfigurations) Dtor_RawPrivateKeyToStaticPublicKey() RawPrivateKeyToStaticPublicKeyInput { + return _this.Get_().(RawEcdhStaticConfigurations_RawPrivateKeyToStaticPublicKey).RawPrivateKeyToStaticPublicKey +} + +func (_this RawEcdhStaticConfigurations) Dtor_EphemeralPrivateKeyToStaticPublicKey() EphemeralPrivateKeyToStaticPublicKeyInput { + return _this.Get_().(RawEcdhStaticConfigurations_EphemeralPrivateKeyToStaticPublicKey).EphemeralPrivateKeyToStaticPublicKey +} + +func (_this RawEcdhStaticConfigurations) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case RawEcdhStaticConfigurations_PublicKeyDiscovery: + { + return "AwsCryptographyMaterialProvidersTypes.RawEcdhStaticConfigurations.PublicKeyDiscovery" + "(" + _dafny.String(data.PublicKeyDiscovery) + ")" + } + case RawEcdhStaticConfigurations_RawPrivateKeyToStaticPublicKey: + { + return "AwsCryptographyMaterialProvidersTypes.RawEcdhStaticConfigurations.RawPrivateKeyToStaticPublicKey" + "(" + _dafny.String(data.RawPrivateKeyToStaticPublicKey) + ")" + } + case RawEcdhStaticConfigurations_EphemeralPrivateKeyToStaticPublicKey: + { + return "AwsCryptographyMaterialProvidersTypes.RawEcdhStaticConfigurations.EphemeralPrivateKeyToStaticPublicKey" + "(" + _dafny.String(data.EphemeralPrivateKeyToStaticPublicKey) + ")" + } + default: + { + return "" + } + } +} + +func (_this RawEcdhStaticConfigurations) Equals(other RawEcdhStaticConfigurations) bool { + switch data1 := _this.Get_().(type) { + case RawEcdhStaticConfigurations_PublicKeyDiscovery: + { + data2, ok := other.Get_().(RawEcdhStaticConfigurations_PublicKeyDiscovery) + return ok && data1.PublicKeyDiscovery.Equals(data2.PublicKeyDiscovery) + } + case RawEcdhStaticConfigurations_RawPrivateKeyToStaticPublicKey: + { + data2, ok := other.Get_().(RawEcdhStaticConfigurations_RawPrivateKeyToStaticPublicKey) + return ok && data1.RawPrivateKeyToStaticPublicKey.Equals(data2.RawPrivateKeyToStaticPublicKey) + } + case RawEcdhStaticConfigurations_EphemeralPrivateKeyToStaticPublicKey: + { + data2, ok := other.Get_().(RawEcdhStaticConfigurations_EphemeralPrivateKeyToStaticPublicKey) + return ok && data1.EphemeralPrivateKeyToStaticPublicKey.Equals(data2.EphemeralPrivateKeyToStaticPublicKey) + } + default: + { + return false // unexpected + } + } +} + +func (_this RawEcdhStaticConfigurations) EqualsGeneric(other interface{}) bool { + typed, ok := other.(RawEcdhStaticConfigurations) + return ok && _this.Equals(typed) +} + +func Type_RawEcdhStaticConfigurations_() _dafny.TypeDescriptor { + return type_RawEcdhStaticConfigurations_{} +} + +type type_RawEcdhStaticConfigurations_ struct { +} + +func (_this type_RawEcdhStaticConfigurations_) Default() interface{} { + return Companion_RawEcdhStaticConfigurations_.Default() +} + +func (_this type_RawEcdhStaticConfigurations_) String() string { + return "AwsCryptographyMaterialProvidersTypes.RawEcdhStaticConfigurations" +} +func (_this RawEcdhStaticConfigurations) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = RawEcdhStaticConfigurations{} + +// End of datatype RawEcdhStaticConfigurations + +// Definition of datatype RawPrivateKeyToStaticPublicKeyInput +type RawPrivateKeyToStaticPublicKeyInput struct { + Data_RawPrivateKeyToStaticPublicKeyInput_ +} + +func (_this RawPrivateKeyToStaticPublicKeyInput) Get_() Data_RawPrivateKeyToStaticPublicKeyInput_ { + return _this.Data_RawPrivateKeyToStaticPublicKeyInput_ +} + +type Data_RawPrivateKeyToStaticPublicKeyInput_ interface { + isRawPrivateKeyToStaticPublicKeyInput() +} + +type CompanionStruct_RawPrivateKeyToStaticPublicKeyInput_ struct { +} + +var Companion_RawPrivateKeyToStaticPublicKeyInput_ = CompanionStruct_RawPrivateKeyToStaticPublicKeyInput_{} + +type RawPrivateKeyToStaticPublicKeyInput_RawPrivateKeyToStaticPublicKeyInput struct { + SenderStaticPrivateKey _dafny.Sequence + RecipientPublicKey _dafny.Sequence +} + +func (RawPrivateKeyToStaticPublicKeyInput_RawPrivateKeyToStaticPublicKeyInput) isRawPrivateKeyToStaticPublicKeyInput() { +} + +func (CompanionStruct_RawPrivateKeyToStaticPublicKeyInput_) Create_RawPrivateKeyToStaticPublicKeyInput_(SenderStaticPrivateKey _dafny.Sequence, RecipientPublicKey _dafny.Sequence) RawPrivateKeyToStaticPublicKeyInput { + return RawPrivateKeyToStaticPublicKeyInput{RawPrivateKeyToStaticPublicKeyInput_RawPrivateKeyToStaticPublicKeyInput{SenderStaticPrivateKey, RecipientPublicKey}} +} + +func (_this RawPrivateKeyToStaticPublicKeyInput) Is_RawPrivateKeyToStaticPublicKeyInput() bool { + _, ok := _this.Get_().(RawPrivateKeyToStaticPublicKeyInput_RawPrivateKeyToStaticPublicKeyInput) + return ok +} + +func (CompanionStruct_RawPrivateKeyToStaticPublicKeyInput_) Default() RawPrivateKeyToStaticPublicKeyInput { + return Companion_RawPrivateKeyToStaticPublicKeyInput_.Create_RawPrivateKeyToStaticPublicKeyInput_(_dafny.EmptySeq, _dafny.EmptySeq) +} + +func (_this RawPrivateKeyToStaticPublicKeyInput) Dtor_senderStaticPrivateKey() _dafny.Sequence { + return _this.Get_().(RawPrivateKeyToStaticPublicKeyInput_RawPrivateKeyToStaticPublicKeyInput).SenderStaticPrivateKey +} + +func (_this RawPrivateKeyToStaticPublicKeyInput) Dtor_recipientPublicKey() _dafny.Sequence { + return _this.Get_().(RawPrivateKeyToStaticPublicKeyInput_RawPrivateKeyToStaticPublicKeyInput).RecipientPublicKey +} + +func (_this RawPrivateKeyToStaticPublicKeyInput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case RawPrivateKeyToStaticPublicKeyInput_RawPrivateKeyToStaticPublicKeyInput: + { + return "AwsCryptographyMaterialProvidersTypes.RawPrivateKeyToStaticPublicKeyInput.RawPrivateKeyToStaticPublicKeyInput" + "(" + _dafny.String(data.SenderStaticPrivateKey) + ", " + _dafny.String(data.RecipientPublicKey) + ")" + } + default: + { + return "" + } + } +} + +func (_this RawPrivateKeyToStaticPublicKeyInput) Equals(other RawPrivateKeyToStaticPublicKeyInput) bool { + switch data1 := _this.Get_().(type) { + case RawPrivateKeyToStaticPublicKeyInput_RawPrivateKeyToStaticPublicKeyInput: + { + data2, ok := other.Get_().(RawPrivateKeyToStaticPublicKeyInput_RawPrivateKeyToStaticPublicKeyInput) + return ok && data1.SenderStaticPrivateKey.Equals(data2.SenderStaticPrivateKey) && data1.RecipientPublicKey.Equals(data2.RecipientPublicKey) + } + default: + { + return false // unexpected + } + } +} + +func (_this RawPrivateKeyToStaticPublicKeyInput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(RawPrivateKeyToStaticPublicKeyInput) + return ok && _this.Equals(typed) +} + +func Type_RawPrivateKeyToStaticPublicKeyInput_() _dafny.TypeDescriptor { + return type_RawPrivateKeyToStaticPublicKeyInput_{} +} + +type type_RawPrivateKeyToStaticPublicKeyInput_ struct { +} + +func (_this type_RawPrivateKeyToStaticPublicKeyInput_) Default() interface{} { + return Companion_RawPrivateKeyToStaticPublicKeyInput_.Default() +} + +func (_this type_RawPrivateKeyToStaticPublicKeyInput_) String() string { + return "AwsCryptographyMaterialProvidersTypes.RawPrivateKeyToStaticPublicKeyInput" +} +func (_this RawPrivateKeyToStaticPublicKeyInput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = RawPrivateKeyToStaticPublicKeyInput{} + +// End of datatype RawPrivateKeyToStaticPublicKeyInput + +// Definition of datatype SignatureAlgorithm +type SignatureAlgorithm struct { + Data_SignatureAlgorithm_ +} + +func (_this SignatureAlgorithm) Get_() Data_SignatureAlgorithm_ { + return _this.Data_SignatureAlgorithm_ +} + +type Data_SignatureAlgorithm_ interface { + isSignatureAlgorithm() +} + +type CompanionStruct_SignatureAlgorithm_ struct { +} + +var Companion_SignatureAlgorithm_ = CompanionStruct_SignatureAlgorithm_{} + +type SignatureAlgorithm_ECDSA struct { + ECDSA ECDSA +} + +func (SignatureAlgorithm_ECDSA) isSignatureAlgorithm() {} + +func (CompanionStruct_SignatureAlgorithm_) Create_ECDSA_(ECDSA ECDSA) SignatureAlgorithm { + return SignatureAlgorithm{SignatureAlgorithm_ECDSA{ECDSA}} +} + +func (_this SignatureAlgorithm) Is_ECDSA() bool { + _, ok := _this.Get_().(SignatureAlgorithm_ECDSA) + return ok +} + +type SignatureAlgorithm_None struct { + None None +} + +func (SignatureAlgorithm_None) isSignatureAlgorithm() {} + +func (CompanionStruct_SignatureAlgorithm_) Create_None_(None None) SignatureAlgorithm { + return SignatureAlgorithm{SignatureAlgorithm_None{None}} +} + +func (_this SignatureAlgorithm) Is_None() bool { + _, ok := _this.Get_().(SignatureAlgorithm_None) + return ok +} + +func (CompanionStruct_SignatureAlgorithm_) Default() SignatureAlgorithm { + return Companion_SignatureAlgorithm_.Create_ECDSA_(Companion_ECDSA_.Default()) +} + +func (_this SignatureAlgorithm) Dtor_ECDSA() ECDSA { + return _this.Get_().(SignatureAlgorithm_ECDSA).ECDSA +} + +func (_this SignatureAlgorithm) Dtor_None() None { + return _this.Get_().(SignatureAlgorithm_None).None +} + +func (_this SignatureAlgorithm) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case SignatureAlgorithm_ECDSA: + { + return "AwsCryptographyMaterialProvidersTypes.SignatureAlgorithm.ECDSA" + "(" + _dafny.String(data.ECDSA) + ")" + } + case SignatureAlgorithm_None: + { + return "AwsCryptographyMaterialProvidersTypes.SignatureAlgorithm.None" + "(" + _dafny.String(data.None) + ")" + } + default: + { + return "" + } + } +} + +func (_this SignatureAlgorithm) Equals(other SignatureAlgorithm) bool { + switch data1 := _this.Get_().(type) { + case SignatureAlgorithm_ECDSA: + { + data2, ok := other.Get_().(SignatureAlgorithm_ECDSA) + return ok && data1.ECDSA.Equals(data2.ECDSA) + } + case SignatureAlgorithm_None: + { + data2, ok := other.Get_().(SignatureAlgorithm_None) + return ok && data1.None.Equals(data2.None) + } + default: + { + return false // unexpected + } + } +} + +func (_this SignatureAlgorithm) EqualsGeneric(other interface{}) bool { + typed, ok := other.(SignatureAlgorithm) + return ok && _this.Equals(typed) +} + +func Type_SignatureAlgorithm_() _dafny.TypeDescriptor { + return type_SignatureAlgorithm_{} +} + +type type_SignatureAlgorithm_ struct { +} + +func (_this type_SignatureAlgorithm_) Default() interface{} { + return Companion_SignatureAlgorithm_.Default() +} + +func (_this type_SignatureAlgorithm_) String() string { + return "AwsCryptographyMaterialProvidersTypes.SignatureAlgorithm" +} +func (_this SignatureAlgorithm) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = SignatureAlgorithm{} + +// End of datatype SignatureAlgorithm + +// Definition of datatype SingleThreadedCache +type SingleThreadedCache struct { + Data_SingleThreadedCache_ +} + +func (_this SingleThreadedCache) Get_() Data_SingleThreadedCache_ { + return _this.Data_SingleThreadedCache_ +} + +type Data_SingleThreadedCache_ interface { + isSingleThreadedCache() +} + +type CompanionStruct_SingleThreadedCache_ struct { +} + +var Companion_SingleThreadedCache_ = CompanionStruct_SingleThreadedCache_{} + +type SingleThreadedCache_SingleThreadedCache struct { + EntryCapacity int32 + EntryPruningTailSize m_Wrappers.Option +} + +func (SingleThreadedCache_SingleThreadedCache) isSingleThreadedCache() {} + +func (CompanionStruct_SingleThreadedCache_) Create_SingleThreadedCache_(EntryCapacity int32, EntryPruningTailSize m_Wrappers.Option) SingleThreadedCache { + return SingleThreadedCache{SingleThreadedCache_SingleThreadedCache{EntryCapacity, EntryPruningTailSize}} +} + +func (_this SingleThreadedCache) Is_SingleThreadedCache() bool { + _, ok := _this.Get_().(SingleThreadedCache_SingleThreadedCache) + return ok +} + +func (CompanionStruct_SingleThreadedCache_) Default() SingleThreadedCache { + return Companion_SingleThreadedCache_.Create_SingleThreadedCache_(int32(0), m_Wrappers.Companion_Option_.Default()) +} + +func (_this SingleThreadedCache) Dtor_entryCapacity() int32 { + return _this.Get_().(SingleThreadedCache_SingleThreadedCache).EntryCapacity +} + +func (_this SingleThreadedCache) Dtor_entryPruningTailSize() m_Wrappers.Option { + return _this.Get_().(SingleThreadedCache_SingleThreadedCache).EntryPruningTailSize +} + +func (_this SingleThreadedCache) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case SingleThreadedCache_SingleThreadedCache: + { + return "AwsCryptographyMaterialProvidersTypes.SingleThreadedCache.SingleThreadedCache" + "(" + _dafny.String(data.EntryCapacity) + ", " + _dafny.String(data.EntryPruningTailSize) + ")" + } + default: + { + return "" + } + } +} + +func (_this SingleThreadedCache) Equals(other SingleThreadedCache) bool { + switch data1 := _this.Get_().(type) { + case SingleThreadedCache_SingleThreadedCache: + { + data2, ok := other.Get_().(SingleThreadedCache_SingleThreadedCache) + return ok && data1.EntryCapacity == data2.EntryCapacity && data1.EntryPruningTailSize.Equals(data2.EntryPruningTailSize) + } + default: + { + return false // unexpected + } + } +} + +func (_this SingleThreadedCache) EqualsGeneric(other interface{}) bool { + typed, ok := other.(SingleThreadedCache) + return ok && _this.Equals(typed) +} + +func Type_SingleThreadedCache_() _dafny.TypeDescriptor { + return type_SingleThreadedCache_{} +} + +type type_SingleThreadedCache_ struct { +} + +func (_this type_SingleThreadedCache_) Default() interface{} { + return Companion_SingleThreadedCache_.Default() +} + +func (_this type_SingleThreadedCache_) String() string { + return "AwsCryptographyMaterialProvidersTypes.SingleThreadedCache" +} +func (_this SingleThreadedCache) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = SingleThreadedCache{} + +// End of datatype SingleThreadedCache + +// Definition of datatype StaticConfigurations +type StaticConfigurations struct { + Data_StaticConfigurations_ +} + +func (_this StaticConfigurations) Get_() Data_StaticConfigurations_ { + return _this.Data_StaticConfigurations_ +} + +type Data_StaticConfigurations_ interface { + isStaticConfigurations() +} + +type CompanionStruct_StaticConfigurations_ struct { +} + +var Companion_StaticConfigurations_ = CompanionStruct_StaticConfigurations_{} + +type StaticConfigurations_AWS__KMS__ECDH struct { + AWS__KMS__ECDH KmsEcdhStaticConfigurations +} + +func (StaticConfigurations_AWS__KMS__ECDH) isStaticConfigurations() {} + +func (CompanionStruct_StaticConfigurations_) Create_AWS__KMS__ECDH_(AWS__KMS__ECDH KmsEcdhStaticConfigurations) StaticConfigurations { + return StaticConfigurations{StaticConfigurations_AWS__KMS__ECDH{AWS__KMS__ECDH}} +} + +func (_this StaticConfigurations) Is_AWS__KMS__ECDH() bool { + _, ok := _this.Get_().(StaticConfigurations_AWS__KMS__ECDH) + return ok +} + +type StaticConfigurations_RAW__ECDH struct { + RAW__ECDH RawEcdhStaticConfigurations +} + +func (StaticConfigurations_RAW__ECDH) isStaticConfigurations() {} + +func (CompanionStruct_StaticConfigurations_) Create_RAW__ECDH_(RAW__ECDH RawEcdhStaticConfigurations) StaticConfigurations { + return StaticConfigurations{StaticConfigurations_RAW__ECDH{RAW__ECDH}} +} + +func (_this StaticConfigurations) Is_RAW__ECDH() bool { + _, ok := _this.Get_().(StaticConfigurations_RAW__ECDH) + return ok +} + +func (CompanionStruct_StaticConfigurations_) Default() StaticConfigurations { + return Companion_StaticConfigurations_.Create_AWS__KMS__ECDH_(Companion_KmsEcdhStaticConfigurations_.Default()) +} + +func (_this StaticConfigurations) Dtor_AWS__KMS__ECDH() KmsEcdhStaticConfigurations { + return _this.Get_().(StaticConfigurations_AWS__KMS__ECDH).AWS__KMS__ECDH +} + +func (_this StaticConfigurations) Dtor_RAW__ECDH() RawEcdhStaticConfigurations { + return _this.Get_().(StaticConfigurations_RAW__ECDH).RAW__ECDH +} + +func (_this StaticConfigurations) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case StaticConfigurations_AWS__KMS__ECDH: + { + return "AwsCryptographyMaterialProvidersTypes.StaticConfigurations.AWS_KMS_ECDH" + "(" + _dafny.String(data.AWS__KMS__ECDH) + ")" + } + case StaticConfigurations_RAW__ECDH: + { + return "AwsCryptographyMaterialProvidersTypes.StaticConfigurations.RAW_ECDH" + "(" + _dafny.String(data.RAW__ECDH) + ")" + } + default: + { + return "" + } + } +} + +func (_this StaticConfigurations) Equals(other StaticConfigurations) bool { + switch data1 := _this.Get_().(type) { + case StaticConfigurations_AWS__KMS__ECDH: + { + data2, ok := other.Get_().(StaticConfigurations_AWS__KMS__ECDH) + return ok && data1.AWS__KMS__ECDH.Equals(data2.AWS__KMS__ECDH) + } + case StaticConfigurations_RAW__ECDH: + { + data2, ok := other.Get_().(StaticConfigurations_RAW__ECDH) + return ok && data1.RAW__ECDH.Equals(data2.RAW__ECDH) + } + default: + { + return false // unexpected + } + } +} + +func (_this StaticConfigurations) EqualsGeneric(other interface{}) bool { + typed, ok := other.(StaticConfigurations) + return ok && _this.Equals(typed) +} + +func Type_StaticConfigurations_() _dafny.TypeDescriptor { + return type_StaticConfigurations_{} +} + +type type_StaticConfigurations_ struct { +} + +func (_this type_StaticConfigurations_) Default() interface{} { + return Companion_StaticConfigurations_.Default() +} + +func (_this type_StaticConfigurations_) String() string { + return "AwsCryptographyMaterialProvidersTypes.StaticConfigurations" +} +func (_this StaticConfigurations) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = StaticConfigurations{} + +// End of datatype StaticConfigurations + +// Definition of datatype StormTrackingCache +type StormTrackingCache struct { + Data_StormTrackingCache_ +} + +func (_this StormTrackingCache) Get_() Data_StormTrackingCache_ { + return _this.Data_StormTrackingCache_ +} + +type Data_StormTrackingCache_ interface { + isStormTrackingCache() +} + +type CompanionStruct_StormTrackingCache_ struct { +} + +var Companion_StormTrackingCache_ = CompanionStruct_StormTrackingCache_{} + +type StormTrackingCache_StormTrackingCache struct { + EntryCapacity int32 + EntryPruningTailSize m_Wrappers.Option + GracePeriod int32 + GraceInterval int32 + FanOut int32 + InFlightTTL int32 + SleepMilli int32 + TimeUnits m_Wrappers.Option +} + +func (StormTrackingCache_StormTrackingCache) isStormTrackingCache() {} + +func (CompanionStruct_StormTrackingCache_) Create_StormTrackingCache_(EntryCapacity int32, EntryPruningTailSize m_Wrappers.Option, GracePeriod int32, GraceInterval int32, FanOut int32, InFlightTTL int32, SleepMilli int32, TimeUnits m_Wrappers.Option) StormTrackingCache { + return StormTrackingCache{StormTrackingCache_StormTrackingCache{EntryCapacity, EntryPruningTailSize, GracePeriod, GraceInterval, FanOut, InFlightTTL, SleepMilli, TimeUnits}} +} + +func (_this StormTrackingCache) Is_StormTrackingCache() bool { + _, ok := _this.Get_().(StormTrackingCache_StormTrackingCache) + return ok +} + +func (CompanionStruct_StormTrackingCache_) Default() StormTrackingCache { + return Companion_StormTrackingCache_.Create_StormTrackingCache_(int32(0), m_Wrappers.Companion_Option_.Default(), int32(0), int32(0), int32(0), int32(0), int32(0), m_Wrappers.Companion_Option_.Default()) +} + +func (_this StormTrackingCache) Dtor_entryCapacity() int32 { + return _this.Get_().(StormTrackingCache_StormTrackingCache).EntryCapacity +} + +func (_this StormTrackingCache) Dtor_entryPruningTailSize() m_Wrappers.Option { + return _this.Get_().(StormTrackingCache_StormTrackingCache).EntryPruningTailSize +} + +func (_this StormTrackingCache) Dtor_gracePeriod() int32 { + return _this.Get_().(StormTrackingCache_StormTrackingCache).GracePeriod +} + +func (_this StormTrackingCache) Dtor_graceInterval() int32 { + return _this.Get_().(StormTrackingCache_StormTrackingCache).GraceInterval +} + +func (_this StormTrackingCache) Dtor_fanOut() int32 { + return _this.Get_().(StormTrackingCache_StormTrackingCache).FanOut +} + +func (_this StormTrackingCache) Dtor_inFlightTTL() int32 { + return _this.Get_().(StormTrackingCache_StormTrackingCache).InFlightTTL +} + +func (_this StormTrackingCache) Dtor_sleepMilli() int32 { + return _this.Get_().(StormTrackingCache_StormTrackingCache).SleepMilli +} + +func (_this StormTrackingCache) Dtor_timeUnits() m_Wrappers.Option { + return _this.Get_().(StormTrackingCache_StormTrackingCache).TimeUnits +} + +func (_this StormTrackingCache) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case StormTrackingCache_StormTrackingCache: + { + return "AwsCryptographyMaterialProvidersTypes.StormTrackingCache.StormTrackingCache" + "(" + _dafny.String(data.EntryCapacity) + ", " + _dafny.String(data.EntryPruningTailSize) + ", " + _dafny.String(data.GracePeriod) + ", " + _dafny.String(data.GraceInterval) + ", " + _dafny.String(data.FanOut) + ", " + _dafny.String(data.InFlightTTL) + ", " + _dafny.String(data.SleepMilli) + ", " + _dafny.String(data.TimeUnits) + ")" + } + default: + { + return "" + } + } +} + +func (_this StormTrackingCache) Equals(other StormTrackingCache) bool { + switch data1 := _this.Get_().(type) { + case StormTrackingCache_StormTrackingCache: + { + data2, ok := other.Get_().(StormTrackingCache_StormTrackingCache) + return ok && data1.EntryCapacity == data2.EntryCapacity && data1.EntryPruningTailSize.Equals(data2.EntryPruningTailSize) && data1.GracePeriod == data2.GracePeriod && data1.GraceInterval == data2.GraceInterval && data1.FanOut == data2.FanOut && data1.InFlightTTL == data2.InFlightTTL && data1.SleepMilli == data2.SleepMilli && data1.TimeUnits.Equals(data2.TimeUnits) + } + default: + { + return false // unexpected + } + } +} + +func (_this StormTrackingCache) EqualsGeneric(other interface{}) bool { + typed, ok := other.(StormTrackingCache) + return ok && _this.Equals(typed) +} + +func Type_StormTrackingCache_() _dafny.TypeDescriptor { + return type_StormTrackingCache_{} +} + +type type_StormTrackingCache_ struct { +} + +func (_this type_StormTrackingCache_) Default() interface{} { + return Companion_StormTrackingCache_.Default() +} + +func (_this type_StormTrackingCache_) String() string { + return "AwsCryptographyMaterialProvidersTypes.StormTrackingCache" +} +func (_this StormTrackingCache) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = StormTrackingCache{} + +// End of datatype StormTrackingCache + +// Definition of datatype SymmetricSignatureAlgorithm +type SymmetricSignatureAlgorithm struct { + Data_SymmetricSignatureAlgorithm_ +} + +func (_this SymmetricSignatureAlgorithm) Get_() Data_SymmetricSignatureAlgorithm_ { + return _this.Data_SymmetricSignatureAlgorithm_ +} + +type Data_SymmetricSignatureAlgorithm_ interface { + isSymmetricSignatureAlgorithm() +} + +type CompanionStruct_SymmetricSignatureAlgorithm_ struct { +} + +var Companion_SymmetricSignatureAlgorithm_ = CompanionStruct_SymmetricSignatureAlgorithm_{} + +type SymmetricSignatureAlgorithm_HMAC struct { + HMAC m_AwsCryptographyPrimitivesTypes.DigestAlgorithm +} + +func (SymmetricSignatureAlgorithm_HMAC) isSymmetricSignatureAlgorithm() {} + +func (CompanionStruct_SymmetricSignatureAlgorithm_) Create_HMAC_(HMAC m_AwsCryptographyPrimitivesTypes.DigestAlgorithm) SymmetricSignatureAlgorithm { + return SymmetricSignatureAlgorithm{SymmetricSignatureAlgorithm_HMAC{HMAC}} +} + +func (_this SymmetricSignatureAlgorithm) Is_HMAC() bool { + _, ok := _this.Get_().(SymmetricSignatureAlgorithm_HMAC) + return ok +} + +type SymmetricSignatureAlgorithm_None struct { + None None +} + +func (SymmetricSignatureAlgorithm_None) isSymmetricSignatureAlgorithm() {} + +func (CompanionStruct_SymmetricSignatureAlgorithm_) Create_None_(None None) SymmetricSignatureAlgorithm { + return SymmetricSignatureAlgorithm{SymmetricSignatureAlgorithm_None{None}} +} + +func (_this SymmetricSignatureAlgorithm) Is_None() bool { + _, ok := _this.Get_().(SymmetricSignatureAlgorithm_None) + return ok +} + +func (CompanionStruct_SymmetricSignatureAlgorithm_) Default() SymmetricSignatureAlgorithm { + return Companion_SymmetricSignatureAlgorithm_.Create_HMAC_(m_AwsCryptographyPrimitivesTypes.Companion_DigestAlgorithm_.Default()) +} + +func (_this SymmetricSignatureAlgorithm) Dtor_HMAC() m_AwsCryptographyPrimitivesTypes.DigestAlgorithm { + return _this.Get_().(SymmetricSignatureAlgorithm_HMAC).HMAC +} + +func (_this SymmetricSignatureAlgorithm) Dtor_None() None { + return _this.Get_().(SymmetricSignatureAlgorithm_None).None +} + +func (_this SymmetricSignatureAlgorithm) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case SymmetricSignatureAlgorithm_HMAC: + { + return "AwsCryptographyMaterialProvidersTypes.SymmetricSignatureAlgorithm.HMAC" + "(" + _dafny.String(data.HMAC) + ")" + } + case SymmetricSignatureAlgorithm_None: + { + return "AwsCryptographyMaterialProvidersTypes.SymmetricSignatureAlgorithm.None" + "(" + _dafny.String(data.None) + ")" + } + default: + { + return "" + } + } +} + +func (_this SymmetricSignatureAlgorithm) Equals(other SymmetricSignatureAlgorithm) bool { + switch data1 := _this.Get_().(type) { + case SymmetricSignatureAlgorithm_HMAC: + { + data2, ok := other.Get_().(SymmetricSignatureAlgorithm_HMAC) + return ok && data1.HMAC.Equals(data2.HMAC) + } + case SymmetricSignatureAlgorithm_None: + { + data2, ok := other.Get_().(SymmetricSignatureAlgorithm_None) + return ok && data1.None.Equals(data2.None) + } + default: + { + return false // unexpected + } + } +} + +func (_this SymmetricSignatureAlgorithm) EqualsGeneric(other interface{}) bool { + typed, ok := other.(SymmetricSignatureAlgorithm) + return ok && _this.Equals(typed) +} + +func Type_SymmetricSignatureAlgorithm_() _dafny.TypeDescriptor { + return type_SymmetricSignatureAlgorithm_{} +} + +type type_SymmetricSignatureAlgorithm_ struct { +} + +func (_this type_SymmetricSignatureAlgorithm_) Default() interface{} { + return Companion_SymmetricSignatureAlgorithm_.Default() +} + +func (_this type_SymmetricSignatureAlgorithm_) String() string { + return "AwsCryptographyMaterialProvidersTypes.SymmetricSignatureAlgorithm" +} +func (_this SymmetricSignatureAlgorithm) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = SymmetricSignatureAlgorithm{} + +// End of datatype SymmetricSignatureAlgorithm + +// Definition of datatype TimeUnits +type TimeUnits struct { + Data_TimeUnits_ +} + +func (_this TimeUnits) Get_() Data_TimeUnits_ { + return _this.Data_TimeUnits_ +} + +type Data_TimeUnits_ interface { + isTimeUnits() +} + +type CompanionStruct_TimeUnits_ struct { +} + +var Companion_TimeUnits_ = CompanionStruct_TimeUnits_{} + +type TimeUnits_Seconds struct { +} + +func (TimeUnits_Seconds) isTimeUnits() {} + +func (CompanionStruct_TimeUnits_) Create_Seconds_() TimeUnits { + return TimeUnits{TimeUnits_Seconds{}} +} + +func (_this TimeUnits) Is_Seconds() bool { + _, ok := _this.Get_().(TimeUnits_Seconds) + return ok +} + +type TimeUnits_Milliseconds struct { +} + +func (TimeUnits_Milliseconds) isTimeUnits() {} + +func (CompanionStruct_TimeUnits_) Create_Milliseconds_() TimeUnits { + return TimeUnits{TimeUnits_Milliseconds{}} +} + +func (_this TimeUnits) Is_Milliseconds() bool { + _, ok := _this.Get_().(TimeUnits_Milliseconds) + return ok +} + +func (CompanionStruct_TimeUnits_) Default() TimeUnits { + return Companion_TimeUnits_.Create_Seconds_() +} + +func (_ CompanionStruct_TimeUnits_) AllSingletonConstructors() _dafny.Iterator { + i := -1 + return func() (interface{}, bool) { + i++ + switch i { + case 0: + return Companion_TimeUnits_.Create_Seconds_(), true + case 1: + return Companion_TimeUnits_.Create_Milliseconds_(), true + default: + return TimeUnits{}, false + } + } +} + +func (_this TimeUnits) String() string { + switch _this.Get_().(type) { + case nil: + return "null" + case TimeUnits_Seconds: + { + return "AwsCryptographyMaterialProvidersTypes.TimeUnits.Seconds" + } + case TimeUnits_Milliseconds: + { + return "AwsCryptographyMaterialProvidersTypes.TimeUnits.Milliseconds" + } + default: + { + return "" + } + } +} + +func (_this TimeUnits) Equals(other TimeUnits) bool { + switch _this.Get_().(type) { + case TimeUnits_Seconds: + { + _, ok := other.Get_().(TimeUnits_Seconds) + return ok + } + case TimeUnits_Milliseconds: + { + _, ok := other.Get_().(TimeUnits_Milliseconds) + return ok + } + default: + { + return false // unexpected + } + } +} + +func (_this TimeUnits) EqualsGeneric(other interface{}) bool { + typed, ok := other.(TimeUnits) + return ok && _this.Equals(typed) +} + +func Type_TimeUnits_() _dafny.TypeDescriptor { + return type_TimeUnits_{} +} + +type type_TimeUnits_ struct { +} + +func (_this type_TimeUnits_) Default() interface{} { + return Companion_TimeUnits_.Default() +} + +func (_this type_TimeUnits_) String() string { + return "AwsCryptographyMaterialProvidersTypes.TimeUnits" +} +func (_this TimeUnits) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = TimeUnits{} + +// End of datatype TimeUnits + +// Definition of datatype UpdateUsageMetadataInput +type UpdateUsageMetadataInput struct { + Data_UpdateUsageMetadataInput_ +} + +func (_this UpdateUsageMetadataInput) Get_() Data_UpdateUsageMetadataInput_ { + return _this.Data_UpdateUsageMetadataInput_ +} + +type Data_UpdateUsageMetadataInput_ interface { + isUpdateUsageMetadataInput() +} + +type CompanionStruct_UpdateUsageMetadataInput_ struct { +} + +var Companion_UpdateUsageMetadataInput_ = CompanionStruct_UpdateUsageMetadataInput_{} + +type UpdateUsageMetadataInput_UpdateUsageMetadataInput struct { + Identifier _dafny.Sequence + BytesUsed int32 +} + +func (UpdateUsageMetadataInput_UpdateUsageMetadataInput) isUpdateUsageMetadataInput() {} + +func (CompanionStruct_UpdateUsageMetadataInput_) Create_UpdateUsageMetadataInput_(Identifier _dafny.Sequence, BytesUsed int32) UpdateUsageMetadataInput { + return UpdateUsageMetadataInput{UpdateUsageMetadataInput_UpdateUsageMetadataInput{Identifier, BytesUsed}} +} + +func (_this UpdateUsageMetadataInput) Is_UpdateUsageMetadataInput() bool { + _, ok := _this.Get_().(UpdateUsageMetadataInput_UpdateUsageMetadataInput) + return ok +} + +func (CompanionStruct_UpdateUsageMetadataInput_) Default() UpdateUsageMetadataInput { + return Companion_UpdateUsageMetadataInput_.Create_UpdateUsageMetadataInput_(_dafny.EmptySeq, int32(0)) +} + +func (_this UpdateUsageMetadataInput) Dtor_identifier() _dafny.Sequence { + return _this.Get_().(UpdateUsageMetadataInput_UpdateUsageMetadataInput).Identifier +} + +func (_this UpdateUsageMetadataInput) Dtor_bytesUsed() int32 { + return _this.Get_().(UpdateUsageMetadataInput_UpdateUsageMetadataInput).BytesUsed +} + +func (_this UpdateUsageMetadataInput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case UpdateUsageMetadataInput_UpdateUsageMetadataInput: + { + return "AwsCryptographyMaterialProvidersTypes.UpdateUsageMetadataInput.UpdateUsageMetadataInput" + "(" + _dafny.String(data.Identifier) + ", " + _dafny.String(data.BytesUsed) + ")" + } + default: + { + return "" + } + } +} + +func (_this UpdateUsageMetadataInput) Equals(other UpdateUsageMetadataInput) bool { + switch data1 := _this.Get_().(type) { + case UpdateUsageMetadataInput_UpdateUsageMetadataInput: + { + data2, ok := other.Get_().(UpdateUsageMetadataInput_UpdateUsageMetadataInput) + return ok && data1.Identifier.Equals(data2.Identifier) && data1.BytesUsed == data2.BytesUsed + } + default: + { + return false // unexpected + } + } +} + +func (_this UpdateUsageMetadataInput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(UpdateUsageMetadataInput) + return ok && _this.Equals(typed) +} + +func Type_UpdateUsageMetadataInput_() _dafny.TypeDescriptor { + return type_UpdateUsageMetadataInput_{} +} + +type type_UpdateUsageMetadataInput_ struct { +} + +func (_this type_UpdateUsageMetadataInput_) Default() interface{} { + return Companion_UpdateUsageMetadataInput_.Default() +} + +func (_this type_UpdateUsageMetadataInput_) String() string { + return "AwsCryptographyMaterialProvidersTypes.UpdateUsageMetadataInput" +} +func (_this UpdateUsageMetadataInput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = UpdateUsageMetadataInput{} + +// End of datatype UpdateUsageMetadataInput + +// Definition of datatype ValidateCommitmentPolicyOnDecryptInput +type ValidateCommitmentPolicyOnDecryptInput struct { + Data_ValidateCommitmentPolicyOnDecryptInput_ +} + +func (_this ValidateCommitmentPolicyOnDecryptInput) Get_() Data_ValidateCommitmentPolicyOnDecryptInput_ { + return _this.Data_ValidateCommitmentPolicyOnDecryptInput_ +} + +type Data_ValidateCommitmentPolicyOnDecryptInput_ interface { + isValidateCommitmentPolicyOnDecryptInput() +} + +type CompanionStruct_ValidateCommitmentPolicyOnDecryptInput_ struct { +} + +var Companion_ValidateCommitmentPolicyOnDecryptInput_ = CompanionStruct_ValidateCommitmentPolicyOnDecryptInput_{} + +type ValidateCommitmentPolicyOnDecryptInput_ValidateCommitmentPolicyOnDecryptInput struct { + Algorithm AlgorithmSuiteId + CommitmentPolicy CommitmentPolicy +} + +func (ValidateCommitmentPolicyOnDecryptInput_ValidateCommitmentPolicyOnDecryptInput) isValidateCommitmentPolicyOnDecryptInput() { +} + +func (CompanionStruct_ValidateCommitmentPolicyOnDecryptInput_) Create_ValidateCommitmentPolicyOnDecryptInput_(Algorithm AlgorithmSuiteId, CommitmentPolicy CommitmentPolicy) ValidateCommitmentPolicyOnDecryptInput { + return ValidateCommitmentPolicyOnDecryptInput{ValidateCommitmentPolicyOnDecryptInput_ValidateCommitmentPolicyOnDecryptInput{Algorithm, CommitmentPolicy}} +} + +func (_this ValidateCommitmentPolicyOnDecryptInput) Is_ValidateCommitmentPolicyOnDecryptInput() bool { + _, ok := _this.Get_().(ValidateCommitmentPolicyOnDecryptInput_ValidateCommitmentPolicyOnDecryptInput) + return ok +} + +func (CompanionStruct_ValidateCommitmentPolicyOnDecryptInput_) Default() ValidateCommitmentPolicyOnDecryptInput { + return Companion_ValidateCommitmentPolicyOnDecryptInput_.Create_ValidateCommitmentPolicyOnDecryptInput_(Companion_AlgorithmSuiteId_.Default(), Companion_CommitmentPolicy_.Default()) +} + +func (_this ValidateCommitmentPolicyOnDecryptInput) Dtor_algorithm() AlgorithmSuiteId { + return _this.Get_().(ValidateCommitmentPolicyOnDecryptInput_ValidateCommitmentPolicyOnDecryptInput).Algorithm +} + +func (_this ValidateCommitmentPolicyOnDecryptInput) Dtor_commitmentPolicy() CommitmentPolicy { + return _this.Get_().(ValidateCommitmentPolicyOnDecryptInput_ValidateCommitmentPolicyOnDecryptInput).CommitmentPolicy +} + +func (_this ValidateCommitmentPolicyOnDecryptInput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case ValidateCommitmentPolicyOnDecryptInput_ValidateCommitmentPolicyOnDecryptInput: + { + return "AwsCryptographyMaterialProvidersTypes.ValidateCommitmentPolicyOnDecryptInput.ValidateCommitmentPolicyOnDecryptInput" + "(" + _dafny.String(data.Algorithm) + ", " + _dafny.String(data.CommitmentPolicy) + ")" + } + default: + { + return "" + } + } +} + +func (_this ValidateCommitmentPolicyOnDecryptInput) Equals(other ValidateCommitmentPolicyOnDecryptInput) bool { + switch data1 := _this.Get_().(type) { + case ValidateCommitmentPolicyOnDecryptInput_ValidateCommitmentPolicyOnDecryptInput: + { + data2, ok := other.Get_().(ValidateCommitmentPolicyOnDecryptInput_ValidateCommitmentPolicyOnDecryptInput) + return ok && data1.Algorithm.Equals(data2.Algorithm) && data1.CommitmentPolicy.Equals(data2.CommitmentPolicy) + } + default: + { + return false // unexpected + } + } +} + +func (_this ValidateCommitmentPolicyOnDecryptInput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(ValidateCommitmentPolicyOnDecryptInput) + return ok && _this.Equals(typed) +} + +func Type_ValidateCommitmentPolicyOnDecryptInput_() _dafny.TypeDescriptor { + return type_ValidateCommitmentPolicyOnDecryptInput_{} +} + +type type_ValidateCommitmentPolicyOnDecryptInput_ struct { +} + +func (_this type_ValidateCommitmentPolicyOnDecryptInput_) Default() interface{} { + return Companion_ValidateCommitmentPolicyOnDecryptInput_.Default() +} + +func (_this type_ValidateCommitmentPolicyOnDecryptInput_) String() string { + return "AwsCryptographyMaterialProvidersTypes.ValidateCommitmentPolicyOnDecryptInput" +} +func (_this ValidateCommitmentPolicyOnDecryptInput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = ValidateCommitmentPolicyOnDecryptInput{} + +// End of datatype ValidateCommitmentPolicyOnDecryptInput + +// Definition of datatype ValidateCommitmentPolicyOnEncryptInput +type ValidateCommitmentPolicyOnEncryptInput struct { + Data_ValidateCommitmentPolicyOnEncryptInput_ +} + +func (_this ValidateCommitmentPolicyOnEncryptInput) Get_() Data_ValidateCommitmentPolicyOnEncryptInput_ { + return _this.Data_ValidateCommitmentPolicyOnEncryptInput_ +} + +type Data_ValidateCommitmentPolicyOnEncryptInput_ interface { + isValidateCommitmentPolicyOnEncryptInput() +} + +type CompanionStruct_ValidateCommitmentPolicyOnEncryptInput_ struct { +} + +var Companion_ValidateCommitmentPolicyOnEncryptInput_ = CompanionStruct_ValidateCommitmentPolicyOnEncryptInput_{} + +type ValidateCommitmentPolicyOnEncryptInput_ValidateCommitmentPolicyOnEncryptInput struct { + Algorithm AlgorithmSuiteId + CommitmentPolicy CommitmentPolicy +} + +func (ValidateCommitmentPolicyOnEncryptInput_ValidateCommitmentPolicyOnEncryptInput) isValidateCommitmentPolicyOnEncryptInput() { +} + +func (CompanionStruct_ValidateCommitmentPolicyOnEncryptInput_) Create_ValidateCommitmentPolicyOnEncryptInput_(Algorithm AlgorithmSuiteId, CommitmentPolicy CommitmentPolicy) ValidateCommitmentPolicyOnEncryptInput { + return ValidateCommitmentPolicyOnEncryptInput{ValidateCommitmentPolicyOnEncryptInput_ValidateCommitmentPolicyOnEncryptInput{Algorithm, CommitmentPolicy}} +} + +func (_this ValidateCommitmentPolicyOnEncryptInput) Is_ValidateCommitmentPolicyOnEncryptInput() bool { + _, ok := _this.Get_().(ValidateCommitmentPolicyOnEncryptInput_ValidateCommitmentPolicyOnEncryptInput) + return ok +} + +func (CompanionStruct_ValidateCommitmentPolicyOnEncryptInput_) Default() ValidateCommitmentPolicyOnEncryptInput { + return Companion_ValidateCommitmentPolicyOnEncryptInput_.Create_ValidateCommitmentPolicyOnEncryptInput_(Companion_AlgorithmSuiteId_.Default(), Companion_CommitmentPolicy_.Default()) +} + +func (_this ValidateCommitmentPolicyOnEncryptInput) Dtor_algorithm() AlgorithmSuiteId { + return _this.Get_().(ValidateCommitmentPolicyOnEncryptInput_ValidateCommitmentPolicyOnEncryptInput).Algorithm +} + +func (_this ValidateCommitmentPolicyOnEncryptInput) Dtor_commitmentPolicy() CommitmentPolicy { + return _this.Get_().(ValidateCommitmentPolicyOnEncryptInput_ValidateCommitmentPolicyOnEncryptInput).CommitmentPolicy +} + +func (_this ValidateCommitmentPolicyOnEncryptInput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case ValidateCommitmentPolicyOnEncryptInput_ValidateCommitmentPolicyOnEncryptInput: + { + return "AwsCryptographyMaterialProvidersTypes.ValidateCommitmentPolicyOnEncryptInput.ValidateCommitmentPolicyOnEncryptInput" + "(" + _dafny.String(data.Algorithm) + ", " + _dafny.String(data.CommitmentPolicy) + ")" + } + default: + { + return "" + } + } +} + +func (_this ValidateCommitmentPolicyOnEncryptInput) Equals(other ValidateCommitmentPolicyOnEncryptInput) bool { + switch data1 := _this.Get_().(type) { + case ValidateCommitmentPolicyOnEncryptInput_ValidateCommitmentPolicyOnEncryptInput: + { + data2, ok := other.Get_().(ValidateCommitmentPolicyOnEncryptInput_ValidateCommitmentPolicyOnEncryptInput) + return ok && data1.Algorithm.Equals(data2.Algorithm) && data1.CommitmentPolicy.Equals(data2.CommitmentPolicy) + } + default: + { + return false // unexpected + } + } +} + +func (_this ValidateCommitmentPolicyOnEncryptInput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(ValidateCommitmentPolicyOnEncryptInput) + return ok && _this.Equals(typed) +} + +func Type_ValidateCommitmentPolicyOnEncryptInput_() _dafny.TypeDescriptor { + return type_ValidateCommitmentPolicyOnEncryptInput_{} +} + +type type_ValidateCommitmentPolicyOnEncryptInput_ struct { +} + +func (_this type_ValidateCommitmentPolicyOnEncryptInput_) Default() interface{} { + return Companion_ValidateCommitmentPolicyOnEncryptInput_.Default() +} + +func (_this type_ValidateCommitmentPolicyOnEncryptInput_) String() string { + return "AwsCryptographyMaterialProvidersTypes.ValidateCommitmentPolicyOnEncryptInput" +} +func (_this ValidateCommitmentPolicyOnEncryptInput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = ValidateCommitmentPolicyOnEncryptInput{} + +// End of datatype ValidateCommitmentPolicyOnEncryptInput + +// Definition of datatype ValidDecryptionMaterialsTransitionInput +type ValidDecryptionMaterialsTransitionInput struct { + Data_ValidDecryptionMaterialsTransitionInput_ +} + +func (_this ValidDecryptionMaterialsTransitionInput) Get_() Data_ValidDecryptionMaterialsTransitionInput_ { + return _this.Data_ValidDecryptionMaterialsTransitionInput_ +} + +type Data_ValidDecryptionMaterialsTransitionInput_ interface { + isValidDecryptionMaterialsTransitionInput() +} + +type CompanionStruct_ValidDecryptionMaterialsTransitionInput_ struct { +} + +var Companion_ValidDecryptionMaterialsTransitionInput_ = CompanionStruct_ValidDecryptionMaterialsTransitionInput_{} + +type ValidDecryptionMaterialsTransitionInput_ValidDecryptionMaterialsTransitionInput struct { + Start DecryptionMaterials + Stop DecryptionMaterials +} + +func (ValidDecryptionMaterialsTransitionInput_ValidDecryptionMaterialsTransitionInput) isValidDecryptionMaterialsTransitionInput() { +} + +func (CompanionStruct_ValidDecryptionMaterialsTransitionInput_) Create_ValidDecryptionMaterialsTransitionInput_(Start DecryptionMaterials, Stop DecryptionMaterials) ValidDecryptionMaterialsTransitionInput { + return ValidDecryptionMaterialsTransitionInput{ValidDecryptionMaterialsTransitionInput_ValidDecryptionMaterialsTransitionInput{Start, Stop}} +} + +func (_this ValidDecryptionMaterialsTransitionInput) Is_ValidDecryptionMaterialsTransitionInput() bool { + _, ok := _this.Get_().(ValidDecryptionMaterialsTransitionInput_ValidDecryptionMaterialsTransitionInput) + return ok +} + +func (CompanionStruct_ValidDecryptionMaterialsTransitionInput_) Default() ValidDecryptionMaterialsTransitionInput { + return Companion_ValidDecryptionMaterialsTransitionInput_.Create_ValidDecryptionMaterialsTransitionInput_(Companion_DecryptionMaterials_.Default(), Companion_DecryptionMaterials_.Default()) +} + +func (_this ValidDecryptionMaterialsTransitionInput) Dtor_start() DecryptionMaterials { + return _this.Get_().(ValidDecryptionMaterialsTransitionInput_ValidDecryptionMaterialsTransitionInput).Start +} + +func (_this ValidDecryptionMaterialsTransitionInput) Dtor_stop() DecryptionMaterials { + return _this.Get_().(ValidDecryptionMaterialsTransitionInput_ValidDecryptionMaterialsTransitionInput).Stop +} + +func (_this ValidDecryptionMaterialsTransitionInput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case ValidDecryptionMaterialsTransitionInput_ValidDecryptionMaterialsTransitionInput: + { + return "AwsCryptographyMaterialProvidersTypes.ValidDecryptionMaterialsTransitionInput.ValidDecryptionMaterialsTransitionInput" + "(" + _dafny.String(data.Start) + ", " + _dafny.String(data.Stop) + ")" + } + default: + { + return "" + } + } +} + +func (_this ValidDecryptionMaterialsTransitionInput) Equals(other ValidDecryptionMaterialsTransitionInput) bool { + switch data1 := _this.Get_().(type) { + case ValidDecryptionMaterialsTransitionInput_ValidDecryptionMaterialsTransitionInput: + { + data2, ok := other.Get_().(ValidDecryptionMaterialsTransitionInput_ValidDecryptionMaterialsTransitionInput) + return ok && data1.Start.Equals(data2.Start) && data1.Stop.Equals(data2.Stop) + } + default: + { + return false // unexpected + } + } +} + +func (_this ValidDecryptionMaterialsTransitionInput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(ValidDecryptionMaterialsTransitionInput) + return ok && _this.Equals(typed) +} + +func Type_ValidDecryptionMaterialsTransitionInput_() _dafny.TypeDescriptor { + return type_ValidDecryptionMaterialsTransitionInput_{} +} + +type type_ValidDecryptionMaterialsTransitionInput_ struct { +} + +func (_this type_ValidDecryptionMaterialsTransitionInput_) Default() interface{} { + return Companion_ValidDecryptionMaterialsTransitionInput_.Default() +} + +func (_this type_ValidDecryptionMaterialsTransitionInput_) String() string { + return "AwsCryptographyMaterialProvidersTypes.ValidDecryptionMaterialsTransitionInput" +} +func (_this ValidDecryptionMaterialsTransitionInput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = ValidDecryptionMaterialsTransitionInput{} + +// End of datatype ValidDecryptionMaterialsTransitionInput + +// Definition of datatype ValidEncryptionMaterialsTransitionInput +type ValidEncryptionMaterialsTransitionInput struct { + Data_ValidEncryptionMaterialsTransitionInput_ +} + +func (_this ValidEncryptionMaterialsTransitionInput) Get_() Data_ValidEncryptionMaterialsTransitionInput_ { + return _this.Data_ValidEncryptionMaterialsTransitionInput_ +} + +type Data_ValidEncryptionMaterialsTransitionInput_ interface { + isValidEncryptionMaterialsTransitionInput() +} + +type CompanionStruct_ValidEncryptionMaterialsTransitionInput_ struct { +} + +var Companion_ValidEncryptionMaterialsTransitionInput_ = CompanionStruct_ValidEncryptionMaterialsTransitionInput_{} + +type ValidEncryptionMaterialsTransitionInput_ValidEncryptionMaterialsTransitionInput struct { + Start EncryptionMaterials + Stop EncryptionMaterials +} + +func (ValidEncryptionMaterialsTransitionInput_ValidEncryptionMaterialsTransitionInput) isValidEncryptionMaterialsTransitionInput() { +} + +func (CompanionStruct_ValidEncryptionMaterialsTransitionInput_) Create_ValidEncryptionMaterialsTransitionInput_(Start EncryptionMaterials, Stop EncryptionMaterials) ValidEncryptionMaterialsTransitionInput { + return ValidEncryptionMaterialsTransitionInput{ValidEncryptionMaterialsTransitionInput_ValidEncryptionMaterialsTransitionInput{Start, Stop}} +} + +func (_this ValidEncryptionMaterialsTransitionInput) Is_ValidEncryptionMaterialsTransitionInput() bool { + _, ok := _this.Get_().(ValidEncryptionMaterialsTransitionInput_ValidEncryptionMaterialsTransitionInput) + return ok +} + +func (CompanionStruct_ValidEncryptionMaterialsTransitionInput_) Default() ValidEncryptionMaterialsTransitionInput { + return Companion_ValidEncryptionMaterialsTransitionInput_.Create_ValidEncryptionMaterialsTransitionInput_(Companion_EncryptionMaterials_.Default(), Companion_EncryptionMaterials_.Default()) +} + +func (_this ValidEncryptionMaterialsTransitionInput) Dtor_start() EncryptionMaterials { + return _this.Get_().(ValidEncryptionMaterialsTransitionInput_ValidEncryptionMaterialsTransitionInput).Start +} + +func (_this ValidEncryptionMaterialsTransitionInput) Dtor_stop() EncryptionMaterials { + return _this.Get_().(ValidEncryptionMaterialsTransitionInput_ValidEncryptionMaterialsTransitionInput).Stop +} + +func (_this ValidEncryptionMaterialsTransitionInput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case ValidEncryptionMaterialsTransitionInput_ValidEncryptionMaterialsTransitionInput: + { + return "AwsCryptographyMaterialProvidersTypes.ValidEncryptionMaterialsTransitionInput.ValidEncryptionMaterialsTransitionInput" + "(" + _dafny.String(data.Start) + ", " + _dafny.String(data.Stop) + ")" + } + default: + { + return "" + } + } +} + +func (_this ValidEncryptionMaterialsTransitionInput) Equals(other ValidEncryptionMaterialsTransitionInput) bool { + switch data1 := _this.Get_().(type) { + case ValidEncryptionMaterialsTransitionInput_ValidEncryptionMaterialsTransitionInput: + { + data2, ok := other.Get_().(ValidEncryptionMaterialsTransitionInput_ValidEncryptionMaterialsTransitionInput) + return ok && data1.Start.Equals(data2.Start) && data1.Stop.Equals(data2.Stop) + } + default: + { + return false // unexpected + } + } +} + +func (_this ValidEncryptionMaterialsTransitionInput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(ValidEncryptionMaterialsTransitionInput) + return ok && _this.Equals(typed) +} + +func Type_ValidEncryptionMaterialsTransitionInput_() _dafny.TypeDescriptor { + return type_ValidEncryptionMaterialsTransitionInput_{} +} + +type type_ValidEncryptionMaterialsTransitionInput_ struct { +} + +func (_this type_ValidEncryptionMaterialsTransitionInput_) Default() interface{} { + return Companion_ValidEncryptionMaterialsTransitionInput_.Default() +} + +func (_this type_ValidEncryptionMaterialsTransitionInput_) String() string { + return "AwsCryptographyMaterialProvidersTypes.ValidEncryptionMaterialsTransitionInput" +} +func (_this ValidEncryptionMaterialsTransitionInput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = ValidEncryptionMaterialsTransitionInput{} + +// End of datatype ValidEncryptionMaterialsTransitionInput + +// Definition of datatype Error +type Error struct { + Data_Error_ +} + +func (_this Error) Get_() Data_Error_ { + return _this.Data_Error_ +} + +type Data_Error_ interface { + isError() +} + +type CompanionStruct_Error_ struct { +} + +var Companion_Error_ = CompanionStruct_Error_{} + +type Error_AwsCryptographicMaterialProvidersException struct { + Message _dafny.Sequence +} + +func (Error_AwsCryptographicMaterialProvidersException) isError() {} + +func (CompanionStruct_Error_) Create_AwsCryptographicMaterialProvidersException_(Message _dafny.Sequence) Error { + return Error{Error_AwsCryptographicMaterialProvidersException{Message}} +} + +func (_this Error) Is_AwsCryptographicMaterialProvidersException() bool { + _, ok := _this.Get_().(Error_AwsCryptographicMaterialProvidersException) + return ok +} + +type Error_EntryAlreadyExists struct { + Message _dafny.Sequence +} + +func (Error_EntryAlreadyExists) isError() {} + +func (CompanionStruct_Error_) Create_EntryAlreadyExists_(Message _dafny.Sequence) Error { + return Error{Error_EntryAlreadyExists{Message}} +} + +func (_this Error) Is_EntryAlreadyExists() bool { + _, ok := _this.Get_().(Error_EntryAlreadyExists) + return ok +} + +type Error_EntryDoesNotExist struct { + Message _dafny.Sequence +} + +func (Error_EntryDoesNotExist) isError() {} + +func (CompanionStruct_Error_) Create_EntryDoesNotExist_(Message _dafny.Sequence) Error { + return Error{Error_EntryDoesNotExist{Message}} +} + +func (_this Error) Is_EntryDoesNotExist() bool { + _, ok := _this.Get_().(Error_EntryDoesNotExist) + return ok +} + +type Error_InFlightTTLExceeded struct { + Message _dafny.Sequence +} + +func (Error_InFlightTTLExceeded) isError() {} + +func (CompanionStruct_Error_) Create_InFlightTTLExceeded_(Message _dafny.Sequence) Error { + return Error{Error_InFlightTTLExceeded{Message}} +} + +func (_this Error) Is_InFlightTTLExceeded() bool { + _, ok := _this.Get_().(Error_InFlightTTLExceeded) + return ok +} + +type Error_InvalidAlgorithmSuiteInfo struct { + Message _dafny.Sequence +} + +func (Error_InvalidAlgorithmSuiteInfo) isError() {} + +func (CompanionStruct_Error_) Create_InvalidAlgorithmSuiteInfo_(Message _dafny.Sequence) Error { + return Error{Error_InvalidAlgorithmSuiteInfo{Message}} +} + +func (_this Error) Is_InvalidAlgorithmSuiteInfo() bool { + _, ok := _this.Get_().(Error_InvalidAlgorithmSuiteInfo) + return ok +} + +type Error_InvalidAlgorithmSuiteInfoOnDecrypt struct { + Message _dafny.Sequence +} + +func (Error_InvalidAlgorithmSuiteInfoOnDecrypt) isError() {} + +func (CompanionStruct_Error_) Create_InvalidAlgorithmSuiteInfoOnDecrypt_(Message _dafny.Sequence) Error { + return Error{Error_InvalidAlgorithmSuiteInfoOnDecrypt{Message}} +} + +func (_this Error) Is_InvalidAlgorithmSuiteInfoOnDecrypt() bool { + _, ok := _this.Get_().(Error_InvalidAlgorithmSuiteInfoOnDecrypt) + return ok +} + +type Error_InvalidAlgorithmSuiteInfoOnEncrypt struct { + Message _dafny.Sequence +} + +func (Error_InvalidAlgorithmSuiteInfoOnEncrypt) isError() {} + +func (CompanionStruct_Error_) Create_InvalidAlgorithmSuiteInfoOnEncrypt_(Message _dafny.Sequence) Error { + return Error{Error_InvalidAlgorithmSuiteInfoOnEncrypt{Message}} +} + +func (_this Error) Is_InvalidAlgorithmSuiteInfoOnEncrypt() bool { + _, ok := _this.Get_().(Error_InvalidAlgorithmSuiteInfoOnEncrypt) + return ok +} + +type Error_InvalidDecryptionMaterials struct { + Message _dafny.Sequence +} + +func (Error_InvalidDecryptionMaterials) isError() {} + +func (CompanionStruct_Error_) Create_InvalidDecryptionMaterials_(Message _dafny.Sequence) Error { + return Error{Error_InvalidDecryptionMaterials{Message}} +} + +func (_this Error) Is_InvalidDecryptionMaterials() bool { + _, ok := _this.Get_().(Error_InvalidDecryptionMaterials) + return ok +} + +type Error_InvalidDecryptionMaterialsTransition struct { + Message _dafny.Sequence +} + +func (Error_InvalidDecryptionMaterialsTransition) isError() {} + +func (CompanionStruct_Error_) Create_InvalidDecryptionMaterialsTransition_(Message _dafny.Sequence) Error { + return Error{Error_InvalidDecryptionMaterialsTransition{Message}} +} + +func (_this Error) Is_InvalidDecryptionMaterialsTransition() bool { + _, ok := _this.Get_().(Error_InvalidDecryptionMaterialsTransition) + return ok +} + +type Error_InvalidEncryptionMaterials struct { + Message _dafny.Sequence +} + +func (Error_InvalidEncryptionMaterials) isError() {} + +func (CompanionStruct_Error_) Create_InvalidEncryptionMaterials_(Message _dafny.Sequence) Error { + return Error{Error_InvalidEncryptionMaterials{Message}} +} + +func (_this Error) Is_InvalidEncryptionMaterials() bool { + _, ok := _this.Get_().(Error_InvalidEncryptionMaterials) + return ok +} + +type Error_InvalidEncryptionMaterialsTransition struct { + Message _dafny.Sequence +} + +func (Error_InvalidEncryptionMaterialsTransition) isError() {} + +func (CompanionStruct_Error_) Create_InvalidEncryptionMaterialsTransition_(Message _dafny.Sequence) Error { + return Error{Error_InvalidEncryptionMaterialsTransition{Message}} +} + +func (_this Error) Is_InvalidEncryptionMaterialsTransition() bool { + _, ok := _this.Get_().(Error_InvalidEncryptionMaterialsTransition) + return ok +} + +type Error_AwsCryptographyKeyStore struct { + AwsCryptographyKeyStore m_AwsCryptographyKeyStoreTypes.Error +} + +func (Error_AwsCryptographyKeyStore) isError() {} + +func (CompanionStruct_Error_) Create_AwsCryptographyKeyStore_(AwsCryptographyKeyStore m_AwsCryptographyKeyStoreTypes.Error) Error { + return Error{Error_AwsCryptographyKeyStore{AwsCryptographyKeyStore}} +} + +func (_this Error) Is_AwsCryptographyKeyStore() bool { + _, ok := _this.Get_().(Error_AwsCryptographyKeyStore) + return ok +} + +type Error_AwsCryptographyPrimitives struct { + AwsCryptographyPrimitives m_AwsCryptographyPrimitivesTypes.Error +} + +func (Error_AwsCryptographyPrimitives) isError() {} + +func (CompanionStruct_Error_) Create_AwsCryptographyPrimitives_(AwsCryptographyPrimitives m_AwsCryptographyPrimitivesTypes.Error) Error { + return Error{Error_AwsCryptographyPrimitives{AwsCryptographyPrimitives}} +} + +func (_this Error) Is_AwsCryptographyPrimitives() bool { + _, ok := _this.Get_().(Error_AwsCryptographyPrimitives) + return ok +} + +type Error_ComAmazonawsDynamodb struct { + ComAmazonawsDynamodb m_ComAmazonawsDynamodbTypes.Error +} + +func (Error_ComAmazonawsDynamodb) isError() {} + +func (CompanionStruct_Error_) Create_ComAmazonawsDynamodb_(ComAmazonawsDynamodb m_ComAmazonawsDynamodbTypes.Error) Error { + return Error{Error_ComAmazonawsDynamodb{ComAmazonawsDynamodb}} +} + +func (_this Error) Is_ComAmazonawsDynamodb() bool { + _, ok := _this.Get_().(Error_ComAmazonawsDynamodb) + return ok +} + +type Error_ComAmazonawsKms struct { + ComAmazonawsKms m_ComAmazonawsKmsTypes.Error +} + +func (Error_ComAmazonawsKms) isError() {} + +func (CompanionStruct_Error_) Create_ComAmazonawsKms_(ComAmazonawsKms m_ComAmazonawsKmsTypes.Error) Error { + return Error{Error_ComAmazonawsKms{ComAmazonawsKms}} +} + +func (_this Error) Is_ComAmazonawsKms() bool { + _, ok := _this.Get_().(Error_ComAmazonawsKms) + return ok +} + +type Error_CollectionOfErrors struct { + List _dafny.Sequence + Message _dafny.Sequence +} + +func (Error_CollectionOfErrors) isError() {} + +func (CompanionStruct_Error_) Create_CollectionOfErrors_(List _dafny.Sequence, Message _dafny.Sequence) Error { + return Error{Error_CollectionOfErrors{List, Message}} +} + +func (_this Error) Is_CollectionOfErrors() bool { + _, ok := _this.Get_().(Error_CollectionOfErrors) + return ok +} + +type Error_Opaque struct { + Obj interface{} +} + +func (Error_Opaque) isError() {} + +func (CompanionStruct_Error_) Create_Opaque_(Obj interface{}) Error { + return Error{Error_Opaque{Obj}} +} + +func (_this Error) Is_Opaque() bool { + _, ok := _this.Get_().(Error_Opaque) + return ok +} + +type Error_OpaqueWithText struct { + Obj interface{} + ObjMessage _dafny.Sequence +} + +func (Error_OpaqueWithText) isError() {} + +func (CompanionStruct_Error_) Create_OpaqueWithText_(Obj interface{}, ObjMessage _dafny.Sequence) Error { + return Error{Error_OpaqueWithText{Obj, ObjMessage}} +} + +func (_this Error) Is_OpaqueWithText() bool { + _, ok := _this.Get_().(Error_OpaqueWithText) + return ok +} + +func (CompanionStruct_Error_) Default() Error { + return Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.EmptySeq.SetString()) +} + +func (_this Error) Dtor_message() _dafny.Sequence { + switch data := _this.Get_().(type) { + case Error_AwsCryptographicMaterialProvidersException: + return data.Message + case Error_EntryAlreadyExists: + return data.Message + case Error_EntryDoesNotExist: + return data.Message + case Error_InFlightTTLExceeded: + return data.Message + case Error_InvalidAlgorithmSuiteInfo: + return data.Message + case Error_InvalidAlgorithmSuiteInfoOnDecrypt: + return data.Message + case Error_InvalidAlgorithmSuiteInfoOnEncrypt: + return data.Message + case Error_InvalidDecryptionMaterials: + return data.Message + case Error_InvalidDecryptionMaterialsTransition: + return data.Message + case Error_InvalidEncryptionMaterials: + return data.Message + case Error_InvalidEncryptionMaterialsTransition: + return data.Message + default: + return data.(Error_CollectionOfErrors).Message + } +} + +func (_this Error) Dtor_AwsCryptographyKeyStore() m_AwsCryptographyKeyStoreTypes.Error { + return _this.Get_().(Error_AwsCryptographyKeyStore).AwsCryptographyKeyStore +} + +func (_this Error) Dtor_AwsCryptographyPrimitives() m_AwsCryptographyPrimitivesTypes.Error { + return _this.Get_().(Error_AwsCryptographyPrimitives).AwsCryptographyPrimitives +} + +func (_this Error) Dtor_ComAmazonawsDynamodb() m_ComAmazonawsDynamodbTypes.Error { + return _this.Get_().(Error_ComAmazonawsDynamodb).ComAmazonawsDynamodb +} + +func (_this Error) Dtor_ComAmazonawsKms() m_ComAmazonawsKmsTypes.Error { + return _this.Get_().(Error_ComAmazonawsKms).ComAmazonawsKms +} + +func (_this Error) Dtor_list() _dafny.Sequence { + return _this.Get_().(Error_CollectionOfErrors).List +} + +func (_this Error) Dtor_obj() interface{} { + switch data := _this.Get_().(type) { + case Error_Opaque: + return data.Obj + default: + return data.(Error_OpaqueWithText).Obj + } +} + +func (_this Error) Dtor_objMessage() _dafny.Sequence { + return _this.Get_().(Error_OpaqueWithText).ObjMessage +} + +func (_this Error) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case Error_AwsCryptographicMaterialProvidersException: + { + return "AwsCryptographyMaterialProvidersTypes.Error.AwsCryptographicMaterialProvidersException" + "(" + _dafny.String(data.Message) + ")" + } + case Error_EntryAlreadyExists: + { + return "AwsCryptographyMaterialProvidersTypes.Error.EntryAlreadyExists" + "(" + _dafny.String(data.Message) + ")" + } + case Error_EntryDoesNotExist: + { + return "AwsCryptographyMaterialProvidersTypes.Error.EntryDoesNotExist" + "(" + _dafny.String(data.Message) + ")" + } + case Error_InFlightTTLExceeded: + { + return "AwsCryptographyMaterialProvidersTypes.Error.InFlightTTLExceeded" + "(" + _dafny.String(data.Message) + ")" + } + case Error_InvalidAlgorithmSuiteInfo: + { + return "AwsCryptographyMaterialProvidersTypes.Error.InvalidAlgorithmSuiteInfo" + "(" + _dafny.String(data.Message) + ")" + } + case Error_InvalidAlgorithmSuiteInfoOnDecrypt: + { + return "AwsCryptographyMaterialProvidersTypes.Error.InvalidAlgorithmSuiteInfoOnDecrypt" + "(" + _dafny.String(data.Message) + ")" + } + case Error_InvalidAlgorithmSuiteInfoOnEncrypt: + { + return "AwsCryptographyMaterialProvidersTypes.Error.InvalidAlgorithmSuiteInfoOnEncrypt" + "(" + _dafny.String(data.Message) + ")" + } + case Error_InvalidDecryptionMaterials: + { + return "AwsCryptographyMaterialProvidersTypes.Error.InvalidDecryptionMaterials" + "(" + _dafny.String(data.Message) + ")" + } + case Error_InvalidDecryptionMaterialsTransition: + { + return "AwsCryptographyMaterialProvidersTypes.Error.InvalidDecryptionMaterialsTransition" + "(" + _dafny.String(data.Message) + ")" + } + case Error_InvalidEncryptionMaterials: + { + return "AwsCryptographyMaterialProvidersTypes.Error.InvalidEncryptionMaterials" + "(" + _dafny.String(data.Message) + ")" + } + case Error_InvalidEncryptionMaterialsTransition: + { + return "AwsCryptographyMaterialProvidersTypes.Error.InvalidEncryptionMaterialsTransition" + "(" + _dafny.String(data.Message) + ")" + } + case Error_AwsCryptographyKeyStore: + { + return "AwsCryptographyMaterialProvidersTypes.Error.AwsCryptographyKeyStore" + "(" + _dafny.String(data.AwsCryptographyKeyStore) + ")" + } + case Error_AwsCryptographyPrimitives: + { + return "AwsCryptographyMaterialProvidersTypes.Error.AwsCryptographyPrimitives" + "(" + _dafny.String(data.AwsCryptographyPrimitives) + ")" + } + case Error_ComAmazonawsDynamodb: + { + return "AwsCryptographyMaterialProvidersTypes.Error.ComAmazonawsDynamodb" + "(" + _dafny.String(data.ComAmazonawsDynamodb) + ")" + } + case Error_ComAmazonawsKms: + { + return "AwsCryptographyMaterialProvidersTypes.Error.ComAmazonawsKms" + "(" + _dafny.String(data.ComAmazonawsKms) + ")" + } + case Error_CollectionOfErrors: + { + return "AwsCryptographyMaterialProvidersTypes.Error.CollectionOfErrors" + "(" + _dafny.String(data.List) + ", " + _dafny.String(data.Message) + ")" + } + case Error_Opaque: + { + return "AwsCryptographyMaterialProvidersTypes.Error.Opaque" + "(" + _dafny.String(data.Obj) + ")" + } + case Error_OpaqueWithText: + { + return "AwsCryptographyMaterialProvidersTypes.Error.OpaqueWithText" + "(" + _dafny.String(data.Obj) + ", " + _dafny.String(data.ObjMessage) + ")" + } + default: + { + return "" + } + } +} + +func (_this Error) Equals(other Error) bool { + switch data1 := _this.Get_().(type) { + case Error_AwsCryptographicMaterialProvidersException: + { + data2, ok := other.Get_().(Error_AwsCryptographicMaterialProvidersException) + return ok && data1.Message.Equals(data2.Message) + } + case Error_EntryAlreadyExists: + { + data2, ok := other.Get_().(Error_EntryAlreadyExists) + return ok && data1.Message.Equals(data2.Message) + } + case Error_EntryDoesNotExist: + { + data2, ok := other.Get_().(Error_EntryDoesNotExist) + return ok && data1.Message.Equals(data2.Message) + } + case Error_InFlightTTLExceeded: + { + data2, ok := other.Get_().(Error_InFlightTTLExceeded) + return ok && data1.Message.Equals(data2.Message) + } + case Error_InvalidAlgorithmSuiteInfo: + { + data2, ok := other.Get_().(Error_InvalidAlgorithmSuiteInfo) + return ok && data1.Message.Equals(data2.Message) + } + case Error_InvalidAlgorithmSuiteInfoOnDecrypt: + { + data2, ok := other.Get_().(Error_InvalidAlgorithmSuiteInfoOnDecrypt) + return ok && data1.Message.Equals(data2.Message) + } + case Error_InvalidAlgorithmSuiteInfoOnEncrypt: + { + data2, ok := other.Get_().(Error_InvalidAlgorithmSuiteInfoOnEncrypt) + return ok && data1.Message.Equals(data2.Message) + } + case Error_InvalidDecryptionMaterials: + { + data2, ok := other.Get_().(Error_InvalidDecryptionMaterials) + return ok && data1.Message.Equals(data2.Message) + } + case Error_InvalidDecryptionMaterialsTransition: + { + data2, ok := other.Get_().(Error_InvalidDecryptionMaterialsTransition) + return ok && data1.Message.Equals(data2.Message) + } + case Error_InvalidEncryptionMaterials: + { + data2, ok := other.Get_().(Error_InvalidEncryptionMaterials) + return ok && data1.Message.Equals(data2.Message) + } + case Error_InvalidEncryptionMaterialsTransition: + { + data2, ok := other.Get_().(Error_InvalidEncryptionMaterialsTransition) + return ok && data1.Message.Equals(data2.Message) + } + case Error_AwsCryptographyKeyStore: + { + data2, ok := other.Get_().(Error_AwsCryptographyKeyStore) + return ok && data1.AwsCryptographyKeyStore.Equals(data2.AwsCryptographyKeyStore) + } + case Error_AwsCryptographyPrimitives: + { + data2, ok := other.Get_().(Error_AwsCryptographyPrimitives) + return ok && data1.AwsCryptographyPrimitives.Equals(data2.AwsCryptographyPrimitives) + } + case Error_ComAmazonawsDynamodb: + { + data2, ok := other.Get_().(Error_ComAmazonawsDynamodb) + return ok && data1.ComAmazonawsDynamodb.Equals(data2.ComAmazonawsDynamodb) + } + case Error_ComAmazonawsKms: + { + data2, ok := other.Get_().(Error_ComAmazonawsKms) + return ok && data1.ComAmazonawsKms.Equals(data2.ComAmazonawsKms) + } + case Error_CollectionOfErrors: + { + data2, ok := other.Get_().(Error_CollectionOfErrors) + return ok && data1.List.Equals(data2.List) && data1.Message.Equals(data2.Message) + } + case Error_Opaque: + { + data2, ok := other.Get_().(Error_Opaque) + return ok && _dafny.AreEqual(data1.Obj, data2.Obj) + } + case Error_OpaqueWithText: + { + data2, ok := other.Get_().(Error_OpaqueWithText) + return ok && _dafny.AreEqual(data1.Obj, data2.Obj) && data1.ObjMessage.Equals(data2.ObjMessage) + } + default: + { + return false // unexpected + } + } +} + +func (_this Error) EqualsGeneric(other interface{}) bool { + typed, ok := other.(Error) + return ok && _this.Equals(typed) +} + +func Type_Error_() _dafny.TypeDescriptor { + return type_Error_{} +} + +type type_Error_ struct { +} + +func (_this type_Error_) Default() interface{} { + return Companion_Error_.Default() +} + +func (_this type_Error_) String() string { + return "AwsCryptographyMaterialProvidersTypes.Error" +} +func (_this Error) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = Error{} + +// End of datatype Error + +// Definition of class OpaqueError +type OpaqueError struct { +} + +func New_OpaqueError_() *OpaqueError { + _this := OpaqueError{} + + return &_this +} + +type CompanionStruct_OpaqueError_ struct { +} + +var Companion_OpaqueError_ = CompanionStruct_OpaqueError_{} + +func (*OpaqueError) String() string { + return "AwsCryptographyMaterialProvidersTypes.OpaqueError" +} + +// End of class OpaqueError + +func Type_OpaqueError_() _dafny.TypeDescriptor { + return type_OpaqueError_{} +} + +type type_OpaqueError_ struct { +} + +func (_this type_OpaqueError_) Default() interface{} { + return Companion_Error_.Default() +} + +func (_this type_OpaqueError_) String() string { + return "AwsCryptographyMaterialProvidersTypes.OpaqueError" +} +func (_this *CompanionStruct_OpaqueError_) Is_(__source Error) bool { + var _2_e Error = (__source) + _ = _2_e + return ((_2_e).Is_Opaque()) || ((_2_e).Is_OpaqueWithText()) +} + +// Definition of class DummySubsetType +type DummySubsetType struct { +} + +func New_DummySubsetType_() *DummySubsetType { + _this := DummySubsetType{} + + return &_this +} + +type CompanionStruct_DummySubsetType_ struct { +} + +var Companion_DummySubsetType_ = CompanionStruct_DummySubsetType_{} + +func (*DummySubsetType) String() string { + return "AwsCryptographyMaterialProvidersTypes.DummySubsetType" +} +func (_this *CompanionStruct_DummySubsetType_) Witness() _dafny.Int { + return _dafny.One +} + +// End of class DummySubsetType + +func Type_DummySubsetType_() _dafny.TypeDescriptor { + return type_DummySubsetType_{} +} + +type type_DummySubsetType_ struct { +} + +func (_this type_DummySubsetType_) Default() interface{} { + return Companion_DummySubsetType_.Witness() +} + +func (_this type_DummySubsetType_) String() string { + return "AwsCryptographyMaterialProvidersTypes.DummySubsetType" +} +func (_this *CompanionStruct_DummySubsetType_) Is_(__source _dafny.Int) bool { + var _3_x _dafny.Int = (__source) + _ = _3_x + return Companion_Default___.IsDummySubsetType(_3_x) +} diff --git a/customer-preview/mpl/AwsKmsDiscoveryKeyring/AwsKmsDiscoveryKeyring.go b/customer-preview/mpl/AwsKmsDiscoveryKeyring/AwsKmsDiscoveryKeyring.go new file mode 100644 index 000000000..5cd860463 --- /dev/null +++ b/customer-preview/mpl/AwsKmsDiscoveryKeyring/AwsKmsDiscoveryKeyring.go @@ -0,0 +1,808 @@ +// Package AwsKmsDiscoveryKeyring +// Dafny module AwsKmsDiscoveryKeyring compiled into Go + +package AwsKmsDiscoveryKeyring + +import ( + os "os" + + m_ComAmazonawsDynamodbTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/ComAmazonawsDynamodbTypes" + m_Com_Amazonaws_Dynamodb "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/Com_Amazonaws_Dynamodb" + m_ComAmazonawsKmsTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/ComAmazonawsKmsTypes" + m_Com_Amazonaws_Kms "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/Com_Amazonaws_Kms" + m_AlgorithmSuites "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AlgorithmSuites" + m_AwsArnParsing "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsArnParsing" + m_AwsCryptographyKeyStoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreOperations" + m_AwsCryptographyKeyStoreTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreTypes" + m_AwsCryptographyMaterialProvidersTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersTypes" + m_AwsKmsKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsKeyring" + m_AwsKmsMrkAreUnique "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkAreUnique" + m_AwsKmsMrkMatchForDecrypt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkMatchForDecrypt" + m_AwsKmsUtils "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsUtils" + m_CanonicalEncryptionContext "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CanonicalEncryptionContext" + m_Constants "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Constants" + m_CreateKeyStoreTable "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeyStoreTable" + m_CreateKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeys" + m_DDBKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DDBKeystoreOperations" + m_EdkWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/EdkWrapping" + m_ErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/ErrorMessages" + m_GetKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/GetKeys" + m_IntermediateKeyWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/IntermediateKeyWrapping" + m_KMSKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KMSKeystoreOperations" + m_KeyStore "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStore" + m_KeyStoreErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStoreErrorMessages" + m_Keyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Keyring" + m_KmsArn "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KmsArn" + m_MaterialWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MaterialWrapping" + m_Materials "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Materials" + m_MultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MultiKeyring" + m_StrictMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StrictMultiKeyring" + m_Structure "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Structure" + m_AtomicPrimitives "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AtomicPrimitives" + m_AwsCryptographyPrimitivesOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesOperations" + m_AwsCryptographyPrimitivesTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesTypes" + m_Digest "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Digest" + m_HKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/HKDF" + m_KdfCtr "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/KdfCtr" + m_Random "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Random" + m_WrappedHKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHKDF" + m_WrappedHMAC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHMAC" + m_Actions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Actions" + m_Base64 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64" + m_Base64Lemmas "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64Lemmas" + m_BoundedInts "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/BoundedInts" + m_DivInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternals" + m_DivInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternalsNonlinear" + m_DivMod "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivMod" + m_FileIO "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FileIO" + m_FloatCompare "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FloatCompare" + m_Functions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Functions" + m_GeneralInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GeneralInternals" + m_GetOpt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GetOpt" + m_HexStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/HexStrings" + m_Logarithm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Logarithm" + m__Math "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Math_" + m_ModInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternals" + m_ModInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternalsNonlinear" + m_Mul "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Mul" + m_MulInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternals" + m_MulInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternalsNonlinear" + m_Power "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Power" + m_Relations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Relations" + m_Seq "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq" + m_Seq_MergeSort "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq_MergeSort" + m_Sorting "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Sorting" + m_StandardLibrary "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary" + m_StandardLibraryInterop "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibraryInterop" + m_StandardLibrary_Sequence "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_Sequence" + m_StandardLibrary_String "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_String" + m_StandardLibrary_UInt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_UInt" + m_Streams "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Streams" + m_UTF8 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UTF8" + m_UnicodeStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UnicodeStrings" + m__Unicode "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Unicode_" + m_Utf16EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf16EncodingForm" + m_Utf8EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf8EncodingForm" + m_Wrappers "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers" + m__System "github.com/dafny-lang/DafnyRuntimeGo/v4/System_" + _dafny "github.com/dafny-lang/DafnyRuntimeGo/v4/dafny" +) + +var _ = os.Args +var _ _dafny.Dummy__ +var _ m__System.Dummy__ +var _ m_Wrappers.Dummy__ +var _ m_BoundedInts.Dummy__ +var _ m_StandardLibrary_UInt.Dummy__ +var _ m_StandardLibrary_Sequence.Dummy__ +var _ m_StandardLibrary_String.Dummy__ +var _ m_StandardLibrary.Dummy__ +var _ m_AwsCryptographyPrimitivesTypes.Dummy__ +var _ m_Random.Dummy__ +var _ m_Digest.Dummy__ +var _ m_WrappedHMAC.Dummy__ +var _ m_HKDF.Dummy__ +var _ m_WrappedHKDF.Dummy__ +var _ m_KdfCtr.Dummy__ +var _ m_AwsCryptographyPrimitivesOperations.Dummy__ +var _ m_AtomicPrimitives.Dummy__ +var _ m_ComAmazonawsDynamodbTypes.Dummy__ +var _ m_ComAmazonawsKmsTypes.Dummy__ +var _ m_Relations.Dummy__ +var _ m_Seq_MergeSort.Dummy__ +var _ m__Math.Dummy__ +var _ m_Seq.Dummy__ +var _ m__Unicode.Dummy__ +var _ m_Functions.Dummy__ +var _ m_Utf8EncodingForm.Dummy__ +var _ m_Utf16EncodingForm.Dummy__ +var _ m_UnicodeStrings.Dummy__ +var _ m_FileIO.Dummy__ +var _ m_GeneralInternals.Dummy__ +var _ m_MulInternalsNonlinear.Dummy__ +var _ m_MulInternals.Dummy__ +var _ m_Mul.Dummy__ +var _ m_ModInternalsNonlinear.Dummy__ +var _ m_DivInternalsNonlinear.Dummy__ +var _ m_ModInternals.Dummy__ +var _ m_DivInternals.Dummy__ +var _ m_DivMod.Dummy__ +var _ m_Power.Dummy__ +var _ m_Logarithm.Dummy__ +var _ m_StandardLibraryInterop.Dummy__ +var _ m_Streams.Dummy__ +var _ m_Sorting.Dummy__ +var _ m_HexStrings.Dummy__ +var _ m_GetOpt.Dummy__ +var _ m_FloatCompare.Dummy__ +var _ m_Base64.Dummy__ +var _ m_Base64Lemmas.Dummy__ +var _ m_Actions.Dummy__ +var _ m_AwsCryptographyKeyStoreTypes.Dummy__ +var _ m_AwsCryptographyMaterialProvidersTypes.Dummy__ +var _ m_AwsArnParsing.Dummy__ +var _ m_AwsKmsMrkMatchForDecrypt.Dummy__ +var _ m_AwsKmsUtils.Dummy__ +var _ m_KeyStoreErrorMessages.Dummy__ +var _ m_KmsArn.Dummy__ +var _ m_Structure.Dummy__ +var _ m_KMSKeystoreOperations.Dummy__ +var _ m_DDBKeystoreOperations.Dummy__ +var _ m_CreateKeys.Dummy__ +var _ m_CreateKeyStoreTable.Dummy__ +var _ m_GetKeys.Dummy__ +var _ m_AwsCryptographyKeyStoreOperations.Dummy__ +var _ m_Com_Amazonaws_Kms.Dummy__ +var _ m_Com_Amazonaws_Dynamodb.Dummy__ +var _ m_KeyStore.Dummy__ +var _ m_AlgorithmSuites.Dummy__ +var _ m_Materials.Dummy__ +var _ m_Keyring.Dummy__ +var _ m_MultiKeyring.Dummy__ +var _ m_AwsKmsMrkAreUnique.Dummy__ +var _ m_Constants.Dummy__ +var _ m_MaterialWrapping.Dummy__ +var _ m_CanonicalEncryptionContext.Dummy__ +var _ m_IntermediateKeyWrapping.Dummy__ +var _ m_EdkWrapping.Dummy__ +var _ m_ErrorMessages.Dummy__ +var _ m_AwsKmsKeyring.Dummy__ +var _ m_StrictMultiKeyring.Dummy__ + +type Dummy__ struct{} + +// Definition of class Default__ +type Default__ struct { + dummy byte +} + +func New_Default___() *Default__ { + _this := Default__{} + + return &_this +} + +type CompanionStruct_Default___ struct { +} + +var Companion_Default___ = CompanionStruct_Default___{} + +func (_this *Default__) Equals(other *Default__) bool { + return _this == other +} + +func (_this *Default__) EqualsGeneric(x interface{}) bool { + other, ok := x.(*Default__) + return ok && _this.Equals(other) +} + +func (*Default__) String() string { + return "AwsKmsDiscoveryKeyring.Default__" +} +func (_this *Default__) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = &Default__{} + +func (_static *CompanionStruct_Default___) DiscoveryMatch(arn m_AwsArnParsing.AwsArn, discoveryFilter m_Wrappers.Option) bool { + return (true) && (func() bool { + var _source0 m_Wrappers.Option = discoveryFilter + _ = _source0 + { + if _source0.Is_Some() { + var _0_filter m_AwsCryptographyMaterialProvidersTypes.DiscoveryFilter = _source0.Get_().(m_Wrappers.Option_Some).Value.(m_AwsCryptographyMaterialProvidersTypes.DiscoveryFilter) + _ = _0_filter + return (_dafny.Companion_Sequence_.Equal((_0_filter).Dtor_partition(), (arn).Dtor_partition())) && (_dafny.Companion_Sequence_.IsPrefixOf((_0_filter).Dtor_accountIds(), _dafny.SeqOf((arn).Dtor_account()))) + } + } + { + return true + } + }()) +} + +// End of class Default__ + +// Definition of class AwsKmsDiscoveryKeyring +type AwsKmsDiscoveryKeyring struct { + _client m_ComAmazonawsKmsTypes.IKMSClient + _discoveryFilter m_Wrappers.Option + _grantTokens _dafny.Sequence +} + +func New_AwsKmsDiscoveryKeyring_() *AwsKmsDiscoveryKeyring { + _this := AwsKmsDiscoveryKeyring{} + + _this._client = (m_ComAmazonawsKmsTypes.IKMSClient)(nil) + _this._discoveryFilter = m_Wrappers.Companion_Option_.Default() + _this._grantTokens = _dafny.EmptySeq + return &_this +} + +type CompanionStruct_AwsKmsDiscoveryKeyring_ struct { +} + +var Companion_AwsKmsDiscoveryKeyring_ = CompanionStruct_AwsKmsDiscoveryKeyring_{} + +func (_this *AwsKmsDiscoveryKeyring) Equals(other *AwsKmsDiscoveryKeyring) bool { + return _this == other +} + +func (_this *AwsKmsDiscoveryKeyring) EqualsGeneric(x interface{}) bool { + other, ok := x.(*AwsKmsDiscoveryKeyring) + return ok && _this.Equals(other) +} + +func (*AwsKmsDiscoveryKeyring) String() string { + return "AwsKmsDiscoveryKeyring.AwsKmsDiscoveryKeyring" +} + +func Type_AwsKmsDiscoveryKeyring_() _dafny.TypeDescriptor { + return type_AwsKmsDiscoveryKeyring_{} +} + +type type_AwsKmsDiscoveryKeyring_ struct { +} + +func (_this type_AwsKmsDiscoveryKeyring_) Default() interface{} { + return (*AwsKmsDiscoveryKeyring)(nil) +} + +func (_this type_AwsKmsDiscoveryKeyring_) String() string { + return "AwsKmsDiscoveryKeyring.AwsKmsDiscoveryKeyring" +} +func (_this *AwsKmsDiscoveryKeyring) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){m_Keyring.Companion_VerifiableInterface_.TraitID_, m_AwsCryptographyMaterialProvidersTypes.Companion_IKeyring_.TraitID_} +} + +var _ m_Keyring.VerifiableInterface = &AwsKmsDiscoveryKeyring{} +var _ m_AwsCryptographyMaterialProvidersTypes.IKeyring = &AwsKmsDiscoveryKeyring{} +var _ _dafny.TraitOffspring = &AwsKmsDiscoveryKeyring{} + +func (_this *AwsKmsDiscoveryKeyring) OnDecrypt(input m_AwsCryptographyMaterialProvidersTypes.OnDecryptInput) m_Wrappers.Result { + var _out3 m_Wrappers.Result + _ = _out3 + _out3 = m_AwsCryptographyMaterialProvidersTypes.Companion_IKeyring_.OnDecrypt(_this, input) + return _out3 +} +func (_this *AwsKmsDiscoveryKeyring) OnEncrypt(input m_AwsCryptographyMaterialProvidersTypes.OnEncryptInput) m_Wrappers.Result { + var _out3 m_Wrappers.Result + _ = _out3 + _out3 = m_AwsCryptographyMaterialProvidersTypes.Companion_IKeyring_.OnEncrypt(_this, input) + return _out3 +} +func (_this *AwsKmsDiscoveryKeyring) Ctor__(client m_ComAmazonawsKmsTypes.IKMSClient, discoveryFilter m_Wrappers.Option, grantTokens _dafny.Sequence) { + { + (_this)._client = client + (_this)._discoveryFilter = discoveryFilter + (_this)._grantTokens = grantTokens + } +} +func (_this *AwsKmsDiscoveryKeyring) OnEncrypt_k(input m_AwsCryptographyMaterialProvidersTypes.OnEncryptInput) m_Wrappers.Result { + { + var output m_Wrappers.Result = m_Wrappers.Result{} + _ = output + output = m_Wrappers.Companion_Result_.Create_Failure_(m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.SeqOfString("Encryption is not supported with a Discovery Keyring."))) + return output + return output + } +} +func (_this *AwsKmsDiscoveryKeyring) OnDecrypt_k(input m_AwsCryptographyMaterialProvidersTypes.OnDecryptInput) m_Wrappers.Result { + { + var res m_Wrappers.Result = m_Wrappers.Result{} + _ = res + var _0_materials m_AwsCryptographyMaterialProvidersTypes.DecryptionMaterials + _ = _0_materials + _0_materials = (input).Dtor_materials() + var _1_encryptedDataKeys _dafny.Sequence + _ = _1_encryptedDataKeys + _1_encryptedDataKeys = (input).Dtor_encryptedDataKeys() + var _2_suite m_AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo + _ = _2_suite + _2_suite = ((input).Dtor_materials()).Dtor_algorithmSuite() + var _3_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _3_valueOrError0 + _3_valueOrError0 = m_Wrappers.Companion_Default___.Need(m_Materials.Companion_Default___.DecryptionMaterialsWithoutPlaintextDataKey(_0_materials), m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.SeqOfString("Keyring received decryption materials that already contain a plaintext data key."))) + if (_3_valueOrError0).IsFailure() { + res = (_3_valueOrError0).PropagateFailure() + return res + } + var _4_edkFilter *AwsKmsEncryptedDataKeyFilter + _ = _4_edkFilter + var _nw0 *AwsKmsEncryptedDataKeyFilter = New_AwsKmsEncryptedDataKeyFilter_() + _ = _nw0 + _nw0.Ctor__((_this).DiscoveryFilter()) + _4_edkFilter = _nw0 + var _5_valueOrError1 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = _5_valueOrError1 + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_Actions.Companion_Default___.FilterWithResult(_4_edkFilter, _1_encryptedDataKeys) + _5_valueOrError1 = _out0 + if (_5_valueOrError1).IsFailure() { + res = (_5_valueOrError1).PropagateFailure() + return res + } + var _6_matchingEdks _dafny.Sequence + _ = _6_matchingEdks + _6_matchingEdks = (_5_valueOrError1).Extract().(_dafny.Sequence) + var _7_edkTransform *AwsKmsEncryptedDataKeyTransformer + _ = _7_edkTransform + var _nw1 *AwsKmsEncryptedDataKeyTransformer = New_AwsKmsEncryptedDataKeyTransformer_() + _ = _nw1 + _nw1.Ctor__() + _7_edkTransform = _nw1 + var _8_valueOrError2 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = _8_valueOrError2 + var _out1 m_Wrappers.Result + _ = _out1 + _out1 = m_Actions.Companion_Default___.DeterministicFlatMapWithResult(_7_edkTransform, _6_matchingEdks) + _8_valueOrError2 = _out1 + if (_8_valueOrError2).IsFailure() { + res = (_8_valueOrError2).PropagateFailure() + return res + } + var _9_edksToAttempt _dafny.Sequence + _ = _9_edksToAttempt + _9_edksToAttempt = (_8_valueOrError2).Extract().(_dafny.Sequence) + if (_dafny.IntOfUint32((_9_edksToAttempt).Cardinality())).Sign() == 0 { + var _10_valueOrError3 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq.SetString()) + _ = _10_valueOrError3 + _10_valueOrError3 = m_ErrorMessages.Companion_Default___.IncorrectDataKeys((input).Dtor_encryptedDataKeys(), ((input).Dtor_materials()).Dtor_algorithmSuite(), _dafny.SeqOfString("")) + if (_10_valueOrError3).IsFailure() { + res = (_10_valueOrError3).PropagateFailure() + return res + } + var _11_errorMessage _dafny.Sequence + _ = _11_errorMessage + _11_errorMessage = (_10_valueOrError3).Extract().(_dafny.Sequence) + res = m_Wrappers.Companion_Result_.Create_Failure_(m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_11_errorMessage)) + return res + } + var _12_decryptAction *AwsKmsEncryptedDataKeyDecryptor + _ = _12_decryptAction + var _nw2 *AwsKmsEncryptedDataKeyDecryptor = New_AwsKmsEncryptedDataKeyDecryptor_() + _ = _nw2 + _nw2.Ctor__(_0_materials, (_this).Client(), (_this).GrantTokens()) + _12_decryptAction = _nw2 + var _13_outcome m_Wrappers.Result + _ = _13_outcome + var _out2 m_Wrappers.Result + _ = _out2 + _out2 = m_Actions.Companion_Default___.ReduceToSuccess(_12_decryptAction, _9_edksToAttempt) + _13_outcome = _out2 + var _source0 m_Wrappers.Result = _13_outcome + _ = _source0 + { + { + if _source0.Is_Success() { + var _14_mat m_AwsCryptographyMaterialProvidersTypes.DecryptionMaterials = _source0.Get_().(m_Wrappers.Result_Success).Value.(m_AwsCryptographyMaterialProvidersTypes.DecryptionMaterials) + _ = _14_mat + res = m_Wrappers.Companion_Result_.Create_Success_(m_AwsCryptographyMaterialProvidersTypes.Companion_OnDecryptOutput_.Create_OnDecryptOutput_(_14_mat)) + goto Lmatch0 + } + } + { + var _15_errors _dafny.Sequence = _source0.Get_().(m_Wrappers.Result_Failure).Error.(_dafny.Sequence) + _ = _15_errors + res = m_Wrappers.Companion_Result_.Create_Failure_(m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_CollectionOfErrors_(_15_errors, _dafny.SeqOfString("No Configured KMS Key was able to decrypt the Data Key. The list of encountered Exceptions is available via `list`."))) + } + goto Lmatch0 + } + Lmatch0: + return res + return res + } +} +func (_this *AwsKmsDiscoveryKeyring) Client() m_ComAmazonawsKmsTypes.IKMSClient { + { + return _this._client + } +} +func (_this *AwsKmsDiscoveryKeyring) DiscoveryFilter() m_Wrappers.Option { + { + return _this._discoveryFilter + } +} +func (_this *AwsKmsDiscoveryKeyring) GrantTokens() _dafny.Sequence { + { + return _this._grantTokens + } +} + +// End of class AwsKmsDiscoveryKeyring + +// Definition of class AwsKmsEncryptedDataKeyFilter +type AwsKmsEncryptedDataKeyFilter struct { + _discoveryFilter m_Wrappers.Option +} + +func New_AwsKmsEncryptedDataKeyFilter_() *AwsKmsEncryptedDataKeyFilter { + _this := AwsKmsEncryptedDataKeyFilter{} + + _this._discoveryFilter = m_Wrappers.Companion_Option_.Default() + return &_this +} + +type CompanionStruct_AwsKmsEncryptedDataKeyFilter_ struct { +} + +var Companion_AwsKmsEncryptedDataKeyFilter_ = CompanionStruct_AwsKmsEncryptedDataKeyFilter_{} + +func (_this *AwsKmsEncryptedDataKeyFilter) Equals(other *AwsKmsEncryptedDataKeyFilter) bool { + return _this == other +} + +func (_this *AwsKmsEncryptedDataKeyFilter) EqualsGeneric(x interface{}) bool { + other, ok := x.(*AwsKmsEncryptedDataKeyFilter) + return ok && _this.Equals(other) +} + +func (*AwsKmsEncryptedDataKeyFilter) String() string { + return "AwsKmsDiscoveryKeyring.AwsKmsEncryptedDataKeyFilter" +} + +func Type_AwsKmsEncryptedDataKeyFilter_() _dafny.TypeDescriptor { + return type_AwsKmsEncryptedDataKeyFilter_{} +} + +type type_AwsKmsEncryptedDataKeyFilter_ struct { +} + +func (_this type_AwsKmsEncryptedDataKeyFilter_) Default() interface{} { + return (*AwsKmsEncryptedDataKeyFilter)(nil) +} + +func (_this type_AwsKmsEncryptedDataKeyFilter_) String() string { + return "AwsKmsDiscoveryKeyring.AwsKmsEncryptedDataKeyFilter" +} +func (_this *AwsKmsEncryptedDataKeyFilter) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){m_Actions.Companion_DeterministicActionWithResult_.TraitID_, m_Actions.Companion_DeterministicAction_.TraitID_} +} + +var _ m_Actions.DeterministicActionWithResult = &AwsKmsEncryptedDataKeyFilter{} +var _ m_Actions.DeterministicAction = &AwsKmsEncryptedDataKeyFilter{} +var _ _dafny.TraitOffspring = &AwsKmsEncryptedDataKeyFilter{} + +func (_this *AwsKmsEncryptedDataKeyFilter) Ctor__(discoveryFilter m_Wrappers.Option) { + { + (_this)._discoveryFilter = discoveryFilter + } +} +func (_this *AwsKmsEncryptedDataKeyFilter) Invoke(edk interface{}) interface{} { + { + var edk m_AwsCryptographyMaterialProvidersTypes.EncryptedDataKey = edk.(m_AwsCryptographyMaterialProvidersTypes.EncryptedDataKey) + _ = edk + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(false) + _ = output + var _0_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _0_valueOrError0 + _0_valueOrError0 = m_Wrappers.Companion_Default___.Need(m_UTF8.Companion_Default___.ValidUTF8Seq((edk).Dtor_keyProviderInfo()), m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.SeqOfString("Invalid AWS KMS encoding, provider info is not UTF8."))) + if (_0_valueOrError0).IsFailure() { + output = (_0_valueOrError0).PropagateFailure() + return output + } + var _1_valueOrError1 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq.SetString()) + _ = _1_valueOrError1 + _1_valueOrError1 = (m_UTF8.Decode((edk).Dtor_keyProviderInfo())).MapFailure(func(coer63 func(_dafny.Sequence) m_AwsCryptographyMaterialProvidersTypes.Error) func(interface{}) interface{} { + return func(arg64 interface{}) interface{} { + return coer63(arg64.(_dafny.Sequence)) + } + }(m_AwsKmsUtils.Companion_Default___.WrapStringToError)) + if (_1_valueOrError1).IsFailure() { + output = (_1_valueOrError1).PropagateFailure() + return output + } + var _2_keyId _dafny.Sequence + _ = _2_keyId + _2_keyId = (_1_valueOrError1).Extract().(_dafny.Sequence) + var _3_valueOrError2 m_Wrappers.Result = m_Wrappers.Result{} + _ = _3_valueOrError2 + _3_valueOrError2 = (m_AwsArnParsing.Companion_Default___.ParseAwsKmsArn(_2_keyId)).MapFailure(func(coer64 func(_dafny.Sequence) m_AwsCryptographyMaterialProvidersTypes.Error) func(interface{}) interface{} { + return func(arg65 interface{}) interface{} { + return coer64(arg65.(_dafny.Sequence)) + } + }(m_AwsKmsUtils.Companion_Default___.WrapStringToError)) + if (_3_valueOrError2).IsFailure() { + output = (_3_valueOrError2).PropagateFailure() + return output + } + var _4_arn m_AwsArnParsing.AwsArn + _ = _4_arn + _4_arn = (_3_valueOrError2).Extract().(m_AwsArnParsing.AwsArn) + var _5_valueOrError3 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _5_valueOrError3 + _5_valueOrError3 = m_Wrappers.Companion_Default___.Need(_dafny.Companion_Sequence_.Equal(((_4_arn).Dtor_resource()).Dtor_resourceType(), _dafny.SeqOfString("key")), m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.SeqOfString("Only AWS KMS Keys supported"))) + if (_5_valueOrError3).IsFailure() { + output = (_5_valueOrError3).PropagateFailure() + return output + } + if !_dafny.Companion_Sequence_.Equal((edk).Dtor_keyProviderId(), m_Constants.Companion_Default___.PROVIDER__ID()) { + output = m_Wrappers.Companion_Result_.Create_Success_(false) + return output + } + if !(Companion_Default___.DiscoveryMatch(_4_arn, (_this).DiscoveryFilter())) { + output = m_Wrappers.Companion_Result_.Create_Success_(false) + return output + } + output = m_Wrappers.Companion_Result_.Create_Success_(true) + return output + return output + } +} +func (_this *AwsKmsEncryptedDataKeyFilter) DiscoveryFilter() m_Wrappers.Option { + { + return _this._discoveryFilter + } +} + +// End of class AwsKmsEncryptedDataKeyFilter + +// Definition of class AwsKmsEncryptedDataKeyTransformer +type AwsKmsEncryptedDataKeyTransformer struct { + dummy byte +} + +func New_AwsKmsEncryptedDataKeyTransformer_() *AwsKmsEncryptedDataKeyTransformer { + _this := AwsKmsEncryptedDataKeyTransformer{} + + return &_this +} + +type CompanionStruct_AwsKmsEncryptedDataKeyTransformer_ struct { +} + +var Companion_AwsKmsEncryptedDataKeyTransformer_ = CompanionStruct_AwsKmsEncryptedDataKeyTransformer_{} + +func (_this *AwsKmsEncryptedDataKeyTransformer) Equals(other *AwsKmsEncryptedDataKeyTransformer) bool { + return _this == other +} + +func (_this *AwsKmsEncryptedDataKeyTransformer) EqualsGeneric(x interface{}) bool { + other, ok := x.(*AwsKmsEncryptedDataKeyTransformer) + return ok && _this.Equals(other) +} + +func (*AwsKmsEncryptedDataKeyTransformer) String() string { + return "AwsKmsDiscoveryKeyring.AwsKmsEncryptedDataKeyTransformer" +} + +func Type_AwsKmsEncryptedDataKeyTransformer_() _dafny.TypeDescriptor { + return type_AwsKmsEncryptedDataKeyTransformer_{} +} + +type type_AwsKmsEncryptedDataKeyTransformer_ struct { +} + +func (_this type_AwsKmsEncryptedDataKeyTransformer_) Default() interface{} { + return (*AwsKmsEncryptedDataKeyTransformer)(nil) +} + +func (_this type_AwsKmsEncryptedDataKeyTransformer_) String() string { + return "AwsKmsDiscoveryKeyring.AwsKmsEncryptedDataKeyTransformer" +} +func (_this *AwsKmsEncryptedDataKeyTransformer) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){m_Actions.Companion_DeterministicActionWithResult_.TraitID_, m_Actions.Companion_DeterministicAction_.TraitID_} +} + +var _ m_Actions.DeterministicActionWithResult = &AwsKmsEncryptedDataKeyTransformer{} +var _ m_Actions.DeterministicAction = &AwsKmsEncryptedDataKeyTransformer{} +var _ _dafny.TraitOffspring = &AwsKmsEncryptedDataKeyTransformer{} + +func (_this *AwsKmsEncryptedDataKeyTransformer) Ctor__() { + { + } +} +func (_this *AwsKmsEncryptedDataKeyTransformer) Invoke(edk interface{}) interface{} { + { + var edk m_AwsCryptographyMaterialProvidersTypes.EncryptedDataKey = edk.(m_AwsCryptographyMaterialProvidersTypes.EncryptedDataKey) + _ = edk + var res m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = res + var _0_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _0_valueOrError0 + _0_valueOrError0 = m_Wrappers.Companion_Default___.Need(_dafny.Companion_Sequence_.Equal((edk).Dtor_keyProviderId(), m_Constants.Companion_Default___.PROVIDER__ID()), m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.SeqOfString("Encrypted data key was not generated by KMS"))) + if (_0_valueOrError0).IsFailure() { + res = (_0_valueOrError0).PropagateFailure() + return res + } + var _1_valueOrError1 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _1_valueOrError1 + _1_valueOrError1 = m_Wrappers.Companion_Default___.Need(m_UTF8.Companion_Default___.ValidUTF8Seq((edk).Dtor_keyProviderInfo()), m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.SeqOfString("Invalid AWS KMS encoding, provider info is not UTF8."))) + if (_1_valueOrError1).IsFailure() { + res = (_1_valueOrError1).PropagateFailure() + return res + } + var _2_valueOrError2 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq.SetString()) + _ = _2_valueOrError2 + _2_valueOrError2 = (m_UTF8.Decode((edk).Dtor_keyProviderInfo())).MapFailure(func(coer65 func(_dafny.Sequence) m_AwsCryptographyMaterialProvidersTypes.Error) func(interface{}) interface{} { + return func(arg66 interface{}) interface{} { + return coer65(arg66.(_dafny.Sequence)) + } + }(m_AwsKmsUtils.Companion_Default___.WrapStringToError)) + if (_2_valueOrError2).IsFailure() { + res = (_2_valueOrError2).PropagateFailure() + return res + } + var _3_keyId _dafny.Sequence + _ = _3_keyId + _3_keyId = (_2_valueOrError2).Extract().(_dafny.Sequence) + var _4_valueOrError3 m_Wrappers.Result = m_Wrappers.Result{} + _ = _4_valueOrError3 + _4_valueOrError3 = (m_AwsArnParsing.Companion_Default___.ParseAwsKmsArn(_3_keyId)).MapFailure(func(coer66 func(_dafny.Sequence) m_AwsCryptographyMaterialProvidersTypes.Error) func(interface{}) interface{} { + return func(arg67 interface{}) interface{} { + return coer66(arg67.(_dafny.Sequence)) + } + }(m_AwsKmsUtils.Companion_Default___.WrapStringToError)) + if (_4_valueOrError3).IsFailure() { + res = (_4_valueOrError3).PropagateFailure() + return res + } + var _5_arn m_AwsArnParsing.AwsArn + _ = _5_arn + _5_arn = (_4_valueOrError3).Extract().(m_AwsArnParsing.AwsArn) + res = m_Wrappers.Companion_Result_.Create_Success_(_dafny.SeqOf(m_Constants.Companion_AwsKmsEdkHelper_.Create_AwsKmsEdkHelper_(edk, _5_arn))) + return res + return res + } +} + +// End of class AwsKmsEncryptedDataKeyTransformer + +// Definition of class AwsKmsEncryptedDataKeyDecryptor +type AwsKmsEncryptedDataKeyDecryptor struct { + _materials m_AwsCryptographyMaterialProvidersTypes.DecryptionMaterials + _client m_ComAmazonawsKmsTypes.IKMSClient + _grantTokens _dafny.Sequence +} + +func New_AwsKmsEncryptedDataKeyDecryptor_() *AwsKmsEncryptedDataKeyDecryptor { + _this := AwsKmsEncryptedDataKeyDecryptor{} + + _this._materials = m_AwsCryptographyMaterialProvidersTypes.DecryptionMaterials{} + _this._client = (m_ComAmazonawsKmsTypes.IKMSClient)(nil) + _this._grantTokens = _dafny.EmptySeq + return &_this +} + +type CompanionStruct_AwsKmsEncryptedDataKeyDecryptor_ struct { +} + +var Companion_AwsKmsEncryptedDataKeyDecryptor_ = CompanionStruct_AwsKmsEncryptedDataKeyDecryptor_{} + +func (_this *AwsKmsEncryptedDataKeyDecryptor) Equals(other *AwsKmsEncryptedDataKeyDecryptor) bool { + return _this == other +} + +func (_this *AwsKmsEncryptedDataKeyDecryptor) EqualsGeneric(x interface{}) bool { + other, ok := x.(*AwsKmsEncryptedDataKeyDecryptor) + return ok && _this.Equals(other) +} + +func (*AwsKmsEncryptedDataKeyDecryptor) String() string { + return "AwsKmsDiscoveryKeyring.AwsKmsEncryptedDataKeyDecryptor" +} + +func Type_AwsKmsEncryptedDataKeyDecryptor_() _dafny.TypeDescriptor { + return type_AwsKmsEncryptedDataKeyDecryptor_{} +} + +type type_AwsKmsEncryptedDataKeyDecryptor_ struct { +} + +func (_this type_AwsKmsEncryptedDataKeyDecryptor_) Default() interface{} { + return (*AwsKmsEncryptedDataKeyDecryptor)(nil) +} + +func (_this type_AwsKmsEncryptedDataKeyDecryptor_) String() string { + return "AwsKmsDiscoveryKeyring.AwsKmsEncryptedDataKeyDecryptor" +} +func (_this *AwsKmsEncryptedDataKeyDecryptor) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){m_Actions.Companion_ActionWithResult_.TraitID_, m_Actions.Companion_Action_.TraitID_} +} + +var _ m_Actions.ActionWithResult = &AwsKmsEncryptedDataKeyDecryptor{} +var _ m_Actions.Action = &AwsKmsEncryptedDataKeyDecryptor{} +var _ _dafny.TraitOffspring = &AwsKmsEncryptedDataKeyDecryptor{} + +func (_this *AwsKmsEncryptedDataKeyDecryptor) Ctor__(materials m_AwsCryptographyMaterialProvidersTypes.DecryptionMaterials, client m_ComAmazonawsKmsTypes.IKMSClient, grantTokens _dafny.Sequence) { + { + (_this)._materials = materials + (_this)._client = client + (_this)._grantTokens = grantTokens + } +} +func (_this *AwsKmsEncryptedDataKeyDecryptor) Invoke(helper interface{}) interface{} { + { + var helper m_Constants.AwsKmsEdkHelper = helper.(m_Constants.AwsKmsEdkHelper) + _ = helper + var res m_Wrappers.Result = m_Wrappers.Result{} + _ = res + var _0_awsKmsKey _dafny.Sequence + _ = _0_awsKmsKey + _0_awsKmsKey = ((helper).Dtor_arn()).ToString() + var _1_valueOrError0 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.TupleOf()) + _ = _1_valueOrError0 + _1_valueOrError0 = m_AwsKmsUtils.Companion_Default___.ValidateKmsKeyId(((helper).Dtor_arn()).ToString()) + if (_1_valueOrError0).IsFailure() { + res = (_1_valueOrError0).PropagateFailure() + return res + } + var _2___v0 _dafny.Tuple + _ = _2___v0 + _2___v0 = (_1_valueOrError0).Extract().(_dafny.Tuple) + var _3_kmsUnwrap *m_AwsKmsKeyring.KmsUnwrapKeyMaterial + _ = _3_kmsUnwrap + var _nw0 *m_AwsKmsKeyring.KmsUnwrapKeyMaterial = m_AwsKmsKeyring.New_KmsUnwrapKeyMaterial_() + _ = _nw0 + _nw0.Ctor__((_this).Client(), _0_awsKmsKey, (_this).GrantTokens()) + _3_kmsUnwrap = _nw0 + var _4_unwrapOutputRes m_Wrappers.Result + _ = _4_unwrapOutputRes + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_EdkWrapping.Companion_Default___.UnwrapEdkMaterial(((helper).Dtor_edk()).Dtor_ciphertext(), (_this).Materials(), _3_kmsUnwrap) + _4_unwrapOutputRes = _out0 + var _5_valueOrError1 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_EdkWrapping.Companion_UnwrapEdkMaterialOutput_.Default(m_AwsKmsKeyring.Companion_KmsUnwrapInfo_.Default())) + _ = _5_valueOrError1 + _5_valueOrError1 = _4_unwrapOutputRes + if (_5_valueOrError1).IsFailure() { + res = (_5_valueOrError1).PropagateFailure() + return res + } + var _6_unwrapOutput m_EdkWrapping.UnwrapEdkMaterialOutput + _ = _6_unwrapOutput + _6_unwrapOutput = (_5_valueOrError1).Extract().(m_EdkWrapping.UnwrapEdkMaterialOutput) + var _7_valueOrError2 m_Wrappers.Result = m_Wrappers.Result{} + _ = _7_valueOrError2 + _7_valueOrError2 = m_Materials.Companion_Default___.DecryptionMaterialsAddDataKey((_this).Materials(), (_6_unwrapOutput).Dtor_plaintextDataKey(), (_6_unwrapOutput).Dtor_symmetricSigningKey()) + if (_7_valueOrError2).IsFailure() { + res = (_7_valueOrError2).PropagateFailure() + return res + } + var _8_result m_AwsCryptographyMaterialProvidersTypes.DecryptionMaterials + _ = _8_result + _8_result = (_7_valueOrError2).Extract().(m_AwsCryptographyMaterialProvidersTypes.DecryptionMaterials) + res = m_Wrappers.Companion_Result_.Create_Success_(_8_result) + return res + return res + } +} +func (_this *AwsKmsEncryptedDataKeyDecryptor) Materials() m_AwsCryptographyMaterialProvidersTypes.DecryptionMaterials { + { + return _this._materials + } +} +func (_this *AwsKmsEncryptedDataKeyDecryptor) Client() m_ComAmazonawsKmsTypes.IKMSClient { + { + return _this._client + } +} +func (_this *AwsKmsEncryptedDataKeyDecryptor) GrantTokens() _dafny.Sequence { + { + return _this._grantTokens + } +} + +// End of class AwsKmsEncryptedDataKeyDecryptor diff --git a/customer-preview/mpl/AwsKmsEcdhKeyring/AwsKmsEcdhKeyring.go b/customer-preview/mpl/AwsKmsEcdhKeyring/AwsKmsEcdhKeyring.go new file mode 100644 index 000000000..ce68da97e --- /dev/null +++ b/customer-preview/mpl/AwsKmsEcdhKeyring/AwsKmsEcdhKeyring.go @@ -0,0 +1,1185 @@ +// Package AwsKmsEcdhKeyring +// Dafny module AwsKmsEcdhKeyring compiled into Go + +package AwsKmsEcdhKeyring + +import ( + os "os" + + m_ComAmazonawsDynamodbTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/ComAmazonawsDynamodbTypes" + m_Com_Amazonaws_Dynamodb "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/Com_Amazonaws_Dynamodb" + m_ComAmazonawsKmsTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/ComAmazonawsKmsTypes" + m_Com_Amazonaws_Kms "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/Com_Amazonaws_Kms" + m_AlgorithmSuites "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AlgorithmSuites" + m_AwsArnParsing "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsArnParsing" + m_AwsCryptographyKeyStoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreOperations" + m_AwsCryptographyKeyStoreTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreTypes" + m_AwsCryptographyMaterialProvidersTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersTypes" + m_AwsKmsDiscoveryKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsDiscoveryKeyring" + m_AwsKmsHierarchicalKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsHierarchicalKeyring" + m_AwsKmsKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsKeyring" + m_AwsKmsMrkAreUnique "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkAreUnique" + m_AwsKmsMrkDiscoveryKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkDiscoveryKeyring" + m_AwsKmsMrkKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkKeyring" + m_AwsKmsMrkMatchForDecrypt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkMatchForDecrypt" + m_AwsKmsRsaKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsRsaKeyring" + m_AwsKmsUtils "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsUtils" + m_CacheConstants "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CacheConstants" + m_CanonicalEncryptionContext "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CanonicalEncryptionContext" + m_Constants "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Constants" + m_CreateKeyStoreTable "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeyStoreTable" + m_CreateKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeys" + m_DDBKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DDBKeystoreOperations" + m_DiscoveryMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DiscoveryMultiKeyring" + m_EcdhEdkWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/EcdhEdkWrapping" + m_EdkWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/EdkWrapping" + m_ErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/ErrorMessages" + m_GetKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/GetKeys" + m_IntermediateKeyWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/IntermediateKeyWrapping" + m_KMSKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KMSKeystoreOperations" + m_KeyStore "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStore" + m_KeyStoreErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStoreErrorMessages" + m_Keyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Keyring" + m_KmsArn "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KmsArn" + m_LocalCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/LocalCMC" + m_MaterialWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MaterialWrapping" + m_Materials "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Materials" + m_MrkAwareDiscoveryMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MrkAwareDiscoveryMultiKeyring" + m_MrkAwareStrictMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MrkAwareStrictMultiKeyring" + m_MultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MultiKeyring" + m_RawECDHKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawECDHKeyring" + m_StormTracker "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StormTracker" + m_StormTrackingCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StormTrackingCMC" + m_StrictMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StrictMultiKeyring" + m_Structure "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Structure" + m_SynchronizedLocalCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/SynchronizedLocalCMC" + m_AtomicPrimitives "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AtomicPrimitives" + m_AwsCryptographyPrimitivesOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesOperations" + m_AwsCryptographyPrimitivesTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesTypes" + m_Digest "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Digest" + m_HKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/HKDF" + m_KdfCtr "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/KdfCtr" + m_Random "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Random" + m_WrappedHKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHKDF" + m_WrappedHMAC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHMAC" + m_Actions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Actions" + m_Base64 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64" + m_Base64Lemmas "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64Lemmas" + m_BoundedInts "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/BoundedInts" + m_DivInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternals" + m_DivInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternalsNonlinear" + m_DivMod "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivMod" + m_FileIO "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FileIO" + m_FloatCompare "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FloatCompare" + m_Functions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Functions" + m_GeneralInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GeneralInternals" + m_GetOpt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GetOpt" + m_HexStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/HexStrings" + m_Logarithm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Logarithm" + m__Math "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Math_" + m_ModInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternals" + m_ModInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternalsNonlinear" + m_Mul "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Mul" + m_MulInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternals" + m_MulInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternalsNonlinear" + m_Power "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Power" + m_Relations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Relations" + m_Seq "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq" + m_Seq_MergeSort "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq_MergeSort" + m_Sorting "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Sorting" + m_StandardLibrary "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary" + m_StandardLibraryInterop "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibraryInterop" + m_StandardLibrary_Sequence "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_Sequence" + m_StandardLibrary_String "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_String" + m_StandardLibrary_UInt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_UInt" + m_Streams "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Streams" + m_UTF8 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UTF8" + m_UnicodeStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UnicodeStrings" + m__Unicode "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Unicode_" + m_Utf16EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf16EncodingForm" + m_Utf8EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf8EncodingForm" + m_Wrappers "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers" + m__System "github.com/dafny-lang/DafnyRuntimeGo/v4/System_" + _dafny "github.com/dafny-lang/DafnyRuntimeGo/v4/dafny" +) + +var _ = os.Args +var _ _dafny.Dummy__ +var _ m__System.Dummy__ +var _ m_Wrappers.Dummy__ +var _ m_BoundedInts.Dummy__ +var _ m_StandardLibrary_UInt.Dummy__ +var _ m_StandardLibrary_Sequence.Dummy__ +var _ m_StandardLibrary_String.Dummy__ +var _ m_StandardLibrary.Dummy__ +var _ m_AwsCryptographyPrimitivesTypes.Dummy__ +var _ m_Random.Dummy__ +var _ m_Digest.Dummy__ +var _ m_WrappedHMAC.Dummy__ +var _ m_HKDF.Dummy__ +var _ m_WrappedHKDF.Dummy__ +var _ m_KdfCtr.Dummy__ +var _ m_AwsCryptographyPrimitivesOperations.Dummy__ +var _ m_AtomicPrimitives.Dummy__ +var _ m_ComAmazonawsDynamodbTypes.Dummy__ +var _ m_ComAmazonawsKmsTypes.Dummy__ +var _ m_Relations.Dummy__ +var _ m_Seq_MergeSort.Dummy__ +var _ m__Math.Dummy__ +var _ m_Seq.Dummy__ +var _ m__Unicode.Dummy__ +var _ m_Functions.Dummy__ +var _ m_Utf8EncodingForm.Dummy__ +var _ m_Utf16EncodingForm.Dummy__ +var _ m_UnicodeStrings.Dummy__ +var _ m_FileIO.Dummy__ +var _ m_GeneralInternals.Dummy__ +var _ m_MulInternalsNonlinear.Dummy__ +var _ m_MulInternals.Dummy__ +var _ m_Mul.Dummy__ +var _ m_ModInternalsNonlinear.Dummy__ +var _ m_DivInternalsNonlinear.Dummy__ +var _ m_ModInternals.Dummy__ +var _ m_DivInternals.Dummy__ +var _ m_DivMod.Dummy__ +var _ m_Power.Dummy__ +var _ m_Logarithm.Dummy__ +var _ m_StandardLibraryInterop.Dummy__ +var _ m_Streams.Dummy__ +var _ m_Sorting.Dummy__ +var _ m_HexStrings.Dummy__ +var _ m_GetOpt.Dummy__ +var _ m_FloatCompare.Dummy__ +var _ m_Base64.Dummy__ +var _ m_Base64Lemmas.Dummy__ +var _ m_Actions.Dummy__ +var _ m_AwsCryptographyKeyStoreTypes.Dummy__ +var _ m_AwsCryptographyMaterialProvidersTypes.Dummy__ +var _ m_AwsArnParsing.Dummy__ +var _ m_AwsKmsMrkMatchForDecrypt.Dummy__ +var _ m_AwsKmsUtils.Dummy__ +var _ m_KeyStoreErrorMessages.Dummy__ +var _ m_KmsArn.Dummy__ +var _ m_Structure.Dummy__ +var _ m_KMSKeystoreOperations.Dummy__ +var _ m_DDBKeystoreOperations.Dummy__ +var _ m_CreateKeys.Dummy__ +var _ m_CreateKeyStoreTable.Dummy__ +var _ m_GetKeys.Dummy__ +var _ m_AwsCryptographyKeyStoreOperations.Dummy__ +var _ m_Com_Amazonaws_Kms.Dummy__ +var _ m_Com_Amazonaws_Dynamodb.Dummy__ +var _ m_KeyStore.Dummy__ +var _ m_AlgorithmSuites.Dummy__ +var _ m_Materials.Dummy__ +var _ m_Keyring.Dummy__ +var _ m_MultiKeyring.Dummy__ +var _ m_AwsKmsMrkAreUnique.Dummy__ +var _ m_Constants.Dummy__ +var _ m_MaterialWrapping.Dummy__ +var _ m_CanonicalEncryptionContext.Dummy__ +var _ m_IntermediateKeyWrapping.Dummy__ +var _ m_EdkWrapping.Dummy__ +var _ m_ErrorMessages.Dummy__ +var _ m_AwsKmsKeyring.Dummy__ +var _ m_StrictMultiKeyring.Dummy__ +var _ m_AwsKmsDiscoveryKeyring.Dummy__ +var _ m_DiscoveryMultiKeyring.Dummy__ +var _ m_AwsKmsMrkDiscoveryKeyring.Dummy__ +var _ m_MrkAwareDiscoveryMultiKeyring.Dummy__ +var _ m_AwsKmsMrkKeyring.Dummy__ +var _ m_MrkAwareStrictMultiKeyring.Dummy__ +var _ m_LocalCMC.Dummy__ +var _ m_SynchronizedLocalCMC.Dummy__ +var _ m_StormTracker.Dummy__ +var _ m_StormTrackingCMC.Dummy__ +var _ m_CacheConstants.Dummy__ +var _ m_AwsKmsHierarchicalKeyring.Dummy__ +var _ m_AwsKmsRsaKeyring.Dummy__ +var _ m_EcdhEdkWrapping.Dummy__ +var _ m_RawECDHKeyring.Dummy__ + +type Dummy__ struct{} + +// Definition of class Default__ +type Default__ struct { + dummy byte +} + +func New_Default___() *Default__ { + _this := Default__{} + + return &_this +} + +type CompanionStruct_Default___ struct { +} + +var Companion_Default___ = CompanionStruct_Default___{} + +func (_this *Default__) Equals(other *Default__) bool { + return _this == other +} + +func (_this *Default__) EqualsGeneric(x interface{}) bool { + other, ok := x.(*Default__) + return ok && _this.Equals(other) +} + +func (*Default__) String() string { + return "AwsKmsEcdhKeyring.Default__" +} +func (_this *Default__) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = &Default__{} + +func (_static *CompanionStruct_Default___) DeriveSharedSecret(client m_ComAmazonawsKmsTypes.IKMSClient, senderAwsKmsKey _dafny.Sequence, recipientPublicKey _dafny.Sequence, grantTokens _dafny.Sequence) m_Wrappers.Result { + var res m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = res + var _0_deriveSharedSecretRequest m_ComAmazonawsKmsTypes.DeriveSharedSecretRequest + _ = _0_deriveSharedSecretRequest + _0_deriveSharedSecretRequest = m_ComAmazonawsKmsTypes.Companion_DeriveSharedSecretRequest_.Create_DeriveSharedSecretRequest_(senderAwsKmsKey, m_ComAmazonawsKmsTypes.Companion_KeyAgreementAlgorithmSpec_.Create_ECDH_(), recipientPublicKey, m_Wrappers.Companion_Option_.Create_Some_(grantTokens), m_Wrappers.Companion_Option_.Create_None_(), m_Wrappers.Companion_Option_.Create_None_()) + var _1_maybeDeriveSharedSecret m_Wrappers.Result + _ = _1_maybeDeriveSharedSecret + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = (client).DeriveSharedSecret(_0_deriveSharedSecretRequest) + _1_maybeDeriveSharedSecret = _out0 + var _2_valueOrError0 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_ComAmazonawsKmsTypes.Companion_DeriveSharedSecretResponse_.Default()) + _ = _2_valueOrError0 + _2_valueOrError0 = (_1_maybeDeriveSharedSecret).MapFailure(func(coer117 func(m_ComAmazonawsKmsTypes.Error) m_AwsCryptographyMaterialProvidersTypes.Error) func(interface{}) interface{} { + return func(arg118 interface{}) interface{} { + return coer117(arg118.(m_ComAmazonawsKmsTypes.Error)) + } + }(func(_3_e m_ComAmazonawsKmsTypes.Error) m_AwsCryptographyMaterialProvidersTypes.Error { + return m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_ComAmazonawsKms_(_3_e) + })) + if (_2_valueOrError0).IsFailure() { + res = (_2_valueOrError0).PropagateFailure() + return res + } + var _4_deriveSharedSecretResponse m_ComAmazonawsKmsTypes.DeriveSharedSecretResponse + _ = _4_deriveSharedSecretResponse + _4_deriveSharedSecretResponse = (_2_valueOrError0).Extract().(m_ComAmazonawsKmsTypes.DeriveSharedSecretResponse) + var _5_valueOrError1 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _5_valueOrError1 + _5_valueOrError1 = m_Wrappers.Companion_Default___.Need(((((((_4_deriveSharedSecretResponse).Dtor_KeyId()).Is_Some()) && (((_4_deriveSharedSecretResponse).Dtor_SharedSecret()).Is_Some())) && (((_4_deriveSharedSecretResponse).Dtor_KeyAgreementAlgorithm()).Is_Some())) && (_dafny.Companion_Sequence_.Equal(((_4_deriveSharedSecretResponse).Dtor_KeyId()).Dtor_value().(_dafny.Sequence), senderAwsKmsKey))) && ((((_4_deriveSharedSecretResponse).Dtor_KeyAgreementAlgorithm()).Dtor_value().(m_ComAmazonawsKmsTypes.KeyAgreementAlgorithmSpec)).Equals(m_ComAmazonawsKmsTypes.Companion_KeyAgreementAlgorithmSpec_.Create_ECDH_())), Companion_Default___.E(_dafny.SeqOfString("Invalid response from KMS DeriveSharedSecret"))) + if (_5_valueOrError1).IsFailure() { + res = (_5_valueOrError1).PropagateFailure() + return res + } + res = m_Wrappers.Companion_Result_.Create_Success_(((_4_deriveSharedSecretResponse).Dtor_SharedSecret()).Dtor_value().(_dafny.Sequence)) + return res + return res +} +func (_static *CompanionStruct_Default___) E(s _dafny.Sequence) m_AwsCryptographyMaterialProvidersTypes.Error { + return m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(s) +} +func (_static *CompanionStruct_Default___) AWS__KMS__ECDH__KEYRING__VERSION() _dafny.Sequence { + return m_RawECDHKeyring.Companion_Default___.RAW__ECDH__KEYRING__VERSION() +} + +// End of class Default__ + +// Definition of class AwsKmsEcdhKeyring +type AwsKmsEcdhKeyring struct { + _client m_ComAmazonawsKmsTypes.IKMSClient + _cryptoPrimitives *m_AtomicPrimitives.AtomicPrimitivesClient + _keyAgreementScheme m_AwsCryptographyMaterialProvidersTypes.KmsEcdhStaticConfigurations + _curveSpec m_AwsCryptographyPrimitivesTypes.ECDHCurveSpec + _grantTokens _dafny.Sequence + _recipientPublicKey _dafny.Sequence + _senderPublicKey m_Wrappers.Option + _compressedSenderPublicKey m_Wrappers.Option + _compressedRecipientPublicKey _dafny.Sequence + _senderKmsKeyId m_Wrappers.Option +} + +func New_AwsKmsEcdhKeyring_() *AwsKmsEcdhKeyring { + _this := AwsKmsEcdhKeyring{} + + _this._client = (m_ComAmazonawsKmsTypes.IKMSClient)(nil) + _this._cryptoPrimitives = (*m_AtomicPrimitives.AtomicPrimitivesClient)(nil) + _this._keyAgreementScheme = m_AwsCryptographyMaterialProvidersTypes.Companion_KmsEcdhStaticConfigurations_.Default() + _this._curveSpec = m_AwsCryptographyPrimitivesTypes.Companion_ECDHCurveSpec_.Default() + _this._grantTokens = _dafny.EmptySeq + _this._recipientPublicKey = _dafny.EmptySeq + _this._senderPublicKey = m_Wrappers.Companion_Option_.Default() + _this._compressedSenderPublicKey = m_Wrappers.Companion_Option_.Default() + _this._compressedRecipientPublicKey = _dafny.EmptySeq + _this._senderKmsKeyId = m_Wrappers.Companion_Option_.Default() + return &_this +} + +type CompanionStruct_AwsKmsEcdhKeyring_ struct { +} + +var Companion_AwsKmsEcdhKeyring_ = CompanionStruct_AwsKmsEcdhKeyring_{} + +func (_this *AwsKmsEcdhKeyring) Equals(other *AwsKmsEcdhKeyring) bool { + return _this == other +} + +func (_this *AwsKmsEcdhKeyring) EqualsGeneric(x interface{}) bool { + other, ok := x.(*AwsKmsEcdhKeyring) + return ok && _this.Equals(other) +} + +func (*AwsKmsEcdhKeyring) String() string { + return "AwsKmsEcdhKeyring.AwsKmsEcdhKeyring" +} + +func Type_AwsKmsEcdhKeyring_() _dafny.TypeDescriptor { + return type_AwsKmsEcdhKeyring_{} +} + +type type_AwsKmsEcdhKeyring_ struct { +} + +func (_this type_AwsKmsEcdhKeyring_) Default() interface{} { + return (*AwsKmsEcdhKeyring)(nil) +} + +func (_this type_AwsKmsEcdhKeyring_) String() string { + return "AwsKmsEcdhKeyring.AwsKmsEcdhKeyring" +} +func (_this *AwsKmsEcdhKeyring) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){m_Keyring.Companion_VerifiableInterface_.TraitID_, m_AwsCryptographyMaterialProvidersTypes.Companion_IKeyring_.TraitID_} +} + +var _ m_Keyring.VerifiableInterface = &AwsKmsEcdhKeyring{} +var _ m_AwsCryptographyMaterialProvidersTypes.IKeyring = &AwsKmsEcdhKeyring{} +var _ _dafny.TraitOffspring = &AwsKmsEcdhKeyring{} + +func (_this *AwsKmsEcdhKeyring) OnDecrypt(input m_AwsCryptographyMaterialProvidersTypes.OnDecryptInput) m_Wrappers.Result { + var _out9 m_Wrappers.Result + _ = _out9 + _out9 = m_AwsCryptographyMaterialProvidersTypes.Companion_IKeyring_.OnDecrypt(_this, input) + return _out9 +} +func (_this *AwsKmsEcdhKeyring) OnEncrypt(input m_AwsCryptographyMaterialProvidersTypes.OnEncryptInput) m_Wrappers.Result { + var _out9 m_Wrappers.Result + _ = _out9 + _out9 = m_AwsCryptographyMaterialProvidersTypes.Companion_IKeyring_.OnEncrypt(_this, input) + return _out9 +} +func (_this *AwsKmsEcdhKeyring) Ctor__(KeyAgreementScheme m_AwsCryptographyMaterialProvidersTypes.KmsEcdhStaticConfigurations, curveSpec m_AwsCryptographyPrimitivesTypes.ECDHCurveSpec, client m_ComAmazonawsKmsTypes.IKMSClient, grantTokens _dafny.Sequence, senderKmsKeyId m_Wrappers.Option, senderPublicKey m_Wrappers.Option, recipientPublicKey _dafny.Sequence, compressedSenderPublicKey m_Wrappers.Option, compressedRecipientPublicKey _dafny.Sequence, cryptoPrimitives *m_AtomicPrimitives.AtomicPrimitivesClient) { + { + (_this)._keyAgreementScheme = KeyAgreementScheme + (_this)._curveSpec = curveSpec + (_this)._client = client + (_this)._grantTokens = grantTokens + (_this)._recipientPublicKey = recipientPublicKey + (_this)._senderPublicKey = senderPublicKey + (_this)._compressedSenderPublicKey = compressedSenderPublicKey + (_this)._compressedRecipientPublicKey = compressedRecipientPublicKey + (_this)._senderKmsKeyId = senderKmsKeyId + (_this)._cryptoPrimitives = cryptoPrimitives + } +} +func (_this *AwsKmsEcdhKeyring) OnEncrypt_k(input m_AwsCryptographyMaterialProvidersTypes.OnEncryptInput) m_Wrappers.Result { + { + var res m_Wrappers.Result = m_Wrappers.Result{} + _ = res + var _0_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _0_valueOrError0 + _0_valueOrError0 = m_Wrappers.Companion_Default___.Need(!(((_this).KeyAgreementScheme()).Is_KmsPublicKeyDiscovery()), Companion_Default___.E(_dafny.SeqOfString("KmsPublicKeyDiscovery Key Agreement Scheme is forbidden on encrypt."))) + if (_0_valueOrError0).IsFailure() { + res = (_0_valueOrError0).PropagateFailure() + return res + } + var _1_valueOrError1 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _1_valueOrError1 + _1_valueOrError1 = m_Wrappers.Companion_Default___.Need(((_this).SenderKmsKeyId()).Is_Some(), Companion_Default___.E(_dafny.SeqOfString("Keyring MUST be configured with a sender KMS Key ID"))) + if (_1_valueOrError1).IsFailure() { + res = (_1_valueOrError1).PropagateFailure() + return res + } + var _2_valueOrError2 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _2_valueOrError2 + _2_valueOrError2 = m_Wrappers.Companion_Default___.Need(((_this).SenderPublicKey()).Is_Some(), Companion_Default___.E(_dafny.SeqOfString("Keyring MUST be configured with a senderPublicKey"))) + if (_2_valueOrError2).IsFailure() { + res = (_2_valueOrError2).PropagateFailure() + return res + } + var _3_senderKmsKeyId _dafny.Sequence + _ = _3_senderKmsKeyId + _3_senderKmsKeyId = ((_this).SenderKmsKeyId()).Dtor_value().(_dafny.Sequence) + var _4_materials m_AwsCryptographyMaterialProvidersTypes.EncryptionMaterials + _ = _4_materials + _4_materials = (input).Dtor_materials() + var _5_suite m_AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo + _ = _5_suite + _5_suite = ((input).Dtor_materials()).Dtor_algorithmSuite() + var _6_valueOrError3 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptyMap) + _ = _6_valueOrError3 + _6_valueOrError3 = m_AwsKmsUtils.Companion_Default___.StringifyEncryptionContext(((input).Dtor_materials()).Dtor_encryptionContext()) + if (_6_valueOrError3).IsFailure() { + res = (_6_valueOrError3).PropagateFailure() + return res + } + var _7_stringifiedEncCtx _dafny.Map + _ = _7_stringifiedEncCtx + _7_stringifiedEncCtx = (_6_valueOrError3).Extract().(_dafny.Map) + var _8_valueOrError4 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = _8_valueOrError4 + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = Companion_Default___.DeriveSharedSecret((_this).Client(), _3_senderKmsKeyId, (_this).RecipientPublicKey(), (_this).GrantTokens()) + _8_valueOrError4 = _out0 + if (_8_valueOrError4).IsFailure() { + res = (_8_valueOrError4).PropagateFailure() + return res + } + var _9_sharedSecret _dafny.Sequence + _ = _9_sharedSecret + _9_sharedSecret = (_8_valueOrError4).Extract().(_dafny.Sequence) + var _10_operationCompressedSenderPublicKey _dafny.Sequence + _ = _10_operationCompressedSenderPublicKey + if ((_this).CompressedSenderPublicKey()).Is_None() { + _10_operationCompressedSenderPublicKey = _dafny.SeqOf() + } else { + _10_operationCompressedSenderPublicKey = ((_this).CompressedSenderPublicKey()).Dtor_value().(_dafny.Sequence) + } + var _11_valueOrError5 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_UTF8.Companion_ValidUTF8Bytes_.Witness()) + _ = _11_valueOrError5 + _11_valueOrError5 = (m_UTF8.Encode(m_RawECDHKeyring.Companion_Default___.CurveSpecTypeToString((_this).CurveSpec()))).MapFailure(func(coer118 func(_dafny.Sequence) m_AwsCryptographyMaterialProvidersTypes.Error) func(interface{}) interface{} { + return func(arg119 interface{}) interface{} { + return coer118(arg119.(_dafny.Sequence)) + } + }(m_AwsKmsUtils.Companion_Default___.WrapStringToError)) + if (_11_valueOrError5).IsFailure() { + res = (_11_valueOrError5).PropagateFailure() + return res + } + var _12_curveSpecUtf8 _dafny.Sequence + _ = _12_curveSpecUtf8 + _12_curveSpecUtf8 = (_11_valueOrError5).Extract().(_dafny.Sequence) + var _13_valueOrError6 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = _13_valueOrError6 + _13_valueOrError6 = m_CanonicalEncryptionContext.Companion_Default___.EncryptionContextToAAD(((input).Dtor_materials()).Dtor_encryptionContext()) + if (_13_valueOrError6).IsFailure() { + res = (_13_valueOrError6).PropagateFailure() + return res + } + var _14_canonicalizedEC _dafny.Sequence + _ = _14_canonicalizedEC + _14_canonicalizedEC = (_13_valueOrError6).Extract().(_dafny.Sequence) + var _15_fixedInfo _dafny.Sequence + _ = _15_fixedInfo + _15_fixedInfo = m_EcdhEdkWrapping.Companion_Default___.SerializeFixedInfo(m_Constants.Companion_Default___.ECDH__KDF__UTF8(), _12_curveSpecUtf8, _10_operationCompressedSenderPublicKey, (_this).CompressedRecipientPublicKey(), _14_canonicalizedEC, Companion_Default___.AWS__KMS__ECDH__KEYRING__VERSION()) + var _16_ecdhGenerateAndWrap *m_EcdhEdkWrapping.EcdhGenerateAndWrapKeyMaterial + _ = _16_ecdhGenerateAndWrap + var _nw0 *m_EcdhEdkWrapping.EcdhGenerateAndWrapKeyMaterial = m_EcdhEdkWrapping.New_EcdhGenerateAndWrapKeyMaterial_() + _ = _nw0 + _nw0.Ctor__(_9_sharedSecret, _15_fixedInfo, (_this).CryptoPrimitives()) + _16_ecdhGenerateAndWrap = _nw0 + var _17_ecdhWrap *m_EcdhEdkWrapping.EcdhWrapKeyMaterial + _ = _17_ecdhWrap + var _nw1 *m_EcdhEdkWrapping.EcdhWrapKeyMaterial = m_EcdhEdkWrapping.New_EcdhWrapKeyMaterial_() + _ = _nw1 + _nw1.Ctor__(_9_sharedSecret, _15_fixedInfo, (_this).CryptoPrimitives()) + _17_ecdhWrap = _nw1 + var _18_valueOrError7 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_EdkWrapping.Companion_WrapEdkMaterialOutput_.Default(m_EcdhEdkWrapping.Companion_EcdhWrapInfo_.Default())) + _ = _18_valueOrError7 + var _out1 m_Wrappers.Result + _ = _out1 + _out1 = m_EdkWrapping.Companion_Default___.WrapEdkMaterial(_4_materials, _17_ecdhWrap, _16_ecdhGenerateAndWrap) + _18_valueOrError7 = _out1 + if (_18_valueOrError7).IsFailure() { + res = (_18_valueOrError7).PropagateFailure() + return res + } + var _19_wrapOutput m_EdkWrapping.WrapEdkMaterialOutput + _ = _19_wrapOutput + _19_wrapOutput = (_18_valueOrError7).Extract().(m_EdkWrapping.WrapEdkMaterialOutput) + var _20_symmetricSigningKeyList m_Wrappers.Option + _ = _20_symmetricSigningKeyList + if ((_19_wrapOutput).Dtor_symmetricSigningKey()).Is_Some() { + _20_symmetricSigningKeyList = m_Wrappers.Companion_Option_.Create_Some_(_dafny.SeqOf(((_19_wrapOutput).Dtor_symmetricSigningKey()).Dtor_value().(_dafny.Sequence))) + } else { + _20_symmetricSigningKeyList = m_Wrappers.Companion_Option_.Create_None_() + } + var _21_valueOrError8 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _21_valueOrError8 + _21_valueOrError8 = m_Wrappers.Companion_Default___.Need((m_RawECDHKeyring.Companion_Default___.ValidCompressedPublicKeyLength(_10_operationCompressedSenderPublicKey)) && (m_RawECDHKeyring.Companion_Default___.ValidCompressedPublicKeyLength((_this).CompressedRecipientPublicKey())), Companion_Default___.E(_dafny.SeqOfString("Invalid compressed public key length."))) + if (_21_valueOrError8).IsFailure() { + res = (_21_valueOrError8).PropagateFailure() + return res + } + var _22_edk m_AwsCryptographyMaterialProvidersTypes.EncryptedDataKey + _ = _22_edk + _22_edk = m_AwsCryptographyMaterialProvidersTypes.Companion_EncryptedDataKey_.Create_EncryptedDataKey_(m_Constants.Companion_Default___.KMS__ECDH__PROVIDER__ID(), m_RawECDHKeyring.Companion_Default___.SerializeProviderInfo(_10_operationCompressedSenderPublicKey, (_this).CompressedRecipientPublicKey()), (_19_wrapOutput).Dtor_wrappedMaterial()) + if (_19_wrapOutput).Is_GenerateAndWrapEdkMaterialOutput() { + var _23_valueOrError9 m_Wrappers.Result = m_Wrappers.Result{} + _ = _23_valueOrError9 + _23_valueOrError9 = m_Materials.Companion_Default___.EncryptionMaterialAddDataKey(_4_materials, (_19_wrapOutput).Dtor_plaintextDataKey(), _dafny.SeqOf(_22_edk), _20_symmetricSigningKeyList) + if (_23_valueOrError9).IsFailure() { + res = (_23_valueOrError9).PropagateFailure() + return res + } + var _24_result m_AwsCryptographyMaterialProvidersTypes.EncryptionMaterials + _ = _24_result + _24_result = (_23_valueOrError9).Extract().(m_AwsCryptographyMaterialProvidersTypes.EncryptionMaterials) + res = m_Wrappers.Companion_Result_.Create_Success_(m_AwsCryptographyMaterialProvidersTypes.Companion_OnEncryptOutput_.Create_OnEncryptOutput_(_24_result)) + return res + } else if (_19_wrapOutput).Is_WrapOnlyEdkMaterialOutput() { + var _25_valueOrError10 m_Wrappers.Result = m_Wrappers.Result{} + _ = _25_valueOrError10 + _25_valueOrError10 = m_Materials.Companion_Default___.EncryptionMaterialAddEncryptedDataKeys(_4_materials, _dafny.SeqOf(_22_edk), _20_symmetricSigningKeyList) + if (_25_valueOrError10).IsFailure() { + res = (_25_valueOrError10).PropagateFailure() + return res + } + var _26_result m_AwsCryptographyMaterialProvidersTypes.EncryptionMaterials + _ = _26_result + _26_result = (_25_valueOrError10).Extract().(m_AwsCryptographyMaterialProvidersTypes.EncryptionMaterials) + res = m_Wrappers.Companion_Result_.Create_Success_(m_AwsCryptographyMaterialProvidersTypes.Companion_OnEncryptOutput_.Create_OnEncryptOutput_(_26_result)) + return res + } + return res + } +} +func (_this *AwsKmsEcdhKeyring) OnDecrypt_k(input m_AwsCryptographyMaterialProvidersTypes.OnDecryptInput) m_Wrappers.Result { + { + var res m_Wrappers.Result = m_Wrappers.Result{} + _ = res + var _0_materials m_AwsCryptographyMaterialProvidersTypes.DecryptionMaterials + _ = _0_materials + _0_materials = (input).Dtor_materials() + var _1_suite m_AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo + _ = _1_suite + _1_suite = ((input).Dtor_materials()).Dtor_algorithmSuite() + var _2_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _2_valueOrError0 + _2_valueOrError0 = m_Wrappers.Companion_Default___.Need(m_Materials.Companion_Default___.DecryptionMaterialsWithoutPlaintextDataKey(_0_materials), Companion_Default___.E(_dafny.SeqOfString("Keyring received decryption materials that already contain a plaintext data key."))) + if (_2_valueOrError0).IsFailure() { + res = (_2_valueOrError0).PropagateFailure() + return res + } + var _3_filter *OnDecryptEcdhDataKeyFilter + _ = _3_filter + var _nw0 *OnDecryptEcdhDataKeyFilter = New_OnDecryptEcdhDataKeyFilter_() + _ = _nw0 + _nw0.Ctor__((_this).KeyAgreementScheme(), (_this).CompressedRecipientPublicKey(), (_this).CompressedSenderPublicKey()) + _3_filter = _nw0 + var _4_valueOrError1 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = _4_valueOrError1 + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_Actions.Companion_Default___.FilterWithResult(_3_filter, (input).Dtor_encryptedDataKeys()) + _4_valueOrError1 = _out0 + if (_4_valueOrError1).IsFailure() { + res = (_4_valueOrError1).PropagateFailure() + return res + } + var _5_edksToAttempt _dafny.Sequence + _ = _5_edksToAttempt + _5_edksToAttempt = (_4_valueOrError1).Extract().(_dafny.Sequence) + if (_dafny.IntOfUint32((_5_edksToAttempt).Cardinality())).Sign() == 0 { + var _6_valueOrError2 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq.SetString()) + _ = _6_valueOrError2 + _6_valueOrError2 = m_ErrorMessages.Companion_Default___.IncorrectDataKeys((input).Dtor_encryptedDataKeys(), ((input).Dtor_materials()).Dtor_algorithmSuite(), _dafny.SeqOfString("")) + if (_6_valueOrError2).IsFailure() { + res = (_6_valueOrError2).PropagateFailure() + return res + } + var _7_errorMessage _dafny.Sequence + _ = _7_errorMessage + _7_errorMessage = (_6_valueOrError2).Extract().(_dafny.Sequence) + res = m_Wrappers.Companion_Result_.Create_Failure_(Companion_Default___.E(_7_errorMessage)) + return res + } + var _8_decryptClosure m_Actions.ActionWithResult + _ = _8_decryptClosure + var _nw1 *DecryptSingleEncryptedDataKey = New_DecryptSingleEncryptedDataKey_() + _ = _nw1 + _nw1.Ctor__(_0_materials, (_this).CryptoPrimitives(), (_this).CompressedRecipientPublicKey(), (_this).Client(), (_this).GrantTokens(), (_this).KeyAgreementScheme(), (_this).CurveSpec()) + _8_decryptClosure = _nw1 + var _9_outcome m_Wrappers.Result + _ = _9_outcome + var _out1 m_Wrappers.Result + _ = _out1 + _out1 = m_Actions.Companion_Default___.ReduceToSuccess(_8_decryptClosure, _5_edksToAttempt) + _9_outcome = _out1 + var _10_valueOrError3 m_Wrappers.Result = m_Wrappers.Result{} + _ = _10_valueOrError3 + _10_valueOrError3 = (_9_outcome).MapFailure(func(coer119 func(_dafny.Sequence) m_AwsCryptographyMaterialProvidersTypes.Error) func(interface{}) interface{} { + return func(arg120 interface{}) interface{} { + return coer119(arg120.(_dafny.Sequence)) + } + }(func(_11_errors _dafny.Sequence) m_AwsCryptographyMaterialProvidersTypes.Error { + return m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_CollectionOfErrors_(_11_errors, _dafny.SeqOfString("No Configured KMS Key was able to decrypt the Data Key. The list of encountered Exceptions is available via `list`.")) + })) + if (_10_valueOrError3).IsFailure() { + res = (_10_valueOrError3).PropagateFailure() + return res + } + var _12_SealedDecryptionMaterials m_AwsCryptographyMaterialProvidersTypes.DecryptionMaterials + _ = _12_SealedDecryptionMaterials + _12_SealedDecryptionMaterials = (_10_valueOrError3).Extract().(m_AwsCryptographyMaterialProvidersTypes.DecryptionMaterials) + res = m_Wrappers.Companion_Result_.Create_Success_(m_AwsCryptographyMaterialProvidersTypes.Companion_OnDecryptOutput_.Create_OnDecryptOutput_(_12_SealedDecryptionMaterials)) + return res + return res + } +} +func (_this *AwsKmsEcdhKeyring) Client() m_ComAmazonawsKmsTypes.IKMSClient { + { + return _this._client + } +} +func (_this *AwsKmsEcdhKeyring) CryptoPrimitives() *m_AtomicPrimitives.AtomicPrimitivesClient { + { + return _this._cryptoPrimitives + } +} +func (_this *AwsKmsEcdhKeyring) KeyAgreementScheme() m_AwsCryptographyMaterialProvidersTypes.KmsEcdhStaticConfigurations { + { + return _this._keyAgreementScheme + } +} +func (_this *AwsKmsEcdhKeyring) CurveSpec() m_AwsCryptographyPrimitivesTypes.ECDHCurveSpec { + { + return _this._curveSpec + } +} +func (_this *AwsKmsEcdhKeyring) GrantTokens() _dafny.Sequence { + { + return _this._grantTokens + } +} +func (_this *AwsKmsEcdhKeyring) RecipientPublicKey() _dafny.Sequence { + { + return _this._recipientPublicKey + } +} +func (_this *AwsKmsEcdhKeyring) SenderPublicKey() m_Wrappers.Option { + { + return _this._senderPublicKey + } +} +func (_this *AwsKmsEcdhKeyring) CompressedSenderPublicKey() m_Wrappers.Option { + { + return _this._compressedSenderPublicKey + } +} +func (_this *AwsKmsEcdhKeyring) CompressedRecipientPublicKey() _dafny.Sequence { + { + return _this._compressedRecipientPublicKey + } +} +func (_this *AwsKmsEcdhKeyring) SenderKmsKeyId() m_Wrappers.Option { + { + return _this._senderKmsKeyId + } +} + +// End of class AwsKmsEcdhKeyring + +// Definition of class DecryptSingleEncryptedDataKey +type DecryptSingleEncryptedDataKey struct { + _materials m_AwsCryptographyMaterialProvidersTypes.DecryptionMaterials + _cryptoPrimitives *m_AtomicPrimitives.AtomicPrimitivesClient + _recipientPublicKey _dafny.Sequence + _keyAgreementScheme m_AwsCryptographyMaterialProvidersTypes.KmsEcdhStaticConfigurations + _client m_ComAmazonawsKmsTypes.IKMSClient + _curveSpec m_AwsCryptographyPrimitivesTypes.ECDHCurveSpec + _grantTokens _dafny.Sequence +} + +func New_DecryptSingleEncryptedDataKey_() *DecryptSingleEncryptedDataKey { + _this := DecryptSingleEncryptedDataKey{} + + _this._materials = m_AwsCryptographyMaterialProvidersTypes.DecryptionMaterials{} + _this._cryptoPrimitives = (*m_AtomicPrimitives.AtomicPrimitivesClient)(nil) + _this._recipientPublicKey = _dafny.EmptySeq + _this._keyAgreementScheme = m_AwsCryptographyMaterialProvidersTypes.Companion_KmsEcdhStaticConfigurations_.Default() + _this._client = (m_ComAmazonawsKmsTypes.IKMSClient)(nil) + _this._curveSpec = m_AwsCryptographyPrimitivesTypes.Companion_ECDHCurveSpec_.Default() + _this._grantTokens = _dafny.EmptySeq + return &_this +} + +type CompanionStruct_DecryptSingleEncryptedDataKey_ struct { +} + +var Companion_DecryptSingleEncryptedDataKey_ = CompanionStruct_DecryptSingleEncryptedDataKey_{} + +func (_this *DecryptSingleEncryptedDataKey) Equals(other *DecryptSingleEncryptedDataKey) bool { + return _this == other +} + +func (_this *DecryptSingleEncryptedDataKey) EqualsGeneric(x interface{}) bool { + other, ok := x.(*DecryptSingleEncryptedDataKey) + return ok && _this.Equals(other) +} + +func (*DecryptSingleEncryptedDataKey) String() string { + return "AwsKmsEcdhKeyring.DecryptSingleEncryptedDataKey" +} + +func Type_DecryptSingleEncryptedDataKey_() _dafny.TypeDescriptor { + return type_DecryptSingleEncryptedDataKey_{} +} + +type type_DecryptSingleEncryptedDataKey_ struct { +} + +func (_this type_DecryptSingleEncryptedDataKey_) Default() interface{} { + return (*DecryptSingleEncryptedDataKey)(nil) +} + +func (_this type_DecryptSingleEncryptedDataKey_) String() string { + return "AwsKmsEcdhKeyring.DecryptSingleEncryptedDataKey" +} +func (_this *DecryptSingleEncryptedDataKey) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){m_Actions.Companion_ActionWithResult_.TraitID_, m_Actions.Companion_Action_.TraitID_} +} + +var _ m_Actions.ActionWithResult = &DecryptSingleEncryptedDataKey{} +var _ m_Actions.Action = &DecryptSingleEncryptedDataKey{} +var _ _dafny.TraitOffspring = &DecryptSingleEncryptedDataKey{} + +func (_this *DecryptSingleEncryptedDataKey) Ctor__(materials m_AwsCryptographyMaterialProvidersTypes.DecryptionMaterials, cryptoPrimitives *m_AtomicPrimitives.AtomicPrimitivesClient, recipientPublicKey _dafny.Sequence, client m_ComAmazonawsKmsTypes.IKMSClient, grantTokens _dafny.Sequence, keyAgreementScheme m_AwsCryptographyMaterialProvidersTypes.KmsEcdhStaticConfigurations, curveSpec m_AwsCryptographyPrimitivesTypes.ECDHCurveSpec) { + { + (_this)._materials = materials + (_this)._cryptoPrimitives = cryptoPrimitives + (_this)._recipientPublicKey = recipientPublicKey + (_this)._keyAgreementScheme = keyAgreementScheme + (_this)._client = client + (_this)._curveSpec = curveSpec + (_this)._grantTokens = grantTokens + } +} +func (_this *DecryptSingleEncryptedDataKey) Invoke(edk interface{}) interface{} { + { + var edk m_AwsCryptographyMaterialProvidersTypes.EncryptedDataKey = edk.(m_AwsCryptographyMaterialProvidersTypes.EncryptedDataKey) + _ = edk + var res m_Wrappers.Result = m_Wrappers.Result{} + _ = res + var _0_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _0_valueOrError0 + _0_valueOrError0 = m_Wrappers.Companion_Default___.Need(m_UTF8.Companion_Default___.ValidUTF8Seq((edk).Dtor_keyProviderId()), m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.SeqOfString("Received invalid EDK provider id for AWS KMS ECDH Keyring"))) + if (_0_valueOrError0).IsFailure() { + res = (_0_valueOrError0).PropagateFailure() + return res + } + var _1_suite m_AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo + _ = _1_suite + _1_suite = ((_this).Materials()).Dtor_algorithmSuite() + var _2_keyProviderId _dafny.Sequence + _ = _2_keyProviderId + _2_keyProviderId = (edk).Dtor_keyProviderId() + var _3_providerInfo _dafny.Sequence + _ = _3_providerInfo + _3_providerInfo = (edk).Dtor_keyProviderInfo() + var _4_ciphertext _dafny.Sequence + _ = _4_ciphertext + _4_ciphertext = (edk).Dtor_ciphertext() + var _5_valueOrError1 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = _5_valueOrError1 + _5_valueOrError1 = m_EdkWrapping.Companion_Default___.GetProviderWrappedMaterial(_4_ciphertext, _1_suite) + if (_5_valueOrError1).IsFailure() { + res = (_5_valueOrError1).PropagateFailure() + return res + } + var _6_providerWrappedMaterial _dafny.Sequence + _ = _6_providerWrappedMaterial + _6_providerWrappedMaterial = (_5_valueOrError1).Extract().(_dafny.Sequence) + var _7_valueOrError2 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _7_valueOrError2 + _7_valueOrError2 = m_Wrappers.Companion_Default___.Need(((_dafny.IntOfUint32((_3_providerInfo).Cardinality())).Cmp(_dafny.IntOfUint32(m_Constants.Companion_Default___.ECDH__PROVIDER__INFO__521__LEN())) <= 0) && (m_RawECDHKeyring.Companion_Default___.ValidProviderInfoLength(_3_providerInfo)), Companion_Default___.E(_dafny.SeqOfString("EDK ProviderInfo longer than expected"))) + if (_7_valueOrError2).IsFailure() { + res = (_7_valueOrError2).PropagateFailure() + return res + } + var _8_keyringVersion uint8 + _ = _8_keyringVersion + _8_keyringVersion = (_3_providerInfo).Select(0).(uint8) + var _9_valueOrError3 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _9_valueOrError3 + _9_valueOrError3 = m_Wrappers.Companion_Default___.Need(_dafny.Companion_Sequence_.Equal(_dafny.SeqOf(_8_keyringVersion), Companion_Default___.AWS__KMS__ECDH__KEYRING__VERSION()), Companion_Default___.E(_dafny.SeqOfString("Incorrect Keyring version found in provider info."))) + if (_9_valueOrError3).IsFailure() { + res = (_9_valueOrError3).PropagateFailure() + return res + } + var _10_recipientPublicKeyLength _dafny.Int + _ = _10_recipientPublicKeyLength + _10_recipientPublicKeyLength = _dafny.IntOfUint32(m_StandardLibrary_UInt.Companion_Default___.SeqToUInt32((_3_providerInfo).Subsequence(uint32(m_Constants.Companion_Default___.ECDH__PROVIDER__INFO__RPL__INDEX()), uint32(m_Constants.Companion_Default___.ECDH__PROVIDER__INFO__RPK__INDEX())))) + var _11_recipientPublicKeyLengthIndex _dafny.Int + _ = _11_recipientPublicKeyLengthIndex + _11_recipientPublicKeyLengthIndex = (_dafny.IntOfUint32(m_Constants.Companion_Default___.ECDH__PROVIDER__INFO__RPK__INDEX())).Plus(_10_recipientPublicKeyLength) + var _12_senderPublicKeyIndex _dafny.Int + _ = _12_senderPublicKeyIndex + _12_senderPublicKeyIndex = (_11_recipientPublicKeyLengthIndex).Plus(m_Constants.Companion_Default___.ECDH__PROVIDER__INFO__PUBLIC__KEY__LEN()) + var _13_valueOrError4 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _13_valueOrError4 + _13_valueOrError4 = m_Wrappers.Companion_Default___.Need(((_11_recipientPublicKeyLengthIndex).Plus(_dafny.IntOfInt64(4))).Cmp(_dafny.IntOfUint32((_3_providerInfo).Cardinality())) < 0, Companion_Default___.E(_dafny.SeqOfString("Key Provider Info Serialization Error. Serialized length less than expected."))) + if (_13_valueOrError4).IsFailure() { + res = (_13_valueOrError4).PropagateFailure() + return res + } + var _14_providerInfoRecipientPublicKey _dafny.Sequence + _ = _14_providerInfoRecipientPublicKey + _14_providerInfoRecipientPublicKey = (_3_providerInfo).Subsequence(uint32(m_Constants.Companion_Default___.ECDH__PROVIDER__INFO__RPK__INDEX()), (_11_recipientPublicKeyLengthIndex).Uint32()) + var _15_providerInfoSenderPublicKey _dafny.Sequence + _ = _15_providerInfoSenderPublicKey + _15_providerInfoSenderPublicKey = (_3_providerInfo).Drop((_12_senderPublicKeyIndex).Uint32()) + var _16_valueOrError5 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = _16_valueOrError5 + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_RawECDHKeyring.Companion_Default___.DecompressPublicKey(_15_providerInfoSenderPublicKey, (_this).CurveSpec(), (_this).CryptoPrimitives()) + _16_valueOrError5 = _out0 + if (_16_valueOrError5).IsFailure() { + res = (_16_valueOrError5).PropagateFailure() + return res + } + var _17_senderPublicKey _dafny.Sequence + _ = _17_senderPublicKey + _17_senderPublicKey = (_16_valueOrError5).Extract().(_dafny.Sequence) + var _18_valueOrError6 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = _18_valueOrError6 + var _out1 m_Wrappers.Result + _ = _out1 + _out1 = m_RawECDHKeyring.Companion_Default___.DecompressPublicKey(_14_providerInfoRecipientPublicKey, (_this).CurveSpec(), (_this).CryptoPrimitives()) + _18_valueOrError6 = _out1 + if (_18_valueOrError6).IsFailure() { + res = (_18_valueOrError6).PropagateFailure() + return res + } + var _19_recipientPublicKey _dafny.Sequence + _ = _19_recipientPublicKey + _19_recipientPublicKey = (_18_valueOrError6).Extract().(_dafny.Sequence) + var _20_valueOrError7 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(false) + _ = _20_valueOrError7 + var _out2 m_Wrappers.Result + _ = _out2 + _out2 = m_RawECDHKeyring.Companion_Default___.ValidatePublicKey((_this).CryptoPrimitives(), (_this).CurveSpec(), _17_senderPublicKey) + _20_valueOrError7 = _out2 + if (_20_valueOrError7).IsFailure() { + res = (_20_valueOrError7).PropagateFailure() + return res + } + var _21___v0 bool + _ = _21___v0 + _21___v0 = (_20_valueOrError7).Extract().(bool) + var _22_valueOrError8 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(false) + _ = _22_valueOrError8 + var _out3 m_Wrappers.Result + _ = _out3 + _out3 = m_RawECDHKeyring.Companion_Default___.ValidatePublicKey((_this).CryptoPrimitives(), (_this).CurveSpec(), _19_recipientPublicKey) + _22_valueOrError8 = _out3 + if (_22_valueOrError8).IsFailure() { + res = (_22_valueOrError8).PropagateFailure() + return res + } + var _23___v1 bool + _ = _23___v1 + _23___v1 = (_22_valueOrError8).Extract().(bool) + var _24_valueOrError9 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _24_valueOrError9 + _24_valueOrError9 = m_Wrappers.Companion_Default___.Need((m_ComAmazonawsKmsTypes.Companion_Default___.IsValid__PublicKeyType(_17_senderPublicKey)) && (m_ComAmazonawsKmsTypes.Companion_Default___.IsValid__PublicKeyType((_this).RecipientPublicKey())), Companion_Default___.E(_dafny.SeqOfString("Received serialized sender public key of incorrect length"))) + if (_24_valueOrError9).IsFailure() { + res = (_24_valueOrError9).PropagateFailure() + return res + } + var _25_sharedSecretPublicKey _dafny.Sequence = _dafny.EmptySeq + _ = _25_sharedSecretPublicKey + var _26_sharedSecretKmsKeyId _dafny.Sequence = _dafny.EmptySeq.SetString() + _ = _26_sharedSecretKmsKeyId + var _source0 m_AwsCryptographyMaterialProvidersTypes.KmsEcdhStaticConfigurations = (_this).KeyAgreementScheme() + _ = _source0 + { + { + if _source0.Is_KmsPublicKeyDiscovery() { + var _27_kmsPublicKeyDiscovery m_AwsCryptographyMaterialProvidersTypes.KmsPublicKeyDiscoveryInput = _source0.Get_().(m_AwsCryptographyMaterialProvidersTypes.KmsEcdhStaticConfigurations_KmsPublicKeyDiscovery).KmsPublicKeyDiscovery + _ = _27_kmsPublicKeyDiscovery + { + var _28_valueOrError10 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.TupleOf()) + _ = _28_valueOrError10 + _28_valueOrError10 = m_AwsKmsUtils.Companion_Default___.ValidateKmsKeyId((_27_kmsPublicKeyDiscovery).Dtor_recipientKmsIdentifier()) + if (_28_valueOrError10).IsFailure() { + res = (_28_valueOrError10).PropagateFailure() + return res + } + var _29___v2 _dafny.Tuple + _ = _29___v2 + _29___v2 = (_28_valueOrError10).Extract().(_dafny.Tuple) + _25_sharedSecretPublicKey = _17_senderPublicKey + _26_sharedSecretKmsKeyId = (_27_kmsPublicKeyDiscovery).Dtor_recipientKmsIdentifier() + } + goto Lmatch0 + } + } + { + var _30_kmsPrivateKeyToStaticPublicKey m_AwsCryptographyMaterialProvidersTypes.KmsPrivateKeyToStaticPublicKeyInput = _source0.Get_().(m_AwsCryptographyMaterialProvidersTypes.KmsEcdhStaticConfigurations_KmsPrivateKeyToStaticPublicKey).KmsPrivateKeyToStaticPublicKey + _ = _30_kmsPrivateKeyToStaticPublicKey + { + var _31_valueOrError11 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.TupleOf()) + _ = _31_valueOrError11 + _31_valueOrError11 = m_AwsKmsUtils.Companion_Default___.ValidateKmsKeyId((_30_kmsPrivateKeyToStaticPublicKey).Dtor_senderKmsIdentifier()) + if (_31_valueOrError11).IsFailure() { + res = (_31_valueOrError11).PropagateFailure() + return res + } + var _32___v3 _dafny.Tuple + _ = _32___v3 + _32___v3 = (_31_valueOrError11).Extract().(_dafny.Tuple) + _26_sharedSecretKmsKeyId = (_30_kmsPrivateKeyToStaticPublicKey).Dtor_senderKmsIdentifier() + if _dafny.Companion_Sequence_.Equal((_30_kmsPrivateKeyToStaticPublicKey).Dtor_recipientPublicKey(), _19_recipientPublicKey) { + _25_sharedSecretPublicKey = _19_recipientPublicKey + } else { + _25_sharedSecretPublicKey = _17_senderPublicKey + } + } + } + goto Lmatch0 + } + Lmatch0: + var _33_valueOrError12 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _33_valueOrError12 + _33_valueOrError12 = m_Wrappers.Companion_Default___.Need(m_ComAmazonawsKmsTypes.Companion_Default___.IsValid__PublicKeyType(_25_sharedSecretPublicKey), Companion_Default___.E(_dafny.SeqOfString("Received Recipient Public Key of incorrect expected length"))) + if (_33_valueOrError12).IsFailure() { + res = (_33_valueOrError12).PropagateFailure() + return res + } + var _34_valueOrError13 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = _34_valueOrError13 + var _out4 m_Wrappers.Result + _ = _out4 + _out4 = Companion_Default___.DeriveSharedSecret((_this).Client(), _26_sharedSecretKmsKeyId, _25_sharedSecretPublicKey, (_this).GrantTokens()) + _34_valueOrError13 = _out4 + if (_34_valueOrError13).IsFailure() { + res = (_34_valueOrError13).PropagateFailure() + return res + } + var _35_sharedSecret _dafny.Sequence + _ = _35_sharedSecret + _35_sharedSecret = (_34_valueOrError13).Extract().(_dafny.Sequence) + var _36_ecdhUnwrap *m_EcdhEdkWrapping.EcdhUnwrap + _ = _36_ecdhUnwrap + var _nw0 *m_EcdhEdkWrapping.EcdhUnwrap = m_EcdhEdkWrapping.New_EcdhUnwrap_() + _ = _nw0 + _nw0.Ctor__(_15_providerInfoSenderPublicKey, _14_providerInfoRecipientPublicKey, _35_sharedSecret, Companion_Default___.AWS__KMS__ECDH__KEYRING__VERSION(), (_this).CurveSpec(), (_this).CryptoPrimitives()) + _36_ecdhUnwrap = _nw0 + var _37_unwrapOutputRes m_Wrappers.Result + _ = _37_unwrapOutputRes + var _out5 m_Wrappers.Result + _ = _out5 + _out5 = m_EdkWrapping.Companion_Default___.UnwrapEdkMaterial((edk).Dtor_ciphertext(), (_this).Materials(), _36_ecdhUnwrap) + _37_unwrapOutputRes = _out5 + var _38_valueOrError14 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_EdkWrapping.Companion_UnwrapEdkMaterialOutput_.Default(m_EcdhEdkWrapping.Companion_EcdhUnwrapInfo_.Default())) + _ = _38_valueOrError14 + _38_valueOrError14 = _37_unwrapOutputRes + if (_38_valueOrError14).IsFailure() { + res = (_38_valueOrError14).PropagateFailure() + return res + } + var _39_unwrapOutput m_EdkWrapping.UnwrapEdkMaterialOutput + _ = _39_unwrapOutput + _39_unwrapOutput = (_38_valueOrError14).Extract().(m_EdkWrapping.UnwrapEdkMaterialOutput) + var _40_valueOrError15 m_Wrappers.Result = m_Wrappers.Result{} + _ = _40_valueOrError15 + _40_valueOrError15 = m_Materials.Companion_Default___.DecryptionMaterialsAddDataKey((_this).Materials(), (_39_unwrapOutput).Dtor_plaintextDataKey(), (_39_unwrapOutput).Dtor_symmetricSigningKey()) + if (_40_valueOrError15).IsFailure() { + res = (_40_valueOrError15).PropagateFailure() + return res + } + var _41_result m_AwsCryptographyMaterialProvidersTypes.DecryptionMaterials + _ = _41_result + _41_result = (_40_valueOrError15).Extract().(m_AwsCryptographyMaterialProvidersTypes.DecryptionMaterials) + res = m_Wrappers.Companion_Result_.Create_Success_(_41_result) + return res + return res + } +} +func (_this *DecryptSingleEncryptedDataKey) Materials() m_AwsCryptographyMaterialProvidersTypes.DecryptionMaterials { + { + return _this._materials + } +} +func (_this *DecryptSingleEncryptedDataKey) CryptoPrimitives() *m_AtomicPrimitives.AtomicPrimitivesClient { + { + return _this._cryptoPrimitives + } +} +func (_this *DecryptSingleEncryptedDataKey) RecipientPublicKey() _dafny.Sequence { + { + return _this._recipientPublicKey + } +} +func (_this *DecryptSingleEncryptedDataKey) KeyAgreementScheme() m_AwsCryptographyMaterialProvidersTypes.KmsEcdhStaticConfigurations { + { + return _this._keyAgreementScheme + } +} +func (_this *DecryptSingleEncryptedDataKey) Client() m_ComAmazonawsKmsTypes.IKMSClient { + { + return _this._client + } +} +func (_this *DecryptSingleEncryptedDataKey) CurveSpec() m_AwsCryptographyPrimitivesTypes.ECDHCurveSpec { + { + return _this._curveSpec + } +} +func (_this *DecryptSingleEncryptedDataKey) GrantTokens() _dafny.Sequence { + { + return _this._grantTokens + } +} + +// End of class DecryptSingleEncryptedDataKey + +// Definition of class OnDecryptEcdhDataKeyFilter +type OnDecryptEcdhDataKeyFilter struct { + _keyAgreementScheme m_AwsCryptographyMaterialProvidersTypes.KmsEcdhStaticConfigurations + _compressedRecipientPublicKey _dafny.Sequence + _compressedSenderPublicKey _dafny.Sequence +} + +func New_OnDecryptEcdhDataKeyFilter_() *OnDecryptEcdhDataKeyFilter { + _this := OnDecryptEcdhDataKeyFilter{} + + _this._keyAgreementScheme = m_AwsCryptographyMaterialProvidersTypes.Companion_KmsEcdhStaticConfigurations_.Default() + _this._compressedRecipientPublicKey = _dafny.EmptySeq + _this._compressedSenderPublicKey = _dafny.EmptySeq + return &_this +} + +type CompanionStruct_OnDecryptEcdhDataKeyFilter_ struct { +} + +var Companion_OnDecryptEcdhDataKeyFilter_ = CompanionStruct_OnDecryptEcdhDataKeyFilter_{} + +func (_this *OnDecryptEcdhDataKeyFilter) Equals(other *OnDecryptEcdhDataKeyFilter) bool { + return _this == other +} + +func (_this *OnDecryptEcdhDataKeyFilter) EqualsGeneric(x interface{}) bool { + other, ok := x.(*OnDecryptEcdhDataKeyFilter) + return ok && _this.Equals(other) +} + +func (*OnDecryptEcdhDataKeyFilter) String() string { + return "AwsKmsEcdhKeyring.OnDecryptEcdhDataKeyFilter" +} + +func Type_OnDecryptEcdhDataKeyFilter_() _dafny.TypeDescriptor { + return type_OnDecryptEcdhDataKeyFilter_{} +} + +type type_OnDecryptEcdhDataKeyFilter_ struct { +} + +func (_this type_OnDecryptEcdhDataKeyFilter_) Default() interface{} { + return (*OnDecryptEcdhDataKeyFilter)(nil) +} + +func (_this type_OnDecryptEcdhDataKeyFilter_) String() string { + return "AwsKmsEcdhKeyring.OnDecryptEcdhDataKeyFilter" +} +func (_this *OnDecryptEcdhDataKeyFilter) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){m_Actions.Companion_DeterministicActionWithResult_.TraitID_, m_Actions.Companion_DeterministicAction_.TraitID_} +} + +var _ m_Actions.DeterministicActionWithResult = &OnDecryptEcdhDataKeyFilter{} +var _ m_Actions.DeterministicAction = &OnDecryptEcdhDataKeyFilter{} +var _ _dafny.TraitOffspring = &OnDecryptEcdhDataKeyFilter{} + +func (_this *OnDecryptEcdhDataKeyFilter) Ctor__(keyAgreementScheme m_AwsCryptographyMaterialProvidersTypes.KmsEcdhStaticConfigurations, compressedRecipientPublicKey _dafny.Sequence, compressedSenderPublicKey m_Wrappers.Option) { + { + (_this)._keyAgreementScheme = keyAgreementScheme + (_this)._compressedRecipientPublicKey = compressedRecipientPublicKey + if (compressedSenderPublicKey).Is_Some() { + (_this)._compressedSenderPublicKey = (compressedSenderPublicKey).Dtor_value().(_dafny.Sequence) + } else { + (_this)._compressedSenderPublicKey = _dafny.SeqOf() + } + } +} +func (_this *OnDecryptEcdhDataKeyFilter) Invoke(edk interface{}) interface{} { + { + var edk m_AwsCryptographyMaterialProvidersTypes.EncryptedDataKey = edk.(m_AwsCryptographyMaterialProvidersTypes.EncryptedDataKey) + _ = edk + var res m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(false) + _ = res + var _0_providerInfo _dafny.Sequence + _ = _0_providerInfo + _0_providerInfo = (edk).Dtor_keyProviderInfo() + var _1_providerId _dafny.Sequence + _ = _1_providerId + _1_providerId = (edk).Dtor_keyProviderId() + if (!_dafny.Companion_Sequence_.Equal(_1_providerId, m_Constants.Companion_Default___.RAW__ECDH__PROVIDER__ID())) && (!_dafny.Companion_Sequence_.Equal(_1_providerId, m_Constants.Companion_Default___.KMS__ECDH__PROVIDER__ID())) { + res = m_Wrappers.Companion_Result_.Create_Success_(false) + return res + } + var _2_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _2_valueOrError0 + _2_valueOrError0 = m_Wrappers.Companion_Default___.Need(((_dafny.IntOfUint32((_0_providerInfo).Cardinality())).Cmp(_dafny.IntOfUint32(m_Constants.Companion_Default___.ECDH__PROVIDER__INFO__521__LEN())) <= 0) && (m_RawECDHKeyring.Companion_Default___.ValidProviderInfoLength(_0_providerInfo)), Companion_Default___.E(_dafny.SeqOfString("EDK ProviderInfo longer than expected"))) + if (_2_valueOrError0).IsFailure() { + res = (_2_valueOrError0).PropagateFailure() + return res + } + var _3_keyringVersion uint8 + _ = _3_keyringVersion + _3_keyringVersion = (_0_providerInfo).Select(0).(uint8) + var _4_valueOrError1 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _4_valueOrError1 + _4_valueOrError1 = m_Wrappers.Companion_Default___.Need(_dafny.Companion_Sequence_.Equal(_dafny.SeqOf(_3_keyringVersion), Companion_Default___.AWS__KMS__ECDH__KEYRING__VERSION()), Companion_Default___.E(_dafny.SeqOfString("Incorrect Keyring version found in provider info."))) + if (_4_valueOrError1).IsFailure() { + res = (_4_valueOrError1).PropagateFailure() + return res + } + var _5_recipientPublicKeyLength _dafny.Int + _ = _5_recipientPublicKeyLength + _5_recipientPublicKeyLength = _dafny.IntOfUint32(m_StandardLibrary_UInt.Companion_Default___.SeqToUInt32((_0_providerInfo).Subsequence(uint32(m_Constants.Companion_Default___.ECDH__PROVIDER__INFO__RPL__INDEX()), uint32(m_Constants.Companion_Default___.ECDH__PROVIDER__INFO__RPK__INDEX())))) + var _6_recipientPublicKeyLengthIndex _dafny.Int + _ = _6_recipientPublicKeyLengthIndex + _6_recipientPublicKeyLengthIndex = (_dafny.IntOfUint32(m_Constants.Companion_Default___.ECDH__PROVIDER__INFO__RPK__INDEX())).Plus(_5_recipientPublicKeyLength) + var _7_senderPublicKeyIndex _dafny.Int + _ = _7_senderPublicKeyIndex + _7_senderPublicKeyIndex = (_6_recipientPublicKeyLengthIndex).Plus(m_Constants.Companion_Default___.ECDH__PROVIDER__INFO__PUBLIC__KEY__LEN()) + var _8_valueOrError2 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _8_valueOrError2 + _8_valueOrError2 = m_Wrappers.Companion_Default___.Need(((_6_recipientPublicKeyLengthIndex).Plus(_dafny.IntOfInt64(4))).Cmp(_dafny.IntOfUint32((_0_providerInfo).Cardinality())) < 0, Companion_Default___.E(_dafny.SeqOfString("Key Provider Info Serialization Error. Serialized length less than expected."))) + if (_8_valueOrError2).IsFailure() { + res = (_8_valueOrError2).PropagateFailure() + return res + } + var _9_providerInfoRecipientPublicKey _dafny.Sequence + _ = _9_providerInfoRecipientPublicKey + _9_providerInfoRecipientPublicKey = (_0_providerInfo).Subsequence(uint32(m_Constants.Companion_Default___.ECDH__PROVIDER__INFO__RPK__INDEX()), (_6_recipientPublicKeyLengthIndex).Uint32()) + var _10_providerInfoSenderPublicKey _dafny.Sequence + _ = _10_providerInfoSenderPublicKey + _10_providerInfoSenderPublicKey = (_0_providerInfo).Drop((_7_senderPublicKeyIndex).Uint32()) + if ((_this).KeyAgreementScheme()).Is_KmsPublicKeyDiscovery() { + res = m_Wrappers.Companion_Result_.Create_Success_(_dafny.Companion_Sequence_.Equal((_this).CompressedRecipientPublicKey(), _9_providerInfoRecipientPublicKey)) + return res + } else { + res = m_Wrappers.Companion_Result_.Create_Success_(((_dafny.Companion_Sequence_.Equal((_this).CompressedSenderPublicKey(), _10_providerInfoSenderPublicKey)) && (_dafny.Companion_Sequence_.Equal((_this).CompressedRecipientPublicKey(), _9_providerInfoRecipientPublicKey))) || ((_dafny.Companion_Sequence_.Equal((_this).CompressedSenderPublicKey(), _9_providerInfoRecipientPublicKey)) && (_dafny.Companion_Sequence_.Equal((_this).CompressedRecipientPublicKey(), _10_providerInfoSenderPublicKey)))) + return res + } + return res + } +} +func (_this *OnDecryptEcdhDataKeyFilter) KeyAgreementScheme() m_AwsCryptographyMaterialProvidersTypes.KmsEcdhStaticConfigurations { + { + return _this._keyAgreementScheme + } +} +func (_this *OnDecryptEcdhDataKeyFilter) CompressedRecipientPublicKey() _dafny.Sequence { + { + return _this._compressedRecipientPublicKey + } +} +func (_this *OnDecryptEcdhDataKeyFilter) CompressedSenderPublicKey() _dafny.Sequence { + { + return _this._compressedSenderPublicKey + } +} + +// End of class OnDecryptEcdhDataKeyFilter diff --git a/customer-preview/mpl/AwsKmsHierarchicalKeyring/AwsKmsHierarchicalKeyring.go b/customer-preview/mpl/AwsKmsHierarchicalKeyring/AwsKmsHierarchicalKeyring.go new file mode 100644 index 000000000..5492fc6de --- /dev/null +++ b/customer-preview/mpl/AwsKmsHierarchicalKeyring/AwsKmsHierarchicalKeyring.go @@ -0,0 +1,2230 @@ +// Package AwsKmsHierarchicalKeyring +// Dafny module AwsKmsHierarchicalKeyring compiled into Go + +package AwsKmsHierarchicalKeyring + +import ( + os "os" + + m_ComAmazonawsDynamodbTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/ComAmazonawsDynamodbTypes" + m_Com_Amazonaws_Dynamodb "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/Com_Amazonaws_Dynamodb" + m_ComAmazonawsKmsTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/ComAmazonawsKmsTypes" + m_Com_Amazonaws_Kms "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/Com_Amazonaws_Kms" + m_AlgorithmSuites "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AlgorithmSuites" + m_AwsArnParsing "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsArnParsing" + m_AwsCryptographyKeyStoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreOperations" + m_AwsCryptographyKeyStoreTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreTypes" + m_AwsCryptographyMaterialProvidersTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersTypes" + m_AwsKmsDiscoveryKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsDiscoveryKeyring" + m_AwsKmsKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsKeyring" + m_AwsKmsMrkAreUnique "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkAreUnique" + m_AwsKmsMrkDiscoveryKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkDiscoveryKeyring" + m_AwsKmsMrkKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkKeyring" + m_AwsKmsMrkMatchForDecrypt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkMatchForDecrypt" + m_AwsKmsUtils "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsUtils" + m_CacheConstants "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CacheConstants" + m_CanonicalEncryptionContext "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CanonicalEncryptionContext" + m_Constants "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Constants" + m_CreateKeyStoreTable "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeyStoreTable" + m_CreateKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeys" + m_DDBKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DDBKeystoreOperations" + m_DiscoveryMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DiscoveryMultiKeyring" + m_EdkWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/EdkWrapping" + m_ErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/ErrorMessages" + m_GetKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/GetKeys" + m_IntermediateKeyWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/IntermediateKeyWrapping" + m_KMSKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KMSKeystoreOperations" + m_KeyStore "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStore" + m_KeyStoreErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStoreErrorMessages" + m_Keyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Keyring" + m_KmsArn "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KmsArn" + m_LocalCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/LocalCMC" + m_MaterialWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MaterialWrapping" + m_Materials "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Materials" + m_MrkAwareDiscoveryMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MrkAwareDiscoveryMultiKeyring" + m_MrkAwareStrictMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MrkAwareStrictMultiKeyring" + m_MultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MultiKeyring" + m_StormTracker "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StormTracker" + m_StormTrackingCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StormTrackingCMC" + m_StrictMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StrictMultiKeyring" + m_Structure "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Structure" + m_SynchronizedLocalCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/SynchronizedLocalCMC" + m_AtomicPrimitives "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AtomicPrimitives" + m_AwsCryptographyPrimitivesOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesOperations" + m_AwsCryptographyPrimitivesTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesTypes" + m_Digest "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Digest" + m_HKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/HKDF" + m_KdfCtr "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/KdfCtr" + m_Random "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Random" + m_WrappedHKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHKDF" + m_WrappedHMAC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHMAC" + m_Actions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Actions" + m_Base64 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64" + m_Base64Lemmas "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64Lemmas" + m_BoundedInts "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/BoundedInts" + m_DivInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternals" + m_DivInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternalsNonlinear" + m_DivMod "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivMod" + m_FileIO "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FileIO" + m_FloatCompare "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FloatCompare" + m_Functions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Functions" + m_GeneralInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GeneralInternals" + m_GetOpt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GetOpt" + m_HexStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/HexStrings" + m_Logarithm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Logarithm" + m__Math "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Math_" + m_ModInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternals" + m_ModInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternalsNonlinear" + m_Mul "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Mul" + m_MulInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternals" + m_MulInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternalsNonlinear" + m_Power "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Power" + m_Relations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Relations" + m_Seq "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq" + m_Seq_MergeSort "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq_MergeSort" + m_Sorting "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Sorting" + m_StandardLibrary "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary" + m_StandardLibraryInterop "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibraryInterop" + m_StandardLibrary_Sequence "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_Sequence" + m_StandardLibrary_String "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_String" + m_StandardLibrary_UInt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_UInt" + m_Streams "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Streams" + m__Time "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Time_" + m_UTF8 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UTF8" + m_UUID "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UUID" + m_UnicodeStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UnicodeStrings" + m__Unicode "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Unicode_" + m_Utf16EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf16EncodingForm" + m_Utf8EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf8EncodingForm" + m_Wrappers "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers" + m__System "github.com/dafny-lang/DafnyRuntimeGo/v4/System_" + _dafny "github.com/dafny-lang/DafnyRuntimeGo/v4/dafny" +) + +var _ = os.Args +var _ _dafny.Dummy__ +var _ m__System.Dummy__ +var _ m_Wrappers.Dummy__ +var _ m_BoundedInts.Dummy__ +var _ m_StandardLibrary_UInt.Dummy__ +var _ m_StandardLibrary_Sequence.Dummy__ +var _ m_StandardLibrary_String.Dummy__ +var _ m_StandardLibrary.Dummy__ +var _ m_AwsCryptographyPrimitivesTypes.Dummy__ +var _ m_Random.Dummy__ +var _ m_Digest.Dummy__ +var _ m_WrappedHMAC.Dummy__ +var _ m_HKDF.Dummy__ +var _ m_WrappedHKDF.Dummy__ +var _ m_KdfCtr.Dummy__ +var _ m_AwsCryptographyPrimitivesOperations.Dummy__ +var _ m_AtomicPrimitives.Dummy__ +var _ m_ComAmazonawsDynamodbTypes.Dummy__ +var _ m_ComAmazonawsKmsTypes.Dummy__ +var _ m_Relations.Dummy__ +var _ m_Seq_MergeSort.Dummy__ +var _ m__Math.Dummy__ +var _ m_Seq.Dummy__ +var _ m__Unicode.Dummy__ +var _ m_Functions.Dummy__ +var _ m_Utf8EncodingForm.Dummy__ +var _ m_Utf16EncodingForm.Dummy__ +var _ m_UnicodeStrings.Dummy__ +var _ m_FileIO.Dummy__ +var _ m_GeneralInternals.Dummy__ +var _ m_MulInternalsNonlinear.Dummy__ +var _ m_MulInternals.Dummy__ +var _ m_Mul.Dummy__ +var _ m_ModInternalsNonlinear.Dummy__ +var _ m_DivInternalsNonlinear.Dummy__ +var _ m_ModInternals.Dummy__ +var _ m_DivInternals.Dummy__ +var _ m_DivMod.Dummy__ +var _ m_Power.Dummy__ +var _ m_Logarithm.Dummy__ +var _ m_StandardLibraryInterop.Dummy__ +var _ m_Streams.Dummy__ +var _ m_Sorting.Dummy__ +var _ m_HexStrings.Dummy__ +var _ m_GetOpt.Dummy__ +var _ m_FloatCompare.Dummy__ +var _ m_Base64.Dummy__ +var _ m_Base64Lemmas.Dummy__ +var _ m_Actions.Dummy__ +var _ m_AwsCryptographyKeyStoreTypes.Dummy__ +var _ m_AwsCryptographyMaterialProvidersTypes.Dummy__ +var _ m_AwsArnParsing.Dummy__ +var _ m_AwsKmsMrkMatchForDecrypt.Dummy__ +var _ m_AwsKmsUtils.Dummy__ +var _ m_KeyStoreErrorMessages.Dummy__ +var _ m_KmsArn.Dummy__ +var _ m_Structure.Dummy__ +var _ m_KMSKeystoreOperations.Dummy__ +var _ m_DDBKeystoreOperations.Dummy__ +var _ m_CreateKeys.Dummy__ +var _ m_CreateKeyStoreTable.Dummy__ +var _ m_GetKeys.Dummy__ +var _ m_AwsCryptographyKeyStoreOperations.Dummy__ +var _ m_Com_Amazonaws_Kms.Dummy__ +var _ m_Com_Amazonaws_Dynamodb.Dummy__ +var _ m_KeyStore.Dummy__ +var _ m_AlgorithmSuites.Dummy__ +var _ m_Materials.Dummy__ +var _ m_Keyring.Dummy__ +var _ m_MultiKeyring.Dummy__ +var _ m_AwsKmsMrkAreUnique.Dummy__ +var _ m_Constants.Dummy__ +var _ m_MaterialWrapping.Dummy__ +var _ m_CanonicalEncryptionContext.Dummy__ +var _ m_IntermediateKeyWrapping.Dummy__ +var _ m_EdkWrapping.Dummy__ +var _ m_ErrorMessages.Dummy__ +var _ m_AwsKmsKeyring.Dummy__ +var _ m_StrictMultiKeyring.Dummy__ +var _ m_AwsKmsDiscoveryKeyring.Dummy__ +var _ m_DiscoveryMultiKeyring.Dummy__ +var _ m_AwsKmsMrkDiscoveryKeyring.Dummy__ +var _ m_MrkAwareDiscoveryMultiKeyring.Dummy__ +var _ m_AwsKmsMrkKeyring.Dummy__ +var _ m_MrkAwareStrictMultiKeyring.Dummy__ +var _ m_LocalCMC.Dummy__ +var _ m_SynchronizedLocalCMC.Dummy__ +var _ m_StormTracker.Dummy__ +var _ m_StormTrackingCMC.Dummy__ +var _ m_CacheConstants.Dummy__ + +type Dummy__ struct{} + +// Definition of class Default__ +type Default__ struct { + dummy byte +} + +func New_Default___() *Default__ { + _this := Default__{} + + return &_this +} + +type CompanionStruct_Default___ struct { +} + +var Companion_Default___ = CompanionStruct_Default___{} + +func (_this *Default__) Equals(other *Default__) bool { + return _this == other +} + +func (_this *Default__) EqualsGeneric(x interface{}) bool { + other, ok := x.(*Default__) + return ok && _this.Equals(other) +} + +func (*Default__) String() string { + return "AwsKmsHierarchicalKeyring.Default__" +} +func (_this *Default__) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = &Default__{} + +func (_static *CompanionStruct_Default___) CacheEntryWithinLimits(creationTime int64, now int64, ttlSeconds int64) bool { + return ((now) - (creationTime)) <= (ttlSeconds) +} +func (_static *CompanionStruct_Default___) DeriveEncryptionKeyFromBranchKey(branchKey _dafny.Sequence, salt _dafny.Sequence, purpose m_Wrappers.Option, cryptoPrimitives *m_AtomicPrimitives.AtomicPrimitivesClient) m_Wrappers.Result { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = output + var _0_maybeDerivedBranchKey m_Wrappers.Result + _ = _0_maybeDerivedBranchKey + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = (cryptoPrimitives).KdfCounterMode(m_AwsCryptographyPrimitivesTypes.Companion_KdfCtrInput_.Create_KdfCtrInput_(m_AwsCryptographyPrimitivesTypes.Companion_DigestAlgorithm_.Create_SHA__256_(), branchKey, Companion_Default___.DERIVED__BRANCH__KEY__EXPECTED__LENGTH(), purpose, m_Wrappers.Companion_Option_.Create_Some_(salt))) + _0_maybeDerivedBranchKey = _out0 + var _1_valueOrError0 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = _1_valueOrError0 + _1_valueOrError0 = (_0_maybeDerivedBranchKey).MapFailure(func(coer75 func(m_AwsCryptographyPrimitivesTypes.Error) m_AwsCryptographyMaterialProvidersTypes.Error) func(interface{}) interface{} { + return func(arg76 interface{}) interface{} { + return coer75(arg76.(m_AwsCryptographyPrimitivesTypes.Error)) + } + }(func(_2_e m_AwsCryptographyPrimitivesTypes.Error) m_AwsCryptographyMaterialProvidersTypes.Error { + return m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographyPrimitives_(_2_e) + })) + if (_1_valueOrError0).IsFailure() { + output = (_1_valueOrError0).PropagateFailure() + return output + } + var _3_derivedBranchKey _dafny.Sequence + _ = _3_derivedBranchKey + _3_derivedBranchKey = (_1_valueOrError0).Extract().(_dafny.Sequence) + output = m_Wrappers.Companion_Result_.Create_Success_(_3_derivedBranchKey) + return output +} +func (_static *CompanionStruct_Default___) WrappingAad(branchKeyId _dafny.Sequence, branchKeyVersion _dafny.Sequence, aad _dafny.Sequence) _dafny.Sequence { + return _dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(m_Constants.Companion_Default___.PROVIDER__ID__HIERARCHY(), branchKeyId), branchKeyVersion), aad) +} +func (_static *CompanionStruct_Default___) SerializeEDKCiphertext(encOutput m_AwsCryptographyPrimitivesTypes.AESEncryptOutput) _dafny.Sequence { + return _dafny.Companion_Sequence_.Concatenate((encOutput).Dtor_cipherText(), (encOutput).Dtor_authTag()) +} +func (_static *CompanionStruct_Default___) E(s _dafny.Sequence) m_AwsCryptographyMaterialProvidersTypes.Error { + return m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(s) +} +func (_static *CompanionStruct_Default___) AES__256__ENC__KEY__LENGTH() int32 { + return int32(32) +} +func (_static *CompanionStruct_Default___) AES__256__ENC__TAG__LENGTH() int32 { + return int32(16) +} +func (_static *CompanionStruct_Default___) AES__256__ENC__IV__LENGTH() int32 { + return int32(12) +} +func (_static *CompanionStruct_Default___) AES__256__ENC__ALG() m_AwsCryptographyPrimitivesTypes.AES__GCM { + return m_AwsCryptographyPrimitivesTypes.Companion_AES__GCM_.Create_AES__GCM_(Companion_Default___.AES__256__ENC__KEY__LENGTH(), Companion_Default___.AES__256__ENC__TAG__LENGTH(), Companion_Default___.AES__256__ENC__IV__LENGTH()) +} +func (_static *CompanionStruct_Default___) H__WRAP__SALT__LEN() int32 { + return int32(16) +} +func (_static *CompanionStruct_Default___) H__WRAP__NONCE__LEN() int32 { + return int32(12) +} +func (_static *CompanionStruct_Default___) EDK__CIPHERTEXT__BRANCH__KEY__VERSION__INDEX() int32 { + return (Companion_Default___.H__WRAP__SALT__LEN()) + (Companion_Default___.H__WRAP__NONCE__LEN()) +} +func (_static *CompanionStruct_Default___) EDK__CIPHERTEXT__VERSION__LENGTH() int32 { + return int32(16) +} +func (_static *CompanionStruct_Default___) EDK__CIPHERTEXT__VERSION__INDEX() int32 { + return (Companion_Default___.EDK__CIPHERTEXT__BRANCH__KEY__VERSION__INDEX()) + (Companion_Default___.EDK__CIPHERTEXT__VERSION__LENGTH()) +} +func (_static *CompanionStruct_Default___) EXPECTED__EDK__CIPHERTEXT__OVERHEAD() int32 { + return (Companion_Default___.EDK__CIPHERTEXT__VERSION__INDEX()) + (Companion_Default___.AES__256__ENC__TAG__LENGTH()) +} +func (_static *CompanionStruct_Default___) DERIVED__BRANCH__KEY__EXPECTED__LENGTH() int32 { + return int32(32) +} +func (_static *CompanionStruct_Default___) BRANCH__KEY__STORE__GSI() _dafny.Sequence { + return _dafny.SeqOfString("Active-Keys") +} +func (_static *CompanionStruct_Default___) BRANCH__KEY__FIELD() _dafny.Sequence { + return _dafny.SeqOfString("enc") +} +func (_static *CompanionStruct_Default___) VERSION__FIELD() _dafny.Sequence { + return _dafny.SeqOfString("version") +} +func (_static *CompanionStruct_Default___) BRANCH__KEY__IDENTIFIER__FIELD() _dafny.Sequence { + return _dafny.SeqOfString("branch-key-id") +} +func (_static *CompanionStruct_Default___) KEY__CONDITION__EXPRESSION() _dafny.Sequence { + return _dafny.SeqOfString("#status = :status and #branch_key_id = :branch_key_id") +} +func (_static *CompanionStruct_Default___) EXPRESSION__ATTRIBUTE__NAMES() _dafny.Map { + return _dafny.NewMapBuilder().ToMap().UpdateUnsafe(_dafny.SeqOfString("#status"), _dafny.SeqOfString("status")).UpdateUnsafe(_dafny.SeqOfString("#branch_key_id"), _dafny.SeqOfString("branch-key-id")) +} +func (_static *CompanionStruct_Default___) EXPRESSION__ATTRIBUTE__VALUE__STATUS__KEY() _dafny.Sequence { + return _dafny.SeqOfString(":status") +} +func (_static *CompanionStruct_Default___) EXPRESSION__ATTRIBUTE__VALUE__STATUS__VALUE() _dafny.Sequence { + return _dafny.SeqOfString("ACTIVE") +} +func (_static *CompanionStruct_Default___) EXPRESSION__ATTRIBUTE__VALUE__BRANCH__KEY() _dafny.Sequence { + return _dafny.SeqOfString(":branch_key_id") +} + +// End of class Default__ + +// Definition of class AwsKmsHierarchicalKeyring +type AwsKmsHierarchicalKeyring struct { + _keyStore m_AwsCryptographyKeyStoreTypes.IKeyStoreClient + _cryptoPrimitives *m_AtomicPrimitives.AtomicPrimitivesClient + _cache m_AwsCryptographyMaterialProvidersTypes.ICryptographicMaterialsCache + _branchKeyIdSupplier m_Wrappers.Option + _branchKeyId m_Wrappers.Option + _ttlSeconds int64 + _partitionIdBytes _dafny.Sequence + _logicalKeyStoreNameBytes _dafny.Sequence +} + +func New_AwsKmsHierarchicalKeyring_() *AwsKmsHierarchicalKeyring { + _this := AwsKmsHierarchicalKeyring{} + + _this._keyStore = (m_AwsCryptographyKeyStoreTypes.IKeyStoreClient)(nil) + _this._cryptoPrimitives = (*m_AtomicPrimitives.AtomicPrimitivesClient)(nil) + _this._cache = (m_AwsCryptographyMaterialProvidersTypes.ICryptographicMaterialsCache)(nil) + _this._branchKeyIdSupplier = m_Wrappers.Companion_Option_.Default() + _this._branchKeyId = m_Wrappers.Companion_Option_.Default() + _this._ttlSeconds = int64(0) + _this._partitionIdBytes = _dafny.EmptySeq + _this._logicalKeyStoreNameBytes = _dafny.EmptySeq + return &_this +} + +type CompanionStruct_AwsKmsHierarchicalKeyring_ struct { +} + +var Companion_AwsKmsHierarchicalKeyring_ = CompanionStruct_AwsKmsHierarchicalKeyring_{} + +func (_this *AwsKmsHierarchicalKeyring) Equals(other *AwsKmsHierarchicalKeyring) bool { + return _this == other +} + +func (_this *AwsKmsHierarchicalKeyring) EqualsGeneric(x interface{}) bool { + other, ok := x.(*AwsKmsHierarchicalKeyring) + return ok && _this.Equals(other) +} + +func (*AwsKmsHierarchicalKeyring) String() string { + return "AwsKmsHierarchicalKeyring.AwsKmsHierarchicalKeyring" +} + +func Type_AwsKmsHierarchicalKeyring_() _dafny.TypeDescriptor { + return type_AwsKmsHierarchicalKeyring_{} +} + +type type_AwsKmsHierarchicalKeyring_ struct { +} + +func (_this type_AwsKmsHierarchicalKeyring_) Default() interface{} { + return (*AwsKmsHierarchicalKeyring)(nil) +} + +func (_this type_AwsKmsHierarchicalKeyring_) String() string { + return "AwsKmsHierarchicalKeyring.AwsKmsHierarchicalKeyring" +} +func (_this *AwsKmsHierarchicalKeyring) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){m_Keyring.Companion_VerifiableInterface_.TraitID_, m_AwsCryptographyMaterialProvidersTypes.Companion_IKeyring_.TraitID_} +} + +var _ m_Keyring.VerifiableInterface = &AwsKmsHierarchicalKeyring{} +var _ m_AwsCryptographyMaterialProvidersTypes.IKeyring = &AwsKmsHierarchicalKeyring{} +var _ _dafny.TraitOffspring = &AwsKmsHierarchicalKeyring{} + +func (_this *AwsKmsHierarchicalKeyring) OnDecrypt(input m_AwsCryptographyMaterialProvidersTypes.OnDecryptInput) m_Wrappers.Result { + var _out6 m_Wrappers.Result + _ = _out6 + _out6 = m_AwsCryptographyMaterialProvidersTypes.Companion_IKeyring_.OnDecrypt(_this, input) + return _out6 +} +func (_this *AwsKmsHierarchicalKeyring) OnEncrypt(input m_AwsCryptographyMaterialProvidersTypes.OnEncryptInput) m_Wrappers.Result { + var _out6 m_Wrappers.Result + _ = _out6 + _out6 = m_AwsCryptographyMaterialProvidersTypes.Companion_IKeyring_.OnEncrypt(_this, input) + return _out6 +} +func (_this *AwsKmsHierarchicalKeyring) Ctor__(keyStore m_AwsCryptographyKeyStoreTypes.IKeyStoreClient, branchKeyId m_Wrappers.Option, branchKeyIdSupplier m_Wrappers.Option, ttlSeconds int64, cmc m_AwsCryptographyMaterialProvidersTypes.ICryptographicMaterialsCache, partitionIdBytes _dafny.Sequence, logicalKeyStoreNameBytes _dafny.Sequence, cryptoPrimitives *m_AtomicPrimitives.AtomicPrimitivesClient) { + { + (_this)._keyStore = keyStore + (_this)._branchKeyId = branchKeyId + (_this)._branchKeyIdSupplier = branchKeyIdSupplier + (_this)._ttlSeconds = ttlSeconds + (_this)._cryptoPrimitives = cryptoPrimitives + (_this)._cache = cmc + (_this)._partitionIdBytes = partitionIdBytes + (_this)._logicalKeyStoreNameBytes = logicalKeyStoreNameBytes + } +} +func (_this *AwsKmsHierarchicalKeyring) GetBranchKeyId(context _dafny.Map) m_Wrappers.Result { + { + var ret m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq.SetString()) + _ = ret + if ((_this).BranchKeyId()).Is_Some() { + ret = m_Wrappers.Companion_Result_.Create_Success_(((_this).BranchKeyId()).Dtor_value().(_dafny.Sequence)) + return ret + } else { + var _0_valueOrError0 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_AwsCryptographyMaterialProvidersTypes.Companion_GetBranchKeyIdOutput_.Default()) + _ = _0_valueOrError0 + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = (m_AwsCryptographyMaterialProvidersTypes.Companion_IBranchKeyIdSupplier_.CastTo_(((_this).BranchKeyIdSupplier()).Dtor_value())).GetBranchKeyId(m_AwsCryptographyMaterialProvidersTypes.Companion_GetBranchKeyIdInput_.Create_GetBranchKeyIdInput_(context)) + _0_valueOrError0 = _out0 + if (_0_valueOrError0).IsFailure() { + ret = (_0_valueOrError0).PropagateFailure() + return ret + } + var _1_GetBranchKeyIdOut m_AwsCryptographyMaterialProvidersTypes.GetBranchKeyIdOutput + _ = _1_GetBranchKeyIdOut + _1_GetBranchKeyIdOut = (_0_valueOrError0).Extract().(m_AwsCryptographyMaterialProvidersTypes.GetBranchKeyIdOutput) + ret = m_Wrappers.Companion_Result_.Create_Success_((_1_GetBranchKeyIdOut).Dtor_branchKeyId()) + return ret + } + return ret + } +} +func (_this *AwsKmsHierarchicalKeyring) OnEncrypt_k(input m_AwsCryptographyMaterialProvidersTypes.OnEncryptInput) m_Wrappers.Result { + { + var res m_Wrappers.Result = m_Wrappers.Result{} + _ = res + var _0_materials m_AwsCryptographyMaterialProvidersTypes.EncryptionMaterials + _ = _0_materials + _0_materials = (input).Dtor_materials() + var _1_suite m_AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo + _ = _1_suite + _1_suite = (_0_materials).Dtor_algorithmSuite() + var _2_valueOrError0 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq.SetString()) + _ = _2_valueOrError0 + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = (_this).GetBranchKeyId((_0_materials).Dtor_encryptionContext()) + _2_valueOrError0 = _out0 + if (_2_valueOrError0).IsFailure() { + res = (_2_valueOrError0).PropagateFailure() + return res + } + var _3_branchKeyIdForEncrypt _dafny.Sequence + _ = _3_branchKeyIdForEncrypt + _3_branchKeyIdForEncrypt = (_2_valueOrError0).Extract().(_dafny.Sequence) + var _4_valueOrError1 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_UTF8.Companion_ValidUTF8Bytes_.Witness()) + _ = _4_valueOrError1 + _4_valueOrError1 = (m_UTF8.Encode(_3_branchKeyIdForEncrypt)).MapFailure(func(coer76 func(_dafny.Sequence) m_AwsCryptographyMaterialProvidersTypes.Error) func(interface{}) interface{} { + return func(arg77 interface{}) interface{} { + return coer76(arg77.(_dafny.Sequence)) + } + }(m_AwsKmsUtils.Companion_Default___.WrapStringToError)) + if (_4_valueOrError1).IsFailure() { + res = (_4_valueOrError1).PropagateFailure() + return res + } + var _5_branchKeyIdUtf8 _dafny.Sequence + _ = _5_branchKeyIdUtf8 + _5_branchKeyIdUtf8 = (_4_valueOrError1).Extract().(_dafny.Sequence) + var _6_valueOrError2 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = _6_valueOrError2 + var _out1 m_Wrappers.Result + _ = _out1 + _out1 = (_this).GetActiveCacheId(_3_branchKeyIdForEncrypt, _5_branchKeyIdUtf8, (_this).CryptoPrimitives()) + _6_valueOrError2 = _out1 + if (_6_valueOrError2).IsFailure() { + res = (_6_valueOrError2).PropagateFailure() + return res + } + var _7_cacheId _dafny.Sequence + _ = _7_cacheId + _7_cacheId = (_6_valueOrError2).Extract().(_dafny.Sequence) + var _8_valueOrError3 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_AwsCryptographyKeyStoreTypes.Companion_BranchKeyMaterials_.Default()) + _ = _8_valueOrError3 + var _out2 m_Wrappers.Result + _ = _out2 + _out2 = (_this).GetActiveHierarchicalMaterials(_3_branchKeyIdForEncrypt, _7_cacheId, (_this).KeyStore()) + _8_valueOrError3 = _out2 + if (_8_valueOrError3).IsFailure() { + res = (_8_valueOrError3).PropagateFailure() + return res + } + var _9_hierarchicalMaterials m_AwsCryptographyKeyStoreTypes.BranchKeyMaterials + _ = _9_hierarchicalMaterials + _9_hierarchicalMaterials = (_8_valueOrError3).Extract().(m_AwsCryptographyKeyStoreTypes.BranchKeyMaterials) + var _10_branchKey _dafny.Sequence + _ = _10_branchKey + _10_branchKey = (_9_hierarchicalMaterials).Dtor_branchKey() + var _11_branchKeyVersion _dafny.Sequence + _ = _11_branchKeyVersion + _11_branchKeyVersion = (_9_hierarchicalMaterials).Dtor_branchKeyVersion() + var _12_valueOrError4 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq.SetString()) + _ = _12_valueOrError4 + _12_valueOrError4 = (m_UTF8.Decode(_11_branchKeyVersion)).MapFailure(func(coer77 func(_dafny.Sequence) m_AwsCryptographyMaterialProvidersTypes.Error) func(interface{}) interface{} { + return func(arg78 interface{}) interface{} { + return coer77(arg78.(_dafny.Sequence)) + } + }(m_AwsKmsUtils.Companion_Default___.WrapStringToError)) + if (_12_valueOrError4).IsFailure() { + res = (_12_valueOrError4).PropagateFailure() + return res + } + var _13_branchKeyVersionAsString _dafny.Sequence + _ = _13_branchKeyVersionAsString + _13_branchKeyVersionAsString = (_12_valueOrError4).Extract().(_dafny.Sequence) + var _14_valueOrError5 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = _14_valueOrError5 + _14_valueOrError5 = (m_UUID.ToByteArray(_13_branchKeyVersionAsString)).MapFailure(func(coer78 func(_dafny.Sequence) m_AwsCryptographyMaterialProvidersTypes.Error) func(interface{}) interface{} { + return func(arg79 interface{}) interface{} { + return coer78(arg79.(_dafny.Sequence)) + } + }(m_AwsKmsUtils.Companion_Default___.WrapStringToError)) + if (_14_valueOrError5).IsFailure() { + res = (_14_valueOrError5).PropagateFailure() + return res + } + var _15_branchKeyVersionAsBytes _dafny.Sequence + _ = _15_branchKeyVersionAsBytes + _15_branchKeyVersionAsBytes = (_14_valueOrError5).Extract().(_dafny.Sequence) + var _16_kmsHierarchyGenerateAndWrap *KmsHierarchyGenerateAndWrapKeyMaterial + _ = _16_kmsHierarchyGenerateAndWrap + var _nw0 *KmsHierarchyGenerateAndWrapKeyMaterial = New_KmsHierarchyGenerateAndWrapKeyMaterial_() + _ = _nw0 + _nw0.Ctor__((_9_hierarchicalMaterials).Dtor_branchKey(), _5_branchKeyIdUtf8, _15_branchKeyVersionAsBytes, (_this).CryptoPrimitives()) + _16_kmsHierarchyGenerateAndWrap = _nw0 + var _17_kmsHierarchyWrap *KmsHierarchyWrapKeyMaterial + _ = _17_kmsHierarchyWrap + var _nw1 *KmsHierarchyWrapKeyMaterial = New_KmsHierarchyWrapKeyMaterial_() + _ = _nw1 + _nw1.Ctor__((_9_hierarchicalMaterials).Dtor_branchKey(), _5_branchKeyIdUtf8, _15_branchKeyVersionAsBytes, (_this).CryptoPrimitives()) + _17_kmsHierarchyWrap = _nw1 + var _18_valueOrError6 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_EdkWrapping.Companion_WrapEdkMaterialOutput_.Default(Companion_HierarchyWrapInfo_.Default())) + _ = _18_valueOrError6 + var _out3 m_Wrappers.Result + _ = _out3 + _out3 = m_EdkWrapping.Companion_Default___.WrapEdkMaterial(_0_materials, _17_kmsHierarchyWrap, _16_kmsHierarchyGenerateAndWrap) + _18_valueOrError6 = _out3 + if (_18_valueOrError6).IsFailure() { + res = (_18_valueOrError6).PropagateFailure() + return res + } + var _19_wrapOutput m_EdkWrapping.WrapEdkMaterialOutput + _ = _19_wrapOutput + _19_wrapOutput = (_18_valueOrError6).Extract().(m_EdkWrapping.WrapEdkMaterialOutput) + var _20_symmetricSigningKeyList m_Wrappers.Option + _ = _20_symmetricSigningKeyList + if ((_19_wrapOutput).Dtor_symmetricSigningKey()).Is_Some() { + _20_symmetricSigningKeyList = m_Wrappers.Companion_Option_.Create_Some_(_dafny.SeqOf(((_19_wrapOutput).Dtor_symmetricSigningKey()).Dtor_value().(_dafny.Sequence))) + } else { + _20_symmetricSigningKeyList = m_Wrappers.Companion_Option_.Create_None_() + } + var _21_edk m_AwsCryptographyMaterialProvidersTypes.EncryptedDataKey + _ = _21_edk + _21_edk = m_AwsCryptographyMaterialProvidersTypes.Companion_EncryptedDataKey_.Create_EncryptedDataKey_(m_Constants.Companion_Default___.PROVIDER__ID__HIERARCHY(), _5_branchKeyIdUtf8, (_19_wrapOutput).Dtor_wrappedMaterial()) + if (_19_wrapOutput).Is_GenerateAndWrapEdkMaterialOutput() { + var _22_valueOrError7 m_Wrappers.Result = m_Wrappers.Result{} + _ = _22_valueOrError7 + _22_valueOrError7 = m_Materials.Companion_Default___.EncryptionMaterialAddDataKey(_0_materials, (_19_wrapOutput).Dtor_plaintextDataKey(), _dafny.SeqOf(_21_edk), _20_symmetricSigningKeyList) + if (_22_valueOrError7).IsFailure() { + res = (_22_valueOrError7).PropagateFailure() + return res + } + var _23_result m_AwsCryptographyMaterialProvidersTypes.EncryptionMaterials + _ = _23_result + _23_result = (_22_valueOrError7).Extract().(m_AwsCryptographyMaterialProvidersTypes.EncryptionMaterials) + res = m_Wrappers.Companion_Result_.Create_Success_(m_AwsCryptographyMaterialProvidersTypes.Companion_OnEncryptOutput_.Create_OnEncryptOutput_(_23_result)) + return res + } else if (_19_wrapOutput).Is_WrapOnlyEdkMaterialOutput() { + var _24_valueOrError8 m_Wrappers.Result = m_Wrappers.Result{} + _ = _24_valueOrError8 + _24_valueOrError8 = m_Materials.Companion_Default___.EncryptionMaterialAddEncryptedDataKeys(_0_materials, _dafny.SeqOf(_21_edk), _20_symmetricSigningKeyList) + if (_24_valueOrError8).IsFailure() { + res = (_24_valueOrError8).PropagateFailure() + return res + } + var _25_result m_AwsCryptographyMaterialProvidersTypes.EncryptionMaterials + _ = _25_result + _25_result = (_24_valueOrError8).Extract().(m_AwsCryptographyMaterialProvidersTypes.EncryptionMaterials) + res = m_Wrappers.Companion_Result_.Create_Success_(m_AwsCryptographyMaterialProvidersTypes.Companion_OnEncryptOutput_.Create_OnEncryptOutput_(_25_result)) + return res + } + return res + } +} +func (_this *AwsKmsHierarchicalKeyring) OnDecrypt_k(input m_AwsCryptographyMaterialProvidersTypes.OnDecryptInput) m_Wrappers.Result { + { + var res m_Wrappers.Result = m_Wrappers.Result{} + _ = res + var _0_materials m_AwsCryptographyMaterialProvidersTypes.DecryptionMaterials + _ = _0_materials + _0_materials = (input).Dtor_materials() + var _1_suite m_AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo + _ = _1_suite + _1_suite = ((input).Dtor_materials()).Dtor_algorithmSuite() + var _2_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _2_valueOrError0 + _2_valueOrError0 = m_Wrappers.Companion_Default___.Need(m_Materials.Companion_Default___.DecryptionMaterialsWithoutPlaintextDataKey(_0_materials), Companion_Default___.E(_dafny.SeqOfString("Keyring received decryption materials that already contain a plaintext data key."))) + if (_2_valueOrError0).IsFailure() { + res = (_2_valueOrError0).PropagateFailure() + return res + } + var _3_valueOrError1 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq.SetString()) + _ = _3_valueOrError1 + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = (_this).GetBranchKeyId((_0_materials).Dtor_encryptionContext()) + _3_valueOrError1 = _out0 + if (_3_valueOrError1).IsFailure() { + res = (_3_valueOrError1).PropagateFailure() + return res + } + var _4_branchKeyIdForDecrypt _dafny.Sequence + _ = _4_branchKeyIdForDecrypt + _4_branchKeyIdForDecrypt = (_3_valueOrError1).Extract().(_dafny.Sequence) + var _5_filter *OnDecryptHierarchyEncryptedDataKeyFilter + _ = _5_filter + var _nw0 *OnDecryptHierarchyEncryptedDataKeyFilter = New_OnDecryptHierarchyEncryptedDataKeyFilter_() + _ = _nw0 + _nw0.Ctor__(_4_branchKeyIdForDecrypt) + _5_filter = _nw0 + var _6_valueOrError2 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = _6_valueOrError2 + var _out1 m_Wrappers.Result + _ = _out1 + _out1 = m_Actions.Companion_Default___.FilterWithResult(_5_filter, (input).Dtor_encryptedDataKeys()) + _6_valueOrError2 = _out1 + if (_6_valueOrError2).IsFailure() { + res = (_6_valueOrError2).PropagateFailure() + return res + } + var _7_edksToAttempt _dafny.Sequence + _ = _7_edksToAttempt + _7_edksToAttempt = (_6_valueOrError2).Extract().(_dafny.Sequence) + if (_dafny.IntOfUint32((_7_edksToAttempt).Cardinality())).Sign() == 0 { + var _8_valueOrError3 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq.SetString()) + _ = _8_valueOrError3 + _8_valueOrError3 = m_ErrorMessages.Companion_Default___.IncorrectDataKeys((input).Dtor_encryptedDataKeys(), ((input).Dtor_materials()).Dtor_algorithmSuite(), _dafny.SeqOfString("")) + if (_8_valueOrError3).IsFailure() { + res = (_8_valueOrError3).PropagateFailure() + return res + } + var _9_errorMessage _dafny.Sequence + _ = _9_errorMessage + _9_errorMessage = (_8_valueOrError3).Extract().(_dafny.Sequence) + res = m_Wrappers.Companion_Result_.Create_Failure_(m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_9_errorMessage)) + return res + } + var _10_decryptClosure m_Actions.ActionWithResult + _ = _10_decryptClosure + var _nw1 *DecryptSingleEncryptedDataKey = New_DecryptSingleEncryptedDataKey_() + _ = _nw1 + _nw1.Ctor__(_0_materials, (_this).KeyStore(), (_this).CryptoPrimitives(), _4_branchKeyIdForDecrypt, (_this).TtlSeconds(), (_this).Cache(), (_this).PartitionIdBytes(), (_this).LogicalKeyStoreNameBytes()) + _10_decryptClosure = _nw1 + var _11_outcome m_Wrappers.Result + _ = _11_outcome + var _out2 m_Wrappers.Result + _ = _out2 + _out2 = m_Actions.Companion_Default___.ReduceToSuccess(_10_decryptClosure, _7_edksToAttempt) + _11_outcome = _out2 + var _12_valueOrError4 m_Wrappers.Result = m_Wrappers.Result{} + _ = _12_valueOrError4 + _12_valueOrError4 = (_11_outcome).MapFailure(func(coer79 func(_dafny.Sequence) m_AwsCryptographyMaterialProvidersTypes.Error) func(interface{}) interface{} { + return func(arg80 interface{}) interface{} { + return coer79(arg80.(_dafny.Sequence)) + } + }(func(_13_errors _dafny.Sequence) m_AwsCryptographyMaterialProvidersTypes.Error { + return m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_CollectionOfErrors_(_13_errors, _dafny.SeqOfString("No Configured KMS Key was able to decrypt the Data Key. The list of encountered Exceptions is available via `list`.")) + })) + if (_12_valueOrError4).IsFailure() { + res = (_12_valueOrError4).PropagateFailure() + return res + } + var _14_SealedDecryptionMaterials m_AwsCryptographyMaterialProvidersTypes.DecryptionMaterials + _ = _14_SealedDecryptionMaterials + _14_SealedDecryptionMaterials = (_12_valueOrError4).Extract().(m_AwsCryptographyMaterialProvidersTypes.DecryptionMaterials) + res = m_Wrappers.Companion_Result_.Create_Success_(m_AwsCryptographyMaterialProvidersTypes.Companion_OnDecryptOutput_.Create_OnDecryptOutput_(_14_SealedDecryptionMaterials)) + return res + return res + } +} +func (_this *AwsKmsHierarchicalKeyring) GetActiveCacheId(branchKeyId _dafny.Sequence, branchKeyIdUtf8 _dafny.Sequence, cryptoPrimitives *m_AtomicPrimitives.AtomicPrimitivesClient) m_Wrappers.Result { + { + var cacheId m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = cacheId + var _0_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _0_valueOrError0 + _0_valueOrError0 = m_Wrappers.Companion_Default___.Need((((m_UTF8.Decode(branchKeyIdUtf8)).MapFailure(func(coer80 func(_dafny.Sequence) m_AwsCryptographyMaterialProvidersTypes.Error) func(interface{}) interface{} { + return func(arg81 interface{}) interface{} { + return coer80(arg81.(_dafny.Sequence)) + } + }(m_AwsKmsUtils.Companion_Default___.WrapStringToError))).Is_Success()) && (func(_pat_let6_0 _dafny.Sequence) bool { + return func(_1_branchKeyId _dafny.Sequence) bool { + return (true) && (((_dafny.IntOfUint32((_1_branchKeyId).Cardinality())).Sign() != -1) && ((_dafny.IntOfUint32((_1_branchKeyId).Cardinality())).Cmp(m_StandardLibrary_UInt.Companion_Default___.UINT32__LIMIT()) < 0)) + }(_pat_let6_0) + }(((m_UTF8.Decode(branchKeyIdUtf8)).MapFailure(func(coer81 func(_dafny.Sequence) m_AwsCryptographyMaterialProvidersTypes.Error) func(interface{}) interface{} { + return func(arg82 interface{}) interface{} { + return coer81(arg82.(_dafny.Sequence)) + } + }(m_AwsKmsUtils.Companion_Default___.WrapStringToError))).Dtor_value().(_dafny.Sequence))), Companion_Default___.E(_dafny.SeqOfString("Invalid Branch Key ID Length"))) + if (_0_valueOrError0).IsFailure() { + cacheId = (_0_valueOrError0).PropagateFailure() + return cacheId + } + var _2_hashAlgorithm m_AwsCryptographyPrimitivesTypes.DigestAlgorithm + _ = _2_hashAlgorithm + _2_hashAlgorithm = m_AwsCryptographyPrimitivesTypes.Companion_DigestAlgorithm_.Create_SHA__384_() + var _3_resourceId _dafny.Sequence + _ = _3_resourceId + _3_resourceId = m_CacheConstants.Companion_Default___.RESOURCE__ID__HIERARCHICAL__KEYRING() + var _4_scopeId _dafny.Sequence + _ = _4_scopeId + _4_scopeId = m_CacheConstants.Companion_Default___.SCOPE__ID__ENCRYPT() + var _5_suffix _dafny.Sequence + _ = _5_suffix + _5_suffix = _dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate((_this).LogicalKeyStoreNameBytes(), m_CacheConstants.Companion_Default___.NULL__BYTE()), branchKeyIdUtf8) + var _6_identifier _dafny.Sequence + _ = _6_identifier + _6_identifier = _dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_3_resourceId, m_CacheConstants.Companion_Default___.NULL__BYTE()), _4_scopeId), m_CacheConstants.Companion_Default___.NULL__BYTE()), (_this).PartitionIdBytes()), m_CacheConstants.Companion_Default___.NULL__BYTE()), _5_suffix) + var _7_maybeCacheIdDigest m_Wrappers.Result + _ = _7_maybeCacheIdDigest + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = (cryptoPrimitives).Digest(m_AwsCryptographyPrimitivesTypes.Companion_DigestInput_.Create_DigestInput_(_2_hashAlgorithm, _6_identifier)) + _7_maybeCacheIdDigest = _out0 + var _8_valueOrError1 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = _8_valueOrError1 + _8_valueOrError1 = (_7_maybeCacheIdDigest).MapFailure(func(coer82 func(m_AwsCryptographyPrimitivesTypes.Error) m_AwsCryptographyMaterialProvidersTypes.Error) func(interface{}) interface{} { + return func(arg83 interface{}) interface{} { + return coer82(arg83.(m_AwsCryptographyPrimitivesTypes.Error)) + } + }(func(_9_e m_AwsCryptographyPrimitivesTypes.Error) m_AwsCryptographyMaterialProvidersTypes.Error { + return m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographyPrimitives_(_9_e) + })) + if (_8_valueOrError1).IsFailure() { + cacheId = (_8_valueOrError1).PropagateFailure() + return cacheId + } + var _10_cacheDigest _dafny.Sequence + _ = _10_cacheDigest + _10_cacheDigest = (_8_valueOrError1).Extract().(_dafny.Sequence) + var _11_valueOrError2 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _11_valueOrError2 + _11_valueOrError2 = m_Wrappers.Companion_Default___.Need((_dafny.IntOfUint32((_10_cacheDigest).Cardinality())).Cmp(m_Digest.Companion_Default___.Length(_2_hashAlgorithm)) == 0, m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.SeqOfString("Digest generated a message not equal to the expected length."))) + if (_11_valueOrError2).IsFailure() { + cacheId = (_11_valueOrError2).PropagateFailure() + return cacheId + } + cacheId = m_Wrappers.Companion_Result_.Create_Success_(_10_cacheDigest) + return cacheId + return cacheId + } +} +func (_this *AwsKmsHierarchicalKeyring) GetActiveHierarchicalMaterials(branchKeyId _dafny.Sequence, cacheId _dafny.Sequence, keyStore m_AwsCryptographyKeyStoreTypes.IKeyStoreClient) m_Wrappers.Result { + { + var material m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_AwsCryptographyKeyStoreTypes.Companion_BranchKeyMaterials_.Default()) + _ = material + var _0_getCacheInput m_AwsCryptographyMaterialProvidersTypes.GetCacheEntryInput + _ = _0_getCacheInput + _0_getCacheInput = m_AwsCryptographyMaterialProvidersTypes.Companion_GetCacheEntryInput_.Create_GetCacheEntryInput_(cacheId, m_Wrappers.Companion_Option_.Create_None_()) + var _1_getCacheOutput m_Wrappers.Result + _ = _1_getCacheOutput + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = ((_this).Cache()).GetCacheEntry(_0_getCacheInput) + _1_getCacheOutput = _out0 + if ((_1_getCacheOutput).Is_Failure()) && (!(((_1_getCacheOutput).Dtor_error().(m_AwsCryptographyMaterialProvidersTypes.Error)).Is_EntryDoesNotExist())) { + material = m_Wrappers.Companion_Result_.Create_Failure_((_1_getCacheOutput).Dtor_error().(m_AwsCryptographyMaterialProvidersTypes.Error)) + return material + } + var _2_now int64 + _ = _2_now + var _out1 int64 + _ = _out1 + _out1 = m__Time.CurrentRelativeTime() + _2_now = _out1 + if ((_1_getCacheOutput).Is_Failure()) || (!(Companion_Default___.CacheEntryWithinLimits(((_1_getCacheOutput).Dtor_value().(m_AwsCryptographyMaterialProvidersTypes.GetCacheEntryOutput)).Dtor_creationTime(), _2_now, (_this).TtlSeconds()))) { + var _3_maybeGetActiveBranchKeyOutput m_Wrappers.Result + _ = _3_maybeGetActiveBranchKeyOutput + var _out2 m_Wrappers.Result + _ = _out2 + _out2 = (keyStore).GetActiveBranchKey(m_AwsCryptographyKeyStoreTypes.Companion_GetActiveBranchKeyInput_.Create_GetActiveBranchKeyInput_(branchKeyId)) + _3_maybeGetActiveBranchKeyOutput = _out2 + var _4_valueOrError0 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_AwsCryptographyKeyStoreTypes.Companion_GetActiveBranchKeyOutput_.Default()) + _ = _4_valueOrError0 + _4_valueOrError0 = (_3_maybeGetActiveBranchKeyOutput).MapFailure(func(coer83 func(m_AwsCryptographyKeyStoreTypes.Error) m_AwsCryptographyMaterialProvidersTypes.Error) func(interface{}) interface{} { + return func(arg84 interface{}) interface{} { + return coer83(arg84.(m_AwsCryptographyKeyStoreTypes.Error)) + } + }(func(_5_e m_AwsCryptographyKeyStoreTypes.Error) m_AwsCryptographyMaterialProvidersTypes.Error { + return m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographyKeyStore_(_5_e) + })) + if (_4_valueOrError0).IsFailure() { + material = (_4_valueOrError0).PropagateFailure() + return material + } + var _6_getActiveBranchKeyOutput m_AwsCryptographyKeyStoreTypes.GetActiveBranchKeyOutput + _ = _6_getActiveBranchKeyOutput + _6_getActiveBranchKeyOutput = (_4_valueOrError0).Extract().(m_AwsCryptographyKeyStoreTypes.GetActiveBranchKeyOutput) + var _7_branchKeyMaterials m_AwsCryptographyKeyStoreTypes.BranchKeyMaterials + _ = _7_branchKeyMaterials + _7_branchKeyMaterials = (_6_getActiveBranchKeyOutput).Dtor_branchKeyMaterials() + var _8_now int64 + _ = _8_now + var _out3 int64 + _ = _out3 + _out3 = m__Time.CurrentRelativeTime() + _8_now = _out3 + var _9_valueOrError1 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _9_valueOrError1 + _9_valueOrError1 = m_Wrappers.Companion_Default___.Need(((_dafny.IntOfInt64(_8_now)).Plus(_dafny.IntOfInt64((_this).TtlSeconds()))).Cmp(m_StandardLibrary_UInt.Companion_Default___.INT64__MAX__LIMIT()) < 0, m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.SeqOfString("INT64 Overflow when putting cache entry."))) + if (_9_valueOrError1).IsFailure() { + material = (_9_valueOrError1).PropagateFailure() + return material + } + var _10_putCacheEntryInput m_AwsCryptographyMaterialProvidersTypes.PutCacheEntryInput + _ = _10_putCacheEntryInput + _10_putCacheEntryInput = m_AwsCryptographyMaterialProvidersTypes.Companion_PutCacheEntryInput_.Create_PutCacheEntryInput_(cacheId, m_AwsCryptographyMaterialProvidersTypes.Companion_Materials_.Create_BranchKey_(_7_branchKeyMaterials), _8_now, ((_this).TtlSeconds())+(_8_now), m_Wrappers.Companion_Option_.Create_None_(), m_Wrappers.Companion_Option_.Create_None_()) + var _11_putResult m_Wrappers.Result + _ = _11_putResult + var _out4 m_Wrappers.Result + _ = _out4 + _out4 = ((_this).Cache()).PutCacheEntry(_10_putCacheEntryInput) + _11_putResult = _out4 + if ((_11_putResult).Is_Failure()) && (!(((_11_putResult).Dtor_error().(m_AwsCryptographyMaterialProvidersTypes.Error)).Is_EntryAlreadyExists())) { + material = m_Wrappers.Companion_Result_.Create_Failure_((_11_putResult).Dtor_error().(m_AwsCryptographyMaterialProvidersTypes.Error)) + return material + } + material = m_Wrappers.Companion_Result_.Create_Success_(_7_branchKeyMaterials) + return material + } else { + var _12_valueOrError2 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _12_valueOrError2 + _12_valueOrError2 = m_Wrappers.Companion_Default___.Need(((((_1_getCacheOutput).Dtor_value().(m_AwsCryptographyMaterialProvidersTypes.GetCacheEntryOutput)).Dtor_materials()).Is_BranchKey()) && ((((_1_getCacheOutput).Dtor_value().(m_AwsCryptographyMaterialProvidersTypes.GetCacheEntryOutput)).Dtor_materials()).Equals(m_AwsCryptographyMaterialProvidersTypes.Companion_Materials_.Create_BranchKey_((((_1_getCacheOutput).Dtor_value().(m_AwsCryptographyMaterialProvidersTypes.GetCacheEntryOutput)).Dtor_materials()).Dtor_BranchKey()))), Companion_Default___.E(_dafny.SeqOfString("Invalid Material Type."))) + if (_12_valueOrError2).IsFailure() { + material = (_12_valueOrError2).PropagateFailure() + return material + } + material = m_Wrappers.Companion_Result_.Create_Success_((((_1_getCacheOutput).Dtor_value().(m_AwsCryptographyMaterialProvidersTypes.GetCacheEntryOutput)).Dtor_materials()).Dtor_BranchKey()) + return material + } + return material + } +} +func (_this *AwsKmsHierarchicalKeyring) KeyStore() m_AwsCryptographyKeyStoreTypes.IKeyStoreClient { + { + return _this._keyStore + } +} +func (_this *AwsKmsHierarchicalKeyring) CryptoPrimitives() *m_AtomicPrimitives.AtomicPrimitivesClient { + { + return _this._cryptoPrimitives + } +} +func (_this *AwsKmsHierarchicalKeyring) Cache() m_AwsCryptographyMaterialProvidersTypes.ICryptographicMaterialsCache { + { + return _this._cache + } +} +func (_this *AwsKmsHierarchicalKeyring) BranchKeyIdSupplier() m_Wrappers.Option { + { + return _this._branchKeyIdSupplier + } +} +func (_this *AwsKmsHierarchicalKeyring) BranchKeyId() m_Wrappers.Option { + { + return _this._branchKeyId + } +} +func (_this *AwsKmsHierarchicalKeyring) TtlSeconds() int64 { + { + return _this._ttlSeconds + } +} +func (_this *AwsKmsHierarchicalKeyring) PartitionIdBytes() _dafny.Sequence { + { + return _this._partitionIdBytes + } +} +func (_this *AwsKmsHierarchicalKeyring) LogicalKeyStoreNameBytes() _dafny.Sequence { + { + return _this._logicalKeyStoreNameBytes + } +} + +// End of class AwsKmsHierarchicalKeyring + +// Definition of class OnDecryptHierarchyEncryptedDataKeyFilter +type OnDecryptHierarchyEncryptedDataKeyFilter struct { + _branchKeyId _dafny.Sequence +} + +func New_OnDecryptHierarchyEncryptedDataKeyFilter_() *OnDecryptHierarchyEncryptedDataKeyFilter { + _this := OnDecryptHierarchyEncryptedDataKeyFilter{} + + _this._branchKeyId = _dafny.EmptySeq.SetString() + return &_this +} + +type CompanionStruct_OnDecryptHierarchyEncryptedDataKeyFilter_ struct { +} + +var Companion_OnDecryptHierarchyEncryptedDataKeyFilter_ = CompanionStruct_OnDecryptHierarchyEncryptedDataKeyFilter_{} + +func (_this *OnDecryptHierarchyEncryptedDataKeyFilter) Equals(other *OnDecryptHierarchyEncryptedDataKeyFilter) bool { + return _this == other +} + +func (_this *OnDecryptHierarchyEncryptedDataKeyFilter) EqualsGeneric(x interface{}) bool { + other, ok := x.(*OnDecryptHierarchyEncryptedDataKeyFilter) + return ok && _this.Equals(other) +} + +func (*OnDecryptHierarchyEncryptedDataKeyFilter) String() string { + return "AwsKmsHierarchicalKeyring.OnDecryptHierarchyEncryptedDataKeyFilter" +} + +func Type_OnDecryptHierarchyEncryptedDataKeyFilter_() _dafny.TypeDescriptor { + return type_OnDecryptHierarchyEncryptedDataKeyFilter_{} +} + +type type_OnDecryptHierarchyEncryptedDataKeyFilter_ struct { +} + +func (_this type_OnDecryptHierarchyEncryptedDataKeyFilter_) Default() interface{} { + return (*OnDecryptHierarchyEncryptedDataKeyFilter)(nil) +} + +func (_this type_OnDecryptHierarchyEncryptedDataKeyFilter_) String() string { + return "AwsKmsHierarchicalKeyring.OnDecryptHierarchyEncryptedDataKeyFilter" +} +func (_this *OnDecryptHierarchyEncryptedDataKeyFilter) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){m_Actions.Companion_DeterministicActionWithResult_.TraitID_, m_Actions.Companion_DeterministicAction_.TraitID_} +} + +var _ m_Actions.DeterministicActionWithResult = &OnDecryptHierarchyEncryptedDataKeyFilter{} +var _ m_Actions.DeterministicAction = &OnDecryptHierarchyEncryptedDataKeyFilter{} +var _ _dafny.TraitOffspring = &OnDecryptHierarchyEncryptedDataKeyFilter{} + +func (_this *OnDecryptHierarchyEncryptedDataKeyFilter) Ctor__(branchKeyId _dafny.Sequence) { + { + (_this)._branchKeyId = branchKeyId + } +} +func (_this *OnDecryptHierarchyEncryptedDataKeyFilter) Invoke(edk interface{}) interface{} { + { + var edk m_AwsCryptographyMaterialProvidersTypes.EncryptedDataKey = edk.(m_AwsCryptographyMaterialProvidersTypes.EncryptedDataKey) + _ = edk + var res m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(false) + _ = res + var _0_providerInfo _dafny.Sequence + _ = _0_providerInfo + _0_providerInfo = (edk).Dtor_keyProviderInfo() + var _1_providerId _dafny.Sequence + _ = _1_providerId + _1_providerId = (edk).Dtor_keyProviderId() + if !_dafny.Companion_Sequence_.Equal(_1_providerId, m_Constants.Companion_Default___.PROVIDER__ID__HIERARCHY()) { + res = m_Wrappers.Companion_Result_.Create_Success_(false) + return res + } + if !(m_UTF8.Companion_Default___.ValidUTF8Seq(_0_providerInfo)) { + res = m_Wrappers.Companion_Result_.Create_Failure_(Companion_Default___.E(_dafny.SeqOfString("Invalid encoding, provider info is not UTF8."))) + return res + } + var _2_valueOrError0 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq.SetString()) + _ = _2_valueOrError0 + _2_valueOrError0 = (m_UTF8.Decode(_0_providerInfo)).MapFailure(func(coer84 func(_dafny.Sequence) m_AwsCryptographyMaterialProvidersTypes.Error) func(interface{}) interface{} { + return func(arg85 interface{}) interface{} { + return coer84(arg85.(_dafny.Sequence)) + } + }(m_AwsKmsUtils.Companion_Default___.WrapStringToError)) + if (_2_valueOrError0).IsFailure() { + res = (_2_valueOrError0).PropagateFailure() + return res + } + var _3_branchKeyId _dafny.Sequence + _ = _3_branchKeyId + _3_branchKeyId = (_2_valueOrError0).Extract().(_dafny.Sequence) + res = m_Wrappers.Companion_Result_.Create_Success_(_dafny.Companion_Sequence_.Equal((_this).BranchKeyId(), _3_branchKeyId)) + return res + return res + } +} +func (_this *OnDecryptHierarchyEncryptedDataKeyFilter) BranchKeyId() _dafny.Sequence { + { + return _this._branchKeyId + } +} + +// End of class OnDecryptHierarchyEncryptedDataKeyFilter + +// Definition of class DecryptSingleEncryptedDataKey +type DecryptSingleEncryptedDataKey struct { + _materials m_AwsCryptographyMaterialProvidersTypes.DecryptionMaterials + _keyStore m_AwsCryptographyKeyStoreTypes.IKeyStoreClient + _cryptoPrimitives *m_AtomicPrimitives.AtomicPrimitivesClient + _branchKeyId _dafny.Sequence + _ttlSeconds int64 + _cache m_AwsCryptographyMaterialProvidersTypes.ICryptographicMaterialsCache + _partitionIdBytes _dafny.Sequence + _logicalKeyStoreNameBytes _dafny.Sequence +} + +func New_DecryptSingleEncryptedDataKey_() *DecryptSingleEncryptedDataKey { + _this := DecryptSingleEncryptedDataKey{} + + _this._materials = m_AwsCryptographyMaterialProvidersTypes.DecryptionMaterials{} + _this._keyStore = (m_AwsCryptographyKeyStoreTypes.IKeyStoreClient)(nil) + _this._cryptoPrimitives = (*m_AtomicPrimitives.AtomicPrimitivesClient)(nil) + _this._branchKeyId = _dafny.EmptySeq.SetString() + _this._ttlSeconds = int64(0) + _this._cache = (m_AwsCryptographyMaterialProvidersTypes.ICryptographicMaterialsCache)(nil) + _this._partitionIdBytes = _dafny.EmptySeq + _this._logicalKeyStoreNameBytes = _dafny.EmptySeq + return &_this +} + +type CompanionStruct_DecryptSingleEncryptedDataKey_ struct { +} + +var Companion_DecryptSingleEncryptedDataKey_ = CompanionStruct_DecryptSingleEncryptedDataKey_{} + +func (_this *DecryptSingleEncryptedDataKey) Equals(other *DecryptSingleEncryptedDataKey) bool { + return _this == other +} + +func (_this *DecryptSingleEncryptedDataKey) EqualsGeneric(x interface{}) bool { + other, ok := x.(*DecryptSingleEncryptedDataKey) + return ok && _this.Equals(other) +} + +func (*DecryptSingleEncryptedDataKey) String() string { + return "AwsKmsHierarchicalKeyring.DecryptSingleEncryptedDataKey" +} + +func Type_DecryptSingleEncryptedDataKey_() _dafny.TypeDescriptor { + return type_DecryptSingleEncryptedDataKey_{} +} + +type type_DecryptSingleEncryptedDataKey_ struct { +} + +func (_this type_DecryptSingleEncryptedDataKey_) Default() interface{} { + return (*DecryptSingleEncryptedDataKey)(nil) +} + +func (_this type_DecryptSingleEncryptedDataKey_) String() string { + return "AwsKmsHierarchicalKeyring.DecryptSingleEncryptedDataKey" +} +func (_this *DecryptSingleEncryptedDataKey) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){m_Actions.Companion_ActionWithResult_.TraitID_, m_Actions.Companion_Action_.TraitID_} +} + +var _ m_Actions.ActionWithResult = &DecryptSingleEncryptedDataKey{} +var _ m_Actions.Action = &DecryptSingleEncryptedDataKey{} +var _ _dafny.TraitOffspring = &DecryptSingleEncryptedDataKey{} + +func (_this *DecryptSingleEncryptedDataKey) Ctor__(materials m_AwsCryptographyMaterialProvidersTypes.DecryptionMaterials, keyStore m_AwsCryptographyKeyStoreTypes.IKeyStoreClient, cryptoPrimitives *m_AtomicPrimitives.AtomicPrimitivesClient, branchKeyId _dafny.Sequence, ttlSeconds int64, cache m_AwsCryptographyMaterialProvidersTypes.ICryptographicMaterialsCache, partitionIdBytes _dafny.Sequence, logicalKeyStoreNameBytes _dafny.Sequence) { + { + (_this)._materials = materials + (_this)._keyStore = keyStore + (_this)._cryptoPrimitives = cryptoPrimitives + (_this)._branchKeyId = branchKeyId + (_this)._ttlSeconds = ttlSeconds + (_this)._cache = cache + (_this)._partitionIdBytes = partitionIdBytes + (_this)._logicalKeyStoreNameBytes = logicalKeyStoreNameBytes + } +} +func (_this *DecryptSingleEncryptedDataKey) Invoke(edk interface{}) interface{} { + { + var edk m_AwsCryptographyMaterialProvidersTypes.EncryptedDataKey = edk.(m_AwsCryptographyMaterialProvidersTypes.EncryptedDataKey) + _ = edk + var res m_Wrappers.Result = m_Wrappers.Result{} + _ = res + var _0_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _0_valueOrError0 + _0_valueOrError0 = m_Wrappers.Companion_Default___.Need(m_UTF8.Companion_Default___.ValidUTF8Seq((edk).Dtor_keyProviderInfo()), m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.SeqOfString("Received invalid EDK provider info for Hierarchical Keyring"))) + if (_0_valueOrError0).IsFailure() { + res = (_0_valueOrError0).PropagateFailure() + return res + } + var _1_suite m_AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo + _ = _1_suite + _1_suite = ((_this).Materials()).Dtor_algorithmSuite() + var _2_keyProviderId _dafny.Sequence + _ = _2_keyProviderId + _2_keyProviderId = (edk).Dtor_keyProviderId() + var _3_branchKeyIdUtf8 _dafny.Sequence + _ = _3_branchKeyIdUtf8 + _3_branchKeyIdUtf8 = (edk).Dtor_keyProviderInfo() + var _4_ciphertext _dafny.Sequence + _ = _4_ciphertext + _4_ciphertext = (edk).Dtor_ciphertext() + var _5_valueOrError1 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = _5_valueOrError1 + _5_valueOrError1 = m_EdkWrapping.Companion_Default___.GetProviderWrappedMaterial(_4_ciphertext, _1_suite) + if (_5_valueOrError1).IsFailure() { + res = (_5_valueOrError1).PropagateFailure() + return res + } + var _6_providerWrappedMaterial _dafny.Sequence + _ = _6_providerWrappedMaterial + _6_providerWrappedMaterial = (_5_valueOrError1).Extract().(_dafny.Sequence) + var _7_valueOrError2 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _7_valueOrError2 + _7_valueOrError2 = m_Wrappers.Companion_Default___.Need((_dafny.IntOfUint32((_6_providerWrappedMaterial).Cardinality())).Cmp(_dafny.IntOfInt32(Companion_Default___.EDK__CIPHERTEXT__VERSION__INDEX())) >= 0, m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.SeqOfString("Received EDK Ciphertext of incorrect length."))) + if (_7_valueOrError2).IsFailure() { + res = (_7_valueOrError2).PropagateFailure() + return res + } + var _8_branchKeyVersionUuid _dafny.Sequence + _ = _8_branchKeyVersionUuid + _8_branchKeyVersionUuid = (_6_providerWrappedMaterial).Subsequence(uint32(Companion_Default___.EDK__CIPHERTEXT__BRANCH__KEY__VERSION__INDEX()), uint32(Companion_Default___.EDK__CIPHERTEXT__VERSION__INDEX())) + var _9_valueOrError3 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq.SetString()) + _ = _9_valueOrError3 + _9_valueOrError3 = (m_UUID.FromByteArray(_8_branchKeyVersionUuid)).MapFailure(func(coer85 func(_dafny.Sequence) m_AwsCryptographyMaterialProvidersTypes.Error) func(interface{}) interface{} { + return func(arg86 interface{}) interface{} { + return coer85(arg86.(_dafny.Sequence)) + } + }(m_AwsKmsUtils.Companion_Default___.WrapStringToError)) + if (_9_valueOrError3).IsFailure() { + res = (_9_valueOrError3).PropagateFailure() + return res + } + var _10_version _dafny.Sequence + _ = _10_version + _10_version = (_9_valueOrError3).Extract().(_dafny.Sequence) + var _11_valueOrError4 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = _11_valueOrError4 + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = (_this).GetVersionCacheId(_3_branchKeyIdUtf8, _10_version, (_this).CryptoPrimitives()) + _11_valueOrError4 = _out0 + if (_11_valueOrError4).IsFailure() { + res = (_11_valueOrError4).PropagateFailure() + return res + } + var _12_cacheId _dafny.Sequence + _ = _12_cacheId + _12_cacheId = (_11_valueOrError4).Extract().(_dafny.Sequence) + var _13_valueOrError5 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_AwsCryptographyKeyStoreTypes.Companion_BranchKeyMaterials_.Default()) + _ = _13_valueOrError5 + var _out1 m_Wrappers.Result + _ = _out1 + _out1 = (_this).GetHierarchicalMaterialsVersion((_this).BranchKeyId(), _3_branchKeyIdUtf8, _10_version, _12_cacheId) + _13_valueOrError5 = _out1 + if (_13_valueOrError5).IsFailure() { + res = (_13_valueOrError5).PropagateFailure() + return res + } + var _14_hierarchicalMaterials m_AwsCryptographyKeyStoreTypes.BranchKeyMaterials + _ = _14_hierarchicalMaterials + _14_hierarchicalMaterials = (_13_valueOrError5).Extract().(m_AwsCryptographyKeyStoreTypes.BranchKeyMaterials) + var _15_branchKey _dafny.Sequence + _ = _15_branchKey + _15_branchKey = (_14_hierarchicalMaterials).Dtor_branchKey() + var _16_branchKeyVersion _dafny.Sequence + _ = _16_branchKeyVersion + _16_branchKeyVersion = (_14_hierarchicalMaterials).Dtor_branchKeyVersion() + var _17_valueOrError6 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq.SetString()) + _ = _17_valueOrError6 + _17_valueOrError6 = (m_UTF8.Decode(_16_branchKeyVersion)).MapFailure(func(coer86 func(_dafny.Sequence) m_AwsCryptographyMaterialProvidersTypes.Error) func(interface{}) interface{} { + return func(arg87 interface{}) interface{} { + return coer86(arg87.(_dafny.Sequence)) + } + }(m_AwsKmsUtils.Companion_Default___.WrapStringToError)) + if (_17_valueOrError6).IsFailure() { + res = (_17_valueOrError6).PropagateFailure() + return res + } + var _18_branchKeyVersionAsString _dafny.Sequence + _ = _18_branchKeyVersionAsString + _18_branchKeyVersionAsString = (_17_valueOrError6).Extract().(_dafny.Sequence) + var _19_valueOrError7 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = _19_valueOrError7 + _19_valueOrError7 = (m_UUID.ToByteArray(_18_branchKeyVersionAsString)).MapFailure(func(coer87 func(_dafny.Sequence) m_AwsCryptographyMaterialProvidersTypes.Error) func(interface{}) interface{} { + return func(arg88 interface{}) interface{} { + return coer87(arg88.(_dafny.Sequence)) + } + }(m_AwsKmsUtils.Companion_Default___.WrapStringToError)) + if (_19_valueOrError7).IsFailure() { + res = (_19_valueOrError7).PropagateFailure() + return res + } + var _20_branchKeyVersionAsBytes _dafny.Sequence + _ = _20_branchKeyVersionAsBytes + _20_branchKeyVersionAsBytes = (_19_valueOrError7).Extract().(_dafny.Sequence) + var _21_maybeCrypto m_Wrappers.Result + _ = _21_maybeCrypto + var _out2 m_Wrappers.Result + _ = _out2 + _out2 = m_AtomicPrimitives.Companion_Default___.AtomicPrimitives(m_AtomicPrimitives.Companion_Default___.DefaultCryptoConfig()) + _21_maybeCrypto = _out2 + var _22_valueOrError8 m_Wrappers.Result = m_Wrappers.Result{} + _ = _22_valueOrError8 + _22_valueOrError8 = (_21_maybeCrypto).MapFailure(func(coer88 func(m_AwsCryptographyPrimitivesTypes.Error) m_AwsCryptographyMaterialProvidersTypes.Error) func(interface{}) interface{} { + return func(arg89 interface{}) interface{} { + return coer88(arg89.(m_AwsCryptographyPrimitivesTypes.Error)) + } + }(func(_23_e m_AwsCryptographyPrimitivesTypes.Error) m_AwsCryptographyMaterialProvidersTypes.Error { + return m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographyPrimitives_(_23_e) + })) + if (_22_valueOrError8).IsFailure() { + res = (_22_valueOrError8).PropagateFailure() + return res + } + var _24_cryptoPrimitivesX m_AwsCryptographyPrimitivesTypes.IAwsCryptographicPrimitivesClient + _ = _24_cryptoPrimitivesX + _24_cryptoPrimitivesX = (_22_valueOrError8).Extract().(*m_AtomicPrimitives.AtomicPrimitivesClient) + var _25_cryptoPrimitives *m_AtomicPrimitives.AtomicPrimitivesClient + _ = _25_cryptoPrimitives + _25_cryptoPrimitives = _24_cryptoPrimitivesX.(*m_AtomicPrimitives.AtomicPrimitivesClient) + var _26_kmsHierarchyUnwrap *KmsHierarchyUnwrapKeyMaterial + _ = _26_kmsHierarchyUnwrap + var _nw0 *KmsHierarchyUnwrapKeyMaterial = New_KmsHierarchyUnwrapKeyMaterial_() + _ = _nw0 + _nw0.Ctor__(_15_branchKey, _3_branchKeyIdUtf8, _20_branchKeyVersionAsBytes, _25_cryptoPrimitives) + _26_kmsHierarchyUnwrap = _nw0 + var _27_unwrapOutputRes m_Wrappers.Result + _ = _27_unwrapOutputRes + var _out3 m_Wrappers.Result + _ = _out3 + _out3 = m_EdkWrapping.Companion_Default___.UnwrapEdkMaterial((edk).Dtor_ciphertext(), (_this).Materials(), _26_kmsHierarchyUnwrap) + _27_unwrapOutputRes = _out3 + var _28_valueOrError9 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_EdkWrapping.Companion_UnwrapEdkMaterialOutput_.Default(Companion_HierarchyUnwrapInfo_.Default())) + _ = _28_valueOrError9 + _28_valueOrError9 = _27_unwrapOutputRes + if (_28_valueOrError9).IsFailure() { + res = (_28_valueOrError9).PropagateFailure() + return res + } + var _29_unwrapOutput m_EdkWrapping.UnwrapEdkMaterialOutput + _ = _29_unwrapOutput + _29_unwrapOutput = (_28_valueOrError9).Extract().(m_EdkWrapping.UnwrapEdkMaterialOutput) + var _30_valueOrError10 m_Wrappers.Result = m_Wrappers.Result{} + _ = _30_valueOrError10 + _30_valueOrError10 = m_Materials.Companion_Default___.DecryptionMaterialsAddDataKey((_this).Materials(), (_29_unwrapOutput).Dtor_plaintextDataKey(), (_29_unwrapOutput).Dtor_symmetricSigningKey()) + if (_30_valueOrError10).IsFailure() { + res = (_30_valueOrError10).PropagateFailure() + return res + } + var _31_result m_AwsCryptographyMaterialProvidersTypes.DecryptionMaterials + _ = _31_result + _31_result = (_30_valueOrError10).Extract().(m_AwsCryptographyMaterialProvidersTypes.DecryptionMaterials) + res = m_Wrappers.Companion_Result_.Create_Success_(_31_result) + return res + return res + } +} +func (_this *DecryptSingleEncryptedDataKey) GetVersionCacheId(branchKeyIdUtf8 _dafny.Sequence, branchKeyVersion _dafny.Sequence, cryptoPrimitives *m_AtomicPrimitives.AtomicPrimitivesClient) m_Wrappers.Result { + { + var cacheId m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = cacheId + var _0_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _0_valueOrError0 + _0_valueOrError0 = m_Wrappers.Companion_Default___.Need((((m_UTF8.Decode(branchKeyIdUtf8)).MapFailure(func(coer89 func(_dafny.Sequence) m_AwsCryptographyMaterialProvidersTypes.Error) func(interface{}) interface{} { + return func(arg90 interface{}) interface{} { + return coer89(arg90.(_dafny.Sequence)) + } + }(m_AwsKmsUtils.Companion_Default___.WrapStringToError))).Is_Success()) && (func(_pat_let7_0 _dafny.Sequence) bool { + return func(_1_branchKeyId _dafny.Sequence) bool { + return (true) && (((_dafny.IntOfUint32((_1_branchKeyId).Cardinality())).Sign() != -1) && ((_dafny.IntOfUint32((_1_branchKeyId).Cardinality())).Cmp(m_StandardLibrary_UInt.Companion_Default___.UINT32__LIMIT()) < 0)) + }(_pat_let7_0) + }(((m_UTF8.Decode(branchKeyIdUtf8)).MapFailure(func(coer90 func(_dafny.Sequence) m_AwsCryptographyMaterialProvidersTypes.Error) func(interface{}) interface{} { + return func(arg91 interface{}) interface{} { + return coer90(arg91.(_dafny.Sequence)) + } + }(m_AwsKmsUtils.Companion_Default___.WrapStringToError))).Dtor_value().(_dafny.Sequence))), Companion_Default___.E(_dafny.SeqOfString("Invalid Branch Key ID Length"))) + if (_0_valueOrError0).IsFailure() { + cacheId = (_0_valueOrError0).PropagateFailure() + return cacheId + } + var _2_hashAlgorithm m_AwsCryptographyPrimitivesTypes.DigestAlgorithm + _ = _2_hashAlgorithm + _2_hashAlgorithm = m_AwsCryptographyPrimitivesTypes.Companion_DigestAlgorithm_.Create_SHA__384_() + var _3_resourceId _dafny.Sequence + _ = _3_resourceId + _3_resourceId = m_CacheConstants.Companion_Default___.RESOURCE__ID__HIERARCHICAL__KEYRING() + var _4_scopeId _dafny.Sequence + _ = _4_scopeId + _4_scopeId = m_CacheConstants.Companion_Default___.SCOPE__ID__DECRYPT() + var _5_valueOrError1 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _5_valueOrError1 + _5_valueOrError1 = m_Wrappers.Companion_Default___.Need(m_UTF8.Companion_Default___.IsASCIIString(branchKeyVersion), Companion_Default___.E(_dafny.SeqOfString("Unable to represent as an ASCII string."))) + if (_5_valueOrError1).IsFailure() { + cacheId = (_5_valueOrError1).PropagateFailure() + return cacheId + } + var _6_versionBytes _dafny.Sequence + _ = _6_versionBytes + _6_versionBytes = m_UTF8.Companion_Default___.EncodeAscii(branchKeyVersion) + var _7_suffix _dafny.Sequence + _ = _7_suffix + _7_suffix = _dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate((_this).LogicalKeyStoreNameBytes(), m_CacheConstants.Companion_Default___.NULL__BYTE()), branchKeyIdUtf8), m_CacheConstants.Companion_Default___.NULL__BYTE()), _6_versionBytes) + var _8_identifier _dafny.Sequence + _ = _8_identifier + _8_identifier = _dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_3_resourceId, m_CacheConstants.Companion_Default___.NULL__BYTE()), _4_scopeId), m_CacheConstants.Companion_Default___.NULL__BYTE()), (_this).PartitionIdBytes()), m_CacheConstants.Companion_Default___.NULL__BYTE()), _7_suffix) + var _9_identifierDigestInput m_AwsCryptographyPrimitivesTypes.DigestInput + _ = _9_identifierDigestInput + _9_identifierDigestInput = m_AwsCryptographyPrimitivesTypes.Companion_DigestInput_.Create_DigestInput_(_2_hashAlgorithm, _8_identifier) + var _10_maybeCacheDigest m_Wrappers.Result + _ = _10_maybeCacheDigest + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_Digest.Companion_Default___.Digest(_9_identifierDigestInput) + _10_maybeCacheDigest = _out0 + var _11_valueOrError2 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = _11_valueOrError2 + _11_valueOrError2 = (_10_maybeCacheDigest).MapFailure(func(coer91 func(m_AwsCryptographyPrimitivesTypes.Error) m_AwsCryptographyMaterialProvidersTypes.Error) func(interface{}) interface{} { + return func(arg92 interface{}) interface{} { + return coer91(arg92.(m_AwsCryptographyPrimitivesTypes.Error)) + } + }(func(_12_e m_AwsCryptographyPrimitivesTypes.Error) m_AwsCryptographyMaterialProvidersTypes.Error { + return m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographyPrimitives_(_12_e) + })) + if (_11_valueOrError2).IsFailure() { + cacheId = (_11_valueOrError2).PropagateFailure() + return cacheId + } + var _13_cacheDigest _dafny.Sequence + _ = _13_cacheDigest + _13_cacheDigest = (_11_valueOrError2).Extract().(_dafny.Sequence) + var _14_valueOrError3 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _14_valueOrError3 + _14_valueOrError3 = m_Wrappers.Companion_Default___.Need((_dafny.IntOfUint32((_13_cacheDigest).Cardinality())).Cmp(m_Digest.Companion_Default___.Length(_2_hashAlgorithm)) == 0, m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.SeqOfString("Digest generated a message not equal to the expected length."))) + if (_14_valueOrError3).IsFailure() { + cacheId = (_14_valueOrError3).PropagateFailure() + return cacheId + } + cacheId = m_Wrappers.Companion_Result_.Create_Success_(_13_cacheDigest) + return cacheId + return cacheId + } +} +func (_this *DecryptSingleEncryptedDataKey) GetHierarchicalMaterialsVersion(branchKeyId _dafny.Sequence, branchKeyIdUtf8 _dafny.Sequence, version _dafny.Sequence, cacheId _dafny.Sequence) m_Wrappers.Result { + { + var material m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_AwsCryptographyKeyStoreTypes.Companion_BranchKeyMaterials_.Default()) + _ = material + var _0_getCacheInput m_AwsCryptographyMaterialProvidersTypes.GetCacheEntryInput + _ = _0_getCacheInput + _0_getCacheInput = m_AwsCryptographyMaterialProvidersTypes.Companion_GetCacheEntryInput_.Create_GetCacheEntryInput_(cacheId, m_Wrappers.Companion_Option_.Create_None_()) + var _1_getCacheOutput m_Wrappers.Result + _ = _1_getCacheOutput + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = ((_this).Cache()).GetCacheEntry(_0_getCacheInput) + _1_getCacheOutput = _out0 + if ((_1_getCacheOutput).Is_Failure()) && (!(((_1_getCacheOutput).Dtor_error().(m_AwsCryptographyMaterialProvidersTypes.Error)).Is_EntryDoesNotExist())) { + material = m_Wrappers.Companion_Result_.Create_Failure_((_1_getCacheOutput).Dtor_error().(m_AwsCryptographyMaterialProvidersTypes.Error)) + return material + } + var _2_now int64 + _ = _2_now + var _out1 int64 + _ = _out1 + _out1 = m__Time.CurrentRelativeTime() + _2_now = _out1 + if ((_1_getCacheOutput).Is_Failure()) || (!(Companion_Default___.CacheEntryWithinLimits(((_1_getCacheOutput).Dtor_value().(m_AwsCryptographyMaterialProvidersTypes.GetCacheEntryOutput)).Dtor_creationTime(), _2_now, (_this).TtlSeconds()))) { + var _3_maybeGetBranchKeyVersionOutput m_Wrappers.Result + _ = _3_maybeGetBranchKeyVersionOutput + var _out2 m_Wrappers.Result + _ = _out2 + _out2 = ((_this).KeyStore()).GetBranchKeyVersion(m_AwsCryptographyKeyStoreTypes.Companion_GetBranchKeyVersionInput_.Create_GetBranchKeyVersionInput_(branchKeyId, version)) + _3_maybeGetBranchKeyVersionOutput = _out2 + var _4_valueOrError0 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_AwsCryptographyKeyStoreTypes.Companion_GetBranchKeyVersionOutput_.Default()) + _ = _4_valueOrError0 + _4_valueOrError0 = (_3_maybeGetBranchKeyVersionOutput).MapFailure(func(coer92 func(m_AwsCryptographyKeyStoreTypes.Error) m_AwsCryptographyMaterialProvidersTypes.Error) func(interface{}) interface{} { + return func(arg93 interface{}) interface{} { + return coer92(arg93.(m_AwsCryptographyKeyStoreTypes.Error)) + } + }(func(_5_e m_AwsCryptographyKeyStoreTypes.Error) m_AwsCryptographyMaterialProvidersTypes.Error { + return m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographyKeyStore_(_5_e) + })) + if (_4_valueOrError0).IsFailure() { + material = (_4_valueOrError0).PropagateFailure() + return material + } + var _6_getBranchKeyVersionOutput m_AwsCryptographyKeyStoreTypes.GetBranchKeyVersionOutput + _ = _6_getBranchKeyVersionOutput + _6_getBranchKeyVersionOutput = (_4_valueOrError0).Extract().(m_AwsCryptographyKeyStoreTypes.GetBranchKeyVersionOutput) + var _7_branchKeyMaterials m_AwsCryptographyKeyStoreTypes.BranchKeyMaterials + _ = _7_branchKeyMaterials + _7_branchKeyMaterials = (_6_getBranchKeyVersionOutput).Dtor_branchKeyMaterials() + var _8_now int64 + _ = _8_now + var _out3 int64 + _ = _out3 + _out3 = m__Time.CurrentRelativeTime() + _8_now = _out3 + var _9_valueOrError1 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _9_valueOrError1 + _9_valueOrError1 = m_Wrappers.Companion_Default___.Need(((_dafny.IntOfInt64(_8_now)).Plus(_dafny.IntOfInt64((_this).TtlSeconds()))).Cmp(m_StandardLibrary_UInt.Companion_Default___.INT64__MAX__LIMIT()) < 0, m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.SeqOfString("INT64 Overflow when putting cache entry."))) + if (_9_valueOrError1).IsFailure() { + material = (_9_valueOrError1).PropagateFailure() + return material + } + var _10_putCacheEntryInput m_AwsCryptographyMaterialProvidersTypes.PutCacheEntryInput + _ = _10_putCacheEntryInput + _10_putCacheEntryInput = m_AwsCryptographyMaterialProvidersTypes.Companion_PutCacheEntryInput_.Create_PutCacheEntryInput_(cacheId, m_AwsCryptographyMaterialProvidersTypes.Companion_Materials_.Create_BranchKey_(_7_branchKeyMaterials), _8_now, ((_this).TtlSeconds())+(_8_now), m_Wrappers.Companion_Option_.Create_None_(), m_Wrappers.Companion_Option_.Create_None_()) + var _11_putResult m_Wrappers.Result + _ = _11_putResult + var _out4 m_Wrappers.Result + _ = _out4 + _out4 = ((_this).Cache()).PutCacheEntry(_10_putCacheEntryInput) + _11_putResult = _out4 + if ((_11_putResult).Is_Failure()) && (!(((_11_putResult).Dtor_error().(m_AwsCryptographyMaterialProvidersTypes.Error)).Is_EntryAlreadyExists())) { + material = m_Wrappers.Companion_Result_.Create_Failure_((_11_putResult).Dtor_error().(m_AwsCryptographyMaterialProvidersTypes.Error)) + return material + } + material = m_Wrappers.Companion_Result_.Create_Success_(_7_branchKeyMaterials) + return material + } else { + var _12_valueOrError2 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _12_valueOrError2 + _12_valueOrError2 = m_Wrappers.Companion_Default___.Need(((((_1_getCacheOutput).Dtor_value().(m_AwsCryptographyMaterialProvidersTypes.GetCacheEntryOutput)).Dtor_materials()).Is_BranchKey()) && ((((_1_getCacheOutput).Dtor_value().(m_AwsCryptographyMaterialProvidersTypes.GetCacheEntryOutput)).Dtor_materials()).Equals(m_AwsCryptographyMaterialProvidersTypes.Companion_Materials_.Create_BranchKey_((((_1_getCacheOutput).Dtor_value().(m_AwsCryptographyMaterialProvidersTypes.GetCacheEntryOutput)).Dtor_materials()).Dtor_BranchKey()))), Companion_Default___.E(_dafny.SeqOfString("Invalid Material Type."))) + if (_12_valueOrError2).IsFailure() { + material = (_12_valueOrError2).PropagateFailure() + return material + } + material = m_Wrappers.Companion_Result_.Create_Success_((((_1_getCacheOutput).Dtor_value().(m_AwsCryptographyMaterialProvidersTypes.GetCacheEntryOutput)).Dtor_materials()).Dtor_BranchKey()) + return material + } + return material + } +} +func (_this *DecryptSingleEncryptedDataKey) Materials() m_AwsCryptographyMaterialProvidersTypes.DecryptionMaterials { + { + return _this._materials + } +} +func (_this *DecryptSingleEncryptedDataKey) KeyStore() m_AwsCryptographyKeyStoreTypes.IKeyStoreClient { + { + return _this._keyStore + } +} +func (_this *DecryptSingleEncryptedDataKey) CryptoPrimitives() *m_AtomicPrimitives.AtomicPrimitivesClient { + { + return _this._cryptoPrimitives + } +} +func (_this *DecryptSingleEncryptedDataKey) BranchKeyId() _dafny.Sequence { + { + return _this._branchKeyId + } +} +func (_this *DecryptSingleEncryptedDataKey) TtlSeconds() int64 { + { + return _this._ttlSeconds + } +} +func (_this *DecryptSingleEncryptedDataKey) Cache() m_AwsCryptographyMaterialProvidersTypes.ICryptographicMaterialsCache { + { + return _this._cache + } +} +func (_this *DecryptSingleEncryptedDataKey) PartitionIdBytes() _dafny.Sequence { + { + return _this._partitionIdBytes + } +} +func (_this *DecryptSingleEncryptedDataKey) LogicalKeyStoreNameBytes() _dafny.Sequence { + { + return _this._logicalKeyStoreNameBytes + } +} + +// End of class DecryptSingleEncryptedDataKey + +// Definition of datatype HierarchyUnwrapInfo +type HierarchyUnwrapInfo struct { + Data_HierarchyUnwrapInfo_ +} + +func (_this HierarchyUnwrapInfo) Get_() Data_HierarchyUnwrapInfo_ { + return _this.Data_HierarchyUnwrapInfo_ +} + +type Data_HierarchyUnwrapInfo_ interface { + isHierarchyUnwrapInfo() +} + +type CompanionStruct_HierarchyUnwrapInfo_ struct { +} + +var Companion_HierarchyUnwrapInfo_ = CompanionStruct_HierarchyUnwrapInfo_{} + +type HierarchyUnwrapInfo_HierarchyUnwrapInfo struct { +} + +func (HierarchyUnwrapInfo_HierarchyUnwrapInfo) isHierarchyUnwrapInfo() {} + +func (CompanionStruct_HierarchyUnwrapInfo_) Create_HierarchyUnwrapInfo_() HierarchyUnwrapInfo { + return HierarchyUnwrapInfo{HierarchyUnwrapInfo_HierarchyUnwrapInfo{}} +} + +func (_this HierarchyUnwrapInfo) Is_HierarchyUnwrapInfo() bool { + _, ok := _this.Get_().(HierarchyUnwrapInfo_HierarchyUnwrapInfo) + return ok +} + +func (CompanionStruct_HierarchyUnwrapInfo_) Default() HierarchyUnwrapInfo { + return Companion_HierarchyUnwrapInfo_.Create_HierarchyUnwrapInfo_() +} + +func (_ CompanionStruct_HierarchyUnwrapInfo_) AllSingletonConstructors() _dafny.Iterator { + i := -1 + return func() (interface{}, bool) { + i++ + switch i { + case 0: + return Companion_HierarchyUnwrapInfo_.Create_HierarchyUnwrapInfo_(), true + default: + return HierarchyUnwrapInfo{}, false + } + } +} + +func (_this HierarchyUnwrapInfo) String() string { + switch _this.Get_().(type) { + case nil: + return "null" + case HierarchyUnwrapInfo_HierarchyUnwrapInfo: + { + return "AwsKmsHierarchicalKeyring.HierarchyUnwrapInfo.HierarchyUnwrapInfo" + } + default: + { + return "" + } + } +} + +func (_this HierarchyUnwrapInfo) Equals(other HierarchyUnwrapInfo) bool { + switch _this.Get_().(type) { + case HierarchyUnwrapInfo_HierarchyUnwrapInfo: + { + _, ok := other.Get_().(HierarchyUnwrapInfo_HierarchyUnwrapInfo) + return ok + } + default: + { + return false // unexpected + } + } +} + +func (_this HierarchyUnwrapInfo) EqualsGeneric(other interface{}) bool { + typed, ok := other.(HierarchyUnwrapInfo) + return ok && _this.Equals(typed) +} + +func Type_HierarchyUnwrapInfo_() _dafny.TypeDescriptor { + return type_HierarchyUnwrapInfo_{} +} + +type type_HierarchyUnwrapInfo_ struct { +} + +func (_this type_HierarchyUnwrapInfo_) Default() interface{} { + return Companion_HierarchyUnwrapInfo_.Default() +} + +func (_this type_HierarchyUnwrapInfo_) String() string { + return "AwsKmsHierarchicalKeyring.HierarchyUnwrapInfo" +} +func (_this HierarchyUnwrapInfo) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = HierarchyUnwrapInfo{} + +// End of datatype HierarchyUnwrapInfo + +// Definition of datatype HierarchyWrapInfo +type HierarchyWrapInfo struct { + Data_HierarchyWrapInfo_ +} + +func (_this HierarchyWrapInfo) Get_() Data_HierarchyWrapInfo_ { + return _this.Data_HierarchyWrapInfo_ +} + +type Data_HierarchyWrapInfo_ interface { + isHierarchyWrapInfo() +} + +type CompanionStruct_HierarchyWrapInfo_ struct { +} + +var Companion_HierarchyWrapInfo_ = CompanionStruct_HierarchyWrapInfo_{} + +type HierarchyWrapInfo_HierarchyWrapInfo struct { +} + +func (HierarchyWrapInfo_HierarchyWrapInfo) isHierarchyWrapInfo() {} + +func (CompanionStruct_HierarchyWrapInfo_) Create_HierarchyWrapInfo_() HierarchyWrapInfo { + return HierarchyWrapInfo{HierarchyWrapInfo_HierarchyWrapInfo{}} +} + +func (_this HierarchyWrapInfo) Is_HierarchyWrapInfo() bool { + _, ok := _this.Get_().(HierarchyWrapInfo_HierarchyWrapInfo) + return ok +} + +func (CompanionStruct_HierarchyWrapInfo_) Default() HierarchyWrapInfo { + return Companion_HierarchyWrapInfo_.Create_HierarchyWrapInfo_() +} + +func (_ CompanionStruct_HierarchyWrapInfo_) AllSingletonConstructors() _dafny.Iterator { + i := -1 + return func() (interface{}, bool) { + i++ + switch i { + case 0: + return Companion_HierarchyWrapInfo_.Create_HierarchyWrapInfo_(), true + default: + return HierarchyWrapInfo{}, false + } + } +} + +func (_this HierarchyWrapInfo) String() string { + switch _this.Get_().(type) { + case nil: + return "null" + case HierarchyWrapInfo_HierarchyWrapInfo: + { + return "AwsKmsHierarchicalKeyring.HierarchyWrapInfo.HierarchyWrapInfo" + } + default: + { + return "" + } + } +} + +func (_this HierarchyWrapInfo) Equals(other HierarchyWrapInfo) bool { + switch _this.Get_().(type) { + case HierarchyWrapInfo_HierarchyWrapInfo: + { + _, ok := other.Get_().(HierarchyWrapInfo_HierarchyWrapInfo) + return ok + } + default: + { + return false // unexpected + } + } +} + +func (_this HierarchyWrapInfo) EqualsGeneric(other interface{}) bool { + typed, ok := other.(HierarchyWrapInfo) + return ok && _this.Equals(typed) +} + +func Type_HierarchyWrapInfo_() _dafny.TypeDescriptor { + return type_HierarchyWrapInfo_{} +} + +type type_HierarchyWrapInfo_ struct { +} + +func (_this type_HierarchyWrapInfo_) Default() interface{} { + return Companion_HierarchyWrapInfo_.Default() +} + +func (_this type_HierarchyWrapInfo_) String() string { + return "AwsKmsHierarchicalKeyring.HierarchyWrapInfo" +} +func (_this HierarchyWrapInfo) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = HierarchyWrapInfo{} + +// End of datatype HierarchyWrapInfo + +// Definition of class KmsHierarchyUnwrapKeyMaterial +type KmsHierarchyUnwrapKeyMaterial struct { + _crypto *m_AtomicPrimitives.AtomicPrimitivesClient + _branchKeyIdUtf8 _dafny.Sequence + _branchKeyVersionAsBytes _dafny.Sequence + _branchKey _dafny.Sequence +} + +func New_KmsHierarchyUnwrapKeyMaterial_() *KmsHierarchyUnwrapKeyMaterial { + _this := KmsHierarchyUnwrapKeyMaterial{} + + _this._crypto = (*m_AtomicPrimitives.AtomicPrimitivesClient)(nil) + _this._branchKeyIdUtf8 = m_UTF8.Companion_ValidUTF8Bytes_.Witness() + _this._branchKeyVersionAsBytes = _dafny.EmptySeq + _this._branchKey = _dafny.EmptySeq + return &_this +} + +type CompanionStruct_KmsHierarchyUnwrapKeyMaterial_ struct { +} + +var Companion_KmsHierarchyUnwrapKeyMaterial_ = CompanionStruct_KmsHierarchyUnwrapKeyMaterial_{} + +func (_this *KmsHierarchyUnwrapKeyMaterial) Equals(other *KmsHierarchyUnwrapKeyMaterial) bool { + return _this == other +} + +func (_this *KmsHierarchyUnwrapKeyMaterial) EqualsGeneric(x interface{}) bool { + other, ok := x.(*KmsHierarchyUnwrapKeyMaterial) + return ok && _this.Equals(other) +} + +func (*KmsHierarchyUnwrapKeyMaterial) String() string { + return "AwsKmsHierarchicalKeyring.KmsHierarchyUnwrapKeyMaterial" +} + +func Type_KmsHierarchyUnwrapKeyMaterial_() _dafny.TypeDescriptor { + return type_KmsHierarchyUnwrapKeyMaterial_{} +} + +type type_KmsHierarchyUnwrapKeyMaterial_ struct { +} + +func (_this type_KmsHierarchyUnwrapKeyMaterial_) Default() interface{} { + return (*KmsHierarchyUnwrapKeyMaterial)(nil) +} + +func (_this type_KmsHierarchyUnwrapKeyMaterial_) String() string { + return "AwsKmsHierarchicalKeyring.KmsHierarchyUnwrapKeyMaterial" +} +func (_this *KmsHierarchyUnwrapKeyMaterial) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){m_MaterialWrapping.Companion_UnwrapMaterial_.TraitID_, m_Actions.Companion_ActionWithResult_.TraitID_, m_Actions.Companion_Action_.TraitID_} +} + +var _ m_MaterialWrapping.UnwrapMaterial = &KmsHierarchyUnwrapKeyMaterial{} +var _ m_Actions.ActionWithResult = &KmsHierarchyUnwrapKeyMaterial{} +var _ m_Actions.Action = &KmsHierarchyUnwrapKeyMaterial{} +var _ _dafny.TraitOffspring = &KmsHierarchyUnwrapKeyMaterial{} + +func (_this *KmsHierarchyUnwrapKeyMaterial) Ctor__(branchKey _dafny.Sequence, branchKeyIdUtf8 _dafny.Sequence, branchKeyVersionAsBytes _dafny.Sequence, crypto *m_AtomicPrimitives.AtomicPrimitivesClient) { + { + (_this)._branchKey = branchKey + (_this)._branchKeyIdUtf8 = branchKeyIdUtf8 + (_this)._branchKeyVersionAsBytes = branchKeyVersionAsBytes + (_this)._crypto = crypto + } +} +func (_this *KmsHierarchyUnwrapKeyMaterial) Invoke(input interface{}) interface{} { + { + var input m_MaterialWrapping.UnwrapInput = input.(m_MaterialWrapping.UnwrapInput) + _ = input + var res m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_MaterialWrapping.Companion_UnwrapOutput_.Default(Companion_HierarchyUnwrapInfo_.Default())) + _ = res + var _0_suite m_AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo + _ = _0_suite + _0_suite = (input).Dtor_algorithmSuite() + var _1_wrappedMaterial _dafny.Sequence + _ = _1_wrappedMaterial + _1_wrappedMaterial = (input).Dtor_wrappedMaterial() + var _2_aad _dafny.Map + _ = _2_aad + _2_aad = (input).Dtor_encryptionContext() + var _3_KeyLength int32 + _ = _3_KeyLength + _3_KeyLength = m_AlgorithmSuites.Companion_Default___.GetEncryptKeyLength(_0_suite) + var _4_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _4_valueOrError0 + _4_valueOrError0 = m_Wrappers.Companion_Default___.Need((_dafny.IntOfUint32((_1_wrappedMaterial).Cardinality())).Cmp((_dafny.IntOfInt32(Companion_Default___.EXPECTED__EDK__CIPHERTEXT__OVERHEAD())).Plus(_dafny.IntOfInt32(_3_KeyLength))) == 0, m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.SeqOfString("Received EDK Ciphertext of incorrect length2."))) + if (_4_valueOrError0).IsFailure() { + res = (_4_valueOrError0).PropagateFailure() + return res + } + var _5_salt _dafny.Sequence + _ = _5_salt + _5_salt = (_1_wrappedMaterial).Subsequence(0, uint32(Companion_Default___.H__WRAP__SALT__LEN())) + var _6_iv _dafny.Sequence + _ = _6_iv + _6_iv = (_1_wrappedMaterial).Subsequence(uint32(Companion_Default___.H__WRAP__SALT__LEN()), uint32(Companion_Default___.EDK__CIPHERTEXT__BRANCH__KEY__VERSION__INDEX())) + var _7_branchKeyVersionUuid _dafny.Sequence + _ = _7_branchKeyVersionUuid + _7_branchKeyVersionUuid = (_1_wrappedMaterial).Subsequence(uint32(Companion_Default___.EDK__CIPHERTEXT__BRANCH__KEY__VERSION__INDEX()), uint32(Companion_Default___.EDK__CIPHERTEXT__VERSION__INDEX())) + var _8_wrappedKey _dafny.Sequence + _ = _8_wrappedKey + _8_wrappedKey = (_1_wrappedMaterial).Subsequence(uint32(Companion_Default___.EDK__CIPHERTEXT__VERSION__INDEX()), uint32((Companion_Default___.EDK__CIPHERTEXT__VERSION__INDEX())+(_3_KeyLength))) + var _9_authTag _dafny.Sequence + _ = _9_authTag + _9_authTag = (_1_wrappedMaterial).Drop(uint32((Companion_Default___.EDK__CIPHERTEXT__VERSION__INDEX()) + (_3_KeyLength))) + var _10_valueOrError1 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = _10_valueOrError1 + _10_valueOrError1 = m_CanonicalEncryptionContext.Companion_Default___.EncryptionContextToAAD((input).Dtor_encryptionContext()) + if (_10_valueOrError1).IsFailure() { + res = (_10_valueOrError1).PropagateFailure() + return res + } + var _11_serializedEC _dafny.Sequence + _ = _11_serializedEC + _11_serializedEC = (_10_valueOrError1).Extract().(_dafny.Sequence) + var _12_wrappingAad _dafny.Sequence + _ = _12_wrappingAad + _12_wrappingAad = Companion_Default___.WrappingAad((_this).BranchKeyIdUtf8(), (_this).BranchKeyVersionAsBytes(), _11_serializedEC) + var _13_valueOrError2 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = _13_valueOrError2 + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = Companion_Default___.DeriveEncryptionKeyFromBranchKey((_this).BranchKey(), _5_salt, m_Wrappers.Companion_Option_.Create_Some_(m_Constants.Companion_Default___.PROVIDER__ID__HIERARCHY()), (_this).Crypto()) + _13_valueOrError2 = _out0 + if (_13_valueOrError2).IsFailure() { + res = (_13_valueOrError2).PropagateFailure() + return res + } + var _14_derivedBranchKey _dafny.Sequence + _ = _14_derivedBranchKey + _14_derivedBranchKey = (_13_valueOrError2).Extract().(_dafny.Sequence) + var _15_maybeUnwrappedPdk m_Wrappers.Result + _ = _15_maybeUnwrappedPdk + var _out1 m_Wrappers.Result + _ = _out1 + _out1 = ((_this).Crypto()).AESDecrypt(m_AwsCryptographyPrimitivesTypes.Companion_AESDecryptInput_.Create_AESDecryptInput_(Companion_Default___.AES__256__ENC__ALG(), _14_derivedBranchKey, _8_wrappedKey, _9_authTag, _6_iv, _12_wrappingAad)) + _15_maybeUnwrappedPdk = _out1 + var _16_valueOrError3 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = _16_valueOrError3 + _16_valueOrError3 = (_15_maybeUnwrappedPdk).MapFailure(func(coer93 func(m_AwsCryptographyPrimitivesTypes.Error) m_AwsCryptographyMaterialProvidersTypes.Error) func(interface{}) interface{} { + return func(arg94 interface{}) interface{} { + return coer93(arg94.(m_AwsCryptographyPrimitivesTypes.Error)) + } + }(func(_17_e m_AwsCryptographyPrimitivesTypes.Error) m_AwsCryptographyMaterialProvidersTypes.Error { + return m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographyPrimitives_(_17_e) + })) + if (_16_valueOrError3).IsFailure() { + res = (_16_valueOrError3).PropagateFailure() + return res + } + var _18_unwrappedPdk _dafny.Sequence + _ = _18_unwrappedPdk + _18_unwrappedPdk = (_16_valueOrError3).Extract().(_dafny.Sequence) + var _19_valueOrError4 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _19_valueOrError4 + _19_valueOrError4 = m_Wrappers.Companion_Default___.Need((_dafny.IntOfUint32((_18_unwrappedPdk).Cardinality())).Cmp(_dafny.IntOfInt32(m_AlgorithmSuites.Companion_Default___.GetEncryptKeyLength((input).Dtor_algorithmSuite()))) == 0, Companion_Default___.E(_dafny.SeqOfString("Invalid Key Length"))) + if (_19_valueOrError4).IsFailure() { + res = (_19_valueOrError4).PropagateFailure() + return res + } + var _20_output m_MaterialWrapping.UnwrapOutput + _ = _20_output + _20_output = m_MaterialWrapping.Companion_UnwrapOutput_.Create_UnwrapOutput_(_18_unwrappedPdk, Companion_HierarchyUnwrapInfo_.Create_HierarchyUnwrapInfo_()) + res = m_Wrappers.Companion_Result_.Create_Success_(_20_output) + return res + return res + } +} +func (_this *KmsHierarchyUnwrapKeyMaterial) Crypto() *m_AtomicPrimitives.AtomicPrimitivesClient { + { + return _this._crypto + } +} +func (_this *KmsHierarchyUnwrapKeyMaterial) BranchKeyIdUtf8() _dafny.Sequence { + { + return _this._branchKeyIdUtf8 + } +} +func (_this *KmsHierarchyUnwrapKeyMaterial) BranchKeyVersionAsBytes() _dafny.Sequence { + { + return _this._branchKeyVersionAsBytes + } +} +func (_this *KmsHierarchyUnwrapKeyMaterial) BranchKey() _dafny.Sequence { + { + return _this._branchKey + } +} + +// End of class KmsHierarchyUnwrapKeyMaterial + +// Definition of class KmsHierarchyGenerateAndWrapKeyMaterial +type KmsHierarchyGenerateAndWrapKeyMaterial struct { + _branchKey _dafny.Sequence + _branchKeyIdUtf8 _dafny.Sequence + _branchKeyVersionAsBytes _dafny.Sequence + _crypto *m_AtomicPrimitives.AtomicPrimitivesClient +} + +func New_KmsHierarchyGenerateAndWrapKeyMaterial_() *KmsHierarchyGenerateAndWrapKeyMaterial { + _this := KmsHierarchyGenerateAndWrapKeyMaterial{} + + _this._branchKey = _dafny.EmptySeq + _this._branchKeyIdUtf8 = m_UTF8.Companion_ValidUTF8Bytes_.Witness() + _this._branchKeyVersionAsBytes = _dafny.EmptySeq + _this._crypto = (*m_AtomicPrimitives.AtomicPrimitivesClient)(nil) + return &_this +} + +type CompanionStruct_KmsHierarchyGenerateAndWrapKeyMaterial_ struct { +} + +var Companion_KmsHierarchyGenerateAndWrapKeyMaterial_ = CompanionStruct_KmsHierarchyGenerateAndWrapKeyMaterial_{} + +func (_this *KmsHierarchyGenerateAndWrapKeyMaterial) Equals(other *KmsHierarchyGenerateAndWrapKeyMaterial) bool { + return _this == other +} + +func (_this *KmsHierarchyGenerateAndWrapKeyMaterial) EqualsGeneric(x interface{}) bool { + other, ok := x.(*KmsHierarchyGenerateAndWrapKeyMaterial) + return ok && _this.Equals(other) +} + +func (*KmsHierarchyGenerateAndWrapKeyMaterial) String() string { + return "AwsKmsHierarchicalKeyring.KmsHierarchyGenerateAndWrapKeyMaterial" +} + +func Type_KmsHierarchyGenerateAndWrapKeyMaterial_() _dafny.TypeDescriptor { + return type_KmsHierarchyGenerateAndWrapKeyMaterial_{} +} + +type type_KmsHierarchyGenerateAndWrapKeyMaterial_ struct { +} + +func (_this type_KmsHierarchyGenerateAndWrapKeyMaterial_) Default() interface{} { + return (*KmsHierarchyGenerateAndWrapKeyMaterial)(nil) +} + +func (_this type_KmsHierarchyGenerateAndWrapKeyMaterial_) String() string { + return "AwsKmsHierarchicalKeyring.KmsHierarchyGenerateAndWrapKeyMaterial" +} +func (_this *KmsHierarchyGenerateAndWrapKeyMaterial) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){m_MaterialWrapping.Companion_GenerateAndWrapMaterial_.TraitID_, m_Actions.Companion_ActionWithResult_.TraitID_, m_Actions.Companion_Action_.TraitID_} +} + +var _ m_MaterialWrapping.GenerateAndWrapMaterial = &KmsHierarchyGenerateAndWrapKeyMaterial{} +var _ m_Actions.ActionWithResult = &KmsHierarchyGenerateAndWrapKeyMaterial{} +var _ m_Actions.Action = &KmsHierarchyGenerateAndWrapKeyMaterial{} +var _ _dafny.TraitOffspring = &KmsHierarchyGenerateAndWrapKeyMaterial{} + +func (_this *KmsHierarchyGenerateAndWrapKeyMaterial) Ctor__(branchKey _dafny.Sequence, branchKeyIdUtf8 _dafny.Sequence, branchKeyVersionAsBytes _dafny.Sequence, crypto *m_AtomicPrimitives.AtomicPrimitivesClient) { + { + (_this)._branchKey = branchKey + (_this)._branchKeyIdUtf8 = branchKeyIdUtf8 + (_this)._branchKeyVersionAsBytes = branchKeyVersionAsBytes + (_this)._crypto = crypto + } +} +func (_this *KmsHierarchyGenerateAndWrapKeyMaterial) Invoke(input interface{}) interface{} { + { + var input m_MaterialWrapping.GenerateAndWrapInput = input.(m_MaterialWrapping.GenerateAndWrapInput) + _ = input + var res m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_MaterialWrapping.Companion_GenerateAndWrapOutput_.Default(Companion_HierarchyWrapInfo_.Default())) + _ = res + var _0_suite m_AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo + _ = _0_suite + _0_suite = (input).Dtor_algorithmSuite() + var _1_pdkResult m_Wrappers.Result + _ = _1_pdkResult + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = ((_this).Crypto()).GenerateRandomBytes(m_AwsCryptographyPrimitivesTypes.Companion_GenerateRandomBytesInput_.Create_GenerateRandomBytesInput_(m_AlgorithmSuites.Companion_Default___.GetEncryptKeyLength(_0_suite))) + _1_pdkResult = _out0 + var _2_valueOrError0 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = _2_valueOrError0 + _2_valueOrError0 = (_1_pdkResult).MapFailure(func(coer94 func(m_AwsCryptographyPrimitivesTypes.Error) m_AwsCryptographyMaterialProvidersTypes.Error) func(interface{}) interface{} { + return func(arg95 interface{}) interface{} { + return coer94(arg95.(m_AwsCryptographyPrimitivesTypes.Error)) + } + }(func(_3_e m_AwsCryptographyPrimitivesTypes.Error) m_AwsCryptographyMaterialProvidersTypes.Error { + return m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographyPrimitives_(_3_e) + })) + if (_2_valueOrError0).IsFailure() { + res = (_2_valueOrError0).PropagateFailure() + return res + } + var _4_pdk _dafny.Sequence + _ = _4_pdk + _4_pdk = (_2_valueOrError0).Extract().(_dafny.Sequence) + var _5_wrap *KmsHierarchyWrapKeyMaterial + _ = _5_wrap + var _nw0 *KmsHierarchyWrapKeyMaterial = New_KmsHierarchyWrapKeyMaterial_() + _ = _nw0 + _nw0.Ctor__((_this).BranchKey(), (_this).BranchKeyIdUtf8(), (_this).BranchKeyVersionAsBytes(), (_this).Crypto()) + _5_wrap = _nw0 + var _6_valueOrError1 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_MaterialWrapping.Companion_WrapOutput_.Default(Companion_HierarchyWrapInfo_.Default())) + _ = _6_valueOrError1 + var _out1 interface{} + _ = _out1 + _out1 = (_5_wrap).Invoke(m_MaterialWrapping.Companion_WrapInput_.Create_WrapInput_(_4_pdk, (input).Dtor_algorithmSuite(), (input).Dtor_encryptionContext())) + _6_valueOrError1 = _out1.(m_Wrappers.Result) + if (_6_valueOrError1).IsFailure() { + res = (_6_valueOrError1).PropagateFailure() + return res + } + var _7_wrapOutput m_MaterialWrapping.WrapOutput + _ = _7_wrapOutput + _7_wrapOutput = (_6_valueOrError1).Extract().(m_MaterialWrapping.WrapOutput) + var _8_output m_MaterialWrapping.GenerateAndWrapOutput + _ = _8_output + _8_output = m_MaterialWrapping.Companion_GenerateAndWrapOutput_.Create_GenerateAndWrapOutput_(_4_pdk, (_7_wrapOutput).Dtor_wrappedMaterial(), Companion_HierarchyWrapInfo_.Create_HierarchyWrapInfo_()) + res = m_Wrappers.Companion_Result_.Create_Success_(_8_output) + return res + return res + } +} +func (_this *KmsHierarchyGenerateAndWrapKeyMaterial) BranchKey() _dafny.Sequence { + { + return _this._branchKey + } +} +func (_this *KmsHierarchyGenerateAndWrapKeyMaterial) BranchKeyIdUtf8() _dafny.Sequence { + { + return _this._branchKeyIdUtf8 + } +} +func (_this *KmsHierarchyGenerateAndWrapKeyMaterial) BranchKeyVersionAsBytes() _dafny.Sequence { + { + return _this._branchKeyVersionAsBytes + } +} +func (_this *KmsHierarchyGenerateAndWrapKeyMaterial) Crypto() *m_AtomicPrimitives.AtomicPrimitivesClient { + { + return _this._crypto + } +} + +// End of class KmsHierarchyGenerateAndWrapKeyMaterial + +// Definition of class KmsHierarchyWrapKeyMaterial +type KmsHierarchyWrapKeyMaterial struct { + _branchKey _dafny.Sequence + _branchKeyIdUtf8 _dafny.Sequence + _branchKeyVersionAsBytes _dafny.Sequence + _crypto *m_AtomicPrimitives.AtomicPrimitivesClient +} + +func New_KmsHierarchyWrapKeyMaterial_() *KmsHierarchyWrapKeyMaterial { + _this := KmsHierarchyWrapKeyMaterial{} + + _this._branchKey = _dafny.EmptySeq + _this._branchKeyIdUtf8 = m_UTF8.Companion_ValidUTF8Bytes_.Witness() + _this._branchKeyVersionAsBytes = _dafny.EmptySeq + _this._crypto = (*m_AtomicPrimitives.AtomicPrimitivesClient)(nil) + return &_this +} + +type CompanionStruct_KmsHierarchyWrapKeyMaterial_ struct { +} + +var Companion_KmsHierarchyWrapKeyMaterial_ = CompanionStruct_KmsHierarchyWrapKeyMaterial_{} + +func (_this *KmsHierarchyWrapKeyMaterial) Equals(other *KmsHierarchyWrapKeyMaterial) bool { + return _this == other +} + +func (_this *KmsHierarchyWrapKeyMaterial) EqualsGeneric(x interface{}) bool { + other, ok := x.(*KmsHierarchyWrapKeyMaterial) + return ok && _this.Equals(other) +} + +func (*KmsHierarchyWrapKeyMaterial) String() string { + return "AwsKmsHierarchicalKeyring.KmsHierarchyWrapKeyMaterial" +} + +func Type_KmsHierarchyWrapKeyMaterial_() _dafny.TypeDescriptor { + return type_KmsHierarchyWrapKeyMaterial_{} +} + +type type_KmsHierarchyWrapKeyMaterial_ struct { +} + +func (_this type_KmsHierarchyWrapKeyMaterial_) Default() interface{} { + return (*KmsHierarchyWrapKeyMaterial)(nil) +} + +func (_this type_KmsHierarchyWrapKeyMaterial_) String() string { + return "AwsKmsHierarchicalKeyring.KmsHierarchyWrapKeyMaterial" +} +func (_this *KmsHierarchyWrapKeyMaterial) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){m_MaterialWrapping.Companion_WrapMaterial_.TraitID_, m_Actions.Companion_ActionWithResult_.TraitID_, m_Actions.Companion_Action_.TraitID_} +} + +var _ m_MaterialWrapping.WrapMaterial = &KmsHierarchyWrapKeyMaterial{} +var _ m_Actions.ActionWithResult = &KmsHierarchyWrapKeyMaterial{} +var _ m_Actions.Action = &KmsHierarchyWrapKeyMaterial{} +var _ _dafny.TraitOffspring = &KmsHierarchyWrapKeyMaterial{} + +func (_this *KmsHierarchyWrapKeyMaterial) Ctor__(branchKey _dafny.Sequence, branchKeyIdUtf8 _dafny.Sequence, branchKeyVersionAsBytes _dafny.Sequence, crypto *m_AtomicPrimitives.AtomicPrimitivesClient) { + { + (_this)._branchKey = branchKey + (_this)._branchKeyIdUtf8 = branchKeyIdUtf8 + (_this)._branchKeyVersionAsBytes = branchKeyVersionAsBytes + (_this)._crypto = crypto + } +} +func (_this *KmsHierarchyWrapKeyMaterial) Invoke(input interface{}) interface{} { + { + var input m_MaterialWrapping.WrapInput = input.(m_MaterialWrapping.WrapInput) + _ = input + var res m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_MaterialWrapping.Companion_WrapOutput_.Default(Companion_HierarchyWrapInfo_.Default())) + _ = res + var _0_suite m_AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo + _ = _0_suite + _0_suite = (input).Dtor_algorithmSuite() + var _1_maybeNonceSalt m_Wrappers.Result + _ = _1_maybeNonceSalt + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = ((_this).Crypto()).GenerateRandomBytes(m_AwsCryptographyPrimitivesTypes.Companion_GenerateRandomBytesInput_.Create_GenerateRandomBytesInput_((Companion_Default___.H__WRAP__SALT__LEN()) + (Companion_Default___.H__WRAP__NONCE__LEN()))) + _1_maybeNonceSalt = _out0 + var _2_valueOrError0 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = _2_valueOrError0 + _2_valueOrError0 = (_1_maybeNonceSalt).MapFailure(func(coer95 func(m_AwsCryptographyPrimitivesTypes.Error) m_AwsCryptographyMaterialProvidersTypes.Error) func(interface{}) interface{} { + return func(arg96 interface{}) interface{} { + return coer95(arg96.(m_AwsCryptographyPrimitivesTypes.Error)) + } + }(func(_3_e m_AwsCryptographyPrimitivesTypes.Error) m_AwsCryptographyMaterialProvidersTypes.Error { + return m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographyPrimitives_(_3_e) + })) + if (_2_valueOrError0).IsFailure() { + res = (_2_valueOrError0).PropagateFailure() + return res + } + var _4_saltAndNonce _dafny.Sequence + _ = _4_saltAndNonce + _4_saltAndNonce = (_2_valueOrError0).Extract().(_dafny.Sequence) + var _5_salt _dafny.Sequence + _ = _5_salt + _5_salt = (_4_saltAndNonce).Subsequence(0, uint32(Companion_Default___.H__WRAP__SALT__LEN())) + var _6_nonce _dafny.Sequence + _ = _6_nonce + _6_nonce = (_4_saltAndNonce).Drop(uint32(Companion_Default___.H__WRAP__SALT__LEN())) + var _7_valueOrError1 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = _7_valueOrError1 + _7_valueOrError1 = m_CanonicalEncryptionContext.Companion_Default___.EncryptionContextToAAD((input).Dtor_encryptionContext()) + if (_7_valueOrError1).IsFailure() { + res = (_7_valueOrError1).PropagateFailure() + return res + } + var _8_serializedEC _dafny.Sequence + _ = _8_serializedEC + _8_serializedEC = (_7_valueOrError1).Extract().(_dafny.Sequence) + var _9_wrappingAad _dafny.Sequence + _ = _9_wrappingAad + _9_wrappingAad = Companion_Default___.WrappingAad((_this).BranchKeyIdUtf8(), (_this).BranchKeyVersionAsBytes(), _8_serializedEC) + var _10_valueOrError2 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = _10_valueOrError2 + var _out1 m_Wrappers.Result + _ = _out1 + _out1 = Companion_Default___.DeriveEncryptionKeyFromBranchKey((_this).BranchKey(), _5_salt, m_Wrappers.Companion_Option_.Create_Some_(m_Constants.Companion_Default___.PROVIDER__ID__HIERARCHY()), (_this).Crypto()) + _10_valueOrError2 = _out1 + if (_10_valueOrError2).IsFailure() { + res = (_10_valueOrError2).PropagateFailure() + return res + } + var _11_derivedBranchKey _dafny.Sequence + _ = _11_derivedBranchKey + _11_derivedBranchKey = (_10_valueOrError2).Extract().(_dafny.Sequence) + var _12_maybeWrappedPdk m_Wrappers.Result + _ = _12_maybeWrappedPdk + var _out2 m_Wrappers.Result + _ = _out2 + _out2 = ((_this).Crypto()).AESEncrypt(m_AwsCryptographyPrimitivesTypes.Companion_AESEncryptInput_.Create_AESEncryptInput_(Companion_Default___.AES__256__ENC__ALG(), _6_nonce, _11_derivedBranchKey, (input).Dtor_plaintextMaterial(), _9_wrappingAad)) + _12_maybeWrappedPdk = _out2 + var _13_valueOrError3 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_AwsCryptographyPrimitivesTypes.Companion_AESEncryptOutput_.Default()) + _ = _13_valueOrError3 + _13_valueOrError3 = (_12_maybeWrappedPdk).MapFailure(func(coer96 func(m_AwsCryptographyPrimitivesTypes.Error) m_AwsCryptographyMaterialProvidersTypes.Error) func(interface{}) interface{} { + return func(arg97 interface{}) interface{} { + return coer96(arg97.(m_AwsCryptographyPrimitivesTypes.Error)) + } + }(func(_14_e m_AwsCryptographyPrimitivesTypes.Error) m_AwsCryptographyMaterialProvidersTypes.Error { + return m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographyPrimitives_(_14_e) + })) + if (_13_valueOrError3).IsFailure() { + res = (_13_valueOrError3).PropagateFailure() + return res + } + var _15_wrappedPdk m_AwsCryptographyPrimitivesTypes.AESEncryptOutput + _ = _15_wrappedPdk + _15_wrappedPdk = (_13_valueOrError3).Extract().(m_AwsCryptographyPrimitivesTypes.AESEncryptOutput) + var _16_output m_MaterialWrapping.WrapOutput + _ = _16_output + _16_output = m_MaterialWrapping.Companion_WrapOutput_.Create_WrapOutput_(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_5_salt, _6_nonce), (_this).BranchKeyVersionAsBytes()), (_15_wrappedPdk).Dtor_cipherText()), (_15_wrappedPdk).Dtor_authTag()), Companion_HierarchyWrapInfo_.Create_HierarchyWrapInfo_()) + res = m_Wrappers.Companion_Result_.Create_Success_(_16_output) + return res + return res + } +} +func (_this *KmsHierarchyWrapKeyMaterial) BranchKey() _dafny.Sequence { + { + return _this._branchKey + } +} +func (_this *KmsHierarchyWrapKeyMaterial) BranchKeyIdUtf8() _dafny.Sequence { + { + return _this._branchKeyIdUtf8 + } +} +func (_this *KmsHierarchyWrapKeyMaterial) BranchKeyVersionAsBytes() _dafny.Sequence { + { + return _this._branchKeyVersionAsBytes + } +} +func (_this *KmsHierarchyWrapKeyMaterial) Crypto() *m_AtomicPrimitives.AtomicPrimitivesClient { + { + return _this._crypto + } +} + +// End of class KmsHierarchyWrapKeyMaterial diff --git a/customer-preview/mpl/AwsKmsKeyring/AwsKmsKeyring.go b/customer-preview/mpl/AwsKmsKeyring/AwsKmsKeyring.go new file mode 100644 index 000000000..3017c255e --- /dev/null +++ b/customer-preview/mpl/AwsKmsKeyring/AwsKmsKeyring.go @@ -0,0 +1,1379 @@ +// Package AwsKmsKeyring +// Dafny module AwsKmsKeyring compiled into Go + +package AwsKmsKeyring + +import ( + os "os" + + m_ComAmazonawsDynamodbTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/ComAmazonawsDynamodbTypes" + m_Com_Amazonaws_Dynamodb "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/Com_Amazonaws_Dynamodb" + m_ComAmazonawsKmsTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/ComAmazonawsKmsTypes" + m_Com_Amazonaws_Kms "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/Com_Amazonaws_Kms" + m_AlgorithmSuites "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AlgorithmSuites" + m_AwsArnParsing "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsArnParsing" + m_AwsCryptographyKeyStoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreOperations" + m_AwsCryptographyKeyStoreTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreTypes" + m_AwsCryptographyMaterialProvidersTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersTypes" + m_AwsKmsMrkAreUnique "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkAreUnique" + m_AwsKmsMrkMatchForDecrypt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkMatchForDecrypt" + m_AwsKmsUtils "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsUtils" + m_CanonicalEncryptionContext "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CanonicalEncryptionContext" + m_Constants "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Constants" + m_CreateKeyStoreTable "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeyStoreTable" + m_CreateKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeys" + m_DDBKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DDBKeystoreOperations" + m_EdkWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/EdkWrapping" + m_ErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/ErrorMessages" + m_GetKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/GetKeys" + m_IntermediateKeyWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/IntermediateKeyWrapping" + m_KMSKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KMSKeystoreOperations" + m_KeyStore "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStore" + m_KeyStoreErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStoreErrorMessages" + m_Keyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Keyring" + m_KmsArn "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KmsArn" + m_MaterialWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MaterialWrapping" + m_Materials "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Materials" + m_MultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MultiKeyring" + m_Structure "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Structure" + m_AtomicPrimitives "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AtomicPrimitives" + m_AwsCryptographyPrimitivesOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesOperations" + m_AwsCryptographyPrimitivesTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesTypes" + m_Digest "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Digest" + m_HKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/HKDF" + m_KdfCtr "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/KdfCtr" + m_Random "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Random" + m_WrappedHKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHKDF" + m_WrappedHMAC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHMAC" + m_Actions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Actions" + m_Base64 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64" + m_Base64Lemmas "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64Lemmas" + m_BoundedInts "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/BoundedInts" + m_DivInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternals" + m_DivInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternalsNonlinear" + m_DivMod "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivMod" + m_FileIO "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FileIO" + m_FloatCompare "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FloatCompare" + m_Functions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Functions" + m_GeneralInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GeneralInternals" + m_GetOpt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GetOpt" + m_HexStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/HexStrings" + m_Logarithm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Logarithm" + m__Math "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Math_" + m_ModInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternals" + m_ModInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternalsNonlinear" + m_Mul "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Mul" + m_MulInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternals" + m_MulInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternalsNonlinear" + m_Power "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Power" + m_Relations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Relations" + m_Seq "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq" + m_Seq_MergeSort "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq_MergeSort" + m_Sorting "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Sorting" + m_StandardLibrary "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary" + m_StandardLibraryInterop "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibraryInterop" + m_StandardLibrary_Sequence "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_Sequence" + m_StandardLibrary_String "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_String" + m_StandardLibrary_UInt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_UInt" + m_Streams "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Streams" + m_UTF8 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UTF8" + m_UnicodeStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UnicodeStrings" + m__Unicode "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Unicode_" + m_Utf16EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf16EncodingForm" + m_Utf8EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf8EncodingForm" + m_Wrappers "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers" + m__System "github.com/dafny-lang/DafnyRuntimeGo/v4/System_" + _dafny "github.com/dafny-lang/DafnyRuntimeGo/v4/dafny" +) + +var _ = os.Args +var _ _dafny.Dummy__ +var _ m__System.Dummy__ +var _ m_Wrappers.Dummy__ +var _ m_BoundedInts.Dummy__ +var _ m_StandardLibrary_UInt.Dummy__ +var _ m_StandardLibrary_Sequence.Dummy__ +var _ m_StandardLibrary_String.Dummy__ +var _ m_StandardLibrary.Dummy__ +var _ m_AwsCryptographyPrimitivesTypes.Dummy__ +var _ m_Random.Dummy__ +var _ m_Digest.Dummy__ +var _ m_WrappedHMAC.Dummy__ +var _ m_HKDF.Dummy__ +var _ m_WrappedHKDF.Dummy__ +var _ m_KdfCtr.Dummy__ +var _ m_AwsCryptographyPrimitivesOperations.Dummy__ +var _ m_AtomicPrimitives.Dummy__ +var _ m_ComAmazonawsDynamodbTypes.Dummy__ +var _ m_ComAmazonawsKmsTypes.Dummy__ +var _ m_Relations.Dummy__ +var _ m_Seq_MergeSort.Dummy__ +var _ m__Math.Dummy__ +var _ m_Seq.Dummy__ +var _ m__Unicode.Dummy__ +var _ m_Functions.Dummy__ +var _ m_Utf8EncodingForm.Dummy__ +var _ m_Utf16EncodingForm.Dummy__ +var _ m_UnicodeStrings.Dummy__ +var _ m_FileIO.Dummy__ +var _ m_GeneralInternals.Dummy__ +var _ m_MulInternalsNonlinear.Dummy__ +var _ m_MulInternals.Dummy__ +var _ m_Mul.Dummy__ +var _ m_ModInternalsNonlinear.Dummy__ +var _ m_DivInternalsNonlinear.Dummy__ +var _ m_ModInternals.Dummy__ +var _ m_DivInternals.Dummy__ +var _ m_DivMod.Dummy__ +var _ m_Power.Dummy__ +var _ m_Logarithm.Dummy__ +var _ m_StandardLibraryInterop.Dummy__ +var _ m_Streams.Dummy__ +var _ m_Sorting.Dummy__ +var _ m_HexStrings.Dummy__ +var _ m_GetOpt.Dummy__ +var _ m_FloatCompare.Dummy__ +var _ m_Base64.Dummy__ +var _ m_Base64Lemmas.Dummy__ +var _ m_Actions.Dummy__ +var _ m_AwsCryptographyKeyStoreTypes.Dummy__ +var _ m_AwsCryptographyMaterialProvidersTypes.Dummy__ +var _ m_AwsArnParsing.Dummy__ +var _ m_AwsKmsMrkMatchForDecrypt.Dummy__ +var _ m_AwsKmsUtils.Dummy__ +var _ m_KeyStoreErrorMessages.Dummy__ +var _ m_KmsArn.Dummy__ +var _ m_Structure.Dummy__ +var _ m_KMSKeystoreOperations.Dummy__ +var _ m_DDBKeystoreOperations.Dummy__ +var _ m_CreateKeys.Dummy__ +var _ m_CreateKeyStoreTable.Dummy__ +var _ m_GetKeys.Dummy__ +var _ m_AwsCryptographyKeyStoreOperations.Dummy__ +var _ m_Com_Amazonaws_Kms.Dummy__ +var _ m_Com_Amazonaws_Dynamodb.Dummy__ +var _ m_KeyStore.Dummy__ +var _ m_AlgorithmSuites.Dummy__ +var _ m_Materials.Dummy__ +var _ m_Keyring.Dummy__ +var _ m_MultiKeyring.Dummy__ +var _ m_AwsKmsMrkAreUnique.Dummy__ +var _ m_Constants.Dummy__ +var _ m_MaterialWrapping.Dummy__ +var _ m_CanonicalEncryptionContext.Dummy__ +var _ m_IntermediateKeyWrapping.Dummy__ +var _ m_EdkWrapping.Dummy__ +var _ m_ErrorMessages.Dummy__ + +type Dummy__ struct{} + +// Definition of class AwsKmsKeyring +type AwsKmsKeyring struct { + _client m_ComAmazonawsKmsTypes.IKMSClient + _awsKmsKey _dafny.Sequence + _grantTokens _dafny.Sequence + _awsKmsArn m_AwsArnParsing.AwsKmsIdentifier +} + +func New_AwsKmsKeyring_() *AwsKmsKeyring { + _this := AwsKmsKeyring{} + + _this._client = (m_ComAmazonawsKmsTypes.IKMSClient)(nil) + _this._awsKmsKey = _dafny.EmptySeq.SetString() + _this._grantTokens = _dafny.EmptySeq + _this._awsKmsArn = m_AwsArnParsing.AwsKmsIdentifier{} + return &_this +} + +type CompanionStruct_AwsKmsKeyring_ struct { +} + +var Companion_AwsKmsKeyring_ = CompanionStruct_AwsKmsKeyring_{} + +func (_this *AwsKmsKeyring) Equals(other *AwsKmsKeyring) bool { + return _this == other +} + +func (_this *AwsKmsKeyring) EqualsGeneric(x interface{}) bool { + other, ok := x.(*AwsKmsKeyring) + return ok && _this.Equals(other) +} + +func (*AwsKmsKeyring) String() string { + return "AwsKmsKeyring.AwsKmsKeyring" +} + +func Type_AwsKmsKeyring_() _dafny.TypeDescriptor { + return type_AwsKmsKeyring_{} +} + +type type_AwsKmsKeyring_ struct { +} + +func (_this type_AwsKmsKeyring_) Default() interface{} { + return (*AwsKmsKeyring)(nil) +} + +func (_this type_AwsKmsKeyring_) String() string { + return "AwsKmsKeyring.AwsKmsKeyring" +} +func (_this *AwsKmsKeyring) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){m_Keyring.Companion_VerifiableInterface_.TraitID_, m_AwsCryptographyMaterialProvidersTypes.Companion_IKeyring_.TraitID_} +} + +var _ m_Keyring.VerifiableInterface = &AwsKmsKeyring{} +var _ m_AwsCryptographyMaterialProvidersTypes.IKeyring = &AwsKmsKeyring{} +var _ _dafny.TraitOffspring = &AwsKmsKeyring{} + +func (_this *AwsKmsKeyring) OnDecrypt(input m_AwsCryptographyMaterialProvidersTypes.OnDecryptInput) m_Wrappers.Result { + var _out2 m_Wrappers.Result + _ = _out2 + _out2 = m_AwsCryptographyMaterialProvidersTypes.Companion_IKeyring_.OnDecrypt(_this, input) + return _out2 +} +func (_this *AwsKmsKeyring) OnEncrypt(input m_AwsCryptographyMaterialProvidersTypes.OnEncryptInput) m_Wrappers.Result { + var _out2 m_Wrappers.Result + _ = _out2 + _out2 = m_AwsCryptographyMaterialProvidersTypes.Companion_IKeyring_.OnEncrypt(_this, input) + return _out2 +} +func (_this *AwsKmsKeyring) Ctor__(client m_ComAmazonawsKmsTypes.IKMSClient, awsKmsKey _dafny.Sequence, grantTokens _dafny.Sequence) { + { + var _0_parsedAwsKmsId m_Wrappers.Result + _ = _0_parsedAwsKmsId + _0_parsedAwsKmsId = m_AwsArnParsing.Companion_Default___.ParseAwsKmsIdentifier(awsKmsKey) + (_this)._client = client + (_this)._awsKmsKey = awsKmsKey + (_this)._awsKmsArn = (_0_parsedAwsKmsId).Dtor_value().(m_AwsArnParsing.AwsKmsIdentifier) + (_this)._grantTokens = grantTokens + } +} +func (_this *AwsKmsKeyring) OnEncrypt_k(input m_AwsCryptographyMaterialProvidersTypes.OnEncryptInput) m_Wrappers.Result { + { + var res m_Wrappers.Result = m_Wrappers.Result{} + _ = res + var _0_materials m_AwsCryptographyMaterialProvidersTypes.EncryptionMaterials + _ = _0_materials + _0_materials = (input).Dtor_materials() + var _1_suite m_AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo + _ = _1_suite + _1_suite = ((input).Dtor_materials()).Dtor_algorithmSuite() + var _2_valueOrError0 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptyMap) + _ = _2_valueOrError0 + _2_valueOrError0 = m_AwsKmsUtils.Companion_Default___.StringifyEncryptionContext(((input).Dtor_materials()).Dtor_encryptionContext()) + if (_2_valueOrError0).IsFailure() { + res = (_2_valueOrError0).PropagateFailure() + return res + } + var _3_stringifiedEncCtx _dafny.Map + _ = _3_stringifiedEncCtx + _3_stringifiedEncCtx = (_2_valueOrError0).Extract().(_dafny.Map) + var _4_kmsGenerateAndWrap *KmsGenerateAndWrapKeyMaterial + _ = _4_kmsGenerateAndWrap + var _nw0 *KmsGenerateAndWrapKeyMaterial = New_KmsGenerateAndWrapKeyMaterial_() + _ = _nw0 + _nw0.Ctor__((_this).Client(), (_this).AwsKmsKey(), (_this).GrantTokens()) + _4_kmsGenerateAndWrap = _nw0 + var _5_kmsWrap *KmsWrapKeyMaterial + _ = _5_kmsWrap + var _nw1 *KmsWrapKeyMaterial = New_KmsWrapKeyMaterial_() + _ = _nw1 + _nw1.Ctor__((_this).Client(), (_this).AwsKmsKey(), (_this).GrantTokens()) + _5_kmsWrap = _nw1 + var _6_valueOrError1 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_EdkWrapping.Companion_WrapEdkMaterialOutput_.Default(Companion_KmsWrapInfo_.Default())) + _ = _6_valueOrError1 + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_EdkWrapping.Companion_Default___.WrapEdkMaterial(_0_materials, _5_kmsWrap, _4_kmsGenerateAndWrap) + _6_valueOrError1 = _out0 + if (_6_valueOrError1).IsFailure() { + res = (_6_valueOrError1).PropagateFailure() + return res + } + var _7_wrapOutput m_EdkWrapping.WrapEdkMaterialOutput + _ = _7_wrapOutput + _7_wrapOutput = (_6_valueOrError1).Extract().(m_EdkWrapping.WrapEdkMaterialOutput) + var _8_kmsKeyArn _dafny.Sequence + _ = _8_kmsKeyArn + _8_kmsKeyArn = ((_7_wrapOutput).Dtor_wrapInfo().(KmsWrapInfo)).Dtor_kmsKeyArn() + var _9_symmetricSigningKeyList m_Wrappers.Option + _ = _9_symmetricSigningKeyList + if ((_7_wrapOutput).Dtor_symmetricSigningKey()).Is_Some() { + _9_symmetricSigningKeyList = m_Wrappers.Companion_Option_.Create_Some_(_dafny.SeqOf(((_7_wrapOutput).Dtor_symmetricSigningKey()).Dtor_value().(_dafny.Sequence))) + } else { + _9_symmetricSigningKeyList = m_Wrappers.Companion_Option_.Create_None_() + } + var _10_valueOrError2 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_UTF8.Companion_ValidUTF8Bytes_.Witness()) + _ = _10_valueOrError2 + _10_valueOrError2 = (m_UTF8.Encode(_8_kmsKeyArn)).MapFailure(func(coer52 func(_dafny.Sequence) m_AwsCryptographyMaterialProvidersTypes.Error) func(interface{}) interface{} { + return func(arg53 interface{}) interface{} { + return coer52(arg53.(_dafny.Sequence)) + } + }(m_AwsKmsUtils.Companion_Default___.WrapStringToError)) + if (_10_valueOrError2).IsFailure() { + res = (_10_valueOrError2).PropagateFailure() + return res + } + var _11_providerInfo _dafny.Sequence + _ = _11_providerInfo + _11_providerInfo = (_10_valueOrError2).Extract().(_dafny.Sequence) + var _12_valueOrError3 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _12_valueOrError3 + _12_valueOrError3 = m_Wrappers.Companion_Default___.Need((_dafny.IntOfUint32((_11_providerInfo).Cardinality())).Cmp(m_StandardLibrary_UInt.Companion_Default___.UINT16__LIMIT()) < 0, m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.SeqOfString("Invalid response from AWS KMS GenerateDataKey: Key ID too long."))) + if (_12_valueOrError3).IsFailure() { + res = (_12_valueOrError3).PropagateFailure() + return res + } + var _13_edk m_AwsCryptographyMaterialProvidersTypes.EncryptedDataKey + _ = _13_edk + _13_edk = m_AwsCryptographyMaterialProvidersTypes.Companion_EncryptedDataKey_.Create_EncryptedDataKey_(m_Constants.Companion_Default___.PROVIDER__ID(), _11_providerInfo, (_7_wrapOutput).Dtor_wrappedMaterial()) + if (_7_wrapOutput).Is_GenerateAndWrapEdkMaterialOutput() { + var _14_valueOrError4 m_Wrappers.Result = m_Wrappers.Result{} + _ = _14_valueOrError4 + _14_valueOrError4 = m_Materials.Companion_Default___.EncryptionMaterialAddDataKey(_0_materials, (_7_wrapOutput).Dtor_plaintextDataKey(), _dafny.SeqOf(_13_edk), _9_symmetricSigningKeyList) + if (_14_valueOrError4).IsFailure() { + res = (_14_valueOrError4).PropagateFailure() + return res + } + var _15_result m_AwsCryptographyMaterialProvidersTypes.EncryptionMaterials + _ = _15_result + _15_result = (_14_valueOrError4).Extract().(m_AwsCryptographyMaterialProvidersTypes.EncryptionMaterials) + res = m_Wrappers.Companion_Result_.Create_Success_(m_AwsCryptographyMaterialProvidersTypes.Companion_OnEncryptOutput_.Create_OnEncryptOutput_(_15_result)) + return res + } else if (_7_wrapOutput).Is_WrapOnlyEdkMaterialOutput() { + var _16_valueOrError5 m_Wrappers.Result = m_Wrappers.Result{} + _ = _16_valueOrError5 + _16_valueOrError5 = m_Materials.Companion_Default___.EncryptionMaterialAddEncryptedDataKeys(_0_materials, _dafny.SeqOf(_13_edk), _9_symmetricSigningKeyList) + if (_16_valueOrError5).IsFailure() { + res = (_16_valueOrError5).PropagateFailure() + return res + } + var _17_result m_AwsCryptographyMaterialProvidersTypes.EncryptionMaterials + _ = _17_result + _17_result = (_16_valueOrError5).Extract().(m_AwsCryptographyMaterialProvidersTypes.EncryptionMaterials) + res = m_Wrappers.Companion_Result_.Create_Success_(m_AwsCryptographyMaterialProvidersTypes.Companion_OnEncryptOutput_.Create_OnEncryptOutput_(_17_result)) + return res + } + return res + } +} +func (_this *AwsKmsKeyring) OnDecrypt_k(input m_AwsCryptographyMaterialProvidersTypes.OnDecryptInput) m_Wrappers.Result { + { + var res m_Wrappers.Result = m_Wrappers.Result{} + _ = res + var _0_materials m_AwsCryptographyMaterialProvidersTypes.DecryptionMaterials + _ = _0_materials + _0_materials = (input).Dtor_materials() + var _1_suite m_AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo + _ = _1_suite + _1_suite = ((input).Dtor_materials()).Dtor_algorithmSuite() + var _2_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _2_valueOrError0 + _2_valueOrError0 = m_Wrappers.Companion_Default___.Need(m_Materials.Companion_Default___.DecryptionMaterialsWithoutPlaintextDataKey(_0_materials), m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.SeqOfString("Keyring received decryption materials that already contain a plaintext data key."))) + if (_2_valueOrError0).IsFailure() { + res = (_2_valueOrError0).PropagateFailure() + return res + } + var _3_valueOrError1 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _3_valueOrError1 + _3_valueOrError1 = m_AwsKmsUtils.Companion_Default___.OkForDecrypt((_this).AwsKmsArn(), (_this).AwsKmsKey()) + if (_3_valueOrError1).IsFailure() { + res = (_3_valueOrError1).PropagateFailure() + return res + } + var _4_filter *OnDecryptEncryptedDataKeyFilter + _ = _4_filter + var _nw0 *OnDecryptEncryptedDataKeyFilter = New_OnDecryptEncryptedDataKeyFilter_() + _ = _nw0 + _nw0.Ctor__((_this).AwsKmsKey()) + _4_filter = _nw0 + var _5_valueOrError2 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = _5_valueOrError2 + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_Actions.Companion_Default___.FilterWithResult(_4_filter, (input).Dtor_encryptedDataKeys()) + _5_valueOrError2 = _out0 + if (_5_valueOrError2).IsFailure() { + res = (_5_valueOrError2).PropagateFailure() + return res + } + var _6_edksToAttempt _dafny.Sequence + _ = _6_edksToAttempt + _6_edksToAttempt = (_5_valueOrError2).Extract().(_dafny.Sequence) + if (_dafny.IntOfUint32((_6_edksToAttempt).Cardinality())).Sign() == 0 { + var _7_valueOrError3 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq.SetString()) + _ = _7_valueOrError3 + _7_valueOrError3 = m_ErrorMessages.Companion_Default___.IncorrectDataKeys((input).Dtor_encryptedDataKeys(), ((input).Dtor_materials()).Dtor_algorithmSuite(), _dafny.SeqOfString("")) + if (_7_valueOrError3).IsFailure() { + res = (_7_valueOrError3).PropagateFailure() + return res + } + var _8_errorMessage _dafny.Sequence + _ = _8_errorMessage + _8_errorMessage = (_7_valueOrError3).Extract().(_dafny.Sequence) + res = m_Wrappers.Companion_Result_.Create_Failure_(m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_8_errorMessage)) + return res + } + var _9_decryptClosure m_Actions.ActionWithResult + _ = _9_decryptClosure + var _nw1 *DecryptSingleEncryptedDataKey = New_DecryptSingleEncryptedDataKey_() + _ = _nw1 + _nw1.Ctor__(_0_materials, (_this).Client(), (_this).AwsKmsKey(), (_this).GrantTokens()) + _9_decryptClosure = _nw1 + var _10_outcome m_Wrappers.Result + _ = _10_outcome + var _out1 m_Wrappers.Result + _ = _out1 + _out1 = m_Actions.Companion_Default___.ReduceToSuccess(_9_decryptClosure, _6_edksToAttempt) + _10_outcome = _out1 + var _11_valueOrError4 m_Wrappers.Result = m_Wrappers.Result{} + _ = _11_valueOrError4 + _11_valueOrError4 = (_10_outcome).MapFailure(func(coer53 func(_dafny.Sequence) m_AwsCryptographyMaterialProvidersTypes.Error) func(interface{}) interface{} { + return func(arg54 interface{}) interface{} { + return coer53(arg54.(_dafny.Sequence)) + } + }(func(_12_errors _dafny.Sequence) m_AwsCryptographyMaterialProvidersTypes.Error { + return m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_CollectionOfErrors_(_12_errors, _dafny.SeqOfString("No Configured KMS Key was able to decrypt the Data Key. The list of encountered Exceptions is available via `list`.")) + })) + if (_11_valueOrError4).IsFailure() { + res = (_11_valueOrError4).PropagateFailure() + return res + } + var _13_SealedDecryptionMaterials m_AwsCryptographyMaterialProvidersTypes.DecryptionMaterials + _ = _13_SealedDecryptionMaterials + _13_SealedDecryptionMaterials = (_11_valueOrError4).Extract().(m_AwsCryptographyMaterialProvidersTypes.DecryptionMaterials) + res = m_Wrappers.Companion_Result_.Create_Success_(m_AwsCryptographyMaterialProvidersTypes.Companion_OnDecryptOutput_.Create_OnDecryptOutput_(_13_SealedDecryptionMaterials)) + return res + return res + } +} +func (_this *AwsKmsKeyring) Client() m_ComAmazonawsKmsTypes.IKMSClient { + { + return _this._client + } +} +func (_this *AwsKmsKeyring) AwsKmsKey() _dafny.Sequence { + { + return _this._awsKmsKey + } +} +func (_this *AwsKmsKeyring) GrantTokens() _dafny.Sequence { + { + return _this._grantTokens + } +} +func (_this *AwsKmsKeyring) AwsKmsArn() m_AwsArnParsing.AwsKmsIdentifier { + { + return _this._awsKmsArn + } +} + +// End of class AwsKmsKeyring + +// Definition of class OnDecryptEncryptedDataKeyFilter +type OnDecryptEncryptedDataKeyFilter struct { + _awsKmsKey _dafny.Sequence +} + +func New_OnDecryptEncryptedDataKeyFilter_() *OnDecryptEncryptedDataKeyFilter { + _this := OnDecryptEncryptedDataKeyFilter{} + + _this._awsKmsKey = _dafny.EmptySeq.SetString() + return &_this +} + +type CompanionStruct_OnDecryptEncryptedDataKeyFilter_ struct { +} + +var Companion_OnDecryptEncryptedDataKeyFilter_ = CompanionStruct_OnDecryptEncryptedDataKeyFilter_{} + +func (_this *OnDecryptEncryptedDataKeyFilter) Equals(other *OnDecryptEncryptedDataKeyFilter) bool { + return _this == other +} + +func (_this *OnDecryptEncryptedDataKeyFilter) EqualsGeneric(x interface{}) bool { + other, ok := x.(*OnDecryptEncryptedDataKeyFilter) + return ok && _this.Equals(other) +} + +func (*OnDecryptEncryptedDataKeyFilter) String() string { + return "AwsKmsKeyring.OnDecryptEncryptedDataKeyFilter" +} + +func Type_OnDecryptEncryptedDataKeyFilter_() _dafny.TypeDescriptor { + return type_OnDecryptEncryptedDataKeyFilter_{} +} + +type type_OnDecryptEncryptedDataKeyFilter_ struct { +} + +func (_this type_OnDecryptEncryptedDataKeyFilter_) Default() interface{} { + return (*OnDecryptEncryptedDataKeyFilter)(nil) +} + +func (_this type_OnDecryptEncryptedDataKeyFilter_) String() string { + return "AwsKmsKeyring.OnDecryptEncryptedDataKeyFilter" +} +func (_this *OnDecryptEncryptedDataKeyFilter) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){m_Actions.Companion_DeterministicActionWithResult_.TraitID_, m_Actions.Companion_DeterministicAction_.TraitID_} +} + +var _ m_Actions.DeterministicActionWithResult = &OnDecryptEncryptedDataKeyFilter{} +var _ m_Actions.DeterministicAction = &OnDecryptEncryptedDataKeyFilter{} +var _ _dafny.TraitOffspring = &OnDecryptEncryptedDataKeyFilter{} + +func (_this *OnDecryptEncryptedDataKeyFilter) Ctor__(awsKmsKey _dafny.Sequence) { + { + (_this)._awsKmsKey = awsKmsKey + } +} +func (_this *OnDecryptEncryptedDataKeyFilter) Invoke(edk interface{}) interface{} { + { + var edk m_AwsCryptographyMaterialProvidersTypes.EncryptedDataKey = edk.(m_AwsCryptographyMaterialProvidersTypes.EncryptedDataKey) + _ = edk + var res m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(false) + _ = res + if !_dafny.Companion_Sequence_.Equal((edk).Dtor_keyProviderId(), m_Constants.Companion_Default___.PROVIDER__ID()) { + res = m_Wrappers.Companion_Result_.Create_Success_(false) + return res + } + if !(m_UTF8.Companion_Default___.ValidUTF8Seq((edk).Dtor_keyProviderInfo())) { + res = m_Wrappers.Companion_Result_.Create_Failure_(m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.SeqOfString("Invalid AWS KMS encoding, provider info is not UTF8."))) + return res + } + var _0_valueOrError0 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq.SetString()) + _ = _0_valueOrError0 + _0_valueOrError0 = (m_UTF8.Decode((edk).Dtor_keyProviderInfo())).MapFailure(func(coer54 func(_dafny.Sequence) m_AwsCryptographyMaterialProvidersTypes.Error) func(interface{}) interface{} { + return func(arg55 interface{}) interface{} { + return coer54(arg55.(_dafny.Sequence)) + } + }(m_AwsKmsUtils.Companion_Default___.WrapStringToError)) + if (_0_valueOrError0).IsFailure() { + res = (_0_valueOrError0).PropagateFailure() + return res + } + var _1_keyId _dafny.Sequence + _ = _1_keyId + _1_keyId = (_0_valueOrError0).Extract().(_dafny.Sequence) + var _2_valueOrError1 m_Wrappers.Result = m_Wrappers.Result{} + _ = _2_valueOrError1 + _2_valueOrError1 = (m_AwsArnParsing.Companion_Default___.ParseAwsKmsArn(_1_keyId)).MapFailure(func(coer55 func(_dafny.Sequence) m_AwsCryptographyMaterialProvidersTypes.Error) func(interface{}) interface{} { + return func(arg56 interface{}) interface{} { + return coer55(arg56.(_dafny.Sequence)) + } + }(m_AwsKmsUtils.Companion_Default___.WrapStringToError)) + if (_2_valueOrError1).IsFailure() { + res = (_2_valueOrError1).PropagateFailure() + return res + } + var _3___v0 m_AwsArnParsing.AwsArn + _ = _3___v0 + _3___v0 = (_2_valueOrError1).Extract().(m_AwsArnParsing.AwsArn) + res = m_Wrappers.Companion_Result_.Create_Success_(_dafny.Companion_Sequence_.Equal((_this).AwsKmsKey(), _1_keyId)) + return res + return res + } +} +func (_this *OnDecryptEncryptedDataKeyFilter) AwsKmsKey() _dafny.Sequence { + { + return _this._awsKmsKey + } +} + +// End of class OnDecryptEncryptedDataKeyFilter + +// Definition of class DecryptSingleEncryptedDataKey +type DecryptSingleEncryptedDataKey struct { + _materials m_AwsCryptographyMaterialProvidersTypes.DecryptionMaterials + _client m_ComAmazonawsKmsTypes.IKMSClient + _awsKmsKey _dafny.Sequence + _grantTokens _dafny.Sequence +} + +func New_DecryptSingleEncryptedDataKey_() *DecryptSingleEncryptedDataKey { + _this := DecryptSingleEncryptedDataKey{} + + _this._materials = m_AwsCryptographyMaterialProvidersTypes.DecryptionMaterials{} + _this._client = (m_ComAmazonawsKmsTypes.IKMSClient)(nil) + _this._awsKmsKey = _dafny.EmptySeq.SetString() + _this._grantTokens = _dafny.EmptySeq + return &_this +} + +type CompanionStruct_DecryptSingleEncryptedDataKey_ struct { +} + +var Companion_DecryptSingleEncryptedDataKey_ = CompanionStruct_DecryptSingleEncryptedDataKey_{} + +func (_this *DecryptSingleEncryptedDataKey) Equals(other *DecryptSingleEncryptedDataKey) bool { + return _this == other +} + +func (_this *DecryptSingleEncryptedDataKey) EqualsGeneric(x interface{}) bool { + other, ok := x.(*DecryptSingleEncryptedDataKey) + return ok && _this.Equals(other) +} + +func (*DecryptSingleEncryptedDataKey) String() string { + return "AwsKmsKeyring.DecryptSingleEncryptedDataKey" +} + +func Type_DecryptSingleEncryptedDataKey_() _dafny.TypeDescriptor { + return type_DecryptSingleEncryptedDataKey_{} +} + +type type_DecryptSingleEncryptedDataKey_ struct { +} + +func (_this type_DecryptSingleEncryptedDataKey_) Default() interface{} { + return (*DecryptSingleEncryptedDataKey)(nil) +} + +func (_this type_DecryptSingleEncryptedDataKey_) String() string { + return "AwsKmsKeyring.DecryptSingleEncryptedDataKey" +} +func (_this *DecryptSingleEncryptedDataKey) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){m_Actions.Companion_ActionWithResult_.TraitID_, m_Actions.Companion_Action_.TraitID_} +} + +var _ m_Actions.ActionWithResult = &DecryptSingleEncryptedDataKey{} +var _ m_Actions.Action = &DecryptSingleEncryptedDataKey{} +var _ _dafny.TraitOffspring = &DecryptSingleEncryptedDataKey{} + +func (_this *DecryptSingleEncryptedDataKey) Ctor__(materials m_AwsCryptographyMaterialProvidersTypes.DecryptionMaterials, client m_ComAmazonawsKmsTypes.IKMSClient, awsKmsKey _dafny.Sequence, grantTokens _dafny.Sequence) { + { + (_this)._materials = materials + (_this)._client = client + (_this)._awsKmsKey = awsKmsKey + (_this)._grantTokens = grantTokens + } +} +func (_this *DecryptSingleEncryptedDataKey) Invoke(edk interface{}) interface{} { + { + var edk m_AwsCryptographyMaterialProvidersTypes.EncryptedDataKey = edk.(m_AwsCryptographyMaterialProvidersTypes.EncryptedDataKey) + _ = edk + var res m_Wrappers.Result = m_Wrappers.Result{} + _ = res + var _0_kmsUnwrap *KmsUnwrapKeyMaterial + _ = _0_kmsUnwrap + var _nw0 *KmsUnwrapKeyMaterial = New_KmsUnwrapKeyMaterial_() + _ = _nw0 + _nw0.Ctor__((_this).Client(), (_this).AwsKmsKey(), (_this).GrantTokens()) + _0_kmsUnwrap = _nw0 + var _1_unwrapOutputRes m_Wrappers.Result + _ = _1_unwrapOutputRes + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_EdkWrapping.Companion_Default___.UnwrapEdkMaterial((edk).Dtor_ciphertext(), (_this).Materials(), _0_kmsUnwrap) + _1_unwrapOutputRes = _out0 + var _2_valueOrError0 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_EdkWrapping.Companion_UnwrapEdkMaterialOutput_.Default(Companion_KmsUnwrapInfo_.Default())) + _ = _2_valueOrError0 + _2_valueOrError0 = _1_unwrapOutputRes + if (_2_valueOrError0).IsFailure() { + res = (_2_valueOrError0).PropagateFailure() + return res + } + var _3_unwrapOutput m_EdkWrapping.UnwrapEdkMaterialOutput + _ = _3_unwrapOutput + _3_unwrapOutput = (_2_valueOrError0).Extract().(m_EdkWrapping.UnwrapEdkMaterialOutput) + var _4_valueOrError1 m_Wrappers.Result = m_Wrappers.Result{} + _ = _4_valueOrError1 + _4_valueOrError1 = m_Materials.Companion_Default___.DecryptionMaterialsAddDataKey((_this).Materials(), (_3_unwrapOutput).Dtor_plaintextDataKey(), (_3_unwrapOutput).Dtor_symmetricSigningKey()) + if (_4_valueOrError1).IsFailure() { + res = (_4_valueOrError1).PropagateFailure() + return res + } + var _5_result m_AwsCryptographyMaterialProvidersTypes.DecryptionMaterials + _ = _5_result + _5_result = (_4_valueOrError1).Extract().(m_AwsCryptographyMaterialProvidersTypes.DecryptionMaterials) + res = m_Wrappers.Companion_Result_.Create_Success_(_5_result) + return res + return res + } +} +func (_this *DecryptSingleEncryptedDataKey) Materials() m_AwsCryptographyMaterialProvidersTypes.DecryptionMaterials { + { + return _this._materials + } +} +func (_this *DecryptSingleEncryptedDataKey) Client() m_ComAmazonawsKmsTypes.IKMSClient { + { + return _this._client + } +} +func (_this *DecryptSingleEncryptedDataKey) AwsKmsKey() _dafny.Sequence { + { + return _this._awsKmsKey + } +} +func (_this *DecryptSingleEncryptedDataKey) GrantTokens() _dafny.Sequence { + { + return _this._grantTokens + } +} + +// End of class DecryptSingleEncryptedDataKey + +// Definition of datatype KmsUnwrapInfo +type KmsUnwrapInfo struct { + Data_KmsUnwrapInfo_ +} + +func (_this KmsUnwrapInfo) Get_() Data_KmsUnwrapInfo_ { + return _this.Data_KmsUnwrapInfo_ +} + +type Data_KmsUnwrapInfo_ interface { + isKmsUnwrapInfo() +} + +type CompanionStruct_KmsUnwrapInfo_ struct { +} + +var Companion_KmsUnwrapInfo_ = CompanionStruct_KmsUnwrapInfo_{} + +type KmsUnwrapInfo_KmsUnwrapInfo struct { +} + +func (KmsUnwrapInfo_KmsUnwrapInfo) isKmsUnwrapInfo() {} + +func (CompanionStruct_KmsUnwrapInfo_) Create_KmsUnwrapInfo_() KmsUnwrapInfo { + return KmsUnwrapInfo{KmsUnwrapInfo_KmsUnwrapInfo{}} +} + +func (_this KmsUnwrapInfo) Is_KmsUnwrapInfo() bool { + _, ok := _this.Get_().(KmsUnwrapInfo_KmsUnwrapInfo) + return ok +} + +func (CompanionStruct_KmsUnwrapInfo_) Default() KmsUnwrapInfo { + return Companion_KmsUnwrapInfo_.Create_KmsUnwrapInfo_() +} + +func (_ CompanionStruct_KmsUnwrapInfo_) AllSingletonConstructors() _dafny.Iterator { + i := -1 + return func() (interface{}, bool) { + i++ + switch i { + case 0: + return Companion_KmsUnwrapInfo_.Create_KmsUnwrapInfo_(), true + default: + return KmsUnwrapInfo{}, false + } + } +} + +func (_this KmsUnwrapInfo) String() string { + switch _this.Get_().(type) { + case nil: + return "null" + case KmsUnwrapInfo_KmsUnwrapInfo: + { + return "AwsKmsKeyring.KmsUnwrapInfo.KmsUnwrapInfo" + } + default: + { + return "" + } + } +} + +func (_this KmsUnwrapInfo) Equals(other KmsUnwrapInfo) bool { + switch _this.Get_().(type) { + case KmsUnwrapInfo_KmsUnwrapInfo: + { + _, ok := other.Get_().(KmsUnwrapInfo_KmsUnwrapInfo) + return ok + } + default: + { + return false // unexpected + } + } +} + +func (_this KmsUnwrapInfo) EqualsGeneric(other interface{}) bool { + typed, ok := other.(KmsUnwrapInfo) + return ok && _this.Equals(typed) +} + +func Type_KmsUnwrapInfo_() _dafny.TypeDescriptor { + return type_KmsUnwrapInfo_{} +} + +type type_KmsUnwrapInfo_ struct { +} + +func (_this type_KmsUnwrapInfo_) Default() interface{} { + return Companion_KmsUnwrapInfo_.Default() +} + +func (_this type_KmsUnwrapInfo_) String() string { + return "AwsKmsKeyring.KmsUnwrapInfo" +} +func (_this KmsUnwrapInfo) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = KmsUnwrapInfo{} + +// End of datatype KmsUnwrapInfo + +// Definition of datatype KmsWrapInfo +type KmsWrapInfo struct { + Data_KmsWrapInfo_ +} + +func (_this KmsWrapInfo) Get_() Data_KmsWrapInfo_ { + return _this.Data_KmsWrapInfo_ +} + +type Data_KmsWrapInfo_ interface { + isKmsWrapInfo() +} + +type CompanionStruct_KmsWrapInfo_ struct { +} + +var Companion_KmsWrapInfo_ = CompanionStruct_KmsWrapInfo_{} + +type KmsWrapInfo_KmsWrapInfo struct { + KmsKeyArn _dafny.Sequence +} + +func (KmsWrapInfo_KmsWrapInfo) isKmsWrapInfo() {} + +func (CompanionStruct_KmsWrapInfo_) Create_KmsWrapInfo_(KmsKeyArn _dafny.Sequence) KmsWrapInfo { + return KmsWrapInfo{KmsWrapInfo_KmsWrapInfo{KmsKeyArn}} +} + +func (_this KmsWrapInfo) Is_KmsWrapInfo() bool { + _, ok := _this.Get_().(KmsWrapInfo_KmsWrapInfo) + return ok +} + +func (CompanionStruct_KmsWrapInfo_) Default() KmsWrapInfo { + return Companion_KmsWrapInfo_.Create_KmsWrapInfo_(_dafny.EmptySeq.SetString()) +} + +func (_this KmsWrapInfo) Dtor_kmsKeyArn() _dafny.Sequence { + return _this.Get_().(KmsWrapInfo_KmsWrapInfo).KmsKeyArn +} + +func (_this KmsWrapInfo) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case KmsWrapInfo_KmsWrapInfo: + { + return "AwsKmsKeyring.KmsWrapInfo.KmsWrapInfo" + "(" + _dafny.String(data.KmsKeyArn) + ")" + } + default: + { + return "" + } + } +} + +func (_this KmsWrapInfo) Equals(other KmsWrapInfo) bool { + switch data1 := _this.Get_().(type) { + case KmsWrapInfo_KmsWrapInfo: + { + data2, ok := other.Get_().(KmsWrapInfo_KmsWrapInfo) + return ok && data1.KmsKeyArn.Equals(data2.KmsKeyArn) + } + default: + { + return false // unexpected + } + } +} + +func (_this KmsWrapInfo) EqualsGeneric(other interface{}) bool { + typed, ok := other.(KmsWrapInfo) + return ok && _this.Equals(typed) +} + +func Type_KmsWrapInfo_() _dafny.TypeDescriptor { + return type_KmsWrapInfo_{} +} + +type type_KmsWrapInfo_ struct { +} + +func (_this type_KmsWrapInfo_) Default() interface{} { + return Companion_KmsWrapInfo_.Default() +} + +func (_this type_KmsWrapInfo_) String() string { + return "AwsKmsKeyring.KmsWrapInfo" +} +func (_this KmsWrapInfo) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = KmsWrapInfo{} + +// End of datatype KmsWrapInfo + +// Definition of class KmsUnwrapKeyMaterial +type KmsUnwrapKeyMaterial struct { + _client m_ComAmazonawsKmsTypes.IKMSClient + _grantTokens _dafny.Sequence + _awsKmsKey _dafny.Sequence +} + +func New_KmsUnwrapKeyMaterial_() *KmsUnwrapKeyMaterial { + _this := KmsUnwrapKeyMaterial{} + + _this._client = (m_ComAmazonawsKmsTypes.IKMSClient)(nil) + _this._grantTokens = _dafny.EmptySeq + _this._awsKmsKey = _dafny.EmptySeq.SetString() + return &_this +} + +type CompanionStruct_KmsUnwrapKeyMaterial_ struct { +} + +var Companion_KmsUnwrapKeyMaterial_ = CompanionStruct_KmsUnwrapKeyMaterial_{} + +func (_this *KmsUnwrapKeyMaterial) Equals(other *KmsUnwrapKeyMaterial) bool { + return _this == other +} + +func (_this *KmsUnwrapKeyMaterial) EqualsGeneric(x interface{}) bool { + other, ok := x.(*KmsUnwrapKeyMaterial) + return ok && _this.Equals(other) +} + +func (*KmsUnwrapKeyMaterial) String() string { + return "AwsKmsKeyring.KmsUnwrapKeyMaterial" +} + +func Type_KmsUnwrapKeyMaterial_() _dafny.TypeDescriptor { + return type_KmsUnwrapKeyMaterial_{} +} + +type type_KmsUnwrapKeyMaterial_ struct { +} + +func (_this type_KmsUnwrapKeyMaterial_) Default() interface{} { + return (*KmsUnwrapKeyMaterial)(nil) +} + +func (_this type_KmsUnwrapKeyMaterial_) String() string { + return "AwsKmsKeyring.KmsUnwrapKeyMaterial" +} +func (_this *KmsUnwrapKeyMaterial) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){m_MaterialWrapping.Companion_UnwrapMaterial_.TraitID_, m_Actions.Companion_ActionWithResult_.TraitID_, m_Actions.Companion_Action_.TraitID_} +} + +var _ m_MaterialWrapping.UnwrapMaterial = &KmsUnwrapKeyMaterial{} +var _ m_Actions.ActionWithResult = &KmsUnwrapKeyMaterial{} +var _ m_Actions.Action = &KmsUnwrapKeyMaterial{} +var _ _dafny.TraitOffspring = &KmsUnwrapKeyMaterial{} + +func (_this *KmsUnwrapKeyMaterial) Ctor__(client m_ComAmazonawsKmsTypes.IKMSClient, awsKmsKey _dafny.Sequence, grantTokens _dafny.Sequence) { + { + (_this)._client = client + (_this)._awsKmsKey = awsKmsKey + (_this)._grantTokens = grantTokens + } +} +func (_this *KmsUnwrapKeyMaterial) Invoke(input interface{}) interface{} { + { + var input m_MaterialWrapping.UnwrapInput = input.(m_MaterialWrapping.UnwrapInput) + _ = input + var res m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_MaterialWrapping.Companion_UnwrapOutput_.Default(Companion_KmsUnwrapInfo_.Default())) + _ = res + var _0_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _0_valueOrError0 + _0_valueOrError0 = m_Wrappers.Companion_Default___.Need(m_ComAmazonawsKmsTypes.Companion_Default___.IsValid__CiphertextType((input).Dtor_wrappedMaterial()), m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.SeqOfString("Ciphertext length invalid"))) + if (_0_valueOrError0).IsFailure() { + res = (_0_valueOrError0).PropagateFailure() + return res + } + var _1_valueOrError1 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptyMap) + _ = _1_valueOrError1 + _1_valueOrError1 = m_AwsKmsUtils.Companion_Default___.StringifyEncryptionContext((input).Dtor_encryptionContext()) + if (_1_valueOrError1).IsFailure() { + res = (_1_valueOrError1).PropagateFailure() + return res + } + var _2_stringifiedEncCtx _dafny.Map + _ = _2_stringifiedEncCtx + _2_stringifiedEncCtx = (_1_valueOrError1).Extract().(_dafny.Map) + var _3_decryptRequest m_ComAmazonawsKmsTypes.DecryptRequest + _ = _3_decryptRequest + _3_decryptRequest = m_ComAmazonawsKmsTypes.Companion_DecryptRequest_.Create_DecryptRequest_((input).Dtor_wrappedMaterial(), m_Wrappers.Companion_Option_.Create_Some_(_2_stringifiedEncCtx), m_Wrappers.Companion_Option_.Create_Some_((_this).GrantTokens()), m_Wrappers.Companion_Option_.Create_Some_((_this).AwsKmsKey()), m_Wrappers.Companion_Option_.Create_None_(), m_Wrappers.Companion_Option_.Create_None_(), m_Wrappers.Companion_Option_.Create_None_()) + var _4_maybeDecryptResponse m_Wrappers.Result + _ = _4_maybeDecryptResponse + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = ((_this).Client()).Decrypt(_3_decryptRequest) + _4_maybeDecryptResponse = _out0 + var _5_valueOrError2 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_ComAmazonawsKmsTypes.Companion_DecryptResponse_.Default()) + _ = _5_valueOrError2 + _5_valueOrError2 = (_4_maybeDecryptResponse).MapFailure(func(coer56 func(m_ComAmazonawsKmsTypes.Error) m_AwsCryptographyMaterialProvidersTypes.Error) func(interface{}) interface{} { + return func(arg57 interface{}) interface{} { + return coer56(arg57.(m_ComAmazonawsKmsTypes.Error)) + } + }(func(_6_e m_ComAmazonawsKmsTypes.Error) m_AwsCryptographyMaterialProvidersTypes.Error { + return m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_ComAmazonawsKms_(_6_e) + })) + if (_5_valueOrError2).IsFailure() { + res = (_5_valueOrError2).PropagateFailure() + return res + } + var _7_decryptResponse m_ComAmazonawsKmsTypes.DecryptResponse + _ = _7_decryptResponse + _7_decryptResponse = (_5_valueOrError2).Extract().(m_ComAmazonawsKmsTypes.DecryptResponse) + var _8_valueOrError3 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _8_valueOrError3 + _8_valueOrError3 = m_Wrappers.Companion_Default___.Need((((((_7_decryptResponse).Dtor_KeyId()).Is_Some()) && (_dafny.Companion_Sequence_.Equal(((_7_decryptResponse).Dtor_KeyId()).Dtor_value().(_dafny.Sequence), (_this).AwsKmsKey()))) && (((_7_decryptResponse).Dtor_Plaintext()).Is_Some())) && ((_dafny.IntOfInt32(m_AlgorithmSuites.Companion_Default___.GetEncryptKeyLength((input).Dtor_algorithmSuite()))).Cmp(_dafny.IntOfUint32((((_7_decryptResponse).Dtor_Plaintext()).Dtor_value().(_dafny.Sequence)).Cardinality())) == 0), m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.SeqOfString("Invalid response from KMS Decrypt"))) + if (_8_valueOrError3).IsFailure() { + res = (_8_valueOrError3).PropagateFailure() + return res + } + var _9_output m_MaterialWrapping.UnwrapOutput + _ = _9_output + _9_output = m_MaterialWrapping.Companion_UnwrapOutput_.Create_UnwrapOutput_(((_7_decryptResponse).Dtor_Plaintext()).Dtor_value().(_dafny.Sequence), Companion_KmsUnwrapInfo_.Create_KmsUnwrapInfo_()) + res = m_Wrappers.Companion_Result_.Create_Success_(_9_output) + return res + return res + } +} +func (_this *KmsUnwrapKeyMaterial) Client() m_ComAmazonawsKmsTypes.IKMSClient { + { + return _this._client + } +} +func (_this *KmsUnwrapKeyMaterial) GrantTokens() _dafny.Sequence { + { + return _this._grantTokens + } +} +func (_this *KmsUnwrapKeyMaterial) AwsKmsKey() _dafny.Sequence { + { + return _this._awsKmsKey + } +} + +// End of class KmsUnwrapKeyMaterial + +// Definition of class KmsGenerateAndWrapKeyMaterial +type KmsGenerateAndWrapKeyMaterial struct { + _client m_ComAmazonawsKmsTypes.IKMSClient + _awsKmsKey _dafny.Sequence + _grantTokens _dafny.Sequence +} + +func New_KmsGenerateAndWrapKeyMaterial_() *KmsGenerateAndWrapKeyMaterial { + _this := KmsGenerateAndWrapKeyMaterial{} + + _this._client = (m_ComAmazonawsKmsTypes.IKMSClient)(nil) + _this._awsKmsKey = _dafny.EmptySeq.SetString() + _this._grantTokens = _dafny.EmptySeq + return &_this +} + +type CompanionStruct_KmsGenerateAndWrapKeyMaterial_ struct { +} + +var Companion_KmsGenerateAndWrapKeyMaterial_ = CompanionStruct_KmsGenerateAndWrapKeyMaterial_{} + +func (_this *KmsGenerateAndWrapKeyMaterial) Equals(other *KmsGenerateAndWrapKeyMaterial) bool { + return _this == other +} + +func (_this *KmsGenerateAndWrapKeyMaterial) EqualsGeneric(x interface{}) bool { + other, ok := x.(*KmsGenerateAndWrapKeyMaterial) + return ok && _this.Equals(other) +} + +func (*KmsGenerateAndWrapKeyMaterial) String() string { + return "AwsKmsKeyring.KmsGenerateAndWrapKeyMaterial" +} + +func Type_KmsGenerateAndWrapKeyMaterial_() _dafny.TypeDescriptor { + return type_KmsGenerateAndWrapKeyMaterial_{} +} + +type type_KmsGenerateAndWrapKeyMaterial_ struct { +} + +func (_this type_KmsGenerateAndWrapKeyMaterial_) Default() interface{} { + return (*KmsGenerateAndWrapKeyMaterial)(nil) +} + +func (_this type_KmsGenerateAndWrapKeyMaterial_) String() string { + return "AwsKmsKeyring.KmsGenerateAndWrapKeyMaterial" +} +func (_this *KmsGenerateAndWrapKeyMaterial) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){m_MaterialWrapping.Companion_GenerateAndWrapMaterial_.TraitID_, m_Actions.Companion_ActionWithResult_.TraitID_, m_Actions.Companion_Action_.TraitID_} +} + +var _ m_MaterialWrapping.GenerateAndWrapMaterial = &KmsGenerateAndWrapKeyMaterial{} +var _ m_Actions.ActionWithResult = &KmsGenerateAndWrapKeyMaterial{} +var _ m_Actions.Action = &KmsGenerateAndWrapKeyMaterial{} +var _ _dafny.TraitOffspring = &KmsGenerateAndWrapKeyMaterial{} + +func (_this *KmsGenerateAndWrapKeyMaterial) Ctor__(client m_ComAmazonawsKmsTypes.IKMSClient, awsKmsKey _dafny.Sequence, grantTokens _dafny.Sequence) { + { + (_this)._client = client + (_this)._awsKmsKey = awsKmsKey + (_this)._grantTokens = grantTokens + } +} +func (_this *KmsGenerateAndWrapKeyMaterial) Invoke(input interface{}) interface{} { + { + var input m_MaterialWrapping.GenerateAndWrapInput = input.(m_MaterialWrapping.GenerateAndWrapInput) + _ = input + var res m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_MaterialWrapping.Companion_GenerateAndWrapOutput_.Default(Companion_KmsWrapInfo_.Default())) + _ = res + var _0_suite m_AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo + _ = _0_suite + _0_suite = (input).Dtor_algorithmSuite() + var _1_valueOrError0 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptyMap) + _ = _1_valueOrError0 + _1_valueOrError0 = m_AwsKmsUtils.Companion_Default___.StringifyEncryptionContext((input).Dtor_encryptionContext()) + if (_1_valueOrError0).IsFailure() { + res = (_1_valueOrError0).PropagateFailure() + return res + } + var _2_stringifiedEncCtx _dafny.Map + _ = _2_stringifiedEncCtx + _2_stringifiedEncCtx = (_1_valueOrError0).Extract().(_dafny.Map) + var _3_generatorRequest m_ComAmazonawsKmsTypes.GenerateDataKeyRequest + _ = _3_generatorRequest + _3_generatorRequest = m_ComAmazonawsKmsTypes.Companion_GenerateDataKeyRequest_.Create_GenerateDataKeyRequest_((_this).AwsKmsKey(), m_Wrappers.Companion_Option_.Create_Some_(_2_stringifiedEncCtx), m_Wrappers.Companion_Option_.Create_Some_(m_AlgorithmSuites.Companion_Default___.GetEncryptKeyLength(_0_suite)), m_Wrappers.Companion_Option_.Create_None_(), m_Wrappers.Companion_Option_.Create_Some_((_this).GrantTokens()), m_Wrappers.Companion_Option_.Create_None_(), m_Wrappers.Companion_Option_.Create_None_()) + var _4_maybeGenerateResponse m_Wrappers.Result + _ = _4_maybeGenerateResponse + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = ((_this).Client()).GenerateDataKey(_3_generatorRequest) + _4_maybeGenerateResponse = _out0 + var _5_valueOrError1 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_ComAmazonawsKmsTypes.Companion_GenerateDataKeyResponse_.Default()) + _ = _5_valueOrError1 + _5_valueOrError1 = (_4_maybeGenerateResponse).MapFailure(func(coer57 func(m_ComAmazonawsKmsTypes.Error) m_AwsCryptographyMaterialProvidersTypes.Error) func(interface{}) interface{} { + return func(arg58 interface{}) interface{} { + return coer57(arg58.(m_ComAmazonawsKmsTypes.Error)) + } + }(func(_6_e m_ComAmazonawsKmsTypes.Error) m_AwsCryptographyMaterialProvidersTypes.Error { + return m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_ComAmazonawsKms_(_6_e) + })) + if (_5_valueOrError1).IsFailure() { + res = (_5_valueOrError1).PropagateFailure() + return res + } + var _7_generateResponse m_ComAmazonawsKmsTypes.GenerateDataKeyResponse + _ = _7_generateResponse + _7_generateResponse = (_5_valueOrError1).Extract().(m_ComAmazonawsKmsTypes.GenerateDataKeyResponse) + var _8_valueOrError2 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _8_valueOrError2 + _8_valueOrError2 = m_Wrappers.Companion_Default___.Need((((_7_generateResponse).Dtor_KeyId()).Is_Some()) && ((m_AwsArnParsing.Companion_Default___.ParseAwsKmsIdentifier(((_7_generateResponse).Dtor_KeyId()).Dtor_value().(_dafny.Sequence))).Is_Success()), m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.SeqOfString("Invalid response from KMS GenerateDataKey:: Invalid Key Id"))) + if (_8_valueOrError2).IsFailure() { + res = (_8_valueOrError2).PropagateFailure() + return res + } + var _9_valueOrError3 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _9_valueOrError3 + _9_valueOrError3 = m_Wrappers.Companion_Default___.Need((((_7_generateResponse).Dtor_Plaintext()).Is_Some()) && ((_dafny.IntOfInt32(m_AlgorithmSuites.Companion_Default___.GetEncryptKeyLength(_0_suite))).Cmp(_dafny.IntOfUint32((((_7_generateResponse).Dtor_Plaintext()).Dtor_value().(_dafny.Sequence)).Cardinality())) == 0), m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.SeqOfString("Invalid response from AWS KMS GenerateDataKey: Invalid data key"))) + if (_9_valueOrError3).IsFailure() { + res = (_9_valueOrError3).PropagateFailure() + return res + } + var _10_valueOrError4 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _10_valueOrError4 + _10_valueOrError4 = m_Wrappers.Companion_Default___.Need((((_7_generateResponse).Dtor_CiphertextBlob()).Is_Some()) && (m_ComAmazonawsKmsTypes.Companion_Default___.IsValid__CiphertextType(((_7_generateResponse).Dtor_CiphertextBlob()).Dtor_value().(_dafny.Sequence))), m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.SeqOfString("Invalid response from AWS KMS GeneratedDataKey: Invalid ciphertext"))) + if (_10_valueOrError4).IsFailure() { + res = (_10_valueOrError4).PropagateFailure() + return res + } + var _11_valueOrError5 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _11_valueOrError5 + _11_valueOrError5 = m_Wrappers.Companion_Default___.Need((true) && (((_7_generateResponse).Dtor_CiphertextForRecipient()).Is_None()), m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.SeqOfString("Invalid response from AWS KMS GeneratedDataKey: Invalid CiphertextForRecipient"))) + if (_11_valueOrError5).IsFailure() { + res = (_11_valueOrError5).PropagateFailure() + return res + } + var _12_output m_MaterialWrapping.GenerateAndWrapOutput + _ = _12_output + _12_output = m_MaterialWrapping.Companion_GenerateAndWrapOutput_.Create_GenerateAndWrapOutput_(((_7_generateResponse).Dtor_Plaintext()).Dtor_value().(_dafny.Sequence), ((_7_generateResponse).Dtor_CiphertextBlob()).Dtor_value().(_dafny.Sequence), Companion_KmsWrapInfo_.Create_KmsWrapInfo_(((_7_generateResponse).Dtor_KeyId()).Dtor_value().(_dafny.Sequence))) + res = m_Wrappers.Companion_Result_.Create_Success_(_12_output) + return res + return res + } +} +func (_this *KmsGenerateAndWrapKeyMaterial) Client() m_ComAmazonawsKmsTypes.IKMSClient { + { + return _this._client + } +} +func (_this *KmsGenerateAndWrapKeyMaterial) AwsKmsKey() _dafny.Sequence { + { + return _this._awsKmsKey + } +} +func (_this *KmsGenerateAndWrapKeyMaterial) GrantTokens() _dafny.Sequence { + { + return _this._grantTokens + } +} + +// End of class KmsGenerateAndWrapKeyMaterial + +// Definition of class KmsWrapKeyMaterial +type KmsWrapKeyMaterial struct { + _client m_ComAmazonawsKmsTypes.IKMSClient + _awsKmsKey _dafny.Sequence + _grantTokens _dafny.Sequence +} + +func New_KmsWrapKeyMaterial_() *KmsWrapKeyMaterial { + _this := KmsWrapKeyMaterial{} + + _this._client = (m_ComAmazonawsKmsTypes.IKMSClient)(nil) + _this._awsKmsKey = _dafny.EmptySeq.SetString() + _this._grantTokens = _dafny.EmptySeq + return &_this +} + +type CompanionStruct_KmsWrapKeyMaterial_ struct { +} + +var Companion_KmsWrapKeyMaterial_ = CompanionStruct_KmsWrapKeyMaterial_{} + +func (_this *KmsWrapKeyMaterial) Equals(other *KmsWrapKeyMaterial) bool { + return _this == other +} + +func (_this *KmsWrapKeyMaterial) EqualsGeneric(x interface{}) bool { + other, ok := x.(*KmsWrapKeyMaterial) + return ok && _this.Equals(other) +} + +func (*KmsWrapKeyMaterial) String() string { + return "AwsKmsKeyring.KmsWrapKeyMaterial" +} + +func Type_KmsWrapKeyMaterial_() _dafny.TypeDescriptor { + return type_KmsWrapKeyMaterial_{} +} + +type type_KmsWrapKeyMaterial_ struct { +} + +func (_this type_KmsWrapKeyMaterial_) Default() interface{} { + return (*KmsWrapKeyMaterial)(nil) +} + +func (_this type_KmsWrapKeyMaterial_) String() string { + return "AwsKmsKeyring.KmsWrapKeyMaterial" +} +func (_this *KmsWrapKeyMaterial) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){m_MaterialWrapping.Companion_WrapMaterial_.TraitID_, m_Actions.Companion_ActionWithResult_.TraitID_, m_Actions.Companion_Action_.TraitID_} +} + +var _ m_MaterialWrapping.WrapMaterial = &KmsWrapKeyMaterial{} +var _ m_Actions.ActionWithResult = &KmsWrapKeyMaterial{} +var _ m_Actions.Action = &KmsWrapKeyMaterial{} +var _ _dafny.TraitOffspring = &KmsWrapKeyMaterial{} + +func (_this *KmsWrapKeyMaterial) Ctor__(client m_ComAmazonawsKmsTypes.IKMSClient, awsKmsKey _dafny.Sequence, grantTokens _dafny.Sequence) { + { + (_this)._client = client + (_this)._awsKmsKey = awsKmsKey + (_this)._grantTokens = grantTokens + } +} +func (_this *KmsWrapKeyMaterial) Invoke(input interface{}) interface{} { + { + var input m_MaterialWrapping.WrapInput = input.(m_MaterialWrapping.WrapInput) + _ = input + var res m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_MaterialWrapping.Companion_WrapOutput_.Default(Companion_KmsWrapInfo_.Default())) + _ = res + var _0_suite m_AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo + _ = _0_suite + _0_suite = (input).Dtor_algorithmSuite() + var _1_valueOrError0 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptyMap) + _ = _1_valueOrError0 + _1_valueOrError0 = m_AwsKmsUtils.Companion_Default___.StringifyEncryptionContext((input).Dtor_encryptionContext()) + if (_1_valueOrError0).IsFailure() { + res = (_1_valueOrError0).PropagateFailure() + return res + } + var _2_stringifiedEncCtx _dafny.Map + _ = _2_stringifiedEncCtx + _2_stringifiedEncCtx = (_1_valueOrError0).Extract().(_dafny.Map) + var _3_valueOrError1 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _3_valueOrError1 + _3_valueOrError1 = m_Wrappers.Companion_Default___.Need(m_ComAmazonawsKmsTypes.Companion_Default___.IsValid__PlaintextType((input).Dtor_plaintextMaterial()), m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.SeqOfString("Invalid Plaintext on KMS Encrypt"))) + if (_3_valueOrError1).IsFailure() { + res = (_3_valueOrError1).PropagateFailure() + return res + } + var _4_encryptRequest m_ComAmazonawsKmsTypes.EncryptRequest + _ = _4_encryptRequest + _4_encryptRequest = m_ComAmazonawsKmsTypes.Companion_EncryptRequest_.Create_EncryptRequest_((_this).AwsKmsKey(), (input).Dtor_plaintextMaterial(), m_Wrappers.Companion_Option_.Create_Some_(_2_stringifiedEncCtx), m_Wrappers.Companion_Option_.Create_Some_((_this).GrantTokens()), m_Wrappers.Companion_Option_.Create_None_(), m_Wrappers.Companion_Option_.Create_None_()) + var _5_maybeEncryptResponse m_Wrappers.Result + _ = _5_maybeEncryptResponse + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = ((_this).Client()).Encrypt(_4_encryptRequest) + _5_maybeEncryptResponse = _out0 + var _6_valueOrError2 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_ComAmazonawsKmsTypes.Companion_EncryptResponse_.Default()) + _ = _6_valueOrError2 + _6_valueOrError2 = (_5_maybeEncryptResponse).MapFailure(func(coer58 func(m_ComAmazonawsKmsTypes.Error) m_AwsCryptographyMaterialProvidersTypes.Error) func(interface{}) interface{} { + return func(arg59 interface{}) interface{} { + return coer58(arg59.(m_ComAmazonawsKmsTypes.Error)) + } + }(func(_7_e m_ComAmazonawsKmsTypes.Error) m_AwsCryptographyMaterialProvidersTypes.Error { + return m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_ComAmazonawsKms_(_7_e) + })) + if (_6_valueOrError2).IsFailure() { + res = (_6_valueOrError2).PropagateFailure() + return res + } + var _8_encryptResponse m_ComAmazonawsKmsTypes.EncryptResponse + _ = _8_encryptResponse + _8_encryptResponse = (_6_valueOrError2).Extract().(m_ComAmazonawsKmsTypes.EncryptResponse) + var _9_valueOrError3 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _9_valueOrError3 + _9_valueOrError3 = m_Wrappers.Companion_Default___.Need((((_8_encryptResponse).Dtor_KeyId()).Is_Some()) && ((m_AwsArnParsing.Companion_Default___.ParseAwsKmsIdentifier(((_8_encryptResponse).Dtor_KeyId()).Dtor_value().(_dafny.Sequence))).Is_Success()), m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.SeqOfString("Invalid response from AWS KMS Encrypt:: Invalid Key Id"))) + if (_9_valueOrError3).IsFailure() { + res = (_9_valueOrError3).PropagateFailure() + return res + } + var _10_valueOrError4 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _10_valueOrError4 + _10_valueOrError4 = m_Wrappers.Companion_Default___.Need(((_8_encryptResponse).Dtor_CiphertextBlob()).Is_Some(), m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.SeqOfString("Invalid response from AWS KMS Encrypt: Invalid Ciphertext Blob"))) + if (_10_valueOrError4).IsFailure() { + res = (_10_valueOrError4).PropagateFailure() + return res + } + var _11_output m_MaterialWrapping.WrapOutput + _ = _11_output + _11_output = m_MaterialWrapping.Companion_WrapOutput_.Create_WrapOutput_(((_8_encryptResponse).Dtor_CiphertextBlob()).Dtor_value().(_dafny.Sequence), Companion_KmsWrapInfo_.Create_KmsWrapInfo_(((_8_encryptResponse).Dtor_KeyId()).Dtor_value().(_dafny.Sequence))) + res = m_Wrappers.Companion_Result_.Create_Success_(_11_output) + return res + return res + } +} +func (_this *KmsWrapKeyMaterial) Client() m_ComAmazonawsKmsTypes.IKMSClient { + { + return _this._client + } +} +func (_this *KmsWrapKeyMaterial) AwsKmsKey() _dafny.Sequence { + { + return _this._awsKmsKey + } +} +func (_this *KmsWrapKeyMaterial) GrantTokens() _dafny.Sequence { + { + return _this._grantTokens + } +} + +// End of class KmsWrapKeyMaterial diff --git a/customer-preview/mpl/AwsKmsMrkAreUnique/AwsKmsMrkAreUnique.go b/customer-preview/mpl/AwsKmsMrkAreUnique/AwsKmsMrkAreUnique.go new file mode 100644 index 000000000..0fe84ba4f --- /dev/null +++ b/customer-preview/mpl/AwsKmsMrkAreUnique/AwsKmsMrkAreUnique.go @@ -0,0 +1,274 @@ +// Package AwsKmsMrkAreUnique +// Dafny module AwsKmsMrkAreUnique compiled into Go + +package AwsKmsMrkAreUnique + +import ( + os "os" + + m_ComAmazonawsDynamodbTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/ComAmazonawsDynamodbTypes" + m_Com_Amazonaws_Dynamodb "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/Com_Amazonaws_Dynamodb" + m_ComAmazonawsKmsTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/ComAmazonawsKmsTypes" + m_Com_Amazonaws_Kms "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/Com_Amazonaws_Kms" + m_AlgorithmSuites "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AlgorithmSuites" + m_AwsArnParsing "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsArnParsing" + m_AwsCryptographyKeyStoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreOperations" + m_AwsCryptographyKeyStoreTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreTypes" + m_AwsCryptographyMaterialProvidersTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersTypes" + m_AwsKmsMrkMatchForDecrypt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkMatchForDecrypt" + m_AwsKmsUtils "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsUtils" + m_CreateKeyStoreTable "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeyStoreTable" + m_CreateKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeys" + m_DDBKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DDBKeystoreOperations" + m_GetKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/GetKeys" + m_KMSKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KMSKeystoreOperations" + m_KeyStore "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStore" + m_KeyStoreErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStoreErrorMessages" + m_Keyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Keyring" + m_KmsArn "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KmsArn" + m_Materials "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Materials" + m_MultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MultiKeyring" + m_Structure "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Structure" + m_AtomicPrimitives "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AtomicPrimitives" + m_AwsCryptographyPrimitivesOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesOperations" + m_AwsCryptographyPrimitivesTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesTypes" + m_Digest "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Digest" + m_HKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/HKDF" + m_KdfCtr "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/KdfCtr" + m_Random "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Random" + m_WrappedHKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHKDF" + m_WrappedHMAC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHMAC" + m_Actions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Actions" + m_Base64 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64" + m_Base64Lemmas "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64Lemmas" + m_BoundedInts "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/BoundedInts" + m_DivInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternals" + m_DivInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternalsNonlinear" + m_DivMod "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivMod" + m_FileIO "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FileIO" + m_FloatCompare "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FloatCompare" + m_Functions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Functions" + m_GeneralInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GeneralInternals" + m_GetOpt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GetOpt" + m_HexStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/HexStrings" + m_Logarithm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Logarithm" + m__Math "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Math_" + m_ModInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternals" + m_ModInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternalsNonlinear" + m_Mul "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Mul" + m_MulInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternals" + m_MulInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternalsNonlinear" + m_Power "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Power" + m_Relations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Relations" + m_Seq "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq" + m_Seq_MergeSort "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq_MergeSort" + m_Sorting "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Sorting" + m_StandardLibrary "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary" + m_StandardLibraryInterop "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibraryInterop" + m_StandardLibrary_Sequence "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_Sequence" + m_StandardLibrary_String "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_String" + m_StandardLibrary_UInt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_UInt" + m_Streams "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Streams" + m_UnicodeStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UnicodeStrings" + m__Unicode "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Unicode_" + m_Utf16EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf16EncodingForm" + m_Utf8EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf8EncodingForm" + m_Wrappers "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers" + m__System "github.com/dafny-lang/DafnyRuntimeGo/v4/System_" + _dafny "github.com/dafny-lang/DafnyRuntimeGo/v4/dafny" +) + +var _ = os.Args +var _ _dafny.Dummy__ +var _ m__System.Dummy__ +var _ m_Wrappers.Dummy__ +var _ m_BoundedInts.Dummy__ +var _ m_StandardLibrary_UInt.Dummy__ +var _ m_StandardLibrary_Sequence.Dummy__ +var _ m_StandardLibrary_String.Dummy__ +var _ m_StandardLibrary.Dummy__ +var _ m_AwsCryptographyPrimitivesTypes.Dummy__ +var _ m_Random.Dummy__ +var _ m_Digest.Dummy__ +var _ m_WrappedHMAC.Dummy__ +var _ m_HKDF.Dummy__ +var _ m_WrappedHKDF.Dummy__ +var _ m_KdfCtr.Dummy__ +var _ m_AwsCryptographyPrimitivesOperations.Dummy__ +var _ m_AtomicPrimitives.Dummy__ +var _ m_ComAmazonawsDynamodbTypes.Dummy__ +var _ m_ComAmazonawsKmsTypes.Dummy__ +var _ m_Relations.Dummy__ +var _ m_Seq_MergeSort.Dummy__ +var _ m__Math.Dummy__ +var _ m_Seq.Dummy__ +var _ m__Unicode.Dummy__ +var _ m_Functions.Dummy__ +var _ m_Utf8EncodingForm.Dummy__ +var _ m_Utf16EncodingForm.Dummy__ +var _ m_UnicodeStrings.Dummy__ +var _ m_FileIO.Dummy__ +var _ m_GeneralInternals.Dummy__ +var _ m_MulInternalsNonlinear.Dummy__ +var _ m_MulInternals.Dummy__ +var _ m_Mul.Dummy__ +var _ m_ModInternalsNonlinear.Dummy__ +var _ m_DivInternalsNonlinear.Dummy__ +var _ m_ModInternals.Dummy__ +var _ m_DivInternals.Dummy__ +var _ m_DivMod.Dummy__ +var _ m_Power.Dummy__ +var _ m_Logarithm.Dummy__ +var _ m_StandardLibraryInterop.Dummy__ +var _ m_Streams.Dummy__ +var _ m_Sorting.Dummy__ +var _ m_HexStrings.Dummy__ +var _ m_GetOpt.Dummy__ +var _ m_FloatCompare.Dummy__ +var _ m_Base64.Dummy__ +var _ m_Base64Lemmas.Dummy__ +var _ m_Actions.Dummy__ +var _ m_AwsCryptographyKeyStoreTypes.Dummy__ +var _ m_AwsCryptographyMaterialProvidersTypes.Dummy__ +var _ m_AwsArnParsing.Dummy__ +var _ m_AwsKmsMrkMatchForDecrypt.Dummy__ +var _ m_AwsKmsUtils.Dummy__ +var _ m_KeyStoreErrorMessages.Dummy__ +var _ m_KmsArn.Dummy__ +var _ m_Structure.Dummy__ +var _ m_KMSKeystoreOperations.Dummy__ +var _ m_DDBKeystoreOperations.Dummy__ +var _ m_CreateKeys.Dummy__ +var _ m_CreateKeyStoreTable.Dummy__ +var _ m_GetKeys.Dummy__ +var _ m_AwsCryptographyKeyStoreOperations.Dummy__ +var _ m_Com_Amazonaws_Kms.Dummy__ +var _ m_Com_Amazonaws_Dynamodb.Dummy__ +var _ m_KeyStore.Dummy__ +var _ m_AlgorithmSuites.Dummy__ +var _ m_Materials.Dummy__ +var _ m_Keyring.Dummy__ +var _ m_MultiKeyring.Dummy__ + +type Dummy__ struct{} + +// Definition of class Default__ +type Default__ struct { + dummy byte +} + +func New_Default___() *Default__ { + _this := Default__{} + + return &_this +} + +type CompanionStruct_Default___ struct { +} + +var Companion_Default___ = CompanionStruct_Default___{} + +func (_this *Default__) Equals(other *Default__) bool { + return _this == other +} + +func (_this *Default__) EqualsGeneric(x interface{}) bool { + other, ok := x.(*Default__) + return ok && _this.Equals(other) +} + +func (*Default__) String() string { + return "AwsKmsMrkAreUnique.Default__" +} +func (_this *Default__) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = &Default__{} + +func (_static *CompanionStruct_Default___) AwsKmsMrkAreUnique(identifiers _dafny.Sequence) m_Wrappers.Outcome { + var _0_mrks _dafny.Sequence = m_Seq.Companion_Default___.Filter(func(coer32 func(m_AwsArnParsing.AwsKmsIdentifier) bool) func(interface{}) bool { + return func(arg32 interface{}) bool { + return coer32(arg32.(m_AwsArnParsing.AwsKmsIdentifier)) + } + }(m_AwsArnParsing.Companion_Default___.IsMultiRegionAwsKmsIdentifier), identifiers) + _ = _0_mrks + if (_dafny.IntOfUint32((_0_mrks).Cardinality())).Sign() == 0 { + return m_Wrappers.Companion_Outcome_.Create_Pass_() + } else { + var _1_mrkKeyIds _dafny.Sequence = m_Seq.Companion_Default___.Map(func(coer33 func(m_AwsArnParsing.AwsKmsIdentifier) _dafny.Sequence) func(interface{}) interface{} { + return func(arg33 interface{}) interface{} { + return coer33(arg33.(m_AwsArnParsing.AwsKmsIdentifier)) + } + }(Companion_Default___.GetKeyId), _0_mrks) + _ = _1_mrkKeyIds + var _2_setMrks _dafny.Set = m_Seq.Companion_Default___.ToSet(_1_mrkKeyIds) + _ = _2_setMrks + if (_dafny.IntOfUint32((_1_mrkKeyIds).Cardinality())).Cmp((_2_setMrks).Cardinality()) == 0 { + return m_Wrappers.Companion_Outcome_.Create_Pass_() + } else { + var _3_duplicateMrkIds _dafny.Set = func() _dafny.Set { + var _coll0 = _dafny.NewBuilder() + _ = _coll0 + for _iter9 := _dafny.Iterate((_1_mrkKeyIds).Elements()); ; { + _compr_0, _ok9 := _iter9() + if !_ok9 { + break + } + var _4_x _dafny.Sequence + _4_x = interface{}(_compr_0).(_dafny.Sequence) + if (_dafny.Companion_Sequence_.Contains(_1_mrkKeyIds, _4_x)) && (((_dafny.MultiSetFromSeq(_1_mrkKeyIds)).Multiplicity(_4_x)).Cmp(_dafny.One) >= 0) { + _coll0.Add(_4_x) + } + } + return _coll0.ToSet() + }() + _ = _3_duplicateMrkIds + var _5_isDuplicate func(m_AwsArnParsing.AwsKmsIdentifier) bool = (func(_6_duplicateMrkIds _dafny.Set) func(m_AwsArnParsing.AwsKmsIdentifier) bool { + return func(_7_identifier m_AwsArnParsing.AwsKmsIdentifier) bool { + return (_6_duplicateMrkIds).Contains(Companion_Default___.GetKeyId(_7_identifier)) + } + })(_3_duplicateMrkIds) + _ = _5_isDuplicate + var _8_identifierToString func(m_AwsArnParsing.AwsKmsIdentifier) _dafny.Sequence = func(_9_i m_AwsArnParsing.AwsKmsIdentifier) _dafny.Sequence { + return (_9_i).ToString() + } + _ = _8_identifierToString + var _10_duplicateIdentifiers _dafny.Sequence = m_Seq.Companion_Default___.Filter(func(coer34 func(m_AwsArnParsing.AwsKmsIdentifier) bool) func(interface{}) bool { + return func(arg34 interface{}) bool { + return coer34(arg34.(m_AwsArnParsing.AwsKmsIdentifier)) + } + }(_5_isDuplicate), identifiers) + _ = _10_duplicateIdentifiers + var _11_duplicates _dafny.Sequence = m_Seq.Companion_Default___.Map(func(coer35 func(m_AwsArnParsing.AwsKmsIdentifier) _dafny.Sequence) func(interface{}) interface{} { + return func(arg35 interface{}) interface{} { + return coer35(arg35.(m_AwsArnParsing.AwsKmsIdentifier)) + } + }(_8_identifierToString), _10_duplicateIdentifiers) + _ = _11_duplicates + if (_dafny.IntOfUint32((_11_duplicates).Cardinality())).Sign() == 0 { + return m_Wrappers.Companion_Outcome_.Create_Fail_(m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.SeqOfString("Impossible"))) + } else { + return m_Wrappers.Companion_Outcome_.Create_Fail_(m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.SeqOfString("Related multi-Region keys: "), m_StandardLibrary.Companion_Default___.Join(_11_duplicates, _dafny.SeqOfString(","))), _dafny.SeqOfString("are not allowed.")))) + } + } + } +} +func (_static *CompanionStruct_Default___) GetKeyId(identifier m_AwsArnParsing.AwsKmsIdentifier) _dafny.Sequence { + var _source0 m_AwsArnParsing.AwsKmsIdentifier = identifier + _ = _source0 + { + if _source0.Is_AwsKmsArnIdentifier() { + var _0_a m_AwsArnParsing.AwsArn = _source0.Get_().(m_AwsArnParsing.AwsKmsIdentifier_AwsKmsArnIdentifier).A + _ = _0_a + return ((_0_a).Dtor_resource()).Dtor_value() + } + } + { + var _1_i m_AwsArnParsing.AwsResource = _source0.Get_().(m_AwsArnParsing.AwsKmsIdentifier_AwsKmsRawResourceIdentifier).R + _ = _1_i + return (_1_i).Dtor_value() + } +} + +// End of class Default__ diff --git a/customer-preview/mpl/AwsKmsMrkDiscoveryKeyring/AwsKmsMrkDiscoveryKeyring.go b/customer-preview/mpl/AwsKmsMrkDiscoveryKeyring/AwsKmsMrkDiscoveryKeyring.go new file mode 100644 index 000000000..bbf01fa06 --- /dev/null +++ b/customer-preview/mpl/AwsKmsMrkDiscoveryKeyring/AwsKmsMrkDiscoveryKeyring.go @@ -0,0 +1,711 @@ +// Package AwsKmsMrkDiscoveryKeyring +// Dafny module AwsKmsMrkDiscoveryKeyring compiled into Go + +package AwsKmsMrkDiscoveryKeyring + +import ( + os "os" + + m_ComAmazonawsDynamodbTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/ComAmazonawsDynamodbTypes" + m_Com_Amazonaws_Dynamodb "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/Com_Amazonaws_Dynamodb" + m_ComAmazonawsKmsTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/ComAmazonawsKmsTypes" + m_Com_Amazonaws_Kms "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/Com_Amazonaws_Kms" + m_AlgorithmSuites "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AlgorithmSuites" + m_AwsArnParsing "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsArnParsing" + m_AwsCryptographyKeyStoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreOperations" + m_AwsCryptographyKeyStoreTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreTypes" + m_AwsCryptographyMaterialProvidersTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersTypes" + m_AwsKmsDiscoveryKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsDiscoveryKeyring" + m_AwsKmsKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsKeyring" + m_AwsKmsMrkAreUnique "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkAreUnique" + m_AwsKmsMrkMatchForDecrypt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkMatchForDecrypt" + m_AwsKmsUtils "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsUtils" + m_CanonicalEncryptionContext "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CanonicalEncryptionContext" + m_Constants "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Constants" + m_CreateKeyStoreTable "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeyStoreTable" + m_CreateKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeys" + m_DDBKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DDBKeystoreOperations" + m_DiscoveryMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DiscoveryMultiKeyring" + m_EdkWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/EdkWrapping" + m_ErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/ErrorMessages" + m_GetKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/GetKeys" + m_IntermediateKeyWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/IntermediateKeyWrapping" + m_KMSKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KMSKeystoreOperations" + m_KeyStore "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStore" + m_KeyStoreErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStoreErrorMessages" + m_Keyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Keyring" + m_KmsArn "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KmsArn" + m_MaterialWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MaterialWrapping" + m_Materials "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Materials" + m_MultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MultiKeyring" + m_StrictMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StrictMultiKeyring" + m_Structure "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Structure" + m_AtomicPrimitives "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AtomicPrimitives" + m_AwsCryptographyPrimitivesOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesOperations" + m_AwsCryptographyPrimitivesTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesTypes" + m_Digest "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Digest" + m_HKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/HKDF" + m_KdfCtr "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/KdfCtr" + m_Random "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Random" + m_WrappedHKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHKDF" + m_WrappedHMAC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHMAC" + m_Actions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Actions" + m_Base64 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64" + m_Base64Lemmas "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64Lemmas" + m_BoundedInts "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/BoundedInts" + m_DivInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternals" + m_DivInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternalsNonlinear" + m_DivMod "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivMod" + m_FileIO "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FileIO" + m_FloatCompare "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FloatCompare" + m_Functions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Functions" + m_GeneralInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GeneralInternals" + m_GetOpt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GetOpt" + m_HexStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/HexStrings" + m_Logarithm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Logarithm" + m__Math "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Math_" + m_ModInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternals" + m_ModInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternalsNonlinear" + m_Mul "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Mul" + m_MulInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternals" + m_MulInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternalsNonlinear" + m_Power "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Power" + m_Relations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Relations" + m_Seq "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq" + m_Seq_MergeSort "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq_MergeSort" + m_Sorting "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Sorting" + m_StandardLibrary "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary" + m_StandardLibraryInterop "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibraryInterop" + m_StandardLibrary_Sequence "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_Sequence" + m_StandardLibrary_String "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_String" + m_StandardLibrary_UInt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_UInt" + m_Streams "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Streams" + m_UTF8 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UTF8" + m_UnicodeStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UnicodeStrings" + m__Unicode "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Unicode_" + m_Utf16EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf16EncodingForm" + m_Utf8EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf8EncodingForm" + m_Wrappers "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers" + m__System "github.com/dafny-lang/DafnyRuntimeGo/v4/System_" + _dafny "github.com/dafny-lang/DafnyRuntimeGo/v4/dafny" +) + +var _ = os.Args +var _ _dafny.Dummy__ +var _ m__System.Dummy__ +var _ m_Wrappers.Dummy__ +var _ m_BoundedInts.Dummy__ +var _ m_StandardLibrary_UInt.Dummy__ +var _ m_StandardLibrary_Sequence.Dummy__ +var _ m_StandardLibrary_String.Dummy__ +var _ m_StandardLibrary.Dummy__ +var _ m_AwsCryptographyPrimitivesTypes.Dummy__ +var _ m_Random.Dummy__ +var _ m_Digest.Dummy__ +var _ m_WrappedHMAC.Dummy__ +var _ m_HKDF.Dummy__ +var _ m_WrappedHKDF.Dummy__ +var _ m_KdfCtr.Dummy__ +var _ m_AwsCryptographyPrimitivesOperations.Dummy__ +var _ m_AtomicPrimitives.Dummy__ +var _ m_ComAmazonawsDynamodbTypes.Dummy__ +var _ m_ComAmazonawsKmsTypes.Dummy__ +var _ m_Relations.Dummy__ +var _ m_Seq_MergeSort.Dummy__ +var _ m__Math.Dummy__ +var _ m_Seq.Dummy__ +var _ m__Unicode.Dummy__ +var _ m_Functions.Dummy__ +var _ m_Utf8EncodingForm.Dummy__ +var _ m_Utf16EncodingForm.Dummy__ +var _ m_UnicodeStrings.Dummy__ +var _ m_FileIO.Dummy__ +var _ m_GeneralInternals.Dummy__ +var _ m_MulInternalsNonlinear.Dummy__ +var _ m_MulInternals.Dummy__ +var _ m_Mul.Dummy__ +var _ m_ModInternalsNonlinear.Dummy__ +var _ m_DivInternalsNonlinear.Dummy__ +var _ m_ModInternals.Dummy__ +var _ m_DivInternals.Dummy__ +var _ m_DivMod.Dummy__ +var _ m_Power.Dummy__ +var _ m_Logarithm.Dummy__ +var _ m_StandardLibraryInterop.Dummy__ +var _ m_Streams.Dummy__ +var _ m_Sorting.Dummy__ +var _ m_HexStrings.Dummy__ +var _ m_GetOpt.Dummy__ +var _ m_FloatCompare.Dummy__ +var _ m_Base64.Dummy__ +var _ m_Base64Lemmas.Dummy__ +var _ m_Actions.Dummy__ +var _ m_AwsCryptographyKeyStoreTypes.Dummy__ +var _ m_AwsCryptographyMaterialProvidersTypes.Dummy__ +var _ m_AwsArnParsing.Dummy__ +var _ m_AwsKmsMrkMatchForDecrypt.Dummy__ +var _ m_AwsKmsUtils.Dummy__ +var _ m_KeyStoreErrorMessages.Dummy__ +var _ m_KmsArn.Dummy__ +var _ m_Structure.Dummy__ +var _ m_KMSKeystoreOperations.Dummy__ +var _ m_DDBKeystoreOperations.Dummy__ +var _ m_CreateKeys.Dummy__ +var _ m_CreateKeyStoreTable.Dummy__ +var _ m_GetKeys.Dummy__ +var _ m_AwsCryptographyKeyStoreOperations.Dummy__ +var _ m_Com_Amazonaws_Kms.Dummy__ +var _ m_Com_Amazonaws_Dynamodb.Dummy__ +var _ m_KeyStore.Dummy__ +var _ m_AlgorithmSuites.Dummy__ +var _ m_Materials.Dummy__ +var _ m_Keyring.Dummy__ +var _ m_MultiKeyring.Dummy__ +var _ m_AwsKmsMrkAreUnique.Dummy__ +var _ m_Constants.Dummy__ +var _ m_MaterialWrapping.Dummy__ +var _ m_CanonicalEncryptionContext.Dummy__ +var _ m_IntermediateKeyWrapping.Dummy__ +var _ m_EdkWrapping.Dummy__ +var _ m_ErrorMessages.Dummy__ +var _ m_AwsKmsKeyring.Dummy__ +var _ m_StrictMultiKeyring.Dummy__ +var _ m_AwsKmsDiscoveryKeyring.Dummy__ +var _ m_DiscoveryMultiKeyring.Dummy__ + +type Dummy__ struct{} + +// Definition of class Default__ +type Default__ struct { + dummy byte +} + +func New_Default___() *Default__ { + _this := Default__{} + + return &_this +} + +type CompanionStruct_Default___ struct { +} + +var Companion_Default___ = CompanionStruct_Default___{} + +func (_this *Default__) Equals(other *Default__) bool { + return _this == other +} + +func (_this *Default__) EqualsGeneric(x interface{}) bool { + other, ok := x.(*Default__) + return ok && _this.Equals(other) +} + +func (*Default__) String() string { + return "AwsKmsMrkDiscoveryKeyring.Default__" +} +func (_this *Default__) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = &Default__{} + +func (_static *CompanionStruct_Default___) ToStringForRegion(arn m_AwsArnParsing.AwsArn, region _dafny.Sequence) _dafny.Sequence { + if m_AwsArnParsing.Companion_Default___.IsMultiRegionAwsKmsArn(arn) { + return (arn).ToArnString(m_Wrappers.Companion_Option_.Create_Some_(region)) + } else { + return (arn).ToString() + } +} +func (_static *CompanionStruct_Default___) DiscoveryMatch(arn m_AwsArnParsing.AwsArn, discoveryFilter m_Wrappers.Option, region _dafny.Sequence) bool { + return (func() bool { + var _source0 m_Wrappers.Option = discoveryFilter + _ = _source0 + { + if _source0.Is_Some() { + var _0_filter m_AwsCryptographyMaterialProvidersTypes.DiscoveryFilter = _source0.Get_().(m_Wrappers.Option_Some).Value.(m_AwsCryptographyMaterialProvidersTypes.DiscoveryFilter) + _ = _0_filter + return (_dafny.Companion_Sequence_.Equal((_0_filter).Dtor_partition(), (arn).Dtor_partition())) && (_dafny.Companion_Sequence_.Contains((_0_filter).Dtor_accountIds(), (arn).Dtor_account())) + } + } + { + return true + } + }()) && ((func() bool { + if !(m_AwsArnParsing.Companion_Default___.IsMultiRegionAwsKmsArn(arn)) { + return _dafny.Companion_Sequence_.Equal(region, (arn).Dtor_region()) + } + return true + })()) +} + +// End of class Default__ + +// Definition of class AwsKmsMrkDiscoveryKeyring +type AwsKmsMrkDiscoveryKeyring struct { + _client m_ComAmazonawsKmsTypes.IKMSClient + _region _dafny.Sequence + _discoveryFilter m_Wrappers.Option + _grantTokens _dafny.Sequence +} + +func New_AwsKmsMrkDiscoveryKeyring_() *AwsKmsMrkDiscoveryKeyring { + _this := AwsKmsMrkDiscoveryKeyring{} + + _this._client = (m_ComAmazonawsKmsTypes.IKMSClient)(nil) + _this._region = _dafny.EmptySeq.SetString() + _this._discoveryFilter = m_Wrappers.Companion_Option_.Default() + _this._grantTokens = _dafny.EmptySeq + return &_this +} + +type CompanionStruct_AwsKmsMrkDiscoveryKeyring_ struct { +} + +var Companion_AwsKmsMrkDiscoveryKeyring_ = CompanionStruct_AwsKmsMrkDiscoveryKeyring_{} + +func (_this *AwsKmsMrkDiscoveryKeyring) Equals(other *AwsKmsMrkDiscoveryKeyring) bool { + return _this == other +} + +func (_this *AwsKmsMrkDiscoveryKeyring) EqualsGeneric(x interface{}) bool { + other, ok := x.(*AwsKmsMrkDiscoveryKeyring) + return ok && _this.Equals(other) +} + +func (*AwsKmsMrkDiscoveryKeyring) String() string { + return "AwsKmsMrkDiscoveryKeyring.AwsKmsMrkDiscoveryKeyring" +} + +func Type_AwsKmsMrkDiscoveryKeyring_() _dafny.TypeDescriptor { + return type_AwsKmsMrkDiscoveryKeyring_{} +} + +type type_AwsKmsMrkDiscoveryKeyring_ struct { +} + +func (_this type_AwsKmsMrkDiscoveryKeyring_) Default() interface{} { + return (*AwsKmsMrkDiscoveryKeyring)(nil) +} + +func (_this type_AwsKmsMrkDiscoveryKeyring_) String() string { + return "AwsKmsMrkDiscoveryKeyring.AwsKmsMrkDiscoveryKeyring" +} +func (_this *AwsKmsMrkDiscoveryKeyring) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){m_Keyring.Companion_VerifiableInterface_.TraitID_, m_AwsCryptographyMaterialProvidersTypes.Companion_IKeyring_.TraitID_} +} + +var _ m_Keyring.VerifiableInterface = &AwsKmsMrkDiscoveryKeyring{} +var _ m_AwsCryptographyMaterialProvidersTypes.IKeyring = &AwsKmsMrkDiscoveryKeyring{} +var _ _dafny.TraitOffspring = &AwsKmsMrkDiscoveryKeyring{} + +func (_this *AwsKmsMrkDiscoveryKeyring) OnDecrypt(input m_AwsCryptographyMaterialProvidersTypes.OnDecryptInput) m_Wrappers.Result { + var _out4 m_Wrappers.Result + _ = _out4 + _out4 = m_AwsCryptographyMaterialProvidersTypes.Companion_IKeyring_.OnDecrypt(_this, input) + return _out4 +} +func (_this *AwsKmsMrkDiscoveryKeyring) OnEncrypt(input m_AwsCryptographyMaterialProvidersTypes.OnEncryptInput) m_Wrappers.Result { + var _out4 m_Wrappers.Result + _ = _out4 + _out4 = m_AwsCryptographyMaterialProvidersTypes.Companion_IKeyring_.OnEncrypt(_this, input) + return _out4 +} +func (_this *AwsKmsMrkDiscoveryKeyring) Ctor__(client m_ComAmazonawsKmsTypes.IKMSClient, region _dafny.Sequence, discoveryFilter m_Wrappers.Option, grantTokens _dafny.Sequence) { + { + (_this)._client = client + (_this)._region = region + (_this)._discoveryFilter = discoveryFilter + (_this)._grantTokens = grantTokens + } +} +func (_this *AwsKmsMrkDiscoveryKeyring) OnEncrypt_k(input m_AwsCryptographyMaterialProvidersTypes.OnEncryptInput) m_Wrappers.Result { + { + var output m_Wrappers.Result = m_Wrappers.Result{} + _ = output + output = m_Wrappers.Companion_Result_.Create_Failure_(m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.SeqOfString("Encryption is not supported with a Discovery Keyring."))) + return output + return output + } +} +func (_this *AwsKmsMrkDiscoveryKeyring) OnDecrypt_k(input m_AwsCryptographyMaterialProvidersTypes.OnDecryptInput) m_Wrappers.Result { + { + var output m_Wrappers.Result = m_Wrappers.Result{} + _ = output + var _0_materials m_AwsCryptographyMaterialProvidersTypes.DecryptionMaterials + _ = _0_materials + _0_materials = (input).Dtor_materials() + var _1_encryptedDataKeys _dafny.Sequence + _ = _1_encryptedDataKeys + _1_encryptedDataKeys = (input).Dtor_encryptedDataKeys() + var _2_suite m_AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo + _ = _2_suite + _2_suite = ((input).Dtor_materials()).Dtor_algorithmSuite() + var _3_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _3_valueOrError0 + _3_valueOrError0 = m_Wrappers.Companion_Default___.Need(m_Materials.Companion_Default___.DecryptionMaterialsWithoutPlaintextDataKey(_0_materials), m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.SeqOfString("Keyring received decryption materials that already contain a plaintext data key."))) + if (_3_valueOrError0).IsFailure() { + output = (_3_valueOrError0).PropagateFailure() + return output + } + var _4_edkFilterTransform *AwsKmsEncryptedDataKeyFilterTransform + _ = _4_edkFilterTransform + var _nw0 *AwsKmsEncryptedDataKeyFilterTransform = New_AwsKmsEncryptedDataKeyFilterTransform_() + _ = _nw0 + _nw0.Ctor__((_this).Region(), (_this).DiscoveryFilter()) + _4_edkFilterTransform = _nw0 + var _5_valueOrError1 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = _5_valueOrError1 + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_Actions.Companion_Default___.DeterministicFlatMapWithResult(_4_edkFilterTransform, _1_encryptedDataKeys) + _5_valueOrError1 = _out0 + if (_5_valueOrError1).IsFailure() { + output = (_5_valueOrError1).PropagateFailure() + return output + } + var _6_edksToAttempt _dafny.Sequence + _ = _6_edksToAttempt + _6_edksToAttempt = (_5_valueOrError1).Extract().(_dafny.Sequence) + if (_dafny.IntOfUint32((_6_edksToAttempt).Cardinality())).Sign() == 0 { + var _7_valueOrError2 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq.SetString()) + _ = _7_valueOrError2 + _7_valueOrError2 = m_ErrorMessages.Companion_Default___.IncorrectDataKeys((input).Dtor_encryptedDataKeys(), ((input).Dtor_materials()).Dtor_algorithmSuite(), _dafny.SeqOfString("")) + if (_7_valueOrError2).IsFailure() { + output = (_7_valueOrError2).PropagateFailure() + return output + } + var _8_errorMessage _dafny.Sequence + _ = _8_errorMessage + _8_errorMessage = (_7_valueOrError2).Extract().(_dafny.Sequence) + output = m_Wrappers.Companion_Result_.Create_Failure_(m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_8_errorMessage)) + return output + } + var _9_decryptAction *AwsKmsEncryptedDataKeyDecryptor + _ = _9_decryptAction + var _nw1 *AwsKmsEncryptedDataKeyDecryptor = New_AwsKmsEncryptedDataKeyDecryptor_() + _ = _nw1 + _nw1.Ctor__(_0_materials, (_this).Client(), (_this).Region(), (_this).GrantTokens()) + _9_decryptAction = _nw1 + var _10_outcome m_Wrappers.Result + _ = _10_outcome + var _out1 m_Wrappers.Result + _ = _out1 + _out1 = m_Actions.Companion_Default___.ReduceToSuccess(_9_decryptAction, _6_edksToAttempt) + _10_outcome = _out1 + var _source0 m_Wrappers.Result = _10_outcome + _ = _source0 + { + { + if _source0.Is_Success() { + var _11_mat m_AwsCryptographyMaterialProvidersTypes.DecryptionMaterials = _source0.Get_().(m_Wrappers.Result_Success).Value.(m_AwsCryptographyMaterialProvidersTypes.DecryptionMaterials) + _ = _11_mat + output = m_Wrappers.Companion_Result_.Create_Success_(m_AwsCryptographyMaterialProvidersTypes.Companion_OnDecryptOutput_.Create_OnDecryptOutput_(_11_mat)) + goto Lmatch0 + } + } + { + var _12_errors _dafny.Sequence = _source0.Get_().(m_Wrappers.Result_Failure).Error.(_dafny.Sequence) + _ = _12_errors + output = m_Wrappers.Companion_Result_.Create_Failure_(m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_CollectionOfErrors_(_12_errors, _dafny.SeqOfString("No Configured KMS Key was able to decrypt the Data Key. The list of encountered Exceptions is available via `list`."))) + } + goto Lmatch0 + } + Lmatch0: + return output + return output + } +} +func (_this *AwsKmsMrkDiscoveryKeyring) Client() m_ComAmazonawsKmsTypes.IKMSClient { + { + return _this._client + } +} +func (_this *AwsKmsMrkDiscoveryKeyring) Region() _dafny.Sequence { + { + return _this._region + } +} +func (_this *AwsKmsMrkDiscoveryKeyring) DiscoveryFilter() m_Wrappers.Option { + { + return _this._discoveryFilter + } +} +func (_this *AwsKmsMrkDiscoveryKeyring) GrantTokens() _dafny.Sequence { + { + return _this._grantTokens + } +} + +// End of class AwsKmsMrkDiscoveryKeyring + +// Definition of class AwsKmsEncryptedDataKeyFilterTransform +type AwsKmsEncryptedDataKeyFilterTransform struct { + _region _dafny.Sequence + _discoveryFilter m_Wrappers.Option +} + +func New_AwsKmsEncryptedDataKeyFilterTransform_() *AwsKmsEncryptedDataKeyFilterTransform { + _this := AwsKmsEncryptedDataKeyFilterTransform{} + + _this._region = _dafny.EmptySeq.SetString() + _this._discoveryFilter = m_Wrappers.Companion_Option_.Default() + return &_this +} + +type CompanionStruct_AwsKmsEncryptedDataKeyFilterTransform_ struct { +} + +var Companion_AwsKmsEncryptedDataKeyFilterTransform_ = CompanionStruct_AwsKmsEncryptedDataKeyFilterTransform_{} + +func (_this *AwsKmsEncryptedDataKeyFilterTransform) Equals(other *AwsKmsEncryptedDataKeyFilterTransform) bool { + return _this == other +} + +func (_this *AwsKmsEncryptedDataKeyFilterTransform) EqualsGeneric(x interface{}) bool { + other, ok := x.(*AwsKmsEncryptedDataKeyFilterTransform) + return ok && _this.Equals(other) +} + +func (*AwsKmsEncryptedDataKeyFilterTransform) String() string { + return "AwsKmsMrkDiscoveryKeyring.AwsKmsEncryptedDataKeyFilterTransform" +} + +func Type_AwsKmsEncryptedDataKeyFilterTransform_() _dafny.TypeDescriptor { + return type_AwsKmsEncryptedDataKeyFilterTransform_{} +} + +type type_AwsKmsEncryptedDataKeyFilterTransform_ struct { +} + +func (_this type_AwsKmsEncryptedDataKeyFilterTransform_) Default() interface{} { + return (*AwsKmsEncryptedDataKeyFilterTransform)(nil) +} + +func (_this type_AwsKmsEncryptedDataKeyFilterTransform_) String() string { + return "AwsKmsMrkDiscoveryKeyring.AwsKmsEncryptedDataKeyFilterTransform" +} +func (_this *AwsKmsEncryptedDataKeyFilterTransform) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){m_Actions.Companion_DeterministicActionWithResult_.TraitID_, m_Actions.Companion_DeterministicAction_.TraitID_} +} + +var _ m_Actions.DeterministicActionWithResult = &AwsKmsEncryptedDataKeyFilterTransform{} +var _ m_Actions.DeterministicAction = &AwsKmsEncryptedDataKeyFilterTransform{} +var _ _dafny.TraitOffspring = &AwsKmsEncryptedDataKeyFilterTransform{} + +func (_this *AwsKmsEncryptedDataKeyFilterTransform) Ctor__(region _dafny.Sequence, discoveryFilter m_Wrappers.Option) { + { + (_this)._region = region + (_this)._discoveryFilter = discoveryFilter + } +} +func (_this *AwsKmsEncryptedDataKeyFilterTransform) Invoke(edk interface{}) interface{} { + { + var edk m_AwsCryptographyMaterialProvidersTypes.EncryptedDataKey = edk.(m_AwsCryptographyMaterialProvidersTypes.EncryptedDataKey) + _ = edk + var res m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = res + if !_dafny.Companion_Sequence_.Equal((edk).Dtor_keyProviderId(), m_Constants.Companion_Default___.PROVIDER__ID()) { + res = m_Wrappers.Companion_Result_.Create_Success_(_dafny.SeqOf()) + return res + } + var _0_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _0_valueOrError0 + _0_valueOrError0 = m_Wrappers.Companion_Default___.Need(m_UTF8.Companion_Default___.ValidUTF8Seq((edk).Dtor_keyProviderInfo()), m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.SeqOfString("Invalid AWS KMS encoding, provider info is not UTF8."))) + if (_0_valueOrError0).IsFailure() { + res = (_0_valueOrError0).PropagateFailure() + return res + } + var _1_valueOrError1 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq.SetString()) + _ = _1_valueOrError1 + _1_valueOrError1 = (m_UTF8.Decode((edk).Dtor_keyProviderInfo())).MapFailure(func(coer67 func(_dafny.Sequence) m_AwsCryptographyMaterialProvidersTypes.Error) func(interface{}) interface{} { + return func(arg68 interface{}) interface{} { + return coer67(arg68.(_dafny.Sequence)) + } + }(func(_2_e _dafny.Sequence) m_AwsCryptographyMaterialProvidersTypes.Error { + return m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_2_e) + })) + if (_1_valueOrError1).IsFailure() { + res = (_1_valueOrError1).PropagateFailure() + return res + } + var _3_keyId _dafny.Sequence + _ = _3_keyId + _3_keyId = (_1_valueOrError1).Extract().(_dafny.Sequence) + var _4_valueOrError2 m_Wrappers.Result = m_Wrappers.Result{} + _ = _4_valueOrError2 + _4_valueOrError2 = (m_AwsArnParsing.Companion_Default___.ParseAwsKmsArn(_3_keyId)).MapFailure(func(coer68 func(_dafny.Sequence) m_AwsCryptographyMaterialProvidersTypes.Error) func(interface{}) interface{} { + return func(arg69 interface{}) interface{} { + return coer68(arg69.(_dafny.Sequence)) + } + }(func(_5_e _dafny.Sequence) m_AwsCryptographyMaterialProvidersTypes.Error { + return m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_5_e) + })) + if (_4_valueOrError2).IsFailure() { + res = (_4_valueOrError2).PropagateFailure() + return res + } + var _6_arn m_AwsArnParsing.AwsArn + _ = _6_arn + _6_arn = (_4_valueOrError2).Extract().(m_AwsArnParsing.AwsArn) + var _7_valueOrError3 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _7_valueOrError3 + _7_valueOrError3 = m_Wrappers.Companion_Default___.Need(_dafny.Companion_Sequence_.Equal(((_6_arn).Dtor_resource()).Dtor_resourceType(), _dafny.SeqOfString("key")), m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.SeqOfString("Only AWS KMS Keys supported"))) + if (_7_valueOrError3).IsFailure() { + res = (_7_valueOrError3).PropagateFailure() + return res + } + if !(Companion_Default___.DiscoveryMatch(_6_arn, (_this).DiscoveryFilter(), (_this).Region())) { + res = m_Wrappers.Companion_Result_.Create_Success_(_dafny.SeqOf()) + return res + } + res = m_Wrappers.Companion_Result_.Create_Success_(_dafny.SeqOf(m_Constants.Companion_AwsKmsEdkHelper_.Create_AwsKmsEdkHelper_(edk, _6_arn))) + return res + return res + } +} +func (_this *AwsKmsEncryptedDataKeyFilterTransform) Region() _dafny.Sequence { + { + return _this._region + } +} +func (_this *AwsKmsEncryptedDataKeyFilterTransform) DiscoveryFilter() m_Wrappers.Option { + { + return _this._discoveryFilter + } +} + +// End of class AwsKmsEncryptedDataKeyFilterTransform + +// Definition of class AwsKmsEncryptedDataKeyDecryptor +type AwsKmsEncryptedDataKeyDecryptor struct { + _materials m_AwsCryptographyMaterialProvidersTypes.DecryptionMaterials + _client m_ComAmazonawsKmsTypes.IKMSClient + _region _dafny.Sequence + _grantTokens _dafny.Sequence +} + +func New_AwsKmsEncryptedDataKeyDecryptor_() *AwsKmsEncryptedDataKeyDecryptor { + _this := AwsKmsEncryptedDataKeyDecryptor{} + + _this._materials = m_AwsCryptographyMaterialProvidersTypes.DecryptionMaterials{} + _this._client = (m_ComAmazonawsKmsTypes.IKMSClient)(nil) + _this._region = _dafny.EmptySeq.SetString() + _this._grantTokens = _dafny.EmptySeq + return &_this +} + +type CompanionStruct_AwsKmsEncryptedDataKeyDecryptor_ struct { +} + +var Companion_AwsKmsEncryptedDataKeyDecryptor_ = CompanionStruct_AwsKmsEncryptedDataKeyDecryptor_{} + +func (_this *AwsKmsEncryptedDataKeyDecryptor) Equals(other *AwsKmsEncryptedDataKeyDecryptor) bool { + return _this == other +} + +func (_this *AwsKmsEncryptedDataKeyDecryptor) EqualsGeneric(x interface{}) bool { + other, ok := x.(*AwsKmsEncryptedDataKeyDecryptor) + return ok && _this.Equals(other) +} + +func (*AwsKmsEncryptedDataKeyDecryptor) String() string { + return "AwsKmsMrkDiscoveryKeyring.AwsKmsEncryptedDataKeyDecryptor" +} + +func Type_AwsKmsEncryptedDataKeyDecryptor_() _dafny.TypeDescriptor { + return type_AwsKmsEncryptedDataKeyDecryptor_{} +} + +type type_AwsKmsEncryptedDataKeyDecryptor_ struct { +} + +func (_this type_AwsKmsEncryptedDataKeyDecryptor_) Default() interface{} { + return (*AwsKmsEncryptedDataKeyDecryptor)(nil) +} + +func (_this type_AwsKmsEncryptedDataKeyDecryptor_) String() string { + return "AwsKmsMrkDiscoveryKeyring.AwsKmsEncryptedDataKeyDecryptor" +} +func (_this *AwsKmsEncryptedDataKeyDecryptor) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){m_Actions.Companion_ActionWithResult_.TraitID_, m_Actions.Companion_Action_.TraitID_} +} + +var _ m_Actions.ActionWithResult = &AwsKmsEncryptedDataKeyDecryptor{} +var _ m_Actions.Action = &AwsKmsEncryptedDataKeyDecryptor{} +var _ _dafny.TraitOffspring = &AwsKmsEncryptedDataKeyDecryptor{} + +func (_this *AwsKmsEncryptedDataKeyDecryptor) Ctor__(materials m_AwsCryptographyMaterialProvidersTypes.DecryptionMaterials, client m_ComAmazonawsKmsTypes.IKMSClient, region _dafny.Sequence, grantTokens _dafny.Sequence) { + { + (_this)._materials = materials + (_this)._client = client + (_this)._region = region + (_this)._grantTokens = grantTokens + } +} +func (_this *AwsKmsEncryptedDataKeyDecryptor) Invoke(helper interface{}) interface{} { + { + var helper m_Constants.AwsKmsEdkHelper = helper.(m_Constants.AwsKmsEdkHelper) + _ = helper + var res m_Wrappers.Result = m_Wrappers.Result{} + _ = res + var _0_awsKmsKey _dafny.Sequence + _ = _0_awsKmsKey + _0_awsKmsKey = Companion_Default___.ToStringForRegion((helper).Dtor_arn(), (_this).Region()) + var _1_valueOrError0 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.TupleOf()) + _ = _1_valueOrError0 + _1_valueOrError0 = m_AwsKmsUtils.Companion_Default___.ValidateKmsKeyId(_0_awsKmsKey) + if (_1_valueOrError0).IsFailure() { + res = (_1_valueOrError0).PropagateFailure() + return res + } + var _2___v0 _dafny.Tuple + _ = _2___v0 + _2___v0 = (_1_valueOrError0).Extract().(_dafny.Tuple) + var _3_kmsUnwrap *m_AwsKmsKeyring.KmsUnwrapKeyMaterial + _ = _3_kmsUnwrap + var _nw0 *m_AwsKmsKeyring.KmsUnwrapKeyMaterial = m_AwsKmsKeyring.New_KmsUnwrapKeyMaterial_() + _ = _nw0 + _nw0.Ctor__((_this).Client(), _0_awsKmsKey, (_this).GrantTokens()) + _3_kmsUnwrap = _nw0 + var _4_unwrapOutputRes m_Wrappers.Result + _ = _4_unwrapOutputRes + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_EdkWrapping.Companion_Default___.UnwrapEdkMaterial(((helper).Dtor_edk()).Dtor_ciphertext(), (_this).Materials(), _3_kmsUnwrap) + _4_unwrapOutputRes = _out0 + var _5_valueOrError1 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_EdkWrapping.Companion_UnwrapEdkMaterialOutput_.Default(m_AwsKmsKeyring.Companion_KmsUnwrapInfo_.Default())) + _ = _5_valueOrError1 + _5_valueOrError1 = _4_unwrapOutputRes + if (_5_valueOrError1).IsFailure() { + res = (_5_valueOrError1).PropagateFailure() + return res + } + var _6_unwrapOutput m_EdkWrapping.UnwrapEdkMaterialOutput + _ = _6_unwrapOutput + _6_unwrapOutput = (_5_valueOrError1).Extract().(m_EdkWrapping.UnwrapEdkMaterialOutput) + res = m_Materials.Companion_Default___.DecryptionMaterialsAddDataKey((_this).Materials(), (_6_unwrapOutput).Dtor_plaintextDataKey(), (_6_unwrapOutput).Dtor_symmetricSigningKey()) + return res + } +} +func (_this *AwsKmsEncryptedDataKeyDecryptor) Materials() m_AwsCryptographyMaterialProvidersTypes.DecryptionMaterials { + { + return _this._materials + } +} +func (_this *AwsKmsEncryptedDataKeyDecryptor) Client() m_ComAmazonawsKmsTypes.IKMSClient { + { + return _this._client + } +} +func (_this *AwsKmsEncryptedDataKeyDecryptor) Region() _dafny.Sequence { + { + return _this._region + } +} +func (_this *AwsKmsEncryptedDataKeyDecryptor) GrantTokens() _dafny.Sequence { + { + return _this._grantTokens + } +} + +// End of class AwsKmsEncryptedDataKeyDecryptor diff --git a/customer-preview/mpl/AwsKmsMrkKeyring/AwsKmsMrkKeyring.go b/customer-preview/mpl/AwsKmsMrkKeyring/AwsKmsMrkKeyring.go new file mode 100644 index 000000000..85f9dc020 --- /dev/null +++ b/customer-preview/mpl/AwsKmsMrkKeyring/AwsKmsMrkKeyring.go @@ -0,0 +1,615 @@ +// Package AwsKmsMrkKeyring +// Dafny module AwsKmsMrkKeyring compiled into Go + +package AwsKmsMrkKeyring + +import ( + os "os" + + m_ComAmazonawsDynamodbTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/ComAmazonawsDynamodbTypes" + m_Com_Amazonaws_Dynamodb "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/Com_Amazonaws_Dynamodb" + m_ComAmazonawsKmsTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/ComAmazonawsKmsTypes" + m_Com_Amazonaws_Kms "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/Com_Amazonaws_Kms" + m_AlgorithmSuites "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AlgorithmSuites" + m_AwsArnParsing "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsArnParsing" + m_AwsCryptographyKeyStoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreOperations" + m_AwsCryptographyKeyStoreTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreTypes" + m_AwsCryptographyMaterialProvidersTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersTypes" + m_AwsKmsDiscoveryKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsDiscoveryKeyring" + m_AwsKmsKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsKeyring" + m_AwsKmsMrkAreUnique "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkAreUnique" + m_AwsKmsMrkDiscoveryKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkDiscoveryKeyring" + m_AwsKmsMrkMatchForDecrypt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkMatchForDecrypt" + m_AwsKmsUtils "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsUtils" + m_CanonicalEncryptionContext "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CanonicalEncryptionContext" + m_Constants "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Constants" + m_CreateKeyStoreTable "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeyStoreTable" + m_CreateKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeys" + m_DDBKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DDBKeystoreOperations" + m_DiscoveryMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DiscoveryMultiKeyring" + m_EdkWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/EdkWrapping" + m_ErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/ErrorMessages" + m_GetKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/GetKeys" + m_IntermediateKeyWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/IntermediateKeyWrapping" + m_KMSKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KMSKeystoreOperations" + m_KeyStore "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStore" + m_KeyStoreErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStoreErrorMessages" + m_Keyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Keyring" + m_KmsArn "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KmsArn" + m_MaterialWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MaterialWrapping" + m_Materials "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Materials" + m_MrkAwareDiscoveryMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MrkAwareDiscoveryMultiKeyring" + m_MultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MultiKeyring" + m_StrictMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StrictMultiKeyring" + m_Structure "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Structure" + m_AtomicPrimitives "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AtomicPrimitives" + m_AwsCryptographyPrimitivesOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesOperations" + m_AwsCryptographyPrimitivesTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesTypes" + m_Digest "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Digest" + m_HKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/HKDF" + m_KdfCtr "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/KdfCtr" + m_Random "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Random" + m_WrappedHKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHKDF" + m_WrappedHMAC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHMAC" + m_Actions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Actions" + m_Base64 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64" + m_Base64Lemmas "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64Lemmas" + m_BoundedInts "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/BoundedInts" + m_DivInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternals" + m_DivInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternalsNonlinear" + m_DivMod "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivMod" + m_FileIO "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FileIO" + m_FloatCompare "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FloatCompare" + m_Functions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Functions" + m_GeneralInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GeneralInternals" + m_GetOpt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GetOpt" + m_HexStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/HexStrings" + m_Logarithm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Logarithm" + m__Math "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Math_" + m_ModInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternals" + m_ModInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternalsNonlinear" + m_Mul "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Mul" + m_MulInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternals" + m_MulInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternalsNonlinear" + m_Power "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Power" + m_Relations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Relations" + m_Seq "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq" + m_Seq_MergeSort "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq_MergeSort" + m_Sorting "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Sorting" + m_StandardLibrary "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary" + m_StandardLibraryInterop "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibraryInterop" + m_StandardLibrary_Sequence "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_Sequence" + m_StandardLibrary_String "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_String" + m_StandardLibrary_UInt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_UInt" + m_Streams "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Streams" + m_UTF8 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UTF8" + m_UnicodeStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UnicodeStrings" + m__Unicode "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Unicode_" + m_Utf16EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf16EncodingForm" + m_Utf8EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf8EncodingForm" + m_Wrappers "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers" + m__System "github.com/dafny-lang/DafnyRuntimeGo/v4/System_" + _dafny "github.com/dafny-lang/DafnyRuntimeGo/v4/dafny" +) + +var _ = os.Args +var _ _dafny.Dummy__ +var _ m__System.Dummy__ +var _ m_Wrappers.Dummy__ +var _ m_BoundedInts.Dummy__ +var _ m_StandardLibrary_UInt.Dummy__ +var _ m_StandardLibrary_Sequence.Dummy__ +var _ m_StandardLibrary_String.Dummy__ +var _ m_StandardLibrary.Dummy__ +var _ m_AwsCryptographyPrimitivesTypes.Dummy__ +var _ m_Random.Dummy__ +var _ m_Digest.Dummy__ +var _ m_WrappedHMAC.Dummy__ +var _ m_HKDF.Dummy__ +var _ m_WrappedHKDF.Dummy__ +var _ m_KdfCtr.Dummy__ +var _ m_AwsCryptographyPrimitivesOperations.Dummy__ +var _ m_AtomicPrimitives.Dummy__ +var _ m_ComAmazonawsDynamodbTypes.Dummy__ +var _ m_ComAmazonawsKmsTypes.Dummy__ +var _ m_Relations.Dummy__ +var _ m_Seq_MergeSort.Dummy__ +var _ m__Math.Dummy__ +var _ m_Seq.Dummy__ +var _ m__Unicode.Dummy__ +var _ m_Functions.Dummy__ +var _ m_Utf8EncodingForm.Dummy__ +var _ m_Utf16EncodingForm.Dummy__ +var _ m_UnicodeStrings.Dummy__ +var _ m_FileIO.Dummy__ +var _ m_GeneralInternals.Dummy__ +var _ m_MulInternalsNonlinear.Dummy__ +var _ m_MulInternals.Dummy__ +var _ m_Mul.Dummy__ +var _ m_ModInternalsNonlinear.Dummy__ +var _ m_DivInternalsNonlinear.Dummy__ +var _ m_ModInternals.Dummy__ +var _ m_DivInternals.Dummy__ +var _ m_DivMod.Dummy__ +var _ m_Power.Dummy__ +var _ m_Logarithm.Dummy__ +var _ m_StandardLibraryInterop.Dummy__ +var _ m_Streams.Dummy__ +var _ m_Sorting.Dummy__ +var _ m_HexStrings.Dummy__ +var _ m_GetOpt.Dummy__ +var _ m_FloatCompare.Dummy__ +var _ m_Base64.Dummy__ +var _ m_Base64Lemmas.Dummy__ +var _ m_Actions.Dummy__ +var _ m_AwsCryptographyKeyStoreTypes.Dummy__ +var _ m_AwsCryptographyMaterialProvidersTypes.Dummy__ +var _ m_AwsArnParsing.Dummy__ +var _ m_AwsKmsMrkMatchForDecrypt.Dummy__ +var _ m_AwsKmsUtils.Dummy__ +var _ m_KeyStoreErrorMessages.Dummy__ +var _ m_KmsArn.Dummy__ +var _ m_Structure.Dummy__ +var _ m_KMSKeystoreOperations.Dummy__ +var _ m_DDBKeystoreOperations.Dummy__ +var _ m_CreateKeys.Dummy__ +var _ m_CreateKeyStoreTable.Dummy__ +var _ m_GetKeys.Dummy__ +var _ m_AwsCryptographyKeyStoreOperations.Dummy__ +var _ m_Com_Amazonaws_Kms.Dummy__ +var _ m_Com_Amazonaws_Dynamodb.Dummy__ +var _ m_KeyStore.Dummy__ +var _ m_AlgorithmSuites.Dummy__ +var _ m_Materials.Dummy__ +var _ m_Keyring.Dummy__ +var _ m_MultiKeyring.Dummy__ +var _ m_AwsKmsMrkAreUnique.Dummy__ +var _ m_Constants.Dummy__ +var _ m_MaterialWrapping.Dummy__ +var _ m_CanonicalEncryptionContext.Dummy__ +var _ m_IntermediateKeyWrapping.Dummy__ +var _ m_EdkWrapping.Dummy__ +var _ m_ErrorMessages.Dummy__ +var _ m_AwsKmsKeyring.Dummy__ +var _ m_StrictMultiKeyring.Dummy__ +var _ m_AwsKmsDiscoveryKeyring.Dummy__ +var _ m_DiscoveryMultiKeyring.Dummy__ +var _ m_AwsKmsMrkDiscoveryKeyring.Dummy__ +var _ m_MrkAwareDiscoveryMultiKeyring.Dummy__ + +type Dummy__ struct{} + +// Definition of class AwsKmsMrkKeyring +type AwsKmsMrkKeyring struct { + _client m_ComAmazonawsKmsTypes.IKMSClient + _awsKmsKey _dafny.Sequence + _grantTokens _dafny.Sequence + _awsKmsArn m_AwsArnParsing.AwsKmsIdentifier +} + +func New_AwsKmsMrkKeyring_() *AwsKmsMrkKeyring { + _this := AwsKmsMrkKeyring{} + + _this._client = (m_ComAmazonawsKmsTypes.IKMSClient)(nil) + _this._awsKmsKey = _dafny.EmptySeq.SetString() + _this._grantTokens = _dafny.EmptySeq + _this._awsKmsArn = m_AwsArnParsing.AwsKmsIdentifier{} + return &_this +} + +type CompanionStruct_AwsKmsMrkKeyring_ struct { +} + +var Companion_AwsKmsMrkKeyring_ = CompanionStruct_AwsKmsMrkKeyring_{} + +func (_this *AwsKmsMrkKeyring) Equals(other *AwsKmsMrkKeyring) bool { + return _this == other +} + +func (_this *AwsKmsMrkKeyring) EqualsGeneric(x interface{}) bool { + other, ok := x.(*AwsKmsMrkKeyring) + return ok && _this.Equals(other) +} + +func (*AwsKmsMrkKeyring) String() string { + return "AwsKmsMrkKeyring.AwsKmsMrkKeyring" +} + +func Type_AwsKmsMrkKeyring_() _dafny.TypeDescriptor { + return type_AwsKmsMrkKeyring_{} +} + +type type_AwsKmsMrkKeyring_ struct { +} + +func (_this type_AwsKmsMrkKeyring_) Default() interface{} { + return (*AwsKmsMrkKeyring)(nil) +} + +func (_this type_AwsKmsMrkKeyring_) String() string { + return "AwsKmsMrkKeyring.AwsKmsMrkKeyring" +} +func (_this *AwsKmsMrkKeyring) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){m_Keyring.Companion_VerifiableInterface_.TraitID_, m_AwsCryptographyMaterialProvidersTypes.Companion_IKeyring_.TraitID_} +} + +var _ m_Keyring.VerifiableInterface = &AwsKmsMrkKeyring{} +var _ m_AwsCryptographyMaterialProvidersTypes.IKeyring = &AwsKmsMrkKeyring{} +var _ _dafny.TraitOffspring = &AwsKmsMrkKeyring{} + +func (_this *AwsKmsMrkKeyring) OnDecrypt(input m_AwsCryptographyMaterialProvidersTypes.OnDecryptInput) m_Wrappers.Result { + var _out5 m_Wrappers.Result + _ = _out5 + _out5 = m_AwsCryptographyMaterialProvidersTypes.Companion_IKeyring_.OnDecrypt(_this, input) + return _out5 +} +func (_this *AwsKmsMrkKeyring) OnEncrypt(input m_AwsCryptographyMaterialProvidersTypes.OnEncryptInput) m_Wrappers.Result { + var _out5 m_Wrappers.Result + _ = _out5 + _out5 = m_AwsCryptographyMaterialProvidersTypes.Companion_IKeyring_.OnEncrypt(_this, input) + return _out5 +} +func (_this *AwsKmsMrkKeyring) Ctor__(client m_ComAmazonawsKmsTypes.IKMSClient, awsKmsKey _dafny.Sequence, grantTokens _dafny.Sequence) { + { + var _0_parsedAwsKmsId m_Wrappers.Result + _ = _0_parsedAwsKmsId + _0_parsedAwsKmsId = m_AwsArnParsing.Companion_Default___.ParseAwsKmsIdentifier(awsKmsKey) + (_this)._client = client + (_this)._awsKmsKey = awsKmsKey + (_this)._awsKmsArn = (_0_parsedAwsKmsId).Dtor_value().(m_AwsArnParsing.AwsKmsIdentifier) + (_this)._grantTokens = grantTokens + } +} +func (_this *AwsKmsMrkKeyring) OnEncrypt_k(input m_AwsCryptographyMaterialProvidersTypes.OnEncryptInput) m_Wrappers.Result { + { + var output m_Wrappers.Result = m_Wrappers.Result{} + _ = output + var _0_materials m_AwsCryptographyMaterialProvidersTypes.EncryptionMaterials + _ = _0_materials + _0_materials = (input).Dtor_materials() + var _1_suite m_AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo + _ = _1_suite + _1_suite = ((input).Dtor_materials()).Dtor_algorithmSuite() + var _2_valueOrError0 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptyMap) + _ = _2_valueOrError0 + _2_valueOrError0 = m_AwsKmsUtils.Companion_Default___.StringifyEncryptionContext(((input).Dtor_materials()).Dtor_encryptionContext()) + if (_2_valueOrError0).IsFailure() { + output = (_2_valueOrError0).PropagateFailure() + return output + } + var _3_stringifiedEncCtx _dafny.Map + _ = _3_stringifiedEncCtx + _3_stringifiedEncCtx = (_2_valueOrError0).Extract().(_dafny.Map) + var _4_kmsGenerateAndWrap *m_AwsKmsKeyring.KmsGenerateAndWrapKeyMaterial + _ = _4_kmsGenerateAndWrap + var _nw0 *m_AwsKmsKeyring.KmsGenerateAndWrapKeyMaterial = m_AwsKmsKeyring.New_KmsGenerateAndWrapKeyMaterial_() + _ = _nw0 + _nw0.Ctor__((_this).Client(), (_this).AwsKmsKey(), (_this).GrantTokens()) + _4_kmsGenerateAndWrap = _nw0 + var _5_kmsWrap *m_AwsKmsKeyring.KmsWrapKeyMaterial + _ = _5_kmsWrap + var _nw1 *m_AwsKmsKeyring.KmsWrapKeyMaterial = m_AwsKmsKeyring.New_KmsWrapKeyMaterial_() + _ = _nw1 + _nw1.Ctor__((_this).Client(), (_this).AwsKmsKey(), (_this).GrantTokens()) + _5_kmsWrap = _nw1 + var _6_valueOrError1 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_EdkWrapping.Companion_WrapEdkMaterialOutput_.Default(m_AwsKmsKeyring.Companion_KmsWrapInfo_.Default())) + _ = _6_valueOrError1 + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_EdkWrapping.Companion_Default___.WrapEdkMaterial(_0_materials, _5_kmsWrap, _4_kmsGenerateAndWrap) + _6_valueOrError1 = _out0 + if (_6_valueOrError1).IsFailure() { + output = (_6_valueOrError1).PropagateFailure() + return output + } + var _7_wrapOutput m_EdkWrapping.WrapEdkMaterialOutput + _ = _7_wrapOutput + _7_wrapOutput = (_6_valueOrError1).Extract().(m_EdkWrapping.WrapEdkMaterialOutput) + var _8_kmsKeyArn _dafny.Sequence + _ = _8_kmsKeyArn + _8_kmsKeyArn = ((_7_wrapOutput).Dtor_wrapInfo().(m_AwsKmsKeyring.KmsWrapInfo)).Dtor_kmsKeyArn() + var _9_symmetricSigningKeyList m_Wrappers.Option + _ = _9_symmetricSigningKeyList + if ((_7_wrapOutput).Dtor_symmetricSigningKey()).Is_Some() { + _9_symmetricSigningKeyList = m_Wrappers.Companion_Option_.Create_Some_(_dafny.SeqOf(((_7_wrapOutput).Dtor_symmetricSigningKey()).Dtor_value().(_dafny.Sequence))) + } else { + _9_symmetricSigningKeyList = m_Wrappers.Companion_Option_.Create_None_() + } + var _10_valueOrError2 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_UTF8.Companion_ValidUTF8Bytes_.Witness()) + _ = _10_valueOrError2 + _10_valueOrError2 = (m_UTF8.Encode(_8_kmsKeyArn)).MapFailure(func(coer69 func(_dafny.Sequence) m_AwsCryptographyMaterialProvidersTypes.Error) func(interface{}) interface{} { + return func(arg70 interface{}) interface{} { + return coer69(arg70.(_dafny.Sequence)) + } + }(m_AwsKmsUtils.Companion_Default___.WrapStringToError)) + if (_10_valueOrError2).IsFailure() { + output = (_10_valueOrError2).PropagateFailure() + return output + } + var _11_providerInfo _dafny.Sequence + _ = _11_providerInfo + _11_providerInfo = (_10_valueOrError2).Extract().(_dafny.Sequence) + var _12_valueOrError3 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _12_valueOrError3 + _12_valueOrError3 = m_Wrappers.Companion_Default___.Need((_dafny.IntOfUint32((_11_providerInfo).Cardinality())).Cmp(m_StandardLibrary_UInt.Companion_Default___.UINT16__LIMIT()) < 0, m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.SeqOfString("Invalid response from AWS KMS GenerateDataKey: Key ID too long."))) + if (_12_valueOrError3).IsFailure() { + output = (_12_valueOrError3).PropagateFailure() + return output + } + var _13_edk m_AwsCryptographyMaterialProvidersTypes.EncryptedDataKey + _ = _13_edk + _13_edk = m_AwsCryptographyMaterialProvidersTypes.Companion_EncryptedDataKey_.Create_EncryptedDataKey_(m_Constants.Companion_Default___.PROVIDER__ID(), _11_providerInfo, (_7_wrapOutput).Dtor_wrappedMaterial()) + if (_7_wrapOutput).Is_GenerateAndWrapEdkMaterialOutput() { + var _14_valueOrError4 m_Wrappers.Result = m_Wrappers.Result{} + _ = _14_valueOrError4 + _14_valueOrError4 = m_Materials.Companion_Default___.EncryptionMaterialAddDataKey(_0_materials, (_7_wrapOutput).Dtor_plaintextDataKey(), _dafny.SeqOf(_13_edk), _9_symmetricSigningKeyList) + if (_14_valueOrError4).IsFailure() { + output = (_14_valueOrError4).PropagateFailure() + return output + } + var _15_result m_AwsCryptographyMaterialProvidersTypes.EncryptionMaterials + _ = _15_result + _15_result = (_14_valueOrError4).Extract().(m_AwsCryptographyMaterialProvidersTypes.EncryptionMaterials) + output = m_Wrappers.Companion_Result_.Create_Success_(m_AwsCryptographyMaterialProvidersTypes.Companion_OnEncryptOutput_.Create_OnEncryptOutput_(_15_result)) + return output + } else if (_7_wrapOutput).Is_WrapOnlyEdkMaterialOutput() { + var _16_valueOrError5 m_Wrappers.Result = m_Wrappers.Result{} + _ = _16_valueOrError5 + _16_valueOrError5 = m_Materials.Companion_Default___.EncryptionMaterialAddEncryptedDataKeys(_0_materials, _dafny.SeqOf(_13_edk), _9_symmetricSigningKeyList) + if (_16_valueOrError5).IsFailure() { + output = (_16_valueOrError5).PropagateFailure() + return output + } + var _17_result m_AwsCryptographyMaterialProvidersTypes.EncryptionMaterials + _ = _17_result + _17_result = (_16_valueOrError5).Extract().(m_AwsCryptographyMaterialProvidersTypes.EncryptionMaterials) + output = m_Wrappers.Companion_Result_.Create_Success_(m_AwsCryptographyMaterialProvidersTypes.Companion_OnEncryptOutput_.Create_OnEncryptOutput_(_17_result)) + return output + } + return output + } +} +func (_this *AwsKmsMrkKeyring) OnDecrypt_k(input m_AwsCryptographyMaterialProvidersTypes.OnDecryptInput) m_Wrappers.Result { + { + var output m_Wrappers.Result = m_Wrappers.Result{} + _ = output + var _0_materials m_AwsCryptographyMaterialProvidersTypes.DecryptionMaterials + _ = _0_materials + _0_materials = (input).Dtor_materials() + var _1_suite m_AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo + _ = _1_suite + _1_suite = ((input).Dtor_materials()).Dtor_algorithmSuite() + var _2_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _2_valueOrError0 + _2_valueOrError0 = m_Wrappers.Companion_Default___.Need(m_Materials.Companion_Default___.DecryptionMaterialsWithoutPlaintextDataKey(_0_materials), m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.SeqOfString("Keyring received decryption materials that already contain a plaintext data key."))) + if (_2_valueOrError0).IsFailure() { + output = (_2_valueOrError0).PropagateFailure() + return output + } + var _3_valueOrError1 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _3_valueOrError1 + _3_valueOrError1 = m_AwsKmsUtils.Companion_Default___.OkForDecrypt((_this).AwsKmsArn(), (_this).AwsKmsKey()) + if (_3_valueOrError1).IsFailure() { + output = (_3_valueOrError1).PropagateFailure() + return output + } + var _4_filter *m_AwsKmsUtils.OnDecryptMrkAwareEncryptedDataKeyFilter + _ = _4_filter + var _nw0 *m_AwsKmsUtils.OnDecryptMrkAwareEncryptedDataKeyFilter = m_AwsKmsUtils.New_OnDecryptMrkAwareEncryptedDataKeyFilter_() + _ = _nw0 + _nw0.Ctor__((_this).AwsKmsArn(), m_Constants.Companion_Default___.PROVIDER__ID()) + _4_filter = _nw0 + var _5_valueOrError2 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = _5_valueOrError2 + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_Actions.Companion_Default___.FilterWithResult(_4_filter, (input).Dtor_encryptedDataKeys()) + _5_valueOrError2 = _out0 + if (_5_valueOrError2).IsFailure() { + output = (_5_valueOrError2).PropagateFailure() + return output + } + var _6_edksToAttempt _dafny.Sequence + _ = _6_edksToAttempt + _6_edksToAttempt = (_5_valueOrError2).Extract().(_dafny.Sequence) + if (_dafny.IntOfUint32((_6_edksToAttempt).Cardinality())).Sign() == 0 { + var _7_valueOrError3 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq.SetString()) + _ = _7_valueOrError3 + _7_valueOrError3 = m_ErrorMessages.Companion_Default___.IncorrectDataKeys((input).Dtor_encryptedDataKeys(), ((input).Dtor_materials()).Dtor_algorithmSuite(), _dafny.SeqOfString("")) + if (_7_valueOrError3).IsFailure() { + output = (_7_valueOrError3).PropagateFailure() + return output + } + var _8_errorMessage _dafny.Sequence + _ = _8_errorMessage + _8_errorMessage = (_7_valueOrError3).Extract().(_dafny.Sequence) + output = m_Wrappers.Companion_Result_.Create_Failure_(m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_8_errorMessage)) + return output + } + var _9_decryptClosure *DecryptSingleEncryptedDataKey + _ = _9_decryptClosure + var _nw1 *DecryptSingleEncryptedDataKey = New_DecryptSingleEncryptedDataKey_() + _ = _nw1 + _nw1.Ctor__(_0_materials, (_this).Client(), (_this).AwsKmsKey(), (_this).GrantTokens()) + _9_decryptClosure = _nw1 + var _10_outcome m_Wrappers.Result + _ = _10_outcome + var _out1 m_Wrappers.Result + _ = _out1 + _out1 = m_Actions.Companion_Default___.ReduceToSuccess(_9_decryptClosure, _6_edksToAttempt) + _10_outcome = _out1 + var _11_valueOrError4 m_Wrappers.Result = m_Wrappers.Result{} + _ = _11_valueOrError4 + _11_valueOrError4 = (_10_outcome).MapFailure(func(coer70 func(_dafny.Sequence) m_AwsCryptographyMaterialProvidersTypes.Error) func(interface{}) interface{} { + return func(arg71 interface{}) interface{} { + return coer70(arg71.(_dafny.Sequence)) + } + }(func(_12_errors _dafny.Sequence) m_AwsCryptographyMaterialProvidersTypes.Error { + return m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_CollectionOfErrors_(_12_errors, _dafny.SeqOfString("No Configured KMS Key was able to decrypt the Data Key. The list of encountered Exceptions is available via `list`.")) + })) + if (_11_valueOrError4).IsFailure() { + output = (_11_valueOrError4).PropagateFailure() + return output + } + var _13_SealedDecryptionMaterials m_AwsCryptographyMaterialProvidersTypes.DecryptionMaterials + _ = _13_SealedDecryptionMaterials + _13_SealedDecryptionMaterials = (_11_valueOrError4).Extract().(m_AwsCryptographyMaterialProvidersTypes.DecryptionMaterials) + output = m_Wrappers.Companion_Result_.Create_Success_(m_AwsCryptographyMaterialProvidersTypes.Companion_OnDecryptOutput_.Create_OnDecryptOutput_(_13_SealedDecryptionMaterials)) + return output + return output + } +} +func (_this *AwsKmsMrkKeyring) Client() m_ComAmazonawsKmsTypes.IKMSClient { + { + return _this._client + } +} +func (_this *AwsKmsMrkKeyring) AwsKmsKey() _dafny.Sequence { + { + return _this._awsKmsKey + } +} +func (_this *AwsKmsMrkKeyring) GrantTokens() _dafny.Sequence { + { + return _this._grantTokens + } +} +func (_this *AwsKmsMrkKeyring) AwsKmsArn() m_AwsArnParsing.AwsKmsIdentifier { + { + return _this._awsKmsArn + } +} + +// End of class AwsKmsMrkKeyring + +// Definition of class DecryptSingleEncryptedDataKey +type DecryptSingleEncryptedDataKey struct { + _materials m_AwsCryptographyMaterialProvidersTypes.DecryptionMaterials + _client m_ComAmazonawsKmsTypes.IKMSClient + _awsKmsKey _dafny.Sequence + _grantTokens _dafny.Sequence +} + +func New_DecryptSingleEncryptedDataKey_() *DecryptSingleEncryptedDataKey { + _this := DecryptSingleEncryptedDataKey{} + + _this._materials = m_AwsCryptographyMaterialProvidersTypes.DecryptionMaterials{} + _this._client = (m_ComAmazonawsKmsTypes.IKMSClient)(nil) + _this._awsKmsKey = _dafny.EmptySeq.SetString() + _this._grantTokens = _dafny.EmptySeq + return &_this +} + +type CompanionStruct_DecryptSingleEncryptedDataKey_ struct { +} + +var Companion_DecryptSingleEncryptedDataKey_ = CompanionStruct_DecryptSingleEncryptedDataKey_{} + +func (_this *DecryptSingleEncryptedDataKey) Equals(other *DecryptSingleEncryptedDataKey) bool { + return _this == other +} + +func (_this *DecryptSingleEncryptedDataKey) EqualsGeneric(x interface{}) bool { + other, ok := x.(*DecryptSingleEncryptedDataKey) + return ok && _this.Equals(other) +} + +func (*DecryptSingleEncryptedDataKey) String() string { + return "AwsKmsMrkKeyring.DecryptSingleEncryptedDataKey" +} + +func Type_DecryptSingleEncryptedDataKey_() _dafny.TypeDescriptor { + return type_DecryptSingleEncryptedDataKey_{} +} + +type type_DecryptSingleEncryptedDataKey_ struct { +} + +func (_this type_DecryptSingleEncryptedDataKey_) Default() interface{} { + return (*DecryptSingleEncryptedDataKey)(nil) +} + +func (_this type_DecryptSingleEncryptedDataKey_) String() string { + return "AwsKmsMrkKeyring.DecryptSingleEncryptedDataKey" +} +func (_this *DecryptSingleEncryptedDataKey) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){m_Actions.Companion_ActionWithResult_.TraitID_, m_Actions.Companion_Action_.TraitID_} +} + +var _ m_Actions.ActionWithResult = &DecryptSingleEncryptedDataKey{} +var _ m_Actions.Action = &DecryptSingleEncryptedDataKey{} +var _ _dafny.TraitOffspring = &DecryptSingleEncryptedDataKey{} + +func (_this *DecryptSingleEncryptedDataKey) Ctor__(materials m_AwsCryptographyMaterialProvidersTypes.DecryptionMaterials, client m_ComAmazonawsKmsTypes.IKMSClient, awsKmsKey _dafny.Sequence, grantTokens _dafny.Sequence) { + { + (_this)._materials = materials + (_this)._client = client + (_this)._awsKmsKey = awsKmsKey + (_this)._grantTokens = grantTokens + } +} +func (_this *DecryptSingleEncryptedDataKey) Invoke(edk interface{}) interface{} { + { + var edk m_AwsCryptographyMaterialProvidersTypes.EncryptedDataKey = edk.(m_AwsCryptographyMaterialProvidersTypes.EncryptedDataKey) + _ = edk + var res m_Wrappers.Result = m_Wrappers.Result{} + _ = res + var _0_kmsUnwrap *m_AwsKmsKeyring.KmsUnwrapKeyMaterial + _ = _0_kmsUnwrap + var _nw0 *m_AwsKmsKeyring.KmsUnwrapKeyMaterial = m_AwsKmsKeyring.New_KmsUnwrapKeyMaterial_() + _ = _nw0 + _nw0.Ctor__((_this).Client(), (_this).AwsKmsKey(), (_this).GrantTokens()) + _0_kmsUnwrap = _nw0 + var _1_unwrapOutputRes m_Wrappers.Result + _ = _1_unwrapOutputRes + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_EdkWrapping.Companion_Default___.UnwrapEdkMaterial((edk).Dtor_ciphertext(), (_this).Materials(), _0_kmsUnwrap) + _1_unwrapOutputRes = _out0 + var _2_valueOrError0 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_EdkWrapping.Companion_UnwrapEdkMaterialOutput_.Default(m_AwsKmsKeyring.Companion_KmsUnwrapInfo_.Default())) + _ = _2_valueOrError0 + _2_valueOrError0 = _1_unwrapOutputRes + if (_2_valueOrError0).IsFailure() { + res = (_2_valueOrError0).PropagateFailure() + return res + } + var _3_unwrapOutput m_EdkWrapping.UnwrapEdkMaterialOutput + _ = _3_unwrapOutput + _3_unwrapOutput = (_2_valueOrError0).Extract().(m_EdkWrapping.UnwrapEdkMaterialOutput) + var _4_valueOrError1 m_Wrappers.Result = m_Wrappers.Result{} + _ = _4_valueOrError1 + _4_valueOrError1 = m_Materials.Companion_Default___.DecryptionMaterialsAddDataKey((_this).Materials(), (_3_unwrapOutput).Dtor_plaintextDataKey(), (_3_unwrapOutput).Dtor_symmetricSigningKey()) + if (_4_valueOrError1).IsFailure() { + res = (_4_valueOrError1).PropagateFailure() + return res + } + var _5_result m_AwsCryptographyMaterialProvidersTypes.DecryptionMaterials + _ = _5_result + _5_result = (_4_valueOrError1).Extract().(m_AwsCryptographyMaterialProvidersTypes.DecryptionMaterials) + res = m_Wrappers.Companion_Result_.Create_Success_(_5_result) + return res + return res + } +} +func (_this *DecryptSingleEncryptedDataKey) Materials() m_AwsCryptographyMaterialProvidersTypes.DecryptionMaterials { + { + return _this._materials + } +} +func (_this *DecryptSingleEncryptedDataKey) Client() m_ComAmazonawsKmsTypes.IKMSClient { + { + return _this._client + } +} +func (_this *DecryptSingleEncryptedDataKey) AwsKmsKey() _dafny.Sequence { + { + return _this._awsKmsKey + } +} +func (_this *DecryptSingleEncryptedDataKey) GrantTokens() _dafny.Sequence { + { + return _this._grantTokens + } +} + +// End of class DecryptSingleEncryptedDataKey diff --git a/customer-preview/mpl/AwsKmsMrkMatchForDecrypt/AwsKmsMrkMatchForDecrypt.go b/customer-preview/mpl/AwsKmsMrkMatchForDecrypt/AwsKmsMrkMatchForDecrypt.go new file mode 100644 index 000000000..4b1f72300 --- /dev/null +++ b/customer-preview/mpl/AwsKmsMrkMatchForDecrypt/AwsKmsMrkMatchForDecrypt.go @@ -0,0 +1,184 @@ +// Package AwsKmsMrkMatchForDecrypt +// Dafny module AwsKmsMrkMatchForDecrypt compiled into Go + +package AwsKmsMrkMatchForDecrypt + +import ( + os "os" + + m_ComAmazonawsDynamodbTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/ComAmazonawsDynamodbTypes" + m_ComAmazonawsKmsTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/ComAmazonawsKmsTypes" + m_AwsArnParsing "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsArnParsing" + m_AwsCryptographyKeyStoreTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreTypes" + m_AwsCryptographyMaterialProvidersTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersTypes" + m_AtomicPrimitives "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AtomicPrimitives" + m_AwsCryptographyPrimitivesOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesOperations" + m_AwsCryptographyPrimitivesTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesTypes" + m_Digest "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Digest" + m_HKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/HKDF" + m_KdfCtr "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/KdfCtr" + m_Random "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Random" + m_WrappedHKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHKDF" + m_WrappedHMAC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHMAC" + m_Actions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Actions" + m_Base64 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64" + m_Base64Lemmas "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64Lemmas" + m_BoundedInts "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/BoundedInts" + m_DivInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternals" + m_DivInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternalsNonlinear" + m_DivMod "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivMod" + m_FileIO "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FileIO" + m_FloatCompare "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FloatCompare" + m_Functions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Functions" + m_GeneralInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GeneralInternals" + m_GetOpt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GetOpt" + m_HexStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/HexStrings" + m_Logarithm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Logarithm" + m__Math "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Math_" + m_ModInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternals" + m_ModInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternalsNonlinear" + m_Mul "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Mul" + m_MulInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternals" + m_MulInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternalsNonlinear" + m_Power "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Power" + m_Relations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Relations" + m_Seq "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq" + m_Seq_MergeSort "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq_MergeSort" + m_Sorting "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Sorting" + m_StandardLibrary "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary" + m_StandardLibraryInterop "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibraryInterop" + m_StandardLibrary_Sequence "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_Sequence" + m_StandardLibrary_String "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_String" + m_StandardLibrary_UInt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_UInt" + m_Streams "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Streams" + m_UnicodeStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UnicodeStrings" + m__Unicode "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Unicode_" + m_Utf16EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf16EncodingForm" + m_Utf8EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf8EncodingForm" + m_Wrappers "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers" + m__System "github.com/dafny-lang/DafnyRuntimeGo/v4/System_" + _dafny "github.com/dafny-lang/DafnyRuntimeGo/v4/dafny" +) + +var _ = os.Args +var _ _dafny.Dummy__ +var _ m__System.Dummy__ +var _ m_Wrappers.Dummy__ +var _ m_BoundedInts.Dummy__ +var _ m_StandardLibrary_UInt.Dummy__ +var _ m_StandardLibrary_Sequence.Dummy__ +var _ m_StandardLibrary_String.Dummy__ +var _ m_StandardLibrary.Dummy__ +var _ m_AwsCryptographyPrimitivesTypes.Dummy__ +var _ m_Random.Dummy__ +var _ m_Digest.Dummy__ +var _ m_WrappedHMAC.Dummy__ +var _ m_HKDF.Dummy__ +var _ m_WrappedHKDF.Dummy__ +var _ m_KdfCtr.Dummy__ +var _ m_AwsCryptographyPrimitivesOperations.Dummy__ +var _ m_AtomicPrimitives.Dummy__ +var _ m_ComAmazonawsDynamodbTypes.Dummy__ +var _ m_ComAmazonawsKmsTypes.Dummy__ +var _ m_Relations.Dummy__ +var _ m_Seq_MergeSort.Dummy__ +var _ m__Math.Dummy__ +var _ m_Seq.Dummy__ +var _ m__Unicode.Dummy__ +var _ m_Functions.Dummy__ +var _ m_Utf8EncodingForm.Dummy__ +var _ m_Utf16EncodingForm.Dummy__ +var _ m_UnicodeStrings.Dummy__ +var _ m_FileIO.Dummy__ +var _ m_GeneralInternals.Dummy__ +var _ m_MulInternalsNonlinear.Dummy__ +var _ m_MulInternals.Dummy__ +var _ m_Mul.Dummy__ +var _ m_ModInternalsNonlinear.Dummy__ +var _ m_DivInternalsNonlinear.Dummy__ +var _ m_ModInternals.Dummy__ +var _ m_DivInternals.Dummy__ +var _ m_DivMod.Dummy__ +var _ m_Power.Dummy__ +var _ m_Logarithm.Dummy__ +var _ m_StandardLibraryInterop.Dummy__ +var _ m_Streams.Dummy__ +var _ m_Sorting.Dummy__ +var _ m_HexStrings.Dummy__ +var _ m_GetOpt.Dummy__ +var _ m_FloatCompare.Dummy__ +var _ m_Base64.Dummy__ +var _ m_Base64Lemmas.Dummy__ +var _ m_Actions.Dummy__ +var _ m_AwsCryptographyKeyStoreTypes.Dummy__ +var _ m_AwsCryptographyMaterialProvidersTypes.Dummy__ +var _ m_AwsArnParsing.Dummy__ + +type Dummy__ struct{} + +// Definition of class Default__ +type Default__ struct { + dummy byte +} + +func New_Default___() *Default__ { + _this := Default__{} + + return &_this +} + +type CompanionStruct_Default___ struct { +} + +var Companion_Default___ = CompanionStruct_Default___{} + +func (_this *Default__) Equals(other *Default__) bool { + return _this == other +} + +func (_this *Default__) EqualsGeneric(x interface{}) bool { + other, ok := x.(*Default__) + return ok && _this.Equals(other) +} + +func (*Default__) String() string { + return "AwsKmsMrkMatchForDecrypt.Default__" +} +func (_this *Default__) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = &Default__{} + +func (_static *CompanionStruct_Default___) AwsKmsMrkMatchForDecrypt(configuredAwsKmsIdentifier m_AwsArnParsing.AwsKmsIdentifier, messageAwsKmsIdentifer m_AwsArnParsing.AwsKmsIdentifier) bool { + if (configuredAwsKmsIdentifier).Equals(messageAwsKmsIdentifer) { + return true + } else { + var _source0 _dafny.Tuple = _dafny.TupleOf(messageAwsKmsIdentifer, configuredAwsKmsIdentifier) + _ = _source0 + { + var _00 m_AwsArnParsing.AwsKmsIdentifier = (*(_source0).IndexInt(0)).(m_AwsArnParsing.AwsKmsIdentifier) + _ = _00 + if _00.Is_AwsKmsArnIdentifier() { + var _0_configuredAwsKmsArn m_AwsArnParsing.AwsArn = _00.Get_().(m_AwsArnParsing.AwsKmsIdentifier_AwsKmsArnIdentifier).A + _ = _0_configuredAwsKmsArn + var _10 m_AwsArnParsing.AwsKmsIdentifier = (*(_source0).IndexInt(1)).(m_AwsArnParsing.AwsKmsIdentifier) + _ = _10 + if _10.Is_AwsKmsArnIdentifier() { + var _1_messageAwsKmsArn m_AwsArnParsing.AwsArn = _10.Get_().(m_AwsArnParsing.AwsKmsIdentifier_AwsKmsArnIdentifier).A + _ = _1_messageAwsKmsArn + if (!(m_AwsArnParsing.Companion_Default___.IsMultiRegionAwsKmsArn(_0_configuredAwsKmsArn))) || (!(m_AwsArnParsing.Companion_Default___.IsMultiRegionAwsKmsArn(_1_messageAwsKmsArn))) { + return false + } else { + return (((_dafny.Companion_Sequence_.Equal((_1_messageAwsKmsArn).Dtor_partition(), (_0_configuredAwsKmsArn).Dtor_partition())) && (_dafny.Companion_Sequence_.Equal((_1_messageAwsKmsArn).Dtor_service(), (_0_configuredAwsKmsArn).Dtor_service()))) && (_dafny.Companion_Sequence_.Equal((_1_messageAwsKmsArn).Dtor_account(), (_0_configuredAwsKmsArn).Dtor_account()))) && (((_1_messageAwsKmsArn).Dtor_resource()).Equals((_0_configuredAwsKmsArn).Dtor_resource())) + } + } + } + } + { + return false + } + } +} + +// End of class Default__ diff --git a/customer-preview/mpl/AwsKmsRsaKeyring/AwsKmsRsaKeyring.go b/customer-preview/mpl/AwsKmsRsaKeyring/AwsKmsRsaKeyring.go new file mode 100644 index 000000000..1c290db0d --- /dev/null +++ b/customer-preview/mpl/AwsKmsRsaKeyring/AwsKmsRsaKeyring.go @@ -0,0 +1,1397 @@ +// Package AwsKmsRsaKeyring +// Dafny module AwsKmsRsaKeyring compiled into Go + +package AwsKmsRsaKeyring + +import ( + os "os" + + m_ComAmazonawsDynamodbTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/ComAmazonawsDynamodbTypes" + m_Com_Amazonaws_Dynamodb "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/Com_Amazonaws_Dynamodb" + m_ComAmazonawsKmsTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/ComAmazonawsKmsTypes" + m_Com_Amazonaws_Kms "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/Com_Amazonaws_Kms" + m_AlgorithmSuites "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AlgorithmSuites" + m_AwsArnParsing "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsArnParsing" + m_AwsCryptographyKeyStoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreOperations" + m_AwsCryptographyKeyStoreTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreTypes" + m_AwsCryptographyMaterialProvidersTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersTypes" + m_AwsKmsDiscoveryKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsDiscoveryKeyring" + m_AwsKmsHierarchicalKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsHierarchicalKeyring" + m_AwsKmsKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsKeyring" + m_AwsKmsMrkAreUnique "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkAreUnique" + m_AwsKmsMrkDiscoveryKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkDiscoveryKeyring" + m_AwsKmsMrkKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkKeyring" + m_AwsKmsMrkMatchForDecrypt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkMatchForDecrypt" + m_AwsKmsUtils "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsUtils" + m_CacheConstants "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CacheConstants" + m_CanonicalEncryptionContext "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CanonicalEncryptionContext" + m_Constants "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Constants" + m_CreateKeyStoreTable "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeyStoreTable" + m_CreateKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeys" + m_DDBKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DDBKeystoreOperations" + m_DiscoveryMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DiscoveryMultiKeyring" + m_EdkWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/EdkWrapping" + m_ErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/ErrorMessages" + m_GetKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/GetKeys" + m_IntermediateKeyWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/IntermediateKeyWrapping" + m_KMSKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KMSKeystoreOperations" + m_KeyStore "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStore" + m_KeyStoreErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStoreErrorMessages" + m_Keyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Keyring" + m_KmsArn "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KmsArn" + m_LocalCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/LocalCMC" + m_MaterialWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MaterialWrapping" + m_Materials "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Materials" + m_MrkAwareDiscoveryMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MrkAwareDiscoveryMultiKeyring" + m_MrkAwareStrictMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MrkAwareStrictMultiKeyring" + m_MultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MultiKeyring" + m_StormTracker "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StormTracker" + m_StormTrackingCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StormTrackingCMC" + m_StrictMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StrictMultiKeyring" + m_Structure "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Structure" + m_SynchronizedLocalCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/SynchronizedLocalCMC" + m_AtomicPrimitives "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AtomicPrimitives" + m_AwsCryptographyPrimitivesOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesOperations" + m_AwsCryptographyPrimitivesTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesTypes" + m_Digest "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Digest" + m_HKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/HKDF" + m_KdfCtr "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/KdfCtr" + m_Random "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Random" + m_WrappedHKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHKDF" + m_WrappedHMAC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHMAC" + m_Actions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Actions" + m_Base64 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64" + m_Base64Lemmas "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64Lemmas" + m_BoundedInts "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/BoundedInts" + m_DivInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternals" + m_DivInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternalsNonlinear" + m_DivMod "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivMod" + m_FileIO "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FileIO" + m_FloatCompare "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FloatCompare" + m_Functions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Functions" + m_GeneralInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GeneralInternals" + m_GetOpt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GetOpt" + m_HexStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/HexStrings" + m_Logarithm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Logarithm" + m__Math "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Math_" + m_ModInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternals" + m_ModInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternalsNonlinear" + m_Mul "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Mul" + m_MulInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternals" + m_MulInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternalsNonlinear" + m_Power "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Power" + m_Relations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Relations" + m_Seq "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq" + m_Seq_MergeSort "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq_MergeSort" + m_Sorting "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Sorting" + m_StandardLibrary "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary" + m_StandardLibraryInterop "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibraryInterop" + m_StandardLibrary_Sequence "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_Sequence" + m_StandardLibrary_String "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_String" + m_StandardLibrary_UInt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_UInt" + m_Streams "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Streams" + m_UTF8 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UTF8" + m_UnicodeStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UnicodeStrings" + m__Unicode "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Unicode_" + m_Utf16EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf16EncodingForm" + m_Utf8EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf8EncodingForm" + m_Wrappers "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers" + m__System "github.com/dafny-lang/DafnyRuntimeGo/v4/System_" + _dafny "github.com/dafny-lang/DafnyRuntimeGo/v4/dafny" +) + +var _ = os.Args +var _ _dafny.Dummy__ +var _ m__System.Dummy__ +var _ m_Wrappers.Dummy__ +var _ m_BoundedInts.Dummy__ +var _ m_StandardLibrary_UInt.Dummy__ +var _ m_StandardLibrary_Sequence.Dummy__ +var _ m_StandardLibrary_String.Dummy__ +var _ m_StandardLibrary.Dummy__ +var _ m_AwsCryptographyPrimitivesTypes.Dummy__ +var _ m_Random.Dummy__ +var _ m_Digest.Dummy__ +var _ m_WrappedHMAC.Dummy__ +var _ m_HKDF.Dummy__ +var _ m_WrappedHKDF.Dummy__ +var _ m_KdfCtr.Dummy__ +var _ m_AwsCryptographyPrimitivesOperations.Dummy__ +var _ m_AtomicPrimitives.Dummy__ +var _ m_ComAmazonawsDynamodbTypes.Dummy__ +var _ m_ComAmazonawsKmsTypes.Dummy__ +var _ m_Relations.Dummy__ +var _ m_Seq_MergeSort.Dummy__ +var _ m__Math.Dummy__ +var _ m_Seq.Dummy__ +var _ m__Unicode.Dummy__ +var _ m_Functions.Dummy__ +var _ m_Utf8EncodingForm.Dummy__ +var _ m_Utf16EncodingForm.Dummy__ +var _ m_UnicodeStrings.Dummy__ +var _ m_FileIO.Dummy__ +var _ m_GeneralInternals.Dummy__ +var _ m_MulInternalsNonlinear.Dummy__ +var _ m_MulInternals.Dummy__ +var _ m_Mul.Dummy__ +var _ m_ModInternalsNonlinear.Dummy__ +var _ m_DivInternalsNonlinear.Dummy__ +var _ m_ModInternals.Dummy__ +var _ m_DivInternals.Dummy__ +var _ m_DivMod.Dummy__ +var _ m_Power.Dummy__ +var _ m_Logarithm.Dummy__ +var _ m_StandardLibraryInterop.Dummy__ +var _ m_Streams.Dummy__ +var _ m_Sorting.Dummy__ +var _ m_HexStrings.Dummy__ +var _ m_GetOpt.Dummy__ +var _ m_FloatCompare.Dummy__ +var _ m_Base64.Dummy__ +var _ m_Base64Lemmas.Dummy__ +var _ m_Actions.Dummy__ +var _ m_AwsCryptographyKeyStoreTypes.Dummy__ +var _ m_AwsCryptographyMaterialProvidersTypes.Dummy__ +var _ m_AwsArnParsing.Dummy__ +var _ m_AwsKmsMrkMatchForDecrypt.Dummy__ +var _ m_AwsKmsUtils.Dummy__ +var _ m_KeyStoreErrorMessages.Dummy__ +var _ m_KmsArn.Dummy__ +var _ m_Structure.Dummy__ +var _ m_KMSKeystoreOperations.Dummy__ +var _ m_DDBKeystoreOperations.Dummy__ +var _ m_CreateKeys.Dummy__ +var _ m_CreateKeyStoreTable.Dummy__ +var _ m_GetKeys.Dummy__ +var _ m_AwsCryptographyKeyStoreOperations.Dummy__ +var _ m_Com_Amazonaws_Kms.Dummy__ +var _ m_Com_Amazonaws_Dynamodb.Dummy__ +var _ m_KeyStore.Dummy__ +var _ m_AlgorithmSuites.Dummy__ +var _ m_Materials.Dummy__ +var _ m_Keyring.Dummy__ +var _ m_MultiKeyring.Dummy__ +var _ m_AwsKmsMrkAreUnique.Dummy__ +var _ m_Constants.Dummy__ +var _ m_MaterialWrapping.Dummy__ +var _ m_CanonicalEncryptionContext.Dummy__ +var _ m_IntermediateKeyWrapping.Dummy__ +var _ m_EdkWrapping.Dummy__ +var _ m_ErrorMessages.Dummy__ +var _ m_AwsKmsKeyring.Dummy__ +var _ m_StrictMultiKeyring.Dummy__ +var _ m_AwsKmsDiscoveryKeyring.Dummy__ +var _ m_DiscoveryMultiKeyring.Dummy__ +var _ m_AwsKmsMrkDiscoveryKeyring.Dummy__ +var _ m_MrkAwareDiscoveryMultiKeyring.Dummy__ +var _ m_AwsKmsMrkKeyring.Dummy__ +var _ m_MrkAwareStrictMultiKeyring.Dummy__ +var _ m_LocalCMC.Dummy__ +var _ m_SynchronizedLocalCMC.Dummy__ +var _ m_StormTracker.Dummy__ +var _ m_StormTrackingCMC.Dummy__ +var _ m_CacheConstants.Dummy__ +var _ m_AwsKmsHierarchicalKeyring.Dummy__ + +type Dummy__ struct{} + +// Definition of class Default__ +type Default__ struct { + dummy byte +} + +func New_Default___() *Default__ { + _this := Default__{} + + return &_this +} + +type CompanionStruct_Default___ struct { +} + +var Companion_Default___ = CompanionStruct_Default___{} + +func (_this *Default__) Equals(other *Default__) bool { + return _this == other +} + +func (_this *Default__) EqualsGeneric(x interface{}) bool { + other, ok := x.(*Default__) + return ok && _this.Equals(other) +} + +func (*Default__) String() string { + return "AwsKmsRsaKeyring.Default__" +} +func (_this *Default__) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = &Default__{} + +func (_static *CompanionStruct_Default___) EncryptionContextDigest(cryptoPrimitives *m_AtomicPrimitives.AtomicPrimitivesClient, encryptionContext _dafny.Map) m_Wrappers.Result { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = output + var _0_valueOrError0 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = _0_valueOrError0 + _0_valueOrError0 = m_CanonicalEncryptionContext.Companion_Default___.EncryptionContextToAAD(encryptionContext) + if (_0_valueOrError0).IsFailure() { + output = (_0_valueOrError0).PropagateFailure() + return output + } + var _1_canonicalEC _dafny.Sequence + _ = _1_canonicalEC + _1_canonicalEC = (_0_valueOrError0).Extract().(_dafny.Sequence) + var _2_DigestInput m_AwsCryptographyPrimitivesTypes.DigestInput + _ = _2_DigestInput + _2_DigestInput = m_AwsCryptographyPrimitivesTypes.Companion_DigestInput_.Create_DigestInput_(m_AwsCryptographyPrimitivesTypes.Companion_DigestAlgorithm_.Create_SHA__384_(), _1_canonicalEC) + var _3_maybeDigest m_Wrappers.Result + _ = _3_maybeDigest + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = (cryptoPrimitives).Digest(_2_DigestInput) + _3_maybeDigest = _out0 + var _4_valueOrError1 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = _4_valueOrError1 + _4_valueOrError1 = (_3_maybeDigest).MapFailure(func(coer97 func(m_AwsCryptographyPrimitivesTypes.Error) m_AwsCryptographyMaterialProvidersTypes.Error) func(interface{}) interface{} { + return func(arg98 interface{}) interface{} { + return coer97(arg98.(m_AwsCryptographyPrimitivesTypes.Error)) + } + }(func(_5_e m_AwsCryptographyPrimitivesTypes.Error) m_AwsCryptographyMaterialProvidersTypes.Error { + return m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographyPrimitives_(_5_e) + })) + if (_4_valueOrError1).IsFailure() { + output = (_4_valueOrError1).PropagateFailure() + return output + } + var _6_digest _dafny.Sequence + _ = _6_digest + _6_digest = (_4_valueOrError1).Extract().(_dafny.Sequence) + output = m_Wrappers.Companion_Result_.Create_Success_(_6_digest) + return output + return output +} +func (_static *CompanionStruct_Default___) MIN__KMS__RSA__KEY__LEN() int32 { + return int32(2048) +} + +// End of class Default__ + +// Definition of class AwsKmsRsaKeyring +type AwsKmsRsaKeyring struct { + _cryptoPrimitives *m_AtomicPrimitives.AtomicPrimitivesClient + _client m_Wrappers.Option + _paddingScheme m_ComAmazonawsKmsTypes.EncryptionAlgorithmSpec + _awsKmsKey _dafny.Sequence + _publicKey m_Wrappers.Option + _awsKmsArn m_AwsArnParsing.AwsKmsIdentifier + _grantTokens _dafny.Sequence +} + +func New_AwsKmsRsaKeyring_() *AwsKmsRsaKeyring { + _this := AwsKmsRsaKeyring{} + + _this._cryptoPrimitives = (*m_AtomicPrimitives.AtomicPrimitivesClient)(nil) + _this._client = m_Wrappers.Companion_Option_.Default() + _this._paddingScheme = m_ComAmazonawsKmsTypes.Companion_EncryptionAlgorithmSpec_.Default() + _this._awsKmsKey = _dafny.EmptySeq.SetString() + _this._publicKey = m_Wrappers.Companion_Option_.Default() + _this._awsKmsArn = m_AwsArnParsing.AwsKmsIdentifier{} + _this._grantTokens = _dafny.EmptySeq + return &_this +} + +type CompanionStruct_AwsKmsRsaKeyring_ struct { +} + +var Companion_AwsKmsRsaKeyring_ = CompanionStruct_AwsKmsRsaKeyring_{} + +func (_this *AwsKmsRsaKeyring) Equals(other *AwsKmsRsaKeyring) bool { + return _this == other +} + +func (_this *AwsKmsRsaKeyring) EqualsGeneric(x interface{}) bool { + other, ok := x.(*AwsKmsRsaKeyring) + return ok && _this.Equals(other) +} + +func (*AwsKmsRsaKeyring) String() string { + return "AwsKmsRsaKeyring.AwsKmsRsaKeyring" +} + +func Type_AwsKmsRsaKeyring_() _dafny.TypeDescriptor { + return type_AwsKmsRsaKeyring_{} +} + +type type_AwsKmsRsaKeyring_ struct { +} + +func (_this type_AwsKmsRsaKeyring_) Default() interface{} { + return (*AwsKmsRsaKeyring)(nil) +} + +func (_this type_AwsKmsRsaKeyring_) String() string { + return "AwsKmsRsaKeyring.AwsKmsRsaKeyring" +} +func (_this *AwsKmsRsaKeyring) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){m_Keyring.Companion_VerifiableInterface_.TraitID_, m_AwsCryptographyMaterialProvidersTypes.Companion_IKeyring_.TraitID_} +} + +var _ m_Keyring.VerifiableInterface = &AwsKmsRsaKeyring{} +var _ m_AwsCryptographyMaterialProvidersTypes.IKeyring = &AwsKmsRsaKeyring{} +var _ _dafny.TraitOffspring = &AwsKmsRsaKeyring{} + +func (_this *AwsKmsRsaKeyring) OnDecrypt(input m_AwsCryptographyMaterialProvidersTypes.OnDecryptInput) m_Wrappers.Result { + var _out7 m_Wrappers.Result + _ = _out7 + _out7 = m_AwsCryptographyMaterialProvidersTypes.Companion_IKeyring_.OnDecrypt(_this, input) + return _out7 +} +func (_this *AwsKmsRsaKeyring) OnEncrypt(input m_AwsCryptographyMaterialProvidersTypes.OnEncryptInput) m_Wrappers.Result { + var _out7 m_Wrappers.Result + _ = _out7 + _out7 = m_AwsCryptographyMaterialProvidersTypes.Companion_IKeyring_.OnEncrypt(_this, input) + return _out7 +} +func (_this *AwsKmsRsaKeyring) Ctor__(publicKey m_Wrappers.Option, awsKmsKey _dafny.Sequence, paddingScheme m_ComAmazonawsKmsTypes.EncryptionAlgorithmSpec, client m_Wrappers.Option, cryptoPrimitives *m_AtomicPrimitives.AtomicPrimitivesClient, grantTokens _dafny.Sequence) { + { + var _0_parsedAwsKmsId m_Wrappers.Result + _ = _0_parsedAwsKmsId + _0_parsedAwsKmsId = m_AwsArnParsing.Companion_Default___.ParseAwsKmsIdentifier(awsKmsKey) + (_this)._publicKey = publicKey + (_this)._awsKmsKey = awsKmsKey + (_this)._awsKmsArn = (_0_parsedAwsKmsId).Dtor_value().(m_AwsArnParsing.AwsKmsIdentifier) + (_this)._paddingScheme = paddingScheme + (_this)._client = client + (_this)._cryptoPrimitives = cryptoPrimitives + (_this)._grantTokens = grantTokens + } +} +func (_this *AwsKmsRsaKeyring) OnEncrypt_k(input m_AwsCryptographyMaterialProvidersTypes.OnEncryptInput) m_Wrappers.Result { + { + var res m_Wrappers.Result = m_Wrappers.Result{} + _ = res + var _0_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _0_valueOrError0 + _0_valueOrError0 = m_Wrappers.Companion_Default___.Need((((_this).PublicKey()).Is_Some()) && ((_dafny.IntOfUint32((((_this).PublicKey()).Extract().(_dafny.Sequence)).Cardinality())).Sign() == 1), m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.SeqOfString("A AwsKmsRsaKeyring without a public key cannot provide OnEncrypt"))) + if (_0_valueOrError0).IsFailure() { + res = (_0_valueOrError0).PropagateFailure() + return res + } + var _1_valueOrError1 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _1_valueOrError1 + _1_valueOrError1 = m_Wrappers.Companion_Default___.Need(((((input).Dtor_materials()).Dtor_algorithmSuite()).Dtor_signature()).Is_None(), m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.Companion_Sequence_.Concatenate(_dafny.SeqOfString("AwsKmsRsaKeyring cannot be used with an Algorithm Suite with asymmetric signing."), _dafny.SeqOfString(" Please specify an algorithm suite without asymmetric signing.")))) + if (_1_valueOrError1).IsFailure() { + res = (_1_valueOrError1).PropagateFailure() + return res + } + var _2_wrap *KmsRsaWrapKeyMaterial + _ = _2_wrap + var _nw0 *KmsRsaWrapKeyMaterial = New_KmsRsaWrapKeyMaterial_() + _ = _nw0 + _nw0.Ctor__(((_this).PublicKey()).Dtor_value().(_dafny.Sequence), (_this).PaddingScheme(), (_this).CryptoPrimitives()) + _2_wrap = _nw0 + var _3_generateAndWrap *KmsRsaGenerateAndWrapKeyMaterial + _ = _3_generateAndWrap + var _nw1 *KmsRsaGenerateAndWrapKeyMaterial = New_KmsRsaGenerateAndWrapKeyMaterial_() + _ = _nw1 + _nw1.Ctor__(((_this).PublicKey()).Dtor_value().(_dafny.Sequence), (_this).PaddingScheme(), (_this).CryptoPrimitives()) + _3_generateAndWrap = _nw1 + var _4_valueOrError2 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_EdkWrapping.Companion_WrapEdkMaterialOutput_.Default(Companion_KmsRsaWrapInfo_.Default())) + _ = _4_valueOrError2 + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_EdkWrapping.Companion_Default___.WrapEdkMaterial((input).Dtor_materials(), _2_wrap, _3_generateAndWrap) + _4_valueOrError2 = _out0 + if (_4_valueOrError2).IsFailure() { + res = (_4_valueOrError2).PropagateFailure() + return res + } + var _5_wrapOutput m_EdkWrapping.WrapEdkMaterialOutput + _ = _5_wrapOutput + _5_wrapOutput = (_4_valueOrError2).Extract().(m_EdkWrapping.WrapEdkMaterialOutput) + var _6_symmetricSigningKeyList m_Wrappers.Option + _ = _6_symmetricSigningKeyList + if ((_5_wrapOutput).Dtor_symmetricSigningKey()).Is_Some() { + _6_symmetricSigningKeyList = m_Wrappers.Companion_Option_.Create_Some_(_dafny.SeqOf(((_5_wrapOutput).Dtor_symmetricSigningKey()).Dtor_value().(_dafny.Sequence))) + } else { + _6_symmetricSigningKeyList = m_Wrappers.Companion_Option_.Create_None_() + } + var _7_edk m_AwsCryptographyMaterialProvidersTypes.EncryptedDataKey + _ = _7_edk + _7_edk = m_AwsCryptographyMaterialProvidersTypes.Companion_EncryptedDataKey_.Create_EncryptedDataKey_(m_Constants.Companion_Default___.RSA__PROVIDER__ID(), (m_UTF8.Encode((_this).AwsKmsKey())).Dtor_value().(_dafny.Sequence), (_5_wrapOutput).Dtor_wrappedMaterial()) + var _8_returnMaterials m_AwsCryptographyMaterialProvidersTypes.EncryptionMaterials = m_AwsCryptographyMaterialProvidersTypes.EncryptionMaterials{} + _ = _8_returnMaterials + if (_5_wrapOutput).Is_GenerateAndWrapEdkMaterialOutput() { + var _9_valueOrError3 m_Wrappers.Result = m_Wrappers.Result{} + _ = _9_valueOrError3 + _9_valueOrError3 = m_Materials.Companion_Default___.EncryptionMaterialAddDataKey((input).Dtor_materials(), (_5_wrapOutput).Dtor_plaintextDataKey(), _dafny.SeqOf(_7_edk), _6_symmetricSigningKeyList) + if (_9_valueOrError3).IsFailure() { + res = (_9_valueOrError3).PropagateFailure() + return res + } + _8_returnMaterials = (_9_valueOrError3).Extract().(m_AwsCryptographyMaterialProvidersTypes.EncryptionMaterials) + } else if (_5_wrapOutput).Is_WrapOnlyEdkMaterialOutput() { + var _10_valueOrError4 m_Wrappers.Result = m_Wrappers.Result{} + _ = _10_valueOrError4 + _10_valueOrError4 = m_Materials.Companion_Default___.EncryptionMaterialAddEncryptedDataKeys((input).Dtor_materials(), _dafny.SeqOf(_7_edk), _6_symmetricSigningKeyList) + if (_10_valueOrError4).IsFailure() { + res = (_10_valueOrError4).PropagateFailure() + return res + } + _8_returnMaterials = (_10_valueOrError4).Extract().(m_AwsCryptographyMaterialProvidersTypes.EncryptionMaterials) + } + res = m_Wrappers.Companion_Result_.Create_Success_(m_AwsCryptographyMaterialProvidersTypes.Companion_OnEncryptOutput_.Create_OnEncryptOutput_(_8_returnMaterials)) + return res + return res + } +} +func (_this *AwsKmsRsaKeyring) OnDecrypt_k(input m_AwsCryptographyMaterialProvidersTypes.OnDecryptInput) m_Wrappers.Result { + { + var res m_Wrappers.Result = m_Wrappers.Result{} + _ = res + var _0_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _0_valueOrError0 + _0_valueOrError0 = m_Wrappers.Companion_Default___.Need(((_this).Client()).Is_Some(), m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.SeqOfString("An AwsKmsRsaKeyring without an AWS KMS client cannot provide OnDecrypt"))) + if (_0_valueOrError0).IsFailure() { + res = (_0_valueOrError0).PropagateFailure() + return res + } + var _1_materials m_AwsCryptographyMaterialProvidersTypes.DecryptionMaterials + _ = _1_materials + _1_materials = (input).Dtor_materials() + var _2_valueOrError1 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _2_valueOrError1 + _2_valueOrError1 = m_Wrappers.Companion_Default___.Need(m_Materials.Companion_Default___.DecryptionMaterialsWithoutPlaintextDataKey(_1_materials), m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.SeqOfString("Keyring received decryption materials that already contain a plaintext data key."))) + if (_2_valueOrError1).IsFailure() { + res = (_2_valueOrError1).PropagateFailure() + return res + } + var _3_valueOrError2 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _3_valueOrError2 + _3_valueOrError2 = m_AwsKmsUtils.Companion_Default___.OkForDecrypt((_this).AwsKmsArn(), (_this).AwsKmsKey()) + if (_3_valueOrError2).IsFailure() { + res = (_3_valueOrError2).PropagateFailure() + return res + } + var _4_valueOrError3 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _4_valueOrError3 + _4_valueOrError3 = m_Wrappers.Companion_Default___.Need(((((input).Dtor_materials()).Dtor_algorithmSuite()).Dtor_signature()).Is_None(), m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.Companion_Sequence_.Concatenate(_dafny.SeqOfString("AwsKmsRsaKeyring cannot be used with an Algorithm Suite with asymmetric signing."), _dafny.SeqOfString(" Please specify an algorithm suite without asymmetric signing.")))) + if (_4_valueOrError3).IsFailure() { + res = (_4_valueOrError3).PropagateFailure() + return res + } + var _5_filter *m_AwsKmsUtils.OnDecryptMrkAwareEncryptedDataKeyFilter + _ = _5_filter + var _nw0 *m_AwsKmsUtils.OnDecryptMrkAwareEncryptedDataKeyFilter = m_AwsKmsUtils.New_OnDecryptMrkAwareEncryptedDataKeyFilter_() + _ = _nw0 + _nw0.Ctor__((_this).AwsKmsArn(), m_Constants.Companion_Default___.RSA__PROVIDER__ID()) + _5_filter = _nw0 + var _6_valueOrError4 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = _6_valueOrError4 + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_Actions.Companion_Default___.FilterWithResult(_5_filter, (input).Dtor_encryptedDataKeys()) + _6_valueOrError4 = _out0 + if (_6_valueOrError4).IsFailure() { + res = (_6_valueOrError4).PropagateFailure() + return res + } + var _7_edksToAttempt _dafny.Sequence + _ = _7_edksToAttempt + _7_edksToAttempt = (_6_valueOrError4).Extract().(_dafny.Sequence) + if (_dafny.IntOfUint32((_7_edksToAttempt).Cardinality())).Sign() == 0 { + var _8_valueOrError5 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq.SetString()) + _ = _8_valueOrError5 + _8_valueOrError5 = m_ErrorMessages.Companion_Default___.IncorrectDataKeys((input).Dtor_encryptedDataKeys(), ((input).Dtor_materials()).Dtor_algorithmSuite(), _dafny.SeqOfString("")) + if (_8_valueOrError5).IsFailure() { + res = (_8_valueOrError5).PropagateFailure() + return res + } + var _9_errorMessage _dafny.Sequence + _ = _9_errorMessage + _9_errorMessage = (_8_valueOrError5).Extract().(_dafny.Sequence) + res = m_Wrappers.Companion_Result_.Create_Failure_(m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_9_errorMessage)) + return res + } + var _10_valueOrError6 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = _10_valueOrError6 + var _out1 m_Wrappers.Result + _ = _out1 + _out1 = Companion_Default___.EncryptionContextDigest((_this).CryptoPrimitives(), (_1_materials).Dtor_encryptionContext()) + _10_valueOrError6 = _out1 + if (_10_valueOrError6).IsFailure() { + res = (_10_valueOrError6).PropagateFailure() + return res + } + var _11_encryptionContextDigest _dafny.Sequence + _ = _11_encryptionContextDigest + _11_encryptionContextDigest = (_10_valueOrError6).Extract().(_dafny.Sequence) + var _12_decryptClosure m_Actions.ActionWithResult + _ = _12_decryptClosure + var _nw1 *DecryptSingleAWSRSAEncryptedDataKey = New_DecryptSingleAWSRSAEncryptedDataKey_() + _ = _nw1 + _nw1.Ctor__(_1_materials, m_ComAmazonawsKmsTypes.Companion_IKMSClient_.CastTo_(((_this).Client()).Dtor_value()), (_this).AwsKmsKey(), (_this).PaddingScheme(), _11_encryptionContextDigest, (_this).GrantTokens()) + _12_decryptClosure = _nw1 + var _13_outcome m_Wrappers.Result + _ = _13_outcome + var _out2 m_Wrappers.Result + _ = _out2 + _out2 = m_Actions.Companion_Default___.ReduceToSuccess(_12_decryptClosure, _7_edksToAttempt) + _13_outcome = _out2 + var _14_valueOrError7 m_Wrappers.Result = m_Wrappers.Result{} + _ = _14_valueOrError7 + _14_valueOrError7 = (_13_outcome).MapFailure(func(coer98 func(_dafny.Sequence) m_AwsCryptographyMaterialProvidersTypes.Error) func(interface{}) interface{} { + return func(arg99 interface{}) interface{} { + return coer98(arg99.(_dafny.Sequence)) + } + }(func(_15_errors _dafny.Sequence) m_AwsCryptographyMaterialProvidersTypes.Error { + return m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_CollectionOfErrors_(_15_errors, _dafny.SeqOfString("No Configured KMS Key was able to decrypt the Data Key. The list of encountered Exceptions is available via `list`.")) + })) + if (_14_valueOrError7).IsFailure() { + res = (_14_valueOrError7).PropagateFailure() + return res + } + var _16_SealedDecryptionMaterials m_AwsCryptographyMaterialProvidersTypes.DecryptionMaterials + _ = _16_SealedDecryptionMaterials + _16_SealedDecryptionMaterials = (_14_valueOrError7).Extract().(m_AwsCryptographyMaterialProvidersTypes.DecryptionMaterials) + res = m_Wrappers.Companion_Result_.Create_Success_(m_AwsCryptographyMaterialProvidersTypes.Companion_OnDecryptOutput_.Create_OnDecryptOutput_(_16_SealedDecryptionMaterials)) + return res + return res + } +} +func (_this *AwsKmsRsaKeyring) CryptoPrimitives() *m_AtomicPrimitives.AtomicPrimitivesClient { + { + return _this._cryptoPrimitives + } +} +func (_this *AwsKmsRsaKeyring) Client() m_Wrappers.Option { + { + return _this._client + } +} +func (_this *AwsKmsRsaKeyring) PaddingScheme() m_ComAmazonawsKmsTypes.EncryptionAlgorithmSpec { + { + return _this._paddingScheme + } +} +func (_this *AwsKmsRsaKeyring) AwsKmsKey() _dafny.Sequence { + { + return _this._awsKmsKey + } +} +func (_this *AwsKmsRsaKeyring) PublicKey() m_Wrappers.Option { + { + return _this._publicKey + } +} +func (_this *AwsKmsRsaKeyring) AwsKmsArn() m_AwsArnParsing.AwsKmsIdentifier { + { + return _this._awsKmsArn + } +} +func (_this *AwsKmsRsaKeyring) GrantTokens() _dafny.Sequence { + { + return _this._grantTokens + } +} + +// End of class AwsKmsRsaKeyring + +// Definition of class DecryptSingleAWSRSAEncryptedDataKey +type DecryptSingleAWSRSAEncryptedDataKey struct { + _materials m_AwsCryptographyMaterialProvidersTypes.DecryptionMaterials + _client m_ComAmazonawsKmsTypes.IKMSClient + _awsKmsKey _dafny.Sequence + _paddingScheme m_ComAmazonawsKmsTypes.EncryptionAlgorithmSpec + _encryptionContextDigest _dafny.Sequence + _grantTokens _dafny.Sequence +} + +func New_DecryptSingleAWSRSAEncryptedDataKey_() *DecryptSingleAWSRSAEncryptedDataKey { + _this := DecryptSingleAWSRSAEncryptedDataKey{} + + _this._materials = m_AwsCryptographyMaterialProvidersTypes.DecryptionMaterials{} + _this._client = (m_ComAmazonawsKmsTypes.IKMSClient)(nil) + _this._awsKmsKey = _dafny.EmptySeq.SetString() + _this._paddingScheme = m_ComAmazonawsKmsTypes.Companion_EncryptionAlgorithmSpec_.Default() + _this._encryptionContextDigest = _dafny.EmptySeq + _this._grantTokens = _dafny.EmptySeq + return &_this +} + +type CompanionStruct_DecryptSingleAWSRSAEncryptedDataKey_ struct { +} + +var Companion_DecryptSingleAWSRSAEncryptedDataKey_ = CompanionStruct_DecryptSingleAWSRSAEncryptedDataKey_{} + +func (_this *DecryptSingleAWSRSAEncryptedDataKey) Equals(other *DecryptSingleAWSRSAEncryptedDataKey) bool { + return _this == other +} + +func (_this *DecryptSingleAWSRSAEncryptedDataKey) EqualsGeneric(x interface{}) bool { + other, ok := x.(*DecryptSingleAWSRSAEncryptedDataKey) + return ok && _this.Equals(other) +} + +func (*DecryptSingleAWSRSAEncryptedDataKey) String() string { + return "AwsKmsRsaKeyring.DecryptSingleAWSRSAEncryptedDataKey" +} + +func Type_DecryptSingleAWSRSAEncryptedDataKey_() _dafny.TypeDescriptor { + return type_DecryptSingleAWSRSAEncryptedDataKey_{} +} + +type type_DecryptSingleAWSRSAEncryptedDataKey_ struct { +} + +func (_this type_DecryptSingleAWSRSAEncryptedDataKey_) Default() interface{} { + return (*DecryptSingleAWSRSAEncryptedDataKey)(nil) +} + +func (_this type_DecryptSingleAWSRSAEncryptedDataKey_) String() string { + return "AwsKmsRsaKeyring.DecryptSingleAWSRSAEncryptedDataKey" +} +func (_this *DecryptSingleAWSRSAEncryptedDataKey) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){m_Actions.Companion_ActionWithResult_.TraitID_, m_Actions.Companion_Action_.TraitID_} +} + +var _ m_Actions.ActionWithResult = &DecryptSingleAWSRSAEncryptedDataKey{} +var _ m_Actions.Action = &DecryptSingleAWSRSAEncryptedDataKey{} +var _ _dafny.TraitOffspring = &DecryptSingleAWSRSAEncryptedDataKey{} + +func (_this *DecryptSingleAWSRSAEncryptedDataKey) Ctor__(materials m_AwsCryptographyMaterialProvidersTypes.DecryptionMaterials, client m_ComAmazonawsKmsTypes.IKMSClient, awsKmsKey _dafny.Sequence, paddingScheme m_ComAmazonawsKmsTypes.EncryptionAlgorithmSpec, encryptionContextDigest _dafny.Sequence, grantTokens _dafny.Sequence) { + { + (_this)._materials = materials + (_this)._client = client + (_this)._awsKmsKey = awsKmsKey + (_this)._paddingScheme = paddingScheme + (_this)._encryptionContextDigest = encryptionContextDigest + (_this)._grantTokens = grantTokens + } +} +func (_this *DecryptSingleAWSRSAEncryptedDataKey) Invoke(edk interface{}) interface{} { + { + var edk m_AwsCryptographyMaterialProvidersTypes.EncryptedDataKey = edk.(m_AwsCryptographyMaterialProvidersTypes.EncryptedDataKey) + _ = edk + var res m_Wrappers.Result = m_Wrappers.Result{} + _ = res + var _0_unwrap *KmsRsaUnwrapKeyMaterial + _ = _0_unwrap + var _nw0 *KmsRsaUnwrapKeyMaterial = New_KmsRsaUnwrapKeyMaterial_() + _ = _nw0 + _nw0.Ctor__((_this).Client(), (_this).AwsKmsKey(), (_this).PaddingScheme(), (_this).EncryptionContextDigest(), (_this).GrantTokens()) + _0_unwrap = _nw0 + var _1_valueOrError0 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_EdkWrapping.Companion_UnwrapEdkMaterialOutput_.Default(Companion_KmsRsaUnwrapInfo_.Default())) + _ = _1_valueOrError0 + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_EdkWrapping.Companion_Default___.UnwrapEdkMaterial((edk).Dtor_ciphertext(), (_this).Materials(), _0_unwrap) + _1_valueOrError0 = _out0 + if (_1_valueOrError0).IsFailure() { + res = (_1_valueOrError0).PropagateFailure() + return res + } + var _2_unwrapOutput m_EdkWrapping.UnwrapEdkMaterialOutput + _ = _2_unwrapOutput + _2_unwrapOutput = (_1_valueOrError0).Extract().(m_EdkWrapping.UnwrapEdkMaterialOutput) + var _3_valueOrError1 m_Wrappers.Result = m_Wrappers.Result{} + _ = _3_valueOrError1 + _3_valueOrError1 = m_Materials.Companion_Default___.DecryptionMaterialsAddDataKey((_this).Materials(), (_2_unwrapOutput).Dtor_plaintextDataKey(), (_2_unwrapOutput).Dtor_symmetricSigningKey()) + if (_3_valueOrError1).IsFailure() { + res = (_3_valueOrError1).PropagateFailure() + return res + } + var _4_result m_AwsCryptographyMaterialProvidersTypes.DecryptionMaterials + _ = _4_result + _4_result = (_3_valueOrError1).Extract().(m_AwsCryptographyMaterialProvidersTypes.DecryptionMaterials) + res = m_Wrappers.Companion_Result_.Create_Success_(_4_result) + return res + return res + } +} +func (_this *DecryptSingleAWSRSAEncryptedDataKey) Materials() m_AwsCryptographyMaterialProvidersTypes.DecryptionMaterials { + { + return _this._materials + } +} +func (_this *DecryptSingleAWSRSAEncryptedDataKey) Client() m_ComAmazonawsKmsTypes.IKMSClient { + { + return _this._client + } +} +func (_this *DecryptSingleAWSRSAEncryptedDataKey) AwsKmsKey() _dafny.Sequence { + { + return _this._awsKmsKey + } +} +func (_this *DecryptSingleAWSRSAEncryptedDataKey) PaddingScheme() m_ComAmazonawsKmsTypes.EncryptionAlgorithmSpec { + { + return _this._paddingScheme + } +} +func (_this *DecryptSingleAWSRSAEncryptedDataKey) EncryptionContextDigest() _dafny.Sequence { + { + return _this._encryptionContextDigest + } +} +func (_this *DecryptSingleAWSRSAEncryptedDataKey) GrantTokens() _dafny.Sequence { + { + return _this._grantTokens + } +} + +// End of class DecryptSingleAWSRSAEncryptedDataKey + +// Definition of datatype KmsRsaUnwrapInfo +type KmsRsaUnwrapInfo struct { + Data_KmsRsaUnwrapInfo_ +} + +func (_this KmsRsaUnwrapInfo) Get_() Data_KmsRsaUnwrapInfo_ { + return _this.Data_KmsRsaUnwrapInfo_ +} + +type Data_KmsRsaUnwrapInfo_ interface { + isKmsRsaUnwrapInfo() +} + +type CompanionStruct_KmsRsaUnwrapInfo_ struct { +} + +var Companion_KmsRsaUnwrapInfo_ = CompanionStruct_KmsRsaUnwrapInfo_{} + +type KmsRsaUnwrapInfo_KmsRsaUnwrapInfo struct { +} + +func (KmsRsaUnwrapInfo_KmsRsaUnwrapInfo) isKmsRsaUnwrapInfo() {} + +func (CompanionStruct_KmsRsaUnwrapInfo_) Create_KmsRsaUnwrapInfo_() KmsRsaUnwrapInfo { + return KmsRsaUnwrapInfo{KmsRsaUnwrapInfo_KmsRsaUnwrapInfo{}} +} + +func (_this KmsRsaUnwrapInfo) Is_KmsRsaUnwrapInfo() bool { + _, ok := _this.Get_().(KmsRsaUnwrapInfo_KmsRsaUnwrapInfo) + return ok +} + +func (CompanionStruct_KmsRsaUnwrapInfo_) Default() KmsRsaUnwrapInfo { + return Companion_KmsRsaUnwrapInfo_.Create_KmsRsaUnwrapInfo_() +} + +func (_ CompanionStruct_KmsRsaUnwrapInfo_) AllSingletonConstructors() _dafny.Iterator { + i := -1 + return func() (interface{}, bool) { + i++ + switch i { + case 0: + return Companion_KmsRsaUnwrapInfo_.Create_KmsRsaUnwrapInfo_(), true + default: + return KmsRsaUnwrapInfo{}, false + } + } +} + +func (_this KmsRsaUnwrapInfo) String() string { + switch _this.Get_().(type) { + case nil: + return "null" + case KmsRsaUnwrapInfo_KmsRsaUnwrapInfo: + { + return "AwsKmsRsaKeyring.KmsRsaUnwrapInfo.KmsRsaUnwrapInfo" + } + default: + { + return "" + } + } +} + +func (_this KmsRsaUnwrapInfo) Equals(other KmsRsaUnwrapInfo) bool { + switch _this.Get_().(type) { + case KmsRsaUnwrapInfo_KmsRsaUnwrapInfo: + { + _, ok := other.Get_().(KmsRsaUnwrapInfo_KmsRsaUnwrapInfo) + return ok + } + default: + { + return false // unexpected + } + } +} + +func (_this KmsRsaUnwrapInfo) EqualsGeneric(other interface{}) bool { + typed, ok := other.(KmsRsaUnwrapInfo) + return ok && _this.Equals(typed) +} + +func Type_KmsRsaUnwrapInfo_() _dafny.TypeDescriptor { + return type_KmsRsaUnwrapInfo_{} +} + +type type_KmsRsaUnwrapInfo_ struct { +} + +func (_this type_KmsRsaUnwrapInfo_) Default() interface{} { + return Companion_KmsRsaUnwrapInfo_.Default() +} + +func (_this type_KmsRsaUnwrapInfo_) String() string { + return "AwsKmsRsaKeyring.KmsRsaUnwrapInfo" +} +func (_this KmsRsaUnwrapInfo) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = KmsRsaUnwrapInfo{} + +// End of datatype KmsRsaUnwrapInfo + +// Definition of datatype KmsRsaWrapInfo +type KmsRsaWrapInfo struct { + Data_KmsRsaWrapInfo_ +} + +func (_this KmsRsaWrapInfo) Get_() Data_KmsRsaWrapInfo_ { + return _this.Data_KmsRsaWrapInfo_ +} + +type Data_KmsRsaWrapInfo_ interface { + isKmsRsaWrapInfo() +} + +type CompanionStruct_KmsRsaWrapInfo_ struct { +} + +var Companion_KmsRsaWrapInfo_ = CompanionStruct_KmsRsaWrapInfo_{} + +type KmsRsaWrapInfo_KmsRsaWrapInfo struct { +} + +func (KmsRsaWrapInfo_KmsRsaWrapInfo) isKmsRsaWrapInfo() {} + +func (CompanionStruct_KmsRsaWrapInfo_) Create_KmsRsaWrapInfo_() KmsRsaWrapInfo { + return KmsRsaWrapInfo{KmsRsaWrapInfo_KmsRsaWrapInfo{}} +} + +func (_this KmsRsaWrapInfo) Is_KmsRsaWrapInfo() bool { + _, ok := _this.Get_().(KmsRsaWrapInfo_KmsRsaWrapInfo) + return ok +} + +func (CompanionStruct_KmsRsaWrapInfo_) Default() KmsRsaWrapInfo { + return Companion_KmsRsaWrapInfo_.Create_KmsRsaWrapInfo_() +} + +func (_ CompanionStruct_KmsRsaWrapInfo_) AllSingletonConstructors() _dafny.Iterator { + i := -1 + return func() (interface{}, bool) { + i++ + switch i { + case 0: + return Companion_KmsRsaWrapInfo_.Create_KmsRsaWrapInfo_(), true + default: + return KmsRsaWrapInfo{}, false + } + } +} + +func (_this KmsRsaWrapInfo) String() string { + switch _this.Get_().(type) { + case nil: + return "null" + case KmsRsaWrapInfo_KmsRsaWrapInfo: + { + return "AwsKmsRsaKeyring.KmsRsaWrapInfo.KmsRsaWrapInfo" + } + default: + { + return "" + } + } +} + +func (_this KmsRsaWrapInfo) Equals(other KmsRsaWrapInfo) bool { + switch _this.Get_().(type) { + case KmsRsaWrapInfo_KmsRsaWrapInfo: + { + _, ok := other.Get_().(KmsRsaWrapInfo_KmsRsaWrapInfo) + return ok + } + default: + { + return false // unexpected + } + } +} + +func (_this KmsRsaWrapInfo) EqualsGeneric(other interface{}) bool { + typed, ok := other.(KmsRsaWrapInfo) + return ok && _this.Equals(typed) +} + +func Type_KmsRsaWrapInfo_() _dafny.TypeDescriptor { + return type_KmsRsaWrapInfo_{} +} + +type type_KmsRsaWrapInfo_ struct { +} + +func (_this type_KmsRsaWrapInfo_) Default() interface{} { + return Companion_KmsRsaWrapInfo_.Default() +} + +func (_this type_KmsRsaWrapInfo_) String() string { + return "AwsKmsRsaKeyring.KmsRsaWrapInfo" +} +func (_this KmsRsaWrapInfo) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = KmsRsaWrapInfo{} + +// End of datatype KmsRsaWrapInfo + +// Definition of class KmsRsaGenerateAndWrapKeyMaterial +type KmsRsaGenerateAndWrapKeyMaterial struct { + _publicKey _dafny.Sequence + _cryptoPrimitives *m_AtomicPrimitives.AtomicPrimitivesClient + _paddingScheme m_ComAmazonawsKmsTypes.EncryptionAlgorithmSpec +} + +func New_KmsRsaGenerateAndWrapKeyMaterial_() *KmsRsaGenerateAndWrapKeyMaterial { + _this := KmsRsaGenerateAndWrapKeyMaterial{} + + _this._publicKey = _dafny.EmptySeq + _this._cryptoPrimitives = (*m_AtomicPrimitives.AtomicPrimitivesClient)(nil) + _this._paddingScheme = m_ComAmazonawsKmsTypes.Companion_EncryptionAlgorithmSpec_.Default() + return &_this +} + +type CompanionStruct_KmsRsaGenerateAndWrapKeyMaterial_ struct { +} + +var Companion_KmsRsaGenerateAndWrapKeyMaterial_ = CompanionStruct_KmsRsaGenerateAndWrapKeyMaterial_{} + +func (_this *KmsRsaGenerateAndWrapKeyMaterial) Equals(other *KmsRsaGenerateAndWrapKeyMaterial) bool { + return _this == other +} + +func (_this *KmsRsaGenerateAndWrapKeyMaterial) EqualsGeneric(x interface{}) bool { + other, ok := x.(*KmsRsaGenerateAndWrapKeyMaterial) + return ok && _this.Equals(other) +} + +func (*KmsRsaGenerateAndWrapKeyMaterial) String() string { + return "AwsKmsRsaKeyring.KmsRsaGenerateAndWrapKeyMaterial" +} + +func Type_KmsRsaGenerateAndWrapKeyMaterial_() _dafny.TypeDescriptor { + return type_KmsRsaGenerateAndWrapKeyMaterial_{} +} + +type type_KmsRsaGenerateAndWrapKeyMaterial_ struct { +} + +func (_this type_KmsRsaGenerateAndWrapKeyMaterial_) Default() interface{} { + return (*KmsRsaGenerateAndWrapKeyMaterial)(nil) +} + +func (_this type_KmsRsaGenerateAndWrapKeyMaterial_) String() string { + return "AwsKmsRsaKeyring.KmsRsaGenerateAndWrapKeyMaterial" +} +func (_this *KmsRsaGenerateAndWrapKeyMaterial) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){m_MaterialWrapping.Companion_GenerateAndWrapMaterial_.TraitID_, m_Actions.Companion_ActionWithResult_.TraitID_, m_Actions.Companion_Action_.TraitID_} +} + +var _ m_MaterialWrapping.GenerateAndWrapMaterial = &KmsRsaGenerateAndWrapKeyMaterial{} +var _ m_Actions.ActionWithResult = &KmsRsaGenerateAndWrapKeyMaterial{} +var _ m_Actions.Action = &KmsRsaGenerateAndWrapKeyMaterial{} +var _ _dafny.TraitOffspring = &KmsRsaGenerateAndWrapKeyMaterial{} + +func (_this *KmsRsaGenerateAndWrapKeyMaterial) Ctor__(publicKey _dafny.Sequence, paddingScheme m_ComAmazonawsKmsTypes.EncryptionAlgorithmSpec, cryptoPrimitives *m_AtomicPrimitives.AtomicPrimitivesClient) { + { + (_this)._publicKey = publicKey + (_this)._cryptoPrimitives = cryptoPrimitives + (_this)._paddingScheme = paddingScheme + } +} +func (_this *KmsRsaGenerateAndWrapKeyMaterial) Invoke(input interface{}) interface{} { + { + var input m_MaterialWrapping.GenerateAndWrapInput = input.(m_MaterialWrapping.GenerateAndWrapInput) + _ = input + var res m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_MaterialWrapping.Companion_GenerateAndWrapOutput_.Default(Companion_KmsRsaWrapInfo_.Default())) + _ = res + var _0_generateBytesResult m_Wrappers.Result + _ = _0_generateBytesResult + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = ((_this).CryptoPrimitives()).GenerateRandomBytes(m_AwsCryptographyPrimitivesTypes.Companion_GenerateRandomBytesInput_.Create_GenerateRandomBytesInput_(m_AlgorithmSuites.Companion_Default___.GetEncryptKeyLength((input).Dtor_algorithmSuite()))) + _0_generateBytesResult = _out0 + var _1_valueOrError0 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = _1_valueOrError0 + _1_valueOrError0 = (_0_generateBytesResult).MapFailure(func(coer99 func(m_AwsCryptographyPrimitivesTypes.Error) m_AwsCryptographyMaterialProvidersTypes.Error) func(interface{}) interface{} { + return func(arg100 interface{}) interface{} { + return coer99(arg100.(m_AwsCryptographyPrimitivesTypes.Error)) + } + }(func(_2_e m_AwsCryptographyPrimitivesTypes.Error) m_AwsCryptographyMaterialProvidersTypes.Error { + return m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographyPrimitives_(_2_e) + })) + if (_1_valueOrError0).IsFailure() { + res = (_1_valueOrError0).PropagateFailure() + return res + } + var _3_plaintextMaterial _dafny.Sequence + _ = _3_plaintextMaterial + _3_plaintextMaterial = (_1_valueOrError0).Extract().(_dafny.Sequence) + var _4_wrap *KmsRsaWrapKeyMaterial + _ = _4_wrap + var _nw0 *KmsRsaWrapKeyMaterial = New_KmsRsaWrapKeyMaterial_() + _ = _nw0 + _nw0.Ctor__((_this).PublicKey(), (_this).PaddingScheme(), (_this).CryptoPrimitives()) + _4_wrap = _nw0 + var _5_valueOrError1 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_MaterialWrapping.Companion_WrapOutput_.Default(Companion_KmsRsaWrapInfo_.Default())) + _ = _5_valueOrError1 + var _out1 interface{} + _ = _out1 + _out1 = (_4_wrap).Invoke(m_MaterialWrapping.Companion_WrapInput_.Create_WrapInput_(_3_plaintextMaterial, (input).Dtor_algorithmSuite(), (input).Dtor_encryptionContext())) + _5_valueOrError1 = _out1.(m_Wrappers.Result) + if (_5_valueOrError1).IsFailure() { + res = (_5_valueOrError1).PropagateFailure() + return res + } + var _6_wrapOutput m_MaterialWrapping.WrapOutput + _ = _6_wrapOutput + _6_wrapOutput = (_5_valueOrError1).Extract().(m_MaterialWrapping.WrapOutput) + var _7_output m_MaterialWrapping.GenerateAndWrapOutput + _ = _7_output + _7_output = m_MaterialWrapping.Companion_GenerateAndWrapOutput_.Create_GenerateAndWrapOutput_(_3_plaintextMaterial, (_6_wrapOutput).Dtor_wrappedMaterial(), Companion_KmsRsaWrapInfo_.Create_KmsRsaWrapInfo_()) + res = m_Wrappers.Companion_Result_.Create_Success_(_7_output) + return res + return res + } +} +func (_this *KmsRsaGenerateAndWrapKeyMaterial) PublicKey() _dafny.Sequence { + { + return _this._publicKey + } +} +func (_this *KmsRsaGenerateAndWrapKeyMaterial) CryptoPrimitives() *m_AtomicPrimitives.AtomicPrimitivesClient { + { + return _this._cryptoPrimitives + } +} +func (_this *KmsRsaGenerateAndWrapKeyMaterial) PaddingScheme() m_ComAmazonawsKmsTypes.EncryptionAlgorithmSpec { + { + return _this._paddingScheme + } +} + +// End of class KmsRsaGenerateAndWrapKeyMaterial + +// Definition of class KmsRsaWrapKeyMaterial +type KmsRsaWrapKeyMaterial struct { + _publicKey _dafny.Sequence + _cryptoPrimitives *m_AtomicPrimitives.AtomicPrimitivesClient + _paddingScheme m_ComAmazonawsKmsTypes.EncryptionAlgorithmSpec +} + +func New_KmsRsaWrapKeyMaterial_() *KmsRsaWrapKeyMaterial { + _this := KmsRsaWrapKeyMaterial{} + + _this._publicKey = _dafny.EmptySeq + _this._cryptoPrimitives = (*m_AtomicPrimitives.AtomicPrimitivesClient)(nil) + _this._paddingScheme = m_ComAmazonawsKmsTypes.Companion_EncryptionAlgorithmSpec_.Default() + return &_this +} + +type CompanionStruct_KmsRsaWrapKeyMaterial_ struct { +} + +var Companion_KmsRsaWrapKeyMaterial_ = CompanionStruct_KmsRsaWrapKeyMaterial_{} + +func (_this *KmsRsaWrapKeyMaterial) Equals(other *KmsRsaWrapKeyMaterial) bool { + return _this == other +} + +func (_this *KmsRsaWrapKeyMaterial) EqualsGeneric(x interface{}) bool { + other, ok := x.(*KmsRsaWrapKeyMaterial) + return ok && _this.Equals(other) +} + +func (*KmsRsaWrapKeyMaterial) String() string { + return "AwsKmsRsaKeyring.KmsRsaWrapKeyMaterial" +} + +func Type_KmsRsaWrapKeyMaterial_() _dafny.TypeDescriptor { + return type_KmsRsaWrapKeyMaterial_{} +} + +type type_KmsRsaWrapKeyMaterial_ struct { +} + +func (_this type_KmsRsaWrapKeyMaterial_) Default() interface{} { + return (*KmsRsaWrapKeyMaterial)(nil) +} + +func (_this type_KmsRsaWrapKeyMaterial_) String() string { + return "AwsKmsRsaKeyring.KmsRsaWrapKeyMaterial" +} +func (_this *KmsRsaWrapKeyMaterial) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){m_MaterialWrapping.Companion_WrapMaterial_.TraitID_, m_Actions.Companion_ActionWithResult_.TraitID_, m_Actions.Companion_Action_.TraitID_} +} + +var _ m_MaterialWrapping.WrapMaterial = &KmsRsaWrapKeyMaterial{} +var _ m_Actions.ActionWithResult = &KmsRsaWrapKeyMaterial{} +var _ m_Actions.Action = &KmsRsaWrapKeyMaterial{} +var _ _dafny.TraitOffspring = &KmsRsaWrapKeyMaterial{} + +func (_this *KmsRsaWrapKeyMaterial) Ctor__(publicKey _dafny.Sequence, paddingScheme m_ComAmazonawsKmsTypes.EncryptionAlgorithmSpec, cryptoPrimitives *m_AtomicPrimitives.AtomicPrimitivesClient) { + { + (_this)._publicKey = publicKey + (_this)._cryptoPrimitives = cryptoPrimitives + (_this)._paddingScheme = paddingScheme + } +} +func (_this *KmsRsaWrapKeyMaterial) Invoke(input interface{}) interface{} { + { + var input m_MaterialWrapping.WrapInput = input.(m_MaterialWrapping.WrapInput) + _ = input + var res m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_MaterialWrapping.Companion_WrapOutput_.Default(Companion_KmsRsaWrapInfo_.Default())) + _ = res + var _0_valueOrError0 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = _0_valueOrError0 + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = Companion_Default___.EncryptionContextDigest((_this).CryptoPrimitives(), (input).Dtor_encryptionContext()) + _0_valueOrError0 = _out0 + if (_0_valueOrError0).IsFailure() { + res = (_0_valueOrError0).PropagateFailure() + return res + } + var _1_encryptionContextDigest _dafny.Sequence + _ = _1_encryptionContextDigest + _1_encryptionContextDigest = (_0_valueOrError0).Extract().(_dafny.Sequence) + var _2_padding m_AwsCryptographyPrimitivesTypes.RSAPaddingMode + _ = _2_padding + var _source0 m_ComAmazonawsKmsTypes.EncryptionAlgorithmSpec = (_this).PaddingScheme() + _ = _source0 + { + { + if _source0.Is_RSAES__OAEP__SHA__1() { + _2_padding = m_AwsCryptographyPrimitivesTypes.Companion_RSAPaddingMode_.Create_OAEP__SHA1_() + goto Lmatch0 + } + } + { + _2_padding = m_AwsCryptographyPrimitivesTypes.Companion_RSAPaddingMode_.Create_OAEP__SHA256_() + } + goto Lmatch0 + } + Lmatch0: + var _3_RSAEncryptOutput m_Wrappers.Result + _ = _3_RSAEncryptOutput + var _out1 m_Wrappers.Result + _ = _out1 + _out1 = ((_this).CryptoPrimitives()).RSAEncrypt(m_AwsCryptographyPrimitivesTypes.Companion_RSAEncryptInput_.Create_RSAEncryptInput_(_2_padding, (_this).PublicKey(), _dafny.Companion_Sequence_.Concatenate(_1_encryptionContextDigest, (input).Dtor_plaintextMaterial()))) + _3_RSAEncryptOutput = _out1 + var _4_valueOrError1 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = _4_valueOrError1 + _4_valueOrError1 = (_3_RSAEncryptOutput).MapFailure(func(coer100 func(m_AwsCryptographyPrimitivesTypes.Error) m_AwsCryptographyMaterialProvidersTypes.Error) func(interface{}) interface{} { + return func(arg101 interface{}) interface{} { + return coer100(arg101.(m_AwsCryptographyPrimitivesTypes.Error)) + } + }(func(_5_e m_AwsCryptographyPrimitivesTypes.Error) m_AwsCryptographyMaterialProvidersTypes.Error { + return m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographyPrimitives_(_5_e) + })) + if (_4_valueOrError1).IsFailure() { + res = (_4_valueOrError1).PropagateFailure() + return res + } + var _6_ciphertext _dafny.Sequence + _ = _6_ciphertext + _6_ciphertext = (_4_valueOrError1).Extract().(_dafny.Sequence) + var _7_output m_MaterialWrapping.WrapOutput + _ = _7_output + _7_output = m_MaterialWrapping.Companion_WrapOutput_.Create_WrapOutput_(_6_ciphertext, Companion_KmsRsaWrapInfo_.Create_KmsRsaWrapInfo_()) + res = m_Wrappers.Companion_Result_.Create_Success_(_7_output) + return res + return res + } +} +func (_this *KmsRsaWrapKeyMaterial) PublicKey() _dafny.Sequence { + { + return _this._publicKey + } +} +func (_this *KmsRsaWrapKeyMaterial) CryptoPrimitives() *m_AtomicPrimitives.AtomicPrimitivesClient { + { + return _this._cryptoPrimitives + } +} +func (_this *KmsRsaWrapKeyMaterial) PaddingScheme() m_ComAmazonawsKmsTypes.EncryptionAlgorithmSpec { + { + return _this._paddingScheme + } +} + +// End of class KmsRsaWrapKeyMaterial + +// Definition of class KmsRsaUnwrapKeyMaterial +type KmsRsaUnwrapKeyMaterial struct { + _client m_ComAmazonawsKmsTypes.IKMSClient + _grantTokens _dafny.Sequence + _awsKmsKey _dafny.Sequence + _paddingScheme m_ComAmazonawsKmsTypes.EncryptionAlgorithmSpec + _encryptionContextDigest _dafny.Sequence +} + +func New_KmsRsaUnwrapKeyMaterial_() *KmsRsaUnwrapKeyMaterial { + _this := KmsRsaUnwrapKeyMaterial{} + + _this._client = (m_ComAmazonawsKmsTypes.IKMSClient)(nil) + _this._grantTokens = _dafny.EmptySeq + _this._awsKmsKey = _dafny.EmptySeq.SetString() + _this._paddingScheme = m_ComAmazonawsKmsTypes.Companion_EncryptionAlgorithmSpec_.Default() + _this._encryptionContextDigest = _dafny.EmptySeq + return &_this +} + +type CompanionStruct_KmsRsaUnwrapKeyMaterial_ struct { +} + +var Companion_KmsRsaUnwrapKeyMaterial_ = CompanionStruct_KmsRsaUnwrapKeyMaterial_{} + +func (_this *KmsRsaUnwrapKeyMaterial) Equals(other *KmsRsaUnwrapKeyMaterial) bool { + return _this == other +} + +func (_this *KmsRsaUnwrapKeyMaterial) EqualsGeneric(x interface{}) bool { + other, ok := x.(*KmsRsaUnwrapKeyMaterial) + return ok && _this.Equals(other) +} + +func (*KmsRsaUnwrapKeyMaterial) String() string { + return "AwsKmsRsaKeyring.KmsRsaUnwrapKeyMaterial" +} + +func Type_KmsRsaUnwrapKeyMaterial_() _dafny.TypeDescriptor { + return type_KmsRsaUnwrapKeyMaterial_{} +} + +type type_KmsRsaUnwrapKeyMaterial_ struct { +} + +func (_this type_KmsRsaUnwrapKeyMaterial_) Default() interface{} { + return (*KmsRsaUnwrapKeyMaterial)(nil) +} + +func (_this type_KmsRsaUnwrapKeyMaterial_) String() string { + return "AwsKmsRsaKeyring.KmsRsaUnwrapKeyMaterial" +} +func (_this *KmsRsaUnwrapKeyMaterial) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){m_MaterialWrapping.Companion_UnwrapMaterial_.TraitID_, m_Actions.Companion_ActionWithResult_.TraitID_, m_Actions.Companion_Action_.TraitID_} +} + +var _ m_MaterialWrapping.UnwrapMaterial = &KmsRsaUnwrapKeyMaterial{} +var _ m_Actions.ActionWithResult = &KmsRsaUnwrapKeyMaterial{} +var _ m_Actions.Action = &KmsRsaUnwrapKeyMaterial{} +var _ _dafny.TraitOffspring = &KmsRsaUnwrapKeyMaterial{} + +func (_this *KmsRsaUnwrapKeyMaterial) Ctor__(client m_ComAmazonawsKmsTypes.IKMSClient, awsKmsKey _dafny.Sequence, paddingScheme m_ComAmazonawsKmsTypes.EncryptionAlgorithmSpec, encryptionContextDigest _dafny.Sequence, grantTokens _dafny.Sequence) { + { + (_this)._client = client + (_this)._awsKmsKey = awsKmsKey + (_this)._paddingScheme = paddingScheme + (_this)._encryptionContextDigest = encryptionContextDigest + (_this)._grantTokens = grantTokens + } +} +func (_this *KmsRsaUnwrapKeyMaterial) Invoke(input interface{}) interface{} { + { + var input m_MaterialWrapping.UnwrapInput = input.(m_MaterialWrapping.UnwrapInput) + _ = input + var res m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_MaterialWrapping.Companion_UnwrapOutput_.Default(Companion_KmsRsaUnwrapInfo_.Default())) + _ = res + var _0_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _0_valueOrError0 + _0_valueOrError0 = m_Wrappers.Companion_Default___.Need(m_ComAmazonawsKmsTypes.Companion_Default___.IsValid__CiphertextType((input).Dtor_wrappedMaterial()), m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.SeqOfString("Ciphertext length invalid"))) + if (_0_valueOrError0).IsFailure() { + res = (_0_valueOrError0).PropagateFailure() + return res + } + var _1_decryptRequest m_ComAmazonawsKmsTypes.DecryptRequest + _ = _1_decryptRequest + _1_decryptRequest = m_ComAmazonawsKmsTypes.Companion_DecryptRequest_.Create_DecryptRequest_((input).Dtor_wrappedMaterial(), m_Wrappers.Companion_Option_.Create_None_(), m_Wrappers.Companion_Option_.Create_Some_((_this).GrantTokens()), m_Wrappers.Companion_Option_.Create_Some_((_this).AwsKmsKey()), m_Wrappers.Companion_Option_.Create_Some_((_this).PaddingScheme()), m_Wrappers.Companion_Option_.Create_None_(), m_Wrappers.Companion_Option_.Create_None_()) + var _2_maybeDecryptResponse m_Wrappers.Result + _ = _2_maybeDecryptResponse + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = ((_this).Client()).Decrypt(_1_decryptRequest) + _2_maybeDecryptResponse = _out0 + var _3_valueOrError1 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_ComAmazonawsKmsTypes.Companion_DecryptResponse_.Default()) + _ = _3_valueOrError1 + _3_valueOrError1 = (_2_maybeDecryptResponse).MapFailure(func(coer101 func(m_ComAmazonawsKmsTypes.Error) m_AwsCryptographyMaterialProvidersTypes.Error) func(interface{}) interface{} { + return func(arg102 interface{}) interface{} { + return coer101(arg102.(m_ComAmazonawsKmsTypes.Error)) + } + }(func(_4_e m_ComAmazonawsKmsTypes.Error) m_AwsCryptographyMaterialProvidersTypes.Error { + return m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_ComAmazonawsKms_(_4_e) + })) + if (_3_valueOrError1).IsFailure() { + res = (_3_valueOrError1).PropagateFailure() + return res + } + var _5_decryptResponse m_ComAmazonawsKmsTypes.DecryptResponse + _ = _5_decryptResponse + _5_decryptResponse = (_3_valueOrError1).Extract().(m_ComAmazonawsKmsTypes.DecryptResponse) + var _6_valueOrError2 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _6_valueOrError2 + _6_valueOrError2 = m_Wrappers.Companion_Default___.Need(((((_5_decryptResponse).Dtor_KeyId()).Is_Some()) && (_dafny.Companion_Sequence_.Equal(((_5_decryptResponse).Dtor_KeyId()).Dtor_value().(_dafny.Sequence), (_this).AwsKmsKey()))) && (((_5_decryptResponse).Dtor_Plaintext()).Is_Some()), m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.SeqOfString("Invalid response from KMS Decrypt"))) + if (_6_valueOrError2).IsFailure() { + res = (_6_valueOrError2).PropagateFailure() + return res + } + var _7_valueOrError3 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _7_valueOrError3 + _7_valueOrError3 = m_Wrappers.Companion_Default___.Need((_dafny.Companion_Sequence_.IsPrefixOf((_this).EncryptionContextDigest(), ((_5_decryptResponse).Dtor_Plaintext()).Dtor_value().(_dafny.Sequence))) && (((_dafny.IntOfInt32(m_AlgorithmSuites.Companion_Default___.GetEncryptKeyLength((input).Dtor_algorithmSuite()))).Plus(_dafny.IntOfUint32(((_this).EncryptionContextDigest()).Cardinality()))).Cmp(_dafny.IntOfUint32((((_5_decryptResponse).Dtor_Plaintext()).Dtor_value().(_dafny.Sequence)).Cardinality())) == 0), m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.SeqOfString("Encryption context digest does not match expected value."))) + if (_7_valueOrError3).IsFailure() { + res = (_7_valueOrError3).PropagateFailure() + return res + } + var _8_output m_MaterialWrapping.UnwrapOutput + _ = _8_output + _8_output = m_MaterialWrapping.Companion_UnwrapOutput_.Create_UnwrapOutput_((((_5_decryptResponse).Dtor_Plaintext()).Dtor_value().(_dafny.Sequence)).Drop((_dafny.IntOfUint32(((_this).EncryptionContextDigest()).Cardinality())).Uint32()), Companion_KmsRsaUnwrapInfo_.Create_KmsRsaUnwrapInfo_()) + res = m_Wrappers.Companion_Result_.Create_Success_(_8_output) + return res + return res + } +} +func (_this *KmsRsaUnwrapKeyMaterial) Client() m_ComAmazonawsKmsTypes.IKMSClient { + { + return _this._client + } +} +func (_this *KmsRsaUnwrapKeyMaterial) GrantTokens() _dafny.Sequence { + { + return _this._grantTokens + } +} +func (_this *KmsRsaUnwrapKeyMaterial) AwsKmsKey() _dafny.Sequence { + { + return _this._awsKmsKey + } +} +func (_this *KmsRsaUnwrapKeyMaterial) PaddingScheme() m_ComAmazonawsKmsTypes.EncryptionAlgorithmSpec { + { + return _this._paddingScheme + } +} +func (_this *KmsRsaUnwrapKeyMaterial) EncryptionContextDigest() _dafny.Sequence { + { + return _this._encryptionContextDigest + } +} + +// End of class KmsRsaUnwrapKeyMaterial diff --git a/customer-preview/mpl/AwsKmsUtils/AwsKmsUtils.go b/customer-preview/mpl/AwsKmsUtils/AwsKmsUtils.go new file mode 100644 index 000000000..15848a896 --- /dev/null +++ b/customer-preview/mpl/AwsKmsUtils/AwsKmsUtils.go @@ -0,0 +1,534 @@ +// Package AwsKmsUtils +// Dafny module AwsKmsUtils compiled into Go + +package AwsKmsUtils + +import ( + os "os" + + m_ComAmazonawsDynamodbTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/ComAmazonawsDynamodbTypes" + m_ComAmazonawsKmsTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/ComAmazonawsKmsTypes" + m_AwsArnParsing "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsArnParsing" + m_AwsCryptographyKeyStoreTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreTypes" + m_AwsCryptographyMaterialProvidersTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersTypes" + m_AwsKmsMrkMatchForDecrypt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkMatchForDecrypt" + m_AtomicPrimitives "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AtomicPrimitives" + m_AwsCryptographyPrimitivesOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesOperations" + m_AwsCryptographyPrimitivesTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesTypes" + m_Digest "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Digest" + m_HKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/HKDF" + m_KdfCtr "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/KdfCtr" + m_Random "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Random" + m_WrappedHKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHKDF" + m_WrappedHMAC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHMAC" + m_Actions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Actions" + m_Base64 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64" + m_Base64Lemmas "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64Lemmas" + m_BoundedInts "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/BoundedInts" + m_DivInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternals" + m_DivInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternalsNonlinear" + m_DivMod "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivMod" + m_FileIO "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FileIO" + m_FloatCompare "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FloatCompare" + m_Functions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Functions" + m_GeneralInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GeneralInternals" + m_GetOpt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GetOpt" + m_HexStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/HexStrings" + m_Logarithm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Logarithm" + m__Math "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Math_" + m_ModInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternals" + m_ModInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternalsNonlinear" + m_Mul "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Mul" + m_MulInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternals" + m_MulInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternalsNonlinear" + m_Power "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Power" + m_Relations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Relations" + m_Seq "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq" + m_Seq_MergeSort "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq_MergeSort" + m_Sorting "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Sorting" + m_StandardLibrary "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary" + m_StandardLibraryInterop "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibraryInterop" + m_StandardLibrary_Sequence "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_Sequence" + m_StandardLibrary_String "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_String" + m_StandardLibrary_UInt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_UInt" + m_Streams "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Streams" + m_UTF8 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UTF8" + m_UnicodeStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UnicodeStrings" + m__Unicode "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Unicode_" + m_Utf16EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf16EncodingForm" + m_Utf8EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf8EncodingForm" + m_Wrappers "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers" + m__System "github.com/dafny-lang/DafnyRuntimeGo/v4/System_" + _dafny "github.com/dafny-lang/DafnyRuntimeGo/v4/dafny" +) + +var _ = os.Args +var _ _dafny.Dummy__ +var _ m__System.Dummy__ +var _ m_Wrappers.Dummy__ +var _ m_BoundedInts.Dummy__ +var _ m_StandardLibrary_UInt.Dummy__ +var _ m_StandardLibrary_Sequence.Dummy__ +var _ m_StandardLibrary_String.Dummy__ +var _ m_StandardLibrary.Dummy__ +var _ m_AwsCryptographyPrimitivesTypes.Dummy__ +var _ m_Random.Dummy__ +var _ m_Digest.Dummy__ +var _ m_WrappedHMAC.Dummy__ +var _ m_HKDF.Dummy__ +var _ m_WrappedHKDF.Dummy__ +var _ m_KdfCtr.Dummy__ +var _ m_AwsCryptographyPrimitivesOperations.Dummy__ +var _ m_AtomicPrimitives.Dummy__ +var _ m_ComAmazonawsDynamodbTypes.Dummy__ +var _ m_ComAmazonawsKmsTypes.Dummy__ +var _ m_Relations.Dummy__ +var _ m_Seq_MergeSort.Dummy__ +var _ m__Math.Dummy__ +var _ m_Seq.Dummy__ +var _ m__Unicode.Dummy__ +var _ m_Functions.Dummy__ +var _ m_Utf8EncodingForm.Dummy__ +var _ m_Utf16EncodingForm.Dummy__ +var _ m_UnicodeStrings.Dummy__ +var _ m_FileIO.Dummy__ +var _ m_GeneralInternals.Dummy__ +var _ m_MulInternalsNonlinear.Dummy__ +var _ m_MulInternals.Dummy__ +var _ m_Mul.Dummy__ +var _ m_ModInternalsNonlinear.Dummy__ +var _ m_DivInternalsNonlinear.Dummy__ +var _ m_ModInternals.Dummy__ +var _ m_DivInternals.Dummy__ +var _ m_DivMod.Dummy__ +var _ m_Power.Dummy__ +var _ m_Logarithm.Dummy__ +var _ m_StandardLibraryInterop.Dummy__ +var _ m_Streams.Dummy__ +var _ m_Sorting.Dummy__ +var _ m_HexStrings.Dummy__ +var _ m_GetOpt.Dummy__ +var _ m_FloatCompare.Dummy__ +var _ m_Base64.Dummy__ +var _ m_Base64Lemmas.Dummy__ +var _ m_Actions.Dummy__ +var _ m_AwsCryptographyKeyStoreTypes.Dummy__ +var _ m_AwsCryptographyMaterialProvidersTypes.Dummy__ +var _ m_AwsArnParsing.Dummy__ +var _ m_AwsKmsMrkMatchForDecrypt.Dummy__ + +type Dummy__ struct{} + +// Definition of class Default__ +type Default__ struct { + dummy byte +} + +func New_Default___() *Default__ { + _this := Default__{} + + return &_this +} + +type CompanionStruct_Default___ struct { +} + +var Companion_Default___ = CompanionStruct_Default___{} + +func (_this *Default__) Equals(other *Default__) bool { + return _this == other +} + +func (_this *Default__) EqualsGeneric(x interface{}) bool { + other, ok := x.(*Default__) + return ok && _this.Equals(other) +} + +func (*Default__) String() string { + return "AwsKmsUtils.Default__" +} +func (_this *Default__) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = &Default__{} + +func (_static *CompanionStruct_Default___) OkForDecrypt(id m_AwsArnParsing.AwsKmsIdentifier, arn _dafny.Sequence) m_Wrappers.Outcome { + if !((id).Is_AwsKmsArnIdentifier()) { + return m_Wrappers.Companion_Outcome_.Create_Fail_(m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.Companion_Sequence_.Concatenate(_dafny.SeqOfString("KeyID cannot be used for Decrypt : "), arn))) + } else if !_dafny.Companion_Sequence_.Equal((((id).Dtor_a()).Dtor_resource()).Dtor_resourceType(), _dafny.SeqOfString("key")) { + return m_Wrappers.Companion_Outcome_.Create_Fail_(m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.Companion_Sequence_.Concatenate(_dafny.SeqOfString("Alias cannot be used for Decrypt : "), arn))) + } else { + return m_Wrappers.Companion_Outcome_.Create_Pass_() + } +} +func (_static *CompanionStruct_Default___) StringifyEncryptionContext(utf8EncCtx _dafny.Map) m_Wrappers.Result { + if ((utf8EncCtx).Cardinality()).Sign() == 0 { + return m_Wrappers.Companion_Result_.Create_Success_(_dafny.NewMapBuilder().ToMap()) + } else { + var _0_stringifyResults _dafny.Map = func() _dafny.Map { + var _coll0 = _dafny.NewMapBuilder() + _ = _coll0 + for _iter0 := _dafny.Iterate(((utf8EncCtx).Keys()).Elements()); ; { + _compr_0, _ok0 := _iter0() + if !_ok0 { + break + } + var _1_utf8Key _dafny.Sequence + _1_utf8Key = interface{}(_compr_0).(_dafny.Sequence) + if m_UTF8.Companion_ValidUTF8Bytes_.Is_(_1_utf8Key) { + if ((utf8EncCtx).Keys()).Contains(_1_utf8Key) { + _coll0.Add(_1_utf8Key, Companion_Default___.StringifyEncryptionContextPair(_1_utf8Key, (utf8EncCtx).Get(_1_utf8Key).(_dafny.Sequence))) + } + } + } + return _coll0.ToMap() + }() + _ = _0_stringifyResults + if _dafny.Quantifier(((_0_stringifyResults).Values()).Elements(), false, func(_exists_var_0 m_Wrappers.Result) bool { + var _2_r m_Wrappers.Result + _2_r = interface{}(_exists_var_0).(m_Wrappers.Result) + return (((_0_stringifyResults).Values()).Contains(_2_r)) && ((_2_r).Is_Failure()) + }) { + return m_Wrappers.Companion_Result_.Create_Failure_(m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.SeqOfString("Encryption context contains invalid UTF8"))) + } else { + var _3_stringKeysUnique bool = _dafny.Quantifier((_0_stringifyResults).Keys().Elements(), true, func(_forall_var_0 _dafny.Sequence) bool { + var _4_k _dafny.Sequence + _4_k = interface{}(_forall_var_0).(_dafny.Sequence) + return _dafny.Quantifier((_0_stringifyResults).Keys().Elements(), true, func(_forall_var_1 _dafny.Sequence) bool { + var _5_k_k _dafny.Sequence + _5_k_k = interface{}(_forall_var_1).(_dafny.Sequence) + return !(((_0_stringifyResults).Contains(_4_k)) && ((_0_stringifyResults).Contains(_5_k_k))) || (!(!_dafny.Companion_Sequence_.Equal(_4_k, _5_k_k)) || (!_dafny.Companion_Sequence_.Equal((*(((_0_stringifyResults).Get(_4_k).(m_Wrappers.Result)).Dtor_value().(_dafny.Tuple)).IndexInt(0)).(_dafny.Sequence), (*(((_0_stringifyResults).Get(_5_k_k).(m_Wrappers.Result)).Dtor_value().(_dafny.Tuple)).IndexInt(0)).(_dafny.Sequence)))) + }) + }) + _ = _3_stringKeysUnique + if !(_3_stringKeysUnique) { + return m_Wrappers.Companion_Result_.Create_Failure_(m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.SeqOfString("Encryption context keys are not unique"))) + } else { + return m_Wrappers.Companion_Result_.Create_Success_(func() _dafny.Map { + var _coll1 = _dafny.NewMapBuilder() + _ = _coll1 + for _iter1 := _dafny.Iterate(((_0_stringifyResults).Values()).Elements()); ; { + _compr_1, _ok1 := _iter1() + if !_ok1 { + break + } + var _6_r m_Wrappers.Result + _6_r = interface{}(_compr_1).(m_Wrappers.Result) + if ((_0_stringifyResults).Values()).Contains(_6_r) { + _coll1.Add((*((_6_r).Dtor_value().(_dafny.Tuple)).IndexInt(0)).(_dafny.Sequence), (*((_6_r).Dtor_value().(_dafny.Tuple)).IndexInt(1)).(_dafny.Sequence)) + } + } + return _coll1.ToMap() + }()) + } + } + } +} +func (_static *CompanionStruct_Default___) StringifyEncryptionContextPair(utf8Key _dafny.Sequence, utf8Value _dafny.Sequence) m_Wrappers.Result { + var _0_valueOrError0 m_Wrappers.Result = (m_UTF8.Decode(utf8Key)).MapFailure(func(coer1 func(_dafny.Sequence) m_AwsCryptographyMaterialProvidersTypes.Error) func(interface{}) interface{} { + return func(arg1 interface{}) interface{} { + return coer1(arg1.(_dafny.Sequence)) + } + }(Companion_Default___.WrapStringToError)) + _ = _0_valueOrError0 + if (_0_valueOrError0).IsFailure() { + return (_0_valueOrError0).PropagateFailure() + } else { + var _1_key _dafny.Sequence = (_0_valueOrError0).Extract().(_dafny.Sequence) + _ = _1_key + var _2_valueOrError1 m_Wrappers.Result = (m_UTF8.Decode(utf8Value)).MapFailure(func(coer2 func(_dafny.Sequence) m_AwsCryptographyMaterialProvidersTypes.Error) func(interface{}) interface{} { + return func(arg2 interface{}) interface{} { + return coer2(arg2.(_dafny.Sequence)) + } + }(Companion_Default___.WrapStringToError)) + _ = _2_valueOrError1 + if (_2_valueOrError1).IsFailure() { + return (_2_valueOrError1).PropagateFailure() + } else { + var _3_value _dafny.Sequence = (_2_valueOrError1).Extract().(_dafny.Sequence) + _ = _3_value + return m_Wrappers.Companion_Result_.Create_Success_(_dafny.TupleOf(_1_key, _3_value)) + } + } +} +func (_static *CompanionStruct_Default___) WrapStringToError(e _dafny.Sequence) m_AwsCryptographyMaterialProvidersTypes.Error { + return m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(e) +} +func (_static *CompanionStruct_Default___) ValidateKmsKeyId(keyId _dafny.Sequence) m_Wrappers.Result { + var _0_valueOrError0 m_Wrappers.Result = (m_AwsArnParsing.Companion_Default___.ParseAwsKmsIdentifier(keyId)).MapFailure(func(coer3 func(_dafny.Sequence) m_AwsCryptographyMaterialProvidersTypes.Error) func(interface{}) interface{} { + return func(arg3 interface{}) interface{} { + return coer3(arg3.(_dafny.Sequence)) + } + }(Companion_Default___.WrapStringToError)) + _ = _0_valueOrError0 + if (_0_valueOrError0).IsFailure() { + return (_0_valueOrError0).PropagateFailure() + } else { + var _1___v0 m_AwsArnParsing.AwsKmsIdentifier = (_0_valueOrError0).Extract().(m_AwsArnParsing.AwsKmsIdentifier) + _ = _1___v0 + var _2_valueOrError1 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need(m_UTF8.Companion_Default___.IsASCIIString(keyId), m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.SeqOfString("Key identifier is not ASCII"))) + _ = _2_valueOrError1 + if (_2_valueOrError1).IsFailure() { + return (_2_valueOrError1).PropagateFailure() + } else { + var _3_valueOrError2 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need(((_dafny.IntOfUint32((keyId).Cardinality())).Sign() == 1) && ((_dafny.IntOfUint32((keyId).Cardinality())).Cmp(m_AwsArnParsing.Companion_Default___.MAX__AWS__KMS__IDENTIFIER__LENGTH()) <= 0), m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.SeqOfString("Key identifier is too long"))) + _ = _3_valueOrError2 + if (_3_valueOrError2).IsFailure() { + return (_3_valueOrError2).PropagateFailure() + } else { + return m_Wrappers.Companion_Result_.Create_Success_(_dafny.TupleOf()) + } + } + } +} +func (_static *CompanionStruct_Default___) GetValidGrantTokens(grantTokens m_Wrappers.Option) m_Wrappers.Result { + var _0_tokens _dafny.Sequence = (grantTokens).UnwrapOr(_dafny.SeqOf()).(_dafny.Sequence) + _ = _0_tokens + var _1_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need(((_dafny.IntOfUint32((_0_tokens).Cardinality())).Sign() != -1) && ((_dafny.IntOfUint32((_0_tokens).Cardinality())).Cmp(_dafny.IntOfInt64(10)) <= 0), m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.SeqOfString("Grant token list can have no more than 10 tokens"))) + _ = _1_valueOrError0 + if (_1_valueOrError0).IsFailure() { + return (_1_valueOrError0).PropagateFailure() + } else { + var _2_valueOrError1 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need(_dafny.Quantifier((_0_tokens).UniqueElements(), true, func(_forall_var_0 _dafny.Sequence) bool { + var _3_token _dafny.Sequence + _3_token = interface{}(_forall_var_0).(_dafny.Sequence) + return !(_dafny.Companion_Sequence_.Contains(_0_tokens, _3_token)) || (((_dafny.One).Cmp(_dafny.IntOfUint32((_3_token).Cardinality())) <= 0) && ((_dafny.IntOfUint32((_3_token).Cardinality())).Cmp(_dafny.IntOfInt64(8192)) <= 0)) + }), m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.SeqOfString("Grant token list contains a grant token with invalid length"))) + _ = _2_valueOrError1 + if (_2_valueOrError1).IsFailure() { + return (_2_valueOrError1).PropagateFailure() + } else { + return m_Wrappers.Companion_Result_.Create_Success_(_0_tokens) + } + } +} +func (_static *CompanionStruct_Default___) GetEcdhPublicKey(client m_ComAmazonawsKmsTypes.IKMSClient, awsKmsKey _dafny.Sequence) m_Wrappers.Result { + var res m_Wrappers.Result = m_Wrappers.Result{} + _ = res + var _0_getPublicKeyRequest m_ComAmazonawsKmsTypes.GetPublicKeyRequest + _ = _0_getPublicKeyRequest + _0_getPublicKeyRequest = m_ComAmazonawsKmsTypes.Companion_GetPublicKeyRequest_.Create_GetPublicKeyRequest_(awsKmsKey, m_Wrappers.Companion_Option_.Create_None_()) + var _1_maybePublicKeyResponse m_Wrappers.Result + _ = _1_maybePublicKeyResponse + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = (client).GetPublicKey(_0_getPublicKeyRequest) + _1_maybePublicKeyResponse = _out0 + var _2_valueOrError0 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_ComAmazonawsKmsTypes.Companion_GetPublicKeyResponse_.Default()) + _ = _2_valueOrError0 + _2_valueOrError0 = (_1_maybePublicKeyResponse).MapFailure(func(coer4 func(m_ComAmazonawsKmsTypes.Error) m_AwsCryptographyMaterialProvidersTypes.Error) func(interface{}) interface{} { + return func(arg4 interface{}) interface{} { + return coer4(arg4.(m_ComAmazonawsKmsTypes.Error)) + } + }(func(_3_e m_ComAmazonawsKmsTypes.Error) m_AwsCryptographyMaterialProvidersTypes.Error { + return m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_ComAmazonawsKms_(_3_e) + })) + if (_2_valueOrError0).IsFailure() { + res = (_2_valueOrError0).PropagateFailure() + return res + } + var _4_getPublicKeyResponse m_ComAmazonawsKmsTypes.GetPublicKeyResponse + _ = _4_getPublicKeyResponse + _4_getPublicKeyResponse = (_2_valueOrError0).Extract().(m_ComAmazonawsKmsTypes.GetPublicKeyResponse) + var _5_valueOrError1 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _5_valueOrError1 + _5_valueOrError1 = m_Wrappers.Companion_Default___.Need(((((((_4_getPublicKeyResponse).Dtor_KeyId()).Is_Some()) && (_dafny.Companion_Sequence_.Equal(((_4_getPublicKeyResponse).Dtor_KeyId()).Dtor_value().(_dafny.Sequence), awsKmsKey))) && (((_4_getPublicKeyResponse).Dtor_KeyUsage()).Is_Some())) && ((((_4_getPublicKeyResponse).Dtor_KeyUsage()).Dtor_value().(m_ComAmazonawsKmsTypes.KeyUsageType)).Equals(m_ComAmazonawsKmsTypes.Companion_KeyUsageType_.Create_KEY__AGREEMENT_()))) && (((_4_getPublicKeyResponse).Dtor_PublicKey()).Is_Some()), m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.SeqOfString("Invalid response from KMS GetPublicKey"))) + if (_5_valueOrError1).IsFailure() { + res = (_5_valueOrError1).PropagateFailure() + return res + } + res = m_Wrappers.Companion_Result_.Create_Success_(((_4_getPublicKeyResponse).Dtor_PublicKey()).Dtor_value().(_dafny.Sequence)) + return res + return res +} +func (_static *CompanionStruct_Default___) ParseKeyNamespaceAndName(keyNamespace _dafny.Sequence, keyName _dafny.Sequence) m_Wrappers.Result { + var _0_valueOrError0 m_Wrappers.Result = (m_UTF8.Encode(keyNamespace)).MapFailure(func(coer5 func(_dafny.Sequence) m_AwsCryptographyMaterialProvidersTypes.Error) func(interface{}) interface{} { + return func(arg5 interface{}) interface{} { + return coer5(arg5.(_dafny.Sequence)) + } + }(func(_1_e _dafny.Sequence) m_AwsCryptographyMaterialProvidersTypes.Error { + return m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.Companion_Sequence_.Concatenate(_dafny.SeqOfString("Key namespace could not be UTF8-encoded"), _1_e)) + })) + _ = _0_valueOrError0 + if (_0_valueOrError0).IsFailure() { + return (_0_valueOrError0).PropagateFailure() + } else { + var _2_namespace _dafny.Sequence = (_0_valueOrError0).Extract().(_dafny.Sequence) + _ = _2_namespace + var _3_valueOrError1 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need((_dafny.IntOfUint32((_2_namespace).Cardinality())).Cmp(m_StandardLibrary_UInt.Companion_Default___.UINT16__LIMIT()) < 0, m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.SeqOfString("Key namespace too long"))) + _ = _3_valueOrError1 + if (_3_valueOrError1).IsFailure() { + return (_3_valueOrError1).PropagateFailure() + } else { + var _4_valueOrError2 m_Wrappers.Result = (m_UTF8.Encode(keyName)).MapFailure(func(coer6 func(_dafny.Sequence) m_AwsCryptographyMaterialProvidersTypes.Error) func(interface{}) interface{} { + return func(arg6 interface{}) interface{} { + return coer6(arg6.(_dafny.Sequence)) + } + }(func(_5_e _dafny.Sequence) m_AwsCryptographyMaterialProvidersTypes.Error { + return m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.Companion_Sequence_.Concatenate(_dafny.SeqOfString("Key name could not be UTF8-encoded"), _5_e)) + })) + _ = _4_valueOrError2 + if (_4_valueOrError2).IsFailure() { + return (_4_valueOrError2).PropagateFailure() + } else { + var _6_name _dafny.Sequence = (_4_valueOrError2).Extract().(_dafny.Sequence) + _ = _6_name + var _7_valueOrError3 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need((_dafny.IntOfUint32((_6_name).Cardinality())).Cmp(m_StandardLibrary_UInt.Companion_Default___.UINT16__LIMIT()) < 0, m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.SeqOfString("Key name too long"))) + _ = _7_valueOrError3 + if (_7_valueOrError3).IsFailure() { + return (_7_valueOrError3).PropagateFailure() + } else { + return m_Wrappers.Companion_Result_.Create_Success_(_dafny.TupleOf(_2_namespace, _6_name)) + } + } + } + } +} +func (_static *CompanionStruct_Default___) ValidateDiscoveryFilter(filter m_AwsCryptographyMaterialProvidersTypes.DiscoveryFilter) m_Wrappers.Result { + var _0_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need((_dafny.IntOfUint32(((filter).Dtor_accountIds()).Cardinality())).Sign() == 1, m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.SeqOfString("Discovery filter must have at least one account ID"))) + _ = _0_valueOrError0 + if (_0_valueOrError0).IsFailure() { + return (_0_valueOrError0).PropagateFailure() + } else { + var _1_valueOrError1 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need(_dafny.Quantifier(((filter).Dtor_accountIds()).UniqueElements(), true, func(_forall_var_0 _dafny.Sequence) bool { + var _2_accountId _dafny.Sequence + _2_accountId = interface{}(_forall_var_0).(_dafny.Sequence) + return !(_dafny.Companion_Sequence_.Contains((filter).Dtor_accountIds(), _2_accountId)) || ((_dafny.IntOfUint32((_2_accountId).Cardinality())).Sign() == 1) + }), m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.SeqOfString("Discovery filter account IDs cannot be blank"))) + _ = _1_valueOrError1 + if (_1_valueOrError1).IsFailure() { + return (_1_valueOrError1).PropagateFailure() + } else { + var _3_valueOrError2 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need((_dafny.IntOfUint32(((filter).Dtor_partition()).Cardinality())).Sign() == 1, m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.SeqOfString("Discovery filter partition cannot be blank"))) + _ = _3_valueOrError2 + if (_3_valueOrError2).IsFailure() { + return (_3_valueOrError2).PropagateFailure() + } else { + return m_Wrappers.Companion_Result_.Create_Success_(_dafny.TupleOf()) + } + } + } +} + +// End of class Default__ + +// Definition of class OnDecryptMrkAwareEncryptedDataKeyFilter +type OnDecryptMrkAwareEncryptedDataKeyFilter struct { + _awsKmsKey m_AwsArnParsing.AwsKmsIdentifier + _providerId _dafny.Sequence +} + +func New_OnDecryptMrkAwareEncryptedDataKeyFilter_() *OnDecryptMrkAwareEncryptedDataKeyFilter { + _this := OnDecryptMrkAwareEncryptedDataKeyFilter{} + + _this._awsKmsKey = m_AwsArnParsing.AwsKmsIdentifier{} + _this._providerId = m_UTF8.Companion_ValidUTF8Bytes_.Witness() + return &_this +} + +type CompanionStruct_OnDecryptMrkAwareEncryptedDataKeyFilter_ struct { +} + +var Companion_OnDecryptMrkAwareEncryptedDataKeyFilter_ = CompanionStruct_OnDecryptMrkAwareEncryptedDataKeyFilter_{} + +func (_this *OnDecryptMrkAwareEncryptedDataKeyFilter) Equals(other *OnDecryptMrkAwareEncryptedDataKeyFilter) bool { + return _this == other +} + +func (_this *OnDecryptMrkAwareEncryptedDataKeyFilter) EqualsGeneric(x interface{}) bool { + other, ok := x.(*OnDecryptMrkAwareEncryptedDataKeyFilter) + return ok && _this.Equals(other) +} + +func (*OnDecryptMrkAwareEncryptedDataKeyFilter) String() string { + return "AwsKmsUtils.OnDecryptMrkAwareEncryptedDataKeyFilter" +} + +func Type_OnDecryptMrkAwareEncryptedDataKeyFilter_() _dafny.TypeDescriptor { + return type_OnDecryptMrkAwareEncryptedDataKeyFilter_{} +} + +type type_OnDecryptMrkAwareEncryptedDataKeyFilter_ struct { +} + +func (_this type_OnDecryptMrkAwareEncryptedDataKeyFilter_) Default() interface{} { + return (*OnDecryptMrkAwareEncryptedDataKeyFilter)(nil) +} + +func (_this type_OnDecryptMrkAwareEncryptedDataKeyFilter_) String() string { + return "AwsKmsUtils.OnDecryptMrkAwareEncryptedDataKeyFilter" +} +func (_this *OnDecryptMrkAwareEncryptedDataKeyFilter) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){m_Actions.Companion_DeterministicActionWithResult_.TraitID_, m_Actions.Companion_DeterministicAction_.TraitID_} +} + +var _ m_Actions.DeterministicActionWithResult = &OnDecryptMrkAwareEncryptedDataKeyFilter{} +var _ m_Actions.DeterministicAction = &OnDecryptMrkAwareEncryptedDataKeyFilter{} +var _ _dafny.TraitOffspring = &OnDecryptMrkAwareEncryptedDataKeyFilter{} + +func (_this *OnDecryptMrkAwareEncryptedDataKeyFilter) Ctor__(awsKmsKey m_AwsArnParsing.AwsKmsIdentifier, providerId _dafny.Sequence) { + { + (_this)._awsKmsKey = awsKmsKey + (_this)._providerId = providerId + } +} +func (_this *OnDecryptMrkAwareEncryptedDataKeyFilter) Invoke(edk interface{}) interface{} { + { + var edk m_AwsCryptographyMaterialProvidersTypes.EncryptedDataKey = edk.(m_AwsCryptographyMaterialProvidersTypes.EncryptedDataKey) + _ = edk + var res m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(false) + _ = res + if !_dafny.Companion_Sequence_.Equal((edk).Dtor_keyProviderId(), (_this).ProviderId()) { + res = m_Wrappers.Companion_Result_.Create_Success_(false) + return res + } + if !(m_UTF8.Companion_Default___.ValidUTF8Seq((edk).Dtor_keyProviderInfo())) { + res = m_Wrappers.Companion_Result_.Create_Failure_(m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.SeqOfString("Invalid AWS KMS encoding, provider info is not UTF8."))) + return res + } + var _0_valueOrError0 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq.SetString()) + _ = _0_valueOrError0 + _0_valueOrError0 = (m_UTF8.Decode((edk).Dtor_keyProviderInfo())).MapFailure(func(coer7 func(_dafny.Sequence) m_AwsCryptographyMaterialProvidersTypes.Error) func(interface{}) interface{} { + return func(arg7 interface{}) interface{} { + return coer7(arg7.(_dafny.Sequence)) + } + }(Companion_Default___.WrapStringToError)) + if (_0_valueOrError0).IsFailure() { + res = (_0_valueOrError0).PropagateFailure() + return res + } + var _1_keyId _dafny.Sequence + _ = _1_keyId + _1_keyId = (_0_valueOrError0).Extract().(_dafny.Sequence) + var _2_valueOrError1 m_Wrappers.Result = m_Wrappers.Result{} + _ = _2_valueOrError1 + _2_valueOrError1 = (m_AwsArnParsing.Companion_Default___.ParseAwsKmsArn(_1_keyId)).MapFailure(func(coer8 func(_dafny.Sequence) m_AwsCryptographyMaterialProvidersTypes.Error) func(interface{}) interface{} { + return func(arg8 interface{}) interface{} { + return coer8(arg8.(_dafny.Sequence)) + } + }(Companion_Default___.WrapStringToError)) + if (_2_valueOrError1).IsFailure() { + res = (_2_valueOrError1).PropagateFailure() + return res + } + var _3_arn m_AwsArnParsing.AwsArn + _ = _3_arn + _3_arn = (_2_valueOrError1).Extract().(m_AwsArnParsing.AwsArn) + res = m_Wrappers.Companion_Result_.Create_Success_(m_AwsKmsMrkMatchForDecrypt.Companion_Default___.AwsKmsMrkMatchForDecrypt((_this).AwsKmsKey(), m_AwsArnParsing.Companion_AwsKmsIdentifier_.Create_AwsKmsArnIdentifier_(_3_arn))) + return res + return res + } +} +func (_this *OnDecryptMrkAwareEncryptedDataKeyFilter) AwsKmsKey() m_AwsArnParsing.AwsKmsIdentifier { + { + return _this._awsKmsKey + } +} +func (_this *OnDecryptMrkAwareEncryptedDataKeyFilter) ProviderId() _dafny.Sequence { + { + return _this._providerId + } +} + +// End of class OnDecryptMrkAwareEncryptedDataKeyFilter diff --git a/customer-preview/mpl/CMM/CMM.go b/customer-preview/mpl/CMM/CMM.go new file mode 100644 index 000000000..6f593fe08 --- /dev/null +++ b/customer-preview/mpl/CMM/CMM.go @@ -0,0 +1,298 @@ +// Package CMM +// Dafny module CMM compiled into Go + +package CMM + +import ( + os "os" + + m_ComAmazonawsDynamodbTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/ComAmazonawsDynamodbTypes" + m_Com_Amazonaws_Dynamodb "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/Com_Amazonaws_Dynamodb" + m_ComAmazonawsKmsTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/ComAmazonawsKmsTypes" + m_Com_Amazonaws_Kms "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/Com_Amazonaws_Kms" + m_AlgorithmSuites "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AlgorithmSuites" + m_AwsArnParsing "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsArnParsing" + m_AwsCryptographyKeyStoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreOperations" + m_AwsCryptographyKeyStoreTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreTypes" + m_AwsCryptographyMaterialProvidersTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersTypes" + m_AwsKmsDiscoveryKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsDiscoveryKeyring" + m_AwsKmsEcdhKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsEcdhKeyring" + m_AwsKmsHierarchicalKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsHierarchicalKeyring" + m_AwsKmsKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsKeyring" + m_AwsKmsMrkAreUnique "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkAreUnique" + m_AwsKmsMrkDiscoveryKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkDiscoveryKeyring" + m_AwsKmsMrkKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkKeyring" + m_AwsKmsMrkMatchForDecrypt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkMatchForDecrypt" + m_AwsKmsRsaKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsRsaKeyring" + m_AwsKmsUtils "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsUtils" + m_CacheConstants "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CacheConstants" + m_CanonicalEncryptionContext "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CanonicalEncryptionContext" + m_Constants "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Constants" + m_CreateKeyStoreTable "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeyStoreTable" + m_CreateKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeys" + m_DDBKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DDBKeystoreOperations" + m_DiscoveryMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DiscoveryMultiKeyring" + m_EcdhEdkWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/EcdhEdkWrapping" + m_EdkWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/EdkWrapping" + m_ErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/ErrorMessages" + m_GetKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/GetKeys" + m_IntermediateKeyWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/IntermediateKeyWrapping" + m_KMSKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KMSKeystoreOperations" + m_KeyStore "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStore" + m_KeyStoreErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStoreErrorMessages" + m_Keyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Keyring" + m_KmsArn "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KmsArn" + m_LocalCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/LocalCMC" + m_MaterialWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MaterialWrapping" + m_Materials "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Materials" + m_MrkAwareDiscoveryMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MrkAwareDiscoveryMultiKeyring" + m_MrkAwareStrictMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MrkAwareStrictMultiKeyring" + m_MultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MultiKeyring" + m_RawAESKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawAESKeyring" + m_RawECDHKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawECDHKeyring" + m_RawRSAKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawRSAKeyring" + m_StormTracker "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StormTracker" + m_StormTrackingCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StormTrackingCMC" + m_StrictMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StrictMultiKeyring" + m_Structure "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Structure" + m_SynchronizedLocalCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/SynchronizedLocalCMC" + m_AtomicPrimitives "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AtomicPrimitives" + m_AwsCryptographyPrimitivesOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesOperations" + m_AwsCryptographyPrimitivesTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesTypes" + m_Digest "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Digest" + m_HKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/HKDF" + m_KdfCtr "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/KdfCtr" + m_Random "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Random" + m_WrappedHKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHKDF" + m_WrappedHMAC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHMAC" + m_Actions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Actions" + m_Base64 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64" + m_Base64Lemmas "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64Lemmas" + m_BoundedInts "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/BoundedInts" + m_DivInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternals" + m_DivInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternalsNonlinear" + m_DivMod "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivMod" + m_FileIO "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FileIO" + m_FloatCompare "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FloatCompare" + m_Functions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Functions" + m_GeneralInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GeneralInternals" + m_GetOpt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GetOpt" + m_HexStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/HexStrings" + m_Logarithm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Logarithm" + m__Math "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Math_" + m_ModInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternals" + m_ModInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternalsNonlinear" + m_Mul "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Mul" + m_MulInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternals" + m_MulInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternalsNonlinear" + m_Power "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Power" + m_Relations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Relations" + m_Seq "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq" + m_Seq_MergeSort "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq_MergeSort" + m_Sorting "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Sorting" + m_StandardLibrary "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary" + m_StandardLibraryInterop "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibraryInterop" + m_StandardLibrary_Sequence "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_Sequence" + m_StandardLibrary_String "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_String" + m_StandardLibrary_UInt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_UInt" + m_Streams "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Streams" + m_UTF8 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UTF8" + m_UnicodeStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UnicodeStrings" + m__Unicode "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Unicode_" + m_Utf16EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf16EncodingForm" + m_Utf8EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf8EncodingForm" + m_Wrappers "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers" + m__System "github.com/dafny-lang/DafnyRuntimeGo/v4/System_" + _dafny "github.com/dafny-lang/DafnyRuntimeGo/v4/dafny" +) + +var _ = os.Args +var _ _dafny.Dummy__ +var _ m__System.Dummy__ +var _ m_Wrappers.Dummy__ +var _ m_BoundedInts.Dummy__ +var _ m_StandardLibrary_UInt.Dummy__ +var _ m_StandardLibrary_Sequence.Dummy__ +var _ m_StandardLibrary_String.Dummy__ +var _ m_StandardLibrary.Dummy__ +var _ m_AwsCryptographyPrimitivesTypes.Dummy__ +var _ m_Random.Dummy__ +var _ m_Digest.Dummy__ +var _ m_WrappedHMAC.Dummy__ +var _ m_HKDF.Dummy__ +var _ m_WrappedHKDF.Dummy__ +var _ m_KdfCtr.Dummy__ +var _ m_AwsCryptographyPrimitivesOperations.Dummy__ +var _ m_AtomicPrimitives.Dummy__ +var _ m_ComAmazonawsDynamodbTypes.Dummy__ +var _ m_ComAmazonawsKmsTypes.Dummy__ +var _ m_Relations.Dummy__ +var _ m_Seq_MergeSort.Dummy__ +var _ m__Math.Dummy__ +var _ m_Seq.Dummy__ +var _ m__Unicode.Dummy__ +var _ m_Functions.Dummy__ +var _ m_Utf8EncodingForm.Dummy__ +var _ m_Utf16EncodingForm.Dummy__ +var _ m_UnicodeStrings.Dummy__ +var _ m_FileIO.Dummy__ +var _ m_GeneralInternals.Dummy__ +var _ m_MulInternalsNonlinear.Dummy__ +var _ m_MulInternals.Dummy__ +var _ m_Mul.Dummy__ +var _ m_ModInternalsNonlinear.Dummy__ +var _ m_DivInternalsNonlinear.Dummy__ +var _ m_ModInternals.Dummy__ +var _ m_DivInternals.Dummy__ +var _ m_DivMod.Dummy__ +var _ m_Power.Dummy__ +var _ m_Logarithm.Dummy__ +var _ m_StandardLibraryInterop.Dummy__ +var _ m_Streams.Dummy__ +var _ m_Sorting.Dummy__ +var _ m_HexStrings.Dummy__ +var _ m_GetOpt.Dummy__ +var _ m_FloatCompare.Dummy__ +var _ m_Base64.Dummy__ +var _ m_Base64Lemmas.Dummy__ +var _ m_Actions.Dummy__ +var _ m_AwsCryptographyKeyStoreTypes.Dummy__ +var _ m_AwsCryptographyMaterialProvidersTypes.Dummy__ +var _ m_AwsArnParsing.Dummy__ +var _ m_AwsKmsMrkMatchForDecrypt.Dummy__ +var _ m_AwsKmsUtils.Dummy__ +var _ m_KeyStoreErrorMessages.Dummy__ +var _ m_KmsArn.Dummy__ +var _ m_Structure.Dummy__ +var _ m_KMSKeystoreOperations.Dummy__ +var _ m_DDBKeystoreOperations.Dummy__ +var _ m_CreateKeys.Dummy__ +var _ m_CreateKeyStoreTable.Dummy__ +var _ m_GetKeys.Dummy__ +var _ m_AwsCryptographyKeyStoreOperations.Dummy__ +var _ m_Com_Amazonaws_Kms.Dummy__ +var _ m_Com_Amazonaws_Dynamodb.Dummy__ +var _ m_KeyStore.Dummy__ +var _ m_AlgorithmSuites.Dummy__ +var _ m_Materials.Dummy__ +var _ m_Keyring.Dummy__ +var _ m_MultiKeyring.Dummy__ +var _ m_AwsKmsMrkAreUnique.Dummy__ +var _ m_Constants.Dummy__ +var _ m_MaterialWrapping.Dummy__ +var _ m_CanonicalEncryptionContext.Dummy__ +var _ m_IntermediateKeyWrapping.Dummy__ +var _ m_EdkWrapping.Dummy__ +var _ m_ErrorMessages.Dummy__ +var _ m_AwsKmsKeyring.Dummy__ +var _ m_StrictMultiKeyring.Dummy__ +var _ m_AwsKmsDiscoveryKeyring.Dummy__ +var _ m_DiscoveryMultiKeyring.Dummy__ +var _ m_AwsKmsMrkDiscoveryKeyring.Dummy__ +var _ m_MrkAwareDiscoveryMultiKeyring.Dummy__ +var _ m_AwsKmsMrkKeyring.Dummy__ +var _ m_MrkAwareStrictMultiKeyring.Dummy__ +var _ m_LocalCMC.Dummy__ +var _ m_SynchronizedLocalCMC.Dummy__ +var _ m_StormTracker.Dummy__ +var _ m_StormTrackingCMC.Dummy__ +var _ m_CacheConstants.Dummy__ +var _ m_AwsKmsHierarchicalKeyring.Dummy__ +var _ m_AwsKmsRsaKeyring.Dummy__ +var _ m_EcdhEdkWrapping.Dummy__ +var _ m_RawECDHKeyring.Dummy__ +var _ m_AwsKmsEcdhKeyring.Dummy__ +var _ m_RawAESKeyring.Dummy__ +var _ m_RawRSAKeyring.Dummy__ + +type Dummy__ struct{} + +// Definition of class Default__ +type Default__ struct { + dummy byte +} + +func New_Default___() *Default__ { + _this := Default__{} + + return &_this +} + +type CompanionStruct_Default___ struct { +} + +var Companion_Default___ = CompanionStruct_Default___{} + +func (_this *Default__) Equals(other *Default__) bool { + return _this == other +} + +func (_this *Default__) EqualsGeneric(x interface{}) bool { + other, ok := x.(*Default__) + return ok && _this.Equals(other) +} + +func (*Default__) String() string { + return "CMM.Default__" +} +func (_this *Default__) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = &Default__{} + +func (_static *CompanionStruct_Default___) RequiredEncryptionContextKeys_q(requiredEncryptionContextKeys m_Wrappers.Option, encryptionMaterials m_AwsCryptographyMaterialProvidersTypes.EncryptionMaterials) bool { + return _dafny.Quantifier(((requiredEncryptionContextKeys).UnwrapOr(_dafny.SeqOf()).(_dafny.Sequence)).UniqueElements(), true, func(_forall_var_0 _dafny.Sequence) bool { + var _0_k _dafny.Sequence + _0_k = interface{}(_forall_var_0).(_dafny.Sequence) + if m_UTF8.Companion_ValidUTF8Bytes_.Is_(_0_k) { + return !(_dafny.Companion_Sequence_.Contains((requiredEncryptionContextKeys).UnwrapOr(_dafny.SeqOf()).(_dafny.Sequence), _0_k)) || (_dafny.Companion_Sequence_.Contains((encryptionMaterials).Dtor_requiredEncryptionContextKeys(), _0_k)) + } else { + return true + } + }) +} +func (_static *CompanionStruct_Default___) EncryptionContextComplete(input m_AwsCryptographyMaterialProvidersTypes.DecryptMaterialsInput, decryptionMaterials m_AwsCryptographyMaterialProvidersTypes.DecryptionMaterials) bool { + var _0_reproducedEncryptionContext _dafny.Map = ((input).Dtor_reproducedEncryptionContext()).UnwrapOr(_dafny.NewMapBuilder().ToMap()).(_dafny.Map) + _ = _0_reproducedEncryptionContext + return _dafny.Quantifier(((_0_reproducedEncryptionContext).Keys()).Elements(), true, func(_forall_var_0 _dafny.Sequence) bool { + var _1_k _dafny.Sequence + _1_k = interface{}(_forall_var_0).(_dafny.Sequence) + return !(((_0_reproducedEncryptionContext).Keys()).Contains(_1_k)) || ((((decryptionMaterials).Dtor_encryptionContext()).Contains(_1_k)) && (_dafny.Companion_Sequence_.Equal(((decryptionMaterials).Dtor_encryptionContext()).Get(_1_k).(_dafny.Sequence), (_0_reproducedEncryptionContext).Get(_1_k).(_dafny.Sequence)))) + }) +} +func (_static *CompanionStruct_Default___) ReproducedEncryptionContext_q(input m_AwsCryptographyMaterialProvidersTypes.DecryptMaterialsInput) bool { + var _0_reproducedEncryptionContext _dafny.Map = ((input).Dtor_reproducedEncryptionContext()).UnwrapOr(_dafny.NewMapBuilder().ToMap()).(_dafny.Map) + _ = _0_reproducedEncryptionContext + return _dafny.Quantifier(((_0_reproducedEncryptionContext).Keys()).Elements(), true, func(_forall_var_0 _dafny.Sequence) bool { + var _1_k _dafny.Sequence + _1_k = interface{}(_forall_var_0).(_dafny.Sequence) + return !((((_0_reproducedEncryptionContext).Keys()).Contains(_1_k)) && (((input).Dtor_encryptionContext()).Contains(_1_k))) || (_dafny.Companion_Sequence_.Equal(((input).Dtor_encryptionContext()).Get(_1_k).(_dafny.Sequence), (_0_reproducedEncryptionContext).Get(_1_k).(_dafny.Sequence))) + }) +} + +// End of class Default__ + +// Definition of trait VerifiableInterface +type VerifiableInterface interface { + String() string + DecryptMaterials(input m_AwsCryptographyMaterialProvidersTypes.DecryptMaterialsInput) m_Wrappers.Result + GetEncryptionMaterials(input m_AwsCryptographyMaterialProvidersTypes.GetEncryptionMaterialsInput) m_Wrappers.Result + GetEncryptionMaterials_k(input m_AwsCryptographyMaterialProvidersTypes.GetEncryptionMaterialsInput) m_Wrappers.Result + DecryptMaterials_k(input m_AwsCryptographyMaterialProvidersTypes.DecryptMaterialsInput) m_Wrappers.Result +} +type CompanionStruct_VerifiableInterface_ struct { + TraitID_ *_dafny.TraitID +} + +var Companion_VerifiableInterface_ = CompanionStruct_VerifiableInterface_{ + TraitID_: &_dafny.TraitID{}, +} + +func (CompanionStruct_VerifiableInterface_) CastTo_(x interface{}) VerifiableInterface { + var t VerifiableInterface + t, _ = x.(VerifiableInterface) + return t +} + +// End of trait VerifiableInterface diff --git a/customer-preview/mpl/CacheConstants/CacheConstants.go b/customer-preview/mpl/CacheConstants/CacheConstants.go new file mode 100644 index 000000000..d78e74fd5 --- /dev/null +++ b/customer-preview/mpl/CacheConstants/CacheConstants.go @@ -0,0 +1,246 @@ +// Package CacheConstants +// Dafny module CacheConstants compiled into Go + +package CacheConstants + +import ( + os "os" + + m_ComAmazonawsDynamodbTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/ComAmazonawsDynamodbTypes" + m_Com_Amazonaws_Dynamodb "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/Com_Amazonaws_Dynamodb" + m_ComAmazonawsKmsTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/ComAmazonawsKmsTypes" + m_Com_Amazonaws_Kms "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/Com_Amazonaws_Kms" + m_AlgorithmSuites "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AlgorithmSuites" + m_AwsArnParsing "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsArnParsing" + m_AwsCryptographyKeyStoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreOperations" + m_AwsCryptographyKeyStoreTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreTypes" + m_AwsCryptographyMaterialProvidersTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersTypes" + m_AwsKmsDiscoveryKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsDiscoveryKeyring" + m_AwsKmsKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsKeyring" + m_AwsKmsMrkAreUnique "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkAreUnique" + m_AwsKmsMrkDiscoveryKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkDiscoveryKeyring" + m_AwsKmsMrkKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkKeyring" + m_AwsKmsMrkMatchForDecrypt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkMatchForDecrypt" + m_AwsKmsUtils "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsUtils" + m_CanonicalEncryptionContext "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CanonicalEncryptionContext" + m_Constants "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Constants" + m_CreateKeyStoreTable "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeyStoreTable" + m_CreateKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeys" + m_DDBKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DDBKeystoreOperations" + m_DiscoveryMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DiscoveryMultiKeyring" + m_EdkWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/EdkWrapping" + m_ErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/ErrorMessages" + m_GetKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/GetKeys" + m_IntermediateKeyWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/IntermediateKeyWrapping" + m_KMSKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KMSKeystoreOperations" + m_KeyStore "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStore" + m_KeyStoreErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStoreErrorMessages" + m_Keyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Keyring" + m_KmsArn "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KmsArn" + m_LocalCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/LocalCMC" + m_MaterialWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MaterialWrapping" + m_Materials "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Materials" + m_MrkAwareDiscoveryMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MrkAwareDiscoveryMultiKeyring" + m_MrkAwareStrictMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MrkAwareStrictMultiKeyring" + m_MultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MultiKeyring" + m_StormTracker "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StormTracker" + m_StormTrackingCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StormTrackingCMC" + m_StrictMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StrictMultiKeyring" + m_Structure "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Structure" + m_SynchronizedLocalCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/SynchronizedLocalCMC" + m_AtomicPrimitives "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AtomicPrimitives" + m_AwsCryptographyPrimitivesOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesOperations" + m_AwsCryptographyPrimitivesTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesTypes" + m_Digest "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Digest" + m_HKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/HKDF" + m_KdfCtr "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/KdfCtr" + m_Random "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Random" + m_WrappedHKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHKDF" + m_WrappedHMAC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHMAC" + m_Actions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Actions" + m_Base64 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64" + m_Base64Lemmas "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64Lemmas" + m_BoundedInts "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/BoundedInts" + m_DivInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternals" + m_DivInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternalsNonlinear" + m_DivMod "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivMod" + m_FileIO "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FileIO" + m_FloatCompare "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FloatCompare" + m_Functions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Functions" + m_GeneralInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GeneralInternals" + m_GetOpt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GetOpt" + m_HexStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/HexStrings" + m_Logarithm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Logarithm" + m__Math "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Math_" + m_ModInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternals" + m_ModInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternalsNonlinear" + m_Mul "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Mul" + m_MulInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternals" + m_MulInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternalsNonlinear" + m_Power "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Power" + m_Relations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Relations" + m_Seq "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq" + m_Seq_MergeSort "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq_MergeSort" + m_Sorting "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Sorting" + m_StandardLibrary "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary" + m_StandardLibraryInterop "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibraryInterop" + m_StandardLibrary_Sequence "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_Sequence" + m_StandardLibrary_String "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_String" + m_StandardLibrary_UInt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_UInt" + m_Streams "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Streams" + m_UnicodeStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UnicodeStrings" + m__Unicode "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Unicode_" + m_Utf16EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf16EncodingForm" + m_Utf8EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf8EncodingForm" + m_Wrappers "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers" + m__System "github.com/dafny-lang/DafnyRuntimeGo/v4/System_" + _dafny "github.com/dafny-lang/DafnyRuntimeGo/v4/dafny" +) + +var _ = os.Args +var _ _dafny.Dummy__ +var _ m__System.Dummy__ +var _ m_Wrappers.Dummy__ +var _ m_BoundedInts.Dummy__ +var _ m_StandardLibrary_UInt.Dummy__ +var _ m_StandardLibrary_Sequence.Dummy__ +var _ m_StandardLibrary_String.Dummy__ +var _ m_StandardLibrary.Dummy__ +var _ m_AwsCryptographyPrimitivesTypes.Dummy__ +var _ m_Random.Dummy__ +var _ m_Digest.Dummy__ +var _ m_WrappedHMAC.Dummy__ +var _ m_HKDF.Dummy__ +var _ m_WrappedHKDF.Dummy__ +var _ m_KdfCtr.Dummy__ +var _ m_AwsCryptographyPrimitivesOperations.Dummy__ +var _ m_AtomicPrimitives.Dummy__ +var _ m_ComAmazonawsDynamodbTypes.Dummy__ +var _ m_ComAmazonawsKmsTypes.Dummy__ +var _ m_Relations.Dummy__ +var _ m_Seq_MergeSort.Dummy__ +var _ m__Math.Dummy__ +var _ m_Seq.Dummy__ +var _ m__Unicode.Dummy__ +var _ m_Functions.Dummy__ +var _ m_Utf8EncodingForm.Dummy__ +var _ m_Utf16EncodingForm.Dummy__ +var _ m_UnicodeStrings.Dummy__ +var _ m_FileIO.Dummy__ +var _ m_GeneralInternals.Dummy__ +var _ m_MulInternalsNonlinear.Dummy__ +var _ m_MulInternals.Dummy__ +var _ m_Mul.Dummy__ +var _ m_ModInternalsNonlinear.Dummy__ +var _ m_DivInternalsNonlinear.Dummy__ +var _ m_ModInternals.Dummy__ +var _ m_DivInternals.Dummy__ +var _ m_DivMod.Dummy__ +var _ m_Power.Dummy__ +var _ m_Logarithm.Dummy__ +var _ m_StandardLibraryInterop.Dummy__ +var _ m_Streams.Dummy__ +var _ m_Sorting.Dummy__ +var _ m_HexStrings.Dummy__ +var _ m_GetOpt.Dummy__ +var _ m_FloatCompare.Dummy__ +var _ m_Base64.Dummy__ +var _ m_Base64Lemmas.Dummy__ +var _ m_Actions.Dummy__ +var _ m_AwsCryptographyKeyStoreTypes.Dummy__ +var _ m_AwsCryptographyMaterialProvidersTypes.Dummy__ +var _ m_AwsArnParsing.Dummy__ +var _ m_AwsKmsMrkMatchForDecrypt.Dummy__ +var _ m_AwsKmsUtils.Dummy__ +var _ m_KeyStoreErrorMessages.Dummy__ +var _ m_KmsArn.Dummy__ +var _ m_Structure.Dummy__ +var _ m_KMSKeystoreOperations.Dummy__ +var _ m_DDBKeystoreOperations.Dummy__ +var _ m_CreateKeys.Dummy__ +var _ m_CreateKeyStoreTable.Dummy__ +var _ m_GetKeys.Dummy__ +var _ m_AwsCryptographyKeyStoreOperations.Dummy__ +var _ m_Com_Amazonaws_Kms.Dummy__ +var _ m_Com_Amazonaws_Dynamodb.Dummy__ +var _ m_KeyStore.Dummy__ +var _ m_AlgorithmSuites.Dummy__ +var _ m_Materials.Dummy__ +var _ m_Keyring.Dummy__ +var _ m_MultiKeyring.Dummy__ +var _ m_AwsKmsMrkAreUnique.Dummy__ +var _ m_Constants.Dummy__ +var _ m_MaterialWrapping.Dummy__ +var _ m_CanonicalEncryptionContext.Dummy__ +var _ m_IntermediateKeyWrapping.Dummy__ +var _ m_EdkWrapping.Dummy__ +var _ m_ErrorMessages.Dummy__ +var _ m_AwsKmsKeyring.Dummy__ +var _ m_StrictMultiKeyring.Dummy__ +var _ m_AwsKmsDiscoveryKeyring.Dummy__ +var _ m_DiscoveryMultiKeyring.Dummy__ +var _ m_AwsKmsMrkDiscoveryKeyring.Dummy__ +var _ m_MrkAwareDiscoveryMultiKeyring.Dummy__ +var _ m_AwsKmsMrkKeyring.Dummy__ +var _ m_MrkAwareStrictMultiKeyring.Dummy__ +var _ m_LocalCMC.Dummy__ +var _ m_SynchronizedLocalCMC.Dummy__ +var _ m_StormTracker.Dummy__ +var _ m_StormTrackingCMC.Dummy__ + +type Dummy__ struct{} + +// Definition of class Default__ +type Default__ struct { + dummy byte +} + +func New_Default___() *Default__ { + _this := Default__{} + + return &_this +} + +type CompanionStruct_Default___ struct { +} + +var Companion_Default___ = CompanionStruct_Default___{} + +func (_this *Default__) Equals(other *Default__) bool { + return _this == other +} + +func (_this *Default__) EqualsGeneric(x interface{}) bool { + other, ok := x.(*Default__) + return ok && _this.Equals(other) +} + +func (*Default__) String() string { + return "CacheConstants.Default__" +} +func (_this *Default__) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = &Default__{} + +func (_static *CompanionStruct_Default___) NULL__BYTE() _dafny.Sequence { + return _dafny.SeqOf(uint8(0)) +} +func (_static *CompanionStruct_Default___) RESOURCE__ID__CACHING__CMM() _dafny.Sequence { + return _dafny.SeqOf(uint8(1)) +} +func (_static *CompanionStruct_Default___) RESOURCE__ID__HIERARCHICAL__KEYRING() _dafny.Sequence { + return _dafny.SeqOf(uint8(2)) +} +func (_static *CompanionStruct_Default___) SCOPE__ID__ENCRYPT() _dafny.Sequence { + return _dafny.SeqOf(uint8(1)) +} +func (_static *CompanionStruct_Default___) SCOPE__ID__DECRYPT() _dafny.Sequence { + return _dafny.SeqOf(uint8(2)) +} +func (_static *CompanionStruct_Default___) SCOPE__ID__SEARCHABLE__ENCRYPTION() _dafny.Sequence { + return _dafny.SeqOf(uint8(3)) +} + +// End of class Default__ diff --git a/customer-preview/mpl/CanonicalEncryptionContext/CanonicalEncryptionContext.go b/customer-preview/mpl/CanonicalEncryptionContext/CanonicalEncryptionContext.go new file mode 100644 index 000000000..81d192661 --- /dev/null +++ b/customer-preview/mpl/CanonicalEncryptionContext/CanonicalEncryptionContext.go @@ -0,0 +1,249 @@ +// Package CanonicalEncryptionContext +// Dafny module CanonicalEncryptionContext compiled into Go + +package CanonicalEncryptionContext + +import ( + os "os" + + m_ComAmazonawsDynamodbTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/ComAmazonawsDynamodbTypes" + m_Com_Amazonaws_Dynamodb "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/Com_Amazonaws_Dynamodb" + m_ComAmazonawsKmsTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/ComAmazonawsKmsTypes" + m_Com_Amazonaws_Kms "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/Com_Amazonaws_Kms" + m_AlgorithmSuites "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AlgorithmSuites" + m_AwsArnParsing "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsArnParsing" + m_AwsCryptographyKeyStoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreOperations" + m_AwsCryptographyKeyStoreTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreTypes" + m_AwsCryptographyMaterialProvidersTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersTypes" + m_AwsKmsMrkAreUnique "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkAreUnique" + m_AwsKmsMrkMatchForDecrypt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkMatchForDecrypt" + m_AwsKmsUtils "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsUtils" + m_Constants "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Constants" + m_CreateKeyStoreTable "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeyStoreTable" + m_CreateKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeys" + m_DDBKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DDBKeystoreOperations" + m_GetKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/GetKeys" + m_KMSKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KMSKeystoreOperations" + m_KeyStore "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStore" + m_KeyStoreErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStoreErrorMessages" + m_Keyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Keyring" + m_KmsArn "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KmsArn" + m_MaterialWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MaterialWrapping" + m_Materials "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Materials" + m_MultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MultiKeyring" + m_Structure "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Structure" + m_AtomicPrimitives "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AtomicPrimitives" + m_AwsCryptographyPrimitivesOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesOperations" + m_AwsCryptographyPrimitivesTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesTypes" + m_Digest "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Digest" + m_HKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/HKDF" + m_KdfCtr "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/KdfCtr" + m_Random "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Random" + m_WrappedHKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHKDF" + m_WrappedHMAC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHMAC" + m_Actions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Actions" + m_Base64 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64" + m_Base64Lemmas "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64Lemmas" + m_BoundedInts "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/BoundedInts" + m_DivInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternals" + m_DivInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternalsNonlinear" + m_DivMod "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivMod" + m_FileIO "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FileIO" + m_FloatCompare "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FloatCompare" + m_Functions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Functions" + m_GeneralInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GeneralInternals" + m_GetOpt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GetOpt" + m_HexStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/HexStrings" + m_Logarithm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Logarithm" + m__Math "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Math_" + m_ModInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternals" + m_ModInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternalsNonlinear" + m_Mul "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Mul" + m_MulInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternals" + m_MulInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternalsNonlinear" + m_Power "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Power" + m_Relations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Relations" + m_Seq "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq" + m_Seq_MergeSort "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq_MergeSort" + m_SortedSets "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/SortedSets" + m_Sorting "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Sorting" + m_StandardLibrary "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary" + m_StandardLibraryInterop "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibraryInterop" + m_StandardLibrary_Sequence "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_Sequence" + m_StandardLibrary_String "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_String" + m_StandardLibrary_UInt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_UInt" + m_Streams "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Streams" + m_UnicodeStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UnicodeStrings" + m__Unicode "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Unicode_" + m_Utf16EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf16EncodingForm" + m_Utf8EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf8EncodingForm" + m_Wrappers "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers" + m__System "github.com/dafny-lang/DafnyRuntimeGo/v4/System_" + _dafny "github.com/dafny-lang/DafnyRuntimeGo/v4/dafny" +) + +var _ = os.Args +var _ _dafny.Dummy__ +var _ m__System.Dummy__ +var _ m_Wrappers.Dummy__ +var _ m_BoundedInts.Dummy__ +var _ m_StandardLibrary_UInt.Dummy__ +var _ m_StandardLibrary_Sequence.Dummy__ +var _ m_StandardLibrary_String.Dummy__ +var _ m_StandardLibrary.Dummy__ +var _ m_AwsCryptographyPrimitivesTypes.Dummy__ +var _ m_Random.Dummy__ +var _ m_Digest.Dummy__ +var _ m_WrappedHMAC.Dummy__ +var _ m_HKDF.Dummy__ +var _ m_WrappedHKDF.Dummy__ +var _ m_KdfCtr.Dummy__ +var _ m_AwsCryptographyPrimitivesOperations.Dummy__ +var _ m_AtomicPrimitives.Dummy__ +var _ m_ComAmazonawsDynamodbTypes.Dummy__ +var _ m_ComAmazonawsKmsTypes.Dummy__ +var _ m_Relations.Dummy__ +var _ m_Seq_MergeSort.Dummy__ +var _ m__Math.Dummy__ +var _ m_Seq.Dummy__ +var _ m__Unicode.Dummy__ +var _ m_Functions.Dummy__ +var _ m_Utf8EncodingForm.Dummy__ +var _ m_Utf16EncodingForm.Dummy__ +var _ m_UnicodeStrings.Dummy__ +var _ m_FileIO.Dummy__ +var _ m_GeneralInternals.Dummy__ +var _ m_MulInternalsNonlinear.Dummy__ +var _ m_MulInternals.Dummy__ +var _ m_Mul.Dummy__ +var _ m_ModInternalsNonlinear.Dummy__ +var _ m_DivInternalsNonlinear.Dummy__ +var _ m_ModInternals.Dummy__ +var _ m_DivInternals.Dummy__ +var _ m_DivMod.Dummy__ +var _ m_Power.Dummy__ +var _ m_Logarithm.Dummy__ +var _ m_StandardLibraryInterop.Dummy__ +var _ m_Streams.Dummy__ +var _ m_Sorting.Dummy__ +var _ m_HexStrings.Dummy__ +var _ m_GetOpt.Dummy__ +var _ m_FloatCompare.Dummy__ +var _ m_Base64.Dummy__ +var _ m_Base64Lemmas.Dummy__ +var _ m_Actions.Dummy__ +var _ m_AwsCryptographyKeyStoreTypes.Dummy__ +var _ m_AwsCryptographyMaterialProvidersTypes.Dummy__ +var _ m_AwsArnParsing.Dummy__ +var _ m_AwsKmsMrkMatchForDecrypt.Dummy__ +var _ m_AwsKmsUtils.Dummy__ +var _ m_KeyStoreErrorMessages.Dummy__ +var _ m_KmsArn.Dummy__ +var _ m_Structure.Dummy__ +var _ m_KMSKeystoreOperations.Dummy__ +var _ m_DDBKeystoreOperations.Dummy__ +var _ m_CreateKeys.Dummy__ +var _ m_CreateKeyStoreTable.Dummy__ +var _ m_GetKeys.Dummy__ +var _ m_AwsCryptographyKeyStoreOperations.Dummy__ +var _ m_Com_Amazonaws_Kms.Dummy__ +var _ m_Com_Amazonaws_Dynamodb.Dummy__ +var _ m_KeyStore.Dummy__ +var _ m_AlgorithmSuites.Dummy__ +var _ m_Materials.Dummy__ +var _ m_Keyring.Dummy__ +var _ m_MultiKeyring.Dummy__ +var _ m_AwsKmsMrkAreUnique.Dummy__ +var _ m_Constants.Dummy__ +var _ m_MaterialWrapping.Dummy__ + +type Dummy__ struct{} + +// Definition of class Default__ +type Default__ struct { + dummy byte +} + +func New_Default___() *Default__ { + _this := Default__{} + + return &_this +} + +type CompanionStruct_Default___ struct { +} + +var Companion_Default___ = CompanionStruct_Default___{} + +func (_this *Default__) Equals(other *Default__) bool { + return _this == other +} + +func (_this *Default__) EqualsGeneric(x interface{}) bool { + other, ok := x.(*Default__) + return ok && _this.Equals(other) +} + +func (*Default__) String() string { + return "CanonicalEncryptionContext.Default__" +} +func (_this *Default__) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = &Default__{} + +func (_static *CompanionStruct_Default___) EncryptionContextToAAD(encryptionContext _dafny.Map) m_Wrappers.Result { + var _0_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need(((encryptionContext).Cardinality()).Cmp(m_StandardLibrary_UInt.Companion_Default___.UINT16__LIMIT()) < 0, m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.SeqOfString("Encryption Context is too large"))) + _ = _0_valueOrError0 + if (_0_valueOrError0).IsFailure() { + return (_0_valueOrError0).PropagateFailure() + } else { + var _1_keys _dafny.Sequence = m_SortedSets.SetToOrderedSequence2((encryptionContext).Keys(), func(coer36 func(uint8, uint8) bool) func(interface{}, interface{}) bool { + return func(arg36 interface{}, arg37 interface{}) bool { + return coer36(arg36.(uint8), arg37.(uint8)) + } + }(m_StandardLibrary_UInt.Companion_Default___.UInt8Less)) + _ = _1_keys + if (_dafny.IntOfUint32((_1_keys).Cardinality())).Sign() == 0 { + return m_Wrappers.Companion_Result_.Create_Success_(_dafny.SeqOf()) + } else { + var _2_KeyIntoPairBytes func(_dafny.Sequence) m_Wrappers.Result = (func(_3_encryptionContext _dafny.Map) func(_dafny.Sequence) m_Wrappers.Result { + return func(_4_k _dafny.Sequence) m_Wrappers.Result { + return func(_pat_let4_0 _dafny.Sequence) m_Wrappers.Result { + return func(_5_v _dafny.Sequence) m_Wrappers.Result { + return func(_pat_let5_0 m_Wrappers.Outcome) m_Wrappers.Result { + return func(_6_valueOrError1 m_Wrappers.Outcome) m_Wrappers.Result { + return (func() m_Wrappers.Result { + if (_6_valueOrError1).IsFailure() { + return (_6_valueOrError1).PropagateFailure() + } + return m_Wrappers.Companion_Result_.Create_Success_(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(m_StandardLibrary_UInt.Companion_Default___.UInt16ToSeq(uint16((_4_k).Cardinality())), _4_k), m_StandardLibrary_UInt.Companion_Default___.UInt16ToSeq(uint16((_5_v).Cardinality()))), _5_v)) + })() + }(_pat_let5_0) + }(m_Wrappers.Companion_Default___.Need((m_StandardLibrary_UInt.Companion_Default___.HasUint16Len(_4_k)) && (m_StandardLibrary_UInt.Companion_Default___.HasUint16Len(_5_v)), m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.SeqOfString("Unable to serialize encryption context")))) + }(_pat_let4_0) + }((_3_encryptionContext).Get(_4_k).(_dafny.Sequence)) + } + })(encryptionContext) + _ = _2_KeyIntoPairBytes + var _7_valueOrError2 m_Wrappers.Result = m_Seq.Companion_Default___.MapWithResult(func(coer37 func(_dafny.Sequence) m_Wrappers.Result) func(interface{}) m_Wrappers.Result { + return func(arg38 interface{}) m_Wrappers.Result { + return coer37(arg38.(_dafny.Sequence)) + } + }(_2_KeyIntoPairBytes), _1_keys) + _ = _7_valueOrError2 + if (_7_valueOrError2).IsFailure() { + return (_7_valueOrError2).PropagateFailure() + } else { + var _8_pairsBytes _dafny.Sequence = (_7_valueOrError2).Extract().(_dafny.Sequence) + _ = _8_pairsBytes + var _9_allBytes _dafny.Sequence = _dafny.Companion_Sequence_.Concatenate(m_StandardLibrary_UInt.Companion_Default___.UInt16ToSeq(uint16((_1_keys).Cardinality())), m_Seq.Companion_Default___.Flatten(_8_pairsBytes)) + _ = _9_allBytes + return m_Wrappers.Companion_Result_.Create_Success_(_9_allBytes) + } + } + } +} + +// End of class Default__ diff --git a/customer-preview/mpl/Commitment/Commitment.go b/customer-preview/mpl/Commitment/Commitment.go new file mode 100644 index 000000000..133ac5899 --- /dev/null +++ b/customer-preview/mpl/Commitment/Commitment.go @@ -0,0 +1,268 @@ +// Package Commitment +// Dafny module Commitment compiled into Go + +package Commitment + +import ( + os "os" + + m_ComAmazonawsDynamodbTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/ComAmazonawsDynamodbTypes" + m_Com_Amazonaws_Dynamodb "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/Com_Amazonaws_Dynamodb" + m_ComAmazonawsKmsTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/ComAmazonawsKmsTypes" + m_Com_Amazonaws_Kms "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/Com_Amazonaws_Kms" + m_AlgorithmSuites "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AlgorithmSuites" + m_AwsArnParsing "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsArnParsing" + m_AwsCryptographyKeyStoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreOperations" + m_AwsCryptographyKeyStoreTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreTypes" + m_AwsCryptographyMaterialProvidersTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersTypes" + m_AwsKmsDiscoveryKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsDiscoveryKeyring" + m_AwsKmsEcdhKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsEcdhKeyring" + m_AwsKmsHierarchicalKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsHierarchicalKeyring" + m_AwsKmsKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsKeyring" + m_AwsKmsMrkAreUnique "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkAreUnique" + m_AwsKmsMrkDiscoveryKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkDiscoveryKeyring" + m_AwsKmsMrkKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkKeyring" + m_AwsKmsMrkMatchForDecrypt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkMatchForDecrypt" + m_AwsKmsRsaKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsRsaKeyring" + m_AwsKmsUtils "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsUtils" + m_CMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CMM" + m_CacheConstants "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CacheConstants" + m_CanonicalEncryptionContext "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CanonicalEncryptionContext" + m_Constants "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Constants" + m_CreateKeyStoreTable "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeyStoreTable" + m_CreateKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeys" + m_DDBKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DDBKeystoreOperations" + m_Defaults "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Defaults" + m_DiscoveryMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DiscoveryMultiKeyring" + m_EcdhEdkWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/EcdhEdkWrapping" + m_EdkWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/EdkWrapping" + m_ErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/ErrorMessages" + m_GetKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/GetKeys" + m_IntermediateKeyWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/IntermediateKeyWrapping" + m_KMSKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KMSKeystoreOperations" + m_KeyStore "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStore" + m_KeyStoreErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStoreErrorMessages" + m_Keyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Keyring" + m_KmsArn "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KmsArn" + m_LocalCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/LocalCMC" + m_MaterialWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MaterialWrapping" + m_Materials "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Materials" + m_MrkAwareDiscoveryMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MrkAwareDiscoveryMultiKeyring" + m_MrkAwareStrictMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MrkAwareStrictMultiKeyring" + m_MultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MultiKeyring" + m_RawAESKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawAESKeyring" + m_RawECDHKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawECDHKeyring" + m_RawRSAKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawRSAKeyring" + m_StormTracker "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StormTracker" + m_StormTrackingCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StormTrackingCMC" + m_StrictMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StrictMultiKeyring" + m_Structure "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Structure" + m_SynchronizedLocalCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/SynchronizedLocalCMC" + m_AtomicPrimitives "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AtomicPrimitives" + m_AwsCryptographyPrimitivesOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesOperations" + m_AwsCryptographyPrimitivesTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesTypes" + m_Digest "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Digest" + m_HKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/HKDF" + m_KdfCtr "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/KdfCtr" + m_Random "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Random" + m_WrappedHKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHKDF" + m_WrappedHMAC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHMAC" + m_Actions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Actions" + m_Base64 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64" + m_Base64Lemmas "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64Lemmas" + m_BoundedInts "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/BoundedInts" + m_DivInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternals" + m_DivInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternalsNonlinear" + m_DivMod "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivMod" + m_FileIO "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FileIO" + m_FloatCompare "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FloatCompare" + m_Functions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Functions" + m_GeneralInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GeneralInternals" + m_GetOpt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GetOpt" + m_HexStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/HexStrings" + m_Logarithm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Logarithm" + m__Math "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Math_" + m_ModInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternals" + m_ModInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternalsNonlinear" + m_Mul "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Mul" + m_MulInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternals" + m_MulInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternalsNonlinear" + m_Power "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Power" + m_Relations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Relations" + m_Seq "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq" + m_Seq_MergeSort "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq_MergeSort" + m_Sorting "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Sorting" + m_StandardLibrary "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary" + m_StandardLibraryInterop "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibraryInterop" + m_StandardLibrary_Sequence "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_Sequence" + m_StandardLibrary_String "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_String" + m_StandardLibrary_UInt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_UInt" + m_Streams "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Streams" + m_UnicodeStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UnicodeStrings" + m__Unicode "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Unicode_" + m_Utf16EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf16EncodingForm" + m_Utf8EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf8EncodingForm" + m_Wrappers "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers" + m__System "github.com/dafny-lang/DafnyRuntimeGo/v4/System_" + _dafny "github.com/dafny-lang/DafnyRuntimeGo/v4/dafny" +) + +var _ = os.Args +var _ _dafny.Dummy__ +var _ m__System.Dummy__ +var _ m_Wrappers.Dummy__ +var _ m_BoundedInts.Dummy__ +var _ m_StandardLibrary_UInt.Dummy__ +var _ m_StandardLibrary_Sequence.Dummy__ +var _ m_StandardLibrary_String.Dummy__ +var _ m_StandardLibrary.Dummy__ +var _ m_AwsCryptographyPrimitivesTypes.Dummy__ +var _ m_Random.Dummy__ +var _ m_Digest.Dummy__ +var _ m_WrappedHMAC.Dummy__ +var _ m_HKDF.Dummy__ +var _ m_WrappedHKDF.Dummy__ +var _ m_KdfCtr.Dummy__ +var _ m_AwsCryptographyPrimitivesOperations.Dummy__ +var _ m_AtomicPrimitives.Dummy__ +var _ m_ComAmazonawsDynamodbTypes.Dummy__ +var _ m_ComAmazonawsKmsTypes.Dummy__ +var _ m_Relations.Dummy__ +var _ m_Seq_MergeSort.Dummy__ +var _ m__Math.Dummy__ +var _ m_Seq.Dummy__ +var _ m__Unicode.Dummy__ +var _ m_Functions.Dummy__ +var _ m_Utf8EncodingForm.Dummy__ +var _ m_Utf16EncodingForm.Dummy__ +var _ m_UnicodeStrings.Dummy__ +var _ m_FileIO.Dummy__ +var _ m_GeneralInternals.Dummy__ +var _ m_MulInternalsNonlinear.Dummy__ +var _ m_MulInternals.Dummy__ +var _ m_Mul.Dummy__ +var _ m_ModInternalsNonlinear.Dummy__ +var _ m_DivInternalsNonlinear.Dummy__ +var _ m_ModInternals.Dummy__ +var _ m_DivInternals.Dummy__ +var _ m_DivMod.Dummy__ +var _ m_Power.Dummy__ +var _ m_Logarithm.Dummy__ +var _ m_StandardLibraryInterop.Dummy__ +var _ m_Streams.Dummy__ +var _ m_Sorting.Dummy__ +var _ m_HexStrings.Dummy__ +var _ m_GetOpt.Dummy__ +var _ m_FloatCompare.Dummy__ +var _ m_Base64.Dummy__ +var _ m_Base64Lemmas.Dummy__ +var _ m_Actions.Dummy__ +var _ m_AwsCryptographyKeyStoreTypes.Dummy__ +var _ m_AwsCryptographyMaterialProvidersTypes.Dummy__ +var _ m_AwsArnParsing.Dummy__ +var _ m_AwsKmsMrkMatchForDecrypt.Dummy__ +var _ m_AwsKmsUtils.Dummy__ +var _ m_KeyStoreErrorMessages.Dummy__ +var _ m_KmsArn.Dummy__ +var _ m_Structure.Dummy__ +var _ m_KMSKeystoreOperations.Dummy__ +var _ m_DDBKeystoreOperations.Dummy__ +var _ m_CreateKeys.Dummy__ +var _ m_CreateKeyStoreTable.Dummy__ +var _ m_GetKeys.Dummy__ +var _ m_AwsCryptographyKeyStoreOperations.Dummy__ +var _ m_Com_Amazonaws_Kms.Dummy__ +var _ m_Com_Amazonaws_Dynamodb.Dummy__ +var _ m_KeyStore.Dummy__ +var _ m_AlgorithmSuites.Dummy__ +var _ m_Materials.Dummy__ +var _ m_Keyring.Dummy__ +var _ m_MultiKeyring.Dummy__ +var _ m_AwsKmsMrkAreUnique.Dummy__ +var _ m_Constants.Dummy__ +var _ m_MaterialWrapping.Dummy__ +var _ m_CanonicalEncryptionContext.Dummy__ +var _ m_IntermediateKeyWrapping.Dummy__ +var _ m_EdkWrapping.Dummy__ +var _ m_ErrorMessages.Dummy__ +var _ m_AwsKmsKeyring.Dummy__ +var _ m_StrictMultiKeyring.Dummy__ +var _ m_AwsKmsDiscoveryKeyring.Dummy__ +var _ m_DiscoveryMultiKeyring.Dummy__ +var _ m_AwsKmsMrkDiscoveryKeyring.Dummy__ +var _ m_MrkAwareDiscoveryMultiKeyring.Dummy__ +var _ m_AwsKmsMrkKeyring.Dummy__ +var _ m_MrkAwareStrictMultiKeyring.Dummy__ +var _ m_LocalCMC.Dummy__ +var _ m_SynchronizedLocalCMC.Dummy__ +var _ m_StormTracker.Dummy__ +var _ m_StormTrackingCMC.Dummy__ +var _ m_CacheConstants.Dummy__ +var _ m_AwsKmsHierarchicalKeyring.Dummy__ +var _ m_AwsKmsRsaKeyring.Dummy__ +var _ m_EcdhEdkWrapping.Dummy__ +var _ m_RawECDHKeyring.Dummy__ +var _ m_AwsKmsEcdhKeyring.Dummy__ +var _ m_RawAESKeyring.Dummy__ +var _ m_RawRSAKeyring.Dummy__ +var _ m_CMM.Dummy__ +var _ m_Defaults.Dummy__ + +type Dummy__ struct{} + +// Definition of class Default__ +type Default__ struct { + dummy byte +} + +func New_Default___() *Default__ { + _this := Default__{} + + return &_this +} + +type CompanionStruct_Default___ struct { +} + +var Companion_Default___ = CompanionStruct_Default___{} + +func (_this *Default__) Equals(other *Default__) bool { + return _this == other +} + +func (_this *Default__) EqualsGeneric(x interface{}) bool { + other, ok := x.(*Default__) + return ok && _this.Equals(other) +} + +func (*Default__) String() string { + return "Commitment.Default__" +} +func (_this *Default__) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = &Default__{} + +func (_static *CompanionStruct_Default___) ValidateCommitmentPolicyOnEncrypt(algorithm m_AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteId, commitmentPolicy m_AwsCryptographyMaterialProvidersTypes.CommitmentPolicy) m_Wrappers.Outcome { + var _0_suite m_AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo = m_AlgorithmSuites.Companion_Default___.GetSuite(algorithm) + _ = _0_suite + if ((commitmentPolicy).Equals(m_AwsCryptographyMaterialProvidersTypes.Companion_CommitmentPolicy_.Create_ESDK_(m_AwsCryptographyMaterialProvidersTypes.Companion_ESDKCommitmentPolicy_.Create_FORBID__ENCRYPT__ALLOW__DECRYPT_()))) && (!(((_0_suite).Dtor_commitment()).Is_None())) { + return m_Wrappers.Companion_Outcome_.Create_Fail_(m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_InvalidAlgorithmSuiteInfoOnEncrypt_(_dafny.SeqOfString("Configuration conflict. Commitment policy requires only non-committing algorithm suites"))) + } else if ((((commitmentPolicy).Equals(m_AwsCryptographyMaterialProvidersTypes.Companion_CommitmentPolicy_.Create_ESDK_(m_AwsCryptographyMaterialProvidersTypes.Companion_ESDKCommitmentPolicy_.Create_REQUIRE__ENCRYPT__ALLOW__DECRYPT_()))) || ((commitmentPolicy).Equals(m_AwsCryptographyMaterialProvidersTypes.Companion_CommitmentPolicy_.Create_ESDK_(m_AwsCryptographyMaterialProvidersTypes.Companion_ESDKCommitmentPolicy_.Create_REQUIRE__ENCRYPT__REQUIRE__DECRYPT_())))) || ((commitmentPolicy).Equals(m_AwsCryptographyMaterialProvidersTypes.Companion_CommitmentPolicy_.Create_DBE_(m_AwsCryptographyMaterialProvidersTypes.Companion_DBECommitmentPolicy_.Create_REQUIRE__ENCRYPT__REQUIRE__DECRYPT_())))) && (((_0_suite).Dtor_commitment()).Is_None()) { + return m_Wrappers.Companion_Outcome_.Create_Fail_(m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_InvalidAlgorithmSuiteInfoOnEncrypt_(_dafny.SeqOfString("Configuration conflict. Commitment policy requires only committing algorithm suites"))) + } else { + return m_Wrappers.Companion_Outcome_.Create_Pass_() + } +} +func (_static *CompanionStruct_Default___) ValidateCommitmentPolicyOnDecrypt(algorithm m_AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteId, commitmentPolicy m_AwsCryptographyMaterialProvidersTypes.CommitmentPolicy) m_Wrappers.Outcome { + var _0_suite m_AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo = m_AlgorithmSuites.Companion_Default___.GetSuite(algorithm) + _ = _0_suite + if ((true) && (((commitmentPolicy).Equals(m_AwsCryptographyMaterialProvidersTypes.Companion_CommitmentPolicy_.Create_ESDK_(m_AwsCryptographyMaterialProvidersTypes.Companion_ESDKCommitmentPolicy_.Create_REQUIRE__ENCRYPT__REQUIRE__DECRYPT_()))) || ((commitmentPolicy).Equals(m_AwsCryptographyMaterialProvidersTypes.Companion_CommitmentPolicy_.Create_DBE_(m_AwsCryptographyMaterialProvidersTypes.Companion_DBECommitmentPolicy_.Create_REQUIRE__ENCRYPT__REQUIRE__DECRYPT_()))))) && (((_0_suite).Dtor_commitment()).Is_None()) { + return m_Wrappers.Companion_Outcome_.Create_Fail_(m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_InvalidAlgorithmSuiteInfoOnDecrypt_(_dafny.SeqOfString("Configuration conflict. Commitment policy requires only committing algorithm suites"))) + } else { + return m_Wrappers.Companion_Outcome_.Create_Pass_() + } +} + +// End of class Default__ diff --git a/customer-preview/mpl/Constants/Constants.go b/customer-preview/mpl/Constants/Constants.go new file mode 100644 index 000000000..5252a0e8a --- /dev/null +++ b/customer-preview/mpl/Constants/Constants.go @@ -0,0 +1,441 @@ +// Package Constants +// Dafny module Constants compiled into Go + +package Constants + +import ( + os "os" + + m_ComAmazonawsDynamodbTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/ComAmazonawsDynamodbTypes" + m_Com_Amazonaws_Dynamodb "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/Com_Amazonaws_Dynamodb" + m_ComAmazonawsKmsTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/ComAmazonawsKmsTypes" + m_Com_Amazonaws_Kms "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/Com_Amazonaws_Kms" + m_AlgorithmSuites "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AlgorithmSuites" + m_AwsArnParsing "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsArnParsing" + m_AwsCryptographyKeyStoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreOperations" + m_AwsCryptographyKeyStoreTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreTypes" + m_AwsCryptographyMaterialProvidersTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersTypes" + m_AwsKmsMrkAreUnique "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkAreUnique" + m_AwsKmsMrkMatchForDecrypt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkMatchForDecrypt" + m_AwsKmsUtils "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsUtils" + m_CreateKeyStoreTable "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeyStoreTable" + m_CreateKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeys" + m_DDBKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DDBKeystoreOperations" + m_GetKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/GetKeys" + m_KMSKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KMSKeystoreOperations" + m_KeyStore "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStore" + m_KeyStoreErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStoreErrorMessages" + m_Keyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Keyring" + m_KmsArn "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KmsArn" + m_Materials "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Materials" + m_MultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MultiKeyring" + m_Structure "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Structure" + m_AtomicPrimitives "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AtomicPrimitives" + m_AwsCryptographyPrimitivesOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesOperations" + m_AwsCryptographyPrimitivesTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesTypes" + m_Digest "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Digest" + m_HKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/HKDF" + m_KdfCtr "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/KdfCtr" + m_Random "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Random" + m_WrappedHKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHKDF" + m_WrappedHMAC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHMAC" + m_Actions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Actions" + m_Base64 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64" + m_Base64Lemmas "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64Lemmas" + m_BoundedInts "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/BoundedInts" + m_DivInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternals" + m_DivInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternalsNonlinear" + m_DivMod "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivMod" + m_FileIO "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FileIO" + m_FloatCompare "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FloatCompare" + m_Functions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Functions" + m_GeneralInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GeneralInternals" + m_GetOpt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GetOpt" + m_HexStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/HexStrings" + m_Logarithm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Logarithm" + m__Math "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Math_" + m_ModInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternals" + m_ModInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternalsNonlinear" + m_Mul "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Mul" + m_MulInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternals" + m_MulInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternalsNonlinear" + m_Power "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Power" + m_Relations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Relations" + m_Seq "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq" + m_Seq_MergeSort "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq_MergeSort" + m_Sorting "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Sorting" + m_StandardLibrary "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary" + m_StandardLibraryInterop "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibraryInterop" + m_StandardLibrary_Sequence "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_Sequence" + m_StandardLibrary_String "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_String" + m_StandardLibrary_UInt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_UInt" + m_Streams "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Streams" + m_UTF8 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UTF8" + m_UnicodeStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UnicodeStrings" + m__Unicode "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Unicode_" + m_Utf16EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf16EncodingForm" + m_Utf8EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf8EncodingForm" + m_Wrappers "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers" + m__System "github.com/dafny-lang/DafnyRuntimeGo/v4/System_" + _dafny "github.com/dafny-lang/DafnyRuntimeGo/v4/dafny" +) + +var _ = os.Args +var _ _dafny.Dummy__ +var _ m__System.Dummy__ +var _ m_Wrappers.Dummy__ +var _ m_BoundedInts.Dummy__ +var _ m_StandardLibrary_UInt.Dummy__ +var _ m_StandardLibrary_Sequence.Dummy__ +var _ m_StandardLibrary_String.Dummy__ +var _ m_StandardLibrary.Dummy__ +var _ m_AwsCryptographyPrimitivesTypes.Dummy__ +var _ m_Random.Dummy__ +var _ m_Digest.Dummy__ +var _ m_WrappedHMAC.Dummy__ +var _ m_HKDF.Dummy__ +var _ m_WrappedHKDF.Dummy__ +var _ m_KdfCtr.Dummy__ +var _ m_AwsCryptographyPrimitivesOperations.Dummy__ +var _ m_AtomicPrimitives.Dummy__ +var _ m_ComAmazonawsDynamodbTypes.Dummy__ +var _ m_ComAmazonawsKmsTypes.Dummy__ +var _ m_Relations.Dummy__ +var _ m_Seq_MergeSort.Dummy__ +var _ m__Math.Dummy__ +var _ m_Seq.Dummy__ +var _ m__Unicode.Dummy__ +var _ m_Functions.Dummy__ +var _ m_Utf8EncodingForm.Dummy__ +var _ m_Utf16EncodingForm.Dummy__ +var _ m_UnicodeStrings.Dummy__ +var _ m_FileIO.Dummy__ +var _ m_GeneralInternals.Dummy__ +var _ m_MulInternalsNonlinear.Dummy__ +var _ m_MulInternals.Dummy__ +var _ m_Mul.Dummy__ +var _ m_ModInternalsNonlinear.Dummy__ +var _ m_DivInternalsNonlinear.Dummy__ +var _ m_ModInternals.Dummy__ +var _ m_DivInternals.Dummy__ +var _ m_DivMod.Dummy__ +var _ m_Power.Dummy__ +var _ m_Logarithm.Dummy__ +var _ m_StandardLibraryInterop.Dummy__ +var _ m_Streams.Dummy__ +var _ m_Sorting.Dummy__ +var _ m_HexStrings.Dummy__ +var _ m_GetOpt.Dummy__ +var _ m_FloatCompare.Dummy__ +var _ m_Base64.Dummy__ +var _ m_Base64Lemmas.Dummy__ +var _ m_Actions.Dummy__ +var _ m_AwsCryptographyKeyStoreTypes.Dummy__ +var _ m_AwsCryptographyMaterialProvidersTypes.Dummy__ +var _ m_AwsArnParsing.Dummy__ +var _ m_AwsKmsMrkMatchForDecrypt.Dummy__ +var _ m_AwsKmsUtils.Dummy__ +var _ m_KeyStoreErrorMessages.Dummy__ +var _ m_KmsArn.Dummy__ +var _ m_Structure.Dummy__ +var _ m_KMSKeystoreOperations.Dummy__ +var _ m_DDBKeystoreOperations.Dummy__ +var _ m_CreateKeys.Dummy__ +var _ m_CreateKeyStoreTable.Dummy__ +var _ m_GetKeys.Dummy__ +var _ m_AwsCryptographyKeyStoreOperations.Dummy__ +var _ m_Com_Amazonaws_Kms.Dummy__ +var _ m_Com_Amazonaws_Dynamodb.Dummy__ +var _ m_KeyStore.Dummy__ +var _ m_AlgorithmSuites.Dummy__ +var _ m_Materials.Dummy__ +var _ m_Keyring.Dummy__ +var _ m_MultiKeyring.Dummy__ +var _ m_AwsKmsMrkAreUnique.Dummy__ + +type Dummy__ struct{} + +// Definition of class Default__ +type Default__ struct { + dummy byte +} + +func New_Default___() *Default__ { + _this := Default__{} + + return &_this +} + +type CompanionStruct_Default___ struct { +} + +var Companion_Default___ = CompanionStruct_Default___{} + +func (_this *Default__) Equals(other *Default__) bool { + return _this == other +} + +func (_this *Default__) EqualsGeneric(x interface{}) bool { + other, ok := x.(*Default__) + return ok && _this.Equals(other) +} + +func (*Default__) String() string { + return "Constants.Default__" +} +func (_this *Default__) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = &Default__{} + +func (_static *CompanionStruct_Default___) ECDH__PROVIDER__INFO__RPL__INDEX() uint32 { + return uint32(1) +} +func (_static *CompanionStruct_Default___) ECDH__PROVIDER__INFO__PUBLIC__KEY__LEN() _dafny.Int { + return _dafny.IntOfInt64(4) +} +func (_static *CompanionStruct_Default___) ECDH__PROVIDER__INFO__RPK__INDEX() uint32 { + return (Companion_Default___.ECDH__PROVIDER__INFO__RPL__INDEX()) + ((Companion_Default___.ECDH__PROVIDER__INFO__PUBLIC__KEY__LEN()).Uint32()) +} +func (_static *CompanionStruct_Default___) ECDH__AES__256__ENC__KEY__LENGTH() int32 { + return int32(32) +} +func (_static *CompanionStruct_Default___) ECDH__AES__256__ENC__TAG__LENGTH() int32 { + return int32(16) +} +func (_static *CompanionStruct_Default___) ECDH__AES__256__ENC__IV__LENGTH() int32 { + return int32(12) +} +func (_static *CompanionStruct_Default___) ECDH__AES__256__ENC__ALG() m_AwsCryptographyPrimitivesTypes.AES__GCM { + return m_AwsCryptographyPrimitivesTypes.Companion_AES__GCM_.Create_AES__GCM_(Companion_Default___.ECDH__AES__256__ENC__KEY__LENGTH(), Companion_Default___.ECDH__AES__256__ENC__TAG__LENGTH(), Companion_Default___.ECDH__AES__256__ENC__IV__LENGTH()) +} +func (_static *CompanionStruct_Default___) PROVIDER__ID() _dafny.Sequence { + var _0_s _dafny.Sequence = _dafny.SeqOf(uint8(97), uint8(119), uint8(115), uint8(45), uint8(107), uint8(109), uint8(115)) + _ = _0_s + return _0_s +} +func (_static *CompanionStruct_Default___) UINT32__TO__SEQ__LEN() _dafny.Int { + return _dafny.IntOfInt64(4) +} +func (_static *CompanionStruct_Default___) KDF__SALT__LEN() int32 { + return int32(32) +} +func (_static *CompanionStruct_Default___) KDF__EXPECTED__LEN() int32 { + return int32(64) +} +func (_static *CompanionStruct_Default___) ECDH__COMMITMENT__KEY__LENGTH() _dafny.Int { + return _dafny.IntOfInt64(32) +} +func (_static *CompanionStruct_Default___) ECDH__COMMITMENT__KEY__INDEX() _dafny.Int { + return _dafny.IntOfInt64(32) +} +func (_static *CompanionStruct_Default___) ECDH__WRAPPED__KEY__MATERIAL__INDEX() _dafny.Int { + return _dafny.IntOfInt64(64) +} +func (_static *CompanionStruct_Default___) ECDH__KDF__STRING() _dafny.Sequence { + return _dafny.SeqOfString("ecdh-key-derivation") +} +func (_static *CompanionStruct_Default___) ECDH__KDF__PRF__STRING() _dafny.Sequence { + return _dafny.SeqOfString("HMAC_SHA384") +} +func (_static *CompanionStruct_Default___) ECDH__KDF__DELIMETER() _dafny.Sequence { + return _dafny.SeqOf(uint8(0)) +} +func (_static *CompanionStruct_Default___) ECDH__PROVIDER__INFO__256__LEN() uint32 { + return uint32(75) +} +func (_static *CompanionStruct_Default___) ECDH__PROVIDER__INFO__384__LEN() uint32 { + return uint32(107) +} +func (_static *CompanionStruct_Default___) ECDH__PROVIDER__INFO__521__LEN() uint32 { + return uint32(143) +} +func (_static *CompanionStruct_Default___) ECDH__PUBLIC__KEY__LEN__ECC__NIST__256() _dafny.Int { + return _dafny.IntOfInt64(91) +} +func (_static *CompanionStruct_Default___) ECDH__PUBLIC__KEY__LEN__ECC__NIST__384() _dafny.Int { + return _dafny.IntOfInt64(120) +} +func (_static *CompanionStruct_Default___) ECDH__PUBLIC__KEY__LEN__ECC__NIST__521() _dafny.Int { + return _dafny.IntOfInt64(158) +} +func (_static *CompanionStruct_Default___) ECDH__PUBLIC__KEY__COMPRESSED__LEN__ECC__NIST__256() _dafny.Int { + return _dafny.IntOfInt64(33) +} +func (_static *CompanionStruct_Default___) ECDH__PUBLIC__KEY__COMPRESSED__LEN__ECC__NIST__384() _dafny.Int { + return _dafny.IntOfInt64(49) +} +func (_static *CompanionStruct_Default___) ECDH__PUBLIC__KEY__COMPRESSED__LEN__ECC__NIST__521() _dafny.Int { + return _dafny.IntOfInt64(67) +} +func (_static *CompanionStruct_Default___) CIPHERTEXT__WRAPPED__MATERIAL__INDEX() _dafny.Int { + return _dafny.IntOfInt64(68) +} +func (_static *CompanionStruct_Default___) PROVIDER__ID__HIERARCHY() _dafny.Sequence { + var _0_s _dafny.Sequence = _dafny.SeqOf(uint8(97), uint8(119), uint8(115), uint8(45), uint8(107), uint8(109), uint8(115), uint8(45), uint8(104), uint8(105), uint8(101), uint8(114), uint8(97), uint8(114), uint8(99), uint8(104), uint8(121)) + _ = _0_s + return _0_s +} +func (_static *CompanionStruct_Default___) RSA__PROVIDER__ID() _dafny.Sequence { + var _0_s _dafny.Sequence = _dafny.SeqOf(uint8(97), uint8(119), uint8(115), uint8(45), uint8(107), uint8(109), uint8(115), uint8(45), uint8(114), uint8(115), uint8(97)) + _ = _0_s + return _0_s +} +func (_static *CompanionStruct_Default___) KMS__ECDH__PROVIDER__ID() _dafny.Sequence { + return m_UTF8.Companion_Default___.EncodeAscii(_dafny.SeqOfString("aws-kms-ecdh")) +} +func (_static *CompanionStruct_Default___) RAW__ECDH__PROVIDER__ID() _dafny.Sequence { + return m_UTF8.Companion_Default___.EncodeAscii(_dafny.SeqOfString("raw-ecdh")) +} +func (_static *CompanionStruct_Default___) ECDH__KDF__PRF__NAME() _dafny.Sequence { + return m_UTF8.Companion_Default___.EncodeAscii(_dafny.SeqOfString("HMAC_SHA384")) +} +func (_static *CompanionStruct_Default___) ECDH__KDF__UTF8() _dafny.Sequence { + return m_UTF8.Companion_Default___.EncodeAscii(_dafny.SeqOfString("ecdh-key-derivation")) +} + +// End of class Default__ + +// Definition of class AwsKmsEncryptedDataKey +type AwsKmsEncryptedDataKey struct { +} + +func New_AwsKmsEncryptedDataKey_() *AwsKmsEncryptedDataKey { + _this := AwsKmsEncryptedDataKey{} + + return &_this +} + +type CompanionStruct_AwsKmsEncryptedDataKey_ struct { +} + +var Companion_AwsKmsEncryptedDataKey_ = CompanionStruct_AwsKmsEncryptedDataKey_{} + +func (*AwsKmsEncryptedDataKey) String() string { + return "Constants.AwsKmsEncryptedDataKey" +} + +// End of class AwsKmsEncryptedDataKey + +func Type_AwsKmsEncryptedDataKey_() _dafny.TypeDescriptor { + return type_AwsKmsEncryptedDataKey_{} +} + +type type_AwsKmsEncryptedDataKey_ struct { +} + +func (_this type_AwsKmsEncryptedDataKey_) Default() interface{} { + return m_AwsCryptographyMaterialProvidersTypes.Companion_EncryptedDataKey_.Default() +} + +func (_this type_AwsKmsEncryptedDataKey_) String() string { + return "Constants.AwsKmsEncryptedDataKey" +} +func (_this *CompanionStruct_AwsKmsEncryptedDataKey_) Is_(__source m_AwsCryptographyMaterialProvidersTypes.EncryptedDataKey) bool { + var _0_edk m_AwsCryptographyMaterialProvidersTypes.EncryptedDataKey = (__source) + _ = _0_edk + return (_dafny.Companion_Sequence_.Equal((_0_edk).Dtor_keyProviderId(), Companion_Default___.PROVIDER__ID())) && (m_UTF8.Companion_Default___.ValidUTF8Seq((_0_edk).Dtor_keyProviderInfo())) +} + +// Definition of datatype AwsKmsEdkHelper +type AwsKmsEdkHelper struct { + Data_AwsKmsEdkHelper_ +} + +func (_this AwsKmsEdkHelper) Get_() Data_AwsKmsEdkHelper_ { + return _this.Data_AwsKmsEdkHelper_ +} + +type Data_AwsKmsEdkHelper_ interface { + isAwsKmsEdkHelper() +} + +type CompanionStruct_AwsKmsEdkHelper_ struct { +} + +var Companion_AwsKmsEdkHelper_ = CompanionStruct_AwsKmsEdkHelper_{} + +type AwsKmsEdkHelper_AwsKmsEdkHelper struct { + Edk m_AwsCryptographyMaterialProvidersTypes.EncryptedDataKey + Arn m_AwsArnParsing.AwsArn +} + +func (AwsKmsEdkHelper_AwsKmsEdkHelper) isAwsKmsEdkHelper() {} + +func (CompanionStruct_AwsKmsEdkHelper_) Create_AwsKmsEdkHelper_(Edk m_AwsCryptographyMaterialProvidersTypes.EncryptedDataKey, Arn m_AwsArnParsing.AwsArn) AwsKmsEdkHelper { + return AwsKmsEdkHelper{AwsKmsEdkHelper_AwsKmsEdkHelper{Edk, Arn}} +} + +func (_this AwsKmsEdkHelper) Is_AwsKmsEdkHelper() bool { + _, ok := _this.Get_().(AwsKmsEdkHelper_AwsKmsEdkHelper) + return ok +} + +func (CompanionStruct_AwsKmsEdkHelper_) Default() AwsKmsEdkHelper { + return Companion_AwsKmsEdkHelper_.Create_AwsKmsEdkHelper_(m_AwsCryptographyMaterialProvidersTypes.Companion_EncryptedDataKey_.Default(), m_AwsArnParsing.Companion_AwsArn_.Default()) +} + +func (_this AwsKmsEdkHelper) Dtor_edk() m_AwsCryptographyMaterialProvidersTypes.EncryptedDataKey { + return _this.Get_().(AwsKmsEdkHelper_AwsKmsEdkHelper).Edk +} + +func (_this AwsKmsEdkHelper) Dtor_arn() m_AwsArnParsing.AwsArn { + return _this.Get_().(AwsKmsEdkHelper_AwsKmsEdkHelper).Arn +} + +func (_this AwsKmsEdkHelper) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case AwsKmsEdkHelper_AwsKmsEdkHelper: + { + return "Constants.AwsKmsEdkHelper.AwsKmsEdkHelper" + "(" + _dafny.String(data.Edk) + ", " + _dafny.String(data.Arn) + ")" + } + default: + { + return "" + } + } +} + +func (_this AwsKmsEdkHelper) Equals(other AwsKmsEdkHelper) bool { + switch data1 := _this.Get_().(type) { + case AwsKmsEdkHelper_AwsKmsEdkHelper: + { + data2, ok := other.Get_().(AwsKmsEdkHelper_AwsKmsEdkHelper) + return ok && data1.Edk.Equals(data2.Edk) && data1.Arn.Equals(data2.Arn) + } + default: + { + return false // unexpected + } + } +} + +func (_this AwsKmsEdkHelper) EqualsGeneric(other interface{}) bool { + typed, ok := other.(AwsKmsEdkHelper) + return ok && _this.Equals(typed) +} + +func Type_AwsKmsEdkHelper_() _dafny.TypeDescriptor { + return type_AwsKmsEdkHelper_{} +} + +type type_AwsKmsEdkHelper_ struct { +} + +func (_this type_AwsKmsEdkHelper_) Default() interface{} { + return Companion_AwsKmsEdkHelper_.Default() +} + +func (_this type_AwsKmsEdkHelper_) String() string { + return "Constants.AwsKmsEdkHelper" +} +func (_this AwsKmsEdkHelper) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = AwsKmsEdkHelper{} + +// End of datatype AwsKmsEdkHelper diff --git a/customer-preview/mpl/CreateKeyStoreTable/CreateKeyStoreTable.go b/customer-preview/mpl/CreateKeyStoreTable/CreateKeyStoreTable.go new file mode 100644 index 000000000..8b9775971 --- /dev/null +++ b/customer-preview/mpl/CreateKeyStoreTable/CreateKeyStoreTable.go @@ -0,0 +1,270 @@ +// Package CreateKeyStoreTable +// Dafny module CreateKeyStoreTable compiled into Go + +package CreateKeyStoreTable + +import ( + os "os" + + m_ComAmazonawsDynamodbTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/ComAmazonawsDynamodbTypes" + m_ComAmazonawsKmsTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/ComAmazonawsKmsTypes" + m_AwsArnParsing "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsArnParsing" + m_AwsCryptographyKeyStoreTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreTypes" + m_AwsCryptographyMaterialProvidersTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersTypes" + m_AwsKmsMrkMatchForDecrypt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkMatchForDecrypt" + m_AwsKmsUtils "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsUtils" + m_CreateKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeys" + m_DDBKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DDBKeystoreOperations" + m_KMSKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KMSKeystoreOperations" + m_KeyStoreErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStoreErrorMessages" + m_KmsArn "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KmsArn" + m_Structure "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Structure" + m_AtomicPrimitives "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AtomicPrimitives" + m_AwsCryptographyPrimitivesOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesOperations" + m_AwsCryptographyPrimitivesTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesTypes" + m_Digest "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Digest" + m_HKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/HKDF" + m_KdfCtr "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/KdfCtr" + m_Random "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Random" + m_WrappedHKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHKDF" + m_WrappedHMAC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHMAC" + m_Actions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Actions" + m_Base64 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64" + m_Base64Lemmas "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64Lemmas" + m_BoundedInts "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/BoundedInts" + m_DivInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternals" + m_DivInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternalsNonlinear" + m_DivMod "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivMod" + m_FileIO "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FileIO" + m_FloatCompare "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FloatCompare" + m_Functions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Functions" + m_GeneralInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GeneralInternals" + m_GetOpt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GetOpt" + m_HexStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/HexStrings" + m_Logarithm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Logarithm" + m__Math "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Math_" + m_ModInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternals" + m_ModInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternalsNonlinear" + m_Mul "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Mul" + m_MulInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternals" + m_MulInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternalsNonlinear" + m_Power "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Power" + m_Relations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Relations" + m_Seq "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq" + m_Seq_MergeSort "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq_MergeSort" + m_Sorting "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Sorting" + m_StandardLibrary "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary" + m_StandardLibraryInterop "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibraryInterop" + m_StandardLibrary_Sequence "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_Sequence" + m_StandardLibrary_String "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_String" + m_StandardLibrary_UInt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_UInt" + m_Streams "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Streams" + m_UnicodeStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UnicodeStrings" + m__Unicode "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Unicode_" + m_Utf16EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf16EncodingForm" + m_Utf8EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf8EncodingForm" + m_Wrappers "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers" + m__System "github.com/dafny-lang/DafnyRuntimeGo/v4/System_" + _dafny "github.com/dafny-lang/DafnyRuntimeGo/v4/dafny" +) + +var _ = os.Args +var _ _dafny.Dummy__ +var _ m__System.Dummy__ +var _ m_Wrappers.Dummy__ +var _ m_BoundedInts.Dummy__ +var _ m_StandardLibrary_UInt.Dummy__ +var _ m_StandardLibrary_Sequence.Dummy__ +var _ m_StandardLibrary_String.Dummy__ +var _ m_StandardLibrary.Dummy__ +var _ m_AwsCryptographyPrimitivesTypes.Dummy__ +var _ m_Random.Dummy__ +var _ m_Digest.Dummy__ +var _ m_WrappedHMAC.Dummy__ +var _ m_HKDF.Dummy__ +var _ m_WrappedHKDF.Dummy__ +var _ m_KdfCtr.Dummy__ +var _ m_AwsCryptographyPrimitivesOperations.Dummy__ +var _ m_AtomicPrimitives.Dummy__ +var _ m_ComAmazonawsDynamodbTypes.Dummy__ +var _ m_ComAmazonawsKmsTypes.Dummy__ +var _ m_Relations.Dummy__ +var _ m_Seq_MergeSort.Dummy__ +var _ m__Math.Dummy__ +var _ m_Seq.Dummy__ +var _ m__Unicode.Dummy__ +var _ m_Functions.Dummy__ +var _ m_Utf8EncodingForm.Dummy__ +var _ m_Utf16EncodingForm.Dummy__ +var _ m_UnicodeStrings.Dummy__ +var _ m_FileIO.Dummy__ +var _ m_GeneralInternals.Dummy__ +var _ m_MulInternalsNonlinear.Dummy__ +var _ m_MulInternals.Dummy__ +var _ m_Mul.Dummy__ +var _ m_ModInternalsNonlinear.Dummy__ +var _ m_DivInternalsNonlinear.Dummy__ +var _ m_ModInternals.Dummy__ +var _ m_DivInternals.Dummy__ +var _ m_DivMod.Dummy__ +var _ m_Power.Dummy__ +var _ m_Logarithm.Dummy__ +var _ m_StandardLibraryInterop.Dummy__ +var _ m_Streams.Dummy__ +var _ m_Sorting.Dummy__ +var _ m_HexStrings.Dummy__ +var _ m_GetOpt.Dummy__ +var _ m_FloatCompare.Dummy__ +var _ m_Base64.Dummy__ +var _ m_Base64Lemmas.Dummy__ +var _ m_Actions.Dummy__ +var _ m_AwsCryptographyKeyStoreTypes.Dummy__ +var _ m_AwsCryptographyMaterialProvidersTypes.Dummy__ +var _ m_AwsArnParsing.Dummy__ +var _ m_AwsKmsMrkMatchForDecrypt.Dummy__ +var _ m_AwsKmsUtils.Dummy__ +var _ m_KeyStoreErrorMessages.Dummy__ +var _ m_KmsArn.Dummy__ +var _ m_Structure.Dummy__ +var _ m_KMSKeystoreOperations.Dummy__ +var _ m_DDBKeystoreOperations.Dummy__ +var _ m_CreateKeys.Dummy__ + +type Dummy__ struct{} + +// Definition of class Default__ +type Default__ struct { + dummy byte +} + +func New_Default___() *Default__ { + _this := Default__{} + + return &_this +} + +type CompanionStruct_Default___ struct { +} + +var Companion_Default___ = CompanionStruct_Default___{} + +func (_this *Default__) Equals(other *Default__) bool { + return _this == other +} + +func (_this *Default__) EqualsGeneric(x interface{}) bool { + other, ok := x.(*Default__) + return ok && _this.Equals(other) +} + +func (*Default__) String() string { + return "CreateKeyStoreTable.Default__" +} +func (_this *Default__) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = &Default__{} + +func (_static *CompanionStruct_Default___) KeyStoreHasExpectedConstruction_q(t m_ComAmazonawsDynamodbTypes.TableDescription) bool { + return (((((((t).Dtor_AttributeDefinitions()).Is_Some()) && (((t).Dtor_KeySchema()).Is_Some())) && (((t).Dtor_TableName()).Is_Some())) && (((t).Dtor_TableArn()).Is_Some())) && ((m_Seq.Companion_Default___.ToSet(Companion_Default___.ATTRIBUTE__DEFINITIONS())).IsSubsetOf(m_Seq.Companion_Default___.ToSet(((t).Dtor_AttributeDefinitions()).Dtor_value().(_dafny.Sequence))))) && ((m_Seq.Companion_Default___.ToSet(Companion_Default___.KEY__SCHEMA())).IsSubsetOf(m_Seq.Companion_Default___.ToSet(((t).Dtor_KeySchema()).Dtor_value().(_dafny.Sequence)))) +} +func (_static *CompanionStruct_Default___) CreateKeyStoreTable(tableName _dafny.Sequence, ddbClient m_ComAmazonawsDynamodbTypes.IDynamoDBClient) m_Wrappers.Result { + var res m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq.SetString()) + _ = res + var _0_maybeDescribeTableResponse m_Wrappers.Result + _ = _0_maybeDescribeTableResponse + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = (ddbClient).DescribeTable(m_ComAmazonawsDynamodbTypes.Companion_DescribeTableInput_.Create_DescribeTableInput_(tableName)) + _0_maybeDescribeTableResponse = _out0 + if (_0_maybeDescribeTableResponse).Is_Failure() { + var _1_error m_ComAmazonawsDynamodbTypes.Error + _ = _1_error + _1_error = (_0_maybeDescribeTableResponse).Dtor_error().(m_ComAmazonawsDynamodbTypes.Error) + if (_1_error).Is_ResourceNotFoundException() { + var _2_maybeCreateTableResponse m_Wrappers.Result + _ = _2_maybeCreateTableResponse + var _out1 m_Wrappers.Result + _ = _out1 + _out1 = (ddbClient).CreateTable(m_ComAmazonawsDynamodbTypes.Companion_CreateTableInput_.Create_CreateTableInput_(Companion_Default___.ATTRIBUTE__DEFINITIONS(), tableName, Companion_Default___.KEY__SCHEMA(), m_Wrappers.Companion_Option_.Create_None_(), m_Wrappers.Companion_Option_.Create_None_(), m_Wrappers.Companion_Option_.Create_Some_(m_ComAmazonawsDynamodbTypes.Companion_BillingMode_.Create_PAY__PER__REQUEST_()), m_Wrappers.Companion_Option_.Create_None_(), m_Wrappers.Companion_Option_.Create_None_(), m_Wrappers.Companion_Option_.Create_None_(), m_Wrappers.Companion_Option_.Create_None_(), m_Wrappers.Companion_Option_.Create_None_(), m_Wrappers.Companion_Option_.Create_None_(), m_Wrappers.Companion_Option_.Create_None_(), m_Wrappers.Companion_Option_.Create_None_())) + _2_maybeCreateTableResponse = _out1 + if (_2_maybeCreateTableResponse).Is_Failure() { + res = m_Wrappers.Companion_Result_.Create_Failure_(m_AwsCryptographyKeyStoreTypes.Companion_Error_.Create_ComAmazonawsDynamodb_((_2_maybeCreateTableResponse).Dtor_error().(m_ComAmazonawsDynamodbTypes.Error))) + } else { + var _3_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _3_valueOrError0 + _3_valueOrError0 = m_Wrappers.Companion_Default___.Need((((((_2_maybeCreateTableResponse).Dtor_value().(m_ComAmazonawsDynamodbTypes.CreateTableOutput)).Dtor_TableDescription()).Is_Some()) && (Companion_Default___.KeyStoreHasExpectedConstruction_q((((_2_maybeCreateTableResponse).Dtor_value().(m_ComAmazonawsDynamodbTypes.CreateTableOutput)).Dtor_TableDescription()).Dtor_value().(m_ComAmazonawsDynamodbTypes.TableDescription)))) && (m_ComAmazonawsDynamodbTypes.Companion_Default___.IsValid__TableArn((((((_2_maybeCreateTableResponse).Dtor_value().(m_ComAmazonawsDynamodbTypes.CreateTableOutput)).Dtor_TableDescription()).Dtor_value().(m_ComAmazonawsDynamodbTypes.TableDescription)).Dtor_TableArn()).Dtor_value().(_dafny.Sequence))), Companion_Default___.E(_dafny.SeqOfString("Configured table name does not conform to expected Key Store construction."))) + if (_3_valueOrError0).IsFailure() { + res = (_3_valueOrError0).PropagateFailure() + return res + } + res = m_Wrappers.Companion_Result_.Create_Success_((((((_2_maybeCreateTableResponse).Dtor_value().(m_ComAmazonawsDynamodbTypes.CreateTableOutput)).Dtor_TableDescription()).Dtor_value().(m_ComAmazonawsDynamodbTypes.TableDescription)).Dtor_TableArn()).Dtor_value().(_dafny.Sequence)) + } + } else { + res = m_Wrappers.Companion_Result_.Create_Failure_(m_AwsCryptographyKeyStoreTypes.Companion_Error_.Create_ComAmazonawsDynamodb_(_1_error)) + } + } else { + var _4_valueOrError1 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _4_valueOrError1 + _4_valueOrError1 = m_Wrappers.Companion_Default___.Need((((((_0_maybeDescribeTableResponse).Dtor_value().(m_ComAmazonawsDynamodbTypes.DescribeTableOutput)).Dtor_Table()).Is_Some()) && (Companion_Default___.KeyStoreHasExpectedConstruction_q((((_0_maybeDescribeTableResponse).Dtor_value().(m_ComAmazonawsDynamodbTypes.DescribeTableOutput)).Dtor_Table()).Dtor_value().(m_ComAmazonawsDynamodbTypes.TableDescription)))) && (m_ComAmazonawsDynamodbTypes.Companion_Default___.IsValid__TableArn((((((_0_maybeDescribeTableResponse).Dtor_value().(m_ComAmazonawsDynamodbTypes.DescribeTableOutput)).Dtor_Table()).Dtor_value().(m_ComAmazonawsDynamodbTypes.TableDescription)).Dtor_TableArn()).Dtor_value().(_dafny.Sequence))), Companion_Default___.E(_dafny.SeqOfString("Configured table name does not conform to expected Key Store construction."))) + if (_4_valueOrError1).IsFailure() { + res = (_4_valueOrError1).PropagateFailure() + return res + } + res = m_Wrappers.Companion_Result_.Create_Success_((((((_0_maybeDescribeTableResponse).Dtor_value().(m_ComAmazonawsDynamodbTypes.DescribeTableOutput)).Dtor_Table()).Dtor_value().(m_ComAmazonawsDynamodbTypes.TableDescription)).Dtor_TableArn()).Dtor_value().(_dafny.Sequence)) + } + return res +} +func (_static *CompanionStruct_Default___) E(s _dafny.Sequence) m_AwsCryptographyKeyStoreTypes.Error { + return m_AwsCryptographyKeyStoreTypes.Companion_Error_.Create_KeyStoreException_(s) +} +func (_static *CompanionStruct_Default___) ATTRIBUTE__DEFINITIONS() _dafny.Sequence { + return _dafny.SeqOf(m_ComAmazonawsDynamodbTypes.Companion_AttributeDefinition_.Create_AttributeDefinition_(m_Structure.Companion_Default___.BRANCH__KEY__IDENTIFIER__FIELD(), m_ComAmazonawsDynamodbTypes.Companion_ScalarAttributeType_.Create_S_()), m_ComAmazonawsDynamodbTypes.Companion_AttributeDefinition_.Create_AttributeDefinition_(m_Structure.Companion_Default___.TYPE__FIELD(), m_ComAmazonawsDynamodbTypes.Companion_ScalarAttributeType_.Create_S_())) +} +func (_static *CompanionStruct_Default___) KEY__SCHEMA() _dafny.Sequence { + return _dafny.SeqOf(m_ComAmazonawsDynamodbTypes.Companion_KeySchemaElement_.Create_KeySchemaElement_(m_Structure.Companion_Default___.BRANCH__KEY__IDENTIFIER__FIELD(), m_ComAmazonawsDynamodbTypes.Companion_KeyType_.Create_HASH_()), m_ComAmazonawsDynamodbTypes.Companion_KeySchemaElement_.Create_KeySchemaElement_(m_Structure.Companion_Default___.TYPE__FIELD(), m_ComAmazonawsDynamodbTypes.Companion_KeyType_.Create_RANGE_())) +} + +// End of class Default__ + +// Definition of class KeyStoreDescription +type KeyStoreDescription struct { +} + +func New_KeyStoreDescription_() *KeyStoreDescription { + _this := KeyStoreDescription{} + + return &_this +} + +type CompanionStruct_KeyStoreDescription_ struct { +} + +var Companion_KeyStoreDescription_ = CompanionStruct_KeyStoreDescription_{} + +func (*KeyStoreDescription) String() string { + return "CreateKeyStoreTable.KeyStoreDescription" +} + +// End of class KeyStoreDescription + +func Type_KeyStoreDescription_() _dafny.TypeDescriptor { + return type_KeyStoreDescription_{} +} + +type type_KeyStoreDescription_ struct { +} + +func (_this type_KeyStoreDescription_) Default() interface{} { + return m_ComAmazonawsDynamodbTypes.Companion_TableDescription_.Default() +} + +func (_this type_KeyStoreDescription_) String() string { + return "CreateKeyStoreTable.KeyStoreDescription" +} +func (_this *CompanionStruct_KeyStoreDescription_) Is_(__source m_ComAmazonawsDynamodbTypes.TableDescription) bool { + var _0_t m_ComAmazonawsDynamodbTypes.TableDescription = (__source) + _ = _0_t + return Companion_Default___.KeyStoreHasExpectedConstruction_q(_0_t) +} diff --git a/customer-preview/mpl/CreateKeys/CreateKeys.go b/customer-preview/mpl/CreateKeys/CreateKeys.go new file mode 100644 index 000000000..455019075 --- /dev/null +++ b/customer-preview/mpl/CreateKeys/CreateKeys.go @@ -0,0 +1,358 @@ +// Package CreateKeys +// Dafny module CreateKeys compiled into Go + +package CreateKeys + +import ( + os "os" + + m_ComAmazonawsDynamodbTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/ComAmazonawsDynamodbTypes" + m_ComAmazonawsKmsTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/ComAmazonawsKmsTypes" + m_AwsArnParsing "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsArnParsing" + m_AwsCryptographyKeyStoreTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreTypes" + m_AwsCryptographyMaterialProvidersTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersTypes" + m_AwsKmsMrkMatchForDecrypt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkMatchForDecrypt" + m_AwsKmsUtils "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsUtils" + m_DDBKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DDBKeystoreOperations" + m_KMSKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KMSKeystoreOperations" + m_KeyStoreErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStoreErrorMessages" + m_KmsArn "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KmsArn" + m_Structure "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Structure" + m_AtomicPrimitives "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AtomicPrimitives" + m_AwsCryptographyPrimitivesOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesOperations" + m_AwsCryptographyPrimitivesTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesTypes" + m_Digest "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Digest" + m_HKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/HKDF" + m_KdfCtr "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/KdfCtr" + m_Random "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Random" + m_WrappedHKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHKDF" + m_WrappedHMAC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHMAC" + m_Actions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Actions" + m_Base64 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64" + m_Base64Lemmas "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64Lemmas" + m_BoundedInts "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/BoundedInts" + m_DivInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternals" + m_DivInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternalsNonlinear" + m_DivMod "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivMod" + m_FileIO "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FileIO" + m_FloatCompare "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FloatCompare" + m_Functions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Functions" + m_GeneralInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GeneralInternals" + m_GetOpt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GetOpt" + m_HexStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/HexStrings" + m_Logarithm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Logarithm" + m__Math "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Math_" + m_ModInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternals" + m_ModInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternalsNonlinear" + m_Mul "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Mul" + m_MulInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternals" + m_MulInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternalsNonlinear" + m_Power "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Power" + m_Relations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Relations" + m_Seq "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq" + m_Seq_MergeSort "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq_MergeSort" + m_Sorting "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Sorting" + m_StandardLibrary "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary" + m_StandardLibraryInterop "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibraryInterop" + m_StandardLibrary_Sequence "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_Sequence" + m_StandardLibrary_String "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_String" + m_StandardLibrary_UInt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_UInt" + m_Streams "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Streams" + m_UnicodeStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UnicodeStrings" + m__Unicode "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Unicode_" + m_Utf16EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf16EncodingForm" + m_Utf8EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf8EncodingForm" + m_Wrappers "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers" + m__System "github.com/dafny-lang/DafnyRuntimeGo/v4/System_" + _dafny "github.com/dafny-lang/DafnyRuntimeGo/v4/dafny" +) + +var _ = os.Args +var _ _dafny.Dummy__ +var _ m__System.Dummy__ +var _ m_Wrappers.Dummy__ +var _ m_BoundedInts.Dummy__ +var _ m_StandardLibrary_UInt.Dummy__ +var _ m_StandardLibrary_Sequence.Dummy__ +var _ m_StandardLibrary_String.Dummy__ +var _ m_StandardLibrary.Dummy__ +var _ m_AwsCryptographyPrimitivesTypes.Dummy__ +var _ m_Random.Dummy__ +var _ m_Digest.Dummy__ +var _ m_WrappedHMAC.Dummy__ +var _ m_HKDF.Dummy__ +var _ m_WrappedHKDF.Dummy__ +var _ m_KdfCtr.Dummy__ +var _ m_AwsCryptographyPrimitivesOperations.Dummy__ +var _ m_AtomicPrimitives.Dummy__ +var _ m_ComAmazonawsDynamodbTypes.Dummy__ +var _ m_ComAmazonawsKmsTypes.Dummy__ +var _ m_Relations.Dummy__ +var _ m_Seq_MergeSort.Dummy__ +var _ m__Math.Dummy__ +var _ m_Seq.Dummy__ +var _ m__Unicode.Dummy__ +var _ m_Functions.Dummy__ +var _ m_Utf8EncodingForm.Dummy__ +var _ m_Utf16EncodingForm.Dummy__ +var _ m_UnicodeStrings.Dummy__ +var _ m_FileIO.Dummy__ +var _ m_GeneralInternals.Dummy__ +var _ m_MulInternalsNonlinear.Dummy__ +var _ m_MulInternals.Dummy__ +var _ m_Mul.Dummy__ +var _ m_ModInternalsNonlinear.Dummy__ +var _ m_DivInternalsNonlinear.Dummy__ +var _ m_ModInternals.Dummy__ +var _ m_DivInternals.Dummy__ +var _ m_DivMod.Dummy__ +var _ m_Power.Dummy__ +var _ m_Logarithm.Dummy__ +var _ m_StandardLibraryInterop.Dummy__ +var _ m_Streams.Dummy__ +var _ m_Sorting.Dummy__ +var _ m_HexStrings.Dummy__ +var _ m_GetOpt.Dummy__ +var _ m_FloatCompare.Dummy__ +var _ m_Base64.Dummy__ +var _ m_Base64Lemmas.Dummy__ +var _ m_Actions.Dummy__ +var _ m_AwsCryptographyKeyStoreTypes.Dummy__ +var _ m_AwsCryptographyMaterialProvidersTypes.Dummy__ +var _ m_AwsArnParsing.Dummy__ +var _ m_AwsKmsMrkMatchForDecrypt.Dummy__ +var _ m_AwsKmsUtils.Dummy__ +var _ m_KeyStoreErrorMessages.Dummy__ +var _ m_KmsArn.Dummy__ +var _ m_Structure.Dummy__ +var _ m_KMSKeystoreOperations.Dummy__ +var _ m_DDBKeystoreOperations.Dummy__ + +type Dummy__ struct{} + +// Definition of class Default__ +type Default__ struct { + dummy byte +} + +func New_Default___() *Default__ { + _this := Default__{} + + return &_this +} + +type CompanionStruct_Default___ struct { +} + +var Companion_Default___ = CompanionStruct_Default___{} + +func (_this *Default__) Equals(other *Default__) bool { + return _this == other +} + +func (_this *Default__) EqualsGeneric(x interface{}) bool { + other, ok := x.(*Default__) + return ok && _this.Equals(other) +} + +func (*Default__) String() string { + return "CreateKeys.Default__" +} +func (_this *Default__) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = &Default__{} + +func (_static *CompanionStruct_Default___) CreateBranchAndBeaconKeys(branchKeyIdentifier _dafny.Sequence, customEncryptionContext _dafny.Map, timestamp _dafny.Sequence, branchKeyVersion _dafny.Sequence, ddbTableName _dafny.Sequence, logicalKeyStoreName _dafny.Sequence, kmsConfiguration m_AwsCryptographyKeyStoreTypes.KMSConfiguration, grantTokens _dafny.Sequence, kmsClient m_ComAmazonawsKmsTypes.IKMSClient, ddbClient m_ComAmazonawsDynamodbTypes.IDynamoDBClient) m_Wrappers.Result { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_AwsCryptographyKeyStoreTypes.Companion_CreateKeyOutput_.Default()) + _ = output + var _0_decryptOnlyEncryptionContext _dafny.Map + _ = _0_decryptOnlyEncryptionContext + _0_decryptOnlyEncryptionContext = m_Structure.Companion_Default___.DecryptOnlyBranchKeyEncryptionContext(branchKeyIdentifier, branchKeyVersion, timestamp, logicalKeyStoreName, m_KMSKeystoreOperations.Companion_Default___.GetKeyId(kmsConfiguration), customEncryptionContext) + var _1_activeEncryptionContext _dafny.Map + _ = _1_activeEncryptionContext + _1_activeEncryptionContext = m_Structure.Companion_Default___.ActiveBranchKeyEncryptionContext(_0_decryptOnlyEncryptionContext) + var _2_beaconEncryptionContext _dafny.Map + _ = _2_beaconEncryptionContext + _2_beaconEncryptionContext = m_Structure.Companion_Default___.BeaconKeyEncryptionContext(_0_decryptOnlyEncryptionContext) + var _3_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _3_valueOrError0 + _3_valueOrError0 = m_Wrappers.Companion_Default___.Need(m_KMSKeystoreOperations.Companion_Default___.AttemptKmsOperation_q(kmsConfiguration, _0_decryptOnlyEncryptionContext), m_AwsCryptographyKeyStoreTypes.Companion_Error_.Create_KeyStoreException_(_dafny.SeqOfString("Invalid KMS Key ARN configured for GenerateDataKeyWithoutPlaintext in CreateBranchAndBeaconKeys."))) + if (_3_valueOrError0).IsFailure() { + output = (_3_valueOrError0).PropagateFailure() + return output + } + var _4_valueOrError1 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_ComAmazonawsKmsTypes.Companion_GenerateDataKeyWithoutPlaintextResponse_.Default()) + _ = _4_valueOrError1 + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_KMSKeystoreOperations.Companion_Default___.GenerateKey(_0_decryptOnlyEncryptionContext, kmsConfiguration, grantTokens, kmsClient) + _4_valueOrError1 = _out0 + if (_4_valueOrError1).IsFailure() { + output = (_4_valueOrError1).PropagateFailure() + return output + } + var _5_wrappedDecryptOnlyBranchKey m_ComAmazonawsKmsTypes.GenerateDataKeyWithoutPlaintextResponse + _ = _5_wrappedDecryptOnlyBranchKey + _5_wrappedDecryptOnlyBranchKey = (_4_valueOrError1).Extract().(m_ComAmazonawsKmsTypes.GenerateDataKeyWithoutPlaintextResponse) + var _6_valueOrError2 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _6_valueOrError2 + _6_valueOrError2 = m_Wrappers.Companion_Default___.Need(m_KMSKeystoreOperations.Companion_Default___.AttemptKmsOperation_q(kmsConfiguration, _1_activeEncryptionContext), m_AwsCryptographyKeyStoreTypes.Companion_Error_.Create_KeyStoreException_(_dafny.SeqOfString("Invalid KMS Key ARN configured for ReEncrypt in CreateBranchAndBeaconKeys."))) + if (_6_valueOrError2).IsFailure() { + output = (_6_valueOrError2).PropagateFailure() + return output + } + var _7_valueOrError3 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_ComAmazonawsKmsTypes.Companion_ReEncryptResponse_.Default()) + _ = _7_valueOrError3 + var _out1 m_Wrappers.Result + _ = _out1 + _out1 = m_KMSKeystoreOperations.Companion_Default___.ReEncryptKey(((_5_wrappedDecryptOnlyBranchKey).Dtor_CiphertextBlob()).Dtor_value().(_dafny.Sequence), _0_decryptOnlyEncryptionContext, _1_activeEncryptionContext, kmsConfiguration, grantTokens, kmsClient) + _7_valueOrError3 = _out1 + if (_7_valueOrError3).IsFailure() { + output = (_7_valueOrError3).PropagateFailure() + return output + } + var _8_wrappedActiveBranchKey m_ComAmazonawsKmsTypes.ReEncryptResponse + _ = _8_wrappedActiveBranchKey + _8_wrappedActiveBranchKey = (_7_valueOrError3).Extract().(m_ComAmazonawsKmsTypes.ReEncryptResponse) + var _9_valueOrError4 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _9_valueOrError4 + _9_valueOrError4 = m_Wrappers.Companion_Default___.Need(m_KMSKeystoreOperations.Companion_Default___.AttemptKmsOperation_q(kmsConfiguration, _2_beaconEncryptionContext), m_AwsCryptographyKeyStoreTypes.Companion_Error_.Create_KeyStoreException_(_dafny.SeqOfString("Invalid KMS Key ARN configured for GenerateDataKeyWithoutPlaintext(beacon key) in CreateBranchAndBeaconKeys."))) + if (_9_valueOrError4).IsFailure() { + output = (_9_valueOrError4).PropagateFailure() + return output + } + var _10_valueOrError5 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_ComAmazonawsKmsTypes.Companion_GenerateDataKeyWithoutPlaintextResponse_.Default()) + _ = _10_valueOrError5 + var _out2 m_Wrappers.Result + _ = _out2 + _out2 = m_KMSKeystoreOperations.Companion_Default___.GenerateKey(_2_beaconEncryptionContext, kmsConfiguration, grantTokens, kmsClient) + _10_valueOrError5 = _out2 + if (_10_valueOrError5).IsFailure() { + output = (_10_valueOrError5).PropagateFailure() + return output + } + var _11_wrappedBeaconKey m_ComAmazonawsKmsTypes.GenerateDataKeyWithoutPlaintextResponse + _ = _11_wrappedBeaconKey + _11_wrappedBeaconKey = (_10_valueOrError5).Extract().(m_ComAmazonawsKmsTypes.GenerateDataKeyWithoutPlaintextResponse) + var _12_decryptOnlyBranchKeyItem _dafny.Map + _ = _12_decryptOnlyBranchKeyItem + _12_decryptOnlyBranchKeyItem = m_Structure.Companion_Default___.ToAttributeMap(_0_decryptOnlyEncryptionContext, ((_5_wrappedDecryptOnlyBranchKey).Dtor_CiphertextBlob()).Dtor_value().(_dafny.Sequence)) + var _13_activeBranchKeyItem _dafny.Map + _ = _13_activeBranchKeyItem + _13_activeBranchKeyItem = m_Structure.Companion_Default___.ToAttributeMap(_1_activeEncryptionContext, ((_8_wrappedActiveBranchKey).Dtor_CiphertextBlob()).Dtor_value().(_dafny.Sequence)) + var _14_beaconKeyItem _dafny.Map + _ = _14_beaconKeyItem + _14_beaconKeyItem = m_Structure.Companion_Default___.ToAttributeMap(_2_beaconEncryptionContext, ((_11_wrappedBeaconKey).Dtor_CiphertextBlob()).Dtor_value().(_dafny.Sequence)) + var _15_valueOrError6 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_ComAmazonawsDynamodbTypes.Companion_TransactWriteItemsOutput_.Default()) + _ = _15_valueOrError6 + var _out3 m_Wrappers.Result + _ = _out3 + _out3 = m_DDBKeystoreOperations.Companion_Default___.WriteNewKeyToStore(_12_decryptOnlyBranchKeyItem, _13_activeBranchKeyItem, _14_beaconKeyItem, ddbTableName, ddbClient) + _15_valueOrError6 = _out3 + if (_15_valueOrError6).IsFailure() { + output = (_15_valueOrError6).PropagateFailure() + return output + } + var _16___v0 m_ComAmazonawsDynamodbTypes.TransactWriteItemsOutput + _ = _16___v0 + _16___v0 = (_15_valueOrError6).Extract().(m_ComAmazonawsDynamodbTypes.TransactWriteItemsOutput) + output = m_Wrappers.Companion_Result_.Create_Success_(m_AwsCryptographyKeyStoreTypes.Companion_CreateKeyOutput_.Create_CreateKeyOutput_(branchKeyIdentifier)) + return output +} +func (_static *CompanionStruct_Default___) VersionActiveBranchKey(input m_AwsCryptographyKeyStoreTypes.VersionKeyInput, timestamp _dafny.Sequence, branchKeyVersion _dafny.Sequence, ddbTableName _dafny.Sequence, logicalKeyStoreName _dafny.Sequence, kmsConfiguration m_AwsCryptographyKeyStoreTypes.KMSConfiguration, grantTokens _dafny.Sequence, kmsClient m_ComAmazonawsKmsTypes.IKMSClient, ddbClient m_ComAmazonawsDynamodbTypes.IDynamoDBClient) m_Wrappers.Result { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_AwsCryptographyKeyStoreTypes.Companion_VersionKeyOutput_.Default()) + _ = output + var _0_valueOrError0 m_Wrappers.Result = m_Wrappers.Result{} + _ = _0_valueOrError0 + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_DDBKeystoreOperations.Companion_Default___.GetActiveBranchKeyItem((input).Dtor_branchKeyIdentifier(), ddbTableName, ddbClient) + _0_valueOrError0 = _out0 + if (_0_valueOrError0).IsFailure() { + output = (_0_valueOrError0).PropagateFailure() + return output + } + var _1_oldActiveItem _dafny.Map + _ = _1_oldActiveItem + _1_oldActiveItem = (_0_valueOrError0).Extract().(_dafny.Map) + var _2_oldActiveEncryptionContext _dafny.Map + _ = _2_oldActiveEncryptionContext + _2_oldActiveEncryptionContext = m_Structure.Companion_Default___.ToBranchKeyContext(_1_oldActiveItem, logicalKeyStoreName) + var _3_valueOrError1 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _3_valueOrError1 + _3_valueOrError1 = m_Wrappers.Companion_Default___.Need((true) && (m_KMSKeystoreOperations.Companion_Default___.AttemptKmsOperation_q(kmsConfiguration, _2_oldActiveEncryptionContext)), m_AwsCryptographyKeyStoreTypes.Companion_Error_.Create_KeyStoreException_(m_KeyStoreErrorMessages.Companion_Default___.VERSION__KEY__KMS__KEY__ARN__DISAGREEMENT())) + if (_3_valueOrError1).IsFailure() { + output = (_3_valueOrError1).PropagateFailure() + return output + } + var _4_valueOrError2 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_ComAmazonawsKmsTypes.Companion_ReEncryptResponse_.Default()) + _ = _4_valueOrError2 + var _out1 m_Wrappers.Result + _ = _out1 + _out1 = m_KMSKeystoreOperations.Companion_Default___.ReEncryptKey(((_1_oldActiveItem).Get(m_Structure.Companion_Default___.BRANCH__KEY__FIELD()).(m_ComAmazonawsDynamodbTypes.AttributeValue)).Dtor_B(), _2_oldActiveEncryptionContext, _2_oldActiveEncryptionContext, kmsConfiguration, grantTokens, kmsClient) + _4_valueOrError2 = _out1 + if (_4_valueOrError2).IsFailure() { + output = (_4_valueOrError2).PropagateFailure() + return output + } + var _5___v1 m_ComAmazonawsKmsTypes.ReEncryptResponse + _ = _5___v1 + _5___v1 = (_4_valueOrError2).Extract().(m_ComAmazonawsKmsTypes.ReEncryptResponse) + var _6_decryptOnlyEncryptionContext _dafny.Map + _ = _6_decryptOnlyEncryptionContext + _6_decryptOnlyEncryptionContext = m_Structure.Companion_Default___.NewVersionFromActiveBranchKeyEncryptionContext(_2_oldActiveEncryptionContext, branchKeyVersion, timestamp) + var _7_activeEncryptionContext _dafny.Map + _ = _7_activeEncryptionContext + _7_activeEncryptionContext = m_Structure.Companion_Default___.ActiveBranchKeyEncryptionContext(_6_decryptOnlyEncryptionContext) + var _8_valueOrError3 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_ComAmazonawsKmsTypes.Companion_GenerateDataKeyWithoutPlaintextResponse_.Default()) + _ = _8_valueOrError3 + var _out2 m_Wrappers.Result + _ = _out2 + _out2 = m_KMSKeystoreOperations.Companion_Default___.GenerateKey(_6_decryptOnlyEncryptionContext, kmsConfiguration, grantTokens, kmsClient) + _8_valueOrError3 = _out2 + if (_8_valueOrError3).IsFailure() { + output = (_8_valueOrError3).PropagateFailure() + return output + } + var _9_wrappedDecryptOnlyBranchKey m_ComAmazonawsKmsTypes.GenerateDataKeyWithoutPlaintextResponse + _ = _9_wrappedDecryptOnlyBranchKey + _9_wrappedDecryptOnlyBranchKey = (_8_valueOrError3).Extract().(m_ComAmazonawsKmsTypes.GenerateDataKeyWithoutPlaintextResponse) + var _10_valueOrError4 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_ComAmazonawsKmsTypes.Companion_ReEncryptResponse_.Default()) + _ = _10_valueOrError4 + var _out3 m_Wrappers.Result + _ = _out3 + _out3 = m_KMSKeystoreOperations.Companion_Default___.ReEncryptKey(((_9_wrappedDecryptOnlyBranchKey).Dtor_CiphertextBlob()).Dtor_value().(_dafny.Sequence), _6_decryptOnlyEncryptionContext, _7_activeEncryptionContext, kmsConfiguration, grantTokens, kmsClient) + _10_valueOrError4 = _out3 + if (_10_valueOrError4).IsFailure() { + output = (_10_valueOrError4).PropagateFailure() + return output + } + var _11_wrappedActiveBranchKey m_ComAmazonawsKmsTypes.ReEncryptResponse + _ = _11_wrappedActiveBranchKey + _11_wrappedActiveBranchKey = (_10_valueOrError4).Extract().(m_ComAmazonawsKmsTypes.ReEncryptResponse) + var _12_decryptOnlyBranchKeyItem _dafny.Map + _ = _12_decryptOnlyBranchKeyItem + _12_decryptOnlyBranchKeyItem = m_Structure.Companion_Default___.ToAttributeMap(_6_decryptOnlyEncryptionContext, ((_9_wrappedDecryptOnlyBranchKey).Dtor_CiphertextBlob()).Dtor_value().(_dafny.Sequence)) + var _13_activeBranchKeyItem _dafny.Map + _ = _13_activeBranchKeyItem + _13_activeBranchKeyItem = m_Structure.Companion_Default___.ToAttributeMap(_7_activeEncryptionContext, ((_11_wrappedActiveBranchKey).Dtor_CiphertextBlob()).Dtor_value().(_dafny.Sequence)) + var _14_valueOrError5 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_ComAmazonawsDynamodbTypes.Companion_TransactWriteItemsOutput_.Default()) + _ = _14_valueOrError5 + var _out4 m_Wrappers.Result + _ = _out4 + _out4 = m_DDBKeystoreOperations.Companion_Default___.WriteNewBranchKeyVersionToKeystore(_12_decryptOnlyBranchKeyItem, _13_activeBranchKeyItem, ddbTableName, ddbClient) + _14_valueOrError5 = _out4 + if (_14_valueOrError5).IsFailure() { + output = (_14_valueOrError5).PropagateFailure() + return output + } + var _15___v2 m_ComAmazonawsDynamodbTypes.TransactWriteItemsOutput + _ = _15___v2 + _15___v2 = (_14_valueOrError5).Extract().(m_ComAmazonawsDynamodbTypes.TransactWriteItemsOutput) + output = m_Wrappers.Companion_Result_.Create_Success_(m_AwsCryptographyKeyStoreTypes.Companion_VersionKeyOutput_.Create_VersionKeyOutput_()) + return output +} + +// End of class Default__ diff --git a/customer-preview/mpl/DDBKeystoreOperations/DDBKeystoreOperations.go b/customer-preview/mpl/DDBKeystoreOperations/DDBKeystoreOperations.go new file mode 100644 index 000000000..02f7f9e80 --- /dev/null +++ b/customer-preview/mpl/DDBKeystoreOperations/DDBKeystoreOperations.go @@ -0,0 +1,534 @@ +// Package DDBKeystoreOperations +// Dafny module DDBKeystoreOperations compiled into Go + +package DDBKeystoreOperations + +import ( + os "os" + + m_ComAmazonawsDynamodbTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/ComAmazonawsDynamodbTypes" + m_ComAmazonawsKmsTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/ComAmazonawsKmsTypes" + m_AwsArnParsing "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsArnParsing" + m_AwsCryptographyKeyStoreTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreTypes" + m_AwsCryptographyMaterialProvidersTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersTypes" + m_AwsKmsMrkMatchForDecrypt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkMatchForDecrypt" + m_AwsKmsUtils "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsUtils" + m_KMSKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KMSKeystoreOperations" + m_KeyStoreErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStoreErrorMessages" + m_KmsArn "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KmsArn" + m_Structure "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Structure" + m_AtomicPrimitives "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AtomicPrimitives" + m_AwsCryptographyPrimitivesOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesOperations" + m_AwsCryptographyPrimitivesTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesTypes" + m_Digest "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Digest" + m_HKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/HKDF" + m_KdfCtr "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/KdfCtr" + m_Random "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Random" + m_WrappedHKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHKDF" + m_WrappedHMAC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHMAC" + m_Actions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Actions" + m_Base64 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64" + m_Base64Lemmas "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64Lemmas" + m_BoundedInts "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/BoundedInts" + m_DivInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternals" + m_DivInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternalsNonlinear" + m_DivMod "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivMod" + m_FileIO "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FileIO" + m_FloatCompare "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FloatCompare" + m_Functions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Functions" + m_GeneralInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GeneralInternals" + m_GetOpt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GetOpt" + m_HexStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/HexStrings" + m_Logarithm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Logarithm" + m__Math "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Math_" + m_ModInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternals" + m_ModInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternalsNonlinear" + m_Mul "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Mul" + m_MulInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternals" + m_MulInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternalsNonlinear" + m_Power "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Power" + m_Relations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Relations" + m_Seq "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq" + m_Seq_MergeSort "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq_MergeSort" + m_Sorting "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Sorting" + m_StandardLibrary "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary" + m_StandardLibraryInterop "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibraryInterop" + m_StandardLibrary_Sequence "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_Sequence" + m_StandardLibrary_String "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_String" + m_StandardLibrary_UInt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_UInt" + m_Streams "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Streams" + m_UnicodeStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UnicodeStrings" + m__Unicode "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Unicode_" + m_Utf16EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf16EncodingForm" + m_Utf8EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf8EncodingForm" + m_Wrappers "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers" + m__System "github.com/dafny-lang/DafnyRuntimeGo/v4/System_" + _dafny "github.com/dafny-lang/DafnyRuntimeGo/v4/dafny" +) + +var _ = os.Args +var _ _dafny.Dummy__ +var _ m__System.Dummy__ +var _ m_Wrappers.Dummy__ +var _ m_BoundedInts.Dummy__ +var _ m_StandardLibrary_UInt.Dummy__ +var _ m_StandardLibrary_Sequence.Dummy__ +var _ m_StandardLibrary_String.Dummy__ +var _ m_StandardLibrary.Dummy__ +var _ m_AwsCryptographyPrimitivesTypes.Dummy__ +var _ m_Random.Dummy__ +var _ m_Digest.Dummy__ +var _ m_WrappedHMAC.Dummy__ +var _ m_HKDF.Dummy__ +var _ m_WrappedHKDF.Dummy__ +var _ m_KdfCtr.Dummy__ +var _ m_AwsCryptographyPrimitivesOperations.Dummy__ +var _ m_AtomicPrimitives.Dummy__ +var _ m_ComAmazonawsDynamodbTypes.Dummy__ +var _ m_ComAmazonawsKmsTypes.Dummy__ +var _ m_Relations.Dummy__ +var _ m_Seq_MergeSort.Dummy__ +var _ m__Math.Dummy__ +var _ m_Seq.Dummy__ +var _ m__Unicode.Dummy__ +var _ m_Functions.Dummy__ +var _ m_Utf8EncodingForm.Dummy__ +var _ m_Utf16EncodingForm.Dummy__ +var _ m_UnicodeStrings.Dummy__ +var _ m_FileIO.Dummy__ +var _ m_GeneralInternals.Dummy__ +var _ m_MulInternalsNonlinear.Dummy__ +var _ m_MulInternals.Dummy__ +var _ m_Mul.Dummy__ +var _ m_ModInternalsNonlinear.Dummy__ +var _ m_DivInternalsNonlinear.Dummy__ +var _ m_ModInternals.Dummy__ +var _ m_DivInternals.Dummy__ +var _ m_DivMod.Dummy__ +var _ m_Power.Dummy__ +var _ m_Logarithm.Dummy__ +var _ m_StandardLibraryInterop.Dummy__ +var _ m_Streams.Dummy__ +var _ m_Sorting.Dummy__ +var _ m_HexStrings.Dummy__ +var _ m_GetOpt.Dummy__ +var _ m_FloatCompare.Dummy__ +var _ m_Base64.Dummy__ +var _ m_Base64Lemmas.Dummy__ +var _ m_Actions.Dummy__ +var _ m_AwsCryptographyKeyStoreTypes.Dummy__ +var _ m_AwsCryptographyMaterialProvidersTypes.Dummy__ +var _ m_AwsArnParsing.Dummy__ +var _ m_AwsKmsMrkMatchForDecrypt.Dummy__ +var _ m_AwsKmsUtils.Dummy__ +var _ m_KeyStoreErrorMessages.Dummy__ +var _ m_KmsArn.Dummy__ +var _ m_Structure.Dummy__ +var _ m_KMSKeystoreOperations.Dummy__ + +type Dummy__ struct{} + +// Definition of class Default__ +type Default__ struct { + dummy byte +} + +func New_Default___() *Default__ { + _this := Default__{} + + return &_this +} + +type CompanionStruct_Default___ struct { +} + +var Companion_Default___ = CompanionStruct_Default___{} + +func (_this *Default__) Equals(other *Default__) bool { + return _this == other +} + +func (_this *Default__) EqualsGeneric(x interface{}) bool { + other, ok := x.(*Default__) + return ok && _this.Equals(other) +} + +func (*Default__) String() string { + return "DDBKeystoreOperations.Default__" +} +func (_this *Default__) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = &Default__{} + +func (_static *CompanionStruct_Default___) WriteNewKeyToStore(versionBranchKeyItem _dafny.Map, activeBranchKeyItem _dafny.Map, beaconKeyItem _dafny.Map, tableName _dafny.Sequence, ddbClient m_ComAmazonawsDynamodbTypes.IDynamoDBClient) m_Wrappers.Result { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_ComAmazonawsDynamodbTypes.Companion_TransactWriteItemsOutput_.Default()) + _ = output + var _0_items _dafny.Sequence + _ = _0_items + _0_items = _dafny.SeqOf(Companion_Default___.CreateTransactWritePutItem(versionBranchKeyItem, tableName, Companion_ConditionExpression_.Create_BRANCH__KEY__NOT__EXIST_()), Companion_Default___.CreateTransactWritePutItem(activeBranchKeyItem, tableName, Companion_ConditionExpression_.Create_BRANCH__KEY__NOT__EXIST_()), Companion_Default___.CreateTransactWritePutItem(beaconKeyItem, tableName, Companion_ConditionExpression_.Create_BRANCH__KEY__NOT__EXIST_())) + var _1_transactRequest m_ComAmazonawsDynamodbTypes.TransactWriteItemsInput + _ = _1_transactRequest + _1_transactRequest = m_ComAmazonawsDynamodbTypes.Companion_TransactWriteItemsInput_.Create_TransactWriteItemsInput_(_0_items, m_Wrappers.Companion_Option_.Create_None_(), m_Wrappers.Companion_Option_.Create_None_(), m_Wrappers.Companion_Option_.Create_None_()) + var _2_maybeTransactWriteResponse m_Wrappers.Result + _ = _2_maybeTransactWriteResponse + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = (ddbClient).TransactWriteItems(_1_transactRequest) + _2_maybeTransactWriteResponse = _out0 + var _3_valueOrError0 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_ComAmazonawsDynamodbTypes.Companion_TransactWriteItemsOutput_.Default()) + _ = _3_valueOrError0 + _3_valueOrError0 = (_2_maybeTransactWriteResponse).MapFailure(func(coer14 func(m_ComAmazonawsDynamodbTypes.Error) m_AwsCryptographyKeyStoreTypes.Error) func(interface{}) interface{} { + return func(arg14 interface{}) interface{} { + return coer14(arg14.(m_ComAmazonawsDynamodbTypes.Error)) + } + }(func(_4_e m_ComAmazonawsDynamodbTypes.Error) m_AwsCryptographyKeyStoreTypes.Error { + return m_AwsCryptographyKeyStoreTypes.Companion_Error_.Create_ComAmazonawsDynamodb_(_4_e) + })) + if (_3_valueOrError0).IsFailure() { + output = (_3_valueOrError0).PropagateFailure() + return output + } + var _5_transactWriteItemsResponse m_ComAmazonawsDynamodbTypes.TransactWriteItemsOutput + _ = _5_transactWriteItemsResponse + _5_transactWriteItemsResponse = (_3_valueOrError0).Extract().(m_ComAmazonawsDynamodbTypes.TransactWriteItemsOutput) + output = m_Wrappers.Companion_Result_.Create_Success_(_5_transactWriteItemsResponse) + return output +} +func (_static *CompanionStruct_Default___) WriteNewBranchKeyVersionToKeystore(versionBranchKeyItem _dafny.Map, activeBranchKeyItem _dafny.Map, tableName _dafny.Sequence, ddbClient m_ComAmazonawsDynamodbTypes.IDynamoDBClient) m_Wrappers.Result { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_ComAmazonawsDynamodbTypes.Companion_TransactWriteItemsOutput_.Default()) + _ = output + var _0_items _dafny.Sequence + _ = _0_items + _0_items = _dafny.SeqOf(Companion_Default___.CreateTransactWritePutItem(versionBranchKeyItem, tableName, Companion_ConditionExpression_.Create_BRANCH__KEY__NOT__EXIST_()), Companion_Default___.CreateTransactWritePutItem(activeBranchKeyItem, tableName, Companion_ConditionExpression_.Create_BRANCH__KEY__EXISTS_())) + var _1_transactRequest m_ComAmazonawsDynamodbTypes.TransactWriteItemsInput + _ = _1_transactRequest + _1_transactRequest = m_ComAmazonawsDynamodbTypes.Companion_TransactWriteItemsInput_.Create_TransactWriteItemsInput_(_0_items, m_Wrappers.Companion_Option_.Create_None_(), m_Wrappers.Companion_Option_.Create_None_(), m_Wrappers.Companion_Option_.Create_None_()) + var _2_maybeTransactWriteResponse m_Wrappers.Result + _ = _2_maybeTransactWriteResponse + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = (ddbClient).TransactWriteItems(_1_transactRequest) + _2_maybeTransactWriteResponse = _out0 + var _3_valueOrError0 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_ComAmazonawsDynamodbTypes.Companion_TransactWriteItemsOutput_.Default()) + _ = _3_valueOrError0 + _3_valueOrError0 = (_2_maybeTransactWriteResponse).MapFailure(func(coer15 func(m_ComAmazonawsDynamodbTypes.Error) m_AwsCryptographyKeyStoreTypes.Error) func(interface{}) interface{} { + return func(arg15 interface{}) interface{} { + return coer15(arg15.(m_ComAmazonawsDynamodbTypes.Error)) + } + }(func(_4_e m_ComAmazonawsDynamodbTypes.Error) m_AwsCryptographyKeyStoreTypes.Error { + return m_AwsCryptographyKeyStoreTypes.Companion_Error_.Create_ComAmazonawsDynamodb_(_4_e) + })) + if (_3_valueOrError0).IsFailure() { + output = (_3_valueOrError0).PropagateFailure() + return output + } + var _5_transactWriteItemsResponse m_ComAmazonawsDynamodbTypes.TransactWriteItemsOutput + _ = _5_transactWriteItemsResponse + _5_transactWriteItemsResponse = (_3_valueOrError0).Extract().(m_ComAmazonawsDynamodbTypes.TransactWriteItemsOutput) + output = m_Wrappers.Companion_Result_.Create_Success_(_5_transactWriteItemsResponse) + return output +} +func (_static *CompanionStruct_Default___) GetActiveBranchKeyItem(branchKeyIdentifier _dafny.Sequence, tableName _dafny.Sequence, ddbClient m_ComAmazonawsDynamodbTypes.IDynamoDBClient) m_Wrappers.Result { + var output m_Wrappers.Result = m_Wrappers.Result{} + _ = output + var _0_dynamoDbKey _dafny.Map + _ = _0_dynamoDbKey + _0_dynamoDbKey = _dafny.NewMapBuilder().ToMap().UpdateUnsafe(m_Structure.Companion_Default___.BRANCH__KEY__IDENTIFIER__FIELD(), m_ComAmazonawsDynamodbTypes.Companion_AttributeValue_.Create_S_(branchKeyIdentifier)).UpdateUnsafe(m_Structure.Companion_Default___.TYPE__FIELD(), m_ComAmazonawsDynamodbTypes.Companion_AttributeValue_.Create_S_(m_Structure.Companion_Default___.BRANCH__KEY__ACTIVE__TYPE())) + var _1_ItemRequest m_ComAmazonawsDynamodbTypes.GetItemInput + _ = _1_ItemRequest + _1_ItemRequest = m_ComAmazonawsDynamodbTypes.Companion_GetItemInput_.Create_GetItemInput_(tableName, _0_dynamoDbKey, m_Wrappers.Companion_Option_.Create_None_(), m_Wrappers.Companion_Option_.Create_None_(), m_Wrappers.Companion_Option_.Create_None_(), m_Wrappers.Companion_Option_.Create_None_(), m_Wrappers.Companion_Option_.Create_None_()) + var _2_maybeGetItem m_Wrappers.Result + _ = _2_maybeGetItem + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = (ddbClient).GetItem(_1_ItemRequest) + _2_maybeGetItem = _out0 + var _3_valueOrError0 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_ComAmazonawsDynamodbTypes.Companion_GetItemOutput_.Default()) + _ = _3_valueOrError0 + _3_valueOrError0 = (_2_maybeGetItem).MapFailure(func(coer16 func(m_ComAmazonawsDynamodbTypes.Error) m_AwsCryptographyKeyStoreTypes.Error) func(interface{}) interface{} { + return func(arg16 interface{}) interface{} { + return coer16(arg16.(m_ComAmazonawsDynamodbTypes.Error)) + } + }(func(_4_e m_ComAmazonawsDynamodbTypes.Error) m_AwsCryptographyKeyStoreTypes.Error { + return m_AwsCryptographyKeyStoreTypes.Companion_Error_.Create_ComAmazonawsDynamodb_(_4_e) + })) + if (_3_valueOrError0).IsFailure() { + output = (_3_valueOrError0).PropagateFailure() + return output + } + var _5_getItemResponse m_ComAmazonawsDynamodbTypes.GetItemOutput + _ = _5_getItemResponse + _5_getItemResponse = (_3_valueOrError0).Extract().(m_ComAmazonawsDynamodbTypes.GetItemOutput) + var _6_valueOrError1 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _6_valueOrError1 + _6_valueOrError1 = m_Wrappers.Companion_Default___.Need((((_5_getItemResponse).Dtor_Item()).Is_Some()) && (((((_5_getItemResponse).Dtor_Item()).Dtor_value().(_dafny.Map)).Cardinality()).Cmp(_dafny.One) >= 0), m_AwsCryptographyKeyStoreTypes.Companion_Error_.Create_KeyStoreException_(m_KeyStoreErrorMessages.Companion_Default___.NO__CORRESPONDING__BRANCH__KEY())) + if (_6_valueOrError1).IsFailure() { + output = (_6_valueOrError1).PropagateFailure() + return output + } + var _7_valueOrError2 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _7_valueOrError2 + _7_valueOrError2 = m_Wrappers.Companion_Default___.Need((m_Structure.Companion_Default___.ActiveBranchKeyItem_q(((_5_getItemResponse).Dtor_Item()).Dtor_value().(_dafny.Map))) && (_dafny.Companion_Sequence_.Equal(((((_5_getItemResponse).Dtor_Item()).Dtor_value().(_dafny.Map)).Get(m_Structure.Companion_Default___.BRANCH__KEY__IDENTIFIER__FIELD()).(m_ComAmazonawsDynamodbTypes.AttributeValue)).Dtor_S(), branchKeyIdentifier)), m_AwsCryptographyKeyStoreTypes.Companion_Error_.Create_KeyStoreException_(_dafny.SeqOfString("Item found is not a valid active branch key."))) + if (_7_valueOrError2).IsFailure() { + output = (_7_valueOrError2).PropagateFailure() + return output + } + output = m_Wrappers.Companion_Result_.Create_Success_(((_5_getItemResponse).Dtor_Item()).Dtor_value().(_dafny.Map)) + return output +} +func (_static *CompanionStruct_Default___) GetVersionBranchKeyItem(branchKeyIdentifier _dafny.Sequence, branchKeyVersion _dafny.Sequence, tableName _dafny.Sequence, ddbClient m_ComAmazonawsDynamodbTypes.IDynamoDBClient) m_Wrappers.Result { + var output m_Wrappers.Result = m_Wrappers.Result{} + _ = output + var _0_dynamoDbKey _dafny.Map + _ = _0_dynamoDbKey + _0_dynamoDbKey = _dafny.NewMapBuilder().ToMap().UpdateUnsafe(m_Structure.Companion_Default___.BRANCH__KEY__IDENTIFIER__FIELD(), m_ComAmazonawsDynamodbTypes.Companion_AttributeValue_.Create_S_(branchKeyIdentifier)).UpdateUnsafe(m_Structure.Companion_Default___.TYPE__FIELD(), m_ComAmazonawsDynamodbTypes.Companion_AttributeValue_.Create_S_(_dafny.Companion_Sequence_.Concatenate(m_Structure.Companion_Default___.BRANCH__KEY__TYPE__PREFIX(), branchKeyVersion))) + var _1_ItemRequest m_ComAmazonawsDynamodbTypes.GetItemInput + _ = _1_ItemRequest + _1_ItemRequest = m_ComAmazonawsDynamodbTypes.Companion_GetItemInput_.Create_GetItemInput_(tableName, _0_dynamoDbKey, m_Wrappers.Companion_Option_.Create_None_(), m_Wrappers.Companion_Option_.Create_None_(), m_Wrappers.Companion_Option_.Create_None_(), m_Wrappers.Companion_Option_.Create_None_(), m_Wrappers.Companion_Option_.Create_None_()) + var _2_maybeGetItem m_Wrappers.Result + _ = _2_maybeGetItem + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = (ddbClient).GetItem(_1_ItemRequest) + _2_maybeGetItem = _out0 + var _3_valueOrError0 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_ComAmazonawsDynamodbTypes.Companion_GetItemOutput_.Default()) + _ = _3_valueOrError0 + _3_valueOrError0 = (_2_maybeGetItem).MapFailure(func(coer17 func(m_ComAmazonawsDynamodbTypes.Error) m_AwsCryptographyKeyStoreTypes.Error) func(interface{}) interface{} { + return func(arg17 interface{}) interface{} { + return coer17(arg17.(m_ComAmazonawsDynamodbTypes.Error)) + } + }(func(_4_e m_ComAmazonawsDynamodbTypes.Error) m_AwsCryptographyKeyStoreTypes.Error { + return m_AwsCryptographyKeyStoreTypes.Companion_Error_.Create_ComAmazonawsDynamodb_(_4_e) + })) + if (_3_valueOrError0).IsFailure() { + output = (_3_valueOrError0).PropagateFailure() + return output + } + var _5_getItemResponse m_ComAmazonawsDynamodbTypes.GetItemOutput + _ = _5_getItemResponse + _5_getItemResponse = (_3_valueOrError0).Extract().(m_ComAmazonawsDynamodbTypes.GetItemOutput) + var _6_valueOrError1 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _6_valueOrError1 + _6_valueOrError1 = m_Wrappers.Companion_Default___.Need((((_5_getItemResponse).Dtor_Item()).Is_Some()) && (((((_5_getItemResponse).Dtor_Item()).Dtor_value().(_dafny.Map)).Cardinality()).Cmp(_dafny.One) >= 0), m_AwsCryptographyKeyStoreTypes.Companion_Error_.Create_KeyStoreException_(m_KeyStoreErrorMessages.Companion_Default___.NO__CORRESPONDING__BRANCH__KEY())) + if (_6_valueOrError1).IsFailure() { + output = (_6_valueOrError1).PropagateFailure() + return output + } + var _7_valueOrError2 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _7_valueOrError2 + _7_valueOrError2 = m_Wrappers.Companion_Default___.Need(((m_Structure.Companion_Default___.VersionBranchKeyItem_q(((_5_getItemResponse).Dtor_Item()).Dtor_value().(_dafny.Map))) && (_dafny.Companion_Sequence_.Equal(((((_5_getItemResponse).Dtor_Item()).Dtor_value().(_dafny.Map)).Get(m_Structure.Companion_Default___.BRANCH__KEY__IDENTIFIER__FIELD()).(m_ComAmazonawsDynamodbTypes.AttributeValue)).Dtor_S(), branchKeyIdentifier))) && (_dafny.Companion_Sequence_.Equal(((((_5_getItemResponse).Dtor_Item()).Dtor_value().(_dafny.Map)).Get(m_Structure.Companion_Default___.TYPE__FIELD()).(m_ComAmazonawsDynamodbTypes.AttributeValue)).Dtor_S(), _dafny.Companion_Sequence_.Concatenate(m_Structure.Companion_Default___.BRANCH__KEY__TYPE__PREFIX(), branchKeyVersion))), m_AwsCryptographyKeyStoreTypes.Companion_Error_.Create_KeyStoreException_(_dafny.SeqOfString("Item found is not a valid branch key version."))) + if (_7_valueOrError2).IsFailure() { + output = (_7_valueOrError2).PropagateFailure() + return output + } + output = m_Wrappers.Companion_Result_.Create_Success_(((_5_getItemResponse).Dtor_Item()).Dtor_value().(_dafny.Map)) + return output +} +func (_static *CompanionStruct_Default___) GetBeaconKeyItem(branchKeyIdentifier _dafny.Sequence, tableName _dafny.Sequence, ddbClient m_ComAmazonawsDynamodbTypes.IDynamoDBClient) m_Wrappers.Result { + var output m_Wrappers.Result = m_Wrappers.Result{} + _ = output + var _0_dynamoDbKey _dafny.Map + _ = _0_dynamoDbKey + _0_dynamoDbKey = _dafny.NewMapBuilder().ToMap().UpdateUnsafe(m_Structure.Companion_Default___.BRANCH__KEY__IDENTIFIER__FIELD(), m_ComAmazonawsDynamodbTypes.Companion_AttributeValue_.Create_S_(branchKeyIdentifier)).UpdateUnsafe(m_Structure.Companion_Default___.TYPE__FIELD(), m_ComAmazonawsDynamodbTypes.Companion_AttributeValue_.Create_S_(m_Structure.Companion_Default___.BEACON__KEY__TYPE__VALUE())) + var _1_ItemRequest m_ComAmazonawsDynamodbTypes.GetItemInput + _ = _1_ItemRequest + _1_ItemRequest = m_ComAmazonawsDynamodbTypes.Companion_GetItemInput_.Create_GetItemInput_(tableName, _0_dynamoDbKey, m_Wrappers.Companion_Option_.Create_None_(), m_Wrappers.Companion_Option_.Create_None_(), m_Wrappers.Companion_Option_.Create_None_(), m_Wrappers.Companion_Option_.Create_None_(), m_Wrappers.Companion_Option_.Create_None_()) + var _2_maybeGetItem m_Wrappers.Result + _ = _2_maybeGetItem + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = (ddbClient).GetItem(_1_ItemRequest) + _2_maybeGetItem = _out0 + var _3_valueOrError0 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_ComAmazonawsDynamodbTypes.Companion_GetItemOutput_.Default()) + _ = _3_valueOrError0 + _3_valueOrError0 = (_2_maybeGetItem).MapFailure(func(coer18 func(m_ComAmazonawsDynamodbTypes.Error) m_AwsCryptographyKeyStoreTypes.Error) func(interface{}) interface{} { + return func(arg18 interface{}) interface{} { + return coer18(arg18.(m_ComAmazonawsDynamodbTypes.Error)) + } + }(func(_4_e m_ComAmazonawsDynamodbTypes.Error) m_AwsCryptographyKeyStoreTypes.Error { + return m_AwsCryptographyKeyStoreTypes.Companion_Error_.Create_ComAmazonawsDynamodb_(_4_e) + })) + if (_3_valueOrError0).IsFailure() { + output = (_3_valueOrError0).PropagateFailure() + return output + } + var _5_getItemResponse m_ComAmazonawsDynamodbTypes.GetItemOutput + _ = _5_getItemResponse + _5_getItemResponse = (_3_valueOrError0).Extract().(m_ComAmazonawsDynamodbTypes.GetItemOutput) + var _6_valueOrError1 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _6_valueOrError1 + _6_valueOrError1 = m_Wrappers.Companion_Default___.Need((((_5_getItemResponse).Dtor_Item()).Is_Some()) && (((((_5_getItemResponse).Dtor_Item()).Dtor_value().(_dafny.Map)).Cardinality()).Cmp(_dafny.One) >= 0), m_AwsCryptographyKeyStoreTypes.Companion_Error_.Create_KeyStoreException_(m_KeyStoreErrorMessages.Companion_Default___.NO__CORRESPONDING__BRANCH__KEY())) + if (_6_valueOrError1).IsFailure() { + output = (_6_valueOrError1).PropagateFailure() + return output + } + var _7_valueOrError2 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _7_valueOrError2 + _7_valueOrError2 = m_Wrappers.Companion_Default___.Need((m_Structure.Companion_Default___.BeaconKeyItem_q(((_5_getItemResponse).Dtor_Item()).Dtor_value().(_dafny.Map))) && (_dafny.Companion_Sequence_.Equal(((((_5_getItemResponse).Dtor_Item()).Dtor_value().(_dafny.Map)).Get(m_Structure.Companion_Default___.BRANCH__KEY__IDENTIFIER__FIELD()).(m_ComAmazonawsDynamodbTypes.AttributeValue)).Dtor_S(), branchKeyIdentifier)), m_AwsCryptographyKeyStoreTypes.Companion_Error_.Create_KeyStoreException_(_dafny.SeqOfString("Item found is not a valid beacon key."))) + if (_7_valueOrError2).IsFailure() { + output = (_7_valueOrError2).PropagateFailure() + return output + } + output = m_Wrappers.Companion_Result_.Create_Success_(((_5_getItemResponse).Dtor_Item()).Dtor_value().(_dafny.Map)) + return output +} +func (_static *CompanionStruct_Default___) CreateTransactWritePutItem(item _dafny.Map, tableName _dafny.Sequence, conditionExpression ConditionExpression) m_ComAmazonawsDynamodbTypes.TransactWriteItem { + return m_ComAmazonawsDynamodbTypes.Companion_TransactWriteItem_.Create_TransactWriteItem_(m_Wrappers.Companion_Option_.Create_None_(), m_Wrappers.Companion_Option_.Create_Some_(m_ComAmazonawsDynamodbTypes.Companion_Put_.Create_Put_(item, tableName, m_Wrappers.Companion_Option_.Create_Some_(func() _dafny.Sequence { + var _source0 ConditionExpression = conditionExpression + _ = _source0 + { + if _source0.Is_BRANCH__KEY__NOT__EXIST() { + return Companion_Default___.BRANCH__KEY__NOT__EXIST__CONDITION() + } + } + { + return Companion_Default___.BRANCH__KEY__EXISTS__CONDITION() + } + }()), m_Wrappers.Companion_Option_.Create_Some_(Companion_Default___.BRANCH__KEY__EXISTS__EXPRESSION__ATTRIBUTE__NAMES()), m_Wrappers.Companion_Option_.Create_None_(), m_Wrappers.Companion_Option_.Create_None_())), m_Wrappers.Companion_Option_.Create_None_(), m_Wrappers.Companion_Option_.Create_None_()) +} +func (_static *CompanionStruct_Default___) BRANCH__KEY__EXISTS__EXPRESSION__ATTRIBUTE__NAME() _dafny.Sequence { + return _dafny.SeqOfString("#BranchKeyIdentifierField") +} +func (_static *CompanionStruct_Default___) BRANCH__KEY__EXISTS__EXPRESSION__ATTRIBUTE__NAMES() _dafny.Map { + return _dafny.NewMapBuilder().ToMap().UpdateUnsafe(Companion_Default___.BRANCH__KEY__EXISTS__EXPRESSION__ATTRIBUTE__NAME(), m_Structure.Companion_Default___.BRANCH__KEY__IDENTIFIER__FIELD()) +} +func (_static *CompanionStruct_Default___) BRANCH__KEY__NOT__EXIST__CONDITION() _dafny.Sequence { + return _dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.SeqOfString("attribute_not_exists("), Companion_Default___.BRANCH__KEY__EXISTS__EXPRESSION__ATTRIBUTE__NAME()), _dafny.SeqOfString(")")) +} +func (_static *CompanionStruct_Default___) BRANCH__KEY__EXISTS__CONDITION() _dafny.Sequence { + return _dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.SeqOfString("attribute_exists("), Companion_Default___.BRANCH__KEY__EXISTS__EXPRESSION__ATTRIBUTE__NAME()), _dafny.SeqOfString(")")) +} + +// End of class Default__ + +// Definition of datatype ConditionExpression +type ConditionExpression struct { + Data_ConditionExpression_ +} + +func (_this ConditionExpression) Get_() Data_ConditionExpression_ { + return _this.Data_ConditionExpression_ +} + +type Data_ConditionExpression_ interface { + isConditionExpression() +} + +type CompanionStruct_ConditionExpression_ struct { +} + +var Companion_ConditionExpression_ = CompanionStruct_ConditionExpression_{} + +type ConditionExpression_BRANCH__KEY__NOT__EXIST struct { +} + +func (ConditionExpression_BRANCH__KEY__NOT__EXIST) isConditionExpression() {} + +func (CompanionStruct_ConditionExpression_) Create_BRANCH__KEY__NOT__EXIST_() ConditionExpression { + return ConditionExpression{ConditionExpression_BRANCH__KEY__NOT__EXIST{}} +} + +func (_this ConditionExpression) Is_BRANCH__KEY__NOT__EXIST() bool { + _, ok := _this.Get_().(ConditionExpression_BRANCH__KEY__NOT__EXIST) + return ok +} + +type ConditionExpression_BRANCH__KEY__EXISTS struct { +} + +func (ConditionExpression_BRANCH__KEY__EXISTS) isConditionExpression() {} + +func (CompanionStruct_ConditionExpression_) Create_BRANCH__KEY__EXISTS_() ConditionExpression { + return ConditionExpression{ConditionExpression_BRANCH__KEY__EXISTS{}} +} + +func (_this ConditionExpression) Is_BRANCH__KEY__EXISTS() bool { + _, ok := _this.Get_().(ConditionExpression_BRANCH__KEY__EXISTS) + return ok +} + +func (CompanionStruct_ConditionExpression_) Default() ConditionExpression { + return Companion_ConditionExpression_.Create_BRANCH__KEY__NOT__EXIST_() +} + +func (_ CompanionStruct_ConditionExpression_) AllSingletonConstructors() _dafny.Iterator { + i := -1 + return func() (interface{}, bool) { + i++ + switch i { + case 0: + return Companion_ConditionExpression_.Create_BRANCH__KEY__NOT__EXIST_(), true + case 1: + return Companion_ConditionExpression_.Create_BRANCH__KEY__EXISTS_(), true + default: + return ConditionExpression{}, false + } + } +} + +func (_this ConditionExpression) String() string { + switch _this.Get_().(type) { + case nil: + return "null" + case ConditionExpression_BRANCH__KEY__NOT__EXIST: + { + return "DDBKeystoreOperations.ConditionExpression.BRANCH_KEY_NOT_EXIST" + } + case ConditionExpression_BRANCH__KEY__EXISTS: + { + return "DDBKeystoreOperations.ConditionExpression.BRANCH_KEY_EXISTS" + } + default: + { + return "" + } + } +} + +func (_this ConditionExpression) Equals(other ConditionExpression) bool { + switch _this.Get_().(type) { + case ConditionExpression_BRANCH__KEY__NOT__EXIST: + { + _, ok := other.Get_().(ConditionExpression_BRANCH__KEY__NOT__EXIST) + return ok + } + case ConditionExpression_BRANCH__KEY__EXISTS: + { + _, ok := other.Get_().(ConditionExpression_BRANCH__KEY__EXISTS) + return ok + } + default: + { + return false // unexpected + } + } +} + +func (_this ConditionExpression) EqualsGeneric(other interface{}) bool { + typed, ok := other.(ConditionExpression) + return ok && _this.Equals(typed) +} + +func Type_ConditionExpression_() _dafny.TypeDescriptor { + return type_ConditionExpression_{} +} + +type type_ConditionExpression_ struct { +} + +func (_this type_ConditionExpression_) Default() interface{} { + return Companion_ConditionExpression_.Default() +} + +func (_this type_ConditionExpression_) String() string { + return "DDBKeystoreOperations.ConditionExpression" +} +func (_this ConditionExpression) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = ConditionExpression{} + +// End of datatype ConditionExpression diff --git a/customer-preview/mpl/DefaultCMM/DefaultCMM.go b/customer-preview/mpl/DefaultCMM/DefaultCMM.go new file mode 100644 index 000000000..86d9895a1 --- /dev/null +++ b/customer-preview/mpl/DefaultCMM/DefaultCMM.go @@ -0,0 +1,484 @@ +// Package DefaultCMM +// Dafny module DefaultCMM compiled into Go + +package DefaultCMM + +import ( + os "os" + + m_ComAmazonawsDynamodbTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/ComAmazonawsDynamodbTypes" + m_Com_Amazonaws_Dynamodb "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/Com_Amazonaws_Dynamodb" + m_ComAmazonawsKmsTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/ComAmazonawsKmsTypes" + m_Com_Amazonaws_Kms "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/Com_Amazonaws_Kms" + m_AlgorithmSuites "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AlgorithmSuites" + m_AwsArnParsing "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsArnParsing" + m_AwsCryptographyKeyStoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreOperations" + m_AwsCryptographyKeyStoreTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreTypes" + m_AwsCryptographyMaterialProvidersTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersTypes" + m_AwsKmsDiscoveryKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsDiscoveryKeyring" + m_AwsKmsEcdhKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsEcdhKeyring" + m_AwsKmsHierarchicalKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsHierarchicalKeyring" + m_AwsKmsKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsKeyring" + m_AwsKmsMrkAreUnique "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkAreUnique" + m_AwsKmsMrkDiscoveryKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkDiscoveryKeyring" + m_AwsKmsMrkKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkKeyring" + m_AwsKmsMrkMatchForDecrypt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkMatchForDecrypt" + m_AwsKmsRsaKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsRsaKeyring" + m_AwsKmsUtils "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsUtils" + m_CMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CMM" + m_CacheConstants "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CacheConstants" + m_CanonicalEncryptionContext "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CanonicalEncryptionContext" + m_Commitment "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Commitment" + m_Constants "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Constants" + m_CreateKeyStoreTable "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeyStoreTable" + m_CreateKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeys" + m_DDBKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DDBKeystoreOperations" + m_Defaults "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Defaults" + m_DiscoveryMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DiscoveryMultiKeyring" + m_EcdhEdkWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/EcdhEdkWrapping" + m_EdkWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/EdkWrapping" + m_ErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/ErrorMessages" + m_GetKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/GetKeys" + m_IntermediateKeyWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/IntermediateKeyWrapping" + m_KMSKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KMSKeystoreOperations" + m_KeyStore "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStore" + m_KeyStoreErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStoreErrorMessages" + m_Keyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Keyring" + m_KmsArn "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KmsArn" + m_LocalCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/LocalCMC" + m_MaterialWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MaterialWrapping" + m_Materials "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Materials" + m_MrkAwareDiscoveryMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MrkAwareDiscoveryMultiKeyring" + m_MrkAwareStrictMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MrkAwareStrictMultiKeyring" + m_MultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MultiKeyring" + m_RawAESKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawAESKeyring" + m_RawECDHKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawECDHKeyring" + m_RawRSAKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawRSAKeyring" + m_StormTracker "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StormTracker" + m_StormTrackingCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StormTrackingCMC" + m_StrictMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StrictMultiKeyring" + m_Structure "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Structure" + m_SynchronizedLocalCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/SynchronizedLocalCMC" + m_AtomicPrimitives "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AtomicPrimitives" + m_AwsCryptographyPrimitivesOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesOperations" + m_AwsCryptographyPrimitivesTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesTypes" + m_Digest "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Digest" + m_HKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/HKDF" + m_KdfCtr "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/KdfCtr" + m_Random "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Random" + m_WrappedHKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHKDF" + m_WrappedHMAC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHMAC" + m_Actions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Actions" + m_Base64 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64" + m_Base64Lemmas "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64Lemmas" + m_BoundedInts "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/BoundedInts" + m_DivInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternals" + m_DivInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternalsNonlinear" + m_DivMod "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivMod" + m_FileIO "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FileIO" + m_FloatCompare "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FloatCompare" + m_Functions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Functions" + m_GeneralInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GeneralInternals" + m_GetOpt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GetOpt" + m_HexStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/HexStrings" + m_Logarithm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Logarithm" + m__Math "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Math_" + m_ModInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternals" + m_ModInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternalsNonlinear" + m_Mul "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Mul" + m_MulInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternals" + m_MulInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternalsNonlinear" + m_Power "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Power" + m_Relations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Relations" + m_Seq "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq" + m_Seq_MergeSort "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq_MergeSort" + m_SortedSets "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/SortedSets" + m_Sorting "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Sorting" + m_StandardLibrary "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary" + m_StandardLibraryInterop "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibraryInterop" + m_StandardLibrary_Sequence "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_Sequence" + m_StandardLibrary_String "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_String" + m_StandardLibrary_UInt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_UInt" + m_Streams "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Streams" + m_UnicodeStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UnicodeStrings" + m__Unicode "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Unicode_" + m_Utf16EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf16EncodingForm" + m_Utf8EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf8EncodingForm" + m_Wrappers "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers" + m__System "github.com/dafny-lang/DafnyRuntimeGo/v4/System_" + _dafny "github.com/dafny-lang/DafnyRuntimeGo/v4/dafny" +) + +var _ = os.Args +var _ _dafny.Dummy__ +var _ m__System.Dummy__ +var _ m_Wrappers.Dummy__ +var _ m_BoundedInts.Dummy__ +var _ m_StandardLibrary_UInt.Dummy__ +var _ m_StandardLibrary_Sequence.Dummy__ +var _ m_StandardLibrary_String.Dummy__ +var _ m_StandardLibrary.Dummy__ +var _ m_AwsCryptographyPrimitivesTypes.Dummy__ +var _ m_Random.Dummy__ +var _ m_Digest.Dummy__ +var _ m_WrappedHMAC.Dummy__ +var _ m_HKDF.Dummy__ +var _ m_WrappedHKDF.Dummy__ +var _ m_KdfCtr.Dummy__ +var _ m_AwsCryptographyPrimitivesOperations.Dummy__ +var _ m_AtomicPrimitives.Dummy__ +var _ m_ComAmazonawsDynamodbTypes.Dummy__ +var _ m_ComAmazonawsKmsTypes.Dummy__ +var _ m_Relations.Dummy__ +var _ m_Seq_MergeSort.Dummy__ +var _ m__Math.Dummy__ +var _ m_Seq.Dummy__ +var _ m__Unicode.Dummy__ +var _ m_Functions.Dummy__ +var _ m_Utf8EncodingForm.Dummy__ +var _ m_Utf16EncodingForm.Dummy__ +var _ m_UnicodeStrings.Dummy__ +var _ m_FileIO.Dummy__ +var _ m_GeneralInternals.Dummy__ +var _ m_MulInternalsNonlinear.Dummy__ +var _ m_MulInternals.Dummy__ +var _ m_Mul.Dummy__ +var _ m_ModInternalsNonlinear.Dummy__ +var _ m_DivInternalsNonlinear.Dummy__ +var _ m_ModInternals.Dummy__ +var _ m_DivInternals.Dummy__ +var _ m_DivMod.Dummy__ +var _ m_Power.Dummy__ +var _ m_Logarithm.Dummy__ +var _ m_StandardLibraryInterop.Dummy__ +var _ m_Streams.Dummy__ +var _ m_Sorting.Dummy__ +var _ m_HexStrings.Dummy__ +var _ m_GetOpt.Dummy__ +var _ m_FloatCompare.Dummy__ +var _ m_Base64.Dummy__ +var _ m_Base64Lemmas.Dummy__ +var _ m_Actions.Dummy__ +var _ m_AwsCryptographyKeyStoreTypes.Dummy__ +var _ m_AwsCryptographyMaterialProvidersTypes.Dummy__ +var _ m_AwsArnParsing.Dummy__ +var _ m_AwsKmsMrkMatchForDecrypt.Dummy__ +var _ m_AwsKmsUtils.Dummy__ +var _ m_KeyStoreErrorMessages.Dummy__ +var _ m_KmsArn.Dummy__ +var _ m_Structure.Dummy__ +var _ m_KMSKeystoreOperations.Dummy__ +var _ m_DDBKeystoreOperations.Dummy__ +var _ m_CreateKeys.Dummy__ +var _ m_CreateKeyStoreTable.Dummy__ +var _ m_GetKeys.Dummy__ +var _ m_AwsCryptographyKeyStoreOperations.Dummy__ +var _ m_Com_Amazonaws_Kms.Dummy__ +var _ m_Com_Amazonaws_Dynamodb.Dummy__ +var _ m_KeyStore.Dummy__ +var _ m_AlgorithmSuites.Dummy__ +var _ m_Materials.Dummy__ +var _ m_Keyring.Dummy__ +var _ m_MultiKeyring.Dummy__ +var _ m_AwsKmsMrkAreUnique.Dummy__ +var _ m_Constants.Dummy__ +var _ m_MaterialWrapping.Dummy__ +var _ m_CanonicalEncryptionContext.Dummy__ +var _ m_IntermediateKeyWrapping.Dummy__ +var _ m_EdkWrapping.Dummy__ +var _ m_ErrorMessages.Dummy__ +var _ m_AwsKmsKeyring.Dummy__ +var _ m_StrictMultiKeyring.Dummy__ +var _ m_AwsKmsDiscoveryKeyring.Dummy__ +var _ m_DiscoveryMultiKeyring.Dummy__ +var _ m_AwsKmsMrkDiscoveryKeyring.Dummy__ +var _ m_MrkAwareDiscoveryMultiKeyring.Dummy__ +var _ m_AwsKmsMrkKeyring.Dummy__ +var _ m_MrkAwareStrictMultiKeyring.Dummy__ +var _ m_LocalCMC.Dummy__ +var _ m_SynchronizedLocalCMC.Dummy__ +var _ m_StormTracker.Dummy__ +var _ m_StormTrackingCMC.Dummy__ +var _ m_CacheConstants.Dummy__ +var _ m_AwsKmsHierarchicalKeyring.Dummy__ +var _ m_AwsKmsRsaKeyring.Dummy__ +var _ m_EcdhEdkWrapping.Dummy__ +var _ m_RawECDHKeyring.Dummy__ +var _ m_AwsKmsEcdhKeyring.Dummy__ +var _ m_RawAESKeyring.Dummy__ +var _ m_RawRSAKeyring.Dummy__ +var _ m_CMM.Dummy__ +var _ m_Defaults.Dummy__ +var _ m_Commitment.Dummy__ + +type Dummy__ struct{} + +// Definition of class DefaultCMM +type DefaultCMM struct { + _keyring m_AwsCryptographyMaterialProvidersTypes.IKeyring + _cryptoPrimitives *m_AtomicPrimitives.AtomicPrimitivesClient +} + +func New_DefaultCMM_() *DefaultCMM { + _this := DefaultCMM{} + + _this._keyring = (m_AwsCryptographyMaterialProvidersTypes.IKeyring)(nil) + _this._cryptoPrimitives = (*m_AtomicPrimitives.AtomicPrimitivesClient)(nil) + return &_this +} + +type CompanionStruct_DefaultCMM_ struct { +} + +var Companion_DefaultCMM_ = CompanionStruct_DefaultCMM_{} + +func (_this *DefaultCMM) Equals(other *DefaultCMM) bool { + return _this == other +} + +func (_this *DefaultCMM) EqualsGeneric(x interface{}) bool { + other, ok := x.(*DefaultCMM) + return ok && _this.Equals(other) +} + +func (*DefaultCMM) String() string { + return "DefaultCMM.DefaultCMM" +} + +func Type_DefaultCMM_() _dafny.TypeDescriptor { + return type_DefaultCMM_{} +} + +type type_DefaultCMM_ struct { +} + +func (_this type_DefaultCMM_) Default() interface{} { + return (*DefaultCMM)(nil) +} + +func (_this type_DefaultCMM_) String() string { + return "DefaultCMM.DefaultCMM" +} +func (_this *DefaultCMM) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){m_CMM.Companion_VerifiableInterface_.TraitID_, m_AwsCryptographyMaterialProvidersTypes.Companion_ICryptographicMaterialsManager_.TraitID_} +} + +var _ m_CMM.VerifiableInterface = &DefaultCMM{} +var _ m_AwsCryptographyMaterialProvidersTypes.ICryptographicMaterialsManager = &DefaultCMM{} +var _ _dafny.TraitOffspring = &DefaultCMM{} + +func (_this *DefaultCMM) DecryptMaterials(input m_AwsCryptographyMaterialProvidersTypes.DecryptMaterialsInput) m_Wrappers.Result { + var _out1 m_Wrappers.Result + _ = _out1 + _out1 = m_AwsCryptographyMaterialProvidersTypes.Companion_ICryptographicMaterialsManager_.DecryptMaterials(_this, input) + return _out1 +} +func (_this *DefaultCMM) GetEncryptionMaterials(input m_AwsCryptographyMaterialProvidersTypes.GetEncryptionMaterialsInput) m_Wrappers.Result { + var _out1 m_Wrappers.Result + _ = _out1 + _out1 = m_AwsCryptographyMaterialProvidersTypes.Companion_ICryptographicMaterialsManager_.GetEncryptionMaterials(_this, input) + return _out1 +} +func (_this *DefaultCMM) OfKeyring(k m_AwsCryptographyMaterialProvidersTypes.IKeyring, c *m_AtomicPrimitives.AtomicPrimitivesClient) { + { + (_this)._keyring = k + (_this)._cryptoPrimitives = c + } +} +func (_this *DefaultCMM) GetEncryptionMaterials_k(input m_AwsCryptographyMaterialProvidersTypes.GetEncryptionMaterialsInput) m_Wrappers.Result { + { + var output m_Wrappers.Result = m_Wrappers.Result{} + _ = output + var _0_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _0_valueOrError0 + _0_valueOrError0 = m_Wrappers.Companion_Default___.Need(!((input).Dtor_encryptionContext()).Contains(m_Materials.Companion_Default___.EC__PUBLIC__KEY__FIELD()), m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.SeqOfString("Reserved Field found in EncryptionContext keys."))) + if (_0_valueOrError0).IsFailure() { + output = (_0_valueOrError0).PropagateFailure() + return output + } + var _1_algorithmId m_AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteId + _ = _1_algorithmId + if ((input).Dtor_algorithmSuiteId()).Is_Some() { + _1_algorithmId = ((input).Dtor_algorithmSuiteId()).Dtor_value().(m_AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteId) + } else { + _1_algorithmId = m_Defaults.Companion_Default___.GetAlgorithmSuiteForCommitmentPolicy((input).Dtor_commitmentPolicy()) + } + var _2_valueOrError1 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _2_valueOrError1 + _2_valueOrError1 = m_Commitment.Companion_Default___.ValidateCommitmentPolicyOnEncrypt(_1_algorithmId, (input).Dtor_commitmentPolicy()) + if (_2_valueOrError1).IsFailure() { + output = (_2_valueOrError1).PropagateFailure() + return output + } + var _3_suite m_AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo + _ = _3_suite + _3_suite = m_AlgorithmSuites.Companion_Default___.GetSuite(_1_algorithmId) + var _4_signingKey m_Wrappers.Option = m_Wrappers.Companion_Option_.Default() + _ = _4_signingKey + var _5_verificationKey m_Wrappers.Option = m_Wrappers.Companion_Option_.Default() + _ = _5_verificationKey + if ((_3_suite).Dtor_signature()).Is_ECDSA() { + var _6_maybeECDSAPair m_Wrappers.Result + _ = _6_maybeECDSAPair + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = ((_this).CryptoPrimitives()).GenerateECDSASignatureKey(m_AwsCryptographyPrimitivesTypes.Companion_GenerateECDSASignatureKeyInput_.Create_GenerateECDSASignatureKeyInput_((((_3_suite).Dtor_signature()).Dtor_ECDSA()).Dtor_curve())) + _6_maybeECDSAPair = _out0 + var _7_valueOrError2 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_AwsCryptographyPrimitivesTypes.Companion_GenerateECDSASignatureKeyOutput_.Default()) + _ = _7_valueOrError2 + _7_valueOrError2 = (_6_maybeECDSAPair).MapFailure(func(coer129 func(m_AwsCryptographyPrimitivesTypes.Error) m_AwsCryptographyMaterialProvidersTypes.Error) func(interface{}) interface{} { + return func(arg130 interface{}) interface{} { + return coer129(arg130.(m_AwsCryptographyPrimitivesTypes.Error)) + } + }(func(_8_e m_AwsCryptographyPrimitivesTypes.Error) m_AwsCryptographyMaterialProvidersTypes.Error { + return m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographyPrimitives_(_8_e) + })) + if (_7_valueOrError2).IsFailure() { + output = (_7_valueOrError2).PropagateFailure() + return output + } + var _9_pair m_AwsCryptographyPrimitivesTypes.GenerateECDSASignatureKeyOutput + _ = _9_pair + _9_pair = (_7_valueOrError2).Extract().(m_AwsCryptographyPrimitivesTypes.GenerateECDSASignatureKeyOutput) + _4_signingKey = m_Wrappers.Companion_Option_.Create_Some_((_9_pair).Dtor_signingKey()) + _5_verificationKey = m_Wrappers.Companion_Option_.Create_Some_((_9_pair).Dtor_verificationKey()) + } else { + _4_signingKey = m_Wrappers.Companion_Option_.Create_None_() + _5_verificationKey = m_Wrappers.Companion_Option_.Create_None_() + } + var _10_valueOrError3 m_Wrappers.Result = m_Wrappers.Result{} + _ = _10_valueOrError3 + _10_valueOrError3 = m_Materials.Companion_Default___.InitializeEncryptionMaterials(m_AwsCryptographyMaterialProvidersTypes.Companion_InitializeEncryptionMaterialsInput_.Create_InitializeEncryptionMaterialsInput_(_1_algorithmId, (input).Dtor_encryptionContext(), ((input).Dtor_requiredEncryptionContextKeys()).UnwrapOr(_dafny.SeqOf()).(_dafny.Sequence), _4_signingKey, _5_verificationKey)) + if (_10_valueOrError3).IsFailure() { + output = (_10_valueOrError3).PropagateFailure() + return output + } + var _11_materials m_AwsCryptographyMaterialProvidersTypes.EncryptionMaterials + _ = _11_materials + _11_materials = (_10_valueOrError3).Extract().(m_AwsCryptographyMaterialProvidersTypes.EncryptionMaterials) + var _12_valueOrError4 m_Wrappers.Result = m_Wrappers.Result{} + _ = _12_valueOrError4 + var _out1 m_Wrappers.Result + _ = _out1 + _out1 = ((_this).Keyring()).OnEncrypt(m_AwsCryptographyMaterialProvidersTypes.Companion_OnEncryptInput_.Create_OnEncryptInput_(_11_materials)) + _12_valueOrError4 = _out1 + if (_12_valueOrError4).IsFailure() { + output = (_12_valueOrError4).PropagateFailure() + return output + } + var _13_result m_AwsCryptographyMaterialProvidersTypes.OnEncryptOutput + _ = _13_result + _13_result = (_12_valueOrError4).Extract().(m_AwsCryptographyMaterialProvidersTypes.OnEncryptOutput) + var _14_encryptionMaterialsOutput m_AwsCryptographyMaterialProvidersTypes.GetEncryptionMaterialsOutput + _ = _14_encryptionMaterialsOutput + _14_encryptionMaterialsOutput = m_AwsCryptographyMaterialProvidersTypes.Companion_GetEncryptionMaterialsOutput_.Create_GetEncryptionMaterialsOutput_((_13_result).Dtor_materials()) + var _15_valueOrError5 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _15_valueOrError5 + _15_valueOrError5 = m_Wrappers.Companion_Default___.Need(m_Materials.Companion_Default___.EncryptionMaterialsHasPlaintextDataKey((_14_encryptionMaterialsOutput).Dtor_encryptionMaterials()), m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.SeqOfString("Could not retrieve materials required for encryption"))) + if (_15_valueOrError5).IsFailure() { + output = (_15_valueOrError5).PropagateFailure() + return output + } + var _16_valueOrError6 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _16_valueOrError6 + _16_valueOrError6 = m_Wrappers.Companion_Default___.Need(m_Materials.Companion_Default___.ValidEncryptionMaterialsTransition(_11_materials, (_14_encryptionMaterialsOutput).Dtor_encryptionMaterials()), m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.SeqOfString("Keyring returned an invalid response"))) + if (_16_valueOrError6).IsFailure() { + output = (_16_valueOrError6).PropagateFailure() + return output + } + output = m_Wrappers.Companion_Result_.Create_Success_(_14_encryptionMaterialsOutput) + return output + } +} +func (_this *DefaultCMM) DecryptMaterials_k(input m_AwsCryptographyMaterialProvidersTypes.DecryptMaterialsInput) m_Wrappers.Result { + { + var output m_Wrappers.Result = m_Wrappers.Result{} + _ = output + var _0_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _0_valueOrError0 + _0_valueOrError0 = m_Commitment.Companion_Default___.ValidateCommitmentPolicyOnDecrypt((input).Dtor_algorithmSuiteId(), (input).Dtor_commitmentPolicy()) + if (_0_valueOrError0).IsFailure() { + output = (_0_valueOrError0).PropagateFailure() + return output + } + var _1_requiredEncryptionContextKeys _dafny.Sequence + _ = _1_requiredEncryptionContextKeys + _1_requiredEncryptionContextKeys = _dafny.SeqOf() + if ((input).Dtor_reproducedEncryptionContext()).Is_Some() { + var _2_keysSet _dafny.Set + _ = _2_keysSet + _2_keysSet = (((input).Dtor_reproducedEncryptionContext()).Dtor_value().(_dafny.Map)).Keys() + var _3_keysSeq _dafny.Sequence + _ = _3_keysSeq + var _out0 _dafny.Sequence + _ = _out0 + _out0 = m_SortedSets.SetToSequence(_2_keysSet) + _3_keysSeq = _out0 + var _4_i _dafny.Int + _ = _4_i + _4_i = _dafny.Zero + for (_4_i).Cmp(_dafny.IntOfUint32((_3_keysSeq).Cardinality())) < 0 { + var _5_key _dafny.Sequence + _ = _5_key + _5_key = (_3_keysSeq).Select((_4_i).Uint32()).(_dafny.Sequence) + if ((input).Dtor_encryptionContext()).Contains(_5_key) { + var _6_valueOrError1 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _6_valueOrError1 + _6_valueOrError1 = m_Wrappers.Companion_Default___.Need(_dafny.Companion_Sequence_.Equal((((input).Dtor_reproducedEncryptionContext()).Dtor_value().(_dafny.Map)).Get(_5_key).(_dafny.Sequence), ((input).Dtor_encryptionContext()).Get(_5_key).(_dafny.Sequence)), m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.SeqOfString("Encryption context does not match reproduced encryption context."))) + if (_6_valueOrError1).IsFailure() { + output = (_6_valueOrError1).PropagateFailure() + return output + } + } else { + _1_requiredEncryptionContextKeys = _dafny.Companion_Sequence_.Concatenate(_1_requiredEncryptionContextKeys, _dafny.SeqOf(_5_key)) + } + _4_i = (_4_i).Plus(_dafny.One) + } + } + var _7_valueOrError2 m_Wrappers.Result = m_Wrappers.Result{} + _ = _7_valueOrError2 + _7_valueOrError2 = m_Materials.Companion_Default___.InitializeDecryptionMaterials(m_AwsCryptographyMaterialProvidersTypes.Companion_InitializeDecryptionMaterialsInput_.Create_InitializeDecryptionMaterialsInput_((input).Dtor_algorithmSuiteId(), ((input).Dtor_encryptionContext()).Merge(((input).Dtor_reproducedEncryptionContext()).UnwrapOr(_dafny.NewMapBuilder().ToMap()).(_dafny.Map)), _1_requiredEncryptionContextKeys)) + if (_7_valueOrError2).IsFailure() { + output = (_7_valueOrError2).PropagateFailure() + return output + } + var _8_materials m_AwsCryptographyMaterialProvidersTypes.DecryptionMaterials + _ = _8_materials + _8_materials = (_7_valueOrError2).Extract().(m_AwsCryptographyMaterialProvidersTypes.DecryptionMaterials) + var _9_valueOrError3 m_Wrappers.Result = m_Wrappers.Result{} + _ = _9_valueOrError3 + var _out1 m_Wrappers.Result + _ = _out1 + _out1 = ((_this).Keyring()).OnDecrypt(m_AwsCryptographyMaterialProvidersTypes.Companion_OnDecryptInput_.Create_OnDecryptInput_(_8_materials, (input).Dtor_encryptedDataKeys())) + _9_valueOrError3 = _out1 + if (_9_valueOrError3).IsFailure() { + output = (_9_valueOrError3).PropagateFailure() + return output + } + var _10_result m_AwsCryptographyMaterialProvidersTypes.OnDecryptOutput + _ = _10_result + _10_result = (_9_valueOrError3).Extract().(m_AwsCryptographyMaterialProvidersTypes.OnDecryptOutput) + var _11_valueOrError4 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _11_valueOrError4 + _11_valueOrError4 = m_Wrappers.Companion_Default___.Need(m_Materials.Companion_Default___.DecryptionMaterialsTransitionIsValid(_8_materials, (_10_result).Dtor_materials()), m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.SeqOfString("Keyring.OnDecrypt failed to decrypt the plaintext data key."))) + if (_11_valueOrError4).IsFailure() { + output = (_11_valueOrError4).PropagateFailure() + return output + } + output = m_Wrappers.Companion_Result_.Create_Success_(m_AwsCryptographyMaterialProvidersTypes.Companion_DecryptMaterialsOutput_.Create_DecryptMaterialsOutput_((_10_result).Dtor_materials())) + return output + return output + } +} +func (_this *DefaultCMM) Keyring() m_AwsCryptographyMaterialProvidersTypes.IKeyring { + { + return _this._keyring + } +} +func (_this *DefaultCMM) CryptoPrimitives() *m_AtomicPrimitives.AtomicPrimitivesClient { + { + return _this._cryptoPrimitives + } +} + +// End of class DefaultCMM diff --git a/customer-preview/mpl/DefaultClientSupplier/DefaultClientSupplier.go b/customer-preview/mpl/DefaultClientSupplier/DefaultClientSupplier.go new file mode 100644 index 000000000..48fb21d3a --- /dev/null +++ b/customer-preview/mpl/DefaultClientSupplier/DefaultClientSupplier.go @@ -0,0 +1,299 @@ +// Package DefaultClientSupplier +// Dafny module DefaultClientSupplier compiled into Go + +package DefaultClientSupplier + +import ( + os "os" + + m_ComAmazonawsDynamodbTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/ComAmazonawsDynamodbTypes" + m_Com_Amazonaws_Dynamodb "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/Com_Amazonaws_Dynamodb" + m_ComAmazonawsKmsTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/ComAmazonawsKmsTypes" + m_Com_Amazonaws_Kms "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/Com_Amazonaws_Kms" + m_AlgorithmSuites "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AlgorithmSuites" + m_AwsArnParsing "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsArnParsing" + m_AwsCryptographyKeyStoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreOperations" + m_AwsCryptographyKeyStoreTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreTypes" + m_AwsCryptographyMaterialProvidersTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersTypes" + m_AwsKmsDiscoveryKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsDiscoveryKeyring" + m_AwsKmsEcdhKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsEcdhKeyring" + m_AwsKmsHierarchicalKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsHierarchicalKeyring" + m_AwsKmsKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsKeyring" + m_AwsKmsMrkAreUnique "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkAreUnique" + m_AwsKmsMrkDiscoveryKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkDiscoveryKeyring" + m_AwsKmsMrkKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkKeyring" + m_AwsKmsMrkMatchForDecrypt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkMatchForDecrypt" + m_AwsKmsRsaKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsRsaKeyring" + m_AwsKmsUtils "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsUtils" + m_CMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CMM" + m_CacheConstants "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CacheConstants" + m_CanonicalEncryptionContext "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CanonicalEncryptionContext" + m_Commitment "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Commitment" + m_Constants "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Constants" + m_CreateKeyStoreTable "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeyStoreTable" + m_CreateKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeys" + m_DDBKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DDBKeystoreOperations" + m_DefaultCMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DefaultCMM" + m_Defaults "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Defaults" + m_DiscoveryMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DiscoveryMultiKeyring" + m_EcdhEdkWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/EcdhEdkWrapping" + m_EdkWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/EdkWrapping" + m_ErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/ErrorMessages" + m_GetKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/GetKeys" + m_IntermediateKeyWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/IntermediateKeyWrapping" + m_KMSKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KMSKeystoreOperations" + m_KeyStore "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStore" + m_KeyStoreErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStoreErrorMessages" + m_Keyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Keyring" + m_KmsArn "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KmsArn" + m_LocalCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/LocalCMC" + m_MaterialWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MaterialWrapping" + m_Materials "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Materials" + m_MrkAwareDiscoveryMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MrkAwareDiscoveryMultiKeyring" + m_MrkAwareStrictMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MrkAwareStrictMultiKeyring" + m_MultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MultiKeyring" + m_RawAESKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawAESKeyring" + m_RawECDHKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawECDHKeyring" + m_RawRSAKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawRSAKeyring" + m_StormTracker "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StormTracker" + m_StormTrackingCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StormTrackingCMC" + m_StrictMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StrictMultiKeyring" + m_Structure "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Structure" + m_SynchronizedLocalCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/SynchronizedLocalCMC" + m_AtomicPrimitives "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AtomicPrimitives" + m_AwsCryptographyPrimitivesOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesOperations" + m_AwsCryptographyPrimitivesTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesTypes" + m_Digest "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Digest" + m_HKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/HKDF" + m_KdfCtr "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/KdfCtr" + m_Random "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Random" + m_WrappedHKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHKDF" + m_WrappedHMAC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHMAC" + m_Actions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Actions" + m_Base64 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64" + m_Base64Lemmas "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64Lemmas" + m_BoundedInts "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/BoundedInts" + m_DivInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternals" + m_DivInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternalsNonlinear" + m_DivMod "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivMod" + m_FileIO "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FileIO" + m_FloatCompare "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FloatCompare" + m_Functions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Functions" + m_GeneralInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GeneralInternals" + m_GetOpt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GetOpt" + m_HexStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/HexStrings" + m_Logarithm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Logarithm" + m__Math "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Math_" + m_ModInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternals" + m_ModInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternalsNonlinear" + m_Mul "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Mul" + m_MulInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternals" + m_MulInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternalsNonlinear" + m_Power "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Power" + m_Relations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Relations" + m_Seq "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq" + m_Seq_MergeSort "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq_MergeSort" + m_Sorting "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Sorting" + m_StandardLibrary "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary" + m_StandardLibraryInterop "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibraryInterop" + m_StandardLibrary_Sequence "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_Sequence" + m_StandardLibrary_String "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_String" + m_StandardLibrary_UInt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_UInt" + m_Streams "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Streams" + m_UnicodeStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UnicodeStrings" + m__Unicode "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Unicode_" + m_Utf16EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf16EncodingForm" + m_Utf8EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf8EncodingForm" + m_Wrappers "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers" + m__System "github.com/dafny-lang/DafnyRuntimeGo/v4/System_" + _dafny "github.com/dafny-lang/DafnyRuntimeGo/v4/dafny" +) + +var _ = os.Args +var _ _dafny.Dummy__ +var _ m__System.Dummy__ +var _ m_Wrappers.Dummy__ +var _ m_BoundedInts.Dummy__ +var _ m_StandardLibrary_UInt.Dummy__ +var _ m_StandardLibrary_Sequence.Dummy__ +var _ m_StandardLibrary_String.Dummy__ +var _ m_StandardLibrary.Dummy__ +var _ m_AwsCryptographyPrimitivesTypes.Dummy__ +var _ m_Random.Dummy__ +var _ m_Digest.Dummy__ +var _ m_WrappedHMAC.Dummy__ +var _ m_HKDF.Dummy__ +var _ m_WrappedHKDF.Dummy__ +var _ m_KdfCtr.Dummy__ +var _ m_AwsCryptographyPrimitivesOperations.Dummy__ +var _ m_AtomicPrimitives.Dummy__ +var _ m_ComAmazonawsDynamodbTypes.Dummy__ +var _ m_ComAmazonawsKmsTypes.Dummy__ +var _ m_Relations.Dummy__ +var _ m_Seq_MergeSort.Dummy__ +var _ m__Math.Dummy__ +var _ m_Seq.Dummy__ +var _ m__Unicode.Dummy__ +var _ m_Functions.Dummy__ +var _ m_Utf8EncodingForm.Dummy__ +var _ m_Utf16EncodingForm.Dummy__ +var _ m_UnicodeStrings.Dummy__ +var _ m_FileIO.Dummy__ +var _ m_GeneralInternals.Dummy__ +var _ m_MulInternalsNonlinear.Dummy__ +var _ m_MulInternals.Dummy__ +var _ m_Mul.Dummy__ +var _ m_ModInternalsNonlinear.Dummy__ +var _ m_DivInternalsNonlinear.Dummy__ +var _ m_ModInternals.Dummy__ +var _ m_DivInternals.Dummy__ +var _ m_DivMod.Dummy__ +var _ m_Power.Dummy__ +var _ m_Logarithm.Dummy__ +var _ m_StandardLibraryInterop.Dummy__ +var _ m_Streams.Dummy__ +var _ m_Sorting.Dummy__ +var _ m_HexStrings.Dummy__ +var _ m_GetOpt.Dummy__ +var _ m_FloatCompare.Dummy__ +var _ m_Base64.Dummy__ +var _ m_Base64Lemmas.Dummy__ +var _ m_Actions.Dummy__ +var _ m_AwsCryptographyKeyStoreTypes.Dummy__ +var _ m_AwsCryptographyMaterialProvidersTypes.Dummy__ +var _ m_AwsArnParsing.Dummy__ +var _ m_AwsKmsMrkMatchForDecrypt.Dummy__ +var _ m_AwsKmsUtils.Dummy__ +var _ m_KeyStoreErrorMessages.Dummy__ +var _ m_KmsArn.Dummy__ +var _ m_Structure.Dummy__ +var _ m_KMSKeystoreOperations.Dummy__ +var _ m_DDBKeystoreOperations.Dummy__ +var _ m_CreateKeys.Dummy__ +var _ m_CreateKeyStoreTable.Dummy__ +var _ m_GetKeys.Dummy__ +var _ m_AwsCryptographyKeyStoreOperations.Dummy__ +var _ m_Com_Amazonaws_Kms.Dummy__ +var _ m_Com_Amazonaws_Dynamodb.Dummy__ +var _ m_KeyStore.Dummy__ +var _ m_AlgorithmSuites.Dummy__ +var _ m_Materials.Dummy__ +var _ m_Keyring.Dummy__ +var _ m_MultiKeyring.Dummy__ +var _ m_AwsKmsMrkAreUnique.Dummy__ +var _ m_Constants.Dummy__ +var _ m_MaterialWrapping.Dummy__ +var _ m_CanonicalEncryptionContext.Dummy__ +var _ m_IntermediateKeyWrapping.Dummy__ +var _ m_EdkWrapping.Dummy__ +var _ m_ErrorMessages.Dummy__ +var _ m_AwsKmsKeyring.Dummy__ +var _ m_StrictMultiKeyring.Dummy__ +var _ m_AwsKmsDiscoveryKeyring.Dummy__ +var _ m_DiscoveryMultiKeyring.Dummy__ +var _ m_AwsKmsMrkDiscoveryKeyring.Dummy__ +var _ m_MrkAwareDiscoveryMultiKeyring.Dummy__ +var _ m_AwsKmsMrkKeyring.Dummy__ +var _ m_MrkAwareStrictMultiKeyring.Dummy__ +var _ m_LocalCMC.Dummy__ +var _ m_SynchronizedLocalCMC.Dummy__ +var _ m_StormTracker.Dummy__ +var _ m_StormTrackingCMC.Dummy__ +var _ m_CacheConstants.Dummy__ +var _ m_AwsKmsHierarchicalKeyring.Dummy__ +var _ m_AwsKmsRsaKeyring.Dummy__ +var _ m_EcdhEdkWrapping.Dummy__ +var _ m_RawECDHKeyring.Dummy__ +var _ m_AwsKmsEcdhKeyring.Dummy__ +var _ m_RawAESKeyring.Dummy__ +var _ m_RawRSAKeyring.Dummy__ +var _ m_CMM.Dummy__ +var _ m_Defaults.Dummy__ +var _ m_Commitment.Dummy__ +var _ m_DefaultCMM.Dummy__ + +type Dummy__ struct{} + +// Definition of class DefaultClientSupplier +type DefaultClientSupplier struct { + dummy byte +} + +func New_DefaultClientSupplier_() *DefaultClientSupplier { + _this := DefaultClientSupplier{} + + return &_this +} + +type CompanionStruct_DefaultClientSupplier_ struct { +} + +var Companion_DefaultClientSupplier_ = CompanionStruct_DefaultClientSupplier_{} + +func (_this *DefaultClientSupplier) Equals(other *DefaultClientSupplier) bool { + return _this == other +} + +func (_this *DefaultClientSupplier) EqualsGeneric(x interface{}) bool { + other, ok := x.(*DefaultClientSupplier) + return ok && _this.Equals(other) +} + +func (*DefaultClientSupplier) String() string { + return "DefaultClientSupplier.DefaultClientSupplier" +} + +func Type_DefaultClientSupplier_() _dafny.TypeDescriptor { + return type_DefaultClientSupplier_{} +} + +type type_DefaultClientSupplier_ struct { +} + +func (_this type_DefaultClientSupplier_) Default() interface{} { + return (*DefaultClientSupplier)(nil) +} + +func (_this type_DefaultClientSupplier_) String() string { + return "DefaultClientSupplier.DefaultClientSupplier" +} +func (_this *DefaultClientSupplier) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){m_AwsCryptographyMaterialProvidersTypes.Companion_IClientSupplier_.TraitID_} +} + +var _ m_AwsCryptographyMaterialProvidersTypes.IClientSupplier = &DefaultClientSupplier{} +var _ _dafny.TraitOffspring = &DefaultClientSupplier{} + +func (_this *DefaultClientSupplier) GetClient(input m_AwsCryptographyMaterialProvidersTypes.GetClientInput) m_Wrappers.Result { + var _out1 m_Wrappers.Result + _ = _out1 + _out1 = m_AwsCryptographyMaterialProvidersTypes.Companion_IClientSupplier_.GetClient(_this, input) + return _out1 +} +func (_this *DefaultClientSupplier) Ctor__() { + { + } +} +func (_this *DefaultClientSupplier) GetClient_k(input m_AwsCryptographyMaterialProvidersTypes.GetClientInput) m_Wrappers.Result { + { + var output m_Wrappers.Result = m_Wrappers.Result{} + _ = output + var _0_maybeClient m_Wrappers.Result + _ = _0_maybeClient + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_Com_Amazonaws_Kms.Companion_Default___.KMSClientForRegion((input).Dtor_region()) + _0_maybeClient = _out0 + output = (_0_maybeClient).MapFailure(func(coer130 func(m_ComAmazonawsKmsTypes.Error) m_AwsCryptographyMaterialProvidersTypes.Error) func(interface{}) interface{} { + return func(arg131 interface{}) interface{} { + return coer130(arg131.(m_ComAmazonawsKmsTypes.Error)) + } + }(func(_1_e m_ComAmazonawsKmsTypes.Error) m_AwsCryptographyMaterialProvidersTypes.Error { + return m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_ComAmazonawsKms_(_1_e) + })) + return output + return output + } +} + +// End of class DefaultClientSupplier diff --git a/customer-preview/mpl/Defaults/Defaults.go b/customer-preview/mpl/Defaults/Defaults.go new file mode 100644 index 000000000..1f8e827c1 --- /dev/null +++ b/customer-preview/mpl/Defaults/Defaults.go @@ -0,0 +1,269 @@ +// Package Defaults +// Dafny module Defaults compiled into Go + +package Defaults + +import ( + os "os" + + m_ComAmazonawsDynamodbTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/ComAmazonawsDynamodbTypes" + m_Com_Amazonaws_Dynamodb "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/Com_Amazonaws_Dynamodb" + m_ComAmazonawsKmsTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/ComAmazonawsKmsTypes" + m_Com_Amazonaws_Kms "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/Com_Amazonaws_Kms" + m_AlgorithmSuites "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AlgorithmSuites" + m_AwsArnParsing "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsArnParsing" + m_AwsCryptographyKeyStoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreOperations" + m_AwsCryptographyKeyStoreTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreTypes" + m_AwsCryptographyMaterialProvidersTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersTypes" + m_AwsKmsDiscoveryKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsDiscoveryKeyring" + m_AwsKmsEcdhKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsEcdhKeyring" + m_AwsKmsHierarchicalKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsHierarchicalKeyring" + m_AwsKmsKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsKeyring" + m_AwsKmsMrkAreUnique "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkAreUnique" + m_AwsKmsMrkDiscoveryKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkDiscoveryKeyring" + m_AwsKmsMrkKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkKeyring" + m_AwsKmsMrkMatchForDecrypt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkMatchForDecrypt" + m_AwsKmsRsaKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsRsaKeyring" + m_AwsKmsUtils "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsUtils" + m_CMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CMM" + m_CacheConstants "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CacheConstants" + m_CanonicalEncryptionContext "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CanonicalEncryptionContext" + m_Constants "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Constants" + m_CreateKeyStoreTable "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeyStoreTable" + m_CreateKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeys" + m_DDBKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DDBKeystoreOperations" + m_DiscoveryMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DiscoveryMultiKeyring" + m_EcdhEdkWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/EcdhEdkWrapping" + m_EdkWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/EdkWrapping" + m_ErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/ErrorMessages" + m_GetKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/GetKeys" + m_IntermediateKeyWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/IntermediateKeyWrapping" + m_KMSKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KMSKeystoreOperations" + m_KeyStore "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStore" + m_KeyStoreErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStoreErrorMessages" + m_Keyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Keyring" + m_KmsArn "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KmsArn" + m_LocalCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/LocalCMC" + m_MaterialWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MaterialWrapping" + m_Materials "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Materials" + m_MrkAwareDiscoveryMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MrkAwareDiscoveryMultiKeyring" + m_MrkAwareStrictMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MrkAwareStrictMultiKeyring" + m_MultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MultiKeyring" + m_RawAESKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawAESKeyring" + m_RawECDHKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawECDHKeyring" + m_RawRSAKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawRSAKeyring" + m_StormTracker "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StormTracker" + m_StormTrackingCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StormTrackingCMC" + m_StrictMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StrictMultiKeyring" + m_Structure "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Structure" + m_SynchronizedLocalCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/SynchronizedLocalCMC" + m_AtomicPrimitives "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AtomicPrimitives" + m_AwsCryptographyPrimitivesOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesOperations" + m_AwsCryptographyPrimitivesTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesTypes" + m_Digest "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Digest" + m_HKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/HKDF" + m_KdfCtr "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/KdfCtr" + m_Random "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Random" + m_WrappedHKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHKDF" + m_WrappedHMAC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHMAC" + m_Actions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Actions" + m_Base64 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64" + m_Base64Lemmas "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64Lemmas" + m_BoundedInts "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/BoundedInts" + m_DivInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternals" + m_DivInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternalsNonlinear" + m_DivMod "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivMod" + m_FileIO "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FileIO" + m_FloatCompare "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FloatCompare" + m_Functions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Functions" + m_GeneralInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GeneralInternals" + m_GetOpt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GetOpt" + m_HexStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/HexStrings" + m_Logarithm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Logarithm" + m__Math "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Math_" + m_ModInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternals" + m_ModInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternalsNonlinear" + m_Mul "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Mul" + m_MulInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternals" + m_MulInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternalsNonlinear" + m_Power "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Power" + m_Relations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Relations" + m_Seq "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq" + m_Seq_MergeSort "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq_MergeSort" + m_Sorting "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Sorting" + m_StandardLibrary "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary" + m_StandardLibraryInterop "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibraryInterop" + m_StandardLibrary_Sequence "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_Sequence" + m_StandardLibrary_String "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_String" + m_StandardLibrary_UInt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_UInt" + m_Streams "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Streams" + m_UnicodeStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UnicodeStrings" + m__Unicode "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Unicode_" + m_Utf16EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf16EncodingForm" + m_Utf8EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf8EncodingForm" + m_Wrappers "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers" + m__System "github.com/dafny-lang/DafnyRuntimeGo/v4/System_" + _dafny "github.com/dafny-lang/DafnyRuntimeGo/v4/dafny" +) + +var _ = os.Args +var _ _dafny.Dummy__ +var _ m__System.Dummy__ +var _ m_Wrappers.Dummy__ +var _ m_BoundedInts.Dummy__ +var _ m_StandardLibrary_UInt.Dummy__ +var _ m_StandardLibrary_Sequence.Dummy__ +var _ m_StandardLibrary_String.Dummy__ +var _ m_StandardLibrary.Dummy__ +var _ m_AwsCryptographyPrimitivesTypes.Dummy__ +var _ m_Random.Dummy__ +var _ m_Digest.Dummy__ +var _ m_WrappedHMAC.Dummy__ +var _ m_HKDF.Dummy__ +var _ m_WrappedHKDF.Dummy__ +var _ m_KdfCtr.Dummy__ +var _ m_AwsCryptographyPrimitivesOperations.Dummy__ +var _ m_AtomicPrimitives.Dummy__ +var _ m_ComAmazonawsDynamodbTypes.Dummy__ +var _ m_ComAmazonawsKmsTypes.Dummy__ +var _ m_Relations.Dummy__ +var _ m_Seq_MergeSort.Dummy__ +var _ m__Math.Dummy__ +var _ m_Seq.Dummy__ +var _ m__Unicode.Dummy__ +var _ m_Functions.Dummy__ +var _ m_Utf8EncodingForm.Dummy__ +var _ m_Utf16EncodingForm.Dummy__ +var _ m_UnicodeStrings.Dummy__ +var _ m_FileIO.Dummy__ +var _ m_GeneralInternals.Dummy__ +var _ m_MulInternalsNonlinear.Dummy__ +var _ m_MulInternals.Dummy__ +var _ m_Mul.Dummy__ +var _ m_ModInternalsNonlinear.Dummy__ +var _ m_DivInternalsNonlinear.Dummy__ +var _ m_ModInternals.Dummy__ +var _ m_DivInternals.Dummy__ +var _ m_DivMod.Dummy__ +var _ m_Power.Dummy__ +var _ m_Logarithm.Dummy__ +var _ m_StandardLibraryInterop.Dummy__ +var _ m_Streams.Dummy__ +var _ m_Sorting.Dummy__ +var _ m_HexStrings.Dummy__ +var _ m_GetOpt.Dummy__ +var _ m_FloatCompare.Dummy__ +var _ m_Base64.Dummy__ +var _ m_Base64Lemmas.Dummy__ +var _ m_Actions.Dummy__ +var _ m_AwsCryptographyKeyStoreTypes.Dummy__ +var _ m_AwsCryptographyMaterialProvidersTypes.Dummy__ +var _ m_AwsArnParsing.Dummy__ +var _ m_AwsKmsMrkMatchForDecrypt.Dummy__ +var _ m_AwsKmsUtils.Dummy__ +var _ m_KeyStoreErrorMessages.Dummy__ +var _ m_KmsArn.Dummy__ +var _ m_Structure.Dummy__ +var _ m_KMSKeystoreOperations.Dummy__ +var _ m_DDBKeystoreOperations.Dummy__ +var _ m_CreateKeys.Dummy__ +var _ m_CreateKeyStoreTable.Dummy__ +var _ m_GetKeys.Dummy__ +var _ m_AwsCryptographyKeyStoreOperations.Dummy__ +var _ m_Com_Amazonaws_Kms.Dummy__ +var _ m_Com_Amazonaws_Dynamodb.Dummy__ +var _ m_KeyStore.Dummy__ +var _ m_AlgorithmSuites.Dummy__ +var _ m_Materials.Dummy__ +var _ m_Keyring.Dummy__ +var _ m_MultiKeyring.Dummy__ +var _ m_AwsKmsMrkAreUnique.Dummy__ +var _ m_Constants.Dummy__ +var _ m_MaterialWrapping.Dummy__ +var _ m_CanonicalEncryptionContext.Dummy__ +var _ m_IntermediateKeyWrapping.Dummy__ +var _ m_EdkWrapping.Dummy__ +var _ m_ErrorMessages.Dummy__ +var _ m_AwsKmsKeyring.Dummy__ +var _ m_StrictMultiKeyring.Dummy__ +var _ m_AwsKmsDiscoveryKeyring.Dummy__ +var _ m_DiscoveryMultiKeyring.Dummy__ +var _ m_AwsKmsMrkDiscoveryKeyring.Dummy__ +var _ m_MrkAwareDiscoveryMultiKeyring.Dummy__ +var _ m_AwsKmsMrkKeyring.Dummy__ +var _ m_MrkAwareStrictMultiKeyring.Dummy__ +var _ m_LocalCMC.Dummy__ +var _ m_SynchronizedLocalCMC.Dummy__ +var _ m_StormTracker.Dummy__ +var _ m_StormTrackingCMC.Dummy__ +var _ m_CacheConstants.Dummy__ +var _ m_AwsKmsHierarchicalKeyring.Dummy__ +var _ m_AwsKmsRsaKeyring.Dummy__ +var _ m_EcdhEdkWrapping.Dummy__ +var _ m_RawECDHKeyring.Dummy__ +var _ m_AwsKmsEcdhKeyring.Dummy__ +var _ m_RawAESKeyring.Dummy__ +var _ m_RawRSAKeyring.Dummy__ +var _ m_CMM.Dummy__ + +type Dummy__ struct{} + +// Definition of class Default__ +type Default__ struct { + dummy byte +} + +func New_Default___() *Default__ { + _this := Default__{} + + return &_this +} + +type CompanionStruct_Default___ struct { +} + +var Companion_Default___ = CompanionStruct_Default___{} + +func (_this *Default__) Equals(other *Default__) bool { + return _this == other +} + +func (_this *Default__) EqualsGeneric(x interface{}) bool { + other, ok := x.(*Default__) + return ok && _this.Equals(other) +} + +func (*Default__) String() string { + return "Defaults.Default__" +} +func (_this *Default__) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = &Default__{} + +func (_static *CompanionStruct_Default___) GetAlgorithmSuiteForCommitmentPolicy(commitmentPolicy m_AwsCryptographyMaterialProvidersTypes.CommitmentPolicy) m_AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteId { + var _source0 m_AwsCryptographyMaterialProvidersTypes.CommitmentPolicy = commitmentPolicy + _ = _source0 + { + if _source0.Is_ESDK() { + var _0_c m_AwsCryptographyMaterialProvidersTypes.ESDKCommitmentPolicy = _source0.Get_().(m_AwsCryptographyMaterialProvidersTypes.CommitmentPolicy_ESDK).ESDK + _ = _0_c + var _source1 m_AwsCryptographyMaterialProvidersTypes.ESDKCommitmentPolicy = _0_c + _ = _source1 + { + if _source1.Is_FORBID__ENCRYPT__ALLOW__DECRYPT() { + return m_AwsCryptographyMaterialProvidersTypes.Companion_AlgorithmSuiteId_.Create_ESDK_(m_AwsCryptographyMaterialProvidersTypes.Companion_ESDKAlgorithmSuiteId_.Create_ALG__AES__256__GCM__IV12__TAG16__HKDF__SHA384__ECDSA__P384_()) + } + } + { + return m_AwsCryptographyMaterialProvidersTypes.Companion_AlgorithmSuiteId_.Create_ESDK_(m_AwsCryptographyMaterialProvidersTypes.Companion_ESDKAlgorithmSuiteId_.Create_ALG__AES__256__GCM__HKDF__SHA512__COMMIT__KEY__ECDSA__P384_()) + } + } + } + { + return m_AwsCryptographyMaterialProvidersTypes.Companion_AlgorithmSuiteId_.Create_DBE_(m_AwsCryptographyMaterialProvidersTypes.Companion_DBEAlgorithmSuiteId_.Create_ALG__AES__256__GCM__HKDF__SHA512__COMMIT__KEY__ECDSA__P384__SYMSIG__HMAC__SHA384_()) + } +} + +// End of class Default__ diff --git a/customer-preview/mpl/DiscoveryMultiKeyring/DiscoveryMultiKeyring.go b/customer-preview/mpl/DiscoveryMultiKeyring/DiscoveryMultiKeyring.go new file mode 100644 index 000000000..7ee9944df --- /dev/null +++ b/customer-preview/mpl/DiscoveryMultiKeyring/DiscoveryMultiKeyring.go @@ -0,0 +1,267 @@ +// Package DiscoveryMultiKeyring +// Dafny module DiscoveryMultiKeyring compiled into Go + +package DiscoveryMultiKeyring + +import ( + os "os" + + m_ComAmazonawsDynamodbTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/ComAmazonawsDynamodbTypes" + m_Com_Amazonaws_Dynamodb "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/Com_Amazonaws_Dynamodb" + m_ComAmazonawsKmsTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/ComAmazonawsKmsTypes" + m_Com_Amazonaws_Kms "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/Com_Amazonaws_Kms" + m_AlgorithmSuites "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AlgorithmSuites" + m_AwsArnParsing "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsArnParsing" + m_AwsCryptographyKeyStoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreOperations" + m_AwsCryptographyKeyStoreTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreTypes" + m_AwsCryptographyMaterialProvidersTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersTypes" + m_AwsKmsDiscoveryKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsDiscoveryKeyring" + m_AwsKmsKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsKeyring" + m_AwsKmsMrkAreUnique "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkAreUnique" + m_AwsKmsMrkMatchForDecrypt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkMatchForDecrypt" + m_AwsKmsUtils "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsUtils" + m_CanonicalEncryptionContext "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CanonicalEncryptionContext" + m_Constants "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Constants" + m_CreateKeyStoreTable "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeyStoreTable" + m_CreateKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeys" + m_DDBKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DDBKeystoreOperations" + m_EdkWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/EdkWrapping" + m_ErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/ErrorMessages" + m_GetKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/GetKeys" + m_IntermediateKeyWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/IntermediateKeyWrapping" + m_KMSKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KMSKeystoreOperations" + m_KeyStore "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStore" + m_KeyStoreErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStoreErrorMessages" + m_Keyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Keyring" + m_KmsArn "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KmsArn" + m_MaterialWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MaterialWrapping" + m_Materials "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Materials" + m_MultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MultiKeyring" + m_StrictMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StrictMultiKeyring" + m_Structure "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Structure" + m_AtomicPrimitives "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AtomicPrimitives" + m_AwsCryptographyPrimitivesOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesOperations" + m_AwsCryptographyPrimitivesTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesTypes" + m_Digest "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Digest" + m_HKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/HKDF" + m_KdfCtr "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/KdfCtr" + m_Random "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Random" + m_WrappedHKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHKDF" + m_WrappedHMAC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHMAC" + m_Actions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Actions" + m_Base64 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64" + m_Base64Lemmas "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64Lemmas" + m_BoundedInts "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/BoundedInts" + m_DivInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternals" + m_DivInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternalsNonlinear" + m_DivMod "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivMod" + m_FileIO "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FileIO" + m_FloatCompare "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FloatCompare" + m_Functions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Functions" + m_GeneralInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GeneralInternals" + m_GetOpt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GetOpt" + m_HexStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/HexStrings" + m_Logarithm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Logarithm" + m__Math "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Math_" + m_ModInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternals" + m_ModInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternalsNonlinear" + m_Mul "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Mul" + m_MulInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternals" + m_MulInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternalsNonlinear" + m_Power "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Power" + m_Relations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Relations" + m_Seq "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq" + m_Seq_MergeSort "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq_MergeSort" + m_Sorting "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Sorting" + m_StandardLibrary "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary" + m_StandardLibraryInterop "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibraryInterop" + m_StandardLibrary_Sequence "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_Sequence" + m_StandardLibrary_String "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_String" + m_StandardLibrary_UInt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_UInt" + m_Streams "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Streams" + m_UnicodeStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UnicodeStrings" + m__Unicode "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Unicode_" + m_Utf16EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf16EncodingForm" + m_Utf8EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf8EncodingForm" + m_Wrappers "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers" + m__System "github.com/dafny-lang/DafnyRuntimeGo/v4/System_" + _dafny "github.com/dafny-lang/DafnyRuntimeGo/v4/dafny" +) + +var _ = os.Args +var _ _dafny.Dummy__ +var _ m__System.Dummy__ +var _ m_Wrappers.Dummy__ +var _ m_BoundedInts.Dummy__ +var _ m_StandardLibrary_UInt.Dummy__ +var _ m_StandardLibrary_Sequence.Dummy__ +var _ m_StandardLibrary_String.Dummy__ +var _ m_StandardLibrary.Dummy__ +var _ m_AwsCryptographyPrimitivesTypes.Dummy__ +var _ m_Random.Dummy__ +var _ m_Digest.Dummy__ +var _ m_WrappedHMAC.Dummy__ +var _ m_HKDF.Dummy__ +var _ m_WrappedHKDF.Dummy__ +var _ m_KdfCtr.Dummy__ +var _ m_AwsCryptographyPrimitivesOperations.Dummy__ +var _ m_AtomicPrimitives.Dummy__ +var _ m_ComAmazonawsDynamodbTypes.Dummy__ +var _ m_ComAmazonawsKmsTypes.Dummy__ +var _ m_Relations.Dummy__ +var _ m_Seq_MergeSort.Dummy__ +var _ m__Math.Dummy__ +var _ m_Seq.Dummy__ +var _ m__Unicode.Dummy__ +var _ m_Functions.Dummy__ +var _ m_Utf8EncodingForm.Dummy__ +var _ m_Utf16EncodingForm.Dummy__ +var _ m_UnicodeStrings.Dummy__ +var _ m_FileIO.Dummy__ +var _ m_GeneralInternals.Dummy__ +var _ m_MulInternalsNonlinear.Dummy__ +var _ m_MulInternals.Dummy__ +var _ m_Mul.Dummy__ +var _ m_ModInternalsNonlinear.Dummy__ +var _ m_DivInternalsNonlinear.Dummy__ +var _ m_ModInternals.Dummy__ +var _ m_DivInternals.Dummy__ +var _ m_DivMod.Dummy__ +var _ m_Power.Dummy__ +var _ m_Logarithm.Dummy__ +var _ m_StandardLibraryInterop.Dummy__ +var _ m_Streams.Dummy__ +var _ m_Sorting.Dummy__ +var _ m_HexStrings.Dummy__ +var _ m_GetOpt.Dummy__ +var _ m_FloatCompare.Dummy__ +var _ m_Base64.Dummy__ +var _ m_Base64Lemmas.Dummy__ +var _ m_Actions.Dummy__ +var _ m_AwsCryptographyKeyStoreTypes.Dummy__ +var _ m_AwsCryptographyMaterialProvidersTypes.Dummy__ +var _ m_AwsArnParsing.Dummy__ +var _ m_AwsKmsMrkMatchForDecrypt.Dummy__ +var _ m_AwsKmsUtils.Dummy__ +var _ m_KeyStoreErrorMessages.Dummy__ +var _ m_KmsArn.Dummy__ +var _ m_Structure.Dummy__ +var _ m_KMSKeystoreOperations.Dummy__ +var _ m_DDBKeystoreOperations.Dummy__ +var _ m_CreateKeys.Dummy__ +var _ m_CreateKeyStoreTable.Dummy__ +var _ m_GetKeys.Dummy__ +var _ m_AwsCryptographyKeyStoreOperations.Dummy__ +var _ m_Com_Amazonaws_Kms.Dummy__ +var _ m_Com_Amazonaws_Dynamodb.Dummy__ +var _ m_KeyStore.Dummy__ +var _ m_AlgorithmSuites.Dummy__ +var _ m_Materials.Dummy__ +var _ m_Keyring.Dummy__ +var _ m_MultiKeyring.Dummy__ +var _ m_AwsKmsMrkAreUnique.Dummy__ +var _ m_Constants.Dummy__ +var _ m_MaterialWrapping.Dummy__ +var _ m_CanonicalEncryptionContext.Dummy__ +var _ m_IntermediateKeyWrapping.Dummy__ +var _ m_EdkWrapping.Dummy__ +var _ m_ErrorMessages.Dummy__ +var _ m_AwsKmsKeyring.Dummy__ +var _ m_StrictMultiKeyring.Dummy__ +var _ m_AwsKmsDiscoveryKeyring.Dummy__ + +type Dummy__ struct{} + +// Definition of class Default__ +type Default__ struct { + dummy byte +} + +func New_Default___() *Default__ { + _this := Default__{} + + return &_this +} + +type CompanionStruct_Default___ struct { +} + +var Companion_Default___ = CompanionStruct_Default___{} + +func (_this *Default__) Equals(other *Default__) bool { + return _this == other +} + +func (_this *Default__) EqualsGeneric(x interface{}) bool { + other, ok := x.(*Default__) + return ok && _this.Equals(other) +} + +func (*Default__) String() string { + return "DiscoveryMultiKeyring.Default__" +} +func (_this *Default__) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = &Default__{} + +func (_static *CompanionStruct_Default___) DiscoveryMultiKeyring(regions _dafny.Sequence, discoveryFilter m_Wrappers.Option, clientSupplier m_AwsCryptographyMaterialProvidersTypes.IClientSupplier, grantTokens m_Wrappers.Option) m_Wrappers.Result { + var output m_Wrappers.Result = m_Wrappers.Result{} + _ = output + var _0_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _0_valueOrError0 + _0_valueOrError0 = m_Wrappers.Companion_Default___.Need((_dafny.IntOfUint32((regions).Cardinality())).Sign() == 1, m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.SeqOfString("No regions passed."))) + if (_0_valueOrError0).IsFailure() { + output = (_0_valueOrError0).PropagateFailure() + return output + } + var _1_valueOrError1 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _1_valueOrError1 + _1_valueOrError1 = m_Wrappers.Companion_Default___.Need((m_Seq.Companion_Default___.IndexOfOption(regions, _dafny.SeqOfString(""))).Is_None(), m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.SeqOfString("Empty string is not a valid region."))) + if (_1_valueOrError1).IsFailure() { + output = (_1_valueOrError1).PropagateFailure() + return output + } + var _2_children _dafny.Sequence + _ = _2_children + _2_children = _dafny.SeqOf() + var _hi0 _dafny.Int = _dafny.IntOfUint32((regions).Cardinality()) + _ = _hi0 + for _3_i := _dafny.Zero; _3_i.Cmp(_hi0) < 0; _3_i = _3_i.Plus(_dafny.One) { + var _4_region _dafny.Sequence + _ = _4_region + _4_region = (regions).Select((_3_i).Uint32()).(_dafny.Sequence) + var _5_valueOrError2 m_Wrappers.Result = m_Wrappers.Result{} + _ = _5_valueOrError2 + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = (clientSupplier).GetClient(m_AwsCryptographyMaterialProvidersTypes.Companion_GetClientInput_.Create_GetClientInput_(_4_region)) + _5_valueOrError2 = _out0 + if (_5_valueOrError2).IsFailure() { + output = (_5_valueOrError2).PropagateFailure() + return output + } + var _6_client m_ComAmazonawsKmsTypes.IKMSClient + _ = _6_client + _6_client = m_ComAmazonawsKmsTypes.Companion_IKMSClient_.CastTo_((_5_valueOrError2).Extract()) + var _7_keyring *m_AwsKmsDiscoveryKeyring.AwsKmsDiscoveryKeyring + _ = _7_keyring + var _nw0 *m_AwsKmsDiscoveryKeyring.AwsKmsDiscoveryKeyring = m_AwsKmsDiscoveryKeyring.New_AwsKmsDiscoveryKeyring_() + _ = _nw0 + _nw0.Ctor__(_6_client, discoveryFilter, (grantTokens).UnwrapOr(_dafny.SeqOf()).(_dafny.Sequence)) + _7_keyring = _nw0 + _2_children = _dafny.Companion_Sequence_.Concatenate(_2_children, _dafny.SeqOf(_7_keyring)) + } + var _8_keyring *m_MultiKeyring.MultiKeyring + _ = _8_keyring + var _nw1 *m_MultiKeyring.MultiKeyring = m_MultiKeyring.New_MultiKeyring_() + _ = _nw1 + _nw1.Ctor__(m_Wrappers.Companion_Option_.Create_None_(), _2_children) + _8_keyring = _nw1 + output = m_Wrappers.Companion_Result_.Create_Success_(_8_keyring) + return output + return output +} + +// End of class Default__ diff --git a/customer-preview/mpl/EcdhEdkWrapping/EcdhEdkWrapping.go b/customer-preview/mpl/EcdhEdkWrapping/EcdhEdkWrapping.go new file mode 100644 index 000000000..7b0026eba --- /dev/null +++ b/customer-preview/mpl/EcdhEdkWrapping/EcdhEdkWrapping.go @@ -0,0 +1,1100 @@ +// Package EcdhEdkWrapping +// Dafny module EcdhEdkWrapping compiled into Go + +package EcdhEdkWrapping + +import ( + os "os" + + m_ComAmazonawsDynamodbTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/ComAmazonawsDynamodbTypes" + m_Com_Amazonaws_Dynamodb "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/Com_Amazonaws_Dynamodb" + m_ComAmazonawsKmsTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/ComAmazonawsKmsTypes" + m_Com_Amazonaws_Kms "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/Com_Amazonaws_Kms" + m_AlgorithmSuites "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AlgorithmSuites" + m_AwsArnParsing "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsArnParsing" + m_AwsCryptographyKeyStoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreOperations" + m_AwsCryptographyKeyStoreTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreTypes" + m_AwsCryptographyMaterialProvidersTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersTypes" + m_AwsKmsDiscoveryKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsDiscoveryKeyring" + m_AwsKmsHierarchicalKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsHierarchicalKeyring" + m_AwsKmsKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsKeyring" + m_AwsKmsMrkAreUnique "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkAreUnique" + m_AwsKmsMrkDiscoveryKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkDiscoveryKeyring" + m_AwsKmsMrkKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkKeyring" + m_AwsKmsMrkMatchForDecrypt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkMatchForDecrypt" + m_AwsKmsRsaKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsRsaKeyring" + m_AwsKmsUtils "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsUtils" + m_CacheConstants "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CacheConstants" + m_CanonicalEncryptionContext "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CanonicalEncryptionContext" + m_Constants "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Constants" + m_CreateKeyStoreTable "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeyStoreTable" + m_CreateKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeys" + m_DDBKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DDBKeystoreOperations" + m_DiscoveryMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DiscoveryMultiKeyring" + m_EdkWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/EdkWrapping" + m_ErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/ErrorMessages" + m_GetKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/GetKeys" + m_IntermediateKeyWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/IntermediateKeyWrapping" + m_KMSKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KMSKeystoreOperations" + m_KeyStore "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStore" + m_KeyStoreErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStoreErrorMessages" + m_Keyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Keyring" + m_KmsArn "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KmsArn" + m_LocalCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/LocalCMC" + m_MaterialWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MaterialWrapping" + m_Materials "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Materials" + m_MrkAwareDiscoveryMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MrkAwareDiscoveryMultiKeyring" + m_MrkAwareStrictMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MrkAwareStrictMultiKeyring" + m_MultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MultiKeyring" + m_StormTracker "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StormTracker" + m_StormTrackingCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StormTrackingCMC" + m_StrictMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StrictMultiKeyring" + m_Structure "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Structure" + m_SynchronizedLocalCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/SynchronizedLocalCMC" + m_AtomicPrimitives "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AtomicPrimitives" + m_AwsCryptographyPrimitivesOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesOperations" + m_AwsCryptographyPrimitivesTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesTypes" + m_Digest "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Digest" + m_HKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/HKDF" + m_KdfCtr "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/KdfCtr" + m_Random "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Random" + m_WrappedHKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHKDF" + m_WrappedHMAC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHMAC" + m_Actions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Actions" + m_Base64 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64" + m_Base64Lemmas "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64Lemmas" + m_BoundedInts "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/BoundedInts" + m_DivInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternals" + m_DivInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternalsNonlinear" + m_DivMod "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivMod" + m_FileIO "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FileIO" + m_FloatCompare "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FloatCompare" + m_Functions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Functions" + m_GeneralInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GeneralInternals" + m_GetOpt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GetOpt" + m_HexStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/HexStrings" + m_Logarithm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Logarithm" + m__Math "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Math_" + m_ModInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternals" + m_ModInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternalsNonlinear" + m_Mul "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Mul" + m_MulInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternals" + m_MulInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternalsNonlinear" + m_Power "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Power" + m_Relations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Relations" + m_Seq "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq" + m_Seq_MergeSort "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq_MergeSort" + m_Sorting "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Sorting" + m_StandardLibrary "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary" + m_StandardLibraryInterop "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibraryInterop" + m_StandardLibrary_Sequence "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_Sequence" + m_StandardLibrary_String "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_String" + m_StandardLibrary_UInt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_UInt" + m_Streams "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Streams" + m_UTF8 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UTF8" + m_UnicodeStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UnicodeStrings" + m__Unicode "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Unicode_" + m_Utf16EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf16EncodingForm" + m_Utf8EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf8EncodingForm" + m_Wrappers "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers" + m__System "github.com/dafny-lang/DafnyRuntimeGo/v4/System_" + _dafny "github.com/dafny-lang/DafnyRuntimeGo/v4/dafny" +) + +var _ = os.Args +var _ _dafny.Dummy__ +var _ m__System.Dummy__ +var _ m_Wrappers.Dummy__ +var _ m_BoundedInts.Dummy__ +var _ m_StandardLibrary_UInt.Dummy__ +var _ m_StandardLibrary_Sequence.Dummy__ +var _ m_StandardLibrary_String.Dummy__ +var _ m_StandardLibrary.Dummy__ +var _ m_AwsCryptographyPrimitivesTypes.Dummy__ +var _ m_Random.Dummy__ +var _ m_Digest.Dummy__ +var _ m_WrappedHMAC.Dummy__ +var _ m_HKDF.Dummy__ +var _ m_WrappedHKDF.Dummy__ +var _ m_KdfCtr.Dummy__ +var _ m_AwsCryptographyPrimitivesOperations.Dummy__ +var _ m_AtomicPrimitives.Dummy__ +var _ m_ComAmazonawsDynamodbTypes.Dummy__ +var _ m_ComAmazonawsKmsTypes.Dummy__ +var _ m_Relations.Dummy__ +var _ m_Seq_MergeSort.Dummy__ +var _ m__Math.Dummy__ +var _ m_Seq.Dummy__ +var _ m__Unicode.Dummy__ +var _ m_Functions.Dummy__ +var _ m_Utf8EncodingForm.Dummy__ +var _ m_Utf16EncodingForm.Dummy__ +var _ m_UnicodeStrings.Dummy__ +var _ m_FileIO.Dummy__ +var _ m_GeneralInternals.Dummy__ +var _ m_MulInternalsNonlinear.Dummy__ +var _ m_MulInternals.Dummy__ +var _ m_Mul.Dummy__ +var _ m_ModInternalsNonlinear.Dummy__ +var _ m_DivInternalsNonlinear.Dummy__ +var _ m_ModInternals.Dummy__ +var _ m_DivInternals.Dummy__ +var _ m_DivMod.Dummy__ +var _ m_Power.Dummy__ +var _ m_Logarithm.Dummy__ +var _ m_StandardLibraryInterop.Dummy__ +var _ m_Streams.Dummy__ +var _ m_Sorting.Dummy__ +var _ m_HexStrings.Dummy__ +var _ m_GetOpt.Dummy__ +var _ m_FloatCompare.Dummy__ +var _ m_Base64.Dummy__ +var _ m_Base64Lemmas.Dummy__ +var _ m_Actions.Dummy__ +var _ m_AwsCryptographyKeyStoreTypes.Dummy__ +var _ m_AwsCryptographyMaterialProvidersTypes.Dummy__ +var _ m_AwsArnParsing.Dummy__ +var _ m_AwsKmsMrkMatchForDecrypt.Dummy__ +var _ m_AwsKmsUtils.Dummy__ +var _ m_KeyStoreErrorMessages.Dummy__ +var _ m_KmsArn.Dummy__ +var _ m_Structure.Dummy__ +var _ m_KMSKeystoreOperations.Dummy__ +var _ m_DDBKeystoreOperations.Dummy__ +var _ m_CreateKeys.Dummy__ +var _ m_CreateKeyStoreTable.Dummy__ +var _ m_GetKeys.Dummy__ +var _ m_AwsCryptographyKeyStoreOperations.Dummy__ +var _ m_Com_Amazonaws_Kms.Dummy__ +var _ m_Com_Amazonaws_Dynamodb.Dummy__ +var _ m_KeyStore.Dummy__ +var _ m_AlgorithmSuites.Dummy__ +var _ m_Materials.Dummy__ +var _ m_Keyring.Dummy__ +var _ m_MultiKeyring.Dummy__ +var _ m_AwsKmsMrkAreUnique.Dummy__ +var _ m_Constants.Dummy__ +var _ m_MaterialWrapping.Dummy__ +var _ m_CanonicalEncryptionContext.Dummy__ +var _ m_IntermediateKeyWrapping.Dummy__ +var _ m_EdkWrapping.Dummy__ +var _ m_ErrorMessages.Dummy__ +var _ m_AwsKmsKeyring.Dummy__ +var _ m_StrictMultiKeyring.Dummy__ +var _ m_AwsKmsDiscoveryKeyring.Dummy__ +var _ m_DiscoveryMultiKeyring.Dummy__ +var _ m_AwsKmsMrkDiscoveryKeyring.Dummy__ +var _ m_MrkAwareDiscoveryMultiKeyring.Dummy__ +var _ m_AwsKmsMrkKeyring.Dummy__ +var _ m_MrkAwareStrictMultiKeyring.Dummy__ +var _ m_LocalCMC.Dummy__ +var _ m_SynchronizedLocalCMC.Dummy__ +var _ m_StormTracker.Dummy__ +var _ m_StormTrackingCMC.Dummy__ +var _ m_CacheConstants.Dummy__ +var _ m_AwsKmsHierarchicalKeyring.Dummy__ +var _ m_AwsKmsRsaKeyring.Dummy__ + +type Dummy__ struct{} + +// Definition of class Default__ +type Default__ struct { + dummy byte +} + +func New_Default___() *Default__ { + _this := Default__{} + + return &_this +} + +type CompanionStruct_Default___ struct { +} + +var Companion_Default___ = CompanionStruct_Default___{} + +func (_this *Default__) Equals(other *Default__) bool { + return _this == other +} + +func (_this *Default__) EqualsGeneric(x interface{}) bool { + other, ok := x.(*Default__) + return ok && _this.Equals(other) +} + +func (*Default__) String() string { + return "EcdhEdkWrapping.Default__" +} +func (_this *Default__) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = &Default__{} + +func (_static *CompanionStruct_Default___) DeriveSharedKeyingMaterial(sharedSecret _dafny.Sequence, fixedInfo _dafny.Sequence, salt _dafny.Sequence, crypto *m_AtomicPrimitives.AtomicPrimitivesClient) m_Wrappers.Result { + var res m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = res + var _0_maybeDerivedKeyingMaterial m_Wrappers.Result + _ = _0_maybeDerivedKeyingMaterial + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = (crypto).KdfCounterMode(m_AwsCryptographyPrimitivesTypes.Companion_KdfCtrInput_.Create_KdfCtrInput_(m_AwsCryptographyPrimitivesTypes.Companion_DigestAlgorithm_.Create_SHA__384_(), sharedSecret, m_Constants.Companion_Default___.KDF__EXPECTED__LEN(), m_Wrappers.Companion_Option_.Create_Some_(fixedInfo), m_Wrappers.Companion_Option_.Create_Some_(salt))) + _0_maybeDerivedKeyingMaterial = _out0 + var _1_valueOrError0 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = _1_valueOrError0 + _1_valueOrError0 = (_0_maybeDerivedKeyingMaterial).MapFailure(func(coer102 func(m_AwsCryptographyPrimitivesTypes.Error) m_AwsCryptographyMaterialProvidersTypes.Error) func(interface{}) interface{} { + return func(arg103 interface{}) interface{} { + return coer102(arg103.(m_AwsCryptographyPrimitivesTypes.Error)) + } + }(func(_2_e m_AwsCryptographyPrimitivesTypes.Error) m_AwsCryptographyMaterialProvidersTypes.Error { + return m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographyPrimitives_(_2_e) + })) + if (_1_valueOrError0).IsFailure() { + res = (_1_valueOrError0).PropagateFailure() + return res + } + var _3_derivedKeyingMaterial _dafny.Sequence + _ = _3_derivedKeyingMaterial + _3_derivedKeyingMaterial = (_1_valueOrError0).Extract().(_dafny.Sequence) + res = m_Wrappers.Companion_Result_.Create_Success_(_3_derivedKeyingMaterial) + return res +} +func (_static *CompanionStruct_Default___) SerializeFixedInfo(ecdhKeyDerivationUtf8 _dafny.Sequence, curveSpecUtf8 _dafny.Sequence, senderPublicKey _dafny.Sequence, recipientPublicKey _dafny.Sequence, canonicalizedEC _dafny.Sequence, keyringVersion _dafny.Sequence) _dafny.Sequence { + return _dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(ecdhKeyDerivationUtf8, m_Constants.Companion_Default___.ECDH__KDF__DELIMETER()), curveSpecUtf8), m_Constants.Companion_Default___.ECDH__KDF__DELIMETER()), m_Constants.Companion_Default___.ECDH__KDF__PRF__NAME()), m_Constants.Companion_Default___.ECDH__KDF__DELIMETER()), senderPublicKey), recipientPublicKey), m_Constants.Companion_Default___.ECDH__KDF__DELIMETER()), keyringVersion), m_Constants.Companion_Default___.ECDH__KDF__DELIMETER()), canonicalizedEC) +} +func (_static *CompanionStruct_Default___) CurveSpecTypeToString(c m_AwsCryptographyPrimitivesTypes.ECDHCurveSpec) _dafny.Sequence { + var _source0 m_AwsCryptographyPrimitivesTypes.ECDHCurveSpec = c + _ = _source0 + { + if _source0.Is_ECC__NIST__P256() { + return _dafny.SeqOfString("p256") + } + } + { + if _source0.Is_ECC__NIST__P384() { + return _dafny.SeqOfString("p384") + } + } + { + if _source0.Is_ECC__NIST__P521() { + return _dafny.SeqOfString("p521") + } + } + { + return _dafny.SeqOfString("sm2") + } +} +func (_static *CompanionStruct_Default___) E(s _dafny.Sequence) m_AwsCryptographyMaterialProvidersTypes.Error { + return m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(s) +} + +// End of class Default__ + +// Definition of datatype EcdhUnwrapInfo +type EcdhUnwrapInfo struct { + Data_EcdhUnwrapInfo_ +} + +func (_this EcdhUnwrapInfo) Get_() Data_EcdhUnwrapInfo_ { + return _this.Data_EcdhUnwrapInfo_ +} + +type Data_EcdhUnwrapInfo_ interface { + isEcdhUnwrapInfo() +} + +type CompanionStruct_EcdhUnwrapInfo_ struct { +} + +var Companion_EcdhUnwrapInfo_ = CompanionStruct_EcdhUnwrapInfo_{} + +type EcdhUnwrapInfo_EcdhUnwrapInfo struct { +} + +func (EcdhUnwrapInfo_EcdhUnwrapInfo) isEcdhUnwrapInfo() {} + +func (CompanionStruct_EcdhUnwrapInfo_) Create_EcdhUnwrapInfo_() EcdhUnwrapInfo { + return EcdhUnwrapInfo{EcdhUnwrapInfo_EcdhUnwrapInfo{}} +} + +func (_this EcdhUnwrapInfo) Is_EcdhUnwrapInfo() bool { + _, ok := _this.Get_().(EcdhUnwrapInfo_EcdhUnwrapInfo) + return ok +} + +func (CompanionStruct_EcdhUnwrapInfo_) Default() EcdhUnwrapInfo { + return Companion_EcdhUnwrapInfo_.Create_EcdhUnwrapInfo_() +} + +func (_ CompanionStruct_EcdhUnwrapInfo_) AllSingletonConstructors() _dafny.Iterator { + i := -1 + return func() (interface{}, bool) { + i++ + switch i { + case 0: + return Companion_EcdhUnwrapInfo_.Create_EcdhUnwrapInfo_(), true + default: + return EcdhUnwrapInfo{}, false + } + } +} + +func (_this EcdhUnwrapInfo) String() string { + switch _this.Get_().(type) { + case nil: + return "null" + case EcdhUnwrapInfo_EcdhUnwrapInfo: + { + return "EcdhEdkWrapping.EcdhUnwrapInfo.EcdhUnwrapInfo" + } + default: + { + return "" + } + } +} + +func (_this EcdhUnwrapInfo) Equals(other EcdhUnwrapInfo) bool { + switch _this.Get_().(type) { + case EcdhUnwrapInfo_EcdhUnwrapInfo: + { + _, ok := other.Get_().(EcdhUnwrapInfo_EcdhUnwrapInfo) + return ok + } + default: + { + return false // unexpected + } + } +} + +func (_this EcdhUnwrapInfo) EqualsGeneric(other interface{}) bool { + typed, ok := other.(EcdhUnwrapInfo) + return ok && _this.Equals(typed) +} + +func Type_EcdhUnwrapInfo_() _dafny.TypeDescriptor { + return type_EcdhUnwrapInfo_{} +} + +type type_EcdhUnwrapInfo_ struct { +} + +func (_this type_EcdhUnwrapInfo_) Default() interface{} { + return Companion_EcdhUnwrapInfo_.Default() +} + +func (_this type_EcdhUnwrapInfo_) String() string { + return "EcdhEdkWrapping.EcdhUnwrapInfo" +} +func (_this EcdhUnwrapInfo) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = EcdhUnwrapInfo{} + +// End of datatype EcdhUnwrapInfo + +// Definition of datatype EcdhWrapInfo +type EcdhWrapInfo struct { + Data_EcdhWrapInfo_ +} + +func (_this EcdhWrapInfo) Get_() Data_EcdhWrapInfo_ { + return _this.Data_EcdhWrapInfo_ +} + +type Data_EcdhWrapInfo_ interface { + isEcdhWrapInfo() +} + +type CompanionStruct_EcdhWrapInfo_ struct { +} + +var Companion_EcdhWrapInfo_ = CompanionStruct_EcdhWrapInfo_{} + +type EcdhWrapInfo_EcdhWrapInfo struct { +} + +func (EcdhWrapInfo_EcdhWrapInfo) isEcdhWrapInfo() {} + +func (CompanionStruct_EcdhWrapInfo_) Create_EcdhWrapInfo_() EcdhWrapInfo { + return EcdhWrapInfo{EcdhWrapInfo_EcdhWrapInfo{}} +} + +func (_this EcdhWrapInfo) Is_EcdhWrapInfo() bool { + _, ok := _this.Get_().(EcdhWrapInfo_EcdhWrapInfo) + return ok +} + +func (CompanionStruct_EcdhWrapInfo_) Default() EcdhWrapInfo { + return Companion_EcdhWrapInfo_.Create_EcdhWrapInfo_() +} + +func (_ CompanionStruct_EcdhWrapInfo_) AllSingletonConstructors() _dafny.Iterator { + i := -1 + return func() (interface{}, bool) { + i++ + switch i { + case 0: + return Companion_EcdhWrapInfo_.Create_EcdhWrapInfo_(), true + default: + return EcdhWrapInfo{}, false + } + } +} + +func (_this EcdhWrapInfo) String() string { + switch _this.Get_().(type) { + case nil: + return "null" + case EcdhWrapInfo_EcdhWrapInfo: + { + return "EcdhEdkWrapping.EcdhWrapInfo.EcdhWrapInfo" + } + default: + { + return "" + } + } +} + +func (_this EcdhWrapInfo) Equals(other EcdhWrapInfo) bool { + switch _this.Get_().(type) { + case EcdhWrapInfo_EcdhWrapInfo: + { + _, ok := other.Get_().(EcdhWrapInfo_EcdhWrapInfo) + return ok + } + default: + { + return false // unexpected + } + } +} + +func (_this EcdhWrapInfo) EqualsGeneric(other interface{}) bool { + typed, ok := other.(EcdhWrapInfo) + return ok && _this.Equals(typed) +} + +func Type_EcdhWrapInfo_() _dafny.TypeDescriptor { + return type_EcdhWrapInfo_{} +} + +type type_EcdhWrapInfo_ struct { +} + +func (_this type_EcdhWrapInfo_) Default() interface{} { + return Companion_EcdhWrapInfo_.Default() +} + +func (_this type_EcdhWrapInfo_) String() string { + return "EcdhEdkWrapping.EcdhWrapInfo" +} +func (_this EcdhWrapInfo) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = EcdhWrapInfo{} + +// End of datatype EcdhWrapInfo + +// Definition of class EcdhUnwrap +type EcdhUnwrap struct { + _senderPublicKey _dafny.Sequence + _recipientPublicKey _dafny.Sequence + _sharedSecret _dafny.Sequence + _keyringVersion _dafny.Sequence + _curveSpec m_AwsCryptographyPrimitivesTypes.ECDHCurveSpec + _crypto *m_AtomicPrimitives.AtomicPrimitivesClient +} + +func New_EcdhUnwrap_() *EcdhUnwrap { + _this := EcdhUnwrap{} + + _this._senderPublicKey = _dafny.EmptySeq + _this._recipientPublicKey = _dafny.EmptySeq + _this._sharedSecret = _dafny.EmptySeq + _this._keyringVersion = _dafny.EmptySeq + _this._curveSpec = m_AwsCryptographyPrimitivesTypes.Companion_ECDHCurveSpec_.Default() + _this._crypto = (*m_AtomicPrimitives.AtomicPrimitivesClient)(nil) + return &_this +} + +type CompanionStruct_EcdhUnwrap_ struct { +} + +var Companion_EcdhUnwrap_ = CompanionStruct_EcdhUnwrap_{} + +func (_this *EcdhUnwrap) Equals(other *EcdhUnwrap) bool { + return _this == other +} + +func (_this *EcdhUnwrap) EqualsGeneric(x interface{}) bool { + other, ok := x.(*EcdhUnwrap) + return ok && _this.Equals(other) +} + +func (*EcdhUnwrap) String() string { + return "EcdhEdkWrapping.EcdhUnwrap" +} + +func Type_EcdhUnwrap_() _dafny.TypeDescriptor { + return type_EcdhUnwrap_{} +} + +type type_EcdhUnwrap_ struct { +} + +func (_this type_EcdhUnwrap_) Default() interface{} { + return (*EcdhUnwrap)(nil) +} + +func (_this type_EcdhUnwrap_) String() string { + return "EcdhEdkWrapping.EcdhUnwrap" +} +func (_this *EcdhUnwrap) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){m_MaterialWrapping.Companion_UnwrapMaterial_.TraitID_, m_Actions.Companion_ActionWithResult_.TraitID_, m_Actions.Companion_Action_.TraitID_} +} + +var _ m_MaterialWrapping.UnwrapMaterial = &EcdhUnwrap{} +var _ m_Actions.ActionWithResult = &EcdhUnwrap{} +var _ m_Actions.Action = &EcdhUnwrap{} +var _ _dafny.TraitOffspring = &EcdhUnwrap{} + +func (_this *EcdhUnwrap) Ctor__(senderPublicKey _dafny.Sequence, recipientPublicKey _dafny.Sequence, sharedSecret _dafny.Sequence, keyringVersion _dafny.Sequence, curveSpec m_AwsCryptographyPrimitivesTypes.ECDHCurveSpec, crypto *m_AtomicPrimitives.AtomicPrimitivesClient) { + { + (_this)._senderPublicKey = senderPublicKey + (_this)._recipientPublicKey = recipientPublicKey + (_this)._sharedSecret = sharedSecret + (_this)._keyringVersion = keyringVersion + (_this)._curveSpec = curveSpec + (_this)._crypto = crypto + } +} +func (_this *EcdhUnwrap) Invoke(input interface{}) interface{} { + { + var input m_MaterialWrapping.UnwrapInput = input.(m_MaterialWrapping.UnwrapInput) + _ = input + var res m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_MaterialWrapping.Companion_UnwrapOutput_.Default(Companion_EcdhUnwrapInfo_.Default())) + _ = res + var _0_suite m_AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo + _ = _0_suite + _0_suite = (input).Dtor_algorithmSuite() + var _1_wrappedMaterial _dafny.Sequence + _ = _1_wrappedMaterial + _1_wrappedMaterial = (input).Dtor_wrappedMaterial() + var _2_aad _dafny.Map + _ = _2_aad + _2_aad = (input).Dtor_encryptionContext() + var _3_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _3_valueOrError0 + _3_valueOrError0 = m_Wrappers.Companion_Default___.Need((_dafny.IntOfUint32((_1_wrappedMaterial).Cardinality())).Cmp(m_Constants.Companion_Default___.CIPHERTEXT__WRAPPED__MATERIAL__INDEX()) > 0, Companion_Default___.E(_dafny.SeqOfString("Recieved ciphertext is shorter than expected."))) + if (_3_valueOrError0).IsFailure() { + res = (_3_valueOrError0).PropagateFailure() + return res + } + var _4_KeyLength _dafny.Int + _ = _4_KeyLength + _4_KeyLength = _dafny.IntOfInt32(m_AlgorithmSuites.Companion_Default___.GetEncryptKeyLength(_0_suite)) + var _5_valueOrError1 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _5_valueOrError1 + _5_valueOrError1 = m_Wrappers.Companion_Default___.Need((_dafny.IntOfUint32((_1_wrappedMaterial).Cardinality())).Cmp((m_Constants.Companion_Default___.ECDH__WRAPPED__KEY__MATERIAL__INDEX()).Plus(_4_KeyLength)) > 0, m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.SeqOfString("Received EDK Ciphertext of incorrect length."))) + if (_5_valueOrError1).IsFailure() { + res = (_5_valueOrError1).PropagateFailure() + return res + } + var _6_kdfNonce _dafny.Sequence + _ = _6_kdfNonce + _6_kdfNonce = (_1_wrappedMaterial).Subsequence(0, (m_Constants.Companion_Default___.ECDH__COMMITMENT__KEY__INDEX()).Uint32()) + var _7_iv _dafny.Sequence + _ = _7_iv + _7_iv = _dafny.SeqCreate((_dafny.IntOfInt32((m_Constants.Companion_Default___.ECDH__AES__256__ENC__ALG()).Dtor_ivLength())).Uint32(), func(coer103 func(_dafny.Int) uint8) func(_dafny.Int) interface{} { + return func(arg104 _dafny.Int) interface{} { + return coer103(arg104) + } + }(func(_8___v0 _dafny.Int) uint8 { + return uint8(0) + })) + var _9_commitmentKey _dafny.Sequence + _ = _9_commitmentKey + _9_commitmentKey = (_1_wrappedMaterial).Subsequence((m_Constants.Companion_Default___.ECDH__COMMITMENT__KEY__INDEX()).Uint32(), (m_Constants.Companion_Default___.ECDH__WRAPPED__KEY__MATERIAL__INDEX()).Uint32()) + var _10_wrappedKey _dafny.Sequence + _ = _10_wrappedKey + _10_wrappedKey = (_1_wrappedMaterial).Subsequence((m_Constants.Companion_Default___.ECDH__WRAPPED__KEY__MATERIAL__INDEX()).Uint32(), ((m_Constants.Companion_Default___.ECDH__WRAPPED__KEY__MATERIAL__INDEX()).Plus(_4_KeyLength)).Uint32()) + var _11_authTag _dafny.Sequence + _ = _11_authTag + _11_authTag = (_1_wrappedMaterial).Drop(((m_Constants.Companion_Default___.ECDH__WRAPPED__KEY__MATERIAL__INDEX()).Plus(_4_KeyLength)).Uint32()) + var _12_valueOrError2 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_UTF8.Companion_ValidUTF8Bytes_.Witness()) + _ = _12_valueOrError2 + _12_valueOrError2 = (m_UTF8.Encode(Companion_Default___.CurveSpecTypeToString((_this).CurveSpec()))).MapFailure(func(coer104 func(_dafny.Sequence) m_AwsCryptographyMaterialProvidersTypes.Error) func(interface{}) interface{} { + return func(arg105 interface{}) interface{} { + return coer104(arg105.(_dafny.Sequence)) + } + }(Companion_Default___.E)) + if (_12_valueOrError2).IsFailure() { + res = (_12_valueOrError2).PropagateFailure() + return res + } + var _13_curveSpecUtf8 _dafny.Sequence + _ = _13_curveSpecUtf8 + _13_curveSpecUtf8 = (_12_valueOrError2).Extract().(_dafny.Sequence) + var _14_valueOrError3 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = _14_valueOrError3 + _14_valueOrError3 = m_CanonicalEncryptionContext.Companion_Default___.EncryptionContextToAAD((input).Dtor_encryptionContext()) + if (_14_valueOrError3).IsFailure() { + res = (_14_valueOrError3).PropagateFailure() + return res + } + var _15_canonicalizedEC _dafny.Sequence + _ = _15_canonicalizedEC + _15_canonicalizedEC = (_14_valueOrError3).Extract().(_dafny.Sequence) + var _16_fixedInfo _dafny.Sequence + _ = _16_fixedInfo + _16_fixedInfo = Companion_Default___.SerializeFixedInfo(m_Constants.Companion_Default___.ECDH__KDF__UTF8(), _13_curveSpecUtf8, (_this).SenderPublicKey(), (_this).RecipientPublicKey(), _15_canonicalizedEC, (_this).KeyringVersion()) + var _17_valueOrError4 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = _17_valueOrError4 + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = Companion_Default___.DeriveSharedKeyingMaterial((_this).SharedSecret(), _16_fixedInfo, _6_kdfNonce, (_this).Crypto()) + _17_valueOrError4 = _out0 + if (_17_valueOrError4).IsFailure() { + res = (_17_valueOrError4).PropagateFailure() + return res + } + var _18_derivedKeyingMaterial _dafny.Sequence + _ = _18_derivedKeyingMaterial + _18_derivedKeyingMaterial = (_17_valueOrError4).Extract().(_dafny.Sequence) + var _19_calculatedCommitmentKey _dafny.Sequence + _ = _19_calculatedCommitmentKey + _19_calculatedCommitmentKey = (_18_derivedKeyingMaterial).Subsequence(0, 32) + var _20_sharedKeyingMaterial _dafny.Sequence + _ = _20_sharedKeyingMaterial + _20_sharedKeyingMaterial = (_18_derivedKeyingMaterial).Drop(32) + var _21_valueOrError5 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _21_valueOrError5 + _21_valueOrError5 = m_Wrappers.Companion_Default___.Need((_dafny.IntOfUint32((_19_calculatedCommitmentKey).Cardinality())).Cmp(_dafny.IntOfUint32((_9_commitmentKey).Cardinality())) == 0, Companion_Default___.E(_dafny.SeqOfString("Calculated commitment key length does NOT match expected commitment key length"))) + if (_21_valueOrError5).IsFailure() { + res = (_21_valueOrError5).PropagateFailure() + return res + } + var _22_check_q bool + _ = _22_check_q + var _out1 bool + _ = _out1 + _out1 = (_this).CommitmentKeyCheck(_19_calculatedCommitmentKey, _9_commitmentKey) + _22_check_q = _out1 + var _23_valueOrError6 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _23_valueOrError6 + _23_valueOrError6 = m_Wrappers.Companion_Default___.Need(_22_check_q, Companion_Default___.E(_dafny.SeqOfString("Commitment keys do not match"))) + if (_23_valueOrError6).IsFailure() { + res = (_23_valueOrError6).PropagateFailure() + return res + } + var _24_maybeUnwrappedPdk m_Wrappers.Result + _ = _24_maybeUnwrappedPdk + var _out2 m_Wrappers.Result + _ = _out2 + _out2 = ((_this).Crypto()).AESDecrypt(m_AwsCryptographyPrimitivesTypes.Companion_AESDecryptInput_.Create_AESDecryptInput_(m_Constants.Companion_Default___.ECDH__AES__256__ENC__ALG(), _20_sharedKeyingMaterial, _10_wrappedKey, _11_authTag, _7_iv, _16_fixedInfo)) + _24_maybeUnwrappedPdk = _out2 + var _25_valueOrError7 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = _25_valueOrError7 + _25_valueOrError7 = (_24_maybeUnwrappedPdk).MapFailure(func(coer105 func(m_AwsCryptographyPrimitivesTypes.Error) m_AwsCryptographyMaterialProvidersTypes.Error) func(interface{}) interface{} { + return func(arg106 interface{}) interface{} { + return coer105(arg106.(m_AwsCryptographyPrimitivesTypes.Error)) + } + }(func(_26_e m_AwsCryptographyPrimitivesTypes.Error) m_AwsCryptographyMaterialProvidersTypes.Error { + return m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographyPrimitives_(_26_e) + })) + if (_25_valueOrError7).IsFailure() { + res = (_25_valueOrError7).PropagateFailure() + return res + } + var _27_unwrappedPdk _dafny.Sequence + _ = _27_unwrappedPdk + _27_unwrappedPdk = (_25_valueOrError7).Extract().(_dafny.Sequence) + var _28_valueOrError8 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _28_valueOrError8 + _28_valueOrError8 = m_Wrappers.Companion_Default___.Need((_dafny.IntOfUint32((_27_unwrappedPdk).Cardinality())).Cmp(_dafny.IntOfInt32(m_AlgorithmSuites.Companion_Default___.GetEncryptKeyLength((input).Dtor_algorithmSuite()))) == 0, Companion_Default___.E(_dafny.SeqOfString("Invalid Key Length"))) + if (_28_valueOrError8).IsFailure() { + res = (_28_valueOrError8).PropagateFailure() + return res + } + var _29_output m_MaterialWrapping.UnwrapOutput + _ = _29_output + _29_output = m_MaterialWrapping.Companion_UnwrapOutput_.Create_UnwrapOutput_(_27_unwrappedPdk, Companion_EcdhUnwrapInfo_.Create_EcdhUnwrapInfo_()) + res = m_Wrappers.Companion_Result_.Create_Success_(_29_output) + return res + return res + } +} +func (_this *EcdhUnwrap) CommitmentKeyCheck(calculatedCommitmentKey _dafny.Sequence, serializedCommitmentKey _dafny.Sequence) bool { + { + var res bool = false + _ = res + var _0_diff_q uint8 + _ = _0_diff_q + _0_diff_q = uint8(0) + var _hi0 _dafny.Int = _dafny.IntOfUint32((serializedCommitmentKey).Cardinality()) + _ = _hi0 + for _1_i := _dafny.Zero; _1_i.Cmp(_hi0) < 0; _1_i = _1_i.Plus(_dafny.One) { + _0_diff_q = (_0_diff_q) | ((uint8((calculatedCommitmentKey).Select((_1_i).Uint32()).(uint8))) ^ (uint8((serializedCommitmentKey).Select((_1_i).Uint32()).(uint8)))) + } + res = (_0_diff_q) == (uint8(0)) + return res + } +} +func (_this *EcdhUnwrap) SenderPublicKey() _dafny.Sequence { + { + return _this._senderPublicKey + } +} +func (_this *EcdhUnwrap) RecipientPublicKey() _dafny.Sequence { + { + return _this._recipientPublicKey + } +} +func (_this *EcdhUnwrap) SharedSecret() _dafny.Sequence { + { + return _this._sharedSecret + } +} +func (_this *EcdhUnwrap) KeyringVersion() _dafny.Sequence { + { + return _this._keyringVersion + } +} +func (_this *EcdhUnwrap) CurveSpec() m_AwsCryptographyPrimitivesTypes.ECDHCurveSpec { + { + return _this._curveSpec + } +} +func (_this *EcdhUnwrap) Crypto() *m_AtomicPrimitives.AtomicPrimitivesClient { + { + return _this._crypto + } +} + +// End of class EcdhUnwrap + +// Definition of class EcdhGenerateAndWrapKeyMaterial +type EcdhGenerateAndWrapKeyMaterial struct { + _crypto *m_AtomicPrimitives.AtomicPrimitivesClient + _sharedSecret _dafny.Sequence + _fixedInfo _dafny.Sequence +} + +func New_EcdhGenerateAndWrapKeyMaterial_() *EcdhGenerateAndWrapKeyMaterial { + _this := EcdhGenerateAndWrapKeyMaterial{} + + _this._crypto = (*m_AtomicPrimitives.AtomicPrimitivesClient)(nil) + _this._sharedSecret = _dafny.EmptySeq + _this._fixedInfo = _dafny.EmptySeq + return &_this +} + +type CompanionStruct_EcdhGenerateAndWrapKeyMaterial_ struct { +} + +var Companion_EcdhGenerateAndWrapKeyMaterial_ = CompanionStruct_EcdhGenerateAndWrapKeyMaterial_{} + +func (_this *EcdhGenerateAndWrapKeyMaterial) Equals(other *EcdhGenerateAndWrapKeyMaterial) bool { + return _this == other +} + +func (_this *EcdhGenerateAndWrapKeyMaterial) EqualsGeneric(x interface{}) bool { + other, ok := x.(*EcdhGenerateAndWrapKeyMaterial) + return ok && _this.Equals(other) +} + +func (*EcdhGenerateAndWrapKeyMaterial) String() string { + return "EcdhEdkWrapping.EcdhGenerateAndWrapKeyMaterial" +} + +func Type_EcdhGenerateAndWrapKeyMaterial_() _dafny.TypeDescriptor { + return type_EcdhGenerateAndWrapKeyMaterial_{} +} + +type type_EcdhGenerateAndWrapKeyMaterial_ struct { +} + +func (_this type_EcdhGenerateAndWrapKeyMaterial_) Default() interface{} { + return (*EcdhGenerateAndWrapKeyMaterial)(nil) +} + +func (_this type_EcdhGenerateAndWrapKeyMaterial_) String() string { + return "EcdhEdkWrapping.EcdhGenerateAndWrapKeyMaterial" +} +func (_this *EcdhGenerateAndWrapKeyMaterial) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){m_MaterialWrapping.Companion_GenerateAndWrapMaterial_.TraitID_, m_Actions.Companion_ActionWithResult_.TraitID_, m_Actions.Companion_Action_.TraitID_} +} + +var _ m_MaterialWrapping.GenerateAndWrapMaterial = &EcdhGenerateAndWrapKeyMaterial{} +var _ m_Actions.ActionWithResult = &EcdhGenerateAndWrapKeyMaterial{} +var _ m_Actions.Action = &EcdhGenerateAndWrapKeyMaterial{} +var _ _dafny.TraitOffspring = &EcdhGenerateAndWrapKeyMaterial{} + +func (_this *EcdhGenerateAndWrapKeyMaterial) Ctor__(sharedSecret _dafny.Sequence, fixedInfo _dafny.Sequence, crypto *m_AtomicPrimitives.AtomicPrimitivesClient) { + { + (_this)._sharedSecret = sharedSecret + (_this)._fixedInfo = fixedInfo + (_this)._crypto = crypto + } +} +func (_this *EcdhGenerateAndWrapKeyMaterial) Invoke(input interface{}) interface{} { + { + var input m_MaterialWrapping.GenerateAndWrapInput = input.(m_MaterialWrapping.GenerateAndWrapInput) + _ = input + var res m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_MaterialWrapping.Companion_GenerateAndWrapOutput_.Default(Companion_EcdhWrapInfo_.Default())) + _ = res + var _0_suite m_AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo + _ = _0_suite + _0_suite = (input).Dtor_algorithmSuite() + var _1_pdkResult m_Wrappers.Result + _ = _1_pdkResult + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = ((_this).Crypto()).GenerateRandomBytes(m_AwsCryptographyPrimitivesTypes.Companion_GenerateRandomBytesInput_.Create_GenerateRandomBytesInput_(m_AlgorithmSuites.Companion_Default___.GetEncryptKeyLength(_0_suite))) + _1_pdkResult = _out0 + var _2_valueOrError0 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = _2_valueOrError0 + _2_valueOrError0 = (_1_pdkResult).MapFailure(func(coer106 func(m_AwsCryptographyPrimitivesTypes.Error) m_AwsCryptographyMaterialProvidersTypes.Error) func(interface{}) interface{} { + return func(arg107 interface{}) interface{} { + return coer106(arg107.(m_AwsCryptographyPrimitivesTypes.Error)) + } + }(func(_3_e m_AwsCryptographyPrimitivesTypes.Error) m_AwsCryptographyMaterialProvidersTypes.Error { + return m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographyPrimitives_(_3_e) + })) + if (_2_valueOrError0).IsFailure() { + res = (_2_valueOrError0).PropagateFailure() + return res + } + var _4_pdk _dafny.Sequence + _ = _4_pdk + _4_pdk = (_2_valueOrError0).Extract().(_dafny.Sequence) + var _5_wrap *EcdhWrapKeyMaterial + _ = _5_wrap + var _nw0 *EcdhWrapKeyMaterial = New_EcdhWrapKeyMaterial_() + _ = _nw0 + _nw0.Ctor__((_this).SharedSecret(), (_this).FixedInfo(), (_this).Crypto()) + _5_wrap = _nw0 + var _6_valueOrError1 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_MaterialWrapping.Companion_WrapOutput_.Default(Companion_EcdhWrapInfo_.Default())) + _ = _6_valueOrError1 + var _out1 interface{} + _ = _out1 + _out1 = (_5_wrap).Invoke(m_MaterialWrapping.Companion_WrapInput_.Create_WrapInput_(_4_pdk, (input).Dtor_algorithmSuite(), (input).Dtor_encryptionContext())) + _6_valueOrError1 = _out1.(m_Wrappers.Result) + if (_6_valueOrError1).IsFailure() { + res = (_6_valueOrError1).PropagateFailure() + return res + } + var _7_wrapOutput m_MaterialWrapping.WrapOutput + _ = _7_wrapOutput + _7_wrapOutput = (_6_valueOrError1).Extract().(m_MaterialWrapping.WrapOutput) + var _8_output m_MaterialWrapping.GenerateAndWrapOutput + _ = _8_output + _8_output = m_MaterialWrapping.Companion_GenerateAndWrapOutput_.Create_GenerateAndWrapOutput_(_4_pdk, (_7_wrapOutput).Dtor_wrappedMaterial(), (_7_wrapOutput).Dtor_wrapInfo().(EcdhWrapInfo)) + res = m_Wrappers.Companion_Result_.Create_Success_(_8_output) + return res + return res + } +} +func (_this *EcdhGenerateAndWrapKeyMaterial) Crypto() *m_AtomicPrimitives.AtomicPrimitivesClient { + { + return _this._crypto + } +} +func (_this *EcdhGenerateAndWrapKeyMaterial) SharedSecret() _dafny.Sequence { + { + return _this._sharedSecret + } +} +func (_this *EcdhGenerateAndWrapKeyMaterial) FixedInfo() _dafny.Sequence { + { + return _this._fixedInfo + } +} + +// End of class EcdhGenerateAndWrapKeyMaterial + +// Definition of class EcdhWrapKeyMaterial +type EcdhWrapKeyMaterial struct { + _crypto *m_AtomicPrimitives.AtomicPrimitivesClient + _fixedInfo _dafny.Sequence + _sharedSecret _dafny.Sequence +} + +func New_EcdhWrapKeyMaterial_() *EcdhWrapKeyMaterial { + _this := EcdhWrapKeyMaterial{} + + _this._crypto = (*m_AtomicPrimitives.AtomicPrimitivesClient)(nil) + _this._fixedInfo = _dafny.EmptySeq + _this._sharedSecret = _dafny.EmptySeq + return &_this +} + +type CompanionStruct_EcdhWrapKeyMaterial_ struct { +} + +var Companion_EcdhWrapKeyMaterial_ = CompanionStruct_EcdhWrapKeyMaterial_{} + +func (_this *EcdhWrapKeyMaterial) Equals(other *EcdhWrapKeyMaterial) bool { + return _this == other +} + +func (_this *EcdhWrapKeyMaterial) EqualsGeneric(x interface{}) bool { + other, ok := x.(*EcdhWrapKeyMaterial) + return ok && _this.Equals(other) +} + +func (*EcdhWrapKeyMaterial) String() string { + return "EcdhEdkWrapping.EcdhWrapKeyMaterial" +} + +func Type_EcdhWrapKeyMaterial_() _dafny.TypeDescriptor { + return type_EcdhWrapKeyMaterial_{} +} + +type type_EcdhWrapKeyMaterial_ struct { +} + +func (_this type_EcdhWrapKeyMaterial_) Default() interface{} { + return (*EcdhWrapKeyMaterial)(nil) +} + +func (_this type_EcdhWrapKeyMaterial_) String() string { + return "EcdhEdkWrapping.EcdhWrapKeyMaterial" +} +func (_this *EcdhWrapKeyMaterial) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){m_MaterialWrapping.Companion_WrapMaterial_.TraitID_, m_Actions.Companion_ActionWithResult_.TraitID_, m_Actions.Companion_Action_.TraitID_} +} + +var _ m_MaterialWrapping.WrapMaterial = &EcdhWrapKeyMaterial{} +var _ m_Actions.ActionWithResult = &EcdhWrapKeyMaterial{} +var _ m_Actions.Action = &EcdhWrapKeyMaterial{} +var _ _dafny.TraitOffspring = &EcdhWrapKeyMaterial{} + +func (_this *EcdhWrapKeyMaterial) Ctor__(sharedSecret _dafny.Sequence, fixedInfo _dafny.Sequence, crypto *m_AtomicPrimitives.AtomicPrimitivesClient) { + { + (_this)._sharedSecret = sharedSecret + (_this)._fixedInfo = fixedInfo + (_this)._crypto = crypto + } +} +func (_this *EcdhWrapKeyMaterial) Invoke(input interface{}) interface{} { + { + var input m_MaterialWrapping.WrapInput = input.(m_MaterialWrapping.WrapInput) + _ = input + var res m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_MaterialWrapping.Companion_WrapOutput_.Default(Companion_EcdhWrapInfo_.Default())) + _ = res + var _0_suite m_AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo + _ = _0_suite + _0_suite = (input).Dtor_algorithmSuite() + var _1_valueOrError0 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = _1_valueOrError0 + _1_valueOrError0 = m_CanonicalEncryptionContext.Companion_Default___.EncryptionContextToAAD((input).Dtor_encryptionContext()) + if (_1_valueOrError0).IsFailure() { + res = (_1_valueOrError0).PropagateFailure() + return res + } + var _2_canonicalizedEC _dafny.Sequence + _ = _2_canonicalizedEC + _2_canonicalizedEC = (_1_valueOrError0).Extract().(_dafny.Sequence) + var _3_maybeSalt m_Wrappers.Result + _ = _3_maybeSalt + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = ((_this).Crypto()).GenerateRandomBytes(m_AwsCryptographyPrimitivesTypes.Companion_GenerateRandomBytesInput_.Create_GenerateRandomBytesInput_(m_Constants.Companion_Default___.KDF__SALT__LEN())) + _3_maybeSalt = _out0 + var _4_valueOrError1 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = _4_valueOrError1 + _4_valueOrError1 = (_3_maybeSalt).MapFailure(func(coer107 func(m_AwsCryptographyPrimitivesTypes.Error) m_AwsCryptographyMaterialProvidersTypes.Error) func(interface{}) interface{} { + return func(arg108 interface{}) interface{} { + return coer107(arg108.(m_AwsCryptographyPrimitivesTypes.Error)) + } + }(func(_5_e m_AwsCryptographyPrimitivesTypes.Error) m_AwsCryptographyMaterialProvidersTypes.Error { + return m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographyPrimitives_(_5_e) + })) + if (_4_valueOrError1).IsFailure() { + res = (_4_valueOrError1).PropagateFailure() + return res + } + var _6_salt _dafny.Sequence + _ = _6_salt + _6_salt = (_4_valueOrError1).Extract().(_dafny.Sequence) + var _7_valueOrError2 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = _7_valueOrError2 + var _out1 m_Wrappers.Result + _ = _out1 + _out1 = Companion_Default___.DeriveSharedKeyingMaterial((_this).SharedSecret(), (_this).FixedInfo(), _6_salt, (_this).Crypto()) + _7_valueOrError2 = _out1 + if (_7_valueOrError2).IsFailure() { + res = (_7_valueOrError2).PropagateFailure() + return res + } + var _8_derivedKeyingMaterial _dafny.Sequence + _ = _8_derivedKeyingMaterial + _8_derivedKeyingMaterial = (_7_valueOrError2).Extract().(_dafny.Sequence) + var _9_commitmentKey _dafny.Sequence + _ = _9_commitmentKey + _9_commitmentKey = (_8_derivedKeyingMaterial).Subsequence(0, 32) + var _10_sharedKeyingMaterial _dafny.Sequence + _ = _10_sharedKeyingMaterial + _10_sharedKeyingMaterial = (_8_derivedKeyingMaterial).Drop(32) + var _11_iv _dafny.Sequence + _ = _11_iv + _11_iv = _dafny.SeqCreate((_dafny.IntOfInt32((m_Constants.Companion_Default___.ECDH__AES__256__ENC__ALG()).Dtor_ivLength())).Uint32(), func(coer108 func(_dafny.Int) uint8) func(_dafny.Int) interface{} { + return func(arg109 _dafny.Int) interface{} { + return coer108(arg109) + } + }(func(_12___v3 _dafny.Int) uint8 { + return uint8(0) + })) + var _13_maybeWrappedPdk m_Wrappers.Result + _ = _13_maybeWrappedPdk + var _out2 m_Wrappers.Result + _ = _out2 + _out2 = ((_this).Crypto()).AESEncrypt(m_AwsCryptographyPrimitivesTypes.Companion_AESEncryptInput_.Create_AESEncryptInput_(m_Constants.Companion_Default___.ECDH__AES__256__ENC__ALG(), _11_iv, _10_sharedKeyingMaterial, (input).Dtor_plaintextMaterial(), (_this).FixedInfo())) + _13_maybeWrappedPdk = _out2 + var _14_valueOrError3 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_AwsCryptographyPrimitivesTypes.Companion_AESEncryptOutput_.Default()) + _ = _14_valueOrError3 + _14_valueOrError3 = (_13_maybeWrappedPdk).MapFailure(func(coer109 func(m_AwsCryptographyPrimitivesTypes.Error) m_AwsCryptographyMaterialProvidersTypes.Error) func(interface{}) interface{} { + return func(arg110 interface{}) interface{} { + return coer109(arg110.(m_AwsCryptographyPrimitivesTypes.Error)) + } + }(func(_15_e m_AwsCryptographyPrimitivesTypes.Error) m_AwsCryptographyMaterialProvidersTypes.Error { + return m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographyPrimitives_(_15_e) + })) + if (_14_valueOrError3).IsFailure() { + res = (_14_valueOrError3).PropagateFailure() + return res + } + var _16_wrappedPdk m_AwsCryptographyPrimitivesTypes.AESEncryptOutput + _ = _16_wrappedPdk + _16_wrappedPdk = (_14_valueOrError3).Extract().(m_AwsCryptographyPrimitivesTypes.AESEncryptOutput) + var _17_output m_MaterialWrapping.WrapOutput + _ = _17_output + _17_output = m_MaterialWrapping.Companion_WrapOutput_.Create_WrapOutput_(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_6_salt, _9_commitmentKey), (_16_wrappedPdk).Dtor_cipherText()), (_16_wrappedPdk).Dtor_authTag()), Companion_EcdhWrapInfo_.Create_EcdhWrapInfo_()) + res = m_Wrappers.Companion_Result_.Create_Success_(_17_output) + return res + return res + } +} +func (_this *EcdhWrapKeyMaterial) Crypto() *m_AtomicPrimitives.AtomicPrimitivesClient { + { + return _this._crypto + } +} +func (_this *EcdhWrapKeyMaterial) FixedInfo() _dafny.Sequence { + { + return _this._fixedInfo + } +} +func (_this *EcdhWrapKeyMaterial) SharedSecret() _dafny.Sequence { + { + return _this._sharedSecret + } +} + +// End of class EcdhWrapKeyMaterial diff --git a/customer-preview/mpl/EdkWrapping/EdkWrapping.go b/customer-preview/mpl/EdkWrapping/EdkWrapping.go new file mode 100644 index 000000000..a47c891af --- /dev/null +++ b/customer-preview/mpl/EdkWrapping/EdkWrapping.go @@ -0,0 +1,617 @@ +// Package EdkWrapping +// Dafny module EdkWrapping compiled into Go + +package EdkWrapping + +import ( + os "os" + + m_ComAmazonawsDynamodbTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/ComAmazonawsDynamodbTypes" + m_Com_Amazonaws_Dynamodb "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/Com_Amazonaws_Dynamodb" + m_ComAmazonawsKmsTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/ComAmazonawsKmsTypes" + m_Com_Amazonaws_Kms "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/Com_Amazonaws_Kms" + m_AlgorithmSuites "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AlgorithmSuites" + m_AwsArnParsing "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsArnParsing" + m_AwsCryptographyKeyStoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreOperations" + m_AwsCryptographyKeyStoreTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreTypes" + m_AwsCryptographyMaterialProvidersTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersTypes" + m_AwsKmsMrkAreUnique "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkAreUnique" + m_AwsKmsMrkMatchForDecrypt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkMatchForDecrypt" + m_AwsKmsUtils "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsUtils" + m_CanonicalEncryptionContext "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CanonicalEncryptionContext" + m_Constants "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Constants" + m_CreateKeyStoreTable "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeyStoreTable" + m_CreateKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeys" + m_DDBKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DDBKeystoreOperations" + m_GetKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/GetKeys" + m_IntermediateKeyWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/IntermediateKeyWrapping" + m_KMSKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KMSKeystoreOperations" + m_KeyStore "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStore" + m_KeyStoreErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStoreErrorMessages" + m_Keyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Keyring" + m_KmsArn "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KmsArn" + m_MaterialWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MaterialWrapping" + m_Materials "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Materials" + m_MultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MultiKeyring" + m_Structure "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Structure" + m_AtomicPrimitives "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AtomicPrimitives" + m_AwsCryptographyPrimitivesOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesOperations" + m_AwsCryptographyPrimitivesTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesTypes" + m_Digest "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Digest" + m_HKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/HKDF" + m_KdfCtr "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/KdfCtr" + m_Random "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Random" + m_WrappedHKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHKDF" + m_WrappedHMAC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHMAC" + m_Actions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Actions" + m_Base64 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64" + m_Base64Lemmas "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64Lemmas" + m_BoundedInts "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/BoundedInts" + m_DivInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternals" + m_DivInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternalsNonlinear" + m_DivMod "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivMod" + m_FileIO "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FileIO" + m_FloatCompare "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FloatCompare" + m_Functions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Functions" + m_GeneralInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GeneralInternals" + m_GetOpt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GetOpt" + m_HexStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/HexStrings" + m_Logarithm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Logarithm" + m__Math "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Math_" + m_ModInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternals" + m_ModInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternalsNonlinear" + m_Mul "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Mul" + m_MulInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternals" + m_MulInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternalsNonlinear" + m_Power "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Power" + m_Relations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Relations" + m_Seq "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq" + m_Seq_MergeSort "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq_MergeSort" + m_Sorting "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Sorting" + m_StandardLibrary "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary" + m_StandardLibraryInterop "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibraryInterop" + m_StandardLibrary_Sequence "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_Sequence" + m_StandardLibrary_String "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_String" + m_StandardLibrary_UInt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_UInt" + m_Streams "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Streams" + m_UnicodeStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UnicodeStrings" + m__Unicode "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Unicode_" + m_Utf16EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf16EncodingForm" + m_Utf8EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf8EncodingForm" + m_Wrappers "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers" + m__System "github.com/dafny-lang/DafnyRuntimeGo/v4/System_" + _dafny "github.com/dafny-lang/DafnyRuntimeGo/v4/dafny" +) + +var _ = os.Args +var _ _dafny.Dummy__ +var _ m__System.Dummy__ +var _ m_Wrappers.Dummy__ +var _ m_BoundedInts.Dummy__ +var _ m_StandardLibrary_UInt.Dummy__ +var _ m_StandardLibrary_Sequence.Dummy__ +var _ m_StandardLibrary_String.Dummy__ +var _ m_StandardLibrary.Dummy__ +var _ m_AwsCryptographyPrimitivesTypes.Dummy__ +var _ m_Random.Dummy__ +var _ m_Digest.Dummy__ +var _ m_WrappedHMAC.Dummy__ +var _ m_HKDF.Dummy__ +var _ m_WrappedHKDF.Dummy__ +var _ m_KdfCtr.Dummy__ +var _ m_AwsCryptographyPrimitivesOperations.Dummy__ +var _ m_AtomicPrimitives.Dummy__ +var _ m_ComAmazonawsDynamodbTypes.Dummy__ +var _ m_ComAmazonawsKmsTypes.Dummy__ +var _ m_Relations.Dummy__ +var _ m_Seq_MergeSort.Dummy__ +var _ m__Math.Dummy__ +var _ m_Seq.Dummy__ +var _ m__Unicode.Dummy__ +var _ m_Functions.Dummy__ +var _ m_Utf8EncodingForm.Dummy__ +var _ m_Utf16EncodingForm.Dummy__ +var _ m_UnicodeStrings.Dummy__ +var _ m_FileIO.Dummy__ +var _ m_GeneralInternals.Dummy__ +var _ m_MulInternalsNonlinear.Dummy__ +var _ m_MulInternals.Dummy__ +var _ m_Mul.Dummy__ +var _ m_ModInternalsNonlinear.Dummy__ +var _ m_DivInternalsNonlinear.Dummy__ +var _ m_ModInternals.Dummy__ +var _ m_DivInternals.Dummy__ +var _ m_DivMod.Dummy__ +var _ m_Power.Dummy__ +var _ m_Logarithm.Dummy__ +var _ m_StandardLibraryInterop.Dummy__ +var _ m_Streams.Dummy__ +var _ m_Sorting.Dummy__ +var _ m_HexStrings.Dummy__ +var _ m_GetOpt.Dummy__ +var _ m_FloatCompare.Dummy__ +var _ m_Base64.Dummy__ +var _ m_Base64Lemmas.Dummy__ +var _ m_Actions.Dummy__ +var _ m_AwsCryptographyKeyStoreTypes.Dummy__ +var _ m_AwsCryptographyMaterialProvidersTypes.Dummy__ +var _ m_AwsArnParsing.Dummy__ +var _ m_AwsKmsMrkMatchForDecrypt.Dummy__ +var _ m_AwsKmsUtils.Dummy__ +var _ m_KeyStoreErrorMessages.Dummy__ +var _ m_KmsArn.Dummy__ +var _ m_Structure.Dummy__ +var _ m_KMSKeystoreOperations.Dummy__ +var _ m_DDBKeystoreOperations.Dummy__ +var _ m_CreateKeys.Dummy__ +var _ m_CreateKeyStoreTable.Dummy__ +var _ m_GetKeys.Dummy__ +var _ m_AwsCryptographyKeyStoreOperations.Dummy__ +var _ m_Com_Amazonaws_Kms.Dummy__ +var _ m_Com_Amazonaws_Dynamodb.Dummy__ +var _ m_KeyStore.Dummy__ +var _ m_AlgorithmSuites.Dummy__ +var _ m_Materials.Dummy__ +var _ m_Keyring.Dummy__ +var _ m_MultiKeyring.Dummy__ +var _ m_AwsKmsMrkAreUnique.Dummy__ +var _ m_Constants.Dummy__ +var _ m_MaterialWrapping.Dummy__ +var _ m_CanonicalEncryptionContext.Dummy__ +var _ m_IntermediateKeyWrapping.Dummy__ + +type Dummy__ struct{} + +// Definition of class Default__ +type Default__ struct { + dummy byte +} + +func New_Default___() *Default__ { + _this := Default__{} + + return &_this +} + +type CompanionStruct_Default___ struct { +} + +var Companion_Default___ = CompanionStruct_Default___{} + +func (_this *Default__) Equals(other *Default__) bool { + return _this == other +} + +func (_this *Default__) EqualsGeneric(x interface{}) bool { + other, ok := x.(*Default__) + return ok && _this.Equals(other) +} + +func (*Default__) String() string { + return "EdkWrapping.Default__" +} +func (_this *Default__) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = &Default__{} + +func (_static *CompanionStruct_Default___) WrapEdkMaterial(encryptionMaterials m_AwsCryptographyMaterialProvidersTypes.EncryptionMaterials, wrap m_MaterialWrapping.WrapMaterial, generateAndWrap m_MaterialWrapping.GenerateAndWrapMaterial) m_Wrappers.Result { + var ret m_Wrappers.Result = m_Wrappers.Result{} + _ = ret + var _0_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _0_valueOrError0 + _0_valueOrError0 = m_Wrappers.Companion_Default___.Need(m_Materials.Companion_Default___.ValidEncryptionMaterials(encryptionMaterials), m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.SeqOfString("Invalid materials for encryption."))) + if (_0_valueOrError0).IsFailure() { + ret = (_0_valueOrError0).PropagateFailure() + return ret + } + if (((encryptionMaterials).Dtor_plaintextDataKey()).Is_Some()) && ((((encryptionMaterials).Dtor_algorithmSuite()).Dtor_edkWrapping()).Is_DIRECT__KEY__WRAPPING()) { + var _1_valueOrError1 m_Wrappers.Result = m_Wrappers.Result{} + _ = _1_valueOrError1 + var _out0 interface{} + _ = _out0 + _out0 = (wrap).Invoke(m_MaterialWrapping.Companion_WrapInput_.Create_WrapInput_(((encryptionMaterials).Dtor_plaintextDataKey()).Dtor_value().(_dafny.Sequence), (encryptionMaterials).Dtor_algorithmSuite(), (encryptionMaterials).Dtor_encryptionContext())) + _1_valueOrError1 = _out0.(m_Wrappers.Result) + if (_1_valueOrError1).IsFailure() { + ret = (_1_valueOrError1).PropagateFailure() + return ret + } + var _2_directOutput m_MaterialWrapping.WrapOutput + _ = _2_directOutput + _2_directOutput = (_1_valueOrError1).Extract().(m_MaterialWrapping.WrapOutput) + ret = m_Wrappers.Companion_Result_.Create_Success_(Companion_WrapEdkMaterialOutput_.Create_WrapOnlyEdkMaterialOutput_((_2_directOutput).Dtor_wrappedMaterial(), m_Wrappers.Companion_Option_.Create_None_(), (_2_directOutput).Dtor_wrapInfo())) + return ret + } else if (((encryptionMaterials).Dtor_plaintextDataKey()).Is_Some()) && ((((encryptionMaterials).Dtor_algorithmSuite()).Dtor_edkWrapping()).Is_IntermediateKeyWrapping()) { + var _3_valueOrError2 m_Wrappers.Result = m_Wrappers.Result{} + _ = _3_valueOrError2 + var _out1 m_Wrappers.Result + _ = _out1 + _out1 = m_IntermediateKeyWrapping.Companion_Default___.IntermediateWrap(generateAndWrap, ((encryptionMaterials).Dtor_plaintextDataKey()).Dtor_value().(_dafny.Sequence), (encryptionMaterials).Dtor_algorithmSuite(), (encryptionMaterials).Dtor_encryptionContext()) + _3_valueOrError2 = _out1 + if (_3_valueOrError2).IsFailure() { + ret = (_3_valueOrError2).PropagateFailure() + return ret + } + var _4_intermediateOutput m_IntermediateKeyWrapping.IntermediateWrapOutput + _ = _4_intermediateOutput + _4_intermediateOutput = (_3_valueOrError2).Extract().(m_IntermediateKeyWrapping.IntermediateWrapOutput) + ret = m_Wrappers.Companion_Result_.Create_Success_(Companion_WrapEdkMaterialOutput_.Create_WrapOnlyEdkMaterialOutput_((_4_intermediateOutput).Dtor_wrappedMaterial(), m_Wrappers.Companion_Option_.Create_Some_((_4_intermediateOutput).Dtor_symmetricSigningKey()), (_4_intermediateOutput).Dtor_wrapInfo())) + return ret + } else if (((encryptionMaterials).Dtor_plaintextDataKey()).Is_None()) && ((((encryptionMaterials).Dtor_algorithmSuite()).Dtor_edkWrapping()).Is_DIRECT__KEY__WRAPPING()) { + var _5_valueOrError3 m_Wrappers.Result = m_Wrappers.Result{} + _ = _5_valueOrError3 + var _out2 interface{} + _ = _out2 + _out2 = (generateAndWrap).Invoke(m_MaterialWrapping.Companion_GenerateAndWrapInput_.Create_GenerateAndWrapInput_((encryptionMaterials).Dtor_algorithmSuite(), (encryptionMaterials).Dtor_encryptionContext())) + _5_valueOrError3 = _out2.(m_Wrappers.Result) + if (_5_valueOrError3).IsFailure() { + ret = (_5_valueOrError3).PropagateFailure() + return ret + } + var _6_directOutput m_MaterialWrapping.GenerateAndWrapOutput + _ = _6_directOutput + _6_directOutput = (_5_valueOrError3).Extract().(m_MaterialWrapping.GenerateAndWrapOutput) + ret = m_Wrappers.Companion_Result_.Create_Success_(Companion_WrapEdkMaterialOutput_.Create_GenerateAndWrapEdkMaterialOutput_((_6_directOutput).Dtor_plaintextMaterial(), (_6_directOutput).Dtor_wrappedMaterial(), m_Wrappers.Companion_Option_.Create_None_(), (_6_directOutput).Dtor_wrapInfo())) + return ret + } else if (((encryptionMaterials).Dtor_plaintextDataKey()).Is_None()) && ((((encryptionMaterials).Dtor_algorithmSuite()).Dtor_edkWrapping()).Is_IntermediateKeyWrapping()) { + var _7_valueOrError4 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _7_valueOrError4 + _7_valueOrError4 = m_Wrappers.Companion_Default___.Need((((encryptionMaterials).Dtor_algorithmSuite()).Dtor_commitment()).Is_HKDF(), m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.SeqOfString("Invalid algorithm suite: suites with intermediate key wrapping must use key commitment."))) + if (_7_valueOrError4).IsFailure() { + ret = (_7_valueOrError4).PropagateFailure() + return ret + } + var _8_valueOrError5 m_Wrappers.Result = m_Wrappers.Result{} + _ = _8_valueOrError5 + var _out3 m_Wrappers.Result + _ = _out3 + _out3 = m_IntermediateKeyWrapping.Companion_Default___.IntermediateGenerateAndWrap(generateAndWrap, (encryptionMaterials).Dtor_algorithmSuite(), (encryptionMaterials).Dtor_encryptionContext()) + _8_valueOrError5 = _out3 + if (_8_valueOrError5).IsFailure() { + ret = (_8_valueOrError5).PropagateFailure() + return ret + } + var _9_intermediateOutput m_IntermediateKeyWrapping.IntermediateGenerateAndWrapOutput + _ = _9_intermediateOutput + _9_intermediateOutput = (_8_valueOrError5).Extract().(m_IntermediateKeyWrapping.IntermediateGenerateAndWrapOutput) + ret = m_Wrappers.Companion_Result_.Create_Success_(Companion_WrapEdkMaterialOutput_.Create_GenerateAndWrapEdkMaterialOutput_((_9_intermediateOutput).Dtor_plaintextDataKey(), (_9_intermediateOutput).Dtor_wrappedMaterial(), m_Wrappers.Companion_Option_.Create_Some_((_9_intermediateOutput).Dtor_symmetricSigningKey()), (_9_intermediateOutput).Dtor_wrapInfo())) + return ret + } else { + } + return ret +} +func (_static *CompanionStruct_Default___) UnwrapEdkMaterial(wrappedMaterial _dafny.Sequence, decryptionMaterials m_AwsCryptographyMaterialProvidersTypes.DecryptionMaterials, unwrap m_MaterialWrapping.UnwrapMaterial) m_Wrappers.Result { + var ret m_Wrappers.Result = m_Wrappers.Result{} + _ = ret + var _0_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _0_valueOrError0 + _0_valueOrError0 = m_Wrappers.Companion_Default___.Need(m_Materials.Companion_Default___.ValidDecryptionMaterials(decryptionMaterials), m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.SeqOfString("Invalid materials for decryption."))) + if (_0_valueOrError0).IsFailure() { + ret = (_0_valueOrError0).PropagateFailure() + return ret + } + if (((decryptionMaterials).Dtor_algorithmSuite()).Dtor_edkWrapping()).Is_DIRECT__KEY__WRAPPING() { + var _1_valueOrError1 m_Wrappers.Result = m_Wrappers.Result{} + _ = _1_valueOrError1 + var _out0 interface{} + _ = _out0 + _out0 = (unwrap).Invoke(m_MaterialWrapping.Companion_UnwrapInput_.Create_UnwrapInput_(wrappedMaterial, (decryptionMaterials).Dtor_algorithmSuite(), (decryptionMaterials).Dtor_encryptionContext())) + _1_valueOrError1 = _out0.(m_Wrappers.Result) + if (_1_valueOrError1).IsFailure() { + ret = (_1_valueOrError1).PropagateFailure() + return ret + } + var _2_directOutput m_MaterialWrapping.UnwrapOutput + _ = _2_directOutput + _2_directOutput = (_1_valueOrError1).Extract().(m_MaterialWrapping.UnwrapOutput) + ret = m_Wrappers.Companion_Result_.Create_Success_(Companion_UnwrapEdkMaterialOutput_.Create_UnwrapEdkMaterialOutput_((_2_directOutput).Dtor_unwrappedMaterial(), m_Wrappers.Companion_Option_.Create_None_(), (_2_directOutput).Dtor_unwrapInfo())) + return ret + } else if (((decryptionMaterials).Dtor_algorithmSuite()).Dtor_edkWrapping()).Is_IntermediateKeyWrapping() { + var _3_valueOrError2 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _3_valueOrError2 + _3_valueOrError2 = m_Wrappers.Companion_Default___.Need((_dafny.IntOfUint32((wrappedMaterial).Cardinality())).Cmp(_dafny.IntOfInt32((((((decryptionMaterials).Dtor_algorithmSuite()).Dtor_encrypt()).Dtor_AES__GCM()).Dtor_keyLength())+(((((decryptionMaterials).Dtor_algorithmSuite()).Dtor_encrypt()).Dtor_AES__GCM()).Dtor_tagLength()))) >= 0, m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.SeqOfString("Invalid material for Intermediate Unwrapping"))) + if (_3_valueOrError2).IsFailure() { + ret = (_3_valueOrError2).PropagateFailure() + return ret + } + var _4_valueOrError3 m_Wrappers.Result = m_Wrappers.Result{} + _ = _4_valueOrError3 + var _out1 m_Wrappers.Result + _ = _out1 + _out1 = m_IntermediateKeyWrapping.Companion_Default___.IntermediateUnwrap(unwrap, wrappedMaterial, (decryptionMaterials).Dtor_algorithmSuite(), (decryptionMaterials).Dtor_encryptionContext()) + _4_valueOrError3 = _out1 + if (_4_valueOrError3).IsFailure() { + ret = (_4_valueOrError3).PropagateFailure() + return ret + } + var _5_intermediateOutput m_IntermediateKeyWrapping.IntermediateUnwrapOutput + _ = _5_intermediateOutput + _5_intermediateOutput = (_4_valueOrError3).Extract().(m_IntermediateKeyWrapping.IntermediateUnwrapOutput) + ret = m_Wrappers.Companion_Result_.Create_Success_(Companion_UnwrapEdkMaterialOutput_.Create_UnwrapEdkMaterialOutput_((_5_intermediateOutput).Dtor_plaintextDataKey(), m_Wrappers.Companion_Option_.Create_Some_((_5_intermediateOutput).Dtor_symmetricSigningKey()), (_5_intermediateOutput).Dtor_unwrapInfo())) + return ret + } else { + } + return ret +} +func (_static *CompanionStruct_Default___) GetProviderWrappedMaterial(material _dafny.Sequence, algSuite m_AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo) m_Wrappers.Result { + if ((algSuite).Dtor_edkWrapping()).Is_DIRECT__KEY__WRAPPING() { + return m_Wrappers.Companion_Result_.Create_Success_(material) + } else { + var _0_deserializedWrappedRes m_Wrappers.Result = m_IntermediateKeyWrapping.Companion_Default___.DeserializeIntermediateWrappedMaterial(material, algSuite) + _ = _0_deserializedWrappedRes + if (_0_deserializedWrappedRes).Is_Failure() { + return m_Wrappers.Companion_Result_.Create_Failure_(m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.SeqOfString("Unable to deserialize Intermediate Key Wrapped material."))) + } else { + return m_Wrappers.Companion_Result_.Create_Success_(((_0_deserializedWrappedRes).Dtor_value().(m_IntermediateKeyWrapping.DeserializedIntermediateWrappedMaterial)).Dtor_providerWrappedIkm()) + } + } +} + +// End of class Default__ + +// Definition of datatype WrapEdkMaterialOutput +type WrapEdkMaterialOutput struct { + Data_WrapEdkMaterialOutput_ +} + +func (_this WrapEdkMaterialOutput) Get_() Data_WrapEdkMaterialOutput_ { + return _this.Data_WrapEdkMaterialOutput_ +} + +type Data_WrapEdkMaterialOutput_ interface { + isWrapEdkMaterialOutput() +} + +type CompanionStruct_WrapEdkMaterialOutput_ struct { +} + +var Companion_WrapEdkMaterialOutput_ = CompanionStruct_WrapEdkMaterialOutput_{} + +type WrapEdkMaterialOutput_WrapOnlyEdkMaterialOutput struct { + WrappedMaterial _dafny.Sequence + SymmetricSigningKey m_Wrappers.Option + WrapInfo interface{} +} + +func (WrapEdkMaterialOutput_WrapOnlyEdkMaterialOutput) isWrapEdkMaterialOutput() {} + +func (CompanionStruct_WrapEdkMaterialOutput_) Create_WrapOnlyEdkMaterialOutput_(WrappedMaterial _dafny.Sequence, SymmetricSigningKey m_Wrappers.Option, WrapInfo interface{}) WrapEdkMaterialOutput { + return WrapEdkMaterialOutput{WrapEdkMaterialOutput_WrapOnlyEdkMaterialOutput{WrappedMaterial, SymmetricSigningKey, WrapInfo}} +} + +func (_this WrapEdkMaterialOutput) Is_WrapOnlyEdkMaterialOutput() bool { + _, ok := _this.Get_().(WrapEdkMaterialOutput_WrapOnlyEdkMaterialOutput) + return ok +} + +type WrapEdkMaterialOutput_GenerateAndWrapEdkMaterialOutput struct { + PlaintextDataKey _dafny.Sequence + WrappedMaterial _dafny.Sequence + SymmetricSigningKey m_Wrappers.Option + WrapInfo interface{} +} + +func (WrapEdkMaterialOutput_GenerateAndWrapEdkMaterialOutput) isWrapEdkMaterialOutput() {} + +func (CompanionStruct_WrapEdkMaterialOutput_) Create_GenerateAndWrapEdkMaterialOutput_(PlaintextDataKey _dafny.Sequence, WrappedMaterial _dafny.Sequence, SymmetricSigningKey m_Wrappers.Option, WrapInfo interface{}) WrapEdkMaterialOutput { + return WrapEdkMaterialOutput{WrapEdkMaterialOutput_GenerateAndWrapEdkMaterialOutput{PlaintextDataKey, WrappedMaterial, SymmetricSigningKey, WrapInfo}} +} + +func (_this WrapEdkMaterialOutput) Is_GenerateAndWrapEdkMaterialOutput() bool { + _, ok := _this.Get_().(WrapEdkMaterialOutput_GenerateAndWrapEdkMaterialOutput) + return ok +} + +func (CompanionStruct_WrapEdkMaterialOutput_) Default(_default_T interface{}) WrapEdkMaterialOutput { + return Companion_WrapEdkMaterialOutput_.Create_WrapOnlyEdkMaterialOutput_(_dafny.EmptySeq, m_Wrappers.Companion_Option_.Default(), _default_T) +} + +func (_this WrapEdkMaterialOutput) Dtor_wrappedMaterial() _dafny.Sequence { + switch data := _this.Get_().(type) { + case WrapEdkMaterialOutput_WrapOnlyEdkMaterialOutput: + return data.WrappedMaterial + default: + return data.(WrapEdkMaterialOutput_GenerateAndWrapEdkMaterialOutput).WrappedMaterial + } +} + +func (_this WrapEdkMaterialOutput) Dtor_symmetricSigningKey() m_Wrappers.Option { + switch data := _this.Get_().(type) { + case WrapEdkMaterialOutput_WrapOnlyEdkMaterialOutput: + return data.SymmetricSigningKey + default: + return data.(WrapEdkMaterialOutput_GenerateAndWrapEdkMaterialOutput).SymmetricSigningKey + } +} + +func (_this WrapEdkMaterialOutput) Dtor_wrapInfo() interface{} { + switch data := _this.Get_().(type) { + case WrapEdkMaterialOutput_WrapOnlyEdkMaterialOutput: + return data.WrapInfo + default: + return data.(WrapEdkMaterialOutput_GenerateAndWrapEdkMaterialOutput).WrapInfo + } +} + +func (_this WrapEdkMaterialOutput) Dtor_plaintextDataKey() _dafny.Sequence { + return _this.Get_().(WrapEdkMaterialOutput_GenerateAndWrapEdkMaterialOutput).PlaintextDataKey +} + +func (_this WrapEdkMaterialOutput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case WrapEdkMaterialOutput_WrapOnlyEdkMaterialOutput: + { + return "EdkWrapping.WrapEdkMaterialOutput.WrapOnlyEdkMaterialOutput" + "(" + _dafny.String(data.WrappedMaterial) + ", " + _dafny.String(data.SymmetricSigningKey) + ", " + _dafny.String(data.WrapInfo) + ")" + } + case WrapEdkMaterialOutput_GenerateAndWrapEdkMaterialOutput: + { + return "EdkWrapping.WrapEdkMaterialOutput.GenerateAndWrapEdkMaterialOutput" + "(" + _dafny.String(data.PlaintextDataKey) + ", " + _dafny.String(data.WrappedMaterial) + ", " + _dafny.String(data.SymmetricSigningKey) + ", " + _dafny.String(data.WrapInfo) + ")" + } + default: + { + return "" + } + } +} + +func (_this WrapEdkMaterialOutput) Equals(other WrapEdkMaterialOutput) bool { + switch data1 := _this.Get_().(type) { + case WrapEdkMaterialOutput_WrapOnlyEdkMaterialOutput: + { + data2, ok := other.Get_().(WrapEdkMaterialOutput_WrapOnlyEdkMaterialOutput) + return ok && data1.WrappedMaterial.Equals(data2.WrappedMaterial) && data1.SymmetricSigningKey.Equals(data2.SymmetricSigningKey) && _dafny.AreEqual(data1.WrapInfo, data2.WrapInfo) + } + case WrapEdkMaterialOutput_GenerateAndWrapEdkMaterialOutput: + { + data2, ok := other.Get_().(WrapEdkMaterialOutput_GenerateAndWrapEdkMaterialOutput) + return ok && data1.PlaintextDataKey.Equals(data2.PlaintextDataKey) && data1.WrappedMaterial.Equals(data2.WrappedMaterial) && data1.SymmetricSigningKey.Equals(data2.SymmetricSigningKey) && _dafny.AreEqual(data1.WrapInfo, data2.WrapInfo) + } + default: + { + return false // unexpected + } + } +} + +func (_this WrapEdkMaterialOutput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(WrapEdkMaterialOutput) + return ok && _this.Equals(typed) +} + +func Type_WrapEdkMaterialOutput_(Type_T_ _dafny.TypeDescriptor) _dafny.TypeDescriptor { + return type_WrapEdkMaterialOutput_{Type_T_} +} + +type type_WrapEdkMaterialOutput_ struct { + Type_T_ _dafny.TypeDescriptor +} + +func (_this type_WrapEdkMaterialOutput_) Default() interface{} { + Type_T_ := _this.Type_T_ + _ = Type_T_ + return Companion_WrapEdkMaterialOutput_.Default(Type_T_.Default()) +} + +func (_this type_WrapEdkMaterialOutput_) String() string { + return "EdkWrapping.WrapEdkMaterialOutput" +} +func (_this WrapEdkMaterialOutput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = WrapEdkMaterialOutput{} + +// End of datatype WrapEdkMaterialOutput + +// Definition of datatype UnwrapEdkMaterialOutput +type UnwrapEdkMaterialOutput struct { + Data_UnwrapEdkMaterialOutput_ +} + +func (_this UnwrapEdkMaterialOutput) Get_() Data_UnwrapEdkMaterialOutput_ { + return _this.Data_UnwrapEdkMaterialOutput_ +} + +type Data_UnwrapEdkMaterialOutput_ interface { + isUnwrapEdkMaterialOutput() +} + +type CompanionStruct_UnwrapEdkMaterialOutput_ struct { +} + +var Companion_UnwrapEdkMaterialOutput_ = CompanionStruct_UnwrapEdkMaterialOutput_{} + +type UnwrapEdkMaterialOutput_UnwrapEdkMaterialOutput struct { + PlaintextDataKey _dafny.Sequence + SymmetricSigningKey m_Wrappers.Option + UnwrapInfo interface{} +} + +func (UnwrapEdkMaterialOutput_UnwrapEdkMaterialOutput) isUnwrapEdkMaterialOutput() {} + +func (CompanionStruct_UnwrapEdkMaterialOutput_) Create_UnwrapEdkMaterialOutput_(PlaintextDataKey _dafny.Sequence, SymmetricSigningKey m_Wrappers.Option, UnwrapInfo interface{}) UnwrapEdkMaterialOutput { + return UnwrapEdkMaterialOutput{UnwrapEdkMaterialOutput_UnwrapEdkMaterialOutput{PlaintextDataKey, SymmetricSigningKey, UnwrapInfo}} +} + +func (_this UnwrapEdkMaterialOutput) Is_UnwrapEdkMaterialOutput() bool { + _, ok := _this.Get_().(UnwrapEdkMaterialOutput_UnwrapEdkMaterialOutput) + return ok +} + +func (CompanionStruct_UnwrapEdkMaterialOutput_) Default(_default_T interface{}) UnwrapEdkMaterialOutput { + return Companion_UnwrapEdkMaterialOutput_.Create_UnwrapEdkMaterialOutput_(_dafny.EmptySeq, m_Wrappers.Companion_Option_.Default(), _default_T) +} + +func (_this UnwrapEdkMaterialOutput) Dtor_plaintextDataKey() _dafny.Sequence { + return _this.Get_().(UnwrapEdkMaterialOutput_UnwrapEdkMaterialOutput).PlaintextDataKey +} + +func (_this UnwrapEdkMaterialOutput) Dtor_symmetricSigningKey() m_Wrappers.Option { + return _this.Get_().(UnwrapEdkMaterialOutput_UnwrapEdkMaterialOutput).SymmetricSigningKey +} + +func (_this UnwrapEdkMaterialOutput) Dtor_unwrapInfo() interface{} { + return _this.Get_().(UnwrapEdkMaterialOutput_UnwrapEdkMaterialOutput).UnwrapInfo +} + +func (_this UnwrapEdkMaterialOutput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case UnwrapEdkMaterialOutput_UnwrapEdkMaterialOutput: + { + return "EdkWrapping.UnwrapEdkMaterialOutput.UnwrapEdkMaterialOutput" + "(" + _dafny.String(data.PlaintextDataKey) + ", " + _dafny.String(data.SymmetricSigningKey) + ", " + _dafny.String(data.UnwrapInfo) + ")" + } + default: + { + return "" + } + } +} + +func (_this UnwrapEdkMaterialOutput) Equals(other UnwrapEdkMaterialOutput) bool { + switch data1 := _this.Get_().(type) { + case UnwrapEdkMaterialOutput_UnwrapEdkMaterialOutput: + { + data2, ok := other.Get_().(UnwrapEdkMaterialOutput_UnwrapEdkMaterialOutput) + return ok && data1.PlaintextDataKey.Equals(data2.PlaintextDataKey) && data1.SymmetricSigningKey.Equals(data2.SymmetricSigningKey) && _dafny.AreEqual(data1.UnwrapInfo, data2.UnwrapInfo) + } + default: + { + return false // unexpected + } + } +} + +func (_this UnwrapEdkMaterialOutput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(UnwrapEdkMaterialOutput) + return ok && _this.Equals(typed) +} + +func Type_UnwrapEdkMaterialOutput_(Type_T_ _dafny.TypeDescriptor) _dafny.TypeDescriptor { + return type_UnwrapEdkMaterialOutput_{Type_T_} +} + +type type_UnwrapEdkMaterialOutput_ struct { + Type_T_ _dafny.TypeDescriptor +} + +func (_this type_UnwrapEdkMaterialOutput_) Default() interface{} { + Type_T_ := _this.Type_T_ + _ = Type_T_ + return Companion_UnwrapEdkMaterialOutput_.Default(Type_T_.Default()) +} + +func (_this type_UnwrapEdkMaterialOutput_) String() string { + return "EdkWrapping.UnwrapEdkMaterialOutput" +} +func (_this UnwrapEdkMaterialOutput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = UnwrapEdkMaterialOutput{} + +// End of datatype UnwrapEdkMaterialOutput diff --git a/customer-preview/mpl/ErrorMessages/ErrorMessages.go b/customer-preview/mpl/ErrorMessages/ErrorMessages.go new file mode 100644 index 000000000..9668aed0b --- /dev/null +++ b/customer-preview/mpl/ErrorMessages/ErrorMessages.go @@ -0,0 +1,337 @@ +// Package ErrorMessages +// Dafny module ErrorMessages compiled into Go + +package ErrorMessages + +import ( + os "os" + + m_ComAmazonawsDynamodbTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/ComAmazonawsDynamodbTypes" + m_Com_Amazonaws_Dynamodb "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/Com_Amazonaws_Dynamodb" + m_ComAmazonawsKmsTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/ComAmazonawsKmsTypes" + m_Com_Amazonaws_Kms "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/Com_Amazonaws_Kms" + m_AlgorithmSuites "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AlgorithmSuites" + m_AwsArnParsing "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsArnParsing" + m_AwsCryptographyKeyStoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreOperations" + m_AwsCryptographyKeyStoreTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreTypes" + m_AwsCryptographyMaterialProvidersTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersTypes" + m_AwsKmsMrkAreUnique "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkAreUnique" + m_AwsKmsMrkMatchForDecrypt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkMatchForDecrypt" + m_AwsKmsUtils "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsUtils" + m_CanonicalEncryptionContext "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CanonicalEncryptionContext" + m_Constants "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Constants" + m_CreateKeyStoreTable "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeyStoreTable" + m_CreateKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeys" + m_DDBKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DDBKeystoreOperations" + m_EdkWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/EdkWrapping" + m_GetKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/GetKeys" + m_IntermediateKeyWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/IntermediateKeyWrapping" + m_KMSKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KMSKeystoreOperations" + m_KeyStore "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStore" + m_KeyStoreErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStoreErrorMessages" + m_Keyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Keyring" + m_KmsArn "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KmsArn" + m_MaterialWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MaterialWrapping" + m_Materials "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Materials" + m_MultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MultiKeyring" + m_Structure "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Structure" + m_AtomicPrimitives "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AtomicPrimitives" + m_AwsCryptographyPrimitivesOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesOperations" + m_AwsCryptographyPrimitivesTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesTypes" + m_Digest "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Digest" + m_HKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/HKDF" + m_KdfCtr "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/KdfCtr" + m_Random "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Random" + m_WrappedHKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHKDF" + m_WrappedHMAC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHMAC" + m_Actions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Actions" + m_Base64 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64" + m_Base64Lemmas "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64Lemmas" + m_BoundedInts "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/BoundedInts" + m_DivInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternals" + m_DivInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternalsNonlinear" + m_DivMod "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivMod" + m_FileIO "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FileIO" + m_FloatCompare "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FloatCompare" + m_Functions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Functions" + m_GeneralInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GeneralInternals" + m_GetOpt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GetOpt" + m_HexStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/HexStrings" + m_Logarithm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Logarithm" + m__Math "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Math_" + m_ModInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternals" + m_ModInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternalsNonlinear" + m_Mul "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Mul" + m_MulInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternals" + m_MulInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternalsNonlinear" + m_Power "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Power" + m_Relations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Relations" + m_Seq "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq" + m_Seq_MergeSort "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq_MergeSort" + m_Sorting "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Sorting" + m_StandardLibrary "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary" + m_StandardLibraryInterop "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibraryInterop" + m_StandardLibrary_Sequence "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_Sequence" + m_StandardLibrary_String "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_String" + m_StandardLibrary_UInt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_UInt" + m_Streams "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Streams" + m_UTF8 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UTF8" + m_UUID "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UUID" + m_UnicodeStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UnicodeStrings" + m__Unicode "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Unicode_" + m_Utf16EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf16EncodingForm" + m_Utf8EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf8EncodingForm" + m_Wrappers "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers" + m__System "github.com/dafny-lang/DafnyRuntimeGo/v4/System_" + _dafny "github.com/dafny-lang/DafnyRuntimeGo/v4/dafny" +) + +var _ = os.Args +var _ _dafny.Dummy__ +var _ m__System.Dummy__ +var _ m_Wrappers.Dummy__ +var _ m_BoundedInts.Dummy__ +var _ m_StandardLibrary_UInt.Dummy__ +var _ m_StandardLibrary_Sequence.Dummy__ +var _ m_StandardLibrary_String.Dummy__ +var _ m_StandardLibrary.Dummy__ +var _ m_AwsCryptographyPrimitivesTypes.Dummy__ +var _ m_Random.Dummy__ +var _ m_Digest.Dummy__ +var _ m_WrappedHMAC.Dummy__ +var _ m_HKDF.Dummy__ +var _ m_WrappedHKDF.Dummy__ +var _ m_KdfCtr.Dummy__ +var _ m_AwsCryptographyPrimitivesOperations.Dummy__ +var _ m_AtomicPrimitives.Dummy__ +var _ m_ComAmazonawsDynamodbTypes.Dummy__ +var _ m_ComAmazonawsKmsTypes.Dummy__ +var _ m_Relations.Dummy__ +var _ m_Seq_MergeSort.Dummy__ +var _ m__Math.Dummy__ +var _ m_Seq.Dummy__ +var _ m__Unicode.Dummy__ +var _ m_Functions.Dummy__ +var _ m_Utf8EncodingForm.Dummy__ +var _ m_Utf16EncodingForm.Dummy__ +var _ m_UnicodeStrings.Dummy__ +var _ m_FileIO.Dummy__ +var _ m_GeneralInternals.Dummy__ +var _ m_MulInternalsNonlinear.Dummy__ +var _ m_MulInternals.Dummy__ +var _ m_Mul.Dummy__ +var _ m_ModInternalsNonlinear.Dummy__ +var _ m_DivInternalsNonlinear.Dummy__ +var _ m_ModInternals.Dummy__ +var _ m_DivInternals.Dummy__ +var _ m_DivMod.Dummy__ +var _ m_Power.Dummy__ +var _ m_Logarithm.Dummy__ +var _ m_StandardLibraryInterop.Dummy__ +var _ m_Streams.Dummy__ +var _ m_Sorting.Dummy__ +var _ m_HexStrings.Dummy__ +var _ m_GetOpt.Dummy__ +var _ m_FloatCompare.Dummy__ +var _ m_Base64.Dummy__ +var _ m_Base64Lemmas.Dummy__ +var _ m_Actions.Dummy__ +var _ m_AwsCryptographyKeyStoreTypes.Dummy__ +var _ m_AwsCryptographyMaterialProvidersTypes.Dummy__ +var _ m_AwsArnParsing.Dummy__ +var _ m_AwsKmsMrkMatchForDecrypt.Dummy__ +var _ m_AwsKmsUtils.Dummy__ +var _ m_KeyStoreErrorMessages.Dummy__ +var _ m_KmsArn.Dummy__ +var _ m_Structure.Dummy__ +var _ m_KMSKeystoreOperations.Dummy__ +var _ m_DDBKeystoreOperations.Dummy__ +var _ m_CreateKeys.Dummy__ +var _ m_CreateKeyStoreTable.Dummy__ +var _ m_GetKeys.Dummy__ +var _ m_AwsCryptographyKeyStoreOperations.Dummy__ +var _ m_Com_Amazonaws_Kms.Dummy__ +var _ m_Com_Amazonaws_Dynamodb.Dummy__ +var _ m_KeyStore.Dummy__ +var _ m_AlgorithmSuites.Dummy__ +var _ m_Materials.Dummy__ +var _ m_Keyring.Dummy__ +var _ m_MultiKeyring.Dummy__ +var _ m_AwsKmsMrkAreUnique.Dummy__ +var _ m_Constants.Dummy__ +var _ m_MaterialWrapping.Dummy__ +var _ m_CanonicalEncryptionContext.Dummy__ +var _ m_IntermediateKeyWrapping.Dummy__ +var _ m_EdkWrapping.Dummy__ + +type Dummy__ struct{} + +// Definition of class Default__ +type Default__ struct { + dummy byte +} + +func New_Default___() *Default__ { + _this := Default__{} + + return &_this +} + +type CompanionStruct_Default___ struct { +} + +var Companion_Default___ = CompanionStruct_Default___{} + +func (_this *Default__) Equals(other *Default__) bool { + return _this == other +} + +func (_this *Default__) EqualsGeneric(x interface{}) bool { + other, ok := x.(*Default__) + return ok && _this.Equals(other) +} + +func (*Default__) String() string { + return "ErrorMessages.Default__" +} +func (_this *Default__) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = &Default__{} + +func (_static *CompanionStruct_Default___) IncorrectRawDataKeys(datakey _dafny.Sequence, keyringName _dafny.Sequence, keyProviderId _dafny.Sequence) _dafny.Sequence { + return _dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.SeqOfString("EncryptedDataKey "), datakey), _dafny.SeqOfString(" did not match ")), keyringName), _dafny.SeqOfString(". ")), _dafny.SeqOfString("Expected: keyProviderId: ")), keyProviderId), _dafny.SeqOfString(".\n")) +} +func (_static *CompanionStruct_Default___) IncorrectDataKeys(encryptedDataKeys _dafny.Sequence, material m_AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo, errMsg _dafny.Sequence) m_Wrappers.Result { + var _0_valueOrError0 m_Wrappers.Result = Companion_Default___.IncorrectDataKeysExpectedValues(encryptedDataKeys, material, errMsg) + _ = _0_valueOrError0 + if (_0_valueOrError0).IsFailure() { + return (_0_valueOrError0).PropagateFailure() + } else { + var _1_expectedValue _dafny.Sequence = (_0_valueOrError0).Extract().(_dafny.Sequence) + _ = _1_expectedValue + return m_Wrappers.Companion_Result_.Create_Success_(_dafny.Companion_Sequence_.Concatenate(_dafny.SeqOfString("Unable to decrypt data key: No Encrypted Data Keys found to match. \n Expected: \n"), _1_expectedValue)) + } +} +func (_static *CompanionStruct_Default___) IncorrectDataKeysExpectedValues(encryptedDataKeys _dafny.Sequence, material m_AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo, errMsg _dafny.Sequence) m_Wrappers.Result { + goto TAIL_CALL_START +TAIL_CALL_START: + if (_dafny.IntOfUint32((encryptedDataKeys).Cardinality())).Sign() == 0 { + return m_Wrappers.Companion_Result_.Create_Success_(errMsg) + } else { + var _0_encryptedDataKey m_AwsCryptographyMaterialProvidersTypes.EncryptedDataKey = (encryptedDataKeys).Select(0).(m_AwsCryptographyMaterialProvidersTypes.EncryptedDataKey) + _ = _0_encryptedDataKey + var _1_valueOrError0 m_Wrappers.Result = (m_UTF8.Decode((_0_encryptedDataKey).Dtor_keyProviderId())).MapFailure(func(coer49 func(_dafny.Sequence) m_AwsCryptographyMaterialProvidersTypes.Error) func(interface{}) interface{} { + return func(arg50 interface{}) interface{} { + return coer49(arg50.(_dafny.Sequence)) + } + }(func(_2_e _dafny.Sequence) m_AwsCryptographyMaterialProvidersTypes.Error { + return m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_2_e) + })) + _ = _1_valueOrError0 + if (_1_valueOrError0).IsFailure() { + return (_1_valueOrError0).PropagateFailure() + } else { + var _3_extractedKeyProviderId _dafny.Sequence = (_1_valueOrError0).Extract().(_dafny.Sequence) + _ = _3_extractedKeyProviderId + var _4_valueOrError1 m_Wrappers.Result = (m_UTF8.Decode((_0_encryptedDataKey).Dtor_keyProviderInfo())).MapFailure(func(coer50 func(_dafny.Sequence) m_AwsCryptographyMaterialProvidersTypes.Error) func(interface{}) interface{} { + return func(arg51 interface{}) interface{} { + return coer50(arg51.(_dafny.Sequence)) + } + }(func(_5_e _dafny.Sequence) m_AwsCryptographyMaterialProvidersTypes.Error { + return m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_5_e) + })) + _ = _4_valueOrError1 + if (_4_valueOrError1).IsFailure() { + return (_4_valueOrError1).PropagateFailure() + } else { + var _6_extractedKeyProviderInfo _dafny.Sequence = (_4_valueOrError1).Extract().(_dafny.Sequence) + _ = _6_extractedKeyProviderInfo + if !_dafny.Companion_Sequence_.Equal(_3_extractedKeyProviderId, _dafny.SeqOfString("aws-kms-hierarchy")) { + var _in0 _dafny.Sequence = (encryptedDataKeys).Drop(1) + _ = _in0 + var _in1 m_AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo = material + _ = _in1 + var _in2 _dafny.Sequence = _dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(errMsg, _dafny.SeqOfString("KeyProviderId: ")), _3_extractedKeyProviderId), _dafny.SeqOfString(", KeyProviderInfo: ")), _6_extractedKeyProviderInfo), _dafny.SeqOfString("\n")) + _ = _in2 + encryptedDataKeys = _in0 + material = _in1 + errMsg = _in2 + goto TAIL_CALL_START + } else { + var _7_valueOrError2 m_Wrappers.Result = m_EdkWrapping.Companion_Default___.GetProviderWrappedMaterial((_0_encryptedDataKey).Dtor_ciphertext(), material) + _ = _7_valueOrError2 + if (_7_valueOrError2).IsFailure() { + return (_7_valueOrError2).PropagateFailure() + } else { + var _8_providerWrappedMaterial _dafny.Sequence = (_7_valueOrError2).Extract().(_dafny.Sequence) + _ = _8_providerWrappedMaterial + var _9_EDK__CIPHERTEXT__BRANCH__KEY__VERSION__INDEX _dafny.Int = (Companion_Default___.SALT__LENGTH()).Plus(Companion_Default___.IV__LENGTH()) + _ = _9_EDK__CIPHERTEXT__BRANCH__KEY__VERSION__INDEX + var _10_EDK__CIPHERTEXT__VERSION__INDEX _dafny.Int = (_9_EDK__CIPHERTEXT__BRANCH__KEY__VERSION__INDEX).Plus(Companion_Default___.VERSION__LENGTH()) + _ = _10_EDK__CIPHERTEXT__VERSION__INDEX + var _11_valueOrError3 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need((_9_EDK__CIPHERTEXT__BRANCH__KEY__VERSION__INDEX).Cmp(_10_EDK__CIPHERTEXT__VERSION__INDEX) < 0, m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.SeqOfString("Wrong branch key version index."))) + _ = _11_valueOrError3 + if (_11_valueOrError3).IsFailure() { + return (_11_valueOrError3).PropagateFailure() + } else { + var _12_valueOrError4 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need((_dafny.IntOfUint32((_8_providerWrappedMaterial).Cardinality())).Cmp(_10_EDK__CIPHERTEXT__VERSION__INDEX) >= 0, m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.SeqOfString("Incorrect ciphertext structure."))) + _ = _12_valueOrError4 + if (_12_valueOrError4).IsFailure() { + return (_12_valueOrError4).PropagateFailure() + } else { + var _13_branchKeyVersionUuid _dafny.Sequence = (_8_providerWrappedMaterial).Subsequence((_9_EDK__CIPHERTEXT__BRANCH__KEY__VERSION__INDEX).Uint32(), (_10_EDK__CIPHERTEXT__VERSION__INDEX).Uint32()) + _ = _13_branchKeyVersionUuid + var _14_valueOrError5 m_Wrappers.Result = (m_UUID.FromByteArray(_13_branchKeyVersionUuid)).MapFailure(func(coer51 func(_dafny.Sequence) m_AwsCryptographyMaterialProvidersTypes.Error) func(interface{}) interface{} { + return func(arg52 interface{}) interface{} { + return coer51(arg52.(_dafny.Sequence)) + } + }(func(_15_e _dafny.Sequence) m_AwsCryptographyMaterialProvidersTypes.Error { + return m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_15_e) + })) + _ = _14_valueOrError5 + if (_14_valueOrError5).IsFailure() { + return (_14_valueOrError5).PropagateFailure() + } else { + var _16_branchVersion _dafny.Sequence = (_14_valueOrError5).Extract().(_dafny.Sequence) + _ = _16_branchVersion + var _in3 _dafny.Sequence = (encryptedDataKeys).Drop(1) + _ = _in3 + var _in4 m_AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo = material + _ = _in4 + var _in5 _dafny.Sequence = _dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(errMsg, _dafny.SeqOfString("KeyProviderId: ")), _3_extractedKeyProviderId), _dafny.SeqOfString(", KeyProviderInfo: ")), _6_extractedKeyProviderInfo), _dafny.SeqOfString(", BranchKeyVersion: ")), _16_branchVersion), _dafny.SeqOfString("\n")) + _ = _in5 + encryptedDataKeys = _in3 + material = _in4 + errMsg = _in5 + goto TAIL_CALL_START + } + } + } + } + } + } + } + } +} +func (_static *CompanionStruct_Default___) SALT__LENGTH() _dafny.Int { + return _dafny.IntOfInt64(16) +} +func (_static *CompanionStruct_Default___) IV__LENGTH() _dafny.Int { + return _dafny.IntOfInt64(12) +} +func (_static *CompanionStruct_Default___) VERSION__LENGTH() _dafny.Int { + return _dafny.IntOfInt64(16) +} +func (_static *CompanionStruct_Default___) KMS__ECDH__DISCOVERY__ENCRYPT__ERROR() _dafny.Sequence { + return _dafny.SeqOfString("KmsPublicKeyDiscovery Key Agreement Scheme is forbidden on encrypt.") +} +func (_static *CompanionStruct_Default___) RAW__ECDH__DISCOVERY__ENCRYPT__ERROR() _dafny.Sequence { + return _dafny.SeqOfString("PublicKeyDiscovery Key Agreement Scheme is forbidden on encrypt.") +} +func (_static *CompanionStruct_Default___) RAW__ECDH__EPHEMERAL__DECRYPT__ERROR() _dafny.Sequence { + return _dafny.SeqOfString("EphemeralPrivateKeyToStaticPublicKey Key Agreement Scheme is forbidden on decrypt.") +} + +// End of class Default__ diff --git a/customer-preview/mpl/GetKeys/GetKeys.go b/customer-preview/mpl/GetKeys/GetKeys.go new file mode 100644 index 000000000..6684f9da9 --- /dev/null +++ b/customer-preview/mpl/GetKeys/GetKeys.go @@ -0,0 +1,352 @@ +// Package GetKeys +// Dafny module GetKeys compiled into Go + +package GetKeys + +import ( + os "os" + + m_ComAmazonawsDynamodbTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/ComAmazonawsDynamodbTypes" + m_ComAmazonawsKmsTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/ComAmazonawsKmsTypes" + m_AwsArnParsing "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsArnParsing" + m_AwsCryptographyKeyStoreTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreTypes" + m_AwsCryptographyMaterialProvidersTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersTypes" + m_AwsKmsMrkMatchForDecrypt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkMatchForDecrypt" + m_AwsKmsUtils "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsUtils" + m_CreateKeyStoreTable "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeyStoreTable" + m_CreateKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeys" + m_DDBKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DDBKeystoreOperations" + m_KMSKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KMSKeystoreOperations" + m_KeyStoreErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStoreErrorMessages" + m_KmsArn "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KmsArn" + m_Structure "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Structure" + m_AtomicPrimitives "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AtomicPrimitives" + m_AwsCryptographyPrimitivesOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesOperations" + m_AwsCryptographyPrimitivesTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesTypes" + m_Digest "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Digest" + m_HKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/HKDF" + m_KdfCtr "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/KdfCtr" + m_Random "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Random" + m_WrappedHKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHKDF" + m_WrappedHMAC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHMAC" + m_Actions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Actions" + m_Base64 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64" + m_Base64Lemmas "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64Lemmas" + m_BoundedInts "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/BoundedInts" + m_DivInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternals" + m_DivInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternalsNonlinear" + m_DivMod "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivMod" + m_FileIO "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FileIO" + m_FloatCompare "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FloatCompare" + m_Functions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Functions" + m_GeneralInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GeneralInternals" + m_GetOpt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GetOpt" + m_HexStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/HexStrings" + m_Logarithm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Logarithm" + m__Math "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Math_" + m_ModInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternals" + m_ModInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternalsNonlinear" + m_Mul "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Mul" + m_MulInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternals" + m_MulInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternalsNonlinear" + m_Power "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Power" + m_Relations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Relations" + m_Seq "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq" + m_Seq_MergeSort "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq_MergeSort" + m_Sorting "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Sorting" + m_StandardLibrary "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary" + m_StandardLibraryInterop "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibraryInterop" + m_StandardLibrary_Sequence "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_Sequence" + m_StandardLibrary_String "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_String" + m_StandardLibrary_UInt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_UInt" + m_Streams "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Streams" + m_UnicodeStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UnicodeStrings" + m__Unicode "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Unicode_" + m_Utf16EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf16EncodingForm" + m_Utf8EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf8EncodingForm" + m_Wrappers "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers" + m__System "github.com/dafny-lang/DafnyRuntimeGo/v4/System_" + _dafny "github.com/dafny-lang/DafnyRuntimeGo/v4/dafny" +) + +var _ = os.Args +var _ _dafny.Dummy__ +var _ m__System.Dummy__ +var _ m_Wrappers.Dummy__ +var _ m_BoundedInts.Dummy__ +var _ m_StandardLibrary_UInt.Dummy__ +var _ m_StandardLibrary_Sequence.Dummy__ +var _ m_StandardLibrary_String.Dummy__ +var _ m_StandardLibrary.Dummy__ +var _ m_AwsCryptographyPrimitivesTypes.Dummy__ +var _ m_Random.Dummy__ +var _ m_Digest.Dummy__ +var _ m_WrappedHMAC.Dummy__ +var _ m_HKDF.Dummy__ +var _ m_WrappedHKDF.Dummy__ +var _ m_KdfCtr.Dummy__ +var _ m_AwsCryptographyPrimitivesOperations.Dummy__ +var _ m_AtomicPrimitives.Dummy__ +var _ m_ComAmazonawsDynamodbTypes.Dummy__ +var _ m_ComAmazonawsKmsTypes.Dummy__ +var _ m_Relations.Dummy__ +var _ m_Seq_MergeSort.Dummy__ +var _ m__Math.Dummy__ +var _ m_Seq.Dummy__ +var _ m__Unicode.Dummy__ +var _ m_Functions.Dummy__ +var _ m_Utf8EncodingForm.Dummy__ +var _ m_Utf16EncodingForm.Dummy__ +var _ m_UnicodeStrings.Dummy__ +var _ m_FileIO.Dummy__ +var _ m_GeneralInternals.Dummy__ +var _ m_MulInternalsNonlinear.Dummy__ +var _ m_MulInternals.Dummy__ +var _ m_Mul.Dummy__ +var _ m_ModInternalsNonlinear.Dummy__ +var _ m_DivInternalsNonlinear.Dummy__ +var _ m_ModInternals.Dummy__ +var _ m_DivInternals.Dummy__ +var _ m_DivMod.Dummy__ +var _ m_Power.Dummy__ +var _ m_Logarithm.Dummy__ +var _ m_StandardLibraryInterop.Dummy__ +var _ m_Streams.Dummy__ +var _ m_Sorting.Dummy__ +var _ m_HexStrings.Dummy__ +var _ m_GetOpt.Dummy__ +var _ m_FloatCompare.Dummy__ +var _ m_Base64.Dummy__ +var _ m_Base64Lemmas.Dummy__ +var _ m_Actions.Dummy__ +var _ m_AwsCryptographyKeyStoreTypes.Dummy__ +var _ m_AwsCryptographyMaterialProvidersTypes.Dummy__ +var _ m_AwsArnParsing.Dummy__ +var _ m_AwsKmsMrkMatchForDecrypt.Dummy__ +var _ m_AwsKmsUtils.Dummy__ +var _ m_KeyStoreErrorMessages.Dummy__ +var _ m_KmsArn.Dummy__ +var _ m_Structure.Dummy__ +var _ m_KMSKeystoreOperations.Dummy__ +var _ m_DDBKeystoreOperations.Dummy__ +var _ m_CreateKeys.Dummy__ +var _ m_CreateKeyStoreTable.Dummy__ + +type Dummy__ struct{} + +// Definition of class Default__ +type Default__ struct { + dummy byte +} + +func New_Default___() *Default__ { + _this := Default__{} + + return &_this +} + +type CompanionStruct_Default___ struct { +} + +var Companion_Default___ = CompanionStruct_Default___{} + +func (_this *Default__) Equals(other *Default__) bool { + return _this == other +} + +func (_this *Default__) EqualsGeneric(x interface{}) bool { + other, ok := x.(*Default__) + return ok && _this.Equals(other) +} + +func (*Default__) String() string { + return "GetKeys.Default__" +} +func (_this *Default__) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = &Default__{} + +func (_static *CompanionStruct_Default___) GetActiveKeyAndUnwrap(input m_AwsCryptographyKeyStoreTypes.GetActiveBranchKeyInput, tableName _dafny.Sequence, logicalKeyStoreName _dafny.Sequence, kmsConfiguration m_AwsCryptographyKeyStoreTypes.KMSConfiguration, grantTokens _dafny.Sequence, kmsClient m_ComAmazonawsKmsTypes.IKMSClient, ddbClient m_ComAmazonawsDynamodbTypes.IDynamoDBClient) m_Wrappers.Result { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_AwsCryptographyKeyStoreTypes.Companion_GetActiveBranchKeyOutput_.Default()) + _ = output + var _0_valueOrError0 m_Wrappers.Result = m_Wrappers.Result{} + _ = _0_valueOrError0 + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_DDBKeystoreOperations.Companion_Default___.GetActiveBranchKeyItem((input).Dtor_branchKeyIdentifier(), tableName, ddbClient) + _0_valueOrError0 = _out0 + if (_0_valueOrError0).IsFailure() { + output = (_0_valueOrError0).PropagateFailure() + return output + } + var _1_branchKeyItem _dafny.Map + _ = _1_branchKeyItem + _1_branchKeyItem = (_0_valueOrError0).Extract().(_dafny.Map) + var _2_encryptionContext _dafny.Map + _ = _2_encryptionContext + _2_encryptionContext = m_Structure.Companion_Default___.ToBranchKeyContext(_1_branchKeyItem, logicalKeyStoreName) + var _3_valueOrError1 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _3_valueOrError1 + _3_valueOrError1 = m_Wrappers.Companion_Default___.Need(m_KmsArn.Companion_Default___.ValidKmsArn_q((_2_encryptionContext).Get(m_Structure.Companion_Default___.KMS__FIELD()).(_dafny.Sequence)), m_AwsCryptographyKeyStoreTypes.Companion_Error_.Create_KeyStoreException_(m_KeyStoreErrorMessages.Companion_Default___.RETRIEVED__KEYSTORE__ITEM__INVALID__KMS__ARN())) + if (_3_valueOrError1).IsFailure() { + output = (_3_valueOrError1).PropagateFailure() + return output + } + var _4_valueOrError2 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _4_valueOrError2 + _4_valueOrError2 = m_Wrappers.Companion_Default___.Need(m_KMSKeystoreOperations.Companion_Default___.AttemptKmsOperation_q(kmsConfiguration, _2_encryptionContext), m_AwsCryptographyKeyStoreTypes.Companion_Error_.Create_KeyStoreException_(m_KeyStoreErrorMessages.Companion_Default___.GET__KEY__ARN__DISAGREEMENT())) + if (_4_valueOrError2).IsFailure() { + output = (_4_valueOrError2).PropagateFailure() + return output + } + var _5_valueOrError3 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_ComAmazonawsKmsTypes.Companion_DecryptResponse_.Default()) + _ = _5_valueOrError3 + var _out1 m_Wrappers.Result + _ = _out1 + _out1 = m_KMSKeystoreOperations.Companion_Default___.DecryptKey(_2_encryptionContext, _1_branchKeyItem, kmsConfiguration, grantTokens, kmsClient) + _5_valueOrError3 = _out1 + if (_5_valueOrError3).IsFailure() { + output = (_5_valueOrError3).PropagateFailure() + return output + } + var _6_branchKey m_ComAmazonawsKmsTypes.DecryptResponse + _ = _6_branchKey + _6_branchKey = (_5_valueOrError3).Extract().(m_ComAmazonawsKmsTypes.DecryptResponse) + var _7_valueOrError4 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_AwsCryptographyKeyStoreTypes.Companion_BranchKeyMaterials_.Default()) + _ = _7_valueOrError4 + _7_valueOrError4 = m_Structure.Companion_Default___.ToBranchKeyMaterials(_2_encryptionContext, ((_6_branchKey).Dtor_Plaintext()).Dtor_value().(_dafny.Sequence)) + if (_7_valueOrError4).IsFailure() { + output = (_7_valueOrError4).PropagateFailure() + return output + } + var _8_branchKeyMaterials m_AwsCryptographyKeyStoreTypes.BranchKeyMaterials + _ = _8_branchKeyMaterials + _8_branchKeyMaterials = (_7_valueOrError4).Extract().(m_AwsCryptographyKeyStoreTypes.BranchKeyMaterials) + output = m_Wrappers.Companion_Result_.Create_Success_(m_AwsCryptographyKeyStoreTypes.Companion_GetActiveBranchKeyOutput_.Create_GetActiveBranchKeyOutput_(_8_branchKeyMaterials)) + return output + return output +} +func (_static *CompanionStruct_Default___) GetBranchKeyVersion(input m_AwsCryptographyKeyStoreTypes.GetBranchKeyVersionInput, tableName _dafny.Sequence, logicalKeyStoreName _dafny.Sequence, kmsConfiguration m_AwsCryptographyKeyStoreTypes.KMSConfiguration, grantTokens _dafny.Sequence, kmsClient m_ComAmazonawsKmsTypes.IKMSClient, ddbClient m_ComAmazonawsDynamodbTypes.IDynamoDBClient) m_Wrappers.Result { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_AwsCryptographyKeyStoreTypes.Companion_GetBranchKeyVersionOutput_.Default()) + _ = output + var _0_valueOrError0 m_Wrappers.Result = m_Wrappers.Result{} + _ = _0_valueOrError0 + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_DDBKeystoreOperations.Companion_Default___.GetVersionBranchKeyItem((input).Dtor_branchKeyIdentifier(), (input).Dtor_branchKeyVersion(), tableName, ddbClient) + _0_valueOrError0 = _out0 + if (_0_valueOrError0).IsFailure() { + output = (_0_valueOrError0).PropagateFailure() + return output + } + var _1_branchKeyItem _dafny.Map + _ = _1_branchKeyItem + _1_branchKeyItem = (_0_valueOrError0).Extract().(_dafny.Map) + var _2_encryptionContext _dafny.Map + _ = _2_encryptionContext + _2_encryptionContext = m_Structure.Companion_Default___.ToBranchKeyContext(_1_branchKeyItem, logicalKeyStoreName) + var _3_valueOrError1 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _3_valueOrError1 + _3_valueOrError1 = m_Wrappers.Companion_Default___.Need(m_KmsArn.Companion_Default___.ValidKmsArn_q((_2_encryptionContext).Get(m_Structure.Companion_Default___.KMS__FIELD()).(_dafny.Sequence)), m_AwsCryptographyKeyStoreTypes.Companion_Error_.Create_KeyStoreException_(m_KeyStoreErrorMessages.Companion_Default___.RETRIEVED__KEYSTORE__ITEM__INVALID__KMS__ARN())) + if (_3_valueOrError1).IsFailure() { + output = (_3_valueOrError1).PropagateFailure() + return output + } + var _4_valueOrError2 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _4_valueOrError2 + _4_valueOrError2 = m_Wrappers.Companion_Default___.Need(m_KMSKeystoreOperations.Companion_Default___.AttemptKmsOperation_q(kmsConfiguration, _2_encryptionContext), m_AwsCryptographyKeyStoreTypes.Companion_Error_.Create_KeyStoreException_(_dafny.SeqOfString("AWS KMS Key ARN does not match configured value"))) + if (_4_valueOrError2).IsFailure() { + output = (_4_valueOrError2).PropagateFailure() + return output + } + var _5_valueOrError3 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_ComAmazonawsKmsTypes.Companion_DecryptResponse_.Default()) + _ = _5_valueOrError3 + var _out1 m_Wrappers.Result + _ = _out1 + _out1 = m_KMSKeystoreOperations.Companion_Default___.DecryptKey(_2_encryptionContext, _1_branchKeyItem, kmsConfiguration, grantTokens, kmsClient) + _5_valueOrError3 = _out1 + if (_5_valueOrError3).IsFailure() { + output = (_5_valueOrError3).PropagateFailure() + return output + } + var _6_branchKey m_ComAmazonawsKmsTypes.DecryptResponse + _ = _6_branchKey + _6_branchKey = (_5_valueOrError3).Extract().(m_ComAmazonawsKmsTypes.DecryptResponse) + var _7_valueOrError4 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_AwsCryptographyKeyStoreTypes.Companion_BranchKeyMaterials_.Default()) + _ = _7_valueOrError4 + _7_valueOrError4 = m_Structure.Companion_Default___.ToBranchKeyMaterials(_2_encryptionContext, ((_6_branchKey).Dtor_Plaintext()).Dtor_value().(_dafny.Sequence)) + if (_7_valueOrError4).IsFailure() { + output = (_7_valueOrError4).PropagateFailure() + return output + } + var _8_branchKeyMaterials m_AwsCryptographyKeyStoreTypes.BranchKeyMaterials + _ = _8_branchKeyMaterials + _8_branchKeyMaterials = (_7_valueOrError4).Extract().(m_AwsCryptographyKeyStoreTypes.BranchKeyMaterials) + output = m_Wrappers.Companion_Result_.Create_Success_(m_AwsCryptographyKeyStoreTypes.Companion_GetBranchKeyVersionOutput_.Create_GetBranchKeyVersionOutput_(_8_branchKeyMaterials)) + return output + return output +} +func (_static *CompanionStruct_Default___) GetBeaconKeyAndUnwrap(input m_AwsCryptographyKeyStoreTypes.GetBeaconKeyInput, tableName _dafny.Sequence, logicalKeyStoreName _dafny.Sequence, kmsConfiguration m_AwsCryptographyKeyStoreTypes.KMSConfiguration, grantTokens _dafny.Sequence, kmsClient m_ComAmazonawsKmsTypes.IKMSClient, ddbClient m_ComAmazonawsDynamodbTypes.IDynamoDBClient) m_Wrappers.Result { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_AwsCryptographyKeyStoreTypes.Companion_GetBeaconKeyOutput_.Default()) + _ = output + var _0_valueOrError0 m_Wrappers.Result = m_Wrappers.Result{} + _ = _0_valueOrError0 + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_DDBKeystoreOperations.Companion_Default___.GetBeaconKeyItem((input).Dtor_branchKeyIdentifier(), tableName, ddbClient) + _0_valueOrError0 = _out0 + if (_0_valueOrError0).IsFailure() { + output = (_0_valueOrError0).PropagateFailure() + return output + } + var _1_branchKeyItem _dafny.Map + _ = _1_branchKeyItem + _1_branchKeyItem = (_0_valueOrError0).Extract().(_dafny.Map) + var _2_encryptionContext _dafny.Map + _ = _2_encryptionContext + _2_encryptionContext = m_Structure.Companion_Default___.ToBranchKeyContext(_1_branchKeyItem, logicalKeyStoreName) + var _3_valueOrError1 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _3_valueOrError1 + _3_valueOrError1 = m_Wrappers.Companion_Default___.Need(m_KmsArn.Companion_Default___.ValidKmsArn_q((_2_encryptionContext).Get(m_Structure.Companion_Default___.KMS__FIELD()).(_dafny.Sequence)), m_AwsCryptographyKeyStoreTypes.Companion_Error_.Create_KeyStoreException_(m_KeyStoreErrorMessages.Companion_Default___.RETRIEVED__KEYSTORE__ITEM__INVALID__KMS__ARN())) + if (_3_valueOrError1).IsFailure() { + output = (_3_valueOrError1).PropagateFailure() + return output + } + var _4_valueOrError2 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _4_valueOrError2 + _4_valueOrError2 = m_Wrappers.Companion_Default___.Need(m_KMSKeystoreOperations.Companion_Default___.AttemptKmsOperation_q(kmsConfiguration, _2_encryptionContext), m_AwsCryptographyKeyStoreTypes.Companion_Error_.Create_KeyStoreException_(_dafny.SeqOfString("AWS KMS Key ARN does not match configured value"))) + if (_4_valueOrError2).IsFailure() { + output = (_4_valueOrError2).PropagateFailure() + return output + } + var _5_valueOrError3 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_ComAmazonawsKmsTypes.Companion_DecryptResponse_.Default()) + _ = _5_valueOrError3 + var _out1 m_Wrappers.Result + _ = _out1 + _out1 = m_KMSKeystoreOperations.Companion_Default___.DecryptKey(_2_encryptionContext, _1_branchKeyItem, kmsConfiguration, grantTokens, kmsClient) + _5_valueOrError3 = _out1 + if (_5_valueOrError3).IsFailure() { + output = (_5_valueOrError3).PropagateFailure() + return output + } + var _6_branchKey m_ComAmazonawsKmsTypes.DecryptResponse + _ = _6_branchKey + _6_branchKey = (_5_valueOrError3).Extract().(m_ComAmazonawsKmsTypes.DecryptResponse) + var _7_valueOrError4 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_AwsCryptographyKeyStoreTypes.Companion_BeaconKeyMaterials_.Default()) + _ = _7_valueOrError4 + _7_valueOrError4 = m_Structure.Companion_Default___.ToBeaconKeyMaterials(_2_encryptionContext, ((_6_branchKey).Dtor_Plaintext()).Dtor_value().(_dafny.Sequence)) + if (_7_valueOrError4).IsFailure() { + output = (_7_valueOrError4).PropagateFailure() + return output + } + var _8_branchKeyMaterials m_AwsCryptographyKeyStoreTypes.BeaconKeyMaterials + _ = _8_branchKeyMaterials + _8_branchKeyMaterials = (_7_valueOrError4).Extract().(m_AwsCryptographyKeyStoreTypes.BeaconKeyMaterials) + output = m_Wrappers.Companion_Result_.Create_Success_(m_AwsCryptographyKeyStoreTypes.Companion_GetBeaconKeyOutput_.Create_GetBeaconKeyOutput_(_8_branchKeyMaterials)) + return output + return output +} + +// End of class Default__ diff --git a/customer-preview/mpl/IntermediateKeyWrapping/IntermediateKeyWrapping.go b/customer-preview/mpl/IntermediateKeyWrapping/IntermediateKeyWrapping.go new file mode 100644 index 000000000..ea2744590 --- /dev/null +++ b/customer-preview/mpl/IntermediateKeyWrapping/IntermediateKeyWrapping.go @@ -0,0 +1,1174 @@ +// Package IntermediateKeyWrapping +// Dafny module IntermediateKeyWrapping compiled into Go + +package IntermediateKeyWrapping + +import ( + os "os" + + m_ComAmazonawsDynamodbTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/ComAmazonawsDynamodbTypes" + m_Com_Amazonaws_Dynamodb "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/Com_Amazonaws_Dynamodb" + m_ComAmazonawsKmsTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/ComAmazonawsKmsTypes" + m_Com_Amazonaws_Kms "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/Com_Amazonaws_Kms" + m_AlgorithmSuites "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AlgorithmSuites" + m_AwsArnParsing "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsArnParsing" + m_AwsCryptographyKeyStoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreOperations" + m_AwsCryptographyKeyStoreTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreTypes" + m_AwsCryptographyMaterialProvidersTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersTypes" + m_AwsKmsMrkAreUnique "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkAreUnique" + m_AwsKmsMrkMatchForDecrypt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkMatchForDecrypt" + m_AwsKmsUtils "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsUtils" + m_CanonicalEncryptionContext "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CanonicalEncryptionContext" + m_Constants "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Constants" + m_CreateKeyStoreTable "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeyStoreTable" + m_CreateKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeys" + m_DDBKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DDBKeystoreOperations" + m_GetKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/GetKeys" + m_KMSKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KMSKeystoreOperations" + m_KeyStore "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStore" + m_KeyStoreErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStoreErrorMessages" + m_Keyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Keyring" + m_KmsArn "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KmsArn" + m_MaterialWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MaterialWrapping" + m_Materials "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Materials" + m_MultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MultiKeyring" + m_Structure "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Structure" + m_AtomicPrimitives "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AtomicPrimitives" + m_AwsCryptographyPrimitivesOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesOperations" + m_AwsCryptographyPrimitivesTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesTypes" + m_Digest "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Digest" + m_HKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/HKDF" + m_KdfCtr "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/KdfCtr" + m_Random "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Random" + m_WrappedHKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHKDF" + m_WrappedHMAC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHMAC" + m_Actions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Actions" + m_Base64 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64" + m_Base64Lemmas "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64Lemmas" + m_BoundedInts "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/BoundedInts" + m_DivInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternals" + m_DivInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternalsNonlinear" + m_DivMod "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivMod" + m_FileIO "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FileIO" + m_FloatCompare "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FloatCompare" + m_Functions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Functions" + m_GeneralInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GeneralInternals" + m_GetOpt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GetOpt" + m_HexStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/HexStrings" + m_Logarithm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Logarithm" + m__Math "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Math_" + m_ModInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternals" + m_ModInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternalsNonlinear" + m_Mul "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Mul" + m_MulInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternals" + m_MulInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternalsNonlinear" + m_Power "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Power" + m_Relations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Relations" + m_Seq "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq" + m_Seq_MergeSort "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq_MergeSort" + m_Sorting "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Sorting" + m_StandardLibrary "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary" + m_StandardLibraryInterop "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibraryInterop" + m_StandardLibrary_Sequence "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_Sequence" + m_StandardLibrary_String "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_String" + m_StandardLibrary_UInt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_UInt" + m_Streams "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Streams" + m_UTF8 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UTF8" + m_UnicodeStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UnicodeStrings" + m__Unicode "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Unicode_" + m_Utf16EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf16EncodingForm" + m_Utf8EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf8EncodingForm" + m_Wrappers "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers" + m__System "github.com/dafny-lang/DafnyRuntimeGo/v4/System_" + _dafny "github.com/dafny-lang/DafnyRuntimeGo/v4/dafny" +) + +var _ = os.Args +var _ _dafny.Dummy__ +var _ m__System.Dummy__ +var _ m_Wrappers.Dummy__ +var _ m_BoundedInts.Dummy__ +var _ m_StandardLibrary_UInt.Dummy__ +var _ m_StandardLibrary_Sequence.Dummy__ +var _ m_StandardLibrary_String.Dummy__ +var _ m_StandardLibrary.Dummy__ +var _ m_AwsCryptographyPrimitivesTypes.Dummy__ +var _ m_Random.Dummy__ +var _ m_Digest.Dummy__ +var _ m_WrappedHMAC.Dummy__ +var _ m_HKDF.Dummy__ +var _ m_WrappedHKDF.Dummy__ +var _ m_KdfCtr.Dummy__ +var _ m_AwsCryptographyPrimitivesOperations.Dummy__ +var _ m_AtomicPrimitives.Dummy__ +var _ m_ComAmazonawsDynamodbTypes.Dummy__ +var _ m_ComAmazonawsKmsTypes.Dummy__ +var _ m_Relations.Dummy__ +var _ m_Seq_MergeSort.Dummy__ +var _ m__Math.Dummy__ +var _ m_Seq.Dummy__ +var _ m__Unicode.Dummy__ +var _ m_Functions.Dummy__ +var _ m_Utf8EncodingForm.Dummy__ +var _ m_Utf16EncodingForm.Dummy__ +var _ m_UnicodeStrings.Dummy__ +var _ m_FileIO.Dummy__ +var _ m_GeneralInternals.Dummy__ +var _ m_MulInternalsNonlinear.Dummy__ +var _ m_MulInternals.Dummy__ +var _ m_Mul.Dummy__ +var _ m_ModInternalsNonlinear.Dummy__ +var _ m_DivInternalsNonlinear.Dummy__ +var _ m_ModInternals.Dummy__ +var _ m_DivInternals.Dummy__ +var _ m_DivMod.Dummy__ +var _ m_Power.Dummy__ +var _ m_Logarithm.Dummy__ +var _ m_StandardLibraryInterop.Dummy__ +var _ m_Streams.Dummy__ +var _ m_Sorting.Dummy__ +var _ m_HexStrings.Dummy__ +var _ m_GetOpt.Dummy__ +var _ m_FloatCompare.Dummy__ +var _ m_Base64.Dummy__ +var _ m_Base64Lemmas.Dummy__ +var _ m_Actions.Dummy__ +var _ m_AwsCryptographyKeyStoreTypes.Dummy__ +var _ m_AwsCryptographyMaterialProvidersTypes.Dummy__ +var _ m_AwsArnParsing.Dummy__ +var _ m_AwsKmsMrkMatchForDecrypt.Dummy__ +var _ m_AwsKmsUtils.Dummy__ +var _ m_KeyStoreErrorMessages.Dummy__ +var _ m_KmsArn.Dummy__ +var _ m_Structure.Dummy__ +var _ m_KMSKeystoreOperations.Dummy__ +var _ m_DDBKeystoreOperations.Dummy__ +var _ m_CreateKeys.Dummy__ +var _ m_CreateKeyStoreTable.Dummy__ +var _ m_GetKeys.Dummy__ +var _ m_AwsCryptographyKeyStoreOperations.Dummy__ +var _ m_Com_Amazonaws_Kms.Dummy__ +var _ m_Com_Amazonaws_Dynamodb.Dummy__ +var _ m_KeyStore.Dummy__ +var _ m_AlgorithmSuites.Dummy__ +var _ m_Materials.Dummy__ +var _ m_Keyring.Dummy__ +var _ m_MultiKeyring.Dummy__ +var _ m_AwsKmsMrkAreUnique.Dummy__ +var _ m_Constants.Dummy__ +var _ m_MaterialWrapping.Dummy__ +var _ m_CanonicalEncryptionContext.Dummy__ + +type Dummy__ struct{} + +// Definition of class Default__ +type Default__ struct { + dummy byte +} + +func New_Default___() *Default__ { + _this := Default__{} + + return &_this +} + +type CompanionStruct_Default___ struct { +} + +var Companion_Default___ = CompanionStruct_Default___{} + +func (_this *Default__) Equals(other *Default__) bool { + return _this == other +} + +func (_this *Default__) EqualsGeneric(x interface{}) bool { + other, ok := x.(*Default__) + return ok && _this.Equals(other) +} + +func (*Default__) String() string { + return "IntermediateKeyWrapping.Default__" +} +func (_this *Default__) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = &Default__{} + +func (_static *CompanionStruct_Default___) IntermediateUnwrap(unwrap m_MaterialWrapping.UnwrapMaterial, wrappedMaterial _dafny.Sequence, algorithmSuite m_AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo, encryptionContext _dafny.Map) m_Wrappers.Result { + var res m_Wrappers.Result = m_Wrappers.Result{} + _ = res + var _0_maybeCrypto m_Wrappers.Result + _ = _0_maybeCrypto + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_AtomicPrimitives.Companion_Default___.AtomicPrimitives(m_AtomicPrimitives.Companion_Default___.DefaultCryptoConfig()) + _0_maybeCrypto = _out0 + var _1_valueOrError0 m_Wrappers.Result = m_Wrappers.Result{} + _ = _1_valueOrError0 + _1_valueOrError0 = (_0_maybeCrypto).MapFailure(func(coer38 func(m_AwsCryptographyPrimitivesTypes.Error) m_AwsCryptographyMaterialProvidersTypes.Error) func(interface{}) interface{} { + return func(arg39 interface{}) interface{} { + return coer38(arg39.(m_AwsCryptographyPrimitivesTypes.Error)) + } + }(func(_2_e m_AwsCryptographyPrimitivesTypes.Error) m_AwsCryptographyMaterialProvidersTypes.Error { + return m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographyPrimitives_(_2_e) + })) + if (_1_valueOrError0).IsFailure() { + res = (_1_valueOrError0).PropagateFailure() + return res + } + var _3_cryptoPrimitivesX m_AwsCryptographyPrimitivesTypes.IAwsCryptographicPrimitivesClient + _ = _3_cryptoPrimitivesX + _3_cryptoPrimitivesX = (_1_valueOrError0).Extract().(*m_AtomicPrimitives.AtomicPrimitivesClient) + var _4_cryptoPrimitives *m_AtomicPrimitives.AtomicPrimitivesClient + _ = _4_cryptoPrimitives + _4_cryptoPrimitives = _3_cryptoPrimitivesX.(*m_AtomicPrimitives.AtomicPrimitivesClient) + var _5_valueOrError1 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(Companion_DeserializedIntermediateWrappedMaterial_.Default()) + _ = _5_valueOrError1 + _5_valueOrError1 = Companion_Default___.DeserializeIntermediateWrappedMaterial(wrappedMaterial, algorithmSuite) + if (_5_valueOrError1).IsFailure() { + res = (_5_valueOrError1).PropagateFailure() + return res + } + var _6_deserializedWrapped DeserializedIntermediateWrappedMaterial + _ = _6_deserializedWrapped + _6_deserializedWrapped = (_5_valueOrError1).Extract().(DeserializedIntermediateWrappedMaterial) + var _let_tmp_rhs0 DeserializedIntermediateWrappedMaterial = _6_deserializedWrapped + _ = _let_tmp_rhs0 + var _7_encryptedPdk _dafny.Sequence = _let_tmp_rhs0.Get_().(DeserializedIntermediateWrappedMaterial_DeserializedIntermediateWrappedMaterial).EncryptedPdk + _ = _7_encryptedPdk + var _8_providerWrappedIkm _dafny.Sequence = _let_tmp_rhs0.Get_().(DeserializedIntermediateWrappedMaterial_DeserializedIntermediateWrappedMaterial).ProviderWrappedIkm + _ = _8_providerWrappedIkm + var _9_valueOrError2 m_Wrappers.Result = m_Wrappers.Result{} + _ = _9_valueOrError2 + var _out1 interface{} + _ = _out1 + _out1 = (unwrap).Invoke(m_MaterialWrapping.Companion_UnwrapInput_.Create_UnwrapInput_(_8_providerWrappedIkm, algorithmSuite, encryptionContext)) + _9_valueOrError2 = _out1.(m_Wrappers.Result) + if (_9_valueOrError2).IsFailure() { + res = (_9_valueOrError2).PropagateFailure() + return res + } + var _10_unwrapOutput m_MaterialWrapping.UnwrapOutput + _ = _10_unwrapOutput + _10_unwrapOutput = (_9_valueOrError2).Extract().(m_MaterialWrapping.UnwrapOutput) + var _let_tmp_rhs1 m_MaterialWrapping.UnwrapOutput = _10_unwrapOutput + _ = _let_tmp_rhs1 + var _11_intermediateMaterial _dafny.Sequence = _let_tmp_rhs1.Get_().(m_MaterialWrapping.UnwrapOutput_UnwrapOutput).UnwrappedMaterial + _ = _11_intermediateMaterial + var _12_unwrapInfo interface{} = _let_tmp_rhs1.Get_().(m_MaterialWrapping.UnwrapOutput_UnwrapOutput).UnwrapInfo + _ = _12_unwrapInfo + var _13_valueOrError3 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(Companion_PdkEncryptionAndSymmetricSigningKeys_.Default()) + _ = _13_valueOrError3 + var _out2 m_Wrappers.Result + _ = _out2 + _out2 = Companion_Default___.DeriveKeysFromIntermediateMaterial(_11_intermediateMaterial, algorithmSuite, encryptionContext, _4_cryptoPrimitives) + _13_valueOrError3 = _out2 + if (_13_valueOrError3).IsFailure() { + res = (_13_valueOrError3).PropagateFailure() + return res + } + var _14_derivedKeys PdkEncryptionAndSymmetricSigningKeys + _ = _14_derivedKeys + _14_derivedKeys = (_13_valueOrError3).Extract().(PdkEncryptionAndSymmetricSigningKeys) + var _let_tmp_rhs2 PdkEncryptionAndSymmetricSigningKeys = _14_derivedKeys + _ = _let_tmp_rhs2 + var _15_pdkEncryptionKey _dafny.Sequence = _let_tmp_rhs2.Get_().(PdkEncryptionAndSymmetricSigningKeys_PdkEncryptionAndSymmetricSigningKeys).PdkEncryptionKey + _ = _15_pdkEncryptionKey + var _16_symmetricSigningKey _dafny.Sequence = _let_tmp_rhs2.Get_().(PdkEncryptionAndSymmetricSigningKeys_PdkEncryptionAndSymmetricSigningKeys).SymmetricSigningKey + _ = _16_symmetricSigningKey + var _17_iv _dafny.Sequence + _ = _17_iv + _17_iv = _dafny.SeqCreate((_dafny.IntOfInt32(m_AlgorithmSuites.Companion_Default___.GetEncryptIvLength(algorithmSuite))).Uint32(), func(coer39 func(_dafny.Int) uint8) func(_dafny.Int) interface{} { + return func(arg40 _dafny.Int) interface{} { + return coer39(arg40) + } + }(func(_18___v0 _dafny.Int) uint8 { + return uint8(0) + })) + var _19_tagIndex _dafny.Int + _ = _19_tagIndex + _19_tagIndex = (_dafny.IntOfUint32((_7_encryptedPdk).Cardinality())).Minus(_dafny.IntOfInt32(m_AlgorithmSuites.Companion_Default___.GetEncryptTagLength(algorithmSuite))) + var _20_valueOrError4 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = _20_valueOrError4 + _20_valueOrError4 = m_CanonicalEncryptionContext.Companion_Default___.EncryptionContextToAAD(encryptionContext) + if (_20_valueOrError4).IsFailure() { + res = (_20_valueOrError4).PropagateFailure() + return res + } + var _21_aad _dafny.Sequence + _ = _21_aad + _21_aad = (_20_valueOrError4).Extract().(_dafny.Sequence) + var _22_decInput m_AwsCryptographyPrimitivesTypes.AESDecryptInput + _ = _22_decInput + _22_decInput = m_AwsCryptographyPrimitivesTypes.Companion_AESDecryptInput_.Create_AESDecryptInput_(((algorithmSuite).Dtor_encrypt()).Dtor_AES__GCM(), _15_pdkEncryptionKey, (_7_encryptedPdk).Take((_19_tagIndex).Uint32()), (_7_encryptedPdk).Drop((_19_tagIndex).Uint32()), _17_iv, _21_aad) + var _23_decOutR m_Wrappers.Result + _ = _23_decOutR + var _out3 m_Wrappers.Result + _ = _out3 + _out3 = (_4_cryptoPrimitives).AESDecrypt(_22_decInput) + _23_decOutR = _out3 + var _24_valueOrError5 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = _24_valueOrError5 + _24_valueOrError5 = (_23_decOutR).MapFailure(func(coer40 func(m_AwsCryptographyPrimitivesTypes.Error) m_AwsCryptographyMaterialProvidersTypes.Error) func(interface{}) interface{} { + return func(arg41 interface{}) interface{} { + return coer40(arg41.(m_AwsCryptographyPrimitivesTypes.Error)) + } + }(func(_25_e m_AwsCryptographyPrimitivesTypes.Error) m_AwsCryptographyMaterialProvidersTypes.Error { + return m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographyPrimitives_(_25_e) + })) + if (_24_valueOrError5).IsFailure() { + res = (_24_valueOrError5).PropagateFailure() + return res + } + var _26_plaintextDataKey _dafny.Sequence + _ = _26_plaintextDataKey + _26_plaintextDataKey = (_24_valueOrError5).Extract().(_dafny.Sequence) + var _27_valueOrError6 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _27_valueOrError6 + _27_valueOrError6 = m_Wrappers.Companion_Default___.Need((_dafny.IntOfUint32((_26_plaintextDataKey).Cardinality())).Cmp(_dafny.IntOfInt32(m_AlgorithmSuites.Companion_Default___.GetEncryptKeyLength(algorithmSuite))) == 0, m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.SeqOfString("Unexpected AES_GCM Decrypt length"))) + if (_27_valueOrError6).IsFailure() { + res = (_27_valueOrError6).PropagateFailure() + return res + } + res = m_Wrappers.Companion_Result_.Create_Success_(Companion_IntermediateUnwrapOutput_.Create_IntermediateUnwrapOutput_(_26_plaintextDataKey, _16_symmetricSigningKey, _12_unwrapInfo)) + return res + return res +} +func (_static *CompanionStruct_Default___) IntermediateWrap(generateAndWrap m_MaterialWrapping.GenerateAndWrapMaterial, plaintextDataKey _dafny.Sequence, algorithmSuite m_AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo, encryptionContext _dafny.Map) m_Wrappers.Result { + var res m_Wrappers.Result = m_Wrappers.Result{} + _ = res + var _0_maybeCrypto m_Wrappers.Result + _ = _0_maybeCrypto + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_AtomicPrimitives.Companion_Default___.AtomicPrimitives(m_AtomicPrimitives.Companion_Default___.DefaultCryptoConfig()) + _0_maybeCrypto = _out0 + var _1_valueOrError0 m_Wrappers.Result = m_Wrappers.Result{} + _ = _1_valueOrError0 + _1_valueOrError0 = (_0_maybeCrypto).MapFailure(func(coer41 func(m_AwsCryptographyPrimitivesTypes.Error) m_AwsCryptographyMaterialProvidersTypes.Error) func(interface{}) interface{} { + return func(arg42 interface{}) interface{} { + return coer41(arg42.(m_AwsCryptographyPrimitivesTypes.Error)) + } + }(func(_2_e m_AwsCryptographyPrimitivesTypes.Error) m_AwsCryptographyMaterialProvidersTypes.Error { + return m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographyPrimitives_(_2_e) + })) + if (_1_valueOrError0).IsFailure() { + res = (_1_valueOrError0).PropagateFailure() + return res + } + var _3_cryptoPrimitivesX m_AwsCryptographyPrimitivesTypes.IAwsCryptographicPrimitivesClient + _ = _3_cryptoPrimitivesX + _3_cryptoPrimitivesX = (_1_valueOrError0).Extract().(*m_AtomicPrimitives.AtomicPrimitivesClient) + var _4_cryptoPrimitives *m_AtomicPrimitives.AtomicPrimitivesClient + _ = _4_cryptoPrimitives + _4_cryptoPrimitives = _3_cryptoPrimitivesX.(*m_AtomicPrimitives.AtomicPrimitivesClient) + var _5_valueOrError1 m_Wrappers.Result = m_Wrappers.Result{} + _ = _5_valueOrError1 + var _out1 interface{} + _ = _out1 + _out1 = (generateAndWrap).Invoke(m_MaterialWrapping.Companion_GenerateAndWrapInput_.Create_GenerateAndWrapInput_(algorithmSuite, encryptionContext)) + _5_valueOrError1 = _out1.(m_Wrappers.Result) + if (_5_valueOrError1).IsFailure() { + res = (_5_valueOrError1).PropagateFailure() + return res + } + var _6_generateAndWrapOutput m_MaterialWrapping.GenerateAndWrapOutput + _ = _6_generateAndWrapOutput + _6_generateAndWrapOutput = (_5_valueOrError1).Extract().(m_MaterialWrapping.GenerateAndWrapOutput) + var _let_tmp_rhs0 m_MaterialWrapping.GenerateAndWrapOutput = _6_generateAndWrapOutput + _ = _let_tmp_rhs0 + var _7_intermediateMaterial _dafny.Sequence = _let_tmp_rhs0.Get_().(m_MaterialWrapping.GenerateAndWrapOutput_GenerateAndWrapOutput).PlaintextMaterial + _ = _7_intermediateMaterial + var _8_providerWrappedIkm _dafny.Sequence = _let_tmp_rhs0.Get_().(m_MaterialWrapping.GenerateAndWrapOutput_GenerateAndWrapOutput).WrappedMaterial + _ = _8_providerWrappedIkm + var _9_wrapInfo interface{} = _let_tmp_rhs0.Get_().(m_MaterialWrapping.GenerateAndWrapOutput_GenerateAndWrapOutput).WrapInfo + _ = _9_wrapInfo + var _10_valueOrError2 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(Companion_PdkEncryptionAndSymmetricSigningKeys_.Default()) + _ = _10_valueOrError2 + var _out2 m_Wrappers.Result + _ = _out2 + _out2 = Companion_Default___.DeriveKeysFromIntermediateMaterial(_7_intermediateMaterial, algorithmSuite, encryptionContext, _4_cryptoPrimitives) + _10_valueOrError2 = _out2 + if (_10_valueOrError2).IsFailure() { + res = (_10_valueOrError2).PropagateFailure() + return res + } + var _11_derivedKeys PdkEncryptionAndSymmetricSigningKeys + _ = _11_derivedKeys + _11_derivedKeys = (_10_valueOrError2).Extract().(PdkEncryptionAndSymmetricSigningKeys) + var _let_tmp_rhs1 PdkEncryptionAndSymmetricSigningKeys = _11_derivedKeys + _ = _let_tmp_rhs1 + var _12_pdkEncryptionKey _dafny.Sequence = _let_tmp_rhs1.Get_().(PdkEncryptionAndSymmetricSigningKeys_PdkEncryptionAndSymmetricSigningKeys).PdkEncryptionKey + _ = _12_pdkEncryptionKey + var _13_symmetricSigningKey _dafny.Sequence = _let_tmp_rhs1.Get_().(PdkEncryptionAndSymmetricSigningKeys_PdkEncryptionAndSymmetricSigningKeys).SymmetricSigningKey + _ = _13_symmetricSigningKey + var _14_iv _dafny.Sequence + _ = _14_iv + _14_iv = _dafny.SeqCreate((_dafny.IntOfInt32(m_AlgorithmSuites.Companion_Default___.GetEncryptIvLength(algorithmSuite))).Uint32(), func(coer42 func(_dafny.Int) uint8) func(_dafny.Int) interface{} { + return func(arg43 _dafny.Int) interface{} { + return coer42(arg43) + } + }(func(_15___v1 _dafny.Int) uint8 { + return uint8(0) + })) + var _16_valueOrError3 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = _16_valueOrError3 + _16_valueOrError3 = m_CanonicalEncryptionContext.Companion_Default___.EncryptionContextToAAD(encryptionContext) + if (_16_valueOrError3).IsFailure() { + res = (_16_valueOrError3).PropagateFailure() + return res + } + var _17_aad _dafny.Sequence + _ = _17_aad + _17_aad = (_16_valueOrError3).Extract().(_dafny.Sequence) + var _18_encInput m_AwsCryptographyPrimitivesTypes.AESEncryptInput + _ = _18_encInput + _18_encInput = m_AwsCryptographyPrimitivesTypes.Companion_AESEncryptInput_.Create_AESEncryptInput_(((algorithmSuite).Dtor_encrypt()).Dtor_AES__GCM(), _14_iv, _12_pdkEncryptionKey, plaintextDataKey, _17_aad) + var _19_encOutR m_Wrappers.Result + _ = _19_encOutR + var _out3 m_Wrappers.Result + _ = _out3 + _out3 = (_4_cryptoPrimitives).AESEncrypt(_18_encInput) + _19_encOutR = _out3 + var _20_valueOrError4 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_AwsCryptographyPrimitivesTypes.Companion_AESEncryptOutput_.Default()) + _ = _20_valueOrError4 + _20_valueOrError4 = (_19_encOutR).MapFailure(func(coer43 func(m_AwsCryptographyPrimitivesTypes.Error) m_AwsCryptographyMaterialProvidersTypes.Error) func(interface{}) interface{} { + return func(arg44 interface{}) interface{} { + return coer43(arg44.(m_AwsCryptographyPrimitivesTypes.Error)) + } + }(func(_21_e m_AwsCryptographyPrimitivesTypes.Error) m_AwsCryptographyMaterialProvidersTypes.Error { + return m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographyPrimitives_(_21_e) + })) + if (_20_valueOrError4).IsFailure() { + res = (_20_valueOrError4).PropagateFailure() + return res + } + var _22_encryptedPdk m_AwsCryptographyPrimitivesTypes.AESEncryptOutput + _ = _22_encryptedPdk + _22_encryptedPdk = (_20_valueOrError4).Extract().(m_AwsCryptographyPrimitivesTypes.AESEncryptOutput) + var _23_valueOrError5 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _23_valueOrError5 + _23_valueOrError5 = m_Wrappers.Companion_Default___.Need((_dafny.IntOfUint32((_dafny.Companion_Sequence_.Concatenate((_22_encryptedPdk).Dtor_cipherText(), (_22_encryptedPdk).Dtor_authTag())).Cardinality())).Cmp(_dafny.IntOfInt32((m_AlgorithmSuites.Companion_Default___.GetEncryptKeyLength(algorithmSuite))+(m_AlgorithmSuites.Companion_Default___.GetEncryptTagLength(algorithmSuite)))) == 0, m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.SeqOfString("Unexpected AES_GCM Encrypt length"))) + if (_23_valueOrError5).IsFailure() { + res = (_23_valueOrError5).PropagateFailure() + return res + } + var _24_serializedMaterial _dafny.Sequence + _ = _24_serializedMaterial + _24_serializedMaterial = _dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate((_22_encryptedPdk).Dtor_cipherText(), (_22_encryptedPdk).Dtor_authTag()), _8_providerWrappedIkm) + res = m_Wrappers.Companion_Result_.Create_Success_(Companion_IntermediateWrapOutput_.Create_IntermediateWrapOutput_(_24_serializedMaterial, _13_symmetricSigningKey, _9_wrapInfo)) + return res + return res +} +func (_static *CompanionStruct_Default___) IntermediateGenerateAndWrap(generateAndWrap m_MaterialWrapping.GenerateAndWrapMaterial, algorithmSuite m_AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo, encryptionContext _dafny.Map) m_Wrappers.Result { + var res m_Wrappers.Result = m_Wrappers.Result{} + _ = res + var _0_maybeCrypto m_Wrappers.Result + _ = _0_maybeCrypto + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_AtomicPrimitives.Companion_Default___.AtomicPrimitives(m_AtomicPrimitives.Companion_Default___.DefaultCryptoConfig()) + _0_maybeCrypto = _out0 + var _1_valueOrError0 m_Wrappers.Result = m_Wrappers.Result{} + _ = _1_valueOrError0 + _1_valueOrError0 = (_0_maybeCrypto).MapFailure(func(coer44 func(m_AwsCryptographyPrimitivesTypes.Error) m_AwsCryptographyMaterialProvidersTypes.Error) func(interface{}) interface{} { + return func(arg45 interface{}) interface{} { + return coer44(arg45.(m_AwsCryptographyPrimitivesTypes.Error)) + } + }(func(_2_e m_AwsCryptographyPrimitivesTypes.Error) m_AwsCryptographyMaterialProvidersTypes.Error { + return m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographyPrimitives_(_2_e) + })) + if (_1_valueOrError0).IsFailure() { + res = (_1_valueOrError0).PropagateFailure() + return res + } + var _3_cryptoPrimitives *m_AtomicPrimitives.AtomicPrimitivesClient + _ = _3_cryptoPrimitives + _3_cryptoPrimitives = (_1_valueOrError0).Extract().(*m_AtomicPrimitives.AtomicPrimitivesClient) + var _4_generateBytesResult m_Wrappers.Result + _ = _4_generateBytesResult + var _out1 m_Wrappers.Result + _ = _out1 + _out1 = (_3_cryptoPrimitives).GenerateRandomBytes(m_AwsCryptographyPrimitivesTypes.Companion_GenerateRandomBytesInput_.Create_GenerateRandomBytesInput_(m_AlgorithmSuites.Companion_Default___.GetEncryptKeyLength(algorithmSuite))) + _4_generateBytesResult = _out1 + var _5_valueOrError1 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = _5_valueOrError1 + _5_valueOrError1 = (_4_generateBytesResult).MapFailure(func(coer45 func(m_AwsCryptographyPrimitivesTypes.Error) m_AwsCryptographyMaterialProvidersTypes.Error) func(interface{}) interface{} { + return func(arg46 interface{}) interface{} { + return coer45(arg46.(m_AwsCryptographyPrimitivesTypes.Error)) + } + }(func(_6_e m_AwsCryptographyPrimitivesTypes.Error) m_AwsCryptographyMaterialProvidersTypes.Error { + return m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographyPrimitives_(_6_e) + })) + if (_5_valueOrError1).IsFailure() { + res = (_5_valueOrError1).PropagateFailure() + return res + } + var _7_plaintextDataKey _dafny.Sequence + _ = _7_plaintextDataKey + _7_plaintextDataKey = (_5_valueOrError1).Extract().(_dafny.Sequence) + var _8_valueOrError2 m_Wrappers.Result = m_Wrappers.Result{} + _ = _8_valueOrError2 + var _out2 m_Wrappers.Result + _ = _out2 + _out2 = Companion_Default___.IntermediateWrap(generateAndWrap, _7_plaintextDataKey, algorithmSuite, encryptionContext) + _8_valueOrError2 = _out2 + if (_8_valueOrError2).IsFailure() { + res = (_8_valueOrError2).PropagateFailure() + return res + } + var _9_wrapOutput IntermediateWrapOutput + _ = _9_wrapOutput + _9_wrapOutput = (_8_valueOrError2).Extract().(IntermediateWrapOutput) + res = m_Wrappers.Companion_Result_.Create_Success_(Companion_IntermediateGenerateAndWrapOutput_.Create_IntermediateGenerateAndWrapOutput_(_7_plaintextDataKey, (_9_wrapOutput).Dtor_wrappedMaterial(), (_9_wrapOutput).Dtor_symmetricSigningKey(), (_9_wrapOutput).Dtor_wrapInfo())) + return res + return res +} +func (_static *CompanionStruct_Default___) DeserializeIntermediateWrappedMaterial(material _dafny.Sequence, algSuite m_AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo) m_Wrappers.Result { + var _0_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need((_dafny.IntOfUint32((material).Cardinality())).Cmp(_dafny.IntOfInt32((m_AlgorithmSuites.Companion_Default___.GetEncryptKeyLength(algSuite))+(m_AlgorithmSuites.Companion_Default___.GetEncryptTagLength(algSuite)))) >= 0, m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.SeqOfString("Unable to deserialize Intermediate Key Wrapped material: too short."))) + _ = _0_valueOrError0 + if (_0_valueOrError0).IsFailure() { + return (_0_valueOrError0).PropagateFailure() + } else { + var _1_encryptedPdkLen int32 = (m_AlgorithmSuites.Companion_Default___.GetEncryptKeyLength(algSuite)) + (m_AlgorithmSuites.Companion_Default___.GetEncryptTagLength(algSuite)) + _ = _1_encryptedPdkLen + return m_Wrappers.Companion_Result_.Create_Success_(Companion_DeserializedIntermediateWrappedMaterial_.Create_DeserializedIntermediateWrappedMaterial_((material).Take(uint32(_1_encryptedPdkLen)), (material).Drop(uint32(_1_encryptedPdkLen)))) + } +} +func (_static *CompanionStruct_Default___) DeriveKeysFromIntermediateMaterial(intermediateMaterial _dafny.Sequence, algorithmSuite m_AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo, encryptionContext _dafny.Map, cryptoPrimitives *m_AtomicPrimitives.AtomicPrimitivesClient) m_Wrappers.Result { + var res m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(Companion_PdkEncryptionAndSymmetricSigningKeys_.Default()) + _ = res + var _0_hkdfExtractInput m_AwsCryptographyPrimitivesTypes.HkdfExtractInput + _ = _0_hkdfExtractInput + _0_hkdfExtractInput = m_AwsCryptographyPrimitivesTypes.Companion_HkdfExtractInput_.Create_HkdfExtractInput_((((algorithmSuite).Dtor_commitment()).Dtor_HKDF()).Dtor_hmac(), m_Wrappers.Companion_Option_.Create_None_(), intermediateMaterial) + var _1_maybePseudoRandomKey m_Wrappers.Result + _ = _1_maybePseudoRandomKey + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = (cryptoPrimitives).HkdfExtract(_0_hkdfExtractInput) + _1_maybePseudoRandomKey = _out0 + var _2_valueOrError0 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = _2_valueOrError0 + _2_valueOrError0 = (_1_maybePseudoRandomKey).MapFailure(func(coer46 func(m_AwsCryptographyPrimitivesTypes.Error) m_AwsCryptographyMaterialProvidersTypes.Error) func(interface{}) interface{} { + return func(arg47 interface{}) interface{} { + return coer46(arg47.(m_AwsCryptographyPrimitivesTypes.Error)) + } + }(func(_3_e m_AwsCryptographyPrimitivesTypes.Error) m_AwsCryptographyMaterialProvidersTypes.Error { + return m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographyPrimitives_(_3_e) + })) + if (_2_valueOrError0).IsFailure() { + res = (_2_valueOrError0).PropagateFailure() + return res + } + var _4_pseudoRandomKey _dafny.Sequence + _ = _4_pseudoRandomKey + _4_pseudoRandomKey = (_2_valueOrError0).Extract().(_dafny.Sequence) + var _5_symmetricSigningKeyInput m_AwsCryptographyPrimitivesTypes.HkdfExpandInput + _ = _5_symmetricSigningKeyInput + _5_symmetricSigningKeyInput = m_AwsCryptographyPrimitivesTypes.Companion_HkdfExpandInput_.Create_HkdfExpandInput_((((algorithmSuite).Dtor_commitment()).Dtor_HKDF()).Dtor_hmac(), _4_pseudoRandomKey, Companion_Default___.KEYWRAP__MAC__INFO(), (((algorithmSuite).Dtor_commitment()).Dtor_HKDF()).Dtor_outputKeyLength()) + var _6_pdkEncryptionKeyInput m_AwsCryptographyPrimitivesTypes.HkdfExpandInput + _ = _6_pdkEncryptionKeyInput + var _7_dt__update__tmp_h0 m_AwsCryptographyPrimitivesTypes.HkdfExpandInput = _5_symmetricSigningKeyInput + _ = _7_dt__update__tmp_h0 + var _8_dt__update_hinfo_h0 _dafny.Sequence = Companion_Default___.KEYWRAP__ENC__INFO() + _ = _8_dt__update_hinfo_h0 + _6_pdkEncryptionKeyInput = m_AwsCryptographyPrimitivesTypes.Companion_HkdfExpandInput_.Create_HkdfExpandInput_((_7_dt__update__tmp_h0).Dtor_digestAlgorithm(), (_7_dt__update__tmp_h0).Dtor_prk(), _8_dt__update_hinfo_h0, (_7_dt__update__tmp_h0).Dtor_expectedLength()) + var _9_maybeSymmetricSigningKey m_Wrappers.Result + _ = _9_maybeSymmetricSigningKey + var _out1 m_Wrappers.Result + _ = _out1 + _out1 = (cryptoPrimitives).HkdfExpand(_5_symmetricSigningKeyInput) + _9_maybeSymmetricSigningKey = _out1 + var _10_valueOrError1 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = _10_valueOrError1 + _10_valueOrError1 = (_9_maybeSymmetricSigningKey).MapFailure(func(coer47 func(m_AwsCryptographyPrimitivesTypes.Error) m_AwsCryptographyMaterialProvidersTypes.Error) func(interface{}) interface{} { + return func(arg48 interface{}) interface{} { + return coer47(arg48.(m_AwsCryptographyPrimitivesTypes.Error)) + } + }(func(_11_e m_AwsCryptographyPrimitivesTypes.Error) m_AwsCryptographyMaterialProvidersTypes.Error { + return m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographyPrimitives_(_11_e) + })) + if (_10_valueOrError1).IsFailure() { + res = (_10_valueOrError1).PropagateFailure() + return res + } + var _12_symmetricSigningKey _dafny.Sequence + _ = _12_symmetricSigningKey + _12_symmetricSigningKey = (_10_valueOrError1).Extract().(_dafny.Sequence) + var _13_maybePdkEncryptionKey m_Wrappers.Result + _ = _13_maybePdkEncryptionKey + var _out2 m_Wrappers.Result + _ = _out2 + _out2 = (cryptoPrimitives).HkdfExpand(_6_pdkEncryptionKeyInput) + _13_maybePdkEncryptionKey = _out2 + var _14_valueOrError2 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = _14_valueOrError2 + _14_valueOrError2 = (_13_maybePdkEncryptionKey).MapFailure(func(coer48 func(m_AwsCryptographyPrimitivesTypes.Error) m_AwsCryptographyMaterialProvidersTypes.Error) func(interface{}) interface{} { + return func(arg49 interface{}) interface{} { + return coer48(arg49.(m_AwsCryptographyPrimitivesTypes.Error)) + } + }(func(_15_e m_AwsCryptographyPrimitivesTypes.Error) m_AwsCryptographyMaterialProvidersTypes.Error { + return m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographyPrimitives_(_15_e) + })) + if (_14_valueOrError2).IsFailure() { + res = (_14_valueOrError2).PropagateFailure() + return res + } + var _16_pdkEncryptionKey _dafny.Sequence + _ = _16_pdkEncryptionKey + _16_pdkEncryptionKey = (_14_valueOrError2).Extract().(_dafny.Sequence) + res = m_Wrappers.Companion_Result_.Create_Success_(Companion_PdkEncryptionAndSymmetricSigningKeys_.Create_PdkEncryptionAndSymmetricSigningKeys_(_16_pdkEncryptionKey, _12_symmetricSigningKey)) + return res + return res +} +func (_static *CompanionStruct_Default___) KEYWRAP__MAC__INFO() _dafny.Sequence { + return m_UTF8.Companion_Default___.EncodeAscii(_dafny.SeqOfString("AWS_MPL_INTERMEDIATE_KEYWRAP_MAC")) +} +func (_static *CompanionStruct_Default___) KEYWRAP__ENC__INFO() _dafny.Sequence { + return m_UTF8.Companion_Default___.EncodeAscii(_dafny.SeqOfString("AWS_MPL_INTERMEDIATE_KEYWRAP_ENC")) +} + +// End of class Default__ + +// Definition of datatype IntermediateUnwrapOutput +type IntermediateUnwrapOutput struct { + Data_IntermediateUnwrapOutput_ +} + +func (_this IntermediateUnwrapOutput) Get_() Data_IntermediateUnwrapOutput_ { + return _this.Data_IntermediateUnwrapOutput_ +} + +type Data_IntermediateUnwrapOutput_ interface { + isIntermediateUnwrapOutput() +} + +type CompanionStruct_IntermediateUnwrapOutput_ struct { +} + +var Companion_IntermediateUnwrapOutput_ = CompanionStruct_IntermediateUnwrapOutput_{} + +type IntermediateUnwrapOutput_IntermediateUnwrapOutput struct { + PlaintextDataKey _dafny.Sequence + SymmetricSigningKey _dafny.Sequence + UnwrapInfo interface{} +} + +func (IntermediateUnwrapOutput_IntermediateUnwrapOutput) isIntermediateUnwrapOutput() {} + +func (CompanionStruct_IntermediateUnwrapOutput_) Create_IntermediateUnwrapOutput_(PlaintextDataKey _dafny.Sequence, SymmetricSigningKey _dafny.Sequence, UnwrapInfo interface{}) IntermediateUnwrapOutput { + return IntermediateUnwrapOutput{IntermediateUnwrapOutput_IntermediateUnwrapOutput{PlaintextDataKey, SymmetricSigningKey, UnwrapInfo}} +} + +func (_this IntermediateUnwrapOutput) Is_IntermediateUnwrapOutput() bool { + _, ok := _this.Get_().(IntermediateUnwrapOutput_IntermediateUnwrapOutput) + return ok +} + +func (CompanionStruct_IntermediateUnwrapOutput_) Default(_default_T interface{}) IntermediateUnwrapOutput { + return Companion_IntermediateUnwrapOutput_.Create_IntermediateUnwrapOutput_(_dafny.EmptySeq, _dafny.EmptySeq, _default_T) +} + +func (_this IntermediateUnwrapOutput) Dtor_plaintextDataKey() _dafny.Sequence { + return _this.Get_().(IntermediateUnwrapOutput_IntermediateUnwrapOutput).PlaintextDataKey +} + +func (_this IntermediateUnwrapOutput) Dtor_symmetricSigningKey() _dafny.Sequence { + return _this.Get_().(IntermediateUnwrapOutput_IntermediateUnwrapOutput).SymmetricSigningKey +} + +func (_this IntermediateUnwrapOutput) Dtor_unwrapInfo() interface{} { + return _this.Get_().(IntermediateUnwrapOutput_IntermediateUnwrapOutput).UnwrapInfo +} + +func (_this IntermediateUnwrapOutput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case IntermediateUnwrapOutput_IntermediateUnwrapOutput: + { + return "IntermediateKeyWrapping.IntermediateUnwrapOutput.IntermediateUnwrapOutput" + "(" + _dafny.String(data.PlaintextDataKey) + ", " + _dafny.String(data.SymmetricSigningKey) + ", " + _dafny.String(data.UnwrapInfo) + ")" + } + default: + { + return "" + } + } +} + +func (_this IntermediateUnwrapOutput) Equals(other IntermediateUnwrapOutput) bool { + switch data1 := _this.Get_().(type) { + case IntermediateUnwrapOutput_IntermediateUnwrapOutput: + { + data2, ok := other.Get_().(IntermediateUnwrapOutput_IntermediateUnwrapOutput) + return ok && data1.PlaintextDataKey.Equals(data2.PlaintextDataKey) && data1.SymmetricSigningKey.Equals(data2.SymmetricSigningKey) && _dafny.AreEqual(data1.UnwrapInfo, data2.UnwrapInfo) + } + default: + { + return false // unexpected + } + } +} + +func (_this IntermediateUnwrapOutput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(IntermediateUnwrapOutput) + return ok && _this.Equals(typed) +} + +func Type_IntermediateUnwrapOutput_(Type_T_ _dafny.TypeDescriptor) _dafny.TypeDescriptor { + return type_IntermediateUnwrapOutput_{Type_T_} +} + +type type_IntermediateUnwrapOutput_ struct { + Type_T_ _dafny.TypeDescriptor +} + +func (_this type_IntermediateUnwrapOutput_) Default() interface{} { + Type_T_ := _this.Type_T_ + _ = Type_T_ + return Companion_IntermediateUnwrapOutput_.Default(Type_T_.Default()) +} + +func (_this type_IntermediateUnwrapOutput_) String() string { + return "IntermediateKeyWrapping.IntermediateUnwrapOutput" +} +func (_this IntermediateUnwrapOutput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = IntermediateUnwrapOutput{} + +// End of datatype IntermediateUnwrapOutput + +// Definition of datatype IntermediateGenerateAndWrapOutput +type IntermediateGenerateAndWrapOutput struct { + Data_IntermediateGenerateAndWrapOutput_ +} + +func (_this IntermediateGenerateAndWrapOutput) Get_() Data_IntermediateGenerateAndWrapOutput_ { + return _this.Data_IntermediateGenerateAndWrapOutput_ +} + +type Data_IntermediateGenerateAndWrapOutput_ interface { + isIntermediateGenerateAndWrapOutput() +} + +type CompanionStruct_IntermediateGenerateAndWrapOutput_ struct { +} + +var Companion_IntermediateGenerateAndWrapOutput_ = CompanionStruct_IntermediateGenerateAndWrapOutput_{} + +type IntermediateGenerateAndWrapOutput_IntermediateGenerateAndWrapOutput struct { + PlaintextDataKey _dafny.Sequence + WrappedMaterial _dafny.Sequence + SymmetricSigningKey _dafny.Sequence + WrapInfo interface{} +} + +func (IntermediateGenerateAndWrapOutput_IntermediateGenerateAndWrapOutput) isIntermediateGenerateAndWrapOutput() { +} + +func (CompanionStruct_IntermediateGenerateAndWrapOutput_) Create_IntermediateGenerateAndWrapOutput_(PlaintextDataKey _dafny.Sequence, WrappedMaterial _dafny.Sequence, SymmetricSigningKey _dafny.Sequence, WrapInfo interface{}) IntermediateGenerateAndWrapOutput { + return IntermediateGenerateAndWrapOutput{IntermediateGenerateAndWrapOutput_IntermediateGenerateAndWrapOutput{PlaintextDataKey, WrappedMaterial, SymmetricSigningKey, WrapInfo}} +} + +func (_this IntermediateGenerateAndWrapOutput) Is_IntermediateGenerateAndWrapOutput() bool { + _, ok := _this.Get_().(IntermediateGenerateAndWrapOutput_IntermediateGenerateAndWrapOutput) + return ok +} + +func (CompanionStruct_IntermediateGenerateAndWrapOutput_) Default(_default_T interface{}) IntermediateGenerateAndWrapOutput { + return Companion_IntermediateGenerateAndWrapOutput_.Create_IntermediateGenerateAndWrapOutput_(_dafny.EmptySeq, _dafny.EmptySeq, _dafny.EmptySeq, _default_T) +} + +func (_this IntermediateGenerateAndWrapOutput) Dtor_plaintextDataKey() _dafny.Sequence { + return _this.Get_().(IntermediateGenerateAndWrapOutput_IntermediateGenerateAndWrapOutput).PlaintextDataKey +} + +func (_this IntermediateGenerateAndWrapOutput) Dtor_wrappedMaterial() _dafny.Sequence { + return _this.Get_().(IntermediateGenerateAndWrapOutput_IntermediateGenerateAndWrapOutput).WrappedMaterial +} + +func (_this IntermediateGenerateAndWrapOutput) Dtor_symmetricSigningKey() _dafny.Sequence { + return _this.Get_().(IntermediateGenerateAndWrapOutput_IntermediateGenerateAndWrapOutput).SymmetricSigningKey +} + +func (_this IntermediateGenerateAndWrapOutput) Dtor_wrapInfo() interface{} { + return _this.Get_().(IntermediateGenerateAndWrapOutput_IntermediateGenerateAndWrapOutput).WrapInfo +} + +func (_this IntermediateGenerateAndWrapOutput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case IntermediateGenerateAndWrapOutput_IntermediateGenerateAndWrapOutput: + { + return "IntermediateKeyWrapping.IntermediateGenerateAndWrapOutput.IntermediateGenerateAndWrapOutput" + "(" + _dafny.String(data.PlaintextDataKey) + ", " + _dafny.String(data.WrappedMaterial) + ", " + _dafny.String(data.SymmetricSigningKey) + ", " + _dafny.String(data.WrapInfo) + ")" + } + default: + { + return "" + } + } +} + +func (_this IntermediateGenerateAndWrapOutput) Equals(other IntermediateGenerateAndWrapOutput) bool { + switch data1 := _this.Get_().(type) { + case IntermediateGenerateAndWrapOutput_IntermediateGenerateAndWrapOutput: + { + data2, ok := other.Get_().(IntermediateGenerateAndWrapOutput_IntermediateGenerateAndWrapOutput) + return ok && data1.PlaintextDataKey.Equals(data2.PlaintextDataKey) && data1.WrappedMaterial.Equals(data2.WrappedMaterial) && data1.SymmetricSigningKey.Equals(data2.SymmetricSigningKey) && _dafny.AreEqual(data1.WrapInfo, data2.WrapInfo) + } + default: + { + return false // unexpected + } + } +} + +func (_this IntermediateGenerateAndWrapOutput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(IntermediateGenerateAndWrapOutput) + return ok && _this.Equals(typed) +} + +func Type_IntermediateGenerateAndWrapOutput_(Type_T_ _dafny.TypeDescriptor) _dafny.TypeDescriptor { + return type_IntermediateGenerateAndWrapOutput_{Type_T_} +} + +type type_IntermediateGenerateAndWrapOutput_ struct { + Type_T_ _dafny.TypeDescriptor +} + +func (_this type_IntermediateGenerateAndWrapOutput_) Default() interface{} { + Type_T_ := _this.Type_T_ + _ = Type_T_ + return Companion_IntermediateGenerateAndWrapOutput_.Default(Type_T_.Default()) +} + +func (_this type_IntermediateGenerateAndWrapOutput_) String() string { + return "IntermediateKeyWrapping.IntermediateGenerateAndWrapOutput" +} +func (_this IntermediateGenerateAndWrapOutput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = IntermediateGenerateAndWrapOutput{} + +// End of datatype IntermediateGenerateAndWrapOutput + +// Definition of datatype IntermediateWrapOutput +type IntermediateWrapOutput struct { + Data_IntermediateWrapOutput_ +} + +func (_this IntermediateWrapOutput) Get_() Data_IntermediateWrapOutput_ { + return _this.Data_IntermediateWrapOutput_ +} + +type Data_IntermediateWrapOutput_ interface { + isIntermediateWrapOutput() +} + +type CompanionStruct_IntermediateWrapOutput_ struct { +} + +var Companion_IntermediateWrapOutput_ = CompanionStruct_IntermediateWrapOutput_{} + +type IntermediateWrapOutput_IntermediateWrapOutput struct { + WrappedMaterial _dafny.Sequence + SymmetricSigningKey _dafny.Sequence + WrapInfo interface{} +} + +func (IntermediateWrapOutput_IntermediateWrapOutput) isIntermediateWrapOutput() {} + +func (CompanionStruct_IntermediateWrapOutput_) Create_IntermediateWrapOutput_(WrappedMaterial _dafny.Sequence, SymmetricSigningKey _dafny.Sequence, WrapInfo interface{}) IntermediateWrapOutput { + return IntermediateWrapOutput{IntermediateWrapOutput_IntermediateWrapOutput{WrappedMaterial, SymmetricSigningKey, WrapInfo}} +} + +func (_this IntermediateWrapOutput) Is_IntermediateWrapOutput() bool { + _, ok := _this.Get_().(IntermediateWrapOutput_IntermediateWrapOutput) + return ok +} + +func (CompanionStruct_IntermediateWrapOutput_) Default(_default_T interface{}) IntermediateWrapOutput { + return Companion_IntermediateWrapOutput_.Create_IntermediateWrapOutput_(_dafny.EmptySeq, _dafny.EmptySeq, _default_T) +} + +func (_this IntermediateWrapOutput) Dtor_wrappedMaterial() _dafny.Sequence { + return _this.Get_().(IntermediateWrapOutput_IntermediateWrapOutput).WrappedMaterial +} + +func (_this IntermediateWrapOutput) Dtor_symmetricSigningKey() _dafny.Sequence { + return _this.Get_().(IntermediateWrapOutput_IntermediateWrapOutput).SymmetricSigningKey +} + +func (_this IntermediateWrapOutput) Dtor_wrapInfo() interface{} { + return _this.Get_().(IntermediateWrapOutput_IntermediateWrapOutput).WrapInfo +} + +func (_this IntermediateWrapOutput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case IntermediateWrapOutput_IntermediateWrapOutput: + { + return "IntermediateKeyWrapping.IntermediateWrapOutput.IntermediateWrapOutput" + "(" + _dafny.String(data.WrappedMaterial) + ", " + _dafny.String(data.SymmetricSigningKey) + ", " + _dafny.String(data.WrapInfo) + ")" + } + default: + { + return "" + } + } +} + +func (_this IntermediateWrapOutput) Equals(other IntermediateWrapOutput) bool { + switch data1 := _this.Get_().(type) { + case IntermediateWrapOutput_IntermediateWrapOutput: + { + data2, ok := other.Get_().(IntermediateWrapOutput_IntermediateWrapOutput) + return ok && data1.WrappedMaterial.Equals(data2.WrappedMaterial) && data1.SymmetricSigningKey.Equals(data2.SymmetricSigningKey) && _dafny.AreEqual(data1.WrapInfo, data2.WrapInfo) + } + default: + { + return false // unexpected + } + } +} + +func (_this IntermediateWrapOutput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(IntermediateWrapOutput) + return ok && _this.Equals(typed) +} + +func Type_IntermediateWrapOutput_(Type_T_ _dafny.TypeDescriptor) _dafny.TypeDescriptor { + return type_IntermediateWrapOutput_{Type_T_} +} + +type type_IntermediateWrapOutput_ struct { + Type_T_ _dafny.TypeDescriptor +} + +func (_this type_IntermediateWrapOutput_) Default() interface{} { + Type_T_ := _this.Type_T_ + _ = Type_T_ + return Companion_IntermediateWrapOutput_.Default(Type_T_.Default()) +} + +func (_this type_IntermediateWrapOutput_) String() string { + return "IntermediateKeyWrapping.IntermediateWrapOutput" +} +func (_this IntermediateWrapOutput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = IntermediateWrapOutput{} + +// End of datatype IntermediateWrapOutput + +// Definition of datatype DeserializedIntermediateWrappedMaterial +type DeserializedIntermediateWrappedMaterial struct { + Data_DeserializedIntermediateWrappedMaterial_ +} + +func (_this DeserializedIntermediateWrappedMaterial) Get_() Data_DeserializedIntermediateWrappedMaterial_ { + return _this.Data_DeserializedIntermediateWrappedMaterial_ +} + +type Data_DeserializedIntermediateWrappedMaterial_ interface { + isDeserializedIntermediateWrappedMaterial() +} + +type CompanionStruct_DeserializedIntermediateWrappedMaterial_ struct { +} + +var Companion_DeserializedIntermediateWrappedMaterial_ = CompanionStruct_DeserializedIntermediateWrappedMaterial_{} + +type DeserializedIntermediateWrappedMaterial_DeserializedIntermediateWrappedMaterial struct { + EncryptedPdk _dafny.Sequence + ProviderWrappedIkm _dafny.Sequence +} + +func (DeserializedIntermediateWrappedMaterial_DeserializedIntermediateWrappedMaterial) isDeserializedIntermediateWrappedMaterial() { +} + +func (CompanionStruct_DeserializedIntermediateWrappedMaterial_) Create_DeserializedIntermediateWrappedMaterial_(EncryptedPdk _dafny.Sequence, ProviderWrappedIkm _dafny.Sequence) DeserializedIntermediateWrappedMaterial { + return DeserializedIntermediateWrappedMaterial{DeserializedIntermediateWrappedMaterial_DeserializedIntermediateWrappedMaterial{EncryptedPdk, ProviderWrappedIkm}} +} + +func (_this DeserializedIntermediateWrappedMaterial) Is_DeserializedIntermediateWrappedMaterial() bool { + _, ok := _this.Get_().(DeserializedIntermediateWrappedMaterial_DeserializedIntermediateWrappedMaterial) + return ok +} + +func (CompanionStruct_DeserializedIntermediateWrappedMaterial_) Default() DeserializedIntermediateWrappedMaterial { + return Companion_DeserializedIntermediateWrappedMaterial_.Create_DeserializedIntermediateWrappedMaterial_(_dafny.EmptySeq, _dafny.EmptySeq) +} + +func (_this DeserializedIntermediateWrappedMaterial) Dtor_encryptedPdk() _dafny.Sequence { + return _this.Get_().(DeserializedIntermediateWrappedMaterial_DeserializedIntermediateWrappedMaterial).EncryptedPdk +} + +func (_this DeserializedIntermediateWrappedMaterial) Dtor_providerWrappedIkm() _dafny.Sequence { + return _this.Get_().(DeserializedIntermediateWrappedMaterial_DeserializedIntermediateWrappedMaterial).ProviderWrappedIkm +} + +func (_this DeserializedIntermediateWrappedMaterial) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case DeserializedIntermediateWrappedMaterial_DeserializedIntermediateWrappedMaterial: + { + return "IntermediateKeyWrapping.DeserializedIntermediateWrappedMaterial.DeserializedIntermediateWrappedMaterial" + "(" + _dafny.String(data.EncryptedPdk) + ", " + _dafny.String(data.ProviderWrappedIkm) + ")" + } + default: + { + return "" + } + } +} + +func (_this DeserializedIntermediateWrappedMaterial) Equals(other DeserializedIntermediateWrappedMaterial) bool { + switch data1 := _this.Get_().(type) { + case DeserializedIntermediateWrappedMaterial_DeserializedIntermediateWrappedMaterial: + { + data2, ok := other.Get_().(DeserializedIntermediateWrappedMaterial_DeserializedIntermediateWrappedMaterial) + return ok && data1.EncryptedPdk.Equals(data2.EncryptedPdk) && data1.ProviderWrappedIkm.Equals(data2.ProviderWrappedIkm) + } + default: + { + return false // unexpected + } + } +} + +func (_this DeserializedIntermediateWrappedMaterial) EqualsGeneric(other interface{}) bool { + typed, ok := other.(DeserializedIntermediateWrappedMaterial) + return ok && _this.Equals(typed) +} + +func Type_DeserializedIntermediateWrappedMaterial_() _dafny.TypeDescriptor { + return type_DeserializedIntermediateWrappedMaterial_{} +} + +type type_DeserializedIntermediateWrappedMaterial_ struct { +} + +func (_this type_DeserializedIntermediateWrappedMaterial_) Default() interface{} { + return Companion_DeserializedIntermediateWrappedMaterial_.Default() +} + +func (_this type_DeserializedIntermediateWrappedMaterial_) String() string { + return "IntermediateKeyWrapping.DeserializedIntermediateWrappedMaterial" +} +func (_this DeserializedIntermediateWrappedMaterial) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = DeserializedIntermediateWrappedMaterial{} + +// End of datatype DeserializedIntermediateWrappedMaterial + +// Definition of datatype PdkEncryptionAndSymmetricSigningKeys +type PdkEncryptionAndSymmetricSigningKeys struct { + Data_PdkEncryptionAndSymmetricSigningKeys_ +} + +func (_this PdkEncryptionAndSymmetricSigningKeys) Get_() Data_PdkEncryptionAndSymmetricSigningKeys_ { + return _this.Data_PdkEncryptionAndSymmetricSigningKeys_ +} + +type Data_PdkEncryptionAndSymmetricSigningKeys_ interface { + isPdkEncryptionAndSymmetricSigningKeys() +} + +type CompanionStruct_PdkEncryptionAndSymmetricSigningKeys_ struct { +} + +var Companion_PdkEncryptionAndSymmetricSigningKeys_ = CompanionStruct_PdkEncryptionAndSymmetricSigningKeys_{} + +type PdkEncryptionAndSymmetricSigningKeys_PdkEncryptionAndSymmetricSigningKeys struct { + PdkEncryptionKey _dafny.Sequence + SymmetricSigningKey _dafny.Sequence +} + +func (PdkEncryptionAndSymmetricSigningKeys_PdkEncryptionAndSymmetricSigningKeys) isPdkEncryptionAndSymmetricSigningKeys() { +} + +func (CompanionStruct_PdkEncryptionAndSymmetricSigningKeys_) Create_PdkEncryptionAndSymmetricSigningKeys_(PdkEncryptionKey _dafny.Sequence, SymmetricSigningKey _dafny.Sequence) PdkEncryptionAndSymmetricSigningKeys { + return PdkEncryptionAndSymmetricSigningKeys{PdkEncryptionAndSymmetricSigningKeys_PdkEncryptionAndSymmetricSigningKeys{PdkEncryptionKey, SymmetricSigningKey}} +} + +func (_this PdkEncryptionAndSymmetricSigningKeys) Is_PdkEncryptionAndSymmetricSigningKeys() bool { + _, ok := _this.Get_().(PdkEncryptionAndSymmetricSigningKeys_PdkEncryptionAndSymmetricSigningKeys) + return ok +} + +func (CompanionStruct_PdkEncryptionAndSymmetricSigningKeys_) Default() PdkEncryptionAndSymmetricSigningKeys { + return Companion_PdkEncryptionAndSymmetricSigningKeys_.Create_PdkEncryptionAndSymmetricSigningKeys_(_dafny.EmptySeq, _dafny.EmptySeq) +} + +func (_this PdkEncryptionAndSymmetricSigningKeys) Dtor_pdkEncryptionKey() _dafny.Sequence { + return _this.Get_().(PdkEncryptionAndSymmetricSigningKeys_PdkEncryptionAndSymmetricSigningKeys).PdkEncryptionKey +} + +func (_this PdkEncryptionAndSymmetricSigningKeys) Dtor_symmetricSigningKey() _dafny.Sequence { + return _this.Get_().(PdkEncryptionAndSymmetricSigningKeys_PdkEncryptionAndSymmetricSigningKeys).SymmetricSigningKey +} + +func (_this PdkEncryptionAndSymmetricSigningKeys) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case PdkEncryptionAndSymmetricSigningKeys_PdkEncryptionAndSymmetricSigningKeys: + { + return "IntermediateKeyWrapping.PdkEncryptionAndSymmetricSigningKeys.PdkEncryptionAndSymmetricSigningKeys" + "(" + _dafny.String(data.PdkEncryptionKey) + ", " + _dafny.String(data.SymmetricSigningKey) + ")" + } + default: + { + return "" + } + } +} + +func (_this PdkEncryptionAndSymmetricSigningKeys) Equals(other PdkEncryptionAndSymmetricSigningKeys) bool { + switch data1 := _this.Get_().(type) { + case PdkEncryptionAndSymmetricSigningKeys_PdkEncryptionAndSymmetricSigningKeys: + { + data2, ok := other.Get_().(PdkEncryptionAndSymmetricSigningKeys_PdkEncryptionAndSymmetricSigningKeys) + return ok && data1.PdkEncryptionKey.Equals(data2.PdkEncryptionKey) && data1.SymmetricSigningKey.Equals(data2.SymmetricSigningKey) + } + default: + { + return false // unexpected + } + } +} + +func (_this PdkEncryptionAndSymmetricSigningKeys) EqualsGeneric(other interface{}) bool { + typed, ok := other.(PdkEncryptionAndSymmetricSigningKeys) + return ok && _this.Equals(typed) +} + +func Type_PdkEncryptionAndSymmetricSigningKeys_() _dafny.TypeDescriptor { + return type_PdkEncryptionAndSymmetricSigningKeys_{} +} + +type type_PdkEncryptionAndSymmetricSigningKeys_ struct { +} + +func (_this type_PdkEncryptionAndSymmetricSigningKeys_) Default() interface{} { + return Companion_PdkEncryptionAndSymmetricSigningKeys_.Default() +} + +func (_this type_PdkEncryptionAndSymmetricSigningKeys_) String() string { + return "IntermediateKeyWrapping.PdkEncryptionAndSymmetricSigningKeys" +} +func (_this PdkEncryptionAndSymmetricSigningKeys) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = PdkEncryptionAndSymmetricSigningKeys{} + +// End of datatype PdkEncryptionAndSymmetricSigningKeys diff --git a/customer-preview/mpl/KMSKeystoreOperations/KMSKeystoreOperations.go b/customer-preview/mpl/KMSKeystoreOperations/KMSKeystoreOperations.go new file mode 100644 index 000000000..ff294e5ea --- /dev/null +++ b/customer-preview/mpl/KMSKeystoreOperations/KMSKeystoreOperations.go @@ -0,0 +1,426 @@ +// Package KMSKeystoreOperations +// Dafny module KMSKeystoreOperations compiled into Go + +package KMSKeystoreOperations + +import ( + os "os" + + m_ComAmazonawsDynamodbTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/ComAmazonawsDynamodbTypes" + m_ComAmazonawsKmsTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/ComAmazonawsKmsTypes" + m_AwsArnParsing "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsArnParsing" + m_AwsCryptographyKeyStoreTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreTypes" + m_AwsCryptographyMaterialProvidersTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersTypes" + m_AwsKmsMrkMatchForDecrypt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkMatchForDecrypt" + m_AwsKmsUtils "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsUtils" + m_KeyStoreErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStoreErrorMessages" + m_KmsArn "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KmsArn" + m_Structure "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Structure" + m_AtomicPrimitives "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AtomicPrimitives" + m_AwsCryptographyPrimitivesOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesOperations" + m_AwsCryptographyPrimitivesTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesTypes" + m_Digest "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Digest" + m_HKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/HKDF" + m_KdfCtr "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/KdfCtr" + m_Random "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Random" + m_WrappedHKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHKDF" + m_WrappedHMAC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHMAC" + m_Actions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Actions" + m_Base64 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64" + m_Base64Lemmas "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64Lemmas" + m_BoundedInts "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/BoundedInts" + m_DivInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternals" + m_DivInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternalsNonlinear" + m_DivMod "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivMod" + m_FileIO "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FileIO" + m_FloatCompare "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FloatCompare" + m_Functions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Functions" + m_GeneralInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GeneralInternals" + m_GetOpt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GetOpt" + m_HexStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/HexStrings" + m_Logarithm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Logarithm" + m__Math "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Math_" + m_ModInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternals" + m_ModInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternalsNonlinear" + m_Mul "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Mul" + m_MulInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternals" + m_MulInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternalsNonlinear" + m_Power "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Power" + m_Relations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Relations" + m_Seq "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq" + m_Seq_MergeSort "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq_MergeSort" + m_Sorting "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Sorting" + m_StandardLibrary "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary" + m_StandardLibraryInterop "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibraryInterop" + m_StandardLibrary_Sequence "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_Sequence" + m_StandardLibrary_String "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_String" + m_StandardLibrary_UInt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_UInt" + m_Streams "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Streams" + m_UnicodeStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UnicodeStrings" + m__Unicode "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Unicode_" + m_Utf16EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf16EncodingForm" + m_Utf8EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf8EncodingForm" + m_Wrappers "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers" + m__System "github.com/dafny-lang/DafnyRuntimeGo/v4/System_" + _dafny "github.com/dafny-lang/DafnyRuntimeGo/v4/dafny" +) + +var _ = os.Args +var _ _dafny.Dummy__ +var _ m__System.Dummy__ +var _ m_Wrappers.Dummy__ +var _ m_BoundedInts.Dummy__ +var _ m_StandardLibrary_UInt.Dummy__ +var _ m_StandardLibrary_Sequence.Dummy__ +var _ m_StandardLibrary_String.Dummy__ +var _ m_StandardLibrary.Dummy__ +var _ m_AwsCryptographyPrimitivesTypes.Dummy__ +var _ m_Random.Dummy__ +var _ m_Digest.Dummy__ +var _ m_WrappedHMAC.Dummy__ +var _ m_HKDF.Dummy__ +var _ m_WrappedHKDF.Dummy__ +var _ m_KdfCtr.Dummy__ +var _ m_AwsCryptographyPrimitivesOperations.Dummy__ +var _ m_AtomicPrimitives.Dummy__ +var _ m_ComAmazonawsDynamodbTypes.Dummy__ +var _ m_ComAmazonawsKmsTypes.Dummy__ +var _ m_Relations.Dummy__ +var _ m_Seq_MergeSort.Dummy__ +var _ m__Math.Dummy__ +var _ m_Seq.Dummy__ +var _ m__Unicode.Dummy__ +var _ m_Functions.Dummy__ +var _ m_Utf8EncodingForm.Dummy__ +var _ m_Utf16EncodingForm.Dummy__ +var _ m_UnicodeStrings.Dummy__ +var _ m_FileIO.Dummy__ +var _ m_GeneralInternals.Dummy__ +var _ m_MulInternalsNonlinear.Dummy__ +var _ m_MulInternals.Dummy__ +var _ m_Mul.Dummy__ +var _ m_ModInternalsNonlinear.Dummy__ +var _ m_DivInternalsNonlinear.Dummy__ +var _ m_ModInternals.Dummy__ +var _ m_DivInternals.Dummy__ +var _ m_DivMod.Dummy__ +var _ m_Power.Dummy__ +var _ m_Logarithm.Dummy__ +var _ m_StandardLibraryInterop.Dummy__ +var _ m_Streams.Dummy__ +var _ m_Sorting.Dummy__ +var _ m_HexStrings.Dummy__ +var _ m_GetOpt.Dummy__ +var _ m_FloatCompare.Dummy__ +var _ m_Base64.Dummy__ +var _ m_Base64Lemmas.Dummy__ +var _ m_Actions.Dummy__ +var _ m_AwsCryptographyKeyStoreTypes.Dummy__ +var _ m_AwsCryptographyMaterialProvidersTypes.Dummy__ +var _ m_AwsArnParsing.Dummy__ +var _ m_AwsKmsMrkMatchForDecrypt.Dummy__ +var _ m_AwsKmsUtils.Dummy__ +var _ m_KeyStoreErrorMessages.Dummy__ +var _ m_KmsArn.Dummy__ +var _ m_Structure.Dummy__ + +type Dummy__ struct{} + +// Definition of class Default__ +type Default__ struct { + dummy byte +} + +func New_Default___() *Default__ { + _this := Default__{} + + return &_this +} + +type CompanionStruct_Default___ struct { +} + +var Companion_Default___ = CompanionStruct_Default___{} + +func (_this *Default__) Equals(other *Default__) bool { + return _this == other +} + +func (_this *Default__) EqualsGeneric(x interface{}) bool { + other, ok := x.(*Default__) + return ok && _this.Equals(other) +} + +func (*Default__) String() string { + return "KMSKeystoreOperations.Default__" +} +func (_this *Default__) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = &Default__{} + +func (_static *CompanionStruct_Default___) ReplaceRegion(arn _dafny.Sequence, region _dafny.Sequence) _dafny.Sequence { + var _0_parsed m_Wrappers.Result = m_AwsArnParsing.Companion_Default___.ParseAwsKmsArn(arn) + _ = _0_parsed + if (_0_parsed).Is_Failure() { + return arn + } else if !(m_AwsArnParsing.Companion_Default___.IsMultiRegionAwsKmsArn((_0_parsed).Dtor_value().(m_AwsArnParsing.AwsArn))) { + return arn + } else { + var _1_newArn _dafny.Sequence = ((_0_parsed).Dtor_value().(m_AwsArnParsing.AwsArn)).ToArnString(m_Wrappers.Companion_Option_.Create_Some_(region)) + _ = _1_newArn + if m_ComAmazonawsKmsTypes.Companion_Default___.IsValid__KeyIdType(_1_newArn) { + return _1_newArn + } else { + return arn + } + } +} +func (_static *CompanionStruct_Default___) GetArn(kmsConfiguration m_AwsCryptographyKeyStoreTypes.KMSConfiguration, discoverdArn _dafny.Sequence) _dafny.Sequence { + var _source0 m_AwsCryptographyKeyStoreTypes.KMSConfiguration = kmsConfiguration + _ = _source0 + { + if _source0.Is_kmsKeyArn() { + var _0_arn _dafny.Sequence = _source0.Get_().(m_AwsCryptographyKeyStoreTypes.KMSConfiguration_kmsKeyArn).KmsKeyArn + _ = _0_arn + return _0_arn + } + } + { + if _source0.Is_kmsMRKeyArn() { + var _1_arn _dafny.Sequence = _source0.Get_().(m_AwsCryptographyKeyStoreTypes.KMSConfiguration_kmsMRKeyArn).KmsMRKeyArn + _ = _1_arn + return _1_arn + } + } + { + if _source0.Is_discovery() { + var _2_obj m_AwsCryptographyKeyStoreTypes.Discovery = _source0.Get_().(m_AwsCryptographyKeyStoreTypes.KMSConfiguration_discovery).Discovery + _ = _2_obj + return discoverdArn + } + } + { + var _3_region m_AwsCryptographyKeyStoreTypes.MRDiscovery = _source0.Get_().(m_AwsCryptographyKeyStoreTypes.KMSConfiguration_mrDiscovery).MrDiscovery + _ = _3_region + return Companion_Default___.ReplaceRegion(discoverdArn, (_3_region).Dtor_region()) + } +} +func (_static *CompanionStruct_Default___) AttemptKmsOperation_q(kmsConfiguration m_AwsCryptographyKeyStoreTypes.KMSConfiguration, encryptionContext _dafny.Map) bool { + var _source0 m_AwsCryptographyKeyStoreTypes.KMSConfiguration = kmsConfiguration + _ = _source0 + { + if _source0.Is_kmsKeyArn() { + var _0_arn _dafny.Sequence = _source0.Get_().(m_AwsCryptographyKeyStoreTypes.KMSConfiguration_kmsKeyArn).KmsKeyArn + _ = _0_arn + return (_dafny.Companion_Sequence_.Equal(_0_arn, (encryptionContext).Get(m_Structure.Companion_Default___.KMS__FIELD()).(_dafny.Sequence))) && (m_KmsArn.Companion_Default___.ValidKmsArn_q(_0_arn)) + } + } + { + if _source0.Is_kmsMRKeyArn() { + var _1_arn _dafny.Sequence = _source0.Get_().(m_AwsCryptographyKeyStoreTypes.KMSConfiguration_kmsMRKeyArn).KmsMRKeyArn + _ = _1_arn + return (Companion_Default___.MrkMatch(_1_arn, (encryptionContext).Get(m_Structure.Companion_Default___.KMS__FIELD()).(_dafny.Sequence))) && (m_KmsArn.Companion_Default___.ValidKmsArn_q(_1_arn)) + } + } + { + if _source0.Is_discovery() { + var _2_obj m_AwsCryptographyKeyStoreTypes.Discovery = _source0.Get_().(m_AwsCryptographyKeyStoreTypes.KMSConfiguration_discovery).Discovery + _ = _2_obj + return m_KmsArn.Companion_Default___.ValidKmsArn_q((encryptionContext).Get(m_Structure.Companion_Default___.KMS__FIELD()).(_dafny.Sequence)) + } + } + { + var _3_obj m_AwsCryptographyKeyStoreTypes.MRDiscovery = _source0.Get_().(m_AwsCryptographyKeyStoreTypes.KMSConfiguration_mrDiscovery).MrDiscovery + _ = _3_obj + return m_KmsArn.Companion_Default___.ValidKmsArn_q((encryptionContext).Get(m_Structure.Companion_Default___.KMS__FIELD()).(_dafny.Sequence)) + } +} +func (_static *CompanionStruct_Default___) Compatible_q(kmsConfiguration m_AwsCryptographyKeyStoreTypes.KMSConfiguration, keyId _dafny.Sequence) bool { + var _source0 m_AwsCryptographyKeyStoreTypes.KMSConfiguration = kmsConfiguration + _ = _source0 + { + if _source0.Is_kmsKeyArn() { + var _0_arn _dafny.Sequence = _source0.Get_().(m_AwsCryptographyKeyStoreTypes.KMSConfiguration_kmsKeyArn).KmsKeyArn + _ = _0_arn + return _dafny.Companion_Sequence_.Equal(_0_arn, keyId) + } + } + { + var _1_arn _dafny.Sequence = _source0.Get_().(m_AwsCryptographyKeyStoreTypes.KMSConfiguration_kmsMRKeyArn).KmsMRKeyArn + _ = _1_arn + return Companion_Default___.MrkMatch(_1_arn, keyId) + } +} +func (_static *CompanionStruct_Default___) OptCompatible_q(kmsConfiguration m_AwsCryptographyKeyStoreTypes.KMSConfiguration, keyId m_Wrappers.Option) bool { + return ((keyId).Is_Some()) && (Companion_Default___.Compatible_q(kmsConfiguration, (keyId).Dtor_value().(_dafny.Sequence))) +} +func (_static *CompanionStruct_Default___) MrkMatch(x _dafny.Sequence, y _dafny.Sequence) bool { + var _0_xArn m_Wrappers.Result = m_AwsArnParsing.Companion_Default___.ParseAwsKmsArn(x) + _ = _0_xArn + var _1_yArn m_Wrappers.Result = m_AwsArnParsing.Companion_Default___.ParseAwsKmsArn(y) + _ = _1_yArn + if ((_0_xArn).Is_Failure()) || ((_1_yArn).Is_Failure()) { + return false + } else { + return m_AwsKmsMrkMatchForDecrypt.Companion_Default___.AwsKmsMrkMatchForDecrypt(m_AwsArnParsing.Companion_AwsKmsIdentifier_.Create_AwsKmsArnIdentifier_((_0_xArn).Dtor_value().(m_AwsArnParsing.AwsArn)), m_AwsArnParsing.Companion_AwsKmsIdentifier_.Create_AwsKmsArnIdentifier_((_1_yArn).Dtor_value().(m_AwsArnParsing.AwsArn))) + } +} +func (_static *CompanionStruct_Default___) HasKeyId(kmsConfiguration m_AwsCryptographyKeyStoreTypes.KMSConfiguration) bool { + return ((kmsConfiguration).Is_kmsKeyArn()) || ((kmsConfiguration).Is_kmsMRKeyArn()) +} +func (_static *CompanionStruct_Default___) GetKeyId(kmsConfiguration m_AwsCryptographyKeyStoreTypes.KMSConfiguration) _dafny.Sequence { + var _source0 m_AwsCryptographyKeyStoreTypes.KMSConfiguration = kmsConfiguration + _ = _source0 + { + if _source0.Is_kmsKeyArn() { + var _0_arn _dafny.Sequence = _source0.Get_().(m_AwsCryptographyKeyStoreTypes.KMSConfiguration_kmsKeyArn).KmsKeyArn + _ = _0_arn + return _0_arn + } + } + { + var _1_arn _dafny.Sequence = _source0.Get_().(m_AwsCryptographyKeyStoreTypes.KMSConfiguration_kmsMRKeyArn).KmsMRKeyArn + _ = _1_arn + return _1_arn + } +} +func (_static *CompanionStruct_Default___) GenerateKey(encryptionContext _dafny.Map, kmsConfiguration m_AwsCryptographyKeyStoreTypes.KMSConfiguration, grantTokens _dafny.Sequence, kmsClient m_ComAmazonawsKmsTypes.IKMSClient) m_Wrappers.Result { + var res m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_ComAmazonawsKmsTypes.Companion_GenerateDataKeyWithoutPlaintextResponse_.Default()) + _ = res + var _0_kmsKeyArn _dafny.Sequence + _ = _0_kmsKeyArn + _0_kmsKeyArn = Companion_Default___.GetKeyId(kmsConfiguration) + var _1_generatorRequest m_ComAmazonawsKmsTypes.GenerateDataKeyWithoutPlaintextRequest + _ = _1_generatorRequest + _1_generatorRequest = m_ComAmazonawsKmsTypes.Companion_GenerateDataKeyWithoutPlaintextRequest_.Create_GenerateDataKeyWithoutPlaintextRequest_(_0_kmsKeyArn, m_Wrappers.Companion_Option_.Create_Some_(encryptionContext), m_Wrappers.Companion_Option_.Create_None_(), m_Wrappers.Companion_Option_.Create_Some_(int32(32)), m_Wrappers.Companion_Option_.Create_Some_(grantTokens), m_Wrappers.Companion_Option_.Create_None_()) + var _2_maybeGenerateResponse m_Wrappers.Result + _ = _2_maybeGenerateResponse + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = (kmsClient).GenerateDataKeyWithoutPlaintext(_1_generatorRequest) + _2_maybeGenerateResponse = _out0 + var _3_valueOrError0 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_ComAmazonawsKmsTypes.Companion_GenerateDataKeyWithoutPlaintextResponse_.Default()) + _ = _3_valueOrError0 + _3_valueOrError0 = (_2_maybeGenerateResponse).MapFailure(func(coer11 func(m_ComAmazonawsKmsTypes.Error) m_AwsCryptographyKeyStoreTypes.Error) func(interface{}) interface{} { + return func(arg11 interface{}) interface{} { + return coer11(arg11.(m_ComAmazonawsKmsTypes.Error)) + } + }(func(_4_e m_ComAmazonawsKmsTypes.Error) m_AwsCryptographyKeyStoreTypes.Error { + return m_AwsCryptographyKeyStoreTypes.Companion_Error_.Create_ComAmazonawsKms_(_4_e) + })) + if (_3_valueOrError0).IsFailure() { + res = (_3_valueOrError0).PropagateFailure() + return res + } + var _5_generateResponse m_ComAmazonawsKmsTypes.GenerateDataKeyWithoutPlaintextResponse + _ = _5_generateResponse + _5_generateResponse = (_3_valueOrError0).Extract().(m_ComAmazonawsKmsTypes.GenerateDataKeyWithoutPlaintextResponse) + var _6_valueOrError1 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _6_valueOrError1 + _6_valueOrError1 = m_Wrappers.Companion_Default___.Need((true) && (((_5_generateResponse).Dtor_KeyId()).Is_Some()), m_AwsCryptographyKeyStoreTypes.Companion_Error_.Create_KeyStoreException_(_dafny.SeqOfString("Invalid response from KMS GenerateDataKey:: Invalid Key Id"))) + if (_6_valueOrError1).IsFailure() { + res = (_6_valueOrError1).PropagateFailure() + return res + } + var _7_valueOrError2 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _7_valueOrError2 + _7_valueOrError2 = m_Wrappers.Companion_Default___.Need((((_5_generateResponse).Dtor_CiphertextBlob()).Is_Some()) && (m_ComAmazonawsKmsTypes.Companion_Default___.IsValid__CiphertextType(((_5_generateResponse).Dtor_CiphertextBlob()).Dtor_value().(_dafny.Sequence))), m_AwsCryptographyKeyStoreTypes.Companion_Error_.Create_KeyStoreException_(_dafny.SeqOfString("Invalid response from AWS KMS GenerateDataKey: Invalid ciphertext"))) + if (_7_valueOrError2).IsFailure() { + res = (_7_valueOrError2).PropagateFailure() + return res + } + res = m_Wrappers.Companion_Result_.Create_Success_(_5_generateResponse) + return res + return res +} +func (_static *CompanionStruct_Default___) ReEncryptKey(ciphertext _dafny.Sequence, sourceEncryptionContext _dafny.Map, destinationEncryptionContext _dafny.Map, kmsConfiguration m_AwsCryptographyKeyStoreTypes.KMSConfiguration, grantTokens _dafny.Sequence, kmsClient m_ComAmazonawsKmsTypes.IKMSClient) m_Wrappers.Result { + var res m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_ComAmazonawsKmsTypes.Companion_ReEncryptResponse_.Default()) + _ = res + var _0_kmsKeyArn _dafny.Sequence + _ = _0_kmsKeyArn + _0_kmsKeyArn = Companion_Default___.GetKeyId(kmsConfiguration) + var _1_reEncryptRequest m_ComAmazonawsKmsTypes.ReEncryptRequest + _ = _1_reEncryptRequest + _1_reEncryptRequest = m_ComAmazonawsKmsTypes.Companion_ReEncryptRequest_.Create_ReEncryptRequest_(ciphertext, m_Wrappers.Companion_Option_.Create_Some_(sourceEncryptionContext), m_Wrappers.Companion_Option_.Create_Some_(_0_kmsKeyArn), _0_kmsKeyArn, m_Wrappers.Companion_Option_.Create_Some_(destinationEncryptionContext), m_Wrappers.Companion_Option_.Create_None_(), m_Wrappers.Companion_Option_.Create_None_(), m_Wrappers.Companion_Option_.Create_Some_(grantTokens), m_Wrappers.Companion_Option_.Create_None_()) + var _2_maybeReEncryptResponse m_Wrappers.Result + _ = _2_maybeReEncryptResponse + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = (kmsClient).ReEncrypt(_1_reEncryptRequest) + _2_maybeReEncryptResponse = _out0 + var _3_valueOrError0 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_ComAmazonawsKmsTypes.Companion_ReEncryptResponse_.Default()) + _ = _3_valueOrError0 + _3_valueOrError0 = (_2_maybeReEncryptResponse).MapFailure(func(coer12 func(m_ComAmazonawsKmsTypes.Error) m_AwsCryptographyKeyStoreTypes.Error) func(interface{}) interface{} { + return func(arg12 interface{}) interface{} { + return coer12(arg12.(m_ComAmazonawsKmsTypes.Error)) + } + }(func(_4_e m_ComAmazonawsKmsTypes.Error) m_AwsCryptographyKeyStoreTypes.Error { + return m_AwsCryptographyKeyStoreTypes.Companion_Error_.Create_ComAmazonawsKms_(_4_e) + })) + if (_3_valueOrError0).IsFailure() { + res = (_3_valueOrError0).PropagateFailure() + return res + } + var _5_reEncryptResponse m_ComAmazonawsKmsTypes.ReEncryptResponse + _ = _5_reEncryptResponse + _5_reEncryptResponse = (_3_valueOrError0).Extract().(m_ComAmazonawsKmsTypes.ReEncryptResponse) + var _6_valueOrError1 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _6_valueOrError1 + _6_valueOrError1 = m_Wrappers.Companion_Default___.Need((((((_5_reEncryptResponse).Dtor_SourceKeyId()).Is_Some()) && (((_5_reEncryptResponse).Dtor_KeyId()).Is_Some())) && (_dafny.Companion_Sequence_.Equal(((_5_reEncryptResponse).Dtor_SourceKeyId()).Dtor_value().(_dafny.Sequence), _0_kmsKeyArn))) && (_dafny.Companion_Sequence_.Equal(((_5_reEncryptResponse).Dtor_KeyId()).Dtor_value().(_dafny.Sequence), _0_kmsKeyArn)), m_AwsCryptographyKeyStoreTypes.Companion_Error_.Create_KeyStoreException_(_dafny.SeqOfString("Invalid response from KMS ReEncrypt:: Invalid Key Id"))) + if (_6_valueOrError1).IsFailure() { + res = (_6_valueOrError1).PropagateFailure() + return res + } + var _7_valueOrError2 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _7_valueOrError2 + _7_valueOrError2 = m_Wrappers.Companion_Default___.Need((((_5_reEncryptResponse).Dtor_CiphertextBlob()).Is_Some()) && (m_ComAmazonawsKmsTypes.Companion_Default___.IsValid__CiphertextType(((_5_reEncryptResponse).Dtor_CiphertextBlob()).Dtor_value().(_dafny.Sequence))), m_AwsCryptographyKeyStoreTypes.Companion_Error_.Create_KeyStoreException_(_dafny.SeqOfString("Invalid response from AWS KMS ReEncrypt: Invalid ciphertext."))) + if (_7_valueOrError2).IsFailure() { + res = (_7_valueOrError2).PropagateFailure() + return res + } + res = m_Wrappers.Companion_Result_.Create_Success_(_5_reEncryptResponse) + return res + return res +} +func (_static *CompanionStruct_Default___) DecryptKey(encryptionContext _dafny.Map, item _dafny.Map, kmsConfiguration m_AwsCryptographyKeyStoreTypes.KMSConfiguration, grantTokens _dafny.Sequence, kmsClient m_ComAmazonawsKmsTypes.IKMSClient) m_Wrappers.Result { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_ComAmazonawsKmsTypes.Companion_DecryptResponse_.Default()) + _ = output + var _0_kmsKeyArn _dafny.Sequence + _ = _0_kmsKeyArn + _0_kmsKeyArn = Companion_Default___.GetArn(kmsConfiguration, (encryptionContext).Get(m_Structure.Companion_Default___.KMS__FIELD()).(_dafny.Sequence)) + var _1_maybeDecryptResponse m_Wrappers.Result + _ = _1_maybeDecryptResponse + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = (kmsClient).Decrypt(m_ComAmazonawsKmsTypes.Companion_DecryptRequest_.Create_DecryptRequest_(((item).Get(m_Structure.Companion_Default___.BRANCH__KEY__FIELD()).(m_ComAmazonawsDynamodbTypes.AttributeValue)).Dtor_B(), m_Wrappers.Companion_Option_.Create_Some_(encryptionContext), m_Wrappers.Companion_Option_.Create_Some_(grantTokens), m_Wrappers.Companion_Option_.Create_Some_(_0_kmsKeyArn), m_Wrappers.Companion_Option_.Create_None_(), m_Wrappers.Companion_Option_.Create_None_(), m_Wrappers.Companion_Option_.Create_None_())) + _1_maybeDecryptResponse = _out0 + var _2_valueOrError0 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_ComAmazonawsKmsTypes.Companion_DecryptResponse_.Default()) + _ = _2_valueOrError0 + _2_valueOrError0 = (_1_maybeDecryptResponse).MapFailure(func(coer13 func(m_ComAmazonawsKmsTypes.Error) m_AwsCryptographyKeyStoreTypes.Error) func(interface{}) interface{} { + return func(arg13 interface{}) interface{} { + return coer13(arg13.(m_ComAmazonawsKmsTypes.Error)) + } + }(func(_3_e m_ComAmazonawsKmsTypes.Error) m_AwsCryptographyKeyStoreTypes.Error { + return m_AwsCryptographyKeyStoreTypes.Companion_Error_.Create_ComAmazonawsKms_(_3_e) + })) + if (_2_valueOrError0).IsFailure() { + output = (_2_valueOrError0).PropagateFailure() + return output + } + var _4_decryptResponse m_ComAmazonawsKmsTypes.DecryptResponse + _ = _4_decryptResponse + _4_decryptResponse = (_2_valueOrError0).Extract().(m_ComAmazonawsKmsTypes.DecryptResponse) + var _5_valueOrError1 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _5_valueOrError1 + _5_valueOrError1 = m_Wrappers.Companion_Default___.Need((((_4_decryptResponse).Dtor_Plaintext()).Is_Some()) && ((_dafny.IntOfInt64(32)).Cmp(_dafny.IntOfUint32((((_4_decryptResponse).Dtor_Plaintext()).Dtor_value().(_dafny.Sequence)).Cardinality())) == 0), m_AwsCryptographyKeyStoreTypes.Companion_Error_.Create_KeyStoreException_(_dafny.SeqOfString("Invalid response from AWS KMS Decrypt: Key is not 32 bytes."))) + if (_5_valueOrError1).IsFailure() { + output = (_5_valueOrError1).PropagateFailure() + return output + } + output = m_Wrappers.Companion_Result_.Create_Success_(_4_decryptResponse) + return output +} + +// End of class Default__ diff --git a/customer-preview/mpl/KeyStore/KeyStore.go b/customer-preview/mpl/KeyStore/KeyStore.go new file mode 100644 index 000000000..0ccd2e53e --- /dev/null +++ b/customer-preview/mpl/KeyStore/KeyStore.go @@ -0,0 +1,502 @@ +// Package KeyStore +// Dafny module KeyStore compiled into Go + +package KeyStore + +import ( + os "os" + + m_ComAmazonawsDynamodbTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/ComAmazonawsDynamodbTypes" + m_Com_Amazonaws_Dynamodb "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/Com_Amazonaws_Dynamodb" + m_ComAmazonawsKmsTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/ComAmazonawsKmsTypes" + m_Com_Amazonaws_Kms "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/Com_Amazonaws_Kms" + m_AwsArnParsing "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsArnParsing" + m_AwsCryptographyKeyStoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreOperations" + m_AwsCryptographyKeyStoreTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreTypes" + m_AwsCryptographyMaterialProvidersTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersTypes" + m_AwsKmsMrkMatchForDecrypt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkMatchForDecrypt" + m_AwsKmsUtils "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsUtils" + m_CreateKeyStoreTable "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeyStoreTable" + m_CreateKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeys" + m_DDBKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DDBKeystoreOperations" + m_GetKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/GetKeys" + m_KMSKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KMSKeystoreOperations" + m_KeyStoreErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStoreErrorMessages" + m_KmsArn "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KmsArn" + m_Structure "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Structure" + m_AtomicPrimitives "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AtomicPrimitives" + m_AwsCryptographyPrimitivesOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesOperations" + m_AwsCryptographyPrimitivesTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesTypes" + m_Digest "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Digest" + m_HKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/HKDF" + m_KdfCtr "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/KdfCtr" + m_Random "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Random" + m_WrappedHKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHKDF" + m_WrappedHMAC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHMAC" + m_Actions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Actions" + m_Base64 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64" + m_Base64Lemmas "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64Lemmas" + m_BoundedInts "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/BoundedInts" + m_DivInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternals" + m_DivInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternalsNonlinear" + m_DivMod "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivMod" + m_FileIO "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FileIO" + m_FloatCompare "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FloatCompare" + m_Functions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Functions" + m_GeneralInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GeneralInternals" + m_GetOpt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GetOpt" + m_HexStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/HexStrings" + m_Logarithm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Logarithm" + m__Math "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Math_" + m_ModInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternals" + m_ModInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternalsNonlinear" + m_Mul "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Mul" + m_MulInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternals" + m_MulInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternalsNonlinear" + m_Power "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Power" + m_Relations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Relations" + m_Seq "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq" + m_Seq_MergeSort "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq_MergeSort" + m_Sorting "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Sorting" + m_StandardLibrary "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary" + m_StandardLibraryInterop "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibraryInterop" + m_StandardLibrary_Sequence "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_Sequence" + m_StandardLibrary_String "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_String" + m_StandardLibrary_UInt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_UInt" + m_Streams "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Streams" + m_UUID "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UUID" + m_UnicodeStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UnicodeStrings" + m__Unicode "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Unicode_" + m_Utf16EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf16EncodingForm" + m_Utf8EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf8EncodingForm" + m_Wrappers "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers" + m__System "github.com/dafny-lang/DafnyRuntimeGo/v4/System_" + _dafny "github.com/dafny-lang/DafnyRuntimeGo/v4/dafny" +) + +var _ = os.Args +var _ _dafny.Dummy__ +var _ m__System.Dummy__ +var _ m_Wrappers.Dummy__ +var _ m_BoundedInts.Dummy__ +var _ m_StandardLibrary_UInt.Dummy__ +var _ m_StandardLibrary_Sequence.Dummy__ +var _ m_StandardLibrary_String.Dummy__ +var _ m_StandardLibrary.Dummy__ +var _ m_AwsCryptographyPrimitivesTypes.Dummy__ +var _ m_Random.Dummy__ +var _ m_Digest.Dummy__ +var _ m_WrappedHMAC.Dummy__ +var _ m_HKDF.Dummy__ +var _ m_WrappedHKDF.Dummy__ +var _ m_KdfCtr.Dummy__ +var _ m_AwsCryptographyPrimitivesOperations.Dummy__ +var _ m_AtomicPrimitives.Dummy__ +var _ m_ComAmazonawsDynamodbTypes.Dummy__ +var _ m_ComAmazonawsKmsTypes.Dummy__ +var _ m_Relations.Dummy__ +var _ m_Seq_MergeSort.Dummy__ +var _ m__Math.Dummy__ +var _ m_Seq.Dummy__ +var _ m__Unicode.Dummy__ +var _ m_Functions.Dummy__ +var _ m_Utf8EncodingForm.Dummy__ +var _ m_Utf16EncodingForm.Dummy__ +var _ m_UnicodeStrings.Dummy__ +var _ m_FileIO.Dummy__ +var _ m_GeneralInternals.Dummy__ +var _ m_MulInternalsNonlinear.Dummy__ +var _ m_MulInternals.Dummy__ +var _ m_Mul.Dummy__ +var _ m_ModInternalsNonlinear.Dummy__ +var _ m_DivInternalsNonlinear.Dummy__ +var _ m_ModInternals.Dummy__ +var _ m_DivInternals.Dummy__ +var _ m_DivMod.Dummy__ +var _ m_Power.Dummy__ +var _ m_Logarithm.Dummy__ +var _ m_StandardLibraryInterop.Dummy__ +var _ m_Streams.Dummy__ +var _ m_Sorting.Dummy__ +var _ m_HexStrings.Dummy__ +var _ m_GetOpt.Dummy__ +var _ m_FloatCompare.Dummy__ +var _ m_Base64.Dummy__ +var _ m_Base64Lemmas.Dummy__ +var _ m_Actions.Dummy__ +var _ m_AwsCryptographyKeyStoreTypes.Dummy__ +var _ m_AwsCryptographyMaterialProvidersTypes.Dummy__ +var _ m_AwsArnParsing.Dummy__ +var _ m_AwsKmsMrkMatchForDecrypt.Dummy__ +var _ m_AwsKmsUtils.Dummy__ +var _ m_KeyStoreErrorMessages.Dummy__ +var _ m_KmsArn.Dummy__ +var _ m_Structure.Dummy__ +var _ m_KMSKeystoreOperations.Dummy__ +var _ m_DDBKeystoreOperations.Dummy__ +var _ m_CreateKeys.Dummy__ +var _ m_CreateKeyStoreTable.Dummy__ +var _ m_GetKeys.Dummy__ +var _ m_AwsCryptographyKeyStoreOperations.Dummy__ +var _ m_Com_Amazonaws_Kms.Dummy__ +var _ m_Com_Amazonaws_Dynamodb.Dummy__ + +type Dummy__ struct{} + +// Definition of class Default__ +type Default__ struct { + dummy byte +} + +func New_Default___() *Default__ { + _this := Default__{} + + return &_this +} + +type CompanionStruct_Default___ struct { +} + +var Companion_Default___ = CompanionStruct_Default___{} + +func (_this *Default__) Equals(other *Default__) bool { + return _this == other +} + +func (_this *Default__) EqualsGeneric(x interface{}) bool { + other, ok := x.(*Default__) + return ok && _this.Equals(other) +} + +func (*Default__) String() string { + return "KeyStore.Default__" +} +func (_this *Default__) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = &Default__{} + +func (_static *CompanionStruct_Default___) DefaultKeyStoreConfig() m_AwsCryptographyKeyStoreTypes.KeyStoreConfig { + return m_AwsCryptographyKeyStoreTypes.Companion_KeyStoreConfig_.Create_KeyStoreConfig_(_dafny.SeqOfString("None"), m_AwsCryptographyKeyStoreTypes.Companion_KMSConfiguration_.Create_kmsKeyArn_(_dafny.SeqOfString("arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab")), _dafny.SeqOfString("None"), m_Wrappers.Companion_Option_.Create_None_(), m_Wrappers.Companion_Option_.Create_None_(), m_Wrappers.Companion_Option_.Create_None_(), m_Wrappers.Companion_Option_.Create_None_()) +} +func (_static *CompanionStruct_Default___) KeyStore(config m_AwsCryptographyKeyStoreTypes.KeyStoreConfig) m_Wrappers.Result { + var res m_Wrappers.Result = m_Wrappers.Result{} + _ = res + var _0_kmsClient m_ComAmazonawsKmsTypes.IKMSClient = (m_ComAmazonawsKmsTypes.IKMSClient)(nil) + _ = _0_kmsClient + var _1_ddbClient m_ComAmazonawsDynamodbTypes.IDynamoDBClient = (m_ComAmazonawsDynamodbTypes.IDynamoDBClient)(nil) + _ = _1_ddbClient + var _2_inferredRegion m_Wrappers.Option + _ = _2_inferredRegion + _2_inferredRegion = m_Wrappers.Companion_Option_.Create_None_() + if m_KMSKeystoreOperations.Companion_Default___.HasKeyId((config).Dtor_kmsConfiguration()) { + var _3_valueOrError0 m_Wrappers.Result = m_Wrappers.Result{} + _ = _3_valueOrError0 + _3_valueOrError0 = m_KmsArn.Companion_Default___.IsValidKeyArn(m_KMSKeystoreOperations.Companion_Default___.GetKeyId((config).Dtor_kmsConfiguration())) + if (_3_valueOrError0).IsFailure() { + res = (_3_valueOrError0).PropagateFailure() + return res + } + var _4_parsedArn m_AwsArnParsing.AwsArn + _ = _4_parsedArn + _4_parsedArn = (_3_valueOrError0).Extract().(m_AwsArnParsing.AwsArn) + _2_inferredRegion = m_Wrappers.Companion_Option_.Create_Some_((_4_parsedArn).Dtor_region()) + } else if ((config).Dtor_kmsConfiguration()).Is_mrDiscovery() { + _2_inferredRegion = m_Wrappers.Companion_Option_.Create_Some_((((config).Dtor_kmsConfiguration()).Dtor_mrDiscovery()).Dtor_region()) + } + var _5_grantTokens m_Wrappers.Result + _ = _5_grantTokens + _5_grantTokens = m_AwsKmsUtils.Companion_Default___.GetValidGrantTokens((config).Dtor_grantTokens()) + var _6_valueOrError1 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _6_valueOrError1 + _6_valueOrError1 = m_Wrappers.Companion_Default___.Need((true) && ((_5_grantTokens).Is_Success()), m_AwsCryptographyKeyStoreTypes.Companion_Error_.Create_KeyStoreException_(_dafny.SeqOfString("Grant Tokens passed to Key Store configuration are invalid."))) + if (_6_valueOrError1).IsFailure() { + res = (_6_valueOrError1).PropagateFailure() + return res + } + var _7_keyStoreId _dafny.Sequence = _dafny.EmptySeq.SetString() + _ = _7_keyStoreId + if ((config).Dtor_id()).Is_Some() { + _7_keyStoreId = ((config).Dtor_id()).Dtor_value().(_dafny.Sequence) + } else { + var _8_maybeUuid m_Wrappers.Result + _ = _8_maybeUuid + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_UUID.GenerateUUID() + _8_maybeUuid = _out0 + var _9_valueOrError2 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq.SetString()) + _ = _9_valueOrError2 + _9_valueOrError2 = (_8_maybeUuid).MapFailure(func(coer24 func(_dafny.Sequence) m_AwsCryptographyKeyStoreTypes.Error) func(interface{}) interface{} { + return func(arg24 interface{}) interface{} { + return coer24(arg24.(_dafny.Sequence)) + } + }(func(_10_e _dafny.Sequence) m_AwsCryptographyKeyStoreTypes.Error { + return m_AwsCryptographyKeyStoreTypes.Companion_Error_.Create_KeyStoreException_(_10_e) + })) + if (_9_valueOrError2).IsFailure() { + res = (_9_valueOrError2).PropagateFailure() + return res + } + var _11_uuid _dafny.Sequence + _ = _11_uuid + _11_uuid = (_9_valueOrError2).Extract().(_dafny.Sequence) + _7_keyStoreId = _11_uuid + } + if ((config).Dtor_kmsClient()).Is_Some() { + _0_kmsClient = m_ComAmazonawsKmsTypes.Companion_IKMSClient_.CastTo_(((config).Dtor_kmsClient()).Dtor_value()) + } else if (((config).Dtor_kmsClient()).Is_None()) && ((_2_inferredRegion).Is_Some()) { + var _12_maybeKmsClient m_Wrappers.Result + _ = _12_maybeKmsClient + var _out1 m_Wrappers.Result + _ = _out1 + _out1 = m_Com_Amazonaws_Kms.Companion_Default___.KMSClientForRegion((_2_inferredRegion).Dtor_value().(_dafny.Sequence)) + _12_maybeKmsClient = _out1 + var _13_valueOrError3 m_Wrappers.Result = m_Wrappers.Result{} + _ = _13_valueOrError3 + _13_valueOrError3 = (_12_maybeKmsClient).MapFailure(func(coer25 func(m_ComAmazonawsKmsTypes.Error) m_AwsCryptographyKeyStoreTypes.Error) func(interface{}) interface{} { + return func(arg25 interface{}) interface{} { + return coer25(arg25.(m_ComAmazonawsKmsTypes.Error)) + } + }(func(_14_e m_ComAmazonawsKmsTypes.Error) m_AwsCryptographyKeyStoreTypes.Error { + return m_AwsCryptographyKeyStoreTypes.Companion_Error_.Create_ComAmazonawsKms_(_14_e) + })) + if (_13_valueOrError3).IsFailure() { + res = (_13_valueOrError3).PropagateFailure() + return res + } + _0_kmsClient = m_ComAmazonawsKmsTypes.Companion_IKMSClient_.CastTo_((_13_valueOrError3).Extract()) + } else { + var _15_maybeKmsClient m_Wrappers.Result + _ = _15_maybeKmsClient + var _out2 m_Wrappers.Result + _ = _out2 + _out2 = m_Com_Amazonaws_Kms.Companion_Default___.KMSClient() + _15_maybeKmsClient = _out2 + var _16_valueOrError4 m_Wrappers.Result = m_Wrappers.Result{} + _ = _16_valueOrError4 + _16_valueOrError4 = (_15_maybeKmsClient).MapFailure(func(coer26 func(m_ComAmazonawsKmsTypes.Error) m_AwsCryptographyKeyStoreTypes.Error) func(interface{}) interface{} { + return func(arg26 interface{}) interface{} { + return coer26(arg26.(m_ComAmazonawsKmsTypes.Error)) + } + }(func(_17_e m_ComAmazonawsKmsTypes.Error) m_AwsCryptographyKeyStoreTypes.Error { + return m_AwsCryptographyKeyStoreTypes.Companion_Error_.Create_ComAmazonawsKms_(_17_e) + })) + if (_16_valueOrError4).IsFailure() { + res = (_16_valueOrError4).PropagateFailure() + return res + } + _0_kmsClient = m_ComAmazonawsKmsTypes.Companion_IKMSClient_.CastTo_((_16_valueOrError4).Extract()) + } + if ((config).Dtor_ddbClient()).Is_Some() { + _1_ddbClient = m_ComAmazonawsDynamodbTypes.Companion_IDynamoDBClient_.CastTo_(((config).Dtor_ddbClient()).Dtor_value()) + } else if (((config).Dtor_ddbClient()).Is_None()) && ((_2_inferredRegion).Is_Some()) { + var _18_maybeDdbClient m_Wrappers.Result + _ = _18_maybeDdbClient + var _out3 m_Wrappers.Result + _ = _out3 + _out3 = m_Com_Amazonaws_Dynamodb.Companion_Default___.DDBClientForRegion((_2_inferredRegion).Dtor_value().(_dafny.Sequence)) + _18_maybeDdbClient = _out3 + var _19_valueOrError5 m_Wrappers.Result = m_Wrappers.Result{} + _ = _19_valueOrError5 + _19_valueOrError5 = (_18_maybeDdbClient).MapFailure(func(coer27 func(m_ComAmazonawsDynamodbTypes.Error) m_AwsCryptographyKeyStoreTypes.Error) func(interface{}) interface{} { + return func(arg27 interface{}) interface{} { + return coer27(arg27.(m_ComAmazonawsDynamodbTypes.Error)) + } + }(func(_20_e m_ComAmazonawsDynamodbTypes.Error) m_AwsCryptographyKeyStoreTypes.Error { + return m_AwsCryptographyKeyStoreTypes.Companion_Error_.Create_ComAmazonawsDynamodb_(_20_e) + })) + if (_19_valueOrError5).IsFailure() { + res = (_19_valueOrError5).PropagateFailure() + return res + } + _1_ddbClient = m_ComAmazonawsDynamodbTypes.Companion_IDynamoDBClient_.CastTo_((_19_valueOrError5).Extract()) + } else { + var _21_maybeDdbClient m_Wrappers.Result + _ = _21_maybeDdbClient + var _out4 m_Wrappers.Result + _ = _out4 + _out4 = m_Com_Amazonaws_Dynamodb.Companion_Default___.DynamoDBClient() + _21_maybeDdbClient = _out4 + var _22_valueOrError6 m_Wrappers.Result = m_Wrappers.Result{} + _ = _22_valueOrError6 + _22_valueOrError6 = (_21_maybeDdbClient).MapFailure(func(coer28 func(m_ComAmazonawsDynamodbTypes.Error) m_AwsCryptographyKeyStoreTypes.Error) func(interface{}) interface{} { + return func(arg28 interface{}) interface{} { + return coer28(arg28.(m_ComAmazonawsDynamodbTypes.Error)) + } + }(func(_23_e m_ComAmazonawsDynamodbTypes.Error) m_AwsCryptographyKeyStoreTypes.Error { + return m_AwsCryptographyKeyStoreTypes.Companion_Error_.Create_ComAmazonawsDynamodb_(_23_e) + })) + if (_22_valueOrError6).IsFailure() { + res = (_22_valueOrError6).PropagateFailure() + return res + } + _1_ddbClient = m_ComAmazonawsDynamodbTypes.Companion_IDynamoDBClient_.CastTo_((_22_valueOrError6).Extract()) + } + var _24_valueOrError7 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _24_valueOrError7 + _24_valueOrError7 = m_Wrappers.Companion_Default___.Need(m_ComAmazonawsDynamodbTypes.Companion_Default___.IsValid__TableName((config).Dtor_ddbTableName()), m_AwsCryptographyKeyStoreTypes.Companion_Error_.Create_KeyStoreException_(_dafny.SeqOfString("Invalid Amazon DynamoDB Table Name"))) + if (_24_valueOrError7).IsFailure() { + res = (_24_valueOrError7).PropagateFailure() + return res + } + var _25_client *KeyStoreClient + _ = _25_client + var _nw0 *KeyStoreClient = New_KeyStoreClient_() + _ = _nw0 + _nw0.Ctor__(m_AwsCryptographyKeyStoreOperations.Companion_Config_.Create_Config_(_7_keyStoreId, (config).Dtor_ddbTableName(), (config).Dtor_logicalKeyStoreName(), (config).Dtor_kmsConfiguration(), (_5_grantTokens).Dtor_value().(_dafny.Sequence), _0_kmsClient, _1_ddbClient)) + _25_client = _nw0 + res = m_Wrappers.Companion_Result_.Create_Success_(_25_client) + return res + return res +} +func (_static *CompanionStruct_Default___) CreateSuccessOfClient(client m_AwsCryptographyKeyStoreTypes.IKeyStoreClient) m_Wrappers.Result { + return m_Wrappers.Companion_Result_.Create_Success_(client) +} +func (_static *CompanionStruct_Default___) CreateFailureOfError(error_ m_AwsCryptographyKeyStoreTypes.Error) m_Wrappers.Result { + return m_Wrappers.Companion_Result_.Create_Failure_(error_) +} + +// End of class Default__ + +// Definition of class KeyStoreClient +type KeyStoreClient struct { + _config m_AwsCryptographyKeyStoreOperations.Config +} + +func New_KeyStoreClient_() *KeyStoreClient { + _this := KeyStoreClient{} + + _this._config = m_AwsCryptographyKeyStoreOperations.Config{} + return &_this +} + +type CompanionStruct_KeyStoreClient_ struct { +} + +var Companion_KeyStoreClient_ = CompanionStruct_KeyStoreClient_{} + +func (_this *KeyStoreClient) Equals(other *KeyStoreClient) bool { + return _this == other +} + +func (_this *KeyStoreClient) EqualsGeneric(x interface{}) bool { + other, ok := x.(*KeyStoreClient) + return ok && _this.Equals(other) +} + +func (*KeyStoreClient) String() string { + return "KeyStore.KeyStoreClient" +} + +func Type_KeyStoreClient_() _dafny.TypeDescriptor { + return type_KeyStoreClient_{} +} + +type type_KeyStoreClient_ struct { +} + +func (_this type_KeyStoreClient_) Default() interface{} { + return (*KeyStoreClient)(nil) +} + +func (_this type_KeyStoreClient_) String() string { + return "KeyStore.KeyStoreClient" +} +func (_this *KeyStoreClient) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){m_AwsCryptographyKeyStoreTypes.Companion_IKeyStoreClient_.TraitID_} +} + +var _ m_AwsCryptographyKeyStoreTypes.IKeyStoreClient = &KeyStoreClient{} +var _ _dafny.TraitOffspring = &KeyStoreClient{} + +func (_this *KeyStoreClient) Ctor__(config m_AwsCryptographyKeyStoreOperations.Config) { + { + (_this)._config = config + } +} +func (_this *KeyStoreClient) GetKeyStoreInfo() m_Wrappers.Result { + { + var output m_Wrappers.Result = m_Wrappers.Result{} + _ = output + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_AwsCryptographyKeyStoreOperations.Companion_Default___.GetKeyStoreInfo((_this).Config()) + output = _out0 + return output + } +} +func (_this *KeyStoreClient) CreateKeyStore(input m_AwsCryptographyKeyStoreTypes.CreateKeyStoreInput) m_Wrappers.Result { + { + var output m_Wrappers.Result = m_Wrappers.Result{} + _ = output + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_AwsCryptographyKeyStoreOperations.Companion_Default___.CreateKeyStore((_this).Config(), input) + output = _out0 + return output + } +} +func (_this *KeyStoreClient) CreateKey(input m_AwsCryptographyKeyStoreTypes.CreateKeyInput) m_Wrappers.Result { + { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_AwsCryptographyKeyStoreTypes.Companion_CreateKeyOutput_.Default()) + _ = output + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_AwsCryptographyKeyStoreOperations.Companion_Default___.CreateKey((_this).Config(), input) + output = _out0 + return output + } +} +func (_this *KeyStoreClient) VersionKey(input m_AwsCryptographyKeyStoreTypes.VersionKeyInput) m_Wrappers.Result { + { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_AwsCryptographyKeyStoreTypes.Companion_VersionKeyOutput_.Default()) + _ = output + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_AwsCryptographyKeyStoreOperations.Companion_Default___.VersionKey((_this).Config(), input) + output = _out0 + return output + } +} +func (_this *KeyStoreClient) GetActiveBranchKey(input m_AwsCryptographyKeyStoreTypes.GetActiveBranchKeyInput) m_Wrappers.Result { + { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_AwsCryptographyKeyStoreTypes.Companion_GetActiveBranchKeyOutput_.Default()) + _ = output + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_AwsCryptographyKeyStoreOperations.Companion_Default___.GetActiveBranchKey((_this).Config(), input) + output = _out0 + return output + } +} +func (_this *KeyStoreClient) GetBranchKeyVersion(input m_AwsCryptographyKeyStoreTypes.GetBranchKeyVersionInput) m_Wrappers.Result { + { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_AwsCryptographyKeyStoreTypes.Companion_GetBranchKeyVersionOutput_.Default()) + _ = output + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_AwsCryptographyKeyStoreOperations.Companion_Default___.GetBranchKeyVersion((_this).Config(), input) + output = _out0 + return output + } +} +func (_this *KeyStoreClient) GetBeaconKey(input m_AwsCryptographyKeyStoreTypes.GetBeaconKeyInput) m_Wrappers.Result { + { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_AwsCryptographyKeyStoreTypes.Companion_GetBeaconKeyOutput_.Default()) + _ = output + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_AwsCryptographyKeyStoreOperations.Companion_Default___.GetBeaconKey((_this).Config(), input) + output = _out0 + return output + } +} +func (_this *KeyStoreClient) Config() m_AwsCryptographyKeyStoreOperations.Config { + { + return _this._config + } +} + +// End of class KeyStoreClient diff --git a/customer-preview/mpl/KeyStoreErrorMessages/KeyStoreErrorMessages.go b/customer-preview/mpl/KeyStoreErrorMessages/KeyStoreErrorMessages.go new file mode 100644 index 000000000..0eac7f125 --- /dev/null +++ b/customer-preview/mpl/KeyStoreErrorMessages/KeyStoreErrorMessages.go @@ -0,0 +1,191 @@ +// Package KeyStoreErrorMessages +// Dafny module KeyStoreErrorMessages compiled into Go + +package KeyStoreErrorMessages + +import ( + os "os" + + m_ComAmazonawsDynamodbTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/ComAmazonawsDynamodbTypes" + m_ComAmazonawsKmsTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/ComAmazonawsKmsTypes" + m_AwsArnParsing "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsArnParsing" + m_AwsCryptographyKeyStoreTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreTypes" + m_AwsCryptographyMaterialProvidersTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersTypes" + m_AwsKmsMrkMatchForDecrypt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkMatchForDecrypt" + m_AwsKmsUtils "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsUtils" + m_AtomicPrimitives "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AtomicPrimitives" + m_AwsCryptographyPrimitivesOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesOperations" + m_AwsCryptographyPrimitivesTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesTypes" + m_Digest "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Digest" + m_HKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/HKDF" + m_KdfCtr "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/KdfCtr" + m_Random "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Random" + m_WrappedHKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHKDF" + m_WrappedHMAC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHMAC" + m_Actions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Actions" + m_Base64 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64" + m_Base64Lemmas "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64Lemmas" + m_BoundedInts "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/BoundedInts" + m_DivInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternals" + m_DivInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternalsNonlinear" + m_DivMod "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivMod" + m_FileIO "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FileIO" + m_FloatCompare "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FloatCompare" + m_Functions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Functions" + m_GeneralInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GeneralInternals" + m_GetOpt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GetOpt" + m_HexStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/HexStrings" + m_Logarithm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Logarithm" + m__Math "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Math_" + m_ModInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternals" + m_ModInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternalsNonlinear" + m_Mul "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Mul" + m_MulInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternals" + m_MulInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternalsNonlinear" + m_Power "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Power" + m_Relations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Relations" + m_Seq "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq" + m_Seq_MergeSort "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq_MergeSort" + m_Sorting "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Sorting" + m_StandardLibrary "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary" + m_StandardLibraryInterop "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibraryInterop" + m_StandardLibrary_Sequence "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_Sequence" + m_StandardLibrary_String "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_String" + m_StandardLibrary_UInt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_UInt" + m_Streams "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Streams" + m_UnicodeStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UnicodeStrings" + m__Unicode "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Unicode_" + m_Utf16EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf16EncodingForm" + m_Utf8EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf8EncodingForm" + m_Wrappers "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers" + m__System "github.com/dafny-lang/DafnyRuntimeGo/v4/System_" + _dafny "github.com/dafny-lang/DafnyRuntimeGo/v4/dafny" +) + +var _ = os.Args +var _ _dafny.Dummy__ +var _ m__System.Dummy__ +var _ m_Wrappers.Dummy__ +var _ m_BoundedInts.Dummy__ +var _ m_StandardLibrary_UInt.Dummy__ +var _ m_StandardLibrary_Sequence.Dummy__ +var _ m_StandardLibrary_String.Dummy__ +var _ m_StandardLibrary.Dummy__ +var _ m_AwsCryptographyPrimitivesTypes.Dummy__ +var _ m_Random.Dummy__ +var _ m_Digest.Dummy__ +var _ m_WrappedHMAC.Dummy__ +var _ m_HKDF.Dummy__ +var _ m_WrappedHKDF.Dummy__ +var _ m_KdfCtr.Dummy__ +var _ m_AwsCryptographyPrimitivesOperations.Dummy__ +var _ m_AtomicPrimitives.Dummy__ +var _ m_ComAmazonawsDynamodbTypes.Dummy__ +var _ m_ComAmazonawsKmsTypes.Dummy__ +var _ m_Relations.Dummy__ +var _ m_Seq_MergeSort.Dummy__ +var _ m__Math.Dummy__ +var _ m_Seq.Dummy__ +var _ m__Unicode.Dummy__ +var _ m_Functions.Dummy__ +var _ m_Utf8EncodingForm.Dummy__ +var _ m_Utf16EncodingForm.Dummy__ +var _ m_UnicodeStrings.Dummy__ +var _ m_FileIO.Dummy__ +var _ m_GeneralInternals.Dummy__ +var _ m_MulInternalsNonlinear.Dummy__ +var _ m_MulInternals.Dummy__ +var _ m_Mul.Dummy__ +var _ m_ModInternalsNonlinear.Dummy__ +var _ m_DivInternalsNonlinear.Dummy__ +var _ m_ModInternals.Dummy__ +var _ m_DivInternals.Dummy__ +var _ m_DivMod.Dummy__ +var _ m_Power.Dummy__ +var _ m_Logarithm.Dummy__ +var _ m_StandardLibraryInterop.Dummy__ +var _ m_Streams.Dummy__ +var _ m_Sorting.Dummy__ +var _ m_HexStrings.Dummy__ +var _ m_GetOpt.Dummy__ +var _ m_FloatCompare.Dummy__ +var _ m_Base64.Dummy__ +var _ m_Base64Lemmas.Dummy__ +var _ m_Actions.Dummy__ +var _ m_AwsCryptographyKeyStoreTypes.Dummy__ +var _ m_AwsCryptographyMaterialProvidersTypes.Dummy__ +var _ m_AwsArnParsing.Dummy__ +var _ m_AwsKmsMrkMatchForDecrypt.Dummy__ +var _ m_AwsKmsUtils.Dummy__ + +type Dummy__ struct{} + +// Definition of class Default__ +type Default__ struct { + dummy byte +} + +func New_Default___() *Default__ { + _this := Default__{} + + return &_this +} + +type CompanionStruct_Default___ struct { +} + +var Companion_Default___ = CompanionStruct_Default___{} + +func (_this *Default__) Equals(other *Default__) bool { + return _this == other +} + +func (_this *Default__) EqualsGeneric(x interface{}) bool { + other, ok := x.(*Default__) + return ok && _this.Equals(other) +} + +func (*Default__) String() string { + return "KeyStoreErrorMessages.Default__" +} +func (_this *Default__) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = &Default__{} + +func (_static *CompanionStruct_Default___) GET__KEY__ARN__DISAGREEMENT() _dafny.Sequence { + return _dafny.SeqOfString("Branch key's KMS Key ARN read from Dynamodb does not match Key Store's configured KMS Key ARN.") +} +func (_static *CompanionStruct_Default___) VERSION__KEY__KMS__KEY__ARN__DISAGREEMENT() _dafny.Sequence { + return Companion_Default___.GET__KEY__ARN__DISAGREEMENT() +} +func (_static *CompanionStruct_Default___) KMS__CONFIG__KMS__ARN__INVALID() _dafny.Sequence { + return _dafny.SeqOfString("KMSConfiguration's KMS Key ARN is invalid.") +} +func (_static *CompanionStruct_Default___) CUSTOM__BRANCH__KEY__ID__NEED__EC() _dafny.Sequence { + return _dafny.SeqOfString("Custom branch key identifier requires custom encryption context.") +} +func (_static *CompanionStruct_Default___) DISCOVERY__CREATE__KEY__NOT__SUPPORTED() _dafny.Sequence { + return _dafny.SeqOfString("Key Store's kmsConfiguration MUST BE kmsKeyArn or kmsMRKeyArn to Create Branch Keys.") +} +func (_static *CompanionStruct_Default___) DISCOVERY__VERSION__KEY__NOT__SUPPORTED() _dafny.Sequence { + return _dafny.SeqOfString("Key Store's kmsConfiguration MUST BE kmsKeyArn or kmsMRKeyArn to Version Branch Keys.") +} +func (_static *CompanionStruct_Default___) UTF8__ENCODING__ENCRYPTION__CONTEXT__ERROR() _dafny.Sequence { + return _dafny.SeqOfString("Unable to UTF8 Encode element of Encryption Context.") +} +func (_static *CompanionStruct_Default___) ALIAS__NOT__ALLOWED() _dafny.Sequence { + return _dafny.SeqOfString("Key Store encountered a KMS Alias ARN instead of a KMS Key ARN, which is not allowed.") +} +func (_static *CompanionStruct_Default___) NO__CORRESPONDING__BRANCH__KEY() _dafny.Sequence { + return _dafny.SeqOfString("No item found for corresponding branch key identifier.") +} +func (_static *CompanionStruct_Default___) BRANCH__KEY__ID__NEEDED() _dafny.Sequence { + return _dafny.SeqOfString("Empty string not supported for branch key identifier.") +} +func (_static *CompanionStruct_Default___) RETRIEVED__KEYSTORE__ITEM__INVALID__KMS__ARN() _dafny.Sequence { + return _dafny.SeqOfString("The `kms-arn` field for the requested branch key identifier is corrupted.") +} + +// End of class Default__ diff --git a/customer-preview/mpl/Keyring/Keyring.go b/customer-preview/mpl/Keyring/Keyring.go new file mode 100644 index 000000000..2a258a91b --- /dev/null +++ b/customer-preview/mpl/Keyring/Keyring.go @@ -0,0 +1,173 @@ +// Package Keyring +// Dafny module Keyring compiled into Go + +package Keyring + +import ( + os "os" + + m_ComAmazonawsDynamodbTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/ComAmazonawsDynamodbTypes" + m_Com_Amazonaws_Dynamodb "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/Com_Amazonaws_Dynamodb" + m_ComAmazonawsKmsTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/ComAmazonawsKmsTypes" + m_Com_Amazonaws_Kms "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/Com_Amazonaws_Kms" + m_AlgorithmSuites "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AlgorithmSuites" + m_AwsArnParsing "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsArnParsing" + m_AwsCryptographyKeyStoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreOperations" + m_AwsCryptographyKeyStoreTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreTypes" + m_AwsCryptographyMaterialProvidersTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersTypes" + m_AwsKmsMrkMatchForDecrypt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkMatchForDecrypt" + m_AwsKmsUtils "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsUtils" + m_CreateKeyStoreTable "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeyStoreTable" + m_CreateKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeys" + m_DDBKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DDBKeystoreOperations" + m_GetKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/GetKeys" + m_KMSKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KMSKeystoreOperations" + m_KeyStore "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStore" + m_KeyStoreErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStoreErrorMessages" + m_KmsArn "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KmsArn" + m_Materials "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Materials" + m_Structure "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Structure" + m_AtomicPrimitives "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AtomicPrimitives" + m_AwsCryptographyPrimitivesOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesOperations" + m_AwsCryptographyPrimitivesTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesTypes" + m_Digest "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Digest" + m_HKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/HKDF" + m_KdfCtr "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/KdfCtr" + m_Random "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Random" + m_WrappedHKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHKDF" + m_WrappedHMAC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHMAC" + m_Actions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Actions" + m_Base64 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64" + m_Base64Lemmas "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64Lemmas" + m_BoundedInts "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/BoundedInts" + m_DivInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternals" + m_DivInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternalsNonlinear" + m_DivMod "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivMod" + m_FileIO "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FileIO" + m_FloatCompare "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FloatCompare" + m_Functions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Functions" + m_GeneralInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GeneralInternals" + m_GetOpt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GetOpt" + m_HexStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/HexStrings" + m_Logarithm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Logarithm" + m__Math "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Math_" + m_ModInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternals" + m_ModInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternalsNonlinear" + m_Mul "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Mul" + m_MulInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternals" + m_MulInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternalsNonlinear" + m_Power "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Power" + m_Relations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Relations" + m_Seq "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq" + m_Seq_MergeSort "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq_MergeSort" + m_Sorting "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Sorting" + m_StandardLibrary "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary" + m_StandardLibraryInterop "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibraryInterop" + m_StandardLibrary_Sequence "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_Sequence" + m_StandardLibrary_String "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_String" + m_StandardLibrary_UInt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_UInt" + m_Streams "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Streams" + m_UnicodeStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UnicodeStrings" + m__Unicode "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Unicode_" + m_Utf16EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf16EncodingForm" + m_Utf8EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf8EncodingForm" + m_Wrappers "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers" + m__System "github.com/dafny-lang/DafnyRuntimeGo/v4/System_" + _dafny "github.com/dafny-lang/DafnyRuntimeGo/v4/dafny" +) + +var _ = os.Args +var _ _dafny.Dummy__ +var _ m__System.Dummy__ +var _ m_Wrappers.Dummy__ +var _ m_BoundedInts.Dummy__ +var _ m_StandardLibrary_UInt.Dummy__ +var _ m_StandardLibrary_Sequence.Dummy__ +var _ m_StandardLibrary_String.Dummy__ +var _ m_StandardLibrary.Dummy__ +var _ m_AwsCryptographyPrimitivesTypes.Dummy__ +var _ m_Random.Dummy__ +var _ m_Digest.Dummy__ +var _ m_WrappedHMAC.Dummy__ +var _ m_HKDF.Dummy__ +var _ m_WrappedHKDF.Dummy__ +var _ m_KdfCtr.Dummy__ +var _ m_AwsCryptographyPrimitivesOperations.Dummy__ +var _ m_AtomicPrimitives.Dummy__ +var _ m_ComAmazonawsDynamodbTypes.Dummy__ +var _ m_ComAmazonawsKmsTypes.Dummy__ +var _ m_Relations.Dummy__ +var _ m_Seq_MergeSort.Dummy__ +var _ m__Math.Dummy__ +var _ m_Seq.Dummy__ +var _ m__Unicode.Dummy__ +var _ m_Functions.Dummy__ +var _ m_Utf8EncodingForm.Dummy__ +var _ m_Utf16EncodingForm.Dummy__ +var _ m_UnicodeStrings.Dummy__ +var _ m_FileIO.Dummy__ +var _ m_GeneralInternals.Dummy__ +var _ m_MulInternalsNonlinear.Dummy__ +var _ m_MulInternals.Dummy__ +var _ m_Mul.Dummy__ +var _ m_ModInternalsNonlinear.Dummy__ +var _ m_DivInternalsNonlinear.Dummy__ +var _ m_ModInternals.Dummy__ +var _ m_DivInternals.Dummy__ +var _ m_DivMod.Dummy__ +var _ m_Power.Dummy__ +var _ m_Logarithm.Dummy__ +var _ m_StandardLibraryInterop.Dummy__ +var _ m_Streams.Dummy__ +var _ m_Sorting.Dummy__ +var _ m_HexStrings.Dummy__ +var _ m_GetOpt.Dummy__ +var _ m_FloatCompare.Dummy__ +var _ m_Base64.Dummy__ +var _ m_Base64Lemmas.Dummy__ +var _ m_Actions.Dummy__ +var _ m_AwsCryptographyKeyStoreTypes.Dummy__ +var _ m_AwsCryptographyMaterialProvidersTypes.Dummy__ +var _ m_AwsArnParsing.Dummy__ +var _ m_AwsKmsMrkMatchForDecrypt.Dummy__ +var _ m_AwsKmsUtils.Dummy__ +var _ m_KeyStoreErrorMessages.Dummy__ +var _ m_KmsArn.Dummy__ +var _ m_Structure.Dummy__ +var _ m_KMSKeystoreOperations.Dummy__ +var _ m_DDBKeystoreOperations.Dummy__ +var _ m_CreateKeys.Dummy__ +var _ m_CreateKeyStoreTable.Dummy__ +var _ m_GetKeys.Dummy__ +var _ m_AwsCryptographyKeyStoreOperations.Dummy__ +var _ m_Com_Amazonaws_Kms.Dummy__ +var _ m_Com_Amazonaws_Dynamodb.Dummy__ +var _ m_KeyStore.Dummy__ +var _ m_AlgorithmSuites.Dummy__ +var _ m_Materials.Dummy__ + +type Dummy__ struct{} + +// Definition of trait VerifiableInterface +type VerifiableInterface interface { + String() string + OnDecrypt(input m_AwsCryptographyMaterialProvidersTypes.OnDecryptInput) m_Wrappers.Result + OnEncrypt(input m_AwsCryptographyMaterialProvidersTypes.OnEncryptInput) m_Wrappers.Result + OnEncrypt_k(input m_AwsCryptographyMaterialProvidersTypes.OnEncryptInput) m_Wrappers.Result + OnDecrypt_k(input m_AwsCryptographyMaterialProvidersTypes.OnDecryptInput) m_Wrappers.Result +} +type CompanionStruct_VerifiableInterface_ struct { + TraitID_ *_dafny.TraitID +} + +var Companion_VerifiableInterface_ = CompanionStruct_VerifiableInterface_{ + TraitID_: &_dafny.TraitID{}, +} + +func (CompanionStruct_VerifiableInterface_) CastTo_(x interface{}) VerifiableInterface { + var t VerifiableInterface + t, _ = x.(VerifiableInterface) + return t +} + +// End of trait VerifiableInterface diff --git a/customer-preview/mpl/KmsArn/KmsArn.go b/customer-preview/mpl/KmsArn/KmsArn.go new file mode 100644 index 000000000..53caaac01 --- /dev/null +++ b/customer-preview/mpl/KmsArn/KmsArn.go @@ -0,0 +1,194 @@ +// Package KmsArn +// Dafny module KmsArn compiled into Go + +package KmsArn + +import ( + os "os" + + m_ComAmazonawsDynamodbTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/ComAmazonawsDynamodbTypes" + m_ComAmazonawsKmsTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/ComAmazonawsKmsTypes" + m_AwsArnParsing "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsArnParsing" + m_AwsCryptographyKeyStoreTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreTypes" + m_AwsCryptographyMaterialProvidersTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersTypes" + m_AwsKmsMrkMatchForDecrypt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkMatchForDecrypt" + m_AwsKmsUtils "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsUtils" + m_KeyStoreErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStoreErrorMessages" + m_AtomicPrimitives "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AtomicPrimitives" + m_AwsCryptographyPrimitivesOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesOperations" + m_AwsCryptographyPrimitivesTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesTypes" + m_Digest "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Digest" + m_HKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/HKDF" + m_KdfCtr "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/KdfCtr" + m_Random "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Random" + m_WrappedHKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHKDF" + m_WrappedHMAC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHMAC" + m_Actions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Actions" + m_Base64 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64" + m_Base64Lemmas "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64Lemmas" + m_BoundedInts "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/BoundedInts" + m_DivInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternals" + m_DivInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternalsNonlinear" + m_DivMod "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivMod" + m_FileIO "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FileIO" + m_FloatCompare "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FloatCompare" + m_Functions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Functions" + m_GeneralInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GeneralInternals" + m_GetOpt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GetOpt" + m_HexStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/HexStrings" + m_Logarithm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Logarithm" + m__Math "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Math_" + m_ModInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternals" + m_ModInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternalsNonlinear" + m_Mul "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Mul" + m_MulInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternals" + m_MulInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternalsNonlinear" + m_Power "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Power" + m_Relations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Relations" + m_Seq "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq" + m_Seq_MergeSort "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq_MergeSort" + m_Sorting "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Sorting" + m_StandardLibrary "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary" + m_StandardLibraryInterop "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibraryInterop" + m_StandardLibrary_Sequence "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_Sequence" + m_StandardLibrary_String "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_String" + m_StandardLibrary_UInt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_UInt" + m_Streams "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Streams" + m_UnicodeStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UnicodeStrings" + m__Unicode "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Unicode_" + m_Utf16EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf16EncodingForm" + m_Utf8EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf8EncodingForm" + m_Wrappers "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers" + m__System "github.com/dafny-lang/DafnyRuntimeGo/v4/System_" + _dafny "github.com/dafny-lang/DafnyRuntimeGo/v4/dafny" +) + +var _ = os.Args +var _ _dafny.Dummy__ +var _ m__System.Dummy__ +var _ m_Wrappers.Dummy__ +var _ m_BoundedInts.Dummy__ +var _ m_StandardLibrary_UInt.Dummy__ +var _ m_StandardLibrary_Sequence.Dummy__ +var _ m_StandardLibrary_String.Dummy__ +var _ m_StandardLibrary.Dummy__ +var _ m_AwsCryptographyPrimitivesTypes.Dummy__ +var _ m_Random.Dummy__ +var _ m_Digest.Dummy__ +var _ m_WrappedHMAC.Dummy__ +var _ m_HKDF.Dummy__ +var _ m_WrappedHKDF.Dummy__ +var _ m_KdfCtr.Dummy__ +var _ m_AwsCryptographyPrimitivesOperations.Dummy__ +var _ m_AtomicPrimitives.Dummy__ +var _ m_ComAmazonawsDynamodbTypes.Dummy__ +var _ m_ComAmazonawsKmsTypes.Dummy__ +var _ m_Relations.Dummy__ +var _ m_Seq_MergeSort.Dummy__ +var _ m__Math.Dummy__ +var _ m_Seq.Dummy__ +var _ m__Unicode.Dummy__ +var _ m_Functions.Dummy__ +var _ m_Utf8EncodingForm.Dummy__ +var _ m_Utf16EncodingForm.Dummy__ +var _ m_UnicodeStrings.Dummy__ +var _ m_FileIO.Dummy__ +var _ m_GeneralInternals.Dummy__ +var _ m_MulInternalsNonlinear.Dummy__ +var _ m_MulInternals.Dummy__ +var _ m_Mul.Dummy__ +var _ m_ModInternalsNonlinear.Dummy__ +var _ m_DivInternalsNonlinear.Dummy__ +var _ m_ModInternals.Dummy__ +var _ m_DivInternals.Dummy__ +var _ m_DivMod.Dummy__ +var _ m_Power.Dummy__ +var _ m_Logarithm.Dummy__ +var _ m_StandardLibraryInterop.Dummy__ +var _ m_Streams.Dummy__ +var _ m_Sorting.Dummy__ +var _ m_HexStrings.Dummy__ +var _ m_GetOpt.Dummy__ +var _ m_FloatCompare.Dummy__ +var _ m_Base64.Dummy__ +var _ m_Base64Lemmas.Dummy__ +var _ m_Actions.Dummy__ +var _ m_AwsCryptographyKeyStoreTypes.Dummy__ +var _ m_AwsCryptographyMaterialProvidersTypes.Dummy__ +var _ m_AwsArnParsing.Dummy__ +var _ m_AwsKmsMrkMatchForDecrypt.Dummy__ +var _ m_AwsKmsUtils.Dummy__ +var _ m_KeyStoreErrorMessages.Dummy__ + +type Dummy__ struct{} + +// Definition of class Default__ +type Default__ struct { + dummy byte +} + +func New_Default___() *Default__ { + _this := Default__{} + + return &_this +} + +type CompanionStruct_Default___ struct { +} + +var Companion_Default___ = CompanionStruct_Default___{} + +func (_this *Default__) Equals(other *Default__) bool { + return _this == other +} + +func (_this *Default__) EqualsGeneric(x interface{}) bool { + other, ok := x.(*Default__) + return ok && _this.Equals(other) +} + +func (*Default__) String() string { + return "KmsArn.Default__" +} +func (_this *Default__) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = &Default__{} + +func (_static *CompanionStruct_Default___) ValidKmsArn_q(input _dafny.Sequence) bool { + return (m_ComAmazonawsKmsTypes.Companion_Default___.IsValid__KeyIdType(input)) && (func(_pat_let0_0 m_Wrappers.Result) bool { + return func(_0_maybeParsed m_Wrappers.Result) bool { + return ((_0_maybeParsed).Is_Success()) && (_dafny.Companion_Sequence_.Equal((((_0_maybeParsed).Dtor_value().(m_AwsArnParsing.AwsArn)).Dtor_resource()).Dtor_resourceType(), _dafny.SeqOfString("key"))) + }(_pat_let0_0) + }(m_AwsArnParsing.Companion_Default___.ParseAwsKmsArn(input))) +} +func (_static *CompanionStruct_Default___) IsValidKeyArn(input _dafny.Sequence) m_Wrappers.Result { + var _0_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need(m_ComAmazonawsKmsTypes.Companion_Default___.IsValid__KeyIdType(input), m_AwsCryptographyKeyStoreTypes.Companion_Error_.Create_KeyStoreException_(m_KeyStoreErrorMessages.Companion_Default___.KMS__CONFIG__KMS__ARN__INVALID())) + _ = _0_valueOrError0 + if (_0_valueOrError0).IsFailure() { + return (_0_valueOrError0).PropagateFailure() + } else { + var _1_valueOrError1 m_Wrappers.Result = (m_AwsArnParsing.Companion_Default___.ParseAwsKmsArn(input)).MapFailure(func(coer9 func(_dafny.Sequence) m_AwsCryptographyKeyStoreTypes.Error) func(interface{}) interface{} { + return func(arg9 interface{}) interface{} { + return coer9(arg9.(_dafny.Sequence)) + } + }(func(_2_error _dafny.Sequence) m_AwsCryptographyKeyStoreTypes.Error { + return m_AwsCryptographyKeyStoreTypes.Companion_Error_.Create_KeyStoreException_(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(m_KeyStoreErrorMessages.Companion_Default___.KMS__CONFIG__KMS__ARN__INVALID(), _dafny.SeqOfString(". ")), _2_error)) + })) + _ = _1_valueOrError1 + if (_1_valueOrError1).IsFailure() { + return (_1_valueOrError1).PropagateFailure() + } else { + var _3_arn m_AwsArnParsing.AwsArn = (_1_valueOrError1).Extract().(m_AwsArnParsing.AwsArn) + _ = _3_arn + if !_dafny.Companion_Sequence_.Equal(((_3_arn).Dtor_resource()).Dtor_resourceType(), _dafny.SeqOfString("key")) { + return m_Wrappers.Companion_Result_.Create_Failure_(m_AwsCryptographyKeyStoreTypes.Companion_Error_.Create_KeyStoreException_(m_KeyStoreErrorMessages.Companion_Default___.ALIAS__NOT__ALLOWED())) + } else { + return m_Wrappers.Companion_Result_.Create_Success_(_3_arn) + } + } + } +} + +// End of class Default__ diff --git a/customer-preview/mpl/LocalCMC/LocalCMC.go b/customer-preview/mpl/LocalCMC/LocalCMC.go new file mode 100644 index 000000000..9c978ce6e --- /dev/null +++ b/customer-preview/mpl/LocalCMC/LocalCMC.go @@ -0,0 +1,894 @@ +// Package LocalCMC +// Dafny module LocalCMC compiled into Go + +package LocalCMC + +import ( + os "os" + + m_ComAmazonawsDynamodbTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/ComAmazonawsDynamodbTypes" + m_Com_Amazonaws_Dynamodb "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/Com_Amazonaws_Dynamodb" + m_ComAmazonawsKmsTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/ComAmazonawsKmsTypes" + m_Com_Amazonaws_Kms "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/Com_Amazonaws_Kms" + m_AlgorithmSuites "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AlgorithmSuites" + m_AwsArnParsing "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsArnParsing" + m_AwsCryptographyKeyStoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreOperations" + m_AwsCryptographyKeyStoreTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreTypes" + m_AwsCryptographyMaterialProvidersTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersTypes" + m_AwsKmsDiscoveryKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsDiscoveryKeyring" + m_AwsKmsKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsKeyring" + m_AwsKmsMrkAreUnique "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkAreUnique" + m_AwsKmsMrkDiscoveryKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkDiscoveryKeyring" + m_AwsKmsMrkKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkKeyring" + m_AwsKmsMrkMatchForDecrypt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkMatchForDecrypt" + m_AwsKmsUtils "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsUtils" + m_CanonicalEncryptionContext "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CanonicalEncryptionContext" + m_Constants "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Constants" + m_CreateKeyStoreTable "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeyStoreTable" + m_CreateKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeys" + m_DDBKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DDBKeystoreOperations" + m_DiscoveryMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DiscoveryMultiKeyring" + m_EdkWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/EdkWrapping" + m_ErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/ErrorMessages" + m_GetKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/GetKeys" + m_IntermediateKeyWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/IntermediateKeyWrapping" + m_KMSKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KMSKeystoreOperations" + m_KeyStore "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStore" + m_KeyStoreErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStoreErrorMessages" + m_Keyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Keyring" + m_KmsArn "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KmsArn" + m_MaterialWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MaterialWrapping" + m_Materials "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Materials" + m_MrkAwareDiscoveryMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MrkAwareDiscoveryMultiKeyring" + m_MrkAwareStrictMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MrkAwareStrictMultiKeyring" + m_MultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MultiKeyring" + m_StrictMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StrictMultiKeyring" + m_Structure "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Structure" + m_AtomicPrimitives "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AtomicPrimitives" + m_AwsCryptographyPrimitivesOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesOperations" + m_AwsCryptographyPrimitivesTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesTypes" + m_Digest "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Digest" + m_HKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/HKDF" + m_KdfCtr "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/KdfCtr" + m_Random "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Random" + m_WrappedHKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHKDF" + m_WrappedHMAC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHMAC" + m_Actions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Actions" + m_Base64 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64" + m_Base64Lemmas "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64Lemmas" + m_BoundedInts "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/BoundedInts" + m_DafnyLibraries "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DafnyLibraries" + m_DivInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternals" + m_DivInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternalsNonlinear" + m_DivMod "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivMod" + m_FileIO "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FileIO" + m_FloatCompare "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FloatCompare" + m_Functions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Functions" + m_GeneralInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GeneralInternals" + m_GetOpt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GetOpt" + m_HexStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/HexStrings" + m_Logarithm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Logarithm" + m__Math "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Math_" + m_ModInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternals" + m_ModInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternalsNonlinear" + m_Mul "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Mul" + m_MulInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternals" + m_MulInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternalsNonlinear" + m_Power "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Power" + m_Relations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Relations" + m_Seq "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq" + m_Seq_MergeSort "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq_MergeSort" + m_Sorting "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Sorting" + m_StandardLibrary "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary" + m_StandardLibraryInterop "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibraryInterop" + m_StandardLibrary_Sequence "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_Sequence" + m_StandardLibrary_String "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_String" + m_StandardLibrary_UInt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_UInt" + m_Streams "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Streams" + m__Time "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Time_" + m_UnicodeStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UnicodeStrings" + m__Unicode "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Unicode_" + m_Utf16EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf16EncodingForm" + m_Utf8EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf8EncodingForm" + m_Wrappers "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers" + m__System "github.com/dafny-lang/DafnyRuntimeGo/v4/System_" + _dafny "github.com/dafny-lang/DafnyRuntimeGo/v4/dafny" +) + +var _ = os.Args +var _ _dafny.Dummy__ +var _ m__System.Dummy__ +var _ m_Wrappers.Dummy__ +var _ m_BoundedInts.Dummy__ +var _ m_StandardLibrary_UInt.Dummy__ +var _ m_StandardLibrary_Sequence.Dummy__ +var _ m_StandardLibrary_String.Dummy__ +var _ m_StandardLibrary.Dummy__ +var _ m_AwsCryptographyPrimitivesTypes.Dummy__ +var _ m_Random.Dummy__ +var _ m_Digest.Dummy__ +var _ m_WrappedHMAC.Dummy__ +var _ m_HKDF.Dummy__ +var _ m_WrappedHKDF.Dummy__ +var _ m_KdfCtr.Dummy__ +var _ m_AwsCryptographyPrimitivesOperations.Dummy__ +var _ m_AtomicPrimitives.Dummy__ +var _ m_ComAmazonawsDynamodbTypes.Dummy__ +var _ m_ComAmazonawsKmsTypes.Dummy__ +var _ m_Relations.Dummy__ +var _ m_Seq_MergeSort.Dummy__ +var _ m__Math.Dummy__ +var _ m_Seq.Dummy__ +var _ m__Unicode.Dummy__ +var _ m_Functions.Dummy__ +var _ m_Utf8EncodingForm.Dummy__ +var _ m_Utf16EncodingForm.Dummy__ +var _ m_UnicodeStrings.Dummy__ +var _ m_FileIO.Dummy__ +var _ m_GeneralInternals.Dummy__ +var _ m_MulInternalsNonlinear.Dummy__ +var _ m_MulInternals.Dummy__ +var _ m_Mul.Dummy__ +var _ m_ModInternalsNonlinear.Dummy__ +var _ m_DivInternalsNonlinear.Dummy__ +var _ m_ModInternals.Dummy__ +var _ m_DivInternals.Dummy__ +var _ m_DivMod.Dummy__ +var _ m_Power.Dummy__ +var _ m_Logarithm.Dummy__ +var _ m_StandardLibraryInterop.Dummy__ +var _ m_Streams.Dummy__ +var _ m_Sorting.Dummy__ +var _ m_HexStrings.Dummy__ +var _ m_GetOpt.Dummy__ +var _ m_FloatCompare.Dummy__ +var _ m_Base64.Dummy__ +var _ m_Base64Lemmas.Dummy__ +var _ m_Actions.Dummy__ +var _ m_AwsCryptographyKeyStoreTypes.Dummy__ +var _ m_AwsCryptographyMaterialProvidersTypes.Dummy__ +var _ m_AwsArnParsing.Dummy__ +var _ m_AwsKmsMrkMatchForDecrypt.Dummy__ +var _ m_AwsKmsUtils.Dummy__ +var _ m_KeyStoreErrorMessages.Dummy__ +var _ m_KmsArn.Dummy__ +var _ m_Structure.Dummy__ +var _ m_KMSKeystoreOperations.Dummy__ +var _ m_DDBKeystoreOperations.Dummy__ +var _ m_CreateKeys.Dummy__ +var _ m_CreateKeyStoreTable.Dummy__ +var _ m_GetKeys.Dummy__ +var _ m_AwsCryptographyKeyStoreOperations.Dummy__ +var _ m_Com_Amazonaws_Kms.Dummy__ +var _ m_Com_Amazonaws_Dynamodb.Dummy__ +var _ m_KeyStore.Dummy__ +var _ m_AlgorithmSuites.Dummy__ +var _ m_Materials.Dummy__ +var _ m_Keyring.Dummy__ +var _ m_MultiKeyring.Dummy__ +var _ m_AwsKmsMrkAreUnique.Dummy__ +var _ m_Constants.Dummy__ +var _ m_MaterialWrapping.Dummy__ +var _ m_CanonicalEncryptionContext.Dummy__ +var _ m_IntermediateKeyWrapping.Dummy__ +var _ m_EdkWrapping.Dummy__ +var _ m_ErrorMessages.Dummy__ +var _ m_AwsKmsKeyring.Dummy__ +var _ m_StrictMultiKeyring.Dummy__ +var _ m_AwsKmsDiscoveryKeyring.Dummy__ +var _ m_DiscoveryMultiKeyring.Dummy__ +var _ m_AwsKmsMrkDiscoveryKeyring.Dummy__ +var _ m_MrkAwareDiscoveryMultiKeyring.Dummy__ +var _ m_AwsKmsMrkKeyring.Dummy__ +var _ m_MrkAwareStrictMultiKeyring.Dummy__ + +type Dummy__ struct{} + +// Definition of class Default__ +type Default__ struct { + dummy byte +} + +func New_Default___() *Default__ { + _this := Default__{} + + return &_this +} + +type CompanionStruct_Default___ struct { +} + +var Companion_Default___ = CompanionStruct_Default___{} + +func (_this *Default__) Equals(other *Default__) bool { + return _this == other +} + +func (_this *Default__) EqualsGeneric(x interface{}) bool { + other, ok := x.(*Default__) + return ok && _this.Equals(other) +} + +func (*Default__) String() string { + return "LocalCMC.Default__" +} +func (_this *Default__) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = &Default__{} + +func (_static *CompanionStruct_Default___) RemoveValue(k0 interface{}, m _dafny.Map) { + var _0_m_k _dafny.Map + _ = _0_m_k + _0_m_k = (m).Subtract(_dafny.SetOf(k0)) +} +func (_static *CompanionStruct_Default___) NULL() Ref { + return Companion_Ref_.Create_Null_() +} +func (_static *CompanionStruct_Default___) INT32__MAX__VALUE() int32 { + return int32(2040109465) +} +func (_static *CompanionStruct_Default___) INT64__MAX__VALUE() int64 { + return int64(8762203435012037017) +} + +// End of class Default__ + +// Definition of datatype Ref +type Ref struct { + Data_Ref_ +} + +func (_this Ref) Get_() Data_Ref_ { + return _this.Data_Ref_ +} + +type Data_Ref_ interface { + isRef() +} + +type CompanionStruct_Ref_ struct { +} + +var Companion_Ref_ = CompanionStruct_Ref_{} + +type Ref_Ptr struct { + Deref interface{} +} + +func (Ref_Ptr) isRef() {} + +func (CompanionStruct_Ref_) Create_Ptr_(Deref interface{}) Ref { + return Ref{Ref_Ptr{Deref}} +} + +func (_this Ref) Is_Ptr() bool { + _, ok := _this.Get_().(Ref_Ptr) + return ok +} + +type Ref_Null struct { +} + +func (Ref_Null) isRef() {} + +func (CompanionStruct_Ref_) Create_Null_() Ref { + return Ref{Ref_Null{}} +} + +func (_this Ref) Is_Null() bool { + _, ok := _this.Get_().(Ref_Null) + return ok +} + +func (CompanionStruct_Ref_) Default() Ref { + return Companion_Ref_.Create_Null_() +} + +func (_this Ref) Dtor_deref() interface{} { + return _this.Get_().(Ref_Ptr).Deref +} + +func (_this Ref) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case Ref_Ptr: + { + return "LocalCMC.Ref.Ptr" + "(" + _dafny.String(data.Deref) + ")" + } + case Ref_Null: + { + return "LocalCMC.Ref.Null" + } + default: + { + return "" + } + } +} + +func (_this Ref) Equals(other Ref) bool { + switch data1 := _this.Get_().(type) { + case Ref_Ptr: + { + data2, ok := other.Get_().(Ref_Ptr) + return ok && _dafny.AreEqual(data1.Deref, data2.Deref) + } + case Ref_Null: + { + _, ok := other.Get_().(Ref_Null) + return ok + } + default: + { + return false // unexpected + } + } +} + +func (_this Ref) EqualsGeneric(other interface{}) bool { + typed, ok := other.(Ref) + return ok && _this.Equals(typed) +} + +func Type_Ref_() _dafny.TypeDescriptor { + return type_Ref_{} +} + +type type_Ref_ struct { +} + +func (_this type_Ref_) Default() interface{} { + return Companion_Ref_.Default() +} + +func (_this type_Ref_) String() string { + return "LocalCMC.Ref" +} +func (_this Ref) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = Ref{} + +// End of datatype Ref + +// Definition of class CacheEntry +type CacheEntry struct { + Prev Ref + Next Ref + MessagesUsed int32 + BytesUsed int32 + _identifier _dafny.Sequence + _materials m_AwsCryptographyMaterialProvidersTypes.Materials + _creationTime int64 + _expiryTime int64 +} + +func New_CacheEntry_() *CacheEntry { + _this := CacheEntry{} + + _this.Prev = Companion_Ref_.Default() + _this.Next = Companion_Ref_.Default() + _this.MessagesUsed = int32(0) + _this.BytesUsed = int32(0) + _this._identifier = _dafny.EmptySeq + _this._materials = m_AwsCryptographyMaterialProvidersTypes.Materials{} + _this._creationTime = int64(0) + _this._expiryTime = int64(0) + return &_this +} + +type CompanionStruct_CacheEntry_ struct { +} + +var Companion_CacheEntry_ = CompanionStruct_CacheEntry_{} + +func (_this *CacheEntry) Equals(other *CacheEntry) bool { + return _this == other +} + +func (_this *CacheEntry) EqualsGeneric(x interface{}) bool { + other, ok := x.(*CacheEntry) + return ok && _this.Equals(other) +} + +func (*CacheEntry) String() string { + return "LocalCMC.CacheEntry" +} + +func Type_CacheEntry_() _dafny.TypeDescriptor { + return type_CacheEntry_{} +} + +type type_CacheEntry_ struct { +} + +func (_this type_CacheEntry_) Default() interface{} { + return (*CacheEntry)(nil) +} + +func (_this type_CacheEntry_) String() string { + return "LocalCMC.CacheEntry" +} +func (_this *CacheEntry) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = &CacheEntry{} + +func (_this *CacheEntry) Ctor__(materials_k m_AwsCryptographyMaterialProvidersTypes.Materials, identifier_k _dafny.Sequence, creationTime_k int64, expiryTime_k int64, messagesUsed_k int32, bytesUsed_k int32) { + { + (_this)._materials = materials_k + (_this)._identifier = identifier_k + (_this)._creationTime = creationTime_k + (_this)._expiryTime = expiryTime_k + (_this).MessagesUsed = messagesUsed_k + (_this).BytesUsed = bytesUsed_k + (_this).Prev = Companion_Default___.NULL() + (_this).Next = Companion_Default___.NULL() + } +} +func (_this *CacheEntry) Identifier() _dafny.Sequence { + { + return _this._identifier + } +} +func (_this *CacheEntry) Materials() m_AwsCryptographyMaterialProvidersTypes.Materials { + { + return _this._materials + } +} +func (_this *CacheEntry) CreationTime() int64 { + { + return _this._creationTime + } +} +func (_this *CacheEntry) ExpiryTime() int64 { + { + return _this._expiryTime + } +} + +// End of class CacheEntry + +// Definition of class DoublyLinkedCacheEntryList +type DoublyLinkedCacheEntryList struct { + Head Ref + Tail Ref +} + +func New_DoublyLinkedCacheEntryList_() *DoublyLinkedCacheEntryList { + _this := DoublyLinkedCacheEntryList{} + + _this.Head = Companion_Ref_.Default() + _this.Tail = Companion_Ref_.Default() + return &_this +} + +type CompanionStruct_DoublyLinkedCacheEntryList_ struct { +} + +var Companion_DoublyLinkedCacheEntryList_ = CompanionStruct_DoublyLinkedCacheEntryList_{} + +func (_this *DoublyLinkedCacheEntryList) Equals(other *DoublyLinkedCacheEntryList) bool { + return _this == other +} + +func (_this *DoublyLinkedCacheEntryList) EqualsGeneric(x interface{}) bool { + other, ok := x.(*DoublyLinkedCacheEntryList) + return ok && _this.Equals(other) +} + +func (*DoublyLinkedCacheEntryList) String() string { + return "LocalCMC.DoublyLinkedCacheEntryList" +} + +func Type_DoublyLinkedCacheEntryList_() _dafny.TypeDescriptor { + return type_DoublyLinkedCacheEntryList_{} +} + +type type_DoublyLinkedCacheEntryList_ struct { +} + +func (_this type_DoublyLinkedCacheEntryList_) Default() interface{} { + return (*DoublyLinkedCacheEntryList)(nil) +} + +func (_this type_DoublyLinkedCacheEntryList_) String() string { + return "LocalCMC.DoublyLinkedCacheEntryList" +} +func (_this *DoublyLinkedCacheEntryList) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = &DoublyLinkedCacheEntryList{} + +func (_this *DoublyLinkedCacheEntryList) Ctor__() { + { + (_this).Head = Companion_Ref_.Create_Null_() + (_this).Tail = Companion_Ref_.Create_Null_() + } +} +func (_this *DoublyLinkedCacheEntryList) PushCell(toPush *CacheEntry) { + { + var _0_cRef Ref + _ = _0_cRef + _0_cRef = Companion_Ref_.Create_Ptr_(toPush) + if (_this.Head).Is_Ptr() { + var _obj0 *CacheEntry = (_this.Head).Dtor_deref().(*CacheEntry) + _ = _obj0 + _obj0.Prev = _0_cRef + (toPush).Next = _this.Head + (_this).Head = _0_cRef + } else { + (_this).Head = _0_cRef + (_this).Tail = _this.Head + } + } +} +func (_this *DoublyLinkedCacheEntryList) MoveToFront(c *CacheEntry) { + { + if ((_this.Head).Dtor_deref().(*CacheEntry)) != (c) /* dircomp */ { + var _0_toPush Ref + _ = _0_toPush + _0_toPush = Companion_Ref_.Create_Ptr_(c) + (_this).Remove(c) + if (_this.Head).Is_Ptr() { + var _obj0 *CacheEntry = (_this.Head).Dtor_deref().(*CacheEntry) + _ = _obj0 + _obj0.Prev = _0_toPush + var _obj1 *CacheEntry = (_0_toPush).Dtor_deref().(*CacheEntry) + _ = _obj1 + _obj1.Next = _this.Head + (_this).Head = _0_toPush + } else { + (_this).Head = _0_toPush + (_this).Tail = _this.Head + } + } + } +} +func (_this *DoublyLinkedCacheEntryList) Remove(toRemove *CacheEntry) { + { + if (toRemove.Prev).Is_Null() { + (_this).Head = toRemove.Next + } else { + var _obj0 *CacheEntry = (toRemove.Prev).Dtor_deref().(*CacheEntry) + _ = _obj0 + _obj0.Next = toRemove.Next + } + if (toRemove.Next).Is_Null() { + (_this).Tail = toRemove.Prev + } else { + var _obj1 *CacheEntry = (toRemove.Next).Dtor_deref().(*CacheEntry) + _ = _obj1 + _obj1.Prev = toRemove.Prev + } + { + goto L0 + } + L0: + (toRemove).Next = Companion_Default___.NULL() + (toRemove).Prev = Companion_Default___.NULL() + } +} + +// End of class DoublyLinkedCacheEntryList + +// Definition of class LocalCMC +type LocalCMC struct { + Queue *DoublyLinkedCacheEntryList + Cache *m_DafnyLibraries.MutableMap + _entryCapacity _dafny.Int + _entryPruningTailSize _dafny.Int +} + +func New_LocalCMC_() *LocalCMC { + _this := LocalCMC{} + + _this.Queue = (*DoublyLinkedCacheEntryList)(nil) + _this.Cache = (*m_DafnyLibraries.MutableMap)(nil) + _this._entryCapacity = _dafny.Zero + _this._entryPruningTailSize = _dafny.Zero + return &_this +} + +type CompanionStruct_LocalCMC_ struct { +} + +var Companion_LocalCMC_ = CompanionStruct_LocalCMC_{} + +func (_this *LocalCMC) Equals(other *LocalCMC) bool { + return _this == other +} + +func (_this *LocalCMC) EqualsGeneric(x interface{}) bool { + other, ok := x.(*LocalCMC) + return ok && _this.Equals(other) +} + +func (*LocalCMC) String() string { + return "LocalCMC.LocalCMC" +} + +func Type_LocalCMC_() _dafny.TypeDescriptor { + return type_LocalCMC_{} +} + +type type_LocalCMC_ struct { +} + +func (_this type_LocalCMC_) Default() interface{} { + return (*LocalCMC)(nil) +} + +func (_this type_LocalCMC_) String() string { + return "LocalCMC.LocalCMC" +} +func (_this *LocalCMC) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){m_AwsCryptographyMaterialProvidersTypes.Companion_ICryptographicMaterialsCache_.TraitID_} +} + +var _ m_AwsCryptographyMaterialProvidersTypes.ICryptographicMaterialsCache = &LocalCMC{} +var _ _dafny.TraitOffspring = &LocalCMC{} + +func (_this *LocalCMC) DeleteCacheEntry(input m_AwsCryptographyMaterialProvidersTypes.DeleteCacheEntryInput) m_Wrappers.Result { + var _out1 m_Wrappers.Result + _ = _out1 + _out1 = m_AwsCryptographyMaterialProvidersTypes.Companion_ICryptographicMaterialsCache_.DeleteCacheEntry(_this, input) + return _out1 +} +func (_this *LocalCMC) GetCacheEntry(input m_AwsCryptographyMaterialProvidersTypes.GetCacheEntryInput) m_Wrappers.Result { + var _out1 m_Wrappers.Result + _ = _out1 + _out1 = m_AwsCryptographyMaterialProvidersTypes.Companion_ICryptographicMaterialsCache_.GetCacheEntry(_this, input) + return _out1 +} +func (_this *LocalCMC) PutCacheEntry(input m_AwsCryptographyMaterialProvidersTypes.PutCacheEntryInput) m_Wrappers.Result { + var _out1 m_Wrappers.Result + _ = _out1 + _out1 = m_AwsCryptographyMaterialProvidersTypes.Companion_ICryptographicMaterialsCache_.PutCacheEntry(_this, input) + return _out1 +} +func (_this *LocalCMC) UpdateUsageMetadata(input m_AwsCryptographyMaterialProvidersTypes.UpdateUsageMetadataInput) m_Wrappers.Result { + var _out1 m_Wrappers.Result + _ = _out1 + _out1 = m_AwsCryptographyMaterialProvidersTypes.Companion_ICryptographicMaterialsCache_.UpdateUsageMetadata(_this, input) + return _out1 +} +func (_this *LocalCMC) Ctor__(entryCapacity_k _dafny.Int, entryPruningTailSize_k _dafny.Int) { + { + (_this)._entryCapacity = entryCapacity_k + (_this)._entryPruningTailSize = entryPruningTailSize_k + var _nw0 *m_DafnyLibraries.MutableMap = m_DafnyLibraries.New_MutableMap_() + _ = _nw0 + (_this).Cache = _nw0 + var _nw1 *DoublyLinkedCacheEntryList = New_DoublyLinkedCacheEntryList_() + _ = _nw1 + _nw1.Ctor__() + (_this).Queue = _nw1 + } +} +func (_this *LocalCMC) GetCacheEntry_k(input m_AwsCryptographyMaterialProvidersTypes.GetCacheEntryInput) m_Wrappers.Result { + { + var output m_Wrappers.Result = m_Wrappers.Result{} + _ = output + var _0_now int64 + _ = _0_now + var _out0 int64 + _ = _out0 + _out0 = m__Time.CurrentRelativeTime() + _0_now = _out0 + var _out1 m_Wrappers.Result + _ = _out1 + _out1 = (_this).GetCacheEntryWithTime(input, _0_now) + output = _out1 + return output + } +} +func (_this *LocalCMC) GetCacheEntryWithTime(input m_AwsCryptographyMaterialProvidersTypes.GetCacheEntryInput, now int64) m_Wrappers.Result { + { + var output m_Wrappers.Result = m_Wrappers.Result{} + _ = output + if (_this.Cache).HasKey((input).Dtor_identifier()) { + var _0_entry *CacheEntry + _ = _0_entry + _0_entry = (_this.Cache).Select((input).Dtor_identifier()).(*CacheEntry) + if (now) <= ((_0_entry).ExpiryTime()) { + (_this.Queue).MoveToFront(_0_entry) + output = m_Wrappers.Companion_Result_.Create_Success_(m_AwsCryptographyMaterialProvidersTypes.Companion_GetCacheEntryOutput_.Create_GetCacheEntryOutput_((_0_entry).Materials(), (_0_entry).CreationTime(), (_0_entry).ExpiryTime(), _0_entry.MessagesUsed, _0_entry.BytesUsed)) + var _1_valueOrError0 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.TupleOf()) + _ = _1_valueOrError0 + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = (_this).Pruning(now) + _1_valueOrError0 = _out0 + if (_1_valueOrError0).IsFailure() { + output = (_1_valueOrError0).PropagateFailure() + return output + } + var _2___v0 _dafny.Tuple + _ = _2___v0 + _2___v0 = (_1_valueOrError0).Extract().(_dafny.Tuple) + } else { + var _3_valueOrError1 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.TupleOf()) + _ = _3_valueOrError1 + var _out1 m_Wrappers.Result + _ = _out1 + _out1 = (_this).DeleteCacheEntry_k(m_AwsCryptographyMaterialProvidersTypes.Companion_DeleteCacheEntryInput_.Create_DeleteCacheEntryInput_((input).Dtor_identifier())) + _3_valueOrError1 = _out1 + if (_3_valueOrError1).IsFailure() { + output = (_3_valueOrError1).PropagateFailure() + return output + } + var _4___v1 _dafny.Tuple + _ = _4___v1 + _4___v1 = (_3_valueOrError1).Extract().(_dafny.Tuple) + output = m_Wrappers.Companion_Result_.Create_Failure_(m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_EntryDoesNotExist_(_dafny.SeqOfString("Entry past TTL"))) + } + } else { + output = m_Wrappers.Companion_Result_.Create_Failure_(m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_EntryDoesNotExist_(_dafny.SeqOfString("Entry does not exist"))) + } + return output + } +} +func (_this *LocalCMC) PutCacheEntry_k(input m_AwsCryptographyMaterialProvidersTypes.PutCacheEntryInput) m_Wrappers.Result { + { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.TupleOf()) + _ = output + if ((_this).EntryCapacity()).Sign() == 0 { + output = m_Wrappers.Companion_Result_.Create_Success_(_dafny.TupleOf()) + return output + } + if (_this.Cache).HasKey((input).Dtor_identifier()) { + var _0_valueOrError0 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.TupleOf()) + _ = _0_valueOrError0 + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = (_this).DeleteCacheEntry_k(m_AwsCryptographyMaterialProvidersTypes.Companion_DeleteCacheEntryInput_.Create_DeleteCacheEntryInput_((input).Dtor_identifier())) + _0_valueOrError0 = _out0 + if (_0_valueOrError0).IsFailure() { + output = (_0_valueOrError0).PropagateFailure() + return output + } + var _1___v2 _dafny.Tuple + _ = _1___v2 + _1___v2 = (_0_valueOrError0).Extract().(_dafny.Tuple) + } + if ((_this).EntryCapacity()).Cmp((_this.Cache).Size()) == 0 { + var _2_valueOrError1 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.TupleOf()) + _ = _2_valueOrError1 + var _out1 m_Wrappers.Result + _ = _out1 + _out1 = (_this).DeleteCacheEntry_k(m_AwsCryptographyMaterialProvidersTypes.Companion_DeleteCacheEntryInput_.Create_DeleteCacheEntryInput_(((_this.Queue.Tail).Dtor_deref().(*CacheEntry)).Identifier())) + _2_valueOrError1 = _out1 + if (_2_valueOrError1).IsFailure() { + output = (_2_valueOrError1).PropagateFailure() + return output + } + var _3___v3 _dafny.Tuple + _ = _3___v3 + _3___v3 = (_2_valueOrError1).Extract().(_dafny.Tuple) + } + var _4_cell *CacheEntry + _ = _4_cell + var _nw0 *CacheEntry = New_CacheEntry_() + _ = _nw0 + _nw0.Ctor__((input).Dtor_materials(), (input).Dtor_identifier(), (input).Dtor_creationTime(), (input).Dtor_expiryTime(), ((input).Dtor_messagesUsed()).UnwrapOr(int32(0)).(int32), ((input).Dtor_bytesUsed()).UnwrapOr(int32(0)).(int32)) + _4_cell = _nw0 + (_this.Queue).PushCell(_4_cell) + (_this.Cache).Put((input).Dtor_identifier(), _4_cell) + output = m_Wrappers.Companion_Result_.Create_Success_(_dafny.TupleOf()) + return output + } +} +func (_this *LocalCMC) DeleteCacheEntry_k(input m_AwsCryptographyMaterialProvidersTypes.DeleteCacheEntryInput) m_Wrappers.Result { + { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.TupleOf()) + _ = output + if (_this.Cache).HasKey((input).Dtor_identifier()) { + var _0_cell *CacheEntry + _ = _0_cell + _0_cell = (_this.Cache).Select((input).Dtor_identifier()).(*CacheEntry) + { + (_this.Cache).Remove((input).Dtor_identifier()) + goto L1 + } + L1: + (_this.Queue).Remove(_0_cell) + } + output = m_Wrappers.Companion_Result_.Create_Success_(_dafny.TupleOf()) + return output + } +} +func (_this *LocalCMC) UpdateUsageMetadata_k(input m_AwsCryptographyMaterialProvidersTypes.UpdateUsageMetadataInput) m_Wrappers.Result { + { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.TupleOf()) + _ = output + if (_this.Cache).HasKey((input).Dtor_identifier()) { + var _0_cell *CacheEntry + _ = _0_cell + _0_cell = (_this.Cache).Select((input).Dtor_identifier()).(*CacheEntry) + if ((_0_cell.MessagesUsed) <= ((Companion_Default___.INT32__MAX__VALUE()) - (int32(1)))) && ((_0_cell.BytesUsed) <= ((Companion_Default___.INT32__MAX__VALUE()) - ((input).Dtor_bytesUsed()))) { + var _rhs0 int32 = (_0_cell.MessagesUsed) + (int32(1)) + _ = _rhs0 + var _rhs1 int32 = (_0_cell.BytesUsed) + ((input).Dtor_bytesUsed()) + _ = _rhs1 + var _lhs0 *CacheEntry = _0_cell + _ = _lhs0 + var _lhs1 *CacheEntry = _0_cell + _ = _lhs1 + _lhs0.MessagesUsed = _rhs0 + _lhs1.BytesUsed = _rhs1 + } else { + var _1_valueOrError0 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.TupleOf()) + _ = _1_valueOrError0 + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = (_this).DeleteCacheEntry_k(m_AwsCryptographyMaterialProvidersTypes.Companion_DeleteCacheEntryInput_.Create_DeleteCacheEntryInput_((input).Dtor_identifier())) + _1_valueOrError0 = _out0 + if (_1_valueOrError0).IsFailure() { + output = (_1_valueOrError0).PropagateFailure() + return output + } + var _2___v4 _dafny.Tuple + _ = _2___v4 + _2___v4 = (_1_valueOrError0).Extract().(_dafny.Tuple) + } + } + output = m_Wrappers.Companion_Result_.Create_Success_(_dafny.TupleOf()) + return output + return output + } +} +func (_this *LocalCMC) Pruning(now int64) m_Wrappers.Result { + { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.TupleOf()) + _ = output + var _hi0 _dafny.Int = (_this).EntryPruningTailSize() + _ = _hi0 + for _0_i := _dafny.Zero; _0_i.Cmp(_hi0) < 0; _0_i = _0_i.Plus(_dafny.One) { + if (_this.Queue.Tail).Is_Ptr() { + if (((_this.Queue.Tail).Dtor_deref().(*CacheEntry)).ExpiryTime()) < (now) { + var _1_valueOrError0 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.TupleOf()) + _ = _1_valueOrError0 + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = (_this).DeleteCacheEntry_k(m_AwsCryptographyMaterialProvidersTypes.Companion_DeleteCacheEntryInput_.Create_DeleteCacheEntryInput_(((_this.Queue.Tail).Dtor_deref().(*CacheEntry)).Identifier())) + _1_valueOrError0 = _out0 + if (_1_valueOrError0).IsFailure() { + output = (_1_valueOrError0).PropagateFailure() + return output + } + var _2___v5 _dafny.Tuple + _ = _2___v5 + _2___v5 = (_1_valueOrError0).Extract().(_dafny.Tuple) + } else { + output = m_Wrappers.Companion_Result_.Create_Success_(_dafny.TupleOf()) + return output + } + } else { + output = m_Wrappers.Companion_Result_.Create_Success_(_dafny.TupleOf()) + return output + } + } + output = m_Wrappers.Companion_Result_.Create_Success_(_dafny.TupleOf()) + return output + return output + } +} +func (_this *LocalCMC) EntryCapacity() _dafny.Int { + { + return _this._entryCapacity + } +} +func (_this *LocalCMC) EntryPruningTailSize() _dafny.Int { + { + return _this._entryPruningTailSize + } +} + +// End of class LocalCMC diff --git a/customer-preview/mpl/MaterialProviders/MaterialProviders.go b/customer-preview/mpl/MaterialProviders/MaterialProviders.go new file mode 100644 index 000000000..f51cad6dc --- /dev/null +++ b/customer-preview/mpl/MaterialProviders/MaterialProviders.go @@ -0,0 +1,630 @@ +// Package MaterialProviders +// Dafny module MaterialProviders compiled into Go + +package MaterialProviders + +import ( + os "os" + + m_ComAmazonawsDynamodbTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/ComAmazonawsDynamodbTypes" + m_Com_Amazonaws_Dynamodb "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/Com_Amazonaws_Dynamodb" + m_ComAmazonawsKmsTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/ComAmazonawsKmsTypes" + m_Com_Amazonaws_Kms "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/Com_Amazonaws_Kms" + m_AlgorithmSuites "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AlgorithmSuites" + m_AwsArnParsing "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsArnParsing" + m_AwsCryptographyKeyStoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreOperations" + m_AwsCryptographyKeyStoreTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreTypes" + m_AwsCryptographyMaterialProvidersOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersOperations" + m_AwsCryptographyMaterialProvidersTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersTypes" + m_AwsKmsDiscoveryKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsDiscoveryKeyring" + m_AwsKmsEcdhKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsEcdhKeyring" + m_AwsKmsHierarchicalKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsHierarchicalKeyring" + m_AwsKmsKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsKeyring" + m_AwsKmsMrkAreUnique "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkAreUnique" + m_AwsKmsMrkDiscoveryKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkDiscoveryKeyring" + m_AwsKmsMrkKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkKeyring" + m_AwsKmsMrkMatchForDecrypt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkMatchForDecrypt" + m_AwsKmsRsaKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsRsaKeyring" + m_AwsKmsUtils "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsUtils" + m_CMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CMM" + m_CacheConstants "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CacheConstants" + m_CanonicalEncryptionContext "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CanonicalEncryptionContext" + m_Commitment "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Commitment" + m_Constants "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Constants" + m_CreateKeyStoreTable "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeyStoreTable" + m_CreateKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeys" + m_DDBKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DDBKeystoreOperations" + m_DefaultCMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DefaultCMM" + m_DefaultClientSupplier "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DefaultClientSupplier" + m_Defaults "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Defaults" + m_DiscoveryMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DiscoveryMultiKeyring" + m_EcdhEdkWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/EcdhEdkWrapping" + m_EdkWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/EdkWrapping" + m_ErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/ErrorMessages" + m_GetKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/GetKeys" + m_IntermediateKeyWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/IntermediateKeyWrapping" + m_KMSKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KMSKeystoreOperations" + m_KeyStore "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStore" + m_KeyStoreErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStoreErrorMessages" + m_Keyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Keyring" + m_KmsArn "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KmsArn" + m_LocalCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/LocalCMC" + m_MaterialWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MaterialWrapping" + m_Materials "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Materials" + m_MrkAwareDiscoveryMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MrkAwareDiscoveryMultiKeyring" + m_MrkAwareStrictMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MrkAwareStrictMultiKeyring" + m_MultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MultiKeyring" + m_RawAESKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawAESKeyring" + m_RawECDHKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawECDHKeyring" + m_RawRSAKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawRSAKeyring" + m_RequiredEncryptionContextCMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RequiredEncryptionContextCMM" + m_StormTracker "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StormTracker" + m_StormTrackingCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StormTrackingCMC" + m_StrictMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StrictMultiKeyring" + m_Structure "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Structure" + m_SynchronizedLocalCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/SynchronizedLocalCMC" + m_Utils "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Utils" + m_AtomicPrimitives "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AtomicPrimitives" + m_AwsCryptographyPrimitivesOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesOperations" + m_AwsCryptographyPrimitivesTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesTypes" + m_Digest "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Digest" + m_HKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/HKDF" + m_KdfCtr "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/KdfCtr" + m_Random "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Random" + m_WrappedHKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHKDF" + m_WrappedHMAC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHMAC" + m_Actions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Actions" + m_Base64 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64" + m_Base64Lemmas "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64Lemmas" + m_BoundedInts "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/BoundedInts" + m_DivInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternals" + m_DivInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternalsNonlinear" + m_DivMod "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivMod" + m_FileIO "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FileIO" + m_FloatCompare "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FloatCompare" + m_Functions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Functions" + m_GeneralInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GeneralInternals" + m_GetOpt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GetOpt" + m_HexStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/HexStrings" + m_Logarithm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Logarithm" + m__Math "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Math_" + m_ModInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternals" + m_ModInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternalsNonlinear" + m_Mul "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Mul" + m_MulInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternals" + m_MulInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternalsNonlinear" + m_Power "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Power" + m_Relations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Relations" + m_Seq "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq" + m_Seq_MergeSort "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq_MergeSort" + m_Sorting "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Sorting" + m_StandardLibrary "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary" + m_StandardLibraryInterop "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibraryInterop" + m_StandardLibrary_Sequence "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_Sequence" + m_StandardLibrary_String "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_String" + m_StandardLibrary_UInt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_UInt" + m_Streams "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Streams" + m_UnicodeStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UnicodeStrings" + m__Unicode "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Unicode_" + m_Utf16EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf16EncodingForm" + m_Utf8EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf8EncodingForm" + m_Wrappers "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers" + m__System "github.com/dafny-lang/DafnyRuntimeGo/v4/System_" + _dafny "github.com/dafny-lang/DafnyRuntimeGo/v4/dafny" +) + +var _ = os.Args +var _ _dafny.Dummy__ +var _ m__System.Dummy__ +var _ m_Wrappers.Dummy__ +var _ m_BoundedInts.Dummy__ +var _ m_StandardLibrary_UInt.Dummy__ +var _ m_StandardLibrary_Sequence.Dummy__ +var _ m_StandardLibrary_String.Dummy__ +var _ m_StandardLibrary.Dummy__ +var _ m_AwsCryptographyPrimitivesTypes.Dummy__ +var _ m_Random.Dummy__ +var _ m_Digest.Dummy__ +var _ m_WrappedHMAC.Dummy__ +var _ m_HKDF.Dummy__ +var _ m_WrappedHKDF.Dummy__ +var _ m_KdfCtr.Dummy__ +var _ m_AwsCryptographyPrimitivesOperations.Dummy__ +var _ m_AtomicPrimitives.Dummy__ +var _ m_ComAmazonawsDynamodbTypes.Dummy__ +var _ m_ComAmazonawsKmsTypes.Dummy__ +var _ m_Relations.Dummy__ +var _ m_Seq_MergeSort.Dummy__ +var _ m__Math.Dummy__ +var _ m_Seq.Dummy__ +var _ m__Unicode.Dummy__ +var _ m_Functions.Dummy__ +var _ m_Utf8EncodingForm.Dummy__ +var _ m_Utf16EncodingForm.Dummy__ +var _ m_UnicodeStrings.Dummy__ +var _ m_FileIO.Dummy__ +var _ m_GeneralInternals.Dummy__ +var _ m_MulInternalsNonlinear.Dummy__ +var _ m_MulInternals.Dummy__ +var _ m_Mul.Dummy__ +var _ m_ModInternalsNonlinear.Dummy__ +var _ m_DivInternalsNonlinear.Dummy__ +var _ m_ModInternals.Dummy__ +var _ m_DivInternals.Dummy__ +var _ m_DivMod.Dummy__ +var _ m_Power.Dummy__ +var _ m_Logarithm.Dummy__ +var _ m_StandardLibraryInterop.Dummy__ +var _ m_Streams.Dummy__ +var _ m_Sorting.Dummy__ +var _ m_HexStrings.Dummy__ +var _ m_GetOpt.Dummy__ +var _ m_FloatCompare.Dummy__ +var _ m_Base64.Dummy__ +var _ m_Base64Lemmas.Dummy__ +var _ m_Actions.Dummy__ +var _ m_AwsCryptographyKeyStoreTypes.Dummy__ +var _ m_AwsCryptographyMaterialProvidersTypes.Dummy__ +var _ m_AwsArnParsing.Dummy__ +var _ m_AwsKmsMrkMatchForDecrypt.Dummy__ +var _ m_AwsKmsUtils.Dummy__ +var _ m_KeyStoreErrorMessages.Dummy__ +var _ m_KmsArn.Dummy__ +var _ m_Structure.Dummy__ +var _ m_KMSKeystoreOperations.Dummy__ +var _ m_DDBKeystoreOperations.Dummy__ +var _ m_CreateKeys.Dummy__ +var _ m_CreateKeyStoreTable.Dummy__ +var _ m_GetKeys.Dummy__ +var _ m_AwsCryptographyKeyStoreOperations.Dummy__ +var _ m_Com_Amazonaws_Kms.Dummy__ +var _ m_Com_Amazonaws_Dynamodb.Dummy__ +var _ m_KeyStore.Dummy__ +var _ m_AlgorithmSuites.Dummy__ +var _ m_Materials.Dummy__ +var _ m_Keyring.Dummy__ +var _ m_MultiKeyring.Dummy__ +var _ m_AwsKmsMrkAreUnique.Dummy__ +var _ m_Constants.Dummy__ +var _ m_MaterialWrapping.Dummy__ +var _ m_CanonicalEncryptionContext.Dummy__ +var _ m_IntermediateKeyWrapping.Dummy__ +var _ m_EdkWrapping.Dummy__ +var _ m_ErrorMessages.Dummy__ +var _ m_AwsKmsKeyring.Dummy__ +var _ m_StrictMultiKeyring.Dummy__ +var _ m_AwsKmsDiscoveryKeyring.Dummy__ +var _ m_DiscoveryMultiKeyring.Dummy__ +var _ m_AwsKmsMrkDiscoveryKeyring.Dummy__ +var _ m_MrkAwareDiscoveryMultiKeyring.Dummy__ +var _ m_AwsKmsMrkKeyring.Dummy__ +var _ m_MrkAwareStrictMultiKeyring.Dummy__ +var _ m_LocalCMC.Dummy__ +var _ m_SynchronizedLocalCMC.Dummy__ +var _ m_StormTracker.Dummy__ +var _ m_StormTrackingCMC.Dummy__ +var _ m_CacheConstants.Dummy__ +var _ m_AwsKmsHierarchicalKeyring.Dummy__ +var _ m_AwsKmsRsaKeyring.Dummy__ +var _ m_EcdhEdkWrapping.Dummy__ +var _ m_RawECDHKeyring.Dummy__ +var _ m_AwsKmsEcdhKeyring.Dummy__ +var _ m_RawAESKeyring.Dummy__ +var _ m_RawRSAKeyring.Dummy__ +var _ m_CMM.Dummy__ +var _ m_Defaults.Dummy__ +var _ m_Commitment.Dummy__ +var _ m_DefaultCMM.Dummy__ +var _ m_DefaultClientSupplier.Dummy__ +var _ m_Utils.Dummy__ +var _ m_RequiredEncryptionContextCMM.Dummy__ +var _ m_AwsCryptographyMaterialProvidersOperations.Dummy__ + +type Dummy__ struct{} + +// Definition of class Default__ +type Default__ struct { + dummy byte +} + +func New_Default___() *Default__ { + _this := Default__{} + + return &_this +} + +type CompanionStruct_Default___ struct { +} + +var Companion_Default___ = CompanionStruct_Default___{} + +func (_this *Default__) Equals(other *Default__) bool { + return _this == other +} + +func (_this *Default__) EqualsGeneric(x interface{}) bool { + other, ok := x.(*Default__) + return ok && _this.Equals(other) +} + +func (*Default__) String() string { + return "MaterialProviders.Default__" +} +func (_this *Default__) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = &Default__{} + +func (_static *CompanionStruct_Default___) DefaultMaterialProvidersConfig() m_AwsCryptographyMaterialProvidersTypes.MaterialProvidersConfig { + return m_AwsCryptographyMaterialProvidersTypes.Companion_MaterialProvidersConfig_.Create_MaterialProvidersConfig_() +} +func (_static *CompanionStruct_Default___) MaterialProviders(config m_AwsCryptographyMaterialProvidersTypes.MaterialProvidersConfig) m_Wrappers.Result { + var res m_Wrappers.Result = m_Wrappers.Result{} + _ = res + var _0_maybeCrypto m_Wrappers.Result + _ = _0_maybeCrypto + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_AtomicPrimitives.Companion_Default___.AtomicPrimitives(m_AtomicPrimitives.Companion_Default___.DefaultCryptoConfig()) + _0_maybeCrypto = _out0 + var _1_valueOrError0 m_Wrappers.Result = m_Wrappers.Result{} + _ = _1_valueOrError0 + _1_valueOrError0 = (_0_maybeCrypto).MapFailure(func(coer138 func(m_AwsCryptographyPrimitivesTypes.Error) m_AwsCryptographyMaterialProvidersTypes.Error) func(interface{}) interface{} { + return func(arg139 interface{}) interface{} { + return coer138(arg139.(m_AwsCryptographyPrimitivesTypes.Error)) + } + }(func(_2_e m_AwsCryptographyPrimitivesTypes.Error) m_AwsCryptographyMaterialProvidersTypes.Error { + return m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographyPrimitives_(_2_e) + })) + if (_1_valueOrError0).IsFailure() { + res = (_1_valueOrError0).PropagateFailure() + return res + } + var _3_cryptoPrimitivesX m_AwsCryptographyPrimitivesTypes.IAwsCryptographicPrimitivesClient + _ = _3_cryptoPrimitivesX + _3_cryptoPrimitivesX = (_1_valueOrError0).Extract().(*m_AtomicPrimitives.AtomicPrimitivesClient) + var _4_cryptoPrimitives *m_AtomicPrimitives.AtomicPrimitivesClient + _ = _4_cryptoPrimitives + _4_cryptoPrimitives = _3_cryptoPrimitivesX.(*m_AtomicPrimitives.AtomicPrimitivesClient) + var _5_client *MaterialProvidersClient + _ = _5_client + var _nw0 *MaterialProvidersClient = New_MaterialProvidersClient_() + _ = _nw0 + _nw0.Ctor__(m_AwsCryptographyMaterialProvidersOperations.Companion_Config_.Create_Config_(_4_cryptoPrimitives)) + _5_client = _nw0 + res = m_Wrappers.Companion_Result_.Create_Success_(_5_client) + return res + return res +} +func (_static *CompanionStruct_Default___) CreateSuccessOfClient(client m_AwsCryptographyMaterialProvidersTypes.IAwsCryptographicMaterialProvidersClient) m_Wrappers.Result { + return m_Wrappers.Companion_Result_.Create_Success_(client) +} +func (_static *CompanionStruct_Default___) CreateFailureOfError(error_ m_AwsCryptographyMaterialProvidersTypes.Error) m_Wrappers.Result { + return m_Wrappers.Companion_Result_.Create_Failure_(error_) +} + +// End of class Default__ + +// Definition of class MaterialProvidersClient +type MaterialProvidersClient struct { + _config m_AwsCryptographyMaterialProvidersOperations.Config +} + +func New_MaterialProvidersClient_() *MaterialProvidersClient { + _this := MaterialProvidersClient{} + + _this._config = m_AwsCryptographyMaterialProvidersOperations.Config{} + return &_this +} + +type CompanionStruct_MaterialProvidersClient_ struct { +} + +var Companion_MaterialProvidersClient_ = CompanionStruct_MaterialProvidersClient_{} + +func (_this *MaterialProvidersClient) Equals(other *MaterialProvidersClient) bool { + return _this == other +} + +func (_this *MaterialProvidersClient) EqualsGeneric(x interface{}) bool { + other, ok := x.(*MaterialProvidersClient) + return ok && _this.Equals(other) +} + +func (*MaterialProvidersClient) String() string { + return "MaterialProviders.MaterialProvidersClient" +} + +func Type_MaterialProvidersClient_() _dafny.TypeDescriptor { + return type_MaterialProvidersClient_{} +} + +type type_MaterialProvidersClient_ struct { +} + +func (_this type_MaterialProvidersClient_) Default() interface{} { + return (*MaterialProvidersClient)(nil) +} + +func (_this type_MaterialProvidersClient_) String() string { + return "MaterialProviders.MaterialProvidersClient" +} +func (_this *MaterialProvidersClient) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){m_AwsCryptographyMaterialProvidersTypes.Companion_IAwsCryptographicMaterialProvidersClient_.TraitID_} +} + +var _ m_AwsCryptographyMaterialProvidersTypes.IAwsCryptographicMaterialProvidersClient = &MaterialProvidersClient{} +var _ _dafny.TraitOffspring = &MaterialProvidersClient{} + +func (_this *MaterialProvidersClient) Ctor__(config m_AwsCryptographyMaterialProvidersOperations.Config) { + { + (_this)._config = config + } +} +func (_this *MaterialProvidersClient) CreateAwsKmsKeyring(input m_AwsCryptographyMaterialProvidersTypes.CreateAwsKmsKeyringInput) m_Wrappers.Result { + { + var output m_Wrappers.Result = m_Wrappers.Result{} + _ = output + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_AwsCryptographyMaterialProvidersOperations.Companion_Default___.CreateAwsKmsKeyring((_this).Config(), input) + output = _out0 + return output + } +} +func (_this *MaterialProvidersClient) CreateAwsKmsDiscoveryKeyring(input m_AwsCryptographyMaterialProvidersTypes.CreateAwsKmsDiscoveryKeyringInput) m_Wrappers.Result { + { + var output m_Wrappers.Result = m_Wrappers.Result{} + _ = output + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_AwsCryptographyMaterialProvidersOperations.Companion_Default___.CreateAwsKmsDiscoveryKeyring((_this).Config(), input) + output = _out0 + return output + } +} +func (_this *MaterialProvidersClient) CreateAwsKmsMultiKeyring(input m_AwsCryptographyMaterialProvidersTypes.CreateAwsKmsMultiKeyringInput) m_Wrappers.Result { + { + var output m_Wrappers.Result = m_Wrappers.Result{} + _ = output + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_AwsCryptographyMaterialProvidersOperations.Companion_Default___.CreateAwsKmsMultiKeyring((_this).Config(), input) + output = _out0 + return output + } +} +func (_this *MaterialProvidersClient) CreateAwsKmsDiscoveryMultiKeyring(input m_AwsCryptographyMaterialProvidersTypes.CreateAwsKmsDiscoveryMultiKeyringInput) m_Wrappers.Result { + { + var output m_Wrappers.Result = m_Wrappers.Result{} + _ = output + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_AwsCryptographyMaterialProvidersOperations.Companion_Default___.CreateAwsKmsDiscoveryMultiKeyring((_this).Config(), input) + output = _out0 + return output + } +} +func (_this *MaterialProvidersClient) CreateAwsKmsMrkKeyring(input m_AwsCryptographyMaterialProvidersTypes.CreateAwsKmsMrkKeyringInput) m_Wrappers.Result { + { + var output m_Wrappers.Result = m_Wrappers.Result{} + _ = output + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_AwsCryptographyMaterialProvidersOperations.Companion_Default___.CreateAwsKmsMrkKeyring((_this).Config(), input) + output = _out0 + return output + } +} +func (_this *MaterialProvidersClient) CreateAwsKmsMrkMultiKeyring(input m_AwsCryptographyMaterialProvidersTypes.CreateAwsKmsMrkMultiKeyringInput) m_Wrappers.Result { + { + var output m_Wrappers.Result = m_Wrappers.Result{} + _ = output + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_AwsCryptographyMaterialProvidersOperations.Companion_Default___.CreateAwsKmsMrkMultiKeyring((_this).Config(), input) + output = _out0 + return output + } +} +func (_this *MaterialProvidersClient) CreateAwsKmsMrkDiscoveryKeyring(input m_AwsCryptographyMaterialProvidersTypes.CreateAwsKmsMrkDiscoveryKeyringInput) m_Wrappers.Result { + { + var output m_Wrappers.Result = m_Wrappers.Result{} + _ = output + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_AwsCryptographyMaterialProvidersOperations.Companion_Default___.CreateAwsKmsMrkDiscoveryKeyring((_this).Config(), input) + output = _out0 + return output + } +} +func (_this *MaterialProvidersClient) CreateAwsKmsMrkDiscoveryMultiKeyring(input m_AwsCryptographyMaterialProvidersTypes.CreateAwsKmsMrkDiscoveryMultiKeyringInput) m_Wrappers.Result { + { + var output m_Wrappers.Result = m_Wrappers.Result{} + _ = output + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_AwsCryptographyMaterialProvidersOperations.Companion_Default___.CreateAwsKmsMrkDiscoveryMultiKeyring((_this).Config(), input) + output = _out0 + return output + } +} +func (_this *MaterialProvidersClient) CreateAwsKmsHierarchicalKeyring(input m_AwsCryptographyMaterialProvidersTypes.CreateAwsKmsHierarchicalKeyringInput) m_Wrappers.Result { + { + var output m_Wrappers.Result = m_Wrappers.Result{} + _ = output + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_AwsCryptographyMaterialProvidersOperations.Companion_Default___.CreateAwsKmsHierarchicalKeyring((_this).Config(), input) + output = _out0 + return output + } +} +func (_this *MaterialProvidersClient) CreateAwsKmsRsaKeyring(input m_AwsCryptographyMaterialProvidersTypes.CreateAwsKmsRsaKeyringInput) m_Wrappers.Result { + { + var output m_Wrappers.Result = m_Wrappers.Result{} + _ = output + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_AwsCryptographyMaterialProvidersOperations.Companion_Default___.CreateAwsKmsRsaKeyring((_this).Config(), input) + output = _out0 + return output + } +} +func (_this *MaterialProvidersClient) CreateAwsKmsEcdhKeyring(input m_AwsCryptographyMaterialProvidersTypes.CreateAwsKmsEcdhKeyringInput) m_Wrappers.Result { + { + var output m_Wrappers.Result = m_Wrappers.Result{} + _ = output + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_AwsCryptographyMaterialProvidersOperations.Companion_Default___.CreateAwsKmsEcdhKeyring((_this).Config(), input) + output = _out0 + return output + } +} +func (_this *MaterialProvidersClient) CreateMultiKeyring(input m_AwsCryptographyMaterialProvidersTypes.CreateMultiKeyringInput) m_Wrappers.Result { + { + var output m_Wrappers.Result = m_Wrappers.Result{} + _ = output + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_AwsCryptographyMaterialProvidersOperations.Companion_Default___.CreateMultiKeyring((_this).Config(), input) + output = _out0 + return output + } +} +func (_this *MaterialProvidersClient) CreateRawAesKeyring(input m_AwsCryptographyMaterialProvidersTypes.CreateRawAesKeyringInput) m_Wrappers.Result { + { + var output m_Wrappers.Result = m_Wrappers.Result{} + _ = output + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_AwsCryptographyMaterialProvidersOperations.Companion_Default___.CreateRawAesKeyring((_this).Config(), input) + output = _out0 + return output + } +} +func (_this *MaterialProvidersClient) CreateRawRsaKeyring(input m_AwsCryptographyMaterialProvidersTypes.CreateRawRsaKeyringInput) m_Wrappers.Result { + { + var output m_Wrappers.Result = m_Wrappers.Result{} + _ = output + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_AwsCryptographyMaterialProvidersOperations.Companion_Default___.CreateRawRsaKeyring((_this).Config(), input) + output = _out0 + return output + } +} +func (_this *MaterialProvidersClient) CreateRawEcdhKeyring(input m_AwsCryptographyMaterialProvidersTypes.CreateRawEcdhKeyringInput) m_Wrappers.Result { + { + var output m_Wrappers.Result = m_Wrappers.Result{} + _ = output + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_AwsCryptographyMaterialProvidersOperations.Companion_Default___.CreateRawEcdhKeyring((_this).Config(), input) + output = _out0 + return output + } +} +func (_this *MaterialProvidersClient) CreateDefaultCryptographicMaterialsManager(input m_AwsCryptographyMaterialProvidersTypes.CreateDefaultCryptographicMaterialsManagerInput) m_Wrappers.Result { + { + var output m_Wrappers.Result = m_Wrappers.Result{} + _ = output + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_AwsCryptographyMaterialProvidersOperations.Companion_Default___.CreateDefaultCryptographicMaterialsManager((_this).Config(), input) + output = _out0 + return output + } +} +func (_this *MaterialProvidersClient) CreateRequiredEncryptionContextCMM(input m_AwsCryptographyMaterialProvidersTypes.CreateRequiredEncryptionContextCMMInput) m_Wrappers.Result { + { + var output m_Wrappers.Result = m_Wrappers.Result{} + _ = output + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_AwsCryptographyMaterialProvidersOperations.Companion_Default___.CreateRequiredEncryptionContextCMM((_this).Config(), input) + output = _out0 + return output + } +} +func (_this *MaterialProvidersClient) CreateCryptographicMaterialsCache(input m_AwsCryptographyMaterialProvidersTypes.CreateCryptographicMaterialsCacheInput) m_Wrappers.Result { + { + var output m_Wrappers.Result = m_Wrappers.Result{} + _ = output + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_AwsCryptographyMaterialProvidersOperations.Companion_Default___.CreateCryptographicMaterialsCache((_this).Config(), input) + output = _out0 + return output + } +} +func (_this *MaterialProvidersClient) CreateDefaultClientSupplier(input m_AwsCryptographyMaterialProvidersTypes.CreateDefaultClientSupplierInput) m_Wrappers.Result { + { + var output m_Wrappers.Result = m_Wrappers.Result{} + _ = output + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_AwsCryptographyMaterialProvidersOperations.Companion_Default___.CreateDefaultClientSupplier((_this).Config(), input) + output = _out0 + return output + } +} +func (_this *MaterialProvidersClient) InitializeEncryptionMaterials(input m_AwsCryptographyMaterialProvidersTypes.InitializeEncryptionMaterialsInput) m_Wrappers.Result { + { + return m_AwsCryptographyMaterialProvidersOperations.Companion_Default___.InitializeEncryptionMaterials((_this).Config(), input) + } +} +func (_this *MaterialProvidersClient) InitializeDecryptionMaterials(input m_AwsCryptographyMaterialProvidersTypes.InitializeDecryptionMaterialsInput) m_Wrappers.Result { + { + return m_AwsCryptographyMaterialProvidersOperations.Companion_Default___.InitializeDecryptionMaterials((_this).Config(), input) + } +} +func (_this *MaterialProvidersClient) ValidEncryptionMaterialsTransition(input m_AwsCryptographyMaterialProvidersTypes.ValidEncryptionMaterialsTransitionInput) m_Wrappers.Result { + { + return m_AwsCryptographyMaterialProvidersOperations.Companion_Default___.ValidEncryptionMaterialsTransition((_this).Config(), input) + } +} +func (_this *MaterialProvidersClient) ValidDecryptionMaterialsTransition(input m_AwsCryptographyMaterialProvidersTypes.ValidDecryptionMaterialsTransitionInput) m_Wrappers.Result { + { + return m_AwsCryptographyMaterialProvidersOperations.Companion_Default___.ValidDecryptionMaterialsTransition((_this).Config(), input) + } +} +func (_this *MaterialProvidersClient) EncryptionMaterialsHasPlaintextDataKey(input m_AwsCryptographyMaterialProvidersTypes.EncryptionMaterials) m_Wrappers.Result { + { + return m_AwsCryptographyMaterialProvidersOperations.Companion_Default___.EncryptionMaterialsHasPlaintextDataKey((_this).Config(), input) + } +} +func (_this *MaterialProvidersClient) DecryptionMaterialsWithPlaintextDataKey(input m_AwsCryptographyMaterialProvidersTypes.DecryptionMaterials) m_Wrappers.Result { + { + return m_AwsCryptographyMaterialProvidersOperations.Companion_Default___.DecryptionMaterialsWithPlaintextDataKey((_this).Config(), input) + } +} +func (_this *MaterialProvidersClient) GetAlgorithmSuiteInfo(input _dafny.Sequence) m_Wrappers.Result { + { + return m_AwsCryptographyMaterialProvidersOperations.Companion_Default___.GetAlgorithmSuiteInfo((_this).Config(), input) + } +} +func (_this *MaterialProvidersClient) ValidAlgorithmSuiteInfo(input m_AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo) m_Wrappers.Result { + { + return m_AwsCryptographyMaterialProvidersOperations.Companion_Default___.ValidAlgorithmSuiteInfo((_this).Config(), input) + } +} +func (_this *MaterialProvidersClient) ValidateCommitmentPolicyOnEncrypt(input m_AwsCryptographyMaterialProvidersTypes.ValidateCommitmentPolicyOnEncryptInput) m_Wrappers.Result { + { + return m_AwsCryptographyMaterialProvidersOperations.Companion_Default___.ValidateCommitmentPolicyOnEncrypt((_this).Config(), input) + } +} +func (_this *MaterialProvidersClient) ValidateCommitmentPolicyOnDecrypt(input m_AwsCryptographyMaterialProvidersTypes.ValidateCommitmentPolicyOnDecryptInput) m_Wrappers.Result { + { + return m_AwsCryptographyMaterialProvidersOperations.Companion_Default___.ValidateCommitmentPolicyOnDecrypt((_this).Config(), input) + } +} +func (_this *MaterialProvidersClient) Config() m_AwsCryptographyMaterialProvidersOperations.Config { + { + return _this._config + } +} + +// End of class MaterialProvidersClient diff --git a/customer-preview/mpl/MaterialWrapping/MaterialWrapping.go b/customer-preview/mpl/MaterialWrapping/MaterialWrapping.go new file mode 100644 index 000000000..6f5ebbc03 --- /dev/null +++ b/customer-preview/mpl/MaterialWrapping/MaterialWrapping.go @@ -0,0 +1,856 @@ +// Package MaterialWrapping +// Dafny module MaterialWrapping compiled into Go + +package MaterialWrapping + +import ( + os "os" + + m_ComAmazonawsDynamodbTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/ComAmazonawsDynamodbTypes" + m_Com_Amazonaws_Dynamodb "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/Com_Amazonaws_Dynamodb" + m_ComAmazonawsKmsTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/ComAmazonawsKmsTypes" + m_Com_Amazonaws_Kms "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/Com_Amazonaws_Kms" + m_AlgorithmSuites "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AlgorithmSuites" + m_AwsArnParsing "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsArnParsing" + m_AwsCryptographyKeyStoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreOperations" + m_AwsCryptographyKeyStoreTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreTypes" + m_AwsCryptographyMaterialProvidersTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersTypes" + m_AwsKmsMrkAreUnique "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkAreUnique" + m_AwsKmsMrkMatchForDecrypt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkMatchForDecrypt" + m_AwsKmsUtils "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsUtils" + m_Constants "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Constants" + m_CreateKeyStoreTable "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeyStoreTable" + m_CreateKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeys" + m_DDBKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DDBKeystoreOperations" + m_GetKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/GetKeys" + m_KMSKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KMSKeystoreOperations" + m_KeyStore "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStore" + m_KeyStoreErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStoreErrorMessages" + m_Keyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Keyring" + m_KmsArn "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KmsArn" + m_Materials "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Materials" + m_MultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MultiKeyring" + m_Structure "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Structure" + m_AtomicPrimitives "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AtomicPrimitives" + m_AwsCryptographyPrimitivesOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesOperations" + m_AwsCryptographyPrimitivesTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesTypes" + m_Digest "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Digest" + m_HKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/HKDF" + m_KdfCtr "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/KdfCtr" + m_Random "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Random" + m_WrappedHKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHKDF" + m_WrappedHMAC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHMAC" + m_Actions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Actions" + m_Base64 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64" + m_Base64Lemmas "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64Lemmas" + m_BoundedInts "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/BoundedInts" + m_DivInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternals" + m_DivInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternalsNonlinear" + m_DivMod "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivMod" + m_FileIO "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FileIO" + m_FloatCompare "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FloatCompare" + m_Functions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Functions" + m_GeneralInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GeneralInternals" + m_GetOpt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GetOpt" + m_HexStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/HexStrings" + m_Logarithm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Logarithm" + m__Math "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Math_" + m_ModInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternals" + m_ModInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternalsNonlinear" + m_Mul "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Mul" + m_MulInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternals" + m_MulInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternalsNonlinear" + m_Power "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Power" + m_Relations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Relations" + m_Seq "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq" + m_Seq_MergeSort "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq_MergeSort" + m_Sorting "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Sorting" + m_StandardLibrary "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary" + m_StandardLibraryInterop "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibraryInterop" + m_StandardLibrary_Sequence "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_Sequence" + m_StandardLibrary_String "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_String" + m_StandardLibrary_UInt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_UInt" + m_Streams "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Streams" + m_UnicodeStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UnicodeStrings" + m__Unicode "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Unicode_" + m_Utf16EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf16EncodingForm" + m_Utf8EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf8EncodingForm" + m_Wrappers "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers" + m__System "github.com/dafny-lang/DafnyRuntimeGo/v4/System_" + _dafny "github.com/dafny-lang/DafnyRuntimeGo/v4/dafny" +) + +var _ = os.Args +var _ _dafny.Dummy__ +var _ m__System.Dummy__ +var _ m_Wrappers.Dummy__ +var _ m_BoundedInts.Dummy__ +var _ m_StandardLibrary_UInt.Dummy__ +var _ m_StandardLibrary_Sequence.Dummy__ +var _ m_StandardLibrary_String.Dummy__ +var _ m_StandardLibrary.Dummy__ +var _ m_AwsCryptographyPrimitivesTypes.Dummy__ +var _ m_Random.Dummy__ +var _ m_Digest.Dummy__ +var _ m_WrappedHMAC.Dummy__ +var _ m_HKDF.Dummy__ +var _ m_WrappedHKDF.Dummy__ +var _ m_KdfCtr.Dummy__ +var _ m_AwsCryptographyPrimitivesOperations.Dummy__ +var _ m_AtomicPrimitives.Dummy__ +var _ m_ComAmazonawsDynamodbTypes.Dummy__ +var _ m_ComAmazonawsKmsTypes.Dummy__ +var _ m_Relations.Dummy__ +var _ m_Seq_MergeSort.Dummy__ +var _ m__Math.Dummy__ +var _ m_Seq.Dummy__ +var _ m__Unicode.Dummy__ +var _ m_Functions.Dummy__ +var _ m_Utf8EncodingForm.Dummy__ +var _ m_Utf16EncodingForm.Dummy__ +var _ m_UnicodeStrings.Dummy__ +var _ m_FileIO.Dummy__ +var _ m_GeneralInternals.Dummy__ +var _ m_MulInternalsNonlinear.Dummy__ +var _ m_MulInternals.Dummy__ +var _ m_Mul.Dummy__ +var _ m_ModInternalsNonlinear.Dummy__ +var _ m_DivInternalsNonlinear.Dummy__ +var _ m_ModInternals.Dummy__ +var _ m_DivInternals.Dummy__ +var _ m_DivMod.Dummy__ +var _ m_Power.Dummy__ +var _ m_Logarithm.Dummy__ +var _ m_StandardLibraryInterop.Dummy__ +var _ m_Streams.Dummy__ +var _ m_Sorting.Dummy__ +var _ m_HexStrings.Dummy__ +var _ m_GetOpt.Dummy__ +var _ m_FloatCompare.Dummy__ +var _ m_Base64.Dummy__ +var _ m_Base64Lemmas.Dummy__ +var _ m_Actions.Dummy__ +var _ m_AwsCryptographyKeyStoreTypes.Dummy__ +var _ m_AwsCryptographyMaterialProvidersTypes.Dummy__ +var _ m_AwsArnParsing.Dummy__ +var _ m_AwsKmsMrkMatchForDecrypt.Dummy__ +var _ m_AwsKmsUtils.Dummy__ +var _ m_KeyStoreErrorMessages.Dummy__ +var _ m_KmsArn.Dummy__ +var _ m_Structure.Dummy__ +var _ m_KMSKeystoreOperations.Dummy__ +var _ m_DDBKeystoreOperations.Dummy__ +var _ m_CreateKeys.Dummy__ +var _ m_CreateKeyStoreTable.Dummy__ +var _ m_GetKeys.Dummy__ +var _ m_AwsCryptographyKeyStoreOperations.Dummy__ +var _ m_Com_Amazonaws_Kms.Dummy__ +var _ m_Com_Amazonaws_Dynamodb.Dummy__ +var _ m_KeyStore.Dummy__ +var _ m_AlgorithmSuites.Dummy__ +var _ m_Materials.Dummy__ +var _ m_Keyring.Dummy__ +var _ m_MultiKeyring.Dummy__ +var _ m_AwsKmsMrkAreUnique.Dummy__ +var _ m_Constants.Dummy__ + +type Dummy__ struct{} + +// Definition of datatype GenerateAndWrapInput +type GenerateAndWrapInput struct { + Data_GenerateAndWrapInput_ +} + +func (_this GenerateAndWrapInput) Get_() Data_GenerateAndWrapInput_ { + return _this.Data_GenerateAndWrapInput_ +} + +type Data_GenerateAndWrapInput_ interface { + isGenerateAndWrapInput() +} + +type CompanionStruct_GenerateAndWrapInput_ struct { +} + +var Companion_GenerateAndWrapInput_ = CompanionStruct_GenerateAndWrapInput_{} + +type GenerateAndWrapInput_GenerateAndWrapInput struct { + AlgorithmSuite m_AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo + EncryptionContext _dafny.Map +} + +func (GenerateAndWrapInput_GenerateAndWrapInput) isGenerateAndWrapInput() {} + +func (CompanionStruct_GenerateAndWrapInput_) Create_GenerateAndWrapInput_(AlgorithmSuite m_AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo, EncryptionContext _dafny.Map) GenerateAndWrapInput { + return GenerateAndWrapInput{GenerateAndWrapInput_GenerateAndWrapInput{AlgorithmSuite, EncryptionContext}} +} + +func (_this GenerateAndWrapInput) Is_GenerateAndWrapInput() bool { + _, ok := _this.Get_().(GenerateAndWrapInput_GenerateAndWrapInput) + return ok +} + +func (CompanionStruct_GenerateAndWrapInput_) Default() GenerateAndWrapInput { + return Companion_GenerateAndWrapInput_.Create_GenerateAndWrapInput_(m_AwsCryptographyMaterialProvidersTypes.Companion_AlgorithmSuiteInfo_.Default(), _dafny.EmptyMap) +} + +func (_this GenerateAndWrapInput) Dtor_algorithmSuite() m_AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo { + return _this.Get_().(GenerateAndWrapInput_GenerateAndWrapInput).AlgorithmSuite +} + +func (_this GenerateAndWrapInput) Dtor_encryptionContext() _dafny.Map { + return _this.Get_().(GenerateAndWrapInput_GenerateAndWrapInput).EncryptionContext +} + +func (_this GenerateAndWrapInput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case GenerateAndWrapInput_GenerateAndWrapInput: + { + return "MaterialWrapping.GenerateAndWrapInput.GenerateAndWrapInput" + "(" + _dafny.String(data.AlgorithmSuite) + ", " + _dafny.String(data.EncryptionContext) + ")" + } + default: + { + return "" + } + } +} + +func (_this GenerateAndWrapInput) Equals(other GenerateAndWrapInput) bool { + switch data1 := _this.Get_().(type) { + case GenerateAndWrapInput_GenerateAndWrapInput: + { + data2, ok := other.Get_().(GenerateAndWrapInput_GenerateAndWrapInput) + return ok && data1.AlgorithmSuite.Equals(data2.AlgorithmSuite) && data1.EncryptionContext.Equals(data2.EncryptionContext) + } + default: + { + return false // unexpected + } + } +} + +func (_this GenerateAndWrapInput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(GenerateAndWrapInput) + return ok && _this.Equals(typed) +} + +func Type_GenerateAndWrapInput_() _dafny.TypeDescriptor { + return type_GenerateAndWrapInput_{} +} + +type type_GenerateAndWrapInput_ struct { +} + +func (_this type_GenerateAndWrapInput_) Default() interface{} { + return Companion_GenerateAndWrapInput_.Default() +} + +func (_this type_GenerateAndWrapInput_) String() string { + return "MaterialWrapping.GenerateAndWrapInput" +} +func (_this GenerateAndWrapInput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = GenerateAndWrapInput{} + +// End of datatype GenerateAndWrapInput + +// Definition of datatype GenerateAndWrapOutput +type GenerateAndWrapOutput struct { + Data_GenerateAndWrapOutput_ +} + +func (_this GenerateAndWrapOutput) Get_() Data_GenerateAndWrapOutput_ { + return _this.Data_GenerateAndWrapOutput_ +} + +type Data_GenerateAndWrapOutput_ interface { + isGenerateAndWrapOutput() +} + +type CompanionStruct_GenerateAndWrapOutput_ struct { +} + +var Companion_GenerateAndWrapOutput_ = CompanionStruct_GenerateAndWrapOutput_{} + +type GenerateAndWrapOutput_GenerateAndWrapOutput struct { + PlaintextMaterial _dafny.Sequence + WrappedMaterial _dafny.Sequence + WrapInfo interface{} +} + +func (GenerateAndWrapOutput_GenerateAndWrapOutput) isGenerateAndWrapOutput() {} + +func (CompanionStruct_GenerateAndWrapOutput_) Create_GenerateAndWrapOutput_(PlaintextMaterial _dafny.Sequence, WrappedMaterial _dafny.Sequence, WrapInfo interface{}) GenerateAndWrapOutput { + return GenerateAndWrapOutput{GenerateAndWrapOutput_GenerateAndWrapOutput{PlaintextMaterial, WrappedMaterial, WrapInfo}} +} + +func (_this GenerateAndWrapOutput) Is_GenerateAndWrapOutput() bool { + _, ok := _this.Get_().(GenerateAndWrapOutput_GenerateAndWrapOutput) + return ok +} + +func (CompanionStruct_GenerateAndWrapOutput_) Default(_default_T interface{}) GenerateAndWrapOutput { + return Companion_GenerateAndWrapOutput_.Create_GenerateAndWrapOutput_(_dafny.EmptySeq, _dafny.EmptySeq, _default_T) +} + +func (_this GenerateAndWrapOutput) Dtor_plaintextMaterial() _dafny.Sequence { + return _this.Get_().(GenerateAndWrapOutput_GenerateAndWrapOutput).PlaintextMaterial +} + +func (_this GenerateAndWrapOutput) Dtor_wrappedMaterial() _dafny.Sequence { + return _this.Get_().(GenerateAndWrapOutput_GenerateAndWrapOutput).WrappedMaterial +} + +func (_this GenerateAndWrapOutput) Dtor_wrapInfo() interface{} { + return _this.Get_().(GenerateAndWrapOutput_GenerateAndWrapOutput).WrapInfo +} + +func (_this GenerateAndWrapOutput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case GenerateAndWrapOutput_GenerateAndWrapOutput: + { + return "MaterialWrapping.GenerateAndWrapOutput.GenerateAndWrapOutput" + "(" + _dafny.String(data.PlaintextMaterial) + ", " + _dafny.String(data.WrappedMaterial) + ", " + _dafny.String(data.WrapInfo) + ")" + } + default: + { + return "" + } + } +} + +func (_this GenerateAndWrapOutput) Equals(other GenerateAndWrapOutput) bool { + switch data1 := _this.Get_().(type) { + case GenerateAndWrapOutput_GenerateAndWrapOutput: + { + data2, ok := other.Get_().(GenerateAndWrapOutput_GenerateAndWrapOutput) + return ok && data1.PlaintextMaterial.Equals(data2.PlaintextMaterial) && data1.WrappedMaterial.Equals(data2.WrappedMaterial) && _dafny.AreEqual(data1.WrapInfo, data2.WrapInfo) + } + default: + { + return false // unexpected + } + } +} + +func (_this GenerateAndWrapOutput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(GenerateAndWrapOutput) + return ok && _this.Equals(typed) +} + +func Type_GenerateAndWrapOutput_(Type_T_ _dafny.TypeDescriptor) _dafny.TypeDescriptor { + return type_GenerateAndWrapOutput_{Type_T_} +} + +type type_GenerateAndWrapOutput_ struct { + Type_T_ _dafny.TypeDescriptor +} + +func (_this type_GenerateAndWrapOutput_) Default() interface{} { + Type_T_ := _this.Type_T_ + _ = Type_T_ + return Companion_GenerateAndWrapOutput_.Default(Type_T_.Default()) +} + +func (_this type_GenerateAndWrapOutput_) String() string { + return "MaterialWrapping.GenerateAndWrapOutput" +} +func (_this GenerateAndWrapOutput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = GenerateAndWrapOutput{} + +// End of datatype GenerateAndWrapOutput + +// Definition of datatype WrapInput +type WrapInput struct { + Data_WrapInput_ +} + +func (_this WrapInput) Get_() Data_WrapInput_ { + return _this.Data_WrapInput_ +} + +type Data_WrapInput_ interface { + isWrapInput() +} + +type CompanionStruct_WrapInput_ struct { +} + +var Companion_WrapInput_ = CompanionStruct_WrapInput_{} + +type WrapInput_WrapInput struct { + PlaintextMaterial _dafny.Sequence + AlgorithmSuite m_AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo + EncryptionContext _dafny.Map +} + +func (WrapInput_WrapInput) isWrapInput() {} + +func (CompanionStruct_WrapInput_) Create_WrapInput_(PlaintextMaterial _dafny.Sequence, AlgorithmSuite m_AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo, EncryptionContext _dafny.Map) WrapInput { + return WrapInput{WrapInput_WrapInput{PlaintextMaterial, AlgorithmSuite, EncryptionContext}} +} + +func (_this WrapInput) Is_WrapInput() bool { + _, ok := _this.Get_().(WrapInput_WrapInput) + return ok +} + +func (CompanionStruct_WrapInput_) Default() WrapInput { + return Companion_WrapInput_.Create_WrapInput_(_dafny.EmptySeq, m_AwsCryptographyMaterialProvidersTypes.Companion_AlgorithmSuiteInfo_.Default(), _dafny.EmptyMap) +} + +func (_this WrapInput) Dtor_plaintextMaterial() _dafny.Sequence { + return _this.Get_().(WrapInput_WrapInput).PlaintextMaterial +} + +func (_this WrapInput) Dtor_algorithmSuite() m_AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo { + return _this.Get_().(WrapInput_WrapInput).AlgorithmSuite +} + +func (_this WrapInput) Dtor_encryptionContext() _dafny.Map { + return _this.Get_().(WrapInput_WrapInput).EncryptionContext +} + +func (_this WrapInput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case WrapInput_WrapInput: + { + return "MaterialWrapping.WrapInput.WrapInput" + "(" + _dafny.String(data.PlaintextMaterial) + ", " + _dafny.String(data.AlgorithmSuite) + ", " + _dafny.String(data.EncryptionContext) + ")" + } + default: + { + return "" + } + } +} + +func (_this WrapInput) Equals(other WrapInput) bool { + switch data1 := _this.Get_().(type) { + case WrapInput_WrapInput: + { + data2, ok := other.Get_().(WrapInput_WrapInput) + return ok && data1.PlaintextMaterial.Equals(data2.PlaintextMaterial) && data1.AlgorithmSuite.Equals(data2.AlgorithmSuite) && data1.EncryptionContext.Equals(data2.EncryptionContext) + } + default: + { + return false // unexpected + } + } +} + +func (_this WrapInput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(WrapInput) + return ok && _this.Equals(typed) +} + +func Type_WrapInput_() _dafny.TypeDescriptor { + return type_WrapInput_{} +} + +type type_WrapInput_ struct { +} + +func (_this type_WrapInput_) Default() interface{} { + return Companion_WrapInput_.Default() +} + +func (_this type_WrapInput_) String() string { + return "MaterialWrapping.WrapInput" +} +func (_this WrapInput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = WrapInput{} + +// End of datatype WrapInput + +// Definition of datatype WrapOutput +type WrapOutput struct { + Data_WrapOutput_ +} + +func (_this WrapOutput) Get_() Data_WrapOutput_ { + return _this.Data_WrapOutput_ +} + +type Data_WrapOutput_ interface { + isWrapOutput() +} + +type CompanionStruct_WrapOutput_ struct { +} + +var Companion_WrapOutput_ = CompanionStruct_WrapOutput_{} + +type WrapOutput_WrapOutput struct { + WrappedMaterial _dafny.Sequence + WrapInfo interface{} +} + +func (WrapOutput_WrapOutput) isWrapOutput() {} + +func (CompanionStruct_WrapOutput_) Create_WrapOutput_(WrappedMaterial _dafny.Sequence, WrapInfo interface{}) WrapOutput { + return WrapOutput{WrapOutput_WrapOutput{WrappedMaterial, WrapInfo}} +} + +func (_this WrapOutput) Is_WrapOutput() bool { + _, ok := _this.Get_().(WrapOutput_WrapOutput) + return ok +} + +func (CompanionStruct_WrapOutput_) Default(_default_T interface{}) WrapOutput { + return Companion_WrapOutput_.Create_WrapOutput_(_dafny.EmptySeq, _default_T) +} + +func (_this WrapOutput) Dtor_wrappedMaterial() _dafny.Sequence { + return _this.Get_().(WrapOutput_WrapOutput).WrappedMaterial +} + +func (_this WrapOutput) Dtor_wrapInfo() interface{} { + return _this.Get_().(WrapOutput_WrapOutput).WrapInfo +} + +func (_this WrapOutput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case WrapOutput_WrapOutput: + { + return "MaterialWrapping.WrapOutput.WrapOutput" + "(" + _dafny.String(data.WrappedMaterial) + ", " + _dafny.String(data.WrapInfo) + ")" + } + default: + { + return "" + } + } +} + +func (_this WrapOutput) Equals(other WrapOutput) bool { + switch data1 := _this.Get_().(type) { + case WrapOutput_WrapOutput: + { + data2, ok := other.Get_().(WrapOutput_WrapOutput) + return ok && data1.WrappedMaterial.Equals(data2.WrappedMaterial) && _dafny.AreEqual(data1.WrapInfo, data2.WrapInfo) + } + default: + { + return false // unexpected + } + } +} + +func (_this WrapOutput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(WrapOutput) + return ok && _this.Equals(typed) +} + +func Type_WrapOutput_(Type_T_ _dafny.TypeDescriptor) _dafny.TypeDescriptor { + return type_WrapOutput_{Type_T_} +} + +type type_WrapOutput_ struct { + Type_T_ _dafny.TypeDescriptor +} + +func (_this type_WrapOutput_) Default() interface{} { + Type_T_ := _this.Type_T_ + _ = Type_T_ + return Companion_WrapOutput_.Default(Type_T_.Default()) +} + +func (_this type_WrapOutput_) String() string { + return "MaterialWrapping.WrapOutput" +} +func (_this WrapOutput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = WrapOutput{} + +// End of datatype WrapOutput + +// Definition of datatype UnwrapInput +type UnwrapInput struct { + Data_UnwrapInput_ +} + +func (_this UnwrapInput) Get_() Data_UnwrapInput_ { + return _this.Data_UnwrapInput_ +} + +type Data_UnwrapInput_ interface { + isUnwrapInput() +} + +type CompanionStruct_UnwrapInput_ struct { +} + +var Companion_UnwrapInput_ = CompanionStruct_UnwrapInput_{} + +type UnwrapInput_UnwrapInput struct { + WrappedMaterial _dafny.Sequence + AlgorithmSuite m_AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo + EncryptionContext _dafny.Map +} + +func (UnwrapInput_UnwrapInput) isUnwrapInput() {} + +func (CompanionStruct_UnwrapInput_) Create_UnwrapInput_(WrappedMaterial _dafny.Sequence, AlgorithmSuite m_AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo, EncryptionContext _dafny.Map) UnwrapInput { + return UnwrapInput{UnwrapInput_UnwrapInput{WrappedMaterial, AlgorithmSuite, EncryptionContext}} +} + +func (_this UnwrapInput) Is_UnwrapInput() bool { + _, ok := _this.Get_().(UnwrapInput_UnwrapInput) + return ok +} + +func (CompanionStruct_UnwrapInput_) Default() UnwrapInput { + return Companion_UnwrapInput_.Create_UnwrapInput_(_dafny.EmptySeq, m_AwsCryptographyMaterialProvidersTypes.Companion_AlgorithmSuiteInfo_.Default(), _dafny.EmptyMap) +} + +func (_this UnwrapInput) Dtor_wrappedMaterial() _dafny.Sequence { + return _this.Get_().(UnwrapInput_UnwrapInput).WrappedMaterial +} + +func (_this UnwrapInput) Dtor_algorithmSuite() m_AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo { + return _this.Get_().(UnwrapInput_UnwrapInput).AlgorithmSuite +} + +func (_this UnwrapInput) Dtor_encryptionContext() _dafny.Map { + return _this.Get_().(UnwrapInput_UnwrapInput).EncryptionContext +} + +func (_this UnwrapInput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case UnwrapInput_UnwrapInput: + { + return "MaterialWrapping.UnwrapInput.UnwrapInput" + "(" + _dafny.String(data.WrappedMaterial) + ", " + _dafny.String(data.AlgorithmSuite) + ", " + _dafny.String(data.EncryptionContext) + ")" + } + default: + { + return "" + } + } +} + +func (_this UnwrapInput) Equals(other UnwrapInput) bool { + switch data1 := _this.Get_().(type) { + case UnwrapInput_UnwrapInput: + { + data2, ok := other.Get_().(UnwrapInput_UnwrapInput) + return ok && data1.WrappedMaterial.Equals(data2.WrappedMaterial) && data1.AlgorithmSuite.Equals(data2.AlgorithmSuite) && data1.EncryptionContext.Equals(data2.EncryptionContext) + } + default: + { + return false // unexpected + } + } +} + +func (_this UnwrapInput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(UnwrapInput) + return ok && _this.Equals(typed) +} + +func Type_UnwrapInput_() _dafny.TypeDescriptor { + return type_UnwrapInput_{} +} + +type type_UnwrapInput_ struct { +} + +func (_this type_UnwrapInput_) Default() interface{} { + return Companion_UnwrapInput_.Default() +} + +func (_this type_UnwrapInput_) String() string { + return "MaterialWrapping.UnwrapInput" +} +func (_this UnwrapInput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = UnwrapInput{} + +// End of datatype UnwrapInput + +// Definition of datatype UnwrapOutput +type UnwrapOutput struct { + Data_UnwrapOutput_ +} + +func (_this UnwrapOutput) Get_() Data_UnwrapOutput_ { + return _this.Data_UnwrapOutput_ +} + +type Data_UnwrapOutput_ interface { + isUnwrapOutput() +} + +type CompanionStruct_UnwrapOutput_ struct { +} + +var Companion_UnwrapOutput_ = CompanionStruct_UnwrapOutput_{} + +type UnwrapOutput_UnwrapOutput struct { + UnwrappedMaterial _dafny.Sequence + UnwrapInfo interface{} +} + +func (UnwrapOutput_UnwrapOutput) isUnwrapOutput() {} + +func (CompanionStruct_UnwrapOutput_) Create_UnwrapOutput_(UnwrappedMaterial _dafny.Sequence, UnwrapInfo interface{}) UnwrapOutput { + return UnwrapOutput{UnwrapOutput_UnwrapOutput{UnwrappedMaterial, UnwrapInfo}} +} + +func (_this UnwrapOutput) Is_UnwrapOutput() bool { + _, ok := _this.Get_().(UnwrapOutput_UnwrapOutput) + return ok +} + +func (CompanionStruct_UnwrapOutput_) Default(_default_T interface{}) UnwrapOutput { + return Companion_UnwrapOutput_.Create_UnwrapOutput_(_dafny.EmptySeq, _default_T) +} + +func (_this UnwrapOutput) Dtor_unwrappedMaterial() _dafny.Sequence { + return _this.Get_().(UnwrapOutput_UnwrapOutput).UnwrappedMaterial +} + +func (_this UnwrapOutput) Dtor_unwrapInfo() interface{} { + return _this.Get_().(UnwrapOutput_UnwrapOutput).UnwrapInfo +} + +func (_this UnwrapOutput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case UnwrapOutput_UnwrapOutput: + { + return "MaterialWrapping.UnwrapOutput.UnwrapOutput" + "(" + _dafny.String(data.UnwrappedMaterial) + ", " + _dafny.String(data.UnwrapInfo) + ")" + } + default: + { + return "" + } + } +} + +func (_this UnwrapOutput) Equals(other UnwrapOutput) bool { + switch data1 := _this.Get_().(type) { + case UnwrapOutput_UnwrapOutput: + { + data2, ok := other.Get_().(UnwrapOutput_UnwrapOutput) + return ok && data1.UnwrappedMaterial.Equals(data2.UnwrappedMaterial) && _dafny.AreEqual(data1.UnwrapInfo, data2.UnwrapInfo) + } + default: + { + return false // unexpected + } + } +} + +func (_this UnwrapOutput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(UnwrapOutput) + return ok && _this.Equals(typed) +} + +func Type_UnwrapOutput_(Type_T_ _dafny.TypeDescriptor) _dafny.TypeDescriptor { + return type_UnwrapOutput_{Type_T_} +} + +type type_UnwrapOutput_ struct { + Type_T_ _dafny.TypeDescriptor +} + +func (_this type_UnwrapOutput_) Default() interface{} { + Type_T_ := _this.Type_T_ + _ = Type_T_ + return Companion_UnwrapOutput_.Default(Type_T_.Default()) +} + +func (_this type_UnwrapOutput_) String() string { + return "MaterialWrapping.UnwrapOutput" +} +func (_this UnwrapOutput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = UnwrapOutput{} + +// End of datatype UnwrapOutput + +// Definition of trait GenerateAndWrapMaterial +type GenerateAndWrapMaterial interface { + String() string + Invoke(a interface{}) interface{} +} +type CompanionStruct_GenerateAndWrapMaterial_ struct { + TraitID_ *_dafny.TraitID +} + +var Companion_GenerateAndWrapMaterial_ = CompanionStruct_GenerateAndWrapMaterial_{ + TraitID_: &_dafny.TraitID{}, +} + +func (CompanionStruct_GenerateAndWrapMaterial_) CastTo_(x interface{}) GenerateAndWrapMaterial { + var t GenerateAndWrapMaterial + t, _ = x.(GenerateAndWrapMaterial) + return t +} + +// End of trait GenerateAndWrapMaterial + +// Definition of trait WrapMaterial +type WrapMaterial interface { + String() string + Invoke(a interface{}) interface{} +} +type CompanionStruct_WrapMaterial_ struct { + TraitID_ *_dafny.TraitID +} + +var Companion_WrapMaterial_ = CompanionStruct_WrapMaterial_{ + TraitID_: &_dafny.TraitID{}, +} + +func (CompanionStruct_WrapMaterial_) CastTo_(x interface{}) WrapMaterial { + var t WrapMaterial + t, _ = x.(WrapMaterial) + return t +} + +// End of trait WrapMaterial + +// Definition of trait UnwrapMaterial +type UnwrapMaterial interface { + String() string + Invoke(a interface{}) interface{} +} +type CompanionStruct_UnwrapMaterial_ struct { + TraitID_ *_dafny.TraitID +} + +var Companion_UnwrapMaterial_ = CompanionStruct_UnwrapMaterial_{ + TraitID_: &_dafny.TraitID{}, +} + +func (CompanionStruct_UnwrapMaterial_) CastTo_(x interface{}) UnwrapMaterial { + var t UnwrapMaterial + t, _ = x.(UnwrapMaterial) + return t +} + +// End of trait UnwrapMaterial diff --git a/customer-preview/mpl/Materials/Materials.go b/customer-preview/mpl/Materials/Materials.go new file mode 100644 index 000000000..fc9e96456 --- /dev/null +++ b/customer-preview/mpl/Materials/Materials.go @@ -0,0 +1,644 @@ +// Package Materials +// Dafny module Materials compiled into Go + +package Materials + +import ( + os "os" + + m_ComAmazonawsDynamodbTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/ComAmazonawsDynamodbTypes" + m_Com_Amazonaws_Dynamodb "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/Com_Amazonaws_Dynamodb" + m_ComAmazonawsKmsTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/ComAmazonawsKmsTypes" + m_Com_Amazonaws_Kms "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/Com_Amazonaws_Kms" + m_AlgorithmSuites "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AlgorithmSuites" + m_AwsArnParsing "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsArnParsing" + m_AwsCryptographyKeyStoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreOperations" + m_AwsCryptographyKeyStoreTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreTypes" + m_AwsCryptographyMaterialProvidersTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersTypes" + m_AwsKmsMrkMatchForDecrypt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkMatchForDecrypt" + m_AwsKmsUtils "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsUtils" + m_CreateKeyStoreTable "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeyStoreTable" + m_CreateKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeys" + m_DDBKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DDBKeystoreOperations" + m_GetKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/GetKeys" + m_KMSKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KMSKeystoreOperations" + m_KeyStore "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStore" + m_KeyStoreErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStoreErrorMessages" + m_KmsArn "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KmsArn" + m_Structure "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Structure" + m_AtomicPrimitives "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AtomicPrimitives" + m_AwsCryptographyPrimitivesOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesOperations" + m_AwsCryptographyPrimitivesTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesTypes" + m_Digest "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Digest" + m_HKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/HKDF" + m_KdfCtr "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/KdfCtr" + m_Random "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Random" + m_WrappedHKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHKDF" + m_WrappedHMAC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHMAC" + m_Actions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Actions" + m_Base64 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64" + m_Base64Lemmas "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64Lemmas" + m_BoundedInts "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/BoundedInts" + m_DivInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternals" + m_DivInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternalsNonlinear" + m_DivMod "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivMod" + m_FileIO "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FileIO" + m_FloatCompare "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FloatCompare" + m_Functions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Functions" + m_GeneralInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GeneralInternals" + m_GetOpt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GetOpt" + m_HexStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/HexStrings" + m_Logarithm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Logarithm" + m__Math "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Math_" + m_ModInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternals" + m_ModInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternalsNonlinear" + m_Mul "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Mul" + m_MulInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternals" + m_MulInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternalsNonlinear" + m_Power "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Power" + m_Relations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Relations" + m_Seq "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq" + m_Seq_MergeSort "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq_MergeSort" + m_Sorting "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Sorting" + m_StandardLibrary "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary" + m_StandardLibraryInterop "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibraryInterop" + m_StandardLibrary_Sequence "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_Sequence" + m_StandardLibrary_String "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_String" + m_StandardLibrary_UInt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_UInt" + m_Streams "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Streams" + m_UTF8 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UTF8" + m_UnicodeStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UnicodeStrings" + m__Unicode "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Unicode_" + m_Utf16EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf16EncodingForm" + m_Utf8EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf8EncodingForm" + m_Wrappers "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers" + m__System "github.com/dafny-lang/DafnyRuntimeGo/v4/System_" + _dafny "github.com/dafny-lang/DafnyRuntimeGo/v4/dafny" +) + +var _ = os.Args +var _ _dafny.Dummy__ +var _ m__System.Dummy__ +var _ m_Wrappers.Dummy__ +var _ m_BoundedInts.Dummy__ +var _ m_StandardLibrary_UInt.Dummy__ +var _ m_StandardLibrary_Sequence.Dummy__ +var _ m_StandardLibrary_String.Dummy__ +var _ m_StandardLibrary.Dummy__ +var _ m_AwsCryptographyPrimitivesTypes.Dummy__ +var _ m_Random.Dummy__ +var _ m_Digest.Dummy__ +var _ m_WrappedHMAC.Dummy__ +var _ m_HKDF.Dummy__ +var _ m_WrappedHKDF.Dummy__ +var _ m_KdfCtr.Dummy__ +var _ m_AwsCryptographyPrimitivesOperations.Dummy__ +var _ m_AtomicPrimitives.Dummy__ +var _ m_ComAmazonawsDynamodbTypes.Dummy__ +var _ m_ComAmazonawsKmsTypes.Dummy__ +var _ m_Relations.Dummy__ +var _ m_Seq_MergeSort.Dummy__ +var _ m__Math.Dummy__ +var _ m_Seq.Dummy__ +var _ m__Unicode.Dummy__ +var _ m_Functions.Dummy__ +var _ m_Utf8EncodingForm.Dummy__ +var _ m_Utf16EncodingForm.Dummy__ +var _ m_UnicodeStrings.Dummy__ +var _ m_FileIO.Dummy__ +var _ m_GeneralInternals.Dummy__ +var _ m_MulInternalsNonlinear.Dummy__ +var _ m_MulInternals.Dummy__ +var _ m_Mul.Dummy__ +var _ m_ModInternalsNonlinear.Dummy__ +var _ m_DivInternalsNonlinear.Dummy__ +var _ m_ModInternals.Dummy__ +var _ m_DivInternals.Dummy__ +var _ m_DivMod.Dummy__ +var _ m_Power.Dummy__ +var _ m_Logarithm.Dummy__ +var _ m_StandardLibraryInterop.Dummy__ +var _ m_Streams.Dummy__ +var _ m_Sorting.Dummy__ +var _ m_HexStrings.Dummy__ +var _ m_GetOpt.Dummy__ +var _ m_FloatCompare.Dummy__ +var _ m_Base64.Dummy__ +var _ m_Base64Lemmas.Dummy__ +var _ m_Actions.Dummy__ +var _ m_AwsCryptographyKeyStoreTypes.Dummy__ +var _ m_AwsCryptographyMaterialProvidersTypes.Dummy__ +var _ m_AwsArnParsing.Dummy__ +var _ m_AwsKmsMrkMatchForDecrypt.Dummy__ +var _ m_AwsKmsUtils.Dummy__ +var _ m_KeyStoreErrorMessages.Dummy__ +var _ m_KmsArn.Dummy__ +var _ m_Structure.Dummy__ +var _ m_KMSKeystoreOperations.Dummy__ +var _ m_DDBKeystoreOperations.Dummy__ +var _ m_CreateKeys.Dummy__ +var _ m_CreateKeyStoreTable.Dummy__ +var _ m_GetKeys.Dummy__ +var _ m_AwsCryptographyKeyStoreOperations.Dummy__ +var _ m_Com_Amazonaws_Kms.Dummy__ +var _ m_Com_Amazonaws_Dynamodb.Dummy__ +var _ m_KeyStore.Dummy__ +var _ m_AlgorithmSuites.Dummy__ + +type Dummy__ struct{} + +// Definition of class Default__ +type Default__ struct { + dummy byte +} + +func New_Default___() *Default__ { + _this := Default__{} + + return &_this +} + +type CompanionStruct_Default___ struct { +} + +var Companion_Default___ = CompanionStruct_Default___{} + +func (_this *Default__) Equals(other *Default__) bool { + return _this == other +} + +func (_this *Default__) EqualsGeneric(x interface{}) bool { + other, ok := x.(*Default__) + return ok && _this.Equals(other) +} + +func (*Default__) String() string { + return "Materials.Default__" +} +func (_this *Default__) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = &Default__{} + +func (_static *CompanionStruct_Default___) InitializeEncryptionMaterials(input m_AwsCryptographyMaterialProvidersTypes.InitializeEncryptionMaterialsInput) m_Wrappers.Result { + var _0_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need(!((input).Dtor_encryptionContext()).Contains(Companion_Default___.EC__PUBLIC__KEY__FIELD()), m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.SeqOfString("Encryption Context "))) + _ = _0_valueOrError0 + if (_0_valueOrError0).IsFailure() { + return (_0_valueOrError0).PropagateFailure() + } else { + var _1_valueOrError1 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need(_dafny.Quantifier(((input).Dtor_requiredEncryptionContextKeys()).UniqueElements(), true, func(_forall_var_0 _dafny.Sequence) bool { + var _2_key _dafny.Sequence + _2_key = interface{}(_forall_var_0).(_dafny.Sequence) + if m_UTF8.Companion_ValidUTF8Bytes_.Is_(_2_key) { + return !(_dafny.Companion_Sequence_.Contains((input).Dtor_requiredEncryptionContextKeys(), _2_key)) || (((input).Dtor_encryptionContext()).Contains(_2_key)) + } else { + return true + } + }), m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.SeqOfString("Required encryption context keys do not exist in provided encryption context."))) + _ = _1_valueOrError1 + if (_1_valueOrError1).IsFailure() { + return (_1_valueOrError1).PropagateFailure() + } else { + var _3_suite m_AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo = m_AlgorithmSuites.Companion_Default___.GetSuite((input).Dtor_algorithmSuiteId()) + _ = _3_suite + var _4_valueOrError2 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need((((_3_suite).Dtor_signature()).Is_ECDSA()) == ((((input).Dtor_signingKey()).Is_Some()) && (((input).Dtor_verificationKey()).Is_Some())), m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.SeqOfString("Missing signature key for signed suite."))) + _ = _4_valueOrError2 + if (_4_valueOrError2).IsFailure() { + return (_4_valueOrError2).PropagateFailure() + } else { + var _5_valueOrError3 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need((((_3_suite).Dtor_signature()).Is_None()) == ((((input).Dtor_signingKey()).Is_None()) && (((input).Dtor_verificationKey()).Is_None())), m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.SeqOfString("Signature key not allowed for non-signed suites."))) + _ = _5_valueOrError3 + if (_5_valueOrError3).IsFailure() { + return (_5_valueOrError3).PropagateFailure() + } else { + var _6_valueOrError4 m_Wrappers.Result = func() m_Wrappers.Result { + var _source0 m_AwsCryptographyMaterialProvidersTypes.SignatureAlgorithm = (_3_suite).Dtor_signature() + _ = _source0 + { + if _source0.Is_ECDSA() { + var _7_curve m_AwsCryptographyMaterialProvidersTypes.ECDSA = _source0.Get_().(m_AwsCryptographyMaterialProvidersTypes.SignatureAlgorithm_ECDSA).ECDSA + _ = _7_curve + var _8_valueOrError5 m_Wrappers.Result = (m_UTF8.Encode(m_Base64.Companion_Default___.Encode(((input).Dtor_verificationKey()).Dtor_value().(_dafny.Sequence)))).MapFailure(func(coer29 func(_dafny.Sequence) m_AwsCryptographyMaterialProvidersTypes.Error) func(interface{}) interface{} { + return func(arg29 interface{}) interface{} { + return coer29(arg29.(_dafny.Sequence)) + } + }(func(_9_e _dafny.Sequence) m_AwsCryptographyMaterialProvidersTypes.Error { + return m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_9_e) + })) + _ = _8_valueOrError5 + if (_8_valueOrError5).IsFailure() { + return (_8_valueOrError5).PropagateFailure() + } else { + var _10_enc__vk _dafny.Sequence = (_8_valueOrError5).Extract().(_dafny.Sequence) + _ = _10_enc__vk + return m_Wrappers.Companion_Result_.Create_Success_(((input).Dtor_encryptionContext()).Update(Companion_Default___.EC__PUBLIC__KEY__FIELD(), _10_enc__vk)) + } + } + } + { + var _11_None m_AwsCryptographyMaterialProvidersTypes.SignatureAlgorithm = _source0 + _ = _11_None + return m_Wrappers.Companion_Result_.Create_Success_((input).Dtor_encryptionContext()) + } + }() + _ = _6_valueOrError4 + if (_6_valueOrError4).IsFailure() { + return (_6_valueOrError4).PropagateFailure() + } else { + var _12_encryptionContext _dafny.Map = (_6_valueOrError4).Extract().(_dafny.Map) + _ = _12_encryptionContext + return m_Wrappers.Companion_Result_.Create_Success_(m_AwsCryptographyMaterialProvidersTypes.Companion_EncryptionMaterials_.Create_EncryptionMaterials_(_3_suite, _12_encryptionContext, _dafny.SeqOf(), (input).Dtor_requiredEncryptionContextKeys(), m_Wrappers.Companion_Option_.Create_None_(), (input).Dtor_signingKey(), (func() m_Wrappers.Option { + if ((_3_suite).Dtor_symmetricSignature()).Is_None() { + return m_Wrappers.Companion_Option_.Create_None_() + } + return m_Wrappers.Companion_Option_.Create_Some_(_dafny.SeqOf()) + })())) + } + } + } + } + } +} +func (_static *CompanionStruct_Default___) InitializeDecryptionMaterials(input m_AwsCryptographyMaterialProvidersTypes.InitializeDecryptionMaterialsInput) m_Wrappers.Result { + var _0_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need(_dafny.Quantifier(((input).Dtor_requiredEncryptionContextKeys()).UniqueElements(), true, func(_forall_var_0 _dafny.Sequence) bool { + var _1_key _dafny.Sequence + _1_key = interface{}(_forall_var_0).(_dafny.Sequence) + if m_UTF8.Companion_ValidUTF8Bytes_.Is_(_1_key) { + return !(_dafny.Companion_Sequence_.Contains((input).Dtor_requiredEncryptionContextKeys(), _1_key)) || (((input).Dtor_encryptionContext()).Contains(_1_key)) + } else { + return true + } + }), m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.SeqOfString("Reporoduced encryption context key did not exist in provided encryption context."))) + _ = _0_valueOrError0 + if (_0_valueOrError0).IsFailure() { + return (_0_valueOrError0).PropagateFailure() + } else { + var _2_suite m_AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo = m_AlgorithmSuites.Companion_Default___.GetSuite((input).Dtor_algorithmSuiteId()) + _ = _2_suite + var _3_valueOrError1 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need((((_2_suite).Dtor_signature()).Is_ECDSA()) == (((input).Dtor_encryptionContext()).Contains(Companion_Default___.EC__PUBLIC__KEY__FIELD())), m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.SeqOfString("Encryption Context missing verification key."))) + _ = _3_valueOrError1 + if (_3_valueOrError1).IsFailure() { + return (_3_valueOrError1).PropagateFailure() + } else { + var _4_valueOrError2 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need((((_2_suite).Dtor_signature()).Is_None()) == (!((input).Dtor_encryptionContext()).Contains(Companion_Default___.EC__PUBLIC__KEY__FIELD())), m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.SeqOfString("Verification key can not exist in non-signed Algorithm Suites."))) + _ = _4_valueOrError2 + if (_4_valueOrError2).IsFailure() { + return (_4_valueOrError2).PropagateFailure() + } else { + var _5_valueOrError3 m_Wrappers.Result = Companion_Default___.DecodeVerificationKey((input).Dtor_encryptionContext()) + _ = _5_valueOrError3 + if (_5_valueOrError3).IsFailure() { + return (_5_valueOrError3).PropagateFailure() + } else { + var _6_verificationKey m_Wrappers.Option = (_5_valueOrError3).Extract().(m_Wrappers.Option) + _ = _6_verificationKey + return m_Wrappers.Companion_Result_.Create_Success_(m_AwsCryptographyMaterialProvidersTypes.Companion_DecryptionMaterials_.Create_DecryptionMaterials_(_2_suite, (input).Dtor_encryptionContext(), (input).Dtor_requiredEncryptionContextKeys(), m_Wrappers.Companion_Option_.Create_None_(), _6_verificationKey, m_Wrappers.Companion_Option_.Create_None_())) + } + } + } + } +} +func (_static *CompanionStruct_Default___) DecodeVerificationKey(encryptionContext _dafny.Map) m_Wrappers.Result { + if (encryptionContext).Contains(Companion_Default___.EC__PUBLIC__KEY__FIELD()) { + var _0_utf8Key _dafny.Sequence = (encryptionContext).Get(Companion_Default___.EC__PUBLIC__KEY__FIELD()).(_dafny.Sequence) + _ = _0_utf8Key + var _1_valueOrError0 m_Wrappers.Result = (m_UTF8.Decode(_0_utf8Key)).MapFailure(func(coer30 func(_dafny.Sequence) m_AwsCryptographyMaterialProvidersTypes.Error) func(interface{}) interface{} { + return func(arg30 interface{}) interface{} { + return coer30(arg30.(_dafny.Sequence)) + } + }(func(_2_e _dafny.Sequence) m_AwsCryptographyMaterialProvidersTypes.Error { + return m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_2_e) + })) + _ = _1_valueOrError0 + if (_1_valueOrError0).IsFailure() { + return (_1_valueOrError0).PropagateFailure() + } else { + var _3_base64Key _dafny.Sequence = (_1_valueOrError0).Extract().(_dafny.Sequence) + _ = _3_base64Key + var _4_valueOrError1 m_Wrappers.Result = (m_Base64.Companion_Default___.Decode(_3_base64Key)).MapFailure(func(coer31 func(_dafny.Sequence) m_AwsCryptographyMaterialProvidersTypes.Error) func(interface{}) interface{} { + return func(arg31 interface{}) interface{} { + return coer31(arg31.(_dafny.Sequence)) + } + }(func(_5_e _dafny.Sequence) m_AwsCryptographyMaterialProvidersTypes.Error { + return m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_5_e) + })) + _ = _4_valueOrError1 + if (_4_valueOrError1).IsFailure() { + return (_4_valueOrError1).PropagateFailure() + } else { + var _6_key _dafny.Sequence = (_4_valueOrError1).Extract().(_dafny.Sequence) + _ = _6_key + return m_Wrappers.Companion_Result_.Create_Success_(m_Wrappers.Companion_Option_.Create_Some_(_6_key)) + } + } + } else { + return m_Wrappers.Companion_Result_.Create_Success_(m_Wrappers.Companion_Option_.Create_None_()) + } +} +func (_static *CompanionStruct_Default___) ValidEncryptionMaterialsTransition(oldMat m_AwsCryptographyMaterialProvidersTypes.EncryptionMaterials, newMat m_AwsCryptographyMaterialProvidersTypes.EncryptionMaterials) bool { + return ((((((((((((newMat).Dtor_algorithmSuite()).Equals((oldMat).Dtor_algorithmSuite())) && (((newMat).Dtor_encryptionContext()).Equals((oldMat).Dtor_encryptionContext()))) && (_dafny.Companion_Sequence_.Equal((newMat).Dtor_requiredEncryptionContextKeys(), (oldMat).Dtor_requiredEncryptionContextKeys()))) && (((newMat).Dtor_signingKey()).Equals((oldMat).Dtor_signingKey()))) && (((((oldMat).Dtor_plaintextDataKey()).Is_None()) && (((newMat).Dtor_plaintextDataKey()).Is_Some())) || (((oldMat).Dtor_plaintextDataKey()).Equals((newMat).Dtor_plaintextDataKey())))) && (((newMat).Dtor_plaintextDataKey()).Is_Some())) && ((_dafny.IntOfUint32(((oldMat).Dtor_encryptedDataKeys()).Cardinality())).Cmp(_dafny.IntOfUint32(((newMat).Dtor_encryptedDataKeys()).Cardinality())) <= 0)) && ((_dafny.MultiSetFromSeq((oldMat).Dtor_encryptedDataKeys())).IsSubsetOf(_dafny.MultiSetFromSeq((newMat).Dtor_encryptedDataKeys())))) && (!(!((((oldMat).Dtor_algorithmSuite()).Dtor_symmetricSignature()).Is_None())) || (((((newMat).Dtor_symmetricSigningKeys()).Is_Some()) && ((((oldMat).Dtor_symmetricSigningKeys()).Is_Some()) || ((((oldMat).Dtor_symmetricSigningKeys()).Is_None()) && ((_dafny.IntOfUint32(((oldMat).Dtor_encryptedDataKeys()).Cardinality())).Sign() == 0)))) && ((_dafny.MultiSetFromSeq(((oldMat).Dtor_symmetricSigningKeys()).UnwrapOr(_dafny.SeqOf()).(_dafny.Sequence))).IsSubsetOf(_dafny.MultiSetFromSeq(((newMat).Dtor_symmetricSigningKeys()).Dtor_value().(_dafny.Sequence))))))) && (Companion_Default___.ValidEncryptionMaterials(oldMat))) && (Companion_Default___.ValidEncryptionMaterials(newMat)) +} +func (_static *CompanionStruct_Default___) ValidEncryptionMaterials(encryptionMaterials m_AwsCryptographyMaterialProvidersTypes.EncryptionMaterials) bool { + var _pat_let_tv0 = encryptionMaterials + _ = _pat_let_tv0 + var _pat_let_tv1 = encryptionMaterials + _ = _pat_let_tv1 + var _pat_let_tv2 = encryptionMaterials + _ = _pat_let_tv2 + var _pat_let_tv3 = encryptionMaterials + _ = _pat_let_tv3 + var _pat_let_tv4 = encryptionMaterials + _ = _pat_let_tv4 + var _pat_let_tv5 = encryptionMaterials + _ = _pat_let_tv5 + var _pat_let_tv6 = encryptionMaterials + _ = _pat_let_tv6 + var _pat_let_tv7 = encryptionMaterials + _ = _pat_let_tv7 + var _pat_let_tv8 = encryptionMaterials + _ = _pat_let_tv8 + var _pat_let_tv9 = encryptionMaterials + _ = _pat_let_tv9 + var _pat_let_tv10 = encryptionMaterials + _ = _pat_let_tv10 + var _pat_let_tv11 = encryptionMaterials + _ = _pat_let_tv11 + var _pat_let_tv12 = encryptionMaterials + _ = _pat_let_tv12 + var _pat_let_tv13 = encryptionMaterials + _ = _pat_let_tv13 + var _pat_let_tv14 = encryptionMaterials + _ = _pat_let_tv14 + var _pat_let_tv15 = encryptionMaterials + _ = _pat_let_tv15 + var _pat_let_tv16 = encryptionMaterials + _ = _pat_let_tv16 + var _pat_let_tv17 = encryptionMaterials + _ = _pat_let_tv17 + return (m_AlgorithmSuites.Companion_Default___.AlgorithmSuite_q((encryptionMaterials).Dtor_algorithmSuite())) && (func(_pat_let2_0 m_AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo) bool { + return func(_0_suite m_AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo) bool { + return ((((((((((((_0_suite).Dtor_signature()).Is_None()) == (((_pat_let_tv0).Dtor_signingKey()).Is_None())) && (!(((_pat_let_tv1).Dtor_plaintextDataKey()).Is_Some()) || ((_dafny.IntOfInt32(m_AlgorithmSuites.Companion_Default___.GetEncryptKeyLength(_0_suite))).Cmp(_dafny.IntOfUint32((((_pat_let_tv2).Dtor_plaintextDataKey()).Dtor_value().(_dafny.Sequence)).Cardinality())) == 0))) && (!(((_pat_let_tv3).Dtor_plaintextDataKey()).Is_None()) || ((_dafny.IntOfUint32(((_pat_let_tv4).Dtor_encryptedDataKeys()).Cardinality())).Sign() == 0))) && ((!(((_0_suite).Dtor_signature()).Is_None())) == (((_pat_let_tv5).Dtor_encryptionContext()).Contains(Companion_Default___.EC__PUBLIC__KEY__FIELD())))) && ((((_0_suite).Dtor_signature()).Is_ECDSA()) == (((_pat_let_tv6).Dtor_signingKey()).Is_Some()))) && ((!(((_0_suite).Dtor_signature()).Is_None())) == (((_pat_let_tv7).Dtor_encryptionContext()).Contains(Companion_Default___.EC__PUBLIC__KEY__FIELD())))) && (!((((_0_suite).Dtor_symmetricSignature()).Is_HMAC()) && (((_pat_let_tv8).Dtor_symmetricSigningKeys()).Is_Some())) || ((_dafny.IntOfUint32((((_pat_let_tv9).Dtor_symmetricSigningKeys()).Dtor_value().(_dafny.Sequence)).Cardinality())).Cmp(_dafny.IntOfUint32(((_pat_let_tv10).Dtor_encryptedDataKeys()).Cardinality())) == 0))) && (!(((_0_suite).Dtor_symmetricSignature()).Is_HMAC()) || ((((_pat_let_tv11).Dtor_symmetricSigningKeys()).Is_Some()) || (((_dafny.IntOfUint32(((_pat_let_tv12).Dtor_encryptedDataKeys()).Cardinality())).Sign() == 0) && (((_pat_let_tv13).Dtor_symmetricSigningKeys()).Is_None()))))) && (!(((_0_suite).Dtor_symmetricSignature()).Is_None()) || (((_pat_let_tv14).Dtor_symmetricSigningKeys()).Is_None()))) && (_dafny.Quantifier(((_pat_let_tv15).Dtor_requiredEncryptionContextKeys()).UniqueElements(), true, func(_forall_var_0 _dafny.Sequence) bool { + var _1_key _dafny.Sequence + _1_key = interface{}(_forall_var_0).(_dafny.Sequence) + if m_UTF8.Companion_ValidUTF8Bytes_.Is_(_1_key) { + return !(_dafny.Companion_Sequence_.Contains((_pat_let_tv16).Dtor_requiredEncryptionContextKeys(), _1_key)) || (((_pat_let_tv17).Dtor_encryptionContext()).Contains(_1_key)) + } else { + return true + } + })) + }(_pat_let2_0) + }((encryptionMaterials).Dtor_algorithmSuite())) +} +func (_static *CompanionStruct_Default___) EncryptionMaterialsHasPlaintextDataKey(encryptionMaterials m_AwsCryptographyMaterialProvidersTypes.EncryptionMaterials) bool { + return ((((encryptionMaterials).Dtor_plaintextDataKey()).Is_Some()) && ((_dafny.IntOfUint32(((encryptionMaterials).Dtor_encryptedDataKeys()).Cardinality())).Sign() == 1)) && (Companion_Default___.ValidEncryptionMaterials(encryptionMaterials)) +} +func (_static *CompanionStruct_Default___) EncryptionMaterialAddEncryptedDataKeys(encryptionMaterials m_AwsCryptographyMaterialProvidersTypes.EncryptionMaterials, encryptedDataKeysToAdd _dafny.Sequence, symmetricSigningKeysToAdd m_Wrappers.Option) m_Wrappers.Result { + var _0_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need(Companion_Default___.ValidEncryptionMaterials(encryptionMaterials), m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_InvalidEncryptionMaterialsTransition_(_dafny.SeqOfString("Attempt to modify invalid encryption material."))) + _ = _0_valueOrError0 + if (_0_valueOrError0).IsFailure() { + return (_0_valueOrError0).PropagateFailure() + } else { + var _1_valueOrError1 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need(((encryptionMaterials).Dtor_plaintextDataKey()).Is_Some(), m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_InvalidEncryptionMaterialsTransition_(_dafny.SeqOfString("Adding encrypted data keys without a plaintext data key is not allowed."))) + _ = _1_valueOrError1 + if (_1_valueOrError1).IsFailure() { + return (_1_valueOrError1).PropagateFailure() + } else { + var _2_valueOrError2 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need(!((symmetricSigningKeysToAdd).Is_None()) || ((((encryptionMaterials).Dtor_algorithmSuite()).Dtor_symmetricSignature()).Is_None()), m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_InvalidEncryptionMaterialsTransition_(_dafny.SeqOfString("Adding encrypted data keys without a symmetric signing key when using symmetric signing is not allowed."))) + _ = _2_valueOrError2 + if (_2_valueOrError2).IsFailure() { + return (_2_valueOrError2).PropagateFailure() + } else { + var _3_valueOrError3 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need(!((symmetricSigningKeysToAdd).Is_Some()) || (!((((encryptionMaterials).Dtor_algorithmSuite()).Dtor_symmetricSignature()).Is_None())), m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_InvalidEncryptionMaterialsTransition_(_dafny.SeqOfString("Adding encrypted data keys with a symmetric signing key when not using symmetric signing is not allowed."))) + _ = _3_valueOrError3 + if (_3_valueOrError3).IsFailure() { + return (_3_valueOrError3).PropagateFailure() + } else { + var _4_symmetricSigningKeys m_Wrappers.Option = (func() m_Wrappers.Option { + if (symmetricSigningKeysToAdd).Is_None() { + return (encryptionMaterials).Dtor_symmetricSigningKeys() + } + return m_Wrappers.Companion_Option_.Create_Some_(_dafny.Companion_Sequence_.Concatenate(((encryptionMaterials).Dtor_symmetricSigningKeys()).UnwrapOr(_dafny.SeqOf()).(_dafny.Sequence), (symmetricSigningKeysToAdd).Dtor_value().(_dafny.Sequence))) + })() + _ = _4_symmetricSigningKeys + return m_Wrappers.Companion_Result_.Create_Success_(m_AwsCryptographyMaterialProvidersTypes.Companion_EncryptionMaterials_.Create_EncryptionMaterials_((encryptionMaterials).Dtor_algorithmSuite(), (encryptionMaterials).Dtor_encryptionContext(), _dafny.Companion_Sequence_.Concatenate((encryptionMaterials).Dtor_encryptedDataKeys(), encryptedDataKeysToAdd), (encryptionMaterials).Dtor_requiredEncryptionContextKeys(), (encryptionMaterials).Dtor_plaintextDataKey(), (encryptionMaterials).Dtor_signingKey(), _4_symmetricSigningKeys)) + } + } + } + } +} +func (_static *CompanionStruct_Default___) EncryptionMaterialAddDataKey(encryptionMaterials m_AwsCryptographyMaterialProvidersTypes.EncryptionMaterials, plaintextDataKey _dafny.Sequence, encryptedDataKeysToAdd _dafny.Sequence, symmetricSigningKeysToAdd m_Wrappers.Option) m_Wrappers.Result { + var _0_suite m_AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo = (encryptionMaterials).Dtor_algorithmSuite() + _ = _0_suite + var _1_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need(Companion_Default___.ValidEncryptionMaterials(encryptionMaterials), m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_InvalidEncryptionMaterialsTransition_(_dafny.SeqOfString("Attempt to modify invalid encryption material."))) + _ = _1_valueOrError0 + if (_1_valueOrError0).IsFailure() { + return (_1_valueOrError0).PropagateFailure() + } else { + var _2_valueOrError1 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need(((encryptionMaterials).Dtor_plaintextDataKey()).Is_None(), m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_InvalidEncryptionMaterialsTransition_(_dafny.SeqOfString("Attempt to modify plaintextDataKey."))) + _ = _2_valueOrError1 + if (_2_valueOrError1).IsFailure() { + return (_2_valueOrError1).PropagateFailure() + } else { + var _3_valueOrError2 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need((_dafny.IntOfInt32(m_AlgorithmSuites.Companion_Default___.GetEncryptKeyLength(_0_suite))).Cmp(_dafny.IntOfUint32((plaintextDataKey).Cardinality())) == 0, m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_InvalidEncryptionMaterialsTransition_(_dafny.SeqOfString("plaintextDataKey does not match Algorithm Suite specification."))) + _ = _3_valueOrError2 + if (_3_valueOrError2).IsFailure() { + return (_3_valueOrError2).PropagateFailure() + } else { + var _4_valueOrError3 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need(((symmetricSigningKeysToAdd).Is_None()) == ((((encryptionMaterials).Dtor_algorithmSuite()).Dtor_symmetricSignature()).Is_None()), m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_InvalidEncryptionMaterialsTransition_(_dafny.SeqOfString("Adding encrypted data keys without a symmetric signing key when using symmetric signing is not allowed."))) + _ = _4_valueOrError3 + if (_4_valueOrError3).IsFailure() { + return (_4_valueOrError3).PropagateFailure() + } else { + var _5_valueOrError4 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need(((symmetricSigningKeysToAdd).Is_Some()) == (!((((encryptionMaterials).Dtor_algorithmSuite()).Dtor_symmetricSignature()).Is_None())), m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_InvalidEncryptionMaterialsTransition_(_dafny.SeqOfString("Adding encrypted data keys with a symmetric signing key when not using symmetric signing is not allowed."))) + _ = _5_valueOrError4 + if (_5_valueOrError4).IsFailure() { + return (_5_valueOrError4).PropagateFailure() + } else { + var _6_symmetricSigningKeys m_Wrappers.Option = (func() m_Wrappers.Option { + if (symmetricSigningKeysToAdd).Is_None() { + return (encryptionMaterials).Dtor_symmetricSigningKeys() + } + return m_Wrappers.Companion_Option_.Create_Some_(_dafny.Companion_Sequence_.Concatenate(((encryptionMaterials).Dtor_symmetricSigningKeys()).UnwrapOr(_dafny.SeqOf()).(_dafny.Sequence), (symmetricSigningKeysToAdd).Dtor_value().(_dafny.Sequence))) + })() + _ = _6_symmetricSigningKeys + return m_Wrappers.Companion_Result_.Create_Success_(m_AwsCryptographyMaterialProvidersTypes.Companion_EncryptionMaterials_.Create_EncryptionMaterials_((encryptionMaterials).Dtor_algorithmSuite(), (encryptionMaterials).Dtor_encryptionContext(), _dafny.Companion_Sequence_.Concatenate((encryptionMaterials).Dtor_encryptedDataKeys(), encryptedDataKeysToAdd), (encryptionMaterials).Dtor_requiredEncryptionContextKeys(), m_Wrappers.Companion_Option_.Create_Some_(plaintextDataKey), (encryptionMaterials).Dtor_signingKey(), _6_symmetricSigningKeys)) + } + } + } + } + } +} +func (_static *CompanionStruct_Default___) DecryptionMaterialsTransitionIsValid(oldMat m_AwsCryptographyMaterialProvidersTypes.DecryptionMaterials, newMat m_AwsCryptographyMaterialProvidersTypes.DecryptionMaterials) bool { + return ((((((((((newMat).Dtor_algorithmSuite()).Equals((oldMat).Dtor_algorithmSuite())) && (((newMat).Dtor_encryptionContext()).Equals((oldMat).Dtor_encryptionContext()))) && (_dafny.Companion_Sequence_.Equal((newMat).Dtor_requiredEncryptionContextKeys(), (oldMat).Dtor_requiredEncryptionContextKeys()))) && (((newMat).Dtor_verificationKey()).Equals((oldMat).Dtor_verificationKey()))) && (((oldMat).Dtor_plaintextDataKey()).Is_None())) && (((newMat).Dtor_plaintextDataKey()).Is_Some())) && (((oldMat).Dtor_symmetricSigningKey()).Is_None())) && (Companion_Default___.ValidDecryptionMaterials(oldMat))) && (Companion_Default___.ValidDecryptionMaterials(newMat)) +} +func (_static *CompanionStruct_Default___) ValidDecryptionMaterials(decryptionMaterials m_AwsCryptographyMaterialProvidersTypes.DecryptionMaterials) bool { + var _pat_let_tv0 = decryptionMaterials + _ = _pat_let_tv0 + var _pat_let_tv1 = decryptionMaterials + _ = _pat_let_tv1 + var _pat_let_tv2 = decryptionMaterials + _ = _pat_let_tv2 + var _pat_let_tv3 = decryptionMaterials + _ = _pat_let_tv3 + var _pat_let_tv4 = decryptionMaterials + _ = _pat_let_tv4 + var _pat_let_tv5 = decryptionMaterials + _ = _pat_let_tv5 + var _pat_let_tv6 = decryptionMaterials + _ = _pat_let_tv6 + var _pat_let_tv7 = decryptionMaterials + _ = _pat_let_tv7 + var _pat_let_tv8 = decryptionMaterials + _ = _pat_let_tv8 + var _pat_let_tv9 = decryptionMaterials + _ = _pat_let_tv9 + var _pat_let_tv10 = decryptionMaterials + _ = _pat_let_tv10 + return (m_AlgorithmSuites.Companion_Default___.AlgorithmSuite_q((decryptionMaterials).Dtor_algorithmSuite())) && (func(_pat_let3_0 m_AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo) bool { + return func(_0_suite m_AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo) bool { + return ((((((!(((_pat_let_tv0).Dtor_plaintextDataKey()).Is_Some()) || ((_dafny.IntOfInt32(m_AlgorithmSuites.Companion_Default___.GetEncryptKeyLength(_0_suite))).Cmp(_dafny.IntOfUint32((((_pat_let_tv1).Dtor_plaintextDataKey()).Dtor_value().(_dafny.Sequence)).Cardinality())) == 0)) && ((!(((_0_suite).Dtor_signature()).Is_None())) == (((_pat_let_tv2).Dtor_encryptionContext()).Contains(Companion_Default___.EC__PUBLIC__KEY__FIELD())))) && ((((_0_suite).Dtor_signature()).Is_ECDSA()) == (((_pat_let_tv3).Dtor_verificationKey()).Is_Some()))) && ((!(((_0_suite).Dtor_signature()).Is_None())) == (((_pat_let_tv4).Dtor_encryptionContext()).Contains(Companion_Default___.EC__PUBLIC__KEY__FIELD())))) && (!(!(((_0_suite).Dtor_symmetricSignature()).Is_None())) || ((((_pat_let_tv5).Dtor_plaintextDataKey()).Is_Some()) == (((_pat_let_tv6).Dtor_symmetricSigningKey()).Is_Some())))) && (!(((_0_suite).Dtor_symmetricSignature()).Is_None()) || (((_pat_let_tv7).Dtor_symmetricSigningKey()).Is_None()))) && (_dafny.Quantifier(((_pat_let_tv8).Dtor_requiredEncryptionContextKeys()).UniqueElements(), true, func(_forall_var_0 _dafny.Sequence) bool { + var _1_k _dafny.Sequence + _1_k = interface{}(_forall_var_0).(_dafny.Sequence) + if m_UTF8.Companion_ValidUTF8Bytes_.Is_(_1_k) { + return !(_dafny.Companion_Sequence_.Contains((_pat_let_tv9).Dtor_requiredEncryptionContextKeys(), _1_k)) || (((_pat_let_tv10).Dtor_encryptionContext()).Contains(_1_k)) + } else { + return true + } + })) + }(_pat_let3_0) + }((decryptionMaterials).Dtor_algorithmSuite())) +} +func (_static *CompanionStruct_Default___) DecryptionMaterialsAddDataKey(decryptionMaterials m_AwsCryptographyMaterialProvidersTypes.DecryptionMaterials, plaintextDataKey _dafny.Sequence, symmetricSigningKey m_Wrappers.Option) m_Wrappers.Result { + var _0_suite m_AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo = (decryptionMaterials).Dtor_algorithmSuite() + _ = _0_suite + var _1_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need(Companion_Default___.ValidDecryptionMaterials(decryptionMaterials), m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_InvalidDecryptionMaterialsTransition_(_dafny.SeqOfString("Attempt to modify invalid decryption material."))) + _ = _1_valueOrError0 + if (_1_valueOrError0).IsFailure() { + return (_1_valueOrError0).PropagateFailure() + } else { + var _2_valueOrError1 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need(((decryptionMaterials).Dtor_plaintextDataKey()).Is_None(), m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_InvalidDecryptionMaterialsTransition_(_dafny.SeqOfString("Attempt to modify plaintextDataKey."))) + _ = _2_valueOrError1 + if (_2_valueOrError1).IsFailure() { + return (_2_valueOrError1).PropagateFailure() + } else { + var _3_valueOrError2 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need((_dafny.IntOfInt32(m_AlgorithmSuites.Companion_Default___.GetEncryptKeyLength(_0_suite))).Cmp(_dafny.IntOfUint32((plaintextDataKey).Cardinality())) == 0, m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_InvalidDecryptionMaterialsTransition_(_dafny.SeqOfString("plaintextDataKey does not match Algorithm Suite specification."))) + _ = _3_valueOrError2 + if (_3_valueOrError2).IsFailure() { + return (_3_valueOrError2).PropagateFailure() + } else { + var _4_valueOrError3 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need(((symmetricSigningKey).Is_Some()) == (!((((decryptionMaterials).Dtor_algorithmSuite()).Dtor_symmetricSignature()).Is_None())), m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_InvalidDecryptionMaterialsTransition_(_dafny.SeqOfString("symmetric signature key must be added with plaintextDataKey if using an algorithm suite with symmetric signing."))) + _ = _4_valueOrError3 + if (_4_valueOrError3).IsFailure() { + return (_4_valueOrError3).PropagateFailure() + } else { + var _5_valueOrError4 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need(((symmetricSigningKey).Is_None()) == ((((decryptionMaterials).Dtor_algorithmSuite()).Dtor_symmetricSignature()).Is_None()), m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_InvalidDecryptionMaterialsTransition_(_dafny.SeqOfString("symmetric signature key cannot be added with plaintextDataKey if using an algorithm suite without symmetric signing."))) + _ = _5_valueOrError4 + if (_5_valueOrError4).IsFailure() { + return (_5_valueOrError4).PropagateFailure() + } else { + return m_Wrappers.Companion_Result_.Create_Success_(m_AwsCryptographyMaterialProvidersTypes.Companion_DecryptionMaterials_.Create_DecryptionMaterials_((decryptionMaterials).Dtor_algorithmSuite(), (decryptionMaterials).Dtor_encryptionContext(), (decryptionMaterials).Dtor_requiredEncryptionContextKeys(), m_Wrappers.Companion_Option_.Create_Some_(plaintextDataKey), (decryptionMaterials).Dtor_verificationKey(), symmetricSigningKey)) + } + } + } + } + } +} +func (_static *CompanionStruct_Default___) DecryptionMaterialsWithoutPlaintextDataKey(decryptionMaterials m_AwsCryptographyMaterialProvidersTypes.DecryptionMaterials) bool { + return (((decryptionMaterials).Dtor_plaintextDataKey()).Is_None()) && (Companion_Default___.ValidDecryptionMaterials(decryptionMaterials)) +} +func (_static *CompanionStruct_Default___) DecryptionMaterialsWithPlaintextDataKey(decryptionMaterials m_AwsCryptographyMaterialProvidersTypes.DecryptionMaterials) bool { + return (((decryptionMaterials).Dtor_plaintextDataKey()).Is_Some()) && (Companion_Default___.ValidDecryptionMaterials(decryptionMaterials)) +} +func (_static *CompanionStruct_Default___) EC__PUBLIC__KEY__FIELD() _dafny.Sequence { + var _0_s _dafny.Sequence = _dafny.SeqOf(uint8(97), uint8(119), uint8(115), uint8(45), uint8(99), uint8(114), uint8(121), uint8(112), uint8(116), uint8(111), uint8(45), uint8(112), uint8(117), uint8(98), uint8(108), uint8(105), uint8(99), uint8(45), uint8(107), uint8(101), uint8(121)) + _ = _0_s + return _0_s +} +func (_static *CompanionStruct_Default___) RESERVED__KEY__VALUES() _dafny.Set { + return _dafny.SetOf(Companion_Default___.EC__PUBLIC__KEY__FIELD()) +} + +// End of class Default__ + +// Definition of class DecryptionMaterialsPendingPlaintextDataKey +type DecryptionMaterialsPendingPlaintextDataKey struct { +} + +func New_DecryptionMaterialsPendingPlaintextDataKey_() *DecryptionMaterialsPendingPlaintextDataKey { + _this := DecryptionMaterialsPendingPlaintextDataKey{} + + return &_this +} + +type CompanionStruct_DecryptionMaterialsPendingPlaintextDataKey_ struct { +} + +var Companion_DecryptionMaterialsPendingPlaintextDataKey_ = CompanionStruct_DecryptionMaterialsPendingPlaintextDataKey_{} + +func (*DecryptionMaterialsPendingPlaintextDataKey) String() string { + return "Materials.DecryptionMaterialsPendingPlaintextDataKey" +} + +// End of class DecryptionMaterialsPendingPlaintextDataKey + +func Type_DecryptionMaterialsPendingPlaintextDataKey_() _dafny.TypeDescriptor { + return type_DecryptionMaterialsPendingPlaintextDataKey_{} +} + +type type_DecryptionMaterialsPendingPlaintextDataKey_ struct { +} + +func (_this type_DecryptionMaterialsPendingPlaintextDataKey_) Default() interface{} { + return m_AwsCryptographyMaterialProvidersTypes.Companion_DecryptionMaterials_.Default() +} + +func (_this type_DecryptionMaterialsPendingPlaintextDataKey_) String() string { + return "Materials.DecryptionMaterialsPendingPlaintextDataKey" +} +func (_this *CompanionStruct_DecryptionMaterialsPendingPlaintextDataKey_) Is_(__source m_AwsCryptographyMaterialProvidersTypes.DecryptionMaterials) bool { + var _0_d m_AwsCryptographyMaterialProvidersTypes.DecryptionMaterials = (__source) + _ = _0_d + return Companion_Default___.DecryptionMaterialsWithoutPlaintextDataKey(_0_d) +} + +// Definition of class SealedDecryptionMaterials +type SealedDecryptionMaterials struct { +} + +func New_SealedDecryptionMaterials_() *SealedDecryptionMaterials { + _this := SealedDecryptionMaterials{} + + return &_this +} + +type CompanionStruct_SealedDecryptionMaterials_ struct { +} + +var Companion_SealedDecryptionMaterials_ = CompanionStruct_SealedDecryptionMaterials_{} + +func (*SealedDecryptionMaterials) String() string { + return "Materials.SealedDecryptionMaterials" +} + +// End of class SealedDecryptionMaterials + +func Type_SealedDecryptionMaterials_() _dafny.TypeDescriptor { + return type_SealedDecryptionMaterials_{} +} + +type type_SealedDecryptionMaterials_ struct { +} + +func (_this type_SealedDecryptionMaterials_) Default() interface{} { + return m_AwsCryptographyMaterialProvidersTypes.Companion_DecryptionMaterials_.Default() +} + +func (_this type_SealedDecryptionMaterials_) String() string { + return "Materials.SealedDecryptionMaterials" +} +func (_this *CompanionStruct_SealedDecryptionMaterials_) Is_(__source m_AwsCryptographyMaterialProvidersTypes.DecryptionMaterials) bool { + var _1_d m_AwsCryptographyMaterialProvidersTypes.DecryptionMaterials = (__source) + _ = _1_d + return Companion_Default___.DecryptionMaterialsWithPlaintextDataKey(_1_d) +} diff --git a/customer-preview/mpl/MrkAwareDiscoveryMultiKeyring/MrkAwareDiscoveryMultiKeyring.go b/customer-preview/mpl/MrkAwareDiscoveryMultiKeyring/MrkAwareDiscoveryMultiKeyring.go new file mode 100644 index 000000000..56f086c8a --- /dev/null +++ b/customer-preview/mpl/MrkAwareDiscoveryMultiKeyring/MrkAwareDiscoveryMultiKeyring.go @@ -0,0 +1,271 @@ +// Package MrkAwareDiscoveryMultiKeyring +// Dafny module MrkAwareDiscoveryMultiKeyring compiled into Go + +package MrkAwareDiscoveryMultiKeyring + +import ( + os "os" + + m_ComAmazonawsDynamodbTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/ComAmazonawsDynamodbTypes" + m_Com_Amazonaws_Dynamodb "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/Com_Amazonaws_Dynamodb" + m_ComAmazonawsKmsTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/ComAmazonawsKmsTypes" + m_Com_Amazonaws_Kms "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/Com_Amazonaws_Kms" + m_AlgorithmSuites "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AlgorithmSuites" + m_AwsArnParsing "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsArnParsing" + m_AwsCryptographyKeyStoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreOperations" + m_AwsCryptographyKeyStoreTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreTypes" + m_AwsCryptographyMaterialProvidersTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersTypes" + m_AwsKmsDiscoveryKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsDiscoveryKeyring" + m_AwsKmsKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsKeyring" + m_AwsKmsMrkAreUnique "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkAreUnique" + m_AwsKmsMrkDiscoveryKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkDiscoveryKeyring" + m_AwsKmsMrkMatchForDecrypt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkMatchForDecrypt" + m_AwsKmsUtils "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsUtils" + m_CanonicalEncryptionContext "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CanonicalEncryptionContext" + m_Constants "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Constants" + m_CreateKeyStoreTable "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeyStoreTable" + m_CreateKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeys" + m_DDBKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DDBKeystoreOperations" + m_DiscoveryMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DiscoveryMultiKeyring" + m_EdkWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/EdkWrapping" + m_ErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/ErrorMessages" + m_GetKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/GetKeys" + m_IntermediateKeyWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/IntermediateKeyWrapping" + m_KMSKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KMSKeystoreOperations" + m_KeyStore "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStore" + m_KeyStoreErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStoreErrorMessages" + m_Keyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Keyring" + m_KmsArn "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KmsArn" + m_MaterialWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MaterialWrapping" + m_Materials "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Materials" + m_MultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MultiKeyring" + m_StrictMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StrictMultiKeyring" + m_Structure "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Structure" + m_AtomicPrimitives "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AtomicPrimitives" + m_AwsCryptographyPrimitivesOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesOperations" + m_AwsCryptographyPrimitivesTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesTypes" + m_Digest "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Digest" + m_HKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/HKDF" + m_KdfCtr "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/KdfCtr" + m_Random "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Random" + m_WrappedHKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHKDF" + m_WrappedHMAC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHMAC" + m_Actions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Actions" + m_Base64 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64" + m_Base64Lemmas "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64Lemmas" + m_BoundedInts "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/BoundedInts" + m_DivInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternals" + m_DivInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternalsNonlinear" + m_DivMod "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivMod" + m_FileIO "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FileIO" + m_FloatCompare "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FloatCompare" + m_Functions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Functions" + m_GeneralInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GeneralInternals" + m_GetOpt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GetOpt" + m_HexStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/HexStrings" + m_Logarithm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Logarithm" + m__Math "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Math_" + m_ModInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternals" + m_ModInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternalsNonlinear" + m_Mul "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Mul" + m_MulInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternals" + m_MulInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternalsNonlinear" + m_Power "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Power" + m_Relations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Relations" + m_Seq "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq" + m_Seq_MergeSort "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq_MergeSort" + m_Sorting "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Sorting" + m_StandardLibrary "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary" + m_StandardLibraryInterop "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibraryInterop" + m_StandardLibrary_Sequence "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_Sequence" + m_StandardLibrary_String "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_String" + m_StandardLibrary_UInt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_UInt" + m_Streams "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Streams" + m_UnicodeStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UnicodeStrings" + m__Unicode "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Unicode_" + m_Utf16EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf16EncodingForm" + m_Utf8EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf8EncodingForm" + m_Wrappers "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers" + m__System "github.com/dafny-lang/DafnyRuntimeGo/v4/System_" + _dafny "github.com/dafny-lang/DafnyRuntimeGo/v4/dafny" +) + +var _ = os.Args +var _ _dafny.Dummy__ +var _ m__System.Dummy__ +var _ m_Wrappers.Dummy__ +var _ m_BoundedInts.Dummy__ +var _ m_StandardLibrary_UInt.Dummy__ +var _ m_StandardLibrary_Sequence.Dummy__ +var _ m_StandardLibrary_String.Dummy__ +var _ m_StandardLibrary.Dummy__ +var _ m_AwsCryptographyPrimitivesTypes.Dummy__ +var _ m_Random.Dummy__ +var _ m_Digest.Dummy__ +var _ m_WrappedHMAC.Dummy__ +var _ m_HKDF.Dummy__ +var _ m_WrappedHKDF.Dummy__ +var _ m_KdfCtr.Dummy__ +var _ m_AwsCryptographyPrimitivesOperations.Dummy__ +var _ m_AtomicPrimitives.Dummy__ +var _ m_ComAmazonawsDynamodbTypes.Dummy__ +var _ m_ComAmazonawsKmsTypes.Dummy__ +var _ m_Relations.Dummy__ +var _ m_Seq_MergeSort.Dummy__ +var _ m__Math.Dummy__ +var _ m_Seq.Dummy__ +var _ m__Unicode.Dummy__ +var _ m_Functions.Dummy__ +var _ m_Utf8EncodingForm.Dummy__ +var _ m_Utf16EncodingForm.Dummy__ +var _ m_UnicodeStrings.Dummy__ +var _ m_FileIO.Dummy__ +var _ m_GeneralInternals.Dummy__ +var _ m_MulInternalsNonlinear.Dummy__ +var _ m_MulInternals.Dummy__ +var _ m_Mul.Dummy__ +var _ m_ModInternalsNonlinear.Dummy__ +var _ m_DivInternalsNonlinear.Dummy__ +var _ m_ModInternals.Dummy__ +var _ m_DivInternals.Dummy__ +var _ m_DivMod.Dummy__ +var _ m_Power.Dummy__ +var _ m_Logarithm.Dummy__ +var _ m_StandardLibraryInterop.Dummy__ +var _ m_Streams.Dummy__ +var _ m_Sorting.Dummy__ +var _ m_HexStrings.Dummy__ +var _ m_GetOpt.Dummy__ +var _ m_FloatCompare.Dummy__ +var _ m_Base64.Dummy__ +var _ m_Base64Lemmas.Dummy__ +var _ m_Actions.Dummy__ +var _ m_AwsCryptographyKeyStoreTypes.Dummy__ +var _ m_AwsCryptographyMaterialProvidersTypes.Dummy__ +var _ m_AwsArnParsing.Dummy__ +var _ m_AwsKmsMrkMatchForDecrypt.Dummy__ +var _ m_AwsKmsUtils.Dummy__ +var _ m_KeyStoreErrorMessages.Dummy__ +var _ m_KmsArn.Dummy__ +var _ m_Structure.Dummy__ +var _ m_KMSKeystoreOperations.Dummy__ +var _ m_DDBKeystoreOperations.Dummy__ +var _ m_CreateKeys.Dummy__ +var _ m_CreateKeyStoreTable.Dummy__ +var _ m_GetKeys.Dummy__ +var _ m_AwsCryptographyKeyStoreOperations.Dummy__ +var _ m_Com_Amazonaws_Kms.Dummy__ +var _ m_Com_Amazonaws_Dynamodb.Dummy__ +var _ m_KeyStore.Dummy__ +var _ m_AlgorithmSuites.Dummy__ +var _ m_Materials.Dummy__ +var _ m_Keyring.Dummy__ +var _ m_MultiKeyring.Dummy__ +var _ m_AwsKmsMrkAreUnique.Dummy__ +var _ m_Constants.Dummy__ +var _ m_MaterialWrapping.Dummy__ +var _ m_CanonicalEncryptionContext.Dummy__ +var _ m_IntermediateKeyWrapping.Dummy__ +var _ m_EdkWrapping.Dummy__ +var _ m_ErrorMessages.Dummy__ +var _ m_AwsKmsKeyring.Dummy__ +var _ m_StrictMultiKeyring.Dummy__ +var _ m_AwsKmsDiscoveryKeyring.Dummy__ +var _ m_DiscoveryMultiKeyring.Dummy__ +var _ m_AwsKmsMrkDiscoveryKeyring.Dummy__ + +type Dummy__ struct{} + +// Definition of class Default__ +type Default__ struct { + dummy byte +} + +func New_Default___() *Default__ { + _this := Default__{} + + return &_this +} + +type CompanionStruct_Default___ struct { +} + +var Companion_Default___ = CompanionStruct_Default___{} + +func (_this *Default__) Equals(other *Default__) bool { + return _this == other +} + +func (_this *Default__) EqualsGeneric(x interface{}) bool { + other, ok := x.(*Default__) + return ok && _this.Equals(other) +} + +func (*Default__) String() string { + return "MrkAwareDiscoveryMultiKeyring.Default__" +} +func (_this *Default__) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = &Default__{} + +func (_static *CompanionStruct_Default___) MrkAwareDiscoveryMultiKeyring(regions _dafny.Sequence, discoveryFilter m_Wrappers.Option, clientSupplier m_AwsCryptographyMaterialProvidersTypes.IClientSupplier, grantTokens m_Wrappers.Option) m_Wrappers.Result { + var output m_Wrappers.Result = m_Wrappers.Result{} + _ = output + var _0_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _0_valueOrError0 + _0_valueOrError0 = m_Wrappers.Companion_Default___.Need((_dafny.IntOfUint32((regions).Cardinality())).Sign() == 1, m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.SeqOfString("No regions passed."))) + if (_0_valueOrError0).IsFailure() { + output = (_0_valueOrError0).PropagateFailure() + return output + } + var _1_valueOrError1 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _1_valueOrError1 + _1_valueOrError1 = m_Wrappers.Companion_Default___.Need((m_Seq.Companion_Default___.IndexOfOption(regions, _dafny.SeqOfString(""))).Is_None(), m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.SeqOfString("Empty string is not a valid region."))) + if (_1_valueOrError1).IsFailure() { + output = (_1_valueOrError1).PropagateFailure() + return output + } + var _2_children _dafny.Sequence + _ = _2_children + _2_children = _dafny.SeqOf() + var _hi0 _dafny.Int = _dafny.IntOfUint32((regions).Cardinality()) + _ = _hi0 + for _3_i := _dafny.Zero; _3_i.Cmp(_hi0) < 0; _3_i = _3_i.Plus(_dafny.One) { + var _4_region _dafny.Sequence + _ = _4_region + _4_region = (regions).Select((_3_i).Uint32()).(_dafny.Sequence) + var _5_valueOrError2 m_Wrappers.Result = m_Wrappers.Result{} + _ = _5_valueOrError2 + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = (clientSupplier).GetClient(m_AwsCryptographyMaterialProvidersTypes.Companion_GetClientInput_.Create_GetClientInput_(_4_region)) + _5_valueOrError2 = _out0 + if (_5_valueOrError2).IsFailure() { + output = (_5_valueOrError2).PropagateFailure() + return output + } + var _6_client m_ComAmazonawsKmsTypes.IKMSClient + _ = _6_client + _6_client = m_ComAmazonawsKmsTypes.Companion_IKMSClient_.CastTo_((_5_valueOrError2).Extract()) + var _7_keyring *m_AwsKmsMrkDiscoveryKeyring.AwsKmsMrkDiscoveryKeyring + _ = _7_keyring + var _nw0 *m_AwsKmsMrkDiscoveryKeyring.AwsKmsMrkDiscoveryKeyring = m_AwsKmsMrkDiscoveryKeyring.New_AwsKmsMrkDiscoveryKeyring_() + _ = _nw0 + _nw0.Ctor__(_6_client, _4_region, discoveryFilter, (grantTokens).UnwrapOr(_dafny.SeqOf()).(_dafny.Sequence)) + _7_keyring = _nw0 + _2_children = _dafny.Companion_Sequence_.Concatenate(_2_children, _dafny.SeqOf(_7_keyring)) + } + var _8_keyring *m_MultiKeyring.MultiKeyring + _ = _8_keyring + var _nw1 *m_MultiKeyring.MultiKeyring = m_MultiKeyring.New_MultiKeyring_() + _ = _nw1 + _nw1.Ctor__(m_Wrappers.Companion_Option_.Create_None_(), _2_children) + _8_keyring = _nw1 + output = m_Wrappers.Companion_Result_.Create_Success_(_8_keyring) + return output + return output +} + +// End of class Default__ diff --git a/customer-preview/mpl/MrkAwareStrictMultiKeyring/MrkAwareStrictMultiKeyring.go b/customer-preview/mpl/MrkAwareStrictMultiKeyring/MrkAwareStrictMultiKeyring.go new file mode 100644 index 000000000..30708f087 --- /dev/null +++ b/customer-preview/mpl/MrkAwareStrictMultiKeyring/MrkAwareStrictMultiKeyring.go @@ -0,0 +1,400 @@ +// Package MrkAwareStrictMultiKeyring +// Dafny module MrkAwareStrictMultiKeyring compiled into Go + +package MrkAwareStrictMultiKeyring + +import ( + os "os" + + m_ComAmazonawsDynamodbTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/ComAmazonawsDynamodbTypes" + m_Com_Amazonaws_Dynamodb "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/Com_Amazonaws_Dynamodb" + m_ComAmazonawsKmsTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/ComAmazonawsKmsTypes" + m_Com_Amazonaws_Kms "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/Com_Amazonaws_Kms" + m_AlgorithmSuites "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AlgorithmSuites" + m_AwsArnParsing "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsArnParsing" + m_AwsCryptographyKeyStoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreOperations" + m_AwsCryptographyKeyStoreTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreTypes" + m_AwsCryptographyMaterialProvidersTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersTypes" + m_AwsKmsDiscoveryKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsDiscoveryKeyring" + m_AwsKmsKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsKeyring" + m_AwsKmsMrkAreUnique "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkAreUnique" + m_AwsKmsMrkDiscoveryKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkDiscoveryKeyring" + m_AwsKmsMrkKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkKeyring" + m_AwsKmsMrkMatchForDecrypt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkMatchForDecrypt" + m_AwsKmsUtils "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsUtils" + m_CanonicalEncryptionContext "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CanonicalEncryptionContext" + m_Constants "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Constants" + m_CreateKeyStoreTable "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeyStoreTable" + m_CreateKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeys" + m_DDBKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DDBKeystoreOperations" + m_DiscoveryMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DiscoveryMultiKeyring" + m_EdkWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/EdkWrapping" + m_ErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/ErrorMessages" + m_GetKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/GetKeys" + m_IntermediateKeyWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/IntermediateKeyWrapping" + m_KMSKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KMSKeystoreOperations" + m_KeyStore "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStore" + m_KeyStoreErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStoreErrorMessages" + m_Keyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Keyring" + m_KmsArn "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KmsArn" + m_MaterialWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MaterialWrapping" + m_Materials "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Materials" + m_MrkAwareDiscoveryMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MrkAwareDiscoveryMultiKeyring" + m_MultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MultiKeyring" + m_StrictMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StrictMultiKeyring" + m_Structure "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Structure" + m_AtomicPrimitives "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AtomicPrimitives" + m_AwsCryptographyPrimitivesOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesOperations" + m_AwsCryptographyPrimitivesTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesTypes" + m_Digest "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Digest" + m_HKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/HKDF" + m_KdfCtr "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/KdfCtr" + m_Random "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Random" + m_WrappedHKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHKDF" + m_WrappedHMAC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHMAC" + m_Actions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Actions" + m_Base64 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64" + m_Base64Lemmas "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64Lemmas" + m_BoundedInts "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/BoundedInts" + m_DivInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternals" + m_DivInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternalsNonlinear" + m_DivMod "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivMod" + m_FileIO "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FileIO" + m_FloatCompare "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FloatCompare" + m_Functions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Functions" + m_GeneralInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GeneralInternals" + m_GetOpt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GetOpt" + m_HexStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/HexStrings" + m_Logarithm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Logarithm" + m__Math "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Math_" + m_ModInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternals" + m_ModInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternalsNonlinear" + m_Mul "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Mul" + m_MulInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternals" + m_MulInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternalsNonlinear" + m_Power "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Power" + m_Relations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Relations" + m_Seq "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq" + m_Seq_MergeSort "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq_MergeSort" + m_Sorting "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Sorting" + m_StandardLibrary "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary" + m_StandardLibraryInterop "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibraryInterop" + m_StandardLibrary_Sequence "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_Sequence" + m_StandardLibrary_String "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_String" + m_StandardLibrary_UInt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_UInt" + m_Streams "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Streams" + m_UnicodeStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UnicodeStrings" + m__Unicode "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Unicode_" + m_Utf16EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf16EncodingForm" + m_Utf8EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf8EncodingForm" + m_Wrappers "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers" + m__System "github.com/dafny-lang/DafnyRuntimeGo/v4/System_" + _dafny "github.com/dafny-lang/DafnyRuntimeGo/v4/dafny" +) + +var _ = os.Args +var _ _dafny.Dummy__ +var _ m__System.Dummy__ +var _ m_Wrappers.Dummy__ +var _ m_BoundedInts.Dummy__ +var _ m_StandardLibrary_UInt.Dummy__ +var _ m_StandardLibrary_Sequence.Dummy__ +var _ m_StandardLibrary_String.Dummy__ +var _ m_StandardLibrary.Dummy__ +var _ m_AwsCryptographyPrimitivesTypes.Dummy__ +var _ m_Random.Dummy__ +var _ m_Digest.Dummy__ +var _ m_WrappedHMAC.Dummy__ +var _ m_HKDF.Dummy__ +var _ m_WrappedHKDF.Dummy__ +var _ m_KdfCtr.Dummy__ +var _ m_AwsCryptographyPrimitivesOperations.Dummy__ +var _ m_AtomicPrimitives.Dummy__ +var _ m_ComAmazonawsDynamodbTypes.Dummy__ +var _ m_ComAmazonawsKmsTypes.Dummy__ +var _ m_Relations.Dummy__ +var _ m_Seq_MergeSort.Dummy__ +var _ m__Math.Dummy__ +var _ m_Seq.Dummy__ +var _ m__Unicode.Dummy__ +var _ m_Functions.Dummy__ +var _ m_Utf8EncodingForm.Dummy__ +var _ m_Utf16EncodingForm.Dummy__ +var _ m_UnicodeStrings.Dummy__ +var _ m_FileIO.Dummy__ +var _ m_GeneralInternals.Dummy__ +var _ m_MulInternalsNonlinear.Dummy__ +var _ m_MulInternals.Dummy__ +var _ m_Mul.Dummy__ +var _ m_ModInternalsNonlinear.Dummy__ +var _ m_DivInternalsNonlinear.Dummy__ +var _ m_ModInternals.Dummy__ +var _ m_DivInternals.Dummy__ +var _ m_DivMod.Dummy__ +var _ m_Power.Dummy__ +var _ m_Logarithm.Dummy__ +var _ m_StandardLibraryInterop.Dummy__ +var _ m_Streams.Dummy__ +var _ m_Sorting.Dummy__ +var _ m_HexStrings.Dummy__ +var _ m_GetOpt.Dummy__ +var _ m_FloatCompare.Dummy__ +var _ m_Base64.Dummy__ +var _ m_Base64Lemmas.Dummy__ +var _ m_Actions.Dummy__ +var _ m_AwsCryptographyKeyStoreTypes.Dummy__ +var _ m_AwsCryptographyMaterialProvidersTypes.Dummy__ +var _ m_AwsArnParsing.Dummy__ +var _ m_AwsKmsMrkMatchForDecrypt.Dummy__ +var _ m_AwsKmsUtils.Dummy__ +var _ m_KeyStoreErrorMessages.Dummy__ +var _ m_KmsArn.Dummy__ +var _ m_Structure.Dummy__ +var _ m_KMSKeystoreOperations.Dummy__ +var _ m_DDBKeystoreOperations.Dummy__ +var _ m_CreateKeys.Dummy__ +var _ m_CreateKeyStoreTable.Dummy__ +var _ m_GetKeys.Dummy__ +var _ m_AwsCryptographyKeyStoreOperations.Dummy__ +var _ m_Com_Amazonaws_Kms.Dummy__ +var _ m_Com_Amazonaws_Dynamodb.Dummy__ +var _ m_KeyStore.Dummy__ +var _ m_AlgorithmSuites.Dummy__ +var _ m_Materials.Dummy__ +var _ m_Keyring.Dummy__ +var _ m_MultiKeyring.Dummy__ +var _ m_AwsKmsMrkAreUnique.Dummy__ +var _ m_Constants.Dummy__ +var _ m_MaterialWrapping.Dummy__ +var _ m_CanonicalEncryptionContext.Dummy__ +var _ m_IntermediateKeyWrapping.Dummy__ +var _ m_EdkWrapping.Dummy__ +var _ m_ErrorMessages.Dummy__ +var _ m_AwsKmsKeyring.Dummy__ +var _ m_StrictMultiKeyring.Dummy__ +var _ m_AwsKmsDiscoveryKeyring.Dummy__ +var _ m_DiscoveryMultiKeyring.Dummy__ +var _ m_AwsKmsMrkDiscoveryKeyring.Dummy__ +var _ m_MrkAwareDiscoveryMultiKeyring.Dummy__ +var _ m_AwsKmsMrkKeyring.Dummy__ + +type Dummy__ struct{} + +// Definition of class Default__ +type Default__ struct { + dummy byte +} + +func New_Default___() *Default__ { + _this := Default__{} + + return &_this +} + +type CompanionStruct_Default___ struct { +} + +var Companion_Default___ = CompanionStruct_Default___{} + +func (_this *Default__) Equals(other *Default__) bool { + return _this == other +} + +func (_this *Default__) EqualsGeneric(x interface{}) bool { + other, ok := x.(*Default__) + return ok && _this.Equals(other) +} + +func (*Default__) String() string { + return "MrkAwareStrictMultiKeyring.Default__" +} +func (_this *Default__) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = &Default__{} + +func (_static *CompanionStruct_Default___) MrkAwareStrictMultiKeyring(generator m_Wrappers.Option, awsKmsKeys m_Wrappers.Option, clientSupplier m_AwsCryptographyMaterialProvidersTypes.IClientSupplier, grantTokens m_Wrappers.Option) m_Wrappers.Result { + var output m_Wrappers.Result = m_Wrappers.Result{} + _ = output + var _0_allStrings _dafny.Sequence + _ = _0_allStrings + var _source0 m_Wrappers.Option = generator + _ = _source0 + { + { + if _source0.Is_Some() { + var _1_g _dafny.Sequence = _source0.Get_().(m_Wrappers.Option_Some).Value.(_dafny.Sequence) + _ = _1_g + _0_allStrings = _dafny.Companion_Sequence_.Concatenate(_dafny.SeqOf(_1_g), (awsKmsKeys).UnwrapOr(_dafny.SeqOf()).(_dafny.Sequence)) + goto Lmatch0 + } + } + { + _0_allStrings = (awsKmsKeys).UnwrapOr(_dafny.SeqOf()).(_dafny.Sequence) + } + goto Lmatch0 + } +Lmatch0: + var _2_valueOrError0 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = _2_valueOrError0 + _2_valueOrError0 = (m_Seq.Companion_Default___.MapWithResult(func(coer71 func(_dafny.Sequence) m_Wrappers.Result) func(interface{}) m_Wrappers.Result { + return func(arg72 interface{}) m_Wrappers.Result { + return coer71(arg72.(_dafny.Sequence)) + } + }(m_AwsArnParsing.Companion_Default___.IsAwsKmsIdentifierString), _0_allStrings)).MapFailure(func(coer72 func(_dafny.Sequence) m_AwsCryptographyMaterialProvidersTypes.Error) func(interface{}) interface{} { + return func(arg73 interface{}) interface{} { + return coer72(arg73.(_dafny.Sequence)) + } + }(m_AwsKmsUtils.Companion_Default___.WrapStringToError)) + if (_2_valueOrError0).IsFailure() { + output = (_2_valueOrError0).PropagateFailure() + return output + } + var _3_allIdentifiers _dafny.Sequence + _ = _3_allIdentifiers + _3_allIdentifiers = (_2_valueOrError0).Extract().(_dafny.Sequence) + var _4_valueOrError1 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _4_valueOrError1 + _4_valueOrError1 = m_AwsKmsMrkAreUnique.Companion_Default___.AwsKmsMrkAreUnique(_3_allIdentifiers) + if (_4_valueOrError1).IsFailure() { + output = (_4_valueOrError1).PropagateFailure() + return output + } + var _5_generatorKeyring m_Wrappers.Option = m_Wrappers.Companion_Option_.Default() + _ = _5_generatorKeyring + var _source1 m_Wrappers.Option = generator + _ = _source1 + { + { + if _source1.Is_Some() { + var _6_generatorIdentifier _dafny.Sequence = _source1.Get_().(m_Wrappers.Option_Some).Value.(_dafny.Sequence) + _ = _6_generatorIdentifier + var _7_valueOrError2 m_Wrappers.Result = m_Wrappers.Result{} + _ = _7_valueOrError2 + _7_valueOrError2 = (m_AwsArnParsing.Companion_Default___.IsAwsKmsIdentifierString(_6_generatorIdentifier)).MapFailure(func(coer73 func(_dafny.Sequence) m_AwsCryptographyMaterialProvidersTypes.Error) func(interface{}) interface{} { + return func(arg74 interface{}) interface{} { + return coer73(arg74.(_dafny.Sequence)) + } + }(m_AwsKmsUtils.Companion_Default___.WrapStringToError)) + if (_7_valueOrError2).IsFailure() { + output = (_7_valueOrError2).PropagateFailure() + return output + } + var _8_arn m_AwsArnParsing.AwsKmsIdentifier + _ = _8_arn + _8_arn = (_7_valueOrError2).Extract().(m_AwsArnParsing.AwsKmsIdentifier) + var _9_region m_Wrappers.Option + _ = _9_region + _9_region = m_AwsArnParsing.Companion_Default___.GetRegion(_8_arn) + var _10_valueOrError3 m_Wrappers.Result = m_Wrappers.Result{} + _ = _10_valueOrError3 + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = (clientSupplier).GetClient(m_AwsCryptographyMaterialProvidersTypes.Companion_GetClientInput_.Create_GetClientInput_((_9_region).UnwrapOr(_dafny.SeqOfString("")).(_dafny.Sequence))) + _10_valueOrError3 = _out0 + if (_10_valueOrError3).IsFailure() { + output = (_10_valueOrError3).PropagateFailure() + return output + } + var _11_client m_ComAmazonawsKmsTypes.IKMSClient + _ = _11_client + _11_client = m_ComAmazonawsKmsTypes.Companion_IKMSClient_.CastTo_((_10_valueOrError3).Extract()) + var _12_g *m_AwsKmsMrkKeyring.AwsKmsMrkKeyring + _ = _12_g + var _nw0 *m_AwsKmsMrkKeyring.AwsKmsMrkKeyring = m_AwsKmsMrkKeyring.New_AwsKmsMrkKeyring_() + _ = _nw0 + _nw0.Ctor__(_11_client, _6_generatorIdentifier, (grantTokens).UnwrapOr(_dafny.SeqOf()).(_dafny.Sequence)) + _12_g = _nw0 + _5_generatorKeyring = m_Wrappers.Companion_Option_.Create_Some_(_12_g) + goto Lmatch1 + } + } + { + _5_generatorKeyring = m_Wrappers.Companion_Option_.Create_None_() + } + goto Lmatch1 + } +Lmatch1: + var _13_children _dafny.Sequence + _ = _13_children + _13_children = _dafny.SeqOf() + var _source2 m_Wrappers.Option = awsKmsKeys + _ = _source2 + { + { + if _source2.Is_Some() { + var _14_childIdentifiers _dafny.Sequence = _source2.Get_().(m_Wrappers.Option_Some).Value.(_dafny.Sequence) + _ = _14_childIdentifiers + var _hi0 _dafny.Int = _dafny.IntOfUint32((_14_childIdentifiers).Cardinality()) + _ = _hi0 + for _15_index := _dafny.Zero; _15_index.Cmp(_hi0) < 0; _15_index = _15_index.Plus(_dafny.One) { + var _16_childIdentifier _dafny.Sequence + _ = _16_childIdentifier + _16_childIdentifier = (_14_childIdentifiers).Select((_15_index).Uint32()).(_dafny.Sequence) + var _17_valueOrError4 m_Wrappers.Result = m_Wrappers.Result{} + _ = _17_valueOrError4 + _17_valueOrError4 = (m_AwsArnParsing.Companion_Default___.IsAwsKmsIdentifierString(_16_childIdentifier)).MapFailure(func(coer74 func(_dafny.Sequence) m_AwsCryptographyMaterialProvidersTypes.Error) func(interface{}) interface{} { + return func(arg75 interface{}) interface{} { + return coer74(arg75.(_dafny.Sequence)) + } + }(m_AwsKmsUtils.Companion_Default___.WrapStringToError)) + if (_17_valueOrError4).IsFailure() { + output = (_17_valueOrError4).PropagateFailure() + return output + } + var _18_info m_AwsArnParsing.AwsKmsIdentifier + _ = _18_info + _18_info = (_17_valueOrError4).Extract().(m_AwsArnParsing.AwsKmsIdentifier) + var _19_region m_Wrappers.Option + _ = _19_region + _19_region = m_AwsArnParsing.Companion_Default___.GetRegion(_18_info) + var _20_valueOrError5 m_Wrappers.Result = m_Wrappers.Result{} + _ = _20_valueOrError5 + var _out1 m_Wrappers.Result + _ = _out1 + _out1 = (clientSupplier).GetClient(m_AwsCryptographyMaterialProvidersTypes.Companion_GetClientInput_.Create_GetClientInput_((_19_region).UnwrapOr(_dafny.SeqOfString("")).(_dafny.Sequence))) + _20_valueOrError5 = _out1 + if (_20_valueOrError5).IsFailure() { + output = (_20_valueOrError5).PropagateFailure() + return output + } + var _21_client m_ComAmazonawsKmsTypes.IKMSClient + _ = _21_client + _21_client = m_ComAmazonawsKmsTypes.Companion_IKMSClient_.CastTo_((_20_valueOrError5).Extract()) + var _22_keyring *m_AwsKmsMrkKeyring.AwsKmsMrkKeyring + _ = _22_keyring + var _nw1 *m_AwsKmsMrkKeyring.AwsKmsMrkKeyring = m_AwsKmsMrkKeyring.New_AwsKmsMrkKeyring_() + _ = _nw1 + _nw1.Ctor__(_21_client, _16_childIdentifier, (grantTokens).UnwrapOr(_dafny.SeqOf()).(_dafny.Sequence)) + _22_keyring = _nw1 + _13_children = _dafny.Companion_Sequence_.Concatenate(_13_children, _dafny.SeqOf(_22_keyring)) + } + goto Lmatch2 + } + } + { + _13_children = _dafny.SeqOf() + } + goto Lmatch2 + } +Lmatch2: + var _23_valueOrError6 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _23_valueOrError6 + _23_valueOrError6 = m_Wrappers.Companion_Default___.Need(((_5_generatorKeyring).Is_Some()) || ((_dafny.IntOfUint32((_13_children).Cardinality())).Sign() == 1), m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.SeqOfString("generatorKeyring or child Keyrings needed to create a multi keyring"))) + if (_23_valueOrError6).IsFailure() { + output = (_23_valueOrError6).PropagateFailure() + return output + } + var _24_keyring *m_MultiKeyring.MultiKeyring + _ = _24_keyring + var _nw2 *m_MultiKeyring.MultiKeyring = m_MultiKeyring.New_MultiKeyring_() + _ = _nw2 + _nw2.Ctor__(_5_generatorKeyring, _13_children) + _24_keyring = _nw2 + output = m_Wrappers.Companion_Result_.Create_Success_(_24_keyring) + return output + return output +} + +// End of class Default__ diff --git a/customer-preview/mpl/MultiKeyring/MultiKeyring.go b/customer-preview/mpl/MultiKeyring/MultiKeyring.go new file mode 100644 index 000000000..5268dc676 --- /dev/null +++ b/customer-preview/mpl/MultiKeyring/MultiKeyring.go @@ -0,0 +1,446 @@ +// Package MultiKeyring +// Dafny module MultiKeyring compiled into Go + +package MultiKeyring + +import ( + os "os" + + m_ComAmazonawsDynamodbTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/ComAmazonawsDynamodbTypes" + m_Com_Amazonaws_Dynamodb "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/Com_Amazonaws_Dynamodb" + m_ComAmazonawsKmsTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/ComAmazonawsKmsTypes" + m_Com_Amazonaws_Kms "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/Com_Amazonaws_Kms" + m_AlgorithmSuites "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AlgorithmSuites" + m_AwsArnParsing "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsArnParsing" + m_AwsCryptographyKeyStoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreOperations" + m_AwsCryptographyKeyStoreTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreTypes" + m_AwsCryptographyMaterialProvidersTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersTypes" + m_AwsKmsMrkMatchForDecrypt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkMatchForDecrypt" + m_AwsKmsUtils "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsUtils" + m_CreateKeyStoreTable "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeyStoreTable" + m_CreateKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeys" + m_DDBKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DDBKeystoreOperations" + m_GetKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/GetKeys" + m_KMSKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KMSKeystoreOperations" + m_KeyStore "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStore" + m_KeyStoreErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStoreErrorMessages" + m_Keyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Keyring" + m_KmsArn "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KmsArn" + m_Materials "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Materials" + m_Structure "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Structure" + m_AtomicPrimitives "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AtomicPrimitives" + m_AwsCryptographyPrimitivesOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesOperations" + m_AwsCryptographyPrimitivesTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesTypes" + m_Digest "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Digest" + m_HKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/HKDF" + m_KdfCtr "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/KdfCtr" + m_Random "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Random" + m_WrappedHKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHKDF" + m_WrappedHMAC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHMAC" + m_Actions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Actions" + m_Base64 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64" + m_Base64Lemmas "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64Lemmas" + m_BoundedInts "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/BoundedInts" + m_DivInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternals" + m_DivInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternalsNonlinear" + m_DivMod "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivMod" + m_FileIO "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FileIO" + m_FloatCompare "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FloatCompare" + m_Functions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Functions" + m_GeneralInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GeneralInternals" + m_GetOpt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GetOpt" + m_HexStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/HexStrings" + m_Logarithm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Logarithm" + m__Math "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Math_" + m_ModInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternals" + m_ModInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternalsNonlinear" + m_Mul "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Mul" + m_MulInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternals" + m_MulInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternalsNonlinear" + m_Power "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Power" + m_Relations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Relations" + m_Seq "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq" + m_Seq_MergeSort "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq_MergeSort" + m_Sorting "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Sorting" + m_StandardLibrary "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary" + m_StandardLibraryInterop "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibraryInterop" + m_StandardLibrary_Sequence "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_Sequence" + m_StandardLibrary_String "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_String" + m_StandardLibrary_UInt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_UInt" + m_Streams "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Streams" + m_UnicodeStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UnicodeStrings" + m__Unicode "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Unicode_" + m_Utf16EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf16EncodingForm" + m_Utf8EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf8EncodingForm" + m_Wrappers "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers" + m__System "github.com/dafny-lang/DafnyRuntimeGo/v4/System_" + _dafny "github.com/dafny-lang/DafnyRuntimeGo/v4/dafny" +) + +var _ = os.Args +var _ _dafny.Dummy__ +var _ m__System.Dummy__ +var _ m_Wrappers.Dummy__ +var _ m_BoundedInts.Dummy__ +var _ m_StandardLibrary_UInt.Dummy__ +var _ m_StandardLibrary_Sequence.Dummy__ +var _ m_StandardLibrary_String.Dummy__ +var _ m_StandardLibrary.Dummy__ +var _ m_AwsCryptographyPrimitivesTypes.Dummy__ +var _ m_Random.Dummy__ +var _ m_Digest.Dummy__ +var _ m_WrappedHMAC.Dummy__ +var _ m_HKDF.Dummy__ +var _ m_WrappedHKDF.Dummy__ +var _ m_KdfCtr.Dummy__ +var _ m_AwsCryptographyPrimitivesOperations.Dummy__ +var _ m_AtomicPrimitives.Dummy__ +var _ m_ComAmazonawsDynamodbTypes.Dummy__ +var _ m_ComAmazonawsKmsTypes.Dummy__ +var _ m_Relations.Dummy__ +var _ m_Seq_MergeSort.Dummy__ +var _ m__Math.Dummy__ +var _ m_Seq.Dummy__ +var _ m__Unicode.Dummy__ +var _ m_Functions.Dummy__ +var _ m_Utf8EncodingForm.Dummy__ +var _ m_Utf16EncodingForm.Dummy__ +var _ m_UnicodeStrings.Dummy__ +var _ m_FileIO.Dummy__ +var _ m_GeneralInternals.Dummy__ +var _ m_MulInternalsNonlinear.Dummy__ +var _ m_MulInternals.Dummy__ +var _ m_Mul.Dummy__ +var _ m_ModInternalsNonlinear.Dummy__ +var _ m_DivInternalsNonlinear.Dummy__ +var _ m_ModInternals.Dummy__ +var _ m_DivInternals.Dummy__ +var _ m_DivMod.Dummy__ +var _ m_Power.Dummy__ +var _ m_Logarithm.Dummy__ +var _ m_StandardLibraryInterop.Dummy__ +var _ m_Streams.Dummy__ +var _ m_Sorting.Dummy__ +var _ m_HexStrings.Dummy__ +var _ m_GetOpt.Dummy__ +var _ m_FloatCompare.Dummy__ +var _ m_Base64.Dummy__ +var _ m_Base64Lemmas.Dummy__ +var _ m_Actions.Dummy__ +var _ m_AwsCryptographyKeyStoreTypes.Dummy__ +var _ m_AwsCryptographyMaterialProvidersTypes.Dummy__ +var _ m_AwsArnParsing.Dummy__ +var _ m_AwsKmsMrkMatchForDecrypt.Dummy__ +var _ m_AwsKmsUtils.Dummy__ +var _ m_KeyStoreErrorMessages.Dummy__ +var _ m_KmsArn.Dummy__ +var _ m_Structure.Dummy__ +var _ m_KMSKeystoreOperations.Dummy__ +var _ m_DDBKeystoreOperations.Dummy__ +var _ m_CreateKeys.Dummy__ +var _ m_CreateKeyStoreTable.Dummy__ +var _ m_GetKeys.Dummy__ +var _ m_AwsCryptographyKeyStoreOperations.Dummy__ +var _ m_Com_Amazonaws_Kms.Dummy__ +var _ m_Com_Amazonaws_Dynamodb.Dummy__ +var _ m_KeyStore.Dummy__ +var _ m_AlgorithmSuites.Dummy__ +var _ m_Materials.Dummy__ +var _ m_Keyring.Dummy__ + +type Dummy__ struct{} + +// Definition of class Default__ +type Default__ struct { + dummy byte +} + +func New_Default___() *Default__ { + _this := Default__{} + + return &_this +} + +type CompanionStruct_Default___ struct { +} + +var Companion_Default___ = CompanionStruct_Default___{} + +func (_this *Default__) Equals(other *Default__) bool { + return _this == other +} + +func (_this *Default__) EqualsGeneric(x interface{}) bool { + other, ok := x.(*Default__) + return ok && _this.Equals(other) +} + +func (*Default__) String() string { + return "MultiKeyring.Default__" +} +func (_this *Default__) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = &Default__{} + +func (_static *CompanionStruct_Default___) AttemptDecryptDataKey(keyring m_AwsCryptographyMaterialProvidersTypes.IKeyring, input m_AwsCryptographyMaterialProvidersTypes.OnDecryptInput) m_Wrappers.Result { + var res m_Wrappers.Result = m_Wrappers.Result{} + _ = res + var _0_valueOrError0 m_Wrappers.Result = m_Wrappers.Result{} + _ = _0_valueOrError0 + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = (keyring).OnDecrypt(input) + _0_valueOrError0 = _out0 + if (_0_valueOrError0).IsFailure() { + res = (_0_valueOrError0).PropagateFailure() + return res + } + var _1_output m_AwsCryptographyMaterialProvidersTypes.OnDecryptOutput + _ = _1_output + _1_output = (_0_valueOrError0).Extract().(m_AwsCryptographyMaterialProvidersTypes.OnDecryptOutput) + var _2_valueOrError1 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _2_valueOrError1 + _2_valueOrError1 = m_Wrappers.Companion_Default___.Need(m_Materials.Companion_Default___.DecryptionMaterialsTransitionIsValid((input).Dtor_materials(), (_1_output).Dtor_materials()), m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.SeqOfString("Keyring performed invalid material transition"))) + if (_2_valueOrError1).IsFailure() { + res = (_2_valueOrError1).PropagateFailure() + return res + } + res = m_Wrappers.Companion_Result_.Create_Success_(_1_output) + return res + return res +} + +// End of class Default__ + +// Definition of class MultiKeyring +type MultiKeyring struct { + _generatorKeyring m_Wrappers.Option + _childKeyrings _dafny.Sequence +} + +func New_MultiKeyring_() *MultiKeyring { + _this := MultiKeyring{} + + _this._generatorKeyring = m_Wrappers.Companion_Option_.Default() + _this._childKeyrings = _dafny.EmptySeq + return &_this +} + +type CompanionStruct_MultiKeyring_ struct { +} + +var Companion_MultiKeyring_ = CompanionStruct_MultiKeyring_{} + +func (_this *MultiKeyring) Equals(other *MultiKeyring) bool { + return _this == other +} + +func (_this *MultiKeyring) EqualsGeneric(x interface{}) bool { + other, ok := x.(*MultiKeyring) + return ok && _this.Equals(other) +} + +func (*MultiKeyring) String() string { + return "MultiKeyring.MultiKeyring" +} + +func Type_MultiKeyring_() _dafny.TypeDescriptor { + return type_MultiKeyring_{} +} + +type type_MultiKeyring_ struct { +} + +func (_this type_MultiKeyring_) Default() interface{} { + return (*MultiKeyring)(nil) +} + +func (_this type_MultiKeyring_) String() string { + return "MultiKeyring.MultiKeyring" +} +func (_this *MultiKeyring) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){m_Keyring.Companion_VerifiableInterface_.TraitID_, m_AwsCryptographyMaterialProvidersTypes.Companion_IKeyring_.TraitID_} +} + +var _ m_Keyring.VerifiableInterface = &MultiKeyring{} +var _ m_AwsCryptographyMaterialProvidersTypes.IKeyring = &MultiKeyring{} +var _ _dafny.TraitOffspring = &MultiKeyring{} + +func (_this *MultiKeyring) OnDecrypt(input m_AwsCryptographyMaterialProvidersTypes.OnDecryptInput) m_Wrappers.Result { + var _out1 m_Wrappers.Result + _ = _out1 + _out1 = m_AwsCryptographyMaterialProvidersTypes.Companion_IKeyring_.OnDecrypt(_this, input) + return _out1 +} +func (_this *MultiKeyring) OnEncrypt(input m_AwsCryptographyMaterialProvidersTypes.OnEncryptInput) m_Wrappers.Result { + var _out1 m_Wrappers.Result + _ = _out1 + _out1 = m_AwsCryptographyMaterialProvidersTypes.Companion_IKeyring_.OnEncrypt(_this, input) + return _out1 +} +func (_this *MultiKeyring) Ctor__(generatorKeyring m_Wrappers.Option, childKeyrings _dafny.Sequence) { + { + (_this)._generatorKeyring = generatorKeyring + (_this)._childKeyrings = childKeyrings + } +} +func (_this *MultiKeyring) OnEncrypt_k(input m_AwsCryptographyMaterialProvidersTypes.OnEncryptInput) m_Wrappers.Result { + { + var res m_Wrappers.Result = m_Wrappers.Result{} + _ = res + if (((_this).GeneratorKeyring()).Is_None()) && ((((input).Dtor_materials()).Dtor_plaintextDataKey()).Is_None()) { + var _0_exception _dafny.Sequence + _ = _0_exception + _0_exception = _dafny.SeqOfString("Need either a generator keyring or input encryption materials which contain a plaintext data key") + res = m_Wrappers.Companion_Result_.Create_Failure_(m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_0_exception)) + return res + } + var _1_returnMaterials m_AwsCryptographyMaterialProvidersTypes.EncryptionMaterials + _ = _1_returnMaterials + _1_returnMaterials = (input).Dtor_materials() + if ((_this).GeneratorKeyring()).Is_Some() { + var _2_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _2_valueOrError0 + _2_valueOrError0 = m_Wrappers.Companion_Default___.Need((((input).Dtor_materials()).Dtor_plaintextDataKey()).Is_None(), m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.SeqOfString("This multi keyring has a generator but provided Encryption Materials already contain plaintext data key"))) + if (_2_valueOrError0).IsFailure() { + res = (_2_valueOrError0).PropagateFailure() + return res + } + var _3_onEncryptOutput m_Wrappers.Result + _ = _3_onEncryptOutput + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = (m_AwsCryptographyMaterialProvidersTypes.Companion_IKeyring_.CastTo_(((_this).GeneratorKeyring()).Dtor_value())).OnEncrypt(input) + _3_onEncryptOutput = _out0 + var _4_valueOrError1 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _4_valueOrError1 + _4_valueOrError1 = m_Wrappers.Companion_Default___.Need((_3_onEncryptOutput).Is_Success(), (func() m_AwsCryptographyMaterialProvidersTypes.Error { + if (_3_onEncryptOutput).Is_Failure() { + return (_3_onEncryptOutput).Dtor_error().(m_AwsCryptographyMaterialProvidersTypes.Error) + } + return m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.SeqOfString("Unexpected failure. Input to Need is !Success.")) + })()) + if (_4_valueOrError1).IsFailure() { + res = (_4_valueOrError1).PropagateFailure() + return res + } + var _5_valueOrError2 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _5_valueOrError2 + _5_valueOrError2 = m_Wrappers.Companion_Default___.Need(m_Materials.Companion_Default___.ValidEncryptionMaterialsTransition((input).Dtor_materials(), ((_3_onEncryptOutput).Dtor_value().(m_AwsCryptographyMaterialProvidersTypes.OnEncryptOutput)).Dtor_materials()), m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.SeqOfString("Generator keyring returned invalid encryption materials"))) + if (_5_valueOrError2).IsFailure() { + res = (_5_valueOrError2).PropagateFailure() + return res + } + _1_returnMaterials = ((_3_onEncryptOutput).Dtor_value().(m_AwsCryptographyMaterialProvidersTypes.OnEncryptOutput)).Dtor_materials() + } + var _hi0 _dafny.Int = _dafny.IntOfUint32(((_this).ChildKeyrings()).Cardinality()) + _ = _hi0 + for _6_i := _dafny.Zero; _6_i.Cmp(_hi0) < 0; _6_i = _6_i.Plus(_dafny.One) { + var _7_onEncryptInput m_AwsCryptographyMaterialProvidersTypes.OnEncryptInput + _ = _7_onEncryptInput + _7_onEncryptInput = m_AwsCryptographyMaterialProvidersTypes.Companion_OnEncryptInput_.Create_OnEncryptInput_(_1_returnMaterials) + var _8_onEncryptOutput m_Wrappers.Result + _ = _8_onEncryptOutput + var _out1 m_Wrappers.Result + _ = _out1 + _out1 = (((_this).ChildKeyrings()).Select((_6_i).Uint32()).(m_AwsCryptographyMaterialProvidersTypes.IKeyring)).OnEncrypt(_7_onEncryptInput) + _8_onEncryptOutput = _out1 + var _9_valueOrError3 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _9_valueOrError3 + _9_valueOrError3 = m_Wrappers.Companion_Default___.Need((_8_onEncryptOutput).Is_Success(), m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.SeqOfString("Child keyring failed to encrypt plaintext data key"))) + if (_9_valueOrError3).IsFailure() { + res = (_9_valueOrError3).PropagateFailure() + return res + } + var _10_valueOrError4 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _10_valueOrError4 + _10_valueOrError4 = m_Wrappers.Companion_Default___.Need(m_Materials.Companion_Default___.ValidEncryptionMaterialsTransition(_1_returnMaterials, ((_8_onEncryptOutput).Dtor_value().(m_AwsCryptographyMaterialProvidersTypes.OnEncryptOutput)).Dtor_materials()), m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.SeqOfString("Child keyring performed invalid transition on encryption materials"))) + if (_10_valueOrError4).IsFailure() { + res = (_10_valueOrError4).PropagateFailure() + return res + } + _1_returnMaterials = ((_8_onEncryptOutput).Dtor_value().(m_AwsCryptographyMaterialProvidersTypes.OnEncryptOutput)).Dtor_materials() + } + var _11_valueOrError5 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _11_valueOrError5 + _11_valueOrError5 = m_Wrappers.Companion_Default___.Need(m_Materials.Companion_Default___.ValidEncryptionMaterialsTransition((input).Dtor_materials(), _1_returnMaterials), m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.SeqOfString("A child or generator keyring modified the encryption materials in illegal ways."))) + if (_11_valueOrError5).IsFailure() { + res = (_11_valueOrError5).PropagateFailure() + return res + } + res = m_Wrappers.Companion_Result_.Create_Success_(m_AwsCryptographyMaterialProvidersTypes.Companion_OnEncryptOutput_.Create_OnEncryptOutput_(_1_returnMaterials)) + return res + return res + } +} +func (_this *MultiKeyring) OnDecrypt_k(input m_AwsCryptographyMaterialProvidersTypes.OnDecryptInput) m_Wrappers.Result { + { + var res m_Wrappers.Result = m_Wrappers.Result{} + _ = res + var _0_materials m_AwsCryptographyMaterialProvidersTypes.DecryptionMaterials + _ = _0_materials + _0_materials = (input).Dtor_materials() + var _1_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _1_valueOrError0 + _1_valueOrError0 = m_Wrappers.Companion_Default___.Need(m_Materials.Companion_Default___.DecryptionMaterialsWithoutPlaintextDataKey((input).Dtor_materials()), m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.SeqOfString("Keyring received decryption materials that already contain a plaintext data key."))) + if (_1_valueOrError0).IsFailure() { + res = (_1_valueOrError0).PropagateFailure() + return res + } + var _2_failures _dafny.Sequence + _ = _2_failures + _2_failures = _dafny.SeqOf() + if ((_this).GeneratorKeyring()).Is_Some() { + var _3_result m_Wrappers.Result + _ = _3_result + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = Companion_Default___.AttemptDecryptDataKey(m_AwsCryptographyMaterialProvidersTypes.Companion_IKeyring_.CastTo_(((_this).GeneratorKeyring()).Dtor_value()), input) + _3_result = _out0 + if (_3_result).Is_Success() { + if ((((_3_result).Dtor_value().(m_AwsCryptographyMaterialProvidersTypes.OnDecryptOutput)).Dtor_materials()).Dtor_plaintextDataKey()).Is_Some() { + res = m_Wrappers.Companion_Result_.Create_Success_((_3_result).Dtor_value().(m_AwsCryptographyMaterialProvidersTypes.OnDecryptOutput)) + return res + } + } else { + _2_failures = _dafny.Companion_Sequence_.Concatenate(_2_failures, _dafny.SeqOf((_3_result).Dtor_error().(m_AwsCryptographyMaterialProvidersTypes.Error))) + } + } + var _hi0 _dafny.Int = _dafny.IntOfUint32(((_this).ChildKeyrings()).Cardinality()) + _ = _hi0 + for _4_j := _dafny.Zero; _4_j.Cmp(_hi0) < 0; _4_j = _4_j.Plus(_dafny.One) { + var _5_result m_Wrappers.Result + _ = _5_result + var _out1 m_Wrappers.Result + _ = _out1 + _out1 = Companion_Default___.AttemptDecryptDataKey(((_this).ChildKeyrings()).Select((_4_j).Uint32()).(m_AwsCryptographyMaterialProvidersTypes.IKeyring), input) + _5_result = _out1 + if (_5_result).Is_Success() { + res = m_Wrappers.Companion_Result_.Create_Success_((_5_result).Dtor_value().(m_AwsCryptographyMaterialProvidersTypes.OnDecryptOutput)) + return res + } else { + _2_failures = _dafny.Companion_Sequence_.Concatenate(_2_failures, _dafny.SeqOf((_5_result).Dtor_error().(m_AwsCryptographyMaterialProvidersTypes.Error))) + } + } + var _6_combinedResult m_AwsCryptographyMaterialProvidersTypes.Error + _ = _6_combinedResult + _6_combinedResult = m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_CollectionOfErrors_(_2_failures, _dafny.SeqOfString("No Configured Keyring was able to decrypt the Data Key. The list of encountered Exceptions is available via `list`.")) + res = m_Wrappers.Companion_Result_.Create_Failure_(_6_combinedResult) + return res + return res + } +} +func (_this *MultiKeyring) GeneratorKeyring() m_Wrappers.Option { + { + return _this._generatorKeyring + } +} +func (_this *MultiKeyring) ChildKeyrings() _dafny.Sequence { + { + return _this._childKeyrings + } +} + +// End of class MultiKeyring diff --git a/customer-preview/mpl/RawAESKeyring/RawAESKeyring.go b/customer-preview/mpl/RawAESKeyring/RawAESKeyring.go new file mode 100644 index 000000000..17806441d --- /dev/null +++ b/customer-preview/mpl/RawAESKeyring/RawAESKeyring.go @@ -0,0 +1,1172 @@ +// Package RawAESKeyring +// Dafny module RawAESKeyring compiled into Go + +package RawAESKeyring + +import ( + os "os" + + m_ComAmazonawsDynamodbTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/ComAmazonawsDynamodbTypes" + m_Com_Amazonaws_Dynamodb "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/Com_Amazonaws_Dynamodb" + m_ComAmazonawsKmsTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/ComAmazonawsKmsTypes" + m_Com_Amazonaws_Kms "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/Com_Amazonaws_Kms" + m_AlgorithmSuites "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AlgorithmSuites" + m_AwsArnParsing "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsArnParsing" + m_AwsCryptographyKeyStoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreOperations" + m_AwsCryptographyKeyStoreTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreTypes" + m_AwsCryptographyMaterialProvidersTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersTypes" + m_AwsKmsDiscoveryKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsDiscoveryKeyring" + m_AwsKmsEcdhKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsEcdhKeyring" + m_AwsKmsHierarchicalKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsHierarchicalKeyring" + m_AwsKmsKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsKeyring" + m_AwsKmsMrkAreUnique "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkAreUnique" + m_AwsKmsMrkDiscoveryKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkDiscoveryKeyring" + m_AwsKmsMrkKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkKeyring" + m_AwsKmsMrkMatchForDecrypt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkMatchForDecrypt" + m_AwsKmsRsaKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsRsaKeyring" + m_AwsKmsUtils "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsUtils" + m_CacheConstants "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CacheConstants" + m_CanonicalEncryptionContext "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CanonicalEncryptionContext" + m_Constants "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Constants" + m_CreateKeyStoreTable "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeyStoreTable" + m_CreateKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeys" + m_DDBKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DDBKeystoreOperations" + m_DiscoveryMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DiscoveryMultiKeyring" + m_EcdhEdkWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/EcdhEdkWrapping" + m_EdkWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/EdkWrapping" + m_ErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/ErrorMessages" + m_GetKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/GetKeys" + m_IntermediateKeyWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/IntermediateKeyWrapping" + m_KMSKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KMSKeystoreOperations" + m_KeyStore "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStore" + m_KeyStoreErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStoreErrorMessages" + m_Keyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Keyring" + m_KmsArn "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KmsArn" + m_LocalCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/LocalCMC" + m_MaterialWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MaterialWrapping" + m_Materials "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Materials" + m_MrkAwareDiscoveryMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MrkAwareDiscoveryMultiKeyring" + m_MrkAwareStrictMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MrkAwareStrictMultiKeyring" + m_MultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MultiKeyring" + m_RawECDHKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawECDHKeyring" + m_StormTracker "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StormTracker" + m_StormTrackingCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StormTrackingCMC" + m_StrictMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StrictMultiKeyring" + m_Structure "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Structure" + m_SynchronizedLocalCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/SynchronizedLocalCMC" + m_AtomicPrimitives "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AtomicPrimitives" + m_AwsCryptographyPrimitivesOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesOperations" + m_AwsCryptographyPrimitivesTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesTypes" + m_Digest "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Digest" + m_HKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/HKDF" + m_KdfCtr "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/KdfCtr" + m_Random "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Random" + m_WrappedHKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHKDF" + m_WrappedHMAC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHMAC" + m_Actions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Actions" + m_Base64 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64" + m_Base64Lemmas "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64Lemmas" + m_BoundedInts "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/BoundedInts" + m_DivInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternals" + m_DivInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternalsNonlinear" + m_DivMod "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivMod" + m_FileIO "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FileIO" + m_FloatCompare "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FloatCompare" + m_Functions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Functions" + m_GeneralInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GeneralInternals" + m_GetOpt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GetOpt" + m_HexStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/HexStrings" + m_Logarithm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Logarithm" + m__Math "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Math_" + m_ModInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternals" + m_ModInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternalsNonlinear" + m_Mul "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Mul" + m_MulInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternals" + m_MulInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternalsNonlinear" + m_Power "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Power" + m_Relations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Relations" + m_Seq "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq" + m_Seq_MergeSort "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq_MergeSort" + m_Sorting "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Sorting" + m_StandardLibrary "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary" + m_StandardLibraryInterop "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibraryInterop" + m_StandardLibrary_Sequence "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_Sequence" + m_StandardLibrary_String "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_String" + m_StandardLibrary_UInt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_UInt" + m_Streams "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Streams" + m_UTF8 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UTF8" + m_UnicodeStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UnicodeStrings" + m__Unicode "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Unicode_" + m_Utf16EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf16EncodingForm" + m_Utf8EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf8EncodingForm" + m_Wrappers "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers" + m__System "github.com/dafny-lang/DafnyRuntimeGo/v4/System_" + _dafny "github.com/dafny-lang/DafnyRuntimeGo/v4/dafny" +) + +var _ = os.Args +var _ _dafny.Dummy__ +var _ m__System.Dummy__ +var _ m_Wrappers.Dummy__ +var _ m_BoundedInts.Dummy__ +var _ m_StandardLibrary_UInt.Dummy__ +var _ m_StandardLibrary_Sequence.Dummy__ +var _ m_StandardLibrary_String.Dummy__ +var _ m_StandardLibrary.Dummy__ +var _ m_AwsCryptographyPrimitivesTypes.Dummy__ +var _ m_Random.Dummy__ +var _ m_Digest.Dummy__ +var _ m_WrappedHMAC.Dummy__ +var _ m_HKDF.Dummy__ +var _ m_WrappedHKDF.Dummy__ +var _ m_KdfCtr.Dummy__ +var _ m_AwsCryptographyPrimitivesOperations.Dummy__ +var _ m_AtomicPrimitives.Dummy__ +var _ m_ComAmazonawsDynamodbTypes.Dummy__ +var _ m_ComAmazonawsKmsTypes.Dummy__ +var _ m_Relations.Dummy__ +var _ m_Seq_MergeSort.Dummy__ +var _ m__Math.Dummy__ +var _ m_Seq.Dummy__ +var _ m__Unicode.Dummy__ +var _ m_Functions.Dummy__ +var _ m_Utf8EncodingForm.Dummy__ +var _ m_Utf16EncodingForm.Dummy__ +var _ m_UnicodeStrings.Dummy__ +var _ m_FileIO.Dummy__ +var _ m_GeneralInternals.Dummy__ +var _ m_MulInternalsNonlinear.Dummy__ +var _ m_MulInternals.Dummy__ +var _ m_Mul.Dummy__ +var _ m_ModInternalsNonlinear.Dummy__ +var _ m_DivInternalsNonlinear.Dummy__ +var _ m_ModInternals.Dummy__ +var _ m_DivInternals.Dummy__ +var _ m_DivMod.Dummy__ +var _ m_Power.Dummy__ +var _ m_Logarithm.Dummy__ +var _ m_StandardLibraryInterop.Dummy__ +var _ m_Streams.Dummy__ +var _ m_Sorting.Dummy__ +var _ m_HexStrings.Dummy__ +var _ m_GetOpt.Dummy__ +var _ m_FloatCompare.Dummy__ +var _ m_Base64.Dummy__ +var _ m_Base64Lemmas.Dummy__ +var _ m_Actions.Dummy__ +var _ m_AwsCryptographyKeyStoreTypes.Dummy__ +var _ m_AwsCryptographyMaterialProvidersTypes.Dummy__ +var _ m_AwsArnParsing.Dummy__ +var _ m_AwsKmsMrkMatchForDecrypt.Dummy__ +var _ m_AwsKmsUtils.Dummy__ +var _ m_KeyStoreErrorMessages.Dummy__ +var _ m_KmsArn.Dummy__ +var _ m_Structure.Dummy__ +var _ m_KMSKeystoreOperations.Dummy__ +var _ m_DDBKeystoreOperations.Dummy__ +var _ m_CreateKeys.Dummy__ +var _ m_CreateKeyStoreTable.Dummy__ +var _ m_GetKeys.Dummy__ +var _ m_AwsCryptographyKeyStoreOperations.Dummy__ +var _ m_Com_Amazonaws_Kms.Dummy__ +var _ m_Com_Amazonaws_Dynamodb.Dummy__ +var _ m_KeyStore.Dummy__ +var _ m_AlgorithmSuites.Dummy__ +var _ m_Materials.Dummy__ +var _ m_Keyring.Dummy__ +var _ m_MultiKeyring.Dummy__ +var _ m_AwsKmsMrkAreUnique.Dummy__ +var _ m_Constants.Dummy__ +var _ m_MaterialWrapping.Dummy__ +var _ m_CanonicalEncryptionContext.Dummy__ +var _ m_IntermediateKeyWrapping.Dummy__ +var _ m_EdkWrapping.Dummy__ +var _ m_ErrorMessages.Dummy__ +var _ m_AwsKmsKeyring.Dummy__ +var _ m_StrictMultiKeyring.Dummy__ +var _ m_AwsKmsDiscoveryKeyring.Dummy__ +var _ m_DiscoveryMultiKeyring.Dummy__ +var _ m_AwsKmsMrkDiscoveryKeyring.Dummy__ +var _ m_MrkAwareDiscoveryMultiKeyring.Dummy__ +var _ m_AwsKmsMrkKeyring.Dummy__ +var _ m_MrkAwareStrictMultiKeyring.Dummy__ +var _ m_LocalCMC.Dummy__ +var _ m_SynchronizedLocalCMC.Dummy__ +var _ m_StormTracker.Dummy__ +var _ m_StormTrackingCMC.Dummy__ +var _ m_CacheConstants.Dummy__ +var _ m_AwsKmsHierarchicalKeyring.Dummy__ +var _ m_AwsKmsRsaKeyring.Dummy__ +var _ m_EcdhEdkWrapping.Dummy__ +var _ m_RawECDHKeyring.Dummy__ +var _ m_AwsKmsEcdhKeyring.Dummy__ + +type Dummy__ struct{} + +// Definition of class Default__ +type Default__ struct { + dummy byte +} + +func New_Default___() *Default__ { + _this := Default__{} + + return &_this +} + +type CompanionStruct_Default___ struct { +} + +var Companion_Default___ = CompanionStruct_Default___{} + +func (_this *Default__) Equals(other *Default__) bool { + return _this == other +} + +func (_this *Default__) EqualsGeneric(x interface{}) bool { + other, ok := x.(*Default__) + return ok && _this.Equals(other) +} + +func (*Default__) String() string { + return "RawAESKeyring.Default__" +} +func (_this *Default__) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = &Default__{} + +func (_static *CompanionStruct_Default___) DeserializeEDKCiphertext(ciphertext _dafny.Sequence, tagLen _dafny.Int) m_AwsCryptographyPrimitivesTypes.AESEncryptOutput { + var _0_encryptedKeyLength _dafny.Int = (_dafny.IntOfUint32((ciphertext).Cardinality())).Minus(tagLen) + _ = _0_encryptedKeyLength + return m_AwsCryptographyPrimitivesTypes.Companion_AESEncryptOutput_.Create_AESEncryptOutput_((ciphertext).Take((_0_encryptedKeyLength).Uint32()), (ciphertext).Drop((_0_encryptedKeyLength).Uint32())) +} +func (_static *CompanionStruct_Default___) SerializeEDKCiphertext(encOutput m_AwsCryptographyPrimitivesTypes.AESEncryptOutput) _dafny.Sequence { + return _dafny.Companion_Sequence_.Concatenate((encOutput).Dtor_cipherText(), (encOutput).Dtor_authTag()) +} +func (_static *CompanionStruct_Default___) AUTH__TAG__LEN__LEN() _dafny.Int { + return _dafny.IntOfInt64(4) +} +func (_static *CompanionStruct_Default___) IV__LEN__LEN() _dafny.Int { + return _dafny.IntOfInt64(4) +} + +// End of class Default__ + +// Definition of class RawAESKeyring +type RawAESKeyring struct { + _cryptoPrimitives *m_AtomicPrimitives.AtomicPrimitivesClient + _wrappingKey _dafny.Sequence + _wrappingAlgorithm m_AwsCryptographyPrimitivesTypes.AES__GCM + _keyNamespace _dafny.Sequence + _keyName _dafny.Sequence +} + +func New_RawAESKeyring_() *RawAESKeyring { + _this := RawAESKeyring{} + + _this._cryptoPrimitives = (*m_AtomicPrimitives.AtomicPrimitivesClient)(nil) + _this._wrappingKey = _dafny.EmptySeq + _this._wrappingAlgorithm = m_AwsCryptographyPrimitivesTypes.AES__GCM{} + _this._keyNamespace = m_UTF8.Companion_ValidUTF8Bytes_.Witness() + _this._keyName = m_UTF8.Companion_ValidUTF8Bytes_.Witness() + return &_this +} + +type CompanionStruct_RawAESKeyring_ struct { +} + +var Companion_RawAESKeyring_ = CompanionStruct_RawAESKeyring_{} + +func (_this *RawAESKeyring) Equals(other *RawAESKeyring) bool { + return _this == other +} + +func (_this *RawAESKeyring) EqualsGeneric(x interface{}) bool { + other, ok := x.(*RawAESKeyring) + return ok && _this.Equals(other) +} + +func (*RawAESKeyring) String() string { + return "RawAESKeyring.RawAESKeyring" +} + +func Type_RawAESKeyring_() _dafny.TypeDescriptor { + return type_RawAESKeyring_{} +} + +type type_RawAESKeyring_ struct { +} + +func (_this type_RawAESKeyring_) Default() interface{} { + return (*RawAESKeyring)(nil) +} + +func (_this type_RawAESKeyring_) String() string { + return "RawAESKeyring.RawAESKeyring" +} +func (_this *RawAESKeyring) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){m_Keyring.Companion_VerifiableInterface_.TraitID_, m_AwsCryptographyMaterialProvidersTypes.Companion_IKeyring_.TraitID_} +} + +var _ m_Keyring.VerifiableInterface = &RawAESKeyring{} +var _ m_AwsCryptographyMaterialProvidersTypes.IKeyring = &RawAESKeyring{} +var _ _dafny.TraitOffspring = &RawAESKeyring{} + +func (_this *RawAESKeyring) OnDecrypt(input m_AwsCryptographyMaterialProvidersTypes.OnDecryptInput) m_Wrappers.Result { + var _out10 m_Wrappers.Result + _ = _out10 + _out10 = m_AwsCryptographyMaterialProvidersTypes.Companion_IKeyring_.OnDecrypt(_this, input) + return _out10 +} +func (_this *RawAESKeyring) OnEncrypt(input m_AwsCryptographyMaterialProvidersTypes.OnEncryptInput) m_Wrappers.Result { + var _out10 m_Wrappers.Result + _ = _out10 + _out10 = m_AwsCryptographyMaterialProvidersTypes.Companion_IKeyring_.OnEncrypt(_this, input) + return _out10 +} +func (_this *RawAESKeyring) Ctor__(namespace _dafny.Sequence, name _dafny.Sequence, key _dafny.Sequence, wrappingAlgorithm m_AwsCryptographyPrimitivesTypes.AES__GCM, cryptoPrimitives *m_AtomicPrimitives.AtomicPrimitivesClient) { + { + (_this)._keyNamespace = namespace + (_this)._keyName = name + (_this)._wrappingKey = key + (_this)._wrappingAlgorithm = wrappingAlgorithm + (_this)._cryptoPrimitives = cryptoPrimitives + } +} +func (_this *RawAESKeyring) OnEncrypt_k(input m_AwsCryptographyMaterialProvidersTypes.OnEncryptInput) m_Wrappers.Result { + { + var output m_Wrappers.Result = m_Wrappers.Result{} + _ = output + var _0_materials m_AwsCryptographyMaterialProvidersTypes.EncryptionMaterials + _ = _0_materials + _0_materials = (input).Dtor_materials() + var _1_suite m_AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo + _ = _1_suite + _1_suite = (_0_materials).Dtor_algorithmSuite() + var _2_wrap *AesWrapKeyMaterial + _ = _2_wrap + var _nw0 *AesWrapKeyMaterial = New_AesWrapKeyMaterial_() + _ = _nw0 + _nw0.Ctor__((_this).WrappingKey(), (_this).WrappingAlgorithm(), (_this).CryptoPrimitives()) + _2_wrap = _nw0 + var _3_generateAndWrap *AesGenerateAndWrapKeyMaterial + _ = _3_generateAndWrap + var _nw1 *AesGenerateAndWrapKeyMaterial = New_AesGenerateAndWrapKeyMaterial_() + _ = _nw1 + _nw1.Ctor__(_2_wrap) + _3_generateAndWrap = _nw1 + var _4_valueOrError0 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_EdkWrapping.Companion_WrapEdkMaterialOutput_.Default(Companion_AesWrapInfo_.Default())) + _ = _4_valueOrError0 + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_EdkWrapping.Companion_Default___.WrapEdkMaterial(_0_materials, _2_wrap, _3_generateAndWrap) + _4_valueOrError0 = _out0 + if (_4_valueOrError0).IsFailure() { + output = (_4_valueOrError0).PropagateFailure() + return output + } + var _5_wrapOutput m_EdkWrapping.WrapEdkMaterialOutput + _ = _5_wrapOutput + _5_wrapOutput = (_4_valueOrError0).Extract().(m_EdkWrapping.WrapEdkMaterialOutput) + var _6_symmetricSigningKeyList m_Wrappers.Option + _ = _6_symmetricSigningKeyList + if ((_5_wrapOutput).Dtor_symmetricSigningKey()).Is_Some() { + _6_symmetricSigningKeyList = m_Wrappers.Companion_Option_.Create_Some_(_dafny.SeqOf(((_5_wrapOutput).Dtor_symmetricSigningKey()).Dtor_value().(_dafny.Sequence))) + } else { + _6_symmetricSigningKeyList = m_Wrappers.Companion_Option_.Create_None_() + } + var _7_edk m_AwsCryptographyMaterialProvidersTypes.EncryptedDataKey + _ = _7_edk + _7_edk = m_AwsCryptographyMaterialProvidersTypes.Companion_EncryptedDataKey_.Create_EncryptedDataKey_((_this).KeyNamespace(), (_this).SerializeProviderInfo(((_5_wrapOutput).Dtor_wrapInfo().(AesWrapInfo)).Dtor_iv()), (_5_wrapOutput).Dtor_wrappedMaterial()) + if (_5_wrapOutput).Is_GenerateAndWrapEdkMaterialOutput() { + var _8_valueOrError1 m_Wrappers.Result = m_Wrappers.Result{} + _ = _8_valueOrError1 + _8_valueOrError1 = m_Materials.Companion_Default___.EncryptionMaterialAddDataKey(_0_materials, (_5_wrapOutput).Dtor_plaintextDataKey(), _dafny.SeqOf(_7_edk), _6_symmetricSigningKeyList) + if (_8_valueOrError1).IsFailure() { + output = (_8_valueOrError1).PropagateFailure() + return output + } + var _9_result m_AwsCryptographyMaterialProvidersTypes.EncryptionMaterials + _ = _9_result + _9_result = (_8_valueOrError1).Extract().(m_AwsCryptographyMaterialProvidersTypes.EncryptionMaterials) + output = m_Wrappers.Companion_Result_.Create_Success_(m_AwsCryptographyMaterialProvidersTypes.Companion_OnEncryptOutput_.Create_OnEncryptOutput_(_9_result)) + return output + } else if (_5_wrapOutput).Is_WrapOnlyEdkMaterialOutput() { + var _10_valueOrError2 m_Wrappers.Result = m_Wrappers.Result{} + _ = _10_valueOrError2 + _10_valueOrError2 = m_Materials.Companion_Default___.EncryptionMaterialAddEncryptedDataKeys(_0_materials, _dafny.SeqOf(_7_edk), _6_symmetricSigningKeyList) + if (_10_valueOrError2).IsFailure() { + output = (_10_valueOrError2).PropagateFailure() + return output + } + var _11_result m_AwsCryptographyMaterialProvidersTypes.EncryptionMaterials + _ = _11_result + _11_result = (_10_valueOrError2).Extract().(m_AwsCryptographyMaterialProvidersTypes.EncryptionMaterials) + output = m_Wrappers.Companion_Result_.Create_Success_(m_AwsCryptographyMaterialProvidersTypes.Companion_OnEncryptOutput_.Create_OnEncryptOutput_(_11_result)) + return output + } + return output + } +} +func (_this *RawAESKeyring) OnDecrypt_k(input m_AwsCryptographyMaterialProvidersTypes.OnDecryptInput) m_Wrappers.Result { + { + var output m_Wrappers.Result = m_Wrappers.Result{} + _ = output + var _0_materials m_AwsCryptographyMaterialProvidersTypes.DecryptionMaterials + _ = _0_materials + _0_materials = (input).Dtor_materials() + var _1_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _1_valueOrError0 + _1_valueOrError0 = m_Wrappers.Companion_Default___.Need(m_Materials.Companion_Default___.DecryptionMaterialsWithoutPlaintextDataKey(_0_materials), m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.SeqOfString("Keyring received decryption materials that already contain a plaintext data key."))) + if (_1_valueOrError0).IsFailure() { + output = (_1_valueOrError0).PropagateFailure() + return output + } + var _2_valueOrError1 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = _2_valueOrError1 + _2_valueOrError1 = m_CanonicalEncryptionContext.Companion_Default___.EncryptionContextToAAD(((input).Dtor_materials()).Dtor_encryptionContext()) + if (_2_valueOrError1).IsFailure() { + output = (_2_valueOrError1).PropagateFailure() + return output + } + var _3_aad _dafny.Sequence + _ = _3_aad + _3_aad = (_2_valueOrError1).Extract().(_dafny.Sequence) + var _4_valueOrError2 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _4_valueOrError2 + _4_valueOrError2 = m_Wrappers.Companion_Default___.Need((_dafny.IntOfUint32(((_this).WrappingKey()).Cardinality())).Cmp(_dafny.IntOfInt32(((_this).WrappingAlgorithm()).Dtor_keyLength())) == 0, m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.SeqOfString("The wrapping key does not match the wrapping algorithm"))) + if (_4_valueOrError2).IsFailure() { + output = (_4_valueOrError2).PropagateFailure() + return output + } + var _5_errors _dafny.Sequence + _ = _5_errors + _5_errors = _dafny.SeqOf() + var _hi0 _dafny.Int = _dafny.IntOfUint32(((input).Dtor_encryptedDataKeys()).Cardinality()) + _ = _hi0 + for _6_i := _dafny.Zero; _6_i.Cmp(_hi0) < 0; _6_i = _6_i.Plus(_dafny.One) { + if (_this).ShouldDecryptEDK(((input).Dtor_encryptedDataKeys()).Select((_6_i).Uint32()).(m_AwsCryptographyMaterialProvidersTypes.EncryptedDataKey)) { + var _7_edk m_AwsCryptographyMaterialProvidersTypes.EncryptedDataKey + _ = _7_edk + _7_edk = ((input).Dtor_encryptedDataKeys()).Select((_6_i).Uint32()).(m_AwsCryptographyMaterialProvidersTypes.EncryptedDataKey) + var _8_iv _dafny.Sequence + _ = _8_iv + _8_iv = (_this).GetIvFromProvInfo((_7_edk).Dtor_keyProviderInfo()) + var _9_unwrap *AesUnwrapKeyMaterial + _ = _9_unwrap + var _nw0 *AesUnwrapKeyMaterial = New_AesUnwrapKeyMaterial_() + _ = _nw0 + _nw0.Ctor__((_this).WrappingKey(), (_this).WrappingAlgorithm(), _8_iv, (_this).CryptoPrimitives()) + _9_unwrap = _nw0 + var _10_unwrapOutput m_Wrappers.Result + _ = _10_unwrapOutput + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_EdkWrapping.Companion_Default___.UnwrapEdkMaterial((_7_edk).Dtor_ciphertext(), _0_materials, _9_unwrap) + _10_unwrapOutput = _out0 + if (_10_unwrapOutput).Is_Success() { + var _11_valueOrError3 m_Wrappers.Result = m_Wrappers.Result{} + _ = _11_valueOrError3 + _11_valueOrError3 = m_Materials.Companion_Default___.DecryptionMaterialsAddDataKey(_0_materials, ((_10_unwrapOutput).Dtor_value().(m_EdkWrapping.UnwrapEdkMaterialOutput)).Dtor_plaintextDataKey(), ((_10_unwrapOutput).Dtor_value().(m_EdkWrapping.UnwrapEdkMaterialOutput)).Dtor_symmetricSigningKey()) + if (_11_valueOrError3).IsFailure() { + output = (_11_valueOrError3).PropagateFailure() + return output + } + var _12_result m_AwsCryptographyMaterialProvidersTypes.DecryptionMaterials + _ = _12_result + _12_result = (_11_valueOrError3).Extract().(m_AwsCryptographyMaterialProvidersTypes.DecryptionMaterials) + var _13_value m_AwsCryptographyMaterialProvidersTypes.OnDecryptOutput + _ = _13_value + _13_value = m_AwsCryptographyMaterialProvidersTypes.Companion_OnDecryptOutput_.Create_OnDecryptOutput_(_12_result) + output = m_Wrappers.Companion_Result_.Create_Success_(_13_value) + return output + } else { + _5_errors = _dafny.Companion_Sequence_.Concatenate(_5_errors, _dafny.SeqOf((_10_unwrapOutput).Dtor_error().(m_AwsCryptographyMaterialProvidersTypes.Error))) + } + } else { + var _14_valueOrError4 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq.SetString()) + _ = _14_valueOrError4 + _14_valueOrError4 = (m_UTF8.Decode((((input).Dtor_encryptedDataKeys()).Select((_6_i).Uint32()).(m_AwsCryptographyMaterialProvidersTypes.EncryptedDataKey)).Dtor_keyProviderId())).MapFailure(func(coer120 func(_dafny.Sequence) m_AwsCryptographyMaterialProvidersTypes.Error) func(interface{}) interface{} { + return func(arg121 interface{}) interface{} { + return coer120(arg121.(_dafny.Sequence)) + } + }(func(_15_e _dafny.Sequence) m_AwsCryptographyMaterialProvidersTypes.Error { + return m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_15_e) + })) + if (_14_valueOrError4).IsFailure() { + output = (_14_valueOrError4).PropagateFailure() + return output + } + var _16_extractedKeyProviderId _dafny.Sequence + _ = _16_extractedKeyProviderId + _16_extractedKeyProviderId = (_14_valueOrError4).Extract().(_dafny.Sequence) + _5_errors = _dafny.Companion_Sequence_.Concatenate(_5_errors, _dafny.SeqOf(m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(m_ErrorMessages.Companion_Default___.IncorrectRawDataKeys(m_StandardLibrary_String.Companion_Default___.Base10Int2String(_6_i), _dafny.SeqOfString("AESKeyring"), _16_extractedKeyProviderId)))) + } + } + output = m_Wrappers.Companion_Result_.Create_Failure_(m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_CollectionOfErrors_(_5_errors, _dafny.SeqOfString("Raw AES Keyring was unable to decrypt any encrypted data key. The list of encountered Exceptions is avaible via `list`."))) + return output + return output + } +} +func (_this *RawAESKeyring) SerializeProviderInfo(iv _dafny.Sequence) _dafny.Sequence { + { + return _dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate((_this).KeyName(), m_StandardLibrary_UInt.Companion_Default___.UInt32ToSeq(uint32((((_this).WrappingAlgorithm()).Dtor_tagLength())*(int32(8))))), m_StandardLibrary_UInt.Companion_Default___.UInt32ToSeq(uint32(((_this).WrappingAlgorithm()).Dtor_ivLength()))), iv) + } +} +func (_this *RawAESKeyring) ShouldDecryptEDK(edk m_AwsCryptographyMaterialProvidersTypes.EncryptedDataKey) bool { + { + return (_dafny.Companion_Sequence_.Equal((edk).Dtor_keyProviderId(), (_this).KeyNamespace())) && ((_this).ValidProviderInfo((edk).Dtor_keyProviderInfo())) + } +} +func (_this *RawAESKeyring) ValidProviderInfo(info _dafny.Sequence) bool { + { + return ((((((_dafny.IntOfUint32((info).Cardinality())).Cmp((((_dafny.IntOfUint32(((_this).KeyName()).Cardinality())).Plus(Companion_Default___.AUTH__TAG__LEN__LEN())).Plus(Companion_Default___.IV__LEN__LEN())).Plus(_dafny.IntOfInt32(((_this).WrappingAlgorithm()).Dtor_ivLength()))) == 0) && (_dafny.Companion_Sequence_.Equal((info).Subsequence(0, (_dafny.IntOfUint32(((_this).KeyName()).Cardinality())).Uint32()), (_this).KeyName()))) && ((m_StandardLibrary_UInt.Companion_Default___.SeqToUInt32((info).Subsequence((_dafny.IntOfUint32(((_this).KeyName()).Cardinality())).Uint32(), ((_dafny.IntOfUint32(((_this).KeyName()).Cardinality())).Plus(Companion_Default___.AUTH__TAG__LEN__LEN())).Uint32()))) == (uint32(128)))) && ((m_StandardLibrary_UInt.Companion_Default___.SeqToUInt32((info).Subsequence((_dafny.IntOfUint32(((_this).KeyName()).Cardinality())).Uint32(), ((_dafny.IntOfUint32(((_this).KeyName()).Cardinality())).Plus(Companion_Default___.AUTH__TAG__LEN__LEN())).Uint32()))) == ((uint32(((_this).WrappingAlgorithm()).Dtor_tagLength())) * (uint32(8))))) && ((m_StandardLibrary_UInt.Companion_Default___.SeqToUInt32((info).Subsequence(((_dafny.IntOfUint32(((_this).KeyName()).Cardinality())).Plus(Companion_Default___.AUTH__TAG__LEN__LEN())).Uint32(), (((_dafny.IntOfUint32(((_this).KeyName()).Cardinality())).Plus(Companion_Default___.AUTH__TAG__LEN__LEN())).Plus(Companion_Default___.IV__LEN__LEN())).Uint32()))) == (uint32(((_this).WrappingAlgorithm()).Dtor_ivLength())))) && ((m_StandardLibrary_UInt.Companion_Default___.SeqToUInt32((info).Subsequence(((_dafny.IntOfUint32(((_this).KeyName()).Cardinality())).Plus(Companion_Default___.AUTH__TAG__LEN__LEN())).Uint32(), (((_dafny.IntOfUint32(((_this).KeyName()).Cardinality())).Plus(Companion_Default___.AUTH__TAG__LEN__LEN())).Plus(Companion_Default___.IV__LEN__LEN())).Uint32()))) == (uint32(12))) + } +} +func (_this *RawAESKeyring) GetIvFromProvInfo(info _dafny.Sequence) _dafny.Sequence { + { + return (info).Drop((((_dafny.IntOfUint32(((_this).KeyName()).Cardinality())).Plus(Companion_Default___.AUTH__TAG__LEN__LEN())).Plus(Companion_Default___.IV__LEN__LEN())).Uint32()) + } +} +func (_this *RawAESKeyring) CryptoPrimitives() *m_AtomicPrimitives.AtomicPrimitivesClient { + { + return _this._cryptoPrimitives + } +} +func (_this *RawAESKeyring) WrappingKey() _dafny.Sequence { + { + return _this._wrappingKey + } +} +func (_this *RawAESKeyring) WrappingAlgorithm() m_AwsCryptographyPrimitivesTypes.AES__GCM { + { + return _this._wrappingAlgorithm + } +} +func (_this *RawAESKeyring) KeyNamespace() _dafny.Sequence { + { + return _this._keyNamespace + } +} +func (_this *RawAESKeyring) KeyName() _dafny.Sequence { + { + return _this._keyName + } +} + +// End of class RawAESKeyring + +// Definition of datatype AesUnwrapInfo +type AesUnwrapInfo struct { + Data_AesUnwrapInfo_ +} + +func (_this AesUnwrapInfo) Get_() Data_AesUnwrapInfo_ { + return _this.Data_AesUnwrapInfo_ +} + +type Data_AesUnwrapInfo_ interface { + isAesUnwrapInfo() +} + +type CompanionStruct_AesUnwrapInfo_ struct { +} + +var Companion_AesUnwrapInfo_ = CompanionStruct_AesUnwrapInfo_{} + +type AesUnwrapInfo_AesUnwrapInfo struct { +} + +func (AesUnwrapInfo_AesUnwrapInfo) isAesUnwrapInfo() {} + +func (CompanionStruct_AesUnwrapInfo_) Create_AesUnwrapInfo_() AesUnwrapInfo { + return AesUnwrapInfo{AesUnwrapInfo_AesUnwrapInfo{}} +} + +func (_this AesUnwrapInfo) Is_AesUnwrapInfo() bool { + _, ok := _this.Get_().(AesUnwrapInfo_AesUnwrapInfo) + return ok +} + +func (CompanionStruct_AesUnwrapInfo_) Default() AesUnwrapInfo { + return Companion_AesUnwrapInfo_.Create_AesUnwrapInfo_() +} + +func (_ CompanionStruct_AesUnwrapInfo_) AllSingletonConstructors() _dafny.Iterator { + i := -1 + return func() (interface{}, bool) { + i++ + switch i { + case 0: + return Companion_AesUnwrapInfo_.Create_AesUnwrapInfo_(), true + default: + return AesUnwrapInfo{}, false + } + } +} + +func (_this AesUnwrapInfo) String() string { + switch _this.Get_().(type) { + case nil: + return "null" + case AesUnwrapInfo_AesUnwrapInfo: + { + return "RawAESKeyring.AesUnwrapInfo.AesUnwrapInfo" + } + default: + { + return "" + } + } +} + +func (_this AesUnwrapInfo) Equals(other AesUnwrapInfo) bool { + switch _this.Get_().(type) { + case AesUnwrapInfo_AesUnwrapInfo: + { + _, ok := other.Get_().(AesUnwrapInfo_AesUnwrapInfo) + return ok + } + default: + { + return false // unexpected + } + } +} + +func (_this AesUnwrapInfo) EqualsGeneric(other interface{}) bool { + typed, ok := other.(AesUnwrapInfo) + return ok && _this.Equals(typed) +} + +func Type_AesUnwrapInfo_() _dafny.TypeDescriptor { + return type_AesUnwrapInfo_{} +} + +type type_AesUnwrapInfo_ struct { +} + +func (_this type_AesUnwrapInfo_) Default() interface{} { + return Companion_AesUnwrapInfo_.Default() +} + +func (_this type_AesUnwrapInfo_) String() string { + return "RawAESKeyring.AesUnwrapInfo" +} +func (_this AesUnwrapInfo) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = AesUnwrapInfo{} + +// End of datatype AesUnwrapInfo + +// Definition of datatype AesWrapInfo +type AesWrapInfo struct { + Data_AesWrapInfo_ +} + +func (_this AesWrapInfo) Get_() Data_AesWrapInfo_ { + return _this.Data_AesWrapInfo_ +} + +type Data_AesWrapInfo_ interface { + isAesWrapInfo() +} + +type CompanionStruct_AesWrapInfo_ struct { +} + +var Companion_AesWrapInfo_ = CompanionStruct_AesWrapInfo_{} + +type AesWrapInfo_AesWrapInfo struct { + Iv _dafny.Sequence +} + +func (AesWrapInfo_AesWrapInfo) isAesWrapInfo() {} + +func (CompanionStruct_AesWrapInfo_) Create_AesWrapInfo_(Iv _dafny.Sequence) AesWrapInfo { + return AesWrapInfo{AesWrapInfo_AesWrapInfo{Iv}} +} + +func (_this AesWrapInfo) Is_AesWrapInfo() bool { + _, ok := _this.Get_().(AesWrapInfo_AesWrapInfo) + return ok +} + +func (CompanionStruct_AesWrapInfo_) Default() AesWrapInfo { + return Companion_AesWrapInfo_.Create_AesWrapInfo_(_dafny.EmptySeq) +} + +func (_this AesWrapInfo) Dtor_iv() _dafny.Sequence { + return _this.Get_().(AesWrapInfo_AesWrapInfo).Iv +} + +func (_this AesWrapInfo) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case AesWrapInfo_AesWrapInfo: + { + return "RawAESKeyring.AesWrapInfo.AesWrapInfo" + "(" + _dafny.String(data.Iv) + ")" + } + default: + { + return "" + } + } +} + +func (_this AesWrapInfo) Equals(other AesWrapInfo) bool { + switch data1 := _this.Get_().(type) { + case AesWrapInfo_AesWrapInfo: + { + data2, ok := other.Get_().(AesWrapInfo_AesWrapInfo) + return ok && data1.Iv.Equals(data2.Iv) + } + default: + { + return false // unexpected + } + } +} + +func (_this AesWrapInfo) EqualsGeneric(other interface{}) bool { + typed, ok := other.(AesWrapInfo) + return ok && _this.Equals(typed) +} + +func Type_AesWrapInfo_() _dafny.TypeDescriptor { + return type_AesWrapInfo_{} +} + +type type_AesWrapInfo_ struct { +} + +func (_this type_AesWrapInfo_) Default() interface{} { + return Companion_AesWrapInfo_.Default() +} + +func (_this type_AesWrapInfo_) String() string { + return "RawAESKeyring.AesWrapInfo" +} +func (_this AesWrapInfo) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = AesWrapInfo{} + +// End of datatype AesWrapInfo + +// Definition of class AesGenerateAndWrapKeyMaterial +type AesGenerateAndWrapKeyMaterial struct { + _wrap *AesWrapKeyMaterial +} + +func New_AesGenerateAndWrapKeyMaterial_() *AesGenerateAndWrapKeyMaterial { + _this := AesGenerateAndWrapKeyMaterial{} + + _this._wrap = (*AesWrapKeyMaterial)(nil) + return &_this +} + +type CompanionStruct_AesGenerateAndWrapKeyMaterial_ struct { +} + +var Companion_AesGenerateAndWrapKeyMaterial_ = CompanionStruct_AesGenerateAndWrapKeyMaterial_{} + +func (_this *AesGenerateAndWrapKeyMaterial) Equals(other *AesGenerateAndWrapKeyMaterial) bool { + return _this == other +} + +func (_this *AesGenerateAndWrapKeyMaterial) EqualsGeneric(x interface{}) bool { + other, ok := x.(*AesGenerateAndWrapKeyMaterial) + return ok && _this.Equals(other) +} + +func (*AesGenerateAndWrapKeyMaterial) String() string { + return "RawAESKeyring.AesGenerateAndWrapKeyMaterial" +} + +func Type_AesGenerateAndWrapKeyMaterial_() _dafny.TypeDescriptor { + return type_AesGenerateAndWrapKeyMaterial_{} +} + +type type_AesGenerateAndWrapKeyMaterial_ struct { +} + +func (_this type_AesGenerateAndWrapKeyMaterial_) Default() interface{} { + return (*AesGenerateAndWrapKeyMaterial)(nil) +} + +func (_this type_AesGenerateAndWrapKeyMaterial_) String() string { + return "RawAESKeyring.AesGenerateAndWrapKeyMaterial" +} +func (_this *AesGenerateAndWrapKeyMaterial) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){m_MaterialWrapping.Companion_GenerateAndWrapMaterial_.TraitID_, m_Actions.Companion_ActionWithResult_.TraitID_, m_Actions.Companion_Action_.TraitID_} +} + +var _ m_MaterialWrapping.GenerateAndWrapMaterial = &AesGenerateAndWrapKeyMaterial{} +var _ m_Actions.ActionWithResult = &AesGenerateAndWrapKeyMaterial{} +var _ m_Actions.Action = &AesGenerateAndWrapKeyMaterial{} +var _ _dafny.TraitOffspring = &AesGenerateAndWrapKeyMaterial{} + +func (_this *AesGenerateAndWrapKeyMaterial) Ctor__(wrap *AesWrapKeyMaterial) { + { + (_this)._wrap = wrap + } +} +func (_this *AesGenerateAndWrapKeyMaterial) Invoke(input interface{}) interface{} { + { + var input m_MaterialWrapping.GenerateAndWrapInput = input.(m_MaterialWrapping.GenerateAndWrapInput) + _ = input + var res m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_MaterialWrapping.Companion_GenerateAndWrapOutput_.Default(Companion_AesWrapInfo_.Default())) + _ = res + var _0_generateBytesResult m_Wrappers.Result + _ = _0_generateBytesResult + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = (((_this).Wrap()).CryptoPrimitives()).GenerateRandomBytes(m_AwsCryptographyPrimitivesTypes.Companion_GenerateRandomBytesInput_.Create_GenerateRandomBytesInput_(m_AlgorithmSuites.Companion_Default___.GetEncryptKeyLength((input).Dtor_algorithmSuite()))) + _0_generateBytesResult = _out0 + var _1_valueOrError0 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = _1_valueOrError0 + _1_valueOrError0 = (_0_generateBytesResult).MapFailure(func(coer121 func(m_AwsCryptographyPrimitivesTypes.Error) m_AwsCryptographyMaterialProvidersTypes.Error) func(interface{}) interface{} { + return func(arg122 interface{}) interface{} { + return coer121(arg122.(m_AwsCryptographyPrimitivesTypes.Error)) + } + }(func(_2_e m_AwsCryptographyPrimitivesTypes.Error) m_AwsCryptographyMaterialProvidersTypes.Error { + return m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographyPrimitives_(_2_e) + })) + if (_1_valueOrError0).IsFailure() { + res = (_1_valueOrError0).PropagateFailure() + return res + } + var _3_plaintextMaterial _dafny.Sequence + _ = _3_plaintextMaterial + _3_plaintextMaterial = (_1_valueOrError0).Extract().(_dafny.Sequence) + var _4_valueOrError1 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_MaterialWrapping.Companion_WrapOutput_.Default(Companion_AesWrapInfo_.Default())) + _ = _4_valueOrError1 + var _out1 interface{} + _ = _out1 + _out1 = ((_this).Wrap()).Invoke(m_MaterialWrapping.Companion_WrapInput_.Create_WrapInput_(_3_plaintextMaterial, (input).Dtor_algorithmSuite(), (input).Dtor_encryptionContext())) + _4_valueOrError1 = _out1.(m_Wrappers.Result) + if (_4_valueOrError1).IsFailure() { + res = (_4_valueOrError1).PropagateFailure() + return res + } + var _5_wrapOutput m_MaterialWrapping.WrapOutput + _ = _5_wrapOutput + _5_wrapOutput = (_4_valueOrError1).Extract().(m_MaterialWrapping.WrapOutput) + res = m_Wrappers.Companion_Result_.Create_Success_(m_MaterialWrapping.Companion_GenerateAndWrapOutput_.Create_GenerateAndWrapOutput_(_3_plaintextMaterial, (_5_wrapOutput).Dtor_wrappedMaterial(), (_5_wrapOutput).Dtor_wrapInfo().(AesWrapInfo))) + return res + } +} +func (_this *AesGenerateAndWrapKeyMaterial) Wrap() *AesWrapKeyMaterial { + { + return _this._wrap + } +} + +// End of class AesGenerateAndWrapKeyMaterial + +// Definition of class AesWrapKeyMaterial +type AesWrapKeyMaterial struct { + _wrappingKey _dafny.Sequence + _wrappingAlgorithm m_AwsCryptographyPrimitivesTypes.AES__GCM + _cryptoPrimitives *m_AtomicPrimitives.AtomicPrimitivesClient +} + +func New_AesWrapKeyMaterial_() *AesWrapKeyMaterial { + _this := AesWrapKeyMaterial{} + + _this._wrappingKey = _dafny.EmptySeq + _this._wrappingAlgorithm = m_AwsCryptographyPrimitivesTypes.AES__GCM{} + _this._cryptoPrimitives = (*m_AtomicPrimitives.AtomicPrimitivesClient)(nil) + return &_this +} + +type CompanionStruct_AesWrapKeyMaterial_ struct { +} + +var Companion_AesWrapKeyMaterial_ = CompanionStruct_AesWrapKeyMaterial_{} + +func (_this *AesWrapKeyMaterial) Equals(other *AesWrapKeyMaterial) bool { + return _this == other +} + +func (_this *AesWrapKeyMaterial) EqualsGeneric(x interface{}) bool { + other, ok := x.(*AesWrapKeyMaterial) + return ok && _this.Equals(other) +} + +func (*AesWrapKeyMaterial) String() string { + return "RawAESKeyring.AesWrapKeyMaterial" +} + +func Type_AesWrapKeyMaterial_() _dafny.TypeDescriptor { + return type_AesWrapKeyMaterial_{} +} + +type type_AesWrapKeyMaterial_ struct { +} + +func (_this type_AesWrapKeyMaterial_) Default() interface{} { + return (*AesWrapKeyMaterial)(nil) +} + +func (_this type_AesWrapKeyMaterial_) String() string { + return "RawAESKeyring.AesWrapKeyMaterial" +} +func (_this *AesWrapKeyMaterial) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){m_MaterialWrapping.Companion_WrapMaterial_.TraitID_, m_Actions.Companion_ActionWithResult_.TraitID_, m_Actions.Companion_Action_.TraitID_} +} + +var _ m_MaterialWrapping.WrapMaterial = &AesWrapKeyMaterial{} +var _ m_Actions.ActionWithResult = &AesWrapKeyMaterial{} +var _ m_Actions.Action = &AesWrapKeyMaterial{} +var _ _dafny.TraitOffspring = &AesWrapKeyMaterial{} + +func (_this *AesWrapKeyMaterial) Ctor__(wrappingKey _dafny.Sequence, wrappingAlgorithm m_AwsCryptographyPrimitivesTypes.AES__GCM, cryptoPrimitives *m_AtomicPrimitives.AtomicPrimitivesClient) { + { + (_this)._wrappingKey = wrappingKey + (_this)._wrappingAlgorithm = wrappingAlgorithm + (_this)._cryptoPrimitives = cryptoPrimitives + } +} +func (_this *AesWrapKeyMaterial) Invoke(input interface{}) interface{} { + { + var input m_MaterialWrapping.WrapInput = input.(m_MaterialWrapping.WrapInput) + _ = input + var res m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_MaterialWrapping.Companion_WrapOutput_.Default(Companion_AesWrapInfo_.Default())) + _ = res + var _0_valueOrError0 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = _0_valueOrError0 + _0_valueOrError0 = m_CanonicalEncryptionContext.Companion_Default___.EncryptionContextToAAD((input).Dtor_encryptionContext()) + if (_0_valueOrError0).IsFailure() { + res = (_0_valueOrError0).PropagateFailure() + return res + } + var _1_aad _dafny.Sequence + _ = _1_aad + _1_aad = (_0_valueOrError0).Extract().(_dafny.Sequence) + var _2_randomIvResult m_Wrappers.Result + _ = _2_randomIvResult + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = ((_this).CryptoPrimitives()).GenerateRandomBytes(m_AwsCryptographyPrimitivesTypes.Companion_GenerateRandomBytesInput_.Create_GenerateRandomBytesInput_(((_this).WrappingAlgorithm()).Dtor_ivLength())) + _2_randomIvResult = _out0 + var _3_valueOrError1 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = _3_valueOrError1 + _3_valueOrError1 = (_2_randomIvResult).MapFailure(func(coer122 func(m_AwsCryptographyPrimitivesTypes.Error) m_AwsCryptographyMaterialProvidersTypes.Error) func(interface{}) interface{} { + return func(arg123 interface{}) interface{} { + return coer122(arg123.(m_AwsCryptographyPrimitivesTypes.Error)) + } + }(func(_4_e m_AwsCryptographyPrimitivesTypes.Error) m_AwsCryptographyMaterialProvidersTypes.Error { + return m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographyPrimitives_(_4_e) + })) + if (_3_valueOrError1).IsFailure() { + res = (_3_valueOrError1).PropagateFailure() + return res + } + var _5_iv _dafny.Sequence + _ = _5_iv + _5_iv = (_3_valueOrError1).Extract().(_dafny.Sequence) + var _6_aesEncryptResult m_Wrappers.Result + _ = _6_aesEncryptResult + var _out1 m_Wrappers.Result + _ = _out1 + _out1 = ((_this).CryptoPrimitives()).AESEncrypt(m_AwsCryptographyPrimitivesTypes.Companion_AESEncryptInput_.Create_AESEncryptInput_((_this).WrappingAlgorithm(), _5_iv, (_this).WrappingKey(), (input).Dtor_plaintextMaterial(), _1_aad)) + _6_aesEncryptResult = _out1 + var _7_valueOrError2 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_AwsCryptographyPrimitivesTypes.Companion_AESEncryptOutput_.Default()) + _ = _7_valueOrError2 + _7_valueOrError2 = (_6_aesEncryptResult).MapFailure(func(coer123 func(m_AwsCryptographyPrimitivesTypes.Error) m_AwsCryptographyMaterialProvidersTypes.Error) func(interface{}) interface{} { + return func(arg124 interface{}) interface{} { + return coer123(arg124.(m_AwsCryptographyPrimitivesTypes.Error)) + } + }(func(_8_e m_AwsCryptographyPrimitivesTypes.Error) m_AwsCryptographyMaterialProvidersTypes.Error { + return m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographyPrimitives_(_8_e) + })) + if (_7_valueOrError2).IsFailure() { + res = (_7_valueOrError2).PropagateFailure() + return res + } + var _9_wrappedMaterialResult m_AwsCryptographyPrimitivesTypes.AESEncryptOutput + _ = _9_wrappedMaterialResult + _9_wrappedMaterialResult = (_7_valueOrError2).Extract().(m_AwsCryptographyPrimitivesTypes.AESEncryptOutput) + var _10_wrappedMaterial _dafny.Sequence + _ = _10_wrappedMaterial + _10_wrappedMaterial = Companion_Default___.SerializeEDKCiphertext(_9_wrappedMaterialResult) + res = m_Wrappers.Companion_Result_.Create_Success_(m_MaterialWrapping.Companion_WrapOutput_.Create_WrapOutput_(_10_wrappedMaterial, Companion_AesWrapInfo_.Create_AesWrapInfo_(_5_iv))) + return res + return res + } +} +func (_this *AesWrapKeyMaterial) WrappingKey() _dafny.Sequence { + { + return _this._wrappingKey + } +} +func (_this *AesWrapKeyMaterial) WrappingAlgorithm() m_AwsCryptographyPrimitivesTypes.AES__GCM { + { + return _this._wrappingAlgorithm + } +} +func (_this *AesWrapKeyMaterial) CryptoPrimitives() *m_AtomicPrimitives.AtomicPrimitivesClient { + { + return _this._cryptoPrimitives + } +} + +// End of class AesWrapKeyMaterial + +// Definition of class AesUnwrapKeyMaterial +type AesUnwrapKeyMaterial struct { + _wrappingKey _dafny.Sequence + _iv _dafny.Sequence + _wrappingAlgorithm m_AwsCryptographyPrimitivesTypes.AES__GCM + _cryptoPrimitives *m_AtomicPrimitives.AtomicPrimitivesClient +} + +func New_AesUnwrapKeyMaterial_() *AesUnwrapKeyMaterial { + _this := AesUnwrapKeyMaterial{} + + _this._wrappingKey = _dafny.EmptySeq + _this._iv = _dafny.EmptySeq + _this._wrappingAlgorithm = m_AwsCryptographyPrimitivesTypes.AES__GCM{} + _this._cryptoPrimitives = (*m_AtomicPrimitives.AtomicPrimitivesClient)(nil) + return &_this +} + +type CompanionStruct_AesUnwrapKeyMaterial_ struct { +} + +var Companion_AesUnwrapKeyMaterial_ = CompanionStruct_AesUnwrapKeyMaterial_{} + +func (_this *AesUnwrapKeyMaterial) Equals(other *AesUnwrapKeyMaterial) bool { + return _this == other +} + +func (_this *AesUnwrapKeyMaterial) EqualsGeneric(x interface{}) bool { + other, ok := x.(*AesUnwrapKeyMaterial) + return ok && _this.Equals(other) +} + +func (*AesUnwrapKeyMaterial) String() string { + return "RawAESKeyring.AesUnwrapKeyMaterial" +} + +func Type_AesUnwrapKeyMaterial_() _dafny.TypeDescriptor { + return type_AesUnwrapKeyMaterial_{} +} + +type type_AesUnwrapKeyMaterial_ struct { +} + +func (_this type_AesUnwrapKeyMaterial_) Default() interface{} { + return (*AesUnwrapKeyMaterial)(nil) +} + +func (_this type_AesUnwrapKeyMaterial_) String() string { + return "RawAESKeyring.AesUnwrapKeyMaterial" +} +func (_this *AesUnwrapKeyMaterial) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){m_MaterialWrapping.Companion_UnwrapMaterial_.TraitID_, m_Actions.Companion_ActionWithResult_.TraitID_, m_Actions.Companion_Action_.TraitID_} +} + +var _ m_MaterialWrapping.UnwrapMaterial = &AesUnwrapKeyMaterial{} +var _ m_Actions.ActionWithResult = &AesUnwrapKeyMaterial{} +var _ m_Actions.Action = &AesUnwrapKeyMaterial{} +var _ _dafny.TraitOffspring = &AesUnwrapKeyMaterial{} + +func (_this *AesUnwrapKeyMaterial) Ctor__(wrappingKey _dafny.Sequence, wrappingAlgorithm m_AwsCryptographyPrimitivesTypes.AES__GCM, iv _dafny.Sequence, cryptoPrimitives *m_AtomicPrimitives.AtomicPrimitivesClient) { + { + (_this)._wrappingKey = wrappingKey + (_this)._iv = iv + (_this)._wrappingAlgorithm = wrappingAlgorithm + (_this)._cryptoPrimitives = cryptoPrimitives + } +} +func (_this *AesUnwrapKeyMaterial) Invoke(input interface{}) interface{} { + { + var input m_MaterialWrapping.UnwrapInput = input.(m_MaterialWrapping.UnwrapInput) + _ = input + var res m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_MaterialWrapping.Companion_UnwrapOutput_.Default(Companion_AesUnwrapInfo_.Default())) + _ = res + var _0_valueOrError0 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = _0_valueOrError0 + _0_valueOrError0 = m_CanonicalEncryptionContext.Companion_Default___.EncryptionContextToAAD((input).Dtor_encryptionContext()) + if (_0_valueOrError0).IsFailure() { + res = (_0_valueOrError0).PropagateFailure() + return res + } + var _1_aad _dafny.Sequence + _ = _1_aad + _1_aad = (_0_valueOrError0).Extract().(_dafny.Sequence) + var _2_valueOrError1 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _2_valueOrError1 + _2_valueOrError1 = m_Wrappers.Companion_Default___.Need((_dafny.IntOfInt32(((_this).WrappingAlgorithm()).Dtor_tagLength())).Cmp(_dafny.IntOfUint32(((input).Dtor_wrappedMaterial()).Cardinality())) <= 0, m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.SeqOfString("Insufficient data to decrypt."))) + if (_2_valueOrError1).IsFailure() { + res = (_2_valueOrError1).PropagateFailure() + return res + } + var _3_encryptionOutput m_AwsCryptographyPrimitivesTypes.AESEncryptOutput + _ = _3_encryptionOutput + _3_encryptionOutput = Companion_Default___.DeserializeEDKCiphertext((input).Dtor_wrappedMaterial(), _dafny.IntOfInt32(((_this).WrappingAlgorithm()).Dtor_tagLength())) + var _4_maybePtKey m_Wrappers.Result + _ = _4_maybePtKey + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = ((_this).CryptoPrimitives()).AESDecrypt(m_AwsCryptographyPrimitivesTypes.Companion_AESDecryptInput_.Create_AESDecryptInput_((_this).WrappingAlgorithm(), (_this).WrappingKey(), (_3_encryptionOutput).Dtor_cipherText(), (_3_encryptionOutput).Dtor_authTag(), (_this).Iv(), _1_aad)) + _4_maybePtKey = _out0 + var _5_valueOrError2 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = _5_valueOrError2 + _5_valueOrError2 = (_4_maybePtKey).MapFailure(func(coer124 func(m_AwsCryptographyPrimitivesTypes.Error) m_AwsCryptographyMaterialProvidersTypes.Error) func(interface{}) interface{} { + return func(arg125 interface{}) interface{} { + return coer124(arg125.(m_AwsCryptographyPrimitivesTypes.Error)) + } + }(func(_6_e m_AwsCryptographyPrimitivesTypes.Error) m_AwsCryptographyMaterialProvidersTypes.Error { + return m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographyPrimitives_(_6_e) + })) + if (_5_valueOrError2).IsFailure() { + res = (_5_valueOrError2).PropagateFailure() + return res + } + var _7_ptKey _dafny.Sequence + _ = _7_ptKey + _7_ptKey = (_5_valueOrError2).Extract().(_dafny.Sequence) + var _8_valueOrError3 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _8_valueOrError3 + _8_valueOrError3 = m_Wrappers.Companion_Default___.Need((_dafny.IntOfInt32(m_AlgorithmSuites.Companion_Default___.GetEncryptKeyLength((input).Dtor_algorithmSuite()))).Cmp(_dafny.IntOfUint32((_7_ptKey).Cardinality())) == 0, m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.SeqOfString("Plaintext Data Key is not the expected length"))) + if (_8_valueOrError3).IsFailure() { + res = (_8_valueOrError3).PropagateFailure() + return res + } + res = m_Wrappers.Companion_Result_.Create_Success_(m_MaterialWrapping.Companion_UnwrapOutput_.Create_UnwrapOutput_(_7_ptKey, Companion_AesUnwrapInfo_.Create_AesUnwrapInfo_())) + return res + return res + } +} +func (_this *AesUnwrapKeyMaterial) WrappingKey() _dafny.Sequence { + { + return _this._wrappingKey + } +} +func (_this *AesUnwrapKeyMaterial) Iv() _dafny.Sequence { + { + return _this._iv + } +} +func (_this *AesUnwrapKeyMaterial) WrappingAlgorithm() m_AwsCryptographyPrimitivesTypes.AES__GCM { + { + return _this._wrappingAlgorithm + } +} +func (_this *AesUnwrapKeyMaterial) CryptoPrimitives() *m_AtomicPrimitives.AtomicPrimitivesClient { + { + return _this._cryptoPrimitives + } +} + +// End of class AesUnwrapKeyMaterial diff --git a/customer-preview/mpl/RawECDHKeyring/RawECDHKeyring.go b/customer-preview/mpl/RawECDHKeyring/RawECDHKeyring.go new file mode 100644 index 000000000..aec9bfc0a --- /dev/null +++ b/customer-preview/mpl/RawECDHKeyring/RawECDHKeyring.go @@ -0,0 +1,1306 @@ +// Package RawECDHKeyring +// Dafny module RawECDHKeyring compiled into Go + +package RawECDHKeyring + +import ( + os "os" + + m_ComAmazonawsDynamodbTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/ComAmazonawsDynamodbTypes" + m_Com_Amazonaws_Dynamodb "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/Com_Amazonaws_Dynamodb" + m_ComAmazonawsKmsTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/ComAmazonawsKmsTypes" + m_Com_Amazonaws_Kms "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/Com_Amazonaws_Kms" + m_AlgorithmSuites "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AlgorithmSuites" + m_AwsArnParsing "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsArnParsing" + m_AwsCryptographyKeyStoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreOperations" + m_AwsCryptographyKeyStoreTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreTypes" + m_AwsCryptographyMaterialProvidersTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersTypes" + m_AwsKmsDiscoveryKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsDiscoveryKeyring" + m_AwsKmsHierarchicalKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsHierarchicalKeyring" + m_AwsKmsKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsKeyring" + m_AwsKmsMrkAreUnique "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkAreUnique" + m_AwsKmsMrkDiscoveryKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkDiscoveryKeyring" + m_AwsKmsMrkKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkKeyring" + m_AwsKmsMrkMatchForDecrypt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkMatchForDecrypt" + m_AwsKmsRsaKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsRsaKeyring" + m_AwsKmsUtils "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsUtils" + m_CacheConstants "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CacheConstants" + m_CanonicalEncryptionContext "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CanonicalEncryptionContext" + m_Constants "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Constants" + m_CreateKeyStoreTable "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeyStoreTable" + m_CreateKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeys" + m_DDBKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DDBKeystoreOperations" + m_DiscoveryMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DiscoveryMultiKeyring" + m_EcdhEdkWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/EcdhEdkWrapping" + m_EdkWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/EdkWrapping" + m_ErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/ErrorMessages" + m_GetKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/GetKeys" + m_IntermediateKeyWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/IntermediateKeyWrapping" + m_KMSKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KMSKeystoreOperations" + m_KeyStore "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStore" + m_KeyStoreErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStoreErrorMessages" + m_Keyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Keyring" + m_KmsArn "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KmsArn" + m_LocalCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/LocalCMC" + m_MaterialWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MaterialWrapping" + m_Materials "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Materials" + m_MrkAwareDiscoveryMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MrkAwareDiscoveryMultiKeyring" + m_MrkAwareStrictMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MrkAwareStrictMultiKeyring" + m_MultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MultiKeyring" + m_StormTracker "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StormTracker" + m_StormTrackingCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StormTrackingCMC" + m_StrictMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StrictMultiKeyring" + m_Structure "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Structure" + m_SynchronizedLocalCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/SynchronizedLocalCMC" + m_AtomicPrimitives "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AtomicPrimitives" + m_AwsCryptographyPrimitivesOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesOperations" + m_AwsCryptographyPrimitivesTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesTypes" + m_Digest "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Digest" + m_HKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/HKDF" + m_KdfCtr "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/KdfCtr" + m_Random "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Random" + m_WrappedHKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHKDF" + m_WrappedHMAC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHMAC" + m_Actions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Actions" + m_Base64 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64" + m_Base64Lemmas "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64Lemmas" + m_BoundedInts "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/BoundedInts" + m_DivInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternals" + m_DivInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternalsNonlinear" + m_DivMod "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivMod" + m_FileIO "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FileIO" + m_FloatCompare "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FloatCompare" + m_Functions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Functions" + m_GeneralInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GeneralInternals" + m_GetOpt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GetOpt" + m_HexStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/HexStrings" + m_Logarithm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Logarithm" + m__Math "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Math_" + m_ModInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternals" + m_ModInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternalsNonlinear" + m_Mul "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Mul" + m_MulInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternals" + m_MulInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternalsNonlinear" + m_Power "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Power" + m_Relations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Relations" + m_Seq "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq" + m_Seq_MergeSort "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq_MergeSort" + m_Sorting "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Sorting" + m_StandardLibrary "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary" + m_StandardLibraryInterop "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibraryInterop" + m_StandardLibrary_Sequence "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_Sequence" + m_StandardLibrary_String "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_String" + m_StandardLibrary_UInt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_UInt" + m_Streams "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Streams" + m_UTF8 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UTF8" + m_UnicodeStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UnicodeStrings" + m__Unicode "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Unicode_" + m_Utf16EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf16EncodingForm" + m_Utf8EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf8EncodingForm" + m_Wrappers "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers" + m__System "github.com/dafny-lang/DafnyRuntimeGo/v4/System_" + _dafny "github.com/dafny-lang/DafnyRuntimeGo/v4/dafny" +) + +var _ = os.Args +var _ _dafny.Dummy__ +var _ m__System.Dummy__ +var _ m_Wrappers.Dummy__ +var _ m_BoundedInts.Dummy__ +var _ m_StandardLibrary_UInt.Dummy__ +var _ m_StandardLibrary_Sequence.Dummy__ +var _ m_StandardLibrary_String.Dummy__ +var _ m_StandardLibrary.Dummy__ +var _ m_AwsCryptographyPrimitivesTypes.Dummy__ +var _ m_Random.Dummy__ +var _ m_Digest.Dummy__ +var _ m_WrappedHMAC.Dummy__ +var _ m_HKDF.Dummy__ +var _ m_WrappedHKDF.Dummy__ +var _ m_KdfCtr.Dummy__ +var _ m_AwsCryptographyPrimitivesOperations.Dummy__ +var _ m_AtomicPrimitives.Dummy__ +var _ m_ComAmazonawsDynamodbTypes.Dummy__ +var _ m_ComAmazonawsKmsTypes.Dummy__ +var _ m_Relations.Dummy__ +var _ m_Seq_MergeSort.Dummy__ +var _ m__Math.Dummy__ +var _ m_Seq.Dummy__ +var _ m__Unicode.Dummy__ +var _ m_Functions.Dummy__ +var _ m_Utf8EncodingForm.Dummy__ +var _ m_Utf16EncodingForm.Dummy__ +var _ m_UnicodeStrings.Dummy__ +var _ m_FileIO.Dummy__ +var _ m_GeneralInternals.Dummy__ +var _ m_MulInternalsNonlinear.Dummy__ +var _ m_MulInternals.Dummy__ +var _ m_Mul.Dummy__ +var _ m_ModInternalsNonlinear.Dummy__ +var _ m_DivInternalsNonlinear.Dummy__ +var _ m_ModInternals.Dummy__ +var _ m_DivInternals.Dummy__ +var _ m_DivMod.Dummy__ +var _ m_Power.Dummy__ +var _ m_Logarithm.Dummy__ +var _ m_StandardLibraryInterop.Dummy__ +var _ m_Streams.Dummy__ +var _ m_Sorting.Dummy__ +var _ m_HexStrings.Dummy__ +var _ m_GetOpt.Dummy__ +var _ m_FloatCompare.Dummy__ +var _ m_Base64.Dummy__ +var _ m_Base64Lemmas.Dummy__ +var _ m_Actions.Dummy__ +var _ m_AwsCryptographyKeyStoreTypes.Dummy__ +var _ m_AwsCryptographyMaterialProvidersTypes.Dummy__ +var _ m_AwsArnParsing.Dummy__ +var _ m_AwsKmsMrkMatchForDecrypt.Dummy__ +var _ m_AwsKmsUtils.Dummy__ +var _ m_KeyStoreErrorMessages.Dummy__ +var _ m_KmsArn.Dummy__ +var _ m_Structure.Dummy__ +var _ m_KMSKeystoreOperations.Dummy__ +var _ m_DDBKeystoreOperations.Dummy__ +var _ m_CreateKeys.Dummy__ +var _ m_CreateKeyStoreTable.Dummy__ +var _ m_GetKeys.Dummy__ +var _ m_AwsCryptographyKeyStoreOperations.Dummy__ +var _ m_Com_Amazonaws_Kms.Dummy__ +var _ m_Com_Amazonaws_Dynamodb.Dummy__ +var _ m_KeyStore.Dummy__ +var _ m_AlgorithmSuites.Dummy__ +var _ m_Materials.Dummy__ +var _ m_Keyring.Dummy__ +var _ m_MultiKeyring.Dummy__ +var _ m_AwsKmsMrkAreUnique.Dummy__ +var _ m_Constants.Dummy__ +var _ m_MaterialWrapping.Dummy__ +var _ m_CanonicalEncryptionContext.Dummy__ +var _ m_IntermediateKeyWrapping.Dummy__ +var _ m_EdkWrapping.Dummy__ +var _ m_ErrorMessages.Dummy__ +var _ m_AwsKmsKeyring.Dummy__ +var _ m_StrictMultiKeyring.Dummy__ +var _ m_AwsKmsDiscoveryKeyring.Dummy__ +var _ m_DiscoveryMultiKeyring.Dummy__ +var _ m_AwsKmsMrkDiscoveryKeyring.Dummy__ +var _ m_MrkAwareDiscoveryMultiKeyring.Dummy__ +var _ m_AwsKmsMrkKeyring.Dummy__ +var _ m_MrkAwareStrictMultiKeyring.Dummy__ +var _ m_LocalCMC.Dummy__ +var _ m_SynchronizedLocalCMC.Dummy__ +var _ m_StormTracker.Dummy__ +var _ m_StormTrackingCMC.Dummy__ +var _ m_CacheConstants.Dummy__ +var _ m_AwsKmsHierarchicalKeyring.Dummy__ +var _ m_AwsKmsRsaKeyring.Dummy__ +var _ m_EcdhEdkWrapping.Dummy__ + +type Dummy__ struct{} + +// Definition of class Default__ +type Default__ struct { + dummy byte +} + +func New_Default___() *Default__ { + _this := Default__{} + + return &_this +} + +type CompanionStruct_Default___ struct { +} + +var Companion_Default___ = CompanionStruct_Default___{} + +func (_this *Default__) Equals(other *Default__) bool { + return _this == other +} + +func (_this *Default__) EqualsGeneric(x interface{}) bool { + other, ok := x.(*Default__) + return ok && _this.Equals(other) +} + +func (*Default__) String() string { + return "RawECDHKeyring.Default__" +} +func (_this *Default__) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = &Default__{} + +func (_static *CompanionStruct_Default___) ValidPublicKeyLength(p _dafny.Sequence) bool { + return (true) && ((((_dafny.IntOfUint32((p).Cardinality())).Cmp(m_Constants.Companion_Default___.ECDH__PUBLIC__KEY__LEN__ECC__NIST__256()) == 0) || ((_dafny.IntOfUint32((p).Cardinality())).Cmp(m_Constants.Companion_Default___.ECDH__PUBLIC__KEY__LEN__ECC__NIST__384()) == 0)) || ((_dafny.IntOfUint32((p).Cardinality())).Cmp(m_Constants.Companion_Default___.ECDH__PUBLIC__KEY__LEN__ECC__NIST__521()) == 0)) +} +func (_static *CompanionStruct_Default___) ValidCompressedPublicKeyLength(p _dafny.Sequence) bool { + return (true) && ((((_dafny.IntOfUint32((p).Cardinality())).Cmp(m_Constants.Companion_Default___.ECDH__PUBLIC__KEY__COMPRESSED__LEN__ECC__NIST__256()) == 0) || ((_dafny.IntOfUint32((p).Cardinality())).Cmp(m_Constants.Companion_Default___.ECDH__PUBLIC__KEY__COMPRESSED__LEN__ECC__NIST__384()) == 0)) || ((_dafny.IntOfUint32((p).Cardinality())).Cmp(m_Constants.Companion_Default___.ECDH__PUBLIC__KEY__COMPRESSED__LEN__ECC__NIST__521()) == 0)) +} +func (_static *CompanionStruct_Default___) ValidProviderInfoLength(p _dafny.Sequence) bool { + return (((_dafny.IntOfUint32((p).Cardinality())).Cmp(_dafny.IntOfUint32(m_Constants.Companion_Default___.ECDH__PROVIDER__INFO__256__LEN())) == 0) || ((_dafny.IntOfUint32((p).Cardinality())).Cmp(_dafny.IntOfUint32(m_Constants.Companion_Default___.ECDH__PROVIDER__INFO__384__LEN())) == 0)) || ((_dafny.IntOfUint32((p).Cardinality())).Cmp(_dafny.IntOfUint32(m_Constants.Companion_Default___.ECDH__PROVIDER__INFO__521__LEN())) == 0) +} +func (_static *CompanionStruct_Default___) LocalDeriveSharedSecret(senderPrivateKey m_AwsCryptographyPrimitivesTypes.ECCPrivateKey, recipientPublicKey m_AwsCryptographyPrimitivesTypes.ECCPublicKey, curveSpec m_AwsCryptographyPrimitivesTypes.ECDHCurveSpec, crypto *m_AtomicPrimitives.AtomicPrimitivesClient) m_Wrappers.Result { + var res m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = res + var _0_maybeSharedSecret m_Wrappers.Result + _ = _0_maybeSharedSecret + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = (crypto).DeriveSharedSecret(m_AwsCryptographyPrimitivesTypes.Companion_DeriveSharedSecretInput_.Create_DeriveSharedSecretInput_(curveSpec, senderPrivateKey, recipientPublicKey)) + _0_maybeSharedSecret = _out0 + var _1_valueOrError0 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_AwsCryptographyPrimitivesTypes.Companion_DeriveSharedSecretOutput_.Default()) + _ = _1_valueOrError0 + _1_valueOrError0 = (_0_maybeSharedSecret).MapFailure(func(coer110 func(m_AwsCryptographyPrimitivesTypes.Error) m_AwsCryptographyMaterialProvidersTypes.Error) func(interface{}) interface{} { + return func(arg111 interface{}) interface{} { + return coer110(arg111.(m_AwsCryptographyPrimitivesTypes.Error)) + } + }(func(_2_e m_AwsCryptographyPrimitivesTypes.Error) m_AwsCryptographyMaterialProvidersTypes.Error { + return m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographyPrimitives_(_2_e) + })) + if (_1_valueOrError0).IsFailure() { + res = (_1_valueOrError0).PropagateFailure() + return res + } + var _3_sharedSecretOutput m_AwsCryptographyPrimitivesTypes.DeriveSharedSecretOutput + _ = _3_sharedSecretOutput + _3_sharedSecretOutput = (_1_valueOrError0).Extract().(m_AwsCryptographyPrimitivesTypes.DeriveSharedSecretOutput) + res = m_Wrappers.Companion_Result_.Create_Success_((_3_sharedSecretOutput).Dtor_sharedSecret()) + return res + return res +} +func (_static *CompanionStruct_Default___) CompressPublicKey(publicKey m_AwsCryptographyPrimitivesTypes.ECCPublicKey, curveSpec m_AwsCryptographyPrimitivesTypes.ECDHCurveSpec, crypto *m_AtomicPrimitives.AtomicPrimitivesClient) m_Wrappers.Result { + var res m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = res + var _0_maybeCompressedPublicKey m_Wrappers.Result + _ = _0_maybeCompressedPublicKey + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = (crypto).CompressPublicKey(m_AwsCryptographyPrimitivesTypes.Companion_CompressPublicKeyInput_.Create_CompressPublicKeyInput_(publicKey, curveSpec)) + _0_maybeCompressedPublicKey = _out0 + var _1_valueOrError0 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_AwsCryptographyPrimitivesTypes.Companion_CompressPublicKeyOutput_.Default()) + _ = _1_valueOrError0 + _1_valueOrError0 = (_0_maybeCompressedPublicKey).MapFailure(func(coer111 func(m_AwsCryptographyPrimitivesTypes.Error) m_AwsCryptographyMaterialProvidersTypes.Error) func(interface{}) interface{} { + return func(arg112 interface{}) interface{} { + return coer111(arg112.(m_AwsCryptographyPrimitivesTypes.Error)) + } + }(func(_2_e m_AwsCryptographyPrimitivesTypes.Error) m_AwsCryptographyMaterialProvidersTypes.Error { + return m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographyPrimitives_(_2_e) + })) + if (_1_valueOrError0).IsFailure() { + res = (_1_valueOrError0).PropagateFailure() + return res + } + var _3_compresedPublicKey m_AwsCryptographyPrimitivesTypes.CompressPublicKeyOutput + _ = _3_compresedPublicKey + _3_compresedPublicKey = (_1_valueOrError0).Extract().(m_AwsCryptographyPrimitivesTypes.CompressPublicKeyOutput) + res = m_Wrappers.Companion_Result_.Create_Success_((_3_compresedPublicKey).Dtor_compressedPublicKey()) + return res + return res +} +func (_static *CompanionStruct_Default___) DecompressPublicKey(publicKey _dafny.Sequence, curveSpec m_AwsCryptographyPrimitivesTypes.ECDHCurveSpec, crypto *m_AtomicPrimitives.AtomicPrimitivesClient) m_Wrappers.Result { + var res m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = res + var _0_maybePublicKey m_Wrappers.Result + _ = _0_maybePublicKey + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = (crypto).DecompressPublicKey(m_AwsCryptographyPrimitivesTypes.Companion_DecompressPublicKeyInput_.Create_DecompressPublicKeyInput_(publicKey, curveSpec)) + _0_maybePublicKey = _out0 + var _1_valueOrError0 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_AwsCryptographyPrimitivesTypes.Companion_DecompressPublicKeyOutput_.Default()) + _ = _1_valueOrError0 + _1_valueOrError0 = (_0_maybePublicKey).MapFailure(func(coer112 func(m_AwsCryptographyPrimitivesTypes.Error) m_AwsCryptographyMaterialProvidersTypes.Error) func(interface{}) interface{} { + return func(arg113 interface{}) interface{} { + return coer112(arg113.(m_AwsCryptographyPrimitivesTypes.Error)) + } + }(func(_2_e m_AwsCryptographyPrimitivesTypes.Error) m_AwsCryptographyMaterialProvidersTypes.Error { + return m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographyPrimitives_(_2_e) + })) + if (_1_valueOrError0).IsFailure() { + res = (_1_valueOrError0).PropagateFailure() + return res + } + var _3_publicKey m_AwsCryptographyPrimitivesTypes.DecompressPublicKeyOutput + _ = _3_publicKey + _3_publicKey = (_1_valueOrError0).Extract().(m_AwsCryptographyPrimitivesTypes.DecompressPublicKeyOutput) + res = m_Wrappers.Companion_Result_.Create_Success_(((_3_publicKey).Dtor_publicKey()).Dtor_der()) + return res + return res +} +func (_static *CompanionStruct_Default___) SerializeProviderInfo(senderPublicKey _dafny.Sequence, recipientPublicKey _dafny.Sequence) _dafny.Sequence { + return _dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(Companion_Default___.RAW__ECDH__KEYRING__VERSION(), m_StandardLibrary_UInt.Companion_Default___.UInt32ToSeq(uint32((recipientPublicKey).Cardinality()))), recipientPublicKey), m_StandardLibrary_UInt.Companion_Default___.UInt32ToSeq(uint32((senderPublicKey).Cardinality()))), senderPublicKey) +} +func (_static *CompanionStruct_Default___) GenerateEphemeralEccKeyPair(curveSpec m_AwsCryptographyPrimitivesTypes.ECDHCurveSpec, crypto *m_AtomicPrimitives.AtomicPrimitivesClient) m_Wrappers.Result { + var res m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_AwsCryptographyPrimitivesTypes.Companion_GenerateECCKeyPairOutput_.Default()) + _ = res + var _0_maybeKeyPair m_Wrappers.Result + _ = _0_maybeKeyPair + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = (crypto).GenerateECCKeyPair(m_AwsCryptographyPrimitivesTypes.Companion_GenerateECCKeyPairInput_.Create_GenerateECCKeyPairInput_(curveSpec)) + _0_maybeKeyPair = _out0 + var _1_valueOrError0 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_AwsCryptographyPrimitivesTypes.Companion_GenerateECCKeyPairOutput_.Default()) + _ = _1_valueOrError0 + _1_valueOrError0 = (_0_maybeKeyPair).MapFailure(func(coer113 func(m_AwsCryptographyPrimitivesTypes.Error) m_AwsCryptographyMaterialProvidersTypes.Error) func(interface{}) interface{} { + return func(arg114 interface{}) interface{} { + return coer113(arg114.(m_AwsCryptographyPrimitivesTypes.Error)) + } + }(func(_2_e m_AwsCryptographyPrimitivesTypes.Error) m_AwsCryptographyMaterialProvidersTypes.Error { + return m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographyPrimitives_(_2_e) + })) + if (_1_valueOrError0).IsFailure() { + res = (_1_valueOrError0).PropagateFailure() + return res + } + var _3_keyPair m_AwsCryptographyPrimitivesTypes.GenerateECCKeyPairOutput + _ = _3_keyPair + _3_keyPair = (_1_valueOrError0).Extract().(m_AwsCryptographyPrimitivesTypes.GenerateECCKeyPairOutput) + res = m_Wrappers.Companion_Result_.Create_Success_(_3_keyPair) + return res +} +func (_static *CompanionStruct_Default___) ValidatePublicKey(crypto *m_AtomicPrimitives.AtomicPrimitivesClient, curveSpec m_AwsCryptographyPrimitivesTypes.ECDHCurveSpec, publicKey _dafny.Sequence) m_Wrappers.Result { + var res m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(false) + _ = res + var _0_maybeValidate m_Wrappers.Result + _ = _0_maybeValidate + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = (crypto).ValidatePublicKey(m_AwsCryptographyPrimitivesTypes.Companion_ValidatePublicKeyInput_.Create_ValidatePublicKeyInput_(curveSpec, publicKey)) + _0_maybeValidate = _out0 + var _1_valueOrError0 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_AwsCryptographyPrimitivesTypes.Companion_ValidatePublicKeyOutput_.Default()) + _ = _1_valueOrError0 + _1_valueOrError0 = (_0_maybeValidate).MapFailure(func(coer114 func(m_AwsCryptographyPrimitivesTypes.Error) m_AwsCryptographyMaterialProvidersTypes.Error) func(interface{}) interface{} { + return func(arg115 interface{}) interface{} { + return coer114(arg115.(m_AwsCryptographyPrimitivesTypes.Error)) + } + }(func(_2_e m_AwsCryptographyPrimitivesTypes.Error) m_AwsCryptographyMaterialProvidersTypes.Error { + return m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographyPrimitives_(_2_e) + })) + if (_1_valueOrError0).IsFailure() { + res = (_1_valueOrError0).PropagateFailure() + return res + } + var _3_validate m_AwsCryptographyPrimitivesTypes.ValidatePublicKeyOutput + _ = _3_validate + _3_validate = (_1_valueOrError0).Extract().(m_AwsCryptographyPrimitivesTypes.ValidatePublicKeyOutput) + res = m_Wrappers.Companion_Result_.Create_Success_((_3_validate).Dtor_success()) + return res +} +func (_static *CompanionStruct_Default___) CurveSpecTypeToString(c m_AwsCryptographyPrimitivesTypes.ECDHCurveSpec) _dafny.Sequence { + var _source0 m_AwsCryptographyPrimitivesTypes.ECDHCurveSpec = c + _ = _source0 + { + if _source0.Is_ECC__NIST__P256() { + return _dafny.SeqOfString("p256") + } + } + { + if _source0.Is_ECC__NIST__P384() { + return _dafny.SeqOfString("p384") + } + } + { + if _source0.Is_ECC__NIST__P521() { + return _dafny.SeqOfString("p521") + } + } + { + return _dafny.SeqOfString("sm2") + } +} +func (_static *CompanionStruct_Default___) E(s _dafny.Sequence) m_AwsCryptographyMaterialProvidersTypes.Error { + return m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(s) +} +func (_static *CompanionStruct_Default___) RAW__ECDH__KEYRING__VERSION() _dafny.Sequence { + return _dafny.SeqOf(uint8(1)) +} + +// End of class Default__ + +// Definition of class RawEcdhKeyring +type RawEcdhKeyring struct { + _cryptoPrimitives *m_AtomicPrimitives.AtomicPrimitivesClient + _keyAgreementScheme m_AwsCryptographyMaterialProvidersTypes.RawEcdhStaticConfigurations + _curveSpec m_AwsCryptographyPrimitivesTypes.ECDHCurveSpec + _recipientPublicKey m_AwsCryptographyPrimitivesTypes.ECCPublicKey + _compressedRecipientPublicKey _dafny.Sequence + _senderPublicKey m_AwsCryptographyPrimitivesTypes.ECCPublicKey + _senderPrivateKey m_AwsCryptographyPrimitivesTypes.ECCPrivateKey + _compressedSenderPublicKey _dafny.Sequence +} + +func New_RawEcdhKeyring_() *RawEcdhKeyring { + _this := RawEcdhKeyring{} + + _this._cryptoPrimitives = (*m_AtomicPrimitives.AtomicPrimitivesClient)(nil) + _this._keyAgreementScheme = m_AwsCryptographyMaterialProvidersTypes.Companion_RawEcdhStaticConfigurations_.Default() + _this._curveSpec = m_AwsCryptographyPrimitivesTypes.Companion_ECDHCurveSpec_.Default() + _this._recipientPublicKey = m_AwsCryptographyPrimitivesTypes.Companion_ECCPublicKey_.Default() + _this._compressedRecipientPublicKey = _dafny.EmptySeq + _this._senderPublicKey = m_AwsCryptographyPrimitivesTypes.Companion_ECCPublicKey_.Default() + _this._senderPrivateKey = m_AwsCryptographyPrimitivesTypes.Companion_ECCPrivateKey_.Default() + _this._compressedSenderPublicKey = _dafny.EmptySeq + return &_this +} + +type CompanionStruct_RawEcdhKeyring_ struct { +} + +var Companion_RawEcdhKeyring_ = CompanionStruct_RawEcdhKeyring_{} + +func (_this *RawEcdhKeyring) Equals(other *RawEcdhKeyring) bool { + return _this == other +} + +func (_this *RawEcdhKeyring) EqualsGeneric(x interface{}) bool { + other, ok := x.(*RawEcdhKeyring) + return ok && _this.Equals(other) +} + +func (*RawEcdhKeyring) String() string { + return "RawECDHKeyring.RawEcdhKeyring" +} + +func Type_RawEcdhKeyring_() _dafny.TypeDescriptor { + return type_RawEcdhKeyring_{} +} + +type type_RawEcdhKeyring_ struct { +} + +func (_this type_RawEcdhKeyring_) Default() interface{} { + return (*RawEcdhKeyring)(nil) +} + +func (_this type_RawEcdhKeyring_) String() string { + return "RawECDHKeyring.RawEcdhKeyring" +} +func (_this *RawEcdhKeyring) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){m_Keyring.Companion_VerifiableInterface_.TraitID_, m_AwsCryptographyMaterialProvidersTypes.Companion_IKeyring_.TraitID_} +} + +var _ m_Keyring.VerifiableInterface = &RawEcdhKeyring{} +var _ m_AwsCryptographyMaterialProvidersTypes.IKeyring = &RawEcdhKeyring{} +var _ _dafny.TraitOffspring = &RawEcdhKeyring{} + +func (_this *RawEcdhKeyring) OnDecrypt(input m_AwsCryptographyMaterialProvidersTypes.OnDecryptInput) m_Wrappers.Result { + var _out8 m_Wrappers.Result + _ = _out8 + _out8 = m_AwsCryptographyMaterialProvidersTypes.Companion_IKeyring_.OnDecrypt(_this, input) + return _out8 +} +func (_this *RawEcdhKeyring) OnEncrypt(input m_AwsCryptographyMaterialProvidersTypes.OnEncryptInput) m_Wrappers.Result { + var _out8 m_Wrappers.Result + _ = _out8 + _out8 = m_AwsCryptographyMaterialProvidersTypes.Companion_IKeyring_.OnEncrypt(_this, input) + return _out8 +} +func (_this *RawEcdhKeyring) Ctor__(keyAgreementScheme m_AwsCryptographyMaterialProvidersTypes.RawEcdhStaticConfigurations, curveSpec m_AwsCryptographyPrimitivesTypes.ECDHCurveSpec, senderPrivateKey m_Wrappers.Option, senderPublicKey m_Wrappers.Option, recipientPublicKey _dafny.Sequence, compressedSenderPublicKey m_Wrappers.Option, compressedRecipientPublicKey _dafny.Sequence, cryptoPrimitives *m_AtomicPrimitives.AtomicPrimitivesClient) { + { + (_this)._keyAgreementScheme = keyAgreementScheme + (_this)._curveSpec = curveSpec + (_this)._cryptoPrimitives = cryptoPrimitives + (_this)._recipientPublicKey = m_AwsCryptographyPrimitivesTypes.Companion_ECCPublicKey_.Create_ECCPublicKey_(recipientPublicKey) + (_this)._compressedRecipientPublicKey = compressedRecipientPublicKey + if (((senderPublicKey).Is_Some()) && ((senderPrivateKey).Is_Some())) && ((compressedSenderPublicKey).Is_Some()) { + (_this)._senderPublicKey = m_AwsCryptographyPrimitivesTypes.Companion_ECCPublicKey_.Create_ECCPublicKey_((senderPublicKey).Dtor_value().(_dafny.Sequence)) + (_this)._senderPrivateKey = m_AwsCryptographyPrimitivesTypes.Companion_ECCPrivateKey_.Create_ECCPrivateKey_((senderPrivateKey).Dtor_value().(_dafny.Sequence)) + (_this)._compressedSenderPublicKey = (compressedSenderPublicKey).Dtor_value().(_dafny.Sequence) + } else { + (_this)._senderPublicKey = m_AwsCryptographyPrimitivesTypes.Companion_ECCPublicKey_.Create_ECCPublicKey_(_dafny.SeqOf()) + (_this)._senderPrivateKey = m_AwsCryptographyPrimitivesTypes.Companion_ECCPrivateKey_.Create_ECCPrivateKey_(_dafny.SeqOf()) + (_this)._compressedSenderPublicKey = _dafny.SeqOf() + } + } +} +func (_this *RawEcdhKeyring) OnEncrypt_k(input m_AwsCryptographyMaterialProvidersTypes.OnEncryptInput) m_Wrappers.Result { + { + var res m_Wrappers.Result = m_Wrappers.Result{} + _ = res + if ((_this).KeyAgreementScheme()).Is_PublicKeyDiscovery() { + res = m_Wrappers.Companion_Result_.Create_Failure_(m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.SeqOfString("PublicKeyDiscovery Key Agreement Scheme is forbidden on encrypt."))) + return res + } + var _0_operationSenderPrivateKey m_AwsCryptographyPrimitivesTypes.ECCPrivateKey = m_AwsCryptographyPrimitivesTypes.Companion_ECCPrivateKey_.Default() + _ = _0_operationSenderPrivateKey + var _1_operationSenderPublicKey m_AwsCryptographyPrimitivesTypes.ECCPublicKey = m_AwsCryptographyPrimitivesTypes.Companion_ECCPublicKey_.Default() + _ = _1_operationSenderPublicKey + var _2_operationCompressedSenderPublicKey _dafny.Sequence = _dafny.EmptySeq + _ = _2_operationCompressedSenderPublicKey + if ((_this).KeyAgreementScheme()).Is_EphemeralPrivateKeyToStaticPublicKey() { + var _3_valueOrError0 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_AwsCryptographyPrimitivesTypes.Companion_GenerateECCKeyPairOutput_.Default()) + _ = _3_valueOrError0 + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = Companion_Default___.GenerateEphemeralEccKeyPair((_this).CurveSpec(), (_this).CryptoPrimitives()) + _3_valueOrError0 = _out0 + if (_3_valueOrError0).IsFailure() { + res = (_3_valueOrError0).PropagateFailure() + return res + } + var _4_ephemeralKeyPair m_AwsCryptographyPrimitivesTypes.GenerateECCKeyPairOutput + _ = _4_ephemeralKeyPair + _4_ephemeralKeyPair = (_3_valueOrError0).Extract().(m_AwsCryptographyPrimitivesTypes.GenerateECCKeyPairOutput) + _0_operationSenderPrivateKey = (_4_ephemeralKeyPair).Dtor_privateKey() + _1_operationSenderPublicKey = (_4_ephemeralKeyPair).Dtor_publicKey() + var _5_valueOrError1 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = _5_valueOrError1 + var _out1 m_Wrappers.Result + _ = _out1 + _out1 = Companion_Default___.CompressPublicKey(m_AwsCryptographyPrimitivesTypes.Companion_ECCPublicKey_.Create_ECCPublicKey_((_1_operationSenderPublicKey).Dtor_der()), (_this).CurveSpec(), (_this).CryptoPrimitives()) + _5_valueOrError1 = _out1 + if (_5_valueOrError1).IsFailure() { + res = (_5_valueOrError1).PropagateFailure() + return res + } + var _6_operationCompressedSenderPublicKey_q _dafny.Sequence + _ = _6_operationCompressedSenderPublicKey_q + _6_operationCompressedSenderPublicKey_q = (_5_valueOrError1).Extract().(_dafny.Sequence) + _2_operationCompressedSenderPublicKey = _6_operationCompressedSenderPublicKey_q + } else { + _0_operationSenderPrivateKey = (_this).SenderPrivateKey() + _1_operationSenderPublicKey = (_this).SenderPublicKey() + _2_operationCompressedSenderPublicKey = (_this).CompressedSenderPublicKey() + } + var _7_materials m_AwsCryptographyMaterialProvidersTypes.EncryptionMaterials + _ = _7_materials + _7_materials = (input).Dtor_materials() + var _8_suite m_AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo + _ = _8_suite + _8_suite = ((input).Dtor_materials()).Dtor_algorithmSuite() + var _9_valueOrError2 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = _9_valueOrError2 + var _out2 m_Wrappers.Result + _ = _out2 + _out2 = Companion_Default___.LocalDeriveSharedSecret(_0_operationSenderPrivateKey, (_this).RecipientPublicKey(), (_this).CurveSpec(), (_this).CryptoPrimitives()) + _9_valueOrError2 = _out2 + if (_9_valueOrError2).IsFailure() { + res = (_9_valueOrError2).PropagateFailure() + return res + } + var _10_sharedSecret _dafny.Sequence + _ = _10_sharedSecret + _10_sharedSecret = (_9_valueOrError2).Extract().(_dafny.Sequence) + var _11_valueOrError3 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_UTF8.Companion_ValidUTF8Bytes_.Witness()) + _ = _11_valueOrError3 + _11_valueOrError3 = (m_UTF8.Encode(Companion_Default___.CurveSpecTypeToString((_this).CurveSpec()))).MapFailure(func(coer115 func(_dafny.Sequence) m_AwsCryptographyMaterialProvidersTypes.Error) func(interface{}) interface{} { + return func(arg116 interface{}) interface{} { + return coer115(arg116.(_dafny.Sequence)) + } + }(Companion_Default___.E)) + if (_11_valueOrError3).IsFailure() { + res = (_11_valueOrError3).PropagateFailure() + return res + } + var _12_curveSpecUtf8 _dafny.Sequence + _ = _12_curveSpecUtf8 + _12_curveSpecUtf8 = (_11_valueOrError3).Extract().(_dafny.Sequence) + var _13_valueOrError4 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = _13_valueOrError4 + _13_valueOrError4 = m_CanonicalEncryptionContext.Companion_Default___.EncryptionContextToAAD(((input).Dtor_materials()).Dtor_encryptionContext()) + if (_13_valueOrError4).IsFailure() { + res = (_13_valueOrError4).PropagateFailure() + return res + } + var _14_canonicalizedEC _dafny.Sequence + _ = _14_canonicalizedEC + _14_canonicalizedEC = (_13_valueOrError4).Extract().(_dafny.Sequence) + var _15_fixedInfo _dafny.Sequence + _ = _15_fixedInfo + _15_fixedInfo = m_EcdhEdkWrapping.Companion_Default___.SerializeFixedInfo(m_Constants.Companion_Default___.ECDH__KDF__UTF8(), _12_curveSpecUtf8, _2_operationCompressedSenderPublicKey, (_this).CompressedRecipientPublicKey(), _14_canonicalizedEC, Companion_Default___.RAW__ECDH__KEYRING__VERSION()) + var _16_ecdhGenerateAndWrap *m_EcdhEdkWrapping.EcdhGenerateAndWrapKeyMaterial + _ = _16_ecdhGenerateAndWrap + var _nw0 *m_EcdhEdkWrapping.EcdhGenerateAndWrapKeyMaterial = m_EcdhEdkWrapping.New_EcdhGenerateAndWrapKeyMaterial_() + _ = _nw0 + _nw0.Ctor__(_10_sharedSecret, _15_fixedInfo, (_this).CryptoPrimitives()) + _16_ecdhGenerateAndWrap = _nw0 + var _17_ecdhWrap *m_EcdhEdkWrapping.EcdhWrapKeyMaterial + _ = _17_ecdhWrap + var _nw1 *m_EcdhEdkWrapping.EcdhWrapKeyMaterial = m_EcdhEdkWrapping.New_EcdhWrapKeyMaterial_() + _ = _nw1 + _nw1.Ctor__(_10_sharedSecret, _15_fixedInfo, (_this).CryptoPrimitives()) + _17_ecdhWrap = _nw1 + var _18_valueOrError5 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_EdkWrapping.Companion_WrapEdkMaterialOutput_.Default(m_EcdhEdkWrapping.Companion_EcdhWrapInfo_.Default())) + _ = _18_valueOrError5 + var _out3 m_Wrappers.Result + _ = _out3 + _out3 = m_EdkWrapping.Companion_Default___.WrapEdkMaterial(_7_materials, _17_ecdhWrap, _16_ecdhGenerateAndWrap) + _18_valueOrError5 = _out3 + if (_18_valueOrError5).IsFailure() { + res = (_18_valueOrError5).PropagateFailure() + return res + } + var _19_wrapOutput m_EdkWrapping.WrapEdkMaterialOutput + _ = _19_wrapOutput + _19_wrapOutput = (_18_valueOrError5).Extract().(m_EdkWrapping.WrapEdkMaterialOutput) + var _20_symmetricSigningKeyList m_Wrappers.Option + _ = _20_symmetricSigningKeyList + if ((_19_wrapOutput).Dtor_symmetricSigningKey()).Is_Some() { + _20_symmetricSigningKeyList = m_Wrappers.Companion_Option_.Create_Some_(_dafny.SeqOf(((_19_wrapOutput).Dtor_symmetricSigningKey()).Dtor_value().(_dafny.Sequence))) + } else { + _20_symmetricSigningKeyList = m_Wrappers.Companion_Option_.Create_None_() + } + var _21_valueOrError6 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _21_valueOrError6 + _21_valueOrError6 = m_Wrappers.Companion_Default___.Need((Companion_Default___.ValidCompressedPublicKeyLength(_2_operationCompressedSenderPublicKey)) && (Companion_Default___.ValidCompressedPublicKeyLength((_this).CompressedRecipientPublicKey())), Companion_Default___.E(_dafny.SeqOfString("Invalid compressed public key length."))) + if (_21_valueOrError6).IsFailure() { + res = (_21_valueOrError6).PropagateFailure() + return res + } + var _22_edk m_AwsCryptographyMaterialProvidersTypes.EncryptedDataKey + _ = _22_edk + _22_edk = m_AwsCryptographyMaterialProvidersTypes.Companion_EncryptedDataKey_.Create_EncryptedDataKey_(m_Constants.Companion_Default___.RAW__ECDH__PROVIDER__ID(), Companion_Default___.SerializeProviderInfo(_2_operationCompressedSenderPublicKey, (_this).CompressedRecipientPublicKey()), (_19_wrapOutput).Dtor_wrappedMaterial()) + if (_19_wrapOutput).Is_GenerateAndWrapEdkMaterialOutput() { + var _23_valueOrError7 m_Wrappers.Result = m_Wrappers.Result{} + _ = _23_valueOrError7 + _23_valueOrError7 = m_Materials.Companion_Default___.EncryptionMaterialAddDataKey(_7_materials, (_19_wrapOutput).Dtor_plaintextDataKey(), _dafny.SeqOf(_22_edk), _20_symmetricSigningKeyList) + if (_23_valueOrError7).IsFailure() { + res = (_23_valueOrError7).PropagateFailure() + return res + } + var _24_result m_AwsCryptographyMaterialProvidersTypes.EncryptionMaterials + _ = _24_result + _24_result = (_23_valueOrError7).Extract().(m_AwsCryptographyMaterialProvidersTypes.EncryptionMaterials) + res = m_Wrappers.Companion_Result_.Create_Success_(m_AwsCryptographyMaterialProvidersTypes.Companion_OnEncryptOutput_.Create_OnEncryptOutput_(_24_result)) + return res + } else if (_19_wrapOutput).Is_WrapOnlyEdkMaterialOutput() { + var _25_valueOrError8 m_Wrappers.Result = m_Wrappers.Result{} + _ = _25_valueOrError8 + _25_valueOrError8 = m_Materials.Companion_Default___.EncryptionMaterialAddEncryptedDataKeys(_7_materials, _dafny.SeqOf(_22_edk), _20_symmetricSigningKeyList) + if (_25_valueOrError8).IsFailure() { + res = (_25_valueOrError8).PropagateFailure() + return res + } + var _26_result m_AwsCryptographyMaterialProvidersTypes.EncryptionMaterials + _ = _26_result + _26_result = (_25_valueOrError8).Extract().(m_AwsCryptographyMaterialProvidersTypes.EncryptionMaterials) + res = m_Wrappers.Companion_Result_.Create_Success_(m_AwsCryptographyMaterialProvidersTypes.Companion_OnEncryptOutput_.Create_OnEncryptOutput_(_26_result)) + return res + } + return res + } +} +func (_this *RawEcdhKeyring) OnDecrypt_k(input m_AwsCryptographyMaterialProvidersTypes.OnDecryptInput) m_Wrappers.Result { + { + var res m_Wrappers.Result = m_Wrappers.Result{} + _ = res + if ((_this).KeyAgreementScheme()).Is_EphemeralPrivateKeyToStaticPublicKey() { + res = m_Wrappers.Companion_Result_.Create_Failure_(m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.SeqOfString("EphemeralPrivateKeyToStaticPublicKey Key Agreement Scheme is forbidden on decrypt."))) + return res + } + var _0_materials m_AwsCryptographyMaterialProvidersTypes.DecryptionMaterials + _ = _0_materials + _0_materials = (input).Dtor_materials() + var _1_suite m_AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo + _ = _1_suite + _1_suite = ((input).Dtor_materials()).Dtor_algorithmSuite() + var _2_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _2_valueOrError0 + _2_valueOrError0 = m_Wrappers.Companion_Default___.Need(m_Materials.Companion_Default___.DecryptionMaterialsWithoutPlaintextDataKey(_0_materials), Companion_Default___.E(_dafny.SeqOfString("Keyring received decryption materials that already contain a plaintext data key."))) + if (_2_valueOrError0).IsFailure() { + res = (_2_valueOrError0).PropagateFailure() + return res + } + var _3_operationCompressedSenderPublicKey m_Wrappers.Option + _ = _3_operationCompressedSenderPublicKey + if _dafny.Companion_Sequence_.Equal((_this).CompressedSenderPublicKey(), _dafny.SeqOf()) { + _3_operationCompressedSenderPublicKey = m_Wrappers.Companion_Option_.Create_None_() + } else { + _3_operationCompressedSenderPublicKey = m_Wrappers.Companion_Option_.Create_Some_((_this).CompressedSenderPublicKey()) + } + var _4_filter *OnDecryptEcdhDataKeyFilter + _ = _4_filter + var _nw0 *OnDecryptEcdhDataKeyFilter = New_OnDecryptEcdhDataKeyFilter_() + _ = _nw0 + _nw0.Ctor__((_this).KeyAgreementScheme(), (_this).CompressedRecipientPublicKey(), _3_operationCompressedSenderPublicKey) + _4_filter = _nw0 + var _5_valueOrError1 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = _5_valueOrError1 + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_Actions.Companion_Default___.FilterWithResult(_4_filter, (input).Dtor_encryptedDataKeys()) + _5_valueOrError1 = _out0 + if (_5_valueOrError1).IsFailure() { + res = (_5_valueOrError1).PropagateFailure() + return res + } + var _6_edksToAttempt _dafny.Sequence + _ = _6_edksToAttempt + _6_edksToAttempt = (_5_valueOrError1).Extract().(_dafny.Sequence) + if (_dafny.IntOfUint32((_6_edksToAttempt).Cardinality())).Sign() == 0 { + var _7_valueOrError2 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq.SetString()) + _ = _7_valueOrError2 + _7_valueOrError2 = m_ErrorMessages.Companion_Default___.IncorrectDataKeys((input).Dtor_encryptedDataKeys(), ((input).Dtor_materials()).Dtor_algorithmSuite(), _dafny.SeqOfString("")) + if (_7_valueOrError2).IsFailure() { + res = (_7_valueOrError2).PropagateFailure() + return res + } + var _8_errorMessage _dafny.Sequence + _ = _8_errorMessage + _8_errorMessage = (_7_valueOrError2).Extract().(_dafny.Sequence) + res = m_Wrappers.Companion_Result_.Create_Failure_(Companion_Default___.E(_8_errorMessage)) + return res + } + var _9_decryptClosure m_Actions.ActionWithResult + _ = _9_decryptClosure + var _nw1 *DecryptSingleEncryptedDataKey = New_DecryptSingleEncryptedDataKey_() + _ = _nw1 + _nw1.Ctor__(_0_materials, (_this).CryptoPrimitives(), (_this).CompressedSenderPublicKey(), (_this).CompressedRecipientPublicKey(), (_this).KeyAgreementScheme(), (_this).CurveSpec()) + _9_decryptClosure = _nw1 + var _10_outcome m_Wrappers.Result + _ = _10_outcome + var _out1 m_Wrappers.Result + _ = _out1 + _out1 = m_Actions.Companion_Default___.ReduceToSuccess(_9_decryptClosure, _6_edksToAttempt) + _10_outcome = _out1 + var _11_valueOrError3 m_Wrappers.Result = m_Wrappers.Result{} + _ = _11_valueOrError3 + _11_valueOrError3 = (_10_outcome).MapFailure(func(coer116 func(_dafny.Sequence) m_AwsCryptographyMaterialProvidersTypes.Error) func(interface{}) interface{} { + return func(arg117 interface{}) interface{} { + return coer116(arg117.(_dafny.Sequence)) + } + }(func(_12_errors _dafny.Sequence) m_AwsCryptographyMaterialProvidersTypes.Error { + return m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_CollectionOfErrors_(_12_errors, _dafny.SeqOfString("No Configured Key was able to decrypt the Data Key. The list of encountered Exceptions is available via `list`.")) + })) + if (_11_valueOrError3).IsFailure() { + res = (_11_valueOrError3).PropagateFailure() + return res + } + var _13_SealedDecryptionMaterials m_AwsCryptographyMaterialProvidersTypes.DecryptionMaterials + _ = _13_SealedDecryptionMaterials + _13_SealedDecryptionMaterials = (_11_valueOrError3).Extract().(m_AwsCryptographyMaterialProvidersTypes.DecryptionMaterials) + res = m_Wrappers.Companion_Result_.Create_Success_(m_AwsCryptographyMaterialProvidersTypes.Companion_OnDecryptOutput_.Create_OnDecryptOutput_(_13_SealedDecryptionMaterials)) + return res + return res + } +} +func (_this *RawEcdhKeyring) CryptoPrimitives() *m_AtomicPrimitives.AtomicPrimitivesClient { + { + return _this._cryptoPrimitives + } +} +func (_this *RawEcdhKeyring) KeyAgreementScheme() m_AwsCryptographyMaterialProvidersTypes.RawEcdhStaticConfigurations { + { + return _this._keyAgreementScheme + } +} +func (_this *RawEcdhKeyring) CurveSpec() m_AwsCryptographyPrimitivesTypes.ECDHCurveSpec { + { + return _this._curveSpec + } +} +func (_this *RawEcdhKeyring) RecipientPublicKey() m_AwsCryptographyPrimitivesTypes.ECCPublicKey { + { + return _this._recipientPublicKey + } +} +func (_this *RawEcdhKeyring) CompressedRecipientPublicKey() _dafny.Sequence { + { + return _this._compressedRecipientPublicKey + } +} +func (_this *RawEcdhKeyring) SenderPublicKey() m_AwsCryptographyPrimitivesTypes.ECCPublicKey { + { + return _this._senderPublicKey + } +} +func (_this *RawEcdhKeyring) SenderPrivateKey() m_AwsCryptographyPrimitivesTypes.ECCPrivateKey { + { + return _this._senderPrivateKey + } +} +func (_this *RawEcdhKeyring) CompressedSenderPublicKey() _dafny.Sequence { + { + return _this._compressedSenderPublicKey + } +} + +// End of class RawEcdhKeyring + +// Definition of class OnDecryptEcdhDataKeyFilter +type OnDecryptEcdhDataKeyFilter struct { + _keyAgreementScheme m_AwsCryptographyMaterialProvidersTypes.RawEcdhStaticConfigurations + _compressedRecipientPublicKey _dafny.Sequence + _compressedSenderPublicKey _dafny.Sequence +} + +func New_OnDecryptEcdhDataKeyFilter_() *OnDecryptEcdhDataKeyFilter { + _this := OnDecryptEcdhDataKeyFilter{} + + _this._keyAgreementScheme = m_AwsCryptographyMaterialProvidersTypes.Companion_RawEcdhStaticConfigurations_.Default() + _this._compressedRecipientPublicKey = _dafny.EmptySeq + _this._compressedSenderPublicKey = _dafny.EmptySeq + return &_this +} + +type CompanionStruct_OnDecryptEcdhDataKeyFilter_ struct { +} + +var Companion_OnDecryptEcdhDataKeyFilter_ = CompanionStruct_OnDecryptEcdhDataKeyFilter_{} + +func (_this *OnDecryptEcdhDataKeyFilter) Equals(other *OnDecryptEcdhDataKeyFilter) bool { + return _this == other +} + +func (_this *OnDecryptEcdhDataKeyFilter) EqualsGeneric(x interface{}) bool { + other, ok := x.(*OnDecryptEcdhDataKeyFilter) + return ok && _this.Equals(other) +} + +func (*OnDecryptEcdhDataKeyFilter) String() string { + return "RawECDHKeyring.OnDecryptEcdhDataKeyFilter" +} + +func Type_OnDecryptEcdhDataKeyFilter_() _dafny.TypeDescriptor { + return type_OnDecryptEcdhDataKeyFilter_{} +} + +type type_OnDecryptEcdhDataKeyFilter_ struct { +} + +func (_this type_OnDecryptEcdhDataKeyFilter_) Default() interface{} { + return (*OnDecryptEcdhDataKeyFilter)(nil) +} + +func (_this type_OnDecryptEcdhDataKeyFilter_) String() string { + return "RawECDHKeyring.OnDecryptEcdhDataKeyFilter" +} +func (_this *OnDecryptEcdhDataKeyFilter) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){m_Actions.Companion_DeterministicActionWithResult_.TraitID_, m_Actions.Companion_DeterministicAction_.TraitID_} +} + +var _ m_Actions.DeterministicActionWithResult = &OnDecryptEcdhDataKeyFilter{} +var _ m_Actions.DeterministicAction = &OnDecryptEcdhDataKeyFilter{} +var _ _dafny.TraitOffspring = &OnDecryptEcdhDataKeyFilter{} + +func (_this *OnDecryptEcdhDataKeyFilter) Ctor__(keyAgreementScheme m_AwsCryptographyMaterialProvidersTypes.RawEcdhStaticConfigurations, compressedRecipientPublicKey _dafny.Sequence, compressedSenderPublicKey m_Wrappers.Option) { + { + (_this)._keyAgreementScheme = keyAgreementScheme + (_this)._compressedRecipientPublicKey = compressedRecipientPublicKey + if (compressedSenderPublicKey).Is_Some() { + (_this)._compressedSenderPublicKey = (compressedSenderPublicKey).Dtor_value().(_dafny.Sequence) + } else { + (_this)._compressedSenderPublicKey = _dafny.SeqOf() + } + } +} +func (_this *OnDecryptEcdhDataKeyFilter) Invoke(edk interface{}) interface{} { + { + var edk m_AwsCryptographyMaterialProvidersTypes.EncryptedDataKey = edk.(m_AwsCryptographyMaterialProvidersTypes.EncryptedDataKey) + _ = edk + var res m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(false) + _ = res + var _0_providerInfo _dafny.Sequence + _ = _0_providerInfo + _0_providerInfo = (edk).Dtor_keyProviderInfo() + var _1_providerId _dafny.Sequence + _ = _1_providerId + _1_providerId = (edk).Dtor_keyProviderId() + if (!_dafny.Companion_Sequence_.Equal(_1_providerId, m_Constants.Companion_Default___.RAW__ECDH__PROVIDER__ID())) && (!_dafny.Companion_Sequence_.Equal(_1_providerId, m_Constants.Companion_Default___.KMS__ECDH__PROVIDER__ID())) { + res = m_Wrappers.Companion_Result_.Create_Success_(false) + return res + } + var _2_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _2_valueOrError0 + _2_valueOrError0 = m_Wrappers.Companion_Default___.Need(((_dafny.IntOfUint32((_0_providerInfo).Cardinality())).Cmp(_dafny.IntOfUint32(m_Constants.Companion_Default___.ECDH__PROVIDER__INFO__521__LEN())) <= 0) && (Companion_Default___.ValidProviderInfoLength(_0_providerInfo)), Companion_Default___.E(_dafny.SeqOfString("EDK ProviderInfo longer than expected"))) + if (_2_valueOrError0).IsFailure() { + res = (_2_valueOrError0).PropagateFailure() + return res + } + var _3_keyringVersion uint8 + _ = _3_keyringVersion + _3_keyringVersion = (_0_providerInfo).Select(0).(uint8) + var _4_valueOrError1 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _4_valueOrError1 + _4_valueOrError1 = m_Wrappers.Companion_Default___.Need(_dafny.Companion_Sequence_.Equal(_dafny.SeqOf(_3_keyringVersion), Companion_Default___.RAW__ECDH__KEYRING__VERSION()), Companion_Default___.E(_dafny.SeqOfString("Incorrect Keyring version found in provider info."))) + if (_4_valueOrError1).IsFailure() { + res = (_4_valueOrError1).PropagateFailure() + return res + } + var _5_recipientPublicKeyLength _dafny.Int + _ = _5_recipientPublicKeyLength + _5_recipientPublicKeyLength = _dafny.IntOfUint32(m_StandardLibrary_UInt.Companion_Default___.SeqToUInt32((_0_providerInfo).Subsequence(uint32(m_Constants.Companion_Default___.ECDH__PROVIDER__INFO__RPL__INDEX()), uint32(m_Constants.Companion_Default___.ECDH__PROVIDER__INFO__RPK__INDEX())))) + var _6_recipientPublicKeyLengthIndex _dafny.Int + _ = _6_recipientPublicKeyLengthIndex + _6_recipientPublicKeyLengthIndex = (_dafny.IntOfUint32(m_Constants.Companion_Default___.ECDH__PROVIDER__INFO__RPK__INDEX())).Plus(_5_recipientPublicKeyLength) + var _7_senderPublicKeyIndex _dafny.Int + _ = _7_senderPublicKeyIndex + _7_senderPublicKeyIndex = (_6_recipientPublicKeyLengthIndex).Plus(m_Constants.Companion_Default___.ECDH__PROVIDER__INFO__PUBLIC__KEY__LEN()) + var _8_valueOrError2 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _8_valueOrError2 + _8_valueOrError2 = m_Wrappers.Companion_Default___.Need(((_6_recipientPublicKeyLengthIndex).Plus(_dafny.IntOfInt64(4))).Cmp(_dafny.IntOfUint32((_0_providerInfo).Cardinality())) < 0, Companion_Default___.E(_dafny.SeqOfString("Key Provider Info Serialization Error. Serialized length less than expected."))) + if (_8_valueOrError2).IsFailure() { + res = (_8_valueOrError2).PropagateFailure() + return res + } + var _9_providerInfoRecipientPublicKey _dafny.Sequence + _ = _9_providerInfoRecipientPublicKey + _9_providerInfoRecipientPublicKey = (_0_providerInfo).Subsequence(uint32(m_Constants.Companion_Default___.ECDH__PROVIDER__INFO__RPK__INDEX()), (_6_recipientPublicKeyLengthIndex).Uint32()) + var _10_providerInfoSenderPublicKey _dafny.Sequence + _ = _10_providerInfoSenderPublicKey + _10_providerInfoSenderPublicKey = (_0_providerInfo).Drop((_7_senderPublicKeyIndex).Uint32()) + if ((_this).KeyAgreementScheme()).Is_PublicKeyDiscovery() { + res = m_Wrappers.Companion_Result_.Create_Success_(_dafny.Companion_Sequence_.Equal((_this).CompressedRecipientPublicKey(), _9_providerInfoRecipientPublicKey)) + return res + } else { + res = m_Wrappers.Companion_Result_.Create_Success_(((_dafny.Companion_Sequence_.Equal((_this).CompressedSenderPublicKey(), _10_providerInfoSenderPublicKey)) && (_dafny.Companion_Sequence_.Equal((_this).CompressedRecipientPublicKey(), _9_providerInfoRecipientPublicKey))) || ((_dafny.Companion_Sequence_.Equal((_this).CompressedSenderPublicKey(), _9_providerInfoRecipientPublicKey)) && (_dafny.Companion_Sequence_.Equal((_this).CompressedRecipientPublicKey(), _10_providerInfoSenderPublicKey)))) + return res + } + return res + } +} +func (_this *OnDecryptEcdhDataKeyFilter) KeyAgreementScheme() m_AwsCryptographyMaterialProvidersTypes.RawEcdhStaticConfigurations { + { + return _this._keyAgreementScheme + } +} +func (_this *OnDecryptEcdhDataKeyFilter) CompressedRecipientPublicKey() _dafny.Sequence { + { + return _this._compressedRecipientPublicKey + } +} +func (_this *OnDecryptEcdhDataKeyFilter) CompressedSenderPublicKey() _dafny.Sequence { + { + return _this._compressedSenderPublicKey + } +} + +// End of class OnDecryptEcdhDataKeyFilter + +// Definition of class DecryptSingleEncryptedDataKey +type DecryptSingleEncryptedDataKey struct { + _materials m_AwsCryptographyMaterialProvidersTypes.DecryptionMaterials + _cryptoPrimitives *m_AtomicPrimitives.AtomicPrimitivesClient + _recipientPublicKey _dafny.Sequence + _senderPublicKey _dafny.Sequence + _keyAgreementScheme m_AwsCryptographyMaterialProvidersTypes.RawEcdhStaticConfigurations + _curveSpec m_AwsCryptographyPrimitivesTypes.ECDHCurveSpec +} + +func New_DecryptSingleEncryptedDataKey_() *DecryptSingleEncryptedDataKey { + _this := DecryptSingleEncryptedDataKey{} + + _this._materials = m_AwsCryptographyMaterialProvidersTypes.DecryptionMaterials{} + _this._cryptoPrimitives = (*m_AtomicPrimitives.AtomicPrimitivesClient)(nil) + _this._recipientPublicKey = _dafny.EmptySeq + _this._senderPublicKey = _dafny.EmptySeq + _this._keyAgreementScheme = m_AwsCryptographyMaterialProvidersTypes.Companion_RawEcdhStaticConfigurations_.Default() + _this._curveSpec = m_AwsCryptographyPrimitivesTypes.Companion_ECDHCurveSpec_.Default() + return &_this +} + +type CompanionStruct_DecryptSingleEncryptedDataKey_ struct { +} + +var Companion_DecryptSingleEncryptedDataKey_ = CompanionStruct_DecryptSingleEncryptedDataKey_{} + +func (_this *DecryptSingleEncryptedDataKey) Equals(other *DecryptSingleEncryptedDataKey) bool { + return _this == other +} + +func (_this *DecryptSingleEncryptedDataKey) EqualsGeneric(x interface{}) bool { + other, ok := x.(*DecryptSingleEncryptedDataKey) + return ok && _this.Equals(other) +} + +func (*DecryptSingleEncryptedDataKey) String() string { + return "RawECDHKeyring.DecryptSingleEncryptedDataKey" +} + +func Type_DecryptSingleEncryptedDataKey_() _dafny.TypeDescriptor { + return type_DecryptSingleEncryptedDataKey_{} +} + +type type_DecryptSingleEncryptedDataKey_ struct { +} + +func (_this type_DecryptSingleEncryptedDataKey_) Default() interface{} { + return (*DecryptSingleEncryptedDataKey)(nil) +} + +func (_this type_DecryptSingleEncryptedDataKey_) String() string { + return "RawECDHKeyring.DecryptSingleEncryptedDataKey" +} +func (_this *DecryptSingleEncryptedDataKey) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){m_Actions.Companion_ActionWithResult_.TraitID_, m_Actions.Companion_Action_.TraitID_} +} + +var _ m_Actions.ActionWithResult = &DecryptSingleEncryptedDataKey{} +var _ m_Actions.Action = &DecryptSingleEncryptedDataKey{} +var _ _dafny.TraitOffspring = &DecryptSingleEncryptedDataKey{} + +func (_this *DecryptSingleEncryptedDataKey) Ctor__(materials m_AwsCryptographyMaterialProvidersTypes.DecryptionMaterials, cryptoPrimitives *m_AtomicPrimitives.AtomicPrimitivesClient, senderPublicKey _dafny.Sequence, recipientPublicKey _dafny.Sequence, keyAgreementScheme m_AwsCryptographyMaterialProvidersTypes.RawEcdhStaticConfigurations, curveSpec m_AwsCryptographyPrimitivesTypes.ECDHCurveSpec) { + { + (_this)._materials = materials + (_this)._cryptoPrimitives = cryptoPrimitives + (_this)._recipientPublicKey = recipientPublicKey + (_this)._senderPublicKey = senderPublicKey + (_this)._keyAgreementScheme = keyAgreementScheme + (_this)._curveSpec = curveSpec + } +} +func (_this *DecryptSingleEncryptedDataKey) Invoke(edk interface{}) interface{} { + { + var edk m_AwsCryptographyMaterialProvidersTypes.EncryptedDataKey = edk.(m_AwsCryptographyMaterialProvidersTypes.EncryptedDataKey) + _ = edk + var res m_Wrappers.Result = m_Wrappers.Result{} + _ = res + var _0_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _0_valueOrError0 + _0_valueOrError0 = m_Wrappers.Companion_Default___.Need(m_UTF8.Companion_Default___.ValidUTF8Seq((edk).Dtor_keyProviderId()), m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.SeqOfString("Received invalid EDK provider id for AWS KMS ECDH Keyring"))) + if (_0_valueOrError0).IsFailure() { + res = (_0_valueOrError0).PropagateFailure() + return res + } + var _1_suite m_AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo + _ = _1_suite + _1_suite = ((_this).Materials()).Dtor_algorithmSuite() + var _2_keyProviderId _dafny.Sequence + _ = _2_keyProviderId + _2_keyProviderId = (edk).Dtor_keyProviderId() + var _3_providerInfo _dafny.Sequence + _ = _3_providerInfo + _3_providerInfo = (edk).Dtor_keyProviderInfo() + var _4_ciphertext _dafny.Sequence + _ = _4_ciphertext + _4_ciphertext = (edk).Dtor_ciphertext() + var _5_valueOrError1 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = _5_valueOrError1 + _5_valueOrError1 = m_EdkWrapping.Companion_Default___.GetProviderWrappedMaterial(_4_ciphertext, _1_suite) + if (_5_valueOrError1).IsFailure() { + res = (_5_valueOrError1).PropagateFailure() + return res + } + var _6_providerWrappedMaterial _dafny.Sequence + _ = _6_providerWrappedMaterial + _6_providerWrappedMaterial = (_5_valueOrError1).Extract().(_dafny.Sequence) + var _7_valueOrError2 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _7_valueOrError2 + _7_valueOrError2 = m_Wrappers.Companion_Default___.Need(((_dafny.IntOfUint32((_3_providerInfo).Cardinality())).Cmp(_dafny.IntOfUint32(m_Constants.Companion_Default___.ECDH__PROVIDER__INFO__521__LEN())) <= 0) && (Companion_Default___.ValidProviderInfoLength(_3_providerInfo)), Companion_Default___.E(_dafny.SeqOfString("EDK ProviderInfo longer than expected"))) + if (_7_valueOrError2).IsFailure() { + res = (_7_valueOrError2).PropagateFailure() + return res + } + var _8_keyringVersion uint8 + _ = _8_keyringVersion + _8_keyringVersion = (_3_providerInfo).Select(0).(uint8) + var _9_valueOrError3 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _9_valueOrError3 + _9_valueOrError3 = m_Wrappers.Companion_Default___.Need(_dafny.Companion_Sequence_.Equal(_dafny.SeqOf(_8_keyringVersion), Companion_Default___.RAW__ECDH__KEYRING__VERSION()), Companion_Default___.E(_dafny.SeqOfString("Incorrect Keyring version found in provider info."))) + if (_9_valueOrError3).IsFailure() { + res = (_9_valueOrError3).PropagateFailure() + return res + } + var _10_recipientPublicKeyLength _dafny.Int + _ = _10_recipientPublicKeyLength + _10_recipientPublicKeyLength = _dafny.IntOfUint32(m_StandardLibrary_UInt.Companion_Default___.SeqToUInt32((_3_providerInfo).Subsequence(uint32(m_Constants.Companion_Default___.ECDH__PROVIDER__INFO__RPL__INDEX()), uint32(m_Constants.Companion_Default___.ECDH__PROVIDER__INFO__RPK__INDEX())))) + var _11_recipientPublicKeyLengthIndex _dafny.Int + _ = _11_recipientPublicKeyLengthIndex + _11_recipientPublicKeyLengthIndex = (_dafny.IntOfUint32(m_Constants.Companion_Default___.ECDH__PROVIDER__INFO__RPK__INDEX())).Plus(_10_recipientPublicKeyLength) + var _12_senderPublicKeyIndex _dafny.Int + _ = _12_senderPublicKeyIndex + _12_senderPublicKeyIndex = (_11_recipientPublicKeyLengthIndex).Plus(m_Constants.Companion_Default___.ECDH__PROVIDER__INFO__PUBLIC__KEY__LEN()) + var _13_valueOrError4 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _13_valueOrError4 + _13_valueOrError4 = m_Wrappers.Companion_Default___.Need(((_11_recipientPublicKeyLengthIndex).Plus(_dafny.IntOfInt64(4))).Cmp(_dafny.IntOfUint32((_3_providerInfo).Cardinality())) < 0, Companion_Default___.E(_dafny.SeqOfString("Key Provider Info Serialization Error. Serialized length less than expected."))) + if (_13_valueOrError4).IsFailure() { + res = (_13_valueOrError4).PropagateFailure() + return res + } + var _14_providerInfoRecipientPublicKey _dafny.Sequence + _ = _14_providerInfoRecipientPublicKey + _14_providerInfoRecipientPublicKey = (_3_providerInfo).Subsequence(uint32(m_Constants.Companion_Default___.ECDH__PROVIDER__INFO__RPK__INDEX()), (_11_recipientPublicKeyLengthIndex).Uint32()) + var _15_providerInfoSenderPublicKey _dafny.Sequence + _ = _15_providerInfoSenderPublicKey + _15_providerInfoSenderPublicKey = (_3_providerInfo).Drop((_12_senderPublicKeyIndex).Uint32()) + var _16_valueOrError5 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = _16_valueOrError5 + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = Companion_Default___.DecompressPublicKey(_15_providerInfoSenderPublicKey, (_this).CurveSpec(), (_this).CryptoPrimitives()) + _16_valueOrError5 = _out0 + if (_16_valueOrError5).IsFailure() { + res = (_16_valueOrError5).PropagateFailure() + return res + } + var _17_senderPublicKey _dafny.Sequence + _ = _17_senderPublicKey + _17_senderPublicKey = (_16_valueOrError5).Extract().(_dafny.Sequence) + var _18_valueOrError6 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = _18_valueOrError6 + var _out1 m_Wrappers.Result + _ = _out1 + _out1 = Companion_Default___.DecompressPublicKey(_14_providerInfoRecipientPublicKey, (_this).CurveSpec(), (_this).CryptoPrimitives()) + _18_valueOrError6 = _out1 + if (_18_valueOrError6).IsFailure() { + res = (_18_valueOrError6).PropagateFailure() + return res + } + var _19_recipientPublicKey _dafny.Sequence + _ = _19_recipientPublicKey + _19_recipientPublicKey = (_18_valueOrError6).Extract().(_dafny.Sequence) + var _20_valueOrError7 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(false) + _ = _20_valueOrError7 + var _out2 m_Wrappers.Result + _ = _out2 + _out2 = Companion_Default___.ValidatePublicKey((_this).CryptoPrimitives(), (_this).CurveSpec(), _17_senderPublicKey) + _20_valueOrError7 = _out2 + if (_20_valueOrError7).IsFailure() { + res = (_20_valueOrError7).PropagateFailure() + return res + } + var _21___v0 bool + _ = _21___v0 + _21___v0 = (_20_valueOrError7).Extract().(bool) + var _22_valueOrError8 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(false) + _ = _22_valueOrError8 + var _out3 m_Wrappers.Result + _ = _out3 + _out3 = Companion_Default___.ValidatePublicKey((_this).CryptoPrimitives(), (_this).CurveSpec(), _19_recipientPublicKey) + _22_valueOrError8 = _out3 + if (_22_valueOrError8).IsFailure() { + res = (_22_valueOrError8).PropagateFailure() + return res + } + var _23___v1 bool + _ = _23___v1 + _23___v1 = (_22_valueOrError8).Extract().(bool) + var _24_sharedSecretPublicKey _dafny.Sequence = _dafny.EmptySeq + _ = _24_sharedSecretPublicKey + var _25_sharedSecretPrivateKey _dafny.Sequence = _dafny.EmptySeq + _ = _25_sharedSecretPrivateKey + var _source0 m_AwsCryptographyMaterialProvidersTypes.RawEcdhStaticConfigurations = (_this).KeyAgreementScheme() + _ = _source0 + { + { + if _source0.Is_PublicKeyDiscovery() { + var _26_publicKeyDiscovery m_AwsCryptographyMaterialProvidersTypes.PublicKeyDiscoveryInput = _source0.Get_().(m_AwsCryptographyMaterialProvidersTypes.RawEcdhStaticConfigurations_PublicKeyDiscovery).PublicKeyDiscovery + _ = _26_publicKeyDiscovery + { + _24_sharedSecretPublicKey = _17_senderPublicKey + _25_sharedSecretPrivateKey = (_26_publicKeyDiscovery).Dtor_recipientStaticPrivateKey() + } + goto Lmatch0 + } + } + { + if _source0.Is_RawPrivateKeyToStaticPublicKey() { + var _27_rawPrivateKeyToStaticPublicKey m_AwsCryptographyMaterialProvidersTypes.RawPrivateKeyToStaticPublicKeyInput = _source0.Get_().(m_AwsCryptographyMaterialProvidersTypes.RawEcdhStaticConfigurations_RawPrivateKeyToStaticPublicKey).RawPrivateKeyToStaticPublicKey + _ = _27_rawPrivateKeyToStaticPublicKey + { + _25_sharedSecretPrivateKey = (_27_rawPrivateKeyToStaticPublicKey).Dtor_senderStaticPrivateKey() + if _dafny.Companion_Sequence_.Equal((_27_rawPrivateKeyToStaticPublicKey).Dtor_recipientPublicKey(), _19_recipientPublicKey) { + _24_sharedSecretPublicKey = _19_recipientPublicKey + } else { + _24_sharedSecretPublicKey = _17_senderPublicKey + } + } + goto Lmatch0 + } + } + { + { + res = m_Wrappers.Companion_Result_.Create_Failure_(Companion_Default___.E(_dafny.SeqOfString("EphemeralPrivateKeyToStaticPublicKey Not allowed on decrypt"))) + return res + } + } + goto Lmatch0 + } + Lmatch0: + var _28_valueOrError9 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(false) + _ = _28_valueOrError9 + var _out4 m_Wrappers.Result + _ = _out4 + _out4 = Companion_Default___.ValidatePublicKey((_this).CryptoPrimitives(), (_this).CurveSpec(), _24_sharedSecretPublicKey) + _28_valueOrError9 = _out4 + if (_28_valueOrError9).IsFailure() { + res = (_28_valueOrError9).PropagateFailure() + return res + } + var _29___v3 bool + _ = _29___v3 + _29___v3 = (_28_valueOrError9).Extract().(bool) + var _30_valueOrError10 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = _30_valueOrError10 + var _out5 m_Wrappers.Result + _ = _out5 + _out5 = Companion_Default___.LocalDeriveSharedSecret(m_AwsCryptographyPrimitivesTypes.Companion_ECCPrivateKey_.Create_ECCPrivateKey_(_25_sharedSecretPrivateKey), m_AwsCryptographyPrimitivesTypes.Companion_ECCPublicKey_.Create_ECCPublicKey_(_24_sharedSecretPublicKey), (_this).CurveSpec(), (_this).CryptoPrimitives()) + _30_valueOrError10 = _out5 + if (_30_valueOrError10).IsFailure() { + res = (_30_valueOrError10).PropagateFailure() + return res + } + var _31_sharedSecret _dafny.Sequence + _ = _31_sharedSecret + _31_sharedSecret = (_30_valueOrError10).Extract().(_dafny.Sequence) + var _32_ecdhUnwrap *m_EcdhEdkWrapping.EcdhUnwrap + _ = _32_ecdhUnwrap + var _nw0 *m_EcdhEdkWrapping.EcdhUnwrap = m_EcdhEdkWrapping.New_EcdhUnwrap_() + _ = _nw0 + _nw0.Ctor__(_15_providerInfoSenderPublicKey, _14_providerInfoRecipientPublicKey, _31_sharedSecret, Companion_Default___.RAW__ECDH__KEYRING__VERSION(), (_this).CurveSpec(), (_this).CryptoPrimitives()) + _32_ecdhUnwrap = _nw0 + var _33_unwrapOutputRes m_Wrappers.Result + _ = _33_unwrapOutputRes + var _out6 m_Wrappers.Result + _ = _out6 + _out6 = m_EdkWrapping.Companion_Default___.UnwrapEdkMaterial((edk).Dtor_ciphertext(), (_this).Materials(), _32_ecdhUnwrap) + _33_unwrapOutputRes = _out6 + var _34_valueOrError11 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_EdkWrapping.Companion_UnwrapEdkMaterialOutput_.Default(m_EcdhEdkWrapping.Companion_EcdhUnwrapInfo_.Default())) + _ = _34_valueOrError11 + _34_valueOrError11 = _33_unwrapOutputRes + if (_34_valueOrError11).IsFailure() { + res = (_34_valueOrError11).PropagateFailure() + return res + } + var _35_unwrapOutput m_EdkWrapping.UnwrapEdkMaterialOutput + _ = _35_unwrapOutput + _35_unwrapOutput = (_34_valueOrError11).Extract().(m_EdkWrapping.UnwrapEdkMaterialOutput) + var _36_valueOrError12 m_Wrappers.Result = m_Wrappers.Result{} + _ = _36_valueOrError12 + _36_valueOrError12 = m_Materials.Companion_Default___.DecryptionMaterialsAddDataKey((_this).Materials(), (_35_unwrapOutput).Dtor_plaintextDataKey(), (_35_unwrapOutput).Dtor_symmetricSigningKey()) + if (_36_valueOrError12).IsFailure() { + res = (_36_valueOrError12).PropagateFailure() + return res + } + var _37_result m_AwsCryptographyMaterialProvidersTypes.DecryptionMaterials + _ = _37_result + _37_result = (_36_valueOrError12).Extract().(m_AwsCryptographyMaterialProvidersTypes.DecryptionMaterials) + res = m_Wrappers.Companion_Result_.Create_Success_(_37_result) + return res + return res + } +} +func (_this *DecryptSingleEncryptedDataKey) Materials() m_AwsCryptographyMaterialProvidersTypes.DecryptionMaterials { + { + return _this._materials + } +} +func (_this *DecryptSingleEncryptedDataKey) CryptoPrimitives() *m_AtomicPrimitives.AtomicPrimitivesClient { + { + return _this._cryptoPrimitives + } +} +func (_this *DecryptSingleEncryptedDataKey) RecipientPublicKey() _dafny.Sequence { + { + return _this._recipientPublicKey + } +} +func (_this *DecryptSingleEncryptedDataKey) SenderPublicKey() _dafny.Sequence { + { + return _this._senderPublicKey + } +} +func (_this *DecryptSingleEncryptedDataKey) KeyAgreementScheme() m_AwsCryptographyMaterialProvidersTypes.RawEcdhStaticConfigurations { + { + return _this._keyAgreementScheme + } +} +func (_this *DecryptSingleEncryptedDataKey) CurveSpec() m_AwsCryptographyPrimitivesTypes.ECDHCurveSpec { + { + return _this._curveSpec + } +} + +// End of class DecryptSingleEncryptedDataKey diff --git a/customer-preview/mpl/RawRSAKeyring/RawRSAKeyring.go b/customer-preview/mpl/RawRSAKeyring/RawRSAKeyring.go new file mode 100644 index 000000000..9643a4f7c --- /dev/null +++ b/customer-preview/mpl/RawRSAKeyring/RawRSAKeyring.go @@ -0,0 +1,1093 @@ +// Package RawRSAKeyring +// Dafny module RawRSAKeyring compiled into Go + +package RawRSAKeyring + +import ( + os "os" + + m_ComAmazonawsDynamodbTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/ComAmazonawsDynamodbTypes" + m_Com_Amazonaws_Dynamodb "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/Com_Amazonaws_Dynamodb" + m_ComAmazonawsKmsTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/ComAmazonawsKmsTypes" + m_Com_Amazonaws_Kms "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/Com_Amazonaws_Kms" + m_AlgorithmSuites "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AlgorithmSuites" + m_AwsArnParsing "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsArnParsing" + m_AwsCryptographyKeyStoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreOperations" + m_AwsCryptographyKeyStoreTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreTypes" + m_AwsCryptographyMaterialProvidersTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersTypes" + m_AwsKmsDiscoveryKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsDiscoveryKeyring" + m_AwsKmsEcdhKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsEcdhKeyring" + m_AwsKmsHierarchicalKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsHierarchicalKeyring" + m_AwsKmsKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsKeyring" + m_AwsKmsMrkAreUnique "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkAreUnique" + m_AwsKmsMrkDiscoveryKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkDiscoveryKeyring" + m_AwsKmsMrkKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkKeyring" + m_AwsKmsMrkMatchForDecrypt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkMatchForDecrypt" + m_AwsKmsRsaKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsRsaKeyring" + m_AwsKmsUtils "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsUtils" + m_CacheConstants "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CacheConstants" + m_CanonicalEncryptionContext "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CanonicalEncryptionContext" + m_Constants "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Constants" + m_CreateKeyStoreTable "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeyStoreTable" + m_CreateKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeys" + m_DDBKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DDBKeystoreOperations" + m_DiscoveryMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DiscoveryMultiKeyring" + m_EcdhEdkWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/EcdhEdkWrapping" + m_EdkWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/EdkWrapping" + m_ErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/ErrorMessages" + m_GetKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/GetKeys" + m_IntermediateKeyWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/IntermediateKeyWrapping" + m_KMSKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KMSKeystoreOperations" + m_KeyStore "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStore" + m_KeyStoreErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStoreErrorMessages" + m_Keyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Keyring" + m_KmsArn "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KmsArn" + m_LocalCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/LocalCMC" + m_MaterialWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MaterialWrapping" + m_Materials "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Materials" + m_MrkAwareDiscoveryMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MrkAwareDiscoveryMultiKeyring" + m_MrkAwareStrictMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MrkAwareStrictMultiKeyring" + m_MultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MultiKeyring" + m_RawAESKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawAESKeyring" + m_RawECDHKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawECDHKeyring" + m_StormTracker "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StormTracker" + m_StormTrackingCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StormTrackingCMC" + m_StrictMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StrictMultiKeyring" + m_Structure "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Structure" + m_SynchronizedLocalCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/SynchronizedLocalCMC" + m_AtomicPrimitives "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AtomicPrimitives" + m_AwsCryptographyPrimitivesOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesOperations" + m_AwsCryptographyPrimitivesTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesTypes" + m_Digest "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Digest" + m_HKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/HKDF" + m_KdfCtr "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/KdfCtr" + m_Random "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Random" + m_WrappedHKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHKDF" + m_WrappedHMAC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHMAC" + m_Actions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Actions" + m_Base64 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64" + m_Base64Lemmas "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64Lemmas" + m_BoundedInts "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/BoundedInts" + m_DivInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternals" + m_DivInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternalsNonlinear" + m_DivMod "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivMod" + m_FileIO "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FileIO" + m_FloatCompare "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FloatCompare" + m_Functions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Functions" + m_GeneralInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GeneralInternals" + m_GetOpt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GetOpt" + m_HexStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/HexStrings" + m_Logarithm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Logarithm" + m__Math "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Math_" + m_ModInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternals" + m_ModInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternalsNonlinear" + m_Mul "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Mul" + m_MulInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternals" + m_MulInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternalsNonlinear" + m_Power "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Power" + m_Relations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Relations" + m_Seq "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq" + m_Seq_MergeSort "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq_MergeSort" + m_Sorting "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Sorting" + m_StandardLibrary "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary" + m_StandardLibraryInterop "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibraryInterop" + m_StandardLibrary_Sequence "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_Sequence" + m_StandardLibrary_String "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_String" + m_StandardLibrary_UInt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_UInt" + m_Streams "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Streams" + m_UTF8 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UTF8" + m_UnicodeStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UnicodeStrings" + m__Unicode "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Unicode_" + m_Utf16EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf16EncodingForm" + m_Utf8EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf8EncodingForm" + m_Wrappers "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers" + m__System "github.com/dafny-lang/DafnyRuntimeGo/v4/System_" + _dafny "github.com/dafny-lang/DafnyRuntimeGo/v4/dafny" +) + +var _ = os.Args +var _ _dafny.Dummy__ +var _ m__System.Dummy__ +var _ m_Wrappers.Dummy__ +var _ m_BoundedInts.Dummy__ +var _ m_StandardLibrary_UInt.Dummy__ +var _ m_StandardLibrary_Sequence.Dummy__ +var _ m_StandardLibrary_String.Dummy__ +var _ m_StandardLibrary.Dummy__ +var _ m_AwsCryptographyPrimitivesTypes.Dummy__ +var _ m_Random.Dummy__ +var _ m_Digest.Dummy__ +var _ m_WrappedHMAC.Dummy__ +var _ m_HKDF.Dummy__ +var _ m_WrappedHKDF.Dummy__ +var _ m_KdfCtr.Dummy__ +var _ m_AwsCryptographyPrimitivesOperations.Dummy__ +var _ m_AtomicPrimitives.Dummy__ +var _ m_ComAmazonawsDynamodbTypes.Dummy__ +var _ m_ComAmazonawsKmsTypes.Dummy__ +var _ m_Relations.Dummy__ +var _ m_Seq_MergeSort.Dummy__ +var _ m__Math.Dummy__ +var _ m_Seq.Dummy__ +var _ m__Unicode.Dummy__ +var _ m_Functions.Dummy__ +var _ m_Utf8EncodingForm.Dummy__ +var _ m_Utf16EncodingForm.Dummy__ +var _ m_UnicodeStrings.Dummy__ +var _ m_FileIO.Dummy__ +var _ m_GeneralInternals.Dummy__ +var _ m_MulInternalsNonlinear.Dummy__ +var _ m_MulInternals.Dummy__ +var _ m_Mul.Dummy__ +var _ m_ModInternalsNonlinear.Dummy__ +var _ m_DivInternalsNonlinear.Dummy__ +var _ m_ModInternals.Dummy__ +var _ m_DivInternals.Dummy__ +var _ m_DivMod.Dummy__ +var _ m_Power.Dummy__ +var _ m_Logarithm.Dummy__ +var _ m_StandardLibraryInterop.Dummy__ +var _ m_Streams.Dummy__ +var _ m_Sorting.Dummy__ +var _ m_HexStrings.Dummy__ +var _ m_GetOpt.Dummy__ +var _ m_FloatCompare.Dummy__ +var _ m_Base64.Dummy__ +var _ m_Base64Lemmas.Dummy__ +var _ m_Actions.Dummy__ +var _ m_AwsCryptographyKeyStoreTypes.Dummy__ +var _ m_AwsCryptographyMaterialProvidersTypes.Dummy__ +var _ m_AwsArnParsing.Dummy__ +var _ m_AwsKmsMrkMatchForDecrypt.Dummy__ +var _ m_AwsKmsUtils.Dummy__ +var _ m_KeyStoreErrorMessages.Dummy__ +var _ m_KmsArn.Dummy__ +var _ m_Structure.Dummy__ +var _ m_KMSKeystoreOperations.Dummy__ +var _ m_DDBKeystoreOperations.Dummy__ +var _ m_CreateKeys.Dummy__ +var _ m_CreateKeyStoreTable.Dummy__ +var _ m_GetKeys.Dummy__ +var _ m_AwsCryptographyKeyStoreOperations.Dummy__ +var _ m_Com_Amazonaws_Kms.Dummy__ +var _ m_Com_Amazonaws_Dynamodb.Dummy__ +var _ m_KeyStore.Dummy__ +var _ m_AlgorithmSuites.Dummy__ +var _ m_Materials.Dummy__ +var _ m_Keyring.Dummy__ +var _ m_MultiKeyring.Dummy__ +var _ m_AwsKmsMrkAreUnique.Dummy__ +var _ m_Constants.Dummy__ +var _ m_MaterialWrapping.Dummy__ +var _ m_CanonicalEncryptionContext.Dummy__ +var _ m_IntermediateKeyWrapping.Dummy__ +var _ m_EdkWrapping.Dummy__ +var _ m_ErrorMessages.Dummy__ +var _ m_AwsKmsKeyring.Dummy__ +var _ m_StrictMultiKeyring.Dummy__ +var _ m_AwsKmsDiscoveryKeyring.Dummy__ +var _ m_DiscoveryMultiKeyring.Dummy__ +var _ m_AwsKmsMrkDiscoveryKeyring.Dummy__ +var _ m_MrkAwareDiscoveryMultiKeyring.Dummy__ +var _ m_AwsKmsMrkKeyring.Dummy__ +var _ m_MrkAwareStrictMultiKeyring.Dummy__ +var _ m_LocalCMC.Dummy__ +var _ m_SynchronizedLocalCMC.Dummy__ +var _ m_StormTracker.Dummy__ +var _ m_StormTrackingCMC.Dummy__ +var _ m_CacheConstants.Dummy__ +var _ m_AwsKmsHierarchicalKeyring.Dummy__ +var _ m_AwsKmsRsaKeyring.Dummy__ +var _ m_EcdhEdkWrapping.Dummy__ +var _ m_RawECDHKeyring.Dummy__ +var _ m_AwsKmsEcdhKeyring.Dummy__ +var _ m_RawAESKeyring.Dummy__ + +type Dummy__ struct{} + +// Definition of class RawRSAKeyring +type RawRSAKeyring struct { + _cryptoPrimitives *m_AtomicPrimitives.AtomicPrimitivesClient + _keyNamespace _dafny.Sequence + _keyName _dafny.Sequence + _paddingScheme m_AwsCryptographyPrimitivesTypes.RSAPaddingMode + _publicKey m_Wrappers.Option + _privateKey m_Wrappers.Option +} + +func New_RawRSAKeyring_() *RawRSAKeyring { + _this := RawRSAKeyring{} + + _this._cryptoPrimitives = (*m_AtomicPrimitives.AtomicPrimitivesClient)(nil) + _this._keyNamespace = m_UTF8.Companion_ValidUTF8Bytes_.Witness() + _this._keyName = m_UTF8.Companion_ValidUTF8Bytes_.Witness() + _this._paddingScheme = m_AwsCryptographyPrimitivesTypes.Companion_RSAPaddingMode_.Default() + _this._publicKey = m_Wrappers.Companion_Option_.Default() + _this._privateKey = m_Wrappers.Companion_Option_.Default() + return &_this +} + +type CompanionStruct_RawRSAKeyring_ struct { +} + +var Companion_RawRSAKeyring_ = CompanionStruct_RawRSAKeyring_{} + +func (_this *RawRSAKeyring) Equals(other *RawRSAKeyring) bool { + return _this == other +} + +func (_this *RawRSAKeyring) EqualsGeneric(x interface{}) bool { + other, ok := x.(*RawRSAKeyring) + return ok && _this.Equals(other) +} + +func (*RawRSAKeyring) String() string { + return "RawRSAKeyring.RawRSAKeyring" +} + +func Type_RawRSAKeyring_() _dafny.TypeDescriptor { + return type_RawRSAKeyring_{} +} + +type type_RawRSAKeyring_ struct { +} + +func (_this type_RawRSAKeyring_) Default() interface{} { + return (*RawRSAKeyring)(nil) +} + +func (_this type_RawRSAKeyring_) String() string { + return "RawRSAKeyring.RawRSAKeyring" +} +func (_this *RawRSAKeyring) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){m_Keyring.Companion_VerifiableInterface_.TraitID_, m_AwsCryptographyMaterialProvidersTypes.Companion_IKeyring_.TraitID_} +} + +var _ m_Keyring.VerifiableInterface = &RawRSAKeyring{} +var _ m_AwsCryptographyMaterialProvidersTypes.IKeyring = &RawRSAKeyring{} +var _ _dafny.TraitOffspring = &RawRSAKeyring{} + +func (_this *RawRSAKeyring) OnDecrypt(input m_AwsCryptographyMaterialProvidersTypes.OnDecryptInput) m_Wrappers.Result { + var _out11 m_Wrappers.Result + _ = _out11 + _out11 = m_AwsCryptographyMaterialProvidersTypes.Companion_IKeyring_.OnDecrypt(_this, input) + return _out11 +} +func (_this *RawRSAKeyring) OnEncrypt(input m_AwsCryptographyMaterialProvidersTypes.OnEncryptInput) m_Wrappers.Result { + var _out11 m_Wrappers.Result + _ = _out11 + _out11 = m_AwsCryptographyMaterialProvidersTypes.Companion_IKeyring_.OnEncrypt(_this, input) + return _out11 +} +func (_this *RawRSAKeyring) Ctor__(namespace _dafny.Sequence, name _dafny.Sequence, publicKey m_Wrappers.Option, privateKey m_Wrappers.Option, paddingScheme m_AwsCryptographyPrimitivesTypes.RSAPaddingMode, cryptoPrimitives *m_AtomicPrimitives.AtomicPrimitivesClient) { + { + (_this)._keyNamespace = namespace + (_this)._keyName = name + (_this)._paddingScheme = paddingScheme + (_this)._publicKey = publicKey + (_this)._privateKey = privateKey + (_this)._cryptoPrimitives = cryptoPrimitives + } +} +func (_this *RawRSAKeyring) OnEncrypt_k(input m_AwsCryptographyMaterialProvidersTypes.OnEncryptInput) m_Wrappers.Result { + { + var output m_Wrappers.Result = m_Wrappers.Result{} + _ = output + var _0_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _0_valueOrError0 + _0_valueOrError0 = m_Wrappers.Companion_Default___.Need((((_this).PublicKey()).Is_Some()) && ((_dafny.IntOfUint32((((_this).PublicKey()).Extract().(_dafny.Sequence)).Cardinality())).Sign() == 1), m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.SeqOfString("A RawRSAKeyring without a public key cannot provide OnEncrypt"))) + if (_0_valueOrError0).IsFailure() { + output = (_0_valueOrError0).PropagateFailure() + return output + } + var _1_materials m_AwsCryptographyMaterialProvidersTypes.EncryptionMaterials + _ = _1_materials + _1_materials = (input).Dtor_materials() + var _2_suite m_AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo + _ = _2_suite + _2_suite = (_1_materials).Dtor_algorithmSuite() + var _3_wrap *RsaWrapKeyMaterial + _ = _3_wrap + var _nw0 *RsaWrapKeyMaterial = New_RsaWrapKeyMaterial_() + _ = _nw0 + _nw0.Ctor__(((_this).PublicKey()).Dtor_value().(_dafny.Sequence), (_this).PaddingScheme(), (_this).CryptoPrimitives()) + _3_wrap = _nw0 + var _4_generateAndWrap *RsaGenerateAndWrapKeyMaterial + _ = _4_generateAndWrap + var _nw1 *RsaGenerateAndWrapKeyMaterial = New_RsaGenerateAndWrapKeyMaterial_() + _ = _nw1 + _nw1.Ctor__(((_this).PublicKey()).Dtor_value().(_dafny.Sequence), (_this).PaddingScheme(), (_this).CryptoPrimitives()) + _4_generateAndWrap = _nw1 + var _5_valueOrError1 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_EdkWrapping.Companion_WrapEdkMaterialOutput_.Default(Companion_RsaWrapInfo_.Default())) + _ = _5_valueOrError1 + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_EdkWrapping.Companion_Default___.WrapEdkMaterial(_1_materials, _3_wrap, _4_generateAndWrap) + _5_valueOrError1 = _out0 + if (_5_valueOrError1).IsFailure() { + output = (_5_valueOrError1).PropagateFailure() + return output + } + var _6_wrapOutput m_EdkWrapping.WrapEdkMaterialOutput + _ = _6_wrapOutput + _6_wrapOutput = (_5_valueOrError1).Extract().(m_EdkWrapping.WrapEdkMaterialOutput) + var _7_symmetricSigningKeyList m_Wrappers.Option + _ = _7_symmetricSigningKeyList + if ((_6_wrapOutput).Dtor_symmetricSigningKey()).Is_Some() { + _7_symmetricSigningKeyList = m_Wrappers.Companion_Option_.Create_Some_(_dafny.SeqOf(((_6_wrapOutput).Dtor_symmetricSigningKey()).Dtor_value().(_dafny.Sequence))) + } else { + _7_symmetricSigningKeyList = m_Wrappers.Companion_Option_.Create_None_() + } + var _8_edk m_AwsCryptographyMaterialProvidersTypes.EncryptedDataKey + _ = _8_edk + _8_edk = m_AwsCryptographyMaterialProvidersTypes.Companion_EncryptedDataKey_.Create_EncryptedDataKey_((_this).KeyNamespace(), (_this).KeyName(), (_6_wrapOutput).Dtor_wrappedMaterial()) + if (_6_wrapOutput).Is_GenerateAndWrapEdkMaterialOutput() { + var _9_valueOrError2 m_Wrappers.Result = m_Wrappers.Result{} + _ = _9_valueOrError2 + _9_valueOrError2 = m_Materials.Companion_Default___.EncryptionMaterialAddDataKey(_1_materials, (_6_wrapOutput).Dtor_plaintextDataKey(), _dafny.SeqOf(_8_edk), _7_symmetricSigningKeyList) + if (_9_valueOrError2).IsFailure() { + output = (_9_valueOrError2).PropagateFailure() + return output + } + var _10_result m_AwsCryptographyMaterialProvidersTypes.EncryptionMaterials + _ = _10_result + _10_result = (_9_valueOrError2).Extract().(m_AwsCryptographyMaterialProvidersTypes.EncryptionMaterials) + output = m_Wrappers.Companion_Result_.Create_Success_(m_AwsCryptographyMaterialProvidersTypes.Companion_OnEncryptOutput_.Create_OnEncryptOutput_(_10_result)) + return output + } else if (_6_wrapOutput).Is_WrapOnlyEdkMaterialOutput() { + var _11_valueOrError3 m_Wrappers.Result = m_Wrappers.Result{} + _ = _11_valueOrError3 + _11_valueOrError3 = m_Materials.Companion_Default___.EncryptionMaterialAddEncryptedDataKeys(_1_materials, _dafny.SeqOf(_8_edk), _7_symmetricSigningKeyList) + if (_11_valueOrError3).IsFailure() { + output = (_11_valueOrError3).PropagateFailure() + return output + } + var _12_result m_AwsCryptographyMaterialProvidersTypes.EncryptionMaterials + _ = _12_result + _12_result = (_11_valueOrError3).Extract().(m_AwsCryptographyMaterialProvidersTypes.EncryptionMaterials) + output = m_Wrappers.Companion_Result_.Create_Success_(m_AwsCryptographyMaterialProvidersTypes.Companion_OnEncryptOutput_.Create_OnEncryptOutput_(_12_result)) + return output + } + return output + } +} +func (_this *RawRSAKeyring) OnDecrypt_k(input m_AwsCryptographyMaterialProvidersTypes.OnDecryptInput) m_Wrappers.Result { + { + var output m_Wrappers.Result = m_Wrappers.Result{} + _ = output + var _0_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _0_valueOrError0 + _0_valueOrError0 = m_Wrappers.Companion_Default___.Need((((_this).PrivateKey()).Is_Some()) && ((_dafny.IntOfUint32((((_this).PrivateKey()).Extract().(_dafny.Sequence)).Cardinality())).Sign() == 1), m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.SeqOfString("A RawRSAKeyring without a private key cannot provide OnEncrypt"))) + if (_0_valueOrError0).IsFailure() { + output = (_0_valueOrError0).PropagateFailure() + return output + } + var _1_materials m_AwsCryptographyMaterialProvidersTypes.DecryptionMaterials + _ = _1_materials + _1_materials = (input).Dtor_materials() + var _2_valueOrError1 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _2_valueOrError1 + _2_valueOrError1 = m_Wrappers.Companion_Default___.Need(m_Materials.Companion_Default___.DecryptionMaterialsWithoutPlaintextDataKey(_1_materials), m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.SeqOfString("Keyring received decryption materials that already contain a plaintext data key."))) + if (_2_valueOrError1).IsFailure() { + output = (_2_valueOrError1).PropagateFailure() + return output + } + var _3_errors _dafny.Sequence + _ = _3_errors + _3_errors = _dafny.SeqOf() + var _hi0 _dafny.Int = _dafny.IntOfUint32(((input).Dtor_encryptedDataKeys()).Cardinality()) + _ = _hi0 + for _4_i := _dafny.Zero; _4_i.Cmp(_hi0) < 0; _4_i = _4_i.Plus(_dafny.One) { + if (_this).ShouldDecryptEDK(((input).Dtor_encryptedDataKeys()).Select((_4_i).Uint32()).(m_AwsCryptographyMaterialProvidersTypes.EncryptedDataKey)) { + var _5_edk m_AwsCryptographyMaterialProvidersTypes.EncryptedDataKey + _ = _5_edk + _5_edk = ((input).Dtor_encryptedDataKeys()).Select((_4_i).Uint32()).(m_AwsCryptographyMaterialProvidersTypes.EncryptedDataKey) + var _6_unwrap *RsaUnwrapKeyMaterial + _ = _6_unwrap + var _nw0 *RsaUnwrapKeyMaterial = New_RsaUnwrapKeyMaterial_() + _ = _nw0 + _nw0.Ctor__(((_this).PrivateKey()).Extract().(_dafny.Sequence), (_this).PaddingScheme(), (_this).CryptoPrimitives()) + _6_unwrap = _nw0 + var _7_unwrapOutput m_Wrappers.Result + _ = _7_unwrapOutput + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_EdkWrapping.Companion_Default___.UnwrapEdkMaterial((_5_edk).Dtor_ciphertext(), _1_materials, _6_unwrap) + _7_unwrapOutput = _out0 + if (_7_unwrapOutput).Is_Success() { + var _8_valueOrError2 m_Wrappers.Result = m_Wrappers.Result{} + _ = _8_valueOrError2 + _8_valueOrError2 = m_Materials.Companion_Default___.DecryptionMaterialsAddDataKey(_1_materials, ((_7_unwrapOutput).Dtor_value().(m_EdkWrapping.UnwrapEdkMaterialOutput)).Dtor_plaintextDataKey(), ((_7_unwrapOutput).Dtor_value().(m_EdkWrapping.UnwrapEdkMaterialOutput)).Dtor_symmetricSigningKey()) + if (_8_valueOrError2).IsFailure() { + output = (_8_valueOrError2).PropagateFailure() + return output + } + var _9_returnMaterials m_AwsCryptographyMaterialProvidersTypes.DecryptionMaterials + _ = _9_returnMaterials + _9_returnMaterials = (_8_valueOrError2).Extract().(m_AwsCryptographyMaterialProvidersTypes.DecryptionMaterials) + output = m_Wrappers.Companion_Result_.Create_Success_(m_AwsCryptographyMaterialProvidersTypes.Companion_OnDecryptOutput_.Create_OnDecryptOutput_(_9_returnMaterials)) + return output + } else { + _3_errors = _dafny.Companion_Sequence_.Concatenate(_3_errors, _dafny.SeqOf((_7_unwrapOutput).Dtor_error().(m_AwsCryptographyMaterialProvidersTypes.Error))) + } + } else { + var _10_valueOrError3 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq.SetString()) + _ = _10_valueOrError3 + _10_valueOrError3 = (m_UTF8.Decode((((input).Dtor_encryptedDataKeys()).Select((_4_i).Uint32()).(m_AwsCryptographyMaterialProvidersTypes.EncryptedDataKey)).Dtor_keyProviderId())).MapFailure(func(coer125 func(_dafny.Sequence) m_AwsCryptographyMaterialProvidersTypes.Error) func(interface{}) interface{} { + return func(arg126 interface{}) interface{} { + return coer125(arg126.(_dafny.Sequence)) + } + }(func(_11_e _dafny.Sequence) m_AwsCryptographyMaterialProvidersTypes.Error { + return m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_11_e) + })) + if (_10_valueOrError3).IsFailure() { + output = (_10_valueOrError3).PropagateFailure() + return output + } + var _12_extractedKeyProviderId _dafny.Sequence + _ = _12_extractedKeyProviderId + _12_extractedKeyProviderId = (_10_valueOrError3).Extract().(_dafny.Sequence) + _3_errors = _dafny.Companion_Sequence_.Concatenate(_3_errors, _dafny.SeqOf(m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(m_ErrorMessages.Companion_Default___.IncorrectRawDataKeys(m_StandardLibrary_String.Companion_Default___.Base10Int2String(_4_i), _dafny.SeqOfString("RSAKeyring"), _12_extractedKeyProviderId)))) + } + } + output = m_Wrappers.Companion_Result_.Create_Failure_(m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_CollectionOfErrors_(_3_errors, _dafny.SeqOfString("Raw RSA Key was unable to decrypt any encrypted data key. The list of encountered Exceptions is avaible via `list`."))) + return output + return output + } +} +func (_this *RawRSAKeyring) ShouldDecryptEDK(edk m_AwsCryptographyMaterialProvidersTypes.EncryptedDataKey) bool { + { + return (((m_UTF8.Companion_Default___.ValidUTF8Seq((edk).Dtor_keyProviderInfo())) && (_dafny.Companion_Sequence_.Equal((edk).Dtor_keyProviderInfo(), (_this).KeyName()))) && (_dafny.Companion_Sequence_.Equal((edk).Dtor_keyProviderId(), (_this).KeyNamespace()))) && ((_dafny.IntOfUint32(((edk).Dtor_ciphertext()).Cardinality())).Sign() == 1) + } +} +func (_this *RawRSAKeyring) CryptoPrimitives() *m_AtomicPrimitives.AtomicPrimitivesClient { + { + return _this._cryptoPrimitives + } +} +func (_this *RawRSAKeyring) KeyNamespace() _dafny.Sequence { + { + return _this._keyNamespace + } +} +func (_this *RawRSAKeyring) KeyName() _dafny.Sequence { + { + return _this._keyName + } +} +func (_this *RawRSAKeyring) PaddingScheme() m_AwsCryptographyPrimitivesTypes.RSAPaddingMode { + { + return _this._paddingScheme + } +} +func (_this *RawRSAKeyring) PublicKey() m_Wrappers.Option { + { + return _this._publicKey + } +} +func (_this *RawRSAKeyring) PrivateKey() m_Wrappers.Option { + { + return _this._privateKey + } +} + +// End of class RawRSAKeyring + +// Definition of datatype RsaUnwrapInfo +type RsaUnwrapInfo struct { + Data_RsaUnwrapInfo_ +} + +func (_this RsaUnwrapInfo) Get_() Data_RsaUnwrapInfo_ { + return _this.Data_RsaUnwrapInfo_ +} + +type Data_RsaUnwrapInfo_ interface { + isRsaUnwrapInfo() +} + +type CompanionStruct_RsaUnwrapInfo_ struct { +} + +var Companion_RsaUnwrapInfo_ = CompanionStruct_RsaUnwrapInfo_{} + +type RsaUnwrapInfo_RsaUnwrapInfo struct { +} + +func (RsaUnwrapInfo_RsaUnwrapInfo) isRsaUnwrapInfo() {} + +func (CompanionStruct_RsaUnwrapInfo_) Create_RsaUnwrapInfo_() RsaUnwrapInfo { + return RsaUnwrapInfo{RsaUnwrapInfo_RsaUnwrapInfo{}} +} + +func (_this RsaUnwrapInfo) Is_RsaUnwrapInfo() bool { + _, ok := _this.Get_().(RsaUnwrapInfo_RsaUnwrapInfo) + return ok +} + +func (CompanionStruct_RsaUnwrapInfo_) Default() RsaUnwrapInfo { + return Companion_RsaUnwrapInfo_.Create_RsaUnwrapInfo_() +} + +func (_ CompanionStruct_RsaUnwrapInfo_) AllSingletonConstructors() _dafny.Iterator { + i := -1 + return func() (interface{}, bool) { + i++ + switch i { + case 0: + return Companion_RsaUnwrapInfo_.Create_RsaUnwrapInfo_(), true + default: + return RsaUnwrapInfo{}, false + } + } +} + +func (_this RsaUnwrapInfo) String() string { + switch _this.Get_().(type) { + case nil: + return "null" + case RsaUnwrapInfo_RsaUnwrapInfo: + { + return "RawRSAKeyring.RsaUnwrapInfo.RsaUnwrapInfo" + } + default: + { + return "" + } + } +} + +func (_this RsaUnwrapInfo) Equals(other RsaUnwrapInfo) bool { + switch _this.Get_().(type) { + case RsaUnwrapInfo_RsaUnwrapInfo: + { + _, ok := other.Get_().(RsaUnwrapInfo_RsaUnwrapInfo) + return ok + } + default: + { + return false // unexpected + } + } +} + +func (_this RsaUnwrapInfo) EqualsGeneric(other interface{}) bool { + typed, ok := other.(RsaUnwrapInfo) + return ok && _this.Equals(typed) +} + +func Type_RsaUnwrapInfo_() _dafny.TypeDescriptor { + return type_RsaUnwrapInfo_{} +} + +type type_RsaUnwrapInfo_ struct { +} + +func (_this type_RsaUnwrapInfo_) Default() interface{} { + return Companion_RsaUnwrapInfo_.Default() +} + +func (_this type_RsaUnwrapInfo_) String() string { + return "RawRSAKeyring.RsaUnwrapInfo" +} +func (_this RsaUnwrapInfo) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = RsaUnwrapInfo{} + +// End of datatype RsaUnwrapInfo + +// Definition of datatype RsaWrapInfo +type RsaWrapInfo struct { + Data_RsaWrapInfo_ +} + +func (_this RsaWrapInfo) Get_() Data_RsaWrapInfo_ { + return _this.Data_RsaWrapInfo_ +} + +type Data_RsaWrapInfo_ interface { + isRsaWrapInfo() +} + +type CompanionStruct_RsaWrapInfo_ struct { +} + +var Companion_RsaWrapInfo_ = CompanionStruct_RsaWrapInfo_{} + +type RsaWrapInfo_RsaWrapInfo struct { +} + +func (RsaWrapInfo_RsaWrapInfo) isRsaWrapInfo() {} + +func (CompanionStruct_RsaWrapInfo_) Create_RsaWrapInfo_() RsaWrapInfo { + return RsaWrapInfo{RsaWrapInfo_RsaWrapInfo{}} +} + +func (_this RsaWrapInfo) Is_RsaWrapInfo() bool { + _, ok := _this.Get_().(RsaWrapInfo_RsaWrapInfo) + return ok +} + +func (CompanionStruct_RsaWrapInfo_) Default() RsaWrapInfo { + return Companion_RsaWrapInfo_.Create_RsaWrapInfo_() +} + +func (_ CompanionStruct_RsaWrapInfo_) AllSingletonConstructors() _dafny.Iterator { + i := -1 + return func() (interface{}, bool) { + i++ + switch i { + case 0: + return Companion_RsaWrapInfo_.Create_RsaWrapInfo_(), true + default: + return RsaWrapInfo{}, false + } + } +} + +func (_this RsaWrapInfo) String() string { + switch _this.Get_().(type) { + case nil: + return "null" + case RsaWrapInfo_RsaWrapInfo: + { + return "RawRSAKeyring.RsaWrapInfo.RsaWrapInfo" + } + default: + { + return "" + } + } +} + +func (_this RsaWrapInfo) Equals(other RsaWrapInfo) bool { + switch _this.Get_().(type) { + case RsaWrapInfo_RsaWrapInfo: + { + _, ok := other.Get_().(RsaWrapInfo_RsaWrapInfo) + return ok + } + default: + { + return false // unexpected + } + } +} + +func (_this RsaWrapInfo) EqualsGeneric(other interface{}) bool { + typed, ok := other.(RsaWrapInfo) + return ok && _this.Equals(typed) +} + +func Type_RsaWrapInfo_() _dafny.TypeDescriptor { + return type_RsaWrapInfo_{} +} + +type type_RsaWrapInfo_ struct { +} + +func (_this type_RsaWrapInfo_) Default() interface{} { + return Companion_RsaWrapInfo_.Default() +} + +func (_this type_RsaWrapInfo_) String() string { + return "RawRSAKeyring.RsaWrapInfo" +} +func (_this RsaWrapInfo) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = RsaWrapInfo{} + +// End of datatype RsaWrapInfo + +// Definition of class RsaGenerateAndWrapKeyMaterial +type RsaGenerateAndWrapKeyMaterial struct { + _publicKey _dafny.Sequence + _paddingScheme m_AwsCryptographyPrimitivesTypes.RSAPaddingMode + _cryptoPrimitives *m_AtomicPrimitives.AtomicPrimitivesClient +} + +func New_RsaGenerateAndWrapKeyMaterial_() *RsaGenerateAndWrapKeyMaterial { + _this := RsaGenerateAndWrapKeyMaterial{} + + _this._publicKey = _dafny.EmptySeq + _this._paddingScheme = m_AwsCryptographyPrimitivesTypes.Companion_RSAPaddingMode_.Default() + _this._cryptoPrimitives = (*m_AtomicPrimitives.AtomicPrimitivesClient)(nil) + return &_this +} + +type CompanionStruct_RsaGenerateAndWrapKeyMaterial_ struct { +} + +var Companion_RsaGenerateAndWrapKeyMaterial_ = CompanionStruct_RsaGenerateAndWrapKeyMaterial_{} + +func (_this *RsaGenerateAndWrapKeyMaterial) Equals(other *RsaGenerateAndWrapKeyMaterial) bool { + return _this == other +} + +func (_this *RsaGenerateAndWrapKeyMaterial) EqualsGeneric(x interface{}) bool { + other, ok := x.(*RsaGenerateAndWrapKeyMaterial) + return ok && _this.Equals(other) +} + +func (*RsaGenerateAndWrapKeyMaterial) String() string { + return "RawRSAKeyring.RsaGenerateAndWrapKeyMaterial" +} + +func Type_RsaGenerateAndWrapKeyMaterial_() _dafny.TypeDescriptor { + return type_RsaGenerateAndWrapKeyMaterial_{} +} + +type type_RsaGenerateAndWrapKeyMaterial_ struct { +} + +func (_this type_RsaGenerateAndWrapKeyMaterial_) Default() interface{} { + return (*RsaGenerateAndWrapKeyMaterial)(nil) +} + +func (_this type_RsaGenerateAndWrapKeyMaterial_) String() string { + return "RawRSAKeyring.RsaGenerateAndWrapKeyMaterial" +} +func (_this *RsaGenerateAndWrapKeyMaterial) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){m_MaterialWrapping.Companion_GenerateAndWrapMaterial_.TraitID_, m_Actions.Companion_ActionWithResult_.TraitID_, m_Actions.Companion_Action_.TraitID_} +} + +var _ m_MaterialWrapping.GenerateAndWrapMaterial = &RsaGenerateAndWrapKeyMaterial{} +var _ m_Actions.ActionWithResult = &RsaGenerateAndWrapKeyMaterial{} +var _ m_Actions.Action = &RsaGenerateAndWrapKeyMaterial{} +var _ _dafny.TraitOffspring = &RsaGenerateAndWrapKeyMaterial{} + +func (_this *RsaGenerateAndWrapKeyMaterial) Ctor__(publicKey _dafny.Sequence, paddingScheme m_AwsCryptographyPrimitivesTypes.RSAPaddingMode, cryptoPrimitives *m_AtomicPrimitives.AtomicPrimitivesClient) { + { + (_this)._publicKey = publicKey + (_this)._paddingScheme = paddingScheme + (_this)._cryptoPrimitives = cryptoPrimitives + } +} +func (_this *RsaGenerateAndWrapKeyMaterial) Invoke(input interface{}) interface{} { + { + var input m_MaterialWrapping.GenerateAndWrapInput = input.(m_MaterialWrapping.GenerateAndWrapInput) + _ = input + var res m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_MaterialWrapping.Companion_GenerateAndWrapOutput_.Default(Companion_RsaWrapInfo_.Default())) + _ = res + var _0_generateBytesResult m_Wrappers.Result + _ = _0_generateBytesResult + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = ((_this).CryptoPrimitives()).GenerateRandomBytes(m_AwsCryptographyPrimitivesTypes.Companion_GenerateRandomBytesInput_.Create_GenerateRandomBytesInput_(m_AlgorithmSuites.Companion_Default___.GetEncryptKeyLength((input).Dtor_algorithmSuite()))) + _0_generateBytesResult = _out0 + var _1_valueOrError0 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = _1_valueOrError0 + _1_valueOrError0 = (_0_generateBytesResult).MapFailure(func(coer126 func(m_AwsCryptographyPrimitivesTypes.Error) m_AwsCryptographyMaterialProvidersTypes.Error) func(interface{}) interface{} { + return func(arg127 interface{}) interface{} { + return coer126(arg127.(m_AwsCryptographyPrimitivesTypes.Error)) + } + }(func(_2_e m_AwsCryptographyPrimitivesTypes.Error) m_AwsCryptographyMaterialProvidersTypes.Error { + return m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographyPrimitives_(_2_e) + })) + if (_1_valueOrError0).IsFailure() { + res = (_1_valueOrError0).PropagateFailure() + return res + } + var _3_plaintextMaterial _dafny.Sequence + _ = _3_plaintextMaterial + _3_plaintextMaterial = (_1_valueOrError0).Extract().(_dafny.Sequence) + var _4_wrap *RsaWrapKeyMaterial + _ = _4_wrap + var _nw0 *RsaWrapKeyMaterial = New_RsaWrapKeyMaterial_() + _ = _nw0 + _nw0.Ctor__((_this).PublicKey(), (_this).PaddingScheme(), (_this).CryptoPrimitives()) + _4_wrap = _nw0 + var _5_valueOrError1 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_MaterialWrapping.Companion_WrapOutput_.Default(Companion_RsaWrapInfo_.Default())) + _ = _5_valueOrError1 + var _out1 interface{} + _ = _out1 + _out1 = (_4_wrap).Invoke(m_MaterialWrapping.Companion_WrapInput_.Create_WrapInput_(_3_plaintextMaterial, (input).Dtor_algorithmSuite(), (input).Dtor_encryptionContext())) + _5_valueOrError1 = _out1.(m_Wrappers.Result) + if (_5_valueOrError1).IsFailure() { + res = (_5_valueOrError1).PropagateFailure() + return res + } + var _6_wrapOutput m_MaterialWrapping.WrapOutput + _ = _6_wrapOutput + _6_wrapOutput = (_5_valueOrError1).Extract().(m_MaterialWrapping.WrapOutput) + var _7_output m_MaterialWrapping.GenerateAndWrapOutput + _ = _7_output + _7_output = m_MaterialWrapping.Companion_GenerateAndWrapOutput_.Create_GenerateAndWrapOutput_(_3_plaintextMaterial, (_6_wrapOutput).Dtor_wrappedMaterial(), Companion_RsaWrapInfo_.Create_RsaWrapInfo_()) + res = m_Wrappers.Companion_Result_.Create_Success_(_7_output) + return res + return res + } +} +func (_this *RsaGenerateAndWrapKeyMaterial) PublicKey() _dafny.Sequence { + { + return _this._publicKey + } +} +func (_this *RsaGenerateAndWrapKeyMaterial) PaddingScheme() m_AwsCryptographyPrimitivesTypes.RSAPaddingMode { + { + return _this._paddingScheme + } +} +func (_this *RsaGenerateAndWrapKeyMaterial) CryptoPrimitives() *m_AtomicPrimitives.AtomicPrimitivesClient { + { + return _this._cryptoPrimitives + } +} + +// End of class RsaGenerateAndWrapKeyMaterial + +// Definition of class RsaWrapKeyMaterial +type RsaWrapKeyMaterial struct { + _publicKey _dafny.Sequence + _paddingScheme m_AwsCryptographyPrimitivesTypes.RSAPaddingMode + _cryptoPrimitives *m_AtomicPrimitives.AtomicPrimitivesClient +} + +func New_RsaWrapKeyMaterial_() *RsaWrapKeyMaterial { + _this := RsaWrapKeyMaterial{} + + _this._publicKey = _dafny.EmptySeq + _this._paddingScheme = m_AwsCryptographyPrimitivesTypes.Companion_RSAPaddingMode_.Default() + _this._cryptoPrimitives = (*m_AtomicPrimitives.AtomicPrimitivesClient)(nil) + return &_this +} + +type CompanionStruct_RsaWrapKeyMaterial_ struct { +} + +var Companion_RsaWrapKeyMaterial_ = CompanionStruct_RsaWrapKeyMaterial_{} + +func (_this *RsaWrapKeyMaterial) Equals(other *RsaWrapKeyMaterial) bool { + return _this == other +} + +func (_this *RsaWrapKeyMaterial) EqualsGeneric(x interface{}) bool { + other, ok := x.(*RsaWrapKeyMaterial) + return ok && _this.Equals(other) +} + +func (*RsaWrapKeyMaterial) String() string { + return "RawRSAKeyring.RsaWrapKeyMaterial" +} + +func Type_RsaWrapKeyMaterial_() _dafny.TypeDescriptor { + return type_RsaWrapKeyMaterial_{} +} + +type type_RsaWrapKeyMaterial_ struct { +} + +func (_this type_RsaWrapKeyMaterial_) Default() interface{} { + return (*RsaWrapKeyMaterial)(nil) +} + +func (_this type_RsaWrapKeyMaterial_) String() string { + return "RawRSAKeyring.RsaWrapKeyMaterial" +} +func (_this *RsaWrapKeyMaterial) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){m_MaterialWrapping.Companion_WrapMaterial_.TraitID_, m_Actions.Companion_ActionWithResult_.TraitID_, m_Actions.Companion_Action_.TraitID_} +} + +var _ m_MaterialWrapping.WrapMaterial = &RsaWrapKeyMaterial{} +var _ m_Actions.ActionWithResult = &RsaWrapKeyMaterial{} +var _ m_Actions.Action = &RsaWrapKeyMaterial{} +var _ _dafny.TraitOffspring = &RsaWrapKeyMaterial{} + +func (_this *RsaWrapKeyMaterial) Ctor__(publicKey _dafny.Sequence, paddingScheme m_AwsCryptographyPrimitivesTypes.RSAPaddingMode, cryptoPrimitives *m_AtomicPrimitives.AtomicPrimitivesClient) { + { + (_this)._publicKey = publicKey + (_this)._paddingScheme = paddingScheme + (_this)._cryptoPrimitives = cryptoPrimitives + } +} +func (_this *RsaWrapKeyMaterial) Invoke(input interface{}) interface{} { + { + var input m_MaterialWrapping.WrapInput = input.(m_MaterialWrapping.WrapInput) + _ = input + var res m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_MaterialWrapping.Companion_WrapOutput_.Default(Companion_RsaWrapInfo_.Default())) + _ = res + var _0_RSAEncryptOutput m_Wrappers.Result + _ = _0_RSAEncryptOutput + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = ((_this).CryptoPrimitives()).RSAEncrypt(m_AwsCryptographyPrimitivesTypes.Companion_RSAEncryptInput_.Create_RSAEncryptInput_((_this).PaddingScheme(), (_this).PublicKey(), (input).Dtor_plaintextMaterial())) + _0_RSAEncryptOutput = _out0 + var _1_valueOrError0 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = _1_valueOrError0 + _1_valueOrError0 = (_0_RSAEncryptOutput).MapFailure(func(coer127 func(m_AwsCryptographyPrimitivesTypes.Error) m_AwsCryptographyMaterialProvidersTypes.Error) func(interface{}) interface{} { + return func(arg128 interface{}) interface{} { + return coer127(arg128.(m_AwsCryptographyPrimitivesTypes.Error)) + } + }(func(_2_e m_AwsCryptographyPrimitivesTypes.Error) m_AwsCryptographyMaterialProvidersTypes.Error { + return m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographyPrimitives_(_2_e) + })) + if (_1_valueOrError0).IsFailure() { + res = (_1_valueOrError0).PropagateFailure() + return res + } + var _3_ciphertext _dafny.Sequence + _ = _3_ciphertext + _3_ciphertext = (_1_valueOrError0).Extract().(_dafny.Sequence) + var _4_output m_MaterialWrapping.WrapOutput + _ = _4_output + _4_output = m_MaterialWrapping.Companion_WrapOutput_.Create_WrapOutput_(_3_ciphertext, Companion_RsaWrapInfo_.Create_RsaWrapInfo_()) + res = m_Wrappers.Companion_Result_.Create_Success_(_4_output) + return res + return res + } +} +func (_this *RsaWrapKeyMaterial) PublicKey() _dafny.Sequence { + { + return _this._publicKey + } +} +func (_this *RsaWrapKeyMaterial) PaddingScheme() m_AwsCryptographyPrimitivesTypes.RSAPaddingMode { + { + return _this._paddingScheme + } +} +func (_this *RsaWrapKeyMaterial) CryptoPrimitives() *m_AtomicPrimitives.AtomicPrimitivesClient { + { + return _this._cryptoPrimitives + } +} + +// End of class RsaWrapKeyMaterial + +// Definition of class RsaUnwrapKeyMaterial +type RsaUnwrapKeyMaterial struct { + _privateKey _dafny.Sequence + _paddingScheme m_AwsCryptographyPrimitivesTypes.RSAPaddingMode + _cryptoPrimitives *m_AtomicPrimitives.AtomicPrimitivesClient +} + +func New_RsaUnwrapKeyMaterial_() *RsaUnwrapKeyMaterial { + _this := RsaUnwrapKeyMaterial{} + + _this._privateKey = _dafny.EmptySeq + _this._paddingScheme = m_AwsCryptographyPrimitivesTypes.Companion_RSAPaddingMode_.Default() + _this._cryptoPrimitives = (*m_AtomicPrimitives.AtomicPrimitivesClient)(nil) + return &_this +} + +type CompanionStruct_RsaUnwrapKeyMaterial_ struct { +} + +var Companion_RsaUnwrapKeyMaterial_ = CompanionStruct_RsaUnwrapKeyMaterial_{} + +func (_this *RsaUnwrapKeyMaterial) Equals(other *RsaUnwrapKeyMaterial) bool { + return _this == other +} + +func (_this *RsaUnwrapKeyMaterial) EqualsGeneric(x interface{}) bool { + other, ok := x.(*RsaUnwrapKeyMaterial) + return ok && _this.Equals(other) +} + +func (*RsaUnwrapKeyMaterial) String() string { + return "RawRSAKeyring.RsaUnwrapKeyMaterial" +} + +func Type_RsaUnwrapKeyMaterial_() _dafny.TypeDescriptor { + return type_RsaUnwrapKeyMaterial_{} +} + +type type_RsaUnwrapKeyMaterial_ struct { +} + +func (_this type_RsaUnwrapKeyMaterial_) Default() interface{} { + return (*RsaUnwrapKeyMaterial)(nil) +} + +func (_this type_RsaUnwrapKeyMaterial_) String() string { + return "RawRSAKeyring.RsaUnwrapKeyMaterial" +} +func (_this *RsaUnwrapKeyMaterial) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){m_MaterialWrapping.Companion_UnwrapMaterial_.TraitID_, m_Actions.Companion_ActionWithResult_.TraitID_, m_Actions.Companion_Action_.TraitID_} +} + +var _ m_MaterialWrapping.UnwrapMaterial = &RsaUnwrapKeyMaterial{} +var _ m_Actions.ActionWithResult = &RsaUnwrapKeyMaterial{} +var _ m_Actions.Action = &RsaUnwrapKeyMaterial{} +var _ _dafny.TraitOffspring = &RsaUnwrapKeyMaterial{} + +func (_this *RsaUnwrapKeyMaterial) Ctor__(privateKey _dafny.Sequence, paddingScheme m_AwsCryptographyPrimitivesTypes.RSAPaddingMode, cryptoPrimitives *m_AtomicPrimitives.AtomicPrimitivesClient) { + { + (_this)._privateKey = privateKey + (_this)._paddingScheme = paddingScheme + (_this)._cryptoPrimitives = cryptoPrimitives + } +} +func (_this *RsaUnwrapKeyMaterial) Invoke(input interface{}) interface{} { + { + var input m_MaterialWrapping.UnwrapInput = input.(m_MaterialWrapping.UnwrapInput) + _ = input + var res m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_MaterialWrapping.Companion_UnwrapOutput_.Default(Companion_RsaUnwrapInfo_.Default())) + _ = res + var _0_suite m_AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo + _ = _0_suite + _0_suite = (input).Dtor_algorithmSuite() + var _1_wrappedMaterial _dafny.Sequence + _ = _1_wrappedMaterial + _1_wrappedMaterial = (input).Dtor_wrappedMaterial() + var _2_aad _dafny.Map + _ = _2_aad + _2_aad = (input).Dtor_encryptionContext() + var _3_maybeDecryptResult m_Wrappers.Result + _ = _3_maybeDecryptResult + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = ((_this).CryptoPrimitives()).RSADecrypt(m_AwsCryptographyPrimitivesTypes.Companion_RSADecryptInput_.Create_RSADecryptInput_((_this).PaddingScheme(), (_this).PrivateKey(), _1_wrappedMaterial)) + _3_maybeDecryptResult = _out0 + var _4_valueOrError0 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = _4_valueOrError0 + _4_valueOrError0 = (_3_maybeDecryptResult).MapFailure(func(coer128 func(m_AwsCryptographyPrimitivesTypes.Error) m_AwsCryptographyMaterialProvidersTypes.Error) func(interface{}) interface{} { + return func(arg129 interface{}) interface{} { + return coer128(arg129.(m_AwsCryptographyPrimitivesTypes.Error)) + } + }(func(_5_e m_AwsCryptographyPrimitivesTypes.Error) m_AwsCryptographyMaterialProvidersTypes.Error { + return m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographyPrimitives_(_5_e) + })) + if (_4_valueOrError0).IsFailure() { + res = (_4_valueOrError0).PropagateFailure() + return res + } + var _6_decryptResult _dafny.Sequence + _ = _6_decryptResult + _6_decryptResult = (_4_valueOrError0).Extract().(_dafny.Sequence) + var _7_valueOrError1 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _7_valueOrError1 + _7_valueOrError1 = m_Wrappers.Companion_Default___.Need((_dafny.IntOfUint32((_6_decryptResult).Cardinality())).Cmp(_dafny.IntOfInt32(m_AlgorithmSuites.Companion_Default___.GetEncryptKeyLength(_0_suite))) == 0, m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.SeqOfString("Invalid plaintext length."))) + if (_7_valueOrError1).IsFailure() { + res = (_7_valueOrError1).PropagateFailure() + return res + } + var _8_output m_MaterialWrapping.UnwrapOutput + _ = _8_output + _8_output = m_MaterialWrapping.Companion_UnwrapOutput_.Create_UnwrapOutput_(_6_decryptResult, Companion_RsaUnwrapInfo_.Create_RsaUnwrapInfo_()) + res = m_Wrappers.Companion_Result_.Create_Success_(_8_output) + return res + return res + } +} +func (_this *RsaUnwrapKeyMaterial) PrivateKey() _dafny.Sequence { + { + return _this._privateKey + } +} +func (_this *RsaUnwrapKeyMaterial) PaddingScheme() m_AwsCryptographyPrimitivesTypes.RSAPaddingMode { + { + return _this._paddingScheme + } +} +func (_this *RsaUnwrapKeyMaterial) CryptoPrimitives() *m_AtomicPrimitives.AtomicPrimitivesClient { + { + return _this._cryptoPrimitives + } +} + +// End of class RsaUnwrapKeyMaterial diff --git a/customer-preview/mpl/RequiredEncryptionContextCMM/RequiredEncryptionContextCMM.go b/customer-preview/mpl/RequiredEncryptionContextCMM/RequiredEncryptionContextCMM.go new file mode 100644 index 000000000..b71f8740e --- /dev/null +++ b/customer-preview/mpl/RequiredEncryptionContextCMM/RequiredEncryptionContextCMM.go @@ -0,0 +1,470 @@ +// Package RequiredEncryptionContextCMM +// Dafny module RequiredEncryptionContextCMM compiled into Go + +package RequiredEncryptionContextCMM + +import ( + os "os" + + m_ComAmazonawsDynamodbTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/ComAmazonawsDynamodbTypes" + m_Com_Amazonaws_Dynamodb "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/Com_Amazonaws_Dynamodb" + m_ComAmazonawsKmsTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/ComAmazonawsKmsTypes" + m_Com_Amazonaws_Kms "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/Com_Amazonaws_Kms" + m_AlgorithmSuites "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AlgorithmSuites" + m_AwsArnParsing "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsArnParsing" + m_AwsCryptographyKeyStoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreOperations" + m_AwsCryptographyKeyStoreTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreTypes" + m_AwsCryptographyMaterialProvidersTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersTypes" + m_AwsKmsDiscoveryKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsDiscoveryKeyring" + m_AwsKmsEcdhKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsEcdhKeyring" + m_AwsKmsHierarchicalKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsHierarchicalKeyring" + m_AwsKmsKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsKeyring" + m_AwsKmsMrkAreUnique "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkAreUnique" + m_AwsKmsMrkDiscoveryKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkDiscoveryKeyring" + m_AwsKmsMrkKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkKeyring" + m_AwsKmsMrkMatchForDecrypt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkMatchForDecrypt" + m_AwsKmsRsaKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsRsaKeyring" + m_AwsKmsUtils "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsUtils" + m_CMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CMM" + m_CacheConstants "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CacheConstants" + m_CanonicalEncryptionContext "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CanonicalEncryptionContext" + m_Commitment "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Commitment" + m_Constants "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Constants" + m_CreateKeyStoreTable "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeyStoreTable" + m_CreateKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeys" + m_DDBKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DDBKeystoreOperations" + m_DefaultCMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DefaultCMM" + m_DefaultClientSupplier "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DefaultClientSupplier" + m_Defaults "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Defaults" + m_DiscoveryMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DiscoveryMultiKeyring" + m_EcdhEdkWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/EcdhEdkWrapping" + m_EdkWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/EdkWrapping" + m_ErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/ErrorMessages" + m_GetKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/GetKeys" + m_IntermediateKeyWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/IntermediateKeyWrapping" + m_KMSKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KMSKeystoreOperations" + m_KeyStore "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStore" + m_KeyStoreErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStoreErrorMessages" + m_Keyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Keyring" + m_KmsArn "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KmsArn" + m_LocalCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/LocalCMC" + m_MaterialWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MaterialWrapping" + m_Materials "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Materials" + m_MrkAwareDiscoveryMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MrkAwareDiscoveryMultiKeyring" + m_MrkAwareStrictMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MrkAwareStrictMultiKeyring" + m_MultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MultiKeyring" + m_RawAESKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawAESKeyring" + m_RawECDHKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawECDHKeyring" + m_RawRSAKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawRSAKeyring" + m_StormTracker "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StormTracker" + m_StormTrackingCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StormTrackingCMC" + m_StrictMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StrictMultiKeyring" + m_Structure "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Structure" + m_SynchronizedLocalCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/SynchronizedLocalCMC" + m_Utils "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Utils" + m_AtomicPrimitives "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AtomicPrimitives" + m_AwsCryptographyPrimitivesOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesOperations" + m_AwsCryptographyPrimitivesTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesTypes" + m_Digest "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Digest" + m_HKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/HKDF" + m_KdfCtr "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/KdfCtr" + m_Random "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Random" + m_WrappedHKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHKDF" + m_WrappedHMAC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHMAC" + m_Actions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Actions" + m_Base64 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64" + m_Base64Lemmas "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64Lemmas" + m_BoundedInts "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/BoundedInts" + m_DivInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternals" + m_DivInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternalsNonlinear" + m_DivMod "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivMod" + m_FileIO "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FileIO" + m_FloatCompare "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FloatCompare" + m_Functions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Functions" + m_GeneralInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GeneralInternals" + m_GetOpt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GetOpt" + m_HexStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/HexStrings" + m_Logarithm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Logarithm" + m__Math "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Math_" + m_ModInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternals" + m_ModInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternalsNonlinear" + m_Mul "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Mul" + m_MulInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternals" + m_MulInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternalsNonlinear" + m_Power "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Power" + m_Relations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Relations" + m_Seq "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq" + m_Seq_MergeSort "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq_MergeSort" + m_SortedSets "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/SortedSets" + m_Sorting "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Sorting" + m_StandardLibrary "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary" + m_StandardLibraryInterop "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibraryInterop" + m_StandardLibrary_Sequence "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_Sequence" + m_StandardLibrary_String "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_String" + m_StandardLibrary_UInt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_UInt" + m_Streams "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Streams" + m_UTF8 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UTF8" + m_UnicodeStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UnicodeStrings" + m__Unicode "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Unicode_" + m_Utf16EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf16EncodingForm" + m_Utf8EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf8EncodingForm" + m_Wrappers "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers" + m__System "github.com/dafny-lang/DafnyRuntimeGo/v4/System_" + _dafny "github.com/dafny-lang/DafnyRuntimeGo/v4/dafny" +) + +var _ = os.Args +var _ _dafny.Dummy__ +var _ m__System.Dummy__ +var _ m_Wrappers.Dummy__ +var _ m_BoundedInts.Dummy__ +var _ m_StandardLibrary_UInt.Dummy__ +var _ m_StandardLibrary_Sequence.Dummy__ +var _ m_StandardLibrary_String.Dummy__ +var _ m_StandardLibrary.Dummy__ +var _ m_AwsCryptographyPrimitivesTypes.Dummy__ +var _ m_Random.Dummy__ +var _ m_Digest.Dummy__ +var _ m_WrappedHMAC.Dummy__ +var _ m_HKDF.Dummy__ +var _ m_WrappedHKDF.Dummy__ +var _ m_KdfCtr.Dummy__ +var _ m_AwsCryptographyPrimitivesOperations.Dummy__ +var _ m_AtomicPrimitives.Dummy__ +var _ m_ComAmazonawsDynamodbTypes.Dummy__ +var _ m_ComAmazonawsKmsTypes.Dummy__ +var _ m_Relations.Dummy__ +var _ m_Seq_MergeSort.Dummy__ +var _ m__Math.Dummy__ +var _ m_Seq.Dummy__ +var _ m__Unicode.Dummy__ +var _ m_Functions.Dummy__ +var _ m_Utf8EncodingForm.Dummy__ +var _ m_Utf16EncodingForm.Dummy__ +var _ m_UnicodeStrings.Dummy__ +var _ m_FileIO.Dummy__ +var _ m_GeneralInternals.Dummy__ +var _ m_MulInternalsNonlinear.Dummy__ +var _ m_MulInternals.Dummy__ +var _ m_Mul.Dummy__ +var _ m_ModInternalsNonlinear.Dummy__ +var _ m_DivInternalsNonlinear.Dummy__ +var _ m_ModInternals.Dummy__ +var _ m_DivInternals.Dummy__ +var _ m_DivMod.Dummy__ +var _ m_Power.Dummy__ +var _ m_Logarithm.Dummy__ +var _ m_StandardLibraryInterop.Dummy__ +var _ m_Streams.Dummy__ +var _ m_Sorting.Dummy__ +var _ m_HexStrings.Dummy__ +var _ m_GetOpt.Dummy__ +var _ m_FloatCompare.Dummy__ +var _ m_Base64.Dummy__ +var _ m_Base64Lemmas.Dummy__ +var _ m_Actions.Dummy__ +var _ m_AwsCryptographyKeyStoreTypes.Dummy__ +var _ m_AwsCryptographyMaterialProvidersTypes.Dummy__ +var _ m_AwsArnParsing.Dummy__ +var _ m_AwsKmsMrkMatchForDecrypt.Dummy__ +var _ m_AwsKmsUtils.Dummy__ +var _ m_KeyStoreErrorMessages.Dummy__ +var _ m_KmsArn.Dummy__ +var _ m_Structure.Dummy__ +var _ m_KMSKeystoreOperations.Dummy__ +var _ m_DDBKeystoreOperations.Dummy__ +var _ m_CreateKeys.Dummy__ +var _ m_CreateKeyStoreTable.Dummy__ +var _ m_GetKeys.Dummy__ +var _ m_AwsCryptographyKeyStoreOperations.Dummy__ +var _ m_Com_Amazonaws_Kms.Dummy__ +var _ m_Com_Amazonaws_Dynamodb.Dummy__ +var _ m_KeyStore.Dummy__ +var _ m_AlgorithmSuites.Dummy__ +var _ m_Materials.Dummy__ +var _ m_Keyring.Dummy__ +var _ m_MultiKeyring.Dummy__ +var _ m_AwsKmsMrkAreUnique.Dummy__ +var _ m_Constants.Dummy__ +var _ m_MaterialWrapping.Dummy__ +var _ m_CanonicalEncryptionContext.Dummy__ +var _ m_IntermediateKeyWrapping.Dummy__ +var _ m_EdkWrapping.Dummy__ +var _ m_ErrorMessages.Dummy__ +var _ m_AwsKmsKeyring.Dummy__ +var _ m_StrictMultiKeyring.Dummy__ +var _ m_AwsKmsDiscoveryKeyring.Dummy__ +var _ m_DiscoveryMultiKeyring.Dummy__ +var _ m_AwsKmsMrkDiscoveryKeyring.Dummy__ +var _ m_MrkAwareDiscoveryMultiKeyring.Dummy__ +var _ m_AwsKmsMrkKeyring.Dummy__ +var _ m_MrkAwareStrictMultiKeyring.Dummy__ +var _ m_LocalCMC.Dummy__ +var _ m_SynchronizedLocalCMC.Dummy__ +var _ m_StormTracker.Dummy__ +var _ m_StormTrackingCMC.Dummy__ +var _ m_CacheConstants.Dummy__ +var _ m_AwsKmsHierarchicalKeyring.Dummy__ +var _ m_AwsKmsRsaKeyring.Dummy__ +var _ m_EcdhEdkWrapping.Dummy__ +var _ m_RawECDHKeyring.Dummy__ +var _ m_AwsKmsEcdhKeyring.Dummy__ +var _ m_RawAESKeyring.Dummy__ +var _ m_RawRSAKeyring.Dummy__ +var _ m_CMM.Dummy__ +var _ m_Defaults.Dummy__ +var _ m_Commitment.Dummy__ +var _ m_DefaultCMM.Dummy__ +var _ m_DefaultClientSupplier.Dummy__ +var _ m_Utils.Dummy__ + +type Dummy__ struct{} + +// Definition of class RequiredEncryptionContextCMM +type RequiredEncryptionContextCMM struct { + _underlyingCMM m_AwsCryptographyMaterialProvidersTypes.ICryptographicMaterialsManager + _requiredEncryptionContextKeys _dafny.Sequence +} + +func New_RequiredEncryptionContextCMM_() *RequiredEncryptionContextCMM { + _this := RequiredEncryptionContextCMM{} + + _this._underlyingCMM = (m_AwsCryptographyMaterialProvidersTypes.ICryptographicMaterialsManager)(nil) + _this._requiredEncryptionContextKeys = _dafny.EmptySeq + return &_this +} + +type CompanionStruct_RequiredEncryptionContextCMM_ struct { +} + +var Companion_RequiredEncryptionContextCMM_ = CompanionStruct_RequiredEncryptionContextCMM_{} + +func (_this *RequiredEncryptionContextCMM) Equals(other *RequiredEncryptionContextCMM) bool { + return _this == other +} + +func (_this *RequiredEncryptionContextCMM) EqualsGeneric(x interface{}) bool { + other, ok := x.(*RequiredEncryptionContextCMM) + return ok && _this.Equals(other) +} + +func (*RequiredEncryptionContextCMM) String() string { + return "RequiredEncryptionContextCMM.RequiredEncryptionContextCMM" +} + +func Type_RequiredEncryptionContextCMM_() _dafny.TypeDescriptor { + return type_RequiredEncryptionContextCMM_{} +} + +type type_RequiredEncryptionContextCMM_ struct { +} + +func (_this type_RequiredEncryptionContextCMM_) Default() interface{} { + return (*RequiredEncryptionContextCMM)(nil) +} + +func (_this type_RequiredEncryptionContextCMM_) String() string { + return "RequiredEncryptionContextCMM.RequiredEncryptionContextCMM" +} +func (_this *RequiredEncryptionContextCMM) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){m_CMM.Companion_VerifiableInterface_.TraitID_, m_AwsCryptographyMaterialProvidersTypes.Companion_ICryptographicMaterialsManager_.TraitID_} +} + +var _ m_CMM.VerifiableInterface = &RequiredEncryptionContextCMM{} +var _ m_AwsCryptographyMaterialProvidersTypes.ICryptographicMaterialsManager = &RequiredEncryptionContextCMM{} +var _ _dafny.TraitOffspring = &RequiredEncryptionContextCMM{} + +func (_this *RequiredEncryptionContextCMM) DecryptMaterials(input m_AwsCryptographyMaterialProvidersTypes.DecryptMaterialsInput) m_Wrappers.Result { + var _out2 m_Wrappers.Result + _ = _out2 + _out2 = m_AwsCryptographyMaterialProvidersTypes.Companion_ICryptographicMaterialsManager_.DecryptMaterials(_this, input) + return _out2 +} +func (_this *RequiredEncryptionContextCMM) GetEncryptionMaterials(input m_AwsCryptographyMaterialProvidersTypes.GetEncryptionMaterialsInput) m_Wrappers.Result { + var _out2 m_Wrappers.Result + _ = _out2 + _out2 = m_AwsCryptographyMaterialProvidersTypes.Companion_ICryptographicMaterialsManager_.GetEncryptionMaterials(_this, input) + return _out2 +} +func (_this *RequiredEncryptionContextCMM) Ctor__(inputCMM m_AwsCryptographyMaterialProvidersTypes.ICryptographicMaterialsManager, inputKeys _dafny.Set) { + { + var _0_keySet _dafny.Set + _ = _0_keySet + _0_keySet = inputKeys + var _1_keySeq _dafny.Sequence + _ = _1_keySeq + var _out0 _dafny.Sequence + _ = _out0 + _out0 = m_SortedSets.SetToSequence(_0_keySet) + _1_keySeq = _out0 + (_this)._underlyingCMM = inputCMM + (_this)._requiredEncryptionContextKeys = _1_keySeq + } +} +func (_this *RequiredEncryptionContextCMM) GetEncryptionMaterials_k(input m_AwsCryptographyMaterialProvidersTypes.GetEncryptionMaterialsInput) m_Wrappers.Result { + { + var output m_Wrappers.Result = m_Wrappers.Result{} + _ = output + var _0_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _0_valueOrError0 + _0_valueOrError0 = m_Wrappers.Companion_Default___.Need(_dafny.Quantifier(((_this).RequiredEncryptionContextKeys()).UniqueElements(), true, func(_forall_var_0 _dafny.Sequence) bool { + var _1_k _dafny.Sequence + _1_k = interface{}(_forall_var_0).(_dafny.Sequence) + if m_UTF8.Companion_ValidUTF8Bytes_.Is_(_1_k) { + return !(_dafny.Companion_Sequence_.Contains((_this).RequiredEncryptionContextKeys(), _1_k)) || (((input).Dtor_encryptionContext()).Contains(_1_k)) + } else { + return true + } + }), m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.SeqOfString("Encryption context does not contain required keys."))) + if (_0_valueOrError0).IsFailure() { + output = (_0_valueOrError0).PropagateFailure() + return output + } + var _2_valueOrError1 m_Wrappers.Result = m_Wrappers.Result{} + _ = _2_valueOrError1 + var _pat_let_tv0 = input + _ = _pat_let_tv0 + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = ((_this).UnderlyingCMM()).GetEncryptionMaterials(func(_pat_let8_0 m_AwsCryptographyMaterialProvidersTypes.GetEncryptionMaterialsInput) m_AwsCryptographyMaterialProvidersTypes.GetEncryptionMaterialsInput { + return func(_3_dt__update__tmp_h0 m_AwsCryptographyMaterialProvidersTypes.GetEncryptionMaterialsInput) m_AwsCryptographyMaterialProvidersTypes.GetEncryptionMaterialsInput { + return func(_pat_let9_0 m_Wrappers.Option) m_AwsCryptographyMaterialProvidersTypes.GetEncryptionMaterialsInput { + return func(_4_dt__update_hrequiredEncryptionContextKeys_h0 m_Wrappers.Option) m_AwsCryptographyMaterialProvidersTypes.GetEncryptionMaterialsInput { + return m_AwsCryptographyMaterialProvidersTypes.Companion_GetEncryptionMaterialsInput_.Create_GetEncryptionMaterialsInput_((_3_dt__update__tmp_h0).Dtor_encryptionContext(), (_3_dt__update__tmp_h0).Dtor_commitmentPolicy(), (_3_dt__update__tmp_h0).Dtor_algorithmSuiteId(), (_3_dt__update__tmp_h0).Dtor_maxPlaintextLength(), _4_dt__update_hrequiredEncryptionContextKeys_h0) + }(_pat_let9_0) + }(m_Wrappers.Companion_Option_.Create_Some_(_dafny.Companion_Sequence_.Concatenate(((_pat_let_tv0).Dtor_requiredEncryptionContextKeys()).UnwrapOr(_dafny.SeqOf()).(_dafny.Sequence), (_this).RequiredEncryptionContextKeys()))) + }(_pat_let8_0) + }(input)) + _2_valueOrError1 = _out0 + if (_2_valueOrError1).IsFailure() { + output = (_2_valueOrError1).PropagateFailure() + return output + } + var _5_result m_AwsCryptographyMaterialProvidersTypes.GetEncryptionMaterialsOutput + _ = _5_result + _5_result = (_2_valueOrError1).Extract().(m_AwsCryptographyMaterialProvidersTypes.GetEncryptionMaterialsOutput) + var _6_valueOrError2 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _6_valueOrError2 + _6_valueOrError2 = m_Wrappers.Companion_Default___.Need(_dafny.Quantifier(((_this).RequiredEncryptionContextKeys()).UniqueElements(), true, func(_forall_var_1 _dafny.Sequence) bool { + var _7_k _dafny.Sequence + _7_k = interface{}(_forall_var_1).(_dafny.Sequence) + if m_UTF8.Companion_ValidUTF8Bytes_.Is_(_7_k) { + return !(_dafny.Companion_Sequence_.Contains((_this).RequiredEncryptionContextKeys(), _7_k)) || (_dafny.Companion_Sequence_.Contains(((_5_result).Dtor_encryptionMaterials()).Dtor_requiredEncryptionContextKeys(), _7_k)) + } else { + return true + } + }), m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.SeqOfString("Expected encryption context keys do not exist in keys to only authenticate."))) + if (_6_valueOrError2).IsFailure() { + output = (_6_valueOrError2).PropagateFailure() + return output + } + var _8_valueOrError3 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _8_valueOrError3 + _8_valueOrError3 = m_Wrappers.Companion_Default___.Need(m_Materials.Companion_Default___.EncryptionMaterialsHasPlaintextDataKey((_5_result).Dtor_encryptionMaterials()), m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.SeqOfString("Could not retrieve materials required for encryption"))) + if (_8_valueOrError3).IsFailure() { + output = (_8_valueOrError3).PropagateFailure() + return output + } + var _9_valueOrError4 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _9_valueOrError4 + _9_valueOrError4 = m_Wrappers.Companion_Default___.Need(m_CMM.Companion_Default___.RequiredEncryptionContextKeys_q((input).Dtor_requiredEncryptionContextKeys(), (_5_result).Dtor_encryptionMaterials()), m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.SeqOfString("Keyring returned an invalid response"))) + if (_9_valueOrError4).IsFailure() { + output = (_9_valueOrError4).PropagateFailure() + return output + } + output = m_Wrappers.Companion_Result_.Create_Success_(_5_result) + return output + } +} +func (_this *RequiredEncryptionContextCMM) DecryptMaterials_k(input m_AwsCryptographyMaterialProvidersTypes.DecryptMaterialsInput) m_Wrappers.Result { + { + var output m_Wrappers.Result = m_Wrappers.Result{} + _ = output + var _0_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _0_valueOrError0 + _0_valueOrError0 = m_Wrappers.Companion_Default___.Need(((input).Dtor_reproducedEncryptionContext()).Is_Some(), m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.SeqOfString("No reproduced encryption context on decrypt."))) + if (_0_valueOrError0).IsFailure() { + output = (_0_valueOrError0).PropagateFailure() + return output + } + var _1_valueOrError1 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _1_valueOrError1 + _1_valueOrError1 = m_Wrappers.Companion_Default___.Need(m_CMM.Companion_Default___.ReproducedEncryptionContext_q(input), m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.SeqOfString("Encryption context does not match reproduced encryption context."))) + if (_1_valueOrError1).IsFailure() { + output = (_1_valueOrError1).PropagateFailure() + return output + } + var _2_valueOrError2 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _2_valueOrError2 + _2_valueOrError2 = m_Wrappers.Companion_Default___.Need(_dafny.Quantifier(((_this).RequiredEncryptionContextKeys()).UniqueElements(), true, func(_forall_var_0 _dafny.Sequence) bool { + var _3_k _dafny.Sequence + _3_k = interface{}(_forall_var_0).(_dafny.Sequence) + if m_UTF8.Companion_ValidUTF8Bytes_.Is_(_3_k) { + return !(_dafny.Companion_Sequence_.Contains((_this).RequiredEncryptionContextKeys(), _3_k)) || ((((input).Dtor_reproducedEncryptionContext()).Dtor_value().(_dafny.Map)).Contains(_3_k)) + } else { + return true + } + }), m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.SeqOfString("Reproduced encryption context missing required keys."))) + if (_2_valueOrError2).IsFailure() { + output = (_2_valueOrError2).PropagateFailure() + return output + } + var _4_valueOrError3 m_Wrappers.Result = m_Wrappers.Result{} + _ = _4_valueOrError3 + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = ((_this).UnderlyingCMM()).DecryptMaterials(input) + _4_valueOrError3 = _out0 + if (_4_valueOrError3).IsFailure() { + output = (_4_valueOrError3).PropagateFailure() + return output + } + var _5_result m_AwsCryptographyMaterialProvidersTypes.DecryptMaterialsOutput + _ = _5_result + _5_result = (_4_valueOrError3).Extract().(m_AwsCryptographyMaterialProvidersTypes.DecryptMaterialsOutput) + var _6_valueOrError4 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _6_valueOrError4 + _6_valueOrError4 = m_Wrappers.Companion_Default___.Need(_dafny.Quantifier(((_this).RequiredEncryptionContextKeys()).UniqueElements(), true, func(_forall_var_1 _dafny.Sequence) bool { + var _7_k _dafny.Sequence + _7_k = interface{}(_forall_var_1).(_dafny.Sequence) + if m_UTF8.Companion_ValidUTF8Bytes_.Is_(_7_k) { + return !(_dafny.Companion_Sequence_.Contains((_this).RequiredEncryptionContextKeys(), _7_k)) || ((((_5_result).Dtor_decryptionMaterials()).Dtor_encryptionContext()).Contains(_7_k)) + } else { + return true + } + }), m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.SeqOfString("Final encryption context missing required keys."))) + if (_6_valueOrError4).IsFailure() { + output = (_6_valueOrError4).PropagateFailure() + return output + } + var _8_valueOrError5 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _8_valueOrError5 + _8_valueOrError5 = m_Wrappers.Companion_Default___.Need(m_CMM.Companion_Default___.EncryptionContextComplete(input, (_5_result).Dtor_decryptionMaterials()), m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.SeqOfString("Reproduced encryption context missing from encryption context."))) + if (_8_valueOrError5).IsFailure() { + output = (_8_valueOrError5).PropagateFailure() + return output + } + var _9_valueOrError6 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _9_valueOrError6 + _9_valueOrError6 = m_Wrappers.Companion_Default___.Need(m_Materials.Companion_Default___.DecryptionMaterialsWithPlaintextDataKey((_5_result).Dtor_decryptionMaterials()), m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.SeqOfString("Keyring.OnDecrypt failed to decrypt the plaintext data key."))) + if (_9_valueOrError6).IsFailure() { + output = (_9_valueOrError6).PropagateFailure() + return output + } + output = m_Wrappers.Companion_Result_.Create_Success_(_5_result) + return output + return output + } +} +func (_this *RequiredEncryptionContextCMM) UnderlyingCMM() m_AwsCryptographyMaterialProvidersTypes.ICryptographicMaterialsManager { + { + return _this._underlyingCMM + } +} +func (_this *RequiredEncryptionContextCMM) RequiredEncryptionContextKeys() _dafny.Sequence { + { + return _this._requiredEncryptionContextKeys + } +} + +// End of class RequiredEncryptionContextCMM diff --git a/customer-preview/mpl/StormTracker/StormTracker.go b/customer-preview/mpl/StormTracker/StormTracker.go new file mode 100644 index 000000000..a1a7349ba --- /dev/null +++ b/customer-preview/mpl/StormTracker/StormTracker.go @@ -0,0 +1,729 @@ +// Package StormTracker +// Dafny module StormTracker compiled into Go + +package StormTracker + +import ( + os "os" + + m_ComAmazonawsDynamodbTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/ComAmazonawsDynamodbTypes" + m_Com_Amazonaws_Dynamodb "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/Com_Amazonaws_Dynamodb" + m_ComAmazonawsKmsTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/ComAmazonawsKmsTypes" + m_Com_Amazonaws_Kms "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/Com_Amazonaws_Kms" + m_AlgorithmSuites "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AlgorithmSuites" + m_AwsArnParsing "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsArnParsing" + m_AwsCryptographyKeyStoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreOperations" + m_AwsCryptographyKeyStoreTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreTypes" + m_AwsCryptographyMaterialProvidersTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersTypes" + m_AwsKmsDiscoveryKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsDiscoveryKeyring" + m_AwsKmsKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsKeyring" + m_AwsKmsMrkAreUnique "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkAreUnique" + m_AwsKmsMrkDiscoveryKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkDiscoveryKeyring" + m_AwsKmsMrkKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkKeyring" + m_AwsKmsMrkMatchForDecrypt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkMatchForDecrypt" + m_AwsKmsUtils "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsUtils" + m_CanonicalEncryptionContext "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CanonicalEncryptionContext" + m_Constants "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Constants" + m_CreateKeyStoreTable "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeyStoreTable" + m_CreateKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeys" + m_DDBKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DDBKeystoreOperations" + m_DiscoveryMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DiscoveryMultiKeyring" + m_EdkWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/EdkWrapping" + m_ErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/ErrorMessages" + m_GetKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/GetKeys" + m_IntermediateKeyWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/IntermediateKeyWrapping" + m_KMSKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KMSKeystoreOperations" + m_KeyStore "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStore" + m_KeyStoreErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStoreErrorMessages" + m_Keyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Keyring" + m_KmsArn "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KmsArn" + m_LocalCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/LocalCMC" + m_MaterialWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MaterialWrapping" + m_Materials "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Materials" + m_MrkAwareDiscoveryMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MrkAwareDiscoveryMultiKeyring" + m_MrkAwareStrictMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MrkAwareStrictMultiKeyring" + m_MultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MultiKeyring" + m_StrictMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StrictMultiKeyring" + m_Structure "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Structure" + m_SynchronizedLocalCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/SynchronizedLocalCMC" + m_AtomicPrimitives "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AtomicPrimitives" + m_AwsCryptographyPrimitivesOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesOperations" + m_AwsCryptographyPrimitivesTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesTypes" + m_Digest "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Digest" + m_HKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/HKDF" + m_KdfCtr "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/KdfCtr" + m_Random "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Random" + m_WrappedHKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHKDF" + m_WrappedHMAC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHMAC" + m_Actions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Actions" + m_Base64 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64" + m_Base64Lemmas "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64Lemmas" + m_BoundedInts "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/BoundedInts" + m_DafnyLibraries "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DafnyLibraries" + m_DivInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternals" + m_DivInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternalsNonlinear" + m_DivMod "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivMod" + m_FileIO "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FileIO" + m_FloatCompare "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FloatCompare" + m_Functions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Functions" + m_GeneralInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GeneralInternals" + m_GetOpt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GetOpt" + m_HexStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/HexStrings" + m_Logarithm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Logarithm" + m__Math "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Math_" + m_ModInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternals" + m_ModInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternalsNonlinear" + m_Mul "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Mul" + m_MulInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternals" + m_MulInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternalsNonlinear" + m_Power "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Power" + m_Relations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Relations" + m_Seq "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq" + m_Seq_MergeSort "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq_MergeSort" + m_SortedSets "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/SortedSets" + m_Sorting "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Sorting" + m_StandardLibrary "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary" + m_StandardLibraryInterop "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibraryInterop" + m_StandardLibrary_Sequence "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_Sequence" + m_StandardLibrary_String "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_String" + m_StandardLibrary_UInt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_UInt" + m_Streams "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Streams" + m__Time "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Time_" + m_UnicodeStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UnicodeStrings" + m__Unicode "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Unicode_" + m_Utf16EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf16EncodingForm" + m_Utf8EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf8EncodingForm" + m_Wrappers "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers" + m__System "github.com/dafny-lang/DafnyRuntimeGo/v4/System_" + _dafny "github.com/dafny-lang/DafnyRuntimeGo/v4/dafny" +) + +var _ = os.Args +var _ _dafny.Dummy__ +var _ m__System.Dummy__ +var _ m_Wrappers.Dummy__ +var _ m_BoundedInts.Dummy__ +var _ m_StandardLibrary_UInt.Dummy__ +var _ m_StandardLibrary_Sequence.Dummy__ +var _ m_StandardLibrary_String.Dummy__ +var _ m_StandardLibrary.Dummy__ +var _ m_AwsCryptographyPrimitivesTypes.Dummy__ +var _ m_Random.Dummy__ +var _ m_Digest.Dummy__ +var _ m_WrappedHMAC.Dummy__ +var _ m_HKDF.Dummy__ +var _ m_WrappedHKDF.Dummy__ +var _ m_KdfCtr.Dummy__ +var _ m_AwsCryptographyPrimitivesOperations.Dummy__ +var _ m_AtomicPrimitives.Dummy__ +var _ m_ComAmazonawsDynamodbTypes.Dummy__ +var _ m_ComAmazonawsKmsTypes.Dummy__ +var _ m_Relations.Dummy__ +var _ m_Seq_MergeSort.Dummy__ +var _ m__Math.Dummy__ +var _ m_Seq.Dummy__ +var _ m__Unicode.Dummy__ +var _ m_Functions.Dummy__ +var _ m_Utf8EncodingForm.Dummy__ +var _ m_Utf16EncodingForm.Dummy__ +var _ m_UnicodeStrings.Dummy__ +var _ m_FileIO.Dummy__ +var _ m_GeneralInternals.Dummy__ +var _ m_MulInternalsNonlinear.Dummy__ +var _ m_MulInternals.Dummy__ +var _ m_Mul.Dummy__ +var _ m_ModInternalsNonlinear.Dummy__ +var _ m_DivInternalsNonlinear.Dummy__ +var _ m_ModInternals.Dummy__ +var _ m_DivInternals.Dummy__ +var _ m_DivMod.Dummy__ +var _ m_Power.Dummy__ +var _ m_Logarithm.Dummy__ +var _ m_StandardLibraryInterop.Dummy__ +var _ m_Streams.Dummy__ +var _ m_Sorting.Dummy__ +var _ m_HexStrings.Dummy__ +var _ m_GetOpt.Dummy__ +var _ m_FloatCompare.Dummy__ +var _ m_Base64.Dummy__ +var _ m_Base64Lemmas.Dummy__ +var _ m_Actions.Dummy__ +var _ m_AwsCryptographyKeyStoreTypes.Dummy__ +var _ m_AwsCryptographyMaterialProvidersTypes.Dummy__ +var _ m_AwsArnParsing.Dummy__ +var _ m_AwsKmsMrkMatchForDecrypt.Dummy__ +var _ m_AwsKmsUtils.Dummy__ +var _ m_KeyStoreErrorMessages.Dummy__ +var _ m_KmsArn.Dummy__ +var _ m_Structure.Dummy__ +var _ m_KMSKeystoreOperations.Dummy__ +var _ m_DDBKeystoreOperations.Dummy__ +var _ m_CreateKeys.Dummy__ +var _ m_CreateKeyStoreTable.Dummy__ +var _ m_GetKeys.Dummy__ +var _ m_AwsCryptographyKeyStoreOperations.Dummy__ +var _ m_Com_Amazonaws_Kms.Dummy__ +var _ m_Com_Amazonaws_Dynamodb.Dummy__ +var _ m_KeyStore.Dummy__ +var _ m_AlgorithmSuites.Dummy__ +var _ m_Materials.Dummy__ +var _ m_Keyring.Dummy__ +var _ m_MultiKeyring.Dummy__ +var _ m_AwsKmsMrkAreUnique.Dummy__ +var _ m_Constants.Dummy__ +var _ m_MaterialWrapping.Dummy__ +var _ m_CanonicalEncryptionContext.Dummy__ +var _ m_IntermediateKeyWrapping.Dummy__ +var _ m_EdkWrapping.Dummy__ +var _ m_ErrorMessages.Dummy__ +var _ m_AwsKmsKeyring.Dummy__ +var _ m_StrictMultiKeyring.Dummy__ +var _ m_AwsKmsDiscoveryKeyring.Dummy__ +var _ m_DiscoveryMultiKeyring.Dummy__ +var _ m_AwsKmsMrkDiscoveryKeyring.Dummy__ +var _ m_MrkAwareDiscoveryMultiKeyring.Dummy__ +var _ m_AwsKmsMrkKeyring.Dummy__ +var _ m_MrkAwareStrictMultiKeyring.Dummy__ +var _ m_LocalCMC.Dummy__ +var _ m_SynchronizedLocalCMC.Dummy__ + +type Dummy__ struct{} + +// Definition of class Default__ +type Default__ struct { + dummy byte +} + +func New_Default___() *Default__ { + _this := Default__{} + + return &_this +} + +type CompanionStruct_Default___ struct { +} + +var Companion_Default___ = CompanionStruct_Default___{} + +func (_this *Default__) Equals(other *Default__) bool { + return _this == other +} + +func (_this *Default__) EqualsGeneric(x interface{}) bool { + other, ok := x.(*Default__) + return ok && _this.Equals(other) +} + +func (*Default__) String() string { + return "StormTracker.Default__" +} +func (_this *Default__) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = &Default__{} + +func (_static *CompanionStruct_Default___) DefaultStorm() m_AwsCryptographyMaterialProvidersTypes.StormTrackingCache { + return m_AwsCryptographyMaterialProvidersTypes.Companion_StormTrackingCache_.Create_StormTrackingCache_(int32(1000), m_Wrappers.Companion_Option_.Create_Some_(int32(1)), (int32(10))*(int32(1000)), (int32(1))*(int32(1000)), int32(20), (int32(10))*(int32(1000)), int32(20), m_Wrappers.Companion_Option_.Create_Some_(m_AwsCryptographyMaterialProvidersTypes.Companion_TimeUnits_.Create_Milliseconds_())) +} +func (_static *CompanionStruct_Default___) ConsistentSettings(cache m_AwsCryptographyMaterialProvidersTypes.StormTrackingCache) bool { + return ((((cache).Dtor_graceInterval()) <= ((cache).Dtor_gracePeriod())) && (((cache).Dtor_inFlightTTL()) <= ((cache).Dtor_gracePeriod()))) && (((cache).Dtor_graceInterval()) <= ((cache).Dtor_inFlightTTL())) +} +func (_static *CompanionStruct_Default___) N(n int32) _dafny.Sequence { + return m_StandardLibrary_String.Companion_Default___.Base10Int2String(_dafny.IntOfInt32(n)) +} +func (_static *CompanionStruct_Default___) BadCacheMsg(cache m_AwsCryptographyMaterialProvidersTypes.StormTrackingCache) _dafny.Sequence { + var _0_msg _dafny.Sequence = _dafny.SeqOfString("For a StormCache : ") + _ = _0_msg + var _1_msg _dafny.Sequence = _dafny.Companion_Sequence_.Concatenate(_0_msg, (func() _dafny.Sequence { + if !(((cache).Dtor_graceInterval()) <= ((cache).Dtor_gracePeriod())) { + return _dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.SeqOfString("graceInterval must not exceed gracePeriod, yet configuration has graceInterval="), Companion_Default___.N((cache).Dtor_graceInterval())), _dafny.SeqOfString(" and gracePeriod=")), Companion_Default___.N((cache).Dtor_gracePeriod())), _dafny.SeqOfString(". ")) + } + return _dafny.SeqOfString("") + })()) + _ = _1_msg + var _2_msg _dafny.Sequence = _dafny.Companion_Sequence_.Concatenate(_1_msg, (func() _dafny.Sequence { + if !(((cache).Dtor_inFlightTTL()) <= ((cache).Dtor_gracePeriod())) { + return _dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.SeqOfString("inFlightTTL must not exceed gracePeriod, yet configuration has inFlightTTL="), Companion_Default___.N((cache).Dtor_inFlightTTL())), _dafny.SeqOfString(" and gracePeriod=")), Companion_Default___.N((cache).Dtor_gracePeriod())), _dafny.SeqOfString(". ")) + } + return _dafny.SeqOfString("") + })()) + _ = _2_msg + return _2_msg +} +func (_static *CompanionStruct_Default___) CheckSettings(cache m_AwsCryptographyMaterialProvidersTypes.StormTrackingCache) m_Wrappers.Outcome { + if Companion_Default___.ConsistentSettings(cache) { + return m_Wrappers.Companion_Outcome_.Create_Pass_() + } else { + return m_Wrappers.Companion_Outcome_.Create_Fail_(m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(Companion_Default___.BadCacheMsg(cache))) + } +} + +// End of class Default__ + +// Definition of datatype CacheState +type CacheState struct { + Data_CacheState_ +} + +func (_this CacheState) Get_() Data_CacheState_ { + return _this.Data_CacheState_ +} + +type Data_CacheState_ interface { + isCacheState() +} + +type CompanionStruct_CacheState_ struct { +} + +var Companion_CacheState_ = CompanionStruct_CacheState_{} + +type CacheState_EmptyWait struct { +} + +func (CacheState_EmptyWait) isCacheState() {} + +func (CompanionStruct_CacheState_) Create_EmptyWait_() CacheState { + return CacheState{CacheState_EmptyWait{}} +} + +func (_this CacheState) Is_EmptyWait() bool { + _, ok := _this.Get_().(CacheState_EmptyWait) + return ok +} + +type CacheState_EmptyFetch struct { +} + +func (CacheState_EmptyFetch) isCacheState() {} + +func (CompanionStruct_CacheState_) Create_EmptyFetch_() CacheState { + return CacheState{CacheState_EmptyFetch{}} +} + +func (_this CacheState) Is_EmptyFetch() bool { + _, ok := _this.Get_().(CacheState_EmptyFetch) + return ok +} + +type CacheState_Full struct { + Data m_AwsCryptographyMaterialProvidersTypes.GetCacheEntryOutput +} + +func (CacheState_Full) isCacheState() {} + +func (CompanionStruct_CacheState_) Create_Full_(Data m_AwsCryptographyMaterialProvidersTypes.GetCacheEntryOutput) CacheState { + return CacheState{CacheState_Full{Data}} +} + +func (_this CacheState) Is_Full() bool { + _, ok := _this.Get_().(CacheState_Full) + return ok +} + +func (CompanionStruct_CacheState_) Default() CacheState { + return Companion_CacheState_.Create_EmptyWait_() +} + +func (_this CacheState) Dtor_data() m_AwsCryptographyMaterialProvidersTypes.GetCacheEntryOutput { + return _this.Get_().(CacheState_Full).Data +} + +func (_this CacheState) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case CacheState_EmptyWait: + { + return "StormTracker.CacheState.EmptyWait" + } + case CacheState_EmptyFetch: + { + return "StormTracker.CacheState.EmptyFetch" + } + case CacheState_Full: + { + return "StormTracker.CacheState.Full" + "(" + _dafny.String(data.Data) + ")" + } + default: + { + return "" + } + } +} + +func (_this CacheState) Equals(other CacheState) bool { + switch data1 := _this.Get_().(type) { + case CacheState_EmptyWait: + { + _, ok := other.Get_().(CacheState_EmptyWait) + return ok + } + case CacheState_EmptyFetch: + { + _, ok := other.Get_().(CacheState_EmptyFetch) + return ok + } + case CacheState_Full: + { + data2, ok := other.Get_().(CacheState_Full) + return ok && data1.Data.Equals(data2.Data) + } + default: + { + return false // unexpected + } + } +} + +func (_this CacheState) EqualsGeneric(other interface{}) bool { + typed, ok := other.(CacheState) + return ok && _this.Equals(typed) +} + +func Type_CacheState_() _dafny.TypeDescriptor { + return type_CacheState_{} +} + +type type_CacheState_ struct { +} + +func (_this type_CacheState_) Default() interface{} { + return Companion_CacheState_.Default() +} + +func (_this type_CacheState_) String() string { + return "StormTracker.CacheState" +} +func (_this CacheState) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = CacheState{} + +// End of datatype CacheState + +// Definition of class StormTracker +type StormTracker struct { + Wrapped *m_LocalCMC.LocalCMC + InFlight *m_DafnyLibraries.MutableMap + GracePeriod int64 + GraceInterval int64 + FanOut int64 + InFlightTTL int64 + LastPrune int64 + SleepMilli int64 +} + +func New_StormTracker_() *StormTracker { + _this := StormTracker{} + + _this.Wrapped = (*m_LocalCMC.LocalCMC)(nil) + _this.InFlight = (*m_DafnyLibraries.MutableMap)(nil) + _this.GracePeriod = int64(0) + _this.GraceInterval = int64(0) + _this.FanOut = int64(0) + _this.InFlightTTL = int64(0) + _this.LastPrune = int64(0) + _this.SleepMilli = int64(0) + return &_this +} + +type CompanionStruct_StormTracker_ struct { +} + +var Companion_StormTracker_ = CompanionStruct_StormTracker_{} + +func (_this *StormTracker) Equals(other *StormTracker) bool { + return _this == other +} + +func (_this *StormTracker) EqualsGeneric(x interface{}) bool { + other, ok := x.(*StormTracker) + return ok && _this.Equals(other) +} + +func (*StormTracker) String() string { + return "StormTracker.StormTracker" +} + +func Type_StormTracker_() _dafny.TypeDescriptor { + return type_StormTracker_{} +} + +type type_StormTracker_ struct { +} + +func (_this type_StormTracker_) Default() interface{} { + return (*StormTracker)(nil) +} + +func (_this type_StormTracker_) String() string { + return "StormTracker.StormTracker" +} +func (_this *StormTracker) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = &StormTracker{} + +func (_this *StormTracker) Ctor__(cache m_AwsCryptographyMaterialProvidersTypes.StormTrackingCache) { + { + var _0_gracePeriod int64 = int64(0) + _ = _0_gracePeriod + var _1_graceInterval int64 = int64(0) + _ = _1_graceInterval + var _2_inFlightTTL int64 = int64(0) + _ = _2_inFlightTTL + if (((cache).Dtor_timeUnits()).UnwrapOr(m_AwsCryptographyMaterialProvidersTypes.Companion_TimeUnits_.Create_Seconds_()).(m_AwsCryptographyMaterialProvidersTypes.TimeUnits)).Is_Seconds() { + _0_gracePeriod = (int64((cache).Dtor_gracePeriod())) * (int64(1000)) + _1_graceInterval = (int64((cache).Dtor_graceInterval())) * (int64(1000)) + _2_inFlightTTL = (int64((cache).Dtor_inFlightTTL())) * (int64(1000)) + } else { + _0_gracePeriod = int64((cache).Dtor_gracePeriod()) + _1_graceInterval = int64((cache).Dtor_graceInterval()) + _2_inFlightTTL = int64((cache).Dtor_inFlightTTL()) + } + var _nw0 *m_LocalCMC.LocalCMC = m_LocalCMC.New_LocalCMC_() + _ = _nw0 + _nw0.Ctor__(_dafny.IntOfInt32((cache).Dtor_entryCapacity()), _dafny.IntOfInt32(((cache).Dtor_entryPruningTailSize()).UnwrapOr(int32(1)).(int32))) + (_this).Wrapped = _nw0 + var _nw1 *m_DafnyLibraries.MutableMap = m_DafnyLibraries.New_MutableMap_() + _ = _nw1 + (_this).InFlight = _nw1 + (_this).GracePeriod = _0_gracePeriod + (_this).GraceInterval = _1_graceInterval + (_this).FanOut = int64((cache).Dtor_fanOut()) + (_this).InFlightTTL = _2_inFlightTTL + (_this).SleepMilli = int64((cache).Dtor_sleepMilli()) + (_this).LastPrune = int64(0) + } +} +func (_this *StormTracker) FanOutReached(now int64) bool { + { + var res bool = false + _ = res + (_this).PruneInFlight(now) + res = (_this.FanOut) <= (((_this.InFlight).Size()).Int64()) + return res + return res + } +} +func (_this *StormTracker) AddLong(x int64, y int64) int64 { + { + if (x) < (((m_StandardLibrary_UInt.Companion_Default___.INT64__MAX__LIMIT()).Int64()) - (y)) { + return (x) + (y) + } else { + return (m_StandardLibrary_UInt.Companion_Default___.INT64__MAX__LIMIT()).Int64() + } + } +} +func (_this *StormTracker) GracePeriod_q(result m_AwsCryptographyMaterialProvidersTypes.GetCacheEntryOutput, now int64) bool { + { + return (((result).Dtor_expiryTime()) < (int64(9223372036854775))) && (((((result).Dtor_expiryTime()) * (int64(1000))) - (_this.GracePeriod)) <= (now)) + } +} +func (_this *StormTracker) CheckInFlight(identifier _dafny.Sequence, result m_AwsCryptographyMaterialProvidersTypes.GetCacheEntryOutput, now int64) CacheState { + { + var output CacheState = Companion_CacheState_.Default() + _ = output + var _0_fanOutReached bool + _ = _0_fanOutReached + var _out0 bool + _ = _out0 + _out0 = (_this).FanOutReached(now) + _0_fanOutReached = _out0 + if _0_fanOutReached { + output = Companion_CacheState_.Create_Full_(result) + return output + } else if !((_this).GracePeriod_q(result, now)) { + output = Companion_CacheState_.Create_Full_(result) + return output + } else { + if (_this.InFlight).HasKey(identifier) { + var _1_entry int64 + _ = _1_entry + _1_entry = (_this.InFlight).Select(identifier).(int64) + if ((_this).AddLong(_1_entry, _this.GraceInterval)) > (now) { + output = Companion_CacheState_.Create_Full_(result) + return output + } + } + (_this.InFlight).Put(identifier, now) + output = Companion_CacheState_.Create_EmptyFetch_() + return output + } + return output + } +} +func (_this *StormTracker) PruneInFlight(now int64) { + { + if (((_this.InFlight).Size()).Int64()) < (_this.FanOut) { + return + } + if ((now) - (int64(1000))) < (_this.LastPrune) { + return + } + (_this).LastPrune = now + var _0_keySet _dafny.Set + _ = _0_keySet + _0_keySet = (_this.InFlight).Keys() + var _1_keys _dafny.Sequence + _ = _1_keys + var _out0 _dafny.Sequence + _ = _out0 + _out0 = m_SortedSets.SetToSequence(_0_keySet) + _1_keys = _out0 + var _hi0 _dafny.Int = _dafny.IntOfUint32((_1_keys).Cardinality()) + _ = _hi0 + for _2_i := _dafny.Zero; _2_i.Cmp(_hi0) < 0; _2_i = _2_i.Plus(_dafny.One) { + var _3_v int64 + _ = _3_v + _3_v = (_this.InFlight).Select((_1_keys).Select((_2_i).Uint32()).(_dafny.Sequence)).(int64) + if (now) >= ((_this).AddLong(_3_v, _this.InFlightTTL)) { + (_this.InFlight).Remove((_1_keys).Select((_2_i).Uint32()).(_dafny.Sequence)) + } + } + } +} +func (_this *StormTracker) CheckNewEntry(identifier _dafny.Sequence, now int64) CacheState { + { + var output CacheState = Companion_CacheState_.Default() + _ = output + var _0_fanOutReached bool + _ = _0_fanOutReached + var _out0 bool + _ = _out0 + _out0 = (_this).FanOutReached(now) + _0_fanOutReached = _out0 + if _0_fanOutReached { + output = Companion_CacheState_.Create_EmptyWait_() + return output + } else if (_this.InFlight).HasKey(identifier) { + var _1_entry int64 + _ = _1_entry + _1_entry = (_this.InFlight).Select(identifier).(int64) + if (now) < ((_this).AddLong(_1_entry, _this.GraceInterval)) { + output = Companion_CacheState_.Create_EmptyWait_() + return output + } + } + (_this.InFlight).Put(identifier, now) + output = Companion_CacheState_.Create_EmptyFetch_() + return output + return output + } +} +func (_this *StormTracker) GetFromCacheWithTime(input m_AwsCryptographyMaterialProvidersTypes.GetCacheEntryInput, now int64) m_Wrappers.Result { + { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(Companion_CacheState_.Default()) + _ = output + var _0_result m_Wrappers.Result + _ = _0_result + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = (_this.Wrapped).GetCacheEntryWithTime(input, _dafny.DivInt64(now, int64(1000))) + _0_result = _out0 + if (_0_result).Is_Success() { + var _1_newResult CacheState + _ = _1_newResult + var _out1 CacheState + _ = _out1 + _out1 = (_this).CheckInFlight((input).Dtor_identifier(), (_0_result).Dtor_value().(m_AwsCryptographyMaterialProvidersTypes.GetCacheEntryOutput), now) + _1_newResult = _out1 + output = m_Wrappers.Companion_Result_.Create_Success_(_1_newResult) + return output + } else if ((_0_result).Dtor_error().(m_AwsCryptographyMaterialProvidersTypes.Error)).Is_EntryDoesNotExist() { + var _2_newResult CacheState + _ = _2_newResult + var _out2 CacheState + _ = _out2 + _out2 = (_this).CheckNewEntry((input).Dtor_identifier(), now) + _2_newResult = _out2 + output = m_Wrappers.Companion_Result_.Create_Success_(_2_newResult) + return output + } else { + output = m_Wrappers.Companion_Result_.Create_Failure_((_0_result).Dtor_error().(m_AwsCryptographyMaterialProvidersTypes.Error)) + return output + } + return output + } +} +func (_this *StormTracker) GetFromCache(input m_AwsCryptographyMaterialProvidersTypes.GetCacheEntryInput) m_Wrappers.Result { + { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(Companion_CacheState_.Default()) + _ = output + var _0_now int64 + _ = _0_now + var _out0 int64 + _ = _out0 + _out0 = m__Time.CurrentRelativeTimeMilli() + _0_now = _out0 + var _out1 m_Wrappers.Result + _ = _out1 + _out1 = (_this).GetFromCacheWithTime(input, _0_now) + output = _out1 + return output + } +} +func (_this *StormTracker) GetCacheEntry(input m_AwsCryptographyMaterialProvidersTypes.GetCacheEntryInput) m_Wrappers.Result { + { + var output m_Wrappers.Result = m_Wrappers.Result{} + _ = output + var _0_result m_Wrappers.Result + _ = _0_result + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = (_this).GetFromCache(input) + _0_result = _out0 + if (_0_result).Is_Failure() { + output = m_Wrappers.Companion_Result_.Create_Failure_((_0_result).Dtor_error().(m_AwsCryptographyMaterialProvidersTypes.Error)) + return output + } else if ((_0_result).Dtor_value().(CacheState)).Is_Full() { + output = m_Wrappers.Companion_Result_.Create_Success_(((_0_result).Dtor_value().(CacheState)).Dtor_data()) + return output + } else { + output = m_Wrappers.Companion_Result_.Create_Failure_(m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_EntryDoesNotExist_(_dafny.SeqOfString("Entry does not exist"))) + return output + } + return output + } +} +func (_this *StormTracker) PutCacheEntry(input m_AwsCryptographyMaterialProvidersTypes.PutCacheEntryInput) m_Wrappers.Result { + { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.TupleOf()) + _ = output + (_this.InFlight).Remove((input).Dtor_identifier()) + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = (_this.Wrapped).PutCacheEntry_k(input) + output = _out0 + return output + } +} +func (_this *StormTracker) DeleteCacheEntry(input m_AwsCryptographyMaterialProvidersTypes.DeleteCacheEntryInput) m_Wrappers.Result { + { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.TupleOf()) + _ = output + (_this.InFlight).Remove((input).Dtor_identifier()) + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = (_this.Wrapped).DeleteCacheEntry_k(input) + output = _out0 + return output + } +} +func (_this *StormTracker) UpdateUsageMetadata(input m_AwsCryptographyMaterialProvidersTypes.UpdateUsageMetadataInput) m_Wrappers.Result { + { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.TupleOf()) + _ = output + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = (_this.Wrapped).UpdateUsageMetadata_k(input) + output = _out0 + return output + } +} + +// End of class StormTracker diff --git a/customer-preview/mpl/StormTrackingCMC/StormTrackingCMC.go b/customer-preview/mpl/StormTrackingCMC/StormTrackingCMC.go new file mode 100644 index 000000000..0b4fe8c88 --- /dev/null +++ b/customer-preview/mpl/StormTrackingCMC/StormTrackingCMC.go @@ -0,0 +1,232 @@ +// Package StormTrackingCMC +// Dafny module StormTrackingCMC compiled into Go + +package StormTrackingCMC + +import ( + os "os" + + m_ComAmazonawsDynamodbTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/ComAmazonawsDynamodbTypes" + m_Com_Amazonaws_Dynamodb "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/Com_Amazonaws_Dynamodb" + m_ComAmazonawsKmsTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/ComAmazonawsKmsTypes" + m_Com_Amazonaws_Kms "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/Com_Amazonaws_Kms" + m_AlgorithmSuites "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AlgorithmSuites" + m_AwsArnParsing "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsArnParsing" + m_AwsCryptographyKeyStoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreOperations" + m_AwsCryptographyKeyStoreTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreTypes" + m_AwsCryptographyMaterialProvidersTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersTypes" + m_AwsKmsDiscoveryKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsDiscoveryKeyring" + m_AwsKmsKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsKeyring" + m_AwsKmsMrkAreUnique "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkAreUnique" + m_AwsKmsMrkDiscoveryKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkDiscoveryKeyring" + m_AwsKmsMrkKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkKeyring" + m_AwsKmsMrkMatchForDecrypt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkMatchForDecrypt" + m_AwsKmsUtils "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsUtils" + m_CanonicalEncryptionContext "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CanonicalEncryptionContext" + m_Constants "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Constants" + m_CreateKeyStoreTable "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeyStoreTable" + m_CreateKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeys" + m_DDBKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DDBKeystoreOperations" + m_DiscoveryMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DiscoveryMultiKeyring" + m_EdkWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/EdkWrapping" + m_ErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/ErrorMessages" + m_GetKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/GetKeys" + m_IntermediateKeyWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/IntermediateKeyWrapping" + m_KMSKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KMSKeystoreOperations" + m_KeyStore "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStore" + m_KeyStoreErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStoreErrorMessages" + m_Keyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Keyring" + m_KmsArn "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KmsArn" + m_LocalCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/LocalCMC" + m_MaterialWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MaterialWrapping" + m_Materials "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Materials" + m_MrkAwareDiscoveryMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MrkAwareDiscoveryMultiKeyring" + m_MrkAwareStrictMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MrkAwareStrictMultiKeyring" + m_MultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MultiKeyring" + m_StormTracker "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StormTracker" + m_StrictMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StrictMultiKeyring" + m_Structure "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Structure" + m_SynchronizedLocalCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/SynchronizedLocalCMC" + m_AtomicPrimitives "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AtomicPrimitives" + m_AwsCryptographyPrimitivesOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesOperations" + m_AwsCryptographyPrimitivesTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesTypes" + m_Digest "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Digest" + m_HKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/HKDF" + m_KdfCtr "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/KdfCtr" + m_Random "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Random" + m_WrappedHKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHKDF" + m_WrappedHMAC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHMAC" + m_Actions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Actions" + m_Base64 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64" + m_Base64Lemmas "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64Lemmas" + m_BoundedInts "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/BoundedInts" + m_DivInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternals" + m_DivInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternalsNonlinear" + m_DivMod "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivMod" + m_FileIO "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FileIO" + m_FloatCompare "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FloatCompare" + m_Functions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Functions" + m_GeneralInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GeneralInternals" + m_GetOpt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GetOpt" + m_HexStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/HexStrings" + m_Logarithm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Logarithm" + m__Math "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Math_" + m_ModInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternals" + m_ModInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternalsNonlinear" + m_Mul "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Mul" + m_MulInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternals" + m_MulInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternalsNonlinear" + m_Power "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Power" + m_Relations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Relations" + m_Seq "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq" + m_Seq_MergeSort "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq_MergeSort" + m_Sorting "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Sorting" + m_StandardLibrary "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary" + m_StandardLibraryInterop "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibraryInterop" + m_StandardLibrary_Sequence "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_Sequence" + m_StandardLibrary_String "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_String" + m_StandardLibrary_UInt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_UInt" + m_Streams "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Streams" + m_UnicodeStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UnicodeStrings" + m__Unicode "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Unicode_" + m_Utf16EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf16EncodingForm" + m_Utf8EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf8EncodingForm" + m_Wrappers "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers" + m__System "github.com/dafny-lang/DafnyRuntimeGo/v4/System_" + _dafny "github.com/dafny-lang/DafnyRuntimeGo/v4/dafny" +) + +var _ = os.Args +var _ _dafny.Dummy__ +var _ m__System.Dummy__ +var _ m_Wrappers.Dummy__ +var _ m_BoundedInts.Dummy__ +var _ m_StandardLibrary_UInt.Dummy__ +var _ m_StandardLibrary_Sequence.Dummy__ +var _ m_StandardLibrary_String.Dummy__ +var _ m_StandardLibrary.Dummy__ +var _ m_AwsCryptographyPrimitivesTypes.Dummy__ +var _ m_Random.Dummy__ +var _ m_Digest.Dummy__ +var _ m_WrappedHMAC.Dummy__ +var _ m_HKDF.Dummy__ +var _ m_WrappedHKDF.Dummy__ +var _ m_KdfCtr.Dummy__ +var _ m_AwsCryptographyPrimitivesOperations.Dummy__ +var _ m_AtomicPrimitives.Dummy__ +var _ m_ComAmazonawsDynamodbTypes.Dummy__ +var _ m_ComAmazonawsKmsTypes.Dummy__ +var _ m_Relations.Dummy__ +var _ m_Seq_MergeSort.Dummy__ +var _ m__Math.Dummy__ +var _ m_Seq.Dummy__ +var _ m__Unicode.Dummy__ +var _ m_Functions.Dummy__ +var _ m_Utf8EncodingForm.Dummy__ +var _ m_Utf16EncodingForm.Dummy__ +var _ m_UnicodeStrings.Dummy__ +var _ m_FileIO.Dummy__ +var _ m_GeneralInternals.Dummy__ +var _ m_MulInternalsNonlinear.Dummy__ +var _ m_MulInternals.Dummy__ +var _ m_Mul.Dummy__ +var _ m_ModInternalsNonlinear.Dummy__ +var _ m_DivInternalsNonlinear.Dummy__ +var _ m_ModInternals.Dummy__ +var _ m_DivInternals.Dummy__ +var _ m_DivMod.Dummy__ +var _ m_Power.Dummy__ +var _ m_Logarithm.Dummy__ +var _ m_StandardLibraryInterop.Dummy__ +var _ m_Streams.Dummy__ +var _ m_Sorting.Dummy__ +var _ m_HexStrings.Dummy__ +var _ m_GetOpt.Dummy__ +var _ m_FloatCompare.Dummy__ +var _ m_Base64.Dummy__ +var _ m_Base64Lemmas.Dummy__ +var _ m_Actions.Dummy__ +var _ m_AwsCryptographyKeyStoreTypes.Dummy__ +var _ m_AwsCryptographyMaterialProvidersTypes.Dummy__ +var _ m_AwsArnParsing.Dummy__ +var _ m_AwsKmsMrkMatchForDecrypt.Dummy__ +var _ m_AwsKmsUtils.Dummy__ +var _ m_KeyStoreErrorMessages.Dummy__ +var _ m_KmsArn.Dummy__ +var _ m_Structure.Dummy__ +var _ m_KMSKeystoreOperations.Dummy__ +var _ m_DDBKeystoreOperations.Dummy__ +var _ m_CreateKeys.Dummy__ +var _ m_CreateKeyStoreTable.Dummy__ +var _ m_GetKeys.Dummy__ +var _ m_AwsCryptographyKeyStoreOperations.Dummy__ +var _ m_Com_Amazonaws_Kms.Dummy__ +var _ m_Com_Amazonaws_Dynamodb.Dummy__ +var _ m_KeyStore.Dummy__ +var _ m_AlgorithmSuites.Dummy__ +var _ m_Materials.Dummy__ +var _ m_Keyring.Dummy__ +var _ m_MultiKeyring.Dummy__ +var _ m_AwsKmsMrkAreUnique.Dummy__ +var _ m_Constants.Dummy__ +var _ m_MaterialWrapping.Dummy__ +var _ m_CanonicalEncryptionContext.Dummy__ +var _ m_IntermediateKeyWrapping.Dummy__ +var _ m_EdkWrapping.Dummy__ +var _ m_ErrorMessages.Dummy__ +var _ m_AwsKmsKeyring.Dummy__ +var _ m_StrictMultiKeyring.Dummy__ +var _ m_AwsKmsDiscoveryKeyring.Dummy__ +var _ m_DiscoveryMultiKeyring.Dummy__ +var _ m_AwsKmsMrkDiscoveryKeyring.Dummy__ +var _ m_MrkAwareDiscoveryMultiKeyring.Dummy__ +var _ m_AwsKmsMrkKeyring.Dummy__ +var _ m_MrkAwareStrictMultiKeyring.Dummy__ +var _ m_LocalCMC.Dummy__ +var _ m_SynchronizedLocalCMC.Dummy__ +var _ m_StormTracker.Dummy__ + +type Dummy__ struct{} + +// Definition of class Default__ +type Default__ struct { + dummy byte +} + +func New_Default___() *Default__ { + _this := Default__{} + + return &_this +} + +type CompanionStruct_Default___ struct { +} + +var Companion_Default___ = CompanionStruct_Default___{} + +func (_this *Default__) Equals(other *Default__) bool { + return _this == other +} + +func (_this *Default__) EqualsGeneric(x interface{}) bool { + other, ok := x.(*Default__) + return ok && _this.Equals(other) +} + +func (*Default__) String() string { + return "StormTrackingCMC.Default__" +} +func (_this *Default__) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = &Default__{} + +func (_static *CompanionStruct_Default___) CreateGetCacheEntrySuccess(output m_AwsCryptographyMaterialProvidersTypes.GetCacheEntryOutput) m_Wrappers.Result { + return m_Wrappers.Companion_Result_.Create_Success_(output) +} +func (_static *CompanionStruct_Default___) CreateGetCacheEntryFailure(error_ m_AwsCryptographyMaterialProvidersTypes.Error) m_Wrappers.Result { + return m_Wrappers.Companion_Result_.Create_Failure_(error_) +} + +// End of class Default__ diff --git a/customer-preview/mpl/StormTrackingCMC/externs.go b/customer-preview/mpl/StormTrackingCMC/externs.go new file mode 100644 index 000000000..db2ab7329 --- /dev/null +++ b/customer-preview/mpl/StormTrackingCMC/externs.go @@ -0,0 +1,86 @@ +package StormTrackingCMC + +import ( + "sync" + "time" + + "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersTypes" + "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StormTracker" + DafnyTime "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Time_" + "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers" + _dafny "github.com/dafny-lang/DafnyRuntimeGo/v4/dafny" +) + +type StormTrackingCMC struct { + stormTracker *StormTracker.StormTracker + //The Lock contention is not tested. + sync.Mutex +} + +func New_StormTrackingCMC_(stormTracker *StormTracker.StormTracker) *StormTrackingCMC { + return &StormTrackingCMC{stormTracker: stormTracker} +} + +func (cmc *StormTrackingCMC) PutCacheEntry(input AwsCryptographyMaterialProvidersTypes.PutCacheEntryInput) Wrappers.Result { + cmc.Lock() + defer cmc.Unlock() + return cmc.stormTracker.PutCacheEntry(input) +} +func (cmc *StormTrackingCMC) PutCacheEntry_k(input AwsCryptographyMaterialProvidersTypes.PutCacheEntryInput) Wrappers.Result { + cmc.Lock() + defer cmc.Unlock() + return cmc.stormTracker.PutCacheEntry(input) +} +func (cmc *StormTrackingCMC) UpdateUsageMetadata(input AwsCryptographyMaterialProvidersTypes.UpdateUsageMetadataInput) Wrappers.Result { + cmc.Lock() + defer cmc.Unlock() + return cmc.stormTracker.UpdateUsageMetadata(input) +} +func (cmc *StormTrackingCMC) UpdateUsageMetadata_k(input AwsCryptographyMaterialProvidersTypes.UpdateUsageMetadataInput) Wrappers.Result { + cmc.Lock() + defer cmc.Unlock() + return cmc.stormTracker.UpdateUsageMetadata(input) +} +func (cmc *StormTrackingCMC) GetCacheEntry(input AwsCryptographyMaterialProvidersTypes.GetCacheEntryInput) Wrappers.Result { + return cmc.GetCacheEntry_k(input) +} +func (cmc *StormTrackingCMC) GetCacheEntry_k(input AwsCryptographyMaterialProvidersTypes.GetCacheEntryInput) Wrappers.Result { + maxInFlight := DafnyTime.CurrentRelativeTimeMilli() + cmc.stormTracker.InFlightTTL + for { + res := cmc.GetFromInner(input) + if res.IsFailure() { + return Companion_Default___.CreateGetCacheEntryFailure(res.Dtor_error().(AwsCryptographyMaterialProvidersTypes.Error)) + } else if res.Dtor_value().(StormTracker.CacheState).Is_Full() { + return Companion_Default___.CreateGetCacheEntrySuccess(res.Dtor_value().(StormTracker.CacheState).Dtor_data()) + } else if res.Dtor_value().(StormTracker.CacheState).Is_EmptyFetch() { + return Companion_Default___.CreateGetCacheEntryFailure(AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_EntryDoesNotExist_(_dafny.SeqOfChars([]_dafny.Char("Entry doesn't exists")...))) + } else { + if DafnyTime.CurrentRelativeTimeMilli() <= maxInFlight { + time.Sleep(time.Duration(cmc.stormTracker.SleepMilli)) + } else { + return Companion_Default___.CreateGetCacheEntryFailure(AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_InFlightTTLExceeded_(_dafny.SeqOfChars([]_dafny.Char("Storm cache inFlightTTL exceeded.")...))) + } + } + } +} +func (cmc *StormTrackingCMC) DeleteCacheEntry(input AwsCryptographyMaterialProvidersTypes.DeleteCacheEntryInput) Wrappers.Result { + cmc.Lock() + defer cmc.Unlock() + return cmc.stormTracker.DeleteCacheEntry(input) + +} +func (cmc *StormTrackingCMC) DeleteCacheEntry_k(input AwsCryptographyMaterialProvidersTypes.DeleteCacheEntryInput) Wrappers.Result { + cmc.Lock() + defer cmc.Unlock() + return cmc.stormTracker.DeleteCacheEntry(input) +} + +func (cmc *StormTrackingCMC) String() string { + return "StormTrackerCMC" +} + +func (cmc *StormTrackingCMC) GetFromInner(input AwsCryptographyMaterialProvidersTypes.GetCacheEntryInput) Wrappers.Result { + cmc.Lock() + defer cmc.Unlock() + return cmc.stormTracker.GetFromCache(input) +} diff --git a/customer-preview/mpl/StrictMultiKeyring/StrictMultiKeyring.go b/customer-preview/mpl/StrictMultiKeyring/StrictMultiKeyring.go new file mode 100644 index 000000000..f915a9116 --- /dev/null +++ b/customer-preview/mpl/StrictMultiKeyring/StrictMultiKeyring.go @@ -0,0 +1,381 @@ +// Package StrictMultiKeyring +// Dafny module StrictMultiKeyring compiled into Go + +package StrictMultiKeyring + +import ( + os "os" + + m_ComAmazonawsDynamodbTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/ComAmazonawsDynamodbTypes" + m_Com_Amazonaws_Dynamodb "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/Com_Amazonaws_Dynamodb" + m_ComAmazonawsKmsTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/ComAmazonawsKmsTypes" + m_Com_Amazonaws_Kms "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/Com_Amazonaws_Kms" + m_AlgorithmSuites "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AlgorithmSuites" + m_AwsArnParsing "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsArnParsing" + m_AwsCryptographyKeyStoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreOperations" + m_AwsCryptographyKeyStoreTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreTypes" + m_AwsCryptographyMaterialProvidersTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersTypes" + m_AwsKmsKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsKeyring" + m_AwsKmsMrkAreUnique "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkAreUnique" + m_AwsKmsMrkMatchForDecrypt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkMatchForDecrypt" + m_AwsKmsUtils "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsUtils" + m_CanonicalEncryptionContext "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CanonicalEncryptionContext" + m_Constants "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Constants" + m_CreateKeyStoreTable "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeyStoreTable" + m_CreateKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeys" + m_DDBKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DDBKeystoreOperations" + m_EdkWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/EdkWrapping" + m_ErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/ErrorMessages" + m_GetKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/GetKeys" + m_IntermediateKeyWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/IntermediateKeyWrapping" + m_KMSKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KMSKeystoreOperations" + m_KeyStore "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStore" + m_KeyStoreErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStoreErrorMessages" + m_Keyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Keyring" + m_KmsArn "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KmsArn" + m_MaterialWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MaterialWrapping" + m_Materials "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Materials" + m_MultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MultiKeyring" + m_Structure "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Structure" + m_AtomicPrimitives "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AtomicPrimitives" + m_AwsCryptographyPrimitivesOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesOperations" + m_AwsCryptographyPrimitivesTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesTypes" + m_Digest "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Digest" + m_HKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/HKDF" + m_KdfCtr "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/KdfCtr" + m_Random "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Random" + m_WrappedHKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHKDF" + m_WrappedHMAC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHMAC" + m_Actions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Actions" + m_Base64 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64" + m_Base64Lemmas "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64Lemmas" + m_BoundedInts "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/BoundedInts" + m_DivInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternals" + m_DivInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternalsNonlinear" + m_DivMod "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivMod" + m_FileIO "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FileIO" + m_FloatCompare "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FloatCompare" + m_Functions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Functions" + m_GeneralInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GeneralInternals" + m_GetOpt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GetOpt" + m_HexStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/HexStrings" + m_Logarithm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Logarithm" + m__Math "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Math_" + m_ModInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternals" + m_ModInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternalsNonlinear" + m_Mul "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Mul" + m_MulInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternals" + m_MulInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternalsNonlinear" + m_Power "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Power" + m_Relations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Relations" + m_Seq "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq" + m_Seq_MergeSort "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq_MergeSort" + m_Sorting "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Sorting" + m_StandardLibrary "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary" + m_StandardLibraryInterop "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibraryInterop" + m_StandardLibrary_Sequence "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_Sequence" + m_StandardLibrary_String "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_String" + m_StandardLibrary_UInt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_UInt" + m_Streams "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Streams" + m_UnicodeStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UnicodeStrings" + m__Unicode "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Unicode_" + m_Utf16EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf16EncodingForm" + m_Utf8EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf8EncodingForm" + m_Wrappers "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers" + m__System "github.com/dafny-lang/DafnyRuntimeGo/v4/System_" + _dafny "github.com/dafny-lang/DafnyRuntimeGo/v4/dafny" +) + +var _ = os.Args +var _ _dafny.Dummy__ +var _ m__System.Dummy__ +var _ m_Wrappers.Dummy__ +var _ m_BoundedInts.Dummy__ +var _ m_StandardLibrary_UInt.Dummy__ +var _ m_StandardLibrary_Sequence.Dummy__ +var _ m_StandardLibrary_String.Dummy__ +var _ m_StandardLibrary.Dummy__ +var _ m_AwsCryptographyPrimitivesTypes.Dummy__ +var _ m_Random.Dummy__ +var _ m_Digest.Dummy__ +var _ m_WrappedHMAC.Dummy__ +var _ m_HKDF.Dummy__ +var _ m_WrappedHKDF.Dummy__ +var _ m_KdfCtr.Dummy__ +var _ m_AwsCryptographyPrimitivesOperations.Dummy__ +var _ m_AtomicPrimitives.Dummy__ +var _ m_ComAmazonawsDynamodbTypes.Dummy__ +var _ m_ComAmazonawsKmsTypes.Dummy__ +var _ m_Relations.Dummy__ +var _ m_Seq_MergeSort.Dummy__ +var _ m__Math.Dummy__ +var _ m_Seq.Dummy__ +var _ m__Unicode.Dummy__ +var _ m_Functions.Dummy__ +var _ m_Utf8EncodingForm.Dummy__ +var _ m_Utf16EncodingForm.Dummy__ +var _ m_UnicodeStrings.Dummy__ +var _ m_FileIO.Dummy__ +var _ m_GeneralInternals.Dummy__ +var _ m_MulInternalsNonlinear.Dummy__ +var _ m_MulInternals.Dummy__ +var _ m_Mul.Dummy__ +var _ m_ModInternalsNonlinear.Dummy__ +var _ m_DivInternalsNonlinear.Dummy__ +var _ m_ModInternals.Dummy__ +var _ m_DivInternals.Dummy__ +var _ m_DivMod.Dummy__ +var _ m_Power.Dummy__ +var _ m_Logarithm.Dummy__ +var _ m_StandardLibraryInterop.Dummy__ +var _ m_Streams.Dummy__ +var _ m_Sorting.Dummy__ +var _ m_HexStrings.Dummy__ +var _ m_GetOpt.Dummy__ +var _ m_FloatCompare.Dummy__ +var _ m_Base64.Dummy__ +var _ m_Base64Lemmas.Dummy__ +var _ m_Actions.Dummy__ +var _ m_AwsCryptographyKeyStoreTypes.Dummy__ +var _ m_AwsCryptographyMaterialProvidersTypes.Dummy__ +var _ m_AwsArnParsing.Dummy__ +var _ m_AwsKmsMrkMatchForDecrypt.Dummy__ +var _ m_AwsKmsUtils.Dummy__ +var _ m_KeyStoreErrorMessages.Dummy__ +var _ m_KmsArn.Dummy__ +var _ m_Structure.Dummy__ +var _ m_KMSKeystoreOperations.Dummy__ +var _ m_DDBKeystoreOperations.Dummy__ +var _ m_CreateKeys.Dummy__ +var _ m_CreateKeyStoreTable.Dummy__ +var _ m_GetKeys.Dummy__ +var _ m_AwsCryptographyKeyStoreOperations.Dummy__ +var _ m_Com_Amazonaws_Kms.Dummy__ +var _ m_Com_Amazonaws_Dynamodb.Dummy__ +var _ m_KeyStore.Dummy__ +var _ m_AlgorithmSuites.Dummy__ +var _ m_Materials.Dummy__ +var _ m_Keyring.Dummy__ +var _ m_MultiKeyring.Dummy__ +var _ m_AwsKmsMrkAreUnique.Dummy__ +var _ m_Constants.Dummy__ +var _ m_MaterialWrapping.Dummy__ +var _ m_CanonicalEncryptionContext.Dummy__ +var _ m_IntermediateKeyWrapping.Dummy__ +var _ m_EdkWrapping.Dummy__ +var _ m_ErrorMessages.Dummy__ +var _ m_AwsKmsKeyring.Dummy__ + +type Dummy__ struct{} + +// Definition of class Default__ +type Default__ struct { + dummy byte +} + +func New_Default___() *Default__ { + _this := Default__{} + + return &_this +} + +type CompanionStruct_Default___ struct { +} + +var Companion_Default___ = CompanionStruct_Default___{} + +func (_this *Default__) Equals(other *Default__) bool { + return _this == other +} + +func (_this *Default__) EqualsGeneric(x interface{}) bool { + other, ok := x.(*Default__) + return ok && _this.Equals(other) +} + +func (*Default__) String() string { + return "StrictMultiKeyring.Default__" +} +func (_this *Default__) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = &Default__{} + +func (_static *CompanionStruct_Default___) StrictMultiKeyring(generator m_Wrappers.Option, awsKmsKeys m_Wrappers.Option, clientSupplier m_AwsCryptographyMaterialProvidersTypes.IClientSupplier, grantTokens m_Wrappers.Option) m_Wrappers.Result { + var output m_Wrappers.Result = m_Wrappers.Result{} + _ = output + var _0_allStrings _dafny.Sequence + _ = _0_allStrings + var _source0 m_Wrappers.Option = generator + _ = _source0 + { + { + if _source0.Is_Some() { + var _1_g _dafny.Sequence = _source0.Get_().(m_Wrappers.Option_Some).Value.(_dafny.Sequence) + _ = _1_g + _0_allStrings = _dafny.Companion_Sequence_.Concatenate(_dafny.SeqOf(_1_g), (awsKmsKeys).UnwrapOr(_dafny.SeqOf()).(_dafny.Sequence)) + goto Lmatch0 + } + } + { + _0_allStrings = (awsKmsKeys).UnwrapOr(_dafny.SeqOf()).(_dafny.Sequence) + } + goto Lmatch0 + } +Lmatch0: + var _2_valueOrError0 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = _2_valueOrError0 + _2_valueOrError0 = (m_Seq.Companion_Default___.MapWithResult(func(coer59 func(_dafny.Sequence) m_Wrappers.Result) func(interface{}) m_Wrappers.Result { + return func(arg60 interface{}) m_Wrappers.Result { + return coer59(arg60.(_dafny.Sequence)) + } + }(m_AwsArnParsing.Companion_Default___.IsAwsKmsIdentifierString), _0_allStrings)).MapFailure(func(coer60 func(_dafny.Sequence) m_AwsCryptographyMaterialProvidersTypes.Error) func(interface{}) interface{} { + return func(arg61 interface{}) interface{} { + return coer60(arg61.(_dafny.Sequence)) + } + }(m_AwsKmsUtils.Companion_Default___.WrapStringToError)) + if (_2_valueOrError0).IsFailure() { + output = (_2_valueOrError0).PropagateFailure() + return output + } + var _3_allIdentifiers _dafny.Sequence + _ = _3_allIdentifiers + _3_allIdentifiers = (_2_valueOrError0).Extract().(_dafny.Sequence) + var _4_generatorKeyring m_Wrappers.Option = m_Wrappers.Companion_Option_.Default() + _ = _4_generatorKeyring + var _source1 m_Wrappers.Option = generator + _ = _source1 + { + { + if _source1.Is_Some() { + var _5_generatorIdentifier _dafny.Sequence = _source1.Get_().(m_Wrappers.Option_Some).Value.(_dafny.Sequence) + _ = _5_generatorIdentifier + var _6_valueOrError1 m_Wrappers.Result = m_Wrappers.Result{} + _ = _6_valueOrError1 + _6_valueOrError1 = (m_AwsArnParsing.Companion_Default___.IsAwsKmsIdentifierString(_5_generatorIdentifier)).MapFailure(func(coer61 func(_dafny.Sequence) m_AwsCryptographyMaterialProvidersTypes.Error) func(interface{}) interface{} { + return func(arg62 interface{}) interface{} { + return coer61(arg62.(_dafny.Sequence)) + } + }(m_AwsKmsUtils.Companion_Default___.WrapStringToError)) + if (_6_valueOrError1).IsFailure() { + output = (_6_valueOrError1).PropagateFailure() + return output + } + var _7_arn m_AwsArnParsing.AwsKmsIdentifier + _ = _7_arn + _7_arn = (_6_valueOrError1).Extract().(m_AwsArnParsing.AwsKmsIdentifier) + var _8_region m_Wrappers.Option + _ = _8_region + _8_region = m_AwsArnParsing.Companion_Default___.GetRegion(_7_arn) + var _9_valueOrError2 m_Wrappers.Result = m_Wrappers.Result{} + _ = _9_valueOrError2 + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = (clientSupplier).GetClient(m_AwsCryptographyMaterialProvidersTypes.Companion_GetClientInput_.Create_GetClientInput_((_8_region).UnwrapOr(_dafny.SeqOfString("")).(_dafny.Sequence))) + _9_valueOrError2 = _out0 + if (_9_valueOrError2).IsFailure() { + output = (_9_valueOrError2).PropagateFailure() + return output + } + var _10_client m_ComAmazonawsKmsTypes.IKMSClient + _ = _10_client + _10_client = m_ComAmazonawsKmsTypes.Companion_IKMSClient_.CastTo_((_9_valueOrError2).Extract()) + var _11_g *m_AwsKmsKeyring.AwsKmsKeyring + _ = _11_g + var _nw0 *m_AwsKmsKeyring.AwsKmsKeyring = m_AwsKmsKeyring.New_AwsKmsKeyring_() + _ = _nw0 + _nw0.Ctor__(_10_client, _5_generatorIdentifier, (grantTokens).UnwrapOr(_dafny.SeqOf()).(_dafny.Sequence)) + _11_g = _nw0 + _4_generatorKeyring = m_Wrappers.Companion_Option_.Create_Some_(_11_g) + goto Lmatch1 + } + } + { + _4_generatorKeyring = m_Wrappers.Companion_Option_.Create_None_() + } + goto Lmatch1 + } +Lmatch1: + var _12_children _dafny.Sequence + _ = _12_children + _12_children = _dafny.SeqOf() + var _source2 m_Wrappers.Option = awsKmsKeys + _ = _source2 + { + { + if _source2.Is_Some() { + var _13_childIdentifiers _dafny.Sequence = _source2.Get_().(m_Wrappers.Option_Some).Value.(_dafny.Sequence) + _ = _13_childIdentifiers + var _hi0 _dafny.Int = _dafny.IntOfUint32((_13_childIdentifiers).Cardinality()) + _ = _hi0 + for _14_index := _dafny.Zero; _14_index.Cmp(_hi0) < 0; _14_index = _14_index.Plus(_dafny.One) { + var _15_childIdentifier _dafny.Sequence + _ = _15_childIdentifier + _15_childIdentifier = (_13_childIdentifiers).Select((_14_index).Uint32()).(_dafny.Sequence) + var _16_valueOrError3 m_Wrappers.Result = m_Wrappers.Result{} + _ = _16_valueOrError3 + _16_valueOrError3 = (m_AwsArnParsing.Companion_Default___.IsAwsKmsIdentifierString(_15_childIdentifier)).MapFailure(func(coer62 func(_dafny.Sequence) m_AwsCryptographyMaterialProvidersTypes.Error) func(interface{}) interface{} { + return func(arg63 interface{}) interface{} { + return coer62(arg63.(_dafny.Sequence)) + } + }(m_AwsKmsUtils.Companion_Default___.WrapStringToError)) + if (_16_valueOrError3).IsFailure() { + output = (_16_valueOrError3).PropagateFailure() + return output + } + var _17_info m_AwsArnParsing.AwsKmsIdentifier + _ = _17_info + _17_info = (_16_valueOrError3).Extract().(m_AwsArnParsing.AwsKmsIdentifier) + var _18_region m_Wrappers.Option + _ = _18_region + _18_region = m_AwsArnParsing.Companion_Default___.GetRegion(_17_info) + var _19_valueOrError4 m_Wrappers.Result = m_Wrappers.Result{} + _ = _19_valueOrError4 + var _out1 m_Wrappers.Result + _ = _out1 + _out1 = (clientSupplier).GetClient(m_AwsCryptographyMaterialProvidersTypes.Companion_GetClientInput_.Create_GetClientInput_((_18_region).UnwrapOr(_dafny.SeqOfString("")).(_dafny.Sequence))) + _19_valueOrError4 = _out1 + if (_19_valueOrError4).IsFailure() { + output = (_19_valueOrError4).PropagateFailure() + return output + } + var _20_client m_ComAmazonawsKmsTypes.IKMSClient + _ = _20_client + _20_client = m_ComAmazonawsKmsTypes.Companion_IKMSClient_.CastTo_((_19_valueOrError4).Extract()) + var _21_keyring *m_AwsKmsKeyring.AwsKmsKeyring + _ = _21_keyring + var _nw1 *m_AwsKmsKeyring.AwsKmsKeyring = m_AwsKmsKeyring.New_AwsKmsKeyring_() + _ = _nw1 + _nw1.Ctor__(_20_client, _15_childIdentifier, (grantTokens).UnwrapOr(_dafny.SeqOf()).(_dafny.Sequence)) + _21_keyring = _nw1 + _12_children = _dafny.Companion_Sequence_.Concatenate(_12_children, _dafny.SeqOf(_21_keyring)) + } + goto Lmatch2 + } + } + { + _12_children = _dafny.SeqOf() + } + goto Lmatch2 + } +Lmatch2: + var _22_valueOrError5 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _22_valueOrError5 + _22_valueOrError5 = m_Wrappers.Companion_Default___.Need(((_4_generatorKeyring).Is_Some()) || ((_dafny.IntOfUint32((_12_children).Cardinality())).Sign() == 1), m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.SeqOfString("generatorKeyring or child Keryings needed to create a multi keyring"))) + if (_22_valueOrError5).IsFailure() { + output = (_22_valueOrError5).PropagateFailure() + return output + } + var _23_keyring *m_MultiKeyring.MultiKeyring + _ = _23_keyring + var _nw2 *m_MultiKeyring.MultiKeyring = m_MultiKeyring.New_MultiKeyring_() + _ = _nw2 + _nw2.Ctor__(_4_generatorKeyring, _12_children) + _23_keyring = _nw2 + output = m_Wrappers.Companion_Result_.Create_Success_(_23_keyring) + return output + return output +} + +// End of class Default__ diff --git a/customer-preview/mpl/Structure/Structure.go b/customer-preview/mpl/Structure/Structure.go new file mode 100644 index 000000000..438ad3348 --- /dev/null +++ b/customer-preview/mpl/Structure/Structure.go @@ -0,0 +1,602 @@ +// Package Structure +// Dafny module Structure compiled into Go + +package Structure + +import ( + os "os" + + m_ComAmazonawsDynamodbTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/ComAmazonawsDynamodbTypes" + m_ComAmazonawsKmsTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/ComAmazonawsKmsTypes" + m_AwsArnParsing "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsArnParsing" + m_AwsCryptographyKeyStoreTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreTypes" + m_AwsCryptographyMaterialProvidersTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersTypes" + m_AwsKmsMrkMatchForDecrypt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkMatchForDecrypt" + m_AwsKmsUtils "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsUtils" + m_KeyStoreErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStoreErrorMessages" + m_KmsArn "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KmsArn" + m_AtomicPrimitives "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AtomicPrimitives" + m_AwsCryptographyPrimitivesOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesOperations" + m_AwsCryptographyPrimitivesTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesTypes" + m_Digest "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Digest" + m_HKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/HKDF" + m_KdfCtr "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/KdfCtr" + m_Random "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Random" + m_WrappedHKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHKDF" + m_WrappedHMAC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHMAC" + m_Actions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Actions" + m_Base64 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64" + m_Base64Lemmas "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64Lemmas" + m_BoundedInts "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/BoundedInts" + m_DivInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternals" + m_DivInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternalsNonlinear" + m_DivMod "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivMod" + m_FileIO "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FileIO" + m_FloatCompare "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FloatCompare" + m_Functions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Functions" + m_GeneralInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GeneralInternals" + m_GetOpt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GetOpt" + m_HexStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/HexStrings" + m_Logarithm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Logarithm" + m__Math "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Math_" + m_ModInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternals" + m_ModInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternalsNonlinear" + m_Mul "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Mul" + m_MulInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternals" + m_MulInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternalsNonlinear" + m_Power "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Power" + m_Relations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Relations" + m_Seq "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq" + m_Seq_MergeSort "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq_MergeSort" + m_Sorting "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Sorting" + m_StandardLibrary "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary" + m_StandardLibraryInterop "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibraryInterop" + m_StandardLibrary_Sequence "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_Sequence" + m_StandardLibrary_String "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_String" + m_StandardLibrary_UInt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_UInt" + m_Streams "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Streams" + m_UTF8 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UTF8" + m_UnicodeStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UnicodeStrings" + m__Unicode "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Unicode_" + m_Utf16EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf16EncodingForm" + m_Utf8EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf8EncodingForm" + m_Wrappers "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers" + m__System "github.com/dafny-lang/DafnyRuntimeGo/v4/System_" + _dafny "github.com/dafny-lang/DafnyRuntimeGo/v4/dafny" +) + +var _ = os.Args +var _ _dafny.Dummy__ +var _ m__System.Dummy__ +var _ m_Wrappers.Dummy__ +var _ m_BoundedInts.Dummy__ +var _ m_StandardLibrary_UInt.Dummy__ +var _ m_StandardLibrary_Sequence.Dummy__ +var _ m_StandardLibrary_String.Dummy__ +var _ m_StandardLibrary.Dummy__ +var _ m_AwsCryptographyPrimitivesTypes.Dummy__ +var _ m_Random.Dummy__ +var _ m_Digest.Dummy__ +var _ m_WrappedHMAC.Dummy__ +var _ m_HKDF.Dummy__ +var _ m_WrappedHKDF.Dummy__ +var _ m_KdfCtr.Dummy__ +var _ m_AwsCryptographyPrimitivesOperations.Dummy__ +var _ m_AtomicPrimitives.Dummy__ +var _ m_ComAmazonawsDynamodbTypes.Dummy__ +var _ m_ComAmazonawsKmsTypes.Dummy__ +var _ m_Relations.Dummy__ +var _ m_Seq_MergeSort.Dummy__ +var _ m__Math.Dummy__ +var _ m_Seq.Dummy__ +var _ m__Unicode.Dummy__ +var _ m_Functions.Dummy__ +var _ m_Utf8EncodingForm.Dummy__ +var _ m_Utf16EncodingForm.Dummy__ +var _ m_UnicodeStrings.Dummy__ +var _ m_FileIO.Dummy__ +var _ m_GeneralInternals.Dummy__ +var _ m_MulInternalsNonlinear.Dummy__ +var _ m_MulInternals.Dummy__ +var _ m_Mul.Dummy__ +var _ m_ModInternalsNonlinear.Dummy__ +var _ m_DivInternalsNonlinear.Dummy__ +var _ m_ModInternals.Dummy__ +var _ m_DivInternals.Dummy__ +var _ m_DivMod.Dummy__ +var _ m_Power.Dummy__ +var _ m_Logarithm.Dummy__ +var _ m_StandardLibraryInterop.Dummy__ +var _ m_Streams.Dummy__ +var _ m_Sorting.Dummy__ +var _ m_HexStrings.Dummy__ +var _ m_GetOpt.Dummy__ +var _ m_FloatCompare.Dummy__ +var _ m_Base64.Dummy__ +var _ m_Base64Lemmas.Dummy__ +var _ m_Actions.Dummy__ +var _ m_AwsCryptographyKeyStoreTypes.Dummy__ +var _ m_AwsCryptographyMaterialProvidersTypes.Dummy__ +var _ m_AwsArnParsing.Dummy__ +var _ m_AwsKmsMrkMatchForDecrypt.Dummy__ +var _ m_AwsKmsUtils.Dummy__ +var _ m_KeyStoreErrorMessages.Dummy__ +var _ m_KmsArn.Dummy__ + +type Dummy__ struct{} + +// Definition of class Default__ +type Default__ struct { + dummy byte +} + +func New_Default___() *Default__ { + _this := Default__{} + + return &_this +} + +type CompanionStruct_Default___ struct { +} + +var Companion_Default___ = CompanionStruct_Default___{} + +func (_this *Default__) Equals(other *Default__) bool { + return _this == other +} + +func (_this *Default__) EqualsGeneric(x interface{}) bool { + other, ok := x.(*Default__) + return ok && _this.Equals(other) +} + +func (*Default__) String() string { + return "Structure.Default__" +} +func (_this *Default__) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = &Default__{} + +func (_static *CompanionStruct_Default___) BranchKeyContext_q(m _dafny.Map) bool { + return ((((((((((((((m).Contains(Companion_Default___.BRANCH__KEY__IDENTIFIER__FIELD())) && ((m).Contains(Companion_Default___.TYPE__FIELD()))) && ((m).Contains(Companion_Default___.KEY__CREATE__TIME()))) && ((m).Contains(Companion_Default___.HIERARCHY__VERSION()))) && ((m).Contains(Companion_Default___.TABLE__FIELD()))) && ((m).Contains(Companion_Default___.KMS__FIELD()))) && (m_ComAmazonawsKmsTypes.Companion_Default___.IsValid__KeyIdType((m).Get(Companion_Default___.KMS__FIELD()).(_dafny.Sequence)))) && (!((m).Keys()).Contains(Companion_Default___.BRANCH__KEY__FIELD()))) && ((_dafny.IntOfUint32(((m).Get(Companion_Default___.BRANCH__KEY__IDENTIFIER__FIELD()).(_dafny.Sequence)).Cardinality())).Sign() == 1)) && ((_dafny.IntOfUint32(((m).Get(Companion_Default___.TYPE__FIELD()).(_dafny.Sequence)).Cardinality())).Sign() == 1)) && (_dafny.Quantifier(((m).Keys()).Elements(), true, func(_forall_var_0 _dafny.Sequence) bool { + var _0_k _dafny.Sequence + _0_k = interface{}(_forall_var_0).(_dafny.Sequence) + return !(((m).Keys()).Contains(_0_k)) || (m_ComAmazonawsDynamodbTypes.Companion_Default___.IsValid__AttributeName(_0_k)) + }))) && (((m).Contains(Companion_Default___.BRANCH__KEY__ACTIVE__VERSION__FIELD())) == ((true) && (_dafny.Companion_Sequence_.Equal((m).Get(Companion_Default___.TYPE__FIELD()).(_dafny.Sequence), Companion_Default___.BRANCH__KEY__ACTIVE__TYPE()))))) && (!((m).Contains(Companion_Default___.BRANCH__KEY__ACTIVE__VERSION__FIELD())) || ((true) && (_dafny.Companion_Sequence_.IsProperPrefixOf(Companion_Default___.BRANCH__KEY__TYPE__PREFIX(), (m).Get(Companion_Default___.BRANCH__KEY__ACTIVE__VERSION__FIELD()).(_dafny.Sequence)))))) && ((!(m).Contains(Companion_Default___.BRANCH__KEY__ACTIVE__VERSION__FIELD())) == ((_dafny.Companion_Sequence_.Equal((m).Get(Companion_Default___.TYPE__FIELD()).(_dafny.Sequence), Companion_Default___.BEACON__KEY__TYPE__VALUE())) || (_dafny.Companion_Sequence_.IsProperPrefixOf(Companion_Default___.BRANCH__KEY__TYPE__PREFIX(), (m).Get(Companion_Default___.TYPE__FIELD()).(_dafny.Sequence))))) +} +func (_static *CompanionStruct_Default___) ToAttributeMap(encryptionContext _dafny.Map, encryptedKey _dafny.Sequence) _dafny.Map { + return func() _dafny.Map { + var _coll0 = _dafny.NewMapBuilder() + _ = _coll0 + for _iter2 := _dafny.Iterate(((((encryptionContext).Keys()).Union(_dafny.SetOf(Companion_Default___.BRANCH__KEY__FIELD()))).Difference(_dafny.SetOf(Companion_Default___.TABLE__FIELD()))).Elements()); ; { + _compr_0, _ok2 := _iter2() + if !_ok2 { + break + } + var _0_k _dafny.Sequence + _0_k = interface{}(_compr_0).(_dafny.Sequence) + if m_ComAmazonawsDynamodbTypes.Companion_AttributeName_.Is_(_0_k) { + if ((((encryptionContext).Keys()).Union(_dafny.SetOf(Companion_Default___.BRANCH__KEY__FIELD()))).Difference(_dafny.SetOf(Companion_Default___.TABLE__FIELD()))).Contains(_0_k) { + _coll0.Add(_0_k, (func() m_ComAmazonawsDynamodbTypes.AttributeValue { + if _dafny.Companion_Sequence_.Equal(_0_k, Companion_Default___.HIERARCHY__VERSION()) { + return m_ComAmazonawsDynamodbTypes.Companion_AttributeValue_.Create_N_((encryptionContext).Get(Companion_Default___.HIERARCHY__VERSION()).(_dafny.Sequence)) + } + return (func() m_ComAmazonawsDynamodbTypes.AttributeValue { + if _dafny.Companion_Sequence_.Equal(_0_k, Companion_Default___.BRANCH__KEY__FIELD()) { + return m_ComAmazonawsDynamodbTypes.Companion_AttributeValue_.Create_B_(encryptedKey) + } + return m_ComAmazonawsDynamodbTypes.Companion_AttributeValue_.Create_S_((encryptionContext).Get(_0_k).(_dafny.Sequence)) + })() + })()) + } + } + } + return _coll0.ToMap() + }() +} +func (_static *CompanionStruct_Default___) ToBranchKeyContext(item _dafny.Map, logicalKeyStoreName _dafny.Sequence) _dafny.Map { + return func() _dafny.Map { + var _coll0 = _dafny.NewMapBuilder() + _ = _coll0 + for _iter3 := _dafny.Iterate(((((item).Keys()).Difference(_dafny.SetOf(Companion_Default___.BRANCH__KEY__FIELD()))).Union(_dafny.SetOf(Companion_Default___.TABLE__FIELD()))).Elements()); ; { + _compr_0, _ok3 := _iter3() + if !_ok3 { + break + } + var _0_k _dafny.Sequence + _0_k = interface{}(_compr_0).(_dafny.Sequence) + if ((((item).Keys()).Difference(_dafny.SetOf(Companion_Default___.BRANCH__KEY__FIELD()))).Union(_dafny.SetOf(Companion_Default___.TABLE__FIELD()))).Contains(_0_k) { + _coll0.Add(_0_k, (func() _dafny.Sequence { + if _dafny.Companion_Sequence_.Equal(_0_k, Companion_Default___.HIERARCHY__VERSION()) { + return ((item).Get(_0_k).(m_ComAmazonawsDynamodbTypes.AttributeValue)).Dtor_N() + } + return (func() _dafny.Sequence { + if _dafny.Companion_Sequence_.Equal(_0_k, Companion_Default___.TABLE__FIELD()) { + return logicalKeyStoreName + } + return ((item).Get(_0_k).(m_ComAmazonawsDynamodbTypes.AttributeValue)).Dtor_S() + })() + })()) + } + } + return _coll0.ToMap() + }() +} +func (_static *CompanionStruct_Default___) ToBranchKeyMaterials(encryptionContext _dafny.Map, plaintextKey _dafny.Sequence) m_Wrappers.Result { + var _0_versionInformation _dafny.Sequence = (func() _dafny.Sequence { + if (encryptionContext).Contains(Companion_Default___.BRANCH__KEY__ACTIVE__VERSION__FIELD()) { + return (encryptionContext).Get(Companion_Default___.BRANCH__KEY__ACTIVE__VERSION__FIELD()).(_dafny.Sequence) + } + return (encryptionContext).Get(Companion_Default___.TYPE__FIELD()).(_dafny.Sequence) + })() + _ = _0_versionInformation + var _1_branchKeyVersion _dafny.Sequence = (_0_versionInformation).Drop((_dafny.IntOfUint32((Companion_Default___.BRANCH__KEY__TYPE__PREFIX()).Cardinality())).Uint32()) + _ = _1_branchKeyVersion + var _2_valueOrError0 m_Wrappers.Result = (m_UTF8.Encode(_1_branchKeyVersion)).MapFailure(func(coer10 func(_dafny.Sequence) m_AwsCryptographyKeyStoreTypes.Error) func(interface{}) interface{} { + return func(arg10 interface{}) interface{} { + return coer10(arg10.(_dafny.Sequence)) + } + }(func(_3_e _dafny.Sequence) m_AwsCryptographyKeyStoreTypes.Error { + return m_AwsCryptographyKeyStoreTypes.Companion_Error_.Create_KeyStoreException_(_3_e) + })) + _ = _2_valueOrError0 + if (_2_valueOrError0).IsFailure() { + return (_2_valueOrError0).PropagateFailure() + } else { + var _4_branchKeyVersionUtf8 _dafny.Sequence = (_2_valueOrError0).Extract().(_dafny.Sequence) + _ = _4_branchKeyVersionUtf8 + var _5_valueOrError1 m_Wrappers.Result = Companion_Default___.ExtractCustomEncryptionContext(encryptionContext) + _ = _5_valueOrError1 + if (_5_valueOrError1).IsFailure() { + return (_5_valueOrError1).PropagateFailure() + } else { + var _6_customEncryptionContext _dafny.Map = (_5_valueOrError1).Extract().(_dafny.Map) + _ = _6_customEncryptionContext + return m_Wrappers.Companion_Result_.Create_Success_(m_AwsCryptographyKeyStoreTypes.Companion_BranchKeyMaterials_.Create_BranchKeyMaterials_((encryptionContext).Get(Companion_Default___.BRANCH__KEY__IDENTIFIER__FIELD()).(_dafny.Sequence), _4_branchKeyVersionUtf8, _6_customEncryptionContext, plaintextKey)) + } + } +} +func (_static *CompanionStruct_Default___) ToBeaconKeyMaterials(encryptionContext _dafny.Map, plaintextKey _dafny.Sequence) m_Wrappers.Result { + var _0_valueOrError0 m_Wrappers.Result = Companion_Default___.ExtractCustomEncryptionContext(encryptionContext) + _ = _0_valueOrError0 + if (_0_valueOrError0).IsFailure() { + return (_0_valueOrError0).PropagateFailure() + } else { + var _1_customEncryptionContext _dafny.Map = (_0_valueOrError0).Extract().(_dafny.Map) + _ = _1_customEncryptionContext + return m_Wrappers.Companion_Result_.Create_Success_(m_AwsCryptographyKeyStoreTypes.Companion_BeaconKeyMaterials_.Create_BeaconKeyMaterials_((encryptionContext).Get(Companion_Default___.BRANCH__KEY__IDENTIFIER__FIELD()).(_dafny.Sequence), _1_customEncryptionContext, m_Wrappers.Companion_Option_.Create_Some_(plaintextKey), m_Wrappers.Companion_Option_.Create_None_())) + } +} +func (_static *CompanionStruct_Default___) ExtractCustomEncryptionContext(encryptionContext _dafny.Map) m_Wrappers.Result { + var _0_encodedEncryptionContext _dafny.Set = func() _dafny.Set { + var _coll0 = _dafny.NewBuilder() + _ = _coll0 + for _iter4 := _dafny.Iterate((encryptionContext).Keys().Elements()); ; { + _compr_0, _ok4 := _iter4() + if !_ok4 { + break + } + var _1_k _dafny.Sequence + _1_k = interface{}(_compr_0).(_dafny.Sequence) + if ((encryptionContext).Contains(_1_k)) && (_dafny.Companion_Sequence_.IsProperPrefixOf(Companion_Default___.ENCRYPTION__CONTEXT__PREFIX(), _1_k)) { + _coll0.Add(_dafny.TupleOf(m_UTF8.Encode((_1_k).Drop((_dafny.IntOfUint32((Companion_Default___.ENCRYPTION__CONTEXT__PREFIX()).Cardinality())).Uint32())), m_UTF8.Encode((encryptionContext).Get(_1_k).(_dafny.Sequence)))) + } + } + return _coll0.ToSet() + }() + _ = _0_encodedEncryptionContext + var _2_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need(_dafny.Quantifier((_0_encodedEncryptionContext).Elements(), true, func(_forall_var_0 _dafny.Tuple) bool { + var _3_i _dafny.Tuple + _3_i = interface{}(_forall_var_0).(_dafny.Tuple) + return !((_0_encodedEncryptionContext).Contains(_3_i)) || ((((*(_3_i).IndexInt(0)).(m_Wrappers.Result)).Is_Success()) && (((*(_3_i).IndexInt(1)).(m_Wrappers.Result)).Is_Success())) + }), m_AwsCryptographyKeyStoreTypes.Companion_Error_.Create_KeyStoreException_(_dafny.SeqOfString("Unable to encode string"))) + _ = _2_valueOrError0 + if (_2_valueOrError0).IsFailure() { + return (_2_valueOrError0).PropagateFailure() + } else { + return m_Wrappers.Companion_Result_.Create_Success_(func() _dafny.Map { + var _coll1 = _dafny.NewMapBuilder() + _ = _coll1 + for _iter5 := _dafny.Iterate((_0_encodedEncryptionContext).Elements()); ; { + _compr_1, _ok5 := _iter5() + if !_ok5 { + break + } + var _4_i _dafny.Tuple + _4_i = interface{}(_compr_1).(_dafny.Tuple) + if (_0_encodedEncryptionContext).Contains(_4_i) { + _coll1.Add(((*(_4_i).IndexInt(0)).(m_Wrappers.Result)).Dtor_value().(_dafny.Sequence), ((*(_4_i).IndexInt(1)).(m_Wrappers.Result)).Dtor_value().(_dafny.Sequence)) + } + } + return _coll1.ToMap() + }()) + } +} +func (_static *CompanionStruct_Default___) DecryptOnlyBranchKeyEncryptionContext(branchKeyId _dafny.Sequence, branchKeyVersion _dafny.Sequence, timestamp _dafny.Sequence, logicalKeyStoreName _dafny.Sequence, kmsKeyArn _dafny.Sequence, customEncryptionContext _dafny.Map) _dafny.Map { + return (_dafny.NewMapBuilder().ToMap().UpdateUnsafe(Companion_Default___.BRANCH__KEY__IDENTIFIER__FIELD(), branchKeyId).UpdateUnsafe(Companion_Default___.TYPE__FIELD(), _dafny.Companion_Sequence_.Concatenate(Companion_Default___.BRANCH__KEY__TYPE__PREFIX(), branchKeyVersion)).UpdateUnsafe(Companion_Default___.KEY__CREATE__TIME(), timestamp).UpdateUnsafe(Companion_Default___.TABLE__FIELD(), logicalKeyStoreName).UpdateUnsafe(Companion_Default___.KMS__FIELD(), kmsKeyArn).UpdateUnsafe(Companion_Default___.HIERARCHY__VERSION(), _dafny.SeqOfString("1"))).Merge(func() _dafny.Map { + var _coll0 = _dafny.NewMapBuilder() + _ = _coll0 + for _iter6 := _dafny.Iterate((customEncryptionContext).Keys().Elements()); ; { + _compr_0, _ok6 := _iter6() + if !_ok6 { + break + } + var _0_k _dafny.Sequence + _0_k = interface{}(_compr_0).(_dafny.Sequence) + if (customEncryptionContext).Contains(_0_k) { + _coll0.Add(_dafny.Companion_Sequence_.Concatenate(Companion_Default___.ENCRYPTION__CONTEXT__PREFIX(), _0_k), (customEncryptionContext).Get(_0_k).(_dafny.Sequence)) + } + } + return _coll0.ToMap() + }()) +} +func (_static *CompanionStruct_Default___) ActiveBranchKeyEncryptionContext(decryptOnlyEncryptionContext _dafny.Map) _dafny.Map { + return (decryptOnlyEncryptionContext).Merge(_dafny.NewMapBuilder().ToMap().UpdateUnsafe(Companion_Default___.BRANCH__KEY__ACTIVE__VERSION__FIELD(), (decryptOnlyEncryptionContext).Get(Companion_Default___.TYPE__FIELD()).(_dafny.Sequence)).UpdateUnsafe(Companion_Default___.TYPE__FIELD(), Companion_Default___.BRANCH__KEY__ACTIVE__TYPE())) +} +func (_static *CompanionStruct_Default___) BeaconKeyEncryptionContext(decryptOnlyEncryptionContext _dafny.Map) _dafny.Map { + return (decryptOnlyEncryptionContext).Merge(_dafny.NewMapBuilder().ToMap().UpdateUnsafe(Companion_Default___.TYPE__FIELD(), Companion_Default___.BEACON__KEY__TYPE__VALUE())) +} +func (_static *CompanionStruct_Default___) NewVersionFromActiveBranchKeyEncryptionContext(activeBranchKeyEncryptionContext _dafny.Map, branchKeyVersion _dafny.Sequence, timestamp _dafny.Sequence) _dafny.Map { + return ((activeBranchKeyEncryptionContext).Merge(_dafny.NewMapBuilder().ToMap().UpdateUnsafe(Companion_Default___.TYPE__FIELD(), _dafny.Companion_Sequence_.Concatenate(Companion_Default___.BRANCH__KEY__TYPE__PREFIX(), branchKeyVersion)).UpdateUnsafe(Companion_Default___.KEY__CREATE__TIME(), timestamp))).Subtract(_dafny.SetOf(Companion_Default___.BRANCH__KEY__ACTIVE__VERSION__FIELD())) +} +func (_static *CompanionStruct_Default___) BranchKeyItem_q(m _dafny.Map) bool { + return (((((((((((((((((((((m).Contains(Companion_Default___.BRANCH__KEY__IDENTIFIER__FIELD())) && (((m).Get(Companion_Default___.BRANCH__KEY__IDENTIFIER__FIELD()).(m_ComAmazonawsDynamodbTypes.AttributeValue)).Is_S())) && ((m).Contains(Companion_Default___.TYPE__FIELD()))) && (((m).Get(Companion_Default___.TYPE__FIELD()).(m_ComAmazonawsDynamodbTypes.AttributeValue)).Is_S())) && ((m).Contains(Companion_Default___.KEY__CREATE__TIME()))) && (((m).Get(Companion_Default___.KEY__CREATE__TIME()).(m_ComAmazonawsDynamodbTypes.AttributeValue)).Is_S())) && ((m).Contains(Companion_Default___.HIERARCHY__VERSION()))) && (((m).Get(Companion_Default___.HIERARCHY__VERSION()).(m_ComAmazonawsDynamodbTypes.AttributeValue)).Is_N())) && (!(m).Contains(Companion_Default___.TABLE__FIELD()))) && ((m).Contains(Companion_Default___.KMS__FIELD()))) && (((m).Get(Companion_Default___.KMS__FIELD()).(m_ComAmazonawsDynamodbTypes.AttributeValue)).Is_S())) && (m_ComAmazonawsKmsTypes.Companion_Default___.IsValid__KeyIdType(((m).Get(Companion_Default___.KMS__FIELD()).(m_ComAmazonawsDynamodbTypes.AttributeValue)).Dtor_S()))) && ((m).Contains(Companion_Default___.BRANCH__KEY__FIELD()))) && (((m).Get(Companion_Default___.BRANCH__KEY__FIELD()).(m_ComAmazonawsDynamodbTypes.AttributeValue)).Is_B())) && ((_dafny.IntOfUint32((((m).Get(Companion_Default___.BRANCH__KEY__IDENTIFIER__FIELD()).(m_ComAmazonawsDynamodbTypes.AttributeValue)).Dtor_S()).Cardinality())).Sign() == 1)) && ((_dafny.IntOfUint32((((m).Get(Companion_Default___.TYPE__FIELD()).(m_ComAmazonawsDynamodbTypes.AttributeValue)).Dtor_S()).Cardinality())).Sign() == 1)) && (_dafny.Quantifier((((m).Keys()).Difference(_dafny.SetOf(Companion_Default___.BRANCH__KEY__FIELD(), Companion_Default___.HIERARCHY__VERSION()))).Elements(), true, func(_forall_var_0 _dafny.Sequence) bool { + var _0_k _dafny.Sequence + _0_k = interface{}(_forall_var_0).(_dafny.Sequence) + return !((((m).Keys()).Difference(_dafny.SetOf(Companion_Default___.BRANCH__KEY__FIELD(), Companion_Default___.HIERARCHY__VERSION()))).Contains(_0_k)) || (((m).Get(_0_k).(m_ComAmazonawsDynamodbTypes.AttributeValue)).Is_S()) + }))) && (((m).Contains(Companion_Default___.BRANCH__KEY__ACTIVE__VERSION__FIELD())) == ((true) && (_dafny.Companion_Sequence_.Equal(((m).Get(Companion_Default___.TYPE__FIELD()).(m_ComAmazonawsDynamodbTypes.AttributeValue)).Dtor_S(), Companion_Default___.BRANCH__KEY__ACTIVE__TYPE()))))) && (!((m).Contains(Companion_Default___.BRANCH__KEY__ACTIVE__VERSION__FIELD())) || ((true) && (_dafny.Companion_Sequence_.IsProperPrefixOf(Companion_Default___.BRANCH__KEY__TYPE__PREFIX(), ((m).Get(Companion_Default___.BRANCH__KEY__ACTIVE__VERSION__FIELD()).(m_ComAmazonawsDynamodbTypes.AttributeValue)).Dtor_S()))))) && ((!(m).Contains(Companion_Default___.BRANCH__KEY__ACTIVE__VERSION__FIELD())) == ((_dafny.Companion_Sequence_.Equal(((m).Get(Companion_Default___.TYPE__FIELD()).(m_ComAmazonawsDynamodbTypes.AttributeValue)).Dtor_S(), Companion_Default___.BEACON__KEY__TYPE__VALUE())) || (_dafny.Companion_Sequence_.IsProperPrefixOf(Companion_Default___.BRANCH__KEY__TYPE__PREFIX(), ((m).Get(Companion_Default___.TYPE__FIELD()).(m_ComAmazonawsDynamodbTypes.AttributeValue)).Dtor_S()))))) && (m_ComAmazonawsKmsTypes.Companion_Default___.IsValid__CiphertextType(((m).Get(Companion_Default___.BRANCH__KEY__FIELD()).(m_ComAmazonawsDynamodbTypes.AttributeValue)).Dtor_B())) +} +func (_static *CompanionStruct_Default___) ActiveBranchKeyItem_q(m _dafny.Map) bool { + return ((((Companion_Default___.BranchKeyItem_q(m)) && (_dafny.Companion_Sequence_.Equal(((m).Get(Companion_Default___.TYPE__FIELD()).(m_ComAmazonawsDynamodbTypes.AttributeValue)).Dtor_S(), Companion_Default___.BRANCH__KEY__ACTIVE__TYPE()))) && ((m).Contains(Companion_Default___.BRANCH__KEY__ACTIVE__VERSION__FIELD()))) && (((m).Get(Companion_Default___.BRANCH__KEY__ACTIVE__VERSION__FIELD()).(m_ComAmazonawsDynamodbTypes.AttributeValue)).Is_S())) && (_dafny.Companion_Sequence_.IsProperPrefixOf(Companion_Default___.BRANCH__KEY__TYPE__PREFIX(), ((m).Get(Companion_Default___.BRANCH__KEY__ACTIVE__VERSION__FIELD()).(m_ComAmazonawsDynamodbTypes.AttributeValue)).Dtor_S())) +} +func (_static *CompanionStruct_Default___) VersionBranchKeyItem_q(m _dafny.Map) bool { + return ((Companion_Default___.BranchKeyItem_q(m)) && (!(m).Contains(Companion_Default___.BRANCH__KEY__ACTIVE__VERSION__FIELD()))) && (_dafny.Companion_Sequence_.IsProperPrefixOf(Companion_Default___.BRANCH__KEY__TYPE__PREFIX(), ((m).Get(Companion_Default___.TYPE__FIELD()).(m_ComAmazonawsDynamodbTypes.AttributeValue)).Dtor_S())) +} +func (_static *CompanionStruct_Default___) BeaconKeyItem_q(m _dafny.Map) bool { + return ((Companion_Default___.BranchKeyItem_q(m)) && (!(m).Contains(Companion_Default___.BRANCH__KEY__ACTIVE__VERSION__FIELD()))) && (_dafny.Companion_Sequence_.Equal(((m).Get(Companion_Default___.TYPE__FIELD()).(m_ComAmazonawsDynamodbTypes.AttributeValue)).Dtor_S(), Companion_Default___.BEACON__KEY__TYPE__VALUE())) +} +func (_static *CompanionStruct_Default___) BRANCH__KEY__IDENTIFIER__FIELD() _dafny.Sequence { + return _dafny.SeqOfString("branch-key-id") +} +func (_static *CompanionStruct_Default___) TYPE__FIELD() _dafny.Sequence { + return _dafny.SeqOfString("type") +} +func (_static *CompanionStruct_Default___) KEY__CREATE__TIME() _dafny.Sequence { + return _dafny.SeqOfString("create-time") +} +func (_static *CompanionStruct_Default___) HIERARCHY__VERSION() _dafny.Sequence { + return _dafny.SeqOfString("hierarchy-version") +} +func (_static *CompanionStruct_Default___) TABLE__FIELD() _dafny.Sequence { + return _dafny.SeqOfString("tablename") +} +func (_static *CompanionStruct_Default___) KMS__FIELD() _dafny.Sequence { + return _dafny.SeqOfString("kms-arn") +} +func (_static *CompanionStruct_Default___) BRANCH__KEY__FIELD() _dafny.Sequence { + return _dafny.SeqOfString("enc") +} +func (_static *CompanionStruct_Default___) BRANCH__KEY__ACTIVE__VERSION__FIELD() _dafny.Sequence { + return _dafny.SeqOfString("version") +} +func (_static *CompanionStruct_Default___) BRANCH__KEY__ACTIVE__TYPE() _dafny.Sequence { + return _dafny.SeqOfString("branch:ACTIVE") +} +func (_static *CompanionStruct_Default___) BRANCH__KEY__TYPE__PREFIX() _dafny.Sequence { + return _dafny.SeqOfString("branch:version:") +} +func (_static *CompanionStruct_Default___) BEACON__KEY__TYPE__VALUE() _dafny.Sequence { + return _dafny.SeqOfString("beacon:ACTIVE") +} +func (_static *CompanionStruct_Default___) ENCRYPTION__CONTEXT__PREFIX() _dafny.Sequence { + return _dafny.SeqOfString("aws-crypto-ec:") +} + +// End of class Default__ + +// Definition of class BranchKeyContext +type BranchKeyContext struct { +} + +func New_BranchKeyContext_() *BranchKeyContext { + _this := BranchKeyContext{} + + return &_this +} + +type CompanionStruct_BranchKeyContext_ struct { +} + +var Companion_BranchKeyContext_ = CompanionStruct_BranchKeyContext_{} + +func (*BranchKeyContext) String() string { + return "Structure.BranchKeyContext" +} + +// End of class BranchKeyContext + +func Type_BranchKeyContext_() _dafny.TypeDescriptor { + return type_BranchKeyContext_{} +} + +type type_BranchKeyContext_ struct { +} + +func (_this type_BranchKeyContext_) Default() interface{} { + return _dafny.EmptyMap +} + +func (_this type_BranchKeyContext_) String() string { + return "Structure.BranchKeyContext" +} +func (_this *CompanionStruct_BranchKeyContext_) Is_(__source _dafny.Map) bool { + var _0_m _dafny.Map = (__source) + _ = _0_m + return Companion_Default___.BranchKeyContext_q(_0_m) +} + +// Definition of class BranchKeyItem +type BranchKeyItem struct { +} + +func New_BranchKeyItem_() *BranchKeyItem { + _this := BranchKeyItem{} + + return &_this +} + +type CompanionStruct_BranchKeyItem_ struct { +} + +var Companion_BranchKeyItem_ = CompanionStruct_BranchKeyItem_{} + +func (*BranchKeyItem) String() string { + return "Structure.BranchKeyItem" +} + +// End of class BranchKeyItem + +func Type_BranchKeyItem_() _dafny.TypeDescriptor { + return type_BranchKeyItem_{} +} + +type type_BranchKeyItem_ struct { +} + +func (_this type_BranchKeyItem_) Default() interface{} { + return _dafny.EmptyMap +} + +func (_this type_BranchKeyItem_) String() string { + return "Structure.BranchKeyItem" +} +func (_this *CompanionStruct_BranchKeyItem_) Is_(__source _dafny.Map) bool { + var _1_m _dafny.Map = (__source) + _ = _1_m + return Companion_Default___.BranchKeyItem_q(_1_m) +} + +// Definition of class ActiveBranchKeyItem +type ActiveBranchKeyItem struct { +} + +func New_ActiveBranchKeyItem_() *ActiveBranchKeyItem { + _this := ActiveBranchKeyItem{} + + return &_this +} + +type CompanionStruct_ActiveBranchKeyItem_ struct { +} + +var Companion_ActiveBranchKeyItem_ = CompanionStruct_ActiveBranchKeyItem_{} + +func (*ActiveBranchKeyItem) String() string { + return "Structure.ActiveBranchKeyItem" +} + +// End of class ActiveBranchKeyItem + +func Type_ActiveBranchKeyItem_() _dafny.TypeDescriptor { + return type_ActiveBranchKeyItem_{} +} + +type type_ActiveBranchKeyItem_ struct { +} + +func (_this type_ActiveBranchKeyItem_) Default() interface{} { + return _dafny.EmptyMap +} + +func (_this type_ActiveBranchKeyItem_) String() string { + return "Structure.ActiveBranchKeyItem" +} +func (_this *CompanionStruct_ActiveBranchKeyItem_) Is_(__source _dafny.Map) bool { + var _2_m _dafny.Map = (__source) + _ = _2_m + return Companion_Default___.ActiveBranchKeyItem_q(_2_m) +} + +// Definition of class VersionBranchKeyItem +type VersionBranchKeyItem struct { +} + +func New_VersionBranchKeyItem_() *VersionBranchKeyItem { + _this := VersionBranchKeyItem{} + + return &_this +} + +type CompanionStruct_VersionBranchKeyItem_ struct { +} + +var Companion_VersionBranchKeyItem_ = CompanionStruct_VersionBranchKeyItem_{} + +func (*VersionBranchKeyItem) String() string { + return "Structure.VersionBranchKeyItem" +} + +// End of class VersionBranchKeyItem + +func Type_VersionBranchKeyItem_() _dafny.TypeDescriptor { + return type_VersionBranchKeyItem_{} +} + +type type_VersionBranchKeyItem_ struct { +} + +func (_this type_VersionBranchKeyItem_) Default() interface{} { + return _dafny.EmptyMap +} + +func (_this type_VersionBranchKeyItem_) String() string { + return "Structure.VersionBranchKeyItem" +} +func (_this *CompanionStruct_VersionBranchKeyItem_) Is_(__source _dafny.Map) bool { + var _3_m _dafny.Map = (__source) + _ = _3_m + return Companion_Default___.VersionBranchKeyItem_q(_3_m) +} + +// Definition of class BeaconKeyItem +type BeaconKeyItem struct { +} + +func New_BeaconKeyItem_() *BeaconKeyItem { + _this := BeaconKeyItem{} + + return &_this +} + +type CompanionStruct_BeaconKeyItem_ struct { +} + +var Companion_BeaconKeyItem_ = CompanionStruct_BeaconKeyItem_{} + +func (*BeaconKeyItem) String() string { + return "Structure.BeaconKeyItem" +} + +// End of class BeaconKeyItem + +func Type_BeaconKeyItem_() _dafny.TypeDescriptor { + return type_BeaconKeyItem_{} +} + +type type_BeaconKeyItem_ struct { +} + +func (_this type_BeaconKeyItem_) Default() interface{} { + return _dafny.EmptyMap +} + +func (_this type_BeaconKeyItem_) String() string { + return "Structure.BeaconKeyItem" +} +func (_this *CompanionStruct_BeaconKeyItem_) Is_(__source _dafny.Map) bool { + var _4_m _dafny.Map = (__source) + _ = _4_m + return Companion_Default___.BeaconKeyItem_q(_4_m) +} diff --git a/customer-preview/mpl/SynchronizedLocalCMC/SynchronizedLocalCMC.go b/customer-preview/mpl/SynchronizedLocalCMC/SynchronizedLocalCMC.go new file mode 100644 index 000000000..deb89117d --- /dev/null +++ b/customer-preview/mpl/SynchronizedLocalCMC/SynchronizedLocalCMC.go @@ -0,0 +1,185 @@ +// Package SynchronizedLocalCMC +// Dafny module SynchronizedLocalCMC compiled into Go + +package SynchronizedLocalCMC + +import ( + os "os" + + m_ComAmazonawsDynamodbTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/ComAmazonawsDynamodbTypes" + m_Com_Amazonaws_Dynamodb "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/Com_Amazonaws_Dynamodb" + m_ComAmazonawsKmsTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/ComAmazonawsKmsTypes" + m_Com_Amazonaws_Kms "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/Com_Amazonaws_Kms" + m_AlgorithmSuites "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AlgorithmSuites" + m_AwsArnParsing "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsArnParsing" + m_AwsCryptographyKeyStoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreOperations" + m_AwsCryptographyKeyStoreTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreTypes" + m_AwsCryptographyMaterialProvidersTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersTypes" + m_AwsKmsDiscoveryKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsDiscoveryKeyring" + m_AwsKmsKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsKeyring" + m_AwsKmsMrkAreUnique "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkAreUnique" + m_AwsKmsMrkDiscoveryKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkDiscoveryKeyring" + m_AwsKmsMrkKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkKeyring" + m_AwsKmsMrkMatchForDecrypt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkMatchForDecrypt" + m_AwsKmsUtils "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsUtils" + m_CanonicalEncryptionContext "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CanonicalEncryptionContext" + m_Constants "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Constants" + m_CreateKeyStoreTable "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeyStoreTable" + m_CreateKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeys" + m_DDBKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DDBKeystoreOperations" + m_DiscoveryMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DiscoveryMultiKeyring" + m_EdkWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/EdkWrapping" + m_ErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/ErrorMessages" + m_GetKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/GetKeys" + m_IntermediateKeyWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/IntermediateKeyWrapping" + m_KMSKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KMSKeystoreOperations" + m_KeyStore "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStore" + m_KeyStoreErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStoreErrorMessages" + m_Keyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Keyring" + m_KmsArn "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KmsArn" + m_LocalCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/LocalCMC" + m_MaterialWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MaterialWrapping" + m_Materials "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Materials" + m_MrkAwareDiscoveryMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MrkAwareDiscoveryMultiKeyring" + m_MrkAwareStrictMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MrkAwareStrictMultiKeyring" + m_MultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MultiKeyring" + m_StrictMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StrictMultiKeyring" + m_Structure "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Structure" + m_AtomicPrimitives "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AtomicPrimitives" + m_AwsCryptographyPrimitivesOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesOperations" + m_AwsCryptographyPrimitivesTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesTypes" + m_Digest "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Digest" + m_HKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/HKDF" + m_KdfCtr "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/KdfCtr" + m_Random "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Random" + m_WrappedHKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHKDF" + m_WrappedHMAC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHMAC" + m_Actions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Actions" + m_Base64 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64" + m_Base64Lemmas "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64Lemmas" + m_BoundedInts "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/BoundedInts" + m_DivInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternals" + m_DivInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternalsNonlinear" + m_DivMod "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivMod" + m_FileIO "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FileIO" + m_FloatCompare "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FloatCompare" + m_Functions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Functions" + m_GeneralInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GeneralInternals" + m_GetOpt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GetOpt" + m_HexStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/HexStrings" + m_Logarithm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Logarithm" + m__Math "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Math_" + m_ModInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternals" + m_ModInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternalsNonlinear" + m_Mul "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Mul" + m_MulInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternals" + m_MulInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternalsNonlinear" + m_Power "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Power" + m_Relations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Relations" + m_Seq "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq" + m_Seq_MergeSort "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq_MergeSort" + m_Sorting "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Sorting" + m_StandardLibrary "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary" + m_StandardLibraryInterop "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibraryInterop" + m_StandardLibrary_Sequence "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_Sequence" + m_StandardLibrary_String "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_String" + m_StandardLibrary_UInt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_UInt" + m_Streams "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Streams" + m_UnicodeStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UnicodeStrings" + m__Unicode "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Unicode_" + m_Utf16EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf16EncodingForm" + m_Utf8EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf8EncodingForm" + m_Wrappers "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers" + m__System "github.com/dafny-lang/DafnyRuntimeGo/v4/System_" + _dafny "github.com/dafny-lang/DafnyRuntimeGo/v4/dafny" +) + +var _ = os.Args +var _ _dafny.Dummy__ +var _ m__System.Dummy__ +var _ m_Wrappers.Dummy__ +var _ m_BoundedInts.Dummy__ +var _ m_StandardLibrary_UInt.Dummy__ +var _ m_StandardLibrary_Sequence.Dummy__ +var _ m_StandardLibrary_String.Dummy__ +var _ m_StandardLibrary.Dummy__ +var _ m_AwsCryptographyPrimitivesTypes.Dummy__ +var _ m_Random.Dummy__ +var _ m_Digest.Dummy__ +var _ m_WrappedHMAC.Dummy__ +var _ m_HKDF.Dummy__ +var _ m_WrappedHKDF.Dummy__ +var _ m_KdfCtr.Dummy__ +var _ m_AwsCryptographyPrimitivesOperations.Dummy__ +var _ m_AtomicPrimitives.Dummy__ +var _ m_ComAmazonawsDynamodbTypes.Dummy__ +var _ m_ComAmazonawsKmsTypes.Dummy__ +var _ m_Relations.Dummy__ +var _ m_Seq_MergeSort.Dummy__ +var _ m__Math.Dummy__ +var _ m_Seq.Dummy__ +var _ m__Unicode.Dummy__ +var _ m_Functions.Dummy__ +var _ m_Utf8EncodingForm.Dummy__ +var _ m_Utf16EncodingForm.Dummy__ +var _ m_UnicodeStrings.Dummy__ +var _ m_FileIO.Dummy__ +var _ m_GeneralInternals.Dummy__ +var _ m_MulInternalsNonlinear.Dummy__ +var _ m_MulInternals.Dummy__ +var _ m_Mul.Dummy__ +var _ m_ModInternalsNonlinear.Dummy__ +var _ m_DivInternalsNonlinear.Dummy__ +var _ m_ModInternals.Dummy__ +var _ m_DivInternals.Dummy__ +var _ m_DivMod.Dummy__ +var _ m_Power.Dummy__ +var _ m_Logarithm.Dummy__ +var _ m_StandardLibraryInterop.Dummy__ +var _ m_Streams.Dummy__ +var _ m_Sorting.Dummy__ +var _ m_HexStrings.Dummy__ +var _ m_GetOpt.Dummy__ +var _ m_FloatCompare.Dummy__ +var _ m_Base64.Dummy__ +var _ m_Base64Lemmas.Dummy__ +var _ m_Actions.Dummy__ +var _ m_AwsCryptographyKeyStoreTypes.Dummy__ +var _ m_AwsCryptographyMaterialProvidersTypes.Dummy__ +var _ m_AwsArnParsing.Dummy__ +var _ m_AwsKmsMrkMatchForDecrypt.Dummy__ +var _ m_AwsKmsUtils.Dummy__ +var _ m_KeyStoreErrorMessages.Dummy__ +var _ m_KmsArn.Dummy__ +var _ m_Structure.Dummy__ +var _ m_KMSKeystoreOperations.Dummy__ +var _ m_DDBKeystoreOperations.Dummy__ +var _ m_CreateKeys.Dummy__ +var _ m_CreateKeyStoreTable.Dummy__ +var _ m_GetKeys.Dummy__ +var _ m_AwsCryptographyKeyStoreOperations.Dummy__ +var _ m_Com_Amazonaws_Kms.Dummy__ +var _ m_Com_Amazonaws_Dynamodb.Dummy__ +var _ m_KeyStore.Dummy__ +var _ m_AlgorithmSuites.Dummy__ +var _ m_Materials.Dummy__ +var _ m_Keyring.Dummy__ +var _ m_MultiKeyring.Dummy__ +var _ m_AwsKmsMrkAreUnique.Dummy__ +var _ m_Constants.Dummy__ +var _ m_MaterialWrapping.Dummy__ +var _ m_CanonicalEncryptionContext.Dummy__ +var _ m_IntermediateKeyWrapping.Dummy__ +var _ m_EdkWrapping.Dummy__ +var _ m_ErrorMessages.Dummy__ +var _ m_AwsKmsKeyring.Dummy__ +var _ m_StrictMultiKeyring.Dummy__ +var _ m_AwsKmsDiscoveryKeyring.Dummy__ +var _ m_DiscoveryMultiKeyring.Dummy__ +var _ m_AwsKmsMrkDiscoveryKeyring.Dummy__ +var _ m_MrkAwareDiscoveryMultiKeyring.Dummy__ +var _ m_AwsKmsMrkKeyring.Dummy__ +var _ m_MrkAwareStrictMultiKeyring.Dummy__ +var _ m_LocalCMC.Dummy__ + +type Dummy__ struct{} diff --git a/customer-preview/mpl/SynchronizedLocalCMC/externs.go b/customer-preview/mpl/SynchronizedLocalCMC/externs.go new file mode 100644 index 000000000..e42d36286 --- /dev/null +++ b/customer-preview/mpl/SynchronizedLocalCMC/externs.go @@ -0,0 +1,63 @@ +package SynchronizedLocalCMC + +import ( + "sync" + + "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersTypes" + "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/LocalCMC" + "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers" +) + +type SynchronizedLocalCMC struct { + localCMC *LocalCMC.LocalCMC + sync.Mutex +} + +func New_SynchronizedLocalCMC_(localCMC *LocalCMC.LocalCMC) *SynchronizedLocalCMC { + return &SynchronizedLocalCMC{localCMC: localCMC} +} + +func (cmc *SynchronizedLocalCMC) PutCacheEntry(input AwsCryptographyMaterialProvidersTypes.PutCacheEntryInput) Wrappers.Result { + cmc.Lock() + defer cmc.Unlock() + return cmc.localCMC.PutCacheEntry(input) +} +func (cmc *SynchronizedLocalCMC) PutCacheEntry_k(input AwsCryptographyMaterialProvidersTypes.PutCacheEntryInput) Wrappers.Result { + cmc.Lock() + defer cmc.Unlock() + return cmc.localCMC.PutCacheEntry_k(input) +} +func (cmc *SynchronizedLocalCMC) UpdateUsageMetadata(input AwsCryptographyMaterialProvidersTypes.UpdateUsageMetadataInput) Wrappers.Result { + cmc.Lock() + defer cmc.Unlock() + return cmc.localCMC.UpdateUsageMetadata(input) +} +func (cmc *SynchronizedLocalCMC) UpdateUsageMetadata_k(input AwsCryptographyMaterialProvidersTypes.UpdateUsageMetadataInput) Wrappers.Result { + cmc.Lock() + defer cmc.Unlock() + return cmc.localCMC.UpdateUsageMetadata_k(input) +} +func (cmc *SynchronizedLocalCMC) GetCacheEntry(input AwsCryptographyMaterialProvidersTypes.GetCacheEntryInput) Wrappers.Result { + cmc.Lock() + defer cmc.Unlock() + return cmc.localCMC.GetCacheEntry(input) +} +func (cmc *SynchronizedLocalCMC) GetCacheEntry_k(input AwsCryptographyMaterialProvidersTypes.GetCacheEntryInput) Wrappers.Result { + cmc.Lock() + defer cmc.Unlock() + return cmc.localCMC.GetCacheEntry_k(input) +} +func (cmc *SynchronizedLocalCMC) DeleteCacheEntry(input AwsCryptographyMaterialProvidersTypes.DeleteCacheEntryInput) Wrappers.Result { + cmc.Lock() + defer cmc.Unlock() + return cmc.localCMC.DeleteCacheEntry(input) +} +func (cmc *SynchronizedLocalCMC) DeleteCacheEntry_k(input AwsCryptographyMaterialProvidersTypes.DeleteCacheEntryInput) Wrappers.Result { + cmc.Lock() + defer cmc.Unlock() + return cmc.localCMC.DeleteCacheEntry_k(input) +} + +func (*SynchronizedLocalCMC) String() string { + return "SynchronizedLocalCMC" +} diff --git a/customer-preview/mpl/Utils/Utils.go b/customer-preview/mpl/Utils/Utils.go new file mode 100644 index 000000000..5d60abc4d --- /dev/null +++ b/customer-preview/mpl/Utils/Utils.go @@ -0,0 +1,282 @@ +// Package Utils +// Dafny module Utils compiled into Go + +package Utils + +import ( + os "os" + + m_ComAmazonawsDynamodbTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/ComAmazonawsDynamodbTypes" + m_Com_Amazonaws_Dynamodb "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/Com_Amazonaws_Dynamodb" + m_ComAmazonawsKmsTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/ComAmazonawsKmsTypes" + m_Com_Amazonaws_Kms "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/Com_Amazonaws_Kms" + m_AlgorithmSuites "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AlgorithmSuites" + m_AwsArnParsing "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsArnParsing" + m_AwsCryptographyKeyStoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreOperations" + m_AwsCryptographyKeyStoreTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreTypes" + m_AwsCryptographyMaterialProvidersTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersTypes" + m_AwsKmsDiscoveryKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsDiscoveryKeyring" + m_AwsKmsEcdhKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsEcdhKeyring" + m_AwsKmsHierarchicalKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsHierarchicalKeyring" + m_AwsKmsKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsKeyring" + m_AwsKmsMrkAreUnique "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkAreUnique" + m_AwsKmsMrkDiscoveryKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkDiscoveryKeyring" + m_AwsKmsMrkKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkKeyring" + m_AwsKmsMrkMatchForDecrypt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsMrkMatchForDecrypt" + m_AwsKmsRsaKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsRsaKeyring" + m_AwsKmsUtils "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsKmsUtils" + m_CMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CMM" + m_CacheConstants "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CacheConstants" + m_CanonicalEncryptionContext "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CanonicalEncryptionContext" + m_Commitment "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Commitment" + m_Constants "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Constants" + m_CreateKeyStoreTable "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeyStoreTable" + m_CreateKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/CreateKeys" + m_DDBKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DDBKeystoreOperations" + m_DefaultCMM "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DefaultCMM" + m_DefaultClientSupplier "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DefaultClientSupplier" + m_Defaults "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Defaults" + m_DiscoveryMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/DiscoveryMultiKeyring" + m_EcdhEdkWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/EcdhEdkWrapping" + m_EdkWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/EdkWrapping" + m_ErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/ErrorMessages" + m_GetKeys "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/GetKeys" + m_IntermediateKeyWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/IntermediateKeyWrapping" + m_KMSKeystoreOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KMSKeystoreOperations" + m_KeyStore "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStore" + m_KeyStoreErrorMessages "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStoreErrorMessages" + m_Keyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Keyring" + m_KmsArn "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KmsArn" + m_LocalCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/LocalCMC" + m_MaterialWrapping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MaterialWrapping" + m_Materials "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Materials" + m_MrkAwareDiscoveryMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MrkAwareDiscoveryMultiKeyring" + m_MrkAwareStrictMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MrkAwareStrictMultiKeyring" + m_MultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MultiKeyring" + m_RawAESKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawAESKeyring" + m_RawECDHKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawECDHKeyring" + m_RawRSAKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/RawRSAKeyring" + m_StormTracker "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StormTracker" + m_StormTrackingCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StormTrackingCMC" + m_StrictMultiKeyring "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/StrictMultiKeyring" + m_Structure "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/Structure" + m_SynchronizedLocalCMC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/SynchronizedLocalCMC" + m_AtomicPrimitives "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AtomicPrimitives" + m_AwsCryptographyPrimitivesOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesOperations" + m_AwsCryptographyPrimitivesTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesTypes" + m_Digest "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Digest" + m_HKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/HKDF" + m_KdfCtr "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/KdfCtr" + m_Random "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Random" + m_WrappedHKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHKDF" + m_WrappedHMAC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHMAC" + m_Actions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Actions" + m_Base64 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64" + m_Base64Lemmas "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64Lemmas" + m_BoundedInts "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/BoundedInts" + m_DivInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternals" + m_DivInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternalsNonlinear" + m_DivMod "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivMod" + m_FileIO "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FileIO" + m_FloatCompare "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FloatCompare" + m_Functions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Functions" + m_GeneralInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GeneralInternals" + m_GetOpt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GetOpt" + m_HexStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/HexStrings" + m_Logarithm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Logarithm" + m__Math "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Math_" + m_ModInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternals" + m_ModInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternalsNonlinear" + m_Mul "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Mul" + m_MulInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternals" + m_MulInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternalsNonlinear" + m_Power "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Power" + m_Relations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Relations" + m_Seq "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq" + m_Seq_MergeSort "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq_MergeSort" + m_Sorting "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Sorting" + m_StandardLibrary "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary" + m_StandardLibraryInterop "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibraryInterop" + m_StandardLibrary_Sequence "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_Sequence" + m_StandardLibrary_String "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_String" + m_StandardLibrary_UInt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_UInt" + m_Streams "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Streams" + m_UnicodeStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UnicodeStrings" + m__Unicode "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Unicode_" + m_Utf16EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf16EncodingForm" + m_Utf8EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf8EncodingForm" + m_Wrappers "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers" + m__System "github.com/dafny-lang/DafnyRuntimeGo/v4/System_" + _dafny "github.com/dafny-lang/DafnyRuntimeGo/v4/dafny" +) + +var _ = os.Args +var _ _dafny.Dummy__ +var _ m__System.Dummy__ +var _ m_Wrappers.Dummy__ +var _ m_BoundedInts.Dummy__ +var _ m_StandardLibrary_UInt.Dummy__ +var _ m_StandardLibrary_Sequence.Dummy__ +var _ m_StandardLibrary_String.Dummy__ +var _ m_StandardLibrary.Dummy__ +var _ m_AwsCryptographyPrimitivesTypes.Dummy__ +var _ m_Random.Dummy__ +var _ m_Digest.Dummy__ +var _ m_WrappedHMAC.Dummy__ +var _ m_HKDF.Dummy__ +var _ m_WrappedHKDF.Dummy__ +var _ m_KdfCtr.Dummy__ +var _ m_AwsCryptographyPrimitivesOperations.Dummy__ +var _ m_AtomicPrimitives.Dummy__ +var _ m_ComAmazonawsDynamodbTypes.Dummy__ +var _ m_ComAmazonawsKmsTypes.Dummy__ +var _ m_Relations.Dummy__ +var _ m_Seq_MergeSort.Dummy__ +var _ m__Math.Dummy__ +var _ m_Seq.Dummy__ +var _ m__Unicode.Dummy__ +var _ m_Functions.Dummy__ +var _ m_Utf8EncodingForm.Dummy__ +var _ m_Utf16EncodingForm.Dummy__ +var _ m_UnicodeStrings.Dummy__ +var _ m_FileIO.Dummy__ +var _ m_GeneralInternals.Dummy__ +var _ m_MulInternalsNonlinear.Dummy__ +var _ m_MulInternals.Dummy__ +var _ m_Mul.Dummy__ +var _ m_ModInternalsNonlinear.Dummy__ +var _ m_DivInternalsNonlinear.Dummy__ +var _ m_ModInternals.Dummy__ +var _ m_DivInternals.Dummy__ +var _ m_DivMod.Dummy__ +var _ m_Power.Dummy__ +var _ m_Logarithm.Dummy__ +var _ m_StandardLibraryInterop.Dummy__ +var _ m_Streams.Dummy__ +var _ m_Sorting.Dummy__ +var _ m_HexStrings.Dummy__ +var _ m_GetOpt.Dummy__ +var _ m_FloatCompare.Dummy__ +var _ m_Base64.Dummy__ +var _ m_Base64Lemmas.Dummy__ +var _ m_Actions.Dummy__ +var _ m_AwsCryptographyKeyStoreTypes.Dummy__ +var _ m_AwsCryptographyMaterialProvidersTypes.Dummy__ +var _ m_AwsArnParsing.Dummy__ +var _ m_AwsKmsMrkMatchForDecrypt.Dummy__ +var _ m_AwsKmsUtils.Dummy__ +var _ m_KeyStoreErrorMessages.Dummy__ +var _ m_KmsArn.Dummy__ +var _ m_Structure.Dummy__ +var _ m_KMSKeystoreOperations.Dummy__ +var _ m_DDBKeystoreOperations.Dummy__ +var _ m_CreateKeys.Dummy__ +var _ m_CreateKeyStoreTable.Dummy__ +var _ m_GetKeys.Dummy__ +var _ m_AwsCryptographyKeyStoreOperations.Dummy__ +var _ m_Com_Amazonaws_Kms.Dummy__ +var _ m_Com_Amazonaws_Dynamodb.Dummy__ +var _ m_KeyStore.Dummy__ +var _ m_AlgorithmSuites.Dummy__ +var _ m_Materials.Dummy__ +var _ m_Keyring.Dummy__ +var _ m_MultiKeyring.Dummy__ +var _ m_AwsKmsMrkAreUnique.Dummy__ +var _ m_Constants.Dummy__ +var _ m_MaterialWrapping.Dummy__ +var _ m_CanonicalEncryptionContext.Dummy__ +var _ m_IntermediateKeyWrapping.Dummy__ +var _ m_EdkWrapping.Dummy__ +var _ m_ErrorMessages.Dummy__ +var _ m_AwsKmsKeyring.Dummy__ +var _ m_StrictMultiKeyring.Dummy__ +var _ m_AwsKmsDiscoveryKeyring.Dummy__ +var _ m_DiscoveryMultiKeyring.Dummy__ +var _ m_AwsKmsMrkDiscoveryKeyring.Dummy__ +var _ m_MrkAwareDiscoveryMultiKeyring.Dummy__ +var _ m_AwsKmsMrkKeyring.Dummy__ +var _ m_MrkAwareStrictMultiKeyring.Dummy__ +var _ m_LocalCMC.Dummy__ +var _ m_SynchronizedLocalCMC.Dummy__ +var _ m_StormTracker.Dummy__ +var _ m_StormTrackingCMC.Dummy__ +var _ m_CacheConstants.Dummy__ +var _ m_AwsKmsHierarchicalKeyring.Dummy__ +var _ m_AwsKmsRsaKeyring.Dummy__ +var _ m_EcdhEdkWrapping.Dummy__ +var _ m_RawECDHKeyring.Dummy__ +var _ m_AwsKmsEcdhKeyring.Dummy__ +var _ m_RawAESKeyring.Dummy__ +var _ m_RawRSAKeyring.Dummy__ +var _ m_CMM.Dummy__ +var _ m_Defaults.Dummy__ +var _ m_Commitment.Dummy__ +var _ m_DefaultCMM.Dummy__ +var _ m_DefaultClientSupplier.Dummy__ + +type Dummy__ struct{} + +// Definition of class Default__ +type Default__ struct { + dummy byte +} + +func New_Default___() *Default__ { + _this := Default__{} + + return &_this +} + +type CompanionStruct_Default___ struct { +} + +var Companion_Default___ = CompanionStruct_Default___{} + +func (_this *Default__) Equals(other *Default__) bool { + return _this == other +} + +func (_this *Default__) EqualsGeneric(x interface{}) bool { + other, ok := x.(*Default__) + return ok && _this.Equals(other) +} + +func (*Default__) String() string { + return "Utils.Default__" +} +func (_this *Default__) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = &Default__{} + +func (_static *CompanionStruct_Default___) GetPublicKey(curveSpec m_AwsCryptographyPrimitivesTypes.ECDHCurveSpec, privateKey m_AwsCryptographyPrimitivesTypes.ECCPrivateKey, crypto *m_AtomicPrimitives.AtomicPrimitivesClient) m_Wrappers.Result { + var res m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = res + var _0_maybePublicKey m_Wrappers.Result + _ = _0_maybePublicKey + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = (crypto).GetPublicKeyFromPrivateKey(m_AwsCryptographyPrimitivesTypes.Companion_GetPublicKeyFromPrivateKeyInput_.Create_GetPublicKeyFromPrivateKeyInput_(curveSpec, privateKey)) + _0_maybePublicKey = _out0 + var _1_valueOrError0 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_AwsCryptographyPrimitivesTypes.Companion_GetPublicKeyFromPrivateKeyOutput_.Default()) + _ = _1_valueOrError0 + _1_valueOrError0 = (_0_maybePublicKey).MapFailure(func(coer131 func(m_AwsCryptographyPrimitivesTypes.Error) m_AwsCryptographyMaterialProvidersTypes.Error) func(interface{}) interface{} { + return func(arg132 interface{}) interface{} { + return coer131(arg132.(m_AwsCryptographyPrimitivesTypes.Error)) + } + }(func(_2_e m_AwsCryptographyPrimitivesTypes.Error) m_AwsCryptographyMaterialProvidersTypes.Error { + return m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographyPrimitives_(_2_e) + })) + if (_1_valueOrError0).IsFailure() { + res = (_1_valueOrError0).PropagateFailure() + return res + } + var _3_keyPairOutput m_AwsCryptographyPrimitivesTypes.GetPublicKeyFromPrivateKeyOutput + _ = _3_keyPairOutput + _3_keyPairOutput = (_1_valueOrError0).Extract().(m_AwsCryptographyPrimitivesTypes.GetPublicKeyFromPrivateKeyOutput) + res = m_Wrappers.Companion_Result_.Create_Success_((_3_keyPairOutput).Dtor_publicKey()) + return res +} + +// End of class Default__ diff --git a/customer-preview/mpl/awscryptographykeystoresmithygenerated/api_client.go b/customer-preview/mpl/awscryptographykeystoresmithygenerated/api_client.go new file mode 100644 index 000000000..56e706732 --- /dev/null +++ b/customer-preview/mpl/awscryptographykeystoresmithygenerated/api_client.go @@ -0,0 +1,164 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package awscryptographykeystoresmithygenerated + +import ( + "context" + + "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreTypes" + "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/KeyStore" + "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/awscryptographykeystoresmithygeneratedtypes" +) + +type Client struct { + DafnyClient AwsCryptographyKeyStoreTypes.IKeyStoreClient +} + +func NewClient(clientConfig awscryptographykeystoresmithygeneratedtypes.KeyStoreConfig) (*Client, error) { + var dafnyConfig = KeyStoreConfig_ToDafny(clientConfig) + var dafny_response = KeyStore.Companion_Default___.KeyStore(dafnyConfig) + if dafny_response.Is_Failure() { + panic("Client construction failed. This should never happen") + } + var dafnyClient = dafny_response.Extract().(AwsCryptographyKeyStoreTypes.IKeyStoreClient) + client := &Client{dafnyClient} + return client, nil +} + +func (client *Client) GetKeyStoreInfo(ctx context.Context) (*awscryptographykeystoresmithygeneratedtypes.GetKeyStoreInfoOutput, error) { + + var dafny_response = client.DafnyClient.GetKeyStoreInfo() + if dafny_response.Is_Failure() { + err := dafny_response.Dtor_error().(AwsCryptographyKeyStoreTypes.Error) + return nil, Error_FromDafny(err) + } + var native_response = GetKeyStoreInfoOutput_FromDafny(dafny_response.Dtor_value().(AwsCryptographyKeyStoreTypes.GetKeyStoreInfoOutput)) + return &native_response, nil + +} + +func (client *Client) CreateKeyStore(ctx context.Context, params awscryptographykeystoresmithygeneratedtypes.CreateKeyStoreInput) (*awscryptographykeystoresmithygeneratedtypes.CreateKeyStoreOutput, error) { + err := params.Validate() + if err != nil { + opaqueErr := awscryptographykeystoresmithygeneratedtypes.OpaqueError{ + ErrObject: err, + } + return nil, opaqueErr + } + + var dafny_request AwsCryptographyKeyStoreTypes.CreateKeyStoreInput = CreateKeyStoreInput_ToDafny(params) + var dafny_response = client.DafnyClient.CreateKeyStore(dafny_request) + + if dafny_response.Is_Failure() { + err := dafny_response.Dtor_error().(AwsCryptographyKeyStoreTypes.Error) + return nil, Error_FromDafny(err) + } + var native_response = CreateKeyStoreOutput_FromDafny(dafny_response.Dtor_value().(AwsCryptographyKeyStoreTypes.CreateKeyStoreOutput)) + return &native_response, nil + +} + +func (client *Client) CreateKey(ctx context.Context, params awscryptographykeystoresmithygeneratedtypes.CreateKeyInput) (*awscryptographykeystoresmithygeneratedtypes.CreateKeyOutput, error) { + err := params.Validate() + if err != nil { + opaqueErr := awscryptographykeystoresmithygeneratedtypes.OpaqueError{ + ErrObject: err, + } + return nil, opaqueErr + } + + var dafny_request AwsCryptographyKeyStoreTypes.CreateKeyInput = CreateKeyInput_ToDafny(params) + var dafny_response = client.DafnyClient.CreateKey(dafny_request) + + if dafny_response.Is_Failure() { + err := dafny_response.Dtor_error().(AwsCryptographyKeyStoreTypes.Error) + return nil, Error_FromDafny(err) + } + var native_response = CreateKeyOutput_FromDafny(dafny_response.Dtor_value().(AwsCryptographyKeyStoreTypes.CreateKeyOutput)) + return &native_response, nil + +} + +func (client *Client) VersionKey(ctx context.Context, params awscryptographykeystoresmithygeneratedtypes.VersionKeyInput) (*awscryptographykeystoresmithygeneratedtypes.VersionKeyOutput, error) { + err := params.Validate() + if err != nil { + opaqueErr := awscryptographykeystoresmithygeneratedtypes.OpaqueError{ + ErrObject: err, + } + return nil, opaqueErr + } + + var dafny_request AwsCryptographyKeyStoreTypes.VersionKeyInput = VersionKeyInput_ToDafny(params) + var dafny_response = client.DafnyClient.VersionKey(dafny_request) + + if dafny_response.Is_Failure() { + err := dafny_response.Dtor_error().(AwsCryptographyKeyStoreTypes.Error) + return nil, Error_FromDafny(err) + } + var native_response = VersionKeyOutput_FromDafny(dafny_response.Dtor_value().(AwsCryptographyKeyStoreTypes.VersionKeyOutput)) + return &native_response, nil + +} + +func (client *Client) GetActiveBranchKey(ctx context.Context, params awscryptographykeystoresmithygeneratedtypes.GetActiveBranchKeyInput) (*awscryptographykeystoresmithygeneratedtypes.GetActiveBranchKeyOutput, error) { + err := params.Validate() + if err != nil { + opaqueErr := awscryptographykeystoresmithygeneratedtypes.OpaqueError{ + ErrObject: err, + } + return nil, opaqueErr + } + + var dafny_request AwsCryptographyKeyStoreTypes.GetActiveBranchKeyInput = GetActiveBranchKeyInput_ToDafny(params) + var dafny_response = client.DafnyClient.GetActiveBranchKey(dafny_request) + + if dafny_response.Is_Failure() { + err := dafny_response.Dtor_error().(AwsCryptographyKeyStoreTypes.Error) + return nil, Error_FromDafny(err) + } + var native_response = GetActiveBranchKeyOutput_FromDafny(dafny_response.Dtor_value().(AwsCryptographyKeyStoreTypes.GetActiveBranchKeyOutput)) + return &native_response, nil + +} + +func (client *Client) GetBranchKeyVersion(ctx context.Context, params awscryptographykeystoresmithygeneratedtypes.GetBranchKeyVersionInput) (*awscryptographykeystoresmithygeneratedtypes.GetBranchKeyVersionOutput, error) { + err := params.Validate() + if err != nil { + opaqueErr := awscryptographykeystoresmithygeneratedtypes.OpaqueError{ + ErrObject: err, + } + return nil, opaqueErr + } + + var dafny_request AwsCryptographyKeyStoreTypes.GetBranchKeyVersionInput = GetBranchKeyVersionInput_ToDafny(params) + var dafny_response = client.DafnyClient.GetBranchKeyVersion(dafny_request) + + if dafny_response.Is_Failure() { + err := dafny_response.Dtor_error().(AwsCryptographyKeyStoreTypes.Error) + return nil, Error_FromDafny(err) + } + var native_response = GetBranchKeyVersionOutput_FromDafny(dafny_response.Dtor_value().(AwsCryptographyKeyStoreTypes.GetBranchKeyVersionOutput)) + return &native_response, nil + +} + +func (client *Client) GetBeaconKey(ctx context.Context, params awscryptographykeystoresmithygeneratedtypes.GetBeaconKeyInput) (*awscryptographykeystoresmithygeneratedtypes.GetBeaconKeyOutput, error) { + err := params.Validate() + if err != nil { + opaqueErr := awscryptographykeystoresmithygeneratedtypes.OpaqueError{ + ErrObject: err, + } + return nil, opaqueErr + } + + var dafny_request AwsCryptographyKeyStoreTypes.GetBeaconKeyInput = GetBeaconKeyInput_ToDafny(params) + var dafny_response = client.DafnyClient.GetBeaconKey(dafny_request) + + if dafny_response.Is_Failure() { + err := dafny_response.Dtor_error().(AwsCryptographyKeyStoreTypes.Error) + return nil, Error_FromDafny(err) + } + var native_response = GetBeaconKeyOutput_FromDafny(dafny_response.Dtor_value().(AwsCryptographyKeyStoreTypes.GetBeaconKeyOutput)) + return &native_response, nil + +} diff --git a/customer-preview/mpl/awscryptographykeystoresmithygenerated/to_dafny.go b/customer-preview/mpl/awscryptographykeystoresmithygenerated/to_dafny.go new file mode 100644 index 000000000..b44cc7d75 --- /dev/null +++ b/customer-preview/mpl/awscryptographykeystoresmithygenerated/to_dafny.go @@ -0,0 +1,757 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package awscryptographykeystoresmithygenerated + +import ( + "unicode/utf8" + + "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/DynamoDBwrapped" + "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/comamazonawsdynamodbsmithygenerated" + "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/KMSwrapped" + "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/comamazonawskmssmithygenerated" + "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreTypes" + "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/awscryptographykeystoresmithygeneratedtypes" + "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-sdk-go-v2/service/dynamodb" + "github.com/aws/aws-sdk-go-v2/service/kms" + "github.com/aws/smithy-go" + "github.com/dafny-lang/DafnyRuntimeGo/v4/dafny" +) + +func CreateKeyInput_ToDafny(nativeInput awscryptographykeystoresmithygeneratedtypes.CreateKeyInput) AwsCryptographyKeyStoreTypes.CreateKeyInput { + + return func() AwsCryptographyKeyStoreTypes.CreateKeyInput { + + return AwsCryptographyKeyStoreTypes.Companion_CreateKeyInput_.Create_CreateKeyInput_(Aws_cryptography_keyStore_CreateKeyInput_branchKeyIdentifier_ToDafny(nativeInput.BranchKeyIdentifier), Aws_cryptography_keyStore_CreateKeyInput_encryptionContext_ToDafny(nativeInput.EncryptionContext)) + }() + +} + +func CreateKeyOutput_ToDafny(nativeOutput awscryptographykeystoresmithygeneratedtypes.CreateKeyOutput) AwsCryptographyKeyStoreTypes.CreateKeyOutput { + + return func() AwsCryptographyKeyStoreTypes.CreateKeyOutput { + + return AwsCryptographyKeyStoreTypes.Companion_CreateKeyOutput_.Create_CreateKeyOutput_(Aws_cryptography_keyStore_CreateKeyOutput_branchKeyIdentifier_ToDafny(nativeOutput.BranchKeyIdentifier)) + }() + +} + +func CreateKeyStoreInput_ToDafny(nativeInput awscryptographykeystoresmithygeneratedtypes.CreateKeyStoreInput) AwsCryptographyKeyStoreTypes.CreateKeyStoreInput { + + return func() AwsCryptographyKeyStoreTypes.CreateKeyStoreInput { + + return AwsCryptographyKeyStoreTypes.Companion_CreateKeyStoreInput_.Create_CreateKeyStoreInput_() + }() + +} + +func CreateKeyStoreOutput_ToDafny(nativeOutput awscryptographykeystoresmithygeneratedtypes.CreateKeyStoreOutput) AwsCryptographyKeyStoreTypes.CreateKeyStoreOutput { + + return func() AwsCryptographyKeyStoreTypes.CreateKeyStoreOutput { + + return AwsCryptographyKeyStoreTypes.Companion_CreateKeyStoreOutput_.Create_CreateKeyStoreOutput_(Aws_cryptography_keyStore_CreateKeyStoreOutput_tableArn_ToDafny(nativeOutput.TableArn)) + }() + +} + +func GetActiveBranchKeyInput_ToDafny(nativeInput awscryptographykeystoresmithygeneratedtypes.GetActiveBranchKeyInput) AwsCryptographyKeyStoreTypes.GetActiveBranchKeyInput { + + return func() AwsCryptographyKeyStoreTypes.GetActiveBranchKeyInput { + + return AwsCryptographyKeyStoreTypes.Companion_GetActiveBranchKeyInput_.Create_GetActiveBranchKeyInput_(Aws_cryptography_keyStore_GetActiveBranchKeyInput_branchKeyIdentifier_ToDafny(nativeInput.BranchKeyIdentifier)) + }() + +} + +func GetActiveBranchKeyOutput_ToDafny(nativeOutput awscryptographykeystoresmithygeneratedtypes.GetActiveBranchKeyOutput) AwsCryptographyKeyStoreTypes.GetActiveBranchKeyOutput { + + return func() AwsCryptographyKeyStoreTypes.GetActiveBranchKeyOutput { + + return AwsCryptographyKeyStoreTypes.Companion_GetActiveBranchKeyOutput_.Create_GetActiveBranchKeyOutput_(Aws_cryptography_keyStore_GetActiveBranchKeyOutput_branchKeyMaterials_ToDafny(nativeOutput.BranchKeyMaterials)) + }() + +} + +func GetBeaconKeyInput_ToDafny(nativeInput awscryptographykeystoresmithygeneratedtypes.GetBeaconKeyInput) AwsCryptographyKeyStoreTypes.GetBeaconKeyInput { + + return func() AwsCryptographyKeyStoreTypes.GetBeaconKeyInput { + + return AwsCryptographyKeyStoreTypes.Companion_GetBeaconKeyInput_.Create_GetBeaconKeyInput_(Aws_cryptography_keyStore_GetBeaconKeyInput_branchKeyIdentifier_ToDafny(nativeInput.BranchKeyIdentifier)) + }() + +} + +func GetBeaconKeyOutput_ToDafny(nativeOutput awscryptographykeystoresmithygeneratedtypes.GetBeaconKeyOutput) AwsCryptographyKeyStoreTypes.GetBeaconKeyOutput { + + return func() AwsCryptographyKeyStoreTypes.GetBeaconKeyOutput { + + return AwsCryptographyKeyStoreTypes.Companion_GetBeaconKeyOutput_.Create_GetBeaconKeyOutput_(Aws_cryptography_keyStore_GetBeaconKeyOutput_beaconKeyMaterials_ToDafny(nativeOutput.BeaconKeyMaterials)) + }() + +} + +func GetBranchKeyVersionInput_ToDafny(nativeInput awscryptographykeystoresmithygeneratedtypes.GetBranchKeyVersionInput) AwsCryptographyKeyStoreTypes.GetBranchKeyVersionInput { + + return func() AwsCryptographyKeyStoreTypes.GetBranchKeyVersionInput { + + return AwsCryptographyKeyStoreTypes.Companion_GetBranchKeyVersionInput_.Create_GetBranchKeyVersionInput_(Aws_cryptography_keyStore_GetBranchKeyVersionInput_branchKeyIdentifier_ToDafny(nativeInput.BranchKeyIdentifier), Aws_cryptography_keyStore_GetBranchKeyVersionInput_branchKeyVersion_ToDafny(nativeInput.BranchKeyVersion)) + }() + +} + +func GetBranchKeyVersionOutput_ToDafny(nativeOutput awscryptographykeystoresmithygeneratedtypes.GetBranchKeyVersionOutput) AwsCryptographyKeyStoreTypes.GetBranchKeyVersionOutput { + + return func() AwsCryptographyKeyStoreTypes.GetBranchKeyVersionOutput { + + return AwsCryptographyKeyStoreTypes.Companion_GetBranchKeyVersionOutput_.Create_GetBranchKeyVersionOutput_(Aws_cryptography_keyStore_GetBranchKeyVersionOutput_branchKeyMaterials_ToDafny(nativeOutput.BranchKeyMaterials)) + }() + +} + +func GetKeyStoreInfoOutput_ToDafny(nativeOutput awscryptographykeystoresmithygeneratedtypes.GetKeyStoreInfoOutput) AwsCryptographyKeyStoreTypes.GetKeyStoreInfoOutput { + + return func() AwsCryptographyKeyStoreTypes.GetKeyStoreInfoOutput { + + return AwsCryptographyKeyStoreTypes.Companion_GetKeyStoreInfoOutput_.Create_GetKeyStoreInfoOutput_(Aws_cryptography_keyStore_GetKeyStoreInfoOutput_keyStoreId_ToDafny(nativeOutput.KeyStoreId), Aws_cryptography_keyStore_GetKeyStoreInfoOutput_keyStoreName_ToDafny(nativeOutput.KeyStoreName), Aws_cryptography_keyStore_GetKeyStoreInfoOutput_logicalKeyStoreName_ToDafny(nativeOutput.LogicalKeyStoreName), Aws_cryptography_keyStore_GetKeyStoreInfoOutput_grantTokens_ToDafny(nativeOutput.GrantTokens), Aws_cryptography_keyStore_GetKeyStoreInfoOutput_kmsConfiguration_ToDafny(nativeOutput.KmsConfiguration)) + }() + +} + +func VersionKeyInput_ToDafny(nativeInput awscryptographykeystoresmithygeneratedtypes.VersionKeyInput) AwsCryptographyKeyStoreTypes.VersionKeyInput { + + return func() AwsCryptographyKeyStoreTypes.VersionKeyInput { + + return AwsCryptographyKeyStoreTypes.Companion_VersionKeyInput_.Create_VersionKeyInput_(Aws_cryptography_keyStore_VersionKeyInput_branchKeyIdentifier_ToDafny(nativeInput.BranchKeyIdentifier)) + }() + +} + +func VersionKeyOutput_ToDafny(nativeOutput awscryptographykeystoresmithygeneratedtypes.VersionKeyOutput) AwsCryptographyKeyStoreTypes.VersionKeyOutput { + + return func() AwsCryptographyKeyStoreTypes.VersionKeyOutput { + + return AwsCryptographyKeyStoreTypes.Companion_VersionKeyOutput_.Create_VersionKeyOutput_() + }() + +} + +func KeyStoreException_ToDafny(nativeInput awscryptographykeystoresmithygeneratedtypes.KeyStoreException) AwsCryptographyKeyStoreTypes.Error { + return func() AwsCryptographyKeyStoreTypes.Error { + + return AwsCryptographyKeyStoreTypes.Companion_Error_.Create_KeyStoreException_(Aws_cryptography_keyStore_KeyStoreException_message_ToDafny(nativeInput.Message)) + }() + +} + +func CollectionOfErrors_Input_ToDafny(nativeInput awscryptographykeystoresmithygeneratedtypes.CollectionOfErrors) AwsCryptographyKeyStoreTypes.Error { + var e []interface{} + for _, i2 := range nativeInput.ListOfErrors { + e = append(e, Error_ToDafny(i2)) + } + return AwsCryptographyKeyStoreTypes.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 awscryptographykeystoresmithygeneratedtypes.OpaqueError) AwsCryptographyKeyStoreTypes.Error { + return AwsCryptographyKeyStoreTypes.Companion_Error_.Create_Opaque_(nativeInput.ErrObject) +} + +func Error_ToDafny(err error) AwsCryptographyKeyStoreTypes.Error { + switch err.(type) { + // Service Errors + case awscryptographykeystoresmithygeneratedtypes.KeyStoreException: + return KeyStoreException_ToDafny(err.(awscryptographykeystoresmithygeneratedtypes.KeyStoreException)) + + //DependentErrors + case *smithy.OperationError: + if err.(*smithy.OperationError).Service() == "DynamoDB" { + DynamoDBError := comamazonawsdynamodbsmithygenerated.Error_ToDafny(err) + return AwsCryptographyKeyStoreTypes.Companion_Error_.Create_ComAmazonawsDynamodb_(DynamoDBError) + } + if err.(*smithy.OperationError).Service() == "KMS" { + KMSError := comamazonawskmssmithygenerated.Error_ToDafny(err) + return AwsCryptographyKeyStoreTypes.Companion_Error_.Create_ComAmazonawsKms_(KMSError) + } + return AwsCryptographyKeyStoreTypes.Companion_Error_.Create_Opaque_(err) + + case smithy.APIError: + DynamoDBError := comamazonawsdynamodbsmithygenerated.Error_ToDafny(err) + if !DynamoDBError.Is_OpaqueWithText() { + return AwsCryptographyKeyStoreTypes.Companion_Error_.Create_ComAmazonawsDynamodb_(DynamoDBError) + } + KMSError := comamazonawskmssmithygenerated.Error_ToDafny(err) + if !KMSError.Is_OpaqueWithText() { + return AwsCryptographyKeyStoreTypes.Companion_Error_.Create_ComAmazonawsKms_(KMSError) + } + return AwsCryptographyKeyStoreTypes.Companion_Error_.Create_Opaque_(err) + + //Unmodelled Errors + case awscryptographykeystoresmithygeneratedtypes.CollectionOfErrors: + return CollectionOfErrors_Input_ToDafny(err.(awscryptographykeystoresmithygeneratedtypes.CollectionOfErrors)) + + default: + error, ok := err.(awscryptographykeystoresmithygeneratedtypes.OpaqueError) + if !ok { + panic("Error is not an OpaqueError") + } + return OpaqueError_Input_ToDafny(error) + } +} + +func KeyStoreConfig_ToDafny(nativeInput awscryptographykeystoresmithygeneratedtypes.KeyStoreConfig) AwsCryptographyKeyStoreTypes.KeyStoreConfig { + return func() AwsCryptographyKeyStoreTypes.KeyStoreConfig { + + return AwsCryptographyKeyStoreTypes.Companion_KeyStoreConfig_.Create_KeyStoreConfig_(Aws_cryptography_keyStore_KeyStoreConfig_ddbTableName_ToDafny(nativeInput.DdbTableName), Aws_cryptography_keyStore_KeyStoreConfig_kmsConfiguration_ToDafny(nativeInput.KmsConfiguration), Aws_cryptography_keyStore_KeyStoreConfig_logicalKeyStoreName_ToDafny(nativeInput.LogicalKeyStoreName), Aws_cryptography_keyStore_KeyStoreConfig_id_ToDafny(nativeInput.Id), Aws_cryptography_keyStore_KeyStoreConfig_grantTokens_ToDafny(nativeInput.GrantTokens), Aws_cryptography_keyStore_KeyStoreConfig_ddbClient_ToDafny(nativeInput.DdbClient), Aws_cryptography_keyStore_KeyStoreConfig_kmsClient_ToDafny(nativeInput.KmsClient)) + }() + +} + +func Aws_cryptography_keyStore_CreateKeyInput_branchKeyIdentifier_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_keyStore_CreateKeyInput_encryptionContext_ToDafny(input map[string]string) Wrappers.Option { + return func() Wrappers.Option { + fieldValue := dafny.NewMapBuilder() + for key, val := range input { + fieldValue.Add(Aws_cryptography_keyStore_EncryptionContext_key_ToDafny(key), Aws_cryptography_keyStore_EncryptionContext_value_ToDafny(val)) + } + return Wrappers.Companion_Option_.Create_Some_(fieldValue.ToMap()) + }() +} + +func Aws_cryptography_keyStore_EncryptionContext_key_ToDafny(input string) dafny.Sequence { + return func() dafny.Sequence { + + return dafny.SeqOf(func() []interface{} { + if !utf8.ValidString(input) { + panic("invalid utf8 input provided") + } + b := []byte(input) + f := make([]interface{}, len(b)) + for i, v := range b { + f[i] = v + } + return f + }()...) + }() +} + +func Aws_cryptography_keyStore_EncryptionContext_value_ToDafny(input string) dafny.Sequence { + return func() dafny.Sequence { + + return dafny.SeqOf(func() []interface{} { + if !utf8.ValidString(input) { + panic("invalid utf8 input provided") + } + b := []byte(input) + f := make([]interface{}, len(b)) + for i, v := range b { + f[i] = v + } + return f + }()...) + }() +} + +func Aws_cryptography_keyStore_CreateKeyOutput_branchKeyIdentifier_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_keyStore_CreateKeyStoreOutput_tableArn_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_keyStore_GetActiveBranchKeyInput_branchKeyIdentifier_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_keyStore_GetActiveBranchKeyOutput_branchKeyMaterials_ToDafny(input awscryptographykeystoresmithygeneratedtypes.BranchKeyMaterials) AwsCryptographyKeyStoreTypes.BranchKeyMaterials { + return func() AwsCryptographyKeyStoreTypes.BranchKeyMaterials { + + return AwsCryptographyKeyStoreTypes.Companion_BranchKeyMaterials_.Create_BranchKeyMaterials_(Aws_cryptography_keyStore_BranchKeyMaterials_branchKeyIdentifier_ToDafny(input.BranchKeyIdentifier), Aws_cryptography_keyStore_BranchKeyMaterials_branchKeyVersion_ToDafny(input.BranchKeyVersion), Aws_cryptography_keyStore_BranchKeyMaterials_encryptionContext_ToDafny(input.EncryptionContext), Aws_cryptography_keyStore_BranchKeyMaterials_branchKey_ToDafny(input.BranchKey)) + }() +} + +func Aws_cryptography_keyStore_BranchKeyMaterials_branchKeyIdentifier_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_keyStore_BranchKeyMaterials_branchKeyVersion_ToDafny(input string) dafny.Sequence { + return func() dafny.Sequence { + + return dafny.SeqOf(func() []interface{} { + if !utf8.ValidString(input) { + panic("invalid utf8 input provided") + } + b := []byte(input) + f := make([]interface{}, len(b)) + for i, v := range b { + f[i] = v + } + return f + }()...) + }() +} + +func Aws_cryptography_keyStore_BranchKeyMaterials_encryptionContext_ToDafny(input map[string]string) dafny.Map { + return func() dafny.Map { + fieldValue := dafny.NewMapBuilder() + for key, val := range input { + fieldValue.Add(Aws_cryptography_keyStore_EncryptionContext_key_ToDafny(key), Aws_cryptography_keyStore_EncryptionContext_value_ToDafny(val)) + } + return fieldValue.ToMap() + }() +} + +func Aws_cryptography_keyStore_BranchKeyMaterials_branchKey_ToDafny(input []byte) dafny.Sequence { + return func() dafny.Sequence { + var v []interface{} + if input == nil { + return nil + } + for _, e := range input { + v = append(v, e) + } + return dafny.SeqOf(v...) + }() +} + +func Aws_cryptography_keyStore_GetBeaconKeyInput_branchKeyIdentifier_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_keyStore_GetBeaconKeyOutput_beaconKeyMaterials_ToDafny(input awscryptographykeystoresmithygeneratedtypes.BeaconKeyMaterials) AwsCryptographyKeyStoreTypes.BeaconKeyMaterials { + return func() AwsCryptographyKeyStoreTypes.BeaconKeyMaterials { + + return AwsCryptographyKeyStoreTypes.Companion_BeaconKeyMaterials_.Create_BeaconKeyMaterials_(Aws_cryptography_keyStore_BeaconKeyMaterials_beaconKeyIdentifier_ToDafny(input.BeaconKeyIdentifier), Aws_cryptography_keyStore_BeaconKeyMaterials_encryptionContext_ToDafny(input.EncryptionContext), Aws_cryptography_keyStore_BeaconKeyMaterials_beaconKey_ToDafny(input.BeaconKey), Aws_cryptography_keyStore_BeaconKeyMaterials_hmacKeys_ToDafny(input.HmacKeys)) + }() +} + +func Aws_cryptography_keyStore_BeaconKeyMaterials_beaconKeyIdentifier_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_keyStore_BeaconKeyMaterials_encryptionContext_ToDafny(input map[string]string) dafny.Map { + return func() dafny.Map { + fieldValue := dafny.NewMapBuilder() + for key, val := range input { + fieldValue.Add(Aws_cryptography_keyStore_EncryptionContext_key_ToDafny(key), Aws_cryptography_keyStore_EncryptionContext_value_ToDafny(val)) + } + return fieldValue.ToMap() + }() +} + +func Aws_cryptography_keyStore_BeaconKeyMaterials_beaconKey_ToDafny(input []byte) Wrappers.Option { + return func() Wrappers.Option { + var v []interface{} + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + for _, e := range input { + v = append(v, e) + } + return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(v...)) + }() +} + +func Aws_cryptography_keyStore_BeaconKeyMaterials_hmacKeys_ToDafny(input map[string][]byte) Wrappers.Option { + return func() Wrappers.Option { + fieldValue := dafny.NewMapBuilder() + for key, val := range input { + fieldValue.Add(Aws_cryptography_keyStore_HmacKeyMap_key_ToDafny(key), Aws_cryptography_keyStore_HmacKeyMap_value_ToDafny(val)) + } + return Wrappers.Companion_Option_.Create_Some_(fieldValue.ToMap()) + }() +} + +func Aws_cryptography_keyStore_HmacKeyMap_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_keyStore_HmacKeyMap_value_ToDafny(input []byte) dafny.Sequence { + return func() dafny.Sequence { + var v []interface{} + if input == nil { + return nil + } + for _, e := range input { + v = append(v, e) + } + return dafny.SeqOf(v...) + }() +} + +func Aws_cryptography_keyStore_GetBranchKeyVersionInput_branchKeyIdentifier_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_keyStore_GetBranchKeyVersionInput_branchKeyVersion_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_keyStore_GetBranchKeyVersionOutput_branchKeyMaterials_ToDafny(input awscryptographykeystoresmithygeneratedtypes.BranchKeyMaterials) AwsCryptographyKeyStoreTypes.BranchKeyMaterials { + return func() AwsCryptographyKeyStoreTypes.BranchKeyMaterials { + + return AwsCryptographyKeyStoreTypes.Companion_BranchKeyMaterials_.Create_BranchKeyMaterials_(Aws_cryptography_keyStore_BranchKeyMaterials_branchKeyIdentifier_ToDafny(input.BranchKeyIdentifier), Aws_cryptography_keyStore_BranchKeyMaterials_branchKeyVersion_ToDafny(input.BranchKeyVersion), Aws_cryptography_keyStore_BranchKeyMaterials_encryptionContext_ToDafny(input.EncryptionContext), Aws_cryptography_keyStore_BranchKeyMaterials_branchKey_ToDafny(input.BranchKey)) + }() +} + +func Aws_cryptography_keyStore_GetKeyStoreInfoOutput_keyStoreId_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_keyStore_GetKeyStoreInfoOutput_keyStoreName_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_keyStore_GetKeyStoreInfoOutput_logicalKeyStoreName_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_keyStore_GetKeyStoreInfoOutput_grantTokens_ToDafny(input []string) dafny.Sequence { + return func() dafny.Sequence { + + var fieldValue []interface{} = make([]interface{}, 0) + for _, val := range input { + element := Aws_cryptography_keyStore_GrantTokenList_member_ToDafny(val) + fieldValue = append(fieldValue, element) + } + return dafny.SeqOf(fieldValue...) + }() +} + +func Aws_cryptography_keyStore_GrantTokenList_member_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_keyStore_GetKeyStoreInfoOutput_kmsConfiguration_ToDafny(input awscryptographykeystoresmithygeneratedtypes.KMSConfiguration) AwsCryptographyKeyStoreTypes.KMSConfiguration { + return func() AwsCryptographyKeyStoreTypes.KMSConfiguration { + + switch input.(type) { + case *awscryptographykeystoresmithygeneratedtypes.KMSConfigurationMemberkmsKeyArn: + var inputToConversion = Aws_cryptography_keyStore_KMSConfiguration_kmsKeyArn_ToDafny(input.(*awscryptographykeystoresmithygeneratedtypes.KMSConfigurationMemberkmsKeyArn).Value) + return AwsCryptographyKeyStoreTypes.CompanionStruct_KMSConfiguration_{}.Create_kmsKeyArn_(inputToConversion.UnwrapOr(nil).(dafny.Sequence)) + case *awscryptographykeystoresmithygeneratedtypes.KMSConfigurationMemberkmsMRKeyArn: + var inputToConversion = Aws_cryptography_keyStore_KMSConfiguration_kmsMRKeyArn_ToDafny(input.(*awscryptographykeystoresmithygeneratedtypes.KMSConfigurationMemberkmsMRKeyArn).Value) + return AwsCryptographyKeyStoreTypes.CompanionStruct_KMSConfiguration_{}.Create_kmsMRKeyArn_(inputToConversion.UnwrapOr(nil).(dafny.Sequence)) + case *awscryptographykeystoresmithygeneratedtypes.KMSConfigurationMemberdiscovery: + var inputToConversion = Aws_cryptography_keyStore_KMSConfiguration_discovery_ToDafny(input.(*awscryptographykeystoresmithygeneratedtypes.KMSConfigurationMemberdiscovery).Value) + return AwsCryptographyKeyStoreTypes.CompanionStruct_KMSConfiguration_{}.Create_discovery_(inputToConversion.UnwrapOr(nil).(AwsCryptographyKeyStoreTypes.Discovery)) + case *awscryptographykeystoresmithygeneratedtypes.KMSConfigurationMembermrDiscovery: + var inputToConversion = Aws_cryptography_keyStore_KMSConfiguration_mrDiscovery_ToDafny(input.(*awscryptographykeystoresmithygeneratedtypes.KMSConfigurationMembermrDiscovery).Value) + return AwsCryptographyKeyStoreTypes.CompanionStruct_KMSConfiguration_{}.Create_mrDiscovery_(inputToConversion.UnwrapOr(nil).(AwsCryptographyKeyStoreTypes.MRDiscovery)) + + default: + panic("Unhandled union type") + } + }() +} + +func Aws_cryptography_keyStore_KMSConfiguration_kmsKeyArn_ToDafny(input string) Wrappers.Option { + return func() Wrappers.Option { + + 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_keyStore_KMSConfiguration_kmsMRKeyArn_ToDafny(input string) Wrappers.Option { + return func() Wrappers.Option { + + 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_keyStore_KMSConfiguration_discovery_ToDafny(input awscryptographykeystoresmithygeneratedtypes.Discovery) Wrappers.Option { + return func() Wrappers.Option { + + return Wrappers.Companion_Option_.Create_Some_(AwsCryptographyKeyStoreTypes.Companion_Discovery_.Create_Discovery_()) + }() +} + +func Aws_cryptography_keyStore_KMSConfiguration_mrDiscovery_ToDafny(input awscryptographykeystoresmithygeneratedtypes.MRDiscovery) Wrappers.Option { + return func() Wrappers.Option { + + return Wrappers.Companion_Option_.Create_Some_(AwsCryptographyKeyStoreTypes.Companion_MRDiscovery_.Create_MRDiscovery_(Aws_cryptography_keyStore_MRDiscovery_region_ToDafny(input.Region))) + }() +} + +func Aws_cryptography_keyStore_MRDiscovery_region_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_keyStore_VersionKeyInput_branchKeyIdentifier_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_keyStore_KeyStoreException_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_keyStore_KeyStoreConfig_ddbTableName_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_keyStore_KeyStoreConfig_kmsConfiguration_ToDafny(input awscryptographykeystoresmithygeneratedtypes.KMSConfiguration) AwsCryptographyKeyStoreTypes.KMSConfiguration { + return func() AwsCryptographyKeyStoreTypes.KMSConfiguration { + + switch input.(type) { + case *awscryptographykeystoresmithygeneratedtypes.KMSConfigurationMemberkmsKeyArn: + var inputToConversion = Aws_cryptography_keyStore_KMSConfiguration_kmsKeyArn_ToDafny(input.(*awscryptographykeystoresmithygeneratedtypes.KMSConfigurationMemberkmsKeyArn).Value) + return AwsCryptographyKeyStoreTypes.CompanionStruct_KMSConfiguration_{}.Create_kmsKeyArn_(inputToConversion.UnwrapOr(nil).(dafny.Sequence)) + case *awscryptographykeystoresmithygeneratedtypes.KMSConfigurationMemberkmsMRKeyArn: + var inputToConversion = Aws_cryptography_keyStore_KMSConfiguration_kmsMRKeyArn_ToDafny(input.(*awscryptographykeystoresmithygeneratedtypes.KMSConfigurationMemberkmsMRKeyArn).Value) + return AwsCryptographyKeyStoreTypes.CompanionStruct_KMSConfiguration_{}.Create_kmsMRKeyArn_(inputToConversion.UnwrapOr(nil).(dafny.Sequence)) + case *awscryptographykeystoresmithygeneratedtypes.KMSConfigurationMemberdiscovery: + var inputToConversion = Aws_cryptography_keyStore_KMSConfiguration_discovery_ToDafny(input.(*awscryptographykeystoresmithygeneratedtypes.KMSConfigurationMemberdiscovery).Value) + return AwsCryptographyKeyStoreTypes.CompanionStruct_KMSConfiguration_{}.Create_discovery_(inputToConversion.UnwrapOr(nil).(AwsCryptographyKeyStoreTypes.Discovery)) + case *awscryptographykeystoresmithygeneratedtypes.KMSConfigurationMembermrDiscovery: + var inputToConversion = Aws_cryptography_keyStore_KMSConfiguration_mrDiscovery_ToDafny(input.(*awscryptographykeystoresmithygeneratedtypes.KMSConfigurationMembermrDiscovery).Value) + return AwsCryptographyKeyStoreTypes.CompanionStruct_KMSConfiguration_{}.Create_mrDiscovery_(inputToConversion.UnwrapOr(nil).(AwsCryptographyKeyStoreTypes.MRDiscovery)) + + default: + panic("Unhandled union type") + } + }() +} + +func Aws_cryptography_keyStore_KeyStoreConfig_logicalKeyStoreName_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_keyStore_KeyStoreConfig_id_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_keyStore_KeyStoreConfig_grantTokens_ToDafny(input []string) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + var fieldValue []interface{} = make([]interface{}, 0) + for _, val := range input { + element := Aws_cryptography_keyStore_GrantTokenList_member_ToDafny(val) + fieldValue = append(fieldValue, element) + } + return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(fieldValue...)) + }() +} + +func Aws_cryptography_keyStore_KeyStoreConfig_ddbClient_ToDafny(input *dynamodb.Client) Wrappers.Option { + return func() Wrappers.Option { + if (input) == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(&DynamoDBwrapped.Shim{Client: input}) + }() +} + +func Aws_cryptography_keyStore_KeyStoreConfig_kmsClient_ToDafny(input *kms.Client) Wrappers.Option { + return func() Wrappers.Option { + if (input) == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(&KMSwrapped.Shim{Client: input}) + }() +} diff --git a/customer-preview/mpl/awscryptographykeystoresmithygenerated/to_native.go b/customer-preview/mpl/awscryptographykeystoresmithygenerated/to_native.go new file mode 100644 index 000000000..9e4496be3 --- /dev/null +++ b/customer-preview/mpl/awscryptographykeystoresmithygenerated/to_native.go @@ -0,0 +1,646 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package awscryptographykeystoresmithygenerated + +import ( + "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/DynamoDBwrapped" + "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/comamazonawsdynamodbsmithygenerated" + "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/KMSwrapped" + "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/comamazonawskmssmithygenerated" + "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreTypes" + "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/awscryptographykeystoresmithygeneratedtypes" + "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-sdk-go-v2/service/dynamodb" + "github.com/aws/aws-sdk-go-v2/service/kms" + "github.com/dafny-lang/DafnyRuntimeGo/v4/dafny" +) + +func CreateKeyInput_FromDafny(dafnyInput AwsCryptographyKeyStoreTypes.CreateKeyInput) awscryptographykeystoresmithygeneratedtypes.CreateKeyInput { + + return awscryptographykeystoresmithygeneratedtypes.CreateKeyInput{BranchKeyIdentifier: Aws_cryptography_keyStore_CreateKeyInput_branchKeyIdentifier_FromDafny(dafnyInput.Dtor_branchKeyIdentifier().UnwrapOr(nil)), + EncryptionContext: Aws_cryptography_keyStore_CreateKeyInput_encryptionContext_FromDafny(dafnyInput.Dtor_encryptionContext().UnwrapOr(nil)), + } + +} + +func CreateKeyOutput_FromDafny(dafnyOutput AwsCryptographyKeyStoreTypes.CreateKeyOutput) awscryptographykeystoresmithygeneratedtypes.CreateKeyOutput { + + return awscryptographykeystoresmithygeneratedtypes.CreateKeyOutput{BranchKeyIdentifier: Aws_cryptography_keyStore_CreateKeyOutput_branchKeyIdentifier_FromDafny(dafnyOutput.Dtor_branchKeyIdentifier())} + +} + +func CreateKeyStoreInput_FromDafny(dafnyInput AwsCryptographyKeyStoreTypes.CreateKeyStoreInput) awscryptographykeystoresmithygeneratedtypes.CreateKeyStoreInput { + + return awscryptographykeystoresmithygeneratedtypes.CreateKeyStoreInput{} + +} + +func CreateKeyStoreOutput_FromDafny(dafnyOutput AwsCryptographyKeyStoreTypes.CreateKeyStoreOutput) awscryptographykeystoresmithygeneratedtypes.CreateKeyStoreOutput { + + return awscryptographykeystoresmithygeneratedtypes.CreateKeyStoreOutput{TableArn: Aws_cryptography_keyStore_CreateKeyStoreOutput_tableArn_FromDafny(dafnyOutput.Dtor_tableArn())} + +} + +func GetActiveBranchKeyInput_FromDafny(dafnyInput AwsCryptographyKeyStoreTypes.GetActiveBranchKeyInput) awscryptographykeystoresmithygeneratedtypes.GetActiveBranchKeyInput { + + return awscryptographykeystoresmithygeneratedtypes.GetActiveBranchKeyInput{BranchKeyIdentifier: Aws_cryptography_keyStore_GetActiveBranchKeyInput_branchKeyIdentifier_FromDafny(dafnyInput.Dtor_branchKeyIdentifier())} + +} + +func GetActiveBranchKeyOutput_FromDafny(dafnyOutput AwsCryptographyKeyStoreTypes.GetActiveBranchKeyOutput) awscryptographykeystoresmithygeneratedtypes.GetActiveBranchKeyOutput { + + return awscryptographykeystoresmithygeneratedtypes.GetActiveBranchKeyOutput{BranchKeyMaterials: Aws_cryptography_keyStore_GetActiveBranchKeyOutput_branchKeyMaterials_FromDafny(dafnyOutput.Dtor_branchKeyMaterials())} + +} + +func GetBeaconKeyInput_FromDafny(dafnyInput AwsCryptographyKeyStoreTypes.GetBeaconKeyInput) awscryptographykeystoresmithygeneratedtypes.GetBeaconKeyInput { + + return awscryptographykeystoresmithygeneratedtypes.GetBeaconKeyInput{BranchKeyIdentifier: Aws_cryptography_keyStore_GetBeaconKeyInput_branchKeyIdentifier_FromDafny(dafnyInput.Dtor_branchKeyIdentifier())} + +} + +func GetBeaconKeyOutput_FromDafny(dafnyOutput AwsCryptographyKeyStoreTypes.GetBeaconKeyOutput) awscryptographykeystoresmithygeneratedtypes.GetBeaconKeyOutput { + + return awscryptographykeystoresmithygeneratedtypes.GetBeaconKeyOutput{BeaconKeyMaterials: Aws_cryptography_keyStore_GetBeaconKeyOutput_beaconKeyMaterials_FromDafny(dafnyOutput.Dtor_beaconKeyMaterials())} + +} + +func GetBranchKeyVersionInput_FromDafny(dafnyInput AwsCryptographyKeyStoreTypes.GetBranchKeyVersionInput) awscryptographykeystoresmithygeneratedtypes.GetBranchKeyVersionInput { + + return awscryptographykeystoresmithygeneratedtypes.GetBranchKeyVersionInput{BranchKeyIdentifier: Aws_cryptography_keyStore_GetBranchKeyVersionInput_branchKeyIdentifier_FromDafny(dafnyInput.Dtor_branchKeyIdentifier()), + BranchKeyVersion: Aws_cryptography_keyStore_GetBranchKeyVersionInput_branchKeyVersion_FromDafny(dafnyInput.Dtor_branchKeyVersion()), + } + +} + +func GetBranchKeyVersionOutput_FromDafny(dafnyOutput AwsCryptographyKeyStoreTypes.GetBranchKeyVersionOutput) awscryptographykeystoresmithygeneratedtypes.GetBranchKeyVersionOutput { + + return awscryptographykeystoresmithygeneratedtypes.GetBranchKeyVersionOutput{BranchKeyMaterials: Aws_cryptography_keyStore_GetBranchKeyVersionOutput_branchKeyMaterials_FromDafny(dafnyOutput.Dtor_branchKeyMaterials())} + +} + +func GetKeyStoreInfoOutput_FromDafny(dafnyOutput AwsCryptographyKeyStoreTypes.GetKeyStoreInfoOutput) awscryptographykeystoresmithygeneratedtypes.GetKeyStoreInfoOutput { + + return awscryptographykeystoresmithygeneratedtypes.GetKeyStoreInfoOutput{KeyStoreId: Aws_cryptography_keyStore_GetKeyStoreInfoOutput_keyStoreId_FromDafny(dafnyOutput.Dtor_keyStoreId()), + KeyStoreName: Aws_cryptography_keyStore_GetKeyStoreInfoOutput_keyStoreName_FromDafny(dafnyOutput.Dtor_keyStoreName()), + LogicalKeyStoreName: Aws_cryptography_keyStore_GetKeyStoreInfoOutput_logicalKeyStoreName_FromDafny(dafnyOutput.Dtor_logicalKeyStoreName()), + GrantTokens: Aws_cryptography_keyStore_GetKeyStoreInfoOutput_grantTokens_FromDafny(dafnyOutput.Dtor_grantTokens()), + KmsConfiguration: Aws_cryptography_keyStore_GetKeyStoreInfoOutput_kmsConfiguration_FromDafny(dafnyOutput.Dtor_kmsConfiguration()), + } + +} + +func VersionKeyInput_FromDafny(dafnyInput AwsCryptographyKeyStoreTypes.VersionKeyInput) awscryptographykeystoresmithygeneratedtypes.VersionKeyInput { + + return awscryptographykeystoresmithygeneratedtypes.VersionKeyInput{BranchKeyIdentifier: Aws_cryptography_keyStore_VersionKeyInput_branchKeyIdentifier_FromDafny(dafnyInput.Dtor_branchKeyIdentifier())} + +} + +func VersionKeyOutput_FromDafny(dafnyOutput AwsCryptographyKeyStoreTypes.VersionKeyOutput) awscryptographykeystoresmithygeneratedtypes.VersionKeyOutput { + + return awscryptographykeystoresmithygeneratedtypes.VersionKeyOutput{} + +} + +func KeyStoreException_FromDafny(dafnyOutput AwsCryptographyKeyStoreTypes.Error) awscryptographykeystoresmithygeneratedtypes.KeyStoreException { + return awscryptographykeystoresmithygeneratedtypes.KeyStoreException{Message: Aws_cryptography_keyStore_KeyStoreException_message_FromDafny(dafnyOutput.Dtor_message())} + +} + +func CollectionOfErrors_Output_FromDafny(dafnyOutput AwsCryptographyKeyStoreTypes.Error) awscryptographykeystoresmithygeneratedtypes.CollectionOfErrors { + listOfErrors := dafnyOutput.Dtor_list() + message := dafnyOutput.Dtor_message() + t := awscryptographykeystoresmithygeneratedtypes.CollectionOfErrors{} + for i := dafny.Iterate(listOfErrors); ; { + val, ok := i() + if !ok { + break + } + err := val.(AwsCryptographyKeyStoreTypes.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 AwsCryptographyKeyStoreTypes.Error) awscryptographykeystoresmithygeneratedtypes.OpaqueError { + return awscryptographykeystoresmithygeneratedtypes.OpaqueError{ + ErrObject: dafnyOutput.Dtor_obj(), + } +} + +func Error_FromDafny(err AwsCryptographyKeyStoreTypes.Error) error { + // Service Errors + if err.Is_KeyStoreException() { + return KeyStoreException_FromDafny(err) + } + + //DependentErrors + if err.Is_ComAmazonawsDynamodb() { + return comamazonawsdynamodbsmithygenerated.Error_FromDafny(err.Dtor_ComAmazonawsDynamodb()) + } + + if err.Is_ComAmazonawsKms() { + return comamazonawskmssmithygenerated.Error_FromDafny(err.Dtor_ComAmazonawsKms()) + } + + //Unmodelled Errors + if err.Is_CollectionOfErrors() { + return CollectionOfErrors_Output_FromDafny(err) + } + + return OpaqueError_Output_FromDafny(err) +} + +func KeyStoreConfig_FromDafny(dafnyOutput AwsCryptographyKeyStoreTypes.KeyStoreConfig) awscryptographykeystoresmithygeneratedtypes.KeyStoreConfig { + return awscryptographykeystoresmithygeneratedtypes.KeyStoreConfig{DdbTableName: Aws_cryptography_keyStore_KeyStoreConfig_ddbTableName_FromDafny(dafnyOutput.Dtor_ddbTableName()), + KmsConfiguration: Aws_cryptography_keyStore_KeyStoreConfig_kmsConfiguration_FromDafny(dafnyOutput.Dtor_kmsConfiguration()), + LogicalKeyStoreName: Aws_cryptography_keyStore_KeyStoreConfig_logicalKeyStoreName_FromDafny(dafnyOutput.Dtor_logicalKeyStoreName()), + Id: Aws_cryptography_keyStore_KeyStoreConfig_id_FromDafny(dafnyOutput.Dtor_id().UnwrapOr(nil)), + GrantTokens: Aws_cryptography_keyStore_KeyStoreConfig_grantTokens_FromDafny(dafnyOutput.Dtor_grantTokens().UnwrapOr(nil)), + DdbClient: Aws_cryptography_keyStore_KeyStoreConfig_ddbClient_FromDafny(dafnyOutput.Dtor_ddbClient().UnwrapOr(nil)), + KmsClient: Aws_cryptography_keyStore_KeyStoreConfig_kmsClient_FromDafny(dafnyOutput.Dtor_kmsClient().UnwrapOr(nil)), + } + +} + +func Aws_cryptography_keyStore_CreateKeyInput_branchKeyIdentifier_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_keyStore_CreateKeyInput_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[Aws_cryptography_keyStore_EncryptionContext_key_FromDafny((*val.(dafny.Tuple).IndexInt(0)))] = Aws_cryptography_keyStore_EncryptionContext_value_FromDafny((*val.(dafny.Tuple).IndexInt(1))) + } + return m + +} +func Aws_cryptography_keyStore_EncryptionContext_key_FromDafny(input interface{}) string { + return func() string { + + // UTF bytes should be always converted from bytes to string in go + // Otherwise go treats the string as a unicode codepoint + + s := string(dafny.ToByteArray(input.(dafny.Sequence))) + + return s + }() +} +func Aws_cryptography_keyStore_EncryptionContext_value_FromDafny(input interface{}) string { + return func() string { + + // UTF bytes should be always converted from bytes to string in go + // Otherwise go treats the string as a unicode codepoint + + s := string(dafny.ToByteArray(input.(dafny.Sequence))) + + return s + }() +} +func Aws_cryptography_keyStore_CreateKeyOutput_branchKeyIdentifier_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_keyStore_CreateKeyStoreOutput_tableArn_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_keyStore_GetActiveBranchKeyInput_branchKeyIdentifier_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_keyStore_GetActiveBranchKeyOutput_branchKeyMaterials_FromDafny(input interface{}) awscryptographykeystoresmithygeneratedtypes.BranchKeyMaterials { + return awscryptographykeystoresmithygeneratedtypes.BranchKeyMaterials{BranchKeyIdentifier: Aws_cryptography_keyStore_BranchKeyMaterials_branchKeyIdentifier_FromDafny(input.(AwsCryptographyKeyStoreTypes.BranchKeyMaterials).Dtor_branchKeyIdentifier()), + BranchKeyVersion: Aws_cryptography_keyStore_BranchKeyMaterials_branchKeyVersion_FromDafny(input.(AwsCryptographyKeyStoreTypes.BranchKeyMaterials).Dtor_branchKeyVersion()), + EncryptionContext: Aws_cryptography_keyStore_BranchKeyMaterials_encryptionContext_FromDafny(input.(AwsCryptographyKeyStoreTypes.BranchKeyMaterials).Dtor_encryptionContext()), + BranchKey: Aws_cryptography_keyStore_BranchKeyMaterials_branchKey_FromDafny(input.(AwsCryptographyKeyStoreTypes.BranchKeyMaterials).Dtor_branchKey()), + } +} +func Aws_cryptography_keyStore_BranchKeyMaterials_branchKeyIdentifier_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_keyStore_BranchKeyMaterials_branchKeyVersion_FromDafny(input interface{}) string { + return func() string { + + // UTF bytes should be always converted from bytes to string in go + // Otherwise go treats the string as a unicode codepoint + + s := string(dafny.ToByteArray(input.(dafny.Sequence))) + + return s + }() +} +func Aws_cryptography_keyStore_BranchKeyMaterials_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[Aws_cryptography_keyStore_EncryptionContext_key_FromDafny((*val.(dafny.Tuple).IndexInt(0)))] = Aws_cryptography_keyStore_EncryptionContext_value_FromDafny((*val.(dafny.Tuple).IndexInt(1))) + } + return m + +} +func Aws_cryptography_keyStore_BranchKeyMaterials_branchKey_FromDafny(input interface{}) []byte { + return func() []byte { + b := []byte{} + if input == nil { + return nil + } + for i := dafny.Iterate(input); ; { + val, ok := i() + if !ok { + return b + } else { + b = append(b, val.(byte)) + } + } + }() +} +func Aws_cryptography_keyStore_GetBeaconKeyInput_branchKeyIdentifier_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_keyStore_GetBeaconKeyOutput_beaconKeyMaterials_FromDafny(input interface{}) awscryptographykeystoresmithygeneratedtypes.BeaconKeyMaterials { + return awscryptographykeystoresmithygeneratedtypes.BeaconKeyMaterials{BeaconKeyIdentifier: Aws_cryptography_keyStore_BeaconKeyMaterials_beaconKeyIdentifier_FromDafny(input.(AwsCryptographyKeyStoreTypes.BeaconKeyMaterials).Dtor_beaconKeyIdentifier()), + EncryptionContext: Aws_cryptography_keyStore_BeaconKeyMaterials_encryptionContext_FromDafny(input.(AwsCryptographyKeyStoreTypes.BeaconKeyMaterials).Dtor_encryptionContext()), + BeaconKey: Aws_cryptography_keyStore_BeaconKeyMaterials_beaconKey_FromDafny(input.(AwsCryptographyKeyStoreTypes.BeaconKeyMaterials).Dtor_beaconKey().UnwrapOr(nil)), + HmacKeys: Aws_cryptography_keyStore_BeaconKeyMaterials_hmacKeys_FromDafny(input.(AwsCryptographyKeyStoreTypes.BeaconKeyMaterials).Dtor_hmacKeys().UnwrapOr(nil)), + } +} +func Aws_cryptography_keyStore_BeaconKeyMaterials_beaconKeyIdentifier_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_keyStore_BeaconKeyMaterials_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[Aws_cryptography_keyStore_EncryptionContext_key_FromDafny((*val.(dafny.Tuple).IndexInt(0)))] = Aws_cryptography_keyStore_EncryptionContext_value_FromDafny((*val.(dafny.Tuple).IndexInt(1))) + } + return m + +} +func Aws_cryptography_keyStore_BeaconKeyMaterials_beaconKey_FromDafny(input interface{}) []byte { + return func() []byte { + b := []byte{} + if input == nil { + return nil + } + for i := dafny.Iterate(input); ; { + val, ok := i() + if !ok { + return b + } else { + b = append(b, val.(byte)) + } + } + }() +} +func Aws_cryptography_keyStore_BeaconKeyMaterials_hmacKeys_FromDafny(input interface{}) map[string][]byte { + var m map[string][]byte = make(map[string][]byte) + if input == nil { + return nil + } + for i := dafny.Iterate(input.(dafny.Map).Items()); ; { + val, ok := i() + if !ok { + break + } + m[Aws_cryptography_keyStore_HmacKeyMap_key_FromDafny((*val.(dafny.Tuple).IndexInt(0)))] = Aws_cryptography_keyStore_HmacKeyMap_value_FromDafny((*val.(dafny.Tuple).IndexInt(1))) + } + return m + +} +func Aws_cryptography_keyStore_HmacKeyMap_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_keyStore_HmacKeyMap_value_FromDafny(input interface{}) []byte { + return func() []byte { + b := []byte{} + if input == nil { + return nil + } + for i := dafny.Iterate(input); ; { + val, ok := i() + if !ok { + return b + } else { + b = append(b, val.(byte)) + } + } + }() +} +func Aws_cryptography_keyStore_GetBranchKeyVersionInput_branchKeyIdentifier_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_keyStore_GetBranchKeyVersionInput_branchKeyVersion_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_keyStore_GetBranchKeyVersionOutput_branchKeyMaterials_FromDafny(input interface{}) awscryptographykeystoresmithygeneratedtypes.BranchKeyMaterials { + return awscryptographykeystoresmithygeneratedtypes.BranchKeyMaterials{BranchKeyIdentifier: Aws_cryptography_keyStore_BranchKeyMaterials_branchKeyIdentifier_FromDafny(input.(AwsCryptographyKeyStoreTypes.BranchKeyMaterials).Dtor_branchKeyIdentifier()), + BranchKeyVersion: Aws_cryptography_keyStore_BranchKeyMaterials_branchKeyVersion_FromDafny(input.(AwsCryptographyKeyStoreTypes.BranchKeyMaterials).Dtor_branchKeyVersion()), + EncryptionContext: Aws_cryptography_keyStore_BranchKeyMaterials_encryptionContext_FromDafny(input.(AwsCryptographyKeyStoreTypes.BranchKeyMaterials).Dtor_encryptionContext()), + BranchKey: Aws_cryptography_keyStore_BranchKeyMaterials_branchKey_FromDafny(input.(AwsCryptographyKeyStoreTypes.BranchKeyMaterials).Dtor_branchKey()), + } +} +func Aws_cryptography_keyStore_GetKeyStoreInfoOutput_keyStoreId_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_keyStore_GetKeyStoreInfoOutput_keyStoreName_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_keyStore_GetKeyStoreInfoOutput_logicalKeyStoreName_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_keyStore_GetKeyStoreInfoOutput_grantTokens_FromDafny(input interface{}) []string { + fieldValue := make([]string, 0) + for i := dafny.Iterate(input.(dafny.Sequence)); ; { + val, ok := i() + if !ok { + break + } + fieldValue = append(fieldValue, Aws_cryptography_keyStore_GrantTokenList_member_FromDafny(val)) + } + return fieldValue +} +func Aws_cryptography_keyStore_GrantTokenList_member_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_keyStore_GetKeyStoreInfoOutput_kmsConfiguration_FromDafny(input interface{}) awscryptographykeystoresmithygeneratedtypes.KMSConfiguration { + var union awscryptographykeystoresmithygeneratedtypes.KMSConfiguration + + if (input.(AwsCryptographyKeyStoreTypes.KMSConfiguration)).Is_kmsKeyArn() { + var dataSource = Wrappers.Companion_Option_.Create_Some_((input.(AwsCryptographyKeyStoreTypes.KMSConfiguration)).Dtor_kmsKeyArn()) + union = &awscryptographykeystoresmithygeneratedtypes.KMSConfigurationMemberkmsKeyArn{ + Value: (Aws_cryptography_keyStore_KMSConfiguration_kmsKeyArn_FromDafny(dataSource.UnwrapOr(nil))), + } + } + if (input.(AwsCryptographyKeyStoreTypes.KMSConfiguration)).Is_kmsMRKeyArn() { + var dataSource = Wrappers.Companion_Option_.Create_Some_((input.(AwsCryptographyKeyStoreTypes.KMSConfiguration)).Dtor_kmsMRKeyArn()) + union = &awscryptographykeystoresmithygeneratedtypes.KMSConfigurationMemberkmsMRKeyArn{ + Value: (Aws_cryptography_keyStore_KMSConfiguration_kmsMRKeyArn_FromDafny(dataSource.UnwrapOr(nil))), + } + } + if (input.(AwsCryptographyKeyStoreTypes.KMSConfiguration)).Is_discovery() { + + union = &awscryptographykeystoresmithygeneratedtypes.KMSConfigurationMemberdiscovery{ + Value: (Aws_cryptography_keyStore_KMSConfiguration_discovery_FromDafny((input.(AwsCryptographyKeyStoreTypes.KMSConfiguration)).Dtor_discovery())), + } + } + if (input.(AwsCryptographyKeyStoreTypes.KMSConfiguration)).Is_mrDiscovery() { + + union = &awscryptographykeystoresmithygeneratedtypes.KMSConfigurationMembermrDiscovery{ + Value: (Aws_cryptography_keyStore_KMSConfiguration_mrDiscovery_FromDafny((input.(AwsCryptographyKeyStoreTypes.KMSConfiguration)).Dtor_mrDiscovery())), + } + } + + return union + +} +func Aws_cryptography_keyStore_KMSConfiguration_kmsKeyArn_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_keyStore_KMSConfiguration_kmsMRKeyArn_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_keyStore_KMSConfiguration_discovery_FromDafny(input interface{}) awscryptographykeystoresmithygeneratedtypes.Discovery { + return awscryptographykeystoresmithygeneratedtypes.Discovery{} +} +func Aws_cryptography_keyStore_KMSConfiguration_mrDiscovery_FromDafny(input interface{}) awscryptographykeystoresmithygeneratedtypes.MRDiscovery { + return awscryptographykeystoresmithygeneratedtypes.MRDiscovery{Region: Aws_cryptography_keyStore_MRDiscovery_region_FromDafny(input.(AwsCryptographyKeyStoreTypes.MRDiscovery).Dtor_region())} +} +func Aws_cryptography_keyStore_MRDiscovery_region_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_keyStore_VersionKeyInput_branchKeyIdentifier_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_keyStore_KeyStoreException_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_keyStore_KeyStoreConfig_ddbTableName_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_keyStore_KeyStoreConfig_kmsConfiguration_FromDafny(input interface{}) awscryptographykeystoresmithygeneratedtypes.KMSConfiguration { + var union awscryptographykeystoresmithygeneratedtypes.KMSConfiguration + + if (input.(AwsCryptographyKeyStoreTypes.KMSConfiguration)).Is_kmsKeyArn() { + var dataSource = Wrappers.Companion_Option_.Create_Some_((input.(AwsCryptographyKeyStoreTypes.KMSConfiguration)).Dtor_kmsKeyArn()) + union = &awscryptographykeystoresmithygeneratedtypes.KMSConfigurationMemberkmsKeyArn{ + Value: (Aws_cryptography_keyStore_KMSConfiguration_kmsKeyArn_FromDafny(dataSource.UnwrapOr(nil))), + } + } + if (input.(AwsCryptographyKeyStoreTypes.KMSConfiguration)).Is_kmsMRKeyArn() { + var dataSource = Wrappers.Companion_Option_.Create_Some_((input.(AwsCryptographyKeyStoreTypes.KMSConfiguration)).Dtor_kmsMRKeyArn()) + union = &awscryptographykeystoresmithygeneratedtypes.KMSConfigurationMemberkmsMRKeyArn{ + Value: (Aws_cryptography_keyStore_KMSConfiguration_kmsMRKeyArn_FromDafny(dataSource.UnwrapOr(nil))), + } + } + if (input.(AwsCryptographyKeyStoreTypes.KMSConfiguration)).Is_discovery() { + + union = &awscryptographykeystoresmithygeneratedtypes.KMSConfigurationMemberdiscovery{ + Value: (Aws_cryptography_keyStore_KMSConfiguration_discovery_FromDafny((input.(AwsCryptographyKeyStoreTypes.KMSConfiguration)).Dtor_discovery())), + } + } + if (input.(AwsCryptographyKeyStoreTypes.KMSConfiguration)).Is_mrDiscovery() { + + union = &awscryptographykeystoresmithygeneratedtypes.KMSConfigurationMembermrDiscovery{ + Value: (Aws_cryptography_keyStore_KMSConfiguration_mrDiscovery_FromDafny((input.(AwsCryptographyKeyStoreTypes.KMSConfiguration)).Dtor_mrDiscovery())), + } + } + + return union + +} +func Aws_cryptography_keyStore_KeyStoreConfig_logicalKeyStoreName_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_keyStore_KeyStoreConfig_id_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_keyStore_KeyStoreConfig_grantTokens_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, Aws_cryptography_keyStore_GrantTokenList_member_FromDafny(val)) + } + return fieldValue +} +func Aws_cryptography_keyStore_KeyStoreConfig_ddbClient_FromDafny(input interface{}) *dynamodb.Client { + shim, ok := input.(*DynamoDBwrapped.Shim) + if !ok { + panic("Not able to convert client to native") + } + return shim.Client + +} +func Aws_cryptography_keyStore_KeyStoreConfig_kmsClient_FromDafny(input interface{}) *kms.Client { + shim, ok := input.(*KMSwrapped.Shim) + if !ok { + panic("Not able to convert client to native") + } + return shim.Client + +} diff --git a/customer-preview/mpl/awscryptographykeystoresmithygeneratedtypes/errors.go b/customer-preview/mpl/awscryptographykeystoresmithygeneratedtypes/errors.go new file mode 100644 index 000000000..7753b7b83 --- /dev/null +++ b/customer-preview/mpl/awscryptographykeystoresmithygeneratedtypes/errors.go @@ -0,0 +1,17 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package awscryptographykeystoresmithygeneratedtypes + +import ( + "fmt" +) + +type KeyStoreException struct { + KeyStoreBaseException + Message string + ErrorCodeOverride *string +} + +func (e KeyStoreException) Error() string { + return fmt.Sprintf("%s: %s", e.ErrorCodeOverride, e.Message) +} diff --git a/customer-preview/mpl/awscryptographykeystoresmithygeneratedtypes/types.go b/customer-preview/mpl/awscryptographykeystoresmithygeneratedtypes/types.go new file mode 100644 index 000000000..cd7be83ec --- /dev/null +++ b/customer-preview/mpl/awscryptographykeystoresmithygeneratedtypes/types.go @@ -0,0 +1,436 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package awscryptographykeystoresmithygeneratedtypes + +import ( + "fmt" + "unicode/utf8" + + "github.com/aws/aws-sdk-go-v2/service/dynamodb" + "github.com/aws/aws-sdk-go-v2/service/kms" +) + +type BeaconKeyMaterials struct { + BeaconKeyIdentifier string + + EncryptionContext map[string]string + + BeaconKey []byte + + HmacKeys map[string][]byte +} + +func (input BeaconKeyMaterials) Validate() error { + if input.EncryptionContext == nil { + return fmt.Errorf("input.EncryptionContext is required but has a nil value.") + } + if input.Aws_cryptography_keyStore_BeaconKeyMaterials_encryptionContext_Validate() != nil { + return input.Aws_cryptography_keyStore_BeaconKeyMaterials_encryptionContext_Validate() + } + + return nil +} + +func (input BeaconKeyMaterials) Aws_cryptography_keyStore_BeaconKeyMaterials_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 BranchKeyMaterials struct { + BranchKey []byte + + BranchKeyIdentifier string + + BranchKeyVersion string + + EncryptionContext map[string]string +} + +func (input BranchKeyMaterials) Validate() error { + if !utf8.ValidString(input.BranchKeyVersion) { + return fmt.Errorf("Invalid UTF bytes %s ", input.BranchKeyVersion) + } + if input.EncryptionContext == nil { + return fmt.Errorf("input.EncryptionContext is required but has a nil value.") + } + if input.Aws_cryptography_keyStore_BranchKeyMaterials_encryptionContext_Validate() != nil { + return input.Aws_cryptography_keyStore_BranchKeyMaterials_encryptionContext_Validate() + } + + return nil +} + +func (input BranchKeyMaterials) Aws_cryptography_keyStore_BranchKeyMaterials_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 CreateKeyInput struct { + BranchKeyIdentifier *string + + EncryptionContext map[string]string +} + +func (input CreateKeyInput) Validate() error { + if input.Aws_cryptography_keyStore_CreateKeyInput_encryptionContext_Validate() != nil { + return input.Aws_cryptography_keyStore_CreateKeyInput_encryptionContext_Validate() + } + + return nil +} + +func (input CreateKeyInput) Aws_cryptography_keyStore_CreateKeyInput_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 CreateKeyOutput struct { + BranchKeyIdentifier string +} + +func (input CreateKeyOutput) Validate() error { + + return nil +} + +type CreateKeyStoreInput struct { +} + +func (input CreateKeyStoreInput) Validate() error { + + return nil +} + +type CreateKeyStoreOutput struct { + TableArn string +} + +func (input CreateKeyStoreOutput) Validate() error { + if len(input.TableArn) < 1 { + return fmt.Errorf("TableArn has a minimum length of 1 but has the length of %d.", len(input.TableArn)) + } + if len(input.TableArn) > 1024 { + return fmt.Errorf("TableArn has a maximum length of 1024 but has the length of %d.", len(input.TableArn)) + } + + return nil +} + +type Discovery struct { +} + +func (input Discovery) Validate() error { + + return nil +} + +type GetActiveBranchKeyInput struct { + BranchKeyIdentifier string +} + +func (input GetActiveBranchKeyInput) Validate() error { + + return nil +} + +type GetActiveBranchKeyOutput struct { + BranchKeyMaterials BranchKeyMaterials +} + +func (input GetActiveBranchKeyOutput) Validate() error { + if input.BranchKeyMaterials.Validate() != nil { + return input.BranchKeyMaterials.Validate() + } + + return nil +} + +type GetBeaconKeyInput struct { + BranchKeyIdentifier string +} + +func (input GetBeaconKeyInput) Validate() error { + + return nil +} + +type GetBeaconKeyOutput struct { + BeaconKeyMaterials BeaconKeyMaterials +} + +func (input GetBeaconKeyOutput) Validate() error { + if input.BeaconKeyMaterials.Validate() != nil { + return input.BeaconKeyMaterials.Validate() + } + + return nil +} + +type GetBranchKeyVersionInput struct { + BranchKeyIdentifier string + + BranchKeyVersion string +} + +func (input GetBranchKeyVersionInput) Validate() error { + + return nil +} + +type GetBranchKeyVersionOutput struct { + BranchKeyMaterials BranchKeyMaterials +} + +func (input GetBranchKeyVersionOutput) Validate() error { + if input.BranchKeyMaterials.Validate() != nil { + return input.BranchKeyMaterials.Validate() + } + + return nil +} + +type MRDiscovery struct { + Region string +} + +func (input MRDiscovery) Validate() error { + if len(input.Region) < 1 { + return fmt.Errorf("RegionType has a minimum length of 1 but has the length of %d.", len(input.Region)) + } + if len(input.Region) > 32 { + return fmt.Errorf("RegionType has a maximum length of 32 but has the length of %d.", len(input.Region)) + } + + return nil +} + +type GetKeyStoreInfoOutput struct { + GrantTokens []string + + KeyStoreId string + + KeyStoreName string + + KmsConfiguration KMSConfiguration + + LogicalKeyStoreName string +} + +func (input GetKeyStoreInfoOutput) Validate() error { + if input.GrantTokens == nil { + return fmt.Errorf("input.GrantTokens is required but has a nil value.") + } + if len(input.KeyStoreName) < 3 { + return fmt.Errorf("TableName has a minimum length of 3 but has the length of %d.", len(input.KeyStoreName)) + } + if len(input.KeyStoreName) > 255 { + return fmt.Errorf("TableName has a maximum length of 255 but has the length of %d.", len(input.KeyStoreName)) + } + if input.KmsConfiguration == nil { + return fmt.Errorf("input.KmsConfiguration is required but has a nil value.") + } + if input.Aws_cryptography_keyStore_GetKeyStoreInfoOutput_kmsConfiguration_Validate() != nil { + return input.Aws_cryptography_keyStore_GetKeyStoreInfoOutput_kmsConfiguration_Validate() + } + + return nil +} + +func (input GetKeyStoreInfoOutput) Aws_cryptography_keyStore_GetKeyStoreInfoOutput_kmsConfiguration_Validate() error { + if input.KmsConfiguration == nil { + return nil + } + switch unionType := input.KmsConfiguration.(type) { + case *KMSConfigurationMemberkmsKeyArn: + if len(unionType.Value) < 1 { + return fmt.Errorf("KeyIdType has a minimum length of 1 but has the length of %d.", len(unionType.Value)) + } + if len(unionType.Value) > 2048 { + return fmt.Errorf("KeyIdType has a maximum length of 2048 but has the length of %d.", len(unionType.Value)) + } + case *KMSConfigurationMemberkmsMRKeyArn: + if len(unionType.Value) < 1 { + return fmt.Errorf("KeyIdType has a minimum length of 1 but has the length of %d.", len(unionType.Value)) + } + if len(unionType.Value) > 2048 { + return fmt.Errorf("KeyIdType has a maximum length of 2048 but has the length of %d.", len(unionType.Value)) + } + case *KMSConfigurationMemberdiscovery: + if unionType.Value.Validate() != nil { + return unionType.Value.Validate() + } + case *KMSConfigurationMembermrDiscovery: + 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 VersionKeyInput struct { + BranchKeyIdentifier string +} + +func (input VersionKeyInput) Validate() error { + + return nil +} + +type VersionKeyOutput struct { +} + +func (input VersionKeyOutput) Validate() error { + + return nil +} + +type DdbClientReference struct { +} + +func (input DdbClientReference) Validate() error { + + return nil +} + +type KmsClientReference struct { +} + +func (input KmsClientReference) Validate() error { + + return nil +} + +type KeyStoreConfig struct { + DdbTableName string + + KmsConfiguration KMSConfiguration + + LogicalKeyStoreName string + + DdbClient *dynamodb.Client + + GrantTokens []string + + Id *string + + KmsClient *kms.Client +} + +func (input KeyStoreConfig) Validate() error { + if len(input.DdbTableName) < 3 { + return fmt.Errorf("TableName has a minimum length of 3 but has the length of %d.", len(input.DdbTableName)) + } + if len(input.DdbTableName) > 255 { + return fmt.Errorf("TableName has a maximum length of 255 but has the length of %d.", len(input.DdbTableName)) + } + if input.KmsConfiguration == nil { + return fmt.Errorf("input.KmsConfiguration is required but has a nil value.") + } + if input.Aws_cryptography_keyStore_KeyStoreConfig_kmsConfiguration_Validate() != nil { + return input.Aws_cryptography_keyStore_KeyStoreConfig_kmsConfiguration_Validate() + } + + return nil +} + +func (input KeyStoreConfig) Aws_cryptography_keyStore_KeyStoreConfig_kmsConfiguration_Validate() error { + if input.KmsConfiguration == nil { + return nil + } + switch unionType := input.KmsConfiguration.(type) { + case *KMSConfigurationMemberkmsKeyArn: + if len(unionType.Value) < 1 { + return fmt.Errorf("KeyIdType has a minimum length of 1 but has the length of %d.", len(unionType.Value)) + } + if len(unionType.Value) > 2048 { + return fmt.Errorf("KeyIdType has a maximum length of 2048 but has the length of %d.", len(unionType.Value)) + } + case *KMSConfigurationMemberkmsMRKeyArn: + if len(unionType.Value) < 1 { + return fmt.Errorf("KeyIdType has a minimum length of 1 but has the length of %d.", len(unionType.Value)) + } + if len(unionType.Value) > 2048 { + return fmt.Errorf("KeyIdType has a maximum length of 2048 but has the length of %d.", len(unionType.Value)) + } + case *KMSConfigurationMemberdiscovery: + if unionType.Value.Validate() != nil { + return unionType.Value.Validate() + } + case *KMSConfigurationMembermrDiscovery: + 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 +} + +// KMSConfigurationMemberdiscovery +// KMSConfigurationMemberkmsKeyArn +// KMSConfigurationMemberkmsMRKeyArn +// KMSConfigurationMembermrDiscovery +type KMSConfiguration interface { + isKMSConfiguration() +} + +type KMSConfigurationMemberdiscovery struct { + Value Discovery +} + +func (*KMSConfigurationMemberdiscovery) isKMSConfiguration() {} + +type KMSConfigurationMemberkmsKeyArn struct { + Value string +} + +func (*KMSConfigurationMemberkmsKeyArn) isKMSConfiguration() {} + +type KMSConfigurationMemberkmsMRKeyArn struct { + Value string +} + +func (*KMSConfigurationMemberkmsMRKeyArn) isKMSConfiguration() {} + +type KMSConfigurationMembermrDiscovery struct { + Value MRDiscovery +} + +func (*KMSConfigurationMembermrDiscovery) isKMSConfiguration() {} + +type KeyStoreBaseException 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/customer-preview/mpl/awscryptographykeystoresmithygeneratedtypes/unmodelled_errors.go b/customer-preview/mpl/awscryptographykeystoresmithygeneratedtypes/unmodelled_errors.go new file mode 100644 index 000000000..6a297ad93 --- /dev/null +++ b/customer-preview/mpl/awscryptographykeystoresmithygeneratedtypes/unmodelled_errors.go @@ -0,0 +1,26 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package awscryptographykeystoresmithygeneratedtypes + +import ( + "fmt" +) + +type CollectionOfErrors struct { + KeyStoreBaseException + ListOfErrors []error + Message string +} + +func (e CollectionOfErrors) Error() string { + return fmt.Sprintf("message: %s\n err %v", e.Message, e.ListOfErrors) +} + +type OpaqueError struct { + KeyStoreBaseException + ErrObject interface{} +} + +func (e OpaqueError) Error() string { + return fmt.Sprintf("message: %v", e.ErrObject) +} diff --git a/customer-preview/mpl/awscryptographymaterialproviderssmithygenerated/BranchKeyIdSupplier.go b/customer-preview/mpl/awscryptographymaterialproviderssmithygenerated/BranchKeyIdSupplier.go new file mode 100644 index 000000000..c4f0ed18e --- /dev/null +++ b/customer-preview/mpl/awscryptographymaterialproviderssmithygenerated/BranchKeyIdSupplier.go @@ -0,0 +1,25 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package awscryptographymaterialproviderssmithygenerated + +import ( + "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersTypes" + "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/awscryptographymaterialproviderssmithygeneratedtypes" +) + +type BranchKeyIdSupplier struct { + Impl AwsCryptographyMaterialProvidersTypes.IBranchKeyIdSupplier +} + +func (this *BranchKeyIdSupplier) GetBranchKeyId(params awscryptographymaterialproviderssmithygeneratedtypes.GetBranchKeyIdInput) (*awscryptographymaterialproviderssmithygeneratedtypes.GetBranchKeyIdOutput, error) { + var dafny_request AwsCryptographyMaterialProvidersTypes.GetBranchKeyIdInput = GetBranchKeyIdInput_ToDafny(params) + var dafny_response = this.Impl.GetBranchKeyId(dafny_request) + + if dafny_response.Is_Failure() { + err := dafny_response.Dtor_error().(AwsCryptographyMaterialProvidersTypes.Error) + return nil, Error_FromDafny(err) + } + var native_response = GetBranchKeyIdOutput_FromDafny(dafny_response.Dtor_value().(AwsCryptographyMaterialProvidersTypes.GetBranchKeyIdOutput)) + return &native_response, nil + +} diff --git a/customer-preview/mpl/awscryptographymaterialproviderssmithygenerated/BranchKeyIdSupplierNativeWrapper.go b/customer-preview/mpl/awscryptographymaterialproviderssmithygenerated/BranchKeyIdSupplierNativeWrapper.go new file mode 100644 index 000000000..871667bb3 --- /dev/null +++ b/customer-preview/mpl/awscryptographymaterialproviderssmithygenerated/BranchKeyIdSupplierNativeWrapper.go @@ -0,0 +1,23 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package awscryptographymaterialproviderssmithygenerated + +import ( + "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersTypes" + "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/Wrappers" +) + +type BranchKeyIdSupplierNativeWrapper struct { + AwsCryptographyMaterialProvidersTypes.IBranchKeyIdSupplier + Impl awscryptographymaterialproviderssmithygeneratedtypes.IBranchKeyIdSupplier +} + +func (this *BranchKeyIdSupplierNativeWrapper) GetBranchKeyId(input AwsCryptographyMaterialProvidersTypes.GetBranchKeyIdInput) Wrappers.Result { + var native_request = GetBranchKeyIdInput_FromDafny(input) + var native_response, native_error = this.Impl.GetBranchKeyId(native_request) + if native_error != nil { + return Wrappers.Companion_Result_.Create_Failure_(Error_ToDafny(native_error)) + } + return Wrappers.Companion_Result_.Create_Success_(GetBranchKeyIdOutput_ToDafny(*native_response)) +} diff --git a/customer-preview/mpl/awscryptographymaterialproviderssmithygenerated/ClientSupplier.go b/customer-preview/mpl/awscryptographymaterialproviderssmithygenerated/ClientSupplier.go new file mode 100644 index 000000000..cbb9bd4e2 --- /dev/null +++ b/customer-preview/mpl/awscryptographymaterialproviderssmithygenerated/ClientSupplier.go @@ -0,0 +1,27 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package awscryptographymaterialproviderssmithygenerated + +import ( + "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersTypes" + "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/awscryptographymaterialproviderssmithygeneratedtypes" + "github.com/aws/aws-sdk-go-v2/service/kms" +) + +type ClientSupplier struct { + Impl AwsCryptographyMaterialProvidersTypes.IClientSupplier +} + +func (this *ClientSupplier) GetClient(params awscryptographymaterialproviderssmithygeneratedtypes.GetClientInput) (kms.Client, error) { + var dafny_request AwsCryptographyMaterialProvidersTypes.GetClientInput = GetClientInput_ToDafny(params) + var dafny_response = this.Impl.GetClient(dafny_request) + + if dafny_response.Is_Failure() { + err := dafny_response.Dtor_error().(AwsCryptographyMaterialProvidersTypes.Error) + var defaultVal kms.Client + return defaultVal, Error_FromDafny(err) + } + var native_response = Aws_cryptography_materialProviders_GetClientOutput_client_FromDafny(dafny_response.Dtor_value()) + return *native_response, nil + +} diff --git a/customer-preview/mpl/awscryptographymaterialproviderssmithygenerated/ClientSupplierNativeWrapper.go b/customer-preview/mpl/awscryptographymaterialproviderssmithygenerated/ClientSupplierNativeWrapper.go new file mode 100644 index 000000000..051546fcb --- /dev/null +++ b/customer-preview/mpl/awscryptographymaterialproviderssmithygenerated/ClientSupplierNativeWrapper.go @@ -0,0 +1,23 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package awscryptographymaterialproviderssmithygenerated + +import ( + "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersTypes" + "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/Wrappers" +) + +type ClientSupplierNativeWrapper struct { + AwsCryptographyMaterialProvidersTypes.IClientSupplier + Impl awscryptographymaterialproviderssmithygeneratedtypes.IClientSupplier +} + +func (this *ClientSupplierNativeWrapper) GetClient(input AwsCryptographyMaterialProvidersTypes.GetClientInput) Wrappers.Result { + var native_request = GetClientInput_FromDafny(input) + var native_response, native_error = this.Impl.GetClient(native_request) + if native_error != nil { + return Wrappers.Companion_Result_.Create_Failure_(Error_ToDafny(native_error)) + } + return Wrappers.Companion_Result_.Create_Success_(Aws_cryptography_materialProviders_GetClientOutput_client_ToDafny(&native_response)) +} diff --git a/customer-preview/mpl/awscryptographymaterialproviderssmithygenerated/CryptographicMaterialsCache.go b/customer-preview/mpl/awscryptographymaterialproviderssmithygenerated/CryptographicMaterialsCache.go new file mode 100644 index 000000000..db46a15f6 --- /dev/null +++ b/customer-preview/mpl/awscryptographymaterialproviderssmithygenerated/CryptographicMaterialsCache.go @@ -0,0 +1,58 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package awscryptographymaterialproviderssmithygenerated + +import ( + "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersTypes" + "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/awscryptographymaterialproviderssmithygeneratedtypes" +) + +type CryptographicMaterialsCache struct { + Impl AwsCryptographyMaterialProvidersTypes.ICryptographicMaterialsCache +} + +func (this *CryptographicMaterialsCache) PutCacheEntry(params awscryptographymaterialproviderssmithygeneratedtypes.PutCacheEntryInput) error { + var dafny_request AwsCryptographyMaterialProvidersTypes.PutCacheEntryInput = PutCacheEntryInput_ToDafny(params) + var dafny_response = this.Impl.PutCacheEntry(dafny_request) + + if dafny_response.Is_Failure() { + err := dafny_response.Dtor_error().(AwsCryptographyMaterialProvidersTypes.Error) + return Error_FromDafny(err) + } + return nil +} + +func (this *CryptographicMaterialsCache) GetCacheEntry(params awscryptographymaterialproviderssmithygeneratedtypes.GetCacheEntryInput) (*awscryptographymaterialproviderssmithygeneratedtypes.GetCacheEntryOutput, error) { + var dafny_request AwsCryptographyMaterialProvidersTypes.GetCacheEntryInput = GetCacheEntryInput_ToDafny(params) + var dafny_response = this.Impl.GetCacheEntry(dafny_request) + + if dafny_response.Is_Failure() { + err := dafny_response.Dtor_error().(AwsCryptographyMaterialProvidersTypes.Error) + return nil, Error_FromDafny(err) + } + var native_response = GetCacheEntryOutput_FromDafny(dafny_response.Dtor_value().(AwsCryptographyMaterialProvidersTypes.GetCacheEntryOutput)) + return &native_response, nil + +} + +func (this *CryptographicMaterialsCache) UpdateUsageMetadata(params awscryptographymaterialproviderssmithygeneratedtypes.UpdateUsageMetadataInput) error { + var dafny_request AwsCryptographyMaterialProvidersTypes.UpdateUsageMetadataInput = UpdateUsageMetadataInput_ToDafny(params) + var dafny_response = this.Impl.UpdateUsageMetadata(dafny_request) + + if dafny_response.Is_Failure() { + err := dafny_response.Dtor_error().(AwsCryptographyMaterialProvidersTypes.Error) + return Error_FromDafny(err) + } + return nil +} + +func (this *CryptographicMaterialsCache) DeleteCacheEntry(params awscryptographymaterialproviderssmithygeneratedtypes.DeleteCacheEntryInput) error { + var dafny_request AwsCryptographyMaterialProvidersTypes.DeleteCacheEntryInput = DeleteCacheEntryInput_ToDafny(params) + var dafny_response = this.Impl.DeleteCacheEntry(dafny_request) + + if dafny_response.Is_Failure() { + err := dafny_response.Dtor_error().(AwsCryptographyMaterialProvidersTypes.Error) + return Error_FromDafny(err) + } + return nil +} diff --git a/customer-preview/mpl/awscryptographymaterialproviderssmithygenerated/CryptographicMaterialsCacheNativeWrapper.go b/customer-preview/mpl/awscryptographymaterialproviderssmithygenerated/CryptographicMaterialsCacheNativeWrapper.go new file mode 100644 index 000000000..19374a413 --- /dev/null +++ b/customer-preview/mpl/awscryptographymaterialproviderssmithygenerated/CryptographicMaterialsCacheNativeWrapper.go @@ -0,0 +1,51 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package awscryptographymaterialproviderssmithygenerated + +import ( + "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersTypes" + "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/Wrappers" + "github.com/dafny-lang/DafnyRuntimeGo/v4/dafny" +) + +type CryptographicMaterialsCacheNativeWrapper struct { + AwsCryptographyMaterialProvidersTypes.ICryptographicMaterialsCache + Impl awscryptographymaterialproviderssmithygeneratedtypes.ICryptographicMaterialsCache +} + +func (this *CryptographicMaterialsCacheNativeWrapper) PutCacheEntry(input AwsCryptographyMaterialProvidersTypes.PutCacheEntryInput) Wrappers.Result { + var native_request = PutCacheEntryInput_FromDafny(input) + var native_error = this.Impl.PutCacheEntry(native_request) + if native_error != nil { + return Wrappers.Companion_Result_.Create_Failure_(Error_ToDafny(native_error)) + } + return Wrappers.Companion_Result_.Create_Success_(dafny.TupleOf()) +} + +func (this *CryptographicMaterialsCacheNativeWrapper) GetCacheEntry(input AwsCryptographyMaterialProvidersTypes.GetCacheEntryInput) Wrappers.Result { + var native_request = GetCacheEntryInput_FromDafny(input) + var native_response, native_error = this.Impl.GetCacheEntry(native_request) + if native_error != nil { + return Wrappers.Companion_Result_.Create_Failure_(Error_ToDafny(native_error)) + } + return Wrappers.Companion_Result_.Create_Success_(GetCacheEntryOutput_ToDafny(*native_response)) +} + +func (this *CryptographicMaterialsCacheNativeWrapper) UpdateUsageMetadata(input AwsCryptographyMaterialProvidersTypes.UpdateUsageMetadataInput) Wrappers.Result { + var native_request = UpdateUsageMetadataInput_FromDafny(input) + var native_error = this.Impl.UpdateUsageMetadata(native_request) + if native_error != nil { + return Wrappers.Companion_Result_.Create_Failure_(Error_ToDafny(native_error)) + } + return Wrappers.Companion_Result_.Create_Success_(dafny.TupleOf()) +} + +func (this *CryptographicMaterialsCacheNativeWrapper) DeleteCacheEntry(input AwsCryptographyMaterialProvidersTypes.DeleteCacheEntryInput) Wrappers.Result { + var native_request = DeleteCacheEntryInput_FromDafny(input) + var native_error = this.Impl.DeleteCacheEntry(native_request) + if native_error != nil { + return Wrappers.Companion_Result_.Create_Failure_(Error_ToDafny(native_error)) + } + return Wrappers.Companion_Result_.Create_Success_(dafny.TupleOf()) +} diff --git a/customer-preview/mpl/awscryptographymaterialproviderssmithygenerated/CryptographicMaterialsManager.go b/customer-preview/mpl/awscryptographymaterialproviderssmithygenerated/CryptographicMaterialsManager.go new file mode 100644 index 000000000..88926baf4 --- /dev/null +++ b/customer-preview/mpl/awscryptographymaterialproviderssmithygenerated/CryptographicMaterialsManager.go @@ -0,0 +1,38 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package awscryptographymaterialproviderssmithygenerated + +import ( + "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersTypes" + "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/awscryptographymaterialproviderssmithygeneratedtypes" +) + +type CryptographicMaterialsManager struct { + Impl AwsCryptographyMaterialProvidersTypes.ICryptographicMaterialsManager +} + +func (this *CryptographicMaterialsManager) GetEncryptionMaterials(params awscryptographymaterialproviderssmithygeneratedtypes.GetEncryptionMaterialsInput) (*awscryptographymaterialproviderssmithygeneratedtypes.GetEncryptionMaterialsOutput, error) { + var dafny_request AwsCryptographyMaterialProvidersTypes.GetEncryptionMaterialsInput = GetEncryptionMaterialsInput_ToDafny(params) + var dafny_response = this.Impl.GetEncryptionMaterials(dafny_request) + + if dafny_response.Is_Failure() { + err := dafny_response.Dtor_error().(AwsCryptographyMaterialProvidersTypes.Error) + return nil, Error_FromDafny(err) + } + var native_response = GetEncryptionMaterialsOutput_FromDafny(dafny_response.Dtor_value().(AwsCryptographyMaterialProvidersTypes.GetEncryptionMaterialsOutput)) + return &native_response, nil + +} + +func (this *CryptographicMaterialsManager) DecryptMaterials(params awscryptographymaterialproviderssmithygeneratedtypes.DecryptMaterialsInput) (*awscryptographymaterialproviderssmithygeneratedtypes.DecryptMaterialsOutput, error) { + var dafny_request AwsCryptographyMaterialProvidersTypes.DecryptMaterialsInput = DecryptMaterialsInput_ToDafny(params) + var dafny_response = this.Impl.DecryptMaterials(dafny_request) + + if dafny_response.Is_Failure() { + err := dafny_response.Dtor_error().(AwsCryptographyMaterialProvidersTypes.Error) + return nil, Error_FromDafny(err) + } + var native_response = DecryptMaterialsOutput_FromDafny(dafny_response.Dtor_value().(AwsCryptographyMaterialProvidersTypes.DecryptMaterialsOutput)) + return &native_response, nil + +} diff --git a/customer-preview/mpl/awscryptographymaterialproviderssmithygenerated/CryptographicMaterialsManagerNativeWrapper.go b/customer-preview/mpl/awscryptographymaterialproviderssmithygenerated/CryptographicMaterialsManagerNativeWrapper.go new file mode 100644 index 000000000..3d0faaa25 --- /dev/null +++ b/customer-preview/mpl/awscryptographymaterialproviderssmithygenerated/CryptographicMaterialsManagerNativeWrapper.go @@ -0,0 +1,32 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package awscryptographymaterialproviderssmithygenerated + +import ( + "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersTypes" + "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/Wrappers" +) + +type CryptographicMaterialsManagerNativeWrapper struct { + AwsCryptographyMaterialProvidersTypes.ICryptographicMaterialsManager + Impl awscryptographymaterialproviderssmithygeneratedtypes.ICryptographicMaterialsManager +} + +func (this *CryptographicMaterialsManagerNativeWrapper) GetEncryptionMaterials(input AwsCryptographyMaterialProvidersTypes.GetEncryptionMaterialsInput) Wrappers.Result { + var native_request = GetEncryptionMaterialsInput_FromDafny(input) + var native_response, native_error = this.Impl.GetEncryptionMaterials(native_request) + if native_error != nil { + return Wrappers.Companion_Result_.Create_Failure_(Error_ToDafny(native_error)) + } + return Wrappers.Companion_Result_.Create_Success_(GetEncryptionMaterialsOutput_ToDafny(*native_response)) +} + +func (this *CryptographicMaterialsManagerNativeWrapper) DecryptMaterials(input AwsCryptographyMaterialProvidersTypes.DecryptMaterialsInput) Wrappers.Result { + var native_request = DecryptMaterialsInput_FromDafny(input) + var native_response, native_error = this.Impl.DecryptMaterials(native_request) + if native_error != nil { + return Wrappers.Companion_Result_.Create_Failure_(Error_ToDafny(native_error)) + } + return Wrappers.Companion_Result_.Create_Success_(DecryptMaterialsOutput_ToDafny(*native_response)) +} diff --git a/customer-preview/mpl/awscryptographymaterialproviderssmithygenerated/Keyring.go b/customer-preview/mpl/awscryptographymaterialproviderssmithygenerated/Keyring.go new file mode 100644 index 000000000..dad41e289 --- /dev/null +++ b/customer-preview/mpl/awscryptographymaterialproviderssmithygenerated/Keyring.go @@ -0,0 +1,38 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package awscryptographymaterialproviderssmithygenerated + +import ( + "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersTypes" + "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/awscryptographymaterialproviderssmithygeneratedtypes" +) + +type Keyring struct { + Impl AwsCryptographyMaterialProvidersTypes.IKeyring +} + +func (this *Keyring) OnEncrypt(params awscryptographymaterialproviderssmithygeneratedtypes.OnEncryptInput) (*awscryptographymaterialproviderssmithygeneratedtypes.OnEncryptOutput, error) { + var dafny_request AwsCryptographyMaterialProvidersTypes.OnEncryptInput = OnEncryptInput_ToDafny(params) + var dafny_response = this.Impl.OnEncrypt(dafny_request) + + if dafny_response.Is_Failure() { + err := dafny_response.Dtor_error().(AwsCryptographyMaterialProvidersTypes.Error) + return nil, Error_FromDafny(err) + } + var native_response = OnEncryptOutput_FromDafny(dafny_response.Dtor_value().(AwsCryptographyMaterialProvidersTypes.OnEncryptOutput)) + return &native_response, nil + +} + +func (this *Keyring) OnDecrypt(params awscryptographymaterialproviderssmithygeneratedtypes.OnDecryptInput) (*awscryptographymaterialproviderssmithygeneratedtypes.OnDecryptOutput, error) { + var dafny_request AwsCryptographyMaterialProvidersTypes.OnDecryptInput = OnDecryptInput_ToDafny(params) + var dafny_response = this.Impl.OnDecrypt(dafny_request) + + if dafny_response.Is_Failure() { + err := dafny_response.Dtor_error().(AwsCryptographyMaterialProvidersTypes.Error) + return nil, Error_FromDafny(err) + } + var native_response = OnDecryptOutput_FromDafny(dafny_response.Dtor_value().(AwsCryptographyMaterialProvidersTypes.OnDecryptOutput)) + return &native_response, nil + +} diff --git a/customer-preview/mpl/awscryptographymaterialproviderssmithygenerated/KeyringNativeWrapper.go b/customer-preview/mpl/awscryptographymaterialproviderssmithygenerated/KeyringNativeWrapper.go new file mode 100644 index 000000000..a94369a82 --- /dev/null +++ b/customer-preview/mpl/awscryptographymaterialproviderssmithygenerated/KeyringNativeWrapper.go @@ -0,0 +1,32 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package awscryptographymaterialproviderssmithygenerated + +import ( + "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersTypes" + "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/Wrappers" +) + +type KeyringNativeWrapper struct { + AwsCryptographyMaterialProvidersTypes.IKeyring + Impl awscryptographymaterialproviderssmithygeneratedtypes.IKeyring +} + +func (this *KeyringNativeWrapper) OnEncrypt(input AwsCryptographyMaterialProvidersTypes.OnEncryptInput) Wrappers.Result { + var native_request = OnEncryptInput_FromDafny(input) + var native_response, native_error = this.Impl.OnEncrypt(native_request) + if native_error != nil { + return Wrappers.Companion_Result_.Create_Failure_(Error_ToDafny(native_error)) + } + return Wrappers.Companion_Result_.Create_Success_(OnEncryptOutput_ToDafny(*native_response)) +} + +func (this *KeyringNativeWrapper) OnDecrypt(input AwsCryptographyMaterialProvidersTypes.OnDecryptInput) Wrappers.Result { + var native_request = OnDecryptInput_FromDafny(input) + var native_response, native_error = this.Impl.OnDecrypt(native_request) + if native_error != nil { + return Wrappers.Companion_Result_.Create_Failure_(Error_ToDafny(native_error)) + } + return Wrappers.Companion_Result_.Create_Success_(OnDecryptOutput_ToDafny(*native_response)) +} diff --git a/customer-preview/mpl/awscryptographymaterialproviderssmithygenerated/api_client.go b/customer-preview/mpl/awscryptographymaterialproviderssmithygenerated/api_client.go new file mode 100644 index 000000000..46f7887a7 --- /dev/null +++ b/customer-preview/mpl/awscryptographymaterialproviderssmithygenerated/api_client.go @@ -0,0 +1,653 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package awscryptographymaterialproviderssmithygenerated + +import ( + "context" + + "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersTypes" + "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/MaterialProviders" + "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/awscryptographymaterialproviderssmithygeneratedtypes" + "github.com/dafny-lang/DafnyRuntimeGo/v4/dafny" +) + +type Client struct { + DafnyClient AwsCryptographyMaterialProvidersTypes.IAwsCryptographicMaterialProvidersClient +} + +func NewClient(clientConfig awscryptographymaterialproviderssmithygeneratedtypes.MaterialProvidersConfig) (*Client, error) { + var dafnyConfig = MaterialProvidersConfig_ToDafny(clientConfig) + var dafny_response = MaterialProviders.Companion_Default___.MaterialProviders(dafnyConfig) + if dafny_response.Is_Failure() { + panic("Client construction failed. This should never happen") + } + var dafnyClient = dafny_response.Extract().(AwsCryptographyMaterialProvidersTypes.IAwsCryptographicMaterialProvidersClient) + client := &Client{dafnyClient} + return client, nil +} + +func (client *Client) CreateAwsKmsKeyring(ctx context.Context, params awscryptographymaterialproviderssmithygeneratedtypes.CreateAwsKmsKeyringInput) (awscryptographymaterialproviderssmithygeneratedtypes.IKeyring, error) { + err := params.Validate() + if err != nil { + opaqueErr := awscryptographymaterialproviderssmithygeneratedtypes.OpaqueError{ + ErrObject: err, + } + var defaultVal awscryptographymaterialproviderssmithygeneratedtypes.IKeyring + return defaultVal, opaqueErr + } + + var dafny_request AwsCryptographyMaterialProvidersTypes.CreateAwsKmsKeyringInput = CreateAwsKmsKeyringInput_ToDafny(params) + var dafny_response = client.DafnyClient.CreateAwsKmsKeyring(dafny_request) + + if dafny_response.Is_Failure() { + err := dafny_response.Dtor_error().(AwsCryptographyMaterialProvidersTypes.Error) + var defaultVal awscryptographymaterialproviderssmithygeneratedtypes.IKeyring + return defaultVal, Error_FromDafny(err) + } + var native_response = Keyring_FromDafny(dafny_response.Dtor_value().(AwsCryptographyMaterialProvidersTypes.IKeyring)) + return native_response, nil + +} + +func (client *Client) CreateAwsKmsDiscoveryKeyring(ctx context.Context, params awscryptographymaterialproviderssmithygeneratedtypes.CreateAwsKmsDiscoveryKeyringInput) (awscryptographymaterialproviderssmithygeneratedtypes.IKeyring, error) { + err := params.Validate() + if err != nil { + opaqueErr := awscryptographymaterialproviderssmithygeneratedtypes.OpaqueError{ + ErrObject: err, + } + var defaultVal awscryptographymaterialproviderssmithygeneratedtypes.IKeyring + return defaultVal, opaqueErr + } + + var dafny_request AwsCryptographyMaterialProvidersTypes.CreateAwsKmsDiscoveryKeyringInput = CreateAwsKmsDiscoveryKeyringInput_ToDafny(params) + var dafny_response = client.DafnyClient.CreateAwsKmsDiscoveryKeyring(dafny_request) + + if dafny_response.Is_Failure() { + err := dafny_response.Dtor_error().(AwsCryptographyMaterialProvidersTypes.Error) + var defaultVal awscryptographymaterialproviderssmithygeneratedtypes.IKeyring + return defaultVal, Error_FromDafny(err) + } + var native_response = Keyring_FromDafny(dafny_response.Dtor_value().(AwsCryptographyMaterialProvidersTypes.IKeyring)) + return native_response, nil + +} + +func (client *Client) CreateAwsKmsMultiKeyring(ctx context.Context, params awscryptographymaterialproviderssmithygeneratedtypes.CreateAwsKmsMultiKeyringInput) (awscryptographymaterialproviderssmithygeneratedtypes.IKeyring, error) { + err := params.Validate() + if err != nil { + opaqueErr := awscryptographymaterialproviderssmithygeneratedtypes.OpaqueError{ + ErrObject: err, + } + var defaultVal awscryptographymaterialproviderssmithygeneratedtypes.IKeyring + return defaultVal, opaqueErr + } + + var dafny_request AwsCryptographyMaterialProvidersTypes.CreateAwsKmsMultiKeyringInput = CreateAwsKmsMultiKeyringInput_ToDafny(params) + var dafny_response = client.DafnyClient.CreateAwsKmsMultiKeyring(dafny_request) + + if dafny_response.Is_Failure() { + err := dafny_response.Dtor_error().(AwsCryptographyMaterialProvidersTypes.Error) + var defaultVal awscryptographymaterialproviderssmithygeneratedtypes.IKeyring + return defaultVal, Error_FromDafny(err) + } + var native_response = Keyring_FromDafny(dafny_response.Dtor_value().(AwsCryptographyMaterialProvidersTypes.IKeyring)) + return native_response, nil + +} + +func (client *Client) CreateAwsKmsDiscoveryMultiKeyring(ctx context.Context, params awscryptographymaterialproviderssmithygeneratedtypes.CreateAwsKmsDiscoveryMultiKeyringInput) (awscryptographymaterialproviderssmithygeneratedtypes.IKeyring, error) { + err := params.Validate() + if err != nil { + opaqueErr := awscryptographymaterialproviderssmithygeneratedtypes.OpaqueError{ + ErrObject: err, + } + var defaultVal awscryptographymaterialproviderssmithygeneratedtypes.IKeyring + return defaultVal, opaqueErr + } + + var dafny_request AwsCryptographyMaterialProvidersTypes.CreateAwsKmsDiscoveryMultiKeyringInput = CreateAwsKmsDiscoveryMultiKeyringInput_ToDafny(params) + var dafny_response = client.DafnyClient.CreateAwsKmsDiscoveryMultiKeyring(dafny_request) + + if dafny_response.Is_Failure() { + err := dafny_response.Dtor_error().(AwsCryptographyMaterialProvidersTypes.Error) + var defaultVal awscryptographymaterialproviderssmithygeneratedtypes.IKeyring + return defaultVal, Error_FromDafny(err) + } + var native_response = Keyring_FromDafny(dafny_response.Dtor_value().(AwsCryptographyMaterialProvidersTypes.IKeyring)) + return native_response, nil + +} + +func (client *Client) CreateAwsKmsMrkKeyring(ctx context.Context, params awscryptographymaterialproviderssmithygeneratedtypes.CreateAwsKmsMrkKeyringInput) (awscryptographymaterialproviderssmithygeneratedtypes.IKeyring, error) { + err := params.Validate() + if err != nil { + opaqueErr := awscryptographymaterialproviderssmithygeneratedtypes.OpaqueError{ + ErrObject: err, + } + var defaultVal awscryptographymaterialproviderssmithygeneratedtypes.IKeyring + return defaultVal, opaqueErr + } + + var dafny_request AwsCryptographyMaterialProvidersTypes.CreateAwsKmsMrkKeyringInput = CreateAwsKmsMrkKeyringInput_ToDafny(params) + var dafny_response = client.DafnyClient.CreateAwsKmsMrkKeyring(dafny_request) + + if dafny_response.Is_Failure() { + err := dafny_response.Dtor_error().(AwsCryptographyMaterialProvidersTypes.Error) + var defaultVal awscryptographymaterialproviderssmithygeneratedtypes.IKeyring + return defaultVal, Error_FromDafny(err) + } + var native_response = Keyring_FromDafny(dafny_response.Dtor_value().(AwsCryptographyMaterialProvidersTypes.IKeyring)) + return native_response, nil + +} + +func (client *Client) CreateAwsKmsMrkMultiKeyring(ctx context.Context, params awscryptographymaterialproviderssmithygeneratedtypes.CreateAwsKmsMrkMultiKeyringInput) (awscryptographymaterialproviderssmithygeneratedtypes.IKeyring, error) { + err := params.Validate() + if err != nil { + opaqueErr := awscryptographymaterialproviderssmithygeneratedtypes.OpaqueError{ + ErrObject: err, + } + var defaultVal awscryptographymaterialproviderssmithygeneratedtypes.IKeyring + return defaultVal, opaqueErr + } + + var dafny_request AwsCryptographyMaterialProvidersTypes.CreateAwsKmsMrkMultiKeyringInput = CreateAwsKmsMrkMultiKeyringInput_ToDafny(params) + var dafny_response = client.DafnyClient.CreateAwsKmsMrkMultiKeyring(dafny_request) + + if dafny_response.Is_Failure() { + err := dafny_response.Dtor_error().(AwsCryptographyMaterialProvidersTypes.Error) + var defaultVal awscryptographymaterialproviderssmithygeneratedtypes.IKeyring + return defaultVal, Error_FromDafny(err) + } + var native_response = Keyring_FromDafny(dafny_response.Dtor_value().(AwsCryptographyMaterialProvidersTypes.IKeyring)) + return native_response, nil + +} + +func (client *Client) CreateAwsKmsMrkDiscoveryKeyring(ctx context.Context, params awscryptographymaterialproviderssmithygeneratedtypes.CreateAwsKmsMrkDiscoveryKeyringInput) (awscryptographymaterialproviderssmithygeneratedtypes.IKeyring, error) { + err := params.Validate() + if err != nil { + opaqueErr := awscryptographymaterialproviderssmithygeneratedtypes.OpaqueError{ + ErrObject: err, + } + var defaultVal awscryptographymaterialproviderssmithygeneratedtypes.IKeyring + return defaultVal, opaqueErr + } + + var dafny_request AwsCryptographyMaterialProvidersTypes.CreateAwsKmsMrkDiscoveryKeyringInput = CreateAwsKmsMrkDiscoveryKeyringInput_ToDafny(params) + var dafny_response = client.DafnyClient.CreateAwsKmsMrkDiscoveryKeyring(dafny_request) + + if dafny_response.Is_Failure() { + err := dafny_response.Dtor_error().(AwsCryptographyMaterialProvidersTypes.Error) + var defaultVal awscryptographymaterialproviderssmithygeneratedtypes.IKeyring + return defaultVal, Error_FromDafny(err) + } + var native_response = Keyring_FromDafny(dafny_response.Dtor_value().(AwsCryptographyMaterialProvidersTypes.IKeyring)) + return native_response, nil + +} + +func (client *Client) CreateAwsKmsMrkDiscoveryMultiKeyring(ctx context.Context, params awscryptographymaterialproviderssmithygeneratedtypes.CreateAwsKmsMrkDiscoveryMultiKeyringInput) (awscryptographymaterialproviderssmithygeneratedtypes.IKeyring, error) { + err := params.Validate() + if err != nil { + opaqueErr := awscryptographymaterialproviderssmithygeneratedtypes.OpaqueError{ + ErrObject: err, + } + var defaultVal awscryptographymaterialproviderssmithygeneratedtypes.IKeyring + return defaultVal, opaqueErr + } + + var dafny_request AwsCryptographyMaterialProvidersTypes.CreateAwsKmsMrkDiscoveryMultiKeyringInput = CreateAwsKmsMrkDiscoveryMultiKeyringInput_ToDafny(params) + var dafny_response = client.DafnyClient.CreateAwsKmsMrkDiscoveryMultiKeyring(dafny_request) + + if dafny_response.Is_Failure() { + err := dafny_response.Dtor_error().(AwsCryptographyMaterialProvidersTypes.Error) + var defaultVal awscryptographymaterialproviderssmithygeneratedtypes.IKeyring + return defaultVal, Error_FromDafny(err) + } + var native_response = Keyring_FromDafny(dafny_response.Dtor_value().(AwsCryptographyMaterialProvidersTypes.IKeyring)) + return native_response, nil + +} + +func (client *Client) CreateAwsKmsHierarchicalKeyring(ctx context.Context, params awscryptographymaterialproviderssmithygeneratedtypes.CreateAwsKmsHierarchicalKeyringInput) (awscryptographymaterialproviderssmithygeneratedtypes.IKeyring, error) { + err := params.Validate() + if err != nil { + opaqueErr := awscryptographymaterialproviderssmithygeneratedtypes.OpaqueError{ + ErrObject: err, + } + var defaultVal awscryptographymaterialproviderssmithygeneratedtypes.IKeyring + return defaultVal, opaqueErr + } + + var dafny_request AwsCryptographyMaterialProvidersTypes.CreateAwsKmsHierarchicalKeyringInput = CreateAwsKmsHierarchicalKeyringInput_ToDafny(params) + var dafny_response = client.DafnyClient.CreateAwsKmsHierarchicalKeyring(dafny_request) + + if dafny_response.Is_Failure() { + err := dafny_response.Dtor_error().(AwsCryptographyMaterialProvidersTypes.Error) + var defaultVal awscryptographymaterialproviderssmithygeneratedtypes.IKeyring + return defaultVal, Error_FromDafny(err) + } + var native_response = Keyring_FromDafny(dafny_response.Dtor_value().(AwsCryptographyMaterialProvidersTypes.IKeyring)) + return native_response, nil + +} + +func (client *Client) CreateAwsKmsRsaKeyring(ctx context.Context, params awscryptographymaterialproviderssmithygeneratedtypes.CreateAwsKmsRsaKeyringInput) (awscryptographymaterialproviderssmithygeneratedtypes.IKeyring, error) { + err := params.Validate() + if err != nil { + opaqueErr := awscryptographymaterialproviderssmithygeneratedtypes.OpaqueError{ + ErrObject: err, + } + var defaultVal awscryptographymaterialproviderssmithygeneratedtypes.IKeyring + return defaultVal, opaqueErr + } + + var dafny_request AwsCryptographyMaterialProvidersTypes.CreateAwsKmsRsaKeyringInput = CreateAwsKmsRsaKeyringInput_ToDafny(params) + var dafny_response = client.DafnyClient.CreateAwsKmsRsaKeyring(dafny_request) + + if dafny_response.Is_Failure() { + err := dafny_response.Dtor_error().(AwsCryptographyMaterialProvidersTypes.Error) + var defaultVal awscryptographymaterialproviderssmithygeneratedtypes.IKeyring + return defaultVal, Error_FromDafny(err) + } + var native_response = Keyring_FromDafny(dafny_response.Dtor_value().(AwsCryptographyMaterialProvidersTypes.IKeyring)) + return native_response, nil + +} + +func (client *Client) CreateAwsKmsEcdhKeyring(ctx context.Context, params awscryptographymaterialproviderssmithygeneratedtypes.CreateAwsKmsEcdhKeyringInput) (awscryptographymaterialproviderssmithygeneratedtypes.IKeyring, error) { + err := params.Validate() + if err != nil { + opaqueErr := awscryptographymaterialproviderssmithygeneratedtypes.OpaqueError{ + ErrObject: err, + } + var defaultVal awscryptographymaterialproviderssmithygeneratedtypes.IKeyring + return defaultVal, opaqueErr + } + + var dafny_request AwsCryptographyMaterialProvidersTypes.CreateAwsKmsEcdhKeyringInput = CreateAwsKmsEcdhKeyringInput_ToDafny(params) + var dafny_response = client.DafnyClient.CreateAwsKmsEcdhKeyring(dafny_request) + + if dafny_response.Is_Failure() { + err := dafny_response.Dtor_error().(AwsCryptographyMaterialProvidersTypes.Error) + var defaultVal awscryptographymaterialproviderssmithygeneratedtypes.IKeyring + return defaultVal, Error_FromDafny(err) + } + var native_response = Keyring_FromDafny(dafny_response.Dtor_value().(AwsCryptographyMaterialProvidersTypes.IKeyring)) + return native_response, nil + +} + +func (client *Client) CreateMultiKeyring(ctx context.Context, params awscryptographymaterialproviderssmithygeneratedtypes.CreateMultiKeyringInput) (awscryptographymaterialproviderssmithygeneratedtypes.IKeyring, error) { + err := params.Validate() + if err != nil { + opaqueErr := awscryptographymaterialproviderssmithygeneratedtypes.OpaqueError{ + ErrObject: err, + } + var defaultVal awscryptographymaterialproviderssmithygeneratedtypes.IKeyring + return defaultVal, opaqueErr + } + + var dafny_request AwsCryptographyMaterialProvidersTypes.CreateMultiKeyringInput = CreateMultiKeyringInput_ToDafny(params) + var dafny_response = client.DafnyClient.CreateMultiKeyring(dafny_request) + + if dafny_response.Is_Failure() { + err := dafny_response.Dtor_error().(AwsCryptographyMaterialProvidersTypes.Error) + var defaultVal awscryptographymaterialproviderssmithygeneratedtypes.IKeyring + return defaultVal, Error_FromDafny(err) + } + var native_response = Keyring_FromDafny(dafny_response.Dtor_value().(AwsCryptographyMaterialProvidersTypes.IKeyring)) + return native_response, nil + +} + +func (client *Client) CreateRawAesKeyring(ctx context.Context, params awscryptographymaterialproviderssmithygeneratedtypes.CreateRawAesKeyringInput) (awscryptographymaterialproviderssmithygeneratedtypes.IKeyring, error) { + err := params.Validate() + if err != nil { + opaqueErr := awscryptographymaterialproviderssmithygeneratedtypes.OpaqueError{ + ErrObject: err, + } + var defaultVal awscryptographymaterialproviderssmithygeneratedtypes.IKeyring + return defaultVal, opaqueErr + } + + var dafny_request AwsCryptographyMaterialProvidersTypes.CreateRawAesKeyringInput = CreateRawAesKeyringInput_ToDafny(params) + var dafny_response = client.DafnyClient.CreateRawAesKeyring(dafny_request) + + if dafny_response.Is_Failure() { + err := dafny_response.Dtor_error().(AwsCryptographyMaterialProvidersTypes.Error) + var defaultVal awscryptographymaterialproviderssmithygeneratedtypes.IKeyring + return defaultVal, Error_FromDafny(err) + } + var native_response = Keyring_FromDafny(dafny_response.Dtor_value().(AwsCryptographyMaterialProvidersTypes.IKeyring)) + return native_response, nil + +} + +func (client *Client) CreateRawRsaKeyring(ctx context.Context, params awscryptographymaterialproviderssmithygeneratedtypes.CreateRawRsaKeyringInput) (awscryptographymaterialproviderssmithygeneratedtypes.IKeyring, error) { + err := params.Validate() + if err != nil { + opaqueErr := awscryptographymaterialproviderssmithygeneratedtypes.OpaqueError{ + ErrObject: err, + } + var defaultVal awscryptographymaterialproviderssmithygeneratedtypes.IKeyring + return defaultVal, opaqueErr + } + + var dafny_request AwsCryptographyMaterialProvidersTypes.CreateRawRsaKeyringInput = CreateRawRsaKeyringInput_ToDafny(params) + var dafny_response = client.DafnyClient.CreateRawRsaKeyring(dafny_request) + + if dafny_response.Is_Failure() { + err := dafny_response.Dtor_error().(AwsCryptographyMaterialProvidersTypes.Error) + var defaultVal awscryptographymaterialproviderssmithygeneratedtypes.IKeyring + return defaultVal, Error_FromDafny(err) + } + var native_response = Keyring_FromDafny(dafny_response.Dtor_value().(AwsCryptographyMaterialProvidersTypes.IKeyring)) + return native_response, nil + +} + +func (client *Client) CreateRawEcdhKeyring(ctx context.Context, params awscryptographymaterialproviderssmithygeneratedtypes.CreateRawEcdhKeyringInput) (awscryptographymaterialproviderssmithygeneratedtypes.IKeyring, error) { + err := params.Validate() + if err != nil { + opaqueErr := awscryptographymaterialproviderssmithygeneratedtypes.OpaqueError{ + ErrObject: err, + } + var defaultVal awscryptographymaterialproviderssmithygeneratedtypes.IKeyring + return defaultVal, opaqueErr + } + + var dafny_request AwsCryptographyMaterialProvidersTypes.CreateRawEcdhKeyringInput = CreateRawEcdhKeyringInput_ToDafny(params) + var dafny_response = client.DafnyClient.CreateRawEcdhKeyring(dafny_request) + + if dafny_response.Is_Failure() { + err := dafny_response.Dtor_error().(AwsCryptographyMaterialProvidersTypes.Error) + var defaultVal awscryptographymaterialproviderssmithygeneratedtypes.IKeyring + return defaultVal, Error_FromDafny(err) + } + var native_response = Keyring_FromDafny(dafny_response.Dtor_value().(AwsCryptographyMaterialProvidersTypes.IKeyring)) + return native_response, nil + +} + +func (client *Client) CreateDefaultCryptographicMaterialsManager(ctx context.Context, params awscryptographymaterialproviderssmithygeneratedtypes.CreateDefaultCryptographicMaterialsManagerInput) (awscryptographymaterialproviderssmithygeneratedtypes.ICryptographicMaterialsManager, error) { + err := params.Validate() + if err != nil { + opaqueErr := awscryptographymaterialproviderssmithygeneratedtypes.OpaqueError{ + ErrObject: err, + } + var defaultVal awscryptographymaterialproviderssmithygeneratedtypes.ICryptographicMaterialsManager + return defaultVal, opaqueErr + } + + var dafny_request AwsCryptographyMaterialProvidersTypes.CreateDefaultCryptographicMaterialsManagerInput = CreateDefaultCryptographicMaterialsManagerInput_ToDafny(params) + var dafny_response = client.DafnyClient.CreateDefaultCryptographicMaterialsManager(dafny_request) + + if dafny_response.Is_Failure() { + err := dafny_response.Dtor_error().(AwsCryptographyMaterialProvidersTypes.Error) + var defaultVal awscryptographymaterialproviderssmithygeneratedtypes.ICryptographicMaterialsManager + return defaultVal, Error_FromDafny(err) + } + var native_response = CryptographicMaterialsManager_FromDafny(dafny_response.Dtor_value().(AwsCryptographyMaterialProvidersTypes.ICryptographicMaterialsManager)) + return native_response, nil + +} + +func (client *Client) CreateRequiredEncryptionContextCMM(ctx context.Context, params awscryptographymaterialproviderssmithygeneratedtypes.CreateRequiredEncryptionContextCMMInput) (awscryptographymaterialproviderssmithygeneratedtypes.ICryptographicMaterialsManager, error) { + err := params.Validate() + if err != nil { + opaqueErr := awscryptographymaterialproviderssmithygeneratedtypes.OpaqueError{ + ErrObject: err, + } + var defaultVal awscryptographymaterialproviderssmithygeneratedtypes.ICryptographicMaterialsManager + return defaultVal, opaqueErr + } + + var dafny_request AwsCryptographyMaterialProvidersTypes.CreateRequiredEncryptionContextCMMInput = CreateRequiredEncryptionContextCMMInput_ToDafny(params) + var dafny_response = client.DafnyClient.CreateRequiredEncryptionContextCMM(dafny_request) + + if dafny_response.Is_Failure() { + err := dafny_response.Dtor_error().(AwsCryptographyMaterialProvidersTypes.Error) + var defaultVal awscryptographymaterialproviderssmithygeneratedtypes.ICryptographicMaterialsManager + return defaultVal, Error_FromDafny(err) + } + var native_response = CryptographicMaterialsManager_FromDafny(dafny_response.Dtor_value().(AwsCryptographyMaterialProvidersTypes.ICryptographicMaterialsManager)) + return native_response, nil + +} + +func (client *Client) CreateCryptographicMaterialsCache(ctx context.Context, params awscryptographymaterialproviderssmithygeneratedtypes.CreateCryptographicMaterialsCacheInput) (awscryptographymaterialproviderssmithygeneratedtypes.ICryptographicMaterialsCache, error) { + err := params.Validate() + if err != nil { + opaqueErr := awscryptographymaterialproviderssmithygeneratedtypes.OpaqueError{ + ErrObject: err, + } + var defaultVal awscryptographymaterialproviderssmithygeneratedtypes.ICryptographicMaterialsCache + return defaultVal, opaqueErr + } + + var dafny_request AwsCryptographyMaterialProvidersTypes.CreateCryptographicMaterialsCacheInput = CreateCryptographicMaterialsCacheInput_ToDafny(params) + var dafny_response = client.DafnyClient.CreateCryptographicMaterialsCache(dafny_request) + + if dafny_response.Is_Failure() { + err := dafny_response.Dtor_error().(AwsCryptographyMaterialProvidersTypes.Error) + var defaultVal awscryptographymaterialproviderssmithygeneratedtypes.ICryptographicMaterialsCache + return defaultVal, Error_FromDafny(err) + } + var native_response = CryptographicMaterialsCache_FromDafny(dafny_response.Dtor_value().(AwsCryptographyMaterialProvidersTypes.ICryptographicMaterialsCache)) + return native_response, nil + +} + +func (client *Client) CreateDefaultClientSupplier(ctx context.Context, params awscryptographymaterialproviderssmithygeneratedtypes.CreateDefaultClientSupplierInput) (awscryptographymaterialproviderssmithygeneratedtypes.IClientSupplier, error) { + err := params.Validate() + if err != nil { + opaqueErr := awscryptographymaterialproviderssmithygeneratedtypes.OpaqueError{ + ErrObject: err, + } + var defaultVal awscryptographymaterialproviderssmithygeneratedtypes.IClientSupplier + return defaultVal, opaqueErr + } + + var dafny_request AwsCryptographyMaterialProvidersTypes.CreateDefaultClientSupplierInput = CreateDefaultClientSupplierInput_ToDafny(params) + var dafny_response = client.DafnyClient.CreateDefaultClientSupplier(dafny_request) + + if dafny_response.Is_Failure() { + err := dafny_response.Dtor_error().(AwsCryptographyMaterialProvidersTypes.Error) + var defaultVal awscryptographymaterialproviderssmithygeneratedtypes.IClientSupplier + return defaultVal, Error_FromDafny(err) + } + var native_response = ClientSupplier_FromDafny(dafny_response.Dtor_value().(AwsCryptographyMaterialProvidersTypes.IClientSupplier)) + return native_response, nil + +} + +func (client *Client) InitializeEncryptionMaterials(ctx context.Context, params awscryptographymaterialproviderssmithygeneratedtypes.InitializeEncryptionMaterialsInput) (*awscryptographymaterialproviderssmithygeneratedtypes.EncryptionMaterials, error) { + err := params.Validate() + if err != nil { + opaqueErr := awscryptographymaterialproviderssmithygeneratedtypes.OpaqueError{ + ErrObject: err, + } + return nil, opaqueErr + } + + var dafny_request AwsCryptographyMaterialProvidersTypes.InitializeEncryptionMaterialsInput = InitializeEncryptionMaterialsInput_ToDafny(params) + var dafny_response = client.DafnyClient.InitializeEncryptionMaterials(dafny_request) + + if dafny_response.Is_Failure() { + err := dafny_response.Dtor_error().(AwsCryptographyMaterialProvidersTypes.Error) + return nil, Error_FromDafny(err) + } + var native_response = EncryptionMaterials_FromDafny(dafny_response.Dtor_value().(AwsCryptographyMaterialProvidersTypes.EncryptionMaterials)) + return &native_response, nil + +} + +func (client *Client) InitializeDecryptionMaterials(ctx context.Context, params awscryptographymaterialproviderssmithygeneratedtypes.InitializeDecryptionMaterialsInput) (*awscryptographymaterialproviderssmithygeneratedtypes.DecryptionMaterials, error) { + err := params.Validate() + if err != nil { + opaqueErr := awscryptographymaterialproviderssmithygeneratedtypes.OpaqueError{ + ErrObject: err, + } + return nil, opaqueErr + } + + var dafny_request AwsCryptographyMaterialProvidersTypes.InitializeDecryptionMaterialsInput = InitializeDecryptionMaterialsInput_ToDafny(params) + var dafny_response = client.DafnyClient.InitializeDecryptionMaterials(dafny_request) + + if dafny_response.Is_Failure() { + err := dafny_response.Dtor_error().(AwsCryptographyMaterialProvidersTypes.Error) + return nil, Error_FromDafny(err) + } + var native_response = DecryptionMaterials_FromDafny(dafny_response.Dtor_value().(AwsCryptographyMaterialProvidersTypes.DecryptionMaterials)) + return &native_response, nil + +} + +func (client *Client) ValidEncryptionMaterialsTransition(ctx context.Context, params awscryptographymaterialproviderssmithygeneratedtypes.ValidEncryptionMaterialsTransitionInput) error { + err := params.Validate() + if err != nil { + opaqueErr := awscryptographymaterialproviderssmithygeneratedtypes.OpaqueError{ + ErrObject: err, + } + return opaqueErr + } + + var dafny_request AwsCryptographyMaterialProvidersTypes.ValidEncryptionMaterialsTransitionInput = ValidEncryptionMaterialsTransitionInput_ToDafny(params) + var dafny_response = client.DafnyClient.ValidEncryptionMaterialsTransition(dafny_request) + + if dafny_response.Is_Failure() { + err := dafny_response.Dtor_error().(AwsCryptographyMaterialProvidersTypes.Error) + return Error_FromDafny(err) + } + return nil +} + +func (client *Client) ValidDecryptionMaterialsTransition(ctx context.Context, params awscryptographymaterialproviderssmithygeneratedtypes.ValidDecryptionMaterialsTransitionInput) error { + err := params.Validate() + if err != nil { + opaqueErr := awscryptographymaterialproviderssmithygeneratedtypes.OpaqueError{ + ErrObject: err, + } + return opaqueErr + } + + var dafny_request AwsCryptographyMaterialProvidersTypes.ValidDecryptionMaterialsTransitionInput = ValidDecryptionMaterialsTransitionInput_ToDafny(params) + var dafny_response = client.DafnyClient.ValidDecryptionMaterialsTransition(dafny_request) + + if dafny_response.Is_Failure() { + err := dafny_response.Dtor_error().(AwsCryptographyMaterialProvidersTypes.Error) + return Error_FromDafny(err) + } + return nil +} + +func (client *Client) EncryptionMaterialsHasPlaintextDataKey(ctx context.Context, params awscryptographymaterialproviderssmithygeneratedtypes.EncryptionMaterials) error { + err := params.Validate() + if err != nil { + opaqueErr := awscryptographymaterialproviderssmithygeneratedtypes.OpaqueError{ + ErrObject: err, + } + return opaqueErr + } + + var dafny_request AwsCryptographyMaterialProvidersTypes.EncryptionMaterials = EncryptionMaterials_ToDafny(params) + var dafny_response = client.DafnyClient.EncryptionMaterialsHasPlaintextDataKey(dafny_request) + + if dafny_response.Is_Failure() { + err := dafny_response.Dtor_error().(AwsCryptographyMaterialProvidersTypes.Error) + return Error_FromDafny(err) + } + return nil +} + +func (client *Client) DecryptionMaterialsWithPlaintextDataKey(ctx context.Context, params awscryptographymaterialproviderssmithygeneratedtypes.DecryptionMaterials) error { + err := params.Validate() + if err != nil { + opaqueErr := awscryptographymaterialproviderssmithygeneratedtypes.OpaqueError{ + ErrObject: err, + } + return opaqueErr + } + + var dafny_request AwsCryptographyMaterialProvidersTypes.DecryptionMaterials = DecryptionMaterials_ToDafny(params) + var dafny_response = client.DafnyClient.DecryptionMaterialsWithPlaintextDataKey(dafny_request) + + if dafny_response.Is_Failure() { + err := dafny_response.Dtor_error().(AwsCryptographyMaterialProvidersTypes.Error) + return Error_FromDafny(err) + } + return nil +} + +func (client *Client) GetAlgorithmSuiteInfo(ctx context.Context, params []byte) (*awscryptographymaterialproviderssmithygeneratedtypes.AlgorithmSuiteInfo, error) { + + var dafny_request dafny.Sequence = Aws_cryptography_materialProviders_GetAlgorithmSuiteInfoInput_binaryId_ToDafny(params) + var dafny_response = client.DafnyClient.GetAlgorithmSuiteInfo(dafny_request) + + if dafny_response.Is_Failure() { + err := dafny_response.Dtor_error().(AwsCryptographyMaterialProvidersTypes.Error) + return nil, Error_FromDafny(err) + } + var native_response = AlgorithmSuiteInfo_FromDafny(dafny_response.Dtor_value().(AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo)) + return &native_response, nil + +} + +func (client *Client) ValidAlgorithmSuiteInfo(ctx context.Context, params awscryptographymaterialproviderssmithygeneratedtypes.AlgorithmSuiteInfo) error { + err := params.Validate() + if err != nil { + opaqueErr := awscryptographymaterialproviderssmithygeneratedtypes.OpaqueError{ + ErrObject: err, + } + return opaqueErr + } + + var dafny_request AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo = AlgorithmSuiteInfo_ToDafny(params) + var dafny_response = client.DafnyClient.ValidAlgorithmSuiteInfo(dafny_request) + + if dafny_response.Is_Failure() { + err := dafny_response.Dtor_error().(AwsCryptographyMaterialProvidersTypes.Error) + return Error_FromDafny(err) + } + return nil +} + +func (client *Client) ValidateCommitmentPolicyOnEncrypt(ctx context.Context, params awscryptographymaterialproviderssmithygeneratedtypes.ValidateCommitmentPolicyOnEncryptInput) error { + err := params.Validate() + if err != nil { + opaqueErr := awscryptographymaterialproviderssmithygeneratedtypes.OpaqueError{ + ErrObject: err, + } + return opaqueErr + } + + var dafny_request AwsCryptographyMaterialProvidersTypes.ValidateCommitmentPolicyOnEncryptInput = ValidateCommitmentPolicyOnEncryptInput_ToDafny(params) + var dafny_response = client.DafnyClient.ValidateCommitmentPolicyOnEncrypt(dafny_request) + + if dafny_response.Is_Failure() { + err := dafny_response.Dtor_error().(AwsCryptographyMaterialProvidersTypes.Error) + return Error_FromDafny(err) + } + return nil +} + +func (client *Client) ValidateCommitmentPolicyOnDecrypt(ctx context.Context, params awscryptographymaterialproviderssmithygeneratedtypes.ValidateCommitmentPolicyOnDecryptInput) error { + err := params.Validate() + if err != nil { + opaqueErr := awscryptographymaterialproviderssmithygeneratedtypes.OpaqueError{ + ErrObject: err, + } + return opaqueErr + } + + var dafny_request AwsCryptographyMaterialProvidersTypes.ValidateCommitmentPolicyOnDecryptInput = ValidateCommitmentPolicyOnDecryptInput_ToDafny(params) + var dafny_response = client.DafnyClient.ValidateCommitmentPolicyOnDecrypt(dafny_request) + + if dafny_response.Is_Failure() { + err := dafny_response.Dtor_error().(AwsCryptographyMaterialProvidersTypes.Error) + return Error_FromDafny(err) + } + return nil +} diff --git a/customer-preview/mpl/awscryptographymaterialproviderssmithygenerated/to_dafny.go b/customer-preview/mpl/awscryptographymaterialproviderssmithygenerated/to_dafny.go new file mode 100644 index 000000000..5c6360c81 --- /dev/null +++ b/customer-preview/mpl/awscryptographymaterialproviderssmithygenerated/to_dafny.go @@ -0,0 +1,3444 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package awscryptographymaterialproviderssmithygenerated + +import ( + "unicode/utf8" + + "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/comamazonawsdynamodbsmithygenerated" + "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/ComAmazonawsKmsTypes" + "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/KMSwrapped" + "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/comamazonawskmssmithygenerated" + "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/awscryptographymaterialproviderssmithygeneratedtypes" + "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesTypes" + "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-sdk-go-v2/service/kms" + kmstypes "github.com/aws/aws-sdk-go-v2/service/kms/types" + "github.com/aws/smithy-go" + "github.com/dafny-lang/DafnyRuntimeGo/v4/dafny" +) + +func CreateAwsKmsDiscoveryKeyringInput_ToDafny(nativeInput awscryptographymaterialproviderssmithygeneratedtypes.CreateAwsKmsDiscoveryKeyringInput) AwsCryptographyMaterialProvidersTypes.CreateAwsKmsDiscoveryKeyringInput { + + return func() AwsCryptographyMaterialProvidersTypes.CreateAwsKmsDiscoveryKeyringInput { + + return AwsCryptographyMaterialProvidersTypes.Companion_CreateAwsKmsDiscoveryKeyringInput_.Create_CreateAwsKmsDiscoveryKeyringInput_(Aws_cryptography_materialProviders_CreateAwsKmsDiscoveryKeyringInput_kmsClient_ToDafny(nativeInput.KmsClient), Aws_cryptography_materialProviders_CreateAwsKmsDiscoveryKeyringInput_discoveryFilter_ToDafny(nativeInput.DiscoveryFilter), Aws_cryptography_materialProviders_CreateAwsKmsDiscoveryKeyringInput_grantTokens_ToDafny(nativeInput.GrantTokens)) + }() + +} + +func CreateAwsKmsDiscoveryMultiKeyringInput_ToDafny(nativeInput awscryptographymaterialproviderssmithygeneratedtypes.CreateAwsKmsDiscoveryMultiKeyringInput) AwsCryptographyMaterialProvidersTypes.CreateAwsKmsDiscoveryMultiKeyringInput { + + return func() AwsCryptographyMaterialProvidersTypes.CreateAwsKmsDiscoveryMultiKeyringInput { + + return AwsCryptographyMaterialProvidersTypes.Companion_CreateAwsKmsDiscoveryMultiKeyringInput_.Create_CreateAwsKmsDiscoveryMultiKeyringInput_(Aws_cryptography_materialProviders_CreateAwsKmsDiscoveryMultiKeyringInput_regions_ToDafny(nativeInput.Regions), Aws_cryptography_materialProviders_CreateAwsKmsDiscoveryMultiKeyringInput_discoveryFilter_ToDafny(nativeInput.DiscoveryFilter), func() Wrappers.Option { + if (nativeInput.ClientSupplier) == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(ClientSupplier_ToDafny(nativeInput.ClientSupplier)) + }(), Aws_cryptography_materialProviders_CreateAwsKmsDiscoveryMultiKeyringInput_grantTokens_ToDafny(nativeInput.GrantTokens)) + }() + +} + +func CreateAwsKmsEcdhKeyringInput_ToDafny(nativeInput awscryptographymaterialproviderssmithygeneratedtypes.CreateAwsKmsEcdhKeyringInput) AwsCryptographyMaterialProvidersTypes.CreateAwsKmsEcdhKeyringInput { + + return func() AwsCryptographyMaterialProvidersTypes.CreateAwsKmsEcdhKeyringInput { + + return AwsCryptographyMaterialProvidersTypes.Companion_CreateAwsKmsEcdhKeyringInput_.Create_CreateAwsKmsEcdhKeyringInput_(Aws_cryptography_materialProviders_CreateAwsKmsEcdhKeyringInput_KeyAgreementScheme_ToDafny(nativeInput.KeyAgreementScheme), Aws_cryptography_materialProviders_CreateAwsKmsEcdhKeyringInput_curveSpec_ToDafny(nativeInput.CurveSpec), Aws_cryptography_materialProviders_CreateAwsKmsEcdhKeyringInput_kmsClient_ToDafny(nativeInput.KmsClient), Aws_cryptography_materialProviders_CreateAwsKmsEcdhKeyringInput_grantTokens_ToDafny(nativeInput.GrantTokens)) + }() + +} + +func CreateAwsKmsHierarchicalKeyringInput_ToDafny(nativeInput awscryptographymaterialproviderssmithygeneratedtypes.CreateAwsKmsHierarchicalKeyringInput) AwsCryptographyMaterialProvidersTypes.CreateAwsKmsHierarchicalKeyringInput { + + return func() AwsCryptographyMaterialProvidersTypes.CreateAwsKmsHierarchicalKeyringInput { + + return AwsCryptographyMaterialProvidersTypes.Companion_CreateAwsKmsHierarchicalKeyringInput_.Create_CreateAwsKmsHierarchicalKeyringInput_(Aws_cryptography_materialProviders_CreateAwsKmsHierarchicalKeyringInput_branchKeyId_ToDafny(nativeInput.BranchKeyId), func() Wrappers.Option { + if (nativeInput.BranchKeyIdSupplier) == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(BranchKeyIdSupplier_ToDafny(nativeInput.BranchKeyIdSupplier)) + }(), Aws_cryptography_materialProviders_CreateAwsKmsHierarchicalKeyringInput_keyStore_ToDafny(nativeInput.KeyStore), Aws_cryptography_materialProviders_CreateAwsKmsHierarchicalKeyringInput_ttlSeconds_ToDafny(nativeInput.TtlSeconds), Aws_cryptography_materialProviders_CreateAwsKmsHierarchicalKeyringInput_cache_ToDafny(nativeInput.Cache), Aws_cryptography_materialProviders_CreateAwsKmsHierarchicalKeyringInput_partitionId_ToDafny(nativeInput.PartitionId)) + }() + +} + +func CreateAwsKmsKeyringInput_ToDafny(nativeInput awscryptographymaterialproviderssmithygeneratedtypes.CreateAwsKmsKeyringInput) AwsCryptographyMaterialProvidersTypes.CreateAwsKmsKeyringInput { + + return func() AwsCryptographyMaterialProvidersTypes.CreateAwsKmsKeyringInput { + + return AwsCryptographyMaterialProvidersTypes.Companion_CreateAwsKmsKeyringInput_.Create_CreateAwsKmsKeyringInput_(Aws_cryptography_materialProviders_CreateAwsKmsKeyringInput_kmsKeyId_ToDafny(nativeInput.KmsKeyId), Aws_cryptography_materialProviders_CreateAwsKmsKeyringInput_kmsClient_ToDafny(nativeInput.KmsClient), Aws_cryptography_materialProviders_CreateAwsKmsKeyringInput_grantTokens_ToDafny(nativeInput.GrantTokens)) + }() + +} + +func CreateAwsKmsMrkDiscoveryKeyringInput_ToDafny(nativeInput awscryptographymaterialproviderssmithygeneratedtypes.CreateAwsKmsMrkDiscoveryKeyringInput) AwsCryptographyMaterialProvidersTypes.CreateAwsKmsMrkDiscoveryKeyringInput { + + return func() AwsCryptographyMaterialProvidersTypes.CreateAwsKmsMrkDiscoveryKeyringInput { + + return AwsCryptographyMaterialProvidersTypes.Companion_CreateAwsKmsMrkDiscoveryKeyringInput_.Create_CreateAwsKmsMrkDiscoveryKeyringInput_(Aws_cryptography_materialProviders_CreateAwsKmsMrkDiscoveryKeyringInput_kmsClient_ToDafny(nativeInput.KmsClient), Aws_cryptography_materialProviders_CreateAwsKmsMrkDiscoveryKeyringInput_discoveryFilter_ToDafny(nativeInput.DiscoveryFilter), Aws_cryptography_materialProviders_CreateAwsKmsMrkDiscoveryKeyringInput_grantTokens_ToDafny(nativeInput.GrantTokens), Aws_cryptography_materialProviders_CreateAwsKmsMrkDiscoveryKeyringInput_region_ToDafny(nativeInput.Region)) + }() + +} + +func CreateAwsKmsMrkDiscoveryMultiKeyringInput_ToDafny(nativeInput awscryptographymaterialproviderssmithygeneratedtypes.CreateAwsKmsMrkDiscoveryMultiKeyringInput) AwsCryptographyMaterialProvidersTypes.CreateAwsKmsMrkDiscoveryMultiKeyringInput { + + return func() AwsCryptographyMaterialProvidersTypes.CreateAwsKmsMrkDiscoveryMultiKeyringInput { + + return AwsCryptographyMaterialProvidersTypes.Companion_CreateAwsKmsMrkDiscoveryMultiKeyringInput_.Create_CreateAwsKmsMrkDiscoveryMultiKeyringInput_(Aws_cryptography_materialProviders_CreateAwsKmsMrkDiscoveryMultiKeyringInput_regions_ToDafny(nativeInput.Regions), Aws_cryptography_materialProviders_CreateAwsKmsMrkDiscoveryMultiKeyringInput_discoveryFilter_ToDafny(nativeInput.DiscoveryFilter), func() Wrappers.Option { + if (nativeInput.ClientSupplier) == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(ClientSupplier_ToDafny(nativeInput.ClientSupplier)) + }(), Aws_cryptography_materialProviders_CreateAwsKmsMrkDiscoveryMultiKeyringInput_grantTokens_ToDafny(nativeInput.GrantTokens)) + }() + +} + +func CreateAwsKmsMrkKeyringInput_ToDafny(nativeInput awscryptographymaterialproviderssmithygeneratedtypes.CreateAwsKmsMrkKeyringInput) AwsCryptographyMaterialProvidersTypes.CreateAwsKmsMrkKeyringInput { + + return func() AwsCryptographyMaterialProvidersTypes.CreateAwsKmsMrkKeyringInput { + + return AwsCryptographyMaterialProvidersTypes.Companion_CreateAwsKmsMrkKeyringInput_.Create_CreateAwsKmsMrkKeyringInput_(Aws_cryptography_materialProviders_CreateAwsKmsMrkKeyringInput_kmsKeyId_ToDafny(nativeInput.KmsKeyId), Aws_cryptography_materialProviders_CreateAwsKmsMrkKeyringInput_kmsClient_ToDafny(nativeInput.KmsClient), Aws_cryptography_materialProviders_CreateAwsKmsMrkKeyringInput_grantTokens_ToDafny(nativeInput.GrantTokens)) + }() + +} + +func CreateAwsKmsMrkMultiKeyringInput_ToDafny(nativeInput awscryptographymaterialproviderssmithygeneratedtypes.CreateAwsKmsMrkMultiKeyringInput) AwsCryptographyMaterialProvidersTypes.CreateAwsKmsMrkMultiKeyringInput { + + return func() AwsCryptographyMaterialProvidersTypes.CreateAwsKmsMrkMultiKeyringInput { + + return AwsCryptographyMaterialProvidersTypes.Companion_CreateAwsKmsMrkMultiKeyringInput_.Create_CreateAwsKmsMrkMultiKeyringInput_(Aws_cryptography_materialProviders_CreateAwsKmsMrkMultiKeyringInput_generator_ToDafny(nativeInput.Generator), Aws_cryptography_materialProviders_CreateAwsKmsMrkMultiKeyringInput_kmsKeyIds_ToDafny(nativeInput.KmsKeyIds), func() Wrappers.Option { + if (nativeInput.ClientSupplier) == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(ClientSupplier_ToDafny(nativeInput.ClientSupplier)) + }(), Aws_cryptography_materialProviders_CreateAwsKmsMrkMultiKeyringInput_grantTokens_ToDafny(nativeInput.GrantTokens)) + }() + +} + +func CreateAwsKmsMultiKeyringInput_ToDafny(nativeInput awscryptographymaterialproviderssmithygeneratedtypes.CreateAwsKmsMultiKeyringInput) AwsCryptographyMaterialProvidersTypes.CreateAwsKmsMultiKeyringInput { + + return func() AwsCryptographyMaterialProvidersTypes.CreateAwsKmsMultiKeyringInput { + + return AwsCryptographyMaterialProvidersTypes.Companion_CreateAwsKmsMultiKeyringInput_.Create_CreateAwsKmsMultiKeyringInput_(Aws_cryptography_materialProviders_CreateAwsKmsMultiKeyringInput_generator_ToDafny(nativeInput.Generator), Aws_cryptography_materialProviders_CreateAwsKmsMultiKeyringInput_kmsKeyIds_ToDafny(nativeInput.KmsKeyIds), func() Wrappers.Option { + if (nativeInput.ClientSupplier) == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(ClientSupplier_ToDafny(nativeInput.ClientSupplier)) + }(), Aws_cryptography_materialProviders_CreateAwsKmsMultiKeyringInput_grantTokens_ToDafny(nativeInput.GrantTokens)) + }() + +} + +func CreateAwsKmsRsaKeyringInput_ToDafny(nativeInput awscryptographymaterialproviderssmithygeneratedtypes.CreateAwsKmsRsaKeyringInput) AwsCryptographyMaterialProvidersTypes.CreateAwsKmsRsaKeyringInput { + + return func() AwsCryptographyMaterialProvidersTypes.CreateAwsKmsRsaKeyringInput { + + return AwsCryptographyMaterialProvidersTypes.Companion_CreateAwsKmsRsaKeyringInput_.Create_CreateAwsKmsRsaKeyringInput_(Aws_cryptography_materialProviders_CreateAwsKmsRsaKeyringInput_publicKey_ToDafny(nativeInput.PublicKey), Aws_cryptography_materialProviders_CreateAwsKmsRsaKeyringInput_kmsKeyId_ToDafny(nativeInput.KmsKeyId), Aws_cryptography_materialProviders_CreateAwsKmsRsaKeyringInput_encryptionAlgorithm_ToDafny(nativeInput.EncryptionAlgorithm), Aws_cryptography_materialProviders_CreateAwsKmsRsaKeyringInput_kmsClient_ToDafny(nativeInput.KmsClient), Aws_cryptography_materialProviders_CreateAwsKmsRsaKeyringInput_grantTokens_ToDafny(nativeInput.GrantTokens)) + }() + +} + +func CreateCryptographicMaterialsCacheInput_ToDafny(nativeInput awscryptographymaterialproviderssmithygeneratedtypes.CreateCryptographicMaterialsCacheInput) AwsCryptographyMaterialProvidersTypes.CreateCryptographicMaterialsCacheInput { + + return func() AwsCryptographyMaterialProvidersTypes.CreateCryptographicMaterialsCacheInput { + + return AwsCryptographyMaterialProvidersTypes.Companion_CreateCryptographicMaterialsCacheInput_.Create_CreateCryptographicMaterialsCacheInput_(Aws_cryptography_materialProviders_CreateCryptographicMaterialsCacheInput_cache_ToDafny(nativeInput.Cache)) + }() + +} + +func CreateDefaultClientSupplierInput_ToDafny(nativeInput awscryptographymaterialproviderssmithygeneratedtypes.CreateDefaultClientSupplierInput) AwsCryptographyMaterialProvidersTypes.CreateDefaultClientSupplierInput { + + return func() AwsCryptographyMaterialProvidersTypes.CreateDefaultClientSupplierInput { + + return AwsCryptographyMaterialProvidersTypes.Companion_CreateDefaultClientSupplierInput_.Create_CreateDefaultClientSupplierInput_() + }() + +} + +func CreateDefaultCryptographicMaterialsManagerInput_ToDafny(nativeInput awscryptographymaterialproviderssmithygeneratedtypes.CreateDefaultCryptographicMaterialsManagerInput) AwsCryptographyMaterialProvidersTypes.CreateDefaultCryptographicMaterialsManagerInput { + + return func() AwsCryptographyMaterialProvidersTypes.CreateDefaultCryptographicMaterialsManagerInput { + + return AwsCryptographyMaterialProvidersTypes.Companion_CreateDefaultCryptographicMaterialsManagerInput_.Create_CreateDefaultCryptographicMaterialsManagerInput_(Keyring_ToDafny(nativeInput.Keyring)) + }() + +} + +func CreateMultiKeyringInput_ToDafny(nativeInput awscryptographymaterialproviderssmithygeneratedtypes.CreateMultiKeyringInput) AwsCryptographyMaterialProvidersTypes.CreateMultiKeyringInput { + + return func() AwsCryptographyMaterialProvidersTypes.CreateMultiKeyringInput { + + return AwsCryptographyMaterialProvidersTypes.Companion_CreateMultiKeyringInput_.Create_CreateMultiKeyringInput_(func() Wrappers.Option { + if (nativeInput.Generator) == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(Keyring_ToDafny(nativeInput.Generator)) + }(), Aws_cryptography_materialProviders_CreateMultiKeyringInput_childKeyrings_ToDafny(nativeInput.ChildKeyrings)) + }() + +} + +func CreateRawAesKeyringInput_ToDafny(nativeInput awscryptographymaterialproviderssmithygeneratedtypes.CreateRawAesKeyringInput) AwsCryptographyMaterialProvidersTypes.CreateRawAesKeyringInput { + + return func() AwsCryptographyMaterialProvidersTypes.CreateRawAesKeyringInput { + + return AwsCryptographyMaterialProvidersTypes.Companion_CreateRawAesKeyringInput_.Create_CreateRawAesKeyringInput_(Aws_cryptography_materialProviders_CreateRawAesKeyringInput_keyNamespace_ToDafny(nativeInput.KeyNamespace), Aws_cryptography_materialProviders_CreateRawAesKeyringInput_keyName_ToDafny(nativeInput.KeyName), Aws_cryptography_materialProviders_CreateRawAesKeyringInput_wrappingKey_ToDafny(nativeInput.WrappingKey), Aws_cryptography_materialProviders_CreateRawAesKeyringInput_wrappingAlg_ToDafny(nativeInput.WrappingAlg)) + }() + +} + +func CreateRawEcdhKeyringInput_ToDafny(nativeInput awscryptographymaterialproviderssmithygeneratedtypes.CreateRawEcdhKeyringInput) AwsCryptographyMaterialProvidersTypes.CreateRawEcdhKeyringInput { + + return func() AwsCryptographyMaterialProvidersTypes.CreateRawEcdhKeyringInput { + + return AwsCryptographyMaterialProvidersTypes.Companion_CreateRawEcdhKeyringInput_.Create_CreateRawEcdhKeyringInput_(Aws_cryptography_materialProviders_CreateRawEcdhKeyringInput_KeyAgreementScheme_ToDafny(nativeInput.KeyAgreementScheme), Aws_cryptography_materialProviders_CreateRawEcdhKeyringInput_curveSpec_ToDafny(nativeInput.CurveSpec)) + }() + +} + +func CreateRawRsaKeyringInput_ToDafny(nativeInput awscryptographymaterialproviderssmithygeneratedtypes.CreateRawRsaKeyringInput) AwsCryptographyMaterialProvidersTypes.CreateRawRsaKeyringInput { + + return func() AwsCryptographyMaterialProvidersTypes.CreateRawRsaKeyringInput { + + return AwsCryptographyMaterialProvidersTypes.Companion_CreateRawRsaKeyringInput_.Create_CreateRawRsaKeyringInput_(Aws_cryptography_materialProviders_CreateRawRsaKeyringInput_keyNamespace_ToDafny(nativeInput.KeyNamespace), Aws_cryptography_materialProviders_CreateRawRsaKeyringInput_keyName_ToDafny(nativeInput.KeyName), Aws_cryptography_materialProviders_CreateRawRsaKeyringInput_paddingScheme_ToDafny(nativeInput.PaddingScheme), Aws_cryptography_materialProviders_CreateRawRsaKeyringInput_publicKey_ToDafny(nativeInput.PublicKey), Aws_cryptography_materialProviders_CreateRawRsaKeyringInput_privateKey_ToDafny(nativeInput.PrivateKey)) + }() + +} + +func CreateRequiredEncryptionContextCMMInput_ToDafny(nativeInput awscryptographymaterialproviderssmithygeneratedtypes.CreateRequiredEncryptionContextCMMInput) AwsCryptographyMaterialProvidersTypes.CreateRequiredEncryptionContextCMMInput { + + return func() AwsCryptographyMaterialProvidersTypes.CreateRequiredEncryptionContextCMMInput { + + return AwsCryptographyMaterialProvidersTypes.Companion_CreateRequiredEncryptionContextCMMInput_.Create_CreateRequiredEncryptionContextCMMInput_(func() Wrappers.Option { + if (nativeInput.UnderlyingCMM) == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(CryptographicMaterialsManager_ToDafny(nativeInput.UnderlyingCMM)) + }(), func() Wrappers.Option { + if (nativeInput.Keyring) == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(Keyring_ToDafny(nativeInput.Keyring)) + }(), Aws_cryptography_materialProviders_CreateRequiredEncryptionContextCMMInput_requiredEncryptionContextKeys_ToDafny(nativeInput.RequiredEncryptionContextKeys)) + }() + +} + +func DecryptionMaterials_ToDafny(nativeInput awscryptographymaterialproviderssmithygeneratedtypes.DecryptionMaterials) AwsCryptographyMaterialProvidersTypes.DecryptionMaterials { + + return func() AwsCryptographyMaterialProvidersTypes.DecryptionMaterials { + + return AwsCryptographyMaterialProvidersTypes.Companion_DecryptionMaterials_.Create_DecryptionMaterials_(Aws_cryptography_materialProviders_DecryptionMaterials_algorithmSuite_ToDafny(nativeInput.AlgorithmSuite), Aws_cryptography_materialProviders_DecryptionMaterials_encryptionContext_ToDafny(nativeInput.EncryptionContext), Aws_cryptography_materialProviders_DecryptionMaterials_requiredEncryptionContextKeys_ToDafny(nativeInput.RequiredEncryptionContextKeys), Aws_cryptography_materialProviders_DecryptionMaterials_plaintextDataKey_ToDafny(nativeInput.PlaintextDataKey), Aws_cryptography_materialProviders_DecryptionMaterials_verificationKey_ToDafny(nativeInput.VerificationKey), Aws_cryptography_materialProviders_DecryptionMaterials_symmetricSigningKey_ToDafny(nativeInput.SymmetricSigningKey)) + }() + +} + +func EncryptionMaterials_ToDafny(nativeInput awscryptographymaterialproviderssmithygeneratedtypes.EncryptionMaterials) AwsCryptographyMaterialProvidersTypes.EncryptionMaterials { + + return func() AwsCryptographyMaterialProvidersTypes.EncryptionMaterials { + + return AwsCryptographyMaterialProvidersTypes.Companion_EncryptionMaterials_.Create_EncryptionMaterials_(Aws_cryptography_materialProviders_EncryptionMaterials_algorithmSuite_ToDafny(nativeInput.AlgorithmSuite), Aws_cryptography_materialProviders_EncryptionMaterials_encryptionContext_ToDafny(nativeInput.EncryptionContext), Aws_cryptography_materialProviders_EncryptionMaterials_encryptedDataKeys_ToDafny(nativeInput.EncryptedDataKeys), Aws_cryptography_materialProviders_EncryptionMaterials_requiredEncryptionContextKeys_ToDafny(nativeInput.RequiredEncryptionContextKeys), Aws_cryptography_materialProviders_EncryptionMaterials_plaintextDataKey_ToDafny(nativeInput.PlaintextDataKey), Aws_cryptography_materialProviders_EncryptionMaterials_signingKey_ToDafny(nativeInput.SigningKey), Aws_cryptography_materialProviders_EncryptionMaterials_symmetricSigningKeys_ToDafny(nativeInput.SymmetricSigningKeys)) + }() + +} + +func GetAlgorithmSuiteInfoInput_ToDafny(nativeInput awscryptographymaterialproviderssmithygeneratedtypes.GetAlgorithmSuiteInfoInput) dafny.Sequence { + + return Aws_cryptography_materialProviders_GetAlgorithmSuiteInfoInput_binaryId_ToDafny(nativeInput.BinaryId) + +} + +func AlgorithmSuiteInfo_ToDafny(nativeOutput awscryptographymaterialproviderssmithygeneratedtypes.AlgorithmSuiteInfo) AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo { + + return func() AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo { + + return AwsCryptographyMaterialProvidersTypes.Companion_AlgorithmSuiteInfo_.Create_AlgorithmSuiteInfo_(Aws_cryptography_materialProviders_AlgorithmSuiteInfo_id_ToDafny(nativeOutput.Id), Aws_cryptography_materialProviders_AlgorithmSuiteInfo_binaryId_ToDafny(nativeOutput.BinaryId), Aws_cryptography_materialProviders_AlgorithmSuiteInfo_messageVersion_ToDafny(nativeOutput.MessageVersion), Aws_cryptography_materialProviders_AlgorithmSuiteInfo_encrypt_ToDafny(nativeOutput.Encrypt), Aws_cryptography_materialProviders_AlgorithmSuiteInfo_kdf_ToDafny(nativeOutput.Kdf), Aws_cryptography_materialProviders_AlgorithmSuiteInfo_commitment_ToDafny(nativeOutput.Commitment), Aws_cryptography_materialProviders_AlgorithmSuiteInfo_signature_ToDafny(nativeOutput.Signature), Aws_cryptography_materialProviders_AlgorithmSuiteInfo_symmetricSignature_ToDafny(nativeOutput.SymmetricSignature), Aws_cryptography_materialProviders_AlgorithmSuiteInfo_edkWrapping_ToDafny(nativeOutput.EdkWrapping)) + }() + +} + +func InitializeDecryptionMaterialsInput_ToDafny(nativeInput awscryptographymaterialproviderssmithygeneratedtypes.InitializeDecryptionMaterialsInput) AwsCryptographyMaterialProvidersTypes.InitializeDecryptionMaterialsInput { + + return func() AwsCryptographyMaterialProvidersTypes.InitializeDecryptionMaterialsInput { + + return AwsCryptographyMaterialProvidersTypes.Companion_InitializeDecryptionMaterialsInput_.Create_InitializeDecryptionMaterialsInput_(Aws_cryptography_materialProviders_InitializeDecryptionMaterialsInput_algorithmSuiteId_ToDafny(nativeInput.AlgorithmSuiteId), Aws_cryptography_materialProviders_InitializeDecryptionMaterialsInput_encryptionContext_ToDafny(nativeInput.EncryptionContext), Aws_cryptography_materialProviders_InitializeDecryptionMaterialsInput_requiredEncryptionContextKeys_ToDafny(nativeInput.RequiredEncryptionContextKeys)) + }() + +} + +func InitializeEncryptionMaterialsInput_ToDafny(nativeInput awscryptographymaterialproviderssmithygeneratedtypes.InitializeEncryptionMaterialsInput) AwsCryptographyMaterialProvidersTypes.InitializeEncryptionMaterialsInput { + + return func() AwsCryptographyMaterialProvidersTypes.InitializeEncryptionMaterialsInput { + + return AwsCryptographyMaterialProvidersTypes.Companion_InitializeEncryptionMaterialsInput_.Create_InitializeEncryptionMaterialsInput_(Aws_cryptography_materialProviders_InitializeEncryptionMaterialsInput_algorithmSuiteId_ToDafny(nativeInput.AlgorithmSuiteId), Aws_cryptography_materialProviders_InitializeEncryptionMaterialsInput_encryptionContext_ToDafny(nativeInput.EncryptionContext), Aws_cryptography_materialProviders_InitializeEncryptionMaterialsInput_requiredEncryptionContextKeys_ToDafny(nativeInput.RequiredEncryptionContextKeys), Aws_cryptography_materialProviders_InitializeEncryptionMaterialsInput_signingKey_ToDafny(nativeInput.SigningKey), Aws_cryptography_materialProviders_InitializeEncryptionMaterialsInput_verificationKey_ToDafny(nativeInput.VerificationKey)) + }() + +} + +func ValidateCommitmentPolicyOnDecryptInput_ToDafny(nativeInput awscryptographymaterialproviderssmithygeneratedtypes.ValidateCommitmentPolicyOnDecryptInput) AwsCryptographyMaterialProvidersTypes.ValidateCommitmentPolicyOnDecryptInput { + + return func() AwsCryptographyMaterialProvidersTypes.ValidateCommitmentPolicyOnDecryptInput { + + return AwsCryptographyMaterialProvidersTypes.Companion_ValidateCommitmentPolicyOnDecryptInput_.Create_ValidateCommitmentPolicyOnDecryptInput_(Aws_cryptography_materialProviders_ValidateCommitmentPolicyOnDecryptInput_algorithm_ToDafny(nativeInput.Algorithm), Aws_cryptography_materialProviders_ValidateCommitmentPolicyOnDecryptInput_commitmentPolicy_ToDafny(nativeInput.CommitmentPolicy)) + }() + +} + +func ValidateCommitmentPolicyOnEncryptInput_ToDafny(nativeInput awscryptographymaterialproviderssmithygeneratedtypes.ValidateCommitmentPolicyOnEncryptInput) AwsCryptographyMaterialProvidersTypes.ValidateCommitmentPolicyOnEncryptInput { + + return func() AwsCryptographyMaterialProvidersTypes.ValidateCommitmentPolicyOnEncryptInput { + + return AwsCryptographyMaterialProvidersTypes.Companion_ValidateCommitmentPolicyOnEncryptInput_.Create_ValidateCommitmentPolicyOnEncryptInput_(Aws_cryptography_materialProviders_ValidateCommitmentPolicyOnEncryptInput_algorithm_ToDafny(nativeInput.Algorithm), Aws_cryptography_materialProviders_ValidateCommitmentPolicyOnEncryptInput_commitmentPolicy_ToDafny(nativeInput.CommitmentPolicy)) + }() + +} + +func ValidDecryptionMaterialsTransitionInput_ToDafny(nativeInput awscryptographymaterialproviderssmithygeneratedtypes.ValidDecryptionMaterialsTransitionInput) AwsCryptographyMaterialProvidersTypes.ValidDecryptionMaterialsTransitionInput { + + return func() AwsCryptographyMaterialProvidersTypes.ValidDecryptionMaterialsTransitionInput { + + return AwsCryptographyMaterialProvidersTypes.Companion_ValidDecryptionMaterialsTransitionInput_.Create_ValidDecryptionMaterialsTransitionInput_(Aws_cryptography_materialProviders_ValidDecryptionMaterialsTransitionInput_start_ToDafny(nativeInput.Start), Aws_cryptography_materialProviders_ValidDecryptionMaterialsTransitionInput_stop_ToDafny(nativeInput.Stop)) + }() + +} + +func ValidEncryptionMaterialsTransitionInput_ToDafny(nativeInput awscryptographymaterialproviderssmithygeneratedtypes.ValidEncryptionMaterialsTransitionInput) AwsCryptographyMaterialProvidersTypes.ValidEncryptionMaterialsTransitionInput { + + return func() AwsCryptographyMaterialProvidersTypes.ValidEncryptionMaterialsTransitionInput { + + return AwsCryptographyMaterialProvidersTypes.Companion_ValidEncryptionMaterialsTransitionInput_.Create_ValidEncryptionMaterialsTransitionInput_(Aws_cryptography_materialProviders_ValidEncryptionMaterialsTransitionInput_start_ToDafny(nativeInput.Start), Aws_cryptography_materialProviders_ValidEncryptionMaterialsTransitionInput_stop_ToDafny(nativeInput.Stop)) + }() + +} + +func GetBranchKeyIdInput_ToDafny(nativeInput awscryptographymaterialproviderssmithygeneratedtypes.GetBranchKeyIdInput) AwsCryptographyMaterialProvidersTypes.GetBranchKeyIdInput { + + return func() AwsCryptographyMaterialProvidersTypes.GetBranchKeyIdInput { + + return AwsCryptographyMaterialProvidersTypes.Companion_GetBranchKeyIdInput_.Create_GetBranchKeyIdInput_(Aws_cryptography_materialProviders_GetBranchKeyIdInput_encryptionContext_ToDafny(nativeInput.EncryptionContext)) + }() + +} + +func GetBranchKeyIdOutput_ToDafny(nativeOutput awscryptographymaterialproviderssmithygeneratedtypes.GetBranchKeyIdOutput) AwsCryptographyMaterialProvidersTypes.GetBranchKeyIdOutput { + + return func() AwsCryptographyMaterialProvidersTypes.GetBranchKeyIdOutput { + + return AwsCryptographyMaterialProvidersTypes.Companion_GetBranchKeyIdOutput_.Create_GetBranchKeyIdOutput_(Aws_cryptography_materialProviders_GetBranchKeyIdOutput_branchKeyId_ToDafny(nativeOutput.BranchKeyId)) + }() + +} + +func BranchKeyIdSupplier_ToDafny(nativeResource awscryptographymaterialproviderssmithygeneratedtypes.IBranchKeyIdSupplier) AwsCryptographyMaterialProvidersTypes.IBranchKeyIdSupplier { + val, ok := nativeResource.(*BranchKeyIdSupplier) + if ok { + return val.Impl + } + return BranchKeyIdSupplier{&BranchKeyIdSupplierNativeWrapper{Impl: nativeResource}}.Impl + +} + +func GetClientInput_ToDafny(nativeInput awscryptographymaterialproviderssmithygeneratedtypes.GetClientInput) AwsCryptographyMaterialProvidersTypes.GetClientInput { + + return func() AwsCryptographyMaterialProvidersTypes.GetClientInput { + + return AwsCryptographyMaterialProvidersTypes.Companion_GetClientInput_.Create_GetClientInput_(Aws_cryptography_materialProviders_GetClientInput_region_ToDafny(nativeInput.Region)) + }() + +} + +func ClientSupplier_ToDafny(nativeResource awscryptographymaterialproviderssmithygeneratedtypes.IClientSupplier) AwsCryptographyMaterialProvidersTypes.IClientSupplier { + val, ok := nativeResource.(*ClientSupplier) + if ok { + return val.Impl + } + return ClientSupplier{&ClientSupplierNativeWrapper{Impl: nativeResource}}.Impl + +} + +func DeleteCacheEntryInput_ToDafny(nativeInput awscryptographymaterialproviderssmithygeneratedtypes.DeleteCacheEntryInput) AwsCryptographyMaterialProvidersTypes.DeleteCacheEntryInput { + + return func() AwsCryptographyMaterialProvidersTypes.DeleteCacheEntryInput { + + return AwsCryptographyMaterialProvidersTypes.Companion_DeleteCacheEntryInput_.Create_DeleteCacheEntryInput_(Aws_cryptography_materialProviders_DeleteCacheEntryInput_identifier_ToDafny(nativeInput.Identifier)) + }() + +} + +func GetCacheEntryInput_ToDafny(nativeInput awscryptographymaterialproviderssmithygeneratedtypes.GetCacheEntryInput) AwsCryptographyMaterialProvidersTypes.GetCacheEntryInput { + + return func() AwsCryptographyMaterialProvidersTypes.GetCacheEntryInput { + + return AwsCryptographyMaterialProvidersTypes.Companion_GetCacheEntryInput_.Create_GetCacheEntryInput_(Aws_cryptography_materialProviders_GetCacheEntryInput_identifier_ToDafny(nativeInput.Identifier), Aws_cryptography_materialProviders_GetCacheEntryInput_bytesUsed_ToDafny(nativeInput.BytesUsed)) + }() + +} + +func GetCacheEntryOutput_ToDafny(nativeOutput awscryptographymaterialproviderssmithygeneratedtypes.GetCacheEntryOutput) AwsCryptographyMaterialProvidersTypes.GetCacheEntryOutput { + + return func() AwsCryptographyMaterialProvidersTypes.GetCacheEntryOutput { + + return AwsCryptographyMaterialProvidersTypes.Companion_GetCacheEntryOutput_.Create_GetCacheEntryOutput_(Aws_cryptography_materialProviders_GetCacheEntryOutput_materials_ToDafny(nativeOutput.Materials), Aws_cryptography_materialProviders_GetCacheEntryOutput_creationTime_ToDafny(nativeOutput.CreationTime), Aws_cryptography_materialProviders_GetCacheEntryOutput_expiryTime_ToDafny(nativeOutput.ExpiryTime), Aws_cryptography_materialProviders_GetCacheEntryOutput_messagesUsed_ToDafny(nativeOutput.MessagesUsed), Aws_cryptography_materialProviders_GetCacheEntryOutput_bytesUsed_ToDafny(nativeOutput.BytesUsed)) + }() + +} + +func PutCacheEntryInput_ToDafny(nativeInput awscryptographymaterialproviderssmithygeneratedtypes.PutCacheEntryInput) AwsCryptographyMaterialProvidersTypes.PutCacheEntryInput { + + return func() AwsCryptographyMaterialProvidersTypes.PutCacheEntryInput { + + return AwsCryptographyMaterialProvidersTypes.Companion_PutCacheEntryInput_.Create_PutCacheEntryInput_(Aws_cryptography_materialProviders_PutCacheEntryInput_identifier_ToDafny(nativeInput.Identifier), Aws_cryptography_materialProviders_PutCacheEntryInput_materials_ToDafny(nativeInput.Materials), Aws_cryptography_materialProviders_PutCacheEntryInput_creationTime_ToDafny(nativeInput.CreationTime), Aws_cryptography_materialProviders_PutCacheEntryInput_expiryTime_ToDafny(nativeInput.ExpiryTime), Aws_cryptography_materialProviders_PutCacheEntryInput_messagesUsed_ToDafny(nativeInput.MessagesUsed), Aws_cryptography_materialProviders_PutCacheEntryInput_bytesUsed_ToDafny(nativeInput.BytesUsed)) + }() + +} + +func UpdateUsageMetadataInput_ToDafny(nativeInput awscryptographymaterialproviderssmithygeneratedtypes.UpdateUsageMetadataInput) AwsCryptographyMaterialProvidersTypes.UpdateUsageMetadataInput { + + return func() AwsCryptographyMaterialProvidersTypes.UpdateUsageMetadataInput { + + return AwsCryptographyMaterialProvidersTypes.Companion_UpdateUsageMetadataInput_.Create_UpdateUsageMetadataInput_(Aws_cryptography_materialProviders_UpdateUsageMetadataInput_identifier_ToDafny(nativeInput.Identifier), Aws_cryptography_materialProviders_UpdateUsageMetadataInput_bytesUsed_ToDafny(nativeInput.BytesUsed)) + }() + +} + +func CryptographicMaterialsCache_ToDafny(nativeResource awscryptographymaterialproviderssmithygeneratedtypes.ICryptographicMaterialsCache) AwsCryptographyMaterialProvidersTypes.ICryptographicMaterialsCache { + val, ok := nativeResource.(*CryptographicMaterialsCache) + if ok { + return val.Impl + } + return CryptographicMaterialsCache{&CryptographicMaterialsCacheNativeWrapper{Impl: nativeResource}}.Impl + +} + +func DecryptMaterialsInput_ToDafny(nativeInput awscryptographymaterialproviderssmithygeneratedtypes.DecryptMaterialsInput) AwsCryptographyMaterialProvidersTypes.DecryptMaterialsInput { + + return func() AwsCryptographyMaterialProvidersTypes.DecryptMaterialsInput { + + return AwsCryptographyMaterialProvidersTypes.Companion_DecryptMaterialsInput_.Create_DecryptMaterialsInput_(Aws_cryptography_materialProviders_DecryptMaterialsInput_algorithmSuiteId_ToDafny(nativeInput.AlgorithmSuiteId), Aws_cryptography_materialProviders_DecryptMaterialsInput_commitmentPolicy_ToDafny(nativeInput.CommitmentPolicy), Aws_cryptography_materialProviders_DecryptMaterialsInput_encryptedDataKeys_ToDafny(nativeInput.EncryptedDataKeys), Aws_cryptography_materialProviders_DecryptMaterialsInput_encryptionContext_ToDafny(nativeInput.EncryptionContext), Aws_cryptography_materialProviders_DecryptMaterialsInput_reproducedEncryptionContext_ToDafny(nativeInput.ReproducedEncryptionContext)) + }() + +} + +func DecryptMaterialsOutput_ToDafny(nativeOutput awscryptographymaterialproviderssmithygeneratedtypes.DecryptMaterialsOutput) AwsCryptographyMaterialProvidersTypes.DecryptMaterialsOutput { + + return func() AwsCryptographyMaterialProvidersTypes.DecryptMaterialsOutput { + + return AwsCryptographyMaterialProvidersTypes.Companion_DecryptMaterialsOutput_.Create_DecryptMaterialsOutput_(Aws_cryptography_materialProviders_DecryptMaterialsOutput_decryptionMaterials_ToDafny(nativeOutput.DecryptionMaterials)) + }() + +} + +func GetEncryptionMaterialsInput_ToDafny(nativeInput awscryptographymaterialproviderssmithygeneratedtypes.GetEncryptionMaterialsInput) AwsCryptographyMaterialProvidersTypes.GetEncryptionMaterialsInput { + + return func() AwsCryptographyMaterialProvidersTypes.GetEncryptionMaterialsInput { + + return AwsCryptographyMaterialProvidersTypes.Companion_GetEncryptionMaterialsInput_.Create_GetEncryptionMaterialsInput_(Aws_cryptography_materialProviders_GetEncryptionMaterialsInput_encryptionContext_ToDafny(nativeInput.EncryptionContext), Aws_cryptography_materialProviders_GetEncryptionMaterialsInput_commitmentPolicy_ToDafny(nativeInput.CommitmentPolicy), Aws_cryptography_materialProviders_GetEncryptionMaterialsInput_algorithmSuiteId_ToDafny(nativeInput.AlgorithmSuiteId), Aws_cryptography_materialProviders_GetEncryptionMaterialsInput_maxPlaintextLength_ToDafny(nativeInput.MaxPlaintextLength), Aws_cryptography_materialProviders_GetEncryptionMaterialsInput_requiredEncryptionContextKeys_ToDafny(nativeInput.RequiredEncryptionContextKeys)) + }() + +} + +func GetEncryptionMaterialsOutput_ToDafny(nativeOutput awscryptographymaterialproviderssmithygeneratedtypes.GetEncryptionMaterialsOutput) AwsCryptographyMaterialProvidersTypes.GetEncryptionMaterialsOutput { + + return func() AwsCryptographyMaterialProvidersTypes.GetEncryptionMaterialsOutput { + + return AwsCryptographyMaterialProvidersTypes.Companion_GetEncryptionMaterialsOutput_.Create_GetEncryptionMaterialsOutput_(Aws_cryptography_materialProviders_GetEncryptionMaterialsOutput_encryptionMaterials_ToDafny(nativeOutput.EncryptionMaterials)) + }() + +} + +func CryptographicMaterialsManager_ToDafny(nativeResource awscryptographymaterialproviderssmithygeneratedtypes.ICryptographicMaterialsManager) AwsCryptographyMaterialProvidersTypes.ICryptographicMaterialsManager { + val, ok := nativeResource.(*CryptographicMaterialsManager) + if ok { + return val.Impl + } + return CryptographicMaterialsManager{&CryptographicMaterialsManagerNativeWrapper{Impl: nativeResource}}.Impl + +} + +func OnDecryptInput_ToDafny(nativeInput awscryptographymaterialproviderssmithygeneratedtypes.OnDecryptInput) AwsCryptographyMaterialProvidersTypes.OnDecryptInput { + + return func() AwsCryptographyMaterialProvidersTypes.OnDecryptInput { + + return AwsCryptographyMaterialProvidersTypes.Companion_OnDecryptInput_.Create_OnDecryptInput_(Aws_cryptography_materialProviders_OnDecryptInput_materials_ToDafny(nativeInput.Materials), Aws_cryptography_materialProviders_OnDecryptInput_encryptedDataKeys_ToDafny(nativeInput.EncryptedDataKeys)) + }() + +} + +func OnDecryptOutput_ToDafny(nativeOutput awscryptographymaterialproviderssmithygeneratedtypes.OnDecryptOutput) AwsCryptographyMaterialProvidersTypes.OnDecryptOutput { + + return func() AwsCryptographyMaterialProvidersTypes.OnDecryptOutput { + + return AwsCryptographyMaterialProvidersTypes.Companion_OnDecryptOutput_.Create_OnDecryptOutput_(Aws_cryptography_materialProviders_OnDecryptOutput_materials_ToDafny(nativeOutput.Materials)) + }() + +} + +func OnEncryptInput_ToDafny(nativeInput awscryptographymaterialproviderssmithygeneratedtypes.OnEncryptInput) AwsCryptographyMaterialProvidersTypes.OnEncryptInput { + + return func() AwsCryptographyMaterialProvidersTypes.OnEncryptInput { + + return AwsCryptographyMaterialProvidersTypes.Companion_OnEncryptInput_.Create_OnEncryptInput_(Aws_cryptography_materialProviders_OnEncryptInput_materials_ToDafny(nativeInput.Materials)) + }() + +} + +func OnEncryptOutput_ToDafny(nativeOutput awscryptographymaterialproviderssmithygeneratedtypes.OnEncryptOutput) AwsCryptographyMaterialProvidersTypes.OnEncryptOutput { + + return func() AwsCryptographyMaterialProvidersTypes.OnEncryptOutput { + + return AwsCryptographyMaterialProvidersTypes.Companion_OnEncryptOutput_.Create_OnEncryptOutput_(Aws_cryptography_materialProviders_OnEncryptOutput_materials_ToDafny(nativeOutput.Materials)) + }() + +} + +func Keyring_ToDafny(nativeResource awscryptographymaterialproviderssmithygeneratedtypes.IKeyring) AwsCryptographyMaterialProvidersTypes.IKeyring { + val, ok := nativeResource.(*Keyring) + if ok { + return val.Impl + } + return Keyring{&KeyringNativeWrapper{Impl: nativeResource}}.Impl + +} + +func AwsCryptographicMaterialProvidersException_ToDafny(nativeInput awscryptographymaterialproviderssmithygeneratedtypes.AwsCryptographicMaterialProvidersException) AwsCryptographyMaterialProvidersTypes.Error { + return func() AwsCryptographyMaterialProvidersTypes.Error { + + return AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(Aws_cryptography_materialProviders_AwsCryptographicMaterialProvidersException_message_ToDafny(nativeInput.Message)) + }() + +} + +func EntryAlreadyExists_ToDafny(nativeInput awscryptographymaterialproviderssmithygeneratedtypes.EntryAlreadyExists) AwsCryptographyMaterialProvidersTypes.Error { + return func() AwsCryptographyMaterialProvidersTypes.Error { + + return AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_EntryAlreadyExists_(Aws_cryptography_materialProviders_EntryAlreadyExists_message_ToDafny(nativeInput.Message)) + }() + +} + +func EntryDoesNotExist_ToDafny(nativeInput awscryptographymaterialproviderssmithygeneratedtypes.EntryDoesNotExist) AwsCryptographyMaterialProvidersTypes.Error { + return func() AwsCryptographyMaterialProvidersTypes.Error { + + return AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_EntryDoesNotExist_(Aws_cryptography_materialProviders_EntryDoesNotExist_message_ToDafny(nativeInput.Message)) + }() + +} + +func InFlightTTLExceeded_ToDafny(nativeInput awscryptographymaterialproviderssmithygeneratedtypes.InFlightTTLExceeded) AwsCryptographyMaterialProvidersTypes.Error { + return func() AwsCryptographyMaterialProvidersTypes.Error { + + return AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_InFlightTTLExceeded_(Aws_cryptography_materialProviders_InFlightTTLExceeded_message_ToDafny(nativeInput.Message)) + }() + +} + +func InvalidAlgorithmSuiteInfo_ToDafny(nativeInput awscryptographymaterialproviderssmithygeneratedtypes.InvalidAlgorithmSuiteInfo) AwsCryptographyMaterialProvidersTypes.Error { + return func() AwsCryptographyMaterialProvidersTypes.Error { + + return AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_InvalidAlgorithmSuiteInfo_(Aws_cryptography_materialProviders_InvalidAlgorithmSuiteInfo_message_ToDafny(nativeInput.Message)) + }() + +} + +func InvalidAlgorithmSuiteInfoOnDecrypt_ToDafny(nativeInput awscryptographymaterialproviderssmithygeneratedtypes.InvalidAlgorithmSuiteInfoOnDecrypt) AwsCryptographyMaterialProvidersTypes.Error { + return func() AwsCryptographyMaterialProvidersTypes.Error { + + return AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_InvalidAlgorithmSuiteInfoOnDecrypt_(Aws_cryptography_materialProviders_InvalidAlgorithmSuiteInfoOnDecrypt_message_ToDafny(nativeInput.Message)) + }() + +} + +func InvalidAlgorithmSuiteInfoOnEncrypt_ToDafny(nativeInput awscryptographymaterialproviderssmithygeneratedtypes.InvalidAlgorithmSuiteInfoOnEncrypt) AwsCryptographyMaterialProvidersTypes.Error { + return func() AwsCryptographyMaterialProvidersTypes.Error { + + return AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_InvalidAlgorithmSuiteInfoOnEncrypt_(Aws_cryptography_materialProviders_InvalidAlgorithmSuiteInfoOnEncrypt_message_ToDafny(nativeInput.Message)) + }() + +} + +func InvalidDecryptionMaterials_ToDafny(nativeInput awscryptographymaterialproviderssmithygeneratedtypes.InvalidDecryptionMaterials) AwsCryptographyMaterialProvidersTypes.Error { + return func() AwsCryptographyMaterialProvidersTypes.Error { + + return AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_InvalidDecryptionMaterials_(Aws_cryptography_materialProviders_InvalidDecryptionMaterials_message_ToDafny(nativeInput.Message)) + }() + +} + +func InvalidDecryptionMaterialsTransition_ToDafny(nativeInput awscryptographymaterialproviderssmithygeneratedtypes.InvalidDecryptionMaterialsTransition) AwsCryptographyMaterialProvidersTypes.Error { + return func() AwsCryptographyMaterialProvidersTypes.Error { + + return AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_InvalidDecryptionMaterialsTransition_(Aws_cryptography_materialProviders_InvalidDecryptionMaterialsTransition_message_ToDafny(nativeInput.Message)) + }() + +} + +func InvalidEncryptionMaterials_ToDafny(nativeInput awscryptographymaterialproviderssmithygeneratedtypes.InvalidEncryptionMaterials) AwsCryptographyMaterialProvidersTypes.Error { + return func() AwsCryptographyMaterialProvidersTypes.Error { + + return AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_InvalidEncryptionMaterials_(Aws_cryptography_materialProviders_InvalidEncryptionMaterials_message_ToDafny(nativeInput.Message)) + }() + +} + +func InvalidEncryptionMaterialsTransition_ToDafny(nativeInput awscryptographymaterialproviderssmithygeneratedtypes.InvalidEncryptionMaterialsTransition) AwsCryptographyMaterialProvidersTypes.Error { + return func() AwsCryptographyMaterialProvidersTypes.Error { + + return AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_InvalidEncryptionMaterialsTransition_(Aws_cryptography_materialProviders_InvalidEncryptionMaterialsTransition_message_ToDafny(nativeInput.Message)) + }() + +} + +func CollectionOfErrors_Input_ToDafny(nativeInput awscryptographymaterialproviderssmithygeneratedtypes.CollectionOfErrors) AwsCryptographyMaterialProvidersTypes.Error { + var e []interface{} + for _, i2 := range nativeInput.ListOfErrors { + e = append(e, Error_ToDafny(i2)) + } + return AwsCryptographyMaterialProvidersTypes.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 awscryptographymaterialproviderssmithygeneratedtypes.OpaqueError) AwsCryptographyMaterialProvidersTypes.Error { + return AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_Opaque_(nativeInput.ErrObject) +} + +func Error_ToDafny(err error) AwsCryptographyMaterialProvidersTypes.Error { + switch err.(type) { + // Service Errors + case awscryptographymaterialproviderssmithygeneratedtypes.AwsCryptographicMaterialProvidersException: + return AwsCryptographicMaterialProvidersException_ToDafny(err.(awscryptographymaterialproviderssmithygeneratedtypes.AwsCryptographicMaterialProvidersException)) + + case awscryptographymaterialproviderssmithygeneratedtypes.EntryAlreadyExists: + return EntryAlreadyExists_ToDafny(err.(awscryptographymaterialproviderssmithygeneratedtypes.EntryAlreadyExists)) + + case awscryptographymaterialproviderssmithygeneratedtypes.EntryDoesNotExist: + return EntryDoesNotExist_ToDafny(err.(awscryptographymaterialproviderssmithygeneratedtypes.EntryDoesNotExist)) + + case awscryptographymaterialproviderssmithygeneratedtypes.InFlightTTLExceeded: + return InFlightTTLExceeded_ToDafny(err.(awscryptographymaterialproviderssmithygeneratedtypes.InFlightTTLExceeded)) + + case awscryptographymaterialproviderssmithygeneratedtypes.InvalidAlgorithmSuiteInfo: + return InvalidAlgorithmSuiteInfo_ToDafny(err.(awscryptographymaterialproviderssmithygeneratedtypes.InvalidAlgorithmSuiteInfo)) + + case awscryptographymaterialproviderssmithygeneratedtypes.InvalidAlgorithmSuiteInfoOnDecrypt: + return InvalidAlgorithmSuiteInfoOnDecrypt_ToDafny(err.(awscryptographymaterialproviderssmithygeneratedtypes.InvalidAlgorithmSuiteInfoOnDecrypt)) + + case awscryptographymaterialproviderssmithygeneratedtypes.InvalidAlgorithmSuiteInfoOnEncrypt: + return InvalidAlgorithmSuiteInfoOnEncrypt_ToDafny(err.(awscryptographymaterialproviderssmithygeneratedtypes.InvalidAlgorithmSuiteInfoOnEncrypt)) + + case awscryptographymaterialproviderssmithygeneratedtypes.InvalidDecryptionMaterials: + return InvalidDecryptionMaterials_ToDafny(err.(awscryptographymaterialproviderssmithygeneratedtypes.InvalidDecryptionMaterials)) + + case awscryptographymaterialproviderssmithygeneratedtypes.InvalidDecryptionMaterialsTransition: + return InvalidDecryptionMaterialsTransition_ToDafny(err.(awscryptographymaterialproviderssmithygeneratedtypes.InvalidDecryptionMaterialsTransition)) + + case awscryptographymaterialproviderssmithygeneratedtypes.InvalidEncryptionMaterials: + return InvalidEncryptionMaterials_ToDafny(err.(awscryptographymaterialproviderssmithygeneratedtypes.InvalidEncryptionMaterials)) + + case awscryptographymaterialproviderssmithygeneratedtypes.InvalidEncryptionMaterialsTransition: + return InvalidEncryptionMaterialsTransition_ToDafny(err.(awscryptographymaterialproviderssmithygeneratedtypes.InvalidEncryptionMaterialsTransition)) + + //DependentErrors + case awscryptographyprimitivessmithygeneratedtypes.AwsCryptographicPrimitivesBaseException: + return AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographyPrimitives_(awscryptographyprimitivessmithygenerated.Error_ToDafny(err)) + + case awscryptographykeystoresmithygeneratedtypes.KeyStoreBaseException: + return AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographyKeyStore_(awscryptographykeystoresmithygenerated.Error_ToDafny(err)) + + case *smithy.OperationError: + if err.(*smithy.OperationError).Service() == "DynamoDB" { + DynamoDBError := comamazonawsdynamodbsmithygenerated.Error_ToDafny(err) + return AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_ComAmazonawsDynamodb_(DynamoDBError) + } + if err.(*smithy.OperationError).Service() == "KMS" { + KMSError := comamazonawskmssmithygenerated.Error_ToDafny(err) + return AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_ComAmazonawsKms_(KMSError) + } + return AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_Opaque_(err) + + case smithy.APIError: + DynamoDBError := comamazonawsdynamodbsmithygenerated.Error_ToDafny(err) + if !DynamoDBError.Is_OpaqueWithText() { + return AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_ComAmazonawsDynamodb_(DynamoDBError) + } + KMSError := comamazonawskmssmithygenerated.Error_ToDafny(err) + if !KMSError.Is_OpaqueWithText() { + return AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_ComAmazonawsKms_(KMSError) + } + return AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_Opaque_(err) + + //Unmodelled Errors + case awscryptographymaterialproviderssmithygeneratedtypes.CollectionOfErrors: + return CollectionOfErrors_Input_ToDafny(err.(awscryptographymaterialproviderssmithygeneratedtypes.CollectionOfErrors)) + + default: + error, ok := err.(awscryptographymaterialproviderssmithygeneratedtypes.OpaqueError) + if !ok { + panic("Error is not an OpaqueError") + } + return OpaqueError_Input_ToDafny(error) + } +} + +func MaterialProvidersConfig_ToDafny(nativeInput awscryptographymaterialproviderssmithygeneratedtypes.MaterialProvidersConfig) AwsCryptographyMaterialProvidersTypes.MaterialProvidersConfig { + return func() AwsCryptographyMaterialProvidersTypes.MaterialProvidersConfig { + + return AwsCryptographyMaterialProvidersTypes.Companion_MaterialProvidersConfig_.Create_MaterialProvidersConfig_() + }() + +} + +func Materials_ToDafny(nativeInput awscryptographymaterialproviderssmithygeneratedtypes.Materials) AwsCryptographyMaterialProvidersTypes.Materials { + return func() AwsCryptographyMaterialProvidersTypes.Materials { + + switch nativeInput.(type) { + case *awscryptographymaterialproviderssmithygeneratedtypes.MaterialsMemberEncryption: + var inputToConversion = Aws_cryptography_materialProviders_Materials_Encryption_ToDafny(nativeInput.(*awscryptographymaterialproviderssmithygeneratedtypes.MaterialsMemberEncryption).Value) + return AwsCryptographyMaterialProvidersTypes.CompanionStruct_Materials_{}.Create_Encryption_(inputToConversion.UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.EncryptionMaterials)) + case *awscryptographymaterialproviderssmithygeneratedtypes.MaterialsMemberDecryption: + var inputToConversion = Aws_cryptography_materialProviders_Materials_Decryption_ToDafny(nativeInput.(*awscryptographymaterialproviderssmithygeneratedtypes.MaterialsMemberDecryption).Value) + return AwsCryptographyMaterialProvidersTypes.CompanionStruct_Materials_{}.Create_Decryption_(inputToConversion.UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.DecryptionMaterials)) + case *awscryptographymaterialproviderssmithygeneratedtypes.MaterialsMemberBranchKey: + var inputToConversion = Aws_cryptography_materialProviders_Materials_BranchKey_ToDafny(nativeInput.(*awscryptographymaterialproviderssmithygeneratedtypes.MaterialsMemberBranchKey).Value) + return AwsCryptographyMaterialProvidersTypes.CompanionStruct_Materials_{}.Create_BranchKey_(inputToConversion.UnwrapOr(nil).(AwsCryptographyKeyStoreTypes.BranchKeyMaterials)) + case *awscryptographymaterialproviderssmithygeneratedtypes.MaterialsMemberBeaconKey: + var inputToConversion = Aws_cryptography_materialProviders_Materials_BeaconKey_ToDafny(nativeInput.(*awscryptographymaterialproviderssmithygeneratedtypes.MaterialsMemberBeaconKey).Value) + return AwsCryptographyMaterialProvidersTypes.CompanionStruct_Materials_{}.Create_BeaconKey_(inputToConversion.UnwrapOr(nil).(AwsCryptographyKeyStoreTypes.BeaconKeyMaterials)) + + default: + panic("Unhandled union type") + } + }() + +} + +func StaticConfigurations_ToDafny(nativeInput awscryptographymaterialproviderssmithygeneratedtypes.StaticConfigurations) AwsCryptographyMaterialProvidersTypes.StaticConfigurations { + return func() AwsCryptographyMaterialProvidersTypes.StaticConfigurations { + + switch nativeInput.(type) { + case *awscryptographymaterialproviderssmithygeneratedtypes.StaticConfigurationsMemberAWS_KMS_ECDH: + var inputToConversion = Aws_cryptography_materialProviders_StaticConfigurations_AWS_KMS_ECDH_ToDafny(nativeInput.(*awscryptographymaterialproviderssmithygeneratedtypes.StaticConfigurationsMemberAWS_KMS_ECDH).Value) + return AwsCryptographyMaterialProvidersTypes.CompanionStruct_StaticConfigurations_{}.Create_AWS__KMS__ECDH_(inputToConversion.UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.KmsEcdhStaticConfigurations)) + case *awscryptographymaterialproviderssmithygeneratedtypes.StaticConfigurationsMemberRAW_ECDH: + var inputToConversion = Aws_cryptography_materialProviders_StaticConfigurations_RAW_ECDH_ToDafny(nativeInput.(*awscryptographymaterialproviderssmithygeneratedtypes.StaticConfigurationsMemberRAW_ECDH).Value) + return AwsCryptographyMaterialProvidersTypes.CompanionStruct_StaticConfigurations_{}.Create_RAW__ECDH_(inputToConversion.UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.RawEcdhStaticConfigurations)) + + default: + panic("Unhandled union type") + } + }() + +} + +func KeyAgreementScheme_ToDafny(nativeInput awscryptographymaterialproviderssmithygeneratedtypes.KeyAgreementScheme) AwsCryptographyMaterialProvidersTypes.KeyAgreementScheme { + return func() AwsCryptographyMaterialProvidersTypes.KeyAgreementScheme { + + switch nativeInput.(type) { + case *awscryptographymaterialproviderssmithygeneratedtypes.KeyAgreementSchemeMemberStaticConfiguration: + var inputToConversion = Aws_cryptography_materialProviders_KeyAgreementScheme_StaticConfiguration_ToDafny(nativeInput.(*awscryptographymaterialproviderssmithygeneratedtypes.KeyAgreementSchemeMemberStaticConfiguration).Value) + return AwsCryptographyMaterialProvidersTypes.CompanionStruct_KeyAgreementScheme_{}.Create_StaticConfiguration_(inputToConversion.UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.StaticConfigurations)) + + default: + panic("Unhandled union type") + } + }() + +} + +func Aws_cryptography_materialProviders_CreateAwsKmsDiscoveryKeyringInput_kmsClient_ToDafny(input *kms.Client) ComAmazonawsKmsTypes.IKMSClient { + return &KMSwrapped.Shim{Client: input} +} + +func Aws_cryptography_materialProviders_CreateAwsKmsDiscoveryKeyringInput_discoveryFilter_ToDafny(input *awscryptographymaterialproviderssmithygeneratedtypes.DiscoveryFilter) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(AwsCryptographyMaterialProvidersTypes.Companion_DiscoveryFilter_.Create_DiscoveryFilter_(Aws_cryptography_materialProviders_DiscoveryFilter_accountIds_ToDafny(input.AccountIds), Aws_cryptography_materialProviders_DiscoveryFilter_partition_ToDafny(input.Partition))) + }() +} + +func Aws_cryptography_materialProviders_DiscoveryFilter_accountIds_ToDafny(input []string) dafny.Sequence { + return func() dafny.Sequence { + + var fieldValue []interface{} = make([]interface{}, 0) + for _, val := range input { + element := Aws_cryptography_materialProviders_AccountIdList_member_ToDafny(val) + fieldValue = append(fieldValue, element) + } + return dafny.SeqOf(fieldValue...) + }() +} + +func Aws_cryptography_materialProviders_AccountIdList_member_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_materialProviders_DiscoveryFilter_partition_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_materialProviders_CreateAwsKmsDiscoveryKeyringInput_grantTokens_ToDafny(input []string) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + var fieldValue []interface{} = make([]interface{}, 0) + for _, val := range input { + element := Aws_cryptography_materialProviders_GrantTokenList_member_ToDafny(val) + fieldValue = append(fieldValue, element) + } + return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(fieldValue...)) + }() +} + +func Aws_cryptography_materialProviders_GrantTokenList_member_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_materialProviders_CreateAwsKmsDiscoveryMultiKeyringInput_regions_ToDafny(input []string) dafny.Sequence { + return func() dafny.Sequence { + + var fieldValue []interface{} = make([]interface{}, 0) + for _, val := range input { + element := Aws_cryptography_materialProviders_RegionList_member_ToDafny(val) + fieldValue = append(fieldValue, element) + } + return dafny.SeqOf(fieldValue...) + }() +} + +func Aws_cryptography_materialProviders_RegionList_member_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_materialProviders_CreateAwsKmsDiscoveryMultiKeyringInput_discoveryFilter_ToDafny(input *awscryptographymaterialproviderssmithygeneratedtypes.DiscoveryFilter) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(AwsCryptographyMaterialProvidersTypes.Companion_DiscoveryFilter_.Create_DiscoveryFilter_(Aws_cryptography_materialProviders_DiscoveryFilter_accountIds_ToDafny(input.AccountIds), Aws_cryptography_materialProviders_DiscoveryFilter_partition_ToDafny(input.Partition))) + }() +} + +func Aws_cryptography_materialProviders_CreateAwsKmsDiscoveryMultiKeyringInput_grantTokens_ToDafny(input []string) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + var fieldValue []interface{} = make([]interface{}, 0) + for _, val := range input { + element := Aws_cryptography_materialProviders_GrantTokenList_member_ToDafny(val) + fieldValue = append(fieldValue, element) + } + return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(fieldValue...)) + }() +} + +func Aws_cryptography_materialProviders_CreateAwsKmsEcdhKeyringInput_KeyAgreementScheme_ToDafny(input awscryptographymaterialproviderssmithygeneratedtypes.KmsEcdhStaticConfigurations) AwsCryptographyMaterialProvidersTypes.KmsEcdhStaticConfigurations { + return func() AwsCryptographyMaterialProvidersTypes.KmsEcdhStaticConfigurations { + + switch input.(type) { + case *awscryptographymaterialproviderssmithygeneratedtypes.KmsEcdhStaticConfigurationsMemberKmsPublicKeyDiscovery: + var inputToConversion = Aws_cryptography_materialProviders_KmsEcdhStaticConfigurations_KmsPublicKeyDiscovery_ToDafny(input.(*awscryptographymaterialproviderssmithygeneratedtypes.KmsEcdhStaticConfigurationsMemberKmsPublicKeyDiscovery).Value) + return AwsCryptographyMaterialProvidersTypes.CompanionStruct_KmsEcdhStaticConfigurations_{}.Create_KmsPublicKeyDiscovery_(inputToConversion.UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.KmsPublicKeyDiscoveryInput)) + case *awscryptographymaterialproviderssmithygeneratedtypes.KmsEcdhStaticConfigurationsMemberKmsPrivateKeyToStaticPublicKey: + var inputToConversion = Aws_cryptography_materialProviders_KmsEcdhStaticConfigurations_KmsPrivateKeyToStaticPublicKey_ToDafny(input.(*awscryptographymaterialproviderssmithygeneratedtypes.KmsEcdhStaticConfigurationsMemberKmsPrivateKeyToStaticPublicKey).Value) + return AwsCryptographyMaterialProvidersTypes.CompanionStruct_KmsEcdhStaticConfigurations_{}.Create_KmsPrivateKeyToStaticPublicKey_(inputToConversion.UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.KmsPrivateKeyToStaticPublicKeyInput)) + + default: + panic("Unhandled union type") + } + }() +} + +func Aws_cryptography_materialProviders_KmsEcdhStaticConfigurations_KmsPublicKeyDiscovery_ToDafny(input awscryptographymaterialproviderssmithygeneratedtypes.KmsPublicKeyDiscoveryInput) Wrappers.Option { + return func() Wrappers.Option { + + return Wrappers.Companion_Option_.Create_Some_(AwsCryptographyMaterialProvidersTypes.Companion_KmsPublicKeyDiscoveryInput_.Create_KmsPublicKeyDiscoveryInput_(Aws_cryptography_materialProviders_KmsPublicKeyDiscoveryInput_recipientKmsIdentifier_ToDafny(input.RecipientKmsIdentifier))) + }() +} + +func Aws_cryptography_materialProviders_KmsPublicKeyDiscoveryInput_recipientKmsIdentifier_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_materialProviders_KmsEcdhStaticConfigurations_KmsPrivateKeyToStaticPublicKey_ToDafny(input awscryptographymaterialproviderssmithygeneratedtypes.KmsPrivateKeyToStaticPublicKeyInput) Wrappers.Option { + return func() Wrappers.Option { + + return Wrappers.Companion_Option_.Create_Some_(AwsCryptographyMaterialProvidersTypes.Companion_KmsPrivateKeyToStaticPublicKeyInput_.Create_KmsPrivateKeyToStaticPublicKeyInput_(Aws_cryptography_materialProviders_KmsPrivateKeyToStaticPublicKeyInput_senderKmsIdentifier_ToDafny(input.SenderKmsIdentifier), Aws_cryptography_materialProviders_KmsPrivateKeyToStaticPublicKeyInput_senderPublicKey_ToDafny(input.SenderPublicKey), Aws_cryptography_materialProviders_KmsPrivateKeyToStaticPublicKeyInput_recipientPublicKey_ToDafny(input.RecipientPublicKey))) + }() +} + +func Aws_cryptography_materialProviders_KmsPrivateKeyToStaticPublicKeyInput_senderKmsIdentifier_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_materialProviders_KmsPrivateKeyToStaticPublicKeyInput_senderPublicKey_ToDafny(input []byte) Wrappers.Option { + return func() Wrappers.Option { + var v []interface{} + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + for _, e := range input { + v = append(v, e) + } + return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(v...)) + }() +} + +func Aws_cryptography_materialProviders_KmsPrivateKeyToStaticPublicKeyInput_recipientPublicKey_ToDafny(input []byte) dafny.Sequence { + return func() dafny.Sequence { + var v []interface{} + if input == nil { + return nil + } + for _, e := range input { + v = append(v, e) + } + return dafny.SeqOf(v...) + }() +} + +func Aws_cryptography_materialProviders_CreateAwsKmsEcdhKeyringInput_curveSpec_ToDafny(input awscryptographyprimitivessmithygeneratedtypes.ECDHCurveSpec) AwsCryptographyPrimitivesTypes.ECDHCurveSpec { + return func() AwsCryptographyPrimitivesTypes.ECDHCurveSpec { + + 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(AwsCryptographyPrimitivesTypes.CompanionStruct_ECDHCurveSpec_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return enum.(AwsCryptographyPrimitivesTypes.ECDHCurveSpec) + }() +} + +func Aws_cryptography_materialProviders_CreateAwsKmsEcdhKeyringInput_kmsClient_ToDafny(input *kms.Client) ComAmazonawsKmsTypes.IKMSClient { + return &KMSwrapped.Shim{Client: input} +} + +func Aws_cryptography_materialProviders_CreateAwsKmsEcdhKeyringInput_grantTokens_ToDafny(input []string) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + var fieldValue []interface{} = make([]interface{}, 0) + for _, val := range input { + element := Aws_cryptography_materialProviders_GrantTokenList_member_ToDafny(val) + fieldValue = append(fieldValue, element) + } + return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(fieldValue...)) + }() +} + +func Aws_cryptography_materialProviders_CreateAwsKmsHierarchicalKeyringInput_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_materialProviders_CreateAwsKmsHierarchicalKeyringInput_keyStore_ToDafny(input *awscryptographykeystoresmithygenerated.Client) AwsCryptographyKeyStoreTypes.IKeyStoreClient { + return input.DafnyClient +} + +func Aws_cryptography_materialProviders_CreateAwsKmsHierarchicalKeyringInput_ttlSeconds_ToDafny(input int64) int64 { + return func() int64 { + + return input + }() +} + +func Aws_cryptography_materialProviders_CreateAwsKmsHierarchicalKeyringInput_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 = 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 = 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 = 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 = 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 = 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_(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_materialProviders_CacheType_Default_ToDafny(input awscryptographymaterialproviderssmithygeneratedtypes.DefaultCache) Wrappers.Option { + return func() Wrappers.Option { + + return Wrappers.Companion_Option_.Create_Some_(AwsCryptographyMaterialProvidersTypes.Companion_DefaultCache_.Create_DefaultCache_(Aws_cryptography_materialProviders_DefaultCache_entryCapacity_ToDafny(input.EntryCapacity))) + }() +} + +func Aws_cryptography_materialProviders_DefaultCache_entryCapacity_ToDafny(input int32) int32 { + return func() int32 { + + return input + }() +} + +func Aws_cryptography_materialProviders_CacheType_No_ToDafny(input awscryptographymaterialproviderssmithygeneratedtypes.NoCache) Wrappers.Option { + return func() Wrappers.Option { + + return Wrappers.Companion_Option_.Create_Some_(AwsCryptographyMaterialProvidersTypes.Companion_NoCache_.Create_NoCache_()) + }() +} + +func Aws_cryptography_materialProviders_CacheType_SingleThreaded_ToDafny(input awscryptographymaterialproviderssmithygeneratedtypes.SingleThreadedCache) Wrappers.Option { + return func() Wrappers.Option { + + return Wrappers.Companion_Option_.Create_Some_(AwsCryptographyMaterialProvidersTypes.Companion_SingleThreadedCache_.Create_SingleThreadedCache_(Aws_cryptography_materialProviders_SingleThreadedCache_entryCapacity_ToDafny(input.EntryCapacity), Aws_cryptography_materialProviders_SingleThreadedCache_entryPruningTailSize_ToDafny(input.EntryPruningTailSize))) + }() +} + +func Aws_cryptography_materialProviders_SingleThreadedCache_entryCapacity_ToDafny(input int32) int32 { + return func() int32 { + + return input + }() +} + +func Aws_cryptography_materialProviders_SingleThreadedCache_entryPruningTailSize_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_materialProviders_CacheType_MultiThreaded_ToDafny(input awscryptographymaterialproviderssmithygeneratedtypes.MultiThreadedCache) Wrappers.Option { + return func() Wrappers.Option { + + return Wrappers.Companion_Option_.Create_Some_(AwsCryptographyMaterialProvidersTypes.Companion_MultiThreadedCache_.Create_MultiThreadedCache_(Aws_cryptography_materialProviders_MultiThreadedCache_entryCapacity_ToDafny(input.EntryCapacity), Aws_cryptography_materialProviders_MultiThreadedCache_entryPruningTailSize_ToDafny(input.EntryPruningTailSize))) + }() +} + +func Aws_cryptography_materialProviders_MultiThreadedCache_entryCapacity_ToDafny(input int32) int32 { + return func() int32 { + + return input + }() +} + +func Aws_cryptography_materialProviders_MultiThreadedCache_entryPruningTailSize_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_materialProviders_CacheType_StormTracking_ToDafny(input awscryptographymaterialproviderssmithygeneratedtypes.StormTrackingCache) Wrappers.Option { + return func() Wrappers.Option { + + return Wrappers.Companion_Option_.Create_Some_(AwsCryptographyMaterialProvidersTypes.Companion_StormTrackingCache_.Create_StormTrackingCache_(Aws_cryptography_materialProviders_StormTrackingCache_entryCapacity_ToDafny(input.EntryCapacity), Aws_cryptography_materialProviders_StormTrackingCache_entryPruningTailSize_ToDafny(input.EntryPruningTailSize), Aws_cryptography_materialProviders_StormTrackingCache_gracePeriod_ToDafny(input.GracePeriod), Aws_cryptography_materialProviders_StormTrackingCache_graceInterval_ToDafny(input.GraceInterval), Aws_cryptography_materialProviders_StormTrackingCache_fanOut_ToDafny(input.FanOut), Aws_cryptography_materialProviders_StormTrackingCache_inFlightTTL_ToDafny(input.InFlightTTL), Aws_cryptography_materialProviders_StormTrackingCache_sleepMilli_ToDafny(input.SleepMilli), Aws_cryptography_materialProviders_StormTrackingCache_timeUnits_ToDafny(input.TimeUnits))) + }() +} + +func Aws_cryptography_materialProviders_StormTrackingCache_entryCapacity_ToDafny(input int32) int32 { + return func() int32 { + + return input + }() +} + +func Aws_cryptography_materialProviders_StormTrackingCache_entryPruningTailSize_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_materialProviders_StormTrackingCache_gracePeriod_ToDafny(input int32) int32 { + return func() int32 { + + return input + }() +} + +func Aws_cryptography_materialProviders_StormTrackingCache_graceInterval_ToDafny(input int32) int32 { + return func() int32 { + + return input + }() +} + +func Aws_cryptography_materialProviders_StormTrackingCache_fanOut_ToDafny(input int32) int32 { + return func() int32 { + + return input + }() +} + +func Aws_cryptography_materialProviders_StormTrackingCache_inFlightTTL_ToDafny(input int32) int32 { + return func() int32 { + + return input + }() +} + +func Aws_cryptography_materialProviders_StormTrackingCache_sleepMilli_ToDafny(input int32) int32 { + return func() int32 { + + return input + }() +} + +func Aws_cryptography_materialProviders_StormTrackingCache_timeUnits_ToDafny(input *awscryptographymaterialproviderssmithygeneratedtypes.TimeUnits) 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_TimeUnits_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return Wrappers.Companion_Option_.Create_Some_(enum.(AwsCryptographyMaterialProvidersTypes.TimeUnits)) + }() +} + +func Aws_cryptography_materialProviders_CreateAwsKmsHierarchicalKeyringInput_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_materialProviders_CreateAwsKmsKeyringInput_kmsKeyId_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_materialProviders_CreateAwsKmsKeyringInput_kmsClient_ToDafny(input *kms.Client) ComAmazonawsKmsTypes.IKMSClient { + return &KMSwrapped.Shim{Client: input} +} + +func Aws_cryptography_materialProviders_CreateAwsKmsKeyringInput_grantTokens_ToDafny(input []string) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + var fieldValue []interface{} = make([]interface{}, 0) + for _, val := range input { + element := Aws_cryptography_materialProviders_GrantTokenList_member_ToDafny(val) + fieldValue = append(fieldValue, element) + } + return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(fieldValue...)) + }() +} + +func Aws_cryptography_materialProviders_CreateAwsKmsMrkDiscoveryKeyringInput_kmsClient_ToDafny(input *kms.Client) ComAmazonawsKmsTypes.IKMSClient { + return &KMSwrapped.Shim{Client: input} +} + +func Aws_cryptography_materialProviders_CreateAwsKmsMrkDiscoveryKeyringInput_discoveryFilter_ToDafny(input *awscryptographymaterialproviderssmithygeneratedtypes.DiscoveryFilter) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(AwsCryptographyMaterialProvidersTypes.Companion_DiscoveryFilter_.Create_DiscoveryFilter_(Aws_cryptography_materialProviders_DiscoveryFilter_accountIds_ToDafny(input.AccountIds), Aws_cryptography_materialProviders_DiscoveryFilter_partition_ToDafny(input.Partition))) + }() +} + +func Aws_cryptography_materialProviders_CreateAwsKmsMrkDiscoveryKeyringInput_grantTokens_ToDafny(input []string) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + var fieldValue []interface{} = make([]interface{}, 0) + for _, val := range input { + element := Aws_cryptography_materialProviders_GrantTokenList_member_ToDafny(val) + fieldValue = append(fieldValue, element) + } + return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(fieldValue...)) + }() +} + +func Aws_cryptography_materialProviders_CreateAwsKmsMrkDiscoveryKeyringInput_region_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_materialProviders_CreateAwsKmsMrkDiscoveryMultiKeyringInput_regions_ToDafny(input []string) dafny.Sequence { + return func() dafny.Sequence { + + var fieldValue []interface{} = make([]interface{}, 0) + for _, val := range input { + element := Aws_cryptography_materialProviders_RegionList_member_ToDafny(val) + fieldValue = append(fieldValue, element) + } + return dafny.SeqOf(fieldValue...) + }() +} + +func Aws_cryptography_materialProviders_CreateAwsKmsMrkDiscoveryMultiKeyringInput_discoveryFilter_ToDafny(input *awscryptographymaterialproviderssmithygeneratedtypes.DiscoveryFilter) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(AwsCryptographyMaterialProvidersTypes.Companion_DiscoveryFilter_.Create_DiscoveryFilter_(Aws_cryptography_materialProviders_DiscoveryFilter_accountIds_ToDafny(input.AccountIds), Aws_cryptography_materialProviders_DiscoveryFilter_partition_ToDafny(input.Partition))) + }() +} + +func Aws_cryptography_materialProviders_CreateAwsKmsMrkDiscoveryMultiKeyringInput_grantTokens_ToDafny(input []string) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + var fieldValue []interface{} = make([]interface{}, 0) + for _, val := range input { + element := Aws_cryptography_materialProviders_GrantTokenList_member_ToDafny(val) + fieldValue = append(fieldValue, element) + } + return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(fieldValue...)) + }() +} + +func Aws_cryptography_materialProviders_CreateAwsKmsMrkKeyringInput_kmsKeyId_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_materialProviders_CreateAwsKmsMrkKeyringInput_kmsClient_ToDafny(input *kms.Client) ComAmazonawsKmsTypes.IKMSClient { + return &KMSwrapped.Shim{Client: input} +} + +func Aws_cryptography_materialProviders_CreateAwsKmsMrkKeyringInput_grantTokens_ToDafny(input []string) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + var fieldValue []interface{} = make([]interface{}, 0) + for _, val := range input { + element := Aws_cryptography_materialProviders_GrantTokenList_member_ToDafny(val) + fieldValue = append(fieldValue, element) + } + return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(fieldValue...)) + }() +} + +func Aws_cryptography_materialProviders_CreateAwsKmsMrkMultiKeyringInput_generator_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_materialProviders_CreateAwsKmsMrkMultiKeyringInput_kmsKeyIds_ToDafny(input []string) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + var fieldValue []interface{} = make([]interface{}, 0) + for _, val := range input { + element := Aws_cryptography_materialProviders_KmsKeyIdList_member_ToDafny(val) + fieldValue = append(fieldValue, element) + } + return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(fieldValue...)) + }() +} + +func Aws_cryptography_materialProviders_KmsKeyIdList_member_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_materialProviders_CreateAwsKmsMrkMultiKeyringInput_grantTokens_ToDafny(input []string) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + var fieldValue []interface{} = make([]interface{}, 0) + for _, val := range input { + element := Aws_cryptography_materialProviders_GrantTokenList_member_ToDafny(val) + fieldValue = append(fieldValue, element) + } + return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(fieldValue...)) + }() +} + +func Aws_cryptography_materialProviders_CreateAwsKmsMultiKeyringInput_generator_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_materialProviders_CreateAwsKmsMultiKeyringInput_kmsKeyIds_ToDafny(input []string) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + var fieldValue []interface{} = make([]interface{}, 0) + for _, val := range input { + element := Aws_cryptography_materialProviders_KmsKeyIdList_member_ToDafny(val) + fieldValue = append(fieldValue, element) + } + return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(fieldValue...)) + }() +} + +func Aws_cryptography_materialProviders_CreateAwsKmsMultiKeyringInput_grantTokens_ToDafny(input []string) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + var fieldValue []interface{} = make([]interface{}, 0) + for _, val := range input { + element := Aws_cryptography_materialProviders_GrantTokenList_member_ToDafny(val) + fieldValue = append(fieldValue, element) + } + return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(fieldValue...)) + }() +} + +func Aws_cryptography_materialProviders_CreateAwsKmsRsaKeyringInput_publicKey_ToDafny(input []byte) Wrappers.Option { + return func() Wrappers.Option { + var v []interface{} + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + for _, e := range input { + v = append(v, e) + } + return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(v...)) + }() +} + +func Aws_cryptography_materialProviders_CreateAwsKmsRsaKeyringInput_kmsKeyId_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_materialProviders_CreateAwsKmsRsaKeyringInput_encryptionAlgorithm_ToDafny(input kmstypes.EncryptionAlgorithmSpec) ComAmazonawsKmsTypes.EncryptionAlgorithmSpec { + return func() ComAmazonawsKmsTypes.EncryptionAlgorithmSpec { + + 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(ComAmazonawsKmsTypes.CompanionStruct_EncryptionAlgorithmSpec_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return enum.(ComAmazonawsKmsTypes.EncryptionAlgorithmSpec) + }() +} + +func Aws_cryptography_materialProviders_CreateAwsKmsRsaKeyringInput_kmsClient_ToDafny(input *kms.Client) Wrappers.Option { + return func() Wrappers.Option { + if (input) == nil { + return Wrappers.Companion_Option_.Create_None_() + } + return Wrappers.Companion_Option_.Create_Some_(&KMSwrapped.Shim{Client: input}) + }() +} + +func Aws_cryptography_materialProviders_CreateAwsKmsRsaKeyringInput_grantTokens_ToDafny(input []string) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + var fieldValue []interface{} = make([]interface{}, 0) + for _, val := range input { + element := Aws_cryptography_materialProviders_GrantTokenList_member_ToDafny(val) + fieldValue = append(fieldValue, element) + } + return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(fieldValue...)) + }() +} + +func Aws_cryptography_materialProviders_CreateCryptographicMaterialsCacheInput_cache_ToDafny(input awscryptographymaterialproviderssmithygeneratedtypes.CacheType) AwsCryptographyMaterialProvidersTypes.CacheType { + return func() AwsCryptographyMaterialProvidersTypes.CacheType { + + switch input.(type) { + case *awscryptographymaterialproviderssmithygeneratedtypes.CacheTypeMemberDefault: + var inputToConversion = Aws_cryptography_materialProviders_CacheType_Default_ToDafny(input.(*awscryptographymaterialproviderssmithygeneratedtypes.CacheTypeMemberDefault).Value) + return AwsCryptographyMaterialProvidersTypes.CompanionStruct_CacheType_{}.Create_Default_(inputToConversion.UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.DefaultCache)) + case *awscryptographymaterialproviderssmithygeneratedtypes.CacheTypeMemberNo: + var inputToConversion = Aws_cryptography_materialProviders_CacheType_No_ToDafny(input.(*awscryptographymaterialproviderssmithygeneratedtypes.CacheTypeMemberNo).Value) + return AwsCryptographyMaterialProvidersTypes.CompanionStruct_CacheType_{}.Create_No_(inputToConversion.UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.NoCache)) + case *awscryptographymaterialproviderssmithygeneratedtypes.CacheTypeMemberSingleThreaded: + var inputToConversion = Aws_cryptography_materialProviders_CacheType_SingleThreaded_ToDafny(input.(*awscryptographymaterialproviderssmithygeneratedtypes.CacheTypeMemberSingleThreaded).Value) + return AwsCryptographyMaterialProvidersTypes.CompanionStruct_CacheType_{}.Create_SingleThreaded_(inputToConversion.UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.SingleThreadedCache)) + case *awscryptographymaterialproviderssmithygeneratedtypes.CacheTypeMemberMultiThreaded: + var inputToConversion = Aws_cryptography_materialProviders_CacheType_MultiThreaded_ToDafny(input.(*awscryptographymaterialproviderssmithygeneratedtypes.CacheTypeMemberMultiThreaded).Value) + return AwsCryptographyMaterialProvidersTypes.CompanionStruct_CacheType_{}.Create_MultiThreaded_(inputToConversion.UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.MultiThreadedCache)) + case *awscryptographymaterialproviderssmithygeneratedtypes.CacheTypeMemberStormTracking: + var inputToConversion = Aws_cryptography_materialProviders_CacheType_StormTracking_ToDafny(input.(*awscryptographymaterialproviderssmithygeneratedtypes.CacheTypeMemberStormTracking).Value) + return 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_(CryptographicMaterialsCache_ToDafny(input.(*awscryptographymaterialproviderssmithygeneratedtypes.CacheTypeMemberShared).Value)) + }() + return AwsCryptographyMaterialProvidersTypes.CompanionStruct_CacheType_{}.Create_Shared_(inputToConversion.UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.ICryptographicMaterialsCache)) + + default: + panic("Unhandled union type") + } + }() +} + +func Aws_cryptography_materialProviders_CreateMultiKeyringInput_childKeyrings_ToDafny(input []awscryptographymaterialproviderssmithygeneratedtypes.IKeyring) dafny.Sequence { + return func() dafny.Sequence { + + var fieldValue []interface{} = make([]interface{}, 0) + for _, val := range input { + element := Keyring_ToDafny(val) + fieldValue = append(fieldValue, element) + } + return dafny.SeqOf(fieldValue...) + }() +} + +func Aws_cryptography_materialProviders_CreateRawAesKeyringInput_keyNamespace_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_materialProviders_CreateRawAesKeyringInput_keyName_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_materialProviders_CreateRawAesKeyringInput_wrappingKey_ToDafny(input []byte) dafny.Sequence { + return func() dafny.Sequence { + var v []interface{} + if input == nil { + return nil + } + for _, e := range input { + v = append(v, e) + } + return dafny.SeqOf(v...) + }() +} + +func Aws_cryptography_materialProviders_CreateRawAesKeyringInput_wrappingAlg_ToDafny(input awscryptographymaterialproviderssmithygeneratedtypes.AesWrappingAlg) AwsCryptographyMaterialProvidersTypes.AesWrappingAlg { + return func() AwsCryptographyMaterialProvidersTypes.AesWrappingAlg { + + 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_AesWrappingAlg_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return enum.(AwsCryptographyMaterialProvidersTypes.AesWrappingAlg) + }() +} + +func Aws_cryptography_materialProviders_CreateRawEcdhKeyringInput_KeyAgreementScheme_ToDafny(input awscryptographymaterialproviderssmithygeneratedtypes.RawEcdhStaticConfigurations) AwsCryptographyMaterialProvidersTypes.RawEcdhStaticConfigurations { + return func() AwsCryptographyMaterialProvidersTypes.RawEcdhStaticConfigurations { + + switch input.(type) { + case *awscryptographymaterialproviderssmithygeneratedtypes.RawEcdhStaticConfigurationsMemberPublicKeyDiscovery: + var inputToConversion = Aws_cryptography_materialProviders_RawEcdhStaticConfigurations_PublicKeyDiscovery_ToDafny(input.(*awscryptographymaterialproviderssmithygeneratedtypes.RawEcdhStaticConfigurationsMemberPublicKeyDiscovery).Value) + return AwsCryptographyMaterialProvidersTypes.CompanionStruct_RawEcdhStaticConfigurations_{}.Create_PublicKeyDiscovery_(inputToConversion.UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.PublicKeyDiscoveryInput)) + case *awscryptographymaterialproviderssmithygeneratedtypes.RawEcdhStaticConfigurationsMemberRawPrivateKeyToStaticPublicKey: + var inputToConversion = Aws_cryptography_materialProviders_RawEcdhStaticConfigurations_RawPrivateKeyToStaticPublicKey_ToDafny(input.(*awscryptographymaterialproviderssmithygeneratedtypes.RawEcdhStaticConfigurationsMemberRawPrivateKeyToStaticPublicKey).Value) + return AwsCryptographyMaterialProvidersTypes.CompanionStruct_RawEcdhStaticConfigurations_{}.Create_RawPrivateKeyToStaticPublicKey_(inputToConversion.UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.RawPrivateKeyToStaticPublicKeyInput)) + case *awscryptographymaterialproviderssmithygeneratedtypes.RawEcdhStaticConfigurationsMemberEphemeralPrivateKeyToStaticPublicKey: + var inputToConversion = Aws_cryptography_materialProviders_RawEcdhStaticConfigurations_EphemeralPrivateKeyToStaticPublicKey_ToDafny(input.(*awscryptographymaterialproviderssmithygeneratedtypes.RawEcdhStaticConfigurationsMemberEphemeralPrivateKeyToStaticPublicKey).Value) + return AwsCryptographyMaterialProvidersTypes.CompanionStruct_RawEcdhStaticConfigurations_{}.Create_EphemeralPrivateKeyToStaticPublicKey_(inputToConversion.UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.EphemeralPrivateKeyToStaticPublicKeyInput)) + + default: + panic("Unhandled union type") + } + }() +} + +func Aws_cryptography_materialProviders_RawEcdhStaticConfigurations_PublicKeyDiscovery_ToDafny(input awscryptographymaterialproviderssmithygeneratedtypes.PublicKeyDiscoveryInput) Wrappers.Option { + return func() Wrappers.Option { + + return Wrappers.Companion_Option_.Create_Some_(AwsCryptographyMaterialProvidersTypes.Companion_PublicKeyDiscoveryInput_.Create_PublicKeyDiscoveryInput_(Aws_cryptography_materialProviders_PublicKeyDiscoveryInput_recipientStaticPrivateKey_ToDafny(input.RecipientStaticPrivateKey))) + }() +} + +func Aws_cryptography_materialProviders_PublicKeyDiscoveryInput_recipientStaticPrivateKey_ToDafny(input []byte) dafny.Sequence { + return func() dafny.Sequence { + var v []interface{} + if input == nil { + return nil + } + for _, e := range input { + v = append(v, e) + } + return dafny.SeqOf(v...) + }() +} + +func Aws_cryptography_materialProviders_RawEcdhStaticConfigurations_RawPrivateKeyToStaticPublicKey_ToDafny(input awscryptographymaterialproviderssmithygeneratedtypes.RawPrivateKeyToStaticPublicKeyInput) Wrappers.Option { + return func() Wrappers.Option { + + return Wrappers.Companion_Option_.Create_Some_(AwsCryptographyMaterialProvidersTypes.Companion_RawPrivateKeyToStaticPublicKeyInput_.Create_RawPrivateKeyToStaticPublicKeyInput_(Aws_cryptography_materialProviders_RawPrivateKeyToStaticPublicKeyInput_senderStaticPrivateKey_ToDafny(input.SenderStaticPrivateKey), Aws_cryptography_materialProviders_RawPrivateKeyToStaticPublicKeyInput_recipientPublicKey_ToDafny(input.RecipientPublicKey))) + }() +} + +func Aws_cryptography_materialProviders_RawPrivateKeyToStaticPublicKeyInput_senderStaticPrivateKey_ToDafny(input []byte) dafny.Sequence { + return func() dafny.Sequence { + var v []interface{} + if input == nil { + return nil + } + for _, e := range input { + v = append(v, e) + } + return dafny.SeqOf(v...) + }() +} + +func Aws_cryptography_materialProviders_RawPrivateKeyToStaticPublicKeyInput_recipientPublicKey_ToDafny(input []byte) dafny.Sequence { + return func() dafny.Sequence { + var v []interface{} + if input == nil { + return nil + } + for _, e := range input { + v = append(v, e) + } + return dafny.SeqOf(v...) + }() +} + +func Aws_cryptography_materialProviders_RawEcdhStaticConfigurations_EphemeralPrivateKeyToStaticPublicKey_ToDafny(input awscryptographymaterialproviderssmithygeneratedtypes.EphemeralPrivateKeyToStaticPublicKeyInput) Wrappers.Option { + return func() Wrappers.Option { + + return Wrappers.Companion_Option_.Create_Some_(AwsCryptographyMaterialProvidersTypes.Companion_EphemeralPrivateKeyToStaticPublicKeyInput_.Create_EphemeralPrivateKeyToStaticPublicKeyInput_(Aws_cryptography_materialProviders_EphemeralPrivateKeyToStaticPublicKeyInput_recipientPublicKey_ToDafny(input.RecipientPublicKey))) + }() +} + +func Aws_cryptography_materialProviders_EphemeralPrivateKeyToStaticPublicKeyInput_recipientPublicKey_ToDafny(input []byte) dafny.Sequence { + return func() dafny.Sequence { + var v []interface{} + if input == nil { + return nil + } + for _, e := range input { + v = append(v, e) + } + return dafny.SeqOf(v...) + }() +} + +func Aws_cryptography_materialProviders_CreateRawEcdhKeyringInput_curveSpec_ToDafny(input awscryptographyprimitivessmithygeneratedtypes.ECDHCurveSpec) AwsCryptographyPrimitivesTypes.ECDHCurveSpec { + return func() AwsCryptographyPrimitivesTypes.ECDHCurveSpec { + + 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(AwsCryptographyPrimitivesTypes.CompanionStruct_ECDHCurveSpec_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return enum.(AwsCryptographyPrimitivesTypes.ECDHCurveSpec) + }() +} + +func Aws_cryptography_materialProviders_CreateRawRsaKeyringInput_keyNamespace_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_materialProviders_CreateRawRsaKeyringInput_keyName_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_materialProviders_CreateRawRsaKeyringInput_paddingScheme_ToDafny(input awscryptographymaterialproviderssmithygeneratedtypes.PaddingScheme) AwsCryptographyMaterialProvidersTypes.PaddingScheme { + return func() AwsCryptographyMaterialProvidersTypes.PaddingScheme { + + 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_PaddingScheme_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return enum.(AwsCryptographyMaterialProvidersTypes.PaddingScheme) + }() +} + +func Aws_cryptography_materialProviders_CreateRawRsaKeyringInput_publicKey_ToDafny(input []byte) Wrappers.Option { + return func() Wrappers.Option { + var v []interface{} + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + for _, e := range input { + v = append(v, e) + } + return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(v...)) + }() +} + +func Aws_cryptography_materialProviders_CreateRawRsaKeyringInput_privateKey_ToDafny(input []byte) Wrappers.Option { + return func() Wrappers.Option { + var v []interface{} + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + for _, e := range input { + v = append(v, e) + } + return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(v...)) + }() +} + +func Aws_cryptography_materialProviders_CreateRequiredEncryptionContextCMMInput_requiredEncryptionContextKeys_ToDafny(input []string) dafny.Sequence { + return func() dafny.Sequence { + + var fieldValue []interface{} = make([]interface{}, 0) + for _, val := range input { + element := Aws_cryptography_materialProviders_EncryptionContextKeys_member_ToDafny(val) + fieldValue = append(fieldValue, element) + } + return dafny.SeqOf(fieldValue...) + }() +} + +func Aws_cryptography_materialProviders_EncryptionContextKeys_member_ToDafny(input string) dafny.Sequence { + return func() dafny.Sequence { + + return dafny.SeqOf(func() []interface{} { + if !utf8.ValidString(input) { + panic("invalid utf8 input provided") + } + b := []byte(input) + f := make([]interface{}, len(b)) + for i, v := range b { + f[i] = v + } + return f + }()...) + }() +} + +func Aws_cryptography_materialProviders_DecryptionMaterials_algorithmSuite_ToDafny(input awscryptographymaterialproviderssmithygeneratedtypes.AlgorithmSuiteInfo) AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo { + return func() AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo { + + return AwsCryptographyMaterialProvidersTypes.Companion_AlgorithmSuiteInfo_.Create_AlgorithmSuiteInfo_(Aws_cryptography_materialProviders_AlgorithmSuiteInfo_id_ToDafny(input.Id), Aws_cryptography_materialProviders_AlgorithmSuiteInfo_binaryId_ToDafny(input.BinaryId), Aws_cryptography_materialProviders_AlgorithmSuiteInfo_messageVersion_ToDafny(input.MessageVersion), Aws_cryptography_materialProviders_AlgorithmSuiteInfo_encrypt_ToDafny(input.Encrypt), Aws_cryptography_materialProviders_AlgorithmSuiteInfo_kdf_ToDafny(input.Kdf), Aws_cryptography_materialProviders_AlgorithmSuiteInfo_commitment_ToDafny(input.Commitment), Aws_cryptography_materialProviders_AlgorithmSuiteInfo_signature_ToDafny(input.Signature), Aws_cryptography_materialProviders_AlgorithmSuiteInfo_symmetricSignature_ToDafny(input.SymmetricSignature), Aws_cryptography_materialProviders_AlgorithmSuiteInfo_edkWrapping_ToDafny(input.EdkWrapping)) + }() +} + +func Aws_cryptography_materialProviders_AlgorithmSuiteInfo_id_ToDafny(input awscryptographymaterialproviderssmithygeneratedtypes.AlgorithmSuiteId) AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteId { + return func() AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteId { + + switch input.(type) { + case *awscryptographymaterialproviderssmithygeneratedtypes.AlgorithmSuiteIdMemberESDK: + var inputToConversion = Aws_cryptography_materialProviders_AlgorithmSuiteId_ESDK_ToDafny(input.(*awscryptographymaterialproviderssmithygeneratedtypes.AlgorithmSuiteIdMemberESDK).Value) + return AwsCryptographyMaterialProvidersTypes.CompanionStruct_AlgorithmSuiteId_{}.Create_ESDK_(inputToConversion.UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.ESDKAlgorithmSuiteId)) + case *awscryptographymaterialproviderssmithygeneratedtypes.AlgorithmSuiteIdMemberDBE: + var inputToConversion = Aws_cryptography_materialProviders_AlgorithmSuiteId_DBE_ToDafny(input.(*awscryptographymaterialproviderssmithygeneratedtypes.AlgorithmSuiteIdMemberDBE).Value) + return AwsCryptographyMaterialProvidersTypes.CompanionStruct_AlgorithmSuiteId_{}.Create_DBE_(inputToConversion.UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.DBEAlgorithmSuiteId)) + + default: + panic("Unhandled union type") + } + }() +} + +func Aws_cryptography_materialProviders_AlgorithmSuiteId_ESDK_ToDafny(input awscryptographymaterialproviderssmithygeneratedtypes.ESDKAlgorithmSuiteId) Wrappers.Option { + return func() Wrappers.Option { + + 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_ESDKAlgorithmSuiteId_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return Wrappers.Companion_Option_.Create_Some_(enum.(AwsCryptographyMaterialProvidersTypes.ESDKAlgorithmSuiteId)) + }() +} + +func Aws_cryptography_materialProviders_AlgorithmSuiteId_DBE_ToDafny(input awscryptographymaterialproviderssmithygeneratedtypes.DBEAlgorithmSuiteId) Wrappers.Option { + return func() Wrappers.Option { + + 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 Wrappers.Companion_Option_.Create_Some_(enum.(AwsCryptographyMaterialProvidersTypes.DBEAlgorithmSuiteId)) + }() +} + +func Aws_cryptography_materialProviders_AlgorithmSuiteInfo_binaryId_ToDafny(input []byte) dafny.Sequence { + return func() dafny.Sequence { + var v []interface{} + if input == nil { + return nil + } + for _, e := range input { + v = append(v, e) + } + return dafny.SeqOf(v...) + }() +} + +func Aws_cryptography_materialProviders_AlgorithmSuiteInfo_messageVersion_ToDafny(input int32) int32 { + return func() int32 { + + return input + }() +} + +func Aws_cryptography_materialProviders_AlgorithmSuiteInfo_encrypt_ToDafny(input awscryptographymaterialproviderssmithygeneratedtypes.Encrypt) AwsCryptographyMaterialProvidersTypes.Encrypt { + return func() AwsCryptographyMaterialProvidersTypes.Encrypt { + + switch input.(type) { + case *awscryptographymaterialproviderssmithygeneratedtypes.EncryptMemberAES_GCM: + var inputToConversion = Aws_cryptography_materialProviders_Encrypt_AES_GCM_ToDafny(input.(*awscryptographymaterialproviderssmithygeneratedtypes.EncryptMemberAES_GCM).Value) + return AwsCryptographyMaterialProvidersTypes.CompanionStruct_Encrypt_{}.Create_AES__GCM_(inputToConversion.UnwrapOr(nil).(AwsCryptographyPrimitivesTypes.AES__GCM)) + + default: + panic("Unhandled union type") + } + }() +} + +func Aws_cryptography_materialProviders_Encrypt_AES_GCM_ToDafny(input awscryptographyprimitivessmithygeneratedtypes.AES_GCM) Wrappers.Option { + return func() Wrappers.Option { + + return Wrappers.Companion_Option_.Create_Some_(AwsCryptographyPrimitivesTypes.Companion_AES__GCM_.Create_AES__GCM_(awscryptographyprimitivessmithygenerated.Aws_cryptography_primitives_AES_GCM_keyLength_ToDafny(input.KeyLength), awscryptographyprimitivessmithygenerated.Aws_cryptography_primitives_AES_GCM_tagLength_ToDafny(input.TagLength), awscryptographyprimitivessmithygenerated.Aws_cryptography_primitives_AES_GCM_ivLength_ToDafny(input.IvLength))) + }() +} + +func Aws_cryptography_materialProviders_AlgorithmSuiteInfo_kdf_ToDafny(input awscryptographymaterialproviderssmithygeneratedtypes.DerivationAlgorithm) AwsCryptographyMaterialProvidersTypes.DerivationAlgorithm { + return func() AwsCryptographyMaterialProvidersTypes.DerivationAlgorithm { + + switch input.(type) { + case *awscryptographymaterialproviderssmithygeneratedtypes.DerivationAlgorithmMemberHKDF: + var inputToConversion = Aws_cryptography_materialProviders_DerivationAlgorithm_HKDF_ToDafny(input.(*awscryptographymaterialproviderssmithygeneratedtypes.DerivationAlgorithmMemberHKDF).Value) + return AwsCryptographyMaterialProvidersTypes.CompanionStruct_DerivationAlgorithm_{}.Create_HKDF_(inputToConversion.UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.HKDF)) + case *awscryptographymaterialproviderssmithygeneratedtypes.DerivationAlgorithmMemberIDENTITY: + var inputToConversion = Aws_cryptography_materialProviders_DerivationAlgorithm_IDENTITY_ToDafny(input.(*awscryptographymaterialproviderssmithygeneratedtypes.DerivationAlgorithmMemberIDENTITY).Value) + return AwsCryptographyMaterialProvidersTypes.CompanionStruct_DerivationAlgorithm_{}.Create_IDENTITY_(inputToConversion.UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.IDENTITY)) + case *awscryptographymaterialproviderssmithygeneratedtypes.DerivationAlgorithmMemberNone: + var inputToConversion = Aws_cryptography_materialProviders_DerivationAlgorithm_None_ToDafny(input.(*awscryptographymaterialproviderssmithygeneratedtypes.DerivationAlgorithmMemberNone).Value) + return AwsCryptographyMaterialProvidersTypes.CompanionStruct_DerivationAlgorithm_{}.Create_None_(inputToConversion.UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.None)) + + default: + panic("Unhandled union type") + } + }() +} + +func Aws_cryptography_materialProviders_DerivationAlgorithm_HKDF_ToDafny(input awscryptographymaterialproviderssmithygeneratedtypes.HKDF) Wrappers.Option { + return func() Wrappers.Option { + + return Wrappers.Companion_Option_.Create_Some_(AwsCryptographyMaterialProvidersTypes.Companion_HKDF_.Create_HKDF_(Aws_cryptography_materialProviders_HKDF_hmac_ToDafny(input.Hmac), Aws_cryptography_materialProviders_HKDF_saltLength_ToDafny(input.SaltLength), Aws_cryptography_materialProviders_HKDF_inputKeyLength_ToDafny(input.InputKeyLength), Aws_cryptography_materialProviders_HKDF_outputKeyLength_ToDafny(input.OutputKeyLength))) + }() +} + +func Aws_cryptography_materialProviders_HKDF_hmac_ToDafny(input awscryptographyprimitivessmithygeneratedtypes.DigestAlgorithm) AwsCryptographyPrimitivesTypes.DigestAlgorithm { + return func() AwsCryptographyPrimitivesTypes.DigestAlgorithm { + + 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(AwsCryptographyPrimitivesTypes.CompanionStruct_DigestAlgorithm_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return enum.(AwsCryptographyPrimitivesTypes.DigestAlgorithm) + }() +} + +func Aws_cryptography_materialProviders_HKDF_saltLength_ToDafny(input int32) int32 { + return func() int32 { + + return input + }() +} + +func Aws_cryptography_materialProviders_HKDF_inputKeyLength_ToDafny(input int32) int32 { + return func() int32 { + + return input + }() +} + +func Aws_cryptography_materialProviders_HKDF_outputKeyLength_ToDafny(input int32) int32 { + return func() int32 { + + return input + }() +} + +func Aws_cryptography_materialProviders_DerivationAlgorithm_IDENTITY_ToDafny(input awscryptographymaterialproviderssmithygeneratedtypes.IDENTITY) Wrappers.Option { + return func() Wrappers.Option { + + return Wrappers.Companion_Option_.Create_Some_(AwsCryptographyMaterialProvidersTypes.Companion_IDENTITY_.Create_IDENTITY_()) + }() +} + +func Aws_cryptography_materialProviders_DerivationAlgorithm_None_ToDafny(input awscryptographymaterialproviderssmithygeneratedtypes.None) Wrappers.Option { + return func() Wrappers.Option { + + return Wrappers.Companion_Option_.Create_Some_(AwsCryptographyMaterialProvidersTypes.Companion_None_.Create_None_()) + }() +} + +func Aws_cryptography_materialProviders_AlgorithmSuiteInfo_commitment_ToDafny(input awscryptographymaterialproviderssmithygeneratedtypes.DerivationAlgorithm) AwsCryptographyMaterialProvidersTypes.DerivationAlgorithm { + return func() AwsCryptographyMaterialProvidersTypes.DerivationAlgorithm { + + switch input.(type) { + case *awscryptographymaterialproviderssmithygeneratedtypes.DerivationAlgorithmMemberHKDF: + var inputToConversion = Aws_cryptography_materialProviders_DerivationAlgorithm_HKDF_ToDafny(input.(*awscryptographymaterialproviderssmithygeneratedtypes.DerivationAlgorithmMemberHKDF).Value) + return AwsCryptographyMaterialProvidersTypes.CompanionStruct_DerivationAlgorithm_{}.Create_HKDF_(inputToConversion.UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.HKDF)) + case *awscryptographymaterialproviderssmithygeneratedtypes.DerivationAlgorithmMemberIDENTITY: + var inputToConversion = Aws_cryptography_materialProviders_DerivationAlgorithm_IDENTITY_ToDafny(input.(*awscryptographymaterialproviderssmithygeneratedtypes.DerivationAlgorithmMemberIDENTITY).Value) + return AwsCryptographyMaterialProvidersTypes.CompanionStruct_DerivationAlgorithm_{}.Create_IDENTITY_(inputToConversion.UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.IDENTITY)) + case *awscryptographymaterialproviderssmithygeneratedtypes.DerivationAlgorithmMemberNone: + var inputToConversion = Aws_cryptography_materialProviders_DerivationAlgorithm_None_ToDafny(input.(*awscryptographymaterialproviderssmithygeneratedtypes.DerivationAlgorithmMemberNone).Value) + return AwsCryptographyMaterialProvidersTypes.CompanionStruct_DerivationAlgorithm_{}.Create_None_(inputToConversion.UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.None)) + + default: + panic("Unhandled union type") + } + }() +} + +func Aws_cryptography_materialProviders_AlgorithmSuiteInfo_signature_ToDafny(input awscryptographymaterialproviderssmithygeneratedtypes.SignatureAlgorithm) AwsCryptographyMaterialProvidersTypes.SignatureAlgorithm { + return func() AwsCryptographyMaterialProvidersTypes.SignatureAlgorithm { + + switch input.(type) { + case *awscryptographymaterialproviderssmithygeneratedtypes.SignatureAlgorithmMemberECDSA: + var inputToConversion = Aws_cryptography_materialProviders_SignatureAlgorithm_ECDSA_ToDafny(input.(*awscryptographymaterialproviderssmithygeneratedtypes.SignatureAlgorithmMemberECDSA).Value) + return AwsCryptographyMaterialProvidersTypes.CompanionStruct_SignatureAlgorithm_{}.Create_ECDSA_(inputToConversion.UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.ECDSA)) + case *awscryptographymaterialproviderssmithygeneratedtypes.SignatureAlgorithmMemberNone: + var inputToConversion = Aws_cryptography_materialProviders_SignatureAlgorithm_None_ToDafny(input.(*awscryptographymaterialproviderssmithygeneratedtypes.SignatureAlgorithmMemberNone).Value) + return AwsCryptographyMaterialProvidersTypes.CompanionStruct_SignatureAlgorithm_{}.Create_None_(inputToConversion.UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.None)) + + default: + panic("Unhandled union type") + } + }() +} + +func Aws_cryptography_materialProviders_SignatureAlgorithm_ECDSA_ToDafny(input awscryptographymaterialproviderssmithygeneratedtypes.ECDSA) Wrappers.Option { + return func() Wrappers.Option { + + return Wrappers.Companion_Option_.Create_Some_(AwsCryptographyMaterialProvidersTypes.Companion_ECDSA_.Create_ECDSA_(Aws_cryptography_materialProviders_ECDSA_curve_ToDafny(input.Curve))) + }() +} + +func Aws_cryptography_materialProviders_ECDSA_curve_ToDafny(input awscryptographyprimitivessmithygeneratedtypes.ECDSASignatureAlgorithm) AwsCryptographyPrimitivesTypes.ECDSASignatureAlgorithm { + return func() AwsCryptographyPrimitivesTypes.ECDSASignatureAlgorithm { + + 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(AwsCryptographyPrimitivesTypes.CompanionStruct_ECDSASignatureAlgorithm_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return enum.(AwsCryptographyPrimitivesTypes.ECDSASignatureAlgorithm) + }() +} + +func Aws_cryptography_materialProviders_SignatureAlgorithm_None_ToDafny(input awscryptographymaterialproviderssmithygeneratedtypes.None) Wrappers.Option { + return func() Wrappers.Option { + + return Wrappers.Companion_Option_.Create_Some_(AwsCryptographyMaterialProvidersTypes.Companion_None_.Create_None_()) + }() +} + +func Aws_cryptography_materialProviders_AlgorithmSuiteInfo_symmetricSignature_ToDafny(input awscryptographymaterialproviderssmithygeneratedtypes.SymmetricSignatureAlgorithm) AwsCryptographyMaterialProvidersTypes.SymmetricSignatureAlgorithm { + return func() AwsCryptographyMaterialProvidersTypes.SymmetricSignatureAlgorithm { + + switch input.(type) { + case *awscryptographymaterialproviderssmithygeneratedtypes.SymmetricSignatureAlgorithmMemberHMAC: + var inputToConversion = Aws_cryptography_materialProviders_SymmetricSignatureAlgorithm_HMAC_ToDafny(input.(*awscryptographymaterialproviderssmithygeneratedtypes.SymmetricSignatureAlgorithmMemberHMAC).Value) + return AwsCryptographyMaterialProvidersTypes.CompanionStruct_SymmetricSignatureAlgorithm_{}.Create_HMAC_(inputToConversion.UnwrapOr(nil).(AwsCryptographyPrimitivesTypes.DigestAlgorithm)) + case *awscryptographymaterialproviderssmithygeneratedtypes.SymmetricSignatureAlgorithmMemberNone: + var inputToConversion = Aws_cryptography_materialProviders_SymmetricSignatureAlgorithm_None_ToDafny(input.(*awscryptographymaterialproviderssmithygeneratedtypes.SymmetricSignatureAlgorithmMemberNone).Value) + return AwsCryptographyMaterialProvidersTypes.CompanionStruct_SymmetricSignatureAlgorithm_{}.Create_None_(inputToConversion.UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.None)) + + default: + panic("Unhandled union type") + } + }() +} + +func Aws_cryptography_materialProviders_SymmetricSignatureAlgorithm_HMAC_ToDafny(input awscryptographyprimitivessmithygeneratedtypes.DigestAlgorithm) Wrappers.Option { + return func() Wrappers.Option { + + 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(AwsCryptographyPrimitivesTypes.CompanionStruct_DigestAlgorithm_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return Wrappers.Companion_Option_.Create_Some_(enum.(AwsCryptographyPrimitivesTypes.DigestAlgorithm)) + }() +} + +func Aws_cryptography_materialProviders_SymmetricSignatureAlgorithm_None_ToDafny(input awscryptographymaterialproviderssmithygeneratedtypes.None) Wrappers.Option { + return func() Wrappers.Option { + + return Wrappers.Companion_Option_.Create_Some_(AwsCryptographyMaterialProvidersTypes.Companion_None_.Create_None_()) + }() +} + +func Aws_cryptography_materialProviders_AlgorithmSuiteInfo_edkWrapping_ToDafny(input awscryptographymaterialproviderssmithygeneratedtypes.EdkWrappingAlgorithm) AwsCryptographyMaterialProvidersTypes.EdkWrappingAlgorithm { + return func() AwsCryptographyMaterialProvidersTypes.EdkWrappingAlgorithm { + + switch input.(type) { + case *awscryptographymaterialproviderssmithygeneratedtypes.EdkWrappingAlgorithmMemberDIRECT_KEY_WRAPPING: + var inputToConversion = Aws_cryptography_materialProviders_EdkWrappingAlgorithm_DIRECT_KEY_WRAPPING_ToDafny(input.(*awscryptographymaterialproviderssmithygeneratedtypes.EdkWrappingAlgorithmMemberDIRECT_KEY_WRAPPING).Value) + return AwsCryptographyMaterialProvidersTypes.CompanionStruct_EdkWrappingAlgorithm_{}.Create_DIRECT__KEY__WRAPPING_(inputToConversion.UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.DIRECT__KEY__WRAPPING)) + case *awscryptographymaterialproviderssmithygeneratedtypes.EdkWrappingAlgorithmMemberIntermediateKeyWrapping: + var inputToConversion = Aws_cryptography_materialProviders_EdkWrappingAlgorithm_IntermediateKeyWrapping_ToDafny(input.(*awscryptographymaterialproviderssmithygeneratedtypes.EdkWrappingAlgorithmMemberIntermediateKeyWrapping).Value) + return AwsCryptographyMaterialProvidersTypes.CompanionStruct_EdkWrappingAlgorithm_{}.Create_IntermediateKeyWrapping_(inputToConversion.UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.IntermediateKeyWrapping)) + + default: + panic("Unhandled union type") + } + }() +} + +func Aws_cryptography_materialProviders_EdkWrappingAlgorithm_DIRECT_KEY_WRAPPING_ToDafny(input awscryptographymaterialproviderssmithygeneratedtypes.DIRECT_KEY_WRAPPING) Wrappers.Option { + return func() Wrappers.Option { + + return Wrappers.Companion_Option_.Create_Some_(AwsCryptographyMaterialProvidersTypes.Companion_DIRECT__KEY__WRAPPING_.Create_DIRECT__KEY__WRAPPING_()) + }() +} + +func Aws_cryptography_materialProviders_EdkWrappingAlgorithm_IntermediateKeyWrapping_ToDafny(input awscryptographymaterialproviderssmithygeneratedtypes.IntermediateKeyWrapping) Wrappers.Option { + return func() Wrappers.Option { + + return Wrappers.Companion_Option_.Create_Some_(AwsCryptographyMaterialProvidersTypes.Companion_IntermediateKeyWrapping_.Create_IntermediateKeyWrapping_(Aws_cryptography_materialProviders_IntermediateKeyWrapping_keyEncryptionKeyKdf_ToDafny(input.KeyEncryptionKeyKdf), Aws_cryptography_materialProviders_IntermediateKeyWrapping_macKeyKdf_ToDafny(input.MacKeyKdf), Aws_cryptography_materialProviders_IntermediateKeyWrapping_pdkEncryptAlgorithm_ToDafny(input.PdkEncryptAlgorithm))) + }() +} + +func Aws_cryptography_materialProviders_IntermediateKeyWrapping_keyEncryptionKeyKdf_ToDafny(input awscryptographymaterialproviderssmithygeneratedtypes.DerivationAlgorithm) AwsCryptographyMaterialProvidersTypes.DerivationAlgorithm { + return func() AwsCryptographyMaterialProvidersTypes.DerivationAlgorithm { + + switch input.(type) { + case *awscryptographymaterialproviderssmithygeneratedtypes.DerivationAlgorithmMemberHKDF: + var inputToConversion = Aws_cryptography_materialProviders_DerivationAlgorithm_HKDF_ToDafny(input.(*awscryptographymaterialproviderssmithygeneratedtypes.DerivationAlgorithmMemberHKDF).Value) + return AwsCryptographyMaterialProvidersTypes.CompanionStruct_DerivationAlgorithm_{}.Create_HKDF_(inputToConversion.UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.HKDF)) + case *awscryptographymaterialproviderssmithygeneratedtypes.DerivationAlgorithmMemberIDENTITY: + var inputToConversion = Aws_cryptography_materialProviders_DerivationAlgorithm_IDENTITY_ToDafny(input.(*awscryptographymaterialproviderssmithygeneratedtypes.DerivationAlgorithmMemberIDENTITY).Value) + return AwsCryptographyMaterialProvidersTypes.CompanionStruct_DerivationAlgorithm_{}.Create_IDENTITY_(inputToConversion.UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.IDENTITY)) + case *awscryptographymaterialproviderssmithygeneratedtypes.DerivationAlgorithmMemberNone: + var inputToConversion = Aws_cryptography_materialProviders_DerivationAlgorithm_None_ToDafny(input.(*awscryptographymaterialproviderssmithygeneratedtypes.DerivationAlgorithmMemberNone).Value) + return AwsCryptographyMaterialProvidersTypes.CompanionStruct_DerivationAlgorithm_{}.Create_None_(inputToConversion.UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.None)) + + default: + panic("Unhandled union type") + } + }() +} + +func Aws_cryptography_materialProviders_IntermediateKeyWrapping_macKeyKdf_ToDafny(input awscryptographymaterialproviderssmithygeneratedtypes.DerivationAlgorithm) AwsCryptographyMaterialProvidersTypes.DerivationAlgorithm { + return func() AwsCryptographyMaterialProvidersTypes.DerivationAlgorithm { + + switch input.(type) { + case *awscryptographymaterialproviderssmithygeneratedtypes.DerivationAlgorithmMemberHKDF: + var inputToConversion = Aws_cryptography_materialProviders_DerivationAlgorithm_HKDF_ToDafny(input.(*awscryptographymaterialproviderssmithygeneratedtypes.DerivationAlgorithmMemberHKDF).Value) + return AwsCryptographyMaterialProvidersTypes.CompanionStruct_DerivationAlgorithm_{}.Create_HKDF_(inputToConversion.UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.HKDF)) + case *awscryptographymaterialproviderssmithygeneratedtypes.DerivationAlgorithmMemberIDENTITY: + var inputToConversion = Aws_cryptography_materialProviders_DerivationAlgorithm_IDENTITY_ToDafny(input.(*awscryptographymaterialproviderssmithygeneratedtypes.DerivationAlgorithmMemberIDENTITY).Value) + return AwsCryptographyMaterialProvidersTypes.CompanionStruct_DerivationAlgorithm_{}.Create_IDENTITY_(inputToConversion.UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.IDENTITY)) + case *awscryptographymaterialproviderssmithygeneratedtypes.DerivationAlgorithmMemberNone: + var inputToConversion = Aws_cryptography_materialProviders_DerivationAlgorithm_None_ToDafny(input.(*awscryptographymaterialproviderssmithygeneratedtypes.DerivationAlgorithmMemberNone).Value) + return AwsCryptographyMaterialProvidersTypes.CompanionStruct_DerivationAlgorithm_{}.Create_None_(inputToConversion.UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.None)) + + default: + panic("Unhandled union type") + } + }() +} + +func Aws_cryptography_materialProviders_IntermediateKeyWrapping_pdkEncryptAlgorithm_ToDafny(input awscryptographymaterialproviderssmithygeneratedtypes.Encrypt) AwsCryptographyMaterialProvidersTypes.Encrypt { + return func() AwsCryptographyMaterialProvidersTypes.Encrypt { + + switch input.(type) { + case *awscryptographymaterialproviderssmithygeneratedtypes.EncryptMemberAES_GCM: + var inputToConversion = Aws_cryptography_materialProviders_Encrypt_AES_GCM_ToDafny(input.(*awscryptographymaterialproviderssmithygeneratedtypes.EncryptMemberAES_GCM).Value) + return AwsCryptographyMaterialProvidersTypes.CompanionStruct_Encrypt_{}.Create_AES__GCM_(inputToConversion.UnwrapOr(nil).(AwsCryptographyPrimitivesTypes.AES__GCM)) + + default: + panic("Unhandled union type") + } + }() +} + +func Aws_cryptography_materialProviders_DecryptionMaterials_encryptionContext_ToDafny(input map[string]string) dafny.Map { + return func() dafny.Map { + fieldValue := dafny.NewMapBuilder() + for key, val := range input { + fieldValue.Add(Aws_cryptography_materialProviders_EncryptionContext_key_ToDafny(key), Aws_cryptography_materialProviders_EncryptionContext_value_ToDafny(val)) + } + return fieldValue.ToMap() + }() +} + +func Aws_cryptography_materialProviders_EncryptionContext_key_ToDafny(input string) dafny.Sequence { + return func() dafny.Sequence { + + return dafny.SeqOf(func() []interface{} { + if !utf8.ValidString(input) { + panic("invalid utf8 input provided") + } + b := []byte(input) + f := make([]interface{}, len(b)) + for i, v := range b { + f[i] = v + } + return f + }()...) + }() +} + +func Aws_cryptography_materialProviders_EncryptionContext_value_ToDafny(input string) dafny.Sequence { + return func() dafny.Sequence { + + return dafny.SeqOf(func() []interface{} { + if !utf8.ValidString(input) { + panic("invalid utf8 input provided") + } + b := []byte(input) + f := make([]interface{}, len(b)) + for i, v := range b { + f[i] = v + } + return f + }()...) + }() +} + +func Aws_cryptography_materialProviders_DecryptionMaterials_requiredEncryptionContextKeys_ToDafny(input []string) dafny.Sequence { + return func() dafny.Sequence { + + var fieldValue []interface{} = make([]interface{}, 0) + for _, val := range input { + element := Aws_cryptography_materialProviders_EncryptionContextKeys_member_ToDafny(val) + fieldValue = append(fieldValue, element) + } + return dafny.SeqOf(fieldValue...) + }() +} + +func Aws_cryptography_materialProviders_DecryptionMaterials_plaintextDataKey_ToDafny(input []byte) Wrappers.Option { + return func() Wrappers.Option { + var v []interface{} + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + for _, e := range input { + v = append(v, e) + } + return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(v...)) + }() +} + +func Aws_cryptography_materialProviders_DecryptionMaterials_verificationKey_ToDafny(input []byte) Wrappers.Option { + return func() Wrappers.Option { + var v []interface{} + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + for _, e := range input { + v = append(v, e) + } + return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(v...)) + }() +} + +func Aws_cryptography_materialProviders_DecryptionMaterials_symmetricSigningKey_ToDafny(input []byte) Wrappers.Option { + return func() Wrappers.Option { + var v []interface{} + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + for _, e := range input { + v = append(v, e) + } + return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(v...)) + }() +} + +func Aws_cryptography_materialProviders_EncryptionMaterials_algorithmSuite_ToDafny(input awscryptographymaterialproviderssmithygeneratedtypes.AlgorithmSuiteInfo) AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo { + return func() AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo { + + return AwsCryptographyMaterialProvidersTypes.Companion_AlgorithmSuiteInfo_.Create_AlgorithmSuiteInfo_(Aws_cryptography_materialProviders_AlgorithmSuiteInfo_id_ToDafny(input.Id), Aws_cryptography_materialProviders_AlgorithmSuiteInfo_binaryId_ToDafny(input.BinaryId), Aws_cryptography_materialProviders_AlgorithmSuiteInfo_messageVersion_ToDafny(input.MessageVersion), Aws_cryptography_materialProviders_AlgorithmSuiteInfo_encrypt_ToDafny(input.Encrypt), Aws_cryptography_materialProviders_AlgorithmSuiteInfo_kdf_ToDafny(input.Kdf), Aws_cryptography_materialProviders_AlgorithmSuiteInfo_commitment_ToDafny(input.Commitment), Aws_cryptography_materialProviders_AlgorithmSuiteInfo_signature_ToDafny(input.Signature), Aws_cryptography_materialProviders_AlgorithmSuiteInfo_symmetricSignature_ToDafny(input.SymmetricSignature), Aws_cryptography_materialProviders_AlgorithmSuiteInfo_edkWrapping_ToDafny(input.EdkWrapping)) + }() +} + +func Aws_cryptography_materialProviders_EncryptionMaterials_encryptionContext_ToDafny(input map[string]string) dafny.Map { + return func() dafny.Map { + fieldValue := dafny.NewMapBuilder() + for key, val := range input { + fieldValue.Add(Aws_cryptography_materialProviders_EncryptionContext_key_ToDafny(key), Aws_cryptography_materialProviders_EncryptionContext_value_ToDafny(val)) + } + return fieldValue.ToMap() + }() +} + +func Aws_cryptography_materialProviders_EncryptionMaterials_encryptedDataKeys_ToDafny(input []awscryptographymaterialproviderssmithygeneratedtypes.EncryptedDataKey) dafny.Sequence { + return func() dafny.Sequence { + + var fieldValue []interface{} = make([]interface{}, 0) + for _, val := range input { + element := Aws_cryptography_materialProviders_EncryptedDataKeyList_member_ToDafny(val) + fieldValue = append(fieldValue, element) + } + return dafny.SeqOf(fieldValue...) + }() +} + +func Aws_cryptography_materialProviders_EncryptedDataKeyList_member_ToDafny(input awscryptographymaterialproviderssmithygeneratedtypes.EncryptedDataKey) AwsCryptographyMaterialProvidersTypes.EncryptedDataKey { + return func() AwsCryptographyMaterialProvidersTypes.EncryptedDataKey { + + return AwsCryptographyMaterialProvidersTypes.Companion_EncryptedDataKey_.Create_EncryptedDataKey_(Aws_cryptography_materialProviders_EncryptedDataKey_keyProviderId_ToDafny(input.KeyProviderId), Aws_cryptography_materialProviders_EncryptedDataKey_keyProviderInfo_ToDafny(input.KeyProviderInfo), Aws_cryptography_materialProviders_EncryptedDataKey_ciphertext_ToDafny(input.Ciphertext)) + }() +} + +func Aws_cryptography_materialProviders_EncryptedDataKey_keyProviderId_ToDafny(input string) dafny.Sequence { + return func() dafny.Sequence { + + return dafny.SeqOf(func() []interface{} { + if !utf8.ValidString(input) { + panic("invalid utf8 input provided") + } + b := []byte(input) + f := make([]interface{}, len(b)) + for i, v := range b { + f[i] = v + } + return f + }()...) + }() +} + +func Aws_cryptography_materialProviders_EncryptedDataKey_keyProviderInfo_ToDafny(input []byte) dafny.Sequence { + return func() dafny.Sequence { + var v []interface{} + if input == nil { + return nil + } + for _, e := range input { + v = append(v, e) + } + return dafny.SeqOf(v...) + }() +} + +func Aws_cryptography_materialProviders_EncryptedDataKey_ciphertext_ToDafny(input []byte) dafny.Sequence { + return func() dafny.Sequence { + var v []interface{} + if input == nil { + return nil + } + for _, e := range input { + v = append(v, e) + } + return dafny.SeqOf(v...) + }() +} + +func Aws_cryptography_materialProviders_EncryptionMaterials_requiredEncryptionContextKeys_ToDafny(input []string) dafny.Sequence { + return func() dafny.Sequence { + + var fieldValue []interface{} = make([]interface{}, 0) + for _, val := range input { + element := Aws_cryptography_materialProviders_EncryptionContextKeys_member_ToDafny(val) + fieldValue = append(fieldValue, element) + } + return dafny.SeqOf(fieldValue...) + }() +} + +func Aws_cryptography_materialProviders_EncryptionMaterials_plaintextDataKey_ToDafny(input []byte) Wrappers.Option { + return func() Wrappers.Option { + var v []interface{} + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + for _, e := range input { + v = append(v, e) + } + return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(v...)) + }() +} + +func Aws_cryptography_materialProviders_EncryptionMaterials_signingKey_ToDafny(input []byte) Wrappers.Option { + return func() Wrappers.Option { + var v []interface{} + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + for _, e := range input { + v = append(v, e) + } + return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(v...)) + }() +} + +func Aws_cryptography_materialProviders_EncryptionMaterials_symmetricSigningKeys_ToDafny(input [][]byte) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + var fieldValue []interface{} = make([]interface{}, 0) + for _, val := range input { + element := Aws_cryptography_materialProviders_SymmetricSigningKeyList_member_ToDafny(val) + fieldValue = append(fieldValue, element) + } + return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(fieldValue...)) + }() +} + +func Aws_cryptography_materialProviders_SymmetricSigningKeyList_member_ToDafny(input []byte) dafny.Sequence { + return func() dafny.Sequence { + var v []interface{} + if input == nil { + return nil + } + for _, e := range input { + v = append(v, e) + } + return dafny.SeqOf(v...) + }() +} + +func Aws_cryptography_materialProviders_GetAlgorithmSuiteInfoInput_binaryId_ToDafny(input []byte) dafny.Sequence { + return func() dafny.Sequence { + var v []interface{} + if input == nil { + return nil + } + for _, e := range input { + v = append(v, e) + } + return dafny.SeqOf(v...) + }() +} + +func Aws_cryptography_materialProviders_InitializeDecryptionMaterialsInput_algorithmSuiteId_ToDafny(input awscryptographymaterialproviderssmithygeneratedtypes.AlgorithmSuiteId) AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteId { + return func() AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteId { + + switch input.(type) { + case *awscryptographymaterialproviderssmithygeneratedtypes.AlgorithmSuiteIdMemberESDK: + var inputToConversion = Aws_cryptography_materialProviders_AlgorithmSuiteId_ESDK_ToDafny(input.(*awscryptographymaterialproviderssmithygeneratedtypes.AlgorithmSuiteIdMemberESDK).Value) + return AwsCryptographyMaterialProvidersTypes.CompanionStruct_AlgorithmSuiteId_{}.Create_ESDK_(inputToConversion.UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.ESDKAlgorithmSuiteId)) + case *awscryptographymaterialproviderssmithygeneratedtypes.AlgorithmSuiteIdMemberDBE: + var inputToConversion = Aws_cryptography_materialProviders_AlgorithmSuiteId_DBE_ToDafny(input.(*awscryptographymaterialproviderssmithygeneratedtypes.AlgorithmSuiteIdMemberDBE).Value) + return AwsCryptographyMaterialProvidersTypes.CompanionStruct_AlgorithmSuiteId_{}.Create_DBE_(inputToConversion.UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.DBEAlgorithmSuiteId)) + + default: + panic("Unhandled union type") + } + }() +} + +func Aws_cryptography_materialProviders_InitializeDecryptionMaterialsInput_encryptionContext_ToDafny(input map[string]string) dafny.Map { + return func() dafny.Map { + fieldValue := dafny.NewMapBuilder() + for key, val := range input { + fieldValue.Add(Aws_cryptography_materialProviders_EncryptionContext_key_ToDafny(key), Aws_cryptography_materialProviders_EncryptionContext_value_ToDafny(val)) + } + return fieldValue.ToMap() + }() +} + +func Aws_cryptography_materialProviders_InitializeDecryptionMaterialsInput_requiredEncryptionContextKeys_ToDafny(input []string) dafny.Sequence { + return func() dafny.Sequence { + + var fieldValue []interface{} = make([]interface{}, 0) + for _, val := range input { + element := Aws_cryptography_materialProviders_EncryptionContextKeys_member_ToDafny(val) + fieldValue = append(fieldValue, element) + } + return dafny.SeqOf(fieldValue...) + }() +} + +func Aws_cryptography_materialProviders_InitializeEncryptionMaterialsInput_algorithmSuiteId_ToDafny(input awscryptographymaterialproviderssmithygeneratedtypes.AlgorithmSuiteId) AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteId { + return func() AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteId { + + switch input.(type) { + case *awscryptographymaterialproviderssmithygeneratedtypes.AlgorithmSuiteIdMemberESDK: + var inputToConversion = Aws_cryptography_materialProviders_AlgorithmSuiteId_ESDK_ToDafny(input.(*awscryptographymaterialproviderssmithygeneratedtypes.AlgorithmSuiteIdMemberESDK).Value) + return AwsCryptographyMaterialProvidersTypes.CompanionStruct_AlgorithmSuiteId_{}.Create_ESDK_(inputToConversion.UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.ESDKAlgorithmSuiteId)) + case *awscryptographymaterialproviderssmithygeneratedtypes.AlgorithmSuiteIdMemberDBE: + var inputToConversion = Aws_cryptography_materialProviders_AlgorithmSuiteId_DBE_ToDafny(input.(*awscryptographymaterialproviderssmithygeneratedtypes.AlgorithmSuiteIdMemberDBE).Value) + return AwsCryptographyMaterialProvidersTypes.CompanionStruct_AlgorithmSuiteId_{}.Create_DBE_(inputToConversion.UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.DBEAlgorithmSuiteId)) + + default: + panic("Unhandled union type") + } + }() +} + +func Aws_cryptography_materialProviders_InitializeEncryptionMaterialsInput_encryptionContext_ToDafny(input map[string]string) dafny.Map { + return func() dafny.Map { + fieldValue := dafny.NewMapBuilder() + for key, val := range input { + fieldValue.Add(Aws_cryptography_materialProviders_EncryptionContext_key_ToDafny(key), Aws_cryptography_materialProviders_EncryptionContext_value_ToDafny(val)) + } + return fieldValue.ToMap() + }() +} + +func Aws_cryptography_materialProviders_InitializeEncryptionMaterialsInput_requiredEncryptionContextKeys_ToDafny(input []string) dafny.Sequence { + return func() dafny.Sequence { + + var fieldValue []interface{} = make([]interface{}, 0) + for _, val := range input { + element := Aws_cryptography_materialProviders_EncryptionContextKeys_member_ToDafny(val) + fieldValue = append(fieldValue, element) + } + return dafny.SeqOf(fieldValue...) + }() +} + +func Aws_cryptography_materialProviders_InitializeEncryptionMaterialsInput_signingKey_ToDafny(input []byte) Wrappers.Option { + return func() Wrappers.Option { + var v []interface{} + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + for _, e := range input { + v = append(v, e) + } + return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(v...)) + }() +} + +func Aws_cryptography_materialProviders_InitializeEncryptionMaterialsInput_verificationKey_ToDafny(input []byte) Wrappers.Option { + return func() Wrappers.Option { + var v []interface{} + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + for _, e := range input { + v = append(v, e) + } + return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(v...)) + }() +} + +func Aws_cryptography_materialProviders_ValidateCommitmentPolicyOnDecryptInput_algorithm_ToDafny(input awscryptographymaterialproviderssmithygeneratedtypes.AlgorithmSuiteId) AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteId { + return func() AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteId { + + switch input.(type) { + case *awscryptographymaterialproviderssmithygeneratedtypes.AlgorithmSuiteIdMemberESDK: + var inputToConversion = Aws_cryptography_materialProviders_AlgorithmSuiteId_ESDK_ToDafny(input.(*awscryptographymaterialproviderssmithygeneratedtypes.AlgorithmSuiteIdMemberESDK).Value) + return AwsCryptographyMaterialProvidersTypes.CompanionStruct_AlgorithmSuiteId_{}.Create_ESDK_(inputToConversion.UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.ESDKAlgorithmSuiteId)) + case *awscryptographymaterialproviderssmithygeneratedtypes.AlgorithmSuiteIdMemberDBE: + var inputToConversion = Aws_cryptography_materialProviders_AlgorithmSuiteId_DBE_ToDafny(input.(*awscryptographymaterialproviderssmithygeneratedtypes.AlgorithmSuiteIdMemberDBE).Value) + return AwsCryptographyMaterialProvidersTypes.CompanionStruct_AlgorithmSuiteId_{}.Create_DBE_(inputToConversion.UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.DBEAlgorithmSuiteId)) + + default: + panic("Unhandled union type") + } + }() +} + +func Aws_cryptography_materialProviders_ValidateCommitmentPolicyOnDecryptInput_commitmentPolicy_ToDafny(input awscryptographymaterialproviderssmithygeneratedtypes.CommitmentPolicy) AwsCryptographyMaterialProvidersTypes.CommitmentPolicy { + return func() AwsCryptographyMaterialProvidersTypes.CommitmentPolicy { + + switch input.(type) { + case *awscryptographymaterialproviderssmithygeneratedtypes.CommitmentPolicyMemberESDK: + var inputToConversion = Aws_cryptography_materialProviders_CommitmentPolicy_ESDK_ToDafny(input.(*awscryptographymaterialproviderssmithygeneratedtypes.CommitmentPolicyMemberESDK).Value) + return AwsCryptographyMaterialProvidersTypes.CompanionStruct_CommitmentPolicy_{}.Create_ESDK_(inputToConversion.UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.ESDKCommitmentPolicy)) + case *awscryptographymaterialproviderssmithygeneratedtypes.CommitmentPolicyMemberDBE: + var inputToConversion = Aws_cryptography_materialProviders_CommitmentPolicy_DBE_ToDafny(input.(*awscryptographymaterialproviderssmithygeneratedtypes.CommitmentPolicyMemberDBE).Value) + return AwsCryptographyMaterialProvidersTypes.CompanionStruct_CommitmentPolicy_{}.Create_DBE_(inputToConversion.UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.DBECommitmentPolicy)) + + default: + panic("Unhandled union type") + } + }() +} + +func Aws_cryptography_materialProviders_CommitmentPolicy_ESDK_ToDafny(input awscryptographymaterialproviderssmithygeneratedtypes.ESDKCommitmentPolicy) Wrappers.Option { + return func() Wrappers.Option { + + 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_ESDKCommitmentPolicy_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return Wrappers.Companion_Option_.Create_Some_(enum.(AwsCryptographyMaterialProvidersTypes.ESDKCommitmentPolicy)) + }() +} + +func Aws_cryptography_materialProviders_CommitmentPolicy_DBE_ToDafny(input awscryptographymaterialproviderssmithygeneratedtypes.DBECommitmentPolicy) Wrappers.Option { + return func() Wrappers.Option { + + 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_DBECommitmentPolicy_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return Wrappers.Companion_Option_.Create_Some_(enum.(AwsCryptographyMaterialProvidersTypes.DBECommitmentPolicy)) + }() +} + +func Aws_cryptography_materialProviders_ValidateCommitmentPolicyOnEncryptInput_algorithm_ToDafny(input awscryptographymaterialproviderssmithygeneratedtypes.AlgorithmSuiteId) AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteId { + return func() AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteId { + + switch input.(type) { + case *awscryptographymaterialproviderssmithygeneratedtypes.AlgorithmSuiteIdMemberESDK: + var inputToConversion = Aws_cryptography_materialProviders_AlgorithmSuiteId_ESDK_ToDafny(input.(*awscryptographymaterialproviderssmithygeneratedtypes.AlgorithmSuiteIdMemberESDK).Value) + return AwsCryptographyMaterialProvidersTypes.CompanionStruct_AlgorithmSuiteId_{}.Create_ESDK_(inputToConversion.UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.ESDKAlgorithmSuiteId)) + case *awscryptographymaterialproviderssmithygeneratedtypes.AlgorithmSuiteIdMemberDBE: + var inputToConversion = Aws_cryptography_materialProviders_AlgorithmSuiteId_DBE_ToDafny(input.(*awscryptographymaterialproviderssmithygeneratedtypes.AlgorithmSuiteIdMemberDBE).Value) + return AwsCryptographyMaterialProvidersTypes.CompanionStruct_AlgorithmSuiteId_{}.Create_DBE_(inputToConversion.UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.DBEAlgorithmSuiteId)) + + default: + panic("Unhandled union type") + } + }() +} + +func Aws_cryptography_materialProviders_ValidateCommitmentPolicyOnEncryptInput_commitmentPolicy_ToDafny(input awscryptographymaterialproviderssmithygeneratedtypes.CommitmentPolicy) AwsCryptographyMaterialProvidersTypes.CommitmentPolicy { + return func() AwsCryptographyMaterialProvidersTypes.CommitmentPolicy { + + switch input.(type) { + case *awscryptographymaterialproviderssmithygeneratedtypes.CommitmentPolicyMemberESDK: + var inputToConversion = Aws_cryptography_materialProviders_CommitmentPolicy_ESDK_ToDafny(input.(*awscryptographymaterialproviderssmithygeneratedtypes.CommitmentPolicyMemberESDK).Value) + return AwsCryptographyMaterialProvidersTypes.CompanionStruct_CommitmentPolicy_{}.Create_ESDK_(inputToConversion.UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.ESDKCommitmentPolicy)) + case *awscryptographymaterialproviderssmithygeneratedtypes.CommitmentPolicyMemberDBE: + var inputToConversion = Aws_cryptography_materialProviders_CommitmentPolicy_DBE_ToDafny(input.(*awscryptographymaterialproviderssmithygeneratedtypes.CommitmentPolicyMemberDBE).Value) + return AwsCryptographyMaterialProvidersTypes.CompanionStruct_CommitmentPolicy_{}.Create_DBE_(inputToConversion.UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.DBECommitmentPolicy)) + + default: + panic("Unhandled union type") + } + }() +} + +func Aws_cryptography_materialProviders_ValidDecryptionMaterialsTransitionInput_start_ToDafny(input awscryptographymaterialproviderssmithygeneratedtypes.DecryptionMaterials) AwsCryptographyMaterialProvidersTypes.DecryptionMaterials { + return func() AwsCryptographyMaterialProvidersTypes.DecryptionMaterials { + + return AwsCryptographyMaterialProvidersTypes.Companion_DecryptionMaterials_.Create_DecryptionMaterials_(Aws_cryptography_materialProviders_DecryptionMaterials_algorithmSuite_ToDafny(input.AlgorithmSuite), Aws_cryptography_materialProviders_DecryptionMaterials_encryptionContext_ToDafny(input.EncryptionContext), Aws_cryptography_materialProviders_DecryptionMaterials_requiredEncryptionContextKeys_ToDafny(input.RequiredEncryptionContextKeys), Aws_cryptography_materialProviders_DecryptionMaterials_plaintextDataKey_ToDafny(input.PlaintextDataKey), Aws_cryptography_materialProviders_DecryptionMaterials_verificationKey_ToDafny(input.VerificationKey), Aws_cryptography_materialProviders_DecryptionMaterials_symmetricSigningKey_ToDafny(input.SymmetricSigningKey)) + }() +} + +func Aws_cryptography_materialProviders_ValidDecryptionMaterialsTransitionInput_stop_ToDafny(input awscryptographymaterialproviderssmithygeneratedtypes.DecryptionMaterials) AwsCryptographyMaterialProvidersTypes.DecryptionMaterials { + return func() AwsCryptographyMaterialProvidersTypes.DecryptionMaterials { + + return AwsCryptographyMaterialProvidersTypes.Companion_DecryptionMaterials_.Create_DecryptionMaterials_(Aws_cryptography_materialProviders_DecryptionMaterials_algorithmSuite_ToDafny(input.AlgorithmSuite), Aws_cryptography_materialProviders_DecryptionMaterials_encryptionContext_ToDafny(input.EncryptionContext), Aws_cryptography_materialProviders_DecryptionMaterials_requiredEncryptionContextKeys_ToDafny(input.RequiredEncryptionContextKeys), Aws_cryptography_materialProviders_DecryptionMaterials_plaintextDataKey_ToDafny(input.PlaintextDataKey), Aws_cryptography_materialProviders_DecryptionMaterials_verificationKey_ToDafny(input.VerificationKey), Aws_cryptography_materialProviders_DecryptionMaterials_symmetricSigningKey_ToDafny(input.SymmetricSigningKey)) + }() +} + +func Aws_cryptography_materialProviders_ValidEncryptionMaterialsTransitionInput_start_ToDafny(input awscryptographymaterialproviderssmithygeneratedtypes.EncryptionMaterials) AwsCryptographyMaterialProvidersTypes.EncryptionMaterials { + return func() AwsCryptographyMaterialProvidersTypes.EncryptionMaterials { + + return AwsCryptographyMaterialProvidersTypes.Companion_EncryptionMaterials_.Create_EncryptionMaterials_(Aws_cryptography_materialProviders_EncryptionMaterials_algorithmSuite_ToDafny(input.AlgorithmSuite), Aws_cryptography_materialProviders_EncryptionMaterials_encryptionContext_ToDafny(input.EncryptionContext), Aws_cryptography_materialProviders_EncryptionMaterials_encryptedDataKeys_ToDafny(input.EncryptedDataKeys), Aws_cryptography_materialProviders_EncryptionMaterials_requiredEncryptionContextKeys_ToDafny(input.RequiredEncryptionContextKeys), Aws_cryptography_materialProviders_EncryptionMaterials_plaintextDataKey_ToDafny(input.PlaintextDataKey), Aws_cryptography_materialProviders_EncryptionMaterials_signingKey_ToDafny(input.SigningKey), Aws_cryptography_materialProviders_EncryptionMaterials_symmetricSigningKeys_ToDafny(input.SymmetricSigningKeys)) + }() +} + +func Aws_cryptography_materialProviders_ValidEncryptionMaterialsTransitionInput_stop_ToDafny(input awscryptographymaterialproviderssmithygeneratedtypes.EncryptionMaterials) AwsCryptographyMaterialProvidersTypes.EncryptionMaterials { + return func() AwsCryptographyMaterialProvidersTypes.EncryptionMaterials { + + return AwsCryptographyMaterialProvidersTypes.Companion_EncryptionMaterials_.Create_EncryptionMaterials_(Aws_cryptography_materialProviders_EncryptionMaterials_algorithmSuite_ToDafny(input.AlgorithmSuite), Aws_cryptography_materialProviders_EncryptionMaterials_encryptionContext_ToDafny(input.EncryptionContext), Aws_cryptography_materialProviders_EncryptionMaterials_encryptedDataKeys_ToDafny(input.EncryptedDataKeys), Aws_cryptography_materialProviders_EncryptionMaterials_requiredEncryptionContextKeys_ToDafny(input.RequiredEncryptionContextKeys), Aws_cryptography_materialProviders_EncryptionMaterials_plaintextDataKey_ToDafny(input.PlaintextDataKey), Aws_cryptography_materialProviders_EncryptionMaterials_signingKey_ToDafny(input.SigningKey), Aws_cryptography_materialProviders_EncryptionMaterials_symmetricSigningKeys_ToDafny(input.SymmetricSigningKeys)) + }() +} + +func Aws_cryptography_materialProviders_GetBranchKeyIdInput_encryptionContext_ToDafny(input map[string]string) dafny.Map { + return func() dafny.Map { + fieldValue := dafny.NewMapBuilder() + for key, val := range input { + fieldValue.Add(Aws_cryptography_materialProviders_EncryptionContext_key_ToDafny(key), Aws_cryptography_materialProviders_EncryptionContext_value_ToDafny(val)) + } + return fieldValue.ToMap() + }() +} + +func Aws_cryptography_materialProviders_GetBranchKeyIdOutput_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_materialProviders_GetClientInput_region_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_materialProviders_GetClientOutput_client_ToDafny(input *kms.Client) ComAmazonawsKmsTypes.IKMSClient { + return &KMSwrapped.Shim{Client: input} +} + +func Aws_cryptography_materialProviders_DeleteCacheEntryInput_identifier_ToDafny(input []byte) dafny.Sequence { + return func() dafny.Sequence { + var v []interface{} + if input == nil { + return nil + } + for _, e := range input { + v = append(v, e) + } + return dafny.SeqOf(v...) + }() +} + +func Aws_cryptography_materialProviders_GetCacheEntryInput_identifier_ToDafny(input []byte) dafny.Sequence { + return func() dafny.Sequence { + var v []interface{} + if input == nil { + return nil + } + for _, e := range input { + v = append(v, e) + } + return dafny.SeqOf(v...) + }() +} + +func Aws_cryptography_materialProviders_GetCacheEntryInput_bytesUsed_ToDafny(input *int64) 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_materialProviders_GetCacheEntryOutput_materials_ToDafny(input awscryptographymaterialproviderssmithygeneratedtypes.Materials) AwsCryptographyMaterialProvidersTypes.Materials { + return func() AwsCryptographyMaterialProvidersTypes.Materials { + + switch input.(type) { + case *awscryptographymaterialproviderssmithygeneratedtypes.MaterialsMemberEncryption: + var inputToConversion = Aws_cryptography_materialProviders_Materials_Encryption_ToDafny(input.(*awscryptographymaterialproviderssmithygeneratedtypes.MaterialsMemberEncryption).Value) + return AwsCryptographyMaterialProvidersTypes.CompanionStruct_Materials_{}.Create_Encryption_(inputToConversion.UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.EncryptionMaterials)) + case *awscryptographymaterialproviderssmithygeneratedtypes.MaterialsMemberDecryption: + var inputToConversion = Aws_cryptography_materialProviders_Materials_Decryption_ToDafny(input.(*awscryptographymaterialproviderssmithygeneratedtypes.MaterialsMemberDecryption).Value) + return AwsCryptographyMaterialProvidersTypes.CompanionStruct_Materials_{}.Create_Decryption_(inputToConversion.UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.DecryptionMaterials)) + case *awscryptographymaterialproviderssmithygeneratedtypes.MaterialsMemberBranchKey: + var inputToConversion = Aws_cryptography_materialProviders_Materials_BranchKey_ToDafny(input.(*awscryptographymaterialproviderssmithygeneratedtypes.MaterialsMemberBranchKey).Value) + return AwsCryptographyMaterialProvidersTypes.CompanionStruct_Materials_{}.Create_BranchKey_(inputToConversion.UnwrapOr(nil).(AwsCryptographyKeyStoreTypes.BranchKeyMaterials)) + case *awscryptographymaterialproviderssmithygeneratedtypes.MaterialsMemberBeaconKey: + var inputToConversion = Aws_cryptography_materialProviders_Materials_BeaconKey_ToDafny(input.(*awscryptographymaterialproviderssmithygeneratedtypes.MaterialsMemberBeaconKey).Value) + return AwsCryptographyMaterialProvidersTypes.CompanionStruct_Materials_{}.Create_BeaconKey_(inputToConversion.UnwrapOr(nil).(AwsCryptographyKeyStoreTypes.BeaconKeyMaterials)) + + default: + panic("Unhandled union type") + } + }() +} + +func Aws_cryptography_materialProviders_Materials_Encryption_ToDafny(input awscryptographymaterialproviderssmithygeneratedtypes.EncryptionMaterials) Wrappers.Option { + return func() Wrappers.Option { + + return Wrappers.Companion_Option_.Create_Some_(AwsCryptographyMaterialProvidersTypes.Companion_EncryptionMaterials_.Create_EncryptionMaterials_(Aws_cryptography_materialProviders_EncryptionMaterials_algorithmSuite_ToDafny(input.AlgorithmSuite), Aws_cryptography_materialProviders_EncryptionMaterials_encryptionContext_ToDafny(input.EncryptionContext), Aws_cryptography_materialProviders_EncryptionMaterials_encryptedDataKeys_ToDafny(input.EncryptedDataKeys), Aws_cryptography_materialProviders_EncryptionMaterials_requiredEncryptionContextKeys_ToDafny(input.RequiredEncryptionContextKeys), Aws_cryptography_materialProviders_EncryptionMaterials_plaintextDataKey_ToDafny(input.PlaintextDataKey), Aws_cryptography_materialProviders_EncryptionMaterials_signingKey_ToDafny(input.SigningKey), Aws_cryptography_materialProviders_EncryptionMaterials_symmetricSigningKeys_ToDafny(input.SymmetricSigningKeys))) + }() +} + +func Aws_cryptography_materialProviders_Materials_Decryption_ToDafny(input awscryptographymaterialproviderssmithygeneratedtypes.DecryptionMaterials) Wrappers.Option { + return func() Wrappers.Option { + + return Wrappers.Companion_Option_.Create_Some_(AwsCryptographyMaterialProvidersTypes.Companion_DecryptionMaterials_.Create_DecryptionMaterials_(Aws_cryptography_materialProviders_DecryptionMaterials_algorithmSuite_ToDafny(input.AlgorithmSuite), Aws_cryptography_materialProviders_DecryptionMaterials_encryptionContext_ToDafny(input.EncryptionContext), Aws_cryptography_materialProviders_DecryptionMaterials_requiredEncryptionContextKeys_ToDafny(input.RequiredEncryptionContextKeys), Aws_cryptography_materialProviders_DecryptionMaterials_plaintextDataKey_ToDafny(input.PlaintextDataKey), Aws_cryptography_materialProviders_DecryptionMaterials_verificationKey_ToDafny(input.VerificationKey), Aws_cryptography_materialProviders_DecryptionMaterials_symmetricSigningKey_ToDafny(input.SymmetricSigningKey))) + }() +} + +func Aws_cryptography_materialProviders_Materials_BranchKey_ToDafny(input awscryptographykeystoresmithygeneratedtypes.BranchKeyMaterials) Wrappers.Option { + return func() Wrappers.Option { + + return Wrappers.Companion_Option_.Create_Some_(AwsCryptographyKeyStoreTypes.Companion_BranchKeyMaterials_.Create_BranchKeyMaterials_(awscryptographykeystoresmithygenerated.Aws_cryptography_keyStore_BranchKeyMaterials_branchKeyIdentifier_ToDafny(input.BranchKeyIdentifier), awscryptographykeystoresmithygenerated.Aws_cryptography_keyStore_BranchKeyMaterials_branchKeyVersion_ToDafny(input.BranchKeyVersion), awscryptographykeystoresmithygenerated.Aws_cryptography_keyStore_BranchKeyMaterials_encryptionContext_ToDafny(input.EncryptionContext), awscryptographykeystoresmithygenerated.Aws_cryptography_keyStore_BranchKeyMaterials_branchKey_ToDafny(input.BranchKey))) + }() +} + +func Aws_cryptography_materialProviders_Materials_BeaconKey_ToDafny(input awscryptographykeystoresmithygeneratedtypes.BeaconKeyMaterials) Wrappers.Option { + return func() Wrappers.Option { + + return Wrappers.Companion_Option_.Create_Some_(AwsCryptographyKeyStoreTypes.Companion_BeaconKeyMaterials_.Create_BeaconKeyMaterials_(awscryptographykeystoresmithygenerated.Aws_cryptography_keyStore_BeaconKeyMaterials_beaconKeyIdentifier_ToDafny(input.BeaconKeyIdentifier), awscryptographykeystoresmithygenerated.Aws_cryptography_keyStore_BeaconKeyMaterials_encryptionContext_ToDafny(input.EncryptionContext), awscryptographykeystoresmithygenerated.Aws_cryptography_keyStore_BeaconKeyMaterials_beaconKey_ToDafny(input.BeaconKey), awscryptographykeystoresmithygenerated.Aws_cryptography_keyStore_BeaconKeyMaterials_hmacKeys_ToDafny(input.HmacKeys))) + }() +} + +func Aws_cryptography_materialProviders_GetCacheEntryOutput_creationTime_ToDafny(input int64) int64 { + return func() int64 { + + return input + }() +} + +func Aws_cryptography_materialProviders_GetCacheEntryOutput_expiryTime_ToDafny(input int64) int64 { + return func() int64 { + + return input + }() +} + +func Aws_cryptography_materialProviders_GetCacheEntryOutput_messagesUsed_ToDafny(input int32) int32 { + return func() int32 { + + return input + }() +} + +func Aws_cryptography_materialProviders_GetCacheEntryOutput_bytesUsed_ToDafny(input int32) int32 { + return func() int32 { + + return input + }() +} + +func Aws_cryptography_materialProviders_PutCacheEntryInput_identifier_ToDafny(input []byte) dafny.Sequence { + return func() dafny.Sequence { + var v []interface{} + if input == nil { + return nil + } + for _, e := range input { + v = append(v, e) + } + return dafny.SeqOf(v...) + }() +} + +func Aws_cryptography_materialProviders_PutCacheEntryInput_materials_ToDafny(input awscryptographymaterialproviderssmithygeneratedtypes.Materials) AwsCryptographyMaterialProvidersTypes.Materials { + return func() AwsCryptographyMaterialProvidersTypes.Materials { + + switch input.(type) { + case *awscryptographymaterialproviderssmithygeneratedtypes.MaterialsMemberEncryption: + var inputToConversion = Aws_cryptography_materialProviders_Materials_Encryption_ToDafny(input.(*awscryptographymaterialproviderssmithygeneratedtypes.MaterialsMemberEncryption).Value) + return AwsCryptographyMaterialProvidersTypes.CompanionStruct_Materials_{}.Create_Encryption_(inputToConversion.UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.EncryptionMaterials)) + case *awscryptographymaterialproviderssmithygeneratedtypes.MaterialsMemberDecryption: + var inputToConversion = Aws_cryptography_materialProviders_Materials_Decryption_ToDafny(input.(*awscryptographymaterialproviderssmithygeneratedtypes.MaterialsMemberDecryption).Value) + return AwsCryptographyMaterialProvidersTypes.CompanionStruct_Materials_{}.Create_Decryption_(inputToConversion.UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.DecryptionMaterials)) + case *awscryptographymaterialproviderssmithygeneratedtypes.MaterialsMemberBranchKey: + var inputToConversion = Aws_cryptography_materialProviders_Materials_BranchKey_ToDafny(input.(*awscryptographymaterialproviderssmithygeneratedtypes.MaterialsMemberBranchKey).Value) + return AwsCryptographyMaterialProvidersTypes.CompanionStruct_Materials_{}.Create_BranchKey_(inputToConversion.UnwrapOr(nil).(AwsCryptographyKeyStoreTypes.BranchKeyMaterials)) + case *awscryptographymaterialproviderssmithygeneratedtypes.MaterialsMemberBeaconKey: + var inputToConversion = Aws_cryptography_materialProviders_Materials_BeaconKey_ToDafny(input.(*awscryptographymaterialproviderssmithygeneratedtypes.MaterialsMemberBeaconKey).Value) + return AwsCryptographyMaterialProvidersTypes.CompanionStruct_Materials_{}.Create_BeaconKey_(inputToConversion.UnwrapOr(nil).(AwsCryptographyKeyStoreTypes.BeaconKeyMaterials)) + + default: + panic("Unhandled union type") + } + }() +} + +func Aws_cryptography_materialProviders_PutCacheEntryInput_creationTime_ToDafny(input int64) int64 { + return func() int64 { + + return input + }() +} + +func Aws_cryptography_materialProviders_PutCacheEntryInput_expiryTime_ToDafny(input int64) int64 { + return func() int64 { + + return input + }() +} + +func Aws_cryptography_materialProviders_PutCacheEntryInput_messagesUsed_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_materialProviders_PutCacheEntryInput_bytesUsed_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_materialProviders_UpdateUsageMetadataInput_identifier_ToDafny(input []byte) dafny.Sequence { + return func() dafny.Sequence { + var v []interface{} + if input == nil { + return nil + } + for _, e := range input { + v = append(v, e) + } + return dafny.SeqOf(v...) + }() +} + +func Aws_cryptography_materialProviders_UpdateUsageMetadataInput_bytesUsed_ToDafny(input int32) int32 { + return func() int32 { + + return input + }() +} + +func Aws_cryptography_materialProviders_DecryptMaterialsInput_algorithmSuiteId_ToDafny(input awscryptographymaterialproviderssmithygeneratedtypes.AlgorithmSuiteId) AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteId { + return func() AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteId { + + switch input.(type) { + case *awscryptographymaterialproviderssmithygeneratedtypes.AlgorithmSuiteIdMemberESDK: + var inputToConversion = Aws_cryptography_materialProviders_AlgorithmSuiteId_ESDK_ToDafny(input.(*awscryptographymaterialproviderssmithygeneratedtypes.AlgorithmSuiteIdMemberESDK).Value) + return AwsCryptographyMaterialProvidersTypes.CompanionStruct_AlgorithmSuiteId_{}.Create_ESDK_(inputToConversion.UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.ESDKAlgorithmSuiteId)) + case *awscryptographymaterialproviderssmithygeneratedtypes.AlgorithmSuiteIdMemberDBE: + var inputToConversion = Aws_cryptography_materialProviders_AlgorithmSuiteId_DBE_ToDafny(input.(*awscryptographymaterialproviderssmithygeneratedtypes.AlgorithmSuiteIdMemberDBE).Value) + return AwsCryptographyMaterialProvidersTypes.CompanionStruct_AlgorithmSuiteId_{}.Create_DBE_(inputToConversion.UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.DBEAlgorithmSuiteId)) + + default: + panic("Unhandled union type") + } + }() +} + +func Aws_cryptography_materialProviders_DecryptMaterialsInput_commitmentPolicy_ToDafny(input awscryptographymaterialproviderssmithygeneratedtypes.CommitmentPolicy) AwsCryptographyMaterialProvidersTypes.CommitmentPolicy { + return func() AwsCryptographyMaterialProvidersTypes.CommitmentPolicy { + + switch input.(type) { + case *awscryptographymaterialproviderssmithygeneratedtypes.CommitmentPolicyMemberESDK: + var inputToConversion = Aws_cryptography_materialProviders_CommitmentPolicy_ESDK_ToDafny(input.(*awscryptographymaterialproviderssmithygeneratedtypes.CommitmentPolicyMemberESDK).Value) + return AwsCryptographyMaterialProvidersTypes.CompanionStruct_CommitmentPolicy_{}.Create_ESDK_(inputToConversion.UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.ESDKCommitmentPolicy)) + case *awscryptographymaterialproviderssmithygeneratedtypes.CommitmentPolicyMemberDBE: + var inputToConversion = Aws_cryptography_materialProviders_CommitmentPolicy_DBE_ToDafny(input.(*awscryptographymaterialproviderssmithygeneratedtypes.CommitmentPolicyMemberDBE).Value) + return AwsCryptographyMaterialProvidersTypes.CompanionStruct_CommitmentPolicy_{}.Create_DBE_(inputToConversion.UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.DBECommitmentPolicy)) + + default: + panic("Unhandled union type") + } + }() +} + +func Aws_cryptography_materialProviders_DecryptMaterialsInput_encryptedDataKeys_ToDafny(input []awscryptographymaterialproviderssmithygeneratedtypes.EncryptedDataKey) dafny.Sequence { + return func() dafny.Sequence { + + var fieldValue []interface{} = make([]interface{}, 0) + for _, val := range input { + element := Aws_cryptography_materialProviders_EncryptedDataKeyList_member_ToDafny(val) + fieldValue = append(fieldValue, element) + } + return dafny.SeqOf(fieldValue...) + }() +} + +func Aws_cryptography_materialProviders_DecryptMaterialsInput_encryptionContext_ToDafny(input map[string]string) dafny.Map { + return func() dafny.Map { + fieldValue := dafny.NewMapBuilder() + for key, val := range input { + fieldValue.Add(Aws_cryptography_materialProviders_EncryptionContext_key_ToDafny(key), Aws_cryptography_materialProviders_EncryptionContext_value_ToDafny(val)) + } + return fieldValue.ToMap() + }() +} + +func Aws_cryptography_materialProviders_DecryptMaterialsInput_reproducedEncryptionContext_ToDafny(input map[string]string) Wrappers.Option { + return func() Wrappers.Option { + fieldValue := dafny.NewMapBuilder() + for key, val := range input { + fieldValue.Add(Aws_cryptography_materialProviders_EncryptionContext_key_ToDafny(key), Aws_cryptography_materialProviders_EncryptionContext_value_ToDafny(val)) + } + return Wrappers.Companion_Option_.Create_Some_(fieldValue.ToMap()) + }() +} + +func Aws_cryptography_materialProviders_DecryptMaterialsOutput_decryptionMaterials_ToDafny(input awscryptographymaterialproviderssmithygeneratedtypes.DecryptionMaterials) AwsCryptographyMaterialProvidersTypes.DecryptionMaterials { + return func() AwsCryptographyMaterialProvidersTypes.DecryptionMaterials { + + return AwsCryptographyMaterialProvidersTypes.Companion_DecryptionMaterials_.Create_DecryptionMaterials_(Aws_cryptography_materialProviders_DecryptionMaterials_algorithmSuite_ToDafny(input.AlgorithmSuite), Aws_cryptography_materialProviders_DecryptionMaterials_encryptionContext_ToDafny(input.EncryptionContext), Aws_cryptography_materialProviders_DecryptionMaterials_requiredEncryptionContextKeys_ToDafny(input.RequiredEncryptionContextKeys), Aws_cryptography_materialProviders_DecryptionMaterials_plaintextDataKey_ToDafny(input.PlaintextDataKey), Aws_cryptography_materialProviders_DecryptionMaterials_verificationKey_ToDafny(input.VerificationKey), Aws_cryptography_materialProviders_DecryptionMaterials_symmetricSigningKey_ToDafny(input.SymmetricSigningKey)) + }() +} + +func Aws_cryptography_materialProviders_GetEncryptionMaterialsInput_encryptionContext_ToDafny(input map[string]string) dafny.Map { + return func() dafny.Map { + fieldValue := dafny.NewMapBuilder() + for key, val := range input { + fieldValue.Add(Aws_cryptography_materialProviders_EncryptionContext_key_ToDafny(key), Aws_cryptography_materialProviders_EncryptionContext_value_ToDafny(val)) + } + return fieldValue.ToMap() + }() +} + +func Aws_cryptography_materialProviders_GetEncryptionMaterialsInput_commitmentPolicy_ToDafny(input awscryptographymaterialproviderssmithygeneratedtypes.CommitmentPolicy) AwsCryptographyMaterialProvidersTypes.CommitmentPolicy { + return func() AwsCryptographyMaterialProvidersTypes.CommitmentPolicy { + + switch input.(type) { + case *awscryptographymaterialproviderssmithygeneratedtypes.CommitmentPolicyMemberESDK: + var inputToConversion = Aws_cryptography_materialProviders_CommitmentPolicy_ESDK_ToDafny(input.(*awscryptographymaterialproviderssmithygeneratedtypes.CommitmentPolicyMemberESDK).Value) + return AwsCryptographyMaterialProvidersTypes.CompanionStruct_CommitmentPolicy_{}.Create_ESDK_(inputToConversion.UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.ESDKCommitmentPolicy)) + case *awscryptographymaterialproviderssmithygeneratedtypes.CommitmentPolicyMemberDBE: + var inputToConversion = Aws_cryptography_materialProviders_CommitmentPolicy_DBE_ToDafny(input.(*awscryptographymaterialproviderssmithygeneratedtypes.CommitmentPolicyMemberDBE).Value) + return AwsCryptographyMaterialProvidersTypes.CompanionStruct_CommitmentPolicy_{}.Create_DBE_(inputToConversion.UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.DBECommitmentPolicy)) + + default: + panic("Unhandled union type") + } + }() +} + +func Aws_cryptography_materialProviders_GetEncryptionMaterialsInput_algorithmSuiteId_ToDafny(input awscryptographymaterialproviderssmithygeneratedtypes.AlgorithmSuiteId) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + switch input.(type) { + case *awscryptographymaterialproviderssmithygeneratedtypes.AlgorithmSuiteIdMemberESDK: + var inputToConversion = Aws_cryptography_materialProviders_AlgorithmSuiteId_ESDK_ToDafny(input.(*awscryptographymaterialproviderssmithygeneratedtypes.AlgorithmSuiteIdMemberESDK).Value) + return Wrappers.Companion_Option_.Create_Some_(AwsCryptographyMaterialProvidersTypes.CompanionStruct_AlgorithmSuiteId_{}.Create_ESDK_(inputToConversion.UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.ESDKAlgorithmSuiteId))) + case *awscryptographymaterialproviderssmithygeneratedtypes.AlgorithmSuiteIdMemberDBE: + var inputToConversion = Aws_cryptography_materialProviders_AlgorithmSuiteId_DBE_ToDafny(input.(*awscryptographymaterialproviderssmithygeneratedtypes.AlgorithmSuiteIdMemberDBE).Value) + return Wrappers.Companion_Option_.Create_Some_(AwsCryptographyMaterialProvidersTypes.CompanionStruct_AlgorithmSuiteId_{}.Create_DBE_(inputToConversion.UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.DBEAlgorithmSuiteId))) + + default: + panic("Unhandled union type") + } + }() +} + +func Aws_cryptography_materialProviders_GetEncryptionMaterialsInput_maxPlaintextLength_ToDafny(input *int64) 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_materialProviders_GetEncryptionMaterialsInput_requiredEncryptionContextKeys_ToDafny(input []string) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + var fieldValue []interface{} = make([]interface{}, 0) + for _, val := range input { + element := Aws_cryptography_materialProviders_EncryptionContextKeys_member_ToDafny(val) + fieldValue = append(fieldValue, element) + } + return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(fieldValue...)) + }() +} + +func Aws_cryptography_materialProviders_GetEncryptionMaterialsOutput_encryptionMaterials_ToDafny(input awscryptographymaterialproviderssmithygeneratedtypes.EncryptionMaterials) AwsCryptographyMaterialProvidersTypes.EncryptionMaterials { + return func() AwsCryptographyMaterialProvidersTypes.EncryptionMaterials { + + return AwsCryptographyMaterialProvidersTypes.Companion_EncryptionMaterials_.Create_EncryptionMaterials_(Aws_cryptography_materialProviders_EncryptionMaterials_algorithmSuite_ToDafny(input.AlgorithmSuite), Aws_cryptography_materialProviders_EncryptionMaterials_encryptionContext_ToDafny(input.EncryptionContext), Aws_cryptography_materialProviders_EncryptionMaterials_encryptedDataKeys_ToDafny(input.EncryptedDataKeys), Aws_cryptography_materialProviders_EncryptionMaterials_requiredEncryptionContextKeys_ToDafny(input.RequiredEncryptionContextKeys), Aws_cryptography_materialProviders_EncryptionMaterials_plaintextDataKey_ToDafny(input.PlaintextDataKey), Aws_cryptography_materialProviders_EncryptionMaterials_signingKey_ToDafny(input.SigningKey), Aws_cryptography_materialProviders_EncryptionMaterials_symmetricSigningKeys_ToDafny(input.SymmetricSigningKeys)) + }() +} + +func Aws_cryptography_materialProviders_OnDecryptInput_materials_ToDafny(input awscryptographymaterialproviderssmithygeneratedtypes.DecryptionMaterials) AwsCryptographyMaterialProvidersTypes.DecryptionMaterials { + return func() AwsCryptographyMaterialProvidersTypes.DecryptionMaterials { + + return AwsCryptographyMaterialProvidersTypes.Companion_DecryptionMaterials_.Create_DecryptionMaterials_(Aws_cryptography_materialProviders_DecryptionMaterials_algorithmSuite_ToDafny(input.AlgorithmSuite), Aws_cryptography_materialProviders_DecryptionMaterials_encryptionContext_ToDafny(input.EncryptionContext), Aws_cryptography_materialProviders_DecryptionMaterials_requiredEncryptionContextKeys_ToDafny(input.RequiredEncryptionContextKeys), Aws_cryptography_materialProviders_DecryptionMaterials_plaintextDataKey_ToDafny(input.PlaintextDataKey), Aws_cryptography_materialProviders_DecryptionMaterials_verificationKey_ToDafny(input.VerificationKey), Aws_cryptography_materialProviders_DecryptionMaterials_symmetricSigningKey_ToDafny(input.SymmetricSigningKey)) + }() +} + +func Aws_cryptography_materialProviders_OnDecryptInput_encryptedDataKeys_ToDafny(input []awscryptographymaterialproviderssmithygeneratedtypes.EncryptedDataKey) dafny.Sequence { + return func() dafny.Sequence { + + var fieldValue []interface{} = make([]interface{}, 0) + for _, val := range input { + element := Aws_cryptography_materialProviders_EncryptedDataKeyList_member_ToDafny(val) + fieldValue = append(fieldValue, element) + } + return dafny.SeqOf(fieldValue...) + }() +} + +func Aws_cryptography_materialProviders_OnDecryptOutput_materials_ToDafny(input awscryptographymaterialproviderssmithygeneratedtypes.DecryptionMaterials) AwsCryptographyMaterialProvidersTypes.DecryptionMaterials { + return func() AwsCryptographyMaterialProvidersTypes.DecryptionMaterials { + + return AwsCryptographyMaterialProvidersTypes.Companion_DecryptionMaterials_.Create_DecryptionMaterials_(Aws_cryptography_materialProviders_DecryptionMaterials_algorithmSuite_ToDafny(input.AlgorithmSuite), Aws_cryptography_materialProviders_DecryptionMaterials_encryptionContext_ToDafny(input.EncryptionContext), Aws_cryptography_materialProviders_DecryptionMaterials_requiredEncryptionContextKeys_ToDafny(input.RequiredEncryptionContextKeys), Aws_cryptography_materialProviders_DecryptionMaterials_plaintextDataKey_ToDafny(input.PlaintextDataKey), Aws_cryptography_materialProviders_DecryptionMaterials_verificationKey_ToDafny(input.VerificationKey), Aws_cryptography_materialProviders_DecryptionMaterials_symmetricSigningKey_ToDafny(input.SymmetricSigningKey)) + }() +} + +func Aws_cryptography_materialProviders_OnEncryptInput_materials_ToDafny(input awscryptographymaterialproviderssmithygeneratedtypes.EncryptionMaterials) AwsCryptographyMaterialProvidersTypes.EncryptionMaterials { + return func() AwsCryptographyMaterialProvidersTypes.EncryptionMaterials { + + return AwsCryptographyMaterialProvidersTypes.Companion_EncryptionMaterials_.Create_EncryptionMaterials_(Aws_cryptography_materialProviders_EncryptionMaterials_algorithmSuite_ToDafny(input.AlgorithmSuite), Aws_cryptography_materialProviders_EncryptionMaterials_encryptionContext_ToDafny(input.EncryptionContext), Aws_cryptography_materialProviders_EncryptionMaterials_encryptedDataKeys_ToDafny(input.EncryptedDataKeys), Aws_cryptography_materialProviders_EncryptionMaterials_requiredEncryptionContextKeys_ToDafny(input.RequiredEncryptionContextKeys), Aws_cryptography_materialProviders_EncryptionMaterials_plaintextDataKey_ToDafny(input.PlaintextDataKey), Aws_cryptography_materialProviders_EncryptionMaterials_signingKey_ToDafny(input.SigningKey), Aws_cryptography_materialProviders_EncryptionMaterials_symmetricSigningKeys_ToDafny(input.SymmetricSigningKeys)) + }() +} + +func Aws_cryptography_materialProviders_OnEncryptOutput_materials_ToDafny(input awscryptographymaterialproviderssmithygeneratedtypes.EncryptionMaterials) AwsCryptographyMaterialProvidersTypes.EncryptionMaterials { + return func() AwsCryptographyMaterialProvidersTypes.EncryptionMaterials { + + return AwsCryptographyMaterialProvidersTypes.Companion_EncryptionMaterials_.Create_EncryptionMaterials_(Aws_cryptography_materialProviders_EncryptionMaterials_algorithmSuite_ToDafny(input.AlgorithmSuite), Aws_cryptography_materialProviders_EncryptionMaterials_encryptionContext_ToDafny(input.EncryptionContext), Aws_cryptography_materialProviders_EncryptionMaterials_encryptedDataKeys_ToDafny(input.EncryptedDataKeys), Aws_cryptography_materialProviders_EncryptionMaterials_requiredEncryptionContextKeys_ToDafny(input.RequiredEncryptionContextKeys), Aws_cryptography_materialProviders_EncryptionMaterials_plaintextDataKey_ToDafny(input.PlaintextDataKey), Aws_cryptography_materialProviders_EncryptionMaterials_signingKey_ToDafny(input.SigningKey), Aws_cryptography_materialProviders_EncryptionMaterials_symmetricSigningKeys_ToDafny(input.SymmetricSigningKeys)) + }() +} + +func Aws_cryptography_materialProviders_AwsCryptographicMaterialProvidersException_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_materialProviders_EntryAlreadyExists_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_materialProviders_EntryDoesNotExist_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_materialProviders_InFlightTTLExceeded_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_materialProviders_InvalidAlgorithmSuiteInfo_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_materialProviders_InvalidAlgorithmSuiteInfoOnDecrypt_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_materialProviders_InvalidAlgorithmSuiteInfoOnEncrypt_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_materialProviders_InvalidDecryptionMaterials_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_materialProviders_InvalidDecryptionMaterialsTransition_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_materialProviders_InvalidEncryptionMaterials_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_materialProviders_InvalidEncryptionMaterialsTransition_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_materialProviders_StaticConfigurations_AWS_KMS_ECDH_ToDafny(input awscryptographymaterialproviderssmithygeneratedtypes.KmsEcdhStaticConfigurations) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + switch input.(type) { + case *awscryptographymaterialproviderssmithygeneratedtypes.KmsEcdhStaticConfigurationsMemberKmsPublicKeyDiscovery: + var inputToConversion = Aws_cryptography_materialProviders_KmsEcdhStaticConfigurations_KmsPublicKeyDiscovery_ToDafny(input.(*awscryptographymaterialproviderssmithygeneratedtypes.KmsEcdhStaticConfigurationsMemberKmsPublicKeyDiscovery).Value) + return Wrappers.Companion_Option_.Create_Some_(AwsCryptographyMaterialProvidersTypes.CompanionStruct_KmsEcdhStaticConfigurations_{}.Create_KmsPublicKeyDiscovery_(inputToConversion.UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.KmsPublicKeyDiscoveryInput))) + case *awscryptographymaterialproviderssmithygeneratedtypes.KmsEcdhStaticConfigurationsMemberKmsPrivateKeyToStaticPublicKey: + var inputToConversion = Aws_cryptography_materialProviders_KmsEcdhStaticConfigurations_KmsPrivateKeyToStaticPublicKey_ToDafny(input.(*awscryptographymaterialproviderssmithygeneratedtypes.KmsEcdhStaticConfigurationsMemberKmsPrivateKeyToStaticPublicKey).Value) + return Wrappers.Companion_Option_.Create_Some_(AwsCryptographyMaterialProvidersTypes.CompanionStruct_KmsEcdhStaticConfigurations_{}.Create_KmsPrivateKeyToStaticPublicKey_(inputToConversion.UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.KmsPrivateKeyToStaticPublicKeyInput))) + + default: + panic("Unhandled union type") + } + }() +} + +func Aws_cryptography_materialProviders_StaticConfigurations_RAW_ECDH_ToDafny(input awscryptographymaterialproviderssmithygeneratedtypes.RawEcdhStaticConfigurations) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + switch input.(type) { + case *awscryptographymaterialproviderssmithygeneratedtypes.RawEcdhStaticConfigurationsMemberPublicKeyDiscovery: + var inputToConversion = Aws_cryptography_materialProviders_RawEcdhStaticConfigurations_PublicKeyDiscovery_ToDafny(input.(*awscryptographymaterialproviderssmithygeneratedtypes.RawEcdhStaticConfigurationsMemberPublicKeyDiscovery).Value) + return Wrappers.Companion_Option_.Create_Some_(AwsCryptographyMaterialProvidersTypes.CompanionStruct_RawEcdhStaticConfigurations_{}.Create_PublicKeyDiscovery_(inputToConversion.UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.PublicKeyDiscoveryInput))) + case *awscryptographymaterialproviderssmithygeneratedtypes.RawEcdhStaticConfigurationsMemberRawPrivateKeyToStaticPublicKey: + var inputToConversion = Aws_cryptography_materialProviders_RawEcdhStaticConfigurations_RawPrivateKeyToStaticPublicKey_ToDafny(input.(*awscryptographymaterialproviderssmithygeneratedtypes.RawEcdhStaticConfigurationsMemberRawPrivateKeyToStaticPublicKey).Value) + return Wrappers.Companion_Option_.Create_Some_(AwsCryptographyMaterialProvidersTypes.CompanionStruct_RawEcdhStaticConfigurations_{}.Create_RawPrivateKeyToStaticPublicKey_(inputToConversion.UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.RawPrivateKeyToStaticPublicKeyInput))) + case *awscryptographymaterialproviderssmithygeneratedtypes.RawEcdhStaticConfigurationsMemberEphemeralPrivateKeyToStaticPublicKey: + var inputToConversion = Aws_cryptography_materialProviders_RawEcdhStaticConfigurations_EphemeralPrivateKeyToStaticPublicKey_ToDafny(input.(*awscryptographymaterialproviderssmithygeneratedtypes.RawEcdhStaticConfigurationsMemberEphemeralPrivateKeyToStaticPublicKey).Value) + return Wrappers.Companion_Option_.Create_Some_(AwsCryptographyMaterialProvidersTypes.CompanionStruct_RawEcdhStaticConfigurations_{}.Create_EphemeralPrivateKeyToStaticPublicKey_(inputToConversion.UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.EphemeralPrivateKeyToStaticPublicKeyInput))) + + default: + panic("Unhandled union type") + } + }() +} + +func Aws_cryptography_materialProviders_KeyAgreementScheme_StaticConfiguration_ToDafny(input awscryptographymaterialproviderssmithygeneratedtypes.StaticConfigurations) Wrappers.Option { + return func() Wrappers.Option { + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + switch input.(type) { + case *awscryptographymaterialproviderssmithygeneratedtypes.StaticConfigurationsMemberAWS_KMS_ECDH: + var inputToConversion = Aws_cryptography_materialProviders_StaticConfigurations_AWS_KMS_ECDH_ToDafny(input.(*awscryptographymaterialproviderssmithygeneratedtypes.StaticConfigurationsMemberAWS_KMS_ECDH).Value) + return Wrappers.Companion_Option_.Create_Some_(AwsCryptographyMaterialProvidersTypes.CompanionStruct_StaticConfigurations_{}.Create_AWS__KMS__ECDH_(inputToConversion.UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.KmsEcdhStaticConfigurations))) + case *awscryptographymaterialproviderssmithygeneratedtypes.StaticConfigurationsMemberRAW_ECDH: + var inputToConversion = Aws_cryptography_materialProviders_StaticConfigurations_RAW_ECDH_ToDafny(input.(*awscryptographymaterialproviderssmithygeneratedtypes.StaticConfigurationsMemberRAW_ECDH).Value) + return Wrappers.Companion_Option_.Create_Some_(AwsCryptographyMaterialProvidersTypes.CompanionStruct_StaticConfigurations_{}.Create_RAW__ECDH_(inputToConversion.UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.RawEcdhStaticConfigurations))) + + default: + panic("Unhandled union type") + } + }() +} diff --git a/customer-preview/mpl/awscryptographymaterialproviderssmithygenerated/to_native.go b/customer-preview/mpl/awscryptographymaterialproviderssmithygenerated/to_native.go new file mode 100644 index 000000000..38af8faf3 --- /dev/null +++ b/customer-preview/mpl/awscryptographymaterialproviderssmithygenerated/to_native.go @@ -0,0 +1,3364 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package awscryptographymaterialproviderssmithygenerated + +import ( + "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/comamazonawsdynamodbsmithygenerated" + "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/ComAmazonawsKmsTypes" + "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/KMSwrapped" + "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/comamazonawskmssmithygenerated" + "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/awscryptographymaterialproviderssmithygeneratedtypes" + "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesTypes" + "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-sdk-go-v2/service/kms" + kmstypes "github.com/aws/aws-sdk-go-v2/service/kms/types" + "github.com/dafny-lang/DafnyRuntimeGo/v4/dafny" +) + +func CreateAwsKmsDiscoveryKeyringInput_FromDafny(dafnyInput AwsCryptographyMaterialProvidersTypes.CreateAwsKmsDiscoveryKeyringInput) awscryptographymaterialproviderssmithygeneratedtypes.CreateAwsKmsDiscoveryKeyringInput { + + return awscryptographymaterialproviderssmithygeneratedtypes.CreateAwsKmsDiscoveryKeyringInput{KmsClient: Aws_cryptography_materialProviders_CreateAwsKmsDiscoveryKeyringInput_kmsClient_FromDafny(dafnyInput.Dtor_kmsClient()), + DiscoveryFilter: Aws_cryptography_materialProviders_CreateAwsKmsDiscoveryKeyringInput_discoveryFilter_FromDafny(dafnyInput.Dtor_discoveryFilter().UnwrapOr(nil)), + GrantTokens: Aws_cryptography_materialProviders_CreateAwsKmsDiscoveryKeyringInput_grantTokens_FromDafny(dafnyInput.Dtor_grantTokens().UnwrapOr(nil)), + } + +} + +func CreateAwsKmsDiscoveryMultiKeyringInput_FromDafny(dafnyInput AwsCryptographyMaterialProvidersTypes.CreateAwsKmsDiscoveryMultiKeyringInput) awscryptographymaterialproviderssmithygeneratedtypes.CreateAwsKmsDiscoveryMultiKeyringInput { + + return awscryptographymaterialproviderssmithygeneratedtypes.CreateAwsKmsDiscoveryMultiKeyringInput{Regions: Aws_cryptography_materialProviders_CreateAwsKmsDiscoveryMultiKeyringInput_regions_FromDafny(dafnyInput.Dtor_regions()), + DiscoveryFilter: Aws_cryptography_materialProviders_CreateAwsKmsDiscoveryMultiKeyringInput_discoveryFilter_FromDafny(dafnyInput.Dtor_discoveryFilter().UnwrapOr(nil)), + ClientSupplier: func() awscryptographymaterialproviderssmithygeneratedtypes.IClientSupplier { + if dafnyInput.Dtor_clientSupplier().UnwrapOr(nil) == nil { + return nil + } + return ClientSupplier_FromDafny(dafnyInput.Dtor_clientSupplier().UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.IClientSupplier)) + }(), + GrantTokens: Aws_cryptography_materialProviders_CreateAwsKmsDiscoveryMultiKeyringInput_grantTokens_FromDafny(dafnyInput.Dtor_grantTokens().UnwrapOr(nil)), + } + +} + +func CreateAwsKmsEcdhKeyringInput_FromDafny(dafnyInput AwsCryptographyMaterialProvidersTypes.CreateAwsKmsEcdhKeyringInput) awscryptographymaterialproviderssmithygeneratedtypes.CreateAwsKmsEcdhKeyringInput { + + return awscryptographymaterialproviderssmithygeneratedtypes.CreateAwsKmsEcdhKeyringInput{KeyAgreementScheme: Aws_cryptography_materialProviders_CreateAwsKmsEcdhKeyringInput_KeyAgreementScheme_FromDafny(dafnyInput.Dtor_KeyAgreementScheme()), + CurveSpec: Aws_cryptography_materialProviders_CreateAwsKmsEcdhKeyringInput_curveSpec_FromDafny(dafnyInput.Dtor_curveSpec()), + KmsClient: Aws_cryptography_materialProviders_CreateAwsKmsEcdhKeyringInput_kmsClient_FromDafny(dafnyInput.Dtor_kmsClient()), + GrantTokens: Aws_cryptography_materialProviders_CreateAwsKmsEcdhKeyringInput_grantTokens_FromDafny(dafnyInput.Dtor_grantTokens().UnwrapOr(nil)), + } + +} + +func CreateAwsKmsHierarchicalKeyringInput_FromDafny(dafnyInput AwsCryptographyMaterialProvidersTypes.CreateAwsKmsHierarchicalKeyringInput) awscryptographymaterialproviderssmithygeneratedtypes.CreateAwsKmsHierarchicalKeyringInput { + + return awscryptographymaterialproviderssmithygeneratedtypes.CreateAwsKmsHierarchicalKeyringInput{BranchKeyId: Aws_cryptography_materialProviders_CreateAwsKmsHierarchicalKeyringInput_branchKeyId_FromDafny(dafnyInput.Dtor_branchKeyId().UnwrapOr(nil)), + BranchKeyIdSupplier: func() awscryptographymaterialproviderssmithygeneratedtypes.IBranchKeyIdSupplier { + if dafnyInput.Dtor_branchKeyIdSupplier().UnwrapOr(nil) == nil { + return nil + } + return BranchKeyIdSupplier_FromDafny(dafnyInput.Dtor_branchKeyIdSupplier().UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.IBranchKeyIdSupplier)) + }(), + KeyStore: Aws_cryptography_materialProviders_CreateAwsKmsHierarchicalKeyringInput_keyStore_FromDafny(dafnyInput.Dtor_keyStore()), + TtlSeconds: Aws_cryptography_materialProviders_CreateAwsKmsHierarchicalKeyringInput_ttlSeconds_FromDafny(dafnyInput.Dtor_ttlSeconds()), + Cache: Aws_cryptography_materialProviders_CreateAwsKmsHierarchicalKeyringInput_cache_FromDafny(dafnyInput.Dtor_cache().UnwrapOr(nil)), + PartitionId: Aws_cryptography_materialProviders_CreateAwsKmsHierarchicalKeyringInput_partitionId_FromDafny(dafnyInput.Dtor_partitionId().UnwrapOr(nil)), + } + +} + +func CreateAwsKmsKeyringInput_FromDafny(dafnyInput AwsCryptographyMaterialProvidersTypes.CreateAwsKmsKeyringInput) awscryptographymaterialproviderssmithygeneratedtypes.CreateAwsKmsKeyringInput { + + return awscryptographymaterialproviderssmithygeneratedtypes.CreateAwsKmsKeyringInput{KmsKeyId: Aws_cryptography_materialProviders_CreateAwsKmsKeyringInput_kmsKeyId_FromDafny(dafnyInput.Dtor_kmsKeyId()), + KmsClient: Aws_cryptography_materialProviders_CreateAwsKmsKeyringInput_kmsClient_FromDafny(dafnyInput.Dtor_kmsClient()), + GrantTokens: Aws_cryptography_materialProviders_CreateAwsKmsKeyringInput_grantTokens_FromDafny(dafnyInput.Dtor_grantTokens().UnwrapOr(nil)), + } + +} + +func CreateAwsKmsMrkDiscoveryKeyringInput_FromDafny(dafnyInput AwsCryptographyMaterialProvidersTypes.CreateAwsKmsMrkDiscoveryKeyringInput) awscryptographymaterialproviderssmithygeneratedtypes.CreateAwsKmsMrkDiscoveryKeyringInput { + + return awscryptographymaterialproviderssmithygeneratedtypes.CreateAwsKmsMrkDiscoveryKeyringInput{KmsClient: Aws_cryptography_materialProviders_CreateAwsKmsMrkDiscoveryKeyringInput_kmsClient_FromDafny(dafnyInput.Dtor_kmsClient()), + DiscoveryFilter: Aws_cryptography_materialProviders_CreateAwsKmsMrkDiscoveryKeyringInput_discoveryFilter_FromDafny(dafnyInput.Dtor_discoveryFilter().UnwrapOr(nil)), + GrantTokens: Aws_cryptography_materialProviders_CreateAwsKmsMrkDiscoveryKeyringInput_grantTokens_FromDafny(dafnyInput.Dtor_grantTokens().UnwrapOr(nil)), + Region: Aws_cryptography_materialProviders_CreateAwsKmsMrkDiscoveryKeyringInput_region_FromDafny(dafnyInput.Dtor_region()), + } + +} + +func CreateAwsKmsMrkDiscoveryMultiKeyringInput_FromDafny(dafnyInput AwsCryptographyMaterialProvidersTypes.CreateAwsKmsMrkDiscoveryMultiKeyringInput) awscryptographymaterialproviderssmithygeneratedtypes.CreateAwsKmsMrkDiscoveryMultiKeyringInput { + + return awscryptographymaterialproviderssmithygeneratedtypes.CreateAwsKmsMrkDiscoveryMultiKeyringInput{Regions: Aws_cryptography_materialProviders_CreateAwsKmsMrkDiscoveryMultiKeyringInput_regions_FromDafny(dafnyInput.Dtor_regions()), + DiscoveryFilter: Aws_cryptography_materialProviders_CreateAwsKmsMrkDiscoveryMultiKeyringInput_discoveryFilter_FromDafny(dafnyInput.Dtor_discoveryFilter().UnwrapOr(nil)), + ClientSupplier: func() awscryptographymaterialproviderssmithygeneratedtypes.IClientSupplier { + if dafnyInput.Dtor_clientSupplier().UnwrapOr(nil) == nil { + return nil + } + return ClientSupplier_FromDafny(dafnyInput.Dtor_clientSupplier().UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.IClientSupplier)) + }(), + GrantTokens: Aws_cryptography_materialProviders_CreateAwsKmsMrkDiscoveryMultiKeyringInput_grantTokens_FromDafny(dafnyInput.Dtor_grantTokens().UnwrapOr(nil)), + } + +} + +func CreateAwsKmsMrkKeyringInput_FromDafny(dafnyInput AwsCryptographyMaterialProvidersTypes.CreateAwsKmsMrkKeyringInput) awscryptographymaterialproviderssmithygeneratedtypes.CreateAwsKmsMrkKeyringInput { + + return awscryptographymaterialproviderssmithygeneratedtypes.CreateAwsKmsMrkKeyringInput{KmsKeyId: Aws_cryptography_materialProviders_CreateAwsKmsMrkKeyringInput_kmsKeyId_FromDafny(dafnyInput.Dtor_kmsKeyId()), + KmsClient: Aws_cryptography_materialProviders_CreateAwsKmsMrkKeyringInput_kmsClient_FromDafny(dafnyInput.Dtor_kmsClient()), + GrantTokens: Aws_cryptography_materialProviders_CreateAwsKmsMrkKeyringInput_grantTokens_FromDafny(dafnyInput.Dtor_grantTokens().UnwrapOr(nil)), + } + +} + +func CreateAwsKmsMrkMultiKeyringInput_FromDafny(dafnyInput AwsCryptographyMaterialProvidersTypes.CreateAwsKmsMrkMultiKeyringInput) awscryptographymaterialproviderssmithygeneratedtypes.CreateAwsKmsMrkMultiKeyringInput { + + return awscryptographymaterialproviderssmithygeneratedtypes.CreateAwsKmsMrkMultiKeyringInput{Generator: Aws_cryptography_materialProviders_CreateAwsKmsMrkMultiKeyringInput_generator_FromDafny(dafnyInput.Dtor_generator().UnwrapOr(nil)), + KmsKeyIds: Aws_cryptography_materialProviders_CreateAwsKmsMrkMultiKeyringInput_kmsKeyIds_FromDafny(dafnyInput.Dtor_kmsKeyIds().UnwrapOr(nil)), + ClientSupplier: func() awscryptographymaterialproviderssmithygeneratedtypes.IClientSupplier { + if dafnyInput.Dtor_clientSupplier().UnwrapOr(nil) == nil { + return nil + } + return ClientSupplier_FromDafny(dafnyInput.Dtor_clientSupplier().UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.IClientSupplier)) + }(), + GrantTokens: Aws_cryptography_materialProviders_CreateAwsKmsMrkMultiKeyringInput_grantTokens_FromDafny(dafnyInput.Dtor_grantTokens().UnwrapOr(nil)), + } + +} + +func CreateAwsKmsMultiKeyringInput_FromDafny(dafnyInput AwsCryptographyMaterialProvidersTypes.CreateAwsKmsMultiKeyringInput) awscryptographymaterialproviderssmithygeneratedtypes.CreateAwsKmsMultiKeyringInput { + + return awscryptographymaterialproviderssmithygeneratedtypes.CreateAwsKmsMultiKeyringInput{Generator: Aws_cryptography_materialProviders_CreateAwsKmsMultiKeyringInput_generator_FromDafny(dafnyInput.Dtor_generator().UnwrapOr(nil)), + KmsKeyIds: Aws_cryptography_materialProviders_CreateAwsKmsMultiKeyringInput_kmsKeyIds_FromDafny(dafnyInput.Dtor_kmsKeyIds().UnwrapOr(nil)), + ClientSupplier: func() awscryptographymaterialproviderssmithygeneratedtypes.IClientSupplier { + if dafnyInput.Dtor_clientSupplier().UnwrapOr(nil) == nil { + return nil + } + return ClientSupplier_FromDafny(dafnyInput.Dtor_clientSupplier().UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.IClientSupplier)) + }(), + GrantTokens: Aws_cryptography_materialProviders_CreateAwsKmsMultiKeyringInput_grantTokens_FromDafny(dafnyInput.Dtor_grantTokens().UnwrapOr(nil)), + } + +} + +func CreateAwsKmsRsaKeyringInput_FromDafny(dafnyInput AwsCryptographyMaterialProvidersTypes.CreateAwsKmsRsaKeyringInput) awscryptographymaterialproviderssmithygeneratedtypes.CreateAwsKmsRsaKeyringInput { + + return awscryptographymaterialproviderssmithygeneratedtypes.CreateAwsKmsRsaKeyringInput{PublicKey: Aws_cryptography_materialProviders_CreateAwsKmsRsaKeyringInput_publicKey_FromDafny(dafnyInput.Dtor_publicKey().UnwrapOr(nil)), + KmsKeyId: Aws_cryptography_materialProviders_CreateAwsKmsRsaKeyringInput_kmsKeyId_FromDafny(dafnyInput.Dtor_kmsKeyId()), + EncryptionAlgorithm: Aws_cryptography_materialProviders_CreateAwsKmsRsaKeyringInput_encryptionAlgorithm_FromDafny(dafnyInput.Dtor_encryptionAlgorithm()), + KmsClient: Aws_cryptography_materialProviders_CreateAwsKmsRsaKeyringInput_kmsClient_FromDafny(dafnyInput.Dtor_kmsClient().UnwrapOr(nil)), + GrantTokens: Aws_cryptography_materialProviders_CreateAwsKmsRsaKeyringInput_grantTokens_FromDafny(dafnyInput.Dtor_grantTokens().UnwrapOr(nil)), + } + +} + +func CreateCryptographicMaterialsCacheInput_FromDafny(dafnyInput AwsCryptographyMaterialProvidersTypes.CreateCryptographicMaterialsCacheInput) awscryptographymaterialproviderssmithygeneratedtypes.CreateCryptographicMaterialsCacheInput { + + return awscryptographymaterialproviderssmithygeneratedtypes.CreateCryptographicMaterialsCacheInput{Cache: Aws_cryptography_materialProviders_CreateCryptographicMaterialsCacheInput_cache_FromDafny(dafnyInput.Dtor_cache())} + +} + +func CreateDefaultClientSupplierInput_FromDafny(dafnyInput AwsCryptographyMaterialProvidersTypes.CreateDefaultClientSupplierInput) awscryptographymaterialproviderssmithygeneratedtypes.CreateDefaultClientSupplierInput { + + return awscryptographymaterialproviderssmithygeneratedtypes.CreateDefaultClientSupplierInput{} + +} + +func CreateDefaultCryptographicMaterialsManagerInput_FromDafny(dafnyInput AwsCryptographyMaterialProvidersTypes.CreateDefaultCryptographicMaterialsManagerInput) awscryptographymaterialproviderssmithygeneratedtypes.CreateDefaultCryptographicMaterialsManagerInput { + + return awscryptographymaterialproviderssmithygeneratedtypes.CreateDefaultCryptographicMaterialsManagerInput{Keyring: Keyring_FromDafny(dafnyInput.Dtor_keyring())} + +} + +func CreateMultiKeyringInput_FromDafny(dafnyInput AwsCryptographyMaterialProvidersTypes.CreateMultiKeyringInput) awscryptographymaterialproviderssmithygeneratedtypes.CreateMultiKeyringInput { + + return awscryptographymaterialproviderssmithygeneratedtypes.CreateMultiKeyringInput{Generator: func() awscryptographymaterialproviderssmithygeneratedtypes.IKeyring { + if dafnyInput.Dtor_generator().UnwrapOr(nil) == nil { + return nil + } + return Keyring_FromDafny(dafnyInput.Dtor_generator().UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.IKeyring)) + }(), + ChildKeyrings: Aws_cryptography_materialProviders_CreateMultiKeyringInput_childKeyrings_FromDafny(dafnyInput.Dtor_childKeyrings()), + } + +} + +func CreateRawAesKeyringInput_FromDafny(dafnyInput AwsCryptographyMaterialProvidersTypes.CreateRawAesKeyringInput) awscryptographymaterialproviderssmithygeneratedtypes.CreateRawAesKeyringInput { + + return awscryptographymaterialproviderssmithygeneratedtypes.CreateRawAesKeyringInput{KeyNamespace: Aws_cryptography_materialProviders_CreateRawAesKeyringInput_keyNamespace_FromDafny(dafnyInput.Dtor_keyNamespace()), + KeyName: Aws_cryptography_materialProviders_CreateRawAesKeyringInput_keyName_FromDafny(dafnyInput.Dtor_keyName()), + WrappingKey: Aws_cryptography_materialProviders_CreateRawAesKeyringInput_wrappingKey_FromDafny(dafnyInput.Dtor_wrappingKey()), + WrappingAlg: Aws_cryptography_materialProviders_CreateRawAesKeyringInput_wrappingAlg_FromDafny(dafnyInput.Dtor_wrappingAlg()), + } + +} + +func CreateRawEcdhKeyringInput_FromDafny(dafnyInput AwsCryptographyMaterialProvidersTypes.CreateRawEcdhKeyringInput) awscryptographymaterialproviderssmithygeneratedtypes.CreateRawEcdhKeyringInput { + + return awscryptographymaterialproviderssmithygeneratedtypes.CreateRawEcdhKeyringInput{KeyAgreementScheme: Aws_cryptography_materialProviders_CreateRawEcdhKeyringInput_KeyAgreementScheme_FromDafny(dafnyInput.Dtor_KeyAgreementScheme()), + CurveSpec: Aws_cryptography_materialProviders_CreateRawEcdhKeyringInput_curveSpec_FromDafny(dafnyInput.Dtor_curveSpec()), + } + +} + +func CreateRawRsaKeyringInput_FromDafny(dafnyInput AwsCryptographyMaterialProvidersTypes.CreateRawRsaKeyringInput) awscryptographymaterialproviderssmithygeneratedtypes.CreateRawRsaKeyringInput { + + return awscryptographymaterialproviderssmithygeneratedtypes.CreateRawRsaKeyringInput{KeyNamespace: Aws_cryptography_materialProviders_CreateRawRsaKeyringInput_keyNamespace_FromDafny(dafnyInput.Dtor_keyNamespace()), + KeyName: Aws_cryptography_materialProviders_CreateRawRsaKeyringInput_keyName_FromDafny(dafnyInput.Dtor_keyName()), + PaddingScheme: Aws_cryptography_materialProviders_CreateRawRsaKeyringInput_paddingScheme_FromDafny(dafnyInput.Dtor_paddingScheme()), + PublicKey: Aws_cryptography_materialProviders_CreateRawRsaKeyringInput_publicKey_FromDafny(dafnyInput.Dtor_publicKey().UnwrapOr(nil)), + PrivateKey: Aws_cryptography_materialProviders_CreateRawRsaKeyringInput_privateKey_FromDafny(dafnyInput.Dtor_privateKey().UnwrapOr(nil)), + } + +} + +func CreateRequiredEncryptionContextCMMInput_FromDafny(dafnyInput AwsCryptographyMaterialProvidersTypes.CreateRequiredEncryptionContextCMMInput) awscryptographymaterialproviderssmithygeneratedtypes.CreateRequiredEncryptionContextCMMInput { + + return awscryptographymaterialproviderssmithygeneratedtypes.CreateRequiredEncryptionContextCMMInput{UnderlyingCMM: func() awscryptographymaterialproviderssmithygeneratedtypes.ICryptographicMaterialsManager { + if dafnyInput.Dtor_underlyingCMM().UnwrapOr(nil) == nil { + return nil + } + return CryptographicMaterialsManager_FromDafny(dafnyInput.Dtor_underlyingCMM().UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.ICryptographicMaterialsManager)) + }(), + Keyring: func() awscryptographymaterialproviderssmithygeneratedtypes.IKeyring { + if dafnyInput.Dtor_keyring().UnwrapOr(nil) == nil { + return nil + } + return Keyring_FromDafny(dafnyInput.Dtor_keyring().UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.IKeyring)) + }(), + RequiredEncryptionContextKeys: Aws_cryptography_materialProviders_CreateRequiredEncryptionContextCMMInput_requiredEncryptionContextKeys_FromDafny(dafnyInput.Dtor_requiredEncryptionContextKeys()), + } + +} + +func DecryptionMaterials_FromDafny(dafnyInput AwsCryptographyMaterialProvidersTypes.DecryptionMaterials) awscryptographymaterialproviderssmithygeneratedtypes.DecryptionMaterials { + + return awscryptographymaterialproviderssmithygeneratedtypes.DecryptionMaterials{AlgorithmSuite: Aws_cryptography_materialProviders_DecryptionMaterials_algorithmSuite_FromDafny(dafnyInput.Dtor_algorithmSuite()), + EncryptionContext: Aws_cryptography_materialProviders_DecryptionMaterials_encryptionContext_FromDafny(dafnyInput.Dtor_encryptionContext()), + RequiredEncryptionContextKeys: Aws_cryptography_materialProviders_DecryptionMaterials_requiredEncryptionContextKeys_FromDafny(dafnyInput.Dtor_requiredEncryptionContextKeys()), + PlaintextDataKey: Aws_cryptography_materialProviders_DecryptionMaterials_plaintextDataKey_FromDafny(dafnyInput.Dtor_plaintextDataKey().UnwrapOr(nil)), + VerificationKey: Aws_cryptography_materialProviders_DecryptionMaterials_verificationKey_FromDafny(dafnyInput.Dtor_verificationKey().UnwrapOr(nil)), + SymmetricSigningKey: Aws_cryptography_materialProviders_DecryptionMaterials_symmetricSigningKey_FromDafny(dafnyInput.Dtor_symmetricSigningKey().UnwrapOr(nil)), + } + +} + +func EncryptionMaterials_FromDafny(dafnyInput AwsCryptographyMaterialProvidersTypes.EncryptionMaterials) awscryptographymaterialproviderssmithygeneratedtypes.EncryptionMaterials { + + return awscryptographymaterialproviderssmithygeneratedtypes.EncryptionMaterials{AlgorithmSuite: Aws_cryptography_materialProviders_EncryptionMaterials_algorithmSuite_FromDafny(dafnyInput.Dtor_algorithmSuite()), + EncryptionContext: Aws_cryptography_materialProviders_EncryptionMaterials_encryptionContext_FromDafny(dafnyInput.Dtor_encryptionContext()), + EncryptedDataKeys: Aws_cryptography_materialProviders_EncryptionMaterials_encryptedDataKeys_FromDafny(dafnyInput.Dtor_encryptedDataKeys()), + RequiredEncryptionContextKeys: Aws_cryptography_materialProviders_EncryptionMaterials_requiredEncryptionContextKeys_FromDafny(dafnyInput.Dtor_requiredEncryptionContextKeys()), + PlaintextDataKey: Aws_cryptography_materialProviders_EncryptionMaterials_plaintextDataKey_FromDafny(dafnyInput.Dtor_plaintextDataKey().UnwrapOr(nil)), + SigningKey: Aws_cryptography_materialProviders_EncryptionMaterials_signingKey_FromDafny(dafnyInput.Dtor_signingKey().UnwrapOr(nil)), + SymmetricSigningKeys: Aws_cryptography_materialProviders_EncryptionMaterials_symmetricSigningKeys_FromDafny(dafnyInput.Dtor_symmetricSigningKeys().UnwrapOr(nil)), + } + +} + +func GetAlgorithmSuiteInfoInput_FromDafny(dafnyInput dafny.Sequence) awscryptographymaterialproviderssmithygeneratedtypes.GetAlgorithmSuiteInfoInput { + + return awscryptographymaterialproviderssmithygeneratedtypes.GetAlgorithmSuiteInfoInput{BinaryId: Aws_cryptography_materialProviders_GetAlgorithmSuiteInfoInput_binaryId_FromDafny(dafnyInput)} + +} + +func AlgorithmSuiteInfo_FromDafny(dafnyOutput AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo) awscryptographymaterialproviderssmithygeneratedtypes.AlgorithmSuiteInfo { + + return awscryptographymaterialproviderssmithygeneratedtypes.AlgorithmSuiteInfo{Id: Aws_cryptography_materialProviders_AlgorithmSuiteInfo_id_FromDafny(dafnyOutput.Dtor_id()), + BinaryId: Aws_cryptography_materialProviders_AlgorithmSuiteInfo_binaryId_FromDafny(dafnyOutput.Dtor_binaryId()), + MessageVersion: Aws_cryptography_materialProviders_AlgorithmSuiteInfo_messageVersion_FromDafny(dafnyOutput.Dtor_messageVersion()), + Encrypt: Aws_cryptography_materialProviders_AlgorithmSuiteInfo_encrypt_FromDafny(dafnyOutput.Dtor_encrypt()), + Kdf: Aws_cryptography_materialProviders_AlgorithmSuiteInfo_kdf_FromDafny(dafnyOutput.Dtor_kdf()), + Commitment: Aws_cryptography_materialProviders_AlgorithmSuiteInfo_commitment_FromDafny(dafnyOutput.Dtor_commitment()), + Signature: Aws_cryptography_materialProviders_AlgorithmSuiteInfo_signature_FromDafny(dafnyOutput.Dtor_signature()), + SymmetricSignature: Aws_cryptography_materialProviders_AlgorithmSuiteInfo_symmetricSignature_FromDafny(dafnyOutput.Dtor_symmetricSignature()), + EdkWrapping: Aws_cryptography_materialProviders_AlgorithmSuiteInfo_edkWrapping_FromDafny(dafnyOutput.Dtor_edkWrapping()), + } + +} + +func InitializeDecryptionMaterialsInput_FromDafny(dafnyInput AwsCryptographyMaterialProvidersTypes.InitializeDecryptionMaterialsInput) awscryptographymaterialproviderssmithygeneratedtypes.InitializeDecryptionMaterialsInput { + + return awscryptographymaterialproviderssmithygeneratedtypes.InitializeDecryptionMaterialsInput{AlgorithmSuiteId: Aws_cryptography_materialProviders_InitializeDecryptionMaterialsInput_algorithmSuiteId_FromDafny(dafnyInput.Dtor_algorithmSuiteId()), + EncryptionContext: Aws_cryptography_materialProviders_InitializeDecryptionMaterialsInput_encryptionContext_FromDafny(dafnyInput.Dtor_encryptionContext()), + RequiredEncryptionContextKeys: Aws_cryptography_materialProviders_InitializeDecryptionMaterialsInput_requiredEncryptionContextKeys_FromDafny(dafnyInput.Dtor_requiredEncryptionContextKeys()), + } + +} + +func InitializeEncryptionMaterialsInput_FromDafny(dafnyInput AwsCryptographyMaterialProvidersTypes.InitializeEncryptionMaterialsInput) awscryptographymaterialproviderssmithygeneratedtypes.InitializeEncryptionMaterialsInput { + + return awscryptographymaterialproviderssmithygeneratedtypes.InitializeEncryptionMaterialsInput{AlgorithmSuiteId: Aws_cryptography_materialProviders_InitializeEncryptionMaterialsInput_algorithmSuiteId_FromDafny(dafnyInput.Dtor_algorithmSuiteId()), + EncryptionContext: Aws_cryptography_materialProviders_InitializeEncryptionMaterialsInput_encryptionContext_FromDafny(dafnyInput.Dtor_encryptionContext()), + RequiredEncryptionContextKeys: Aws_cryptography_materialProviders_InitializeEncryptionMaterialsInput_requiredEncryptionContextKeys_FromDafny(dafnyInput.Dtor_requiredEncryptionContextKeys()), + SigningKey: Aws_cryptography_materialProviders_InitializeEncryptionMaterialsInput_signingKey_FromDafny(dafnyInput.Dtor_signingKey().UnwrapOr(nil)), + VerificationKey: Aws_cryptography_materialProviders_InitializeEncryptionMaterialsInput_verificationKey_FromDafny(dafnyInput.Dtor_verificationKey().UnwrapOr(nil)), + } + +} + +func ValidateCommitmentPolicyOnDecryptInput_FromDafny(dafnyInput AwsCryptographyMaterialProvidersTypes.ValidateCommitmentPolicyOnDecryptInput) awscryptographymaterialproviderssmithygeneratedtypes.ValidateCommitmentPolicyOnDecryptInput { + + return awscryptographymaterialproviderssmithygeneratedtypes.ValidateCommitmentPolicyOnDecryptInput{Algorithm: Aws_cryptography_materialProviders_ValidateCommitmentPolicyOnDecryptInput_algorithm_FromDafny(dafnyInput.Dtor_algorithm()), + CommitmentPolicy: Aws_cryptography_materialProviders_ValidateCommitmentPolicyOnDecryptInput_commitmentPolicy_FromDafny(dafnyInput.Dtor_commitmentPolicy()), + } + +} + +func ValidateCommitmentPolicyOnEncryptInput_FromDafny(dafnyInput AwsCryptographyMaterialProvidersTypes.ValidateCommitmentPolicyOnEncryptInput) awscryptographymaterialproviderssmithygeneratedtypes.ValidateCommitmentPolicyOnEncryptInput { + + return awscryptographymaterialproviderssmithygeneratedtypes.ValidateCommitmentPolicyOnEncryptInput{Algorithm: Aws_cryptography_materialProviders_ValidateCommitmentPolicyOnEncryptInput_algorithm_FromDafny(dafnyInput.Dtor_algorithm()), + CommitmentPolicy: Aws_cryptography_materialProviders_ValidateCommitmentPolicyOnEncryptInput_commitmentPolicy_FromDafny(dafnyInput.Dtor_commitmentPolicy()), + } + +} + +func ValidDecryptionMaterialsTransitionInput_FromDafny(dafnyInput AwsCryptographyMaterialProvidersTypes.ValidDecryptionMaterialsTransitionInput) awscryptographymaterialproviderssmithygeneratedtypes.ValidDecryptionMaterialsTransitionInput { + + return awscryptographymaterialproviderssmithygeneratedtypes.ValidDecryptionMaterialsTransitionInput{Start: Aws_cryptography_materialProviders_ValidDecryptionMaterialsTransitionInput_start_FromDafny(dafnyInput.Dtor_start()), + Stop: Aws_cryptography_materialProviders_ValidDecryptionMaterialsTransitionInput_stop_FromDafny(dafnyInput.Dtor_stop()), + } + +} + +func ValidEncryptionMaterialsTransitionInput_FromDafny(dafnyInput AwsCryptographyMaterialProvidersTypes.ValidEncryptionMaterialsTransitionInput) awscryptographymaterialproviderssmithygeneratedtypes.ValidEncryptionMaterialsTransitionInput { + + return awscryptographymaterialproviderssmithygeneratedtypes.ValidEncryptionMaterialsTransitionInput{Start: Aws_cryptography_materialProviders_ValidEncryptionMaterialsTransitionInput_start_FromDafny(dafnyInput.Dtor_start()), + Stop: Aws_cryptography_materialProviders_ValidEncryptionMaterialsTransitionInput_stop_FromDafny(dafnyInput.Dtor_stop()), + } + +} + +func GetBranchKeyIdInput_FromDafny(dafnyInput AwsCryptographyMaterialProvidersTypes.GetBranchKeyIdInput) awscryptographymaterialproviderssmithygeneratedtypes.GetBranchKeyIdInput { + + return awscryptographymaterialproviderssmithygeneratedtypes.GetBranchKeyIdInput{EncryptionContext: Aws_cryptography_materialProviders_GetBranchKeyIdInput_encryptionContext_FromDafny(dafnyInput.Dtor_encryptionContext())} + +} + +func GetBranchKeyIdOutput_FromDafny(dafnyOutput AwsCryptographyMaterialProvidersTypes.GetBranchKeyIdOutput) awscryptographymaterialproviderssmithygeneratedtypes.GetBranchKeyIdOutput { + + return awscryptographymaterialproviderssmithygeneratedtypes.GetBranchKeyIdOutput{BranchKeyId: Aws_cryptography_materialProviders_GetBranchKeyIdOutput_branchKeyId_FromDafny(dafnyOutput.Dtor_branchKeyId())} + +} + +func BranchKeyIdSupplier_FromDafny(dafnyResource AwsCryptographyMaterialProvidersTypes.IBranchKeyIdSupplier) awscryptographymaterialproviderssmithygeneratedtypes.IBranchKeyIdSupplier { + val, ok := dafnyResource.(*BranchKeyIdSupplierNativeWrapper) + if ok { + return val.Impl + } + + return &BranchKeyIdSupplier{dafnyResource} +} + +func GetClientInput_FromDafny(dafnyInput AwsCryptographyMaterialProvidersTypes.GetClientInput) awscryptographymaterialproviderssmithygeneratedtypes.GetClientInput { + + return awscryptographymaterialproviderssmithygeneratedtypes.GetClientInput{Region: Aws_cryptography_materialProviders_GetClientInput_region_FromDafny(dafnyInput.Dtor_region())} + +} + +func ClientSupplier_FromDafny(dafnyResource AwsCryptographyMaterialProvidersTypes.IClientSupplier) awscryptographymaterialproviderssmithygeneratedtypes.IClientSupplier { + val, ok := dafnyResource.(*ClientSupplierNativeWrapper) + if ok { + return val.Impl + } + + return &ClientSupplier{dafnyResource} +} + +func DeleteCacheEntryInput_FromDafny(dafnyInput AwsCryptographyMaterialProvidersTypes.DeleteCacheEntryInput) awscryptographymaterialproviderssmithygeneratedtypes.DeleteCacheEntryInput { + + return awscryptographymaterialproviderssmithygeneratedtypes.DeleteCacheEntryInput{Identifier: Aws_cryptography_materialProviders_DeleteCacheEntryInput_identifier_FromDafny(dafnyInput.Dtor_identifier())} + +} + +func GetCacheEntryInput_FromDafny(dafnyInput AwsCryptographyMaterialProvidersTypes.GetCacheEntryInput) awscryptographymaterialproviderssmithygeneratedtypes.GetCacheEntryInput { + + return awscryptographymaterialproviderssmithygeneratedtypes.GetCacheEntryInput{Identifier: Aws_cryptography_materialProviders_GetCacheEntryInput_identifier_FromDafny(dafnyInput.Dtor_identifier()), + BytesUsed: Aws_cryptography_materialProviders_GetCacheEntryInput_bytesUsed_FromDafny(dafnyInput.Dtor_bytesUsed().UnwrapOr(nil)), + } + +} + +func GetCacheEntryOutput_FromDafny(dafnyOutput AwsCryptographyMaterialProvidersTypes.GetCacheEntryOutput) awscryptographymaterialproviderssmithygeneratedtypes.GetCacheEntryOutput { + + return awscryptographymaterialproviderssmithygeneratedtypes.GetCacheEntryOutput{Materials: Aws_cryptography_materialProviders_GetCacheEntryOutput_materials_FromDafny(dafnyOutput.Dtor_materials()), + CreationTime: Aws_cryptography_materialProviders_GetCacheEntryOutput_creationTime_FromDafny(dafnyOutput.Dtor_creationTime()), + ExpiryTime: Aws_cryptography_materialProviders_GetCacheEntryOutput_expiryTime_FromDafny(dafnyOutput.Dtor_expiryTime()), + MessagesUsed: Aws_cryptography_materialProviders_GetCacheEntryOutput_messagesUsed_FromDafny(dafnyOutput.Dtor_messagesUsed()), + BytesUsed: Aws_cryptography_materialProviders_GetCacheEntryOutput_bytesUsed_FromDafny(dafnyOutput.Dtor_bytesUsed()), + } + +} + +func PutCacheEntryInput_FromDafny(dafnyInput AwsCryptographyMaterialProvidersTypes.PutCacheEntryInput) awscryptographymaterialproviderssmithygeneratedtypes.PutCacheEntryInput { + + return awscryptographymaterialproviderssmithygeneratedtypes.PutCacheEntryInput{Identifier: Aws_cryptography_materialProviders_PutCacheEntryInput_identifier_FromDafny(dafnyInput.Dtor_identifier()), + Materials: Aws_cryptography_materialProviders_PutCacheEntryInput_materials_FromDafny(dafnyInput.Dtor_materials()), + CreationTime: Aws_cryptography_materialProviders_PutCacheEntryInput_creationTime_FromDafny(dafnyInput.Dtor_creationTime()), + ExpiryTime: Aws_cryptography_materialProviders_PutCacheEntryInput_expiryTime_FromDafny(dafnyInput.Dtor_expiryTime()), + MessagesUsed: Aws_cryptography_materialProviders_PutCacheEntryInput_messagesUsed_FromDafny(dafnyInput.Dtor_messagesUsed().UnwrapOr(nil)), + BytesUsed: Aws_cryptography_materialProviders_PutCacheEntryInput_bytesUsed_FromDafny(dafnyInput.Dtor_bytesUsed().UnwrapOr(nil)), + } + +} + +func UpdateUsageMetadataInput_FromDafny(dafnyInput AwsCryptographyMaterialProvidersTypes.UpdateUsageMetadataInput) awscryptographymaterialproviderssmithygeneratedtypes.UpdateUsageMetadataInput { + + return awscryptographymaterialproviderssmithygeneratedtypes.UpdateUsageMetadataInput{Identifier: Aws_cryptography_materialProviders_UpdateUsageMetadataInput_identifier_FromDafny(dafnyInput.Dtor_identifier()), + BytesUsed: Aws_cryptography_materialProviders_UpdateUsageMetadataInput_bytesUsed_FromDafny(dafnyInput.Dtor_bytesUsed()), + } + +} + +func CryptographicMaterialsCache_FromDafny(dafnyResource AwsCryptographyMaterialProvidersTypes.ICryptographicMaterialsCache) awscryptographymaterialproviderssmithygeneratedtypes.ICryptographicMaterialsCache { + val, ok := dafnyResource.(*CryptographicMaterialsCacheNativeWrapper) + if ok { + return val.Impl + } + + return &CryptographicMaterialsCache{dafnyResource} +} + +func DecryptMaterialsInput_FromDafny(dafnyInput AwsCryptographyMaterialProvidersTypes.DecryptMaterialsInput) awscryptographymaterialproviderssmithygeneratedtypes.DecryptMaterialsInput { + + return awscryptographymaterialproviderssmithygeneratedtypes.DecryptMaterialsInput{AlgorithmSuiteId: Aws_cryptography_materialProviders_DecryptMaterialsInput_algorithmSuiteId_FromDafny(dafnyInput.Dtor_algorithmSuiteId()), + CommitmentPolicy: Aws_cryptography_materialProviders_DecryptMaterialsInput_commitmentPolicy_FromDafny(dafnyInput.Dtor_commitmentPolicy()), + EncryptedDataKeys: Aws_cryptography_materialProviders_DecryptMaterialsInput_encryptedDataKeys_FromDafny(dafnyInput.Dtor_encryptedDataKeys()), + EncryptionContext: Aws_cryptography_materialProviders_DecryptMaterialsInput_encryptionContext_FromDafny(dafnyInput.Dtor_encryptionContext()), + ReproducedEncryptionContext: Aws_cryptography_materialProviders_DecryptMaterialsInput_reproducedEncryptionContext_FromDafny(dafnyInput.Dtor_reproducedEncryptionContext().UnwrapOr(nil)), + } + +} + +func DecryptMaterialsOutput_FromDafny(dafnyOutput AwsCryptographyMaterialProvidersTypes.DecryptMaterialsOutput) awscryptographymaterialproviderssmithygeneratedtypes.DecryptMaterialsOutput { + + return awscryptographymaterialproviderssmithygeneratedtypes.DecryptMaterialsOutput{DecryptionMaterials: Aws_cryptography_materialProviders_DecryptMaterialsOutput_decryptionMaterials_FromDafny(dafnyOutput.Dtor_decryptionMaterials())} + +} + +func GetEncryptionMaterialsInput_FromDafny(dafnyInput AwsCryptographyMaterialProvidersTypes.GetEncryptionMaterialsInput) awscryptographymaterialproviderssmithygeneratedtypes.GetEncryptionMaterialsInput { + + return awscryptographymaterialproviderssmithygeneratedtypes.GetEncryptionMaterialsInput{EncryptionContext: Aws_cryptography_materialProviders_GetEncryptionMaterialsInput_encryptionContext_FromDafny(dafnyInput.Dtor_encryptionContext()), + CommitmentPolicy: Aws_cryptography_materialProviders_GetEncryptionMaterialsInput_commitmentPolicy_FromDafny(dafnyInput.Dtor_commitmentPolicy()), + AlgorithmSuiteId: Aws_cryptography_materialProviders_GetEncryptionMaterialsInput_algorithmSuiteId_FromDafny(dafnyInput.Dtor_algorithmSuiteId().UnwrapOr(nil)), + MaxPlaintextLength: Aws_cryptography_materialProviders_GetEncryptionMaterialsInput_maxPlaintextLength_FromDafny(dafnyInput.Dtor_maxPlaintextLength().UnwrapOr(nil)), + RequiredEncryptionContextKeys: Aws_cryptography_materialProviders_GetEncryptionMaterialsInput_requiredEncryptionContextKeys_FromDafny(dafnyInput.Dtor_requiredEncryptionContextKeys().UnwrapOr(nil)), + } + +} + +func GetEncryptionMaterialsOutput_FromDafny(dafnyOutput AwsCryptographyMaterialProvidersTypes.GetEncryptionMaterialsOutput) awscryptographymaterialproviderssmithygeneratedtypes.GetEncryptionMaterialsOutput { + + return awscryptographymaterialproviderssmithygeneratedtypes.GetEncryptionMaterialsOutput{EncryptionMaterials: Aws_cryptography_materialProviders_GetEncryptionMaterialsOutput_encryptionMaterials_FromDafny(dafnyOutput.Dtor_encryptionMaterials())} + +} + +func CryptographicMaterialsManager_FromDafny(dafnyResource AwsCryptographyMaterialProvidersTypes.ICryptographicMaterialsManager) awscryptographymaterialproviderssmithygeneratedtypes.ICryptographicMaterialsManager { + val, ok := dafnyResource.(*CryptographicMaterialsManagerNativeWrapper) + if ok { + return val.Impl + } + + return &CryptographicMaterialsManager{dafnyResource} +} + +func OnDecryptInput_FromDafny(dafnyInput AwsCryptographyMaterialProvidersTypes.OnDecryptInput) awscryptographymaterialproviderssmithygeneratedtypes.OnDecryptInput { + + return awscryptographymaterialproviderssmithygeneratedtypes.OnDecryptInput{Materials: Aws_cryptography_materialProviders_OnDecryptInput_materials_FromDafny(dafnyInput.Dtor_materials()), + EncryptedDataKeys: Aws_cryptography_materialProviders_OnDecryptInput_encryptedDataKeys_FromDafny(dafnyInput.Dtor_encryptedDataKeys()), + } + +} + +func OnDecryptOutput_FromDafny(dafnyOutput AwsCryptographyMaterialProvidersTypes.OnDecryptOutput) awscryptographymaterialproviderssmithygeneratedtypes.OnDecryptOutput { + + return awscryptographymaterialproviderssmithygeneratedtypes.OnDecryptOutput{Materials: Aws_cryptography_materialProviders_OnDecryptOutput_materials_FromDafny(dafnyOutput.Dtor_materials())} + +} + +func OnEncryptInput_FromDafny(dafnyInput AwsCryptographyMaterialProvidersTypes.OnEncryptInput) awscryptographymaterialproviderssmithygeneratedtypes.OnEncryptInput { + + return awscryptographymaterialproviderssmithygeneratedtypes.OnEncryptInput{Materials: Aws_cryptography_materialProviders_OnEncryptInput_materials_FromDafny(dafnyInput.Dtor_materials())} + +} + +func OnEncryptOutput_FromDafny(dafnyOutput AwsCryptographyMaterialProvidersTypes.OnEncryptOutput) awscryptographymaterialproviderssmithygeneratedtypes.OnEncryptOutput { + + return awscryptographymaterialproviderssmithygeneratedtypes.OnEncryptOutput{Materials: Aws_cryptography_materialProviders_OnEncryptOutput_materials_FromDafny(dafnyOutput.Dtor_materials())} + +} + +func Keyring_FromDafny(dafnyResource AwsCryptographyMaterialProvidersTypes.IKeyring) awscryptographymaterialproviderssmithygeneratedtypes.IKeyring { + val, ok := dafnyResource.(*KeyringNativeWrapper) + if ok { + return val.Impl + } + + return &Keyring{dafnyResource} +} + +func AwsCryptographicMaterialProvidersException_FromDafny(dafnyOutput AwsCryptographyMaterialProvidersTypes.Error) awscryptographymaterialproviderssmithygeneratedtypes.AwsCryptographicMaterialProvidersException { + return awscryptographymaterialproviderssmithygeneratedtypes.AwsCryptographicMaterialProvidersException{Message: Aws_cryptography_materialProviders_AwsCryptographicMaterialProvidersException_message_FromDafny(dafnyOutput.Dtor_message())} + +} + +func EntryAlreadyExists_FromDafny(dafnyOutput AwsCryptographyMaterialProvidersTypes.Error) awscryptographymaterialproviderssmithygeneratedtypes.EntryAlreadyExists { + return awscryptographymaterialproviderssmithygeneratedtypes.EntryAlreadyExists{Message: Aws_cryptography_materialProviders_EntryAlreadyExists_message_FromDafny(dafnyOutput.Dtor_message())} + +} + +func EntryDoesNotExist_FromDafny(dafnyOutput AwsCryptographyMaterialProvidersTypes.Error) awscryptographymaterialproviderssmithygeneratedtypes.EntryDoesNotExist { + return awscryptographymaterialproviderssmithygeneratedtypes.EntryDoesNotExist{Message: Aws_cryptography_materialProviders_EntryDoesNotExist_message_FromDafny(dafnyOutput.Dtor_message())} + +} + +func InFlightTTLExceeded_FromDafny(dafnyOutput AwsCryptographyMaterialProvidersTypes.Error) awscryptographymaterialproviderssmithygeneratedtypes.InFlightTTLExceeded { + return awscryptographymaterialproviderssmithygeneratedtypes.InFlightTTLExceeded{Message: Aws_cryptography_materialProviders_InFlightTTLExceeded_message_FromDafny(dafnyOutput.Dtor_message())} + +} + +func InvalidAlgorithmSuiteInfo_FromDafny(dafnyOutput AwsCryptographyMaterialProvidersTypes.Error) awscryptographymaterialproviderssmithygeneratedtypes.InvalidAlgorithmSuiteInfo { + return awscryptographymaterialproviderssmithygeneratedtypes.InvalidAlgorithmSuiteInfo{Message: Aws_cryptography_materialProviders_InvalidAlgorithmSuiteInfo_message_FromDafny(dafnyOutput.Dtor_message())} + +} + +func InvalidAlgorithmSuiteInfoOnDecrypt_FromDafny(dafnyOutput AwsCryptographyMaterialProvidersTypes.Error) awscryptographymaterialproviderssmithygeneratedtypes.InvalidAlgorithmSuiteInfoOnDecrypt { + return awscryptographymaterialproviderssmithygeneratedtypes.InvalidAlgorithmSuiteInfoOnDecrypt{Message: Aws_cryptography_materialProviders_InvalidAlgorithmSuiteInfoOnDecrypt_message_FromDafny(dafnyOutput.Dtor_message())} + +} + +func InvalidAlgorithmSuiteInfoOnEncrypt_FromDafny(dafnyOutput AwsCryptographyMaterialProvidersTypes.Error) awscryptographymaterialproviderssmithygeneratedtypes.InvalidAlgorithmSuiteInfoOnEncrypt { + return awscryptographymaterialproviderssmithygeneratedtypes.InvalidAlgorithmSuiteInfoOnEncrypt{Message: Aws_cryptography_materialProviders_InvalidAlgorithmSuiteInfoOnEncrypt_message_FromDafny(dafnyOutput.Dtor_message())} + +} + +func InvalidDecryptionMaterials_FromDafny(dafnyOutput AwsCryptographyMaterialProvidersTypes.Error) awscryptographymaterialproviderssmithygeneratedtypes.InvalidDecryptionMaterials { + return awscryptographymaterialproviderssmithygeneratedtypes.InvalidDecryptionMaterials{Message: Aws_cryptography_materialProviders_InvalidDecryptionMaterials_message_FromDafny(dafnyOutput.Dtor_message())} + +} + +func InvalidDecryptionMaterialsTransition_FromDafny(dafnyOutput AwsCryptographyMaterialProvidersTypes.Error) awscryptographymaterialproviderssmithygeneratedtypes.InvalidDecryptionMaterialsTransition { + return awscryptographymaterialproviderssmithygeneratedtypes.InvalidDecryptionMaterialsTransition{Message: Aws_cryptography_materialProviders_InvalidDecryptionMaterialsTransition_message_FromDafny(dafnyOutput.Dtor_message())} + +} + +func InvalidEncryptionMaterials_FromDafny(dafnyOutput AwsCryptographyMaterialProvidersTypes.Error) awscryptographymaterialproviderssmithygeneratedtypes.InvalidEncryptionMaterials { + return awscryptographymaterialproviderssmithygeneratedtypes.InvalidEncryptionMaterials{Message: Aws_cryptography_materialProviders_InvalidEncryptionMaterials_message_FromDafny(dafnyOutput.Dtor_message())} + +} + +func InvalidEncryptionMaterialsTransition_FromDafny(dafnyOutput AwsCryptographyMaterialProvidersTypes.Error) awscryptographymaterialproviderssmithygeneratedtypes.InvalidEncryptionMaterialsTransition { + return awscryptographymaterialproviderssmithygeneratedtypes.InvalidEncryptionMaterialsTransition{Message: Aws_cryptography_materialProviders_InvalidEncryptionMaterialsTransition_message_FromDafny(dafnyOutput.Dtor_message())} + +} + +func CollectionOfErrors_Output_FromDafny(dafnyOutput AwsCryptographyMaterialProvidersTypes.Error) awscryptographymaterialproviderssmithygeneratedtypes.CollectionOfErrors { + listOfErrors := dafnyOutput.Dtor_list() + message := dafnyOutput.Dtor_message() + t := awscryptographymaterialproviderssmithygeneratedtypes.CollectionOfErrors{} + for i := dafny.Iterate(listOfErrors); ; { + val, ok := i() + if !ok { + break + } + err := val.(AwsCryptographyMaterialProvidersTypes.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 AwsCryptographyMaterialProvidersTypes.Error) awscryptographymaterialproviderssmithygeneratedtypes.OpaqueError { + return awscryptographymaterialproviderssmithygeneratedtypes.OpaqueError{ + ErrObject: dafnyOutput.Dtor_obj(), + } +} + +func Error_FromDafny(err AwsCryptographyMaterialProvidersTypes.Error) error { + // Service Errors + if err.Is_AwsCryptographicMaterialProvidersException() { + return AwsCryptographicMaterialProvidersException_FromDafny(err) + } + + if err.Is_EntryAlreadyExists() { + return EntryAlreadyExists_FromDafny(err) + } + + if err.Is_EntryDoesNotExist() { + return EntryDoesNotExist_FromDafny(err) + } + + if err.Is_InFlightTTLExceeded() { + return InFlightTTLExceeded_FromDafny(err) + } + + if err.Is_InvalidAlgorithmSuiteInfo() { + return InvalidAlgorithmSuiteInfo_FromDafny(err) + } + + if err.Is_InvalidAlgorithmSuiteInfoOnDecrypt() { + return InvalidAlgorithmSuiteInfoOnDecrypt_FromDafny(err) + } + + if err.Is_InvalidAlgorithmSuiteInfoOnEncrypt() { + return InvalidAlgorithmSuiteInfoOnEncrypt_FromDafny(err) + } + + if err.Is_InvalidDecryptionMaterials() { + return InvalidDecryptionMaterials_FromDafny(err) + } + + if err.Is_InvalidDecryptionMaterialsTransition() { + return InvalidDecryptionMaterialsTransition_FromDafny(err) + } + + if err.Is_InvalidEncryptionMaterials() { + return InvalidEncryptionMaterials_FromDafny(err) + } + + if err.Is_InvalidEncryptionMaterialsTransition() { + return InvalidEncryptionMaterialsTransition_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_ComAmazonawsKms() { + return comamazonawskmssmithygenerated.Error_FromDafny(err.Dtor_ComAmazonawsKms()) + } + + 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 MaterialProvidersConfig_FromDafny(dafnyOutput AwsCryptographyMaterialProvidersTypes.MaterialProvidersConfig) awscryptographymaterialproviderssmithygeneratedtypes.MaterialProvidersConfig { + return awscryptographymaterialproviderssmithygeneratedtypes.MaterialProvidersConfig{} + +} + +func Materials_FromDafny(input interface{}) awscryptographymaterialproviderssmithygeneratedtypes.Materials { + var union awscryptographymaterialproviderssmithygeneratedtypes.Materials + + if (input.(AwsCryptographyMaterialProvidersTypes.Materials)).Is_Encryption() { + + union = &awscryptographymaterialproviderssmithygeneratedtypes.MaterialsMemberEncryption{ + Value: (Aws_cryptography_materialProviders_Materials_Encryption_FromDafny((input.(AwsCryptographyMaterialProvidersTypes.Materials)).Dtor_Encryption())), + } + } + if (input.(AwsCryptographyMaterialProvidersTypes.Materials)).Is_Decryption() { + + union = &awscryptographymaterialproviderssmithygeneratedtypes.MaterialsMemberDecryption{ + Value: (Aws_cryptography_materialProviders_Materials_Decryption_FromDafny((input.(AwsCryptographyMaterialProvidersTypes.Materials)).Dtor_Decryption())), + } + } + if (input.(AwsCryptographyMaterialProvidersTypes.Materials)).Is_BranchKey() { + + union = &awscryptographymaterialproviderssmithygeneratedtypes.MaterialsMemberBranchKey{ + Value: (Aws_cryptography_materialProviders_Materials_BranchKey_FromDafny((input.(AwsCryptographyMaterialProvidersTypes.Materials)).Dtor_BranchKey())), + } + } + if (input.(AwsCryptographyMaterialProvidersTypes.Materials)).Is_BeaconKey() { + + union = &awscryptographymaterialproviderssmithygeneratedtypes.MaterialsMemberBeaconKey{ + Value: (Aws_cryptography_materialProviders_Materials_BeaconKey_FromDafny((input.(AwsCryptographyMaterialProvidersTypes.Materials)).Dtor_BeaconKey())), + } + } + + return union + +} + +func StaticConfigurations_FromDafny(input interface{}) awscryptographymaterialproviderssmithygeneratedtypes.StaticConfigurations { + var union awscryptographymaterialproviderssmithygeneratedtypes.StaticConfigurations + + if (input.(AwsCryptographyMaterialProvidersTypes.StaticConfigurations)).Is_AWS__KMS__ECDH() { + var dataSource = Wrappers.Companion_Option_.Create_Some_((input.(AwsCryptographyMaterialProvidersTypes.StaticConfigurations)).Dtor_AWS__KMS__ECDH()) + union = &awscryptographymaterialproviderssmithygeneratedtypes.StaticConfigurationsMemberAWS_KMS_ECDH{ + Value: (Aws_cryptography_materialProviders_StaticConfigurations_AWS_KMS_ECDH_FromDafny(dataSource.UnwrapOr(nil))), + } + } + if (input.(AwsCryptographyMaterialProvidersTypes.StaticConfigurations)).Is_RAW__ECDH() { + var dataSource = Wrappers.Companion_Option_.Create_Some_((input.(AwsCryptographyMaterialProvidersTypes.StaticConfigurations)).Dtor_RAW__ECDH()) + union = &awscryptographymaterialproviderssmithygeneratedtypes.StaticConfigurationsMemberRAW_ECDH{ + Value: (Aws_cryptography_materialProviders_StaticConfigurations_RAW_ECDH_FromDafny(dataSource.UnwrapOr(nil))), + } + } + + return union + +} + +func KeyAgreementScheme_FromDafny(input interface{}) awscryptographymaterialproviderssmithygeneratedtypes.KeyAgreementScheme { + var union awscryptographymaterialproviderssmithygeneratedtypes.KeyAgreementScheme + + if (input.(AwsCryptographyMaterialProvidersTypes.KeyAgreementScheme)).Is_StaticConfiguration() { + var dataSource = Wrappers.Companion_Option_.Create_Some_((input.(AwsCryptographyMaterialProvidersTypes.KeyAgreementScheme)).Dtor_StaticConfiguration()) + union = &awscryptographymaterialproviderssmithygeneratedtypes.KeyAgreementSchemeMemberStaticConfiguration{ + Value: (Aws_cryptography_materialProviders_KeyAgreementScheme_StaticConfiguration_FromDafny(dataSource.UnwrapOr(nil))), + } + } + + return union + +} + +func Aws_cryptography_materialProviders_CreateAwsKmsDiscoveryKeyringInput_kmsClient_FromDafny(input interface{}) *kms.Client { + shim, ok := input.(*KMSwrapped.Shim) + if !ok { + panic("Not able to convert client to native") + } + return shim.Client + +} +func Aws_cryptography_materialProviders_CreateAwsKmsDiscoveryKeyringInput_discoveryFilter_FromDafny(input interface{}) *awscryptographymaterialproviderssmithygeneratedtypes.DiscoveryFilter { + if input == nil { + return nil + } + return &awscryptographymaterialproviderssmithygeneratedtypes.DiscoveryFilter{AccountIds: Aws_cryptography_materialProviders_DiscoveryFilter_accountIds_FromDafny(input.(AwsCryptographyMaterialProvidersTypes.DiscoveryFilter).Dtor_accountIds()), + Partition: Aws_cryptography_materialProviders_DiscoveryFilter_partition_FromDafny(input.(AwsCryptographyMaterialProvidersTypes.DiscoveryFilter).Dtor_partition()), + } +} +func Aws_cryptography_materialProviders_DiscoveryFilter_accountIds_FromDafny(input interface{}) []string { + fieldValue := make([]string, 0) + for i := dafny.Iterate(input.(dafny.Sequence)); ; { + val, ok := i() + if !ok { + break + } + fieldValue = append(fieldValue, Aws_cryptography_materialProviders_AccountIdList_member_FromDafny(val)) + } + return fieldValue +} +func Aws_cryptography_materialProviders_AccountIdList_member_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_materialProviders_DiscoveryFilter_partition_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_materialProviders_CreateAwsKmsDiscoveryKeyringInput_grantTokens_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, Aws_cryptography_materialProviders_GrantTokenList_member_FromDafny(val)) + } + return fieldValue +} +func Aws_cryptography_materialProviders_GrantTokenList_member_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_materialProviders_CreateAwsKmsDiscoveryMultiKeyringInput_regions_FromDafny(input interface{}) []string { + fieldValue := make([]string, 0) + for i := dafny.Iterate(input.(dafny.Sequence)); ; { + val, ok := i() + if !ok { + break + } + fieldValue = append(fieldValue, Aws_cryptography_materialProviders_RegionList_member_FromDafny(val)) + } + return fieldValue +} +func Aws_cryptography_materialProviders_RegionList_member_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_materialProviders_CreateAwsKmsDiscoveryMultiKeyringInput_discoveryFilter_FromDafny(input interface{}) *awscryptographymaterialproviderssmithygeneratedtypes.DiscoveryFilter { + if input == nil { + return nil + } + return &awscryptographymaterialproviderssmithygeneratedtypes.DiscoveryFilter{AccountIds: Aws_cryptography_materialProviders_DiscoveryFilter_accountIds_FromDafny(input.(AwsCryptographyMaterialProvidersTypes.DiscoveryFilter).Dtor_accountIds()), + Partition: Aws_cryptography_materialProviders_DiscoveryFilter_partition_FromDafny(input.(AwsCryptographyMaterialProvidersTypes.DiscoveryFilter).Dtor_partition()), + } +} +func Aws_cryptography_materialProviders_CreateAwsKmsDiscoveryMultiKeyringInput_grantTokens_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, Aws_cryptography_materialProviders_GrantTokenList_member_FromDafny(val)) + } + return fieldValue +} +func Aws_cryptography_materialProviders_CreateAwsKmsEcdhKeyringInput_KeyAgreementScheme_FromDafny(input interface{}) awscryptographymaterialproviderssmithygeneratedtypes.KmsEcdhStaticConfigurations { + var union awscryptographymaterialproviderssmithygeneratedtypes.KmsEcdhStaticConfigurations + + if (input.(AwsCryptographyMaterialProvidersTypes.KmsEcdhStaticConfigurations)).Is_KmsPublicKeyDiscovery() { + + union = &awscryptographymaterialproviderssmithygeneratedtypes.KmsEcdhStaticConfigurationsMemberKmsPublicKeyDiscovery{ + Value: (Aws_cryptography_materialProviders_KmsEcdhStaticConfigurations_KmsPublicKeyDiscovery_FromDafny((input.(AwsCryptographyMaterialProvidersTypes.KmsEcdhStaticConfigurations)).Dtor_KmsPublicKeyDiscovery())), + } + } + if (input.(AwsCryptographyMaterialProvidersTypes.KmsEcdhStaticConfigurations)).Is_KmsPrivateKeyToStaticPublicKey() { + + union = &awscryptographymaterialproviderssmithygeneratedtypes.KmsEcdhStaticConfigurationsMemberKmsPrivateKeyToStaticPublicKey{ + Value: (Aws_cryptography_materialProviders_KmsEcdhStaticConfigurations_KmsPrivateKeyToStaticPublicKey_FromDafny((input.(AwsCryptographyMaterialProvidersTypes.KmsEcdhStaticConfigurations)).Dtor_KmsPrivateKeyToStaticPublicKey())), + } + } + + return union + +} +func Aws_cryptography_materialProviders_KmsEcdhStaticConfigurations_KmsPublicKeyDiscovery_FromDafny(input interface{}) awscryptographymaterialproviderssmithygeneratedtypes.KmsPublicKeyDiscoveryInput { + return awscryptographymaterialproviderssmithygeneratedtypes.KmsPublicKeyDiscoveryInput{RecipientKmsIdentifier: Aws_cryptography_materialProviders_KmsPublicKeyDiscoveryInput_recipientKmsIdentifier_FromDafny(input.(AwsCryptographyMaterialProvidersTypes.KmsPublicKeyDiscoveryInput).Dtor_recipientKmsIdentifier())} +} +func Aws_cryptography_materialProviders_KmsPublicKeyDiscoveryInput_recipientKmsIdentifier_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_materialProviders_KmsEcdhStaticConfigurations_KmsPrivateKeyToStaticPublicKey_FromDafny(input interface{}) awscryptographymaterialproviderssmithygeneratedtypes.KmsPrivateKeyToStaticPublicKeyInput { + return awscryptographymaterialproviderssmithygeneratedtypes.KmsPrivateKeyToStaticPublicKeyInput{SenderKmsIdentifier: Aws_cryptography_materialProviders_KmsPrivateKeyToStaticPublicKeyInput_senderKmsIdentifier_FromDafny(input.(AwsCryptographyMaterialProvidersTypes.KmsPrivateKeyToStaticPublicKeyInput).Dtor_senderKmsIdentifier()), + SenderPublicKey: Aws_cryptography_materialProviders_KmsPrivateKeyToStaticPublicKeyInput_senderPublicKey_FromDafny(input.(AwsCryptographyMaterialProvidersTypes.KmsPrivateKeyToStaticPublicKeyInput).Dtor_senderPublicKey().UnwrapOr(nil)), + RecipientPublicKey: Aws_cryptography_materialProviders_KmsPrivateKeyToStaticPublicKeyInput_recipientPublicKey_FromDafny(input.(AwsCryptographyMaterialProvidersTypes.KmsPrivateKeyToStaticPublicKeyInput).Dtor_recipientPublicKey()), + } +} +func Aws_cryptography_materialProviders_KmsPrivateKeyToStaticPublicKeyInput_senderKmsIdentifier_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_materialProviders_KmsPrivateKeyToStaticPublicKeyInput_senderPublicKey_FromDafny(input interface{}) []byte { + return func() []byte { + b := []byte{} + if input == nil { + return nil + } + for i := dafny.Iterate(input); ; { + val, ok := i() + if !ok { + return b + } else { + b = append(b, val.(byte)) + } + } + }() +} +func Aws_cryptography_materialProviders_KmsPrivateKeyToStaticPublicKeyInput_recipientPublicKey_FromDafny(input interface{}) []byte { + return func() []byte { + b := []byte{} + if input == nil { + return nil + } + for i := dafny.Iterate(input); ; { + val, ok := i() + if !ok { + return b + } else { + b = append(b, val.(byte)) + } + } + }() +} +func Aws_cryptography_materialProviders_CreateAwsKmsEcdhKeyringInput_curveSpec_FromDafny(input interface{}) awscryptographyprimitivessmithygeneratedtypes.ECDHCurveSpec { + return func() awscryptographyprimitivessmithygeneratedtypes.ECDHCurveSpec { + var u awscryptographyprimitivessmithygeneratedtypes.ECDHCurveSpec + inputEnum := input.(AwsCryptographyPrimitivesTypes.ECDHCurveSpec) + index := -1 + for allEnums := dafny.Iterate(AwsCryptographyPrimitivesTypes.CompanionStruct_ECDHCurveSpec_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(AwsCryptographyPrimitivesTypes.ECDHCurveSpec).Equals(inputEnum) { + break + } + } + } + + return u.Values()[index] + }() +} +func Aws_cryptography_materialProviders_CreateAwsKmsEcdhKeyringInput_kmsClient_FromDafny(input interface{}) *kms.Client { + shim, ok := input.(*KMSwrapped.Shim) + if !ok { + panic("Not able to convert client to native") + } + return shim.Client + +} +func Aws_cryptography_materialProviders_CreateAwsKmsEcdhKeyringInput_grantTokens_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, Aws_cryptography_materialProviders_GrantTokenList_member_FromDafny(val)) + } + return fieldValue +} +func Aws_cryptography_materialProviders_CreateAwsKmsHierarchicalKeyringInput_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_materialProviders_CreateAwsKmsHierarchicalKeyringInput_keyStore_FromDafny(input interface{}) *awscryptographykeystoresmithygenerated.Client { + value, ok := input.(AwsCryptographyKeyStoreTypes.IKeyStoreClient) + if !ok { + panic("invalid type found.") + } + return &awscryptographykeystoresmithygenerated.Client{value} + +} +func Aws_cryptography_materialProviders_CreateAwsKmsHierarchicalKeyringInput_ttlSeconds_FromDafny(input interface{}) int64 { + return func() int64 { + var b = input.(int64) + return b + }() + +} +func Aws_cryptography_materialProviders_CreateAwsKmsHierarchicalKeyringInput_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: (Aws_cryptography_materialProviders_CacheType_Default_FromDafny((input.(AwsCryptographyMaterialProvidersTypes.CacheType)).Dtor_Default())), + } + } + if (input.(AwsCryptographyMaterialProvidersTypes.CacheType)).Is_No() { + + union = &awscryptographymaterialproviderssmithygeneratedtypes.CacheTypeMemberNo{ + Value: (Aws_cryptography_materialProviders_CacheType_No_FromDafny((input.(AwsCryptographyMaterialProvidersTypes.CacheType)).Dtor_No())), + } + } + if (input.(AwsCryptographyMaterialProvidersTypes.CacheType)).Is_SingleThreaded() { + + union = &awscryptographymaterialproviderssmithygeneratedtypes.CacheTypeMemberSingleThreaded{ + Value: (Aws_cryptography_materialProviders_CacheType_SingleThreaded_FromDafny((input.(AwsCryptographyMaterialProvidersTypes.CacheType)).Dtor_SingleThreaded())), + } + } + if (input.(AwsCryptographyMaterialProvidersTypes.CacheType)).Is_MultiThreaded() { + + union = &awscryptographymaterialproviderssmithygeneratedtypes.CacheTypeMemberMultiThreaded{ + Value: (Aws_cryptography_materialProviders_CacheType_MultiThreaded_FromDafny((input.(AwsCryptographyMaterialProvidersTypes.CacheType)).Dtor_MultiThreaded())), + } + } + if (input.(AwsCryptographyMaterialProvidersTypes.CacheType)).Is_StormTracking() { + + union = &awscryptographymaterialproviderssmithygeneratedtypes.CacheTypeMemberStormTracking{ + Value: (Aws_cryptography_materialProviders_CacheType_StormTracking_FromDafny((input.(AwsCryptographyMaterialProvidersTypes.CacheType)).Dtor_StormTracking())), + } + } + if (input.(AwsCryptographyMaterialProvidersTypes.CacheType)).Is_Shared() { + + union = &awscryptographymaterialproviderssmithygeneratedtypes.CacheTypeMemberShared{ + Value: (CryptographicMaterialsCache_FromDafny((input.(AwsCryptographyMaterialProvidersTypes.CacheType)).Dtor_Shared().(AwsCryptographyMaterialProvidersTypes.ICryptographicMaterialsCache))), + } + } + + return union + +} +func Aws_cryptography_materialProviders_CacheType_Default_FromDafny(input interface{}) awscryptographymaterialproviderssmithygeneratedtypes.DefaultCache { + return awscryptographymaterialproviderssmithygeneratedtypes.DefaultCache{EntryCapacity: Aws_cryptography_materialProviders_DefaultCache_entryCapacity_FromDafny(input.(AwsCryptographyMaterialProvidersTypes.DefaultCache).Dtor_entryCapacity())} +} +func Aws_cryptography_materialProviders_DefaultCache_entryCapacity_FromDafny(input interface{}) int32 { + return func() int32 { + var b = input.(int32) + return b + }() +} +func Aws_cryptography_materialProviders_CacheType_No_FromDafny(input interface{}) awscryptographymaterialproviderssmithygeneratedtypes.NoCache { + return awscryptographymaterialproviderssmithygeneratedtypes.NoCache{} +} +func Aws_cryptography_materialProviders_CacheType_SingleThreaded_FromDafny(input interface{}) awscryptographymaterialproviderssmithygeneratedtypes.SingleThreadedCache { + return awscryptographymaterialproviderssmithygeneratedtypes.SingleThreadedCache{EntryCapacity: Aws_cryptography_materialProviders_SingleThreadedCache_entryCapacity_FromDafny(input.(AwsCryptographyMaterialProvidersTypes.SingleThreadedCache).Dtor_entryCapacity()), + EntryPruningTailSize: Aws_cryptography_materialProviders_SingleThreadedCache_entryPruningTailSize_FromDafny(input.(AwsCryptographyMaterialProvidersTypes.SingleThreadedCache).Dtor_entryPruningTailSize().UnwrapOr(nil)), + } +} +func Aws_cryptography_materialProviders_SingleThreadedCache_entryCapacity_FromDafny(input interface{}) int32 { + return func() int32 { + var b = input.(int32) + return b + }() +} +func Aws_cryptography_materialProviders_SingleThreadedCache_entryPruningTailSize_FromDafny(input interface{}) *int32 { + return func() *int32 { + var b int32 + if input == nil { + return nil + } + b = input.(int32) + return &b + }() +} +func Aws_cryptography_materialProviders_CacheType_MultiThreaded_FromDafny(input interface{}) awscryptographymaterialproviderssmithygeneratedtypes.MultiThreadedCache { + return awscryptographymaterialproviderssmithygeneratedtypes.MultiThreadedCache{EntryCapacity: Aws_cryptography_materialProviders_MultiThreadedCache_entryCapacity_FromDafny(input.(AwsCryptographyMaterialProvidersTypes.MultiThreadedCache).Dtor_entryCapacity()), + EntryPruningTailSize: Aws_cryptography_materialProviders_MultiThreadedCache_entryPruningTailSize_FromDafny(input.(AwsCryptographyMaterialProvidersTypes.MultiThreadedCache).Dtor_entryPruningTailSize().UnwrapOr(nil)), + } +} +func Aws_cryptography_materialProviders_MultiThreadedCache_entryCapacity_FromDafny(input interface{}) int32 { + return func() int32 { + var b = input.(int32) + return b + }() +} +func Aws_cryptography_materialProviders_MultiThreadedCache_entryPruningTailSize_FromDafny(input interface{}) *int32 { + return func() *int32 { + var b int32 + if input == nil { + return nil + } + b = input.(int32) + return &b + }() +} +func Aws_cryptography_materialProviders_CacheType_StormTracking_FromDafny(input interface{}) awscryptographymaterialproviderssmithygeneratedtypes.StormTrackingCache { + return awscryptographymaterialproviderssmithygeneratedtypes.StormTrackingCache{EntryCapacity: Aws_cryptography_materialProviders_StormTrackingCache_entryCapacity_FromDafny(input.(AwsCryptographyMaterialProvidersTypes.StormTrackingCache).Dtor_entryCapacity()), + EntryPruningTailSize: Aws_cryptography_materialProviders_StormTrackingCache_entryPruningTailSize_FromDafny(input.(AwsCryptographyMaterialProvidersTypes.StormTrackingCache).Dtor_entryPruningTailSize().UnwrapOr(nil)), + GracePeriod: Aws_cryptography_materialProviders_StormTrackingCache_gracePeriod_FromDafny(input.(AwsCryptographyMaterialProvidersTypes.StormTrackingCache).Dtor_gracePeriod()), + GraceInterval: Aws_cryptography_materialProviders_StormTrackingCache_graceInterval_FromDafny(input.(AwsCryptographyMaterialProvidersTypes.StormTrackingCache).Dtor_graceInterval()), + FanOut: Aws_cryptography_materialProviders_StormTrackingCache_fanOut_FromDafny(input.(AwsCryptographyMaterialProvidersTypes.StormTrackingCache).Dtor_fanOut()), + InFlightTTL: Aws_cryptography_materialProviders_StormTrackingCache_inFlightTTL_FromDafny(input.(AwsCryptographyMaterialProvidersTypes.StormTrackingCache).Dtor_inFlightTTL()), + SleepMilli: Aws_cryptography_materialProviders_StormTrackingCache_sleepMilli_FromDafny(input.(AwsCryptographyMaterialProvidersTypes.StormTrackingCache).Dtor_sleepMilli()), + TimeUnits: Aws_cryptography_materialProviders_StormTrackingCache_timeUnits_FromDafny(input.(AwsCryptographyMaterialProvidersTypes.StormTrackingCache).Dtor_timeUnits().UnwrapOr(nil)), + } +} +func Aws_cryptography_materialProviders_StormTrackingCache_entryCapacity_FromDafny(input interface{}) int32 { + return func() int32 { + var b = input.(int32) + return b + }() +} +func Aws_cryptography_materialProviders_StormTrackingCache_entryPruningTailSize_FromDafny(input interface{}) *int32 { + return func() *int32 { + var b int32 + if input == nil { + return nil + } + b = input.(int32) + return &b + }() +} +func Aws_cryptography_materialProviders_StormTrackingCache_gracePeriod_FromDafny(input interface{}) int32 { + return func() int32 { + var b = input.(int32) + return b + }() +} +func Aws_cryptography_materialProviders_StormTrackingCache_graceInterval_FromDafny(input interface{}) int32 { + return func() int32 { + var b = input.(int32) + return b + }() +} +func Aws_cryptography_materialProviders_StormTrackingCache_fanOut_FromDafny(input interface{}) int32 { + return func() int32 { + var b = input.(int32) + return b + }() +} +func Aws_cryptography_materialProviders_StormTrackingCache_inFlightTTL_FromDafny(input interface{}) int32 { + return func() int32 { + var b = input.(int32) + return b + }() +} +func Aws_cryptography_materialProviders_StormTrackingCache_sleepMilli_FromDafny(input interface{}) int32 { + return func() int32 { + var b = input.(int32) + return b + }() +} +func Aws_cryptography_materialProviders_StormTrackingCache_timeUnits_FromDafny(input interface{}) *awscryptographymaterialproviderssmithygeneratedtypes.TimeUnits { + return func() *awscryptographymaterialproviderssmithygeneratedtypes.TimeUnits { + var u awscryptographymaterialproviderssmithygeneratedtypes.TimeUnits + if input == nil { + return nil + } + inputEnum := input.(AwsCryptographyMaterialProvidersTypes.TimeUnits) + index := -1 + for allEnums := dafny.Iterate(AwsCryptographyMaterialProvidersTypes.CompanionStruct_TimeUnits_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(AwsCryptographyMaterialProvidersTypes.TimeUnits).Equals(inputEnum) { + break + } + } + } + + return &u.Values()[index] + }() +} +func Aws_cryptography_materialProviders_CreateAwsKmsHierarchicalKeyringInput_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_materialProviders_CreateAwsKmsKeyringInput_kmsKeyId_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_materialProviders_CreateAwsKmsKeyringInput_kmsClient_FromDafny(input interface{}) *kms.Client { + shim, ok := input.(*KMSwrapped.Shim) + if !ok { + panic("Not able to convert client to native") + } + return shim.Client + +} +func Aws_cryptography_materialProviders_CreateAwsKmsKeyringInput_grantTokens_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, Aws_cryptography_materialProviders_GrantTokenList_member_FromDafny(val)) + } + return fieldValue +} +func Aws_cryptography_materialProviders_CreateAwsKmsMrkDiscoveryKeyringInput_kmsClient_FromDafny(input interface{}) *kms.Client { + shim, ok := input.(*KMSwrapped.Shim) + if !ok { + panic("Not able to convert client to native") + } + return shim.Client + +} +func Aws_cryptography_materialProviders_CreateAwsKmsMrkDiscoveryKeyringInput_discoveryFilter_FromDafny(input interface{}) *awscryptographymaterialproviderssmithygeneratedtypes.DiscoveryFilter { + if input == nil { + return nil + } + return &awscryptographymaterialproviderssmithygeneratedtypes.DiscoveryFilter{AccountIds: Aws_cryptography_materialProviders_DiscoveryFilter_accountIds_FromDafny(input.(AwsCryptographyMaterialProvidersTypes.DiscoveryFilter).Dtor_accountIds()), + Partition: Aws_cryptography_materialProviders_DiscoveryFilter_partition_FromDafny(input.(AwsCryptographyMaterialProvidersTypes.DiscoveryFilter).Dtor_partition()), + } +} +func Aws_cryptography_materialProviders_CreateAwsKmsMrkDiscoveryKeyringInput_grantTokens_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, Aws_cryptography_materialProviders_GrantTokenList_member_FromDafny(val)) + } + return fieldValue +} +func Aws_cryptography_materialProviders_CreateAwsKmsMrkDiscoveryKeyringInput_region_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_materialProviders_CreateAwsKmsMrkDiscoveryMultiKeyringInput_regions_FromDafny(input interface{}) []string { + fieldValue := make([]string, 0) + for i := dafny.Iterate(input.(dafny.Sequence)); ; { + val, ok := i() + if !ok { + break + } + fieldValue = append(fieldValue, Aws_cryptography_materialProviders_RegionList_member_FromDafny(val)) + } + return fieldValue +} +func Aws_cryptography_materialProviders_CreateAwsKmsMrkDiscoveryMultiKeyringInput_discoveryFilter_FromDafny(input interface{}) *awscryptographymaterialproviderssmithygeneratedtypes.DiscoveryFilter { + if input == nil { + return nil + } + return &awscryptographymaterialproviderssmithygeneratedtypes.DiscoveryFilter{AccountIds: Aws_cryptography_materialProviders_DiscoveryFilter_accountIds_FromDafny(input.(AwsCryptographyMaterialProvidersTypes.DiscoveryFilter).Dtor_accountIds()), + Partition: Aws_cryptography_materialProviders_DiscoveryFilter_partition_FromDafny(input.(AwsCryptographyMaterialProvidersTypes.DiscoveryFilter).Dtor_partition()), + } +} +func Aws_cryptography_materialProviders_CreateAwsKmsMrkDiscoveryMultiKeyringInput_grantTokens_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, Aws_cryptography_materialProviders_GrantTokenList_member_FromDafny(val)) + } + return fieldValue +} +func Aws_cryptography_materialProviders_CreateAwsKmsMrkKeyringInput_kmsKeyId_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_materialProviders_CreateAwsKmsMrkKeyringInput_kmsClient_FromDafny(input interface{}) *kms.Client { + shim, ok := input.(*KMSwrapped.Shim) + if !ok { + panic("Not able to convert client to native") + } + return shim.Client + +} +func Aws_cryptography_materialProviders_CreateAwsKmsMrkKeyringInput_grantTokens_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, Aws_cryptography_materialProviders_GrantTokenList_member_FromDafny(val)) + } + return fieldValue +} +func Aws_cryptography_materialProviders_CreateAwsKmsMrkMultiKeyringInput_generator_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_materialProviders_CreateAwsKmsMrkMultiKeyringInput_kmsKeyIds_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, Aws_cryptography_materialProviders_KmsKeyIdList_member_FromDafny(val)) + } + return fieldValue +} +func Aws_cryptography_materialProviders_KmsKeyIdList_member_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_materialProviders_CreateAwsKmsMrkMultiKeyringInput_grantTokens_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, Aws_cryptography_materialProviders_GrantTokenList_member_FromDafny(val)) + } + return fieldValue +} +func Aws_cryptography_materialProviders_CreateAwsKmsMultiKeyringInput_generator_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_materialProviders_CreateAwsKmsMultiKeyringInput_kmsKeyIds_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, Aws_cryptography_materialProviders_KmsKeyIdList_member_FromDafny(val)) + } + return fieldValue +} +func Aws_cryptography_materialProviders_CreateAwsKmsMultiKeyringInput_grantTokens_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, Aws_cryptography_materialProviders_GrantTokenList_member_FromDafny(val)) + } + return fieldValue +} +func Aws_cryptography_materialProviders_CreateAwsKmsRsaKeyringInput_publicKey_FromDafny(input interface{}) []byte { + return func() []byte { + b := []byte{} + if input == nil { + return nil + } + for i := dafny.Iterate(input); ; { + val, ok := i() + if !ok { + return b + } else { + b = append(b, val.(byte)) + } + } + }() +} +func Aws_cryptography_materialProviders_CreateAwsKmsRsaKeyringInput_kmsKeyId_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_materialProviders_CreateAwsKmsRsaKeyringInput_encryptionAlgorithm_FromDafny(input interface{}) kmstypes.EncryptionAlgorithmSpec { + return func() kmstypes.EncryptionAlgorithmSpec { + var u kmstypes.EncryptionAlgorithmSpec + inputEnum := input.(ComAmazonawsKmsTypes.EncryptionAlgorithmSpec) + index := -1 + for allEnums := dafny.Iterate(ComAmazonawsKmsTypes.CompanionStruct_EncryptionAlgorithmSpec_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(ComAmazonawsKmsTypes.EncryptionAlgorithmSpec).Equals(inputEnum) { + break + } + } + } + + return u.Values()[index] + }() +} +func Aws_cryptography_materialProviders_CreateAwsKmsRsaKeyringInput_kmsClient_FromDafny(input interface{}) *kms.Client { + shim, ok := input.(*KMSwrapped.Shim) + if !ok { + panic("Not able to convert client to native") + } + return shim.Client + +} +func Aws_cryptography_materialProviders_CreateAwsKmsRsaKeyringInput_grantTokens_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, Aws_cryptography_materialProviders_GrantTokenList_member_FromDafny(val)) + } + return fieldValue +} +func Aws_cryptography_materialProviders_CreateCryptographicMaterialsCacheInput_cache_FromDafny(input interface{}) awscryptographymaterialproviderssmithygeneratedtypes.CacheType { + var union awscryptographymaterialproviderssmithygeneratedtypes.CacheType + + if (input.(AwsCryptographyMaterialProvidersTypes.CacheType)).Is_Default() { + + union = &awscryptographymaterialproviderssmithygeneratedtypes.CacheTypeMemberDefault{ + Value: (Aws_cryptography_materialProviders_CacheType_Default_FromDafny((input.(AwsCryptographyMaterialProvidersTypes.CacheType)).Dtor_Default())), + } + } + if (input.(AwsCryptographyMaterialProvidersTypes.CacheType)).Is_No() { + + union = &awscryptographymaterialproviderssmithygeneratedtypes.CacheTypeMemberNo{ + Value: (Aws_cryptography_materialProviders_CacheType_No_FromDafny((input.(AwsCryptographyMaterialProvidersTypes.CacheType)).Dtor_No())), + } + } + if (input.(AwsCryptographyMaterialProvidersTypes.CacheType)).Is_SingleThreaded() { + + union = &awscryptographymaterialproviderssmithygeneratedtypes.CacheTypeMemberSingleThreaded{ + Value: (Aws_cryptography_materialProviders_CacheType_SingleThreaded_FromDafny((input.(AwsCryptographyMaterialProvidersTypes.CacheType)).Dtor_SingleThreaded())), + } + } + if (input.(AwsCryptographyMaterialProvidersTypes.CacheType)).Is_MultiThreaded() { + + union = &awscryptographymaterialproviderssmithygeneratedtypes.CacheTypeMemberMultiThreaded{ + Value: (Aws_cryptography_materialProviders_CacheType_MultiThreaded_FromDafny((input.(AwsCryptographyMaterialProvidersTypes.CacheType)).Dtor_MultiThreaded())), + } + } + if (input.(AwsCryptographyMaterialProvidersTypes.CacheType)).Is_StormTracking() { + + union = &awscryptographymaterialproviderssmithygeneratedtypes.CacheTypeMemberStormTracking{ + Value: (Aws_cryptography_materialProviders_CacheType_StormTracking_FromDafny((input.(AwsCryptographyMaterialProvidersTypes.CacheType)).Dtor_StormTracking())), + } + } + if (input.(AwsCryptographyMaterialProvidersTypes.CacheType)).Is_Shared() { + + union = &awscryptographymaterialproviderssmithygeneratedtypes.CacheTypeMemberShared{ + Value: (CryptographicMaterialsCache_FromDafny((input.(AwsCryptographyMaterialProvidersTypes.CacheType)).Dtor_Shared().(AwsCryptographyMaterialProvidersTypes.ICryptographicMaterialsCache))), + } + } + + return union + +} +func Aws_cryptography_materialProviders_CreateMultiKeyringInput_childKeyrings_FromDafny(input interface{}) []awscryptographymaterialproviderssmithygeneratedtypes.IKeyring { + fieldValue := make([]awscryptographymaterialproviderssmithygeneratedtypes.IKeyring, 0) + for i := dafny.Iterate(input.(dafny.Sequence)); ; { + val, ok := i() + if !ok { + break + } + fieldValue = append(fieldValue, Keyring_FromDafny(val.(AwsCryptographyMaterialProvidersTypes.IKeyring))) + } + return fieldValue +} +func Aws_cryptography_materialProviders_CreateRawAesKeyringInput_keyNamespace_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_materialProviders_CreateRawAesKeyringInput_keyName_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_materialProviders_CreateRawAesKeyringInput_wrappingKey_FromDafny(input interface{}) []byte { + return func() []byte { + b := []byte{} + if input == nil { + return nil + } + for i := dafny.Iterate(input); ; { + val, ok := i() + if !ok { + return b + } else { + b = append(b, val.(byte)) + } + } + }() +} +func Aws_cryptography_materialProviders_CreateRawAesKeyringInput_wrappingAlg_FromDafny(input interface{}) awscryptographymaterialproviderssmithygeneratedtypes.AesWrappingAlg { + return func() awscryptographymaterialproviderssmithygeneratedtypes.AesWrappingAlg { + var u awscryptographymaterialproviderssmithygeneratedtypes.AesWrappingAlg + inputEnum := input.(AwsCryptographyMaterialProvidersTypes.AesWrappingAlg) + index := -1 + for allEnums := dafny.Iterate(AwsCryptographyMaterialProvidersTypes.CompanionStruct_AesWrappingAlg_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(AwsCryptographyMaterialProvidersTypes.AesWrappingAlg).Equals(inputEnum) { + break + } + } + } + + return u.Values()[index] + }() +} +func Aws_cryptography_materialProviders_CreateRawEcdhKeyringInput_KeyAgreementScheme_FromDafny(input interface{}) awscryptographymaterialproviderssmithygeneratedtypes.RawEcdhStaticConfigurations { + var union awscryptographymaterialproviderssmithygeneratedtypes.RawEcdhStaticConfigurations + + if (input.(AwsCryptographyMaterialProvidersTypes.RawEcdhStaticConfigurations)).Is_PublicKeyDiscovery() { + + union = &awscryptographymaterialproviderssmithygeneratedtypes.RawEcdhStaticConfigurationsMemberPublicKeyDiscovery{ + Value: (Aws_cryptography_materialProviders_RawEcdhStaticConfigurations_PublicKeyDiscovery_FromDafny((input.(AwsCryptographyMaterialProvidersTypes.RawEcdhStaticConfigurations)).Dtor_PublicKeyDiscovery())), + } + } + if (input.(AwsCryptographyMaterialProvidersTypes.RawEcdhStaticConfigurations)).Is_RawPrivateKeyToStaticPublicKey() { + + union = &awscryptographymaterialproviderssmithygeneratedtypes.RawEcdhStaticConfigurationsMemberRawPrivateKeyToStaticPublicKey{ + Value: (Aws_cryptography_materialProviders_RawEcdhStaticConfigurations_RawPrivateKeyToStaticPublicKey_FromDafny((input.(AwsCryptographyMaterialProvidersTypes.RawEcdhStaticConfigurations)).Dtor_RawPrivateKeyToStaticPublicKey())), + } + } + if (input.(AwsCryptographyMaterialProvidersTypes.RawEcdhStaticConfigurations)).Is_EphemeralPrivateKeyToStaticPublicKey() { + + union = &awscryptographymaterialproviderssmithygeneratedtypes.RawEcdhStaticConfigurationsMemberEphemeralPrivateKeyToStaticPublicKey{ + Value: (Aws_cryptography_materialProviders_RawEcdhStaticConfigurations_EphemeralPrivateKeyToStaticPublicKey_FromDafny((input.(AwsCryptographyMaterialProvidersTypes.RawEcdhStaticConfigurations)).Dtor_EphemeralPrivateKeyToStaticPublicKey())), + } + } + + return union + +} +func Aws_cryptography_materialProviders_RawEcdhStaticConfigurations_PublicKeyDiscovery_FromDafny(input interface{}) awscryptographymaterialproviderssmithygeneratedtypes.PublicKeyDiscoveryInput { + return awscryptographymaterialproviderssmithygeneratedtypes.PublicKeyDiscoveryInput{RecipientStaticPrivateKey: Aws_cryptography_materialProviders_PublicKeyDiscoveryInput_recipientStaticPrivateKey_FromDafny(input.(AwsCryptographyMaterialProvidersTypes.PublicKeyDiscoveryInput).Dtor_recipientStaticPrivateKey())} +} +func Aws_cryptography_materialProviders_PublicKeyDiscoveryInput_recipientStaticPrivateKey_FromDafny(input interface{}) []byte { + return func() []byte { + b := []byte{} + if input == nil { + return nil + } + for i := dafny.Iterate(input); ; { + val, ok := i() + if !ok { + return b + } else { + b = append(b, val.(byte)) + } + } + }() +} +func Aws_cryptography_materialProviders_RawEcdhStaticConfigurations_RawPrivateKeyToStaticPublicKey_FromDafny(input interface{}) awscryptographymaterialproviderssmithygeneratedtypes.RawPrivateKeyToStaticPublicKeyInput { + return awscryptographymaterialproviderssmithygeneratedtypes.RawPrivateKeyToStaticPublicKeyInput{SenderStaticPrivateKey: Aws_cryptography_materialProviders_RawPrivateKeyToStaticPublicKeyInput_senderStaticPrivateKey_FromDafny(input.(AwsCryptographyMaterialProvidersTypes.RawPrivateKeyToStaticPublicKeyInput).Dtor_senderStaticPrivateKey()), + RecipientPublicKey: Aws_cryptography_materialProviders_RawPrivateKeyToStaticPublicKeyInput_recipientPublicKey_FromDafny(input.(AwsCryptographyMaterialProvidersTypes.RawPrivateKeyToStaticPublicKeyInput).Dtor_recipientPublicKey()), + } +} +func Aws_cryptography_materialProviders_RawPrivateKeyToStaticPublicKeyInput_senderStaticPrivateKey_FromDafny(input interface{}) []byte { + return func() []byte { + b := []byte{} + if input == nil { + return nil + } + for i := dafny.Iterate(input); ; { + val, ok := i() + if !ok { + return b + } else { + b = append(b, val.(byte)) + } + } + }() +} +func Aws_cryptography_materialProviders_RawPrivateKeyToStaticPublicKeyInput_recipientPublicKey_FromDafny(input interface{}) []byte { + return func() []byte { + b := []byte{} + if input == nil { + return nil + } + for i := dafny.Iterate(input); ; { + val, ok := i() + if !ok { + return b + } else { + b = append(b, val.(byte)) + } + } + }() +} +func Aws_cryptography_materialProviders_RawEcdhStaticConfigurations_EphemeralPrivateKeyToStaticPublicKey_FromDafny(input interface{}) awscryptographymaterialproviderssmithygeneratedtypes.EphemeralPrivateKeyToStaticPublicKeyInput { + return awscryptographymaterialproviderssmithygeneratedtypes.EphemeralPrivateKeyToStaticPublicKeyInput{RecipientPublicKey: Aws_cryptography_materialProviders_EphemeralPrivateKeyToStaticPublicKeyInput_recipientPublicKey_FromDafny(input.(AwsCryptographyMaterialProvidersTypes.EphemeralPrivateKeyToStaticPublicKeyInput).Dtor_recipientPublicKey())} +} +func Aws_cryptography_materialProviders_EphemeralPrivateKeyToStaticPublicKeyInput_recipientPublicKey_FromDafny(input interface{}) []byte { + return func() []byte { + b := []byte{} + if input == nil { + return nil + } + for i := dafny.Iterate(input); ; { + val, ok := i() + if !ok { + return b + } else { + b = append(b, val.(byte)) + } + } + }() +} +func Aws_cryptography_materialProviders_CreateRawEcdhKeyringInput_curveSpec_FromDafny(input interface{}) awscryptographyprimitivessmithygeneratedtypes.ECDHCurveSpec { + return func() awscryptographyprimitivessmithygeneratedtypes.ECDHCurveSpec { + var u awscryptographyprimitivessmithygeneratedtypes.ECDHCurveSpec + inputEnum := input.(AwsCryptographyPrimitivesTypes.ECDHCurveSpec) + index := -1 + for allEnums := dafny.Iterate(AwsCryptographyPrimitivesTypes.CompanionStruct_ECDHCurveSpec_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(AwsCryptographyPrimitivesTypes.ECDHCurveSpec).Equals(inputEnum) { + break + } + } + } + + return u.Values()[index] + }() +} +func Aws_cryptography_materialProviders_CreateRawRsaKeyringInput_keyNamespace_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_materialProviders_CreateRawRsaKeyringInput_keyName_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_materialProviders_CreateRawRsaKeyringInput_paddingScheme_FromDafny(input interface{}) awscryptographymaterialproviderssmithygeneratedtypes.PaddingScheme { + return func() awscryptographymaterialproviderssmithygeneratedtypes.PaddingScheme { + var u awscryptographymaterialproviderssmithygeneratedtypes.PaddingScheme + inputEnum := input.(AwsCryptographyMaterialProvidersTypes.PaddingScheme) + index := -1 + for allEnums := dafny.Iterate(AwsCryptographyMaterialProvidersTypes.CompanionStruct_PaddingScheme_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(AwsCryptographyMaterialProvidersTypes.PaddingScheme).Equals(inputEnum) { + break + } + } + } + + return u.Values()[index] + }() +} +func Aws_cryptography_materialProviders_CreateRawRsaKeyringInput_publicKey_FromDafny(input interface{}) []byte { + return func() []byte { + b := []byte{} + if input == nil { + return nil + } + for i := dafny.Iterate(input); ; { + val, ok := i() + if !ok { + return b + } else { + b = append(b, val.(byte)) + } + } + }() +} +func Aws_cryptography_materialProviders_CreateRawRsaKeyringInput_privateKey_FromDafny(input interface{}) []byte { + return func() []byte { + b := []byte{} + if input == nil { + return nil + } + for i := dafny.Iterate(input); ; { + val, ok := i() + if !ok { + return b + } else { + b = append(b, val.(byte)) + } + } + }() +} +func Aws_cryptography_materialProviders_CreateRequiredEncryptionContextCMMInput_requiredEncryptionContextKeys_FromDafny(input interface{}) []string { + fieldValue := make([]string, 0) + for i := dafny.Iterate(input.(dafny.Sequence)); ; { + val, ok := i() + if !ok { + break + } + fieldValue = append(fieldValue, Aws_cryptography_materialProviders_EncryptionContextKeys_member_FromDafny(val)) + } + return fieldValue +} +func Aws_cryptography_materialProviders_EncryptionContextKeys_member_FromDafny(input interface{}) string { + return func() string { + + // UTF bytes should be always converted from bytes to string in go + // Otherwise go treats the string as a unicode codepoint + + s := string(dafny.ToByteArray(input.(dafny.Sequence))) + + return s + }() +} +func Aws_cryptography_materialProviders_DecryptionMaterials_algorithmSuite_FromDafny(input interface{}) awscryptographymaterialproviderssmithygeneratedtypes.AlgorithmSuiteInfo { + return awscryptographymaterialproviderssmithygeneratedtypes.AlgorithmSuiteInfo{Id: Aws_cryptography_materialProviders_AlgorithmSuiteInfo_id_FromDafny(input.(AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo).Dtor_id()), + BinaryId: Aws_cryptography_materialProviders_AlgorithmSuiteInfo_binaryId_FromDafny(input.(AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo).Dtor_binaryId()), + MessageVersion: Aws_cryptography_materialProviders_AlgorithmSuiteInfo_messageVersion_FromDafny(input.(AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo).Dtor_messageVersion()), + Encrypt: Aws_cryptography_materialProviders_AlgorithmSuiteInfo_encrypt_FromDafny(input.(AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo).Dtor_encrypt()), + Kdf: Aws_cryptography_materialProviders_AlgorithmSuiteInfo_kdf_FromDafny(input.(AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo).Dtor_kdf()), + Commitment: Aws_cryptography_materialProviders_AlgorithmSuiteInfo_commitment_FromDafny(input.(AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo).Dtor_commitment()), + Signature: Aws_cryptography_materialProviders_AlgorithmSuiteInfo_signature_FromDafny(input.(AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo).Dtor_signature()), + SymmetricSignature: Aws_cryptography_materialProviders_AlgorithmSuiteInfo_symmetricSignature_FromDafny(input.(AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo).Dtor_symmetricSignature()), + EdkWrapping: Aws_cryptography_materialProviders_AlgorithmSuiteInfo_edkWrapping_FromDafny(input.(AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo).Dtor_edkWrapping()), + } +} +func Aws_cryptography_materialProviders_AlgorithmSuiteInfo_id_FromDafny(input interface{}) awscryptographymaterialproviderssmithygeneratedtypes.AlgorithmSuiteId { + var union awscryptographymaterialproviderssmithygeneratedtypes.AlgorithmSuiteId + + if (input.(AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteId)).Is_ESDK() { + var dataSource = Wrappers.Companion_Option_.Create_Some_((input.(AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteId)).Dtor_ESDK()) + union = &awscryptographymaterialproviderssmithygeneratedtypes.AlgorithmSuiteIdMemberESDK{ + Value: (Aws_cryptography_materialProviders_AlgorithmSuiteId_ESDK_FromDafny(dataSource.UnwrapOr(nil))), + } + } + if (input.(AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteId)).Is_DBE() { + var dataSource = Wrappers.Companion_Option_.Create_Some_((input.(AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteId)).Dtor_DBE()) + union = &awscryptographymaterialproviderssmithygeneratedtypes.AlgorithmSuiteIdMemberDBE{ + Value: (Aws_cryptography_materialProviders_AlgorithmSuiteId_DBE_FromDafny(dataSource.UnwrapOr(nil))), + } + } + + return union + +} +func Aws_cryptography_materialProviders_AlgorithmSuiteId_ESDK_FromDafny(input interface{}) awscryptographymaterialproviderssmithygeneratedtypes.ESDKAlgorithmSuiteId { + return func() awscryptographymaterialproviderssmithygeneratedtypes.ESDKAlgorithmSuiteId { + var u awscryptographymaterialproviderssmithygeneratedtypes.ESDKAlgorithmSuiteId + inputEnum := input.(AwsCryptographyMaterialProvidersTypes.ESDKAlgorithmSuiteId) + index := -1 + for allEnums := dafny.Iterate(AwsCryptographyMaterialProvidersTypes.CompanionStruct_ESDKAlgorithmSuiteId_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(AwsCryptographyMaterialProvidersTypes.ESDKAlgorithmSuiteId).Equals(inputEnum) { + break + } + } + } + + return u.Values()[index] + }() +} +func Aws_cryptography_materialProviders_AlgorithmSuiteId_DBE_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_materialProviders_AlgorithmSuiteInfo_binaryId_FromDafny(input interface{}) []byte { + return func() []byte { + b := []byte{} + if input == nil { + return nil + } + for i := dafny.Iterate(input); ; { + val, ok := i() + if !ok { + return b + } else { + b = append(b, val.(byte)) + } + } + }() +} +func Aws_cryptography_materialProviders_AlgorithmSuiteInfo_messageVersion_FromDafny(input interface{}) int32 { + return func() int32 { + var b = input.(int32) + return b + }() +} +func Aws_cryptography_materialProviders_AlgorithmSuiteInfo_encrypt_FromDafny(input interface{}) awscryptographymaterialproviderssmithygeneratedtypes.Encrypt { + var union awscryptographymaterialproviderssmithygeneratedtypes.Encrypt + + if (input.(AwsCryptographyMaterialProvidersTypes.Encrypt)).Is_AES__GCM() { + + union = &awscryptographymaterialproviderssmithygeneratedtypes.EncryptMemberAES_GCM{ + Value: (Aws_cryptography_materialProviders_Encrypt_AES_GCM_FromDafny((input.(AwsCryptographyMaterialProvidersTypes.Encrypt)).Dtor_AES__GCM())), + } + } + + return union + +} +func Aws_cryptography_materialProviders_Encrypt_AES_GCM_FromDafny(input interface{}) awscryptographyprimitivessmithygeneratedtypes.AES_GCM { + return awscryptographyprimitivessmithygeneratedtypes.AES_GCM{KeyLength: awscryptographyprimitivessmithygenerated.Aws_cryptography_primitives_AES_GCM_keyLength_FromDafny(input.(AwsCryptographyPrimitivesTypes.AES__GCM).Dtor_keyLength()), + TagLength: awscryptographyprimitivessmithygenerated.Aws_cryptography_primitives_AES_GCM_tagLength_FromDafny(input.(AwsCryptographyPrimitivesTypes.AES__GCM).Dtor_tagLength()), + IvLength: awscryptographyprimitivessmithygenerated.Aws_cryptography_primitives_AES_GCM_ivLength_FromDafny(input.(AwsCryptographyPrimitivesTypes.AES__GCM).Dtor_ivLength()), + } +} +func Aws_cryptography_materialProviders_AlgorithmSuiteInfo_kdf_FromDafny(input interface{}) awscryptographymaterialproviderssmithygeneratedtypes.DerivationAlgorithm { + var union awscryptographymaterialproviderssmithygeneratedtypes.DerivationAlgorithm + + if (input.(AwsCryptographyMaterialProvidersTypes.DerivationAlgorithm)).Is_HKDF() { + + union = &awscryptographymaterialproviderssmithygeneratedtypes.DerivationAlgorithmMemberHKDF{ + Value: (Aws_cryptography_materialProviders_DerivationAlgorithm_HKDF_FromDafny((input.(AwsCryptographyMaterialProvidersTypes.DerivationAlgorithm)).Dtor_HKDF())), + } + } + if (input.(AwsCryptographyMaterialProvidersTypes.DerivationAlgorithm)).Is_IDENTITY() { + + union = &awscryptographymaterialproviderssmithygeneratedtypes.DerivationAlgorithmMemberIDENTITY{ + Value: (Aws_cryptography_materialProviders_DerivationAlgorithm_IDENTITY_FromDafny((input.(AwsCryptographyMaterialProvidersTypes.DerivationAlgorithm)).Dtor_IDENTITY())), + } + } + if (input.(AwsCryptographyMaterialProvidersTypes.DerivationAlgorithm)).Is_None() { + + union = &awscryptographymaterialproviderssmithygeneratedtypes.DerivationAlgorithmMemberNone{ + Value: (Aws_cryptography_materialProviders_DerivationAlgorithm_None_FromDafny((input.(AwsCryptographyMaterialProvidersTypes.DerivationAlgorithm)).Dtor_None())), + } + } + + return union + +} +func Aws_cryptography_materialProviders_DerivationAlgorithm_HKDF_FromDafny(input interface{}) awscryptographymaterialproviderssmithygeneratedtypes.HKDF { + return awscryptographymaterialproviderssmithygeneratedtypes.HKDF{Hmac: Aws_cryptography_materialProviders_HKDF_hmac_FromDafny(input.(AwsCryptographyMaterialProvidersTypes.HKDF).Dtor_hmac()), + SaltLength: Aws_cryptography_materialProviders_HKDF_saltLength_FromDafny(input.(AwsCryptographyMaterialProvidersTypes.HKDF).Dtor_saltLength()), + InputKeyLength: Aws_cryptography_materialProviders_HKDF_inputKeyLength_FromDafny(input.(AwsCryptographyMaterialProvidersTypes.HKDF).Dtor_inputKeyLength()), + OutputKeyLength: Aws_cryptography_materialProviders_HKDF_outputKeyLength_FromDafny(input.(AwsCryptographyMaterialProvidersTypes.HKDF).Dtor_outputKeyLength()), + } +} +func Aws_cryptography_materialProviders_HKDF_hmac_FromDafny(input interface{}) awscryptographyprimitivessmithygeneratedtypes.DigestAlgorithm { + return func() awscryptographyprimitivessmithygeneratedtypes.DigestAlgorithm { + var u awscryptographyprimitivessmithygeneratedtypes.DigestAlgorithm + inputEnum := input.(AwsCryptographyPrimitivesTypes.DigestAlgorithm) + index := -1 + for allEnums := dafny.Iterate(AwsCryptographyPrimitivesTypes.CompanionStruct_DigestAlgorithm_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(AwsCryptographyPrimitivesTypes.DigestAlgorithm).Equals(inputEnum) { + break + } + } + } + + return u.Values()[index] + }() +} +func Aws_cryptography_materialProviders_HKDF_saltLength_FromDafny(input interface{}) int32 { + return func() int32 { + var b = input.(int32) + return b + }() +} +func Aws_cryptography_materialProviders_HKDF_inputKeyLength_FromDafny(input interface{}) int32 { + return func() int32 { + var b = input.(int32) + return b + }() +} +func Aws_cryptography_materialProviders_HKDF_outputKeyLength_FromDafny(input interface{}) int32 { + return func() int32 { + var b = input.(int32) + return b + }() +} +func Aws_cryptography_materialProviders_DerivationAlgorithm_IDENTITY_FromDafny(input interface{}) awscryptographymaterialproviderssmithygeneratedtypes.IDENTITY { + return awscryptographymaterialproviderssmithygeneratedtypes.IDENTITY{} +} +func Aws_cryptography_materialProviders_DerivationAlgorithm_None_FromDafny(input interface{}) awscryptographymaterialproviderssmithygeneratedtypes.None { + return awscryptographymaterialproviderssmithygeneratedtypes.None{} +} +func Aws_cryptography_materialProviders_AlgorithmSuiteInfo_commitment_FromDafny(input interface{}) awscryptographymaterialproviderssmithygeneratedtypes.DerivationAlgorithm { + var union awscryptographymaterialproviderssmithygeneratedtypes.DerivationAlgorithm + + if (input.(AwsCryptographyMaterialProvidersTypes.DerivationAlgorithm)).Is_HKDF() { + + union = &awscryptographymaterialproviderssmithygeneratedtypes.DerivationAlgorithmMemberHKDF{ + Value: (Aws_cryptography_materialProviders_DerivationAlgorithm_HKDF_FromDafny((input.(AwsCryptographyMaterialProvidersTypes.DerivationAlgorithm)).Dtor_HKDF())), + } + } + if (input.(AwsCryptographyMaterialProvidersTypes.DerivationAlgorithm)).Is_IDENTITY() { + + union = &awscryptographymaterialproviderssmithygeneratedtypes.DerivationAlgorithmMemberIDENTITY{ + Value: (Aws_cryptography_materialProviders_DerivationAlgorithm_IDENTITY_FromDafny((input.(AwsCryptographyMaterialProvidersTypes.DerivationAlgorithm)).Dtor_IDENTITY())), + } + } + if (input.(AwsCryptographyMaterialProvidersTypes.DerivationAlgorithm)).Is_None() { + + union = &awscryptographymaterialproviderssmithygeneratedtypes.DerivationAlgorithmMemberNone{ + Value: (Aws_cryptography_materialProviders_DerivationAlgorithm_None_FromDafny((input.(AwsCryptographyMaterialProvidersTypes.DerivationAlgorithm)).Dtor_None())), + } + } + + return union + +} +func Aws_cryptography_materialProviders_AlgorithmSuiteInfo_signature_FromDafny(input interface{}) awscryptographymaterialproviderssmithygeneratedtypes.SignatureAlgorithm { + var union awscryptographymaterialproviderssmithygeneratedtypes.SignatureAlgorithm + + if (input.(AwsCryptographyMaterialProvidersTypes.SignatureAlgorithm)).Is_ECDSA() { + + union = &awscryptographymaterialproviderssmithygeneratedtypes.SignatureAlgorithmMemberECDSA{ + Value: (Aws_cryptography_materialProviders_SignatureAlgorithm_ECDSA_FromDafny((input.(AwsCryptographyMaterialProvidersTypes.SignatureAlgorithm)).Dtor_ECDSA())), + } + } + if (input.(AwsCryptographyMaterialProvidersTypes.SignatureAlgorithm)).Is_None() { + + union = &awscryptographymaterialproviderssmithygeneratedtypes.SignatureAlgorithmMemberNone{ + Value: (Aws_cryptography_materialProviders_SignatureAlgorithm_None_FromDafny((input.(AwsCryptographyMaterialProvidersTypes.SignatureAlgorithm)).Dtor_None())), + } + } + + return union + +} +func Aws_cryptography_materialProviders_SignatureAlgorithm_ECDSA_FromDafny(input interface{}) awscryptographymaterialproviderssmithygeneratedtypes.ECDSA { + return awscryptographymaterialproviderssmithygeneratedtypes.ECDSA{Curve: Aws_cryptography_materialProviders_ECDSA_curve_FromDafny(input.(AwsCryptographyMaterialProvidersTypes.ECDSA).Dtor_curve())} +} +func Aws_cryptography_materialProviders_ECDSA_curve_FromDafny(input interface{}) awscryptographyprimitivessmithygeneratedtypes.ECDSASignatureAlgorithm { + return func() awscryptographyprimitivessmithygeneratedtypes.ECDSASignatureAlgorithm { + var u awscryptographyprimitivessmithygeneratedtypes.ECDSASignatureAlgorithm + inputEnum := input.(AwsCryptographyPrimitivesTypes.ECDSASignatureAlgorithm) + index := -1 + for allEnums := dafny.Iterate(AwsCryptographyPrimitivesTypes.CompanionStruct_ECDSASignatureAlgorithm_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(AwsCryptographyPrimitivesTypes.ECDSASignatureAlgorithm).Equals(inputEnum) { + break + } + } + } + + return u.Values()[index] + }() +} +func Aws_cryptography_materialProviders_SignatureAlgorithm_None_FromDafny(input interface{}) awscryptographymaterialproviderssmithygeneratedtypes.None { + return awscryptographymaterialproviderssmithygeneratedtypes.None{} +} +func Aws_cryptography_materialProviders_AlgorithmSuiteInfo_symmetricSignature_FromDafny(input interface{}) awscryptographymaterialproviderssmithygeneratedtypes.SymmetricSignatureAlgorithm { + var union awscryptographymaterialproviderssmithygeneratedtypes.SymmetricSignatureAlgorithm + + if (input.(AwsCryptographyMaterialProvidersTypes.SymmetricSignatureAlgorithm)).Is_HMAC() { + var dataSource = Wrappers.Companion_Option_.Create_Some_((input.(AwsCryptographyMaterialProvidersTypes.SymmetricSignatureAlgorithm)).Dtor_HMAC()) + union = &awscryptographymaterialproviderssmithygeneratedtypes.SymmetricSignatureAlgorithmMemberHMAC{ + Value: (Aws_cryptography_materialProviders_SymmetricSignatureAlgorithm_HMAC_FromDafny(dataSource.UnwrapOr(nil))), + } + } + if (input.(AwsCryptographyMaterialProvidersTypes.SymmetricSignatureAlgorithm)).Is_None() { + + union = &awscryptographymaterialproviderssmithygeneratedtypes.SymmetricSignatureAlgorithmMemberNone{ + Value: (Aws_cryptography_materialProviders_SymmetricSignatureAlgorithm_None_FromDafny((input.(AwsCryptographyMaterialProvidersTypes.SymmetricSignatureAlgorithm)).Dtor_None())), + } + } + + return union + +} +func Aws_cryptography_materialProviders_SymmetricSignatureAlgorithm_HMAC_FromDafny(input interface{}) awscryptographyprimitivessmithygeneratedtypes.DigestAlgorithm { + return func() awscryptographyprimitivessmithygeneratedtypes.DigestAlgorithm { + var u awscryptographyprimitivessmithygeneratedtypes.DigestAlgorithm + inputEnum := input.(AwsCryptographyPrimitivesTypes.DigestAlgorithm) + index := -1 + for allEnums := dafny.Iterate(AwsCryptographyPrimitivesTypes.CompanionStruct_DigestAlgorithm_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(AwsCryptographyPrimitivesTypes.DigestAlgorithm).Equals(inputEnum) { + break + } + } + } + + return u.Values()[index] + }() +} +func Aws_cryptography_materialProviders_SymmetricSignatureAlgorithm_None_FromDafny(input interface{}) awscryptographymaterialproviderssmithygeneratedtypes.None { + return awscryptographymaterialproviderssmithygeneratedtypes.None{} +} +func Aws_cryptography_materialProviders_AlgorithmSuiteInfo_edkWrapping_FromDafny(input interface{}) awscryptographymaterialproviderssmithygeneratedtypes.EdkWrappingAlgorithm { + var union awscryptographymaterialproviderssmithygeneratedtypes.EdkWrappingAlgorithm + + if (input.(AwsCryptographyMaterialProvidersTypes.EdkWrappingAlgorithm)).Is_DIRECT__KEY__WRAPPING() { + + union = &awscryptographymaterialproviderssmithygeneratedtypes.EdkWrappingAlgorithmMemberDIRECT_KEY_WRAPPING{ + Value: (Aws_cryptography_materialProviders_EdkWrappingAlgorithm_DIRECT_KEY_WRAPPING_FromDafny((input.(AwsCryptographyMaterialProvidersTypes.EdkWrappingAlgorithm)).Dtor_DIRECT__KEY__WRAPPING())), + } + } + if (input.(AwsCryptographyMaterialProvidersTypes.EdkWrappingAlgorithm)).Is_IntermediateKeyWrapping() { + + union = &awscryptographymaterialproviderssmithygeneratedtypes.EdkWrappingAlgorithmMemberIntermediateKeyWrapping{ + Value: (Aws_cryptography_materialProviders_EdkWrappingAlgorithm_IntermediateKeyWrapping_FromDafny((input.(AwsCryptographyMaterialProvidersTypes.EdkWrappingAlgorithm)).Dtor_IntermediateKeyWrapping())), + } + } + + return union + +} +func Aws_cryptography_materialProviders_EdkWrappingAlgorithm_DIRECT_KEY_WRAPPING_FromDafny(input interface{}) awscryptographymaterialproviderssmithygeneratedtypes.DIRECT_KEY_WRAPPING { + return awscryptographymaterialproviderssmithygeneratedtypes.DIRECT_KEY_WRAPPING{} +} +func Aws_cryptography_materialProviders_EdkWrappingAlgorithm_IntermediateKeyWrapping_FromDafny(input interface{}) awscryptographymaterialproviderssmithygeneratedtypes.IntermediateKeyWrapping { + return awscryptographymaterialproviderssmithygeneratedtypes.IntermediateKeyWrapping{KeyEncryptionKeyKdf: Aws_cryptography_materialProviders_IntermediateKeyWrapping_keyEncryptionKeyKdf_FromDafny(input.(AwsCryptographyMaterialProvidersTypes.IntermediateKeyWrapping).Dtor_keyEncryptionKeyKdf()), + MacKeyKdf: Aws_cryptography_materialProviders_IntermediateKeyWrapping_macKeyKdf_FromDafny(input.(AwsCryptographyMaterialProvidersTypes.IntermediateKeyWrapping).Dtor_macKeyKdf()), + PdkEncryptAlgorithm: Aws_cryptography_materialProviders_IntermediateKeyWrapping_pdkEncryptAlgorithm_FromDafny(input.(AwsCryptographyMaterialProvidersTypes.IntermediateKeyWrapping).Dtor_pdkEncryptAlgorithm()), + } +} +func Aws_cryptography_materialProviders_IntermediateKeyWrapping_keyEncryptionKeyKdf_FromDafny(input interface{}) awscryptographymaterialproviderssmithygeneratedtypes.DerivationAlgorithm { + var union awscryptographymaterialproviderssmithygeneratedtypes.DerivationAlgorithm + + if (input.(AwsCryptographyMaterialProvidersTypes.DerivationAlgorithm)).Is_HKDF() { + + union = &awscryptographymaterialproviderssmithygeneratedtypes.DerivationAlgorithmMemberHKDF{ + Value: (Aws_cryptography_materialProviders_DerivationAlgorithm_HKDF_FromDafny((input.(AwsCryptographyMaterialProvidersTypes.DerivationAlgorithm)).Dtor_HKDF())), + } + } + if (input.(AwsCryptographyMaterialProvidersTypes.DerivationAlgorithm)).Is_IDENTITY() { + + union = &awscryptographymaterialproviderssmithygeneratedtypes.DerivationAlgorithmMemberIDENTITY{ + Value: (Aws_cryptography_materialProviders_DerivationAlgorithm_IDENTITY_FromDafny((input.(AwsCryptographyMaterialProvidersTypes.DerivationAlgorithm)).Dtor_IDENTITY())), + } + } + if (input.(AwsCryptographyMaterialProvidersTypes.DerivationAlgorithm)).Is_None() { + + union = &awscryptographymaterialproviderssmithygeneratedtypes.DerivationAlgorithmMemberNone{ + Value: (Aws_cryptography_materialProviders_DerivationAlgorithm_None_FromDafny((input.(AwsCryptographyMaterialProvidersTypes.DerivationAlgorithm)).Dtor_None())), + } + } + + return union + +} +func Aws_cryptography_materialProviders_IntermediateKeyWrapping_macKeyKdf_FromDafny(input interface{}) awscryptographymaterialproviderssmithygeneratedtypes.DerivationAlgorithm { + var union awscryptographymaterialproviderssmithygeneratedtypes.DerivationAlgorithm + + if (input.(AwsCryptographyMaterialProvidersTypes.DerivationAlgorithm)).Is_HKDF() { + + union = &awscryptographymaterialproviderssmithygeneratedtypes.DerivationAlgorithmMemberHKDF{ + Value: (Aws_cryptography_materialProviders_DerivationAlgorithm_HKDF_FromDafny((input.(AwsCryptographyMaterialProvidersTypes.DerivationAlgorithm)).Dtor_HKDF())), + } + } + if (input.(AwsCryptographyMaterialProvidersTypes.DerivationAlgorithm)).Is_IDENTITY() { + + union = &awscryptographymaterialproviderssmithygeneratedtypes.DerivationAlgorithmMemberIDENTITY{ + Value: (Aws_cryptography_materialProviders_DerivationAlgorithm_IDENTITY_FromDafny((input.(AwsCryptographyMaterialProvidersTypes.DerivationAlgorithm)).Dtor_IDENTITY())), + } + } + if (input.(AwsCryptographyMaterialProvidersTypes.DerivationAlgorithm)).Is_None() { + + union = &awscryptographymaterialproviderssmithygeneratedtypes.DerivationAlgorithmMemberNone{ + Value: (Aws_cryptography_materialProviders_DerivationAlgorithm_None_FromDafny((input.(AwsCryptographyMaterialProvidersTypes.DerivationAlgorithm)).Dtor_None())), + } + } + + return union + +} +func Aws_cryptography_materialProviders_IntermediateKeyWrapping_pdkEncryptAlgorithm_FromDafny(input interface{}) awscryptographymaterialproviderssmithygeneratedtypes.Encrypt { + var union awscryptographymaterialproviderssmithygeneratedtypes.Encrypt + + if (input.(AwsCryptographyMaterialProvidersTypes.Encrypt)).Is_AES__GCM() { + + union = &awscryptographymaterialproviderssmithygeneratedtypes.EncryptMemberAES_GCM{ + Value: (Aws_cryptography_materialProviders_Encrypt_AES_GCM_FromDafny((input.(AwsCryptographyMaterialProvidersTypes.Encrypt)).Dtor_AES__GCM())), + } + } + + return union + +} +func Aws_cryptography_materialProviders_DecryptionMaterials_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[Aws_cryptography_materialProviders_EncryptionContext_key_FromDafny((*val.(dafny.Tuple).IndexInt(0)))] = Aws_cryptography_materialProviders_EncryptionContext_value_FromDafny((*val.(dafny.Tuple).IndexInt(1))) + } + return m + +} +func Aws_cryptography_materialProviders_EncryptionContext_key_FromDafny(input interface{}) string { + return func() string { + + // UTF bytes should be always converted from bytes to string in go + // Otherwise go treats the string as a unicode codepoint + + s := string(dafny.ToByteArray(input.(dafny.Sequence))) + + return s + }() +} +func Aws_cryptography_materialProviders_EncryptionContext_value_FromDafny(input interface{}) string { + return func() string { + + // UTF bytes should be always converted from bytes to string in go + // Otherwise go treats the string as a unicode codepoint + + s := string(dafny.ToByteArray(input.(dafny.Sequence))) + + return s + }() +} +func Aws_cryptography_materialProviders_DecryptionMaterials_requiredEncryptionContextKeys_FromDafny(input interface{}) []string { + fieldValue := make([]string, 0) + for i := dafny.Iterate(input.(dafny.Sequence)); ; { + val, ok := i() + if !ok { + break + } + fieldValue = append(fieldValue, Aws_cryptography_materialProviders_EncryptionContextKeys_member_FromDafny(val)) + } + return fieldValue +} +func Aws_cryptography_materialProviders_DecryptionMaterials_plaintextDataKey_FromDafny(input interface{}) []byte { + return func() []byte { + b := []byte{} + if input == nil { + return nil + } + for i := dafny.Iterate(input); ; { + val, ok := i() + if !ok { + return b + } else { + b = append(b, val.(byte)) + } + } + }() +} +func Aws_cryptography_materialProviders_DecryptionMaterials_verificationKey_FromDafny(input interface{}) []byte { + return func() []byte { + b := []byte{} + if input == nil { + return nil + } + for i := dafny.Iterate(input); ; { + val, ok := i() + if !ok { + return b + } else { + b = append(b, val.(byte)) + } + } + }() +} +func Aws_cryptography_materialProviders_DecryptionMaterials_symmetricSigningKey_FromDafny(input interface{}) []byte { + return func() []byte { + b := []byte{} + if input == nil { + return nil + } + for i := dafny.Iterate(input); ; { + val, ok := i() + if !ok { + return b + } else { + b = append(b, val.(byte)) + } + } + }() +} +func Aws_cryptography_materialProviders_EncryptionMaterials_algorithmSuite_FromDafny(input interface{}) awscryptographymaterialproviderssmithygeneratedtypes.AlgorithmSuiteInfo { + return awscryptographymaterialproviderssmithygeneratedtypes.AlgorithmSuiteInfo{Id: Aws_cryptography_materialProviders_AlgorithmSuiteInfo_id_FromDafny(input.(AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo).Dtor_id()), + BinaryId: Aws_cryptography_materialProviders_AlgorithmSuiteInfo_binaryId_FromDafny(input.(AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo).Dtor_binaryId()), + MessageVersion: Aws_cryptography_materialProviders_AlgorithmSuiteInfo_messageVersion_FromDafny(input.(AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo).Dtor_messageVersion()), + Encrypt: Aws_cryptography_materialProviders_AlgorithmSuiteInfo_encrypt_FromDafny(input.(AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo).Dtor_encrypt()), + Kdf: Aws_cryptography_materialProviders_AlgorithmSuiteInfo_kdf_FromDafny(input.(AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo).Dtor_kdf()), + Commitment: Aws_cryptography_materialProviders_AlgorithmSuiteInfo_commitment_FromDafny(input.(AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo).Dtor_commitment()), + Signature: Aws_cryptography_materialProviders_AlgorithmSuiteInfo_signature_FromDafny(input.(AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo).Dtor_signature()), + SymmetricSignature: Aws_cryptography_materialProviders_AlgorithmSuiteInfo_symmetricSignature_FromDafny(input.(AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo).Dtor_symmetricSignature()), + EdkWrapping: Aws_cryptography_materialProviders_AlgorithmSuiteInfo_edkWrapping_FromDafny(input.(AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo).Dtor_edkWrapping()), + } +} +func Aws_cryptography_materialProviders_EncryptionMaterials_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[Aws_cryptography_materialProviders_EncryptionContext_key_FromDafny((*val.(dafny.Tuple).IndexInt(0)))] = Aws_cryptography_materialProviders_EncryptionContext_value_FromDafny((*val.(dafny.Tuple).IndexInt(1))) + } + return m + +} +func Aws_cryptography_materialProviders_EncryptionMaterials_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, Aws_cryptography_materialProviders_EncryptedDataKeyList_member_FromDafny(val)) + } + return fieldValue +} +func Aws_cryptography_materialProviders_EncryptedDataKeyList_member_FromDafny(input interface{}) awscryptographymaterialproviderssmithygeneratedtypes.EncryptedDataKey { + return awscryptographymaterialproviderssmithygeneratedtypes.EncryptedDataKey{KeyProviderId: Aws_cryptography_materialProviders_EncryptedDataKey_keyProviderId_FromDafny(input.(AwsCryptographyMaterialProvidersTypes.EncryptedDataKey).Dtor_keyProviderId()), + KeyProviderInfo: Aws_cryptography_materialProviders_EncryptedDataKey_keyProviderInfo_FromDafny(input.(AwsCryptographyMaterialProvidersTypes.EncryptedDataKey).Dtor_keyProviderInfo()), + Ciphertext: Aws_cryptography_materialProviders_EncryptedDataKey_ciphertext_FromDafny(input.(AwsCryptographyMaterialProvidersTypes.EncryptedDataKey).Dtor_ciphertext()), + } +} +func Aws_cryptography_materialProviders_EncryptedDataKey_keyProviderId_FromDafny(input interface{}) string { + return func() string { + + // UTF bytes should be always converted from bytes to string in go + // Otherwise go treats the string as a unicode codepoint + + s := string(dafny.ToByteArray(input.(dafny.Sequence))) + + return s + }() +} +func Aws_cryptography_materialProviders_EncryptedDataKey_keyProviderInfo_FromDafny(input interface{}) []byte { + return func() []byte { + b := []byte{} + if input == nil { + return nil + } + for i := dafny.Iterate(input); ; { + val, ok := i() + if !ok { + return b + } else { + b = append(b, val.(byte)) + } + } + }() +} +func Aws_cryptography_materialProviders_EncryptedDataKey_ciphertext_FromDafny(input interface{}) []byte { + return func() []byte { + b := []byte{} + if input == nil { + return nil + } + for i := dafny.Iterate(input); ; { + val, ok := i() + if !ok { + return b + } else { + b = append(b, val.(byte)) + } + } + }() +} +func Aws_cryptography_materialProviders_EncryptionMaterials_requiredEncryptionContextKeys_FromDafny(input interface{}) []string { + fieldValue := make([]string, 0) + for i := dafny.Iterate(input.(dafny.Sequence)); ; { + val, ok := i() + if !ok { + break + } + fieldValue = append(fieldValue, Aws_cryptography_materialProviders_EncryptionContextKeys_member_FromDafny(val)) + } + return fieldValue +} +func Aws_cryptography_materialProviders_EncryptionMaterials_plaintextDataKey_FromDafny(input interface{}) []byte { + return func() []byte { + b := []byte{} + if input == nil { + return nil + } + for i := dafny.Iterate(input); ; { + val, ok := i() + if !ok { + return b + } else { + b = append(b, val.(byte)) + } + } + }() +} +func Aws_cryptography_materialProviders_EncryptionMaterials_signingKey_FromDafny(input interface{}) []byte { + return func() []byte { + b := []byte{} + if input == nil { + return nil + } + for i := dafny.Iterate(input); ; { + val, ok := i() + if !ok { + return b + } else { + b = append(b, val.(byte)) + } + } + }() +} +func Aws_cryptography_materialProviders_EncryptionMaterials_symmetricSigningKeys_FromDafny(input interface{}) [][]byte { + if input == nil { + return nil + } + fieldValue := make([][]byte, 0) + for i := dafny.Iterate(input.(dafny.Sequence)); ; { + val, ok := i() + if !ok { + break + } + fieldValue = append(fieldValue, Aws_cryptography_materialProviders_SymmetricSigningKeyList_member_FromDafny(val)) + } + return fieldValue +} +func Aws_cryptography_materialProviders_SymmetricSigningKeyList_member_FromDafny(input interface{}) []byte { + return func() []byte { + b := []byte{} + if input == nil { + return nil + } + for i := dafny.Iterate(input); ; { + val, ok := i() + if !ok { + return b + } else { + b = append(b, val.(byte)) + } + } + }() +} +func Aws_cryptography_materialProviders_GetAlgorithmSuiteInfoInput_binaryId_FromDafny(input interface{}) []byte { + return func() []byte { + b := []byte{} + if input == nil { + return nil + } + for i := dafny.Iterate(input); ; { + val, ok := i() + if !ok { + return b + } else { + b = append(b, val.(byte)) + } + } + }() +} +func Aws_cryptography_materialProviders_InitializeDecryptionMaterialsInput_algorithmSuiteId_FromDafny(input interface{}) awscryptographymaterialproviderssmithygeneratedtypes.AlgorithmSuiteId { + var union awscryptographymaterialproviderssmithygeneratedtypes.AlgorithmSuiteId + + if (input.(AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteId)).Is_ESDK() { + var dataSource = Wrappers.Companion_Option_.Create_Some_((input.(AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteId)).Dtor_ESDK()) + union = &awscryptographymaterialproviderssmithygeneratedtypes.AlgorithmSuiteIdMemberESDK{ + Value: (Aws_cryptography_materialProviders_AlgorithmSuiteId_ESDK_FromDafny(dataSource.UnwrapOr(nil))), + } + } + if (input.(AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteId)).Is_DBE() { + var dataSource = Wrappers.Companion_Option_.Create_Some_((input.(AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteId)).Dtor_DBE()) + union = &awscryptographymaterialproviderssmithygeneratedtypes.AlgorithmSuiteIdMemberDBE{ + Value: (Aws_cryptography_materialProviders_AlgorithmSuiteId_DBE_FromDafny(dataSource.UnwrapOr(nil))), + } + } + + return union + +} +func Aws_cryptography_materialProviders_InitializeDecryptionMaterialsInput_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[Aws_cryptography_materialProviders_EncryptionContext_key_FromDafny((*val.(dafny.Tuple).IndexInt(0)))] = Aws_cryptography_materialProviders_EncryptionContext_value_FromDafny((*val.(dafny.Tuple).IndexInt(1))) + } + return m + +} +func Aws_cryptography_materialProviders_InitializeDecryptionMaterialsInput_requiredEncryptionContextKeys_FromDafny(input interface{}) []string { + fieldValue := make([]string, 0) + for i := dafny.Iterate(input.(dafny.Sequence)); ; { + val, ok := i() + if !ok { + break + } + fieldValue = append(fieldValue, Aws_cryptography_materialProviders_EncryptionContextKeys_member_FromDafny(val)) + } + return fieldValue +} +func Aws_cryptography_materialProviders_InitializeEncryptionMaterialsInput_algorithmSuiteId_FromDafny(input interface{}) awscryptographymaterialproviderssmithygeneratedtypes.AlgorithmSuiteId { + var union awscryptographymaterialproviderssmithygeneratedtypes.AlgorithmSuiteId + + if (input.(AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteId)).Is_ESDK() { + var dataSource = Wrappers.Companion_Option_.Create_Some_((input.(AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteId)).Dtor_ESDK()) + union = &awscryptographymaterialproviderssmithygeneratedtypes.AlgorithmSuiteIdMemberESDK{ + Value: (Aws_cryptography_materialProviders_AlgorithmSuiteId_ESDK_FromDafny(dataSource.UnwrapOr(nil))), + } + } + if (input.(AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteId)).Is_DBE() { + var dataSource = Wrappers.Companion_Option_.Create_Some_((input.(AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteId)).Dtor_DBE()) + union = &awscryptographymaterialproviderssmithygeneratedtypes.AlgorithmSuiteIdMemberDBE{ + Value: (Aws_cryptography_materialProviders_AlgorithmSuiteId_DBE_FromDafny(dataSource.UnwrapOr(nil))), + } + } + + return union + +} +func Aws_cryptography_materialProviders_InitializeEncryptionMaterialsInput_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[Aws_cryptography_materialProviders_EncryptionContext_key_FromDafny((*val.(dafny.Tuple).IndexInt(0)))] = Aws_cryptography_materialProviders_EncryptionContext_value_FromDafny((*val.(dafny.Tuple).IndexInt(1))) + } + return m + +} +func Aws_cryptography_materialProviders_InitializeEncryptionMaterialsInput_requiredEncryptionContextKeys_FromDafny(input interface{}) []string { + fieldValue := make([]string, 0) + for i := dafny.Iterate(input.(dafny.Sequence)); ; { + val, ok := i() + if !ok { + break + } + fieldValue = append(fieldValue, Aws_cryptography_materialProviders_EncryptionContextKeys_member_FromDafny(val)) + } + return fieldValue +} +func Aws_cryptography_materialProviders_InitializeEncryptionMaterialsInput_signingKey_FromDafny(input interface{}) []byte { + return func() []byte { + b := []byte{} + if input == nil { + return nil + } + for i := dafny.Iterate(input); ; { + val, ok := i() + if !ok { + return b + } else { + b = append(b, val.(byte)) + } + } + }() +} +func Aws_cryptography_materialProviders_InitializeEncryptionMaterialsInput_verificationKey_FromDafny(input interface{}) []byte { + return func() []byte { + b := []byte{} + if input == nil { + return nil + } + for i := dafny.Iterate(input); ; { + val, ok := i() + if !ok { + return b + } else { + b = append(b, val.(byte)) + } + } + }() +} +func Aws_cryptography_materialProviders_ValidateCommitmentPolicyOnDecryptInput_algorithm_FromDafny(input interface{}) awscryptographymaterialproviderssmithygeneratedtypes.AlgorithmSuiteId { + var union awscryptographymaterialproviderssmithygeneratedtypes.AlgorithmSuiteId + + if (input.(AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteId)).Is_ESDK() { + var dataSource = Wrappers.Companion_Option_.Create_Some_((input.(AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteId)).Dtor_ESDK()) + union = &awscryptographymaterialproviderssmithygeneratedtypes.AlgorithmSuiteIdMemberESDK{ + Value: (Aws_cryptography_materialProviders_AlgorithmSuiteId_ESDK_FromDafny(dataSource.UnwrapOr(nil))), + } + } + if (input.(AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteId)).Is_DBE() { + var dataSource = Wrappers.Companion_Option_.Create_Some_((input.(AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteId)).Dtor_DBE()) + union = &awscryptographymaterialproviderssmithygeneratedtypes.AlgorithmSuiteIdMemberDBE{ + Value: (Aws_cryptography_materialProviders_AlgorithmSuiteId_DBE_FromDafny(dataSource.UnwrapOr(nil))), + } + } + + return union + +} +func Aws_cryptography_materialProviders_ValidateCommitmentPolicyOnDecryptInput_commitmentPolicy_FromDafny(input interface{}) awscryptographymaterialproviderssmithygeneratedtypes.CommitmentPolicy { + var union awscryptographymaterialproviderssmithygeneratedtypes.CommitmentPolicy + + if (input.(AwsCryptographyMaterialProvidersTypes.CommitmentPolicy)).Is_ESDK() { + var dataSource = Wrappers.Companion_Option_.Create_Some_((input.(AwsCryptographyMaterialProvidersTypes.CommitmentPolicy)).Dtor_ESDK()) + union = &awscryptographymaterialproviderssmithygeneratedtypes.CommitmentPolicyMemberESDK{ + Value: (Aws_cryptography_materialProviders_CommitmentPolicy_ESDK_FromDafny(dataSource.UnwrapOr(nil))), + } + } + if (input.(AwsCryptographyMaterialProvidersTypes.CommitmentPolicy)).Is_DBE() { + var dataSource = Wrappers.Companion_Option_.Create_Some_((input.(AwsCryptographyMaterialProvidersTypes.CommitmentPolicy)).Dtor_DBE()) + union = &awscryptographymaterialproviderssmithygeneratedtypes.CommitmentPolicyMemberDBE{ + Value: (Aws_cryptography_materialProviders_CommitmentPolicy_DBE_FromDafny(dataSource.UnwrapOr(nil))), + } + } + + return union + +} +func Aws_cryptography_materialProviders_CommitmentPolicy_ESDK_FromDafny(input interface{}) awscryptographymaterialproviderssmithygeneratedtypes.ESDKCommitmentPolicy { + return func() awscryptographymaterialproviderssmithygeneratedtypes.ESDKCommitmentPolicy { + var u awscryptographymaterialproviderssmithygeneratedtypes.ESDKCommitmentPolicy + inputEnum := input.(AwsCryptographyMaterialProvidersTypes.ESDKCommitmentPolicy) + index := -1 + for allEnums := dafny.Iterate(AwsCryptographyMaterialProvidersTypes.CompanionStruct_ESDKCommitmentPolicy_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(AwsCryptographyMaterialProvidersTypes.ESDKCommitmentPolicy).Equals(inputEnum) { + break + } + } + } + + return u.Values()[index] + }() +} +func Aws_cryptography_materialProviders_CommitmentPolicy_DBE_FromDafny(input interface{}) awscryptographymaterialproviderssmithygeneratedtypes.DBECommitmentPolicy { + return func() awscryptographymaterialproviderssmithygeneratedtypes.DBECommitmentPolicy { + var u awscryptographymaterialproviderssmithygeneratedtypes.DBECommitmentPolicy + inputEnum := input.(AwsCryptographyMaterialProvidersTypes.DBECommitmentPolicy) + index := -1 + for allEnums := dafny.Iterate(AwsCryptographyMaterialProvidersTypes.CompanionStruct_DBECommitmentPolicy_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(AwsCryptographyMaterialProvidersTypes.DBECommitmentPolicy).Equals(inputEnum) { + break + } + } + } + + return u.Values()[index] + }() +} +func Aws_cryptography_materialProviders_ValidateCommitmentPolicyOnEncryptInput_algorithm_FromDafny(input interface{}) awscryptographymaterialproviderssmithygeneratedtypes.AlgorithmSuiteId { + var union awscryptographymaterialproviderssmithygeneratedtypes.AlgorithmSuiteId + + if (input.(AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteId)).Is_ESDK() { + var dataSource = Wrappers.Companion_Option_.Create_Some_((input.(AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteId)).Dtor_ESDK()) + union = &awscryptographymaterialproviderssmithygeneratedtypes.AlgorithmSuiteIdMemberESDK{ + Value: (Aws_cryptography_materialProviders_AlgorithmSuiteId_ESDK_FromDafny(dataSource.UnwrapOr(nil))), + } + } + if (input.(AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteId)).Is_DBE() { + var dataSource = Wrappers.Companion_Option_.Create_Some_((input.(AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteId)).Dtor_DBE()) + union = &awscryptographymaterialproviderssmithygeneratedtypes.AlgorithmSuiteIdMemberDBE{ + Value: (Aws_cryptography_materialProviders_AlgorithmSuiteId_DBE_FromDafny(dataSource.UnwrapOr(nil))), + } + } + + return union + +} +func Aws_cryptography_materialProviders_ValidateCommitmentPolicyOnEncryptInput_commitmentPolicy_FromDafny(input interface{}) awscryptographymaterialproviderssmithygeneratedtypes.CommitmentPolicy { + var union awscryptographymaterialproviderssmithygeneratedtypes.CommitmentPolicy + + if (input.(AwsCryptographyMaterialProvidersTypes.CommitmentPolicy)).Is_ESDK() { + var dataSource = Wrappers.Companion_Option_.Create_Some_((input.(AwsCryptographyMaterialProvidersTypes.CommitmentPolicy)).Dtor_ESDK()) + union = &awscryptographymaterialproviderssmithygeneratedtypes.CommitmentPolicyMemberESDK{ + Value: (Aws_cryptography_materialProviders_CommitmentPolicy_ESDK_FromDafny(dataSource.UnwrapOr(nil))), + } + } + if (input.(AwsCryptographyMaterialProvidersTypes.CommitmentPolicy)).Is_DBE() { + var dataSource = Wrappers.Companion_Option_.Create_Some_((input.(AwsCryptographyMaterialProvidersTypes.CommitmentPolicy)).Dtor_DBE()) + union = &awscryptographymaterialproviderssmithygeneratedtypes.CommitmentPolicyMemberDBE{ + Value: (Aws_cryptography_materialProviders_CommitmentPolicy_DBE_FromDafny(dataSource.UnwrapOr(nil))), + } + } + + return union + +} +func Aws_cryptography_materialProviders_ValidDecryptionMaterialsTransitionInput_start_FromDafny(input interface{}) awscryptographymaterialproviderssmithygeneratedtypes.DecryptionMaterials { + return awscryptographymaterialproviderssmithygeneratedtypes.DecryptionMaterials{AlgorithmSuite: Aws_cryptography_materialProviders_DecryptionMaterials_algorithmSuite_FromDafny(input.(AwsCryptographyMaterialProvidersTypes.DecryptionMaterials).Dtor_algorithmSuite()), + EncryptionContext: Aws_cryptography_materialProviders_DecryptionMaterials_encryptionContext_FromDafny(input.(AwsCryptographyMaterialProvidersTypes.DecryptionMaterials).Dtor_encryptionContext()), + RequiredEncryptionContextKeys: Aws_cryptography_materialProviders_DecryptionMaterials_requiredEncryptionContextKeys_FromDafny(input.(AwsCryptographyMaterialProvidersTypes.DecryptionMaterials).Dtor_requiredEncryptionContextKeys()), + PlaintextDataKey: Aws_cryptography_materialProviders_DecryptionMaterials_plaintextDataKey_FromDafny(input.(AwsCryptographyMaterialProvidersTypes.DecryptionMaterials).Dtor_plaintextDataKey().UnwrapOr(nil)), + VerificationKey: Aws_cryptography_materialProviders_DecryptionMaterials_verificationKey_FromDafny(input.(AwsCryptographyMaterialProvidersTypes.DecryptionMaterials).Dtor_verificationKey().UnwrapOr(nil)), + SymmetricSigningKey: Aws_cryptography_materialProviders_DecryptionMaterials_symmetricSigningKey_FromDafny(input.(AwsCryptographyMaterialProvidersTypes.DecryptionMaterials).Dtor_symmetricSigningKey().UnwrapOr(nil)), + } +} +func Aws_cryptography_materialProviders_ValidDecryptionMaterialsTransitionInput_stop_FromDafny(input interface{}) awscryptographymaterialproviderssmithygeneratedtypes.DecryptionMaterials { + return awscryptographymaterialproviderssmithygeneratedtypes.DecryptionMaterials{AlgorithmSuite: Aws_cryptography_materialProviders_DecryptionMaterials_algorithmSuite_FromDafny(input.(AwsCryptographyMaterialProvidersTypes.DecryptionMaterials).Dtor_algorithmSuite()), + EncryptionContext: Aws_cryptography_materialProviders_DecryptionMaterials_encryptionContext_FromDafny(input.(AwsCryptographyMaterialProvidersTypes.DecryptionMaterials).Dtor_encryptionContext()), + RequiredEncryptionContextKeys: Aws_cryptography_materialProviders_DecryptionMaterials_requiredEncryptionContextKeys_FromDafny(input.(AwsCryptographyMaterialProvidersTypes.DecryptionMaterials).Dtor_requiredEncryptionContextKeys()), + PlaintextDataKey: Aws_cryptography_materialProviders_DecryptionMaterials_plaintextDataKey_FromDafny(input.(AwsCryptographyMaterialProvidersTypes.DecryptionMaterials).Dtor_plaintextDataKey().UnwrapOr(nil)), + VerificationKey: Aws_cryptography_materialProviders_DecryptionMaterials_verificationKey_FromDafny(input.(AwsCryptographyMaterialProvidersTypes.DecryptionMaterials).Dtor_verificationKey().UnwrapOr(nil)), + SymmetricSigningKey: Aws_cryptography_materialProviders_DecryptionMaterials_symmetricSigningKey_FromDafny(input.(AwsCryptographyMaterialProvidersTypes.DecryptionMaterials).Dtor_symmetricSigningKey().UnwrapOr(nil)), + } +} +func Aws_cryptography_materialProviders_ValidEncryptionMaterialsTransitionInput_start_FromDafny(input interface{}) awscryptographymaterialproviderssmithygeneratedtypes.EncryptionMaterials { + return awscryptographymaterialproviderssmithygeneratedtypes.EncryptionMaterials{AlgorithmSuite: Aws_cryptography_materialProviders_EncryptionMaterials_algorithmSuite_FromDafny(input.(AwsCryptographyMaterialProvidersTypes.EncryptionMaterials).Dtor_algorithmSuite()), + EncryptionContext: Aws_cryptography_materialProviders_EncryptionMaterials_encryptionContext_FromDafny(input.(AwsCryptographyMaterialProvidersTypes.EncryptionMaterials).Dtor_encryptionContext()), + EncryptedDataKeys: Aws_cryptography_materialProviders_EncryptionMaterials_encryptedDataKeys_FromDafny(input.(AwsCryptographyMaterialProvidersTypes.EncryptionMaterials).Dtor_encryptedDataKeys()), + RequiredEncryptionContextKeys: Aws_cryptography_materialProviders_EncryptionMaterials_requiredEncryptionContextKeys_FromDafny(input.(AwsCryptographyMaterialProvidersTypes.EncryptionMaterials).Dtor_requiredEncryptionContextKeys()), + PlaintextDataKey: Aws_cryptography_materialProviders_EncryptionMaterials_plaintextDataKey_FromDafny(input.(AwsCryptographyMaterialProvidersTypes.EncryptionMaterials).Dtor_plaintextDataKey().UnwrapOr(nil)), + SigningKey: Aws_cryptography_materialProviders_EncryptionMaterials_signingKey_FromDafny(input.(AwsCryptographyMaterialProvidersTypes.EncryptionMaterials).Dtor_signingKey().UnwrapOr(nil)), + SymmetricSigningKeys: Aws_cryptography_materialProviders_EncryptionMaterials_symmetricSigningKeys_FromDafny(input.(AwsCryptographyMaterialProvidersTypes.EncryptionMaterials).Dtor_symmetricSigningKeys().UnwrapOr(nil)), + } +} +func Aws_cryptography_materialProviders_ValidEncryptionMaterialsTransitionInput_stop_FromDafny(input interface{}) awscryptographymaterialproviderssmithygeneratedtypes.EncryptionMaterials { + return awscryptographymaterialproviderssmithygeneratedtypes.EncryptionMaterials{AlgorithmSuite: Aws_cryptography_materialProviders_EncryptionMaterials_algorithmSuite_FromDafny(input.(AwsCryptographyMaterialProvidersTypes.EncryptionMaterials).Dtor_algorithmSuite()), + EncryptionContext: Aws_cryptography_materialProviders_EncryptionMaterials_encryptionContext_FromDafny(input.(AwsCryptographyMaterialProvidersTypes.EncryptionMaterials).Dtor_encryptionContext()), + EncryptedDataKeys: Aws_cryptography_materialProviders_EncryptionMaterials_encryptedDataKeys_FromDafny(input.(AwsCryptographyMaterialProvidersTypes.EncryptionMaterials).Dtor_encryptedDataKeys()), + RequiredEncryptionContextKeys: Aws_cryptography_materialProviders_EncryptionMaterials_requiredEncryptionContextKeys_FromDafny(input.(AwsCryptographyMaterialProvidersTypes.EncryptionMaterials).Dtor_requiredEncryptionContextKeys()), + PlaintextDataKey: Aws_cryptography_materialProviders_EncryptionMaterials_plaintextDataKey_FromDafny(input.(AwsCryptographyMaterialProvidersTypes.EncryptionMaterials).Dtor_plaintextDataKey().UnwrapOr(nil)), + SigningKey: Aws_cryptography_materialProviders_EncryptionMaterials_signingKey_FromDafny(input.(AwsCryptographyMaterialProvidersTypes.EncryptionMaterials).Dtor_signingKey().UnwrapOr(nil)), + SymmetricSigningKeys: Aws_cryptography_materialProviders_EncryptionMaterials_symmetricSigningKeys_FromDafny(input.(AwsCryptographyMaterialProvidersTypes.EncryptionMaterials).Dtor_symmetricSigningKeys().UnwrapOr(nil)), + } +} +func Aws_cryptography_materialProviders_GetBranchKeyIdInput_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[Aws_cryptography_materialProviders_EncryptionContext_key_FromDafny((*val.(dafny.Tuple).IndexInt(0)))] = Aws_cryptography_materialProviders_EncryptionContext_value_FromDafny((*val.(dafny.Tuple).IndexInt(1))) + } + return m + +} +func Aws_cryptography_materialProviders_GetBranchKeyIdOutput_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_materialProviders_GetClientInput_region_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_materialProviders_GetClientOutput_client_FromDafny(input interface{}) *kms.Client { + shim, ok := input.(*KMSwrapped.Shim) + if !ok { + panic("Not able to convert client to native") + } + return shim.Client + +} +func Aws_cryptography_materialProviders_DeleteCacheEntryInput_identifier_FromDafny(input interface{}) []byte { + return func() []byte { + b := []byte{} + if input == nil { + return nil + } + for i := dafny.Iterate(input); ; { + val, ok := i() + if !ok { + return b + } else { + b = append(b, val.(byte)) + } + } + }() +} +func Aws_cryptography_materialProviders_GetCacheEntryInput_identifier_FromDafny(input interface{}) []byte { + return func() []byte { + b := []byte{} + if input == nil { + return nil + } + for i := dafny.Iterate(input); ; { + val, ok := i() + if !ok { + return b + } else { + b = append(b, val.(byte)) + } + } + }() +} +func Aws_cryptography_materialProviders_GetCacheEntryInput_bytesUsed_FromDafny(input interface{}) *int64 { + return func() *int64 { + var b int64 + if input == nil { + return nil + } + b = input.(int64) + return &b + }() +} +func Aws_cryptography_materialProviders_GetCacheEntryOutput_materials_FromDafny(input interface{}) awscryptographymaterialproviderssmithygeneratedtypes.Materials { + var union awscryptographymaterialproviderssmithygeneratedtypes.Materials + + if (input.(AwsCryptographyMaterialProvidersTypes.Materials)).Is_Encryption() { + + union = &awscryptographymaterialproviderssmithygeneratedtypes.MaterialsMemberEncryption{ + Value: (Aws_cryptography_materialProviders_Materials_Encryption_FromDafny((input.(AwsCryptographyMaterialProvidersTypes.Materials)).Dtor_Encryption())), + } + } + if (input.(AwsCryptographyMaterialProvidersTypes.Materials)).Is_Decryption() { + + union = &awscryptographymaterialproviderssmithygeneratedtypes.MaterialsMemberDecryption{ + Value: (Aws_cryptography_materialProviders_Materials_Decryption_FromDafny((input.(AwsCryptographyMaterialProvidersTypes.Materials)).Dtor_Decryption())), + } + } + if (input.(AwsCryptographyMaterialProvidersTypes.Materials)).Is_BranchKey() { + + union = &awscryptographymaterialproviderssmithygeneratedtypes.MaterialsMemberBranchKey{ + Value: (Aws_cryptography_materialProviders_Materials_BranchKey_FromDafny((input.(AwsCryptographyMaterialProvidersTypes.Materials)).Dtor_BranchKey())), + } + } + if (input.(AwsCryptographyMaterialProvidersTypes.Materials)).Is_BeaconKey() { + + union = &awscryptographymaterialproviderssmithygeneratedtypes.MaterialsMemberBeaconKey{ + Value: (Aws_cryptography_materialProviders_Materials_BeaconKey_FromDafny((input.(AwsCryptographyMaterialProvidersTypes.Materials)).Dtor_BeaconKey())), + } + } + + return union + +} +func Aws_cryptography_materialProviders_Materials_Encryption_FromDafny(input interface{}) awscryptographymaterialproviderssmithygeneratedtypes.EncryptionMaterials { + return awscryptographymaterialproviderssmithygeneratedtypes.EncryptionMaterials{AlgorithmSuite: Aws_cryptography_materialProviders_EncryptionMaterials_algorithmSuite_FromDafny(input.(AwsCryptographyMaterialProvidersTypes.EncryptionMaterials).Dtor_algorithmSuite()), + EncryptionContext: Aws_cryptography_materialProviders_EncryptionMaterials_encryptionContext_FromDafny(input.(AwsCryptographyMaterialProvidersTypes.EncryptionMaterials).Dtor_encryptionContext()), + EncryptedDataKeys: Aws_cryptography_materialProviders_EncryptionMaterials_encryptedDataKeys_FromDafny(input.(AwsCryptographyMaterialProvidersTypes.EncryptionMaterials).Dtor_encryptedDataKeys()), + RequiredEncryptionContextKeys: Aws_cryptography_materialProviders_EncryptionMaterials_requiredEncryptionContextKeys_FromDafny(input.(AwsCryptographyMaterialProvidersTypes.EncryptionMaterials).Dtor_requiredEncryptionContextKeys()), + PlaintextDataKey: Aws_cryptography_materialProviders_EncryptionMaterials_plaintextDataKey_FromDafny(input.(AwsCryptographyMaterialProvidersTypes.EncryptionMaterials).Dtor_plaintextDataKey().UnwrapOr(nil)), + SigningKey: Aws_cryptography_materialProviders_EncryptionMaterials_signingKey_FromDafny(input.(AwsCryptographyMaterialProvidersTypes.EncryptionMaterials).Dtor_signingKey().UnwrapOr(nil)), + SymmetricSigningKeys: Aws_cryptography_materialProviders_EncryptionMaterials_symmetricSigningKeys_FromDafny(input.(AwsCryptographyMaterialProvidersTypes.EncryptionMaterials).Dtor_symmetricSigningKeys().UnwrapOr(nil)), + } +} +func Aws_cryptography_materialProviders_Materials_Decryption_FromDafny(input interface{}) awscryptographymaterialproviderssmithygeneratedtypes.DecryptionMaterials { + return awscryptographymaterialproviderssmithygeneratedtypes.DecryptionMaterials{AlgorithmSuite: Aws_cryptography_materialProviders_DecryptionMaterials_algorithmSuite_FromDafny(input.(AwsCryptographyMaterialProvidersTypes.DecryptionMaterials).Dtor_algorithmSuite()), + EncryptionContext: Aws_cryptography_materialProviders_DecryptionMaterials_encryptionContext_FromDafny(input.(AwsCryptographyMaterialProvidersTypes.DecryptionMaterials).Dtor_encryptionContext()), + RequiredEncryptionContextKeys: Aws_cryptography_materialProviders_DecryptionMaterials_requiredEncryptionContextKeys_FromDafny(input.(AwsCryptographyMaterialProvidersTypes.DecryptionMaterials).Dtor_requiredEncryptionContextKeys()), + PlaintextDataKey: Aws_cryptography_materialProviders_DecryptionMaterials_plaintextDataKey_FromDafny(input.(AwsCryptographyMaterialProvidersTypes.DecryptionMaterials).Dtor_plaintextDataKey().UnwrapOr(nil)), + VerificationKey: Aws_cryptography_materialProviders_DecryptionMaterials_verificationKey_FromDafny(input.(AwsCryptographyMaterialProvidersTypes.DecryptionMaterials).Dtor_verificationKey().UnwrapOr(nil)), + SymmetricSigningKey: Aws_cryptography_materialProviders_DecryptionMaterials_symmetricSigningKey_FromDafny(input.(AwsCryptographyMaterialProvidersTypes.DecryptionMaterials).Dtor_symmetricSigningKey().UnwrapOr(nil)), + } +} +func Aws_cryptography_materialProviders_Materials_BranchKey_FromDafny(input interface{}) awscryptographykeystoresmithygeneratedtypes.BranchKeyMaterials { + return awscryptographykeystoresmithygeneratedtypes.BranchKeyMaterials{BranchKeyIdentifier: awscryptographykeystoresmithygenerated.Aws_cryptography_keyStore_BranchKeyMaterials_branchKeyIdentifier_FromDafny(input.(AwsCryptographyKeyStoreTypes.BranchKeyMaterials).Dtor_branchKeyIdentifier()), + BranchKeyVersion: awscryptographykeystoresmithygenerated.Aws_cryptography_keyStore_BranchKeyMaterials_branchKeyVersion_FromDafny(input.(AwsCryptographyKeyStoreTypes.BranchKeyMaterials).Dtor_branchKeyVersion()), + EncryptionContext: awscryptographykeystoresmithygenerated.Aws_cryptography_keyStore_BranchKeyMaterials_encryptionContext_FromDafny(input.(AwsCryptographyKeyStoreTypes.BranchKeyMaterials).Dtor_encryptionContext()), + BranchKey: awscryptographykeystoresmithygenerated.Aws_cryptography_keyStore_BranchKeyMaterials_branchKey_FromDafny(input.(AwsCryptographyKeyStoreTypes.BranchKeyMaterials).Dtor_branchKey()), + } +} +func Aws_cryptography_materialProviders_Materials_BeaconKey_FromDafny(input interface{}) awscryptographykeystoresmithygeneratedtypes.BeaconKeyMaterials { + return awscryptographykeystoresmithygeneratedtypes.BeaconKeyMaterials{BeaconKeyIdentifier: awscryptographykeystoresmithygenerated.Aws_cryptography_keyStore_BeaconKeyMaterials_beaconKeyIdentifier_FromDafny(input.(AwsCryptographyKeyStoreTypes.BeaconKeyMaterials).Dtor_beaconKeyIdentifier()), + EncryptionContext: awscryptographykeystoresmithygenerated.Aws_cryptography_keyStore_BeaconKeyMaterials_encryptionContext_FromDafny(input.(AwsCryptographyKeyStoreTypes.BeaconKeyMaterials).Dtor_encryptionContext()), + BeaconKey: awscryptographykeystoresmithygenerated.Aws_cryptography_keyStore_BeaconKeyMaterials_beaconKey_FromDafny(input.(AwsCryptographyKeyStoreTypes.BeaconKeyMaterials).Dtor_beaconKey().UnwrapOr(nil)), + HmacKeys: awscryptographykeystoresmithygenerated.Aws_cryptography_keyStore_BeaconKeyMaterials_hmacKeys_FromDafny(input.(AwsCryptographyKeyStoreTypes.BeaconKeyMaterials).Dtor_hmacKeys().UnwrapOr(nil)), + } +} +func Aws_cryptography_materialProviders_GetCacheEntryOutput_creationTime_FromDafny(input interface{}) int64 { + return func() int64 { + var b = input.(int64) + return b + }() + +} +func Aws_cryptography_materialProviders_GetCacheEntryOutput_expiryTime_FromDafny(input interface{}) int64 { + return func() int64 { + var b = input.(int64) + return b + }() + +} +func Aws_cryptography_materialProviders_GetCacheEntryOutput_messagesUsed_FromDafny(input interface{}) int32 { + return func() int32 { + var b = input.(int32) + return b + }() +} +func Aws_cryptography_materialProviders_GetCacheEntryOutput_bytesUsed_FromDafny(input interface{}) int32 { + return func() int32 { + var b = input.(int32) + return b + }() +} +func Aws_cryptography_materialProviders_PutCacheEntryInput_identifier_FromDafny(input interface{}) []byte { + return func() []byte { + b := []byte{} + if input == nil { + return nil + } + for i := dafny.Iterate(input); ; { + val, ok := i() + if !ok { + return b + } else { + b = append(b, val.(byte)) + } + } + }() +} +func Aws_cryptography_materialProviders_PutCacheEntryInput_materials_FromDafny(input interface{}) awscryptographymaterialproviderssmithygeneratedtypes.Materials { + var union awscryptographymaterialproviderssmithygeneratedtypes.Materials + + if (input.(AwsCryptographyMaterialProvidersTypes.Materials)).Is_Encryption() { + + union = &awscryptographymaterialproviderssmithygeneratedtypes.MaterialsMemberEncryption{ + Value: (Aws_cryptography_materialProviders_Materials_Encryption_FromDafny((input.(AwsCryptographyMaterialProvidersTypes.Materials)).Dtor_Encryption())), + } + } + if (input.(AwsCryptographyMaterialProvidersTypes.Materials)).Is_Decryption() { + + union = &awscryptographymaterialproviderssmithygeneratedtypes.MaterialsMemberDecryption{ + Value: (Aws_cryptography_materialProviders_Materials_Decryption_FromDafny((input.(AwsCryptographyMaterialProvidersTypes.Materials)).Dtor_Decryption())), + } + } + if (input.(AwsCryptographyMaterialProvidersTypes.Materials)).Is_BranchKey() { + + union = &awscryptographymaterialproviderssmithygeneratedtypes.MaterialsMemberBranchKey{ + Value: (Aws_cryptography_materialProviders_Materials_BranchKey_FromDafny((input.(AwsCryptographyMaterialProvidersTypes.Materials)).Dtor_BranchKey())), + } + } + if (input.(AwsCryptographyMaterialProvidersTypes.Materials)).Is_BeaconKey() { + + union = &awscryptographymaterialproviderssmithygeneratedtypes.MaterialsMemberBeaconKey{ + Value: (Aws_cryptography_materialProviders_Materials_BeaconKey_FromDafny((input.(AwsCryptographyMaterialProvidersTypes.Materials)).Dtor_BeaconKey())), + } + } + + return union + +} +func Aws_cryptography_materialProviders_PutCacheEntryInput_creationTime_FromDafny(input interface{}) int64 { + return func() int64 { + var b = input.(int64) + return b + }() + +} +func Aws_cryptography_materialProviders_PutCacheEntryInput_expiryTime_FromDafny(input interface{}) int64 { + return func() int64 { + var b = input.(int64) + return b + }() + +} +func Aws_cryptography_materialProviders_PutCacheEntryInput_messagesUsed_FromDafny(input interface{}) *int32 { + return func() *int32 { + var b int32 + if input == nil { + return nil + } + b = input.(int32) + return &b + }() +} +func Aws_cryptography_materialProviders_PutCacheEntryInput_bytesUsed_FromDafny(input interface{}) *int32 { + return func() *int32 { + var b int32 + if input == nil { + return nil + } + b = input.(int32) + return &b + }() +} +func Aws_cryptography_materialProviders_UpdateUsageMetadataInput_identifier_FromDafny(input interface{}) []byte { + return func() []byte { + b := []byte{} + if input == nil { + return nil + } + for i := dafny.Iterate(input); ; { + val, ok := i() + if !ok { + return b + } else { + b = append(b, val.(byte)) + } + } + }() +} +func Aws_cryptography_materialProviders_UpdateUsageMetadataInput_bytesUsed_FromDafny(input interface{}) int32 { + return func() int32 { + var b = input.(int32) + return b + }() +} +func Aws_cryptography_materialProviders_DecryptMaterialsInput_algorithmSuiteId_FromDafny(input interface{}) awscryptographymaterialproviderssmithygeneratedtypes.AlgorithmSuiteId { + var union awscryptographymaterialproviderssmithygeneratedtypes.AlgorithmSuiteId + + if (input.(AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteId)).Is_ESDK() { + var dataSource = Wrappers.Companion_Option_.Create_Some_((input.(AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteId)).Dtor_ESDK()) + union = &awscryptographymaterialproviderssmithygeneratedtypes.AlgorithmSuiteIdMemberESDK{ + Value: (Aws_cryptography_materialProviders_AlgorithmSuiteId_ESDK_FromDafny(dataSource.UnwrapOr(nil))), + } + } + if (input.(AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteId)).Is_DBE() { + var dataSource = Wrappers.Companion_Option_.Create_Some_((input.(AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteId)).Dtor_DBE()) + union = &awscryptographymaterialproviderssmithygeneratedtypes.AlgorithmSuiteIdMemberDBE{ + Value: (Aws_cryptography_materialProviders_AlgorithmSuiteId_DBE_FromDafny(dataSource.UnwrapOr(nil))), + } + } + + return union + +} +func Aws_cryptography_materialProviders_DecryptMaterialsInput_commitmentPolicy_FromDafny(input interface{}) awscryptographymaterialproviderssmithygeneratedtypes.CommitmentPolicy { + var union awscryptographymaterialproviderssmithygeneratedtypes.CommitmentPolicy + + if (input.(AwsCryptographyMaterialProvidersTypes.CommitmentPolicy)).Is_ESDK() { + var dataSource = Wrappers.Companion_Option_.Create_Some_((input.(AwsCryptographyMaterialProvidersTypes.CommitmentPolicy)).Dtor_ESDK()) + union = &awscryptographymaterialproviderssmithygeneratedtypes.CommitmentPolicyMemberESDK{ + Value: (Aws_cryptography_materialProviders_CommitmentPolicy_ESDK_FromDafny(dataSource.UnwrapOr(nil))), + } + } + if (input.(AwsCryptographyMaterialProvidersTypes.CommitmentPolicy)).Is_DBE() { + var dataSource = Wrappers.Companion_Option_.Create_Some_((input.(AwsCryptographyMaterialProvidersTypes.CommitmentPolicy)).Dtor_DBE()) + union = &awscryptographymaterialproviderssmithygeneratedtypes.CommitmentPolicyMemberDBE{ + Value: (Aws_cryptography_materialProviders_CommitmentPolicy_DBE_FromDafny(dataSource.UnwrapOr(nil))), + } + } + + return union + +} +func Aws_cryptography_materialProviders_DecryptMaterialsInput_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, Aws_cryptography_materialProviders_EncryptedDataKeyList_member_FromDafny(val)) + } + return fieldValue +} +func Aws_cryptography_materialProviders_DecryptMaterialsInput_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[Aws_cryptography_materialProviders_EncryptionContext_key_FromDafny((*val.(dafny.Tuple).IndexInt(0)))] = Aws_cryptography_materialProviders_EncryptionContext_value_FromDafny((*val.(dafny.Tuple).IndexInt(1))) + } + return m + +} +func Aws_cryptography_materialProviders_DecryptMaterialsInput_reproducedEncryptionContext_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_materialProviders_EncryptionContext_key_FromDafny((*val.(dafny.Tuple).IndexInt(0)))] = Aws_cryptography_materialProviders_EncryptionContext_value_FromDafny((*val.(dafny.Tuple).IndexInt(1))) + } + return m + +} +func Aws_cryptography_materialProviders_DecryptMaterialsOutput_decryptionMaterials_FromDafny(input interface{}) awscryptographymaterialproviderssmithygeneratedtypes.DecryptionMaterials { + return awscryptographymaterialproviderssmithygeneratedtypes.DecryptionMaterials{AlgorithmSuite: Aws_cryptography_materialProviders_DecryptionMaterials_algorithmSuite_FromDafny(input.(AwsCryptographyMaterialProvidersTypes.DecryptionMaterials).Dtor_algorithmSuite()), + EncryptionContext: Aws_cryptography_materialProviders_DecryptionMaterials_encryptionContext_FromDafny(input.(AwsCryptographyMaterialProvidersTypes.DecryptionMaterials).Dtor_encryptionContext()), + RequiredEncryptionContextKeys: Aws_cryptography_materialProviders_DecryptionMaterials_requiredEncryptionContextKeys_FromDafny(input.(AwsCryptographyMaterialProvidersTypes.DecryptionMaterials).Dtor_requiredEncryptionContextKeys()), + PlaintextDataKey: Aws_cryptography_materialProviders_DecryptionMaterials_plaintextDataKey_FromDafny(input.(AwsCryptographyMaterialProvidersTypes.DecryptionMaterials).Dtor_plaintextDataKey().UnwrapOr(nil)), + VerificationKey: Aws_cryptography_materialProviders_DecryptionMaterials_verificationKey_FromDafny(input.(AwsCryptographyMaterialProvidersTypes.DecryptionMaterials).Dtor_verificationKey().UnwrapOr(nil)), + SymmetricSigningKey: Aws_cryptography_materialProviders_DecryptionMaterials_symmetricSigningKey_FromDafny(input.(AwsCryptographyMaterialProvidersTypes.DecryptionMaterials).Dtor_symmetricSigningKey().UnwrapOr(nil)), + } +} +func Aws_cryptography_materialProviders_GetEncryptionMaterialsInput_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[Aws_cryptography_materialProviders_EncryptionContext_key_FromDafny((*val.(dafny.Tuple).IndexInt(0)))] = Aws_cryptography_materialProviders_EncryptionContext_value_FromDafny((*val.(dafny.Tuple).IndexInt(1))) + } + return m + +} +func Aws_cryptography_materialProviders_GetEncryptionMaterialsInput_commitmentPolicy_FromDafny(input interface{}) awscryptographymaterialproviderssmithygeneratedtypes.CommitmentPolicy { + var union awscryptographymaterialproviderssmithygeneratedtypes.CommitmentPolicy + + if (input.(AwsCryptographyMaterialProvidersTypes.CommitmentPolicy)).Is_ESDK() { + var dataSource = Wrappers.Companion_Option_.Create_Some_((input.(AwsCryptographyMaterialProvidersTypes.CommitmentPolicy)).Dtor_ESDK()) + union = &awscryptographymaterialproviderssmithygeneratedtypes.CommitmentPolicyMemberESDK{ + Value: (Aws_cryptography_materialProviders_CommitmentPolicy_ESDK_FromDafny(dataSource.UnwrapOr(nil))), + } + } + if (input.(AwsCryptographyMaterialProvidersTypes.CommitmentPolicy)).Is_DBE() { + var dataSource = Wrappers.Companion_Option_.Create_Some_((input.(AwsCryptographyMaterialProvidersTypes.CommitmentPolicy)).Dtor_DBE()) + union = &awscryptographymaterialproviderssmithygeneratedtypes.CommitmentPolicyMemberDBE{ + Value: (Aws_cryptography_materialProviders_CommitmentPolicy_DBE_FromDafny(dataSource.UnwrapOr(nil))), + } + } + + return union + +} +func Aws_cryptography_materialProviders_GetEncryptionMaterialsInput_algorithmSuiteId_FromDafny(input interface{}) awscryptographymaterialproviderssmithygeneratedtypes.AlgorithmSuiteId { + var union awscryptographymaterialproviderssmithygeneratedtypes.AlgorithmSuiteId + if input == nil { + return nil + } + + if (input.(AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteId)).Is_ESDK() { + var dataSource = Wrappers.Companion_Option_.Create_Some_((input.(AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteId)).Dtor_ESDK()) + union = &awscryptographymaterialproviderssmithygeneratedtypes.AlgorithmSuiteIdMemberESDK{ + Value: (Aws_cryptography_materialProviders_AlgorithmSuiteId_ESDK_FromDafny(dataSource.UnwrapOr(nil))), + } + } + if (input.(AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteId)).Is_DBE() { + var dataSource = Wrappers.Companion_Option_.Create_Some_((input.(AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteId)).Dtor_DBE()) + union = &awscryptographymaterialproviderssmithygeneratedtypes.AlgorithmSuiteIdMemberDBE{ + Value: (Aws_cryptography_materialProviders_AlgorithmSuiteId_DBE_FromDafny(dataSource.UnwrapOr(nil))), + } + } + + return union + +} +func Aws_cryptography_materialProviders_GetEncryptionMaterialsInput_maxPlaintextLength_FromDafny(input interface{}) *int64 { + return func() *int64 { + var b int64 + if input == nil { + return nil + } + b = input.(int64) + return &b + }() +} +func Aws_cryptography_materialProviders_GetEncryptionMaterialsInput_requiredEncryptionContextKeys_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, Aws_cryptography_materialProviders_EncryptionContextKeys_member_FromDafny(val)) + } + return fieldValue +} +func Aws_cryptography_materialProviders_GetEncryptionMaterialsOutput_encryptionMaterials_FromDafny(input interface{}) awscryptographymaterialproviderssmithygeneratedtypes.EncryptionMaterials { + return awscryptographymaterialproviderssmithygeneratedtypes.EncryptionMaterials{AlgorithmSuite: Aws_cryptography_materialProviders_EncryptionMaterials_algorithmSuite_FromDafny(input.(AwsCryptographyMaterialProvidersTypes.EncryptionMaterials).Dtor_algorithmSuite()), + EncryptionContext: Aws_cryptography_materialProviders_EncryptionMaterials_encryptionContext_FromDafny(input.(AwsCryptographyMaterialProvidersTypes.EncryptionMaterials).Dtor_encryptionContext()), + EncryptedDataKeys: Aws_cryptography_materialProviders_EncryptionMaterials_encryptedDataKeys_FromDafny(input.(AwsCryptographyMaterialProvidersTypes.EncryptionMaterials).Dtor_encryptedDataKeys()), + RequiredEncryptionContextKeys: Aws_cryptography_materialProviders_EncryptionMaterials_requiredEncryptionContextKeys_FromDafny(input.(AwsCryptographyMaterialProvidersTypes.EncryptionMaterials).Dtor_requiredEncryptionContextKeys()), + PlaintextDataKey: Aws_cryptography_materialProviders_EncryptionMaterials_plaintextDataKey_FromDafny(input.(AwsCryptographyMaterialProvidersTypes.EncryptionMaterials).Dtor_plaintextDataKey().UnwrapOr(nil)), + SigningKey: Aws_cryptography_materialProviders_EncryptionMaterials_signingKey_FromDafny(input.(AwsCryptographyMaterialProvidersTypes.EncryptionMaterials).Dtor_signingKey().UnwrapOr(nil)), + SymmetricSigningKeys: Aws_cryptography_materialProviders_EncryptionMaterials_symmetricSigningKeys_FromDafny(input.(AwsCryptographyMaterialProvidersTypes.EncryptionMaterials).Dtor_symmetricSigningKeys().UnwrapOr(nil)), + } +} +func Aws_cryptography_materialProviders_OnDecryptInput_materials_FromDafny(input interface{}) awscryptographymaterialproviderssmithygeneratedtypes.DecryptionMaterials { + return awscryptographymaterialproviderssmithygeneratedtypes.DecryptionMaterials{AlgorithmSuite: Aws_cryptography_materialProviders_DecryptionMaterials_algorithmSuite_FromDafny(input.(AwsCryptographyMaterialProvidersTypes.DecryptionMaterials).Dtor_algorithmSuite()), + EncryptionContext: Aws_cryptography_materialProviders_DecryptionMaterials_encryptionContext_FromDafny(input.(AwsCryptographyMaterialProvidersTypes.DecryptionMaterials).Dtor_encryptionContext()), + RequiredEncryptionContextKeys: Aws_cryptography_materialProviders_DecryptionMaterials_requiredEncryptionContextKeys_FromDafny(input.(AwsCryptographyMaterialProvidersTypes.DecryptionMaterials).Dtor_requiredEncryptionContextKeys()), + PlaintextDataKey: Aws_cryptography_materialProviders_DecryptionMaterials_plaintextDataKey_FromDafny(input.(AwsCryptographyMaterialProvidersTypes.DecryptionMaterials).Dtor_plaintextDataKey().UnwrapOr(nil)), + VerificationKey: Aws_cryptography_materialProviders_DecryptionMaterials_verificationKey_FromDafny(input.(AwsCryptographyMaterialProvidersTypes.DecryptionMaterials).Dtor_verificationKey().UnwrapOr(nil)), + SymmetricSigningKey: Aws_cryptography_materialProviders_DecryptionMaterials_symmetricSigningKey_FromDafny(input.(AwsCryptographyMaterialProvidersTypes.DecryptionMaterials).Dtor_symmetricSigningKey().UnwrapOr(nil)), + } +} +func Aws_cryptography_materialProviders_OnDecryptInput_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, Aws_cryptography_materialProviders_EncryptedDataKeyList_member_FromDafny(val)) + } + return fieldValue +} +func Aws_cryptography_materialProviders_OnDecryptOutput_materials_FromDafny(input interface{}) awscryptographymaterialproviderssmithygeneratedtypes.DecryptionMaterials { + return awscryptographymaterialproviderssmithygeneratedtypes.DecryptionMaterials{AlgorithmSuite: Aws_cryptography_materialProviders_DecryptionMaterials_algorithmSuite_FromDafny(input.(AwsCryptographyMaterialProvidersTypes.DecryptionMaterials).Dtor_algorithmSuite()), + EncryptionContext: Aws_cryptography_materialProviders_DecryptionMaterials_encryptionContext_FromDafny(input.(AwsCryptographyMaterialProvidersTypes.DecryptionMaterials).Dtor_encryptionContext()), + RequiredEncryptionContextKeys: Aws_cryptography_materialProviders_DecryptionMaterials_requiredEncryptionContextKeys_FromDafny(input.(AwsCryptographyMaterialProvidersTypes.DecryptionMaterials).Dtor_requiredEncryptionContextKeys()), + PlaintextDataKey: Aws_cryptography_materialProviders_DecryptionMaterials_plaintextDataKey_FromDafny(input.(AwsCryptographyMaterialProvidersTypes.DecryptionMaterials).Dtor_plaintextDataKey().UnwrapOr(nil)), + VerificationKey: Aws_cryptography_materialProviders_DecryptionMaterials_verificationKey_FromDafny(input.(AwsCryptographyMaterialProvidersTypes.DecryptionMaterials).Dtor_verificationKey().UnwrapOr(nil)), + SymmetricSigningKey: Aws_cryptography_materialProviders_DecryptionMaterials_symmetricSigningKey_FromDafny(input.(AwsCryptographyMaterialProvidersTypes.DecryptionMaterials).Dtor_symmetricSigningKey().UnwrapOr(nil)), + } +} +func Aws_cryptography_materialProviders_OnEncryptInput_materials_FromDafny(input interface{}) awscryptographymaterialproviderssmithygeneratedtypes.EncryptionMaterials { + return awscryptographymaterialproviderssmithygeneratedtypes.EncryptionMaterials{AlgorithmSuite: Aws_cryptography_materialProviders_EncryptionMaterials_algorithmSuite_FromDafny(input.(AwsCryptographyMaterialProvidersTypes.EncryptionMaterials).Dtor_algorithmSuite()), + EncryptionContext: Aws_cryptography_materialProviders_EncryptionMaterials_encryptionContext_FromDafny(input.(AwsCryptographyMaterialProvidersTypes.EncryptionMaterials).Dtor_encryptionContext()), + EncryptedDataKeys: Aws_cryptography_materialProviders_EncryptionMaterials_encryptedDataKeys_FromDafny(input.(AwsCryptographyMaterialProvidersTypes.EncryptionMaterials).Dtor_encryptedDataKeys()), + RequiredEncryptionContextKeys: Aws_cryptography_materialProviders_EncryptionMaterials_requiredEncryptionContextKeys_FromDafny(input.(AwsCryptographyMaterialProvidersTypes.EncryptionMaterials).Dtor_requiredEncryptionContextKeys()), + PlaintextDataKey: Aws_cryptography_materialProviders_EncryptionMaterials_plaintextDataKey_FromDafny(input.(AwsCryptographyMaterialProvidersTypes.EncryptionMaterials).Dtor_plaintextDataKey().UnwrapOr(nil)), + SigningKey: Aws_cryptography_materialProviders_EncryptionMaterials_signingKey_FromDafny(input.(AwsCryptographyMaterialProvidersTypes.EncryptionMaterials).Dtor_signingKey().UnwrapOr(nil)), + SymmetricSigningKeys: Aws_cryptography_materialProviders_EncryptionMaterials_symmetricSigningKeys_FromDafny(input.(AwsCryptographyMaterialProvidersTypes.EncryptionMaterials).Dtor_symmetricSigningKeys().UnwrapOr(nil)), + } +} +func Aws_cryptography_materialProviders_OnEncryptOutput_materials_FromDafny(input interface{}) awscryptographymaterialproviderssmithygeneratedtypes.EncryptionMaterials { + return awscryptographymaterialproviderssmithygeneratedtypes.EncryptionMaterials{AlgorithmSuite: Aws_cryptography_materialProviders_EncryptionMaterials_algorithmSuite_FromDafny(input.(AwsCryptographyMaterialProvidersTypes.EncryptionMaterials).Dtor_algorithmSuite()), + EncryptionContext: Aws_cryptography_materialProviders_EncryptionMaterials_encryptionContext_FromDafny(input.(AwsCryptographyMaterialProvidersTypes.EncryptionMaterials).Dtor_encryptionContext()), + EncryptedDataKeys: Aws_cryptography_materialProviders_EncryptionMaterials_encryptedDataKeys_FromDafny(input.(AwsCryptographyMaterialProvidersTypes.EncryptionMaterials).Dtor_encryptedDataKeys()), + RequiredEncryptionContextKeys: Aws_cryptography_materialProviders_EncryptionMaterials_requiredEncryptionContextKeys_FromDafny(input.(AwsCryptographyMaterialProvidersTypes.EncryptionMaterials).Dtor_requiredEncryptionContextKeys()), + PlaintextDataKey: Aws_cryptography_materialProviders_EncryptionMaterials_plaintextDataKey_FromDafny(input.(AwsCryptographyMaterialProvidersTypes.EncryptionMaterials).Dtor_plaintextDataKey().UnwrapOr(nil)), + SigningKey: Aws_cryptography_materialProviders_EncryptionMaterials_signingKey_FromDafny(input.(AwsCryptographyMaterialProvidersTypes.EncryptionMaterials).Dtor_signingKey().UnwrapOr(nil)), + SymmetricSigningKeys: Aws_cryptography_materialProviders_EncryptionMaterials_symmetricSigningKeys_FromDafny(input.(AwsCryptographyMaterialProvidersTypes.EncryptionMaterials).Dtor_symmetricSigningKeys().UnwrapOr(nil)), + } +} +func Aws_cryptography_materialProviders_AwsCryptographicMaterialProvidersException_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_materialProviders_EntryAlreadyExists_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_materialProviders_EntryDoesNotExist_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_materialProviders_InFlightTTLExceeded_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_materialProviders_InvalidAlgorithmSuiteInfo_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_materialProviders_InvalidAlgorithmSuiteInfoOnDecrypt_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_materialProviders_InvalidAlgorithmSuiteInfoOnEncrypt_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_materialProviders_InvalidDecryptionMaterials_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_materialProviders_InvalidDecryptionMaterialsTransition_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_materialProviders_InvalidEncryptionMaterials_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_materialProviders_InvalidEncryptionMaterialsTransition_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_materialProviders_StaticConfigurations_AWS_KMS_ECDH_FromDafny(input interface{}) awscryptographymaterialproviderssmithygeneratedtypes.KmsEcdhStaticConfigurations { + var union awscryptographymaterialproviderssmithygeneratedtypes.KmsEcdhStaticConfigurations + + if (input.(AwsCryptographyMaterialProvidersTypes.KmsEcdhStaticConfigurations)).Is_KmsPublicKeyDiscovery() { + + union = &awscryptographymaterialproviderssmithygeneratedtypes.KmsEcdhStaticConfigurationsMemberKmsPublicKeyDiscovery{ + Value: (Aws_cryptography_materialProviders_KmsEcdhStaticConfigurations_KmsPublicKeyDiscovery_FromDafny((input.(AwsCryptographyMaterialProvidersTypes.KmsEcdhStaticConfigurations)).Dtor_KmsPublicKeyDiscovery())), + } + } + if (input.(AwsCryptographyMaterialProvidersTypes.KmsEcdhStaticConfigurations)).Is_KmsPrivateKeyToStaticPublicKey() { + + union = &awscryptographymaterialproviderssmithygeneratedtypes.KmsEcdhStaticConfigurationsMemberKmsPrivateKeyToStaticPublicKey{ + Value: (Aws_cryptography_materialProviders_KmsEcdhStaticConfigurations_KmsPrivateKeyToStaticPublicKey_FromDafny((input.(AwsCryptographyMaterialProvidersTypes.KmsEcdhStaticConfigurations)).Dtor_KmsPrivateKeyToStaticPublicKey())), + } + } + + return union + +} +func Aws_cryptography_materialProviders_StaticConfigurations_RAW_ECDH_FromDafny(input interface{}) awscryptographymaterialproviderssmithygeneratedtypes.RawEcdhStaticConfigurations { + var union awscryptographymaterialproviderssmithygeneratedtypes.RawEcdhStaticConfigurations + + if (input.(AwsCryptographyMaterialProvidersTypes.RawEcdhStaticConfigurations)).Is_PublicKeyDiscovery() { + + union = &awscryptographymaterialproviderssmithygeneratedtypes.RawEcdhStaticConfigurationsMemberPublicKeyDiscovery{ + Value: (Aws_cryptography_materialProviders_RawEcdhStaticConfigurations_PublicKeyDiscovery_FromDafny((input.(AwsCryptographyMaterialProvidersTypes.RawEcdhStaticConfigurations)).Dtor_PublicKeyDiscovery())), + } + } + if (input.(AwsCryptographyMaterialProvidersTypes.RawEcdhStaticConfigurations)).Is_RawPrivateKeyToStaticPublicKey() { + + union = &awscryptographymaterialproviderssmithygeneratedtypes.RawEcdhStaticConfigurationsMemberRawPrivateKeyToStaticPublicKey{ + Value: (Aws_cryptography_materialProviders_RawEcdhStaticConfigurations_RawPrivateKeyToStaticPublicKey_FromDafny((input.(AwsCryptographyMaterialProvidersTypes.RawEcdhStaticConfigurations)).Dtor_RawPrivateKeyToStaticPublicKey())), + } + } + if (input.(AwsCryptographyMaterialProvidersTypes.RawEcdhStaticConfigurations)).Is_EphemeralPrivateKeyToStaticPublicKey() { + + union = &awscryptographymaterialproviderssmithygeneratedtypes.RawEcdhStaticConfigurationsMemberEphemeralPrivateKeyToStaticPublicKey{ + Value: (Aws_cryptography_materialProviders_RawEcdhStaticConfigurations_EphemeralPrivateKeyToStaticPublicKey_FromDafny((input.(AwsCryptographyMaterialProvidersTypes.RawEcdhStaticConfigurations)).Dtor_EphemeralPrivateKeyToStaticPublicKey())), + } + } + + return union + +} +func Aws_cryptography_materialProviders_KeyAgreementScheme_StaticConfiguration_FromDafny(input interface{}) awscryptographymaterialproviderssmithygeneratedtypes.StaticConfigurations { + var union awscryptographymaterialproviderssmithygeneratedtypes.StaticConfigurations + + if (input.(AwsCryptographyMaterialProvidersTypes.StaticConfigurations)).Is_AWS__KMS__ECDH() { + var dataSource = Wrappers.Companion_Option_.Create_Some_((input.(AwsCryptographyMaterialProvidersTypes.StaticConfigurations)).Dtor_AWS__KMS__ECDH()) + union = &awscryptographymaterialproviderssmithygeneratedtypes.StaticConfigurationsMemberAWS_KMS_ECDH{ + Value: (Aws_cryptography_materialProviders_StaticConfigurations_AWS_KMS_ECDH_FromDafny(dataSource.UnwrapOr(nil))), + } + } + if (input.(AwsCryptographyMaterialProvidersTypes.StaticConfigurations)).Is_RAW__ECDH() { + var dataSource = Wrappers.Companion_Option_.Create_Some_((input.(AwsCryptographyMaterialProvidersTypes.StaticConfigurations)).Dtor_RAW__ECDH()) + union = &awscryptographymaterialproviderssmithygeneratedtypes.StaticConfigurationsMemberRAW_ECDH{ + Value: (Aws_cryptography_materialProviders_StaticConfigurations_RAW_ECDH_FromDafny(dataSource.UnwrapOr(nil))), + } + } + + return union + +} diff --git a/customer-preview/mpl/awscryptographymaterialproviderssmithygeneratedtypes/enums.go b/customer-preview/mpl/awscryptographymaterialproviderssmithygeneratedtypes/enums.go new file mode 100644 index 000000000..147df8a84 --- /dev/null +++ b/customer-preview/mpl/awscryptographymaterialproviderssmithygeneratedtypes/enums.go @@ -0,0 +1,127 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package awscryptographymaterialproviderssmithygeneratedtypes + +type AesWrappingAlg string + +const ( + AesWrappingAlgAlgAes128GcmIv12Tag16 AesWrappingAlg = "ALG_AES128_GCM_IV12_TAG16" + AesWrappingAlgAlgAes192GcmIv12Tag16 AesWrappingAlg = "ALG_AES192_GCM_IV12_TAG16" + AesWrappingAlgAlgAes256GcmIv12Tag16 AesWrappingAlg = "ALG_AES256_GCM_IV12_TAG16" +) + +func (AesWrappingAlg) Values() []AesWrappingAlg { + return []AesWrappingAlg{ + "ALG_AES128_GCM_IV12_TAG16", + "ALG_AES192_GCM_IV12_TAG16", + "ALG_AES256_GCM_IV12_TAG16", + } +} + +type DBEAlgorithmSuiteId string + +const ( + DBEAlgorithmSuiteIdAlgAes256GcmHkdfSha512CommitKeySymsigHmacSha384 DBEAlgorithmSuiteId = "0x6700" + DBEAlgorithmSuiteIdAlgAes256GcmHkdfSha512CommitKeyEcdsaP384SymsigHmacSha384 DBEAlgorithmSuiteId = "0x6701" +) + +func (DBEAlgorithmSuiteId) Values() []DBEAlgorithmSuiteId { + return []DBEAlgorithmSuiteId{ + "0x6700", + "0x6701", + } +} + +type ESDKAlgorithmSuiteId string + +const ( + ESDKAlgorithmSuiteIdAlgAes128GcmIv12Tag16NoKdf ESDKAlgorithmSuiteId = "0x0014" + ESDKAlgorithmSuiteIdAlgAes192GcmIv12Tag16NoKdf ESDKAlgorithmSuiteId = "0x0046" + ESDKAlgorithmSuiteIdAlgAes256GcmIv12Tag16NoKdf ESDKAlgorithmSuiteId = "0x0078" + ESDKAlgorithmSuiteIdAlgAes128GcmIv12Tag16HkdfSha256 ESDKAlgorithmSuiteId = "0x0114" + ESDKAlgorithmSuiteIdAlgAes192GcmIv12Tag16HkdfSha256 ESDKAlgorithmSuiteId = "0x0146" + ESDKAlgorithmSuiteIdAlgAes256GcmIv12Tag16HkdfSha256 ESDKAlgorithmSuiteId = "0x0178" + ESDKAlgorithmSuiteIdAlgAes128GcmIv12Tag16HkdfSha256EcdsaP256 ESDKAlgorithmSuiteId = "0x0214" + ESDKAlgorithmSuiteIdAlgAes192GcmIv12Tag16HkdfSha384EcdsaP384 ESDKAlgorithmSuiteId = "0x0346" + ESDKAlgorithmSuiteIdAlgAes256GcmIv12Tag16HkdfSha384EcdsaP384 ESDKAlgorithmSuiteId = "0x0378" + ESDKAlgorithmSuiteIdAlgAes256GcmHkdfSha512CommitKey ESDKAlgorithmSuiteId = "0x0478" + ESDKAlgorithmSuiteIdAlgAes256GcmHkdfSha512CommitKeyEcdsaP384 ESDKAlgorithmSuiteId = "0x0578" +) + +func (ESDKAlgorithmSuiteId) Values() []ESDKAlgorithmSuiteId { + return []ESDKAlgorithmSuiteId{ + "0x0014", + "0x0046", + "0x0078", + "0x0114", + "0x0146", + "0x0178", + "0x0214", + "0x0346", + "0x0378", + "0x0478", + "0x0578", + } +} + +type TimeUnits string + +const ( + TimeUnitsSeconds TimeUnits = "Seconds" + TimeUnitsMilliseconds TimeUnits = "Milliseconds" +) + +func (TimeUnits) Values() []TimeUnits { + return []TimeUnits{ + "Seconds", + "Milliseconds", + } +} + +type PaddingScheme string + +const ( + PaddingSchemePkcs1 PaddingScheme = "PKCS1" + PaddingSchemeOaepSha1Mgf1 PaddingScheme = "OAEP_SHA1_MGF1" + PaddingSchemeOaepSha256Mgf1 PaddingScheme = "OAEP_SHA256_MGF1" + PaddingSchemeOaepSha384Mgf1 PaddingScheme = "OAEP_SHA384_MGF1" + PaddingSchemeOaepSha512Mgf1 PaddingScheme = "OAEP_SHA512_MGF1" +) + +func (PaddingScheme) Values() []PaddingScheme { + return []PaddingScheme{ + "PKCS1", + "OAEP_SHA1_MGF1", + "OAEP_SHA256_MGF1", + "OAEP_SHA384_MGF1", + "OAEP_SHA512_MGF1", + } +} + +type DBECommitmentPolicy string + +const ( + DBECommitmentPolicyRequireEncryptRequireDecrypt DBECommitmentPolicy = "REQUIRE_ENCRYPT_REQUIRE_DECRYPT" +) + +func (DBECommitmentPolicy) Values() []DBECommitmentPolicy { + return []DBECommitmentPolicy{ + "REQUIRE_ENCRYPT_REQUIRE_DECRYPT", + } +} + +type ESDKCommitmentPolicy string + +const ( + ESDKCommitmentPolicyForbidEncryptAllowDecrypt ESDKCommitmentPolicy = "FORBID_ENCRYPT_ALLOW_DECRYPT" + ESDKCommitmentPolicyRequireEncryptAllowDecrypt ESDKCommitmentPolicy = "REQUIRE_ENCRYPT_ALLOW_DECRYPT" + ESDKCommitmentPolicyRequireEncryptRequireDecrypt ESDKCommitmentPolicy = "REQUIRE_ENCRYPT_REQUIRE_DECRYPT" +) + +func (ESDKCommitmentPolicy) Values() []ESDKCommitmentPolicy { + return []ESDKCommitmentPolicy{ + "FORBID_ENCRYPT_ALLOW_DECRYPT", + "REQUIRE_ENCRYPT_ALLOW_DECRYPT", + "REQUIRE_ENCRYPT_REQUIRE_DECRYPT", + } +} diff --git a/customer-preview/mpl/awscryptographymaterialproviderssmithygeneratedtypes/errors.go b/customer-preview/mpl/awscryptographymaterialproviderssmithygeneratedtypes/errors.go new file mode 100644 index 000000000..23aa41217 --- /dev/null +++ b/customer-preview/mpl/awscryptographymaterialproviderssmithygeneratedtypes/errors.go @@ -0,0 +1,117 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package awscryptographymaterialproviderssmithygeneratedtypes + +import ( + "fmt" +) + +type AwsCryptographicMaterialProvidersException struct { + AwsCryptographicMaterialProvidersBaseException + Message string + ErrorCodeOverride *string +} + +func (e AwsCryptographicMaterialProvidersException) Error() string { + return fmt.Sprintf("%s: %s", e.ErrorCodeOverride, e.Message) +} + +type InvalidDecryptionMaterials struct { + AwsCryptographicMaterialProvidersBaseException + Message string + ErrorCodeOverride *string +} + +func (e InvalidDecryptionMaterials) Error() string { + return fmt.Sprintf("%s: %s", e.ErrorCodeOverride, e.Message) +} + +type InvalidEncryptionMaterials struct { + AwsCryptographicMaterialProvidersBaseException + Message string + ErrorCodeOverride *string +} + +func (e InvalidEncryptionMaterials) Error() string { + return fmt.Sprintf("%s: %s", e.ErrorCodeOverride, e.Message) +} + +type InvalidAlgorithmSuiteInfo struct { + AwsCryptographicMaterialProvidersBaseException + Message string + ErrorCodeOverride *string +} + +func (e InvalidAlgorithmSuiteInfo) Error() string { + return fmt.Sprintf("%s: %s", e.ErrorCodeOverride, e.Message) +} + +type InvalidAlgorithmSuiteInfoOnDecrypt struct { + AwsCryptographicMaterialProvidersBaseException + Message string + ErrorCodeOverride *string +} + +func (e InvalidAlgorithmSuiteInfoOnDecrypt) Error() string { + return fmt.Sprintf("%s: %s", e.ErrorCodeOverride, e.Message) +} + +type InvalidAlgorithmSuiteInfoOnEncrypt struct { + AwsCryptographicMaterialProvidersBaseException + Message string + ErrorCodeOverride *string +} + +func (e InvalidAlgorithmSuiteInfoOnEncrypt) Error() string { + return fmt.Sprintf("%s: %s", e.ErrorCodeOverride, e.Message) +} + +type InvalidDecryptionMaterialsTransition struct { + AwsCryptographicMaterialProvidersBaseException + Message string + ErrorCodeOverride *string +} + +func (e InvalidDecryptionMaterialsTransition) Error() string { + return fmt.Sprintf("%s: %s", e.ErrorCodeOverride, e.Message) +} + +type InvalidEncryptionMaterialsTransition struct { + AwsCryptographicMaterialProvidersBaseException + Message string + ErrorCodeOverride *string +} + +func (e InvalidEncryptionMaterialsTransition) Error() string { + return fmt.Sprintf("%s: %s", e.ErrorCodeOverride, e.Message) +} + +type EntryDoesNotExist struct { + AwsCryptographicMaterialProvidersBaseException + Message string + ErrorCodeOverride *string +} + +func (e EntryDoesNotExist) Error() string { + return fmt.Sprintf("%s: %s", e.ErrorCodeOverride, e.Message) +} + +type InFlightTTLExceeded struct { + AwsCryptographicMaterialProvidersBaseException + Message string + ErrorCodeOverride *string +} + +func (e InFlightTTLExceeded) Error() string { + return fmt.Sprintf("%s: %s", e.ErrorCodeOverride, e.Message) +} + +type EntryAlreadyExists struct { + AwsCryptographicMaterialProvidersBaseException + Message string + ErrorCodeOverride *string +} + +func (e EntryAlreadyExists) Error() string { + return fmt.Sprintf("%s: %s", e.ErrorCodeOverride, e.Message) +} diff --git a/customer-preview/mpl/awscryptographymaterialproviderssmithygeneratedtypes/types.go b/customer-preview/mpl/awscryptographymaterialproviderssmithygeneratedtypes/types.go new file mode 100644 index 000000000..e9b6fca47 --- /dev/null +++ b/customer-preview/mpl/awscryptographymaterialproviderssmithygeneratedtypes/types.go @@ -0,0 +1,2357 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package awscryptographymaterialproviderssmithygeneratedtypes + +import ( + "fmt" + "unicode/utf8" + + "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/primitives/awscryptographyprimitivessmithygeneratedtypes" + "github.com/aws/aws-sdk-go-v2/service/kms" + kmstypes "github.com/aws/aws-sdk-go-v2/service/kms/types" +) + +type HKDF struct { + Hmac awscryptographyprimitivessmithygeneratedtypes.DigestAlgorithm + + InputKeyLength int32 + + OutputKeyLength int32 + + SaltLength int32 +} + +func (input HKDF) Validate() error { + if input.InputKeyLength < 1 { + return fmt.Errorf("SymmetricKeyLength has a minimum of 1 but has the value of %d.", input.InputKeyLength) + } + if input.InputKeyLength > 32 { + return fmt.Errorf("SymmetricKeyLength has a maximum of 32 but has the value of %d.", input.InputKeyLength) + } + if input.OutputKeyLength < 1 { + return fmt.Errorf("SymmetricKeyLength has a minimum of 1 but has the value of %d.", input.OutputKeyLength) + } + if input.OutputKeyLength > 32 { + return fmt.Errorf("SymmetricKeyLength has a maximum of 32 but has the value of %d.", input.OutputKeyLength) + } + if input.SaltLength < 0 { + return fmt.Errorf("PositiveInteger has a minimum of 0 but has the value of %d.", input.SaltLength) + } + + return nil +} + +type IDENTITY struct { +} + +func (input IDENTITY) Validate() error { + + return nil +} + +type None struct { +} + +func (input None) Validate() error { + + return nil +} + +type DIRECT_KEY_WRAPPING struct { +} + +func (input DIRECT_KEY_WRAPPING) Validate() error { + + return nil +} + +type IntermediateKeyWrapping struct { + KeyEncryptionKeyKdf DerivationAlgorithm + + MacKeyKdf DerivationAlgorithm + + PdkEncryptAlgorithm Encrypt +} + +func (input IntermediateKeyWrapping) Validate() error { + if input.KeyEncryptionKeyKdf == nil { + return fmt.Errorf("input.KeyEncryptionKeyKdf is required but has a nil value.") + } + if input.Aws_cryptography_materialProviders_IntermediateKeyWrapping_keyEncryptionKeyKdf_Validate() != nil { + return input.Aws_cryptography_materialProviders_IntermediateKeyWrapping_keyEncryptionKeyKdf_Validate() + } + if input.MacKeyKdf == nil { + return fmt.Errorf("input.MacKeyKdf is required but has a nil value.") + } + if input.Aws_cryptography_materialProviders_IntermediateKeyWrapping_macKeyKdf_Validate() != nil { + return input.Aws_cryptography_materialProviders_IntermediateKeyWrapping_macKeyKdf_Validate() + } + if input.PdkEncryptAlgorithm == nil { + return fmt.Errorf("input.PdkEncryptAlgorithm is required but has a nil value.") + } + if input.Aws_cryptography_materialProviders_IntermediateKeyWrapping_pdkEncryptAlgorithm_Validate() != nil { + return input.Aws_cryptography_materialProviders_IntermediateKeyWrapping_pdkEncryptAlgorithm_Validate() + } + + return nil +} + +func (input IntermediateKeyWrapping) Aws_cryptography_materialProviders_IntermediateKeyWrapping_keyEncryptionKeyKdf_Validate() error { + if input.KeyEncryptionKeyKdf == nil { + return nil + } + switch unionType := input.KeyEncryptionKeyKdf.(type) { + case *DerivationAlgorithmMemberHKDF: + if unionType.Value.Validate() != nil { + return unionType.Value.Validate() + } + case *DerivationAlgorithmMemberIDENTITY: + if unionType.Value.Validate() != nil { + return unionType.Value.Validate() + } + case *DerivationAlgorithmMemberNone: + 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 IntermediateKeyWrapping) Aws_cryptography_materialProviders_IntermediateKeyWrapping_macKeyKdf_Validate() error { + if input.MacKeyKdf == nil { + return nil + } + switch unionType := input.MacKeyKdf.(type) { + case *DerivationAlgorithmMemberHKDF: + if unionType.Value.Validate() != nil { + return unionType.Value.Validate() + } + case *DerivationAlgorithmMemberIDENTITY: + if unionType.Value.Validate() != nil { + return unionType.Value.Validate() + } + case *DerivationAlgorithmMemberNone: + 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 IntermediateKeyWrapping) Aws_cryptography_materialProviders_IntermediateKeyWrapping_pdkEncryptAlgorithm_Validate() error { + if input.PdkEncryptAlgorithm == nil { + return nil + } + switch unionType := input.PdkEncryptAlgorithm.(type) { + case *EncryptMemberAES_GCM: + 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 ECDSA struct { + Curve awscryptographyprimitivessmithygeneratedtypes.ECDSASignatureAlgorithm +} + +func (input ECDSA) Validate() error { + + return nil +} + +type AlgorithmSuiteInfo struct { + BinaryId []byte + + Commitment DerivationAlgorithm + + EdkWrapping EdkWrappingAlgorithm + + Encrypt Encrypt + + Id AlgorithmSuiteId + + Kdf DerivationAlgorithm + + MessageVersion int32 + + Signature SignatureAlgorithm + + SymmetricSignature SymmetricSignatureAlgorithm +} + +func (input AlgorithmSuiteInfo) Validate() error { + if input.Commitment == nil { + return fmt.Errorf("input.Commitment is required but has a nil value.") + } + if input.Aws_cryptography_materialProviders_AlgorithmSuiteInfo_commitment_Validate() != nil { + return input.Aws_cryptography_materialProviders_AlgorithmSuiteInfo_commitment_Validate() + } + if input.EdkWrapping == nil { + return fmt.Errorf("input.EdkWrapping is required but has a nil value.") + } + if input.Aws_cryptography_materialProviders_AlgorithmSuiteInfo_edkWrapping_Validate() != nil { + return input.Aws_cryptography_materialProviders_AlgorithmSuiteInfo_edkWrapping_Validate() + } + if input.Encrypt == nil { + return fmt.Errorf("input.Encrypt is required but has a nil value.") + } + if input.Aws_cryptography_materialProviders_AlgorithmSuiteInfo_encrypt_Validate() != nil { + return input.Aws_cryptography_materialProviders_AlgorithmSuiteInfo_encrypt_Validate() + } + if input.Id == nil { + return fmt.Errorf("input.Id is required but has a nil value.") + } + if input.Aws_cryptography_materialProviders_AlgorithmSuiteInfo_id_Validate() != nil { + return input.Aws_cryptography_materialProviders_AlgorithmSuiteInfo_id_Validate() + } + if input.Kdf == nil { + return fmt.Errorf("input.Kdf is required but has a nil value.") + } + if input.Aws_cryptography_materialProviders_AlgorithmSuiteInfo_kdf_Validate() != nil { + return input.Aws_cryptography_materialProviders_AlgorithmSuiteInfo_kdf_Validate() + } + if input.Signature == nil { + return fmt.Errorf("input.Signature is required but has a nil value.") + } + if input.Aws_cryptography_materialProviders_AlgorithmSuiteInfo_signature_Validate() != nil { + return input.Aws_cryptography_materialProviders_AlgorithmSuiteInfo_signature_Validate() + } + if input.SymmetricSignature == nil { + return fmt.Errorf("input.SymmetricSignature is required but has a nil value.") + } + if input.Aws_cryptography_materialProviders_AlgorithmSuiteInfo_symmetricSignature_Validate() != nil { + return input.Aws_cryptography_materialProviders_AlgorithmSuiteInfo_symmetricSignature_Validate() + } + + return nil +} + +func (input AlgorithmSuiteInfo) Aws_cryptography_materialProviders_AlgorithmSuiteInfo_commitment_Validate() error { + if input.Commitment == nil { + return nil + } + switch unionType := input.Commitment.(type) { + case *DerivationAlgorithmMemberHKDF: + if unionType.Value.Validate() != nil { + return unionType.Value.Validate() + } + case *DerivationAlgorithmMemberIDENTITY: + if unionType.Value.Validate() != nil { + return unionType.Value.Validate() + } + case *DerivationAlgorithmMemberNone: + 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 AlgorithmSuiteInfo) Aws_cryptography_materialProviders_AlgorithmSuiteInfo_edkWrapping_Validate() error { + if input.EdkWrapping == nil { + return nil + } + switch unionType := input.EdkWrapping.(type) { + case *EdkWrappingAlgorithmMemberDIRECT_KEY_WRAPPING: + if unionType.Value.Validate() != nil { + return unionType.Value.Validate() + } + case *EdkWrappingAlgorithmMemberIntermediateKeyWrapping: + 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 AlgorithmSuiteInfo) Aws_cryptography_materialProviders_AlgorithmSuiteInfo_encrypt_Validate() error { + if input.Encrypt == nil { + return nil + } + switch unionType := input.Encrypt.(type) { + case *EncryptMemberAES_GCM: + 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 AlgorithmSuiteInfo) Aws_cryptography_materialProviders_AlgorithmSuiteInfo_id_Validate() error { + if input.Id == nil { + return nil + } + switch unionType := input.Id.(type) { + case *AlgorithmSuiteIdMemberESDK: + case *AlgorithmSuiteIdMemberDBE: + // Default case should not be reached. + default: + panic(fmt.Sprintf("Unhandled union type: %T ", unionType)) + } + + return nil +} +func (input AlgorithmSuiteInfo) Aws_cryptography_materialProviders_AlgorithmSuiteInfo_kdf_Validate() error { + if input.Kdf == nil { + return nil + } + switch unionType := input.Kdf.(type) { + case *DerivationAlgorithmMemberHKDF: + if unionType.Value.Validate() != nil { + return unionType.Value.Validate() + } + case *DerivationAlgorithmMemberIDENTITY: + if unionType.Value.Validate() != nil { + return unionType.Value.Validate() + } + case *DerivationAlgorithmMemberNone: + 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 AlgorithmSuiteInfo) Aws_cryptography_materialProviders_AlgorithmSuiteInfo_signature_Validate() error { + if input.Signature == nil { + return nil + } + switch unionType := input.Signature.(type) { + case *SignatureAlgorithmMemberECDSA: + if unionType.Value.Validate() != nil { + return unionType.Value.Validate() + } + case *SignatureAlgorithmMemberNone: + 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 AlgorithmSuiteInfo) Aws_cryptography_materialProviders_AlgorithmSuiteInfo_symmetricSignature_Validate() error { + if input.SymmetricSignature == nil { + return nil + } + switch unionType := input.SymmetricSignature.(type) { + case *SymmetricSignatureAlgorithmMemberHMAC: + case *SymmetricSignatureAlgorithmMemberNone: + 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 GetClientInput struct { + Region string +} + +func (input GetClientInput) Validate() error { + + return nil +} + +type KmsClientReference struct { +} + +func (input KmsClientReference) Validate() error { + + return nil +} + +type GetClientOutput struct { + Client *kms.Client +} + +func (input GetClientOutput) Validate() error { + + return nil +} + +type DiscoveryFilter struct { + AccountIds []string + + Partition string +} + +func (input DiscoveryFilter) Validate() error { + if input.AccountIds == nil { + return fmt.Errorf("input.AccountIds is required but has a nil value.") + } + + return nil +} + +type CreateAwsKmsDiscoveryKeyringInput struct { + KmsClient *kms.Client + + DiscoveryFilter *DiscoveryFilter + + GrantTokens []string +} + +func (input CreateAwsKmsDiscoveryKeyringInput) Validate() error { + if input.DiscoveryFilter != nil { + if input.DiscoveryFilter.Validate() != nil { + return input.DiscoveryFilter.Validate() + } + + } + + return nil +} + +type KeyringReference struct { +} + +func (input KeyringReference) Validate() error { + + return nil +} + +type CreateKeyringOutput struct { + Keyring IKeyring +} + +func (input CreateKeyringOutput) Validate() error { + + return nil +} + +type ClientSupplierReference struct { +} + +func (input ClientSupplierReference) Validate() error { + + return nil +} + +type CreateAwsKmsDiscoveryMultiKeyringInput struct { + Regions []string + + ClientSupplier IClientSupplier + + DiscoveryFilter *DiscoveryFilter + + GrantTokens []string +} + +func (input CreateAwsKmsDiscoveryMultiKeyringInput) Validate() error { + if input.Regions == nil { + return fmt.Errorf("input.Regions is required but has a nil value.") + } + if input.DiscoveryFilter != nil { + if input.DiscoveryFilter.Validate() != nil { + return input.DiscoveryFilter.Validate() + } + + } + + return nil +} + +type KmsPrivateKeyToStaticPublicKeyInput struct { + RecipientPublicKey []byte + + SenderKmsIdentifier string + + SenderPublicKey []byte +} + +func (input KmsPrivateKeyToStaticPublicKeyInput) Validate() error { + + return nil +} + +type KmsPublicKeyDiscoveryInput struct { + RecipientKmsIdentifier string +} + +func (input KmsPublicKeyDiscoveryInput) Validate() error { + + return nil +} + +type CreateAwsKmsEcdhKeyringInput struct { + CurveSpec awscryptographyprimitivessmithygeneratedtypes.ECDHCurveSpec + + KeyAgreementScheme KmsEcdhStaticConfigurations + + KmsClient *kms.Client + + GrantTokens []string +} + +func (input CreateAwsKmsEcdhKeyringInput) Validate() error { + if input.KeyAgreementScheme == nil { + return fmt.Errorf("input.KeyAgreementScheme is required but has a nil value.") + } + if input.Aws_cryptography_materialProviders_CreateAwsKmsEcdhKeyringInput_KeyAgreementScheme_Validate() != nil { + return input.Aws_cryptography_materialProviders_CreateAwsKmsEcdhKeyringInput_KeyAgreementScheme_Validate() + } + + return nil +} + +func (input CreateAwsKmsEcdhKeyringInput) Aws_cryptography_materialProviders_CreateAwsKmsEcdhKeyringInput_KeyAgreementScheme_Validate() error { + if input.KeyAgreementScheme == nil { + return nil + } + switch unionType := input.KeyAgreementScheme.(type) { + case *KmsEcdhStaticConfigurationsMemberKmsPublicKeyDiscovery: + if unionType.Value.Validate() != nil { + return unionType.Value.Validate() + } + case *KmsEcdhStaticConfigurationsMemberKmsPrivateKeyToStaticPublicKey: + 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 BranchKeyIdSupplierReference struct { +} + +func (input BranchKeyIdSupplierReference) Validate() error { + + return nil +} + +type DefaultCache struct { + EntryCapacity int32 +} + +func (input DefaultCache) Validate() error { + if input.EntryCapacity < 1 { + return fmt.Errorf("CountingNumber has a minimum of 1 but has the value of %d.", input.EntryCapacity) + } + + return nil +} + +type MultiThreadedCache struct { + EntryCapacity int32 + + EntryPruningTailSize *int32 +} + +func (input MultiThreadedCache) Validate() error { + if input.EntryCapacity < 1 { + return fmt.Errorf("CountingNumber has a minimum of 1 but has the value of %d.", input.EntryCapacity) + } + if input.EntryPruningTailSize != nil { + if *input.EntryPruningTailSize < 1 { + return fmt.Errorf("CountingNumber has a minimum of 1 but has the value of %d.", *input.EntryPruningTailSize) + } + } + + return nil +} + +type NoCache struct { +} + +func (input NoCache) Validate() error { + + return nil +} + +type CryptographicMaterialsCacheReference struct { +} + +func (input CryptographicMaterialsCacheReference) Validate() error { + + return nil +} + +type SingleThreadedCache struct { + EntryCapacity int32 + + EntryPruningTailSize *int32 +} + +func (input SingleThreadedCache) Validate() error { + if input.EntryCapacity < 1 { + return fmt.Errorf("CountingNumber has a minimum of 1 but has the value of %d.", input.EntryCapacity) + } + if input.EntryPruningTailSize != nil { + if *input.EntryPruningTailSize < 1 { + return fmt.Errorf("CountingNumber has a minimum of 1 but has the value of %d.", *input.EntryPruningTailSize) + } + } + + return nil +} + +type StormTrackingCache struct { + EntryCapacity int32 + + FanOut int32 + + GraceInterval int32 + + GracePeriod int32 + + InFlightTTL int32 + + SleepMilli int32 + + EntryPruningTailSize *int32 + + TimeUnits *TimeUnits +} + +func (input StormTrackingCache) Validate() error { + if input.EntryCapacity < 1 { + return fmt.Errorf("CountingNumber has a minimum of 1 but has the value of %d.", input.EntryCapacity) + } + if input.FanOut < 1 { + return fmt.Errorf("CountingNumber has a minimum of 1 but has the value of %d.", input.FanOut) + } + if input.GraceInterval < 1 { + return fmt.Errorf("CountingNumber has a minimum of 1 but has the value of %d.", input.GraceInterval) + } + if input.GracePeriod < 1 { + return fmt.Errorf("CountingNumber has a minimum of 1 but has the value of %d.", input.GracePeriod) + } + if input.InFlightTTL < 1 { + return fmt.Errorf("CountingNumber has a minimum of 1 but has the value of %d.", input.InFlightTTL) + } + if input.SleepMilli < 1 { + return fmt.Errorf("CountingNumber has a minimum of 1 but has the value of %d.", input.SleepMilli) + } + if input.EntryPruningTailSize != nil { + if *input.EntryPruningTailSize < 1 { + return fmt.Errorf("CountingNumber has a minimum of 1 but has the value of %d.", *input.EntryPruningTailSize) + } + } + + return nil +} + +type KeyStoreReference struct { +} + +func (input KeyStoreReference) Validate() error { + + return nil +} + +type CreateAwsKmsHierarchicalKeyringInput struct { + KeyStore *awscryptographykeystoresmithygenerated.Client + + TtlSeconds int64 + + BranchKeyId *string + + BranchKeyIdSupplier IBranchKeyIdSupplier + + Cache CacheType + + PartitionId *string +} + +func (input CreateAwsKmsHierarchicalKeyringInput) Validate() error { + if input.TtlSeconds < 0 { + return fmt.Errorf("PositiveLong has a minimum of 0 but has the value of %d.", input.TtlSeconds) + } + if input.Aws_cryptography_materialProviders_CreateAwsKmsHierarchicalKeyringInput_cache_Validate() != nil { + return input.Aws_cryptography_materialProviders_CreateAwsKmsHierarchicalKeyringInput_cache_Validate() + } + + return nil +} + +func (input CreateAwsKmsHierarchicalKeyringInput) Aws_cryptography_materialProviders_CreateAwsKmsHierarchicalKeyringInput_cache_Validate() error { + if input.Cache == nil { + return nil + } + switch unionType := input.Cache.(type) { + case *CacheTypeMemberDefault: + if unionType.Value.Validate() != nil { + return unionType.Value.Validate() + } + case *CacheTypeMemberNo: + if unionType.Value.Validate() != nil { + return unionType.Value.Validate() + } + case *CacheTypeMemberSingleThreaded: + if unionType.Value.Validate() != nil { + return unionType.Value.Validate() + } + case *CacheTypeMemberMultiThreaded: + if unionType.Value.Validate() != nil { + return unionType.Value.Validate() + } + case *CacheTypeMemberStormTracking: + if unionType.Value.Validate() != nil { + return unionType.Value.Validate() + } + case *CacheTypeMemberShared: + // Default case should not be reached. + default: + panic(fmt.Sprintf("Unhandled union type: %T ", unionType)) + } + + return nil +} + +type CreateAwsKmsKeyringInput struct { + KmsClient *kms.Client + + KmsKeyId string + + GrantTokens []string +} + +func (input CreateAwsKmsKeyringInput) Validate() error { + + return nil +} + +type CreateAwsKmsMrkDiscoveryKeyringInput struct { + KmsClient *kms.Client + + Region string + + DiscoveryFilter *DiscoveryFilter + + GrantTokens []string +} + +func (input CreateAwsKmsMrkDiscoveryKeyringInput) Validate() error { + if input.DiscoveryFilter != nil { + if input.DiscoveryFilter.Validate() != nil { + return input.DiscoveryFilter.Validate() + } + + } + + return nil +} + +type CreateAwsKmsMrkDiscoveryMultiKeyringInput struct { + Regions []string + + ClientSupplier IClientSupplier + + DiscoveryFilter *DiscoveryFilter + + GrantTokens []string +} + +func (input CreateAwsKmsMrkDiscoveryMultiKeyringInput) Validate() error { + if input.Regions == nil { + return fmt.Errorf("input.Regions is required but has a nil value.") + } + if input.DiscoveryFilter != nil { + if input.DiscoveryFilter.Validate() != nil { + return input.DiscoveryFilter.Validate() + } + + } + + return nil +} + +type CreateAwsKmsMrkKeyringInput struct { + KmsClient *kms.Client + + KmsKeyId string + + GrantTokens []string +} + +func (input CreateAwsKmsMrkKeyringInput) Validate() error { + + return nil +} + +type CreateAwsKmsMrkMultiKeyringInput struct { + ClientSupplier IClientSupplier + + Generator *string + + GrantTokens []string + + KmsKeyIds []string +} + +func (input CreateAwsKmsMrkMultiKeyringInput) Validate() error { + + return nil +} + +type CreateAwsKmsMultiKeyringInput struct { + ClientSupplier IClientSupplier + + Generator *string + + GrantTokens []string + + KmsKeyIds []string +} + +func (input CreateAwsKmsMultiKeyringInput) Validate() error { + + return nil +} + +type CreateAwsKmsRsaKeyringInput struct { + EncryptionAlgorithm kmstypes.EncryptionAlgorithmSpec + + KmsKeyId string + + GrantTokens []string + + KmsClient *kms.Client + + PublicKey []byte +} + +func (input CreateAwsKmsRsaKeyringInput) Validate() error { + + return nil +} + +type CreateCryptographicMaterialsCacheInput struct { + Cache CacheType +} + +func (input CreateCryptographicMaterialsCacheInput) Validate() error { + if input.Cache == nil { + return fmt.Errorf("input.Cache is required but has a nil value.") + } + if input.Aws_cryptography_materialProviders_CreateCryptographicMaterialsCacheInput_cache_Validate() != nil { + return input.Aws_cryptography_materialProviders_CreateCryptographicMaterialsCacheInput_cache_Validate() + } + + return nil +} + +func (input CreateCryptographicMaterialsCacheInput) Aws_cryptography_materialProviders_CreateCryptographicMaterialsCacheInput_cache_Validate() error { + if input.Cache == nil { + return nil + } + switch unionType := input.Cache.(type) { + case *CacheTypeMemberDefault: + if unionType.Value.Validate() != nil { + return unionType.Value.Validate() + } + case *CacheTypeMemberNo: + if unionType.Value.Validate() != nil { + return unionType.Value.Validate() + } + case *CacheTypeMemberSingleThreaded: + if unionType.Value.Validate() != nil { + return unionType.Value.Validate() + } + case *CacheTypeMemberMultiThreaded: + if unionType.Value.Validate() != nil { + return unionType.Value.Validate() + } + case *CacheTypeMemberStormTracking: + if unionType.Value.Validate() != nil { + return unionType.Value.Validate() + } + case *CacheTypeMemberShared: + // Default case should not be reached. + default: + panic(fmt.Sprintf("Unhandled union type: %T ", unionType)) + } + + return nil +} + +type CreateCryptographicMaterialsCacheOutput struct { + MaterialsCache ICryptographicMaterialsCache +} + +func (input CreateCryptographicMaterialsCacheOutput) Validate() error { + + return nil +} + +type CreateDefaultClientSupplierInput struct { +} + +func (input CreateDefaultClientSupplierInput) Validate() error { + + return nil +} + +type CreateDefaultClientSupplierOutput struct { + Client IClientSupplier +} + +func (input CreateDefaultClientSupplierOutput) Validate() error { + + return nil +} + +type CryptographicMaterialsManagerReference struct { +} + +func (input CryptographicMaterialsManagerReference) Validate() error { + + return nil +} + +type CreateCryptographicMaterialsManagerOutput struct { + MaterialsManager ICryptographicMaterialsManager +} + +func (input CreateCryptographicMaterialsManagerOutput) Validate() error { + + return nil +} + +type CreateDefaultCryptographicMaterialsManagerInput struct { + Keyring IKeyring +} + +func (input CreateDefaultCryptographicMaterialsManagerInput) Validate() error { + + return nil +} + +type CreateMultiKeyringInput struct { + ChildKeyrings []IKeyring + + Generator IKeyring +} + +func (input CreateMultiKeyringInput) Validate() error { + if input.ChildKeyrings == nil { + return fmt.Errorf("input.ChildKeyrings is required but has a nil value.") + } + + return nil +} + +type CreateRawAesKeyringInput struct { + KeyName string + + KeyNamespace string + + WrappingAlg AesWrappingAlg + + WrappingKey []byte +} + +func (input CreateRawAesKeyringInput) Validate() error { + + return nil +} + +type EphemeralPrivateKeyToStaticPublicKeyInput struct { + RecipientPublicKey []byte +} + +func (input EphemeralPrivateKeyToStaticPublicKeyInput) Validate() error { + + return nil +} + +type PublicKeyDiscoveryInput struct { + RecipientStaticPrivateKey []byte +} + +func (input PublicKeyDiscoveryInput) Validate() error { + + return nil +} + +type RawPrivateKeyToStaticPublicKeyInput struct { + RecipientPublicKey []byte + + SenderStaticPrivateKey []byte +} + +func (input RawPrivateKeyToStaticPublicKeyInput) Validate() error { + + return nil +} + +type CreateRawEcdhKeyringInput struct { + CurveSpec awscryptographyprimitivessmithygeneratedtypes.ECDHCurveSpec + + KeyAgreementScheme RawEcdhStaticConfigurations +} + +func (input CreateRawEcdhKeyringInput) Validate() error { + if input.KeyAgreementScheme == nil { + return fmt.Errorf("input.KeyAgreementScheme is required but has a nil value.") + } + if input.Aws_cryptography_materialProviders_CreateRawEcdhKeyringInput_KeyAgreementScheme_Validate() != nil { + return input.Aws_cryptography_materialProviders_CreateRawEcdhKeyringInput_KeyAgreementScheme_Validate() + } + + return nil +} + +func (input CreateRawEcdhKeyringInput) Aws_cryptography_materialProviders_CreateRawEcdhKeyringInput_KeyAgreementScheme_Validate() error { + if input.KeyAgreementScheme == nil { + return nil + } + switch unionType := input.KeyAgreementScheme.(type) { + case *RawEcdhStaticConfigurationsMemberPublicKeyDiscovery: + if unionType.Value.Validate() != nil { + return unionType.Value.Validate() + } + case *RawEcdhStaticConfigurationsMemberRawPrivateKeyToStaticPublicKey: + if unionType.Value.Validate() != nil { + return unionType.Value.Validate() + } + case *RawEcdhStaticConfigurationsMemberEphemeralPrivateKeyToStaticPublicKey: + 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 CreateRawRsaKeyringInput struct { + KeyName string + + KeyNamespace string + + PaddingScheme PaddingScheme + + PrivateKey []byte + + PublicKey []byte +} + +func (input CreateRawRsaKeyringInput) Validate() error { + + return nil +} + +type CreateRequiredEncryptionContextCMMInput struct { + RequiredEncryptionContextKeys []string + + Keyring IKeyring + + UnderlyingCMM ICryptographicMaterialsManager +} + +func (input CreateRequiredEncryptionContextCMMInput) Validate() error { + if input.RequiredEncryptionContextKeys == nil { + return fmt.Errorf("input.RequiredEncryptionContextKeys is required but has a nil value.") + } + if input.Aws_cryptography_materialProviders_CreateRequiredEncryptionContextCMMInput_requiredEncryptionContextKeys_Validate() != nil { + return input.Aws_cryptography_materialProviders_CreateRequiredEncryptionContextCMMInput_requiredEncryptionContextKeys_Validate() + } + + return nil +} + +func (input CreateRequiredEncryptionContextCMMInput) Aws_cryptography_materialProviders_CreateRequiredEncryptionContextCMMInput_requiredEncryptionContextKeys_Validate() error { + for _, item := range input.RequiredEncryptionContextKeys { + if !utf8.ValidString(item) { + return fmt.Errorf("Invalid UTF bytes %s ", item) + } + } + + return nil +} + +type CreateRequiredEncryptionContextCMMOutput struct { + MaterialsManager ICryptographicMaterialsManager +} + +func (input CreateRequiredEncryptionContextCMMOutput) Validate() error { + + return nil +} + +type EncryptedDataKey struct { + Ciphertext []byte + + KeyProviderId string + + KeyProviderInfo []byte +} + +func (input EncryptedDataKey) Validate() error { + if !utf8.ValidString(input.KeyProviderId) { + return fmt.Errorf("Invalid UTF bytes %s ", input.KeyProviderId) + } + + return nil +} + +type DecryptMaterialsInput struct { + AlgorithmSuiteId AlgorithmSuiteId + + CommitmentPolicy CommitmentPolicy + + EncryptedDataKeys []EncryptedDataKey + + EncryptionContext map[string]string + + ReproducedEncryptionContext map[string]string +} + +func (input DecryptMaterialsInput) Validate() error { + if input.AlgorithmSuiteId == nil { + return fmt.Errorf("input.AlgorithmSuiteId is required but has a nil value.") + } + if input.Aws_cryptography_materialProviders_DecryptMaterialsInput_algorithmSuiteId_Validate() != nil { + return input.Aws_cryptography_materialProviders_DecryptMaterialsInput_algorithmSuiteId_Validate() + } + if input.CommitmentPolicy == nil { + return fmt.Errorf("input.CommitmentPolicy is required but has a nil value.") + } + if input.Aws_cryptography_materialProviders_DecryptMaterialsInput_commitmentPolicy_Validate() != nil { + return input.Aws_cryptography_materialProviders_DecryptMaterialsInput_commitmentPolicy_Validate() + } + if input.EncryptedDataKeys == nil { + return fmt.Errorf("input.EncryptedDataKeys is required but has a nil value.") + } + if input.Aws_cryptography_materialProviders_DecryptMaterialsInput_encryptedDataKeys_Validate() != nil { + return input.Aws_cryptography_materialProviders_DecryptMaterialsInput_encryptedDataKeys_Validate() + } + if input.EncryptionContext == nil { + return fmt.Errorf("input.EncryptionContext is required but has a nil value.") + } + if input.Aws_cryptography_materialProviders_DecryptMaterialsInput_encryptionContext_Validate() != nil { + return input.Aws_cryptography_materialProviders_DecryptMaterialsInput_encryptionContext_Validate() + } + if input.Aws_cryptography_materialProviders_DecryptMaterialsInput_reproducedEncryptionContext_Validate() != nil { + return input.Aws_cryptography_materialProviders_DecryptMaterialsInput_reproducedEncryptionContext_Validate() + } + + return nil +} + +func (input DecryptMaterialsInput) Aws_cryptography_materialProviders_DecryptMaterialsInput_algorithmSuiteId_Validate() error { + if input.AlgorithmSuiteId == nil { + return nil + } + switch unionType := input.AlgorithmSuiteId.(type) { + case *AlgorithmSuiteIdMemberESDK: + case *AlgorithmSuiteIdMemberDBE: + // Default case should not be reached. + default: + panic(fmt.Sprintf("Unhandled union type: %T ", unionType)) + } + + return nil +} +func (input DecryptMaterialsInput) Aws_cryptography_materialProviders_DecryptMaterialsInput_commitmentPolicy_Validate() error { + if input.CommitmentPolicy == nil { + return nil + } + switch unionType := input.CommitmentPolicy.(type) { + case *CommitmentPolicyMemberESDK: + case *CommitmentPolicyMemberDBE: + // Default case should not be reached. + default: + panic(fmt.Sprintf("Unhandled union type: %T ", unionType)) + } + + return nil +} +func (input DecryptMaterialsInput) Aws_cryptography_materialProviders_DecryptMaterialsInput_encryptedDataKeys_Validate() error { + for _, item := range input.EncryptedDataKeys { + if item.Validate() != nil { + return item.Validate() + } + } + + return nil +} +func (input DecryptMaterialsInput) Aws_cryptography_materialProviders_DecryptMaterialsInput_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 DecryptMaterialsInput) Aws_cryptography_materialProviders_DecryptMaterialsInput_reproducedEncryptionContext_Validate() error { + for key, value := range input.ReproducedEncryptionContext { + 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 DecryptionMaterials struct { + AlgorithmSuite AlgorithmSuiteInfo + + EncryptionContext map[string]string + + RequiredEncryptionContextKeys []string + + PlaintextDataKey []byte + + SymmetricSigningKey []byte + + VerificationKey []byte +} + +func (input DecryptionMaterials) Validate() error { + if input.AlgorithmSuite.Validate() != nil { + return input.AlgorithmSuite.Validate() + } + if input.EncryptionContext == nil { + return fmt.Errorf("input.EncryptionContext is required but has a nil value.") + } + if input.Aws_cryptography_materialProviders_DecryptionMaterials_encryptionContext_Validate() != nil { + return input.Aws_cryptography_materialProviders_DecryptionMaterials_encryptionContext_Validate() + } + if input.RequiredEncryptionContextKeys == nil { + return fmt.Errorf("input.RequiredEncryptionContextKeys is required but has a nil value.") + } + if input.Aws_cryptography_materialProviders_DecryptionMaterials_requiredEncryptionContextKeys_Validate() != nil { + return input.Aws_cryptography_materialProviders_DecryptionMaterials_requiredEncryptionContextKeys_Validate() + } + + return nil +} + +func (input DecryptionMaterials) Aws_cryptography_materialProviders_DecryptionMaterials_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 DecryptionMaterials) Aws_cryptography_materialProviders_DecryptionMaterials_requiredEncryptionContextKeys_Validate() error { + for _, item := range input.RequiredEncryptionContextKeys { + if !utf8.ValidString(item) { + return fmt.Errorf("Invalid UTF bytes %s ", item) + } + } + + return nil +} + +type DecryptMaterialsOutput struct { + DecryptionMaterials DecryptionMaterials +} + +func (input DecryptMaterialsOutput) Validate() error { + if input.DecryptionMaterials.Validate() != nil { + return input.DecryptionMaterials.Validate() + } + + return nil +} + +type GetEncryptionMaterialsInput struct { + CommitmentPolicy CommitmentPolicy + + EncryptionContext map[string]string + + AlgorithmSuiteId AlgorithmSuiteId + + MaxPlaintextLength *int64 + + RequiredEncryptionContextKeys []string +} + +func (input GetEncryptionMaterialsInput) Validate() error { + if input.CommitmentPolicy == nil { + return fmt.Errorf("input.CommitmentPolicy is required but has a nil value.") + } + if input.Aws_cryptography_materialProviders_GetEncryptionMaterialsInput_commitmentPolicy_Validate() != nil { + return input.Aws_cryptography_materialProviders_GetEncryptionMaterialsInput_commitmentPolicy_Validate() + } + if input.EncryptionContext == nil { + return fmt.Errorf("input.EncryptionContext is required but has a nil value.") + } + if input.Aws_cryptography_materialProviders_GetEncryptionMaterialsInput_encryptionContext_Validate() != nil { + return input.Aws_cryptography_materialProviders_GetEncryptionMaterialsInput_encryptionContext_Validate() + } + if input.Aws_cryptography_materialProviders_GetEncryptionMaterialsInput_algorithmSuiteId_Validate() != nil { + return input.Aws_cryptography_materialProviders_GetEncryptionMaterialsInput_algorithmSuiteId_Validate() + } + if input.Aws_cryptography_materialProviders_GetEncryptionMaterialsInput_requiredEncryptionContextKeys_Validate() != nil { + return input.Aws_cryptography_materialProviders_GetEncryptionMaterialsInput_requiredEncryptionContextKeys_Validate() + } + + return nil +} + +func (input GetEncryptionMaterialsInput) Aws_cryptography_materialProviders_GetEncryptionMaterialsInput_commitmentPolicy_Validate() error { + if input.CommitmentPolicy == nil { + return nil + } + switch unionType := input.CommitmentPolicy.(type) { + case *CommitmentPolicyMemberESDK: + case *CommitmentPolicyMemberDBE: + // Default case should not be reached. + default: + panic(fmt.Sprintf("Unhandled union type: %T ", unionType)) + } + + return nil +} +func (input GetEncryptionMaterialsInput) Aws_cryptography_materialProviders_GetEncryptionMaterialsInput_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 GetEncryptionMaterialsInput) Aws_cryptography_materialProviders_GetEncryptionMaterialsInput_algorithmSuiteId_Validate() error { + if input.AlgorithmSuiteId == nil { + return nil + } + switch unionType := input.AlgorithmSuiteId.(type) { + case *AlgorithmSuiteIdMemberESDK: + case *AlgorithmSuiteIdMemberDBE: + // Default case should not be reached. + default: + panic(fmt.Sprintf("Unhandled union type: %T ", unionType)) + } + + return nil +} +func (input GetEncryptionMaterialsInput) Aws_cryptography_materialProviders_GetEncryptionMaterialsInput_requiredEncryptionContextKeys_Validate() error { + for _, item := range input.RequiredEncryptionContextKeys { + if !utf8.ValidString(item) { + return fmt.Errorf("Invalid UTF bytes %s ", item) + } + } + + return nil +} + +type EncryptionMaterials struct { + AlgorithmSuite AlgorithmSuiteInfo + + EncryptedDataKeys []EncryptedDataKey + + EncryptionContext map[string]string + + RequiredEncryptionContextKeys []string + + PlaintextDataKey []byte + + SigningKey []byte + + SymmetricSigningKeys [][]byte +} + +func (input EncryptionMaterials) Validate() error { + if input.AlgorithmSuite.Validate() != nil { + return input.AlgorithmSuite.Validate() + } + if input.EncryptedDataKeys == nil { + return fmt.Errorf("input.EncryptedDataKeys is required but has a nil value.") + } + if input.Aws_cryptography_materialProviders_EncryptionMaterials_encryptedDataKeys_Validate() != nil { + return input.Aws_cryptography_materialProviders_EncryptionMaterials_encryptedDataKeys_Validate() + } + if input.EncryptionContext == nil { + return fmt.Errorf("input.EncryptionContext is required but has a nil value.") + } + if input.Aws_cryptography_materialProviders_EncryptionMaterials_encryptionContext_Validate() != nil { + return input.Aws_cryptography_materialProviders_EncryptionMaterials_encryptionContext_Validate() + } + if input.RequiredEncryptionContextKeys == nil { + return fmt.Errorf("input.RequiredEncryptionContextKeys is required but has a nil value.") + } + if input.Aws_cryptography_materialProviders_EncryptionMaterials_requiredEncryptionContextKeys_Validate() != nil { + return input.Aws_cryptography_materialProviders_EncryptionMaterials_requiredEncryptionContextKeys_Validate() + } + + return nil +} + +func (input EncryptionMaterials) Aws_cryptography_materialProviders_EncryptionMaterials_encryptedDataKeys_Validate() error { + for _, item := range input.EncryptedDataKeys { + if item.Validate() != nil { + return item.Validate() + } + } + + return nil +} +func (input EncryptionMaterials) Aws_cryptography_materialProviders_EncryptionMaterials_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 EncryptionMaterials) Aws_cryptography_materialProviders_EncryptionMaterials_requiredEncryptionContextKeys_Validate() error { + for _, item := range input.RequiredEncryptionContextKeys { + if !utf8.ValidString(item) { + return fmt.Errorf("Invalid UTF bytes %s ", item) + } + } + + return nil +} + +type GetEncryptionMaterialsOutput struct { + EncryptionMaterials EncryptionMaterials +} + +func (input GetEncryptionMaterialsOutput) Validate() error { + if input.EncryptionMaterials.Validate() != nil { + return input.EncryptionMaterials.Validate() + } + + return nil +} + +type GetAlgorithmSuiteInfoInput struct { + BinaryId []byte +} + +func (input GetAlgorithmSuiteInfoInput) Validate() error { + + return nil +} + +type InitializeDecryptionMaterialsInput struct { + AlgorithmSuiteId AlgorithmSuiteId + + EncryptionContext map[string]string + + RequiredEncryptionContextKeys []string +} + +func (input InitializeDecryptionMaterialsInput) Validate() error { + if input.AlgorithmSuiteId == nil { + return fmt.Errorf("input.AlgorithmSuiteId is required but has a nil value.") + } + if input.Aws_cryptography_materialProviders_InitializeDecryptionMaterialsInput_algorithmSuiteId_Validate() != nil { + return input.Aws_cryptography_materialProviders_InitializeDecryptionMaterialsInput_algorithmSuiteId_Validate() + } + if input.EncryptionContext == nil { + return fmt.Errorf("input.EncryptionContext is required but has a nil value.") + } + if input.Aws_cryptography_materialProviders_InitializeDecryptionMaterialsInput_encryptionContext_Validate() != nil { + return input.Aws_cryptography_materialProviders_InitializeDecryptionMaterialsInput_encryptionContext_Validate() + } + if input.RequiredEncryptionContextKeys == nil { + return fmt.Errorf("input.RequiredEncryptionContextKeys is required but has a nil value.") + } + if input.Aws_cryptography_materialProviders_InitializeDecryptionMaterialsInput_requiredEncryptionContextKeys_Validate() != nil { + return input.Aws_cryptography_materialProviders_InitializeDecryptionMaterialsInput_requiredEncryptionContextKeys_Validate() + } + + return nil +} + +func (input InitializeDecryptionMaterialsInput) Aws_cryptography_materialProviders_InitializeDecryptionMaterialsInput_algorithmSuiteId_Validate() error { + if input.AlgorithmSuiteId == nil { + return nil + } + switch unionType := input.AlgorithmSuiteId.(type) { + case *AlgorithmSuiteIdMemberESDK: + case *AlgorithmSuiteIdMemberDBE: + // Default case should not be reached. + default: + panic(fmt.Sprintf("Unhandled union type: %T ", unionType)) + } + + return nil +} +func (input InitializeDecryptionMaterialsInput) Aws_cryptography_materialProviders_InitializeDecryptionMaterialsInput_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 InitializeDecryptionMaterialsInput) Aws_cryptography_materialProviders_InitializeDecryptionMaterialsInput_requiredEncryptionContextKeys_Validate() error { + for _, item := range input.RequiredEncryptionContextKeys { + if !utf8.ValidString(item) { + return fmt.Errorf("Invalid UTF bytes %s ", item) + } + } + + return nil +} + +type InitializeEncryptionMaterialsInput struct { + AlgorithmSuiteId AlgorithmSuiteId + + EncryptionContext map[string]string + + RequiredEncryptionContextKeys []string + + SigningKey []byte + + VerificationKey []byte +} + +func (input InitializeEncryptionMaterialsInput) Validate() error { + if input.AlgorithmSuiteId == nil { + return fmt.Errorf("input.AlgorithmSuiteId is required but has a nil value.") + } + if input.Aws_cryptography_materialProviders_InitializeEncryptionMaterialsInput_algorithmSuiteId_Validate() != nil { + return input.Aws_cryptography_materialProviders_InitializeEncryptionMaterialsInput_algorithmSuiteId_Validate() + } + if input.EncryptionContext == nil { + return fmt.Errorf("input.EncryptionContext is required but has a nil value.") + } + if input.Aws_cryptography_materialProviders_InitializeEncryptionMaterialsInput_encryptionContext_Validate() != nil { + return input.Aws_cryptography_materialProviders_InitializeEncryptionMaterialsInput_encryptionContext_Validate() + } + if input.RequiredEncryptionContextKeys == nil { + return fmt.Errorf("input.RequiredEncryptionContextKeys is required but has a nil value.") + } + if input.Aws_cryptography_materialProviders_InitializeEncryptionMaterialsInput_requiredEncryptionContextKeys_Validate() != nil { + return input.Aws_cryptography_materialProviders_InitializeEncryptionMaterialsInput_requiredEncryptionContextKeys_Validate() + } + + return nil +} + +func (input InitializeEncryptionMaterialsInput) Aws_cryptography_materialProviders_InitializeEncryptionMaterialsInput_algorithmSuiteId_Validate() error { + if input.AlgorithmSuiteId == nil { + return nil + } + switch unionType := input.AlgorithmSuiteId.(type) { + case *AlgorithmSuiteIdMemberESDK: + case *AlgorithmSuiteIdMemberDBE: + // Default case should not be reached. + default: + panic(fmt.Sprintf("Unhandled union type: %T ", unionType)) + } + + return nil +} +func (input InitializeEncryptionMaterialsInput) Aws_cryptography_materialProviders_InitializeEncryptionMaterialsInput_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 InitializeEncryptionMaterialsInput) Aws_cryptography_materialProviders_InitializeEncryptionMaterialsInput_requiredEncryptionContextKeys_Validate() error { + for _, item := range input.RequiredEncryptionContextKeys { + if !utf8.ValidString(item) { + return fmt.Errorf("Invalid UTF bytes %s ", item) + } + } + + return nil +} + +type OnDecryptInput struct { + EncryptedDataKeys []EncryptedDataKey + + Materials DecryptionMaterials +} + +func (input OnDecryptInput) Validate() error { + if input.EncryptedDataKeys == nil { + return fmt.Errorf("input.EncryptedDataKeys is required but has a nil value.") + } + if input.Aws_cryptography_materialProviders_OnDecryptInput_encryptedDataKeys_Validate() != nil { + return input.Aws_cryptography_materialProviders_OnDecryptInput_encryptedDataKeys_Validate() + } + if input.Materials.Validate() != nil { + return input.Materials.Validate() + } + + return nil +} + +func (input OnDecryptInput) Aws_cryptography_materialProviders_OnDecryptInput_encryptedDataKeys_Validate() error { + for _, item := range input.EncryptedDataKeys { + if item.Validate() != nil { + return item.Validate() + } + } + + return nil +} + +type OnDecryptOutput struct { + Materials DecryptionMaterials +} + +func (input OnDecryptOutput) Validate() error { + if input.Materials.Validate() != nil { + return input.Materials.Validate() + } + + return nil +} + +type OnEncryptInput struct { + Materials EncryptionMaterials +} + +func (input OnEncryptInput) Validate() error { + if input.Materials.Validate() != nil { + return input.Materials.Validate() + } + + return nil +} + +type OnEncryptOutput struct { + Materials EncryptionMaterials +} + +func (input OnEncryptOutput) Validate() error { + if input.Materials.Validate() != nil { + return input.Materials.Validate() + } + + return nil +} + +type ValidateCommitmentPolicyOnDecryptInput struct { + Algorithm AlgorithmSuiteId + + CommitmentPolicy CommitmentPolicy +} + +func (input ValidateCommitmentPolicyOnDecryptInput) Validate() error { + if input.Algorithm == nil { + return fmt.Errorf("input.Algorithm is required but has a nil value.") + } + if input.Aws_cryptography_materialProviders_ValidateCommitmentPolicyOnDecryptInput_algorithm_Validate() != nil { + return input.Aws_cryptography_materialProviders_ValidateCommitmentPolicyOnDecryptInput_algorithm_Validate() + } + if input.CommitmentPolicy == nil { + return fmt.Errorf("input.CommitmentPolicy is required but has a nil value.") + } + if input.Aws_cryptography_materialProviders_ValidateCommitmentPolicyOnDecryptInput_commitmentPolicy_Validate() != nil { + return input.Aws_cryptography_materialProviders_ValidateCommitmentPolicyOnDecryptInput_commitmentPolicy_Validate() + } + + return nil +} + +func (input ValidateCommitmentPolicyOnDecryptInput) Aws_cryptography_materialProviders_ValidateCommitmentPolicyOnDecryptInput_algorithm_Validate() error { + if input.Algorithm == nil { + return nil + } + switch unionType := input.Algorithm.(type) { + case *AlgorithmSuiteIdMemberESDK: + case *AlgorithmSuiteIdMemberDBE: + // Default case should not be reached. + default: + panic(fmt.Sprintf("Unhandled union type: %T ", unionType)) + } + + return nil +} +func (input ValidateCommitmentPolicyOnDecryptInput) Aws_cryptography_materialProviders_ValidateCommitmentPolicyOnDecryptInput_commitmentPolicy_Validate() error { + if input.CommitmentPolicy == nil { + return nil + } + switch unionType := input.CommitmentPolicy.(type) { + case *CommitmentPolicyMemberESDK: + case *CommitmentPolicyMemberDBE: + // Default case should not be reached. + default: + panic(fmt.Sprintf("Unhandled union type: %T ", unionType)) + } + + return nil +} + +type ValidateCommitmentPolicyOnEncryptInput struct { + Algorithm AlgorithmSuiteId + + CommitmentPolicy CommitmentPolicy +} + +func (input ValidateCommitmentPolicyOnEncryptInput) Validate() error { + if input.Algorithm == nil { + return fmt.Errorf("input.Algorithm is required but has a nil value.") + } + if input.Aws_cryptography_materialProviders_ValidateCommitmentPolicyOnEncryptInput_algorithm_Validate() != nil { + return input.Aws_cryptography_materialProviders_ValidateCommitmentPolicyOnEncryptInput_algorithm_Validate() + } + if input.CommitmentPolicy == nil { + return fmt.Errorf("input.CommitmentPolicy is required but has a nil value.") + } + if input.Aws_cryptography_materialProviders_ValidateCommitmentPolicyOnEncryptInput_commitmentPolicy_Validate() != nil { + return input.Aws_cryptography_materialProviders_ValidateCommitmentPolicyOnEncryptInput_commitmentPolicy_Validate() + } + + return nil +} + +func (input ValidateCommitmentPolicyOnEncryptInput) Aws_cryptography_materialProviders_ValidateCommitmentPolicyOnEncryptInput_algorithm_Validate() error { + if input.Algorithm == nil { + return nil + } + switch unionType := input.Algorithm.(type) { + case *AlgorithmSuiteIdMemberESDK: + case *AlgorithmSuiteIdMemberDBE: + // Default case should not be reached. + default: + panic(fmt.Sprintf("Unhandled union type: %T ", unionType)) + } + + return nil +} +func (input ValidateCommitmentPolicyOnEncryptInput) Aws_cryptography_materialProviders_ValidateCommitmentPolicyOnEncryptInput_commitmentPolicy_Validate() error { + if input.CommitmentPolicy == nil { + return nil + } + switch unionType := input.CommitmentPolicy.(type) { + case *CommitmentPolicyMemberESDK: + case *CommitmentPolicyMemberDBE: + // Default case should not be reached. + default: + panic(fmt.Sprintf("Unhandled union type: %T ", unionType)) + } + + return nil +} + +type ValidDecryptionMaterialsTransitionInput struct { + Start DecryptionMaterials + + Stop DecryptionMaterials +} + +func (input ValidDecryptionMaterialsTransitionInput) Validate() error { + if input.Start.Validate() != nil { + return input.Start.Validate() + } + if input.Stop.Validate() != nil { + return input.Stop.Validate() + } + + return nil +} + +type ValidEncryptionMaterialsTransitionInput struct { + Start EncryptionMaterials + + Stop EncryptionMaterials +} + +func (input ValidEncryptionMaterialsTransitionInput) Validate() error { + if input.Start.Validate() != nil { + return input.Start.Validate() + } + if input.Stop.Validate() != nil { + return input.Stop.Validate() + } + + return nil +} + +type GetBranchKeyIdInput struct { + EncryptionContext map[string]string +} + +func (input GetBranchKeyIdInput) Validate() error { + if input.EncryptionContext == nil { + return fmt.Errorf("input.EncryptionContext is required but has a nil value.") + } + if input.Aws_cryptography_materialProviders_GetBranchKeyIdInput_encryptionContext_Validate() != nil { + return input.Aws_cryptography_materialProviders_GetBranchKeyIdInput_encryptionContext_Validate() + } + + return nil +} + +func (input GetBranchKeyIdInput) Aws_cryptography_materialProviders_GetBranchKeyIdInput_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 GetBranchKeyIdOutput struct { + BranchKeyId string +} + +func (input GetBranchKeyIdOutput) Validate() error { + + return nil +} + +type DeleteCacheEntryInput struct { + Identifier []byte +} + +func (input DeleteCacheEntryInput) Validate() error { + + return nil +} + +type GetCacheEntryInput struct { + Identifier []byte + + BytesUsed *int64 +} + +func (input GetCacheEntryInput) Validate() error { + + return nil +} + +type GetCacheEntryOutput struct { + BytesUsed int32 + + CreationTime int64 + + ExpiryTime int64 + + Materials Materials + + MessagesUsed int32 +} + +func (input GetCacheEntryOutput) Validate() error { + if input.BytesUsed < 0 { + return fmt.Errorf("PositiveInteger has a minimum of 0 but has the value of %d.", input.BytesUsed) + } + if input.CreationTime < 0 { + return fmt.Errorf("PositiveLong has a minimum of 0 but has the value of %d.", input.CreationTime) + } + if input.ExpiryTime < 0 { + return fmt.Errorf("PositiveLong has a minimum of 0 but has the value of %d.", input.ExpiryTime) + } + if input.Materials == nil { + return fmt.Errorf("input.Materials is required but has a nil value.") + } + if input.Aws_cryptography_materialProviders_GetCacheEntryOutput_materials_Validate() != nil { + return input.Aws_cryptography_materialProviders_GetCacheEntryOutput_materials_Validate() + } + if input.MessagesUsed < 0 { + return fmt.Errorf("PositiveInteger has a minimum of 0 but has the value of %d.", input.MessagesUsed) + } + + return nil +} + +func (input GetCacheEntryOutput) Aws_cryptography_materialProviders_GetCacheEntryOutput_materials_Validate() error { + if input.Materials == nil { + return nil + } + switch unionType := input.Materials.(type) { + case *MaterialsMemberEncryption: + if unionType.Value.Validate() != nil { + return unionType.Value.Validate() + } + case *MaterialsMemberDecryption: + if unionType.Value.Validate() != nil { + return unionType.Value.Validate() + } + case *MaterialsMemberBranchKey: + if unionType.Value.Validate() != nil { + return unionType.Value.Validate() + } + case *MaterialsMemberBeaconKey: + 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 PutCacheEntryInput struct { + CreationTime int64 + + ExpiryTime int64 + + Identifier []byte + + Materials Materials + + BytesUsed *int32 + + MessagesUsed *int32 +} + +func (input PutCacheEntryInput) Validate() error { + if input.CreationTime < 0 { + return fmt.Errorf("PositiveLong has a minimum of 0 but has the value of %d.", input.CreationTime) + } + if input.ExpiryTime < 0 { + return fmt.Errorf("PositiveLong has a minimum of 0 but has the value of %d.", input.ExpiryTime) + } + if input.Materials == nil { + return fmt.Errorf("input.Materials is required but has a nil value.") + } + if input.Aws_cryptography_materialProviders_PutCacheEntryInput_materials_Validate() != nil { + return input.Aws_cryptography_materialProviders_PutCacheEntryInput_materials_Validate() + } + if input.BytesUsed != nil { + if *input.BytesUsed < 0 { + return fmt.Errorf("PositiveInteger has a minimum of 0 but has the value of %d.", *input.BytesUsed) + } + } + if input.MessagesUsed != nil { + if *input.MessagesUsed < 0 { + return fmt.Errorf("PositiveInteger has a minimum of 0 but has the value of %d.", *input.MessagesUsed) + } + } + + return nil +} + +func (input PutCacheEntryInput) Aws_cryptography_materialProviders_PutCacheEntryInput_materials_Validate() error { + if input.Materials == nil { + return nil + } + switch unionType := input.Materials.(type) { + case *MaterialsMemberEncryption: + if unionType.Value.Validate() != nil { + return unionType.Value.Validate() + } + case *MaterialsMemberDecryption: + if unionType.Value.Validate() != nil { + return unionType.Value.Validate() + } + case *MaterialsMemberBranchKey: + if unionType.Value.Validate() != nil { + return unionType.Value.Validate() + } + case *MaterialsMemberBeaconKey: + 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 UpdateUsageMetadataInput struct { + BytesUsed int32 + + Identifier []byte +} + +func (input UpdateUsageMetadataInput) Validate() error { + if input.BytesUsed < 0 { + return fmt.Errorf("PositiveInteger has a minimum of 0 but has the value of %d.", input.BytesUsed) + } + + return nil +} + +type DdbClientReference struct { +} + +func (input DdbClientReference) Validate() error { + + return nil +} + +type MaterialProvidersConfig struct { +} + +func (input MaterialProvidersConfig) Validate() error { + + return nil +} + +// AlgorithmSuiteIdMemberDBE +// AlgorithmSuiteIdMemberESDK +type AlgorithmSuiteId interface { + isAlgorithmSuiteId() +} + +type AlgorithmSuiteIdMemberDBE struct { + Value DBEAlgorithmSuiteId +} + +func (*AlgorithmSuiteIdMemberDBE) isAlgorithmSuiteId() {} + +type AlgorithmSuiteIdMemberESDK struct { + Value ESDKAlgorithmSuiteId +} + +func (*AlgorithmSuiteIdMemberESDK) isAlgorithmSuiteId() {} + +// CacheTypeMemberDefault +// CacheTypeMemberMultiThreaded +// CacheTypeMemberNo +// CacheTypeMemberShared +// CacheTypeMemberSingleThreaded +// CacheTypeMemberStormTracking +type CacheType interface { + isCacheType() +} + +type CacheTypeMemberDefault struct { + Value DefaultCache +} + +func (*CacheTypeMemberDefault) isCacheType() {} + +type CacheTypeMemberMultiThreaded struct { + Value MultiThreadedCache +} + +func (*CacheTypeMemberMultiThreaded) isCacheType() {} + +type CacheTypeMemberNo struct { + Value NoCache +} + +func (*CacheTypeMemberNo) isCacheType() {} + +type CacheTypeMemberShared struct { + Value ICryptographicMaterialsCache +} + +func (*CacheTypeMemberShared) isCacheType() {} + +type CacheTypeMemberSingleThreaded struct { + Value SingleThreadedCache +} + +func (*CacheTypeMemberSingleThreaded) isCacheType() {} + +type CacheTypeMemberStormTracking struct { + Value StormTrackingCache +} + +func (*CacheTypeMemberStormTracking) isCacheType() {} + +// CommitmentPolicyMemberDBE +// CommitmentPolicyMemberESDK +type CommitmentPolicy interface { + isCommitmentPolicy() +} + +type CommitmentPolicyMemberDBE struct { + Value DBECommitmentPolicy +} + +func (*CommitmentPolicyMemberDBE) isCommitmentPolicy() {} + +type CommitmentPolicyMemberESDK struct { + Value ESDKCommitmentPolicy +} + +func (*CommitmentPolicyMemberESDK) isCommitmentPolicy() {} + +// DerivationAlgorithmMemberHKDF +// DerivationAlgorithmMemberIDENTITY +// DerivationAlgorithmMemberNone +type DerivationAlgorithm interface { + isDerivationAlgorithm() +} + +type DerivationAlgorithmMemberHKDF struct { + Value HKDF +} + +func (*DerivationAlgorithmMemberHKDF) isDerivationAlgorithm() {} + +type DerivationAlgorithmMemberIDENTITY struct { + Value IDENTITY +} + +func (*DerivationAlgorithmMemberIDENTITY) isDerivationAlgorithm() {} + +type DerivationAlgorithmMemberNone struct { + Value None +} + +func (*DerivationAlgorithmMemberNone) isDerivationAlgorithm() {} + +// EdkWrappingAlgorithmMemberDIRECT_KEY_WRAPPING +// EdkWrappingAlgorithmMemberIntermediateKeyWrapping +type EdkWrappingAlgorithm interface { + isEdkWrappingAlgorithm() +} + +type EdkWrappingAlgorithmMemberDIRECT_KEY_WRAPPING struct { + Value DIRECT_KEY_WRAPPING +} + +func (*EdkWrappingAlgorithmMemberDIRECT_KEY_WRAPPING) isEdkWrappingAlgorithm() {} + +type EdkWrappingAlgorithmMemberIntermediateKeyWrapping struct { + Value IntermediateKeyWrapping +} + +func (*EdkWrappingAlgorithmMemberIntermediateKeyWrapping) isEdkWrappingAlgorithm() {} + +// EncryptMemberAES_GCM +type Encrypt interface { + isEncrypt() +} + +type EncryptMemberAES_GCM struct { + Value awscryptographyprimitivessmithygeneratedtypes.AES_GCM +} + +func (*EncryptMemberAES_GCM) isEncrypt() {} + +// KeyAgreementSchemeMemberStaticConfiguration +type KeyAgreementScheme interface { + isKeyAgreementScheme() +} + +type KeyAgreementSchemeMemberStaticConfiguration struct { + Value StaticConfigurations +} + +func (*KeyAgreementSchemeMemberStaticConfiguration) isKeyAgreementScheme() {} + +// KmsEcdhStaticConfigurationsMemberKmsPrivateKeyToStaticPublicKey +// KmsEcdhStaticConfigurationsMemberKmsPublicKeyDiscovery +type KmsEcdhStaticConfigurations interface { + isKmsEcdhStaticConfigurations() +} + +type KmsEcdhStaticConfigurationsMemberKmsPrivateKeyToStaticPublicKey struct { + Value KmsPrivateKeyToStaticPublicKeyInput +} + +func (*KmsEcdhStaticConfigurationsMemberKmsPrivateKeyToStaticPublicKey) isKmsEcdhStaticConfigurations() { +} + +type KmsEcdhStaticConfigurationsMemberKmsPublicKeyDiscovery struct { + Value KmsPublicKeyDiscoveryInput +} + +func (*KmsEcdhStaticConfigurationsMemberKmsPublicKeyDiscovery) isKmsEcdhStaticConfigurations() {} + +// MaterialsMemberBeaconKey +// MaterialsMemberBranchKey +// MaterialsMemberDecryption +// MaterialsMemberEncryption +type Materials interface { + isMaterials() +} + +type MaterialsMemberBeaconKey struct { + Value awscryptographykeystoresmithygeneratedtypes.BeaconKeyMaterials +} + +func (*MaterialsMemberBeaconKey) isMaterials() {} + +type MaterialsMemberBranchKey struct { + Value awscryptographykeystoresmithygeneratedtypes.BranchKeyMaterials +} + +func (*MaterialsMemberBranchKey) isMaterials() {} + +type MaterialsMemberDecryption struct { + Value DecryptionMaterials +} + +func (*MaterialsMemberDecryption) isMaterials() {} + +type MaterialsMemberEncryption struct { + Value EncryptionMaterials +} + +func (*MaterialsMemberEncryption) isMaterials() {} + +// RawEcdhStaticConfigurationsMemberEphemeralPrivateKeyToStaticPublicKey +// RawEcdhStaticConfigurationsMemberPublicKeyDiscovery +// RawEcdhStaticConfigurationsMemberRawPrivateKeyToStaticPublicKey +type RawEcdhStaticConfigurations interface { + isRawEcdhStaticConfigurations() +} + +type RawEcdhStaticConfigurationsMemberEphemeralPrivateKeyToStaticPublicKey struct { + Value EphemeralPrivateKeyToStaticPublicKeyInput +} + +func (*RawEcdhStaticConfigurationsMemberEphemeralPrivateKeyToStaticPublicKey) isRawEcdhStaticConfigurations() { +} + +type RawEcdhStaticConfigurationsMemberPublicKeyDiscovery struct { + Value PublicKeyDiscoveryInput +} + +func (*RawEcdhStaticConfigurationsMemberPublicKeyDiscovery) isRawEcdhStaticConfigurations() {} + +type RawEcdhStaticConfigurationsMemberRawPrivateKeyToStaticPublicKey struct { + Value RawPrivateKeyToStaticPublicKeyInput +} + +func (*RawEcdhStaticConfigurationsMemberRawPrivateKeyToStaticPublicKey) isRawEcdhStaticConfigurations() { +} + +// SignatureAlgorithmMemberECDSA +// SignatureAlgorithmMemberNone +type SignatureAlgorithm interface { + isSignatureAlgorithm() +} + +type SignatureAlgorithmMemberECDSA struct { + Value ECDSA +} + +func (*SignatureAlgorithmMemberECDSA) isSignatureAlgorithm() {} + +type SignatureAlgorithmMemberNone struct { + Value None +} + +func (*SignatureAlgorithmMemberNone) isSignatureAlgorithm() {} + +// StaticConfigurationsMemberAWS_KMS_ECDH +// StaticConfigurationsMemberRAW_ECDH +type StaticConfigurations interface { + isStaticConfigurations() +} + +type StaticConfigurationsMemberAWS_KMS_ECDH struct { + Value KmsEcdhStaticConfigurations +} + +func (*StaticConfigurationsMemberAWS_KMS_ECDH) isStaticConfigurations() {} + +type StaticConfigurationsMemberRAW_ECDH struct { + Value RawEcdhStaticConfigurations +} + +func (*StaticConfigurationsMemberRAW_ECDH) isStaticConfigurations() {} + +// SymmetricSignatureAlgorithmMemberHMAC +// SymmetricSignatureAlgorithmMemberNone +type SymmetricSignatureAlgorithm interface { + isSymmetricSignatureAlgorithm() +} + +type SymmetricSignatureAlgorithmMemberHMAC struct { + Value awscryptographyprimitivessmithygeneratedtypes.DigestAlgorithm +} + +func (*SymmetricSignatureAlgorithmMemberHMAC) isSymmetricSignatureAlgorithm() {} + +type SymmetricSignatureAlgorithmMemberNone struct { + Value None +} + +func (*SymmetricSignatureAlgorithmMemberNone) isSymmetricSignatureAlgorithm() {} + +type AwsCryptographicMaterialProvidersBaseException 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 IBranchKeyIdSupplier interface { + GetBranchKeyId(GetBranchKeyIdInput) (*GetBranchKeyIdOutput, error) +} + +type IClientSupplier interface { + GetClient(GetClientInput) (kms.Client, error) +} + +type ICryptographicMaterialsCache interface { + PutCacheEntry(PutCacheEntryInput) error + + GetCacheEntry(GetCacheEntryInput) (*GetCacheEntryOutput, error) + + UpdateUsageMetadata(UpdateUsageMetadataInput) error + + DeleteCacheEntry(DeleteCacheEntryInput) error +} + +type ICryptographicMaterialsManager interface { + GetEncryptionMaterials(GetEncryptionMaterialsInput) (*GetEncryptionMaterialsOutput, error) + + DecryptMaterials(DecryptMaterialsInput) (*DecryptMaterialsOutput, error) +} + +type IKeyring interface { + OnEncrypt(OnEncryptInput) (*OnEncryptOutput, error) + + OnDecrypt(OnDecryptInput) (*OnDecryptOutput, error) +} diff --git a/customer-preview/mpl/awscryptographymaterialproviderssmithygeneratedtypes/unmodelled_errors.go b/customer-preview/mpl/awscryptographymaterialproviderssmithygeneratedtypes/unmodelled_errors.go new file mode 100644 index 000000000..392337831 --- /dev/null +++ b/customer-preview/mpl/awscryptographymaterialproviderssmithygeneratedtypes/unmodelled_errors.go @@ -0,0 +1,26 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package awscryptographymaterialproviderssmithygeneratedtypes + +import ( + "fmt" +) + +type CollectionOfErrors struct { + AwsCryptographicMaterialProvidersBaseException + ListOfErrors []error + Message string +} + +func (e CollectionOfErrors) Error() string { + return fmt.Sprintf("message: %s\n err %v", e.Message, e.ListOfErrors) +} + +type OpaqueError struct { + AwsCryptographicMaterialProvidersBaseException + ErrObject interface{} +} + +func (e OpaqueError) Error() string { + return fmt.Sprintf("message: %v", e.ErrObject) +} diff --git a/customer-preview/mpl/go.mod b/customer-preview/mpl/go.mod new file mode 100644 index 000000000..443eb49dc --- /dev/null +++ b/customer-preview/mpl/go.mod @@ -0,0 +1,38 @@ +module github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl + +go 1.23.0 + +require ( + github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb v0.0.0 + github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms v0.0.0 + github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives v0.0.0 + github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library v0.2.0 + github.com/aws/aws-sdk-go-v2/service/dynamodb v1.39.2 + github.com/aws/aws-sdk-go-v2/service/kms v1.36.0 + github.com/aws/smithy-go v1.22.1 + github.com/dafny-lang/DafnyRuntimeGo/v4 v4.9.2 +) + +require ( + github.com/aws/aws-sdk-go-v2 v1.32.8 // indirect + github.com/aws/aws-sdk-go-v2/config v1.28.10 // indirect + github.com/aws/aws-sdk-go-v2/credentials v1.17.51 // indirect + github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.23 // indirect + github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.27 // indirect + github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.27 // indirect + github.com/aws/aws-sdk-go-v2/internal/ini v1.8.1 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.1 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/endpoint-discovery v1.10.8 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.8 // indirect + github.com/aws/aws-sdk-go-v2/service/sso v1.24.9 // indirect + github.com/aws/aws-sdk-go-v2/service/ssooidc v1.28.8 // indirect + github.com/aws/aws-sdk-go-v2/service/sts v1.33.6 // indirect + github.com/google/uuid v1.6.0 // indirect + github.com/jmespath/go-jmespath v0.4.0 // indirect +) + +replace ( + github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb v0.0.0 => ../dynamodb/ + github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms v0.0.0 => ../kms/ + github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives v0.0.0 => ../primitives/ +) diff --git a/customer-preview/mpl/go.sum b/customer-preview/mpl/go.sum new file mode 100644 index 000000000..e34f1fe40 --- /dev/null +++ b/customer-preview/mpl/go.sum @@ -0,0 +1,50 @@ +github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library v0.2.0 h1:NhVxn86bWyWc/uOnE+oTikZdj75yOW6kMCfZNBf2x5E= +github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library v0.2.0/go.mod h1:m3mzHKiNiSC0LWeWX6ZAxSe6mKbJHgliux1Yu/sjCYI= +github.com/aws/aws-sdk-go-v2 v1.32.8 h1:cZV+NUS/eGxKXMtmyhtYPJ7Z4YLoI/V8bkTdRZfYhGo= +github.com/aws/aws-sdk-go-v2 v1.32.8/go.mod h1:P5WJBrYqqbWVaOxgH0X/FYYD47/nooaPOZPlQdmiN2U= +github.com/aws/aws-sdk-go-v2/config v1.28.10 h1:fKODZHfqQu06pCzR69KJ3GuttraRJkhlC8g80RZ0Dfg= +github.com/aws/aws-sdk-go-v2/config v1.28.10/go.mod h1:PvdxRYZ5Um9QMq9PQ0zHHNdtKK+he2NHtFCUFMXWXeg= +github.com/aws/aws-sdk-go-v2/credentials v1.17.51 h1:F/9Sm6Y6k4LqDesZDPJCLxQGXNNHd/ZtJiWd0lCZKRk= +github.com/aws/aws-sdk-go-v2/credentials v1.17.51/go.mod h1:TKbzCHm43AoPyA+iLGGcruXd4AFhF8tOmLex2R9jWNQ= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.23 h1:IBAoD/1d8A8/1aA8g4MBVtTRHhXRiNAgwdbo/xRM2DI= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.23/go.mod h1:vfENuCM7dofkgKpYzuzf1VT1UKkA/YL3qanfBn7HCaA= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.27 h1:jSJjSBzw8VDIbWv+mmvBSP8ezsztMYJGH+eKqi9AmNs= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.27/go.mod h1:/DAhLbFRgwhmvJdOfSm+WwikZrCuUJiA4WgJG0fTNSw= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.27 h1:l+X4K77Dui85pIj5foXDhPlnqcNRG2QUyvca300lXh8= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.27/go.mod h1:KvZXSFEXm6x84yE8qffKvT3x8J5clWnVFXphpohhzJ8= +github.com/aws/aws-sdk-go-v2/internal/ini v1.8.1 h1:VaRN3TlFdd6KxX1x3ILT5ynH6HvKgqdiXoTxAF4HQcQ= +github.com/aws/aws-sdk-go-v2/internal/ini v1.8.1/go.mod h1:FbtygfRFze9usAadmnGJNc8KsP346kEe+y2/oyhGAGc= +github.com/aws/aws-sdk-go-v2/service/dynamodb v1.39.2 h1:XcdIh35yg1J8bAiUOLtL/PoPMSGsD72Zanwmim8jEXc= +github.com/aws/aws-sdk-go-v2/service/dynamodb v1.39.2/go.mod h1:516U/KQM3zdcahNBjHUZKGWNfNnIYyt7sxLeqOx78b0= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.1 h1:iXtILhvDxB6kPvEXgsDhGaZCSC6LQET5ZHSdJozeI0Y= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.1/go.mod h1:9nu0fVANtYiAePIBh2/pFUSwtJ402hLnp854CNoDOeE= +github.com/aws/aws-sdk-go-v2/service/internal/endpoint-discovery v1.10.8 h1:h56mLNgpqWIL7RZOIQO634Xr569bXGTlIE83t/a0LSE= +github.com/aws/aws-sdk-go-v2/service/internal/endpoint-discovery v1.10.8/go.mod h1:kK04550Xx95KI0sNmwoB7ciS9QkRwt9TojhoTMXyJdo= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.8 h1:cWno7lefSH6Pp+mSznagKCgfDGeZRin66UvYUqAkyeA= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.8/go.mod h1:tPD+VjU3ABTBoEJ3nctu5Nyg4P4yjqSH5bJGGkY4+XE= +github.com/aws/aws-sdk-go-v2/service/kms v1.36.0 h1:jwWMpQ/1obJRdHaix9k10zWSnSMZGdDTZIDiS5CGzq8= +github.com/aws/aws-sdk-go-v2/service/kms v1.36.0/go.mod h1:OHmlX4+o0XIlJAQGAHPIy0N9yZcYS/vNG+T7geSNcFw= +github.com/aws/aws-sdk-go-v2/service/sso v1.24.9 h1:YqtxripbjWb2QLyzRK9pByfEDvgg95gpC2AyDq4hFE8= +github.com/aws/aws-sdk-go-v2/service/sso v1.24.9/go.mod h1:lV8iQpg6OLOfBnqbGMBKYjilBlf633qwHnBEiMSPoHY= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.28.8 h1:6dBT1Lz8fK11m22R+AqfRsFn8320K0T5DTGxxOQBSMw= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.28.8/go.mod h1:/kiBvRQXBc6xeJTYzhSdGvJ5vm1tjaDEjH+MSeRJnlY= +github.com/aws/aws-sdk-go-v2/service/sts v1.33.6 h1:VwhTrsTuVn52an4mXx29PqRzs2Dvu921NpGk7y43tAM= +github.com/aws/aws-sdk-go-v2/service/sts v1.33.6/go.mod h1:+8h7PZb3yY5ftmVLD7ocEoE98hdc8PoKS0H3wfx1dlc= +github.com/aws/smithy-go v1.22.1 h1:/HPHZQ0g7f4eUeK6HKglFz8uwVfZKgoI25rb/J+dnro= +github.com/aws/smithy-go v1.22.1/go.mod h1:irrKGvNn1InZwb2d7fkIRNucdfwR8R+Ts3wxYa/cJHg= +github.com/dafny-lang/DafnyRuntimeGo/v4 v4.9.2 h1:g/xAj4F7Zt9wXJ6QjfbfocVi/ZYlAFpNddHCFyfzRDg= +github.com/dafny-lang/DafnyRuntimeGo/v4 v4.9.2/go.mod h1:l2Tm4N2DKuq3ljONC2vOATeM9PUpXbIc8SgXdwwqEto= +github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8= +github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= +github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/jmespath/go-jmespath v0.4.0 h1:BEgLn5cpjn8UN1mAw4NjwDrS35OdebyEtFe+9YPoQUg= +github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo= +github.com/jmespath/go-jmespath/internal/testify v1.5.1 h1:shLQSRRSCCPj3f2gpwzGwWFoC7ycTf1rcQZHOlsJ6N8= +github.com/jmespath/go-jmespath/internal/testify v1.5.1/go.mod h1:L3OGu8Wl2/fWfCI6z80xFu9LTZmf1ZRjMHUOPmWr69U= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/yaml.v2 v2.2.8 h1:obN1ZagJSUGI0Ek/LBmuj4SNLPfIny3KsKFopxRdj10= +gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= diff --git a/customer-preview/primitives/AESEncryption/AESEncryption.go b/customer-preview/primitives/AESEncryption/AESEncryption.go new file mode 100644 index 000000000..5a96cd65d --- /dev/null +++ b/customer-preview/primitives/AESEncryption/AESEncryption.go @@ -0,0 +1,250 @@ +// Package AESEncryption +// Dafny module AESEncryption compiled into Go + +package AESEncryption + +import ( + os "os" + + m_AwsCryptographyPrimitivesTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesTypes" + m_Random "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Random" + m_Actions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Actions" + m_Base64 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64" + m_Base64Lemmas "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64Lemmas" + m_BoundedInts "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/BoundedInts" + m_DivInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternals" + m_DivInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternalsNonlinear" + m_DivMod "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivMod" + m_FileIO "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FileIO" + m_FloatCompare "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FloatCompare" + m_Functions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Functions" + m_GeneralInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GeneralInternals" + m_GetOpt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GetOpt" + m_HexStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/HexStrings" + m_Logarithm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Logarithm" + m__Math "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Math_" + m_ModInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternals" + m_ModInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternalsNonlinear" + m_Mul "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Mul" + m_MulInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternals" + m_MulInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternalsNonlinear" + m_Power "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Power" + m_Relations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Relations" + m_Seq "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq" + m_Seq_MergeSort "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq_MergeSort" + m_Sorting "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Sorting" + m_StandardLibrary "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary" + m_StandardLibraryInterop "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibraryInterop" + m_StandardLibrary_Sequence "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_Sequence" + m_StandardLibrary_String "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_String" + m_StandardLibrary_UInt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_UInt" + m_Streams "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Streams" + m_UnicodeStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UnicodeStrings" + m__Unicode "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Unicode_" + m_Utf16EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf16EncodingForm" + m_Utf8EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf8EncodingForm" + m_Wrappers "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers" + m__System "github.com/dafny-lang/DafnyRuntimeGo/v4/System_" + _dafny "github.com/dafny-lang/DafnyRuntimeGo/v4/dafny" +) + +var _ = os.Args +var _ _dafny.Dummy__ +var _ m__System.Dummy__ +var _ m_Wrappers.Dummy__ +var _ m_Relations.Dummy__ +var _ m_Seq_MergeSort.Dummy__ +var _ m__Math.Dummy__ +var _ m_Seq.Dummy__ +var _ m_BoundedInts.Dummy__ +var _ m__Unicode.Dummy__ +var _ m_Functions.Dummy__ +var _ m_Utf8EncodingForm.Dummy__ +var _ m_Utf16EncodingForm.Dummy__ +var _ m_UnicodeStrings.Dummy__ +var _ m_FileIO.Dummy__ +var _ m_GeneralInternals.Dummy__ +var _ m_MulInternalsNonlinear.Dummy__ +var _ m_MulInternals.Dummy__ +var _ m_Mul.Dummy__ +var _ m_ModInternalsNonlinear.Dummy__ +var _ m_DivInternalsNonlinear.Dummy__ +var _ m_ModInternals.Dummy__ +var _ m_DivInternals.Dummy__ +var _ m_DivMod.Dummy__ +var _ m_Power.Dummy__ +var _ m_Logarithm.Dummy__ +var _ m_StandardLibraryInterop.Dummy__ +var _ m_StandardLibrary_UInt.Dummy__ +var _ m_StandardLibrary_Sequence.Dummy__ +var _ m_StandardLibrary_String.Dummy__ +var _ m_StandardLibrary.Dummy__ +var _ m_Streams.Dummy__ +var _ m_Sorting.Dummy__ +var _ m_HexStrings.Dummy__ +var _ m_GetOpt.Dummy__ +var _ m_FloatCompare.Dummy__ +var _ m_Base64.Dummy__ +var _ m_Base64Lemmas.Dummy__ +var _ m_Actions.Dummy__ +var _ m_AwsCryptographyPrimitivesTypes.Dummy__ +var _ m_Random.Dummy__ + +type Dummy__ struct{} + +// Definition of class Default__ +type Default__ struct { + dummy byte +} + +func New_Default___() *Default__ { + _this := Default__{} + + return &_this +} + +type CompanionStruct_Default___ struct { +} + +var Companion_Default___ = CompanionStruct_Default___{} + +func (_this *Default__) Equals(other *Default__) bool { + return _this == other +} + +func (_this *Default__) EqualsGeneric(x interface{}) bool { + other, ok := x.(*Default__) + return ok && _this.Equals(other) +} + +func (*Default__) String() string { + return "AESEncryption.Default__" +} +func (_this *Default__) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = &Default__{} + +func (_static *CompanionStruct_Default___) EncryptionOutputFromByteSeq(s _dafny.Sequence, encAlg m_AwsCryptographyPrimitivesTypes.AES__GCM) m_AwsCryptographyPrimitivesTypes.AESEncryptOutput { + var _0_cipherText _dafny.Sequence = (s).Take(((_dafny.IntOfUint32((s).Cardinality())).Minus(_dafny.IntOfInt32((encAlg).Dtor_tagLength()))).Uint32()) + _ = _0_cipherText + var _1_authTag _dafny.Sequence = (s).Drop(((_dafny.IntOfUint32((s).Cardinality())).Minus(_dafny.IntOfInt32((encAlg).Dtor_tagLength()))).Uint32()) + _ = _1_authTag + return m_AwsCryptographyPrimitivesTypes.Companion_AESEncryptOutput_.Create_AESEncryptOutput_(_0_cipherText, _1_authTag) +} +func (_static *CompanionStruct_Default___) AESEncrypt(input m_AwsCryptographyPrimitivesTypes.AESEncryptInput) m_Wrappers.Result { + var res m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_AwsCryptographyPrimitivesTypes.Companion_AESEncryptOutput_.Default()) + _ = res + var _0_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _0_valueOrError0 + _0_valueOrError0 = m_Wrappers.Companion_Default___.Need(((_dafny.IntOfUint32(((input).Dtor_iv()).Cardinality())).Cmp(_dafny.IntOfInt32(((input).Dtor_encAlg()).Dtor_ivLength())) == 0) && ((_dafny.IntOfUint32(((input).Dtor_key()).Cardinality())).Cmp(_dafny.IntOfInt32(((input).Dtor_encAlg()).Dtor_keyLength())) == 0), m_AwsCryptographyPrimitivesTypes.Companion_Error_.Create_AwsCryptographicPrimitivesError_(_dafny.SeqOfString("Request does not match algorithm."))) + if (_0_valueOrError0).IsFailure() { + res = (_0_valueOrError0).PropagateFailure() + return res + } + var _let_tmp_rhs0 m_AwsCryptographyPrimitivesTypes.AESEncryptInput = input + _ = _let_tmp_rhs0 + var _1_encAlg m_AwsCryptographyPrimitivesTypes.AES__GCM = _let_tmp_rhs0.Get_().(m_AwsCryptographyPrimitivesTypes.AESEncryptInput_AESEncryptInput).EncAlg + _ = _1_encAlg + var _2_iv _dafny.Sequence = _let_tmp_rhs0.Get_().(m_AwsCryptographyPrimitivesTypes.AESEncryptInput_AESEncryptInput).Iv + _ = _2_iv + var _3_key _dafny.Sequence = _let_tmp_rhs0.Get_().(m_AwsCryptographyPrimitivesTypes.AESEncryptInput_AESEncryptInput).Key + _ = _3_key + var _4_msg _dafny.Sequence = _let_tmp_rhs0.Get_().(m_AwsCryptographyPrimitivesTypes.AESEncryptInput_AESEncryptInput).Msg + _ = _4_msg + var _5_aad _dafny.Sequence = _let_tmp_rhs0.Get_().(m_AwsCryptographyPrimitivesTypes.AESEncryptInput_AESEncryptInput).Aad + _ = _5_aad + var _6_valueOrError1 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_AwsCryptographyPrimitivesTypes.Companion_AESEncryptOutput_.Default()) + _ = _6_valueOrError1 + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_AESEncryption.AES_GCM.AESEncryptExtern(_1_encAlg, _2_iv, _3_key, _4_msg, _5_aad) + _6_valueOrError1 = _out0 + if (_6_valueOrError1).IsFailure() { + res = (_6_valueOrError1).PropagateFailure() + return res + } + var _7_value m_AwsCryptographyPrimitivesTypes.AESEncryptOutput + _ = _7_value + _7_value = (_6_valueOrError1).Extract().(m_AwsCryptographyPrimitivesTypes.AESEncryptOutput) + var _8_valueOrError2 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _8_valueOrError2 + _8_valueOrError2 = m_Wrappers.Companion_Default___.Need((_dafny.IntOfUint32(((_7_value).Dtor_cipherText()).Cardinality())).Cmp(_dafny.IntOfUint32((_4_msg).Cardinality())) == 0, m_AwsCryptographyPrimitivesTypes.Companion_Error_.Create_AwsCryptographicPrimitivesError_(_dafny.SeqOfString("AESEncrypt did not return cipherText of expected length"))) + if (_8_valueOrError2).IsFailure() { + res = (_8_valueOrError2).PropagateFailure() + return res + } + var _9_valueOrError3 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _9_valueOrError3 + _9_valueOrError3 = m_Wrappers.Companion_Default___.Need((_dafny.IntOfUint32(((_7_value).Dtor_authTag()).Cardinality())).Cmp(_dafny.IntOfInt32((_1_encAlg).Dtor_tagLength())) == 0, m_AwsCryptographyPrimitivesTypes.Companion_Error_.Create_AwsCryptographicPrimitivesError_(_dafny.SeqOfString("AESEncryption did not return valid tag"))) + if (_9_valueOrError3).IsFailure() { + res = (_9_valueOrError3).PropagateFailure() + return res + } + res = m_Wrappers.Companion_Result_.Create_Success_(_7_value) + return res + return res +} +func (_static *CompanionStruct_Default___) AESDecrypt(input m_AwsCryptographyPrimitivesTypes.AESDecryptInput) m_Wrappers.Result { + var res m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = res + var _0_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _0_valueOrError0 + _0_valueOrError0 = m_Wrappers.Companion_Default___.Need((((_dafny.IntOfUint32(((input).Dtor_key()).Cardinality())).Cmp(_dafny.IntOfInt32(((input).Dtor_encAlg()).Dtor_keyLength())) == 0) && ((_dafny.IntOfUint32(((input).Dtor_iv()).Cardinality())).Cmp(_dafny.IntOfInt32(((input).Dtor_encAlg()).Dtor_ivLength())) == 0)) && ((_dafny.IntOfUint32(((input).Dtor_authTag()).Cardinality())).Cmp(_dafny.IntOfInt32(((input).Dtor_encAlg()).Dtor_tagLength())) == 0), m_AwsCryptographyPrimitivesTypes.Companion_Error_.Create_AwsCryptographicPrimitivesError_(_dafny.SeqOfString("Request does not match algorithm."))) + if (_0_valueOrError0).IsFailure() { + res = (_0_valueOrError0).PropagateFailure() + return res + } + var _let_tmp_rhs0 m_AwsCryptographyPrimitivesTypes.AESDecryptInput = input + _ = _let_tmp_rhs0 + var _1_encAlg m_AwsCryptographyPrimitivesTypes.AES__GCM = _let_tmp_rhs0.Get_().(m_AwsCryptographyPrimitivesTypes.AESDecryptInput_AESDecryptInput).EncAlg + _ = _1_encAlg + var _2_key _dafny.Sequence = _let_tmp_rhs0.Get_().(m_AwsCryptographyPrimitivesTypes.AESDecryptInput_AESDecryptInput).Key + _ = _2_key + var _3_cipherTxt _dafny.Sequence = _let_tmp_rhs0.Get_().(m_AwsCryptographyPrimitivesTypes.AESDecryptInput_AESDecryptInput).CipherTxt + _ = _3_cipherTxt + var _4_authTag _dafny.Sequence = _let_tmp_rhs0.Get_().(m_AwsCryptographyPrimitivesTypes.AESDecryptInput_AESDecryptInput).AuthTag + _ = _4_authTag + var _5_iv _dafny.Sequence = _let_tmp_rhs0.Get_().(m_AwsCryptographyPrimitivesTypes.AESDecryptInput_AESDecryptInput).Iv + _ = _5_iv + var _6_aad _dafny.Sequence = _let_tmp_rhs0.Get_().(m_AwsCryptographyPrimitivesTypes.AESDecryptInput_AESDecryptInput).Aad + _ = _6_aad + var _7_valueOrError1 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = _7_valueOrError1 + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_AESEncryption.AES_GCM.AESDecryptExtern(_1_encAlg, _2_key, _3_cipherTxt, _4_authTag, _5_iv, _6_aad) + _7_valueOrError1 = _out0 + if (_7_valueOrError1).IsFailure() { + res = (_7_valueOrError1).PropagateFailure() + return res + } + var _8_value _dafny.Sequence + _ = _8_value + _8_value = (_7_valueOrError1).Extract().(_dafny.Sequence) + var _9_valueOrError2 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _9_valueOrError2 + _9_valueOrError2 = m_Wrappers.Companion_Default___.Need((_dafny.IntOfUint32((_3_cipherTxt).Cardinality())).Cmp(_dafny.IntOfUint32((_8_value).Cardinality())) == 0, m_AwsCryptographyPrimitivesTypes.Companion_Error_.Create_AwsCryptographicPrimitivesError_(_dafny.SeqOfString("AESDecrypt did not return plaintext of expected length"))) + if (_9_valueOrError2).IsFailure() { + res = (_9_valueOrError2).PropagateFailure() + return res + } + res = m_Wrappers.Companion_Result_.Create_Success_(_8_value) + return res + return res +} +func (_static *CompanionStruct_Default___) CreateAESEncryptExternSuccess(output m_AwsCryptographyPrimitivesTypes.AESEncryptOutput) m_Wrappers.Result { + return m_Wrappers.Companion_Result_.Create_Success_(output) +} +func (_static *CompanionStruct_Default___) CreateAESEncryptExternFailure(error_ m_AwsCryptographyPrimitivesTypes.Error) m_Wrappers.Result { + return m_Wrappers.Companion_Result_.Create_Failure_(error_) +} +func (_static *CompanionStruct_Default___) CreateAESDecryptExternSuccess(bytes _dafny.Sequence) m_Wrappers.Result { + return m_Wrappers.Companion_Result_.Create_Success_(bytes) +} +func (_static *CompanionStruct_Default___) CreateAESDecryptExternFailure(error_ m_AwsCryptographyPrimitivesTypes.Error) m_Wrappers.Result { + return m_Wrappers.Companion_Result_.Create_Failure_(error_) +} + +// End of class Default__ diff --git a/customer-preview/primitives/AESEncryption/externs.go b/customer-preview/primitives/AESEncryption/externs.go new file mode 100644 index 000000000..a0c160f9a --- /dev/null +++ b/customer-preview/primitives/AESEncryption/externs.go @@ -0,0 +1,99 @@ +package AESEncryption + +import ( + "crypto/aes" + "crypto/cipher" + "fmt" + + "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesTypes" + "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers" + "github.com/dafny-lang/DafnyRuntimeGo/v4/dafny" +) + +var m_AESEncryption struct { + AES_GCM CompanionStruct_Default___ +} + +func (CompanionStruct_Default___) AESDecryptExtern(algo AwsCryptographyPrimitivesTypes.AES__GCM, key dafny.Sequence, + cipherText dafny.Sequence, authTag dafny.Sequence, iv dafny.Sequence, aad dafny.Sequence) Wrappers.Result { + + keyBytes := dafny.ToByteArray(key) + cipherTextBytes := dafny.ToByteArray(cipherText) + authTagBytes := dafny.ToByteArray(authTag) + ivBytes := dafny.ToByteArray(iv) + aadBytes := dafny.ToByteArray(aad) + + if algo.Dtor_keyLength() != int32(len(keyBytes)) { + return Wrappers.Companion_Result_.Create_Failure_(AwsCryptographyPrimitivesTypes.Companion_Error_.Create_AwsCryptographicPrimitivesError_( + dafny.SeqOfChars([]dafny.Char(fmt.Errorf("algorithm key length %d doesn't match actual key length %d ", algo.Dtor_keyLength(), len(keyBytes)).Error())...))) + + } + + if algo.Dtor_ivLength() != int32(len(ivBytes)) { + return Wrappers.Companion_Result_.Create_Failure_(AwsCryptographyPrimitivesTypes.Companion_Error_.Create_AwsCryptographicPrimitivesError_( + dafny.SeqOfChars([]dafny.Char(fmt.Errorf("algorithm iv length %d doesn't match actual iv length %d ", algo.Dtor_ivLength(), len(ivBytes)).Error())...))) + } + + if algo.Dtor_tagLength() != int32(len(authTagBytes)) { + return Wrappers.Companion_Result_.Create_Failure_(AwsCryptographyPrimitivesTypes.Companion_Error_.Create_AwsCryptographicPrimitivesError_( + dafny.SeqOfChars([]dafny.Char(fmt.Errorf("algorithm tag length %d doesn't match actual tag length %d ", algo.Dtor_tagLength(), len(authTagBytes)).Error())...))) + } + + block, err := aes.NewCipher(keyBytes) + if err != nil { + return Wrappers.Companion_Result_.Create_Failure_(AwsCryptographyPrimitivesTypes.Companion_Error_.Create_AwsCryptographicPrimitivesError_( + dafny.SeqOfChars([]dafny.Char(err.Error())...))) + } + + gcm, err := cipher.NewGCM(block) + if err != nil { + return Wrappers.Companion_Result_.Create_Failure_(AwsCryptographyPrimitivesTypes.Companion_Error_.Create_AwsCryptographicPrimitivesError_( + dafny.SeqOfChars([]dafny.Char(err.Error())...))) + } + + plaintext, err := gcm.Open(nil, ivBytes, append(cipherTextBytes, authTagBytes...), aadBytes) + if err != nil { + return Wrappers.Companion_Result_.Create_Failure_(AwsCryptographyPrimitivesTypes.Companion_Error_.Create_AwsCryptographicPrimitivesError_( + dafny.SeqOfChars([]dafny.Char(err.Error())...))) + } + return Wrappers.Companion_Result_.Create_Success_(dafny.SeqOfBytes(plaintext)) +} + +func (CompanionStruct_Default___) AESEncryptExtern(algo AwsCryptographyPrimitivesTypes.AES__GCM, iv dafny.Sequence, + key dafny.Sequence, msg dafny.Sequence, aad dafny.Sequence) Wrappers.Result { + + keyBytes := dafny.ToByteArray(key) + ivBytes := dafny.ToByteArray(iv) + aadBytes := dafny.ToByteArray(aad) + + if algo.Dtor_keyLength() != int32(len(keyBytes)) { + return Wrappers.Companion_Result_.Create_Failure_(AwsCryptographyPrimitivesTypes.Companion_Error_.Create_AwsCryptographicPrimitivesError_( + dafny.SeqOfChars([]dafny.Char(fmt.Errorf("algorithm key length %d doesn't match actual key length %d ", algo.Dtor_keyLength(), len(keyBytes)).Error())...))) + + } + + if algo.Dtor_ivLength() != int32(len(ivBytes)) { + return Wrappers.Companion_Result_.Create_Failure_(AwsCryptographyPrimitivesTypes.Companion_Error_.Create_AwsCryptographicPrimitivesError_( + dafny.SeqOfChars([]dafny.Char(fmt.Errorf("algorithm iv length %d doesn't match actual iv length %d ", algo.Dtor_ivLength(), len(ivBytes)).Error())...))) + } + + block, err := aes.NewCipher(keyBytes) + if err != nil { + return Wrappers.Companion_Result_.Create_Failure_(AwsCryptographyPrimitivesTypes.Companion_Error_.Create_AwsCryptographicPrimitivesError_( + dafny.SeqOfChars([]dafny.Char(err.Error())...))) + } + + gcm, err := cipher.NewGCM(block) + if err != nil { + return Wrappers.Companion_Result_.Create_Failure_(AwsCryptographyPrimitivesTypes.Companion_Error_.Create_AwsCryptographicPrimitivesError_( + dafny.SeqOfChars([]dafny.Char(err.Error())...))) + } + + cipherText := gcm.Seal(nil, ivBytes, dafny.ToByteArray(msg), aadBytes) + if cipherText == nil { + return Wrappers.Companion_Result_.Create_Failure_(AwsCryptographyPrimitivesTypes.Companion_Error_.Create_AwsCryptographicPrimitivesError_( + dafny.SeqOfChars([]dafny.Char(fmt.Errorf("failed to do AES_GCM Encrypt with the given parameters").Error())...))) + } + return Wrappers.Companion_Result_.Create_Success_(AwsCryptographyPrimitivesTypes.Companion_AESEncryptOutput_.Create_AESEncryptOutput_( + dafny.SeqOfBytes(cipherText[:len(cipherText)-gcm.Overhead()]), dafny.SeqOfBytes(cipherText[len(cipherText)-gcm.Overhead():]))) +} diff --git a/customer-preview/primitives/AesKdfCtr/AesKdfCtr.go b/customer-preview/primitives/AesKdfCtr/AesKdfCtr.go new file mode 100644 index 000000000..985df382c --- /dev/null +++ b/customer-preview/primitives/AesKdfCtr/AesKdfCtr.go @@ -0,0 +1,150 @@ +// Package AesKdfCtr +// Dafny module AesKdfCtr compiled into Go + +package AesKdfCtr + +import ( + os "os" + + m_AtomicPrimitives "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AtomicPrimitives" + m_AwsCryptographyPrimitivesOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesOperations" + m_AwsCryptographyPrimitivesTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesTypes" + m_Digest "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Digest" + m_HKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/HKDF" + m_KdfCtr "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/KdfCtr" + m_Random "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Random" + m_WrappedHKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHKDF" + m_WrappedHMAC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHMAC" + m_Actions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Actions" + m_Base64 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64" + m_Base64Lemmas "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64Lemmas" + m_BoundedInts "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/BoundedInts" + m_DivInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternals" + m_DivInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternalsNonlinear" + m_DivMod "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivMod" + m_FileIO "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FileIO" + m_FloatCompare "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FloatCompare" + m_Functions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Functions" + m_GeneralInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GeneralInternals" + m_GetOpt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GetOpt" + m_HexStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/HexStrings" + m_Logarithm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Logarithm" + m__Math "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Math_" + m_ModInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternals" + m_ModInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternalsNonlinear" + m_Mul "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Mul" + m_MulInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternals" + m_MulInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternalsNonlinear" + m_Power "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Power" + m_Relations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Relations" + m_Seq "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq" + m_Seq_MergeSort "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq_MergeSort" + m_Sorting "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Sorting" + m_StandardLibrary "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary" + m_StandardLibraryInterop "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibraryInterop" + m_StandardLibrary_Sequence "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_Sequence" + m_StandardLibrary_String "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_String" + m_StandardLibrary_UInt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_UInt" + m_Streams "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Streams" + m_UnicodeStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UnicodeStrings" + m__Unicode "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Unicode_" + m_Utf16EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf16EncodingForm" + m_Utf8EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf8EncodingForm" + m_Wrappers "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers" + m__System "github.com/dafny-lang/DafnyRuntimeGo/v4/System_" + _dafny "github.com/dafny-lang/DafnyRuntimeGo/v4/dafny" +) + +var _ = os.Args +var _ _dafny.Dummy__ +var _ m__System.Dummy__ +var _ m_Wrappers.Dummy__ +var _ m_Relations.Dummy__ +var _ m_Seq_MergeSort.Dummy__ +var _ m__Math.Dummy__ +var _ m_Seq.Dummy__ +var _ m_BoundedInts.Dummy__ +var _ m__Unicode.Dummy__ +var _ m_Functions.Dummy__ +var _ m_Utf8EncodingForm.Dummy__ +var _ m_Utf16EncodingForm.Dummy__ +var _ m_UnicodeStrings.Dummy__ +var _ m_FileIO.Dummy__ +var _ m_GeneralInternals.Dummy__ +var _ m_MulInternalsNonlinear.Dummy__ +var _ m_MulInternals.Dummy__ +var _ m_Mul.Dummy__ +var _ m_ModInternalsNonlinear.Dummy__ +var _ m_DivInternalsNonlinear.Dummy__ +var _ m_ModInternals.Dummy__ +var _ m_DivInternals.Dummy__ +var _ m_DivMod.Dummy__ +var _ m_Power.Dummy__ +var _ m_Logarithm.Dummy__ +var _ m_StandardLibraryInterop.Dummy__ +var _ m_StandardLibrary_UInt.Dummy__ +var _ m_StandardLibrary_Sequence.Dummy__ +var _ m_StandardLibrary_String.Dummy__ +var _ m_StandardLibrary.Dummy__ +var _ m_Streams.Dummy__ +var _ m_Sorting.Dummy__ +var _ m_HexStrings.Dummy__ +var _ m_GetOpt.Dummy__ +var _ m_FloatCompare.Dummy__ +var _ m_Base64.Dummy__ +var _ m_Base64Lemmas.Dummy__ +var _ m_Actions.Dummy__ +var _ m_AwsCryptographyPrimitivesTypes.Dummy__ +var _ m_Random.Dummy__ +var _ m_Digest.Dummy__ +var _ m_WrappedHMAC.Dummy__ +var _ m_HKDF.Dummy__ +var _ m_WrappedHKDF.Dummy__ +var _ m_KdfCtr.Dummy__ +var _ m_AwsCryptographyPrimitivesOperations.Dummy__ +var _ m_AtomicPrimitives.Dummy__ + +type Dummy__ struct{} + +// Definition of class Default__ +type Default__ struct { + dummy byte +} + +func New_Default___() *Default__ { + _this := Default__{} + + return &_this +} + +type CompanionStruct_Default___ struct { +} + +var Companion_Default___ = CompanionStruct_Default___{} + +func (_this *Default__) Equals(other *Default__) bool { + return _this == other +} + +func (_this *Default__) EqualsGeneric(x interface{}) bool { + other, ok := x.(*Default__) + return ok && _this.Equals(other) +} + +func (*Default__) String() string { + return "AesKdfCtr.Default__" +} +func (_this *Default__) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = &Default__{} + +func (_static *CompanionStruct_Default___) CreateStreamSuccess(bytes _dafny.Sequence) m_Wrappers.Result { + return m_Wrappers.Companion_Result_.Create_Success_(bytes) +} +func (_static *CompanionStruct_Default___) CreateStreamFailure(error_ m_AwsCryptographyPrimitivesTypes.Error) m_Wrappers.Result { + return m_Wrappers.Companion_Result_.Create_Failure_(error_) +} + +// End of class Default__ diff --git a/customer-preview/primitives/AesKdfCtr/externs.go b/customer-preview/primitives/AesKdfCtr/externs.go new file mode 100644 index 000000000..bcfb083a7 --- /dev/null +++ b/customer-preview/primitives/AesKdfCtr/externs.go @@ -0,0 +1,25 @@ +package AesKdfCtr + +import ( + "crypto/aes" + "crypto/cipher" + + "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers" + dafny "github.com/dafny-lang/DafnyRuntimeGo/v4/dafny" +) + +func AesKdfCtrStream(nonce dafny.Sequence, key dafny.Sequence, length uint32) Wrappers.Result { + + block, err := aes.NewCipher(dafny.ToByteArray(key)) + + if err != nil { + panic(err) + } + + stream := cipher.NewCTR(block, dafny.ToByteArray(nonce)) + + result := make([]byte, length) + + stream.XORKeyStream(result, make([]byte, length)) + return Wrappers.Companion_Result_.Create_Success_(dafny.SeqOfBytes(result)) +} diff --git a/customer-preview/primitives/AtomicPrimitives/AtomicPrimitives.go b/customer-preview/primitives/AtomicPrimitives/AtomicPrimitives.go new file mode 100644 index 000000000..f4b13a129 --- /dev/null +++ b/customer-preview/primitives/AtomicPrimitives/AtomicPrimitives.go @@ -0,0 +1,480 @@ +// Package AtomicPrimitives +// Dafny module AtomicPrimitives compiled into Go + +package AtomicPrimitives + +import ( + os "os" + + m_AwsCryptographyPrimitivesOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesOperations" + m_AwsCryptographyPrimitivesTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesTypes" + m_Digest "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Digest" + m_HKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/HKDF" + m_KdfCtr "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/KdfCtr" + m_Random "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Random" + m_WrappedHKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHKDF" + m_WrappedHMAC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHMAC" + m_Actions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Actions" + m_Base64 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64" + m_Base64Lemmas "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64Lemmas" + m_BoundedInts "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/BoundedInts" + m_DivInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternals" + m_DivInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternalsNonlinear" + m_DivMod "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivMod" + m_FileIO "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FileIO" + m_FloatCompare "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FloatCompare" + m_Functions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Functions" + m_GeneralInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GeneralInternals" + m_GetOpt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GetOpt" + m_HexStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/HexStrings" + m_Logarithm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Logarithm" + m__Math "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Math_" + m_ModInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternals" + m_ModInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternalsNonlinear" + m_Mul "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Mul" + m_MulInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternals" + m_MulInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternalsNonlinear" + m_Power "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Power" + m_Relations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Relations" + m_Seq "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq" + m_Seq_MergeSort "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq_MergeSort" + m_Sorting "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Sorting" + m_StandardLibrary "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary" + m_StandardLibraryInterop "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibraryInterop" + m_StandardLibrary_Sequence "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_Sequence" + m_StandardLibrary_String "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_String" + m_StandardLibrary_UInt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_UInt" + m_Streams "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Streams" + m_UnicodeStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UnicodeStrings" + m__Unicode "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Unicode_" + m_Utf16EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf16EncodingForm" + m_Utf8EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf8EncodingForm" + m_Wrappers "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers" + m__System "github.com/dafny-lang/DafnyRuntimeGo/v4/System_" + _dafny "github.com/dafny-lang/DafnyRuntimeGo/v4/dafny" +) + +var _ = os.Args +var _ _dafny.Dummy__ +var _ m__System.Dummy__ +var _ m_Wrappers.Dummy__ +var _ m_Relations.Dummy__ +var _ m_Seq_MergeSort.Dummy__ +var _ m__Math.Dummy__ +var _ m_Seq.Dummy__ +var _ m_BoundedInts.Dummy__ +var _ m__Unicode.Dummy__ +var _ m_Functions.Dummy__ +var _ m_Utf8EncodingForm.Dummy__ +var _ m_Utf16EncodingForm.Dummy__ +var _ m_UnicodeStrings.Dummy__ +var _ m_FileIO.Dummy__ +var _ m_GeneralInternals.Dummy__ +var _ m_MulInternalsNonlinear.Dummy__ +var _ m_MulInternals.Dummy__ +var _ m_Mul.Dummy__ +var _ m_ModInternalsNonlinear.Dummy__ +var _ m_DivInternalsNonlinear.Dummy__ +var _ m_ModInternals.Dummy__ +var _ m_DivInternals.Dummy__ +var _ m_DivMod.Dummy__ +var _ m_Power.Dummy__ +var _ m_Logarithm.Dummy__ +var _ m_StandardLibraryInterop.Dummy__ +var _ m_StandardLibrary_UInt.Dummy__ +var _ m_StandardLibrary_Sequence.Dummy__ +var _ m_StandardLibrary_String.Dummy__ +var _ m_StandardLibrary.Dummy__ +var _ m_Streams.Dummy__ +var _ m_Sorting.Dummy__ +var _ m_HexStrings.Dummy__ +var _ m_GetOpt.Dummy__ +var _ m_FloatCompare.Dummy__ +var _ m_Base64.Dummy__ +var _ m_Base64Lemmas.Dummy__ +var _ m_Actions.Dummy__ +var _ m_AwsCryptographyPrimitivesTypes.Dummy__ +var _ m_Random.Dummy__ +var _ m_Digest.Dummy__ +var _ m_WrappedHMAC.Dummy__ +var _ m_HKDF.Dummy__ +var _ m_WrappedHKDF.Dummy__ +var _ m_KdfCtr.Dummy__ +var _ m_AwsCryptographyPrimitivesOperations.Dummy__ + +type Dummy__ struct{} + +// Definition of class Default__ +type Default__ struct { + dummy byte +} + +func New_Default___() *Default__ { + _this := Default__{} + + return &_this +} + +type CompanionStruct_Default___ struct { +} + +var Companion_Default___ = CompanionStruct_Default___{} + +func (_this *Default__) Equals(other *Default__) bool { + return _this == other +} + +func (_this *Default__) EqualsGeneric(x interface{}) bool { + other, ok := x.(*Default__) + return ok && _this.Equals(other) +} + +func (*Default__) String() string { + return "AtomicPrimitives.Default__" +} +func (_this *Default__) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = &Default__{} + +func (_static *CompanionStruct_Default___) DefaultCryptoConfig() m_AwsCryptographyPrimitivesTypes.CryptoConfig { + return m_AwsCryptographyPrimitivesTypes.Companion_CryptoConfig_.Create_CryptoConfig_() +} +func (_static *CompanionStruct_Default___) AtomicPrimitives(config m_AwsCryptographyPrimitivesTypes.CryptoConfig) m_Wrappers.Result { + var res m_Wrappers.Result = m_Wrappers.Result{} + _ = res + var _0_client *AtomicPrimitivesClient + _ = _0_client + var _nw0 *AtomicPrimitivesClient = New_AtomicPrimitivesClient_() + _ = _nw0 + _nw0.Ctor__(m_AwsCryptographyPrimitivesOperations.Companion_Config_.Create_Config_()) + _0_client = _nw0 + res = m_Wrappers.Companion_Result_.Create_Success_(_0_client) + return res + return res +} +func (_static *CompanionStruct_Default___) CreateSuccessOfClient(client m_AwsCryptographyPrimitivesTypes.IAwsCryptographicPrimitivesClient) m_Wrappers.Result { + return m_Wrappers.Companion_Result_.Create_Success_(client) +} +func (_static *CompanionStruct_Default___) CreateFailureOfError(error_ m_AwsCryptographyPrimitivesTypes.Error) m_Wrappers.Result { + return m_Wrappers.Companion_Result_.Create_Failure_(error_) +} + +// End of class Default__ + +// Definition of class AtomicPrimitivesClient +type AtomicPrimitivesClient struct { + _config m_AwsCryptographyPrimitivesOperations.Config +} + +func New_AtomicPrimitivesClient_() *AtomicPrimitivesClient { + _this := AtomicPrimitivesClient{} + + _this._config = m_AwsCryptographyPrimitivesOperations.Companion_Config_.Default() + return &_this +} + +type CompanionStruct_AtomicPrimitivesClient_ struct { +} + +var Companion_AtomicPrimitivesClient_ = CompanionStruct_AtomicPrimitivesClient_{} + +func (_this *AtomicPrimitivesClient) Equals(other *AtomicPrimitivesClient) bool { + return _this == other +} + +func (_this *AtomicPrimitivesClient) EqualsGeneric(x interface{}) bool { + other, ok := x.(*AtomicPrimitivesClient) + return ok && _this.Equals(other) +} + +func (*AtomicPrimitivesClient) String() string { + return "AtomicPrimitives.AtomicPrimitivesClient" +} + +func Type_AtomicPrimitivesClient_() _dafny.TypeDescriptor { + return type_AtomicPrimitivesClient_{} +} + +type type_AtomicPrimitivesClient_ struct { +} + +func (_this type_AtomicPrimitivesClient_) Default() interface{} { + return (*AtomicPrimitivesClient)(nil) +} + +func (_this type_AtomicPrimitivesClient_) String() string { + return "AtomicPrimitives.AtomicPrimitivesClient" +} +func (_this *AtomicPrimitivesClient) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){m_AwsCryptographyPrimitivesTypes.Companion_IAwsCryptographicPrimitivesClient_.TraitID_} +} + +var _ m_AwsCryptographyPrimitivesTypes.IAwsCryptographicPrimitivesClient = &AtomicPrimitivesClient{} +var _ _dafny.TraitOffspring = &AtomicPrimitivesClient{} + +func (_this *AtomicPrimitivesClient) Ctor__(config m_AwsCryptographyPrimitivesOperations.Config) { + { + (_this)._config = config + } +} +func (_this *AtomicPrimitivesClient) GenerateRandomBytes(input m_AwsCryptographyPrimitivesTypes.GenerateRandomBytesInput) m_Wrappers.Result { + { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = output + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_AwsCryptographyPrimitivesOperations.Companion_Default___.GenerateRandomBytes((_this).Config(), input) + output = _out0 + return output + } +} +func (_this *AtomicPrimitivesClient) Digest(input m_AwsCryptographyPrimitivesTypes.DigestInput) m_Wrappers.Result { + { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = output + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_AwsCryptographyPrimitivesOperations.Companion_Default___.Digest((_this).Config(), input) + output = _out0 + return output + } +} +func (_this *AtomicPrimitivesClient) HMac(input m_AwsCryptographyPrimitivesTypes.HMacInput) m_Wrappers.Result { + { + return m_AwsCryptographyPrimitivesOperations.Companion_Default___.HMac((_this).Config(), input) + } +} +func (_this *AtomicPrimitivesClient) HkdfExtract(input m_AwsCryptographyPrimitivesTypes.HkdfExtractInput) m_Wrappers.Result { + { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = output + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_AwsCryptographyPrimitivesOperations.Companion_Default___.HkdfExtract((_this).Config(), input) + output = _out0 + return output + } +} +func (_this *AtomicPrimitivesClient) HkdfExpand(input m_AwsCryptographyPrimitivesTypes.HkdfExpandInput) m_Wrappers.Result { + { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = output + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_AwsCryptographyPrimitivesOperations.Companion_Default___.HkdfExpand((_this).Config(), input) + output = _out0 + return output + } +} +func (_this *AtomicPrimitivesClient) Hkdf(input m_AwsCryptographyPrimitivesTypes.HkdfInput) m_Wrappers.Result { + { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = output + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_AwsCryptographyPrimitivesOperations.Companion_Default___.Hkdf((_this).Config(), input) + output = _out0 + return output + } +} +func (_this *AtomicPrimitivesClient) KdfCounterMode(input m_AwsCryptographyPrimitivesTypes.KdfCtrInput) m_Wrappers.Result { + { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = output + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_AwsCryptographyPrimitivesOperations.Companion_Default___.KdfCounterMode((_this).Config(), input) + output = _out0 + return output + } +} +func (_this *AtomicPrimitivesClient) AesKdfCounterMode(input m_AwsCryptographyPrimitivesTypes.AesKdfCtrInput) m_Wrappers.Result { + { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = output + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_AwsCryptographyPrimitivesOperations.Companion_Default___.AesKdfCounterMode((_this).Config(), input) + output = _out0 + return output + } +} +func (_this *AtomicPrimitivesClient) AESEncrypt(input m_AwsCryptographyPrimitivesTypes.AESEncryptInput) m_Wrappers.Result { + { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_AwsCryptographyPrimitivesTypes.Companion_AESEncryptOutput_.Default()) + _ = output + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_AwsCryptographyPrimitivesOperations.Companion_Default___.AESEncrypt((_this).Config(), input) + output = _out0 + return output + } +} +func (_this *AtomicPrimitivesClient) AESDecrypt(input m_AwsCryptographyPrimitivesTypes.AESDecryptInput) m_Wrappers.Result { + { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = output + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_AwsCryptographyPrimitivesOperations.Companion_Default___.AESDecrypt((_this).Config(), input) + output = _out0 + return output + } +} +func (_this *AtomicPrimitivesClient) GenerateRSAKeyPair(input m_AwsCryptographyPrimitivesTypes.GenerateRSAKeyPairInput) m_Wrappers.Result { + { + var output m_Wrappers.Result = m_Wrappers.Result{} + _ = output + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_AwsCryptographyPrimitivesOperations.Companion_Default___.GenerateRSAKeyPair((_this).Config(), input) + output = _out0 + return output + } +} +func (_this *AtomicPrimitivesClient) GetRSAKeyModulusLength(input m_AwsCryptographyPrimitivesTypes.GetRSAKeyModulusLengthInput) m_Wrappers.Result { + { + return m_AwsCryptographyPrimitivesOperations.Companion_Default___.GetRSAKeyModulusLength((_this).Config(), input) + } +} +func (_this *AtomicPrimitivesClient) RSADecrypt(input m_AwsCryptographyPrimitivesTypes.RSADecryptInput) m_Wrappers.Result { + { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = output + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_AwsCryptographyPrimitivesOperations.Companion_Default___.RSADecrypt((_this).Config(), input) + output = _out0 + return output + } +} +func (_this *AtomicPrimitivesClient) RSAEncrypt(input m_AwsCryptographyPrimitivesTypes.RSAEncryptInput) m_Wrappers.Result { + { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = output + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_AwsCryptographyPrimitivesOperations.Companion_Default___.RSAEncrypt((_this).Config(), input) + output = _out0 + return output + } +} +func (_this *AtomicPrimitivesClient) GenerateECDSASignatureKey(input m_AwsCryptographyPrimitivesTypes.GenerateECDSASignatureKeyInput) m_Wrappers.Result { + { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_AwsCryptographyPrimitivesTypes.Companion_GenerateECDSASignatureKeyOutput_.Default()) + _ = output + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_AwsCryptographyPrimitivesOperations.Companion_Default___.GenerateECDSASignatureKey((_this).Config(), input) + output = _out0 + return output + } +} +func (_this *AtomicPrimitivesClient) ECDSASign(input m_AwsCryptographyPrimitivesTypes.ECDSASignInput) m_Wrappers.Result { + { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = output + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_AwsCryptographyPrimitivesOperations.Companion_Default___.ECDSASign((_this).Config(), input) + output = _out0 + return output + } +} +func (_this *AtomicPrimitivesClient) ECDSAVerify(input m_AwsCryptographyPrimitivesTypes.ECDSAVerifyInput) m_Wrappers.Result { + { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(false) + _ = output + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_AwsCryptographyPrimitivesOperations.Companion_Default___.ECDSAVerify((_this).Config(), input) + output = _out0 + return output + } +} +func (_this *AtomicPrimitivesClient) GenerateECCKeyPair(input m_AwsCryptographyPrimitivesTypes.GenerateECCKeyPairInput) m_Wrappers.Result { + { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_AwsCryptographyPrimitivesTypes.Companion_GenerateECCKeyPairOutput_.Default()) + _ = output + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_AwsCryptographyPrimitivesOperations.Companion_Default___.GenerateECCKeyPair((_this).Config(), input) + output = _out0 + return output + } +} +func (_this *AtomicPrimitivesClient) GetPublicKeyFromPrivateKey(input m_AwsCryptographyPrimitivesTypes.GetPublicKeyFromPrivateKeyInput) m_Wrappers.Result { + { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_AwsCryptographyPrimitivesTypes.Companion_GetPublicKeyFromPrivateKeyOutput_.Default()) + _ = output + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_AwsCryptographyPrimitivesOperations.Companion_Default___.GetPublicKeyFromPrivateKey((_this).Config(), input) + output = _out0 + return output + } +} +func (_this *AtomicPrimitivesClient) ValidatePublicKey(input m_AwsCryptographyPrimitivesTypes.ValidatePublicKeyInput) m_Wrappers.Result { + { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_AwsCryptographyPrimitivesTypes.Companion_ValidatePublicKeyOutput_.Default()) + _ = output + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_AwsCryptographyPrimitivesOperations.Companion_Default___.ValidatePublicKey((_this).Config(), input) + output = _out0 + return output + } +} +func (_this *AtomicPrimitivesClient) DeriveSharedSecret(input m_AwsCryptographyPrimitivesTypes.DeriveSharedSecretInput) m_Wrappers.Result { + { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_AwsCryptographyPrimitivesTypes.Companion_DeriveSharedSecretOutput_.Default()) + _ = output + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_AwsCryptographyPrimitivesOperations.Companion_Default___.DeriveSharedSecret((_this).Config(), input) + output = _out0 + return output + } +} +func (_this *AtomicPrimitivesClient) CompressPublicKey(input m_AwsCryptographyPrimitivesTypes.CompressPublicKeyInput) m_Wrappers.Result { + { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_AwsCryptographyPrimitivesTypes.Companion_CompressPublicKeyOutput_.Default()) + _ = output + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_AwsCryptographyPrimitivesOperations.Companion_Default___.CompressPublicKey((_this).Config(), input) + output = _out0 + return output + } +} +func (_this *AtomicPrimitivesClient) DecompressPublicKey(input m_AwsCryptographyPrimitivesTypes.DecompressPublicKeyInput) m_Wrappers.Result { + { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_AwsCryptographyPrimitivesTypes.Companion_DecompressPublicKeyOutput_.Default()) + _ = output + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_AwsCryptographyPrimitivesOperations.Companion_Default___.DecompressPublicKey((_this).Config(), input) + output = _out0 + return output + } +} +func (_this *AtomicPrimitivesClient) ParsePublicKey(input m_AwsCryptographyPrimitivesTypes.ParsePublicKeyInput) m_Wrappers.Result { + { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_AwsCryptographyPrimitivesTypes.Companion_ParsePublicKeyOutput_.Default()) + _ = output + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_AwsCryptographyPrimitivesOperations.Companion_Default___.ParsePublicKey((_this).Config(), input) + output = _out0 + return output + } +} +func (_this *AtomicPrimitivesClient) Config() m_AwsCryptographyPrimitivesOperations.Config { + { + return _this._config + } +} + +// End of class AtomicPrimitivesClient diff --git a/customer-preview/primitives/AwsCryptographyPrimitivesOperations/AwsCryptographyPrimitivesOperations.go b/customer-preview/primitives/AwsCryptographyPrimitivesOperations/AwsCryptographyPrimitivesOperations.go new file mode 100644 index 000000000..4f8ff979e --- /dev/null +++ b/customer-preview/primitives/AwsCryptographyPrimitivesOperations/AwsCryptographyPrimitivesOperations.go @@ -0,0 +1,463 @@ +// Package AwsCryptographyPrimitivesOperations +// Dafny module AwsCryptographyPrimitivesOperations compiled into Go + +package AwsCryptographyPrimitivesOperations + +import ( + os "os" + + m_AESEncryption "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AESEncryption" + m_AwsCryptographyPrimitivesTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesTypes" + m_Digest "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Digest" + m_ECDH "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/ECDH" + m_HKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/HKDF" + m_KdfCtr "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/KdfCtr" + m_RSAEncryption "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/RSAEncryption" + m_Random "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Random" + m_Signature "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Signature" + m_WrappedHKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHKDF" + m_WrappedHMAC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHMAC" + m_Actions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Actions" + m_Base64 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64" + m_Base64Lemmas "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64Lemmas" + m_BoundedInts "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/BoundedInts" + m_DivInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternals" + m_DivInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternalsNonlinear" + m_DivMod "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivMod" + m_FileIO "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FileIO" + m_FloatCompare "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FloatCompare" + m_Functions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Functions" + m_GeneralInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GeneralInternals" + m_GetOpt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GetOpt" + m_HexStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/HexStrings" + m_Logarithm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Logarithm" + m__Math "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Math_" + m_ModInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternals" + m_ModInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternalsNonlinear" + m_Mul "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Mul" + m_MulInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternals" + m_MulInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternalsNonlinear" + m_Power "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Power" + m_Relations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Relations" + m_Seq "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq" + m_Seq_MergeSort "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq_MergeSort" + m_Sorting "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Sorting" + m_StandardLibrary "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary" + m_StandardLibraryInterop "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibraryInterop" + m_StandardLibrary_Sequence "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_Sequence" + m_StandardLibrary_String "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_String" + m_StandardLibrary_UInt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_UInt" + m_Streams "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Streams" + m_UnicodeStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UnicodeStrings" + m__Unicode "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Unicode_" + m_Utf16EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf16EncodingForm" + m_Utf8EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf8EncodingForm" + m_Wrappers "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers" + m__System "github.com/dafny-lang/DafnyRuntimeGo/v4/System_" + _dafny "github.com/dafny-lang/DafnyRuntimeGo/v4/dafny" +) + +var _ = os.Args +var _ _dafny.Dummy__ +var _ m__System.Dummy__ +var _ m_Wrappers.Dummy__ +var _ m_Relations.Dummy__ +var _ m_Seq_MergeSort.Dummy__ +var _ m__Math.Dummy__ +var _ m_Seq.Dummy__ +var _ m_BoundedInts.Dummy__ +var _ m__Unicode.Dummy__ +var _ m_Functions.Dummy__ +var _ m_Utf8EncodingForm.Dummy__ +var _ m_Utf16EncodingForm.Dummy__ +var _ m_UnicodeStrings.Dummy__ +var _ m_FileIO.Dummy__ +var _ m_GeneralInternals.Dummy__ +var _ m_MulInternalsNonlinear.Dummy__ +var _ m_MulInternals.Dummy__ +var _ m_Mul.Dummy__ +var _ m_ModInternalsNonlinear.Dummy__ +var _ m_DivInternalsNonlinear.Dummy__ +var _ m_ModInternals.Dummy__ +var _ m_DivInternals.Dummy__ +var _ m_DivMod.Dummy__ +var _ m_Power.Dummy__ +var _ m_Logarithm.Dummy__ +var _ m_StandardLibraryInterop.Dummy__ +var _ m_StandardLibrary_UInt.Dummy__ +var _ m_StandardLibrary_Sequence.Dummy__ +var _ m_StandardLibrary_String.Dummy__ +var _ m_StandardLibrary.Dummy__ +var _ m_Streams.Dummy__ +var _ m_Sorting.Dummy__ +var _ m_HexStrings.Dummy__ +var _ m_GetOpt.Dummy__ +var _ m_FloatCompare.Dummy__ +var _ m_Base64.Dummy__ +var _ m_Base64Lemmas.Dummy__ +var _ m_Actions.Dummy__ +var _ m_AwsCryptographyPrimitivesTypes.Dummy__ +var _ m_Random.Dummy__ +var _ m_Digest.Dummy__ +var _ m_WrappedHMAC.Dummy__ +var _ m_HKDF.Dummy__ +var _ m_WrappedHKDF.Dummy__ +var _ m_KdfCtr.Dummy__ + +type Dummy__ struct{} + +// Definition of class Default__ +type Default__ struct { + dummy byte +} + +func New_Default___() *Default__ { + _this := Default__{} + + return &_this +} + +type CompanionStruct_Default___ struct { +} + +var Companion_Default___ = CompanionStruct_Default___{} + +func (_this *Default__) Equals(other *Default__) bool { + return _this == other +} + +func (_this *Default__) EqualsGeneric(x interface{}) bool { + other, ok := x.(*Default__) + return ok && _this.Equals(other) +} + +func (*Default__) String() string { + return "AwsCryptographyPrimitivesOperations.Default__" +} +func (_this *Default__) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = &Default__{} + +func (_static *CompanionStruct_Default___) GenerateRandomBytes(config Config, input m_AwsCryptographyPrimitivesTypes.GenerateRandomBytesInput) m_Wrappers.Result { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = output + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_Random.Companion_Default___.GenerateBytes((input).Dtor_length()) + output = _out0 + return output +} +func (_static *CompanionStruct_Default___) Digest(config Config, input m_AwsCryptographyPrimitivesTypes.DigestInput) m_Wrappers.Result { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = output + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_Digest.Companion_Default___.Digest(input) + output = _out0 + return output +} +func (_static *CompanionStruct_Default___) HMac(config Config, input m_AwsCryptographyPrimitivesTypes.HMacInput) m_Wrappers.Result { + return m_WrappedHMAC.Companion_Default___.Digest(input) +} +func (_static *CompanionStruct_Default___) HkdfExtract(config Config, input m_AwsCryptographyPrimitivesTypes.HkdfExtractInput) m_Wrappers.Result { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = output + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_WrappedHKDF.Companion_Default___.Extract(input) + output = _out0 + return output +} +func (_static *CompanionStruct_Default___) HkdfExpand(config Config, input m_AwsCryptographyPrimitivesTypes.HkdfExpandInput) m_Wrappers.Result { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = output + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_WrappedHKDF.Companion_Default___.Expand(input) + output = _out0 + return output +} +func (_static *CompanionStruct_Default___) Hkdf(config Config, input m_AwsCryptographyPrimitivesTypes.HkdfInput) m_Wrappers.Result { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = output + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_WrappedHKDF.Companion_Default___.Hkdf(input) + output = _out0 + return output +} +func (_static *CompanionStruct_Default___) KdfCounterMode(config Config, input m_AwsCryptographyPrimitivesTypes.KdfCtrInput) m_Wrappers.Result { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = output + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_KdfCtr.Companion_Default___.KdfCounterMode(input) + output = _out0 + return output +} +func (_static *CompanionStruct_Default___) AesKdfCounterMode(config Config, input m_AwsCryptographyPrimitivesTypes.AesKdfCtrInput) m_Wrappers.Result { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = output + output = m_Wrappers.Companion_Result_.Create_Failure_(m_AwsCryptographyPrimitivesTypes.Companion_Error_.Create_AwsCryptographicPrimitivesError_(_dafny.SeqOfString("Implement"))) + return output +} +func (_static *CompanionStruct_Default___) AESEncrypt(config Config, input m_AwsCryptographyPrimitivesTypes.AESEncryptInput) m_Wrappers.Result { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_AwsCryptographyPrimitivesTypes.Companion_AESEncryptOutput_.Default()) + _ = output + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_AESEncryption.Companion_Default___.AESEncrypt(input) + output = _out0 + return output +} +func (_static *CompanionStruct_Default___) AESDecrypt(config Config, input m_AwsCryptographyPrimitivesTypes.AESDecryptInput) m_Wrappers.Result { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = output + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_AESEncryption.Companion_Default___.AESDecrypt(input) + output = _out0 + return output +} +func (_static *CompanionStruct_Default___) GenerateRSAKeyPair(config Config, input m_AwsCryptographyPrimitivesTypes.GenerateRSAKeyPairInput) m_Wrappers.Result { + var output m_Wrappers.Result = m_Wrappers.Result{} + _ = output + var _0_publicKey m_AwsCryptographyPrimitivesTypes.RSAPublicKey + _ = _0_publicKey + var _1_privateKey m_AwsCryptographyPrimitivesTypes.RSAPrivateKey + _ = _1_privateKey + var _out0 m_AwsCryptographyPrimitivesTypes.RSAPublicKey + _ = _out0 + var _out1 m_AwsCryptographyPrimitivesTypes.RSAPrivateKey + _ = _out1 + _out0, _out1 = m_RSAEncryption.Companion_Default___.GenerateKeyPair((input).Dtor_lengthBits()) + _0_publicKey = _out0 + _1_privateKey = _out1 + output = m_Wrappers.Companion_Result_.Create_Success_(m_AwsCryptographyPrimitivesTypes.Companion_GenerateRSAKeyPairOutput_.Create_GenerateRSAKeyPairOutput_(_0_publicKey, _1_privateKey)) + return output +} +func (_static *CompanionStruct_Default___) GetRSAKeyModulusLength(config Config, input m_AwsCryptographyPrimitivesTypes.GetRSAKeyModulusLengthInput) m_Wrappers.Result { + var _0_valueOrError0 m_Wrappers.Result = m_RSAEncryption.Companion_Default___.GetRSAKeyModulusLength((input).Dtor_publicKey()) + _ = _0_valueOrError0 + if (_0_valueOrError0).IsFailure() { + return (_0_valueOrError0).PropagateFailure() + } else { + var _1_length int32 = (_0_valueOrError0).Extract().(int32) + _ = _1_length + return m_Wrappers.Companion_Result_.Create_Success_(m_AwsCryptographyPrimitivesTypes.Companion_GetRSAKeyModulusLengthOutput_.Create_GetRSAKeyModulusLengthOutput_(_1_length)) + } +} +func (_static *CompanionStruct_Default___) RSADecrypt(config Config, input m_AwsCryptographyPrimitivesTypes.RSADecryptInput) m_Wrappers.Result { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = output + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_RSAEncryption.Companion_Default___.Decrypt(input) + output = _out0 + return output +} +func (_static *CompanionStruct_Default___) RSAEncrypt(config Config, input m_AwsCryptographyPrimitivesTypes.RSAEncryptInput) m_Wrappers.Result { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = output + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_RSAEncryption.Companion_Default___.Encrypt(input) + output = _out0 + return output +} +func (_static *CompanionStruct_Default___) GenerateECDSASignatureKey(config Config, input m_AwsCryptographyPrimitivesTypes.GenerateECDSASignatureKeyInput) m_Wrappers.Result { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_AwsCryptographyPrimitivesTypes.Companion_GenerateECDSASignatureKeyOutput_.Default()) + _ = output + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_Signature.Companion_Default___.KeyGen(input) + output = _out0 + return output +} +func (_static *CompanionStruct_Default___) ECDSASign(config Config, input m_AwsCryptographyPrimitivesTypes.ECDSASignInput) m_Wrappers.Result { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = output + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_Signature.ECDSA.Sign((input).Dtor_signatureAlgorithm(), (input).Dtor_signingKey(), (input).Dtor_message()) + output = _out0 + return output +} +func (_static *CompanionStruct_Default___) ECDSAVerify(config Config, input m_AwsCryptographyPrimitivesTypes.ECDSAVerifyInput) m_Wrappers.Result { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(false) + _ = output + output = m_Signature.ECDSA_Verify((input).Dtor_signatureAlgorithm(), (input).Dtor_verificationKey(), (input).Dtor_message(), (input).Dtor_signature()) + return output +} +func (_static *CompanionStruct_Default___) GenerateECCKeyPair(config Config, input m_AwsCryptographyPrimitivesTypes.GenerateECCKeyPairInput) m_Wrappers.Result { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_AwsCryptographyPrimitivesTypes.Companion_GenerateECCKeyPairOutput_.Default()) + _ = output + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_ECDH.Companion_Default___.GenerateEccKeyPair(input) + output = _out0 + return output +} +func (_static *CompanionStruct_Default___) GetPublicKeyFromPrivateKey(config Config, input m_AwsCryptographyPrimitivesTypes.GetPublicKeyFromPrivateKeyInput) m_Wrappers.Result { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_AwsCryptographyPrimitivesTypes.Companion_GetPublicKeyFromPrivateKeyOutput_.Default()) + _ = output + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_ECDH.Companion_Default___.GetPublicKeyFromPrivate(input) + output = _out0 + return output +} +func (_static *CompanionStruct_Default___) ValidatePublicKey(config Config, input m_AwsCryptographyPrimitivesTypes.ValidatePublicKeyInput) m_Wrappers.Result { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_AwsCryptographyPrimitivesTypes.Companion_ValidatePublicKeyOutput_.Default()) + _ = output + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_ECDH.Companion_Default___.Go__ValidatePublicKey(input) + output = _out0 + return output +} +func (_static *CompanionStruct_Default___) DeriveSharedSecret(config Config, input m_AwsCryptographyPrimitivesTypes.DeriveSharedSecretInput) m_Wrappers.Result { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_AwsCryptographyPrimitivesTypes.Companion_DeriveSharedSecretOutput_.Default()) + _ = output + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_ECDH.Companion_Default___.DeriveSharedSecret(input) + output = _out0 + return output +} +func (_static *CompanionStruct_Default___) CompressPublicKey(config Config, input m_AwsCryptographyPrimitivesTypes.CompressPublicKeyInput) m_Wrappers.Result { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_AwsCryptographyPrimitivesTypes.Companion_CompressPublicKeyOutput_.Default()) + _ = output + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_ECDH.Companion_Default___.Go__CompressPublicKey(input) + output = _out0 + return output +} +func (_static *CompanionStruct_Default___) DecompressPublicKey(config Config, input m_AwsCryptographyPrimitivesTypes.DecompressPublicKeyInput) m_Wrappers.Result { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_AwsCryptographyPrimitivesTypes.Companion_DecompressPublicKeyOutput_.Default()) + _ = output + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_ECDH.Companion_Default___.Go__DecompressPublicKey(input) + output = _out0 + return output +} +func (_static *CompanionStruct_Default___) ParsePublicKey(config Config, input m_AwsCryptographyPrimitivesTypes.ParsePublicKeyInput) m_Wrappers.Result { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_AwsCryptographyPrimitivesTypes.Companion_ParsePublicKeyOutput_.Default()) + _ = output + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_ECDH.Companion_Default___.Go__ParsePublicKey(input) + output = _out0 + return output +} + +// End of class Default__ + +// Definition of datatype Config +type Config struct { + Data_Config_ +} + +func (_this Config) Get_() Data_Config_ { + return _this.Data_Config_ +} + +type Data_Config_ interface { + isConfig() +} + +type CompanionStruct_Config_ struct { +} + +var Companion_Config_ = CompanionStruct_Config_{} + +type Config_Config struct { +} + +func (Config_Config) isConfig() {} + +func (CompanionStruct_Config_) Create_Config_() Config { + return Config{Config_Config{}} +} + +func (_this Config) Is_Config() bool { + _, ok := _this.Get_().(Config_Config) + return ok +} + +func (CompanionStruct_Config_) Default() Config { + return Companion_Config_.Create_Config_() +} + +func (_ CompanionStruct_Config_) AllSingletonConstructors() _dafny.Iterator { + i := -1 + return func() (interface{}, bool) { + i++ + switch i { + case 0: + return Companion_Config_.Create_Config_(), true + default: + return Config{}, false + } + } +} + +func (_this Config) String() string { + switch _this.Get_().(type) { + case nil: + return "null" + case Config_Config: + { + return "AwsCryptographyPrimitivesOperations.Config.Config" + } + default: + { + return "" + } + } +} + +func (_this Config) Equals(other Config) bool { + switch _this.Get_().(type) { + case Config_Config: + { + _, ok := other.Get_().(Config_Config) + return ok + } + default: + { + return false // unexpected + } + } +} + +func (_this Config) EqualsGeneric(other interface{}) bool { + typed, ok := other.(Config) + return ok && _this.Equals(typed) +} + +func Type_Config_() _dafny.TypeDescriptor { + return type_Config_{} +} + +type type_Config_ struct { +} + +func (_this type_Config_) Default() interface{} { + return Companion_Config_.Default() +} + +func (_this type_Config_) String() string { + return "AwsCryptographyPrimitivesOperations.Config" +} +func (_this Config) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = Config{} + +// End of datatype Config diff --git a/customer-preview/primitives/AwsCryptographyPrimitivesTypes/AwsCryptographyPrimitivesTypes.go b/customer-preview/primitives/AwsCryptographyPrimitivesTypes/AwsCryptographyPrimitivesTypes.go new file mode 100644 index 000000000..27e04b7c1 --- /dev/null +++ b/customer-preview/primitives/AwsCryptographyPrimitivesTypes/AwsCryptographyPrimitivesTypes.go @@ -0,0 +1,5923 @@ +// Package AwsCryptographyPrimitivesTypes +// Dafny module AwsCryptographyPrimitivesTypes compiled into Go + +package AwsCryptographyPrimitivesTypes + +import ( + os "os" + + m_Actions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Actions" + m_Base64 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64" + m_Base64Lemmas "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64Lemmas" + m_BoundedInts "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/BoundedInts" + m_DivInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternals" + m_DivInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternalsNonlinear" + m_DivMod "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivMod" + m_FileIO "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FileIO" + m_FloatCompare "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FloatCompare" + m_Functions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Functions" + m_GeneralInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GeneralInternals" + m_GetOpt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GetOpt" + m_HexStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/HexStrings" + m_Logarithm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Logarithm" + m__Math "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Math_" + m_ModInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternals" + m_ModInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternalsNonlinear" + m_Mul "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Mul" + m_MulInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternals" + m_MulInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternalsNonlinear" + m_Power "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Power" + m_Relations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Relations" + m_Seq "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq" + m_Seq_MergeSort "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq_MergeSort" + m_Sorting "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Sorting" + m_StandardLibrary "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary" + m_StandardLibraryInterop "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibraryInterop" + m_StandardLibrary_Sequence "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_Sequence" + m_StandardLibrary_String "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_String" + m_StandardLibrary_UInt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_UInt" + m_Streams "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Streams" + m_UnicodeStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UnicodeStrings" + m__Unicode "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Unicode_" + m_Utf16EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf16EncodingForm" + m_Utf8EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf8EncodingForm" + m_Wrappers "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers" + m__System "github.com/dafny-lang/DafnyRuntimeGo/v4/System_" + _dafny "github.com/dafny-lang/DafnyRuntimeGo/v4/dafny" +) + +var _ = os.Args +var _ _dafny.Dummy__ +var _ m__System.Dummy__ +var _ m_Wrappers.Dummy__ +var _ m_Relations.Dummy__ +var _ m_Seq_MergeSort.Dummy__ +var _ m__Math.Dummy__ +var _ m_Seq.Dummy__ +var _ m_BoundedInts.Dummy__ +var _ m__Unicode.Dummy__ +var _ m_Functions.Dummy__ +var _ m_Utf8EncodingForm.Dummy__ +var _ m_Utf16EncodingForm.Dummy__ +var _ m_UnicodeStrings.Dummy__ +var _ m_FileIO.Dummy__ +var _ m_GeneralInternals.Dummy__ +var _ m_MulInternalsNonlinear.Dummy__ +var _ m_MulInternals.Dummy__ +var _ m_Mul.Dummy__ +var _ m_ModInternalsNonlinear.Dummy__ +var _ m_DivInternalsNonlinear.Dummy__ +var _ m_ModInternals.Dummy__ +var _ m_DivInternals.Dummy__ +var _ m_DivMod.Dummy__ +var _ m_Power.Dummy__ +var _ m_Logarithm.Dummy__ +var _ m_StandardLibraryInterop.Dummy__ +var _ m_StandardLibrary_UInt.Dummy__ +var _ m_StandardLibrary_Sequence.Dummy__ +var _ m_StandardLibrary_String.Dummy__ +var _ m_StandardLibrary.Dummy__ +var _ m_Streams.Dummy__ +var _ m_Sorting.Dummy__ +var _ m_HexStrings.Dummy__ +var _ m_GetOpt.Dummy__ +var _ m_FloatCompare.Dummy__ +var _ m_Base64.Dummy__ +var _ m_Base64Lemmas.Dummy__ +var _ m_Actions.Dummy__ + +type Dummy__ struct{} + +// Definition of class Default__ +type Default__ struct { + dummy byte +} + +func New_Default___() *Default__ { + _this := Default__{} + + return &_this +} + +type CompanionStruct_Default___ struct { +} + +var Companion_Default___ = CompanionStruct_Default___{} + +func (_this *Default__) Equals(other *Default__) bool { + return _this == other +} + +func (_this *Default__) EqualsGeneric(x interface{}) bool { + other, ok := x.(*Default__) + return ok && _this.Equals(other) +} + +func (*Default__) String() string { + return "AwsCryptographyPrimitivesTypes.Default__" +} +func (_this *Default__) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = &Default__{} + +func (_static *CompanionStruct_Default___) IsValid__PositiveInteger(x int32) bool { + return (int32(0)) <= (x) +} +func (_static *CompanionStruct_Default___) IsValid__RSAModulusLengthBits(x int32) bool { + return (int32(81)) <= (x) +} +func (_static *CompanionStruct_Default___) IsValid__RSAModulusLengthBitsToGenerate(x int32) bool { + return ((int32(81)) <= (x)) && ((x) <= (int32(4096))) +} +func (_static *CompanionStruct_Default___) IsValid__SymmetricKeyLength(x int32) bool { + return ((int32(1)) <= (x)) && ((x) <= (int32(32))) +} +func (_static *CompanionStruct_Default___) IsValid__Uint8Bits(x int32) bool { + return ((int32(0)) <= (x)) && ((x) <= (int32(255))) +} +func (_static *CompanionStruct_Default___) IsValid__Uint8Bytes(x int32) bool { + return ((int32(0)) <= (x)) && ((x) <= (int32(32))) +} +func (_static *CompanionStruct_Default___) IsDummySubsetType(x _dafny.Int) bool { + return (x).Sign() == 1 +} + +// End of class Default__ + +// Definition of datatype DafnyCallEvent +type DafnyCallEvent struct { + Data_DafnyCallEvent_ +} + +func (_this DafnyCallEvent) Get_() Data_DafnyCallEvent_ { + return _this.Data_DafnyCallEvent_ +} + +type Data_DafnyCallEvent_ interface { + isDafnyCallEvent() +} + +type CompanionStruct_DafnyCallEvent_ struct { +} + +var Companion_DafnyCallEvent_ = CompanionStruct_DafnyCallEvent_{} + +type DafnyCallEvent_DafnyCallEvent struct { + Input interface{} + Output interface{} +} + +func (DafnyCallEvent_DafnyCallEvent) isDafnyCallEvent() {} + +func (CompanionStruct_DafnyCallEvent_) Create_DafnyCallEvent_(Input interface{}, Output interface{}) DafnyCallEvent { + return DafnyCallEvent{DafnyCallEvent_DafnyCallEvent{Input, Output}} +} + +func (_this DafnyCallEvent) Is_DafnyCallEvent() bool { + _, ok := _this.Get_().(DafnyCallEvent_DafnyCallEvent) + return ok +} + +func (CompanionStruct_DafnyCallEvent_) Default(_default_I interface{}, _default_O interface{}) DafnyCallEvent { + return Companion_DafnyCallEvent_.Create_DafnyCallEvent_(_default_I, _default_O) +} + +func (_this DafnyCallEvent) Dtor_input() interface{} { + return _this.Get_().(DafnyCallEvent_DafnyCallEvent).Input +} + +func (_this DafnyCallEvent) Dtor_output() interface{} { + return _this.Get_().(DafnyCallEvent_DafnyCallEvent).Output +} + +func (_this DafnyCallEvent) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case DafnyCallEvent_DafnyCallEvent: + { + return "AwsCryptographyPrimitivesTypes.DafnyCallEvent.DafnyCallEvent" + "(" + _dafny.String(data.Input) + ", " + _dafny.String(data.Output) + ")" + } + default: + { + return "" + } + } +} + +func (_this DafnyCallEvent) Equals(other DafnyCallEvent) bool { + switch data1 := _this.Get_().(type) { + case DafnyCallEvent_DafnyCallEvent: + { + data2, ok := other.Get_().(DafnyCallEvent_DafnyCallEvent) + return ok && _dafny.AreEqual(data1.Input, data2.Input) && _dafny.AreEqual(data1.Output, data2.Output) + } + default: + { + return false // unexpected + } + } +} + +func (_this DafnyCallEvent) EqualsGeneric(other interface{}) bool { + typed, ok := other.(DafnyCallEvent) + return ok && _this.Equals(typed) +} + +func Type_DafnyCallEvent_(Type_I_ _dafny.TypeDescriptor, Type_O_ _dafny.TypeDescriptor) _dafny.TypeDescriptor { + return type_DafnyCallEvent_{Type_I_, Type_O_} +} + +type type_DafnyCallEvent_ struct { + Type_I_ _dafny.TypeDescriptor + Type_O_ _dafny.TypeDescriptor +} + +func (_this type_DafnyCallEvent_) Default() interface{} { + Type_I_ := _this.Type_I_ + _ = Type_I_ + Type_O_ := _this.Type_O_ + _ = Type_O_ + return Companion_DafnyCallEvent_.Default(Type_I_.Default(), Type_O_.Default()) +} + +func (_this type_DafnyCallEvent_) String() string { + return "AwsCryptographyPrimitivesTypes.DafnyCallEvent" +} +func (_this DafnyCallEvent) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = DafnyCallEvent{} + +// End of datatype DafnyCallEvent + +// Definition of datatype AES__CTR +type AES__CTR struct { + Data_AES__CTR_ +} + +func (_this AES__CTR) Get_() Data_AES__CTR_ { + return _this.Data_AES__CTR_ +} + +type Data_AES__CTR_ interface { + isAES__CTR() +} + +type CompanionStruct_AES__CTR_ struct { +} + +var Companion_AES__CTR_ = CompanionStruct_AES__CTR_{} + +type AES__CTR_AES__CTR struct { + KeyLength int32 + NonceLength int32 +} + +func (AES__CTR_AES__CTR) isAES__CTR() {} + +func (CompanionStruct_AES__CTR_) Create_AES__CTR_(KeyLength int32, NonceLength int32) AES__CTR { + return AES__CTR{AES__CTR_AES__CTR{KeyLength, NonceLength}} +} + +func (_this AES__CTR) Is_AES__CTR() bool { + _, ok := _this.Get_().(AES__CTR_AES__CTR) + return ok +} + +func (CompanionStruct_AES__CTR_) Default() AES__CTR { + return Companion_AES__CTR_.Create_AES__CTR_(int32(0), int32(0)) +} + +func (_this AES__CTR) Dtor_keyLength() int32 { + return _this.Get_().(AES__CTR_AES__CTR).KeyLength +} + +func (_this AES__CTR) Dtor_nonceLength() int32 { + return _this.Get_().(AES__CTR_AES__CTR).NonceLength +} + +func (_this AES__CTR) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case AES__CTR_AES__CTR: + { + return "AwsCryptographyPrimitivesTypes.AES_CTR.AES_CTR" + "(" + _dafny.String(data.KeyLength) + ", " + _dafny.String(data.NonceLength) + ")" + } + default: + { + return "" + } + } +} + +func (_this AES__CTR) Equals(other AES__CTR) bool { + switch data1 := _this.Get_().(type) { + case AES__CTR_AES__CTR: + { + data2, ok := other.Get_().(AES__CTR_AES__CTR) + return ok && data1.KeyLength == data2.KeyLength && data1.NonceLength == data2.NonceLength + } + default: + { + return false // unexpected + } + } +} + +func (_this AES__CTR) EqualsGeneric(other interface{}) bool { + typed, ok := other.(AES__CTR) + return ok && _this.Equals(typed) +} + +func Type_AES__CTR_() _dafny.TypeDescriptor { + return type_AES__CTR_{} +} + +type type_AES__CTR_ struct { +} + +func (_this type_AES__CTR_) Default() interface{} { + return Companion_AES__CTR_.Default() +} + +func (_this type_AES__CTR_) String() string { + return "AwsCryptographyPrimitivesTypes.AES__CTR" +} +func (_this AES__CTR) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = AES__CTR{} + +// End of datatype AES__CTR + +// Definition of datatype AES__GCM +type AES__GCM struct { + Data_AES__GCM_ +} + +func (_this AES__GCM) Get_() Data_AES__GCM_ { + return _this.Data_AES__GCM_ +} + +type Data_AES__GCM_ interface { + isAES__GCM() +} + +type CompanionStruct_AES__GCM_ struct { +} + +var Companion_AES__GCM_ = CompanionStruct_AES__GCM_{} + +type AES__GCM_AES__GCM struct { + KeyLength int32 + TagLength int32 + IvLength int32 +} + +func (AES__GCM_AES__GCM) isAES__GCM() {} + +func (CompanionStruct_AES__GCM_) Create_AES__GCM_(KeyLength int32, TagLength int32, IvLength int32) AES__GCM { + return AES__GCM{AES__GCM_AES__GCM{KeyLength, TagLength, IvLength}} +} + +func (_this AES__GCM) Is_AES__GCM() bool { + _, ok := _this.Get_().(AES__GCM_AES__GCM) + return ok +} + +func (CompanionStruct_AES__GCM_) Default() AES__GCM { + return Companion_AES__GCM_.Create_AES__GCM_(int32(0), int32(0), int32(0)) +} + +func (_this AES__GCM) Dtor_keyLength() int32 { + return _this.Get_().(AES__GCM_AES__GCM).KeyLength +} + +func (_this AES__GCM) Dtor_tagLength() int32 { + return _this.Get_().(AES__GCM_AES__GCM).TagLength +} + +func (_this AES__GCM) Dtor_ivLength() int32 { + return _this.Get_().(AES__GCM_AES__GCM).IvLength +} + +func (_this AES__GCM) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case AES__GCM_AES__GCM: + { + return "AwsCryptographyPrimitivesTypes.AES_GCM.AES_GCM" + "(" + _dafny.String(data.KeyLength) + ", " + _dafny.String(data.TagLength) + ", " + _dafny.String(data.IvLength) + ")" + } + default: + { + return "" + } + } +} + +func (_this AES__GCM) Equals(other AES__GCM) bool { + switch data1 := _this.Get_().(type) { + case AES__GCM_AES__GCM: + { + data2, ok := other.Get_().(AES__GCM_AES__GCM) + return ok && data1.KeyLength == data2.KeyLength && data1.TagLength == data2.TagLength && data1.IvLength == data2.IvLength + } + default: + { + return false // unexpected + } + } +} + +func (_this AES__GCM) EqualsGeneric(other interface{}) bool { + typed, ok := other.(AES__GCM) + return ok && _this.Equals(typed) +} + +func Type_AES__GCM_() _dafny.TypeDescriptor { + return type_AES__GCM_{} +} + +type type_AES__GCM_ struct { +} + +func (_this type_AES__GCM_) Default() interface{} { + return Companion_AES__GCM_.Default() +} + +func (_this type_AES__GCM_) String() string { + return "AwsCryptographyPrimitivesTypes.AES__GCM" +} +func (_this AES__GCM) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = AES__GCM{} + +// End of datatype AES__GCM + +// Definition of datatype AESDecryptInput +type AESDecryptInput struct { + Data_AESDecryptInput_ +} + +func (_this AESDecryptInput) Get_() Data_AESDecryptInput_ { + return _this.Data_AESDecryptInput_ +} + +type Data_AESDecryptInput_ interface { + isAESDecryptInput() +} + +type CompanionStruct_AESDecryptInput_ struct { +} + +var Companion_AESDecryptInput_ = CompanionStruct_AESDecryptInput_{} + +type AESDecryptInput_AESDecryptInput struct { + EncAlg AES__GCM + Key _dafny.Sequence + CipherTxt _dafny.Sequence + AuthTag _dafny.Sequence + Iv _dafny.Sequence + Aad _dafny.Sequence +} + +func (AESDecryptInput_AESDecryptInput) isAESDecryptInput() {} + +func (CompanionStruct_AESDecryptInput_) Create_AESDecryptInput_(EncAlg AES__GCM, Key _dafny.Sequence, CipherTxt _dafny.Sequence, AuthTag _dafny.Sequence, Iv _dafny.Sequence, Aad _dafny.Sequence) AESDecryptInput { + return AESDecryptInput{AESDecryptInput_AESDecryptInput{EncAlg, Key, CipherTxt, AuthTag, Iv, Aad}} +} + +func (_this AESDecryptInput) Is_AESDecryptInput() bool { + _, ok := _this.Get_().(AESDecryptInput_AESDecryptInput) + return ok +} + +func (CompanionStruct_AESDecryptInput_) Default() AESDecryptInput { + return Companion_AESDecryptInput_.Create_AESDecryptInput_(Companion_AES__GCM_.Default(), _dafny.EmptySeq, _dafny.EmptySeq, _dafny.EmptySeq, _dafny.EmptySeq, _dafny.EmptySeq) +} + +func (_this AESDecryptInput) Dtor_encAlg() AES__GCM { + return _this.Get_().(AESDecryptInput_AESDecryptInput).EncAlg +} + +func (_this AESDecryptInput) Dtor_key() _dafny.Sequence { + return _this.Get_().(AESDecryptInput_AESDecryptInput).Key +} + +func (_this AESDecryptInput) Dtor_cipherTxt() _dafny.Sequence { + return _this.Get_().(AESDecryptInput_AESDecryptInput).CipherTxt +} + +func (_this AESDecryptInput) Dtor_authTag() _dafny.Sequence { + return _this.Get_().(AESDecryptInput_AESDecryptInput).AuthTag +} + +func (_this AESDecryptInput) Dtor_iv() _dafny.Sequence { + return _this.Get_().(AESDecryptInput_AESDecryptInput).Iv +} + +func (_this AESDecryptInput) Dtor_aad() _dafny.Sequence { + return _this.Get_().(AESDecryptInput_AESDecryptInput).Aad +} + +func (_this AESDecryptInput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case AESDecryptInput_AESDecryptInput: + { + return "AwsCryptographyPrimitivesTypes.AESDecryptInput.AESDecryptInput" + "(" + _dafny.String(data.EncAlg) + ", " + _dafny.String(data.Key) + ", " + _dafny.String(data.CipherTxt) + ", " + _dafny.String(data.AuthTag) + ", " + _dafny.String(data.Iv) + ", " + _dafny.String(data.Aad) + ")" + } + default: + { + return "" + } + } +} + +func (_this AESDecryptInput) Equals(other AESDecryptInput) bool { + switch data1 := _this.Get_().(type) { + case AESDecryptInput_AESDecryptInput: + { + data2, ok := other.Get_().(AESDecryptInput_AESDecryptInput) + return ok && data1.EncAlg.Equals(data2.EncAlg) && data1.Key.Equals(data2.Key) && data1.CipherTxt.Equals(data2.CipherTxt) && data1.AuthTag.Equals(data2.AuthTag) && data1.Iv.Equals(data2.Iv) && data1.Aad.Equals(data2.Aad) + } + default: + { + return false // unexpected + } + } +} + +func (_this AESDecryptInput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(AESDecryptInput) + return ok && _this.Equals(typed) +} + +func Type_AESDecryptInput_() _dafny.TypeDescriptor { + return type_AESDecryptInput_{} +} + +type type_AESDecryptInput_ struct { +} + +func (_this type_AESDecryptInput_) Default() interface{} { + return Companion_AESDecryptInput_.Default() +} + +func (_this type_AESDecryptInput_) String() string { + return "AwsCryptographyPrimitivesTypes.AESDecryptInput" +} +func (_this AESDecryptInput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = AESDecryptInput{} + +// End of datatype AESDecryptInput + +// Definition of datatype AESEncryptInput +type AESEncryptInput struct { + Data_AESEncryptInput_ +} + +func (_this AESEncryptInput) Get_() Data_AESEncryptInput_ { + return _this.Data_AESEncryptInput_ +} + +type Data_AESEncryptInput_ interface { + isAESEncryptInput() +} + +type CompanionStruct_AESEncryptInput_ struct { +} + +var Companion_AESEncryptInput_ = CompanionStruct_AESEncryptInput_{} + +type AESEncryptInput_AESEncryptInput struct { + EncAlg AES__GCM + Iv _dafny.Sequence + Key _dafny.Sequence + Msg _dafny.Sequence + Aad _dafny.Sequence +} + +func (AESEncryptInput_AESEncryptInput) isAESEncryptInput() {} + +func (CompanionStruct_AESEncryptInput_) Create_AESEncryptInput_(EncAlg AES__GCM, Iv _dafny.Sequence, Key _dafny.Sequence, Msg _dafny.Sequence, Aad _dafny.Sequence) AESEncryptInput { + return AESEncryptInput{AESEncryptInput_AESEncryptInput{EncAlg, Iv, Key, Msg, Aad}} +} + +func (_this AESEncryptInput) Is_AESEncryptInput() bool { + _, ok := _this.Get_().(AESEncryptInput_AESEncryptInput) + return ok +} + +func (CompanionStruct_AESEncryptInput_) Default() AESEncryptInput { + return Companion_AESEncryptInput_.Create_AESEncryptInput_(Companion_AES__GCM_.Default(), _dafny.EmptySeq, _dafny.EmptySeq, _dafny.EmptySeq, _dafny.EmptySeq) +} + +func (_this AESEncryptInput) Dtor_encAlg() AES__GCM { + return _this.Get_().(AESEncryptInput_AESEncryptInput).EncAlg +} + +func (_this AESEncryptInput) Dtor_iv() _dafny.Sequence { + return _this.Get_().(AESEncryptInput_AESEncryptInput).Iv +} + +func (_this AESEncryptInput) Dtor_key() _dafny.Sequence { + return _this.Get_().(AESEncryptInput_AESEncryptInput).Key +} + +func (_this AESEncryptInput) Dtor_msg() _dafny.Sequence { + return _this.Get_().(AESEncryptInput_AESEncryptInput).Msg +} + +func (_this AESEncryptInput) Dtor_aad() _dafny.Sequence { + return _this.Get_().(AESEncryptInput_AESEncryptInput).Aad +} + +func (_this AESEncryptInput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case AESEncryptInput_AESEncryptInput: + { + return "AwsCryptographyPrimitivesTypes.AESEncryptInput.AESEncryptInput" + "(" + _dafny.String(data.EncAlg) + ", " + _dafny.String(data.Iv) + ", " + _dafny.String(data.Key) + ", " + _dafny.String(data.Msg) + ", " + _dafny.String(data.Aad) + ")" + } + default: + { + return "" + } + } +} + +func (_this AESEncryptInput) Equals(other AESEncryptInput) bool { + switch data1 := _this.Get_().(type) { + case AESEncryptInput_AESEncryptInput: + { + data2, ok := other.Get_().(AESEncryptInput_AESEncryptInput) + return ok && data1.EncAlg.Equals(data2.EncAlg) && data1.Iv.Equals(data2.Iv) && data1.Key.Equals(data2.Key) && data1.Msg.Equals(data2.Msg) && data1.Aad.Equals(data2.Aad) + } + default: + { + return false // unexpected + } + } +} + +func (_this AESEncryptInput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(AESEncryptInput) + return ok && _this.Equals(typed) +} + +func Type_AESEncryptInput_() _dafny.TypeDescriptor { + return type_AESEncryptInput_{} +} + +type type_AESEncryptInput_ struct { +} + +func (_this type_AESEncryptInput_) Default() interface{} { + return Companion_AESEncryptInput_.Default() +} + +func (_this type_AESEncryptInput_) String() string { + return "AwsCryptographyPrimitivesTypes.AESEncryptInput" +} +func (_this AESEncryptInput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = AESEncryptInput{} + +// End of datatype AESEncryptInput + +// Definition of datatype AESEncryptOutput +type AESEncryptOutput struct { + Data_AESEncryptOutput_ +} + +func (_this AESEncryptOutput) Get_() Data_AESEncryptOutput_ { + return _this.Data_AESEncryptOutput_ +} + +type Data_AESEncryptOutput_ interface { + isAESEncryptOutput() +} + +type CompanionStruct_AESEncryptOutput_ struct { +} + +var Companion_AESEncryptOutput_ = CompanionStruct_AESEncryptOutput_{} + +type AESEncryptOutput_AESEncryptOutput struct { + CipherText _dafny.Sequence + AuthTag _dafny.Sequence +} + +func (AESEncryptOutput_AESEncryptOutput) isAESEncryptOutput() {} + +func (CompanionStruct_AESEncryptOutput_) Create_AESEncryptOutput_(CipherText _dafny.Sequence, AuthTag _dafny.Sequence) AESEncryptOutput { + return AESEncryptOutput{AESEncryptOutput_AESEncryptOutput{CipherText, AuthTag}} +} + +func (_this AESEncryptOutput) Is_AESEncryptOutput() bool { + _, ok := _this.Get_().(AESEncryptOutput_AESEncryptOutput) + return ok +} + +func (CompanionStruct_AESEncryptOutput_) Default() AESEncryptOutput { + return Companion_AESEncryptOutput_.Create_AESEncryptOutput_(_dafny.EmptySeq, _dafny.EmptySeq) +} + +func (_this AESEncryptOutput) Dtor_cipherText() _dafny.Sequence { + return _this.Get_().(AESEncryptOutput_AESEncryptOutput).CipherText +} + +func (_this AESEncryptOutput) Dtor_authTag() _dafny.Sequence { + return _this.Get_().(AESEncryptOutput_AESEncryptOutput).AuthTag +} + +func (_this AESEncryptOutput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case AESEncryptOutput_AESEncryptOutput: + { + return "AwsCryptographyPrimitivesTypes.AESEncryptOutput.AESEncryptOutput" + "(" + _dafny.String(data.CipherText) + ", " + _dafny.String(data.AuthTag) + ")" + } + default: + { + return "" + } + } +} + +func (_this AESEncryptOutput) Equals(other AESEncryptOutput) bool { + switch data1 := _this.Get_().(type) { + case AESEncryptOutput_AESEncryptOutput: + { + data2, ok := other.Get_().(AESEncryptOutput_AESEncryptOutput) + return ok && data1.CipherText.Equals(data2.CipherText) && data1.AuthTag.Equals(data2.AuthTag) + } + default: + { + return false // unexpected + } + } +} + +func (_this AESEncryptOutput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(AESEncryptOutput) + return ok && _this.Equals(typed) +} + +func Type_AESEncryptOutput_() _dafny.TypeDescriptor { + return type_AESEncryptOutput_{} +} + +type type_AESEncryptOutput_ struct { +} + +func (_this type_AESEncryptOutput_) Default() interface{} { + return Companion_AESEncryptOutput_.Default() +} + +func (_this type_AESEncryptOutput_) String() string { + return "AwsCryptographyPrimitivesTypes.AESEncryptOutput" +} +func (_this AESEncryptOutput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = AESEncryptOutput{} + +// End of datatype AESEncryptOutput + +// Definition of datatype AesKdfCtrInput +type AesKdfCtrInput struct { + Data_AesKdfCtrInput_ +} + +func (_this AesKdfCtrInput) Get_() Data_AesKdfCtrInput_ { + return _this.Data_AesKdfCtrInput_ +} + +type Data_AesKdfCtrInput_ interface { + isAesKdfCtrInput() +} + +type CompanionStruct_AesKdfCtrInput_ struct { +} + +var Companion_AesKdfCtrInput_ = CompanionStruct_AesKdfCtrInput_{} + +type AesKdfCtrInput_AesKdfCtrInput struct { + Ikm _dafny.Sequence + ExpectedLength int32 + Nonce m_Wrappers.Option +} + +func (AesKdfCtrInput_AesKdfCtrInput) isAesKdfCtrInput() {} + +func (CompanionStruct_AesKdfCtrInput_) Create_AesKdfCtrInput_(Ikm _dafny.Sequence, ExpectedLength int32, Nonce m_Wrappers.Option) AesKdfCtrInput { + return AesKdfCtrInput{AesKdfCtrInput_AesKdfCtrInput{Ikm, ExpectedLength, Nonce}} +} + +func (_this AesKdfCtrInput) Is_AesKdfCtrInput() bool { + _, ok := _this.Get_().(AesKdfCtrInput_AesKdfCtrInput) + return ok +} + +func (CompanionStruct_AesKdfCtrInput_) Default() AesKdfCtrInput { + return Companion_AesKdfCtrInput_.Create_AesKdfCtrInput_(_dafny.EmptySeq, int32(0), m_Wrappers.Companion_Option_.Default()) +} + +func (_this AesKdfCtrInput) Dtor_ikm() _dafny.Sequence { + return _this.Get_().(AesKdfCtrInput_AesKdfCtrInput).Ikm +} + +func (_this AesKdfCtrInput) Dtor_expectedLength() int32 { + return _this.Get_().(AesKdfCtrInput_AesKdfCtrInput).ExpectedLength +} + +func (_this AesKdfCtrInput) Dtor_nonce() m_Wrappers.Option { + return _this.Get_().(AesKdfCtrInput_AesKdfCtrInput).Nonce +} + +func (_this AesKdfCtrInput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case AesKdfCtrInput_AesKdfCtrInput: + { + return "AwsCryptographyPrimitivesTypes.AesKdfCtrInput.AesKdfCtrInput" + "(" + _dafny.String(data.Ikm) + ", " + _dafny.String(data.ExpectedLength) + ", " + _dafny.String(data.Nonce) + ")" + } + default: + { + return "" + } + } +} + +func (_this AesKdfCtrInput) Equals(other AesKdfCtrInput) bool { + switch data1 := _this.Get_().(type) { + case AesKdfCtrInput_AesKdfCtrInput: + { + data2, ok := other.Get_().(AesKdfCtrInput_AesKdfCtrInput) + return ok && data1.Ikm.Equals(data2.Ikm) && data1.ExpectedLength == data2.ExpectedLength && data1.Nonce.Equals(data2.Nonce) + } + default: + { + return false // unexpected + } + } +} + +func (_this AesKdfCtrInput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(AesKdfCtrInput) + return ok && _this.Equals(typed) +} + +func Type_AesKdfCtrInput_() _dafny.TypeDescriptor { + return type_AesKdfCtrInput_{} +} + +type type_AesKdfCtrInput_ struct { +} + +func (_this type_AesKdfCtrInput_) Default() interface{} { + return Companion_AesKdfCtrInput_.Default() +} + +func (_this type_AesKdfCtrInput_) String() string { + return "AwsCryptographyPrimitivesTypes.AesKdfCtrInput" +} +func (_this AesKdfCtrInput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = AesKdfCtrInput{} + +// End of datatype AesKdfCtrInput + +// Definition of class IAwsCryptographicPrimitivesClientCallHistory +type IAwsCryptographicPrimitivesClientCallHistory struct { + dummy byte +} + +func New_IAwsCryptographicPrimitivesClientCallHistory_() *IAwsCryptographicPrimitivesClientCallHistory { + _this := IAwsCryptographicPrimitivesClientCallHistory{} + + return &_this +} + +type CompanionStruct_IAwsCryptographicPrimitivesClientCallHistory_ struct { +} + +var Companion_IAwsCryptographicPrimitivesClientCallHistory_ = CompanionStruct_IAwsCryptographicPrimitivesClientCallHistory_{} + +func (_this *IAwsCryptographicPrimitivesClientCallHistory) Equals(other *IAwsCryptographicPrimitivesClientCallHistory) bool { + return _this == other +} + +func (_this *IAwsCryptographicPrimitivesClientCallHistory) EqualsGeneric(x interface{}) bool { + other, ok := x.(*IAwsCryptographicPrimitivesClientCallHistory) + return ok && _this.Equals(other) +} + +func (*IAwsCryptographicPrimitivesClientCallHistory) String() string { + return "AwsCryptographyPrimitivesTypes.IAwsCryptographicPrimitivesClientCallHistory" +} + +func Type_IAwsCryptographicPrimitivesClientCallHistory_() _dafny.TypeDescriptor { + return type_IAwsCryptographicPrimitivesClientCallHistory_{} +} + +type type_IAwsCryptographicPrimitivesClientCallHistory_ struct { +} + +func (_this type_IAwsCryptographicPrimitivesClientCallHistory_) Default() interface{} { + return (*IAwsCryptographicPrimitivesClientCallHistory)(nil) +} + +func (_this type_IAwsCryptographicPrimitivesClientCallHistory_) String() string { + return "AwsCryptographyPrimitivesTypes.IAwsCryptographicPrimitivesClientCallHistory" +} +func (_this *IAwsCryptographicPrimitivesClientCallHistory) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = &IAwsCryptographicPrimitivesClientCallHistory{} + +// End of class IAwsCryptographicPrimitivesClientCallHistory + +// Definition of trait IAwsCryptographicPrimitivesClient +type IAwsCryptographicPrimitivesClient interface { + String() string + GenerateRandomBytes(input GenerateRandomBytesInput) m_Wrappers.Result + Digest(input DigestInput) m_Wrappers.Result + HMac(input HMacInput) m_Wrappers.Result + HkdfExtract(input HkdfExtractInput) m_Wrappers.Result + HkdfExpand(input HkdfExpandInput) m_Wrappers.Result + Hkdf(input HkdfInput) m_Wrappers.Result + KdfCounterMode(input KdfCtrInput) m_Wrappers.Result + AesKdfCounterMode(input AesKdfCtrInput) m_Wrappers.Result + AESEncrypt(input AESEncryptInput) m_Wrappers.Result + AESDecrypt(input AESDecryptInput) m_Wrappers.Result + GenerateRSAKeyPair(input GenerateRSAKeyPairInput) m_Wrappers.Result + GetRSAKeyModulusLength(input GetRSAKeyModulusLengthInput) m_Wrappers.Result + RSADecrypt(input RSADecryptInput) m_Wrappers.Result + RSAEncrypt(input RSAEncryptInput) m_Wrappers.Result + GenerateECDSASignatureKey(input GenerateECDSASignatureKeyInput) m_Wrappers.Result + ECDSASign(input ECDSASignInput) m_Wrappers.Result + ECDSAVerify(input ECDSAVerifyInput) m_Wrappers.Result + GenerateECCKeyPair(input GenerateECCKeyPairInput) m_Wrappers.Result + GetPublicKeyFromPrivateKey(input GetPublicKeyFromPrivateKeyInput) m_Wrappers.Result + ValidatePublicKey(input ValidatePublicKeyInput) m_Wrappers.Result + DeriveSharedSecret(input DeriveSharedSecretInput) m_Wrappers.Result + CompressPublicKey(input CompressPublicKeyInput) m_Wrappers.Result + DecompressPublicKey(input DecompressPublicKeyInput) m_Wrappers.Result + ParsePublicKey(input ParsePublicKeyInput) m_Wrappers.Result +} +type CompanionStruct_IAwsCryptographicPrimitivesClient_ struct { + TraitID_ *_dafny.TraitID +} + +var Companion_IAwsCryptographicPrimitivesClient_ = CompanionStruct_IAwsCryptographicPrimitivesClient_{ + TraitID_: &_dafny.TraitID{}, +} + +func (CompanionStruct_IAwsCryptographicPrimitivesClient_) CastTo_(x interface{}) IAwsCryptographicPrimitivesClient { + var t IAwsCryptographicPrimitivesClient + t, _ = x.(IAwsCryptographicPrimitivesClient) + return t +} + +// End of trait IAwsCryptographicPrimitivesClient + +// Definition of datatype CompressPublicKeyInput +type CompressPublicKeyInput struct { + Data_CompressPublicKeyInput_ +} + +func (_this CompressPublicKeyInput) Get_() Data_CompressPublicKeyInput_ { + return _this.Data_CompressPublicKeyInput_ +} + +type Data_CompressPublicKeyInput_ interface { + isCompressPublicKeyInput() +} + +type CompanionStruct_CompressPublicKeyInput_ struct { +} + +var Companion_CompressPublicKeyInput_ = CompanionStruct_CompressPublicKeyInput_{} + +type CompressPublicKeyInput_CompressPublicKeyInput struct { + PublicKey ECCPublicKey + EccCurve ECDHCurveSpec +} + +func (CompressPublicKeyInput_CompressPublicKeyInput) isCompressPublicKeyInput() {} + +func (CompanionStruct_CompressPublicKeyInput_) Create_CompressPublicKeyInput_(PublicKey ECCPublicKey, EccCurve ECDHCurveSpec) CompressPublicKeyInput { + return CompressPublicKeyInput{CompressPublicKeyInput_CompressPublicKeyInput{PublicKey, EccCurve}} +} + +func (_this CompressPublicKeyInput) Is_CompressPublicKeyInput() bool { + _, ok := _this.Get_().(CompressPublicKeyInput_CompressPublicKeyInput) + return ok +} + +func (CompanionStruct_CompressPublicKeyInput_) Default() CompressPublicKeyInput { + return Companion_CompressPublicKeyInput_.Create_CompressPublicKeyInput_(Companion_ECCPublicKey_.Default(), Companion_ECDHCurveSpec_.Default()) +} + +func (_this CompressPublicKeyInput) Dtor_publicKey() ECCPublicKey { + return _this.Get_().(CompressPublicKeyInput_CompressPublicKeyInput).PublicKey +} + +func (_this CompressPublicKeyInput) Dtor_eccCurve() ECDHCurveSpec { + return _this.Get_().(CompressPublicKeyInput_CompressPublicKeyInput).EccCurve +} + +func (_this CompressPublicKeyInput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case CompressPublicKeyInput_CompressPublicKeyInput: + { + return "AwsCryptographyPrimitivesTypes.CompressPublicKeyInput.CompressPublicKeyInput" + "(" + _dafny.String(data.PublicKey) + ", " + _dafny.String(data.EccCurve) + ")" + } + default: + { + return "" + } + } +} + +func (_this CompressPublicKeyInput) Equals(other CompressPublicKeyInput) bool { + switch data1 := _this.Get_().(type) { + case CompressPublicKeyInput_CompressPublicKeyInput: + { + data2, ok := other.Get_().(CompressPublicKeyInput_CompressPublicKeyInput) + return ok && data1.PublicKey.Equals(data2.PublicKey) && data1.EccCurve.Equals(data2.EccCurve) + } + default: + { + return false // unexpected + } + } +} + +func (_this CompressPublicKeyInput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(CompressPublicKeyInput) + return ok && _this.Equals(typed) +} + +func Type_CompressPublicKeyInput_() _dafny.TypeDescriptor { + return type_CompressPublicKeyInput_{} +} + +type type_CompressPublicKeyInput_ struct { +} + +func (_this type_CompressPublicKeyInput_) Default() interface{} { + return Companion_CompressPublicKeyInput_.Default() +} + +func (_this type_CompressPublicKeyInput_) String() string { + return "AwsCryptographyPrimitivesTypes.CompressPublicKeyInput" +} +func (_this CompressPublicKeyInput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = CompressPublicKeyInput{} + +// End of datatype CompressPublicKeyInput + +// Definition of datatype CompressPublicKeyOutput +type CompressPublicKeyOutput struct { + Data_CompressPublicKeyOutput_ +} + +func (_this CompressPublicKeyOutput) Get_() Data_CompressPublicKeyOutput_ { + return _this.Data_CompressPublicKeyOutput_ +} + +type Data_CompressPublicKeyOutput_ interface { + isCompressPublicKeyOutput() +} + +type CompanionStruct_CompressPublicKeyOutput_ struct { +} + +var Companion_CompressPublicKeyOutput_ = CompanionStruct_CompressPublicKeyOutput_{} + +type CompressPublicKeyOutput_CompressPublicKeyOutput struct { + CompressedPublicKey _dafny.Sequence +} + +func (CompressPublicKeyOutput_CompressPublicKeyOutput) isCompressPublicKeyOutput() {} + +func (CompanionStruct_CompressPublicKeyOutput_) Create_CompressPublicKeyOutput_(CompressedPublicKey _dafny.Sequence) CompressPublicKeyOutput { + return CompressPublicKeyOutput{CompressPublicKeyOutput_CompressPublicKeyOutput{CompressedPublicKey}} +} + +func (_this CompressPublicKeyOutput) Is_CompressPublicKeyOutput() bool { + _, ok := _this.Get_().(CompressPublicKeyOutput_CompressPublicKeyOutput) + return ok +} + +func (CompanionStruct_CompressPublicKeyOutput_) Default() CompressPublicKeyOutput { + return Companion_CompressPublicKeyOutput_.Create_CompressPublicKeyOutput_(_dafny.EmptySeq) +} + +func (_this CompressPublicKeyOutput) Dtor_compressedPublicKey() _dafny.Sequence { + return _this.Get_().(CompressPublicKeyOutput_CompressPublicKeyOutput).CompressedPublicKey +} + +func (_this CompressPublicKeyOutput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case CompressPublicKeyOutput_CompressPublicKeyOutput: + { + return "AwsCryptographyPrimitivesTypes.CompressPublicKeyOutput.CompressPublicKeyOutput" + "(" + _dafny.String(data.CompressedPublicKey) + ")" + } + default: + { + return "" + } + } +} + +func (_this CompressPublicKeyOutput) Equals(other CompressPublicKeyOutput) bool { + switch data1 := _this.Get_().(type) { + case CompressPublicKeyOutput_CompressPublicKeyOutput: + { + data2, ok := other.Get_().(CompressPublicKeyOutput_CompressPublicKeyOutput) + return ok && data1.CompressedPublicKey.Equals(data2.CompressedPublicKey) + } + default: + { + return false // unexpected + } + } +} + +func (_this CompressPublicKeyOutput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(CompressPublicKeyOutput) + return ok && _this.Equals(typed) +} + +func Type_CompressPublicKeyOutput_() _dafny.TypeDescriptor { + return type_CompressPublicKeyOutput_{} +} + +type type_CompressPublicKeyOutput_ struct { +} + +func (_this type_CompressPublicKeyOutput_) Default() interface{} { + return Companion_CompressPublicKeyOutput_.Default() +} + +func (_this type_CompressPublicKeyOutput_) String() string { + return "AwsCryptographyPrimitivesTypes.CompressPublicKeyOutput" +} +func (_this CompressPublicKeyOutput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = CompressPublicKeyOutput{} + +// End of datatype CompressPublicKeyOutput + +// Definition of datatype CryptoConfig +type CryptoConfig struct { + Data_CryptoConfig_ +} + +func (_this CryptoConfig) Get_() Data_CryptoConfig_ { + return _this.Data_CryptoConfig_ +} + +type Data_CryptoConfig_ interface { + isCryptoConfig() +} + +type CompanionStruct_CryptoConfig_ struct { +} + +var Companion_CryptoConfig_ = CompanionStruct_CryptoConfig_{} + +type CryptoConfig_CryptoConfig struct { +} + +func (CryptoConfig_CryptoConfig) isCryptoConfig() {} + +func (CompanionStruct_CryptoConfig_) Create_CryptoConfig_() CryptoConfig { + return CryptoConfig{CryptoConfig_CryptoConfig{}} +} + +func (_this CryptoConfig) Is_CryptoConfig() bool { + _, ok := _this.Get_().(CryptoConfig_CryptoConfig) + return ok +} + +func (CompanionStruct_CryptoConfig_) Default() CryptoConfig { + return Companion_CryptoConfig_.Create_CryptoConfig_() +} + +func (_ CompanionStruct_CryptoConfig_) AllSingletonConstructors() _dafny.Iterator { + i := -1 + return func() (interface{}, bool) { + i++ + switch i { + case 0: + return Companion_CryptoConfig_.Create_CryptoConfig_(), true + default: + return CryptoConfig{}, false + } + } +} + +func (_this CryptoConfig) String() string { + switch _this.Get_().(type) { + case nil: + return "null" + case CryptoConfig_CryptoConfig: + { + return "AwsCryptographyPrimitivesTypes.CryptoConfig.CryptoConfig" + } + default: + { + return "" + } + } +} + +func (_this CryptoConfig) Equals(other CryptoConfig) bool { + switch _this.Get_().(type) { + case CryptoConfig_CryptoConfig: + { + _, ok := other.Get_().(CryptoConfig_CryptoConfig) + return ok + } + default: + { + return false // unexpected + } + } +} + +func (_this CryptoConfig) EqualsGeneric(other interface{}) bool { + typed, ok := other.(CryptoConfig) + return ok && _this.Equals(typed) +} + +func Type_CryptoConfig_() _dafny.TypeDescriptor { + return type_CryptoConfig_{} +} + +type type_CryptoConfig_ struct { +} + +func (_this type_CryptoConfig_) Default() interface{} { + return Companion_CryptoConfig_.Default() +} + +func (_this type_CryptoConfig_) String() string { + return "AwsCryptographyPrimitivesTypes.CryptoConfig" +} +func (_this CryptoConfig) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = CryptoConfig{} + +// End of datatype CryptoConfig + +// Definition of datatype DecompressPublicKeyInput +type DecompressPublicKeyInput struct { + Data_DecompressPublicKeyInput_ +} + +func (_this DecompressPublicKeyInput) Get_() Data_DecompressPublicKeyInput_ { + return _this.Data_DecompressPublicKeyInput_ +} + +type Data_DecompressPublicKeyInput_ interface { + isDecompressPublicKeyInput() +} + +type CompanionStruct_DecompressPublicKeyInput_ struct { +} + +var Companion_DecompressPublicKeyInput_ = CompanionStruct_DecompressPublicKeyInput_{} + +type DecompressPublicKeyInput_DecompressPublicKeyInput struct { + CompressedPublicKey _dafny.Sequence + EccCurve ECDHCurveSpec +} + +func (DecompressPublicKeyInput_DecompressPublicKeyInput) isDecompressPublicKeyInput() {} + +func (CompanionStruct_DecompressPublicKeyInput_) Create_DecompressPublicKeyInput_(CompressedPublicKey _dafny.Sequence, EccCurve ECDHCurveSpec) DecompressPublicKeyInput { + return DecompressPublicKeyInput{DecompressPublicKeyInput_DecompressPublicKeyInput{CompressedPublicKey, EccCurve}} +} + +func (_this DecompressPublicKeyInput) Is_DecompressPublicKeyInput() bool { + _, ok := _this.Get_().(DecompressPublicKeyInput_DecompressPublicKeyInput) + return ok +} + +func (CompanionStruct_DecompressPublicKeyInput_) Default() DecompressPublicKeyInput { + return Companion_DecompressPublicKeyInput_.Create_DecompressPublicKeyInput_(_dafny.EmptySeq, Companion_ECDHCurveSpec_.Default()) +} + +func (_this DecompressPublicKeyInput) Dtor_compressedPublicKey() _dafny.Sequence { + return _this.Get_().(DecompressPublicKeyInput_DecompressPublicKeyInput).CompressedPublicKey +} + +func (_this DecompressPublicKeyInput) Dtor_eccCurve() ECDHCurveSpec { + return _this.Get_().(DecompressPublicKeyInput_DecompressPublicKeyInput).EccCurve +} + +func (_this DecompressPublicKeyInput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case DecompressPublicKeyInput_DecompressPublicKeyInput: + { + return "AwsCryptographyPrimitivesTypes.DecompressPublicKeyInput.DecompressPublicKeyInput" + "(" + _dafny.String(data.CompressedPublicKey) + ", " + _dafny.String(data.EccCurve) + ")" + } + default: + { + return "" + } + } +} + +func (_this DecompressPublicKeyInput) Equals(other DecompressPublicKeyInput) bool { + switch data1 := _this.Get_().(type) { + case DecompressPublicKeyInput_DecompressPublicKeyInput: + { + data2, ok := other.Get_().(DecompressPublicKeyInput_DecompressPublicKeyInput) + return ok && data1.CompressedPublicKey.Equals(data2.CompressedPublicKey) && data1.EccCurve.Equals(data2.EccCurve) + } + default: + { + return false // unexpected + } + } +} + +func (_this DecompressPublicKeyInput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(DecompressPublicKeyInput) + return ok && _this.Equals(typed) +} + +func Type_DecompressPublicKeyInput_() _dafny.TypeDescriptor { + return type_DecompressPublicKeyInput_{} +} + +type type_DecompressPublicKeyInput_ struct { +} + +func (_this type_DecompressPublicKeyInput_) Default() interface{} { + return Companion_DecompressPublicKeyInput_.Default() +} + +func (_this type_DecompressPublicKeyInput_) String() string { + return "AwsCryptographyPrimitivesTypes.DecompressPublicKeyInput" +} +func (_this DecompressPublicKeyInput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = DecompressPublicKeyInput{} + +// End of datatype DecompressPublicKeyInput + +// Definition of datatype DecompressPublicKeyOutput +type DecompressPublicKeyOutput struct { + Data_DecompressPublicKeyOutput_ +} + +func (_this DecompressPublicKeyOutput) Get_() Data_DecompressPublicKeyOutput_ { + return _this.Data_DecompressPublicKeyOutput_ +} + +type Data_DecompressPublicKeyOutput_ interface { + isDecompressPublicKeyOutput() +} + +type CompanionStruct_DecompressPublicKeyOutput_ struct { +} + +var Companion_DecompressPublicKeyOutput_ = CompanionStruct_DecompressPublicKeyOutput_{} + +type DecompressPublicKeyOutput_DecompressPublicKeyOutput struct { + PublicKey ECCPublicKey +} + +func (DecompressPublicKeyOutput_DecompressPublicKeyOutput) isDecompressPublicKeyOutput() {} + +func (CompanionStruct_DecompressPublicKeyOutput_) Create_DecompressPublicKeyOutput_(PublicKey ECCPublicKey) DecompressPublicKeyOutput { + return DecompressPublicKeyOutput{DecompressPublicKeyOutput_DecompressPublicKeyOutput{PublicKey}} +} + +func (_this DecompressPublicKeyOutput) Is_DecompressPublicKeyOutput() bool { + _, ok := _this.Get_().(DecompressPublicKeyOutput_DecompressPublicKeyOutput) + return ok +} + +func (CompanionStruct_DecompressPublicKeyOutput_) Default() DecompressPublicKeyOutput { + return Companion_DecompressPublicKeyOutput_.Create_DecompressPublicKeyOutput_(Companion_ECCPublicKey_.Default()) +} + +func (_this DecompressPublicKeyOutput) Dtor_publicKey() ECCPublicKey { + return _this.Get_().(DecompressPublicKeyOutput_DecompressPublicKeyOutput).PublicKey +} + +func (_this DecompressPublicKeyOutput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case DecompressPublicKeyOutput_DecompressPublicKeyOutput: + { + return "AwsCryptographyPrimitivesTypes.DecompressPublicKeyOutput.DecompressPublicKeyOutput" + "(" + _dafny.String(data.PublicKey) + ")" + } + default: + { + return "" + } + } +} + +func (_this DecompressPublicKeyOutput) Equals(other DecompressPublicKeyOutput) bool { + switch data1 := _this.Get_().(type) { + case DecompressPublicKeyOutput_DecompressPublicKeyOutput: + { + data2, ok := other.Get_().(DecompressPublicKeyOutput_DecompressPublicKeyOutput) + return ok && data1.PublicKey.Equals(data2.PublicKey) + } + default: + { + return false // unexpected + } + } +} + +func (_this DecompressPublicKeyOutput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(DecompressPublicKeyOutput) + return ok && _this.Equals(typed) +} + +func Type_DecompressPublicKeyOutput_() _dafny.TypeDescriptor { + return type_DecompressPublicKeyOutput_{} +} + +type type_DecompressPublicKeyOutput_ struct { +} + +func (_this type_DecompressPublicKeyOutput_) Default() interface{} { + return Companion_DecompressPublicKeyOutput_.Default() +} + +func (_this type_DecompressPublicKeyOutput_) String() string { + return "AwsCryptographyPrimitivesTypes.DecompressPublicKeyOutput" +} +func (_this DecompressPublicKeyOutput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = DecompressPublicKeyOutput{} + +// End of datatype DecompressPublicKeyOutput + +// Definition of datatype DeriveSharedSecretInput +type DeriveSharedSecretInput struct { + Data_DeriveSharedSecretInput_ +} + +func (_this DeriveSharedSecretInput) Get_() Data_DeriveSharedSecretInput_ { + return _this.Data_DeriveSharedSecretInput_ +} + +type Data_DeriveSharedSecretInput_ interface { + isDeriveSharedSecretInput() +} + +type CompanionStruct_DeriveSharedSecretInput_ struct { +} + +var Companion_DeriveSharedSecretInput_ = CompanionStruct_DeriveSharedSecretInput_{} + +type DeriveSharedSecretInput_DeriveSharedSecretInput struct { + EccCurve ECDHCurveSpec + PrivateKey ECCPrivateKey + PublicKey ECCPublicKey +} + +func (DeriveSharedSecretInput_DeriveSharedSecretInput) isDeriveSharedSecretInput() {} + +func (CompanionStruct_DeriveSharedSecretInput_) Create_DeriveSharedSecretInput_(EccCurve ECDHCurveSpec, PrivateKey ECCPrivateKey, PublicKey ECCPublicKey) DeriveSharedSecretInput { + return DeriveSharedSecretInput{DeriveSharedSecretInput_DeriveSharedSecretInput{EccCurve, PrivateKey, PublicKey}} +} + +func (_this DeriveSharedSecretInput) Is_DeriveSharedSecretInput() bool { + _, ok := _this.Get_().(DeriveSharedSecretInput_DeriveSharedSecretInput) + return ok +} + +func (CompanionStruct_DeriveSharedSecretInput_) Default() DeriveSharedSecretInput { + return Companion_DeriveSharedSecretInput_.Create_DeriveSharedSecretInput_(Companion_ECDHCurveSpec_.Default(), Companion_ECCPrivateKey_.Default(), Companion_ECCPublicKey_.Default()) +} + +func (_this DeriveSharedSecretInput) Dtor_eccCurve() ECDHCurveSpec { + return _this.Get_().(DeriveSharedSecretInput_DeriveSharedSecretInput).EccCurve +} + +func (_this DeriveSharedSecretInput) Dtor_privateKey() ECCPrivateKey { + return _this.Get_().(DeriveSharedSecretInput_DeriveSharedSecretInput).PrivateKey +} + +func (_this DeriveSharedSecretInput) Dtor_publicKey() ECCPublicKey { + return _this.Get_().(DeriveSharedSecretInput_DeriveSharedSecretInput).PublicKey +} + +func (_this DeriveSharedSecretInput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case DeriveSharedSecretInput_DeriveSharedSecretInput: + { + return "AwsCryptographyPrimitivesTypes.DeriveSharedSecretInput.DeriveSharedSecretInput" + "(" + _dafny.String(data.EccCurve) + ", " + _dafny.String(data.PrivateKey) + ", " + _dafny.String(data.PublicKey) + ")" + } + default: + { + return "" + } + } +} + +func (_this DeriveSharedSecretInput) Equals(other DeriveSharedSecretInput) bool { + switch data1 := _this.Get_().(type) { + case DeriveSharedSecretInput_DeriveSharedSecretInput: + { + data2, ok := other.Get_().(DeriveSharedSecretInput_DeriveSharedSecretInput) + return ok && data1.EccCurve.Equals(data2.EccCurve) && data1.PrivateKey.Equals(data2.PrivateKey) && data1.PublicKey.Equals(data2.PublicKey) + } + default: + { + return false // unexpected + } + } +} + +func (_this DeriveSharedSecretInput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(DeriveSharedSecretInput) + return ok && _this.Equals(typed) +} + +func Type_DeriveSharedSecretInput_() _dafny.TypeDescriptor { + return type_DeriveSharedSecretInput_{} +} + +type type_DeriveSharedSecretInput_ struct { +} + +func (_this type_DeriveSharedSecretInput_) Default() interface{} { + return Companion_DeriveSharedSecretInput_.Default() +} + +func (_this type_DeriveSharedSecretInput_) String() string { + return "AwsCryptographyPrimitivesTypes.DeriveSharedSecretInput" +} +func (_this DeriveSharedSecretInput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = DeriveSharedSecretInput{} + +// End of datatype DeriveSharedSecretInput + +// Definition of datatype DeriveSharedSecretOutput +type DeriveSharedSecretOutput struct { + Data_DeriveSharedSecretOutput_ +} + +func (_this DeriveSharedSecretOutput) Get_() Data_DeriveSharedSecretOutput_ { + return _this.Data_DeriveSharedSecretOutput_ +} + +type Data_DeriveSharedSecretOutput_ interface { + isDeriveSharedSecretOutput() +} + +type CompanionStruct_DeriveSharedSecretOutput_ struct { +} + +var Companion_DeriveSharedSecretOutput_ = CompanionStruct_DeriveSharedSecretOutput_{} + +type DeriveSharedSecretOutput_DeriveSharedSecretOutput struct { + SharedSecret _dafny.Sequence +} + +func (DeriveSharedSecretOutput_DeriveSharedSecretOutput) isDeriveSharedSecretOutput() {} + +func (CompanionStruct_DeriveSharedSecretOutput_) Create_DeriveSharedSecretOutput_(SharedSecret _dafny.Sequence) DeriveSharedSecretOutput { + return DeriveSharedSecretOutput{DeriveSharedSecretOutput_DeriveSharedSecretOutput{SharedSecret}} +} + +func (_this DeriveSharedSecretOutput) Is_DeriveSharedSecretOutput() bool { + _, ok := _this.Get_().(DeriveSharedSecretOutput_DeriveSharedSecretOutput) + return ok +} + +func (CompanionStruct_DeriveSharedSecretOutput_) Default() DeriveSharedSecretOutput { + return Companion_DeriveSharedSecretOutput_.Create_DeriveSharedSecretOutput_(_dafny.EmptySeq) +} + +func (_this DeriveSharedSecretOutput) Dtor_sharedSecret() _dafny.Sequence { + return _this.Get_().(DeriveSharedSecretOutput_DeriveSharedSecretOutput).SharedSecret +} + +func (_this DeriveSharedSecretOutput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case DeriveSharedSecretOutput_DeriveSharedSecretOutput: + { + return "AwsCryptographyPrimitivesTypes.DeriveSharedSecretOutput.DeriveSharedSecretOutput" + "(" + _dafny.String(data.SharedSecret) + ")" + } + default: + { + return "" + } + } +} + +func (_this DeriveSharedSecretOutput) Equals(other DeriveSharedSecretOutput) bool { + switch data1 := _this.Get_().(type) { + case DeriveSharedSecretOutput_DeriveSharedSecretOutput: + { + data2, ok := other.Get_().(DeriveSharedSecretOutput_DeriveSharedSecretOutput) + return ok && data1.SharedSecret.Equals(data2.SharedSecret) + } + default: + { + return false // unexpected + } + } +} + +func (_this DeriveSharedSecretOutput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(DeriveSharedSecretOutput) + return ok && _this.Equals(typed) +} + +func Type_DeriveSharedSecretOutput_() _dafny.TypeDescriptor { + return type_DeriveSharedSecretOutput_{} +} + +type type_DeriveSharedSecretOutput_ struct { +} + +func (_this type_DeriveSharedSecretOutput_) Default() interface{} { + return Companion_DeriveSharedSecretOutput_.Default() +} + +func (_this type_DeriveSharedSecretOutput_) String() string { + return "AwsCryptographyPrimitivesTypes.DeriveSharedSecretOutput" +} +func (_this DeriveSharedSecretOutput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = DeriveSharedSecretOutput{} + +// End of datatype DeriveSharedSecretOutput + +// Definition of datatype DigestAlgorithm +type DigestAlgorithm struct { + Data_DigestAlgorithm_ +} + +func (_this DigestAlgorithm) Get_() Data_DigestAlgorithm_ { + return _this.Data_DigestAlgorithm_ +} + +type Data_DigestAlgorithm_ interface { + isDigestAlgorithm() +} + +type CompanionStruct_DigestAlgorithm_ struct { +} + +var Companion_DigestAlgorithm_ = CompanionStruct_DigestAlgorithm_{} + +type DigestAlgorithm_SHA__512 struct { +} + +func (DigestAlgorithm_SHA__512) isDigestAlgorithm() {} + +func (CompanionStruct_DigestAlgorithm_) Create_SHA__512_() DigestAlgorithm { + return DigestAlgorithm{DigestAlgorithm_SHA__512{}} +} + +func (_this DigestAlgorithm) Is_SHA__512() bool { + _, ok := _this.Get_().(DigestAlgorithm_SHA__512) + return ok +} + +type DigestAlgorithm_SHA__384 struct { +} + +func (DigestAlgorithm_SHA__384) isDigestAlgorithm() {} + +func (CompanionStruct_DigestAlgorithm_) Create_SHA__384_() DigestAlgorithm { + return DigestAlgorithm{DigestAlgorithm_SHA__384{}} +} + +func (_this DigestAlgorithm) Is_SHA__384() bool { + _, ok := _this.Get_().(DigestAlgorithm_SHA__384) + return ok +} + +type DigestAlgorithm_SHA__256 struct { +} + +func (DigestAlgorithm_SHA__256) isDigestAlgorithm() {} + +func (CompanionStruct_DigestAlgorithm_) Create_SHA__256_() DigestAlgorithm { + return DigestAlgorithm{DigestAlgorithm_SHA__256{}} +} + +func (_this DigestAlgorithm) Is_SHA__256() bool { + _, ok := _this.Get_().(DigestAlgorithm_SHA__256) + return ok +} + +func (CompanionStruct_DigestAlgorithm_) Default() DigestAlgorithm { + return Companion_DigestAlgorithm_.Create_SHA__512_() +} + +func (_ CompanionStruct_DigestAlgorithm_) AllSingletonConstructors() _dafny.Iterator { + i := -1 + return func() (interface{}, bool) { + i++ + switch i { + case 0: + return Companion_DigestAlgorithm_.Create_SHA__512_(), true + case 1: + return Companion_DigestAlgorithm_.Create_SHA__384_(), true + case 2: + return Companion_DigestAlgorithm_.Create_SHA__256_(), true + default: + return DigestAlgorithm{}, false + } + } +} + +func (_this DigestAlgorithm) String() string { + switch _this.Get_().(type) { + case nil: + return "null" + case DigestAlgorithm_SHA__512: + { + return "AwsCryptographyPrimitivesTypes.DigestAlgorithm.SHA_512" + } + case DigestAlgorithm_SHA__384: + { + return "AwsCryptographyPrimitivesTypes.DigestAlgorithm.SHA_384" + } + case DigestAlgorithm_SHA__256: + { + return "AwsCryptographyPrimitivesTypes.DigestAlgorithm.SHA_256" + } + default: + { + return "" + } + } +} + +func (_this DigestAlgorithm) Equals(other DigestAlgorithm) bool { + switch _this.Get_().(type) { + case DigestAlgorithm_SHA__512: + { + _, ok := other.Get_().(DigestAlgorithm_SHA__512) + return ok + } + case DigestAlgorithm_SHA__384: + { + _, ok := other.Get_().(DigestAlgorithm_SHA__384) + return ok + } + case DigestAlgorithm_SHA__256: + { + _, ok := other.Get_().(DigestAlgorithm_SHA__256) + return ok + } + default: + { + return false // unexpected + } + } +} + +func (_this DigestAlgorithm) EqualsGeneric(other interface{}) bool { + typed, ok := other.(DigestAlgorithm) + return ok && _this.Equals(typed) +} + +func Type_DigestAlgorithm_() _dafny.TypeDescriptor { + return type_DigestAlgorithm_{} +} + +type type_DigestAlgorithm_ struct { +} + +func (_this type_DigestAlgorithm_) Default() interface{} { + return Companion_DigestAlgorithm_.Default() +} + +func (_this type_DigestAlgorithm_) String() string { + return "AwsCryptographyPrimitivesTypes.DigestAlgorithm" +} +func (_this DigestAlgorithm) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = DigestAlgorithm{} + +// End of datatype DigestAlgorithm + +// Definition of datatype DigestInput +type DigestInput struct { + Data_DigestInput_ +} + +func (_this DigestInput) Get_() Data_DigestInput_ { + return _this.Data_DigestInput_ +} + +type Data_DigestInput_ interface { + isDigestInput() +} + +type CompanionStruct_DigestInput_ struct { +} + +var Companion_DigestInput_ = CompanionStruct_DigestInput_{} + +type DigestInput_DigestInput struct { + DigestAlgorithm DigestAlgorithm + Message _dafny.Sequence +} + +func (DigestInput_DigestInput) isDigestInput() {} + +func (CompanionStruct_DigestInput_) Create_DigestInput_(DigestAlgorithm DigestAlgorithm, Message _dafny.Sequence) DigestInput { + return DigestInput{DigestInput_DigestInput{DigestAlgorithm, Message}} +} + +func (_this DigestInput) Is_DigestInput() bool { + _, ok := _this.Get_().(DigestInput_DigestInput) + return ok +} + +func (CompanionStruct_DigestInput_) Default() DigestInput { + return Companion_DigestInput_.Create_DigestInput_(Companion_DigestAlgorithm_.Default(), _dafny.EmptySeq) +} + +func (_this DigestInput) Dtor_digestAlgorithm() DigestAlgorithm { + return _this.Get_().(DigestInput_DigestInput).DigestAlgorithm +} + +func (_this DigestInput) Dtor_message() _dafny.Sequence { + return _this.Get_().(DigestInput_DigestInput).Message +} + +func (_this DigestInput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case DigestInput_DigestInput: + { + return "AwsCryptographyPrimitivesTypes.DigestInput.DigestInput" + "(" + _dafny.String(data.DigestAlgorithm) + ", " + _dafny.String(data.Message) + ")" + } + default: + { + return "" + } + } +} + +func (_this DigestInput) Equals(other DigestInput) bool { + switch data1 := _this.Get_().(type) { + case DigestInput_DigestInput: + { + data2, ok := other.Get_().(DigestInput_DigestInput) + return ok && data1.DigestAlgorithm.Equals(data2.DigestAlgorithm) && data1.Message.Equals(data2.Message) + } + default: + { + return false // unexpected + } + } +} + +func (_this DigestInput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(DigestInput) + return ok && _this.Equals(typed) +} + +func Type_DigestInput_() _dafny.TypeDescriptor { + return type_DigestInput_{} +} + +type type_DigestInput_ struct { +} + +func (_this type_DigestInput_) Default() interface{} { + return Companion_DigestInput_.Default() +} + +func (_this type_DigestInput_) String() string { + return "AwsCryptographyPrimitivesTypes.DigestInput" +} +func (_this DigestInput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = DigestInput{} + +// End of datatype DigestInput + +// Definition of datatype ECCPrivateKey +type ECCPrivateKey struct { + Data_ECCPrivateKey_ +} + +func (_this ECCPrivateKey) Get_() Data_ECCPrivateKey_ { + return _this.Data_ECCPrivateKey_ +} + +type Data_ECCPrivateKey_ interface { + isECCPrivateKey() +} + +type CompanionStruct_ECCPrivateKey_ struct { +} + +var Companion_ECCPrivateKey_ = CompanionStruct_ECCPrivateKey_{} + +type ECCPrivateKey_ECCPrivateKey struct { + Pem _dafny.Sequence +} + +func (ECCPrivateKey_ECCPrivateKey) isECCPrivateKey() {} + +func (CompanionStruct_ECCPrivateKey_) Create_ECCPrivateKey_(Pem _dafny.Sequence) ECCPrivateKey { + return ECCPrivateKey{ECCPrivateKey_ECCPrivateKey{Pem}} +} + +func (_this ECCPrivateKey) Is_ECCPrivateKey() bool { + _, ok := _this.Get_().(ECCPrivateKey_ECCPrivateKey) + return ok +} + +func (CompanionStruct_ECCPrivateKey_) Default() ECCPrivateKey { + return Companion_ECCPrivateKey_.Create_ECCPrivateKey_(_dafny.EmptySeq) +} + +func (_this ECCPrivateKey) Dtor_pem() _dafny.Sequence { + return _this.Get_().(ECCPrivateKey_ECCPrivateKey).Pem +} + +func (_this ECCPrivateKey) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case ECCPrivateKey_ECCPrivateKey: + { + return "AwsCryptographyPrimitivesTypes.ECCPrivateKey.ECCPrivateKey" + "(" + _dafny.String(data.Pem) + ")" + } + default: + { + return "" + } + } +} + +func (_this ECCPrivateKey) Equals(other ECCPrivateKey) bool { + switch data1 := _this.Get_().(type) { + case ECCPrivateKey_ECCPrivateKey: + { + data2, ok := other.Get_().(ECCPrivateKey_ECCPrivateKey) + return ok && data1.Pem.Equals(data2.Pem) + } + default: + { + return false // unexpected + } + } +} + +func (_this ECCPrivateKey) EqualsGeneric(other interface{}) bool { + typed, ok := other.(ECCPrivateKey) + return ok && _this.Equals(typed) +} + +func Type_ECCPrivateKey_() _dafny.TypeDescriptor { + return type_ECCPrivateKey_{} +} + +type type_ECCPrivateKey_ struct { +} + +func (_this type_ECCPrivateKey_) Default() interface{} { + return Companion_ECCPrivateKey_.Default() +} + +func (_this type_ECCPrivateKey_) String() string { + return "AwsCryptographyPrimitivesTypes.ECCPrivateKey" +} +func (_this ECCPrivateKey) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = ECCPrivateKey{} + +// End of datatype ECCPrivateKey + +// Definition of datatype ECCPublicKey +type ECCPublicKey struct { + Data_ECCPublicKey_ +} + +func (_this ECCPublicKey) Get_() Data_ECCPublicKey_ { + return _this.Data_ECCPublicKey_ +} + +type Data_ECCPublicKey_ interface { + isECCPublicKey() +} + +type CompanionStruct_ECCPublicKey_ struct { +} + +var Companion_ECCPublicKey_ = CompanionStruct_ECCPublicKey_{} + +type ECCPublicKey_ECCPublicKey struct { + Der _dafny.Sequence +} + +func (ECCPublicKey_ECCPublicKey) isECCPublicKey() {} + +func (CompanionStruct_ECCPublicKey_) Create_ECCPublicKey_(Der _dafny.Sequence) ECCPublicKey { + return ECCPublicKey{ECCPublicKey_ECCPublicKey{Der}} +} + +func (_this ECCPublicKey) Is_ECCPublicKey() bool { + _, ok := _this.Get_().(ECCPublicKey_ECCPublicKey) + return ok +} + +func (CompanionStruct_ECCPublicKey_) Default() ECCPublicKey { + return Companion_ECCPublicKey_.Create_ECCPublicKey_(_dafny.EmptySeq) +} + +func (_this ECCPublicKey) Dtor_der() _dafny.Sequence { + return _this.Get_().(ECCPublicKey_ECCPublicKey).Der +} + +func (_this ECCPublicKey) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case ECCPublicKey_ECCPublicKey: + { + return "AwsCryptographyPrimitivesTypes.ECCPublicKey.ECCPublicKey" + "(" + _dafny.String(data.Der) + ")" + } + default: + { + return "" + } + } +} + +func (_this ECCPublicKey) Equals(other ECCPublicKey) bool { + switch data1 := _this.Get_().(type) { + case ECCPublicKey_ECCPublicKey: + { + data2, ok := other.Get_().(ECCPublicKey_ECCPublicKey) + return ok && data1.Der.Equals(data2.Der) + } + default: + { + return false // unexpected + } + } +} + +func (_this ECCPublicKey) EqualsGeneric(other interface{}) bool { + typed, ok := other.(ECCPublicKey) + return ok && _this.Equals(typed) +} + +func Type_ECCPublicKey_() _dafny.TypeDescriptor { + return type_ECCPublicKey_{} +} + +type type_ECCPublicKey_ struct { +} + +func (_this type_ECCPublicKey_) Default() interface{} { + return Companion_ECCPublicKey_.Default() +} + +func (_this type_ECCPublicKey_) String() string { + return "AwsCryptographyPrimitivesTypes.ECCPublicKey" +} +func (_this ECCPublicKey) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = ECCPublicKey{} + +// End of datatype ECCPublicKey + +// Definition of datatype ECDHCurveSpec +type ECDHCurveSpec struct { + Data_ECDHCurveSpec_ +} + +func (_this ECDHCurveSpec) Get_() Data_ECDHCurveSpec_ { + return _this.Data_ECDHCurveSpec_ +} + +type Data_ECDHCurveSpec_ interface { + isECDHCurveSpec() +} + +type CompanionStruct_ECDHCurveSpec_ struct { +} + +var Companion_ECDHCurveSpec_ = CompanionStruct_ECDHCurveSpec_{} + +type ECDHCurveSpec_ECC__NIST__P256 struct { +} + +func (ECDHCurveSpec_ECC__NIST__P256) isECDHCurveSpec() {} + +func (CompanionStruct_ECDHCurveSpec_) Create_ECC__NIST__P256_() ECDHCurveSpec { + return ECDHCurveSpec{ECDHCurveSpec_ECC__NIST__P256{}} +} + +func (_this ECDHCurveSpec) Is_ECC__NIST__P256() bool { + _, ok := _this.Get_().(ECDHCurveSpec_ECC__NIST__P256) + return ok +} + +type ECDHCurveSpec_ECC__NIST__P384 struct { +} + +func (ECDHCurveSpec_ECC__NIST__P384) isECDHCurveSpec() {} + +func (CompanionStruct_ECDHCurveSpec_) Create_ECC__NIST__P384_() ECDHCurveSpec { + return ECDHCurveSpec{ECDHCurveSpec_ECC__NIST__P384{}} +} + +func (_this ECDHCurveSpec) Is_ECC__NIST__P384() bool { + _, ok := _this.Get_().(ECDHCurveSpec_ECC__NIST__P384) + return ok +} + +type ECDHCurveSpec_ECC__NIST__P521 struct { +} + +func (ECDHCurveSpec_ECC__NIST__P521) isECDHCurveSpec() {} + +func (CompanionStruct_ECDHCurveSpec_) Create_ECC__NIST__P521_() ECDHCurveSpec { + return ECDHCurveSpec{ECDHCurveSpec_ECC__NIST__P521{}} +} + +func (_this ECDHCurveSpec) Is_ECC__NIST__P521() bool { + _, ok := _this.Get_().(ECDHCurveSpec_ECC__NIST__P521) + return ok +} + +type ECDHCurveSpec_SM2 struct { +} + +func (ECDHCurveSpec_SM2) isECDHCurveSpec() {} + +func (CompanionStruct_ECDHCurveSpec_) Create_SM2_() ECDHCurveSpec { + return ECDHCurveSpec{ECDHCurveSpec_SM2{}} +} + +func (_this ECDHCurveSpec) Is_SM2() bool { + _, ok := _this.Get_().(ECDHCurveSpec_SM2) + return ok +} + +func (CompanionStruct_ECDHCurveSpec_) Default() ECDHCurveSpec { + return Companion_ECDHCurveSpec_.Create_ECC__NIST__P256_() +} + +func (_ CompanionStruct_ECDHCurveSpec_) AllSingletonConstructors() _dafny.Iterator { + i := -1 + return func() (interface{}, bool) { + i++ + switch i { + case 0: + return Companion_ECDHCurveSpec_.Create_ECC__NIST__P256_(), true + case 1: + return Companion_ECDHCurveSpec_.Create_ECC__NIST__P384_(), true + case 2: + return Companion_ECDHCurveSpec_.Create_ECC__NIST__P521_(), true + case 3: + return Companion_ECDHCurveSpec_.Create_SM2_(), true + default: + return ECDHCurveSpec{}, false + } + } +} + +func (_this ECDHCurveSpec) String() string { + switch _this.Get_().(type) { + case nil: + return "null" + case ECDHCurveSpec_ECC__NIST__P256: + { + return "AwsCryptographyPrimitivesTypes.ECDHCurveSpec.ECC_NIST_P256" + } + case ECDHCurveSpec_ECC__NIST__P384: + { + return "AwsCryptographyPrimitivesTypes.ECDHCurveSpec.ECC_NIST_P384" + } + case ECDHCurveSpec_ECC__NIST__P521: + { + return "AwsCryptographyPrimitivesTypes.ECDHCurveSpec.ECC_NIST_P521" + } + case ECDHCurveSpec_SM2: + { + return "AwsCryptographyPrimitivesTypes.ECDHCurveSpec.SM2" + } + default: + { + return "" + } + } +} + +func (_this ECDHCurveSpec) Equals(other ECDHCurveSpec) bool { + switch _this.Get_().(type) { + case ECDHCurveSpec_ECC__NIST__P256: + { + _, ok := other.Get_().(ECDHCurveSpec_ECC__NIST__P256) + return ok + } + case ECDHCurveSpec_ECC__NIST__P384: + { + _, ok := other.Get_().(ECDHCurveSpec_ECC__NIST__P384) + return ok + } + case ECDHCurveSpec_ECC__NIST__P521: + { + _, ok := other.Get_().(ECDHCurveSpec_ECC__NIST__P521) + return ok + } + case ECDHCurveSpec_SM2: + { + _, ok := other.Get_().(ECDHCurveSpec_SM2) + return ok + } + default: + { + return false // unexpected + } + } +} + +func (_this ECDHCurveSpec) EqualsGeneric(other interface{}) bool { + typed, ok := other.(ECDHCurveSpec) + return ok && _this.Equals(typed) +} + +func Type_ECDHCurveSpec_() _dafny.TypeDescriptor { + return type_ECDHCurveSpec_{} +} + +type type_ECDHCurveSpec_ struct { +} + +func (_this type_ECDHCurveSpec_) Default() interface{} { + return Companion_ECDHCurveSpec_.Default() +} + +func (_this type_ECDHCurveSpec_) String() string { + return "AwsCryptographyPrimitivesTypes.ECDHCurveSpec" +} +func (_this ECDHCurveSpec) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = ECDHCurveSpec{} + +// End of datatype ECDHCurveSpec + +// Definition of datatype ECDSASignatureAlgorithm +type ECDSASignatureAlgorithm struct { + Data_ECDSASignatureAlgorithm_ +} + +func (_this ECDSASignatureAlgorithm) Get_() Data_ECDSASignatureAlgorithm_ { + return _this.Data_ECDSASignatureAlgorithm_ +} + +type Data_ECDSASignatureAlgorithm_ interface { + isECDSASignatureAlgorithm() +} + +type CompanionStruct_ECDSASignatureAlgorithm_ struct { +} + +var Companion_ECDSASignatureAlgorithm_ = CompanionStruct_ECDSASignatureAlgorithm_{} + +type ECDSASignatureAlgorithm_ECDSA__P384 struct { +} + +func (ECDSASignatureAlgorithm_ECDSA__P384) isECDSASignatureAlgorithm() {} + +func (CompanionStruct_ECDSASignatureAlgorithm_) Create_ECDSA__P384_() ECDSASignatureAlgorithm { + return ECDSASignatureAlgorithm{ECDSASignatureAlgorithm_ECDSA__P384{}} +} + +func (_this ECDSASignatureAlgorithm) Is_ECDSA__P384() bool { + _, ok := _this.Get_().(ECDSASignatureAlgorithm_ECDSA__P384) + return ok +} + +type ECDSASignatureAlgorithm_ECDSA__P256 struct { +} + +func (ECDSASignatureAlgorithm_ECDSA__P256) isECDSASignatureAlgorithm() {} + +func (CompanionStruct_ECDSASignatureAlgorithm_) Create_ECDSA__P256_() ECDSASignatureAlgorithm { + return ECDSASignatureAlgorithm{ECDSASignatureAlgorithm_ECDSA__P256{}} +} + +func (_this ECDSASignatureAlgorithm) Is_ECDSA__P256() bool { + _, ok := _this.Get_().(ECDSASignatureAlgorithm_ECDSA__P256) + return ok +} + +func (CompanionStruct_ECDSASignatureAlgorithm_) Default() ECDSASignatureAlgorithm { + return Companion_ECDSASignatureAlgorithm_.Create_ECDSA__P384_() +} + +func (_ CompanionStruct_ECDSASignatureAlgorithm_) AllSingletonConstructors() _dafny.Iterator { + i := -1 + return func() (interface{}, bool) { + i++ + switch i { + case 0: + return Companion_ECDSASignatureAlgorithm_.Create_ECDSA__P384_(), true + case 1: + return Companion_ECDSASignatureAlgorithm_.Create_ECDSA__P256_(), true + default: + return ECDSASignatureAlgorithm{}, false + } + } +} + +func (_this ECDSASignatureAlgorithm) String() string { + switch _this.Get_().(type) { + case nil: + return "null" + case ECDSASignatureAlgorithm_ECDSA__P384: + { + return "AwsCryptographyPrimitivesTypes.ECDSASignatureAlgorithm.ECDSA_P384" + } + case ECDSASignatureAlgorithm_ECDSA__P256: + { + return "AwsCryptographyPrimitivesTypes.ECDSASignatureAlgorithm.ECDSA_P256" + } + default: + { + return "" + } + } +} + +func (_this ECDSASignatureAlgorithm) Equals(other ECDSASignatureAlgorithm) bool { + switch _this.Get_().(type) { + case ECDSASignatureAlgorithm_ECDSA__P384: + { + _, ok := other.Get_().(ECDSASignatureAlgorithm_ECDSA__P384) + return ok + } + case ECDSASignatureAlgorithm_ECDSA__P256: + { + _, ok := other.Get_().(ECDSASignatureAlgorithm_ECDSA__P256) + return ok + } + default: + { + return false // unexpected + } + } +} + +func (_this ECDSASignatureAlgorithm) EqualsGeneric(other interface{}) bool { + typed, ok := other.(ECDSASignatureAlgorithm) + return ok && _this.Equals(typed) +} + +func Type_ECDSASignatureAlgorithm_() _dafny.TypeDescriptor { + return type_ECDSASignatureAlgorithm_{} +} + +type type_ECDSASignatureAlgorithm_ struct { +} + +func (_this type_ECDSASignatureAlgorithm_) Default() interface{} { + return Companion_ECDSASignatureAlgorithm_.Default() +} + +func (_this type_ECDSASignatureAlgorithm_) String() string { + return "AwsCryptographyPrimitivesTypes.ECDSASignatureAlgorithm" +} +func (_this ECDSASignatureAlgorithm) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = ECDSASignatureAlgorithm{} + +// End of datatype ECDSASignatureAlgorithm + +// Definition of datatype ECDSASignInput +type ECDSASignInput struct { + Data_ECDSASignInput_ +} + +func (_this ECDSASignInput) Get_() Data_ECDSASignInput_ { + return _this.Data_ECDSASignInput_ +} + +type Data_ECDSASignInput_ interface { + isECDSASignInput() +} + +type CompanionStruct_ECDSASignInput_ struct { +} + +var Companion_ECDSASignInput_ = CompanionStruct_ECDSASignInput_{} + +type ECDSASignInput_ECDSASignInput struct { + SignatureAlgorithm ECDSASignatureAlgorithm + SigningKey _dafny.Sequence + Message _dafny.Sequence +} + +func (ECDSASignInput_ECDSASignInput) isECDSASignInput() {} + +func (CompanionStruct_ECDSASignInput_) Create_ECDSASignInput_(SignatureAlgorithm ECDSASignatureAlgorithm, SigningKey _dafny.Sequence, Message _dafny.Sequence) ECDSASignInput { + return ECDSASignInput{ECDSASignInput_ECDSASignInput{SignatureAlgorithm, SigningKey, Message}} +} + +func (_this ECDSASignInput) Is_ECDSASignInput() bool { + _, ok := _this.Get_().(ECDSASignInput_ECDSASignInput) + return ok +} + +func (CompanionStruct_ECDSASignInput_) Default() ECDSASignInput { + return Companion_ECDSASignInput_.Create_ECDSASignInput_(Companion_ECDSASignatureAlgorithm_.Default(), _dafny.EmptySeq, _dafny.EmptySeq) +} + +func (_this ECDSASignInput) Dtor_signatureAlgorithm() ECDSASignatureAlgorithm { + return _this.Get_().(ECDSASignInput_ECDSASignInput).SignatureAlgorithm +} + +func (_this ECDSASignInput) Dtor_signingKey() _dafny.Sequence { + return _this.Get_().(ECDSASignInput_ECDSASignInput).SigningKey +} + +func (_this ECDSASignInput) Dtor_message() _dafny.Sequence { + return _this.Get_().(ECDSASignInput_ECDSASignInput).Message +} + +func (_this ECDSASignInput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case ECDSASignInput_ECDSASignInput: + { + return "AwsCryptographyPrimitivesTypes.ECDSASignInput.ECDSASignInput" + "(" + _dafny.String(data.SignatureAlgorithm) + ", " + _dafny.String(data.SigningKey) + ", " + _dafny.String(data.Message) + ")" + } + default: + { + return "" + } + } +} + +func (_this ECDSASignInput) Equals(other ECDSASignInput) bool { + switch data1 := _this.Get_().(type) { + case ECDSASignInput_ECDSASignInput: + { + data2, ok := other.Get_().(ECDSASignInput_ECDSASignInput) + return ok && data1.SignatureAlgorithm.Equals(data2.SignatureAlgorithm) && data1.SigningKey.Equals(data2.SigningKey) && data1.Message.Equals(data2.Message) + } + default: + { + return false // unexpected + } + } +} + +func (_this ECDSASignInput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(ECDSASignInput) + return ok && _this.Equals(typed) +} + +func Type_ECDSASignInput_() _dafny.TypeDescriptor { + return type_ECDSASignInput_{} +} + +type type_ECDSASignInput_ struct { +} + +func (_this type_ECDSASignInput_) Default() interface{} { + return Companion_ECDSASignInput_.Default() +} + +func (_this type_ECDSASignInput_) String() string { + return "AwsCryptographyPrimitivesTypes.ECDSASignInput" +} +func (_this ECDSASignInput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = ECDSASignInput{} + +// End of datatype ECDSASignInput + +// Definition of datatype ECDSAVerifyInput +type ECDSAVerifyInput struct { + Data_ECDSAVerifyInput_ +} + +func (_this ECDSAVerifyInput) Get_() Data_ECDSAVerifyInput_ { + return _this.Data_ECDSAVerifyInput_ +} + +type Data_ECDSAVerifyInput_ interface { + isECDSAVerifyInput() +} + +type CompanionStruct_ECDSAVerifyInput_ struct { +} + +var Companion_ECDSAVerifyInput_ = CompanionStruct_ECDSAVerifyInput_{} + +type ECDSAVerifyInput_ECDSAVerifyInput struct { + SignatureAlgorithm ECDSASignatureAlgorithm + VerificationKey _dafny.Sequence + Message _dafny.Sequence + Signature _dafny.Sequence +} + +func (ECDSAVerifyInput_ECDSAVerifyInput) isECDSAVerifyInput() {} + +func (CompanionStruct_ECDSAVerifyInput_) Create_ECDSAVerifyInput_(SignatureAlgorithm ECDSASignatureAlgorithm, VerificationKey _dafny.Sequence, Message _dafny.Sequence, Signature _dafny.Sequence) ECDSAVerifyInput { + return ECDSAVerifyInput{ECDSAVerifyInput_ECDSAVerifyInput{SignatureAlgorithm, VerificationKey, Message, Signature}} +} + +func (_this ECDSAVerifyInput) Is_ECDSAVerifyInput() bool { + _, ok := _this.Get_().(ECDSAVerifyInput_ECDSAVerifyInput) + return ok +} + +func (CompanionStruct_ECDSAVerifyInput_) Default() ECDSAVerifyInput { + return Companion_ECDSAVerifyInput_.Create_ECDSAVerifyInput_(Companion_ECDSASignatureAlgorithm_.Default(), _dafny.EmptySeq, _dafny.EmptySeq, _dafny.EmptySeq) +} + +func (_this ECDSAVerifyInput) Dtor_signatureAlgorithm() ECDSASignatureAlgorithm { + return _this.Get_().(ECDSAVerifyInput_ECDSAVerifyInput).SignatureAlgorithm +} + +func (_this ECDSAVerifyInput) Dtor_verificationKey() _dafny.Sequence { + return _this.Get_().(ECDSAVerifyInput_ECDSAVerifyInput).VerificationKey +} + +func (_this ECDSAVerifyInput) Dtor_message() _dafny.Sequence { + return _this.Get_().(ECDSAVerifyInput_ECDSAVerifyInput).Message +} + +func (_this ECDSAVerifyInput) Dtor_signature() _dafny.Sequence { + return _this.Get_().(ECDSAVerifyInput_ECDSAVerifyInput).Signature +} + +func (_this ECDSAVerifyInput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case ECDSAVerifyInput_ECDSAVerifyInput: + { + return "AwsCryptographyPrimitivesTypes.ECDSAVerifyInput.ECDSAVerifyInput" + "(" + _dafny.String(data.SignatureAlgorithm) + ", " + _dafny.String(data.VerificationKey) + ", " + _dafny.String(data.Message) + ", " + _dafny.String(data.Signature) + ")" + } + default: + { + return "" + } + } +} + +func (_this ECDSAVerifyInput) Equals(other ECDSAVerifyInput) bool { + switch data1 := _this.Get_().(type) { + case ECDSAVerifyInput_ECDSAVerifyInput: + { + data2, ok := other.Get_().(ECDSAVerifyInput_ECDSAVerifyInput) + return ok && data1.SignatureAlgorithm.Equals(data2.SignatureAlgorithm) && data1.VerificationKey.Equals(data2.VerificationKey) && data1.Message.Equals(data2.Message) && data1.Signature.Equals(data2.Signature) + } + default: + { + return false // unexpected + } + } +} + +func (_this ECDSAVerifyInput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(ECDSAVerifyInput) + return ok && _this.Equals(typed) +} + +func Type_ECDSAVerifyInput_() _dafny.TypeDescriptor { + return type_ECDSAVerifyInput_{} +} + +type type_ECDSAVerifyInput_ struct { +} + +func (_this type_ECDSAVerifyInput_) Default() interface{} { + return Companion_ECDSAVerifyInput_.Default() +} + +func (_this type_ECDSAVerifyInput_) String() string { + return "AwsCryptographyPrimitivesTypes.ECDSAVerifyInput" +} +func (_this ECDSAVerifyInput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = ECDSAVerifyInput{} + +// End of datatype ECDSAVerifyInput + +// Definition of datatype GenerateECCKeyPairInput +type GenerateECCKeyPairInput struct { + Data_GenerateECCKeyPairInput_ +} + +func (_this GenerateECCKeyPairInput) Get_() Data_GenerateECCKeyPairInput_ { + return _this.Data_GenerateECCKeyPairInput_ +} + +type Data_GenerateECCKeyPairInput_ interface { + isGenerateECCKeyPairInput() +} + +type CompanionStruct_GenerateECCKeyPairInput_ struct { +} + +var Companion_GenerateECCKeyPairInput_ = CompanionStruct_GenerateECCKeyPairInput_{} + +type GenerateECCKeyPairInput_GenerateECCKeyPairInput struct { + EccCurve ECDHCurveSpec +} + +func (GenerateECCKeyPairInput_GenerateECCKeyPairInput) isGenerateECCKeyPairInput() {} + +func (CompanionStruct_GenerateECCKeyPairInput_) Create_GenerateECCKeyPairInput_(EccCurve ECDHCurveSpec) GenerateECCKeyPairInput { + return GenerateECCKeyPairInput{GenerateECCKeyPairInput_GenerateECCKeyPairInput{EccCurve}} +} + +func (_this GenerateECCKeyPairInput) Is_GenerateECCKeyPairInput() bool { + _, ok := _this.Get_().(GenerateECCKeyPairInput_GenerateECCKeyPairInput) + return ok +} + +func (CompanionStruct_GenerateECCKeyPairInput_) Default() GenerateECCKeyPairInput { + return Companion_GenerateECCKeyPairInput_.Create_GenerateECCKeyPairInput_(Companion_ECDHCurveSpec_.Default()) +} + +func (_this GenerateECCKeyPairInput) Dtor_eccCurve() ECDHCurveSpec { + return _this.Get_().(GenerateECCKeyPairInput_GenerateECCKeyPairInput).EccCurve +} + +func (_this GenerateECCKeyPairInput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case GenerateECCKeyPairInput_GenerateECCKeyPairInput: + { + return "AwsCryptographyPrimitivesTypes.GenerateECCKeyPairInput.GenerateECCKeyPairInput" + "(" + _dafny.String(data.EccCurve) + ")" + } + default: + { + return "" + } + } +} + +func (_this GenerateECCKeyPairInput) Equals(other GenerateECCKeyPairInput) bool { + switch data1 := _this.Get_().(type) { + case GenerateECCKeyPairInput_GenerateECCKeyPairInput: + { + data2, ok := other.Get_().(GenerateECCKeyPairInput_GenerateECCKeyPairInput) + return ok && data1.EccCurve.Equals(data2.EccCurve) + } + default: + { + return false // unexpected + } + } +} + +func (_this GenerateECCKeyPairInput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(GenerateECCKeyPairInput) + return ok && _this.Equals(typed) +} + +func Type_GenerateECCKeyPairInput_() _dafny.TypeDescriptor { + return type_GenerateECCKeyPairInput_{} +} + +type type_GenerateECCKeyPairInput_ struct { +} + +func (_this type_GenerateECCKeyPairInput_) Default() interface{} { + return Companion_GenerateECCKeyPairInput_.Default() +} + +func (_this type_GenerateECCKeyPairInput_) String() string { + return "AwsCryptographyPrimitivesTypes.GenerateECCKeyPairInput" +} +func (_this GenerateECCKeyPairInput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = GenerateECCKeyPairInput{} + +// End of datatype GenerateECCKeyPairInput + +// Definition of datatype GenerateECCKeyPairOutput +type GenerateECCKeyPairOutput struct { + Data_GenerateECCKeyPairOutput_ +} + +func (_this GenerateECCKeyPairOutput) Get_() Data_GenerateECCKeyPairOutput_ { + return _this.Data_GenerateECCKeyPairOutput_ +} + +type Data_GenerateECCKeyPairOutput_ interface { + isGenerateECCKeyPairOutput() +} + +type CompanionStruct_GenerateECCKeyPairOutput_ struct { +} + +var Companion_GenerateECCKeyPairOutput_ = CompanionStruct_GenerateECCKeyPairOutput_{} + +type GenerateECCKeyPairOutput_GenerateECCKeyPairOutput struct { + EccCurve ECDHCurveSpec + PrivateKey ECCPrivateKey + PublicKey ECCPublicKey +} + +func (GenerateECCKeyPairOutput_GenerateECCKeyPairOutput) isGenerateECCKeyPairOutput() {} + +func (CompanionStruct_GenerateECCKeyPairOutput_) Create_GenerateECCKeyPairOutput_(EccCurve ECDHCurveSpec, PrivateKey ECCPrivateKey, PublicKey ECCPublicKey) GenerateECCKeyPairOutput { + return GenerateECCKeyPairOutput{GenerateECCKeyPairOutput_GenerateECCKeyPairOutput{EccCurve, PrivateKey, PublicKey}} +} + +func (_this GenerateECCKeyPairOutput) Is_GenerateECCKeyPairOutput() bool { + _, ok := _this.Get_().(GenerateECCKeyPairOutput_GenerateECCKeyPairOutput) + return ok +} + +func (CompanionStruct_GenerateECCKeyPairOutput_) Default() GenerateECCKeyPairOutput { + return Companion_GenerateECCKeyPairOutput_.Create_GenerateECCKeyPairOutput_(Companion_ECDHCurveSpec_.Default(), Companion_ECCPrivateKey_.Default(), Companion_ECCPublicKey_.Default()) +} + +func (_this GenerateECCKeyPairOutput) Dtor_eccCurve() ECDHCurveSpec { + return _this.Get_().(GenerateECCKeyPairOutput_GenerateECCKeyPairOutput).EccCurve +} + +func (_this GenerateECCKeyPairOutput) Dtor_privateKey() ECCPrivateKey { + return _this.Get_().(GenerateECCKeyPairOutput_GenerateECCKeyPairOutput).PrivateKey +} + +func (_this GenerateECCKeyPairOutput) Dtor_publicKey() ECCPublicKey { + return _this.Get_().(GenerateECCKeyPairOutput_GenerateECCKeyPairOutput).PublicKey +} + +func (_this GenerateECCKeyPairOutput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case GenerateECCKeyPairOutput_GenerateECCKeyPairOutput: + { + return "AwsCryptographyPrimitivesTypes.GenerateECCKeyPairOutput.GenerateECCKeyPairOutput" + "(" + _dafny.String(data.EccCurve) + ", " + _dafny.String(data.PrivateKey) + ", " + _dafny.String(data.PublicKey) + ")" + } + default: + { + return "" + } + } +} + +func (_this GenerateECCKeyPairOutput) Equals(other GenerateECCKeyPairOutput) bool { + switch data1 := _this.Get_().(type) { + case GenerateECCKeyPairOutput_GenerateECCKeyPairOutput: + { + data2, ok := other.Get_().(GenerateECCKeyPairOutput_GenerateECCKeyPairOutput) + return ok && data1.EccCurve.Equals(data2.EccCurve) && data1.PrivateKey.Equals(data2.PrivateKey) && data1.PublicKey.Equals(data2.PublicKey) + } + default: + { + return false // unexpected + } + } +} + +func (_this GenerateECCKeyPairOutput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(GenerateECCKeyPairOutput) + return ok && _this.Equals(typed) +} + +func Type_GenerateECCKeyPairOutput_() _dafny.TypeDescriptor { + return type_GenerateECCKeyPairOutput_{} +} + +type type_GenerateECCKeyPairOutput_ struct { +} + +func (_this type_GenerateECCKeyPairOutput_) Default() interface{} { + return Companion_GenerateECCKeyPairOutput_.Default() +} + +func (_this type_GenerateECCKeyPairOutput_) String() string { + return "AwsCryptographyPrimitivesTypes.GenerateECCKeyPairOutput" +} +func (_this GenerateECCKeyPairOutput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = GenerateECCKeyPairOutput{} + +// End of datatype GenerateECCKeyPairOutput + +// Definition of datatype GenerateECDSASignatureKeyInput +type GenerateECDSASignatureKeyInput struct { + Data_GenerateECDSASignatureKeyInput_ +} + +func (_this GenerateECDSASignatureKeyInput) Get_() Data_GenerateECDSASignatureKeyInput_ { + return _this.Data_GenerateECDSASignatureKeyInput_ +} + +type Data_GenerateECDSASignatureKeyInput_ interface { + isGenerateECDSASignatureKeyInput() +} + +type CompanionStruct_GenerateECDSASignatureKeyInput_ struct { +} + +var Companion_GenerateECDSASignatureKeyInput_ = CompanionStruct_GenerateECDSASignatureKeyInput_{} + +type GenerateECDSASignatureKeyInput_GenerateECDSASignatureKeyInput struct { + SignatureAlgorithm ECDSASignatureAlgorithm +} + +func (GenerateECDSASignatureKeyInput_GenerateECDSASignatureKeyInput) isGenerateECDSASignatureKeyInput() { +} + +func (CompanionStruct_GenerateECDSASignatureKeyInput_) Create_GenerateECDSASignatureKeyInput_(SignatureAlgorithm ECDSASignatureAlgorithm) GenerateECDSASignatureKeyInput { + return GenerateECDSASignatureKeyInput{GenerateECDSASignatureKeyInput_GenerateECDSASignatureKeyInput{SignatureAlgorithm}} +} + +func (_this GenerateECDSASignatureKeyInput) Is_GenerateECDSASignatureKeyInput() bool { + _, ok := _this.Get_().(GenerateECDSASignatureKeyInput_GenerateECDSASignatureKeyInput) + return ok +} + +func (CompanionStruct_GenerateECDSASignatureKeyInput_) Default() GenerateECDSASignatureKeyInput { + return Companion_GenerateECDSASignatureKeyInput_.Create_GenerateECDSASignatureKeyInput_(Companion_ECDSASignatureAlgorithm_.Default()) +} + +func (_this GenerateECDSASignatureKeyInput) Dtor_signatureAlgorithm() ECDSASignatureAlgorithm { + return _this.Get_().(GenerateECDSASignatureKeyInput_GenerateECDSASignatureKeyInput).SignatureAlgorithm +} + +func (_this GenerateECDSASignatureKeyInput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case GenerateECDSASignatureKeyInput_GenerateECDSASignatureKeyInput: + { + return "AwsCryptographyPrimitivesTypes.GenerateECDSASignatureKeyInput.GenerateECDSASignatureKeyInput" + "(" + _dafny.String(data.SignatureAlgorithm) + ")" + } + default: + { + return "" + } + } +} + +func (_this GenerateECDSASignatureKeyInput) Equals(other GenerateECDSASignatureKeyInput) bool { + switch data1 := _this.Get_().(type) { + case GenerateECDSASignatureKeyInput_GenerateECDSASignatureKeyInput: + { + data2, ok := other.Get_().(GenerateECDSASignatureKeyInput_GenerateECDSASignatureKeyInput) + return ok && data1.SignatureAlgorithm.Equals(data2.SignatureAlgorithm) + } + default: + { + return false // unexpected + } + } +} + +func (_this GenerateECDSASignatureKeyInput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(GenerateECDSASignatureKeyInput) + return ok && _this.Equals(typed) +} + +func Type_GenerateECDSASignatureKeyInput_() _dafny.TypeDescriptor { + return type_GenerateECDSASignatureKeyInput_{} +} + +type type_GenerateECDSASignatureKeyInput_ struct { +} + +func (_this type_GenerateECDSASignatureKeyInput_) Default() interface{} { + return Companion_GenerateECDSASignatureKeyInput_.Default() +} + +func (_this type_GenerateECDSASignatureKeyInput_) String() string { + return "AwsCryptographyPrimitivesTypes.GenerateECDSASignatureKeyInput" +} +func (_this GenerateECDSASignatureKeyInput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = GenerateECDSASignatureKeyInput{} + +// End of datatype GenerateECDSASignatureKeyInput + +// Definition of datatype GenerateECDSASignatureKeyOutput +type GenerateECDSASignatureKeyOutput struct { + Data_GenerateECDSASignatureKeyOutput_ +} + +func (_this GenerateECDSASignatureKeyOutput) Get_() Data_GenerateECDSASignatureKeyOutput_ { + return _this.Data_GenerateECDSASignatureKeyOutput_ +} + +type Data_GenerateECDSASignatureKeyOutput_ interface { + isGenerateECDSASignatureKeyOutput() +} + +type CompanionStruct_GenerateECDSASignatureKeyOutput_ struct { +} + +var Companion_GenerateECDSASignatureKeyOutput_ = CompanionStruct_GenerateECDSASignatureKeyOutput_{} + +type GenerateECDSASignatureKeyOutput_GenerateECDSASignatureKeyOutput struct { + SignatureAlgorithm ECDSASignatureAlgorithm + VerificationKey _dafny.Sequence + SigningKey _dafny.Sequence +} + +func (GenerateECDSASignatureKeyOutput_GenerateECDSASignatureKeyOutput) isGenerateECDSASignatureKeyOutput() { +} + +func (CompanionStruct_GenerateECDSASignatureKeyOutput_) Create_GenerateECDSASignatureKeyOutput_(SignatureAlgorithm ECDSASignatureAlgorithm, VerificationKey _dafny.Sequence, SigningKey _dafny.Sequence) GenerateECDSASignatureKeyOutput { + return GenerateECDSASignatureKeyOutput{GenerateECDSASignatureKeyOutput_GenerateECDSASignatureKeyOutput{SignatureAlgorithm, VerificationKey, SigningKey}} +} + +func (_this GenerateECDSASignatureKeyOutput) Is_GenerateECDSASignatureKeyOutput() bool { + _, ok := _this.Get_().(GenerateECDSASignatureKeyOutput_GenerateECDSASignatureKeyOutput) + return ok +} + +func (CompanionStruct_GenerateECDSASignatureKeyOutput_) Default() GenerateECDSASignatureKeyOutput { + return Companion_GenerateECDSASignatureKeyOutput_.Create_GenerateECDSASignatureKeyOutput_(Companion_ECDSASignatureAlgorithm_.Default(), _dafny.EmptySeq, _dafny.EmptySeq) +} + +func (_this GenerateECDSASignatureKeyOutput) Dtor_signatureAlgorithm() ECDSASignatureAlgorithm { + return _this.Get_().(GenerateECDSASignatureKeyOutput_GenerateECDSASignatureKeyOutput).SignatureAlgorithm +} + +func (_this GenerateECDSASignatureKeyOutput) Dtor_verificationKey() _dafny.Sequence { + return _this.Get_().(GenerateECDSASignatureKeyOutput_GenerateECDSASignatureKeyOutput).VerificationKey +} + +func (_this GenerateECDSASignatureKeyOutput) Dtor_signingKey() _dafny.Sequence { + return _this.Get_().(GenerateECDSASignatureKeyOutput_GenerateECDSASignatureKeyOutput).SigningKey +} + +func (_this GenerateECDSASignatureKeyOutput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case GenerateECDSASignatureKeyOutput_GenerateECDSASignatureKeyOutput: + { + return "AwsCryptographyPrimitivesTypes.GenerateECDSASignatureKeyOutput.GenerateECDSASignatureKeyOutput" + "(" + _dafny.String(data.SignatureAlgorithm) + ", " + _dafny.String(data.VerificationKey) + ", " + _dafny.String(data.SigningKey) + ")" + } + default: + { + return "" + } + } +} + +func (_this GenerateECDSASignatureKeyOutput) Equals(other GenerateECDSASignatureKeyOutput) bool { + switch data1 := _this.Get_().(type) { + case GenerateECDSASignatureKeyOutput_GenerateECDSASignatureKeyOutput: + { + data2, ok := other.Get_().(GenerateECDSASignatureKeyOutput_GenerateECDSASignatureKeyOutput) + return ok && data1.SignatureAlgorithm.Equals(data2.SignatureAlgorithm) && data1.VerificationKey.Equals(data2.VerificationKey) && data1.SigningKey.Equals(data2.SigningKey) + } + default: + { + return false // unexpected + } + } +} + +func (_this GenerateECDSASignatureKeyOutput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(GenerateECDSASignatureKeyOutput) + return ok && _this.Equals(typed) +} + +func Type_GenerateECDSASignatureKeyOutput_() _dafny.TypeDescriptor { + return type_GenerateECDSASignatureKeyOutput_{} +} + +type type_GenerateECDSASignatureKeyOutput_ struct { +} + +func (_this type_GenerateECDSASignatureKeyOutput_) Default() interface{} { + return Companion_GenerateECDSASignatureKeyOutput_.Default() +} + +func (_this type_GenerateECDSASignatureKeyOutput_) String() string { + return "AwsCryptographyPrimitivesTypes.GenerateECDSASignatureKeyOutput" +} +func (_this GenerateECDSASignatureKeyOutput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = GenerateECDSASignatureKeyOutput{} + +// End of datatype GenerateECDSASignatureKeyOutput + +// Definition of datatype GenerateRandomBytesInput +type GenerateRandomBytesInput struct { + Data_GenerateRandomBytesInput_ +} + +func (_this GenerateRandomBytesInput) Get_() Data_GenerateRandomBytesInput_ { + return _this.Data_GenerateRandomBytesInput_ +} + +type Data_GenerateRandomBytesInput_ interface { + isGenerateRandomBytesInput() +} + +type CompanionStruct_GenerateRandomBytesInput_ struct { +} + +var Companion_GenerateRandomBytesInput_ = CompanionStruct_GenerateRandomBytesInput_{} + +type GenerateRandomBytesInput_GenerateRandomBytesInput struct { + Length int32 +} + +func (GenerateRandomBytesInput_GenerateRandomBytesInput) isGenerateRandomBytesInput() {} + +func (CompanionStruct_GenerateRandomBytesInput_) Create_GenerateRandomBytesInput_(Length int32) GenerateRandomBytesInput { + return GenerateRandomBytesInput{GenerateRandomBytesInput_GenerateRandomBytesInput{Length}} +} + +func (_this GenerateRandomBytesInput) Is_GenerateRandomBytesInput() bool { + _, ok := _this.Get_().(GenerateRandomBytesInput_GenerateRandomBytesInput) + return ok +} + +func (CompanionStruct_GenerateRandomBytesInput_) Default() GenerateRandomBytesInput { + return Companion_GenerateRandomBytesInput_.Create_GenerateRandomBytesInput_(int32(0)) +} + +func (_this GenerateRandomBytesInput) Dtor_length() int32 { + return _this.Get_().(GenerateRandomBytesInput_GenerateRandomBytesInput).Length +} + +func (_this GenerateRandomBytesInput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case GenerateRandomBytesInput_GenerateRandomBytesInput: + { + return "AwsCryptographyPrimitivesTypes.GenerateRandomBytesInput.GenerateRandomBytesInput" + "(" + _dafny.String(data.Length) + ")" + } + default: + { + return "" + } + } +} + +func (_this GenerateRandomBytesInput) Equals(other GenerateRandomBytesInput) bool { + switch data1 := _this.Get_().(type) { + case GenerateRandomBytesInput_GenerateRandomBytesInput: + { + data2, ok := other.Get_().(GenerateRandomBytesInput_GenerateRandomBytesInput) + return ok && data1.Length == data2.Length + } + default: + { + return false // unexpected + } + } +} + +func (_this GenerateRandomBytesInput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(GenerateRandomBytesInput) + return ok && _this.Equals(typed) +} + +func Type_GenerateRandomBytesInput_() _dafny.TypeDescriptor { + return type_GenerateRandomBytesInput_{} +} + +type type_GenerateRandomBytesInput_ struct { +} + +func (_this type_GenerateRandomBytesInput_) Default() interface{} { + return Companion_GenerateRandomBytesInput_.Default() +} + +func (_this type_GenerateRandomBytesInput_) String() string { + return "AwsCryptographyPrimitivesTypes.GenerateRandomBytesInput" +} +func (_this GenerateRandomBytesInput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = GenerateRandomBytesInput{} + +// End of datatype GenerateRandomBytesInput + +// Definition of datatype GenerateRSAKeyPairInput +type GenerateRSAKeyPairInput struct { + Data_GenerateRSAKeyPairInput_ +} + +func (_this GenerateRSAKeyPairInput) Get_() Data_GenerateRSAKeyPairInput_ { + return _this.Data_GenerateRSAKeyPairInput_ +} + +type Data_GenerateRSAKeyPairInput_ interface { + isGenerateRSAKeyPairInput() +} + +type CompanionStruct_GenerateRSAKeyPairInput_ struct { +} + +var Companion_GenerateRSAKeyPairInput_ = CompanionStruct_GenerateRSAKeyPairInput_{} + +type GenerateRSAKeyPairInput_GenerateRSAKeyPairInput struct { + LengthBits int32 +} + +func (GenerateRSAKeyPairInput_GenerateRSAKeyPairInput) isGenerateRSAKeyPairInput() {} + +func (CompanionStruct_GenerateRSAKeyPairInput_) Create_GenerateRSAKeyPairInput_(LengthBits int32) GenerateRSAKeyPairInput { + return GenerateRSAKeyPairInput{GenerateRSAKeyPairInput_GenerateRSAKeyPairInput{LengthBits}} +} + +func (_this GenerateRSAKeyPairInput) Is_GenerateRSAKeyPairInput() bool { + _, ok := _this.Get_().(GenerateRSAKeyPairInput_GenerateRSAKeyPairInput) + return ok +} + +func (CompanionStruct_GenerateRSAKeyPairInput_) Default() GenerateRSAKeyPairInput { + return Companion_GenerateRSAKeyPairInput_.Create_GenerateRSAKeyPairInput_(int32(0)) +} + +func (_this GenerateRSAKeyPairInput) Dtor_lengthBits() int32 { + return _this.Get_().(GenerateRSAKeyPairInput_GenerateRSAKeyPairInput).LengthBits +} + +func (_this GenerateRSAKeyPairInput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case GenerateRSAKeyPairInput_GenerateRSAKeyPairInput: + { + return "AwsCryptographyPrimitivesTypes.GenerateRSAKeyPairInput.GenerateRSAKeyPairInput" + "(" + _dafny.String(data.LengthBits) + ")" + } + default: + { + return "" + } + } +} + +func (_this GenerateRSAKeyPairInput) Equals(other GenerateRSAKeyPairInput) bool { + switch data1 := _this.Get_().(type) { + case GenerateRSAKeyPairInput_GenerateRSAKeyPairInput: + { + data2, ok := other.Get_().(GenerateRSAKeyPairInput_GenerateRSAKeyPairInput) + return ok && data1.LengthBits == data2.LengthBits + } + default: + { + return false // unexpected + } + } +} + +func (_this GenerateRSAKeyPairInput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(GenerateRSAKeyPairInput) + return ok && _this.Equals(typed) +} + +func Type_GenerateRSAKeyPairInput_() _dafny.TypeDescriptor { + return type_GenerateRSAKeyPairInput_{} +} + +type type_GenerateRSAKeyPairInput_ struct { +} + +func (_this type_GenerateRSAKeyPairInput_) Default() interface{} { + return Companion_GenerateRSAKeyPairInput_.Default() +} + +func (_this type_GenerateRSAKeyPairInput_) String() string { + return "AwsCryptographyPrimitivesTypes.GenerateRSAKeyPairInput" +} +func (_this GenerateRSAKeyPairInput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = GenerateRSAKeyPairInput{} + +// End of datatype GenerateRSAKeyPairInput + +// Definition of datatype GenerateRSAKeyPairOutput +type GenerateRSAKeyPairOutput struct { + Data_GenerateRSAKeyPairOutput_ +} + +func (_this GenerateRSAKeyPairOutput) Get_() Data_GenerateRSAKeyPairOutput_ { + return _this.Data_GenerateRSAKeyPairOutput_ +} + +type Data_GenerateRSAKeyPairOutput_ interface { + isGenerateRSAKeyPairOutput() +} + +type CompanionStruct_GenerateRSAKeyPairOutput_ struct { +} + +var Companion_GenerateRSAKeyPairOutput_ = CompanionStruct_GenerateRSAKeyPairOutput_{} + +type GenerateRSAKeyPairOutput_GenerateRSAKeyPairOutput struct { + PublicKey RSAPublicKey + PrivateKey RSAPrivateKey +} + +func (GenerateRSAKeyPairOutput_GenerateRSAKeyPairOutput) isGenerateRSAKeyPairOutput() {} + +func (CompanionStruct_GenerateRSAKeyPairOutput_) Create_GenerateRSAKeyPairOutput_(PublicKey RSAPublicKey, PrivateKey RSAPrivateKey) GenerateRSAKeyPairOutput { + return GenerateRSAKeyPairOutput{GenerateRSAKeyPairOutput_GenerateRSAKeyPairOutput{PublicKey, PrivateKey}} +} + +func (_this GenerateRSAKeyPairOutput) Is_GenerateRSAKeyPairOutput() bool { + _, ok := _this.Get_().(GenerateRSAKeyPairOutput_GenerateRSAKeyPairOutput) + return ok +} + +func (CompanionStruct_GenerateRSAKeyPairOutput_) Default() GenerateRSAKeyPairOutput { + return Companion_GenerateRSAKeyPairOutput_.Create_GenerateRSAKeyPairOutput_(Companion_RSAPublicKey_.Default(), Companion_RSAPrivateKey_.Default()) +} + +func (_this GenerateRSAKeyPairOutput) Dtor_publicKey() RSAPublicKey { + return _this.Get_().(GenerateRSAKeyPairOutput_GenerateRSAKeyPairOutput).PublicKey +} + +func (_this GenerateRSAKeyPairOutput) Dtor_privateKey() RSAPrivateKey { + return _this.Get_().(GenerateRSAKeyPairOutput_GenerateRSAKeyPairOutput).PrivateKey +} + +func (_this GenerateRSAKeyPairOutput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case GenerateRSAKeyPairOutput_GenerateRSAKeyPairOutput: + { + return "AwsCryptographyPrimitivesTypes.GenerateRSAKeyPairOutput.GenerateRSAKeyPairOutput" + "(" + _dafny.String(data.PublicKey) + ", " + _dafny.String(data.PrivateKey) + ")" + } + default: + { + return "" + } + } +} + +func (_this GenerateRSAKeyPairOutput) Equals(other GenerateRSAKeyPairOutput) bool { + switch data1 := _this.Get_().(type) { + case GenerateRSAKeyPairOutput_GenerateRSAKeyPairOutput: + { + data2, ok := other.Get_().(GenerateRSAKeyPairOutput_GenerateRSAKeyPairOutput) + return ok && data1.PublicKey.Equals(data2.PublicKey) && data1.PrivateKey.Equals(data2.PrivateKey) + } + default: + { + return false // unexpected + } + } +} + +func (_this GenerateRSAKeyPairOutput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(GenerateRSAKeyPairOutput) + return ok && _this.Equals(typed) +} + +func Type_GenerateRSAKeyPairOutput_() _dafny.TypeDescriptor { + return type_GenerateRSAKeyPairOutput_{} +} + +type type_GenerateRSAKeyPairOutput_ struct { +} + +func (_this type_GenerateRSAKeyPairOutput_) Default() interface{} { + return Companion_GenerateRSAKeyPairOutput_.Default() +} + +func (_this type_GenerateRSAKeyPairOutput_) String() string { + return "AwsCryptographyPrimitivesTypes.GenerateRSAKeyPairOutput" +} +func (_this GenerateRSAKeyPairOutput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = GenerateRSAKeyPairOutput{} + +// End of datatype GenerateRSAKeyPairOutput + +// Definition of datatype GetPublicKeyFromPrivateKeyInput +type GetPublicKeyFromPrivateKeyInput struct { + Data_GetPublicKeyFromPrivateKeyInput_ +} + +func (_this GetPublicKeyFromPrivateKeyInput) Get_() Data_GetPublicKeyFromPrivateKeyInput_ { + return _this.Data_GetPublicKeyFromPrivateKeyInput_ +} + +type Data_GetPublicKeyFromPrivateKeyInput_ interface { + isGetPublicKeyFromPrivateKeyInput() +} + +type CompanionStruct_GetPublicKeyFromPrivateKeyInput_ struct { +} + +var Companion_GetPublicKeyFromPrivateKeyInput_ = CompanionStruct_GetPublicKeyFromPrivateKeyInput_{} + +type GetPublicKeyFromPrivateKeyInput_GetPublicKeyFromPrivateKeyInput struct { + EccCurve ECDHCurveSpec + PrivateKey ECCPrivateKey +} + +func (GetPublicKeyFromPrivateKeyInput_GetPublicKeyFromPrivateKeyInput) isGetPublicKeyFromPrivateKeyInput() { +} + +func (CompanionStruct_GetPublicKeyFromPrivateKeyInput_) Create_GetPublicKeyFromPrivateKeyInput_(EccCurve ECDHCurveSpec, PrivateKey ECCPrivateKey) GetPublicKeyFromPrivateKeyInput { + return GetPublicKeyFromPrivateKeyInput{GetPublicKeyFromPrivateKeyInput_GetPublicKeyFromPrivateKeyInput{EccCurve, PrivateKey}} +} + +func (_this GetPublicKeyFromPrivateKeyInput) Is_GetPublicKeyFromPrivateKeyInput() bool { + _, ok := _this.Get_().(GetPublicKeyFromPrivateKeyInput_GetPublicKeyFromPrivateKeyInput) + return ok +} + +func (CompanionStruct_GetPublicKeyFromPrivateKeyInput_) Default() GetPublicKeyFromPrivateKeyInput { + return Companion_GetPublicKeyFromPrivateKeyInput_.Create_GetPublicKeyFromPrivateKeyInput_(Companion_ECDHCurveSpec_.Default(), Companion_ECCPrivateKey_.Default()) +} + +func (_this GetPublicKeyFromPrivateKeyInput) Dtor_eccCurve() ECDHCurveSpec { + return _this.Get_().(GetPublicKeyFromPrivateKeyInput_GetPublicKeyFromPrivateKeyInput).EccCurve +} + +func (_this GetPublicKeyFromPrivateKeyInput) Dtor_privateKey() ECCPrivateKey { + return _this.Get_().(GetPublicKeyFromPrivateKeyInput_GetPublicKeyFromPrivateKeyInput).PrivateKey +} + +func (_this GetPublicKeyFromPrivateKeyInput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case GetPublicKeyFromPrivateKeyInput_GetPublicKeyFromPrivateKeyInput: + { + return "AwsCryptographyPrimitivesTypes.GetPublicKeyFromPrivateKeyInput.GetPublicKeyFromPrivateKeyInput" + "(" + _dafny.String(data.EccCurve) + ", " + _dafny.String(data.PrivateKey) + ")" + } + default: + { + return "" + } + } +} + +func (_this GetPublicKeyFromPrivateKeyInput) Equals(other GetPublicKeyFromPrivateKeyInput) bool { + switch data1 := _this.Get_().(type) { + case GetPublicKeyFromPrivateKeyInput_GetPublicKeyFromPrivateKeyInput: + { + data2, ok := other.Get_().(GetPublicKeyFromPrivateKeyInput_GetPublicKeyFromPrivateKeyInput) + return ok && data1.EccCurve.Equals(data2.EccCurve) && data1.PrivateKey.Equals(data2.PrivateKey) + } + default: + { + return false // unexpected + } + } +} + +func (_this GetPublicKeyFromPrivateKeyInput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(GetPublicKeyFromPrivateKeyInput) + return ok && _this.Equals(typed) +} + +func Type_GetPublicKeyFromPrivateKeyInput_() _dafny.TypeDescriptor { + return type_GetPublicKeyFromPrivateKeyInput_{} +} + +type type_GetPublicKeyFromPrivateKeyInput_ struct { +} + +func (_this type_GetPublicKeyFromPrivateKeyInput_) Default() interface{} { + return Companion_GetPublicKeyFromPrivateKeyInput_.Default() +} + +func (_this type_GetPublicKeyFromPrivateKeyInput_) String() string { + return "AwsCryptographyPrimitivesTypes.GetPublicKeyFromPrivateKeyInput" +} +func (_this GetPublicKeyFromPrivateKeyInput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = GetPublicKeyFromPrivateKeyInput{} + +// End of datatype GetPublicKeyFromPrivateKeyInput + +// Definition of datatype GetPublicKeyFromPrivateKeyOutput +type GetPublicKeyFromPrivateKeyOutput struct { + Data_GetPublicKeyFromPrivateKeyOutput_ +} + +func (_this GetPublicKeyFromPrivateKeyOutput) Get_() Data_GetPublicKeyFromPrivateKeyOutput_ { + return _this.Data_GetPublicKeyFromPrivateKeyOutput_ +} + +type Data_GetPublicKeyFromPrivateKeyOutput_ interface { + isGetPublicKeyFromPrivateKeyOutput() +} + +type CompanionStruct_GetPublicKeyFromPrivateKeyOutput_ struct { +} + +var Companion_GetPublicKeyFromPrivateKeyOutput_ = CompanionStruct_GetPublicKeyFromPrivateKeyOutput_{} + +type GetPublicKeyFromPrivateKeyOutput_GetPublicKeyFromPrivateKeyOutput struct { + EccCurve ECDHCurveSpec + PrivateKey ECCPrivateKey + PublicKey _dafny.Sequence +} + +func (GetPublicKeyFromPrivateKeyOutput_GetPublicKeyFromPrivateKeyOutput) isGetPublicKeyFromPrivateKeyOutput() { +} + +func (CompanionStruct_GetPublicKeyFromPrivateKeyOutput_) Create_GetPublicKeyFromPrivateKeyOutput_(EccCurve ECDHCurveSpec, PrivateKey ECCPrivateKey, PublicKey _dafny.Sequence) GetPublicKeyFromPrivateKeyOutput { + return GetPublicKeyFromPrivateKeyOutput{GetPublicKeyFromPrivateKeyOutput_GetPublicKeyFromPrivateKeyOutput{EccCurve, PrivateKey, PublicKey}} +} + +func (_this GetPublicKeyFromPrivateKeyOutput) Is_GetPublicKeyFromPrivateKeyOutput() bool { + _, ok := _this.Get_().(GetPublicKeyFromPrivateKeyOutput_GetPublicKeyFromPrivateKeyOutput) + return ok +} + +func (CompanionStruct_GetPublicKeyFromPrivateKeyOutput_) Default() GetPublicKeyFromPrivateKeyOutput { + return Companion_GetPublicKeyFromPrivateKeyOutput_.Create_GetPublicKeyFromPrivateKeyOutput_(Companion_ECDHCurveSpec_.Default(), Companion_ECCPrivateKey_.Default(), _dafny.EmptySeq) +} + +func (_this GetPublicKeyFromPrivateKeyOutput) Dtor_eccCurve() ECDHCurveSpec { + return _this.Get_().(GetPublicKeyFromPrivateKeyOutput_GetPublicKeyFromPrivateKeyOutput).EccCurve +} + +func (_this GetPublicKeyFromPrivateKeyOutput) Dtor_privateKey() ECCPrivateKey { + return _this.Get_().(GetPublicKeyFromPrivateKeyOutput_GetPublicKeyFromPrivateKeyOutput).PrivateKey +} + +func (_this GetPublicKeyFromPrivateKeyOutput) Dtor_publicKey() _dafny.Sequence { + return _this.Get_().(GetPublicKeyFromPrivateKeyOutput_GetPublicKeyFromPrivateKeyOutput).PublicKey +} + +func (_this GetPublicKeyFromPrivateKeyOutput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case GetPublicKeyFromPrivateKeyOutput_GetPublicKeyFromPrivateKeyOutput: + { + return "AwsCryptographyPrimitivesTypes.GetPublicKeyFromPrivateKeyOutput.GetPublicKeyFromPrivateKeyOutput" + "(" + _dafny.String(data.EccCurve) + ", " + _dafny.String(data.PrivateKey) + ", " + _dafny.String(data.PublicKey) + ")" + } + default: + { + return "" + } + } +} + +func (_this GetPublicKeyFromPrivateKeyOutput) Equals(other GetPublicKeyFromPrivateKeyOutput) bool { + switch data1 := _this.Get_().(type) { + case GetPublicKeyFromPrivateKeyOutput_GetPublicKeyFromPrivateKeyOutput: + { + data2, ok := other.Get_().(GetPublicKeyFromPrivateKeyOutput_GetPublicKeyFromPrivateKeyOutput) + return ok && data1.EccCurve.Equals(data2.EccCurve) && data1.PrivateKey.Equals(data2.PrivateKey) && data1.PublicKey.Equals(data2.PublicKey) + } + default: + { + return false // unexpected + } + } +} + +func (_this GetPublicKeyFromPrivateKeyOutput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(GetPublicKeyFromPrivateKeyOutput) + return ok && _this.Equals(typed) +} + +func Type_GetPublicKeyFromPrivateKeyOutput_() _dafny.TypeDescriptor { + return type_GetPublicKeyFromPrivateKeyOutput_{} +} + +type type_GetPublicKeyFromPrivateKeyOutput_ struct { +} + +func (_this type_GetPublicKeyFromPrivateKeyOutput_) Default() interface{} { + return Companion_GetPublicKeyFromPrivateKeyOutput_.Default() +} + +func (_this type_GetPublicKeyFromPrivateKeyOutput_) String() string { + return "AwsCryptographyPrimitivesTypes.GetPublicKeyFromPrivateKeyOutput" +} +func (_this GetPublicKeyFromPrivateKeyOutput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = GetPublicKeyFromPrivateKeyOutput{} + +// End of datatype GetPublicKeyFromPrivateKeyOutput + +// Definition of datatype GetRSAKeyModulusLengthInput +type GetRSAKeyModulusLengthInput struct { + Data_GetRSAKeyModulusLengthInput_ +} + +func (_this GetRSAKeyModulusLengthInput) Get_() Data_GetRSAKeyModulusLengthInput_ { + return _this.Data_GetRSAKeyModulusLengthInput_ +} + +type Data_GetRSAKeyModulusLengthInput_ interface { + isGetRSAKeyModulusLengthInput() +} + +type CompanionStruct_GetRSAKeyModulusLengthInput_ struct { +} + +var Companion_GetRSAKeyModulusLengthInput_ = CompanionStruct_GetRSAKeyModulusLengthInput_{} + +type GetRSAKeyModulusLengthInput_GetRSAKeyModulusLengthInput struct { + PublicKey _dafny.Sequence +} + +func (GetRSAKeyModulusLengthInput_GetRSAKeyModulusLengthInput) isGetRSAKeyModulusLengthInput() {} + +func (CompanionStruct_GetRSAKeyModulusLengthInput_) Create_GetRSAKeyModulusLengthInput_(PublicKey _dafny.Sequence) GetRSAKeyModulusLengthInput { + return GetRSAKeyModulusLengthInput{GetRSAKeyModulusLengthInput_GetRSAKeyModulusLengthInput{PublicKey}} +} + +func (_this GetRSAKeyModulusLengthInput) Is_GetRSAKeyModulusLengthInput() bool { + _, ok := _this.Get_().(GetRSAKeyModulusLengthInput_GetRSAKeyModulusLengthInput) + return ok +} + +func (CompanionStruct_GetRSAKeyModulusLengthInput_) Default() GetRSAKeyModulusLengthInput { + return Companion_GetRSAKeyModulusLengthInput_.Create_GetRSAKeyModulusLengthInput_(_dafny.EmptySeq) +} + +func (_this GetRSAKeyModulusLengthInput) Dtor_publicKey() _dafny.Sequence { + return _this.Get_().(GetRSAKeyModulusLengthInput_GetRSAKeyModulusLengthInput).PublicKey +} + +func (_this GetRSAKeyModulusLengthInput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case GetRSAKeyModulusLengthInput_GetRSAKeyModulusLengthInput: + { + return "AwsCryptographyPrimitivesTypes.GetRSAKeyModulusLengthInput.GetRSAKeyModulusLengthInput" + "(" + _dafny.String(data.PublicKey) + ")" + } + default: + { + return "" + } + } +} + +func (_this GetRSAKeyModulusLengthInput) Equals(other GetRSAKeyModulusLengthInput) bool { + switch data1 := _this.Get_().(type) { + case GetRSAKeyModulusLengthInput_GetRSAKeyModulusLengthInput: + { + data2, ok := other.Get_().(GetRSAKeyModulusLengthInput_GetRSAKeyModulusLengthInput) + return ok && data1.PublicKey.Equals(data2.PublicKey) + } + default: + { + return false // unexpected + } + } +} + +func (_this GetRSAKeyModulusLengthInput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(GetRSAKeyModulusLengthInput) + return ok && _this.Equals(typed) +} + +func Type_GetRSAKeyModulusLengthInput_() _dafny.TypeDescriptor { + return type_GetRSAKeyModulusLengthInput_{} +} + +type type_GetRSAKeyModulusLengthInput_ struct { +} + +func (_this type_GetRSAKeyModulusLengthInput_) Default() interface{} { + return Companion_GetRSAKeyModulusLengthInput_.Default() +} + +func (_this type_GetRSAKeyModulusLengthInput_) String() string { + return "AwsCryptographyPrimitivesTypes.GetRSAKeyModulusLengthInput" +} +func (_this GetRSAKeyModulusLengthInput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = GetRSAKeyModulusLengthInput{} + +// End of datatype GetRSAKeyModulusLengthInput + +// Definition of datatype GetRSAKeyModulusLengthOutput +type GetRSAKeyModulusLengthOutput struct { + Data_GetRSAKeyModulusLengthOutput_ +} + +func (_this GetRSAKeyModulusLengthOutput) Get_() Data_GetRSAKeyModulusLengthOutput_ { + return _this.Data_GetRSAKeyModulusLengthOutput_ +} + +type Data_GetRSAKeyModulusLengthOutput_ interface { + isGetRSAKeyModulusLengthOutput() +} + +type CompanionStruct_GetRSAKeyModulusLengthOutput_ struct { +} + +var Companion_GetRSAKeyModulusLengthOutput_ = CompanionStruct_GetRSAKeyModulusLengthOutput_{} + +type GetRSAKeyModulusLengthOutput_GetRSAKeyModulusLengthOutput struct { + Length int32 +} + +func (GetRSAKeyModulusLengthOutput_GetRSAKeyModulusLengthOutput) isGetRSAKeyModulusLengthOutput() {} + +func (CompanionStruct_GetRSAKeyModulusLengthOutput_) Create_GetRSAKeyModulusLengthOutput_(Length int32) GetRSAKeyModulusLengthOutput { + return GetRSAKeyModulusLengthOutput{GetRSAKeyModulusLengthOutput_GetRSAKeyModulusLengthOutput{Length}} +} + +func (_this GetRSAKeyModulusLengthOutput) Is_GetRSAKeyModulusLengthOutput() bool { + _, ok := _this.Get_().(GetRSAKeyModulusLengthOutput_GetRSAKeyModulusLengthOutput) + return ok +} + +func (CompanionStruct_GetRSAKeyModulusLengthOutput_) Default() GetRSAKeyModulusLengthOutput { + return Companion_GetRSAKeyModulusLengthOutput_.Create_GetRSAKeyModulusLengthOutput_(int32(0)) +} + +func (_this GetRSAKeyModulusLengthOutput) Dtor_length() int32 { + return _this.Get_().(GetRSAKeyModulusLengthOutput_GetRSAKeyModulusLengthOutput).Length +} + +func (_this GetRSAKeyModulusLengthOutput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case GetRSAKeyModulusLengthOutput_GetRSAKeyModulusLengthOutput: + { + return "AwsCryptographyPrimitivesTypes.GetRSAKeyModulusLengthOutput.GetRSAKeyModulusLengthOutput" + "(" + _dafny.String(data.Length) + ")" + } + default: + { + return "" + } + } +} + +func (_this GetRSAKeyModulusLengthOutput) Equals(other GetRSAKeyModulusLengthOutput) bool { + switch data1 := _this.Get_().(type) { + case GetRSAKeyModulusLengthOutput_GetRSAKeyModulusLengthOutput: + { + data2, ok := other.Get_().(GetRSAKeyModulusLengthOutput_GetRSAKeyModulusLengthOutput) + return ok && data1.Length == data2.Length + } + default: + { + return false // unexpected + } + } +} + +func (_this GetRSAKeyModulusLengthOutput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(GetRSAKeyModulusLengthOutput) + return ok && _this.Equals(typed) +} + +func Type_GetRSAKeyModulusLengthOutput_() _dafny.TypeDescriptor { + return type_GetRSAKeyModulusLengthOutput_{} +} + +type type_GetRSAKeyModulusLengthOutput_ struct { +} + +func (_this type_GetRSAKeyModulusLengthOutput_) Default() interface{} { + return Companion_GetRSAKeyModulusLengthOutput_.Default() +} + +func (_this type_GetRSAKeyModulusLengthOutput_) String() string { + return "AwsCryptographyPrimitivesTypes.GetRSAKeyModulusLengthOutput" +} +func (_this GetRSAKeyModulusLengthOutput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = GetRSAKeyModulusLengthOutput{} + +// End of datatype GetRSAKeyModulusLengthOutput + +// Definition of datatype HkdfExpandInput +type HkdfExpandInput struct { + Data_HkdfExpandInput_ +} + +func (_this HkdfExpandInput) Get_() Data_HkdfExpandInput_ { + return _this.Data_HkdfExpandInput_ +} + +type Data_HkdfExpandInput_ interface { + isHkdfExpandInput() +} + +type CompanionStruct_HkdfExpandInput_ struct { +} + +var Companion_HkdfExpandInput_ = CompanionStruct_HkdfExpandInput_{} + +type HkdfExpandInput_HkdfExpandInput struct { + DigestAlgorithm DigestAlgorithm + Prk _dafny.Sequence + Info _dafny.Sequence + ExpectedLength int32 +} + +func (HkdfExpandInput_HkdfExpandInput) isHkdfExpandInput() {} + +func (CompanionStruct_HkdfExpandInput_) Create_HkdfExpandInput_(DigestAlgorithm DigestAlgorithm, Prk _dafny.Sequence, Info _dafny.Sequence, ExpectedLength int32) HkdfExpandInput { + return HkdfExpandInput{HkdfExpandInput_HkdfExpandInput{DigestAlgorithm, Prk, Info, ExpectedLength}} +} + +func (_this HkdfExpandInput) Is_HkdfExpandInput() bool { + _, ok := _this.Get_().(HkdfExpandInput_HkdfExpandInput) + return ok +} + +func (CompanionStruct_HkdfExpandInput_) Default() HkdfExpandInput { + return Companion_HkdfExpandInput_.Create_HkdfExpandInput_(Companion_DigestAlgorithm_.Default(), _dafny.EmptySeq, _dafny.EmptySeq, int32(0)) +} + +func (_this HkdfExpandInput) Dtor_digestAlgorithm() DigestAlgorithm { + return _this.Get_().(HkdfExpandInput_HkdfExpandInput).DigestAlgorithm +} + +func (_this HkdfExpandInput) Dtor_prk() _dafny.Sequence { + return _this.Get_().(HkdfExpandInput_HkdfExpandInput).Prk +} + +func (_this HkdfExpandInput) Dtor_info() _dafny.Sequence { + return _this.Get_().(HkdfExpandInput_HkdfExpandInput).Info +} + +func (_this HkdfExpandInput) Dtor_expectedLength() int32 { + return _this.Get_().(HkdfExpandInput_HkdfExpandInput).ExpectedLength +} + +func (_this HkdfExpandInput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case HkdfExpandInput_HkdfExpandInput: + { + return "AwsCryptographyPrimitivesTypes.HkdfExpandInput.HkdfExpandInput" + "(" + _dafny.String(data.DigestAlgorithm) + ", " + _dafny.String(data.Prk) + ", " + _dafny.String(data.Info) + ", " + _dafny.String(data.ExpectedLength) + ")" + } + default: + { + return "" + } + } +} + +func (_this HkdfExpandInput) Equals(other HkdfExpandInput) bool { + switch data1 := _this.Get_().(type) { + case HkdfExpandInput_HkdfExpandInput: + { + data2, ok := other.Get_().(HkdfExpandInput_HkdfExpandInput) + return ok && data1.DigestAlgorithm.Equals(data2.DigestAlgorithm) && data1.Prk.Equals(data2.Prk) && data1.Info.Equals(data2.Info) && data1.ExpectedLength == data2.ExpectedLength + } + default: + { + return false // unexpected + } + } +} + +func (_this HkdfExpandInput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(HkdfExpandInput) + return ok && _this.Equals(typed) +} + +func Type_HkdfExpandInput_() _dafny.TypeDescriptor { + return type_HkdfExpandInput_{} +} + +type type_HkdfExpandInput_ struct { +} + +func (_this type_HkdfExpandInput_) Default() interface{} { + return Companion_HkdfExpandInput_.Default() +} + +func (_this type_HkdfExpandInput_) String() string { + return "AwsCryptographyPrimitivesTypes.HkdfExpandInput" +} +func (_this HkdfExpandInput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = HkdfExpandInput{} + +// End of datatype HkdfExpandInput + +// Definition of datatype HkdfExtractInput +type HkdfExtractInput struct { + Data_HkdfExtractInput_ +} + +func (_this HkdfExtractInput) Get_() Data_HkdfExtractInput_ { + return _this.Data_HkdfExtractInput_ +} + +type Data_HkdfExtractInput_ interface { + isHkdfExtractInput() +} + +type CompanionStruct_HkdfExtractInput_ struct { +} + +var Companion_HkdfExtractInput_ = CompanionStruct_HkdfExtractInput_{} + +type HkdfExtractInput_HkdfExtractInput struct { + DigestAlgorithm DigestAlgorithm + Salt m_Wrappers.Option + Ikm _dafny.Sequence +} + +func (HkdfExtractInput_HkdfExtractInput) isHkdfExtractInput() {} + +func (CompanionStruct_HkdfExtractInput_) Create_HkdfExtractInput_(DigestAlgorithm DigestAlgorithm, Salt m_Wrappers.Option, Ikm _dafny.Sequence) HkdfExtractInput { + return HkdfExtractInput{HkdfExtractInput_HkdfExtractInput{DigestAlgorithm, Salt, Ikm}} +} + +func (_this HkdfExtractInput) Is_HkdfExtractInput() bool { + _, ok := _this.Get_().(HkdfExtractInput_HkdfExtractInput) + return ok +} + +func (CompanionStruct_HkdfExtractInput_) Default() HkdfExtractInput { + return Companion_HkdfExtractInput_.Create_HkdfExtractInput_(Companion_DigestAlgorithm_.Default(), m_Wrappers.Companion_Option_.Default(), _dafny.EmptySeq) +} + +func (_this HkdfExtractInput) Dtor_digestAlgorithm() DigestAlgorithm { + return _this.Get_().(HkdfExtractInput_HkdfExtractInput).DigestAlgorithm +} + +func (_this HkdfExtractInput) Dtor_salt() m_Wrappers.Option { + return _this.Get_().(HkdfExtractInput_HkdfExtractInput).Salt +} + +func (_this HkdfExtractInput) Dtor_ikm() _dafny.Sequence { + return _this.Get_().(HkdfExtractInput_HkdfExtractInput).Ikm +} + +func (_this HkdfExtractInput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case HkdfExtractInput_HkdfExtractInput: + { + return "AwsCryptographyPrimitivesTypes.HkdfExtractInput.HkdfExtractInput" + "(" + _dafny.String(data.DigestAlgorithm) + ", " + _dafny.String(data.Salt) + ", " + _dafny.String(data.Ikm) + ")" + } + default: + { + return "" + } + } +} + +func (_this HkdfExtractInput) Equals(other HkdfExtractInput) bool { + switch data1 := _this.Get_().(type) { + case HkdfExtractInput_HkdfExtractInput: + { + data2, ok := other.Get_().(HkdfExtractInput_HkdfExtractInput) + return ok && data1.DigestAlgorithm.Equals(data2.DigestAlgorithm) && data1.Salt.Equals(data2.Salt) && data1.Ikm.Equals(data2.Ikm) + } + default: + { + return false // unexpected + } + } +} + +func (_this HkdfExtractInput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(HkdfExtractInput) + return ok && _this.Equals(typed) +} + +func Type_HkdfExtractInput_() _dafny.TypeDescriptor { + return type_HkdfExtractInput_{} +} + +type type_HkdfExtractInput_ struct { +} + +func (_this type_HkdfExtractInput_) Default() interface{} { + return Companion_HkdfExtractInput_.Default() +} + +func (_this type_HkdfExtractInput_) String() string { + return "AwsCryptographyPrimitivesTypes.HkdfExtractInput" +} +func (_this HkdfExtractInput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = HkdfExtractInput{} + +// End of datatype HkdfExtractInput + +// Definition of datatype HkdfInput +type HkdfInput struct { + Data_HkdfInput_ +} + +func (_this HkdfInput) Get_() Data_HkdfInput_ { + return _this.Data_HkdfInput_ +} + +type Data_HkdfInput_ interface { + isHkdfInput() +} + +type CompanionStruct_HkdfInput_ struct { +} + +var Companion_HkdfInput_ = CompanionStruct_HkdfInput_{} + +type HkdfInput_HkdfInput struct { + DigestAlgorithm DigestAlgorithm + Salt m_Wrappers.Option + Ikm _dafny.Sequence + Info _dafny.Sequence + ExpectedLength int32 +} + +func (HkdfInput_HkdfInput) isHkdfInput() {} + +func (CompanionStruct_HkdfInput_) Create_HkdfInput_(DigestAlgorithm DigestAlgorithm, Salt m_Wrappers.Option, Ikm _dafny.Sequence, Info _dafny.Sequence, ExpectedLength int32) HkdfInput { + return HkdfInput{HkdfInput_HkdfInput{DigestAlgorithm, Salt, Ikm, Info, ExpectedLength}} +} + +func (_this HkdfInput) Is_HkdfInput() bool { + _, ok := _this.Get_().(HkdfInput_HkdfInput) + return ok +} + +func (CompanionStruct_HkdfInput_) Default() HkdfInput { + return Companion_HkdfInput_.Create_HkdfInput_(Companion_DigestAlgorithm_.Default(), m_Wrappers.Companion_Option_.Default(), _dafny.EmptySeq, _dafny.EmptySeq, int32(0)) +} + +func (_this HkdfInput) Dtor_digestAlgorithm() DigestAlgorithm { + return _this.Get_().(HkdfInput_HkdfInput).DigestAlgorithm +} + +func (_this HkdfInput) Dtor_salt() m_Wrappers.Option { + return _this.Get_().(HkdfInput_HkdfInput).Salt +} + +func (_this HkdfInput) Dtor_ikm() _dafny.Sequence { + return _this.Get_().(HkdfInput_HkdfInput).Ikm +} + +func (_this HkdfInput) Dtor_info() _dafny.Sequence { + return _this.Get_().(HkdfInput_HkdfInput).Info +} + +func (_this HkdfInput) Dtor_expectedLength() int32 { + return _this.Get_().(HkdfInput_HkdfInput).ExpectedLength +} + +func (_this HkdfInput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case HkdfInput_HkdfInput: + { + return "AwsCryptographyPrimitivesTypes.HkdfInput.HkdfInput" + "(" + _dafny.String(data.DigestAlgorithm) + ", " + _dafny.String(data.Salt) + ", " + _dafny.String(data.Ikm) + ", " + _dafny.String(data.Info) + ", " + _dafny.String(data.ExpectedLength) + ")" + } + default: + { + return "" + } + } +} + +func (_this HkdfInput) Equals(other HkdfInput) bool { + switch data1 := _this.Get_().(type) { + case HkdfInput_HkdfInput: + { + data2, ok := other.Get_().(HkdfInput_HkdfInput) + return ok && data1.DigestAlgorithm.Equals(data2.DigestAlgorithm) && data1.Salt.Equals(data2.Salt) && data1.Ikm.Equals(data2.Ikm) && data1.Info.Equals(data2.Info) && data1.ExpectedLength == data2.ExpectedLength + } + default: + { + return false // unexpected + } + } +} + +func (_this HkdfInput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(HkdfInput) + return ok && _this.Equals(typed) +} + +func Type_HkdfInput_() _dafny.TypeDescriptor { + return type_HkdfInput_{} +} + +type type_HkdfInput_ struct { +} + +func (_this type_HkdfInput_) Default() interface{} { + return Companion_HkdfInput_.Default() +} + +func (_this type_HkdfInput_) String() string { + return "AwsCryptographyPrimitivesTypes.HkdfInput" +} +func (_this HkdfInput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = HkdfInput{} + +// End of datatype HkdfInput + +// Definition of datatype HMacInput +type HMacInput struct { + Data_HMacInput_ +} + +func (_this HMacInput) Get_() Data_HMacInput_ { + return _this.Data_HMacInput_ +} + +type Data_HMacInput_ interface { + isHMacInput() +} + +type CompanionStruct_HMacInput_ struct { +} + +var Companion_HMacInput_ = CompanionStruct_HMacInput_{} + +type HMacInput_HMacInput struct { + DigestAlgorithm DigestAlgorithm + Key _dafny.Sequence + Message _dafny.Sequence +} + +func (HMacInput_HMacInput) isHMacInput() {} + +func (CompanionStruct_HMacInput_) Create_HMacInput_(DigestAlgorithm DigestAlgorithm, Key _dafny.Sequence, Message _dafny.Sequence) HMacInput { + return HMacInput{HMacInput_HMacInput{DigestAlgorithm, Key, Message}} +} + +func (_this HMacInput) Is_HMacInput() bool { + _, ok := _this.Get_().(HMacInput_HMacInput) + return ok +} + +func (CompanionStruct_HMacInput_) Default() HMacInput { + return Companion_HMacInput_.Create_HMacInput_(Companion_DigestAlgorithm_.Default(), _dafny.EmptySeq, _dafny.EmptySeq) +} + +func (_this HMacInput) Dtor_digestAlgorithm() DigestAlgorithm { + return _this.Get_().(HMacInput_HMacInput).DigestAlgorithm +} + +func (_this HMacInput) Dtor_key() _dafny.Sequence { + return _this.Get_().(HMacInput_HMacInput).Key +} + +func (_this HMacInput) Dtor_message() _dafny.Sequence { + return _this.Get_().(HMacInput_HMacInput).Message +} + +func (_this HMacInput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case HMacInput_HMacInput: + { + return "AwsCryptographyPrimitivesTypes.HMacInput.HMacInput" + "(" + _dafny.String(data.DigestAlgorithm) + ", " + _dafny.String(data.Key) + ", " + _dafny.String(data.Message) + ")" + } + default: + { + return "" + } + } +} + +func (_this HMacInput) Equals(other HMacInput) bool { + switch data1 := _this.Get_().(type) { + case HMacInput_HMacInput: + { + data2, ok := other.Get_().(HMacInput_HMacInput) + return ok && data1.DigestAlgorithm.Equals(data2.DigestAlgorithm) && data1.Key.Equals(data2.Key) && data1.Message.Equals(data2.Message) + } + default: + { + return false // unexpected + } + } +} + +func (_this HMacInput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(HMacInput) + return ok && _this.Equals(typed) +} + +func Type_HMacInput_() _dafny.TypeDescriptor { + return type_HMacInput_{} +} + +type type_HMacInput_ struct { +} + +func (_this type_HMacInput_) Default() interface{} { + return Companion_HMacInput_.Default() +} + +func (_this type_HMacInput_) String() string { + return "AwsCryptographyPrimitivesTypes.HMacInput" +} +func (_this HMacInput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = HMacInput{} + +// End of datatype HMacInput + +// Definition of datatype KdfCtrInput +type KdfCtrInput struct { + Data_KdfCtrInput_ +} + +func (_this KdfCtrInput) Get_() Data_KdfCtrInput_ { + return _this.Data_KdfCtrInput_ +} + +type Data_KdfCtrInput_ interface { + isKdfCtrInput() +} + +type CompanionStruct_KdfCtrInput_ struct { +} + +var Companion_KdfCtrInput_ = CompanionStruct_KdfCtrInput_{} + +type KdfCtrInput_KdfCtrInput struct { + DigestAlgorithm DigestAlgorithm + Ikm _dafny.Sequence + ExpectedLength int32 + Purpose m_Wrappers.Option + Nonce m_Wrappers.Option +} + +func (KdfCtrInput_KdfCtrInput) isKdfCtrInput() {} + +func (CompanionStruct_KdfCtrInput_) Create_KdfCtrInput_(DigestAlgorithm DigestAlgorithm, Ikm _dafny.Sequence, ExpectedLength int32, Purpose m_Wrappers.Option, Nonce m_Wrappers.Option) KdfCtrInput { + return KdfCtrInput{KdfCtrInput_KdfCtrInput{DigestAlgorithm, Ikm, ExpectedLength, Purpose, Nonce}} +} + +func (_this KdfCtrInput) Is_KdfCtrInput() bool { + _, ok := _this.Get_().(KdfCtrInput_KdfCtrInput) + return ok +} + +func (CompanionStruct_KdfCtrInput_) Default() KdfCtrInput { + return Companion_KdfCtrInput_.Create_KdfCtrInput_(Companion_DigestAlgorithm_.Default(), _dafny.EmptySeq, int32(0), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default()) +} + +func (_this KdfCtrInput) Dtor_digestAlgorithm() DigestAlgorithm { + return _this.Get_().(KdfCtrInput_KdfCtrInput).DigestAlgorithm +} + +func (_this KdfCtrInput) Dtor_ikm() _dafny.Sequence { + return _this.Get_().(KdfCtrInput_KdfCtrInput).Ikm +} + +func (_this KdfCtrInput) Dtor_expectedLength() int32 { + return _this.Get_().(KdfCtrInput_KdfCtrInput).ExpectedLength +} + +func (_this KdfCtrInput) Dtor_purpose() m_Wrappers.Option { + return _this.Get_().(KdfCtrInput_KdfCtrInput).Purpose +} + +func (_this KdfCtrInput) Dtor_nonce() m_Wrappers.Option { + return _this.Get_().(KdfCtrInput_KdfCtrInput).Nonce +} + +func (_this KdfCtrInput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case KdfCtrInput_KdfCtrInput: + { + return "AwsCryptographyPrimitivesTypes.KdfCtrInput.KdfCtrInput" + "(" + _dafny.String(data.DigestAlgorithm) + ", " + _dafny.String(data.Ikm) + ", " + _dafny.String(data.ExpectedLength) + ", " + _dafny.String(data.Purpose) + ", " + _dafny.String(data.Nonce) + ")" + } + default: + { + return "" + } + } +} + +func (_this KdfCtrInput) Equals(other KdfCtrInput) bool { + switch data1 := _this.Get_().(type) { + case KdfCtrInput_KdfCtrInput: + { + data2, ok := other.Get_().(KdfCtrInput_KdfCtrInput) + return ok && data1.DigestAlgorithm.Equals(data2.DigestAlgorithm) && data1.Ikm.Equals(data2.Ikm) && data1.ExpectedLength == data2.ExpectedLength && data1.Purpose.Equals(data2.Purpose) && data1.Nonce.Equals(data2.Nonce) + } + default: + { + return false // unexpected + } + } +} + +func (_this KdfCtrInput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(KdfCtrInput) + return ok && _this.Equals(typed) +} + +func Type_KdfCtrInput_() _dafny.TypeDescriptor { + return type_KdfCtrInput_{} +} + +type type_KdfCtrInput_ struct { +} + +func (_this type_KdfCtrInput_) Default() interface{} { + return Companion_KdfCtrInput_.Default() +} + +func (_this type_KdfCtrInput_) String() string { + return "AwsCryptographyPrimitivesTypes.KdfCtrInput" +} +func (_this KdfCtrInput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = KdfCtrInput{} + +// End of datatype KdfCtrInput + +// Definition of datatype ParsePublicKeyInput +type ParsePublicKeyInput struct { + Data_ParsePublicKeyInput_ +} + +func (_this ParsePublicKeyInput) Get_() Data_ParsePublicKeyInput_ { + return _this.Data_ParsePublicKeyInput_ +} + +type Data_ParsePublicKeyInput_ interface { + isParsePublicKeyInput() +} + +type CompanionStruct_ParsePublicKeyInput_ struct { +} + +var Companion_ParsePublicKeyInput_ = CompanionStruct_ParsePublicKeyInput_{} + +type ParsePublicKeyInput_ParsePublicKeyInput struct { + PublicKey _dafny.Sequence +} + +func (ParsePublicKeyInput_ParsePublicKeyInput) isParsePublicKeyInput() {} + +func (CompanionStruct_ParsePublicKeyInput_) Create_ParsePublicKeyInput_(PublicKey _dafny.Sequence) ParsePublicKeyInput { + return ParsePublicKeyInput{ParsePublicKeyInput_ParsePublicKeyInput{PublicKey}} +} + +func (_this ParsePublicKeyInput) Is_ParsePublicKeyInput() bool { + _, ok := _this.Get_().(ParsePublicKeyInput_ParsePublicKeyInput) + return ok +} + +func (CompanionStruct_ParsePublicKeyInput_) Default() ParsePublicKeyInput { + return Companion_ParsePublicKeyInput_.Create_ParsePublicKeyInput_(_dafny.EmptySeq) +} + +func (_this ParsePublicKeyInput) Dtor_publicKey() _dafny.Sequence { + return _this.Get_().(ParsePublicKeyInput_ParsePublicKeyInput).PublicKey +} + +func (_this ParsePublicKeyInput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case ParsePublicKeyInput_ParsePublicKeyInput: + { + return "AwsCryptographyPrimitivesTypes.ParsePublicKeyInput.ParsePublicKeyInput" + "(" + _dafny.String(data.PublicKey) + ")" + } + default: + { + return "" + } + } +} + +func (_this ParsePublicKeyInput) Equals(other ParsePublicKeyInput) bool { + switch data1 := _this.Get_().(type) { + case ParsePublicKeyInput_ParsePublicKeyInput: + { + data2, ok := other.Get_().(ParsePublicKeyInput_ParsePublicKeyInput) + return ok && data1.PublicKey.Equals(data2.PublicKey) + } + default: + { + return false // unexpected + } + } +} + +func (_this ParsePublicKeyInput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(ParsePublicKeyInput) + return ok && _this.Equals(typed) +} + +func Type_ParsePublicKeyInput_() _dafny.TypeDescriptor { + return type_ParsePublicKeyInput_{} +} + +type type_ParsePublicKeyInput_ struct { +} + +func (_this type_ParsePublicKeyInput_) Default() interface{} { + return Companion_ParsePublicKeyInput_.Default() +} + +func (_this type_ParsePublicKeyInput_) String() string { + return "AwsCryptographyPrimitivesTypes.ParsePublicKeyInput" +} +func (_this ParsePublicKeyInput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = ParsePublicKeyInput{} + +// End of datatype ParsePublicKeyInput + +// Definition of datatype ParsePublicKeyOutput +type ParsePublicKeyOutput struct { + Data_ParsePublicKeyOutput_ +} + +func (_this ParsePublicKeyOutput) Get_() Data_ParsePublicKeyOutput_ { + return _this.Data_ParsePublicKeyOutput_ +} + +type Data_ParsePublicKeyOutput_ interface { + isParsePublicKeyOutput() +} + +type CompanionStruct_ParsePublicKeyOutput_ struct { +} + +var Companion_ParsePublicKeyOutput_ = CompanionStruct_ParsePublicKeyOutput_{} + +type ParsePublicKeyOutput_ParsePublicKeyOutput struct { + PublicKey ECCPublicKey +} + +func (ParsePublicKeyOutput_ParsePublicKeyOutput) isParsePublicKeyOutput() {} + +func (CompanionStruct_ParsePublicKeyOutput_) Create_ParsePublicKeyOutput_(PublicKey ECCPublicKey) ParsePublicKeyOutput { + return ParsePublicKeyOutput{ParsePublicKeyOutput_ParsePublicKeyOutput{PublicKey}} +} + +func (_this ParsePublicKeyOutput) Is_ParsePublicKeyOutput() bool { + _, ok := _this.Get_().(ParsePublicKeyOutput_ParsePublicKeyOutput) + return ok +} + +func (CompanionStruct_ParsePublicKeyOutput_) Default() ParsePublicKeyOutput { + return Companion_ParsePublicKeyOutput_.Create_ParsePublicKeyOutput_(Companion_ECCPublicKey_.Default()) +} + +func (_this ParsePublicKeyOutput) Dtor_publicKey() ECCPublicKey { + return _this.Get_().(ParsePublicKeyOutput_ParsePublicKeyOutput).PublicKey +} + +func (_this ParsePublicKeyOutput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case ParsePublicKeyOutput_ParsePublicKeyOutput: + { + return "AwsCryptographyPrimitivesTypes.ParsePublicKeyOutput.ParsePublicKeyOutput" + "(" + _dafny.String(data.PublicKey) + ")" + } + default: + { + return "" + } + } +} + +func (_this ParsePublicKeyOutput) Equals(other ParsePublicKeyOutput) bool { + switch data1 := _this.Get_().(type) { + case ParsePublicKeyOutput_ParsePublicKeyOutput: + { + data2, ok := other.Get_().(ParsePublicKeyOutput_ParsePublicKeyOutput) + return ok && data1.PublicKey.Equals(data2.PublicKey) + } + default: + { + return false // unexpected + } + } +} + +func (_this ParsePublicKeyOutput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(ParsePublicKeyOutput) + return ok && _this.Equals(typed) +} + +func Type_ParsePublicKeyOutput_() _dafny.TypeDescriptor { + return type_ParsePublicKeyOutput_{} +} + +type type_ParsePublicKeyOutput_ struct { +} + +func (_this type_ParsePublicKeyOutput_) Default() interface{} { + return Companion_ParsePublicKeyOutput_.Default() +} + +func (_this type_ParsePublicKeyOutput_) String() string { + return "AwsCryptographyPrimitivesTypes.ParsePublicKeyOutput" +} +func (_this ParsePublicKeyOutput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = ParsePublicKeyOutput{} + +// End of datatype ParsePublicKeyOutput + +// Definition of class PositiveInteger +type PositiveInteger struct { +} + +func New_PositiveInteger_() *PositiveInteger { + _this := PositiveInteger{} + + return &_this +} + +type CompanionStruct_PositiveInteger_ struct { +} + +var Companion_PositiveInteger_ = CompanionStruct_PositiveInteger_{} + +func (*PositiveInteger) String() string { + return "AwsCryptographyPrimitivesTypes.PositiveInteger" +} + +// End of class PositiveInteger + +func Type_PositiveInteger_() _dafny.TypeDescriptor { + return type_PositiveInteger_{} +} + +type type_PositiveInteger_ struct { +} + +func (_this type_PositiveInteger_) Default() interface{} { + return int32(0) +} + +func (_this type_PositiveInteger_) String() string { + return "AwsCryptographyPrimitivesTypes.PositiveInteger" +} +func (_this *CompanionStruct_PositiveInteger_) Is_(__source int32) bool { + var _0_x int32 = (__source) + _ = _0_x + if true { + return Companion_Default___.IsValid__PositiveInteger(_0_x) + } + return false +} + +// Definition of datatype RSADecryptInput +type RSADecryptInput struct { + Data_RSADecryptInput_ +} + +func (_this RSADecryptInput) Get_() Data_RSADecryptInput_ { + return _this.Data_RSADecryptInput_ +} + +type Data_RSADecryptInput_ interface { + isRSADecryptInput() +} + +type CompanionStruct_RSADecryptInput_ struct { +} + +var Companion_RSADecryptInput_ = CompanionStruct_RSADecryptInput_{} + +type RSADecryptInput_RSADecryptInput struct { + Padding RSAPaddingMode + PrivateKey _dafny.Sequence + CipherText _dafny.Sequence +} + +func (RSADecryptInput_RSADecryptInput) isRSADecryptInput() {} + +func (CompanionStruct_RSADecryptInput_) Create_RSADecryptInput_(Padding RSAPaddingMode, PrivateKey _dafny.Sequence, CipherText _dafny.Sequence) RSADecryptInput { + return RSADecryptInput{RSADecryptInput_RSADecryptInput{Padding, PrivateKey, CipherText}} +} + +func (_this RSADecryptInput) Is_RSADecryptInput() bool { + _, ok := _this.Get_().(RSADecryptInput_RSADecryptInput) + return ok +} + +func (CompanionStruct_RSADecryptInput_) Default() RSADecryptInput { + return Companion_RSADecryptInput_.Create_RSADecryptInput_(Companion_RSAPaddingMode_.Default(), _dafny.EmptySeq, _dafny.EmptySeq) +} + +func (_this RSADecryptInput) Dtor_padding() RSAPaddingMode { + return _this.Get_().(RSADecryptInput_RSADecryptInput).Padding +} + +func (_this RSADecryptInput) Dtor_privateKey() _dafny.Sequence { + return _this.Get_().(RSADecryptInput_RSADecryptInput).PrivateKey +} + +func (_this RSADecryptInput) Dtor_cipherText() _dafny.Sequence { + return _this.Get_().(RSADecryptInput_RSADecryptInput).CipherText +} + +func (_this RSADecryptInput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case RSADecryptInput_RSADecryptInput: + { + return "AwsCryptographyPrimitivesTypes.RSADecryptInput.RSADecryptInput" + "(" + _dafny.String(data.Padding) + ", " + _dafny.String(data.PrivateKey) + ", " + _dafny.String(data.CipherText) + ")" + } + default: + { + return "" + } + } +} + +func (_this RSADecryptInput) Equals(other RSADecryptInput) bool { + switch data1 := _this.Get_().(type) { + case RSADecryptInput_RSADecryptInput: + { + data2, ok := other.Get_().(RSADecryptInput_RSADecryptInput) + return ok && data1.Padding.Equals(data2.Padding) && data1.PrivateKey.Equals(data2.PrivateKey) && data1.CipherText.Equals(data2.CipherText) + } + default: + { + return false // unexpected + } + } +} + +func (_this RSADecryptInput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(RSADecryptInput) + return ok && _this.Equals(typed) +} + +func Type_RSADecryptInput_() _dafny.TypeDescriptor { + return type_RSADecryptInput_{} +} + +type type_RSADecryptInput_ struct { +} + +func (_this type_RSADecryptInput_) Default() interface{} { + return Companion_RSADecryptInput_.Default() +} + +func (_this type_RSADecryptInput_) String() string { + return "AwsCryptographyPrimitivesTypes.RSADecryptInput" +} +func (_this RSADecryptInput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = RSADecryptInput{} + +// End of datatype RSADecryptInput + +// Definition of datatype RSAEncryptInput +type RSAEncryptInput struct { + Data_RSAEncryptInput_ +} + +func (_this RSAEncryptInput) Get_() Data_RSAEncryptInput_ { + return _this.Data_RSAEncryptInput_ +} + +type Data_RSAEncryptInput_ interface { + isRSAEncryptInput() +} + +type CompanionStruct_RSAEncryptInput_ struct { +} + +var Companion_RSAEncryptInput_ = CompanionStruct_RSAEncryptInput_{} + +type RSAEncryptInput_RSAEncryptInput struct { + Padding RSAPaddingMode + PublicKey _dafny.Sequence + Plaintext _dafny.Sequence +} + +func (RSAEncryptInput_RSAEncryptInput) isRSAEncryptInput() {} + +func (CompanionStruct_RSAEncryptInput_) Create_RSAEncryptInput_(Padding RSAPaddingMode, PublicKey _dafny.Sequence, Plaintext _dafny.Sequence) RSAEncryptInput { + return RSAEncryptInput{RSAEncryptInput_RSAEncryptInput{Padding, PublicKey, Plaintext}} +} + +func (_this RSAEncryptInput) Is_RSAEncryptInput() bool { + _, ok := _this.Get_().(RSAEncryptInput_RSAEncryptInput) + return ok +} + +func (CompanionStruct_RSAEncryptInput_) Default() RSAEncryptInput { + return Companion_RSAEncryptInput_.Create_RSAEncryptInput_(Companion_RSAPaddingMode_.Default(), _dafny.EmptySeq, _dafny.EmptySeq) +} + +func (_this RSAEncryptInput) Dtor_padding() RSAPaddingMode { + return _this.Get_().(RSAEncryptInput_RSAEncryptInput).Padding +} + +func (_this RSAEncryptInput) Dtor_publicKey() _dafny.Sequence { + return _this.Get_().(RSAEncryptInput_RSAEncryptInput).PublicKey +} + +func (_this RSAEncryptInput) Dtor_plaintext() _dafny.Sequence { + return _this.Get_().(RSAEncryptInput_RSAEncryptInput).Plaintext +} + +func (_this RSAEncryptInput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case RSAEncryptInput_RSAEncryptInput: + { + return "AwsCryptographyPrimitivesTypes.RSAEncryptInput.RSAEncryptInput" + "(" + _dafny.String(data.Padding) + ", " + _dafny.String(data.PublicKey) + ", " + _dafny.String(data.Plaintext) + ")" + } + default: + { + return "" + } + } +} + +func (_this RSAEncryptInput) Equals(other RSAEncryptInput) bool { + switch data1 := _this.Get_().(type) { + case RSAEncryptInput_RSAEncryptInput: + { + data2, ok := other.Get_().(RSAEncryptInput_RSAEncryptInput) + return ok && data1.Padding.Equals(data2.Padding) && data1.PublicKey.Equals(data2.PublicKey) && data1.Plaintext.Equals(data2.Plaintext) + } + default: + { + return false // unexpected + } + } +} + +func (_this RSAEncryptInput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(RSAEncryptInput) + return ok && _this.Equals(typed) +} + +func Type_RSAEncryptInput_() _dafny.TypeDescriptor { + return type_RSAEncryptInput_{} +} + +type type_RSAEncryptInput_ struct { +} + +func (_this type_RSAEncryptInput_) Default() interface{} { + return Companion_RSAEncryptInput_.Default() +} + +func (_this type_RSAEncryptInput_) String() string { + return "AwsCryptographyPrimitivesTypes.RSAEncryptInput" +} +func (_this RSAEncryptInput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = RSAEncryptInput{} + +// End of datatype RSAEncryptInput + +// Definition of class RSAModulusLengthBits +type RSAModulusLengthBits struct { +} + +func New_RSAModulusLengthBits_() *RSAModulusLengthBits { + _this := RSAModulusLengthBits{} + + return &_this +} + +type CompanionStruct_RSAModulusLengthBits_ struct { +} + +var Companion_RSAModulusLengthBits_ = CompanionStruct_RSAModulusLengthBits_{} + +func (*RSAModulusLengthBits) String() string { + return "AwsCryptographyPrimitivesTypes.RSAModulusLengthBits" +} + +// End of class RSAModulusLengthBits + +func Type_RSAModulusLengthBits_() _dafny.TypeDescriptor { + return type_RSAModulusLengthBits_{} +} + +type type_RSAModulusLengthBits_ struct { +} + +func (_this type_RSAModulusLengthBits_) Default() interface{} { + return int32(0) +} + +func (_this type_RSAModulusLengthBits_) String() string { + return "AwsCryptographyPrimitivesTypes.RSAModulusLengthBits" +} +func (_this *CompanionStruct_RSAModulusLengthBits_) Is_(__source int32) bool { + var _1_x int32 = (__source) + _ = _1_x + if true { + return Companion_Default___.IsValid__RSAModulusLengthBits(_1_x) + } + return false +} + +// Definition of class RSAModulusLengthBitsToGenerate +type RSAModulusLengthBitsToGenerate struct { +} + +func New_RSAModulusLengthBitsToGenerate_() *RSAModulusLengthBitsToGenerate { + _this := RSAModulusLengthBitsToGenerate{} + + return &_this +} + +type CompanionStruct_RSAModulusLengthBitsToGenerate_ struct { +} + +var Companion_RSAModulusLengthBitsToGenerate_ = CompanionStruct_RSAModulusLengthBitsToGenerate_{} + +func (*RSAModulusLengthBitsToGenerate) String() string { + return "AwsCryptographyPrimitivesTypes.RSAModulusLengthBitsToGenerate" +} + +// End of class RSAModulusLengthBitsToGenerate + +func Type_RSAModulusLengthBitsToGenerate_() _dafny.TypeDescriptor { + return type_RSAModulusLengthBitsToGenerate_{} +} + +type type_RSAModulusLengthBitsToGenerate_ struct { +} + +func (_this type_RSAModulusLengthBitsToGenerate_) Default() interface{} { + return int32(0) +} + +func (_this type_RSAModulusLengthBitsToGenerate_) String() string { + return "AwsCryptographyPrimitivesTypes.RSAModulusLengthBitsToGenerate" +} +func (_this *CompanionStruct_RSAModulusLengthBitsToGenerate_) Is_(__source int32) bool { + var _2_x int32 = (__source) + _ = _2_x + if true { + return Companion_Default___.IsValid__RSAModulusLengthBitsToGenerate(_2_x) + } + return false +} + +// Definition of datatype RSAPaddingMode +type RSAPaddingMode struct { + Data_RSAPaddingMode_ +} + +func (_this RSAPaddingMode) Get_() Data_RSAPaddingMode_ { + return _this.Data_RSAPaddingMode_ +} + +type Data_RSAPaddingMode_ interface { + isRSAPaddingMode() +} + +type CompanionStruct_RSAPaddingMode_ struct { +} + +var Companion_RSAPaddingMode_ = CompanionStruct_RSAPaddingMode_{} + +type RSAPaddingMode_PKCS1 struct { +} + +func (RSAPaddingMode_PKCS1) isRSAPaddingMode() {} + +func (CompanionStruct_RSAPaddingMode_) Create_PKCS1_() RSAPaddingMode { + return RSAPaddingMode{RSAPaddingMode_PKCS1{}} +} + +func (_this RSAPaddingMode) Is_PKCS1() bool { + _, ok := _this.Get_().(RSAPaddingMode_PKCS1) + return ok +} + +type RSAPaddingMode_OAEP__SHA1 struct { +} + +func (RSAPaddingMode_OAEP__SHA1) isRSAPaddingMode() {} + +func (CompanionStruct_RSAPaddingMode_) Create_OAEP__SHA1_() RSAPaddingMode { + return RSAPaddingMode{RSAPaddingMode_OAEP__SHA1{}} +} + +func (_this RSAPaddingMode) Is_OAEP__SHA1() bool { + _, ok := _this.Get_().(RSAPaddingMode_OAEP__SHA1) + return ok +} + +type RSAPaddingMode_OAEP__SHA256 struct { +} + +func (RSAPaddingMode_OAEP__SHA256) isRSAPaddingMode() {} + +func (CompanionStruct_RSAPaddingMode_) Create_OAEP__SHA256_() RSAPaddingMode { + return RSAPaddingMode{RSAPaddingMode_OAEP__SHA256{}} +} + +func (_this RSAPaddingMode) Is_OAEP__SHA256() bool { + _, ok := _this.Get_().(RSAPaddingMode_OAEP__SHA256) + return ok +} + +type RSAPaddingMode_OAEP__SHA384 struct { +} + +func (RSAPaddingMode_OAEP__SHA384) isRSAPaddingMode() {} + +func (CompanionStruct_RSAPaddingMode_) Create_OAEP__SHA384_() RSAPaddingMode { + return RSAPaddingMode{RSAPaddingMode_OAEP__SHA384{}} +} + +func (_this RSAPaddingMode) Is_OAEP__SHA384() bool { + _, ok := _this.Get_().(RSAPaddingMode_OAEP__SHA384) + return ok +} + +type RSAPaddingMode_OAEP__SHA512 struct { +} + +func (RSAPaddingMode_OAEP__SHA512) isRSAPaddingMode() {} + +func (CompanionStruct_RSAPaddingMode_) Create_OAEP__SHA512_() RSAPaddingMode { + return RSAPaddingMode{RSAPaddingMode_OAEP__SHA512{}} +} + +func (_this RSAPaddingMode) Is_OAEP__SHA512() bool { + _, ok := _this.Get_().(RSAPaddingMode_OAEP__SHA512) + return ok +} + +func (CompanionStruct_RSAPaddingMode_) Default() RSAPaddingMode { + return Companion_RSAPaddingMode_.Create_PKCS1_() +} + +func (_ CompanionStruct_RSAPaddingMode_) AllSingletonConstructors() _dafny.Iterator { + i := -1 + return func() (interface{}, bool) { + i++ + switch i { + case 0: + return Companion_RSAPaddingMode_.Create_PKCS1_(), true + case 1: + return Companion_RSAPaddingMode_.Create_OAEP__SHA1_(), true + case 2: + return Companion_RSAPaddingMode_.Create_OAEP__SHA256_(), true + case 3: + return Companion_RSAPaddingMode_.Create_OAEP__SHA384_(), true + case 4: + return Companion_RSAPaddingMode_.Create_OAEP__SHA512_(), true + default: + return RSAPaddingMode{}, false + } + } +} + +func (_this RSAPaddingMode) String() string { + switch _this.Get_().(type) { + case nil: + return "null" + case RSAPaddingMode_PKCS1: + { + return "AwsCryptographyPrimitivesTypes.RSAPaddingMode.PKCS1" + } + case RSAPaddingMode_OAEP__SHA1: + { + return "AwsCryptographyPrimitivesTypes.RSAPaddingMode.OAEP_SHA1" + } + case RSAPaddingMode_OAEP__SHA256: + { + return "AwsCryptographyPrimitivesTypes.RSAPaddingMode.OAEP_SHA256" + } + case RSAPaddingMode_OAEP__SHA384: + { + return "AwsCryptographyPrimitivesTypes.RSAPaddingMode.OAEP_SHA384" + } + case RSAPaddingMode_OAEP__SHA512: + { + return "AwsCryptographyPrimitivesTypes.RSAPaddingMode.OAEP_SHA512" + } + default: + { + return "" + } + } +} + +func (_this RSAPaddingMode) Equals(other RSAPaddingMode) bool { + switch _this.Get_().(type) { + case RSAPaddingMode_PKCS1: + { + _, ok := other.Get_().(RSAPaddingMode_PKCS1) + return ok + } + case RSAPaddingMode_OAEP__SHA1: + { + _, ok := other.Get_().(RSAPaddingMode_OAEP__SHA1) + return ok + } + case RSAPaddingMode_OAEP__SHA256: + { + _, ok := other.Get_().(RSAPaddingMode_OAEP__SHA256) + return ok + } + case RSAPaddingMode_OAEP__SHA384: + { + _, ok := other.Get_().(RSAPaddingMode_OAEP__SHA384) + return ok + } + case RSAPaddingMode_OAEP__SHA512: + { + _, ok := other.Get_().(RSAPaddingMode_OAEP__SHA512) + return ok + } + default: + { + return false // unexpected + } + } +} + +func (_this RSAPaddingMode) EqualsGeneric(other interface{}) bool { + typed, ok := other.(RSAPaddingMode) + return ok && _this.Equals(typed) +} + +func Type_RSAPaddingMode_() _dafny.TypeDescriptor { + return type_RSAPaddingMode_{} +} + +type type_RSAPaddingMode_ struct { +} + +func (_this type_RSAPaddingMode_) Default() interface{} { + return Companion_RSAPaddingMode_.Default() +} + +func (_this type_RSAPaddingMode_) String() string { + return "AwsCryptographyPrimitivesTypes.RSAPaddingMode" +} +func (_this RSAPaddingMode) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = RSAPaddingMode{} + +// End of datatype RSAPaddingMode + +// Definition of datatype RSAPrivateKey +type RSAPrivateKey struct { + Data_RSAPrivateKey_ +} + +func (_this RSAPrivateKey) Get_() Data_RSAPrivateKey_ { + return _this.Data_RSAPrivateKey_ +} + +type Data_RSAPrivateKey_ interface { + isRSAPrivateKey() +} + +type CompanionStruct_RSAPrivateKey_ struct { +} + +var Companion_RSAPrivateKey_ = CompanionStruct_RSAPrivateKey_{} + +type RSAPrivateKey_RSAPrivateKey struct { + LengthBits int32 + Pem _dafny.Sequence +} + +func (RSAPrivateKey_RSAPrivateKey) isRSAPrivateKey() {} + +func (CompanionStruct_RSAPrivateKey_) Create_RSAPrivateKey_(LengthBits int32, Pem _dafny.Sequence) RSAPrivateKey { + return RSAPrivateKey{RSAPrivateKey_RSAPrivateKey{LengthBits, Pem}} +} + +func (_this RSAPrivateKey) Is_RSAPrivateKey() bool { + _, ok := _this.Get_().(RSAPrivateKey_RSAPrivateKey) + return ok +} + +func (CompanionStruct_RSAPrivateKey_) Default() RSAPrivateKey { + return Companion_RSAPrivateKey_.Create_RSAPrivateKey_(int32(0), _dafny.EmptySeq) +} + +func (_this RSAPrivateKey) Dtor_lengthBits() int32 { + return _this.Get_().(RSAPrivateKey_RSAPrivateKey).LengthBits +} + +func (_this RSAPrivateKey) Dtor_pem() _dafny.Sequence { + return _this.Get_().(RSAPrivateKey_RSAPrivateKey).Pem +} + +func (_this RSAPrivateKey) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case RSAPrivateKey_RSAPrivateKey: + { + return "AwsCryptographyPrimitivesTypes.RSAPrivateKey.RSAPrivateKey" + "(" + _dafny.String(data.LengthBits) + ", " + _dafny.String(data.Pem) + ")" + } + default: + { + return "" + } + } +} + +func (_this RSAPrivateKey) Equals(other RSAPrivateKey) bool { + switch data1 := _this.Get_().(type) { + case RSAPrivateKey_RSAPrivateKey: + { + data2, ok := other.Get_().(RSAPrivateKey_RSAPrivateKey) + return ok && data1.LengthBits == data2.LengthBits && data1.Pem.Equals(data2.Pem) + } + default: + { + return false // unexpected + } + } +} + +func (_this RSAPrivateKey) EqualsGeneric(other interface{}) bool { + typed, ok := other.(RSAPrivateKey) + return ok && _this.Equals(typed) +} + +func Type_RSAPrivateKey_() _dafny.TypeDescriptor { + return type_RSAPrivateKey_{} +} + +type type_RSAPrivateKey_ struct { +} + +func (_this type_RSAPrivateKey_) Default() interface{} { + return Companion_RSAPrivateKey_.Default() +} + +func (_this type_RSAPrivateKey_) String() string { + return "AwsCryptographyPrimitivesTypes.RSAPrivateKey" +} +func (_this RSAPrivateKey) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = RSAPrivateKey{} + +// End of datatype RSAPrivateKey + +// Definition of datatype RSAPublicKey +type RSAPublicKey struct { + Data_RSAPublicKey_ +} + +func (_this RSAPublicKey) Get_() Data_RSAPublicKey_ { + return _this.Data_RSAPublicKey_ +} + +type Data_RSAPublicKey_ interface { + isRSAPublicKey() +} + +type CompanionStruct_RSAPublicKey_ struct { +} + +var Companion_RSAPublicKey_ = CompanionStruct_RSAPublicKey_{} + +type RSAPublicKey_RSAPublicKey struct { + LengthBits int32 + Pem _dafny.Sequence +} + +func (RSAPublicKey_RSAPublicKey) isRSAPublicKey() {} + +func (CompanionStruct_RSAPublicKey_) Create_RSAPublicKey_(LengthBits int32, Pem _dafny.Sequence) RSAPublicKey { + return RSAPublicKey{RSAPublicKey_RSAPublicKey{LengthBits, Pem}} +} + +func (_this RSAPublicKey) Is_RSAPublicKey() bool { + _, ok := _this.Get_().(RSAPublicKey_RSAPublicKey) + return ok +} + +func (CompanionStruct_RSAPublicKey_) Default() RSAPublicKey { + return Companion_RSAPublicKey_.Create_RSAPublicKey_(int32(0), _dafny.EmptySeq) +} + +func (_this RSAPublicKey) Dtor_lengthBits() int32 { + return _this.Get_().(RSAPublicKey_RSAPublicKey).LengthBits +} + +func (_this RSAPublicKey) Dtor_pem() _dafny.Sequence { + return _this.Get_().(RSAPublicKey_RSAPublicKey).Pem +} + +func (_this RSAPublicKey) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case RSAPublicKey_RSAPublicKey: + { + return "AwsCryptographyPrimitivesTypes.RSAPublicKey.RSAPublicKey" + "(" + _dafny.String(data.LengthBits) + ", " + _dafny.String(data.Pem) + ")" + } + default: + { + return "" + } + } +} + +func (_this RSAPublicKey) Equals(other RSAPublicKey) bool { + switch data1 := _this.Get_().(type) { + case RSAPublicKey_RSAPublicKey: + { + data2, ok := other.Get_().(RSAPublicKey_RSAPublicKey) + return ok && data1.LengthBits == data2.LengthBits && data1.Pem.Equals(data2.Pem) + } + default: + { + return false // unexpected + } + } +} + +func (_this RSAPublicKey) EqualsGeneric(other interface{}) bool { + typed, ok := other.(RSAPublicKey) + return ok && _this.Equals(typed) +} + +func Type_RSAPublicKey_() _dafny.TypeDescriptor { + return type_RSAPublicKey_{} +} + +type type_RSAPublicKey_ struct { +} + +func (_this type_RSAPublicKey_) Default() interface{} { + return Companion_RSAPublicKey_.Default() +} + +func (_this type_RSAPublicKey_) String() string { + return "AwsCryptographyPrimitivesTypes.RSAPublicKey" +} +func (_this RSAPublicKey) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = RSAPublicKey{} + +// End of datatype RSAPublicKey + +// Definition of class SymmetricKeyLength +type SymmetricKeyLength struct { +} + +func New_SymmetricKeyLength_() *SymmetricKeyLength { + _this := SymmetricKeyLength{} + + return &_this +} + +type CompanionStruct_SymmetricKeyLength_ struct { +} + +var Companion_SymmetricKeyLength_ = CompanionStruct_SymmetricKeyLength_{} + +func (*SymmetricKeyLength) String() string { + return "AwsCryptographyPrimitivesTypes.SymmetricKeyLength" +} + +// End of class SymmetricKeyLength + +func Type_SymmetricKeyLength_() _dafny.TypeDescriptor { + return type_SymmetricKeyLength_{} +} + +type type_SymmetricKeyLength_ struct { +} + +func (_this type_SymmetricKeyLength_) Default() interface{} { + return int32(0) +} + +func (_this type_SymmetricKeyLength_) String() string { + return "AwsCryptographyPrimitivesTypes.SymmetricKeyLength" +} +func (_this *CompanionStruct_SymmetricKeyLength_) Is_(__source int32) bool { + var _3_x int32 = (__source) + _ = _3_x + if true { + return Companion_Default___.IsValid__SymmetricKeyLength(_3_x) + } + return false +} + +// Definition of class Uint8Bits +type Uint8Bits struct { +} + +func New_Uint8Bits_() *Uint8Bits { + _this := Uint8Bits{} + + return &_this +} + +type CompanionStruct_Uint8Bits_ struct { +} + +var Companion_Uint8Bits_ = CompanionStruct_Uint8Bits_{} + +func (*Uint8Bits) String() string { + return "AwsCryptographyPrimitivesTypes.Uint8Bits" +} + +// End of class Uint8Bits + +func Type_Uint8Bits_() _dafny.TypeDescriptor { + return type_Uint8Bits_{} +} + +type type_Uint8Bits_ struct { +} + +func (_this type_Uint8Bits_) Default() interface{} { + return int32(0) +} + +func (_this type_Uint8Bits_) String() string { + return "AwsCryptographyPrimitivesTypes.Uint8Bits" +} +func (_this *CompanionStruct_Uint8Bits_) Is_(__source int32) bool { + var _4_x int32 = (__source) + _ = _4_x + if true { + return Companion_Default___.IsValid__Uint8Bits(_4_x) + } + return false +} + +// Definition of class Uint8Bytes +type Uint8Bytes struct { +} + +func New_Uint8Bytes_() *Uint8Bytes { + _this := Uint8Bytes{} + + return &_this +} + +type CompanionStruct_Uint8Bytes_ struct { +} + +var Companion_Uint8Bytes_ = CompanionStruct_Uint8Bytes_{} + +func (*Uint8Bytes) String() string { + return "AwsCryptographyPrimitivesTypes.Uint8Bytes" +} + +// End of class Uint8Bytes + +func Type_Uint8Bytes_() _dafny.TypeDescriptor { + return type_Uint8Bytes_{} +} + +type type_Uint8Bytes_ struct { +} + +func (_this type_Uint8Bytes_) Default() interface{} { + return int32(0) +} + +func (_this type_Uint8Bytes_) String() string { + return "AwsCryptographyPrimitivesTypes.Uint8Bytes" +} +func (_this *CompanionStruct_Uint8Bytes_) Is_(__source int32) bool { + var _5_x int32 = (__source) + _ = _5_x + if true { + return Companion_Default___.IsValid__Uint8Bytes(_5_x) + } + return false +} + +// Definition of datatype ValidatePublicKeyInput +type ValidatePublicKeyInput struct { + Data_ValidatePublicKeyInput_ +} + +func (_this ValidatePublicKeyInput) Get_() Data_ValidatePublicKeyInput_ { + return _this.Data_ValidatePublicKeyInput_ +} + +type Data_ValidatePublicKeyInput_ interface { + isValidatePublicKeyInput() +} + +type CompanionStruct_ValidatePublicKeyInput_ struct { +} + +var Companion_ValidatePublicKeyInput_ = CompanionStruct_ValidatePublicKeyInput_{} + +type ValidatePublicKeyInput_ValidatePublicKeyInput struct { + EccCurve ECDHCurveSpec + PublicKey _dafny.Sequence +} + +func (ValidatePublicKeyInput_ValidatePublicKeyInput) isValidatePublicKeyInput() {} + +func (CompanionStruct_ValidatePublicKeyInput_) Create_ValidatePublicKeyInput_(EccCurve ECDHCurveSpec, PublicKey _dafny.Sequence) ValidatePublicKeyInput { + return ValidatePublicKeyInput{ValidatePublicKeyInput_ValidatePublicKeyInput{EccCurve, PublicKey}} +} + +func (_this ValidatePublicKeyInput) Is_ValidatePublicKeyInput() bool { + _, ok := _this.Get_().(ValidatePublicKeyInput_ValidatePublicKeyInput) + return ok +} + +func (CompanionStruct_ValidatePublicKeyInput_) Default() ValidatePublicKeyInput { + return Companion_ValidatePublicKeyInput_.Create_ValidatePublicKeyInput_(Companion_ECDHCurveSpec_.Default(), _dafny.EmptySeq) +} + +func (_this ValidatePublicKeyInput) Dtor_eccCurve() ECDHCurveSpec { + return _this.Get_().(ValidatePublicKeyInput_ValidatePublicKeyInput).EccCurve +} + +func (_this ValidatePublicKeyInput) Dtor_publicKey() _dafny.Sequence { + return _this.Get_().(ValidatePublicKeyInput_ValidatePublicKeyInput).PublicKey +} + +func (_this ValidatePublicKeyInput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case ValidatePublicKeyInput_ValidatePublicKeyInput: + { + return "AwsCryptographyPrimitivesTypes.ValidatePublicKeyInput.ValidatePublicKeyInput" + "(" + _dafny.String(data.EccCurve) + ", " + _dafny.String(data.PublicKey) + ")" + } + default: + { + return "" + } + } +} + +func (_this ValidatePublicKeyInput) Equals(other ValidatePublicKeyInput) bool { + switch data1 := _this.Get_().(type) { + case ValidatePublicKeyInput_ValidatePublicKeyInput: + { + data2, ok := other.Get_().(ValidatePublicKeyInput_ValidatePublicKeyInput) + return ok && data1.EccCurve.Equals(data2.EccCurve) && data1.PublicKey.Equals(data2.PublicKey) + } + default: + { + return false // unexpected + } + } +} + +func (_this ValidatePublicKeyInput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(ValidatePublicKeyInput) + return ok && _this.Equals(typed) +} + +func Type_ValidatePublicKeyInput_() _dafny.TypeDescriptor { + return type_ValidatePublicKeyInput_{} +} + +type type_ValidatePublicKeyInput_ struct { +} + +func (_this type_ValidatePublicKeyInput_) Default() interface{} { + return Companion_ValidatePublicKeyInput_.Default() +} + +func (_this type_ValidatePublicKeyInput_) String() string { + return "AwsCryptographyPrimitivesTypes.ValidatePublicKeyInput" +} +func (_this ValidatePublicKeyInput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = ValidatePublicKeyInput{} + +// End of datatype ValidatePublicKeyInput + +// Definition of datatype ValidatePublicKeyOutput +type ValidatePublicKeyOutput struct { + Data_ValidatePublicKeyOutput_ +} + +func (_this ValidatePublicKeyOutput) Get_() Data_ValidatePublicKeyOutput_ { + return _this.Data_ValidatePublicKeyOutput_ +} + +type Data_ValidatePublicKeyOutput_ interface { + isValidatePublicKeyOutput() +} + +type CompanionStruct_ValidatePublicKeyOutput_ struct { +} + +var Companion_ValidatePublicKeyOutput_ = CompanionStruct_ValidatePublicKeyOutput_{} + +type ValidatePublicKeyOutput_ValidatePublicKeyOutput struct { + Success bool +} + +func (ValidatePublicKeyOutput_ValidatePublicKeyOutput) isValidatePublicKeyOutput() {} + +func (CompanionStruct_ValidatePublicKeyOutput_) Create_ValidatePublicKeyOutput_(Success bool) ValidatePublicKeyOutput { + return ValidatePublicKeyOutput{ValidatePublicKeyOutput_ValidatePublicKeyOutput{Success}} +} + +func (_this ValidatePublicKeyOutput) Is_ValidatePublicKeyOutput() bool { + _, ok := _this.Get_().(ValidatePublicKeyOutput_ValidatePublicKeyOutput) + return ok +} + +func (CompanionStruct_ValidatePublicKeyOutput_) Default() ValidatePublicKeyOutput { + return Companion_ValidatePublicKeyOutput_.Create_ValidatePublicKeyOutput_(false) +} + +func (_this ValidatePublicKeyOutput) Dtor_success() bool { + return _this.Get_().(ValidatePublicKeyOutput_ValidatePublicKeyOutput).Success +} + +func (_this ValidatePublicKeyOutput) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case ValidatePublicKeyOutput_ValidatePublicKeyOutput: + { + return "AwsCryptographyPrimitivesTypes.ValidatePublicKeyOutput.ValidatePublicKeyOutput" + "(" + _dafny.String(data.Success) + ")" + } + default: + { + return "" + } + } +} + +func (_this ValidatePublicKeyOutput) Equals(other ValidatePublicKeyOutput) bool { + switch data1 := _this.Get_().(type) { + case ValidatePublicKeyOutput_ValidatePublicKeyOutput: + { + data2, ok := other.Get_().(ValidatePublicKeyOutput_ValidatePublicKeyOutput) + return ok && data1.Success == data2.Success + } + default: + { + return false // unexpected + } + } +} + +func (_this ValidatePublicKeyOutput) EqualsGeneric(other interface{}) bool { + typed, ok := other.(ValidatePublicKeyOutput) + return ok && _this.Equals(typed) +} + +func Type_ValidatePublicKeyOutput_() _dafny.TypeDescriptor { + return type_ValidatePublicKeyOutput_{} +} + +type type_ValidatePublicKeyOutput_ struct { +} + +func (_this type_ValidatePublicKeyOutput_) Default() interface{} { + return Companion_ValidatePublicKeyOutput_.Default() +} + +func (_this type_ValidatePublicKeyOutput_) String() string { + return "AwsCryptographyPrimitivesTypes.ValidatePublicKeyOutput" +} +func (_this ValidatePublicKeyOutput) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = ValidatePublicKeyOutput{} + +// End of datatype ValidatePublicKeyOutput + +// Definition of datatype Error +type Error struct { + Data_Error_ +} + +func (_this Error) Get_() Data_Error_ { + return _this.Data_Error_ +} + +type Data_Error_ interface { + isError() +} + +type CompanionStruct_Error_ struct { +} + +var Companion_Error_ = CompanionStruct_Error_{} + +type Error_AwsCryptographicPrimitivesError struct { + Message _dafny.Sequence +} + +func (Error_AwsCryptographicPrimitivesError) isError() {} + +func (CompanionStruct_Error_) Create_AwsCryptographicPrimitivesError_(Message _dafny.Sequence) Error { + return Error{Error_AwsCryptographicPrimitivesError{Message}} +} + +func (_this Error) Is_AwsCryptographicPrimitivesError() bool { + _, ok := _this.Get_().(Error_AwsCryptographicPrimitivesError) + return ok +} + +type Error_CollectionOfErrors struct { + List _dafny.Sequence + Message _dafny.Sequence +} + +func (Error_CollectionOfErrors) isError() {} + +func (CompanionStruct_Error_) Create_CollectionOfErrors_(List _dafny.Sequence, Message _dafny.Sequence) Error { + return Error{Error_CollectionOfErrors{List, Message}} +} + +func (_this Error) Is_CollectionOfErrors() bool { + _, ok := _this.Get_().(Error_CollectionOfErrors) + return ok +} + +type Error_Opaque struct { + Obj interface{} +} + +func (Error_Opaque) isError() {} + +func (CompanionStruct_Error_) Create_Opaque_(Obj interface{}) Error { + return Error{Error_Opaque{Obj}} +} + +func (_this Error) Is_Opaque() bool { + _, ok := _this.Get_().(Error_Opaque) + return ok +} + +type Error_OpaqueWithText struct { + Obj interface{} + ObjMessage _dafny.Sequence +} + +func (Error_OpaqueWithText) isError() {} + +func (CompanionStruct_Error_) Create_OpaqueWithText_(Obj interface{}, ObjMessage _dafny.Sequence) Error { + return Error{Error_OpaqueWithText{Obj, ObjMessage}} +} + +func (_this Error) Is_OpaqueWithText() bool { + _, ok := _this.Get_().(Error_OpaqueWithText) + return ok +} + +func (CompanionStruct_Error_) Default() Error { + return Companion_Error_.Create_AwsCryptographicPrimitivesError_(_dafny.EmptySeq.SetString()) +} + +func (_this Error) Dtor_message() _dafny.Sequence { + switch data := _this.Get_().(type) { + case Error_AwsCryptographicPrimitivesError: + return data.Message + default: + return data.(Error_CollectionOfErrors).Message + } +} + +func (_this Error) Dtor_list() _dafny.Sequence { + return _this.Get_().(Error_CollectionOfErrors).List +} + +func (_this Error) Dtor_obj() interface{} { + switch data := _this.Get_().(type) { + case Error_Opaque: + return data.Obj + default: + return data.(Error_OpaqueWithText).Obj + } +} + +func (_this Error) Dtor_objMessage() _dafny.Sequence { + return _this.Get_().(Error_OpaqueWithText).ObjMessage +} + +func (_this Error) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case Error_AwsCryptographicPrimitivesError: + { + return "AwsCryptographyPrimitivesTypes.Error.AwsCryptographicPrimitivesError" + "(" + _dafny.String(data.Message) + ")" + } + case Error_CollectionOfErrors: + { + return "AwsCryptographyPrimitivesTypes.Error.CollectionOfErrors" + "(" + _dafny.String(data.List) + ", " + _dafny.String(data.Message) + ")" + } + case Error_Opaque: + { + return "AwsCryptographyPrimitivesTypes.Error.Opaque" + "(" + _dafny.String(data.Obj) + ")" + } + case Error_OpaqueWithText: + { + return "AwsCryptographyPrimitivesTypes.Error.OpaqueWithText" + "(" + _dafny.String(data.Obj) + ", " + _dafny.String(data.ObjMessage) + ")" + } + default: + { + return "" + } + } +} + +func (_this Error) Equals(other Error) bool { + switch data1 := _this.Get_().(type) { + case Error_AwsCryptographicPrimitivesError: + { + data2, ok := other.Get_().(Error_AwsCryptographicPrimitivesError) + return ok && data1.Message.Equals(data2.Message) + } + case Error_CollectionOfErrors: + { + data2, ok := other.Get_().(Error_CollectionOfErrors) + return ok && data1.List.Equals(data2.List) && data1.Message.Equals(data2.Message) + } + case Error_Opaque: + { + data2, ok := other.Get_().(Error_Opaque) + return ok && _dafny.AreEqual(data1.Obj, data2.Obj) + } + case Error_OpaqueWithText: + { + data2, ok := other.Get_().(Error_OpaqueWithText) + return ok && _dafny.AreEqual(data1.Obj, data2.Obj) && data1.ObjMessage.Equals(data2.ObjMessage) + } + default: + { + return false // unexpected + } + } +} + +func (_this Error) EqualsGeneric(other interface{}) bool { + typed, ok := other.(Error) + return ok && _this.Equals(typed) +} + +func Type_Error_() _dafny.TypeDescriptor { + return type_Error_{} +} + +type type_Error_ struct { +} + +func (_this type_Error_) Default() interface{} { + return Companion_Error_.Default() +} + +func (_this type_Error_) String() string { + return "AwsCryptographyPrimitivesTypes.Error" +} +func (_this Error) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = Error{} + +// End of datatype Error + +// Definition of class OpaqueError +type OpaqueError struct { +} + +func New_OpaqueError_() *OpaqueError { + _this := OpaqueError{} + + return &_this +} + +type CompanionStruct_OpaqueError_ struct { +} + +var Companion_OpaqueError_ = CompanionStruct_OpaqueError_{} + +func (*OpaqueError) String() string { + return "AwsCryptographyPrimitivesTypes.OpaqueError" +} + +// End of class OpaqueError + +func Type_OpaqueError_() _dafny.TypeDescriptor { + return type_OpaqueError_{} +} + +type type_OpaqueError_ struct { +} + +func (_this type_OpaqueError_) Default() interface{} { + return Companion_Error_.Default() +} + +func (_this type_OpaqueError_) String() string { + return "AwsCryptographyPrimitivesTypes.OpaqueError" +} +func (_this *CompanionStruct_OpaqueError_) Is_(__source Error) bool { + var _6_e Error = (__source) + _ = _6_e + return ((_6_e).Is_Opaque()) || ((_6_e).Is_OpaqueWithText()) +} + +// Definition of class DummySubsetType +type DummySubsetType struct { +} + +func New_DummySubsetType_() *DummySubsetType { + _this := DummySubsetType{} + + return &_this +} + +type CompanionStruct_DummySubsetType_ struct { +} + +var Companion_DummySubsetType_ = CompanionStruct_DummySubsetType_{} + +func (*DummySubsetType) String() string { + return "AwsCryptographyPrimitivesTypes.DummySubsetType" +} +func (_this *CompanionStruct_DummySubsetType_) Witness() _dafny.Int { + return _dafny.One +} + +// End of class DummySubsetType + +func Type_DummySubsetType_() _dafny.TypeDescriptor { + return type_DummySubsetType_{} +} + +type type_DummySubsetType_ struct { +} + +func (_this type_DummySubsetType_) Default() interface{} { + return Companion_DummySubsetType_.Witness() +} + +func (_this type_DummySubsetType_) String() string { + return "AwsCryptographyPrimitivesTypes.DummySubsetType" +} +func (_this *CompanionStruct_DummySubsetType_) Is_(__source _dafny.Int) bool { + var _7_x _dafny.Int = (__source) + _ = _7_x + return Companion_Default___.IsDummySubsetType(_7_x) +} diff --git a/customer-preview/primitives/Digest/Digest.go b/customer-preview/primitives/Digest/Digest.go new file mode 100644 index 000000000..2842b655d --- /dev/null +++ b/customer-preview/primitives/Digest/Digest.go @@ -0,0 +1,181 @@ +// Package Digest +// Dafny module Digest compiled into Go + +package Digest + +import ( + os "os" + + m_AwsCryptographyPrimitivesTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesTypes" + m_ExternDigest "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/ExternDigest" + m_Random "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Random" + m_Actions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Actions" + m_Base64 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64" + m_Base64Lemmas "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64Lemmas" + m_BoundedInts "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/BoundedInts" + m_DivInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternals" + m_DivInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternalsNonlinear" + m_DivMod "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivMod" + m_FileIO "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FileIO" + m_FloatCompare "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FloatCompare" + m_Functions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Functions" + m_GeneralInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GeneralInternals" + m_GetOpt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GetOpt" + m_HexStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/HexStrings" + m_Logarithm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Logarithm" + m__Math "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Math_" + m_ModInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternals" + m_ModInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternalsNonlinear" + m_Mul "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Mul" + m_MulInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternals" + m_MulInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternalsNonlinear" + m_Power "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Power" + m_Relations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Relations" + m_Seq "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq" + m_Seq_MergeSort "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq_MergeSort" + m_Sorting "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Sorting" + m_StandardLibrary "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary" + m_StandardLibraryInterop "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibraryInterop" + m_StandardLibrary_Sequence "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_Sequence" + m_StandardLibrary_String "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_String" + m_StandardLibrary_UInt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_UInt" + m_Streams "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Streams" + m_UnicodeStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UnicodeStrings" + m__Unicode "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Unicode_" + m_Utf16EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf16EncodingForm" + m_Utf8EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf8EncodingForm" + m_Wrappers "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers" + m__System "github.com/dafny-lang/DafnyRuntimeGo/v4/System_" + _dafny "github.com/dafny-lang/DafnyRuntimeGo/v4/dafny" +) + +var _ = os.Args +var _ _dafny.Dummy__ +var _ m__System.Dummy__ +var _ m_Wrappers.Dummy__ +var _ m_Relations.Dummy__ +var _ m_Seq_MergeSort.Dummy__ +var _ m__Math.Dummy__ +var _ m_Seq.Dummy__ +var _ m_BoundedInts.Dummy__ +var _ m__Unicode.Dummy__ +var _ m_Functions.Dummy__ +var _ m_Utf8EncodingForm.Dummy__ +var _ m_Utf16EncodingForm.Dummy__ +var _ m_UnicodeStrings.Dummy__ +var _ m_FileIO.Dummy__ +var _ m_GeneralInternals.Dummy__ +var _ m_MulInternalsNonlinear.Dummy__ +var _ m_MulInternals.Dummy__ +var _ m_Mul.Dummy__ +var _ m_ModInternalsNonlinear.Dummy__ +var _ m_DivInternalsNonlinear.Dummy__ +var _ m_ModInternals.Dummy__ +var _ m_DivInternals.Dummy__ +var _ m_DivMod.Dummy__ +var _ m_Power.Dummy__ +var _ m_Logarithm.Dummy__ +var _ m_StandardLibraryInterop.Dummy__ +var _ m_StandardLibrary_UInt.Dummy__ +var _ m_StandardLibrary_Sequence.Dummy__ +var _ m_StandardLibrary_String.Dummy__ +var _ m_StandardLibrary.Dummy__ +var _ m_Streams.Dummy__ +var _ m_Sorting.Dummy__ +var _ m_HexStrings.Dummy__ +var _ m_GetOpt.Dummy__ +var _ m_FloatCompare.Dummy__ +var _ m_Base64.Dummy__ +var _ m_Base64Lemmas.Dummy__ +var _ m_Actions.Dummy__ +var _ m_AwsCryptographyPrimitivesTypes.Dummy__ +var _ m_Random.Dummy__ + +type Dummy__ struct{} + +// Definition of class Default__ +type Default__ struct { + dummy byte +} + +func New_Default___() *Default__ { + _this := Default__{} + + return &_this +} + +type CompanionStruct_Default___ struct { +} + +var Companion_Default___ = CompanionStruct_Default___{} + +func (_this *Default__) Equals(other *Default__) bool { + return _this == other +} + +func (_this *Default__) EqualsGeneric(x interface{}) bool { + other, ok := x.(*Default__) + return ok && _this.Equals(other) +} + +func (*Default__) String() string { + return "Digest.Default__" +} +func (_this *Default__) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = &Default__{} + +func (_static *CompanionStruct_Default___) Length(digestAlgorithm m_AwsCryptographyPrimitivesTypes.DigestAlgorithm) _dafny.Int { + var _source0 m_AwsCryptographyPrimitivesTypes.DigestAlgorithm = digestAlgorithm + _ = _source0 + { + if _source0.Is_SHA__512() { + return _dafny.IntOfInt64(64) + } + } + { + if _source0.Is_SHA__384() { + return _dafny.IntOfInt64(48) + } + } + { + return _dafny.IntOfInt64(32) + } +} +func (_static *CompanionStruct_Default___) Digest(input m_AwsCryptographyPrimitivesTypes.DigestInput) m_Wrappers.Result { + var res m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = res + var _let_tmp_rhs0 m_AwsCryptographyPrimitivesTypes.DigestInput = input + _ = _let_tmp_rhs0 + var _0_digestAlgorithm m_AwsCryptographyPrimitivesTypes.DigestAlgorithm = _let_tmp_rhs0.Get_().(m_AwsCryptographyPrimitivesTypes.DigestInput_DigestInput).DigestAlgorithm + _ = _0_digestAlgorithm + var _1_message _dafny.Sequence = _let_tmp_rhs0.Get_().(m_AwsCryptographyPrimitivesTypes.DigestInput_DigestInput).Message + _ = _1_message + var _2_valueOrError0 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = _2_valueOrError0 + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_ExternDigest.Digest(_0_digestAlgorithm, _1_message) + _2_valueOrError0 = _out0 + if (_2_valueOrError0).IsFailure() { + res = (_2_valueOrError0).PropagateFailure() + return res + } + var _3_value _dafny.Sequence + _ = _3_value + _3_value = (_2_valueOrError0).Extract().(_dafny.Sequence) + var _4_valueOrError1 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _4_valueOrError1 + _4_valueOrError1 = m_Wrappers.Companion_Default___.Need((_dafny.IntOfUint32((_3_value).Cardinality())).Cmp(Companion_Default___.Length(_0_digestAlgorithm)) == 0, m_AwsCryptographyPrimitivesTypes.Companion_Error_.Create_AwsCryptographicPrimitivesError_(_dafny.SeqOfString("Incorrect length digest from ExternDigest."))) + if (_4_valueOrError1).IsFailure() { + res = (_4_valueOrError1).PropagateFailure() + return res + } + res = m_Wrappers.Companion_Result_.Create_Success_(_3_value) + return res + return res +} + +// End of class Default__ diff --git a/customer-preview/primitives/ECDH/ECDH.go b/customer-preview/primitives/ECDH/ECDH.go new file mode 100644 index 000000000..36ef1b5e9 --- /dev/null +++ b/customer-preview/primitives/ECDH/ECDH.go @@ -0,0 +1,436 @@ +// Package ECDH +// Dafny module ECDH compiled into Go + +package ECDH + +import ( + os "os" + + m_AwsCryptographyPrimitivesTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesTypes" + m_Digest "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Digest" + m_HKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/HKDF" + m_KdfCtr "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/KdfCtr" + m_Random "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Random" + m_WrappedHKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHKDF" + m_WrappedHMAC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHMAC" + m_Actions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Actions" + m_Base64 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64" + m_Base64Lemmas "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64Lemmas" + m_BoundedInts "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/BoundedInts" + m_DivInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternals" + m_DivInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternalsNonlinear" + m_DivMod "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivMod" + m_FileIO "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FileIO" + m_FloatCompare "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FloatCompare" + m_Functions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Functions" + m_GeneralInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GeneralInternals" + m_GetOpt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GetOpt" + m_HexStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/HexStrings" + m_Logarithm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Logarithm" + m__Math "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Math_" + m_ModInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternals" + m_ModInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternalsNonlinear" + m_Mul "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Mul" + m_MulInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternals" + m_MulInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternalsNonlinear" + m_Power "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Power" + m_Relations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Relations" + m_Seq "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq" + m_Seq_MergeSort "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq_MergeSort" + m_Sorting "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Sorting" + m_StandardLibrary "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary" + m_StandardLibraryInterop "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibraryInterop" + m_StandardLibrary_Sequence "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_Sequence" + m_StandardLibrary_String "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_String" + m_StandardLibrary_UInt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_UInt" + m_Streams "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Streams" + m_UnicodeStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UnicodeStrings" + m__Unicode "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Unicode_" + m_Utf16EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf16EncodingForm" + m_Utf8EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf8EncodingForm" + m_Wrappers "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers" + m__System "github.com/dafny-lang/DafnyRuntimeGo/v4/System_" + _dafny "github.com/dafny-lang/DafnyRuntimeGo/v4/dafny" +) + +var _ = os.Args +var _ _dafny.Dummy__ +var _ m__System.Dummy__ +var _ m_Wrappers.Dummy__ +var _ m_Relations.Dummy__ +var _ m_Seq_MergeSort.Dummy__ +var _ m__Math.Dummy__ +var _ m_Seq.Dummy__ +var _ m_BoundedInts.Dummy__ +var _ m__Unicode.Dummy__ +var _ m_Functions.Dummy__ +var _ m_Utf8EncodingForm.Dummy__ +var _ m_Utf16EncodingForm.Dummy__ +var _ m_UnicodeStrings.Dummy__ +var _ m_FileIO.Dummy__ +var _ m_GeneralInternals.Dummy__ +var _ m_MulInternalsNonlinear.Dummy__ +var _ m_MulInternals.Dummy__ +var _ m_Mul.Dummy__ +var _ m_ModInternalsNonlinear.Dummy__ +var _ m_DivInternalsNonlinear.Dummy__ +var _ m_ModInternals.Dummy__ +var _ m_DivInternals.Dummy__ +var _ m_DivMod.Dummy__ +var _ m_Power.Dummy__ +var _ m_Logarithm.Dummy__ +var _ m_StandardLibraryInterop.Dummy__ +var _ m_StandardLibrary_UInt.Dummy__ +var _ m_StandardLibrary_Sequence.Dummy__ +var _ m_StandardLibrary_String.Dummy__ +var _ m_StandardLibrary.Dummy__ +var _ m_Streams.Dummy__ +var _ m_Sorting.Dummy__ +var _ m_HexStrings.Dummy__ +var _ m_GetOpt.Dummy__ +var _ m_FloatCompare.Dummy__ +var _ m_Base64.Dummy__ +var _ m_Base64Lemmas.Dummy__ +var _ m_Actions.Dummy__ +var _ m_AwsCryptographyPrimitivesTypes.Dummy__ +var _ m_Random.Dummy__ +var _ m_Digest.Dummy__ +var _ m_WrappedHMAC.Dummy__ +var _ m_HKDF.Dummy__ +var _ m_WrappedHKDF.Dummy__ +var _ m_KdfCtr.Dummy__ + +type Dummy__ struct{} + +// Definition of class Default__ +type Default__ struct { + dummy byte +} + +func New_Default___() *Default__ { + _this := Default__{} + + return &_this +} + +type CompanionStruct_Default___ struct { +} + +var Companion_Default___ = CompanionStruct_Default___{} + +func (_this *Default__) Equals(other *Default__) bool { + return _this == other +} + +func (_this *Default__) EqualsGeneric(x interface{}) bool { + other, ok := x.(*Default__) + return ok && _this.Equals(other) +} + +func (*Default__) String() string { + return "ECDH.Default__" +} +func (_this *Default__) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = &Default__{} + +func (_static *CompanionStruct_Default___) GenerateEccKeyPair(input m_AwsCryptographyPrimitivesTypes.GenerateECCKeyPairInput) m_Wrappers.Result { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_AwsCryptographyPrimitivesTypes.Companion_GenerateECCKeyPairOutput_.Default()) + _ = output + var _0_valueOrError0 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(Companion_EccKeyPair_.Default()) + _ = _0_valueOrError0 + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_ECDH.KeyGeneration.GenerateKeyPair((input).Dtor_eccCurve()) + _0_valueOrError0 = _out0 + if (_0_valueOrError0).IsFailure() { + output = (_0_valueOrError0).PropagateFailure() + return output + } + var _1_keyPair EccKeyPair + _ = _1_keyPair + _1_keyPair = (_0_valueOrError0).Extract().(EccKeyPair) + output = m_Wrappers.Companion_Result_.Create_Success_(m_AwsCryptographyPrimitivesTypes.Companion_GenerateECCKeyPairOutput_.Create_GenerateECCKeyPairOutput_((input).Dtor_eccCurve(), m_AwsCryptographyPrimitivesTypes.Companion_ECCPrivateKey_.Create_ECCPrivateKey_((_1_keyPair).Dtor_privateKey()), m_AwsCryptographyPrimitivesTypes.Companion_ECCPublicKey_.Create_ECCPublicKey_((_1_keyPair).Dtor_publicKey()))) + return output + return output +} +func (_static *CompanionStruct_Default___) GetPublicKeyFromPrivate(input m_AwsCryptographyPrimitivesTypes.GetPublicKeyFromPrivateKeyInput) m_Wrappers.Result { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_AwsCryptographyPrimitivesTypes.Companion_GetPublicKeyFromPrivateKeyOutput_.Default()) + _ = output + var _0_valueOrError0 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = _0_valueOrError0 + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_ECDH.ECCUtils.GetPublicKey((input).Dtor_eccCurve(), (input).Dtor_privateKey()) + _0_valueOrError0 = _out0 + if (_0_valueOrError0).IsFailure() { + output = (_0_valueOrError0).PropagateFailure() + return output + } + var _1_publicKey _dafny.Sequence + _ = _1_publicKey + _1_publicKey = (_0_valueOrError0).Extract().(_dafny.Sequence) + output = m_Wrappers.Companion_Result_.Create_Success_(m_AwsCryptographyPrimitivesTypes.Companion_GetPublicKeyFromPrivateKeyOutput_.Create_GetPublicKeyFromPrivateKeyOutput_((input).Dtor_eccCurve(), (input).Dtor_privateKey(), _1_publicKey)) + return output + return output +} +func (_static *CompanionStruct_Default___) Go__ValidatePublicKey(input m_AwsCryptographyPrimitivesTypes.ValidatePublicKeyInput) m_Wrappers.Result { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_AwsCryptographyPrimitivesTypes.Companion_ValidatePublicKeyOutput_.Default()) + _ = output + var _0_valueOrError0 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(false) + _ = _0_valueOrError0 + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_ECDH.ECCUtils.ValidatePublicKey((input).Dtor_eccCurve(), (input).Dtor_publicKey()) + _0_valueOrError0 = _out0 + if (_0_valueOrError0).IsFailure() { + output = (_0_valueOrError0).PropagateFailure() + return output + } + var _1_result bool + _ = _1_result + _1_result = (_0_valueOrError0).Extract().(bool) + output = m_Wrappers.Companion_Result_.Create_Success_(m_AwsCryptographyPrimitivesTypes.Companion_ValidatePublicKeyOutput_.Create_ValidatePublicKeyOutput_(_1_result)) + return output + return output +} +func (_static *CompanionStruct_Default___) DeriveSharedSecret(input m_AwsCryptographyPrimitivesTypes.DeriveSharedSecretInput) m_Wrappers.Result { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_AwsCryptographyPrimitivesTypes.Companion_DeriveSharedSecretOutput_.Default()) + _ = output + var _0_valueOrError0 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = _0_valueOrError0 + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_ECDH.DeriveSharedSecret.CalculateSharedSecret((input).Dtor_eccCurve(), (input).Dtor_privateKey(), (input).Dtor_publicKey()) + _0_valueOrError0 = _out0 + if (_0_valueOrError0).IsFailure() { + output = (_0_valueOrError0).PropagateFailure() + return output + } + var _1_derivedSharedSecret _dafny.Sequence + _ = _1_derivedSharedSecret + _1_derivedSharedSecret = (_0_valueOrError0).Extract().(_dafny.Sequence) + output = m_Wrappers.Companion_Result_.Create_Success_(m_AwsCryptographyPrimitivesTypes.Companion_DeriveSharedSecretOutput_.Create_DeriveSharedSecretOutput_(_1_derivedSharedSecret)) + return output + return output +} +func (_static *CompanionStruct_Default___) Go__CompressPublicKey(input m_AwsCryptographyPrimitivesTypes.CompressPublicKeyInput) m_Wrappers.Result { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_AwsCryptographyPrimitivesTypes.Companion_CompressPublicKeyOutput_.Default()) + _ = output + var _0_valueOrError0 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = _0_valueOrError0 + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_ECDH.ECCUtils.CompressPublicKey(((input).Dtor_publicKey()).Dtor_der(), (input).Dtor_eccCurve()) + _0_valueOrError0 = _out0 + if (_0_valueOrError0).IsFailure() { + output = (_0_valueOrError0).PropagateFailure() + return output + } + var _1_compressedPublicKey _dafny.Sequence + _ = _1_compressedPublicKey + _1_compressedPublicKey = (_0_valueOrError0).Extract().(_dafny.Sequence) + output = m_Wrappers.Companion_Result_.Create_Success_(m_AwsCryptographyPrimitivesTypes.Companion_CompressPublicKeyOutput_.Create_CompressPublicKeyOutput_(_1_compressedPublicKey)) + return output + return output +} +func (_static *CompanionStruct_Default___) Go__DecompressPublicKey(input m_AwsCryptographyPrimitivesTypes.DecompressPublicKeyInput) m_Wrappers.Result { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_AwsCryptographyPrimitivesTypes.Companion_DecompressPublicKeyOutput_.Default()) + _ = output + var _0_valueOrError0 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = _0_valueOrError0 + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_ECDH.ECCUtils.DecompressPublicKey((input).Dtor_compressedPublicKey(), (input).Dtor_eccCurve()) + _0_valueOrError0 = _out0 + if (_0_valueOrError0).IsFailure() { + output = (_0_valueOrError0).PropagateFailure() + return output + } + var _1_decompressedPublicKey _dafny.Sequence + _ = _1_decompressedPublicKey + _1_decompressedPublicKey = (_0_valueOrError0).Extract().(_dafny.Sequence) + output = m_Wrappers.Companion_Result_.Create_Success_(m_AwsCryptographyPrimitivesTypes.Companion_DecompressPublicKeyOutput_.Create_DecompressPublicKeyOutput_(m_AwsCryptographyPrimitivesTypes.Companion_ECCPublicKey_.Create_ECCPublicKey_(_1_decompressedPublicKey))) + return output + return output +} +func (_static *CompanionStruct_Default___) Go__ParsePublicKey(input m_AwsCryptographyPrimitivesTypes.ParsePublicKeyInput) m_Wrappers.Result { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_AwsCryptographyPrimitivesTypes.Companion_ParsePublicKeyOutput_.Default()) + _ = output + var _0_valueOrError0 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = _0_valueOrError0 + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_ECDH.ECCUtils.ParsePublicKey((input).Dtor_publicKey()) + _0_valueOrError0 = _out0 + if (_0_valueOrError0).IsFailure() { + output = (_0_valueOrError0).PropagateFailure() + return output + } + var _1_derPublicKey _dafny.Sequence + _ = _1_derPublicKey + _1_derPublicKey = (_0_valueOrError0).Extract().(_dafny.Sequence) + output = m_Wrappers.Companion_Result_.Create_Success_(m_AwsCryptographyPrimitivesTypes.Companion_ParsePublicKeyOutput_.Create_ParsePublicKeyOutput_(m_AwsCryptographyPrimitivesTypes.Companion_ECCPublicKey_.Create_ECCPublicKey_(_1_derPublicKey))) + return output + return output +} +func (_static *CompanionStruct_Default___) CreateExternEccKeyGenSuccess(output EccKeyPair) m_Wrappers.Result { + return m_Wrappers.Companion_Result_.Create_Success_(output) +} +func (_static *CompanionStruct_Default___) CreateExternEccKeyGenFailure(error_ m_AwsCryptographyPrimitivesTypes.Error) m_Wrappers.Result { + return m_Wrappers.Companion_Result_.Create_Failure_(error_) +} +func (_static *CompanionStruct_Default___) CreateExternGetPublicKeyFromPrivateSuccess(output _dafny.Sequence) m_Wrappers.Result { + return m_Wrappers.Companion_Result_.Create_Success_(output) +} +func (_static *CompanionStruct_Default___) CreateExternGetPublicKeyFromPrivateError(error_ m_AwsCryptographyPrimitivesTypes.Error) m_Wrappers.Result { + return m_Wrappers.Companion_Result_.Create_Failure_(error_) +} +func (_static *CompanionStruct_Default___) CreateExternValidatePublicKeySuccess(output bool) m_Wrappers.Result { + return m_Wrappers.Companion_Result_.Create_Success_(output) +} +func (_static *CompanionStruct_Default___) CreateExternValidatePublicKeyError(error_ m_AwsCryptographyPrimitivesTypes.Error) m_Wrappers.Result { + return m_Wrappers.Companion_Result_.Create_Failure_(error_) +} +func (_static *CompanionStruct_Default___) CreateExternDerivesharedSecretSuccess(output _dafny.Sequence) m_Wrappers.Result { + return m_Wrappers.Companion_Result_.Create_Success_(output) +} +func (_static *CompanionStruct_Default___) CreateExternDerivesharedSecretError(error_ m_AwsCryptographyPrimitivesTypes.Error) m_Wrappers.Result { + return m_Wrappers.Companion_Result_.Create_Failure_(error_) +} +func (_static *CompanionStruct_Default___) CreateExternCompressPublicKeyError(error_ m_AwsCryptographyPrimitivesTypes.Error) m_Wrappers.Result { + return m_Wrappers.Companion_Result_.Create_Failure_(error_) +} +func (_static *CompanionStruct_Default___) CreateExternCompressPublicKeySuccess(output _dafny.Sequence) m_Wrappers.Result { + return m_Wrappers.Companion_Result_.Create_Success_(output) +} +func (_static *CompanionStruct_Default___) CreateExternDecompressPublicKeyError(error_ m_AwsCryptographyPrimitivesTypes.Error) m_Wrappers.Result { + return m_Wrappers.Companion_Result_.Create_Failure_(error_) +} +func (_static *CompanionStruct_Default___) CreateExternDecompressPublicKeySuccess(output _dafny.Sequence) m_Wrappers.Result { + return m_Wrappers.Companion_Result_.Create_Success_(output) +} +func (_static *CompanionStruct_Default___) CreateExternParsePublicKeyError(error_ m_AwsCryptographyPrimitivesTypes.Error) m_Wrappers.Result { + return m_Wrappers.Companion_Result_.Create_Failure_(error_) +} +func (_static *CompanionStruct_Default___) CreateExternParsePublicKeySuccess(output _dafny.Sequence) m_Wrappers.Result { + return m_Wrappers.Companion_Result_.Create_Success_(output) +} +func (_static *CompanionStruct_Default___) CreateGetInfinityPublicKeyError(error_ m_AwsCryptographyPrimitivesTypes.Error) m_Wrappers.Result { + return m_Wrappers.Companion_Result_.Create_Failure_(error_) +} +func (_static *CompanionStruct_Default___) CreateGetInfinityPublicKeySuccess(output _dafny.Sequence) m_Wrappers.Result { + return m_Wrappers.Companion_Result_.Create_Success_(output) +} +func (_static *CompanionStruct_Default___) CreateGetOutOfBoundsPublicKeyError(error_ m_AwsCryptographyPrimitivesTypes.Error) m_Wrappers.Result { + return m_Wrappers.Companion_Result_.Create_Failure_(error_) +} +func (_static *CompanionStruct_Default___) CreateGetOutOfBoundsPublicKeySuccess(output _dafny.Sequence) m_Wrappers.Result { + return m_Wrappers.Companion_Result_.Create_Success_(output) +} + +// End of class Default__ + +// Definition of datatype EccKeyPair +type EccKeyPair struct { + Data_EccKeyPair_ +} + +func (_this EccKeyPair) Get_() Data_EccKeyPair_ { + return _this.Data_EccKeyPair_ +} + +type Data_EccKeyPair_ interface { + isEccKeyPair() +} + +type CompanionStruct_EccKeyPair_ struct { +} + +var Companion_EccKeyPair_ = CompanionStruct_EccKeyPair_{} + +type EccKeyPair_EccKeyPair struct { + PrivateKey _dafny.Sequence + PublicKey _dafny.Sequence +} + +func (EccKeyPair_EccKeyPair) isEccKeyPair() {} + +func (CompanionStruct_EccKeyPair_) Create_EccKeyPair_(PrivateKey _dafny.Sequence, PublicKey _dafny.Sequence) EccKeyPair { + return EccKeyPair{EccKeyPair_EccKeyPair{PrivateKey, PublicKey}} +} + +func (_this EccKeyPair) Is_EccKeyPair() bool { + _, ok := _this.Get_().(EccKeyPair_EccKeyPair) + return ok +} + +func (CompanionStruct_EccKeyPair_) Default() EccKeyPair { + return Companion_EccKeyPair_.Create_EccKeyPair_(_dafny.EmptySeq, _dafny.EmptySeq) +} + +func (_this EccKeyPair) Dtor_privateKey() _dafny.Sequence { + return _this.Get_().(EccKeyPair_EccKeyPair).PrivateKey +} + +func (_this EccKeyPair) Dtor_publicKey() _dafny.Sequence { + return _this.Get_().(EccKeyPair_EccKeyPair).PublicKey +} + +func (_this EccKeyPair) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case EccKeyPair_EccKeyPair: + { + return "ECDH.EccKeyPair.EccKeyPair" + "(" + _dafny.String(data.PrivateKey) + ", " + _dafny.String(data.PublicKey) + ")" + } + default: + { + return "" + } + } +} + +func (_this EccKeyPair) Equals(other EccKeyPair) bool { + switch data1 := _this.Get_().(type) { + case EccKeyPair_EccKeyPair: + { + data2, ok := other.Get_().(EccKeyPair_EccKeyPair) + return ok && data1.PrivateKey.Equals(data2.PrivateKey) && data1.PublicKey.Equals(data2.PublicKey) + } + default: + { + return false // unexpected + } + } +} + +func (_this EccKeyPair) EqualsGeneric(other interface{}) bool { + typed, ok := other.(EccKeyPair) + return ok && _this.Equals(typed) +} + +func Type_EccKeyPair_() _dafny.TypeDescriptor { + return type_EccKeyPair_{} +} + +type type_EccKeyPair_ struct { +} + +func (_this type_EccKeyPair_) Default() interface{} { + return Companion_EccKeyPair_.Default() +} + +func (_this type_EccKeyPair_) String() string { + return "ECDH.EccKeyPair" +} +func (_this EccKeyPair) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = EccKeyPair{} + +// End of datatype EccKeyPair diff --git a/customer-preview/primitives/ECDH/externs.go b/customer-preview/primitives/ECDH/externs.go new file mode 100644 index 000000000..579b2f6b2 --- /dev/null +++ b/customer-preview/primitives/ECDH/externs.go @@ -0,0 +1,394 @@ +package ECDH + +import ( + "crypto/ecdh" + "crypto/ecdsa" + "crypto/elliptic" + "crypto/rand" + "crypto/x509" + "encoding/pem" + "fmt" + + "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesTypes" + "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers" + "github.com/dafny-lang/DafnyRuntimeGo/v4/dafny" +) + +var m_ECDH struct { + KeyGeneration CompanionStruct_Default___ + ECCUtils CompanionStruct_Default___ + DeriveSharedSecret CompanionStruct_Default___ +} + +var ECCUtils = CompanionStruct_Default___{} + +func (CompanionStruct_Default___) GenerateKeyPair(curveSpec AwsCryptographyPrimitivesTypes.ECDHCurveSpec) Wrappers.Result { + var privateKey []byte + var pubKey []byte + var err error + + curve, err := getNativeEcdhCurve(curveSpec) + if err != nil { + return Wrappers.Companion_Result_.Create_Failure_(AwsCryptographyPrimitivesTypes.Companion_Error_.Create_AwsCryptographicPrimitivesError_( + dafny.SeqOfChars([]dafny.Char(err.Error())...))) + + } + + privateKey, pubKey, err = generateKeyPair(curve) + if err != nil { + return Wrappers.Companion_Result_.Create_Failure_(AwsCryptographyPrimitivesTypes.Companion_Error_.Create_AwsCryptographicPrimitivesError_( + dafny.SeqOfChars([]dafny.Char(err.Error())...))) + } + + return Wrappers.Companion_Result_.Create_Success_(Companion_EccKeyPair_.Create_EccKeyPair_(dafny.SeqOfBytes(privateKey), dafny.SeqOfBytes(pubKey))) +} + +func (CompanionStruct_Default___) CalculateSharedSecret(curveSpec AwsCryptographyPrimitivesTypes.ECDHCurveSpec, + privateKeyInput AwsCryptographyPrimitivesTypes.ECCPrivateKey, publicKeyInput AwsCryptographyPrimitivesTypes.ECCPublicKey) Wrappers.Result { + + curve, err := getNativeEcdhCurve(curveSpec) + if err != nil { + return Wrappers.Companion_Result_.Create_Failure_(AwsCryptographyPrimitivesTypes.Companion_Error_.Create_AwsCryptographicPrimitivesError_( + dafny.SeqOfChars([]dafny.Char(err.Error())...))) + + } + privateKeyPem, rest := pem.Decode(dafny.ToByteArray(privateKeyInput.Dtor_pem())) + if len(rest) > 0 { + return Wrappers.Companion_Result_.Create_Failure_(AwsCryptographyPrimitivesTypes.Companion_Error_.Create_AwsCryptographicPrimitivesError_( + dafny.SeqOfChars([]dafny.Char("Invalid PEM format")...))) + + } + + privateKeyDer, err := x509.ParsePKCS8PrivateKey(privateKeyPem.Bytes) + if err != nil { + return Wrappers.Companion_Result_.Create_Failure_(AwsCryptographyPrimitivesTypes.Companion_Error_.Create_AwsCryptographicPrimitivesError_( + dafny.SeqOfChars([]dafny.Char(err.Error())...))) + + } + + publicKeyDer, err := x509.ParsePKIXPublicKey(dafny.ToByteArray(publicKeyInput.Dtor_der())) + if err != nil { + return Wrappers.Companion_Result_.Create_Failure_(AwsCryptographyPrimitivesTypes.Companion_Error_.Create_AwsCryptographicPrimitivesError_( + dafny.SeqOfChars([]dafny.Char(err.Error())...))) + + } + + publicKeyEcdh, err := publicKeyDer.(*ecdsa.PublicKey).ECDH() + if err != nil { + return Wrappers.Companion_Result_.Create_Failure_(AwsCryptographyPrimitivesTypes.Companion_Error_.Create_AwsCryptographicPrimitivesError_( + dafny.SeqOfChars([]dafny.Char(err.Error())...))) + + } + + privateKeyEcdh, err := privateKeyDer.(*ecdsa.PrivateKey).ECDH() + if err != nil { + return Wrappers.Companion_Result_.Create_Failure_(AwsCryptographyPrimitivesTypes.Companion_Error_.Create_AwsCryptographicPrimitivesError_( + dafny.SeqOfChars([]dafny.Char(err.Error())...))) + + } + + privateKey, err := curve.NewPrivateKey(privateKeyEcdh.Bytes()) + if err != nil { + return Wrappers.Companion_Result_.Create_Failure_(AwsCryptographyPrimitivesTypes.Companion_Error_.Create_AwsCryptographicPrimitivesError_( + dafny.SeqOfChars([]dafny.Char(err.Error())...))) + + } + + publicKey, err := curve.NewPublicKey(publicKeyEcdh.Bytes()) + if err != nil { + return Wrappers.Companion_Result_.Create_Failure_(AwsCryptographyPrimitivesTypes.Companion_Error_.Create_AwsCryptographicPrimitivesError_( + dafny.SeqOfChars([]dafny.Char(err.Error())...))) + + } + + sharedSecret, err := privateKey.ECDH(publicKey) + if err != nil { + return Wrappers.Companion_Result_.Create_Failure_(AwsCryptographyPrimitivesTypes.Companion_Error_.Create_AwsCryptographicPrimitivesError_( + dafny.SeqOfChars([]dafny.Char(err.Error())...))) + + } + + return Wrappers.Companion_Result_.Create_Success_(dafny.SeqOfBytes(sharedSecret)) +} + +func (static CompanionStruct_Default___) CompressPublicKey(publicKeyInput dafny.Sequence, + curveSpec AwsCryptographyPrimitivesTypes.ECDHCurveSpec) Wrappers.Result { + // We only need this because elliptic.MarshalCompressed() doesn't return err handle and panics, so to avoid panic we pre-validate the key. + validate := static.ValidatePublicKey(curveSpec, publicKeyInput) + + if validate.IsFailure() { + return validate + } + pkixPublicKey, err := x509.ParsePKIXPublicKey(dafny.ToByteArray(publicKeyInput)) + if err != nil { + return Wrappers.Companion_Result_.Create_Failure_(AwsCryptographyPrimitivesTypes.Companion_Error_.Create_AwsCryptographicPrimitivesError_( + dafny.SeqOfChars([]dafny.Char(err.Error())...))) + } + + ecdhPublicKey := pkixPublicKey.(*ecdsa.PublicKey) + curve, err := getNativeEcdhCurve(curveSpec) + if err != nil { + return Wrappers.Companion_Result_.Create_Failure_(AwsCryptographyPrimitivesTypes.Companion_Error_.Create_AwsCryptographicPrimitivesError_( + dafny.SeqOfChars([]dafny.Char(err.Error())...))) + } + + compressedPoint := elliptic.MarshalCompressed(ecdhCurveToEllipticCurve(curve), ecdhPublicKey.X, ecdhPublicKey.Y) + return Wrappers.Companion_Result_.Create_Success_(dafny.SeqOfBytes(compressedPoint)) + +} + +func (CompanionStruct_Default___) DecompressPublicKey(publicKeyInput dafny.Sequence, + curveSpec AwsCryptographyPrimitivesTypes.ECDHCurveSpec) Wrappers.Result { + publicKeyBytes := dafny.ToByteArray(publicKeyInput) + + curve, err := getNativeEcdhCurve(curveSpec) + if err != nil { + return Wrappers.Companion_Result_.Create_Failure_(AwsCryptographyPrimitivesTypes.Companion_Error_.Create_AwsCryptographicPrimitivesError_( + dafny.SeqOfChars([]dafny.Char(err.Error())...))) + } + x, y := elliptic.UnmarshalCompressed(ecdhCurveToEllipticCurve(curve), publicKeyBytes) + ecPublicKey := ecdsa.PublicKey{Curve: ecdhCurveToEllipticCurve(curve), X: x, Y: y} + ecdhPublicKey, err := ecPublicKey.ECDH() + if err != nil { + return Wrappers.Companion_Result_.Create_Failure_(AwsCryptographyPrimitivesTypes.Companion_Error_.Create_AwsCryptographicPrimitivesError_( + dafny.SeqOfChars([]dafny.Char(err.Error())...))) + } + derivedEcdhKey, err := curve.NewPublicKey(ecdhPublicKey.Bytes()) + b, err := x509.MarshalPKIXPublicKey(derivedEcdhKey) + if err != nil { + return Wrappers.Companion_Result_.Create_Failure_(AwsCryptographyPrimitivesTypes.Companion_Error_.Create_AwsCryptographicPrimitivesError_( + dafny.SeqOfChars([]dafny.Char(err.Error())...))) + } + return Wrappers.Companion_Result_.Create_Success_(dafny.SeqOfBytes(b)) + +} + +func ecdhCurveToEllipticCurve(ecdhCurve ecdh.Curve) elliptic.Curve { + switch ecdhCurve { + case ecdh.P256(): + return elliptic.P256() + case ecdh.P384(): + return elliptic.P384() + case ecdh.P521(): + return elliptic.P521() + default: + panic("Unsupported curve") + } +} + +func (CompanionStruct_Default___) ParsePublicKey(publicKeyInput dafny.Sequence) Wrappers.Result { + publicKeyBytes := dafny.ToByteArray(publicKeyInput) + + var ecdhPublicKey *ecdh.PublicKey + pkixPublicKey, err := x509.ParsePKIXPublicKey(publicKeyBytes) + if err != nil { + return Wrappers.Companion_Result_.Create_Failure_(AwsCryptographyPrimitivesTypes.Companion_Error_.Create_AwsCryptographicPrimitivesError_( + dafny.SeqOfChars([]dafny.Char(err.Error())...))) + } + + if ecdhPublicKey, err = pkixPublicKey.(*ecdsa.PublicKey).ECDH(); err != nil { + return Wrappers.Companion_Result_.Create_Failure_(AwsCryptographyPrimitivesTypes.Companion_Error_.Create_AwsCryptographicPrimitivesError_( + dafny.SeqOfChars([]dafny.Char(err.Error())...))) + } + + encodedPublicKey, err := x509.MarshalPKIXPublicKey(ecdhPublicKey) + if err != nil { + return Wrappers.Companion_Result_.Create_Failure_(AwsCryptographyPrimitivesTypes.Companion_Error_.Create_AwsCryptographicPrimitivesError_( + dafny.SeqOfChars([]dafny.Char(err.Error())...))) + } + return Wrappers.Companion_Result_.Create_Success_(dafny.SeqOfBytes(encodedPublicKey)) + +} + +func (companion CompanionStruct_Default___) ValidatePublicKey(curveSpec AwsCryptographyPrimitivesTypes.ECDHCurveSpec, + publicKeyInput dafny.Sequence) Wrappers.Result { + parseResult := companion.ParsePublicKey(publicKeyInput) + if parseResult.IsFailure() { + return parseResult + } + + curve, err := getNativeEcdhCurve(curveSpec) + if err != nil { + return Wrappers.Companion_Result_.Create_Failure_(AwsCryptographyPrimitivesTypes.Companion_Error_.Create_AwsCryptographicPrimitivesError_( + dafny.SeqOfChars([]dafny.Char(err.Error())...))) + } + + encodedPublicKey, err := x509.ParsePKIXPublicKey(dafny.ToByteArray(parseResult.Dtor_value().(dafny.Sequence))) + if err != nil { + return Wrappers.Companion_Result_.Create_Failure_(AwsCryptographyPrimitivesTypes.Companion_Error_.Create_AwsCryptographicPrimitivesError_( + dafny.SeqOfChars([]dafny.Char(err.Error())...))) + } + + ecdhPublicKey, err := encodedPublicKey.(*ecdsa.PublicKey).ECDH() + + if _, err := curve.NewPublicKey(ecdhPublicKey.Bytes()); err != nil { + return Wrappers.Companion_Result_.Create_Failure_(AwsCryptographyPrimitivesTypes.Companion_Error_.Create_AwsCryptographicPrimitivesError_( + dafny.SeqOfChars([]dafny.Char(err.Error())...))) + } + + return Wrappers.Companion_Result_.Create_Success_(true) +} + +func (CompanionStruct_Default___) GetPublicKey(curveSpec AwsCryptographyPrimitivesTypes.ECDHCurveSpec, + privateKey AwsCryptographyPrimitivesTypes.ECCPrivateKey) Wrappers.Result { + privateKeyPem := dafny.ToByteArray(privateKey.Dtor_pem()) + privateKeyBytes, rest := pem.Decode(privateKeyPem) + if len(rest) > 0 { + return Wrappers.Companion_Result_.Create_Failure_(AwsCryptographyPrimitivesTypes.Companion_Error_.Create_AwsCryptographicPrimitivesError_( + dafny.SeqOfChars([]dafny.Char("invalid PEM format")...))) + } + curve, err := getNativeEcdhCurve(curveSpec) + if err != nil { + return Wrappers.Companion_Result_.Create_Failure_(AwsCryptographyPrimitivesTypes.Companion_Error_.Create_AwsCryptographicPrimitivesError_( + dafny.SeqOfChars([]dafny.Char(err.Error())...))) + } + + pk, err := x509.ParsePKCS8PrivateKey(privateKeyBytes.Bytes) + if err != nil { + return Wrappers.Companion_Result_.Create_Failure_(AwsCryptographyPrimitivesTypes.Companion_Error_.Create_AwsCryptographicPrimitivesError_( + dafny.SeqOfChars([]dafny.Char(err.Error())...))) + } + ecdhPk, err := pk.(*ecdsa.PrivateKey).ECDH() + if err != nil { + return Wrappers.Companion_Result_.Create_Failure_(AwsCryptographyPrimitivesTypes.Companion_Error_.Create_AwsCryptographicPrimitivesError_( + dafny.SeqOfChars([]dafny.Char(err.Error())...))) + } + newPrivateKey, err := curve.NewPrivateKey(ecdhPk.Bytes()) + if err != nil { + return Wrappers.Companion_Result_.Create_Failure_(AwsCryptographyPrimitivesTypes.Companion_Error_.Create_AwsCryptographicPrimitivesError_( + dafny.SeqOfChars([]dafny.Char(err.Error())...))) + } + + encodedPublicKey, err := x509.MarshalPKIXPublicKey(newPrivateKey.PublicKey()) + if err != nil { + return Wrappers.Companion_Result_.Create_Failure_(AwsCryptographyPrimitivesTypes.Companion_Error_.Create_AwsCryptographicPrimitivesError_( + dafny.SeqOfChars([]dafny.Char(err.Error())...))) + } + return Wrappers.Companion_Result_.Create_Success_(dafny.SeqOfBytes(encodedPublicKey)) + +} + +func generateKeyPair(curve ecdh.Curve) ([]byte, []byte, error) { + privateKey, err := curve.GenerateKey(rand.Reader) + if err != nil { + return nil, nil, err + } + publicKey := privateKey.PublicKey() + if err != nil { + return nil, nil, err + } + + encodedPrivateKey, err := x509.MarshalPKCS8PrivateKey(privateKey) + if err != nil { + return nil, nil, err + } + + if err != nil { + return nil, nil, err + } + + privateKeyPEM := &pem.Block{ + Type: "PRIVATE KEY", + Bytes: encodedPrivateKey, + } + encodedPublicKey, err := x509.MarshalPKIXPublicKey(publicKey) + if err != nil { + return nil, nil, err + } + + return pem.EncodeToMemory(privateKeyPEM), encodedPublicKey, nil +} + +func getNativeEcdhCurve(curveSpec AwsCryptographyPrimitivesTypes.ECDHCurveSpec) (ecdh.Curve, error) { + switch curveSpec { + case AwsCryptographyPrimitivesTypes.Companion_ECDHCurveSpec_.Create_ECC__NIST__P256_(): + return ecdh.P256(), nil + case AwsCryptographyPrimitivesTypes.Companion_ECDHCurveSpec_.Create_ECC__NIST__P384_(): + return ecdh.P384(), nil + case AwsCryptographyPrimitivesTypes.Companion_ECDHCurveSpec_.Create_ECC__NIST__P521_(): + return ecdh.P521(), nil + case AwsCryptographyPrimitivesTypes.Companion_ECDHCurveSpec_.Create_SM2_(): + //TODO: Fix this + return nil, fmt.Errorf("invalid curve specification: SM2 not supported") + default: + return nil, fmt.Errorf("invalid curve specification: %s not supported", curveSpec) + } +} + +// TODO: Check the key bytes in Dafny and ensure it's a valid infinity/out-of-bounds key by running it through Java / NET +func (CompanionStruct_Default___) GetInfinityPublicKey(curveSpec AwsCryptographyPrimitivesTypes.ECDHCurveSpec) Wrappers.Result { + if curveSpec.Is_SM2() { + return Wrappers.Companion_Result_.Create_Failure_(dafny.SeqOfBytes([]byte{})) + } + + if curveSpec.Is_ECC__NIST__P256() { + return Wrappers.Companion_Result_.Create_Success_(dafny.SeqOfBytes([]byte{ + 48, 25, 48, 19, 6, 7, 42, 134, 72, 206, 61, 2, 1, 6, 8, 42, 134, 72, 206, 61, + 3, 1, 7, 3, 2, 0, 0, + })) + } + + if curveSpec.Is_ECC__NIST__P384() { + return Wrappers.Companion_Result_.Create_Success_(dafny.SeqOfBytes([]byte{ + 48, 22, 48, 16, 6, 7, 42, 134, 72, 206, 61, 2, 1, 6, 5, 43, 129, 4, 0, 34, 3, + 2, 0, 0, + })) + } + + if curveSpec.Is_ECC__NIST__P521() { + return Wrappers.Companion_Result_.Create_Success_(dafny.SeqOfBytes([]byte{ + 48, 22, 48, 16, 6, 7, 42, 134, 72, 206, 61, 2, 1, 6, 5, 43, 129, 4, 0, 35, 3, + 2, 0, 0, + })) + } + + panic("Unsupported curve spec") + +} + +func (CompanionStruct_Default___) GetOutOfBoundsPublicKey(curveSpec AwsCryptographyPrimitivesTypes.ECDHCurveSpec) Wrappers.Result { + if curveSpec.Is_SM2() { + return Wrappers.Companion_Result_.Create_Failure_(dafny.SeqOfBytes([]byte{})) + } + + if curveSpec.Is_ECC__NIST__P256() { + return Wrappers.Companion_Result_.Create_Success_(dafny.SeqOfBytes([]byte{ + 48, 89, 48, 19, 6, 7, 42, 134, 72, 206, 61, 2, 1, 6, 8, 42, 134, 72, 206, 61, + 3, 1, 7, 3, 66, 0, 4, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, + })) + } + + if curveSpec.Is_ECC__NIST__P384() { + return Wrappers.Companion_Result_.Create_Success_(dafny.SeqOfBytes([]byte{ + 48, 118, 48, 16, 6, 7, 42, 134, 72, 206, 61, 2, 1, 6, 5, 43, 129, 4, 0, 34, 3, + 98, 0, 4, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, + })) + } + + if curveSpec.Is_ECC__NIST__P521() { + return Wrappers.Companion_Result_.Create_Success_(dafny.SeqOfBytes([]byte{ + 48, 129, 155, 48, 16, 6, 7, 42, 134, 72, 206, 61, 2, 1, 6, 5, 43, 129, 4, 0, + 35, 3, 129, 134, 0, 4, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, + })) + } + + panic("Unsupported curve spec") +} diff --git a/customer-preview/primitives/ExternDigest/ExternDigest.go b/customer-preview/primitives/ExternDigest/ExternDigest.go new file mode 100644 index 000000000..548da6cb4 --- /dev/null +++ b/customer-preview/primitives/ExternDigest/ExternDigest.go @@ -0,0 +1,136 @@ +// Package ExternDigest +// Dafny module ExternDigest compiled into Go + +package ExternDigest + +import ( + os "os" + + m_AwsCryptographyPrimitivesTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesTypes" + m_Random "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Random" + m_Actions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Actions" + m_Base64 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64" + m_Base64Lemmas "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64Lemmas" + m_BoundedInts "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/BoundedInts" + m_DivInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternals" + m_DivInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternalsNonlinear" + m_DivMod "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivMod" + m_FileIO "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FileIO" + m_FloatCompare "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FloatCompare" + m_Functions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Functions" + m_GeneralInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GeneralInternals" + m_GetOpt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GetOpt" + m_HexStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/HexStrings" + m_Logarithm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Logarithm" + m__Math "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Math_" + m_ModInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternals" + m_ModInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternalsNonlinear" + m_Mul "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Mul" + m_MulInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternals" + m_MulInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternalsNonlinear" + m_Power "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Power" + m_Relations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Relations" + m_Seq "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq" + m_Seq_MergeSort "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq_MergeSort" + m_Sorting "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Sorting" + m_StandardLibrary "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary" + m_StandardLibraryInterop "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibraryInterop" + m_StandardLibrary_Sequence "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_Sequence" + m_StandardLibrary_String "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_String" + m_StandardLibrary_UInt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_UInt" + m_Streams "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Streams" + m_UnicodeStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UnicodeStrings" + m__Unicode "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Unicode_" + m_Utf16EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf16EncodingForm" + m_Utf8EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf8EncodingForm" + m_Wrappers "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers" + m__System "github.com/dafny-lang/DafnyRuntimeGo/v4/System_" + _dafny "github.com/dafny-lang/DafnyRuntimeGo/v4/dafny" +) + +var _ = os.Args +var _ _dafny.Dummy__ +var _ m__System.Dummy__ +var _ m_Wrappers.Dummy__ +var _ m_Relations.Dummy__ +var _ m_Seq_MergeSort.Dummy__ +var _ m__Math.Dummy__ +var _ m_Seq.Dummy__ +var _ m_BoundedInts.Dummy__ +var _ m__Unicode.Dummy__ +var _ m_Functions.Dummy__ +var _ m_Utf8EncodingForm.Dummy__ +var _ m_Utf16EncodingForm.Dummy__ +var _ m_UnicodeStrings.Dummy__ +var _ m_FileIO.Dummy__ +var _ m_GeneralInternals.Dummy__ +var _ m_MulInternalsNonlinear.Dummy__ +var _ m_MulInternals.Dummy__ +var _ m_Mul.Dummy__ +var _ m_ModInternalsNonlinear.Dummy__ +var _ m_DivInternalsNonlinear.Dummy__ +var _ m_ModInternals.Dummy__ +var _ m_DivInternals.Dummy__ +var _ m_DivMod.Dummy__ +var _ m_Power.Dummy__ +var _ m_Logarithm.Dummy__ +var _ m_StandardLibraryInterop.Dummy__ +var _ m_StandardLibrary_UInt.Dummy__ +var _ m_StandardLibrary_Sequence.Dummy__ +var _ m_StandardLibrary_String.Dummy__ +var _ m_StandardLibrary.Dummy__ +var _ m_Streams.Dummy__ +var _ m_Sorting.Dummy__ +var _ m_HexStrings.Dummy__ +var _ m_GetOpt.Dummy__ +var _ m_FloatCompare.Dummy__ +var _ m_Base64.Dummy__ +var _ m_Base64Lemmas.Dummy__ +var _ m_Actions.Dummy__ +var _ m_AwsCryptographyPrimitivesTypes.Dummy__ +var _ m_Random.Dummy__ + +type Dummy__ struct{} + +// Definition of class Default__ +type Default__ struct { + dummy byte +} + +func New_Default___() *Default__ { + _this := Default__{} + + return &_this +} + +type CompanionStruct_Default___ struct { +} + +var Companion_Default___ = CompanionStruct_Default___{} + +func (_this *Default__) Equals(other *Default__) bool { + return _this == other +} + +func (_this *Default__) EqualsGeneric(x interface{}) bool { + other, ok := x.(*Default__) + return ok && _this.Equals(other) +} + +func (*Default__) String() string { + return "ExternDigest.Default__" +} +func (_this *Default__) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = &Default__{} + +func (_static *CompanionStruct_Default___) CreateDigestSuccess(bytes _dafny.Sequence) m_Wrappers.Result { + return m_Wrappers.Companion_Result_.Create_Success_(bytes) +} +func (_static *CompanionStruct_Default___) CreateDigestFailure(error_ m_AwsCryptographyPrimitivesTypes.Error) m_Wrappers.Result { + return m_Wrappers.Companion_Result_.Create_Failure_(error_) +} + +// End of class Default__ diff --git a/customer-preview/primitives/ExternDigest/externs.go b/customer-preview/primitives/ExternDigest/externs.go new file mode 100644 index 000000000..749bfedf5 --- /dev/null +++ b/customer-preview/primitives/ExternDigest/externs.go @@ -0,0 +1,30 @@ +package ExternDigest + +import ( + "crypto" + "fmt" + "hash" + + "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesTypes" + "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers" + "github.com/dafny-lang/DafnyRuntimeGo/v4/dafny" +) + +func Digest(algorithm AwsCryptographyPrimitivesTypes.DigestAlgorithm, message dafny.Sequence) Wrappers.Result { + hash, _ := getNativeDigestAlgorithm(algorithm) + hash.Write(dafny.ToByteArray(message)) + return Wrappers.Companion_Result_.Create_Success_(dafny.SeqOfBytes(hash.Sum(nil))) +} + +func getNativeDigestAlgorithm(algorithm AwsCryptographyPrimitivesTypes.DigestAlgorithm) (hash.Hash, error) { + switch algorithm { + case AwsCryptographyPrimitivesTypes.Companion_DigestAlgorithm_.Create_SHA__256_(): + return crypto.SHA256.New(), nil + case AwsCryptographyPrimitivesTypes.Companion_DigestAlgorithm_.Create_SHA__384_(): + return crypto.SHA384.New(), nil + case AwsCryptographyPrimitivesTypes.Companion_DigestAlgorithm_.Create_SHA__512_(): + return crypto.SHA512.New(), nil + default: + return nil, fmt.Errorf("invalid curve specification: %s not supported", algorithm) + } +} diff --git a/customer-preview/primitives/ExternRandom/ExternRandom.go b/customer-preview/primitives/ExternRandom/ExternRandom.go new file mode 100644 index 000000000..5a42bfa4d --- /dev/null +++ b/customer-preview/primitives/ExternRandom/ExternRandom.go @@ -0,0 +1,134 @@ +// Package ExternRandom +// Dafny module ExternRandom compiled into Go + +package ExternRandom + +import ( + os "os" + + m_AwsCryptographyPrimitivesTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesTypes" + m_Actions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Actions" + m_Base64 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64" + m_Base64Lemmas "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64Lemmas" + m_BoundedInts "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/BoundedInts" + m_DivInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternals" + m_DivInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternalsNonlinear" + m_DivMod "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivMod" + m_FileIO "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FileIO" + m_FloatCompare "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FloatCompare" + m_Functions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Functions" + m_GeneralInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GeneralInternals" + m_GetOpt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GetOpt" + m_HexStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/HexStrings" + m_Logarithm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Logarithm" + m__Math "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Math_" + m_ModInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternals" + m_ModInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternalsNonlinear" + m_Mul "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Mul" + m_MulInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternals" + m_MulInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternalsNonlinear" + m_Power "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Power" + m_Relations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Relations" + m_Seq "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq" + m_Seq_MergeSort "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq_MergeSort" + m_Sorting "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Sorting" + m_StandardLibrary "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary" + m_StandardLibraryInterop "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibraryInterop" + m_StandardLibrary_Sequence "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_Sequence" + m_StandardLibrary_String "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_String" + m_StandardLibrary_UInt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_UInt" + m_Streams "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Streams" + m_UnicodeStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UnicodeStrings" + m__Unicode "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Unicode_" + m_Utf16EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf16EncodingForm" + m_Utf8EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf8EncodingForm" + m_Wrappers "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers" + m__System "github.com/dafny-lang/DafnyRuntimeGo/v4/System_" + _dafny "github.com/dafny-lang/DafnyRuntimeGo/v4/dafny" +) + +var _ = os.Args +var _ _dafny.Dummy__ +var _ m__System.Dummy__ +var _ m_Wrappers.Dummy__ +var _ m_Relations.Dummy__ +var _ m_Seq_MergeSort.Dummy__ +var _ m__Math.Dummy__ +var _ m_Seq.Dummy__ +var _ m_BoundedInts.Dummy__ +var _ m__Unicode.Dummy__ +var _ m_Functions.Dummy__ +var _ m_Utf8EncodingForm.Dummy__ +var _ m_Utf16EncodingForm.Dummy__ +var _ m_UnicodeStrings.Dummy__ +var _ m_FileIO.Dummy__ +var _ m_GeneralInternals.Dummy__ +var _ m_MulInternalsNonlinear.Dummy__ +var _ m_MulInternals.Dummy__ +var _ m_Mul.Dummy__ +var _ m_ModInternalsNonlinear.Dummy__ +var _ m_DivInternalsNonlinear.Dummy__ +var _ m_ModInternals.Dummy__ +var _ m_DivInternals.Dummy__ +var _ m_DivMod.Dummy__ +var _ m_Power.Dummy__ +var _ m_Logarithm.Dummy__ +var _ m_StandardLibraryInterop.Dummy__ +var _ m_StandardLibrary_UInt.Dummy__ +var _ m_StandardLibrary_Sequence.Dummy__ +var _ m_StandardLibrary_String.Dummy__ +var _ m_StandardLibrary.Dummy__ +var _ m_Streams.Dummy__ +var _ m_Sorting.Dummy__ +var _ m_HexStrings.Dummy__ +var _ m_GetOpt.Dummy__ +var _ m_FloatCompare.Dummy__ +var _ m_Base64.Dummy__ +var _ m_Base64Lemmas.Dummy__ +var _ m_Actions.Dummy__ +var _ m_AwsCryptographyPrimitivesTypes.Dummy__ + +type Dummy__ struct{} + +// Definition of class Default__ +type Default__ struct { + dummy byte +} + +func New_Default___() *Default__ { + _this := Default__{} + + return &_this +} + +type CompanionStruct_Default___ struct { +} + +var Companion_Default___ = CompanionStruct_Default___{} + +func (_this *Default__) Equals(other *Default__) bool { + return _this == other +} + +func (_this *Default__) EqualsGeneric(x interface{}) bool { + other, ok := x.(*Default__) + return ok && _this.Equals(other) +} + +func (*Default__) String() string { + return "ExternRandom.Default__" +} +func (_this *Default__) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = &Default__{} + +func (_static *CompanionStruct_Default___) CreateGenerateBytesSuccess(bytes _dafny.Sequence) m_Wrappers.Result { + return m_Wrappers.Companion_Result_.Create_Success_(bytes) +} +func (_static *CompanionStruct_Default___) CreateGenerateBytesFailure(error_ m_AwsCryptographyPrimitivesTypes.Error) m_Wrappers.Result { + return m_Wrappers.Companion_Result_.Create_Failure_(error_) +} + +// End of class Default__ diff --git a/customer-preview/primitives/ExternRandom/externs.go b/customer-preview/primitives/ExternRandom/externs.go new file mode 100644 index 000000000..6b27ed968 --- /dev/null +++ b/customer-preview/primitives/ExternRandom/externs.go @@ -0,0 +1,23 @@ +package ExternRandom + +import ( + "crypto/rand" + "fmt" + + "github.com/dafny-lang/DafnyRuntimeGo/v4/dafny" + + "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers" +) + +func GenerateBytes(length int32) Wrappers.Result { + buffer := make([]byte, length) + n, err := rand.Read(buffer) + if err != nil { + return Wrappers.Companion_Result_.Create_Failure_(fmt.Errorf("failed to generate random bytes: %w", err)) + } + // Check if the number of bytes read is equal to the requested length + if int32(n) != length { + return Wrappers.Companion_Result_.Create_Failure_(fmt.Errorf("failed to generate random bytes: read %d bytes instead of %d", n, length)) + } + return Wrappers.Companion_Result_.Create_Success_(dafny.SeqOfBytes(buffer)) +} diff --git a/customer-preview/primitives/HKDF/HKDF.go b/customer-preview/primitives/HKDF/HKDF.go new file mode 100644 index 000000000..fd1ebb46f --- /dev/null +++ b/customer-preview/primitives/HKDF/HKDF.go @@ -0,0 +1,237 @@ +// Package HKDF +// Dafny module HKDF compiled into Go + +package HKDF + +import ( + os "os" + + m_AwsCryptographyPrimitivesTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesTypes" + m_Digest "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Digest" + m_HMAC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/HMAC" + m_Random "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Random" + m_WrappedHMAC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHMAC" + m_Actions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Actions" + m_Base64 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64" + m_Base64Lemmas "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64Lemmas" + m_BoundedInts "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/BoundedInts" + m_DivInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternals" + m_DivInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternalsNonlinear" + m_DivMod "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivMod" + m_FileIO "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FileIO" + m_FloatCompare "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FloatCompare" + m_Functions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Functions" + m_GeneralInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GeneralInternals" + m_GetOpt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GetOpt" + m_HexStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/HexStrings" + m_Logarithm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Logarithm" + m__Math "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Math_" + m_ModInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternals" + m_ModInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternalsNonlinear" + m_Mul "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Mul" + m_MulInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternals" + m_MulInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternalsNonlinear" + m_Power "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Power" + m_Relations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Relations" + m_Seq "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq" + m_Seq_MergeSort "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq_MergeSort" + m_Sorting "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Sorting" + m_StandardLibrary "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary" + m_StandardLibraryInterop "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibraryInterop" + m_StandardLibrary_Sequence "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_Sequence" + m_StandardLibrary_String "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_String" + m_StandardLibrary_UInt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_UInt" + m_Streams "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Streams" + m_UnicodeStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UnicodeStrings" + m__Unicode "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Unicode_" + m_Utf16EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf16EncodingForm" + m_Utf8EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf8EncodingForm" + m_Wrappers "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers" + m__System "github.com/dafny-lang/DafnyRuntimeGo/v4/System_" + _dafny "github.com/dafny-lang/DafnyRuntimeGo/v4/dafny" +) + +var _ = os.Args +var _ _dafny.Dummy__ +var _ m__System.Dummy__ +var _ m_Wrappers.Dummy__ +var _ m_Relations.Dummy__ +var _ m_Seq_MergeSort.Dummy__ +var _ m__Math.Dummy__ +var _ m_Seq.Dummy__ +var _ m_BoundedInts.Dummy__ +var _ m__Unicode.Dummy__ +var _ m_Functions.Dummy__ +var _ m_Utf8EncodingForm.Dummy__ +var _ m_Utf16EncodingForm.Dummy__ +var _ m_UnicodeStrings.Dummy__ +var _ m_FileIO.Dummy__ +var _ m_GeneralInternals.Dummy__ +var _ m_MulInternalsNonlinear.Dummy__ +var _ m_MulInternals.Dummy__ +var _ m_Mul.Dummy__ +var _ m_ModInternalsNonlinear.Dummy__ +var _ m_DivInternalsNonlinear.Dummy__ +var _ m_ModInternals.Dummy__ +var _ m_DivInternals.Dummy__ +var _ m_DivMod.Dummy__ +var _ m_Power.Dummy__ +var _ m_Logarithm.Dummy__ +var _ m_StandardLibraryInterop.Dummy__ +var _ m_StandardLibrary_UInt.Dummy__ +var _ m_StandardLibrary_Sequence.Dummy__ +var _ m_StandardLibrary_String.Dummy__ +var _ m_StandardLibrary.Dummy__ +var _ m_Streams.Dummy__ +var _ m_Sorting.Dummy__ +var _ m_HexStrings.Dummy__ +var _ m_GetOpt.Dummy__ +var _ m_FloatCompare.Dummy__ +var _ m_Base64.Dummy__ +var _ m_Base64Lemmas.Dummy__ +var _ m_Actions.Dummy__ +var _ m_AwsCryptographyPrimitivesTypes.Dummy__ +var _ m_Random.Dummy__ +var _ m_Digest.Dummy__ +var _ m_WrappedHMAC.Dummy__ + +type Dummy__ struct{} + +// Definition of class Default__ +type Default__ struct { + dummy byte +} + +func New_Default___() *Default__ { + _this := Default__{} + + return &_this +} + +type CompanionStruct_Default___ struct { +} + +var Companion_Default___ = CompanionStruct_Default___{} + +func (_this *Default__) Equals(other *Default__) bool { + return _this == other +} + +func (_this *Default__) EqualsGeneric(x interface{}) bool { + other, ok := x.(*Default__) + return ok && _this.Equals(other) +} + +func (*Default__) String() string { + return "HKDF.Default__" +} +func (_this *Default__) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = &Default__{} + +func (_static *CompanionStruct_Default___) Extract(hmac *m_HMAC.HMac, salt _dafny.Sequence, ikm _dafny.Sequence) _dafny.Sequence { + var prk _dafny.Sequence = _dafny.EmptySeq + _ = prk + (hmac).Init(salt) + (hmac).BlockUpdate(ikm) + var _out0 _dafny.Sequence + _ = _out0 + _out0 = (hmac).GetResult() + prk = _out0 + prk = prk + return prk + return prk +} +func (_static *CompanionStruct_Default___) Expand(hmac *m_HMAC.HMac, prk _dafny.Sequence, info _dafny.Sequence, expectedLength _dafny.Int, digest m_AwsCryptographyPrimitivesTypes.DigestAlgorithm) _dafny.Sequence { + var okm _dafny.Sequence = _dafny.EmptySeq + _ = okm + var _0_hashLength _dafny.Int + _ = _0_hashLength + _0_hashLength = m_Digest.Companion_Default___.Length(digest) + var _1_n _dafny.Int + _ = _1_n + _1_n = (((_0_hashLength).Plus(expectedLength)).Minus(_dafny.One)).DivBy(_0_hashLength) + (hmac).Init(prk) + var _2_t__prev _dafny.Sequence + _ = _2_t__prev + _2_t__prev = _dafny.SeqOf() + var _3_t__n _dafny.Sequence + _ = _3_t__n + _3_t__n = _2_t__prev + var _4_i _dafny.Int + _ = _4_i + _4_i = _dafny.One + for (_4_i).Cmp(_1_n) <= 0 { + (hmac).BlockUpdate(_2_t__prev) + (hmac).BlockUpdate(info) + (hmac).BlockUpdate(_dafny.SeqOf((_4_i).Uint8())) + var _out0 _dafny.Sequence + _ = _out0 + _out0 = (hmac).GetResult() + _2_t__prev = _out0 + _3_t__n = _dafny.Companion_Sequence_.Concatenate(_3_t__n, _2_t__prev) + _4_i = (_4_i).Plus(_dafny.One) + } + okm = _3_t__n + if (expectedLength).Cmp(_dafny.IntOfUint32((okm).Cardinality())) < 0 { + okm = (okm).Take((expectedLength).Uint32()) + } + return okm +} +func (_static *CompanionStruct_Default___) Hkdf(digest m_AwsCryptographyPrimitivesTypes.DigestAlgorithm, salt m_Wrappers.Option, ikm _dafny.Sequence, info _dafny.Sequence, L _dafny.Int) _dafny.Sequence { + var okm _dafny.Sequence = _dafny.EmptySeq + _ = okm + if (L).Sign() == 0 { + okm = _dafny.SeqOf() + return okm + } + var _0_valueOrError0 m_Wrappers.Result = m_Wrappers.Result{} + _ = _0_valueOrError0 + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_HMAC.Companion_HMac_.Build(digest) + _0_valueOrError0 = _out0 + if !(!((_0_valueOrError0).IsFailure())) { + panic("src/HKDF/HKDF.dfy(222,16): " + (_0_valueOrError0).String()) + } + var _1_hmac *m_HMAC.HMac + _ = _1_hmac + _1_hmac = (_0_valueOrError0).Extract().(*m_HMAC.HMac) + var _2_hashLength _dafny.Int + _ = _2_hashLength + _2_hashLength = m_Digest.Companion_Default___.Length(digest) + var _3_nonEmptySalt _dafny.Sequence = _dafny.EmptySeq + _ = _3_nonEmptySalt + var _source0 m_Wrappers.Option = salt + _ = _source0 + { + { + if _source0.Is_None() { + _3_nonEmptySalt = m_StandardLibrary.Companion_Default___.Fill(uint8(0), _2_hashLength) + goto Lmatch0 + } + } + { + var _4_s _dafny.Sequence = _source0.Get_().(m_Wrappers.Option_Some).Value.(_dafny.Sequence) + _ = _4_s + _3_nonEmptySalt = _4_s + } + goto Lmatch0 + } +Lmatch0: + var _5_prk _dafny.Sequence + _ = _5_prk + var _out1 _dafny.Sequence + _ = _out1 + _out1 = Companion_Default___.Extract(_1_hmac, _3_nonEmptySalt, ikm) + _5_prk = _out1 + var _out2 _dafny.Sequence + _ = _out2 + _out2 = Companion_Default___.Expand(_1_hmac, _5_prk, info, L, digest) + okm = _out2 + return okm +} + +// End of class Default__ diff --git a/customer-preview/primitives/HMAC/HMAC.go b/customer-preview/primitives/HMAC/HMAC.go new file mode 100644 index 000000000..036c996fc --- /dev/null +++ b/customer-preview/primitives/HMAC/HMAC.go @@ -0,0 +1,144 @@ +// Package HMAC +// Dafny module HMAC compiled into Go + +package HMAC + +import ( + os "os" + + m_AwsCryptographyPrimitivesTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesTypes" + m_Digest "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Digest" + m_Random "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Random" + m_Actions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Actions" + m_Base64 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64" + m_Base64Lemmas "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64Lemmas" + m_BoundedInts "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/BoundedInts" + m_DivInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternals" + m_DivInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternalsNonlinear" + m_DivMod "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivMod" + m_FileIO "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FileIO" + m_FloatCompare "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FloatCompare" + m_Functions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Functions" + m_GeneralInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GeneralInternals" + m_GetOpt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GetOpt" + m_HexStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/HexStrings" + m_Logarithm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Logarithm" + m__Math "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Math_" + m_ModInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternals" + m_ModInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternalsNonlinear" + m_Mul "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Mul" + m_MulInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternals" + m_MulInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternalsNonlinear" + m_Power "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Power" + m_Relations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Relations" + m_Seq "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq" + m_Seq_MergeSort "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq_MergeSort" + m_Sorting "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Sorting" + m_StandardLibrary "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary" + m_StandardLibraryInterop "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibraryInterop" + m_StandardLibrary_Sequence "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_Sequence" + m_StandardLibrary_String "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_String" + m_StandardLibrary_UInt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_UInt" + m_Streams "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Streams" + m_UnicodeStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UnicodeStrings" + m__Unicode "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Unicode_" + m_Utf16EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf16EncodingForm" + m_Utf8EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf8EncodingForm" + m_Wrappers "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers" + m__System "github.com/dafny-lang/DafnyRuntimeGo/v4/System_" + _dafny "github.com/dafny-lang/DafnyRuntimeGo/v4/dafny" +) + +var _ = os.Args +var _ _dafny.Dummy__ +var _ m__System.Dummy__ +var _ m_Wrappers.Dummy__ +var _ m_Relations.Dummy__ +var _ m_Seq_MergeSort.Dummy__ +var _ m__Math.Dummy__ +var _ m_Seq.Dummy__ +var _ m_BoundedInts.Dummy__ +var _ m__Unicode.Dummy__ +var _ m_Functions.Dummy__ +var _ m_Utf8EncodingForm.Dummy__ +var _ m_Utf16EncodingForm.Dummy__ +var _ m_UnicodeStrings.Dummy__ +var _ m_FileIO.Dummy__ +var _ m_GeneralInternals.Dummy__ +var _ m_MulInternalsNonlinear.Dummy__ +var _ m_MulInternals.Dummy__ +var _ m_Mul.Dummy__ +var _ m_ModInternalsNonlinear.Dummy__ +var _ m_DivInternalsNonlinear.Dummy__ +var _ m_ModInternals.Dummy__ +var _ m_DivInternals.Dummy__ +var _ m_DivMod.Dummy__ +var _ m_Power.Dummy__ +var _ m_Logarithm.Dummy__ +var _ m_StandardLibraryInterop.Dummy__ +var _ m_StandardLibrary_UInt.Dummy__ +var _ m_StandardLibrary_Sequence.Dummy__ +var _ m_StandardLibrary_String.Dummy__ +var _ m_StandardLibrary.Dummy__ +var _ m_Streams.Dummy__ +var _ m_Sorting.Dummy__ +var _ m_HexStrings.Dummy__ +var _ m_GetOpt.Dummy__ +var _ m_FloatCompare.Dummy__ +var _ m_Base64.Dummy__ +var _ m_Base64Lemmas.Dummy__ +var _ m_Actions.Dummy__ +var _ m_AwsCryptographyPrimitivesTypes.Dummy__ +var _ m_Random.Dummy__ +var _ m_Digest.Dummy__ + +type Dummy__ struct{} + +// Definition of class Default__ +type Default__ struct { + dummy byte +} + +func New_Default___() *Default__ { + _this := Default__{} + + return &_this +} + +type CompanionStruct_Default___ struct { +} + +var Companion_Default___ = CompanionStruct_Default___{} + +func (_this *Default__) Equals(other *Default__) bool { + return _this == other +} + +func (_this *Default__) EqualsGeneric(x interface{}) bool { + other, ok := x.(*Default__) + return ok && _this.Equals(other) +} + +func (*Default__) String() string { + return "HMAC.Default__" +} +func (_this *Default__) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = &Default__{} + +func (_static *CompanionStruct_Default___) CreateHMacSuccess(hmac *HMac) m_Wrappers.Result { + return m_Wrappers.Companion_Result_.Create_Success_(hmac) +} +func (_static *CompanionStruct_Default___) CreateHMacFailure(error_ m_AwsCryptographyPrimitivesTypes.Error) m_Wrappers.Result { + return m_Wrappers.Companion_Result_.Create_Failure_(error_) +} +func (_static *CompanionStruct_Default___) CreateDigestSuccess(bytes _dafny.Sequence) m_Wrappers.Result { + return m_Wrappers.Companion_Result_.Create_Success_(bytes) +} +func (_static *CompanionStruct_Default___) CreateDigestFailure(error_ m_AwsCryptographyPrimitivesTypes.Error) m_Wrappers.Result { + return m_Wrappers.Companion_Result_.Create_Failure_(error_) +} + +// End of class Default__ diff --git a/customer-preview/primitives/HMAC/externs.go b/customer-preview/primitives/HMAC/externs.go new file mode 100644 index 000000000..000b3b474 --- /dev/null +++ b/customer-preview/primitives/HMAC/externs.go @@ -0,0 +1,67 @@ +package HMAC + +import ( + "crypto/hmac" + "crypto/sha256" + "crypto/sha512" + "hash" + + "github.com/dafny-lang/DafnyRuntimeGo/v4/dafny" + + "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesTypes" + "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers" +) + +type HMac struct { + algo func() hash.Hash + hash hash.Hash +} + +type CompanionStruct_HMac_ struct { +} + +var Companion_HMac_ = CompanionStruct_HMac_{} + +func Digest(hMacInput AwsCryptographyPrimitivesTypes.HMacInput) Wrappers.Result { + hMac := Companion_HMac_.Build(hMacInput.Dtor_digestAlgorithm()).Dtor_value().(*HMac) + hMac.Init(hMacInput.Dtor_key()) + hMac.BlockUpdate(hMacInput.Dtor_message()) + return Companion_Default___.CreateDigestSuccess(hMac.GetResult()) +} + +func (hMac *HMac) Init(key dafny.Sequence) { + keyBytes := dafny.ToByteArray(key) + hMac.hash = hmac.New(hMac.algo, keyBytes) +} + +func (hMac *HMac) BlockUpdate(message dafny.Sequence) { + _, err := hMac.hash.Write(dafny.ToByteArray(message)) + if err != nil { + panic(err) + } +} + +func (hMac *HMac) GetResult() dafny.Sequence { + res := hMac.hash.Sum(nil) + // reset the hash for future use. or maybe reinit it like rust? + hMac.hash.Reset() + return dafny.SeqOfBytes(res) +} + +func (CompanionStruct_HMac_) Build(digestAlgo AwsCryptographyPrimitivesTypes.DigestAlgorithm) Wrappers.Result { + var algo func() hash.Hash + if digestAlgo.Is_SHA__256() { + algo = sha256.New + } + if digestAlgo.Is_SHA__384() { + algo = sha512.New384 + } + if digestAlgo.Is_SHA__512() { + algo = sha512.New + } + + native := HMac{ + algo: algo, + } + return Wrappers.Companion_Result_.Create_Success_(&native) +} diff --git a/customer-preview/primitives/KdfCtr/KdfCtr.go b/customer-preview/primitives/KdfCtr/KdfCtr.go new file mode 100644 index 000000000..f6a0179cf --- /dev/null +++ b/customer-preview/primitives/KdfCtr/KdfCtr.go @@ -0,0 +1,279 @@ +// Package KdfCtr +// Dafny module KdfCtr compiled into Go + +package KdfCtr + +import ( + os "os" + + m_AwsCryptographyPrimitivesTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesTypes" + m_Digest "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Digest" + m_HKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/HKDF" + m_HMAC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/HMAC" + m_Random "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Random" + m_WrappedHKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHKDF" + m_WrappedHMAC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHMAC" + m_Actions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Actions" + m_Base64 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64" + m_Base64Lemmas "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64Lemmas" + m_BoundedInts "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/BoundedInts" + m_DivInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternals" + m_DivInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternalsNonlinear" + m_DivMod "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivMod" + m_FileIO "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FileIO" + m_FloatCompare "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FloatCompare" + m_Functions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Functions" + m_GeneralInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GeneralInternals" + m_GetOpt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GetOpt" + m_HexStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/HexStrings" + m_Logarithm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Logarithm" + m__Math "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Math_" + m_ModInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternals" + m_ModInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternalsNonlinear" + m_Mul "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Mul" + m_MulInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternals" + m_MulInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternalsNonlinear" + m_Power "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Power" + m_Relations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Relations" + m_Seq "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq" + m_Seq_MergeSort "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq_MergeSort" + m_Sorting "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Sorting" + m_StandardLibrary "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary" + m_StandardLibraryInterop "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibraryInterop" + m_StandardLibrary_Sequence "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_Sequence" + m_StandardLibrary_String "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_String" + m_StandardLibrary_UInt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_UInt" + m_Streams "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Streams" + m_UnicodeStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UnicodeStrings" + m__Unicode "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Unicode_" + m_Utf16EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf16EncodingForm" + m_Utf8EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf8EncodingForm" + m_Wrappers "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers" + m__System "github.com/dafny-lang/DafnyRuntimeGo/v4/System_" + _dafny "github.com/dafny-lang/DafnyRuntimeGo/v4/dafny" +) + +var _ = os.Args +var _ _dafny.Dummy__ +var _ m__System.Dummy__ +var _ m_Wrappers.Dummy__ +var _ m_Relations.Dummy__ +var _ m_Seq_MergeSort.Dummy__ +var _ m__Math.Dummy__ +var _ m_Seq.Dummy__ +var _ m_BoundedInts.Dummy__ +var _ m__Unicode.Dummy__ +var _ m_Functions.Dummy__ +var _ m_Utf8EncodingForm.Dummy__ +var _ m_Utf16EncodingForm.Dummy__ +var _ m_UnicodeStrings.Dummy__ +var _ m_FileIO.Dummy__ +var _ m_GeneralInternals.Dummy__ +var _ m_MulInternalsNonlinear.Dummy__ +var _ m_MulInternals.Dummy__ +var _ m_Mul.Dummy__ +var _ m_ModInternalsNonlinear.Dummy__ +var _ m_DivInternalsNonlinear.Dummy__ +var _ m_ModInternals.Dummy__ +var _ m_DivInternals.Dummy__ +var _ m_DivMod.Dummy__ +var _ m_Power.Dummy__ +var _ m_Logarithm.Dummy__ +var _ m_StandardLibraryInterop.Dummy__ +var _ m_StandardLibrary_UInt.Dummy__ +var _ m_StandardLibrary_Sequence.Dummy__ +var _ m_StandardLibrary_String.Dummy__ +var _ m_StandardLibrary.Dummy__ +var _ m_Streams.Dummy__ +var _ m_Sorting.Dummy__ +var _ m_HexStrings.Dummy__ +var _ m_GetOpt.Dummy__ +var _ m_FloatCompare.Dummy__ +var _ m_Base64.Dummy__ +var _ m_Base64Lemmas.Dummy__ +var _ m_Actions.Dummy__ +var _ m_AwsCryptographyPrimitivesTypes.Dummy__ +var _ m_Random.Dummy__ +var _ m_Digest.Dummy__ +var _ m_WrappedHMAC.Dummy__ +var _ m_HKDF.Dummy__ +var _ m_WrappedHKDF.Dummy__ + +type Dummy__ struct{} + +// Definition of class Default__ +type Default__ struct { + dummy byte +} + +func New_Default___() *Default__ { + _this := Default__{} + + return &_this +} + +type CompanionStruct_Default___ struct { +} + +var Companion_Default___ = CompanionStruct_Default___{} + +func (_this *Default__) Equals(other *Default__) bool { + return _this == other +} + +func (_this *Default__) EqualsGeneric(x interface{}) bool { + other, ok := x.(*Default__) + return ok && _this.Equals(other) +} + +func (*Default__) String() string { + return "KdfCtr.Default__" +} +func (_this *Default__) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = &Default__{} + +func (_static *CompanionStruct_Default___) KdfCounterMode(input m_AwsCryptographyPrimitivesTypes.KdfCtrInput) m_Wrappers.Result { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = output + var _0_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _0_valueOrError0 + _0_valueOrError0 = m_Wrappers.Companion_Default___.Need(((((((((input).Dtor_digestAlgorithm()).Equals(m_AwsCryptographyPrimitivesTypes.Companion_DigestAlgorithm_.Create_SHA__256_())) || (((input).Dtor_digestAlgorithm()).Equals(m_AwsCryptographyPrimitivesTypes.Companion_DigestAlgorithm_.Create_SHA__384_()))) && ((((_dafny.IntOfUint32(((input).Dtor_ikm()).Cardinality())).Cmp(_dafny.IntOfInt64(32)) == 0) || ((_dafny.IntOfUint32(((input).Dtor_ikm()).Cardinality())).Cmp(_dafny.IntOfInt64(48)) == 0)) || ((_dafny.IntOfUint32(((input).Dtor_ikm()).Cardinality())).Cmp(_dafny.IntOfInt64(66)) == 0))) && (((input).Dtor_nonce()).Is_Some())) && (((_dafny.IntOfUint32((((input).Dtor_nonce()).Dtor_value().(_dafny.Sequence)).Cardinality())).Cmp(_dafny.IntOfInt64(16)) == 0) || ((_dafny.IntOfUint32((((input).Dtor_nonce()).Dtor_value().(_dafny.Sequence)).Cardinality())).Cmp(_dafny.IntOfInt64(32)) == 0))) && ((((input).Dtor_expectedLength()) == (int32(32))) || (((input).Dtor_expectedLength()) == (int32(64))))) && ((((_dafny.IntOfInt32((input).Dtor_expectedLength())).Times(_dafny.IntOfInt64(8))).Sign() == 1) && (((_dafny.IntOfInt32((input).Dtor_expectedLength())).Times(_dafny.IntOfInt64(8))).Cmp(m_StandardLibrary_UInt.Companion_Default___.INT32__MAX__LIMIT()) < 0)), m_AwsCryptographyPrimitivesTypes.Companion_Error_.Create_AwsCryptographicPrimitivesError_(_dafny.SeqOfString("Kdf in Counter Mode input is invalid."))) + if (_0_valueOrError0).IsFailure() { + output = (_0_valueOrError0).PropagateFailure() + return output + } + var _1_ikm _dafny.Sequence + _ = _1_ikm + _1_ikm = (input).Dtor_ikm() + var _2_label__ _dafny.Sequence + _ = _2_label__ + _2_label__ = ((input).Dtor_purpose()).UnwrapOr(_dafny.SeqOf()).(_dafny.Sequence) + var _3_info _dafny.Sequence + _ = _3_info + _3_info = ((input).Dtor_nonce()).UnwrapOr(_dafny.SeqOf()).(_dafny.Sequence) + var _4_okm _dafny.Sequence + _ = _4_okm + _4_okm = _dafny.SeqOf() + var _5_internalLength uint32 + _ = _5_internalLength + _5_internalLength = (((_dafny.IntOfInt64(4)).Plus(_dafny.IntOfUint32((Companion_Default___.SEPARATION__INDICATOR()).Cardinality()))).Plus(_dafny.IntOfInt64(4))).Uint32() + var _6_valueOrError1 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _6_valueOrError1 + _6_valueOrError1 = m_Wrappers.Companion_Default___.Need((true) && ((((_dafny.IntOfUint32(_5_internalLength)).Plus(_dafny.IntOfUint32((_2_label__).Cardinality()))).Plus(_dafny.IntOfUint32((_3_info).Cardinality()))).Cmp(m_StandardLibrary_UInt.Companion_Default___.INT32__MAX__LIMIT()) < 0), m_AwsCryptographyPrimitivesTypes.Companion_Error_.Create_AwsCryptographicPrimitivesError_(_dafny.SeqOfString("Input Length exceeds INT32_MAX_LIMIT"))) + if (_6_valueOrError1).IsFailure() { + output = (_6_valueOrError1).PropagateFailure() + return output + } + var _7_lengthBits _dafny.Sequence + _ = _7_lengthBits + _7_lengthBits = m_StandardLibrary_UInt.Companion_Default___.UInt32ToSeq(uint32(((input).Dtor_expectedLength()) * (int32(8)))) + var _8_explicitInfo _dafny.Sequence + _ = _8_explicitInfo + _8_explicitInfo = _dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_2_label__, Companion_Default___.SEPARATION__INDICATOR()), _3_info), _7_lengthBits) + var _9_valueOrError2 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _9_valueOrError2 + _9_valueOrError2 = m_Wrappers.Companion_Default___.Need(((_dafny.IntOfInt64(4)).Plus(_dafny.IntOfUint32((_8_explicitInfo).Cardinality()))).Cmp(m_StandardLibrary_UInt.Companion_Default___.INT32__MAX__LIMIT()) < 0, m_AwsCryptographyPrimitivesTypes.Companion_Error_.Create_AwsCryptographicPrimitivesError_(_dafny.SeqOfString("PRF input length exceeds INT32_MAX_LIMIT."))) + if (_9_valueOrError2).IsFailure() { + output = (_9_valueOrError2).PropagateFailure() + return output + } + var _10_valueOrError3 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = _10_valueOrError3 + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = Companion_Default___.RawDerive(_1_ikm, _8_explicitInfo, (input).Dtor_expectedLength(), int32(0), (input).Dtor_digestAlgorithm()) + _10_valueOrError3 = _out0 + if (_10_valueOrError3).IsFailure() { + output = (_10_valueOrError3).PropagateFailure() + return output + } + _4_okm = (_10_valueOrError3).Extract().(_dafny.Sequence) + output = m_Wrappers.Companion_Result_.Create_Success_(_4_okm) + return output + return output +} +func (_static *CompanionStruct_Default___) RawDerive(ikm _dafny.Sequence, explicitInfo _dafny.Sequence, length int32, offset int32, digestAlgorithm m_AwsCryptographyPrimitivesTypes.DigestAlgorithm) m_Wrappers.Result { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = output + var _0_valueOrError0 m_Wrappers.Result = m_Wrappers.Result{} + _ = _0_valueOrError0 + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_HMAC.Companion_HMac_.Build(digestAlgorithm) + _0_valueOrError0 = _out0 + if (_0_valueOrError0).IsFailure() { + output = (_0_valueOrError0).PropagateFailure() + return output + } + var _1_hmac *m_HMAC.HMac + _ = _1_hmac + _1_hmac = (_0_valueOrError0).Extract().(*m_HMAC.HMac) + (_1_hmac).Init(ikm) + var _2_macLengthBytes int32 + _ = _2_macLengthBytes + _2_macLengthBytes = (m_Digest.Companion_Default___.Length(digestAlgorithm)).Int32() + var _3_iterations int32 + _ = _3_iterations + _3_iterations = _dafny.DivInt32(((length)+(_2_macLengthBytes))-(int32(1)), _2_macLengthBytes) + var _4_buffer _dafny.Sequence + _ = _4_buffer + _4_buffer = _dafny.SeqOf() + var _5_i _dafny.Sequence + _ = _5_i + _5_i = m_StandardLibrary_UInt.Companion_Default___.UInt32ToSeq(Companion_Default___.COUNTER__START__VALUE()) + var _hi0 int32 = (_3_iterations) + (int32(1)) + _ = _hi0 + for _6_iteration := int32(1); _6_iteration < _hi0; _6_iteration++ { + (_1_hmac).BlockUpdate(_5_i) + (_1_hmac).BlockUpdate(explicitInfo) + var _7_tmp _dafny.Sequence + _ = _7_tmp + var _out1 _dafny.Sequence + _ = _out1 + _out1 = (_1_hmac).GetResult() + _7_tmp = _out1 + _4_buffer = _dafny.Companion_Sequence_.Concatenate(_4_buffer, _7_tmp) + var _8_valueOrError1 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = _8_valueOrError1 + _8_valueOrError1 = Companion_Default___.Increment(_5_i) + if (_8_valueOrError1).IsFailure() { + output = (_8_valueOrError1).PropagateFailure() + return output + } + _5_i = (_8_valueOrError1).Extract().(_dafny.Sequence) + } + var _9_valueOrError2 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _9_valueOrError2 + _9_valueOrError2 = m_Wrappers.Companion_Default___.Need((_dafny.IntOfUint32((_4_buffer).Cardinality())).Cmp(_dafny.IntOfInt32(length)) >= 0, m_AwsCryptographyPrimitivesTypes.Companion_Error_.Create_AwsCryptographicPrimitivesError_(_dafny.SeqOfString("Failed to derive key of requested length"))) + if (_9_valueOrError2).IsFailure() { + output = (_9_valueOrError2).PropagateFailure() + return output + } + output = m_Wrappers.Companion_Result_.Create_Success_((_4_buffer).Take(uint32(length))) + return output + return output +} +func (_static *CompanionStruct_Default___) Increment(x _dafny.Sequence) m_Wrappers.Result { + if ((x).Select(3).(uint8)) < (uint8(255)) { + return m_Wrappers.Companion_Result_.Create_Success_(_dafny.SeqOf((x).Select(0).(uint8), (x).Select(1).(uint8), (x).Select(2).(uint8), ((x).Select(3).(uint8))+(uint8(1)))) + } else if ((x).Select(2).(uint8)) < (uint8(255)) { + return m_Wrappers.Companion_Result_.Create_Success_(_dafny.SeqOf((x).Select(0).(uint8), (x).Select(1).(uint8), ((x).Select(2).(uint8))+(uint8(1)), uint8(0))) + } else if ((x).Select(1).(uint8)) < (uint8(255)) { + return m_Wrappers.Companion_Result_.Create_Success_(_dafny.SeqOf((x).Select(0).(uint8), ((x).Select(1).(uint8))+(uint8(1)), uint8(0), uint8(0))) + } else if ((x).Select(0).(uint8)) < (uint8(255)) { + return m_Wrappers.Companion_Result_.Create_Success_(_dafny.SeqOf(((x).Select(0).(uint8))+(uint8(1)), uint8(0), uint8(0), uint8(0))) + } else { + return m_Wrappers.Companion_Result_.Create_Failure_(m_AwsCryptographyPrimitivesTypes.Companion_Error_.Create_AwsCryptographicPrimitivesError_(_dafny.SeqOfString("Unable to derive key material; may have exceeded limit."))) + } +} +func (_static *CompanionStruct_Default___) SEPARATION__INDICATOR() _dafny.Sequence { + return _dafny.SeqOf(uint8(0)) +} +func (_static *CompanionStruct_Default___) COUNTER__START__VALUE() uint32 { + return uint32(1) +} + +// End of class Default__ diff --git a/customer-preview/primitives/RSAEncryption/RSAEncryption.go b/customer-preview/primitives/RSAEncryption/RSAEncryption.go new file mode 100644 index 000000000..bbdb26e72 --- /dev/null +++ b/customer-preview/primitives/RSAEncryption/RSAEncryption.go @@ -0,0 +1,221 @@ +// Package RSAEncryption +// Dafny module RSAEncryption compiled into Go + +package RSAEncryption + +import ( + os "os" + + m_AwsCryptographyPrimitivesTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesTypes" + m_Digest "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Digest" + m_HKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/HKDF" + m_KdfCtr "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/KdfCtr" + m_Random "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Random" + m_WrappedHKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHKDF" + m_WrappedHMAC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHMAC" + m_Actions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Actions" + m_Base64 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64" + m_Base64Lemmas "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64Lemmas" + m_BoundedInts "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/BoundedInts" + m_DivInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternals" + m_DivInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternalsNonlinear" + m_DivMod "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivMod" + m_FileIO "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FileIO" + m_FloatCompare "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FloatCompare" + m_Functions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Functions" + m_GeneralInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GeneralInternals" + m_GetOpt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GetOpt" + m_HexStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/HexStrings" + m_Logarithm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Logarithm" + m__Math "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Math_" + m_ModInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternals" + m_ModInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternalsNonlinear" + m_Mul "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Mul" + m_MulInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternals" + m_MulInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternalsNonlinear" + m_Power "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Power" + m_Relations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Relations" + m_Seq "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq" + m_Seq_MergeSort "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq_MergeSort" + m_Sorting "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Sorting" + m_StandardLibrary "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary" + m_StandardLibraryInterop "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibraryInterop" + m_StandardLibrary_Sequence "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_Sequence" + m_StandardLibrary_String "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_String" + m_StandardLibrary_UInt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_UInt" + m_Streams "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Streams" + m_UnicodeStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UnicodeStrings" + m__Unicode "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Unicode_" + m_Utf16EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf16EncodingForm" + m_Utf8EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf8EncodingForm" + m_Wrappers "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers" + m__System "github.com/dafny-lang/DafnyRuntimeGo/v4/System_" + _dafny "github.com/dafny-lang/DafnyRuntimeGo/v4/dafny" +) + +var _ = os.Args +var _ _dafny.Dummy__ +var _ m__System.Dummy__ +var _ m_Wrappers.Dummy__ +var _ m_Relations.Dummy__ +var _ m_Seq_MergeSort.Dummy__ +var _ m__Math.Dummy__ +var _ m_Seq.Dummy__ +var _ m_BoundedInts.Dummy__ +var _ m__Unicode.Dummy__ +var _ m_Functions.Dummy__ +var _ m_Utf8EncodingForm.Dummy__ +var _ m_Utf16EncodingForm.Dummy__ +var _ m_UnicodeStrings.Dummy__ +var _ m_FileIO.Dummy__ +var _ m_GeneralInternals.Dummy__ +var _ m_MulInternalsNonlinear.Dummy__ +var _ m_MulInternals.Dummy__ +var _ m_Mul.Dummy__ +var _ m_ModInternalsNonlinear.Dummy__ +var _ m_DivInternalsNonlinear.Dummy__ +var _ m_ModInternals.Dummy__ +var _ m_DivInternals.Dummy__ +var _ m_DivMod.Dummy__ +var _ m_Power.Dummy__ +var _ m_Logarithm.Dummy__ +var _ m_StandardLibraryInterop.Dummy__ +var _ m_StandardLibrary_UInt.Dummy__ +var _ m_StandardLibrary_Sequence.Dummy__ +var _ m_StandardLibrary_String.Dummy__ +var _ m_StandardLibrary.Dummy__ +var _ m_Streams.Dummy__ +var _ m_Sorting.Dummy__ +var _ m_HexStrings.Dummy__ +var _ m_GetOpt.Dummy__ +var _ m_FloatCompare.Dummy__ +var _ m_Base64.Dummy__ +var _ m_Base64Lemmas.Dummy__ +var _ m_Actions.Dummy__ +var _ m_AwsCryptographyPrimitivesTypes.Dummy__ +var _ m_Random.Dummy__ +var _ m_Digest.Dummy__ +var _ m_WrappedHMAC.Dummy__ +var _ m_HKDF.Dummy__ +var _ m_WrappedHKDF.Dummy__ +var _ m_KdfCtr.Dummy__ + +type Dummy__ struct{} + +// Definition of class Default__ +type Default__ struct { + dummy byte +} + +func New_Default___() *Default__ { + _this := Default__{} + + return &_this +} + +type CompanionStruct_Default___ struct { +} + +var Companion_Default___ = CompanionStruct_Default___{} + +func (_this *Default__) Equals(other *Default__) bool { + return _this == other +} + +func (_this *Default__) EqualsGeneric(x interface{}) bool { + other, ok := x.(*Default__) + return ok && _this.Equals(other) +} + +func (*Default__) String() string { + return "RSAEncryption.Default__" +} +func (_this *Default__) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = &Default__{} + +func (_static *CompanionStruct_Default___) GenerateKeyPair(lengthBits int32) (m_AwsCryptographyPrimitivesTypes.RSAPublicKey, m_AwsCryptographyPrimitivesTypes.RSAPrivateKey) { + var publicKey m_AwsCryptographyPrimitivesTypes.RSAPublicKey = m_AwsCryptographyPrimitivesTypes.RSAPublicKey{} + _ = publicKey + var privateKey m_AwsCryptographyPrimitivesTypes.RSAPrivateKey = m_AwsCryptographyPrimitivesTypes.RSAPrivateKey{} + _ = privateKey + var _0_pemPublic _dafny.Sequence + _ = _0_pemPublic + var _1_pemPrivate _dafny.Sequence + _ = _1_pemPrivate + var _out0 _dafny.Sequence + _ = _out0 + var _out1 _dafny.Sequence + _ = _out1 + _out0, _out1 = m_RSAEncryption.RSA.GenerateKeyPairExtern(lengthBits) + _0_pemPublic = _out0 + _1_pemPrivate = _out1 + privateKey = m_AwsCryptographyPrimitivesTypes.Companion_RSAPrivateKey_.Create_RSAPrivateKey_(lengthBits, _1_pemPrivate) + publicKey = m_AwsCryptographyPrimitivesTypes.Companion_RSAPublicKey_.Create_RSAPublicKey_(lengthBits, _0_pemPublic) + return publicKey, privateKey +} +func (_static *CompanionStruct_Default___) GetRSAKeyModulusLength(publicKey _dafny.Sequence) m_Wrappers.Result { + var _0_valueOrError0 m_Wrappers.Result = m_RSAEncryption.RSA_GetRSAKeyModulusLengthExtern(publicKey) + _ = _0_valueOrError0 + if (_0_valueOrError0).IsFailure() { + return (_0_valueOrError0).PropagateFailure() + } else { + var _1_length uint32 = (_0_valueOrError0).Extract().(uint32) + _ = _1_length + var _2_valueOrError1 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need(((_dafny.IntOfInt64(81)).Cmp(_dafny.IntOfUint32(_1_length)) <= 0) && ((_dafny.IntOfUint32(_1_length)).Cmp(m_StandardLibrary_UInt.Companion_Default___.INT32__MAX__LIMIT()) < 0), m_AwsCryptographyPrimitivesTypes.Companion_Error_.Create_AwsCryptographicPrimitivesError_(_dafny.SeqOfString("Unsupported length for RSA modulus."))) + _ = _2_valueOrError1 + if (_2_valueOrError1).IsFailure() { + return (_2_valueOrError1).PropagateFailure() + } else { + return m_Wrappers.Companion_Result_.Create_Success_(int32(_1_length)) + } + } +} +func (_static *CompanionStruct_Default___) Decrypt(input m_AwsCryptographyPrimitivesTypes.RSADecryptInput) m_Wrappers.Result { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = output + var _0_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _0_valueOrError0 + _0_valueOrError0 = m_Wrappers.Companion_Default___.Need(((_dafny.IntOfUint32(((input).Dtor_privateKey()).Cardinality())).Sign() == 1) && ((_dafny.IntOfUint32(((input).Dtor_cipherText()).Cardinality())).Sign() == 1), m_AwsCryptographyPrimitivesTypes.Companion_Error_.Create_AwsCryptographicPrimitivesError_(_dafny.SeqOfString(""))) + if (_0_valueOrError0).IsFailure() { + output = (_0_valueOrError0).PropagateFailure() + return output + } + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_RSAEncryption.RSA.DecryptExtern((input).Dtor_padding(), (input).Dtor_privateKey(), (input).Dtor_cipherText()) + output = _out0 + return output +} +func (_static *CompanionStruct_Default___) Encrypt(input m_AwsCryptographyPrimitivesTypes.RSAEncryptInput) m_Wrappers.Result { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = output + var _0_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _0_valueOrError0 + _0_valueOrError0 = m_Wrappers.Companion_Default___.Need(((_dafny.IntOfUint32(((input).Dtor_publicKey()).Cardinality())).Sign() == 1) && ((_dafny.IntOfUint32(((input).Dtor_plaintext()).Cardinality())).Sign() == 1), m_AwsCryptographyPrimitivesTypes.Companion_Error_.Create_AwsCryptographicPrimitivesError_(_dafny.SeqOfString(""))) + if (_0_valueOrError0).IsFailure() { + output = (_0_valueOrError0).PropagateFailure() + return output + } + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_RSAEncryption.RSA.EncryptExtern((input).Dtor_padding(), (input).Dtor_publicKey(), (input).Dtor_plaintext()) + output = _out0 + return output +} +func (_static *CompanionStruct_Default___) CreateGetRSAKeyModulusLengthExternSuccess(output uint32) m_Wrappers.Result { + return m_Wrappers.Companion_Result_.Create_Success_(output) +} +func (_static *CompanionStruct_Default___) CreateGetRSAKeyModulusLengthExternFailure(error_ m_AwsCryptographyPrimitivesTypes.Error) m_Wrappers.Result { + return m_Wrappers.Companion_Result_.Create_Failure_(error_) +} +func (_static *CompanionStruct_Default___) CreateBytesSuccess(bytes _dafny.Sequence) m_Wrappers.Result { + return m_Wrappers.Companion_Result_.Create_Success_(bytes) +} +func (_static *CompanionStruct_Default___) CreateBytesFailure(error_ m_AwsCryptographyPrimitivesTypes.Error) m_Wrappers.Result { + return m_Wrappers.Companion_Result_.Create_Failure_(error_) +} + +// End of class Default__ diff --git a/customer-preview/primitives/RSAEncryption/externs.go b/customer-preview/primitives/RSAEncryption/externs.go new file mode 100644 index 000000000..623fb6766 --- /dev/null +++ b/customer-preview/primitives/RSAEncryption/externs.go @@ -0,0 +1,139 @@ +package RSAEncryption + +import ( + "crypto" + "crypto/rand" + "crypto/rsa" + "crypto/x509" + "encoding/pem" + "fmt" + + "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesTypes" + "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers" + "github.com/dafny-lang/DafnyRuntimeGo/v4/dafny" +) + +type m_RSAEncryption_Ghost struct { + RSA CompanionStruct_Default___ +} + +var m_RSAEncryption = m_RSAEncryption_Ghost{} + +func (CompanionStruct_Default___) GenerateKeyPairExtern(bits int32) (dafny.Sequence, dafny.Sequence) { + + privateKey, err := rsa.GenerateKey(rand.Reader, int(bits)) + if err != nil { + panic(err) + } + encodePrivateKey, err := x509.MarshalPKCS8PrivateKey(privateKey) + if err != nil { + panic(err) + } + encodePublicKey, err := x509.MarshalPKIXPublicKey(&privateKey.PublicKey) + if err != nil { + panic(err) + } + return dafny.SeqOfBytes(pem.EncodeToMemory(&pem.Block{Type: "RSA PUBLIC KEY", Bytes: encodePublicKey})), + dafny.SeqOfBytes(pem.EncodeToMemory(&pem.Block{Type: "RSA PRIVATE KEY", Bytes: encodePrivateKey})) +} + +func (m_RSAEncryption_Ghost) RSA_GetRSAKeyModulusLengthExtern(publicKeyInput dafny.Sequence) Wrappers.Result { + derPublicKey, rest := pem.Decode(dafny.ToByteArray(publicKeyInput)) + if len(rest) > 0 { + return Wrappers.Companion_Result_.Create_Failure_(AwsCryptographyPrimitivesTypes.Companion_Error_.Create_AwsCryptographicPrimitivesError_( + dafny.SeqOfChars([]dafny.Char(fmt.Errorf("failed to decode PEM: invalid bytes: %s", rest).Error())...))) + } + publicKey, err := x509.ParsePKIXPublicKey(derPublicKey.Bytes) + if err != nil { + return Wrappers.Companion_Result_.Create_Failure_(AwsCryptographyPrimitivesTypes.Companion_Error_.Create_AwsCryptographicPrimitivesError_( + dafny.SeqOfChars([]dafny.Char(err.Error())...))) + } + return Wrappers.Companion_Result_.Create_Success_(uint32(publicKey.(*rsa.PublicKey).N.BitLen())) +} + +func (CompanionStruct_Default___) DecryptExtern(paddingMode AwsCryptographyPrimitivesTypes.RSAPaddingMode, + key dafny.Sequence, cipher_text dafny.Sequence) Wrappers.Result { + derPrivateKey, rest := pem.Decode(dafny.ToByteArray(key)) + if len(rest) > 0 { + return Wrappers.Companion_Result_.Create_Failure_(AwsCryptographyPrimitivesTypes.Companion_Error_.Create_AwsCryptographicPrimitivesError_( + dafny.SeqOfChars([]dafny.Char(fmt.Errorf("failed to decode PEM: invalid bytes: %s", rest).Error())...))) + } + + privateKey, err := x509.ParsePKCS8PrivateKey(derPrivateKey.Bytes) + if err != nil { + return Wrappers.Companion_Result_.Create_Failure_(AwsCryptographyPrimitivesTypes.Companion_Error_.Create_AwsCryptographicPrimitivesError_( + dafny.SeqOfChars([]dafny.Char(err.Error())...))) + } + + if paddingMode.Is_PKCS1() { + encryptedBytes, err := rsa.DecryptPKCS1v15(rand.Reader, privateKey.(*rsa.PrivateKey), dafny.ToByteArray(cipher_text)) + if err != nil { + return Wrappers.Companion_Result_.Create_Failure_(AwsCryptographyPrimitivesTypes.Companion_Error_.Create_AwsCryptographicPrimitivesError_( + dafny.SeqOfChars([]dafny.Char(err.Error())...))) + } + return Wrappers.Companion_Result_.Create_Success_(dafny.SeqOfBytes(encryptedBytes)) + } + + mode, err := getNativeHashAlgorithm(paddingMode) + if err != nil { + return Wrappers.Companion_Result_.Create_Failure_(AwsCryptographyPrimitivesTypes.Companion_Error_.Create_AwsCryptographicPrimitivesError_( + dafny.SeqOfChars([]dafny.Char(err.Error())...))) + } + + res, err := rsa.DecryptOAEP(crypto.Hash(mode).New(), rand.Reader, privateKey.(*rsa.PrivateKey), dafny.ToByteArray(cipher_text), nil) + if err != nil { + return Wrappers.Companion_Result_.Create_Failure_(AwsCryptographyPrimitivesTypes.Companion_Error_.Create_AwsCryptographicPrimitivesError_( + dafny.SeqOfChars([]dafny.Char(err.Error())...))) + } + return Wrappers.Companion_Result_.Create_Success_(dafny.SeqOfBytes(res)) +} + +func (CompanionStruct_Default___) EncryptExtern(paddingMode AwsCryptographyPrimitivesTypes.RSAPaddingMode, + key dafny.Sequence, plainText dafny.Sequence) Wrappers.Result { + derPublicKey, rest := pem.Decode(dafny.ToByteArray(key)) + if len(rest) > 0 { + return Wrappers.Companion_Result_.Create_Failure_(AwsCryptographyPrimitivesTypes.Companion_Error_.Create_AwsCryptographicPrimitivesError_( + dafny.SeqOfChars([]dafny.Char(fmt.Errorf("failed to decode PEM: invalid bytes: %s", rest).Error())...))) + } + + publicKey, err := x509.ParsePKIXPublicKey(derPublicKey.Bytes) + if err != nil { + return Wrappers.Companion_Result_.Create_Failure_(AwsCryptographyPrimitivesTypes.Companion_Error_.Create_AwsCryptographicPrimitivesError_( + dafny.SeqOfChars([]dafny.Char(err.Error())...))) + } + if paddingMode.Is_PKCS1() { + encryptedBytes, err := rsa.EncryptPKCS1v15(rand.Reader, publicKey.(*rsa.PublicKey), dafny.ToByteArray(plainText)) + if err != nil { + return Wrappers.Companion_Result_.Create_Failure_(AwsCryptographyPrimitivesTypes.Companion_Error_.Create_AwsCryptographicPrimitivesError_( + dafny.SeqOfChars([]dafny.Char(err.Error())...))) + } + return Wrappers.Companion_Result_.Create_Success_(dafny.SeqOfBytes(encryptedBytes)) + } + + hash1, err := getNativeHashAlgorithm(paddingMode) + if err != nil { + return Wrappers.Companion_Result_.Create_Failure_(AwsCryptographyPrimitivesTypes.Companion_Error_.Create_AwsCryptographicPrimitivesError_( + dafny.SeqOfChars([]dafny.Char(err.Error())...))) + } + encryptedBytes, err := rsa.EncryptOAEP(hash1.New(), rand.Reader, publicKey.(*rsa.PublicKey), dafny.ToByteArray(plainText), nil) + if err != nil { + return Wrappers.Companion_Result_.Create_Failure_(AwsCryptographyPrimitivesTypes.Companion_Error_.Create_AwsCryptographicPrimitivesError_( + dafny.SeqOfChars([]dafny.Char(err.Error())...))) + } + return Wrappers.Companion_Result_.Create_Success_(dafny.SeqOfBytes(encryptedBytes)) +} + +func getNativeHashAlgorithm(mode AwsCryptographyPrimitivesTypes.RSAPaddingMode) (crypto.Hash, error) { + switch mode { + case AwsCryptographyPrimitivesTypes.Companion_RSAPaddingMode_.Create_OAEP__SHA1_(): + return crypto.SHA1, nil + case AwsCryptographyPrimitivesTypes.Companion_RSAPaddingMode_.Create_OAEP__SHA256_(): + return crypto.SHA256, nil + case AwsCryptographyPrimitivesTypes.Companion_RSAPaddingMode_.Create_OAEP__SHA384_(): + return crypto.SHA384, nil + case AwsCryptographyPrimitivesTypes.Companion_RSAPaddingMode_.Create_OAEP__SHA512_(): + return crypto.SHA512, nil + default: + return 0, fmt.Errorf("unsupported padding mode") + } +} diff --git a/customer-preview/primitives/Random/Random.go b/customer-preview/primitives/Random/Random.go new file mode 100644 index 000000000..4c8d4e124 --- /dev/null +++ b/customer-preview/primitives/Random/Random.go @@ -0,0 +1,156 @@ +// Package Random +// Dafny module Random compiled into Go + +package Random + +import ( + os "os" + + m_AwsCryptographyPrimitivesTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesTypes" + m_ExternRandom "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/ExternRandom" + m_Actions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Actions" + m_Base64 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64" + m_Base64Lemmas "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64Lemmas" + m_BoundedInts "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/BoundedInts" + m_DivInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternals" + m_DivInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternalsNonlinear" + m_DivMod "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivMod" + m_FileIO "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FileIO" + m_FloatCompare "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FloatCompare" + m_Functions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Functions" + m_GeneralInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GeneralInternals" + m_GetOpt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GetOpt" + m_HexStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/HexStrings" + m_Logarithm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Logarithm" + m__Math "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Math_" + m_ModInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternals" + m_ModInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternalsNonlinear" + m_Mul "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Mul" + m_MulInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternals" + m_MulInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternalsNonlinear" + m_Power "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Power" + m_Relations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Relations" + m_Seq "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq" + m_Seq_MergeSort "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq_MergeSort" + m_Sorting "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Sorting" + m_StandardLibrary "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary" + m_StandardLibraryInterop "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibraryInterop" + m_StandardLibrary_Sequence "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_Sequence" + m_StandardLibrary_String "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_String" + m_StandardLibrary_UInt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_UInt" + m_Streams "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Streams" + m_UnicodeStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UnicodeStrings" + m__Unicode "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Unicode_" + m_Utf16EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf16EncodingForm" + m_Utf8EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf8EncodingForm" + m_Wrappers "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers" + m__System "github.com/dafny-lang/DafnyRuntimeGo/v4/System_" + _dafny "github.com/dafny-lang/DafnyRuntimeGo/v4/dafny" +) + +var _ = os.Args +var _ _dafny.Dummy__ +var _ m__System.Dummy__ +var _ m_Wrappers.Dummy__ +var _ m_Relations.Dummy__ +var _ m_Seq_MergeSort.Dummy__ +var _ m__Math.Dummy__ +var _ m_Seq.Dummy__ +var _ m_BoundedInts.Dummy__ +var _ m__Unicode.Dummy__ +var _ m_Functions.Dummy__ +var _ m_Utf8EncodingForm.Dummy__ +var _ m_Utf16EncodingForm.Dummy__ +var _ m_UnicodeStrings.Dummy__ +var _ m_FileIO.Dummy__ +var _ m_GeneralInternals.Dummy__ +var _ m_MulInternalsNonlinear.Dummy__ +var _ m_MulInternals.Dummy__ +var _ m_Mul.Dummy__ +var _ m_ModInternalsNonlinear.Dummy__ +var _ m_DivInternalsNonlinear.Dummy__ +var _ m_ModInternals.Dummy__ +var _ m_DivInternals.Dummy__ +var _ m_DivMod.Dummy__ +var _ m_Power.Dummy__ +var _ m_Logarithm.Dummy__ +var _ m_StandardLibraryInterop.Dummy__ +var _ m_StandardLibrary_UInt.Dummy__ +var _ m_StandardLibrary_Sequence.Dummy__ +var _ m_StandardLibrary_String.Dummy__ +var _ m_StandardLibrary.Dummy__ +var _ m_Streams.Dummy__ +var _ m_Sorting.Dummy__ +var _ m_HexStrings.Dummy__ +var _ m_GetOpt.Dummy__ +var _ m_FloatCompare.Dummy__ +var _ m_Base64.Dummy__ +var _ m_Base64Lemmas.Dummy__ +var _ m_Actions.Dummy__ +var _ m_AwsCryptographyPrimitivesTypes.Dummy__ + +type Dummy__ struct{} + +// Definition of class Default__ +type Default__ struct { + dummy byte +} + +func New_Default___() *Default__ { + _this := Default__{} + + return &_this +} + +type CompanionStruct_Default___ struct { +} + +var Companion_Default___ = CompanionStruct_Default___{} + +func (_this *Default__) Equals(other *Default__) bool { + return _this == other +} + +func (_this *Default__) EqualsGeneric(x interface{}) bool { + other, ok := x.(*Default__) + return ok && _this.Equals(other) +} + +func (*Default__) String() string { + return "Random.Default__" +} +func (_this *Default__) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = &Default__{} + +func (_static *CompanionStruct_Default___) GenerateBytes(i int32) m_Wrappers.Result { + var res m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = res + var _0_valueOrError0 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = _0_valueOrError0 + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_ExternRandom.GenerateBytes(i) + _0_valueOrError0 = _out0 + if (_0_valueOrError0).IsFailure() { + res = (_0_valueOrError0).PropagateFailure() + return res + } + var _1_value _dafny.Sequence + _ = _1_value + _1_value = (_0_valueOrError0).Extract().(_dafny.Sequence) + var _2_valueOrError1 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _2_valueOrError1 + _2_valueOrError1 = m_Wrappers.Companion_Default___.Need((_dafny.IntOfUint32((_1_value).Cardinality())).Cmp(_dafny.IntOfInt32(i)) == 0, m_AwsCryptographyPrimitivesTypes.Companion_Error_.Create_AwsCryptographicPrimitivesError_(_dafny.SeqOfString("Incorrect length from ExternRandom."))) + if (_2_valueOrError1).IsFailure() { + res = (_2_valueOrError1).PropagateFailure() + return res + } + res = m_Wrappers.Companion_Result_.Create_Success_(_1_value) + return res + return res +} + +// End of class Default__ diff --git a/customer-preview/primitives/Signature/Signature.go b/customer-preview/primitives/Signature/Signature.go new file mode 100644 index 000000000..328124d9e --- /dev/null +++ b/customer-preview/primitives/Signature/Signature.go @@ -0,0 +1,309 @@ +// Package Signature +// Dafny module Signature compiled into Go + +package Signature + +import ( + os "os" + + m_AwsCryptographyPrimitivesTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesTypes" + m_Digest "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Digest" + m_HKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/HKDF" + m_Random "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Random" + m_WrappedHKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHKDF" + m_WrappedHMAC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHMAC" + m_Actions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Actions" + m_Base64 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64" + m_Base64Lemmas "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64Lemmas" + m_BoundedInts "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/BoundedInts" + m_DivInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternals" + m_DivInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternalsNonlinear" + m_DivMod "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivMod" + m_FileIO "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FileIO" + m_FloatCompare "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FloatCompare" + m_Functions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Functions" + m_GeneralInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GeneralInternals" + m_GetOpt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GetOpt" + m_HexStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/HexStrings" + m_Logarithm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Logarithm" + m__Math "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Math_" + m_ModInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternals" + m_ModInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternalsNonlinear" + m_Mul "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Mul" + m_MulInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternals" + m_MulInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternalsNonlinear" + m_Power "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Power" + m_Relations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Relations" + m_Seq "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq" + m_Seq_MergeSort "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq_MergeSort" + m_Sorting "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Sorting" + m_StandardLibrary "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary" + m_StandardLibraryInterop "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibraryInterop" + m_StandardLibrary_Sequence "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_Sequence" + m_StandardLibrary_String "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_String" + m_StandardLibrary_UInt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_UInt" + m_Streams "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Streams" + m_UnicodeStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UnicodeStrings" + m__Unicode "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Unicode_" + m_Utf16EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf16EncodingForm" + m_Utf8EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf8EncodingForm" + m_Wrappers "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers" + m__System "github.com/dafny-lang/DafnyRuntimeGo/v4/System_" + _dafny "github.com/dafny-lang/DafnyRuntimeGo/v4/dafny" +) + +var _ = os.Args +var _ _dafny.Dummy__ +var _ m__System.Dummy__ +var _ m_Wrappers.Dummy__ +var _ m_Relations.Dummy__ +var _ m_Seq_MergeSort.Dummy__ +var _ m__Math.Dummy__ +var _ m_Seq.Dummy__ +var _ m_BoundedInts.Dummy__ +var _ m__Unicode.Dummy__ +var _ m_Functions.Dummy__ +var _ m_Utf8EncodingForm.Dummy__ +var _ m_Utf16EncodingForm.Dummy__ +var _ m_UnicodeStrings.Dummy__ +var _ m_FileIO.Dummy__ +var _ m_GeneralInternals.Dummy__ +var _ m_MulInternalsNonlinear.Dummy__ +var _ m_MulInternals.Dummy__ +var _ m_Mul.Dummy__ +var _ m_ModInternalsNonlinear.Dummy__ +var _ m_DivInternalsNonlinear.Dummy__ +var _ m_ModInternals.Dummy__ +var _ m_DivInternals.Dummy__ +var _ m_DivMod.Dummy__ +var _ m_Power.Dummy__ +var _ m_Logarithm.Dummy__ +var _ m_StandardLibraryInterop.Dummy__ +var _ m_StandardLibrary_UInt.Dummy__ +var _ m_StandardLibrary_Sequence.Dummy__ +var _ m_StandardLibrary_String.Dummy__ +var _ m_StandardLibrary.Dummy__ +var _ m_Streams.Dummy__ +var _ m_Sorting.Dummy__ +var _ m_HexStrings.Dummy__ +var _ m_GetOpt.Dummy__ +var _ m_FloatCompare.Dummy__ +var _ m_Base64.Dummy__ +var _ m_Base64Lemmas.Dummy__ +var _ m_Actions.Dummy__ +var _ m_AwsCryptographyPrimitivesTypes.Dummy__ +var _ m_Random.Dummy__ +var _ m_Digest.Dummy__ +var _ m_WrappedHMAC.Dummy__ +var _ m_HKDF.Dummy__ +var _ m_WrappedHKDF.Dummy__ + +type Dummy__ struct{} + +// Definition of class Default__ +type Default__ struct { + dummy byte +} + +func New_Default___() *Default__ { + _this := Default__{} + + return &_this +} + +type CompanionStruct_Default___ struct { +} + +var Companion_Default___ = CompanionStruct_Default___{} + +func (_this *Default__) Equals(other *Default__) bool { + return _this == other +} + +func (_this *Default__) EqualsGeneric(x interface{}) bool { + other, ok := x.(*Default__) + return ok && _this.Equals(other) +} + +func (*Default__) String() string { + return "Signature.Default__" +} +func (_this *Default__) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = &Default__{} + +func (_static *CompanionStruct_Default___) SignatureLength(signatureAlgorithm m_AwsCryptographyPrimitivesTypes.ECDSASignatureAlgorithm) uint16 { + var _source0 m_AwsCryptographyPrimitivesTypes.ECDSASignatureAlgorithm = signatureAlgorithm + _ = _source0 + { + if _source0.Is_ECDSA__P256() { + return uint16(71) + } + } + { + return uint16(103) + } +} +func (_static *CompanionStruct_Default___) FieldSize(signatureAlgorithm m_AwsCryptographyPrimitivesTypes.ECDSASignatureAlgorithm) _dafny.Int { + var _source0 m_AwsCryptographyPrimitivesTypes.ECDSASignatureAlgorithm = signatureAlgorithm + _ = _source0 + { + if _source0.Is_ECDSA__P256() { + return _dafny.IntOfInt64(33) + } + } + { + return _dafny.IntOfInt64(49) + } +} +func (_static *CompanionStruct_Default___) KeyGen(input m_AwsCryptographyPrimitivesTypes.GenerateECDSASignatureKeyInput) m_Wrappers.Result { + var res m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(m_AwsCryptographyPrimitivesTypes.Companion_GenerateECDSASignatureKeyOutput_.Default()) + _ = res + var _0_valueOrError0 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(Companion_SignatureKeyPair_.Default()) + _ = _0_valueOrError0 + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_Signature.ECDSA.ExternKeyGen((input).Dtor_signatureAlgorithm()) + _0_valueOrError0 = _out0 + if (_0_valueOrError0).IsFailure() { + res = (_0_valueOrError0).PropagateFailure() + return res + } + var _1_sigKeyPair SignatureKeyPair + _ = _1_sigKeyPair + _1_sigKeyPair = (_0_valueOrError0).Extract().(SignatureKeyPair) + var _2_valueOrError1 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _2_valueOrError1 + _2_valueOrError1 = m_Wrappers.Companion_Default___.Need((_dafny.IntOfUint32(((_1_sigKeyPair).Dtor_verificationKey()).Cardinality())).Cmp(Companion_Default___.FieldSize((input).Dtor_signatureAlgorithm())) == 0, m_AwsCryptographyPrimitivesTypes.Companion_Error_.Create_AwsCryptographicPrimitivesError_(_dafny.SeqOfString("Incorrect verification-key length from ExternKeyGen."))) + if (_2_valueOrError1).IsFailure() { + res = (_2_valueOrError1).PropagateFailure() + return res + } + res = m_Wrappers.Companion_Result_.Create_Success_(m_AwsCryptographyPrimitivesTypes.Companion_GenerateECDSASignatureKeyOutput_.Create_GenerateECDSASignatureKeyOutput_((input).Dtor_signatureAlgorithm(), (_1_sigKeyPair).Dtor_verificationKey(), (_1_sigKeyPair).Dtor_signingKey())) + return res + return res +} +func (_static *CompanionStruct_Default___) CreateExternKeyGenSuccess(output SignatureKeyPair) m_Wrappers.Result { + return m_Wrappers.Companion_Result_.Create_Success_(output) +} +func (_static *CompanionStruct_Default___) CreateExternKeyGenFailure(error_ m_AwsCryptographyPrimitivesTypes.Error) m_Wrappers.Result { + return m_Wrappers.Companion_Result_.Create_Failure_(error_) +} +func (_static *CompanionStruct_Default___) CreateSignSuccess(bytes _dafny.Sequence) m_Wrappers.Result { + return m_Wrappers.Companion_Result_.Create_Success_(bytes) +} +func (_static *CompanionStruct_Default___) CreateSignFailure(error_ m_AwsCryptographyPrimitivesTypes.Error) m_Wrappers.Result { + return m_Wrappers.Companion_Result_.Create_Failure_(error_) +} +func (_static *CompanionStruct_Default___) CreateVerifySuccess(b bool) m_Wrappers.Result { + return m_Wrappers.Companion_Result_.Create_Success_(b) +} +func (_static *CompanionStruct_Default___) CreateVerifyFailure(error_ m_AwsCryptographyPrimitivesTypes.Error) m_Wrappers.Result { + return m_Wrappers.Companion_Result_.Create_Failure_(error_) +} + +// End of class Default__ + +// Definition of datatype SignatureKeyPair +type SignatureKeyPair struct { + Data_SignatureKeyPair_ +} + +func (_this SignatureKeyPair) Get_() Data_SignatureKeyPair_ { + return _this.Data_SignatureKeyPair_ +} + +type Data_SignatureKeyPair_ interface { + isSignatureKeyPair() +} + +type CompanionStruct_SignatureKeyPair_ struct { +} + +var Companion_SignatureKeyPair_ = CompanionStruct_SignatureKeyPair_{} + +type SignatureKeyPair_SignatureKeyPair struct { + VerificationKey _dafny.Sequence + SigningKey _dafny.Sequence +} + +func (SignatureKeyPair_SignatureKeyPair) isSignatureKeyPair() {} + +func (CompanionStruct_SignatureKeyPair_) Create_SignatureKeyPair_(VerificationKey _dafny.Sequence, SigningKey _dafny.Sequence) SignatureKeyPair { + return SignatureKeyPair{SignatureKeyPair_SignatureKeyPair{VerificationKey, SigningKey}} +} + +func (_this SignatureKeyPair) Is_SignatureKeyPair() bool { + _, ok := _this.Get_().(SignatureKeyPair_SignatureKeyPair) + return ok +} + +func (CompanionStruct_SignatureKeyPair_) Default() SignatureKeyPair { + return Companion_SignatureKeyPair_.Create_SignatureKeyPair_(_dafny.EmptySeq, _dafny.EmptySeq) +} + +func (_this SignatureKeyPair) Dtor_verificationKey() _dafny.Sequence { + return _this.Get_().(SignatureKeyPair_SignatureKeyPair).VerificationKey +} + +func (_this SignatureKeyPair) Dtor_signingKey() _dafny.Sequence { + return _this.Get_().(SignatureKeyPair_SignatureKeyPair).SigningKey +} + +func (_this SignatureKeyPair) String() string { + switch data := _this.Get_().(type) { + case nil: + return "null" + case SignatureKeyPair_SignatureKeyPair: + { + return "Signature.SignatureKeyPair.SignatureKeyPair" + "(" + _dafny.String(data.VerificationKey) + ", " + _dafny.String(data.SigningKey) + ")" + } + default: + { + return "" + } + } +} + +func (_this SignatureKeyPair) Equals(other SignatureKeyPair) bool { + switch data1 := _this.Get_().(type) { + case SignatureKeyPair_SignatureKeyPair: + { + data2, ok := other.Get_().(SignatureKeyPair_SignatureKeyPair) + return ok && data1.VerificationKey.Equals(data2.VerificationKey) && data1.SigningKey.Equals(data2.SigningKey) + } + default: + { + return false // unexpected + } + } +} + +func (_this SignatureKeyPair) EqualsGeneric(other interface{}) bool { + typed, ok := other.(SignatureKeyPair) + return ok && _this.Equals(typed) +} + +func Type_SignatureKeyPair_() _dafny.TypeDescriptor { + return type_SignatureKeyPair_{} +} + +type type_SignatureKeyPair_ struct { +} + +func (_this type_SignatureKeyPair_) Default() interface{} { + return Companion_SignatureKeyPair_.Default() +} + +func (_this type_SignatureKeyPair_) String() string { + return "Signature.SignatureKeyPair" +} +func (_this SignatureKeyPair) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = SignatureKeyPair{} + +// End of datatype SignatureKeyPair diff --git a/customer-preview/primitives/Signature/externs.go b/customer-preview/primitives/Signature/externs.go new file mode 100644 index 000000000..98822db72 --- /dev/null +++ b/customer-preview/primitives/Signature/externs.go @@ -0,0 +1,127 @@ +package Signature + +import ( + "crypto/ecdsa" + "crypto/elliptic" + "crypto/rand" + "crypto/x509" + "fmt" + + "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesTypes" + "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/ExternDigest" + "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers" + dafny "github.com/dafny-lang/DafnyRuntimeGo/v4/dafny" +) + +var m_Signature struct { + ECDSA CompanionStruct_Default___ +} + +var ECDSA = CompanionStruct_Default___{} + +func (CompanionStruct_Default___) ExternKeyGen(algorithm AwsCryptographyPrimitivesTypes.ECDSASignatureAlgorithm) Wrappers.Result { + var privateKey []byte + var pubKey []byte + var err error + + curve, _, _, err := getNativeEC(algorithm) + if err != nil { + return Wrappers.Companion_Result_.Create_Failure_(AwsCryptographyPrimitivesTypes.Companion_Error_.Create_AwsCryptographicPrimitivesError_( + dafny.SeqOfChars([]dafny.Char(err.Error())...))) + + } + + privateKey, pubKey, err = generateKeyPair(curve) + if err != nil { + return Wrappers.Companion_Result_.Create_Failure_(AwsCryptographyPrimitivesTypes.Companion_Error_.Create_AwsCryptographicPrimitivesError_( + dafny.SeqOfChars([]dafny.Char(err.Error())...))) + } + + return Wrappers.Companion_Result_.Create_Success_(Companion_SignatureKeyPair_.Create_SignatureKeyPair_( + dafny.SeqOfBytes(pubKey), dafny.SeqOfBytes(privateKey))) +} + +func (CompanionStruct_Default___) Sign(algorithm AwsCryptographyPrimitivesTypes.ECDSASignatureAlgorithm, + key dafny.Sequence, msg dafny.Sequence) Wrappers.Result { + privateKey, err := x509.ParsePKCS8PrivateKey(dafny.ToByteArray(key)) + if err != nil { + return Wrappers.Companion_Result_.Create_Failure_(AwsCryptographyPrimitivesTypes.Companion_Error_.Create_AwsCryptographicPrimitivesError_( + dafny.SeqOfChars([]dafny.Char(err.Error())...))) + } + + _, digestAlgo, expectedSignatureLength, err := getNativeEC(algorithm) + if err != nil { + return Wrappers.Companion_Result_.Create_Failure_(AwsCryptographyPrimitivesTypes.Companion_Error_.Create_AwsCryptographicPrimitivesError_( + dafny.SeqOfChars([]dafny.Char(err.Error())...))) + + } + + msgDigest := ExternDigest.Digest(digestAlgo, msg) + if msgDigest.IsFailure() { + return msgDigest + } + + //TODO: This is potentially risky. Java is doing this, but not Rust. + var res []byte + for ok := true; ok; ok = len(res) != expectedSignatureLength { + res, err = ecdsa.SignASN1(rand.Reader, privateKey.(*ecdsa.PrivateKey), dafny.ToByteArray(msgDigest.Dtor_value().(dafny.Sequence))) + if err != nil { + return Wrappers.Companion_Result_.Create_Failure_(AwsCryptographyPrimitivesTypes.Companion_Error_.Create_AwsCryptographicPrimitivesError_( + dafny.SeqOfChars([]dafny.Char(err.Error())...))) + } + } + + return Wrappers.Companion_Result_.Create_Success_(dafny.SeqOfBytes(res)) +} + +func ECDSA_Verify(algorithm AwsCryptographyPrimitivesTypes.ECDSASignatureAlgorithm, key dafny.Sequence, + msg dafny.Sequence, sig dafny.Sequence) Wrappers.Result { + curve, digestAlgo, _, err := getNativeEC(algorithm) + if err != nil { + return Wrappers.Companion_Result_.Create_Failure_(AwsCryptographyPrimitivesTypes.Companion_Error_.Create_AwsCryptographicPrimitivesError_( + dafny.SeqOfChars([]dafny.Char(err.Error())...))) + } + + msgDigest := ExternDigest.Digest(digestAlgo, msg) + if msgDigest.IsFailure() { + return msgDigest + } + + x, y := elliptic.UnmarshalCompressed(curve, dafny.ToByteArray(key)) + if x == nil { + return Wrappers.Companion_Result_.Create_Failure_(AwsCryptographyPrimitivesTypes.Companion_Error_.Create_AwsCryptographicPrimitivesError_( + dafny.SeqOfChars([]dafny.Char("Failed to decompress verification key")...))) + } + res := ecdsa.VerifyASN1(&ecdsa.PublicKey{Curve: curve, X: x, Y: y}, dafny.ToByteArray(msgDigest.Dtor_value().(dafny.Sequence)), + dafny.ToByteArray(sig)) + + return Wrappers.Companion_Result_.Create_Success_(res) +} + +func generateKeyPair(curve elliptic.Curve) ([]byte, []byte, error) { + privateKey, err := ecdsa.GenerateKey(curve, rand.Reader) + if err != nil { + return nil, nil, err + } + publicKey := privateKey.PublicKey + + encodedPrivateKey, err := x509.MarshalPKCS8PrivateKey(privateKey) + if err != nil { + return nil, nil, err + } + + return encodedPrivateKey, elliptic.MarshalCompressed(curve, publicKey.X, publicKey.Y), nil +} + +func getNativeEC(curveSpec AwsCryptographyPrimitivesTypes.ECDSASignatureAlgorithm) (elliptic.Curve, + AwsCryptographyPrimitivesTypes.DigestAlgorithm, int, error) { + switch curveSpec { + case AwsCryptographyPrimitivesTypes.Companion_ECDSASignatureAlgorithm_.Create_ECDSA__P256_(): + return elliptic.P256(), AwsCryptographyPrimitivesTypes.Companion_DigestAlgorithm_.Create_SHA__256_(), 71, nil + case AwsCryptographyPrimitivesTypes.Companion_ECDSASignatureAlgorithm_.Create_ECDSA__P384_(): + return elliptic.P384(), AwsCryptographyPrimitivesTypes.Companion_DigestAlgorithm_.Create_SHA__384_(), 103, nil + default: + return nil, AwsCryptographyPrimitivesTypes.DigestAlgorithm{}, 0, fmt.Errorf("invalid curve specification: %s not supported", curveSpec) + + } +} diff --git a/customer-preview/primitives/WrappedHKDF/WrappedHKDF.go b/customer-preview/primitives/WrappedHKDF/WrappedHKDF.go new file mode 100644 index 000000000..b3dcd1f67 --- /dev/null +++ b/customer-preview/primitives/WrappedHKDF/WrappedHKDF.go @@ -0,0 +1,253 @@ +// Package WrappedHKDF +// Dafny module WrappedHKDF compiled into Go + +package WrappedHKDF + +import ( + os "os" + + m_AwsCryptographyPrimitivesTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesTypes" + m_Digest "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Digest" + m_HKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/HKDF" + m_HMAC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/HMAC" + m_Random "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Random" + m_WrappedHMAC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHMAC" + m_Actions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Actions" + m_Base64 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64" + m_Base64Lemmas "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64Lemmas" + m_BoundedInts "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/BoundedInts" + m_DivInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternals" + m_DivInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternalsNonlinear" + m_DivMod "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivMod" + m_FileIO "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FileIO" + m_FloatCompare "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FloatCompare" + m_Functions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Functions" + m_GeneralInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GeneralInternals" + m_GetOpt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GetOpt" + m_HexStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/HexStrings" + m_Logarithm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Logarithm" + m__Math "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Math_" + m_ModInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternals" + m_ModInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternalsNonlinear" + m_Mul "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Mul" + m_MulInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternals" + m_MulInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternalsNonlinear" + m_Power "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Power" + m_Relations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Relations" + m_Seq "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq" + m_Seq_MergeSort "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq_MergeSort" + m_Sorting "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Sorting" + m_StandardLibrary "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary" + m_StandardLibraryInterop "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibraryInterop" + m_StandardLibrary_Sequence "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_Sequence" + m_StandardLibrary_String "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_String" + m_StandardLibrary_UInt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_UInt" + m_Streams "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Streams" + m_UnicodeStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UnicodeStrings" + m__Unicode "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Unicode_" + m_Utf16EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf16EncodingForm" + m_Utf8EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf8EncodingForm" + m_Wrappers "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers" + m__System "github.com/dafny-lang/DafnyRuntimeGo/v4/System_" + _dafny "github.com/dafny-lang/DafnyRuntimeGo/v4/dafny" +) + +var _ = os.Args +var _ _dafny.Dummy__ +var _ m__System.Dummy__ +var _ m_Wrappers.Dummy__ +var _ m_Relations.Dummy__ +var _ m_Seq_MergeSort.Dummy__ +var _ m__Math.Dummy__ +var _ m_Seq.Dummy__ +var _ m_BoundedInts.Dummy__ +var _ m__Unicode.Dummy__ +var _ m_Functions.Dummy__ +var _ m_Utf8EncodingForm.Dummy__ +var _ m_Utf16EncodingForm.Dummy__ +var _ m_UnicodeStrings.Dummy__ +var _ m_FileIO.Dummy__ +var _ m_GeneralInternals.Dummy__ +var _ m_MulInternalsNonlinear.Dummy__ +var _ m_MulInternals.Dummy__ +var _ m_Mul.Dummy__ +var _ m_ModInternalsNonlinear.Dummy__ +var _ m_DivInternalsNonlinear.Dummy__ +var _ m_ModInternals.Dummy__ +var _ m_DivInternals.Dummy__ +var _ m_DivMod.Dummy__ +var _ m_Power.Dummy__ +var _ m_Logarithm.Dummy__ +var _ m_StandardLibraryInterop.Dummy__ +var _ m_StandardLibrary_UInt.Dummy__ +var _ m_StandardLibrary_Sequence.Dummy__ +var _ m_StandardLibrary_String.Dummy__ +var _ m_StandardLibrary.Dummy__ +var _ m_Streams.Dummy__ +var _ m_Sorting.Dummy__ +var _ m_HexStrings.Dummy__ +var _ m_GetOpt.Dummy__ +var _ m_FloatCompare.Dummy__ +var _ m_Base64.Dummy__ +var _ m_Base64Lemmas.Dummy__ +var _ m_Actions.Dummy__ +var _ m_AwsCryptographyPrimitivesTypes.Dummy__ +var _ m_Random.Dummy__ +var _ m_Digest.Dummy__ +var _ m_WrappedHMAC.Dummy__ +var _ m_HKDF.Dummy__ + +type Dummy__ struct{} + +// Definition of class Default__ +type Default__ struct { + dummy byte +} + +func New_Default___() *Default__ { + _this := Default__{} + + return &_this +} + +type CompanionStruct_Default___ struct { +} + +var Companion_Default___ = CompanionStruct_Default___{} + +func (_this *Default__) Equals(other *Default__) bool { + return _this == other +} + +func (_this *Default__) EqualsGeneric(x interface{}) bool { + other, ok := x.(*Default__) + return ok && _this.Equals(other) +} + +func (*Default__) String() string { + return "WrappedHKDF.Default__" +} +func (_this *Default__) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = &Default__{} + +func (_static *CompanionStruct_Default___) Extract(input m_AwsCryptographyPrimitivesTypes.HkdfExtractInput) m_Wrappers.Result { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = output + var _0_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _0_valueOrError0 + _0_valueOrError0 = m_Wrappers.Companion_Default___.Need(((((input).Dtor_salt()).Is_None()) || ((_dafny.IntOfUint32((((input).Dtor_salt()).Dtor_value().(_dafny.Sequence)).Cardinality())).Sign() != 0)) && ((_dafny.IntOfUint32(((input).Dtor_ikm()).Cardinality())).Cmp(m_StandardLibrary_UInt.Companion_Default___.INT32__MAX__LIMIT()) < 0), m_AwsCryptographyPrimitivesTypes.Companion_Error_.Create_AwsCryptographicPrimitivesError_(_dafny.SeqOfString("HKDF Extract needs a salt and reasonable ikm."))) + if (_0_valueOrError0).IsFailure() { + output = (_0_valueOrError0).PropagateFailure() + return output + } + var _let_tmp_rhs0 m_AwsCryptographyPrimitivesTypes.HkdfExtractInput = input + _ = _let_tmp_rhs0 + var _1_digestAlgorithm m_AwsCryptographyPrimitivesTypes.DigestAlgorithm = _let_tmp_rhs0.Get_().(m_AwsCryptographyPrimitivesTypes.HkdfExtractInput_HkdfExtractInput).DigestAlgorithm + _ = _1_digestAlgorithm + var _2_salt m_Wrappers.Option = _let_tmp_rhs0.Get_().(m_AwsCryptographyPrimitivesTypes.HkdfExtractInput_HkdfExtractInput).Salt + _ = _2_salt + var _3_ikm _dafny.Sequence = _let_tmp_rhs0.Get_().(m_AwsCryptographyPrimitivesTypes.HkdfExtractInput_HkdfExtractInput).Ikm + _ = _3_ikm + var _4_valueOrError1 m_Wrappers.Result = m_Wrappers.Result{} + _ = _4_valueOrError1 + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_HMAC.Companion_HMac_.Build(_1_digestAlgorithm) + _4_valueOrError1 = _out0 + if (_4_valueOrError1).IsFailure() { + output = (_4_valueOrError1).PropagateFailure() + return output + } + var _5_hmac *m_HMAC.HMac + _ = _5_hmac + _5_hmac = (_4_valueOrError1).Extract().(*m_HMAC.HMac) + var _6_prk _dafny.Sequence + _ = _6_prk + var _out1 _dafny.Sequence + _ = _out1 + _out1 = m_HKDF.Companion_Default___.Extract(_5_hmac, (_2_salt).UnwrapOr(m_StandardLibrary.Companion_Default___.Fill(uint8(0), m_Digest.Companion_Default___.Length(_1_digestAlgorithm))).(_dafny.Sequence), _3_ikm) + _6_prk = _out1 + output = m_Wrappers.Companion_Result_.Create_Success_(_6_prk) + return output + return output +} +func (_static *CompanionStruct_Default___) Expand(input m_AwsCryptographyPrimitivesTypes.HkdfExpandInput) m_Wrappers.Result { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = output + var _0_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _0_valueOrError0 + _0_valueOrError0 = m_Wrappers.Companion_Default___.Need(((((_dafny.One).Cmp(_dafny.IntOfInt32((input).Dtor_expectedLength())) <= 0) && ((_dafny.IntOfInt32((input).Dtor_expectedLength())).Cmp((_dafny.IntOfInt64(255)).Times(m_Digest.Companion_Default___.Length((input).Dtor_digestAlgorithm()))) <= 0)) && ((_dafny.IntOfUint32(((input).Dtor_info()).Cardinality())).Cmp(m_StandardLibrary_UInt.Companion_Default___.INT32__MAX__LIMIT()) < 0)) && ((m_Digest.Companion_Default___.Length((input).Dtor_digestAlgorithm())).Cmp(_dafny.IntOfUint32(((input).Dtor_prk()).Cardinality())) == 0), m_AwsCryptographyPrimitivesTypes.Companion_Error_.Create_AwsCryptographicPrimitivesError_(_dafny.SeqOfString("HKDF Expand needs valid input."))) + if (_0_valueOrError0).IsFailure() { + output = (_0_valueOrError0).PropagateFailure() + return output + } + var _let_tmp_rhs0 m_AwsCryptographyPrimitivesTypes.HkdfExpandInput = input + _ = _let_tmp_rhs0 + var _1_digestAlgorithm m_AwsCryptographyPrimitivesTypes.DigestAlgorithm = _let_tmp_rhs0.Get_().(m_AwsCryptographyPrimitivesTypes.HkdfExpandInput_HkdfExpandInput).DigestAlgorithm + _ = _1_digestAlgorithm + var _2_prk _dafny.Sequence = _let_tmp_rhs0.Get_().(m_AwsCryptographyPrimitivesTypes.HkdfExpandInput_HkdfExpandInput).Prk + _ = _2_prk + var _3_info _dafny.Sequence = _let_tmp_rhs0.Get_().(m_AwsCryptographyPrimitivesTypes.HkdfExpandInput_HkdfExpandInput).Info + _ = _3_info + var _4_expectedLength int32 = _let_tmp_rhs0.Get_().(m_AwsCryptographyPrimitivesTypes.HkdfExpandInput_HkdfExpandInput).ExpectedLength + _ = _4_expectedLength + var _5_valueOrError1 m_Wrappers.Result = m_Wrappers.Result{} + _ = _5_valueOrError1 + var _out0 m_Wrappers.Result + _ = _out0 + _out0 = m_HMAC.Companion_HMac_.Build(_1_digestAlgorithm) + _5_valueOrError1 = _out0 + if (_5_valueOrError1).IsFailure() { + output = (_5_valueOrError1).PropagateFailure() + return output + } + var _6_hmac *m_HMAC.HMac + _ = _6_hmac + _6_hmac = (_5_valueOrError1).Extract().(*m_HMAC.HMac) + var _7_omk _dafny.Sequence + _ = _7_omk + var _out1 _dafny.Sequence + _ = _out1 + _out1 = m_HKDF.Companion_Default___.Expand(_6_hmac, _2_prk, _3_info, _dafny.IntOfInt32(_4_expectedLength), _1_digestAlgorithm) + _7_omk = _out1 + output = m_Wrappers.Companion_Result_.Create_Success_(_7_omk) + return output + return output +} +func (_static *CompanionStruct_Default___) Hkdf(input m_AwsCryptographyPrimitivesTypes.HkdfInput) m_Wrappers.Result { + var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq) + _ = output + var _0_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default() + _ = _0_valueOrError0 + _0_valueOrError0 = m_Wrappers.Companion_Default___.Need((((((_dafny.One).Cmp(_dafny.IntOfInt32((input).Dtor_expectedLength())) <= 0) && ((_dafny.IntOfInt32((input).Dtor_expectedLength())).Cmp((_dafny.IntOfInt64(255)).Times(m_Digest.Companion_Default___.Length((input).Dtor_digestAlgorithm()))) <= 0)) && ((((input).Dtor_salt()).Is_None()) || ((_dafny.IntOfUint32((((input).Dtor_salt()).Dtor_value().(_dafny.Sequence)).Cardinality())).Sign() != 0))) && ((_dafny.IntOfUint32(((input).Dtor_info()).Cardinality())).Cmp(m_StandardLibrary_UInt.Companion_Default___.INT32__MAX__LIMIT()) < 0)) && ((_dafny.IntOfUint32(((input).Dtor_ikm()).Cardinality())).Cmp(m_StandardLibrary_UInt.Companion_Default___.INT32__MAX__LIMIT()) < 0), m_AwsCryptographyPrimitivesTypes.Companion_Error_.Create_AwsCryptographicPrimitivesError_(_dafny.SeqOfString("Wrapped Hkdf input is invalid."))) + if (_0_valueOrError0).IsFailure() { + output = (_0_valueOrError0).PropagateFailure() + return output + } + var _let_tmp_rhs0 m_AwsCryptographyPrimitivesTypes.HkdfInput = input + _ = _let_tmp_rhs0 + var _1_digest m_AwsCryptographyPrimitivesTypes.DigestAlgorithm = _let_tmp_rhs0.Get_().(m_AwsCryptographyPrimitivesTypes.HkdfInput_HkdfInput).DigestAlgorithm + _ = _1_digest + var _2_salt m_Wrappers.Option = _let_tmp_rhs0.Get_().(m_AwsCryptographyPrimitivesTypes.HkdfInput_HkdfInput).Salt + _ = _2_salt + var _3_ikm _dafny.Sequence = _let_tmp_rhs0.Get_().(m_AwsCryptographyPrimitivesTypes.HkdfInput_HkdfInput).Ikm + _ = _3_ikm + var _4_info _dafny.Sequence = _let_tmp_rhs0.Get_().(m_AwsCryptographyPrimitivesTypes.HkdfInput_HkdfInput).Info + _ = _4_info + var _5_expectedLength int32 = _let_tmp_rhs0.Get_().(m_AwsCryptographyPrimitivesTypes.HkdfInput_HkdfInput).ExpectedLength + _ = _5_expectedLength + var _6_okm _dafny.Sequence + _ = _6_okm + var _out0 _dafny.Sequence + _ = _out0 + _out0 = m_HKDF.Companion_Default___.Hkdf(_1_digest, _2_salt, _3_ikm, _4_info, _dafny.IntOfInt32(_5_expectedLength)) + _6_okm = _out0 + output = m_Wrappers.Companion_Result_.Create_Success_(_6_okm) + return output + return output +} + +// End of class Default__ diff --git a/customer-preview/primitives/WrappedHMAC/WrappedHMAC.go b/customer-preview/primitives/WrappedHMAC/WrappedHMAC.go new file mode 100644 index 000000000..6db51df34 --- /dev/null +++ b/customer-preview/primitives/WrappedHMAC/WrappedHMAC.go @@ -0,0 +1,156 @@ +// Package WrappedHMAC +// Dafny module WrappedHMAC compiled into Go + +package WrappedHMAC + +import ( + os "os" + + m_AwsCryptographyPrimitivesTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesTypes" + m_Digest "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Digest" + m_HMAC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/HMAC" + m_Random "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Random" + m_Actions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Actions" + m_Base64 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64" + m_Base64Lemmas "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64Lemmas" + m_BoundedInts "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/BoundedInts" + m_DivInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternals" + m_DivInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternalsNonlinear" + m_DivMod "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivMod" + m_FileIO "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FileIO" + m_FloatCompare "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FloatCompare" + m_Functions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Functions" + m_GeneralInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GeneralInternals" + m_GetOpt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GetOpt" + m_HexStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/HexStrings" + m_Logarithm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Logarithm" + m__Math "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Math_" + m_ModInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternals" + m_ModInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternalsNonlinear" + m_Mul "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Mul" + m_MulInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternals" + m_MulInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternalsNonlinear" + m_Power "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Power" + m_Relations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Relations" + m_Seq "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq" + m_Seq_MergeSort "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq_MergeSort" + m_Sorting "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Sorting" + m_StandardLibrary "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary" + m_StandardLibraryInterop "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibraryInterop" + m_StandardLibrary_Sequence "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_Sequence" + m_StandardLibrary_String "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_String" + m_StandardLibrary_UInt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_UInt" + m_Streams "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Streams" + m_UnicodeStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UnicodeStrings" + m__Unicode "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Unicode_" + m_Utf16EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf16EncodingForm" + m_Utf8EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf8EncodingForm" + m_Wrappers "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers" + m__System "github.com/dafny-lang/DafnyRuntimeGo/v4/System_" + _dafny "github.com/dafny-lang/DafnyRuntimeGo/v4/dafny" +) + +var _ = os.Args +var _ _dafny.Dummy__ +var _ m__System.Dummy__ +var _ m_Wrappers.Dummy__ +var _ m_Relations.Dummy__ +var _ m_Seq_MergeSort.Dummy__ +var _ m__Math.Dummy__ +var _ m_Seq.Dummy__ +var _ m_BoundedInts.Dummy__ +var _ m__Unicode.Dummy__ +var _ m_Functions.Dummy__ +var _ m_Utf8EncodingForm.Dummy__ +var _ m_Utf16EncodingForm.Dummy__ +var _ m_UnicodeStrings.Dummy__ +var _ m_FileIO.Dummy__ +var _ m_GeneralInternals.Dummy__ +var _ m_MulInternalsNonlinear.Dummy__ +var _ m_MulInternals.Dummy__ +var _ m_Mul.Dummy__ +var _ m_ModInternalsNonlinear.Dummy__ +var _ m_DivInternalsNonlinear.Dummy__ +var _ m_ModInternals.Dummy__ +var _ m_DivInternals.Dummy__ +var _ m_DivMod.Dummy__ +var _ m_Power.Dummy__ +var _ m_Logarithm.Dummy__ +var _ m_StandardLibraryInterop.Dummy__ +var _ m_StandardLibrary_UInt.Dummy__ +var _ m_StandardLibrary_Sequence.Dummy__ +var _ m_StandardLibrary_String.Dummy__ +var _ m_StandardLibrary.Dummy__ +var _ m_Streams.Dummy__ +var _ m_Sorting.Dummy__ +var _ m_HexStrings.Dummy__ +var _ m_GetOpt.Dummy__ +var _ m_FloatCompare.Dummy__ +var _ m_Base64.Dummy__ +var _ m_Base64Lemmas.Dummy__ +var _ m_Actions.Dummy__ +var _ m_AwsCryptographyPrimitivesTypes.Dummy__ +var _ m_Random.Dummy__ +var _ m_Digest.Dummy__ + +type Dummy__ struct{} + +// Definition of class Default__ +type Default__ struct { + dummy byte +} + +func New_Default___() *Default__ { + _this := Default__{} + + return &_this +} + +type CompanionStruct_Default___ struct { +} + +var Companion_Default___ = CompanionStruct_Default___{} + +func (_this *Default__) Equals(other *Default__) bool { + return _this == other +} + +func (_this *Default__) EqualsGeneric(x interface{}) bool { + other, ok := x.(*Default__) + return ok && _this.Equals(other) +} + +func (*Default__) String() string { + return "WrappedHMAC.Default__" +} +func (_this *Default__) ParentTraits_() []*_dafny.TraitID { + return [](*_dafny.TraitID){} +} + +var _ _dafny.TraitOffspring = &Default__{} + +func (_static *CompanionStruct_Default___) Digest(input m_AwsCryptographyPrimitivesTypes.HMacInput) m_Wrappers.Result { + var _0_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need((_dafny.IntOfUint32(((input).Dtor_key()).Cardinality())).Sign() == 1, m_AwsCryptographyPrimitivesTypes.Companion_Error_.Create_AwsCryptographicPrimitivesError_(_dafny.SeqOfString("Key MUST NOT be 0 bytes."))) + _ = _0_valueOrError0 + if (_0_valueOrError0).IsFailure() { + return (_0_valueOrError0).PropagateFailure() + } else { + var _1_valueOrError1 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need((_dafny.IntOfUint32(((input).Dtor_message()).Cardinality())).Cmp(m_StandardLibrary_UInt.Companion_Default___.INT32__MAX__LIMIT()) < 0, m_AwsCryptographyPrimitivesTypes.Companion_Error_.Create_AwsCryptographicPrimitivesError_(_dafny.SeqOfString("Message over INT32_MAX_LIMIT"))) + _ = _1_valueOrError1 + if (_1_valueOrError1).IsFailure() { + return (_1_valueOrError1).PropagateFailure() + } else { + var _2_valueOrError2 m_Wrappers.Result = m_HMAC.Digest(input) + _ = _2_valueOrError2 + if (_2_valueOrError2).IsFailure() { + return (_2_valueOrError2).PropagateFailure() + } else { + var _3_value _dafny.Sequence = (_2_valueOrError2).Extract().(_dafny.Sequence) + _ = _3_value + return m_Wrappers.Companion_Result_.Create_Success_(_3_value) + } + } + } +} + +// End of class Default__ diff --git a/customer-preview/primitives/awscryptographyprimitivessmithygenerated/api_client.go b/customer-preview/primitives/awscryptographyprimitivessmithygenerated/api_client.go new file mode 100644 index 000000000..77daef608 --- /dev/null +++ b/customer-preview/primitives/awscryptographyprimitivessmithygenerated/api_client.go @@ -0,0 +1,557 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package awscryptographyprimitivessmithygenerated + +import ( + "context" + + "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AtomicPrimitives" + "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesTypes" + "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/awscryptographyprimitivessmithygeneratedtypes" + "github.com/dafny-lang/DafnyRuntimeGo/v4/dafny" +) + +type Client struct { + DafnyClient AwsCryptographyPrimitivesTypes.IAwsCryptographicPrimitivesClient +} + +func NewClient(clientConfig awscryptographyprimitivessmithygeneratedtypes.CryptoConfig) (*Client, error) { + var dafnyConfig = CryptoConfig_ToDafny(clientConfig) + var dafny_response = AtomicPrimitives.Companion_Default___.AtomicPrimitives(dafnyConfig) + if dafny_response.Is_Failure() { + panic("Client construction failed. This should never happen") + } + var dafnyClient = dafny_response.Extract().(AwsCryptographyPrimitivesTypes.IAwsCryptographicPrimitivesClient) + client := &Client{dafnyClient} + return client, nil +} + +func (client *Client) GenerateRandomBytes(ctx context.Context, params awscryptographyprimitivessmithygeneratedtypes.GenerateRandomBytesInput) ([]byte, error) { + err := params.Validate() + if err != nil { + opaqueErr := awscryptographyprimitivessmithygeneratedtypes.OpaqueError{ + ErrObject: err, + } + var defaultVal []byte + return defaultVal, opaqueErr + } + + var dafny_request AwsCryptographyPrimitivesTypes.GenerateRandomBytesInput = GenerateRandomBytesInput_ToDafny(params) + var dafny_response = client.DafnyClient.GenerateRandomBytes(dafny_request) + + if dafny_response.Is_Failure() { + err := dafny_response.Dtor_error().(AwsCryptographyPrimitivesTypes.Error) + var defaultVal []byte + return defaultVal, Error_FromDafny(err) + } + var native_response = Aws_cryptography_primitives_GenerateRandomBytesOutput_data_FromDafny(dafny_response.Dtor_value().(dafny.Sequence)) + return native_response, nil + +} + +func (client *Client) Digest(ctx context.Context, params awscryptographyprimitivessmithygeneratedtypes.DigestInput) ([]byte, error) { + err := params.Validate() + if err != nil { + opaqueErr := awscryptographyprimitivessmithygeneratedtypes.OpaqueError{ + ErrObject: err, + } + var defaultVal []byte + return defaultVal, opaqueErr + } + + var dafny_request AwsCryptographyPrimitivesTypes.DigestInput = DigestInput_ToDafny(params) + var dafny_response = client.DafnyClient.Digest(dafny_request) + + if dafny_response.Is_Failure() { + err := dafny_response.Dtor_error().(AwsCryptographyPrimitivesTypes.Error) + var defaultVal []byte + return defaultVal, Error_FromDafny(err) + } + var native_response = Aws_cryptography_primitives_DigestOutput_digest_FromDafny(dafny_response.Dtor_value().(dafny.Sequence)) + return native_response, nil + +} + +func (client *Client) HMac(ctx context.Context, params awscryptographyprimitivessmithygeneratedtypes.HMacInput) ([]byte, error) { + err := params.Validate() + if err != nil { + opaqueErr := awscryptographyprimitivessmithygeneratedtypes.OpaqueError{ + ErrObject: err, + } + var defaultVal []byte + return defaultVal, opaqueErr + } + + var dafny_request AwsCryptographyPrimitivesTypes.HMacInput = HMacInput_ToDafny(params) + var dafny_response = client.DafnyClient.HMac(dafny_request) + + if dafny_response.Is_Failure() { + err := dafny_response.Dtor_error().(AwsCryptographyPrimitivesTypes.Error) + var defaultVal []byte + return defaultVal, Error_FromDafny(err) + } + var native_response = Aws_cryptography_primitives_HMacOutput_digest_FromDafny(dafny_response.Dtor_value().(dafny.Sequence)) + return native_response, nil + +} + +func (client *Client) HkdfExtract(ctx context.Context, params awscryptographyprimitivessmithygeneratedtypes.HkdfExtractInput) ([]byte, error) { + err := params.Validate() + if err != nil { + opaqueErr := awscryptographyprimitivessmithygeneratedtypes.OpaqueError{ + ErrObject: err, + } + var defaultVal []byte + return defaultVal, opaqueErr + } + + var dafny_request AwsCryptographyPrimitivesTypes.HkdfExtractInput = HkdfExtractInput_ToDafny(params) + var dafny_response = client.DafnyClient.HkdfExtract(dafny_request) + + if dafny_response.Is_Failure() { + err := dafny_response.Dtor_error().(AwsCryptographyPrimitivesTypes.Error) + var defaultVal []byte + return defaultVal, Error_FromDafny(err) + } + var native_response = Aws_cryptography_primitives_HkdfExtractOutput_prk_FromDafny(dafny_response.Dtor_value().(dafny.Sequence)) + return native_response, nil + +} + +func (client *Client) HkdfExpand(ctx context.Context, params awscryptographyprimitivessmithygeneratedtypes.HkdfExpandInput) ([]byte, error) { + err := params.Validate() + if err != nil { + opaqueErr := awscryptographyprimitivessmithygeneratedtypes.OpaqueError{ + ErrObject: err, + } + var defaultVal []byte + return defaultVal, opaqueErr + } + + var dafny_request AwsCryptographyPrimitivesTypes.HkdfExpandInput = HkdfExpandInput_ToDafny(params) + var dafny_response = client.DafnyClient.HkdfExpand(dafny_request) + + if dafny_response.Is_Failure() { + err := dafny_response.Dtor_error().(AwsCryptographyPrimitivesTypes.Error) + var defaultVal []byte + return defaultVal, Error_FromDafny(err) + } + var native_response = Aws_cryptography_primitives_HkdfExpandOutput_okm_FromDafny(dafny_response.Dtor_value().(dafny.Sequence)) + return native_response, nil + +} + +func (client *Client) Hkdf(ctx context.Context, params awscryptographyprimitivessmithygeneratedtypes.HkdfInput) ([]byte, error) { + err := params.Validate() + if err != nil { + opaqueErr := awscryptographyprimitivessmithygeneratedtypes.OpaqueError{ + ErrObject: err, + } + var defaultVal []byte + return defaultVal, opaqueErr + } + + var dafny_request AwsCryptographyPrimitivesTypes.HkdfInput = HkdfInput_ToDafny(params) + var dafny_response = client.DafnyClient.Hkdf(dafny_request) + + if dafny_response.Is_Failure() { + err := dafny_response.Dtor_error().(AwsCryptographyPrimitivesTypes.Error) + var defaultVal []byte + return defaultVal, Error_FromDafny(err) + } + var native_response = Aws_cryptography_primitives_HkdfOutput_okm_FromDafny(dafny_response.Dtor_value().(dafny.Sequence)) + return native_response, nil + +} + +func (client *Client) KdfCounterMode(ctx context.Context, params awscryptographyprimitivessmithygeneratedtypes.KdfCtrInput) ([]byte, error) { + err := params.Validate() + if err != nil { + opaqueErr := awscryptographyprimitivessmithygeneratedtypes.OpaqueError{ + ErrObject: err, + } + var defaultVal []byte + return defaultVal, opaqueErr + } + + var dafny_request AwsCryptographyPrimitivesTypes.KdfCtrInput = KdfCtrInput_ToDafny(params) + var dafny_response = client.DafnyClient.KdfCounterMode(dafny_request) + + if dafny_response.Is_Failure() { + err := dafny_response.Dtor_error().(AwsCryptographyPrimitivesTypes.Error) + var defaultVal []byte + return defaultVal, Error_FromDafny(err) + } + var native_response = Aws_cryptography_primitives_KdfCtrOutput_okm_FromDafny(dafny_response.Dtor_value().(dafny.Sequence)) + return native_response, nil + +} + +func (client *Client) AesKdfCounterMode(ctx context.Context, params awscryptographyprimitivessmithygeneratedtypes.AesKdfCtrInput) ([]byte, error) { + err := params.Validate() + if err != nil { + opaqueErr := awscryptographyprimitivessmithygeneratedtypes.OpaqueError{ + ErrObject: err, + } + var defaultVal []byte + return defaultVal, opaqueErr + } + + var dafny_request AwsCryptographyPrimitivesTypes.AesKdfCtrInput = AesKdfCtrInput_ToDafny(params) + var dafny_response = client.DafnyClient.AesKdfCounterMode(dafny_request) + + if dafny_response.Is_Failure() { + err := dafny_response.Dtor_error().(AwsCryptographyPrimitivesTypes.Error) + var defaultVal []byte + return defaultVal, Error_FromDafny(err) + } + var native_response = Aws_cryptography_primitives_AesKdfCtrOutput_okm_FromDafny(dafny_response.Dtor_value().(dafny.Sequence)) + return native_response, nil + +} + +func (client *Client) AESEncrypt(ctx context.Context, params awscryptographyprimitivessmithygeneratedtypes.AESEncryptInput) (*awscryptographyprimitivessmithygeneratedtypes.AESEncryptOutput, error) { + err := params.Validate() + if err != nil { + opaqueErr := awscryptographyprimitivessmithygeneratedtypes.OpaqueError{ + ErrObject: err, + } + return nil, opaqueErr + } + + var dafny_request AwsCryptographyPrimitivesTypes.AESEncryptInput = AESEncryptInput_ToDafny(params) + var dafny_response = client.DafnyClient.AESEncrypt(dafny_request) + + if dafny_response.Is_Failure() { + err := dafny_response.Dtor_error().(AwsCryptographyPrimitivesTypes.Error) + return nil, Error_FromDafny(err) + } + var native_response = AESEncryptOutput_FromDafny(dafny_response.Dtor_value().(AwsCryptographyPrimitivesTypes.AESEncryptOutput)) + return &native_response, nil + +} + +func (client *Client) AESDecrypt(ctx context.Context, params awscryptographyprimitivessmithygeneratedtypes.AESDecryptInput) ([]byte, error) { + err := params.Validate() + if err != nil { + opaqueErr := awscryptographyprimitivessmithygeneratedtypes.OpaqueError{ + ErrObject: err, + } + var defaultVal []byte + return defaultVal, opaqueErr + } + + var dafny_request AwsCryptographyPrimitivesTypes.AESDecryptInput = AESDecryptInput_ToDafny(params) + var dafny_response = client.DafnyClient.AESDecrypt(dafny_request) + + if dafny_response.Is_Failure() { + err := dafny_response.Dtor_error().(AwsCryptographyPrimitivesTypes.Error) + var defaultVal []byte + return defaultVal, Error_FromDafny(err) + } + var native_response = Aws_cryptography_primitives_AESDecryptOutput_plaintext_FromDafny(dafny_response.Dtor_value().(dafny.Sequence)) + return native_response, nil + +} + +func (client *Client) GenerateRSAKeyPair(ctx context.Context, params awscryptographyprimitivessmithygeneratedtypes.GenerateRSAKeyPairInput) (*awscryptographyprimitivessmithygeneratedtypes.GenerateRSAKeyPairOutput, error) { + err := params.Validate() + if err != nil { + opaqueErr := awscryptographyprimitivessmithygeneratedtypes.OpaqueError{ + ErrObject: err, + } + return nil, opaqueErr + } + + var dafny_request AwsCryptographyPrimitivesTypes.GenerateRSAKeyPairInput = GenerateRSAKeyPairInput_ToDafny(params) + var dafny_response = client.DafnyClient.GenerateRSAKeyPair(dafny_request) + + if dafny_response.Is_Failure() { + err := dafny_response.Dtor_error().(AwsCryptographyPrimitivesTypes.Error) + return nil, Error_FromDafny(err) + } + var native_response = GenerateRSAKeyPairOutput_FromDafny(dafny_response.Dtor_value().(AwsCryptographyPrimitivesTypes.GenerateRSAKeyPairOutput)) + return &native_response, nil + +} + +func (client *Client) GetRSAKeyModulusLength(ctx context.Context, params awscryptographyprimitivessmithygeneratedtypes.GetRSAKeyModulusLengthInput) (*awscryptographyprimitivessmithygeneratedtypes.GetRSAKeyModulusLengthOutput, error) { + err := params.Validate() + if err != nil { + opaqueErr := awscryptographyprimitivessmithygeneratedtypes.OpaqueError{ + ErrObject: err, + } + return nil, opaqueErr + } + + var dafny_request AwsCryptographyPrimitivesTypes.GetRSAKeyModulusLengthInput = GetRSAKeyModulusLengthInput_ToDafny(params) + var dafny_response = client.DafnyClient.GetRSAKeyModulusLength(dafny_request) + + if dafny_response.Is_Failure() { + err := dafny_response.Dtor_error().(AwsCryptographyPrimitivesTypes.Error) + return nil, Error_FromDafny(err) + } + var native_response = GetRSAKeyModulusLengthOutput_FromDafny(dafny_response.Dtor_value().(AwsCryptographyPrimitivesTypes.GetRSAKeyModulusLengthOutput)) + return &native_response, nil + +} + +func (client *Client) RSADecrypt(ctx context.Context, params awscryptographyprimitivessmithygeneratedtypes.RSADecryptInput) ([]byte, error) { + err := params.Validate() + if err != nil { + opaqueErr := awscryptographyprimitivessmithygeneratedtypes.OpaqueError{ + ErrObject: err, + } + var defaultVal []byte + return defaultVal, opaqueErr + } + + var dafny_request AwsCryptographyPrimitivesTypes.RSADecryptInput = RSADecryptInput_ToDafny(params) + var dafny_response = client.DafnyClient.RSADecrypt(dafny_request) + + if dafny_response.Is_Failure() { + err := dafny_response.Dtor_error().(AwsCryptographyPrimitivesTypes.Error) + var defaultVal []byte + return defaultVal, Error_FromDafny(err) + } + var native_response = Aws_cryptography_primitives_RSADecryptOutput_plaintext_FromDafny(dafny_response.Dtor_value().(dafny.Sequence)) + return native_response, nil + +} + +func (client *Client) RSAEncrypt(ctx context.Context, params awscryptographyprimitivessmithygeneratedtypes.RSAEncryptInput) ([]byte, error) { + err := params.Validate() + if err != nil { + opaqueErr := awscryptographyprimitivessmithygeneratedtypes.OpaqueError{ + ErrObject: err, + } + var defaultVal []byte + return defaultVal, opaqueErr + } + + var dafny_request AwsCryptographyPrimitivesTypes.RSAEncryptInput = RSAEncryptInput_ToDafny(params) + var dafny_response = client.DafnyClient.RSAEncrypt(dafny_request) + + if dafny_response.Is_Failure() { + err := dafny_response.Dtor_error().(AwsCryptographyPrimitivesTypes.Error) + var defaultVal []byte + return defaultVal, Error_FromDafny(err) + } + var native_response = Aws_cryptography_primitives_RSAEncryptOutput_cipherText_FromDafny(dafny_response.Dtor_value().(dafny.Sequence)) + return native_response, nil + +} + +func (client *Client) GenerateECDSASignatureKey(ctx context.Context, params awscryptographyprimitivessmithygeneratedtypes.GenerateECDSASignatureKeyInput) (*awscryptographyprimitivessmithygeneratedtypes.GenerateECDSASignatureKeyOutput, error) { + err := params.Validate() + if err != nil { + opaqueErr := awscryptographyprimitivessmithygeneratedtypes.OpaqueError{ + ErrObject: err, + } + return nil, opaqueErr + } + + var dafny_request AwsCryptographyPrimitivesTypes.GenerateECDSASignatureKeyInput = GenerateECDSASignatureKeyInput_ToDafny(params) + var dafny_response = client.DafnyClient.GenerateECDSASignatureKey(dafny_request) + + if dafny_response.Is_Failure() { + err := dafny_response.Dtor_error().(AwsCryptographyPrimitivesTypes.Error) + return nil, Error_FromDafny(err) + } + var native_response = GenerateECDSASignatureKeyOutput_FromDafny(dafny_response.Dtor_value().(AwsCryptographyPrimitivesTypes.GenerateECDSASignatureKeyOutput)) + return &native_response, nil + +} + +func (client *Client) ECDSASign(ctx context.Context, params awscryptographyprimitivessmithygeneratedtypes.ECDSASignInput) ([]byte, error) { + err := params.Validate() + if err != nil { + opaqueErr := awscryptographyprimitivessmithygeneratedtypes.OpaqueError{ + ErrObject: err, + } + var defaultVal []byte + return defaultVal, opaqueErr + } + + var dafny_request AwsCryptographyPrimitivesTypes.ECDSASignInput = ECDSASignInput_ToDafny(params) + var dafny_response = client.DafnyClient.ECDSASign(dafny_request) + + if dafny_response.Is_Failure() { + err := dafny_response.Dtor_error().(AwsCryptographyPrimitivesTypes.Error) + var defaultVal []byte + return defaultVal, Error_FromDafny(err) + } + var native_response = Aws_cryptography_primitives_ECDSASignOutput_signature_FromDafny(dafny_response.Dtor_value().(dafny.Sequence)) + return native_response, nil + +} + +func (client *Client) ECDSAVerify(ctx context.Context, params awscryptographyprimitivessmithygeneratedtypes.ECDSAVerifyInput) (bool, error) { + err := params.Validate() + if err != nil { + opaqueErr := awscryptographyprimitivessmithygeneratedtypes.OpaqueError{ + ErrObject: err, + } + var defaultVal bool + return defaultVal, opaqueErr + } + + var dafny_request AwsCryptographyPrimitivesTypes.ECDSAVerifyInput = ECDSAVerifyInput_ToDafny(params) + var dafny_response = client.DafnyClient.ECDSAVerify(dafny_request) + + if dafny_response.Is_Failure() { + err := dafny_response.Dtor_error().(AwsCryptographyPrimitivesTypes.Error) + var defaultVal bool + return defaultVal, Error_FromDafny(err) + } + var native_response = Aws_cryptography_primitives_ECDSAVerifyOutput_success_FromDafny(dafny_response.Dtor_value().(bool)) + return native_response, nil + +} + +func (client *Client) GenerateECCKeyPair(ctx context.Context, params awscryptographyprimitivessmithygeneratedtypes.GenerateECCKeyPairInput) (*awscryptographyprimitivessmithygeneratedtypes.GenerateECCKeyPairOutput, error) { + err := params.Validate() + if err != nil { + opaqueErr := awscryptographyprimitivessmithygeneratedtypes.OpaqueError{ + ErrObject: err, + } + return nil, opaqueErr + } + + var dafny_request AwsCryptographyPrimitivesTypes.GenerateECCKeyPairInput = GenerateECCKeyPairInput_ToDafny(params) + var dafny_response = client.DafnyClient.GenerateECCKeyPair(dafny_request) + + if dafny_response.Is_Failure() { + err := dafny_response.Dtor_error().(AwsCryptographyPrimitivesTypes.Error) + return nil, Error_FromDafny(err) + } + var native_response = GenerateECCKeyPairOutput_FromDafny(dafny_response.Dtor_value().(AwsCryptographyPrimitivesTypes.GenerateECCKeyPairOutput)) + return &native_response, nil + +} + +func (client *Client) GetPublicKeyFromPrivateKey(ctx context.Context, params awscryptographyprimitivessmithygeneratedtypes.GetPublicKeyFromPrivateKeyInput) (*awscryptographyprimitivessmithygeneratedtypes.GetPublicKeyFromPrivateKeyOutput, error) { + err := params.Validate() + if err != nil { + opaqueErr := awscryptographyprimitivessmithygeneratedtypes.OpaqueError{ + ErrObject: err, + } + return nil, opaqueErr + } + + var dafny_request AwsCryptographyPrimitivesTypes.GetPublicKeyFromPrivateKeyInput = GetPublicKeyFromPrivateKeyInput_ToDafny(params) + var dafny_response = client.DafnyClient.GetPublicKeyFromPrivateKey(dafny_request) + + if dafny_response.Is_Failure() { + err := dafny_response.Dtor_error().(AwsCryptographyPrimitivesTypes.Error) + return nil, Error_FromDafny(err) + } + var native_response = GetPublicKeyFromPrivateKeyOutput_FromDafny(dafny_response.Dtor_value().(AwsCryptographyPrimitivesTypes.GetPublicKeyFromPrivateKeyOutput)) + return &native_response, nil + +} + +func (client *Client) ValidatePublicKey(ctx context.Context, params awscryptographyprimitivessmithygeneratedtypes.ValidatePublicKeyInput) (*awscryptographyprimitivessmithygeneratedtypes.ValidatePublicKeyOutput, error) { + err := params.Validate() + if err != nil { + opaqueErr := awscryptographyprimitivessmithygeneratedtypes.OpaqueError{ + ErrObject: err, + } + return nil, opaqueErr + } + + var dafny_request AwsCryptographyPrimitivesTypes.ValidatePublicKeyInput = ValidatePublicKeyInput_ToDafny(params) + var dafny_response = client.DafnyClient.ValidatePublicKey(dafny_request) + + if dafny_response.Is_Failure() { + err := dafny_response.Dtor_error().(AwsCryptographyPrimitivesTypes.Error) + return nil, Error_FromDafny(err) + } + var native_response = ValidatePublicKeyOutput_FromDafny(dafny_response.Dtor_value().(AwsCryptographyPrimitivesTypes.ValidatePublicKeyOutput)) + return &native_response, nil + +} + +func (client *Client) DeriveSharedSecret(ctx context.Context, params awscryptographyprimitivessmithygeneratedtypes.DeriveSharedSecretInput) (*awscryptographyprimitivessmithygeneratedtypes.DeriveSharedSecretOutput, error) { + err := params.Validate() + if err != nil { + opaqueErr := awscryptographyprimitivessmithygeneratedtypes.OpaqueError{ + ErrObject: err, + } + return nil, opaqueErr + } + + var dafny_request AwsCryptographyPrimitivesTypes.DeriveSharedSecretInput = DeriveSharedSecretInput_ToDafny(params) + var dafny_response = client.DafnyClient.DeriveSharedSecret(dafny_request) + + if dafny_response.Is_Failure() { + err := dafny_response.Dtor_error().(AwsCryptographyPrimitivesTypes.Error) + return nil, Error_FromDafny(err) + } + var native_response = DeriveSharedSecretOutput_FromDafny(dafny_response.Dtor_value().(AwsCryptographyPrimitivesTypes.DeriveSharedSecretOutput)) + return &native_response, nil + +} + +func (client *Client) CompressPublicKey(ctx context.Context, params awscryptographyprimitivessmithygeneratedtypes.CompressPublicKeyInput) (*awscryptographyprimitivessmithygeneratedtypes.CompressPublicKeyOutput, error) { + err := params.Validate() + if err != nil { + opaqueErr := awscryptographyprimitivessmithygeneratedtypes.OpaqueError{ + ErrObject: err, + } + return nil, opaqueErr + } + + var dafny_request AwsCryptographyPrimitivesTypes.CompressPublicKeyInput = CompressPublicKeyInput_ToDafny(params) + var dafny_response = client.DafnyClient.CompressPublicKey(dafny_request) + + if dafny_response.Is_Failure() { + err := dafny_response.Dtor_error().(AwsCryptographyPrimitivesTypes.Error) + return nil, Error_FromDafny(err) + } + var native_response = CompressPublicKeyOutput_FromDafny(dafny_response.Dtor_value().(AwsCryptographyPrimitivesTypes.CompressPublicKeyOutput)) + return &native_response, nil + +} + +func (client *Client) DecompressPublicKey(ctx context.Context, params awscryptographyprimitivessmithygeneratedtypes.DecompressPublicKeyInput) (*awscryptographyprimitivessmithygeneratedtypes.DecompressPublicKeyOutput, error) { + err := params.Validate() + if err != nil { + opaqueErr := awscryptographyprimitivessmithygeneratedtypes.OpaqueError{ + ErrObject: err, + } + return nil, opaqueErr + } + + var dafny_request AwsCryptographyPrimitivesTypes.DecompressPublicKeyInput = DecompressPublicKeyInput_ToDafny(params) + var dafny_response = client.DafnyClient.DecompressPublicKey(dafny_request) + + if dafny_response.Is_Failure() { + err := dafny_response.Dtor_error().(AwsCryptographyPrimitivesTypes.Error) + return nil, Error_FromDafny(err) + } + var native_response = DecompressPublicKeyOutput_FromDafny(dafny_response.Dtor_value().(AwsCryptographyPrimitivesTypes.DecompressPublicKeyOutput)) + return &native_response, nil + +} + +func (client *Client) ParsePublicKey(ctx context.Context, params awscryptographyprimitivessmithygeneratedtypes.ParsePublicKeyInput) (*awscryptographyprimitivessmithygeneratedtypes.ParsePublicKeyOutput, error) { + err := params.Validate() + if err != nil { + opaqueErr := awscryptographyprimitivessmithygeneratedtypes.OpaqueError{ + ErrObject: err, + } + return nil, opaqueErr + } + + var dafny_request AwsCryptographyPrimitivesTypes.ParsePublicKeyInput = ParsePublicKeyInput_ToDafny(params) + var dafny_response = client.DafnyClient.ParsePublicKey(dafny_request) + + if dafny_response.Is_Failure() { + err := dafny_response.Dtor_error().(AwsCryptographyPrimitivesTypes.Error) + return nil, Error_FromDafny(err) + } + var native_response = ParsePublicKeyOutput_FromDafny(dafny_response.Dtor_value().(AwsCryptographyPrimitivesTypes.ParsePublicKeyOutput)) + return &native_response, nil + +} diff --git a/customer-preview/primitives/awscryptographyprimitivessmithygenerated/to_dafny.go b/customer-preview/primitives/awscryptographyprimitivessmithygenerated/to_dafny.go new file mode 100644 index 000000000..47bf4f58c --- /dev/null +++ b/customer-preview/primitives/awscryptographyprimitivessmithygenerated/to_dafny.go @@ -0,0 +1,1904 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package awscryptographyprimitivessmithygenerated + +import ( + "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesTypes" + "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/dafny-lang/DafnyRuntimeGo/v4/dafny" +) + +func AESDecryptInput_ToDafny(nativeInput awscryptographyprimitivessmithygeneratedtypes.AESDecryptInput) AwsCryptographyPrimitivesTypes.AESDecryptInput { + + return func() AwsCryptographyPrimitivesTypes.AESDecryptInput { + + return AwsCryptographyPrimitivesTypes.Companion_AESDecryptInput_.Create_AESDecryptInput_(Aws_cryptography_primitives_AESDecryptInput_encAlg_ToDafny(nativeInput.EncAlg), Aws_cryptography_primitives_AESDecryptInput_key_ToDafny(nativeInput.Key), Aws_cryptography_primitives_AESDecryptInput_cipherTxt_ToDafny(nativeInput.CipherTxt), Aws_cryptography_primitives_AESDecryptInput_authTag_ToDafny(nativeInput.AuthTag), Aws_cryptography_primitives_AESDecryptInput_iv_ToDafny(nativeInput.Iv), Aws_cryptography_primitives_AESDecryptInput_aad_ToDafny(nativeInput.Aad)) + }() + +} + +func AESEncryptInput_ToDafny(nativeInput awscryptographyprimitivessmithygeneratedtypes.AESEncryptInput) AwsCryptographyPrimitivesTypes.AESEncryptInput { + + return func() AwsCryptographyPrimitivesTypes.AESEncryptInput { + + return AwsCryptographyPrimitivesTypes.Companion_AESEncryptInput_.Create_AESEncryptInput_(Aws_cryptography_primitives_AESEncryptInput_encAlg_ToDafny(nativeInput.EncAlg), Aws_cryptography_primitives_AESEncryptInput_iv_ToDafny(nativeInput.Iv), Aws_cryptography_primitives_AESEncryptInput_key_ToDafny(nativeInput.Key), Aws_cryptography_primitives_AESEncryptInput_msg_ToDafny(nativeInput.Msg), Aws_cryptography_primitives_AESEncryptInput_aad_ToDafny(nativeInput.Aad)) + }() + +} + +func AESEncryptOutput_ToDafny(nativeOutput awscryptographyprimitivessmithygeneratedtypes.AESEncryptOutput) AwsCryptographyPrimitivesTypes.AESEncryptOutput { + + return func() AwsCryptographyPrimitivesTypes.AESEncryptOutput { + + return AwsCryptographyPrimitivesTypes.Companion_AESEncryptOutput_.Create_AESEncryptOutput_(Aws_cryptography_primitives_AESEncryptOutput_cipherText_ToDafny(nativeOutput.CipherText), Aws_cryptography_primitives_AESEncryptOutput_authTag_ToDafny(nativeOutput.AuthTag)) + }() + +} + +func AesKdfCtrInput_ToDafny(nativeInput awscryptographyprimitivessmithygeneratedtypes.AesKdfCtrInput) AwsCryptographyPrimitivesTypes.AesKdfCtrInput { + + return func() AwsCryptographyPrimitivesTypes.AesKdfCtrInput { + + return AwsCryptographyPrimitivesTypes.Companion_AesKdfCtrInput_.Create_AesKdfCtrInput_(Aws_cryptography_primitives_AesKdfCtrInput_ikm_ToDafny(nativeInput.Ikm), Aws_cryptography_primitives_AesKdfCtrInput_expectedLength_ToDafny(nativeInput.ExpectedLength), Aws_cryptography_primitives_AesKdfCtrInput_nonce_ToDafny(nativeInput.Nonce)) + }() + +} + +func CompressPublicKeyInput_ToDafny(nativeInput awscryptographyprimitivessmithygeneratedtypes.CompressPublicKeyInput) AwsCryptographyPrimitivesTypes.CompressPublicKeyInput { + + return func() AwsCryptographyPrimitivesTypes.CompressPublicKeyInput { + + return AwsCryptographyPrimitivesTypes.Companion_CompressPublicKeyInput_.Create_CompressPublicKeyInput_(Aws_cryptography_primitives_CompressPublicKeyInput_publicKey_ToDafny(nativeInput.PublicKey), Aws_cryptography_primitives_CompressPublicKeyInput_eccCurve_ToDafny(nativeInput.EccCurve)) + }() + +} + +func CompressPublicKeyOutput_ToDafny(nativeOutput awscryptographyprimitivessmithygeneratedtypes.CompressPublicKeyOutput) AwsCryptographyPrimitivesTypes.CompressPublicKeyOutput { + + return func() AwsCryptographyPrimitivesTypes.CompressPublicKeyOutput { + + return AwsCryptographyPrimitivesTypes.Companion_CompressPublicKeyOutput_.Create_CompressPublicKeyOutput_(Aws_cryptography_primitives_CompressPublicKeyOutput_compressedPublicKey_ToDafny(nativeOutput.CompressedPublicKey)) + }() + +} + +func DecompressPublicKeyInput_ToDafny(nativeInput awscryptographyprimitivessmithygeneratedtypes.DecompressPublicKeyInput) AwsCryptographyPrimitivesTypes.DecompressPublicKeyInput { + + return func() AwsCryptographyPrimitivesTypes.DecompressPublicKeyInput { + + return AwsCryptographyPrimitivesTypes.Companion_DecompressPublicKeyInput_.Create_DecompressPublicKeyInput_(Aws_cryptography_primitives_DecompressPublicKeyInput_compressedPublicKey_ToDafny(nativeInput.CompressedPublicKey), Aws_cryptography_primitives_DecompressPublicKeyInput_eccCurve_ToDafny(nativeInput.EccCurve)) + }() + +} + +func DecompressPublicKeyOutput_ToDafny(nativeOutput awscryptographyprimitivessmithygeneratedtypes.DecompressPublicKeyOutput) AwsCryptographyPrimitivesTypes.DecompressPublicKeyOutput { + + return func() AwsCryptographyPrimitivesTypes.DecompressPublicKeyOutput { + + return AwsCryptographyPrimitivesTypes.Companion_DecompressPublicKeyOutput_.Create_DecompressPublicKeyOutput_(Aws_cryptography_primitives_DecompressPublicKeyOutput_publicKey_ToDafny(nativeOutput.PublicKey)) + }() + +} + +func DeriveSharedSecretInput_ToDafny(nativeInput awscryptographyprimitivessmithygeneratedtypes.DeriveSharedSecretInput) AwsCryptographyPrimitivesTypes.DeriveSharedSecretInput { + + return func() AwsCryptographyPrimitivesTypes.DeriveSharedSecretInput { + + return AwsCryptographyPrimitivesTypes.Companion_DeriveSharedSecretInput_.Create_DeriveSharedSecretInput_(Aws_cryptography_primitives_DeriveSharedSecretInput_eccCurve_ToDafny(nativeInput.EccCurve), Aws_cryptography_primitives_DeriveSharedSecretInput_privateKey_ToDafny(nativeInput.PrivateKey), Aws_cryptography_primitives_DeriveSharedSecretInput_publicKey_ToDafny(nativeInput.PublicKey)) + }() + +} + +func DeriveSharedSecretOutput_ToDafny(nativeOutput awscryptographyprimitivessmithygeneratedtypes.DeriveSharedSecretOutput) AwsCryptographyPrimitivesTypes.DeriveSharedSecretOutput { + + return func() AwsCryptographyPrimitivesTypes.DeriveSharedSecretOutput { + + return AwsCryptographyPrimitivesTypes.Companion_DeriveSharedSecretOutput_.Create_DeriveSharedSecretOutput_(Aws_cryptography_primitives_DeriveSharedSecretOutput_sharedSecret_ToDafny(nativeOutput.SharedSecret)) + }() + +} + +func DigestInput_ToDafny(nativeInput awscryptographyprimitivessmithygeneratedtypes.DigestInput) AwsCryptographyPrimitivesTypes.DigestInput { + + return func() AwsCryptographyPrimitivesTypes.DigestInput { + + return AwsCryptographyPrimitivesTypes.Companion_DigestInput_.Create_DigestInput_(Aws_cryptography_primitives_DigestInput_digestAlgorithm_ToDafny(nativeInput.DigestAlgorithm), Aws_cryptography_primitives_DigestInput_message_ToDafny(nativeInput.Message)) + }() + +} + +func ECDSASignInput_ToDafny(nativeInput awscryptographyprimitivessmithygeneratedtypes.ECDSASignInput) AwsCryptographyPrimitivesTypes.ECDSASignInput { + + return func() AwsCryptographyPrimitivesTypes.ECDSASignInput { + + return AwsCryptographyPrimitivesTypes.Companion_ECDSASignInput_.Create_ECDSASignInput_(Aws_cryptography_primitives_ECDSASignInput_signatureAlgorithm_ToDafny(nativeInput.SignatureAlgorithm), Aws_cryptography_primitives_ECDSASignInput_signingKey_ToDafny(nativeInput.SigningKey), Aws_cryptography_primitives_ECDSASignInput_message_ToDafny(nativeInput.Message)) + }() + +} + +func ECDSAVerifyInput_ToDafny(nativeInput awscryptographyprimitivessmithygeneratedtypes.ECDSAVerifyInput) AwsCryptographyPrimitivesTypes.ECDSAVerifyInput { + + return func() AwsCryptographyPrimitivesTypes.ECDSAVerifyInput { + + return AwsCryptographyPrimitivesTypes.Companion_ECDSAVerifyInput_.Create_ECDSAVerifyInput_(Aws_cryptography_primitives_ECDSAVerifyInput_signatureAlgorithm_ToDafny(nativeInput.SignatureAlgorithm), Aws_cryptography_primitives_ECDSAVerifyInput_verificationKey_ToDafny(nativeInput.VerificationKey), Aws_cryptography_primitives_ECDSAVerifyInput_message_ToDafny(nativeInput.Message), Aws_cryptography_primitives_ECDSAVerifyInput_signature_ToDafny(nativeInput.Signature)) + }() + +} + +func GenerateECCKeyPairInput_ToDafny(nativeInput awscryptographyprimitivessmithygeneratedtypes.GenerateECCKeyPairInput) AwsCryptographyPrimitivesTypes.GenerateECCKeyPairInput { + + return func() AwsCryptographyPrimitivesTypes.GenerateECCKeyPairInput { + + return AwsCryptographyPrimitivesTypes.Companion_GenerateECCKeyPairInput_.Create_GenerateECCKeyPairInput_(Aws_cryptography_primitives_GenerateECCKeyPairInput_eccCurve_ToDafny(nativeInput.EccCurve)) + }() + +} + +func GenerateECCKeyPairOutput_ToDafny(nativeOutput awscryptographyprimitivessmithygeneratedtypes.GenerateECCKeyPairOutput) AwsCryptographyPrimitivesTypes.GenerateECCKeyPairOutput { + + return func() AwsCryptographyPrimitivesTypes.GenerateECCKeyPairOutput { + + return AwsCryptographyPrimitivesTypes.Companion_GenerateECCKeyPairOutput_.Create_GenerateECCKeyPairOutput_(Aws_cryptography_primitives_GenerateECCKeyPairOutput_eccCurve_ToDafny(nativeOutput.EccCurve), Aws_cryptography_primitives_GenerateECCKeyPairOutput_privateKey_ToDafny(nativeOutput.PrivateKey), Aws_cryptography_primitives_GenerateECCKeyPairOutput_publicKey_ToDafny(nativeOutput.PublicKey)) + }() + +} + +func GenerateECDSASignatureKeyInput_ToDafny(nativeInput awscryptographyprimitivessmithygeneratedtypes.GenerateECDSASignatureKeyInput) AwsCryptographyPrimitivesTypes.GenerateECDSASignatureKeyInput { + + return func() AwsCryptographyPrimitivesTypes.GenerateECDSASignatureKeyInput { + + return AwsCryptographyPrimitivesTypes.Companion_GenerateECDSASignatureKeyInput_.Create_GenerateECDSASignatureKeyInput_(Aws_cryptography_primitives_GenerateECDSASignatureKeyInput_signatureAlgorithm_ToDafny(nativeInput.SignatureAlgorithm)) + }() + +} + +func GenerateECDSASignatureKeyOutput_ToDafny(nativeOutput awscryptographyprimitivessmithygeneratedtypes.GenerateECDSASignatureKeyOutput) AwsCryptographyPrimitivesTypes.GenerateECDSASignatureKeyOutput { + + return func() AwsCryptographyPrimitivesTypes.GenerateECDSASignatureKeyOutput { + + return AwsCryptographyPrimitivesTypes.Companion_GenerateECDSASignatureKeyOutput_.Create_GenerateECDSASignatureKeyOutput_(Aws_cryptography_primitives_GenerateECDSASignatureKeyOutput_signatureAlgorithm_ToDafny(nativeOutput.SignatureAlgorithm), Aws_cryptography_primitives_GenerateECDSASignatureKeyOutput_verificationKey_ToDafny(nativeOutput.VerificationKey), Aws_cryptography_primitives_GenerateECDSASignatureKeyOutput_signingKey_ToDafny(nativeOutput.SigningKey)) + }() + +} + +func GenerateRandomBytesInput_ToDafny(nativeInput awscryptographyprimitivessmithygeneratedtypes.GenerateRandomBytesInput) AwsCryptographyPrimitivesTypes.GenerateRandomBytesInput { + + return func() AwsCryptographyPrimitivesTypes.GenerateRandomBytesInput { + + return AwsCryptographyPrimitivesTypes.Companion_GenerateRandomBytesInput_.Create_GenerateRandomBytesInput_(Aws_cryptography_primitives_GenerateRandomBytesInput_length_ToDafny(nativeInput.Length)) + }() + +} + +func GenerateRSAKeyPairInput_ToDafny(nativeInput awscryptographyprimitivessmithygeneratedtypes.GenerateRSAKeyPairInput) AwsCryptographyPrimitivesTypes.GenerateRSAKeyPairInput { + + return func() AwsCryptographyPrimitivesTypes.GenerateRSAKeyPairInput { + + return AwsCryptographyPrimitivesTypes.Companion_GenerateRSAKeyPairInput_.Create_GenerateRSAKeyPairInput_(Aws_cryptography_primitives_GenerateRSAKeyPairInput_lengthBits_ToDafny(nativeInput.LengthBits)) + }() + +} + +func GenerateRSAKeyPairOutput_ToDafny(nativeOutput awscryptographyprimitivessmithygeneratedtypes.GenerateRSAKeyPairOutput) AwsCryptographyPrimitivesTypes.GenerateRSAKeyPairOutput { + + return func() AwsCryptographyPrimitivesTypes.GenerateRSAKeyPairOutput { + + return AwsCryptographyPrimitivesTypes.Companion_GenerateRSAKeyPairOutput_.Create_GenerateRSAKeyPairOutput_(Aws_cryptography_primitives_GenerateRSAKeyPairOutput_publicKey_ToDafny(nativeOutput.PublicKey), Aws_cryptography_primitives_GenerateRSAKeyPairOutput_privateKey_ToDafny(nativeOutput.PrivateKey)) + }() + +} + +func GetPublicKeyFromPrivateKeyInput_ToDafny(nativeInput awscryptographyprimitivessmithygeneratedtypes.GetPublicKeyFromPrivateKeyInput) AwsCryptographyPrimitivesTypes.GetPublicKeyFromPrivateKeyInput { + + return func() AwsCryptographyPrimitivesTypes.GetPublicKeyFromPrivateKeyInput { + + return AwsCryptographyPrimitivesTypes.Companion_GetPublicKeyFromPrivateKeyInput_.Create_GetPublicKeyFromPrivateKeyInput_(Aws_cryptography_primitives_GetPublicKeyFromPrivateKeyInput_eccCurve_ToDafny(nativeInput.EccCurve), Aws_cryptography_primitives_GetPublicKeyFromPrivateKeyInput_privateKey_ToDafny(nativeInput.PrivateKey)) + }() + +} + +func GetPublicKeyFromPrivateKeyOutput_ToDafny(nativeOutput awscryptographyprimitivessmithygeneratedtypes.GetPublicKeyFromPrivateKeyOutput) AwsCryptographyPrimitivesTypes.GetPublicKeyFromPrivateKeyOutput { + + return func() AwsCryptographyPrimitivesTypes.GetPublicKeyFromPrivateKeyOutput { + + return AwsCryptographyPrimitivesTypes.Companion_GetPublicKeyFromPrivateKeyOutput_.Create_GetPublicKeyFromPrivateKeyOutput_(Aws_cryptography_primitives_GetPublicKeyFromPrivateKeyOutput_eccCurve_ToDafny(nativeOutput.EccCurve), Aws_cryptography_primitives_GetPublicKeyFromPrivateKeyOutput_privateKey_ToDafny(nativeOutput.PrivateKey), Aws_cryptography_primitives_GetPublicKeyFromPrivateKeyOutput_publicKey_ToDafny(nativeOutput.PublicKey)) + }() + +} + +func GetRSAKeyModulusLengthInput_ToDafny(nativeInput awscryptographyprimitivessmithygeneratedtypes.GetRSAKeyModulusLengthInput) AwsCryptographyPrimitivesTypes.GetRSAKeyModulusLengthInput { + + return func() AwsCryptographyPrimitivesTypes.GetRSAKeyModulusLengthInput { + + return AwsCryptographyPrimitivesTypes.Companion_GetRSAKeyModulusLengthInput_.Create_GetRSAKeyModulusLengthInput_(Aws_cryptography_primitives_GetRSAKeyModulusLengthInput_publicKey_ToDafny(nativeInput.PublicKey)) + }() + +} + +func GetRSAKeyModulusLengthOutput_ToDafny(nativeOutput awscryptographyprimitivessmithygeneratedtypes.GetRSAKeyModulusLengthOutput) AwsCryptographyPrimitivesTypes.GetRSAKeyModulusLengthOutput { + + return func() AwsCryptographyPrimitivesTypes.GetRSAKeyModulusLengthOutput { + + return AwsCryptographyPrimitivesTypes.Companion_GetRSAKeyModulusLengthOutput_.Create_GetRSAKeyModulusLengthOutput_(Aws_cryptography_primitives_GetRSAKeyModulusLengthOutput_length_ToDafny(nativeOutput.Length)) + }() + +} + +func HkdfInput_ToDafny(nativeInput awscryptographyprimitivessmithygeneratedtypes.HkdfInput) AwsCryptographyPrimitivesTypes.HkdfInput { + + return func() AwsCryptographyPrimitivesTypes.HkdfInput { + + return AwsCryptographyPrimitivesTypes.Companion_HkdfInput_.Create_HkdfInput_(Aws_cryptography_primitives_HkdfInput_digestAlgorithm_ToDafny(nativeInput.DigestAlgorithm), Aws_cryptography_primitives_HkdfInput_salt_ToDafny(nativeInput.Salt), Aws_cryptography_primitives_HkdfInput_ikm_ToDafny(nativeInput.Ikm), Aws_cryptography_primitives_HkdfInput_info_ToDafny(nativeInput.Info), Aws_cryptography_primitives_HkdfInput_expectedLength_ToDafny(nativeInput.ExpectedLength)) + }() + +} + +func HkdfExpandInput_ToDafny(nativeInput awscryptographyprimitivessmithygeneratedtypes.HkdfExpandInput) AwsCryptographyPrimitivesTypes.HkdfExpandInput { + + return func() AwsCryptographyPrimitivesTypes.HkdfExpandInput { + + return AwsCryptographyPrimitivesTypes.Companion_HkdfExpandInput_.Create_HkdfExpandInput_(Aws_cryptography_primitives_HkdfExpandInput_digestAlgorithm_ToDafny(nativeInput.DigestAlgorithm), Aws_cryptography_primitives_HkdfExpandInput_prk_ToDafny(nativeInput.Prk), Aws_cryptography_primitives_HkdfExpandInput_info_ToDafny(nativeInput.Info), Aws_cryptography_primitives_HkdfExpandInput_expectedLength_ToDafny(nativeInput.ExpectedLength)) + }() + +} + +func HkdfExtractInput_ToDafny(nativeInput awscryptographyprimitivessmithygeneratedtypes.HkdfExtractInput) AwsCryptographyPrimitivesTypes.HkdfExtractInput { + + return func() AwsCryptographyPrimitivesTypes.HkdfExtractInput { + + return AwsCryptographyPrimitivesTypes.Companion_HkdfExtractInput_.Create_HkdfExtractInput_(Aws_cryptography_primitives_HkdfExtractInput_digestAlgorithm_ToDafny(nativeInput.DigestAlgorithm), Aws_cryptography_primitives_HkdfExtractInput_salt_ToDafny(nativeInput.Salt), Aws_cryptography_primitives_HkdfExtractInput_ikm_ToDafny(nativeInput.Ikm)) + }() + +} + +func HMacInput_ToDafny(nativeInput awscryptographyprimitivessmithygeneratedtypes.HMacInput) AwsCryptographyPrimitivesTypes.HMacInput { + + return func() AwsCryptographyPrimitivesTypes.HMacInput { + + return AwsCryptographyPrimitivesTypes.Companion_HMacInput_.Create_HMacInput_(Aws_cryptography_primitives_HMacInput_digestAlgorithm_ToDafny(nativeInput.DigestAlgorithm), Aws_cryptography_primitives_HMacInput_key_ToDafny(nativeInput.Key), Aws_cryptography_primitives_HMacInput_message_ToDafny(nativeInput.Message)) + }() + +} + +func KdfCtrInput_ToDafny(nativeInput awscryptographyprimitivessmithygeneratedtypes.KdfCtrInput) AwsCryptographyPrimitivesTypes.KdfCtrInput { + + return func() AwsCryptographyPrimitivesTypes.KdfCtrInput { + + return AwsCryptographyPrimitivesTypes.Companion_KdfCtrInput_.Create_KdfCtrInput_(Aws_cryptography_primitives_KdfCtrInput_digestAlgorithm_ToDafny(nativeInput.DigestAlgorithm), Aws_cryptography_primitives_KdfCtrInput_ikm_ToDafny(nativeInput.Ikm), Aws_cryptography_primitives_KdfCtrInput_expectedLength_ToDafny(nativeInput.ExpectedLength), Aws_cryptography_primitives_KdfCtrInput_purpose_ToDafny(nativeInput.Purpose), Aws_cryptography_primitives_KdfCtrInput_nonce_ToDafny(nativeInput.Nonce)) + }() + +} + +func ParsePublicKeyInput_ToDafny(nativeInput awscryptographyprimitivessmithygeneratedtypes.ParsePublicKeyInput) AwsCryptographyPrimitivesTypes.ParsePublicKeyInput { + + return func() AwsCryptographyPrimitivesTypes.ParsePublicKeyInput { + + return AwsCryptographyPrimitivesTypes.Companion_ParsePublicKeyInput_.Create_ParsePublicKeyInput_(Aws_cryptography_primitives_ParsePublicKeyInput_publicKey_ToDafny(nativeInput.PublicKey)) + }() + +} + +func ParsePublicKeyOutput_ToDafny(nativeOutput awscryptographyprimitivessmithygeneratedtypes.ParsePublicKeyOutput) AwsCryptographyPrimitivesTypes.ParsePublicKeyOutput { + + return func() AwsCryptographyPrimitivesTypes.ParsePublicKeyOutput { + + return AwsCryptographyPrimitivesTypes.Companion_ParsePublicKeyOutput_.Create_ParsePublicKeyOutput_(Aws_cryptography_primitives_ParsePublicKeyOutput_publicKey_ToDafny(nativeOutput.PublicKey)) + }() + +} + +func RSADecryptInput_ToDafny(nativeInput awscryptographyprimitivessmithygeneratedtypes.RSADecryptInput) AwsCryptographyPrimitivesTypes.RSADecryptInput { + + return func() AwsCryptographyPrimitivesTypes.RSADecryptInput { + + return AwsCryptographyPrimitivesTypes.Companion_RSADecryptInput_.Create_RSADecryptInput_(Aws_cryptography_primitives_RSADecryptInput_padding_ToDafny(nativeInput.Padding), Aws_cryptography_primitives_RSADecryptInput_privateKey_ToDafny(nativeInput.PrivateKey), Aws_cryptography_primitives_RSADecryptInput_cipherText_ToDafny(nativeInput.CipherText)) + }() + +} + +func RSAEncryptInput_ToDafny(nativeInput awscryptographyprimitivessmithygeneratedtypes.RSAEncryptInput) AwsCryptographyPrimitivesTypes.RSAEncryptInput { + + return func() AwsCryptographyPrimitivesTypes.RSAEncryptInput { + + return AwsCryptographyPrimitivesTypes.Companion_RSAEncryptInput_.Create_RSAEncryptInput_(Aws_cryptography_primitives_RSAEncryptInput_padding_ToDafny(nativeInput.Padding), Aws_cryptography_primitives_RSAEncryptInput_publicKey_ToDafny(nativeInput.PublicKey), Aws_cryptography_primitives_RSAEncryptInput_plaintext_ToDafny(nativeInput.Plaintext)) + }() + +} + +func ValidatePublicKeyInput_ToDafny(nativeInput awscryptographyprimitivessmithygeneratedtypes.ValidatePublicKeyInput) AwsCryptographyPrimitivesTypes.ValidatePublicKeyInput { + + return func() AwsCryptographyPrimitivesTypes.ValidatePublicKeyInput { + + return AwsCryptographyPrimitivesTypes.Companion_ValidatePublicKeyInput_.Create_ValidatePublicKeyInput_(Aws_cryptography_primitives_ValidatePublicKeyInput_eccCurve_ToDafny(nativeInput.EccCurve), Aws_cryptography_primitives_ValidatePublicKeyInput_publicKey_ToDafny(nativeInput.PublicKey)) + }() + +} + +func ValidatePublicKeyOutput_ToDafny(nativeOutput awscryptographyprimitivessmithygeneratedtypes.ValidatePublicKeyOutput) AwsCryptographyPrimitivesTypes.ValidatePublicKeyOutput { + + return func() AwsCryptographyPrimitivesTypes.ValidatePublicKeyOutput { + + return AwsCryptographyPrimitivesTypes.Companion_ValidatePublicKeyOutput_.Create_ValidatePublicKeyOutput_(Aws_cryptography_primitives_ValidatePublicKeyOutput_success_ToDafny(nativeOutput.Success)) + }() + +} + +func AwsCryptographicPrimitivesError_ToDafny(nativeInput awscryptographyprimitivessmithygeneratedtypes.AwsCryptographicPrimitivesError) AwsCryptographyPrimitivesTypes.Error { + return func() AwsCryptographyPrimitivesTypes.Error { + + return AwsCryptographyPrimitivesTypes.Companion_Error_.Create_AwsCryptographicPrimitivesError_(Aws_cryptography_primitives_AwsCryptographicPrimitivesError_message_ToDafny(nativeInput.Message)) + }() + +} + +func CollectionOfErrors_Input_ToDafny(nativeInput awscryptographyprimitivessmithygeneratedtypes.CollectionOfErrors) AwsCryptographyPrimitivesTypes.Error { + var e []interface{} + for _, i2 := range nativeInput.ListOfErrors { + e = append(e, Error_ToDafny(i2)) + } + return AwsCryptographyPrimitivesTypes.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 awscryptographyprimitivessmithygeneratedtypes.OpaqueError) AwsCryptographyPrimitivesTypes.Error { + return AwsCryptographyPrimitivesTypes.Companion_Error_.Create_Opaque_(nativeInput.ErrObject) +} + +func Error_ToDafny(err error) AwsCryptographyPrimitivesTypes.Error { + switch err.(type) { + // Service Errors + case awscryptographyprimitivessmithygeneratedtypes.AwsCryptographicPrimitivesError: + return AwsCryptographicPrimitivesError_ToDafny(err.(awscryptographyprimitivessmithygeneratedtypes.AwsCryptographicPrimitivesError)) + + //DependentErrors + + //Unmodelled Errors + case awscryptographyprimitivessmithygeneratedtypes.CollectionOfErrors: + return CollectionOfErrors_Input_ToDafny(err.(awscryptographyprimitivessmithygeneratedtypes.CollectionOfErrors)) + + default: + error, ok := err.(awscryptographyprimitivessmithygeneratedtypes.OpaqueError) + if !ok { + panic("Error is not an OpaqueError") + } + return OpaqueError_Input_ToDafny(error) + } +} + +func CryptoConfig_ToDafny(nativeInput awscryptographyprimitivessmithygeneratedtypes.CryptoConfig) AwsCryptographyPrimitivesTypes.CryptoConfig { + return func() AwsCryptographyPrimitivesTypes.CryptoConfig { + + return AwsCryptographyPrimitivesTypes.Companion_CryptoConfig_.Create_CryptoConfig_() + }() + +} + +func AES_CTR_ToDafny(nativeInput awscryptographyprimitivessmithygeneratedtypes.AES_CTR) AwsCryptographyPrimitivesTypes.AES__CTR { + return func() AwsCryptographyPrimitivesTypes.AES__CTR { + + return AwsCryptographyPrimitivesTypes.Companion_AES__CTR_.Create_AES__CTR_(Aws_cryptography_primitives_AES_CTR_keyLength_ToDafny(nativeInput.KeyLength), Aws_cryptography_primitives_AES_CTR_nonceLength_ToDafny(nativeInput.NonceLength)) + }() + +} + +func Aws_cryptography_primitives_AESDecryptInput_encAlg_ToDafny(input awscryptographyprimitivessmithygeneratedtypes.AES_GCM) AwsCryptographyPrimitivesTypes.AES__GCM { + return func() AwsCryptographyPrimitivesTypes.AES__GCM { + + return AwsCryptographyPrimitivesTypes.Companion_AES__GCM_.Create_AES__GCM_(Aws_cryptography_primitives_AES_GCM_keyLength_ToDafny(input.KeyLength), Aws_cryptography_primitives_AES_GCM_tagLength_ToDafny(input.TagLength), Aws_cryptography_primitives_AES_GCM_ivLength_ToDafny(input.IvLength)) + }() +} + +func Aws_cryptography_primitives_AES_GCM_keyLength_ToDafny(input int32) int32 { + return func() int32 { + + return input + }() +} + +func Aws_cryptography_primitives_AES_GCM_tagLength_ToDafny(input int32) int32 { + return func() int32 { + + return input + }() +} + +func Aws_cryptography_primitives_AES_GCM_ivLength_ToDafny(input int32) int32 { + return func() int32 { + + return input + }() +} + +func Aws_cryptography_primitives_AESDecryptInput_key_ToDafny(input []byte) dafny.Sequence { + return func() dafny.Sequence { + var v []interface{} + if input == nil { + return nil + } + for _, e := range input { + v = append(v, e) + } + return dafny.SeqOf(v...) + }() +} + +func Aws_cryptography_primitives_AESDecryptInput_cipherTxt_ToDafny(input []byte) dafny.Sequence { + return func() dafny.Sequence { + var v []interface{} + if input == nil { + return nil + } + for _, e := range input { + v = append(v, e) + } + return dafny.SeqOf(v...) + }() +} + +func Aws_cryptography_primitives_AESDecryptInput_authTag_ToDafny(input []byte) dafny.Sequence { + return func() dafny.Sequence { + var v []interface{} + if input == nil { + return nil + } + for _, e := range input { + v = append(v, e) + } + return dafny.SeqOf(v...) + }() +} + +func Aws_cryptography_primitives_AESDecryptInput_iv_ToDafny(input []byte) dafny.Sequence { + return func() dafny.Sequence { + var v []interface{} + if input == nil { + return nil + } + for _, e := range input { + v = append(v, e) + } + return dafny.SeqOf(v...) + }() +} + +func Aws_cryptography_primitives_AESDecryptInput_aad_ToDafny(input []byte) dafny.Sequence { + return func() dafny.Sequence { + var v []interface{} + if input == nil { + return nil + } + for _, e := range input { + v = append(v, e) + } + return dafny.SeqOf(v...) + }() +} + +func Aws_cryptography_primitives_AESDecryptOutput_plaintext_ToDafny(input []byte) dafny.Sequence { + return func() dafny.Sequence { + var v []interface{} + if input == nil { + return nil + } + for _, e := range input { + v = append(v, e) + } + return dafny.SeqOf(v...) + }() +} + +func Aws_cryptography_primitives_AESEncryptInput_encAlg_ToDafny(input awscryptographyprimitivessmithygeneratedtypes.AES_GCM) AwsCryptographyPrimitivesTypes.AES__GCM { + return func() AwsCryptographyPrimitivesTypes.AES__GCM { + + return AwsCryptographyPrimitivesTypes.Companion_AES__GCM_.Create_AES__GCM_(Aws_cryptography_primitives_AES_GCM_keyLength_ToDafny(input.KeyLength), Aws_cryptography_primitives_AES_GCM_tagLength_ToDafny(input.TagLength), Aws_cryptography_primitives_AES_GCM_ivLength_ToDafny(input.IvLength)) + }() +} + +func Aws_cryptography_primitives_AESEncryptInput_iv_ToDafny(input []byte) dafny.Sequence { + return func() dafny.Sequence { + var v []interface{} + if input == nil { + return nil + } + for _, e := range input { + v = append(v, e) + } + return dafny.SeqOf(v...) + }() +} + +func Aws_cryptography_primitives_AESEncryptInput_key_ToDafny(input []byte) dafny.Sequence { + return func() dafny.Sequence { + var v []interface{} + if input == nil { + return nil + } + for _, e := range input { + v = append(v, e) + } + return dafny.SeqOf(v...) + }() +} + +func Aws_cryptography_primitives_AESEncryptInput_msg_ToDafny(input []byte) dafny.Sequence { + return func() dafny.Sequence { + var v []interface{} + if input == nil { + return nil + } + for _, e := range input { + v = append(v, e) + } + return dafny.SeqOf(v...) + }() +} + +func Aws_cryptography_primitives_AESEncryptInput_aad_ToDafny(input []byte) dafny.Sequence { + return func() dafny.Sequence { + var v []interface{} + if input == nil { + return nil + } + for _, e := range input { + v = append(v, e) + } + return dafny.SeqOf(v...) + }() +} + +func Aws_cryptography_primitives_AESEncryptOutput_cipherText_ToDafny(input []byte) dafny.Sequence { + return func() dafny.Sequence { + var v []interface{} + if input == nil { + return nil + } + for _, e := range input { + v = append(v, e) + } + return dafny.SeqOf(v...) + }() +} + +func Aws_cryptography_primitives_AESEncryptOutput_authTag_ToDafny(input []byte) dafny.Sequence { + return func() dafny.Sequence { + var v []interface{} + if input == nil { + return nil + } + for _, e := range input { + v = append(v, e) + } + return dafny.SeqOf(v...) + }() +} + +func Aws_cryptography_primitives_AesKdfCtrInput_ikm_ToDafny(input []byte) dafny.Sequence { + return func() dafny.Sequence { + var v []interface{} + if input == nil { + return nil + } + for _, e := range input { + v = append(v, e) + } + return dafny.SeqOf(v...) + }() +} + +func Aws_cryptography_primitives_AesKdfCtrInput_expectedLength_ToDafny(input int32) int32 { + return func() int32 { + + return input + }() +} + +func Aws_cryptography_primitives_AesKdfCtrInput_nonce_ToDafny(input []byte) Wrappers.Option { + return func() Wrappers.Option { + var v []interface{} + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + for _, e := range input { + v = append(v, e) + } + return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(v...)) + }() +} + +func Aws_cryptography_primitives_AesKdfCtrOutput_okm_ToDafny(input []byte) dafny.Sequence { + return func() dafny.Sequence { + var v []interface{} + if input == nil { + return nil + } + for _, e := range input { + v = append(v, e) + } + return dafny.SeqOf(v...) + }() +} + +func Aws_cryptography_primitives_CompressPublicKeyInput_publicKey_ToDafny(input awscryptographyprimitivessmithygeneratedtypes.ECCPublicKey) AwsCryptographyPrimitivesTypes.ECCPublicKey { + return func() AwsCryptographyPrimitivesTypes.ECCPublicKey { + + return AwsCryptographyPrimitivesTypes.Companion_ECCPublicKey_.Create_ECCPublicKey_(Aws_cryptography_primitives_ECCPublicKey_der_ToDafny(input.Der)) + }() +} + +func Aws_cryptography_primitives_ECCPublicKey_der_ToDafny(input []byte) dafny.Sequence { + return func() dafny.Sequence { + var v []interface{} + if input == nil { + return nil + } + for _, e := range input { + v = append(v, e) + } + return dafny.SeqOf(v...) + }() +} + +func Aws_cryptography_primitives_CompressPublicKeyInput_eccCurve_ToDafny(input awscryptographyprimitivessmithygeneratedtypes.ECDHCurveSpec) AwsCryptographyPrimitivesTypes.ECDHCurveSpec { + return func() AwsCryptographyPrimitivesTypes.ECDHCurveSpec { + + 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(AwsCryptographyPrimitivesTypes.CompanionStruct_ECDHCurveSpec_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return enum.(AwsCryptographyPrimitivesTypes.ECDHCurveSpec) + }() +} + +func Aws_cryptography_primitives_CompressPublicKeyOutput_compressedPublicKey_ToDafny(input []byte) dafny.Sequence { + return func() dafny.Sequence { + var v []interface{} + if input == nil { + return nil + } + for _, e := range input { + v = append(v, e) + } + return dafny.SeqOf(v...) + }() +} + +func Aws_cryptography_primitives_DecompressPublicKeyInput_compressedPublicKey_ToDafny(input []byte) dafny.Sequence { + return func() dafny.Sequence { + var v []interface{} + if input == nil { + return nil + } + for _, e := range input { + v = append(v, e) + } + return dafny.SeqOf(v...) + }() +} + +func Aws_cryptography_primitives_DecompressPublicKeyInput_eccCurve_ToDafny(input awscryptographyprimitivessmithygeneratedtypes.ECDHCurveSpec) AwsCryptographyPrimitivesTypes.ECDHCurveSpec { + return func() AwsCryptographyPrimitivesTypes.ECDHCurveSpec { + + 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(AwsCryptographyPrimitivesTypes.CompanionStruct_ECDHCurveSpec_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return enum.(AwsCryptographyPrimitivesTypes.ECDHCurveSpec) + }() +} + +func Aws_cryptography_primitives_DecompressPublicKeyOutput_publicKey_ToDafny(input awscryptographyprimitivessmithygeneratedtypes.ECCPublicKey) AwsCryptographyPrimitivesTypes.ECCPublicKey { + return func() AwsCryptographyPrimitivesTypes.ECCPublicKey { + + return AwsCryptographyPrimitivesTypes.Companion_ECCPublicKey_.Create_ECCPublicKey_(Aws_cryptography_primitives_ECCPublicKey_der_ToDafny(input.Der)) + }() +} + +func Aws_cryptography_primitives_DeriveSharedSecretInput_eccCurve_ToDafny(input awscryptographyprimitivessmithygeneratedtypes.ECDHCurveSpec) AwsCryptographyPrimitivesTypes.ECDHCurveSpec { + return func() AwsCryptographyPrimitivesTypes.ECDHCurveSpec { + + 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(AwsCryptographyPrimitivesTypes.CompanionStruct_ECDHCurveSpec_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return enum.(AwsCryptographyPrimitivesTypes.ECDHCurveSpec) + }() +} + +func Aws_cryptography_primitives_DeriveSharedSecretInput_privateKey_ToDafny(input awscryptographyprimitivessmithygeneratedtypes.ECCPrivateKey) AwsCryptographyPrimitivesTypes.ECCPrivateKey { + return func() AwsCryptographyPrimitivesTypes.ECCPrivateKey { + + return AwsCryptographyPrimitivesTypes.Companion_ECCPrivateKey_.Create_ECCPrivateKey_(Aws_cryptography_primitives_ECCPrivateKey_pem_ToDafny(input.Pem)) + }() +} + +func Aws_cryptography_primitives_ECCPrivateKey_pem_ToDafny(input []byte) dafny.Sequence { + return func() dafny.Sequence { + var v []interface{} + if input == nil { + return nil + } + for _, e := range input { + v = append(v, e) + } + return dafny.SeqOf(v...) + }() +} + +func Aws_cryptography_primitives_DeriveSharedSecretInput_publicKey_ToDafny(input awscryptographyprimitivessmithygeneratedtypes.ECCPublicKey) AwsCryptographyPrimitivesTypes.ECCPublicKey { + return func() AwsCryptographyPrimitivesTypes.ECCPublicKey { + + return AwsCryptographyPrimitivesTypes.Companion_ECCPublicKey_.Create_ECCPublicKey_(Aws_cryptography_primitives_ECCPublicKey_der_ToDafny(input.Der)) + }() +} + +func Aws_cryptography_primitives_DeriveSharedSecretOutput_sharedSecret_ToDafny(input []byte) dafny.Sequence { + return func() dafny.Sequence { + var v []interface{} + if input == nil { + return nil + } + for _, e := range input { + v = append(v, e) + } + return dafny.SeqOf(v...) + }() +} + +func Aws_cryptography_primitives_DigestInput_digestAlgorithm_ToDafny(input awscryptographyprimitivessmithygeneratedtypes.DigestAlgorithm) AwsCryptographyPrimitivesTypes.DigestAlgorithm { + return func() AwsCryptographyPrimitivesTypes.DigestAlgorithm { + + 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(AwsCryptographyPrimitivesTypes.CompanionStruct_DigestAlgorithm_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return enum.(AwsCryptographyPrimitivesTypes.DigestAlgorithm) + }() +} + +func Aws_cryptography_primitives_DigestInput_message_ToDafny(input []byte) dafny.Sequence { + return func() dafny.Sequence { + var v []interface{} + if input == nil { + return nil + } + for _, e := range input { + v = append(v, e) + } + return dafny.SeqOf(v...) + }() +} + +func Aws_cryptography_primitives_DigestOutput_digest_ToDafny(input []byte) dafny.Sequence { + return func() dafny.Sequence { + var v []interface{} + if input == nil { + return nil + } + for _, e := range input { + v = append(v, e) + } + return dafny.SeqOf(v...) + }() +} + +func Aws_cryptography_primitives_ECDSASignInput_signatureAlgorithm_ToDafny(input awscryptographyprimitivessmithygeneratedtypes.ECDSASignatureAlgorithm) AwsCryptographyPrimitivesTypes.ECDSASignatureAlgorithm { + return func() AwsCryptographyPrimitivesTypes.ECDSASignatureAlgorithm { + + 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(AwsCryptographyPrimitivesTypes.CompanionStruct_ECDSASignatureAlgorithm_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return enum.(AwsCryptographyPrimitivesTypes.ECDSASignatureAlgorithm) + }() +} + +func Aws_cryptography_primitives_ECDSASignInput_signingKey_ToDafny(input []byte) dafny.Sequence { + return func() dafny.Sequence { + var v []interface{} + if input == nil { + return nil + } + for _, e := range input { + v = append(v, e) + } + return dafny.SeqOf(v...) + }() +} + +func Aws_cryptography_primitives_ECDSASignInput_message_ToDafny(input []byte) dafny.Sequence { + return func() dafny.Sequence { + var v []interface{} + if input == nil { + return nil + } + for _, e := range input { + v = append(v, e) + } + return dafny.SeqOf(v...) + }() +} + +func Aws_cryptography_primitives_ECDSASignOutput_signature_ToDafny(input []byte) dafny.Sequence { + return func() dafny.Sequence { + var v []interface{} + if input == nil { + return nil + } + for _, e := range input { + v = append(v, e) + } + return dafny.SeqOf(v...) + }() +} + +func Aws_cryptography_primitives_ECDSAVerifyInput_signatureAlgorithm_ToDafny(input awscryptographyprimitivessmithygeneratedtypes.ECDSASignatureAlgorithm) AwsCryptographyPrimitivesTypes.ECDSASignatureAlgorithm { + return func() AwsCryptographyPrimitivesTypes.ECDSASignatureAlgorithm { + + 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(AwsCryptographyPrimitivesTypes.CompanionStruct_ECDSASignatureAlgorithm_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return enum.(AwsCryptographyPrimitivesTypes.ECDSASignatureAlgorithm) + }() +} + +func Aws_cryptography_primitives_ECDSAVerifyInput_verificationKey_ToDafny(input []byte) dafny.Sequence { + return func() dafny.Sequence { + var v []interface{} + if input == nil { + return nil + } + for _, e := range input { + v = append(v, e) + } + return dafny.SeqOf(v...) + }() +} + +func Aws_cryptography_primitives_ECDSAVerifyInput_message_ToDafny(input []byte) dafny.Sequence { + return func() dafny.Sequence { + var v []interface{} + if input == nil { + return nil + } + for _, e := range input { + v = append(v, e) + } + return dafny.SeqOf(v...) + }() +} + +func Aws_cryptography_primitives_ECDSAVerifyInput_signature_ToDafny(input []byte) dafny.Sequence { + return func() dafny.Sequence { + var v []interface{} + if input == nil { + return nil + } + for _, e := range input { + v = append(v, e) + } + return dafny.SeqOf(v...) + }() +} + +func Aws_cryptography_primitives_ECDSAVerifyOutput_success_ToDafny(input bool) bool { + return func() bool { + + return input + }() +} + +func Aws_cryptography_primitives_GenerateECCKeyPairInput_eccCurve_ToDafny(input awscryptographyprimitivessmithygeneratedtypes.ECDHCurveSpec) AwsCryptographyPrimitivesTypes.ECDHCurveSpec { + return func() AwsCryptographyPrimitivesTypes.ECDHCurveSpec { + + 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(AwsCryptographyPrimitivesTypes.CompanionStruct_ECDHCurveSpec_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return enum.(AwsCryptographyPrimitivesTypes.ECDHCurveSpec) + }() +} + +func Aws_cryptography_primitives_GenerateECCKeyPairOutput_eccCurve_ToDafny(input awscryptographyprimitivessmithygeneratedtypes.ECDHCurveSpec) AwsCryptographyPrimitivesTypes.ECDHCurveSpec { + return func() AwsCryptographyPrimitivesTypes.ECDHCurveSpec { + + 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(AwsCryptographyPrimitivesTypes.CompanionStruct_ECDHCurveSpec_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return enum.(AwsCryptographyPrimitivesTypes.ECDHCurveSpec) + }() +} + +func Aws_cryptography_primitives_GenerateECCKeyPairOutput_privateKey_ToDafny(input awscryptographyprimitivessmithygeneratedtypes.ECCPrivateKey) AwsCryptographyPrimitivesTypes.ECCPrivateKey { + return func() AwsCryptographyPrimitivesTypes.ECCPrivateKey { + + return AwsCryptographyPrimitivesTypes.Companion_ECCPrivateKey_.Create_ECCPrivateKey_(Aws_cryptography_primitives_ECCPrivateKey_pem_ToDafny(input.Pem)) + }() +} + +func Aws_cryptography_primitives_GenerateECCKeyPairOutput_publicKey_ToDafny(input awscryptographyprimitivessmithygeneratedtypes.ECCPublicKey) AwsCryptographyPrimitivesTypes.ECCPublicKey { + return func() AwsCryptographyPrimitivesTypes.ECCPublicKey { + + return AwsCryptographyPrimitivesTypes.Companion_ECCPublicKey_.Create_ECCPublicKey_(Aws_cryptography_primitives_ECCPublicKey_der_ToDafny(input.Der)) + }() +} + +func Aws_cryptography_primitives_GenerateECDSASignatureKeyInput_signatureAlgorithm_ToDafny(input awscryptographyprimitivessmithygeneratedtypes.ECDSASignatureAlgorithm) AwsCryptographyPrimitivesTypes.ECDSASignatureAlgorithm { + return func() AwsCryptographyPrimitivesTypes.ECDSASignatureAlgorithm { + + 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(AwsCryptographyPrimitivesTypes.CompanionStruct_ECDSASignatureAlgorithm_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return enum.(AwsCryptographyPrimitivesTypes.ECDSASignatureAlgorithm) + }() +} + +func Aws_cryptography_primitives_GenerateECDSASignatureKeyOutput_signatureAlgorithm_ToDafny(input awscryptographyprimitivessmithygeneratedtypes.ECDSASignatureAlgorithm) AwsCryptographyPrimitivesTypes.ECDSASignatureAlgorithm { + return func() AwsCryptographyPrimitivesTypes.ECDSASignatureAlgorithm { + + 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(AwsCryptographyPrimitivesTypes.CompanionStruct_ECDSASignatureAlgorithm_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return enum.(AwsCryptographyPrimitivesTypes.ECDSASignatureAlgorithm) + }() +} + +func Aws_cryptography_primitives_GenerateECDSASignatureKeyOutput_verificationKey_ToDafny(input []byte) dafny.Sequence { + return func() dafny.Sequence { + var v []interface{} + if input == nil { + return nil + } + for _, e := range input { + v = append(v, e) + } + return dafny.SeqOf(v...) + }() +} + +func Aws_cryptography_primitives_GenerateECDSASignatureKeyOutput_signingKey_ToDafny(input []byte) dafny.Sequence { + return func() dafny.Sequence { + var v []interface{} + if input == nil { + return nil + } + for _, e := range input { + v = append(v, e) + } + return dafny.SeqOf(v...) + }() +} + +func Aws_cryptography_primitives_GenerateRandomBytesInput_length_ToDafny(input int32) int32 { + return func() int32 { + + return input + }() +} + +func Aws_cryptography_primitives_GenerateRandomBytesOutput_data_ToDafny(input []byte) dafny.Sequence { + return func() dafny.Sequence { + var v []interface{} + if input == nil { + return nil + } + for _, e := range input { + v = append(v, e) + } + return dafny.SeqOf(v...) + }() +} + +func Aws_cryptography_primitives_GenerateRSAKeyPairInput_lengthBits_ToDafny(input int32) int32 { + return func() int32 { + + return input + }() +} + +func Aws_cryptography_primitives_GenerateRSAKeyPairOutput_publicKey_ToDafny(input awscryptographyprimitivessmithygeneratedtypes.RSAPublicKey) AwsCryptographyPrimitivesTypes.RSAPublicKey { + return func() AwsCryptographyPrimitivesTypes.RSAPublicKey { + + return AwsCryptographyPrimitivesTypes.Companion_RSAPublicKey_.Create_RSAPublicKey_(Aws_cryptography_primitives_RSAPublicKey_lengthBits_ToDafny(input.LengthBits), Aws_cryptography_primitives_RSAPublicKey_pem_ToDafny(input.Pem)) + }() +} + +func Aws_cryptography_primitives_RSAPublicKey_lengthBits_ToDafny(input int32) int32 { + return func() int32 { + + return input + }() +} + +func Aws_cryptography_primitives_RSAPublicKey_pem_ToDafny(input []byte) dafny.Sequence { + return func() dafny.Sequence { + var v []interface{} + if input == nil { + return nil + } + for _, e := range input { + v = append(v, e) + } + return dafny.SeqOf(v...) + }() +} + +func Aws_cryptography_primitives_GenerateRSAKeyPairOutput_privateKey_ToDafny(input awscryptographyprimitivessmithygeneratedtypes.RSAPrivateKey) AwsCryptographyPrimitivesTypes.RSAPrivateKey { + return func() AwsCryptographyPrimitivesTypes.RSAPrivateKey { + + return AwsCryptographyPrimitivesTypes.Companion_RSAPrivateKey_.Create_RSAPrivateKey_(Aws_cryptography_primitives_RSAPrivateKey_lengthBits_ToDafny(input.LengthBits), Aws_cryptography_primitives_RSAPrivateKey_pem_ToDafny(input.Pem)) + }() +} + +func Aws_cryptography_primitives_RSAPrivateKey_lengthBits_ToDafny(input int32) int32 { + return func() int32 { + + return input + }() +} + +func Aws_cryptography_primitives_RSAPrivateKey_pem_ToDafny(input []byte) dafny.Sequence { + return func() dafny.Sequence { + var v []interface{} + if input == nil { + return nil + } + for _, e := range input { + v = append(v, e) + } + return dafny.SeqOf(v...) + }() +} + +func Aws_cryptography_primitives_GetPublicKeyFromPrivateKeyInput_eccCurve_ToDafny(input awscryptographyprimitivessmithygeneratedtypes.ECDHCurveSpec) AwsCryptographyPrimitivesTypes.ECDHCurveSpec { + return func() AwsCryptographyPrimitivesTypes.ECDHCurveSpec { + + 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(AwsCryptographyPrimitivesTypes.CompanionStruct_ECDHCurveSpec_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return enum.(AwsCryptographyPrimitivesTypes.ECDHCurveSpec) + }() +} + +func Aws_cryptography_primitives_GetPublicKeyFromPrivateKeyInput_privateKey_ToDafny(input awscryptographyprimitivessmithygeneratedtypes.ECCPrivateKey) AwsCryptographyPrimitivesTypes.ECCPrivateKey { + return func() AwsCryptographyPrimitivesTypes.ECCPrivateKey { + + return AwsCryptographyPrimitivesTypes.Companion_ECCPrivateKey_.Create_ECCPrivateKey_(Aws_cryptography_primitives_ECCPrivateKey_pem_ToDafny(input.Pem)) + }() +} + +func Aws_cryptography_primitives_GetPublicKeyFromPrivateKeyOutput_eccCurve_ToDafny(input awscryptographyprimitivessmithygeneratedtypes.ECDHCurveSpec) AwsCryptographyPrimitivesTypes.ECDHCurveSpec { + return func() AwsCryptographyPrimitivesTypes.ECDHCurveSpec { + + 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(AwsCryptographyPrimitivesTypes.CompanionStruct_ECDHCurveSpec_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return enum.(AwsCryptographyPrimitivesTypes.ECDHCurveSpec) + }() +} + +func Aws_cryptography_primitives_GetPublicKeyFromPrivateKeyOutput_privateKey_ToDafny(input awscryptographyprimitivessmithygeneratedtypes.ECCPrivateKey) AwsCryptographyPrimitivesTypes.ECCPrivateKey { + return func() AwsCryptographyPrimitivesTypes.ECCPrivateKey { + + return AwsCryptographyPrimitivesTypes.Companion_ECCPrivateKey_.Create_ECCPrivateKey_(Aws_cryptography_primitives_ECCPrivateKey_pem_ToDafny(input.Pem)) + }() +} + +func Aws_cryptography_primitives_GetPublicKeyFromPrivateKeyOutput_publicKey_ToDafny(input []byte) dafny.Sequence { + return func() dafny.Sequence { + var v []interface{} + if input == nil { + return nil + } + for _, e := range input { + v = append(v, e) + } + return dafny.SeqOf(v...) + }() +} + +func Aws_cryptography_primitives_GetRSAKeyModulusLengthInput_publicKey_ToDafny(input []byte) dafny.Sequence { + return func() dafny.Sequence { + var v []interface{} + if input == nil { + return nil + } + for _, e := range input { + v = append(v, e) + } + return dafny.SeqOf(v...) + }() +} + +func Aws_cryptography_primitives_GetRSAKeyModulusLengthOutput_length_ToDafny(input int32) int32 { + return func() int32 { + + return input + }() +} + +func Aws_cryptography_primitives_HkdfInput_digestAlgorithm_ToDafny(input awscryptographyprimitivessmithygeneratedtypes.DigestAlgorithm) AwsCryptographyPrimitivesTypes.DigestAlgorithm { + return func() AwsCryptographyPrimitivesTypes.DigestAlgorithm { + + 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(AwsCryptographyPrimitivesTypes.CompanionStruct_DigestAlgorithm_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return enum.(AwsCryptographyPrimitivesTypes.DigestAlgorithm) + }() +} + +func Aws_cryptography_primitives_HkdfInput_salt_ToDafny(input []byte) Wrappers.Option { + return func() Wrappers.Option { + var v []interface{} + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + for _, e := range input { + v = append(v, e) + } + return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(v...)) + }() +} + +func Aws_cryptography_primitives_HkdfInput_ikm_ToDafny(input []byte) dafny.Sequence { + return func() dafny.Sequence { + var v []interface{} + if input == nil { + return nil + } + for _, e := range input { + v = append(v, e) + } + return dafny.SeqOf(v...) + }() +} + +func Aws_cryptography_primitives_HkdfInput_info_ToDafny(input []byte) dafny.Sequence { + return func() dafny.Sequence { + var v []interface{} + if input == nil { + return nil + } + for _, e := range input { + v = append(v, e) + } + return dafny.SeqOf(v...) + }() +} + +func Aws_cryptography_primitives_HkdfInput_expectedLength_ToDafny(input int32) int32 { + return func() int32 { + + return input + }() +} + +func Aws_cryptography_primitives_HkdfOutput_okm_ToDafny(input []byte) dafny.Sequence { + return func() dafny.Sequence { + var v []interface{} + if input == nil { + return nil + } + for _, e := range input { + v = append(v, e) + } + return dafny.SeqOf(v...) + }() +} + +func Aws_cryptography_primitives_HkdfExpandInput_digestAlgorithm_ToDafny(input awscryptographyprimitivessmithygeneratedtypes.DigestAlgorithm) AwsCryptographyPrimitivesTypes.DigestAlgorithm { + return func() AwsCryptographyPrimitivesTypes.DigestAlgorithm { + + 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(AwsCryptographyPrimitivesTypes.CompanionStruct_DigestAlgorithm_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return enum.(AwsCryptographyPrimitivesTypes.DigestAlgorithm) + }() +} + +func Aws_cryptography_primitives_HkdfExpandInput_prk_ToDafny(input []byte) dafny.Sequence { + return func() dafny.Sequence { + var v []interface{} + if input == nil { + return nil + } + for _, e := range input { + v = append(v, e) + } + return dafny.SeqOf(v...) + }() +} + +func Aws_cryptography_primitives_HkdfExpandInput_info_ToDafny(input []byte) dafny.Sequence { + return func() dafny.Sequence { + var v []interface{} + if input == nil { + return nil + } + for _, e := range input { + v = append(v, e) + } + return dafny.SeqOf(v...) + }() +} + +func Aws_cryptography_primitives_HkdfExpandInput_expectedLength_ToDafny(input int32) int32 { + return func() int32 { + + return input + }() +} + +func Aws_cryptography_primitives_HkdfExpandOutput_okm_ToDafny(input []byte) dafny.Sequence { + return func() dafny.Sequence { + var v []interface{} + if input == nil { + return nil + } + for _, e := range input { + v = append(v, e) + } + return dafny.SeqOf(v...) + }() +} + +func Aws_cryptography_primitives_HkdfExtractInput_digestAlgorithm_ToDafny(input awscryptographyprimitivessmithygeneratedtypes.DigestAlgorithm) AwsCryptographyPrimitivesTypes.DigestAlgorithm { + return func() AwsCryptographyPrimitivesTypes.DigestAlgorithm { + + 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(AwsCryptographyPrimitivesTypes.CompanionStruct_DigestAlgorithm_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return enum.(AwsCryptographyPrimitivesTypes.DigestAlgorithm) + }() +} + +func Aws_cryptography_primitives_HkdfExtractInput_salt_ToDafny(input []byte) Wrappers.Option { + return func() Wrappers.Option { + var v []interface{} + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + for _, e := range input { + v = append(v, e) + } + return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(v...)) + }() +} + +func Aws_cryptography_primitives_HkdfExtractInput_ikm_ToDafny(input []byte) dafny.Sequence { + return func() dafny.Sequence { + var v []interface{} + if input == nil { + return nil + } + for _, e := range input { + v = append(v, e) + } + return dafny.SeqOf(v...) + }() +} + +func Aws_cryptography_primitives_HkdfExtractOutput_prk_ToDafny(input []byte) dafny.Sequence { + return func() dafny.Sequence { + var v []interface{} + if input == nil { + return nil + } + for _, e := range input { + v = append(v, e) + } + return dafny.SeqOf(v...) + }() +} + +func Aws_cryptography_primitives_HMacInput_digestAlgorithm_ToDafny(input awscryptographyprimitivessmithygeneratedtypes.DigestAlgorithm) AwsCryptographyPrimitivesTypes.DigestAlgorithm { + return func() AwsCryptographyPrimitivesTypes.DigestAlgorithm { + + 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(AwsCryptographyPrimitivesTypes.CompanionStruct_DigestAlgorithm_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return enum.(AwsCryptographyPrimitivesTypes.DigestAlgorithm) + }() +} + +func Aws_cryptography_primitives_HMacInput_key_ToDafny(input []byte) dafny.Sequence { + return func() dafny.Sequence { + var v []interface{} + if input == nil { + return nil + } + for _, e := range input { + v = append(v, e) + } + return dafny.SeqOf(v...) + }() +} + +func Aws_cryptography_primitives_HMacInput_message_ToDafny(input []byte) dafny.Sequence { + return func() dafny.Sequence { + var v []interface{} + if input == nil { + return nil + } + for _, e := range input { + v = append(v, e) + } + return dafny.SeqOf(v...) + }() +} + +func Aws_cryptography_primitives_HMacOutput_digest_ToDafny(input []byte) dafny.Sequence { + return func() dafny.Sequence { + var v []interface{} + if input == nil { + return nil + } + for _, e := range input { + v = append(v, e) + } + return dafny.SeqOf(v...) + }() +} + +func Aws_cryptography_primitives_KdfCtrInput_digestAlgorithm_ToDafny(input awscryptographyprimitivessmithygeneratedtypes.DigestAlgorithm) AwsCryptographyPrimitivesTypes.DigestAlgorithm { + return func() AwsCryptographyPrimitivesTypes.DigestAlgorithm { + + 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(AwsCryptographyPrimitivesTypes.CompanionStruct_DigestAlgorithm_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return enum.(AwsCryptographyPrimitivesTypes.DigestAlgorithm) + }() +} + +func Aws_cryptography_primitives_KdfCtrInput_ikm_ToDafny(input []byte) dafny.Sequence { + return func() dafny.Sequence { + var v []interface{} + if input == nil { + return nil + } + for _, e := range input { + v = append(v, e) + } + return dafny.SeqOf(v...) + }() +} + +func Aws_cryptography_primitives_KdfCtrInput_expectedLength_ToDafny(input int32) int32 { + return func() int32 { + + return input + }() +} + +func Aws_cryptography_primitives_KdfCtrInput_purpose_ToDafny(input []byte) Wrappers.Option { + return func() Wrappers.Option { + var v []interface{} + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + for _, e := range input { + v = append(v, e) + } + return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(v...)) + }() +} + +func Aws_cryptography_primitives_KdfCtrInput_nonce_ToDafny(input []byte) Wrappers.Option { + return func() Wrappers.Option { + var v []interface{} + if input == nil { + return Wrappers.Companion_Option_.Create_None_() + } + for _, e := range input { + v = append(v, e) + } + return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(v...)) + }() +} + +func Aws_cryptography_primitives_KdfCtrOutput_okm_ToDafny(input []byte) dafny.Sequence { + return func() dafny.Sequence { + var v []interface{} + if input == nil { + return nil + } + for _, e := range input { + v = append(v, e) + } + return dafny.SeqOf(v...) + }() +} + +func Aws_cryptography_primitives_ParsePublicKeyInput_publicKey_ToDafny(input []byte) dafny.Sequence { + return func() dafny.Sequence { + var v []interface{} + if input == nil { + return nil + } + for _, e := range input { + v = append(v, e) + } + return dafny.SeqOf(v...) + }() +} + +func Aws_cryptography_primitives_ParsePublicKeyOutput_publicKey_ToDafny(input awscryptographyprimitivessmithygeneratedtypes.ECCPublicKey) AwsCryptographyPrimitivesTypes.ECCPublicKey { + return func() AwsCryptographyPrimitivesTypes.ECCPublicKey { + + return AwsCryptographyPrimitivesTypes.Companion_ECCPublicKey_.Create_ECCPublicKey_(Aws_cryptography_primitives_ECCPublicKey_der_ToDafny(input.Der)) + }() +} + +func Aws_cryptography_primitives_RSADecryptInput_padding_ToDafny(input awscryptographyprimitivessmithygeneratedtypes.RSAPaddingMode) AwsCryptographyPrimitivesTypes.RSAPaddingMode { + return func() AwsCryptographyPrimitivesTypes.RSAPaddingMode { + + 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(AwsCryptographyPrimitivesTypes.CompanionStruct_RSAPaddingMode_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return enum.(AwsCryptographyPrimitivesTypes.RSAPaddingMode) + }() +} + +func Aws_cryptography_primitives_RSADecryptInput_privateKey_ToDafny(input []byte) dafny.Sequence { + return func() dafny.Sequence { + var v []interface{} + if input == nil { + return nil + } + for _, e := range input { + v = append(v, e) + } + return dafny.SeqOf(v...) + }() +} + +func Aws_cryptography_primitives_RSADecryptInput_cipherText_ToDafny(input []byte) dafny.Sequence { + return func() dafny.Sequence { + var v []interface{} + if input == nil { + return nil + } + for _, e := range input { + v = append(v, e) + } + return dafny.SeqOf(v...) + }() +} + +func Aws_cryptography_primitives_RSADecryptOutput_plaintext_ToDafny(input []byte) dafny.Sequence { + return func() dafny.Sequence { + var v []interface{} + if input == nil { + return nil + } + for _, e := range input { + v = append(v, e) + } + return dafny.SeqOf(v...) + }() +} + +func Aws_cryptography_primitives_RSAEncryptInput_padding_ToDafny(input awscryptographyprimitivessmithygeneratedtypes.RSAPaddingMode) AwsCryptographyPrimitivesTypes.RSAPaddingMode { + return func() AwsCryptographyPrimitivesTypes.RSAPaddingMode { + + 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(AwsCryptographyPrimitivesTypes.CompanionStruct_RSAPaddingMode_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return enum.(AwsCryptographyPrimitivesTypes.RSAPaddingMode) + }() +} + +func Aws_cryptography_primitives_RSAEncryptInput_publicKey_ToDafny(input []byte) dafny.Sequence { + return func() dafny.Sequence { + var v []interface{} + if input == nil { + return nil + } + for _, e := range input { + v = append(v, e) + } + return dafny.SeqOf(v...) + }() +} + +func Aws_cryptography_primitives_RSAEncryptInput_plaintext_ToDafny(input []byte) dafny.Sequence { + return func() dafny.Sequence { + var v []interface{} + if input == nil { + return nil + } + for _, e := range input { + v = append(v, e) + } + return dafny.SeqOf(v...) + }() +} + +func Aws_cryptography_primitives_RSAEncryptOutput_cipherText_ToDafny(input []byte) dafny.Sequence { + return func() dafny.Sequence { + var v []interface{} + if input == nil { + return nil + } + for _, e := range input { + v = append(v, e) + } + return dafny.SeqOf(v...) + }() +} + +func Aws_cryptography_primitives_ValidatePublicKeyInput_eccCurve_ToDafny(input awscryptographyprimitivessmithygeneratedtypes.ECDHCurveSpec) AwsCryptographyPrimitivesTypes.ECDHCurveSpec { + return func() AwsCryptographyPrimitivesTypes.ECDHCurveSpec { + + 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(AwsCryptographyPrimitivesTypes.CompanionStruct_ECDHCurveSpec_{}.AllSingletonConstructors()), 0; i < index; i++ { + var ok bool + enum, ok = allEnums() + if !ok { + break + } + } + return enum.(AwsCryptographyPrimitivesTypes.ECDHCurveSpec) + }() +} + +func Aws_cryptography_primitives_ValidatePublicKeyInput_publicKey_ToDafny(input []byte) dafny.Sequence { + return func() dafny.Sequence { + var v []interface{} + if input == nil { + return nil + } + for _, e := range input { + v = append(v, e) + } + return dafny.SeqOf(v...) + }() +} + +func Aws_cryptography_primitives_ValidatePublicKeyOutput_success_ToDafny(input bool) bool { + return func() bool { + + return input + }() +} + +func Aws_cryptography_primitives_AwsCryptographicPrimitivesError_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_primitives_AES_CTR_keyLength_ToDafny(input int32) int32 { + return func() int32 { + + return input + }() +} + +func Aws_cryptography_primitives_AES_CTR_nonceLength_ToDafny(input int32) int32 { + return func() int32 { + + return input + }() +} diff --git a/customer-preview/primitives/awscryptographyprimitivessmithygenerated/to_native.go b/customer-preview/primitives/awscryptographyprimitivessmithygenerated/to_native.go new file mode 100644 index 000000000..cf93b6820 --- /dev/null +++ b/customer-preview/primitives/awscryptographyprimitivessmithygenerated/to_native.go @@ -0,0 +1,1821 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package awscryptographyprimitivessmithygenerated + +import ( + "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesTypes" + "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/dafny-lang/DafnyRuntimeGo/v4/dafny" +) + +func AESDecryptInput_FromDafny(dafnyInput AwsCryptographyPrimitivesTypes.AESDecryptInput) awscryptographyprimitivessmithygeneratedtypes.AESDecryptInput { + + return awscryptographyprimitivessmithygeneratedtypes.AESDecryptInput{EncAlg: Aws_cryptography_primitives_AESDecryptInput_encAlg_FromDafny(dafnyInput.Dtor_encAlg()), + Key: Aws_cryptography_primitives_AESDecryptInput_key_FromDafny(dafnyInput.Dtor_key()), + CipherTxt: Aws_cryptography_primitives_AESDecryptInput_cipherTxt_FromDafny(dafnyInput.Dtor_cipherTxt()), + AuthTag: Aws_cryptography_primitives_AESDecryptInput_authTag_FromDafny(dafnyInput.Dtor_authTag()), + Iv: Aws_cryptography_primitives_AESDecryptInput_iv_FromDafny(dafnyInput.Dtor_iv()), + Aad: Aws_cryptography_primitives_AESDecryptInput_aad_FromDafny(dafnyInput.Dtor_aad()), + } + +} + +func AESEncryptInput_FromDafny(dafnyInput AwsCryptographyPrimitivesTypes.AESEncryptInput) awscryptographyprimitivessmithygeneratedtypes.AESEncryptInput { + + return awscryptographyprimitivessmithygeneratedtypes.AESEncryptInput{EncAlg: Aws_cryptography_primitives_AESEncryptInput_encAlg_FromDafny(dafnyInput.Dtor_encAlg()), + Iv: Aws_cryptography_primitives_AESEncryptInput_iv_FromDafny(dafnyInput.Dtor_iv()), + Key: Aws_cryptography_primitives_AESEncryptInput_key_FromDafny(dafnyInput.Dtor_key()), + Msg: Aws_cryptography_primitives_AESEncryptInput_msg_FromDafny(dafnyInput.Dtor_msg()), + Aad: Aws_cryptography_primitives_AESEncryptInput_aad_FromDafny(dafnyInput.Dtor_aad()), + } + +} + +func AESEncryptOutput_FromDafny(dafnyOutput AwsCryptographyPrimitivesTypes.AESEncryptOutput) awscryptographyprimitivessmithygeneratedtypes.AESEncryptOutput { + + return awscryptographyprimitivessmithygeneratedtypes.AESEncryptOutput{CipherText: Aws_cryptography_primitives_AESEncryptOutput_cipherText_FromDafny(dafnyOutput.Dtor_cipherText()), + AuthTag: Aws_cryptography_primitives_AESEncryptOutput_authTag_FromDafny(dafnyOutput.Dtor_authTag()), + } + +} + +func AesKdfCtrInput_FromDafny(dafnyInput AwsCryptographyPrimitivesTypes.AesKdfCtrInput) awscryptographyprimitivessmithygeneratedtypes.AesKdfCtrInput { + + return awscryptographyprimitivessmithygeneratedtypes.AesKdfCtrInput{Ikm: Aws_cryptography_primitives_AesKdfCtrInput_ikm_FromDafny(dafnyInput.Dtor_ikm()), + ExpectedLength: Aws_cryptography_primitives_AesKdfCtrInput_expectedLength_FromDafny(dafnyInput.Dtor_expectedLength()), + Nonce: Aws_cryptography_primitives_AesKdfCtrInput_nonce_FromDafny(dafnyInput.Dtor_nonce().UnwrapOr(nil)), + } + +} + +func CompressPublicKeyInput_FromDafny(dafnyInput AwsCryptographyPrimitivesTypes.CompressPublicKeyInput) awscryptographyprimitivessmithygeneratedtypes.CompressPublicKeyInput { + + return awscryptographyprimitivessmithygeneratedtypes.CompressPublicKeyInput{PublicKey: Aws_cryptography_primitives_CompressPublicKeyInput_publicKey_FromDafny(dafnyInput.Dtor_publicKey()), + EccCurve: Aws_cryptography_primitives_CompressPublicKeyInput_eccCurve_FromDafny(dafnyInput.Dtor_eccCurve()), + } + +} + +func CompressPublicKeyOutput_FromDafny(dafnyOutput AwsCryptographyPrimitivesTypes.CompressPublicKeyOutput) awscryptographyprimitivessmithygeneratedtypes.CompressPublicKeyOutput { + + return awscryptographyprimitivessmithygeneratedtypes.CompressPublicKeyOutput{CompressedPublicKey: Aws_cryptography_primitives_CompressPublicKeyOutput_compressedPublicKey_FromDafny(dafnyOutput.Dtor_compressedPublicKey())} + +} + +func DecompressPublicKeyInput_FromDafny(dafnyInput AwsCryptographyPrimitivesTypes.DecompressPublicKeyInput) awscryptographyprimitivessmithygeneratedtypes.DecompressPublicKeyInput { + + return awscryptographyprimitivessmithygeneratedtypes.DecompressPublicKeyInput{CompressedPublicKey: Aws_cryptography_primitives_DecompressPublicKeyInput_compressedPublicKey_FromDafny(dafnyInput.Dtor_compressedPublicKey()), + EccCurve: Aws_cryptography_primitives_DecompressPublicKeyInput_eccCurve_FromDafny(dafnyInput.Dtor_eccCurve()), + } + +} + +func DecompressPublicKeyOutput_FromDafny(dafnyOutput AwsCryptographyPrimitivesTypes.DecompressPublicKeyOutput) awscryptographyprimitivessmithygeneratedtypes.DecompressPublicKeyOutput { + + return awscryptographyprimitivessmithygeneratedtypes.DecompressPublicKeyOutput{PublicKey: Aws_cryptography_primitives_DecompressPublicKeyOutput_publicKey_FromDafny(dafnyOutput.Dtor_publicKey())} + +} + +func DeriveSharedSecretInput_FromDafny(dafnyInput AwsCryptographyPrimitivesTypes.DeriveSharedSecretInput) awscryptographyprimitivessmithygeneratedtypes.DeriveSharedSecretInput { + + return awscryptographyprimitivessmithygeneratedtypes.DeriveSharedSecretInput{EccCurve: Aws_cryptography_primitives_DeriveSharedSecretInput_eccCurve_FromDafny(dafnyInput.Dtor_eccCurve()), + PrivateKey: Aws_cryptography_primitives_DeriveSharedSecretInput_privateKey_FromDafny(dafnyInput.Dtor_privateKey()), + PublicKey: Aws_cryptography_primitives_DeriveSharedSecretInput_publicKey_FromDafny(dafnyInput.Dtor_publicKey()), + } + +} + +func DeriveSharedSecretOutput_FromDafny(dafnyOutput AwsCryptographyPrimitivesTypes.DeriveSharedSecretOutput) awscryptographyprimitivessmithygeneratedtypes.DeriveSharedSecretOutput { + + return awscryptographyprimitivessmithygeneratedtypes.DeriveSharedSecretOutput{SharedSecret: Aws_cryptography_primitives_DeriveSharedSecretOutput_sharedSecret_FromDafny(dafnyOutput.Dtor_sharedSecret())} + +} + +func DigestInput_FromDafny(dafnyInput AwsCryptographyPrimitivesTypes.DigestInput) awscryptographyprimitivessmithygeneratedtypes.DigestInput { + + return awscryptographyprimitivessmithygeneratedtypes.DigestInput{DigestAlgorithm: Aws_cryptography_primitives_DigestInput_digestAlgorithm_FromDafny(dafnyInput.Dtor_digestAlgorithm()), + Message: Aws_cryptography_primitives_DigestInput_message_FromDafny(dafnyInput.Dtor_message()), + } + +} + +func ECDSASignInput_FromDafny(dafnyInput AwsCryptographyPrimitivesTypes.ECDSASignInput) awscryptographyprimitivessmithygeneratedtypes.ECDSASignInput { + + return awscryptographyprimitivessmithygeneratedtypes.ECDSASignInput{SignatureAlgorithm: Aws_cryptography_primitives_ECDSASignInput_signatureAlgorithm_FromDafny(dafnyInput.Dtor_signatureAlgorithm()), + SigningKey: Aws_cryptography_primitives_ECDSASignInput_signingKey_FromDafny(dafnyInput.Dtor_signingKey()), + Message: Aws_cryptography_primitives_ECDSASignInput_message_FromDafny(dafnyInput.Dtor_message()), + } + +} + +func ECDSAVerifyInput_FromDafny(dafnyInput AwsCryptographyPrimitivesTypes.ECDSAVerifyInput) awscryptographyprimitivessmithygeneratedtypes.ECDSAVerifyInput { + + return awscryptographyprimitivessmithygeneratedtypes.ECDSAVerifyInput{SignatureAlgorithm: Aws_cryptography_primitives_ECDSAVerifyInput_signatureAlgorithm_FromDafny(dafnyInput.Dtor_signatureAlgorithm()), + VerificationKey: Aws_cryptography_primitives_ECDSAVerifyInput_verificationKey_FromDafny(dafnyInput.Dtor_verificationKey()), + Message: Aws_cryptography_primitives_ECDSAVerifyInput_message_FromDafny(dafnyInput.Dtor_message()), + Signature: Aws_cryptography_primitives_ECDSAVerifyInput_signature_FromDafny(dafnyInput.Dtor_signature()), + } + +} + +func GenerateECCKeyPairInput_FromDafny(dafnyInput AwsCryptographyPrimitivesTypes.GenerateECCKeyPairInput) awscryptographyprimitivessmithygeneratedtypes.GenerateECCKeyPairInput { + + return awscryptographyprimitivessmithygeneratedtypes.GenerateECCKeyPairInput{EccCurve: Aws_cryptography_primitives_GenerateECCKeyPairInput_eccCurve_FromDafny(dafnyInput.Dtor_eccCurve())} + +} + +func GenerateECCKeyPairOutput_FromDafny(dafnyOutput AwsCryptographyPrimitivesTypes.GenerateECCKeyPairOutput) awscryptographyprimitivessmithygeneratedtypes.GenerateECCKeyPairOutput { + + return awscryptographyprimitivessmithygeneratedtypes.GenerateECCKeyPairOutput{EccCurve: Aws_cryptography_primitives_GenerateECCKeyPairOutput_eccCurve_FromDafny(dafnyOutput.Dtor_eccCurve()), + PrivateKey: Aws_cryptography_primitives_GenerateECCKeyPairOutput_privateKey_FromDafny(dafnyOutput.Dtor_privateKey()), + PublicKey: Aws_cryptography_primitives_GenerateECCKeyPairOutput_publicKey_FromDafny(dafnyOutput.Dtor_publicKey()), + } + +} + +func GenerateECDSASignatureKeyInput_FromDafny(dafnyInput AwsCryptographyPrimitivesTypes.GenerateECDSASignatureKeyInput) awscryptographyprimitivessmithygeneratedtypes.GenerateECDSASignatureKeyInput { + + return awscryptographyprimitivessmithygeneratedtypes.GenerateECDSASignatureKeyInput{SignatureAlgorithm: Aws_cryptography_primitives_GenerateECDSASignatureKeyInput_signatureAlgorithm_FromDafny(dafnyInput.Dtor_signatureAlgorithm())} + +} + +func GenerateECDSASignatureKeyOutput_FromDafny(dafnyOutput AwsCryptographyPrimitivesTypes.GenerateECDSASignatureKeyOutput) awscryptographyprimitivessmithygeneratedtypes.GenerateECDSASignatureKeyOutput { + + return awscryptographyprimitivessmithygeneratedtypes.GenerateECDSASignatureKeyOutput{SignatureAlgorithm: Aws_cryptography_primitives_GenerateECDSASignatureKeyOutput_signatureAlgorithm_FromDafny(dafnyOutput.Dtor_signatureAlgorithm()), + VerificationKey: Aws_cryptography_primitives_GenerateECDSASignatureKeyOutput_verificationKey_FromDafny(dafnyOutput.Dtor_verificationKey()), + SigningKey: Aws_cryptography_primitives_GenerateECDSASignatureKeyOutput_signingKey_FromDafny(dafnyOutput.Dtor_signingKey()), + } + +} + +func GenerateRandomBytesInput_FromDafny(dafnyInput AwsCryptographyPrimitivesTypes.GenerateRandomBytesInput) awscryptographyprimitivessmithygeneratedtypes.GenerateRandomBytesInput { + + return awscryptographyprimitivessmithygeneratedtypes.GenerateRandomBytesInput{Length: Aws_cryptography_primitives_GenerateRandomBytesInput_length_FromDafny(dafnyInput.Dtor_length())} + +} + +func GenerateRSAKeyPairInput_FromDafny(dafnyInput AwsCryptographyPrimitivesTypes.GenerateRSAKeyPairInput) awscryptographyprimitivessmithygeneratedtypes.GenerateRSAKeyPairInput { + + return awscryptographyprimitivessmithygeneratedtypes.GenerateRSAKeyPairInput{LengthBits: Aws_cryptography_primitives_GenerateRSAKeyPairInput_lengthBits_FromDafny(dafnyInput.Dtor_lengthBits())} + +} + +func GenerateRSAKeyPairOutput_FromDafny(dafnyOutput AwsCryptographyPrimitivesTypes.GenerateRSAKeyPairOutput) awscryptographyprimitivessmithygeneratedtypes.GenerateRSAKeyPairOutput { + + return awscryptographyprimitivessmithygeneratedtypes.GenerateRSAKeyPairOutput{PublicKey: Aws_cryptography_primitives_GenerateRSAKeyPairOutput_publicKey_FromDafny(dafnyOutput.Dtor_publicKey()), + PrivateKey: Aws_cryptography_primitives_GenerateRSAKeyPairOutput_privateKey_FromDafny(dafnyOutput.Dtor_privateKey()), + } + +} + +func GetPublicKeyFromPrivateKeyInput_FromDafny(dafnyInput AwsCryptographyPrimitivesTypes.GetPublicKeyFromPrivateKeyInput) awscryptographyprimitivessmithygeneratedtypes.GetPublicKeyFromPrivateKeyInput { + + return awscryptographyprimitivessmithygeneratedtypes.GetPublicKeyFromPrivateKeyInput{EccCurve: Aws_cryptography_primitives_GetPublicKeyFromPrivateKeyInput_eccCurve_FromDafny(dafnyInput.Dtor_eccCurve()), + PrivateKey: Aws_cryptography_primitives_GetPublicKeyFromPrivateKeyInput_privateKey_FromDafny(dafnyInput.Dtor_privateKey()), + } + +} + +func GetPublicKeyFromPrivateKeyOutput_FromDafny(dafnyOutput AwsCryptographyPrimitivesTypes.GetPublicKeyFromPrivateKeyOutput) awscryptographyprimitivessmithygeneratedtypes.GetPublicKeyFromPrivateKeyOutput { + + return awscryptographyprimitivessmithygeneratedtypes.GetPublicKeyFromPrivateKeyOutput{EccCurve: Aws_cryptography_primitives_GetPublicKeyFromPrivateKeyOutput_eccCurve_FromDafny(dafnyOutput.Dtor_eccCurve()), + PrivateKey: Aws_cryptography_primitives_GetPublicKeyFromPrivateKeyOutput_privateKey_FromDafny(dafnyOutput.Dtor_privateKey()), + PublicKey: Aws_cryptography_primitives_GetPublicKeyFromPrivateKeyOutput_publicKey_FromDafny(dafnyOutput.Dtor_publicKey()), + } + +} + +func GetRSAKeyModulusLengthInput_FromDafny(dafnyInput AwsCryptographyPrimitivesTypes.GetRSAKeyModulusLengthInput) awscryptographyprimitivessmithygeneratedtypes.GetRSAKeyModulusLengthInput { + + return awscryptographyprimitivessmithygeneratedtypes.GetRSAKeyModulusLengthInput{PublicKey: Aws_cryptography_primitives_GetRSAKeyModulusLengthInput_publicKey_FromDafny(dafnyInput.Dtor_publicKey())} + +} + +func GetRSAKeyModulusLengthOutput_FromDafny(dafnyOutput AwsCryptographyPrimitivesTypes.GetRSAKeyModulusLengthOutput) awscryptographyprimitivessmithygeneratedtypes.GetRSAKeyModulusLengthOutput { + + return awscryptographyprimitivessmithygeneratedtypes.GetRSAKeyModulusLengthOutput{Length: Aws_cryptography_primitives_GetRSAKeyModulusLengthOutput_length_FromDafny(dafnyOutput.Dtor_length())} + +} + +func HkdfInput_FromDafny(dafnyInput AwsCryptographyPrimitivesTypes.HkdfInput) awscryptographyprimitivessmithygeneratedtypes.HkdfInput { + + return awscryptographyprimitivessmithygeneratedtypes.HkdfInput{DigestAlgorithm: Aws_cryptography_primitives_HkdfInput_digestAlgorithm_FromDafny(dafnyInput.Dtor_digestAlgorithm()), + Salt: Aws_cryptography_primitives_HkdfInput_salt_FromDafny(dafnyInput.Dtor_salt().UnwrapOr(nil)), + Ikm: Aws_cryptography_primitives_HkdfInput_ikm_FromDafny(dafnyInput.Dtor_ikm()), + Info: Aws_cryptography_primitives_HkdfInput_info_FromDafny(dafnyInput.Dtor_info()), + ExpectedLength: Aws_cryptography_primitives_HkdfInput_expectedLength_FromDafny(dafnyInput.Dtor_expectedLength()), + } + +} + +func HkdfExpandInput_FromDafny(dafnyInput AwsCryptographyPrimitivesTypes.HkdfExpandInput) awscryptographyprimitivessmithygeneratedtypes.HkdfExpandInput { + + return awscryptographyprimitivessmithygeneratedtypes.HkdfExpandInput{DigestAlgorithm: Aws_cryptography_primitives_HkdfExpandInput_digestAlgorithm_FromDafny(dafnyInput.Dtor_digestAlgorithm()), + Prk: Aws_cryptography_primitives_HkdfExpandInput_prk_FromDafny(dafnyInput.Dtor_prk()), + Info: Aws_cryptography_primitives_HkdfExpandInput_info_FromDafny(dafnyInput.Dtor_info()), + ExpectedLength: Aws_cryptography_primitives_HkdfExpandInput_expectedLength_FromDafny(dafnyInput.Dtor_expectedLength()), + } + +} + +func HkdfExtractInput_FromDafny(dafnyInput AwsCryptographyPrimitivesTypes.HkdfExtractInput) awscryptographyprimitivessmithygeneratedtypes.HkdfExtractInput { + + return awscryptographyprimitivessmithygeneratedtypes.HkdfExtractInput{DigestAlgorithm: Aws_cryptography_primitives_HkdfExtractInput_digestAlgorithm_FromDafny(dafnyInput.Dtor_digestAlgorithm()), + Salt: Aws_cryptography_primitives_HkdfExtractInput_salt_FromDafny(dafnyInput.Dtor_salt().UnwrapOr(nil)), + Ikm: Aws_cryptography_primitives_HkdfExtractInput_ikm_FromDafny(dafnyInput.Dtor_ikm()), + } + +} + +func HMacInput_FromDafny(dafnyInput AwsCryptographyPrimitivesTypes.HMacInput) awscryptographyprimitivessmithygeneratedtypes.HMacInput { + + return awscryptographyprimitivessmithygeneratedtypes.HMacInput{DigestAlgorithm: Aws_cryptography_primitives_HMacInput_digestAlgorithm_FromDafny(dafnyInput.Dtor_digestAlgorithm()), + Key: Aws_cryptography_primitives_HMacInput_key_FromDafny(dafnyInput.Dtor_key()), + Message: Aws_cryptography_primitives_HMacInput_message_FromDafny(dafnyInput.Dtor_message()), + } + +} + +func KdfCtrInput_FromDafny(dafnyInput AwsCryptographyPrimitivesTypes.KdfCtrInput) awscryptographyprimitivessmithygeneratedtypes.KdfCtrInput { + + return awscryptographyprimitivessmithygeneratedtypes.KdfCtrInput{DigestAlgorithm: Aws_cryptography_primitives_KdfCtrInput_digestAlgorithm_FromDafny(dafnyInput.Dtor_digestAlgorithm()), + Ikm: Aws_cryptography_primitives_KdfCtrInput_ikm_FromDafny(dafnyInput.Dtor_ikm()), + ExpectedLength: Aws_cryptography_primitives_KdfCtrInput_expectedLength_FromDafny(dafnyInput.Dtor_expectedLength()), + Purpose: Aws_cryptography_primitives_KdfCtrInput_purpose_FromDafny(dafnyInput.Dtor_purpose().UnwrapOr(nil)), + Nonce: Aws_cryptography_primitives_KdfCtrInput_nonce_FromDafny(dafnyInput.Dtor_nonce().UnwrapOr(nil)), + } + +} + +func ParsePublicKeyInput_FromDafny(dafnyInput AwsCryptographyPrimitivesTypes.ParsePublicKeyInput) awscryptographyprimitivessmithygeneratedtypes.ParsePublicKeyInput { + + return awscryptographyprimitivessmithygeneratedtypes.ParsePublicKeyInput{PublicKey: Aws_cryptography_primitives_ParsePublicKeyInput_publicKey_FromDafny(dafnyInput.Dtor_publicKey())} + +} + +func ParsePublicKeyOutput_FromDafny(dafnyOutput AwsCryptographyPrimitivesTypes.ParsePublicKeyOutput) awscryptographyprimitivessmithygeneratedtypes.ParsePublicKeyOutput { + + return awscryptographyprimitivessmithygeneratedtypes.ParsePublicKeyOutput{PublicKey: Aws_cryptography_primitives_ParsePublicKeyOutput_publicKey_FromDafny(dafnyOutput.Dtor_publicKey())} + +} + +func RSADecryptInput_FromDafny(dafnyInput AwsCryptographyPrimitivesTypes.RSADecryptInput) awscryptographyprimitivessmithygeneratedtypes.RSADecryptInput { + + return awscryptographyprimitivessmithygeneratedtypes.RSADecryptInput{Padding: Aws_cryptography_primitives_RSADecryptInput_padding_FromDafny(dafnyInput.Dtor_padding()), + PrivateKey: Aws_cryptography_primitives_RSADecryptInput_privateKey_FromDafny(dafnyInput.Dtor_privateKey()), + CipherText: Aws_cryptography_primitives_RSADecryptInput_cipherText_FromDafny(dafnyInput.Dtor_cipherText()), + } + +} + +func RSAEncryptInput_FromDafny(dafnyInput AwsCryptographyPrimitivesTypes.RSAEncryptInput) awscryptographyprimitivessmithygeneratedtypes.RSAEncryptInput { + + return awscryptographyprimitivessmithygeneratedtypes.RSAEncryptInput{Padding: Aws_cryptography_primitives_RSAEncryptInput_padding_FromDafny(dafnyInput.Dtor_padding()), + PublicKey: Aws_cryptography_primitives_RSAEncryptInput_publicKey_FromDafny(dafnyInput.Dtor_publicKey()), + Plaintext: Aws_cryptography_primitives_RSAEncryptInput_plaintext_FromDafny(dafnyInput.Dtor_plaintext()), + } + +} + +func ValidatePublicKeyInput_FromDafny(dafnyInput AwsCryptographyPrimitivesTypes.ValidatePublicKeyInput) awscryptographyprimitivessmithygeneratedtypes.ValidatePublicKeyInput { + + return awscryptographyprimitivessmithygeneratedtypes.ValidatePublicKeyInput{EccCurve: Aws_cryptography_primitives_ValidatePublicKeyInput_eccCurve_FromDafny(dafnyInput.Dtor_eccCurve()), + PublicKey: Aws_cryptography_primitives_ValidatePublicKeyInput_publicKey_FromDafny(dafnyInput.Dtor_publicKey()), + } + +} + +func ValidatePublicKeyOutput_FromDafny(dafnyOutput AwsCryptographyPrimitivesTypes.ValidatePublicKeyOutput) awscryptographyprimitivessmithygeneratedtypes.ValidatePublicKeyOutput { + + return awscryptographyprimitivessmithygeneratedtypes.ValidatePublicKeyOutput{Success: Aws_cryptography_primitives_ValidatePublicKeyOutput_success_FromDafny(dafnyOutput.Dtor_success())} + +} + +func AwsCryptographicPrimitivesError_FromDafny(dafnyOutput AwsCryptographyPrimitivesTypes.Error) awscryptographyprimitivessmithygeneratedtypes.AwsCryptographicPrimitivesError { + return awscryptographyprimitivessmithygeneratedtypes.AwsCryptographicPrimitivesError{Message: Aws_cryptography_primitives_AwsCryptographicPrimitivesError_message_FromDafny(dafnyOutput.Dtor_message())} + +} + +func CollectionOfErrors_Output_FromDafny(dafnyOutput AwsCryptographyPrimitivesTypes.Error) awscryptographyprimitivessmithygeneratedtypes.CollectionOfErrors { + listOfErrors := dafnyOutput.Dtor_list() + message := dafnyOutput.Dtor_message() + t := awscryptographyprimitivessmithygeneratedtypes.CollectionOfErrors{} + for i := dafny.Iterate(listOfErrors); ; { + val, ok := i() + if !ok { + break + } + err := val.(AwsCryptographyPrimitivesTypes.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 AwsCryptographyPrimitivesTypes.Error) awscryptographyprimitivessmithygeneratedtypes.OpaqueError { + return awscryptographyprimitivessmithygeneratedtypes.OpaqueError{ + ErrObject: dafnyOutput.Dtor_obj(), + } +} + +func Error_FromDafny(err AwsCryptographyPrimitivesTypes.Error) error { + // Service Errors + if err.Is_AwsCryptographicPrimitivesError() { + return AwsCryptographicPrimitivesError_FromDafny(err) + } + + //DependentErrors + + //Unmodelled Errors + if err.Is_CollectionOfErrors() { + return CollectionOfErrors_Output_FromDafny(err) + } + + return OpaqueError_Output_FromDafny(err) +} + +func CryptoConfig_FromDafny(dafnyOutput AwsCryptographyPrimitivesTypes.CryptoConfig) awscryptographyprimitivessmithygeneratedtypes.CryptoConfig { + return awscryptographyprimitivessmithygeneratedtypes.CryptoConfig{} + +} + +func AES_CTR_FromDafny(input interface{}) awscryptographyprimitivessmithygeneratedtypes.AES_CTR { + return awscryptographyprimitivessmithygeneratedtypes.AES_CTR{KeyLength: Aws_cryptography_primitives_AES_CTR_keyLength_FromDafny(input.(AwsCryptographyPrimitivesTypes.AES__CTR).Dtor_keyLength()), + NonceLength: Aws_cryptography_primitives_AES_CTR_nonceLength_FromDafny(input.(AwsCryptographyPrimitivesTypes.AES__CTR).Dtor_nonceLength()), + } + +} + +func Aws_cryptography_primitives_AESDecryptInput_encAlg_FromDafny(input interface{}) awscryptographyprimitivessmithygeneratedtypes.AES_GCM { + return awscryptographyprimitivessmithygeneratedtypes.AES_GCM{KeyLength: Aws_cryptography_primitives_AES_GCM_keyLength_FromDafny(input.(AwsCryptographyPrimitivesTypes.AES__GCM).Dtor_keyLength()), + TagLength: Aws_cryptography_primitives_AES_GCM_tagLength_FromDafny(input.(AwsCryptographyPrimitivesTypes.AES__GCM).Dtor_tagLength()), + IvLength: Aws_cryptography_primitives_AES_GCM_ivLength_FromDafny(input.(AwsCryptographyPrimitivesTypes.AES__GCM).Dtor_ivLength()), + } +} +func Aws_cryptography_primitives_AES_GCM_keyLength_FromDafny(input interface{}) int32 { + return func() int32 { + var b = input.(int32) + return b + }() +} +func Aws_cryptography_primitives_AES_GCM_tagLength_FromDafny(input interface{}) int32 { + return func() int32 { + var b = input.(int32) + return b + }() +} +func Aws_cryptography_primitives_AES_GCM_ivLength_FromDafny(input interface{}) int32 { + return func() int32 { + var b = input.(int32) + return b + }() +} +func Aws_cryptography_primitives_AESDecryptInput_key_FromDafny(input interface{}) []byte { + return func() []byte { + b := []byte{} + if input == nil { + return nil + } + for i := dafny.Iterate(input); ; { + val, ok := i() + if !ok { + return b + } else { + b = append(b, val.(byte)) + } + } + }() +} +func Aws_cryptography_primitives_AESDecryptInput_cipherTxt_FromDafny(input interface{}) []byte { + return func() []byte { + b := []byte{} + if input == nil { + return nil + } + for i := dafny.Iterate(input); ; { + val, ok := i() + if !ok { + return b + } else { + b = append(b, val.(byte)) + } + } + }() +} +func Aws_cryptography_primitives_AESDecryptInput_authTag_FromDafny(input interface{}) []byte { + return func() []byte { + b := []byte{} + if input == nil { + return nil + } + for i := dafny.Iterate(input); ; { + val, ok := i() + if !ok { + return b + } else { + b = append(b, val.(byte)) + } + } + }() +} +func Aws_cryptography_primitives_AESDecryptInput_iv_FromDafny(input interface{}) []byte { + return func() []byte { + b := []byte{} + if input == nil { + return nil + } + for i := dafny.Iterate(input); ; { + val, ok := i() + if !ok { + return b + } else { + b = append(b, val.(byte)) + } + } + }() +} +func Aws_cryptography_primitives_AESDecryptInput_aad_FromDafny(input interface{}) []byte { + return func() []byte { + b := []byte{} + if input == nil { + return nil + } + for i := dafny.Iterate(input); ; { + val, ok := i() + if !ok { + return b + } else { + b = append(b, val.(byte)) + } + } + }() +} +func Aws_cryptography_primitives_AESDecryptOutput_plaintext_FromDafny(input interface{}) []byte { + return func() []byte { + b := []byte{} + if input == nil { + return nil + } + for i := dafny.Iterate(input); ; { + val, ok := i() + if !ok { + return b + } else { + b = append(b, val.(byte)) + } + } + }() +} +func Aws_cryptography_primitives_AESEncryptInput_encAlg_FromDafny(input interface{}) awscryptographyprimitivessmithygeneratedtypes.AES_GCM { + return awscryptographyprimitivessmithygeneratedtypes.AES_GCM{KeyLength: Aws_cryptography_primitives_AES_GCM_keyLength_FromDafny(input.(AwsCryptographyPrimitivesTypes.AES__GCM).Dtor_keyLength()), + TagLength: Aws_cryptography_primitives_AES_GCM_tagLength_FromDafny(input.(AwsCryptographyPrimitivesTypes.AES__GCM).Dtor_tagLength()), + IvLength: Aws_cryptography_primitives_AES_GCM_ivLength_FromDafny(input.(AwsCryptographyPrimitivesTypes.AES__GCM).Dtor_ivLength()), + } +} +func Aws_cryptography_primitives_AESEncryptInput_iv_FromDafny(input interface{}) []byte { + return func() []byte { + b := []byte{} + if input == nil { + return nil + } + for i := dafny.Iterate(input); ; { + val, ok := i() + if !ok { + return b + } else { + b = append(b, val.(byte)) + } + } + }() +} +func Aws_cryptography_primitives_AESEncryptInput_key_FromDafny(input interface{}) []byte { + return func() []byte { + b := []byte{} + if input == nil { + return nil + } + for i := dafny.Iterate(input); ; { + val, ok := i() + if !ok { + return b + } else { + b = append(b, val.(byte)) + } + } + }() +} +func Aws_cryptography_primitives_AESEncryptInput_msg_FromDafny(input interface{}) []byte { + return func() []byte { + b := []byte{} + if input == nil { + return nil + } + for i := dafny.Iterate(input); ; { + val, ok := i() + if !ok { + return b + } else { + b = append(b, val.(byte)) + } + } + }() +} +func Aws_cryptography_primitives_AESEncryptInput_aad_FromDafny(input interface{}) []byte { + return func() []byte { + b := []byte{} + if input == nil { + return nil + } + for i := dafny.Iterate(input); ; { + val, ok := i() + if !ok { + return b + } else { + b = append(b, val.(byte)) + } + } + }() +} +func Aws_cryptography_primitives_AESEncryptOutput_cipherText_FromDafny(input interface{}) []byte { + return func() []byte { + b := []byte{} + if input == nil { + return nil + } + for i := dafny.Iterate(input); ; { + val, ok := i() + if !ok { + return b + } else { + b = append(b, val.(byte)) + } + } + }() +} +func Aws_cryptography_primitives_AESEncryptOutput_authTag_FromDafny(input interface{}) []byte { + return func() []byte { + b := []byte{} + if input == nil { + return nil + } + for i := dafny.Iterate(input); ; { + val, ok := i() + if !ok { + return b + } else { + b = append(b, val.(byte)) + } + } + }() +} +func Aws_cryptography_primitives_AesKdfCtrInput_ikm_FromDafny(input interface{}) []byte { + return func() []byte { + b := []byte{} + if input == nil { + return nil + } + for i := dafny.Iterate(input); ; { + val, ok := i() + if !ok { + return b + } else { + b = append(b, val.(byte)) + } + } + }() +} +func Aws_cryptography_primitives_AesKdfCtrInput_expectedLength_FromDafny(input interface{}) int32 { + return func() int32 { + var b = input.(int32) + return b + }() +} +func Aws_cryptography_primitives_AesKdfCtrInput_nonce_FromDafny(input interface{}) []byte { + return func() []byte { + b := []byte{} + if input == nil { + return nil + } + for i := dafny.Iterate(input); ; { + val, ok := i() + if !ok { + return b + } else { + b = append(b, val.(byte)) + } + } + }() +} +func Aws_cryptography_primitives_AesKdfCtrOutput_okm_FromDafny(input interface{}) []byte { + return func() []byte { + b := []byte{} + if input == nil { + return nil + } + for i := dafny.Iterate(input); ; { + val, ok := i() + if !ok { + return b + } else { + b = append(b, val.(byte)) + } + } + }() +} +func Aws_cryptography_primitives_CompressPublicKeyInput_publicKey_FromDafny(input interface{}) awscryptographyprimitivessmithygeneratedtypes.ECCPublicKey { + return awscryptographyprimitivessmithygeneratedtypes.ECCPublicKey{Der: Aws_cryptography_primitives_ECCPublicKey_der_FromDafny(input.(AwsCryptographyPrimitivesTypes.ECCPublicKey).Dtor_der())} +} +func Aws_cryptography_primitives_ECCPublicKey_der_FromDafny(input interface{}) []byte { + return func() []byte { + b := []byte{} + if input == nil { + return nil + } + for i := dafny.Iterate(input); ; { + val, ok := i() + if !ok { + return b + } else { + b = append(b, val.(byte)) + } + } + }() +} +func Aws_cryptography_primitives_CompressPublicKeyInput_eccCurve_FromDafny(input interface{}) awscryptographyprimitivessmithygeneratedtypes.ECDHCurveSpec { + return func() awscryptographyprimitivessmithygeneratedtypes.ECDHCurveSpec { + var u awscryptographyprimitivessmithygeneratedtypes.ECDHCurveSpec + inputEnum := input.(AwsCryptographyPrimitivesTypes.ECDHCurveSpec) + index := -1 + for allEnums := dafny.Iterate(AwsCryptographyPrimitivesTypes.CompanionStruct_ECDHCurveSpec_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(AwsCryptographyPrimitivesTypes.ECDHCurveSpec).Equals(inputEnum) { + break + } + } + } + + return u.Values()[index] + }() +} +func Aws_cryptography_primitives_CompressPublicKeyOutput_compressedPublicKey_FromDafny(input interface{}) []byte { + return func() []byte { + b := []byte{} + if input == nil { + return nil + } + for i := dafny.Iterate(input); ; { + val, ok := i() + if !ok { + return b + } else { + b = append(b, val.(byte)) + } + } + }() +} +func Aws_cryptography_primitives_DecompressPublicKeyInput_compressedPublicKey_FromDafny(input interface{}) []byte { + return func() []byte { + b := []byte{} + if input == nil { + return nil + } + for i := dafny.Iterate(input); ; { + val, ok := i() + if !ok { + return b + } else { + b = append(b, val.(byte)) + } + } + }() +} +func Aws_cryptography_primitives_DecompressPublicKeyInput_eccCurve_FromDafny(input interface{}) awscryptographyprimitivessmithygeneratedtypes.ECDHCurveSpec { + return func() awscryptographyprimitivessmithygeneratedtypes.ECDHCurveSpec { + var u awscryptographyprimitivessmithygeneratedtypes.ECDHCurveSpec + inputEnum := input.(AwsCryptographyPrimitivesTypes.ECDHCurveSpec) + index := -1 + for allEnums := dafny.Iterate(AwsCryptographyPrimitivesTypes.CompanionStruct_ECDHCurveSpec_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(AwsCryptographyPrimitivesTypes.ECDHCurveSpec).Equals(inputEnum) { + break + } + } + } + + return u.Values()[index] + }() +} +func Aws_cryptography_primitives_DecompressPublicKeyOutput_publicKey_FromDafny(input interface{}) awscryptographyprimitivessmithygeneratedtypes.ECCPublicKey { + return awscryptographyprimitivessmithygeneratedtypes.ECCPublicKey{Der: Aws_cryptography_primitives_ECCPublicKey_der_FromDafny(input.(AwsCryptographyPrimitivesTypes.ECCPublicKey).Dtor_der())} +} +func Aws_cryptography_primitives_DeriveSharedSecretInput_eccCurve_FromDafny(input interface{}) awscryptographyprimitivessmithygeneratedtypes.ECDHCurveSpec { + return func() awscryptographyprimitivessmithygeneratedtypes.ECDHCurveSpec { + var u awscryptographyprimitivessmithygeneratedtypes.ECDHCurveSpec + inputEnum := input.(AwsCryptographyPrimitivesTypes.ECDHCurveSpec) + index := -1 + for allEnums := dafny.Iterate(AwsCryptographyPrimitivesTypes.CompanionStruct_ECDHCurveSpec_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(AwsCryptographyPrimitivesTypes.ECDHCurveSpec).Equals(inputEnum) { + break + } + } + } + + return u.Values()[index] + }() +} +func Aws_cryptography_primitives_DeriveSharedSecretInput_privateKey_FromDafny(input interface{}) awscryptographyprimitivessmithygeneratedtypes.ECCPrivateKey { + return awscryptographyprimitivessmithygeneratedtypes.ECCPrivateKey{Pem: Aws_cryptography_primitives_ECCPrivateKey_pem_FromDafny(input.(AwsCryptographyPrimitivesTypes.ECCPrivateKey).Dtor_pem())} +} +func Aws_cryptography_primitives_ECCPrivateKey_pem_FromDafny(input interface{}) []byte { + return func() []byte { + b := []byte{} + if input == nil { + return nil + } + for i := dafny.Iterate(input); ; { + val, ok := i() + if !ok { + return b + } else { + b = append(b, val.(byte)) + } + } + }() +} +func Aws_cryptography_primitives_DeriveSharedSecretInput_publicKey_FromDafny(input interface{}) awscryptographyprimitivessmithygeneratedtypes.ECCPublicKey { + return awscryptographyprimitivessmithygeneratedtypes.ECCPublicKey{Der: Aws_cryptography_primitives_ECCPublicKey_der_FromDafny(input.(AwsCryptographyPrimitivesTypes.ECCPublicKey).Dtor_der())} +} +func Aws_cryptography_primitives_DeriveSharedSecretOutput_sharedSecret_FromDafny(input interface{}) []byte { + return func() []byte { + b := []byte{} + if input == nil { + return nil + } + for i := dafny.Iterate(input); ; { + val, ok := i() + if !ok { + return b + } else { + b = append(b, val.(byte)) + } + } + }() +} +func Aws_cryptography_primitives_DigestInput_digestAlgorithm_FromDafny(input interface{}) awscryptographyprimitivessmithygeneratedtypes.DigestAlgorithm { + return func() awscryptographyprimitivessmithygeneratedtypes.DigestAlgorithm { + var u awscryptographyprimitivessmithygeneratedtypes.DigestAlgorithm + inputEnum := input.(AwsCryptographyPrimitivesTypes.DigestAlgorithm) + index := -1 + for allEnums := dafny.Iterate(AwsCryptographyPrimitivesTypes.CompanionStruct_DigestAlgorithm_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(AwsCryptographyPrimitivesTypes.DigestAlgorithm).Equals(inputEnum) { + break + } + } + } + + return u.Values()[index] + }() +} +func Aws_cryptography_primitives_DigestInput_message_FromDafny(input interface{}) []byte { + return func() []byte { + b := []byte{} + if input == nil { + return nil + } + for i := dafny.Iterate(input); ; { + val, ok := i() + if !ok { + return b + } else { + b = append(b, val.(byte)) + } + } + }() +} +func Aws_cryptography_primitives_DigestOutput_digest_FromDafny(input interface{}) []byte { + return func() []byte { + b := []byte{} + if input == nil { + return nil + } + for i := dafny.Iterate(input); ; { + val, ok := i() + if !ok { + return b + } else { + b = append(b, val.(byte)) + } + } + }() +} +func Aws_cryptography_primitives_ECDSASignInput_signatureAlgorithm_FromDafny(input interface{}) awscryptographyprimitivessmithygeneratedtypes.ECDSASignatureAlgorithm { + return func() awscryptographyprimitivessmithygeneratedtypes.ECDSASignatureAlgorithm { + var u awscryptographyprimitivessmithygeneratedtypes.ECDSASignatureAlgorithm + inputEnum := input.(AwsCryptographyPrimitivesTypes.ECDSASignatureAlgorithm) + index := -1 + for allEnums := dafny.Iterate(AwsCryptographyPrimitivesTypes.CompanionStruct_ECDSASignatureAlgorithm_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(AwsCryptographyPrimitivesTypes.ECDSASignatureAlgorithm).Equals(inputEnum) { + break + } + } + } + + return u.Values()[index] + }() +} +func Aws_cryptography_primitives_ECDSASignInput_signingKey_FromDafny(input interface{}) []byte { + return func() []byte { + b := []byte{} + if input == nil { + return nil + } + for i := dafny.Iterate(input); ; { + val, ok := i() + if !ok { + return b + } else { + b = append(b, val.(byte)) + } + } + }() +} +func Aws_cryptography_primitives_ECDSASignInput_message_FromDafny(input interface{}) []byte { + return func() []byte { + b := []byte{} + if input == nil { + return nil + } + for i := dafny.Iterate(input); ; { + val, ok := i() + if !ok { + return b + } else { + b = append(b, val.(byte)) + } + } + }() +} +func Aws_cryptography_primitives_ECDSASignOutput_signature_FromDafny(input interface{}) []byte { + return func() []byte { + b := []byte{} + if input == nil { + return nil + } + for i := dafny.Iterate(input); ; { + val, ok := i() + if !ok { + return b + } else { + b = append(b, val.(byte)) + } + } + }() +} +func Aws_cryptography_primitives_ECDSAVerifyInput_signatureAlgorithm_FromDafny(input interface{}) awscryptographyprimitivessmithygeneratedtypes.ECDSASignatureAlgorithm { + return func() awscryptographyprimitivessmithygeneratedtypes.ECDSASignatureAlgorithm { + var u awscryptographyprimitivessmithygeneratedtypes.ECDSASignatureAlgorithm + inputEnum := input.(AwsCryptographyPrimitivesTypes.ECDSASignatureAlgorithm) + index := -1 + for allEnums := dafny.Iterate(AwsCryptographyPrimitivesTypes.CompanionStruct_ECDSASignatureAlgorithm_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(AwsCryptographyPrimitivesTypes.ECDSASignatureAlgorithm).Equals(inputEnum) { + break + } + } + } + + return u.Values()[index] + }() +} +func Aws_cryptography_primitives_ECDSAVerifyInput_verificationKey_FromDafny(input interface{}) []byte { + return func() []byte { + b := []byte{} + if input == nil { + return nil + } + for i := dafny.Iterate(input); ; { + val, ok := i() + if !ok { + return b + } else { + b = append(b, val.(byte)) + } + } + }() +} +func Aws_cryptography_primitives_ECDSAVerifyInput_message_FromDafny(input interface{}) []byte { + return func() []byte { + b := []byte{} + if input == nil { + return nil + } + for i := dafny.Iterate(input); ; { + val, ok := i() + if !ok { + return b + } else { + b = append(b, val.(byte)) + } + } + }() +} +func Aws_cryptography_primitives_ECDSAVerifyInput_signature_FromDafny(input interface{}) []byte { + return func() []byte { + b := []byte{} + if input == nil { + return nil + } + for i := dafny.Iterate(input); ; { + val, ok := i() + if !ok { + return b + } else { + b = append(b, val.(byte)) + } + } + }() +} +func Aws_cryptography_primitives_ECDSAVerifyOutput_success_FromDafny(input interface{}) bool { + return input.(bool) +} +func Aws_cryptography_primitives_GenerateECCKeyPairInput_eccCurve_FromDafny(input interface{}) awscryptographyprimitivessmithygeneratedtypes.ECDHCurveSpec { + return func() awscryptographyprimitivessmithygeneratedtypes.ECDHCurveSpec { + var u awscryptographyprimitivessmithygeneratedtypes.ECDHCurveSpec + inputEnum := input.(AwsCryptographyPrimitivesTypes.ECDHCurveSpec) + index := -1 + for allEnums := dafny.Iterate(AwsCryptographyPrimitivesTypes.CompanionStruct_ECDHCurveSpec_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(AwsCryptographyPrimitivesTypes.ECDHCurveSpec).Equals(inputEnum) { + break + } + } + } + + return u.Values()[index] + }() +} +func Aws_cryptography_primitives_GenerateECCKeyPairOutput_eccCurve_FromDafny(input interface{}) awscryptographyprimitivessmithygeneratedtypes.ECDHCurveSpec { + return func() awscryptographyprimitivessmithygeneratedtypes.ECDHCurveSpec { + var u awscryptographyprimitivessmithygeneratedtypes.ECDHCurveSpec + inputEnum := input.(AwsCryptographyPrimitivesTypes.ECDHCurveSpec) + index := -1 + for allEnums := dafny.Iterate(AwsCryptographyPrimitivesTypes.CompanionStruct_ECDHCurveSpec_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(AwsCryptographyPrimitivesTypes.ECDHCurveSpec).Equals(inputEnum) { + break + } + } + } + + return u.Values()[index] + }() +} +func Aws_cryptography_primitives_GenerateECCKeyPairOutput_privateKey_FromDafny(input interface{}) awscryptographyprimitivessmithygeneratedtypes.ECCPrivateKey { + return awscryptographyprimitivessmithygeneratedtypes.ECCPrivateKey{Pem: Aws_cryptography_primitives_ECCPrivateKey_pem_FromDafny(input.(AwsCryptographyPrimitivesTypes.ECCPrivateKey).Dtor_pem())} +} +func Aws_cryptography_primitives_GenerateECCKeyPairOutput_publicKey_FromDafny(input interface{}) awscryptographyprimitivessmithygeneratedtypes.ECCPublicKey { + return awscryptographyprimitivessmithygeneratedtypes.ECCPublicKey{Der: Aws_cryptography_primitives_ECCPublicKey_der_FromDafny(input.(AwsCryptographyPrimitivesTypes.ECCPublicKey).Dtor_der())} +} +func Aws_cryptography_primitives_GenerateECDSASignatureKeyInput_signatureAlgorithm_FromDafny(input interface{}) awscryptographyprimitivessmithygeneratedtypes.ECDSASignatureAlgorithm { + return func() awscryptographyprimitivessmithygeneratedtypes.ECDSASignatureAlgorithm { + var u awscryptographyprimitivessmithygeneratedtypes.ECDSASignatureAlgorithm + inputEnum := input.(AwsCryptographyPrimitivesTypes.ECDSASignatureAlgorithm) + index := -1 + for allEnums := dafny.Iterate(AwsCryptographyPrimitivesTypes.CompanionStruct_ECDSASignatureAlgorithm_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(AwsCryptographyPrimitivesTypes.ECDSASignatureAlgorithm).Equals(inputEnum) { + break + } + } + } + + return u.Values()[index] + }() +} +func Aws_cryptography_primitives_GenerateECDSASignatureKeyOutput_signatureAlgorithm_FromDafny(input interface{}) awscryptographyprimitivessmithygeneratedtypes.ECDSASignatureAlgorithm { + return func() awscryptographyprimitivessmithygeneratedtypes.ECDSASignatureAlgorithm { + var u awscryptographyprimitivessmithygeneratedtypes.ECDSASignatureAlgorithm + inputEnum := input.(AwsCryptographyPrimitivesTypes.ECDSASignatureAlgorithm) + index := -1 + for allEnums := dafny.Iterate(AwsCryptographyPrimitivesTypes.CompanionStruct_ECDSASignatureAlgorithm_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(AwsCryptographyPrimitivesTypes.ECDSASignatureAlgorithm).Equals(inputEnum) { + break + } + } + } + + return u.Values()[index] + }() +} +func Aws_cryptography_primitives_GenerateECDSASignatureKeyOutput_verificationKey_FromDafny(input interface{}) []byte { + return func() []byte { + b := []byte{} + if input == nil { + return nil + } + for i := dafny.Iterate(input); ; { + val, ok := i() + if !ok { + return b + } else { + b = append(b, val.(byte)) + } + } + }() +} +func Aws_cryptography_primitives_GenerateECDSASignatureKeyOutput_signingKey_FromDafny(input interface{}) []byte { + return func() []byte { + b := []byte{} + if input == nil { + return nil + } + for i := dafny.Iterate(input); ; { + val, ok := i() + if !ok { + return b + } else { + b = append(b, val.(byte)) + } + } + }() +} +func Aws_cryptography_primitives_GenerateRandomBytesInput_length_FromDafny(input interface{}) int32 { + return func() int32 { + var b = input.(int32) + return b + }() +} +func Aws_cryptography_primitives_GenerateRandomBytesOutput_data_FromDafny(input interface{}) []byte { + return func() []byte { + b := []byte{} + if input == nil { + return nil + } + for i := dafny.Iterate(input); ; { + val, ok := i() + if !ok { + return b + } else { + b = append(b, val.(byte)) + } + } + }() +} +func Aws_cryptography_primitives_GenerateRSAKeyPairInput_lengthBits_FromDafny(input interface{}) int32 { + return func() int32 { + var b = input.(int32) + return b + }() +} +func Aws_cryptography_primitives_GenerateRSAKeyPairOutput_publicKey_FromDafny(input interface{}) awscryptographyprimitivessmithygeneratedtypes.RSAPublicKey { + return awscryptographyprimitivessmithygeneratedtypes.RSAPublicKey{LengthBits: Aws_cryptography_primitives_RSAPublicKey_lengthBits_FromDafny(input.(AwsCryptographyPrimitivesTypes.RSAPublicKey).Dtor_lengthBits()), + Pem: Aws_cryptography_primitives_RSAPublicKey_pem_FromDafny(input.(AwsCryptographyPrimitivesTypes.RSAPublicKey).Dtor_pem()), + } +} +func Aws_cryptography_primitives_RSAPublicKey_lengthBits_FromDafny(input interface{}) int32 { + return func() int32 { + var b = input.(int32) + return b + }() +} +func Aws_cryptography_primitives_RSAPublicKey_pem_FromDafny(input interface{}) []byte { + return func() []byte { + b := []byte{} + if input == nil { + return nil + } + for i := dafny.Iterate(input); ; { + val, ok := i() + if !ok { + return b + } else { + b = append(b, val.(byte)) + } + } + }() +} +func Aws_cryptography_primitives_GenerateRSAKeyPairOutput_privateKey_FromDafny(input interface{}) awscryptographyprimitivessmithygeneratedtypes.RSAPrivateKey { + return awscryptographyprimitivessmithygeneratedtypes.RSAPrivateKey{LengthBits: Aws_cryptography_primitives_RSAPrivateKey_lengthBits_FromDafny(input.(AwsCryptographyPrimitivesTypes.RSAPrivateKey).Dtor_lengthBits()), + Pem: Aws_cryptography_primitives_RSAPrivateKey_pem_FromDafny(input.(AwsCryptographyPrimitivesTypes.RSAPrivateKey).Dtor_pem()), + } +} +func Aws_cryptography_primitives_RSAPrivateKey_lengthBits_FromDafny(input interface{}) int32 { + return func() int32 { + var b = input.(int32) + return b + }() +} +func Aws_cryptography_primitives_RSAPrivateKey_pem_FromDafny(input interface{}) []byte { + return func() []byte { + b := []byte{} + if input == nil { + return nil + } + for i := dafny.Iterate(input); ; { + val, ok := i() + if !ok { + return b + } else { + b = append(b, val.(byte)) + } + } + }() +} +func Aws_cryptography_primitives_GetPublicKeyFromPrivateKeyInput_eccCurve_FromDafny(input interface{}) awscryptographyprimitivessmithygeneratedtypes.ECDHCurveSpec { + return func() awscryptographyprimitivessmithygeneratedtypes.ECDHCurveSpec { + var u awscryptographyprimitivessmithygeneratedtypes.ECDHCurveSpec + inputEnum := input.(AwsCryptographyPrimitivesTypes.ECDHCurveSpec) + index := -1 + for allEnums := dafny.Iterate(AwsCryptographyPrimitivesTypes.CompanionStruct_ECDHCurveSpec_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(AwsCryptographyPrimitivesTypes.ECDHCurveSpec).Equals(inputEnum) { + break + } + } + } + + return u.Values()[index] + }() +} +func Aws_cryptography_primitives_GetPublicKeyFromPrivateKeyInput_privateKey_FromDafny(input interface{}) awscryptographyprimitivessmithygeneratedtypes.ECCPrivateKey { + return awscryptographyprimitivessmithygeneratedtypes.ECCPrivateKey{Pem: Aws_cryptography_primitives_ECCPrivateKey_pem_FromDafny(input.(AwsCryptographyPrimitivesTypes.ECCPrivateKey).Dtor_pem())} +} +func Aws_cryptography_primitives_GetPublicKeyFromPrivateKeyOutput_eccCurve_FromDafny(input interface{}) awscryptographyprimitivessmithygeneratedtypes.ECDHCurveSpec { + return func() awscryptographyprimitivessmithygeneratedtypes.ECDHCurveSpec { + var u awscryptographyprimitivessmithygeneratedtypes.ECDHCurveSpec + inputEnum := input.(AwsCryptographyPrimitivesTypes.ECDHCurveSpec) + index := -1 + for allEnums := dafny.Iterate(AwsCryptographyPrimitivesTypes.CompanionStruct_ECDHCurveSpec_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(AwsCryptographyPrimitivesTypes.ECDHCurveSpec).Equals(inputEnum) { + break + } + } + } + + return u.Values()[index] + }() +} +func Aws_cryptography_primitives_GetPublicKeyFromPrivateKeyOutput_privateKey_FromDafny(input interface{}) awscryptographyprimitivessmithygeneratedtypes.ECCPrivateKey { + return awscryptographyprimitivessmithygeneratedtypes.ECCPrivateKey{Pem: Aws_cryptography_primitives_ECCPrivateKey_pem_FromDafny(input.(AwsCryptographyPrimitivesTypes.ECCPrivateKey).Dtor_pem())} +} +func Aws_cryptography_primitives_GetPublicKeyFromPrivateKeyOutput_publicKey_FromDafny(input interface{}) []byte { + return func() []byte { + b := []byte{} + if input == nil { + return nil + } + for i := dafny.Iterate(input); ; { + val, ok := i() + if !ok { + return b + } else { + b = append(b, val.(byte)) + } + } + }() +} +func Aws_cryptography_primitives_GetRSAKeyModulusLengthInput_publicKey_FromDafny(input interface{}) []byte { + return func() []byte { + b := []byte{} + if input == nil { + return nil + } + for i := dafny.Iterate(input); ; { + val, ok := i() + if !ok { + return b + } else { + b = append(b, val.(byte)) + } + } + }() +} +func Aws_cryptography_primitives_GetRSAKeyModulusLengthOutput_length_FromDafny(input interface{}) int32 { + return func() int32 { + var b = input.(int32) + return b + }() +} +func Aws_cryptography_primitives_HkdfInput_digestAlgorithm_FromDafny(input interface{}) awscryptographyprimitivessmithygeneratedtypes.DigestAlgorithm { + return func() awscryptographyprimitivessmithygeneratedtypes.DigestAlgorithm { + var u awscryptographyprimitivessmithygeneratedtypes.DigestAlgorithm + inputEnum := input.(AwsCryptographyPrimitivesTypes.DigestAlgorithm) + index := -1 + for allEnums := dafny.Iterate(AwsCryptographyPrimitivesTypes.CompanionStruct_DigestAlgorithm_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(AwsCryptographyPrimitivesTypes.DigestAlgorithm).Equals(inputEnum) { + break + } + } + } + + return u.Values()[index] + }() +} +func Aws_cryptography_primitives_HkdfInput_salt_FromDafny(input interface{}) []byte { + return func() []byte { + b := []byte{} + if input == nil { + return nil + } + for i := dafny.Iterate(input); ; { + val, ok := i() + if !ok { + return b + } else { + b = append(b, val.(byte)) + } + } + }() +} +func Aws_cryptography_primitives_HkdfInput_ikm_FromDafny(input interface{}) []byte { + return func() []byte { + b := []byte{} + if input == nil { + return nil + } + for i := dafny.Iterate(input); ; { + val, ok := i() + if !ok { + return b + } else { + b = append(b, val.(byte)) + } + } + }() +} +func Aws_cryptography_primitives_HkdfInput_info_FromDafny(input interface{}) []byte { + return func() []byte { + b := []byte{} + if input == nil { + return nil + } + for i := dafny.Iterate(input); ; { + val, ok := i() + if !ok { + return b + } else { + b = append(b, val.(byte)) + } + } + }() +} +func Aws_cryptography_primitives_HkdfInput_expectedLength_FromDafny(input interface{}) int32 { + return func() int32 { + var b = input.(int32) + return b + }() +} +func Aws_cryptography_primitives_HkdfOutput_okm_FromDafny(input interface{}) []byte { + return func() []byte { + b := []byte{} + if input == nil { + return nil + } + for i := dafny.Iterate(input); ; { + val, ok := i() + if !ok { + return b + } else { + b = append(b, val.(byte)) + } + } + }() +} +func Aws_cryptography_primitives_HkdfExpandInput_digestAlgorithm_FromDafny(input interface{}) awscryptographyprimitivessmithygeneratedtypes.DigestAlgorithm { + return func() awscryptographyprimitivessmithygeneratedtypes.DigestAlgorithm { + var u awscryptographyprimitivessmithygeneratedtypes.DigestAlgorithm + inputEnum := input.(AwsCryptographyPrimitivesTypes.DigestAlgorithm) + index := -1 + for allEnums := dafny.Iterate(AwsCryptographyPrimitivesTypes.CompanionStruct_DigestAlgorithm_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(AwsCryptographyPrimitivesTypes.DigestAlgorithm).Equals(inputEnum) { + break + } + } + } + + return u.Values()[index] + }() +} +func Aws_cryptography_primitives_HkdfExpandInput_prk_FromDafny(input interface{}) []byte { + return func() []byte { + b := []byte{} + if input == nil { + return nil + } + for i := dafny.Iterate(input); ; { + val, ok := i() + if !ok { + return b + } else { + b = append(b, val.(byte)) + } + } + }() +} +func Aws_cryptography_primitives_HkdfExpandInput_info_FromDafny(input interface{}) []byte { + return func() []byte { + b := []byte{} + if input == nil { + return nil + } + for i := dafny.Iterate(input); ; { + val, ok := i() + if !ok { + return b + } else { + b = append(b, val.(byte)) + } + } + }() +} +func Aws_cryptography_primitives_HkdfExpandInput_expectedLength_FromDafny(input interface{}) int32 { + return func() int32 { + var b = input.(int32) + return b + }() +} +func Aws_cryptography_primitives_HkdfExpandOutput_okm_FromDafny(input interface{}) []byte { + return func() []byte { + b := []byte{} + if input == nil { + return nil + } + for i := dafny.Iterate(input); ; { + val, ok := i() + if !ok { + return b + } else { + b = append(b, val.(byte)) + } + } + }() +} +func Aws_cryptography_primitives_HkdfExtractInput_digestAlgorithm_FromDafny(input interface{}) awscryptographyprimitivessmithygeneratedtypes.DigestAlgorithm { + return func() awscryptographyprimitivessmithygeneratedtypes.DigestAlgorithm { + var u awscryptographyprimitivessmithygeneratedtypes.DigestAlgorithm + inputEnum := input.(AwsCryptographyPrimitivesTypes.DigestAlgorithm) + index := -1 + for allEnums := dafny.Iterate(AwsCryptographyPrimitivesTypes.CompanionStruct_DigestAlgorithm_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(AwsCryptographyPrimitivesTypes.DigestAlgorithm).Equals(inputEnum) { + break + } + } + } + + return u.Values()[index] + }() +} +func Aws_cryptography_primitives_HkdfExtractInput_salt_FromDafny(input interface{}) []byte { + return func() []byte { + b := []byte{} + if input == nil { + return nil + } + for i := dafny.Iterate(input); ; { + val, ok := i() + if !ok { + return b + } else { + b = append(b, val.(byte)) + } + } + }() +} +func Aws_cryptography_primitives_HkdfExtractInput_ikm_FromDafny(input interface{}) []byte { + return func() []byte { + b := []byte{} + if input == nil { + return nil + } + for i := dafny.Iterate(input); ; { + val, ok := i() + if !ok { + return b + } else { + b = append(b, val.(byte)) + } + } + }() +} +func Aws_cryptography_primitives_HkdfExtractOutput_prk_FromDafny(input interface{}) []byte { + return func() []byte { + b := []byte{} + if input == nil { + return nil + } + for i := dafny.Iterate(input); ; { + val, ok := i() + if !ok { + return b + } else { + b = append(b, val.(byte)) + } + } + }() +} +func Aws_cryptography_primitives_HMacInput_digestAlgorithm_FromDafny(input interface{}) awscryptographyprimitivessmithygeneratedtypes.DigestAlgorithm { + return func() awscryptographyprimitivessmithygeneratedtypes.DigestAlgorithm { + var u awscryptographyprimitivessmithygeneratedtypes.DigestAlgorithm + inputEnum := input.(AwsCryptographyPrimitivesTypes.DigestAlgorithm) + index := -1 + for allEnums := dafny.Iterate(AwsCryptographyPrimitivesTypes.CompanionStruct_DigestAlgorithm_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(AwsCryptographyPrimitivesTypes.DigestAlgorithm).Equals(inputEnum) { + break + } + } + } + + return u.Values()[index] + }() +} +func Aws_cryptography_primitives_HMacInput_key_FromDafny(input interface{}) []byte { + return func() []byte { + b := []byte{} + if input == nil { + return nil + } + for i := dafny.Iterate(input); ; { + val, ok := i() + if !ok { + return b + } else { + b = append(b, val.(byte)) + } + } + }() +} +func Aws_cryptography_primitives_HMacInput_message_FromDafny(input interface{}) []byte { + return func() []byte { + b := []byte{} + if input == nil { + return nil + } + for i := dafny.Iterate(input); ; { + val, ok := i() + if !ok { + return b + } else { + b = append(b, val.(byte)) + } + } + }() +} +func Aws_cryptography_primitives_HMacOutput_digest_FromDafny(input interface{}) []byte { + return func() []byte { + b := []byte{} + if input == nil { + return nil + } + for i := dafny.Iterate(input); ; { + val, ok := i() + if !ok { + return b + } else { + b = append(b, val.(byte)) + } + } + }() +} +func Aws_cryptography_primitives_KdfCtrInput_digestAlgorithm_FromDafny(input interface{}) awscryptographyprimitivessmithygeneratedtypes.DigestAlgorithm { + return func() awscryptographyprimitivessmithygeneratedtypes.DigestAlgorithm { + var u awscryptographyprimitivessmithygeneratedtypes.DigestAlgorithm + inputEnum := input.(AwsCryptographyPrimitivesTypes.DigestAlgorithm) + index := -1 + for allEnums := dafny.Iterate(AwsCryptographyPrimitivesTypes.CompanionStruct_DigestAlgorithm_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(AwsCryptographyPrimitivesTypes.DigestAlgorithm).Equals(inputEnum) { + break + } + } + } + + return u.Values()[index] + }() +} +func Aws_cryptography_primitives_KdfCtrInput_ikm_FromDafny(input interface{}) []byte { + return func() []byte { + b := []byte{} + if input == nil { + return nil + } + for i := dafny.Iterate(input); ; { + val, ok := i() + if !ok { + return b + } else { + b = append(b, val.(byte)) + } + } + }() +} +func Aws_cryptography_primitives_KdfCtrInput_expectedLength_FromDafny(input interface{}) int32 { + return func() int32 { + var b = input.(int32) + return b + }() +} +func Aws_cryptography_primitives_KdfCtrInput_purpose_FromDafny(input interface{}) []byte { + return func() []byte { + b := []byte{} + if input == nil { + return nil + } + for i := dafny.Iterate(input); ; { + val, ok := i() + if !ok { + return b + } else { + b = append(b, val.(byte)) + } + } + }() +} +func Aws_cryptography_primitives_KdfCtrInput_nonce_FromDafny(input interface{}) []byte { + return func() []byte { + b := []byte{} + if input == nil { + return nil + } + for i := dafny.Iterate(input); ; { + val, ok := i() + if !ok { + return b + } else { + b = append(b, val.(byte)) + } + } + }() +} +func Aws_cryptography_primitives_KdfCtrOutput_okm_FromDafny(input interface{}) []byte { + return func() []byte { + b := []byte{} + if input == nil { + return nil + } + for i := dafny.Iterate(input); ; { + val, ok := i() + if !ok { + return b + } else { + b = append(b, val.(byte)) + } + } + }() +} +func Aws_cryptography_primitives_ParsePublicKeyInput_publicKey_FromDafny(input interface{}) []byte { + return func() []byte { + b := []byte{} + if input == nil { + return nil + } + for i := dafny.Iterate(input); ; { + val, ok := i() + if !ok { + return b + } else { + b = append(b, val.(byte)) + } + } + }() +} +func Aws_cryptography_primitives_ParsePublicKeyOutput_publicKey_FromDafny(input interface{}) awscryptographyprimitivessmithygeneratedtypes.ECCPublicKey { + return awscryptographyprimitivessmithygeneratedtypes.ECCPublicKey{Der: Aws_cryptography_primitives_ECCPublicKey_der_FromDafny(input.(AwsCryptographyPrimitivesTypes.ECCPublicKey).Dtor_der())} +} +func Aws_cryptography_primitives_RSADecryptInput_padding_FromDafny(input interface{}) awscryptographyprimitivessmithygeneratedtypes.RSAPaddingMode { + return func() awscryptographyprimitivessmithygeneratedtypes.RSAPaddingMode { + var u awscryptographyprimitivessmithygeneratedtypes.RSAPaddingMode + inputEnum := input.(AwsCryptographyPrimitivesTypes.RSAPaddingMode) + index := -1 + for allEnums := dafny.Iterate(AwsCryptographyPrimitivesTypes.CompanionStruct_RSAPaddingMode_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(AwsCryptographyPrimitivesTypes.RSAPaddingMode).Equals(inputEnum) { + break + } + } + } + + return u.Values()[index] + }() +} +func Aws_cryptography_primitives_RSADecryptInput_privateKey_FromDafny(input interface{}) []byte { + return func() []byte { + b := []byte{} + if input == nil { + return nil + } + for i := dafny.Iterate(input); ; { + val, ok := i() + if !ok { + return b + } else { + b = append(b, val.(byte)) + } + } + }() +} +func Aws_cryptography_primitives_RSADecryptInput_cipherText_FromDafny(input interface{}) []byte { + return func() []byte { + b := []byte{} + if input == nil { + return nil + } + for i := dafny.Iterate(input); ; { + val, ok := i() + if !ok { + return b + } else { + b = append(b, val.(byte)) + } + } + }() +} +func Aws_cryptography_primitives_RSADecryptOutput_plaintext_FromDafny(input interface{}) []byte { + return func() []byte { + b := []byte{} + if input == nil { + return nil + } + for i := dafny.Iterate(input); ; { + val, ok := i() + if !ok { + return b + } else { + b = append(b, val.(byte)) + } + } + }() +} +func Aws_cryptography_primitives_RSAEncryptInput_padding_FromDafny(input interface{}) awscryptographyprimitivessmithygeneratedtypes.RSAPaddingMode { + return func() awscryptographyprimitivessmithygeneratedtypes.RSAPaddingMode { + var u awscryptographyprimitivessmithygeneratedtypes.RSAPaddingMode + inputEnum := input.(AwsCryptographyPrimitivesTypes.RSAPaddingMode) + index := -1 + for allEnums := dafny.Iterate(AwsCryptographyPrimitivesTypes.CompanionStruct_RSAPaddingMode_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(AwsCryptographyPrimitivesTypes.RSAPaddingMode).Equals(inputEnum) { + break + } + } + } + + return u.Values()[index] + }() +} +func Aws_cryptography_primitives_RSAEncryptInput_publicKey_FromDafny(input interface{}) []byte { + return func() []byte { + b := []byte{} + if input == nil { + return nil + } + for i := dafny.Iterate(input); ; { + val, ok := i() + if !ok { + return b + } else { + b = append(b, val.(byte)) + } + } + }() +} +func Aws_cryptography_primitives_RSAEncryptInput_plaintext_FromDafny(input interface{}) []byte { + return func() []byte { + b := []byte{} + if input == nil { + return nil + } + for i := dafny.Iterate(input); ; { + val, ok := i() + if !ok { + return b + } else { + b = append(b, val.(byte)) + } + } + }() +} +func Aws_cryptography_primitives_RSAEncryptOutput_cipherText_FromDafny(input interface{}) []byte { + return func() []byte { + b := []byte{} + if input == nil { + return nil + } + for i := dafny.Iterate(input); ; { + val, ok := i() + if !ok { + return b + } else { + b = append(b, val.(byte)) + } + } + }() +} +func Aws_cryptography_primitives_ValidatePublicKeyInput_eccCurve_FromDafny(input interface{}) awscryptographyprimitivessmithygeneratedtypes.ECDHCurveSpec { + return func() awscryptographyprimitivessmithygeneratedtypes.ECDHCurveSpec { + var u awscryptographyprimitivessmithygeneratedtypes.ECDHCurveSpec + inputEnum := input.(AwsCryptographyPrimitivesTypes.ECDHCurveSpec) + index := -1 + for allEnums := dafny.Iterate(AwsCryptographyPrimitivesTypes.CompanionStruct_ECDHCurveSpec_{}.AllSingletonConstructors()); ; { + enum, ok := allEnums() + if ok { + index++ + if enum.(AwsCryptographyPrimitivesTypes.ECDHCurveSpec).Equals(inputEnum) { + break + } + } + } + + return u.Values()[index] + }() +} +func Aws_cryptography_primitives_ValidatePublicKeyInput_publicKey_FromDafny(input interface{}) []byte { + return func() []byte { + b := []byte{} + if input == nil { + return nil + } + for i := dafny.Iterate(input); ; { + val, ok := i() + if !ok { + return b + } else { + b = append(b, val.(byte)) + } + } + }() +} +func Aws_cryptography_primitives_ValidatePublicKeyOutput_success_FromDafny(input interface{}) bool { + return input.(bool) +} +func Aws_cryptography_primitives_AwsCryptographicPrimitivesError_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_primitives_AES_CTR_keyLength_FromDafny(input interface{}) int32 { + return func() int32 { + var b = input.(int32) + return b + }() +} +func Aws_cryptography_primitives_AES_CTR_nonceLength_FromDafny(input interface{}) int32 { + return func() int32 { + var b = input.(int32) + return b + }() +} diff --git a/customer-preview/primitives/awscryptographyprimitivessmithygeneratedtypes/enums.go b/customer-preview/primitives/awscryptographyprimitivessmithygeneratedtypes/enums.go new file mode 100644 index 000000000..11a7802a1 --- /dev/null +++ b/customer-preview/primitives/awscryptographyprimitivessmithygeneratedtypes/enums.go @@ -0,0 +1,71 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package awscryptographyprimitivessmithygeneratedtypes + +type ECDHCurveSpec string + +const ( + ECDHCurveSpecEccNistP256 ECDHCurveSpec = "ECC_NIST_P256" + ECDHCurveSpecEccNistP384 ECDHCurveSpec = "ECC_NIST_P384" + ECDHCurveSpecEccNistP521 ECDHCurveSpec = "ECC_NIST_P521" + ECDHCurveSpecSm2 ECDHCurveSpec = "SM2" +) + +func (ECDHCurveSpec) Values() []ECDHCurveSpec { + return []ECDHCurveSpec{ + "ECC_NIST_P256", + "ECC_NIST_P384", + "ECC_NIST_P521", + "SM2", + } +} + +type DigestAlgorithm string + +const ( + DigestAlgorithmSha512 DigestAlgorithm = "SHA_512" + DigestAlgorithmSha384 DigestAlgorithm = "SHA_384" + DigestAlgorithmSha256 DigestAlgorithm = "SHA_256" +) + +func (DigestAlgorithm) Values() []DigestAlgorithm { + return []DigestAlgorithm{ + "SHA_512", + "SHA_384", + "SHA_256", + } +} + +type ECDSASignatureAlgorithm string + +const ( + ECDSASignatureAlgorithmEcdsaP384 ECDSASignatureAlgorithm = "ECDSA_P384" + ECDSASignatureAlgorithmEcdsaP256 ECDSASignatureAlgorithm = "ECDSA_P256" +) + +func (ECDSASignatureAlgorithm) Values() []ECDSASignatureAlgorithm { + return []ECDSASignatureAlgorithm{ + "ECDSA_P384", + "ECDSA_P256", + } +} + +type RSAPaddingMode string + +const ( + RSAPaddingModePkcs1 RSAPaddingMode = "PKCS1" + RSAPaddingModeOaepSha1 RSAPaddingMode = "OAEP_SHA1" + RSAPaddingModeOaepSha256 RSAPaddingMode = "OAEP_SHA256" + RSAPaddingModeOaepSha384 RSAPaddingMode = "OAEP_SHA384" + RSAPaddingModeOaepSha512 RSAPaddingMode = "OAEP_SHA512" +) + +func (RSAPaddingMode) Values() []RSAPaddingMode { + return []RSAPaddingMode{ + "PKCS1", + "OAEP_SHA1", + "OAEP_SHA256", + "OAEP_SHA384", + "OAEP_SHA512", + } +} diff --git a/customer-preview/primitives/awscryptographyprimitivessmithygeneratedtypes/errors.go b/customer-preview/primitives/awscryptographyprimitivessmithygeneratedtypes/errors.go new file mode 100644 index 000000000..0acaacb8b --- /dev/null +++ b/customer-preview/primitives/awscryptographyprimitivessmithygeneratedtypes/errors.go @@ -0,0 +1,17 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package awscryptographyprimitivessmithygeneratedtypes + +import ( + "fmt" +) + +type AwsCryptographicPrimitivesError struct { + AwsCryptographicPrimitivesBaseException + Message string + ErrorCodeOverride *string +} + +func (e AwsCryptographicPrimitivesError) Error() string { + return fmt.Sprintf("%s: %s", e.ErrorCodeOverride, e.Message) +} diff --git a/customer-preview/primitives/awscryptographyprimitivessmithygeneratedtypes/types.go b/customer-preview/primitives/awscryptographyprimitivessmithygeneratedtypes/types.go new file mode 100644 index 000000000..9d2605d70 --- /dev/null +++ b/customer-preview/primitives/awscryptographyprimitivessmithygeneratedtypes/types.go @@ -0,0 +1,717 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package awscryptographyprimitivessmithygeneratedtypes + +import ( + "fmt" +) + +type AES_GCM struct { + IvLength int32 + + KeyLength int32 + + TagLength int32 +} + +func (input AES_GCM) Validate() error { + if input.IvLength < 0 { + return fmt.Errorf("Uint8Bits has a minimum of 0 but has the value of %d.", input.IvLength) + } + if input.IvLength > 255 { + return fmt.Errorf("Uint8Bits has a maximum of 255 but has the value of %d.", input.IvLength) + } + if input.KeyLength < 1 { + return fmt.Errorf("SymmetricKeyLength has a minimum of 1 but has the value of %d.", input.KeyLength) + } + if input.KeyLength > 32 { + return fmt.Errorf("SymmetricKeyLength has a maximum of 32 but has the value of %d.", input.KeyLength) + } + if input.TagLength < 0 { + return fmt.Errorf("Uint8Bytes has a minimum of 0 but has the value of %d.", input.TagLength) + } + if input.TagLength > 32 { + return fmt.Errorf("Uint8Bytes has a maximum of 32 but has the value of %d.", input.TagLength) + } + + return nil +} + +type AESDecryptInput struct { + Aad []byte + + AuthTag []byte + + CipherTxt []byte + + EncAlg AES_GCM + + Iv []byte + + Key []byte +} + +func (input AESDecryptInput) Validate() error { + if input.EncAlg.Validate() != nil { + return input.EncAlg.Validate() + } + + return nil +} + +type AESDecryptOutput struct { + Plaintext []byte +} + +func (input AESDecryptOutput) Validate() error { + + return nil +} + +type AESEncryptInput struct { + Aad []byte + + EncAlg AES_GCM + + Iv []byte + + Key []byte + + Msg []byte +} + +func (input AESEncryptInput) Validate() error { + if input.EncAlg.Validate() != nil { + return input.EncAlg.Validate() + } + + return nil +} + +type AESEncryptOutput struct { + AuthTag []byte + + CipherText []byte +} + +func (input AESEncryptOutput) Validate() error { + + return nil +} + +type AesKdfCtrInput struct { + ExpectedLength int32 + + Ikm []byte + + Nonce []byte +} + +func (input AesKdfCtrInput) Validate() error { + if input.ExpectedLength < 0 { + return fmt.Errorf("PositiveInteger has a minimum of 0 but has the value of %d.", input.ExpectedLength) + } + + return nil +} + +type AesKdfCtrOutput struct { + Okm []byte +} + +func (input AesKdfCtrOutput) Validate() error { + + return nil +} + +type ECCPublicKey struct { + Der []byte +} + +func (input ECCPublicKey) Validate() error { + + return nil +} + +type CompressPublicKeyInput struct { + EccCurve ECDHCurveSpec + + PublicKey ECCPublicKey +} + +func (input CompressPublicKeyInput) Validate() error { + if input.PublicKey.Validate() != nil { + return input.PublicKey.Validate() + } + + return nil +} + +type CompressPublicKeyOutput struct { + CompressedPublicKey []byte +} + +func (input CompressPublicKeyOutput) Validate() error { + + return nil +} + +type DecompressPublicKeyInput struct { + CompressedPublicKey []byte + + EccCurve ECDHCurveSpec +} + +func (input DecompressPublicKeyInput) Validate() error { + + return nil +} + +type DecompressPublicKeyOutput struct { + PublicKey ECCPublicKey +} + +func (input DecompressPublicKeyOutput) Validate() error { + if input.PublicKey.Validate() != nil { + return input.PublicKey.Validate() + } + + return nil +} + +type ECCPrivateKey struct { + Pem []byte +} + +func (input ECCPrivateKey) Validate() error { + + return nil +} + +type DeriveSharedSecretInput struct { + EccCurve ECDHCurveSpec + + PrivateKey ECCPrivateKey + + PublicKey ECCPublicKey +} + +func (input DeriveSharedSecretInput) Validate() error { + if input.PrivateKey.Validate() != nil { + return input.PrivateKey.Validate() + } + if input.PublicKey.Validate() != nil { + return input.PublicKey.Validate() + } + + return nil +} + +type DeriveSharedSecretOutput struct { + SharedSecret []byte +} + +func (input DeriveSharedSecretOutput) Validate() error { + + return nil +} + +type DigestInput struct { + DigestAlgorithm DigestAlgorithm + + Message []byte +} + +func (input DigestInput) Validate() error { + + return nil +} + +type DigestOutput struct { + Digest []byte +} + +func (input DigestOutput) Validate() error { + + return nil +} + +type ECDSASignInput struct { + Message []byte + + SignatureAlgorithm ECDSASignatureAlgorithm + + SigningKey []byte +} + +func (input ECDSASignInput) Validate() error { + + return nil +} + +type ECDSASignOutput struct { + Signature []byte +} + +func (input ECDSASignOutput) Validate() error { + + return nil +} + +type ECDSAVerifyInput struct { + Message []byte + + Signature []byte + + SignatureAlgorithm ECDSASignatureAlgorithm + + VerificationKey []byte +} + +func (input ECDSAVerifyInput) Validate() error { + + return nil +} + +type ECDSAVerifyOutput struct { + Success bool +} + +func (input ECDSAVerifyOutput) Validate() error { + + return nil +} + +type GenerateECCKeyPairInput struct { + EccCurve ECDHCurveSpec +} + +func (input GenerateECCKeyPairInput) Validate() error { + + return nil +} + +type GenerateECCKeyPairOutput struct { + EccCurve ECDHCurveSpec + + PrivateKey ECCPrivateKey + + PublicKey ECCPublicKey +} + +func (input GenerateECCKeyPairOutput) Validate() error { + if input.PrivateKey.Validate() != nil { + return input.PrivateKey.Validate() + } + if input.PublicKey.Validate() != nil { + return input.PublicKey.Validate() + } + + return nil +} + +type GenerateECDSASignatureKeyInput struct { + SignatureAlgorithm ECDSASignatureAlgorithm +} + +func (input GenerateECDSASignatureKeyInput) Validate() error { + + return nil +} + +type GenerateECDSASignatureKeyOutput struct { + SignatureAlgorithm ECDSASignatureAlgorithm + + SigningKey []byte + + VerificationKey []byte +} + +func (input GenerateECDSASignatureKeyOutput) Validate() error { + + return nil +} + +type GenerateRandomBytesInput struct { + Length int32 +} + +func (input GenerateRandomBytesInput) Validate() error { + if input.Length < 0 { + return fmt.Errorf("PositiveInteger has a minimum of 0 but has the value of %d.", input.Length) + } + + return nil +} + +type GenerateRandomBytesOutput struct { + Data []byte +} + +func (input GenerateRandomBytesOutput) Validate() error { + + return nil +} + +type GenerateRSAKeyPairInput struct { + LengthBits int32 +} + +func (input GenerateRSAKeyPairInput) Validate() error { + if input.LengthBits < 81 { + return fmt.Errorf("RSAModulusLengthBitsToGenerate has a minimum of 81 but has the value of %d.", input.LengthBits) + } + if input.LengthBits > 4096 { + return fmt.Errorf("RSAModulusLengthBitsToGenerate has a maximum of 4096 but has the value of %d.", input.LengthBits) + } + + return nil +} + +type RSAPrivateKey struct { + LengthBits int32 + + Pem []byte +} + +func (input RSAPrivateKey) Validate() error { + if input.LengthBits < 81 { + return fmt.Errorf("RSAModulusLengthBits has a minimum of 81 but has the value of %d.", input.LengthBits) + } + + return nil +} + +type RSAPublicKey struct { + LengthBits int32 + + Pem []byte +} + +func (input RSAPublicKey) Validate() error { + if input.LengthBits < 81 { + return fmt.Errorf("RSAModulusLengthBits has a minimum of 81 but has the value of %d.", input.LengthBits) + } + + return nil +} + +type GenerateRSAKeyPairOutput struct { + PrivateKey RSAPrivateKey + + PublicKey RSAPublicKey +} + +func (input GenerateRSAKeyPairOutput) Validate() error { + if input.PrivateKey.Validate() != nil { + return input.PrivateKey.Validate() + } + if input.PublicKey.Validate() != nil { + return input.PublicKey.Validate() + } + + return nil +} + +type GetPublicKeyFromPrivateKeyInput struct { + EccCurve ECDHCurveSpec + + PrivateKey ECCPrivateKey +} + +func (input GetPublicKeyFromPrivateKeyInput) Validate() error { + if input.PrivateKey.Validate() != nil { + return input.PrivateKey.Validate() + } + + return nil +} + +type GetPublicKeyFromPrivateKeyOutput struct { + EccCurve ECDHCurveSpec + + PrivateKey ECCPrivateKey + + PublicKey []byte +} + +func (input GetPublicKeyFromPrivateKeyOutput) Validate() error { + if input.PrivateKey.Validate() != nil { + return input.PrivateKey.Validate() + } + + return nil +} + +type GetRSAKeyModulusLengthInput struct { + PublicKey []byte +} + +func (input GetRSAKeyModulusLengthInput) Validate() error { + + return nil +} + +type GetRSAKeyModulusLengthOutput struct { + Length int32 +} + +func (input GetRSAKeyModulusLengthOutput) Validate() error { + if input.Length < 81 { + return fmt.Errorf("RSAModulusLengthBits has a minimum of 81 but has the value of %d.", input.Length) + } + + return nil +} + +type HkdfInput struct { + DigestAlgorithm DigestAlgorithm + + ExpectedLength int32 + + Ikm []byte + + Info []byte + + Salt []byte +} + +func (input HkdfInput) Validate() error { + if input.ExpectedLength < 0 { + return fmt.Errorf("PositiveInteger has a minimum of 0 but has the value of %d.", input.ExpectedLength) + } + + return nil +} + +type HkdfOutput struct { + Okm []byte +} + +func (input HkdfOutput) Validate() error { + + return nil +} + +type HkdfExpandInput struct { + DigestAlgorithm DigestAlgorithm + + ExpectedLength int32 + + Info []byte + + Prk []byte +} + +func (input HkdfExpandInput) Validate() error { + if input.ExpectedLength < 0 { + return fmt.Errorf("PositiveInteger has a minimum of 0 but has the value of %d.", input.ExpectedLength) + } + + return nil +} + +type HkdfExpandOutput struct { + Okm []byte +} + +func (input HkdfExpandOutput) Validate() error { + + return nil +} + +type HkdfExtractInput struct { + DigestAlgorithm DigestAlgorithm + + Ikm []byte + + Salt []byte +} + +func (input HkdfExtractInput) Validate() error { + + return nil +} + +type HkdfExtractOutput struct { + Prk []byte +} + +func (input HkdfExtractOutput) Validate() error { + + return nil +} + +type HMacInput struct { + DigestAlgorithm DigestAlgorithm + + Key []byte + + Message []byte +} + +func (input HMacInput) Validate() error { + + return nil +} + +type HMacOutput struct { + Digest []byte +} + +func (input HMacOutput) Validate() error { + + return nil +} + +type KdfCtrInput struct { + DigestAlgorithm DigestAlgorithm + + ExpectedLength int32 + + Ikm []byte + + Nonce []byte + + Purpose []byte +} + +func (input KdfCtrInput) Validate() error { + if input.ExpectedLength < 0 { + return fmt.Errorf("PositiveInteger has a minimum of 0 but has the value of %d.", input.ExpectedLength) + } + + return nil +} + +type KdfCtrOutput struct { + Okm []byte +} + +func (input KdfCtrOutput) Validate() error { + + return nil +} + +type ParsePublicKeyInput struct { + PublicKey []byte +} + +func (input ParsePublicKeyInput) Validate() error { + + return nil +} + +type ParsePublicKeyOutput struct { + PublicKey ECCPublicKey +} + +func (input ParsePublicKeyOutput) Validate() error { + if input.PublicKey.Validate() != nil { + return input.PublicKey.Validate() + } + + return nil +} + +type RSADecryptInput struct { + CipherText []byte + + Padding RSAPaddingMode + + PrivateKey []byte +} + +func (input RSADecryptInput) Validate() error { + + return nil +} + +type RSADecryptOutput struct { + Plaintext []byte +} + +func (input RSADecryptOutput) Validate() error { + + return nil +} + +type RSAEncryptInput struct { + Padding RSAPaddingMode + + Plaintext []byte + + PublicKey []byte +} + +func (input RSAEncryptInput) Validate() error { + + return nil +} + +type RSAEncryptOutput struct { + CipherText []byte +} + +func (input RSAEncryptOutput) Validate() error { + + return nil +} + +type ValidatePublicKeyInput struct { + EccCurve ECDHCurveSpec + + PublicKey []byte +} + +func (input ValidatePublicKeyInput) Validate() error { + + return nil +} + +type ValidatePublicKeyOutput struct { + Success bool +} + +func (input ValidatePublicKeyOutput) Validate() error { + + return nil +} + +type AES_CTR struct { + KeyLength int32 + + NonceLength int32 +} + +func (input AES_CTR) Validate() error { + if input.KeyLength < 1 { + return fmt.Errorf("SymmetricKeyLength has a minimum of 1 but has the value of %d.", input.KeyLength) + } + if input.KeyLength > 32 { + return fmt.Errorf("SymmetricKeyLength has a maximum of 32 but has the value of %d.", input.KeyLength) + } + if input.NonceLength < 0 { + return fmt.Errorf("Uint8Bits has a minimum of 0 but has the value of %d.", input.NonceLength) + } + if input.NonceLength > 255 { + return fmt.Errorf("Uint8Bits has a maximum of 255 but has the value of %d.", input.NonceLength) + } + + return nil +} + +type CryptoConfig struct { +} + +func (input CryptoConfig) Validate() error { + + return nil +} + +type AwsCryptographicPrimitivesBaseException 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/customer-preview/primitives/awscryptographyprimitivessmithygeneratedtypes/unmodelled_errors.go b/customer-preview/primitives/awscryptographyprimitivessmithygeneratedtypes/unmodelled_errors.go new file mode 100644 index 000000000..bc6484a09 --- /dev/null +++ b/customer-preview/primitives/awscryptographyprimitivessmithygeneratedtypes/unmodelled_errors.go @@ -0,0 +1,26 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package awscryptographyprimitivessmithygeneratedtypes + +import ( + "fmt" +) + +type CollectionOfErrors struct { + AwsCryptographicPrimitivesBaseException + ListOfErrors []error + Message string +} + +func (e CollectionOfErrors) Error() string { + return fmt.Sprintf("message: %s\n err %v", e.Message, e.ListOfErrors) +} + +type OpaqueError struct { + AwsCryptographicPrimitivesBaseException + ErrObject interface{} +} + +func (e OpaqueError) Error() string { + return fmt.Sprintf("message: %v", e.ErrObject) +} diff --git a/customer-preview/primitives/go.mod b/customer-preview/primitives/go.mod new file mode 100644 index 000000000..86bcd74e1 --- /dev/null +++ b/customer-preview/primitives/go.mod @@ -0,0 +1,7 @@ +module github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives + +go 1.23.0 + +require github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library v0.2.0 + +require github.com/dafny-lang/DafnyRuntimeGo/v4 v4.9.2 diff --git a/customer-preview/primitives/go.sum b/customer-preview/primitives/go.sum new file mode 100644 index 000000000..29bfafcbe --- /dev/null +++ b/customer-preview/primitives/go.sum @@ -0,0 +1,4 @@ +github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library v0.2.0 h1:NhVxn86bWyWc/uOnE+oTikZdj75yOW6kMCfZNBf2x5E= +github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library v0.2.0/go.mod h1:m3mzHKiNiSC0LWeWX6ZAxSe6mKbJHgliux1Yu/sjCYI= +github.com/dafny-lang/DafnyRuntimeGo/v4 v4.9.2 h1:g/xAj4F7Zt9wXJ6QjfbfocVi/ZYlAFpNddHCFyfzRDg= +github.com/dafny-lang/DafnyRuntimeGo/v4 v4.9.2/go.mod h1:l2Tm4N2DKuq3ljONC2vOATeM9PUpXbIc8SgXdwwqEto= diff --git a/submodules/MaterialProviders b/submodules/MaterialProviders index d3e79168a..ccd56cfae 160000 --- a/submodules/MaterialProviders +++ b/submodules/MaterialProviders @@ -1 +1 @@ -Subproject commit d3e79168a23381973fab90e0c11e5ec0fb8a37fd +Subproject commit ccd56cfae7c784e3c852d1f4bcc0b7127525f7d8